diff --git a/plugins/ungit.plg b/plugins/ungit.plg index 87a43fc2..fcfc6a04 100644 --- a/plugins/ungit.plg +++ b/plugins/ungit.plg @@ -84,11 +84,14 @@ else upgradepkg --install-new &plgPATH;/&plgNAME;.txz + npm -g update + npm -g install ungit + #restart event daemon /dev/null 2>&1 < /dev/null & sleep 1 - echo "starting libvirtwol..." + echo "starting ungit..." setsid /usr/local/emhttp/plugins/ungit/scripts/start >/dev/null 2>&1 < /dev/null & ]]> diff --git a/source/ungit/etc/rc.d/rc.ungit b/source/ungit/etc/rc.d/rc.ungit index ac73d66f..ae8bb218 100755 --- a/source/ungit/etc/rc.d/rc.ungit +++ b/source/ungit/etc/rc.d/rc.ungit @@ -1,8 +1,7 @@ #!/bin/sh # start/stop/restart ungit daemon: PLG="ungit" -EMHTTP="/usr/local/emhttp/plugins/$PLG" -PROG="$EMHTTP/node_modules/$PLG/src/server.js" +PROG="/usr/lib64/node_modules/$PLG/src/server.js" LOCKFILE="/var/lock/$PLG" PIDFILE="/var/run/$PLG.pid" CONFIG="/boot/config/plugins/$PLG/$PLG.cfg" @@ -17,7 +16,6 @@ ungit_start() { if [ "$DAEMON" == "enable" ]; then echo "starting $PLG..." sleep 1 - #cd $EMHTTP/node_modules/$PLG nohup /usr/bin/node $PROG --port="$PORT" --logDirectory="/var/log/" --logGitCommands --logGitOutput >/var/log/$PLG 2>&1 | echo $! > $PIDFILE & touch $LOCKFILE TIMER=0 @@ -58,6 +56,14 @@ ungit_restart() { ungit_start } +# Restart ungit: +ungit_update() { + ungit_stop + sleep 1 + npm -g update + ungit_start +} + case "$1" in 'start') ungit_start @@ -68,6 +74,9 @@ case "$1" in 'restart') ungit_restart ;; +'update') + ungit_update + ;; *) echo "usage rc.ungit: start|stop|restart" esac \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/.bin/0ungit-credentials-helper b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/.bin/0ungit-credentials-helper deleted file mode 120000 index 03be29a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/.bin/0ungit-credentials-helper +++ /dev/null @@ -1 +0,0 @@ -../ungit/bin/credentials-helper \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/.bin/ungit b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/.bin/ungit deleted file mode 120000 index bcf7cc5c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/.bin/ungit +++ /dev/null @@ -1 +0,0 @@ -../ungit/bin/ungit \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/.gitattributes b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/.gitattributes deleted file mode 100644 index 22cc77c7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -* text=auto -/bin/credentials-helper eol=lf -/bin/ungit eol=lf diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/.nodemonignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/.nodemonignore deleted file mode 100644 index 7900b6a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/.nodemonignore +++ /dev/null @@ -1,3 +0,0 @@ -/public/* -.git/* -.git \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/.npmignore deleted file mode 100644 index 4f90c382..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/.npmignore +++ /dev/null @@ -1,40 +0,0 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz - -pids -logs -results - -npm-debug.log - -node_modules/ - -.ungitrc -.travis.yml -Gruntfile.js - -assets/ -test/ -report/ -public/source/ -public/vendor/css/ -public/vendor/js/ -public/templates/ -public/devStyling.html -public/js/devStyling.js - -clicktests/ -clicktestout/ - -teststabilitytester.js - -build/ -*.dll -nw.exe -nw.pak diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/CHANGELOG.md deleted file mode 100644 index d96dedfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/CHANGELOG.md +++ /dev/null @@ -1,52 +0,0 @@ -# Change Log -All notable changes to this project will be documented in this file. -This project adheres to [Semantic Versioning](http://semver.org/) and -[Keep a changlelog's changelog standard](http://keepachangelog.com/) - -## [Unreleased](https://github.com/FredrikNoren/ungit/compare/v0.10.3...master) - -## [0.10.3](https://github.com/FredrikNoren/ungit/compare/v0.10.2...v0.10.3) - -### Fixed -- Missing npm as a normal dependency [#766] (https://github.com/FredrikNoren/ungit/issues/766) - -## [0.10.2](https://github.com/FredrikNoren/ungit/compare/v0.10.1...v0.10.2) - -### Added -- Added bare repo support [#177](https://github.com/FredrikNoren/ungit/issues/177) [#728](https://github.com/FredrikNoren/ungit/issues/728) -- Added support for cherry-pick conflict[#701](https://github.com/FredrikNoren/ungit/issues/701) -- Added wordwrap support for diffs [#721](https://github.com/FredrikNoren/ungit/issues/721) -- Support for Node6 [#745](https://github.com/FredrikNoren/ungit/pull/745/files) -- Added "autoCheckoutOnBranchCreate" option [#752](https://github.com/FredrikNoren/ungit/pull/752/files) - -### Fixed -- Fix maxConcurrentGitOperations not limiting git processes [#707](https://github.com/FredrikNoren/ungit/issues/707) -- Fix ".lock" file conflicts in parallelized git operations [#515](https://github.com/FredrikNoren/ungit/issues/515) -- Allow Ungit to function under sub dir of a git dir [#734](https://github.com/FredrikNoren/ungit/issues/734) -- Removed deprecated npmconf package [#746](https://github.com/FredrikNoren/ungit/issues/746) -- More helpful warning messages [#749](https://github.com/FredrikNoren/ungit/pull/749/files) -- Deleting already deleted remote tag [#748](https://github.com/FredrikNoren/ungit/pull/748) -- Fix to handle revert merge commit [#757](https://github.com/FredrikNoren/ungit/pull/757) - -### Changed -- Cleaner rebase conflict message display [#708](https://github.com/FredrikNoren/ungit/pull/708) -- ES6 [#672](https://github.com/FredrikNoren/ungit/pull/672) -- Dropped support for Node 0.10 and 0.12 [#745](https://github.com/FredrikNoren/ungit/pull/745/files) - -## [0.10.1](https://github.com/FredrikNoren/ungit/compare/v0.10.0...v0.10.1) - -### Added -- Introduced change log! [#687](https://github.com/FredrikNoren/ungit/issues/687) -- Improved server and client error logging [#695](https://github.com/FredrikNoren/ungit/pull/695) - -### Fixed -- Fix crashes due to submodule parsing [#690](https://github.com/FredrikNoren/ungit/issues/690) [#689](https://github.com/FredrikNoren/ungit/issues/689) -- Fix duplicate remote tag issues [#685](https://github.com/FredrikNoren/ungit/issues/685) -- Fix scrolling issue in safari [#686](https://github.com/FredrikNoren/ungit/issues/686) -- Fix git hooks failing on non-ascii files [#676](https://github.com/FredrikNoren/ungit/issues/676) - -### Removed -- Reverted on hover button effects [#688](https://github.com/FredrikNoren/ungit/issues/688) - -### Changed -- Upgrade keen.io client code [#679](https://github.com/FredrikNoren/ungit/issues/679) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/CONTRIBUTING.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/CONTRIBUTING.md deleted file mode 100644 index 2c0e0f30..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/CONTRIBUTING.md +++ /dev/null @@ -1,88 +0,0 @@ -These are the contributing guidelines as well as some documentation on how the code is structured. Read up before contributing to make everything as smooth as possible. - -Posting issues -============== - -Just common sense; do a quick search before posting, someone might already have created an issue (or resolved the problem!). If you're posting a bug; try to include as much relevant information as possible (ungit version, node and npm version, os, any git errors displayed, output from cli console and output from the browser console). - -Pull requests -============= -Make sure to include a note in CHANGELOG.md about the change as part of the PR. -We follow the ["Keep a changelog"](http://keepachangelog.com/) style guide. -Make sure to include reference's to issues and PR's when relevant in the change log. - -Writing plugins -=============== -See [PLUGINS.md](PLUGINS.md) - -Developing for Ungit proper -=========================== - -I do accept pull requests, but I also reserve the right to not do so for things I don't think fit with Ungit. If you are developing anything new you should almost always also provide tests for it, preferably clicktests but it doesn't hurt to write REST-interface tests as well if applicable. Try to post pull requests early, even at a concept stage, to get feedback and increase chances it's merged. - -What you need to get started ----------------------------- - -You'll need the same as for Ungit; node, npm and git. You will also need grunt (`npm install -g grunt-cli`). - -Getting started ---------------- - -To get started developing on Ungit: - - 1. Make sure you have [node.js](http://nodejs.org), [npm](https://npmjs.org/), [git](http://git-scm.com/) and [grunt](http://gruntjs.com/) installed. - 2. Clone the repository to a local directory. - 3. Run `npm install` to install dependencies. - 4. Run `grunt` to build (compile templates, css and js). - 5. Type `npm start` to start ungit, or `npm test` to run tests. - 6. (Optional). Run `grunt watch` to automatically rebuild stuff when you change files. - -Run ungit as standalone application ------------------------------------ - -To provide easier access to launch ungit, very early stage of standalone application container using [electron](http://electron.atom.io/) is available. -Please note this is not yet ready for public release and being developed having several known & unknown limitations. - -To get started: - 1. Follow steps in 'Getting started' to get a development environment ready. - 2. Run `grunt default && grunt package`. This will compile latest ungit and will create a standalone application package under `build/` - -Known limitation: - 1. Current standalone application does not allow to execute more than one instance. - 2. There is no installer package neither automatic update mechanism for standalone application in place yet. - -Additional notes: - 1. To create windows package with proper application description on non-windows platform, [wine](https://www.winehq.org/) is required to be installed. If not, windows package will be created with default resources. - -Architecture overview ---------------------- - -Ungit has two major parts; the server and the ui. The server exposes a REST interfaces, which enables it to be run on a remote server. The UI is a single-page web-app, built using Knockout.js. - -Folders -------- - -* `assets/` Raw assets used for development. -* `bin/` "Binary" files, the ungit launcher script and the credentials-helper, which is invoked by git to acquire credentials when using http authentication. -* `clicktests/` Phantom.js clicktest; basically tests that run on the rendered DOM. Since these run all the way, from the DOM down to the server, they're also the most powerful of the tests. -* `components/` This directory contains all view components for Ungit, each of them exposed as an Ungit plugin. -* `public/` The UI web-app. -* `public/css/` CSS generated by the grunt script. -* `public/fonts/` & `public/images` Assets, some of which are compiled into the CSS by the grunt script, others (for instance those that are too large to compile into the CSS efficiently) are served directly. -* `public/js/` An ungit.js file generated by the grunt script, as well as raven files which handle exception logging. -* `public/less/` Less files, which are the "source" used to generate the CSS. -* `public/source/` Javascript source code, which is turned into the public/js/ungit.js file by the grunt script. -* `public/vendor/` Various 3rd-party libs. -* `source/` Server and shared (i.e. used by both server and UI) source code. -* `test/` Unit tests and REST interface tests. - -Running tests -------------- - -`grunt test` will run both unit tests, REST-interface tests, and clicktests. `grunt unittest` only runs the tests in the test/ folder, `grunt clicktest` runs only the tests in the clicktests/ folder. Install mocha (`npm install -g mocha`) to run specific tests in the test folder and get better stack traces: `mocha test/spec.git-api.js`. - -Things to consider when developing ----------------------------------- - -* Try to make everything as touch friendly as possible, for instance no mouse over tooltips (try to make it clear without that). Everything doesn't adhere 100% to that right now but I'm trying to move it more in that direction. -* Write tests. The most important tests to write are usually the clicktests since they will cover the most code (both ui and backend). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/PLUGINS.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/PLUGINS.md deleted file mode 100644 index 4fe65a81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/PLUGINS.md +++ /dev/null @@ -1,76 +0,0 @@ -Writing Ungit plugins -===================== - -It's super easy to write an Ungit plugin. Here's how to write a completely new (though super simple) git log ui: - -### 1. Create a new folder for your plugin. -Create a folder at `~/.ungit/plugins/MY_FANCY_PLUGIN`, then add a file called `ungit-plugin.json` with the following content: -```JSON -{ - "exports": { - "javascript": "example.js" - } -} -``` - -### 2. Add some code -Create an `example.js` file and add this: - -```JavaScript -var components = require('ungit-components'); - -// We're overriding the graph component here -components.register('graph', function(args) { - return { - // This method creates and returns the DOM node that represents this component. - updateNode: function() { - var node = document.createElement('div'); - // Request all log entries from the backend - args.server.get('/log', { path: args.repoPath, limit: 50 }, function(err, log) { - // Add all log entries to the parent node - log.forEach(function(entry) { - var entryNode = document.createElement('div'); - entryNode.innerHTML = entry.message; - node.appendChild(entryNode); - }); - }); - return node; - } - }; -}); -``` - -### 3. Done! -Just restart Ungit, or if you have `"dev": true` in your `.ungitrc` you can just refresh your browser. A [gerrit plugin example](https://github.com/FredrikNoren/ungit-gerrit) can be found here. - -### Ungit Plugin API version -The Ungit Plugin API follows semver, and the current version can be found in the package.json (ungitPluginApiVersion). On the frontend it can be accessed from `ungit.pluginApiVersion` and on the backend `env.pluginApiVersion`. - -### Components - -Each functionalities within ungit is built as components. Each components is an ungit plugin that is checked into main repository. All the components in Ungit is built as plugins, take a look in the [components](https://github.com/FredrikNoren/ungit/tree/master/components) directory for inspiration. - -An [example](https://github.com/FredrikNoren/ungit/tree/master/components/staging) of ungit component with view can be seen below. - -```JSON -{ - "exports": { - "knockoutTemplates": { - "staging": "staging.html" - }, - "javascript": "staging.bundle.js", - "css": "staging.css" - } -} -``` - -* Views(html) for Component - - Each component can have multiple views as exampled [here](https://github.com/FredrikNoren/ungit/tree/master/components/dialogs). - -* CSS for Component - css file can be easily defined per components and in above example we can see that `staging.less` file is compiled into `staging.css` via grunt job. If you are using less file please modify [Gruntfile.js](https://github.com/FredrikNoren/ungit/blob/master/Gruntfile.js) file to include new less file. - -* JS for Component - - Each component gets to have one javascipt files. However each javasciprt file can require other javascript in it's directory or other libraries. If you are doing require by relative pass as exampled in [graph.js](https://github.com/FredrikNoren/ungit/blob/master/components/graph/graph.js), you wouldn't have to include the js in browserify job in [Gruntfile.js](https://github.com/FredrikNoren/ungit/blob/master/Gruntfile.js). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/README.md deleted file mode 100644 index de139095..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/README.md +++ /dev/null @@ -1,103 +0,0 @@ -ungit -====== -[![NPM version](https://badge.fury.io/js/ungit.svg)](http://badge.fury.io/js/ungit) -[![Build Status](https://travis-ci.org/FredrikNoren/ungit.svg)](https://travis-ci.org/FredrikNoren/ungit) -[![Join the chat at https://gitter.im/FredrikNoren/ungit](https://badges.gitter.im/FredrikNoren/ungit.svg)](https://gitter.im/FredrikNoren/ungit?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -The easiest way to use git. On any platform. Anywhere. - -[![xkcd](xkcd.png)](https://xkcd.com/1597/) - -Git is known for being a versatile distributed source control system that is a staple of many individuals, communities, and even for [the City of Chattanooga to crowd source bicycle parking locations](https://github.com/cityofchattanooga/Bicycle-Parking). However, it is not known for userfriendlyness or easy learning curve. - -Ungit is to bring user friendliness to git without sacrificing versatility of git. - - * Clean and intuitive UI that makes it easy to _understand_ git. - * Runs on any platform that node.js & git supports. - * Web-based, meaning you can run it on your cloud/pure shell machine and use the ui from your browser (just browse to http://your-cloud-machine.com:8448). - * Works well with GitHub. - * [Gerrit](https://code.google.com/p/gerrit/) integration through plugin: https://github.com/FredrikNoren/ungit-gerrit - -[Follow @ungitui on twitter](https://twitter.com/ungitui) - -Quick intro to ungit: [http://youtu.be/hkBVAi3oKvo](http://youtu.be/hkBVAi3oKvo) - -[![Screenshot](screenshot.png)](http://youtu.be/hkBVAi3oKvo) - -Installing ----------- -Requires [node.js](http://nodejs.org) (≥ 0.10), [npm](https://www.npmjs.com/) (≥ 1.3.1, comes with node.js) and [git](http://git-scm.com/) (≥ 1.8.x). To install ungit just type: - - npm install -g ungit - -NOTE: If your system requires root access to install global npm packages, make sure you use the -H flag: - - sudo -H npm install -g ungit - -Using ------ -Anywhere you want to start, just type: - - ungit - -This will launch the server and open up a browser with the ui. - -Configuring ---------- -Put a configuration file called .ungitrc in your home directory (`/home/USERNAME` on *nix, `C:/Users/USERNAME/` on windows). Can be in either json or ini format. See [source/config.js](source/config.js) for available options. - -You can also override configuration variables at launch by specifying them as command line arguments; `ungit --port=8080`. To disable boolean features use --no: `ungit --no-autoFetch`. - -Example of `~/.ungitrc` configuration file to change default port and enable bugtracking: - -```json -{ - "port": 8080, - "bugtracking": true -} -``` - -Ungit uses [rc](https://github.com/dominictarr/rc) for configuration, which in turn uses [yargs](https://github.com/yargs/yargs) for command line arguments. See corresponding documentations for more details. - -Plugins -------- -Plugins are installed by simply placing them in the Ungit plugin directory (`~/.ungit/plugins` by default), and then restarting Ungit. - -[List of available plugins](https://github.com/FredrikNoren/ungit/wiki/List-of-plugins) - -There's a guide in the [PLUGINS.md](PLUGINS.md) file on how to write new plugins. - -Developing ----------- - -See [CONTRIBUTING.md](CONTRIBUTING.md). - -Maintainers ------------ -* [FredrikNoren](https://github.com/FredrikNoren) -* [codingtwinky](https://github.com/codingtwinky) - -Known issues ------------- - -* If you're running MacOSX Mavericks and Ungit crashes after a few seconds; try updating npm and node. See [#259](https://github.com/FredrikNoren/ungit/issues/259) and [#249](https://github.com/FredrikNoren/ungit/issues/249) for details. -* Ubuntu users may have trouble installing because the node executable is named differently on Ubuntu, see [#401](https://github.com/FredrikNoren/ungit/issues/401) for details. -* Debian Wheezy's supported git and nodejs packages are too old, therefore download newest [git](https://github.com/git/git/releases) and [nodejs](https://nodejs.org/download/) tarballs and [build from source](http://www.control-escape.com/linux/lx-swinstall-tar.html). - -Changelog ---------- -See [CHANGELOG.md](CHANGELOG.md). - -License (MIT) -------------- - -Copyright (C) 2013-2016 Fredrik Norén - -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. - -[![Dependency Status](https://david-dm.org/FredrikNoren/ungit.png)](https://david-dm.org/FredrikNoren/ungit) -[![devDependency Status](https://david-dm.org/FredrikNoren/ungit/dev-status.png)](https://david-dm.org/FredrikNoren/ungit#info=devDependencies) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/appveyor.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/appveyor.yml deleted file mode 100644 index 9e344b7d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/appveyor.yml +++ /dev/null @@ -1,18 +0,0 @@ -environment: - matrix: - - nodejs_version: "6.0" - -install: - - ps: Install-Product node $env:nodejs_version - - git config --global user.email "test@testy.com" - - git config --global user.name "Test testy" - - npm install - - npm install -g grunt-cli - -test_script: - - node --version - - npm --version - - grunt - - npm test - -build: off diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/bin/credentials-helper b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/bin/credentials-helper deleted file mode 100755 index 0953b1cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/bin/credentials-helper +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env node -var config = require('../src/config'); -var winston = require('winston'); -var path = require('path'); -var async = require('async'); - -winston.remove(winston.transports.Console); - -var BugTracker = require('../src/bugtracker'); -var bugtracker = new BugTracker('credentials-helper'); -var usageStatistics = require('../src/usage-statistics'); - -process.on('uncaughtException', function(err) { - console.error(err.stack.toString()); - async.parallel([ - bugtracker.notify.bind(bugtracker, err, 'credentials-helper'), - usageStatistics.addEvent.bind(usageStatistics, 'credentials-helper-exception') - ], function() { - process.exit(); - }); -}); - -if (config.logDirectory) - winston.add(winston.transports.File, { filename: path.join(config.logDirectory, 'credentials-helper.log'), maxsize: 100*1024, maxFiles: 2 }); - -var socketId = process.argv[2]; -var port = process.argv[3]; -winston.info('Credentials helper invoked; port ' + port + ', socketId ' + socketId); - -var http = require('http'); - -if (process.argv[4] == 'get') { - winston.info('Getting credentials'); - http.get('http://localhost:' + port + '/api/credentials?socketId=' + socketId, function(res) { - winston.info('Got credentials'); - res.on('data', function(body) { - var data = JSON.parse(body); - console.log('username=' + data.username); - console.log('password=' + (data.password ? data.password : '')); - }); - }).on('error', function(err) { - winston.error('Error getting credentials, couldn\'t query server', err); - }); -} else { - winston.info('Unhandled param: ' + process.argv[4]); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/bin/ungit b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/bin/ungit deleted file mode 100755 index 3fc34cd8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/bin/ungit +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env node -var startLaunchTime = Date.now(); -var forever = require('forever-monitor'); -var config = require('../src/config'); -var open = require('open'); -var path = require('path'); -var child_process = require('child_process'); -var async = require('async'); - -var BugTracker = require('../src/bugtracker'); -var bugtracker = new BugTracker('launcher'); -var usageStatistics = require('../src/usage-statistics'); - -process.on('uncaughtException', function(err) { - console.error(err.stack.toString()); - async.parallel([ - bugtracker.notify.bind(bugtracker, err, 'ungit-launcher'), - usageStatistics.addEvent.bind(usageStatistics, 'launcher-exception') - ], function() { - process.exit(); - }); -}); - -var child = new (forever.Monitor)(path.join(__dirname, '..', 'src', 'server.js'), { - silent: false, - minUptime: 2000, - max: config.maxNAutoRestartOnCrash, - cwd: path.join(process.cwd(), '..'), - options: process.argv.slice(2), - env: { LANG: 'en_US.UTF-8' } -}); - -child.on('exit', function (res) { - console.log('Stopped keeping ungit alive'); -}); - -function launch(callback) { - var currentUrl = config.urlBase + ':' + config.port + config.rootPath; - if (config.forcedLaunchPath === undefined) currentUrl += '/#/repository?path=' + encodeURIComponent(process.cwd()); - else if (config.forcedLaunchPath !== null && config.forcedLaunchPath !== '') currentUrl += '/#/repository?path=' + encodeURIComponent(config.forcedLaunchPath); - console.log('Browse to ' + currentUrl); - if (config.launchBrowser && !config.launchCommand) { - open(currentUrl); - } else if (config.launchCommand) { - var command = config.launchCommand.replace(/%U/g, currentUrl); - console.log('Running custom launch command: ' + command); - child_process.exec(command, function(err, stdout, stderr) { - if (err) { - callback(err); - return; - } - if (config.launchBrowser) - open(currentUrl); - }); - } -} - -function startupListener(data) { - if (data.toString().indexOf('## Ungit started ##') >= 0) { - launch(function(err) { - if (err) console.log(err); - }); - child.removeListener('stdout', startupListener); - var launchTime = (Date.now() - startLaunchTime); - console.log('Took ' + launchTime + 'ms to start server.'); - usageStatistics.addEvent('server-start', { launchTimeMs: launchTime }); - } -} - -child.on('stdout', startupListener); - -function checkIfUngitIsRunning(callback) { - // Fastest way to find out if a port is used or not/i.e. if ungit is running - var net = require('net'); - var server = net.createServer(function(c) { }); - server.listen(config.port, function(err) { - server.close(function() { - callback(null, false); - }); - }); - server.on('error', function (e) { - if (e.code == 'EADDRINUSE') { - callback(null, true); - } - }); -} - -checkIfUngitIsRunning(function(err1, ungitRunning) { - if (ungitRunning) { - console.log('Ungit server already running'); - launch(function(err) { - if (err) console.log(err); - }); - } - else { - child.start(); - } -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.bundle.js deleted file mode 100644 index f1ca17a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.bundle.js +++ /dev/null @@ -1,170 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 6 && Math.random() < 0.01); - this.sendNPS = function(value) { - keen.addEvent('survey-nps', { - version: ungit.version, - userHash: ungit.userHash, - rating: value, - bugtrackingEnabled: ungit.config.bugtracking, - sendUsageStatistics: ungit.config.sendUsageStatistics - }); - self.dismissNPSSurvey(); - } - -} - -AppViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('app', this, {}, parentElement); -} -AppViewModel.prototype.template = 'app'; -AppViewModel.prototype.shown = function() { - var self = this; - // The ungit.config variable collections configuration from all different paths and only updates when - // ungit is restarted - if(!ungit.config.bugtracking) { - // Whereas the userconfig only reflects what's in the ~/.ungitrc and updates directly, - // but is only used for changing around the configuration. We need to check this here - // since ungit may have crashed without the server crashing since we enabled bugtracking, - // and we don't want to show the nagscreen twice in that case. - this.server.get('/userconfig', undefined, function(err, userConfig) { - self.bugtrackingEnabled(userConfig.bugtracking); - }); - } - - this.server.get('/latestversion', undefined, function(err, version) { - if (!version) return; - self.currentVersion(version.currentVersion); - self.latestVersion(version.latestVersion); - self.newVersionAvailable(version.outdated); - }); - this.server.get('/gitversion', undefined, function(err, gitversion) { - if (!gitversion) return; - if (!gitversion.satisfied) { - self.gitVersionError(gitversion.error); - } - }); -} -AppViewModel.prototype.updateAnimationFrame = function(deltaT) { - if (this.content() && this.content().updateAnimationFrame) this.content().updateAnimationFrame(deltaT); -} -AppViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'request-credentials') this._handleCredentialsRequested(event); - else if (event.event == 'request-show-dialog') this.showDialog(event.dialog); - else if (event.event == 'request-remember-repo') this._handleRequestRememberRepo(event); - - if (this.content() && this.content().onProgramEvent) - this.content().onProgramEvent(event); - if (this.header && this.header.onProgramEvent) this.header.onProgramEvent(event); -} -AppViewModel.prototype._handleRequestRememberRepo = function(event) { - var repoPath = event.repoPath; - if (this.repoList.indexOf(repoPath) != -1) return; - this.repoList.push(repoPath); -} -AppViewModel.prototype._handleCredentialsRequested = function() { - var self = this; - var diag; - // Only show one credentials dialog if we're asked to show another one while the first one is open - // This happens for instance when we fetch nodes and remote tags at the same time - if (this._isShowingCredentialsDialog) - diag = self.dialog(); - else { - diag = components.create('credentialsdialog'); - self.showDialog(diag); - } - this._isShowingCredentialsDialog = true; - diag.closed.add(function() { - self._isShowingCredentialsDialog = false; - programEvents.dispatch({ event: 'request-credentials-response', username: diag.username(), password: diag.password() }); - }); -} -AppViewModel.prototype.showDialog = function(dialog) { - var self = this; - dialog.closed.add(function() { - self.dialog(null); - }) - this.dialog(dialog); -} -AppViewModel.prototype.enableBugtrackingAndStatistics = function() { - var self = this; - this.server.get('/userconfig', undefined, function(err, userConfig) { - if (err) return; - userConfig.bugtracking = true; - userConfig.sendUsageStatistics = true; - self.server.post('/userconfig', userConfig, function(err) { - if (err) return; - self.bugtrackingEnabled(true); - }); - }); -} -AppViewModel.prototype.enableBugtracking = function() { - var self = this; - this.server.get('/userconfig', undefined, function(err, userConfig) { - if (err) return; - userConfig.bugtracking = true; - self.server.post('/userconfig', userConfig, function(err) { - if (err) return; - self.bugtrackingEnabled(true); - }); - }); -} -AppViewModel.prototype.dismissBugtrackingNagscreen = function() { - localStorage.setItem('bugtrackingNagscreenDismissed', true); - this.bugtrackingNagscreenDismissed(true); -} -AppViewModel.prototype.dismissGitVersionError = function() { - localStorage.setItem('gitVersionErrorDismissed', true); - this.gitVersionErrorDismissed(true); -} -AppViewModel.prototype.dismissNPSSurvey = function() { - this.showNPSSurvey(false); - localStorage.setItem('NPSSurveyLastDismissed', Date.now()); -} -AppViewModel.prototype.templateChooser = function(data) { - if (!data) return ''; - return data.template; -}; - -},{"knockout":"knockout","ungit-components":"ungit-components","ungit-navigation":"ungit-navigation","ungit-program-events":"ungit-program-events"}]},{},[1]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJjb21wb25lbnRzL2FwcC9hcHAuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIlxudmFyIGtvID0gcmVxdWlyZSgna25vY2tvdXQnKTtcbnZhciBjb21wb25lbnRzID0gcmVxdWlyZSgndW5naXQtY29tcG9uZW50cycpO1xudmFyIHByb2dyYW1FdmVudHMgPSByZXF1aXJlKCd1bmdpdC1wcm9ncmFtLWV2ZW50cycpO1xudmFyIG5hdmlnYXRpb24gPSByZXF1aXJlKCd1bmdpdC1uYXZpZ2F0aW9uJyk7XG5cbmNvbXBvbmVudHMucmVnaXN0ZXIoJ2FwcCcsIGZ1bmN0aW9uKGFyZ3MpIHtcbiAgcmV0dXJuIG5ldyBBcHBWaWV3TW9kZWwoYXJncy5hcHBDb250YWluZXIsIGFyZ3Muc2VydmVyKTtcbn0pO1xuXG52YXIgQXBwVmlld01vZGVsID0gZnVuY3Rpb24oYXBwQ29udGFpbmVyLCBzZXJ2ZXIpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLmFwcENvbnRhaW5lciA9IGFwcENvbnRhaW5lcjtcbiAgdGhpcy5zZXJ2ZXIgPSBzZXJ2ZXI7XG4gIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoJ25vaGVhZGVyPXRydWUnKSA8IDApXG4gICAgdGhpcy5oZWFkZXIgPSBjb21wb25lbnRzLmNyZWF0ZSgnaGVhZGVyJywgeyBhcHA6IHRoaXMgfSk7XG4gIHRoaXMuZGlhbG9nID0ga28ub2JzZXJ2YWJsZShudWxsKTtcblxuICB0aGlzLnJlcG9MaXN0ID0ga28ub2JzZXJ2YWJsZUFycmF5KEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JlcG9zaXRvcmllcycpIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd2aXNpdGVkUmVwb3NpdG9yaWVzJykgfHwgJ1tdJykpOyAvLyB2aXNpdGVkUmVwb3NpdG9yaWVzIGlzIGxlZ2FjeSwgcmVtb3ZlIGluIHRoZSBuZXh0IHZlcnNpb25cbiAgdGhpcy5yZXBvTGlzdC5zdWJzY3JpYmUoZnVuY3Rpb24obmV3VmFsdWUpIHsgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3JlcG9zaXRvcmllcycsIEpTT04uc3RyaW5naWZ5KG5ld1ZhbHVlKSk7IH0pO1xuXG4gIHRoaXMuY29udGVudCA9IGtvLm9ic2VydmFibGUoY29tcG9uZW50cy5jcmVhdGUoJ2hvbWUnLCB7IGFwcDogdGhpcyB9KSk7XG4gIHRoaXMuY3VycmVudFZlcnNpb24gPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMubGF0ZXN0VmVyc2lvbiA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5uZXdWZXJzaW9uQXZhaWxhYmxlID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLm5ld1ZlcnNpb25JbnN0YWxsQ29tbWFuZCA9ICh1bmdpdC5wbGF0Zm9ybSA9PSAnd2luMzInID8gJycgOiAnc3VkbyAtSCAnKSArICducG0gdXBkYXRlIC1nIHVuZ2l0JztcbiAgdGhpcy5idWd0cmFja2luZ0VuYWJsZWQgPSBrby5vYnNlcnZhYmxlKHVuZ2l0LmNvbmZpZy5idWd0cmFja2luZyk7XG5cbiAgdGhpcy5idWd0cmFja2luZ05hZ3NjcmVlbkRpc21pc3NlZCA9IGtvLm9ic2VydmFibGUobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1Z3RyYWNraW5nTmFnc2NyZWVuRGlzbWlzc2VkJykpO1xuICB0aGlzLnNob3dCdWd0cmFja2luZ05hZ3NjcmVlbiA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAhc2VsZi5idWd0cmFja2luZ0VuYWJsZWQoKSAmJiAhc2VsZi5idWd0cmFja2luZ05hZ3NjcmVlbkRpc21pc3NlZCgpO1xuICB9KTtcblxuICB0aGlzLmdpdFZlcnNpb25FcnJvckRpc21pc3NlZCA9IGtvLm9ic2VydmFibGUobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2dpdFZlcnNpb25FcnJvckRpc21pc3NlZCcpKTtcbiAgdGhpcy5naXRWZXJzaW9uRXJyb3IgPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMuZ2l0VmVyc2lvbkVycm9yVmlzaWJsZSA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAhdW5naXQuY29uZmlnLmdpdFZlcnNpb25DaGVja092ZXJyaWRlICYmIHNlbGYuZ2l0VmVyc2lvbkVycm9yKCkgJiYgIXNlbGYuZ2l0VmVyc2lvbkVycm9yRGlzbWlzc2VkKCk7XG4gIH0pO1xuXG4gIHZhciBOUFNTdXJ2ZXlMYXN0RGlzbWlzc2VkID0gcGFyc2VJbnQobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ05QU1N1cnZleUxhc3REaXNtaXNzZWQnKSB8fCAnMCcpO1xuICB2YXIgbW9udGhzU2luY2VOUFNMYXN0RGlzbWlzc2VkID0gKERhdGUubm93KCkgLSBOUFNTdXJ2ZXlMYXN0RGlzbWlzc2VkKSAvICgxMDAwICogNjAgKiA2MCAqIDI0ICogMzApO1xuICB0aGlzLnNob3dOUFNTdXJ2ZXkgPSBrby5vYnNlcnZhYmxlKG1vbnRoc1NpbmNlTlBTTGFzdERpc21pc3NlZCA+PSA2ICYmIE1hdGgucmFuZG9tKCkgPCAwLjAxKTtcbiAgdGhpcy5zZW5kTlBTID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICBrZWVuLmFkZEV2ZW50KCdzdXJ2ZXktbnBzJywge1xuICAgICAgdmVyc2lvbjogdW5naXQudmVyc2lvbixcbiAgICAgIHVzZXJIYXNoOiB1bmdpdC51c2VySGFzaCxcbiAgICAgIHJhdGluZzogdmFsdWUsXG4gICAgICBidWd0cmFja2luZ0VuYWJsZWQ6IHVuZ2l0LmNvbmZpZy5idWd0cmFja2luZyxcbiAgICAgIHNlbmRVc2FnZVN0YXRpc3RpY3M6IHVuZ2l0LmNvbmZpZy5zZW5kVXNhZ2VTdGF0aXN0aWNzXG4gICAgfSk7XG4gICAgc2VsZi5kaXNtaXNzTlBTU3VydmV5KCk7XG4gIH1cblxufVxuXG5BcHBWaWV3TW9kZWwucHJvdG90eXBlLnVwZGF0ZU5vZGUgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50KSB7XG4gIGtvLnJlbmRlclRlbXBsYXRlKCdhcHAnLCB0aGlzLCB7fSwgcGFyZW50RWxlbWVudCk7XG59XG5BcHBWaWV3TW9kZWwucHJvdG90eXBlLnRlbXBsYXRlID0gJ2FwcCc7XG5BcHBWaWV3TW9kZWwucHJvdG90eXBlLnNob3duID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgLy8gVGhlIHVuZ2l0LmNvbmZpZyB2YXJpYWJsZSBjb2xsZWN0aW9ucyBjb25maWd1cmF0aW9uIGZyb20gYWxsIGRpZmZlcmVudCBwYXRocyBhbmQgb25seSB1cGRhdGVzIHdoZW5cbiAgLy8gdW5naXQgaXMgcmVzdGFydGVkXG4gIGlmKCF1bmdpdC5jb25maWcuYnVndHJhY2tpbmcpIHtcbiAgICAvLyBXaGVyZWFzIHRoZSB1c2VyY29uZmlnIG9ubHkgcmVmbGVjdHMgd2hhdCdzIGluIHRoZSB+Ly51bmdpdHJjIGFuZCB1cGRhdGVzIGRpcmVjdGx5LFxuICAgIC8vIGJ1dCBpcyBvbmx5IHVzZWQgZm9yIGNoYW5naW5nIGFyb3VuZCB0aGUgY29uZmlndXJhdGlvbi4gV2UgbmVlZCB0byBjaGVjayB0aGlzIGhlcmVcbiAgICAvLyBzaW5jZSB1bmdpdCBtYXkgaGF2ZSBjcmFzaGVkIHdpdGhvdXQgdGhlIHNlcnZlciBjcmFzaGluZyBzaW5jZSB3ZSBlbmFibGVkIGJ1Z3RyYWNraW5nLFxuICAgIC8vIGFuZCB3ZSBkb24ndCB3YW50IHRvIHNob3cgdGhlIG5hZ3NjcmVlbiB0d2ljZSBpbiB0aGF0IGNhc2UuXG4gICAgdGhpcy5zZXJ2ZXIuZ2V0KCcvdXNlcmNvbmZpZycsIHVuZGVmaW5lZCwgZnVuY3Rpb24oZXJyLCB1c2VyQ29uZmlnKSB7XG4gICAgICBzZWxmLmJ1Z3RyYWNraW5nRW5hYmxlZCh1c2VyQ29uZmlnLmJ1Z3RyYWNraW5nKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRoaXMuc2VydmVyLmdldCgnL2xhdGVzdHZlcnNpb24nLCB1bmRlZmluZWQsIGZ1bmN0aW9uKGVyciwgdmVyc2lvbikge1xuICAgIGlmICghdmVyc2lvbikgcmV0dXJuO1xuICAgIHNlbGYuY3VycmVudFZlcnNpb24odmVyc2lvbi5jdXJyZW50VmVyc2lvbik7XG4gICAgc2VsZi5sYXRlc3RWZXJzaW9uKHZlcnNpb24ubGF0ZXN0VmVyc2lvbik7XG4gICAgc2VsZi5uZXdWZXJzaW9uQXZhaWxhYmxlKHZlcnNpb24ub3V0ZGF0ZWQpO1xuICB9KTtcbiAgdGhpcy5zZXJ2ZXIuZ2V0KCcvZ2l0dmVyc2lvbicsIHVuZGVmaW5lZCwgZnVuY3Rpb24oZXJyLCBnaXR2ZXJzaW9uKSB7XG4gICAgaWYgKCFnaXR2ZXJzaW9uKSByZXR1cm47XG4gICAgaWYgKCFnaXR2ZXJzaW9uLnNhdGlzZmllZCkge1xuICAgICAgc2VsZi5naXRWZXJzaW9uRXJyb3IoZ2l0dmVyc2lvbi5lcnJvcik7XG4gICAgfVxuICB9KTtcbn1cbkFwcFZpZXdNb2RlbC5wcm90b3R5cGUudXBkYXRlQW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbihkZWx0YVQpIHtcbiAgaWYgKHRoaXMuY29udGVudCgpICYmIHRoaXMuY29udGVudCgpLnVwZGF0ZUFuaW1hdGlvbkZyYW1lKSB0aGlzLmNvbnRlbnQoKS51cGRhdGVBbmltYXRpb25GcmFtZShkZWx0YVQpO1xufVxuQXBwVmlld01vZGVsLnByb3RvdHlwZS5vblByb2dyYW1FdmVudCA9IGZ1bmN0aW9uKGV2ZW50KSB7XG4gIGlmIChldmVudC5ldmVudCA9PSAncmVxdWVzdC1jcmVkZW50aWFscycpIHRoaXMuX2hhbmRsZUNyZWRlbnRpYWxzUmVxdWVzdGVkKGV2ZW50KTtcbiAgZWxzZSBpZiAoZXZlbnQuZXZlbnQgPT0gJ3JlcXVlc3Qtc2hvdy1kaWFsb2cnKSB0aGlzLnNob3dEaWFsb2coZXZlbnQuZGlhbG9nKTtcbiAgZWxzZSBpZiAoZXZlbnQuZXZlbnQgPT0gJ3JlcXVlc3QtcmVtZW1iZXItcmVwbycpIHRoaXMuX2hhbmRsZVJlcXVlc3RSZW1lbWJlclJlcG8oZXZlbnQpO1xuXG4gIGlmICh0aGlzLmNvbnRlbnQoKSAmJiB0aGlzLmNvbnRlbnQoKS5vblByb2dyYW1FdmVudClcbiAgICB0aGlzLmNvbnRlbnQoKS5vblByb2dyYW1FdmVudChldmVudCk7XG4gIGlmICh0aGlzLmhlYWRlciAmJiB0aGlzLmhlYWRlci5vblByb2dyYW1FdmVudCkgdGhpcy5oZWFkZXIub25Qcm9ncmFtRXZlbnQoZXZlbnQpO1xufVxuQXBwVmlld01vZGVsLnByb3RvdHlwZS5faGFuZGxlUmVxdWVzdFJlbWVtYmVyUmVwbyA9IGZ1bmN0aW9uKGV2ZW50KSB7XG4gIHZhciByZXBvUGF0aCA9IGV2ZW50LnJlcG9QYXRoO1xuICBpZiAodGhpcy5yZXBvTGlzdC5pbmRleE9mKHJlcG9QYXRoKSAhPSAtMSkgcmV0dXJuO1xuICB0aGlzLnJlcG9MaXN0LnB1c2gocmVwb1BhdGgpO1xufVxuQXBwVmlld01vZGVsLnByb3RvdHlwZS5faGFuZGxlQ3JlZGVudGlhbHNSZXF1ZXN0ZWQgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgZGlhZztcbiAgLy8gT25seSBzaG93IG9uZSBjcmVkZW50aWFscyBkaWFsb2cgaWYgd2UncmUgYXNrZWQgdG8gc2hvdyBhbm90aGVyIG9uZSB3aGlsZSB0aGUgZmlyc3Qgb25lIGlzIG9wZW5cbiAgLy8gVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aGVuIHdlIGZldGNoIG5vZGVzIGFuZCByZW1vdGUgdGFncyBhdCB0aGUgc2FtZSB0aW1lXG4gIGlmICh0aGlzLl9pc1Nob3dpbmdDcmVkZW50aWFsc0RpYWxvZylcbiAgICBkaWFnID0gc2VsZi5kaWFsb2coKTtcbiAgZWxzZSB7XG4gICAgZGlhZyA9IGNvbXBvbmVudHMuY3JlYXRlKCdjcmVkZW50aWFsc2RpYWxvZycpO1xuICAgIHNlbGYuc2hvd0RpYWxvZyhkaWFnKTtcbiAgfVxuICB0aGlzLl9pc1Nob3dpbmdDcmVkZW50aWFsc0RpYWxvZyA9IHRydWU7XG4gIGRpYWcuY2xvc2VkLmFkZChmdW5jdGlvbigpIHtcbiAgICBzZWxmLl9pc1Nob3dpbmdDcmVkZW50aWFsc0RpYWxvZyA9IGZhbHNlO1xuICAgIHByb2dyYW1FdmVudHMuZGlzcGF0Y2goeyBldmVudDogJ3JlcXVlc3QtY3JlZGVudGlhbHMtcmVzcG9uc2UnLCB1c2VybmFtZTogZGlhZy51c2VybmFtZSgpLCBwYXNzd29yZDogZGlhZy5wYXNzd29yZCgpIH0pO1xuICB9KTtcbn1cbkFwcFZpZXdNb2RlbC5wcm90b3R5cGUuc2hvd0RpYWxvZyA9IGZ1bmN0aW9uKGRpYWxvZykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIGRpYWxvZy5jbG9zZWQuYWRkKGZ1bmN0aW9uKCkge1xuICAgIHNlbGYuZGlhbG9nKG51bGwpO1xuICB9KVxuICB0aGlzLmRpYWxvZyhkaWFsb2cpO1xufVxuQXBwVmlld01vZGVsLnByb3RvdHlwZS5lbmFibGVCdWd0cmFja2luZ0FuZFN0YXRpc3RpY3MgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnNlcnZlci5nZXQoJy91c2VyY29uZmlnJywgdW5kZWZpbmVkLCBmdW5jdGlvbihlcnIsIHVzZXJDb25maWcpIHtcbiAgICBpZiAoZXJyKSByZXR1cm47XG4gICAgdXNlckNvbmZpZy5idWd0cmFja2luZyA9IHRydWU7XG4gICAgdXNlckNvbmZpZy5zZW5kVXNhZ2VTdGF0aXN0aWNzID0gdHJ1ZTtcbiAgICBzZWxmLnNlcnZlci5wb3N0KCcvdXNlcmNvbmZpZycsIHVzZXJDb25maWcsIGZ1bmN0aW9uKGVycikge1xuICAgICAgaWYgKGVycikgcmV0dXJuO1xuICAgICAgc2VsZi5idWd0cmFja2luZ0VuYWJsZWQodHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xufVxuQXBwVmlld01vZGVsLnByb3RvdHlwZS5lbmFibGVCdWd0cmFja2luZyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuc2VydmVyLmdldCgnL3VzZXJjb25maWcnLCB1bmRlZmluZWQsIGZ1bmN0aW9uKGVyciwgdXNlckNvbmZpZykge1xuICAgIGlmIChlcnIpIHJldHVybjtcbiAgICB1c2VyQ29uZmlnLmJ1Z3RyYWNraW5nID0gdHJ1ZTtcbiAgICBzZWxmLnNlcnZlci5wb3N0KCcvdXNlcmNvbmZpZycsIHVzZXJDb25maWcsIGZ1bmN0aW9uKGVycikge1xuICAgICAgaWYgKGVycikgcmV0dXJuO1xuICAgICAgc2VsZi5idWd0cmFja2luZ0VuYWJsZWQodHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xufVxuQXBwVmlld01vZGVsLnByb3RvdHlwZS5kaXNtaXNzQnVndHJhY2tpbmdOYWdzY3JlZW4gPSBmdW5jdGlvbigpIHtcbiAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2J1Z3RyYWNraW5nTmFnc2NyZWVuRGlzbWlzc2VkJywgdHJ1ZSk7XG4gIHRoaXMuYnVndHJhY2tpbmdOYWdzY3JlZW5EaXNtaXNzZWQodHJ1ZSk7XG59XG5BcHBWaWV3TW9kZWwucHJvdG90eXBlLmRpc21pc3NHaXRWZXJzaW9uRXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2dpdFZlcnNpb25FcnJvckRpc21pc3NlZCcsIHRydWUpO1xuICB0aGlzLmdpdFZlcnNpb25FcnJvckRpc21pc3NlZCh0cnVlKTtcbn1cbkFwcFZpZXdNb2RlbC5wcm90b3R5cGUuZGlzbWlzc05QU1N1cnZleSA9IGZ1bmN0aW9uKCkge1xuICB0aGlzLnNob3dOUFNTdXJ2ZXkoZmFsc2UpO1xuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnTlBTU3VydmV5TGFzdERpc21pc3NlZCcsIERhdGUubm93KCkpO1xufVxuQXBwVmlld01vZGVsLnByb3RvdHlwZS50ZW1wbGF0ZUNob29zZXIgPSBmdW5jdGlvbihkYXRhKSB7XG4gIGlmICghZGF0YSkgcmV0dXJuICcnO1xuICByZXR1cm4gZGF0YS50ZW1wbGF0ZTtcbn07XG4iXX0= diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.css deleted file mode 100644 index 262edb71..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.css +++ /dev/null @@ -1,4 +0,0 @@ - -.app-wrapper { - padding-top: 21px; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.html deleted file mode 100644 index ecb7a958..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.html +++ /dev/null @@ -1,61 +0,0 @@ - - -
-
- -
-
- - -
- -
- A new version of ungit () is available! Run to install. (You are currently running version .) - -
- -
- -

Help make ungit better with the press of a button!

- - - - -
- -
- - Hi! This is a one-question survey to learn more about how people use Ungit. You can dismiss it by clicking the x in the upper right corner. -

Question: How likely are you to recommend Ungit to your friends and colleagues?

-

-

- 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 -
-
- Not at all likely -
Extremely likely
-
-

-
- -
- - -
- - -
- - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.js deleted file mode 100644 index bf50f064..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/app.js +++ /dev/null @@ -1,166 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); -var programEvents = require('ungit-program-events'); -var navigation = require('ungit-navigation'); - -components.register('app', function(args) { - return new AppViewModel(args.appContainer, args.server); -}); - -var AppViewModel = function(appContainer, server) { - var self = this; - this.appContainer = appContainer; - this.server = server; - if (window.location.search.indexOf('noheader=true') < 0) - this.header = components.create('header', { app: this }); - this.dialog = ko.observable(null); - - this.repoList = ko.observableArray(JSON.parse(localStorage.getItem('repositories') || localStorage.getItem('visitedRepositories') || '[]')); // visitedRepositories is legacy, remove in the next version - this.repoList.subscribe(function(newValue) { localStorage.setItem('repositories', JSON.stringify(newValue)); }); - - this.content = ko.observable(components.create('home', { app: this })); - this.currentVersion = ko.observable(); - this.latestVersion = ko.observable(); - this.newVersionAvailable = ko.observable(); - this.newVersionInstallCommand = (ungit.platform == 'win32' ? '' : 'sudo -H ') + 'npm update -g ungit'; - this.bugtrackingEnabled = ko.observable(ungit.config.bugtracking); - - this.bugtrackingNagscreenDismissed = ko.observable(localStorage.getItem('bugtrackingNagscreenDismissed')); - this.showBugtrackingNagscreen = ko.computed(function() { - return !self.bugtrackingEnabled() && !self.bugtrackingNagscreenDismissed(); - }); - - this.gitVersionErrorDismissed = ko.observable(localStorage.getItem('gitVersionErrorDismissed')); - this.gitVersionError = ko.observable(); - this.gitVersionErrorVisible = ko.computed(function() { - return !ungit.config.gitVersionCheckOverride && self.gitVersionError() && !self.gitVersionErrorDismissed(); - }); - - var NPSSurveyLastDismissed = parseInt(localStorage.getItem('NPSSurveyLastDismissed') || '0'); - var monthsSinceNPSLastDismissed = (Date.now() - NPSSurveyLastDismissed) / (1000 * 60 * 60 * 24 * 30); - this.showNPSSurvey = ko.observable(monthsSinceNPSLastDismissed >= 6 && Math.random() < 0.01); - this.sendNPS = function(value) { - keen.addEvent('survey-nps', { - version: ungit.version, - userHash: ungit.userHash, - rating: value, - bugtrackingEnabled: ungit.config.bugtracking, - sendUsageStatistics: ungit.config.sendUsageStatistics - }); - self.dismissNPSSurvey(); - } - -} - -AppViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('app', this, {}, parentElement); -} -AppViewModel.prototype.template = 'app'; -AppViewModel.prototype.shown = function() { - var self = this; - // The ungit.config variable collections configuration from all different paths and only updates when - // ungit is restarted - if(!ungit.config.bugtracking) { - // Whereas the userconfig only reflects what's in the ~/.ungitrc and updates directly, - // but is only used for changing around the configuration. We need to check this here - // since ungit may have crashed without the server crashing since we enabled bugtracking, - // and we don't want to show the nagscreen twice in that case. - this.server.get('/userconfig', undefined, function(err, userConfig) { - self.bugtrackingEnabled(userConfig.bugtracking); - }); - } - - this.server.get('/latestversion', undefined, function(err, version) { - if (!version) return; - self.currentVersion(version.currentVersion); - self.latestVersion(version.latestVersion); - self.newVersionAvailable(version.outdated); - }); - this.server.get('/gitversion', undefined, function(err, gitversion) { - if (!gitversion) return; - if (!gitversion.satisfied) { - self.gitVersionError(gitversion.error); - } - }); -} -AppViewModel.prototype.updateAnimationFrame = function(deltaT) { - if (this.content() && this.content().updateAnimationFrame) this.content().updateAnimationFrame(deltaT); -} -AppViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'request-credentials') this._handleCredentialsRequested(event); - else if (event.event == 'request-show-dialog') this.showDialog(event.dialog); - else if (event.event == 'request-remember-repo') this._handleRequestRememberRepo(event); - - if (this.content() && this.content().onProgramEvent) - this.content().onProgramEvent(event); - if (this.header && this.header.onProgramEvent) this.header.onProgramEvent(event); -} -AppViewModel.prototype._handleRequestRememberRepo = function(event) { - var repoPath = event.repoPath; - if (this.repoList.indexOf(repoPath) != -1) return; - this.repoList.push(repoPath); -} -AppViewModel.prototype._handleCredentialsRequested = function() { - var self = this; - var diag; - // Only show one credentials dialog if we're asked to show another one while the first one is open - // This happens for instance when we fetch nodes and remote tags at the same time - if (this._isShowingCredentialsDialog) - diag = self.dialog(); - else { - diag = components.create('credentialsdialog'); - self.showDialog(diag); - } - this._isShowingCredentialsDialog = true; - diag.closed.add(function() { - self._isShowingCredentialsDialog = false; - programEvents.dispatch({ event: 'request-credentials-response', username: diag.username(), password: diag.password() }); - }); -} -AppViewModel.prototype.showDialog = function(dialog) { - var self = this; - dialog.closed.add(function() { - self.dialog(null); - }) - this.dialog(dialog); -} -AppViewModel.prototype.enableBugtrackingAndStatistics = function() { - var self = this; - this.server.get('/userconfig', undefined, function(err, userConfig) { - if (err) return; - userConfig.bugtracking = true; - userConfig.sendUsageStatistics = true; - self.server.post('/userconfig', userConfig, function(err) { - if (err) return; - self.bugtrackingEnabled(true); - }); - }); -} -AppViewModel.prototype.enableBugtracking = function() { - var self = this; - this.server.get('/userconfig', undefined, function(err, userConfig) { - if (err) return; - userConfig.bugtracking = true; - self.server.post('/userconfig', userConfig, function(err) { - if (err) return; - self.bugtrackingEnabled(true); - }); - }); -} -AppViewModel.prototype.dismissBugtrackingNagscreen = function() { - localStorage.setItem('bugtrackingNagscreenDismissed', true); - this.bugtrackingNagscreenDismissed(true); -} -AppViewModel.prototype.dismissGitVersionError = function() { - localStorage.setItem('gitVersionErrorDismissed', true); - this.gitVersionErrorDismissed(true); -} -AppViewModel.prototype.dismissNPSSurvey = function() { - this.showNPSSurvey(false); - localStorage.setItem('NPSSurveyLastDismissed', Date.now()); -} -AppViewModel.prototype.templateChooser = function(data) { - if (!data) return ''; - return data.template; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/ungit-plugin.json deleted file mode 100644 index 1a351400..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/app/ungit-plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "app": "app.html" - }, - "javascript": "app.bundle.js" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/branches.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/branches.bundle.js deleted file mode 100644 index 6f96665c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/branches.bundle.js +++ /dev/null @@ -1,91 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o b.name) - return 1; - return 0; - }); - self.branches(sorted); - self.current(undefined); - branches.forEach(function(branch) { - if (branch.current) { - self.current(branch.name); - } - }); - } - - self.fetchingProgressBar.stop(); - }); -} - -BranchesViewModel.prototype.branchRemove = function(branch) { - var self = this; - var diag = components.create('yesnodialog', { title: 'Are you sure?', details: 'Deleting ' + branch.name + ' branch cannot be undone with ungit.'}); - diag.closed.add(function() { - if (diag.result()) { - self.server.del('/branches', { name: branch.name, path: self.repoPath() }, function(err) { - if (!err) { - programEvents.dispatch({ event: 'working-tree-changed' }); - } - }); - } - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} - -},{"async":"async","knockout":"knockout","lodash":"lodash","ungit-components":"ungit-components","ungit-program-events":"ungit-program-events"}]},{},[1]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJjb21wb25lbnRzL2JyYW5jaGVzL2JyYW5jaGVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiXG52YXIga28gPSByZXF1aXJlKCdrbm9ja291dCcpO1xudmFyIF8gPSByZXF1aXJlKCdsb2Rhc2gnKTtcbnZhciBhc3luYyA9IHJlcXVpcmUoJ2FzeW5jJyk7XG52YXIgY29tcG9uZW50cyA9IHJlcXVpcmUoJ3VuZ2l0LWNvbXBvbmVudHMnKTtcbnZhciBwcm9ncmFtRXZlbnRzID0gcmVxdWlyZSgndW5naXQtcHJvZ3JhbS1ldmVudHMnKTtcblxuY29tcG9uZW50cy5yZWdpc3RlcignYnJhbmNoZXMnLCBmdW5jdGlvbihhcmdzKSB7XG4gIHJldHVybiBuZXcgQnJhbmNoZXNWaWV3TW9kZWwoYXJncy5zZXJ2ZXIsIGFyZ3MucmVwb1BhdGgpO1xufSk7XG5cbmZ1bmN0aW9uIEJyYW5jaGVzVmlld01vZGVsKHNlcnZlciwgcmVwb1BhdGgpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnJlcG9QYXRoID0gcmVwb1BhdGg7XG4gIHRoaXMuc2VydmVyID0gc2VydmVyO1xuICB0aGlzLmJyYW5jaGVzID0ga28ub2JzZXJ2YWJsZUFycmF5KCk7XG4gIHRoaXMuZmV0Y2hpbmdQcm9ncmVzc0JhciA9IGNvbXBvbmVudHMuY3JlYXRlKCdwcm9ncmVzc0JhcicsIHsgcHJlZGljdGlvbk1lbW9yeUtleTogJ2ZldGNoaW5nLScgKyB0aGlzLnJlcG9QYXRoKCksIHRlbXBvcmFyeTogdHJ1ZSB9KTtcbiAgdGhpcy5jdXJyZW50ID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLmZldGNoTGFiZWwgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICBpZiAoc2VsZi5jdXJyZW50KCkpIHtcbiAgICAgIHJldHVybiBzZWxmLmN1cnJlbnQoKTtcbiAgICB9XG4gIH0pO1xuICB0aGlzLnVwZGF0ZUJyYW5jaGVzKCk7XG59XG5CcmFuY2hlc1ZpZXdNb2RlbC5wcm90b3R5cGUudXBkYXRlTm9kZSA9IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpIHtcbiAga28ucmVuZGVyVGVtcGxhdGUoJ2JyYW5jaGVzJywgdGhpcywge30sIHBhcmVudEVsZW1lbnQpO1xufVxuQnJhbmNoZXNWaWV3TW9kZWwucHJvdG90eXBlLmNsaWNrRmV0Y2ggPSBmdW5jdGlvbigpIHsgdGhpcy51cGRhdGVCcmFuY2hlcygpOyB9XG5CcmFuY2hlc1ZpZXdNb2RlbC5wcm90b3R5cGUub25Qcm9ncmFtRXZlbnQgPSBmdW5jdGlvbihldmVudCkge1xuICBpZiAoZXZlbnQuZXZlbnQgPT09ICd3b3JraW5nLXRyZWUtY2hhbmdlZCcgfHwgZXZlbnQuZXZlbnQgPT0gJ3JlcXVlc3QtYXBwLWNvbnRlbnQtcmVmcmVzaCcgfHwgZXZlbnQuZXZlbnQgPT0gJ2JyYW5jaC11cGRhdGVkJykge1xuICAgIHRoaXMudXBkYXRlQnJhbmNoZXMoKTtcbiAgfVxufVxuQnJhbmNoZXNWaWV3TW9kZWwucHJvdG90eXBlLmNoZWNrb3V0QnJhbmNoID0gZnVuY3Rpb24oYnJhbmNoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5mZXRjaGluZ1Byb2dyZXNzQmFyLnN0YXJ0KCk7XG4gIHRoaXMuc2VydmVyLnBvc3QoJy9jaGVja291dCcsIHsgcGF0aDogdGhpcy5yZXBvUGF0aCgpLCBuYW1lOiBicmFuY2gubmFtZSB9LCBmdW5jdGlvbihlcnIpIHtcbiAgICBpZiAoZXJyKSByZXR1cm47XG4gICAgc2VsZi5jdXJyZW50KGJyYW5jaC5uYW1lKTtcbiAgICBzZWxmLmZldGNoaW5nUHJvZ3Jlc3NCYXIuc3RvcCgpO1xuICB9KTtcbn1cbkJyYW5jaGVzVmlld01vZGVsLnByb3RvdHlwZS51cGRhdGVCcmFuY2hlcyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuZmV0Y2hpbmdQcm9ncmVzc0Jhci5zdGFydCgpO1xuICB0aGlzLnNlcnZlci5nZXQoJy9icmFuY2hlcycsIHsgcGF0aDogdGhpcy5yZXBvUGF0aCgpIH0sIGZ1bmN0aW9uKGVyciwgYnJhbmNoZXMpIHtcbiAgICBpZiAoZXJyKSB7XG4gICAgICBzZWxmLmN1cnJlbnQoXCJ+ZXJyb3JcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGJyYW5jaGVzKSB7XG4gICAgICB2YXIgc29ydGVkID0gYnJhbmNoZXMuc29ydChmdW5jdGlvbihhLCBiKSB7XG4gICAgICAgIGlmIChhLm5hbWUgPCBiLm5hbWUpXG4gICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgaWYgKGEubmFtZSA+IGIubmFtZSlcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9KTtcbiAgICAgIHNlbGYuYnJhbmNoZXMoc29ydGVkKTtcbiAgICAgIHNlbGYuY3VycmVudCh1bmRlZmluZWQpO1xuICAgICAgYnJhbmNoZXMuZm9yRWFjaChmdW5jdGlvbihicmFuY2gpIHtcbiAgICAgICAgaWYgKGJyYW5jaC5jdXJyZW50KSB7XG4gICAgICAgICAgc2VsZi5jdXJyZW50KGJyYW5jaC5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2VsZi5mZXRjaGluZ1Byb2dyZXNzQmFyLnN0b3AoKTtcbiAgfSk7XG59XG5cbkJyYW5jaGVzVmlld01vZGVsLnByb3RvdHlwZS5icmFuY2hSZW1vdmUgPSBmdW5jdGlvbihicmFuY2gpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgZGlhZyA9IGNvbXBvbmVudHMuY3JlYXRlKCd5ZXNub2RpYWxvZycsIHsgdGl0bGU6ICdBcmUgeW91IHN1cmU/JywgZGV0YWlsczogJ0RlbGV0aW5nICcgKyBicmFuY2gubmFtZSArICcgYnJhbmNoIGNhbm5vdCBiZSB1bmRvbmUgd2l0aCB1bmdpdC4nfSk7XG4gIGRpYWcuY2xvc2VkLmFkZChmdW5jdGlvbigpIHtcbiAgICBpZiAoZGlhZy5yZXN1bHQoKSkge1xuICAgICAgc2VsZi5zZXJ2ZXIuZGVsKCcvYnJhbmNoZXMnLCB7IG5hbWU6IGJyYW5jaC5uYW1lLCBwYXRoOiBzZWxmLnJlcG9QYXRoKCkgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgIGlmICghZXJyKSB7XG4gICAgICAgICAgcHJvZ3JhbUV2ZW50cy5kaXNwYXRjaCh7IGV2ZW50OiAnd29ya2luZy10cmVlLWNoYW5nZWQnIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuICBwcm9ncmFtRXZlbnRzLmRpc3BhdGNoKHsgZXZlbnQ6ICdyZXF1ZXN0LXNob3ctZGlhbG9nJywgZGlhbG9nOiBkaWFnIH0pO1xufVxuIl19 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/branches.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/branches.html deleted file mode 100644 index 9bcb585f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/branches.html +++ /dev/null @@ -1,18 +0,0 @@ -
- - - -
diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/branches.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/branches.js deleted file mode 100644 index 6548461e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/branches.js +++ /dev/null @@ -1,87 +0,0 @@ - -var ko = require('knockout'); -var _ = require('lodash'); -var async = require('async'); -var components = require('ungit-components'); -var programEvents = require('ungit-program-events'); - -components.register('branches', function(args) { - return new BranchesViewModel(args.server, args.repoPath); -}); - -function BranchesViewModel(server, repoPath) { - var self = this; - this.repoPath = repoPath; - this.server = server; - this.branches = ko.observableArray(); - this.fetchingProgressBar = components.create('progressBar', { predictionMemoryKey: 'fetching-' + this.repoPath(), temporary: true }); - this.current = ko.observable(); - this.fetchLabel = ko.computed(function() { - if (self.current()) { - return self.current(); - } - }); - this.updateBranches(); -} -BranchesViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('branches', this, {}, parentElement); -} -BranchesViewModel.prototype.clickFetch = function() { this.updateBranches(); } -BranchesViewModel.prototype.onProgramEvent = function(event) { - if (event.event === 'working-tree-changed' || event.event == 'request-app-content-refresh' || event.event == 'branch-updated') { - this.updateBranches(); - } -} -BranchesViewModel.prototype.checkoutBranch = function(branch) { - var self = this; - this.fetchingProgressBar.start(); - this.server.post('/checkout', { path: this.repoPath(), name: branch.name }, function(err) { - if (err) return; - self.current(branch.name); - self.fetchingProgressBar.stop(); - }); -} -BranchesViewModel.prototype.updateBranches = function() { - var self = this; - this.fetchingProgressBar.start(); - this.server.get('/branches', { path: this.repoPath() }, function(err, branches) { - if (err) { - self.current("~error"); - return; - } - - if (branches) { - var sorted = branches.sort(function(a, b) { - if (a.name < b.name) - return -1; - if (a.name > b.name) - return 1; - return 0; - }); - self.branches(sorted); - self.current(undefined); - branches.forEach(function(branch) { - if (branch.current) { - self.current(branch.name); - } - }); - } - - self.fetchingProgressBar.stop(); - }); -} - -BranchesViewModel.prototype.branchRemove = function(branch) { - var self = this; - var diag = components.create('yesnodialog', { title: 'Are you sure?', details: 'Deleting ' + branch.name + ' branch cannot be undone with ungit.'}); - diag.closed.add(function() { - if (diag.result()) { - self.server.del('/branches', { name: branch.name, path: self.repoPath() }, function(err) { - if (!err) { - programEvents.dispatch({ event: 'working-tree-changed' }); - } - }); - } - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/ungit-plugin.json deleted file mode 100644 index 1939dfc9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/branches/ungit-plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "branches": "branches.html" - }, - "javascript": "branches.bundle.js" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.bundle.js deleted file mode 100644 index d0d30269..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.bundle.js +++ /dev/null @@ -1,97 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 0; - }); - - this.selectedDiffLeftPosition = ko.observable(); - this.diffStyle = ko.computed(function() { - if (self.selected()) return { left: self.selectedDiffLeftPosition() + 'px', width: (window.innerWidth - 220) + 'px' }; - else return { left: '0px', width: self.element() ? ((self.element().clientWidth - 20) + 'px') : 'inherit' }; - }); -} -CommitViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('commit', this, {}, parentElement); -} -CommitViewModel.prototype.setData = function(args) { - this.commitTime(moment(new Date(args.commitDate))); - this.authorTime(moment(new Date(args.authorDate))); - var message = args.message.split('\n'); - this.message(args.message); - this.title(message[0]); - this.body(message.slice(2).join('\n')); - this.authorDate(moment(new Date(args.authorDate))); - this.authorDateFromNow(this.authorDate().fromNow()); - this.authorName(args.authorName); - this.authorEmail(args.authorEmail); - this.numberOfAddedLines(args.fileLineDiffs.length > 0 ? args.fileLineDiffs[0][0] : 0); - this.numberOfRemovedLines(args.fileLineDiffs.length > 0 ? args.fileLineDiffs[0][1] : 0); - this.fileLineDiffs(args.fileLineDiffs); - this.isInited = true; - this.commitDiff = ko.observable(components.create('commitDiff', - { fileLineDiffs: this.fileLineDiffs(), - sha1: this.sha1, - repoPath: this.repoPath, - server: this.server, - textDiffType: this.textDiffType, - wordWrap: this.wordWrap })); -} -CommitViewModel.prototype.updateLastAuthorDateFromNow = function(deltaT) { - this.lastUpdatedAuthorDateFromNow = this.lastUpdatedAuthorDateFromNow || 0; - this.lastUpdatedAuthorDateFromNow += deltaT; - if(this.lastUpdatedAuthorDateFromNow > 60 * 1000) { - this.lastUpdatedAuthorDateFromNow = 0; - this.authorDateFromNow(this.authorDate().fromNow()); - } -} -CommitViewModel.prototype.updateAnimationFrame = function(deltaT) { - this.updateLastAuthorDateFromNow(deltaT); -} -CommitViewModel.prototype.textDiffTypeChange = function(type) { - this.textDiffType(type); -} -CommitViewModel.prototype.stopClickPropagation = function(data, event) { - event.stopImmediatePropagation(); -} -CommitViewModel.prototype.toggleWordWrap = function(state) { - this.wordWrap(state); -} - -},{"blueimp-md5":"blueimp-md5","knockout":"knockout","moment":"moment","ungit-components":"ungit-components","ungit-navigation":"ungit-navigation","ungit-program-events":"ungit-program-events"}]},{},[1]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJjb21wb25lbnRzL2NvbW1pdC9jb21taXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCJcbnZhciBrbyA9IHJlcXVpcmUoJ2tub2Nrb3V0Jyk7XG52YXIgY29tcG9uZW50cyA9IHJlcXVpcmUoJ3VuZ2l0LWNvbXBvbmVudHMnKTtcbnZhciBuYXZpZ2F0aW9uID0gcmVxdWlyZSgndW5naXQtbmF2aWdhdGlvbicpO1xudmFyIHByb2dyYW1FdmVudHMgPSByZXF1aXJlKCd1bmdpdC1wcm9ncmFtLWV2ZW50cycpO1xudmFyIG1kNSA9IHJlcXVpcmUoJ2JsdWVpbXAtbWQ1Jyk7XG52YXIgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7XG5cbmNvbXBvbmVudHMucmVnaXN0ZXIoJ2NvbW1pdCcsIGZ1bmN0aW9uKGFyZ3MpIHtcbiAgcmV0dXJuIG5ldyBDb21taXRWaWV3TW9kZWwoYXJncyk7XG59KTtcblxuZnVuY3Rpb24gQ29tbWl0Vmlld01vZGVsKGFyZ3MpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnJlcG9QYXRoID0gYXJncy5yZXBvUGF0aDtcbiAgdGhpcy5zaGExID0gYXJncy5zaGExO1xuICB0aGlzLnNlcnZlciA9IGFyZ3Muc2VydmVyO1xuICB0aGlzLmhpZ2hsaWdodGVkID0gYXJncy5oaWdobGlnaHRlZDtcbiAgdGhpcy5ub2RlSXNNb3VzZWhvdmVyID0gYXJncy5ub2RlSXNNb3VzZWhvdmVyO1xuICB0aGlzLnNlbGVjdGVkID0gYXJncy5zZWxlY3RlZDtcbiAgdGhpcy5lbGVtZW50ID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLmNvbW1pdFRpbWUgPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMuYXV0aG9yVGltZSA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5tZXNzYWdlID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLnRpdGxlID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLmJvZHkgPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMuYXV0aG9yRGF0ZSA9IGtvLm9ic2VydmFibGUoMCk7XG4gIHRoaXMuYXV0aG9yRGF0ZUZyb21Ob3cgPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMuYXV0aG9yTmFtZSA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5hdXRob3JFbWFpbCA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5maWxlTGluZURpZmZzID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLm51bWJlck9mQWRkZWRMaW5lcyA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5udW1iZXJPZlJlbW92ZWRMaW5lcyA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5hdXRob3JHcmF2YXRhciA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkgeyByZXR1cm4gbWQ1KHNlbGYuYXV0aG9yRW1haWwoKSk7IH0pO1xuICB0aGlzLnRleHREaWZmVHlwZSA9IGtvLm9ic2VydmFibGUoJ3RleHRkaWZmJyk7XG4gIHRoaXMud29yZFdyYXAgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuICB0aGlzLnNob3dDb21taXREaWZmID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHNlbGYuZmlsZUxpbmVEaWZmcygpICYmIHNlbGYuZmlsZUxpbmVEaWZmcygpLmxlbmd0aCA+IDA7XG4gIH0pO1xuXG4gIHRoaXMuc2VsZWN0ZWREaWZmTGVmdFBvc2l0aW9uID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLmRpZmZTdHlsZSA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIGlmIChzZWxmLnNlbGVjdGVkKCkpIHJldHVybiB7IGxlZnQ6IHNlbGYuc2VsZWN0ZWREaWZmTGVmdFBvc2l0aW9uKCkgKyAncHgnLCB3aWR0aDogKHdpbmRvdy5pbm5lcldpZHRoIC0gMjIwKSArICdweCcgfTtcbiAgICBlbHNlIHJldHVybiB7IGxlZnQ6ICcwcHgnLCB3aWR0aDogc2VsZi5lbGVtZW50KCkgPyAoKHNlbGYuZWxlbWVudCgpLmNsaWVudFdpZHRoIC0gMjApICsgJ3B4JykgOiAnaW5oZXJpdCcgfTtcbiAgfSk7XG59XG5Db21taXRWaWV3TW9kZWwucHJvdG90eXBlLnVwZGF0ZU5vZGUgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50KSB7XG4gIGtvLnJlbmRlclRlbXBsYXRlKCdjb21taXQnLCB0aGlzLCB7fSwgcGFyZW50RWxlbWVudCk7XG59XG5Db21taXRWaWV3TW9kZWwucHJvdG90eXBlLnNldERhdGEgPSBmdW5jdGlvbihhcmdzKSB7XG4gIHRoaXMuY29tbWl0VGltZShtb21lbnQobmV3IERhdGUoYXJncy5jb21taXREYXRlKSkpO1xuICB0aGlzLmF1dGhvclRpbWUobW9tZW50KG5ldyBEYXRlKGFyZ3MuYXV0aG9yRGF0ZSkpKTtcbiAgdmFyIG1lc3NhZ2UgPSBhcmdzLm1lc3NhZ2Uuc3BsaXQoJ1xcbicpO1xuICB0aGlzLm1lc3NhZ2UoYXJncy5tZXNzYWdlKTtcbiAgdGhpcy50aXRsZShtZXNzYWdlWzBdKTtcbiAgdGhpcy5ib2R5KG1lc3NhZ2Uuc2xpY2UoMikuam9pbignXFxuJykpO1xuICB0aGlzLmF1dGhvckRhdGUobW9tZW50KG5ldyBEYXRlKGFyZ3MuYXV0aG9yRGF0ZSkpKTtcbiAgdGhpcy5hdXRob3JEYXRlRnJvbU5vdyh0aGlzLmF1dGhvckRhdGUoKS5mcm9tTm93KCkpO1xuICB0aGlzLmF1dGhvck5hbWUoYXJncy5hdXRob3JOYW1lKTtcbiAgdGhpcy5hdXRob3JFbWFpbChhcmdzLmF1dGhvckVtYWlsKTtcbiAgdGhpcy5udW1iZXJPZkFkZGVkTGluZXMoYXJncy5maWxlTGluZURpZmZzLmxlbmd0aCA+IDAgPyBhcmdzLmZpbGVMaW5lRGlmZnNbMF1bMF0gOiAwKTtcbiAgdGhpcy5udW1iZXJPZlJlbW92ZWRMaW5lcyhhcmdzLmZpbGVMaW5lRGlmZnMubGVuZ3RoID4gMCA/IGFyZ3MuZmlsZUxpbmVEaWZmc1swXVsxXSA6IDApO1xuICB0aGlzLmZpbGVMaW5lRGlmZnMoYXJncy5maWxlTGluZURpZmZzKTtcbiAgdGhpcy5pc0luaXRlZCA9IHRydWU7XG4gIHRoaXMuY29tbWl0RGlmZiA9IGtvLm9ic2VydmFibGUoY29tcG9uZW50cy5jcmVhdGUoJ2NvbW1pdERpZmYnLFxuICAgIHsgZmlsZUxpbmVEaWZmczogdGhpcy5maWxlTGluZURpZmZzKCksXG4gICAgICBzaGExOiB0aGlzLnNoYTEsXG4gICAgICByZXBvUGF0aDogdGhpcy5yZXBvUGF0aCxcbiAgICAgIHNlcnZlcjogdGhpcy5zZXJ2ZXIsXG4gICAgICB0ZXh0RGlmZlR5cGU6IHRoaXMudGV4dERpZmZUeXBlLFxuICAgICAgd29yZFdyYXA6IHRoaXMud29yZFdyYXAgfSkpO1xufVxuQ29tbWl0Vmlld01vZGVsLnByb3RvdHlwZS51cGRhdGVMYXN0QXV0aG9yRGF0ZUZyb21Ob3cgPSBmdW5jdGlvbihkZWx0YVQpIHtcbiAgdGhpcy5sYXN0VXBkYXRlZEF1dGhvckRhdGVGcm9tTm93ID0gdGhpcy5sYXN0VXBkYXRlZEF1dGhvckRhdGVGcm9tTm93IHx8IDA7XG4gIHRoaXMubGFzdFVwZGF0ZWRBdXRob3JEYXRlRnJvbU5vdyArPSBkZWx0YVQ7XG4gIGlmKHRoaXMubGFzdFVwZGF0ZWRBdXRob3JEYXRlRnJvbU5vdyA+IDYwICogMTAwMCkge1xuICAgIHRoaXMubGFzdFVwZGF0ZWRBdXRob3JEYXRlRnJvbU5vdyA9IDA7XG4gICAgdGhpcy5hdXRob3JEYXRlRnJvbU5vdyh0aGlzLmF1dGhvckRhdGUoKS5mcm9tTm93KCkpO1xuICB9XG59XG5Db21taXRWaWV3TW9kZWwucHJvdG90eXBlLnVwZGF0ZUFuaW1hdGlvbkZyYW1lID0gZnVuY3Rpb24oZGVsdGFUKSB7XG4gIHRoaXMudXBkYXRlTGFzdEF1dGhvckRhdGVGcm9tTm93KGRlbHRhVCk7XG59XG5Db21taXRWaWV3TW9kZWwucHJvdG90eXBlLnRleHREaWZmVHlwZUNoYW5nZSA9IGZ1bmN0aW9uKHR5cGUpIHtcbiAgdGhpcy50ZXh0RGlmZlR5cGUodHlwZSk7XG59XG5Db21taXRWaWV3TW9kZWwucHJvdG90eXBlLnN0b3BDbGlja1Byb3BhZ2F0aW9uID0gZnVuY3Rpb24oZGF0YSwgZXZlbnQpIHtcbiAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG59XG5Db21taXRWaWV3TW9kZWwucHJvdG90eXBlLnRvZ2dsZVdvcmRXcmFwID0gZnVuY3Rpb24oc3RhdGUpIHtcbiAgdGhpcy53b3JkV3JhcChzdGF0ZSk7XG59XG4iXX0= diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.css deleted file mode 100644 index 53cb2236..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.css +++ /dev/null @@ -1,92 +0,0 @@ -.commit { - position: relative; -} -.commit.highlighted { - z-index: 2; -} -.commit.highlighted .commit-box { - box-shadow: 5px 5px 0px rgba(0, 0, 0, 0.2); - background: #4B5766; - left: -5px; -} -.commit.highlighted .commit-box .arrowRight .shadow { - display: block; -} -.commit.highlighted .commit-box .arrowRight .arrow { - border-left: 15px solid #4A5665; -} -.commit.hover { - z-index: 3; -} -.commit.selected .details .diff-wrapper { - transition: width 0.1s, left 0.05s; - box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.15); -} -.commit.selected .details .diff-wrapper .diff-inner { - box-shadow: 5px 5px 0px rgba(0, 0, 0, 0.2); - padding: 10px; - padding-top: 0px; -} -.commit.selected .details .diff-wrapper .btn-group { - padding: 2px; - margin: 10px 0px 0px 10px; - margin-bottom: 0px; -} -.commit .commit-box .arrowRight { - position: absolute; - right: 0px; - top: 5px; -} -.commit .commit-box .arrowRight .shadow { - display: none; - height: 0px; - width: 0px; - margin-left: -1px; - border-top: 15px solid transparent; - border-bottom: 15px solid transparent; - border-left: 15px solid #1E2029; -} -.commit .commit-box .arrowRight .arrow { - height: 0px; - width: 0px; - border-top: 15px solid transparent; - border-bottom: 15px solid transparent; - border-left: 15px solid #3b4552; -} -.commit .commit-box > .panel-body { - position: relative; - padding: 10px; - margin-bottom: 0px; - width: 400px; - min-height: 85px; -} -.commit .commit-box > .panel-body .gravatar { - display: none; - margin-right: 10px; -} -.commit .commit-box > .panel-body .title { - font-size: 1.3em; - word-wrap: break-word; - display: block; -} -.commit .commit-box > .panel-body .details .body { - white-space: pre-wrap; - word-wrap: break-word; - color: #8F9FA6; -} -.commit .commit-box > .panel-body .details .diff-wrapper { - position: relative; - margin: 0px; - margin-top: 10px; - margin-bottom: 10px; - background: #4B5766; - border-radius: 3px; -} -@media (min-width: 992px) { - .commit .commit-box > .panel-body { - width: 550px; - } - .commit .commit-box > .panel-body .gravatar { - display: block; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.html deleted file mode 100644 index 50c41734..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.html +++ /dev/null @@ -1,52 +0,0 @@ -
-
-
-
-
-
-
-
- -
-
- - by -
-
- | - +, - - - | - -
-
-
- -
-
-
-
- - -
-
- - -
-
-
-
- -
-
-
diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.js deleted file mode 100644 index 3d258550..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.js +++ /dev/null @@ -1,93 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); -var navigation = require('ungit-navigation'); -var programEvents = require('ungit-program-events'); -var md5 = require('blueimp-md5'); -var moment = require('moment'); - -components.register('commit', function(args) { - return new CommitViewModel(args); -}); - -function CommitViewModel(args) { - var self = this; - this.repoPath = args.repoPath; - this.sha1 = args.sha1; - this.server = args.server; - this.highlighted = args.highlighted; - this.nodeIsMousehover = args.nodeIsMousehover; - this.selected = args.selected; - this.element = ko.observable(); - this.commitTime = ko.observable(); - this.authorTime = ko.observable(); - this.message = ko.observable(); - this.title = ko.observable(); - this.body = ko.observable(); - this.authorDate = ko.observable(0); - this.authorDateFromNow = ko.observable(); - this.authorName = ko.observable(); - this.authorEmail = ko.observable(); - this.fileLineDiffs = ko.observable(); - this.numberOfAddedLines = ko.observable(); - this.numberOfRemovedLines = ko.observable(); - this.authorGravatar = ko.computed(function() { return md5(self.authorEmail()); }); - this.textDiffType = ko.observable('textdiff'); - this.wordWrap = ko.observable(false); - - this.showCommitDiff = ko.computed(function() { - return self.fileLineDiffs() && self.fileLineDiffs().length > 0; - }); - - this.selectedDiffLeftPosition = ko.observable(); - this.diffStyle = ko.computed(function() { - if (self.selected()) return { left: self.selectedDiffLeftPosition() + 'px', width: (window.innerWidth - 220) + 'px' }; - else return { left: '0px', width: self.element() ? ((self.element().clientWidth - 20) + 'px') : 'inherit' }; - }); -} -CommitViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('commit', this, {}, parentElement); -} -CommitViewModel.prototype.setData = function(args) { - this.commitTime(moment(new Date(args.commitDate))); - this.authorTime(moment(new Date(args.authorDate))); - var message = args.message.split('\n'); - this.message(args.message); - this.title(message[0]); - this.body(message.slice(2).join('\n')); - this.authorDate(moment(new Date(args.authorDate))); - this.authorDateFromNow(this.authorDate().fromNow()); - this.authorName(args.authorName); - this.authorEmail(args.authorEmail); - this.numberOfAddedLines(args.fileLineDiffs.length > 0 ? args.fileLineDiffs[0][0] : 0); - this.numberOfRemovedLines(args.fileLineDiffs.length > 0 ? args.fileLineDiffs[0][1] : 0); - this.fileLineDiffs(args.fileLineDiffs); - this.isInited = true; - this.commitDiff = ko.observable(components.create('commitDiff', - { fileLineDiffs: this.fileLineDiffs(), - sha1: this.sha1, - repoPath: this.repoPath, - server: this.server, - textDiffType: this.textDiffType, - wordWrap: this.wordWrap })); -} -CommitViewModel.prototype.updateLastAuthorDateFromNow = function(deltaT) { - this.lastUpdatedAuthorDateFromNow = this.lastUpdatedAuthorDateFromNow || 0; - this.lastUpdatedAuthorDateFromNow += deltaT; - if(this.lastUpdatedAuthorDateFromNow > 60 * 1000) { - this.lastUpdatedAuthorDateFromNow = 0; - this.authorDateFromNow(this.authorDate().fromNow()); - } -} -CommitViewModel.prototype.updateAnimationFrame = function(deltaT) { - this.updateLastAuthorDateFromNow(deltaT); -} -CommitViewModel.prototype.textDiffTypeChange = function(type) { - this.textDiffType(type); -} -CommitViewModel.prototype.stopClickPropagation = function(data, event) { - event.stopImmediatePropagation(); -} -CommitViewModel.prototype.toggleWordWrap = function(state) { - this.wordWrap(state); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.less b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.less deleted file mode 100644 index 49b44573..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/commit.less +++ /dev/null @@ -1,114 +0,0 @@ - -@import "public/less/variables.less"; - -.commit { - position: relative; - - &.highlighted { - z-index: 2; - .commit-box { - box-shadow: 5px 5px 0px rgba(0, 0, 0, 0.2); - background: #4B5766; - left: -5px; - .arrowRight { - .shadow { - display: block; - } - .arrow { - border-left: 15px solid #4A5665; - } - } - } - } - &.hover { - z-index: 3; - } - &.selected { - .details { - .diff-wrapper { - transition:width 0.1s, left 0.05s; - box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.15); - .diff-inner { - box-shadow: 5px 5px 0px rgba(0, 0, 0, 0.2); - padding: 10px; - padding-top: 0px; - } - .btn-group { - padding: 2px; - margin: 10px 0px 0px 10px; - margin-bottom: 0px; - } - } - } - } - - .commit-box { - .arrowRight { - position: absolute; - right: 0px; - top: 5px; - .shadow { - display: none; - height: 0px; - width: 0px; - margin-left: -1px; - border-top: 15px solid transparent; - border-bottom: 15px solid transparent; - border-left: 15px solid #1E2029; - } - .arrow { - height: 0px; - width: 0px; - border-top: 15px solid transparent; - border-bottom: 15px solid transparent; - border-left: 15px solid #3b4552; - } - } - } - - .commit-box > .panel-body { - position: relative; - - padding: 10px; - margin-bottom: 0px; - width: @log-width-small; - min-height: 85px; - - .gravatar { - display: none; - margin-right: 10px; - } - - .title { - font-size: 1.3em; - word-wrap: break-word; - display: block; - } - .details { - .body { - white-space: pre-wrap; - word-wrap: break-word; - color: #8F9FA6; - } - .diff-wrapper { - position: relative; - margin: 0px; - margin-top: 10px; - margin-bottom: 10px; - background: #4B5766; - border-radius: 3px; - } - } - } -} - -@media (min-width: @screen-md-min) { - .commit { - .commit-box > .panel-body { - width: @log-width-large; - .gravatar { - display: block; - } - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/ungit-plugin.json deleted file mode 100644 index 7872b76c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commit/ungit-plugin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "commit": "commit.html" - }, - "javascript": "commit.bundle.js", - "css": "commit.css" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitdiff.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitdiff.bundle.js deleted file mode 100644 index f50e5091..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitdiff.bundle.js +++ /dev/null @@ -1,73 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o -
-
- - - ( - - - ) - -
-
-
- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitdiff.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitdiff.js deleted file mode 100644 index 950c1b74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitdiff.js +++ /dev/null @@ -1,29 +0,0 @@ -var ko = require('knockout'); -var CommitLineDiff = require('./commitlinediff.js').CommitLineDiff; -var components = require('ungit-components'); - -components.register('commitDiff', function(args) { - return new CommitDiff(args); -}); - -var CommitDiff = function(args) { - this.commitLineDiffs = ko.observableArray(); - this.sha1 = args.sha1; - args.fileLineDiffs.shift(); // remove first line that has "total" - this.loadFileLineDiffs(args); -}; - -CommitDiff.prototype.updateNode = function(parentElement) { - ko.renderTemplate('commitdiff', this, {}, parentElement); -}; - -CommitDiff.prototype.loadFileLineDiffs = function(args) { - var tempCommitLineDiffs = []; - var lineDiffLength = this.commitLineDiffs().length; - - args.fileLineDiffs.slice(lineDiffLength === 0 ? 0 : lineDiffLength + 1, this.maxNumberOfFilesShown).forEach(function(fileLineDiff) { - tempCommitLineDiffs.push(new CommitLineDiff(args, fileLineDiff)); - }); - - this.commitLineDiffs(this.commitLineDiffs().concat(tempCommitLineDiffs)); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitdiff.less b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitdiff.less deleted file mode 100644 index 60b23625..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitdiff.less +++ /dev/null @@ -1,40 +0,0 @@ - -.commitdiff { - width: 100%; - .file { - margin-top: 5px; - background: rgba(255, 255, 255, 0.16); - border-radius: 3px; - .head { - display: block; - cursor: pointer; - padding: 3px; - padding-left: 6px; - padding-right: 6px; - color: rgba(255, 255, 255, 0.79); - word-wrap: break-word; - .file-stats { - span:nth-of-type(1)::Before{ content: "+" } - span:nth-of-type(1){ - color: #9BF3A9; - } - span:nth-of-type(2)::Before{ content: "-" } - span:nth-of-type(2){ - color: #EC9D93; - } - } - } - .diff { - background: rgba(0, 0, 0, 0.11); - .textDiff { - color: rgba(255, 255, 255, 0.3); - } - } - } -} -.loadMore { - .btn { - display: block; - margin: 20px 20px 10px 20px; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitlinediff.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitlinediff.js deleted file mode 100644 index e19b0076..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/commitlinediff.js +++ /dev/null @@ -1,38 +0,0 @@ -var ko = require('knockout'); -var components = require('ungit-components'); -var inherits = require('util').inherits; -var programEvents = require('ungit-program-events'); - -var CommitLineDiff = function(args, fileLineDiff) { - this.added = ko.observable(fileLineDiff[0]); - this.removed = ko.observable(fileLineDiff[1]); - this.fileName = ko.observable(fileLineDiff[2]); - this.fileType = fileLineDiff[3]; - this.isShowingDiffs = ko.observable(false); - this.repoPath = args.repoPath; - this.server = args.server; - this.sha1 = args.sha1; - this.textDiffType = args.textDiffType; - this.wordWrap = args.wordWrap; - this.specificDiff = ko.observable(this.getSpecificDiff()); -}; -exports.CommitLineDiff = CommitLineDiff; - -CommitLineDiff.prototype.getSpecificDiff = function() { - return components.create(this.fileType + 'diff', { - filename: this.fileName(), - repoPath: this.repoPath, - server: this.server, - sha1: this.sha1, - textDiffType: this.textDiffType, - isShowingDiffs: this.isShowingDiffs, - wordWrap: this.wordWrap - }); -} - -CommitLineDiff.prototype.fileNameClick = function() { - this.isShowingDiffs(!this.isShowingDiffs()); - this.specificDiff().invalidateDiff(function() { - programEvents.dispatch({ event: 'graph-render' }); - }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/ungit-plugin.json deleted file mode 100644 index ded299a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/commitdiff/ungit-plugin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "commitdiff": "commitdiff.html" - }, - "javascript": "commitdiff.bundle.js", - "css": "commitdiff.css" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/dialogs/dialogs.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/dialogs/dialogs.bundle.js deleted file mode 100644 index 979dfd2d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/dialogs/dialogs.bundle.js +++ /dev/null @@ -1,153 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/dialogs/prompt.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/dialogs/prompt.html deleted file mode 100644 index dcf53d80..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/dialogs/prompt.html +++ /dev/null @@ -1,18 +0,0 @@ - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/dialogs/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/dialogs/ungit-plugin.json deleted file mode 100644 index 88fe73e2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/dialogs/ungit-plugin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "formDialog": "formDialog.html", - "prompt": "prompt.html" - }, - "javascript": "dialogs.bundle.js" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/gitErrors/gitErrors.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/gitErrors/gitErrors.bundle.js deleted file mode 100644 index c12b741d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/gitErrors/gitErrors.bundle.js +++ /dev/null @@ -1,65 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o -
- -

Unhandled git error!

-

- Ungit tried to run a git command that resulted in an unhandled error. An automatic bug report was sent. -

-

-

- to automatically report bugs, and/or file an issue on the ungit issue tracker. -

-

Command

-

-  

Error

-

-  

Stderr

-

-  

Stdout

-

-
- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/gitErrors/gitErrors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/gitErrors/gitErrors.js deleted file mode 100644 index 575433ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/gitErrors/gitErrors.js +++ /dev/null @@ -1,61 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); -var programEvents = require('ungit-program-events'); -var navigation = require('ungit-navigation'); - -components.register('gitErrors', function(args) { - return new GitErrorsViewModel(args.server, args.repoPath); -}); - -var GitErrorsViewModel = function(server, repoPath) { - var self = this; - this.server = server; - this.repoPath = repoPath; - this.gitErrors = ko.observableArray(); -} -GitErrorsViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('gitErrors', this, {}, parentElement); -} -GitErrorsViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'git-error') this._handleGitError(event); -} -GitErrorsViewModel.prototype._handleGitError = function(event) { - if (event.data.repoPath != this.repoPath()) return; - this.gitErrors.push(new GitErrorViewModel(this, this.server, event.data)); -} - -function GitErrorViewModel(gitErrors, server, data) { - var self = this; - this.gitErrors = gitErrors; - this.server = server; - this.tip = data.tip; - this.command = data.command; - this.error = data.error; - this.stdout = data.stdout; - this.stderr = data.stderr; - this.showEnableBugtracking = ko.observable(false); - this.bugReportWasSent = ungit.config.bugtracking; - - if (!data.shouldSkipReport && !ungit.config.bugtracking) { - this.server.get('/userconfig', undefined, function(err, userConfig) { - if (err) return; - self.showEnableBugtracking(!userConfig.bugtracking); - }); - } -} -GitErrorViewModel.prototype.dismiss = function() { - this.gitErrors.gitErrors.remove(this); -} -GitErrorViewModel.prototype.enableBugtrackingAndStatistics = function() { - var self = this; - this.server.get('/userconfig', undefined, function(err, userConfig) { - if (err) return; - userConfig.bugtracking = true; - userConfig.sendUsageStatistics = true; - self.server.post('/userconfig', userConfig, function(err) { - if (err) return; - self.showEnableBugtracking(false); - }); - }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/gitErrors/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/gitErrors/ungit-plugin.json deleted file mode 100644 index 20990200..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/gitErrors/ungit-plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "gitErrors": "gitErrors.html" - }, - "javascript": "gitErrors.bundle.js" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/animateable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/animateable.js deleted file mode 100644 index bf4bb6db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/animateable.js +++ /dev/null @@ -1,22 +0,0 @@ -var ko = require('knockout'); -require('mina'); - -module.exports = function(graph) { - var self = this; - this.element = ko.observable(); - this.previousGraph = undefined; - this.element.subscribe(function(val) { - if (val) self.animate(true); - }); - this.animate = function(forceRefresh) { - var currentGraph = this.getGraphAttr(); - // animate only when dom is valid and (attribute changed or force refresh due to dom change) - if (this.element() && (forceRefresh || JSON.stringify(currentGraph) !== JSON.stringify(this.previousGraph))) { - var now = Date.now(); - window.mina(this.previousGraph || currentGraph, currentGraph, now, now + 750, window.mina.time, function (val) { - self.setGraphAttr(val); - }, window.mina.elastic); - this.previousGraph = currentGraph; - } - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/edge.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/edge.js deleted file mode 100644 index 9b98b1a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/edge.js +++ /dev/null @@ -1,26 +0,0 @@ -var ko = require('knockout'); -var Animateable = require('./animateable'); - -var EdgeViewModel = function(graph, nodeAsha1, nodeBsha1) { - var self = this; - Animateable.call(this); - this.nodeA = graph.getNode(nodeAsha1); - this.nodeB = graph.getNode(nodeBsha1); - this.getGraphAttr = ko.computed(function() { - if (self.nodeB.isInited && self.nodeB.cx() && self.nodeB.cy()) { - return [self.nodeA.cx(), self.nodeA.cy(), self.nodeA.cx(), self.nodeA.cy(), - self.nodeB.cx(), self.nodeB.cy(), self.nodeB.cx(), self.nodeB.cy()]; - } else if (graph.graphHeight()) { - return [self.nodeA.cx(), self.nodeA.cy(), self.nodeA.cx(), self.nodeA.cy(), - self.nodeA.cx(), graph.graphHeight(), self.nodeA.cx(), graph.graphHeight()]; - } else { - return [self.nodeA.cx(), self.nodeA.cy(), self.nodeA.cx(), self.nodeA.cy(), - self.nodeA.cx(), self.nodeA.cy(), self.nodeA.cx(), self.nodeA.cy()]; - } - }); - this.getGraphAttr.subscribe(this.animate.bind(this)); -} -EdgeViewModel.prototype.setGraphAttr = function(val) { - this.element().setAttribute('d', 'M' + val.slice(0,4).join(',') + 'L' + val.slice(4,8).join(',')); -} -module.exports = EdgeViewModel; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/git-graph-actions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/git-graph-actions.js deleted file mode 100644 index 420ef14c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/git-graph-actions.js +++ /dev/null @@ -1,353 +0,0 @@ - -var ko = require('knockout'); -var inherits = require('util').inherits; -var components = require('ungit-components'); -var RefViewModel = require('./git-ref.js'); -var HoverActions = require('./hover-actions'); -var RebaseViewModel = HoverActions.RebaseViewModel; -var MergeViewModel = HoverActions.MergeViewModel; -var ResetViewModel = HoverActions.ResetViewModel; -var PushViewModel = HoverActions.PushViewModel; -var programEvents = require('ungit-program-events'); - -var GraphActions = {}; -module.exports = GraphActions; - -GraphActions.ActionBase = function(graph) { - var self = this; - this.graph = graph; - this.server = graph.server; - this.performProgressBar = components.create('progressBar', { - predictionMemoryKey: 'action-' + this.style + '-' + graph.repoPath(), - fallbackPredictedTimeMs: 1000, - temporary: true - }); - - this.isHighlighted = ko.computed(function() { - return !graph.hoverGraphAction() || graph.hoverGraphAction() == self; - }); - this.cssClasses = ko.computed(function() { - var c = self.style; - if (!self.isHighlighted()) c += ' dimmed'; - return c; - }) -} -GraphActions.ActionBase.prototype.icon = null; -GraphActions.ActionBase.prototype.doPerform = function() { - var self = this; - this.graph.hoverGraphAction(null); - self.performProgressBar.start(); - this.perform(function() { - self.performProgressBar.stop(); - }); -} -GraphActions.ActionBase.prototype.dragEnter = function() { - if (!this.visible()) return; - this.graph.hoverGraphAction(this); -} -GraphActions.ActionBase.prototype.dragLeave = function() { - if (!this.visible()) return; - this.graph.hoverGraphAction(null); -} -GraphActions.ActionBase.prototype.mouseover = function() { - this.graph.hoverGraphAction(this); -} -GraphActions.ActionBase.prototype.mouseout = function() { - this.graph.hoverGraphAction(null); -} - -GraphActions.Move = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - return self.graph.currentActionContext() instanceof RefViewModel && - self.graph.currentActionContext().node() != self.node; - }); -} -inherits(GraphActions.Move, GraphActions.ActionBase); -GraphActions.Move.prototype.text = 'Move'; -GraphActions.Move.prototype.style = 'move'; -GraphActions.Move.prototype.icon = 'glyphicon glyphicon-move'; -GraphActions.Move.prototype.perform = function(callback) { - this.graph.currentActionContext().moveTo(this.node.sha1, callback); -} - -GraphActions.Reset = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - if (!(self.graph.currentActionContext() instanceof RefViewModel)) return false; - var context = self.graph.currentActionContext(); - if (context.node() != self.node) return false; - var remoteRef = context.getRemoteRef(self.graph.currentRemote()); - return remoteRef && - remoteRef.node() != context.node() && - remoteRef.node().date < context.node().date; - }); -} -inherits(GraphActions.Reset, GraphActions.ActionBase); -GraphActions.Reset.prototype.text = 'Reset'; -GraphActions.Reset.prototype.style = 'reset'; -GraphActions.Reset.prototype.icon = 'glyphicon glyphicon-trash'; -GraphActions.Reset.prototype.createHoverGraphic = function() { - var context = this.graph.currentActionContext(); - if (!context) return null; - var remoteRef = context.getRemoteRef(this.graph.currentRemote()); - var nodes = context.node().getPathToCommonAncestor(remoteRef.node()).slice(0, -1); - return new ResetViewModel(nodes); -} -GraphActions.Reset.prototype.perform = function(callback) { - var self = this; - var context = this.graph.currentActionContext(); - var remoteRef = context.getRemoteRef(self.graph.currentRemote()); - var diag = components.create('yesnodialog', { title: 'Are you sure?', details: 'Resetting to ref: ' + remoteRef.name + ' cannot be undone with ungit.'}); - diag.closed.add(function() { - if (diag.result()) { - self.server.post('/reset', { path: self.graph.repoPath(), to: remoteRef.name, mode: 'hard' }, function() { - context.node(remoteRef.node()); - callback(); - }); - } else { - callback(); - } - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} - -GraphActions.Rebase = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - return self.graph.currentActionContext() instanceof RefViewModel && - (!ungit.config.showRebaseAndMergeOnlyOnRefs || self.node.refs().length > 0) && - self.graph.currentActionContext().current() && - self.graph.currentActionContext().node() != self.node; - }); -} -inherits(GraphActions.Rebase, GraphActions.ActionBase); -GraphActions.Rebase.prototype.text = 'Rebase'; -GraphActions.Rebase.prototype.style = 'rebase'; -GraphActions.Rebase.prototype.icon = 'octicon octicon-repo-forked flip'; -GraphActions.Rebase.prototype.createHoverGraphic = function() { - var onto = this.graph.currentActionContext(); - if (!onto) return; - if (onto instanceof RefViewModel) onto = onto.node(); - var path = onto.getPathToCommonAncestor(this.node); - return new RebaseViewModel(this.node, path); -} -GraphActions.Rebase.prototype.perform = function(callback) { - this.server.post('/rebase', { path: this.graph.repoPath(), onto: this.node.sha1 }, function(err) { - callback(); - if (err && err.errorCode == 'merge-failed') return true; - }); -} - -GraphActions.Merge = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - if (!self.graph.checkedOutRef() || !self.graph.checkedOutRef().node()) return false; - return self.graph.currentActionContext() instanceof RefViewModel && - !self.graph.currentActionContext().current() && - self.graph.checkedOutRef().node() == self.node; - }); -} -inherits(GraphActions.Merge, GraphActions.ActionBase); -GraphActions.Merge.prototype.text = 'Merge'; -GraphActions.Merge.prototype.style = 'merge'; -GraphActions.Merge.prototype.icon = 'octicon octicon-git-merge'; -GraphActions.Merge.prototype.createHoverGraphic = function() { - var node = this.graph.currentActionContext(); - if (!node) return null; - if (node instanceof RefViewModel) node = node.node(); - return new MergeViewModel(this.graph, this.node, node); -} -GraphActions.Merge.prototype.perform = function(callback) { - this.server.post('/merge', { path: this.graph.repoPath(), with: this.graph.currentActionContext().localRefName }, function(err) { - callback(); - if (err && err.errorCode == 'merge-failed') return true; - }); -} - -GraphActions.Push = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - return self.graph.currentActionContext() instanceof RefViewModel && - self.graph.currentActionContext().node() == self.node && - self.graph.currentActionContext().canBePushed(self.graph.currentRemote()); - }); -} -inherits(GraphActions.Push, GraphActions.ActionBase); -GraphActions.Push.prototype.text = 'Push'; -GraphActions.Push.prototype.style = 'push'; -GraphActions.Push.prototype.icon = 'octicon octicon-cloud-upload'; -GraphActions.Push.prototype.createHoverGraphic = function() { - var context = this.graph.currentActionContext(); - if (!context) return null; - var remoteRef = context.getRemoteRef(this.graph.currentRemote()); - if (!remoteRef) return null; - return new PushViewModel(remoteRef.node(), context.node()); -} -GraphActions.Push.prototype.perform = function(callback) { - var self = this; - var ref = this.graph.currentActionContext(); - var remoteRef = ref.getRemoteRef(this.graph.currentRemote()); - - if (remoteRef) { - remoteRef.moveTo(ref.node().sha1, callback); - } else ref.createRemoteRef(function(err) { - if (!err && self.graph.HEAD().name == ref.name) { - self.grah.HEADref().node(ref.node()); - } - callback(); - }); -} - -GraphActions.Checkout = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - if (self.graph.currentActionContext() instanceof RefViewModel) - return self.graph.currentActionContext().node() == self.node && - !self.graph.currentActionContext().current(); - return ungit.config.allowCheckoutNodes && - self.graph.currentActionContext() == self.node; - }); -} -inherits(GraphActions.Checkout, GraphActions.ActionBase); -GraphActions.Checkout.prototype.text = 'Checkout'; -GraphActions.Checkout.prototype.style = 'checkout'; -GraphActions.Checkout.prototype.icon = 'octicon octicon-desktop-download'; -GraphActions.Checkout.prototype.perform = function(callback) { - var self = this; - var context = this.graph.currentActionContext(); - var refName = context instanceof RefViewModel ? context.refName : context.sha1; - this.server.post('/checkout', { path: this.graph.repoPath(), name: refName }, function(err) { - if (err && err.errorCode != 'merge-failed') { - callback(); - return; - } - - if (context instanceof RefViewModel && context.isRemoteBranch) { - self.server.post('/reset', { path: self.graph.repoPath(), to: context.name, mode: 'hard' }, function(err, res) { - self.graph.HEADref().node(context instanceof RefViewModel ? context.node() : context); - callback(); - return err && err.errorCode != 'merge-failed' ? undefined : true; - }); - } else { - self.graph.HEADref().node(context instanceof RefViewModel ? context.node() : context); - callback(); - } - return true; - }); -} - -GraphActions.Delete = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - return self.graph.currentActionContext() instanceof RefViewModel && - self.graph.currentActionContext().node() == self.node && - !self.graph.currentActionContext().current(); - }); -} -inherits(GraphActions.Delete, GraphActions.ActionBase); -GraphActions.Delete.prototype.text = 'Delete'; -GraphActions.Delete.prototype.style = 'delete'; -GraphActions.Delete.prototype.icon = 'glyphicon glyphicon-remove'; -GraphActions.Delete.prototype.perform = function(callback) { - var context = this.graph.currentActionContext(); - var name = context.isRemoteBranch ? "remote " + context.localRefName : context.localRefName; - var diag = components.create('yesnodialog', { title: 'Are you sure?', details: 'Deleting ' + name + ' branch or tag cannot be undone with ungit.'}); - diag.closed.add(function() { - if (diag.result()) { - context.remove(callback); - } else { - callback(); - } - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} - -GraphActions.CherryPick = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - var context = self.graph.currentActionContext(); - return context === self.node && self.graph.HEAD() && context.sha1 !== self.graph.HEAD().sha1 - }); -} -inherits(GraphActions.CherryPick, GraphActions.ActionBase); -GraphActions.CherryPick.prototype.text = 'Cherry pick'; -GraphActions.CherryPick.prototype.style = 'cherry-pick'; -GraphActions.CherryPick.prototype.icon = 'octicon octicon-circuit-board'; -GraphActions.CherryPick.prototype.perform = function(callback) { - var self = this; - this.server.post('/cherrypick', { path: this.graph.repoPath(), name: this.node.sha1 }, function(err) { - callback(); - if (err && err.errorCode == 'merge-failed') return true; - }); -} - -GraphActions.Uncommit = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - return self.graph.currentActionContext() == self.node && - self.graph.HEAD() == self.node; - }); -} -inherits(GraphActions.Uncommit, GraphActions.ActionBase); -GraphActions.Uncommit.prototype.text = 'Uncommit'; -GraphActions.Uncommit.prototype.style = 'uncommit'; -GraphActions.Uncommit.prototype.icon = 'octicon octicon-zap'; -GraphActions.Uncommit.prototype.perform = function(callback) { - var self = this; - this.server.postPromise('/reset', { path: this.graph.repoPath(), to: 'HEAD^', mode: 'mixed' }) - .then(function() { - var targetNode = self.node.belowNode; - while (targetNode && !targetNode.ancestorOfHEAD()) { - targetNode = targetNode.belowNode; - } - self.graph.HEADref().node(targetNode ? targetNode : null); - self.graph.checkedOutRef().node(targetNode ? targetNode : null); - }).finally(callback); -} - -GraphActions.Revert = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - return self.graph.currentActionContext() == self.node; - }); -} -inherits(GraphActions.Revert, GraphActions.ActionBase); -GraphActions.Revert.prototype.text = 'Revert'; -GraphActions.Revert.prototype.style = 'revert'; -GraphActions.Revert.prototype.icon = 'octicon octicon-history'; -GraphActions.Revert.prototype.perform = function(callback) { - var self = this; - this.server.postPromise('/revert', { path: this.graph.repoPath(), commit: this.node.sha1 }) - .finally(callback); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/git-node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/git-node.js deleted file mode 100644 index 47c628a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/git-node.js +++ /dev/null @@ -1,258 +0,0 @@ -var ko = require('knockout'); -var components = require('ungit-components'); -var Selectable = require('./selectable'); -var Animateable = require('./animateable'); -var programEvents = require('ungit-program-events'); -var GraphActions = require('./git-graph-actions'); - -var GitNodeViewModel = function(graph, sha1) { - var self = this; - Selectable.call(this, graph); - Animateable.call(this); - this.graph = graph; - this.sha1 = sha1; - this.isInited = false; - this.title = undefined; - this.parents = ko.observableArray(); - this.commitTime = undefined; // commit time in string - this.date = undefined; // commit time in numeric format for sort - this.color = ko.observable(); - this.ideologicalBranch = ko.observable(); - this.remoteTags = ko.observableArray(); - this.branchesAndLocalTags = ko.observableArray(); - - this.refs = ko.computed(function() { - var rs = self.branchesAndLocalTags().concat(self.remoteTags()); - rs.sort(function(a, b) { - if (a.isLocal && !b.isLocal) return -1; - if (!a.isLocal && b.isLocal) return 1; - return a.refName < b.refName ? -1 : 1; - }); - return rs; - }); - this.ancestorOfHEAD = ko.observable(false); - this.nodeIsMousehover = ko.observable(false); - this.commitContainerVisible = ko.computed(function() { - return self.ancestorOfHEAD() || self.nodeIsMousehover() || self.selected(); - }); - this.highlighted = ko.computed(function() { - return self.nodeIsMousehover() || self.selected(); - }); - this.selected.subscribe(function() { - programEvents.dispatch({ event: 'graph-render' }); - }); - this.commitComponent = components.create('commit', { - sha1: this.sha1, - repoPath: this.graph.repoPath, - server: this.graph.server, - selected: this.selected, - highlighted: this.highlighted, - nodeIsMousehover: this.nodeIsMousehover - }); - // These are split up like this because branches and local tags can be found in the git log, - // whereas remote tags needs to be fetched with another command (which is much slower) - this.branches = ko.computed(function() { - return self.refs().filter(function(r) { return r.isBranch; }); - }); - this.tags = ko.computed(function() { - return self.refs().filter(function(r) { return r.isTag; }); - }); - this.showNewRefAction = ko.computed(function() { - return !graph.currentActionContext(); - }); - this.newBranchName = ko.observable(); - this.newBranchNameHasFocus = ko.observable(true); - this.newBranchNameHasFocus.subscribe(function(newValue) { - if (!newValue) { - // Small timeout because in ff the form is hidden before the submit click event is registered otherwise - setTimeout(function() { - self.branchingFormVisible(false); - }, 200); - } - }); - this.branchingFormVisible = ko.observable(false); - this.canCreateRef = ko.computed(function() { - return self.newBranchName() && self.newBranchName().trim() && self.newBranchName().indexOf(' ') == -1; - }); - this.branchOrder = ko.observable(); - this.aboveNode = undefined; - this.belowNode = undefined; - - this.r = ko.observable(); - this.cx = ko.observable(); - this.cy = ko.observable(); - - this.dropareaGraphActions = [ - new GraphActions.Move(this.graph, this), - new GraphActions.Rebase(this.graph, this), - new GraphActions.Merge(this.graph, this), - new GraphActions.Push(this.graph, this), - new GraphActions.Reset(this.graph, this), - new GraphActions.Checkout(this.graph, this), - new GraphActions.Delete(this.graph, this), - new GraphActions.CherryPick(this.graph, this), - new GraphActions.Uncommit(this.graph, this), - new GraphActions.Revert(this.graph, this) - ]; -} -module.exports = GitNodeViewModel; - -GitNodeViewModel.prototype.getGraphAttr = function() { - return [this.cx(), this.cy()]; -} -GitNodeViewModel.prototype.setGraphAttr = function(val) { - this.element().setAttribute('x', val[0] - 30); - this.element().setAttribute('y', val[1] - 30); -} -GitNodeViewModel.prototype.render = function() { - if (!this.isInited) return; - if (this.ancestorOfHEAD()) { - this.r(30); - this.cx(610); - - if (!this.aboveNode) { - this.cy(120); - } else if (this.aboveNode.ancestorOfHEAD()) { - this.cy(this.aboveNode.cy() + 120); - } else { - this.cy(this.aboveNode.cy() + 60); - } - } else { - this.r(15); - this.cx(610 + (90 * this.branchOrder())); - this.cy(this.aboveNode ? this.aboveNode.cy() + 60 : 120); - } - - if (this.aboveNode && this.aboveNode.selected()) { - this.cy(this.aboveNode.cy() + this.aboveNode.commitComponent.element().offsetHeight + 30); - } - - this.commitComponent.selectedDiffLeftPosition(-(this.cx() - 600)); - this.color(this.ideologicalBranch() ? this.ideologicalBranch().color : '#666'); - this.animate(); -} -GitNodeViewModel.prototype.setData = function(logEntry) { - var self = this; - this.title = logEntry.message.split('\n')[0]; - this.parents(logEntry.parents || []); - this.commitTime = logEntry.commitDate; - this.date = Date.parse(this.commitTime); - this.commitComponent.setData(logEntry); - - if (logEntry.refs) { - logEntry.refs.forEach(function(ref) { - self.graph.getRef(ref).node(self); - }); - } - this.isInited = true; -} -GitNodeViewModel.prototype.showBranchingForm = function() { - this.branchingFormVisible(true); - this.newBranchNameHasFocus(true); -} -GitNodeViewModel.prototype.createBranch = function() { - if (!this.canCreateRef()) return; - var self = this; - var command = ungit.config.autoCheckoutOnBranchCreate ? "/checkout" : "/branches"; - - this.graph.server.postPromise(command, { path: this.graph.repoPath(), name: this.newBranchName(), sha1: this.sha1 }) - .then(function() { - self.graph.getRef('refs/heads/' + self.newBranchName()).node(self); - }).finally(function() { - self.branchingFormVisible(false); - self.newBranchName(''); - programEvents.dispatch({ event: 'branch-updated' }); - }); -} -GitNodeViewModel.prototype.createTag = function() { - if (!this.canCreateRef()) return; - var self = this; - this.graph.server.postPromise('/tags', { path: this.graph.repoPath(), name: this.newBranchName(), sha1: this.sha1 }) - .then(function() { - var newRef = self.graph.getRef('tag: refs/tags/' + self.newBranchName()); - newRef.node(self); - }).finally(function() { - self.branchingFormVisible(false); - self.newBranchName(''); - }); -} -GitNodeViewModel.prototype.toggleSelected = function() { - var self = this; - var beforeThisCR = this.commitComponent.element().getBoundingClientRect(); - var beforeBelowCR = null; - if (this.belowNode) { - beforeBelowCR = this.belowNode.commitComponent.element().getBoundingClientRect(); - } - - var prevSelected = this.graph.currentActionContext(); - if (!(prevSelected instanceof GitNodeViewModel)) prevSelected = null; - var prevSelectedCR = prevSelected ? prevSelected.commitComponent.element().getBoundingClientRect() : null; - this.selected(!this.selected()); - - // If we are deselecting - if (!this.selected()) { - if (beforeThisCR.top < 0 && beforeBelowCR) { - var afterBelowCR = this.belowNode.commitComponent.element().getBoundingClientRect(); - // If the next node is showing, try to keep it in the screen (no jumping) - if (beforeBelowCR.top < window.innerHeight) { - window.scrollBy(0, afterBelowCR.top - beforeBelowCR.top); - // Otherwise just try to bring them to the middle of the screen - } else { - window.scrollBy(0, afterBelowCR.top - window.innerHeight / 2); - } - } - // If we are selecting - } else { - var afterThisCR = this.commitComponent.element().getBoundingClientRect(); - if ((prevSelectedCR && (prevSelectedCR.top < 0 || prevSelectedCR.top > window.innerHeight)) && - afterThisCR.top != beforeThisCR.top) { - window.scrollBy(0, -(beforeThisCR.top - afterThisCR.top)); - console.log('Fix') - } - } - return false; -} -GitNodeViewModel.prototype.removeRef = function(ref) { - if (ref.isRemoteTag) { - this.remoteTags.remove(ref); - } else { - this.branchesAndLocalTags.remove(ref); - } -} -GitNodeViewModel.prototype.pushRef = function(ref) { - if (ref.isRemoteTag && this.remoteTags.indexOf(ref) < 0) { - this.remoteTags.push(ref); - } else if(this.branchesAndLocalTags.indexOf(ref) < 0) { - this.branchesAndLocalTags.push(ref); - } -} -GitNodeViewModel.prototype.getPathToCommonAncestor = function(node) { - var path = []; - var thisNode = this; - while (thisNode && !node.isAncestor(thisNode)) { - path.push(thisNode); - thisNode = this.graph.nodesById[thisNode.parents()[0]]; - } - if (thisNode) path.push(thisNode); - return path; -} -GitNodeViewModel.prototype.isAncestor = function(node) { - if (node == this) return true; - for (var v in this.parents()) { - var n = this.graph.nodesById[this.parents()[v]]; - if (n && n.isAncestor(node)) return true; - } - return false; -} -GitNodeViewModel.prototype.getRightToLeftStrike = function() { - return 'M ' + (this.cx() - 30) + ' ' + (this.cy() - 30) + ' L ' + (this.cx() + 30) + ' ' + (this.cy() + 30); -} -GitNodeViewModel.prototype.getLeftToRightStrike = function() { - return 'M ' + (this.cx() + 30) + ' ' + (this.cy() - 30) + ' L ' + (this.cx() - 30) + ' ' + (this.cy() + 30); -} -GitNodeViewModel.prototype.nodeMouseover = function() { - this.nodeIsMousehover(true); -} -GitNodeViewModel.prototype.nodeMouseout = function() { - this.nodeIsMousehover(false); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/git-ref.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/git-ref.js deleted file mode 100644 index 999285ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/git-ref.js +++ /dev/null @@ -1,168 +0,0 @@ -var ko = require('knockout'); -var md5 = require('blueimp-md5'); -var Selectable = require('./selectable'); -var programEvents = require('ungit-program-events'); -var components = require('ungit-components'); - -var RefViewModel = function(fullRefName, graph) { - var self = this; - Selectable.call(this, graph); - this.graph = graph; - this.name = fullRefName; - this.node = ko.observable(); - this.localRefName = this.name; // origin/master or master - this.refName = this.name; // master - this.isRemoteTag = this.name.indexOf('remote-tag: ') == 0; - this.isLocalTag = this.name.indexOf('tag: ') == 0; - this.isTag = this.isLocalTag || this.isRemoteTag; - var isRemoteBranchOrHEAD = this.name.indexOf('refs/remotes/') == 0; - this.isLocalHEAD = this.name == 'HEAD'; - this.isRemoteHEAD = this.name.indexOf('/HEAD') != -1; - this.isLocalBranch = this.name.indexOf('refs/heads/') == 0; - this.isRemoteBranch = isRemoteBranchOrHEAD && !this.isRemoteHEAD; - this.isStash = this.name.indexOf('refs/stash') == 0; - this.isHEAD = this.isLocalHEAD || this.isRemoteHEAD; - this.isBranch = this.isLocalBranch || this.isRemoteBranch; - this.isRemote = isRemoteBranchOrHEAD || this.isRemoteTag; - this.isLocal = this.isLocalBranch || this.isLocalTag; - if (this.isLocalBranch) { - this.localRefName = this.name.slice('refs/heads/'.length); - this.refName = this.localRefName; - } - if (this.isRemoteBranch) { - this.localRefName = this.name.slice('refs/remotes/'.length); - } - if (this.isLocalTag) { - this.localRefName = this.name.slice('tag: refs/tags/'.length); - this.refName = this.localRefName; - } - if (this.isRemoteTag) { - this.localRefName = this.name.slice('remote-tag: '.length); - } - if (this.isRemote) { - // get rid of the origin/ part of origin/branchname - var s = this.localRefName.split('/'); - this.remote = s[0]; - this.refName = s.slice(1).join('/'); - } - this.show = true; - this.server = this.graph.server; - this.isDragging = ko.observable(false); - this.current = ko.computed(function() { - return self.isLocalBranch && self.graph.checkedOutBranch() == self.refName; - }); - this.color = this._colorFromHashOfString(this.name); - - this.node.subscribe(function(oldNode) { - if (oldNode) oldNode.removeRef(self); - }, null, "beforeChange"); - this.node.subscribe(function(newNode) { - if (newNode) newNode.pushRef(self); - }); -}; -module.exports = RefViewModel; - -RefViewModel.prototype._colorFromHashOfString = function(string) { - return '#' + md5(string).toString().slice(0, 6); -} -RefViewModel.prototype.dragStart = function() { - this.graph.currentActionContext(this); - this.isDragging(true); - if (document.activeElement) document.activeElement.blur(); -} -RefViewModel.prototype.dragEnd = function() { - this.graph.currentActionContext(null); - this.isDragging(false); -} -RefViewModel.prototype.moveTo = function(target, callback) { - var self = this; - - var callbackWithRefSet = function(err, res) { - if (err) { - callback(err, res); - } else { - var targetNode = self.graph.getNode(target); - if (self.graph.checkedOutBranch() == self.refName) { - self.graph.HEADref().node(targetNode); - } - self.node(targetNode); - callback(); - } - } - - if (this.isLocal) { - if (this.current()) { - this.server.post('/reset', { path: this.graph.repoPath(), to: target, mode: 'hard' }, callbackWithRefSet); - } else if (this.isTag) { - this.server.post('/tags', { path: this.graph.repoPath(), name: this.refName, sha1: target, force: true }, callbackWithRefSet); - } else { - this.server.post('/branches', { path: this.graph.repoPath(), name: this.refName, sha1: target, force: true }, callbackWithRefSet); - } - } else { - var pushReq = { path: this.graph.repoPath(), remote: this.remote, refSpec: target, remoteBranch: this.refName }; - this.server.post('/push', pushReq, function(err, res) { - if (err) { - if (err.errorCode == 'non-fast-forward') { - var forcePushDialog = components.create('yesnodialog', { title: 'Force push?', details: 'The remote branch can\'t be fast-forwarded.' }); - forcePushDialog.closed.add(function() { - if (!forcePushDialog.result()) return callback(); - pushReq.force = true; - self.server.post('/push', pushReq, callbackWithRefSet); - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: forcePushDialog }); - return true; - } - } - callbackWithRefSet(err, res); - }); - } -} - -RefViewModel.prototype.remove = function(callback) { - var self = this; - var url = this.isTag ? '/tags' : '/branches'; - if (this.isRemote) url = '/remote' + url; - this.server.del(url, { path: this.graph.repoPath(), remote: this.isRemote ? this.remote : null, name: this.refName }, function(err) { - if (!err) { - self.node().removeRef(self); - self.graph.refsByRefName[self.name] = undefined; - } - - callback(); - self.graph.loadNodesFromApi(); - if (url == '/remote/tags') { - programEvents.dispatch({ event: 'request-fetch-tags' }); - } else { - programEvents.dispatch({ event: 'branch-updated' }); - } - }); -} - -RefViewModel.prototype.getRemoteRef = function(remote) { - return this.graph.getRef(this.getRemoteRefFullName(remote), false); -} - -RefViewModel.prototype.getRemoteRefFullName = function(remote) { - if (this.isLocalBranch) return 'refs/remotes/' + remote + '/' + this.refName; - if (this.isLocalTag) return 'remote-tag: ' + remote + '/' + this.refName; - return null; -} - -RefViewModel.prototype.canBePushed = function(remote) { - if (!this.isLocal) return false; - var remoteRef = this.getRemoteRef(remote); - if (!remoteRef) return true; - return this.node() != remoteRef.node(); -} - -RefViewModel.prototype.createRemoteRef = function(callback) { - var self = this; - this.server.post('/push', { path: this.graph.repoPath(), remote: this.graph.currentRemote(), - refSpec: this.refName, remoteBranch: this.refName }, function(err) { - if (!err) { - var newRef = self.graph.getRef("refs/remotes/" + self.graph.currentRemote() + "/" + self.refName); - newRef.node(self.node()); - } - callback(err); - }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph-graphics.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph-graphics.html deleted file mode 100644 index 239b71c0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph-graphics.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.bundle.js deleted file mode 100644 index e103fbb0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.bundle.js +++ /dev/null @@ -1,1238 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 0) && - self.graph.currentActionContext().current() && - self.graph.currentActionContext().node() != self.node; - }); -} -inherits(GraphActions.Rebase, GraphActions.ActionBase); -GraphActions.Rebase.prototype.text = 'Rebase'; -GraphActions.Rebase.prototype.style = 'rebase'; -GraphActions.Rebase.prototype.icon = 'octicon octicon-repo-forked flip'; -GraphActions.Rebase.prototype.createHoverGraphic = function() { - var onto = this.graph.currentActionContext(); - if (!onto) return; - if (onto instanceof RefViewModel) onto = onto.node(); - var path = onto.getPathToCommonAncestor(this.node); - return new RebaseViewModel(this.node, path); -} -GraphActions.Rebase.prototype.perform = function(callback) { - this.server.post('/rebase', { path: this.graph.repoPath(), onto: this.node.sha1 }, function(err) { - callback(); - if (err && err.errorCode == 'merge-failed') return true; - }); -} - -GraphActions.Merge = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - if (!self.graph.checkedOutRef() || !self.graph.checkedOutRef().node()) return false; - return self.graph.currentActionContext() instanceof RefViewModel && - !self.graph.currentActionContext().current() && - self.graph.checkedOutRef().node() == self.node; - }); -} -inherits(GraphActions.Merge, GraphActions.ActionBase); -GraphActions.Merge.prototype.text = 'Merge'; -GraphActions.Merge.prototype.style = 'merge'; -GraphActions.Merge.prototype.icon = 'octicon octicon-git-merge'; -GraphActions.Merge.prototype.createHoverGraphic = function() { - var node = this.graph.currentActionContext(); - if (!node) return null; - if (node instanceof RefViewModel) node = node.node(); - return new MergeViewModel(this.graph, this.node, node); -} -GraphActions.Merge.prototype.perform = function(callback) { - this.server.post('/merge', { path: this.graph.repoPath(), with: this.graph.currentActionContext().localRefName }, function(err) { - callback(); - if (err && err.errorCode == 'merge-failed') return true; - }); -} - -GraphActions.Push = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - return self.graph.currentActionContext() instanceof RefViewModel && - self.graph.currentActionContext().node() == self.node && - self.graph.currentActionContext().canBePushed(self.graph.currentRemote()); - }); -} -inherits(GraphActions.Push, GraphActions.ActionBase); -GraphActions.Push.prototype.text = 'Push'; -GraphActions.Push.prototype.style = 'push'; -GraphActions.Push.prototype.icon = 'octicon octicon-cloud-upload'; -GraphActions.Push.prototype.createHoverGraphic = function() { - var context = this.graph.currentActionContext(); - if (!context) return null; - var remoteRef = context.getRemoteRef(this.graph.currentRemote()); - if (!remoteRef) return null; - return new PushViewModel(remoteRef.node(), context.node()); -} -GraphActions.Push.prototype.perform = function(callback) { - var self = this; - var ref = this.graph.currentActionContext(); - var remoteRef = ref.getRemoteRef(this.graph.currentRemote()); - - if (remoteRef) { - remoteRef.moveTo(ref.node().sha1, callback); - } else ref.createRemoteRef(function(err) { - if (!err && self.graph.HEAD().name == ref.name) { - self.grah.HEADref().node(ref.node()); - } - callback(); - }); -} - -GraphActions.Checkout = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - if (self.graph.currentActionContext() instanceof RefViewModel) - return self.graph.currentActionContext().node() == self.node && - !self.graph.currentActionContext().current(); - return ungit.config.allowCheckoutNodes && - self.graph.currentActionContext() == self.node; - }); -} -inherits(GraphActions.Checkout, GraphActions.ActionBase); -GraphActions.Checkout.prototype.text = 'Checkout'; -GraphActions.Checkout.prototype.style = 'checkout'; -GraphActions.Checkout.prototype.icon = 'octicon octicon-desktop-download'; -GraphActions.Checkout.prototype.perform = function(callback) { - var self = this; - var context = this.graph.currentActionContext(); - var refName = context instanceof RefViewModel ? context.refName : context.sha1; - this.server.post('/checkout', { path: this.graph.repoPath(), name: refName }, function(err) { - if (err && err.errorCode != 'merge-failed') { - callback(); - return; - } - - if (context instanceof RefViewModel && context.isRemoteBranch) { - self.server.post('/reset', { path: self.graph.repoPath(), to: context.name, mode: 'hard' }, function(err, res) { - self.graph.HEADref().node(context instanceof RefViewModel ? context.node() : context); - callback(); - return err && err.errorCode != 'merge-failed' ? undefined : true; - }); - } else { - self.graph.HEADref().node(context instanceof RefViewModel ? context.node() : context); - callback(); - } - return true; - }); -} - -GraphActions.Delete = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - return self.graph.currentActionContext() instanceof RefViewModel && - self.graph.currentActionContext().node() == self.node && - !self.graph.currentActionContext().current(); - }); -} -inherits(GraphActions.Delete, GraphActions.ActionBase); -GraphActions.Delete.prototype.text = 'Delete'; -GraphActions.Delete.prototype.style = 'delete'; -GraphActions.Delete.prototype.icon = 'glyphicon glyphicon-remove'; -GraphActions.Delete.prototype.perform = function(callback) { - var context = this.graph.currentActionContext(); - var name = context.isRemoteBranch ? "remote " + context.localRefName : context.localRefName; - var diag = components.create('yesnodialog', { title: 'Are you sure?', details: 'Deleting ' + name + ' branch or tag cannot be undone with ungit.'}); - diag.closed.add(function() { - if (diag.result()) { - context.remove(callback); - } else { - callback(); - } - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} - -GraphActions.CherryPick = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - var context = self.graph.currentActionContext(); - return context === self.node && self.graph.HEAD() && context.sha1 !== self.graph.HEAD().sha1 - }); -} -inherits(GraphActions.CherryPick, GraphActions.ActionBase); -GraphActions.CherryPick.prototype.text = 'Cherry pick'; -GraphActions.CherryPick.prototype.style = 'cherry-pick'; -GraphActions.CherryPick.prototype.icon = 'octicon octicon-circuit-board'; -GraphActions.CherryPick.prototype.perform = function(callback) { - var self = this; - this.server.post('/cherrypick', { path: this.graph.repoPath(), name: this.node.sha1 }, function(err) { - callback(); - if (err && err.errorCode == 'merge-failed') return true; - }); -} - -GraphActions.Uncommit = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - return self.graph.currentActionContext() == self.node && - self.graph.HEAD() == self.node; - }); -} -inherits(GraphActions.Uncommit, GraphActions.ActionBase); -GraphActions.Uncommit.prototype.text = 'Uncommit'; -GraphActions.Uncommit.prototype.style = 'uncommit'; -GraphActions.Uncommit.prototype.icon = 'octicon octicon-zap'; -GraphActions.Uncommit.prototype.perform = function(callback) { - var self = this; - this.server.postPromise('/reset', { path: this.graph.repoPath(), to: 'HEAD^', mode: 'mixed' }) - .then(function() { - var targetNode = self.node.belowNode; - while (targetNode && !targetNode.ancestorOfHEAD()) { - targetNode = targetNode.belowNode; - } - self.graph.HEADref().node(targetNode ? targetNode : null); - self.graph.checkedOutRef().node(targetNode ? targetNode : null); - }).finally(callback); -} - -GraphActions.Revert = function(graph, node) { - var self = this; - GraphActions.ActionBase.call(this, graph); - this.node = node; - this.visible = ko.computed(function() { - if (self.performProgressBar.running()) return true; - return self.graph.currentActionContext() == self.node; - }); -} -inherits(GraphActions.Revert, GraphActions.ActionBase); -GraphActions.Revert.prototype.text = 'Revert'; -GraphActions.Revert.prototype.style = 'revert'; -GraphActions.Revert.prototype.icon = 'octicon octicon-history'; -GraphActions.Revert.prototype.perform = function(callback) { - var self = this; - this.server.postPromise('/revert', { path: this.graph.repoPath(), commit: this.node.sha1 }) - .finally(callback); -} - -},{"./git-ref.js":5,"./hover-actions":7,"knockout":"knockout","ungit-components":"ungit-components","ungit-program-events":"ungit-program-events","util":undefined}],4:[function(require,module,exports){ -var ko = require('knockout'); -var components = require('ungit-components'); -var Selectable = require('./selectable'); -var Animateable = require('./animateable'); -var programEvents = require('ungit-program-events'); -var GraphActions = require('./git-graph-actions'); - -var GitNodeViewModel = function(graph, sha1) { - var self = this; - Selectable.call(this, graph); - Animateable.call(this); - this.graph = graph; - this.sha1 = sha1; - this.isInited = false; - this.title = undefined; - this.parents = ko.observableArray(); - this.commitTime = undefined; // commit time in string - this.date = undefined; // commit time in numeric format for sort - this.color = ko.observable(); - this.ideologicalBranch = ko.observable(); - this.remoteTags = ko.observableArray(); - this.branchesAndLocalTags = ko.observableArray(); - - this.refs = ko.computed(function() { - var rs = self.branchesAndLocalTags().concat(self.remoteTags()); - rs.sort(function(a, b) { - if (a.isLocal && !b.isLocal) return -1; - if (!a.isLocal && b.isLocal) return 1; - return a.refName < b.refName ? -1 : 1; - }); - return rs; - }); - this.ancestorOfHEAD = ko.observable(false); - this.nodeIsMousehover = ko.observable(false); - this.commitContainerVisible = ko.computed(function() { - return self.ancestorOfHEAD() || self.nodeIsMousehover() || self.selected(); - }); - this.highlighted = ko.computed(function() { - return self.nodeIsMousehover() || self.selected(); - }); - this.selected.subscribe(function() { - programEvents.dispatch({ event: 'graph-render' }); - }); - this.commitComponent = components.create('commit', { - sha1: this.sha1, - repoPath: this.graph.repoPath, - server: this.graph.server, - selected: this.selected, - highlighted: this.highlighted, - nodeIsMousehover: this.nodeIsMousehover - }); - // These are split up like this because branches and local tags can be found in the git log, - // whereas remote tags needs to be fetched with another command (which is much slower) - this.branches = ko.computed(function() { - return self.refs().filter(function(r) { return r.isBranch; }); - }); - this.tags = ko.computed(function() { - return self.refs().filter(function(r) { return r.isTag; }); - }); - this.showNewRefAction = ko.computed(function() { - return !graph.currentActionContext(); - }); - this.newBranchName = ko.observable(); - this.newBranchNameHasFocus = ko.observable(true); - this.newBranchNameHasFocus.subscribe(function(newValue) { - if (!newValue) { - // Small timeout because in ff the form is hidden before the submit click event is registered otherwise - setTimeout(function() { - self.branchingFormVisible(false); - }, 200); - } - }); - this.branchingFormVisible = ko.observable(false); - this.canCreateRef = ko.computed(function() { - return self.newBranchName() && self.newBranchName().trim() && self.newBranchName().indexOf(' ') == -1; - }); - this.branchOrder = ko.observable(); - this.aboveNode = undefined; - this.belowNode = undefined; - - this.r = ko.observable(); - this.cx = ko.observable(); - this.cy = ko.observable(); - - this.dropareaGraphActions = [ - new GraphActions.Move(this.graph, this), - new GraphActions.Rebase(this.graph, this), - new GraphActions.Merge(this.graph, this), - new GraphActions.Push(this.graph, this), - new GraphActions.Reset(this.graph, this), - new GraphActions.Checkout(this.graph, this), - new GraphActions.Delete(this.graph, this), - new GraphActions.CherryPick(this.graph, this), - new GraphActions.Uncommit(this.graph, this), - new GraphActions.Revert(this.graph, this) - ]; -} -module.exports = GitNodeViewModel; - -GitNodeViewModel.prototype.getGraphAttr = function() { - return [this.cx(), this.cy()]; -} -GitNodeViewModel.prototype.setGraphAttr = function(val) { - this.element().setAttribute('x', val[0] - 30); - this.element().setAttribute('y', val[1] - 30); -} -GitNodeViewModel.prototype.render = function() { - if (!this.isInited) return; - if (this.ancestorOfHEAD()) { - this.r(30); - this.cx(610); - - if (!this.aboveNode) { - this.cy(120); - } else if (this.aboveNode.ancestorOfHEAD()) { - this.cy(this.aboveNode.cy() + 120); - } else { - this.cy(this.aboveNode.cy() + 60); - } - } else { - this.r(15); - this.cx(610 + (90 * this.branchOrder())); - this.cy(this.aboveNode ? this.aboveNode.cy() + 60 : 120); - } - - if (this.aboveNode && this.aboveNode.selected()) { - this.cy(this.aboveNode.cy() + this.aboveNode.commitComponent.element().offsetHeight + 30); - } - - this.commitComponent.selectedDiffLeftPosition(-(this.cx() - 600)); - this.color(this.ideologicalBranch() ? this.ideologicalBranch().color : '#666'); - this.animate(); -} -GitNodeViewModel.prototype.setData = function(logEntry) { - var self = this; - this.title = logEntry.message.split('\n')[0]; - this.parents(logEntry.parents || []); - this.commitTime = logEntry.commitDate; - this.date = Date.parse(this.commitTime); - this.commitComponent.setData(logEntry); - - if (logEntry.refs) { - logEntry.refs.forEach(function(ref) { - self.graph.getRef(ref).node(self); - }); - } - this.isInited = true; -} -GitNodeViewModel.prototype.showBranchingForm = function() { - this.branchingFormVisible(true); - this.newBranchNameHasFocus(true); -} -GitNodeViewModel.prototype.createBranch = function() { - if (!this.canCreateRef()) return; - var self = this; - var command = ungit.config.autoCheckoutOnBranchCreate ? "/checkout" : "/branches"; - - this.graph.server.postPromise(command, { path: this.graph.repoPath(), name: this.newBranchName(), sha1: this.sha1 }) - .then(function() { - self.graph.getRef('refs/heads/' + self.newBranchName()).node(self); - }).finally(function() { - self.branchingFormVisible(false); - self.newBranchName(''); - programEvents.dispatch({ event: 'branch-updated' }); - }); -} -GitNodeViewModel.prototype.createTag = function() { - if (!this.canCreateRef()) return; - var self = this; - this.graph.server.postPromise('/tags', { path: this.graph.repoPath(), name: this.newBranchName(), sha1: this.sha1 }) - .then(function() { - var newRef = self.graph.getRef('tag: refs/tags/' + self.newBranchName()); - newRef.node(self); - }).finally(function() { - self.branchingFormVisible(false); - self.newBranchName(''); - }); -} -GitNodeViewModel.prototype.toggleSelected = function() { - var self = this; - var beforeThisCR = this.commitComponent.element().getBoundingClientRect(); - var beforeBelowCR = null; - if (this.belowNode) { - beforeBelowCR = this.belowNode.commitComponent.element().getBoundingClientRect(); - } - - var prevSelected = this.graph.currentActionContext(); - if (!(prevSelected instanceof GitNodeViewModel)) prevSelected = null; - var prevSelectedCR = prevSelected ? prevSelected.commitComponent.element().getBoundingClientRect() : null; - this.selected(!this.selected()); - - // If we are deselecting - if (!this.selected()) { - if (beforeThisCR.top < 0 && beforeBelowCR) { - var afterBelowCR = this.belowNode.commitComponent.element().getBoundingClientRect(); - // If the next node is showing, try to keep it in the screen (no jumping) - if (beforeBelowCR.top < window.innerHeight) { - window.scrollBy(0, afterBelowCR.top - beforeBelowCR.top); - // Otherwise just try to bring them to the middle of the screen - } else { - window.scrollBy(0, afterBelowCR.top - window.innerHeight / 2); - } - } - // If we are selecting - } else { - var afterThisCR = this.commitComponent.element().getBoundingClientRect(); - if ((prevSelectedCR && (prevSelectedCR.top < 0 || prevSelectedCR.top > window.innerHeight)) && - afterThisCR.top != beforeThisCR.top) { - window.scrollBy(0, -(beforeThisCR.top - afterThisCR.top)); - console.log('Fix') - } - } - return false; -} -GitNodeViewModel.prototype.removeRef = function(ref) { - if (ref.isRemoteTag) { - this.remoteTags.remove(ref); - } else { - this.branchesAndLocalTags.remove(ref); - } -} -GitNodeViewModel.prototype.pushRef = function(ref) { - if (ref.isRemoteTag && this.remoteTags.indexOf(ref) < 0) { - this.remoteTags.push(ref); - } else if(this.branchesAndLocalTags.indexOf(ref) < 0) { - this.branchesAndLocalTags.push(ref); - } -} -GitNodeViewModel.prototype.getPathToCommonAncestor = function(node) { - var path = []; - var thisNode = this; - while (thisNode && !node.isAncestor(thisNode)) { - path.push(thisNode); - thisNode = this.graph.nodesById[thisNode.parents()[0]]; - } - if (thisNode) path.push(thisNode); - return path; -} -GitNodeViewModel.prototype.isAncestor = function(node) { - if (node == this) return true; - for (var v in this.parents()) { - var n = this.graph.nodesById[this.parents()[v]]; - if (n && n.isAncestor(node)) return true; - } - return false; -} -GitNodeViewModel.prototype.getRightToLeftStrike = function() { - return 'M ' + (this.cx() - 30) + ' ' + (this.cy() - 30) + ' L ' + (this.cx() + 30) + ' ' + (this.cy() + 30); -} -GitNodeViewModel.prototype.getLeftToRightStrike = function() { - return 'M ' + (this.cx() + 30) + ' ' + (this.cy() - 30) + ' L ' + (this.cx() - 30) + ' ' + (this.cy() + 30); -} -GitNodeViewModel.prototype.nodeMouseover = function() { - this.nodeIsMousehover(true); -} -GitNodeViewModel.prototype.nodeMouseout = function() { - this.nodeIsMousehover(false); -} - -},{"./animateable":1,"./git-graph-actions":3,"./selectable":8,"knockout":"knockout","ungit-components":"ungit-components","ungit-program-events":"ungit-program-events"}],5:[function(require,module,exports){ -var ko = require('knockout'); -var md5 = require('blueimp-md5'); -var Selectable = require('./selectable'); -var programEvents = require('ungit-program-events'); -var components = require('ungit-components'); - -var RefViewModel = function(fullRefName, graph) { - var self = this; - Selectable.call(this, graph); - this.graph = graph; - this.name = fullRefName; - this.node = ko.observable(); - this.localRefName = this.name; // origin/master or master - this.refName = this.name; // master - this.isRemoteTag = this.name.indexOf('remote-tag: ') == 0; - this.isLocalTag = this.name.indexOf('tag: ') == 0; - this.isTag = this.isLocalTag || this.isRemoteTag; - var isRemoteBranchOrHEAD = this.name.indexOf('refs/remotes/') == 0; - this.isLocalHEAD = this.name == 'HEAD'; - this.isRemoteHEAD = this.name.indexOf('/HEAD') != -1; - this.isLocalBranch = this.name.indexOf('refs/heads/') == 0; - this.isRemoteBranch = isRemoteBranchOrHEAD && !this.isRemoteHEAD; - this.isStash = this.name.indexOf('refs/stash') == 0; - this.isHEAD = this.isLocalHEAD || this.isRemoteHEAD; - this.isBranch = this.isLocalBranch || this.isRemoteBranch; - this.isRemote = isRemoteBranchOrHEAD || this.isRemoteTag; - this.isLocal = this.isLocalBranch || this.isLocalTag; - if (this.isLocalBranch) { - this.localRefName = this.name.slice('refs/heads/'.length); - this.refName = this.localRefName; - } - if (this.isRemoteBranch) { - this.localRefName = this.name.slice('refs/remotes/'.length); - } - if (this.isLocalTag) { - this.localRefName = this.name.slice('tag: refs/tags/'.length); - this.refName = this.localRefName; - } - if (this.isRemoteTag) { - this.localRefName = this.name.slice('remote-tag: '.length); - } - if (this.isRemote) { - // get rid of the origin/ part of origin/branchname - var s = this.localRefName.split('/'); - this.remote = s[0]; - this.refName = s.slice(1).join('/'); - } - this.show = true; - this.server = this.graph.server; - this.isDragging = ko.observable(false); - this.current = ko.computed(function() { - return self.isLocalBranch && self.graph.checkedOutBranch() == self.refName; - }); - this.color = this._colorFromHashOfString(this.name); - - this.node.subscribe(function(oldNode) { - if (oldNode) oldNode.removeRef(self); - }, null, "beforeChange"); - this.node.subscribe(function(newNode) { - if (newNode) newNode.pushRef(self); - }); -}; -module.exports = RefViewModel; - -RefViewModel.prototype._colorFromHashOfString = function(string) { - return '#' + md5(string).toString().slice(0, 6); -} -RefViewModel.prototype.dragStart = function() { - this.graph.currentActionContext(this); - this.isDragging(true); - if (document.activeElement) document.activeElement.blur(); -} -RefViewModel.prototype.dragEnd = function() { - this.graph.currentActionContext(null); - this.isDragging(false); -} -RefViewModel.prototype.moveTo = function(target, callback) { - var self = this; - - var callbackWithRefSet = function(err, res) { - if (err) { - callback(err, res); - } else { - var targetNode = self.graph.getNode(target); - if (self.graph.checkedOutBranch() == self.refName) { - self.graph.HEADref().node(targetNode); - } - self.node(targetNode); - callback(); - } - } - - if (this.isLocal) { - if (this.current()) { - this.server.post('/reset', { path: this.graph.repoPath(), to: target, mode: 'hard' }, callbackWithRefSet); - } else if (this.isTag) { - this.server.post('/tags', { path: this.graph.repoPath(), name: this.refName, sha1: target, force: true }, callbackWithRefSet); - } else { - this.server.post('/branches', { path: this.graph.repoPath(), name: this.refName, sha1: target, force: true }, callbackWithRefSet); - } - } else { - var pushReq = { path: this.graph.repoPath(), remote: this.remote, refSpec: target, remoteBranch: this.refName }; - this.server.post('/push', pushReq, function(err, res) { - if (err) { - if (err.errorCode == 'non-fast-forward') { - var forcePushDialog = components.create('yesnodialog', { title: 'Force push?', details: 'The remote branch can\'t be fast-forwarded.' }); - forcePushDialog.closed.add(function() { - if (!forcePushDialog.result()) return callback(); - pushReq.force = true; - self.server.post('/push', pushReq, callbackWithRefSet); - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: forcePushDialog }); - return true; - } - } - callbackWithRefSet(err, res); - }); - } -} - -RefViewModel.prototype.remove = function(callback) { - var self = this; - var url = this.isTag ? '/tags' : '/branches'; - if (this.isRemote) url = '/remote' + url; - this.server.del(url, { path: this.graph.repoPath(), remote: this.isRemote ? this.remote : null, name: this.refName }, function(err) { - if (!err) { - self.node().removeRef(self); - self.graph.refsByRefName[self.name] = undefined; - } - - callback(); - self.graph.loadNodesFromApi(); - if (url == '/remote/tags') { - programEvents.dispatch({ event: 'request-fetch-tags' }); - } else { - programEvents.dispatch({ event: 'branch-updated' }); - } - }); -} - -RefViewModel.prototype.getRemoteRef = function(remote) { - return this.graph.getRef(this.getRemoteRefFullName(remote), false); -} - -RefViewModel.prototype.getRemoteRefFullName = function(remote) { - if (this.isLocalBranch) return 'refs/remotes/' + remote + '/' + this.refName; - if (this.isLocalTag) return 'remote-tag: ' + remote + '/' + this.refName; - return null; -} - -RefViewModel.prototype.canBePushed = function(remote) { - if (!this.isLocal) return false; - var remoteRef = this.getRemoteRef(remote); - if (!remoteRef) return true; - return this.node() != remoteRef.node(); -} - -RefViewModel.prototype.createRemoteRef = function(callback) { - var self = this; - this.server.post('/push', { path: this.graph.repoPath(), remote: this.graph.currentRemote(), - refSpec: this.refName, remoteBranch: this.refName }, function(err) { - if (!err) { - var newRef = self.graph.getRef("refs/remotes/" + self.graph.currentRemote() + "/" + self.refName); - newRef.node(self.node()); - } - callback(err); - }); -} - -},{"./selectable":8,"blueimp-md5":"blueimp-md5","knockout":"knockout","ungit-components":"ungit-components","ungit-program-events":"ungit-program-events"}],6:[function(require,module,exports){ -var ko = require('knockout'); -var components = require('ungit-components'); -var GitNodeViewModel = require('./git-node'); -var GitRefViewModel = require('./git-ref'); -var _ = require('lodash'); -var moment = require('moment'); -var EdgeViewModel = require('./edge'); - -components.register('graph', function(args) { - return new GraphViewModel(args.server, args.repoPath); -}); - -function GraphViewModel(server, repoPath) { - var self = this; - this.repoPath = repoPath; - this.maxNNodes = 25; - this.server = server; - this.currentRemote = ko.observable(); - this.nodesLoader = components.create('progressBar', { - predictionMemoryKey: 'gitgraph-' + self.repoPath(), - fallbackPredictedTimeMs: 1000, - temporary: true - }); - this.nodes = ko.observableArray(); - this.edges = ko.observableArray(); - this.refs = ko.observableArray(); - this.nodesById = {}; - this.refsByRefName = {}; - this.checkedOutBranch = ko.observable(); - this.checkedOutRef = ko.computed(function() { - return self.checkedOutBranch() ? self.getRef('refs/heads/' + self.checkedOutBranch()) : null; - }); - this.HEADref = ko.observable(); - this.HEAD = ko.computed(function() { - return self.HEADref() ? self.HEADref().node() : undefined; - }); - this.commitNodeColor = ko.computed(function() { - return self.HEAD() ? self.HEAD().color() : '#4A4A4A'; - }); - this.commitNodeEdge = ko.computed(function() { - if (!self.HEAD() || !self.HEAD().cx() || !self.HEAD().cy()) return; - return "M 610 68 L " + self.HEAD().cx() + " " + self.HEAD().cy(); - }); - this.showCommitNode = ko.observable(false); - this.currentActionContext = ko.observable(); - this.edgesById = {}; - this.scrolledToEnd = _.debounce(function() { - self.maxNNodes = self.maxNNodes + 25; - self.loadNodesFromApi(); - }, 500, true); - this.dimCommit = ko.observable(false); - this.commitOpacity = ko.computed(function() { return self.dimCommit() ? 0.1 : 1; }); - this.heighstBranchOrder = 0; - this.hoverGraphActionGraphic = ko.observable(); - this.hoverGraphActionGraphic.subscribe(function(value) { - if (value && value.destroy) - value.destroy(); - }, null, 'beforeChange'); - - this.hoverGraphAction = ko.observable(); - this.hoverGraphAction.subscribe(function(value) { - if (value && value.createHoverGraphic) { - self.hoverGraphActionGraphic(value.createHoverGraphic()); - } else { - self.hoverGraphActionGraphic(null); - } - }); - - this.loadNodesFromApiThrottled = _.throttle(this.loadNodesFromApi.bind(this), 500); - this.updateBranchesThrottled = _.throttle(this.updateBranches.bind(this), 500); - this.loadNodesFromApiThrottled(); - this.updateBranchesThrottled(); - this.graphWidth = ko.observable(); - this.graphHeight = ko.observable(); -} - -GraphViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('graph', this, {}, parentElement); -} - -GraphViewModel.prototype.getNode = function(sha1, logEntry) { - var nodeViewModel = this.nodesById[sha1]; - if (!nodeViewModel) nodeViewModel = this.nodesById[sha1] = new GitNodeViewModel(this, sha1); - if (logEntry) nodeViewModel.setData(logEntry); - return nodeViewModel; -} -GraphViewModel.prototype.getRef = function(ref, constructIfUnavailable) { - if (constructIfUnavailable === undefined) constructIfUnavailable = true; - var refViewModel = this.refsByRefName[ref]; - if (!refViewModel && constructIfUnavailable) { - refViewModel = this.refsByRefName[ref] = new GitRefViewModel(ref, this); - this.refs.push(refViewModel); - if (refViewModel.name === 'HEAD') { - this.HEADref(refViewModel); - } - } - return refViewModel; -} - -GraphViewModel.prototype.loadNodesFromApi = function(callback) { - var self = this; - - this.nodesLoader.start(); - this.server.getPromise('/log', { path: this.repoPath(), limit: this.maxNNodes }) - .then(function(nodes) { - nodes = self.computeNode(nodes.map(function(logEntry) { - return self.getNode(logEntry.sha1, logEntry); - })); - - var edges = []; - nodes.forEach(function(node) { - node.parents().forEach(function(parentSha1) { - edges.push(self.getEdge(node.sha1, parentSha1)); - }); - node.render(); - }); - - self.edges(edges); - self.nodes(nodes); - - if (nodes.length > 0) { - self.graphHeight(nodes[nodes.length - 1].cy() + 80); - } - self.graphWidth(1000 + (self.heighstBranchOrder * 90)); - }).finally(function() { - self.nodesLoader.stop(); - if (callback) callback(); - }); -} - -GraphViewModel.prototype.traverseNodeLeftParents = function(node, callback) { - callback(node); - var parent = this.nodesById[node.parents()[0]]; - if (parent) { - this.traverseNodeLeftParents(parent, callback); - } -} - -GraphViewModel.prototype.computeNode = function(nodes) { - var self = this; - - if (!nodes) { - nodes = this.nodes(); - } - - this.markNodesIdeologicalBranches(this.refs(), nodes, this.nodesById); - - var updateTimeStamp = moment().valueOf(); - if (this.HEAD()) { - this.traverseNodeLeftParents(this.HEAD(), function(node) { - node.ancestorOfHEADTimeStamp = updateTimeStamp; - }); - } - - // Filter out nodes which doesn't have a branch (staging and orphaned nodes) - nodes = nodes.filter(function(node) { return (node.ideologicalBranch() && !node.ideologicalBranch().isStash) || node.ancestorOfHEADTimeStamp == updateTimeStamp; }) - - var branchSlots = []; - - // Then iterate from the bottom to fix the orders of the branches - for (var i = nodes.length - 1; i >= 0; i--) { - var node = nodes[i]; - if (node.ancestorOfHEADTimeStamp == updateTimeStamp) continue; - var ideologicalBranch = node.ideologicalBranch(); - - // First occurence of the branch, find an empty slot for the branch - if (ideologicalBranch.lastSlottedTimeStamp != updateTimeStamp) { - ideologicalBranch.lastSlottedTimeStamp = updateTimeStamp; - var slot = branchSlots.indexOf(undefined); - if (slot === -1) { - branchSlots.push(ideologicalBranch); - slot = branchSlots.length - 1; - } - ideologicalBranch.branchOrder = slot; - branchSlots[slot] = slot; - } - - node.branchOrder(ideologicalBranch.branchOrder); - self.heighstBranchOrder = Math.max(self.heighstBranchOrder, node.branchOrder()); - } - - var prevNode; - nodes.forEach(function(node) { - node.branchOrder(branchSlots.length - node.branchOrder()); - node.ancestorOfHEAD(node.ancestorOfHEADTimeStamp == updateTimeStamp); - node.aboveNode = prevNode; - if (prevNode) prevNode.belowNode = node; - prevNode = node; - }); - - return nodes; -} - -GraphViewModel.prototype.getEdge = function(nodeAsha1, nodeBsha1) { - var id = nodeAsha1 + '-' + nodeBsha1; - var edge = this.edgesById[id]; - if (!edge) { - edge = this.edgesById[id] = new EdgeViewModel(this, nodeAsha1, nodeBsha1); - } - return edge; -} - -GraphViewModel._markIdeologicalStamp = 0; -GraphViewModel.prototype.markNodesIdeologicalBranches = function(refs, nodes, nodesById) { - var self = this; - refs = refs.filter(function(r) { return !!r.node(); }); - refs = refs.sort(function(a, b) { - if (a.isLocal && !b.isLocal) return -1; - if (b.isLocal && !a.isLocal) return 1; - if (a.isBranch && !b.isBranch) return -1; - if (b.isBranch && !a.isBranch) return 1; - if (a.isHEAD && !b.isHEAD) return 1; - if (!a.isHEAD && b.isHEAD) return -1; - if (a.isStash && !b.isStash) return 1; - if (b.isStash && !a.isStash) return -1; - if (a.node() && a.node().date && b.node() && b.node().date) - return b.node().date - a.node().date; - return a.refName < b.refName ? -1 : 1; - }); - var stamp = GraphViewModel._markIdeologicalStamp++; - refs.forEach(function(ref) { - self.traverseNodeParents(ref.node(), function(node) { - if (node.stamp == stamp) return false; - node.stamp = stamp; - node.ideologicalBranch(ref); - return true; - }); - }); -} - -GraphViewModel.prototype.traverseNodeParents = function(node, callback) { - if (!callback(node)) return false; - for (var i = 0; i < node.parents().length; i++) { - // if parent, travers parent - var parent = this.nodesById[node.parents()[i]]; - if (parent) { - this.traverseNodeParents(parent, callback); - } - } -} - -GraphViewModel.prototype.handleBubbledClick = function(elem, event) { - // If the clicked element is bound to the current action context, - // then let's not deselect it. - if (ko.dataFor(event.target) === this.currentActionContext()) return; - if (this.currentActionContext() && this.currentActionContext() instanceof GitNodeViewModel) { - this.currentActionContext().toggleSelected(); - } else { - this.currentActionContext(null); - } - // If the click was on an input element, then let's allow the default action to proceed. - // This is especially needed since for some strange reason any submit (ie. enter in a textbox) - // will trigger a click event on the submit input of the form, which will end up here, - // and if we don't return true, then the submit event is never fired, breaking stuff. - if (event.target.nodeName === 'INPUT') return true; -} - -GraphViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'git-directory-changed') { - this.loadNodesFromApiThrottled(); - this.updateBranchesThrottled(); - } else if (event.event == 'request-app-content-refresh') { - this.loadNodesFromApiThrottled(); - } else if (event.event == 'remote-tags-update') { - this.setRemoteTags(event.tags); - } else if (event.event == 'current-remote-changed') { - this.currentRemote(event.newRemote); - } else if (event.event == 'graph-render') { - this.nodes().forEach(function(node) { - node.render(); - }); - } -} -GraphViewModel.prototype.updateBranches = function() { - var self = this; - this.server.get('/checkout', { path: this.repoPath() }, function(err, branch) { - if (err && err.errorCode == 'not-a-repository') return true; - if (err) return; - self.checkedOutBranch(branch); - }); -} -GraphViewModel.prototype.setRemoteTags = function(remoteTags) { - var self = this; - var nodeIdsToRemoteTags = {}; - remoteTags.forEach(function(ref) { - if (ref.name.indexOf('^{}') != -1) { - var tagRef = ref.name.slice(0, ref.name.length - '^{}'.length); - var name = 'remote-tag: ' + ref.remote + '/' + tagRef.split('/')[2]; - self.getRef(name).node(self.getNode(ref.sha1)); - } - }); -} -GraphViewModel.prototype.checkHeadMove = function(toNode) { - if (this.HEAD() === toNode) { - this.HEADref.node(toNode); - } -} - -},{"./edge":2,"./git-node":4,"./git-ref":5,"knockout":"knockout","lodash":"lodash","moment":"moment","ungit-components":"ungit-components"}],7:[function(require,module,exports){ -var getEdgeModelWithD = function(d, stroke, strokeWidth, strokeDasharray, markerEnd) { - return { d: d, - stroke: stroke ? stroke : '#4A4A4A', - strokeWidth: strokeWidth ? strokeWidth : '8', - strokeDasharray: strokeDasharray ? strokeDasharray : '10, 5', - markerEnd: markerEnd ? markerEnd : '' }; -} - -var getEdgeModel = function(scx, scy, tcx, tcy, stroke, strokeWidth, strokeDasharray, markerEnd) { - return getEdgeModelWithD("M " + scx + " " + scy + " L " + tcx + " " + tcy, stroke, strokeWidth, strokeDasharray, markerEnd); -} - -var getNodeModel = function(cx, cy, r, fill, stroke, strokeWidth, strokeDasharray) { - return { cx: cx, - cy: cy, - r: r, - fill: fill, - stroke: stroke ? stroke : '#41DE3C', - strokeWidth: strokeWidth ? strokeWidth : '8', - strokeDasharray: strokeDasharray ? strokeDasharray : '10, 5' }; -} - -function HoverViewModel() { - this.bgEdges = []; - this.nodes = []; - this.fgEdges = []; -} - -function MergeViewModel(graph, headNode, node) { - var self = this; - HoverViewModel.call(this); - this.graph = graph; - this.bgEdges = [ getEdgeModel(headNode.cx(), (headNode.cy() - 110), headNode.cx(), headNode.cy()), - getEdgeModel(headNode.cx(), (headNode.cy() - 110), node.cx(), node.cy()) ]; - this.nodes = [ getNodeModel(headNode.cx(), headNode.cy() - 110, Math.max(headNode.r(), node.r()), '#252833', '#41DE3C', '8', '10, 5') ]; - - graph.dimCommit(true); -} -exports.MergeViewModel = MergeViewModel; -MergeViewModel.prototype.destroy = function() { - this.graph.dimCommit(false); -} - -function RebaseViewModel(onto, nodesThatWillMove) { - var self = this; - HoverViewModel.call(this); - nodesThatWillMove = nodesThatWillMove.slice(0, -1); - - if (nodesThatWillMove.length == 0) return; - - this.bgEdges.push(getEdgeModel(onto.cx(), onto.cy(), onto.cx(), onto.cy() - 60)); - nodesThatWillMove.forEach(function(node, i) { - var cy = onto.cy() + (-90 * (i + 1)); - self.nodes.push(getNodeModel(onto.cx(), cy, 28, 'transparent')); - if (i + 1 < nodesThatWillMove.length) { - self.bgEdges.push(getEdgeModel(onto.cx(), (cy - 25), onto.cx(), (cy - 65))); - } - }); -} -exports.RebaseViewModel = RebaseViewModel; - -function ResetViewModel(nodes) { - var self = this; - HoverViewModel.call(this); - - nodes.forEach(function(node) { - self.fgEdges.push(getEdgeModelWithD(node.getLeftToRightStrike(), 'rgb(255, 129, 31)', '8', '0, 0')) - self.fgEdges.push(getEdgeModelWithD(node.getRightToLeftStrike(), 'rgb(255, 129, 31)', '8', '0, 0')); - }); -} -exports.ResetViewModel = ResetViewModel; - -function PushViewModel(fromNode, toNode) { - HoverViewModel.call(this); - this.fgEdges = [getEdgeModel(fromNode.cx(), fromNode.cy(), toNode.cx(), (toNode.cy() + 40), 'rgb(61, 139, 255)', '15', '10, 5', 'url(#pushArrowEnd)' )]; -} -exports.PushViewModel = PushViewModel; - -},{}],8:[function(require,module,exports){ -var ko = require('knockout'); - -var Selectable = function(graph) { - this.selected = ko.computed({ - read: function() { - return graph.currentActionContext() == this; - }, - write: function(val) { - // val is this if we're called from a click ko binding - if (val === this || val === true) { - graph.currentActionContext(this); - } else if (graph.currentActionContext() == this) { - graph.currentActionContext(null); - } - }, - owner: this - }); -}; -module.exports = Selectable; - -},{"knockout":"knockout"}]},{},[6]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJjb21wb25lbnRzL2dyYXBoL2FuaW1hdGVhYmxlLmpzIiwiY29tcG9uZW50cy9ncmFwaC9lZGdlLmpzIiwiY29tcG9uZW50cy9ncmFwaC9naXQtZ3JhcGgtYWN0aW9ucy5qcyIsImNvbXBvbmVudHMvZ3JhcGgvZ2l0LW5vZGUuanMiLCJjb21wb25lbnRzL2dyYXBoL2dpdC1yZWYuanMiLCJjb21wb25lbnRzL2dyYXBoL2dyYXBoLmpzIiwiY29tcG9uZW50cy9ncmFwaC9ob3Zlci1hY3Rpb25zLmpzIiwiY29tcG9uZW50cy9ncmFwaC9zZWxlY3RhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaldBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDelNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCJ2YXIga28gPSByZXF1aXJlKCdrbm9ja291dCcpO1xucmVxdWlyZSgnbWluYScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGdyYXBoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5lbGVtZW50ID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLnByZXZpb3VzR3JhcGggPSB1bmRlZmluZWQ7XG4gIHRoaXMuZWxlbWVudC5zdWJzY3JpYmUoZnVuY3Rpb24odmFsKSB7XG4gICAgaWYgKHZhbCkgc2VsZi5hbmltYXRlKHRydWUpO1xuICB9KTtcbiAgdGhpcy5hbmltYXRlID0gZnVuY3Rpb24oZm9yY2VSZWZyZXNoKSB7XG4gICAgdmFyIGN1cnJlbnRHcmFwaCA9IHRoaXMuZ2V0R3JhcGhBdHRyKCk7XG4gICAgLy8gYW5pbWF0ZSBvbmx5IHdoZW4gZG9tIGlzIHZhbGlkIGFuZCAoYXR0cmlidXRlIGNoYW5nZWQgb3IgZm9yY2UgcmVmcmVzaCBkdWUgdG8gZG9tIGNoYW5nZSlcbiAgICBpZiAodGhpcy5lbGVtZW50KCkgJiYgKGZvcmNlUmVmcmVzaCB8fCBKU09OLnN0cmluZ2lmeShjdXJyZW50R3JhcGgpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByZXZpb3VzR3JhcGgpKSkge1xuICAgICAgdmFyIG5vdyA9IERhdGUubm93KCk7XG4gICAgICB3aW5kb3cubWluYSh0aGlzLnByZXZpb3VzR3JhcGggfHwgY3VycmVudEdyYXBoLCBjdXJyZW50R3JhcGgsIG5vdywgbm93ICsgNzUwLCB3aW5kb3cubWluYS50aW1lLCBmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgIHNlbGYuc2V0R3JhcGhBdHRyKHZhbCk7XG4gICAgICB9LCB3aW5kb3cubWluYS5lbGFzdGljKTtcbiAgICAgIHRoaXMucHJldmlvdXNHcmFwaCA9IGN1cnJlbnRHcmFwaDtcbiAgICB9XG4gIH1cbn07XG4iLCJ2YXIga28gPSByZXF1aXJlKCdrbm9ja291dCcpO1xudmFyIEFuaW1hdGVhYmxlID0gcmVxdWlyZSgnLi9hbmltYXRlYWJsZScpO1xuXG52YXIgRWRnZVZpZXdNb2RlbCA9IGZ1bmN0aW9uKGdyYXBoLCBub2RlQXNoYTEsIG5vZGVCc2hhMSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIEFuaW1hdGVhYmxlLmNhbGwodGhpcyk7XG4gIHRoaXMubm9kZUEgPSBncmFwaC5nZXROb2RlKG5vZGVBc2hhMSk7XG4gIHRoaXMubm9kZUIgPSBncmFwaC5nZXROb2RlKG5vZGVCc2hhMSk7XG4gIHRoaXMuZ2V0R3JhcGhBdHRyID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgaWYgKHNlbGYubm9kZUIuaXNJbml0ZWQgJiYgc2VsZi5ub2RlQi5jeCgpICYmIHNlbGYubm9kZUIuY3koKSkge1xuICAgICAgcmV0dXJuIFtzZWxmLm5vZGVBLmN4KCksIHNlbGYubm9kZUEuY3koKSwgc2VsZi5ub2RlQS5jeCgpLCBzZWxmLm5vZGVBLmN5KCksXG4gICAgICAgICAgICAgIHNlbGYubm9kZUIuY3goKSwgc2VsZi5ub2RlQi5jeSgpLCBzZWxmLm5vZGVCLmN4KCksIHNlbGYubm9kZUIuY3koKV07XG4gICAgfSBlbHNlIGlmIChncmFwaC5ncmFwaEhlaWdodCgpKSB7XG4gICAgICByZXR1cm4gW3NlbGYubm9kZUEuY3goKSwgc2VsZi5ub2RlQS5jeSgpLCBzZWxmLm5vZGVBLmN4KCksIHNlbGYubm9kZUEuY3koKSxcbiAgICAgICAgICAgICAgc2VsZi5ub2RlQS5jeCgpLCBncmFwaC5ncmFwaEhlaWdodCgpLCBzZWxmLm5vZGVBLmN4KCksIGdyYXBoLmdyYXBoSGVpZ2h0KCldO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW3NlbGYubm9kZUEuY3goKSwgc2VsZi5ub2RlQS5jeSgpLCBzZWxmLm5vZGVBLmN4KCksIHNlbGYubm9kZUEuY3koKSxcbiAgICAgICAgICAgICAgc2VsZi5ub2RlQS5jeCgpLCBzZWxmLm5vZGVBLmN5KCksIHNlbGYubm9kZUEuY3goKSwgc2VsZi5ub2RlQS5jeSgpXTtcbiAgICB9XG4gIH0pO1xuICB0aGlzLmdldEdyYXBoQXR0ci5zdWJzY3JpYmUodGhpcy5hbmltYXRlLmJpbmQodGhpcykpO1xufVxuRWRnZVZpZXdNb2RlbC5wcm90b3R5cGUuc2V0R3JhcGhBdHRyID0gZnVuY3Rpb24odmFsKSB7XG4gIHRoaXMuZWxlbWVudCgpLnNldEF0dHJpYnV0ZSgnZCcsICdNJyArIHZhbC5zbGljZSgwLDQpLmpvaW4oJywnKSArICdMJyArIHZhbC5zbGljZSg0LDgpLmpvaW4oJywnKSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEVkZ2VWaWV3TW9kZWw7XG4iLCJcbnZhciBrbyA9IHJlcXVpcmUoJ2tub2Nrb3V0Jyk7XG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCd1dGlsJykuaW5oZXJpdHM7XG52YXIgY29tcG9uZW50cyA9IHJlcXVpcmUoJ3VuZ2l0LWNvbXBvbmVudHMnKTtcbnZhciBSZWZWaWV3TW9kZWwgPSByZXF1aXJlKCcuL2dpdC1yZWYuanMnKTtcbnZhciBIb3ZlckFjdGlvbnMgPSByZXF1aXJlKCcuL2hvdmVyLWFjdGlvbnMnKTtcbnZhciBSZWJhc2VWaWV3TW9kZWwgPSBIb3ZlckFjdGlvbnMuUmViYXNlVmlld01vZGVsO1xudmFyIE1lcmdlVmlld01vZGVsID0gSG92ZXJBY3Rpb25zLk1lcmdlVmlld01vZGVsO1xudmFyIFJlc2V0Vmlld01vZGVsID0gSG92ZXJBY3Rpb25zLlJlc2V0Vmlld01vZGVsO1xudmFyIFB1c2hWaWV3TW9kZWwgPSBIb3ZlckFjdGlvbnMuUHVzaFZpZXdNb2RlbDtcbnZhciBwcm9ncmFtRXZlbnRzID0gcmVxdWlyZSgndW5naXQtcHJvZ3JhbS1ldmVudHMnKTtcblxudmFyIEdyYXBoQWN0aW9ucyA9IHt9O1xubW9kdWxlLmV4cG9ydHMgPSBHcmFwaEFjdGlvbnM7XG5cbkdyYXBoQWN0aW9ucy5BY3Rpb25CYXNlID0gZnVuY3Rpb24oZ3JhcGgpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLmdyYXBoID0gZ3JhcGg7XG4gIHRoaXMuc2VydmVyID0gZ3JhcGguc2VydmVyO1xuICB0aGlzLnBlcmZvcm1Qcm9ncmVzc0JhciA9IGNvbXBvbmVudHMuY3JlYXRlKCdwcm9ncmVzc0JhcicsIHtcbiAgICBwcmVkaWN0aW9uTWVtb3J5S2V5OiAnYWN0aW9uLScgKyB0aGlzLnN0eWxlICsgJy0nICsgZ3JhcGgucmVwb1BhdGgoKSxcbiAgICBmYWxsYmFja1ByZWRpY3RlZFRpbWVNczogMTAwMCxcbiAgICB0ZW1wb3Jhcnk6IHRydWVcbiAgfSk7XG5cbiAgdGhpcy5pc0hpZ2hsaWdodGVkID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICFncmFwaC5ob3ZlckdyYXBoQWN0aW9uKCkgfHwgZ3JhcGguaG92ZXJHcmFwaEFjdGlvbigpID09IHNlbGY7XG4gIH0pO1xuICB0aGlzLmNzc0NsYXNzZXMgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICB2YXIgYyA9IHNlbGYuc3R5bGU7XG4gICAgaWYgKCFzZWxmLmlzSGlnaGxpZ2h0ZWQoKSkgYyArPSAnIGRpbW1lZCc7XG4gICAgcmV0dXJuIGM7XG4gIH0pXG59XG5HcmFwaEFjdGlvbnMuQWN0aW9uQmFzZS5wcm90b3R5cGUuaWNvbiA9IG51bGw7XG5HcmFwaEFjdGlvbnMuQWN0aW9uQmFzZS5wcm90b3R5cGUuZG9QZXJmb3JtID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5ncmFwaC5ob3ZlckdyYXBoQWN0aW9uKG51bGwpO1xuICBzZWxmLnBlcmZvcm1Qcm9ncmVzc0Jhci5zdGFydCgpO1xuICB0aGlzLnBlcmZvcm0oZnVuY3Rpb24oKSB7XG4gICAgc2VsZi5wZXJmb3JtUHJvZ3Jlc3NCYXIuc3RvcCgpO1xuICB9KTtcbn1cbkdyYXBoQWN0aW9ucy5BY3Rpb25CYXNlLnByb3RvdHlwZS5kcmFnRW50ZXIgPSBmdW5jdGlvbigpIHtcbiAgaWYgKCF0aGlzLnZpc2libGUoKSkgcmV0dXJuO1xuICB0aGlzLmdyYXBoLmhvdmVyR3JhcGhBY3Rpb24odGhpcyk7XG59XG5HcmFwaEFjdGlvbnMuQWN0aW9uQmFzZS5wcm90b3R5cGUuZHJhZ0xlYXZlID0gZnVuY3Rpb24oKSB7XG4gIGlmICghdGhpcy52aXNpYmxlKCkpIHJldHVybjtcbiAgdGhpcy5ncmFwaC5ob3ZlckdyYXBoQWN0aW9uKG51bGwpO1xufVxuR3JhcGhBY3Rpb25zLkFjdGlvbkJhc2UucHJvdG90eXBlLm1vdXNlb3ZlciA9IGZ1bmN0aW9uKCkge1xuICB0aGlzLmdyYXBoLmhvdmVyR3JhcGhBY3Rpb24odGhpcyk7XG59XG5HcmFwaEFjdGlvbnMuQWN0aW9uQmFzZS5wcm90b3R5cGUubW91c2VvdXQgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5ncmFwaC5ob3ZlckdyYXBoQWN0aW9uKG51bGwpO1xufVxuXG5HcmFwaEFjdGlvbnMuTW92ZSA9IGZ1bmN0aW9uKGdyYXBoLCBub2RlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgR3JhcGhBY3Rpb25zLkFjdGlvbkJhc2UuY2FsbCh0aGlzLCBncmFwaCk7XG4gIHRoaXMubm9kZSA9IG5vZGU7XG4gIHRoaXMudmlzaWJsZSA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIGlmIChzZWxmLnBlcmZvcm1Qcm9ncmVzc0Jhci5ydW5uaW5nKCkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBzZWxmLmdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KCkgaW5zdGFuY2VvZiBSZWZWaWV3TW9kZWwgJiZcbiAgICAgIHNlbGYuZ3JhcGguY3VycmVudEFjdGlvbkNvbnRleHQoKS5ub2RlKCkgIT0gc2VsZi5ub2RlO1xuICB9KTtcbn1cbmluaGVyaXRzKEdyYXBoQWN0aW9ucy5Nb3ZlLCBHcmFwaEFjdGlvbnMuQWN0aW9uQmFzZSk7XG5HcmFwaEFjdGlvbnMuTW92ZS5wcm90b3R5cGUudGV4dCA9ICdNb3ZlJztcbkdyYXBoQWN0aW9ucy5Nb3ZlLnByb3RvdHlwZS5zdHlsZSA9ICdtb3ZlJztcbkdyYXBoQWN0aW9ucy5Nb3ZlLnByb3RvdHlwZS5pY29uID0gJ2dseXBoaWNvbiBnbHlwaGljb24tbW92ZSc7XG5HcmFwaEFjdGlvbnMuTW92ZS5wcm90b3R5cGUucGVyZm9ybSA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHRoaXMuZ3JhcGguY3VycmVudEFjdGlvbkNvbnRleHQoKS5tb3ZlVG8odGhpcy5ub2RlLnNoYTEsIGNhbGxiYWNrKTtcbn1cblxuR3JhcGhBY3Rpb25zLlJlc2V0ID0gZnVuY3Rpb24oZ3JhcGgsIG5vZGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBHcmFwaEFjdGlvbnMuQWN0aW9uQmFzZS5jYWxsKHRoaXMsIGdyYXBoKTtcbiAgdGhpcy5ub2RlID0gbm9kZTtcbiAgdGhpcy52aXNpYmxlID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgaWYgKHNlbGYucGVyZm9ybVByb2dyZXNzQmFyLnJ1bm5pbmcoKSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKCEoc2VsZi5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpIGluc3RhbmNlb2YgUmVmVmlld01vZGVsKSkgcmV0dXJuIGZhbHNlO1xuICAgIHZhciBjb250ZXh0ID0gc2VsZi5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpO1xuICAgIGlmIChjb250ZXh0Lm5vZGUoKSAhPSBzZWxmLm5vZGUpIHJldHVybiBmYWxzZTtcbiAgICB2YXIgcmVtb3RlUmVmID0gY29udGV4dC5nZXRSZW1vdGVSZWYoc2VsZi5ncmFwaC5jdXJyZW50UmVtb3RlKCkpO1xuICAgIHJldHVybiByZW1vdGVSZWYgJiZcbiAgICAgIHJlbW90ZVJlZi5ub2RlKCkgIT0gY29udGV4dC5ub2RlKCkgJiZcbiAgICAgIHJlbW90ZVJlZi5ub2RlKCkuZGF0ZSA8IGNvbnRleHQubm9kZSgpLmRhdGU7XG4gIH0pO1xufVxuaW5oZXJpdHMoR3JhcGhBY3Rpb25zLlJlc2V0LCBHcmFwaEFjdGlvbnMuQWN0aW9uQmFzZSk7XG5HcmFwaEFjdGlvbnMuUmVzZXQucHJvdG90eXBlLnRleHQgPSAnUmVzZXQnO1xuR3JhcGhBY3Rpb25zLlJlc2V0LnByb3RvdHlwZS5zdHlsZSA9ICdyZXNldCc7XG5HcmFwaEFjdGlvbnMuUmVzZXQucHJvdG90eXBlLmljb24gPSAnZ2x5cGhpY29uIGdseXBoaWNvbi10cmFzaCc7XG5HcmFwaEFjdGlvbnMuUmVzZXQucHJvdG90eXBlLmNyZWF0ZUhvdmVyR3JhcGhpYyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgY29udGV4dCA9IHRoaXMuZ3JhcGguY3VycmVudEFjdGlvbkNvbnRleHQoKTtcbiAgaWYgKCFjb250ZXh0KSByZXR1cm4gbnVsbDtcbiAgdmFyIHJlbW90ZVJlZiA9IGNvbnRleHQuZ2V0UmVtb3RlUmVmKHRoaXMuZ3JhcGguY3VycmVudFJlbW90ZSgpKTtcbiAgdmFyIG5vZGVzID0gY29udGV4dC5ub2RlKCkuZ2V0UGF0aFRvQ29tbW9uQW5jZXN0b3IocmVtb3RlUmVmLm5vZGUoKSkuc2xpY2UoMCwgLTEpO1xuICByZXR1cm4gbmV3IFJlc2V0Vmlld01vZGVsKG5vZGVzKTtcbn1cbkdyYXBoQWN0aW9ucy5SZXNldC5wcm90b3R5cGUucGVyZm9ybSA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGNvbnRleHQgPSB0aGlzLmdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KCk7XG4gIHZhciByZW1vdGVSZWYgPSBjb250ZXh0LmdldFJlbW90ZVJlZihzZWxmLmdyYXBoLmN1cnJlbnRSZW1vdGUoKSk7XG4gIHZhciBkaWFnID0gY29tcG9uZW50cy5jcmVhdGUoJ3llc25vZGlhbG9nJywgeyB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLCBkZXRhaWxzOiAnUmVzZXR0aW5nIHRvIHJlZjogJyArIHJlbW90ZVJlZi5uYW1lICsgJyBjYW5ub3QgYmUgdW5kb25lIHdpdGggdW5naXQuJ30pO1xuICBkaWFnLmNsb3NlZC5hZGQoZnVuY3Rpb24oKSB7XG4gICAgaWYgKGRpYWcucmVzdWx0KCkpIHtcbiAgICAgIHNlbGYuc2VydmVyLnBvc3QoJy9yZXNldCcsIHsgcGF0aDogc2VsZi5ncmFwaC5yZXBvUGF0aCgpLCB0bzogcmVtb3RlUmVmLm5hbWUsIG1vZGU6ICdoYXJkJyB9LCBmdW5jdGlvbigpIHtcbiAgICAgICAgY29udGV4dC5ub2RlKHJlbW90ZVJlZi5ub2RlKCkpO1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgfVxuICB9KTtcbiAgcHJvZ3JhbUV2ZW50cy5kaXNwYXRjaCh7IGV2ZW50OiAncmVxdWVzdC1zaG93LWRpYWxvZycsIGRpYWxvZzogZGlhZyB9KTtcbn1cblxuR3JhcGhBY3Rpb25zLlJlYmFzZSA9IGZ1bmN0aW9uKGdyYXBoLCBub2RlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgR3JhcGhBY3Rpb25zLkFjdGlvbkJhc2UuY2FsbCh0aGlzLCBncmFwaCk7XG4gIHRoaXMubm9kZSA9IG5vZGU7XG4gIHRoaXMudmlzaWJsZSA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIGlmIChzZWxmLnBlcmZvcm1Qcm9ncmVzc0Jhci5ydW5uaW5nKCkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBzZWxmLmdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KCkgaW5zdGFuY2VvZiBSZWZWaWV3TW9kZWwgJiZcbiAgICAgICghdW5naXQuY29uZmlnLnNob3dSZWJhc2VBbmRNZXJnZU9ubHlPblJlZnMgfHwgc2VsZi5ub2RlLnJlZnMoKS5sZW5ndGggPiAwKSAmJlxuICAgICAgc2VsZi5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpLmN1cnJlbnQoKSAmJlxuICAgICAgc2VsZi5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpLm5vZGUoKSAhPSBzZWxmLm5vZGU7XG4gIH0pO1xufVxuaW5oZXJpdHMoR3JhcGhBY3Rpb25zLlJlYmFzZSwgR3JhcGhBY3Rpb25zLkFjdGlvbkJhc2UpO1xuR3JhcGhBY3Rpb25zLlJlYmFzZS5wcm90b3R5cGUudGV4dCA9ICdSZWJhc2UnO1xuR3JhcGhBY3Rpb25zLlJlYmFzZS5wcm90b3R5cGUuc3R5bGUgPSAncmViYXNlJztcbkdyYXBoQWN0aW9ucy5SZWJhc2UucHJvdG90eXBlLmljb24gPSAnb2N0aWNvbiBvY3RpY29uLXJlcG8tZm9ya2VkIGZsaXAnO1xuR3JhcGhBY3Rpb25zLlJlYmFzZS5wcm90b3R5cGUuY3JlYXRlSG92ZXJHcmFwaGljID0gZnVuY3Rpb24oKSB7XG4gIHZhciBvbnRvID0gdGhpcy5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpO1xuICBpZiAoIW9udG8pIHJldHVybjtcbiAgaWYgKG9udG8gaW5zdGFuY2VvZiBSZWZWaWV3TW9kZWwpIG9udG8gPSBvbnRvLm5vZGUoKTtcbiAgdmFyIHBhdGggPSBvbnRvLmdldFBhdGhUb0NvbW1vbkFuY2VzdG9yKHRoaXMubm9kZSk7XG4gIHJldHVybiBuZXcgUmViYXNlVmlld01vZGVsKHRoaXMubm9kZSwgcGF0aCk7XG59XG5HcmFwaEFjdGlvbnMuUmViYXNlLnByb3RvdHlwZS5wZXJmb3JtID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdGhpcy5zZXJ2ZXIucG9zdCgnL3JlYmFzZScsIHsgcGF0aDogdGhpcy5ncmFwaC5yZXBvUGF0aCgpLCBvbnRvOiB0aGlzLm5vZGUuc2hhMSB9LCBmdW5jdGlvbihlcnIpIHtcbiAgICBjYWxsYmFjaygpO1xuICAgIGlmIChlcnIgJiYgZXJyLmVycm9yQ29kZSA9PSAnbWVyZ2UtZmFpbGVkJykgcmV0dXJuIHRydWU7XG4gIH0pO1xufVxuXG5HcmFwaEFjdGlvbnMuTWVyZ2UgPSBmdW5jdGlvbihncmFwaCwgbm9kZSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIEdyYXBoQWN0aW9ucy5BY3Rpb25CYXNlLmNhbGwodGhpcywgZ3JhcGgpO1xuICB0aGlzLm5vZGUgPSBub2RlO1xuICB0aGlzLnZpc2libGUgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICBpZiAoc2VsZi5wZXJmb3JtUHJvZ3Jlc3NCYXIucnVubmluZygpKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoIXNlbGYuZ3JhcGguY2hlY2tlZE91dFJlZigpIHx8ICFzZWxmLmdyYXBoLmNoZWNrZWRPdXRSZWYoKS5ub2RlKCkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gc2VsZi5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpIGluc3RhbmNlb2YgUmVmVmlld01vZGVsICYmXG4gICAgICAhc2VsZi5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpLmN1cnJlbnQoKSAmJlxuICAgICAgc2VsZi5ncmFwaC5jaGVja2VkT3V0UmVmKCkubm9kZSgpID09IHNlbGYubm9kZTtcbiAgfSk7XG59XG5pbmhlcml0cyhHcmFwaEFjdGlvbnMuTWVyZ2UsIEdyYXBoQWN0aW9ucy5BY3Rpb25CYXNlKTtcbkdyYXBoQWN0aW9ucy5NZXJnZS5wcm90b3R5cGUudGV4dCA9ICdNZXJnZSc7XG5HcmFwaEFjdGlvbnMuTWVyZ2UucHJvdG90eXBlLnN0eWxlID0gJ21lcmdlJztcbkdyYXBoQWN0aW9ucy5NZXJnZS5wcm90b3R5cGUuaWNvbiA9ICdvY3RpY29uIG9jdGljb24tZ2l0LW1lcmdlJztcbkdyYXBoQWN0aW9ucy5NZXJnZS5wcm90b3R5cGUuY3JlYXRlSG92ZXJHcmFwaGljID0gZnVuY3Rpb24oKSB7XG4gIHZhciBub2RlID0gdGhpcy5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpO1xuICBpZiAoIW5vZGUpIHJldHVybiBudWxsO1xuICBpZiAobm9kZSBpbnN0YW5jZW9mIFJlZlZpZXdNb2RlbCkgbm9kZSA9IG5vZGUubm9kZSgpO1xuICByZXR1cm4gbmV3IE1lcmdlVmlld01vZGVsKHRoaXMuZ3JhcGgsIHRoaXMubm9kZSwgbm9kZSk7XG59XG5HcmFwaEFjdGlvbnMuTWVyZ2UucHJvdG90eXBlLnBlcmZvcm0gPSBmdW5jdGlvbihjYWxsYmFjaykge1xuICB0aGlzLnNlcnZlci5wb3N0KCcvbWVyZ2UnLCB7IHBhdGg6IHRoaXMuZ3JhcGgucmVwb1BhdGgoKSwgd2l0aDogdGhpcy5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpLmxvY2FsUmVmTmFtZSB9LCBmdW5jdGlvbihlcnIpIHtcbiAgICBjYWxsYmFjaygpO1xuICAgIGlmIChlcnIgJiYgZXJyLmVycm9yQ29kZSA9PSAnbWVyZ2UtZmFpbGVkJykgcmV0dXJuIHRydWU7XG4gIH0pO1xufVxuXG5HcmFwaEFjdGlvbnMuUHVzaCA9IGZ1bmN0aW9uKGdyYXBoLCBub2RlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgR3JhcGhBY3Rpb25zLkFjdGlvbkJhc2UuY2FsbCh0aGlzLCBncmFwaCk7XG4gIHRoaXMubm9kZSA9IG5vZGU7XG4gIHRoaXMudmlzaWJsZSA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIGlmIChzZWxmLnBlcmZvcm1Qcm9ncmVzc0Jhci5ydW5uaW5nKCkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBzZWxmLmdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KCkgaW5zdGFuY2VvZiBSZWZWaWV3TW9kZWwgJiZcbiAgICAgIHNlbGYuZ3JhcGguY3VycmVudEFjdGlvbkNvbnRleHQoKS5ub2RlKCkgPT0gc2VsZi5ub2RlICYmXG4gICAgICBzZWxmLmdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KCkuY2FuQmVQdXNoZWQoc2VsZi5ncmFwaC5jdXJyZW50UmVtb3RlKCkpO1xuICB9KTtcbn1cbmluaGVyaXRzKEdyYXBoQWN0aW9ucy5QdXNoLCBHcmFwaEFjdGlvbnMuQWN0aW9uQmFzZSk7XG5HcmFwaEFjdGlvbnMuUHVzaC5wcm90b3R5cGUudGV4dCA9ICdQdXNoJztcbkdyYXBoQWN0aW9ucy5QdXNoLnByb3RvdHlwZS5zdHlsZSA9ICdwdXNoJztcbkdyYXBoQWN0aW9ucy5QdXNoLnByb3RvdHlwZS5pY29uID0gJ29jdGljb24gb2N0aWNvbi1jbG91ZC11cGxvYWQnO1xuR3JhcGhBY3Rpb25zLlB1c2gucHJvdG90eXBlLmNyZWF0ZUhvdmVyR3JhcGhpYyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgY29udGV4dCA9IHRoaXMuZ3JhcGguY3VycmVudEFjdGlvbkNvbnRleHQoKTtcbiAgaWYgKCFjb250ZXh0KSByZXR1cm4gbnVsbDtcbiAgdmFyIHJlbW90ZVJlZiA9IGNvbnRleHQuZ2V0UmVtb3RlUmVmKHRoaXMuZ3JhcGguY3VycmVudFJlbW90ZSgpKTtcbiAgaWYgKCFyZW1vdGVSZWYpIHJldHVybiBudWxsO1xuICByZXR1cm4gbmV3IFB1c2hWaWV3TW9kZWwocmVtb3RlUmVmLm5vZGUoKSwgY29udGV4dC5ub2RlKCkpO1xufVxuR3JhcGhBY3Rpb25zLlB1c2gucHJvdG90eXBlLnBlcmZvcm0gPSBmdW5jdGlvbihjYWxsYmFjaykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciByZWYgPSB0aGlzLmdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KCk7XG4gIHZhciByZW1vdGVSZWYgPSByZWYuZ2V0UmVtb3RlUmVmKHRoaXMuZ3JhcGguY3VycmVudFJlbW90ZSgpKTtcblxuICBpZiAocmVtb3RlUmVmKSB7XG4gICAgcmVtb3RlUmVmLm1vdmVUbyhyZWYubm9kZSgpLnNoYTEsIGNhbGxiYWNrKTtcbiAgfSBlbHNlIHJlZi5jcmVhdGVSZW1vdGVSZWYoZnVuY3Rpb24oZXJyKSB7XG4gICAgaWYgKCFlcnIgJiYgc2VsZi5ncmFwaC5IRUFEKCkubmFtZSA9PSByZWYubmFtZSkge1xuICAgICAgc2VsZi5ncmFoLkhFQURyZWYoKS5ub2RlKHJlZi5ub2RlKCkpO1xuICAgIH1cbiAgICBjYWxsYmFjaygpO1xuICB9KTtcbn1cblxuR3JhcGhBY3Rpb25zLkNoZWNrb3V0ID0gZnVuY3Rpb24oZ3JhcGgsIG5vZGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBHcmFwaEFjdGlvbnMuQWN0aW9uQmFzZS5jYWxsKHRoaXMsIGdyYXBoKTtcbiAgdGhpcy5ub2RlID0gbm9kZTtcbiAgdGhpcy52aXNpYmxlID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgaWYgKHNlbGYucGVyZm9ybVByb2dyZXNzQmFyLnJ1bm5pbmcoKSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKHNlbGYuZ3JhcGguY3VycmVudEFjdGlvbkNvbnRleHQoKSBpbnN0YW5jZW9mIFJlZlZpZXdNb2RlbClcbiAgICAgIHJldHVybiBzZWxmLmdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KCkubm9kZSgpID09IHNlbGYubm9kZSAmJlxuICAgICAgICAhc2VsZi5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpLmN1cnJlbnQoKTtcbiAgICByZXR1cm4gdW5naXQuY29uZmlnLmFsbG93Q2hlY2tvdXROb2RlcyAmJlxuICAgICAgc2VsZi5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpID09IHNlbGYubm9kZTtcbiAgfSk7XG59XG5pbmhlcml0cyhHcmFwaEFjdGlvbnMuQ2hlY2tvdXQsIEdyYXBoQWN0aW9ucy5BY3Rpb25CYXNlKTtcbkdyYXBoQWN0aW9ucy5DaGVja291dC5wcm90b3R5cGUudGV4dCA9ICdDaGVja291dCc7XG5HcmFwaEFjdGlvbnMuQ2hlY2tvdXQucHJvdG90eXBlLnN0eWxlID0gJ2NoZWNrb3V0JztcbkdyYXBoQWN0aW9ucy5DaGVja291dC5wcm90b3R5cGUuaWNvbiA9ICdvY3RpY29uIG9jdGljb24tZGVza3RvcC1kb3dubG9hZCc7XG5HcmFwaEFjdGlvbnMuQ2hlY2tvdXQucHJvdG90eXBlLnBlcmZvcm0gPSBmdW5jdGlvbihjYWxsYmFjaykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBjb250ZXh0ID0gdGhpcy5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpO1xuICB2YXIgcmVmTmFtZSA9IGNvbnRleHQgaW5zdGFuY2VvZiBSZWZWaWV3TW9kZWwgPyBjb250ZXh0LnJlZk5hbWUgOiBjb250ZXh0LnNoYTE7XG4gIHRoaXMuc2VydmVyLnBvc3QoJy9jaGVja291dCcsIHsgcGF0aDogdGhpcy5ncmFwaC5yZXBvUGF0aCgpLCBuYW1lOiByZWZOYW1lIH0sIGZ1bmN0aW9uKGVycikge1xuICAgIGlmIChlcnIgJiYgZXJyLmVycm9yQ29kZSAhPSAnbWVyZ2UtZmFpbGVkJykge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCBpbnN0YW5jZW9mIFJlZlZpZXdNb2RlbCAmJiBjb250ZXh0LmlzUmVtb3RlQnJhbmNoKSB7XG4gICAgICBzZWxmLnNlcnZlci5wb3N0KCcvcmVzZXQnLCB7IHBhdGg6IHNlbGYuZ3JhcGgucmVwb1BhdGgoKSwgdG86IGNvbnRleHQubmFtZSwgbW9kZTogJ2hhcmQnIH0sIGZ1bmN0aW9uKGVyciwgcmVzKSB7XG4gICAgICAgIHNlbGYuZ3JhcGguSEVBRHJlZigpLm5vZGUoY29udGV4dCBpbnN0YW5jZW9mIFJlZlZpZXdNb2RlbCA/IGNvbnRleHQubm9kZSgpIDogY29udGV4dCk7XG4gICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIHJldHVybiBlcnIgJiYgZXJyLmVycm9yQ29kZSAhPSAnbWVyZ2UtZmFpbGVkJyA/IHVuZGVmaW5lZCA6IHRydWU7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZi5ncmFwaC5IRUFEcmVmKCkubm9kZShjb250ZXh0IGluc3RhbmNlb2YgUmVmVmlld01vZGVsID8gY29udGV4dC5ub2RlKCkgOiBjb250ZXh0KTtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cblxuR3JhcGhBY3Rpb25zLkRlbGV0ZSA9IGZ1bmN0aW9uKGdyYXBoLCBub2RlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgR3JhcGhBY3Rpb25zLkFjdGlvbkJhc2UuY2FsbCh0aGlzLCBncmFwaCk7XG4gIHRoaXMubm9kZSA9IG5vZGU7XG4gIHRoaXMudmlzaWJsZSA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIGlmIChzZWxmLnBlcmZvcm1Qcm9ncmVzc0Jhci5ydW5uaW5nKCkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBzZWxmLmdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KCkgaW5zdGFuY2VvZiBSZWZWaWV3TW9kZWwgJiZcbiAgICAgIHNlbGYuZ3JhcGguY3VycmVudEFjdGlvbkNvbnRleHQoKS5ub2RlKCkgPT0gc2VsZi5ub2RlICYmXG4gICAgICAhc2VsZi5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpLmN1cnJlbnQoKTtcbiAgfSk7XG59XG5pbmhlcml0cyhHcmFwaEFjdGlvbnMuRGVsZXRlLCBHcmFwaEFjdGlvbnMuQWN0aW9uQmFzZSk7XG5HcmFwaEFjdGlvbnMuRGVsZXRlLnByb3RvdHlwZS50ZXh0ID0gJ0RlbGV0ZSc7XG5HcmFwaEFjdGlvbnMuRGVsZXRlLnByb3RvdHlwZS5zdHlsZSA9ICdkZWxldGUnO1xuR3JhcGhBY3Rpb25zLkRlbGV0ZS5wcm90b3R5cGUuaWNvbiA9ICdnbHlwaGljb24gZ2x5cGhpY29uLXJlbW92ZSc7XG5HcmFwaEFjdGlvbnMuRGVsZXRlLnByb3RvdHlwZS5wZXJmb3JtID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdmFyIGNvbnRleHQgPSB0aGlzLmdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KCk7XG4gIHZhciBuYW1lID0gY29udGV4dC5pc1JlbW90ZUJyYW5jaCA/IFwicmVtb3RlIFwiICsgY29udGV4dC5sb2NhbFJlZk5hbWUgOiBjb250ZXh0LmxvY2FsUmVmTmFtZTtcbiAgdmFyIGRpYWcgPSBjb21wb25lbnRzLmNyZWF0ZSgneWVzbm9kaWFsb2cnLCB7IHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsIGRldGFpbHM6ICdEZWxldGluZyAnICsgbmFtZSArICcgYnJhbmNoIG9yIHRhZyBjYW5ub3QgYmUgdW5kb25lIHdpdGggdW5naXQuJ30pO1xuICBkaWFnLmNsb3NlZC5hZGQoZnVuY3Rpb24oKSB7XG4gICAgaWYgKGRpYWcucmVzdWx0KCkpIHtcbiAgICAgIGNvbnRleHQucmVtb3ZlKGNhbGxiYWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG4gIH0pO1xuICBwcm9ncmFtRXZlbnRzLmRpc3BhdGNoKHsgZXZlbnQ6ICdyZXF1ZXN0LXNob3ctZGlhbG9nJywgZGlhbG9nOiBkaWFnIH0pO1xufVxuXG5HcmFwaEFjdGlvbnMuQ2hlcnJ5UGljayA9IGZ1bmN0aW9uKGdyYXBoLCBub2RlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgR3JhcGhBY3Rpb25zLkFjdGlvbkJhc2UuY2FsbCh0aGlzLCBncmFwaCk7XG4gIHRoaXMubm9kZSA9IG5vZGU7XG4gIHRoaXMudmlzaWJsZSA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIGlmIChzZWxmLnBlcmZvcm1Qcm9ncmVzc0Jhci5ydW5uaW5nKCkpIHJldHVybiB0cnVlO1xuICAgIHZhciBjb250ZXh0ID0gc2VsZi5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpO1xuICAgIHJldHVybiBjb250ZXh0ID09PSBzZWxmLm5vZGUgJiYgc2VsZi5ncmFwaC5IRUFEKCkgJiYgY29udGV4dC5zaGExICE9PSBzZWxmLmdyYXBoLkhFQUQoKS5zaGExXG4gIH0pO1xufVxuaW5oZXJpdHMoR3JhcGhBY3Rpb25zLkNoZXJyeVBpY2ssIEdyYXBoQWN0aW9ucy5BY3Rpb25CYXNlKTtcbkdyYXBoQWN0aW9ucy5DaGVycnlQaWNrLnByb3RvdHlwZS50ZXh0ID0gJ0NoZXJyeSBwaWNrJztcbkdyYXBoQWN0aW9ucy5DaGVycnlQaWNrLnByb3RvdHlwZS5zdHlsZSA9ICdjaGVycnktcGljayc7XG5HcmFwaEFjdGlvbnMuQ2hlcnJ5UGljay5wcm90b3R5cGUuaWNvbiA9ICdvY3RpY29uIG9jdGljb24tY2lyY3VpdC1ib2FyZCc7XG5HcmFwaEFjdGlvbnMuQ2hlcnJ5UGljay5wcm90b3R5cGUucGVyZm9ybSA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5zZXJ2ZXIucG9zdCgnL2NoZXJyeXBpY2snLCB7IHBhdGg6IHRoaXMuZ3JhcGgucmVwb1BhdGgoKSwgbmFtZTogdGhpcy5ub2RlLnNoYTEgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgY2FsbGJhY2soKTtcbiAgICBpZiAoZXJyICYmIGVyci5lcnJvckNvZGUgPT0gJ21lcmdlLWZhaWxlZCcpIHJldHVybiB0cnVlO1xuICB9KTtcbn1cblxuR3JhcGhBY3Rpb25zLlVuY29tbWl0ID0gZnVuY3Rpb24oZ3JhcGgsIG5vZGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBHcmFwaEFjdGlvbnMuQWN0aW9uQmFzZS5jYWxsKHRoaXMsIGdyYXBoKTtcbiAgdGhpcy5ub2RlID0gbm9kZTtcbiAgdGhpcy52aXNpYmxlID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgaWYgKHNlbGYucGVyZm9ybVByb2dyZXNzQmFyLnJ1bm5pbmcoKSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIHNlbGYuZ3JhcGguY3VycmVudEFjdGlvbkNvbnRleHQoKSA9PSBzZWxmLm5vZGUgJiZcbiAgICAgIHNlbGYuZ3JhcGguSEVBRCgpID09IHNlbGYubm9kZTtcbiAgfSk7XG59XG5pbmhlcml0cyhHcmFwaEFjdGlvbnMuVW5jb21taXQsIEdyYXBoQWN0aW9ucy5BY3Rpb25CYXNlKTtcbkdyYXBoQWN0aW9ucy5VbmNvbW1pdC5wcm90b3R5cGUudGV4dCA9ICdVbmNvbW1pdCc7XG5HcmFwaEFjdGlvbnMuVW5jb21taXQucHJvdG90eXBlLnN0eWxlID0gJ3VuY29tbWl0JztcbkdyYXBoQWN0aW9ucy5VbmNvbW1pdC5wcm90b3R5cGUuaWNvbiA9ICdvY3RpY29uIG9jdGljb24temFwJztcbkdyYXBoQWN0aW9ucy5VbmNvbW1pdC5wcm90b3R5cGUucGVyZm9ybSA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5zZXJ2ZXIucG9zdFByb21pc2UoJy9yZXNldCcsIHsgcGF0aDogdGhpcy5ncmFwaC5yZXBvUGF0aCgpLCB0bzogJ0hFQUReJywgbW9kZTogJ21peGVkJyB9KVxuICAgIC50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHRhcmdldE5vZGUgPSBzZWxmLm5vZGUuYmVsb3dOb2RlO1xuICAgICAgd2hpbGUgKHRhcmdldE5vZGUgJiYgIXRhcmdldE5vZGUuYW5jZXN0b3JPZkhFQUQoKSkge1xuICAgICAgICB0YXJnZXROb2RlID0gdGFyZ2V0Tm9kZS5iZWxvd05vZGU7XG4gICAgICB9XG4gICAgICBzZWxmLmdyYXBoLkhFQURyZWYoKS5ub2RlKHRhcmdldE5vZGUgPyB0YXJnZXROb2RlIDogbnVsbCk7XG4gICAgICBzZWxmLmdyYXBoLmNoZWNrZWRPdXRSZWYoKS5ub2RlKHRhcmdldE5vZGUgPyB0YXJnZXROb2RlIDogbnVsbCk7XG4gICAgfSkuZmluYWxseShjYWxsYmFjayk7XG59XG5cbkdyYXBoQWN0aW9ucy5SZXZlcnQgPSBmdW5jdGlvbihncmFwaCwgbm9kZSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIEdyYXBoQWN0aW9ucy5BY3Rpb25CYXNlLmNhbGwodGhpcywgZ3JhcGgpO1xuICB0aGlzLm5vZGUgPSBub2RlO1xuICB0aGlzLnZpc2libGUgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICBpZiAoc2VsZi5wZXJmb3JtUHJvZ3Jlc3NCYXIucnVubmluZygpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gc2VsZi5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCgpID09IHNlbGYubm9kZTtcbiAgfSk7XG59XG5pbmhlcml0cyhHcmFwaEFjdGlvbnMuUmV2ZXJ0LCBHcmFwaEFjdGlvbnMuQWN0aW9uQmFzZSk7XG5HcmFwaEFjdGlvbnMuUmV2ZXJ0LnByb3RvdHlwZS50ZXh0ID0gJ1JldmVydCc7XG5HcmFwaEFjdGlvbnMuUmV2ZXJ0LnByb3RvdHlwZS5zdHlsZSA9ICdyZXZlcnQnO1xuR3JhcGhBY3Rpb25zLlJldmVydC5wcm90b3R5cGUuaWNvbiA9ICdvY3RpY29uIG9jdGljb24taGlzdG9yeSc7XG5HcmFwaEFjdGlvbnMuUmV2ZXJ0LnByb3RvdHlwZS5wZXJmb3JtID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnNlcnZlci5wb3N0UHJvbWlzZSgnL3JldmVydCcsIHsgcGF0aDogdGhpcy5ncmFwaC5yZXBvUGF0aCgpLCBjb21taXQ6IHRoaXMubm9kZS5zaGExIH0pXG4gICAgLmZpbmFsbHkoY2FsbGJhY2spO1xufVxuIiwidmFyIGtvID0gcmVxdWlyZSgna25vY2tvdXQnKTtcbnZhciBjb21wb25lbnRzID0gcmVxdWlyZSgndW5naXQtY29tcG9uZW50cycpO1xudmFyIFNlbGVjdGFibGUgPSByZXF1aXJlKCcuL3NlbGVjdGFibGUnKTtcbnZhciBBbmltYXRlYWJsZSA9IHJlcXVpcmUoJy4vYW5pbWF0ZWFibGUnKTtcbnZhciBwcm9ncmFtRXZlbnRzID0gcmVxdWlyZSgndW5naXQtcHJvZ3JhbS1ldmVudHMnKTtcbnZhciBHcmFwaEFjdGlvbnMgPSByZXF1aXJlKCcuL2dpdC1ncmFwaC1hY3Rpb25zJyk7XG5cbnZhciBHaXROb2RlVmlld01vZGVsID0gZnVuY3Rpb24oZ3JhcGgsIHNoYTEpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBTZWxlY3RhYmxlLmNhbGwodGhpcywgZ3JhcGgpO1xuICBBbmltYXRlYWJsZS5jYWxsKHRoaXMpO1xuICB0aGlzLmdyYXBoID0gZ3JhcGg7XG4gIHRoaXMuc2hhMSA9IHNoYTE7XG4gIHRoaXMuaXNJbml0ZWQgPSBmYWxzZTtcbiAgdGhpcy50aXRsZSA9IHVuZGVmaW5lZDtcbiAgdGhpcy5wYXJlbnRzID0ga28ub2JzZXJ2YWJsZUFycmF5KCk7XG4gIHRoaXMuY29tbWl0VGltZSA9IHVuZGVmaW5lZDsgLy8gY29tbWl0IHRpbWUgaW4gc3RyaW5nXG4gIHRoaXMuZGF0ZSA9IHVuZGVmaW5lZDsgICAgICAgLy8gY29tbWl0IHRpbWUgaW4gbnVtZXJpYyBmb3JtYXQgZm9yIHNvcnRcbiAgdGhpcy5jb2xvciA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5pZGVvbG9naWNhbEJyYW5jaCA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5yZW1vdGVUYWdzID0ga28ub2JzZXJ2YWJsZUFycmF5KCk7XG4gIHRoaXMuYnJhbmNoZXNBbmRMb2NhbFRhZ3MgPSBrby5vYnNlcnZhYmxlQXJyYXkoKTtcblxuICB0aGlzLnJlZnMgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICB2YXIgcnMgPSBzZWxmLmJyYW5jaGVzQW5kTG9jYWxUYWdzKCkuY29uY2F0KHNlbGYucmVtb3RlVGFncygpKTtcbiAgICBycy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHtcbiAgICAgIGlmIChhLmlzTG9jYWwgJiYgIWIuaXNMb2NhbCkgcmV0dXJuIC0xO1xuICAgICAgaWYgKCFhLmlzTG9jYWwgJiYgYi5pc0xvY2FsKSByZXR1cm4gMTtcbiAgICAgIHJldHVybiBhLnJlZk5hbWUgPCBiLnJlZk5hbWUgPyAtMSA6IDE7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJzO1xuICB9KTtcbiAgdGhpcy5hbmNlc3Rvck9mSEVBRCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICB0aGlzLm5vZGVJc01vdXNlaG92ZXIgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgdGhpcy5jb21taXRDb250YWluZXJWaXNpYmxlID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHNlbGYuYW5jZXN0b3JPZkhFQUQoKSB8fCBzZWxmLm5vZGVJc01vdXNlaG92ZXIoKSB8fCBzZWxmLnNlbGVjdGVkKCk7XG4gIH0pO1xuICB0aGlzLmhpZ2hsaWdodGVkID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHNlbGYubm9kZUlzTW91c2Vob3ZlcigpIHx8IHNlbGYuc2VsZWN0ZWQoKTtcbiAgfSk7XG4gIHRoaXMuc2VsZWN0ZWQuc3Vic2NyaWJlKGZ1bmN0aW9uKCkge1xuICAgIHByb2dyYW1FdmVudHMuZGlzcGF0Y2goeyBldmVudDogJ2dyYXBoLXJlbmRlcicgfSk7XG4gIH0pO1xuICB0aGlzLmNvbW1pdENvbXBvbmVudCA9IGNvbXBvbmVudHMuY3JlYXRlKCdjb21taXQnLCB7XG4gICAgc2hhMTogdGhpcy5zaGExLFxuICAgIHJlcG9QYXRoOiB0aGlzLmdyYXBoLnJlcG9QYXRoLFxuICAgIHNlcnZlcjogdGhpcy5ncmFwaC5zZXJ2ZXIsXG4gICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgaGlnaGxpZ2h0ZWQ6IHRoaXMuaGlnaGxpZ2h0ZWQsXG4gICAgbm9kZUlzTW91c2Vob3ZlcjogdGhpcy5ub2RlSXNNb3VzZWhvdmVyXG4gIH0pO1xuICAvLyBUaGVzZSBhcmUgc3BsaXQgdXAgbGlrZSB0aGlzIGJlY2F1c2UgYnJhbmNoZXMgYW5kIGxvY2FsIHRhZ3MgY2FuIGJlIGZvdW5kIGluIHRoZSBnaXQgbG9nLFxuICAvLyB3aGVyZWFzIHJlbW90ZSB0YWdzIG5lZWRzIHRvIGJlIGZldGNoZWQgd2l0aCBhbm90aGVyIGNvbW1hbmQgKHdoaWNoIGlzIG11Y2ggc2xvd2VyKVxuICB0aGlzLmJyYW5jaGVzID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHNlbGYucmVmcygpLmZpbHRlcihmdW5jdGlvbihyKSB7IHJldHVybiByLmlzQnJhbmNoOyB9KTtcbiAgfSk7XG4gIHRoaXMudGFncyA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBzZWxmLnJlZnMoKS5maWx0ZXIoZnVuY3Rpb24ocikgeyByZXR1cm4gci5pc1RhZzsgfSk7XG4gIH0pO1xuICB0aGlzLnNob3dOZXdSZWZBY3Rpb24gPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gIWdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KCk7XG4gIH0pO1xuICB0aGlzLm5ld0JyYW5jaE5hbWUgPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMubmV3QnJhbmNoTmFtZUhhc0ZvY3VzID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcbiAgdGhpcy5uZXdCcmFuY2hOYW1lSGFzRm9jdXMuc3Vic2NyaWJlKGZ1bmN0aW9uKG5ld1ZhbHVlKSB7XG4gICAgaWYgKCFuZXdWYWx1ZSkge1xuICAgICAgLy8gU21hbGwgdGltZW91dCBiZWNhdXNlIGluIGZmIHRoZSBmb3JtIGlzIGhpZGRlbiBiZWZvcmUgdGhlIHN1Ym1pdCBjbGljayBldmVudCBpcyByZWdpc3RlcmVkIG90aGVyd2lzZVxuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5icmFuY2hpbmdGb3JtVmlzaWJsZShmYWxzZSk7XG4gICAgICB9LCAyMDApO1xuICAgIH1cbiAgfSk7XG4gIHRoaXMuYnJhbmNoaW5nRm9ybVZpc2libGUgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgdGhpcy5jYW5DcmVhdGVSZWYgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gc2VsZi5uZXdCcmFuY2hOYW1lKCkgJiYgc2VsZi5uZXdCcmFuY2hOYW1lKCkudHJpbSgpICYmIHNlbGYubmV3QnJhbmNoTmFtZSgpLmluZGV4T2YoJyAnKSA9PSAtMTtcbiAgfSk7XG4gIHRoaXMuYnJhbmNoT3JkZXIgPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMuYWJvdmVOb2RlID0gdW5kZWZpbmVkO1xuICB0aGlzLmJlbG93Tm9kZSA9IHVuZGVmaW5lZDtcblxuICB0aGlzLnIgPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMuY3ggPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMuY3kgPSBrby5vYnNlcnZhYmxlKCk7XG5cbiAgdGhpcy5kcm9wYXJlYUdyYXBoQWN0aW9ucyA9IFtcbiAgICBuZXcgR3JhcGhBY3Rpb25zLk1vdmUodGhpcy5ncmFwaCwgdGhpcyksXG4gICAgbmV3IEdyYXBoQWN0aW9ucy5SZWJhc2UodGhpcy5ncmFwaCwgdGhpcyksXG4gICAgbmV3IEdyYXBoQWN0aW9ucy5NZXJnZSh0aGlzLmdyYXBoLCB0aGlzKSxcbiAgICBuZXcgR3JhcGhBY3Rpb25zLlB1c2godGhpcy5ncmFwaCwgdGhpcyksXG4gICAgbmV3IEdyYXBoQWN0aW9ucy5SZXNldCh0aGlzLmdyYXBoLCB0aGlzKSxcbiAgICBuZXcgR3JhcGhBY3Rpb25zLkNoZWNrb3V0KHRoaXMuZ3JhcGgsIHRoaXMpLFxuICAgIG5ldyBHcmFwaEFjdGlvbnMuRGVsZXRlKHRoaXMuZ3JhcGgsIHRoaXMpLFxuICAgIG5ldyBHcmFwaEFjdGlvbnMuQ2hlcnJ5UGljayh0aGlzLmdyYXBoLCB0aGlzKSxcbiAgICBuZXcgR3JhcGhBY3Rpb25zLlVuY29tbWl0KHRoaXMuZ3JhcGgsIHRoaXMpLFxuICAgIG5ldyBHcmFwaEFjdGlvbnMuUmV2ZXJ0KHRoaXMuZ3JhcGgsIHRoaXMpXG4gIF07XG59XG5tb2R1bGUuZXhwb3J0cyA9IEdpdE5vZGVWaWV3TW9kZWw7XG5cbkdpdE5vZGVWaWV3TW9kZWwucHJvdG90eXBlLmdldEdyYXBoQXR0ciA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gW3RoaXMuY3goKSwgdGhpcy5jeSgpXTtcbn1cbkdpdE5vZGVWaWV3TW9kZWwucHJvdG90eXBlLnNldEdyYXBoQXR0ciA9IGZ1bmN0aW9uKHZhbCkge1xuICB0aGlzLmVsZW1lbnQoKS5zZXRBdHRyaWJ1dGUoJ3gnLCB2YWxbMF0gLSAzMCk7XG4gIHRoaXMuZWxlbWVudCgpLnNldEF0dHJpYnV0ZSgneScsIHZhbFsxXSAtIDMwKTtcbn1cbkdpdE5vZGVWaWV3TW9kZWwucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICBpZiAoIXRoaXMuaXNJbml0ZWQpIHJldHVybjtcbiAgaWYgKHRoaXMuYW5jZXN0b3JPZkhFQUQoKSkge1xuICAgIHRoaXMucigzMCk7XG4gICAgdGhpcy5jeCg2MTApO1xuXG4gICAgaWYgKCF0aGlzLmFib3ZlTm9kZSkge1xuICAgICAgdGhpcy5jeSgxMjApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hYm92ZU5vZGUuYW5jZXN0b3JPZkhFQUQoKSkge1xuICAgICAgdGhpcy5jeSh0aGlzLmFib3ZlTm9kZS5jeSgpICsgMTIwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jeSh0aGlzLmFib3ZlTm9kZS5jeSgpICsgNjApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aGlzLnIoMTUpO1xuICAgIHRoaXMuY3goNjEwICsgKDkwICogdGhpcy5icmFuY2hPcmRlcigpKSk7XG4gICAgdGhpcy5jeSh0aGlzLmFib3ZlTm9kZSA/IHRoaXMuYWJvdmVOb2RlLmN5KCkgKyA2MCA6IDEyMCk7XG4gIH1cblxuICBpZiAodGhpcy5hYm92ZU5vZGUgJiYgdGhpcy5hYm92ZU5vZGUuc2VsZWN0ZWQoKSkge1xuICAgIHRoaXMuY3kodGhpcy5hYm92ZU5vZGUuY3koKSArIHRoaXMuYWJvdmVOb2RlLmNvbW1pdENvbXBvbmVudC5lbGVtZW50KCkub2Zmc2V0SGVpZ2h0ICsgMzApO1xuICB9XG5cbiAgdGhpcy5jb21taXRDb21wb25lbnQuc2VsZWN0ZWREaWZmTGVmdFBvc2l0aW9uKC0odGhpcy5jeCgpIC0gNjAwKSk7XG4gIHRoaXMuY29sb3IodGhpcy5pZGVvbG9naWNhbEJyYW5jaCgpID8gdGhpcy5pZGVvbG9naWNhbEJyYW5jaCgpLmNvbG9yIDogJyM2NjYnKTtcbiAgdGhpcy5hbmltYXRlKCk7XG59XG5HaXROb2RlVmlld01vZGVsLnByb3RvdHlwZS5zZXREYXRhID0gZnVuY3Rpb24obG9nRW50cnkpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnRpdGxlID0gbG9nRW50cnkubWVzc2FnZS5zcGxpdCgnXFxuJylbMF07XG4gIHRoaXMucGFyZW50cyhsb2dFbnRyeS5wYXJlbnRzIHx8IFtdKTtcbiAgdGhpcy5jb21taXRUaW1lID0gbG9nRW50cnkuY29tbWl0RGF0ZTtcbiAgdGhpcy5kYXRlID0gRGF0ZS5wYXJzZSh0aGlzLmNvbW1pdFRpbWUpO1xuICB0aGlzLmNvbW1pdENvbXBvbmVudC5zZXREYXRhKGxvZ0VudHJ5KTtcblxuICBpZiAobG9nRW50cnkucmVmcykge1xuICAgIGxvZ0VudHJ5LnJlZnMuZm9yRWFjaChmdW5jdGlvbihyZWYpIHtcbiAgICAgIHNlbGYuZ3JhcGguZ2V0UmVmKHJlZikubm9kZShzZWxmKTtcbiAgICB9KTtcbiAgfVxuICB0aGlzLmlzSW5pdGVkID0gdHJ1ZTtcbn1cbkdpdE5vZGVWaWV3TW9kZWwucHJvdG90eXBlLnNob3dCcmFuY2hpbmdGb3JtID0gZnVuY3Rpb24oKSB7XG4gIHRoaXMuYnJhbmNoaW5nRm9ybVZpc2libGUodHJ1ZSk7XG4gIHRoaXMubmV3QnJhbmNoTmFtZUhhc0ZvY3VzKHRydWUpO1xufVxuR2l0Tm9kZVZpZXdNb2RlbC5wcm90b3R5cGUuY3JlYXRlQnJhbmNoID0gZnVuY3Rpb24oKSB7XG4gIGlmICghdGhpcy5jYW5DcmVhdGVSZWYoKSkgcmV0dXJuO1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBjb21tYW5kID0gdW5naXQuY29uZmlnLmF1dG9DaGVja291dE9uQnJhbmNoQ3JlYXRlID8gXCIvY2hlY2tvdXRcIiA6IFwiL2JyYW5jaGVzXCI7XG5cbiAgdGhpcy5ncmFwaC5zZXJ2ZXIucG9zdFByb21pc2UoY29tbWFuZCwgeyBwYXRoOiB0aGlzLmdyYXBoLnJlcG9QYXRoKCksIG5hbWU6IHRoaXMubmV3QnJhbmNoTmFtZSgpLCBzaGExOiB0aGlzLnNoYTEgfSlcbiAgICAudGhlbihmdW5jdGlvbigpIHtcbiAgICAgIHNlbGYuZ3JhcGguZ2V0UmVmKCdyZWZzL2hlYWRzLycgKyBzZWxmLm5ld0JyYW5jaE5hbWUoKSkubm9kZShzZWxmKTtcbiAgICB9KS5maW5hbGx5KGZ1bmN0aW9uKCkge1xuICAgICAgc2VsZi5icmFuY2hpbmdGb3JtVmlzaWJsZShmYWxzZSk7XG4gICAgICBzZWxmLm5ld0JyYW5jaE5hbWUoJycpO1xuICAgICAgcHJvZ3JhbUV2ZW50cy5kaXNwYXRjaCh7IGV2ZW50OiAnYnJhbmNoLXVwZGF0ZWQnIH0pO1xuICAgIH0pO1xufVxuR2l0Tm9kZVZpZXdNb2RlbC5wcm90b3R5cGUuY3JlYXRlVGFnID0gZnVuY3Rpb24oKSB7XG4gIGlmICghdGhpcy5jYW5DcmVhdGVSZWYoKSkgcmV0dXJuO1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuZ3JhcGguc2VydmVyLnBvc3RQcm9taXNlKCcvdGFncycsIHsgcGF0aDogdGhpcy5ncmFwaC5yZXBvUGF0aCgpLCBuYW1lOiB0aGlzLm5ld0JyYW5jaE5hbWUoKSwgc2hhMTogdGhpcy5zaGExIH0pXG4gICAgLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgbmV3UmVmID0gc2VsZi5ncmFwaC5nZXRSZWYoJ3RhZzogcmVmcy90YWdzLycgKyBzZWxmLm5ld0JyYW5jaE5hbWUoKSk7XG4gICAgICBuZXdSZWYubm9kZShzZWxmKTtcbiAgICB9KS5maW5hbGx5KGZ1bmN0aW9uKCkge1xuICAgICAgc2VsZi5icmFuY2hpbmdGb3JtVmlzaWJsZShmYWxzZSk7XG4gICAgICBzZWxmLm5ld0JyYW5jaE5hbWUoJycpO1xuICAgIH0pO1xufVxuR2l0Tm9kZVZpZXdNb2RlbC5wcm90b3R5cGUudG9nZ2xlU2VsZWN0ZWQgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgYmVmb3JlVGhpc0NSID0gdGhpcy5jb21taXRDb21wb25lbnQuZWxlbWVudCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB2YXIgYmVmb3JlQmVsb3dDUiA9IG51bGw7XG4gIGlmICh0aGlzLmJlbG93Tm9kZSkge1xuICAgIGJlZm9yZUJlbG93Q1IgPSB0aGlzLmJlbG93Tm9kZS5jb21taXRDb21wb25lbnQuZWxlbWVudCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgdmFyIHByZXZTZWxlY3RlZCAgPSB0aGlzLmdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KCk7XG4gIGlmICghKHByZXZTZWxlY3RlZCBpbnN0YW5jZW9mIEdpdE5vZGVWaWV3TW9kZWwpKSBwcmV2U2VsZWN0ZWQgPSBudWxsO1xuICB2YXIgcHJldlNlbGVjdGVkQ1IgPSBwcmV2U2VsZWN0ZWQgPyBwcmV2U2VsZWN0ZWQuY29tbWl0Q29tcG9uZW50LmVsZW1lbnQoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6IG51bGw7XG4gIHRoaXMuc2VsZWN0ZWQoIXRoaXMuc2VsZWN0ZWQoKSk7XG5cbiAgLy8gSWYgd2UgYXJlIGRlc2VsZWN0aW5nXG4gIGlmICghdGhpcy5zZWxlY3RlZCgpKSB7XG4gICAgaWYgKGJlZm9yZVRoaXNDUi50b3AgPCAwICYmIGJlZm9yZUJlbG93Q1IpIHtcbiAgICAgIHZhciBhZnRlckJlbG93Q1IgPSB0aGlzLmJlbG93Tm9kZS5jb21taXRDb21wb25lbnQuZWxlbWVudCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgLy8gSWYgdGhlIG5leHQgbm9kZSBpcyBzaG93aW5nLCB0cnkgdG8ga2VlcCBpdCBpbiB0aGUgc2NyZWVuIChubyBqdW1waW5nKVxuICAgICAgaWYgKGJlZm9yZUJlbG93Q1IudG9wIDwgd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxCeSgwLCBhZnRlckJlbG93Q1IudG9wIC0gYmVmb3JlQmVsb3dDUi50b3ApO1xuICAgICAgLy8gT3RoZXJ3aXNlIGp1c3QgdHJ5IHRvIGJyaW5nIHRoZW0gdG8gdGhlIG1pZGRsZSBvZiB0aGUgc2NyZWVuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsQnkoMCwgYWZ0ZXJCZWxvd0NSLnRvcCAtIHdpbmRvdy5pbm5lckhlaWdodCAvIDIpO1xuICAgICAgfVxuICAgIH1cbiAgLy8gSWYgd2UgYXJlIHNlbGVjdGluZ1xuICB9IGVsc2Uge1xuICAgIHZhciBhZnRlclRoaXNDUiA9IHRoaXMuY29tbWl0Q29tcG9uZW50LmVsZW1lbnQoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAoKHByZXZTZWxlY3RlZENSICYmIChwcmV2U2VsZWN0ZWRDUi50b3AgPCAwIHx8IHByZXZTZWxlY3RlZENSLnRvcCA+IHdpbmRvdy5pbm5lckhlaWdodCkpICYmXG4gICAgICBhZnRlclRoaXNDUi50b3AgIT0gYmVmb3JlVGhpc0NSLnRvcCkge1xuICAgICAgd2luZG93LnNjcm9sbEJ5KDAsIC0oYmVmb3JlVGhpc0NSLnRvcCAtIGFmdGVyVGhpc0NSLnRvcCkpO1xuICAgICAgY29uc29sZS5sb2coJ0ZpeCcpXG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbkdpdE5vZGVWaWV3TW9kZWwucHJvdG90eXBlLnJlbW92ZVJlZiA9IGZ1bmN0aW9uKHJlZikge1xuICBpZiAocmVmLmlzUmVtb3RlVGFnKSB7XG4gICAgdGhpcy5yZW1vdGVUYWdzLnJlbW92ZShyZWYpO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuYnJhbmNoZXNBbmRMb2NhbFRhZ3MucmVtb3ZlKHJlZik7XG4gIH1cbn1cbkdpdE5vZGVWaWV3TW9kZWwucHJvdG90eXBlLnB1c2hSZWYgPSBmdW5jdGlvbihyZWYpIHtcbiAgaWYgKHJlZi5pc1JlbW90ZVRhZyAmJiB0aGlzLnJlbW90ZVRhZ3MuaW5kZXhPZihyZWYpIDwgMCkge1xuICAgIHRoaXMucmVtb3RlVGFncy5wdXNoKHJlZik7XG4gIH0gZWxzZSBpZih0aGlzLmJyYW5jaGVzQW5kTG9jYWxUYWdzLmluZGV4T2YocmVmKSA8IDApIHtcbiAgICB0aGlzLmJyYW5jaGVzQW5kTG9jYWxUYWdzLnB1c2gocmVmKTtcbiAgfVxufVxuR2l0Tm9kZVZpZXdNb2RlbC5wcm90b3R5cGUuZ2V0UGF0aFRvQ29tbW9uQW5jZXN0b3IgPSBmdW5jdGlvbihub2RlKSB7XG4gIHZhciBwYXRoID0gW107XG4gIHZhciB0aGlzTm9kZSA9IHRoaXM7XG4gIHdoaWxlICh0aGlzTm9kZSAmJiAhbm9kZS5pc0FuY2VzdG9yKHRoaXNOb2RlKSkge1xuICAgIHBhdGgucHVzaCh0aGlzTm9kZSk7XG4gICAgdGhpc05vZGUgPSB0aGlzLmdyYXBoLm5vZGVzQnlJZFt0aGlzTm9kZS5wYXJlbnRzKClbMF1dO1xuICB9XG4gIGlmICh0aGlzTm9kZSkgcGF0aC5wdXNoKHRoaXNOb2RlKTtcbiAgcmV0dXJuIHBhdGg7XG59XG5HaXROb2RlVmlld01vZGVsLnByb3RvdHlwZS5pc0FuY2VzdG9yID0gZnVuY3Rpb24obm9kZSkge1xuICBpZiAobm9kZSA9PSB0aGlzKSByZXR1cm4gdHJ1ZTtcbiAgZm9yICh2YXIgdiBpbiB0aGlzLnBhcmVudHMoKSkge1xuICAgIHZhciBuID0gdGhpcy5ncmFwaC5ub2Rlc0J5SWRbdGhpcy5wYXJlbnRzKClbdl1dO1xuICAgIGlmIChuICYmIG4uaXNBbmNlc3Rvcihub2RlKSkgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuR2l0Tm9kZVZpZXdNb2RlbC5wcm90b3R5cGUuZ2V0UmlnaHRUb0xlZnRTdHJpa2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuICdNICcgKyAodGhpcy5jeCgpIC0gMzApICsgJyAnICsgKHRoaXMuY3koKSAtIDMwKSArICcgTCAnICsgKHRoaXMuY3goKSArIDMwKSArICcgJyArICh0aGlzLmN5KCkgKyAzMCk7XG59XG5HaXROb2RlVmlld01vZGVsLnByb3RvdHlwZS5nZXRMZWZ0VG9SaWdodFN0cmlrZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gJ00gJyArICh0aGlzLmN4KCkgKyAzMCkgKyAnICcgKyAodGhpcy5jeSgpIC0gMzApICsgJyBMICcgKyAodGhpcy5jeCgpIC0gMzApICsgJyAnICsgKHRoaXMuY3koKSArIDMwKTtcbn1cbkdpdE5vZGVWaWV3TW9kZWwucHJvdG90eXBlLm5vZGVNb3VzZW92ZXIgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5ub2RlSXNNb3VzZWhvdmVyKHRydWUpO1xufVxuR2l0Tm9kZVZpZXdNb2RlbC5wcm90b3R5cGUubm9kZU1vdXNlb3V0ID0gZnVuY3Rpb24oKSB7XG4gIHRoaXMubm9kZUlzTW91c2Vob3ZlcihmYWxzZSk7XG59XG4iLCJ2YXIga28gPSByZXF1aXJlKCdrbm9ja291dCcpO1xudmFyIG1kNSA9IHJlcXVpcmUoJ2JsdWVpbXAtbWQ1Jyk7XG52YXIgU2VsZWN0YWJsZSA9IHJlcXVpcmUoJy4vc2VsZWN0YWJsZScpO1xudmFyIHByb2dyYW1FdmVudHMgPSByZXF1aXJlKCd1bmdpdC1wcm9ncmFtLWV2ZW50cycpO1xudmFyIGNvbXBvbmVudHMgPSByZXF1aXJlKCd1bmdpdC1jb21wb25lbnRzJyk7XG5cbnZhciBSZWZWaWV3TW9kZWwgPSBmdW5jdGlvbihmdWxsUmVmTmFtZSwgZ3JhcGgpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBTZWxlY3RhYmxlLmNhbGwodGhpcywgZ3JhcGgpO1xuICB0aGlzLmdyYXBoID0gZ3JhcGg7XG4gIHRoaXMubmFtZSA9IGZ1bGxSZWZOYW1lO1xuICB0aGlzLm5vZGUgPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMubG9jYWxSZWZOYW1lID0gdGhpcy5uYW1lOyAvLyBvcmlnaW4vbWFzdGVyIG9yIG1hc3RlclxuICB0aGlzLnJlZk5hbWUgPSB0aGlzLm5hbWU7IC8vIG1hc3RlclxuICB0aGlzLmlzUmVtb3RlVGFnID0gdGhpcy5uYW1lLmluZGV4T2YoJ3JlbW90ZS10YWc6ICcpID09IDA7XG4gIHRoaXMuaXNMb2NhbFRhZyA9IHRoaXMubmFtZS5pbmRleE9mKCd0YWc6ICcpID09IDA7XG4gIHRoaXMuaXNUYWcgPSB0aGlzLmlzTG9jYWxUYWcgfHwgdGhpcy5pc1JlbW90ZVRhZztcbiAgdmFyIGlzUmVtb3RlQnJhbmNoT3JIRUFEID0gdGhpcy5uYW1lLmluZGV4T2YoJ3JlZnMvcmVtb3Rlcy8nKSA9PSAwO1xuICB0aGlzLmlzTG9jYWxIRUFEID0gdGhpcy5uYW1lID09ICdIRUFEJztcbiAgdGhpcy5pc1JlbW90ZUhFQUQgPSB0aGlzLm5hbWUuaW5kZXhPZignL0hFQUQnKSAhPSAtMTtcbiAgdGhpcy5pc0xvY2FsQnJhbmNoID0gdGhpcy5uYW1lLmluZGV4T2YoJ3JlZnMvaGVhZHMvJykgPT0gMDtcbiAgdGhpcy5pc1JlbW90ZUJyYW5jaCA9IGlzUmVtb3RlQnJhbmNoT3JIRUFEICYmICF0aGlzLmlzUmVtb3RlSEVBRDtcbiAgdGhpcy5pc1N0YXNoID0gdGhpcy5uYW1lLmluZGV4T2YoJ3JlZnMvc3Rhc2gnKSA9PSAwO1xuICB0aGlzLmlzSEVBRCA9IHRoaXMuaXNMb2NhbEhFQUQgfHwgdGhpcy5pc1JlbW90ZUhFQUQ7XG4gIHRoaXMuaXNCcmFuY2ggPSB0aGlzLmlzTG9jYWxCcmFuY2ggfHwgdGhpcy5pc1JlbW90ZUJyYW5jaDtcbiAgdGhpcy5pc1JlbW90ZSA9IGlzUmVtb3RlQnJhbmNoT3JIRUFEIHx8IHRoaXMuaXNSZW1vdGVUYWc7XG4gIHRoaXMuaXNMb2NhbCA9IHRoaXMuaXNMb2NhbEJyYW5jaCB8fCB0aGlzLmlzTG9jYWxUYWc7XG4gIGlmICh0aGlzLmlzTG9jYWxCcmFuY2gpIHtcbiAgICB0aGlzLmxvY2FsUmVmTmFtZSA9IHRoaXMubmFtZS5zbGljZSgncmVmcy9oZWFkcy8nLmxlbmd0aCk7XG4gICAgdGhpcy5yZWZOYW1lID0gdGhpcy5sb2NhbFJlZk5hbWU7XG4gIH1cbiAgaWYgKHRoaXMuaXNSZW1vdGVCcmFuY2gpIHtcbiAgICB0aGlzLmxvY2FsUmVmTmFtZSA9IHRoaXMubmFtZS5zbGljZSgncmVmcy9yZW1vdGVzLycubGVuZ3RoKTtcbiAgfVxuICBpZiAodGhpcy5pc0xvY2FsVGFnKSB7XG4gICAgdGhpcy5sb2NhbFJlZk5hbWUgPSB0aGlzLm5hbWUuc2xpY2UoJ3RhZzogcmVmcy90YWdzLycubGVuZ3RoKTtcbiAgICB0aGlzLnJlZk5hbWUgPSB0aGlzLmxvY2FsUmVmTmFtZTtcbiAgfVxuICBpZiAodGhpcy5pc1JlbW90ZVRhZykge1xuICAgIHRoaXMubG9jYWxSZWZOYW1lID0gdGhpcy5uYW1lLnNsaWNlKCdyZW1vdGUtdGFnOiAnLmxlbmd0aCk7XG4gIH1cbiAgaWYgKHRoaXMuaXNSZW1vdGUpIHtcbiAgICAvLyBnZXQgcmlkIG9mIHRoZSBvcmlnaW4vIHBhcnQgb2Ygb3JpZ2luL2JyYW5jaG5hbWVcbiAgICB2YXIgcyA9IHRoaXMubG9jYWxSZWZOYW1lLnNwbGl0KCcvJyk7XG4gICAgdGhpcy5yZW1vdGUgPSBzWzBdO1xuICAgIHRoaXMucmVmTmFtZSA9IHMuc2xpY2UoMSkuam9pbignLycpO1xuICB9XG4gIHRoaXMuc2hvdyA9IHRydWU7XG4gIHRoaXMuc2VydmVyID0gdGhpcy5ncmFwaC5zZXJ2ZXI7XG4gIHRoaXMuaXNEcmFnZ2luZyA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICB0aGlzLmN1cnJlbnQgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gc2VsZi5pc0xvY2FsQnJhbmNoICYmIHNlbGYuZ3JhcGguY2hlY2tlZE91dEJyYW5jaCgpID09IHNlbGYucmVmTmFtZTtcbiAgfSk7XG4gIHRoaXMuY29sb3IgPSB0aGlzLl9jb2xvckZyb21IYXNoT2ZTdHJpbmcodGhpcy5uYW1lKTtcblxuICB0aGlzLm5vZGUuc3Vic2NyaWJlKGZ1bmN0aW9uKG9sZE5vZGUpIHtcbiAgICBpZiAob2xkTm9kZSkgb2xkTm9kZS5yZW1vdmVSZWYoc2VsZik7XG4gIH0sIG51bGwsIFwiYmVmb3JlQ2hhbmdlXCIpO1xuICB0aGlzLm5vZGUuc3Vic2NyaWJlKGZ1bmN0aW9uKG5ld05vZGUpIHtcbiAgICBpZiAobmV3Tm9kZSkgbmV3Tm9kZS5wdXNoUmVmKHNlbGYpO1xuICB9KTtcbn07XG5tb2R1bGUuZXhwb3J0cyA9IFJlZlZpZXdNb2RlbDtcblxuUmVmVmlld01vZGVsLnByb3RvdHlwZS5fY29sb3JGcm9tSGFzaE9mU3RyaW5nID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gIHJldHVybiAnIycgKyBtZDUoc3RyaW5nKS50b1N0cmluZygpLnNsaWNlKDAsIDYpO1xufVxuUmVmVmlld01vZGVsLnByb3RvdHlwZS5kcmFnU3RhcnQgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCh0aGlzKTtcbiAgdGhpcy5pc0RyYWdnaW5nKHRydWUpO1xuICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7XG59XG5SZWZWaWV3TW9kZWwucHJvdG90eXBlLmRyYWdFbmQgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5ncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dChudWxsKTtcbiAgdGhpcy5pc0RyYWdnaW5nKGZhbHNlKTtcbn1cblJlZlZpZXdNb2RlbC5wcm90b3R5cGUubW92ZVRvID0gZnVuY3Rpb24odGFyZ2V0LCBjYWxsYmFjaykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgdmFyIGNhbGxiYWNrV2l0aFJlZlNldCA9IGZ1bmN0aW9uKGVyciwgcmVzKSB7XG4gICAgaWYgKGVycikge1xuICAgICAgY2FsbGJhY2soZXJyLCByZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdGFyZ2V0Tm9kZSA9IHNlbGYuZ3JhcGguZ2V0Tm9kZSh0YXJnZXQpO1xuICAgICAgaWYgKHNlbGYuZ3JhcGguY2hlY2tlZE91dEJyYW5jaCgpID09IHNlbGYucmVmTmFtZSkge1xuICAgICAgICBzZWxmLmdyYXBoLkhFQURyZWYoKS5ub2RlKHRhcmdldE5vZGUpO1xuICAgICAgfVxuICAgICAgc2VsZi5ub2RlKHRhcmdldE5vZGUpO1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG4gIH1cblxuICBpZiAodGhpcy5pc0xvY2FsKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudCgpKSB7XG4gICAgICB0aGlzLnNlcnZlci5wb3N0KCcvcmVzZXQnLCB7IHBhdGg6IHRoaXMuZ3JhcGgucmVwb1BhdGgoKSwgdG86IHRhcmdldCwgbW9kZTogJ2hhcmQnIH0sIGNhbGxiYWNrV2l0aFJlZlNldCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzVGFnKSB7XG4gICAgICB0aGlzLnNlcnZlci5wb3N0KCcvdGFncycsIHsgcGF0aDogdGhpcy5ncmFwaC5yZXBvUGF0aCgpLCBuYW1lOiB0aGlzLnJlZk5hbWUsIHNoYTE6IHRhcmdldCwgZm9yY2U6IHRydWUgfSwgY2FsbGJhY2tXaXRoUmVmU2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXJ2ZXIucG9zdCgnL2JyYW5jaGVzJywgeyBwYXRoOiB0aGlzLmdyYXBoLnJlcG9QYXRoKCksIG5hbWU6IHRoaXMucmVmTmFtZSwgc2hhMTogdGFyZ2V0LCBmb3JjZTogdHJ1ZSB9LCBjYWxsYmFja1dpdGhSZWZTZXQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgcHVzaFJlcSA9IHsgcGF0aDogdGhpcy5ncmFwaC5yZXBvUGF0aCgpLCByZW1vdGU6IHRoaXMucmVtb3RlLCByZWZTcGVjOiB0YXJnZXQsIHJlbW90ZUJyYW5jaDogdGhpcy5yZWZOYW1lIH07XG4gICAgdGhpcy5zZXJ2ZXIucG9zdCgnL3B1c2gnLCBwdXNoUmVxLCBmdW5jdGlvbihlcnIsIHJlcykge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgaWYgKGVyci5lcnJvckNvZGUgPT0gJ25vbi1mYXN0LWZvcndhcmQnKSB7XG4gICAgICAgICAgICB2YXIgZm9yY2VQdXNoRGlhbG9nID0gY29tcG9uZW50cy5jcmVhdGUoJ3llc25vZGlhbG9nJywgeyB0aXRsZTogJ0ZvcmNlIHB1c2g/JywgZGV0YWlsczogJ1RoZSByZW1vdGUgYnJhbmNoIGNhblxcJ3QgYmUgZmFzdC1mb3J3YXJkZWQuJyB9KTtcbiAgICAgICAgICAgIGZvcmNlUHVzaERpYWxvZy5jbG9zZWQuYWRkKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICBpZiAoIWZvcmNlUHVzaERpYWxvZy5yZXN1bHQoKSkgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgIHB1c2hSZXEuZm9yY2UgPSB0cnVlO1xuICAgICAgICAgICAgICBzZWxmLnNlcnZlci5wb3N0KCcvcHVzaCcsIHB1c2hSZXEsIGNhbGxiYWNrV2l0aFJlZlNldCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHByb2dyYW1FdmVudHMuZGlzcGF0Y2goeyBldmVudDogJ3JlcXVlc3Qtc2hvdy1kaWFsb2cnLCBkaWFsb2c6IGZvcmNlUHVzaERpYWxvZyB9KTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYWxsYmFja1dpdGhSZWZTZXQoZXJyLCByZXMpO1xuICAgICAgfSk7XG4gIH1cbn1cblxuUmVmVmlld01vZGVsLnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbihjYWxsYmFjaykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciB1cmwgPSB0aGlzLmlzVGFnID8gJy90YWdzJyA6ICcvYnJhbmNoZXMnO1xuICBpZiAodGhpcy5pc1JlbW90ZSkgdXJsID0gJy9yZW1vdGUnICsgdXJsO1xuICB0aGlzLnNlcnZlci5kZWwodXJsLCB7IHBhdGg6IHRoaXMuZ3JhcGgucmVwb1BhdGgoKSwgcmVtb3RlOiB0aGlzLmlzUmVtb3RlID8gdGhpcy5yZW1vdGUgOiBudWxsLCBuYW1lOiB0aGlzLnJlZk5hbWUgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgaWYgKCFlcnIpIHtcbiAgICAgIHNlbGYubm9kZSgpLnJlbW92ZVJlZihzZWxmKTtcbiAgICAgIHNlbGYuZ3JhcGgucmVmc0J5UmVmTmFtZVtzZWxmLm5hbWVdID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKCk7XG4gICAgc2VsZi5ncmFwaC5sb2FkTm9kZXNGcm9tQXBpKCk7XG4gICAgaWYgKHVybCA9PSAnL3JlbW90ZS90YWdzJykge1xuICAgICAgcHJvZ3JhbUV2ZW50cy5kaXNwYXRjaCh7IGV2ZW50OiAncmVxdWVzdC1mZXRjaC10YWdzJyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJvZ3JhbUV2ZW50cy5kaXNwYXRjaCh7IGV2ZW50OiAnYnJhbmNoLXVwZGF0ZWQnIH0pO1xuICAgIH1cbiAgfSk7XG59XG5cblJlZlZpZXdNb2RlbC5wcm90b3R5cGUuZ2V0UmVtb3RlUmVmID0gZnVuY3Rpb24ocmVtb3RlKSB7XG4gIHJldHVybiB0aGlzLmdyYXBoLmdldFJlZih0aGlzLmdldFJlbW90ZVJlZkZ1bGxOYW1lKHJlbW90ZSksIGZhbHNlKTtcbn1cblxuUmVmVmlld01vZGVsLnByb3RvdHlwZS5nZXRSZW1vdGVSZWZGdWxsTmFtZSA9IGZ1bmN0aW9uKHJlbW90ZSkge1xuICBpZiAodGhpcy5pc0xvY2FsQnJhbmNoKSByZXR1cm4gJ3JlZnMvcmVtb3Rlcy8nICsgcmVtb3RlICsgJy8nICsgdGhpcy5yZWZOYW1lO1xuICBpZiAodGhpcy5pc0xvY2FsVGFnKSByZXR1cm4gJ3JlbW90ZS10YWc6ICcgKyByZW1vdGUgKyAnLycgKyB0aGlzLnJlZk5hbWU7XG4gIHJldHVybiBudWxsO1xufVxuXG5SZWZWaWV3TW9kZWwucHJvdG90eXBlLmNhbkJlUHVzaGVkID0gZnVuY3Rpb24ocmVtb3RlKSB7XG4gIGlmICghdGhpcy5pc0xvY2FsKSByZXR1cm4gZmFsc2U7XG4gIHZhciByZW1vdGVSZWYgPSB0aGlzLmdldFJlbW90ZVJlZihyZW1vdGUpO1xuICBpZiAoIXJlbW90ZVJlZikgcmV0dXJuIHRydWU7XG4gIHJldHVybiB0aGlzLm5vZGUoKSAhPSByZW1vdGVSZWYubm9kZSgpO1xufVxuXG5SZWZWaWV3TW9kZWwucHJvdG90eXBlLmNyZWF0ZVJlbW90ZVJlZiA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5zZXJ2ZXIucG9zdCgnL3B1c2gnLCB7IHBhdGg6IHRoaXMuZ3JhcGgucmVwb1BhdGgoKSwgcmVtb3RlOiB0aGlzLmdyYXBoLmN1cnJlbnRSZW1vdGUoKSxcbiAgICAgIHJlZlNwZWM6IHRoaXMucmVmTmFtZSwgcmVtb3RlQnJhbmNoOiB0aGlzLnJlZk5hbWUgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgIGlmICghZXJyKSB7XG4gICAgICAgICAgdmFyIG5ld1JlZiA9IHNlbGYuZ3JhcGguZ2V0UmVmKFwicmVmcy9yZW1vdGVzL1wiICsgc2VsZi5ncmFwaC5jdXJyZW50UmVtb3RlKCkgKyBcIi9cIiArIHNlbGYucmVmTmFtZSk7XG4gICAgICAgICAgbmV3UmVmLm5vZGUoc2VsZi5ub2RlKCkpO1xuICAgICAgICB9XG4gICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICB9KTtcbn1cbiIsInZhciBrbyA9IHJlcXVpcmUoJ2tub2Nrb3V0Jyk7XG52YXIgY29tcG9uZW50cyA9IHJlcXVpcmUoJ3VuZ2l0LWNvbXBvbmVudHMnKTtcbnZhciBHaXROb2RlVmlld01vZGVsID0gcmVxdWlyZSgnLi9naXQtbm9kZScpO1xudmFyIEdpdFJlZlZpZXdNb2RlbCA9IHJlcXVpcmUoJy4vZ2l0LXJlZicpO1xudmFyIF8gPSByZXF1aXJlKCdsb2Rhc2gnKTtcbnZhciBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcbnZhciBFZGdlVmlld01vZGVsID0gcmVxdWlyZSgnLi9lZGdlJyk7XG5cbmNvbXBvbmVudHMucmVnaXN0ZXIoJ2dyYXBoJywgZnVuY3Rpb24oYXJncykge1xuICByZXR1cm4gbmV3IEdyYXBoVmlld01vZGVsKGFyZ3Muc2VydmVyLCBhcmdzLnJlcG9QYXRoKTtcbn0pO1xuXG5mdW5jdGlvbiBHcmFwaFZpZXdNb2RlbChzZXJ2ZXIsIHJlcG9QYXRoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5yZXBvUGF0aCA9IHJlcG9QYXRoO1xuICB0aGlzLm1heE5Ob2RlcyA9IDI1O1xuICB0aGlzLnNlcnZlciA9IHNlcnZlcjtcbiAgdGhpcy5jdXJyZW50UmVtb3RlID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLm5vZGVzTG9hZGVyID0gY29tcG9uZW50cy5jcmVhdGUoJ3Byb2dyZXNzQmFyJywge1xuICAgIHByZWRpY3Rpb25NZW1vcnlLZXk6ICdnaXRncmFwaC0nICsgc2VsZi5yZXBvUGF0aCgpLFxuICAgIGZhbGxiYWNrUHJlZGljdGVkVGltZU1zOiAxMDAwLFxuICAgIHRlbXBvcmFyeTogdHJ1ZVxuICB9KTtcbiAgdGhpcy5ub2RlcyA9IGtvLm9ic2VydmFibGVBcnJheSgpO1xuICB0aGlzLmVkZ2VzID0ga28ub2JzZXJ2YWJsZUFycmF5KCk7XG4gIHRoaXMucmVmcyA9IGtvLm9ic2VydmFibGVBcnJheSgpO1xuICB0aGlzLm5vZGVzQnlJZCA9IHt9O1xuICB0aGlzLnJlZnNCeVJlZk5hbWUgPSB7fTtcbiAgdGhpcy5jaGVja2VkT3V0QnJhbmNoID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLmNoZWNrZWRPdXRSZWYgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gc2VsZi5jaGVja2VkT3V0QnJhbmNoKCkgPyBzZWxmLmdldFJlZigncmVmcy9oZWFkcy8nICsgc2VsZi5jaGVja2VkT3V0QnJhbmNoKCkpIDogbnVsbDtcbiAgfSk7XG4gIHRoaXMuSEVBRHJlZiA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5IRUFEID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHNlbGYuSEVBRHJlZigpID8gc2VsZi5IRUFEcmVmKCkubm9kZSgpIDogdW5kZWZpbmVkO1xuICB9KTtcbiAgdGhpcy5jb21taXROb2RlQ29sb3IgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gc2VsZi5IRUFEKCkgPyBzZWxmLkhFQUQoKS5jb2xvcigpIDogJyM0QTRBNEEnO1xuICB9KTtcbiAgdGhpcy5jb21taXROb2RlRWRnZSA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIGlmICghc2VsZi5IRUFEKCkgfHwgIXNlbGYuSEVBRCgpLmN4KCkgfHwgIXNlbGYuSEVBRCgpLmN5KCkpIHJldHVybjtcbiAgICByZXR1cm4gXCJNIDYxMCA2OCBMIFwiICsgc2VsZi5IRUFEKCkuY3goKSArIFwiIFwiICsgc2VsZi5IRUFEKCkuY3koKTtcbiAgfSk7XG4gIHRoaXMuc2hvd0NvbW1pdE5vZGUgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgdGhpcy5jdXJyZW50QWN0aW9uQ29udGV4dCA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5lZGdlc0J5SWQgPSB7fTtcbiAgdGhpcy5zY3JvbGxlZFRvRW5kID0gXy5kZWJvdW5jZShmdW5jdGlvbigpIHtcbiAgICBzZWxmLm1heE5Ob2RlcyA9IHNlbGYubWF4Tk5vZGVzICsgMjU7XG4gICAgc2VsZi5sb2FkTm9kZXNGcm9tQXBpKCk7XG4gIH0sIDUwMCwgdHJ1ZSk7XG4gIHRoaXMuZGltQ29tbWl0ID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG4gIHRoaXMuY29tbWl0T3BhY2l0eSA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkgeyByZXR1cm4gc2VsZi5kaW1Db21taXQoKSA/IDAuMSA6IDE7IH0pO1xuICB0aGlzLmhlaWdoc3RCcmFuY2hPcmRlciA9IDA7XG4gIHRoaXMuaG92ZXJHcmFwaEFjdGlvbkdyYXBoaWMgPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMuaG92ZXJHcmFwaEFjdGlvbkdyYXBoaWMuc3Vic2NyaWJlKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLmRlc3Ryb3kpXG4gICAgICB2YWx1ZS5kZXN0cm95KCk7XG4gIH0sIG51bGwsICdiZWZvcmVDaGFuZ2UnKTtcblxuICB0aGlzLmhvdmVyR3JhcGhBY3Rpb24gPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMuaG92ZXJHcmFwaEFjdGlvbi5zdWJzY3JpYmUoZnVuY3Rpb24odmFsdWUpIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUuY3JlYXRlSG92ZXJHcmFwaGljKSB7XG4gICAgICBzZWxmLmhvdmVyR3JhcGhBY3Rpb25HcmFwaGljKHZhbHVlLmNyZWF0ZUhvdmVyR3JhcGhpYygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZi5ob3ZlckdyYXBoQWN0aW9uR3JhcGhpYyhudWxsKTtcbiAgICB9XG4gIH0pO1xuXG4gIHRoaXMubG9hZE5vZGVzRnJvbUFwaVRocm90dGxlZCA9IF8udGhyb3R0bGUodGhpcy5sb2FkTm9kZXNGcm9tQXBpLmJpbmQodGhpcyksIDUwMCk7XG4gIHRoaXMudXBkYXRlQnJhbmNoZXNUaHJvdHRsZWQgPSBfLnRocm90dGxlKHRoaXMudXBkYXRlQnJhbmNoZXMuYmluZCh0aGlzKSwgNTAwKTtcbiAgdGhpcy5sb2FkTm9kZXNGcm9tQXBpVGhyb3R0bGVkKCk7XG4gIHRoaXMudXBkYXRlQnJhbmNoZXNUaHJvdHRsZWQoKTtcbiAgdGhpcy5ncmFwaFdpZHRoID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLmdyYXBoSGVpZ2h0ID0ga28ub2JzZXJ2YWJsZSgpO1xufVxuXG5HcmFwaFZpZXdNb2RlbC5wcm90b3R5cGUudXBkYXRlTm9kZSA9IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpIHtcbiAga28ucmVuZGVyVGVtcGxhdGUoJ2dyYXBoJywgdGhpcywge30sIHBhcmVudEVsZW1lbnQpO1xufVxuXG5HcmFwaFZpZXdNb2RlbC5wcm90b3R5cGUuZ2V0Tm9kZSA9IGZ1bmN0aW9uKHNoYTEsIGxvZ0VudHJ5KSB7XG4gIHZhciBub2RlVmlld01vZGVsID0gdGhpcy5ub2Rlc0J5SWRbc2hhMV07XG4gIGlmICghbm9kZVZpZXdNb2RlbCkgbm9kZVZpZXdNb2RlbCA9IHRoaXMubm9kZXNCeUlkW3NoYTFdID0gbmV3IEdpdE5vZGVWaWV3TW9kZWwodGhpcywgc2hhMSk7XG4gIGlmIChsb2dFbnRyeSkgbm9kZVZpZXdNb2RlbC5zZXREYXRhKGxvZ0VudHJ5KTtcbiAgcmV0dXJuIG5vZGVWaWV3TW9kZWw7XG59XG5HcmFwaFZpZXdNb2RlbC5wcm90b3R5cGUuZ2V0UmVmID0gZnVuY3Rpb24ocmVmLCBjb25zdHJ1Y3RJZlVuYXZhaWxhYmxlKSB7XG4gIGlmIChjb25zdHJ1Y3RJZlVuYXZhaWxhYmxlID09PSB1bmRlZmluZWQpIGNvbnN0cnVjdElmVW5hdmFpbGFibGUgPSB0cnVlO1xuICB2YXIgcmVmVmlld01vZGVsID0gdGhpcy5yZWZzQnlSZWZOYW1lW3JlZl07XG4gIGlmICghcmVmVmlld01vZGVsICYmIGNvbnN0cnVjdElmVW5hdmFpbGFibGUpIHtcbiAgICByZWZWaWV3TW9kZWwgPSB0aGlzLnJlZnNCeVJlZk5hbWVbcmVmXSA9IG5ldyBHaXRSZWZWaWV3TW9kZWwocmVmLCB0aGlzKTtcbiAgICB0aGlzLnJlZnMucHVzaChyZWZWaWV3TW9kZWwpO1xuICAgIGlmIChyZWZWaWV3TW9kZWwubmFtZSA9PT0gJ0hFQUQnKSB7XG4gICAgICB0aGlzLkhFQURyZWYocmVmVmlld01vZGVsKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlZlZpZXdNb2RlbDtcbn1cblxuR3JhcGhWaWV3TW9kZWwucHJvdG90eXBlLmxvYWROb2Rlc0Zyb21BcGkgPSBmdW5jdGlvbihjYWxsYmFjaykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgdGhpcy5ub2Rlc0xvYWRlci5zdGFydCgpO1xuICB0aGlzLnNlcnZlci5nZXRQcm9taXNlKCcvbG9nJywgeyBwYXRoOiB0aGlzLnJlcG9QYXRoKCksIGxpbWl0OiB0aGlzLm1heE5Ob2RlcyB9KVxuICAgIC50aGVuKGZ1bmN0aW9uKG5vZGVzKSB7XG4gICAgICBub2RlcyA9IHNlbGYuY29tcHV0ZU5vZGUobm9kZXMubWFwKGZ1bmN0aW9uKGxvZ0VudHJ5KSB7XG4gICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0Tm9kZShsb2dFbnRyeS5zaGExLCBsb2dFbnRyeSk7XG4gICAgICAgIH0pKTtcblxuICAgICAgdmFyIGVkZ2VzID0gW107XG4gICAgICBub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgbm9kZS5wYXJlbnRzKCkuZm9yRWFjaChmdW5jdGlvbihwYXJlbnRTaGExKSB7XG4gICAgICAgICAgZWRnZXMucHVzaChzZWxmLmdldEVkZ2Uobm9kZS5zaGExLCBwYXJlbnRTaGExKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBub2RlLnJlbmRlcigpO1xuICAgICAgfSk7XG5cbiAgICAgIHNlbGYuZWRnZXMoZWRnZXMpO1xuICAgICAgc2VsZi5ub2Rlcyhub2Rlcyk7XG5cbiAgICAgIGlmIChub2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHNlbGYuZ3JhcGhIZWlnaHQobm9kZXNbbm9kZXMubGVuZ3RoIC0gMV0uY3koKSArIDgwKTtcbiAgICAgIH1cbiAgICAgIHNlbGYuZ3JhcGhXaWR0aCgxMDAwICsgKHNlbGYuaGVpZ2hzdEJyYW5jaE9yZGVyICogOTApKTtcbiAgICB9KS5maW5hbGx5KGZ1bmN0aW9uKCkge1xuICAgICAgc2VsZi5ub2Rlc0xvYWRlci5zdG9wKCk7XG4gICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7XG4gICAgfSk7XG59XG5cbkdyYXBoVmlld01vZGVsLnByb3RvdHlwZS50cmF2ZXJzZU5vZGVMZWZ0UGFyZW50cyA9IGZ1bmN0aW9uKG5vZGUsIGNhbGxiYWNrKSB7XG4gIGNhbGxiYWNrKG5vZGUpO1xuICB2YXIgcGFyZW50ID0gdGhpcy5ub2Rlc0J5SWRbbm9kZS5wYXJlbnRzKClbMF1dO1xuICBpZiAocGFyZW50KSB7XG4gICAgdGhpcy50cmF2ZXJzZU5vZGVMZWZ0UGFyZW50cyhwYXJlbnQsIGNhbGxiYWNrKTtcbiAgfVxufVxuXG5HcmFwaFZpZXdNb2RlbC5wcm90b3R5cGUuY29tcHV0ZU5vZGUgPSBmdW5jdGlvbihub2Rlcykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgaWYgKCFub2Rlcykge1xuICAgIG5vZGVzID0gdGhpcy5ub2RlcygpO1xuICB9XG5cbiAgdGhpcy5tYXJrTm9kZXNJZGVvbG9naWNhbEJyYW5jaGVzKHRoaXMucmVmcygpLCBub2RlcywgdGhpcy5ub2Rlc0J5SWQpO1xuXG4gIHZhciB1cGRhdGVUaW1lU3RhbXAgPSBtb21lbnQoKS52YWx1ZU9mKCk7XG4gIGlmICh0aGlzLkhFQUQoKSkge1xuICAgIHRoaXMudHJhdmVyc2VOb2RlTGVmdFBhcmVudHModGhpcy5IRUFEKCksIGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIG5vZGUuYW5jZXN0b3JPZkhFQURUaW1lU3RhbXAgPSB1cGRhdGVUaW1lU3RhbXA7XG4gICAgfSk7XG4gIH1cblxuICAvLyBGaWx0ZXIgb3V0IG5vZGVzIHdoaWNoIGRvZXNuJ3QgaGF2ZSBhIGJyYW5jaCAoc3RhZ2luZyBhbmQgb3JwaGFuZWQgbm9kZXMpXG4gIG5vZGVzID0gbm9kZXMuZmlsdGVyKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIChub2RlLmlkZW9sb2dpY2FsQnJhbmNoKCkgJiYgIW5vZGUuaWRlb2xvZ2ljYWxCcmFuY2goKS5pc1N0YXNoKSB8fCBub2RlLmFuY2VzdG9yT2ZIRUFEVGltZVN0YW1wID09IHVwZGF0ZVRpbWVTdGFtcDsgfSlcblxuICB2YXIgYnJhbmNoU2xvdHMgPSBbXTtcblxuICAvLyBUaGVuIGl0ZXJhdGUgZnJvbSB0aGUgYm90dG9tIHRvIGZpeCB0aGUgb3JkZXJzIG9mIHRoZSBicmFuY2hlc1xuICBmb3IgKHZhciBpID0gbm9kZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICB2YXIgbm9kZSA9IG5vZGVzW2ldO1xuICAgIGlmIChub2RlLmFuY2VzdG9yT2ZIRUFEVGltZVN0YW1wID09IHVwZGF0ZVRpbWVTdGFtcCkgY29udGludWU7XG4gICAgdmFyIGlkZW9sb2dpY2FsQnJhbmNoID0gbm9kZS5pZGVvbG9naWNhbEJyYW5jaCgpO1xuXG4gICAgLy8gRmlyc3Qgb2NjdXJlbmNlIG9mIHRoZSBicmFuY2gsIGZpbmQgYW4gZW1wdHkgc2xvdCBmb3IgdGhlIGJyYW5jaFxuICAgIGlmIChpZGVvbG9naWNhbEJyYW5jaC5sYXN0U2xvdHRlZFRpbWVTdGFtcCAhPSB1cGRhdGVUaW1lU3RhbXApIHtcbiAgICAgIGlkZW9sb2dpY2FsQnJhbmNoLmxhc3RTbG90dGVkVGltZVN0YW1wID0gdXBkYXRlVGltZVN0YW1wO1xuICAgICAgdmFyIHNsb3QgPSBicmFuY2hTbG90cy5pbmRleE9mKHVuZGVmaW5lZCk7XG4gICAgICBpZiAoc2xvdCA9PT0gLTEpIHtcbiAgICAgICAgYnJhbmNoU2xvdHMucHVzaChpZGVvbG9naWNhbEJyYW5jaCk7XG4gICAgICAgIHNsb3QgPSBicmFuY2hTbG90cy5sZW5ndGggLSAxO1xuICAgICAgfVxuICAgICAgaWRlb2xvZ2ljYWxCcmFuY2guYnJhbmNoT3JkZXIgPSBzbG90O1xuICAgICAgYnJhbmNoU2xvdHNbc2xvdF0gPSBzbG90O1xuICAgIH1cblxuICAgIG5vZGUuYnJhbmNoT3JkZXIoaWRlb2xvZ2ljYWxCcmFuY2guYnJhbmNoT3JkZXIpO1xuICAgIHNlbGYuaGVpZ2hzdEJyYW5jaE9yZGVyID0gTWF0aC5tYXgoc2VsZi5oZWlnaHN0QnJhbmNoT3JkZXIsIG5vZGUuYnJhbmNoT3JkZXIoKSk7XG4gIH1cblxuICB2YXIgcHJldk5vZGU7XG4gIG5vZGVzLmZvckVhY2goZnVuY3Rpb24obm9kZSkge1xuICAgIG5vZGUuYnJhbmNoT3JkZXIoYnJhbmNoU2xvdHMubGVuZ3RoIC0gbm9kZS5icmFuY2hPcmRlcigpKTtcbiAgICBub2RlLmFuY2VzdG9yT2ZIRUFEKG5vZGUuYW5jZXN0b3JPZkhFQURUaW1lU3RhbXAgPT0gdXBkYXRlVGltZVN0YW1wKTtcbiAgICBub2RlLmFib3ZlTm9kZSA9IHByZXZOb2RlO1xuICAgIGlmIChwcmV2Tm9kZSkgcHJldk5vZGUuYmVsb3dOb2RlID0gbm9kZTtcbiAgICBwcmV2Tm9kZSA9IG5vZGU7XG4gIH0pO1xuXG4gIHJldHVybiBub2Rlcztcbn1cblxuR3JhcGhWaWV3TW9kZWwucHJvdG90eXBlLmdldEVkZ2UgPSBmdW5jdGlvbihub2RlQXNoYTEsIG5vZGVCc2hhMSkge1xuICB2YXIgaWQgPSBub2RlQXNoYTEgKyAnLScgKyBub2RlQnNoYTE7XG4gIHZhciBlZGdlID0gdGhpcy5lZGdlc0J5SWRbaWRdO1xuICBpZiAoIWVkZ2UpIHtcbiAgICBlZGdlID0gdGhpcy5lZGdlc0J5SWRbaWRdID0gbmV3IEVkZ2VWaWV3TW9kZWwodGhpcywgbm9kZUFzaGExLCBub2RlQnNoYTEpO1xuICB9XG4gIHJldHVybiBlZGdlO1xufVxuXG5HcmFwaFZpZXdNb2RlbC5fbWFya0lkZW9sb2dpY2FsU3RhbXAgPSAwO1xuR3JhcGhWaWV3TW9kZWwucHJvdG90eXBlLm1hcmtOb2Rlc0lkZW9sb2dpY2FsQnJhbmNoZXMgPSBmdW5jdGlvbihyZWZzLCBub2Rlcywgbm9kZXNCeUlkKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgcmVmcyA9IHJlZnMuZmlsdGVyKGZ1bmN0aW9uKHIpIHsgcmV0dXJuICEhci5ub2RlKCk7IH0pO1xuICByZWZzID0gcmVmcy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHtcbiAgICBpZiAoYS5pc0xvY2FsICYmICFiLmlzTG9jYWwpIHJldHVybiAtMTtcbiAgICBpZiAoYi5pc0xvY2FsICYmICFhLmlzTG9jYWwpIHJldHVybiAxO1xuICAgIGlmIChhLmlzQnJhbmNoICYmICFiLmlzQnJhbmNoKSByZXR1cm4gLTE7XG4gICAgaWYgKGIuaXNCcmFuY2ggJiYgIWEuaXNCcmFuY2gpIHJldHVybiAxO1xuICAgIGlmIChhLmlzSEVBRCAmJiAhYi5pc0hFQUQpIHJldHVybiAxO1xuICAgIGlmICghYS5pc0hFQUQgJiYgYi5pc0hFQUQpIHJldHVybiAtMTtcbiAgICBpZiAoYS5pc1N0YXNoICYmICFiLmlzU3Rhc2gpIHJldHVybiAxO1xuICAgIGlmIChiLmlzU3Rhc2ggJiYgIWEuaXNTdGFzaCkgcmV0dXJuIC0xO1xuICAgIGlmIChhLm5vZGUoKSAmJiBhLm5vZGUoKS5kYXRlICYmIGIubm9kZSgpICYmIGIubm9kZSgpLmRhdGUpXG4gICAgICByZXR1cm4gYi5ub2RlKCkuZGF0ZSAtIGEubm9kZSgpLmRhdGU7XG4gICAgcmV0dXJuIGEucmVmTmFtZSA8IGIucmVmTmFtZSA/IC0xIDogMTtcbiAgfSk7XG4gIHZhciBzdGFtcCA9IEdyYXBoVmlld01vZGVsLl9tYXJrSWRlb2xvZ2ljYWxTdGFtcCsrO1xuICByZWZzLmZvckVhY2goZnVuY3Rpb24ocmVmKSB7XG4gICAgc2VsZi50cmF2ZXJzZU5vZGVQYXJlbnRzKHJlZi5ub2RlKCksIGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLnN0YW1wID09IHN0YW1wKSByZXR1cm4gZmFsc2U7XG4gICAgICBub2RlLnN0YW1wID0gc3RhbXA7XG4gICAgICBub2RlLmlkZW9sb2dpY2FsQnJhbmNoKHJlZik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbkdyYXBoVmlld01vZGVsLnByb3RvdHlwZS50cmF2ZXJzZU5vZGVQYXJlbnRzID0gZnVuY3Rpb24obm9kZSwgY2FsbGJhY2spIHtcbiAgaWYgKCFjYWxsYmFjayhub2RlKSkgcmV0dXJuIGZhbHNlO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUucGFyZW50cygpLmxlbmd0aDsgaSsrKSB7XG4gICAgLy8gaWYgcGFyZW50LCB0cmF2ZXJzIHBhcmVudFxuICAgIHZhciBwYXJlbnQgPSB0aGlzLm5vZGVzQnlJZFtub2RlLnBhcmVudHMoKVtpXV07XG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgdGhpcy50cmF2ZXJzZU5vZGVQYXJlbnRzKHBhcmVudCwgY2FsbGJhY2spO1xuICAgIH1cbiAgfVxufVxuXG5HcmFwaFZpZXdNb2RlbC5wcm90b3R5cGUuaGFuZGxlQnViYmxlZENsaWNrID0gZnVuY3Rpb24oZWxlbSwgZXZlbnQpIHtcbiAgLy8gSWYgdGhlIGNsaWNrZWQgZWxlbWVudCBpcyBib3VuZCB0byB0aGUgY3VycmVudCBhY3Rpb24gY29udGV4dCxcbiAgLy8gdGhlbiBsZXQncyBub3QgZGVzZWxlY3QgaXQuXG4gIGlmIChrby5kYXRhRm9yKGV2ZW50LnRhcmdldCkgPT09IHRoaXMuY3VycmVudEFjdGlvbkNvbnRleHQoKSkgcmV0dXJuO1xuICBpZiAodGhpcy5jdXJyZW50QWN0aW9uQ29udGV4dCgpICYmIHRoaXMuY3VycmVudEFjdGlvbkNvbnRleHQoKSBpbnN0YW5jZW9mIEdpdE5vZGVWaWV3TW9kZWwpIHtcbiAgICB0aGlzLmN1cnJlbnRBY3Rpb25Db250ZXh0KCkudG9nZ2xlU2VsZWN0ZWQoKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmN1cnJlbnRBY3Rpb25Db250ZXh0KG51bGwpO1xuICB9XG4gIC8vIElmIHRoZSBjbGljayB3YXMgb24gYW4gaW5wdXQgZWxlbWVudCwgdGhlbiBsZXQncyBhbGxvdyB0aGUgZGVmYXVsdCBhY3Rpb24gdG8gcHJvY2VlZC5cbiAgLy8gVGhpcyBpcyBlc3BlY2lhbGx5IG5lZWRlZCBzaW5jZSBmb3Igc29tZSBzdHJhbmdlIHJlYXNvbiBhbnkgc3VibWl0IChpZS4gZW50ZXIgaW4gYSB0ZXh0Ym94KVxuICAvLyB3aWxsIHRyaWdnZXIgYSBjbGljayBldmVudCBvbiB0aGUgc3VibWl0IGlucHV0IG9mIHRoZSBmb3JtLCB3aGljaCB3aWxsIGVuZCB1cCBoZXJlLFxuICAvLyBhbmQgaWYgd2UgZG9uJ3QgcmV0dXJuIHRydWUsIHRoZW4gdGhlIHN1Ym1pdCBldmVudCBpcyBuZXZlciBmaXJlZCwgYnJlYWtpbmcgc3R1ZmYuXG4gIGlmIChldmVudC50YXJnZXQubm9kZU5hbWUgPT09ICdJTlBVVCcpIHJldHVybiB0cnVlO1xufVxuXG5HcmFwaFZpZXdNb2RlbC5wcm90b3R5cGUub25Qcm9ncmFtRXZlbnQgPSBmdW5jdGlvbihldmVudCkge1xuICBpZiAoZXZlbnQuZXZlbnQgPT0gJ2dpdC1kaXJlY3RvcnktY2hhbmdlZCcpIHtcbiAgICB0aGlzLmxvYWROb2Rlc0Zyb21BcGlUaHJvdHRsZWQoKTtcbiAgICB0aGlzLnVwZGF0ZUJyYW5jaGVzVGhyb3R0bGVkKCk7XG4gIH0gZWxzZSBpZiAoZXZlbnQuZXZlbnQgPT0gJ3JlcXVlc3QtYXBwLWNvbnRlbnQtcmVmcmVzaCcpIHtcbiAgICB0aGlzLmxvYWROb2Rlc0Zyb21BcGlUaHJvdHRsZWQoKTtcbiAgfSBlbHNlIGlmIChldmVudC5ldmVudCA9PSAncmVtb3RlLXRhZ3MtdXBkYXRlJykge1xuICAgIHRoaXMuc2V0UmVtb3RlVGFncyhldmVudC50YWdzKTtcbiAgfSBlbHNlIGlmIChldmVudC5ldmVudCA9PSAnY3VycmVudC1yZW1vdGUtY2hhbmdlZCcpIHtcbiAgICB0aGlzLmN1cnJlbnRSZW1vdGUoZXZlbnQubmV3UmVtb3RlKTtcbiAgfSBlbHNlIGlmIChldmVudC5ldmVudCA9PSAnZ3JhcGgtcmVuZGVyJykge1xuICAgIHRoaXMubm9kZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIG5vZGUucmVuZGVyKCk7XG4gICAgfSk7XG4gIH1cbn1cbkdyYXBoVmlld01vZGVsLnByb3RvdHlwZS51cGRhdGVCcmFuY2hlcyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuc2VydmVyLmdldCgnL2NoZWNrb3V0JywgeyBwYXRoOiB0aGlzLnJlcG9QYXRoKCkgfSwgZnVuY3Rpb24oZXJyLCBicmFuY2gpIHtcbiAgICBpZiAoZXJyICYmIGVyci5lcnJvckNvZGUgPT0gJ25vdC1hLXJlcG9zaXRvcnknKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZXJyKSByZXR1cm47XG4gICAgc2VsZi5jaGVja2VkT3V0QnJhbmNoKGJyYW5jaCk7XG4gIH0pO1xufVxuR3JhcGhWaWV3TW9kZWwucHJvdG90eXBlLnNldFJlbW90ZVRhZ3MgPSBmdW5jdGlvbihyZW1vdGVUYWdzKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIG5vZGVJZHNUb1JlbW90ZVRhZ3MgPSB7fTtcbiAgcmVtb3RlVGFncy5mb3JFYWNoKGZ1bmN0aW9uKHJlZikge1xuICAgIGlmIChyZWYubmFtZS5pbmRleE9mKCdee30nKSAhPSAtMSkge1xuICAgICAgdmFyIHRhZ1JlZiA9IHJlZi5uYW1lLnNsaWNlKDAsIHJlZi5uYW1lLmxlbmd0aCAtICdee30nLmxlbmd0aCk7XG4gICAgICB2YXIgbmFtZSA9ICdyZW1vdGUtdGFnOiAnICsgcmVmLnJlbW90ZSArICcvJyArIHRhZ1JlZi5zcGxpdCgnLycpWzJdO1xuICAgICAgc2VsZi5nZXRSZWYobmFtZSkubm9kZShzZWxmLmdldE5vZGUocmVmLnNoYTEpKTtcbiAgICB9XG4gIH0pO1xufVxuR3JhcGhWaWV3TW9kZWwucHJvdG90eXBlLmNoZWNrSGVhZE1vdmUgPSBmdW5jdGlvbih0b05vZGUpIHtcbiAgaWYgKHRoaXMuSEVBRCgpID09PSB0b05vZGUpIHtcbiAgICB0aGlzLkhFQURyZWYubm9kZSh0b05vZGUpO1xuICB9XG59XG4iLCJ2YXIgZ2V0RWRnZU1vZGVsV2l0aEQgPSBmdW5jdGlvbihkLCBzdHJva2UsIHN0cm9rZVdpZHRoLCBzdHJva2VEYXNoYXJyYXksIG1hcmtlckVuZCkge1xuICByZXR1cm4geyBkOiBkLFxuICAgICAgICAgIHN0cm9rZTogc3Ryb2tlID8gc3Ryb2tlIDogJyM0QTRBNEEnLFxuICAgICAgICAgIHN0cm9rZVdpZHRoOiBzdHJva2VXaWR0aCA/IHN0cm9rZVdpZHRoIDogJzgnLFxuICAgICAgICAgIHN0cm9rZURhc2hhcnJheTogc3Ryb2tlRGFzaGFycmF5ID8gc3Ryb2tlRGFzaGFycmF5IDogJzEwLCA1JyxcbiAgICAgICAgICBtYXJrZXJFbmQ6IG1hcmtlckVuZCA/IG1hcmtlckVuZCA6ICcnIH07XG59XG5cbnZhciBnZXRFZGdlTW9kZWwgPSBmdW5jdGlvbihzY3gsIHNjeSwgdGN4LCB0Y3ksIHN0cm9rZSwgc3Ryb2tlV2lkdGgsIHN0cm9rZURhc2hhcnJheSwgbWFya2VyRW5kKSB7XG4gIHJldHVybiBnZXRFZGdlTW9kZWxXaXRoRChcIk0gXCIgKyBzY3ggKyBcIiBcIiArIHNjeSArIFwiIEwgXCIgKyB0Y3ggKyBcIiBcIiArIHRjeSwgc3Ryb2tlLCBzdHJva2VXaWR0aCwgc3Ryb2tlRGFzaGFycmF5LCBtYXJrZXJFbmQpO1xufVxuXG52YXIgZ2V0Tm9kZU1vZGVsID0gZnVuY3Rpb24oY3gsIGN5LCByLCBmaWxsLCBzdHJva2UsIHN0cm9rZVdpZHRoLCBzdHJva2VEYXNoYXJyYXkpIHtcbiAgcmV0dXJuIHsgY3g6IGN4LFxuICAgICAgICAgIGN5OiBjeSxcbiAgICAgICAgICByOiByLFxuICAgICAgICAgIGZpbGw6IGZpbGwsXG4gICAgICAgICAgc3Ryb2tlOiBzdHJva2UgPyBzdHJva2UgOiAnIzQxREUzQycsXG4gICAgICAgICAgc3Ryb2tlV2lkdGg6IHN0cm9rZVdpZHRoID8gc3Ryb2tlV2lkdGggOiAnOCcsXG4gICAgICAgICAgc3Ryb2tlRGFzaGFycmF5OiBzdHJva2VEYXNoYXJyYXkgPyBzdHJva2VEYXNoYXJyYXkgOiAnMTAsIDUnIH07XG59XG5cbmZ1bmN0aW9uIEhvdmVyVmlld01vZGVsKCkge1xuICB0aGlzLmJnRWRnZXMgPSBbXTtcbiAgdGhpcy5ub2RlcyA9IFtdO1xuICB0aGlzLmZnRWRnZXMgPSBbXTtcbn1cblxuZnVuY3Rpb24gTWVyZ2VWaWV3TW9kZWwoZ3JhcGgsIGhlYWROb2RlLCBub2RlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgSG92ZXJWaWV3TW9kZWwuY2FsbCh0aGlzKTtcbiAgdGhpcy5ncmFwaCA9IGdyYXBoO1xuICB0aGlzLmJnRWRnZXMgPSBbIGdldEVkZ2VNb2RlbChoZWFkTm9kZS5jeCgpLCAoaGVhZE5vZGUuY3koKSAtIDExMCksIGhlYWROb2RlLmN4KCksIGhlYWROb2RlLmN5KCkpLFxuICAgICAgICAgICAgICAgIGdldEVkZ2VNb2RlbChoZWFkTm9kZS5jeCgpLCAoaGVhZE5vZGUuY3koKSAtIDExMCksIG5vZGUuY3goKSwgbm9kZS5jeSgpKSBdO1xuICB0aGlzLm5vZGVzID0gWyBnZXROb2RlTW9kZWwoaGVhZE5vZGUuY3goKSwgaGVhZE5vZGUuY3koKSAtIDExMCwgTWF0aC5tYXgoaGVhZE5vZGUucigpLCBub2RlLnIoKSksICcjMjUyODMzJywgJyM0MURFM0MnLCAnOCcsICcxMCwgNScpIF07XG5cbiAgZ3JhcGguZGltQ29tbWl0KHRydWUpO1xufVxuZXhwb3J0cy5NZXJnZVZpZXdNb2RlbCA9IE1lcmdlVmlld01vZGVsO1xuTWVyZ2VWaWV3TW9kZWwucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5ncmFwaC5kaW1Db21taXQoZmFsc2UpO1xufVxuXG5mdW5jdGlvbiBSZWJhc2VWaWV3TW9kZWwob250bywgbm9kZXNUaGF0V2lsbE1vdmUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBIb3ZlclZpZXdNb2RlbC5jYWxsKHRoaXMpO1xuICBub2Rlc1RoYXRXaWxsTW92ZSA9IG5vZGVzVGhhdFdpbGxNb3ZlLnNsaWNlKDAsIC0xKTtcblxuICBpZiAobm9kZXNUaGF0V2lsbE1vdmUubGVuZ3RoID09IDApIHJldHVybjtcblxuICB0aGlzLmJnRWRnZXMucHVzaChnZXRFZGdlTW9kZWwob250by5jeCgpLCBvbnRvLmN5KCksIG9udG8uY3goKSwgb250by5jeSgpIC0gNjApKTtcbiAgbm9kZXNUaGF0V2lsbE1vdmUuZm9yRWFjaChmdW5jdGlvbihub2RlLCBpKSB7XG4gICAgdmFyIGN5ID0gb250by5jeSgpICsgKC05MCAqIChpICsgMSkpO1xuICAgIHNlbGYubm9kZXMucHVzaChnZXROb2RlTW9kZWwob250by5jeCgpLCBjeSwgMjgsICd0cmFuc3BhcmVudCcpKTtcbiAgICBpZiAoaSArIDEgPCBub2Rlc1RoYXRXaWxsTW92ZS5sZW5ndGgpIHtcbiAgICAgIHNlbGYuYmdFZGdlcy5wdXNoKGdldEVkZ2VNb2RlbChvbnRvLmN4KCksIChjeSAtIDI1KSwgb250by5jeCgpLCAoY3kgLSA2NSkpKTtcbiAgICB9XG4gIH0pO1xufVxuZXhwb3J0cy5SZWJhc2VWaWV3TW9kZWwgPSBSZWJhc2VWaWV3TW9kZWw7XG5cbmZ1bmN0aW9uIFJlc2V0Vmlld01vZGVsKG5vZGVzKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgSG92ZXJWaWV3TW9kZWwuY2FsbCh0aGlzKTtcblxuICBub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKG5vZGUpIHtcbiAgICBzZWxmLmZnRWRnZXMucHVzaChnZXRFZGdlTW9kZWxXaXRoRChub2RlLmdldExlZnRUb1JpZ2h0U3RyaWtlKCksICdyZ2IoMjU1LCAxMjksIDMxKScsICc4JywgJzAsIDAnKSlcbiAgICBzZWxmLmZnRWRnZXMucHVzaChnZXRFZGdlTW9kZWxXaXRoRChub2RlLmdldFJpZ2h0VG9MZWZ0U3RyaWtlKCksICdyZ2IoMjU1LCAxMjksIDMxKScsICc4JywgJzAsIDAnKSk7XG4gIH0pO1xufVxuZXhwb3J0cy5SZXNldFZpZXdNb2RlbCA9IFJlc2V0Vmlld01vZGVsO1xuXG5mdW5jdGlvbiBQdXNoVmlld01vZGVsKGZyb21Ob2RlLCB0b05vZGUpIHtcbiAgSG92ZXJWaWV3TW9kZWwuY2FsbCh0aGlzKTtcbiAgdGhpcy5mZ0VkZ2VzID0gW2dldEVkZ2VNb2RlbChmcm9tTm9kZS5jeCgpLCBmcm9tTm9kZS5jeSgpLCB0b05vZGUuY3goKSwgKHRvTm9kZS5jeSgpICsgNDApLCAncmdiKDYxLCAxMzksIDI1NSknLCAnMTUnLCAnMTAsIDUnLCAndXJsKCNwdXNoQXJyb3dFbmQpJyApXTtcbn1cbmV4cG9ydHMuUHVzaFZpZXdNb2RlbCA9IFB1c2hWaWV3TW9kZWw7XG4iLCJ2YXIga28gPSByZXF1aXJlKCdrbm9ja291dCcpO1xuXG52YXIgU2VsZWN0YWJsZSA9IGZ1bmN0aW9uKGdyYXBoKSB7XG4gIHRoaXMuc2VsZWN0ZWQgPSBrby5jb21wdXRlZCh7XG4gICAgcmVhZDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gZ3JhcGguY3VycmVudEFjdGlvbkNvbnRleHQoKSA9PSB0aGlzO1xuICAgIH0sXG4gICAgd3JpdGU6IGZ1bmN0aW9uKHZhbCkge1xuICAgICAgLy8gdmFsIGlzIHRoaXMgaWYgd2UncmUgY2FsbGVkIGZyb20gYSBjbGljayBrbyBiaW5kaW5nXG4gICAgICBpZiAodmFsID09PSB0aGlzIHx8IHZhbCA9PT0gdHJ1ZSkge1xuICAgICAgICBncmFwaC5jdXJyZW50QWN0aW9uQ29udGV4dCh0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAoZ3JhcGguY3VycmVudEFjdGlvbkNvbnRleHQoKSA9PSB0aGlzKSB7XG4gICAgICAgIGdyYXBoLmN1cnJlbnRBY3Rpb25Db250ZXh0KG51bGwpO1xuICAgICAgfVxuICAgIH0sXG4gICAgb3duZXI6IHRoaXNcbiAgfSk7XG59O1xubW9kdWxlLmV4cG9ydHMgPSBTZWxlY3RhYmxlO1xuIl19 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.css deleted file mode 100644 index 97eff102..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.css +++ /dev/null @@ -1,186 +0,0 @@ -.graph { - position: relative; - display: inline-block; - width: 100%; -} -.graph .graphLog { - left: 575px; -} -.graph .nodeContainer { - position: absolute; - left: 30px; - top: 120px; - width: 100%; -} -.graph .nodeContainer .commit-container { - position: absolute; - top: -43px; -} -.graph .nodeContainer .rightSideContainer { - position: absolute; - display: flex; - margin-left: 440px; - top: -22px; - white-space: nowrap; - height: 40px; -} -.graph .nodeContainer .droparea { - margin: 8px 0px 4px 0px; -} -.graph .nodeContainer .ref { - display: inline-block; - opacity: 0.6; - cursor: move; - margin: 7px 0px 4px 0px; - outline: none; - padding: 2px 5px 2px 5px; - border: 3px solid transparent; - border-radius: 10px; - transition: border-color 0.5s; - -webkit-transition: border-color 0.5s; -} -.graph .nodeContainer .ref.dragging.focused { - border-color: transparent; -} -.graph .nodeContainer .ref.focused { - border-color: #fff; -} -.graph .nodeContainer .ref.current { - font-weight: bold; - opacity: 1; - font-size: 20px; - margin-top: 2px; - margin-bottom: -2px; -} -.graph .nodeContainer .ref.current .octicon { - font-size: 20px; -} -.graph .nodeContainer .ref.remote { - color: #5DB4FF; -} -.graph .nodeContainer .ref.tag { - color: #EEF266; -} -.graph .nodeContainer .graphAction { - color: #fff; - cursor: pointer; - opacity: 1; - transition: all 0.5s ease 0.2s; - -webkit-transition: all 0.5s ease 0.2s; - transition-property: opacity, max-width; - -webkit-transition-property: opacity, max-width; - margin-right: 2.5px; - margin-left: 2.5px; - overflow: hidden; -} -.graph .nodeContainer .graphAction .icon { - margin-right: 6px; -} -.graph .nodeContainer .graphAction .icon.flip { - -webkit-transform: rotate(-180deg); - -moz-transform: rotate(-180deg); - -o-transform: rotate(-180deg); - transform: rotate(-180deg); -} -.graph .nodeContainer .graphAction .icon.octicon-git-merge, -.graph .nodeContainer .graphAction .icon.octicon-repo-forked, -.graph .nodeContainer .graphAction .icon.octicon-zap { - margin-left: 3px; -} -.graph .nodeContainer .graphAction .icon.octicon-history { - margin-left: 2px; -} -.graph .nodeContainer .graphAction .icon.glyphicon-remove, -.graph .nodeContainer .graphAction .icon.octicon-circuit-board { - margin-left: 1px; -} -.graph .nodeContainer .graphAction.droparea { - padding-left: 7px; -} -.graph .nodeContainer .graphAction.dimmed { - opacity: 0.5; -} -.graph .nodeContainer .graphAction.push { - background: rgba(61, 139, 255, 0.9); -} -.graph .nodeContainer .graphAction.pull { - background: rgba(38, 189, 189, 0.9); -} -.graph .nodeContainer .graphAction.reset { - background: rgba(255, 129, 31, 0.9); -} -.graph .nodeContainer .graphAction.rebase { - background: rgba(65, 222, 60, 0.9); -} -.graph .nodeContainer .graphAction.move { - width: auto; - background: rgba(0, 0, 0, 0.1); -} -.graph .nodeContainer .graphAction.merge { - background: rgba(208, 135, 212, 0.9); -} -.graph .nodeContainer .graphAction.checkout { - background: rgba(205, 219, 55, 0.9); -} -.graph .nodeContainer .graphAction.delete { - background: rgba(214, 77, 56, 0.9); -} -.graph .nodeContainer .graphAction.cherry-pick { - background: rgba(110, 156, 110, 0.9); -} -.graph .nodeContainer .graphAction.uncommit { - background: rgba(158, 53, 20, 0.9); -} -.graph .nodeContainer .graphAction.revert { - background: rgba(179, 135, 43, 0.9); -} -.graph .nodeContainer .newRef { - opacity: 1; - padding-top: 2px; - padding-bottom: 2px; - margin-left: 5px; -} -.graph .nodeContainer .newRef .showBranchingForm { - background: transparent; - border: 0px; - cursor: pointer; - padding: 0px; - margin: 0px; - margin-top: 9px; - color: rgba(255, 255, 255, 0.3); -} -.graph .nodeContainer .newRef .showBranchingForm:hover { - color: rgba(255, 255, 255, 0.8); -} -.graph .nodeContainer .newRef .form-inline { - display: inline-block; -} -.graph .nodeContainer .newRef input.name { - width: 150px; -} -.graph .graphFooter { - height: 60px; -} -.graph .graphFooter .progressBar { - position: relative; - top: -150px; - margin-left: 400px; -} -.graph .remote-icon { - background: url('images/remoteIcon.png'); - width: 12px; - height: 10px; - display: inline-block; -} -.graph .branch-icon { - background: url('images/branchIcon.png'); - width: 9px; - height: 10px; - display: inline-block; -} -.graph .tag-icon { - background: url('images/tagIcon.png'); - width: 5px; - height: 10px; - display: inline-block; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.html deleted file mode 100644 index 2a32643c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.html +++ /dev/null @@ -1,65 +0,0 @@ - -
- - - -
-
-
- - -
- -
- - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - -
- - - -
- -
- - -
- -
-
-
- -
-
diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.js deleted file mode 100644 index 3c30dcdb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.js +++ /dev/null @@ -1,297 +0,0 @@ -var ko = require('knockout'); -var components = require('ungit-components'); -var GitNodeViewModel = require('./git-node'); -var GitRefViewModel = require('./git-ref'); -var _ = require('lodash'); -var moment = require('moment'); -var EdgeViewModel = require('./edge'); - -components.register('graph', function(args) { - return new GraphViewModel(args.server, args.repoPath); -}); - -function GraphViewModel(server, repoPath) { - var self = this; - this.repoPath = repoPath; - this.maxNNodes = 25; - this.server = server; - this.currentRemote = ko.observable(); - this.nodesLoader = components.create('progressBar', { - predictionMemoryKey: 'gitgraph-' + self.repoPath(), - fallbackPredictedTimeMs: 1000, - temporary: true - }); - this.nodes = ko.observableArray(); - this.edges = ko.observableArray(); - this.refs = ko.observableArray(); - this.nodesById = {}; - this.refsByRefName = {}; - this.checkedOutBranch = ko.observable(); - this.checkedOutRef = ko.computed(function() { - return self.checkedOutBranch() ? self.getRef('refs/heads/' + self.checkedOutBranch()) : null; - }); - this.HEADref = ko.observable(); - this.HEAD = ko.computed(function() { - return self.HEADref() ? self.HEADref().node() : undefined; - }); - this.commitNodeColor = ko.computed(function() { - return self.HEAD() ? self.HEAD().color() : '#4A4A4A'; - }); - this.commitNodeEdge = ko.computed(function() { - if (!self.HEAD() || !self.HEAD().cx() || !self.HEAD().cy()) return; - return "M 610 68 L " + self.HEAD().cx() + " " + self.HEAD().cy(); - }); - this.showCommitNode = ko.observable(false); - this.currentActionContext = ko.observable(); - this.edgesById = {}; - this.scrolledToEnd = _.debounce(function() { - self.maxNNodes = self.maxNNodes + 25; - self.loadNodesFromApi(); - }, 500, true); - this.dimCommit = ko.observable(false); - this.commitOpacity = ko.computed(function() { return self.dimCommit() ? 0.1 : 1; }); - this.heighstBranchOrder = 0; - this.hoverGraphActionGraphic = ko.observable(); - this.hoverGraphActionGraphic.subscribe(function(value) { - if (value && value.destroy) - value.destroy(); - }, null, 'beforeChange'); - - this.hoverGraphAction = ko.observable(); - this.hoverGraphAction.subscribe(function(value) { - if (value && value.createHoverGraphic) { - self.hoverGraphActionGraphic(value.createHoverGraphic()); - } else { - self.hoverGraphActionGraphic(null); - } - }); - - this.loadNodesFromApiThrottled = _.throttle(this.loadNodesFromApi.bind(this), 500); - this.updateBranchesThrottled = _.throttle(this.updateBranches.bind(this), 500); - this.loadNodesFromApiThrottled(); - this.updateBranchesThrottled(); - this.graphWidth = ko.observable(); - this.graphHeight = ko.observable(); -} - -GraphViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('graph', this, {}, parentElement); -} - -GraphViewModel.prototype.getNode = function(sha1, logEntry) { - var nodeViewModel = this.nodesById[sha1]; - if (!nodeViewModel) nodeViewModel = this.nodesById[sha1] = new GitNodeViewModel(this, sha1); - if (logEntry) nodeViewModel.setData(logEntry); - return nodeViewModel; -} -GraphViewModel.prototype.getRef = function(ref, constructIfUnavailable) { - if (constructIfUnavailable === undefined) constructIfUnavailable = true; - var refViewModel = this.refsByRefName[ref]; - if (!refViewModel && constructIfUnavailable) { - refViewModel = this.refsByRefName[ref] = new GitRefViewModel(ref, this); - this.refs.push(refViewModel); - if (refViewModel.name === 'HEAD') { - this.HEADref(refViewModel); - } - } - return refViewModel; -} - -GraphViewModel.prototype.loadNodesFromApi = function(callback) { - var self = this; - - this.nodesLoader.start(); - this.server.getPromise('/log', { path: this.repoPath(), limit: this.maxNNodes }) - .then(function(nodes) { - nodes = self.computeNode(nodes.map(function(logEntry) { - return self.getNode(logEntry.sha1, logEntry); - })); - - var edges = []; - nodes.forEach(function(node) { - node.parents().forEach(function(parentSha1) { - edges.push(self.getEdge(node.sha1, parentSha1)); - }); - node.render(); - }); - - self.edges(edges); - self.nodes(nodes); - - if (nodes.length > 0) { - self.graphHeight(nodes[nodes.length - 1].cy() + 80); - } - self.graphWidth(1000 + (self.heighstBranchOrder * 90)); - }).finally(function() { - self.nodesLoader.stop(); - if (callback) callback(); - }); -} - -GraphViewModel.prototype.traverseNodeLeftParents = function(node, callback) { - callback(node); - var parent = this.nodesById[node.parents()[0]]; - if (parent) { - this.traverseNodeLeftParents(parent, callback); - } -} - -GraphViewModel.prototype.computeNode = function(nodes) { - var self = this; - - if (!nodes) { - nodes = this.nodes(); - } - - this.markNodesIdeologicalBranches(this.refs(), nodes, this.nodesById); - - var updateTimeStamp = moment().valueOf(); - if (this.HEAD()) { - this.traverseNodeLeftParents(this.HEAD(), function(node) { - node.ancestorOfHEADTimeStamp = updateTimeStamp; - }); - } - - // Filter out nodes which doesn't have a branch (staging and orphaned nodes) - nodes = nodes.filter(function(node) { return (node.ideologicalBranch() && !node.ideologicalBranch().isStash) || node.ancestorOfHEADTimeStamp == updateTimeStamp; }) - - var branchSlots = []; - - // Then iterate from the bottom to fix the orders of the branches - for (var i = nodes.length - 1; i >= 0; i--) { - var node = nodes[i]; - if (node.ancestorOfHEADTimeStamp == updateTimeStamp) continue; - var ideologicalBranch = node.ideologicalBranch(); - - // First occurence of the branch, find an empty slot for the branch - if (ideologicalBranch.lastSlottedTimeStamp != updateTimeStamp) { - ideologicalBranch.lastSlottedTimeStamp = updateTimeStamp; - var slot = branchSlots.indexOf(undefined); - if (slot === -1) { - branchSlots.push(ideologicalBranch); - slot = branchSlots.length - 1; - } - ideologicalBranch.branchOrder = slot; - branchSlots[slot] = slot; - } - - node.branchOrder(ideologicalBranch.branchOrder); - self.heighstBranchOrder = Math.max(self.heighstBranchOrder, node.branchOrder()); - } - - var prevNode; - nodes.forEach(function(node) { - node.branchOrder(branchSlots.length - node.branchOrder()); - node.ancestorOfHEAD(node.ancestorOfHEADTimeStamp == updateTimeStamp); - node.aboveNode = prevNode; - if (prevNode) prevNode.belowNode = node; - prevNode = node; - }); - - return nodes; -} - -GraphViewModel.prototype.getEdge = function(nodeAsha1, nodeBsha1) { - var id = nodeAsha1 + '-' + nodeBsha1; - var edge = this.edgesById[id]; - if (!edge) { - edge = this.edgesById[id] = new EdgeViewModel(this, nodeAsha1, nodeBsha1); - } - return edge; -} - -GraphViewModel._markIdeologicalStamp = 0; -GraphViewModel.prototype.markNodesIdeologicalBranches = function(refs, nodes, nodesById) { - var self = this; - refs = refs.filter(function(r) { return !!r.node(); }); - refs = refs.sort(function(a, b) { - if (a.isLocal && !b.isLocal) return -1; - if (b.isLocal && !a.isLocal) return 1; - if (a.isBranch && !b.isBranch) return -1; - if (b.isBranch && !a.isBranch) return 1; - if (a.isHEAD && !b.isHEAD) return 1; - if (!a.isHEAD && b.isHEAD) return -1; - if (a.isStash && !b.isStash) return 1; - if (b.isStash && !a.isStash) return -1; - if (a.node() && a.node().date && b.node() && b.node().date) - return b.node().date - a.node().date; - return a.refName < b.refName ? -1 : 1; - }); - var stamp = GraphViewModel._markIdeologicalStamp++; - refs.forEach(function(ref) { - self.traverseNodeParents(ref.node(), function(node) { - if (node.stamp == stamp) return false; - node.stamp = stamp; - node.ideologicalBranch(ref); - return true; - }); - }); -} - -GraphViewModel.prototype.traverseNodeParents = function(node, callback) { - if (!callback(node)) return false; - for (var i = 0; i < node.parents().length; i++) { - // if parent, travers parent - var parent = this.nodesById[node.parents()[i]]; - if (parent) { - this.traverseNodeParents(parent, callback); - } - } -} - -GraphViewModel.prototype.handleBubbledClick = function(elem, event) { - // If the clicked element is bound to the current action context, - // then let's not deselect it. - if (ko.dataFor(event.target) === this.currentActionContext()) return; - if (this.currentActionContext() && this.currentActionContext() instanceof GitNodeViewModel) { - this.currentActionContext().toggleSelected(); - } else { - this.currentActionContext(null); - } - // If the click was on an input element, then let's allow the default action to proceed. - // This is especially needed since for some strange reason any submit (ie. enter in a textbox) - // will trigger a click event on the submit input of the form, which will end up here, - // and if we don't return true, then the submit event is never fired, breaking stuff. - if (event.target.nodeName === 'INPUT') return true; -} - -GraphViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'git-directory-changed') { - this.loadNodesFromApiThrottled(); - this.updateBranchesThrottled(); - } else if (event.event == 'request-app-content-refresh') { - this.loadNodesFromApiThrottled(); - } else if (event.event == 'remote-tags-update') { - this.setRemoteTags(event.tags); - } else if (event.event == 'current-remote-changed') { - this.currentRemote(event.newRemote); - } else if (event.event == 'graph-render') { - this.nodes().forEach(function(node) { - node.render(); - }); - } -} -GraphViewModel.prototype.updateBranches = function() { - var self = this; - this.server.get('/checkout', { path: this.repoPath() }, function(err, branch) { - if (err && err.errorCode == 'not-a-repository') return true; - if (err) return; - self.checkedOutBranch(branch); - }); -} -GraphViewModel.prototype.setRemoteTags = function(remoteTags) { - var self = this; - var nodeIdsToRemoteTags = {}; - remoteTags.forEach(function(ref) { - if (ref.name.indexOf('^{}') != -1) { - var tagRef = ref.name.slice(0, ref.name.length - '^{}'.length); - var name = 'remote-tag: ' + ref.remote + '/' + tagRef.split('/')[2]; - self.getRef(name).node(self.getNode(ref.sha1)); - } - }); -} -GraphViewModel.prototype.checkHeadMove = function(toNode) { - if (this.HEAD() === toNode) { - this.HEADref.node(toNode); - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.less b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.less deleted file mode 100644 index 3d4e1a8b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/graph.less +++ /dev/null @@ -1,197 +0,0 @@ - -@import "public/less/variables.less"; - -.graph { - position: relative; - display: inline-block; - width: 100%; - - .graphLog { - left: 575px; - } - - .nodeContainer { - position: absolute; - left: 30px; - top: 120px; - width: 100%; - - .commit-container { - position: absolute; - top: -43px; - } - - .rightSideContainer { - position: absolute; - display: flex; - margin-left: (@log-width-small + 40px); - top: -22px; - white-space: nowrap; - height: 40px; - } - .droparea { - margin: 8px 0px 4px 0px; - } - - .ref { - display: inline-block; - opacity: 0.6; - cursor: move; - margin: 7px 0px 4px 0px; - outline: none; - padding: 2px 5px 2px 5px; - border: 3px solid transparent; - border-radius: 10px; - transition: border-color 0.5s; - -webkit-transition: border-color 0.5s; - - &.dragging.focused { - border-color: transparent; - } - &.focused { - border-color: #fff; - } - - &.current { - font-weight: bold; - opacity: 1; - font-size: 20px; - margin-top: 2px; - margin-bottom: -2px; - .octicon { - font-size: 20px; - } - } - &.remote { - color: #5DB4FF; - } - &.tag { - color: #EEF266; - } - } - .graphAction { - color: #fff; - cursor: pointer; - opacity: 1; - transition: all 0.5s ease 0.2s; - -webkit-transition: all 0.5s ease 0.2s; - transition-property: opacity, max-width; - -webkit-transition-property: opacity, max-width; - margin-right: 2.5px; - margin-left: 2.5px; - overflow: hidden; - .icon { - &.flip { - -webkit-transform:rotate(-180deg); - -moz-transform:rotate(-180deg); - -o-transform:rotate(-180deg); - transform:rotate(-180deg); - } - &.octicon-git-merge,&.octicon-repo-forked, &.octicon-zap { - margin-left: 3px; - } - &.octicon-history { - margin-left: 2px; - } - &.glyphicon-remove,&.octicon-circuit-board { - margin-left: 1px; - } - margin-right: 6px; - } - &.droparea { - padding-left: 7px; - } - &.dimmed { - opacity: 0.5; - } - &.push { - background: rgba(61, 139, 255, 0.9); - } - &.pull { - background: rgba(38, 189, 189, 0.9); - } - &.reset { - background: rgba(255, 129, 31, 0.9); - } - &.rebase { - background: rgba(65, 222, 60, 0.9); - } - &.move { - width: auto; - background: rgba(0, 0, 0, 0.1); - } - &.merge { - background: rgba(208, 135, 212, 0.9); - } - &.checkout { - background: rgba(205, 219, 55, 0.9); - } - &.delete { - background: rgba(214, 77, 56, 0.9); - } - &.cherry-pick { - background: rgba(110, 156, 110, 0.9); - } - &.uncommit { - background: rgba(158, 53, 20, 0.9); - } - &.revert { - background: rgba(179, 135, 43, 0.9); - } - } - .newRef { - opacity: 1; - padding-top: 2px; - padding-bottom: 2px; - margin-left: 5px; - .showBranchingForm { - background: transparent; - border: 0px; - cursor: pointer; - padding: 0px; - margin: 0px; - margin-top: 9px; - color: rgba(255, 255, 255, 0.3); - &:hover { - color: rgba(255, 255, 255, 0.8); - } - } - .form-inline { - display: inline-block; - } - input.name { - width: 150px; - } - } - } - - .graphFooter { - height: 60px; - .progressBar { - position: relative; - top: -150px; - margin-left: (@log-width-small); - } - } - - .remote-icon { - background: url('images/remoteIcon.png'); - width: 12px; - height: 10px; - display: inline-block; - } - - .branch-icon { - background: url('images/branchIcon.png'); - width: 9px; - height: 10px; - display: inline-block; - } - - .tag-icon { - background: url('images/tagIcon.png'); - width: 5px; - height: 10px; - display: inline-block; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/hover-actions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/hover-actions.js deleted file mode 100644 index 4ce8c676..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/hover-actions.js +++ /dev/null @@ -1,77 +0,0 @@ -var getEdgeModelWithD = function(d, stroke, strokeWidth, strokeDasharray, markerEnd) { - return { d: d, - stroke: stroke ? stroke : '#4A4A4A', - strokeWidth: strokeWidth ? strokeWidth : '8', - strokeDasharray: strokeDasharray ? strokeDasharray : '10, 5', - markerEnd: markerEnd ? markerEnd : '' }; -} - -var getEdgeModel = function(scx, scy, tcx, tcy, stroke, strokeWidth, strokeDasharray, markerEnd) { - return getEdgeModelWithD("M " + scx + " " + scy + " L " + tcx + " " + tcy, stroke, strokeWidth, strokeDasharray, markerEnd); -} - -var getNodeModel = function(cx, cy, r, fill, stroke, strokeWidth, strokeDasharray) { - return { cx: cx, - cy: cy, - r: r, - fill: fill, - stroke: stroke ? stroke : '#41DE3C', - strokeWidth: strokeWidth ? strokeWidth : '8', - strokeDasharray: strokeDasharray ? strokeDasharray : '10, 5' }; -} - -function HoverViewModel() { - this.bgEdges = []; - this.nodes = []; - this.fgEdges = []; -} - -function MergeViewModel(graph, headNode, node) { - var self = this; - HoverViewModel.call(this); - this.graph = graph; - this.bgEdges = [ getEdgeModel(headNode.cx(), (headNode.cy() - 110), headNode.cx(), headNode.cy()), - getEdgeModel(headNode.cx(), (headNode.cy() - 110), node.cx(), node.cy()) ]; - this.nodes = [ getNodeModel(headNode.cx(), headNode.cy() - 110, Math.max(headNode.r(), node.r()), '#252833', '#41DE3C', '8', '10, 5') ]; - - graph.dimCommit(true); -} -exports.MergeViewModel = MergeViewModel; -MergeViewModel.prototype.destroy = function() { - this.graph.dimCommit(false); -} - -function RebaseViewModel(onto, nodesThatWillMove) { - var self = this; - HoverViewModel.call(this); - nodesThatWillMove = nodesThatWillMove.slice(0, -1); - - if (nodesThatWillMove.length == 0) return; - - this.bgEdges.push(getEdgeModel(onto.cx(), onto.cy(), onto.cx(), onto.cy() - 60)); - nodesThatWillMove.forEach(function(node, i) { - var cy = onto.cy() + (-90 * (i + 1)); - self.nodes.push(getNodeModel(onto.cx(), cy, 28, 'transparent')); - if (i + 1 < nodesThatWillMove.length) { - self.bgEdges.push(getEdgeModel(onto.cx(), (cy - 25), onto.cx(), (cy - 65))); - } - }); -} -exports.RebaseViewModel = RebaseViewModel; - -function ResetViewModel(nodes) { - var self = this; - HoverViewModel.call(this); - - nodes.forEach(function(node) { - self.fgEdges.push(getEdgeModelWithD(node.getLeftToRightStrike(), 'rgb(255, 129, 31)', '8', '0, 0')) - self.fgEdges.push(getEdgeModelWithD(node.getRightToLeftStrike(), 'rgb(255, 129, 31)', '8', '0, 0')); - }); -} -exports.ResetViewModel = ResetViewModel; - -function PushViewModel(fromNode, toNode) { - HoverViewModel.call(this); - this.fgEdges = [getEdgeModel(fromNode.cx(), fromNode.cy(), toNode.cx(), (toNode.cy() + 40), 'rgb(61, 139, 255)', '15', '10, 5', 'url(#pushArrowEnd)' )]; -} -exports.PushViewModel = PushViewModel; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/selectable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/selectable.js deleted file mode 100644 index e5977010..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/selectable.js +++ /dev/null @@ -1,19 +0,0 @@ -var ko = require('knockout'); - -var Selectable = function(graph) { - this.selected = ko.computed({ - read: function() { - return graph.currentActionContext() == this; - }, - write: function(val) { - // val is this if we're called from a click ko binding - if (val === this || val === true) { - graph.currentActionContext(this); - } else if (graph.currentActionContext() == this) { - graph.currentActionContext(null); - } - }, - owner: this - }); -}; -module.exports = Selectable; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/ungit-plugin.json deleted file mode 100644 index 7c3175a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/graph/ungit-plugin.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "graph": "graph.html", - "graphGraphics": "graph-graphics.html" - }, - "javascript": "graph.bundle.js", - "css": "graph.css" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/header.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/header.bundle.js deleted file mode 100644 index b82aa5e4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/header.bundle.js +++ /dev/null @@ -1,43 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o - - - - - - -
-
- - -
-
-
- -
- -
-
- - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/header.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/header.js deleted file mode 100644 index 3e47f72f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/header.js +++ /dev/null @@ -1,39 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); -var navigation = require('ungit-navigation'); -var programEvents = require('ungit-program-events'); - -components.register('header', function(args) { - return new HeaderViewModel(args.app); -}); - -function HeaderViewModel(app) { - var self = this; - this.app = app; - this.showBackButton = ko.observable(false); - this.path = ko.observable(); - this.currentVersion = ungit.version; - this.refreshButton = components.create('refreshbutton'); - this.showAddToRepoListButton = ko.computed(function() { - return self.path() && self.app.repoList().indexOf(self.path()) == -1; - }); -} -HeaderViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('header', this, {}, parentElement); -} -HeaderViewModel.prototype.submitPath = function() { - navigation.browseTo('repository?path=' + encodeURIComponent(this.path())); -} -HeaderViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'navigation-changed') { - this.showBackButton(event.path != ''); - if (event.path == '') this.path(''); - } else if (event.event == 'navigated-to-path') { - this.path(event.path); - } -} -HeaderViewModel.prototype.addCurrentPathToRepoList = function() { - programEvents.dispatch({ event: 'request-remember-repo', repoPath: this.path() }); - return true; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/header.less b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/header.less deleted file mode 100644 index 2b0eaa7f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/header.less +++ /dev/null @@ -1,75 +0,0 @@ - -.navbarPadder { - height: 81px; -} - -.navbar { - padding-top: 13px; - z-index: 5; - box-shadow: 0px 15px 15px #252833; - height: 81px; - - .backlink { - margin-left: 9px; - margin-top: 7px; - position: absolute; - color: #686868; - &:hover { - text-decoration: none; - color: #A5A5A5; - } - .glyphicon-arrow-left { - -webkit-transition: opacity 0.5s ease-in-out; - -moz-transition: opacity 0.5s ease-in-out; - transition: opacity 0.5s ease-in-out; - opacity: 0; - &.glyph-shown { - opacity: 1; - } - } - } - .form-container { - margin-left: 180px; - margin-right: 107px; - .path-input-form { - width: 100%; - position: relative; - .form-control { - font-size: 1.7em; - width: 100%; - } - .add-to-repolist { - position: absolute; - right: 4px; - top: 6px; - background: transparent; - border: 0px; - opacity: 0.3; - &:hover { - opacity: 0.8; - } - } - } - } - .arrowUp { - position: absolute; - bottom: 0px; - left: 300px; - height: 0px; - width: 0px; - border-bottom: 15px solid #242832; - border-right: 15px solid transparent; - border-left: 15px solid transparent; - } - .version { - position: absolute; - right: 5px; - bottom: 2px; - font-size: 12px; - } -} -.toolbar { - position: absolute; - right: 55px; - top: 13px; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/ungit-plugin.json deleted file mode 100644 index 9962e49e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/header/ungit-plugin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "header": "header.html" - }, - "javascript": "header.bundle.js", - "css": "header.css" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/home.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/home.bundle.js deleted file mode 100644 index 39df2783..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/home.bundle.js +++ /dev/null @@ -1,66 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o -
- -
-

Enter a path to a repository to get started!

- Then press the symbol to make it show up here. -
-
- - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/home.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/home.js deleted file mode 100644 index df64f1e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/home.js +++ /dev/null @@ -1,62 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); - -components.register('home', function(args) { - return new HomeViewModel(args.app); -}); - -function HomeRepositoryViewModel(home, path) { - this.home = home; - this.app = home.app; - this.server = this.app.server; - this.path = path; - this.title = path; - this.link = '/#/repository?path=' + encodeURIComponent(path); - this.pathRemoved = ko.observable(false); - this.remote = ko.observable('...'); - this.updateState(); -} -HomeRepositoryViewModel.prototype.updateState = function() { - var self = this; - this.server.get('/fs/exists?path=' + encodeURIComponent(this.path), undefined, function(err, exists) { - self.pathRemoved(!exists); - }); - this.server.get('/remotes/origin?path=' + encodeURIComponent(this.path), undefined, function(err, remote) { - if (err) { - self.remote(''); - return true; - } - self.remote(remote.address); - }); -} -HomeRepositoryViewModel.prototype.remove = function() { - this.app.repoList.remove(this.path); - this.home.update(); -} - -function HomeViewModel(app) { - var self = this; - this.app = app; - this.repos = ko.observableArray(); - this.showNux = ko.computed(function() { - return self.repos().length == 0; - }); -} -HomeViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('home', this, {}, parentElement); -} -HomeViewModel.prototype.template = 'home'; -HomeViewModel.prototype.shown = function() { - this.update(); -} -HomeViewModel.prototype.update = function() { - var self = this; - var reposByPath = {}; - this.repos().forEach(function(repo) { reposByPath[repo.path] = repo; }); - this.repos(this.app.repoList().sort().map(function(path) { - if (!reposByPath[path]) - reposByPath[path] = new HomeRepositoryViewModel(self, path); - return reposByPath[path]; - })); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/home.less b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/home.less deleted file mode 100644 index eaeb3678..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/home.less +++ /dev/null @@ -1,25 +0,0 @@ - -.home { - .nux { - text-align: center; - .logo-large { - margin-top: 20px; - margin-bottom: 50px; - } - } - .repository { - position: relative; - min-height: 62px; - &.path-removed { - .list-group-item-heading { - color: #CF5353; - } - } - .glyphicon { - color: #686868; - } - &:hover .glyphicon { - color: #A5A5A5; - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/ungit-plugin.json deleted file mode 100644 index 2543cef4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/home/ungit-plugin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "home": "home.html" - }, - "javascript": "home.bundle.js", - "css": "home.css" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/imagediff.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/imagediff.bundle.js deleted file mode 100644 index 657c5016..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/imagediff.bundle.js +++ /dev/null @@ -1,44 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o - -
- -
- - -
- -
- - -
-
-
- -
-
- -
-
- -
-
-
- - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/imagediff.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/imagediff.js deleted file mode 100644 index 4c9f9703..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/imagediff.js +++ /dev/null @@ -1,40 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); - -components.register('imagediff', function(args) { - return new ImageDiffViewModel(args); -}); - -var ImageDiffViewModel = function(args) { - var self = this; - this.filename = args.filename; - this.repoPath = args.repoPath; - this.isNew = ko.observable(false); - this.isRemoved = ko.observable(false); - this.sha1 = args.sha1; - this.state = ko.computed(function() { - if (self.isNew()) return 'new'; - if (self.isRemoved()) return 'removed'; - return 'changed'; - }); - this.oldImageSrc = ko.computed(function() { - return '/api/diff/image?path=' + encodeURIComponent(self.repoPath()) + '&filename=' + self.filename + '&version=' + (self.sha1 ? self.sha1 + '^': 'HEAD'); - }); - this.newImageSrc = ko.computed(function() { - return '/api/diff/image?path=' + encodeURIComponent(self.repoPath()) + '&filename=' + self.filename + '&version=' + (self.sha1 ? self.sha1: 'current'); - }); - this.isShowingDiffs = args.isShowingDiffs; -} -ImageDiffViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('imagediff', this, {}, parentElement); -} -ImageDiffViewModel.prototype.invalidateDiff = function(callback) { - if (callback) callback(); -} -ImageDiffViewModel.prototype.newImageError = function(data, event) { - this.isRemoved(true); -} -ImageDiffViewModel.prototype.oldImageError = function(data, event) { - this.isNew(true); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/imagediff.less b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/imagediff.less deleted file mode 100644 index d4df734f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/imagediff.less +++ /dev/null @@ -1,19 +0,0 @@ - -.imageDiff { - padding: 10px; - text-align: center; - .glyphicon-arrow-right { - font-size: 104px; - color: rgba(0, 0, 0, 0.3); - } -} - -.img-removed { - background-color: rgba(230, 70, 100, 0.2); - margin-top: 20px; -} - -.img-added { - background-color: rgba(70, 230, 100, 0.2); - margin-top: 20px; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/ungit-plugin.json deleted file mode 100644 index 6a4f3ce7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/imagediff/ungit-plugin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "imagediff": "imagediff.html" - }, - "javascript": "imagediff.bundle.js", - "css": "imagediff.css" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/login/login.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/login/login.bundle.js deleted file mode 100644 index cfb38799..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/login/login.bundle.js +++ /dev/null @@ -1,47 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o -
-
- - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/login/login.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/login/login.js deleted file mode 100644 index 8c63aefd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/login/login.js +++ /dev/null @@ -1,43 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); -var signals = require('signals'); - -components.register('login', function(args) { - return new LoginViewModel(args.server); -}); - -var LoginViewModel = function(server) { - var self = this; - this.server = server; - this.loggedIn = new signals.Signal(); - this.status = ko.observable('loading'); - this.username = ko.observable(); - this.password = ko.observable(); - this.loginError = ko.observable(); - this.server.get('/loggedin', undefined, function(err, status) { - if (status.loggedIn) { - self.loggedIn.dispatch(); - self.status('loggedIn'); - } - else self.status('login'); - }); -} -LoginViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('login', this, {}, parentElement); -} -LoginViewModel.prototype.login = function() { - var self = this; - this.server.post('/login', { username: this.username(), password: this.password() }, function(err, res) { - if (err) { - if (err.res.body.error) { - self.loginError(err.res.body.error); - return true; - } - } else { - self.loggedIn.dispatch(); - self.status('loggedIn'); - } - }); -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/login/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/login/ungit-plugin.json deleted file mode 100644 index dba0db70..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/login/ungit-plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "login": "login.html" - }, - "javascript": "login.bundle.js" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/path/path.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/path/path.bundle.js deleted file mode 100644 index e250b7cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/path/path.bundle.js +++ /dev/null @@ -1,109 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o - - -
- -
- - - -
-

Cloning...

- -
- - - -
-
-
- Directory '' created -
-

'' is not a repository

-

There is no repository at the selected path.

-
-
-
-
Create a new repository
-
- -
-
-
-
-
-
Clone a repository into a subfolder of ''
-
-
-
- - -
-
- - -
- -
-
-
-
-
-
- -
- - - -
-

Invalid path

-

"" doesn't seem to be a valid path.

-
- -
-
- - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/path/path.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/path/path.js deleted file mode 100644 index cc021d39..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/path/path.js +++ /dev/null @@ -1,105 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); -var addressParser = require('ungit-address-parser'); -var navigation = require('ungit-navigation'); -var programEvents = require('ungit-program-events'); - -components.register('path', function(args) { - return new PathViewModel(args.server, args.path); -}); - -var PathViewModel = function(server, path) { - var self = this; - this.server = server; - this.repoPath = ko.observable(path); - this.dirName = this.repoPath().replace('\\', '/') - .split('/') - .filter(function(s) { return s; }) - .slice(-1)[0] || '/'; - - this.status = ko.observable('loading'); - this.loadingProgressBar = components.create('progressBar', { predictionMemoryKey: 'path-loading-' + path }); - this.loadingProgressBar.start(); - this.cloningProgressBar = components.create('progressBar', { - predictionMemoryKey: 'path-cloning-' + path, - fallbackPredictedTimeMs: 10000 - }); - this.cloneUrl = ko.observable(); - this.showDirectoryCreatedAlert = ko.observable(false); - this.cloneDestinationImplicit = ko.computed(function() { - var defaultText = 'destination folder'; - if (!self.cloneUrl()) return defaultText; - - var parsedAddress = addressParser.parseAddress(self.cloneUrl()); - return parsedAddress.shortProject || defaultText; - }); - this.cloneDestination = ko.observable(); - this.repository = ko.observable(); -} -PathViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('path', this, {}, parentElement); -} -PathViewModel.prototype.template = 'path'; -PathViewModel.prototype.shown = function() { - this.updateStatus(); -} -PathViewModel.prototype.updateAnimationFrame = function(deltaT) { - if (this.repository()) - this.repository().updateAnimationFrame(deltaT); -} -PathViewModel.prototype.updateStatus = function() { - var self = this; - this.server.get('/quickstatus', { path: this.repoPath() }, function(err, status){ - self.loadingProgressBar.stop(); - if (err) return; - if (status.type == 'inited' || status.type == 'bare') { - if (self.repoPath() !== status.gitRootPath) { - self.repoPath(status.gitRootPath); - programEvents.dispatch({ event: 'navigated-to-path', path: self.repoPath() }); - programEvents.dispatch({ event: 'working-tree-changed' }); - } - self.status(status.type); - if (!self.repository()) { - self.repository(components.create('repository', { server: self.server, path: self })); - } - } else if (status.type == 'uninited' || status.type == 'no-such-path') { - self.status(status.type); - self.repository(null); - } - }); -} -PathViewModel.prototype.initRepository = function() { - var self = this; - this.server.post('/init', { path: this.repoPath() }, function(err, res) { - if (err) return; - self.updateStatus(); - }); -} -PathViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'request-credentials') this.cloningProgressBar.pause(); - else if (event.event == 'request-credentials-response') this.cloningProgressBar.unpause(); - else if (event.event == 'working-tree-changed') this.updateStatus(); - else if (event.event == 'request-app-content-refresh') this.updateStatus(); - - if (this.repository()) this.repository().onProgramEvent(event); -} -PathViewModel.prototype.cloneRepository = function() { - var self = this; - self.status('cloning'); - this.cloningProgressBar.start(); - var dest = this.cloneDestination() || this.cloneDestinationImplicit(); - - this.server.post('/clone', { path: this.repoPath(), url: this.cloneUrl(), destinationDir: dest }, function(err, res) { - self.cloningProgressBar.stop(); - if (err) return; - navigation.browseTo('repository?path=' + encodeURIComponent(res.path)); - }); -} -PathViewModel.prototype.createDir = function() { - var self = this; - this.showDirectoryCreatedAlert(true); - this.server.post('/createDir', { dir: this.repoPath() }, function() { - self.updateStatus(); - }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/path/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/path/ungit-plugin.json deleted file mode 100644 index 6d9d7a58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/path/ungit-plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "path": "path.html" - }, - "javascript": "path.bundle.js" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/progressBar/progressBar.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/progressBar/progressBar.bundle.js deleted file mode 100644 index 1b3fe3ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/progressBar/progressBar.bundle.js +++ /dev/null @@ -1,93 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/progressBar/progressBar.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/progressBar/progressBar.js deleted file mode 100644 index 3496c301..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/progressBar/progressBar.js +++ /dev/null @@ -1,89 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); - -components.register('progressBar', function(args) { - return new ProgressBarViewModel(args.predictionMemoryKey, args.fallbackPredictedTimeMs, args.temporary); -}); - -var ProgressBarViewModel = function(predictionMemoryKey, fallbackPredictedTimeMs, temporary) { - var self = this; - if (fallbackPredictedTimeMs === undefined) fallbackPredictedTimeMs = 1000; - this.temporary = temporary; - this.style = ko.observable(); - this.running = ko.observable(false); - self._width = ko.observable(0); - self._opacity = ko.observable(1); - self._widthSpeed = ko.observable(0); - self._opacitySpeed = ko.observable(0); - self._animationState = ko.observable('running'); - this.style = ko.computed(function() { - return 'width: ' + self._width() + '%; ' + - 'opacity: ' + self._opacity() + '; ' + - '-webkit-transition: width ' + self._widthSpeed() + 'ms, opacity ' + self._opacitySpeed() + 'ms;' + - 'transition: width ' + self._widthSpeed() + 'ms, opacity ' + self._opacitySpeed() + 'ms; ' + - 'animation-play-state: ' + self._animationState(); - }); - this.predictionMemoryKey = 'predict-' + predictionMemoryKey; - this.isFirstRun = ko.observable(false); - this.fallbackPredictedTimeMs = fallbackPredictedTimeMs; -} -ProgressBarViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate(this.temporary ? 'temporaryProgressBar' : 'progressBar', this, {}, parentElement); -} -ProgressBarViewModel.prototype.start = function() { - if (this.running()) return; - var self = this; - var predictionMs = localStorage.getItem(this.predictionMemoryKey); - if (!predictionMs || isNaN(predictionMs)) { - this.isFirstRun(true); - predictionMs = this.fallbackPredictedTimeMs; - } else { - predictionMs = parseInt(predictionMs); - } - this.predictionMs = predictionMs; - this._width(0); - this._opacity(1); - this._opacitySpeed(0); - this._widthSpeed(0); - this._animationState('running'); - this.running(true); - this.startMs = Date.now(); - this.pausedMs = 0; - setTimeout(function(){ - predictionMs = Math.max(500, predictionMs); - self._width(80); - self._widthSpeed(predictionMs); - }, 1); -} - -ProgressBarViewModel.prototype.pause = function() { - this._animationState('paused'); - this.pauseStartMs = Date.now(); -} -ProgressBarViewModel.prototype.unpause = function() { - this._animationState('running'); - this.pausedMs += Date.now() - this.pauseStartMs; -} -ProgressBarViewModel.prototype.stop = function() { - var self = this; - var elapsedMs = Date.now() - this.startMs - this.pausedMs; - var newPrediction; - if (self.isFirstRun()) { - self.isFirstRun(false); - newPrediction = elapsedMs; - } else { - newPrediction = elapsedMs * 0.1 + self.predictionMs * 0.9; - } - localStorage.setItem(self.predictionMemoryKey, newPrediction.toString()); - - self._width(100); - self._widthSpeed(300); - setTimeout(function() { - self._opacity(0); - self._opacitySpeed(300); - setTimeout(function() { - self.running(false); - }, 310); - }, 400); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/progressBar/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/progressBar/ungit-plugin.json deleted file mode 100644 index 738f0a1d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/progressBar/ungit-plugin.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "exports": { - "raw": "progressBar.html", - "javascript": "progressBar.bundle.js" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshButton.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshButton.css deleted file mode 100644 index 10269cdf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshButton.css +++ /dev/null @@ -1,12 +0,0 @@ -.toolbar .refresh-button { - background: rgba(0, 0, 0, 0.1); - border: 0px; - font-size: 22px; -} -.repository-actions .refresh-button { - background: #546565; - border: 0px; - font-size: 20px; - height: 34px; - padding-top: 3px; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshbutton.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshbutton.bundle.js deleted file mode 100644 index d534af7d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshbutton.bundle.js +++ /dev/null @@ -1,28 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshbutton.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshbutton.js deleted file mode 100644 index 3133d014..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshbutton.js +++ /dev/null @@ -1,24 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); -var programEvents = require('ungit-program-events'); - -components.register('refreshbutton', function() { - return new RefreshButton(); -}); - -function RefreshButton() { - this.refreshingProgressBar = components.create('progressBar', { predictionMemoryKey: 'refreshing-content', temporary: true }); -} -RefreshButton.prototype.refresh = function() { - var self = this; - programEvents.dispatch({ event: 'request-app-content-refresh' }); - this.refreshingProgressBar.start(); - setTimeout(function() { // Fake the progress bar, for now (since we don't really know who and when this message will be handled) - self.refreshingProgressBar.stop(); - }, 100); - return true; -} -RefreshButton.prototype.updateNode = function(parentElement) { - ko.renderTemplate('refreshbutton', this, {}, parentElement); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshbutton.less b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshbutton.less deleted file mode 100644 index b43fbfa2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/refreshbutton.less +++ /dev/null @@ -1,18 +0,0 @@ - -.toolbar { - .refresh-button { - background: rgba(0, 0, 0, 0.1); - border: 0px; - font-size: 22px; - } -} - -.repository-actions { - .refresh-button { - background: rgba(84, 101, 101, 1); - border: 0px; - font-size: 20px; - height: 34px; - padding-top: 3px; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/ungit-plugin.json deleted file mode 100644 index ba6fcfb1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/refreshButton/ungit-plugin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "refreshbutton": "refreshbutton.html" - }, - "javascript": "refreshbutton.bundle.js", - "css": "refreshbutton.css" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/remotes.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/remotes.bundle.js deleted file mode 100644 index 6c113cf0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/remotes.bundle.js +++ /dev/null @@ -1,119 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 0; - }); - - this.shouldAutoFetch = ungit.config.autoFetch; - this.updateRemotes(); -} -RemotesViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('remotes', this, {}, parentElement); -} -RemotesViewModel.prototype.clickFetch = function() { this.fetch({ nodes: true, tags: true }); } -RemotesViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'request-credentials') this.fetchingProgressBar.pause(); - else if (event.event == 'request-credentials-response') this.fetchingProgressBar.unpause(); - else if (event.event == 'request-fetch-tags') this.fetch({ tags: true }); -} -RemotesViewModel.prototype.fetch = function(options) { - if (this.fetchingProgressBar.running()) return; - var self = this; - - this.fetchingProgressBar.start(); - var jobs = []; - if (options.tags) jobs.push(function(done) { self.server.get('/remote/tags', { path: self.repoPath(), remote: self.currentRemote() }, done); }); - if (options.nodes) jobs.push(function(done) { self.server.post('/fetch', { path: self.repoPath(), remote: self.currentRemote() }, done); }); - async.parallel(jobs, function(err, result) { - self.fetchingProgressBar.stop(); - - if (!err && options.tags) programEvents.dispatch({ event: 'remote-tags-update', tags: result[0] }); - }); -} - -RemotesViewModel.prototype.updateRemotes = function() { - var self = this; - this.server.get('/remotes', { path: this.repoPath() }, function(err, remotes) { - if (err && err.errorCode == 'not-a-repository') return true; - if (err) return; - remotes = remotes.map(function(remote) { - return { - name: remote, - changeRemote: function() { self.currentRemote(remote) } - } - }); - self.remotes(remotes); - if (!self.currentRemote() && remotes.length > 0) { - if (_.find(remotes, { 'name': 'origin' })) // default to origin if it exists - self.currentRemote('origin'); - else // otherwise take the first one - self.currentRemote(remotes[0].name); - if (self.shouldAutoFetch) { - self.fetch({ nodes: true, tags: true }); - } - } - self.shouldAutoFetch = false; - }); -} -RemotesViewModel.prototype.showAddRemoteDialog = function() { - var self = this; - var diag = components.create('addremotedialog'); - diag.closed.add(function() { - if (diag.isSubmitted()) { - self.server.post('/remotes/' + encodeURIComponent(diag.name()), { path: self.repoPath(), url: diag.url() }, function(err, res) { - if (err) return; - self.updateRemotes(); - }) - } - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} - -RemotesViewModel.prototype.remoteRemove = function(remote) { - var self = this; - var diag = components.create('yesnodialog', { title: 'Are you sure?', details: 'Deleting ' + remote.name + ' remote cannot be undone with ungit.'}); - diag.closed.add(function() { - if (diag.result()) { - self.fetchingProgressBar.start(); - self.server.del('/remotes/' + remote.name, { path: self.repoPath() }, function(err, result) { - if (err) { - console.log(err); - return; - } - - self.updateRemotes(); - self.fetchingProgressBar.stop(); - }); - } - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} - -},{"async":"async","knockout":"knockout","lodash":"lodash","ungit-components":"ungit-components","ungit-program-events":"ungit-program-events"}]},{},[1]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJjb21wb25lbnRzL3JlbW90ZXMvcmVtb3Rlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiXG52YXIga28gPSByZXF1aXJlKCdrbm9ja291dCcpO1xudmFyIF8gPSByZXF1aXJlKCdsb2Rhc2gnKTtcbnZhciBhc3luYyA9IHJlcXVpcmUoJ2FzeW5jJyk7XG52YXIgY29tcG9uZW50cyA9IHJlcXVpcmUoJ3VuZ2l0LWNvbXBvbmVudHMnKTtcbnZhciBwcm9ncmFtRXZlbnRzID0gcmVxdWlyZSgndW5naXQtcHJvZ3JhbS1ldmVudHMnKTtcblxuY29tcG9uZW50cy5yZWdpc3RlcigncmVtb3RlcycsIGZ1bmN0aW9uKGFyZ3MpIHtcbiAgcmV0dXJuIG5ldyBSZW1vdGVzVmlld01vZGVsKGFyZ3Muc2VydmVyLCBhcmdzLnJlcG9QYXRoKTtcbn0pO1xuXG5mdW5jdGlvbiBSZW1vdGVzVmlld01vZGVsKHNlcnZlciwgcmVwb1BhdGgpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnJlcG9QYXRoID0gcmVwb1BhdGg7XG4gIHRoaXMuc2VydmVyID0gc2VydmVyO1xuICB0aGlzLnJlbW90ZXMgPSBrby5vYnNlcnZhYmxlKFtdKTtcbiAgdGhpcy5jdXJyZW50UmVtb3RlID0ga28ub2JzZXJ2YWJsZShudWxsKTtcbiAgdGhpcy5jdXJyZW50UmVtb3RlLnN1YnNjcmliZShmdW5jdGlvbih2YWx1ZSkge1xuICAgIHByb2dyYW1FdmVudHMuZGlzcGF0Y2goeyBldmVudDogJ2N1cnJlbnQtcmVtb3RlLWNoYW5nZWQnLCBuZXdSZW1vdGU6IHZhbHVlIH0pO1xuICB9KTtcbiAgdGhpcy5mZXRjaExhYmVsID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgaWYgKHNlbGYuY3VycmVudFJlbW90ZSgpKSByZXR1cm4gJ0ZldGNoIGZyb20gJyArIHNlbGYuY3VycmVudFJlbW90ZSgpO1xuICAgIGVsc2UgcmV0dXJuICdObyByZW1vdGVzIHNwZWNpZmllZCc7XG4gIH0pXG5cbiAgdGhpcy5mZXRjaGluZ1Byb2dyZXNzQmFyID0gY29tcG9uZW50cy5jcmVhdGUoJ3Byb2dyZXNzQmFyJywgeyBwcmVkaWN0aW9uTWVtb3J5S2V5OiAnZmV0Y2hpbmctJyArIHRoaXMucmVwb1BhdGgoKSwgdGVtcG9yYXJ5OiB0cnVlIH0pO1xuXG4gIHRoaXMuZmV0Y2hFbmFibGVkID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHNlbGYucmVtb3RlcygpLmxlbmd0aCA+IDA7XG4gIH0pO1xuXG4gIHRoaXMuc2hvdWxkQXV0b0ZldGNoID0gdW5naXQuY29uZmlnLmF1dG9GZXRjaDtcbiAgdGhpcy51cGRhdGVSZW1vdGVzKCk7XG59XG5SZW1vdGVzVmlld01vZGVsLnByb3RvdHlwZS51cGRhdGVOb2RlID0gZnVuY3Rpb24ocGFyZW50RWxlbWVudCkge1xuICBrby5yZW5kZXJUZW1wbGF0ZSgncmVtb3RlcycsIHRoaXMsIHt9LCBwYXJlbnRFbGVtZW50KTtcbn1cblJlbW90ZXNWaWV3TW9kZWwucHJvdG90eXBlLmNsaWNrRmV0Y2ggPSBmdW5jdGlvbigpIHsgdGhpcy5mZXRjaCh7IG5vZGVzOiB0cnVlLCB0YWdzOiB0cnVlIH0pOyB9XG5SZW1vdGVzVmlld01vZGVsLnByb3RvdHlwZS5vblByb2dyYW1FdmVudCA9IGZ1bmN0aW9uKGV2ZW50KSB7XG4gIGlmIChldmVudC5ldmVudCA9PSAncmVxdWVzdC1jcmVkZW50aWFscycpIHRoaXMuZmV0Y2hpbmdQcm9ncmVzc0Jhci5wYXVzZSgpO1xuICBlbHNlIGlmIChldmVudC5ldmVudCA9PSAncmVxdWVzdC1jcmVkZW50aWFscy1yZXNwb25zZScpIHRoaXMuZmV0Y2hpbmdQcm9ncmVzc0Jhci51bnBhdXNlKCk7XG4gIGVsc2UgaWYgKGV2ZW50LmV2ZW50ID09ICdyZXF1ZXN0LWZldGNoLXRhZ3MnKSB0aGlzLmZldGNoKHsgdGFnczogdHJ1ZSB9KTtcbn1cblJlbW90ZXNWaWV3TW9kZWwucHJvdG90eXBlLmZldGNoID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICBpZiAodGhpcy5mZXRjaGluZ1Byb2dyZXNzQmFyLnJ1bm5pbmcoKSkgcmV0dXJuO1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgdGhpcy5mZXRjaGluZ1Byb2dyZXNzQmFyLnN0YXJ0KCk7XG4gIHZhciBqb2JzID0gW107XG4gIGlmIChvcHRpb25zLnRhZ3MpIGpvYnMucHVzaChmdW5jdGlvbihkb25lKSB7IHNlbGYuc2VydmVyLmdldCgnL3JlbW90ZS90YWdzJywgeyBwYXRoOiBzZWxmLnJlcG9QYXRoKCksIHJlbW90ZTogc2VsZi5jdXJyZW50UmVtb3RlKCkgfSwgZG9uZSk7IH0pO1xuICBpZiAob3B0aW9ucy5ub2Rlcykgam9icy5wdXNoKGZ1bmN0aW9uKGRvbmUpIHsgc2VsZi5zZXJ2ZXIucG9zdCgnL2ZldGNoJywgeyBwYXRoOiBzZWxmLnJlcG9QYXRoKCksIHJlbW90ZTogc2VsZi5jdXJyZW50UmVtb3RlKCkgfSwgZG9uZSk7ICB9KTtcbiAgYXN5bmMucGFyYWxsZWwoam9icywgZnVuY3Rpb24oZXJyLCByZXN1bHQpIHtcbiAgICBzZWxmLmZldGNoaW5nUHJvZ3Jlc3NCYXIuc3RvcCgpO1xuXG4gICAgaWYgKCFlcnIgJiYgb3B0aW9ucy50YWdzKSBwcm9ncmFtRXZlbnRzLmRpc3BhdGNoKHsgZXZlbnQ6ICdyZW1vdGUtdGFncy11cGRhdGUnLCB0YWdzOiByZXN1bHRbMF0gfSk7XG4gIH0pO1xufVxuXG5SZW1vdGVzVmlld01vZGVsLnByb3RvdHlwZS51cGRhdGVSZW1vdGVzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5zZXJ2ZXIuZ2V0KCcvcmVtb3RlcycsIHsgcGF0aDogdGhpcy5yZXBvUGF0aCgpIH0sIGZ1bmN0aW9uKGVyciwgcmVtb3Rlcykge1xuICAgIGlmIChlcnIgJiYgZXJyLmVycm9yQ29kZSA9PSAnbm90LWEtcmVwb3NpdG9yeScpIHJldHVybiB0cnVlO1xuICAgIGlmIChlcnIpIHJldHVybjtcbiAgICByZW1vdGVzID0gcmVtb3Rlcy5tYXAoZnVuY3Rpb24ocmVtb3RlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiByZW1vdGUsXG4gICAgICAgIGNoYW5nZVJlbW90ZTogZnVuY3Rpb24oKSB7IHNlbGYuY3VycmVudFJlbW90ZShyZW1vdGUpIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBzZWxmLnJlbW90ZXMocmVtb3Rlcyk7XG4gICAgaWYgKCFzZWxmLmN1cnJlbnRSZW1vdGUoKSAmJiByZW1vdGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmIChfLmZpbmQocmVtb3RlcywgeyAnbmFtZSc6ICdvcmlnaW4nIH0pKSAvLyBkZWZhdWx0IHRvIG9yaWdpbiBpZiBpdCBleGlzdHNcbiAgICAgICAgc2VsZi5jdXJyZW50UmVtb3RlKCdvcmlnaW4nKTtcbiAgICAgIGVsc2UgLy8gb3RoZXJ3aXNlIHRha2UgdGhlIGZpcnN0IG9uZVxuICAgICAgICBzZWxmLmN1cnJlbnRSZW1vdGUocmVtb3Rlc1swXS5uYW1lKTtcbiAgICAgIGlmIChzZWxmLnNob3VsZEF1dG9GZXRjaCkge1xuICAgICAgICBzZWxmLmZldGNoKHsgbm9kZXM6IHRydWUsIHRhZ3M6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNlbGYuc2hvdWxkQXV0b0ZldGNoID0gZmFsc2U7XG4gIH0pO1xufVxuUmVtb3Rlc1ZpZXdNb2RlbC5wcm90b3R5cGUuc2hvd0FkZFJlbW90ZURpYWxvZyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBkaWFnID0gY29tcG9uZW50cy5jcmVhdGUoJ2FkZHJlbW90ZWRpYWxvZycpO1xuICBkaWFnLmNsb3NlZC5hZGQoZnVuY3Rpb24oKSB7XG4gICAgaWYgKGRpYWcuaXNTdWJtaXR0ZWQoKSkge1xuICAgICAgc2VsZi5zZXJ2ZXIucG9zdCgnL3JlbW90ZXMvJyArIGVuY29kZVVSSUNvbXBvbmVudChkaWFnLm5hbWUoKSksIHsgcGF0aDogc2VsZi5yZXBvUGF0aCgpLCB1cmw6IGRpYWcudXJsKCkgfSwgZnVuY3Rpb24oZXJyLCByZXMpIHtcbiAgICAgICAgaWYgKGVycikgcmV0dXJuO1xuICAgICAgICBzZWxmLnVwZGF0ZVJlbW90ZXMoKTtcbiAgICAgIH0pXG4gICAgfVxuICB9KTtcbiAgcHJvZ3JhbUV2ZW50cy5kaXNwYXRjaCh7IGV2ZW50OiAncmVxdWVzdC1zaG93LWRpYWxvZycsIGRpYWxvZzogZGlhZyB9KTtcbn1cblxuUmVtb3Rlc1ZpZXdNb2RlbC5wcm90b3R5cGUucmVtb3RlUmVtb3ZlID0gZnVuY3Rpb24ocmVtb3RlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGRpYWcgPSBjb21wb25lbnRzLmNyZWF0ZSgneWVzbm9kaWFsb2cnLCB7IHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsIGRldGFpbHM6ICdEZWxldGluZyAnICsgcmVtb3RlLm5hbWUgKyAnIHJlbW90ZSBjYW5ub3QgYmUgdW5kb25lIHdpdGggdW5naXQuJ30pO1xuICBkaWFnLmNsb3NlZC5hZGQoZnVuY3Rpb24oKSB7XG4gICAgaWYgKGRpYWcucmVzdWx0KCkpIHtcbiAgICAgIHNlbGYuZmV0Y2hpbmdQcm9ncmVzc0Jhci5zdGFydCgpO1xuICAgICAgc2VsZi5zZXJ2ZXIuZGVsKCcvcmVtb3Rlcy8nICsgcmVtb3RlLm5hbWUsIHsgcGF0aDogc2VsZi5yZXBvUGF0aCgpIH0sIGZ1bmN0aW9uKGVyciwgcmVzdWx0KSB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGYudXBkYXRlUmVtb3RlcygpO1xuICAgICAgICBzZWxmLmZldGNoaW5nUHJvZ3Jlc3NCYXIuc3RvcCgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbiAgcHJvZ3JhbUV2ZW50cy5kaXNwYXRjaCh7IGV2ZW50OiAncmVxdWVzdC1zaG93LWRpYWxvZycsIGRpYWxvZzogZGlhZyB9KTtcbn1cbiJdfQ== diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/remotes.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/remotes.html deleted file mode 100644 index 028c6cbc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/remotes.html +++ /dev/null @@ -1,20 +0,0 @@ -
- - - -
diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/remotes.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/remotes.js deleted file mode 100644 index e8f3720e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/remotes.js +++ /dev/null @@ -1,115 +0,0 @@ - -var ko = require('knockout'); -var _ = require('lodash'); -var async = require('async'); -var components = require('ungit-components'); -var programEvents = require('ungit-program-events'); - -components.register('remotes', function(args) { - return new RemotesViewModel(args.server, args.repoPath); -}); - -function RemotesViewModel(server, repoPath) { - var self = this; - this.repoPath = repoPath; - this.server = server; - this.remotes = ko.observable([]); - this.currentRemote = ko.observable(null); - this.currentRemote.subscribe(function(value) { - programEvents.dispatch({ event: 'current-remote-changed', newRemote: value }); - }); - this.fetchLabel = ko.computed(function() { - if (self.currentRemote()) return 'Fetch from ' + self.currentRemote(); - else return 'No remotes specified'; - }) - - this.fetchingProgressBar = components.create('progressBar', { predictionMemoryKey: 'fetching-' + this.repoPath(), temporary: true }); - - this.fetchEnabled = ko.computed(function() { - return self.remotes().length > 0; - }); - - this.shouldAutoFetch = ungit.config.autoFetch; - this.updateRemotes(); -} -RemotesViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('remotes', this, {}, parentElement); -} -RemotesViewModel.prototype.clickFetch = function() { this.fetch({ nodes: true, tags: true }); } -RemotesViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'request-credentials') this.fetchingProgressBar.pause(); - else if (event.event == 'request-credentials-response') this.fetchingProgressBar.unpause(); - else if (event.event == 'request-fetch-tags') this.fetch({ tags: true }); -} -RemotesViewModel.prototype.fetch = function(options) { - if (this.fetchingProgressBar.running()) return; - var self = this; - - this.fetchingProgressBar.start(); - var jobs = []; - if (options.tags) jobs.push(function(done) { self.server.get('/remote/tags', { path: self.repoPath(), remote: self.currentRemote() }, done); }); - if (options.nodes) jobs.push(function(done) { self.server.post('/fetch', { path: self.repoPath(), remote: self.currentRemote() }, done); }); - async.parallel(jobs, function(err, result) { - self.fetchingProgressBar.stop(); - - if (!err && options.tags) programEvents.dispatch({ event: 'remote-tags-update', tags: result[0] }); - }); -} - -RemotesViewModel.prototype.updateRemotes = function() { - var self = this; - this.server.get('/remotes', { path: this.repoPath() }, function(err, remotes) { - if (err && err.errorCode == 'not-a-repository') return true; - if (err) return; - remotes = remotes.map(function(remote) { - return { - name: remote, - changeRemote: function() { self.currentRemote(remote) } - } - }); - self.remotes(remotes); - if (!self.currentRemote() && remotes.length > 0) { - if (_.find(remotes, { 'name': 'origin' })) // default to origin if it exists - self.currentRemote('origin'); - else // otherwise take the first one - self.currentRemote(remotes[0].name); - if (self.shouldAutoFetch) { - self.fetch({ nodes: true, tags: true }); - } - } - self.shouldAutoFetch = false; - }); -} -RemotesViewModel.prototype.showAddRemoteDialog = function() { - var self = this; - var diag = components.create('addremotedialog'); - diag.closed.add(function() { - if (diag.isSubmitted()) { - self.server.post('/remotes/' + encodeURIComponent(diag.name()), { path: self.repoPath(), url: diag.url() }, function(err, res) { - if (err) return; - self.updateRemotes(); - }) - } - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} - -RemotesViewModel.prototype.remoteRemove = function(remote) { - var self = this; - var diag = components.create('yesnodialog', { title: 'Are you sure?', details: 'Deleting ' + remote.name + ' remote cannot be undone with ungit.'}); - diag.closed.add(function() { - if (diag.result()) { - self.fetchingProgressBar.start(); - self.server.del('/remotes/' + remote.name, { path: self.repoPath() }, function(err, result) { - if (err) { - console.log(err); - return; - } - - self.updateRemotes(); - self.fetchingProgressBar.stop(); - }); - } - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/ungit-plugin.json deleted file mode 100644 index 33f077bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/remotes/ungit-plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "remotes": "remotes.html" - }, - "javascript": "remotes.bundle.js" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.bundle.js deleted file mode 100644 index d7e39bd0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.bundle.js +++ /dev/null @@ -1,86 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0) { - this.refreshButton = components.create('refreshbutton'); - } else { - this.refreshButton = false; - } -} -RepositoryViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('repository', this, {}, parentElement); -} -RepositoryViewModel.prototype.onProgramEvent = function(event) { - if (this.gitErrors.onProgramEvent) this.gitErrors.onProgramEvent(event); - if (this.graph.onProgramEvent) this.graph.onProgramEvent(event); - if (this.staging.onProgramEvent) this.staging.onProgramEvent(event); - if (this.stash.onProgramEvent) this.stash.onProgramEvent(event); - if (this.remotes.onProgramEvent) this.remotes.onProgramEvent(event); - if (this.submodules.onProgramEvent) this.submodules.onProgramEvent(event); - if (this.branches.onProgramEvent) this.branches.onProgramEvent(event); - if (event.event == 'connected') this.server.watchRepository(this.repoPath()); - - // If we get a reconnect event it's usually because the server crashed and then restarted - // or something like that, so we need to tell it to start watching the path again -} -RepositoryViewModel.prototype.updateAnimationFrame = function(deltaT) { - if (this.graph.updateAnimationFrame) this.graph.updateAnimationFrame(deltaT); -} -RepositoryViewModel.prototype.refreshSubmoduleStatus = function() { - var self = this; - this.server.get('/baserepopath', { path: this.repoPath() }, function(err, baseRepoPath) { - if (err || !baseRepoPath.path) { - self.isSubmodule(false); - return true; - } - - self.server.get('/submodules', { path: baseRepoPath.path }, function(err, submodules) { - if (!err && Array.isArray(submodules)) { - var baseName = self.repoPath().replace(/^.*[\\\/]/, ''); - - for (var n = 0; n < submodules.length; n++) { - if (submodules[n].path === baseName) { - self.isSubmodule(true); - self.parentModulePath(baseRepoPath.path); - self.parentModuleLink('/#/repository?path=' + encodeURIComponent(baseRepoPath.path)); - return; - } - } - } - - self.isSubmodule(false); - return true; - }); - }); -} - -},{"async":"async","knockout":"knockout","lodash":"lodash","ungit-components":"ungit-components"}]},{},[1]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJjb21wb25lbnRzL3JlcG9zaXRvcnkvcmVwb3NpdG9yeS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiXG52YXIga28gPSByZXF1aXJlKCdrbm9ja291dCcpO1xudmFyIGNvbXBvbmVudHMgPSByZXF1aXJlKCd1bmdpdC1jb21wb25lbnRzJyk7XG52YXIgYXN5bmMgPSByZXF1aXJlKCdhc3luYycpO1xudmFyIF8gPSByZXF1aXJlKCdsb2Rhc2gnKTtcblxuY29tcG9uZW50cy5yZWdpc3RlcigncmVwb3NpdG9yeScsIGZ1bmN0aW9uKGFyZ3MpIHtcbiAgcmV0dXJuIG5ldyBSZXBvc2l0b3J5Vmlld01vZGVsKGFyZ3Muc2VydmVyLCBhcmdzLnBhdGgpO1xufSk7XG5cbnZhciBSZXBvc2l0b3J5Vmlld01vZGVsID0gZnVuY3Rpb24oc2VydmVyLCBwYXRoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICB0aGlzLnNlcnZlciA9IHNlcnZlcjtcbiAgdGhpcy5pc0JhcmVEaXIgPSBwYXRoLnN0YXR1cygpID09PSAnYmFyZSc7XG4gIHRoaXMucmVwb1BhdGggPSBwYXRoLnJlcG9QYXRoO1xuICB0aGlzLmdpdEVycm9ycyA9IGNvbXBvbmVudHMuY3JlYXRlKCdnaXRFcnJvcnMnLCB7IHNlcnZlcjogc2VydmVyLCByZXBvUGF0aDogdGhpcy5yZXBvUGF0aCB9KTtcbiAgdGhpcy5ncmFwaCA9IGNvbXBvbmVudHMuY3JlYXRlKCdncmFwaCcsIHsgc2VydmVyOiBzZXJ2ZXIsIHJlcG9QYXRoOiB0aGlzLnJlcG9QYXRoIH0pO1xuICB0aGlzLnJlbW90ZXMgPSBjb21wb25lbnRzLmNyZWF0ZSgncmVtb3RlcycsIHsgc2VydmVyOiBzZXJ2ZXIsIHJlcG9QYXRoOiB0aGlzLnJlcG9QYXRoIH0pO1xuICB0aGlzLnN1Ym1vZHVsZXMgPSBjb21wb25lbnRzLmNyZWF0ZSgnc3VibW9kdWxlcycsIHsgc2VydmVyOiBzZXJ2ZXIsIHJlcG9QYXRoOiB0aGlzLnJlcG9QYXRoIH0pO1xuICB0aGlzLnN0YXNoID0gdGhpcy5pc0JhcmVEaXIgPyB7fSA6IGNvbXBvbmVudHMuY3JlYXRlKCdzdGFzaCcsIHsgc2VydmVyOiBzZXJ2ZXIsIHJlcG9QYXRoOiB0aGlzLnJlcG9QYXRoIH0pO1xuICB0aGlzLnN0YWdpbmcgPSB0aGlzLmlzQmFyZURpciA/IHt9IDogY29tcG9uZW50cy5jcmVhdGUoJ3N0YWdpbmcnLCB7IHNlcnZlcjogc2VydmVyLCByZXBvUGF0aDogdGhpcy5yZXBvUGF0aCB9KTtcbiAgdGhpcy5icmFuY2hlcyA9IGNvbXBvbmVudHMuY3JlYXRlKCdicmFuY2hlcycsIHsgc2VydmVyOiBzZXJ2ZXIsIHJlcG9QYXRoOiB0aGlzLnJlcG9QYXRoIH0pO1xuICB0aGlzLnJlcG9QYXRoLnN1YnNjcmliZShmdW5jdGlvbih2YWx1ZSkgeyBzZWxmLnNldmVyLndhdGNoUmVwb3NpdG9yeSh2YWx1ZSk7IH0pO1xuICB0aGlzLnNlcnZlci53YXRjaFJlcG9zaXRvcnkodGhpcy5yZXBvUGF0aCgpKTtcbiAgdGhpcy5zaG93TG9nID0gc2VsZi5pc0JhcmVEaXIgPyBrby5vYnNlcnZhYmxlKHRydWUpIDogc2VsZi5zdGFnaW5nLmlzU3RhZ2VWYWxpZDtcbiAgdGhpcy5pc1N1Ym1vZHVsZSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICB0aGlzLnBhcmVudE1vZHVsZVBhdGggPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMucGFyZW50TW9kdWxlTGluayA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5yZWZyZXNoU3VibW9kdWxlU3RhdHVzKCk7XG4gIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoJ25vaGVhZGVyPXRydWUnKSA+PSAwKSB7XG4gICAgdGhpcy5yZWZyZXNoQnV0dG9uID0gY29tcG9uZW50cy5jcmVhdGUoJ3JlZnJlc2hidXR0b24nKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnJlZnJlc2hCdXR0b24gPSBmYWxzZTtcbiAgfVxufVxuUmVwb3NpdG9yeVZpZXdNb2RlbC5wcm90b3R5cGUudXBkYXRlTm9kZSA9IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpIHtcbiAga28ucmVuZGVyVGVtcGxhdGUoJ3JlcG9zaXRvcnknLCB0aGlzLCB7fSwgcGFyZW50RWxlbWVudCk7XG59XG5SZXBvc2l0b3J5Vmlld01vZGVsLnByb3RvdHlwZS5vblByb2dyYW1FdmVudCA9IGZ1bmN0aW9uKGV2ZW50KSB7XG4gIGlmICh0aGlzLmdpdEVycm9ycy5vblByb2dyYW1FdmVudCkgdGhpcy5naXRFcnJvcnMub25Qcm9ncmFtRXZlbnQoZXZlbnQpO1xuICBpZiAodGhpcy5ncmFwaC5vblByb2dyYW1FdmVudCkgdGhpcy5ncmFwaC5vblByb2dyYW1FdmVudChldmVudCk7XG4gIGlmICh0aGlzLnN0YWdpbmcub25Qcm9ncmFtRXZlbnQpIHRoaXMuc3RhZ2luZy5vblByb2dyYW1FdmVudChldmVudCk7XG4gIGlmICh0aGlzLnN0YXNoLm9uUHJvZ3JhbUV2ZW50KSB0aGlzLnN0YXNoLm9uUHJvZ3JhbUV2ZW50KGV2ZW50KTtcbiAgaWYgKHRoaXMucmVtb3Rlcy5vblByb2dyYW1FdmVudCkgdGhpcy5yZW1vdGVzLm9uUHJvZ3JhbUV2ZW50KGV2ZW50KTtcbiAgaWYgKHRoaXMuc3VibW9kdWxlcy5vblByb2dyYW1FdmVudCkgdGhpcy5zdWJtb2R1bGVzLm9uUHJvZ3JhbUV2ZW50KGV2ZW50KTtcbiAgaWYgKHRoaXMuYnJhbmNoZXMub25Qcm9ncmFtRXZlbnQpIHRoaXMuYnJhbmNoZXMub25Qcm9ncmFtRXZlbnQoZXZlbnQpO1xuICBpZiAoZXZlbnQuZXZlbnQgPT0gJ2Nvbm5lY3RlZCcpIHRoaXMuc2VydmVyLndhdGNoUmVwb3NpdG9yeSh0aGlzLnJlcG9QYXRoKCkpO1xuXG4gIC8vIElmIHdlIGdldCBhIHJlY29ubmVjdCBldmVudCBpdCdzIHVzdWFsbHkgYmVjYXVzZSB0aGUgc2VydmVyIGNyYXNoZWQgYW5kIHRoZW4gcmVzdGFydGVkXG4gIC8vIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQsIHNvIHdlIG5lZWQgdG8gdGVsbCBpdCB0byBzdGFydCB3YXRjaGluZyB0aGUgcGF0aCBhZ2FpblxufVxuUmVwb3NpdG9yeVZpZXdNb2RlbC5wcm90b3R5cGUudXBkYXRlQW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbihkZWx0YVQpIHtcbiAgaWYgKHRoaXMuZ3JhcGgudXBkYXRlQW5pbWF0aW9uRnJhbWUpIHRoaXMuZ3JhcGgudXBkYXRlQW5pbWF0aW9uRnJhbWUoZGVsdGFUKTtcbn1cblJlcG9zaXRvcnlWaWV3TW9kZWwucHJvdG90eXBlLnJlZnJlc2hTdWJtb2R1bGVTdGF0dXMgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnNlcnZlci5nZXQoJy9iYXNlcmVwb3BhdGgnLCB7IHBhdGg6IHRoaXMucmVwb1BhdGgoKSB9LCBmdW5jdGlvbihlcnIsIGJhc2VSZXBvUGF0aCkge1xuICAgIGlmIChlcnIgfHwgIWJhc2VSZXBvUGF0aC5wYXRoKSB7XG4gICAgICBzZWxmLmlzU3VibW9kdWxlKGZhbHNlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHNlbGYuc2VydmVyLmdldCgnL3N1Ym1vZHVsZXMnLCB7IHBhdGg6IGJhc2VSZXBvUGF0aC5wYXRoIH0sIGZ1bmN0aW9uKGVyciwgc3VibW9kdWxlcykge1xuICAgICAgaWYgKCFlcnIgJiYgQXJyYXkuaXNBcnJheShzdWJtb2R1bGVzKSkge1xuICAgICAgICB2YXIgYmFzZU5hbWUgPSBzZWxmLnJlcG9QYXRoKCkucmVwbGFjZSgvXi4qW1xcXFxcXC9dLywgJycpO1xuXG4gICAgICAgIGZvciAodmFyIG4gPSAwOyBuIDwgc3VibW9kdWxlcy5sZW5ndGg7IG4rKykge1xuICAgICAgICAgIGlmIChzdWJtb2R1bGVzW25dLnBhdGggPT09IGJhc2VOYW1lKSB7XG4gICAgICAgICAgICBzZWxmLmlzU3VibW9kdWxlKHRydWUpO1xuICAgICAgICAgICAgc2VsZi5wYXJlbnRNb2R1bGVQYXRoKGJhc2VSZXBvUGF0aC5wYXRoKTtcbiAgICAgICAgICAgIHNlbGYucGFyZW50TW9kdWxlTGluaygnLyMvcmVwb3NpdG9yeT9wYXRoPScgKyBlbmNvZGVVUklDb21wb25lbnQoYmFzZVJlcG9QYXRoLnBhdGgpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc2VsZi5pc1N1Ym1vZHVsZShmYWxzZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0= diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.css deleted file mode 100644 index f902aa8a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.css +++ /dev/null @@ -1,6 +0,0 @@ -.repository-view { - position: relative; - height: auto; - margin-bottom: 1px; - padding-bottom: 1px; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.html deleted file mode 100644 index bd090187..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.html +++ /dev/null @@ -1,35 +0,0 @@ -
- - - - -
-

This is a submodule

- Base repository: -
- - - - - - - -

in progress resolve conflicts to continue

- - - - -
- - - - - - -
- - - - - -
diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.js deleted file mode 100644 index 75b3b9e2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.js +++ /dev/null @@ -1,82 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); -var async = require('async'); -var _ = require('lodash'); - -components.register('repository', function(args) { - return new RepositoryViewModel(args.server, args.path); -}); - -var RepositoryViewModel = function(server, path) { - var self = this; - - this.server = server; - this.isBareDir = path.status() === 'bare'; - this.repoPath = path.repoPath; - this.gitErrors = components.create('gitErrors', { server: server, repoPath: this.repoPath }); - this.graph = components.create('graph', { server: server, repoPath: this.repoPath }); - this.remotes = components.create('remotes', { server: server, repoPath: this.repoPath }); - this.submodules = components.create('submodules', { server: server, repoPath: this.repoPath }); - this.stash = this.isBareDir ? {} : components.create('stash', { server: server, repoPath: this.repoPath }); - this.staging = this.isBareDir ? {} : components.create('staging', { server: server, repoPath: this.repoPath }); - this.branches = components.create('branches', { server: server, repoPath: this.repoPath }); - this.repoPath.subscribe(function(value) { self.sever.watchRepository(value); }); - this.server.watchRepository(this.repoPath()); - this.showLog = self.isBareDir ? ko.observable(true) : self.staging.isStageValid; - this.isSubmodule = ko.observable(false); - this.parentModulePath = ko.observable(); - this.parentModuleLink = ko.observable(); - this.refreshSubmoduleStatus(); - if (window.location.search.indexOf('noheader=true') >= 0) { - this.refreshButton = components.create('refreshbutton'); - } else { - this.refreshButton = false; - } -} -RepositoryViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('repository', this, {}, parentElement); -} -RepositoryViewModel.prototype.onProgramEvent = function(event) { - if (this.gitErrors.onProgramEvent) this.gitErrors.onProgramEvent(event); - if (this.graph.onProgramEvent) this.graph.onProgramEvent(event); - if (this.staging.onProgramEvent) this.staging.onProgramEvent(event); - if (this.stash.onProgramEvent) this.stash.onProgramEvent(event); - if (this.remotes.onProgramEvent) this.remotes.onProgramEvent(event); - if (this.submodules.onProgramEvent) this.submodules.onProgramEvent(event); - if (this.branches.onProgramEvent) this.branches.onProgramEvent(event); - if (event.event == 'connected') this.server.watchRepository(this.repoPath()); - - // If we get a reconnect event it's usually because the server crashed and then restarted - // or something like that, so we need to tell it to start watching the path again -} -RepositoryViewModel.prototype.updateAnimationFrame = function(deltaT) { - if (this.graph.updateAnimationFrame) this.graph.updateAnimationFrame(deltaT); -} -RepositoryViewModel.prototype.refreshSubmoduleStatus = function() { - var self = this; - this.server.get('/baserepopath', { path: this.repoPath() }, function(err, baseRepoPath) { - if (err || !baseRepoPath.path) { - self.isSubmodule(false); - return true; - } - - self.server.get('/submodules', { path: baseRepoPath.path }, function(err, submodules) { - if (!err && Array.isArray(submodules)) { - var baseName = self.repoPath().replace(/^.*[\\\/]/, ''); - - for (var n = 0; n < submodules.length; n++) { - if (submodules[n].path === baseName) { - self.isSubmodule(true); - self.parentModulePath(baseRepoPath.path); - self.parentModuleLink('/#/repository?path=' + encodeURIComponent(baseRepoPath.path)); - return; - } - } - } - - self.isSubmodule(false); - return true; - }); - }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.less b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.less deleted file mode 100644 index 88d85d4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/repository.less +++ /dev/null @@ -1,7 +0,0 @@ - -.repository-view { - position: relative; - height: auto; - margin-bottom: 1px; - padding-bottom: 1px; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/ungit-plugin.json deleted file mode 100644 index 8177ddaf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/repository/ungit-plugin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "repository": "repository.html" - }, - "javascript": "repository.bundle.js", - "css": "repository.css" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.bundle.js deleted file mode 100644 index e9b3b27e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.bundle.js +++ /dev/null @@ -1,421 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 0) return "Cannot patch with side by side view." - } - - return ""; - }); - this.toggleSelectAllGlyphClass = ko.computed(function() { - if (self.allStageFlag()) return 'glyphicon-unchecked'; - else return 'glyphicon-check'; - }); - - this.refreshContentThrottled = _.throttle(this.refreshContent.bind(this), 400, { trailing: true }); - this.invalidateFilesDiffsThrottled = _.throttle(this.invalidateFilesDiffs.bind(this), 400, { trailing: true }); - this.refreshContentThrottled(); - this.textDiffType = ko.observable('textdiff'); - if (window.location.search.indexOf('noheader=true') >= 0) - this.refreshButton = components.create('refreshbutton'); - this.loadAnyway = false; - this.isDiagOpen = false; - this.mutedTime = null; -} -StagingViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('staging', this, {}, parentElement); -} -StagingViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'request-app-content-refresh') { - this.refreshContent(); - this.invalidateFilesDiffs(); - } - if (event.event == 'working-tree-changed') { - this.refreshContentThrottled(); - this.invalidateFilesDiffsThrottled(); - } -} -StagingViewModel.prototype.refreshContent = function(callback) { - var self = this; - this.server.get('/head', { path: this.repoPath(), limit: 1 }, function(err, log) { - if (err) { - return err.errorCode == 'must-be-in-working-tree' || - err.errorCode == 'no-such-path'; - } - if (log.length > 0) { - var array = log[0].message.split('\n'); - self.HEAD({title: array[0], body: array.slice(2).join('\n')}); - } - else self.HEAD(null); - }); - this.server.get('/status', { path: this.repoPath(), fileLimit: filesToDisplayLimit }, function(err, status) { - if (err) { - if (callback) callback(err); - return err.errorCode == 'must-be-in-working-tree' || - err.errorCode == 'no-such-path'; - } - - if (Object.keys(status.files).length > filesToDisplayLimit && !self.loadAnyway) { - if (self.isDiagOpen) { - if (callback) callback(); - return; - } - self.isDiagOpen = true; - var diag = components.create('TooManyFilesDialogViewModel', { title: 'Too many unstaged files', details: 'It is recommended to use command line as ungit may be too slow.'}); - - diag.closed.add(function() { - self.isDiagOpen = false; - if (diag.result()) { - self.loadAnyway = true; - self.loadStatus(status, callback); - } else { - window.location.href = '/#/'; - } - }) - - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); - } else { - self.loadStatus(status, callback); - } - }); -} -StagingViewModel.prototype.loadStatus = function(status, callback) { - this.setFiles(status.files); - this.inRebase(!!status.inRebase); - this.inMerge(!!status.inMerge); - // There are time where '.git/CHERRY_PICK_HEAD' file is created and no files are in conflicts. - // in such cases we should ignore exception as no good way to resolve it. - this.inCherry(!!status.inCherry && !!status.inConflict); - - if (this.inRebase()) { - this.commitMessageTitle('Rebase conflict'); - this.commitMessageBody('Commit messages are not applicable!\n(╯°□°)╯︵ ┻━┻'); - } else if (this.inMerge() || this.inCherry()) { - var lines = status.commitMessage.split('\n'); - this.commitMessageTitle(lines[0]); - this.commitMessageBody(lines.slice(1).join('\n')); - } - if (callback) callback(); -} -StagingViewModel.prototype.setFiles = function(files) { - var self = this; - var newFiles = []; - for(var file in files) { - var fileViewModel = this.filesByPath[file]; - if (!fileViewModel) { - this.filesByPath[file] = fileViewModel = new FileViewModel(self, file, self.textDiffType, self.wordWrap); - } else { - // this is mainly for patching and it may not fire due to the fact that - // '/commit' triggers working-tree-changed which triggers throttled refresh - fileViewModel.invalidateDiff(); - } - fileViewModel.setState(files[file]); - newFiles.push(fileViewModel); - } - this.files(newFiles); - programEvents.dispatch({ event: 'init-tooltip' }); -} -StagingViewModel.prototype.toggleAmend = function() { - if (!this.amend() && !this.commitMessageTitle()) { - this.commitMessageTitle(this.HEAD().title); - this.commitMessageBody(this.HEAD().body); - } - else if(this.amend()) { - var isPrevDefaultMsg = - this.commitMessageTitle() == this.HEAD().title && - this.commitMessageBody() == this.HEAD().body; - if (isPrevDefaultMsg) { - this.commitMessageTitle(''); - this.commitMessageBody(''); - } - } - this.amend(!this.amend()); -} -StagingViewModel.prototype.resetMessages = function() { - this.commitMessageTitle(''); - this.commitMessageBody(''); - this.amend(false); -} -StagingViewModel.prototype.commit = function() { - var self = this; - this.committingProgressBar.start(); - var files = this.files().filter(function(file) { - return file.editState() !== 'none'; - }).map(function(file) { - return { name: file.name(), patchLineList: file.editState() === 'patched' ? file.patchLineList() : null }; - }); - var commitMessage = this.commitMessageTitle(); - if (this.commitMessageBody()) commitMessage += '\n\n' + this.commitMessageBody(); - this.server.post('/commit', { path: this.repoPath(), message: commitMessage, files: files, amend: this.amend() }, function(err, res) { - self.committingProgressBar.stop(); - if (err) { - return; - } - self.resetMessages(); - self.files([]); - }); -} -StagingViewModel.prototype.conflictResolution = function(apiPath, progressBar) { - var self = this; - progressBar.start(); - var commitMessage = this.commitMessageTitle(); - if (this.commitMessageBody()) commitMessage += '\n\n' + this.commitMessageBody(); - this.server.post(apiPath, { path: this.repoPath(), message: commitMessage }, function(err, res) { - self.resetMessages(); - progressBar.stop(); - }); -} -StagingViewModel.prototype.invalidateFilesDiffs = function() { - this.files().forEach(function(file) { - file.diff().invalidateDiff(); - }); -} -StagingViewModel.prototype.discardAllChanges = function() { - var self = this; - var diag = components.create('yesnodialog', { title: 'Are you sure you want to discard all changes?', details: 'This operation cannot be undone.'}); - diag.closed.add(function() { - if (diag.result()) self.server.post('/discardchanges', { path: self.repoPath(), all: true }); - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} -StagingViewModel.prototype.stashAll = function() { - var self = this; - this.stashProgressBar.start(); - this.server.post('/stashes', { path: this.repoPath(), message: this.commitMessageTitle() }, function(err, res) { - self.stashProgressBar.stop(); - }); -} -StagingViewModel.prototype.toggleAllStages = function() { - var self = this; - for (var n in self.files()){ - self.files()[n].editState(self.allStageFlag() ? 'staged' : 'none'); - } - - self.allStageFlag(!self.allStageFlag()); -} -StagingViewModel.prototype.textDiffTypeChange = function(type) { - this.textDiffType(type); -} -StagingViewModel.prototype.onEnter = function(d, e){ - if (e.keyCode === 13 && !this.commitValidationError()) { - this.commit(); - } - return true; -}; -StagingViewModel.prototype.onAltEnter = function(d, e){ - if (e.keyCode === 13 && e.altKey && !this.commitValidationError()) { - this.commit(); - } - return true; -}; -StagingViewModel.prototype.toggleWordWrap = function(state) { - this.wordWrap(state); -}; - -var FileViewModel = function(staging, name, textDiffType, wordWrap) { - var self = this; - this.staging = staging; - this.server = staging.server; - this.editState = ko.observable('staged'); // staged, patched and none - this.name = ko.observable(name); - this.displayName = ko.observable(name); - this.isNew = ko.observable(false); - this.removed = ko.observable(false); - this.conflict = ko.observable(false); - this.renamed = ko.observable(false); - this.isShowingDiffs = ko.observable(false); - this.diffProgressBar = components.create('progressBar', { predictionMemoryKey: 'diffs-' + this.staging.repoPath(), temporary: true }); - this.isShowingDiffs = ko.observable(false); - this.textDiffType = textDiffType; - this.wordWrap = wordWrap; - this.additions = ko.observable(''); - this.deletions = ko.observable(''); - this.fileType = ko.observable('text'); - this.patchLineList = ko.observableArray(); - this.diff = ko.observable(); - this.isShowPatch = ko.computed(function() { - // if not new file - // and if not merging - // and if not rebasing - // and if text file - // and if diff is showing, display patch button - return !self.isNew() && !staging.inMerge() && !staging.inRebase() && self.fileType() === 'text' && self.isShowingDiffs(); - }); - - this.editState.subscribe(function (value) { - if (value === 'none') { - self.patchLineList([]); - } else if (value === 'patched') { - if (self.diff().render) self.diff().render(); - } - }); -} -FileViewModel.prototype.getSpecificDiff = function() { - return components.create(!this.name() || this.fileType() + 'diff', { - filename: this.name(), - repoPath: this.staging.repoPath, - server: this.server, - textDiffType: this.textDiffType, - isShowingDiffs: this.isShowingDiffs, - diffProgressBar: this.diffProgressBar, - patchLineList: this.patchLineList, - editState: this.editState, - wordWrap: this.wordWrap - }); -} -FileViewModel.prototype.setState = function(state) { - this.displayName(state.displayName); - this.isNew(state.isNew); - this.removed(state.removed); - this.conflict(state.conflict); - this.renamed(state.renamed); - this.fileType(state.type); - this.additions(state.additions != '-' ? '+' + state.additions : ''); - this.deletions(state.deletions != '-' ? '-' + state.deletions : ''); - this.diff = ko.observable(this.getSpecificDiff()); - if (this.diff().isNew) this.diff().isNew(state.isNew); - if (this.diff().isRemoved) this.diff().isRemoved(state.removed); -} -FileViewModel.prototype.toggleStaged = function() { - if (this.editState() === 'none') { - this.editState('staged'); - } else { - this.editState('none'); - } - this.patchLineList([]); -} -FileViewModel.prototype.discardChanges = function() { - var self = this; - if (ungit.config.disableDiscardWarning || new Date().getTime() - this.staging.mutedTime < ungit.config.disableDiscardMuteTime) { - self.server.post('/discardchanges', { path: self.staging.repoPath(), file: self.name() }); - } else { - var diag = components.create('yesnomutedialog', { title: 'Are you sure you want to discard these changes?', details: 'This operation cannot be undone.'}); - diag.closed.add(function() { - if (diag.result()) self.server.post('/discardchanges', { path: self.staging.repoPath(), file: self.name() }); - if (diag.result() === "mute") self.staging.mutedTime = new Date().getTime(); - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); - } -} -FileViewModel.prototype.ignoreFile = function() { - var self = this; - this.server.post('/ignorefile', { path: this.staging.repoPath(), file: this.name() }, function(err) { - if (err && err.errorCode == 'file-already-git-ignored') { - // The file was already in the .gitignore, so force an update of the staging area (to hopefull clear away this file) - programEvents.dispatch({ event: 'working-tree-changed' }); - return true; - } - }); -} -FileViewModel.prototype.resolveConflict = function() { - this.server.post('/resolveconflicts', { path: this.staging.repoPath(), files: [this.name()] }); -} -FileViewModel.prototype.toggleDiffs = function() { - if (this.renamed()) return; // do not show diffs for renames - if (this.isShowingDiffs()) { - this.isShowingDiffs(false); - } else { - this.isShowingDiffs(true); - this.invalidateDiff(); - } -} -FileViewModel.prototype.patchClick = function() { - if (!this.isShowingDiffs()) return; - - if (this.editState() === 'patched') { - this.editState('staged'); - } else { - this.editState('patched'); - } -} -FileViewModel.prototype.invalidateDiff = function() { - this.diff().invalidateDiff(); -} - -},{"knockout":"knockout","lodash":"lodash","ungit-components":"ungit-components","ungit-program-events":"ungit-program-events","util":undefined}]},{},[1]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJjb21wb25lbnRzL3N0YWdpbmcvc3RhZ2luZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsInZhciBrbyA9IHJlcXVpcmUoJ2tub2Nrb3V0Jyk7XG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCd1dGlsJykuaW5oZXJpdHM7XG52YXIgY29tcG9uZW50cyA9IHJlcXVpcmUoJ3VuZ2l0LWNvbXBvbmVudHMnKTtcbnZhciBwcm9ncmFtRXZlbnRzID0gcmVxdWlyZSgndW5naXQtcHJvZ3JhbS1ldmVudHMnKTtcbnZhciBfID0gcmVxdWlyZSgnbG9kYXNoJyk7XG52YXIgZmlsZXNUb0Rpc3BsYXlJbmNybWVudEJ5ID0gNTA7XG52YXIgZmlsZXNUb0Rpc3BsYXlMaW1pdCA9IGZpbGVzVG9EaXNwbGF5SW5jcm1lbnRCeTtcbi8vIHdoZW4gZGlzY2FyZCBidXR0b24gaXMgY2xpY2tlZCBhbmQgZGlzYWJsZSBkaXNjYXJkIHdhcm5pbmcgaXMgc2VsZWN0ZWQsIGZvciBuZXh0IDUgbWludXRlcyBkaXNhYmxlIGRpc2NhcmQgd2FybmluZ3NcbnZhciBtdXRlR3JhY2VUaW1lRHVyYXRpb24gPSA2MCAqIDEwMDAgKiA1O1xuXG5jb21wb25lbnRzLnJlZ2lzdGVyKCdzdGFnaW5nJywgZnVuY3Rpb24oYXJncykge1xuICByZXR1cm4gbmV3IFN0YWdpbmdWaWV3TW9kZWwoYXJncy5zZXJ2ZXIsIGFyZ3MucmVwb1BhdGgpO1xufSk7XG5cbnZhciBTdGFnaW5nVmlld01vZGVsID0gZnVuY3Rpb24oc2VydmVyLCByZXBvUGF0aCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuc2VydmVyID0gc2VydmVyO1xuICB0aGlzLnJlcG9QYXRoID0gcmVwb1BhdGg7XG4gIHRoaXMuZmlsZXNCeVBhdGggPSB7fTtcbiAgdGhpcy5maWxlcyA9IGtvLm9ic2VydmFibGVBcnJheSgpO1xuICB0aGlzLmNvbW1pdE1lc3NhZ2VUaXRsZUNvdW50ID0ga28ub2JzZXJ2YWJsZSgwKTtcbiAgdGhpcy5jb21taXRNZXNzYWdlVGl0bGUgPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMuY29tbWl0TWVzc2FnZVRpdGxlLnN1YnNjcmliZShmdW5jdGlvbih2YWx1ZSkge1xuICAgIHNlbGYuY29tbWl0TWVzc2FnZVRpdGxlQ291bnQodmFsdWUubGVuZ3RoKTtcbiAgfSk7XG4gIHRoaXMuY29tbWl0TWVzc2FnZUJvZHkgPSBrby5vYnNlcnZhYmxlKCk7XG4gIHRoaXMud29yZFdyYXAgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgdGhpcy5pblJlYmFzZSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICB0aGlzLmluTWVyZ2UgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgdGhpcy5pbkNoZXJyeSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICB0aGlzLmNvbmZsaWN0VGV4dCA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIGlmIChzZWxmLmluTWVyZ2UoKSkge1xuICAgICAgc2VsZi5jb25mbGljdENvbnRpbnVlID0gc2VsZi5jb25mbGljdFJlc29sdXRpb24uYmluZChzZWxmLCAnL21lcmdlL2NvbnRpbnVlJywgc2VsZi5jb25mbGljdENvbnRpbnVlUHJvZ3Jlc3NCYXIpXG4gICAgICBzZWxmLmNvbmZsaWN0QWJvcnQgPSBzZWxmLmNvbmZsaWN0UmVzb2x1dGlvbi5iaW5kKHNlbGYsICcvbWVyZ2UvYWJvcnQnLCBzZWxmLmNvbmZsaWN0QWJvcnRQcm9ncmVzc0JhcilcbiAgICAgIHJldHVybiBcIk1lcmdlXCI7XG4gICAgfSBlbHNlIGlmIChzZWxmLmluUmViYXNlKCkpIHtcbiAgICAgIHNlbGYuY29uZmxpY3RDb250aW51ZSA9IHNlbGYuY29uZmxpY3RSZXNvbHV0aW9uLmJpbmQoc2VsZiwgJy9yZWJhc2UvY29udGludWUnLCBzZWxmLmNvbmZsaWN0Q29udGludWVQcm9ncmVzc0JhcilcbiAgICAgIHNlbGYuY29uZmxpY3RBYm9ydCA9IHNlbGYuY29uZmxpY3RSZXNvbHV0aW9uLmJpbmQoc2VsZiwgJy9yZWJhc2UvYWJvcnQnLCBzZWxmLmNvbmZsaWN0QWJvcnRQcm9ncmVzc0JhcilcbiAgICAgIHJldHVybiBcIlJlYmFzZVwiO1xuICAgIH0gZWxzZSBpZiAoc2VsZi5pbkNoZXJyeSgpKSB7XG4gICAgICBzZWxmLmNvbmZsaWN0Q29udGludWUgPSBzZWxmLmNvbW1pdDtcbiAgICAgIHNlbGYuY29uZmxpY3RBYm9ydCA9IHNlbGYuZGlzY2FyZEFsbENoYW5nZXM7XG4gICAgICByZXR1cm4gXCJDaGVycnktcGlja1wiO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxmLmNvbmZsaWN0Q29udGludWUgPSB1bmRlZmluZWQ7XG4gICAgICBzZWxmLmNvbmZsaWN0QWJvcnQgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSk7XG4gIHRoaXMuYWxsU3RhZ2VGbGFnID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG4gIHRoaXMuSEVBRCA9IGtvLm9ic2VydmFibGUoKTtcbiAgdGhpcy5pc1N0YWdlVmFsaWQgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gIXNlbGYuaW5SZWJhc2UoKSAmJiAhc2VsZi5pbk1lcmdlKCkgJiYgIXNlbGYuaW5DaGVycnkoKTtcbiAgfSk7XG4gIHRoaXMubkZpbGVzID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHNlbGYuZmlsZXMoKS5sZW5ndGg7XG4gIH0pO1xuICB0aGlzLm5TdGFnZWRGaWxlcyA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBzZWxmLmZpbGVzKCkuZmlsdGVyKGZ1bmN0aW9uKGYpIHsgcmV0dXJuIGYuZWRpdFN0YXRlKCkgPT09ICdzdGFnZWQnOyB9KS5sZW5ndGg7XG4gIH0pO1xuICB0aGlzLnN0YXRzID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHNlbGYubkZpbGVzKCkgKyAnIGZpbGVzLCAnICsgc2VsZi5uU3RhZ2VkRmlsZXMoKSArICcgdG8gYmUgY29tbWl0ZWQnO1xuICB9KTtcbiAgdGhpcy5hbWVuZCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICB0aGlzLmNhbkFtZW5kID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHNlbGYuSEVBRCgpICYmICFzZWxmLmluUmViYXNlKCkgJiYgIXNlbGYuaW5NZXJnZSgpO1xuICB9KTtcbiAgdGhpcy5jYW5TdGFzaEFsbCA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAhc2VsZi5hbWVuZCgpO1xuICB9KTtcbiAgdGhpcy5zaG93TnV4ID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHNlbGYuZmlsZXMoKS5sZW5ndGggPT0gMCAmJiAhc2VsZi5hbWVuZCgpICYmICFzZWxmLmluUmViYXNlKCk7XG4gIH0pO1xuICB0aGlzLmNvbW1pdHRpbmdQcm9ncmVzc0JhciA9IGNvbXBvbmVudHMuY3JlYXRlKCdwcm9ncmVzc0JhcicsIHsgcHJlZGljdGlvbk1lbW9yeUtleTogJ2NvbW1pdHRpbmctJyArIHRoaXMucmVwb1BhdGgoKSwgdGVtcG9yYXJ5OiB0cnVlIH0pO1xuICB0aGlzLmNvbmZsaWN0Q29udGludWVQcm9ncmVzc0JhciA9IGNvbXBvbmVudHMuY3JlYXRlKCdwcm9ncmVzc0JhcicsIHsgcHJlZGljdGlvbk1lbW9yeUtleTogJ2NvbmZsaWN0LWNvbnRpbnVlLScgKyB0aGlzLnJlcG9QYXRoKCksIHRlbXBvcmFyeTogdHJ1ZSB9KTtcbiAgdGhpcy5jb25mbGljdEFib3J0UHJvZ3Jlc3NCYXIgPSBjb21wb25lbnRzLmNyZWF0ZSgncHJvZ3Jlc3NCYXInLCB7IHByZWRpY3Rpb25NZW1vcnlLZXk6ICdjb25mbGljdC1hYm9ydC0nICsgdGhpcy5yZXBvUGF0aCgpLCB0ZW1wb3Jhcnk6IHRydWUgfSk7XG4gIHRoaXMuc3Rhc2hQcm9ncmVzc0JhciA9IGNvbXBvbmVudHMuY3JlYXRlKCdwcm9ncmVzc0JhcicsIHsgcHJlZGljdGlvbk1lbW9yeUtleTogJ3N0YXNoLScgKyB0aGlzLnJlcG9QYXRoKCksIHRlbXBvcmFyeTogdHJ1ZSB9KTtcbiAgdGhpcy5jb21taXRWYWxpZGF0aW9uRXJyb3IgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHtcbiAgICBpZiAoIXNlbGYuYW1lbmQoKSAmJiAhc2VsZi5maWxlcygpLnNvbWUoZnVuY3Rpb24oZmlsZSkgeyByZXR1cm4gZmlsZS5lZGl0U3RhdGUoKSA9PT0gJ3N0YWdlZCcgfHwgZmlsZS5lZGl0U3RhdGUoKSA9PT0gJ3BhdGNoZWQnOyB9KSlcbiAgICAgIHJldHVybiBcIk5vIGZpbGVzIHRvIGNvbW1pdFwiO1xuXG4gICAgaWYgKHNlbGYuZmlsZXMoKS5zb21lKGZ1bmN0aW9uKGZpbGUpIHsgcmV0dXJuIGZpbGUuY29uZmxpY3QoKTsgfSkpXG4gICAgICByZXR1cm4gXCJGaWxlcyBpbiBjb25mbGljdFwiO1xuXG4gICAgaWYgKCFzZWxmLmNvbW1pdE1lc3NhZ2VUaXRsZSgpICYmICFzZWxmLmluUmViYXNlKCkpIHJldHVybiBcIlByb3ZpZGUgYSB0aXRsZVwiO1xuXG4gICAgaWYgKHNlbGYudGV4dERpZmZUeXBlKCkgPT09ICdzaWRlYnlzaWRlZGlmZicpIHtcbiAgICAgIHZhciBwYXRjaEZpbGVzID0gc2VsZi5maWxlcygpLmZpbHRlcihmdW5jdGlvbihmaWxlKSB7IHJldHVybiBmaWxlLmVkaXRTdGF0ZSgpID09PSAncGF0Y2hlZCc7IH0pO1xuICAgICAgaWYgKHBhdGNoRmlsZXMubGVuZ3RoID4gMCkgcmV0dXJuIFwiQ2Fubm90IHBhdGNoIHdpdGggc2lkZSBieSBzaWRlIHZpZXcuXCJcbiAgICB9XG5cbiAgICByZXR1cm4gXCJcIjtcbiAgfSk7XG4gIHRoaXMudG9nZ2xlU2VsZWN0QWxsR2x5cGhDbGFzcyA9IGtvLmNvbXB1dGVkKGZ1bmN0aW9uKCkge1xuICAgIGlmIChzZWxmLmFsbFN0YWdlRmxhZygpKSByZXR1cm4gJ2dseXBoaWNvbi11bmNoZWNrZWQnO1xuICAgIGVsc2UgcmV0dXJuICdnbHlwaGljb24tY2hlY2snO1xuICB9KTtcblxuICB0aGlzLnJlZnJlc2hDb250ZW50VGhyb3R0bGVkID0gXy50aHJvdHRsZSh0aGlzLnJlZnJlc2hDb250ZW50LmJpbmQodGhpcyksIDQwMCwgeyB0cmFpbGluZzogdHJ1ZSB9KTtcbiAgdGhpcy5pbnZhbGlkYXRlRmlsZXNEaWZmc1Rocm90dGxlZCA9IF8udGhyb3R0bGUodGhpcy5pbnZhbGlkYXRlRmlsZXNEaWZmcy5iaW5kKHRoaXMpLCA0MDAsIHsgdHJhaWxpbmc6IHRydWUgfSk7XG4gIHRoaXMucmVmcmVzaENvbnRlbnRUaHJvdHRsZWQoKTtcbiAgdGhpcy50ZXh0RGlmZlR5cGUgPSBrby5vYnNlcnZhYmxlKCd0ZXh0ZGlmZicpO1xuICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCdub2hlYWRlcj10cnVlJykgPj0gMClcbiAgICB0aGlzLnJlZnJlc2hCdXR0b24gPSBjb21wb25lbnRzLmNyZWF0ZSgncmVmcmVzaGJ1dHRvbicpO1xuICB0aGlzLmxvYWRBbnl3YXkgPSBmYWxzZTtcbiAgdGhpcy5pc0RpYWdPcGVuID0gZmFsc2U7XG4gIHRoaXMubXV0ZWRUaW1lID0gbnVsbDtcbn1cblN0YWdpbmdWaWV3TW9kZWwucHJvdG90eXBlLnVwZGF0ZU5vZGUgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50KSB7XG4gIGtvLnJlbmRlclRlbXBsYXRlKCdzdGFnaW5nJywgdGhpcywge30sIHBhcmVudEVsZW1lbnQpO1xufVxuU3RhZ2luZ1ZpZXdNb2RlbC5wcm90b3R5cGUub25Qcm9ncmFtRXZlbnQgPSBmdW5jdGlvbihldmVudCkge1xuICBpZiAoZXZlbnQuZXZlbnQgPT0gJ3JlcXVlc3QtYXBwLWNvbnRlbnQtcmVmcmVzaCcpIHtcbiAgICB0aGlzLnJlZnJlc2hDb250ZW50KCk7XG4gICAgdGhpcy5pbnZhbGlkYXRlRmlsZXNEaWZmcygpO1xuICB9XG4gIGlmIChldmVudC5ldmVudCA9PSAnd29ya2luZy10cmVlLWNoYW5nZWQnKSB7XG4gICAgdGhpcy5yZWZyZXNoQ29udGVudFRocm90dGxlZCgpO1xuICAgIHRoaXMuaW52YWxpZGF0ZUZpbGVzRGlmZnNUaHJvdHRsZWQoKTtcbiAgfVxufVxuU3RhZ2luZ1ZpZXdNb2RlbC5wcm90b3R5cGUucmVmcmVzaENvbnRlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuc2VydmVyLmdldCgnL2hlYWQnLCB7IHBhdGg6IHRoaXMucmVwb1BhdGgoKSwgbGltaXQ6IDEgfSwgZnVuY3Rpb24oZXJyLCBsb2cpIHtcbiAgICBpZiAoZXJyKSB7XG4gICAgICByZXR1cm4gZXJyLmVycm9yQ29kZSA9PSAnbXVzdC1iZS1pbi13b3JraW5nLXRyZWUnIHx8XG4gICAgICAgIGVyci5lcnJvckNvZGUgPT0gJ25vLXN1Y2gtcGF0aCc7XG4gICAgfVxuICAgIGlmIChsb2cubGVuZ3RoID4gMCkge1xuICAgICAgdmFyIGFycmF5ID0gbG9nWzBdLm1lc3NhZ2Uuc3BsaXQoJ1xcbicpO1xuICAgICAgc2VsZi5IRUFEKHt0aXRsZTogYXJyYXlbMF0sIGJvZHk6IGFycmF5LnNsaWNlKDIpLmpvaW4oJ1xcbicpfSk7XG4gICAgfVxuICAgIGVsc2Ugc2VsZi5IRUFEKG51bGwpO1xuICB9KTtcbiAgdGhpcy5zZXJ2ZXIuZ2V0KCcvc3RhdHVzJywgeyBwYXRoOiB0aGlzLnJlcG9QYXRoKCksIGZpbGVMaW1pdDogZmlsZXNUb0Rpc3BsYXlMaW1pdCB9LCBmdW5jdGlvbihlcnIsIHN0YXR1cykge1xuICAgIGlmIChlcnIpIHtcbiAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soZXJyKTtcbiAgICAgIHJldHVybiBlcnIuZXJyb3JDb2RlID09ICdtdXN0LWJlLWluLXdvcmtpbmctdHJlZScgfHxcbiAgICAgICAgZXJyLmVycm9yQ29kZSA9PSAnbm8tc3VjaC1wYXRoJztcbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXMoc3RhdHVzLmZpbGVzKS5sZW5ndGggPiBmaWxlc1RvRGlzcGxheUxpbWl0ICYmICFzZWxmLmxvYWRBbnl3YXkpIHtcbiAgICAgIGlmIChzZWxmLmlzRGlhZ09wZW4pIHtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzZWxmLmlzRGlhZ09wZW4gPSB0cnVlO1xuICAgICAgdmFyIGRpYWcgPSBjb21wb25lbnRzLmNyZWF0ZSgnVG9vTWFueUZpbGVzRGlhbG9nVmlld01vZGVsJywgeyB0aXRsZTogJ1RvbyBtYW55IHVuc3RhZ2VkIGZpbGVzJywgZGV0YWlsczogJ0l0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBjb21tYW5kIGxpbmUgYXMgdW5naXQgbWF5IGJlIHRvbyBzbG93Lid9KTtcblxuICAgICAgZGlhZy5jbG9zZWQuYWRkKGZ1bmN0aW9uKCkge1xuICAgICAgICBzZWxmLmlzRGlhZ09wZW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKGRpYWcucmVzdWx0KCkpIHtcbiAgICAgICAgICBzZWxmLmxvYWRBbnl3YXkgPSB0cnVlO1xuICAgICAgICAgIHNlbGYubG9hZFN0YXR1cyhzdGF0dXMsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvIy8nO1xuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBwcm9ncmFtRXZlbnRzLmRpc3BhdGNoKHsgZXZlbnQ6ICdyZXF1ZXN0LXNob3ctZGlhbG9nJywgZGlhbG9nOiBkaWFnIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxmLmxvYWRTdGF0dXMoc3RhdHVzLCBjYWxsYmFjayk7XG4gICAgfVxuICB9KTtcbn1cblN0YWdpbmdWaWV3TW9kZWwucHJvdG90eXBlLmxvYWRTdGF0dXMgPSBmdW5jdGlvbihzdGF0dXMsIGNhbGxiYWNrKSB7XG4gIHRoaXMuc2V0RmlsZXMoc3RhdHVzLmZpbGVzKTtcbiAgdGhpcy5pblJlYmFzZSghIXN0YXR1cy5pblJlYmFzZSk7XG4gIHRoaXMuaW5NZXJnZSghIXN0YXR1cy5pbk1lcmdlKTtcbiAgLy8gVGhlcmUgYXJlIHRpbWUgd2hlcmUgJy5naXQvQ0hFUlJZX1BJQ0tfSEVBRCcgZmlsZSBpcyBjcmVhdGVkIGFuZCBubyBmaWxlcyBhcmUgaW4gY29uZmxpY3RzLlxuICAvLyBpbiBzdWNoIGNhc2VzIHdlIHNob3VsZCBpZ25vcmUgZXhjZXB0aW9uIGFzIG5vIGdvb2Qgd2F5IHRvIHJlc29sdmUgaXQuXG4gIHRoaXMuaW5DaGVycnkoISFzdGF0dXMuaW5DaGVycnkgJiYgISFzdGF0dXMuaW5Db25mbGljdCk7XG5cbiAgaWYgKHRoaXMuaW5SZWJhc2UoKSkge1xuICAgIHRoaXMuY29tbWl0TWVzc2FnZVRpdGxlKCdSZWJhc2UgY29uZmxpY3QnKTtcbiAgICB0aGlzLmNvbW1pdE1lc3NhZ2VCb2R5KCdDb21taXQgbWVzc2FnZXMgYXJlIG5vdCBhcHBsaWNhYmxlIVxcbijila/CsOKWocKw77yJ4pWv77i1IOKUu+KUgeKUuycpO1xuICB9IGVsc2UgaWYgKHRoaXMuaW5NZXJnZSgpIHx8IHRoaXMuaW5DaGVycnkoKSkge1xuICAgIHZhciBsaW5lcyA9IHN0YXR1cy5jb21taXRNZXNzYWdlLnNwbGl0KCdcXG4nKTtcbiAgICB0aGlzLmNvbW1pdE1lc3NhZ2VUaXRsZShsaW5lc1swXSk7XG4gICAgdGhpcy5jb21taXRNZXNzYWdlQm9keShsaW5lcy5zbGljZSgxKS5qb2luKCdcXG4nKSk7XG4gIH1cbiAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xufVxuU3RhZ2luZ1ZpZXdNb2RlbC5wcm90b3R5cGUuc2V0RmlsZXMgPSBmdW5jdGlvbihmaWxlcykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBuZXdGaWxlcyA9IFtdO1xuICBmb3IodmFyIGZpbGUgaW4gZmlsZXMpIHtcbiAgICB2YXIgZmlsZVZpZXdNb2RlbCA9IHRoaXMuZmlsZXNCeVBhdGhbZmlsZV07XG4gICAgaWYgKCFmaWxlVmlld01vZGVsKSB7XG4gICAgICB0aGlzLmZpbGVzQnlQYXRoW2ZpbGVdID0gZmlsZVZpZXdNb2RlbCA9IG5ldyBGaWxlVmlld01vZGVsKHNlbGYsIGZpbGUsIHNlbGYudGV4dERpZmZUeXBlLCBzZWxmLndvcmRXcmFwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhpcyBpcyBtYWlubHkgZm9yIHBhdGNoaW5nIGFuZCBpdCBtYXkgbm90IGZpcmUgZHVlIHRvIHRoZSBmYWN0IHRoYXRcbiAgICAgIC8vICcvY29tbWl0JyB0cmlnZ2VycyB3b3JraW5nLXRyZWUtY2hhbmdlZCB3aGljaCB0cmlnZ2VycyB0aHJvdHRsZWQgcmVmcmVzaFxuICAgICAgZmlsZVZpZXdNb2RlbC5pbnZhbGlkYXRlRGlmZigpO1xuICAgIH1cbiAgICBmaWxlVmlld01vZGVsLnNldFN0YXRlKGZpbGVzW2ZpbGVdKTtcbiAgICBuZXdGaWxlcy5wdXNoKGZpbGVWaWV3TW9kZWwpO1xuICB9XG4gIHRoaXMuZmlsZXMobmV3RmlsZXMpO1xuICBwcm9ncmFtRXZlbnRzLmRpc3BhdGNoKHsgZXZlbnQ6ICdpbml0LXRvb2x0aXAnIH0pO1xufVxuU3RhZ2luZ1ZpZXdNb2RlbC5wcm90b3R5cGUudG9nZ2xlQW1lbmQgPSBmdW5jdGlvbigpIHtcbiAgaWYgKCF0aGlzLmFtZW5kKCkgJiYgIXRoaXMuY29tbWl0TWVzc2FnZVRpdGxlKCkpIHtcbiAgICB0aGlzLmNvbW1pdE1lc3NhZ2VUaXRsZSh0aGlzLkhFQUQoKS50aXRsZSk7XG4gICAgdGhpcy5jb21taXRNZXNzYWdlQm9keSh0aGlzLkhFQUQoKS5ib2R5KTtcbiAgfVxuICBlbHNlIGlmKHRoaXMuYW1lbmQoKSkge1xuICAgIHZhciBpc1ByZXZEZWZhdWx0TXNnID1cbiAgICAgIHRoaXMuY29tbWl0TWVzc2FnZVRpdGxlKCkgPT0gdGhpcy5IRUFEKCkudGl0bGUgJiZcbiAgICAgIHRoaXMuY29tbWl0TWVzc2FnZUJvZHkoKSA9PSB0aGlzLkhFQUQoKS5ib2R5O1xuICAgIGlmIChpc1ByZXZEZWZhdWx0TXNnKSB7XG4gICAgICB0aGlzLmNvbW1pdE1lc3NhZ2VUaXRsZSgnJyk7XG4gICAgICB0aGlzLmNvbW1pdE1lc3NhZ2VCb2R5KCcnKTtcbiAgICB9XG4gIH1cbiAgdGhpcy5hbWVuZCghdGhpcy5hbWVuZCgpKTtcbn1cblN0YWdpbmdWaWV3TW9kZWwucHJvdG90eXBlLnJlc2V0TWVzc2FnZXMgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5jb21taXRNZXNzYWdlVGl0bGUoJycpO1xuICB0aGlzLmNvbW1pdE1lc3NhZ2VCb2R5KCcnKTtcbiAgdGhpcy5hbWVuZChmYWxzZSk7XG59XG5TdGFnaW5nVmlld01vZGVsLnByb3RvdHlwZS5jb21taXQgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLmNvbW1pdHRpbmdQcm9ncmVzc0Jhci5zdGFydCgpO1xuICB2YXIgZmlsZXMgPSB0aGlzLmZpbGVzKCkuZmlsdGVyKGZ1bmN0aW9uKGZpbGUpIHtcbiAgICByZXR1cm4gZmlsZS5lZGl0U3RhdGUoKSAhPT0gJ25vbmUnO1xuICB9KS5tYXAoZnVuY3Rpb24oZmlsZSkge1xuICAgIHJldHVybiB7IG5hbWU6IGZpbGUubmFtZSgpLCBwYXRjaExpbmVMaXN0OiBmaWxlLmVkaXRTdGF0ZSgpID09PSAncGF0Y2hlZCcgPyBmaWxlLnBhdGNoTGluZUxpc3QoKSA6IG51bGwgfTtcbiAgfSk7XG4gIHZhciBjb21taXRNZXNzYWdlID0gdGhpcy5jb21taXRNZXNzYWdlVGl0bGUoKTtcbiAgaWYgKHRoaXMuY29tbWl0TWVzc2FnZUJvZHkoKSkgY29tbWl0TWVzc2FnZSArPSAnXFxuXFxuJyArIHRoaXMuY29tbWl0TWVzc2FnZUJvZHkoKTtcbiAgdGhpcy5zZXJ2ZXIucG9zdCgnL2NvbW1pdCcsIHsgcGF0aDogdGhpcy5yZXBvUGF0aCgpLCBtZXNzYWdlOiBjb21taXRNZXNzYWdlLCBmaWxlczogZmlsZXMsIGFtZW5kOiB0aGlzLmFtZW5kKCkgfSwgZnVuY3Rpb24oZXJyLCByZXMpIHtcbiAgICBzZWxmLmNvbW1pdHRpbmdQcm9ncmVzc0Jhci5zdG9wKCk7XG4gICAgaWYgKGVycikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZWxmLnJlc2V0TWVzc2FnZXMoKTtcbiAgICBzZWxmLmZpbGVzKFtdKTtcbiAgfSk7XG59XG5TdGFnaW5nVmlld01vZGVsLnByb3RvdHlwZS5jb25mbGljdFJlc29sdXRpb24gPSBmdW5jdGlvbihhcGlQYXRoLCBwcm9ncmVzc0Jhcikge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHByb2dyZXNzQmFyLnN0YXJ0KCk7XG4gIHZhciBjb21taXRNZXNzYWdlID0gdGhpcy5jb21taXRNZXNzYWdlVGl0bGUoKTtcbiAgaWYgKHRoaXMuY29tbWl0TWVzc2FnZUJvZHkoKSkgY29tbWl0TWVzc2FnZSArPSAnXFxuXFxuJyArIHRoaXMuY29tbWl0TWVzc2FnZUJvZHkoKTtcbiAgdGhpcy5zZXJ2ZXIucG9zdChhcGlQYXRoLCB7IHBhdGg6IHRoaXMucmVwb1BhdGgoKSwgbWVzc2FnZTogY29tbWl0TWVzc2FnZSB9LCBmdW5jdGlvbihlcnIsIHJlcykge1xuICAgIHNlbGYucmVzZXRNZXNzYWdlcygpO1xuICAgIHByb2dyZXNzQmFyLnN0b3AoKTtcbiAgfSk7XG59XG5TdGFnaW5nVmlld01vZGVsLnByb3RvdHlwZS5pbnZhbGlkYXRlRmlsZXNEaWZmcyA9IGZ1bmN0aW9uKCkge1xuICB0aGlzLmZpbGVzKCkuZm9yRWFjaChmdW5jdGlvbihmaWxlKSB7XG4gICAgZmlsZS5kaWZmKCkuaW52YWxpZGF0ZURpZmYoKTtcbiAgfSk7XG59XG5TdGFnaW5nVmlld01vZGVsLnByb3RvdHlwZS5kaXNjYXJkQWxsQ2hhbmdlcyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBkaWFnID0gY29tcG9uZW50cy5jcmVhdGUoJ3llc25vZGlhbG9nJywgeyB0aXRsZTogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkaXNjYXJkIGFsbCBjaGFuZ2VzPycsIGRldGFpbHM6ICdUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgdW5kb25lLid9KTtcbiAgZGlhZy5jbG9zZWQuYWRkKGZ1bmN0aW9uKCkge1xuICAgIGlmIChkaWFnLnJlc3VsdCgpKSBzZWxmLnNlcnZlci5wb3N0KCcvZGlzY2FyZGNoYW5nZXMnLCB7IHBhdGg6IHNlbGYucmVwb1BhdGgoKSwgYWxsOiB0cnVlIH0pO1xuICB9KTtcbiAgcHJvZ3JhbUV2ZW50cy5kaXNwYXRjaCh7IGV2ZW50OiAncmVxdWVzdC1zaG93LWRpYWxvZycsIGRpYWxvZzogZGlhZyB9KTtcbn1cblN0YWdpbmdWaWV3TW9kZWwucHJvdG90eXBlLnN0YXNoQWxsID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5zdGFzaFByb2dyZXNzQmFyLnN0YXJ0KCk7XG4gIHRoaXMuc2VydmVyLnBvc3QoJy9zdGFzaGVzJywgeyBwYXRoOiB0aGlzLnJlcG9QYXRoKCksIG1lc3NhZ2U6IHRoaXMuY29tbWl0TWVzc2FnZVRpdGxlKCkgfSwgZnVuY3Rpb24oZXJyLCByZXMpIHtcbiAgICBzZWxmLnN0YXNoUHJvZ3Jlc3NCYXIuc3RvcCgpO1xuICB9KTtcbn1cblN0YWdpbmdWaWV3TW9kZWwucHJvdG90eXBlLnRvZ2dsZUFsbFN0YWdlcyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIGZvciAodmFyIG4gaW4gc2VsZi5maWxlcygpKXtcbiAgICBzZWxmLmZpbGVzKClbbl0uZWRpdFN0YXRlKHNlbGYuYWxsU3RhZ2VGbGFnKCkgPyAnc3RhZ2VkJyA6ICdub25lJyk7XG4gIH1cblxuICBzZWxmLmFsbFN0YWdlRmxhZyghc2VsZi5hbGxTdGFnZUZsYWcoKSk7XG59XG5TdGFnaW5nVmlld01vZGVsLnByb3RvdHlwZS50ZXh0RGlmZlR5cGVDaGFuZ2UgPSBmdW5jdGlvbih0eXBlKSB7XG4gIHRoaXMudGV4dERpZmZUeXBlKHR5cGUpO1xufVxuU3RhZ2luZ1ZpZXdNb2RlbC5wcm90b3R5cGUub25FbnRlciA9IGZ1bmN0aW9uKGQsIGUpe1xuICAgIGlmIChlLmtleUNvZGUgPT09IDEzICYmICF0aGlzLmNvbW1pdFZhbGlkYXRpb25FcnJvcigpKSB7XG4gICAgICB0aGlzLmNvbW1pdCgpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5TdGFnaW5nVmlld01vZGVsLnByb3RvdHlwZS5vbkFsdEVudGVyID0gZnVuY3Rpb24oZCwgZSl7XG4gICAgaWYgKGUua2V5Q29kZSA9PT0gMTMgJiYgZS5hbHRLZXkgJiYgIXRoaXMuY29tbWl0VmFsaWRhdGlvbkVycm9yKCkpIHtcbiAgICAgIHRoaXMuY29tbWl0KCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblN0YWdpbmdWaWV3TW9kZWwucHJvdG90eXBlLnRvZ2dsZVdvcmRXcmFwID0gZnVuY3Rpb24oc3RhdGUpIHtcbiAgdGhpcy53b3JkV3JhcChzdGF0ZSk7XG59O1xuXG52YXIgRmlsZVZpZXdNb2RlbCA9IGZ1bmN0aW9uKHN0YWdpbmcsIG5hbWUsIHRleHREaWZmVHlwZSwgd29yZFdyYXApIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnN0YWdpbmcgPSBzdGFnaW5nO1xuICB0aGlzLnNlcnZlciA9IHN0YWdpbmcuc2VydmVyO1xuICB0aGlzLmVkaXRTdGF0ZSA9IGtvLm9ic2VydmFibGUoJ3N0YWdlZCcpOyAvLyBzdGFnZWQsIHBhdGNoZWQgYW5kIG5vbmVcbiAgdGhpcy5uYW1lID0ga28ub2JzZXJ2YWJsZShuYW1lKTtcbiAgdGhpcy5kaXNwbGF5TmFtZSA9IGtvLm9ic2VydmFibGUobmFtZSk7XG4gIHRoaXMuaXNOZXcgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgdGhpcy5yZW1vdmVkID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG4gIHRoaXMuY29uZmxpY3QgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgdGhpcy5yZW5hbWVkID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG4gIHRoaXMuaXNTaG93aW5nRGlmZnMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcbiAgdGhpcy5kaWZmUHJvZ3Jlc3NCYXIgPSBjb21wb25lbnRzLmNyZWF0ZSgncHJvZ3Jlc3NCYXInLCB7IHByZWRpY3Rpb25NZW1vcnlLZXk6ICdkaWZmcy0nICsgdGhpcy5zdGFnaW5nLnJlcG9QYXRoKCksIHRlbXBvcmFyeTogdHJ1ZSB9KTtcbiAgdGhpcy5pc1Nob3dpbmdEaWZmcyA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuICB0aGlzLnRleHREaWZmVHlwZSA9IHRleHREaWZmVHlwZTtcbiAgdGhpcy53b3JkV3JhcCA9IHdvcmRXcmFwO1xuICB0aGlzLmFkZGl0aW9ucyA9IGtvLm9ic2VydmFibGUoJycpO1xuICB0aGlzLmRlbGV0aW9ucyA9IGtvLm9ic2VydmFibGUoJycpO1xuICB0aGlzLmZpbGVUeXBlID0ga28ub2JzZXJ2YWJsZSgndGV4dCcpO1xuICB0aGlzLnBhdGNoTGluZUxpc3QgPSBrby5vYnNlcnZhYmxlQXJyYXkoKTtcbiAgdGhpcy5kaWZmID0ga28ub2JzZXJ2YWJsZSgpO1xuICB0aGlzLmlzU2hvd1BhdGNoID0ga28uY29tcHV0ZWQoZnVuY3Rpb24oKSB7XG4gICAgLy8gaWYgbm90IG5ldyBmaWxlXG4gICAgLy8gYW5kIGlmIG5vdCBtZXJnaW5nXG4gICAgLy8gYW5kIGlmIG5vdCByZWJhc2luZ1xuICAgIC8vIGFuZCBpZiB0ZXh0IGZpbGVcbiAgICAvLyBhbmQgaWYgZGlmZiBpcyBzaG93aW5nLCBkaXNwbGF5IHBhdGNoIGJ1dHRvblxuICAgIHJldHVybiAhc2VsZi5pc05ldygpICYmICFzdGFnaW5nLmluTWVyZ2UoKSAmJiAhc3RhZ2luZy5pblJlYmFzZSgpICYmIHNlbGYuZmlsZVR5cGUoKSA9PT0gJ3RleHQnICYmIHNlbGYuaXNTaG93aW5nRGlmZnMoKTtcbiAgfSk7XG5cbiAgdGhpcy5lZGl0U3RhdGUuc3Vic2NyaWJlKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gJ25vbmUnKSB7XG4gICAgICBzZWxmLnBhdGNoTGluZUxpc3QoW10pO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09ICdwYXRjaGVkJykge1xuICAgICAgaWYgKHNlbGYuZGlmZigpLnJlbmRlcikgc2VsZi5kaWZmKCkucmVuZGVyKCk7XG4gICAgfVxuICB9KTtcbn1cbkZpbGVWaWV3TW9kZWwucHJvdG90eXBlLmdldFNwZWNpZmljRGlmZiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gY29tcG9uZW50cy5jcmVhdGUoIXRoaXMubmFtZSgpIHx8IHRoaXMuZmlsZVR5cGUoKSArICdkaWZmJywge1xuICAgIGZpbGVuYW1lOiB0aGlzLm5hbWUoKSxcbiAgICByZXBvUGF0aDogdGhpcy5zdGFnaW5nLnJlcG9QYXRoLFxuICAgIHNlcnZlcjogdGhpcy5zZXJ2ZXIsXG4gICAgdGV4dERpZmZUeXBlOiB0aGlzLnRleHREaWZmVHlwZSxcbiAgICBpc1Nob3dpbmdEaWZmczogdGhpcy5pc1Nob3dpbmdEaWZmcyxcbiAgICBkaWZmUHJvZ3Jlc3NCYXI6IHRoaXMuZGlmZlByb2dyZXNzQmFyLFxuICAgIHBhdGNoTGluZUxpc3Q6IHRoaXMucGF0Y2hMaW5lTGlzdCxcbiAgICBlZGl0U3RhdGU6IHRoaXMuZWRpdFN0YXRlLFxuICAgIHdvcmRXcmFwOiB0aGlzLndvcmRXcmFwXG4gIH0pO1xufVxuRmlsZVZpZXdNb2RlbC5wcm90b3R5cGUuc2V0U3RhdGUgPSBmdW5jdGlvbihzdGF0ZSkge1xuICB0aGlzLmRpc3BsYXlOYW1lKHN0YXRlLmRpc3BsYXlOYW1lKTtcbiAgdGhpcy5pc05ldyhzdGF0ZS5pc05ldyk7XG4gIHRoaXMucmVtb3ZlZChzdGF0ZS5yZW1vdmVkKTtcbiAgdGhpcy5jb25mbGljdChzdGF0ZS5jb25mbGljdCk7XG4gIHRoaXMucmVuYW1lZChzdGF0ZS5yZW5hbWVkKTtcbiAgdGhpcy5maWxlVHlwZShzdGF0ZS50eXBlKTtcbiAgdGhpcy5hZGRpdGlvbnMoc3RhdGUuYWRkaXRpb25zICE9ICctJyA/ICcrJyArIHN0YXRlLmFkZGl0aW9ucyA6ICcnKTtcbiAgdGhpcy5kZWxldGlvbnMoc3RhdGUuZGVsZXRpb25zICE9ICctJyA/ICctJyArIHN0YXRlLmRlbGV0aW9ucyA6ICcnKTtcbiAgdGhpcy5kaWZmID0ga28ub2JzZXJ2YWJsZSh0aGlzLmdldFNwZWNpZmljRGlmZigpKTtcbiAgaWYgKHRoaXMuZGlmZigpLmlzTmV3KSB0aGlzLmRpZmYoKS5pc05ldyhzdGF0ZS5pc05ldyk7XG4gIGlmICh0aGlzLmRpZmYoKS5pc1JlbW92ZWQpIHRoaXMuZGlmZigpLmlzUmVtb3ZlZChzdGF0ZS5yZW1vdmVkKTtcbn1cbkZpbGVWaWV3TW9kZWwucHJvdG90eXBlLnRvZ2dsZVN0YWdlZCA9IGZ1bmN0aW9uKCkge1xuICBpZiAodGhpcy5lZGl0U3RhdGUoKSA9PT0gJ25vbmUnKSB7XG4gICAgdGhpcy5lZGl0U3RhdGUoJ3N0YWdlZCcpO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuZWRpdFN0YXRlKCdub25lJyk7XG4gIH1cbiAgdGhpcy5wYXRjaExpbmVMaXN0KFtdKTtcbn1cbkZpbGVWaWV3TW9kZWwucHJvdG90eXBlLmRpc2NhcmRDaGFuZ2VzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgaWYgKHVuZ2l0LmNvbmZpZy5kaXNhYmxlRGlzY2FyZFdhcm5pbmcgfHwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLnN0YWdpbmcubXV0ZWRUaW1lIDwgdW5naXQuY29uZmlnLmRpc2FibGVEaXNjYXJkTXV0ZVRpbWUpIHtcbiAgICBzZWxmLnNlcnZlci5wb3N0KCcvZGlzY2FyZGNoYW5nZXMnLCB7IHBhdGg6IHNlbGYuc3RhZ2luZy5yZXBvUGF0aCgpLCBmaWxlOiBzZWxmLm5hbWUoKSB9KTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgZGlhZyA9IGNvbXBvbmVudHMuY3JlYXRlKCd5ZXNub211dGVkaWFsb2cnLCB7IHRpdGxlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRpc2NhcmQgdGhlc2UgY2hhbmdlcz8nLCBkZXRhaWxzOiAnVGhpcyBvcGVyYXRpb24gY2Fubm90IGJlIHVuZG9uZS4nfSk7XG4gICAgZGlhZy5jbG9zZWQuYWRkKGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKGRpYWcucmVzdWx0KCkpIHNlbGYuc2VydmVyLnBvc3QoJy9kaXNjYXJkY2hhbmdlcycsIHsgcGF0aDogc2VsZi5zdGFnaW5nLnJlcG9QYXRoKCksIGZpbGU6IHNlbGYubmFtZSgpIH0pO1xuICAgICAgaWYgKGRpYWcucmVzdWx0KCkgPT09IFwibXV0ZVwiKSBzZWxmLnN0YWdpbmcubXV0ZWRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgfSk7XG4gICAgcHJvZ3JhbUV2ZW50cy5kaXNwYXRjaCh7IGV2ZW50OiAncmVxdWVzdC1zaG93LWRpYWxvZycsIGRpYWxvZzogZGlhZyB9KTtcbiAgfVxufVxuRmlsZVZpZXdNb2RlbC5wcm90b3R5cGUuaWdub3JlRmlsZSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuc2VydmVyLnBvc3QoJy9pZ25vcmVmaWxlJywgeyBwYXRoOiB0aGlzLnN0YWdpbmcucmVwb1BhdGgoKSwgZmlsZTogdGhpcy5uYW1lKCkgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgaWYgKGVyciAmJiBlcnIuZXJyb3JDb2RlID09ICdmaWxlLWFscmVhZHktZ2l0LWlnbm9yZWQnKSB7XG4gICAgICAvLyBUaGUgZmlsZSB3YXMgYWxyZWFkeSBpbiB0aGUgLmdpdGlnbm9yZSwgc28gZm9yY2UgYW4gdXBkYXRlIG9mIHRoZSBzdGFnaW5nIGFyZWEgKHRvIGhvcGVmdWxsIGNsZWFyIGF3YXkgdGhpcyBmaWxlKVxuICAgICAgcHJvZ3JhbUV2ZW50cy5kaXNwYXRjaCh7IGV2ZW50OiAnd29ya2luZy10cmVlLWNoYW5nZWQnIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cbkZpbGVWaWV3TW9kZWwucHJvdG90eXBlLnJlc29sdmVDb25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICB0aGlzLnNlcnZlci5wb3N0KCcvcmVzb2x2ZWNvbmZsaWN0cycsIHsgcGF0aDogdGhpcy5zdGFnaW5nLnJlcG9QYXRoKCksIGZpbGVzOiBbdGhpcy5uYW1lKCldIH0pO1xufVxuRmlsZVZpZXdNb2RlbC5wcm90b3R5cGUudG9nZ2xlRGlmZnMgPSBmdW5jdGlvbigpIHtcbiAgaWYgKHRoaXMucmVuYW1lZCgpKSByZXR1cm47IC8vIGRvIG5vdCBzaG93IGRpZmZzIGZvciByZW5hbWVzXG4gIGlmICh0aGlzLmlzU2hvd2luZ0RpZmZzKCkpIHtcbiAgICB0aGlzLmlzU2hvd2luZ0RpZmZzKGZhbHNlKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmlzU2hvd2luZ0RpZmZzKHRydWUpO1xuICAgIHRoaXMuaW52YWxpZGF0ZURpZmYoKTtcbiAgfVxufVxuRmlsZVZpZXdNb2RlbC5wcm90b3R5cGUucGF0Y2hDbGljayA9IGZ1bmN0aW9uKCkge1xuICBpZiAoIXRoaXMuaXNTaG93aW5nRGlmZnMoKSkgcmV0dXJuO1xuXG4gIGlmICh0aGlzLmVkaXRTdGF0ZSgpID09PSAncGF0Y2hlZCcpIHtcbiAgICB0aGlzLmVkaXRTdGF0ZSgnc3RhZ2VkJyk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5lZGl0U3RhdGUoJ3BhdGNoZWQnKTtcbiAgfVxufVxuRmlsZVZpZXdNb2RlbC5wcm90b3R5cGUuaW52YWxpZGF0ZURpZmYgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5kaWZmKCkuaW52YWxpZGF0ZURpZmYoKTtcbn1cbiJdfQ== diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.css deleted file mode 100644 index ced996d0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.css +++ /dev/null @@ -1,186 +0,0 @@ -.staging { - background: #643A44; - box-shadow: 0px -1px 15px #252833; - color: #B8A5A5; - z-index: 5; - position: relative; -} -.staging .form-control:disabled { - background-color: rgba(64, 36, 43, 0.75); -} -.staging .arrowDown { - position: absolute; - left: 445px; - bottom: 0px; -} -.staging .arrowDown .arrow { - height: 0px; - width: 0px; - border-top: 15px solid #633943; - border-right: 15px solid transparent; - border-left: 15px solid transparent; -} -.staging .btn-load-more { - display: block; - margin-left: auto; - margin-right: auto; -} -.staging .file-area { - position: relative; -} -.staging .file-area .commands { - width: 100%; -} -.staging .validationError { - display: none; - color: #D6542D; - padding: 0.25em; -} -.staging:hover .validationError { - display: inline-block; -} -.staging .diffContainer { - margin-top: 0px; - border-radius: 3px; - background: rgba(255, 255, 255, 0.1); -} -.staging .discard { - background: transparent; - color: rgba(255, 255, 255, 0.3); - border-radius: 3px; - padding: 3px; - padding-left: 5px; - padding-right: 5px; - cursor: pointer; -} -.staging .discard:hover { - background: #000; - color: rgba(255, 255, 255, 0.9); -} -.staging .ignore { - background: transparent; - color: rgba(255, 255, 255, 0.3); - border-radius: 3px; - padding: 3px; - padding-left: 5px; - padding-right: 5px; - cursor: pointer; - font-weight: bold; -} -.staging .ignore:hover { - background: #55f; - color: rgba(255, 255, 255, 0.9); -} -.staging .ignore + .tooltip .tooltip-inner { - background: #55f; - color: rgba(255, 255, 255, 0.9); -} -.staging .ignore + .tooltip .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #55f; -} -.staging .patch { - background: #279124; - color: rgba(255, 255, 255, 0.9); - border-radius: 3px; - padding: 3px; - padding-left: 5px; - padding-right: 5px; - cursor: pointer; - font-weight: bold; -} -.staging .patch:hover { - background: #279124; - color: rgba(255, 255, 255, 0.9); -} -.staging .patch + .tooltip .tooltip-inner { - background: #279124; - color: rgba(255, 255, 255, 0.9); -} -.staging .patch + .tooltip .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #279124; -} -.staging .files { - position: relative; -} -.staging .files .file { - padding: 0.3em; -} -.staging .files .file.showingDiffs .name { - background: rgba(255, 255, 255, 0.1); - color: #000; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; -} -.staging .files .file .name { - background: transparent; - font-size: 1.3em; - cursor: pointer; - padding: 3px; - border: 0px; - border-radius: 3px; - color: rgba(255, 255, 255, 0.8); -} -.staging .files .file .new, -.staging .files .file .deleted, -.staging .files .file .conflict { - padding: 3px; - padding-left: 5px; - padding-right: 5px; -} -.staging .files .file .new, -.staging .files .file .additions { - color: #949494; - vertical-align: middle; -} -.staging .files .file .deleted, -.staging .files .file .deletions { - color: #7B7B7B; - vertical-align: middle; -} -.staging .files .file .conflict { - color: #DB12C0; - cursor: pointer; -} -.staging .files .file .conflict .explanation { - display: none; -} -.staging .files .file .conflict:hover { - background: #A445ED; - color: #000; - border-radius: 3px; -} -.staging .files .file .conflict:hover .explanation { - display: inline; -} -.staging .btn-group { - margin-right: 10px; -} -@media (min-width: 992px) { - .staging .arrowDown { - left: 595px; - } -} -.commit-message-title-counter { - right: 20px; - position: absolute; -} -.checkmark { - color: #fff; - display: inline-block; - opacity: 0.3; - cursor: pointer; -} -.checkmark.checked { - opacity: 0.8; -} -.checkmark span { - top: 5px; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.html deleted file mode 100644 index 041d6963..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.html +++ /dev/null @@ -1,97 +0,0 @@ - -
-
-
-
-
-
- Nothing to commit. Amend previous commit? -
-
-
- - -
- - - Amend last commit - - -
- - - - -
-
-
- - - - -
- - -
-
- - -
-
- -
-
-
- -
- - New - Removed - - - Resolve Conflict - Patch - i - - -
- -
-
-
-
-
-
diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.js deleted file mode 100644 index 4e5ae276..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.js +++ /dev/null @@ -1,417 +0,0 @@ -var ko = require('knockout'); -var inherits = require('util').inherits; -var components = require('ungit-components'); -var programEvents = require('ungit-program-events'); -var _ = require('lodash'); -var filesToDisplayIncrmentBy = 50; -var filesToDisplayLimit = filesToDisplayIncrmentBy; -// when discard button is clicked and disable discard warning is selected, for next 5 minutes disable discard warnings -var muteGraceTimeDuration = 60 * 1000 * 5; - -components.register('staging', function(args) { - return new StagingViewModel(args.server, args.repoPath); -}); - -var StagingViewModel = function(server, repoPath) { - var self = this; - this.server = server; - this.repoPath = repoPath; - this.filesByPath = {}; - this.files = ko.observableArray(); - this.commitMessageTitleCount = ko.observable(0); - this.commitMessageTitle = ko.observable(); - this.commitMessageTitle.subscribe(function(value) { - self.commitMessageTitleCount(value.length); - }); - this.commitMessageBody = ko.observable(); - this.wordWrap = ko.observable(false); - this.inRebase = ko.observable(false); - this.inMerge = ko.observable(false); - this.inCherry = ko.observable(false); - this.conflictText = ko.computed(function() { - if (self.inMerge()) { - self.conflictContinue = self.conflictResolution.bind(self, '/merge/continue', self.conflictContinueProgressBar) - self.conflictAbort = self.conflictResolution.bind(self, '/merge/abort', self.conflictAbortProgressBar) - return "Merge"; - } else if (self.inRebase()) { - self.conflictContinue = self.conflictResolution.bind(self, '/rebase/continue', self.conflictContinueProgressBar) - self.conflictAbort = self.conflictResolution.bind(self, '/rebase/abort', self.conflictAbortProgressBar) - return "Rebase"; - } else if (self.inCherry()) { - self.conflictContinue = self.commit; - self.conflictAbort = self.discardAllChanges; - return "Cherry-pick"; - } else { - self.conflictContinue = undefined; - self.conflictAbort = undefined; - return undefined; - } - }); - this.allStageFlag = ko.observable(false); - this.HEAD = ko.observable(); - this.isStageValid = ko.computed(function() { - return !self.inRebase() && !self.inMerge() && !self.inCherry(); - }); - this.nFiles = ko.computed(function() { - return self.files().length; - }); - this.nStagedFiles = ko.computed(function() { - return self.files().filter(function(f) { return f.editState() === 'staged'; }).length; - }); - this.stats = ko.computed(function() { - return self.nFiles() + ' files, ' + self.nStagedFiles() + ' to be commited'; - }); - this.amend = ko.observable(false); - this.canAmend = ko.computed(function() { - return self.HEAD() && !self.inRebase() && !self.inMerge(); - }); - this.canStashAll = ko.computed(function() { - return !self.amend(); - }); - this.showNux = ko.computed(function() { - return self.files().length == 0 && !self.amend() && !self.inRebase(); - }); - this.committingProgressBar = components.create('progressBar', { predictionMemoryKey: 'committing-' + this.repoPath(), temporary: true }); - this.conflictContinueProgressBar = components.create('progressBar', { predictionMemoryKey: 'conflict-continue-' + this.repoPath(), temporary: true }); - this.conflictAbortProgressBar = components.create('progressBar', { predictionMemoryKey: 'conflict-abort-' + this.repoPath(), temporary: true }); - this.stashProgressBar = components.create('progressBar', { predictionMemoryKey: 'stash-' + this.repoPath(), temporary: true }); - this.commitValidationError = ko.computed(function() { - if (!self.amend() && !self.files().some(function(file) { return file.editState() === 'staged' || file.editState() === 'patched'; })) - return "No files to commit"; - - if (self.files().some(function(file) { return file.conflict(); })) - return "Files in conflict"; - - if (!self.commitMessageTitle() && !self.inRebase()) return "Provide a title"; - - if (self.textDiffType() === 'sidebysidediff') { - var patchFiles = self.files().filter(function(file) { return file.editState() === 'patched'; }); - if (patchFiles.length > 0) return "Cannot patch with side by side view." - } - - return ""; - }); - this.toggleSelectAllGlyphClass = ko.computed(function() { - if (self.allStageFlag()) return 'glyphicon-unchecked'; - else return 'glyphicon-check'; - }); - - this.refreshContentThrottled = _.throttle(this.refreshContent.bind(this), 400, { trailing: true }); - this.invalidateFilesDiffsThrottled = _.throttle(this.invalidateFilesDiffs.bind(this), 400, { trailing: true }); - this.refreshContentThrottled(); - this.textDiffType = ko.observable('textdiff'); - if (window.location.search.indexOf('noheader=true') >= 0) - this.refreshButton = components.create('refreshbutton'); - this.loadAnyway = false; - this.isDiagOpen = false; - this.mutedTime = null; -} -StagingViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('staging', this, {}, parentElement); -} -StagingViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'request-app-content-refresh') { - this.refreshContent(); - this.invalidateFilesDiffs(); - } - if (event.event == 'working-tree-changed') { - this.refreshContentThrottled(); - this.invalidateFilesDiffsThrottled(); - } -} -StagingViewModel.prototype.refreshContent = function(callback) { - var self = this; - this.server.get('/head', { path: this.repoPath(), limit: 1 }, function(err, log) { - if (err) { - return err.errorCode == 'must-be-in-working-tree' || - err.errorCode == 'no-such-path'; - } - if (log.length > 0) { - var array = log[0].message.split('\n'); - self.HEAD({title: array[0], body: array.slice(2).join('\n')}); - } - else self.HEAD(null); - }); - this.server.get('/status', { path: this.repoPath(), fileLimit: filesToDisplayLimit }, function(err, status) { - if (err) { - if (callback) callback(err); - return err.errorCode == 'must-be-in-working-tree' || - err.errorCode == 'no-such-path'; - } - - if (Object.keys(status.files).length > filesToDisplayLimit && !self.loadAnyway) { - if (self.isDiagOpen) { - if (callback) callback(); - return; - } - self.isDiagOpen = true; - var diag = components.create('TooManyFilesDialogViewModel', { title: 'Too many unstaged files', details: 'It is recommended to use command line as ungit may be too slow.'}); - - diag.closed.add(function() { - self.isDiagOpen = false; - if (diag.result()) { - self.loadAnyway = true; - self.loadStatus(status, callback); - } else { - window.location.href = '/#/'; - } - }) - - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); - } else { - self.loadStatus(status, callback); - } - }); -} -StagingViewModel.prototype.loadStatus = function(status, callback) { - this.setFiles(status.files); - this.inRebase(!!status.inRebase); - this.inMerge(!!status.inMerge); - // There are time where '.git/CHERRY_PICK_HEAD' file is created and no files are in conflicts. - // in such cases we should ignore exception as no good way to resolve it. - this.inCherry(!!status.inCherry && !!status.inConflict); - - if (this.inRebase()) { - this.commitMessageTitle('Rebase conflict'); - this.commitMessageBody('Commit messages are not applicable!\n(╯°□°)╯︵ ┻━┻'); - } else if (this.inMerge() || this.inCherry()) { - var lines = status.commitMessage.split('\n'); - this.commitMessageTitle(lines[0]); - this.commitMessageBody(lines.slice(1).join('\n')); - } - if (callback) callback(); -} -StagingViewModel.prototype.setFiles = function(files) { - var self = this; - var newFiles = []; - for(var file in files) { - var fileViewModel = this.filesByPath[file]; - if (!fileViewModel) { - this.filesByPath[file] = fileViewModel = new FileViewModel(self, file, self.textDiffType, self.wordWrap); - } else { - // this is mainly for patching and it may not fire due to the fact that - // '/commit' triggers working-tree-changed which triggers throttled refresh - fileViewModel.invalidateDiff(); - } - fileViewModel.setState(files[file]); - newFiles.push(fileViewModel); - } - this.files(newFiles); - programEvents.dispatch({ event: 'init-tooltip' }); -} -StagingViewModel.prototype.toggleAmend = function() { - if (!this.amend() && !this.commitMessageTitle()) { - this.commitMessageTitle(this.HEAD().title); - this.commitMessageBody(this.HEAD().body); - } - else if(this.amend()) { - var isPrevDefaultMsg = - this.commitMessageTitle() == this.HEAD().title && - this.commitMessageBody() == this.HEAD().body; - if (isPrevDefaultMsg) { - this.commitMessageTitle(''); - this.commitMessageBody(''); - } - } - this.amend(!this.amend()); -} -StagingViewModel.prototype.resetMessages = function() { - this.commitMessageTitle(''); - this.commitMessageBody(''); - this.amend(false); -} -StagingViewModel.prototype.commit = function() { - var self = this; - this.committingProgressBar.start(); - var files = this.files().filter(function(file) { - return file.editState() !== 'none'; - }).map(function(file) { - return { name: file.name(), patchLineList: file.editState() === 'patched' ? file.patchLineList() : null }; - }); - var commitMessage = this.commitMessageTitle(); - if (this.commitMessageBody()) commitMessage += '\n\n' + this.commitMessageBody(); - this.server.post('/commit', { path: this.repoPath(), message: commitMessage, files: files, amend: this.amend() }, function(err, res) { - self.committingProgressBar.stop(); - if (err) { - return; - } - self.resetMessages(); - self.files([]); - }); -} -StagingViewModel.prototype.conflictResolution = function(apiPath, progressBar) { - var self = this; - progressBar.start(); - var commitMessage = this.commitMessageTitle(); - if (this.commitMessageBody()) commitMessage += '\n\n' + this.commitMessageBody(); - this.server.post(apiPath, { path: this.repoPath(), message: commitMessage }, function(err, res) { - self.resetMessages(); - progressBar.stop(); - }); -} -StagingViewModel.prototype.invalidateFilesDiffs = function() { - this.files().forEach(function(file) { - file.diff().invalidateDiff(); - }); -} -StagingViewModel.prototype.discardAllChanges = function() { - var self = this; - var diag = components.create('yesnodialog', { title: 'Are you sure you want to discard all changes?', details: 'This operation cannot be undone.'}); - diag.closed.add(function() { - if (diag.result()) self.server.post('/discardchanges', { path: self.repoPath(), all: true }); - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} -StagingViewModel.prototype.stashAll = function() { - var self = this; - this.stashProgressBar.start(); - this.server.post('/stashes', { path: this.repoPath(), message: this.commitMessageTitle() }, function(err, res) { - self.stashProgressBar.stop(); - }); -} -StagingViewModel.prototype.toggleAllStages = function() { - var self = this; - for (var n in self.files()){ - self.files()[n].editState(self.allStageFlag() ? 'staged' : 'none'); - } - - self.allStageFlag(!self.allStageFlag()); -} -StagingViewModel.prototype.textDiffTypeChange = function(type) { - this.textDiffType(type); -} -StagingViewModel.prototype.onEnter = function(d, e){ - if (e.keyCode === 13 && !this.commitValidationError()) { - this.commit(); - } - return true; -}; -StagingViewModel.prototype.onAltEnter = function(d, e){ - if (e.keyCode === 13 && e.altKey && !this.commitValidationError()) { - this.commit(); - } - return true; -}; -StagingViewModel.prototype.toggleWordWrap = function(state) { - this.wordWrap(state); -}; - -var FileViewModel = function(staging, name, textDiffType, wordWrap) { - var self = this; - this.staging = staging; - this.server = staging.server; - this.editState = ko.observable('staged'); // staged, patched and none - this.name = ko.observable(name); - this.displayName = ko.observable(name); - this.isNew = ko.observable(false); - this.removed = ko.observable(false); - this.conflict = ko.observable(false); - this.renamed = ko.observable(false); - this.isShowingDiffs = ko.observable(false); - this.diffProgressBar = components.create('progressBar', { predictionMemoryKey: 'diffs-' + this.staging.repoPath(), temporary: true }); - this.isShowingDiffs = ko.observable(false); - this.textDiffType = textDiffType; - this.wordWrap = wordWrap; - this.additions = ko.observable(''); - this.deletions = ko.observable(''); - this.fileType = ko.observable('text'); - this.patchLineList = ko.observableArray(); - this.diff = ko.observable(); - this.isShowPatch = ko.computed(function() { - // if not new file - // and if not merging - // and if not rebasing - // and if text file - // and if diff is showing, display patch button - return !self.isNew() && !staging.inMerge() && !staging.inRebase() && self.fileType() === 'text' && self.isShowingDiffs(); - }); - - this.editState.subscribe(function (value) { - if (value === 'none') { - self.patchLineList([]); - } else if (value === 'patched') { - if (self.diff().render) self.diff().render(); - } - }); -} -FileViewModel.prototype.getSpecificDiff = function() { - return components.create(!this.name() || this.fileType() + 'diff', { - filename: this.name(), - repoPath: this.staging.repoPath, - server: this.server, - textDiffType: this.textDiffType, - isShowingDiffs: this.isShowingDiffs, - diffProgressBar: this.diffProgressBar, - patchLineList: this.patchLineList, - editState: this.editState, - wordWrap: this.wordWrap - }); -} -FileViewModel.prototype.setState = function(state) { - this.displayName(state.displayName); - this.isNew(state.isNew); - this.removed(state.removed); - this.conflict(state.conflict); - this.renamed(state.renamed); - this.fileType(state.type); - this.additions(state.additions != '-' ? '+' + state.additions : ''); - this.deletions(state.deletions != '-' ? '-' + state.deletions : ''); - this.diff = ko.observable(this.getSpecificDiff()); - if (this.diff().isNew) this.diff().isNew(state.isNew); - if (this.diff().isRemoved) this.diff().isRemoved(state.removed); -} -FileViewModel.prototype.toggleStaged = function() { - if (this.editState() === 'none') { - this.editState('staged'); - } else { - this.editState('none'); - } - this.patchLineList([]); -} -FileViewModel.prototype.discardChanges = function() { - var self = this; - if (ungit.config.disableDiscardWarning || new Date().getTime() - this.staging.mutedTime < ungit.config.disableDiscardMuteTime) { - self.server.post('/discardchanges', { path: self.staging.repoPath(), file: self.name() }); - } else { - var diag = components.create('yesnomutedialog', { title: 'Are you sure you want to discard these changes?', details: 'This operation cannot be undone.'}); - diag.closed.add(function() { - if (diag.result()) self.server.post('/discardchanges', { path: self.staging.repoPath(), file: self.name() }); - if (diag.result() === "mute") self.staging.mutedTime = new Date().getTime(); - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); - } -} -FileViewModel.prototype.ignoreFile = function() { - var self = this; - this.server.post('/ignorefile', { path: this.staging.repoPath(), file: this.name() }, function(err) { - if (err && err.errorCode == 'file-already-git-ignored') { - // The file was already in the .gitignore, so force an update of the staging area (to hopefull clear away this file) - programEvents.dispatch({ event: 'working-tree-changed' }); - return true; - } - }); -} -FileViewModel.prototype.resolveConflict = function() { - this.server.post('/resolveconflicts', { path: this.staging.repoPath(), files: [this.name()] }); -} -FileViewModel.prototype.toggleDiffs = function() { - if (this.renamed()) return; // do not show diffs for renames - if (this.isShowingDiffs()) { - this.isShowingDiffs(false); - } else { - this.isShowingDiffs(true); - this.invalidateDiff(); - } -} -FileViewModel.prototype.patchClick = function() { - if (!this.isShowingDiffs()) return; - - if (this.editState() === 'patched') { - this.editState('staged'); - } else { - this.editState('patched'); - } -} -FileViewModel.prototype.invalidateDiff = function() { - this.diff().invalidateDiff(); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.less b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.less deleted file mode 100644 index 0a330f8d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/staging.less +++ /dev/null @@ -1,215 +0,0 @@ - -@import "public/less/variables.less"; - -.staging { - background: #643A44; - box-shadow: 0px -1px 15px #252833; - color: #B8A5A5; - z-index: 5; - position: relative; - - .form-control { - &:disabled { - background-color: rgba(64, 36, 43, 0.75); - } - } - - .arrowDown { - position: absolute; - left: (@log-width-small + 45px); - bottom: 0px; - .arrow { - height: 0px; - width: 0px; - border-top: 15px solid rgb(99, 57, 67); - border-right: 15px solid transparent; - border-left: 15px solid transparent; - } - } - - .btn-load-more { - display: block; - margin-left: auto; - margin-right: auto; - } - - .file-area { - position: relative; - - .commands { - width: 100%; - } - } - - .validationError { - display: none; - color: #D6542D; - padding: 0.25em; - } - &:hover .validationError { - display: inline-block; - } - - .diffContainer { - margin-top: 0px; - border-radius: 3px; - background: rgba(255, 255, 255, 0.1); - } - - .discard { - background: transparent; - color: rgba(255, 255, 255, 0.3); - border-radius: 3px; - padding: 3px; - padding-left: 5px; - padding-right: 5px; - cursor: pointer; - &:hover { - background: #000; - color: rgba(255, 255, 255, 0.9); - } - } - - .ignore { - background: transparent; - color: rgba(255, 255, 255, 0.3); - border-radius: 3px; - padding: 3px; - padding-left: 5px; - padding-right: 5px; - cursor: pointer; - font-weight: bold; - &:hover { - background: #55f; - color: rgba(255, 255, 255, 0.9); - } - } - - .ignore + .tooltip { - .tooltip-inner { - background: #55f; - color: rgba(255, 255, 255, 0.9); - } - .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #55f; - } - } - - .patch { - background: #279124; - color: rgba(255, 255, 255, 0.9); - border-radius: 3px; - padding: 3px; - padding-left: 5px; - padding-right: 5px; - cursor: pointer; - font-weight: bold; - &:hover { - background: #279124; - color: rgba(255, 255, 255, 0.9); - } - } - .patch + .tooltip { - .tooltip-inner { - background: #279124; - color: rgba(255, 255, 255, 0.9); - } - .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #279124; - } - } - - .files { - position: relative; - .file { - &.showingDiffs { - .name { - background: rgba(255, 255, 255, 0.1); - color: #000; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - } - } - .name { - background: transparent; - font-size: 1.3em; - cursor: pointer; - padding: 3px; - border: 0px; - border-radius: 3px; - color: rgba(255, 255, 255, 0.8); - } - padding: 0.3em; - - .new, .deleted, .conflict { - padding: 3px; - padding-left: 5px; - padding-right: 5px; - } - .new, .additions { - color: #949494; - vertical-align: middle; - } - .deleted, .deletions { - color: #7B7B7B; - vertical-align: middle; - } - .conflict { - color: #DB12C0; - cursor: pointer; - .explanation { - display: none; - } - &:hover { - background: #A445ED; - color: #000; - border-radius: 3px; - .explanation { - display: inline; - } - } - } - } - } - .btn-group { - margin-right: 10px - } -} - -@media (min-width: @screen-md-min) { - .staging { - .arrowDown { - left: (@log-width-large + 45px); - } - } -} - -@media (min-width: @screen-lg-min) { -} - -.commit-message-title-counter { - right: 20px; - position: absolute; -} - - -.checkmark { - color: #fff; - display: inline-block; - opacity: 0.3; - cursor: pointer; - &.checked { - opacity: 0.8; - } - span { - top: 5px; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/ungit-plugin.json deleted file mode 100644 index a03aa47d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/staging/ungit-plugin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "staging": "staging.html" - }, - "javascript": "staging.bundle.js", - "css": "staging.css" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.bundle.js deleted file mode 100644 index 9a52c070..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.bundle.js +++ /dev/null @@ -1,69 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 0 && self.isShow(); }); - this.refresh(); -} - -StashViewModel.prototype.updateNode = function(parentElement) { - if (!this.isDisabled) ko.renderTemplate('stash', this, {}, parentElement); -} -StashViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'request-app-content-refresh' || - event.event == 'working-tree-changed' || - event.event == 'git-directory-changed') - this.refresh(); -} -StashViewModel.prototype.refresh = function() { - var self = this; - this.server.get('/stashes', { path: this.repoPath() }, function(err, stashes) { - if (err) { - if (err.errorCode == 'no-such-path') return true; - return; - } - self.stashedChanges(stashes.map(function(item) { return new StashItemViewModel(self, item); })); - }); -} -StashViewModel.prototype.toggleShowStash = function() { - this.isShow(!this.isShow()); - localStorage['showStash'] = this.isShow(); -} - -},{"knockout":"knockout","moment":"moment","ungit-components":"ungit-components"}]},{},[1]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJjb21wb25lbnRzL3N0YXNoL3N0YXNoLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIlxudmFyIGtvID0gcmVxdWlyZSgna25vY2tvdXQnKTtcbnZhciBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcbnZhciBjb21wb25lbnRzID0gcmVxdWlyZSgndW5naXQtY29tcG9uZW50cycpO1xuXG5jb21wb25lbnRzLnJlZ2lzdGVyKCdzdGFzaCcsIGZ1bmN0aW9uKGFyZ3MpIHtcbiAgcmV0dXJuIG5ldyBTdGFzaFZpZXdNb2RlbChhcmdzLnNlcnZlciwgYXJncy5yZXBvUGF0aCk7XG59KTtcblxuZnVuY3Rpb24gU3Rhc2hJdGVtVmlld01vZGVsKHN0YXNoLCBkYXRhKSB7XG4gIHRoaXMuc3Rhc2ggPSBzdGFzaDtcbiAgdGhpcy5zZXJ2ZXIgPSBzdGFzaC5zZXJ2ZXI7XG4gIHRoaXMuaWQgPSBkYXRhLmlkO1xuICB0aGlzLnRpdGxlID0gZGF0YS5uYW1lICsgJyAnICsgbW9tZW50KG5ldyBEYXRlKGRhdGEuZGF0ZSkpLmZyb21Ob3coKTtcbiAgdGhpcy5ib2R5ID0gZGF0YS50aXRsZTtcbiAgdGhpcy5zdGFzaFBvcFByb2dyZXNzQmFyID0gY29tcG9uZW50cy5jcmVhdGUoJ3Byb2dyZXNzQmFyJywgeyBwcmVkaWN0aW9uTWVtb3J5S2V5OiAnc3Rhc2gtcG9wJywgdGVtcG9yYXJ5OiB0cnVlIH0pO1xufVxuU3Rhc2hJdGVtVmlld01vZGVsLnByb3RvdHlwZS5wb3AgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnN0YXNoUG9wUHJvZ3Jlc3NCYXIuc3RhcnQoKTtcbiAgdGhpcy5zZXJ2ZXIuZGVsKCcvc3Rhc2hlcy8nICsgdGhpcy5pZCwgeyBwYXRoOiB0aGlzLnN0YXNoLnJlcG9QYXRoKCksIHBvcDogdHJ1ZSB9LCBmdW5jdGlvbihlcnIsIHJlcykge1xuICAgIHNlbGYuc3Rhc2hQb3BQcm9ncmVzc0Jhci5zdG9wKCk7XG4gIH0pO1xufVxuU3Rhc2hJdGVtVmlld01vZGVsLnByb3RvdHlwZS5kcm9wID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5zdGFzaFBvcFByb2dyZXNzQmFyLnN0YXJ0KCk7XG4gIHRoaXMuc2VydmVyLmRlbCgnL3N0YXNoZXMvJyArIHRoaXMuaWQsIHsgcGF0aDogdGhpcy5zdGFzaC5yZXBvUGF0aCgpIH0sIGZ1bmN0aW9uKGVyciwgcmVzKSB7XG4gICAgc2VsZi5zdGFzaFBvcFByb2dyZXNzQmFyLnN0b3AoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIFN0YXNoVmlld01vZGVsKHNlcnZlciwgcmVwb1BhdGgpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnNlcnZlciA9IHNlcnZlcjtcbiAgdGhpcy5yZXBvUGF0aCA9IHJlcG9QYXRoO1xuICB0aGlzLnN0YXNoZWRDaGFuZ2VzID0ga28ub2JzZXJ2YWJsZShbXSk7XG4gIHRoaXMuaXNTaG93ID0ga28ub2JzZXJ2YWJsZShsb2NhbFN0b3JhZ2VbJ3Nob3dTdGFzaCddID09PSAndHJ1ZScpO1xuICB0aGlzLnZpc2libGUgPSBrby5jb21wdXRlZChmdW5jdGlvbigpIHsgcmV0dXJuIHNlbGYuc3Rhc2hlZENoYW5nZXMoKS5sZW5ndGggPiAwICYmIHNlbGYuaXNTaG93KCk7IH0pO1xuICB0aGlzLnJlZnJlc2goKTtcbn1cblxuU3Rhc2hWaWV3TW9kZWwucHJvdG90eXBlLnVwZGF0ZU5vZGUgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50KSB7XG4gIGlmICghdGhpcy5pc0Rpc2FibGVkKSBrby5yZW5kZXJUZW1wbGF0ZSgnc3Rhc2gnLCB0aGlzLCB7fSwgcGFyZW50RWxlbWVudCk7XG59XG5TdGFzaFZpZXdNb2RlbC5wcm90b3R5cGUub25Qcm9ncmFtRXZlbnQgPSBmdW5jdGlvbihldmVudCkge1xuICBpZiAoZXZlbnQuZXZlbnQgPT0gJ3JlcXVlc3QtYXBwLWNvbnRlbnQtcmVmcmVzaCcgfHxcbiAgICBldmVudC5ldmVudCA9PSAnd29ya2luZy10cmVlLWNoYW5nZWQnIHx8XG4gICAgZXZlbnQuZXZlbnQgPT0gJ2dpdC1kaXJlY3RvcnktY2hhbmdlZCcpXG4gICAgdGhpcy5yZWZyZXNoKCk7XG59XG5TdGFzaFZpZXdNb2RlbC5wcm90b3R5cGUucmVmcmVzaCA9IGZ1bmN0aW9uKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuc2VydmVyLmdldCgnL3N0YXNoZXMnLCB7IHBhdGg6IHRoaXMucmVwb1BhdGgoKSB9LCBmdW5jdGlvbihlcnIsIHN0YXNoZXMpIHtcbiAgICBpZiAoZXJyKSB7XG4gICAgICBpZiAoZXJyLmVycm9yQ29kZSA9PSAnbm8tc3VjaC1wYXRoJykgcmV0dXJuIHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNlbGYuc3Rhc2hlZENoYW5nZXMoc3Rhc2hlcy5tYXAoZnVuY3Rpb24oaXRlbSkgeyByZXR1cm4gbmV3IFN0YXNoSXRlbVZpZXdNb2RlbChzZWxmLCBpdGVtKTsgfSkpO1xuICB9KTtcbn1cblN0YXNoVmlld01vZGVsLnByb3RvdHlwZS50b2dnbGVTaG93U3Rhc2ggPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5pc1Nob3coIXRoaXMuaXNTaG93KCkpO1xuICBsb2NhbFN0b3JhZ2VbJ3Nob3dTdGFzaCddID0gdGhpcy5pc1Nob3coKTtcbn1cbiJdfQ== diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.css deleted file mode 100644 index 504d3ab2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.css +++ /dev/null @@ -1,29 +0,0 @@ -.stash { - z-index: 4; - margin-left: 20px; - margin-right: 20px; - background: #55323C; - margin-bottom: -15px; -} -.stash h4 { - margin-top: 0px; -} -.stash-toggle { - width: 120px; - height: 30px; - position: relative; - background: #55323C; - left: 20px; - border-radius: 5px; - padding-top: 5px; - text-align: center; -} -.stash-toggle-text { - cursor: pointer; -} -.stash-toggle-text .glyphicon { - opacity: 0.5; -} -.stash .stash-toggle-text .glyphicon { - font-size: 14px; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.html deleted file mode 100644 index 752c9a41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.html +++ /dev/null @@ -1,23 +0,0 @@ -
- - Stash () -
-
-
-

- - Stashed changes () -

-
-
- - -

-

-
- - -
-
-
-
diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.js deleted file mode 100644 index 922c9028..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.js +++ /dev/null @@ -1,65 +0,0 @@ - -var ko = require('knockout'); -var moment = require('moment'); -var components = require('ungit-components'); - -components.register('stash', function(args) { - return new StashViewModel(args.server, args.repoPath); -}); - -function StashItemViewModel(stash, data) { - this.stash = stash; - this.server = stash.server; - this.id = data.id; - this.title = data.name + ' ' + moment(new Date(data.date)).fromNow(); - this.body = data.title; - this.stashPopProgressBar = components.create('progressBar', { predictionMemoryKey: 'stash-pop', temporary: true }); -} -StashItemViewModel.prototype.pop = function() { - var self = this; - this.stashPopProgressBar.start(); - this.server.del('/stashes/' + this.id, { path: this.stash.repoPath(), pop: true }, function(err, res) { - self.stashPopProgressBar.stop(); - }); -} -StashItemViewModel.prototype.drop = function() { - var self = this; - this.stashPopProgressBar.start(); - this.server.del('/stashes/' + this.id, { path: this.stash.repoPath() }, function(err, res) { - self.stashPopProgressBar.stop(); - }); -} - -function StashViewModel(server, repoPath) { - var self = this; - this.server = server; - this.repoPath = repoPath; - this.stashedChanges = ko.observable([]); - this.isShow = ko.observable(localStorage['showStash'] === 'true'); - this.visible = ko.computed(function() { return self.stashedChanges().length > 0 && self.isShow(); }); - this.refresh(); -} - -StashViewModel.prototype.updateNode = function(parentElement) { - if (!this.isDisabled) ko.renderTemplate('stash', this, {}, parentElement); -} -StashViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'request-app-content-refresh' || - event.event == 'working-tree-changed' || - event.event == 'git-directory-changed') - this.refresh(); -} -StashViewModel.prototype.refresh = function() { - var self = this; - this.server.get('/stashes', { path: this.repoPath() }, function(err, stashes) { - if (err) { - if (err.errorCode == 'no-such-path') return true; - return; - } - self.stashedChanges(stashes.map(function(item) { return new StashItemViewModel(self, item); })); - }); -} -StashViewModel.prototype.toggleShowStash = function() { - this.isShow(!this.isShow()); - localStorage['showStash'] = this.isShow(); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.less b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.less deleted file mode 100644 index 523eb60b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/stash.less +++ /dev/null @@ -1,29 +0,0 @@ -.stash { - z-index: 4; - margin-left: 20px; - margin-right: 20px; - background: #55323C; - h4 { - margin-top: 0px; - } - margin-bottom: -15px; -} -.stash-toggle { - width: 120px; - height: 30px; - position: relative; - background: #55323C; - left: 20px; - border-radius: 5px; - padding-top: 5px; - text-align: center; -} -.stash-toggle-text { - cursor: pointer; -} -.stash-toggle-text .glyphicon { - opacity: 0.5; -} -.stash .stash-toggle-text .glyphicon { - font-size: 14px; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/ungit-plugin.json deleted file mode 100644 index efcbcf00..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/stash/ungit-plugin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "stash": "stash.html" - }, - "javascript": "stash.bundle.js", - "css": "stash.css" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/submodules/submodules.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/submodules/submodules.bundle.js deleted file mode 100644 index ce2e4ee6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/submodules/submodules.bundle.js +++ /dev/null @@ -1,111 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/submodules/submodules.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/submodules/submodules.js deleted file mode 100644 index f252c5eb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/submodules/submodules.js +++ /dev/null @@ -1,107 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); -var programEvents = require('ungit-program-events'); - -components.register('submodules', function(args) { - return new SubmodulesViewModel(args.server, args.repoPath); -}); - -function SubmodulesViewModel(server, repoPath) { - var self = this; - this.repoPath = repoPath; - this.server = server; - this.submodules = ko.observableArray(); - - this.updateProgressBar = components.create('progressBar', { predictionMemoryKey: 'Updating Submodules', temporary: true }); - this.fetchProgressBar = components.create('progressBar', { predictionMemoryKey: 'Adding Submodule', temporary: true }); -} - -SubmodulesViewModel.prototype.onProgramEvent = function(event) { - if (event.event == 'submodule-fetch') this.fetchSubmodules(); -} - -SubmodulesViewModel.prototype.updateNode = function(parentElement) { - this.fetchSubmodules(function(submoduleViewModel) { - ko.renderTemplate('submodules', submoduleViewModel, {}, parentElement); - }); -} - -SubmodulesViewModel.prototype.fetchSubmodules = function(callback) { - var self = this; - - this.server.get('/submodules', { path: this.repoPath() }, function(err, submodules) { - // if returned is not array, don't render submodules module - if (submodules && Array.isArray(submodules)) { - self.submodules(submodules); - } else { - self.submodules([]); - } - - if (callback) { - callback(self); - } - }); -} - -SubmodulesViewModel.prototype.isRunning = function() { - return (this.updateProgressBar.running() || this.fetchProgressBar.running()); -} - -SubmodulesViewModel.prototype.updateSubmodules = function() { - if (this.isRunning()) return; - var self = this; - - this.updateProgressBar.start(); - this.server.post('/submodules/update', { path: this.repoPath() }, function(err, result) { - self.updateProgressBar.stop(); - }); -} - -SubmodulesViewModel.prototype.showAddSubmoduleDialog = function() { - var self = this; - var diag = components.create('addsubmoduledialog'); - diag.closed.add(function() { - if (diag.isSubmitted()) { - self.fetchProgressBar.start(); - self.server.post('/submodules/add', { path: self.repoPath(), submoduleUrl: diag.url(), submodulePath: diag.path() }, function(err, result) { - if (err) { - console.log(err); - return; - } - - programEvents.dispatch({ event: 'submodule-fetch' }); - self.fetchProgressBar.stop(); - }); - } - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} - -SubmodulesViewModel.prototype.submoduleLinkClick = function(submodule) { - window.location.href = submodule.url; -} - -SubmodulesViewModel.prototype.submodulePathClick = function(submodule) { - window.location.href = document.URL + '/' + submodule.path; -} - -SubmodulesViewModel.prototype.submoduleRemove = function(submodule) { - var self = this; - var diag = components.create('yesnodialog', { title: 'Are you sure?', details: 'Deleting ' + submodule.name + ' submodule cannot be undone with ungit.'}); - diag.closed.add(function() { - if (diag.result()) { - self.fetchProgressBar.start(); - self.server.del('/submodules', { path: self.repoPath(), submodulePath: submodule.path, submoduleName: submodule.name }, function(err, result) { - if (err) { - console.log(err); - return; - } - - programEvents.dispatch({ event: 'submodule-fetch' }); - self.fetchProgressBar.stop(); - }); - } - }); - programEvents.dispatch({ event: 'request-show-dialog', dialog: diag }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/submodules/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/submodules/ungit-plugin.json deleted file mode 100644 index 8c6f7b65..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/submodules/ungit-plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "submodules": "submodules.html" - }, - "javascript": "submodules.bundle.js" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.bundle.js deleted file mode 100644 index ab9c5353..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.bundle.js +++ /dev/null @@ -1,155 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o(\+|\-)/g, function (match, capture) { - if (self.patchLineList()[index] === undefined) { - self.patchLineList()[index] = true; - } - - return self.getPatchCheckBox(capture, index, self.patchLineList()[index++]); - }); - } - - // ko's binding resolution is not recursive, which means below ko.bind refresh method doesn't work for - // data bind at getPatchCheckBox that is rendered with "html" binding. - // which is reason why manually updating the html content and refreshing kobinding to have it render... - this.htmlSrc = html; - this.isParsed(true); -}; - -TextDiffViewModel.prototype.loadMore = function(callback) { - this.loadCount += this.loadMoreCount(); - this.render(); -} - -TextDiffViewModel.prototype.getPatchCheckBox = function(symbol, index, isActive) { - if (isActive) { - this.numberOfSelectedPatchLines++; - } - return '
' + symbol + ''; -} - -TextDiffViewModel.prototype.togglePatchLine = function(index) { - this.patchLineList()[index] = !this.patchLineList()[index]; - - if (this.patchLineList()[index]) { - this.numberOfSelectedPatchLines++; - } else { - this.numberOfSelectedPatchLines--; - } - - if (this.numberOfSelectedPatchLines === 0) { - this.editState('none'); - } - - return true; -} - -},{"diff2html":undefined,"knockout":"knockout","ungit-components":"ungit-components"}]},{},[1]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJjb21wb25lbnRzL3RleHRkaWZmL3RleHRkaWZmLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCJcbnZhciBrbyA9IHJlcXVpcmUoJ2tub2Nrb3V0Jyk7XG52YXIgY29tcG9uZW50cyA9IHJlcXVpcmUoJ3VuZ2l0LWNvbXBvbmVudHMnKTtcbnZhciBkaWZmMmh0bWwgPSByZXF1aXJlKCdkaWZmMmh0bWwnKS5EaWZmMkh0bWw7XG5cbmNvbXBvbmVudHMucmVnaXN0ZXIoJ3RleHRkaWZmJywgZnVuY3Rpb24oYXJncykge1xuICByZXR1cm4gbmV3IFRleHREaWZmVmlld01vZGVsKGFyZ3MpO1xufSk7XG5cbnZhciBsb2FkTGltaXQgPSAxMDA7XG5cbnZhciBUZXh0RGlmZlZpZXdNb2RlbCA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLmZpbGVuYW1lID0gYXJncy5maWxlbmFtZTtcbiAgdGhpcy5yZXBvUGF0aCA9IGFyZ3MucmVwb1BhdGg7XG4gIHRoaXMuc2VydmVyID0gYXJncy5zZXJ2ZXI7XG4gIHRoaXMuc2hhMSA9IGFyZ3Muc2hhMTtcbiAgdGhpcy5sb2FkTW9yZUNvdW50ID0ga28ub2JzZXJ2YWJsZSgwKTtcbiAgdGhpcy5kaWZmSnNvbiA9IG51bGw7XG4gIHRoaXMubG9hZENvdW50ID0gbG9hZExpbWl0O1xuICB0aGlzLnRleHREaWZmVHlwZSA9IGFyZ3MudGV4dERpZmZUeXBlO1xuICB0aGlzLmlzU2hvd2luZ0RpZmZzID0gYXJncy5pc1Nob3dpbmdEaWZmcztcbiAgdGhpcy5kaWZmUHJvZ3Jlc3NCYXIgPSBhcmdzLmRpZmZQcm9ncmVzc0JhcjtcbiAgdGhpcy5lZGl0U3RhdGUgPSBhcmdzLmVkaXRTdGF0ZTtcbiAgdGhpcy53b3JkV3JhcCA9IGFyZ3Mud29yZFdyYXA7XG5cbiAgdGhpcy50ZXh0RGlmZlR5cGUuc3Vic2NyaWJlKGZ1bmN0aW9uKCkge1xuICAgIHNlbGYuaW52YWxpZGF0ZURpZmYoKTtcbiAgfSk7XG4gIHRoaXMucGF0Y2hMaW5lTGlzdCA9IGFyZ3MucGF0Y2hMaW5lTGlzdDtcbiAgdGhpcy5udW1iZXJPZlNlbGVjdGVkUGF0Y2hMaW5lcyA9IDA7XG4gIHRoaXMuaHRtbFNyYyA9IHVuZGVmaW5lZDtcbiAgdGhpcy5pc1BhcnNlZCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xufVxuVGV4dERpZmZWaWV3TW9kZWwucHJvdG90eXBlLnVwZGF0ZU5vZGUgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50KSB7XG4gIGtvLnJlbmRlclRlbXBsYXRlKCd0ZXh0ZGlmZicsIHRoaXMsIHt9LCBwYXJlbnRFbGVtZW50KTtcbn1cblRleHREaWZmVmlld01vZGVsLnByb3RvdHlwZS5nZXREaWZmQXJndW1lbnRzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7XG4gICAgZmlsZTogdGhpcy5maWxlbmFtZSxcbiAgICBwYXRoOiB0aGlzLnJlcG9QYXRoKCksXG4gICAgc2hhMTogdGhpcy5zaGExID8gdGhpcy5zaGExIDogJydcbiAgfTtcbn1cblxuVGV4dERpZmZWaWV3TW9kZWwucHJvdG90eXBlLmludmFsaWRhdGVEaWZmID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBpZiAodGhpcy5pc1Nob3dpbmdEaWZmcygpKSB7XG4gICAgaWYgKHRoaXMuZGlmZlByb2dyZXNzQmFyKSB0aGlzLmRpZmZQcm9ncmVzc0Jhci5zdGFydCgpO1xuXG4gICAgc2VsZi5zZXJ2ZXIuZ2V0KCcvZGlmZicsIHRoaXMuZ2V0RGlmZkFyZ3VtZW50cygpICwgZnVuY3Rpb24oZXJyLCBkaWZmcykge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICBpZiAoc2VsZi5kaWZmUHJvZ3Jlc3NCYXIpIHNlbGYuZGlmZlByb2dyZXNzQmFyLnN0b3AoKTtcbiAgICAgICAgaWYgKGVyci5lcnJvckNvZGUgPT0gJ25vLXN1Y2gtZmlsZScpIHtcbiAgICAgICAgICAvLyBUaGUgZmlsZSBleGlzdGVkIGJlZm9yZSBidXQgaGFzIGJlZW4gcmVtb3ZlZCwgYnV0IHdlJ3JlIHRyeWluZyB0byBnZXQgYSBkaWZmIGZvciBpdFxuICAgICAgICAgIC8vIE1vc3QgbGlrZWx5IGl0IHdpbGwganVzdCBkaXNhcHBlYXIgd2l0aCB0aGUgbmV4dCByZWZyZXNoIG9mIHRoZSBzdGFnaW5nIGFyZWFcbiAgICAgICAgICAvLyBzbyB3ZSBqdXN0IGlnbm9yZSB0aGUgZXJyb3IgaGVyZVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYWxsYmFjayA/IGNhbGxiYWNrKGVycikgOiBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGRpZmZzID09ICdzdHJpbmcnKSB7XG4gICAgICAgIHNlbGYuZGlmZkpzb24gPSBkaWZmMmh0bWwuZ2V0SnNvbkZyb21EaWZmKGRpZmZzKTtcbiAgICAgICAgc2VsZi5yZW5kZXIoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGYuZGlmZlByb2dyZXNzQmFyKSBzZWxmLmRpZmZQcm9ncmVzc0Jhci5zdG9wKCk7XG4gICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xuICB9XG59XG5cblRleHREaWZmVmlld01vZGVsLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgaWYgKHRoaXMuZGlmZkpzb24ubGVuZ3RoID09IDApIHJldHVybjsgLy8gY2hlY2sgaWYgZGlmZnMgYXJlIGF2YWlsYWJsZSAoYmluYXJ5IGZpbGVzIGRvIG5vdCBzdXBwb3J0IHRoZW0pXG4gIHRoaXMuaXNQYXJzZWQoZmFsc2UpO1xuXG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGRpZmZKc29uQ29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kaWZmSnNvbikpOyAvLyBtYWtlIGEganNvbiBjb3B5XG4gIHZhciBsaW5lQ291bnQgPSAwO1xuXG4gIGRpZmZKc29uQ29weVswXS5ibG9ja3MgPSBkaWZmSnNvbkNvcHlbMF0uYmxvY2tzLnJlZHVjZShmdW5jdGlvbihibG9ja3MsIGJsb2NrKSB7XG4gICAgdmFyIGxlbmd0aCA9IGJsb2NrLmxpbmVzLmxlbmd0aDtcbiAgICBpZiAobGluZUNvdW50IDwgc2VsZi5sb2FkQ291bnQpIHtcbiAgICAgIGJsb2NrLmxpbmVzID0gYmxvY2subGluZXMuc2xpY2UoMCwgc2VsZi5sb2FkQ291bnQgLSBsaW5lQ291bnQpO1xuICAgICAgYmxvY2tzLnB1c2goYmxvY2spO1xuICAgIH1cbiAgICBsaW5lQ291bnQgKz0gbGVuZ3RoO1xuICAgIHJldHVybiBibG9ja3M7XG4gIH0sIFtdKTtcblxuICB0aGlzLmxvYWRNb3JlQ291bnQoTWF0aC5taW4obG9hZExpbWl0LCBNYXRoLm1heCgwLCBsaW5lQ291bnQgLSB0aGlzLmxvYWRDb3VudCkpKTtcblxuICB2YXIgaHRtbDtcblxuICBpZiAodGhpcy50ZXh0RGlmZlR5cGUoKSA9PT0gJ3NpZGVieXNpZGVkaWZmJykge1xuICAgIGh0bWwgPSBkaWZmMmh0bWwuZ2V0UHJldHR5U2lkZUJ5U2lkZUh0bWxGcm9tSnNvbihkaWZmSnNvbkNvcHkpO1xuICB9IGVsc2Uge1xuICAgIGh0bWwgPSBkaWZmMmh0bWwuZ2V0UHJldHR5SHRtbEZyb21Kc29uKGRpZmZKc29uQ29weSk7XG4gIH1cblxuICB2YXIgaW5kZXggPSAwO1xuICB0aGlzLm51bWJlck9mU2VsZWN0ZWRQYXRjaExpbmVzID0gMDtcblxuICAvLyBpZiBzZWxmLnBhdGNoTGluZUxpc3QgaXMgbnVsbCB0aGVuIHBhdGNoaW5nIGlzIG5vdCBhdmFsaWFibGUgc28gc2tpcCB0aGlzIGV4cGVuc2l2ZSBvcC54XG4gIGlmIChzZWxmLnBhdGNoTGluZUxpc3QpIHtcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKC88c3BhbiBjbGFzcz1cImQyaC1jb2RlLWxpbmUtW2Etel0rXCI+KFxcK3xcXC0pL2csIGZ1bmN0aW9uIChtYXRjaCwgY2FwdHVyZSkge1xuICAgICAgaWYgKHNlbGYucGF0Y2hMaW5lTGlzdCgpW2luZGV4XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNlbGYucGF0Y2hMaW5lTGlzdCgpW2luZGV4XSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzZWxmLmdldFBhdGNoQ2hlY2tCb3goY2FwdHVyZSwgaW5kZXgsIHNlbGYucGF0Y2hMaW5lTGlzdCgpW2luZGV4KytdKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGtvJ3MgYmluZGluZyByZXNvbHV0aW9uIGlzIG5vdCByZWN1cnNpdmUsIHdoaWNoIG1lYW5zIGJlbG93IGtvLmJpbmQgcmVmcmVzaCBtZXRob2QgZG9lc24ndCB3b3JrIGZvclxuICAvLyBkYXRhIGJpbmQgYXQgZ2V0UGF0Y2hDaGVja0JveCB0aGF0IGlzIHJlbmRlcmVkIHdpdGggXCJodG1sXCIgYmluZGluZy5cbiAgLy8gd2hpY2ggaXMgcmVhc29uIHdoeSBtYW51YWxseSB1cGRhdGluZyB0aGUgaHRtbCBjb250ZW50IGFuZCByZWZyZXNoaW5nIGtvYmluZGluZyB0byBoYXZlIGl0IHJlbmRlci4uLlxuICB0aGlzLmh0bWxTcmMgPSBodG1sO1xuICB0aGlzLmlzUGFyc2VkKHRydWUpO1xufTtcblxuVGV4dERpZmZWaWV3TW9kZWwucHJvdG90eXBlLmxvYWRNb3JlID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdGhpcy5sb2FkQ291bnQgKz0gdGhpcy5sb2FkTW9yZUNvdW50KCk7XG4gIHRoaXMucmVuZGVyKCk7XG59XG5cblRleHREaWZmVmlld01vZGVsLnByb3RvdHlwZS5nZXRQYXRjaENoZWNrQm94ID0gZnVuY3Rpb24oc3ltYm9sLCBpbmRleCwgaXNBY3RpdmUpIHtcbiAgaWYgKGlzQWN0aXZlKSB7XG4gICAgdGhpcy5udW1iZXJPZlNlbGVjdGVkUGF0Y2hMaW5lcysrO1xuICB9XG4gIHJldHVybiAnPGRpdiBjbGFzcz1cImQyaC1jb2RlLWxpbmUtcHJlZml4XCI+PHNwYW4gZGF0YS1iaW5kPVwidmlzaWJsZTogZWRpdFN0YXRlKCkgIT09IFxcJ3BhdGNoZWRcXCdcIj4nICsgc3ltYm9sICsgJzwvc3Bhbj48aW5wdXQgJyArIChpc0FjdGl2ZSA/ICdjaGVja2VkJyA6ICcnKSArICcgdHlwZT1cImNoZWNrYm94XCIgZGF0YS10YS1jbGlja2FibGU9XCJwYXRjaC1saW5lLWlucHV0XCIgZGF0YS1iaW5kPVwidmlzaWJsZTogZWRpdFN0YXRlKCkgPT09IFxcJ3BhdGNoZWRcXCcsIGNsaWNrOiB0b2dnbGVQYXRjaExpbmUuYmluZCgkZGF0YSwgJyArIGluZGV4ICsgJylcIj48L2lucHV0Pic7XG59XG5cblRleHREaWZmVmlld01vZGVsLnByb3RvdHlwZS50b2dnbGVQYXRjaExpbmUgPSBmdW5jdGlvbihpbmRleCkge1xuICB0aGlzLnBhdGNoTGluZUxpc3QoKVtpbmRleF0gPSAhdGhpcy5wYXRjaExpbmVMaXN0KClbaW5kZXhdO1xuXG4gIGlmICh0aGlzLnBhdGNoTGluZUxpc3QoKVtpbmRleF0pIHtcbiAgICB0aGlzLm51bWJlck9mU2VsZWN0ZWRQYXRjaExpbmVzKys7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5udW1iZXJPZlNlbGVjdGVkUGF0Y2hMaW5lcy0tO1xuICB9XG5cbiAgaWYgKHRoaXMubnVtYmVyT2ZTZWxlY3RlZFBhdGNoTGluZXMgPT09IDApIHtcbiAgICB0aGlzLmVkaXRTdGF0ZSgnbm9uZScpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0= diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.css deleted file mode 100644 index 511eeb13..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.css +++ /dev/null @@ -1,35 +0,0 @@ -.textDiff { - width: 100%; - overflow: hidden; - table-layout: fixed; - font-family: 'Source Code Pro'; - font-size: 12px; -} -.textDiff .textDiffLineNumbers { - width: 50px; - text-align: center; - border-right: 1px solid rgba(0, 0, 0, 0.1); - color: rgba(0, 0, 0, 0.5); - background-color: rgba(255, 255, 255, 0.15); -} -.textDiff .textDiffAdded { - background: #66F27B; - color: #000; -} -.textDiff .textDiffRemoved { - background: #E86756; - color: #fff; -} -.textDiff .textDiffContent { - padding-left: 10px; - padding-right: 3px; - white-space: pre; - word-wrap: break-word; -} -.loadFullDiffButton { - padding: 10px 10px; - margin-right: auto; - margin-left: auto; - position: static; - display: table; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.html deleted file mode 100644 index 1f741783..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.html +++ /dev/null @@ -1,10 +0,0 @@ - -
- -
- -
- -
-
- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.js deleted file mode 100644 index f94347fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/textdiff.js +++ /dev/null @@ -1,151 +0,0 @@ - -var ko = require('knockout'); -var components = require('ungit-components'); -var diff2html = require('diff2html').Diff2Html; - -components.register('textdiff', function(args) { - return new TextDiffViewModel(args); -}); - -var loadLimit = 100; - -var TextDiffViewModel = function(args) { - var self = this; - this.filename = args.filename; - this.repoPath = args.repoPath; - this.server = args.server; - this.sha1 = args.sha1; - this.loadMoreCount = ko.observable(0); - this.diffJson = null; - this.loadCount = loadLimit; - this.textDiffType = args.textDiffType; - this.isShowingDiffs = args.isShowingDiffs; - this.diffProgressBar = args.diffProgressBar; - this.editState = args.editState; - this.wordWrap = args.wordWrap; - - this.textDiffType.subscribe(function() { - self.invalidateDiff(); - }); - this.patchLineList = args.patchLineList; - this.numberOfSelectedPatchLines = 0; - this.htmlSrc = undefined; - this.isParsed = ko.observable(false); -} -TextDiffViewModel.prototype.updateNode = function(parentElement) { - ko.renderTemplate('textdiff', this, {}, parentElement); -} -TextDiffViewModel.prototype.getDiffArguments = function() { - return { - file: this.filename, - path: this.repoPath(), - sha1: this.sha1 ? this.sha1 : '' - }; -} - -TextDiffViewModel.prototype.invalidateDiff = function(callback) { - var self = this; - if (this.isShowingDiffs()) { - if (this.diffProgressBar) this.diffProgressBar.start(); - - self.server.get('/diff', this.getDiffArguments() , function(err, diffs) { - if (err) { - if (self.diffProgressBar) self.diffProgressBar.stop(); - if (err.errorCode == 'no-such-file') { - // The file existed before but has been removed, but we're trying to get a diff for it - // Most likely it will just disappear with the next refresh of the staging area - // so we just ignore the error here - return true; - } - return callback ? callback(err) : null; - } - - if (typeof diffs == 'string') { - self.diffJson = diff2html.getJsonFromDiff(diffs); - self.render(); - } - - if (self.diffProgressBar) self.diffProgressBar.stop(); - if (callback) callback(); - }); - } else { - if (callback) callback(); - } -} - -TextDiffViewModel.prototype.render = function() { - if (this.diffJson.length == 0) return; // check if diffs are available (binary files do not support them) - this.isParsed(false); - - var self = this; - var diffJsonCopy = JSON.parse(JSON.stringify(this.diffJson)); // make a json copy - var lineCount = 0; - - diffJsonCopy[0].blocks = diffJsonCopy[0].blocks.reduce(function(blocks, block) { - var length = block.lines.length; - if (lineCount < self.loadCount) { - block.lines = block.lines.slice(0, self.loadCount - lineCount); - blocks.push(block); - } - lineCount += length; - return blocks; - }, []); - - this.loadMoreCount(Math.min(loadLimit, Math.max(0, lineCount - this.loadCount))); - - var html; - - if (this.textDiffType() === 'sidebysidediff') { - html = diff2html.getPrettySideBySideHtmlFromJson(diffJsonCopy); - } else { - html = diff2html.getPrettyHtmlFromJson(diffJsonCopy); - } - - var index = 0; - this.numberOfSelectedPatchLines = 0; - - // if self.patchLineList is null then patching is not avaliable so skip this expensive op.x - if (self.patchLineList) { - html = html.replace(/(\+|\-)/g, function (match, capture) { - if (self.patchLineList()[index] === undefined) { - self.patchLineList()[index] = true; - } - - return self.getPatchCheckBox(capture, index, self.patchLineList()[index++]); - }); - } - - // ko's binding resolution is not recursive, which means below ko.bind refresh method doesn't work for - // data bind at getPatchCheckBox that is rendered with "html" binding. - // which is reason why manually updating the html content and refreshing kobinding to have it render... - this.htmlSrc = html; - this.isParsed(true); -}; - -TextDiffViewModel.prototype.loadMore = function(callback) { - this.loadCount += this.loadMoreCount(); - this.render(); -} - -TextDiffViewModel.prototype.getPatchCheckBox = function(symbol, index, isActive) { - if (isActive) { - this.numberOfSelectedPatchLines++; - } - return '
' + symbol + ''; -} - -TextDiffViewModel.prototype.togglePatchLine = function(index) { - this.patchLineList()[index] = !this.patchLineList()[index]; - - if (this.patchLineList()[index]) { - this.numberOfSelectedPatchLines++; - } else { - this.numberOfSelectedPatchLines--; - } - - if (this.numberOfSelectedPatchLines === 0) { - this.editState('none'); - } - - return true; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/ungit-plugin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/ungit-plugin.json deleted file mode 100644 index fd3883c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/components/textdiff/ungit-plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "exports": { - "knockoutTemplates": { - "textdiff": "textdiff.html" - }, - "javascript": "textdiff.bundle.js" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/icon.ico b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/icon.ico deleted file mode 100644 index fc555ef7..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/icon.ico and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/icon.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/icon.png deleted file mode 100644 index 25199ccf..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/icon.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/getmac-node b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/getmac-node deleted file mode 120000 index 5497e745..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/getmac-node +++ /dev/null @@ -1 +0,0 @@ -../getmac/bin/getmac-node \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/mkdirp b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/mkdirp deleted file mode 120000 index 017896ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/mkdirp +++ /dev/null @@ -1 +0,0 @@ -../mkdirp/bin/cmd.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/npm b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/npm deleted file mode 120000 index e8043340..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/npm +++ /dev/null @@ -1 +0,0 @@ -../npm/bin/npm-cli.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/raven b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/raven deleted file mode 120000 index 91e62fa2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/raven +++ /dev/null @@ -1 +0,0 @@ -../raven/bin/raven \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/rc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/rc deleted file mode 120000 index a3f6fc7f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/rc +++ /dev/null @@ -1 +0,0 @@ -../rc/index.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/rimraf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/rimraf deleted file mode 120000 index 4cd49a49..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/rimraf +++ /dev/null @@ -1 +0,0 @@ -../rimraf/bin.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/semver b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/semver deleted file mode 120000 index 317eb293..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/.bin/semver +++ /dev/null @@ -1 +0,0 @@ -../semver/bin/semver \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/CHANGELOG.md deleted file mode 100644 index 94cf2cab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/CHANGELOG.md +++ /dev/null @@ -1,208 +0,0 @@ -# v2.0.1 - -- Significantly optimized all iteration based collection methods such as `each`, `map`, `filter`, etc (#1245, #1246, #1247). - -# v2.0.0 - -Lots of changes here! - -First and foremost, we have a slick new [site for docs](https://caolan.github.io/async/). Special thanks to [**@hargasinski**](https://github.com/hargasinski) for his work converting our old docs to `jsdoc` format and implementing the new website. Also huge ups to [**@ivanseidel**](https://github.com/ivanseidel) for designing our new logo. It was a long process for both of these tasks, but I think these changes turned out extraordinary well. - -The biggest feature is modularization. You can now `require("async/series")` to only require the `series` function. Every Async library function is available this way. You still can `require("async")` to require the entire library, like you could do before. - -We also provide Async as a collection of ES2015 modules. You can now `import {each} from 'async-es'` or `import waterfall from 'async-es/waterfall'`. If you are using only a few Async functions, and are using a ES bundler such as Rollup, this can significantly lower your build size. - -Major thanks to [**@Kikobeats**](github.com/Kikobeats), [**@aearly**](github.com/aearly) and [**@megawac**](github.com/megawac) for doing the majority of the modularization work, as well as [**@jdalton**](github.com/jdalton) and [**@Rich-Harris**](github.com/Rich-Harris) for advisory work on the general modularization strategy. - -Another one of the general themes of the 2.0 release is standardization of what an "async" function is. We are now more strictly following the node-style continuation passing style. That is, an async function is a function that: - -1. Takes a variable number of arguments -2. The last argument is always a callback -3. The callback can accept any number of arguments -4. The first argument passed to the callback will be treated as an error result, if the argument is truthy -5. Any number of result arguments can be passed after the "error" argument -6. The callback is called once and exactly once, either on the same tick or later tick of the JavaScript event loop. - -There were several cases where Async accepted some functions that did not strictly have these properties, most notably `auto`, `every`, `some`, and `filter`. - -Another theme is performance. We have eliminated internal deferrals in all cases where they make sense. For example, in `waterfall` and `auto`, there was a `setImmediate` between each task -- these deferrals have been removed. A `setImmediate` call can add up to 1ms of delay. This might not seem like a lot, but it can add up if you are using many Async functions in the course of processing a HTTP request, for example. Nearly all asynchronous functions that do I/O already have some sort of deferral built in, so the extra deferral is unnecessary. The trade-off of this change is removing our built-in stack-overflow defense. Many synchronous callback calls in series can quickly overflow the JS call stack. If you do have a function that is sometimes synchronous (calling its callback on the same tick), and are running into stack overflows, wrap it with `async.ensureAsync()`. - -Another big performance win has been re-implementing `queue`, `cargo`, and `priorityQueue` with [doubly linked lists](https://en.wikipedia.org/wiki/Doubly_linked_list) instead of arrays. This has lead to queues being an order of [magnitude faster on large sets of tasks](https://github.com/caolan/async/pull/1205). - -## New Features - -- Async is now modularized. Individual functions can be `require()`d from the main package. (`require('async/auto')`) (#984, #996) -- Async is also available as a collection of ES2015 modules in the new `async-es` package. (`import {forEachSeries} from 'async-es'`) (#984, #996) -- Added `race`, analogous to `Promise.race()`. It will run an array of async tasks in parallel and will call its callback with the result of the first task to respond. (#568, #1038) -- Collection methods now accept ES2015 iterators. Maps, Sets, and anything that implements the iterator spec can now be passed directly to `each`, `map`, `parallel`, etc.. (#579, #839, #1074) -- Added `mapValues`, for mapping over the properties of an object and returning an object with the same keys. (#1157, #1177) -- Added `timeout`, a wrapper for an async function that will make the task time-out after the specified time. (#1007, #1027) -- Added `reflect` and `reflectAll`, analagous to [`Promise.reflect()`](http://bluebirdjs.com/docs/api/reflect.html), a wrapper for async tasks that always succeeds, by gathering results and errors into an object. (#942, #1012, #1095) -- `constant` supports dynamic arguments -- it will now always use its last argument as the callback. (#1016, #1052) -- `setImmediate` and `nextTick` now support arguments to partially apply to the deferred function, like the node-native versions do. (#940, #1053) -- `auto` now supports resolving cyclic dependencies using [Kahn's algorithm](https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm) (#1140). -- Added `autoInject`, a relative of `auto` that automatically spreads a task's dependencies as arguments to the task function. (#608, #1055, #1099, #1100) -- You can now limit the concurrency of `auto` tasks. (#635, #637) -- Added `retryable`, a relative of `retry` that wraps an async function, making it retry when called. (#1058) -- `retry` now supports specifying a function that determines the next time interval, useful for exponential backoff, logging and other retry strategies. (#1161) -- `retry` will now pass all of the arguments the task function was resolved with to the callback (#1231). -- Added `q.unsaturated` -- callback called when a `queue`'s number of running workers falls below a threshold. (#868, #1030, #1033, #1034) -- Added `q.error` -- a callback called whenever a `queue` task calls its callback with an error. (#1170) -- `applyEach` and `applyEachSeries` now pass results to the final callback. (#1088) - -## Breaking changes - -- Calling a callback more than once is considered an error, and an error will be thrown. This had an explicit breaking change in `waterfall`. If you were relying on this behavior, you should more accurately represent your control flow as an event emitter or stream. (#814, #815, #1048, #1050) -- `auto` task functions now always take the callback as the last argument. If a task has dependencies, the `results` object will be passed as the first argument. To migrate old task functions, wrap them with [`_.flip`](https://lodash.com/docs#flip) (#1036, #1042) -- Internal `setImmediate` calls have been refactored away. This may make existing flows vulnerable to stack overflows if you use many synchronous functions in series. Use `ensureAsync` to work around this. (#696, #704, #1049, #1050) -- `map` used to return an object when iterating over an object. `map` now always returns an array, like in other libraries. The previous object behavior has been split out into `mapValues`. (#1157, #1177) -- `filter`, `reject`, `some`, `every`, and related functions now expect an error as the first callback argument, rather than just a simple boolean. Pass `null` as the first argument, or use `fs.access` instead of `fs.exists`. (#118, #774, #1028, #1041) -- `{METHOD}` and `{METHOD}Series` are now implemented in terms of `{METHOD}Limit`. This is a major internal simplification, and is not expected to cause many problems, but it does subtly affect how functions execute internally. (#778, #847) -- `retry`'s callback is now optional. Previously, omitting the callback would partially apply the function, meaning it could be passed directly as a task to `series` or `auto`. The partially applied "control-flow" behavior has been separated out into `retryable`. (#1054, #1058) -- The test function for `whilst`, `until`, and `during` used to be passed non-error args from the iteratee function's callback, but this led to weirdness where the first call of the test function would be passed no args. We have made it so the test function is never passed extra arguments, and only the `doWhilst`, `doUntil`, and `doDuring` functions pass iteratee callback arguments to the test function (#1217, #1224) -- The `q.tasks` array has been renamed `q._tasks` and is now implemented as a doubly linked list (DLL). Any code that used to interact with this array will need to be updated to either use the provided helpers or support DLLs (#1205). -- The timing of the `q.saturated()` callback in a `queue` has been modified to better reflect when tasks pushed to the queue will start queueing. (#724, #1078) -- Removed `iterator` method in favour of [ES2015 iterator protocol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators ) which natively supports arrays (#1237) -- Dropped support for Component, Jam, SPM, and Volo (#1175, ##176) - -## Bug Fixes - -- Improved handling of no dependency cases in `auto` & `autoInject` (#1147). -- Fixed a bug where the callback generated by `asyncify` with `Promises` could resolve twice (#1197). -- Fixed several documented optional callbacks not actually being optional (#1223). - -## Other - -- Added `someSeries` and `everySeries` for symmetry, as well as a complete set of `any`/`anyLimit`/`anySeries` and `all`/`/allLmit`/`allSeries` aliases. -- Added `find` as an alias for `detect. (as well as `findLimit` and `findSeries`). -- Various doc fixes (#1005, #1008, #1010, #1015, #1021, #1037, #1039, #1051, #1102, #1107, #1121, #1123, #1129, #1135, #1138, #1141, #1153, #1216, #1217, #1232, #1233, #1236, #1238) - -Thank you [**@aearly**](github.com/aearly) and [**@megawac**](github.com/megawac) for taking the lead on version 2 of async. - ------------------------------------------- - -# v1.5.2 -- Allow using `"constructor"` as an argument in `memoize` (#998) -- Give a better error messsage when `auto` dependency checking fails (#994) -- Various doc updates (#936, #956, #979, #1002) - -# v1.5.1 -- Fix issue with `pause` in `queue` with concurrency enabled (#946) -- `while` and `until` now pass the final result to callback (#963) -- `auto` will properly handle concurrency when there is no callback (#966) -- `auto` will no. properly stop execution when an error occurs (#988, #993) -- Various doc fixes (#971, #980) - -# v1.5.0 - -- Added `transform`, analogous to [`_.transform`](http://lodash.com/docs#transform) (#892) -- `map` now returns an object when an object is passed in, rather than array with non-numeric keys. `map` will begin always returning an array with numeric indexes in the next major release. (#873) -- `auto` now accepts an optional `concurrency` argument to limit the number o. running tasks (#637) -- Added `queue#workersList()`, to retrieve the lis. of currently running tasks. (#891) -- Various code simplifications (#896, #904) -- Various doc fixes :scroll: (#890, #894, #903, #905, #912) - -# v1.4.2 - -- Ensure coverage files don't get published on npm (#879) - -# v1.4.1 - -- Add in overlooked `detectLimit` method (#866) -- Removed unnecessary files from npm releases (#861) -- Removed usage of a reserved word to prevent :boom: in older environments (#870) - -# v1.4.0 - -- `asyncify` now supports promises (#840) -- Added `Limit` versions of `filter` and `reject` (#836) -- Add `Limit` versions of `detect`, `some` and `every` (#828, #829) -- `some`, `every` and `detect` now short circuit early (#828, #829) -- Improve detection of the global object (#804), enabling use in WebWorkers -- `whilst` now called with arguments from iterator (#823) -- `during` now gets called with arguments from iterator (#824) -- Code simplifications and optimizations aplenty ([diff](https://github.com/caolan/async/compare/v1.3.0...v1.4.0)) - - -# v1.3.0 - -New Features: -- Added `constant` -- Added `asyncify`/`wrapSync` for making sync functions work with callbacks. (#671, #806) -- Added `during` and `doDuring`, which are like `whilst` with an async truth test. (#800) -- `retry` now accepts an `interval` parameter to specify a delay between retries. (#793) -- `async` should work better in Web Workers due to better `root` detection (#804) -- Callbacks are now optional in `whilst`, `doWhilst`, `until`, and `doUntil` (#642) -- Various internal updates (#786, #801, #802, #803) -- Various doc fixes (#790, #794) - -Bug Fixes: -- `cargo` now exposes the `payload` size, and `cargo.payload` can be changed on the fly after the `cargo` is created. (#740, #744, #783) - - -# v1.2.1 - -Bug Fix: - -- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782) - - -# v1.2.0 - -New Features: - -- Added `timesLimit` (#743) -- `concurrency` can be changed after initialization in `queue` by setting `q.concurrency`. The new concurrency will be reflected the next time a task is processed. (#747, #772) - -Bug Fixes: - -- Fixed a regression in `each` and family with empty arrays that have additional properties. (#775, #777) - - -# v1.1.1 - -Bug Fix: - -- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782) - - -# v1.1.0 - -New Features: - -- `cargo` now supports all of the same methods and event callbacks as `queue`. -- Added `ensureAsync` - A wrapper that ensures an async function calls its callback on a later tick. (#769) -- Optimized `map`, `eachOf`, and `waterfall` families of functions -- Passing a `null` or `undefined` array to `map`, `each`, `parallel` and families will be treated as an empty array (#667). -- The callback is now optional for the composed results of `compose` and `seq`. (#618) -- Reduced file size by 4kb, (minified version by 1kb) -- Added code coverage through `nyc` and `coveralls` (#768) - -Bug Fixes: - -- `forever` will no longer stack overflow with a synchronous iterator (#622) -- `eachLimit` and other limit functions will stop iterating once an error occurs (#754) -- Always pass `null` in callbacks when there is no error (#439) -- Ensure proper conditions when calling `drain()` after pushing an empty data set to a queue (#668) -- `each` and family will properly handle an empty array (#578) -- `eachSeries` and family will finish if the underlying array is modified during execution (#557) -- `queue` will throw if a non-function is passed to `q.push()` (#593) -- Doc fixes (#629, #766) - - -# v1.0.0 - -No known breaking changes, we are simply complying with semver from here on out. - -Changes: - -- Start using a changelog! -- Add `forEachOf` for iterating over Objects (or to iterate Arrays with indexes available) (#168 #704 #321) -- Detect deadlocks in `auto` (#663) -- Better support for require.js (#527) -- Throw if queue created with concurrency `0` (#714) -- Fix unneeded iteration in `queue.resume()` (#758) -- Guard against timer mocking overriding `setImmediate` (#609 #611) -- Miscellaneous doc fixes (#542 #596 #615 #628 #631 #690 #729) -- Use single noop function internally (#546) -- Optimize internal `_each`, `_map` and `_keys` functions. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/LICENSE deleted file mode 100644 index 9fe85b9d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010-2016 Caolan McMahon - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/README.md deleted file mode 100644 index aece5098..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/README.md +++ /dev/null @@ -1,12 +0,0 @@ -![Async Logo](https://raw.githubusercontent.com/caolan/async/master/logo/async-logo_readme.jpg) - -[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async) -[![NPM version](https://img.shields.io/npm/v/async.svg)](https://www.npmjs.com/package/async) -[![Coverage Status](https://coveralls.io/repos/caolan/async/badge.svg?branch=master)](https://coveralls.io/r/caolan/async?branch=master) -[![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) - -Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. Although originally designed for use with [Node.js](https://nodejs.org/) and installable via `npm install --save async`, it can also be used directly in the browser. - -For Documentation, visit - -*For Async v1.5.x documentation, go [HERE](https://github.com/caolan/async/blob/v1.5.2/README.md)* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/apply.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/apply.js deleted file mode 100644 index 578f449d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/apply.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Creates a continuation function with some arguments already applied. - * - * Useful as a shorthand when combined with other control flow functions. Any - * arguments passed to the returned function are added to the arguments - * originally passed to apply. - * - * @name apply - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} function - The function you want to eventually apply all - * arguments to. Invokes with (arguments...). - * @param {...*} arguments... - Any number of arguments to automatically apply - * when the continuation is called. - * @example - * - * // using apply - * async.parallel([ - * async.apply(fs.writeFile, 'testfile1', 'test1'), - * async.apply(fs.writeFile, 'testfile2', 'test2') - * ]); - * - * - * // the same process without using apply - * async.parallel([ - * function(callback) { - * fs.writeFile('testfile1', 'test1', callback); - * }, - * function(callback) { - * fs.writeFile('testfile2', 'test2', callback); - * } - * ]); - * - * // It's possible to pass any number of additional arguments when calling the - * // continuation: - * - * node> var fn = async.apply(sys.puts, 'one'); - * node> fn('two', 'three'); - * one - * two - * three - */ -exports.default = (0, _rest2.default)(function (fn, args) { - return (0, _rest2.default)(function (callArgs) { - return fn.apply(null, args.concat(callArgs)); - }); -}); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/applyEach.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/applyEach.js deleted file mode 100644 index c6e71b9c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/applyEach.js +++ /dev/null @@ -1,49 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _applyEach = require('./internal/applyEach'); - -var _applyEach2 = _interopRequireDefault(_applyEach); - -var _map = require('./map'); - -var _map2 = _interopRequireDefault(_map); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Applies the provided arguments to each function in the array, calling - * `callback` after all functions have completed. If you only provide the first - * argument, then it will return a function which lets you pass in the - * arguments as if it were a single function call. - * - * @name applyEach - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array|Iterable|Object} fns - A collection of asynchronous functions to all - * call with the same arguments - * @param {...*} [args] - any number of separate arguments to pass to the - * function. - * @param {Function} [callback] - the final argument should be the callback, - * called when all functions have completed processing. - * @returns {Function} - If only the first argument is provided, it will return - * a function which lets you pass in the arguments as if it were a single - * function call. - * @example - * - * async.applyEach([enableSearch, updateSchema], 'bucket', callback); - * - * // partial application example: - * async.each( - * buckets, - * async.applyEach([enableSearch, updateSchema]), - * callback - * ); - */ -exports.default = (0, _applyEach2.default)(_map2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/applyEachSeries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/applyEachSeries.js deleted file mode 100644 index 989f2085..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/applyEachSeries.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _applyEach = require('./internal/applyEach'); - -var _applyEach2 = _interopRequireDefault(_applyEach); - -var _mapSeries = require('./mapSeries'); - -var _mapSeries2 = _interopRequireDefault(_mapSeries); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`applyEach`]{@link module:ControlFlow.applyEach} but runs only a single async operation at a time. - * - * @name applyEachSeries - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.applyEach]{@link module:ControlFlow.applyEach} - * @category Control Flow - * @param {Array|Iterable|Object} fns - A collection of asynchronous functions to all - * call with the same arguments - * @param {...*} [args] - any number of separate arguments to pass to the - * function. - * @param {Function} [callback] - the final argument should be the callback, - * called when all functions have completed processing. - * @returns {Function} - If only the first argument is provided, it will return - * a function which lets you pass in the arguments as if it were a single - * function call. - */ -exports.default = (0, _applyEach2.default)(_mapSeries2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/asyncify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/asyncify.js deleted file mode 100644 index a31fa9fe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/asyncify.js +++ /dev/null @@ -1,93 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = asyncify; - -var _isObject = require('lodash/isObject'); - -var _isObject2 = _interopRequireDefault(_isObject); - -var _initialParams = require('./internal/initialParams'); - -var _initialParams2 = _interopRequireDefault(_initialParams); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Take 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. - * - * If the function passed to `asyncify` returns a Promise, that promises's - * resolved/rejected state will be used to call the callback, rather than simply - * the synchronous return value. - * - * This also means you can asyncify ES2016 `async` functions. - * - * @name asyncify - * @static - * @memberOf module:Utils - * @method - * @alias wrapSync - * @category Util - * @param {Function} func - The synchronous function to convert to an - * asynchronous function. - * @returns {Function} An asynchronous wrapper of the `func`. To be invoked with - * (callback). - * @example - * - * // passing a regular synchronous function - * async.waterfall([ - * async.apply(fs.readFile, filename, "utf8"), - * async.asyncify(JSON.parse), - * function (data, next) { - * // data is the result of parsing the text. - * // If there was a parsing error, it would have been caught. - * } - * ], callback); - * - * // passing a function returning a promise - * async.waterfall([ - * async.apply(fs.readFile, filename, "utf8"), - * async.asyncify(function (contents) { - * return db.model.create(contents); - * }), - * function (model, next) { - * // `model` is the instantiated model object. - * // If there was an error, this function would be skipped. - * } - * ], callback); - * - * // es6 example - * var q = async.queue(async.asyncify(async function(file) { - * var intermediateStep = await processFile(file); - * return await somePromise(intermediateStep) - * })); - * - * q.push(files); - */ -function asyncify(func) { - return (0, _initialParams2.default)(function (args, callback) { - var result; - try { - result = func.apply(this, args); - } catch (e) { - return callback(e); - } - // if result is Promise object - if ((0, _isObject2.default)(result) && typeof result.then === 'function') { - result.then(function (value) { - callback(null, value); - }, function (err) { - callback(err.message ? err : new Error(err)); - }); - } else { - callback(null, result); - } - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/auto.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/auto.js deleted file mode 100644 index 7f324b43..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/auto.js +++ /dev/null @@ -1,285 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (tasks, concurrency, callback) { - if (typeof concurrency === 'function') { - // concurrency is optional, shift the args. - callback = concurrency; - concurrency = null; - } - callback = (0, _once2.default)(callback || _noop2.default); - var keys = (0, _keys2.default)(tasks); - var numTasks = keys.length; - if (!numTasks) { - return callback(null); - } - if (!concurrency) { - concurrency = numTasks; - } - - var results = {}; - var runningTasks = 0; - var hasError = false; - - var listeners = {}; - - var readyTasks = []; - - // for cycle detection: - var readyToCheck = []; // tasks that have been identified as reachable - // without the possibility of returning to an ancestor task - var uncheckedDependencies = {}; - - (0, _baseForOwn2.default)(tasks, function (task, key) { - if (!(0, _isArray2.default)(task)) { - // no dependencies - enqueueTask(key, [task]); - readyToCheck.push(key); - return; - } - - var dependencies = task.slice(0, task.length - 1); - var remainingDependencies = dependencies.length; - if (remainingDependencies === 0) { - enqueueTask(key, task); - readyToCheck.push(key); - return; - } - uncheckedDependencies[key] = remainingDependencies; - - (0, _arrayEach2.default)(dependencies, function (dependencyName) { - if (!tasks[dependencyName]) { - throw new Error('async.auto task `' + key + '` has a non-existent dependency in ' + dependencies.join(', ')); - } - addListener(dependencyName, function () { - remainingDependencies--; - if (remainingDependencies === 0) { - enqueueTask(key, task); - } - }); - }); - }); - - checkForDeadlocks(); - processQueue(); - - function enqueueTask(key, task) { - readyTasks.push(function () { - runTask(key, task); - }); - } - - function processQueue() { - if (readyTasks.length === 0 && runningTasks === 0) { - return callback(null, results); - } - while (readyTasks.length && runningTasks < concurrency) { - var run = readyTasks.shift(); - run(); - } - } - - function addListener(taskName, fn) { - var taskListeners = listeners[taskName]; - if (!taskListeners) { - taskListeners = listeners[taskName] = []; - } - - taskListeners.push(fn); - } - - function taskComplete(taskName) { - var taskListeners = listeners[taskName] || []; - (0, _arrayEach2.default)(taskListeners, function (fn) { - fn(); - }); - processQueue(); - } - - function runTask(key, task) { - if (hasError) return; - - var taskCallback = (0, _onlyOnce2.default)((0, _rest2.default)(function (err, args) { - runningTasks--; - if (args.length <= 1) { - args = args[0]; - } - if (err) { - var safeResults = {}; - (0, _baseForOwn2.default)(results, function (val, rkey) { - safeResults[rkey] = val; - }); - safeResults[key] = args; - hasError = true; - listeners = []; - - callback(err, safeResults); - } else { - results[key] = args; - taskComplete(key); - } - })); - - runningTasks++; - var taskFn = task[task.length - 1]; - if (task.length > 1) { - taskFn(results, taskCallback); - } else { - taskFn(taskCallback); - } - } - - function checkForDeadlocks() { - // Kahn's algorithm - // https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm - // http://connalle.blogspot.com/2013/10/topological-sortingkahn-algorithm.html - var currentTask; - var counter = 0; - while (readyToCheck.length) { - currentTask = readyToCheck.pop(); - counter++; - (0, _arrayEach2.default)(getDependents(currentTask), function (dependent) { - if (--uncheckedDependencies[dependent] === 0) { - readyToCheck.push(dependent); - } - }); - } - - if (counter !== numTasks) { - throw new Error('async.auto cannot execute tasks due to a recursive dependency'); - } - } - - function getDependents(taskName) { - var result = []; - (0, _baseForOwn2.default)(tasks, function (task, key) { - if ((0, _isArray2.default)(task) && (0, _baseIndexOf2.default)(task, taskName, 0) >= 0) { - result.push(key); - } - }); - return result; - } -}; - -var _arrayEach = require('lodash/_arrayEach'); - -var _arrayEach2 = _interopRequireDefault(_arrayEach); - -var _baseForOwn = require('lodash/_baseForOwn'); - -var _baseForOwn2 = _interopRequireDefault(_baseForOwn); - -var _baseIndexOf = require('lodash/_baseIndexOf'); - -var _baseIndexOf2 = _interopRequireDefault(_baseIndexOf); - -var _isArray = require('lodash/isArray'); - -var _isArray2 = _interopRequireDefault(_isArray); - -var _keys = require('lodash/keys'); - -var _keys2 = _interopRequireDefault(_keys); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -var _once = require('./internal/once'); - -var _once2 = _interopRequireDefault(_once); - -var _onlyOnce = require('./internal/onlyOnce'); - -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -module.exports = exports['default']; - -/** - * Determines 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. - * - * If 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 as the first argument, if they have dependencies. If a - * task function has no dependencies, it will only be passed a callback. - * - * @name auto - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Object} tasks - An object. Each of its properties is either a - * function or an array of requirements, with the function itself the last item - * in the array. The object's key of a property serves as the name of the task - * defined by that property, i.e. can be used when specifying requirements for - * other tasks. The function receives one or two arguments: - * * a `results` object, containing the results of the previously executed - * functions, only passed if the task has any dependencies, - * * a `callback(err, result)` function, which must be called when finished, - * passing an `error` (which can be `null`) and the result of the function's - * execution. - * @param {number} [concurrency=Infinity] - An optional `integer` for - * determining the maximum number of tasks that can be run in parallel. By - * default, as many as possible. - * @param {Function} [callback] - An optional callback which is called when all - * the tasks have been completed. It receives the `err` argument if any `tasks` - * pass an error to their callback. Results are always returned; however, if an - * error occurs, no further `tasks` will be performed, and the results object - * will only contain partial results. Invoked with (err, results). - * @returns undefined - * @example - * - * async.auto({ - * // this function will just be passed a callback - * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'), - * showData: ['readData', function(results, cb) { - * // results.readData is the file's contents - * // ... - * }] - * }, callback); - * - * async.auto({ - * get_data: function(callback) { - * console.log('in get_data'); - * // async code to get some data - * callback(null, 'data', 'converted to array'); - * }, - * make_folder: function(callback) { - * console.log('in make_folder'); - * // async code to create a directory to store a file in - * // this is run at the same time as getting the data - * callback(null, 'folder'); - * }, - * write_file: ['get_data', 'make_folder', function(results, callback) { - * console.log('in write_file', JSON.stringify(results)); - * // once there is some data and the directory exists, - * // write the data to a file in the directory - * callback(null, 'filename'); - * }], - * email_link: ['write_file', function(results, callback) { - * console.log('in email_link', JSON.stringify(results)); - * // once the file is written let's email a link to it... - * // results.write_file contains the filename returned by write_file. - * callback(null, {'file':results.write_file, 'email':'user@example.com'}); - * }] - * }, function(err, results) { - * console.log('err = ', err); - * console.log('results = ', results); - * }); - */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/autoInject.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/autoInject.js deleted file mode 100644 index b9d1eaac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/autoInject.js +++ /dev/null @@ -1,167 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = autoInject; - -var _auto = require('./auto'); - -var _auto2 = _interopRequireDefault(_auto); - -var _baseForOwn = require('lodash/_baseForOwn'); - -var _baseForOwn2 = _interopRequireDefault(_baseForOwn); - -var _arrayMap = require('lodash/_arrayMap'); - -var _arrayMap2 = _interopRequireDefault(_arrayMap); - -var _copyArray = require('lodash/_copyArray'); - -var _copyArray2 = _interopRequireDefault(_copyArray); - -var _isArray = require('lodash/isArray'); - -var _isArray2 = _interopRequireDefault(_isArray); - -var _trim = require('lodash/trim'); - -var _trim2 = _interopRequireDefault(_trim); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var FN_ARGS = /^(function)?\s*[^\(]*\(\s*([^\)]*)\)/m; -var FN_ARG_SPLIT = /,/; -var FN_ARG = /(=.+)?(\s*)$/; -var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; - -function parseParams(func) { - func = func.toString().replace(STRIP_COMMENTS, ''); - func = func.match(FN_ARGS)[2].replace(' ', ''); - func = func ? func.split(FN_ARG_SPLIT) : []; - func = func.map(function (arg) { - return (0, _trim2.default)(arg.replace(FN_ARG, '')); - }); - return func; -} - -/** - * A dependency-injected version of the [async.auto]{@link module:ControlFlow.auto} function. Dependent - * tasks are specified as parameters to the function, after the usual callback - * parameter, with the parameter names matching the names of the tasks it - * depends on. This can provide even more readable task graphs which can be - * easier to maintain. - * - * If a final callback is specified, the task results are similarly injected, - * specified as named parameters after the initial error parameter. - * - * The autoInject function is purely syntactic sugar and its semantics are - * otherwise equivalent to [async.auto]{@link module:ControlFlow.auto}. - * - * @name autoInject - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.auto]{@link module:ControlFlow.auto} - * @category Control Flow - * @param {Object} tasks - An object, each of whose properties is a function of - * the form 'func([dependencies...], callback). The object's key of a property - * serves as the name of the task defined by that property, i.e. can be used - * when specifying requirements for other tasks. - * * The `callback` parameter is a `callback(err, result)` which must be called - * when finished, passing an `error` (which can be `null`) and the result of - * the function's execution. The remaining parameters name other tasks on - * which the task is dependent, and the results from those tasks are the - * arguments of those parameters. - * @param {Function} [callback] - An optional callback which is called when all - * the tasks have been completed. It receives the `err` argument if any `tasks` - * pass an error to their callback, and a `results` object with any completed - * task results, similar to `auto`. - * @example - * - * // The example from `auto` can be rewritten as follows: - * async.autoInject({ - * get_data: function(callback) { - * // async code to get some data - * callback(null, 'data', 'converted to array'); - * }, - * make_folder: function(callback) { - * // async code to create a directory to store a file in - * // this is run at the same time as getting the data - * callback(null, 'folder'); - * }, - * write_file: function(get_data, make_folder, callback) { - * // once there is some data and the directory exists, - * // write the data to a file in the directory - * callback(null, 'filename'); - * }, - * email_link: function(write_file, callback) { - * // once the file is written let's email a link to it... - * // write_file contains the filename returned by write_file. - * callback(null, {'file':write_file, 'email':'user@example.com'}); - * } - * }, function(err, results) { - * console.log('err = ', err); - * console.log('email_link = ', results.email_link); - * }); - * - * // If you are using a JS minifier that mangles parameter names, `autoInject` - * // will not work with plain functions, since the parameter names will be - * // collapsed to a single letter identifier. To work around this, you can - * // explicitly specify the names of the parameters your task function needs - * // in an array, similar to Angular.js dependency injection. - * - * // This still has an advantage over plain `auto`, since the results a task - * // depends on are still spread into arguments. - * async.autoInject({ - * //... - * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) { - * callback(null, 'filename'); - * }], - * email_link: ['write_file', function(write_file, callback) { - * callback(null, {'file':write_file, 'email':'user@example.com'}); - * }] - * //... - * }, function(err, results) { - * console.log('err = ', err); - * console.log('email_link = ', results.email_link); - * }); - */ -function autoInject(tasks, callback) { - var newTasks = {}; - - (0, _baseForOwn2.default)(tasks, function (taskFn, key) { - var params; - - if ((0, _isArray2.default)(taskFn)) { - params = (0, _copyArray2.default)(taskFn); - taskFn = params.pop(); - - newTasks[key] = params.concat(params.length > 0 ? newTask : taskFn); - } else if (taskFn.length === 1) { - // no dependencies, use the function as-is - newTasks[key] = taskFn; - } else { - params = parseParams(taskFn); - if (taskFn.length === 0 && params.length === 0) { - throw new Error("autoInject task functions require explicit parameters."); - } - - params.pop(); - - newTasks[key] = params.concat(newTask); - } - - function newTask(results, taskCb) { - var newArgs = (0, _arrayMap2.default)(params, function (name) { - return results[name]; - }); - newArgs.push(taskCb); - taskFn.apply(null, newArgs); - } - }); - - (0, _auto2.default)(newTasks, callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/bower.json deleted file mode 100644 index 7dbeb149..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/bower.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "async", - "main": "dist/async.js", - "ignore": [ - "bower_components", - "lib", - "mocha_test", - "node_modules", - "perf", - "support", - "**/.*", - "*.config.js", - "*.json", - "index.js", - "Makefile" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/cargo.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/cargo.js deleted file mode 100644 index 70e71a2d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/cargo.js +++ /dev/null @@ -1,95 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = cargo; - -var _queue = require('./internal/queue'); - -var _queue2 = _interopRequireDefault(_queue); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * A cargo of tasks for the worker function to complete. Cargo inherits all of - * the same methods and event callbacks as [`queue`]{@link module:ControlFlow.queue}. - * @typedef {Object} CargoObject - * @memberOf module:ControlFlow - * @property {Function} length - A function returning the number of items - * waiting to be processed. Invoke like `cargo.length()`. - * @property {number} payload - An `integer` for determining how many tasks - * should be process per round. This property can be changed after a `cargo` is - * created to alter the payload on-the-fly. - * @property {Function} push - Adds `task` to the `queue`. The callback is - * called once the `worker` has finished processing the task. Instead of a - * single task, an array of `tasks` can be submitted. The respective callback is - * used for every task in the list. Invoke like `cargo.push(task, [callback])`. - * @property {Function} saturated - A callback that is called when the - * `queue.length()` hits the concurrency and further tasks will be queued. - * @property {Function} empty - A callback that is called when the last item - * from the `queue` is given to a `worker`. - * @property {Function} drain - A callback that is called when the last item - * from the `queue` has returned from the `worker`. - * @property {Function} idle - a function returning false if there are items - * waiting or being processed, or true if not. Invoke like `cargo.idle()`. - * @property {Function} pause - a function that pauses the processing of tasks - * until `resume()` is called. Invoke like `cargo.pause()`. - * @property {Function} resume - a function that resumes the processing of - * queued tasks when the queue is paused. Invoke like `cargo.resume()`. - * @property {Function} kill - a function that removes the `drain` callback and - * empties remaining tasks from the queue forcing it to go idle. Invoke like `cargo.kill()`. - */ - -/** - * Creates a `cargo` object with the specified payload. Tasks added to the - * cargo will be processed altogether (up to the `payload` limit). If the - * `worker` is in progress, the task is queued until it becomes available. Once - * the `worker` has completed some tasks, each callback of those tasks is - * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966) - * for how `cargo` and `queue` work. - * - * While [`queue`]{@link module:ControlFlow.queue} passes only one task to one of a group of workers - * at a time, cargo passes an array of tasks to a single worker, repeating - * when the worker is finished. - * - * @name cargo - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.queue]{@link module:ControlFlow.queue} - * @category Control Flow - * @param {Function} worker - An asynchronous function for processing an array - * of queued tasks, which must call its `callback(err)` argument when finished, - * with an optional `err` argument. Invoked with `(tasks, callback)`. - * @param {number} [payload=Infinity] - An optional `integer` for determining - * how many tasks should be processed per round; if omitted, the default is - * unlimited. - * @returns {module:ControlFlow.CargoObject} A cargo object to manage the tasks. Callbacks can - * attached as certain properties to listen for specific events during the - * lifecycle of the cargo and inner queue. - * @example - * - * // create a cargo object with payload 2 - * var cargo = async.cargo(function(tasks, callback) { - * for (var i=0; i async.dir(hello, 'world'); - * {hello: 'world'} - */ -exports.default = (0, _consoleFunc2.default)('dir'); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/dist/async.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/dist/async.js deleted file mode 100644 index 609d9cd4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/dist/async.js +++ /dev/null @@ -1,5215 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (factory((global.async = global.async || {}))); -}(this, function (exports) { 'use strict'; - - /** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ - function apply(func, thisArg, args) { - var length = args.length; - switch (length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ - function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); - } - - var funcTag = '[object Function]'; - var genTag = '[object GeneratorFunction]'; - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objectToString = objectProto.toString; - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; - } - - /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ - function isObjectLike(value) { - return !!value && typeof value == 'object'; - } - - /** `Object#toString` result references. */ - var symbolTag = '[object Symbol]'; - - /** Used for built-in method references. */ - var objectProto$1 = Object.prototype; - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objectToString$1 = objectProto$1.toString; - - /** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ - function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && objectToString$1.call(value) == symbolTag); - } - - /** Used as references for various `Number` constants. */ - var NAN = 0 / 0; - - /** Used to match leading and trailing whitespace. */ - var reTrim = /^\s+|\s+$/g; - - /** Used to detect bad signed hexadecimal string values. */ - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - - /** Used to detect binary string values. */ - var reIsBinary = /^0b[01]+$/i; - - /** Used to detect octal string values. */ - var reIsOctal = /^0o[0-7]+$/i; - - /** Built-in method references without a dependency on `root`. */ - var freeParseInt = parseInt; - - /** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ - function toNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = isFunction(value.valueOf) ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); - } - - var INFINITY = 1 / 0; - var MAX_INTEGER = 1.7976931348623157e+308; - /** - * Converts `value` to a finite number. - * - * @static - * @memberOf _ - * @since 4.12.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted number. - * @example - * - * _.toFinite(3.2); - * // => 3.2 - * - * _.toFinite(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toFinite(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toFinite('3.2'); - * // => 3.2 - */ - function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - return value === value ? value : 0; - } - - /** - * Converts `value` to an integer. - * - * **Note:** This method is loosely based on - * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3.2); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3.2'); - * // => 3 - */ - function toInteger(value) { - var result = toFinite(value), - remainder = result % 1; - - return result === result ? (remainder ? result - remainder : result) : 0; - } - - /** Used as the `TypeError` message for "Functions" methods. */ - var FUNC_ERROR_TEXT = 'Expected a function'; - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeMax = Math.max; - - /** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as - * an array. - * - * **Note:** This method is based on the - * [rest parameter](https://mdn.io/rest_parameters). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.rest(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ - function rest(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = nativeMax(start === undefined ? (func.length - 1) : toInteger(start), 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - switch (start) { - case 0: return func.call(this, array); - case 1: return func.call(this, args[0], array); - case 2: return func.call(this, args[0], args[1], array); - } - var otherArgs = Array(start + 1); - index = -1; - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = array; - return apply(func, this, otherArgs); - }; - } - - function initialParams (fn) { - return rest(function (args /*..., callback*/) { - var callback = args.pop(); - fn.call(this, args, callback); - }); - } - - function applyEach$1(eachfn) { - return rest(function (fns, args) { - var go = initialParams(function (args, callback) { - var that = this; - return eachfn(fns, function (fn, cb) { - fn.apply(that, args.concat([cb])); - }, callback); - }); - if (args.length) { - return go.apply(this, args); - } else { - return go; - } - }); - } - - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; - } - - /** - * Gets the "length" property value of `object`. - * - * **Note:** This function is used to avoid a - * [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects - * Safari on at least iOS 8.1-8.3 ARM64. - * - * @private - * @param {Object} object The object to query. - * @returns {*} Returns the "length" value. - */ - var getLength = baseProperty('length'); - - /** Used as references for various `Number` constants. */ - var MAX_SAFE_INTEGER = 9007199254740991; - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, - * else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ - function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - function isArrayLike(value) { - return value != null && isLength(getLength(value)) && !isFunction(value); - } - - /** - * A method that returns `undefined`. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Util - * @example - * - * _.times(2, _.noop); - * // => [undefined, undefined] - */ - function noop() { - // No operation performed. - } - - function once(fn) { - return function () { - if (fn === null) return; - var callFn = fn; - fn = null; - callFn.apply(this, arguments); - }; - } - - var iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator; - - function getIterator (coll) { - return iteratorSymbol && coll[iteratorSymbol] && coll[iteratorSymbol](); - } - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeGetPrototype = Object.getPrototypeOf; - - /** - * Gets the `[[Prototype]]` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {null|Object} Returns the `[[Prototype]]`. - */ - function getPrototype(value) { - return nativeGetPrototype(Object(value)); - } - - /** Used for built-in method references. */ - var objectProto$2 = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto$2.hasOwnProperty; - - /** - * The base implementation of `_.has` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHas(object, key) { - // Avoid a bug in IE 10-11 where objects with a [[Prototype]] of `null`, - // that are composed entirely of index properties, return `false` for - // `hasOwnProperty` checks of them. - return object != null && - (hasOwnProperty.call(object, key) || - (typeof object == 'object' && key in object && getPrototype(object) === null)); - } - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeKeys = Object.keys; - - /** - * The base implementation of `_.keys` which doesn't skip the constructor - * property of prototypes or treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeys(object) { - return nativeKeys(Object(object)); - } - - /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ - function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - - /** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ - function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); - } - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]'; - - /** Used for built-in method references. */ - var objectProto$3 = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty$1 = objectProto$3.hasOwnProperty; - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objectToString$2 = objectProto$3.toString; - - /** Built-in value references. */ - var propertyIsEnumerable = objectProto$3.propertyIsEnumerable; - - /** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - function isArguments(value) { - // Safari 8.1 incorrectly makes `arguments.callee` enumerable in strict mode. - return isArrayLikeObject(value) && hasOwnProperty$1.call(value, 'callee') && - (!propertyIsEnumerable.call(value, 'callee') || objectToString$2.call(value) == argsTag); - } - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @type {Function} - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ - var isArray = Array.isArray; - - /** `Object#toString` result references. */ - var stringTag = '[object String]'; - - /** Used for built-in method references. */ - var objectProto$4 = Object.prototype; - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objectToString$3 = objectProto$4.toString; - - /** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ - function isString(value) { - return typeof value == 'string' || - (!isArray(value) && isObjectLike(value) && objectToString$3.call(value) == stringTag); - } - - /** - * Creates an array of index keys for `object` values of arrays, - * `arguments` objects, and strings, otherwise `null` is returned. - * - * @private - * @param {Object} object The object to query. - * @returns {Array|null} Returns index keys, else `null`. - */ - function indexKeys(object) { - var length = object ? object.length : undefined; - if (isLength(length) && - (isArray(object) || isString(object) || isArguments(object))) { - return baseTimes(length, String); - } - return null; - } - - /** Used as references for various `Number` constants. */ - var MAX_SAFE_INTEGER$1 = 9007199254740991; - - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - length = length == null ? MAX_SAFE_INTEGER$1 : length; - return !!length && - (typeof value == 'number' || reIsUint.test(value)) && - (value > -1 && value % 1 == 0 && value < length); - } - - /** Used for built-in method references. */ - var objectProto$5 = Object.prototype; - - /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ - function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$5; - - return value === proto; - } - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - function keys(object) { - var isProto = isPrototype(object); - if (!(isProto || isArrayLike(object))) { - return baseKeys(object); - } - var indexes = indexKeys(object), - skipIndexes = !!indexes, - result = indexes || [], - length = result.length; - - for (var key in object) { - if (baseHas(object, key) && - !(skipIndexes && (key == 'length' || isIndex(key, length))) && - !(isProto && key == 'constructor')) { - result.push(key); - } - } - return result; - } - - function createArrayIterator(coll) { - var i = -1; - var len = coll.length; - return function next() { - return ++i < len ? { value: coll[i], key: i } : null; - }; - } - - function createES2015Iterator(iterator) { - var i = -1; - return function next() { - var item = iterator.next(); - if (item.done) return null; - i++; - return { value: item.value, key: i }; - }; - } - - function createObjectIterator(obj) { - var okeys = keys(obj); - var i = -1; - var len = okeys.length; - return function next() { - var key = okeys[++i]; - return i < len ? { value: obj[key], key: key } : null; - }; - } - - function iterator(coll) { - if (isArrayLike(coll)) { - return createArrayIterator(coll); - } - - var iterator = getIterator(coll); - return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll); - } - - function onlyOnce(fn) { - return function () { - if (fn === null) throw new Error("Callback was already called."); - var callFn = fn; - fn = null; - callFn.apply(this, arguments); - }; - } - - function _eachOfLimit(limit) { - return function (obj, iteratee, callback) { - callback = once(callback || noop); - if (limit <= 0 || !obj) { - return callback(null); - } - var nextElem = iterator(obj); - var done = false; - var running = 0; - - function iterateeCallback(err) { - running -= 1; - if (err) { - done = true; - callback(err); - } else if (done && running <= 0) { - return callback(null); - } else { - replenish(); - } - } - - function replenish() { - while (running < limit && !done) { - var elem = nextElem(); - if (elem === null) { - done = true; - if (running <= 0) { - callback(null); - } - return; - } - running += 1; - iteratee(elem.value, elem.key, onlyOnce(iterateeCallback)); - } - } - - replenish(); - }; - } - - /** - * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a - * time. - * - * @name eachOfLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.eachOf]{@link module:Collections.eachOf} - * @alias forEachOfLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The `key` is the item's key, or index in the case of an - * array. The iteratee is passed a `callback(err)` which must be called once it - * has completed. If no error has occurred, the callback should be run without - * arguments or with an explicit `null` argument. Invoked with - * (item, key, callback). - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - */ - function eachOfLimit(coll, limit, iteratee, callback) { - _eachOfLimit(limit)(coll, iteratee, callback); - } - - function doLimit(fn, limit) { - return function (iterable, iteratee, callback) { - return fn(iterable, limit, iteratee, callback); - }; - } - - /** Used as the `TypeError` message for "Functions" methods. */ - var FUNC_ERROR_TEXT$1 = 'Expected a function'; - - /** - * Creates a function that invokes `func`, with the `this` binding and arguments - * of the created function, while it's called less than `n` times. Subsequent - * calls to the created function return the result of the last `func` invocation. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {number} n The number of calls at which `func` is no longer invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * jQuery(element).on('click', _.before(5, addContactToList)); - * // => allows adding up to 4 contacts to the list - */ - function before(n, func) { - var result; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT$1); - } - n = toInteger(n); - return function() { - if (--n > 0) { - result = func.apply(this, arguments); - } - if (n <= 1) { - func = undefined; - } - return result; - }; - } - - /** - * Creates a function that is restricted to invoking `func` once. Repeat calls - * to the function return the value of the first invocation. The `func` is - * invoked with the `this` binding and arguments of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var initialize = _.once(createApplication); - * initialize(); - * initialize(); - * // `initialize` invokes `createApplication` once - */ - function once$1(func) { - return before(2, func); - } - - // eachOf implementation optimized for array-likes - function eachOfArrayLike(coll, iteratee, callback) { - callback = once$1(callback || noop); - var index = 0, - completed = 0, - length = coll.length; - if (length === 0) { - callback(null); - } - - function iteratorCallback(err) { - if (err) { - callback(err); - } else if (++completed === length) { - callback(null); - } - } - - for (; index < length; index++) { - iteratee(coll[index], index, onlyOnce(iteratorCallback)); - } - } - - // a generic version of eachOf which can handle array, object, and iterator cases. - var eachOfGeneric = doLimit(eachOfLimit, Infinity); - - /** - * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument - * to the iteratee. - * - * @name eachOf - * @static - * @memberOf module:Collections - * @method - * @alias forEachOf - * @category Collection - * @see [async.each]{@link module:Collections.each} - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The `key` is the item's key, or index in the case of an - * array. The iteratee is passed a `callback(err)` which must be called once it - * has completed. If no error has occurred, the callback should be run without - * arguments or with an explicit `null` argument. Invoked with - * (item, key, callback). - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - * @example - * - * var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; - * var configs = {}; - * - * async.forEachOf(obj, function (value, key, callback) { - * fs.readFile(__dirname + value, "utf8", function (err, data) { - * if (err) return callback(err); - * try { - * configs[key] = JSON.parse(data); - * } catch (e) { - * return callback(e); - * } - * callback(); - * }); - * }, function (err) { - * if (err) console.error(err.message); - * // configs is now a map of JSON data - * doSomethingWith(configs); - * }); - */ - function eachOf (coll, iteratee, callback) { - var eachOfImplementation = isArrayLike(coll) ? eachOfArrayLike : eachOfGeneric; - eachOfImplementation(coll, iteratee, callback); - } - - function doParallel(fn) { - return function (obj, iteratee, callback) { - return fn(eachOf, obj, iteratee, callback); - }; - } - - function _asyncMap(eachfn, arr, iteratee, callback) { - callback = once(callback || noop); - arr = arr || []; - var results = []; - var counter = 0; - - eachfn(arr, function (value, _, callback) { - var index = counter++; - iteratee(value, function (err, v) { - results[index] = v; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - - /** - * Produces a new collection of values by mapping each value in `coll` through - * the `iteratee` function. The `iteratee` is called with an item from `coll` - * and a callback for when it has finished processing. Each of these callback - * takes 2 arguments: an `error`, and the transformed item from `coll`. If - * `iteratee` passes an error to its callback, the main `callback` (for the - * `map` function) is immediately called with the error. - * - * Note, that since this function applies the `iteratee` to each item in - * parallel, there is no guarantee that the `iteratee` functions will complete - * in order. However, the results array will be in the same order as the - * original `coll`. - * - * If `map` is passed an Object, the results will be an Array. The results - * will roughly be in the order of the original Objects' keys (but this can - * vary across JavaScript engines) - * - * @name map - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an Array of the - * transformed items from the `coll`. Invoked with (err, results). - * @example - * - * async.map(['file1','file2','file3'], fs.stat, function(err, results) { - * // results is now an array of stats for each file - * }); - */ - var map = doParallel(_asyncMap); - - /** - * Applies the provided arguments to each function in the array, calling - * `callback` after all functions have completed. If you only provide the first - * argument, then it will return a function which lets you pass in the - * arguments as if it were a single function call. - * - * @name applyEach - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array|Iterable|Object} fns - A collection of asynchronous functions to all - * call with the same arguments - * @param {...*} [args] - any number of separate arguments to pass to the - * function. - * @param {Function} [callback] - the final argument should be the callback, - * called when all functions have completed processing. - * @returns {Function} - If only the first argument is provided, it will return - * a function which lets you pass in the arguments as if it were a single - * function call. - * @example - * - * async.applyEach([enableSearch, updateSchema], 'bucket', callback); - * - * // partial application example: - * async.each( - * buckets, - * async.applyEach([enableSearch, updateSchema]), - * callback - * ); - */ - var applyEach = applyEach$1(map); - - function doParallelLimit(fn) { - return function (obj, limit, iteratee, callback) { - return fn(_eachOfLimit(limit), obj, iteratee, callback); - }; - } - - /** - * The same as [`map`]{@link module:Collections.map} but runs a maximum of `limit` async operations at a time. - * - * @name mapLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.map]{@link module:Collections.map} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a transformed - * item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an array of the - * transformed items from the `coll`. Invoked with (err, results). - */ - var mapLimit = doParallelLimit(_asyncMap); - - /** - * The same as [`map`]{@link module:Collections.map} but runs only a single async operation at a time. - * - * @name mapSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.map]{@link module:Collections.map} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an array of the - * transformed items from the `coll`. Invoked with (err, results). - */ - var mapSeries = doLimit(mapLimit, 1); - - /** - * The same as [`applyEach`]{@link module:ControlFlow.applyEach} but runs only a single async operation at a time. - * - * @name applyEachSeries - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.applyEach]{@link module:ControlFlow.applyEach} - * @category Control Flow - * @param {Array|Iterable|Object} fns - A collection of asynchronous functions to all - * call with the same arguments - * @param {...*} [args] - any number of separate arguments to pass to the - * function. - * @param {Function} [callback] - the final argument should be the callback, - * called when all functions have completed processing. - * @returns {Function} - If only the first argument is provided, it will return - * a function which lets you pass in the arguments as if it were a single - * function call. - */ - var applyEachSeries = applyEach$1(mapSeries); - - /** - * Creates a continuation function with some arguments already applied. - * - * Useful as a shorthand when combined with other control flow functions. Any - * arguments passed to the returned function are added to the arguments - * originally passed to apply. - * - * @name apply - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} function - The function you want to eventually apply all - * arguments to. Invokes with (arguments...). - * @param {...*} arguments... - Any number of arguments to automatically apply - * when the continuation is called. - * @example - * - * // using apply - * async.parallel([ - * async.apply(fs.writeFile, 'testfile1', 'test1'), - * async.apply(fs.writeFile, 'testfile2', 'test2') - * ]); - * - * - * // the same process without using apply - * async.parallel([ - * function(callback) { - * fs.writeFile('testfile1', 'test1', callback); - * }, - * function(callback) { - * fs.writeFile('testfile2', 'test2', callback); - * } - * ]); - * - * // It's possible to pass any number of additional arguments when calling the - * // continuation: - * - * node> var fn = async.apply(sys.puts, 'one'); - * node> fn('two', 'three'); - * one - * two - * three - */ - var apply$1 = rest(function (fn, args) { - return rest(function (callArgs) { - return fn.apply(null, args.concat(callArgs)); - }); - }); - - /** - * Take 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. - * - * If the function passed to `asyncify` returns a Promise, that promises's - * resolved/rejected state will be used to call the callback, rather than simply - * the synchronous return value. - * - * This also means you can asyncify ES2016 `async` functions. - * - * @name asyncify - * @static - * @memberOf module:Utils - * @method - * @alias wrapSync - * @category Util - * @param {Function} func - The synchronous function to convert to an - * asynchronous function. - * @returns {Function} An asynchronous wrapper of the `func`. To be invoked with - * (callback). - * @example - * - * // passing a regular synchronous function - * async.waterfall([ - * async.apply(fs.readFile, filename, "utf8"), - * async.asyncify(JSON.parse), - * function (data, next) { - * // data is the result of parsing the text. - * // If there was a parsing error, it would have been caught. - * } - * ], callback); - * - * // passing a function returning a promise - * async.waterfall([ - * async.apply(fs.readFile, filename, "utf8"), - * async.asyncify(function (contents) { - * return db.model.create(contents); - * }), - * function (model, next) { - * // `model` is the instantiated model object. - * // If there was an error, this function would be skipped. - * } - * ], callback); - * - * // es6 example - * var q = async.queue(async.asyncify(async function(file) { - * var intermediateStep = await processFile(file); - * return await somePromise(intermediateStep) - * })); - * - * q.push(files); - */ - function asyncify(func) { - return initialParams(function (args, callback) { - var result; - try { - result = func.apply(this, args); - } catch (e) { - return callback(e); - } - // if result is Promise object - if (isObject(result) && typeof result.then === 'function') { - result.then(function (value) { - callback(null, value); - }, function (err) { - callback(err.message ? err : new Error(err)); - }); - } else { - callback(null, result); - } - }); - } - - /** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array ? array.length : 0; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - /** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; - - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); - } - - /** - * Gets the index at which the first occurrence of `NaN` is found in `array`. - * - * @private - * @param {Array} array The array to search. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched `NaN`, else `-1`. - */ - function indexOfNaN(array, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); - - while ((fromRight ? index-- : ++index < length)) { - var other = array[index]; - if (other !== other) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - if (value !== value) { - return indexOfNaN(array, fromIndex); - } - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * Determines 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. - * - * If 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 as the first argument, if they have dependencies. If a - * task function has no dependencies, it will only be passed a callback. - * - * @name auto - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Object} tasks - An object. Each of its properties is either a - * function or an array of requirements, with the function itself the last item - * in the array. The object's key of a property serves as the name of the task - * defined by that property, i.e. can be used when specifying requirements for - * other tasks. The function receives one or two arguments: - * * a `results` object, containing the results of the previously executed - * functions, only passed if the task has any dependencies, - * * a `callback(err, result)` function, which must be called when finished, - * passing an `error` (which can be `null`) and the result of the function's - * execution. - * @param {number} [concurrency=Infinity] - An optional `integer` for - * determining the maximum number of tasks that can be run in parallel. By - * default, as many as possible. - * @param {Function} [callback] - An optional callback which is called when all - * the tasks have been completed. It receives the `err` argument if any `tasks` - * pass an error to their callback. Results are always returned; however, if an - * error occurs, no further `tasks` will be performed, and the results object - * will only contain partial results. Invoked with (err, results). - * @returns undefined - * @example - * - * async.auto({ - * // this function will just be passed a callback - * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'), - * showData: ['readData', function(results, cb) { - * // results.readData is the file's contents - * // ... - * }] - * }, callback); - * - * async.auto({ - * get_data: function(callback) { - * console.log('in get_data'); - * // async code to get some data - * callback(null, 'data', 'converted to array'); - * }, - * make_folder: function(callback) { - * console.log('in make_folder'); - * // async code to create a directory to store a file in - * // this is run at the same time as getting the data - * callback(null, 'folder'); - * }, - * write_file: ['get_data', 'make_folder', function(results, callback) { - * console.log('in write_file', JSON.stringify(results)); - * // once there is some data and the directory exists, - * // write the data to a file in the directory - * callback(null, 'filename'); - * }], - * email_link: ['write_file', function(results, callback) { - * console.log('in email_link', JSON.stringify(results)); - * // once the file is written let's email a link to it... - * // results.write_file contains the filename returned by write_file. - * callback(null, {'file':results.write_file, 'email':'user@example.com'}); - * }] - * }, function(err, results) { - * console.log('err = ', err); - * console.log('results = ', results); - * }); - */ - function auto (tasks, concurrency, callback) { - if (typeof concurrency === 'function') { - // concurrency is optional, shift the args. - callback = concurrency; - concurrency = null; - } - callback = once(callback || noop); - var keys$$ = keys(tasks); - var numTasks = keys$$.length; - if (!numTasks) { - return callback(null); - } - if (!concurrency) { - concurrency = numTasks; - } - - var results = {}; - var runningTasks = 0; - var hasError = false; - - var listeners = {}; - - var readyTasks = []; - - // for cycle detection: - var readyToCheck = []; // tasks that have been identified as reachable - // without the possibility of returning to an ancestor task - var uncheckedDependencies = {}; - - baseForOwn(tasks, function (task, key) { - if (!isArray(task)) { - // no dependencies - enqueueTask(key, [task]); - readyToCheck.push(key); - return; - } - - var dependencies = task.slice(0, task.length - 1); - var remainingDependencies = dependencies.length; - if (remainingDependencies === 0) { - enqueueTask(key, task); - readyToCheck.push(key); - return; - } - uncheckedDependencies[key] = remainingDependencies; - - arrayEach(dependencies, function (dependencyName) { - if (!tasks[dependencyName]) { - throw new Error('async.auto task `' + key + '` has a non-existent dependency in ' + dependencies.join(', ')); - } - addListener(dependencyName, function () { - remainingDependencies--; - if (remainingDependencies === 0) { - enqueueTask(key, task); - } - }); - }); - }); - - checkForDeadlocks(); - processQueue(); - - function enqueueTask(key, task) { - readyTasks.push(function () { - runTask(key, task); - }); - } - - function processQueue() { - if (readyTasks.length === 0 && runningTasks === 0) { - return callback(null, results); - } - while (readyTasks.length && runningTasks < concurrency) { - var run = readyTasks.shift(); - run(); - } - } - - function addListener(taskName, fn) { - var taskListeners = listeners[taskName]; - if (!taskListeners) { - taskListeners = listeners[taskName] = []; - } - - taskListeners.push(fn); - } - - function taskComplete(taskName) { - var taskListeners = listeners[taskName] || []; - arrayEach(taskListeners, function (fn) { - fn(); - }); - processQueue(); - } - - function runTask(key, task) { - if (hasError) return; - - var taskCallback = onlyOnce(rest(function (err, args) { - runningTasks--; - if (args.length <= 1) { - args = args[0]; - } - if (err) { - var safeResults = {}; - baseForOwn(results, function (val, rkey) { - safeResults[rkey] = val; - }); - safeResults[key] = args; - hasError = true; - listeners = []; - - callback(err, safeResults); - } else { - results[key] = args; - taskComplete(key); - } - })); - - runningTasks++; - var taskFn = task[task.length - 1]; - if (task.length > 1) { - taskFn(results, taskCallback); - } else { - taskFn(taskCallback); - } - } - - function checkForDeadlocks() { - // Kahn's algorithm - // https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm - // http://connalle.blogspot.com/2013/10/topological-sortingkahn-algorithm.html - var currentTask; - var counter = 0; - while (readyToCheck.length) { - currentTask = readyToCheck.pop(); - counter++; - arrayEach(getDependents(currentTask), function (dependent) { - if (--uncheckedDependencies[dependent] === 0) { - readyToCheck.push(dependent); - } - }); - } - - if (counter !== numTasks) { - throw new Error('async.auto cannot execute tasks due to a recursive dependency'); - } - } - - function getDependents(taskName) { - var result = []; - baseForOwn(tasks, function (task, key) { - if (isArray(task) && baseIndexOf(task, taskName, 0) >= 0) { - result.push(key); - } - }); - return result; - } - } - - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function arrayMap(array, iteratee) { - var index = -1, - length = array ? array.length : 0, - result = Array(length); - - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } - - /** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ - function copyArray(source, array) { - var index = -1, - length = source.length; - - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; - } - - /** - * Checks if `value` is a global object. - * - * @private - * @param {*} value The value to check. - * @returns {null|Object} Returns `value` if it's a global object, else `null`. - */ - function checkGlobal(value) { - return (value && value.Object === Object) ? value : null; - } - - /** Detect free variable `global` from Node.js. */ - var freeGlobal = checkGlobal(typeof global == 'object' && global); - - /** Detect free variable `self`. */ - var freeSelf = checkGlobal(typeof self == 'object' && self); - - /** Detect `this` as the global object. */ - var thisGlobal = checkGlobal(typeof this == 'object' && this); - - /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || thisGlobal || Function('return this')(); - - /** Built-in value references. */ - var Symbol$1 = root.Symbol; - - /** Used as references for various `Number` constants. */ - var INFINITY$1 = 1 / 0; - - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol$1 ? Symbol$1.prototype : undefined; - var symbolToString = symbolProto ? symbolProto.toString : undefined; - /** - * The base implementation of `_.toString` which doesn't convert nullish - * values to empty strings. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result; - } - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function baseSlice(array, start, end) { - var index = -1, - length = array.length; - - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : ((end - start) >>> 0); - start >>>= 0; - - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; - } - return result; - } - - /** - * Casts `array` to a slice if it's needed. - * - * @private - * @param {Array} array The array to inspect. - * @param {number} start The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the cast slice. - */ - function castSlice(array, start, end) { - var length = array.length; - end = end === undefined ? length : end; - return (!start && end >= length) ? array : baseSlice(array, start, end); - } - - /** - * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the last unmatched string symbol. - */ - function charsEndIndex(strSymbols, chrSymbols) { - var index = strSymbols.length; - - while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** - * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the first unmatched string symbol. - */ - function charsStartIndex(strSymbols, chrSymbols) { - var index = -1, - length = strSymbols.length; - - while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** Used to compose unicode character classes. */ - var rsAstralRange = '\\ud800-\\udfff'; - var rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23'; - var rsComboSymbolsRange = '\\u20d0-\\u20f0'; - var rsVarRange = '\\ufe0e\\ufe0f'; - var rsAstral = '[' + rsAstralRange + ']'; - var rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']'; - var rsFitz = '\\ud83c[\\udffb-\\udfff]'; - var rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')'; - var rsNonAstral = '[^' + rsAstralRange + ']'; - var rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}'; - var rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]'; - var rsZWJ = '\\u200d'; - var reOptMod = rsModifier + '?'; - var rsOptVar = '[' + rsVarRange + ']?'; - var rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*'; - var rsSeq = rsOptVar + reOptMod + rsOptJoin; - var rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ - var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); - - /** - * Converts `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function stringToArray(string) { - return string.match(reComplexSymbol); - } - - /** - * Converts `value` to a string. An empty string is returned for `null` - * and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {string} Returns the string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ - function toString(value) { - return value == null ? '' : baseToString(value); - } - - /** Used to match leading and trailing whitespace. */ - var reTrim$1 = /^\s+|\s+$/g; - - /** - * Removes leading and trailing whitespace or specified characters from `string`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to trim. - * @param {string} [chars=whitespace] The characters to trim. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {string} Returns the trimmed string. - * @example - * - * _.trim(' abc '); - * // => 'abc' - * - * _.trim('-_-abc-_-', '_-'); - * // => 'abc' - * - * _.map([' foo ', ' bar '], _.trim); - * // => ['foo', 'bar'] - */ - function trim(string, chars, guard) { - string = toString(string); - if (string && (guard || chars === undefined)) { - return string.replace(reTrim$1, ''); - } - if (!string || !(chars = baseToString(chars))) { - return string; - } - var strSymbols = stringToArray(string), - chrSymbols = stringToArray(chars), - start = charsStartIndex(strSymbols, chrSymbols), - end = charsEndIndex(strSymbols, chrSymbols) + 1; - - return castSlice(strSymbols, start, end).join(''); - } - - var FN_ARGS = /^(function)?\s*[^\(]*\(\s*([^\)]*)\)/m; - var FN_ARG_SPLIT = /,/; - var FN_ARG = /(=.+)?(\s*)$/; - var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; - - function parseParams(func) { - func = func.toString().replace(STRIP_COMMENTS, ''); - func = func.match(FN_ARGS)[2].replace(' ', ''); - func = func ? func.split(FN_ARG_SPLIT) : []; - func = func.map(function (arg) { - return trim(arg.replace(FN_ARG, '')); - }); - return func; - } - - /** - * A dependency-injected version of the [async.auto]{@link module:ControlFlow.auto} function. Dependent - * tasks are specified as parameters to the function, after the usual callback - * parameter, with the parameter names matching the names of the tasks it - * depends on. This can provide even more readable task graphs which can be - * easier to maintain. - * - * If a final callback is specified, the task results are similarly injected, - * specified as named parameters after the initial error parameter. - * - * The autoInject function is purely syntactic sugar and its semantics are - * otherwise equivalent to [async.auto]{@link module:ControlFlow.auto}. - * - * @name autoInject - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.auto]{@link module:ControlFlow.auto} - * @category Control Flow - * @param {Object} tasks - An object, each of whose properties is a function of - * the form 'func([dependencies...], callback). The object's key of a property - * serves as the name of the task defined by that property, i.e. can be used - * when specifying requirements for other tasks. - * * The `callback` parameter is a `callback(err, result)` which must be called - * when finished, passing an `error` (which can be `null`) and the result of - * the function's execution. The remaining parameters name other tasks on - * which the task is dependent, and the results from those tasks are the - * arguments of those parameters. - * @param {Function} [callback] - An optional callback which is called when all - * the tasks have been completed. It receives the `err` argument if any `tasks` - * pass an error to their callback, and a `results` object with any completed - * task results, similar to `auto`. - * @example - * - * // The example from `auto` can be rewritten as follows: - * async.autoInject({ - * get_data: function(callback) { - * // async code to get some data - * callback(null, 'data', 'converted to array'); - * }, - * make_folder: function(callback) { - * // async code to create a directory to store a file in - * // this is run at the same time as getting the data - * callback(null, 'folder'); - * }, - * write_file: function(get_data, make_folder, callback) { - * // once there is some data and the directory exists, - * // write the data to a file in the directory - * callback(null, 'filename'); - * }, - * email_link: function(write_file, callback) { - * // once the file is written let's email a link to it... - * // write_file contains the filename returned by write_file. - * callback(null, {'file':write_file, 'email':'user@example.com'}); - * } - * }, function(err, results) { - * console.log('err = ', err); - * console.log('email_link = ', results.email_link); - * }); - * - * // If you are using a JS minifier that mangles parameter names, `autoInject` - * // will not work with plain functions, since the parameter names will be - * // collapsed to a single letter identifier. To work around this, you can - * // explicitly specify the names of the parameters your task function needs - * // in an array, similar to Angular.js dependency injection. - * - * // This still has an advantage over plain `auto`, since the results a task - * // depends on are still spread into arguments. - * async.autoInject({ - * //... - * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) { - * callback(null, 'filename'); - * }], - * email_link: ['write_file', function(write_file, callback) { - * callback(null, {'file':write_file, 'email':'user@example.com'}); - * }] - * //... - * }, function(err, results) { - * console.log('err = ', err); - * console.log('email_link = ', results.email_link); - * }); - */ - function autoInject(tasks, callback) { - var newTasks = {}; - - baseForOwn(tasks, function (taskFn, key) { - var params; - - if (isArray(taskFn)) { - params = copyArray(taskFn); - taskFn = params.pop(); - - newTasks[key] = params.concat(params.length > 0 ? newTask : taskFn); - } else if (taskFn.length === 1) { - // no dependencies, use the function as-is - newTasks[key] = taskFn; - } else { - params = parseParams(taskFn); - if (taskFn.length === 0 && params.length === 0) { - throw new Error("autoInject task functions require explicit parameters."); - } - - params.pop(); - - newTasks[key] = params.concat(newTask); - } - - function newTask(results, taskCb) { - var newArgs = arrayMap(params, function (name) { - return results[name]; - }); - newArgs.push(taskCb); - taskFn.apply(null, newArgs); - } - }); - - auto(newTasks, callback); - } - - var hasSetImmediate = typeof setImmediate === 'function' && setImmediate; - var hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function'; - - function fallback(fn) { - setTimeout(fn, 0); - } - - function wrap(defer) { - return rest(function (fn, args) { - defer(function () { - fn.apply(null, args); - }); - }); - } - - var _defer; - - if (hasSetImmediate) { - _defer = setImmediate; - } else if (hasNextTick) { - _defer = process.nextTick; - } else { - _defer = fallback; - } - - var setImmediate$1 = wrap(_defer); - - // Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation - // used for queues. This implementation assumes that the node provided by the user can be modified - // to adjust the next and last properties. We implement only the minimal functionality - // for queue support. - function DLL() { - this.head = this.tail = null; - this.length = 0; - } - - function setInitial(dll, node) { - dll.length = 1; - dll.head = dll.tail = node; - } - - DLL.prototype.removeLink = function (node) { - if (node.prev) node.prev.next = node.next;else this.head = node.next; - if (node.next) node.next.prev = node.prev;else this.tail = node.prev; - - node.prev = node.next = null; - this.length -= 1; - return node; - }; - - DLL.prototype.empty = DLL; - - DLL.prototype.insertAfter = function (node, newNode) { - newNode.prev = node; - newNode.next = node.next; - if (node.next) node.next.prev = newNode;else this.tail = newNode; - node.next = newNode; - this.length += 1; - }; - - DLL.prototype.insertBefore = function (node, newNode) { - newNode.prev = node.prev; - newNode.next = node; - if (node.prev) node.prev.next = newNode;else this.head = newNode; - node.prev = newNode; - this.length += 1; - }; - - DLL.prototype.unshift = function (node) { - if (this.head) this.insertBefore(this.head, node);else setInitial(this, node); - }; - - DLL.prototype.push = function (node) { - if (this.tail) this.insertAfter(this.tail, node);else setInitial(this, node); - }; - - DLL.prototype.shift = function () { - return this.head && this.removeLink(this.head); - }; - - DLL.prototype.pop = function () { - return this.tail && this.removeLink(this.tail); - }; - - function queue(worker, concurrency, payload) { - if (concurrency == null) { - concurrency = 1; - } else if (concurrency === 0) { - throw new Error('Concurrency must not be zero'); - } - - function _insert(data, insertAtFront, callback) { - if (callback != null && typeof callback !== 'function') { - throw new Error('task callback must be a function'); - } - q.started = true; - if (!isArray(data)) { - data = [data]; - } - if (data.length === 0 && q.idle()) { - // call drain immediately if there are no tasks - return setImmediate$1(function () { - q.drain(); - }); - } - arrayEach(data, function (task) { - var item = { - data: task, - callback: callback || noop - }; - - if (insertAtFront) { - q._tasks.unshift(item); - } else { - q._tasks.push(item); - } - }); - setImmediate$1(q.process); - } - - function _next(tasks) { - return rest(function (args) { - workers -= 1; - - arrayEach(tasks, function (task) { - arrayEach(workersList, function (worker, index) { - if (worker === task) { - workersList.splice(index, 1); - return false; - } - }); - - task.callback.apply(task, args); - - if (args[0] != null) { - q.error(args[0], task.data); - } - }); - - if (workers <= q.concurrency - q.buffer) { - q.unsaturated(); - } - - if (q.idle()) { - q.drain(); - } - q.process(); - }); - } - - var workers = 0; - var workersList = []; - var q = { - _tasks: new DLL(), - concurrency: concurrency, - payload: payload, - saturated: noop, - unsaturated: noop, - buffer: concurrency / 4, - empty: noop, - drain: noop, - error: noop, - started: false, - paused: false, - push: function (data, callback) { - _insert(data, false, callback); - }, - kill: function () { - q.drain = noop; - q._tasks.empty(); - }, - unshift: function (data, callback) { - _insert(data, true, callback); - }, - process: function () { - while (!q.paused && workers < q.concurrency && q._tasks.length) { - var tasks = [], - data = []; - var l = q._tasks.length; - if (q.payload) l = Math.min(l, q.payload); - for (var i = 0; i < l; i++) { - var node = q._tasks.shift(); - tasks.push(node); - data.push(node.data); - } - - if (q._tasks.length === 0) { - q.empty(); - } - workers += 1; - workersList.push(tasks[0]); - - if (workers === q.concurrency) { - q.saturated(); - } - - var cb = onlyOnce(_next(tasks)); - worker(data, cb); - } - }, - length: function () { - return q._tasks.length; - }, - running: function () { - return workers; - }, - workersList: function () { - return workersList; - }, - idle: function () { - return q._tasks.length + workers === 0; - }, - pause: function () { - q.paused = true; - }, - resume: function () { - if (q.paused === false) { - return; - } - q.paused = false; - var resumeCount = Math.min(q.concurrency, q._tasks.length); - // Need to call q.process once per concurrent - // worker to preserve full concurrency after pause - for (var w = 1; w <= resumeCount; w++) { - setImmediate$1(q.process); - } - } - }; - return q; - } - - /** - * A cargo of tasks for the worker function to complete. Cargo inherits all of - * the same methods and event callbacks as [`queue`]{@link module:ControlFlow.queue}. - * @typedef {Object} CargoObject - * @memberOf module:ControlFlow - * @property {Function} length - A function returning the number of items - * waiting to be processed. Invoke like `cargo.length()`. - * @property {number} payload - An `integer` for determining how many tasks - * should be process per round. This property can be changed after a `cargo` is - * created to alter the payload on-the-fly. - * @property {Function} push - Adds `task` to the `queue`. The callback is - * called once the `worker` has finished processing the task. Instead of a - * single task, an array of `tasks` can be submitted. The respective callback is - * used for every task in the list. Invoke like `cargo.push(task, [callback])`. - * @property {Function} saturated - A callback that is called when the - * `queue.length()` hits the concurrency and further tasks will be queued. - * @property {Function} empty - A callback that is called when the last item - * from the `queue` is given to a `worker`. - * @property {Function} drain - A callback that is called when the last item - * from the `queue` has returned from the `worker`. - * @property {Function} idle - a function returning false if there are items - * waiting or being processed, or true if not. Invoke like `cargo.idle()`. - * @property {Function} pause - a function that pauses the processing of tasks - * until `resume()` is called. Invoke like `cargo.pause()`. - * @property {Function} resume - a function that resumes the processing of - * queued tasks when the queue is paused. Invoke like `cargo.resume()`. - * @property {Function} kill - a function that removes the `drain` callback and - * empties remaining tasks from the queue forcing it to go idle. Invoke like `cargo.kill()`. - */ - - /** - * Creates a `cargo` object with the specified payload. Tasks added to the - * cargo will be processed altogether (up to the `payload` limit). If the - * `worker` is in progress, the task is queued until it becomes available. Once - * the `worker` has completed some tasks, each callback of those tasks is - * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966) - * for how `cargo` and `queue` work. - * - * While [`queue`]{@link module:ControlFlow.queue} passes only one task to one of a group of workers - * at a time, cargo passes an array of tasks to a single worker, repeating - * when the worker is finished. - * - * @name cargo - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.queue]{@link module:ControlFlow.queue} - * @category Control Flow - * @param {Function} worker - An asynchronous function for processing an array - * of queued tasks, which must call its `callback(err)` argument when finished, - * with an optional `err` argument. Invoked with `(tasks, callback)`. - * @param {number} [payload=Infinity] - An optional `integer` for determining - * how many tasks should be processed per round; if omitted, the default is - * unlimited. - * @returns {module:ControlFlow.CargoObject} A cargo object to manage the tasks. Callbacks can - * attached as certain properties to listen for specific events during the - * lifecycle of the cargo and inner queue. - * @example - * - * // create a cargo object with payload 2 - * var cargo = async.cargo(function(tasks, callback) { - * for (var i=0; i true - */ - function identity(value) { - return value; - } - - function _createTester(eachfn, check, getResult) { - return function (arr, limit, iteratee, cb) { - function done(err) { - if (cb) { - if (err) { - cb(err); - } else { - cb(null, getResult(false)); - } - } - } - function wrappedIteratee(x, _, callback) { - if (!cb) return callback(); - iteratee(x, function (err, v) { - if (cb) { - if (err) { - cb(err); - cb = iteratee = false; - } else if (check(v)) { - cb(null, getResult(true, x)); - cb = iteratee = false; - } - } - callback(); - }); - } - if (arguments.length > 3) { - cb = cb || noop; - eachfn(arr, limit, wrappedIteratee, done); - } else { - cb = iteratee; - cb = cb || noop; - iteratee = limit; - eachfn(arr, wrappedIteratee, done); - } - }; - } - - function _findGetResult(v, x) { - return x; - } - - /** - * Returns the first value in `coll` that passes an async truth test. The - * `iteratee` is applied in parallel, meaning the first iteratee to return - * `true` will fire the detect `callback` with that result. That means the - * result might not be the first item in the original `coll` (in terms of order) - * that passes the test. - - * If order within the original `coll` is important, then look at - * [`detectSeries`]{@link module:Collections.detectSeries}. - * - * @name detect - * @static - * @memberOf module:Collections - * @method - * @alias find - * @category Collections - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The iteratee is passed a `callback(err, truthValue)` which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the `iteratee` functions have finished. - * Result will be the first item in the array that passes the truth test - * (iteratee) or the value `undefined` if none passed. Invoked with - * (err, result). - * @example - * - * async.detect(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, result) { - * // result now equals the first file in the list that exists - * }); - */ - var detect = _createTester(eachOf, identity, _findGetResult); - - /** - * The same as [`detect`]{@link module:Collections.detect} but runs a maximum of `limit` async operations at a - * time. - * - * @name detectLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.detect]{@link module:Collections.detect} - * @alias findLimit - * @category Collections - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The iteratee is passed a `callback(err, truthValue)` which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the `iteratee` functions have finished. - * Result will be the first item in the array that passes the truth test - * (iteratee) or the value `undefined` if none passed. Invoked with - * (err, result). - */ - var detectLimit = _createTester(eachOfLimit, identity, _findGetResult); - - /** - * The same as [`detect`]{@link module:Collections.detect} but runs only a single async operation at a time. - * - * @name detectSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.detect]{@link module:Collections.detect} - * @alias findSeries - * @category Collections - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The iteratee is passed a `callback(err, truthValue)` which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the `iteratee` functions have finished. - * Result will be the first item in the array that passes the truth test - * (iteratee) or the value `undefined` if none passed. Invoked with - * (err, result). - */ - var detectSeries = _createTester(eachOfSeries, identity, _findGetResult); - - function consoleFunc(name) { - return rest(function (fn, args) { - fn.apply(null, args.concat([rest(function (err, args) { - if (typeof console === 'object') { - if (err) { - if (console.error) { - console.error(err); - } - } else if (console[name]) { - arrayEach(args, function (x) { - console[name](x); - }); - } - } - })])); - }); - } - - /** - * Logs the result of an `async` function to the `console` using `console.dir` - * to display the properties of the resulting object. Only works in Node.js or - * in browsers that support `console.dir` and `console.error` (such as FF and - * Chrome). If multiple arguments are returned from the async function, - * `console.dir` is called on each argument in order. - * - * @name dir - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} function - The function you want to eventually apply all - * arguments to. - * @param {...*} arguments... - Any number of arguments to apply to the function. - * @example - * - * // in a module - * var hello = function(name, callback) { - * setTimeout(function() { - * callback(null, {hello: name}); - * }, 1000); - * }; - * - * // in the node repl - * node> async.dir(hello, 'world'); - * {hello: 'world'} - */ - var dir = consoleFunc('dir'); - - /** - * The post-check version of [`during`]{@link module:ControlFlow.during}. To reflect the difference in - * the order of operations, the arguments `test` and `fn` are switched. - * - * Also a version of [`doWhilst`]{@link module:ControlFlow.doWhilst} with asynchronous `test` function. - * @name doDuring - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.during]{@link module:ControlFlow.during} - * @category Control Flow - * @param {Function} fn - A function which is called each time `test` passes. - * The function is passed a `callback(err)`, which must be called once it has - * completed with an optional `err` argument. Invoked with (callback). - * @param {Function} test - asynchronous truth test to perform before each - * execution of `fn`. Invoked with (...args, callback), where `...args` are the - * non-error args from the previous callback of `fn`. - * @param {Function} [callback] - A callback which is called after the test - * function has failed and repeated execution of `fn` has stopped. `callback` - * will be passed an error if one occured, otherwise `null`. - */ - function doDuring(fn, test, callback) { - callback = onlyOnce(callback || noop); - - var next = rest(function (err, args) { - if (err) return callback(err); - args.push(check); - test.apply(this, args); - }); - - function check(err, truth) { - if (err) return callback(err); - if (!truth) return callback(null); - fn(next); - } - - check(null, true); - } - - /** - * The post-check version of [`whilst`]{@link module:ControlFlow.whilst}. To reflect the difference in - * the order of operations, the arguments `test` and `iteratee` are switched. - * - * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. - * - * @name doWhilst - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.whilst]{@link module:ControlFlow.whilst} - * @category Control Flow - * @param {Function} iteratee - A function which is called each time `test` - * passes. The function is passed a `callback(err)`, which must be called once - * it has completed with an optional `err` argument. Invoked with (callback). - * @param {Function} test - synchronous truth test to perform after each - * execution of `iteratee`. Invoked with Invoked with the non-error callback - * results of `iteratee`. - * @param {Function} [callback] - A callback which is called after the test - * function has failed and repeated execution of `iteratee` has stopped. - * `callback` will be passed an error and any arguments passed to the final - * `iteratee`'s callback. Invoked with (err, [results]); - */ - function doWhilst(iteratee, test, callback) { - callback = onlyOnce(callback || noop); - var next = rest(function (err, args) { - if (err) return callback(err); - if (test.apply(this, args)) return iteratee(next); - callback.apply(null, [null].concat(args)); - }); - iteratee(next); - } - - /** - * Like ['doWhilst']{@link module:ControlFlow.doWhilst}, except the `test` is inverted. Note the - * argument ordering differs from `until`. - * - * @name doUntil - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.doWhilst]{@link module:ControlFlow.doWhilst} - * @category Control Flow - * @param {Function} fn - A function which is called each time `test` fails. - * The function is passed a `callback(err)`, which must be called once it has - * completed with an optional `err` argument. Invoked with (callback). - * @param {Function} test - synchronous truth test to perform after each - * execution of `fn`. Invoked with the non-error callback results of `fn`. - * @param {Function} [callback] - A callback which is called after the test - * function has passed and repeated execution of `fn` has stopped. `callback` - * will be passed an error and any arguments passed to the final `fn`'s - * callback. Invoked with (err, [results]); - */ - function doUntil(fn, test, callback) { - doWhilst(fn, function () { - return !test.apply(this, arguments); - }, callback); - } - - /** - * Like [`whilst`]{@link module:ControlFlow.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. - * - * @name during - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.whilst]{@link module:ControlFlow.whilst} - * @category Control Flow - * @param {Function} test - asynchronous truth test to perform before each - * execution of `fn`. Invoked with (callback). - * @param {Function} fn - A function which is called each time `test` passes. - * The function is passed a `callback(err)`, which must be called once it has - * completed with an optional `err` argument. Invoked with (callback). - * @param {Function} [callback] - A callback which is called after the test - * function has failed and repeated execution of `fn` has stopped. `callback` - * will be passed an error, if one occured, otherwise `null`. - * @example - * - * var count = 0; - * - * async.during( - * function (callback) { - * return callback(null, count < 5); - * }, - * function (callback) { - * count++; - * setTimeout(callback, 1000); - * }, - * function (err) { - * // 5 seconds have passed - * } - * ); - */ - function during(test, fn, callback) { - callback = onlyOnce(callback || noop); - - function next(err) { - if (err) return callback(err); - test(check); - } - - function check(err, truth) { - if (err) return callback(err); - if (!truth) return callback(null); - fn(next); - } - - test(check); - } - - function _withoutIndex(iteratee) { - return function (value, index, callback) { - return iteratee(value, callback); - }; - } - - /** - * Applies the function `iteratee` to each item in `coll`, in parallel. - * The `iteratee` is called with an item from the list, and a callback for when - * it has finished. If the `iteratee` passes an error to its `callback`, the - * main `callback` (for the `each` function) is immediately called with the - * error. - * - * Note, that since this function applies `iteratee` to each item in parallel, - * there is no guarantee that the iteratee functions will complete in order. - * - * @name each - * @static - * @memberOf module:Collections - * @method - * @alias forEach - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item - * in `coll`. The iteratee is passed a `callback(err)` which must be called once - * it has completed. If no error has occurred, the `callback` should be run - * without arguments or with an explicit `null` argument. The array index is not - * passed to the iteratee. Invoked with (item, callback). If you need the index, - * use `eachOf`. - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - * @example - * - * // assuming openFiles is an array of file names and saveFile is a function - * // to save the modified contents of that file: - * - * async.each(openFiles, saveFile, function(err){ - * // if any of the saves produced an error, err would equal that error - * }); - * - * // assuming openFiles is an array of file names - * async.each(openFiles, function(file, callback) { - * - * // Perform operation on file here. - * console.log('Processing file ' + file); - * - * if( file.length > 32 ) { - * console.log('This file name is too long'); - * callback('File name too long'); - * } else { - * // Do work to process file here - * console.log('File processed'); - * callback(); - * } - * }, function(err) { - * // if any of the file processing produced an error, err would equal that error - * if( err ) { - * // One of the iterations produced an error. - * // All processing will now stop. - * console.log('A file failed to process'); - * } else { - * console.log('All files have been processed successfully'); - * } - * }); - */ - function eachLimit(coll, iteratee, callback) { - eachOf(coll, _withoutIndex(iteratee), callback); - } - - /** - * The same as [`each`]{@link module:Collections.each} but runs a maximum of `limit` async operations at a time. - * - * @name eachLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.each]{@link module:Collections.each} - * @alias forEachLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A colleciton to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each item in `coll`. The - * iteratee is passed a `callback(err)` which must be called once it has - * completed. If no error has occurred, the `callback` should be run without - * arguments or with an explicit `null` argument. The array index is not passed - * to the iteratee. Invoked with (item, callback). If you need the index, use - * `eachOfLimit`. - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - */ - function eachLimit$1(coll, limit, iteratee, callback) { - _eachOfLimit(limit)(coll, _withoutIndex(iteratee), callback); - } - - /** - * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time. - * - * @name eachSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.each]{@link module:Collections.each} - * @alias forEachSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The iteratee is passed a `callback(err)` which must be called - * once it has completed. If no error has occurred, the `callback` should be run - * without arguments or with an explicit `null` argument. The array index is - * not passed to the iteratee. Invoked with (item, callback). If you need the - * index, use `eachOfSeries`. - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - */ - var eachSeries = doLimit(eachLimit$1, 1); - - /** - * Wrap 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. - * - * @name ensureAsync - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} fn - an async function, one that expects a node-style - * callback as its last argument. - * @returns {Function} Returns a wrapped function with the exact same call - * signature as the function passed in. - * @example - * - * function sometimesAsync(arg, callback) { - * if (cache[arg]) { - * return callback(null, cache[arg]); // this would be synchronous!! - * } else { - * doSomeIO(arg, callback); // this IO would be asynchronous - * } - * } - * - * // this has a risk of stack overflows if many results are cached in a row - * async.mapSeries(args, sometimesAsync, done); - * - * // this will defer sometimesAsync's callback if necessary, - * // preventing stack overflows - * async.mapSeries(args, async.ensureAsync(sometimesAsync), done); - */ - function ensureAsync(fn) { - return initialParams(function (args, callback) { - var sync = true; - args.push(function () { - var innerArgs = arguments; - if (sync) { - setImmediate$1(function () { - callback.apply(null, innerArgs); - }); - } else { - callback.apply(null, innerArgs); - } - }); - fn.apply(this, args); - sync = false; - }); - } - - function notId(v) { - return !v; - } - - /** - * Returns `true` if every element in `coll` satisfies an async test. If any - * iteratee call returns `false`, the main `callback` is immediately called. - * - * @name every - * @static - * @memberOf module:Collections - * @method - * @alias all - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - * @example - * - * async.every(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, result) { - * // if result is true then every file exists - * }); - */ - var every = _createTester(eachOf, notId, notId); - - /** - * The same as [`every`]{@link module:Collections.every} but runs a maximum of `limit` async operations at a time. - * - * @name everyLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.every]{@link module:Collections.every} - * @alias allLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - */ - var everyLimit = _createTester(eachOfLimit, notId, notId); - - /** - * The same as [`every`]{@link module:Collections.every} but runs only a single async operation at a time. - * - * @name everySeries - * @static - * @memberOf module:Collections - * @method - * @see [async.every]{@link module:Collections.every} - * @alias allSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - */ - var everySeries = doLimit(everyLimit, 1); - - function _filter(eachfn, arr, iteratee, callback) { - callback = once(callback || noop); - var results = []; - eachfn(arr, function (x, index, callback) { - iteratee(x, function (err, v) { - if (err) { - callback(err); - } else { - if (v) { - results.push({ index: index, value: x }); - } - callback(); - } - }); - }, function (err) { - if (err) { - callback(err); - } else { - callback(null, arrayMap(results.sort(function (a, b) { - return a.index - b.index; - }), baseProperty('value'))); - } - }); - } - - /** - * Returns a new array of all the values in `coll` which pass an async truth - * test. This operation is performed in parallel, but the results array will be - * in the same order as the original. - * - * @name filter - * @static - * @memberOf module:Collections - * @method - * @alias select - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - * @example - * - * async.filter(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, results) { - * // results now equals an array of the existing files - * }); - */ - var filter = doParallel(_filter); - - /** - * The same as [`filter`]{@link module:Collections.filter} but runs a maximum of `limit` async operations at a - * time. - * - * @name filterLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @alias selectLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ - var filterLimit = doParallelLimit(_filter); - - /** - * The same as [`filter`]{@link module:Collections.filter} but runs only a single async operation at a time. - * - * @name filterSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @alias selectSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results) - */ - var filterSeries = doLimit(filterLimit, 1); - - /** - * Calls the asynchronous function `fn` with a callback parameter that allows it - * to call itself again, in series, indefinitely. - - * If an error is passed to the - * callback then `errback` is called with the error, and execution stops, - * otherwise it will never be called. - * - * @name forever - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Function} fn - a function to call repeatedly. Invoked with (next). - * @param {Function} [errback] - when `fn` passes an error to it's callback, - * this function will be called, and execution stops. Invoked with (err). - * @example - * - * async.forever( - * function(next) { - * // next is suitable for passing to things that need a callback(err [, whatever]); - * // it will result in this function being called again. - * }, - * function(err) { - * // if next is called with a value in its first parameter, it will appear - * // in here as 'err', and execution will stop. - * } - * ); - */ - function forever(fn, errback) { - var done = onlyOnce(errback || noop); - var task = ensureAsync(fn); - - function next(err) { - if (err) return done(err); - task(next); - } - next(); - } - - /** - * Logs the result of an `async` function to the `console`. Only works in - * Node.js or in browsers that support `console.log` and `console.error` (such - * as FF and Chrome). If multiple arguments are returned from the async - * function, `console.log` is called on each argument in order. - * - * @name log - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} function - The function you want to eventually apply all - * arguments to. - * @param {...*} arguments... - Any number of arguments to apply to the function. - * @example - * - * // in a module - * var hello = function(name, callback) { - * setTimeout(function() { - * callback(null, 'hello ' + name); - * }, 1000); - * }; - * - * // in the node repl - * node> async.log(hello, 'world'); - * 'hello world' - */ - var log = consoleFunc('log'); - - /** - * The same as [`mapValues`]{@link module:Collections.mapValues} but runs a maximum of `limit` async operations at a - * time. - * - * @name mapValuesLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.mapValues]{@link module:Collections.mapValues} - * @category Collection - * @param {Object} obj - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each value in `obj`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed value. Invoked with (value, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Result is an object of the - * transformed values from the `obj`. Invoked with (err, result). - */ - function mapValuesLimit(obj, limit, iteratee, callback) { - callback = once(callback || noop); - var newObj = {}; - eachOfLimit(obj, limit, function (val, key, next) { - iteratee(val, key, function (err, result) { - if (err) return next(err); - newObj[key] = result; - next(); - }); - }, function (err) { - callback(err, newObj); - }); - } - - /** - * A relative of [`map`]{@link module:Collections.map}, designed for use with objects. - * - * Produces a new Object by mapping each value of `obj` through the `iteratee` - * function. The `iteratee` is called each `value` and `key` from `obj` and a - * callback for when it has finished processing. Each of these callbacks takes - * two arguments: an `error`, and the transformed item from `obj`. If `iteratee` - * passes an error to its callback, the main `callback` (for the `mapValues` - * function) is immediately called with the error. - * - * Note, the order of the keys in the result is not guaranteed. The keys will - * be roughly in the order they complete, (but this is very engine-specific) - * - * @name mapValues - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Object} obj - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each value and key in - * `coll`. The iteratee is passed a `callback(err, transformed)` which must be - * called once it has completed with an error (which can be `null`) and a - * transformed value. Invoked with (value, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an array of the - * transformed items from the `obj`. Invoked with (err, result). - * @example - * - * async.mapValues({ - * f1: 'file1', - * f2: 'file2', - * f3: 'file3' - * }, function (file, key, callback) { - * fs.stat(file, callback); - * }, function(err, result) { - * // results is now a map of stats for each file, e.g. - * // { - * // f1: [stats for file1], - * // f2: [stats for file2], - * // f3: [stats for file3] - * // } - * }); - */ - - var mapValues = doLimit(mapValuesLimit, Infinity); - - /** - * The same as [`mapValues`]{@link module:Collections.mapValues} but runs only a single async operation at a time. - * - * @name mapValuesSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.mapValues]{@link module:Collections.mapValues} - * @category Collection - * @param {Object} obj - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each value in `obj`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed value. Invoked with (value, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Result is an object of the - * transformed values from the `obj`. Invoked with (err, result). - */ - var mapValuesSeries = doLimit(mapValuesLimit, 1); - - function has(obj, key) { - return key in obj; - } - - /** - * Caches the results of an `async` function. When creating a hash to store - * function results against, the callback is omitted from the hash and an - * optional hash function can be used. - * - * If 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. - * - * The cache of results is exposed as the `memo` property of the function - * returned by `memoize`. - * - * @name memoize - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} fn - The function to proxy and cache results from. - * @param {Function} hasher - An optional function for generating a custom hash - * for storing results. It has all the arguments applied to it apart from the - * callback, and must be synchronous. - * @returns {Function} a memoized version of `fn` - * @example - * - * var slow_fn = function(name, callback) { - * // do something - * callback(null, result); - * }; - * var fn = async.memoize(slow_fn); - * - * // fn can now be used as if it were slow_fn - * fn('some name', function() { - * // callback - * }); - */ - function memoize(fn, hasher) { - var memo = Object.create(null); - var queues = Object.create(null); - hasher = hasher || identity; - var memoized = initialParams(function memoized(args, callback) { - var key = hasher.apply(null, args); - if (has(memo, key)) { - setImmediate$1(function () { - callback.apply(null, memo[key]); - }); - } else if (has(queues, key)) { - queues[key].push(callback); - } else { - queues[key] = [callback]; - fn.apply(null, args.concat([rest(function (args) { - memo[key] = args; - var q = queues[key]; - delete queues[key]; - for (var i = 0, l = q.length; i < l; i++) { - q[i].apply(null, args); - } - })])); - } - }); - memoized.memo = memo; - memoized.unmemoized = fn; - return memoized; - } - - /** - * Calls `callback` on a later loop around the event loop. In Node.js this just - * calls `setImmediate`. In the browser it will use `setImmediate` if - * available, otherwise `setTimeout(callback, 0)`, which means other higher - * priority events may precede the execution of `callback`. - * - * This is used internally for browser-compatibility purposes. - * - * @name nextTick - * @static - * @memberOf module:Utils - * @method - * @alias setImmediate - * @category Util - * @param {Function} callback - The function to call on a later loop around - * the event loop. Invoked with (args...). - * @param {...*} args... - any number of additional arguments to pass to the - * callback on the next tick. - * @example - * - * var call_order = []; - * async.nextTick(function() { - * call_order.push('two'); - * // call_order now equals ['one','two'] - * }); - * call_order.push('one'); - * - * async.setImmediate(function (a, b, c) { - * // a, b, and c equal 1, 2, and 3 - * }, 1, 2, 3); - */ - var _defer$1; - - if (hasNextTick) { - _defer$1 = process.nextTick; - } else if (hasSetImmediate) { - _defer$1 = setImmediate; - } else { - _defer$1 = fallback; - } - - var nextTick = wrap(_defer$1); - - function _parallel(eachfn, tasks, callback) { - callback = callback || noop; - var results = isArrayLike(tasks) ? [] : {}; - - eachfn(tasks, function (task, key, callback) { - task(rest(function (err, args) { - if (args.length <= 1) { - args = args[0]; - } - results[key] = args; - callback(err); - })); - }, function (err) { - callback(err, results); - }); - } - - /** - * Run the `tasks` collection of functions in parallel, without waiting until - * the previous function has completed. If any of the functions pass an error to - * its callback, the main `callback` is immediately called with the value of the - * error. Once the `tasks` have completed, the results are passed to the final - * `callback` as an array. - * - * **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. - * - * It is also possible to use an object instead of an array. Each property will - * be run as a function and the results will be passed to the final `callback` - * as an object instead of an array. This can be a more readable way of handling - * results from {@link async.parallel}. - * - * @name parallel - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array|Iterable|Object} tasks - A collection containing functions to run. - * Each function is passed a `callback(err, result)` which it must call on - * completion with an error `err` (which can be `null`) and an optional `result` - * value. - * @param {Function} [callback] - An optional callback to run once all the - * functions have completed successfully. This function gets a results array - * (or object) containing all the result arguments passed to the task callbacks. - * Invoked with (err, results). - * @example - * async.parallel([ - * function(callback) { - * setTimeout(function() { - * callback(null, 'one'); - * }, 200); - * }, - * function(callback) { - * setTimeout(function() { - * callback(null, 'two'); - * }, 100); - * } - * ], - * // optional callback - * function(err, results) { - * // the results array will equal ['one','two'] even though - * // the second function had a shorter timeout. - * }); - * - * // an example using an object instead of an array - * async.parallel({ - * one: function(callback) { - * setTimeout(function() { - * callback(null, 1); - * }, 200); - * }, - * two: function(callback) { - * setTimeout(function() { - * callback(null, 2); - * }, 100); - * } - * }, function(err, results) { - * // results is now equals to: {one: 1, two: 2} - * }); - */ - function parallelLimit(tasks, callback) { - _parallel(eachOf, tasks, callback); - } - - /** - * The same as [`parallel`]{@link module:ControlFlow.parallel} but runs a maximum of `limit` async operations at a - * time. - * - * @name parallelLimit - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.parallel]{@link module:ControlFlow.parallel} - * @category Control Flow - * @param {Array|Collection} tasks - A collection containing functions to run. - * Each function is passed a `callback(err, result)` which it must call on - * completion with an error `err` (which can be `null`) and an optional `result` - * value. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} [callback] - An optional callback to run once all the - * functions have completed successfully. This function gets a results array - * (or object) containing all the result arguments passed to the task callbacks. - * Invoked with (err, results). - */ - function parallelLimit$1(tasks, limit, callback) { - _parallel(_eachOfLimit(limit), tasks, callback); - } - - /** - * A queue of tasks for the worker function to complete. - * @typedef {Object} QueueObject - * @memberOf module:ControlFlow - * @property {Function} length - a function returning the number of items - * waiting to be processed. Invoke with `queue.length()`. - * @property {boolean} started - a boolean indicating whether or not any - * items have been pushed and processed by the queue. - * @property {Function} running - a function returning the number of items - * currently being processed. Invoke with `queue.running()`. - * @property {Function} workersList - a function returning the array of items - * currently being processed. Invoke with `queue.workersList()`. - * @property {Function} idle - a function returning false if there are items - * waiting or being processed, or true if not. Invoke with `queue.idle()`. - * @property {number} concurrency - an integer for determining how many `worker` - * functions should be run in parallel. This property can be changed after a - * `queue` is created to alter the concurrency on-the-fly. - * @property {Function} push - add a new task to the `queue`. Calls `callback` - * once the `worker` has finished processing the task. Instead of a single task, - * a `tasks` array can be submitted. The respective callback is used for every - * task in the list. Invoke with `queue.push(task, [callback])`, - * @property {Function} unshift - add a new task to the front of the `queue`. - * Invoke with `queue.unshift(task, [callback])`. - * @property {Function} saturated - a callback that is called when the number of - * running workers hits the `concurrency` limit, and further tasks will be - * queued. - * @property {Function} unsaturated - a callback that is called when the number - * of running workers is less than the `concurrency` & `buffer` limits, and - * further tasks will not be queued. - * @property {number} buffer - A minimum threshold buffer in order to say that - * the `queue` is `unsaturated`. - * @property {Function} empty - a callback that is called when the last item - * from the `queue` is given to a `worker`. - * @property {Function} drain - a callback that is called when the last item - * from the `queue` has returned from the `worker`. - * @property {Function} error - a callback that is called when a task errors. - * Has the signature `function(error, task)`. - * @property {boolean} paused - a boolean for determining whether the queue is - * in a paused state. - * @property {Function} pause - a function that pauses the processing of tasks - * until `resume()` is called. Invoke with `queue.pause()`. - * @property {Function} resume - a function that resumes the processing of - * queued tasks when the queue is paused. Invoke with `queue.resume()`. - * @property {Function} kill - a function that removes the `drain` callback and - * empties remaining tasks from the queue forcing it to go idle. Invoke with `queue.kill()`. - */ - - /** - * Creates a `queue` object with the specified `concurrency`. Tasks added to the - * `queue` are processed in parallel (up to the `concurrency` limit). If all - * `worker`s are in progress, the task is queued until one becomes available. - * Once a `worker` completes a `task`, that `task`'s callback is called. - * - * @name queue - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Function} worker - An asynchronous function for processing a queued - * task, which must call its `callback(err)` argument when finished, with an - * optional `error` as an argument. If you want to handle errors from an - * individual task, pass a callback to `q.push()`. Invoked with - * (task, callback). - * @param {number} [concurrency=1] - An `integer` for determining how many - * `worker` functions should be run in parallel. If omitted, the concurrency - * defaults to `1`. If the concurrency is `0`, an error is thrown. - * @returns {module:ControlFlow.QueueObject} A queue object to manage the tasks. Callbacks can - * attached as certain properties to listen for specific events during the - * lifecycle of the queue. - * @example - * - * // create a queue object with concurrency 2 - * var q = async.queue(function(task, callback) { - * console.log('hello ' + task.name); - * callback(); - * }, 2); - * - * // assign a callback - * q.drain = function() { - * console.log('all items have been processed'); - * }; - * - * // add some items to the queue - * q.push({name: 'foo'}, function(err) { - * console.log('finished processing foo'); - * }); - * q.push({name: 'bar'}, function (err) { - * console.log('finished processing bar'); - * }); - * - * // add some items to the queue (batch-wise) - * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) { - * console.log('finished processing item'); - * }); - * - * // add some items to the front of the queue - * q.unshift({name: 'bar'}, function (err) { - * console.log('finished processing bar'); - * }); - */ - function queue$1 (worker, concurrency) { - return queue(function (items, cb) { - worker(items[0], cb); - }, concurrency, 1); - } - - /** - * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and - * completed in ascending priority order. - * - * @name priorityQueue - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.queue]{@link module:ControlFlow.queue} - * @category Control Flow - * @param {Function} worker - An asynchronous function for processing a queued - * task, which must call its `callback(err)` argument when finished, with an - * optional `error` as an argument. If you want to handle errors from an - * individual task, pass a callback to `q.push()`. Invoked with - * (task, callback). - * @param {number} concurrency - An `integer` for determining how many `worker` - * functions should be run in parallel. If omitted, the concurrency defaults to - * `1`. If the concurrency is `0`, an error is thrown. - * @returns {module:ControlFlow.QueueObject} A priorityQueue object to manage the tasks. There are two - * differences between `queue` and `priorityQueue` objects: - * * `push(task, priority, [callback])` - `priority` should be a number. If an - * array of `tasks` is given, all tasks will be assigned the same priority. - * * The `unshift` method was removed. - */ - function priorityQueue (worker, concurrency) { - // Start with a normal queue - var q = queue$1(worker, concurrency); - - // Override push to accept second parameter representing priority - q.push = function (data, priority, callback) { - if (callback == null) callback = noop; - if (typeof callback !== 'function') { - throw new Error('task callback must be a function'); - } - q.started = true; - if (!isArray(data)) { - data = [data]; - } - if (data.length === 0) { - // call drain immediately if there are no tasks - return setImmediate$1(function () { - q.drain(); - }); - } - - priority = priority || 0; - var nextNode = q._tasks.head; - while (nextNode && priority >= nextNode.priority) { - nextNode = nextNode.next; - } - - arrayEach(data, function (task) { - var item = { - data: task, - priority: priority, - callback: callback - }; - - if (nextNode) { - q._tasks.insertBefore(nextNode, item); - } else { - q._tasks.push(item); - } - }); - setImmediate$1(q.process); - }; - - // Remove unshift function - delete q.unshift; - - return q; - } - - /** - * Runs the `tasks` array of functions in parallel, without waiting until the - * previous function has completed. Once any the `tasks` completed or pass an - * error to its callback, the main `callback` is immediately called. It's - * equivalent to `Promise.race()`. - * - * @name race - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array} tasks - An array containing functions to run. Each function - * is passed a `callback(err, result)` which it must call on completion with an - * error `err` (which can be `null`) and an optional `result` value. - * @param {Function} callback - A callback to run once any of the functions have - * completed. This function gets an error or result from the first function that - * completed. Invoked with (err, result). - * @returns undefined - * @example - * - * async.race([ - * function(callback) { - * setTimeout(function() { - * callback(null, 'one'); - * }, 200); - * }, - * function(callback) { - * setTimeout(function() { - * callback(null, 'two'); - * }, 100); - * } - * ], - * // main callback - * function(err, result) { - * // the result will be equal to 'two' as it finishes earlier - * }); - */ - function race(tasks, callback) { - callback = once(callback || noop); - if (!isArray(tasks)) return callback(new TypeError('First argument to race must be an array of functions')); - if (!tasks.length) return callback(); - arrayEach(tasks, function (task) { - task(callback); - }); - } - - var slice = Array.prototype.slice; - - /** - * Same as [`reduce`]{@link module:Collections.reduce}, only operates on `array` in reverse order. - * - * @name reduceRight - * @static - * @memberOf module:Collections - * @method - * @see [async.reduce]{@link module:Collections.reduce} - * @alias foldr - * @category Collection - * @param {Array} array - A collection to iterate over. - * @param {*} memo - The initial state of the reduction. - * @param {Function} iteratee - A function applied to each item in the - * array to produce the next step in the reduction. The `iteratee` is passed a - * `callback(err, reduction)` which accepts an optional error as its first - * argument, and the state of the reduction as the second. If an error is - * passed to the callback, the reduction is stopped and the main `callback` is - * immediately called with the error. Invoked with (memo, item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result is the reduced value. Invoked with - * (err, result). - */ - function reduceRight(array, memo, iteratee, callback) { - var reversed = slice.call(array).reverse(); - reduce(reversed, memo, iteratee, callback); - } - - /** - * Wraps the function in another function that always returns data even when it - * errors. - * - * The object returned has either the property `error` or `value`. - * - * @name reflect - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} fn - The function you want to wrap - * @returns {Function} - A function that always passes null to it's callback as - * the error. The second argument to the callback will be an `object` with - * either an `error` or a `value` property. - * @example - * - * async.parallel([ - * async.reflect(function(callback) { - * // do some stuff ... - * callback(null, 'one'); - * }), - * async.reflect(function(callback) { - * // do some more stuff but error ... - * callback('bad stuff happened'); - * }), - * async.reflect(function(callback) { - * // do some more stuff ... - * callback(null, 'two'); - * }) - * ], - * // optional callback - * function(err, results) { - * // values - * // results[0].value = 'one' - * // results[1].error = 'bad stuff happened' - * // results[2].value = 'two' - * }); - */ - function reflect(fn) { - return initialParams(function reflectOn(args, reflectCallback) { - args.push(rest(function callback(err, cbArgs) { - if (err) { - reflectCallback(null, { - error: err - }); - } else { - var value = null; - if (cbArgs.length === 1) { - value = cbArgs[0]; - } else if (cbArgs.length > 1) { - value = cbArgs; - } - reflectCallback(null, { - value: value - }); - } - })); - - return fn.apply(this, args); - }); - } - - function reject$1(eachfn, arr, iteratee, callback) { - _filter(eachfn, arr, function (value, cb) { - iteratee(value, function (err, v) { - if (err) { - cb(err); - } else { - cb(null, !v); - } - }); - }, callback); - } - - /** - * The opposite of [`filter`]{@link module:Collections.filter}. Removes values that pass an `async` truth test. - * - * @name reject - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - * @example - * - * async.reject(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, results) { - * // results now equals an array of missing files - * createFiles(results); - * }); - */ - var reject = doParallel(reject$1); - - /** - * A helper function that wraps an array or an object of functions with reflect. - * - * @name reflectAll - * @static - * @memberOf module:Utils - * @method - * @see [async.reflect]{@link module:Utils.reflect} - * @category Util - * @param {Array} tasks - The array of functions to wrap in `async.reflect`. - * @returns {Array} Returns an array of functions, each function wrapped in - * `async.reflect` - * @example - * - * let tasks = [ - * function(callback) { - * setTimeout(function() { - * callback(null, 'one'); - * }, 200); - * }, - * function(callback) { - * // do some more stuff but error ... - * callback(new Error('bad stuff happened')); - * }, - * function(callback) { - * setTimeout(function() { - * callback(null, 'two'); - * }, 100); - * } - * ]; - * - * async.parallel(async.reflectAll(tasks), - * // optional callback - * function(err, results) { - * // values - * // results[0].value = 'one' - * // results[1].error = Error('bad stuff happened') - * // results[2].value = 'two' - * }); - * - * // an example using an object instead of an array - * let tasks = { - * one: function(callback) { - * setTimeout(function() { - * callback(null, 'one'); - * }, 200); - * }, - * two: function(callback) { - * callback('two'); - * }, - * three: function(callback) { - * setTimeout(function() { - * callback(null, 'three'); - * }, 100); - * } - * }; - * - * async.parallel(async.reflectAll(tasks), - * // optional callback - * function(err, results) { - * // values - * // results.one.value = 'one' - * // results.two.error = 'two' - * // results.three.value = 'three' - * }); - */ - function reflectAll(tasks) { - var results; - if (isArray(tasks)) { - results = arrayMap(tasks, reflect); - } else { - results = {}; - baseForOwn(tasks, function (task, key) { - results[key] = reflect.call(this, task); - }); - } - return results; - } - - /** - * The same as [`reject`]{@link module:Collections.reject} but runs a maximum of `limit` async operations at a - * time. - * - * @name rejectLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.reject]{@link module:Collections.reject} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ - var rejectLimit = doParallelLimit(reject$1); - - /** - * The same as [`reject`]{@link module:Collections.reject} but runs only a single async operation at a time. - * - * @name rejectSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.reject]{@link module:Collections.reject} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ - var rejectSeries = doLimit(rejectLimit, 1); - - /** - * Creates a function that returns `value`. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Util - * @param {*} value The value to return from the new function. - * @returns {Function} Returns the new constant function. - * @example - * - * var objects = _.times(2, _.constant({ 'a': 1 })); - * - * console.log(objects); - * // => [{ 'a': 1 }, { 'a': 1 }] - * - * console.log(objects[0] === objects[1]); - * // => true - */ - function constant$1(value) { - return function() { - return value; - }; - } - - /** - * Attempts to get a successful response from `task` no more than `times` times - * before returning an error. If the task is successful, the `callback` will be - * passed the result of the successful task. If all attempts fail, the callback - * will be passed the error and result (if any) of the final attempt. - * - * @name retry - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an - * object with `times` and `interval` or a number. - * * `times` - The number of attempts to make before giving up. The default - * is `5`. - * * `interval` - The time to wait between retries, in milliseconds. The - * default is `0`. The interval may also be specified as a function of the - * retry count (see example). - * * If `opts` is a number, the number specifies the number of times to retry, - * with the default interval of `0`. - * @param {Function} task - A function which receives two arguments: (1) a - * `callback(err, result)` which must be called when finished, passing `err` - * (which can be `null`) and the `result` of the function's execution, and (2) - * a `results` object, containing the results of the previously executed - * functions (if nested inside another control flow). Invoked with - * (callback, results). - * @param {Function} [callback] - An optional callback which is called when the - * task has succeeded, or after the final failed attempt. It receives the `err` - * and `result` arguments of the last attempt at completing the `task`. Invoked - * with (err, results). - * @example - * - * // The `retry` function can be used as a stand-alone control flow by passing - * // a callback, as shown below: - * - * // try calling apiMethod 3 times - * async.retry(3, apiMethod, function(err, result) { - * // do something with the result - * }); - * - * // try calling apiMethod 3 times, waiting 200 ms between each retry - * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) { - * // do something with the result - * }); - * - * // try calling apiMethod 10 times with exponential backoff - * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds) - * async.retry({ - * times: 10, - * interval: function(retryCount) { - * return 50 * Math.pow(2, retryCount); - * } - * }, apiMethod, function(err, result) { - * // do something with the result - * }); - * - * // try calling apiMethod the default 5 times no delay between each retry - * async.retry(apiMethod, function(err, result) { - * // do something with the result - * }); - * - * // It can also be embedded within other control flow functions to retry - * // individual methods that are not as reliable, like this: - * async.auto({ - * users: api.getUsers.bind(api), - * payments: async.retry(3, api.getPayments.bind(api)) - * }, function(err, results) { - * // do something with the results - * }); - */ - function retry(opts, task, callback) { - var DEFAULT_TIMES = 5; - var DEFAULT_INTERVAL = 0; - - var options = { - times: DEFAULT_TIMES, - intervalFunc: constant$1(DEFAULT_INTERVAL) - }; - - function parseTimes(acc, t) { - if (typeof t === 'object') { - acc.times = +t.times || DEFAULT_TIMES; - - acc.intervalFunc = typeof t.interval === 'function' ? t.interval : constant$1(+t.interval || DEFAULT_INTERVAL); - } else if (typeof t === 'number' || typeof t === 'string') { - acc.times = +t || DEFAULT_TIMES; - } else { - throw new Error("Invalid arguments for async.retry"); - } - } - - if (arguments.length < 3 && typeof opts === 'function') { - callback = task || noop; - task = opts; - } else { - parseTimes(options, opts); - callback = callback || noop; - } - - if (typeof task !== 'function') { - throw new Error("Invalid arguments for async.retry"); - } - - var attempt = 1; - function retryAttempt() { - task(function (err) { - if (err && attempt++ < options.times) { - setTimeout(retryAttempt, options.intervalFunc(attempt)); - } else { - callback.apply(null, arguments); - } - }); - } - - retryAttempt(); - } - - /** - * A close relative of [`retry`]{@link module:ControlFlow.retry}. This method wraps a task and makes it - * retryable, rather than immediately calling it with retries. - * - * @name retryable - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.retry]{@link module:ControlFlow.retry} - * @category Control Flow - * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional - * options, exactly the same as from `retry` - * @param {Function} task - the asynchronous function to wrap - * @returns {Functions} The wrapped function, which when invoked, will retry on - * an error, based on the parameters specified in `opts`. - * @example - * - * async.auto({ - * dep1: async.retryable(3, getFromFlakyService), - * process: ["dep1", async.retryable(3, function (results, cb) { - * maybeProcessData(results.dep1, cb); - * })] - * }, callback); - */ - function retryable (opts, task) { - if (!task) { - task = opts; - opts = null; - } - return initialParams(function (args, callback) { - function taskFn(cb) { - task.apply(null, args.concat([cb])); - } - - if (opts) retry(opts, taskFn, callback);else retry(taskFn, callback); - }); - } - - /** - * Run the functions in the `tasks` collection in series, each one running once - * the previous function has completed. If any functions in the series pass an - * error to its callback, no more functions are run, and `callback` is - * immediately called with the value of the error. Otherwise, `callback` - * receives an array of results when `tasks` have completed. - * - * It is also possible to use an object instead of an array. Each property will - * be run as a function, and the results will be passed to the final `callback` - * as an object instead of an array. This can be a more readable way of handling - * results from {@link async.series}. - * - * **Note** that while many implementations preserve the order of object - * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) - * explicitly states that - * - * > The mechanics and order of enumerating the properties is not specified. - * - * So if you rely on the order in which your series of functions are executed, - * and want this to work on all platforms, consider using an array. - * - * @name series - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array|Iterable|Object} tasks - A collection containing functions to run, each - * function is passed a `callback(err, result)` it must call on completion with - * an error `err` (which can be `null`) and an optional `result` value. - * @param {Function} [callback] - An optional callback to run once all the - * functions have completed. This function gets a results array (or object) - * containing all the result arguments passed to the `task` callbacks. Invoked - * with (err, result). - * @example - * async.series([ - * function(callback) { - * // do some stuff ... - * callback(null, 'one'); - * }, - * function(callback) { - * // do some more stuff ... - * callback(null, 'two'); - * } - * ], - * // optional callback - * function(err, results) { - * // results is now equal to ['one', 'two'] - * }); - * - * async.series({ - * one: function(callback) { - * setTimeout(function() { - * callback(null, 1); - * }, 200); - * }, - * two: function(callback){ - * setTimeout(function() { - * callback(null, 2); - * }, 100); - * } - * }, function(err, results) { - * // results is now equal to: {one: 1, two: 2} - * }); - */ - function series(tasks, callback) { - _parallel(eachOfSeries, tasks, callback); - } - - /** - * Returns `true` if at least one element in the `coll` satisfies an async test. - * If any iteratee call returns `true`, the main `callback` is immediately - * called. - * - * @name some - * @static - * @memberOf module:Collections - * @method - * @alias any - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - * @example - * - * async.some(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, result) { - * // if result is true then at least one of the files exists - * }); - */ - var some = _createTester(eachOf, Boolean, identity); - - /** - * The same as [`some`]{@link module:Collections.some} but runs a maximum of `limit` async operations at a time. - * - * @name someLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.some]{@link module:Collections.some} - * @alias anyLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - */ - var someLimit = _createTester(eachOfLimit, Boolean, identity); - - /** - * The same as [`some`]{@link module:Collections.some} but runs only a single async operation at a time. - * - * @name someSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.some]{@link module:Collections.some} - * @alias anySeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - */ - var someSeries = doLimit(someLimit, 1); - - /** - * Sorts a list by the results of running each `coll` value through an async - * `iteratee`. - * - * @name sortBy - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, sortValue)` which must be called once - * it has completed with an error (which can be `null`) and a value to use as - * the sort criteria. Invoked with (item, callback). - * @param {Function} callback - A callback which is called after all the - * `iteratee` functions have finished, or an error occurs. Results is the items - * from the original `coll` sorted by the values returned by the `iteratee` - * calls. Invoked with (err, results). - * @example - * - * async.sortBy(['file1','file2','file3'], function(file, callback) { - * fs.stat(file, function(err, stats) { - * callback(err, stats.mtime); - * }); - * }, function(err, results) { - * // results is now the original array of files sorted by - * // modified date - * }); - * - * // By modifying the callback parameter the - * // sorting order can be influenced: - * - * // ascending order - * async.sortBy([1,9,3,5], function(x, callback) { - * callback(null, x); - * }, function(err,result) { - * // result callback - * }); - * - * // descending order - * async.sortBy([1,9,3,5], function(x, callback) { - * callback(null, x*-1); //<- x*-1 instead of x, turns the order around - * }, function(err,result) { - * // result callback - * }); - */ - function sortBy(coll, iteratee, callback) { - map(coll, function (x, callback) { - iteratee(x, function (err, criteria) { - if (err) return callback(err); - callback(null, { value: x, criteria: criteria }); - }); - }, function (err, results) { - if (err) return callback(err); - callback(null, arrayMap(results.sort(comparator), baseProperty('value'))); - }); - - function comparator(left, right) { - var a = left.criteria, - b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - } - } - - /** - * Sets a time limit on an asynchronous function. If the function does not call - * its callback within the specified milliseconds, it will be called with a - * timeout error. The code property for the error object will be `'ETIMEDOUT'`. - * - * @name timeout - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} asyncFn - The asynchronous function you want to set the - * time limit. - * @param {number} milliseconds - The specified time limit. - * @param {*} [info] - Any variable you want attached (`string`, `object`, etc) - * to timeout Error for more information.. - * @returns {Function} Returns a wrapped function that can be used with any of - * the control flow functions. - * @example - * - * async.timeout(function(callback) { - * doAsyncTask(callback); - * }, 1000); - */ - function timeout(asyncFn, milliseconds, info) { - var originalCallback, timer; - var timedOut = false; - - function injectedCallback() { - if (!timedOut) { - originalCallback.apply(null, arguments); - clearTimeout(timer); - } - } - - function timeoutCallback() { - var name = asyncFn.name || 'anonymous'; - var error = new Error('Callback function "' + name + '" timed out.'); - error.code = 'ETIMEDOUT'; - if (info) { - error.info = info; - } - timedOut = true; - originalCallback(error); - } - - return initialParams(function (args, origCallback) { - originalCallback = origCallback; - // setup timer and call original function - timer = setTimeout(timeoutCallback, milliseconds); - asyncFn.apply(null, args.concat(injectedCallback)); - }); - } - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeCeil = Math.ceil; - var nativeMax$1 = Math.max; - /** - * The base implementation of `_.range` and `_.rangeRight` which doesn't - * coerce arguments to numbers. - * - * @private - * @param {number} start The start of the range. - * @param {number} end The end of the range. - * @param {number} step The value to increment or decrement by. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the range of numbers. - */ - function baseRange(start, end, step, fromRight) { - var index = -1, - length = nativeMax$1(nativeCeil((end - start) / (step || 1)), 0), - result = Array(length); - - while (length--) { - result[fromRight ? length : ++index] = start; - start += step; - } - return result; - } - - /** - * The same as [times]{@link module:ControlFlow.times} but runs a maximum of `limit` async operations at a - * time. - * - * @name timesLimit - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.times]{@link module:ControlFlow.times} - * @category Control Flow - * @param {number} count - The number of times to run the function. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - The function to call `n` times. Invoked with the - * iteration index and a callback (n, next). - * @param {Function} callback - see [async.map]{@link module:Collections.map}. - */ - function timeLimit(count, limit, iteratee, callback) { - mapLimit(baseRange(0, count, 1), limit, iteratee, callback); - } - - /** - * Calls the `iteratee` function `n` times, and accumulates results in the same - * manner you would use with [map]{@link module:Collections.map}. - * - * @name times - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.map]{@link module:Collections.map} - * @category Control Flow - * @param {number} n - The number of times to run the function. - * @param {Function} iteratee - The function to call `n` times. Invoked with the - * iteration index and a callback (n, next). - * @param {Function} callback - see {@link module:Collections.map}. - * @example - * - * // Pretend this is some complicated async factory - * var createUser = function(id, callback) { - * callback(null, { - * id: 'user' + id - * }); - * }; - * - * // generate 5 users - * async.times(5, function(n, next) { - * createUser(n, function(err, user) { - * next(err, user); - * }); - * }, function(err, users) { - * // we should now have 5 users - * }); - */ - var times = doLimit(timeLimit, Infinity); - - /** - * The same as [times]{@link module:ControlFlow.times} but runs only a single async operation at a time. - * - * @name timesSeries - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.times]{@link module:ControlFlow.times} - * @category Control Flow - * @param {number} n - The number of times to run the function. - * @param {Function} iteratee - The function to call `n` times. Invoked with the - * iteration index and a callback (n, next). - * @param {Function} callback - see {@link module:Collections.map}. - */ - var timesSeries = doLimit(timeLimit, 1); - - /** - * A relative of `reduce`. Takes an Object or Array, and iterates over each - * element in series, each step potentially mutating an `accumulator` value. - * The type of the accumulator defaults to the type of collection passed in. - * - * @name transform - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {*} [accumulator] - The initial state of the transform. If omitted, - * it will default to an empty Object or Array, depending on the type of `coll` - * @param {Function} iteratee - A function applied to each item in the - * collection that potentially modifies the accumulator. The `iteratee` is - * passed a `callback(err)` which accepts an optional error as its first - * argument. If an error is passed to the callback, the transform is stopped - * and the main `callback` is immediately called with the error. - * Invoked with (accumulator, item, key, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result is the transformed accumulator. - * Invoked with (err, result). - * @example - * - * async.transform([1,2,3], function(acc, item, index, callback) { - * // pointless async: - * process.nextTick(function() { - * acc.push(item * 2) - * callback(null) - * }); - * }, function(err, result) { - * // result is now equal to [2, 4, 6] - * }); - * - * @example - * - * async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) { - * setImmediate(function () { - * obj[key] = val * 2; - * callback(); - * }) - * }, function (err, result) { - * // result is equal to {a: 2, b: 4, c: 6} - * }) - */ - function transform(coll, accumulator, iteratee, callback) { - if (arguments.length === 3) { - callback = iteratee; - iteratee = accumulator; - accumulator = isArray(coll) ? [] : {}; - } - callback = once(callback || noop); - - eachOf(coll, function (v, k, cb) { - iteratee(accumulator, v, k, cb); - }, function (err) { - callback(err, accumulator); - }); - } - - /** - * Undoes a [memoize]{@link module:Utils.memoize}d function, reverting it to the original, - * unmemoized form. Handy for testing. - * - * @name unmemoize - * @static - * @memberOf module:Utils - * @method - * @see [async.memoize]{@link module:Utils.memoize} - * @category Util - * @param {Function} fn - the memoized function - * @returns {Function} a function that calls the original unmemoized function - */ - function unmemoize(fn) { - return function () { - return (fn.unmemoized || fn).apply(null, arguments); - }; - } - - /** - * Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when - * stopped, or an error occurs. - * - * @name whilst - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Function} test - synchronous truth test to perform before each - * execution of `fn`. Invoked with (). - * @param {Function} iteratee - A function which is called each time `test` passes. - * The function is passed a `callback(err)`, which must be called once it has - * completed with an optional `err` argument. Invoked with (callback). - * @param {Function} [callback] - A callback which is called after the test - * function has failed and repeated execution of `fn` has stopped. `callback` - * will be passed an error and any arguments passed to the final `fn`'s - * callback. Invoked with (err, [results]); - * @returns undefined - * @example - * - * var count = 0; - * async.whilst( - * function() { return count < 5; }, - * function(callback) { - * count++; - * setTimeout(function() { - * callback(null, count); - * }, 1000); - * }, - * function (err, n) { - * // 5 seconds have passed, n = 5 - * } - * ); - */ - function whilst(test, iteratee, callback) { - callback = onlyOnce(callback || noop); - if (!test()) return callback(null); - var next = rest(function (err, args) { - if (err) return callback(err); - if (test()) return iteratee(next); - callback.apply(null, [null].concat(args)); - }); - iteratee(next); - } - - /** - * Repeatedly call `fn` until `test` returns `true`. Calls `callback` when - * stopped, or an error occurs. `callback` will be passed an error and any - * arguments passed to the final `fn`'s callback. - * - * The inverse of [whilst]{@link module:ControlFlow.whilst}. - * - * @name until - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.whilst]{@link module:ControlFlow.whilst} - * @category Control Flow - * @param {Function} test - synchronous truth test to perform before each - * execution of `fn`. Invoked with (). - * @param {Function} fn - A function which is called each time `test` fails. - * The function is passed a `callback(err)`, which must be called once it has - * completed with an optional `err` argument. Invoked with (callback). - * @param {Function} [callback] - A callback which is called after the test - * function has passed and repeated execution of `fn` has stopped. `callback` - * will be passed an error and any arguments passed to the final `fn`'s - * callback. Invoked with (err, [results]); - */ - function until(test, fn, callback) { - whilst(function () { - return !test.apply(this, arguments); - }, fn, callback); - } - - /** - * Runs the `tasks` array of functions in series, each passing their results to - * the next in the array. However, if any of the `tasks` pass an error to their - * own callback, the next function is not executed, and the main `callback` is - * immediately called with the error. - * - * @name waterfall - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array} tasks - An array of functions to run, each function is passed - * a `callback(err, result1, result2, ...)` it must call on completion. The - * first argument is an error (which can be `null`) and any further arguments - * will be passed as arguments in order to the next task. - * @param {Function} [callback] - An optional callback to run once all the - * functions have completed. This will be passed the results of the last task's - * callback. Invoked with (err, [results]). - * @returns undefined - * @example - * - * async.waterfall([ - * function(callback) { - * callback(null, 'one', 'two'); - * }, - * function(arg1, arg2, callback) { - * // arg1 now equals 'one' and arg2 now equals 'two' - * callback(null, 'three'); - * }, - * function(arg1, callback) { - * // arg1 now equals 'three' - * callback(null, 'done'); - * } - * ], function (err, result) { - * // result now equals 'done' - * }); - * - * // Or, with named functions: - * async.waterfall([ - * myFirstFunction, - * mySecondFunction, - * myLastFunction, - * ], function (err, result) { - * // result now equals 'done' - * }); - * function myFirstFunction(callback) { - * callback(null, 'one', 'two'); - * } - * function mySecondFunction(arg1, arg2, callback) { - * // arg1 now equals 'one' and arg2 now equals 'two' - * callback(null, 'three'); - * } - * function myLastFunction(arg1, callback) { - * // arg1 now equals 'three' - * callback(null, 'done'); - * } - */ - function waterfall (tasks, callback) { - callback = once(callback || noop); - if (!isArray(tasks)) return callback(new Error('First argument to waterfall must be an array of functions')); - if (!tasks.length) return callback(); - var taskIndex = 0; - - function nextTask(args) { - if (taskIndex === tasks.length) { - return callback.apply(null, [null].concat(args)); - } - - var taskCallback = onlyOnce(rest(function (err, args) { - if (err) { - return callback.apply(null, [err].concat(args)); - } - nextTask(args); - })); - - args.push(taskCallback); - - var task = tasks[taskIndex++]; - task.apply(null, args); - } - - nextTask([]); - } - - var index = { - applyEach: applyEach, - applyEachSeries: applyEachSeries, - apply: apply$1, - asyncify: asyncify, - auto: auto, - autoInject: autoInject, - cargo: cargo, - compose: compose, - concat: concat, - concatSeries: concatSeries, - constant: constant, - detect: detect, - detectLimit: detectLimit, - detectSeries: detectSeries, - dir: dir, - doDuring: doDuring, - doUntil: doUntil, - doWhilst: doWhilst, - during: during, - each: eachLimit, - eachLimit: eachLimit$1, - eachOf: eachOf, - eachOfLimit: eachOfLimit, - eachOfSeries: eachOfSeries, - eachSeries: eachSeries, - ensureAsync: ensureAsync, - every: every, - everyLimit: everyLimit, - everySeries: everySeries, - filter: filter, - filterLimit: filterLimit, - filterSeries: filterSeries, - forever: forever, - log: log, - map: map, - mapLimit: mapLimit, - mapSeries: mapSeries, - mapValues: mapValues, - mapValuesLimit: mapValuesLimit, - mapValuesSeries: mapValuesSeries, - memoize: memoize, - nextTick: nextTick, - parallel: parallelLimit, - parallelLimit: parallelLimit$1, - priorityQueue: priorityQueue, - queue: queue$1, - race: race, - reduce: reduce, - reduceRight: reduceRight, - reflect: reflect, - reflectAll: reflectAll, - reject: reject, - rejectLimit: rejectLimit, - rejectSeries: rejectSeries, - retry: retry, - retryable: retryable, - seq: seq, - series: series, - setImmediate: setImmediate$1, - some: some, - someLimit: someLimit, - someSeries: someSeries, - sortBy: sortBy, - timeout: timeout, - times: times, - timesLimit: timeLimit, - timesSeries: timesSeries, - transform: transform, - unmemoize: unmemoize, - until: until, - waterfall: waterfall, - whilst: whilst, - - // aliases - all: every, - any: some, - forEach: eachLimit, - forEachSeries: eachSeries, - forEachLimit: eachLimit$1, - forEachOf: eachOf, - forEachOfSeries: eachOfSeries, - forEachOfLimit: eachOfLimit, - inject: reduce, - foldl: reduce, - foldr: reduceRight, - select: filter, - selectLimit: filterLimit, - selectSeries: filterSeries, - wrapSync: asyncify - }; - - exports['default'] = index; - exports.applyEach = applyEach; - exports.applyEachSeries = applyEachSeries; - exports.apply = apply$1; - exports.asyncify = asyncify; - exports.auto = auto; - exports.autoInject = autoInject; - exports.cargo = cargo; - exports.compose = compose; - exports.concat = concat; - exports.concatSeries = concatSeries; - exports.constant = constant; - exports.detect = detect; - exports.detectLimit = detectLimit; - exports.detectSeries = detectSeries; - exports.dir = dir; - exports.doDuring = doDuring; - exports.doUntil = doUntil; - exports.doWhilst = doWhilst; - exports.during = during; - exports.each = eachLimit; - exports.eachLimit = eachLimit$1; - exports.eachOf = eachOf; - exports.eachOfLimit = eachOfLimit; - exports.eachOfSeries = eachOfSeries; - exports.eachSeries = eachSeries; - exports.ensureAsync = ensureAsync; - exports.every = every; - exports.everyLimit = everyLimit; - exports.everySeries = everySeries; - exports.filter = filter; - exports.filterLimit = filterLimit; - exports.filterSeries = filterSeries; - exports.forever = forever; - exports.log = log; - exports.map = map; - exports.mapLimit = mapLimit; - exports.mapSeries = mapSeries; - exports.mapValues = mapValues; - exports.mapValuesLimit = mapValuesLimit; - exports.mapValuesSeries = mapValuesSeries; - exports.memoize = memoize; - exports.nextTick = nextTick; - exports.parallel = parallelLimit; - exports.parallelLimit = parallelLimit$1; - exports.priorityQueue = priorityQueue; - exports.queue = queue$1; - exports.race = race; - exports.reduce = reduce; - exports.reduceRight = reduceRight; - exports.reflect = reflect; - exports.reflectAll = reflectAll; - exports.reject = reject; - exports.rejectLimit = rejectLimit; - exports.rejectSeries = rejectSeries; - exports.retry = retry; - exports.retryable = retryable; - exports.seq = seq; - exports.series = series; - exports.setImmediate = setImmediate$1; - exports.some = some; - exports.someLimit = someLimit; - exports.someSeries = someSeries; - exports.sortBy = sortBy; - exports.timeout = timeout; - exports.times = times; - exports.timesLimit = timeLimit; - exports.timesSeries = timesSeries; - exports.transform = transform; - exports.unmemoize = unmemoize; - exports.until = until; - exports.waterfall = waterfall; - exports.whilst = whilst; - exports.all = every; - exports.allLimit = everyLimit; - exports.allSeries = everySeries; - exports.any = some; - exports.anyLimit = someLimit; - exports.anySeries = someSeries; - exports.find = detect; - exports.findLimit = detectLimit; - exports.findSeries = detectSeries; - exports.forEach = eachLimit; - exports.forEachSeries = eachSeries; - exports.forEachLimit = eachLimit$1; - exports.forEachOf = eachOf; - exports.forEachOfSeries = eachOfSeries; - exports.forEachOfLimit = eachOfLimit; - exports.inject = reduce; - exports.foldl = reduce; - exports.foldr = reduceRight; - exports.select = filter; - exports.selectLimit = filterLimit; - exports.selectSeries = filterSeries; - exports.wrapSync = asyncify; - -})); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/dist/async.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/dist/async.min.js deleted file mode 100644 index 4d5d88a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/dist/async.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.async=n.async||{})}(this,function(n){"use strict";function t(n,t,e){var r=e.length;switch(r){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}function e(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function r(n){var t=e(n)?st.call(n):"";return t==ft||t==at}function u(n){return!!n&&"object"==typeof n}function i(n){return"symbol"==typeof n||u(n)&&vt.call(n)==pt}function o(n){if("number"==typeof n)return n;if(i(n))return yt;if(e(n)){var t=r(n.valueOf)?n.valueOf():n;n=e(t)?t+"":t}if("string"!=typeof n)return 0===n?n:+n;n=n.replace(mt,"");var u=gt.test(n);return u||bt.test(n)?St(n.slice(2),u?2:8):dt.test(n)?yt:+n}function c(n){if(!n)return 0===n?n:0;if(n=o(n),n===jt||n===-jt){var t=0>n?-1:1;return t*kt}return n===n?n:0}function f(n){var t=c(n),e=t%1;return t===t?e?t-e:t:0}function a(n,e){if("function"!=typeof n)throw new TypeError(wt);return e=Et(void 0===e?n.length-1:f(e),0),function(){for(var r=arguments,u=-1,i=Et(r.length-e,0),o=Array(i);++u-1&&n%1==0&&Lt>=n}function v(n){return null!=n&&h(xt(n))&&!r(n)}function y(){}function m(n){return function(){if(null!==n){var t=n;n=null,t.apply(this,arguments)}}}function d(n){return Ot&&n[Ot]&&n[Ot]()}function g(n){return At(Object(n))}function b(n,t){return null!=n&&(Tt.call(n,t)||"object"==typeof n&&t in n&&null===g(n))}function S(n){return _t(Object(n))}function j(n,t){for(var e=-1,r=Array(n);++e-1&&n%1==0&&t>n}function O(n){var t=n&&n.constructor,e="function"==typeof t&&t.prototype||Ut;return n===e}function A(n){var t=O(n);if(!t&&!v(n))return S(n);var e=x(n),r=!!e,u=e||[],i=u.length;for(var o in n)!b(n,o)||r&&("length"==o||L(o,i))||t&&"constructor"==o||u.push(o);return u}function I(n){var t=-1,e=n.length;return function(){return++te?{value:n[u],key:u}:null}}function F(n){if(v(n))return I(n);var t=d(n);return t?T(t):_(n)}function $(n){return function(){if(null===n)throw new Error("Callback was already called.");var t=n;n=null,t.apply(this,arguments)}}function z(n){return function(t,e,r){function u(n){if(f-=1,n)c=!0,r(n);else{if(c&&0>=f)return r(null);i()}}function i(){for(;n>f&&!c;){var t=o();if(null===t)return c=!0,void(0>=f&&r(null));f+=1,e(t.value,t.key,$(u))}}if(r=m(r||y),0>=n||!t)return r(null);var o=F(t),c=!1,f=0;i()}}function B(n,t,e,r){z(t)(n,e,r)}function M(n,t){return function(e,r,u){return n(e,t,r,u)}}function V(n,t){var e;if("function"!=typeof t)throw new TypeError(Nt);return n=f(n),function(){return--n>0&&(e=t.apply(this,arguments)),1>=n&&(t=void 0),e}}function q(n){return V(2,n)}function C(n,t,e){function r(n){n?e(n):++i===o&&e(null)}e=q(e||y);var u=0,i=0,o=n.length;for(0===o&&e(null);o>u;u++)t(n[u],u,$(r))}function D(n,t,e){var r=v(n)?C:Qt;r(n,t,e)}function P(n){return function(t,e,r){return n(D,t,e,r)}}function R(n,t,e,r){r=m(r||y),t=t||[];var u=[],i=0;n(t,function(n,t,r){var o=i++;e(n,function(n,t){u[o]=t,r(n)})},function(n){r(n,u)})}function U(n){return function(t,e,r,u){return n(z(e),t,r,u)}}function N(n){return l(function(t,r){var u;try{u=n.apply(this,t)}catch(i){return r(i)}e(u)&&"function"==typeof u.then?u.then(function(n){r(null,n)},function(n){r(n.message?n:new Error(n))}):r(null,u)})}function Q(n,t){for(var e=-1,r=n?n.length:0;++ev;){var n=b.shift();n()}}function i(n,t){var e=g[n];e||(e=g[n]=[]),e.push(t)}function o(n){var t=g[n]||[];Q(t,function(n){n()}),u()}function c(n,t){if(!d){var r=$(a(function(t,r){if(v--,r.length<=1&&(r=r[0]),t){var u={};G(h,function(n,t){u[t]=n}),u[n]=r,d=!0,g=[],e(t,u)}else h[n]=r,o(n)}));v++;var u=t[t.length-1];t.length>1?u(h,r):u(r)}}function f(){for(var n,t=0;S.length;)n=S.pop(),t++,Q(l(n),function(n){0===--j[n]&&S.push(n)});if(t!==p)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}function l(t){var e=[];return G(n,function(n,r){Vt(n)&&J(n,t,0)>=0&&e.push(r)}),e}"function"==typeof t&&(e=t,t=null),e=m(e||y);var s=A(n),p=s.length;if(!p)return e(null);t||(t=p);var h={},v=0,d=!1,g={},b=[],S=[],j={};G(n,function(t,e){if(!Vt(t))return r(e,[t]),void S.push(e);var u=t.slice(0,t.length-1),o=u.length;return 0===o?(r(e,t),void S.push(e)):(j[e]=o,void Q(u,function(c){if(!n[c])throw new Error("async.auto task `"+e+"` has a non-existent dependency in "+u.join(", "));i(c,function(){o--,0===o&&r(e,t)})}))}),f(),u()}function X(n,t){for(var e=-1,r=n?n.length:0,u=Array(r);++et&&(t=-t>u?0:u+t),e=e>u?u:e,0>e&&(e+=u),u=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(u);++r=r?n:tn(n,t,e)}function rn(n,t){for(var e=n.length;e--&&J(t,n[e],0)>-1;);return e}function un(n,t){for(var e=-1,r=n.length;++e-1;);return e}function on(n){return n.match(Ee)}function cn(n){return null==n?"":nn(n)}function fn(n,t,e){if(n=cn(n),n&&(e||void 0===t))return n.replace(xe,"");if(!n||!(t=nn(t)))return n;var r=on(n),u=on(t),i=un(r,u),o=rn(r,u)+1;return en(r,i,o).join("")}function an(n){return n=n.toString().replace(Ie,""),n=n.match(Le)[2].replace(" ",""),n=n?n.split(Oe):[],n=n.map(function(n){return fn(n.replace(Ae,""))})}function ln(n,t){var e={};G(n,function(n,t){function r(t,e){var r=X(u,function(n){return t[n]});r.push(e),n.apply(null,r)}var u;if(Vt(n))u=Y(n),n=u.pop(),e[t]=u.concat(u.length>0?r:n);else if(1===n.length)e[t]=n;else{if(u=an(n),0===n.length&&0===u.length)throw new Error("autoInject task functions require explicit parameters.");u.pop(),e[t]=u.concat(r)}}),K(e,t)}function sn(n){setTimeout(n,0)}function pn(n){return a(function(t,e){n(function(){t.apply(null,e)})})}function hn(){this.head=this.tail=null,this.length=0}function vn(n,t){n.length=1,n.head=n.tail=t}function yn(n,t,e){function r(n,t,e){if(null!=e&&"function"!=typeof e)throw new Error("task callback must be a function");return c.started=!0,Vt(n)||(n=[n]),0===n.length&&c.idle()?Fe(function(){c.drain()}):(Q(n,function(n){var r={data:n,callback:e||y};t?c._tasks.unshift(r):c._tasks.push(r)}),void Fe(c.process))}function u(n){return a(function(t){i-=1,Q(n,function(n){Q(o,function(t,e){return t===n?(o.splice(e,1),!1):void 0}),n.callback.apply(n,t),null!=t[0]&&c.error(t[0],n.data)}),i<=c.concurrency-c.buffer&&c.unsaturated(),c.idle()&&c.drain(),c.process()})}if(null==t)t=1;else if(0===t)throw new Error("Concurrency must not be zero");var i=0,o=[],c={_tasks:new hn,concurrency:t,payload:e,saturated:y,unsaturated:y,buffer:t/4,empty:y,drain:y,error:y,started:!1,paused:!1,push:function(n,t){r(n,!1,t)},kill:function(){c.drain=y,c._tasks.empty()},unshift:function(n,t){r(n,!0,t)},process:function(){for(;!c.paused&&if;f++){var a=c._tasks.shift();t.push(a),e.push(a.data)}0===c._tasks.length&&c.empty(),i+=1,o.push(t[0]),i===c.concurrency&&c.saturated();var l=$(u(t));n(e,l)}},length:function(){return c._tasks.length},running:function(){return i},workersList:function(){return o},idle:function(){return c._tasks.length+i===0},pause:function(){c.paused=!0},resume:function(){if(c.paused!==!1){c.paused=!1;for(var n=Math.min(c.concurrency,c._tasks.length),t=1;n>=t;t++)Fe(c.process)}}};return c}function mn(n,t){return yn(n,1,t)}function dn(n,t,e,r){r=m(r||y),ze(n,function(n,r,u){e(t,n,function(n,e){t=e,u(n)})},function(n){r(n,t)})}function gn(n,t,e,r){var u=[];n(t,function(n,t,r){e(n,function(n,t){u=u.concat(t||[]),r(n)})},function(n){r(n,u)})}function bn(n){return function(t,e,r){return n(ze,t,e,r)}}function Sn(n){return n}function jn(n,t,e){return function(r,u,i,o){function c(n){o&&(n?o(n):o(null,e(!1)))}function f(n,r,u){return o?void i(n,function(r,c){o&&(r?(o(r),o=i=!1):t(c)&&(o(null,e(!0,n)),o=i=!1)),u()}):u()}arguments.length>3?(o=o||y,n(r,u,f,c)):(o=i,o=o||y,i=u,n(r,f,c))}}function kn(n,t){return t}function wn(n){return a(function(t,e){t.apply(null,e.concat([a(function(t,e){"object"==typeof console&&(t?console.error&&console.error(t):console[n]&&Q(e,function(t){console[n](t)}))})]))})}function En(n,t,e){function r(t,r){return t?e(t):r?void n(u):e(null)}e=$(e||y);var u=a(function(n,u){return n?e(n):(u.push(r),void t.apply(this,u))});r(null,!0)}function xn(n,t,e){e=$(e||y);var r=a(function(u,i){return u?e(u):t.apply(this,i)?n(r):void e.apply(null,[null].concat(i))});n(r)}function Ln(n,t,e){xn(n,function(){return!t.apply(this,arguments)},e)}function On(n,t,e){function r(t){return t?e(t):void n(u)}function u(n,u){return n?e(n):u?void t(r):e(null)}e=$(e||y),n(u)}function An(n){return function(t,e,r){return n(t,r)}}function In(n,t,e){D(n,An(t),e)}function Tn(n,t,e,r){z(t)(n,An(e),r)}function _n(n){return l(function(t,e){var r=!0;t.push(function(){var n=arguments;r?Fe(function(){e.apply(null,n)}):e.apply(null,n)}),n.apply(this,t),r=!1})}function Fn(n){return!n}function $n(n,t,e,r){r=m(r||y);var u=[];n(t,function(n,t,r){e(n,function(e,i){e?r(e):(i&&u.push({index:t,value:n}),r())})},function(n){n?r(n):r(null,X(u.sort(function(n,t){return n.index-t.index}),p("value")))})}function zn(n,t){function e(n){return n?r(n):void u(e)}var r=$(t||y),u=_n(n);e()}function Bn(n,t,e,r){r=m(r||y);var u={};B(n,t,function(n,t,r){e(n,t,function(n,e){return n?r(n):(u[t]=e,void r())})},function(n){r(n,u)})}function Mn(n,t){return t in n}function Vn(n,t){var e=Object.create(null),r=Object.create(null);t=t||Sn;var u=l(function(u,i){var o=t.apply(null,u);Mn(e,o)?Fe(function(){i.apply(null,e[o])}):Mn(r,o)?r[o].push(i):(r[o]=[i],n.apply(null,u.concat([a(function(n){e[o]=n;var t=r[o];delete r[o];for(var u=0,i=t.length;i>u;u++)t[u].apply(null,n)})])))});return u.memo=e,u.unmemoized=n,u}function qn(n,t,e){e=e||y;var r=v(t)?[]:{};n(t,function(n,t,e){n(a(function(n,u){u.length<=1&&(u=u[0]),r[t]=u,e(n)}))},function(n){e(n,r)})}function Cn(n,t){qn(D,n,t)}function Dn(n,t,e){qn(z(t),n,e)}function Pn(n,t){return yn(function(t,e){n(t[0],e)},t,1)}function Rn(n,t){var e=Pn(n,t);return e.push=function(n,t,r){if(null==r&&(r=y),"function"!=typeof r)throw new Error("task callback must be a function");if(e.started=!0,Vt(n)||(n=[n]),0===n.length)return Fe(function(){e.drain()});t=t||0;for(var u=e._tasks.head;u&&t>=u.priority;)u=u.next;Q(n,function(n){var i={data:n,priority:t,callback:r};u?e._tasks.insertBefore(u,i):e._tasks.push(i)}),Fe(e.process)},delete e.unshift,e}function Un(n,t){return t=m(t||y),Vt(n)?n.length?void Q(n,function(n){n(t)}):t():t(new TypeError("First argument to race must be an array of functions"))}function Nn(n,t,e,r){var u=tr.call(n).reverse();dn(u,t,e,r)}function Qn(n){return l(function(t,e){return t.push(a(function(n,t){if(n)e(null,{error:n});else{var r=null;1===t.length?r=t[0]:t.length>1&&(r=t),e(null,{value:r})}})),n.apply(this,t)})}function Wn(n,t,e,r){$n(n,t,function(n,t){e(n,function(n,e){n?t(n):t(null,!e)})},r)}function Gn(n){var t;return Vt(n)?t=X(n,Qn):(t={},G(n,function(n,e){t[e]=Qn.call(this,n)})),t}function Hn(n){return function(){return n}}function Jn(n,t,e){function r(n,t){if("object"==typeof t)n.times=+t.times||i,n.intervalFunc="function"==typeof t.interval?t.interval:Hn(+t.interval||o);else{if("number"!=typeof t&&"string"!=typeof t)throw new Error("Invalid arguments for async.retry");n.times=+t||i}}function u(){t(function(n){n&&f++e?-1:e>r?1:0}Wt(n,function(n,e){t(n,function(t,r){return t?e(t):void e(null,{value:n,criteria:r})})},function(n,t){return n?e(n):void e(null,X(t.sort(r),p("value")))})}function Zn(n,t,e){function r(){c||(i.apply(null,arguments),clearTimeout(o))}function u(){var t=n.name||"anonymous",r=new Error('Callback function "'+t+'" timed out.');r.code="ETIMEDOUT",e&&(r.info=e),c=!0,i(r)}var i,o,c=!1;return l(function(e,c){i=c,o=setTimeout(u,t),n.apply(null,e.concat(r))})}function nt(n,t,e,r){for(var u=-1,i=ar(fr((t-n)/(e||1)),0),o=Array(i);i--;)o[r?i:++u]=n,n+=e;return o}function tt(n,t,e,r){Ht(nt(0,n,1),t,e,r)}function et(n,t,e,r){3===arguments.length&&(r=e,e=t,t=Vt(n)?[]:{}),r=m(r||y),D(n,function(n,r,u){e(t,n,r,u)},function(n){r(n,t)})}function rt(n){return function(){return(n.unmemoized||n).apply(null,arguments)}}function ut(n,t,e){if(e=$(e||y),!n())return e(null);var r=a(function(u,i){return u?e(u):n()?t(r):void e.apply(null,[null].concat(i))});t(r)}function it(n,t,e){ut(function(){return!n.apply(this,arguments)},t,e)}function ot(n,t){function e(u){if(r===n.length)return t.apply(null,[null].concat(u));var i=$(a(function(n,r){return n?t.apply(null,[n].concat(r)):void e(r)}));u.push(i);var o=n[r++];o.apply(null,u)}if(t=m(t||y),!Vt(n))return t(new Error("First argument to waterfall must be an array of functions"));if(!n.length)return t();var r=0;e([])}var ct,ft="[object Function]",at="[object GeneratorFunction]",lt=Object.prototype,st=lt.toString,pt="[object Symbol]",ht=Object.prototype,vt=ht.toString,yt=NaN,mt=/^\s+|\s+$/g,dt=/^[-+]0x[0-9a-f]+$/i,gt=/^0b[01]+$/i,bt=/^0o[0-7]+$/i,St=parseInt,jt=1/0,kt=1.7976931348623157e308,wt="Expected a function",Et=Math.max,xt=p("length"),Lt=9007199254740991,Ot="function"==typeof Symbol&&Symbol.iterator,At=Object.getPrototypeOf,It=Object.prototype,Tt=It.hasOwnProperty,_t=Object.keys,Ft="[object Arguments]",$t=Object.prototype,zt=$t.hasOwnProperty,Bt=$t.toString,Mt=$t.propertyIsEnumerable,Vt=Array.isArray,qt="[object String]",Ct=Object.prototype,Dt=Ct.toString,Pt=9007199254740991,Rt=/^(?:0|[1-9]\d*)$/,Ut=Object.prototype,Nt="Expected a function",Qt=M(B,1/0),Wt=P(R),Gt=s(Wt),Ht=U(R),Jt=M(Ht,1),Kt=s(Jt),Xt=a(function(n,t){return a(function(e){return n.apply(null,t.concat(e))})}),Yt=W(),Zt=Z("object"==typeof global&&global),ne=Z("object"==typeof self&&self),te=Z("object"==typeof this&&this),ee=Zt||ne||te||Function("return this")(),re=ee.Symbol,ue=1/0,ie=re?re.prototype:void 0,oe=ie?ie.toString:void 0,ce="\\ud800-\\udfff",fe="\\u0300-\\u036f\\ufe20-\\ufe23",ae="\\u20d0-\\u20f0",le="\\ufe0e\\ufe0f",se="["+ce+"]",pe="["+fe+ae+"]",he="\\ud83c[\\udffb-\\udfff]",ve="(?:"+pe+"|"+he+")",ye="[^"+ce+"]",me="(?:\\ud83c[\\udde6-\\uddff]){2}",de="[\\ud800-\\udbff][\\udc00-\\udfff]",ge="\\u200d",be=ve+"?",Se="["+le+"]?",je="(?:"+ge+"(?:"+[ye,me,de].join("|")+")"+Se+be+")*",ke=Se+be+je,we="(?:"+[ye+pe+"?",pe,me,de,se].join("|")+")",Ee=RegExp(he+"(?="+he+")|"+we+ke,"g"),xe=/^\s+|\s+$/g,Le=/^(function)?\s*[^\(]*\(\s*([^\)]*)\)/m,Oe=/,/,Ae=/(=.+)?(\s*)$/,Ie=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Te="function"==typeof setImmediate&&setImmediate,_e="object"==typeof process&&"function"==typeof process.nextTick;ct=Te?setImmediate:_e?process.nextTick:sn;var Fe=pn(ct);hn.prototype.removeLink=function(n){return n.prev?n.prev.next=n.next:this.head=n.next,n.next?n.next.prev=n.prev:this.tail=n.prev,n.prev=n.next=null,this.length-=1,n},hn.prototype.empty=hn,hn.prototype.insertAfter=function(n,t){t.prev=n,t.next=n.next,n.next?n.next.prev=t:this.tail=t,n.next=t,this.length+=1},hn.prototype.insertBefore=function(n,t){t.prev=n.prev,t.next=n,n.prev?n.prev.next=t:this.head=t,n.prev=t,this.length+=1},hn.prototype.unshift=function(n){this.head?this.insertBefore(this.head,n):vn(this,n)},hn.prototype.push=function(n){this.tail?this.insertAfter(this.tail,n):vn(this,n)},hn.prototype.shift=function(){return this.head&&this.removeLink(this.head)},hn.prototype.pop=function(){return this.tail&&this.removeLink(this.tail)};var $e,ze=M(B,1),Be=a(function(n){return a(function(t){var e=this,r=t[t.length-1];"function"==typeof r?t.pop():r=y,dn(n,t,function(n,t,r){t.apply(e,n.concat([a(function(n,t){r(n,t)})]))},function(n,t){r.apply(e,[n].concat(t))})})}),Me=a(function(n){return Be.apply(null,n.reverse())}),Ve=P(gn),qe=bn(gn),Ce=a(function(n){var t=[null].concat(n);return l(function(n,e){return e.apply(this,t)})}),De=jn(D,Sn,kn),Pe=jn(B,Sn,kn),Re=jn(ze,Sn,kn),Ue=wn("dir"),Ne=M(Tn,1),Qe=jn(D,Fn,Fn),We=jn(B,Fn,Fn),Ge=M(We,1),He=P($n),Je=U($n),Ke=M(Je,1),Xe=wn("log"),Ye=M(Bn,1/0),Ze=M(Bn,1);$e=_e?process.nextTick:Te?setImmediate:sn;var nr=pn($e),tr=Array.prototype.slice,er=P(Wn),rr=U(Wn),ur=M(rr,1),ir=jn(D,Boolean,Sn),or=jn(B,Boolean,Sn),cr=M(or,1),fr=Math.ceil,ar=Math.max,lr=M(tt,1/0),sr=M(tt,1),pr={applyEach:Gt,applyEachSeries:Kt,apply:Xt,asyncify:N,auto:K,autoInject:ln,cargo:mn,compose:Me,concat:Ve,concatSeries:qe,constant:Ce,detect:De,detectLimit:Pe,detectSeries:Re,dir:Ue,doDuring:En,doUntil:Ln,doWhilst:xn,during:On,each:In,eachLimit:Tn,eachOf:D,eachOfLimit:B,eachOfSeries:ze,eachSeries:Ne,ensureAsync:_n,every:Qe,everyLimit:We,everySeries:Ge,filter:He,filterLimit:Je,filterSeries:Ke,forever:zn,log:Xe,map:Wt,mapLimit:Ht,mapSeries:Jt,mapValues:Ye,mapValuesLimit:Bn,mapValuesSeries:Ze,memoize:Vn,nextTick:nr,parallel:Cn,parallelLimit:Dn,priorityQueue:Rn,queue:Pn,race:Un,reduce:dn,reduceRight:Nn,reflect:Qn,reflectAll:Gn,reject:er,rejectLimit:rr,rejectSeries:ur,retry:Jn,retryable:Kn,seq:Be,series:Xn,setImmediate:Fe,some:ir,someLimit:or,someSeries:cr,sortBy:Yn,timeout:Zn,times:lr,timesLimit:tt,timesSeries:sr,transform:et,unmemoize:rt,until:it,waterfall:ot,whilst:ut,all:Qe,any:ir,forEach:In,forEachSeries:Ne,forEachLimit:Tn,forEachOf:D,forEachOfSeries:ze,forEachOfLimit:B,inject:dn,foldl:dn,foldr:Nn,select:He,selectLimit:Je,selectSeries:Ke,wrapSync:N};n["default"]=pr,n.applyEach=Gt,n.applyEachSeries=Kt,n.apply=Xt,n.asyncify=N,n.auto=K,n.autoInject=ln,n.cargo=mn,n.compose=Me,n.concat=Ve,n.concatSeries=qe,n.constant=Ce,n.detect=De,n.detectLimit=Pe,n.detectSeries=Re,n.dir=Ue,n.doDuring=En,n.doUntil=Ln,n.doWhilst=xn,n.during=On,n.each=In,n.eachLimit=Tn,n.eachOf=D,n.eachOfLimit=B,n.eachOfSeries=ze,n.eachSeries=Ne,n.ensureAsync=_n,n.every=Qe,n.everyLimit=We,n.everySeries=Ge,n.filter=He,n.filterLimit=Je,n.filterSeries=Ke,n.forever=zn,n.log=Xe,n.map=Wt,n.mapLimit=Ht,n.mapSeries=Jt,n.mapValues=Ye,n.mapValuesLimit=Bn,n.mapValuesSeries=Ze,n.memoize=Vn,n.nextTick=nr,n.parallel=Cn,n.parallelLimit=Dn,n.priorityQueue=Rn,n.queue=Pn,n.race=Un,n.reduce=dn,n.reduceRight=Nn,n.reflect=Qn,n.reflectAll=Gn,n.reject=er,n.rejectLimit=rr,n.rejectSeries=ur,n.retry=Jn,n.retryable=Kn,n.seq=Be,n.series=Xn,n.setImmediate=Fe,n.some=ir,n.someLimit=or,n.someSeries=cr,n.sortBy=Yn,n.timeout=Zn,n.times=lr,n.timesLimit=tt,n.timesSeries=sr,n.transform=et,n.unmemoize=rt,n.until=it,n.waterfall=ot,n.whilst=ut,n.all=Qe,n.allLimit=We,n.allSeries=Ge,n.any=ir,n.anyLimit=or,n.anySeries=cr,n.find=De,n.findLimit=Pe,n.findSeries=Re,n.forEach=In,n.forEachSeries=Ne,n.forEachLimit=Tn,n.forEachOf=D,n.forEachOfSeries=ze,n.forEachOfLimit=B,n.inject=dn,n.foldl=dn,n.foldr=Nn,n.select=He,n.selectLimit=Je,n.selectSeries=Ke,n.wrapSync=N}); -//# sourceMappingURL=async.min.map \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/doDuring.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/doDuring.js deleted file mode 100644 index 0d019958..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/doDuring.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = doDuring; - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -var _onlyOnce = require('./internal/onlyOnce'); - -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The post-check version of [`during`]{@link module:ControlFlow.during}. To reflect the difference in - * the order of operations, the arguments `test` and `fn` are switched. - * - * Also a version of [`doWhilst`]{@link module:ControlFlow.doWhilst} with asynchronous `test` function. - * @name doDuring - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.during]{@link module:ControlFlow.during} - * @category Control Flow - * @param {Function} fn - A function which is called each time `test` passes. - * The function is passed a `callback(err)`, which must be called once it has - * completed with an optional `err` argument. Invoked with (callback). - * @param {Function} test - asynchronous truth test to perform before each - * execution of `fn`. Invoked with (...args, callback), where `...args` are the - * non-error args from the previous callback of `fn`. - * @param {Function} [callback] - A callback which is called after the test - * function has failed and repeated execution of `fn` has stopped. `callback` - * will be passed an error if one occured, otherwise `null`. - */ -function doDuring(fn, test, callback) { - callback = (0, _onlyOnce2.default)(callback || _noop2.default); - - var next = (0, _rest2.default)(function (err, args) { - if (err) return callback(err); - args.push(check); - test.apply(this, args); - }); - - function check(err, truth) { - if (err) return callback(err); - if (!truth) return callback(null); - fn(next); - } - - check(null, true); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/doUntil.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/doUntil.js deleted file mode 100644 index e7b5ee7f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/doUntil.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = doUntil; - -var _doWhilst = require('./doWhilst'); - -var _doWhilst2 = _interopRequireDefault(_doWhilst); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Like ['doWhilst']{@link module:ControlFlow.doWhilst}, except the `test` is inverted. Note the - * argument ordering differs from `until`. - * - * @name doUntil - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.doWhilst]{@link module:ControlFlow.doWhilst} - * @category Control Flow - * @param {Function} fn - A function which is called each time `test` fails. - * The function is passed a `callback(err)`, which must be called once it has - * completed with an optional `err` argument. Invoked with (callback). - * @param {Function} test - synchronous truth test to perform after each - * execution of `fn`. Invoked with the non-error callback results of `fn`. - * @param {Function} [callback] - A callback which is called after the test - * function has passed and repeated execution of `fn` has stopped. `callback` - * will be passed an error and any arguments passed to the final `fn`'s - * callback. Invoked with (err, [results]); - */ -function doUntil(fn, test, callback) { - (0, _doWhilst2.default)(fn, function () { - return !test.apply(this, arguments); - }, callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/doWhilst.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/doWhilst.js deleted file mode 100644 index a683bb6e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/doWhilst.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = doWhilst; - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -var _onlyOnce = require('./internal/onlyOnce'); - -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The post-check version of [`whilst`]{@link module:ControlFlow.whilst}. To reflect the difference in - * the order of operations, the arguments `test` and `iteratee` are switched. - * - * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. - * - * @name doWhilst - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.whilst]{@link module:ControlFlow.whilst} - * @category Control Flow - * @param {Function} iteratee - A function which is called each time `test` - * passes. The function is passed a `callback(err)`, which must be called once - * it has completed with an optional `err` argument. Invoked with (callback). - * @param {Function} test - synchronous truth test to perform after each - * execution of `iteratee`. Invoked with Invoked with the non-error callback - * results of `iteratee`. - * @param {Function} [callback] - A callback which is called after the test - * function has failed and repeated execution of `iteratee` has stopped. - * `callback` will be passed an error and any arguments passed to the final - * `iteratee`'s callback. Invoked with (err, [results]); - */ -function doWhilst(iteratee, test, callback) { - callback = (0, _onlyOnce2.default)(callback || _noop2.default); - var next = (0, _rest2.default)(function (err, args) { - if (err) return callback(err); - if (test.apply(this, args)) return iteratee(next); - callback.apply(null, [null].concat(args)); - }); - iteratee(next); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/during.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/during.js deleted file mode 100644 index f605ada0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/during.js +++ /dev/null @@ -1,71 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = during; - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _onlyOnce = require('./internal/onlyOnce'); - -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Like [`whilst`]{@link module:ControlFlow.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. - * - * @name during - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.whilst]{@link module:ControlFlow.whilst} - * @category Control Flow - * @param {Function} test - asynchronous truth test to perform before each - * execution of `fn`. Invoked with (callback). - * @param {Function} fn - A function which is called each time `test` passes. - * The function is passed a `callback(err)`, which must be called once it has - * completed with an optional `err` argument. Invoked with (callback). - * @param {Function} [callback] - A callback which is called after the test - * function has failed and repeated execution of `fn` has stopped. `callback` - * will be passed an error, if one occured, otherwise `null`. - * @example - * - * var count = 0; - * - * async.during( - * function (callback) { - * return callback(null, count < 5); - * }, - * function (callback) { - * count++; - * setTimeout(callback, 1000); - * }, - * function (err) { - * // 5 seconds have passed - * } - * ); - */ -function during(test, fn, callback) { - callback = (0, _onlyOnce2.default)(callback || _noop2.default); - - function next(err) { - if (err) return callback(err); - test(check); - } - - function check(err, truth) { - if (err) return callback(err); - if (!truth) return callback(null); - fn(next); - } - - test(check); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/each.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/each.js deleted file mode 100644 index 222a176f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/each.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = eachLimit; - -var _eachOf = require('./eachOf'); - -var _eachOf2 = _interopRequireDefault(_eachOf); - -var _withoutIndex = require('./internal/withoutIndex'); - -var _withoutIndex2 = _interopRequireDefault(_withoutIndex); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Applies the function `iteratee` to each item in `coll`, in parallel. - * The `iteratee` is called with an item from the list, and a callback for when - * it has finished. If the `iteratee` passes an error to its `callback`, the - * main `callback` (for the `each` function) is immediately called with the - * error. - * - * Note, that since this function applies `iteratee` to each item in parallel, - * there is no guarantee that the iteratee functions will complete in order. - * - * @name each - * @static - * @memberOf module:Collections - * @method - * @alias forEach - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item - * in `coll`. The iteratee is passed a `callback(err)` which must be called once - * it has completed. If no error has occurred, the `callback` should be run - * without arguments or with an explicit `null` argument. The array index is not - * passed to the iteratee. Invoked with (item, callback). If you need the index, - * use `eachOf`. - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - * @example - * - * // assuming openFiles is an array of file names and saveFile is a function - * // to save the modified contents of that file: - * - * async.each(openFiles, saveFile, function(err){ - * // if any of the saves produced an error, err would equal that error - * }); - * - * // assuming openFiles is an array of file names - * async.each(openFiles, function(file, callback) { - * - * // Perform operation on file here. - * console.log('Processing file ' + file); - * - * if( file.length > 32 ) { - * console.log('This file name is too long'); - * callback('File name too long'); - * } else { - * // Do work to process file here - * console.log('File processed'); - * callback(); - * } - * }, function(err) { - * // if any of the file processing produced an error, err would equal that error - * if( err ) { - * // One of the iterations produced an error. - * // All processing will now stop. - * console.log('A file failed to process'); - * } else { - * console.log('All files have been processed successfully'); - * } - * }); - */ -function eachLimit(coll, iteratee, callback) { - (0, _eachOf2.default)(coll, (0, _withoutIndex2.default)(iteratee), callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachLimit.js deleted file mode 100644 index 691a4056..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachLimit.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = eachLimit; - -var _eachOfLimit = require('./internal/eachOfLimit'); - -var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); - -var _withoutIndex = require('./internal/withoutIndex'); - -var _withoutIndex2 = _interopRequireDefault(_withoutIndex); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`each`]{@link module:Collections.each} but runs a maximum of `limit` async operations at a time. - * - * @name eachLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.each]{@link module:Collections.each} - * @alias forEachLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A colleciton to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each item in `coll`. The - * iteratee is passed a `callback(err)` which must be called once it has - * completed. If no error has occurred, the `callback` should be run without - * arguments or with an explicit `null` argument. The array index is not passed - * to the iteratee. Invoked with (item, callback). If you need the index, use - * `eachOfLimit`. - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - */ -function eachLimit(coll, limit, iteratee, callback) { - (0, _eachOfLimit2.default)(limit)(coll, (0, _withoutIndex2.default)(iteratee), callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachOf.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachOf.js deleted file mode 100644 index c562f4c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachOf.js +++ /dev/null @@ -1,105 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (coll, iteratee, callback) { - var eachOfImplementation = (0, _isArrayLike2.default)(coll) ? eachOfArrayLike : eachOfGeneric; - eachOfImplementation(coll, iteratee, callback); -}; - -var _isArrayLike = require('lodash/isArrayLike'); - -var _isArrayLike2 = _interopRequireDefault(_isArrayLike); - -var _eachOfLimit = require('./eachOfLimit'); - -var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _once = require('lodash/once'); - -var _once2 = _interopRequireDefault(_once); - -var _onlyOnce = require('./internal/onlyOnce'); - -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// eachOf implementation optimized for array-likes -function eachOfArrayLike(coll, iteratee, callback) { - callback = (0, _once2.default)(callback || _noop2.default); - var index = 0, - completed = 0, - length = coll.length; - if (length === 0) { - callback(null); - } - - function iteratorCallback(err) { - if (err) { - callback(err); - } else if (++completed === length) { - callback(null); - } - } - - for (; index < length; index++) { - iteratee(coll[index], index, (0, _onlyOnce2.default)(iteratorCallback)); - } -} - -// a generic version of eachOf which can handle array, object, and iterator cases. -var eachOfGeneric = (0, _doLimit2.default)(_eachOfLimit2.default, Infinity); - -/** - * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument - * to the iteratee. - * - * @name eachOf - * @static - * @memberOf module:Collections - * @method - * @alias forEachOf - * @category Collection - * @see [async.each]{@link module:Collections.each} - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The `key` is the item's key, or index in the case of an - * array. The iteratee is passed a `callback(err)` which must be called once it - * has completed. If no error has occurred, the callback should be run without - * arguments or with an explicit `null` argument. Invoked with - * (item, key, callback). - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - * @example - * - * var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; - * var configs = {}; - * - * async.forEachOf(obj, function (value, key, callback) { - * fs.readFile(__dirname + value, "utf8", function (err, data) { - * if (err) return callback(err); - * try { - * configs[key] = JSON.parse(data); - * } catch (e) { - * return callback(e); - * } - * callback(); - * }); - * }, function (err) { - * if (err) console.error(err.message); - * // configs is now a map of JSON data - * doSomethingWith(configs); - * }); - */ -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachOfLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachOfLimit.js deleted file mode 100644 index a2ece1b4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachOfLimit.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = eachOfLimit; - -var _eachOfLimit2 = require('./internal/eachOfLimit'); - -var _eachOfLimit3 = _interopRequireDefault(_eachOfLimit2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a - * time. - * - * @name eachOfLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.eachOf]{@link module:Collections.eachOf} - * @alias forEachOfLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The `key` is the item's key, or index in the case of an - * array. The iteratee is passed a `callback(err)` which must be called once it - * has completed. If no error has occurred, the callback should be run without - * arguments or with an explicit `null` argument. Invoked with - * (item, key, callback). - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - */ -function eachOfLimit(coll, limit, iteratee, callback) { - (0, _eachOfLimit3.default)(limit)(coll, iteratee, callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachOfSeries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachOfSeries.js deleted file mode 100644 index 968db266..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachOfSeries.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _eachOfLimit = require('./eachOfLimit'); - -var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time. - * - * @name eachOfSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.eachOf]{@link module:Collections.eachOf} - * @alias forEachOfSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. The - * `key` is the item's key, or index in the case of an array. The iteratee is - * passed a `callback(err)` which must be called once it has completed. If no - * error has occurred, the callback should be run without arguments or with an - * explicit `null` argument. Invoked with (item, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Invoked with (err). - */ -exports.default = (0, _doLimit2.default)(_eachOfLimit2.default, 1); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachSeries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachSeries.js deleted file mode 100644 index 31a74562..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/eachSeries.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _eachLimit = require('./eachLimit'); - -var _eachLimit2 = _interopRequireDefault(_eachLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time. - * - * @name eachSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.each]{@link module:Collections.each} - * @alias forEachSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each - * item in `coll`. The iteratee is passed a `callback(err)` which must be called - * once it has completed. If no error has occurred, the `callback` should be run - * without arguments or with an explicit `null` argument. The array index is - * not passed to the iteratee. Invoked with (item, callback). If you need the - * index, use `eachOfSeries`. - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - */ -exports.default = (0, _doLimit2.default)(_eachLimit2.default, 1); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/ensureAsync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/ensureAsync.js deleted file mode 100644 index 08e08296..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/ensureAsync.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = ensureAsync; - -var _setImmediate = require('./internal/setImmediate'); - -var _setImmediate2 = _interopRequireDefault(_setImmediate); - -var _initialParams = require('./internal/initialParams'); - -var _initialParams2 = _interopRequireDefault(_initialParams); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Wrap 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. - * - * @name ensureAsync - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} fn - an async function, one that expects a node-style - * callback as its last argument. - * @returns {Function} Returns a wrapped function with the exact same call - * signature as the function passed in. - * @example - * - * function sometimesAsync(arg, callback) { - * if (cache[arg]) { - * return callback(null, cache[arg]); // this would be synchronous!! - * } else { - * doSomeIO(arg, callback); // this IO would be asynchronous - * } - * } - * - * // this has a risk of stack overflows if many results are cached in a row - * async.mapSeries(args, sometimesAsync, done); - * - * // this will defer sometimesAsync's callback if necessary, - * // preventing stack overflows - * async.mapSeries(args, async.ensureAsync(sometimesAsync), done); - */ -function ensureAsync(fn) { - return (0, _initialParams2.default)(function (args, callback) { - var sync = true; - args.push(function () { - var innerArgs = arguments; - if (sync) { - (0, _setImmediate2.default)(function () { - callback.apply(null, innerArgs); - }); - } else { - callback.apply(null, innerArgs); - } - }); - fn.apply(this, args); - sync = false; - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/every.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/every.js deleted file mode 100644 index edaa7ed9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/every.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createTester = require('./internal/createTester'); - -var _createTester2 = _interopRequireDefault(_createTester); - -var _eachOf = require('./eachOf'); - -var _eachOf2 = _interopRequireDefault(_eachOf); - -var _notId = require('./internal/notId'); - -var _notId2 = _interopRequireDefault(_notId); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Returns `true` if every element in `coll` satisfies an async test. If any - * iteratee call returns `false`, the main `callback` is immediately called. - * - * @name every - * @static - * @memberOf module:Collections - * @method - * @alias all - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - * @example - * - * async.every(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, result) { - * // if result is true then every file exists - * }); - */ -exports.default = (0, _createTester2.default)(_eachOf2.default, _notId2.default, _notId2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/everyLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/everyLimit.js deleted file mode 100644 index ef6c35ae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/everyLimit.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createTester = require('./internal/createTester'); - -var _createTester2 = _interopRequireDefault(_createTester); - -var _eachOfLimit = require('./eachOfLimit'); - -var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); - -var _notId = require('./internal/notId'); - -var _notId2 = _interopRequireDefault(_notId); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`every`]{@link module:Collections.every} but runs a maximum of `limit` async operations at a time. - * - * @name everyLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.every]{@link module:Collections.every} - * @alias allLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - */ -exports.default = (0, _createTester2.default)(_eachOfLimit2.default, _notId2.default, _notId2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/everySeries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/everySeries.js deleted file mode 100644 index 5ed1c1ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/everySeries.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _everyLimit = require('./everyLimit'); - -var _everyLimit2 = _interopRequireDefault(_everyLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`every`]{@link module:Collections.every} but runs only a single async operation at a time. - * - * @name everySeries - * @static - * @memberOf module:Collections - * @method - * @see [async.every]{@link module:Collections.every} - * @alias allSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the - * collection in parallel. The iteratee is passed a `callback(err, truthValue)` - * which must be called with a boolean argument once it has completed. Invoked - * with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result will be either `true` or `false` - * depending on the values of the async tests. Invoked with (err, result). - */ -exports.default = (0, _doLimit2.default)(_everyLimit2.default, 1); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/filter.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/filter.js deleted file mode 100644 index 54772d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/filter.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _filter = require('./internal/filter'); - -var _filter2 = _interopRequireDefault(_filter); - -var _doParallel = require('./internal/doParallel'); - -var _doParallel2 = _interopRequireDefault(_doParallel); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Returns a new array of all the values in `coll` which pass an async truth - * test. This operation is performed in parallel, but the results array will be - * in the same order as the original. - * - * @name filter - * @static - * @memberOf module:Collections - * @method - * @alias select - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - * @example - * - * async.filter(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, results) { - * // results now equals an array of the existing files - * }); - */ -exports.default = (0, _doParallel2.default)(_filter2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/filterLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/filterLimit.js deleted file mode 100644 index 06216f78..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/filterLimit.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _filter = require('./internal/filter'); - -var _filter2 = _interopRequireDefault(_filter); - -var _doParallelLimit = require('./internal/doParallelLimit'); - -var _doParallelLimit2 = _interopRequireDefault(_doParallelLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`filter`]{@link module:Collections.filter} but runs a maximum of `limit` async operations at a - * time. - * - * @name filterLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @alias selectLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ -exports.default = (0, _doParallelLimit2.default)(_filter2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/filterSeries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/filterSeries.js deleted file mode 100644 index e48d966c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/filterSeries.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _filterLimit = require('./filterLimit'); - -var _filterLimit2 = _interopRequireDefault(_filterLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`filter`]{@link module:Collections.filter} but runs only a single async operation at a time. - * - * @name filterSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @alias selectSeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results) - */ -exports.default = (0, _doLimit2.default)(_filterLimit2.default, 1); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/forever.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/forever.js deleted file mode 100644 index 87156d0f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/forever.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = forever; - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _onlyOnce = require('./internal/onlyOnce'); - -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); - -var _ensureAsync = require('./ensureAsync'); - -var _ensureAsync2 = _interopRequireDefault(_ensureAsync); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Calls the asynchronous function `fn` with a callback parameter that allows it - * to call itself again, in series, indefinitely. - - * If an error is passed to the - * callback then `errback` is called with the error, and execution stops, - * otherwise it will never be called. - * - * @name forever - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Function} fn - a function to call repeatedly. Invoked with (next). - * @param {Function} [errback] - when `fn` passes an error to it's callback, - * this function will be called, and execution stops. Invoked with (err). - * @example - * - * async.forever( - * function(next) { - * // next is suitable for passing to things that need a callback(err [, whatever]); - * // it will result in this function being called again. - * }, - * function(err) { - * // if next is called with a value in its first parameter, it will appear - * // in here as 'err', and execution will stop. - * } - * ); - */ -function forever(fn, errback) { - var done = (0, _onlyOnce2.default)(errback || _noop2.default); - var task = (0, _ensureAsync2.default)(fn); - - function next(err) { - if (err) return done(err); - task(next); - } - next(); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/index.js deleted file mode 100644 index b3595c77..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/index.js +++ /dev/null @@ -1,505 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.wrapSync = exports.selectSeries = exports.selectLimit = exports.select = exports.foldr = exports.foldl = exports.inject = exports.forEachOfLimit = exports.forEachOfSeries = exports.forEachOf = exports.forEachLimit = exports.forEachSeries = exports.forEach = exports.findSeries = exports.findLimit = exports.find = exports.anySeries = exports.anyLimit = exports.any = exports.allSeries = exports.allLimit = exports.all = exports.whilst = exports.waterfall = exports.until = exports.unmemoize = exports.transform = exports.timesSeries = exports.timesLimit = exports.times = exports.timeout = exports.sortBy = exports.someSeries = exports.someLimit = exports.some = exports.setImmediate = exports.series = exports.seq = exports.retryable = exports.retry = exports.rejectSeries = exports.rejectLimit = exports.reject = exports.reflectAll = exports.reflect = exports.reduceRight = exports.reduce = exports.race = exports.queue = exports.priorityQueue = exports.parallelLimit = exports.parallel = exports.nextTick = exports.memoize = exports.mapValuesSeries = exports.mapValuesLimit = exports.mapValues = exports.mapSeries = exports.mapLimit = exports.map = exports.log = exports.forever = exports.filterSeries = exports.filterLimit = exports.filter = exports.everySeries = exports.everyLimit = exports.every = exports.ensureAsync = exports.eachSeries = exports.eachOfSeries = exports.eachOfLimit = exports.eachOf = exports.eachLimit = exports.each = exports.during = exports.doWhilst = exports.doUntil = exports.doDuring = exports.dir = exports.detectSeries = exports.detectLimit = exports.detect = exports.constant = exports.concatSeries = exports.concat = exports.compose = exports.cargo = exports.autoInject = exports.auto = exports.asyncify = exports.apply = exports.applyEachSeries = exports.applyEach = undefined; - -var _applyEach = require('./applyEach'); - -var _applyEach2 = _interopRequireDefault(_applyEach); - -var _applyEachSeries = require('./applyEachSeries'); - -var _applyEachSeries2 = _interopRequireDefault(_applyEachSeries); - -var _apply = require('./apply'); - -var _apply2 = _interopRequireDefault(_apply); - -var _asyncify = require('./asyncify'); - -var _asyncify2 = _interopRequireDefault(_asyncify); - -var _auto = require('./auto'); - -var _auto2 = _interopRequireDefault(_auto); - -var _autoInject = require('./autoInject'); - -var _autoInject2 = _interopRequireDefault(_autoInject); - -var _cargo = require('./cargo'); - -var _cargo2 = _interopRequireDefault(_cargo); - -var _compose = require('./compose'); - -var _compose2 = _interopRequireDefault(_compose); - -var _concat = require('./concat'); - -var _concat2 = _interopRequireDefault(_concat); - -var _concatSeries = require('./concatSeries'); - -var _concatSeries2 = _interopRequireDefault(_concatSeries); - -var _constant = require('./constant'); - -var _constant2 = _interopRequireDefault(_constant); - -var _detect = require('./detect'); - -var _detect2 = _interopRequireDefault(_detect); - -var _detectLimit = require('./detectLimit'); - -var _detectLimit2 = _interopRequireDefault(_detectLimit); - -var _detectSeries = require('./detectSeries'); - -var _detectSeries2 = _interopRequireDefault(_detectSeries); - -var _dir = require('./dir'); - -var _dir2 = _interopRequireDefault(_dir); - -var _doDuring = require('./doDuring'); - -var _doDuring2 = _interopRequireDefault(_doDuring); - -var _doUntil = require('./doUntil'); - -var _doUntil2 = _interopRequireDefault(_doUntil); - -var _doWhilst = require('./doWhilst'); - -var _doWhilst2 = _interopRequireDefault(_doWhilst); - -var _during = require('./during'); - -var _during2 = _interopRequireDefault(_during); - -var _each = require('./each'); - -var _each2 = _interopRequireDefault(_each); - -var _eachLimit = require('./eachLimit'); - -var _eachLimit2 = _interopRequireDefault(_eachLimit); - -var _eachOf = require('./eachOf'); - -var _eachOf2 = _interopRequireDefault(_eachOf); - -var _eachOfLimit = require('./eachOfLimit'); - -var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); - -var _eachOfSeries = require('./eachOfSeries'); - -var _eachOfSeries2 = _interopRequireDefault(_eachOfSeries); - -var _eachSeries = require('./eachSeries'); - -var _eachSeries2 = _interopRequireDefault(_eachSeries); - -var _ensureAsync = require('./ensureAsync'); - -var _ensureAsync2 = _interopRequireDefault(_ensureAsync); - -var _every = require('./every'); - -var _every2 = _interopRequireDefault(_every); - -var _everyLimit = require('./everyLimit'); - -var _everyLimit2 = _interopRequireDefault(_everyLimit); - -var _everySeries = require('./everySeries'); - -var _everySeries2 = _interopRequireDefault(_everySeries); - -var _filter = require('./filter'); - -var _filter2 = _interopRequireDefault(_filter); - -var _filterLimit = require('./filterLimit'); - -var _filterLimit2 = _interopRequireDefault(_filterLimit); - -var _filterSeries = require('./filterSeries'); - -var _filterSeries2 = _interopRequireDefault(_filterSeries); - -var _forever = require('./forever'); - -var _forever2 = _interopRequireDefault(_forever); - -var _log = require('./log'); - -var _log2 = _interopRequireDefault(_log); - -var _map = require('./map'); - -var _map2 = _interopRequireDefault(_map); - -var _mapLimit = require('./mapLimit'); - -var _mapLimit2 = _interopRequireDefault(_mapLimit); - -var _mapSeries = require('./mapSeries'); - -var _mapSeries2 = _interopRequireDefault(_mapSeries); - -var _mapValues = require('./mapValues'); - -var _mapValues2 = _interopRequireDefault(_mapValues); - -var _mapValuesLimit = require('./mapValuesLimit'); - -var _mapValuesLimit2 = _interopRequireDefault(_mapValuesLimit); - -var _mapValuesSeries = require('./mapValuesSeries'); - -var _mapValuesSeries2 = _interopRequireDefault(_mapValuesSeries); - -var _memoize = require('./memoize'); - -var _memoize2 = _interopRequireDefault(_memoize); - -var _nextTick = require('./nextTick'); - -var _nextTick2 = _interopRequireDefault(_nextTick); - -var _parallel = require('./parallel'); - -var _parallel2 = _interopRequireDefault(_parallel); - -var _parallelLimit = require('./parallelLimit'); - -var _parallelLimit2 = _interopRequireDefault(_parallelLimit); - -var _priorityQueue = require('./priorityQueue'); - -var _priorityQueue2 = _interopRequireDefault(_priorityQueue); - -var _queue = require('./queue'); - -var _queue2 = _interopRequireDefault(_queue); - -var _race = require('./race'); - -var _race2 = _interopRequireDefault(_race); - -var _reduce = require('./reduce'); - -var _reduce2 = _interopRequireDefault(_reduce); - -var _reduceRight = require('./reduceRight'); - -var _reduceRight2 = _interopRequireDefault(_reduceRight); - -var _reflect = require('./reflect'); - -var _reflect2 = _interopRequireDefault(_reflect); - -var _reject = require('./reject'); - -var _reject2 = _interopRequireDefault(_reject); - -var _reflectAll = require('./reflectAll'); - -var _reflectAll2 = _interopRequireDefault(_reflectAll); - -var _rejectLimit = require('./rejectLimit'); - -var _rejectLimit2 = _interopRequireDefault(_rejectLimit); - -var _rejectSeries = require('./rejectSeries'); - -var _rejectSeries2 = _interopRequireDefault(_rejectSeries); - -var _retry = require('./retry'); - -var _retry2 = _interopRequireDefault(_retry); - -var _retryable = require('./retryable'); - -var _retryable2 = _interopRequireDefault(_retryable); - -var _seq = require('./seq'); - -var _seq2 = _interopRequireDefault(_seq); - -var _series = require('./series'); - -var _series2 = _interopRequireDefault(_series); - -var _setImmediate = require('./setImmediate'); - -var _setImmediate2 = _interopRequireDefault(_setImmediate); - -var _some = require('./some'); - -var _some2 = _interopRequireDefault(_some); - -var _someLimit = require('./someLimit'); - -var _someLimit2 = _interopRequireDefault(_someLimit); - -var _someSeries = require('./someSeries'); - -var _someSeries2 = _interopRequireDefault(_someSeries); - -var _sortBy = require('./sortBy'); - -var _sortBy2 = _interopRequireDefault(_sortBy); - -var _timeout = require('./timeout'); - -var _timeout2 = _interopRequireDefault(_timeout); - -var _times = require('./times'); - -var _times2 = _interopRequireDefault(_times); - -var _timesLimit = require('./timesLimit'); - -var _timesLimit2 = _interopRequireDefault(_timesLimit); - -var _timesSeries = require('./timesSeries'); - -var _timesSeries2 = _interopRequireDefault(_timesSeries); - -var _transform = require('./transform'); - -var _transform2 = _interopRequireDefault(_transform); - -var _unmemoize = require('./unmemoize'); - -var _unmemoize2 = _interopRequireDefault(_unmemoize); - -var _until = require('./until'); - -var _until2 = _interopRequireDefault(_until); - -var _waterfall = require('./waterfall'); - -var _waterfall2 = _interopRequireDefault(_waterfall); - -var _whilst = require('./whilst'); - -var _whilst2 = _interopRequireDefault(_whilst); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Async is a utility module which provides straight-forward, powerful functions - * for working with asynchronous JavaScript. Although originally designed for - * use with [Node.js](http://nodejs.org) and installable via - * `npm install --save async`, it can also be used directly in the browser. - * @module async - */ - -/** - * A collection of `async` functions for manipulating collections, such as - * arrays and objects. - * @module Collections - */ - -/** - * A collection of `async` functions for controlling the flow through a script. - * @module ControlFlow - */ - -/** - * A collection of `async` utility functions. - * @module Utils - */ -exports.default = { - applyEach: _applyEach2.default, - applyEachSeries: _applyEachSeries2.default, - apply: _apply2.default, - asyncify: _asyncify2.default, - auto: _auto2.default, - autoInject: _autoInject2.default, - cargo: _cargo2.default, - compose: _compose2.default, - concat: _concat2.default, - concatSeries: _concatSeries2.default, - constant: _constant2.default, - detect: _detect2.default, - detectLimit: _detectLimit2.default, - detectSeries: _detectSeries2.default, - dir: _dir2.default, - doDuring: _doDuring2.default, - doUntil: _doUntil2.default, - doWhilst: _doWhilst2.default, - during: _during2.default, - each: _each2.default, - eachLimit: _eachLimit2.default, - eachOf: _eachOf2.default, - eachOfLimit: _eachOfLimit2.default, - eachOfSeries: _eachOfSeries2.default, - eachSeries: _eachSeries2.default, - ensureAsync: _ensureAsync2.default, - every: _every2.default, - everyLimit: _everyLimit2.default, - everySeries: _everySeries2.default, - filter: _filter2.default, - filterLimit: _filterLimit2.default, - filterSeries: _filterSeries2.default, - forever: _forever2.default, - log: _log2.default, - map: _map2.default, - mapLimit: _mapLimit2.default, - mapSeries: _mapSeries2.default, - mapValues: _mapValues2.default, - mapValuesLimit: _mapValuesLimit2.default, - mapValuesSeries: _mapValuesSeries2.default, - memoize: _memoize2.default, - nextTick: _nextTick2.default, - parallel: _parallel2.default, - parallelLimit: _parallelLimit2.default, - priorityQueue: _priorityQueue2.default, - queue: _queue2.default, - race: _race2.default, - reduce: _reduce2.default, - reduceRight: _reduceRight2.default, - reflect: _reflect2.default, - reflectAll: _reflectAll2.default, - reject: _reject2.default, - rejectLimit: _rejectLimit2.default, - rejectSeries: _rejectSeries2.default, - retry: _retry2.default, - retryable: _retryable2.default, - seq: _seq2.default, - series: _series2.default, - setImmediate: _setImmediate2.default, - some: _some2.default, - someLimit: _someLimit2.default, - someSeries: _someSeries2.default, - sortBy: _sortBy2.default, - timeout: _timeout2.default, - times: _times2.default, - timesLimit: _timesLimit2.default, - timesSeries: _timesSeries2.default, - transform: _transform2.default, - unmemoize: _unmemoize2.default, - until: _until2.default, - waterfall: _waterfall2.default, - whilst: _whilst2.default, - - // aliases - all: _every2.default, - any: _some2.default, - forEach: _each2.default, - forEachSeries: _eachSeries2.default, - forEachLimit: _eachLimit2.default, - forEachOf: _eachOf2.default, - forEachOfSeries: _eachOfSeries2.default, - forEachOfLimit: _eachOfLimit2.default, - inject: _reduce2.default, - foldl: _reduce2.default, - foldr: _reduceRight2.default, - select: _filter2.default, - selectLimit: _filterLimit2.default, - selectSeries: _filterSeries2.default, - wrapSync: _asyncify2.default -}; -exports.applyEach = _applyEach2.default; -exports.applyEachSeries = _applyEachSeries2.default; -exports.apply = _apply2.default; -exports.asyncify = _asyncify2.default; -exports.auto = _auto2.default; -exports.autoInject = _autoInject2.default; -exports.cargo = _cargo2.default; -exports.compose = _compose2.default; -exports.concat = _concat2.default; -exports.concatSeries = _concatSeries2.default; -exports.constant = _constant2.default; -exports.detect = _detect2.default; -exports.detectLimit = _detectLimit2.default; -exports.detectSeries = _detectSeries2.default; -exports.dir = _dir2.default; -exports.doDuring = _doDuring2.default; -exports.doUntil = _doUntil2.default; -exports.doWhilst = _doWhilst2.default; -exports.during = _during2.default; -exports.each = _each2.default; -exports.eachLimit = _eachLimit2.default; -exports.eachOf = _eachOf2.default; -exports.eachOfLimit = _eachOfLimit2.default; -exports.eachOfSeries = _eachOfSeries2.default; -exports.eachSeries = _eachSeries2.default; -exports.ensureAsync = _ensureAsync2.default; -exports.every = _every2.default; -exports.everyLimit = _everyLimit2.default; -exports.everySeries = _everySeries2.default; -exports.filter = _filter2.default; -exports.filterLimit = _filterLimit2.default; -exports.filterSeries = _filterSeries2.default; -exports.forever = _forever2.default; -exports.log = _log2.default; -exports.map = _map2.default; -exports.mapLimit = _mapLimit2.default; -exports.mapSeries = _mapSeries2.default; -exports.mapValues = _mapValues2.default; -exports.mapValuesLimit = _mapValuesLimit2.default; -exports.mapValuesSeries = _mapValuesSeries2.default; -exports.memoize = _memoize2.default; -exports.nextTick = _nextTick2.default; -exports.parallel = _parallel2.default; -exports.parallelLimit = _parallelLimit2.default; -exports.priorityQueue = _priorityQueue2.default; -exports.queue = _queue2.default; -exports.race = _race2.default; -exports.reduce = _reduce2.default; -exports.reduceRight = _reduceRight2.default; -exports.reflect = _reflect2.default; -exports.reflectAll = _reflectAll2.default; -exports.reject = _reject2.default; -exports.rejectLimit = _rejectLimit2.default; -exports.rejectSeries = _rejectSeries2.default; -exports.retry = _retry2.default; -exports.retryable = _retryable2.default; -exports.seq = _seq2.default; -exports.series = _series2.default; -exports.setImmediate = _setImmediate2.default; -exports.some = _some2.default; -exports.someLimit = _someLimit2.default; -exports.someSeries = _someSeries2.default; -exports.sortBy = _sortBy2.default; -exports.timeout = _timeout2.default; -exports.times = _times2.default; -exports.timesLimit = _timesLimit2.default; -exports.timesSeries = _timesSeries2.default; -exports.transform = _transform2.default; -exports.unmemoize = _unmemoize2.default; -exports.until = _until2.default; -exports.waterfall = _waterfall2.default; -exports.whilst = _whilst2.default; -exports.all = _every2.default; -exports.allLimit = _everyLimit2.default; -exports.allSeries = _everySeries2.default; -exports.any = _some2.default; -exports.anyLimit = _someLimit2.default; -exports.anySeries = _someSeries2.default; -exports.find = _detect2.default; -exports.findLimit = _detectLimit2.default; -exports.findSeries = _detectSeries2.default; -exports.forEach = _each2.default; -exports.forEachSeries = _eachSeries2.default; -exports.forEachLimit = _eachLimit2.default; -exports.forEachOf = _eachOf2.default; -exports.forEachOfSeries = _eachOfSeries2.default; -exports.forEachOfLimit = _eachOfLimit2.default; -exports.inject = _reduce2.default; -exports.foldl = _reduce2.default; -exports.foldr = _reduceRight2.default; -exports.select = _filter2.default; -exports.selectLimit = _filterLimit2.default; -exports.selectSeries = _filterSeries2.default; -exports.wrapSync = _asyncify2.default; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/DoublyLinkedList.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/DoublyLinkedList.js deleted file mode 100644 index 7af3b5ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/DoublyLinkedList.js +++ /dev/null @@ -1,63 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = DLL; -// Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation -// used for queues. This implementation assumes that the node provided by the user can be modified -// to adjust the next and last properties. We implement only the minimal functionality -// for queue support. -function DLL() { - this.head = this.tail = null; - this.length = 0; -} - -function setInitial(dll, node) { - dll.length = 1; - dll.head = dll.tail = node; -} - -DLL.prototype.removeLink = function (node) { - if (node.prev) node.prev.next = node.next;else this.head = node.next; - if (node.next) node.next.prev = node.prev;else this.tail = node.prev; - - node.prev = node.next = null; - this.length -= 1; - return node; -}; - -DLL.prototype.empty = DLL; - -DLL.prototype.insertAfter = function (node, newNode) { - newNode.prev = node; - newNode.next = node.next; - if (node.next) node.next.prev = newNode;else this.tail = newNode; - node.next = newNode; - this.length += 1; -}; - -DLL.prototype.insertBefore = function (node, newNode) { - newNode.prev = node.prev; - newNode.next = node; - if (node.prev) node.prev.next = newNode;else this.head = newNode; - node.prev = newNode; - this.length += 1; -}; - -DLL.prototype.unshift = function (node) { - if (this.head) this.insertBefore(this.head, node);else setInitial(this, node); -}; - -DLL.prototype.push = function (node) { - if (this.tail) this.insertAfter(this.tail, node);else setInitial(this, node); -}; - -DLL.prototype.shift = function () { - return this.head && this.removeLink(this.head); -}; - -DLL.prototype.pop = function () { - return this.tail && this.removeLink(this.tail); -}; -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/applyEach.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/applyEach.js deleted file mode 100644 index 4035bfb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/applyEach.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = applyEach; - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -var _initialParams = require('./initialParams'); - -var _initialParams2 = _interopRequireDefault(_initialParams); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function applyEach(eachfn) { - return (0, _rest2.default)(function (fns, args) { - var go = (0, _initialParams2.default)(function (args, callback) { - var that = this; - return eachfn(fns, function (fn, cb) { - fn.apply(that, args.concat([cb])); - }, callback); - }); - if (args.length) { - return go.apply(this, args); - } else { - return go; - } - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/concat.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/concat.js deleted file mode 100644 index 22030874..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/concat.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = concat; -function concat(eachfn, arr, fn, callback) { - var result = []; - eachfn(arr, function (x, index, cb) { - fn(x, function (err, y) { - result = result.concat(y || []); - cb(err); - }); - }, function (err) { - callback(err, result); - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/consoleFunc.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/consoleFunc.js deleted file mode 100644 index f7befa8c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/consoleFunc.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = consoleFunc; - -var _arrayEach = require('lodash/_arrayEach'); - -var _arrayEach2 = _interopRequireDefault(_arrayEach); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function consoleFunc(name) { - return (0, _rest2.default)(function (fn, args) { - fn.apply(null, args.concat([(0, _rest2.default)(function (err, args) { - if (typeof console === 'object') { - if (err) { - if (console.error) { - console.error(err); - } - } else if (console[name]) { - (0, _arrayEach2.default)(args, function (x) { - console[name](x); - }); - } - } - })])); - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/createTester.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/createTester.js deleted file mode 100644 index 4ec5db36..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/createTester.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _createTester; - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _createTester(eachfn, check, getResult) { - return function (arr, limit, iteratee, cb) { - function done(err) { - if (cb) { - if (err) { - cb(err); - } else { - cb(null, getResult(false)); - } - } - } - function wrappedIteratee(x, _, callback) { - if (!cb) return callback(); - iteratee(x, function (err, v) { - if (cb) { - if (err) { - cb(err); - cb = iteratee = false; - } else if (check(v)) { - cb(null, getResult(true, x)); - cb = iteratee = false; - } - } - callback(); - }); - } - if (arguments.length > 3) { - cb = cb || _noop2.default; - eachfn(arr, limit, wrappedIteratee, done); - } else { - cb = iteratee; - cb = cb || _noop2.default; - iteratee = limit; - eachfn(arr, wrappedIteratee, done); - } - }; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doLimit.js deleted file mode 100644 index 5bd5a75c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doLimit.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = doLimit; -function doLimit(fn, limit) { - return function (iterable, iteratee, callback) { - return fn(iterable, limit, iteratee, callback); - }; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doParallel.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doParallel.js deleted file mode 100644 index f4a30eea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doParallel.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = doParallel; - -var _eachOf = require('../eachOf'); - -var _eachOf2 = _interopRequireDefault(_eachOf); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function doParallel(fn) { - return function (obj, iteratee, callback) { - return fn(_eachOf2.default, obj, iteratee, callback); - }; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doParallelLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doParallelLimit.js deleted file mode 100644 index 4c4d3b45..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doParallelLimit.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = doParallelLimit; - -var _eachOfLimit = require('./eachOfLimit'); - -var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function doParallelLimit(fn) { - return function (obj, limit, iteratee, callback) { - return fn((0, _eachOfLimit2.default)(limit), obj, iteratee, callback); - }; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doSeries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doSeries.js deleted file mode 100644 index b149d959..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/doSeries.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = doSeries; - -var _eachOfSeries = require('../eachOfSeries'); - -var _eachOfSeries2 = _interopRequireDefault(_eachOfSeries); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function doSeries(fn) { - return function (obj, iteratee, callback) { - return fn(_eachOfSeries2.default, obj, iteratee, callback); - }; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/eachOfLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/eachOfLimit.js deleted file mode 100644 index 27a94bfb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/eachOfLimit.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _eachOfLimit; - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _once = require('./once'); - -var _once2 = _interopRequireDefault(_once); - -var _iterator = require('./iterator'); - -var _iterator2 = _interopRequireDefault(_iterator); - -var _onlyOnce = require('./onlyOnce'); - -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _eachOfLimit(limit) { - return function (obj, iteratee, callback) { - callback = (0, _once2.default)(callback || _noop2.default); - if (limit <= 0 || !obj) { - return callback(null); - } - var nextElem = (0, _iterator2.default)(obj); - var done = false; - var running = 0; - - function iterateeCallback(err) { - running -= 1; - if (err) { - done = true; - callback(err); - } else if (done && running <= 0) { - return callback(null); - } else { - replenish(); - } - } - - function replenish() { - while (running < limit && !done) { - var elem = nextElem(); - if (elem === null) { - done = true; - if (running <= 0) { - callback(null); - } - return; - } - running += 1; - iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback)); - } - } - - replenish(); - }; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/filter.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/filter.js deleted file mode 100644 index ff163e96..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/filter.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _filter; - -var _arrayMap = require('lodash/_arrayMap'); - -var _arrayMap2 = _interopRequireDefault(_arrayMap); - -var _baseProperty = require('lodash/_baseProperty'); - -var _baseProperty2 = _interopRequireDefault(_baseProperty); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _once = require('./once'); - -var _once2 = _interopRequireDefault(_once); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _filter(eachfn, arr, iteratee, callback) { - callback = (0, _once2.default)(callback || _noop2.default); - var results = []; - eachfn(arr, function (x, index, callback) { - iteratee(x, function (err, v) { - if (err) { - callback(err); - } else { - if (v) { - results.push({ index: index, value: x }); - } - callback(); - } - }); - }, function (err) { - if (err) { - callback(err); - } else { - callback(null, (0, _arrayMap2.default)(results.sort(function (a, b) { - return a.index - b.index; - }), (0, _baseProperty2.default)('value'))); - } - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/findGetResult.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/findGetResult.js deleted file mode 100644 index e686a70a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/findGetResult.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _findGetResult; -function _findGetResult(v, x) { - return x; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/getIterator.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/getIterator.js deleted file mode 100644 index 3eadd24d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/getIterator.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (coll) { - return iteratorSymbol && coll[iteratorSymbol] && coll[iteratorSymbol](); -}; - -var iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator; - -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/initialParams.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/initialParams.js deleted file mode 100644 index 24493209..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/initialParams.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (fn) { - return (0, _rest2.default)(function (args /*..., callback*/) { - var callback = args.pop(); - fn.call(this, args, callback); - }); -}; - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/iterator.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/iterator.js deleted file mode 100644 index 3d32942f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/iterator.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = iterator; - -var _isArrayLike = require('lodash/isArrayLike'); - -var _isArrayLike2 = _interopRequireDefault(_isArrayLike); - -var _getIterator = require('./getIterator'); - -var _getIterator2 = _interopRequireDefault(_getIterator); - -var _keys = require('lodash/keys'); - -var _keys2 = _interopRequireDefault(_keys); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function createArrayIterator(coll) { - var i = -1; - var len = coll.length; - return function next() { - return ++i < len ? { value: coll[i], key: i } : null; - }; -} - -function createES2015Iterator(iterator) { - var i = -1; - return function next() { - var item = iterator.next(); - if (item.done) return null; - i++; - return { value: item.value, key: i }; - }; -} - -function createObjectIterator(obj) { - var okeys = (0, _keys2.default)(obj); - var i = -1; - var len = okeys.length; - return function next() { - var key = okeys[++i]; - return i < len ? { value: obj[key], key: key } : null; - }; -} - -function iterator(coll) { - if ((0, _isArrayLike2.default)(coll)) { - return createArrayIterator(coll); - } - - var iterator = (0, _getIterator2.default)(coll); - return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/map.js deleted file mode 100644 index e303d836..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/map.js +++ /dev/null @@ -1,34 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _asyncMap; - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _once = require('./once'); - -var _once2 = _interopRequireDefault(_once); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _asyncMap(eachfn, arr, iteratee, callback) { - callback = (0, _once2.default)(callback || _noop2.default); - arr = arr || []; - var results = []; - var counter = 0; - - eachfn(arr, function (value, _, callback) { - var index = counter++; - iteratee(value, function (err, v) { - results[index] = v; - callback(err); - }); - }, function (err) { - callback(err, results); - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/notId.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/notId.js deleted file mode 100644 index e0b471d4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/notId.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = notId; -function notId(v) { - return !v; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/once.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/once.js deleted file mode 100644 index a0e46cdf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/once.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = once; -function once(fn) { - return function () { - if (fn === null) return; - var callFn = fn; - fn = null; - callFn.apply(this, arguments); - }; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/onlyOnce.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/onlyOnce.js deleted file mode 100644 index 9892f96c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/onlyOnce.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = onlyOnce; -function onlyOnce(fn) { - return function () { - if (fn === null) throw new Error("Callback was already called."); - var callFn = fn; - fn = null; - callFn.apply(this, arguments); - }; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/parallel.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/parallel.js deleted file mode 100644 index f04888c7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/parallel.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _parallel; - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _isArrayLike = require('lodash/isArrayLike'); - -var _isArrayLike2 = _interopRequireDefault(_isArrayLike); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _parallel(eachfn, tasks, callback) { - callback = callback || _noop2.default; - var results = (0, _isArrayLike2.default)(tasks) ? [] : {}; - - eachfn(tasks, function (task, key, callback) { - task((0, _rest2.default)(function (err, args) { - if (args.length <= 1) { - args = args[0]; - } - results[key] = args; - callback(err); - })); - }, function (err) { - callback(err, results); - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/queue.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/queue.js deleted file mode 100644 index e54a6d7c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/queue.js +++ /dev/null @@ -1,184 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = queue; - -var _arrayEach = require('lodash/_arrayEach'); - -var _arrayEach2 = _interopRequireDefault(_arrayEach); - -var _isArray = require('lodash/isArray'); - -var _isArray2 = _interopRequireDefault(_isArray); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -var _onlyOnce = require('./onlyOnce'); - -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); - -var _setImmediate = require('./setImmediate'); - -var _setImmediate2 = _interopRequireDefault(_setImmediate); - -var _DoublyLinkedList = require('./DoublyLinkedList'); - -var _DoublyLinkedList2 = _interopRequireDefault(_DoublyLinkedList); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function queue(worker, concurrency, payload) { - if (concurrency == null) { - concurrency = 1; - } else if (concurrency === 0) { - throw new Error('Concurrency must not be zero'); - } - - function _insert(data, insertAtFront, callback) { - if (callback != null && typeof callback !== 'function') { - throw new Error('task callback must be a function'); - } - q.started = true; - if (!(0, _isArray2.default)(data)) { - data = [data]; - } - if (data.length === 0 && q.idle()) { - // call drain immediately if there are no tasks - return (0, _setImmediate2.default)(function () { - q.drain(); - }); - } - (0, _arrayEach2.default)(data, function (task) { - var item = { - data: task, - callback: callback || _noop2.default - }; - - if (insertAtFront) { - q._tasks.unshift(item); - } else { - q._tasks.push(item); - } - }); - (0, _setImmediate2.default)(q.process); - } - - function _next(tasks) { - return (0, _rest2.default)(function (args) { - workers -= 1; - - (0, _arrayEach2.default)(tasks, function (task) { - (0, _arrayEach2.default)(workersList, function (worker, index) { - if (worker === task) { - workersList.splice(index, 1); - return false; - } - }); - - task.callback.apply(task, args); - - if (args[0] != null) { - q.error(args[0], task.data); - } - }); - - if (workers <= q.concurrency - q.buffer) { - q.unsaturated(); - } - - if (q.idle()) { - q.drain(); - } - q.process(); - }); - } - - var workers = 0; - var workersList = []; - var q = { - _tasks: new _DoublyLinkedList2.default(), - concurrency: concurrency, - payload: payload, - saturated: _noop2.default, - unsaturated: _noop2.default, - buffer: concurrency / 4, - empty: _noop2.default, - drain: _noop2.default, - error: _noop2.default, - started: false, - paused: false, - push: function (data, callback) { - _insert(data, false, callback); - }, - kill: function () { - q.drain = _noop2.default; - q._tasks.empty(); - }, - unshift: function (data, callback) { - _insert(data, true, callback); - }, - process: function () { - while (!q.paused && workers < q.concurrency && q._tasks.length) { - var tasks = [], - data = []; - var l = q._tasks.length; - if (q.payload) l = Math.min(l, q.payload); - for (var i = 0; i < l; i++) { - var node = q._tasks.shift(); - tasks.push(node); - data.push(node.data); - } - - if (q._tasks.length === 0) { - q.empty(); - } - workers += 1; - workersList.push(tasks[0]); - - if (workers === q.concurrency) { - q.saturated(); - } - - var cb = (0, _onlyOnce2.default)(_next(tasks)); - worker(data, cb); - } - }, - length: function () { - return q._tasks.length; - }, - running: function () { - return workers; - }, - workersList: function () { - return workersList; - }, - idle: function () { - return q._tasks.length + workers === 0; - }, - pause: function () { - q.paused = true; - }, - resume: function () { - if (q.paused === false) { - return; - } - q.paused = false; - var resumeCount = Math.min(q.concurrency, q._tasks.length); - // Need to call q.process once per concurrent - // worker to preserve full concurrency after pause - for (var w = 1; w <= resumeCount; w++) { - (0, _setImmediate2.default)(q.process); - } - } - }; - return q; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/reject.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/reject.js deleted file mode 100644 index b20cc3b2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/reject.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = reject; - -var _filter = require('./filter'); - -var _filter2 = _interopRequireDefault(_filter); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function reject(eachfn, arr, iteratee, callback) { - (0, _filter2.default)(eachfn, arr, function (value, cb) { - iteratee(value, function (err, v) { - if (err) { - cb(err); - } else { - cb(null, !v); - } - }); - }, callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/setImmediate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/setImmediate.js deleted file mode 100644 index 6d7e7fd1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/setImmediate.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.hasNextTick = exports.hasSetImmediate = undefined; -exports.fallback = fallback; -exports.wrap = wrap; - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate; -var hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function'; - -function fallback(fn) { - setTimeout(fn, 0); -} - -function wrap(defer) { - return (0, _rest2.default)(function (fn, args) { - defer(function () { - fn.apply(null, args); - }); - }); -} - -var _defer; - -if (hasSetImmediate) { - _defer = setImmediate; -} else if (hasNextTick) { - _defer = process.nextTick; -} else { - _defer = fallback; -} - -exports.default = wrap(_defer); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/withoutIndex.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/withoutIndex.js deleted file mode 100644 index 240a840a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/internal/withoutIndex.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _withoutIndex; -function _withoutIndex(iteratee) { - return function (value, index, callback) { - return iteratee(value, callback); - }; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/log.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/log.js deleted file mode 100644 index ac04693d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/log.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _consoleFunc = require('./internal/consoleFunc'); - -var _consoleFunc2 = _interopRequireDefault(_consoleFunc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Logs the result of an `async` function to the `console`. Only works in - * Node.js or in browsers that support `console.log` and `console.error` (such - * as FF and Chrome). If multiple arguments are returned from the async - * function, `console.log` is called on each argument in order. - * - * @name log - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} function - The function you want to eventually apply all - * arguments to. - * @param {...*} arguments... - Any number of arguments to apply to the function. - * @example - * - * // in a module - * var hello = function(name, callback) { - * setTimeout(function() { - * callback(null, 'hello ' + name); - * }, 1000); - * }; - * - * // in the node repl - * node> async.log(hello, 'world'); - * 'hello world' - */ -exports.default = (0, _consoleFunc2.default)('log'); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/map.js deleted file mode 100644 index 37e0b019..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/map.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _doParallel = require('./internal/doParallel'); - -var _doParallel2 = _interopRequireDefault(_doParallel); - -var _map = require('./internal/map'); - -var _map2 = _interopRequireDefault(_map); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Produces a new collection of values by mapping each value in `coll` through - * the `iteratee` function. The `iteratee` is called with an item from `coll` - * and a callback for when it has finished processing. Each of these callback - * takes 2 arguments: an `error`, and the transformed item from `coll`. If - * `iteratee` passes an error to its callback, the main `callback` (for the - * `map` function) is immediately called with the error. - * - * Note, that since this function applies the `iteratee` to each item in - * parallel, there is no guarantee that the `iteratee` functions will complete - * in order. However, the results array will be in the same order as the - * original `coll`. - * - * If `map` is passed an Object, the results will be an Array. The results - * will roughly be in the order of the original Objects' keys (but this can - * vary across JavaScript engines) - * - * @name map - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an Array of the - * transformed items from the `coll`. Invoked with (err, results). - * @example - * - * async.map(['file1','file2','file3'], fs.stat, function(err, results) { - * // results is now an array of stats for each file - * }); - */ -exports.default = (0, _doParallel2.default)(_map2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapLimit.js deleted file mode 100644 index 9165e0ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapLimit.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _doParallelLimit = require('./internal/doParallelLimit'); - -var _doParallelLimit2 = _interopRequireDefault(_doParallelLimit); - -var _map = require('./internal/map'); - -var _map2 = _interopRequireDefault(_map); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`map`]{@link module:Collections.map} but runs a maximum of `limit` async operations at a time. - * - * @name mapLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.map]{@link module:Collections.map} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a transformed - * item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an array of the - * transformed items from the `coll`. Invoked with (err, results). - */ -exports.default = (0, _doParallelLimit2.default)(_map2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapSeries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapSeries.js deleted file mode 100644 index b3894ad6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapSeries.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _mapLimit = require('./mapLimit'); - -var _mapLimit2 = _interopRequireDefault(_mapLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`map`]{@link module:Collections.map} but runs only a single async operation at a time. - * - * @name mapSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.map]{@link module:Collections.map} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed item. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an array of the - * transformed items from the `coll`. Invoked with (err, results). - */ -exports.default = (0, _doLimit2.default)(_mapLimit2.default, 1); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapValues.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapValues.js deleted file mode 100644 index 71051db6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapValues.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _mapValuesLimit = require('./mapValuesLimit'); - -var _mapValuesLimit2 = _interopRequireDefault(_mapValuesLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * A relative of [`map`]{@link module:Collections.map}, designed for use with objects. - * - * Produces a new Object by mapping each value of `obj` through the `iteratee` - * function. The `iteratee` is called each `value` and `key` from `obj` and a - * callback for when it has finished processing. Each of these callbacks takes - * two arguments: an `error`, and the transformed item from `obj`. If `iteratee` - * passes an error to its callback, the main `callback` (for the `mapValues` - * function) is immediately called with the error. - * - * Note, the order of the keys in the result is not guaranteed. The keys will - * be roughly in the order they complete, (but this is very engine-specific) - * - * @name mapValues - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Object} obj - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each value and key in - * `coll`. The iteratee is passed a `callback(err, transformed)` which must be - * called once it has completed with an error (which can be `null`) and a - * transformed value. Invoked with (value, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Results is an array of the - * transformed items from the `obj`. Invoked with (err, result). - * @example - * - * async.mapValues({ - * f1: 'file1', - * f2: 'file2', - * f3: 'file3' - * }, function (file, key, callback) { - * fs.stat(file, callback); - * }, function(err, result) { - * // results is now a map of stats for each file, e.g. - * // { - * // f1: [stats for file1], - * // f2: [stats for file2], - * // f3: [stats for file3] - * // } - * }); - */ - -exports.default = (0, _doLimit2.default)(_mapValuesLimit2.default, Infinity); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapValuesLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapValuesLimit.js deleted file mode 100644 index e3840b07..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapValuesLimit.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = mapValuesLimit; - -var _eachOfLimit = require('./eachOfLimit'); - -var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _once = require('./internal/once'); - -var _once2 = _interopRequireDefault(_once); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`mapValues`]{@link module:Collections.mapValues} but runs a maximum of `limit` async operations at a - * time. - * - * @name mapValuesLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.mapValues]{@link module:Collections.mapValues} - * @category Collection - * @param {Object} obj - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A function to apply to each value in `obj`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed value. Invoked with (value, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Result is an object of the - * transformed values from the `obj`. Invoked with (err, result). - */ -function mapValuesLimit(obj, limit, iteratee, callback) { - callback = (0, _once2.default)(callback || _noop2.default); - var newObj = {}; - (0, _eachOfLimit2.default)(obj, limit, function (val, key, next) { - iteratee(val, key, function (err, result) { - if (err) return next(err); - newObj[key] = result; - next(); - }); - }, function (err) { - callback(err, newObj); - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapValuesSeries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapValuesSeries.js deleted file mode 100644 index d9a82402..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/mapValuesSeries.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _mapValuesLimit = require('./mapValuesLimit'); - -var _mapValuesLimit2 = _interopRequireDefault(_mapValuesLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`mapValues`]{@link module:Collections.mapValues} but runs only a single async operation at a time. - * - * @name mapValuesSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.mapValues]{@link module:Collections.mapValues} - * @category Collection - * @param {Object} obj - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each value in `obj`. - * The iteratee is passed a `callback(err, transformed)` which must be called - * once it has completed with an error (which can be `null`) and a - * transformed value. Invoked with (value, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Result is an object of the - * transformed values from the `obj`. Invoked with (err, result). - */ -exports.default = (0, _doLimit2.default)(_mapValuesLimit2.default, 1); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/memoize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/memoize.js deleted file mode 100644 index a6bc5f0b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/memoize.js +++ /dev/null @@ -1,95 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = memoize; - -var _identity = require('lodash/identity'); - -var _identity2 = _interopRequireDefault(_identity); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -var _setImmediate = require('./internal/setImmediate'); - -var _setImmediate2 = _interopRequireDefault(_setImmediate); - -var _initialParams = require('./internal/initialParams'); - -var _initialParams2 = _interopRequireDefault(_initialParams); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function has(obj, key) { - return key in obj; -} - -/** - * Caches the results of an `async` function. When creating a hash to store - * function results against, the callback is omitted from the hash and an - * optional hash function can be used. - * - * If 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. - * - * The cache of results is exposed as the `memo` property of the function - * returned by `memoize`. - * - * @name memoize - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} fn - The function to proxy and cache results from. - * @param {Function} hasher - An optional function for generating a custom hash - * for storing results. It has all the arguments applied to it apart from the - * callback, and must be synchronous. - * @returns {Function} a memoized version of `fn` - * @example - * - * var slow_fn = function(name, callback) { - * // do something - * callback(null, result); - * }; - * var fn = async.memoize(slow_fn); - * - * // fn can now be used as if it were slow_fn - * fn('some name', function() { - * // callback - * }); - */ -function memoize(fn, hasher) { - var memo = Object.create(null); - var queues = Object.create(null); - hasher = hasher || _identity2.default; - var memoized = (0, _initialParams2.default)(function memoized(args, callback) { - var key = hasher.apply(null, args); - if (has(memo, key)) { - (0, _setImmediate2.default)(function () { - callback.apply(null, memo[key]); - }); - } else if (has(queues, key)) { - queues[key].push(callback); - } else { - queues[key] = [callback]; - fn.apply(null, args.concat([(0, _rest2.default)(function (args) { - memo[key] = args; - var q = queues[key]; - delete queues[key]; - for (var i = 0, l = q.length; i < l; i++) { - q[i].apply(null, args); - } - })])); - } - }); - memoized.memo = memo; - memoized.unmemoized = fn; - return memoized; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/nextTick.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/nextTick.js deleted file mode 100644 index fa48e326..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/nextTick.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _setImmediate = require('./internal/setImmediate'); - -/** - * Calls `callback` on a later loop around the event loop. In Node.js this just - * calls `setImmediate`. In the browser it will use `setImmediate` if - * available, otherwise `setTimeout(callback, 0)`, which means other higher - * priority events may precede the execution of `callback`. - * - * This is used internally for browser-compatibility purposes. - * - * @name nextTick - * @static - * @memberOf module:Utils - * @method - * @alias setImmediate - * @category Util - * @param {Function} callback - The function to call on a later loop around - * the event loop. Invoked with (args...). - * @param {...*} args... - any number of additional arguments to pass to the - * callback on the next tick. - * @example - * - * var call_order = []; - * async.nextTick(function() { - * call_order.push('two'); - * // call_order now equals ['one','two'] - * }); - * call_order.push('one'); - * - * async.setImmediate(function (a, b, c) { - * // a, b, and c equal 1, 2, and 3 - * }, 1, 2, 3); - */ -var _defer; - -if (_setImmediate.hasNextTick) { - _defer = process.nextTick; -} else if (_setImmediate.hasSetImmediate) { - _defer = setImmediate; -} else { - _defer = _setImmediate.fallback; -} - -exports.default = (0, _setImmediate.wrap)(_defer); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/package.json deleted file mode 100644 index ea918e3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/package.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "name": "async", - "description": "Higher-order functions and common patterns for asynchronous code", - "version": "2.0.1", - "main": "dist/async.js", - "author": { - "name": "Caolan McMahon" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/caolan/async.git" - }, - "bugs": { - "url": "https://github.com/caolan/async/issues" - }, - "keywords": [ - "async", - "callback", - "module", - "utility" - ], - "dependencies": { - "lodash": "^4.8.0" - }, - "devDependencies": { - "babel-core": "^6.3.26", - "babel-plugin-add-module-exports": "~0.1.2", - "babel-plugin-istanbul": "^1.0.3", - "babel-plugin-transform-es2015-modules-commonjs": "^6.3.16", - "babel-preset-es2015": "^6.3.13", - "babelify": "^7.2.0", - "benchmark": "github:bestiejs/benchmark.js", - "bluebird": "^2.9.32", - "chai": "^3.1.0", - "cheerio": "^0.20.0", - "coveralls": "^2.11.2", - "es6-promise": "^2.3.0", - "eslint": "^2.11.1", - "fs-extra": "^0.26.7", - "gh-pages-deploy": "^0.4.2", - "jsdoc": "^3.4.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", - "mocha": "^2.2.5", - "native-promise-only": "^0.8.0-a", - "nyc": "^7.0.0", - "recursive-readdir": "^1.3.0", - "rimraf": "^2.5.0", - "rollup": "^0.25.0", - "rollup-plugin-node-resolve": "^1.5.0", - "rollup-plugin-npm": "~1.3.0", - "rsvp": "^3.0.18", - "semver": "^4.3.6", - "uglify-js": "~2.4.0", - "vinyl-buffer": "^1.0.0", - "vinyl-source-stream": "^1.1.0", - "yargs": "~3.9.1" - }, - "scripts": { - "coverage": "nyc npm run mocha-node-test -- --grep @nycinvalid --invert", - "coveralls": "npm run coverage && nyc report --reporter=text-lcov | coveralls", - "jsdoc": "jsdoc -c ./support/jsdoc/jsdoc.json && node support/jsdoc/jsdoc-fix-html.js", - "lint": "eslint lib/ mocha_test/ perf/memory.js perf/suites.js perf/benchmark.js support/build/ support/*.js karma.conf.js", - "mocha-browser-test": "karma start", - "mocha-node-test": "mocha mocha_test/ --compilers js:babel-core/register", - "mocha-test": "npm run mocha-node-test && npm run mocha-browser-test", - "test": "npm run-script lint && npm run mocha-node-test" - }, - "license": "MIT", - "gh-pages-deploy": { - "staticpath": "docs" - }, - "nyc": { - "exclude": [ - "mocha_test" - ] - }, - "homepage": "https://github.com/caolan/async#readme", - "_id": "async@2.0.1", - "_shasum": "b709cc0280a9c36f09f4536be823c838a9049e25", - "_from": "async@>=2.0.0-rc.4 <2.1.0", - "_npmVersion": "3.9.5", - "_nodeVersion": "6.2.2", - "_npmUser": { - "name": "megawac", - "email": "megawac@gmail.com" - }, - "dist": { - "shasum": "b709cc0280a9c36f09f4536be823c838a9049e25", - "tarball": "https://registry.npmjs.org/async/-/async-2.0.1.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" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/async-2.0.1.tgz_1469219821915_0.46895121363922954" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/async/-/async-2.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/parallel.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/parallel.js deleted file mode 100644 index 99053a27..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/parallel.js +++ /dev/null @@ -1,87 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = parallelLimit; - -var _eachOf = require('./eachOf'); - -var _eachOf2 = _interopRequireDefault(_eachOf); - -var _parallel = require('./internal/parallel'); - -var _parallel2 = _interopRequireDefault(_parallel); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Run the `tasks` collection of functions in parallel, without waiting until - * the previous function has completed. If any of the functions pass an error to - * its callback, the main `callback` is immediately called with the value of the - * error. Once the `tasks` have completed, the results are passed to the final - * `callback` as an array. - * - * **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. - * - * It is also possible to use an object instead of an array. Each property will - * be run as a function and the results will be passed to the final `callback` - * as an object instead of an array. This can be a more readable way of handling - * results from {@link async.parallel}. - * - * @name parallel - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array|Iterable|Object} tasks - A collection containing functions to run. - * Each function is passed a `callback(err, result)` which it must call on - * completion with an error `err` (which can be `null`) and an optional `result` - * value. - * @param {Function} [callback] - An optional callback to run once all the - * functions have completed successfully. This function gets a results array - * (or object) containing all the result arguments passed to the task callbacks. - * Invoked with (err, results). - * @example - * async.parallel([ - * function(callback) { - * setTimeout(function() { - * callback(null, 'one'); - * }, 200); - * }, - * function(callback) { - * setTimeout(function() { - * callback(null, 'two'); - * }, 100); - * } - * ], - * // optional callback - * function(err, results) { - * // the results array will equal ['one','two'] even though - * // the second function had a shorter timeout. - * }); - * - * // an example using an object instead of an array - * async.parallel({ - * one: function(callback) { - * setTimeout(function() { - * callback(null, 1); - * }, 200); - * }, - * two: function(callback) { - * setTimeout(function() { - * callback(null, 2); - * }, 100); - * } - * }, function(err, results) { - * // results is now equals to: {one: 1, two: 2} - * }); - */ -function parallelLimit(tasks, callback) { - (0, _parallel2.default)(_eachOf2.default, tasks, callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/parallelLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/parallelLimit.js deleted file mode 100644 index b0bc7469..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/parallelLimit.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = parallelLimit; - -var _eachOfLimit = require('./internal/eachOfLimit'); - -var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); - -var _parallel = require('./internal/parallel'); - -var _parallel2 = _interopRequireDefault(_parallel); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`parallel`]{@link module:ControlFlow.parallel} but runs a maximum of `limit` async operations at a - * time. - * - * @name parallelLimit - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.parallel]{@link module:ControlFlow.parallel} - * @category Control Flow - * @param {Array|Collection} tasks - A collection containing functions to run. - * Each function is passed a `callback(err, result)` which it must call on - * completion with an error `err` (which can be `null`) and an optional `result` - * value. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} [callback] - An optional callback to run once all the - * functions have completed successfully. This function gets a results array - * (or object) containing all the result arguments passed to the task callbacks. - * Invoked with (err, results). - */ -function parallelLimit(tasks, limit, callback) { - (0, _parallel2.default)((0, _eachOfLimit2.default)(limit), tasks, callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/priorityQueue.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/priorityQueue.js deleted file mode 100644 index f7736e9f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/priorityQueue.js +++ /dev/null @@ -1,103 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (worker, concurrency) { - // Start with a normal queue - var q = (0, _queue2.default)(worker, concurrency); - - // Override push to accept second parameter representing priority - q.push = function (data, priority, callback) { - if (callback == null) callback = _noop2.default; - if (typeof callback !== 'function') { - throw new Error('task callback must be a function'); - } - q.started = true; - if (!(0, _isArray2.default)(data)) { - data = [data]; - } - if (data.length === 0) { - // call drain immediately if there are no tasks - return (0, _setImmediate2.default)(function () { - q.drain(); - }); - } - - priority = priority || 0; - var nextNode = q._tasks.head; - while (nextNode && priority >= nextNode.priority) { - nextNode = nextNode.next; - } - - (0, _arrayEach2.default)(data, function (task) { - var item = { - data: task, - priority: priority, - callback: callback - }; - - if (nextNode) { - q._tasks.insertBefore(nextNode, item); - } else { - q._tasks.push(item); - } - }); - (0, _setImmediate2.default)(q.process); - }; - - // Remove unshift function - delete q.unshift; - - return q; -}; - -var _arrayEach = require('lodash/_arrayEach'); - -var _arrayEach2 = _interopRequireDefault(_arrayEach); - -var _isArray = require('lodash/isArray'); - -var _isArray2 = _interopRequireDefault(_isArray); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _setImmediate = require('./setImmediate'); - -var _setImmediate2 = _interopRequireDefault(_setImmediate); - -var _queue = require('./queue'); - -var _queue2 = _interopRequireDefault(_queue); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -module.exports = exports['default']; - -/** - * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and - * completed in ascending priority order. - * - * @name priorityQueue - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.queue]{@link module:ControlFlow.queue} - * @category Control Flow - * @param {Function} worker - An asynchronous function for processing a queued - * task, which must call its `callback(err)` argument when finished, with an - * optional `error` as an argument. If you want to handle errors from an - * individual task, pass a callback to `q.push()`. Invoked with - * (task, callback). - * @param {number} concurrency - An `integer` for determining how many `worker` - * functions should be run in parallel. If omitted, the concurrency defaults to - * `1`. If the concurrency is `0`, an error is thrown. - * @returns {module:ControlFlow.QueueObject} A priorityQueue object to manage the tasks. There are two - * differences between `queue` and `priorityQueue` objects: - * * `push(task, priority, [callback])` - `priority` should be a number. If an - * array of `tasks` is given, all tasks will be assigned the same priority. - * * The `unshift` method was removed. - */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/queue.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/queue.js deleted file mode 100644 index b991f31d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/queue.js +++ /dev/null @@ -1,120 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (worker, concurrency) { - return (0, _queue2.default)(function (items, cb) { - worker(items[0], cb); - }, concurrency, 1); -}; - -var _queue = require('./internal/queue'); - -var _queue2 = _interopRequireDefault(_queue); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -module.exports = exports['default']; - -/** - * A queue of tasks for the worker function to complete. - * @typedef {Object} QueueObject - * @memberOf module:ControlFlow - * @property {Function} length - a function returning the number of items - * waiting to be processed. Invoke with `queue.length()`. - * @property {boolean} started - a boolean indicating whether or not any - * items have been pushed and processed by the queue. - * @property {Function} running - a function returning the number of items - * currently being processed. Invoke with `queue.running()`. - * @property {Function} workersList - a function returning the array of items - * currently being processed. Invoke with `queue.workersList()`. - * @property {Function} idle - a function returning false if there are items - * waiting or being processed, or true if not. Invoke with `queue.idle()`. - * @property {number} concurrency - an integer for determining how many `worker` - * functions should be run in parallel. This property can be changed after a - * `queue` is created to alter the concurrency on-the-fly. - * @property {Function} push - add a new task to the `queue`. Calls `callback` - * once the `worker` has finished processing the task. Instead of a single task, - * a `tasks` array can be submitted. The respective callback is used for every - * task in the list. Invoke with `queue.push(task, [callback])`, - * @property {Function} unshift - add a new task to the front of the `queue`. - * Invoke with `queue.unshift(task, [callback])`. - * @property {Function} saturated - a callback that is called when the number of - * running workers hits the `concurrency` limit, and further tasks will be - * queued. - * @property {Function} unsaturated - a callback that is called when the number - * of running workers is less than the `concurrency` & `buffer` limits, and - * further tasks will not be queued. - * @property {number} buffer - A minimum threshold buffer in order to say that - * the `queue` is `unsaturated`. - * @property {Function} empty - a callback that is called when the last item - * from the `queue` is given to a `worker`. - * @property {Function} drain - a callback that is called when the last item - * from the `queue` has returned from the `worker`. - * @property {Function} error - a callback that is called when a task errors. - * Has the signature `function(error, task)`. - * @property {boolean} paused - a boolean for determining whether the queue is - * in a paused state. - * @property {Function} pause - a function that pauses the processing of tasks - * until `resume()` is called. Invoke with `queue.pause()`. - * @property {Function} resume - a function that resumes the processing of - * queued tasks when the queue is paused. Invoke with `queue.resume()`. - * @property {Function} kill - a function that removes the `drain` callback and - * empties remaining tasks from the queue forcing it to go idle. Invoke with `queue.kill()`. - */ - -/** - * Creates a `queue` object with the specified `concurrency`. Tasks added to the - * `queue` are processed in parallel (up to the `concurrency` limit). If all - * `worker`s are in progress, the task is queued until one becomes available. - * Once a `worker` completes a `task`, that `task`'s callback is called. - * - * @name queue - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Function} worker - An asynchronous function for processing a queued - * task, which must call its `callback(err)` argument when finished, with an - * optional `error` as an argument. If you want to handle errors from an - * individual task, pass a callback to `q.push()`. Invoked with - * (task, callback). - * @param {number} [concurrency=1] - An `integer` for determining how many - * `worker` functions should be run in parallel. If omitted, the concurrency - * defaults to `1`. If the concurrency is `0`, an error is thrown. - * @returns {module:ControlFlow.QueueObject} A queue object to manage the tasks. Callbacks can - * attached as certain properties to listen for specific events during the - * lifecycle of the queue. - * @example - * - * // create a queue object with concurrency 2 - * var q = async.queue(function(task, callback) { - * console.log('hello ' + task.name); - * callback(); - * }, 2); - * - * // assign a callback - * q.drain = function() { - * console.log('all items have been processed'); - * }; - * - * // add some items to the queue - * q.push({name: 'foo'}, function(err) { - * console.log('finished processing foo'); - * }); - * q.push({name: 'bar'}, function (err) { - * console.log('finished processing bar'); - * }); - * - * // add some items to the queue (batch-wise) - * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) { - * console.log('finished processing item'); - * }); - * - * // add some items to the front of the queue - * q.unshift({name: 'bar'}, function (err) { - * console.log('finished processing bar'); - * }); - */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/race.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/race.js deleted file mode 100644 index 384ea101..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/race.js +++ /dev/null @@ -1,71 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = race; - -var _isArray = require('lodash/isArray'); - -var _isArray2 = _interopRequireDefault(_isArray); - -var _arrayEach = require('lodash/_arrayEach'); - -var _arrayEach2 = _interopRequireDefault(_arrayEach); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _once = require('./internal/once'); - -var _once2 = _interopRequireDefault(_once); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Runs the `tasks` array of functions in parallel, without waiting until the - * previous function has completed. Once any the `tasks` completed or pass an - * error to its callback, the main `callback` is immediately called. It's - * equivalent to `Promise.race()`. - * - * @name race - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array} tasks - An array containing functions to run. Each function - * is passed a `callback(err, result)` which it must call on completion with an - * error `err` (which can be `null`) and an optional `result` value. - * @param {Function} callback - A callback to run once any of the functions have - * completed. This function gets an error or result from the first function that - * completed. Invoked with (err, result). - * @returns undefined - * @example - * - * async.race([ - * function(callback) { - * setTimeout(function() { - * callback(null, 'one'); - * }, 200); - * }, - * function(callback) { - * setTimeout(function() { - * callback(null, 'two'); - * }, 100); - * } - * ], - * // main callback - * function(err, result) { - * // the result will be equal to 'two' as it finishes earlier - * }); - */ -function race(tasks, callback) { - callback = (0, _once2.default)(callback || _noop2.default); - if (!(0, _isArray2.default)(tasks)) return callback(new TypeError('First argument to race must be an array of functions')); - if (!tasks.length) return callback(); - (0, _arrayEach2.default)(tasks, function (task) { - task(callback); - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reduce.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reduce.js deleted file mode 100644 index 15e26eae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reduce.js +++ /dev/null @@ -1,73 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = reduce; - -var _eachOfSeries = require('./eachOfSeries'); - -var _eachOfSeries2 = _interopRequireDefault(_eachOfSeries); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _once = require('./internal/once'); - -var _once2 = _interopRequireDefault(_once); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Reduces `coll` into a single value using an async `iteratee` to return each - * successive step. `memo` is the initial state of the reduction. This function - * only operates in series. - * - * For performance reasons, it may make sense to split a call to this function - * into a parallel map, and then use the normal `Array.prototype.reduce` on the - * results. This function is for situations where each step in the reduction - * needs to be async; if you can get the data before reducing it, then it's - * probably a good idea to do so. - * - * @name reduce - * @static - * @memberOf module:Collections - * @method - * @alias inject - * @alias foldl - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {*} memo - The initial state of the reduction. - * @param {Function} iteratee - A function applied to each item in the - * array to produce the next step in the reduction. The `iteratee` is passed a - * `callback(err, reduction)` which accepts an optional error as its first - * argument, and the state of the reduction as the second. If an error is - * passed to the callback, the reduction is stopped and the main `callback` is - * immediately called with the error. Invoked with (memo, item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result is the reduced value. Invoked with - * (err, result). - * @example - * - * async.reduce([1,2,3], 0, function(memo, item, callback) { - * // pointless async: - * process.nextTick(function() { - * callback(null, memo + item) - * }); - * }, function(err, result) { - * // result is now equal to the last value of memo, which is 6 - * }); - */ -function reduce(coll, memo, iteratee, callback) { - callback = (0, _once2.default)(callback || _noop2.default); - (0, _eachOfSeries2.default)(coll, function (x, i, callback) { - iteratee(memo, x, function (err, v) { - memo = v; - callback(err); - }); - }, function (err) { - callback(err, memo); - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reduceRight.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reduceRight.js deleted file mode 100644 index 3ffdd8ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reduceRight.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = reduceRight; - -var _reduce = require('./reduce'); - -var _reduce2 = _interopRequireDefault(_reduce); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var slice = Array.prototype.slice; - -/** - * Same as [`reduce`]{@link module:Collections.reduce}, only operates on `array` in reverse order. - * - * @name reduceRight - * @static - * @memberOf module:Collections - * @method - * @see [async.reduce]{@link module:Collections.reduce} - * @alias foldr - * @category Collection - * @param {Array} array - A collection to iterate over. - * @param {*} memo - The initial state of the reduction. - * @param {Function} iteratee - A function applied to each item in the - * array to produce the next step in the reduction. The `iteratee` is passed a - * `callback(err, reduction)` which accepts an optional error as its first - * argument, and the state of the reduction as the second. If an error is - * passed to the callback, the reduction is stopped and the main `callback` is - * immediately called with the error. Invoked with (memo, item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result is the reduced value. Invoked with - * (err, result). - */ -function reduceRight(array, memo, iteratee, callback) { - var reversed = slice.call(array).reverse(); - (0, _reduce2.default)(reversed, memo, iteratee, callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reflect.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reflect.js deleted file mode 100644 index 326d1b97..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reflect.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = reflect; - -var _initialParams = require('./internal/initialParams'); - -var _initialParams2 = _interopRequireDefault(_initialParams); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Wraps the function in another function that always returns data even when it - * errors. - * - * The object returned has either the property `error` or `value`. - * - * @name reflect - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} fn - The function you want to wrap - * @returns {Function} - A function that always passes null to it's callback as - * the error. The second argument to the callback will be an `object` with - * either an `error` or a `value` property. - * @example - * - * async.parallel([ - * async.reflect(function(callback) { - * // do some stuff ... - * callback(null, 'one'); - * }), - * async.reflect(function(callback) { - * // do some more stuff but error ... - * callback('bad stuff happened'); - * }), - * async.reflect(function(callback) { - * // do some more stuff ... - * callback(null, 'two'); - * }) - * ], - * // optional callback - * function(err, results) { - * // values - * // results[0].value = 'one' - * // results[1].error = 'bad stuff happened' - * // results[2].value = 'two' - * }); - */ -function reflect(fn) { - return (0, _initialParams2.default)(function reflectOn(args, reflectCallback) { - args.push((0, _rest2.default)(function callback(err, cbArgs) { - if (err) { - reflectCallback(null, { - error: err - }); - } else { - var value = null; - if (cbArgs.length === 1) { - value = cbArgs[0]; - } else if (cbArgs.length > 1) { - value = cbArgs; - } - reflectCallback(null, { - value: value - }); - } - })); - - return fn.apply(this, args); - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reflectAll.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reflectAll.js deleted file mode 100644 index fc0f401d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reflectAll.js +++ /dev/null @@ -1,104 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = reflectAll; - -var _reflect = require('./reflect'); - -var _reflect2 = _interopRequireDefault(_reflect); - -var _isArray = require('lodash/isArray'); - -var _isArray2 = _interopRequireDefault(_isArray); - -var _arrayMap2 = require('lodash/_arrayMap'); - -var _arrayMap3 = _interopRequireDefault(_arrayMap2); - -var _baseForOwn = require('lodash/_baseForOwn'); - -var _baseForOwn2 = _interopRequireDefault(_baseForOwn); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * A helper function that wraps an array or an object of functions with reflect. - * - * @name reflectAll - * @static - * @memberOf module:Utils - * @method - * @see [async.reflect]{@link module:Utils.reflect} - * @category Util - * @param {Array} tasks - The array of functions to wrap in `async.reflect`. - * @returns {Array} Returns an array of functions, each function wrapped in - * `async.reflect` - * @example - * - * let tasks = [ - * function(callback) { - * setTimeout(function() { - * callback(null, 'one'); - * }, 200); - * }, - * function(callback) { - * // do some more stuff but error ... - * callback(new Error('bad stuff happened')); - * }, - * function(callback) { - * setTimeout(function() { - * callback(null, 'two'); - * }, 100); - * } - * ]; - * - * async.parallel(async.reflectAll(tasks), - * // optional callback - * function(err, results) { - * // values - * // results[0].value = 'one' - * // results[1].error = Error('bad stuff happened') - * // results[2].value = 'two' - * }); - * - * // an example using an object instead of an array - * let tasks = { - * one: function(callback) { - * setTimeout(function() { - * callback(null, 'one'); - * }, 200); - * }, - * two: function(callback) { - * callback('two'); - * }, - * three: function(callback) { - * setTimeout(function() { - * callback(null, 'three'); - * }, 100); - * } - * }; - * - * async.parallel(async.reflectAll(tasks), - * // optional callback - * function(err, results) { - * // values - * // results.one.value = 'one' - * // results.two.error = 'two' - * // results.three.value = 'three' - * }); - */ -function reflectAll(tasks) { - var results; - if ((0, _isArray2.default)(tasks)) { - results = (0, _arrayMap3.default)(tasks, _reflect2.default); - } else { - results = {}; - (0, _baseForOwn2.default)(tasks, function (task, key) { - results[key] = _reflect2.default.call(this, task); - }); - } - return results; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reject.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reject.js deleted file mode 100644 index 5fc5c9cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/reject.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _reject = require('./internal/reject'); - -var _reject2 = _interopRequireDefault(_reject); - -var _doParallel = require('./internal/doParallel'); - -var _doParallel2 = _interopRequireDefault(_doParallel); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The opposite of [`filter`]{@link module:Collections.filter}. Removes values that pass an `async` truth test. - * - * @name reject - * @static - * @memberOf module:Collections - * @method - * @see [async.filter]{@link module:Collections.filter} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - * @example - * - * async.reject(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, results) { - * // results now equals an array of missing files - * createFiles(results); - * }); - */ -exports.default = (0, _doParallel2.default)(_reject2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/rejectLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/rejectLimit.js deleted file mode 100644 index 600087cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/rejectLimit.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _reject = require('./internal/reject'); - -var _reject2 = _interopRequireDefault(_reject); - -var _doParallelLimit = require('./internal/doParallelLimit'); - -var _doParallelLimit2 = _interopRequireDefault(_doParallelLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`reject`]{@link module:Collections.reject} but runs a maximum of `limit` async operations at a - * time. - * - * @name rejectLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.reject]{@link module:Collections.reject} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ -exports.default = (0, _doParallelLimit2.default)(_reject2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/rejectSeries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/rejectSeries.js deleted file mode 100644 index 57f49de8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/rejectSeries.js +++ /dev/null @@ -1,34 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _rejectLimit = require('./rejectLimit'); - -var _rejectLimit2 = _interopRequireDefault(_rejectLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`reject`]{@link module:Collections.reject} but runs only a single async operation at a time. - * - * @name rejectSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.reject]{@link module:Collections.reject} - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in `coll`. - * The `iteratee` is passed a `callback(err, truthValue)`, which must be called - * with a boolean argument once it has completed. Invoked with (item, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Invoked with (err, results). - */ -exports.default = (0, _doLimit2.default)(_rejectLimit2.default, 1); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/retry.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/retry.js deleted file mode 100644 index 5ab0d118..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/retry.js +++ /dev/null @@ -1,134 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = retry; - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _constant = require('lodash/constant'); - -var _constant2 = _interopRequireDefault(_constant); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Attempts to get a successful response from `task` no more than `times` times - * before returning an error. If the task is successful, the `callback` will be - * passed the result of the successful task. If all attempts fail, the callback - * will be passed the error and result (if any) of the final attempt. - * - * @name retry - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an - * object with `times` and `interval` or a number. - * * `times` - The number of attempts to make before giving up. The default - * is `5`. - * * `interval` - The time to wait between retries, in milliseconds. The - * default is `0`. The interval may also be specified as a function of the - * retry count (see example). - * * If `opts` is a number, the number specifies the number of times to retry, - * with the default interval of `0`. - * @param {Function} task - A function which receives two arguments: (1) a - * `callback(err, result)` which must be called when finished, passing `err` - * (which can be `null`) and the `result` of the function's execution, and (2) - * a `results` object, containing the results of the previously executed - * functions (if nested inside another control flow). Invoked with - * (callback, results). - * @param {Function} [callback] - An optional callback which is called when the - * task has succeeded, or after the final failed attempt. It receives the `err` - * and `result` arguments of the last attempt at completing the `task`. Invoked - * with (err, results). - * @example - * - * // The `retry` function can be used as a stand-alone control flow by passing - * // a callback, as shown below: - * - * // try calling apiMethod 3 times - * async.retry(3, apiMethod, function(err, result) { - * // do something with the result - * }); - * - * // try calling apiMethod 3 times, waiting 200 ms between each retry - * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) { - * // do something with the result - * }); - * - * // try calling apiMethod 10 times with exponential backoff - * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds) - * async.retry({ - * times: 10, - * interval: function(retryCount) { - * return 50 * Math.pow(2, retryCount); - * } - * }, apiMethod, function(err, result) { - * // do something with the result - * }); - * - * // try calling apiMethod the default 5 times no delay between each retry - * async.retry(apiMethod, function(err, result) { - * // do something with the result - * }); - * - * // It can also be embedded within other control flow functions to retry - * // individual methods that are not as reliable, like this: - * async.auto({ - * users: api.getUsers.bind(api), - * payments: async.retry(3, api.getPayments.bind(api)) - * }, function(err, results) { - * // do something with the results - * }); - */ -function retry(opts, task, callback) { - var DEFAULT_TIMES = 5; - var DEFAULT_INTERVAL = 0; - - var options = { - times: DEFAULT_TIMES, - intervalFunc: (0, _constant2.default)(DEFAULT_INTERVAL) - }; - - function parseTimes(acc, t) { - if (typeof t === 'object') { - acc.times = +t.times || DEFAULT_TIMES; - - acc.intervalFunc = typeof t.interval === 'function' ? t.interval : (0, _constant2.default)(+t.interval || DEFAULT_INTERVAL); - } else if (typeof t === 'number' || typeof t === 'string') { - acc.times = +t || DEFAULT_TIMES; - } else { - throw new Error("Invalid arguments for async.retry"); - } - } - - if (arguments.length < 3 && typeof opts === 'function') { - callback = task || _noop2.default; - task = opts; - } else { - parseTimes(options, opts); - callback = callback || _noop2.default; - } - - if (typeof task !== 'function') { - throw new Error("Invalid arguments for async.retry"); - } - - var attempt = 1; - function retryAttempt() { - task(function (err) { - if (err && attempt++ < options.times) { - setTimeout(retryAttempt, options.intervalFunc(attempt)); - } else { - callback.apply(null, arguments); - } - }); - } - - retryAttempt(); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/retryable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/retryable.js deleted file mode 100644 index bf6e2fbc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/retryable.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (opts, task) { - if (!task) { - task = opts; - opts = null; - } - return (0, _initialParams2.default)(function (args, callback) { - function taskFn(cb) { - task.apply(null, args.concat([cb])); - } - - if (opts) (0, _retry2.default)(opts, taskFn, callback);else (0, _retry2.default)(taskFn, callback); - }); -}; - -var _retry = require('./retry'); - -var _retry2 = _interopRequireDefault(_retry); - -var _initialParams = require('./internal/initialParams'); - -var _initialParams2 = _interopRequireDefault(_initialParams); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -module.exports = exports['default']; - -/** - * A close relative of [`retry`]{@link module:ControlFlow.retry}. This method wraps a task and makes it - * retryable, rather than immediately calling it with retries. - * - * @name retryable - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.retry]{@link module:ControlFlow.retry} - * @category Control Flow - * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional - * options, exactly the same as from `retry` - * @param {Function} task - the asynchronous function to wrap - * @returns {Functions} The wrapped function, which when invoked, will retry on - * an error, based on the parameters specified in `opts`. - * @example - * - * async.auto({ - * dep1: async.retryable(3, getFromFlakyService), - * process: ["dep1", async.retryable(3, function (results, cb) { - * maybeProcessData(results.dep1, cb); - * })] - * }, callback); - */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/seq.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/seq.js deleted file mode 100644 index e2d76737..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/seq.js +++ /dev/null @@ -1,79 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -var _reduce = require('./reduce'); - -var _reduce2 = _interopRequireDefault(_reduce); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Version of the compose function that is more natural to read. Each function - * consumes the return value of the previous function. It is the equivalent of - * [compose]{@link module:ControlFlow.compose} with the arguments reversed. - * - * Each function is executed with the `this` binding of the composed function. - * - * @name seq - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.compose]{@link module:ControlFlow.compose} - * @category Control Flow - * @param {...Function} functions - the asynchronous functions to compose - * @returns {Function} a function that composes the `functions` in order - * @example - * - * // Requires lodash (or underscore), express3 and dresende's orm2. - * // Part of an app, that fetches cats of the logged user. - * // This example uses `seq` function to avoid overnesting and error - * // handling clutter. - * app.get('/cats', function(request, response) { - * var User = request.models.User; - * async.seq( - * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) - * function(user, fn) { - * user.getCats(fn); // 'getCats' has signature (callback(err, data)) - * } - * )(req.session.user_id, function (err, cats) { - * if (err) { - * console.error(err); - * response.json({ status: 'error', message: err.message }); - * } else { - * response.json({ status: 'ok', message: 'Cats found', data: cats }); - * } - * }); - * }); - */ -exports.default = (0, _rest2.default)(function seq(functions) { - return (0, _rest2.default)(function (args) { - var that = this; - - var cb = args[args.length - 1]; - if (typeof cb == 'function') { - args.pop(); - } else { - cb = _noop2.default; - } - - (0, _reduce2.default)(functions, args, function (newargs, fn, cb) { - fn.apply(that, newargs.concat([(0, _rest2.default)(function (err, nextargs) { - cb(err, nextargs); - })])); - }, function (err, results) { - cb.apply(that, [err].concat(results)); - }); - }); -}); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/series.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/series.js deleted file mode 100644 index 668f9d6a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/series.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = series; - -var _parallel = require('./internal/parallel'); - -var _parallel2 = _interopRequireDefault(_parallel); - -var _eachOfSeries = require('./eachOfSeries'); - -var _eachOfSeries2 = _interopRequireDefault(_eachOfSeries); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Run the functions in the `tasks` collection in series, each one running once - * the previous function has completed. If any functions in the series pass an - * error to its callback, no more functions are run, and `callback` is - * immediately called with the value of the error. Otherwise, `callback` - * receives an array of results when `tasks` have completed. - * - * It is also possible to use an object instead of an array. Each property will - * be run as a function, and the results will be passed to the final `callback` - * as an object instead of an array. This can be a more readable way of handling - * results from {@link async.series}. - * - * **Note** that while many implementations preserve the order of object - * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) - * explicitly states that - * - * > The mechanics and order of enumerating the properties is not specified. - * - * So if you rely on the order in which your series of functions are executed, - * and want this to work on all platforms, consider using an array. - * - * @name series - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array|Iterable|Object} tasks - A collection containing functions to run, each - * function is passed a `callback(err, result)` it must call on completion with - * an error `err` (which can be `null`) and an optional `result` value. - * @param {Function} [callback] - An optional callback to run once all the - * functions have completed. This function gets a results array (or object) - * containing all the result arguments passed to the `task` callbacks. Invoked - * with (err, result). - * @example - * async.series([ - * function(callback) { - * // do some stuff ... - * callback(null, 'one'); - * }, - * function(callback) { - * // do some more stuff ... - * callback(null, 'two'); - * } - * ], - * // optional callback - * function(err, results) { - * // results is now equal to ['one', 'two'] - * }); - * - * async.series({ - * one: function(callback) { - * setTimeout(function() { - * callback(null, 1); - * }, 200); - * }, - * two: function(callback){ - * setTimeout(function() { - * callback(null, 2); - * }, 100); - * } - * }, function(err, results) { - * // results is now equal to: {one: 1, two: 2} - * }); - */ -function series(tasks, callback) { - (0, _parallel2.default)(_eachOfSeries2.default, tasks, callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/setImmediate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/setImmediate.js deleted file mode 100644 index 23d48e28..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/setImmediate.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _setImmediate = require('./internal/setImmediate'); - -var _setImmediate2 = _interopRequireDefault(_setImmediate); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Calls `callback` on a later loop around the event loop. In Node.js this just - * calls `setImmediate`. In the browser it will use `setImmediate` if - * available, otherwise `setTimeout(callback, 0)`, which means other higher - * priority events may precede the execution of `callback`. - * - * This is used internally for browser-compatibility purposes. - * - * @name setImmediate - * @static - * @memberOf module:Utils - * @method - * @alias nextTick - * @category Util - * @param {Function} callback - The function to call on a later loop around - * the event loop. Invoked with (args...). - * @param {...*} args... - any number of additional arguments to pass to the - * callback on the next tick. - * @example - * - * var call_order = []; - * async.nextTick(function() { - * call_order.push('two'); - * // call_order now equals ['one','two'] - * }); - * call_order.push('one'); - * - * async.setImmediate(function (a, b, c) { - * // a, b, and c equal 1, 2, and 3 - * }, 1, 2, 3); - */ -exports.default = _setImmediate2.default; -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/some.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/some.js deleted file mode 100644 index acb3544e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/some.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createTester = require('./internal/createTester'); - -var _createTester2 = _interopRequireDefault(_createTester); - -var _eachOf = require('./eachOf'); - -var _eachOf2 = _interopRequireDefault(_eachOf); - -var _identity = require('lodash/identity'); - -var _identity2 = _interopRequireDefault(_identity); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Returns `true` if at least one element in the `coll` satisfies an async test. - * If any iteratee call returns `true`, the main `callback` is immediately - * called. - * - * @name some - * @static - * @memberOf module:Collections - * @method - * @alias any - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - * @example - * - * async.some(['file1','file2','file3'], function(filePath, callback) { - * fs.access(filePath, function(err) { - * callback(null, !err) - * }); - * }, function(err, result) { - * // if result is true then at least one of the files exists - * }); - */ -exports.default = (0, _createTester2.default)(_eachOf2.default, Boolean, _identity2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/someLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/someLimit.js deleted file mode 100644 index c2418183..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/someLimit.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createTester = require('./internal/createTester'); - -var _createTester2 = _interopRequireDefault(_createTester); - -var _eachOfLimit = require('./eachOfLimit'); - -var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); - -var _identity = require('lodash/identity'); - -var _identity2 = _interopRequireDefault(_identity); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`some`]{@link module:Collections.some} but runs a maximum of `limit` async operations at a time. - * - * @name someLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.some]{@link module:Collections.some} - * @alias anyLimit - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - */ -exports.default = (0, _createTester2.default)(_eachOfLimit2.default, Boolean, _identity2.default); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/someSeries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/someSeries.js deleted file mode 100644 index 96d77ac8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/someSeries.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _someLimit = require('./someLimit'); - -var _someLimit2 = _interopRequireDefault(_someLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [`some`]{@link module:Collections.some} but runs only a single async operation at a time. - * - * @name someSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.some]{@link module:Collections.some} - * @alias anySeries - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A truth test to apply to each item in the array - * in parallel. The iteratee is passed a `callback(err, truthValue)` which must - * be called with a boolean argument once it has completed. Invoked with - * (item, callback). - * @param {Function} [callback] - A callback which is called as soon as any - * iteratee returns `true`, or after all the iteratee functions have finished. - * Result will be either `true` or `false` depending on the values of the async - * tests. Invoked with (err, result). - */ -exports.default = (0, _doLimit2.default)(_someLimit2.default, 1); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/sortBy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/sortBy.js deleted file mode 100644 index b89acbd4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/sortBy.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = sortBy; - -var _arrayMap = require('lodash/_arrayMap'); - -var _arrayMap2 = _interopRequireDefault(_arrayMap); - -var _baseProperty = require('lodash/_baseProperty'); - -var _baseProperty2 = _interopRequireDefault(_baseProperty); - -var _map = require('./map'); - -var _map2 = _interopRequireDefault(_map); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Sorts a list by the results of running each `coll` value through an async - * `iteratee`. - * - * @name sortBy - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {Function} iteratee - A function to apply to each item in `coll`. - * The iteratee is passed a `callback(err, sortValue)` which must be called once - * it has completed with an error (which can be `null`) and a value to use as - * the sort criteria. Invoked with (item, callback). - * @param {Function} callback - A callback which is called after all the - * `iteratee` functions have finished, or an error occurs. Results is the items - * from the original `coll` sorted by the values returned by the `iteratee` - * calls. Invoked with (err, results). - * @example - * - * async.sortBy(['file1','file2','file3'], function(file, callback) { - * fs.stat(file, function(err, stats) { - * callback(err, stats.mtime); - * }); - * }, function(err, results) { - * // results is now the original array of files sorted by - * // modified date - * }); - * - * // By modifying the callback parameter the - * // sorting order can be influenced: - * - * // ascending order - * async.sortBy([1,9,3,5], function(x, callback) { - * callback(null, x); - * }, function(err,result) { - * // result callback - * }); - * - * // descending order - * async.sortBy([1,9,3,5], function(x, callback) { - * callback(null, x*-1); //<- x*-1 instead of x, turns the order around - * }, function(err,result) { - * // result callback - * }); - */ -function sortBy(coll, iteratee, callback) { - (0, _map2.default)(coll, function (x, callback) { - iteratee(x, function (err, criteria) { - if (err) return callback(err); - callback(null, { value: x, criteria: criteria }); - }); - }, function (err, results) { - if (err) return callback(err); - callback(null, (0, _arrayMap2.default)(results.sort(comparator), (0, _baseProperty2.default)('value'))); - }); - - function comparator(left, right) { - var a = left.criteria, - b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - } -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/timeout.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/timeout.js deleted file mode 100644 index a8de4373..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/timeout.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = timeout; - -var _initialParams = require('./internal/initialParams'); - -var _initialParams2 = _interopRequireDefault(_initialParams); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Sets a time limit on an asynchronous function. If the function does not call - * its callback within the specified milliseconds, it will be called with a - * timeout error. The code property for the error object will be `'ETIMEDOUT'`. - * - * @name timeout - * @static - * @memberOf module:Utils - * @method - * @category Util - * @param {Function} asyncFn - The asynchronous function you want to set the - * time limit. - * @param {number} milliseconds - The specified time limit. - * @param {*} [info] - Any variable you want attached (`string`, `object`, etc) - * to timeout Error for more information.. - * @returns {Function} Returns a wrapped function that can be used with any of - * the control flow functions. - * @example - * - * async.timeout(function(callback) { - * doAsyncTask(callback); - * }, 1000); - */ -function timeout(asyncFn, milliseconds, info) { - var originalCallback, timer; - var timedOut = false; - - function injectedCallback() { - if (!timedOut) { - originalCallback.apply(null, arguments); - clearTimeout(timer); - } - } - - function timeoutCallback() { - var name = asyncFn.name || 'anonymous'; - var error = new Error('Callback function "' + name + '" timed out.'); - error.code = 'ETIMEDOUT'; - if (info) { - error.info = info; - } - timedOut = true; - originalCallback(error); - } - - return (0, _initialParams2.default)(function (args, origCallback) { - originalCallback = origCallback; - // setup timer and call original function - timer = setTimeout(timeoutCallback, milliseconds); - asyncFn.apply(null, args.concat(injectedCallback)); - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/times.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/times.js deleted file mode 100644 index fad418ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/times.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _timesLimit = require('./timesLimit'); - -var _timesLimit2 = _interopRequireDefault(_timesLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Calls the `iteratee` function `n` times, and accumulates results in the same - * manner you would use with [map]{@link module:Collections.map}. - * - * @name times - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.map]{@link module:Collections.map} - * @category Control Flow - * @param {number} n - The number of times to run the function. - * @param {Function} iteratee - The function to call `n` times. Invoked with the - * iteration index and a callback (n, next). - * @param {Function} callback - see {@link module:Collections.map}. - * @example - * - * // Pretend this is some complicated async factory - * var createUser = function(id, callback) { - * callback(null, { - * id: 'user' + id - * }); - * }; - * - * // generate 5 users - * async.times(5, function(n, next) { - * createUser(n, function(err, user) { - * next(err, user); - * }); - * }, function(err, users) { - * // we should now have 5 users - * }); - */ -exports.default = (0, _doLimit2.default)(_timesLimit2.default, Infinity); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/timesLimit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/timesLimit.js deleted file mode 100644 index d38e5317..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/timesLimit.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = timeLimit; - -var _mapLimit = require('./mapLimit'); - -var _mapLimit2 = _interopRequireDefault(_mapLimit); - -var _baseRange = require('lodash/_baseRange'); - -var _baseRange2 = _interopRequireDefault(_baseRange); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [times]{@link module:ControlFlow.times} but runs a maximum of `limit` async operations at a - * time. - * - * @name timesLimit - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.times]{@link module:ControlFlow.times} - * @category Control Flow - * @param {number} count - The number of times to run the function. - * @param {number} limit - The maximum number of async operations at a time. - * @param {Function} iteratee - The function to call `n` times. Invoked with the - * iteration index and a callback (n, next). - * @param {Function} callback - see [async.map]{@link module:Collections.map}. - */ -function timeLimit(count, limit, iteratee, callback) { - (0, _mapLimit2.default)((0, _baseRange2.default)(0, count, 1), limit, iteratee, callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/timesSeries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/timesSeries.js deleted file mode 100644 index 55e112a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/timesSeries.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _timesLimit = require('./timesLimit'); - -var _timesLimit2 = _interopRequireDefault(_timesLimit); - -var _doLimit = require('./internal/doLimit'); - -var _doLimit2 = _interopRequireDefault(_doLimit); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The same as [times]{@link module:ControlFlow.times} but runs only a single async operation at a time. - * - * @name timesSeries - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.times]{@link module:ControlFlow.times} - * @category Control Flow - * @param {number} n - The number of times to run the function. - * @param {Function} iteratee - The function to call `n` times. Invoked with the - * iteration index and a callback (n, next). - * @param {Function} callback - see {@link module:Collections.map}. - */ -exports.default = (0, _doLimit2.default)(_timesLimit2.default, 1); -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/transform.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/transform.js deleted file mode 100644 index e80d1ee5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/transform.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = transform; - -var _isArray = require('lodash/isArray'); - -var _isArray2 = _interopRequireDefault(_isArray); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _eachOf = require('./eachOf'); - -var _eachOf2 = _interopRequireDefault(_eachOf); - -var _once = require('./internal/once'); - -var _once2 = _interopRequireDefault(_once); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * A relative of `reduce`. Takes an Object or Array, and iterates over each - * element in series, each step potentially mutating an `accumulator` value. - * The type of the accumulator defaults to the type of collection passed in. - * - * @name transform - * @static - * @memberOf module:Collections - * @method - * @category Collection - * @param {Array|Iterable|Object} coll - A collection to iterate over. - * @param {*} [accumulator] - The initial state of the transform. If omitted, - * it will default to an empty Object or Array, depending on the type of `coll` - * @param {Function} iteratee - A function applied to each item in the - * collection that potentially modifies the accumulator. The `iteratee` is - * passed a `callback(err)` which accepts an optional error as its first - * argument. If an error is passed to the callback, the transform is stopped - * and the main `callback` is immediately called with the error. - * Invoked with (accumulator, item, key, callback). - * @param {Function} [callback] - A callback which is called after all the - * `iteratee` functions have finished. Result is the transformed accumulator. - * Invoked with (err, result). - * @example - * - * async.transform([1,2,3], function(acc, item, index, callback) { - * // pointless async: - * process.nextTick(function() { - * acc.push(item * 2) - * callback(null) - * }); - * }, function(err, result) { - * // result is now equal to [2, 4, 6] - * }); - * - * @example - * - * async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) { - * setImmediate(function () { - * obj[key] = val * 2; - * callback(); - * }) - * }, function (err, result) { - * // result is equal to {a: 2, b: 4, c: 6} - * }) - */ -function transform(coll, accumulator, iteratee, callback) { - if (arguments.length === 3) { - callback = iteratee; - iteratee = accumulator; - accumulator = (0, _isArray2.default)(coll) ? [] : {}; - } - callback = (0, _once2.default)(callback || _noop2.default); - - (0, _eachOf2.default)(coll, function (v, k, cb) { - iteratee(accumulator, v, k, cb); - }, function (err) { - callback(err, accumulator); - }); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/unmemoize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/unmemoize.js deleted file mode 100644 index 6b25bfe6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/unmemoize.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = unmemoize; -/** - * Undoes a [memoize]{@link module:Utils.memoize}d function, reverting it to the original, - * unmemoized form. Handy for testing. - * - * @name unmemoize - * @static - * @memberOf module:Utils - * @method - * @see [async.memoize]{@link module:Utils.memoize} - * @category Util - * @param {Function} fn - the memoized function - * @returns {Function} a function that calls the original unmemoized function - */ -function unmemoize(fn) { - return function () { - return (fn.unmemoized || fn).apply(null, arguments); - }; -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/until.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/until.js deleted file mode 100644 index d895867d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/until.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = until; - -var _whilst = require('./whilst'); - -var _whilst2 = _interopRequireDefault(_whilst); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Repeatedly call `fn` until `test` returns `true`. Calls `callback` when - * stopped, or an error occurs. `callback` will be passed an error and any - * arguments passed to the final `fn`'s callback. - * - * The inverse of [whilst]{@link module:ControlFlow.whilst}. - * - * @name until - * @static - * @memberOf module:ControlFlow - * @method - * @see [async.whilst]{@link module:ControlFlow.whilst} - * @category Control Flow - * @param {Function} test - synchronous truth test to perform before each - * execution of `fn`. Invoked with (). - * @param {Function} fn - A function which is called each time `test` fails. - * The function is passed a `callback(err)`, which must be called once it has - * completed with an optional `err` argument. Invoked with (callback). - * @param {Function} [callback] - A callback which is called after the test - * function has passed and repeated execution of `fn` has stopped. `callback` - * will be passed an error and any arguments passed to the final `fn`'s - * callback. Invoked with (err, [results]); - */ -function until(test, fn, callback) { - (0, _whilst2.default)(function () { - return !test.apply(this, arguments); - }, fn, callback); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/waterfall.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/waterfall.js deleted file mode 100644 index 01ea63d7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/waterfall.js +++ /dev/null @@ -1,114 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (tasks, callback) { - callback = (0, _once2.default)(callback || _noop2.default); - if (!(0, _isArray2.default)(tasks)) return callback(new Error('First argument to waterfall must be an array of functions')); - if (!tasks.length) return callback(); - var taskIndex = 0; - - function nextTask(args) { - if (taskIndex === tasks.length) { - return callback.apply(null, [null].concat(args)); - } - - var taskCallback = (0, _onlyOnce2.default)((0, _rest2.default)(function (err, args) { - if (err) { - return callback.apply(null, [err].concat(args)); - } - nextTask(args); - })); - - args.push(taskCallback); - - var task = tasks[taskIndex++]; - task.apply(null, args); - } - - nextTask([]); -}; - -var _isArray = require('lodash/isArray'); - -var _isArray2 = _interopRequireDefault(_isArray); - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _once = require('./internal/once'); - -var _once2 = _interopRequireDefault(_once); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -var _onlyOnce = require('./internal/onlyOnce'); - -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -module.exports = exports['default']; - -/** - * Runs the `tasks` array of functions in series, each passing their results to - * the next in the array. However, if any of the `tasks` pass an error to their - * own callback, the next function is not executed, and the main `callback` is - * immediately called with the error. - * - * @name waterfall - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Array} tasks - An array of functions to run, each function is passed - * a `callback(err, result1, result2, ...)` it must call on completion. The - * first argument is an error (which can be `null`) and any further arguments - * will be passed as arguments in order to the next task. - * @param {Function} [callback] - An optional callback to run once all the - * functions have completed. This will be passed the results of the last task's - * callback. Invoked with (err, [results]). - * @returns undefined - * @example - * - * async.waterfall([ - * function(callback) { - * callback(null, 'one', 'two'); - * }, - * function(arg1, arg2, callback) { - * // arg1 now equals 'one' and arg2 now equals 'two' - * callback(null, 'three'); - * }, - * function(arg1, callback) { - * // arg1 now equals 'three' - * callback(null, 'done'); - * } - * ], function (err, result) { - * // result now equals 'done' - * }); - * - * // Or, with named functions: - * async.waterfall([ - * myFirstFunction, - * mySecondFunction, - * myLastFunction, - * ], function (err, result) { - * // result now equals 'done' - * }); - * function myFirstFunction(callback) { - * callback(null, 'one', 'two'); - * } - * function mySecondFunction(arg1, arg2, callback) { - * // arg1 now equals 'one' and arg2 now equals 'two' - * callback(null, 'three'); - * } - * function myLastFunction(arg1, callback) { - * // arg1 now equals 'three' - * callback(null, 'done'); - * } - */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/whilst.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/whilst.js deleted file mode 100644 index e81c4608..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/async/whilst.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = whilst; - -var _noop = require('lodash/noop'); - -var _noop2 = _interopRequireDefault(_noop); - -var _rest = require('lodash/rest'); - -var _rest2 = _interopRequireDefault(_rest); - -var _onlyOnce = require('./internal/onlyOnce'); - -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when - * stopped, or an error occurs. - * - * @name whilst - * @static - * @memberOf module:ControlFlow - * @method - * @category Control Flow - * @param {Function} test - synchronous truth test to perform before each - * execution of `fn`. Invoked with (). - * @param {Function} iteratee - A function which is called each time `test` passes. - * The function is passed a `callback(err)`, which must be called once it has - * completed with an optional `err` argument. Invoked with (callback). - * @param {Function} [callback] - A callback which is called after the test - * function has failed and repeated execution of `fn` has stopped. `callback` - * will be passed an error and any arguments passed to the final `fn`'s - * callback. Invoked with (err, [results]); - * @returns undefined - * @example - * - * var count = 0; - * async.whilst( - * function() { return count < 5; }, - * function(callback) { - * count++; - * setTimeout(function() { - * callback(null, count); - * }, 1000); - * }, - * function (err, n) { - * // 5 seconds have passed, n = 5 - * } - * ); - */ -function whilst(test, iteratee, callback) { - callback = (0, _onlyOnce2.default)(callback || _noop2.default); - if (!test()) return callback(null); - var next = (0, _rest2.default)(function (err, args) { - if (err) return callback(err); - if (test()) return iteratee(next); - callback.apply(null, [null].concat(args)); - }); - iteratee(next); -} -module.exports = exports['default']; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/LICENSE deleted file mode 100644 index 4182a1e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-2015 Petka Antonov - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/README.md deleted file mode 100644 index 3772161e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/README.md +++ /dev/null @@ -1,51 +0,0 @@ - - Promises/A+ logo - -[![Build Status](https://travis-ci.org/petkaantonov/bluebird.svg?branch=master)](https://travis-ci.org/petkaantonov/bluebird) -[![coverage-98%](http://img.shields.io/badge/coverage-98%-brightgreen.svg?style=flat)](http://petkaantonov.github.io/bluebird/coverage/debug/index.html) - -**Got a question?** Join us on [stackoverflow](http://stackoverflow.com/questions/tagged/bluebird), the [mailing list](https://groups.google.com/forum/#!forum/bluebird-js) or chat on [IRC](https://webchat.freenode.net/?channels=#promises) - -# Introduction - -Bluebird is a fully featured promise library with focus on innovative features and performance - -See the [**bluebird website**](http://bluebirdjs.com/docs/getting-started.html) for further documentation, references and instructions. See the [**API reference**](http://bluebirdjs.com/docs/api-reference.html) here. - -For bluebird 2.x documentation and files, see the [2.x tree](https://github.com/petkaantonov/bluebird/tree/2.x). - -# Questions and issues - -The [github issue tracker](https://github.com/petkaantonov/bluebird/issues) is **_only_** for bug reports and feature requests. Anything else, such as questions for help in using the library, should be posted in [StackOverflow](http://stackoverflow.com/questions/tagged/bluebird) under tags `promise` and `bluebird`. - - - -## Thanks - -Thanks to BrowserStack for providing us with a free account which lets us support old browsers like IE8. - -# License - -The MIT License (MIT) - -Copyright (c) 2013-2016 Petka Antonov - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/changelog.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/changelog.md deleted file mode 100644 index 73b2eb6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/changelog.md +++ /dev/null @@ -1 +0,0 @@ -[http://bluebirdjs.com/docs/changelog.html](http://bluebirdjs.com/docs/changelog.html) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.core.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.core.js deleted file mode 100644 index 9f7ff2ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.core.js +++ /dev/null @@ -1,3647 +0,0 @@ -/* @preserve - * The MIT License (MIT) - * - * Copyright (c) 2013-2015 Petka Antonov - * - * 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. - * - */ -/** - * bluebird build version 3.3.5 - * Features enabled: core - * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each -*/ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o 0) { - var fn = queue.shift(); - if (typeof fn !== "function") { - fn._settlePromises(); - continue; - } - var receiver = queue.shift(); - var arg = queue.shift(); - fn.call(receiver, arg); - } -}; - -Async.prototype._drainQueues = function () { - this._drainQueue(this._normalQueue); - this._reset(); - this._haveDrainedQueues = true; - this._drainQueue(this._lateQueue); -}; - -Async.prototype._queueTick = function () { - if (!this._isTickUsed) { - this._isTickUsed = true; - this._schedule(this.drainQueues); - } -}; - -Async.prototype._reset = function () { - this._isTickUsed = false; -}; - -module.exports = Async; -module.exports.firstLineError = firstLineError; - -},{"./queue":17,"./schedule":18,"./util":21}],2:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { -var calledBind = false; -var rejectThis = function(_, e) { - this._reject(e); -}; - -var targetRejected = function(e, context) { - context.promiseRejectionQueued = true; - context.bindingPromise._then(rejectThis, rejectThis, null, this, e); -}; - -var bindingResolved = function(thisArg, context) { - if (((this._bitField & 50397184) === 0)) { - this._resolveCallback(context.target); - } -}; - -var bindingRejected = function(e, context) { - if (!context.promiseRejectionQueued) this._reject(e); -}; - -Promise.prototype.bind = function (thisArg) { - if (!calledBind) { - calledBind = true; - Promise.prototype._propagateFrom = debug.propagateFromFunction(); - Promise.prototype._boundValue = debug.boundValueFunction(); - } - var maybePromise = tryConvertToPromise(thisArg); - var ret = new Promise(INTERNAL); - ret._propagateFrom(this, 1); - var target = this._target(); - ret._setBoundTo(maybePromise); - if (maybePromise instanceof Promise) { - var context = { - promiseRejectionQueued: false, - promise: ret, - target: target, - bindingPromise: maybePromise - }; - target._then(INTERNAL, targetRejected, undefined, ret, context); - maybePromise._then( - bindingResolved, bindingRejected, undefined, ret, context); - ret._setOnCancel(maybePromise); - } else { - ret._resolveCallback(target); - } - return ret; -}; - -Promise.prototype._setBoundTo = function (obj) { - if (obj !== undefined) { - this._bitField = this._bitField | 2097152; - this._boundTo = obj; - } else { - this._bitField = this._bitField & (~2097152); - } -}; - -Promise.prototype._isBound = function () { - return (this._bitField & 2097152) === 2097152; -}; - -Promise.bind = function (thisArg, value) { - return Promise.resolve(value).bind(thisArg); -}; -}; - -},{}],3:[function(_dereq_,module,exports){ -"use strict"; -var old; -if (typeof Promise !== "undefined") old = Promise; -function noConflict() { - try { if (Promise === bluebird) Promise = old; } - catch (e) {} - return bluebird; -} -var bluebird = _dereq_("./promise")(); -bluebird.noConflict = noConflict; -module.exports = bluebird; - -},{"./promise":15}],4:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, PromiseArray, apiRejection, debug) { -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var async = Promise._async; - -Promise.prototype["break"] = Promise.prototype.cancel = function() { - if (!debug.cancellation()) return this._warn("cancellation is disabled"); - - var promise = this; - var child = promise; - while (promise.isCancellable()) { - if (!promise._cancelBy(child)) { - if (child._isFollowing()) { - child._followee().cancel(); - } else { - child._cancelBranched(); - } - break; - } - - var parent = promise._cancellationParent; - if (parent == null || !parent.isCancellable()) { - if (promise._isFollowing()) { - promise._followee().cancel(); - } else { - promise._cancelBranched(); - } - break; - } else { - if (promise._isFollowing()) promise._followee().cancel(); - child = promise; - promise = parent; - } - } -}; - -Promise.prototype._branchHasCancelled = function() { - this._branchesRemainingToCancel--; -}; - -Promise.prototype._enoughBranchesHaveCancelled = function() { - return this._branchesRemainingToCancel === undefined || - this._branchesRemainingToCancel <= 0; -}; - -Promise.prototype._cancelBy = function(canceller) { - if (canceller === this) { - this._branchesRemainingToCancel = 0; - this._invokeOnCancel(); - return true; - } else { - this._branchHasCancelled(); - if (this._enoughBranchesHaveCancelled()) { - this._invokeOnCancel(); - return true; - } - } - return false; -}; - -Promise.prototype._cancelBranched = function() { - if (this._enoughBranchesHaveCancelled()) { - this._cancel(); - } -}; - -Promise.prototype._cancel = function() { - if (!this.isCancellable()) return; - - this._setCancelled(); - async.invoke(this._cancelPromises, this, undefined); -}; - -Promise.prototype._cancelPromises = function() { - if (this._length() > 0) this._settlePromises(); -}; - -Promise.prototype._unsetOnCancel = function() { - this._onCancelField = undefined; -}; - -Promise.prototype.isCancellable = function() { - return this.isPending() && !this.isCancelled(); -}; - -Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { - if (util.isArray(onCancelCallback)) { - for (var i = 0; i < onCancelCallback.length; ++i) { - this._doInvokeOnCancel(onCancelCallback[i], internalOnly); - } - } else if (onCancelCallback !== undefined) { - if (typeof onCancelCallback === "function") { - if (!internalOnly) { - var e = tryCatch(onCancelCallback).call(this._boundValue()); - if (e === errorObj) { - this._attachExtraTrace(e.e); - async.throwLater(e.e); - } - } - } else { - onCancelCallback._resultCancelled(this); - } - } -}; - -Promise.prototype._invokeOnCancel = function() { - var onCancelCallback = this._onCancel(); - this._unsetOnCancel(); - async.invoke(this._doInvokeOnCancel, this, onCancelCallback); -}; - -Promise.prototype._invokeInternalOnCancel = function() { - if (this.isCancellable()) { - this._doInvokeOnCancel(this._onCancel(), true); - this._unsetOnCancel(); - } -}; - -Promise.prototype._resultCancelled = function() { - this.cancel(); -}; - -}; - -},{"./util":21}],5:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(NEXT_FILTER) { -var util = _dereq_("./util"); -var getKeys = _dereq_("./es5").keys; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; - -function catchFilter(instances, cb, promise) { - return function(e) { - var boundTo = promise._boundValue(); - predicateLoop: for (var i = 0; i < instances.length; ++i) { - var item = instances[i]; - - if (item === Error || - (item != null && item.prototype instanceof Error)) { - if (e instanceof item) { - return tryCatch(cb).call(boundTo, e); - } - } else if (typeof item === "function") { - var matchesPredicate = tryCatch(item).call(boundTo, e); - if (matchesPredicate === errorObj) { - return matchesPredicate; - } else if (matchesPredicate) { - return tryCatch(cb).call(boundTo, e); - } - } else if (util.isObject(e)) { - var keys = getKeys(item); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - if (item[key] != e[key]) { - continue predicateLoop; - } - } - return tryCatch(cb).call(boundTo, e); - } - } - return NEXT_FILTER; - }; -} - -return catchFilter; -}; - -},{"./es5":10,"./util":21}],6:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -var longStackTraces = false; -var contextStack = []; - -Promise.prototype._promiseCreated = function() {}; -Promise.prototype._pushContext = function() {}; -Promise.prototype._popContext = function() {return null;}; -Promise._peekContext = Promise.prototype._peekContext = function() {}; - -function Context() { - this._trace = new Context.CapturedTrace(peekContext()); -} -Context.prototype._pushContext = function () { - if (this._trace !== undefined) { - this._trace._promiseCreated = null; - contextStack.push(this._trace); - } -}; - -Context.prototype._popContext = function () { - if (this._trace !== undefined) { - var trace = contextStack.pop(); - var ret = trace._promiseCreated; - trace._promiseCreated = null; - return ret; - } - return null; -}; - -function createContext() { - if (longStackTraces) return new Context(); -} - -function peekContext() { - var lastIndex = contextStack.length - 1; - if (lastIndex >= 0) { - return contextStack[lastIndex]; - } - return undefined; -} -Context.CapturedTrace = null; -Context.create = createContext; -Context.deactivateLongStackTraces = function() {}; -Context.activateLongStackTraces = function() { - var Promise_pushContext = Promise.prototype._pushContext; - var Promise_popContext = Promise.prototype._popContext; - var Promise_PeekContext = Promise._peekContext; - var Promise_peekContext = Promise.prototype._peekContext; - var Promise_promiseCreated = Promise.prototype._promiseCreated; - Context.deactivateLongStackTraces = function() { - Promise.prototype._pushContext = Promise_pushContext; - Promise.prototype._popContext = Promise_popContext; - Promise._peekContext = Promise_PeekContext; - Promise.prototype._peekContext = Promise_peekContext; - Promise.prototype._promiseCreated = Promise_promiseCreated; - longStackTraces = false; - }; - longStackTraces = true; - Promise.prototype._pushContext = Context.prototype._pushContext; - Promise.prototype._popContext = Context.prototype._popContext; - Promise._peekContext = Promise.prototype._peekContext = peekContext; - Promise.prototype._promiseCreated = function() { - var ctx = this._peekContext(); - if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; - }; -}; -return Context; -}; - -},{}],7:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, Context) { -var getDomain = Promise._getDomain; -var async = Promise._async; -var Warning = _dereq_("./errors").Warning; -var util = _dereq_("./util"); -var canAttachTrace = util.canAttachTrace; -var unhandledRejectionHandled; -var possiblyUnhandledRejection; -var bluebirdFramePattern = - /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; -var stackFramePattern = null; -var formatStack = null; -var indentStackFrames = false; -var printWarning; -var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && - (true || - util.env("BLUEBIRD_DEBUG") || - util.env("NODE_ENV") === "development")); - -var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && - (debugging || util.env("BLUEBIRD_WARNINGS"))); - -var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && - (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); - -var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && - (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); - -Promise.prototype.suppressUnhandledRejections = function() { - var target = this._target(); - target._bitField = ((target._bitField & (~1048576)) | - 524288); -}; - -Promise.prototype._ensurePossibleRejectionHandled = function () { - if ((this._bitField & 524288) !== 0) return; - this._setRejectionIsUnhandled(); - async.invokeLater(this._notifyUnhandledRejection, this, undefined); -}; - -Promise.prototype._notifyUnhandledRejectionIsHandled = function () { - fireRejectionEvent("rejectionHandled", - unhandledRejectionHandled, undefined, this); -}; - -Promise.prototype._setReturnedNonUndefined = function() { - this._bitField = this._bitField | 268435456; -}; - -Promise.prototype._returnedNonUndefined = function() { - return (this._bitField & 268435456) !== 0; -}; - -Promise.prototype._notifyUnhandledRejection = function () { - if (this._isRejectionUnhandled()) { - var reason = this._settledValue(); - this._setUnhandledRejectionIsNotified(); - fireRejectionEvent("unhandledRejection", - possiblyUnhandledRejection, reason, this); - } -}; - -Promise.prototype._setUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField | 262144; -}; - -Promise.prototype._unsetUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField & (~262144); -}; - -Promise.prototype._isUnhandledRejectionNotified = function () { - return (this._bitField & 262144) > 0; -}; - -Promise.prototype._setRejectionIsUnhandled = function () { - this._bitField = this._bitField | 1048576; -}; - -Promise.prototype._unsetRejectionIsUnhandled = function () { - this._bitField = this._bitField & (~1048576); - if (this._isUnhandledRejectionNotified()) { - this._unsetUnhandledRejectionIsNotified(); - this._notifyUnhandledRejectionIsHandled(); - } -}; - -Promise.prototype._isRejectionUnhandled = function () { - return (this._bitField & 1048576) > 0; -}; - -Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { - return warn(message, shouldUseOwnTrace, promise || this); -}; - -Promise.onPossiblyUnhandledRejection = function (fn) { - var domain = getDomain(); - possiblyUnhandledRejection = - typeof fn === "function" ? (domain === null ? fn : domain.bind(fn)) - : undefined; -}; - -Promise.onUnhandledRejectionHandled = function (fn) { - var domain = getDomain(); - unhandledRejectionHandled = - typeof fn === "function" ? (domain === null ? fn : domain.bind(fn)) - : undefined; -}; - -var disableLongStackTraces = function() {}; -Promise.longStackTraces = function () { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - if (!config.longStackTraces && longStackTracesIsSupported()) { - var Promise_captureStackTrace = Promise.prototype._captureStackTrace; - var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; - config.longStackTraces = true; - disableLongStackTraces = function() { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - Promise.prototype._captureStackTrace = Promise_captureStackTrace; - Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; - Context.deactivateLongStackTraces(); - async.enableTrampoline(); - config.longStackTraces = false; - }; - Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; - Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; - Context.activateLongStackTraces(); - async.disableTrampolineIfNecessary(); - } -}; - -Promise.hasLongStackTraces = function () { - return config.longStackTraces && longStackTracesIsSupported(); -}; - -var fireDomEvent = (function() { - try { - var event = document.createEvent("CustomEvent"); - event.initCustomEvent("testingtheevent", false, true, {}); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = document.createEvent("CustomEvent"); - domEvent.initCustomEvent(name.toLowerCase(), false, true, event); - return !util.global.dispatchEvent(domEvent); - }; - } catch (e) {} - return function() { - return false; - }; -})(); - -var fireGlobalEvent = (function() { - if (util.isNode) { - return function() { - return process.emit.apply(process, arguments); - }; - } else { - if (!util.global) { - return function() { - return false; - }; - } - return function(name) { - var methodName = "on" + name.toLowerCase(); - var method = util.global[methodName]; - if (!method) return false; - method.apply(util.global, [].slice.call(arguments, 1)); - return true; - }; - } -})(); - -function generatePromiseLifecycleEventObject(name, promise) { - return {promise: promise}; -} - -var eventToObjectGenerator = { - promiseCreated: generatePromiseLifecycleEventObject, - promiseFulfilled: generatePromiseLifecycleEventObject, - promiseRejected: generatePromiseLifecycleEventObject, - promiseResolved: generatePromiseLifecycleEventObject, - promiseCancelled: generatePromiseLifecycleEventObject, - promiseChained: function(name, promise, child) { - return {promise: promise, child: child}; - }, - warning: function(name, warning) { - return {warning: warning}; - }, - unhandledRejection: function (name, reason, promise) { - return {reason: reason, promise: promise}; - }, - rejectionHandled: generatePromiseLifecycleEventObject -}; - -var activeFireEvent = function (name) { - var globalEventFired = false; - try { - globalEventFired = fireGlobalEvent.apply(null, arguments); - } catch (e) { - async.throwLater(e); - globalEventFired = true; - } - - var domEventFired = false; - try { - domEventFired = fireDomEvent(name, - eventToObjectGenerator[name].apply(null, arguments)); - } catch (e) { - async.throwLater(e); - domEventFired = true; - } - - return domEventFired || globalEventFired; -}; - -Promise.config = function(opts) { - opts = Object(opts); - if ("longStackTraces" in opts) { - if (opts.longStackTraces) { - Promise.longStackTraces(); - } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { - disableLongStackTraces(); - } - } - if ("warnings" in opts) { - var warningsOption = opts.warnings; - config.warnings = !!warningsOption; - wForgottenReturn = config.warnings; - - if (util.isObject(warningsOption)) { - if ("wForgottenReturn" in warningsOption) { - wForgottenReturn = !!warningsOption.wForgottenReturn; - } - } - } - if ("cancellation" in opts && opts.cancellation && !config.cancellation) { - if (async.haveItemsQueued()) { - throw new Error( - "cannot enable cancellation after promises are in use"); - } - Promise.prototype._clearCancellationData = - cancellationClearCancellationData; - Promise.prototype._propagateFrom = cancellationPropagateFrom; - Promise.prototype._onCancel = cancellationOnCancel; - Promise.prototype._setOnCancel = cancellationSetOnCancel; - Promise.prototype._attachCancellationCallback = - cancellationAttachCancellationCallback; - Promise.prototype._execute = cancellationExecute; - propagateFromFunction = cancellationPropagateFrom; - config.cancellation = true; - } - if ("monitoring" in opts) { - if (opts.monitoring && !config.monitoring) { - config.monitoring = true; - Promise.prototype._fireEvent = activeFireEvent; - } else if (!opts.monitoring && config.monitoring) { - config.monitoring = false; - Promise.prototype._fireEvent = defaultFireEvent; - } - } -}; - -function defaultFireEvent() { return false; } - -Promise.prototype._fireEvent = defaultFireEvent; -Promise.prototype._execute = function(executor, resolve, reject) { - try { - executor(resolve, reject); - } catch (e) { - return e; - } -}; -Promise.prototype._onCancel = function () {}; -Promise.prototype._setOnCancel = function (handler) { ; }; -Promise.prototype._attachCancellationCallback = function(onCancel) { - ; -}; -Promise.prototype._captureStackTrace = function () {}; -Promise.prototype._attachExtraTrace = function () {}; -Promise.prototype._clearCancellationData = function() {}; -Promise.prototype._propagateFrom = function (parent, flags) { - ; - ; -}; - -function cancellationExecute(executor, resolve, reject) { - var promise = this; - try { - executor(resolve, reject, function(onCancel) { - if (typeof onCancel !== "function") { - throw new TypeError("onCancel must be a function, got: " + - util.toString(onCancel)); - } - promise._attachCancellationCallback(onCancel); - }); - } catch (e) { - return e; - } -} - -function cancellationAttachCancellationCallback(onCancel) { - if (!this.isCancellable()) return this; - - var previousOnCancel = this._onCancel(); - if (previousOnCancel !== undefined) { - if (util.isArray(previousOnCancel)) { - previousOnCancel.push(onCancel); - } else { - this._setOnCancel([previousOnCancel, onCancel]); - } - } else { - this._setOnCancel(onCancel); - } -} - -function cancellationOnCancel() { - return this._onCancelField; -} - -function cancellationSetOnCancel(onCancel) { - this._onCancelField = onCancel; -} - -function cancellationClearCancellationData() { - this._cancellationParent = undefined; - this._onCancelField = undefined; -} - -function cancellationPropagateFrom(parent, flags) { - if ((flags & 1) !== 0) { - this._cancellationParent = parent; - var branchesRemainingToCancel = parent._branchesRemainingToCancel; - if (branchesRemainingToCancel === undefined) { - branchesRemainingToCancel = 0; - } - parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; - } - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} - -function bindingPropagateFrom(parent, flags) { - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} -var propagateFromFunction = bindingPropagateFrom; - -function boundValueFunction() { - var ret = this._boundTo; - if (ret !== undefined) { - if (ret instanceof Promise) { - if (ret.isFulfilled()) { - return ret.value(); - } else { - return undefined; - } - } - } - return ret; -} - -function longStackTracesCaptureStackTrace() { - this._trace = new CapturedTrace(this._peekContext()); -} - -function longStackTracesAttachExtraTrace(error, ignoreSelf) { - if (canAttachTrace(error)) { - var trace = this._trace; - if (trace !== undefined) { - if (ignoreSelf) trace = trace._parent; - } - if (trace !== undefined) { - trace.attachExtraTrace(error); - } else if (!error.__stackCleaned__) { - var parsed = parseStackAndMessage(error); - util.notEnumerableProp(error, "stack", - parsed.message + "\n" + parsed.stack.join("\n")); - util.notEnumerableProp(error, "__stackCleaned__", true); - } - } -} - -function checkForgottenReturns(returnValue, promiseCreated, name, promise, - parent) { - if (returnValue === undefined && promiseCreated !== null && - wForgottenReturn) { - if (parent !== undefined && parent._returnedNonUndefined()) return; - if ((promise._bitField & 65535) === 0) return; - - if (name) name = name + " "; - var msg = "a promise was created in a " + name + - "handler but was not returned from it"; - promise._warn(msg, true, promiseCreated); - } -} - -function deprecated(name, replacement) { - var message = name + - " is deprecated and will be removed in a future version."; - if (replacement) message += " Use " + replacement + " instead."; - return warn(message); -} - -function warn(message, shouldUseOwnTrace, promise) { - if (!config.warnings) return; - var warning = new Warning(message); - var ctx; - if (shouldUseOwnTrace) { - promise._attachExtraTrace(warning); - } else if (config.longStackTraces && (ctx = Promise._peekContext())) { - ctx.attachExtraTrace(warning); - } else { - var parsed = parseStackAndMessage(warning); - warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); - } - - if (!activeFireEvent("warning", warning)) { - formatAndLogError(warning, "", true); - } -} - -function reconstructStack(message, stacks) { - for (var i = 0; i < stacks.length - 1; ++i) { - stacks[i].push("From previous event:"); - stacks[i] = stacks[i].join("\n"); - } - if (i < stacks.length) { - stacks[i] = stacks[i].join("\n"); - } - return message + "\n" + stacks.join("\n"); -} - -function removeDuplicateOrEmptyJumps(stacks) { - for (var i = 0; i < stacks.length; ++i) { - if (stacks[i].length === 0 || - ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { - stacks.splice(i, 1); - i--; - } - } -} - -function removeCommonRoots(stacks) { - var current = stacks[0]; - for (var i = 1; i < stacks.length; ++i) { - var prev = stacks[i]; - var currentLastIndex = current.length - 1; - var currentLastLine = current[currentLastIndex]; - var commonRootMeetPoint = -1; - - for (var j = prev.length - 1; j >= 0; --j) { - if (prev[j] === currentLastLine) { - commonRootMeetPoint = j; - break; - } - } - - for (var j = commonRootMeetPoint; j >= 0; --j) { - var line = prev[j]; - if (current[currentLastIndex] === line) { - current.pop(); - currentLastIndex--; - } else { - break; - } - } - current = prev; - } -} - -function cleanStack(stack) { - var ret = []; - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - var isTraceLine = " (No stack trace)" === line || - stackFramePattern.test(line); - var isInternalFrame = isTraceLine && shouldIgnore(line); - if (isTraceLine && !isInternalFrame) { - if (indentStackFrames && line.charAt(0) !== " ") { - line = " " + line; - } - ret.push(line); - } - } - return ret; -} - -function stackFramesAsArray(error) { - var stack = error.stack.replace(/\s+$/g, "").split("\n"); - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - if (" (No stack trace)" === line || stackFramePattern.test(line)) { - break; - } - } - if (i > 0) { - stack = stack.slice(i); - } - return stack; -} - -function parseStackAndMessage(error) { - var stack = error.stack; - var message = error.toString(); - stack = typeof stack === "string" && stack.length > 0 - ? stackFramesAsArray(error) : [" (No stack trace)"]; - return { - message: message, - stack: cleanStack(stack) - }; -} - -function formatAndLogError(error, title, isSoft) { - if (typeof console !== "undefined") { - var message; - if (util.isObject(error)) { - var stack = error.stack; - message = title + formatStack(stack, error); - } else { - message = title + String(error); - } - if (typeof printWarning === "function") { - printWarning(message, isSoft); - } else if (typeof console.log === "function" || - typeof console.log === "object") { - console.log(message); - } - } -} - -function fireRejectionEvent(name, localHandler, reason, promise) { - var localEventFired = false; - try { - if (typeof localHandler === "function") { - localEventFired = true; - if (name === "rejectionHandled") { - localHandler(promise); - } else { - localHandler(reason, promise); - } - } - } catch (e) { - async.throwLater(e); - } - - if (name === "unhandledRejection") { - if (!activeFireEvent(name, reason, promise) && !localEventFired) { - formatAndLogError(reason, "Unhandled rejection "); - } - } else { - activeFireEvent(name, promise); - } -} - -function formatNonError(obj) { - var str; - if (typeof obj === "function") { - str = "[function " + - (obj.name || "anonymous") + - "]"; - } else { - str = obj && typeof obj.toString === "function" - ? obj.toString() : util.toString(obj); - var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; - if (ruselessToString.test(str)) { - try { - var newStr = JSON.stringify(obj); - str = newStr; - } - catch(e) { - - } - } - if (str.length === 0) { - str = "(empty array)"; - } - } - return ("(<" + snip(str) + ">, no stack trace)"); -} - -function snip(str) { - var maxChars = 41; - if (str.length < maxChars) { - return str; - } - return str.substr(0, maxChars - 3) + "..."; -} - -function longStackTracesIsSupported() { - return typeof captureStackTrace === "function"; -} - -var shouldIgnore = function() { return false; }; -var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; -function parseLineInfo(line) { - var matches = line.match(parseLineInfoRegex); - if (matches) { - return { - fileName: matches[1], - line: parseInt(matches[2], 10) - }; - } -} - -function setBounds(firstLineError, lastLineError) { - if (!longStackTracesIsSupported()) return; - var firstStackLines = firstLineError.stack.split("\n"); - var lastStackLines = lastLineError.stack.split("\n"); - var firstIndex = -1; - var lastIndex = -1; - var firstFileName; - var lastFileName; - for (var i = 0; i < firstStackLines.length; ++i) { - var result = parseLineInfo(firstStackLines[i]); - if (result) { - firstFileName = result.fileName; - firstIndex = result.line; - break; - } - } - for (var i = 0; i < lastStackLines.length; ++i) { - var result = parseLineInfo(lastStackLines[i]); - if (result) { - lastFileName = result.fileName; - lastIndex = result.line; - break; - } - } - if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || - firstFileName !== lastFileName || firstIndex >= lastIndex) { - return; - } - - shouldIgnore = function(line) { - if (bluebirdFramePattern.test(line)) return true; - var info = parseLineInfo(line); - if (info) { - if (info.fileName === firstFileName && - (firstIndex <= info.line && info.line <= lastIndex)) { - return true; - } - } - return false; - }; -} - -function CapturedTrace(parent) { - this._parent = parent; - this._promisesCreated = 0; - var length = this._length = 1 + (parent === undefined ? 0 : parent._length); - captureStackTrace(this, CapturedTrace); - if (length > 32) this.uncycle(); -} -util.inherits(CapturedTrace, Error); -Context.CapturedTrace = CapturedTrace; - -CapturedTrace.prototype.uncycle = function() { - var length = this._length; - if (length < 2) return; - var nodes = []; - var stackToIndex = {}; - - for (var i = 0, node = this; node !== undefined; ++i) { - nodes.push(node); - node = node._parent; - } - length = this._length = i; - for (var i = length - 1; i >= 0; --i) { - var stack = nodes[i].stack; - if (stackToIndex[stack] === undefined) { - stackToIndex[stack] = i; - } - } - for (var i = 0; i < length; ++i) { - var currentStack = nodes[i].stack; - var index = stackToIndex[currentStack]; - if (index !== undefined && index !== i) { - if (index > 0) { - nodes[index - 1]._parent = undefined; - nodes[index - 1]._length = 1; - } - nodes[i]._parent = undefined; - nodes[i]._length = 1; - var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; - - if (index < length - 1) { - cycleEdgeNode._parent = nodes[index + 1]; - cycleEdgeNode._parent.uncycle(); - cycleEdgeNode._length = - cycleEdgeNode._parent._length + 1; - } else { - cycleEdgeNode._parent = undefined; - cycleEdgeNode._length = 1; - } - var currentChildLength = cycleEdgeNode._length + 1; - for (var j = i - 2; j >= 0; --j) { - nodes[j]._length = currentChildLength; - currentChildLength++; - } - return; - } - } -}; - -CapturedTrace.prototype.attachExtraTrace = function(error) { - if (error.__stackCleaned__) return; - this.uncycle(); - var parsed = parseStackAndMessage(error); - var message = parsed.message; - var stacks = [parsed.stack]; - - var trace = this; - while (trace !== undefined) { - stacks.push(cleanStack(trace.stack.split("\n"))); - trace = trace._parent; - } - removeCommonRoots(stacks); - removeDuplicateOrEmptyJumps(stacks); - util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); - util.notEnumerableProp(error, "__stackCleaned__", true); -}; - -var captureStackTrace = (function stackDetection() { - var v8stackFramePattern = /^\s*at\s*/; - var v8stackFormatter = function(stack, error) { - if (typeof stack === "string") return stack; - - if (error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - if (typeof Error.stackTraceLimit === "number" && - typeof Error.captureStackTrace === "function") { - Error.stackTraceLimit += 6; - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - var captureStackTrace = Error.captureStackTrace; - - shouldIgnore = function(line) { - return bluebirdFramePattern.test(line); - }; - return function(receiver, ignoreUntil) { - Error.stackTraceLimit += 6; - captureStackTrace(receiver, ignoreUntil); - Error.stackTraceLimit -= 6; - }; - } - var err = new Error(); - - if (typeof err.stack === "string" && - err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { - stackFramePattern = /@/; - formatStack = v8stackFormatter; - indentStackFrames = true; - return function captureStackTrace(o) { - o.stack = new Error().stack; - }; - } - - var hasStackAfterThrow; - try { throw new Error(); } - catch(e) { - hasStackAfterThrow = ("stack" in e); - } - if (!("stack" in err) && hasStackAfterThrow && - typeof Error.stackTraceLimit === "number") { - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - return function captureStackTrace(o) { - Error.stackTraceLimit += 6; - try { throw new Error(); } - catch(e) { o.stack = e.stack; } - Error.stackTraceLimit -= 6; - }; - } - - formatStack = function(stack, error) { - if (typeof stack === "string") return stack; - - if ((typeof error === "object" || - typeof error === "function") && - error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - return null; - -})([]); - -if (typeof console !== "undefined" && typeof console.warn !== "undefined") { - printWarning = function (message) { - console.warn(message); - }; - if (util.isNode && process.stderr.isTTY) { - printWarning = function(message, isSoft) { - var color = isSoft ? "\u001b[33m" : "\u001b[31m"; - console.warn(color + message + "\u001b[0m\n"); - }; - } else if (!util.isNode && typeof (new Error().stack) === "string") { - printWarning = function(message, isSoft) { - console.warn("%c" + message, - isSoft ? "color: darkorange" : "color: red"); - }; - } -} - -var config = { - warnings: warnings, - longStackTraces: false, - cancellation: false, - monitoring: false -}; - -if (longStackTraces) Promise.longStackTraces(); - -return { - longStackTraces: function() { - return config.longStackTraces; - }, - warnings: function() { - return config.warnings; - }, - cancellation: function() { - return config.cancellation; - }, - monitoring: function() { - return config.monitoring; - }, - propagateFromFunction: function() { - return propagateFromFunction; - }, - boundValueFunction: function() { - return boundValueFunction; - }, - checkForgottenReturns: checkForgottenReturns, - setBounds: setBounds, - warn: warn, - deprecated: deprecated, - CapturedTrace: CapturedTrace, - fireDomEvent: fireDomEvent, - fireGlobalEvent: fireGlobalEvent -}; -}; - -},{"./errors":9,"./util":21}],8:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -function returner() { - return this.value; -} -function thrower() { - throw this.reason; -} - -Promise.prototype["return"] = -Promise.prototype.thenReturn = function (value) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - returner, undefined, undefined, {value: value}, undefined); -}; - -Promise.prototype["throw"] = -Promise.prototype.thenThrow = function (reason) { - return this._then( - thrower, undefined, undefined, {reason: reason}, undefined); -}; - -Promise.prototype.catchThrow = function (reason) { - if (arguments.length <= 1) { - return this._then( - undefined, thrower, undefined, {reason: reason}, undefined); - } else { - var _reason = arguments[1]; - var handler = function() {throw _reason;}; - return this.caught(reason, handler); - } -}; - -Promise.prototype.catchReturn = function (value) { - if (arguments.length <= 1) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - undefined, returner, undefined, {value: value}, undefined); - } else { - var _value = arguments[1]; - if (_value instanceof Promise) _value.suppressUnhandledRejections(); - var handler = function() {return _value;}; - return this.caught(value, handler); - } -}; -}; - -},{}],9:[function(_dereq_,module,exports){ -"use strict"; -var es5 = _dereq_("./es5"); -var Objectfreeze = es5.freeze; -var util = _dereq_("./util"); -var inherits = util.inherits; -var notEnumerableProp = util.notEnumerableProp; - -function subError(nameProperty, defaultMessage) { - function SubError(message) { - if (!(this instanceof SubError)) return new SubError(message); - notEnumerableProp(this, "message", - typeof message === "string" ? message : defaultMessage); - notEnumerableProp(this, "name", nameProperty); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - Error.call(this); - } - } - inherits(SubError, Error); - return SubError; -} - -var _TypeError, _RangeError; -var Warning = subError("Warning", "warning"); -var CancellationError = subError("CancellationError", "cancellation error"); -var TimeoutError = subError("TimeoutError", "timeout error"); -var AggregateError = subError("AggregateError", "aggregate error"); -try { - _TypeError = TypeError; - _RangeError = RangeError; -} catch(e) { - _TypeError = subError("TypeError", "type error"); - _RangeError = subError("RangeError", "range error"); -} - -var methods = ("join pop push shift unshift slice filter forEach some " + - "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); - -for (var i = 0; i < methods.length; ++i) { - if (typeof Array.prototype[methods[i]] === "function") { - AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; - } -} - -es5.defineProperty(AggregateError.prototype, "length", { - value: 0, - configurable: false, - writable: true, - enumerable: true -}); -AggregateError.prototype["isOperational"] = true; -var level = 0; -AggregateError.prototype.toString = function() { - var indent = Array(level * 4 + 1).join(" "); - var ret = "\n" + indent + "AggregateError of:" + "\n"; - level++; - indent = Array(level * 4 + 1).join(" "); - for (var i = 0; i < this.length; ++i) { - var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; - var lines = str.split("\n"); - for (var j = 0; j < lines.length; ++j) { - lines[j] = indent + lines[j]; - } - str = lines.join("\n"); - ret += str + "\n"; - } - level--; - return ret; -}; - -function OperationalError(message) { - if (!(this instanceof OperationalError)) - return new OperationalError(message); - notEnumerableProp(this, "name", "OperationalError"); - notEnumerableProp(this, "message", message); - this.cause = message; - this["isOperational"] = true; - - if (message instanceof Error) { - notEnumerableProp(this, "message", message.message); - notEnumerableProp(this, "stack", message.stack); - } else if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - -} -inherits(OperationalError, Error); - -var errorTypes = Error["__BluebirdErrorTypes__"]; -if (!errorTypes) { - errorTypes = Objectfreeze({ - CancellationError: CancellationError, - TimeoutError: TimeoutError, - OperationalError: OperationalError, - RejectionError: OperationalError, - AggregateError: AggregateError - }); - es5.defineProperty(Error, "__BluebirdErrorTypes__", { - value: errorTypes, - writable: false, - enumerable: false, - configurable: false - }); -} - -module.exports = { - Error: Error, - TypeError: _TypeError, - RangeError: _RangeError, - CancellationError: errorTypes.CancellationError, - OperationalError: errorTypes.OperationalError, - TimeoutError: errorTypes.TimeoutError, - AggregateError: errorTypes.AggregateError, - Warning: Warning -}; - -},{"./es5":10,"./util":21}],10:[function(_dereq_,module,exports){ -var isES5 = (function(){ - "use strict"; - return this === undefined; -})(); - -if (isES5) { - module.exports = { - freeze: Object.freeze, - defineProperty: Object.defineProperty, - getDescriptor: Object.getOwnPropertyDescriptor, - keys: Object.keys, - names: Object.getOwnPropertyNames, - getPrototypeOf: Object.getPrototypeOf, - isArray: Array.isArray, - isES5: isES5, - propertyIsWritable: function(obj, prop) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop); - return !!(!descriptor || descriptor.writable || descriptor.set); - } - }; -} else { - var has = {}.hasOwnProperty; - var str = {}.toString; - var proto = {}.constructor.prototype; - - var ObjectKeys = function (o) { - var ret = []; - for (var key in o) { - if (has.call(o, key)) { - ret.push(key); - } - } - return ret; - }; - - var ObjectGetDescriptor = function(o, key) { - return {value: o[key]}; - }; - - var ObjectDefineProperty = function (o, key, desc) { - o[key] = desc.value; - return o; - }; - - var ObjectFreeze = function (obj) { - return obj; - }; - - var ObjectGetPrototypeOf = function (obj) { - try { - return Object(obj).constructor.prototype; - } - catch (e) { - return proto; - } - }; - - var ArrayIsArray = function (obj) { - try { - return str.call(obj) === "[object Array]"; - } - catch(e) { - return false; - } - }; - - module.exports = { - isArray: ArrayIsArray, - keys: ObjectKeys, - names: ObjectKeys, - defineProperty: ObjectDefineProperty, - getDescriptor: ObjectGetDescriptor, - freeze: ObjectFreeze, - getPrototypeOf: ObjectGetPrototypeOf, - isES5: isES5, - propertyIsWritable: function() { - return true; - } - }; -} - -},{}],11:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, tryConvertToPromise) { -var util = _dereq_("./util"); -var CancellationError = Promise.CancellationError; -var errorObj = util.errorObj; - -function PassThroughHandlerContext(promise, type, handler) { - this.promise = promise; - this.type = type; - this.handler = handler; - this.called = false; - this.cancelPromise = null; -} - -PassThroughHandlerContext.prototype.isFinallyHandler = function() { - return this.type === 0; -}; - -function FinallyHandlerCancelReaction(finallyHandler) { - this.finallyHandler = finallyHandler; -} - -FinallyHandlerCancelReaction.prototype._resultCancelled = function() { - checkCancel(this.finallyHandler); -}; - -function checkCancel(ctx, reason) { - if (ctx.cancelPromise != null) { - if (arguments.length > 1) { - ctx.cancelPromise._reject(reason); - } else { - ctx.cancelPromise._cancel(); - } - ctx.cancelPromise = null; - return true; - } - return false; -} - -function succeed() { - return finallyHandler.call(this, this.promise._target()._settledValue()); -} -function fail(reason) { - if (checkCancel(this, reason)) return; - errorObj.e = reason; - return errorObj; -} -function finallyHandler(reasonOrValue) { - var promise = this.promise; - var handler = this.handler; - - if (!this.called) { - this.called = true; - var ret = this.isFinallyHandler() - ? handler.call(promise._boundValue()) - : handler.call(promise._boundValue(), reasonOrValue); - if (ret !== undefined) { - promise._setReturnedNonUndefined(); - var maybePromise = tryConvertToPromise(ret, promise); - if (maybePromise instanceof Promise) { - if (this.cancelPromise != null) { - if (maybePromise.isCancelled()) { - var reason = - new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - errorObj.e = reason; - return errorObj; - } else if (maybePromise.isPending()) { - maybePromise._attachCancellationCallback( - new FinallyHandlerCancelReaction(this)); - } - } - return maybePromise._then( - succeed, fail, undefined, this, undefined); - } - } - } - - if (promise.isRejected()) { - checkCancel(this); - errorObj.e = reasonOrValue; - return errorObj; - } else { - checkCancel(this); - return reasonOrValue; - } -} - -Promise.prototype._passThrough = function(handler, type, success, fail) { - if (typeof handler !== "function") return this.then(); - return this._then(success, - fail, - undefined, - new PassThroughHandlerContext(this, type, handler), - undefined); -}; - -Promise.prototype.lastly = -Promise.prototype["finally"] = function (handler) { - return this._passThrough(handler, - 0, - finallyHandler, - finallyHandler); -}; - -Promise.prototype.tap = function (handler) { - return this._passThrough(handler, 1, finallyHandler); -}; - -return PassThroughHandlerContext; -}; - -},{"./util":21}],12:[function(_dereq_,module,exports){ -"use strict"; -module.exports = -function(Promise, PromiseArray, tryConvertToPromise, INTERNAL) { -var util = _dereq_("./util"); -var canEvaluate = util.canEvaluate; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var reject; - -if (!true) { -if (canEvaluate) { - var thenCallback = function(i) { - return new Function("value", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = value; \n\ - holder.checkFulfillment(this); \n\ - ".replace(/Index/g, i)); - }; - - var promiseSetter = function(i) { - return new Function("promise", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = promise; \n\ - ".replace(/Index/g, i)); - }; - - var generateHolderClass = function(total) { - var props = new Array(total); - for (var i = 0; i < props.length; ++i) { - props[i] = "this.p" + (i+1); - } - var assignment = props.join(" = ") + " = null;"; - var cancellationCode= "var promise;\n" + props.map(function(prop) { - return " \n\ - promise = " + prop + "; \n\ - if (promise instanceof Promise) { \n\ - promise.cancel(); \n\ - } \n\ - "; - }).join("\n"); - var passedArguments = props.join(", "); - var name = "Holder$" + total; - - - var code = "return function(tryCatch, errorObj, Promise) { \n\ - 'use strict'; \n\ - function [TheName](fn) { \n\ - [TheProperties] \n\ - this.fn = fn; \n\ - this.now = 0; \n\ - } \n\ - [TheName].prototype.checkFulfillment = function(promise) { \n\ - var now = ++this.now; \n\ - if (now === [TheTotal]) { \n\ - promise._pushContext(); \n\ - var callback = this.fn; \n\ - var ret = tryCatch(callback)([ThePassedArguments]); \n\ - promise._popContext(); \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(ret.e, false); \n\ - } else { \n\ - promise._resolveCallback(ret); \n\ - } \n\ - } \n\ - }; \n\ - \n\ - [TheName].prototype._resultCancelled = function() { \n\ - [CancellationCode] \n\ - }; \n\ - \n\ - return [TheName]; \n\ - }(tryCatch, errorObj, Promise); \n\ - "; - - code = code.replace(/\[TheName\]/g, name) - .replace(/\[TheTotal\]/g, total) - .replace(/\[ThePassedArguments\]/g, passedArguments) - .replace(/\[TheProperties\]/g, assignment) - .replace(/\[CancellationCode\]/g, cancellationCode); - - return new Function("tryCatch", "errorObj", "Promise", code) - (tryCatch, errorObj, Promise); - }; - - var holderClasses = []; - var thenCallbacks = []; - var promiseSetters = []; - - for (var i = 0; i < 8; ++i) { - holderClasses.push(generateHolderClass(i + 1)); - thenCallbacks.push(thenCallback(i + 1)); - promiseSetters.push(promiseSetter(i + 1)); - } - - reject = function (reason) { - this._reject(reason); - }; -}} - -Promise.join = function () { - var last = arguments.length - 1; - var fn; - if (last > 0 && typeof arguments[last] === "function") { - fn = arguments[last]; - if (!true) { - if (last <= 8 && canEvaluate) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var HolderClass = holderClasses[last - 1]; - var holder = new HolderClass(fn); - var callbacks = thenCallbacks; - - for (var i = 0; i < last; ++i) { - var maybePromise = tryConvertToPromise(arguments[i], ret); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - maybePromise._then(callbacks[i], reject, - undefined, ret, holder); - promiseSetters[i](maybePromise, holder); - } else if (((bitField & 33554432) !== 0)) { - callbacks[i].call(ret, - maybePromise._value(), holder); - } else if (((bitField & 16777216) !== 0)) { - ret._reject(maybePromise._reason()); - } else { - ret._cancel(); - } - } else { - callbacks[i].call(ret, maybePromise, holder); - } - } - if (!ret._isFateSealed()) { - ret._setAsyncGuaranteed(); - ret._setOnCancel(holder); - } - return ret; - } - } - } - var args = [].slice.call(arguments);; - if (fn) args.pop(); - var ret = new PromiseArray(args).promise(); - return fn !== undefined ? ret.spread(fn) : ret; -}; - -}; - -},{"./util":21}],13:[function(_dereq_,module,exports){ -"use strict"; -module.exports = -function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; - -Promise.method = function (fn) { - if (typeof fn !== "function") { - throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); - } - return function () { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value = tryCatch(fn).apply(this, arguments); - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.method", ret); - ret._resolveFromSyncValue(value); - return ret; - }; -}; - -Promise.attempt = Promise["try"] = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value; - if (arguments.length > 1) { - debug.deprecated("calling Promise.try with more than 1 argument"); - var arg = arguments[1]; - var ctx = arguments[2]; - value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) - : tryCatch(fn).call(ctx, arg); - } else { - value = tryCatch(fn)(); - } - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.try", ret); - ret._resolveFromSyncValue(value); - return ret; -}; - -Promise.prototype._resolveFromSyncValue = function (value) { - if (value === util.errorObj) { - this._rejectCallback(value.e, false); - } else { - this._resolveCallback(value, true); - } -}; -}; - -},{"./util":21}],14:[function(_dereq_,module,exports){ -"use strict"; -var util = _dereq_("./util"); -var maybeWrapAsError = util.maybeWrapAsError; -var errors = _dereq_("./errors"); -var OperationalError = errors.OperationalError; -var es5 = _dereq_("./es5"); - -function isUntypedError(obj) { - return obj instanceof Error && - es5.getPrototypeOf(obj) === Error.prototype; -} - -var rErrorKey = /^(?:name|message|stack|cause)$/; -function wrapAsOperationalError(obj) { - var ret; - if (isUntypedError(obj)) { - ret = new OperationalError(obj); - ret.name = obj.name; - ret.message = obj.message; - ret.stack = obj.stack; - var keys = es5.keys(obj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!rErrorKey.test(key)) { - ret[key] = obj[key]; - } - } - return ret; - } - util.markAsOriginatingFromRejection(obj); - return obj; -} - -function nodebackForPromise(promise, multiArgs) { - return function(err, value) { - if (promise === null) return; - if (err) { - var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); - promise._attachExtraTrace(wrapped); - promise._reject(wrapped); - } else if (!multiArgs) { - promise._fulfill(value); - } else { - var args = [].slice.call(arguments, 1);; - promise._fulfill(args); - } - promise = null; - }; -} - -module.exports = nodebackForPromise; - -},{"./errors":9,"./es5":10,"./util":21}],15:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function() { -var makeSelfResolutionError = function () { - return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var reflectHandler = function() { - return new Promise.PromiseInspection(this._target()); -}; -var apiRejection = function(msg) { - return Promise.reject(new TypeError(msg)); -}; -function Proxyable() {} -var UNDEFINED_BINDING = {}; -var util = _dereq_("./util"); - -var getDomain; -if (util.isNode) { - getDomain = function() { - var ret = process.domain; - if (ret === undefined) ret = null; - return ret; - }; -} else { - getDomain = function() { - return null; - }; -} -util.notEnumerableProp(Promise, "_getDomain", getDomain); - -var es5 = _dereq_("./es5"); -var Async = _dereq_("./async"); -var async = new Async(); -es5.defineProperty(Promise, "_async", {value: async}); -var errors = _dereq_("./errors"); -var TypeError = Promise.TypeError = errors.TypeError; -Promise.RangeError = errors.RangeError; -var CancellationError = Promise.CancellationError = errors.CancellationError; -Promise.TimeoutError = errors.TimeoutError; -Promise.OperationalError = errors.OperationalError; -Promise.RejectionError = errors.OperationalError; -Promise.AggregateError = errors.AggregateError; -var INTERNAL = function(){}; -var APPLY = {}; -var NEXT_FILTER = {}; -var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); -var PromiseArray = - _dereq_("./promise_array")(Promise, INTERNAL, - tryConvertToPromise, apiRejection, Proxyable); -var Context = _dereq_("./context")(Promise); - /*jshint unused:false*/ -var createContext = Context.create; -var debug = _dereq_("./debuggability")(Promise, Context); -var CapturedTrace = debug.CapturedTrace; -var PassThroughHandlerContext = - _dereq_("./finally")(Promise, tryConvertToPromise); -var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); -var nodebackForPromise = _dereq_("./nodeback"); -var errorObj = util.errorObj; -var tryCatch = util.tryCatch; -function check(self, executor) { - if (typeof executor !== "function") { - throw new TypeError("expecting a function but got " + util.classString(executor)); - } - if (self.constructor !== Promise) { - throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } -} - -function Promise(executor) { - this._bitField = 0; - this._fulfillmentHandler0 = undefined; - this._rejectionHandler0 = undefined; - this._promise0 = undefined; - this._receiver0 = undefined; - if (executor !== INTERNAL) { - check(this, executor); - this._resolveFromExecutor(executor); - } - this._promiseCreated(); - this._fireEvent("promiseCreated", this); -} - -Promise.prototype.toString = function () { - return "[object Promise]"; -}; - -Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { - var len = arguments.length; - if (len > 1) { - var catchInstances = new Array(len - 1), - j = 0, i; - for (i = 0; i < len - 1; ++i) { - var item = arguments[i]; - if (util.isObject(item)) { - catchInstances[j++] = item; - } else { - return apiRejection("expecting an object but got " + util.classString(item)); - } - } - catchInstances.length = j; - fn = arguments[i]; - return this.then(undefined, catchFilter(catchInstances, fn, this)); - } - return this.then(undefined, fn); -}; - -Promise.prototype.reflect = function () { - return this._then(reflectHandler, - reflectHandler, undefined, this, undefined); -}; - -Promise.prototype.then = function (didFulfill, didReject) { - if (debug.warnings() && arguments.length > 0 && - typeof didFulfill !== "function" && - typeof didReject !== "function") { - var msg = ".then() only accepts functions but was passed: " + - util.classString(didFulfill); - if (arguments.length > 1) { - msg += ", " + util.classString(didReject); - } - this._warn(msg); - } - return this._then(didFulfill, didReject, undefined, undefined, undefined); -}; - -Promise.prototype.done = function (didFulfill, didReject) { - var promise = - this._then(didFulfill, didReject, undefined, undefined, undefined); - promise._setIsFinal(); -}; - -Promise.prototype.spread = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - return this.all()._then(fn, undefined, undefined, APPLY, undefined); -}; - -Promise.prototype.toJSON = function () { - var ret = { - isFulfilled: false, - isRejected: false, - fulfillmentValue: undefined, - rejectionReason: undefined - }; - if (this.isFulfilled()) { - ret.fulfillmentValue = this.value(); - ret.isFulfilled = true; - } else if (this.isRejected()) { - ret.rejectionReason = this.reason(); - ret.isRejected = true; - } - return ret; -}; - -Promise.prototype.all = function () { - if (arguments.length > 0) { - this._warn(".all() was passed arguments but it does not take any"); - } - return new PromiseArray(this).promise(); -}; - -Promise.prototype.error = function (fn) { - return this.caught(util.originatesFromRejection, fn); -}; - -Promise.is = function (val) { - return val instanceof Promise; -}; - -Promise.fromNode = Promise.fromCallback = function(fn) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs - : false; - var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); - if (result === errorObj) { - ret._rejectCallback(result.e, true); - } - if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); - return ret; -}; - -Promise.all = function (promises) { - return new PromiseArray(promises).promise(); -}; - -Promise.cast = function (obj) { - var ret = tryConvertToPromise(obj); - if (!(ret instanceof Promise)) { - ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._setFulfilled(); - ret._rejectionHandler0 = obj; - } - return ret; -}; - -Promise.resolve = Promise.fulfilled = Promise.cast; - -Promise.reject = Promise.rejected = function (reason) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._rejectCallback(reason, true); - return ret; -}; - -Promise.setScheduler = function(fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - return async.setScheduler(fn); -}; - -Promise.prototype._then = function ( - didFulfill, - didReject, - _, receiver, - internalData -) { - var haveInternalData = internalData !== undefined; - var promise = haveInternalData ? internalData : new Promise(INTERNAL); - var target = this._target(); - var bitField = target._bitField; - - if (!haveInternalData) { - promise._propagateFrom(this, 3); - promise._captureStackTrace(); - if (receiver === undefined && - ((this._bitField & 2097152) !== 0)) { - if (!((bitField & 50397184) === 0)) { - receiver = this._boundValue(); - } else { - receiver = target === this ? undefined : this._boundTo; - } - } - this._fireEvent("promiseChained", this, promise); - } - - var domain = getDomain(); - if (!((bitField & 50397184) === 0)) { - var handler, value, settler = target._settlePromiseCtx; - if (((bitField & 33554432) !== 0)) { - value = target._rejectionHandler0; - handler = didFulfill; - } else if (((bitField & 16777216) !== 0)) { - value = target._fulfillmentHandler0; - handler = didReject; - target._unsetRejectionIsUnhandled(); - } else { - settler = target._settlePromiseLateCancellationObserver; - value = new CancellationError("late cancellation observer"); - target._attachExtraTrace(value); - handler = didReject; - } - - async.invoke(settler, target, { - handler: domain === null ? handler - : (typeof handler === "function" && domain.bind(handler)), - promise: promise, - receiver: receiver, - value: value - }); - } else { - target._addCallbacks(didFulfill, didReject, promise, receiver, domain); - } - - return promise; -}; - -Promise.prototype._length = function () { - return this._bitField & 65535; -}; - -Promise.prototype._isFateSealed = function () { - return (this._bitField & 117506048) !== 0; -}; - -Promise.prototype._isFollowing = function () { - return (this._bitField & 67108864) === 67108864; -}; - -Promise.prototype._setLength = function (len) { - this._bitField = (this._bitField & -65536) | - (len & 65535); -}; - -Promise.prototype._setFulfilled = function () { - this._bitField = this._bitField | 33554432; - this._fireEvent("promiseFulfilled", this); -}; - -Promise.prototype._setRejected = function () { - this._bitField = this._bitField | 16777216; - this._fireEvent("promiseRejected", this); -}; - -Promise.prototype._setFollowing = function () { - this._bitField = this._bitField | 67108864; - this._fireEvent("promiseResolved", this); -}; - -Promise.prototype._setIsFinal = function () { - this._bitField = this._bitField | 4194304; -}; - -Promise.prototype._isFinal = function () { - return (this._bitField & 4194304) > 0; -}; - -Promise.prototype._unsetCancelled = function() { - this._bitField = this._bitField & (~65536); -}; - -Promise.prototype._setCancelled = function() { - this._bitField = this._bitField | 65536; - this._fireEvent("promiseCancelled", this); -}; - -Promise.prototype._setAsyncGuaranteed = function() { - if (async.hasCustomScheduler()) return; - this._bitField = this._bitField | 134217728; -}; - -Promise.prototype._receiverAt = function (index) { - var ret = index === 0 ? this._receiver0 : this[ - index * 4 - 4 + 3]; - if (ret === UNDEFINED_BINDING) { - return undefined; - } else if (ret === undefined && this._isBound()) { - return this._boundValue(); - } - return ret; -}; - -Promise.prototype._promiseAt = function (index) { - return this[ - index * 4 - 4 + 2]; -}; - -Promise.prototype._fulfillmentHandlerAt = function (index) { - return this[ - index * 4 - 4 + 0]; -}; - -Promise.prototype._rejectionHandlerAt = function (index) { - return this[ - index * 4 - 4 + 1]; -}; - -Promise.prototype._boundValue = function() {}; - -Promise.prototype._migrateCallback0 = function (follower) { - var bitField = follower._bitField; - var fulfill = follower._fulfillmentHandler0; - var reject = follower._rejectionHandler0; - var promise = follower._promise0; - var receiver = follower._receiverAt(0); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._migrateCallbackAt = function (follower, index) { - var fulfill = follower._fulfillmentHandlerAt(index); - var reject = follower._rejectionHandlerAt(index); - var promise = follower._promiseAt(index); - var receiver = follower._receiverAt(index); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._addCallbacks = function ( - fulfill, - reject, - promise, - receiver, - domain -) { - var index = this._length(); - - if (index >= 65535 - 4) { - index = 0; - this._setLength(0); - } - - if (index === 0) { - this._promise0 = promise; - this._receiver0 = receiver; - if (typeof fulfill === "function") { - this._fulfillmentHandler0 = - domain === null ? fulfill : domain.bind(fulfill); - } - if (typeof reject === "function") { - this._rejectionHandler0 = - domain === null ? reject : domain.bind(reject); - } - } else { - var base = index * 4 - 4; - this[base + 2] = promise; - this[base + 3] = receiver; - if (typeof fulfill === "function") { - this[base + 0] = - domain === null ? fulfill : domain.bind(fulfill); - } - if (typeof reject === "function") { - this[base + 1] = - domain === null ? reject : domain.bind(reject); - } - } - this._setLength(index + 1); - return index; -}; - -Promise.prototype._proxy = function (proxyable, arg) { - this._addCallbacks(undefined, undefined, arg, proxyable, null); -}; - -Promise.prototype._resolveCallback = function(value, shouldBind) { - if (((this._bitField & 117506048) !== 0)) return; - if (value === this) - return this._rejectCallback(makeSelfResolutionError(), false); - var maybePromise = tryConvertToPromise(value, this); - if (!(maybePromise instanceof Promise)) return this._fulfill(value); - - if (shouldBind) this._propagateFrom(maybePromise, 2); - - var promise = maybePromise._target(); - - if (promise === this) { - this._reject(makeSelfResolutionError()); - return; - } - - var bitField = promise._bitField; - if (((bitField & 50397184) === 0)) { - var len = this._length(); - if (len > 0) promise._migrateCallback0(this); - for (var i = 1; i < len; ++i) { - promise._migrateCallbackAt(this, i); - } - this._setFollowing(); - this._setLength(0); - this._setFollowee(promise); - } else if (((bitField & 33554432) !== 0)) { - this._fulfill(promise._value()); - } else if (((bitField & 16777216) !== 0)) { - this._reject(promise._reason()); - } else { - var reason = new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - this._reject(reason); - } -}; - -Promise.prototype._rejectCallback = -function(reason, synchronous, ignoreNonErrorWarnings) { - var trace = util.ensureErrorObject(reason); - var hasStack = trace === reason; - if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { - var message = "a promise was rejected with a non-error: " + - util.classString(reason); - this._warn(message, true); - } - this._attachExtraTrace(trace, synchronous ? hasStack : false); - this._reject(reason); -}; - -Promise.prototype._resolveFromExecutor = function (executor) { - var promise = this; - this._captureStackTrace(); - this._pushContext(); - var synchronous = true; - var r = this._execute(executor, function(value) { - promise._resolveCallback(value); - }, function (reason) { - promise._rejectCallback(reason, synchronous); - }); - synchronous = false; - this._popContext(); - - if (r !== undefined) { - promise._rejectCallback(r, true); - } -}; - -Promise.prototype._settlePromiseFromHandler = function ( - handler, receiver, value, promise -) { - var bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - promise._pushContext(); - var x; - if (receiver === APPLY) { - if (!value || typeof value.length !== "number") { - x = errorObj; - x.e = new TypeError("cannot .spread() a non-array: " + - util.classString(value)); - } else { - x = tryCatch(handler).apply(this._boundValue(), value); - } - } else { - x = tryCatch(handler).call(receiver, value); - } - var promiseCreated = promise._popContext(); - bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - - if (x === NEXT_FILTER) { - promise._reject(value); - } else if (x === errorObj) { - promise._rejectCallback(x.e, false); - } else { - debug.checkForgottenReturns(x, promiseCreated, "", promise, this); - promise._resolveCallback(x); - } -}; - -Promise.prototype._target = function() { - var ret = this; - while (ret._isFollowing()) ret = ret._followee(); - return ret; -}; - -Promise.prototype._followee = function() { - return this._rejectionHandler0; -}; - -Promise.prototype._setFollowee = function(promise) { - this._rejectionHandler0 = promise; -}; - -Promise.prototype._settlePromise = function(promise, handler, receiver, value) { - var isPromise = promise instanceof Promise; - var bitField = this._bitField; - var asyncGuaranteed = ((bitField & 134217728) !== 0); - if (((bitField & 65536) !== 0)) { - if (isPromise) promise._invokeInternalOnCancel(); - - if (receiver instanceof PassThroughHandlerContext && - receiver.isFinallyHandler()) { - receiver.cancelPromise = promise; - if (tryCatch(handler).call(receiver, value) === errorObj) { - promise._reject(errorObj.e); - } - } else if (handler === reflectHandler) { - promise._fulfill(reflectHandler.call(receiver)); - } else if (receiver instanceof Proxyable) { - receiver._promiseCancelled(promise); - } else if (isPromise || promise instanceof PromiseArray) { - promise._cancel(); - } else { - receiver.cancel(); - } - } else if (typeof handler === "function") { - if (!isPromise) { - handler.call(receiver, value, promise); - } else { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (receiver instanceof Proxyable) { - if (!receiver._isResolved()) { - if (((bitField & 33554432) !== 0)) { - receiver._promiseFulfilled(value, promise); - } else { - receiver._promiseRejected(value, promise); - } - } - } else if (isPromise) { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - if (((bitField & 33554432) !== 0)) { - promise._fulfill(value); - } else { - promise._reject(value); - } - } -}; - -Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { - var handler = ctx.handler; - var promise = ctx.promise; - var receiver = ctx.receiver; - var value = ctx.value; - if (typeof handler === "function") { - if (!(promise instanceof Promise)) { - handler.call(receiver, value, promise); - } else { - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (promise instanceof Promise) { - promise._reject(value); - } -}; - -Promise.prototype._settlePromiseCtx = function(ctx) { - this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); -}; - -Promise.prototype._settlePromise0 = function(handler, value, bitField) { - var promise = this._promise0; - var receiver = this._receiverAt(0); - this._promise0 = undefined; - this._receiver0 = undefined; - this._settlePromise(promise, handler, receiver, value); -}; - -Promise.prototype._clearCallbackDataAtIndex = function(index) { - var base = index * 4 - 4; - this[base + 2] = - this[base + 3] = - this[base + 0] = - this[base + 1] = undefined; -}; - -Promise.prototype._fulfill = function (value) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - if (value === this) { - var err = makeSelfResolutionError(); - this._attachExtraTrace(err); - return this._reject(err); - } - this._setFulfilled(); - this._rejectionHandler0 = value; - - if ((bitField & 65535) > 0) { - if (((bitField & 134217728) !== 0)) { - this._settlePromises(); - } else { - async.settlePromises(this); - } - } -}; - -Promise.prototype._reject = function (reason) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - this._setRejected(); - this._fulfillmentHandler0 = reason; - - if (this._isFinal()) { - return async.fatalError(reason, util.isNode); - } - - if ((bitField & 65535) > 0) { - async.settlePromises(this); - } else { - this._ensurePossibleRejectionHandled(); - } -}; - -Promise.prototype._fulfillPromises = function (len, value) { - for (var i = 1; i < len; i++) { - var handler = this._fulfillmentHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, value); - } -}; - -Promise.prototype._rejectPromises = function (len, reason) { - for (var i = 1; i < len; i++) { - var handler = this._rejectionHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, reason); - } -}; - -Promise.prototype._settlePromises = function () { - var bitField = this._bitField; - var len = (bitField & 65535); - - if (len > 0) { - if (((bitField & 16842752) !== 0)) { - var reason = this._fulfillmentHandler0; - this._settlePromise0(this._rejectionHandler0, reason, bitField); - this._rejectPromises(len, reason); - } else { - var value = this._rejectionHandler0; - this._settlePromise0(this._fulfillmentHandler0, value, bitField); - this._fulfillPromises(len, value); - } - this._setLength(0); - } - this._clearCancellationData(); -}; - -Promise.prototype._settledValue = function() { - var bitField = this._bitField; - if (((bitField & 33554432) !== 0)) { - return this._rejectionHandler0; - } else if (((bitField & 16777216) !== 0)) { - return this._fulfillmentHandler0; - } -}; - -function deferResolve(v) {this.promise._resolveCallback(v);} -function deferReject(v) {this.promise._rejectCallback(v, false);} - -Promise.defer = Promise.pending = function() { - debug.deprecated("Promise.defer", "new Promise"); - var promise = new Promise(INTERNAL); - return { - promise: promise, - resolve: deferResolve, - reject: deferReject - }; -}; - -util.notEnumerableProp(Promise, - "_makeSelfResolutionError", - makeSelfResolutionError); - -_dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, - debug); -_dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); -_dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); -_dereq_("./direct_resolve")(Promise); -_dereq_("./synchronous_inspection")(Promise); -_dereq_("./join")( - Promise, PromiseArray, tryConvertToPromise, INTERNAL, debug); -Promise.Promise = Promise; - - util.toFastProperties(Promise); - util.toFastProperties(Promise.prototype); - function fillTypes(value) { - var p = new Promise(INTERNAL); - p._fulfillmentHandler0 = value; - p._rejectionHandler0 = value; - p._promise0 = value; - p._receiver0 = value; - } - // Complete slack tracking, opt out of field-type tracking and - // stabilize map - fillTypes({a: 1}); - fillTypes({b: 2}); - fillTypes({c: 3}); - fillTypes(1); - fillTypes(function(){}); - fillTypes(undefined); - fillTypes(false); - fillTypes(new Promise(INTERNAL)); - debug.setBounds(Async.firstLineError, util.lastLineError); - return Promise; - -}; - -},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, - apiRejection, Proxyable) { -var util = _dereq_("./util"); -var isArray = util.isArray; - -function toResolutionValue(val) { - switch(val) { - case -2: return []; - case -3: return {}; - } -} - -function PromiseArray(values) { - var promise = this._promise = new Promise(INTERNAL); - if (values instanceof Promise) { - promise._propagateFrom(values, 3); - } - promise._setOnCancel(this); - this._values = values; - this._length = 0; - this._totalResolved = 0; - this._init(undefined, -2); -} -util.inherits(PromiseArray, Proxyable); - -PromiseArray.prototype.length = function () { - return this._length; -}; - -PromiseArray.prototype.promise = function () { - return this._promise; -}; - -PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { - var values = tryConvertToPromise(this._values, this._promise); - if (values instanceof Promise) { - values = values._target(); - var bitField = values._bitField; - ; - this._values = values; - - if (((bitField & 50397184) === 0)) { - this._promise._setAsyncGuaranteed(); - return values._then( - init, - this._reject, - undefined, - this, - resolveValueIfEmpty - ); - } else if (((bitField & 33554432) !== 0)) { - values = values._value(); - } else if (((bitField & 16777216) !== 0)) { - return this._reject(values._reason()); - } else { - return this._cancel(); - } - } - values = util.asArray(values); - if (values === null) { - var err = apiRejection( - "expecting an array or an iterable object but got " + util.classString(values)).reason(); - this._promise._rejectCallback(err, false); - return; - } - - if (values.length === 0) { - if (resolveValueIfEmpty === -5) { - this._resolveEmptyArray(); - } - else { - this._resolve(toResolutionValue(resolveValueIfEmpty)); - } - return; - } - this._iterate(values); -}; - -PromiseArray.prototype._iterate = function(values) { - var len = this.getActualLength(values.length); - this._length = len; - this._values = this.shouldCopyValues() ? new Array(len) : this._values; - var result = this._promise; - var isResolved = false; - var bitField = null; - for (var i = 0; i < len; ++i) { - var maybePromise = tryConvertToPromise(values[i], result); - - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - bitField = maybePromise._bitField; - } else { - bitField = null; - } - - if (isResolved) { - if (bitField !== null) { - maybePromise.suppressUnhandledRejections(); - } - } else if (bitField !== null) { - if (((bitField & 50397184) === 0)) { - maybePromise._proxy(this, i); - this._values[i] = maybePromise; - } else if (((bitField & 33554432) !== 0)) { - isResolved = this._promiseFulfilled(maybePromise._value(), i); - } else if (((bitField & 16777216) !== 0)) { - isResolved = this._promiseRejected(maybePromise._reason(), i); - } else { - isResolved = this._promiseCancelled(i); - } - } else { - isResolved = this._promiseFulfilled(maybePromise, i); - } - } - if (!isResolved) result._setAsyncGuaranteed(); -}; - -PromiseArray.prototype._isResolved = function () { - return this._values === null; -}; - -PromiseArray.prototype._resolve = function (value) { - this._values = null; - this._promise._fulfill(value); -}; - -PromiseArray.prototype._cancel = function() { - if (this._isResolved() || !this._promise.isCancellable()) return; - this._values = null; - this._promise._cancel(); -}; - -PromiseArray.prototype._reject = function (reason) { - this._values = null; - this._promise._rejectCallback(reason, false); -}; - -PromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; -}; - -PromiseArray.prototype._promiseCancelled = function() { - this._cancel(); - return true; -}; - -PromiseArray.prototype._promiseRejected = function (reason) { - this._totalResolved++; - this._reject(reason); - return true; -}; - -PromiseArray.prototype._resultCancelled = function() { - if (this._isResolved()) return; - var values = this._values; - this._cancel(); - if (values instanceof Promise) { - values.cancel(); - } else { - for (var i = 0; i < values.length; ++i) { - if (values[i] instanceof Promise) { - values[i].cancel(); - } - } - } -}; - -PromiseArray.prototype.shouldCopyValues = function () { - return true; -}; - -PromiseArray.prototype.getActualLength = function (len) { - return len; -}; - -return PromiseArray; -}; - -},{"./util":21}],17:[function(_dereq_,module,exports){ -"use strict"; -function arrayMove(src, srcIndex, dst, dstIndex, len) { - for (var j = 0; j < len; ++j) { - dst[j + dstIndex] = src[j + srcIndex]; - src[j + srcIndex] = void 0; - } -} - -function Queue(capacity) { - this._capacity = capacity; - this._length = 0; - this._front = 0; -} - -Queue.prototype._willBeOverCapacity = function (size) { - return this._capacity < size; -}; - -Queue.prototype._pushOne = function (arg) { - var length = this.length(); - this._checkCapacity(length + 1); - var i = (this._front + length) & (this._capacity - 1); - this[i] = arg; - this._length = length + 1; -}; - -Queue.prototype._unshiftOne = function(value) { - var capacity = this._capacity; - this._checkCapacity(this.length() + 1); - var front = this._front; - var i = (((( front - 1 ) & - ( capacity - 1) ) ^ capacity ) - capacity ); - this[i] = value; - this._front = i; - this._length = this.length() + 1; -}; - -Queue.prototype.unshift = function(fn, receiver, arg) { - this._unshiftOne(arg); - this._unshiftOne(receiver); - this._unshiftOne(fn); -}; - -Queue.prototype.push = function (fn, receiver, arg) { - var length = this.length() + 3; - if (this._willBeOverCapacity(length)) { - this._pushOne(fn); - this._pushOne(receiver); - this._pushOne(arg); - return; - } - var j = this._front + length - 3; - this._checkCapacity(length); - var wrapMask = this._capacity - 1; - this[(j + 0) & wrapMask] = fn; - this[(j + 1) & wrapMask] = receiver; - this[(j + 2) & wrapMask] = arg; - this._length = length; -}; - -Queue.prototype.shift = function () { - var front = this._front, - ret = this[front]; - - this[front] = undefined; - this._front = (front + 1) & (this._capacity - 1); - this._length--; - return ret; -}; - -Queue.prototype.length = function () { - return this._length; -}; - -Queue.prototype._checkCapacity = function (size) { - if (this._capacity < size) { - this._resizeTo(this._capacity << 1); - } -}; - -Queue.prototype._resizeTo = function (capacity) { - var oldCapacity = this._capacity; - this._capacity = capacity; - var front = this._front; - var length = this._length; - var moveItemsCount = (front + length) & (oldCapacity - 1); - arrayMove(this, 0, this, oldCapacity, moveItemsCount); -}; - -module.exports = Queue; - -},{}],18:[function(_dereq_,module,exports){ -"use strict"; -var util = _dereq_("./util"); -var schedule; -var noAsyncScheduler = function() { - throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var NativePromise = util.getNativePromise(); -if (util.isNode && typeof MutationObserver === "undefined") { - var GlobalSetImmediate = global.setImmediate; - var ProcessNextTick = process.nextTick; - schedule = util.isRecentNode - ? function(fn) { GlobalSetImmediate.call(global, fn); } - : function(fn) { ProcessNextTick.call(process, fn); }; -} else if (typeof NativePromise === "function") { - var nativePromise = NativePromise.resolve(); - schedule = function(fn) { - nativePromise.then(fn); - }; -} else if ((typeof MutationObserver !== "undefined") && - !(typeof window !== "undefined" && - window.navigator && - window.navigator.standalone)) { - schedule = (function() { - var div = document.createElement("div"); - var opts = {attributes: true}; - var toggleScheduled = false; - var div2 = document.createElement("div"); - var o2 = new MutationObserver(function() { - div.classList.toggle("foo"); - toggleScheduled = false; - }); - o2.observe(div2, opts); - - var scheduleToggle = function() { - if (toggleScheduled) return; - toggleScheduled = true; - div2.classList.toggle("foo"); - }; - - return function schedule(fn) { - var o = new MutationObserver(function() { - o.disconnect(); - fn(); - }); - o.observe(div, opts); - scheduleToggle(); - }; - })(); -} else if (typeof setImmediate !== "undefined") { - schedule = function (fn) { - setImmediate(fn); - }; -} else if (typeof setTimeout !== "undefined") { - schedule = function (fn) { - setTimeout(fn, 0); - }; -} else { - schedule = noAsyncScheduler; -} -module.exports = schedule; - -},{"./util":21}],19:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -function PromiseInspection(promise) { - if (promise !== undefined) { - promise = promise._target(); - this._bitField = promise._bitField; - this._settledValueField = promise._isFateSealed() - ? promise._settledValue() : undefined; - } - else { - this._bitField = 0; - this._settledValueField = undefined; - } -} - -PromiseInspection.prototype._settledValue = function() { - return this._settledValueField; -}; - -var value = PromiseInspection.prototype.value = function () { - if (!this.isFulfilled()) { - throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var reason = PromiseInspection.prototype.error = -PromiseInspection.prototype.reason = function () { - if (!this.isRejected()) { - throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { - return (this._bitField & 33554432) !== 0; -}; - -var isRejected = PromiseInspection.prototype.isRejected = function () { - return (this._bitField & 16777216) !== 0; -}; - -var isPending = PromiseInspection.prototype.isPending = function () { - return (this._bitField & 50397184) === 0; -}; - -var isResolved = PromiseInspection.prototype.isResolved = function () { - return (this._bitField & 50331648) !== 0; -}; - -PromiseInspection.prototype.isCancelled = -Promise.prototype._isCancelled = function() { - return (this._bitField & 65536) === 65536; -}; - -Promise.prototype.isCancelled = function() { - return this._target()._isCancelled(); -}; - -Promise.prototype.isPending = function() { - return isPending.call(this._target()); -}; - -Promise.prototype.isRejected = function() { - return isRejected.call(this._target()); -}; - -Promise.prototype.isFulfilled = function() { - return isFulfilled.call(this._target()); -}; - -Promise.prototype.isResolved = function() { - return isResolved.call(this._target()); -}; - -Promise.prototype.value = function() { - return value.call(this._target()); -}; - -Promise.prototype.reason = function() { - var target = this._target(); - target._unsetRejectionIsUnhandled(); - return reason.call(target); -}; - -Promise.prototype._value = function() { - return this._settledValue(); -}; - -Promise.prototype._reason = function() { - this._unsetRejectionIsUnhandled(); - return this._settledValue(); -}; - -Promise.PromiseInspection = PromiseInspection; -}; - -},{}],20:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var util = _dereq_("./util"); -var errorObj = util.errorObj; -var isObject = util.isObject; - -function tryConvertToPromise(obj, context) { - if (isObject(obj)) { - if (obj instanceof Promise) return obj; - var then = getThen(obj); - if (then === errorObj) { - if (context) context._pushContext(); - var ret = Promise.reject(then.e); - if (context) context._popContext(); - return ret; - } else if (typeof then === "function") { - if (isAnyBluebirdPromise(obj)) { - var ret = new Promise(INTERNAL); - obj._then( - ret._fulfill, - ret._reject, - undefined, - ret, - null - ); - return ret; - } - return doThenable(obj, then, context); - } - } - return obj; -} - -function doGetThen(obj) { - return obj.then; -} - -function getThen(obj) { - try { - return doGetThen(obj); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} - -var hasProp = {}.hasOwnProperty; -function isAnyBluebirdPromise(obj) { - return hasProp.call(obj, "_promise0"); -} - -function doThenable(x, then, context) { - var promise = new Promise(INTERNAL); - var ret = promise; - if (context) context._pushContext(); - promise._captureStackTrace(); - if (context) context._popContext(); - var synchronous = true; - var result = util.tryCatch(then).call(x, resolve, reject); - synchronous = false; - - if (promise && result === errorObj) { - promise._rejectCallback(result.e, true, true); - promise = null; - } - - function resolve(value) { - if (!promise) return; - promise._resolveCallback(value); - promise = null; - } - - function reject(reason) { - if (!promise) return; - promise._rejectCallback(reason, synchronous, true); - promise = null; - } - return ret; -} - -return tryConvertToPromise; -}; - -},{"./util":21}],21:[function(_dereq_,module,exports){ -"use strict"; -var es5 = _dereq_("./es5"); -var canEvaluate = typeof navigator == "undefined"; - -var errorObj = {e: {}}; -var tryCatchTarget; -var globalObject = typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : - typeof global !== "undefined" ? global : - this !== undefined ? this : null; - -function tryCatcher() { - try { - var target = tryCatchTarget; - tryCatchTarget = null; - return target.apply(this, arguments); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} -function tryCatch(fn) { - tryCatchTarget = fn; - return tryCatcher; -} - -var inherits = function(Child, Parent) { - var hasProp = {}.hasOwnProperty; - - function T() { - this.constructor = Child; - this.constructor$ = Parent; - for (var propertyName in Parent.prototype) { - if (hasProp.call(Parent.prototype, propertyName) && - propertyName.charAt(propertyName.length-1) !== "$" - ) { - this[propertyName + "$"] = Parent.prototype[propertyName]; - } - } - } - T.prototype = Parent.prototype; - Child.prototype = new T(); - return Child.prototype; -}; - - -function isPrimitive(val) { - return val == null || val === true || val === false || - typeof val === "string" || typeof val === "number"; - -} - -function isObject(value) { - return typeof value === "function" || - typeof value === "object" && value !== null; -} - -function maybeWrapAsError(maybeError) { - if (!isPrimitive(maybeError)) return maybeError; - - return new Error(safeToString(maybeError)); -} - -function withAppended(target, appendee) { - var len = target.length; - var ret = new Array(len + 1); - var i; - for (i = 0; i < len; ++i) { - ret[i] = target[i]; - } - ret[i] = appendee; - return ret; -} - -function getDataPropertyOrDefault(obj, key, defaultValue) { - if (es5.isES5) { - var desc = Object.getOwnPropertyDescriptor(obj, key); - - if (desc != null) { - return desc.get == null && desc.set == null - ? desc.value - : defaultValue; - } - } else { - return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; - } -} - -function notEnumerableProp(obj, name, value) { - if (isPrimitive(obj)) return obj; - var descriptor = { - value: value, - configurable: true, - enumerable: false, - writable: true - }; - es5.defineProperty(obj, name, descriptor); - return obj; -} - -function thrower(r) { - throw r; -} - -var inheritedDataKeys = (function() { - var excludedPrototypes = [ - Array.prototype, - Object.prototype, - Function.prototype - ]; - - var isExcludedProto = function(val) { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (excludedPrototypes[i] === val) { - return true; - } - } - return false; - }; - - if (es5.isES5) { - var getKeys = Object.getOwnPropertyNames; - return function(obj) { - var ret = []; - var visitedKeys = Object.create(null); - while (obj != null && !isExcludedProto(obj)) { - var keys; - try { - keys = getKeys(obj); - } catch (e) { - return ret; - } - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (visitedKeys[key]) continue; - visitedKeys[key] = true; - var desc = Object.getOwnPropertyDescriptor(obj, key); - if (desc != null && desc.get == null && desc.set == null) { - ret.push(key); - } - } - obj = es5.getPrototypeOf(obj); - } - return ret; - }; - } else { - var hasProp = {}.hasOwnProperty; - return function(obj) { - if (isExcludedProto(obj)) return []; - var ret = []; - - /*jshint forin:false */ - enumeration: for (var key in obj) { - if (hasProp.call(obj, key)) { - ret.push(key); - } else { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (hasProp.call(excludedPrototypes[i], key)) { - continue enumeration; - } - } - ret.push(key); - } - } - return ret; - }; - } - -})(); - -var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; -function isClass(fn) { - try { - if (typeof fn === "function") { - var keys = es5.names(fn.prototype); - - var hasMethods = es5.isES5 && keys.length > 1; - var hasMethodsOtherThanConstructor = keys.length > 0 && - !(keys.length === 1 && keys[0] === "constructor"); - var hasThisAssignmentAndStaticMethods = - thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; - - if (hasMethods || hasMethodsOtherThanConstructor || - hasThisAssignmentAndStaticMethods) { - return true; - } - } - return false; - } catch (e) { - return false; - } -} - -function toFastProperties(obj) { - /*jshint -W027,-W055,-W031*/ - function FakeConstructor() {} - FakeConstructor.prototype = obj; - var l = 8; - while (l--) new FakeConstructor(); - return obj; - eval(obj); -} - -var rident = /^[a-z$_][a-z$_0-9]*$/i; -function isIdentifier(str) { - return rident.test(str); -} - -function filledRange(count, prefix, suffix) { - var ret = new Array(count); - for(var i = 0; i < count; ++i) { - ret[i] = prefix + i + suffix; - } - return ret; -} - -function safeToString(obj) { - try { - return obj + ""; - } catch (e) { - return "[no string representation]"; - } -} - -function isError(obj) { - return obj !== null && - typeof obj === "object" && - typeof obj.message === "string" && - typeof obj.name === "string"; -} - -function markAsOriginatingFromRejection(e) { - try { - notEnumerableProp(e, "isOperational", true); - } - catch(ignore) {} -} - -function originatesFromRejection(e) { - if (e == null) return false; - return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || - e["isOperational"] === true); -} - -function canAttachTrace(obj) { - return isError(obj) && es5.propertyIsWritable(obj, "stack"); -} - -var ensureErrorObject = (function() { - if (!("stack" in new Error())) { - return function(value) { - if (canAttachTrace(value)) return value; - try {throw new Error(safeToString(value));} - catch(err) {return err;} - }; - } else { - return function(value) { - if (canAttachTrace(value)) return value; - return new Error(safeToString(value)); - }; - } -})(); - -function classString(obj) { - return {}.toString.call(obj); -} - -function copyDescriptors(from, to, filter) { - var keys = es5.names(from); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (filter(key)) { - try { - es5.defineProperty(to, key, es5.getDescriptor(from, key)); - } catch (ignore) {} - } - } -} - -var asArray = function(v) { - if (es5.isArray(v)) { - return v; - } - return null; -}; - -if (typeof Symbol !== "undefined" && Symbol.iterator) { - var ArrayFrom = typeof Array.from === "function" ? function(v) { - return Array.from(v); - } : function(v) { - var ret = []; - var it = v[Symbol.iterator](); - var itResult; - while (!((itResult = it.next()).done)) { - ret.push(itResult.value); - } - return ret; - }; - - asArray = function(v) { - if (es5.isArray(v)) { - return v; - } else if (v != null && typeof v[Symbol.iterator] === "function") { - return ArrayFrom(v); - } - return null; - }; -} - -var isNode = typeof process !== "undefined" && - classString(process).toLowerCase() === "[object process]"; - -function env(key, def) { - return isNode ? process.env[key] : def; -} - -function getNativePromise() { - if (typeof Promise === "function") { - try { - var promise = new Promise(function(){}); - if ({}.toString.call(promise) === "[object Promise]") { - return Promise; - } - } catch (e) {} - } -} - -var ret = { - isClass: isClass, - isIdentifier: isIdentifier, - inheritedDataKeys: inheritedDataKeys, - getDataPropertyOrDefault: getDataPropertyOrDefault, - thrower: thrower, - isArray: es5.isArray, - asArray: asArray, - notEnumerableProp: notEnumerableProp, - isPrimitive: isPrimitive, - isObject: isObject, - isError: isError, - canEvaluate: canEvaluate, - errorObj: errorObj, - tryCatch: tryCatch, - inherits: inherits, - withAppended: withAppended, - maybeWrapAsError: maybeWrapAsError, - toFastProperties: toFastProperties, - filledRange: filledRange, - toString: safeToString, - canAttachTrace: canAttachTrace, - ensureErrorObject: ensureErrorObject, - originatesFromRejection: originatesFromRejection, - markAsOriginatingFromRejection: markAsOriginatingFromRejection, - classString: classString, - copyDescriptors: copyDescriptors, - hasDevTools: typeof chrome !== "undefined" && chrome && - typeof chrome.loadTimes === "function", - isNode: isNode, - env: env, - global: globalObject, - getNativePromise: getNativePromise -}; -ret.isRecentNode = ret.isNode && (function() { - var version = process.versions.node.split(".").map(Number); - return (version[0] === 0 && version[1] > 10) || (version[0] > 0); -})(); - -if (ret.isNode) ret.toFastProperties(process); - -try {throw new Error(); } catch (e) {ret.lastLineError = e;} -module.exports = ret; - -},{"./es5":10}]},{},[3])(3) -}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.core.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.core.min.js deleted file mode 100644 index f3d1bb05..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.core.min.js +++ /dev/null @@ -1,31 +0,0 @@ -/* @preserve - * The MIT License (MIT) - * - * Copyright (c) 2013-2015 Petka Antonov - * - * 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. - * - */ -/** - * bluebird build version 3.3.5 - * Features enabled: core - * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each -*/ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(a,s){if(!e[a]){if(!t[a]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[a].exports}for(var o="function"==typeof _dereq_&&_dereq_,a=0;a0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=s},{"./queue":17,"./schedule":18,"./util":21}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},a=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},s=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var f={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,a,void 0,u,f),l._then(s,c,void 0,u,f),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],3:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":15}],4:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),a=o.tryCatch,s=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t.isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n.isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this.isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,a=t._peekContext,s=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=a,t.prototype._peekContext=s,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],7:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+H.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function a(t){if(!this.isCancellable())return this;var e=this._onCancel();void 0!==e?H.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function s(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function f(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function h(){this._trace=new S(this._peekContext())}function _(t,e){if(B(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=w(t);H.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),H.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&$){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="a promise was created in a "+n+"handler but was not returned from it";r._warn(o,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(rt.warnings){var i,o=new U(t);if(n)r._attachExtraTrace(o);else if(rt.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var a=w(o);o.stack=a.message+"\n"+a.stack.join("\n")}Y("warning",o)||E(o,"",!0)}}function g(t,e){for(var n=0;n=0;--s)if(r[s]===o){a=s;break}for(var s=a;s>=0;--s){var c=r[s];if(e[i]!==c)break;e.pop(),i--}e=r}}function C(t){for(var e=[],n=0;n0&&(e=e.slice(n)),e}function w(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?k(t):[" (No stack trace)"],{message:n,stack:C(e)}}function E(t,e,n){if("undefined"!=typeof console){var r;if(H.isObject(t)){var i=t.stack;r=e+Q(i,t)}else r=e+String(t);"function"==typeof N?N(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function j(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){I.throwLater(o)}"unhandledRejection"===t?Y(t,n,r)||i||E(n,"Unhandled rejection "):Y(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():H.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+T(e)+">, no stack trace)"}function T(t){var e=41;return t.lengtha||0>s||!n||!r||n!==r||a>=s||(tt=function(t){if(D.test(t))return!0;var e=P(t);return e&&e.fileName===n&&a<=e.line&&e.line<=s?!0:!1})}}function S(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);nt(this,S),e>32&&this.uncycle()}var x,A,N,L=e._getDomain,I=e._async,U=t("./errors").Warning,H=t("./util"),B=H.canAttachTrace,D=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,V=null,Q=null,q=!1,G=!(0==H.env("BLUEBIRD_DEBUG")||!H.env("BLUEBIRD_DEBUG")&&"development"!==H.env("NODE_ENV")),M=!(0==H.env("BLUEBIRD_WARNINGS")||!G&&!H.env("BLUEBIRD_WARNINGS")),W=!(0==H.env("BLUEBIRD_LONG_STACK_TRACES")||!G&&!H.env("BLUEBIRD_LONG_STACK_TRACES")),$=0!=H.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(M||!!H.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){0===(524288&this._bitField)&&(this._setRejectionIsUnhandled(),I.invokeLater(this._notifyUnhandledRejection,this,void 0))},e.prototype._notifyUnhandledRejectionIsHandled=function(){j("rejectionHandled",x,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),j("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=L();A="function"==typeof t?null===e?t:e.bind(t):void 0},e.onUnhandledRejectionHandled=function(t){var e=L();x="function"==typeof t?null===e?t:e.bind(t):void 0};var z=function(){};e.longStackTraces=function(){if(I.haveItemsQueued()&&!rt.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!rt.longStackTraces&&O()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;rt.longStackTraces=!0,z=function(){if(I.haveItemsQueued()&&!rt.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),I.enableTrampoline(),rt.longStackTraces=!1},e.prototype._captureStackTrace=h,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),I.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return rt.longStackTraces&&O()};var X=function(){try{var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),H.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!H.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),K=function(){return H.isNode?function(){return process.emit.apply(process,arguments)}:H.global?function(t){var e="on"+t.toLowerCase(),n=H.global[e];return n?(n.apply(H.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),J={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},Y=function(t){var e=!1;try{e=K.apply(null,arguments)}catch(n){I.throwLater(n),e=!0}var r=!1;try{r=X(t,J[t].apply(null,arguments))}catch(n){I.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&z()),"warnings"in t){var n=t.warnings;rt.warnings=!!n,$=rt.warnings,H.isObject(n)&&"wForgottenReturn"in n&&($=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!rt.cancellation){if(I.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=s,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=a,e.prototype._execute=o,Z=u,rt.cancellation=!0}"monitoring"in t&&(t.monitoring&&!rt.monitoring?(rt.monitoring=!0,e.prototype._fireEvent=Y):!t.monitoring&&rt.monitoring&&(rt.monitoring=!1,e.prototype._fireEvent=i))},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var Z=p,tt=function(){return!1},et=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;H.inherits(S,Error),n.CapturedTrace=S,S.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var a=e[r].stack,s=n[a];if(void 0!==s&&s!==r){s>0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>s?(c._parent=e[s+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},S.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=w(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(C(i.stack.split("\n"))),i=i._parent;b(r),m(r),H.notEnumerableProp(t,"stack",g(n,r)),H.notEnumerableProp(t,"__stackCleaned__",!0)}};var nt=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,V=t,Q=e;var n=Error.captureStackTrace;return tt=function(t){return D.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return V=/@/,Q=e,q=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(Q=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(V=t,Q=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(N=function(t){console.warn(t)},H.isNode&&process.stderr.isTTY?N=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:H.isNode||"string"!=typeof(new Error).stack||(N=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var rt={warnings:M,longStackTraces:!1,cancellation:!1,monitoring:!1};return W&&e.longStackTraces(),{longStackTraces:function(){return rt.longStackTraces},warnings:function(){return rt.warnings},cancellation:function(){return rt.cancellation},monitoring:function(){return rt.monitoring},propagateFromFunction:function(){return Z},boundValueFunction:function(){return f},checkForgottenReturns:d,setBounds:R,warn:y,deprecated:v,CapturedTrace:S,fireDomEvent:X,fireGlobalEvent:K}}},{"./errors":9,"./util":21}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],9:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,a,s=t("./es5"),c=s.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,a=RangeError}catch(v){o=r("TypeError","type error"),a=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return c.call(this,this.promise._target()._settledValue())}function s(t){return o(this,t)?void 0:(p.e=t,p)}function c(t){var r=this.promise,c=this.handler;if(!this.called){this.called=!0;var l=this.isFinallyHandler()?c.call(r._boundValue()):c.call(r._boundValue(),t);if(void 0!==l){r._setReturnedNonUndefined();var f=n(l,r);if(f instanceof e){if(null!=this.cancelPromise){if(f.isCancelled()){var h=new u("late cancellation observer");return r._attachExtraTrace(h),p.e=h,p}f.isPending()&&f._attachCancellationCallback(new i(this))}return f._then(a,s,void 0,this,void 0)}}}return r.isRejected()?(o(this),p.e=t,p):(o(this),t)}var l=t("./util"),u=e.CancellationError,p=l.errorObj;return r.prototype.isFinallyHandler=function(){return 0===this.type},i.prototype._resultCancelled=function(){o(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,i){return"function"!=typeof t?this.then():this._then(n,i,void 0,new r(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,c,c)},e.prototype.tap=function(t){return this._passThrough(t,1,c)},r}},{"./util":21}],12:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util");o.canEvaluate,o.tryCatch,o.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":21}],13:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var a=t("./util"),s=a.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+a.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=s(t).apply(this,arguments),a=r._popContext();return o.checkForgottenReturns(i,a,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+a.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=a.isArray(l)?s(t).apply(u,l):s(t).call(u,l)}else c=s(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===a.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":21}],14:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return u("expecting an object but got "+f.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,T(r,t,this))}return this.then(void 0,t)},r.prototype.reflect=function(){return this._then(l,l,void 0,this,void 0)},r.prototype.then=function(t,e){if(j.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},r.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},r.prototype.spread=function(t){return"function"!=typeof t?u("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,b,void 0)},r.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},r.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new w(this).promise()},r.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},r.is=function(t){return t instanceof r},r.fromNode=r.fromCallback=function(t){var e=new r(m);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,i=R(t)(O(e,n));return i===P&&e._rejectCallback(i.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},r.all=function(t){return new w(t).promise()},r.cast=function(t){var e=k(t);return e instanceof r||(e=new r(m),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},r.resolve=r.fulfilled=r.cast,r.reject=r.rejected=function(t){var e=new r(m);return e._captureStackTrace(),e._rejectCallback(t,!0),e},r.setScheduler=function(t){if("function"!=typeof t)throw new y("expecting a function but got "+f.classString(t));return d.setScheduler(t)},r.prototype._then=function(t,e,n,i,o){var a=void 0!==o,c=a?o:new r(m),l=this._target(),u=l._bitField;a||(c._propagateFrom(this,3), -c._captureStackTrace(),void 0===i&&0!==(2097152&this._bitField)&&(i=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,c));var p=s();if(0!==(50397184&u)){var f,h,_=l._settlePromiseCtx;0!==(33554432&u)?(h=l._rejectionHandler0,f=t):0!==(16777216&u)?(h=l._fulfillmentHandler0,f=e,l._unsetRejectionIsUnhandled()):(_=l._settlePromiseLateCancellationObserver,h=new g("late cancellation observer"),l._attachExtraTrace(h),f=e),d.invoke(_,l,{handler:null===p?f:"function"==typeof f&&p.bind(f),promise:c,receiver:i,value:h})}else l._addCallbacks(t,e,c,i,p);return c},r.prototype._length=function(){return 65535&this._bitField},r.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},r.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},r.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},r.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},r.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},r.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},r.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},r.prototype._isFinal=function(){return(4194304&this._bitField)>0},r.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},r.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},r.prototype._setAsyncGuaranteed=function(){d.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},r.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===p?void 0:void 0===e&&this._isBound()?this._boundValue():e},r.prototype._promiseAt=function(t){return this[4*t-4+2]},r.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},r.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},r.prototype._boundValue=function(){},r.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=p),this._addCallbacks(e,n,r,i,null)},r.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=p),this._addCallbacks(n,r,i,o,null)},r.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:i.bind(t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:i.bind(e));else{var a=4*o-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=null===i?t:i.bind(t)),"function"==typeof e&&(this[a+1]=null===i?e:i.bind(e))}return this._setLength(o+1),o},r.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},r.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(c(),!1);var n=k(t,this);if(!(n instanceof r))return this._fulfill(t);e&&this._propagateFrom(n,2);var i=n._target();if(i===this)return void this._reject(c());var o=i._bitField;if(0===(50397184&o)){var a=this._length();a>0&&i._migrateCallback0(this);for(var s=1;a>s;++s)i._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(i)}else if(0!==(33554432&o))this._fulfill(i._value());else if(0!==(16777216&o))this._reject(i._reason());else{var l=new g("late cancellation observer");i._attachExtraTrace(l),this._reject(l)}}},r.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&j.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},r.prototype._resolveFromExecutor=function(t){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)},r.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===b?n&&"number"==typeof n.length?o=R(t).apply(this._boundValue(),n):(o=P,o.e=new y("cannot .spread() a non-array: "+f.classString(n))):o=R(t).call(e,n);var a=r._popContext();i=r._bitField,0===(65536&i)&&(o===C?r._reject(n):o===P?r._rejectCallback(o.e,!1):(j.checkForgottenReturns(o,a,"",r,this),r._resolveCallback(o)))}},r.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},r.prototype._followee=function(){return this._rejectionHandler0},r.prototype._setFollowee=function(t){this._rejectionHandler0=t},r.prototype._settlePromise=function(t,n,i,o){var a=t instanceof r,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),i instanceof F&&i.isFinallyHandler()?(i.cancelPromise=t,R(n).call(i,o)===P&&t._reject(P.e)):n===l?t._fulfill(l.call(i)):i instanceof e?i._promiseCancelled(t):a||t instanceof w?t._cancel():i.cancel()):"function"==typeof n?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(n,i,o,t)):n.call(i,o,t):i instanceof e?i._isResolved()||(0!==(33554432&s)?i._promiseFulfilled(o,t):i._promiseRejected(o,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(o):t._reject(o))},r.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,i=t.receiver,o=t.value;"function"==typeof e?n instanceof r?this._settlePromiseFromHandler(e,i,o,n):e.call(i,o,n):n instanceof r&&n._reject(o)},r.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},r.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},r.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},r.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=c();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():d.settlePromises(this))}},r.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?d.fatalError(t,f.isNode):void((65535&e)>0?d.settlePromises(this):this._ensurePossibleRejectionHandled())},r.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},r.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},r.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},r.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},r.defer=r.pending=function(){j.deprecated("Promise.defer","new Promise");var t=new r(m);return{promise:t,resolve:i,reject:o}},f.notEnumerableProp(r,"_makeSelfResolutionError",c),t("./method")(r,m,k,u,j),t("./bind")(r,m,k,j),t("./cancel")(r,w,u,j),t("./direct_resolve")(r),t("./synchronous_inspection")(r),t("./join")(r,w,k,m,j),r.Promise=r,f.toFastProperties(r),f.toFastProperties(r.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new r(m)),j.setBounds(_.firstLineError,f.lastLineError),r}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function a(t){switch(t){case-2:return[];case-3:return{}}}function s(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var s=o._bitField;if(this._values=o,0===(50397184&s))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(o)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,a=null,s=0;n>s;++s){var c=r(t[s],i);c instanceof e?(c=c._target(),a=c._bitField):a=null,o?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):o=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):o=this._promiseFulfilled(c,s)}o||i._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise.isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;no;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityn;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!j.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return j.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=j.names(t.prototype),n=j.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=x.test(t+"")&&j.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return A.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&j.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function k(t,e,n){for(var r=j.names(t),i=0;i10||t[0]>0}(),H.isNode&&H.toFastProperties(process);try{throw new Error}catch(B){H.lastLineError=B}e.exports=H},{"./es5":10}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.js deleted file mode 100644 index 25ac9b32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.js +++ /dev/null @@ -1,5455 +0,0 @@ -/* @preserve - * The MIT License (MIT) - * - * Copyright (c) 2013-2015 Petka Antonov - * - * 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. - * - */ -/** - * bluebird build version 3.3.5 - * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each -*/ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o 0) { - var fn = queue.shift(); - if (typeof fn !== "function") { - fn._settlePromises(); - continue; - } - var receiver = queue.shift(); - var arg = queue.shift(); - fn.call(receiver, arg); - } -}; - -Async.prototype._drainQueues = function () { - this._drainQueue(this._normalQueue); - this._reset(); - this._haveDrainedQueues = true; - this._drainQueue(this._lateQueue); -}; - -Async.prototype._queueTick = function () { - if (!this._isTickUsed) { - this._isTickUsed = true; - this._schedule(this.drainQueues); - } -}; - -Async.prototype._reset = function () { - this._isTickUsed = false; -}; - -module.exports = Async; -module.exports.firstLineError = firstLineError; - -},{"./queue":26,"./schedule":29,"./util":36}],3:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { -var calledBind = false; -var rejectThis = function(_, e) { - this._reject(e); -}; - -var targetRejected = function(e, context) { - context.promiseRejectionQueued = true; - context.bindingPromise._then(rejectThis, rejectThis, null, this, e); -}; - -var bindingResolved = function(thisArg, context) { - if (((this._bitField & 50397184) === 0)) { - this._resolveCallback(context.target); - } -}; - -var bindingRejected = function(e, context) { - if (!context.promiseRejectionQueued) this._reject(e); -}; - -Promise.prototype.bind = function (thisArg) { - if (!calledBind) { - calledBind = true; - Promise.prototype._propagateFrom = debug.propagateFromFunction(); - Promise.prototype._boundValue = debug.boundValueFunction(); - } - var maybePromise = tryConvertToPromise(thisArg); - var ret = new Promise(INTERNAL); - ret._propagateFrom(this, 1); - var target = this._target(); - ret._setBoundTo(maybePromise); - if (maybePromise instanceof Promise) { - var context = { - promiseRejectionQueued: false, - promise: ret, - target: target, - bindingPromise: maybePromise - }; - target._then(INTERNAL, targetRejected, undefined, ret, context); - maybePromise._then( - bindingResolved, bindingRejected, undefined, ret, context); - ret._setOnCancel(maybePromise); - } else { - ret._resolveCallback(target); - } - return ret; -}; - -Promise.prototype._setBoundTo = function (obj) { - if (obj !== undefined) { - this._bitField = this._bitField | 2097152; - this._boundTo = obj; - } else { - this._bitField = this._bitField & (~2097152); - } -}; - -Promise.prototype._isBound = function () { - return (this._bitField & 2097152) === 2097152; -}; - -Promise.bind = function (thisArg, value) { - return Promise.resolve(value).bind(thisArg); -}; -}; - -},{}],4:[function(_dereq_,module,exports){ -"use strict"; -var old; -if (typeof Promise !== "undefined") old = Promise; -function noConflict() { - try { if (Promise === bluebird) Promise = old; } - catch (e) {} - return bluebird; -} -var bluebird = _dereq_("./promise")(); -bluebird.noConflict = noConflict; -module.exports = bluebird; - -},{"./promise":22}],5:[function(_dereq_,module,exports){ -"use strict"; -var cr = Object.create; -if (cr) { - var callerCache = cr(null); - var getterCache = cr(null); - callerCache[" size"] = getterCache[" size"] = 0; -} - -module.exports = function(Promise) { -var util = _dereq_("./util"); -var canEvaluate = util.canEvaluate; -var isIdentifier = util.isIdentifier; - -var getMethodCaller; -var getGetter; -if (!true) { -var makeMethodCaller = function (methodName) { - return new Function("ensureMethod", " \n\ - return function(obj) { \n\ - 'use strict' \n\ - var len = this.length; \n\ - ensureMethod(obj, 'methodName'); \n\ - switch(len) { \n\ - case 1: return obj.methodName(this[0]); \n\ - case 2: return obj.methodName(this[0], this[1]); \n\ - case 3: return obj.methodName(this[0], this[1], this[2]); \n\ - case 0: return obj.methodName(); \n\ - default: \n\ - return obj.methodName.apply(obj, this); \n\ - } \n\ - }; \n\ - ".replace(/methodName/g, methodName))(ensureMethod); -}; - -var makeGetter = function (propertyName) { - return new Function("obj", " \n\ - 'use strict'; \n\ - return obj.propertyName; \n\ - ".replace("propertyName", propertyName)); -}; - -var getCompiled = function(name, compiler, cache) { - var ret = cache[name]; - if (typeof ret !== "function") { - if (!isIdentifier(name)) { - return null; - } - ret = compiler(name); - cache[name] = ret; - cache[" size"]++; - if (cache[" size"] > 512) { - var keys = Object.keys(cache); - for (var i = 0; i < 256; ++i) delete cache[keys[i]]; - cache[" size"] = keys.length - 256; - } - } - return ret; -}; - -getMethodCaller = function(name) { - return getCompiled(name, makeMethodCaller, callerCache); -}; - -getGetter = function(name) { - return getCompiled(name, makeGetter, getterCache); -}; -} - -function ensureMethod(obj, methodName) { - var fn; - if (obj != null) fn = obj[methodName]; - if (typeof fn !== "function") { - var message = "Object " + util.classString(obj) + " has no method '" + - util.toString(methodName) + "'"; - throw new Promise.TypeError(message); - } - return fn; -} - -function caller(obj) { - var methodName = this.pop(); - var fn = ensureMethod(obj, methodName); - return fn.apply(obj, this); -} -Promise.prototype.call = function (methodName) { - var args = [].slice.call(arguments, 1);; - if (!true) { - if (canEvaluate) { - var maybeCaller = getMethodCaller(methodName); - if (maybeCaller !== null) { - return this._then( - maybeCaller, undefined, undefined, args, undefined); - } - } - } - args.push(methodName); - return this._then(caller, undefined, undefined, args, undefined); -}; - -function namedGetter(obj) { - return obj[this]; -} -function indexedGetter(obj) { - var index = +this; - if (index < 0) index = Math.max(0, index + obj.length); - return obj[index]; -} -Promise.prototype.get = function (propertyName) { - var isIndex = (typeof propertyName === "number"); - var getter; - if (!isIndex) { - if (canEvaluate) { - var maybeGetter = getGetter(propertyName); - getter = maybeGetter !== null ? maybeGetter : namedGetter; - } else { - getter = namedGetter; - } - } else { - getter = indexedGetter; - } - return this._then(getter, undefined, undefined, propertyName, undefined); -}; -}; - -},{"./util":36}],6:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, PromiseArray, apiRejection, debug) { -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var async = Promise._async; - -Promise.prototype["break"] = Promise.prototype.cancel = function() { - if (!debug.cancellation()) return this._warn("cancellation is disabled"); - - var promise = this; - var child = promise; - while (promise.isCancellable()) { - if (!promise._cancelBy(child)) { - if (child._isFollowing()) { - child._followee().cancel(); - } else { - child._cancelBranched(); - } - break; - } - - var parent = promise._cancellationParent; - if (parent == null || !parent.isCancellable()) { - if (promise._isFollowing()) { - promise._followee().cancel(); - } else { - promise._cancelBranched(); - } - break; - } else { - if (promise._isFollowing()) promise._followee().cancel(); - child = promise; - promise = parent; - } - } -}; - -Promise.prototype._branchHasCancelled = function() { - this._branchesRemainingToCancel--; -}; - -Promise.prototype._enoughBranchesHaveCancelled = function() { - return this._branchesRemainingToCancel === undefined || - this._branchesRemainingToCancel <= 0; -}; - -Promise.prototype._cancelBy = function(canceller) { - if (canceller === this) { - this._branchesRemainingToCancel = 0; - this._invokeOnCancel(); - return true; - } else { - this._branchHasCancelled(); - if (this._enoughBranchesHaveCancelled()) { - this._invokeOnCancel(); - return true; - } - } - return false; -}; - -Promise.prototype._cancelBranched = function() { - if (this._enoughBranchesHaveCancelled()) { - this._cancel(); - } -}; - -Promise.prototype._cancel = function() { - if (!this.isCancellable()) return; - - this._setCancelled(); - async.invoke(this._cancelPromises, this, undefined); -}; - -Promise.prototype._cancelPromises = function() { - if (this._length() > 0) this._settlePromises(); -}; - -Promise.prototype._unsetOnCancel = function() { - this._onCancelField = undefined; -}; - -Promise.prototype.isCancellable = function() { - return this.isPending() && !this.isCancelled(); -}; - -Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { - if (util.isArray(onCancelCallback)) { - for (var i = 0; i < onCancelCallback.length; ++i) { - this._doInvokeOnCancel(onCancelCallback[i], internalOnly); - } - } else if (onCancelCallback !== undefined) { - if (typeof onCancelCallback === "function") { - if (!internalOnly) { - var e = tryCatch(onCancelCallback).call(this._boundValue()); - if (e === errorObj) { - this._attachExtraTrace(e.e); - async.throwLater(e.e); - } - } - } else { - onCancelCallback._resultCancelled(this); - } - } -}; - -Promise.prototype._invokeOnCancel = function() { - var onCancelCallback = this._onCancel(); - this._unsetOnCancel(); - async.invoke(this._doInvokeOnCancel, this, onCancelCallback); -}; - -Promise.prototype._invokeInternalOnCancel = function() { - if (this.isCancellable()) { - this._doInvokeOnCancel(this._onCancel(), true); - this._unsetOnCancel(); - } -}; - -Promise.prototype._resultCancelled = function() { - this.cancel(); -}; - -}; - -},{"./util":36}],7:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(NEXT_FILTER) { -var util = _dereq_("./util"); -var getKeys = _dereq_("./es5").keys; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; - -function catchFilter(instances, cb, promise) { - return function(e) { - var boundTo = promise._boundValue(); - predicateLoop: for (var i = 0; i < instances.length; ++i) { - var item = instances[i]; - - if (item === Error || - (item != null && item.prototype instanceof Error)) { - if (e instanceof item) { - return tryCatch(cb).call(boundTo, e); - } - } else if (typeof item === "function") { - var matchesPredicate = tryCatch(item).call(boundTo, e); - if (matchesPredicate === errorObj) { - return matchesPredicate; - } else if (matchesPredicate) { - return tryCatch(cb).call(boundTo, e); - } - } else if (util.isObject(e)) { - var keys = getKeys(item); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - if (item[key] != e[key]) { - continue predicateLoop; - } - } - return tryCatch(cb).call(boundTo, e); - } - } - return NEXT_FILTER; - }; -} - -return catchFilter; -}; - -},{"./es5":13,"./util":36}],8:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -var longStackTraces = false; -var contextStack = []; - -Promise.prototype._promiseCreated = function() {}; -Promise.prototype._pushContext = function() {}; -Promise.prototype._popContext = function() {return null;}; -Promise._peekContext = Promise.prototype._peekContext = function() {}; - -function Context() { - this._trace = new Context.CapturedTrace(peekContext()); -} -Context.prototype._pushContext = function () { - if (this._trace !== undefined) { - this._trace._promiseCreated = null; - contextStack.push(this._trace); - } -}; - -Context.prototype._popContext = function () { - if (this._trace !== undefined) { - var trace = contextStack.pop(); - var ret = trace._promiseCreated; - trace._promiseCreated = null; - return ret; - } - return null; -}; - -function createContext() { - if (longStackTraces) return new Context(); -} - -function peekContext() { - var lastIndex = contextStack.length - 1; - if (lastIndex >= 0) { - return contextStack[lastIndex]; - } - return undefined; -} -Context.CapturedTrace = null; -Context.create = createContext; -Context.deactivateLongStackTraces = function() {}; -Context.activateLongStackTraces = function() { - var Promise_pushContext = Promise.prototype._pushContext; - var Promise_popContext = Promise.prototype._popContext; - var Promise_PeekContext = Promise._peekContext; - var Promise_peekContext = Promise.prototype._peekContext; - var Promise_promiseCreated = Promise.prototype._promiseCreated; - Context.deactivateLongStackTraces = function() { - Promise.prototype._pushContext = Promise_pushContext; - Promise.prototype._popContext = Promise_popContext; - Promise._peekContext = Promise_PeekContext; - Promise.prototype._peekContext = Promise_peekContext; - Promise.prototype._promiseCreated = Promise_promiseCreated; - longStackTraces = false; - }; - longStackTraces = true; - Promise.prototype._pushContext = Context.prototype._pushContext; - Promise.prototype._popContext = Context.prototype._popContext; - Promise._peekContext = Promise.prototype._peekContext = peekContext; - Promise.prototype._promiseCreated = function() { - var ctx = this._peekContext(); - if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; - }; -}; -return Context; -}; - -},{}],9:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, Context) { -var getDomain = Promise._getDomain; -var async = Promise._async; -var Warning = _dereq_("./errors").Warning; -var util = _dereq_("./util"); -var canAttachTrace = util.canAttachTrace; -var unhandledRejectionHandled; -var possiblyUnhandledRejection; -var bluebirdFramePattern = - /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; -var stackFramePattern = null; -var formatStack = null; -var indentStackFrames = false; -var printWarning; -var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && - (true || - util.env("BLUEBIRD_DEBUG") || - util.env("NODE_ENV") === "development")); - -var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && - (debugging || util.env("BLUEBIRD_WARNINGS"))); - -var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && - (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); - -var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && - (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); - -Promise.prototype.suppressUnhandledRejections = function() { - var target = this._target(); - target._bitField = ((target._bitField & (~1048576)) | - 524288); -}; - -Promise.prototype._ensurePossibleRejectionHandled = function () { - if ((this._bitField & 524288) !== 0) return; - this._setRejectionIsUnhandled(); - async.invokeLater(this._notifyUnhandledRejection, this, undefined); -}; - -Promise.prototype._notifyUnhandledRejectionIsHandled = function () { - fireRejectionEvent("rejectionHandled", - unhandledRejectionHandled, undefined, this); -}; - -Promise.prototype._setReturnedNonUndefined = function() { - this._bitField = this._bitField | 268435456; -}; - -Promise.prototype._returnedNonUndefined = function() { - return (this._bitField & 268435456) !== 0; -}; - -Promise.prototype._notifyUnhandledRejection = function () { - if (this._isRejectionUnhandled()) { - var reason = this._settledValue(); - this._setUnhandledRejectionIsNotified(); - fireRejectionEvent("unhandledRejection", - possiblyUnhandledRejection, reason, this); - } -}; - -Promise.prototype._setUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField | 262144; -}; - -Promise.prototype._unsetUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField & (~262144); -}; - -Promise.prototype._isUnhandledRejectionNotified = function () { - return (this._bitField & 262144) > 0; -}; - -Promise.prototype._setRejectionIsUnhandled = function () { - this._bitField = this._bitField | 1048576; -}; - -Promise.prototype._unsetRejectionIsUnhandled = function () { - this._bitField = this._bitField & (~1048576); - if (this._isUnhandledRejectionNotified()) { - this._unsetUnhandledRejectionIsNotified(); - this._notifyUnhandledRejectionIsHandled(); - } -}; - -Promise.prototype._isRejectionUnhandled = function () { - return (this._bitField & 1048576) > 0; -}; - -Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { - return warn(message, shouldUseOwnTrace, promise || this); -}; - -Promise.onPossiblyUnhandledRejection = function (fn) { - var domain = getDomain(); - possiblyUnhandledRejection = - typeof fn === "function" ? (domain === null ? fn : domain.bind(fn)) - : undefined; -}; - -Promise.onUnhandledRejectionHandled = function (fn) { - var domain = getDomain(); - unhandledRejectionHandled = - typeof fn === "function" ? (domain === null ? fn : domain.bind(fn)) - : undefined; -}; - -var disableLongStackTraces = function() {}; -Promise.longStackTraces = function () { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - if (!config.longStackTraces && longStackTracesIsSupported()) { - var Promise_captureStackTrace = Promise.prototype._captureStackTrace; - var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; - config.longStackTraces = true; - disableLongStackTraces = function() { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - Promise.prototype._captureStackTrace = Promise_captureStackTrace; - Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; - Context.deactivateLongStackTraces(); - async.enableTrampoline(); - config.longStackTraces = false; - }; - Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; - Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; - Context.activateLongStackTraces(); - async.disableTrampolineIfNecessary(); - } -}; - -Promise.hasLongStackTraces = function () { - return config.longStackTraces && longStackTracesIsSupported(); -}; - -var fireDomEvent = (function() { - try { - var event = document.createEvent("CustomEvent"); - event.initCustomEvent("testingtheevent", false, true, {}); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = document.createEvent("CustomEvent"); - domEvent.initCustomEvent(name.toLowerCase(), false, true, event); - return !util.global.dispatchEvent(domEvent); - }; - } catch (e) {} - return function() { - return false; - }; -})(); - -var fireGlobalEvent = (function() { - if (util.isNode) { - return function() { - return process.emit.apply(process, arguments); - }; - } else { - if (!util.global) { - return function() { - return false; - }; - } - return function(name) { - var methodName = "on" + name.toLowerCase(); - var method = util.global[methodName]; - if (!method) return false; - method.apply(util.global, [].slice.call(arguments, 1)); - return true; - }; - } -})(); - -function generatePromiseLifecycleEventObject(name, promise) { - return {promise: promise}; -} - -var eventToObjectGenerator = { - promiseCreated: generatePromiseLifecycleEventObject, - promiseFulfilled: generatePromiseLifecycleEventObject, - promiseRejected: generatePromiseLifecycleEventObject, - promiseResolved: generatePromiseLifecycleEventObject, - promiseCancelled: generatePromiseLifecycleEventObject, - promiseChained: function(name, promise, child) { - return {promise: promise, child: child}; - }, - warning: function(name, warning) { - return {warning: warning}; - }, - unhandledRejection: function (name, reason, promise) { - return {reason: reason, promise: promise}; - }, - rejectionHandled: generatePromiseLifecycleEventObject -}; - -var activeFireEvent = function (name) { - var globalEventFired = false; - try { - globalEventFired = fireGlobalEvent.apply(null, arguments); - } catch (e) { - async.throwLater(e); - globalEventFired = true; - } - - var domEventFired = false; - try { - domEventFired = fireDomEvent(name, - eventToObjectGenerator[name].apply(null, arguments)); - } catch (e) { - async.throwLater(e); - domEventFired = true; - } - - return domEventFired || globalEventFired; -}; - -Promise.config = function(opts) { - opts = Object(opts); - if ("longStackTraces" in opts) { - if (opts.longStackTraces) { - Promise.longStackTraces(); - } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { - disableLongStackTraces(); - } - } - if ("warnings" in opts) { - var warningsOption = opts.warnings; - config.warnings = !!warningsOption; - wForgottenReturn = config.warnings; - - if (util.isObject(warningsOption)) { - if ("wForgottenReturn" in warningsOption) { - wForgottenReturn = !!warningsOption.wForgottenReturn; - } - } - } - if ("cancellation" in opts && opts.cancellation && !config.cancellation) { - if (async.haveItemsQueued()) { - throw new Error( - "cannot enable cancellation after promises are in use"); - } - Promise.prototype._clearCancellationData = - cancellationClearCancellationData; - Promise.prototype._propagateFrom = cancellationPropagateFrom; - Promise.prototype._onCancel = cancellationOnCancel; - Promise.prototype._setOnCancel = cancellationSetOnCancel; - Promise.prototype._attachCancellationCallback = - cancellationAttachCancellationCallback; - Promise.prototype._execute = cancellationExecute; - propagateFromFunction = cancellationPropagateFrom; - config.cancellation = true; - } - if ("monitoring" in opts) { - if (opts.monitoring && !config.monitoring) { - config.monitoring = true; - Promise.prototype._fireEvent = activeFireEvent; - } else if (!opts.monitoring && config.monitoring) { - config.monitoring = false; - Promise.prototype._fireEvent = defaultFireEvent; - } - } -}; - -function defaultFireEvent() { return false; } - -Promise.prototype._fireEvent = defaultFireEvent; -Promise.prototype._execute = function(executor, resolve, reject) { - try { - executor(resolve, reject); - } catch (e) { - return e; - } -}; -Promise.prototype._onCancel = function () {}; -Promise.prototype._setOnCancel = function (handler) { ; }; -Promise.prototype._attachCancellationCallback = function(onCancel) { - ; -}; -Promise.prototype._captureStackTrace = function () {}; -Promise.prototype._attachExtraTrace = function () {}; -Promise.prototype._clearCancellationData = function() {}; -Promise.prototype._propagateFrom = function (parent, flags) { - ; - ; -}; - -function cancellationExecute(executor, resolve, reject) { - var promise = this; - try { - executor(resolve, reject, function(onCancel) { - if (typeof onCancel !== "function") { - throw new TypeError("onCancel must be a function, got: " + - util.toString(onCancel)); - } - promise._attachCancellationCallback(onCancel); - }); - } catch (e) { - return e; - } -} - -function cancellationAttachCancellationCallback(onCancel) { - if (!this.isCancellable()) return this; - - var previousOnCancel = this._onCancel(); - if (previousOnCancel !== undefined) { - if (util.isArray(previousOnCancel)) { - previousOnCancel.push(onCancel); - } else { - this._setOnCancel([previousOnCancel, onCancel]); - } - } else { - this._setOnCancel(onCancel); - } -} - -function cancellationOnCancel() { - return this._onCancelField; -} - -function cancellationSetOnCancel(onCancel) { - this._onCancelField = onCancel; -} - -function cancellationClearCancellationData() { - this._cancellationParent = undefined; - this._onCancelField = undefined; -} - -function cancellationPropagateFrom(parent, flags) { - if ((flags & 1) !== 0) { - this._cancellationParent = parent; - var branchesRemainingToCancel = parent._branchesRemainingToCancel; - if (branchesRemainingToCancel === undefined) { - branchesRemainingToCancel = 0; - } - parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; - } - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} - -function bindingPropagateFrom(parent, flags) { - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} -var propagateFromFunction = bindingPropagateFrom; - -function boundValueFunction() { - var ret = this._boundTo; - if (ret !== undefined) { - if (ret instanceof Promise) { - if (ret.isFulfilled()) { - return ret.value(); - } else { - return undefined; - } - } - } - return ret; -} - -function longStackTracesCaptureStackTrace() { - this._trace = new CapturedTrace(this._peekContext()); -} - -function longStackTracesAttachExtraTrace(error, ignoreSelf) { - if (canAttachTrace(error)) { - var trace = this._trace; - if (trace !== undefined) { - if (ignoreSelf) trace = trace._parent; - } - if (trace !== undefined) { - trace.attachExtraTrace(error); - } else if (!error.__stackCleaned__) { - var parsed = parseStackAndMessage(error); - util.notEnumerableProp(error, "stack", - parsed.message + "\n" + parsed.stack.join("\n")); - util.notEnumerableProp(error, "__stackCleaned__", true); - } - } -} - -function checkForgottenReturns(returnValue, promiseCreated, name, promise, - parent) { - if (returnValue === undefined && promiseCreated !== null && - wForgottenReturn) { - if (parent !== undefined && parent._returnedNonUndefined()) return; - if ((promise._bitField & 65535) === 0) return; - - if (name) name = name + " "; - var msg = "a promise was created in a " + name + - "handler but was not returned from it"; - promise._warn(msg, true, promiseCreated); - } -} - -function deprecated(name, replacement) { - var message = name + - " is deprecated and will be removed in a future version."; - if (replacement) message += " Use " + replacement + " instead."; - return warn(message); -} - -function warn(message, shouldUseOwnTrace, promise) { - if (!config.warnings) return; - var warning = new Warning(message); - var ctx; - if (shouldUseOwnTrace) { - promise._attachExtraTrace(warning); - } else if (config.longStackTraces && (ctx = Promise._peekContext())) { - ctx.attachExtraTrace(warning); - } else { - var parsed = parseStackAndMessage(warning); - warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); - } - - if (!activeFireEvent("warning", warning)) { - formatAndLogError(warning, "", true); - } -} - -function reconstructStack(message, stacks) { - for (var i = 0; i < stacks.length - 1; ++i) { - stacks[i].push("From previous event:"); - stacks[i] = stacks[i].join("\n"); - } - if (i < stacks.length) { - stacks[i] = stacks[i].join("\n"); - } - return message + "\n" + stacks.join("\n"); -} - -function removeDuplicateOrEmptyJumps(stacks) { - for (var i = 0; i < stacks.length; ++i) { - if (stacks[i].length === 0 || - ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { - stacks.splice(i, 1); - i--; - } - } -} - -function removeCommonRoots(stacks) { - var current = stacks[0]; - for (var i = 1; i < stacks.length; ++i) { - var prev = stacks[i]; - var currentLastIndex = current.length - 1; - var currentLastLine = current[currentLastIndex]; - var commonRootMeetPoint = -1; - - for (var j = prev.length - 1; j >= 0; --j) { - if (prev[j] === currentLastLine) { - commonRootMeetPoint = j; - break; - } - } - - for (var j = commonRootMeetPoint; j >= 0; --j) { - var line = prev[j]; - if (current[currentLastIndex] === line) { - current.pop(); - currentLastIndex--; - } else { - break; - } - } - current = prev; - } -} - -function cleanStack(stack) { - var ret = []; - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - var isTraceLine = " (No stack trace)" === line || - stackFramePattern.test(line); - var isInternalFrame = isTraceLine && shouldIgnore(line); - if (isTraceLine && !isInternalFrame) { - if (indentStackFrames && line.charAt(0) !== " ") { - line = " " + line; - } - ret.push(line); - } - } - return ret; -} - -function stackFramesAsArray(error) { - var stack = error.stack.replace(/\s+$/g, "").split("\n"); - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - if (" (No stack trace)" === line || stackFramePattern.test(line)) { - break; - } - } - if (i > 0) { - stack = stack.slice(i); - } - return stack; -} - -function parseStackAndMessage(error) { - var stack = error.stack; - var message = error.toString(); - stack = typeof stack === "string" && stack.length > 0 - ? stackFramesAsArray(error) : [" (No stack trace)"]; - return { - message: message, - stack: cleanStack(stack) - }; -} - -function formatAndLogError(error, title, isSoft) { - if (typeof console !== "undefined") { - var message; - if (util.isObject(error)) { - var stack = error.stack; - message = title + formatStack(stack, error); - } else { - message = title + String(error); - } - if (typeof printWarning === "function") { - printWarning(message, isSoft); - } else if (typeof console.log === "function" || - typeof console.log === "object") { - console.log(message); - } - } -} - -function fireRejectionEvent(name, localHandler, reason, promise) { - var localEventFired = false; - try { - if (typeof localHandler === "function") { - localEventFired = true; - if (name === "rejectionHandled") { - localHandler(promise); - } else { - localHandler(reason, promise); - } - } - } catch (e) { - async.throwLater(e); - } - - if (name === "unhandledRejection") { - if (!activeFireEvent(name, reason, promise) && !localEventFired) { - formatAndLogError(reason, "Unhandled rejection "); - } - } else { - activeFireEvent(name, promise); - } -} - -function formatNonError(obj) { - var str; - if (typeof obj === "function") { - str = "[function " + - (obj.name || "anonymous") + - "]"; - } else { - str = obj && typeof obj.toString === "function" - ? obj.toString() : util.toString(obj); - var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; - if (ruselessToString.test(str)) { - try { - var newStr = JSON.stringify(obj); - str = newStr; - } - catch(e) { - - } - } - if (str.length === 0) { - str = "(empty array)"; - } - } - return ("(<" + snip(str) + ">, no stack trace)"); -} - -function snip(str) { - var maxChars = 41; - if (str.length < maxChars) { - return str; - } - return str.substr(0, maxChars - 3) + "..."; -} - -function longStackTracesIsSupported() { - return typeof captureStackTrace === "function"; -} - -var shouldIgnore = function() { return false; }; -var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; -function parseLineInfo(line) { - var matches = line.match(parseLineInfoRegex); - if (matches) { - return { - fileName: matches[1], - line: parseInt(matches[2], 10) - }; - } -} - -function setBounds(firstLineError, lastLineError) { - if (!longStackTracesIsSupported()) return; - var firstStackLines = firstLineError.stack.split("\n"); - var lastStackLines = lastLineError.stack.split("\n"); - var firstIndex = -1; - var lastIndex = -1; - var firstFileName; - var lastFileName; - for (var i = 0; i < firstStackLines.length; ++i) { - var result = parseLineInfo(firstStackLines[i]); - if (result) { - firstFileName = result.fileName; - firstIndex = result.line; - break; - } - } - for (var i = 0; i < lastStackLines.length; ++i) { - var result = parseLineInfo(lastStackLines[i]); - if (result) { - lastFileName = result.fileName; - lastIndex = result.line; - break; - } - } - if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || - firstFileName !== lastFileName || firstIndex >= lastIndex) { - return; - } - - shouldIgnore = function(line) { - if (bluebirdFramePattern.test(line)) return true; - var info = parseLineInfo(line); - if (info) { - if (info.fileName === firstFileName && - (firstIndex <= info.line && info.line <= lastIndex)) { - return true; - } - } - return false; - }; -} - -function CapturedTrace(parent) { - this._parent = parent; - this._promisesCreated = 0; - var length = this._length = 1 + (parent === undefined ? 0 : parent._length); - captureStackTrace(this, CapturedTrace); - if (length > 32) this.uncycle(); -} -util.inherits(CapturedTrace, Error); -Context.CapturedTrace = CapturedTrace; - -CapturedTrace.prototype.uncycle = function() { - var length = this._length; - if (length < 2) return; - var nodes = []; - var stackToIndex = {}; - - for (var i = 0, node = this; node !== undefined; ++i) { - nodes.push(node); - node = node._parent; - } - length = this._length = i; - for (var i = length - 1; i >= 0; --i) { - var stack = nodes[i].stack; - if (stackToIndex[stack] === undefined) { - stackToIndex[stack] = i; - } - } - for (var i = 0; i < length; ++i) { - var currentStack = nodes[i].stack; - var index = stackToIndex[currentStack]; - if (index !== undefined && index !== i) { - if (index > 0) { - nodes[index - 1]._parent = undefined; - nodes[index - 1]._length = 1; - } - nodes[i]._parent = undefined; - nodes[i]._length = 1; - var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; - - if (index < length - 1) { - cycleEdgeNode._parent = nodes[index + 1]; - cycleEdgeNode._parent.uncycle(); - cycleEdgeNode._length = - cycleEdgeNode._parent._length + 1; - } else { - cycleEdgeNode._parent = undefined; - cycleEdgeNode._length = 1; - } - var currentChildLength = cycleEdgeNode._length + 1; - for (var j = i - 2; j >= 0; --j) { - nodes[j]._length = currentChildLength; - currentChildLength++; - } - return; - } - } -}; - -CapturedTrace.prototype.attachExtraTrace = function(error) { - if (error.__stackCleaned__) return; - this.uncycle(); - var parsed = parseStackAndMessage(error); - var message = parsed.message; - var stacks = [parsed.stack]; - - var trace = this; - while (trace !== undefined) { - stacks.push(cleanStack(trace.stack.split("\n"))); - trace = trace._parent; - } - removeCommonRoots(stacks); - removeDuplicateOrEmptyJumps(stacks); - util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); - util.notEnumerableProp(error, "__stackCleaned__", true); -}; - -var captureStackTrace = (function stackDetection() { - var v8stackFramePattern = /^\s*at\s*/; - var v8stackFormatter = function(stack, error) { - if (typeof stack === "string") return stack; - - if (error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - if (typeof Error.stackTraceLimit === "number" && - typeof Error.captureStackTrace === "function") { - Error.stackTraceLimit += 6; - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - var captureStackTrace = Error.captureStackTrace; - - shouldIgnore = function(line) { - return bluebirdFramePattern.test(line); - }; - return function(receiver, ignoreUntil) { - Error.stackTraceLimit += 6; - captureStackTrace(receiver, ignoreUntil); - Error.stackTraceLimit -= 6; - }; - } - var err = new Error(); - - if (typeof err.stack === "string" && - err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { - stackFramePattern = /@/; - formatStack = v8stackFormatter; - indentStackFrames = true; - return function captureStackTrace(o) { - o.stack = new Error().stack; - }; - } - - var hasStackAfterThrow; - try { throw new Error(); } - catch(e) { - hasStackAfterThrow = ("stack" in e); - } - if (!("stack" in err) && hasStackAfterThrow && - typeof Error.stackTraceLimit === "number") { - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - return function captureStackTrace(o) { - Error.stackTraceLimit += 6; - try { throw new Error(); } - catch(e) { o.stack = e.stack; } - Error.stackTraceLimit -= 6; - }; - } - - formatStack = function(stack, error) { - if (typeof stack === "string") return stack; - - if ((typeof error === "object" || - typeof error === "function") && - error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - return null; - -})([]); - -if (typeof console !== "undefined" && typeof console.warn !== "undefined") { - printWarning = function (message) { - console.warn(message); - }; - if (util.isNode && process.stderr.isTTY) { - printWarning = function(message, isSoft) { - var color = isSoft ? "\u001b[33m" : "\u001b[31m"; - console.warn(color + message + "\u001b[0m\n"); - }; - } else if (!util.isNode && typeof (new Error().stack) === "string") { - printWarning = function(message, isSoft) { - console.warn("%c" + message, - isSoft ? "color: darkorange" : "color: red"); - }; - } -} - -var config = { - warnings: warnings, - longStackTraces: false, - cancellation: false, - monitoring: false -}; - -if (longStackTraces) Promise.longStackTraces(); - -return { - longStackTraces: function() { - return config.longStackTraces; - }, - warnings: function() { - return config.warnings; - }, - cancellation: function() { - return config.cancellation; - }, - monitoring: function() { - return config.monitoring; - }, - propagateFromFunction: function() { - return propagateFromFunction; - }, - boundValueFunction: function() { - return boundValueFunction; - }, - checkForgottenReturns: checkForgottenReturns, - setBounds: setBounds, - warn: warn, - deprecated: deprecated, - CapturedTrace: CapturedTrace, - fireDomEvent: fireDomEvent, - fireGlobalEvent: fireGlobalEvent -}; -}; - -},{"./errors":12,"./util":36}],10:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -function returner() { - return this.value; -} -function thrower() { - throw this.reason; -} - -Promise.prototype["return"] = -Promise.prototype.thenReturn = function (value) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - returner, undefined, undefined, {value: value}, undefined); -}; - -Promise.prototype["throw"] = -Promise.prototype.thenThrow = function (reason) { - return this._then( - thrower, undefined, undefined, {reason: reason}, undefined); -}; - -Promise.prototype.catchThrow = function (reason) { - if (arguments.length <= 1) { - return this._then( - undefined, thrower, undefined, {reason: reason}, undefined); - } else { - var _reason = arguments[1]; - var handler = function() {throw _reason;}; - return this.caught(reason, handler); - } -}; - -Promise.prototype.catchReturn = function (value) { - if (arguments.length <= 1) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - undefined, returner, undefined, {value: value}, undefined); - } else { - var _value = arguments[1]; - if (_value instanceof Promise) _value.suppressUnhandledRejections(); - var handler = function() {return _value;}; - return this.caught(value, handler); - } -}; -}; - -},{}],11:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var PromiseReduce = Promise.reduce; -var PromiseAll = Promise.all; - -function promiseAllThis() { - return PromiseAll(this); -} - -function PromiseMapSeries(promises, fn) { - return PromiseReduce(promises, fn, INTERNAL, INTERNAL); -} - -Promise.prototype.each = function (fn) { - return this.mapSeries(fn) - ._then(promiseAllThis, undefined, undefined, this, undefined); -}; - -Promise.prototype.mapSeries = function (fn) { - return PromiseReduce(this, fn, INTERNAL, INTERNAL); -}; - -Promise.each = function (promises, fn) { - return PromiseMapSeries(promises, fn) - ._then(promiseAllThis, undefined, undefined, promises, undefined); -}; - -Promise.mapSeries = PromiseMapSeries; -}; - -},{}],12:[function(_dereq_,module,exports){ -"use strict"; -var es5 = _dereq_("./es5"); -var Objectfreeze = es5.freeze; -var util = _dereq_("./util"); -var inherits = util.inherits; -var notEnumerableProp = util.notEnumerableProp; - -function subError(nameProperty, defaultMessage) { - function SubError(message) { - if (!(this instanceof SubError)) return new SubError(message); - notEnumerableProp(this, "message", - typeof message === "string" ? message : defaultMessage); - notEnumerableProp(this, "name", nameProperty); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - Error.call(this); - } - } - inherits(SubError, Error); - return SubError; -} - -var _TypeError, _RangeError; -var Warning = subError("Warning", "warning"); -var CancellationError = subError("CancellationError", "cancellation error"); -var TimeoutError = subError("TimeoutError", "timeout error"); -var AggregateError = subError("AggregateError", "aggregate error"); -try { - _TypeError = TypeError; - _RangeError = RangeError; -} catch(e) { - _TypeError = subError("TypeError", "type error"); - _RangeError = subError("RangeError", "range error"); -} - -var methods = ("join pop push shift unshift slice filter forEach some " + - "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); - -for (var i = 0; i < methods.length; ++i) { - if (typeof Array.prototype[methods[i]] === "function") { - AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; - } -} - -es5.defineProperty(AggregateError.prototype, "length", { - value: 0, - configurable: false, - writable: true, - enumerable: true -}); -AggregateError.prototype["isOperational"] = true; -var level = 0; -AggregateError.prototype.toString = function() { - var indent = Array(level * 4 + 1).join(" "); - var ret = "\n" + indent + "AggregateError of:" + "\n"; - level++; - indent = Array(level * 4 + 1).join(" "); - for (var i = 0; i < this.length; ++i) { - var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; - var lines = str.split("\n"); - for (var j = 0; j < lines.length; ++j) { - lines[j] = indent + lines[j]; - } - str = lines.join("\n"); - ret += str + "\n"; - } - level--; - return ret; -}; - -function OperationalError(message) { - if (!(this instanceof OperationalError)) - return new OperationalError(message); - notEnumerableProp(this, "name", "OperationalError"); - notEnumerableProp(this, "message", message); - this.cause = message; - this["isOperational"] = true; - - if (message instanceof Error) { - notEnumerableProp(this, "message", message.message); - notEnumerableProp(this, "stack", message.stack); - } else if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - -} -inherits(OperationalError, Error); - -var errorTypes = Error["__BluebirdErrorTypes__"]; -if (!errorTypes) { - errorTypes = Objectfreeze({ - CancellationError: CancellationError, - TimeoutError: TimeoutError, - OperationalError: OperationalError, - RejectionError: OperationalError, - AggregateError: AggregateError - }); - es5.defineProperty(Error, "__BluebirdErrorTypes__", { - value: errorTypes, - writable: false, - enumerable: false, - configurable: false - }); -} - -module.exports = { - Error: Error, - TypeError: _TypeError, - RangeError: _RangeError, - CancellationError: errorTypes.CancellationError, - OperationalError: errorTypes.OperationalError, - TimeoutError: errorTypes.TimeoutError, - AggregateError: errorTypes.AggregateError, - Warning: Warning -}; - -},{"./es5":13,"./util":36}],13:[function(_dereq_,module,exports){ -var isES5 = (function(){ - "use strict"; - return this === undefined; -})(); - -if (isES5) { - module.exports = { - freeze: Object.freeze, - defineProperty: Object.defineProperty, - getDescriptor: Object.getOwnPropertyDescriptor, - keys: Object.keys, - names: Object.getOwnPropertyNames, - getPrototypeOf: Object.getPrototypeOf, - isArray: Array.isArray, - isES5: isES5, - propertyIsWritable: function(obj, prop) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop); - return !!(!descriptor || descriptor.writable || descriptor.set); - } - }; -} else { - var has = {}.hasOwnProperty; - var str = {}.toString; - var proto = {}.constructor.prototype; - - var ObjectKeys = function (o) { - var ret = []; - for (var key in o) { - if (has.call(o, key)) { - ret.push(key); - } - } - return ret; - }; - - var ObjectGetDescriptor = function(o, key) { - return {value: o[key]}; - }; - - var ObjectDefineProperty = function (o, key, desc) { - o[key] = desc.value; - return o; - }; - - var ObjectFreeze = function (obj) { - return obj; - }; - - var ObjectGetPrototypeOf = function (obj) { - try { - return Object(obj).constructor.prototype; - } - catch (e) { - return proto; - } - }; - - var ArrayIsArray = function (obj) { - try { - return str.call(obj) === "[object Array]"; - } - catch(e) { - return false; - } - }; - - module.exports = { - isArray: ArrayIsArray, - keys: ObjectKeys, - names: ObjectKeys, - defineProperty: ObjectDefineProperty, - getDescriptor: ObjectGetDescriptor, - freeze: ObjectFreeze, - getPrototypeOf: ObjectGetPrototypeOf, - isES5: isES5, - propertyIsWritable: function() { - return true; - } - }; -} - -},{}],14:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var PromiseMap = Promise.map; - -Promise.prototype.filter = function (fn, options) { - return PromiseMap(this, fn, options, INTERNAL); -}; - -Promise.filter = function (promises, fn, options) { - return PromiseMap(promises, fn, options, INTERNAL); -}; -}; - -},{}],15:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, tryConvertToPromise) { -var util = _dereq_("./util"); -var CancellationError = Promise.CancellationError; -var errorObj = util.errorObj; - -function PassThroughHandlerContext(promise, type, handler) { - this.promise = promise; - this.type = type; - this.handler = handler; - this.called = false; - this.cancelPromise = null; -} - -PassThroughHandlerContext.prototype.isFinallyHandler = function() { - return this.type === 0; -}; - -function FinallyHandlerCancelReaction(finallyHandler) { - this.finallyHandler = finallyHandler; -} - -FinallyHandlerCancelReaction.prototype._resultCancelled = function() { - checkCancel(this.finallyHandler); -}; - -function checkCancel(ctx, reason) { - if (ctx.cancelPromise != null) { - if (arguments.length > 1) { - ctx.cancelPromise._reject(reason); - } else { - ctx.cancelPromise._cancel(); - } - ctx.cancelPromise = null; - return true; - } - return false; -} - -function succeed() { - return finallyHandler.call(this, this.promise._target()._settledValue()); -} -function fail(reason) { - if (checkCancel(this, reason)) return; - errorObj.e = reason; - return errorObj; -} -function finallyHandler(reasonOrValue) { - var promise = this.promise; - var handler = this.handler; - - if (!this.called) { - this.called = true; - var ret = this.isFinallyHandler() - ? handler.call(promise._boundValue()) - : handler.call(promise._boundValue(), reasonOrValue); - if (ret !== undefined) { - promise._setReturnedNonUndefined(); - var maybePromise = tryConvertToPromise(ret, promise); - if (maybePromise instanceof Promise) { - if (this.cancelPromise != null) { - if (maybePromise.isCancelled()) { - var reason = - new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - errorObj.e = reason; - return errorObj; - } else if (maybePromise.isPending()) { - maybePromise._attachCancellationCallback( - new FinallyHandlerCancelReaction(this)); - } - } - return maybePromise._then( - succeed, fail, undefined, this, undefined); - } - } - } - - if (promise.isRejected()) { - checkCancel(this); - errorObj.e = reasonOrValue; - return errorObj; - } else { - checkCancel(this); - return reasonOrValue; - } -} - -Promise.prototype._passThrough = function(handler, type, success, fail) { - if (typeof handler !== "function") return this.then(); - return this._then(success, - fail, - undefined, - new PassThroughHandlerContext(this, type, handler), - undefined); -}; - -Promise.prototype.lastly = -Promise.prototype["finally"] = function (handler) { - return this._passThrough(handler, - 0, - finallyHandler, - finallyHandler); -}; - -Promise.prototype.tap = function (handler) { - return this._passThrough(handler, 1, finallyHandler); -}; - -return PassThroughHandlerContext; -}; - -},{"./util":36}],16:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, - apiRejection, - INTERNAL, - tryConvertToPromise, - Proxyable, - debug) { -var errors = _dereq_("./errors"); -var TypeError = errors.TypeError; -var util = _dereq_("./util"); -var errorObj = util.errorObj; -var tryCatch = util.tryCatch; -var yieldHandlers = []; - -function promiseFromYieldHandler(value, yieldHandlers, traceParent) { - for (var i = 0; i < yieldHandlers.length; ++i) { - traceParent._pushContext(); - var result = tryCatch(yieldHandlers[i])(value); - traceParent._popContext(); - if (result === errorObj) { - traceParent._pushContext(); - var ret = Promise.reject(errorObj.e); - traceParent._popContext(); - return ret; - } - var maybePromise = tryConvertToPromise(result, traceParent); - if (maybePromise instanceof Promise) return maybePromise; - } - return null; -} - -function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { - if (debug.cancellation()) { - var internal = new Promise(INTERNAL); - var _finallyPromise = this._finallyPromise = new Promise(INTERNAL); - this._promise = internal.lastly(function() { - return _finallyPromise; - }); - internal._captureStackTrace(); - internal._setOnCancel(this); - } else { - var promise = this._promise = new Promise(INTERNAL); - promise._captureStackTrace(); - } - this._stack = stack; - this._generatorFunction = generatorFunction; - this._receiver = receiver; - this._generator = undefined; - this._yieldHandlers = typeof yieldHandler === "function" - ? [yieldHandler].concat(yieldHandlers) - : yieldHandlers; - this._yieldedPromise = null; - this._cancellationPhase = false; -} -util.inherits(PromiseSpawn, Proxyable); - -PromiseSpawn.prototype._isResolved = function() { - return this._promise === null; -}; - -PromiseSpawn.prototype._cleanup = function() { - this._promise = this._generator = null; - if (debug.cancellation() && this._finallyPromise !== null) { - this._finallyPromise._fulfill(); - this._finallyPromise = null; - } -}; - -PromiseSpawn.prototype._promiseCancelled = function() { - if (this._isResolved()) return; - var implementsReturn = typeof this._generator["return"] !== "undefined"; - - var result; - if (!implementsReturn) { - var reason = new Promise.CancellationError( - "generator .return() sentinel"); - Promise.coroutine.returnSentinel = reason; - this._promise._attachExtraTrace(reason); - this._promise._pushContext(); - result = tryCatch(this._generator["throw"]).call(this._generator, - reason); - this._promise._popContext(); - } else { - this._promise._pushContext(); - result = tryCatch(this._generator["return"]).call(this._generator, - undefined); - this._promise._popContext(); - } - this._cancellationPhase = true; - this._yieldedPromise = null; - this._continue(result); -}; - -PromiseSpawn.prototype._promiseFulfilled = function(value) { - this._yieldedPromise = null; - this._promise._pushContext(); - var result = tryCatch(this._generator.next).call(this._generator, value); - this._promise._popContext(); - this._continue(result); -}; - -PromiseSpawn.prototype._promiseRejected = function(reason) { - this._yieldedPromise = null; - this._promise._attachExtraTrace(reason); - this._promise._pushContext(); - var result = tryCatch(this._generator["throw"]) - .call(this._generator, reason); - this._promise._popContext(); - this._continue(result); -}; - -PromiseSpawn.prototype._resultCancelled = function() { - if (this._yieldedPromise instanceof Promise) { - var promise = this._yieldedPromise; - this._yieldedPromise = null; - promise.cancel(); - } -}; - -PromiseSpawn.prototype.promise = function () { - return this._promise; -}; - -PromiseSpawn.prototype._run = function () { - this._generator = this._generatorFunction.call(this._receiver); - this._receiver = - this._generatorFunction = undefined; - this._promiseFulfilled(undefined); -}; - -PromiseSpawn.prototype._continue = function (result) { - var promise = this._promise; - if (result === errorObj) { - this._cleanup(); - if (this._cancellationPhase) { - return promise.cancel(); - } else { - return promise._rejectCallback(result.e, false); - } - } - - var value = result.value; - if (result.done === true) { - this._cleanup(); - if (this._cancellationPhase) { - return promise.cancel(); - } else { - return promise._resolveCallback(value); - } - } else { - var maybePromise = tryConvertToPromise(value, this._promise); - if (!(maybePromise instanceof Promise)) { - maybePromise = - promiseFromYieldHandler(maybePromise, - this._yieldHandlers, - this._promise); - if (maybePromise === null) { - this._promiseRejected( - new TypeError( - "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", value) + - "From coroutine:\u000a" + - this._stack.split("\n").slice(1, -7).join("\n") - ) - ); - return; - } - } - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - this._yieldedPromise = maybePromise; - maybePromise._proxy(this, null); - } else if (((bitField & 33554432) !== 0)) { - this._promiseFulfilled(maybePromise._value()); - } else if (((bitField & 16777216) !== 0)) { - this._promiseRejected(maybePromise._reason()); - } else { - this._promiseCancelled(); - } - } -}; - -Promise.coroutine = function (generatorFunction, options) { - if (typeof generatorFunction !== "function") { - throw new TypeError("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var yieldHandler = Object(options).yieldHandler; - var PromiseSpawn$ = PromiseSpawn; - var stack = new Error().stack; - return function () { - var generator = generatorFunction.apply(this, arguments); - var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, - stack); - var ret = spawn.promise(); - spawn._generator = generator; - spawn._promiseFulfilled(undefined); - return ret; - }; -}; - -Promise.coroutine.addYieldHandler = function(fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - yieldHandlers.push(fn); -}; - -Promise.spawn = function (generatorFunction) { - debug.deprecated("Promise.spawn()", "Promise.coroutine()"); - if (typeof generatorFunction !== "function") { - return apiRejection("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var spawn = new PromiseSpawn(generatorFunction, this); - var ret = spawn.promise(); - spawn._run(Promise.spawn); - return ret; -}; -}; - -},{"./errors":12,"./util":36}],17:[function(_dereq_,module,exports){ -"use strict"; -module.exports = -function(Promise, PromiseArray, tryConvertToPromise, INTERNAL) { -var util = _dereq_("./util"); -var canEvaluate = util.canEvaluate; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var reject; - -if (!true) { -if (canEvaluate) { - var thenCallback = function(i) { - return new Function("value", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = value; \n\ - holder.checkFulfillment(this); \n\ - ".replace(/Index/g, i)); - }; - - var promiseSetter = function(i) { - return new Function("promise", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = promise; \n\ - ".replace(/Index/g, i)); - }; - - var generateHolderClass = function(total) { - var props = new Array(total); - for (var i = 0; i < props.length; ++i) { - props[i] = "this.p" + (i+1); - } - var assignment = props.join(" = ") + " = null;"; - var cancellationCode= "var promise;\n" + props.map(function(prop) { - return " \n\ - promise = " + prop + "; \n\ - if (promise instanceof Promise) { \n\ - promise.cancel(); \n\ - } \n\ - "; - }).join("\n"); - var passedArguments = props.join(", "); - var name = "Holder$" + total; - - - var code = "return function(tryCatch, errorObj, Promise) { \n\ - 'use strict'; \n\ - function [TheName](fn) { \n\ - [TheProperties] \n\ - this.fn = fn; \n\ - this.now = 0; \n\ - } \n\ - [TheName].prototype.checkFulfillment = function(promise) { \n\ - var now = ++this.now; \n\ - if (now === [TheTotal]) { \n\ - promise._pushContext(); \n\ - var callback = this.fn; \n\ - var ret = tryCatch(callback)([ThePassedArguments]); \n\ - promise._popContext(); \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(ret.e, false); \n\ - } else { \n\ - promise._resolveCallback(ret); \n\ - } \n\ - } \n\ - }; \n\ - \n\ - [TheName].prototype._resultCancelled = function() { \n\ - [CancellationCode] \n\ - }; \n\ - \n\ - return [TheName]; \n\ - }(tryCatch, errorObj, Promise); \n\ - "; - - code = code.replace(/\[TheName\]/g, name) - .replace(/\[TheTotal\]/g, total) - .replace(/\[ThePassedArguments\]/g, passedArguments) - .replace(/\[TheProperties\]/g, assignment) - .replace(/\[CancellationCode\]/g, cancellationCode); - - return new Function("tryCatch", "errorObj", "Promise", code) - (tryCatch, errorObj, Promise); - }; - - var holderClasses = []; - var thenCallbacks = []; - var promiseSetters = []; - - for (var i = 0; i < 8; ++i) { - holderClasses.push(generateHolderClass(i + 1)); - thenCallbacks.push(thenCallback(i + 1)); - promiseSetters.push(promiseSetter(i + 1)); - } - - reject = function (reason) { - this._reject(reason); - }; -}} - -Promise.join = function () { - var last = arguments.length - 1; - var fn; - if (last > 0 && typeof arguments[last] === "function") { - fn = arguments[last]; - if (!true) { - if (last <= 8 && canEvaluate) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var HolderClass = holderClasses[last - 1]; - var holder = new HolderClass(fn); - var callbacks = thenCallbacks; - - for (var i = 0; i < last; ++i) { - var maybePromise = tryConvertToPromise(arguments[i], ret); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - maybePromise._then(callbacks[i], reject, - undefined, ret, holder); - promiseSetters[i](maybePromise, holder); - } else if (((bitField & 33554432) !== 0)) { - callbacks[i].call(ret, - maybePromise._value(), holder); - } else if (((bitField & 16777216) !== 0)) { - ret._reject(maybePromise._reason()); - } else { - ret._cancel(); - } - } else { - callbacks[i].call(ret, maybePromise, holder); - } - } - if (!ret._isFateSealed()) { - ret._setAsyncGuaranteed(); - ret._setOnCancel(holder); - } - return ret; - } - } - } - var args = [].slice.call(arguments);; - if (fn) args.pop(); - var ret = new PromiseArray(args).promise(); - return fn !== undefined ? ret.spread(fn) : ret; -}; - -}; - -},{"./util":36}],18:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, - PromiseArray, - apiRejection, - tryConvertToPromise, - INTERNAL, - debug) { -var getDomain = Promise._getDomain; -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var EMPTY_ARRAY = []; - -function MappingPromiseArray(promises, fn, limit, _filter) { - this.constructor$(promises); - this._promise._captureStackTrace(); - var domain = getDomain(); - this._callback = domain === null ? fn : domain.bind(fn); - this._preservedValues = _filter === INTERNAL - ? new Array(this.length()) - : null; - this._limit = limit; - this._inFlight = 0; - this._queue = limit >= 1 ? [] : EMPTY_ARRAY; - this._init$(undefined, -2); -} -util.inherits(MappingPromiseArray, PromiseArray); - -MappingPromiseArray.prototype._init = function () {}; - -MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { - var values = this._values; - var length = this.length(); - var preservedValues = this._preservedValues; - var limit = this._limit; - - if (index < 0) { - index = (index * -1) - 1; - values[index] = value; - if (limit >= 1) { - this._inFlight--; - this._drainQueue(); - if (this._isResolved()) return true; - } - } else { - if (limit >= 1 && this._inFlight >= limit) { - values[index] = value; - this._queue.push(index); - return false; - } - if (preservedValues !== null) preservedValues[index] = value; - - var promise = this._promise; - var callback = this._callback; - var receiver = promise._boundValue(); - promise._pushContext(); - var ret = tryCatch(callback).call(receiver, value, index, length); - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, - promiseCreated, - preservedValues !== null ? "Promise.filter" : "Promise.map", - promise - ); - if (ret === errorObj) { - this._reject(ret.e); - return true; - } - - var maybePromise = tryConvertToPromise(ret, this._promise); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - if (limit >= 1) this._inFlight++; - values[index] = maybePromise; - maybePromise._proxy(this, (index + 1) * -1); - return false; - } else if (((bitField & 33554432) !== 0)) { - ret = maybePromise._value(); - } else if (((bitField & 16777216) !== 0)) { - this._reject(maybePromise._reason()); - return true; - } else { - this._cancel(); - return true; - } - } - values[index] = ret; - } - var totalResolved = ++this._totalResolved; - if (totalResolved >= length) { - if (preservedValues !== null) { - this._filter(values, preservedValues); - } else { - this._resolve(values); - } - return true; - } - return false; -}; - -MappingPromiseArray.prototype._drainQueue = function () { - var queue = this._queue; - var limit = this._limit; - var values = this._values; - while (queue.length > 0 && this._inFlight < limit) { - if (this._isResolved()) return; - var index = queue.pop(); - this._promiseFulfilled(values[index], index); - } -}; - -MappingPromiseArray.prototype._filter = function (booleans, values) { - var len = values.length; - var ret = new Array(len); - var j = 0; - for (var i = 0; i < len; ++i) { - if (booleans[i]) ret[j++] = values[i]; - } - ret.length = j; - this._resolve(ret); -}; - -MappingPromiseArray.prototype.preservedValues = function () { - return this._preservedValues; -}; - -function map(promises, fn, options, _filter) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var limit = typeof options === "object" && options !== null - ? options.concurrency - : 0; - limit = typeof limit === "number" && - isFinite(limit) && limit >= 1 ? limit : 0; - return new MappingPromiseArray(promises, fn, limit, _filter).promise(); -} - -Promise.prototype.map = function (fn, options) { - return map(this, fn, options, null); -}; - -Promise.map = function (promises, fn, options, _filter) { - return map(promises, fn, options, _filter); -}; - - -}; - -},{"./util":36}],19:[function(_dereq_,module,exports){ -"use strict"; -module.exports = -function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; - -Promise.method = function (fn) { - if (typeof fn !== "function") { - throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); - } - return function () { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value = tryCatch(fn).apply(this, arguments); - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.method", ret); - ret._resolveFromSyncValue(value); - return ret; - }; -}; - -Promise.attempt = Promise["try"] = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value; - if (arguments.length > 1) { - debug.deprecated("calling Promise.try with more than 1 argument"); - var arg = arguments[1]; - var ctx = arguments[2]; - value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) - : tryCatch(fn).call(ctx, arg); - } else { - value = tryCatch(fn)(); - } - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.try", ret); - ret._resolveFromSyncValue(value); - return ret; -}; - -Promise.prototype._resolveFromSyncValue = function (value) { - if (value === util.errorObj) { - this._rejectCallback(value.e, false); - } else { - this._resolveCallback(value, true); - } -}; -}; - -},{"./util":36}],20:[function(_dereq_,module,exports){ -"use strict"; -var util = _dereq_("./util"); -var maybeWrapAsError = util.maybeWrapAsError; -var errors = _dereq_("./errors"); -var OperationalError = errors.OperationalError; -var es5 = _dereq_("./es5"); - -function isUntypedError(obj) { - return obj instanceof Error && - es5.getPrototypeOf(obj) === Error.prototype; -} - -var rErrorKey = /^(?:name|message|stack|cause)$/; -function wrapAsOperationalError(obj) { - var ret; - if (isUntypedError(obj)) { - ret = new OperationalError(obj); - ret.name = obj.name; - ret.message = obj.message; - ret.stack = obj.stack; - var keys = es5.keys(obj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!rErrorKey.test(key)) { - ret[key] = obj[key]; - } - } - return ret; - } - util.markAsOriginatingFromRejection(obj); - return obj; -} - -function nodebackForPromise(promise, multiArgs) { - return function(err, value) { - if (promise === null) return; - if (err) { - var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); - promise._attachExtraTrace(wrapped); - promise._reject(wrapped); - } else if (!multiArgs) { - promise._fulfill(value); - } else { - var args = [].slice.call(arguments, 1);; - promise._fulfill(args); - } - promise = null; - }; -} - -module.exports = nodebackForPromise; - -},{"./errors":12,"./es5":13,"./util":36}],21:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -var util = _dereq_("./util"); -var async = Promise._async; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; - -function spreadAdapter(val, nodeback) { - var promise = this; - if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); - var ret = - tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} - -function successAdapter(val, nodeback) { - var promise = this; - var receiver = promise._boundValue(); - var ret = val === undefined - ? tryCatch(nodeback).call(receiver, null) - : tryCatch(nodeback).call(receiver, null, val); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} -function errorAdapter(reason, nodeback) { - var promise = this; - if (!reason) { - var newReason = new Error(reason + ""); - newReason.cause = reason; - reason = newReason; - } - var ret = tryCatch(nodeback).call(promise._boundValue(), reason); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} - -Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, - options) { - if (typeof nodeback == "function") { - var adapter = successAdapter; - if (options !== undefined && Object(options).spread) { - adapter = spreadAdapter; - } - this._then( - adapter, - errorAdapter, - undefined, - this, - nodeback - ); - } - return this; -}; -}; - -},{"./util":36}],22:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function() { -var makeSelfResolutionError = function () { - return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var reflectHandler = function() { - return new Promise.PromiseInspection(this._target()); -}; -var apiRejection = function(msg) { - return Promise.reject(new TypeError(msg)); -}; -function Proxyable() {} -var UNDEFINED_BINDING = {}; -var util = _dereq_("./util"); - -var getDomain; -if (util.isNode) { - getDomain = function() { - var ret = process.domain; - if (ret === undefined) ret = null; - return ret; - }; -} else { - getDomain = function() { - return null; - }; -} -util.notEnumerableProp(Promise, "_getDomain", getDomain); - -var es5 = _dereq_("./es5"); -var Async = _dereq_("./async"); -var async = new Async(); -es5.defineProperty(Promise, "_async", {value: async}); -var errors = _dereq_("./errors"); -var TypeError = Promise.TypeError = errors.TypeError; -Promise.RangeError = errors.RangeError; -var CancellationError = Promise.CancellationError = errors.CancellationError; -Promise.TimeoutError = errors.TimeoutError; -Promise.OperationalError = errors.OperationalError; -Promise.RejectionError = errors.OperationalError; -Promise.AggregateError = errors.AggregateError; -var INTERNAL = function(){}; -var APPLY = {}; -var NEXT_FILTER = {}; -var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); -var PromiseArray = - _dereq_("./promise_array")(Promise, INTERNAL, - tryConvertToPromise, apiRejection, Proxyable); -var Context = _dereq_("./context")(Promise); - /*jshint unused:false*/ -var createContext = Context.create; -var debug = _dereq_("./debuggability")(Promise, Context); -var CapturedTrace = debug.CapturedTrace; -var PassThroughHandlerContext = - _dereq_("./finally")(Promise, tryConvertToPromise); -var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); -var nodebackForPromise = _dereq_("./nodeback"); -var errorObj = util.errorObj; -var tryCatch = util.tryCatch; -function check(self, executor) { - if (typeof executor !== "function") { - throw new TypeError("expecting a function but got " + util.classString(executor)); - } - if (self.constructor !== Promise) { - throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } -} - -function Promise(executor) { - this._bitField = 0; - this._fulfillmentHandler0 = undefined; - this._rejectionHandler0 = undefined; - this._promise0 = undefined; - this._receiver0 = undefined; - if (executor !== INTERNAL) { - check(this, executor); - this._resolveFromExecutor(executor); - } - this._promiseCreated(); - this._fireEvent("promiseCreated", this); -} - -Promise.prototype.toString = function () { - return "[object Promise]"; -}; - -Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { - var len = arguments.length; - if (len > 1) { - var catchInstances = new Array(len - 1), - j = 0, i; - for (i = 0; i < len - 1; ++i) { - var item = arguments[i]; - if (util.isObject(item)) { - catchInstances[j++] = item; - } else { - return apiRejection("expecting an object but got " + util.classString(item)); - } - } - catchInstances.length = j; - fn = arguments[i]; - return this.then(undefined, catchFilter(catchInstances, fn, this)); - } - return this.then(undefined, fn); -}; - -Promise.prototype.reflect = function () { - return this._then(reflectHandler, - reflectHandler, undefined, this, undefined); -}; - -Promise.prototype.then = function (didFulfill, didReject) { - if (debug.warnings() && arguments.length > 0 && - typeof didFulfill !== "function" && - typeof didReject !== "function") { - var msg = ".then() only accepts functions but was passed: " + - util.classString(didFulfill); - if (arguments.length > 1) { - msg += ", " + util.classString(didReject); - } - this._warn(msg); - } - return this._then(didFulfill, didReject, undefined, undefined, undefined); -}; - -Promise.prototype.done = function (didFulfill, didReject) { - var promise = - this._then(didFulfill, didReject, undefined, undefined, undefined); - promise._setIsFinal(); -}; - -Promise.prototype.spread = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - return this.all()._then(fn, undefined, undefined, APPLY, undefined); -}; - -Promise.prototype.toJSON = function () { - var ret = { - isFulfilled: false, - isRejected: false, - fulfillmentValue: undefined, - rejectionReason: undefined - }; - if (this.isFulfilled()) { - ret.fulfillmentValue = this.value(); - ret.isFulfilled = true; - } else if (this.isRejected()) { - ret.rejectionReason = this.reason(); - ret.isRejected = true; - } - return ret; -}; - -Promise.prototype.all = function () { - if (arguments.length > 0) { - this._warn(".all() was passed arguments but it does not take any"); - } - return new PromiseArray(this).promise(); -}; - -Promise.prototype.error = function (fn) { - return this.caught(util.originatesFromRejection, fn); -}; - -Promise.is = function (val) { - return val instanceof Promise; -}; - -Promise.fromNode = Promise.fromCallback = function(fn) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs - : false; - var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); - if (result === errorObj) { - ret._rejectCallback(result.e, true); - } - if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); - return ret; -}; - -Promise.all = function (promises) { - return new PromiseArray(promises).promise(); -}; - -Promise.cast = function (obj) { - var ret = tryConvertToPromise(obj); - if (!(ret instanceof Promise)) { - ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._setFulfilled(); - ret._rejectionHandler0 = obj; - } - return ret; -}; - -Promise.resolve = Promise.fulfilled = Promise.cast; - -Promise.reject = Promise.rejected = function (reason) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._rejectCallback(reason, true); - return ret; -}; - -Promise.setScheduler = function(fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - return async.setScheduler(fn); -}; - -Promise.prototype._then = function ( - didFulfill, - didReject, - _, receiver, - internalData -) { - var haveInternalData = internalData !== undefined; - var promise = haveInternalData ? internalData : new Promise(INTERNAL); - var target = this._target(); - var bitField = target._bitField; - - if (!haveInternalData) { - promise._propagateFrom(this, 3); - promise._captureStackTrace(); - if (receiver === undefined && - ((this._bitField & 2097152) !== 0)) { - if (!((bitField & 50397184) === 0)) { - receiver = this._boundValue(); - } else { - receiver = target === this ? undefined : this._boundTo; - } - } - this._fireEvent("promiseChained", this, promise); - } - - var domain = getDomain(); - if (!((bitField & 50397184) === 0)) { - var handler, value, settler = target._settlePromiseCtx; - if (((bitField & 33554432) !== 0)) { - value = target._rejectionHandler0; - handler = didFulfill; - } else if (((bitField & 16777216) !== 0)) { - value = target._fulfillmentHandler0; - handler = didReject; - target._unsetRejectionIsUnhandled(); - } else { - settler = target._settlePromiseLateCancellationObserver; - value = new CancellationError("late cancellation observer"); - target._attachExtraTrace(value); - handler = didReject; - } - - async.invoke(settler, target, { - handler: domain === null ? handler - : (typeof handler === "function" && domain.bind(handler)), - promise: promise, - receiver: receiver, - value: value - }); - } else { - target._addCallbacks(didFulfill, didReject, promise, receiver, domain); - } - - return promise; -}; - -Promise.prototype._length = function () { - return this._bitField & 65535; -}; - -Promise.prototype._isFateSealed = function () { - return (this._bitField & 117506048) !== 0; -}; - -Promise.prototype._isFollowing = function () { - return (this._bitField & 67108864) === 67108864; -}; - -Promise.prototype._setLength = function (len) { - this._bitField = (this._bitField & -65536) | - (len & 65535); -}; - -Promise.prototype._setFulfilled = function () { - this._bitField = this._bitField | 33554432; - this._fireEvent("promiseFulfilled", this); -}; - -Promise.prototype._setRejected = function () { - this._bitField = this._bitField | 16777216; - this._fireEvent("promiseRejected", this); -}; - -Promise.prototype._setFollowing = function () { - this._bitField = this._bitField | 67108864; - this._fireEvent("promiseResolved", this); -}; - -Promise.prototype._setIsFinal = function () { - this._bitField = this._bitField | 4194304; -}; - -Promise.prototype._isFinal = function () { - return (this._bitField & 4194304) > 0; -}; - -Promise.prototype._unsetCancelled = function() { - this._bitField = this._bitField & (~65536); -}; - -Promise.prototype._setCancelled = function() { - this._bitField = this._bitField | 65536; - this._fireEvent("promiseCancelled", this); -}; - -Promise.prototype._setAsyncGuaranteed = function() { - if (async.hasCustomScheduler()) return; - this._bitField = this._bitField | 134217728; -}; - -Promise.prototype._receiverAt = function (index) { - var ret = index === 0 ? this._receiver0 : this[ - index * 4 - 4 + 3]; - if (ret === UNDEFINED_BINDING) { - return undefined; - } else if (ret === undefined && this._isBound()) { - return this._boundValue(); - } - return ret; -}; - -Promise.prototype._promiseAt = function (index) { - return this[ - index * 4 - 4 + 2]; -}; - -Promise.prototype._fulfillmentHandlerAt = function (index) { - return this[ - index * 4 - 4 + 0]; -}; - -Promise.prototype._rejectionHandlerAt = function (index) { - return this[ - index * 4 - 4 + 1]; -}; - -Promise.prototype._boundValue = function() {}; - -Promise.prototype._migrateCallback0 = function (follower) { - var bitField = follower._bitField; - var fulfill = follower._fulfillmentHandler0; - var reject = follower._rejectionHandler0; - var promise = follower._promise0; - var receiver = follower._receiverAt(0); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._migrateCallbackAt = function (follower, index) { - var fulfill = follower._fulfillmentHandlerAt(index); - var reject = follower._rejectionHandlerAt(index); - var promise = follower._promiseAt(index); - var receiver = follower._receiverAt(index); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._addCallbacks = function ( - fulfill, - reject, - promise, - receiver, - domain -) { - var index = this._length(); - - if (index >= 65535 - 4) { - index = 0; - this._setLength(0); - } - - if (index === 0) { - this._promise0 = promise; - this._receiver0 = receiver; - if (typeof fulfill === "function") { - this._fulfillmentHandler0 = - domain === null ? fulfill : domain.bind(fulfill); - } - if (typeof reject === "function") { - this._rejectionHandler0 = - domain === null ? reject : domain.bind(reject); - } - } else { - var base = index * 4 - 4; - this[base + 2] = promise; - this[base + 3] = receiver; - if (typeof fulfill === "function") { - this[base + 0] = - domain === null ? fulfill : domain.bind(fulfill); - } - if (typeof reject === "function") { - this[base + 1] = - domain === null ? reject : domain.bind(reject); - } - } - this._setLength(index + 1); - return index; -}; - -Promise.prototype._proxy = function (proxyable, arg) { - this._addCallbacks(undefined, undefined, arg, proxyable, null); -}; - -Promise.prototype._resolveCallback = function(value, shouldBind) { - if (((this._bitField & 117506048) !== 0)) return; - if (value === this) - return this._rejectCallback(makeSelfResolutionError(), false); - var maybePromise = tryConvertToPromise(value, this); - if (!(maybePromise instanceof Promise)) return this._fulfill(value); - - if (shouldBind) this._propagateFrom(maybePromise, 2); - - var promise = maybePromise._target(); - - if (promise === this) { - this._reject(makeSelfResolutionError()); - return; - } - - var bitField = promise._bitField; - if (((bitField & 50397184) === 0)) { - var len = this._length(); - if (len > 0) promise._migrateCallback0(this); - for (var i = 1; i < len; ++i) { - promise._migrateCallbackAt(this, i); - } - this._setFollowing(); - this._setLength(0); - this._setFollowee(promise); - } else if (((bitField & 33554432) !== 0)) { - this._fulfill(promise._value()); - } else if (((bitField & 16777216) !== 0)) { - this._reject(promise._reason()); - } else { - var reason = new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - this._reject(reason); - } -}; - -Promise.prototype._rejectCallback = -function(reason, synchronous, ignoreNonErrorWarnings) { - var trace = util.ensureErrorObject(reason); - var hasStack = trace === reason; - if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { - var message = "a promise was rejected with a non-error: " + - util.classString(reason); - this._warn(message, true); - } - this._attachExtraTrace(trace, synchronous ? hasStack : false); - this._reject(reason); -}; - -Promise.prototype._resolveFromExecutor = function (executor) { - var promise = this; - this._captureStackTrace(); - this._pushContext(); - var synchronous = true; - var r = this._execute(executor, function(value) { - promise._resolveCallback(value); - }, function (reason) { - promise._rejectCallback(reason, synchronous); - }); - synchronous = false; - this._popContext(); - - if (r !== undefined) { - promise._rejectCallback(r, true); - } -}; - -Promise.prototype._settlePromiseFromHandler = function ( - handler, receiver, value, promise -) { - var bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - promise._pushContext(); - var x; - if (receiver === APPLY) { - if (!value || typeof value.length !== "number") { - x = errorObj; - x.e = new TypeError("cannot .spread() a non-array: " + - util.classString(value)); - } else { - x = tryCatch(handler).apply(this._boundValue(), value); - } - } else { - x = tryCatch(handler).call(receiver, value); - } - var promiseCreated = promise._popContext(); - bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - - if (x === NEXT_FILTER) { - promise._reject(value); - } else if (x === errorObj) { - promise._rejectCallback(x.e, false); - } else { - debug.checkForgottenReturns(x, promiseCreated, "", promise, this); - promise._resolveCallback(x); - } -}; - -Promise.prototype._target = function() { - var ret = this; - while (ret._isFollowing()) ret = ret._followee(); - return ret; -}; - -Promise.prototype._followee = function() { - return this._rejectionHandler0; -}; - -Promise.prototype._setFollowee = function(promise) { - this._rejectionHandler0 = promise; -}; - -Promise.prototype._settlePromise = function(promise, handler, receiver, value) { - var isPromise = promise instanceof Promise; - var bitField = this._bitField; - var asyncGuaranteed = ((bitField & 134217728) !== 0); - if (((bitField & 65536) !== 0)) { - if (isPromise) promise._invokeInternalOnCancel(); - - if (receiver instanceof PassThroughHandlerContext && - receiver.isFinallyHandler()) { - receiver.cancelPromise = promise; - if (tryCatch(handler).call(receiver, value) === errorObj) { - promise._reject(errorObj.e); - } - } else if (handler === reflectHandler) { - promise._fulfill(reflectHandler.call(receiver)); - } else if (receiver instanceof Proxyable) { - receiver._promiseCancelled(promise); - } else if (isPromise || promise instanceof PromiseArray) { - promise._cancel(); - } else { - receiver.cancel(); - } - } else if (typeof handler === "function") { - if (!isPromise) { - handler.call(receiver, value, promise); - } else { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (receiver instanceof Proxyable) { - if (!receiver._isResolved()) { - if (((bitField & 33554432) !== 0)) { - receiver._promiseFulfilled(value, promise); - } else { - receiver._promiseRejected(value, promise); - } - } - } else if (isPromise) { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - if (((bitField & 33554432) !== 0)) { - promise._fulfill(value); - } else { - promise._reject(value); - } - } -}; - -Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { - var handler = ctx.handler; - var promise = ctx.promise; - var receiver = ctx.receiver; - var value = ctx.value; - if (typeof handler === "function") { - if (!(promise instanceof Promise)) { - handler.call(receiver, value, promise); - } else { - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (promise instanceof Promise) { - promise._reject(value); - } -}; - -Promise.prototype._settlePromiseCtx = function(ctx) { - this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); -}; - -Promise.prototype._settlePromise0 = function(handler, value, bitField) { - var promise = this._promise0; - var receiver = this._receiverAt(0); - this._promise0 = undefined; - this._receiver0 = undefined; - this._settlePromise(promise, handler, receiver, value); -}; - -Promise.prototype._clearCallbackDataAtIndex = function(index) { - var base = index * 4 - 4; - this[base + 2] = - this[base + 3] = - this[base + 0] = - this[base + 1] = undefined; -}; - -Promise.prototype._fulfill = function (value) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - if (value === this) { - var err = makeSelfResolutionError(); - this._attachExtraTrace(err); - return this._reject(err); - } - this._setFulfilled(); - this._rejectionHandler0 = value; - - if ((bitField & 65535) > 0) { - if (((bitField & 134217728) !== 0)) { - this._settlePromises(); - } else { - async.settlePromises(this); - } - } -}; - -Promise.prototype._reject = function (reason) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - this._setRejected(); - this._fulfillmentHandler0 = reason; - - if (this._isFinal()) { - return async.fatalError(reason, util.isNode); - } - - if ((bitField & 65535) > 0) { - async.settlePromises(this); - } else { - this._ensurePossibleRejectionHandled(); - } -}; - -Promise.prototype._fulfillPromises = function (len, value) { - for (var i = 1; i < len; i++) { - var handler = this._fulfillmentHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, value); - } -}; - -Promise.prototype._rejectPromises = function (len, reason) { - for (var i = 1; i < len; i++) { - var handler = this._rejectionHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, reason); - } -}; - -Promise.prototype._settlePromises = function () { - var bitField = this._bitField; - var len = (bitField & 65535); - - if (len > 0) { - if (((bitField & 16842752) !== 0)) { - var reason = this._fulfillmentHandler0; - this._settlePromise0(this._rejectionHandler0, reason, bitField); - this._rejectPromises(len, reason); - } else { - var value = this._rejectionHandler0; - this._settlePromise0(this._fulfillmentHandler0, value, bitField); - this._fulfillPromises(len, value); - } - this._setLength(0); - } - this._clearCancellationData(); -}; - -Promise.prototype._settledValue = function() { - var bitField = this._bitField; - if (((bitField & 33554432) !== 0)) { - return this._rejectionHandler0; - } else if (((bitField & 16777216) !== 0)) { - return this._fulfillmentHandler0; - } -}; - -function deferResolve(v) {this.promise._resolveCallback(v);} -function deferReject(v) {this.promise._rejectCallback(v, false);} - -Promise.defer = Promise.pending = function() { - debug.deprecated("Promise.defer", "new Promise"); - var promise = new Promise(INTERNAL); - return { - promise: promise, - resolve: deferResolve, - reject: deferReject - }; -}; - -util.notEnumerableProp(Promise, - "_makeSelfResolutionError", - makeSelfResolutionError); - -_dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, - debug); -_dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); -_dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); -_dereq_("./direct_resolve")(Promise); -_dereq_("./synchronous_inspection")(Promise); -_dereq_("./join")( - Promise, PromiseArray, tryConvertToPromise, INTERNAL, debug); -Promise.Promise = Promise; -_dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); -_dereq_('./call_get.js')(Promise); -_dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); -_dereq_('./timers.js')(Promise, INTERNAL, debug); -_dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); -_dereq_('./nodeify.js')(Promise); -_dereq_('./promisify.js')(Promise, INTERNAL); -_dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); -_dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); -_dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); -_dereq_('./settle.js')(Promise, PromiseArray, debug); -_dereq_('./some.js')(Promise, PromiseArray, apiRejection); -_dereq_('./filter.js')(Promise, INTERNAL); -_dereq_('./each.js')(Promise, INTERNAL); -_dereq_('./any.js')(Promise); - - util.toFastProperties(Promise); - util.toFastProperties(Promise.prototype); - function fillTypes(value) { - var p = new Promise(INTERNAL); - p._fulfillmentHandler0 = value; - p._rejectionHandler0 = value; - p._promise0 = value; - p._receiver0 = value; - } - // Complete slack tracking, opt out of field-type tracking and - // stabilize map - fillTypes({a: 1}); - fillTypes({b: 2}); - fillTypes({c: 3}); - fillTypes(1); - fillTypes(function(){}); - fillTypes(undefined); - fillTypes(false); - fillTypes(new Promise(INTERNAL)); - debug.setBounds(Async.firstLineError, util.lastLineError); - return Promise; - -}; - -},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, - apiRejection, Proxyable) { -var util = _dereq_("./util"); -var isArray = util.isArray; - -function toResolutionValue(val) { - switch(val) { - case -2: return []; - case -3: return {}; - } -} - -function PromiseArray(values) { - var promise = this._promise = new Promise(INTERNAL); - if (values instanceof Promise) { - promise._propagateFrom(values, 3); - } - promise._setOnCancel(this); - this._values = values; - this._length = 0; - this._totalResolved = 0; - this._init(undefined, -2); -} -util.inherits(PromiseArray, Proxyable); - -PromiseArray.prototype.length = function () { - return this._length; -}; - -PromiseArray.prototype.promise = function () { - return this._promise; -}; - -PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { - var values = tryConvertToPromise(this._values, this._promise); - if (values instanceof Promise) { - values = values._target(); - var bitField = values._bitField; - ; - this._values = values; - - if (((bitField & 50397184) === 0)) { - this._promise._setAsyncGuaranteed(); - return values._then( - init, - this._reject, - undefined, - this, - resolveValueIfEmpty - ); - } else if (((bitField & 33554432) !== 0)) { - values = values._value(); - } else if (((bitField & 16777216) !== 0)) { - return this._reject(values._reason()); - } else { - return this._cancel(); - } - } - values = util.asArray(values); - if (values === null) { - var err = apiRejection( - "expecting an array or an iterable object but got " + util.classString(values)).reason(); - this._promise._rejectCallback(err, false); - return; - } - - if (values.length === 0) { - if (resolveValueIfEmpty === -5) { - this._resolveEmptyArray(); - } - else { - this._resolve(toResolutionValue(resolveValueIfEmpty)); - } - return; - } - this._iterate(values); -}; - -PromiseArray.prototype._iterate = function(values) { - var len = this.getActualLength(values.length); - this._length = len; - this._values = this.shouldCopyValues() ? new Array(len) : this._values; - var result = this._promise; - var isResolved = false; - var bitField = null; - for (var i = 0; i < len; ++i) { - var maybePromise = tryConvertToPromise(values[i], result); - - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - bitField = maybePromise._bitField; - } else { - bitField = null; - } - - if (isResolved) { - if (bitField !== null) { - maybePromise.suppressUnhandledRejections(); - } - } else if (bitField !== null) { - if (((bitField & 50397184) === 0)) { - maybePromise._proxy(this, i); - this._values[i] = maybePromise; - } else if (((bitField & 33554432) !== 0)) { - isResolved = this._promiseFulfilled(maybePromise._value(), i); - } else if (((bitField & 16777216) !== 0)) { - isResolved = this._promiseRejected(maybePromise._reason(), i); - } else { - isResolved = this._promiseCancelled(i); - } - } else { - isResolved = this._promiseFulfilled(maybePromise, i); - } - } - if (!isResolved) result._setAsyncGuaranteed(); -}; - -PromiseArray.prototype._isResolved = function () { - return this._values === null; -}; - -PromiseArray.prototype._resolve = function (value) { - this._values = null; - this._promise._fulfill(value); -}; - -PromiseArray.prototype._cancel = function() { - if (this._isResolved() || !this._promise.isCancellable()) return; - this._values = null; - this._promise._cancel(); -}; - -PromiseArray.prototype._reject = function (reason) { - this._values = null; - this._promise._rejectCallback(reason, false); -}; - -PromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; -}; - -PromiseArray.prototype._promiseCancelled = function() { - this._cancel(); - return true; -}; - -PromiseArray.prototype._promiseRejected = function (reason) { - this._totalResolved++; - this._reject(reason); - return true; -}; - -PromiseArray.prototype._resultCancelled = function() { - if (this._isResolved()) return; - var values = this._values; - this._cancel(); - if (values instanceof Promise) { - values.cancel(); - } else { - for (var i = 0; i < values.length; ++i) { - if (values[i] instanceof Promise) { - values[i].cancel(); - } - } - } -}; - -PromiseArray.prototype.shouldCopyValues = function () { - return true; -}; - -PromiseArray.prototype.getActualLength = function (len) { - return len; -}; - -return PromiseArray; -}; - -},{"./util":36}],24:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var THIS = {}; -var util = _dereq_("./util"); -var nodebackForPromise = _dereq_("./nodeback"); -var withAppended = util.withAppended; -var maybeWrapAsError = util.maybeWrapAsError; -var canEvaluate = util.canEvaluate; -var TypeError = _dereq_("./errors").TypeError; -var defaultSuffix = "Async"; -var defaultPromisified = {__isPromisified__: true}; -var noCopyProps = [ - "arity", "length", - "name", - "arguments", - "caller", - "callee", - "prototype", - "__isPromisified__" -]; -var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); - -var defaultFilter = function(name) { - return util.isIdentifier(name) && - name.charAt(0) !== "_" && - name !== "constructor"; -}; - -function propsFilter(key) { - return !noCopyPropsPattern.test(key); -} - -function isPromisified(fn) { - try { - return fn.__isPromisified__ === true; - } - catch (e) { - return false; - } -} - -function hasPromisified(obj, key, suffix) { - var val = util.getDataPropertyOrDefault(obj, key + suffix, - defaultPromisified); - return val ? isPromisified(val) : false; -} -function checkValid(ret, suffix, suffixRegexp) { - for (var i = 0; i < ret.length; i += 2) { - var key = ret[i]; - if (suffixRegexp.test(key)) { - var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); - for (var j = 0; j < ret.length; j += 2) { - if (ret[j] === keyWithoutAsyncSuffix) { - throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a See http://goo.gl/MqrFmX\u000a" - .replace("%s", suffix)); - } - } - } - } -} - -function promisifiableMethods(obj, suffix, suffixRegexp, filter) { - var keys = util.inheritedDataKeys(obj); - var ret = []; - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var value = obj[key]; - var passesDefaultFilter = filter === defaultFilter - ? true : defaultFilter(key, value, obj); - if (typeof value === "function" && - !isPromisified(value) && - !hasPromisified(obj, key, suffix) && - filter(key, value, obj, passesDefaultFilter)) { - ret.push(key, value); - } - } - checkValid(ret, suffix, suffixRegexp); - return ret; -} - -var escapeIdentRegex = function(str) { - return str.replace(/([$])/, "\\$"); -}; - -var makeNodePromisifiedEval; -if (!true) { -var switchCaseArgumentOrder = function(likelyArgumentCount) { - var ret = [likelyArgumentCount]; - var min = Math.max(0, likelyArgumentCount - 1 - 3); - for(var i = likelyArgumentCount - 1; i >= min; --i) { - ret.push(i); - } - for(var i = likelyArgumentCount + 1; i <= 3; ++i) { - ret.push(i); - } - return ret; -}; - -var argumentSequence = function(argumentCount) { - return util.filledRange(argumentCount, "_arg", ""); -}; - -var parameterDeclaration = function(parameterCount) { - return util.filledRange( - Math.max(parameterCount, 3), "_arg", ""); -}; - -var parameterCount = function(fn) { - if (typeof fn.length === "number") { - return Math.max(Math.min(fn.length, 1023 + 1), 0); - } - return 0; -}; - -makeNodePromisifiedEval = -function(callback, receiver, originalName, fn, _, multiArgs) { - var newParameterCount = Math.max(0, parameterCount(fn) - 1); - var argumentOrder = switchCaseArgumentOrder(newParameterCount); - var shouldProxyThis = typeof callback === "string" || receiver === THIS; - - function generateCallForArgumentCount(count) { - var args = argumentSequence(count).join(", "); - var comma = count > 0 ? ", " : ""; - var ret; - if (shouldProxyThis) { - ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; - } else { - ret = receiver === undefined - ? "ret = callback({{args}}, nodeback); break;\n" - : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; - } - return ret.replace("{{args}}", args).replace(", ", comma); - } - - function generateArgumentSwitchCase() { - var ret = ""; - for (var i = 0; i < argumentOrder.length; ++i) { - ret += "case " + argumentOrder[i] +":" + - generateCallForArgumentCount(argumentOrder[i]); - } - - ret += " \n\ - default: \n\ - var args = new Array(len + 1); \n\ - var i = 0; \n\ - for (var i = 0; i < len; ++i) { \n\ - args[i] = arguments[i]; \n\ - } \n\ - args[i] = nodeback; \n\ - [CodeForCall] \n\ - break; \n\ - ".replace("[CodeForCall]", (shouldProxyThis - ? "ret = callback.apply(this, args);\n" - : "ret = callback.apply(receiver, args);\n")); - return ret; - } - - var getFunctionCode = typeof callback === "string" - ? ("this != null ? this['"+callback+"'] : fn") - : "fn"; - var body = "'use strict'; \n\ - var ret = function (Parameters) { \n\ - 'use strict'; \n\ - var len = arguments.length; \n\ - var promise = new Promise(INTERNAL); \n\ - promise._captureStackTrace(); \n\ - var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ - var ret; \n\ - var callback = tryCatch([GetFunctionCode]); \n\ - switch(len) { \n\ - [CodeForSwitchCase] \n\ - } \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ - } \n\ - if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ - return promise; \n\ - }; \n\ - notEnumerableProp(ret, '__isPromisified__', true); \n\ - return ret; \n\ - ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()) - .replace("[GetFunctionCode]", getFunctionCode); - body = body.replace("Parameters", parameterDeclaration(newParameterCount)); - return new Function("Promise", - "fn", - "receiver", - "withAppended", - "maybeWrapAsError", - "nodebackForPromise", - "tryCatch", - "errorObj", - "notEnumerableProp", - "INTERNAL", - body)( - Promise, - fn, - receiver, - withAppended, - maybeWrapAsError, - nodebackForPromise, - util.tryCatch, - util.errorObj, - util.notEnumerableProp, - INTERNAL); -}; -} - -function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { - var defaultThis = (function() {return this;})(); - var method = callback; - if (typeof method === "string") { - callback = fn; - } - function promisified() { - var _receiver = receiver; - if (receiver === THIS) _receiver = this; - var promise = new Promise(INTERNAL); - promise._captureStackTrace(); - var cb = typeof method === "string" && this !== defaultThis - ? this[method] : callback; - var fn = nodebackForPromise(promise, multiArgs); - try { - cb.apply(_receiver, withAppended(arguments, fn)); - } catch(e) { - promise._rejectCallback(maybeWrapAsError(e), true, true); - } - if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); - return promise; - } - util.notEnumerableProp(promisified, "__isPromisified__", true); - return promisified; -} - -var makeNodePromisified = canEvaluate - ? makeNodePromisifiedEval - : makeNodePromisifiedClosure; - -function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { - var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); - var methods = - promisifiableMethods(obj, suffix, suffixRegexp, filter); - - for (var i = 0, len = methods.length; i < len; i+= 2) { - var key = methods[i]; - var fn = methods[i+1]; - var promisifiedKey = key + suffix; - if (promisifier === makeNodePromisified) { - obj[promisifiedKey] = - makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); - } else { - var promisified = promisifier(fn, function() { - return makeNodePromisified(key, THIS, key, - fn, suffix, multiArgs); - }); - util.notEnumerableProp(promisified, "__isPromisified__", true); - obj[promisifiedKey] = promisified; - } - } - util.toFastProperties(obj); - return obj; -} - -function promisify(callback, receiver, multiArgs) { - return makeNodePromisified(callback, receiver, undefined, - callback, null, multiArgs); -} - -Promise.promisify = function (fn, options) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - if (isPromisified(fn)) { - return fn; - } - options = Object(options); - var receiver = options.context === undefined ? THIS : options.context; - var multiArgs = !!options.multiArgs; - var ret = promisify(fn, receiver, multiArgs); - util.copyDescriptors(fn, ret, propsFilter); - return ret; -}; - -Promise.promisifyAll = function (target, options) { - if (typeof target !== "function" && typeof target !== "object") { - throw new TypeError("the target of promisifyAll must be an object or a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - options = Object(options); - var multiArgs = !!options.multiArgs; - var suffix = options.suffix; - if (typeof suffix !== "string") suffix = defaultSuffix; - var filter = options.filter; - if (typeof filter !== "function") filter = defaultFilter; - var promisifier = options.promisifier; - if (typeof promisifier !== "function") promisifier = makeNodePromisified; - - if (!util.isIdentifier(suffix)) { - throw new RangeError("suffix must be a valid identifier\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - - var keys = util.inheritedDataKeys(target); - for (var i = 0; i < keys.length; ++i) { - var value = target[keys[i]]; - if (keys[i] !== "constructor" && - util.isClass(value)) { - promisifyAll(value.prototype, suffix, filter, promisifier, - multiArgs); - promisifyAll(value, suffix, filter, promisifier, multiArgs); - } - } - - return promisifyAll(target, suffix, filter, promisifier, multiArgs); -}; -}; - - -},{"./errors":12,"./nodeback":20,"./util":36}],25:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function( - Promise, PromiseArray, tryConvertToPromise, apiRejection) { -var util = _dereq_("./util"); -var isObject = util.isObject; -var es5 = _dereq_("./es5"); -var Es6Map; -if (typeof Map === "function") Es6Map = Map; - -var mapToEntries = (function() { - var index = 0; - var size = 0; - - function extractEntry(value, key) { - this[index] = value; - this[index + size] = key; - index++; - } - - return function mapToEntries(map) { - size = map.size; - index = 0; - var ret = new Array(map.size * 2); - map.forEach(extractEntry, ret); - return ret; - }; -})(); - -var entriesToMap = function(entries) { - var ret = new Es6Map(); - var length = entries.length / 2 | 0; - for (var i = 0; i < length; ++i) { - var key = entries[length + i]; - var value = entries[i]; - ret.set(key, value); - } - return ret; -}; - -function PropertiesPromiseArray(obj) { - var isMap = false; - var entries; - if (Es6Map !== undefined && obj instanceof Es6Map) { - entries = mapToEntries(obj); - isMap = true; - } else { - var keys = es5.keys(obj); - var len = keys.length; - entries = new Array(len * 2); - for (var i = 0; i < len; ++i) { - var key = keys[i]; - entries[i] = obj[key]; - entries[i + len] = key; - } - } - this.constructor$(entries); - this._isMap = isMap; - this._init$(undefined, -3); -} -util.inherits(PropertiesPromiseArray, PromiseArray); - -PropertiesPromiseArray.prototype._init = function () {}; - -PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - var val; - if (this._isMap) { - val = entriesToMap(this._values); - } else { - val = {}; - var keyOffset = this.length(); - for (var i = 0, len = this.length(); i < len; ++i) { - val[this._values[i + keyOffset]] = this._values[i]; - } - } - this._resolve(val); - return true; - } - return false; -}; - -PropertiesPromiseArray.prototype.shouldCopyValues = function () { - return false; -}; - -PropertiesPromiseArray.prototype.getActualLength = function (len) { - return len >> 1; -}; - -function props(promises) { - var ret; - var castValue = tryConvertToPromise(promises); - - if (!isObject(castValue)) { - return apiRejection("cannot await properties of a non-object\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } else if (castValue instanceof Promise) { - ret = castValue._then( - Promise.props, undefined, undefined, undefined, undefined); - } else { - ret = new PropertiesPromiseArray(castValue).promise(); - } - - if (castValue instanceof Promise) { - ret._propagateFrom(castValue, 2); - } - return ret; -} - -Promise.prototype.props = function () { - return props(this); -}; - -Promise.props = function (promises) { - return props(promises); -}; -}; - -},{"./es5":13,"./util":36}],26:[function(_dereq_,module,exports){ -"use strict"; -function arrayMove(src, srcIndex, dst, dstIndex, len) { - for (var j = 0; j < len; ++j) { - dst[j + dstIndex] = src[j + srcIndex]; - src[j + srcIndex] = void 0; - } -} - -function Queue(capacity) { - this._capacity = capacity; - this._length = 0; - this._front = 0; -} - -Queue.prototype._willBeOverCapacity = function (size) { - return this._capacity < size; -}; - -Queue.prototype._pushOne = function (arg) { - var length = this.length(); - this._checkCapacity(length + 1); - var i = (this._front + length) & (this._capacity - 1); - this[i] = arg; - this._length = length + 1; -}; - -Queue.prototype._unshiftOne = function(value) { - var capacity = this._capacity; - this._checkCapacity(this.length() + 1); - var front = this._front; - var i = (((( front - 1 ) & - ( capacity - 1) ) ^ capacity ) - capacity ); - this[i] = value; - this._front = i; - this._length = this.length() + 1; -}; - -Queue.prototype.unshift = function(fn, receiver, arg) { - this._unshiftOne(arg); - this._unshiftOne(receiver); - this._unshiftOne(fn); -}; - -Queue.prototype.push = function (fn, receiver, arg) { - var length = this.length() + 3; - if (this._willBeOverCapacity(length)) { - this._pushOne(fn); - this._pushOne(receiver); - this._pushOne(arg); - return; - } - var j = this._front + length - 3; - this._checkCapacity(length); - var wrapMask = this._capacity - 1; - this[(j + 0) & wrapMask] = fn; - this[(j + 1) & wrapMask] = receiver; - this[(j + 2) & wrapMask] = arg; - this._length = length; -}; - -Queue.prototype.shift = function () { - var front = this._front, - ret = this[front]; - - this[front] = undefined; - this._front = (front + 1) & (this._capacity - 1); - this._length--; - return ret; -}; - -Queue.prototype.length = function () { - return this._length; -}; - -Queue.prototype._checkCapacity = function (size) { - if (this._capacity < size) { - this._resizeTo(this._capacity << 1); - } -}; - -Queue.prototype._resizeTo = function (capacity) { - var oldCapacity = this._capacity; - this._capacity = capacity; - var front = this._front; - var length = this._length; - var moveItemsCount = (front + length) & (oldCapacity - 1); - arrayMove(this, 0, this, oldCapacity, moveItemsCount); -}; - -module.exports = Queue; - -},{}],27:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function( - Promise, INTERNAL, tryConvertToPromise, apiRejection) { -var util = _dereq_("./util"); - -var raceLater = function (promise) { - return promise.then(function(array) { - return race(array, promise); - }); -}; - -function race(promises, parent) { - var maybePromise = tryConvertToPromise(promises); - - if (maybePromise instanceof Promise) { - return raceLater(maybePromise); - } else { - promises = util.asArray(promises); - if (promises === null) - return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); - } - - var ret = new Promise(INTERNAL); - if (parent !== undefined) { - ret._propagateFrom(parent, 3); - } - var fulfill = ret._fulfill; - var reject = ret._reject; - for (var i = 0, len = promises.length; i < len; ++i) { - var val = promises[i]; - - if (val === undefined && !(i in promises)) { - continue; - } - - Promise.cast(val)._then(fulfill, reject, undefined, ret, null); - } - return ret; -} - -Promise.race = function (promises) { - return race(promises, undefined); -}; - -Promise.prototype.race = function () { - return race(this, undefined); -}; - -}; - -},{"./util":36}],28:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, - PromiseArray, - apiRejection, - tryConvertToPromise, - INTERNAL, - debug) { -var getDomain = Promise._getDomain; -var util = _dereq_("./util"); -var tryCatch = util.tryCatch; - -function ReductionPromiseArray(promises, fn, initialValue, _each) { - this.constructor$(promises); - var domain = getDomain(); - this._fn = domain === null ? fn : domain.bind(fn); - if (initialValue !== undefined) { - initialValue = Promise.resolve(initialValue); - initialValue._attachCancellationCallback(this); - } - this._initialValue = initialValue; - this._currentCancellable = null; - this._eachValues = _each === INTERNAL ? [] : undefined; - this._promise._captureStackTrace(); - this._init$(undefined, -5); -} -util.inherits(ReductionPromiseArray, PromiseArray); - -ReductionPromiseArray.prototype._gotAccum = function(accum) { - if (this._eachValues !== undefined && accum !== INTERNAL) { - this._eachValues.push(accum); - } -}; - -ReductionPromiseArray.prototype._eachComplete = function(value) { - this._eachValues.push(value); - return this._eachValues; -}; - -ReductionPromiseArray.prototype._init = function() {}; - -ReductionPromiseArray.prototype._resolveEmptyArray = function() { - this._resolve(this._eachValues !== undefined ? this._eachValues - : this._initialValue); -}; - -ReductionPromiseArray.prototype.shouldCopyValues = function () { - return false; -}; - -ReductionPromiseArray.prototype._resolve = function(value) { - this._promise._resolveCallback(value); - this._values = null; -}; - -ReductionPromiseArray.prototype._resultCancelled = function(sender) { - if (sender === this._initialValue) return this._cancel(); - if (this._isResolved()) return; - this._resultCancelled$(); - if (this._currentCancellable instanceof Promise) { - this._currentCancellable.cancel(); - } - if (this._initialValue instanceof Promise) { - this._initialValue.cancel(); - } -}; - -ReductionPromiseArray.prototype._iterate = function (values) { - this._values = values; - var value; - var i; - var length = values.length; - if (this._initialValue !== undefined) { - value = this._initialValue; - i = 0; - } else { - value = Promise.resolve(values[0]); - i = 1; - } - - this._currentCancellable = value; - - if (!value.isRejected()) { - for (; i < length; ++i) { - var ctx = { - accum: null, - value: values[i], - index: i, - length: length, - array: this - }; - value = value._then(gotAccum, undefined, undefined, ctx, undefined); - } - } - - if (this._eachValues !== undefined) { - value = value - ._then(this._eachComplete, undefined, undefined, this, undefined); - } - value._then(completed, completed, undefined, value, this); -}; - -Promise.prototype.reduce = function (fn, initialValue) { - return reduce(this, fn, initialValue, null); -}; - -Promise.reduce = function (promises, fn, initialValue, _each) { - return reduce(promises, fn, initialValue, _each); -}; - -function completed(valueOrReason, array) { - if (this.isFulfilled()) { - array._resolve(valueOrReason); - } else { - array._reject(valueOrReason); - } -} - -function reduce(promises, fn, initialValue, _each) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var array = new ReductionPromiseArray(promises, fn, initialValue, _each); - return array.promise(); -} - -function gotAccum(accum) { - this.accum = accum; - this.array._gotAccum(accum); - var value = tryConvertToPromise(this.value, this.array._promise); - if (value instanceof Promise) { - this.array._currentCancellable = value; - return value._then(gotValue, undefined, undefined, this, undefined); - } else { - return gotValue.call(this, value); - } -} - -function gotValue(value) { - var array = this.array; - var promise = array._promise; - var fn = tryCatch(array._fn); - promise._pushContext(); - var ret; - if (array._eachValues !== undefined) { - ret = fn.call(promise._boundValue(), value, this.index, this.length); - } else { - ret = fn.call(promise._boundValue(), - this.accum, value, this.index, this.length); - } - if (ret instanceof Promise) { - array._currentCancellable = ret; - } - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, - promiseCreated, - array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", - promise - ); - return ret; -} -}; - -},{"./util":36}],29:[function(_dereq_,module,exports){ -"use strict"; -var util = _dereq_("./util"); -var schedule; -var noAsyncScheduler = function() { - throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var NativePromise = util.getNativePromise(); -if (util.isNode && typeof MutationObserver === "undefined") { - var GlobalSetImmediate = global.setImmediate; - var ProcessNextTick = process.nextTick; - schedule = util.isRecentNode - ? function(fn) { GlobalSetImmediate.call(global, fn); } - : function(fn) { ProcessNextTick.call(process, fn); }; -} else if (typeof NativePromise === "function") { - var nativePromise = NativePromise.resolve(); - schedule = function(fn) { - nativePromise.then(fn); - }; -} else if ((typeof MutationObserver !== "undefined") && - !(typeof window !== "undefined" && - window.navigator && - window.navigator.standalone)) { - schedule = (function() { - var div = document.createElement("div"); - var opts = {attributes: true}; - var toggleScheduled = false; - var div2 = document.createElement("div"); - var o2 = new MutationObserver(function() { - div.classList.toggle("foo"); - toggleScheduled = false; - }); - o2.observe(div2, opts); - - var scheduleToggle = function() { - if (toggleScheduled) return; - toggleScheduled = true; - div2.classList.toggle("foo"); - }; - - return function schedule(fn) { - var o = new MutationObserver(function() { - o.disconnect(); - fn(); - }); - o.observe(div, opts); - scheduleToggle(); - }; - })(); -} else if (typeof setImmediate !== "undefined") { - schedule = function (fn) { - setImmediate(fn); - }; -} else if (typeof setTimeout !== "undefined") { - schedule = function (fn) { - setTimeout(fn, 0); - }; -} else { - schedule = noAsyncScheduler; -} -module.exports = schedule; - -},{"./util":36}],30:[function(_dereq_,module,exports){ -"use strict"; -module.exports = - function(Promise, PromiseArray, debug) { -var PromiseInspection = Promise.PromiseInspection; -var util = _dereq_("./util"); - -function SettledPromiseArray(values) { - this.constructor$(values); -} -util.inherits(SettledPromiseArray, PromiseArray); - -SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { - this._values[index] = inspection; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; -}; - -SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { - var ret = new PromiseInspection(); - ret._bitField = 33554432; - ret._settledValueField = value; - return this._promiseResolved(index, ret); -}; -SettledPromiseArray.prototype._promiseRejected = function (reason, index) { - var ret = new PromiseInspection(); - ret._bitField = 16777216; - ret._settledValueField = reason; - return this._promiseResolved(index, ret); -}; - -Promise.settle = function (promises) { - debug.deprecated(".settle()", ".reflect()"); - return new SettledPromiseArray(promises).promise(); -}; - -Promise.prototype.settle = function () { - return Promise.settle(this); -}; -}; - -},{"./util":36}],31:[function(_dereq_,module,exports){ -"use strict"; -module.exports = -function(Promise, PromiseArray, apiRejection) { -var util = _dereq_("./util"); -var RangeError = _dereq_("./errors").RangeError; -var AggregateError = _dereq_("./errors").AggregateError; -var isArray = util.isArray; -var CANCELLATION = {}; - - -function SomePromiseArray(values) { - this.constructor$(values); - this._howMany = 0; - this._unwrap = false; - this._initialized = false; -} -util.inherits(SomePromiseArray, PromiseArray); - -SomePromiseArray.prototype._init = function () { - if (!this._initialized) { - return; - } - if (this._howMany === 0) { - this._resolve([]); - return; - } - this._init$(undefined, -5); - var isArrayResolved = isArray(this._values); - if (!this._isResolved() && - isArrayResolved && - this._howMany > this._canPossiblyFulfill()) { - this._reject(this._getRangeError(this.length())); - } -}; - -SomePromiseArray.prototype.init = function () { - this._initialized = true; - this._init(); -}; - -SomePromiseArray.prototype.setUnwrap = function () { - this._unwrap = true; -}; - -SomePromiseArray.prototype.howMany = function () { - return this._howMany; -}; - -SomePromiseArray.prototype.setHowMany = function (count) { - this._howMany = count; -}; - -SomePromiseArray.prototype._promiseFulfilled = function (value) { - this._addFulfilled(value); - if (this._fulfilled() === this.howMany()) { - this._values.length = this.howMany(); - if (this.howMany() === 1 && this._unwrap) { - this._resolve(this._values[0]); - } else { - this._resolve(this._values); - } - return true; - } - return false; - -}; -SomePromiseArray.prototype._promiseRejected = function (reason) { - this._addRejected(reason); - return this._checkOutcome(); -}; - -SomePromiseArray.prototype._promiseCancelled = function () { - if (this._values instanceof Promise || this._values == null) { - return this._cancel(); - } - this._addRejected(CANCELLATION); - return this._checkOutcome(); -}; - -SomePromiseArray.prototype._checkOutcome = function() { - if (this.howMany() > this._canPossiblyFulfill()) { - var e = new AggregateError(); - for (var i = this.length(); i < this._values.length; ++i) { - if (this._values[i] !== CANCELLATION) { - e.push(this._values[i]); - } - } - if (e.length > 0) { - this._reject(e); - } else { - this._cancel(); - } - return true; - } - return false; -}; - -SomePromiseArray.prototype._fulfilled = function () { - return this._totalResolved; -}; - -SomePromiseArray.prototype._rejected = function () { - return this._values.length - this.length(); -}; - -SomePromiseArray.prototype._addRejected = function (reason) { - this._values.push(reason); -}; - -SomePromiseArray.prototype._addFulfilled = function (value) { - this._values[this._totalResolved++] = value; -}; - -SomePromiseArray.prototype._canPossiblyFulfill = function () { - return this.length() - this._rejected(); -}; - -SomePromiseArray.prototype._getRangeError = function (count) { - var message = "Input array must contain at least " + - this._howMany + " items but contains only " + count + " items"; - return new RangeError(message); -}; - -SomePromiseArray.prototype._resolveEmptyArray = function () { - this._reject(this._getRangeError(0)); -}; - -function some(promises, howMany) { - if ((howMany | 0) !== howMany || howMany < 0) { - return apiRejection("expecting a positive integer\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var ret = new SomePromiseArray(promises); - var promise = ret.promise(); - ret.setHowMany(howMany); - ret.init(); - return promise; -} - -Promise.some = function (promises, howMany) { - return some(promises, howMany); -}; - -Promise.prototype.some = function (howMany) { - return some(this, howMany); -}; - -Promise._SomePromiseArray = SomePromiseArray; -}; - -},{"./errors":12,"./util":36}],32:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise) { -function PromiseInspection(promise) { - if (promise !== undefined) { - promise = promise._target(); - this._bitField = promise._bitField; - this._settledValueField = promise._isFateSealed() - ? promise._settledValue() : undefined; - } - else { - this._bitField = 0; - this._settledValueField = undefined; - } -} - -PromiseInspection.prototype._settledValue = function() { - return this._settledValueField; -}; - -var value = PromiseInspection.prototype.value = function () { - if (!this.isFulfilled()) { - throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var reason = PromiseInspection.prototype.error = -PromiseInspection.prototype.reason = function () { - if (!this.isRejected()) { - throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { - return (this._bitField & 33554432) !== 0; -}; - -var isRejected = PromiseInspection.prototype.isRejected = function () { - return (this._bitField & 16777216) !== 0; -}; - -var isPending = PromiseInspection.prototype.isPending = function () { - return (this._bitField & 50397184) === 0; -}; - -var isResolved = PromiseInspection.prototype.isResolved = function () { - return (this._bitField & 50331648) !== 0; -}; - -PromiseInspection.prototype.isCancelled = -Promise.prototype._isCancelled = function() { - return (this._bitField & 65536) === 65536; -}; - -Promise.prototype.isCancelled = function() { - return this._target()._isCancelled(); -}; - -Promise.prototype.isPending = function() { - return isPending.call(this._target()); -}; - -Promise.prototype.isRejected = function() { - return isRejected.call(this._target()); -}; - -Promise.prototype.isFulfilled = function() { - return isFulfilled.call(this._target()); -}; - -Promise.prototype.isResolved = function() { - return isResolved.call(this._target()); -}; - -Promise.prototype.value = function() { - return value.call(this._target()); -}; - -Promise.prototype.reason = function() { - var target = this._target(); - target._unsetRejectionIsUnhandled(); - return reason.call(target); -}; - -Promise.prototype._value = function() { - return this._settledValue(); -}; - -Promise.prototype._reason = function() { - this._unsetRejectionIsUnhandled(); - return this._settledValue(); -}; - -Promise.PromiseInspection = PromiseInspection; -}; - -},{}],33:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var util = _dereq_("./util"); -var errorObj = util.errorObj; -var isObject = util.isObject; - -function tryConvertToPromise(obj, context) { - if (isObject(obj)) { - if (obj instanceof Promise) return obj; - var then = getThen(obj); - if (then === errorObj) { - if (context) context._pushContext(); - var ret = Promise.reject(then.e); - if (context) context._popContext(); - return ret; - } else if (typeof then === "function") { - if (isAnyBluebirdPromise(obj)) { - var ret = new Promise(INTERNAL); - obj._then( - ret._fulfill, - ret._reject, - undefined, - ret, - null - ); - return ret; - } - return doThenable(obj, then, context); - } - } - return obj; -} - -function doGetThen(obj) { - return obj.then; -} - -function getThen(obj) { - try { - return doGetThen(obj); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} - -var hasProp = {}.hasOwnProperty; -function isAnyBluebirdPromise(obj) { - return hasProp.call(obj, "_promise0"); -} - -function doThenable(x, then, context) { - var promise = new Promise(INTERNAL); - var ret = promise; - if (context) context._pushContext(); - promise._captureStackTrace(); - if (context) context._popContext(); - var synchronous = true; - var result = util.tryCatch(then).call(x, resolve, reject); - synchronous = false; - - if (promise && result === errorObj) { - promise._rejectCallback(result.e, true, true); - promise = null; - } - - function resolve(value) { - if (!promise) return; - promise._resolveCallback(value); - promise = null; - } - - function reject(reason) { - if (!promise) return; - promise._rejectCallback(reason, synchronous, true); - promise = null; - } - return ret; -} - -return tryConvertToPromise; -}; - -},{"./util":36}],34:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function(Promise, INTERNAL, debug) { -var util = _dereq_("./util"); -var TimeoutError = Promise.TimeoutError; - -function HandleWrapper(handle) { - this.handle = handle; -} - -HandleWrapper.prototype._resultCancelled = function() { - clearTimeout(this.handle); -}; - -var afterValue = function(value) { return delay(+this).thenReturn(value); }; -var delay = Promise.delay = function (ms, value) { - var ret; - var handle; - if (value !== undefined) { - ret = Promise.resolve(value) - ._then(afterValue, null, null, ms, undefined); - if (debug.cancellation() && value instanceof Promise) { - ret._setOnCancel(value); - } - } else { - ret = new Promise(INTERNAL); - handle = setTimeout(function() { ret._fulfill(); }, +ms); - if (debug.cancellation()) { - ret._setOnCancel(new HandleWrapper(handle)); - } - } - ret._setAsyncGuaranteed(); - return ret; -}; - -Promise.prototype.delay = function (ms) { - return delay(ms, this); -}; - -var afterTimeout = function (promise, message, parent) { - var err; - if (typeof message !== "string") { - if (message instanceof Error) { - err = message; - } else { - err = new TimeoutError("operation timed out"); - } - } else { - err = new TimeoutError(message); - } - util.markAsOriginatingFromRejection(err); - promise._attachExtraTrace(err); - promise._reject(err); - - if (parent != null) { - parent.cancel(); - } -}; - -function successClear(value) { - clearTimeout(this.handle); - return value; -} - -function failureClear(reason) { - clearTimeout(this.handle); - throw reason; -} - -Promise.prototype.timeout = function (ms, message) { - ms = +ms; - var ret, parent; - - var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { - if (ret.isPending()) { - afterTimeout(ret, message, parent); - } - }, ms)); - - if (debug.cancellation()) { - parent = this.then(); - ret = parent._then(successClear, failureClear, - undefined, handleWrapper, undefined); - ret._setOnCancel(handleWrapper); - } else { - ret = this._then(successClear, failureClear, - undefined, handleWrapper, undefined); - } - - return ret; -}; - -}; - -},{"./util":36}],35:[function(_dereq_,module,exports){ -"use strict"; -module.exports = function (Promise, apiRejection, tryConvertToPromise, - createContext, INTERNAL, debug) { - var util = _dereq_("./util"); - var TypeError = _dereq_("./errors").TypeError; - var inherits = _dereq_("./util").inherits; - var errorObj = util.errorObj; - var tryCatch = util.tryCatch; - - function thrower(e) { - setTimeout(function(){throw e;}, 0); - } - - function castPreservingDisposable(thenable) { - var maybePromise = tryConvertToPromise(thenable); - if (maybePromise !== thenable && - typeof thenable._isDisposable === "function" && - typeof thenable._getDisposer === "function" && - thenable._isDisposable()) { - maybePromise._setDisposable(thenable._getDisposer()); - } - return maybePromise; - } - function dispose(resources, inspection) { - var i = 0; - var len = resources.length; - var ret = new Promise(INTERNAL); - function iterator() { - if (i >= len) return ret._fulfill(); - var maybePromise = castPreservingDisposable(resources[i++]); - if (maybePromise instanceof Promise && - maybePromise._isDisposable()) { - try { - maybePromise = tryConvertToPromise( - maybePromise._getDisposer().tryDispose(inspection), - resources.promise); - } catch (e) { - return thrower(e); - } - if (maybePromise instanceof Promise) { - return maybePromise._then(iterator, thrower, - null, null, null); - } - } - iterator(); - } - iterator(); - return ret; - } - - function Disposer(data, promise, context) { - this._data = data; - this._promise = promise; - this._context = context; - } - - Disposer.prototype.data = function () { - return this._data; - }; - - Disposer.prototype.promise = function () { - return this._promise; - }; - - Disposer.prototype.resource = function () { - if (this.promise().isFulfilled()) { - return this.promise().value(); - } - return null; - }; - - Disposer.prototype.tryDispose = function(inspection) { - var resource = this.resource(); - var context = this._context; - if (context !== undefined) context._pushContext(); - var ret = resource !== null - ? this.doDispose(resource, inspection) : null; - if (context !== undefined) context._popContext(); - this._promise._unsetDisposable(); - this._data = null; - return ret; - }; - - Disposer.isDisposer = function (d) { - return (d != null && - typeof d.resource === "function" && - typeof d.tryDispose === "function"); - }; - - function FunctionDisposer(fn, promise, context) { - this.constructor$(fn, promise, context); - } - inherits(FunctionDisposer, Disposer); - - FunctionDisposer.prototype.doDispose = function (resource, inspection) { - var fn = this.data(); - return fn.call(resource, resource, inspection); - }; - - function maybeUnwrapDisposer(value) { - if (Disposer.isDisposer(value)) { - this.resources[this.index]._setDisposable(value); - return value.promise(); - } - return value; - } - - function ResourceList(length) { - this.length = length; - this.promise = null; - this[length-1] = null; - } - - ResourceList.prototype._resultCancelled = function() { - var len = this.length; - for (var i = 0; i < len; ++i) { - var item = this[i]; - if (item instanceof Promise) { - item.cancel(); - } - } - }; - - Promise.using = function () { - var len = arguments.length; - if (len < 2) return apiRejection( - "you must pass at least 2 arguments to Promise.using"); - var fn = arguments[len - 1]; - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var input; - var spreadArgs = true; - if (len === 2 && Array.isArray(arguments[0])) { - input = arguments[0]; - len = input.length; - spreadArgs = false; - } else { - input = arguments; - len--; - } - var resources = new ResourceList(len); - for (var i = 0; i < len; ++i) { - var resource = input[i]; - if (Disposer.isDisposer(resource)) { - var disposer = resource; - resource = resource.promise(); - resource._setDisposable(disposer); - } else { - var maybePromise = tryConvertToPromise(resource); - if (maybePromise instanceof Promise) { - resource = - maybePromise._then(maybeUnwrapDisposer, null, null, { - resources: resources, - index: i - }, undefined); - } - } - resources[i] = resource; - } - - var reflectedResources = new Array(resources.length); - for (var i = 0; i < reflectedResources.length; ++i) { - reflectedResources[i] = Promise.resolve(resources[i]).reflect(); - } - - var resultPromise = Promise.all(reflectedResources) - .then(function(inspections) { - for (var i = 0; i < inspections.length; ++i) { - var inspection = inspections[i]; - if (inspection.isRejected()) { - errorObj.e = inspection.error(); - return errorObj; - } else if (!inspection.isFulfilled()) { - resultPromise.cancel(); - return; - } - inspections[i] = inspection.value(); - } - promise._pushContext(); - - fn = tryCatch(fn); - var ret = spreadArgs - ? fn.apply(undefined, inspections) : fn(inspections); - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, promiseCreated, "Promise.using", promise); - return ret; - }); - - var promise = resultPromise.lastly(function() { - var inspection = new Promise.PromiseInspection(resultPromise); - return dispose(resources, inspection); - }); - resources.promise = promise; - promise._setOnCancel(resources); - return promise; - }; - - Promise.prototype._setDisposable = function (disposer) { - this._bitField = this._bitField | 131072; - this._disposer = disposer; - }; - - Promise.prototype._isDisposable = function () { - return (this._bitField & 131072) > 0; - }; - - Promise.prototype._getDisposer = function () { - return this._disposer; - }; - - Promise.prototype._unsetDisposable = function () { - this._bitField = this._bitField & (~131072); - this._disposer = undefined; - }; - - Promise.prototype.disposer = function (fn) { - if (typeof fn === "function") { - return new FunctionDisposer(fn, this, createContext()); - } - throw new TypeError(); - }; - -}; - -},{"./errors":12,"./util":36}],36:[function(_dereq_,module,exports){ -"use strict"; -var es5 = _dereq_("./es5"); -var canEvaluate = typeof navigator == "undefined"; - -var errorObj = {e: {}}; -var tryCatchTarget; -var globalObject = typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : - typeof global !== "undefined" ? global : - this !== undefined ? this : null; - -function tryCatcher() { - try { - var target = tryCatchTarget; - tryCatchTarget = null; - return target.apply(this, arguments); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} -function tryCatch(fn) { - tryCatchTarget = fn; - return tryCatcher; -} - -var inherits = function(Child, Parent) { - var hasProp = {}.hasOwnProperty; - - function T() { - this.constructor = Child; - this.constructor$ = Parent; - for (var propertyName in Parent.prototype) { - if (hasProp.call(Parent.prototype, propertyName) && - propertyName.charAt(propertyName.length-1) !== "$" - ) { - this[propertyName + "$"] = Parent.prototype[propertyName]; - } - } - } - T.prototype = Parent.prototype; - Child.prototype = new T(); - return Child.prototype; -}; - - -function isPrimitive(val) { - return val == null || val === true || val === false || - typeof val === "string" || typeof val === "number"; - -} - -function isObject(value) { - return typeof value === "function" || - typeof value === "object" && value !== null; -} - -function maybeWrapAsError(maybeError) { - if (!isPrimitive(maybeError)) return maybeError; - - return new Error(safeToString(maybeError)); -} - -function withAppended(target, appendee) { - var len = target.length; - var ret = new Array(len + 1); - var i; - for (i = 0; i < len; ++i) { - ret[i] = target[i]; - } - ret[i] = appendee; - return ret; -} - -function getDataPropertyOrDefault(obj, key, defaultValue) { - if (es5.isES5) { - var desc = Object.getOwnPropertyDescriptor(obj, key); - - if (desc != null) { - return desc.get == null && desc.set == null - ? desc.value - : defaultValue; - } - } else { - return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; - } -} - -function notEnumerableProp(obj, name, value) { - if (isPrimitive(obj)) return obj; - var descriptor = { - value: value, - configurable: true, - enumerable: false, - writable: true - }; - es5.defineProperty(obj, name, descriptor); - return obj; -} - -function thrower(r) { - throw r; -} - -var inheritedDataKeys = (function() { - var excludedPrototypes = [ - Array.prototype, - Object.prototype, - Function.prototype - ]; - - var isExcludedProto = function(val) { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (excludedPrototypes[i] === val) { - return true; - } - } - return false; - }; - - if (es5.isES5) { - var getKeys = Object.getOwnPropertyNames; - return function(obj) { - var ret = []; - var visitedKeys = Object.create(null); - while (obj != null && !isExcludedProto(obj)) { - var keys; - try { - keys = getKeys(obj); - } catch (e) { - return ret; - } - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (visitedKeys[key]) continue; - visitedKeys[key] = true; - var desc = Object.getOwnPropertyDescriptor(obj, key); - if (desc != null && desc.get == null && desc.set == null) { - ret.push(key); - } - } - obj = es5.getPrototypeOf(obj); - } - return ret; - }; - } else { - var hasProp = {}.hasOwnProperty; - return function(obj) { - if (isExcludedProto(obj)) return []; - var ret = []; - - /*jshint forin:false */ - enumeration: for (var key in obj) { - if (hasProp.call(obj, key)) { - ret.push(key); - } else { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (hasProp.call(excludedPrototypes[i], key)) { - continue enumeration; - } - } - ret.push(key); - } - } - return ret; - }; - } - -})(); - -var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; -function isClass(fn) { - try { - if (typeof fn === "function") { - var keys = es5.names(fn.prototype); - - var hasMethods = es5.isES5 && keys.length > 1; - var hasMethodsOtherThanConstructor = keys.length > 0 && - !(keys.length === 1 && keys[0] === "constructor"); - var hasThisAssignmentAndStaticMethods = - thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; - - if (hasMethods || hasMethodsOtherThanConstructor || - hasThisAssignmentAndStaticMethods) { - return true; - } - } - return false; - } catch (e) { - return false; - } -} - -function toFastProperties(obj) { - /*jshint -W027,-W055,-W031*/ - function FakeConstructor() {} - FakeConstructor.prototype = obj; - var l = 8; - while (l--) new FakeConstructor(); - return obj; - eval(obj); -} - -var rident = /^[a-z$_][a-z$_0-9]*$/i; -function isIdentifier(str) { - return rident.test(str); -} - -function filledRange(count, prefix, suffix) { - var ret = new Array(count); - for(var i = 0; i < count; ++i) { - ret[i] = prefix + i + suffix; - } - return ret; -} - -function safeToString(obj) { - try { - return obj + ""; - } catch (e) { - return "[no string representation]"; - } -} - -function isError(obj) { - return obj !== null && - typeof obj === "object" && - typeof obj.message === "string" && - typeof obj.name === "string"; -} - -function markAsOriginatingFromRejection(e) { - try { - notEnumerableProp(e, "isOperational", true); - } - catch(ignore) {} -} - -function originatesFromRejection(e) { - if (e == null) return false; - return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || - e["isOperational"] === true); -} - -function canAttachTrace(obj) { - return isError(obj) && es5.propertyIsWritable(obj, "stack"); -} - -var ensureErrorObject = (function() { - if (!("stack" in new Error())) { - return function(value) { - if (canAttachTrace(value)) return value; - try {throw new Error(safeToString(value));} - catch(err) {return err;} - }; - } else { - return function(value) { - if (canAttachTrace(value)) return value; - return new Error(safeToString(value)); - }; - } -})(); - -function classString(obj) { - return {}.toString.call(obj); -} - -function copyDescriptors(from, to, filter) { - var keys = es5.names(from); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (filter(key)) { - try { - es5.defineProperty(to, key, es5.getDescriptor(from, key)); - } catch (ignore) {} - } - } -} - -var asArray = function(v) { - if (es5.isArray(v)) { - return v; - } - return null; -}; - -if (typeof Symbol !== "undefined" && Symbol.iterator) { - var ArrayFrom = typeof Array.from === "function" ? function(v) { - return Array.from(v); - } : function(v) { - var ret = []; - var it = v[Symbol.iterator](); - var itResult; - while (!((itResult = it.next()).done)) { - ret.push(itResult.value); - } - return ret; - }; - - asArray = function(v) { - if (es5.isArray(v)) { - return v; - } else if (v != null && typeof v[Symbol.iterator] === "function") { - return ArrayFrom(v); - } - return null; - }; -} - -var isNode = typeof process !== "undefined" && - classString(process).toLowerCase() === "[object process]"; - -function env(key, def) { - return isNode ? process.env[key] : def; -} - -function getNativePromise() { - if (typeof Promise === "function") { - try { - var promise = new Promise(function(){}); - if ({}.toString.call(promise) === "[object Promise]") { - return Promise; - } - } catch (e) {} - } -} - -var ret = { - isClass: isClass, - isIdentifier: isIdentifier, - inheritedDataKeys: inheritedDataKeys, - getDataPropertyOrDefault: getDataPropertyOrDefault, - thrower: thrower, - isArray: es5.isArray, - asArray: asArray, - notEnumerableProp: notEnumerableProp, - isPrimitive: isPrimitive, - isObject: isObject, - isError: isError, - canEvaluate: canEvaluate, - errorObj: errorObj, - tryCatch: tryCatch, - inherits: inherits, - withAppended: withAppended, - maybeWrapAsError: maybeWrapAsError, - toFastProperties: toFastProperties, - filledRange: filledRange, - toString: safeToString, - canAttachTrace: canAttachTrace, - ensureErrorObject: ensureErrorObject, - originatesFromRejection: originatesFromRejection, - markAsOriginatingFromRejection: markAsOriginatingFromRejection, - classString: classString, - copyDescriptors: copyDescriptors, - hasDevTools: typeof chrome !== "undefined" && chrome && - typeof chrome.loadTimes === "function", - isNode: isNode, - env: env, - global: globalObject, - getNativePromise: getNativePromise -}; -ret.isRecentNode = ret.isNode && (function() { - var version = process.versions.node.split(".").map(Number); - return (version[0] === 0 && version[1] > 10) || (version[0] > 0); -})(); - -if (ret.isNode) ret.toFastProperties(process); - -try {throw new Error(); } catch (e) {ret.lastLineError = e;} -module.exports = ret; - -},{"./es5":13}]},{},[4])(4) -}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.min.js deleted file mode 100644 index fc35327f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/browser/bluebird.min.js +++ /dev/null @@ -1,31 +0,0 @@ -/* @preserve - * The MIT License (MIT) - * - * Copyright (c) 2013-2015 Petka Antonov - * - * 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. - * - */ -/** - * bluebird build version 3.3.5 - * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each -*/ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(s,a){if(!e[s]){if(!t[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=a},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var h={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,s,void 0,u,h),l._then(a,c,void 0,u,h),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t.isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n.isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this.isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+H.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function s(t){if(!this.isCancellable())return this;var e=this._onCancel();void 0!==e?H.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function a(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function f(){this._trace=new S(this._peekContext())}function _(t,e){if(N(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=j(t);H.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),H.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&z){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="a promise was created in a "+n+"handler but was not returned from it";r._warn(o,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(rt.warnings){var i,o=new L(t);if(n)r._attachExtraTrace(o);else if(rt.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=j(o);o.stack=s.message+"\n"+s.stack.join("\n")}Y("warning",o)||k(o,"",!0)}}function m(t,e){for(var n=0;n=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function w(t){for(var e=[],n=0;n0&&(e=e.slice(n)),e}function j(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?C(t):[" (No stack trace)"],{message:n,stack:w(e)}}function k(t,e,n){if("undefined"!=typeof console){var r;if(H.isObject(t)){var i=t.stack;r=e+M(i,t)}else r=e+String(t);"function"==typeof D?D(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function E(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){I.throwLater(o)}"unhandledRejection"===t?Y(t,n,r)||i||k(n,"Unhandled rejection "):Y(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():H.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+x(e)+">, no stack trace)"}function x(t){var e=41;return t.lengths||0>a||!n||!r||n!==r||s>=a||(tt=function(t){if(U.test(t))return!0;var e=P(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function S(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);nt(this,S),e>32&&this.uncycle()}var O,A,D,V=e._getDomain,I=e._async,L=t("./errors").Warning,H=t("./util"),N=H.canAttachTrace,U=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,B=null,M=null,q=!1,Q=!(0==H.env("BLUEBIRD_DEBUG")||!H.env("BLUEBIRD_DEBUG")&&"development"!==H.env("NODE_ENV")),$=!(0==H.env("BLUEBIRD_WARNINGS")||!Q&&!H.env("BLUEBIRD_WARNINGS")),G=!(0==H.env("BLUEBIRD_LONG_STACK_TRACES")||!Q&&!H.env("BLUEBIRD_LONG_STACK_TRACES")),z=0!=H.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&($||!!H.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){0===(524288&this._bitField)&&(this._setRejectionIsUnhandled(),I.invokeLater(this._notifyUnhandledRejection,this,void 0))},e.prototype._notifyUnhandledRejectionIsHandled=function(){E("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),E("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=V();A="function"==typeof t?null===e?t:e.bind(t):void 0},e.onUnhandledRejectionHandled=function(t){var e=V();O="function"==typeof t?null===e?t:e.bind(t):void 0};var X=function(){};e.longStackTraces=function(){if(I.haveItemsQueued()&&!rt.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!rt.longStackTraces&&T()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;rt.longStackTraces=!0,X=function(){if(I.haveItemsQueued()&&!rt.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),I.enableTrampoline(),rt.longStackTraces=!1},e.prototype._captureStackTrace=f,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),I.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return rt.longStackTraces&&T()};var W=function(){try{var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),H.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!H.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),K=function(){return H.isNode?function(){return process.emit.apply(process,arguments)}:H.global?function(t){var e="on"+t.toLowerCase(),n=H.global[e];return n?(n.apply(H.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),J={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},Y=function(t){var e=!1;try{e=K.apply(null,arguments)}catch(n){I.throwLater(n),e=!0}var r=!1;try{r=W(t,J[t].apply(null,arguments))}catch(n){I.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&X()),"warnings"in t){var n=t.warnings;rt.warnings=!!n,z=rt.warnings,H.isObject(n)&&"wForgottenReturn"in n&&(z=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!rt.cancellation){if(I.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=a,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=s,e.prototype._execute=o,Z=u,rt.cancellation=!0}"monitoring"in t&&(t.monitoring&&!rt.monitoring?(rt.monitoring=!0,e.prototype._fireEvent=Y):!t.monitoring&&rt.monitoring&&(rt.monitoring=!1,e.prototype._fireEvent=i))},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var Z=p,tt=function(){return!1},et=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;H.inherits(S,Error),n.CapturedTrace=S,S.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},S.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=j(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(w(i.stack.split("\n"))),i=i._parent;b(r),g(r),H.notEnumerableProp(t,"stack",m(n,r)),H.notEnumerableProp(t,"__stackCleaned__",!0)}};var nt=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,B=t,M=e;var n=Error.captureStackTrace;return tt=function(t){return U.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return B=/@/,M=e,q=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(M=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(B=t,M=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(D=function(t){console.warn(t)},H.isNode&&process.stderr.isTTY?D=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:H.isNode||"string"!=typeof(new Error).stack||(D=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var rt={warnings:$,longStackTraces:!1,cancellation:!1,monitoring:!1};return G&&e.longStackTraces(),{longStackTraces:function(){return rt.longStackTraces},warnings:function(){return rt.warnings},cancellation:function(){return rt.cancellation},monitoring:function(){return rt.monitoring},propagateFromFunction:function(){return Z},boundValueFunction:function(){return h},checkForgottenReturns:d,setBounds:R,warn:y,deprecated:v,CapturedTrace:S,fireDomEvent:W,fireGlobalEvent:K}}},{"./errors":12,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return this.mapSeries(t)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,e){return r(t,e)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,h=r("Warning","warning"),f=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function s(){return c.call(this,this.promise._target()._settledValue())}function a(t){return o(this,t)?void 0:(p.e=t,p)}function c(t){var r=this.promise,c=this.handler;if(!this.called){this.called=!0;var l=this.isFinallyHandler()?c.call(r._boundValue()):c.call(r._boundValue(),t);if(void 0!==l){r._setReturnedNonUndefined();var h=n(l,r);if(h instanceof e){if(null!=this.cancelPromise){if(h.isCancelled()){var f=new u("late cancellation observer");return r._attachExtraTrace(f),p.e=f,p}h.isPending()&&h._attachCancellationCallback(new i(this))}return h._then(s,a,void 0,this,void 0)}}}return r.isRejected()?(o(this),p.e=t,p):(o(this),t)}var l=t("./util"),u=e.CancellationError,p=l.errorObj;return r.prototype.isFinallyHandler=function(){return 0===this.type},i.prototype._resultCancelled=function(){o(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,i){return"function"!=typeof t?this.then():this._then(n,i,void 0,new r(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,c,c)},e.prototype.tap=function(t){return this._passThrough(t,1,c)},r}},{"./util":36}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,e,n,r){this.constructor$(t),this._promise._captureStackTrace();var i=l();this._callback=null===i?e:i.bind(e), -this._preservedValues=r===o?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=n>=1?[]:f,this._init$(void 0,-2)}function c(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+u.classString(e));var o="object"==typeof n&&null!==n?n.concurrency:0;return o="number"==typeof o&&isFinite(o)&&o>=1?o:0,new a(t,e,o,i).promise()}var l=e._getDomain,u=t("./util"),p=u.tryCatch,h=u.errorObj,f=[];u.inherits(a,n),a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var l=this._promise,u=this._callback,f=l._boundValue();l._pushContext();var _=p(u).call(f,t,n,o),d=l._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",l),_===h)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var m=++this._totalResolved;return m>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=s.isArray(l)?a(t).apply(u,l):a(t).call(u,l)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!h.isObject(o))return u("expecting an object but got "+h.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,T(r,t,this))}return this.then(void 0,t)},r.prototype.reflect=function(){return this._then(l,l,void 0,this,void 0)},r.prototype.then=function(t,e){if(F.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+h.classString(t);arguments.length>1&&(n+=", "+h.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},r.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},r.prototype.spread=function(t){return"function"!=typeof t?u("expecting a function but got "+h.classString(t)):this.all()._then(t,void 0,void 0,b,void 0)},r.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},r.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new j(this).promise()},r.prototype.error=function(t){return this.caught(h.originatesFromRejection,t)},r.is=function(t){return t instanceof r},r.fromNode=r.fromCallback=function(t){var e=new r(g);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,i=S(t)(P(e,n));return i===R&&e._rejectCallback(i.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},r.all=function(t){return new j(t).promise()},r.cast=function(t){var e=C(t);return e instanceof r||(e=new r(g),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},r.resolve=r.fulfilled=r.cast,r.reject=r.rejected=function(t){var e=new r(g);return e._captureStackTrace(),e._rejectCallback(t,!0),e},r.setScheduler=function(t){if("function"!=typeof t)throw new y("expecting a function but got "+h.classString(t));return d.setScheduler(t)},r.prototype._then=function(t,e,n,i,o){var s=void 0!==o,c=s?o:new r(g),l=this._target(),u=l._bitField;s||(c._propagateFrom(this,3),c._captureStackTrace(),void 0===i&&0!==(2097152&this._bitField)&&(i=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,c));var p=a();if(0!==(50397184&u)){var h,f,_=l._settlePromiseCtx;0!==(33554432&u)?(f=l._rejectionHandler0,h=t):0!==(16777216&u)?(f=l._fulfillmentHandler0,h=e,l._unsetRejectionIsUnhandled()):(_=l._settlePromiseLateCancellationObserver,f=new m("late cancellation observer"),l._attachExtraTrace(f),h=e),d.invoke(_,l,{handler:null===p?h:"function"==typeof h&&p.bind(h),promise:c,receiver:i,value:f})}else l._addCallbacks(t,e,c,i,p);return c},r.prototype._length=function(){return 65535&this._bitField},r.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},r.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},r.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},r.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},r.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},r.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},r.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},r.prototype._isFinal=function(){return(4194304&this._bitField)>0},r.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},r.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},r.prototype._setAsyncGuaranteed=function(){d.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},r.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===p?void 0:void 0===e&&this._isBound()?this._boundValue():e},r.prototype._promiseAt=function(t){return this[4*t-4+2]},r.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},r.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},r.prototype._boundValue=function(){},r.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=p),this._addCallbacks(e,n,r,i,null)},r.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=p),this._addCallbacks(n,r,i,o,null)},r.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:i.bind(t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:i.bind(e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=null===i?t:i.bind(t)),"function"==typeof e&&(this[s+1]=null===i?e:i.bind(e))}return this._setLength(o+1),o},r.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},r.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(c(),!1);var n=C(t,this);if(!(n instanceof r))return this._fulfill(t);e&&this._propagateFrom(n,2);var i=n._target();if(i===this)return void this._reject(c());var o=i._bitField;if(0===(50397184&o)){var s=this._length();s>0&&i._migrateCallback0(this);for(var a=1;s>a;++a)i._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(i)}else if(0!==(33554432&o))this._fulfill(i._value());else if(0!==(16777216&o))this._reject(i._reason());else{var l=new m("late cancellation observer");i._attachExtraTrace(l),this._reject(l)}}},r.prototype._rejectCallback=function(t,e,n){var r=h.ensureErrorObject(t),i=r===t;if(!i&&!n&&F.warnings()){var o="a promise was rejected with a non-error: "+h.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},r.prototype._resolveFromExecutor=function(t){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)},r.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===b?n&&"number"==typeof n.length?o=S(t).apply(this._boundValue(),n):(o=R,o.e=new y("cannot .spread() a non-array: "+h.classString(n))):o=S(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===w?r._reject(n):o===R?r._rejectCallback(o.e,!1):(F.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},r.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},r.prototype._followee=function(){return this._rejectionHandler0},r.prototype._setFollowee=function(t){this._rejectionHandler0=t},r.prototype._settlePromise=function(t,n,i,o){var s=t instanceof r,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),i instanceof x&&i.isFinallyHandler()?(i.cancelPromise=t,S(n).call(i,o)===R&&t._reject(R.e)):n===l?t._fulfill(l.call(i)):i instanceof e?i._promiseCancelled(t):s||t instanceof j?t._cancel():i.cancel()):"function"==typeof n?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(n,i,o,t)):n.call(i,o,t):i instanceof e?i._isResolved()||(0!==(33554432&a)?i._promiseFulfilled(o,t):i._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},r.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,i=t.receiver,o=t.value;"function"==typeof e?n instanceof r?this._settlePromiseFromHandler(e,i,o,n):e.call(i,o,n):n instanceof r&&n._reject(o)},r.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},r.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},r.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},r.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=c();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():d.settlePromises(this))}},r.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?d.fatalError(t,h.isNode):void((65535&e)>0?d.settlePromises(this):this._ensurePossibleRejectionHandled())},r.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},r.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},r.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},r.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},r.defer=r.pending=function(){F.deprecated("Promise.defer","new Promise");var t=new r(g);return{promise:t,resolve:i,reject:o}},h.notEnumerableProp(r,"_makeSelfResolutionError",c),t("./method")(r,g,C,u,F),t("./bind")(r,g,C,F),t("./cancel")(r,j,u,F),t("./direct_resolve")(r),t("./synchronous_inspection")(r),t("./join")(r,j,C,g,F),r.Promise=r,t("./map.js")(r,j,u,C,g,F),t("./call_get.js")(r),t("./using.js")(r,u,C,E,g,F),t("./timers.js")(r,g,F),t("./generators.js")(r,u,g,C,e,F),t("./nodeify.js")(r),t("./promisify.js")(r,g),t("./props.js")(r,j,C,u),t("./race.js")(r,g,C,u),t("./reduce.js")(r,j,u,C,g,F),t("./settle.js")(r,j,F),t("./some.js")(r,j,u),t("./filter.js")(r,g),t("./each.js")(r,g),t("./any.js")(r),h.toFastProperties(r),h.toFastProperties(r.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new r(g)),F.setBounds(_.firstLineError,h.lastLineError),r}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{}}}function a(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise.isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var u=s[c],p=s[c+1],_=u+e;if(r===E)t[_]=E(u,h,u,p,e,i);else{var d=r(p,function(){return E(u,h,u,p,e,i)});f.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return f.toFastProperties(t),t}function u(t,e,n){return E(t,e,void 0,t,null,n)}var p,h={},f=t("./util"),_=t("./nodeback"),d=f.withAppended,v=f.maybeWrapAsError,y=f.canEvaluate,m=t("./errors").TypeError,g="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return f.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},k=function(t){return t.replace(/([$])/,"\\$")},E=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?h:e.context,o=!!e.multiArgs,s=u(t,n,o);return f.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new m("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=g);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=E),!f.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=f.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,-3)}function s(t){var n,s=r(t);return l(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),l=c.isObject,u=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),h=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityh;++h){var _=t[h];(void 0!==_||h in t)&&e.cast(_)._then(u,p,void 0,l,null)}return l}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=h();this._fn=null===s?n:s.bind(n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,this._eachValues=i===o?[]:void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function l(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function u(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=_(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var h=e._getDomain,f=t("./util"),_=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;if(void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n,!n.isRejected())for(;i>r;++r){var o={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(u,void 0,void 0,o,void 0)}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return l(this,t,e,null)},e.reduce=function(t,e,n,r){return l(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s){var l=s.resolve();r=function(t){l.then(t)}}else r="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&window.navigator.standalone?"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o:function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}();e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216,n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,l=s.isArray,u={};s.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=l(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t); -},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=t.prototype._isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype.isCancelled=function(){return this._target()._isCancelled()},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(u(t)){if(t instanceof e)return t;var i=o(t);if(i===l){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return l.e=e,l}}function s(t){return p.call(t,"_promise0")}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),u=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,h=c.tryCatch(r).call(t,o,s);return p=!1,a&&h===l&&(a._rejectCallback(h.e,!0,!0),a=null),u}var c=t("./util"),l=c.errorObj,u=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var l=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(l,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a))),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return u(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function l(t,n){function i(){if(s>=l)return u._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,l=t.length,u=new e(o);return i(),u}function u(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function h(t){return u.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function f(t){this.length=t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,m=_.tryCatch;u.prototype.data=function(){return this._data},u.prototype.promise=function(){return this._promise},u.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():null},u.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=null!==e?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},u.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,u),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},f.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new f(t),p=0;t>p;++p){var d=o[p];if(u.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var g=r(d);g instanceof e&&(d=g._then(h,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=T;return T=null,t.apply(this,arguments)}catch(e){return x.e=e,x}}function i(t){return T=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!E.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return E.defineProperty(t,e,r),t}function p(t){throw t}function h(t){try{if("function"==typeof t){var e=E.names(t.prototype),n=E.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=O.test(t+"")&&E.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function f(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return A.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function m(t){try{u(t,"isOperational",!0)}catch(e){}}function g(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&E.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=E.names(t),i=0;i10||t[0]>0}(),H.isNode&&H.toFastProperties(process);try{throw new Error}catch(N){H.lastLineError=N}e.exports=H},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/any.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/any.js deleted file mode 100644 index 05a6228e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/any.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -module.exports = function(Promise) { -var SomePromiseArray = Promise._SomePromiseArray; -function any(promises) { - var ret = new SomePromiseArray(promises); - var promise = ret.promise(); - ret.setHowMany(1); - ret.setUnwrap(); - ret.init(); - return promise; -} - -Promise.any = function (promises) { - return any(promises); -}; - -Promise.prototype.any = function () { - return any(this); -}; - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/assert.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/assert.js deleted file mode 100644 index 4518231a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/assert.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; -module.exports = (function(){ -var AssertionError = (function() { - function AssertionError(a) { - this.constructor$(a); - this.message = a; - this.name = "AssertionError"; - } - AssertionError.prototype = new Error(); - AssertionError.prototype.constructor = AssertionError; - AssertionError.prototype.constructor$ = Error; - return AssertionError; -})(); - -function getParams(args) { - var params = []; - for (var i = 0; i < args.length; ++i) params.push("arg" + i); - return params; -} - -function nativeAssert(callName, args, expect) { - try { - var params = getParams(args); - var constructorArgs = params; - constructorArgs.push("return " + - callName + "("+ params.join(",") + ");"); - var fn = Function.apply(null, constructorArgs); - return fn.apply(null, args); - } catch (e) { - if (!(e instanceof SyntaxError)) { - throw e; - } else { - return expect; - } - } -} - -return function assert(boolExpr, message) { - if (boolExpr === true) return; - - if (typeof boolExpr === "string" && - boolExpr.charAt(0) === "%") { - var nativeCallName = boolExpr; - var $_len = arguments.length;var args = new Array(Math.max($_len - 2, 0)); for(var $_i = 2; $_i < $_len; ++$_i) {args[$_i - 2] = arguments[$_i];}; - if (nativeAssert(nativeCallName, args, message) === message) return; - message = (nativeCallName + " !== " + message); - } - - var ret = new AssertionError(message); - if (Error.captureStackTrace) { - Error.captureStackTrace(ret, assert); - } - throw ret; -}; -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/async.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/async.js deleted file mode 100644 index 28ead444..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/async.js +++ /dev/null @@ -1,166 +0,0 @@ -"use strict"; -var firstLineError; -try {throw new Error(); } catch (e) {firstLineError = e;} -var schedule = require("./schedule"); -var Queue = require("./queue"); -var util = require("./util"); - -function Async() { - this._customScheduler = false; - this._isTickUsed = false; - this._lateQueue = new Queue(16); - this._normalQueue = new Queue(16); - this._haveDrainedQueues = false; - this._trampolineEnabled = true; - var self = this; - this.drainQueues = function () { - self._drainQueues(); - }; - this._schedule = schedule; -} - -Async.prototype.setScheduler = function(fn) { - var prev = this._schedule; - this._schedule = fn; - this._customScheduler = true; - return prev; -}; - -Async.prototype.hasCustomScheduler = function() { - return this._customScheduler; -}; - -Async.prototype.enableTrampoline = function() { - this._trampolineEnabled = true; -}; - -Async.prototype.disableTrampolineIfNecessary = function() { - if (util.hasDevTools) { - this._trampolineEnabled = false; - } -}; - -Async.prototype.haveItemsQueued = function () { - return this._isTickUsed || this._haveDrainedQueues; -}; - - -Async.prototype.fatalError = function(e, isNode) { - if (isNode) { - process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) + - "\n"); - process.exit(2); - } else { - this.throwLater(e); - } -}; - -Async.prototype.throwLater = function(fn, arg) { - if (arguments.length === 1) { - arg = fn; - fn = function () { throw arg; }; - } - if (typeof setTimeout !== "undefined") { - setTimeout(function() { - fn(arg); - }, 0); - } else try { - this._schedule(function() { - fn(arg); - }); - } catch (e) { - throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } -}; - -function AsyncInvokeLater(fn, receiver, arg) { - this._lateQueue.push(fn, receiver, arg); - this._queueTick(); -} - -function AsyncInvoke(fn, receiver, arg) { - this._normalQueue.push(fn, receiver, arg); - this._queueTick(); -} - -function AsyncSettlePromises(promise) { - this._normalQueue._pushOne(promise); - this._queueTick(); -} - -if (!util.hasDevTools) { - Async.prototype.invokeLater = AsyncInvokeLater; - Async.prototype.invoke = AsyncInvoke; - Async.prototype.settlePromises = AsyncSettlePromises; -} else { - Async.prototype.invokeLater = function (fn, receiver, arg) { - if (this._trampolineEnabled) { - AsyncInvokeLater.call(this, fn, receiver, arg); - } else { - this._schedule(function() { - setTimeout(function() { - fn.call(receiver, arg); - }, 100); - }); - } - }; - - Async.prototype.invoke = function (fn, receiver, arg) { - if (this._trampolineEnabled) { - AsyncInvoke.call(this, fn, receiver, arg); - } else { - this._schedule(function() { - fn.call(receiver, arg); - }); - } - }; - - Async.prototype.settlePromises = function(promise) { - if (this._trampolineEnabled) { - AsyncSettlePromises.call(this, promise); - } else { - this._schedule(function() { - promise._settlePromises(); - }); - } - }; -} - -Async.prototype.invokeFirst = function (fn, receiver, arg) { - this._normalQueue.unshift(fn, receiver, arg); - this._queueTick(); -}; - -Async.prototype._drainQueue = function(queue) { - while (queue.length() > 0) { - var fn = queue.shift(); - if (typeof fn !== "function") { - fn._settlePromises(); - continue; - } - var receiver = queue.shift(); - var arg = queue.shift(); - fn.call(receiver, arg); - } -}; - -Async.prototype._drainQueues = function () { - this._drainQueue(this._normalQueue); - this._reset(); - this._haveDrainedQueues = true; - this._drainQueue(this._lateQueue); -}; - -Async.prototype._queueTick = function () { - if (!this._isTickUsed) { - this._isTickUsed = true; - this._schedule(this.drainQueues); - } -}; - -Async.prototype._reset = function () { - this._isTickUsed = false; -}; - -module.exports = Async; -module.exports.firstLineError = firstLineError; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/bind.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/bind.js deleted file mode 100644 index fc3379db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/bind.js +++ /dev/null @@ -1,67 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { -var calledBind = false; -var rejectThis = function(_, e) { - this._reject(e); -}; - -var targetRejected = function(e, context) { - context.promiseRejectionQueued = true; - context.bindingPromise._then(rejectThis, rejectThis, null, this, e); -}; - -var bindingResolved = function(thisArg, context) { - if (((this._bitField & 50397184) === 0)) { - this._resolveCallback(context.target); - } -}; - -var bindingRejected = function(e, context) { - if (!context.promiseRejectionQueued) this._reject(e); -}; - -Promise.prototype.bind = function (thisArg) { - if (!calledBind) { - calledBind = true; - Promise.prototype._propagateFrom = debug.propagateFromFunction(); - Promise.prototype._boundValue = debug.boundValueFunction(); - } - var maybePromise = tryConvertToPromise(thisArg); - var ret = new Promise(INTERNAL); - ret._propagateFrom(this, 1); - var target = this._target(); - ret._setBoundTo(maybePromise); - if (maybePromise instanceof Promise) { - var context = { - promiseRejectionQueued: false, - promise: ret, - target: target, - bindingPromise: maybePromise - }; - target._then(INTERNAL, targetRejected, undefined, ret, context); - maybePromise._then( - bindingResolved, bindingRejected, undefined, ret, context); - ret._setOnCancel(maybePromise); - } else { - ret._resolveCallback(target); - } - return ret; -}; - -Promise.prototype._setBoundTo = function (obj) { - if (obj !== undefined) { - this._bitField = this._bitField | 2097152; - this._boundTo = obj; - } else { - this._bitField = this._bitField & (~2097152); - } -}; - -Promise.prototype._isBound = function () { - return (this._bitField & 2097152) === 2097152; -}; - -Promise.bind = function (thisArg, value) { - return Promise.resolve(value).bind(thisArg); -}; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/bluebird.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/bluebird.js deleted file mode 100644 index 1c36cf36..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/bluebird.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; -var old; -if (typeof Promise !== "undefined") old = Promise; -function noConflict() { - try { if (Promise === bluebird) Promise = old; } - catch (e) {} - return bluebird; -} -var bluebird = require("./promise")(); -bluebird.noConflict = noConflict; -module.exports = bluebird; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/call_get.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/call_get.js deleted file mode 100644 index 0ed7714a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/call_get.js +++ /dev/null @@ -1,123 +0,0 @@ -"use strict"; -var cr = Object.create; -if (cr) { - var callerCache = cr(null); - var getterCache = cr(null); - callerCache[" size"] = getterCache[" size"] = 0; -} - -module.exports = function(Promise) { -var util = require("./util"); -var canEvaluate = util.canEvaluate; -var isIdentifier = util.isIdentifier; - -var getMethodCaller; -var getGetter; -if (!false) { -var makeMethodCaller = function (methodName) { - return new Function("ensureMethod", " \n\ - return function(obj) { \n\ - 'use strict' \n\ - var len = this.length; \n\ - ensureMethod(obj, 'methodName'); \n\ - switch(len) { \n\ - case 1: return obj.methodName(this[0]); \n\ - case 2: return obj.methodName(this[0], this[1]); \n\ - case 3: return obj.methodName(this[0], this[1], this[2]); \n\ - case 0: return obj.methodName(); \n\ - default: \n\ - return obj.methodName.apply(obj, this); \n\ - } \n\ - }; \n\ - ".replace(/methodName/g, methodName))(ensureMethod); -}; - -var makeGetter = function (propertyName) { - return new Function("obj", " \n\ - 'use strict'; \n\ - return obj.propertyName; \n\ - ".replace("propertyName", propertyName)); -}; - -var getCompiled = function(name, compiler, cache) { - var ret = cache[name]; - if (typeof ret !== "function") { - if (!isIdentifier(name)) { - return null; - } - ret = compiler(name); - cache[name] = ret; - cache[" size"]++; - if (cache[" size"] > 512) { - var keys = Object.keys(cache); - for (var i = 0; i < 256; ++i) delete cache[keys[i]]; - cache[" size"] = keys.length - 256; - } - } - return ret; -}; - -getMethodCaller = function(name) { - return getCompiled(name, makeMethodCaller, callerCache); -}; - -getGetter = function(name) { - return getCompiled(name, makeGetter, getterCache); -}; -} - -function ensureMethod(obj, methodName) { - var fn; - if (obj != null) fn = obj[methodName]; - if (typeof fn !== "function") { - var message = "Object " + util.classString(obj) + " has no method '" + - util.toString(methodName) + "'"; - throw new Promise.TypeError(message); - } - return fn; -} - -function caller(obj) { - var methodName = this.pop(); - var fn = ensureMethod(obj, methodName); - return fn.apply(obj, this); -} -Promise.prototype.call = function (methodName) { - var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];}; - if (!false) { - if (canEvaluate) { - var maybeCaller = getMethodCaller(methodName); - if (maybeCaller !== null) { - return this._then( - maybeCaller, undefined, undefined, args, undefined); - } - } - } - args.push(methodName); - return this._then(caller, undefined, undefined, args, undefined); -}; - -function namedGetter(obj) { - return obj[this]; -} -function indexedGetter(obj) { - var index = +this; - if (index < 0) index = Math.max(0, index + obj.length); - return obj[index]; -} -Promise.prototype.get = function (propertyName) { - var isIndex = (typeof propertyName === "number"); - var getter; - if (!isIndex) { - if (canEvaluate) { - var maybeGetter = getGetter(propertyName); - getter = maybeGetter !== null ? maybeGetter : namedGetter; - } else { - getter = namedGetter; - } - } else { - getter = indexedGetter; - } - return this._then(getter, undefined, undefined, propertyName, undefined); -}; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/cancel.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/cancel.js deleted file mode 100644 index 5ed6bc9c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/cancel.js +++ /dev/null @@ -1,125 +0,0 @@ -"use strict"; -module.exports = function(Promise, PromiseArray, apiRejection, debug) { -var util = require("./util"); -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var async = Promise._async; - -Promise.prototype["break"] = Promise.prototype.cancel = function() { - if (!debug.cancellation()) return this._warn("cancellation is disabled"); - - var promise = this; - var child = promise; - while (promise.isCancellable()) { - if (!promise._cancelBy(child)) { - if (child._isFollowing()) { - child._followee().cancel(); - } else { - child._cancelBranched(); - } - break; - } - - var parent = promise._cancellationParent; - if (parent == null || !parent.isCancellable()) { - if (promise._isFollowing()) { - promise._followee().cancel(); - } else { - promise._cancelBranched(); - } - break; - } else { - if (promise._isFollowing()) promise._followee().cancel(); - child = promise; - promise = parent; - } - } -}; - -Promise.prototype._branchHasCancelled = function() { - this._branchesRemainingToCancel--; -}; - -Promise.prototype._enoughBranchesHaveCancelled = function() { - return this._branchesRemainingToCancel === undefined || - this._branchesRemainingToCancel <= 0; -}; - -Promise.prototype._cancelBy = function(canceller) { - if (canceller === this) { - this._branchesRemainingToCancel = 0; - this._invokeOnCancel(); - return true; - } else { - this._branchHasCancelled(); - if (this._enoughBranchesHaveCancelled()) { - this._invokeOnCancel(); - return true; - } - } - return false; -}; - -Promise.prototype._cancelBranched = function() { - if (this._enoughBranchesHaveCancelled()) { - this._cancel(); - } -}; - -Promise.prototype._cancel = function() { - if (!this.isCancellable()) return; - - this._setCancelled(); - async.invoke(this._cancelPromises, this, undefined); -}; - -Promise.prototype._cancelPromises = function() { - if (this._length() > 0) this._settlePromises(); -}; - -Promise.prototype._unsetOnCancel = function() { - this._onCancelField = undefined; -}; - -Promise.prototype.isCancellable = function() { - return this.isPending() && !this.isCancelled(); -}; - -Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { - if (util.isArray(onCancelCallback)) { - for (var i = 0; i < onCancelCallback.length; ++i) { - this._doInvokeOnCancel(onCancelCallback[i], internalOnly); - } - } else if (onCancelCallback !== undefined) { - if (typeof onCancelCallback === "function") { - if (!internalOnly) { - var e = tryCatch(onCancelCallback).call(this._boundValue()); - if (e === errorObj) { - this._attachExtraTrace(e.e); - async.throwLater(e.e); - } - } - } else { - onCancelCallback._resultCancelled(this); - } - } -}; - -Promise.prototype._invokeOnCancel = function() { - var onCancelCallback = this._onCancel(); - this._unsetOnCancel(); - async.invoke(this._doInvokeOnCancel, this, onCancelCallback); -}; - -Promise.prototype._invokeInternalOnCancel = function() { - if (this.isCancellable()) { - this._doInvokeOnCancel(this._onCancel(), true); - this._unsetOnCancel(); - } -}; - -Promise.prototype._resultCancelled = function() { - this.cancel(); -}; - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/catch_filter.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/catch_filter.js deleted file mode 100644 index 0f24ce23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/catch_filter.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; -module.exports = function(NEXT_FILTER) { -var util = require("./util"); -var getKeys = require("./es5").keys; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; - -function catchFilter(instances, cb, promise) { - return function(e) { - var boundTo = promise._boundValue(); - predicateLoop: for (var i = 0; i < instances.length; ++i) { - var item = instances[i]; - - if (item === Error || - (item != null && item.prototype instanceof Error)) { - if (e instanceof item) { - return tryCatch(cb).call(boundTo, e); - } - } else if (typeof item === "function") { - var matchesPredicate = tryCatch(item).call(boundTo, e); - if (matchesPredicate === errorObj) { - return matchesPredicate; - } else if (matchesPredicate) { - return tryCatch(cb).call(boundTo, e); - } - } else if (util.isObject(e)) { - var keys = getKeys(item); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - if (item[key] != e[key]) { - continue predicateLoop; - } - } - return tryCatch(cb).call(boundTo, e); - } - } - return NEXT_FILTER; - }; -} - -return catchFilter; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/context.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/context.js deleted file mode 100644 index c307414f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/context.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -module.exports = function(Promise) { -var longStackTraces = false; -var contextStack = []; - -Promise.prototype._promiseCreated = function() {}; -Promise.prototype._pushContext = function() {}; -Promise.prototype._popContext = function() {return null;}; -Promise._peekContext = Promise.prototype._peekContext = function() {}; - -function Context() { - this._trace = new Context.CapturedTrace(peekContext()); -} -Context.prototype._pushContext = function () { - if (this._trace !== undefined) { - this._trace._promiseCreated = null; - contextStack.push(this._trace); - } -}; - -Context.prototype._popContext = function () { - if (this._trace !== undefined) { - var trace = contextStack.pop(); - var ret = trace._promiseCreated; - trace._promiseCreated = null; - return ret; - } - return null; -}; - -function createContext() { - if (longStackTraces) return new Context(); -} - -function peekContext() { - var lastIndex = contextStack.length - 1; - if (lastIndex >= 0) { - return contextStack[lastIndex]; - } - return undefined; -} -Context.CapturedTrace = null; -Context.create = createContext; -Context.deactivateLongStackTraces = function() {}; -Context.activateLongStackTraces = function() { - var Promise_pushContext = Promise.prototype._pushContext; - var Promise_popContext = Promise.prototype._popContext; - var Promise_PeekContext = Promise._peekContext; - var Promise_peekContext = Promise.prototype._peekContext; - var Promise_promiseCreated = Promise.prototype._promiseCreated; - Context.deactivateLongStackTraces = function() { - Promise.prototype._pushContext = Promise_pushContext; - Promise.prototype._popContext = Promise_popContext; - Promise._peekContext = Promise_PeekContext; - Promise.prototype._peekContext = Promise_peekContext; - Promise.prototype._promiseCreated = Promise_promiseCreated; - longStackTraces = false; - }; - longStackTraces = true; - Promise.prototype._pushContext = Context.prototype._pushContext; - Promise.prototype._popContext = Context.prototype._popContext; - Promise._peekContext = Promise.prototype._peekContext = peekContext; - Promise.prototype._promiseCreated = function() { - var ctx = this._peekContext(); - if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; - }; -}; -return Context; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/debuggability.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/debuggability.js deleted file mode 100644 index adbea58e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/debuggability.js +++ /dev/null @@ -1,855 +0,0 @@ -"use strict"; -module.exports = function(Promise, Context) { -var getDomain = Promise._getDomain; -var async = Promise._async; -var Warning = require("./errors").Warning; -var util = require("./util"); -var canAttachTrace = util.canAttachTrace; -var unhandledRejectionHandled; -var possiblyUnhandledRejection; -var bluebirdFramePattern = - /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; -var stackFramePattern = null; -var formatStack = null; -var indentStackFrames = false; -var printWarning; -var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && - (false || - util.env("BLUEBIRD_DEBUG") || - util.env("NODE_ENV") === "development")); - -var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && - (debugging || util.env("BLUEBIRD_WARNINGS"))); - -var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && - (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); - -var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && - (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); - -Promise.prototype.suppressUnhandledRejections = function() { - var target = this._target(); - target._bitField = ((target._bitField & (~1048576)) | - 524288); -}; - -Promise.prototype._ensurePossibleRejectionHandled = function () { - if ((this._bitField & 524288) !== 0) return; - this._setRejectionIsUnhandled(); - async.invokeLater(this._notifyUnhandledRejection, this, undefined); -}; - -Promise.prototype._notifyUnhandledRejectionIsHandled = function () { - fireRejectionEvent("rejectionHandled", - unhandledRejectionHandled, undefined, this); -}; - -Promise.prototype._setReturnedNonUndefined = function() { - this._bitField = this._bitField | 268435456; -}; - -Promise.prototype._returnedNonUndefined = function() { - return (this._bitField & 268435456) !== 0; -}; - -Promise.prototype._notifyUnhandledRejection = function () { - if (this._isRejectionUnhandled()) { - var reason = this._settledValue(); - this._setUnhandledRejectionIsNotified(); - fireRejectionEvent("unhandledRejection", - possiblyUnhandledRejection, reason, this); - } -}; - -Promise.prototype._setUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField | 262144; -}; - -Promise.prototype._unsetUnhandledRejectionIsNotified = function () { - this._bitField = this._bitField & (~262144); -}; - -Promise.prototype._isUnhandledRejectionNotified = function () { - return (this._bitField & 262144) > 0; -}; - -Promise.prototype._setRejectionIsUnhandled = function () { - this._bitField = this._bitField | 1048576; -}; - -Promise.prototype._unsetRejectionIsUnhandled = function () { - this._bitField = this._bitField & (~1048576); - if (this._isUnhandledRejectionNotified()) { - this._unsetUnhandledRejectionIsNotified(); - this._notifyUnhandledRejectionIsHandled(); - } -}; - -Promise.prototype._isRejectionUnhandled = function () { - return (this._bitField & 1048576) > 0; -}; - -Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { - return warn(message, shouldUseOwnTrace, promise || this); -}; - -Promise.onPossiblyUnhandledRejection = function (fn) { - var domain = getDomain(); - possiblyUnhandledRejection = - typeof fn === "function" ? (domain === null ? fn : domain.bind(fn)) - : undefined; -}; - -Promise.onUnhandledRejectionHandled = function (fn) { - var domain = getDomain(); - unhandledRejectionHandled = - typeof fn === "function" ? (domain === null ? fn : domain.bind(fn)) - : undefined; -}; - -var disableLongStackTraces = function() {}; -Promise.longStackTraces = function () { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - if (!config.longStackTraces && longStackTracesIsSupported()) { - var Promise_captureStackTrace = Promise.prototype._captureStackTrace; - var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; - config.longStackTraces = true; - disableLongStackTraces = function() { - if (async.haveItemsQueued() && !config.longStackTraces) { - throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - Promise.prototype._captureStackTrace = Promise_captureStackTrace; - Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; - Context.deactivateLongStackTraces(); - async.enableTrampoline(); - config.longStackTraces = false; - }; - Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; - Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; - Context.activateLongStackTraces(); - async.disableTrampolineIfNecessary(); - } -}; - -Promise.hasLongStackTraces = function () { - return config.longStackTraces && longStackTracesIsSupported(); -}; - -var fireDomEvent = (function() { - try { - var event = document.createEvent("CustomEvent"); - event.initCustomEvent("testingtheevent", false, true, {}); - util.global.dispatchEvent(event); - return function(name, event) { - var domEvent = document.createEvent("CustomEvent"); - domEvent.initCustomEvent(name.toLowerCase(), false, true, event); - return !util.global.dispatchEvent(domEvent); - }; - } catch (e) {} - return function() { - return false; - }; -})(); - -var fireGlobalEvent = (function() { - if (util.isNode) { - return function() { - return process.emit.apply(process, arguments); - }; - } else { - if (!util.global) { - return function() { - return false; - }; - } - return function(name) { - var methodName = "on" + name.toLowerCase(); - var method = util.global[methodName]; - if (!method) return false; - method.apply(util.global, [].slice.call(arguments, 1)); - return true; - }; - } -})(); - -function generatePromiseLifecycleEventObject(name, promise) { - return {promise: promise}; -} - -var eventToObjectGenerator = { - promiseCreated: generatePromiseLifecycleEventObject, - promiseFulfilled: generatePromiseLifecycleEventObject, - promiseRejected: generatePromiseLifecycleEventObject, - promiseResolved: generatePromiseLifecycleEventObject, - promiseCancelled: generatePromiseLifecycleEventObject, - promiseChained: function(name, promise, child) { - return {promise: promise, child: child}; - }, - warning: function(name, warning) { - return {warning: warning}; - }, - unhandledRejection: function (name, reason, promise) { - return {reason: reason, promise: promise}; - }, - rejectionHandled: generatePromiseLifecycleEventObject -}; - -var activeFireEvent = function (name) { - var globalEventFired = false; - try { - globalEventFired = fireGlobalEvent.apply(null, arguments); - } catch (e) { - async.throwLater(e); - globalEventFired = true; - } - - var domEventFired = false; - try { - domEventFired = fireDomEvent(name, - eventToObjectGenerator[name].apply(null, arguments)); - } catch (e) { - async.throwLater(e); - domEventFired = true; - } - - return domEventFired || globalEventFired; -}; - -Promise.config = function(opts) { - opts = Object(opts); - if ("longStackTraces" in opts) { - if (opts.longStackTraces) { - Promise.longStackTraces(); - } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { - disableLongStackTraces(); - } - } - if ("warnings" in opts) { - var warningsOption = opts.warnings; - config.warnings = !!warningsOption; - wForgottenReturn = config.warnings; - - if (util.isObject(warningsOption)) { - if ("wForgottenReturn" in warningsOption) { - wForgottenReturn = !!warningsOption.wForgottenReturn; - } - } - } - if ("cancellation" in opts && opts.cancellation && !config.cancellation) { - if (async.haveItemsQueued()) { - throw new Error( - "cannot enable cancellation after promises are in use"); - } - Promise.prototype._clearCancellationData = - cancellationClearCancellationData; - Promise.prototype._propagateFrom = cancellationPropagateFrom; - Promise.prototype._onCancel = cancellationOnCancel; - Promise.prototype._setOnCancel = cancellationSetOnCancel; - Promise.prototype._attachCancellationCallback = - cancellationAttachCancellationCallback; - Promise.prototype._execute = cancellationExecute; - propagateFromFunction = cancellationPropagateFrom; - config.cancellation = true; - } - if ("monitoring" in opts) { - if (opts.monitoring && !config.monitoring) { - config.monitoring = true; - Promise.prototype._fireEvent = activeFireEvent; - } else if (!opts.monitoring && config.monitoring) { - config.monitoring = false; - Promise.prototype._fireEvent = defaultFireEvent; - } - } -}; - -function defaultFireEvent() { return false; } - -Promise.prototype._fireEvent = defaultFireEvent; -Promise.prototype._execute = function(executor, resolve, reject) { - try { - executor(resolve, reject); - } catch (e) { - return e; - } -}; -Promise.prototype._onCancel = function () {}; -Promise.prototype._setOnCancel = function (handler) { ; }; -Promise.prototype._attachCancellationCallback = function(onCancel) { - ; -}; -Promise.prototype._captureStackTrace = function () {}; -Promise.prototype._attachExtraTrace = function () {}; -Promise.prototype._clearCancellationData = function() {}; -Promise.prototype._propagateFrom = function (parent, flags) { - ; - ; -}; - -function cancellationExecute(executor, resolve, reject) { - var promise = this; - try { - executor(resolve, reject, function(onCancel) { - if (typeof onCancel !== "function") { - throw new TypeError("onCancel must be a function, got: " + - util.toString(onCancel)); - } - promise._attachCancellationCallback(onCancel); - }); - } catch (e) { - return e; - } -} - -function cancellationAttachCancellationCallback(onCancel) { - if (!this.isCancellable()) return this; - - var previousOnCancel = this._onCancel(); - if (previousOnCancel !== undefined) { - if (util.isArray(previousOnCancel)) { - previousOnCancel.push(onCancel); - } else { - this._setOnCancel([previousOnCancel, onCancel]); - } - } else { - this._setOnCancel(onCancel); - } -} - -function cancellationOnCancel() { - return this._onCancelField; -} - -function cancellationSetOnCancel(onCancel) { - this._onCancelField = onCancel; -} - -function cancellationClearCancellationData() { - this._cancellationParent = undefined; - this._onCancelField = undefined; -} - -function cancellationPropagateFrom(parent, flags) { - if ((flags & 1) !== 0) { - this._cancellationParent = parent; - var branchesRemainingToCancel = parent._branchesRemainingToCancel; - if (branchesRemainingToCancel === undefined) { - branchesRemainingToCancel = 0; - } - parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; - } - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} - -function bindingPropagateFrom(parent, flags) { - if ((flags & 2) !== 0 && parent._isBound()) { - this._setBoundTo(parent._boundTo); - } -} -var propagateFromFunction = bindingPropagateFrom; - -function boundValueFunction() { - var ret = this._boundTo; - if (ret !== undefined) { - if (ret instanceof Promise) { - if (ret.isFulfilled()) { - return ret.value(); - } else { - return undefined; - } - } - } - return ret; -} - -function longStackTracesCaptureStackTrace() { - this._trace = new CapturedTrace(this._peekContext()); -} - -function longStackTracesAttachExtraTrace(error, ignoreSelf) { - if (canAttachTrace(error)) { - var trace = this._trace; - if (trace !== undefined) { - if (ignoreSelf) trace = trace._parent; - } - if (trace !== undefined) { - trace.attachExtraTrace(error); - } else if (!error.__stackCleaned__) { - var parsed = parseStackAndMessage(error); - util.notEnumerableProp(error, "stack", - parsed.message + "\n" + parsed.stack.join("\n")); - util.notEnumerableProp(error, "__stackCleaned__", true); - } - } -} - -function checkForgottenReturns(returnValue, promiseCreated, name, promise, - parent) { - if (returnValue === undefined && promiseCreated !== null && - wForgottenReturn) { - if (parent !== undefined && parent._returnedNonUndefined()) return; - if ((promise._bitField & 65535) === 0) return; - - if (name) name = name + " "; - var msg = "a promise was created in a " + name + - "handler but was not returned from it"; - promise._warn(msg, true, promiseCreated); - } -} - -function deprecated(name, replacement) { - var message = name + - " is deprecated and will be removed in a future version."; - if (replacement) message += " Use " + replacement + " instead."; - return warn(message); -} - -function warn(message, shouldUseOwnTrace, promise) { - if (!config.warnings) return; - var warning = new Warning(message); - var ctx; - if (shouldUseOwnTrace) { - promise._attachExtraTrace(warning); - } else if (config.longStackTraces && (ctx = Promise._peekContext())) { - ctx.attachExtraTrace(warning); - } else { - var parsed = parseStackAndMessage(warning); - warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); - } - - if (!activeFireEvent("warning", warning)) { - formatAndLogError(warning, "", true); - } -} - -function reconstructStack(message, stacks) { - for (var i = 0; i < stacks.length - 1; ++i) { - stacks[i].push("From previous event:"); - stacks[i] = stacks[i].join("\n"); - } - if (i < stacks.length) { - stacks[i] = stacks[i].join("\n"); - } - return message + "\n" + stacks.join("\n"); -} - -function removeDuplicateOrEmptyJumps(stacks) { - for (var i = 0; i < stacks.length; ++i) { - if (stacks[i].length === 0 || - ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { - stacks.splice(i, 1); - i--; - } - } -} - -function removeCommonRoots(stacks) { - var current = stacks[0]; - for (var i = 1; i < stacks.length; ++i) { - var prev = stacks[i]; - var currentLastIndex = current.length - 1; - var currentLastLine = current[currentLastIndex]; - var commonRootMeetPoint = -1; - - for (var j = prev.length - 1; j >= 0; --j) { - if (prev[j] === currentLastLine) { - commonRootMeetPoint = j; - break; - } - } - - for (var j = commonRootMeetPoint; j >= 0; --j) { - var line = prev[j]; - if (current[currentLastIndex] === line) { - current.pop(); - currentLastIndex--; - } else { - break; - } - } - current = prev; - } -} - -function cleanStack(stack) { - var ret = []; - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - var isTraceLine = " (No stack trace)" === line || - stackFramePattern.test(line); - var isInternalFrame = isTraceLine && shouldIgnore(line); - if (isTraceLine && !isInternalFrame) { - if (indentStackFrames && line.charAt(0) !== " ") { - line = " " + line; - } - ret.push(line); - } - } - return ret; -} - -function stackFramesAsArray(error) { - var stack = error.stack.replace(/\s+$/g, "").split("\n"); - for (var i = 0; i < stack.length; ++i) { - var line = stack[i]; - if (" (No stack trace)" === line || stackFramePattern.test(line)) { - break; - } - } - if (i > 0) { - stack = stack.slice(i); - } - return stack; -} - -function parseStackAndMessage(error) { - var stack = error.stack; - var message = error.toString(); - stack = typeof stack === "string" && stack.length > 0 - ? stackFramesAsArray(error) : [" (No stack trace)"]; - return { - message: message, - stack: cleanStack(stack) - }; -} - -function formatAndLogError(error, title, isSoft) { - if (typeof console !== "undefined") { - var message; - if (util.isObject(error)) { - var stack = error.stack; - message = title + formatStack(stack, error); - } else { - message = title + String(error); - } - if (typeof printWarning === "function") { - printWarning(message, isSoft); - } else if (typeof console.log === "function" || - typeof console.log === "object") { - console.log(message); - } - } -} - -function fireRejectionEvent(name, localHandler, reason, promise) { - var localEventFired = false; - try { - if (typeof localHandler === "function") { - localEventFired = true; - if (name === "rejectionHandled") { - localHandler(promise); - } else { - localHandler(reason, promise); - } - } - } catch (e) { - async.throwLater(e); - } - - if (name === "unhandledRejection") { - if (!activeFireEvent(name, reason, promise) && !localEventFired) { - formatAndLogError(reason, "Unhandled rejection "); - } - } else { - activeFireEvent(name, promise); - } -} - -function formatNonError(obj) { - var str; - if (typeof obj === "function") { - str = "[function " + - (obj.name || "anonymous") + - "]"; - } else { - str = obj && typeof obj.toString === "function" - ? obj.toString() : util.toString(obj); - var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; - if (ruselessToString.test(str)) { - try { - var newStr = JSON.stringify(obj); - str = newStr; - } - catch(e) { - - } - } - if (str.length === 0) { - str = "(empty array)"; - } - } - return ("(<" + snip(str) + ">, no stack trace)"); -} - -function snip(str) { - var maxChars = 41; - if (str.length < maxChars) { - return str; - } - return str.substr(0, maxChars - 3) + "..."; -} - -function longStackTracesIsSupported() { - return typeof captureStackTrace === "function"; -} - -var shouldIgnore = function() { return false; }; -var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; -function parseLineInfo(line) { - var matches = line.match(parseLineInfoRegex); - if (matches) { - return { - fileName: matches[1], - line: parseInt(matches[2], 10) - }; - } -} - -function setBounds(firstLineError, lastLineError) { - if (!longStackTracesIsSupported()) return; - var firstStackLines = firstLineError.stack.split("\n"); - var lastStackLines = lastLineError.stack.split("\n"); - var firstIndex = -1; - var lastIndex = -1; - var firstFileName; - var lastFileName; - for (var i = 0; i < firstStackLines.length; ++i) { - var result = parseLineInfo(firstStackLines[i]); - if (result) { - firstFileName = result.fileName; - firstIndex = result.line; - break; - } - } - for (var i = 0; i < lastStackLines.length; ++i) { - var result = parseLineInfo(lastStackLines[i]); - if (result) { - lastFileName = result.fileName; - lastIndex = result.line; - break; - } - } - if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || - firstFileName !== lastFileName || firstIndex >= lastIndex) { - return; - } - - shouldIgnore = function(line) { - if (bluebirdFramePattern.test(line)) return true; - var info = parseLineInfo(line); - if (info) { - if (info.fileName === firstFileName && - (firstIndex <= info.line && info.line <= lastIndex)) { - return true; - } - } - return false; - }; -} - -function CapturedTrace(parent) { - this._parent = parent; - this._promisesCreated = 0; - var length = this._length = 1 + (parent === undefined ? 0 : parent._length); - captureStackTrace(this, CapturedTrace); - if (length > 32) this.uncycle(); -} -util.inherits(CapturedTrace, Error); -Context.CapturedTrace = CapturedTrace; - -CapturedTrace.prototype.uncycle = function() { - var length = this._length; - if (length < 2) return; - var nodes = []; - var stackToIndex = {}; - - for (var i = 0, node = this; node !== undefined; ++i) { - nodes.push(node); - node = node._parent; - } - length = this._length = i; - for (var i = length - 1; i >= 0; --i) { - var stack = nodes[i].stack; - if (stackToIndex[stack] === undefined) { - stackToIndex[stack] = i; - } - } - for (var i = 0; i < length; ++i) { - var currentStack = nodes[i].stack; - var index = stackToIndex[currentStack]; - if (index !== undefined && index !== i) { - if (index > 0) { - nodes[index - 1]._parent = undefined; - nodes[index - 1]._length = 1; - } - nodes[i]._parent = undefined; - nodes[i]._length = 1; - var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; - - if (index < length - 1) { - cycleEdgeNode._parent = nodes[index + 1]; - cycleEdgeNode._parent.uncycle(); - cycleEdgeNode._length = - cycleEdgeNode._parent._length + 1; - } else { - cycleEdgeNode._parent = undefined; - cycleEdgeNode._length = 1; - } - var currentChildLength = cycleEdgeNode._length + 1; - for (var j = i - 2; j >= 0; --j) { - nodes[j]._length = currentChildLength; - currentChildLength++; - } - return; - } - } -}; - -CapturedTrace.prototype.attachExtraTrace = function(error) { - if (error.__stackCleaned__) return; - this.uncycle(); - var parsed = parseStackAndMessage(error); - var message = parsed.message; - var stacks = [parsed.stack]; - - var trace = this; - while (trace !== undefined) { - stacks.push(cleanStack(trace.stack.split("\n"))); - trace = trace._parent; - } - removeCommonRoots(stacks); - removeDuplicateOrEmptyJumps(stacks); - util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); - util.notEnumerableProp(error, "__stackCleaned__", true); -}; - -var captureStackTrace = (function stackDetection() { - var v8stackFramePattern = /^\s*at\s*/; - var v8stackFormatter = function(stack, error) { - if (typeof stack === "string") return stack; - - if (error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - if (typeof Error.stackTraceLimit === "number" && - typeof Error.captureStackTrace === "function") { - Error.stackTraceLimit += 6; - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - var captureStackTrace = Error.captureStackTrace; - - shouldIgnore = function(line) { - return bluebirdFramePattern.test(line); - }; - return function(receiver, ignoreUntil) { - Error.stackTraceLimit += 6; - captureStackTrace(receiver, ignoreUntil); - Error.stackTraceLimit -= 6; - }; - } - var err = new Error(); - - if (typeof err.stack === "string" && - err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { - stackFramePattern = /@/; - formatStack = v8stackFormatter; - indentStackFrames = true; - return function captureStackTrace(o) { - o.stack = new Error().stack; - }; - } - - var hasStackAfterThrow; - try { throw new Error(); } - catch(e) { - hasStackAfterThrow = ("stack" in e); - } - if (!("stack" in err) && hasStackAfterThrow && - typeof Error.stackTraceLimit === "number") { - stackFramePattern = v8stackFramePattern; - formatStack = v8stackFormatter; - return function captureStackTrace(o) { - Error.stackTraceLimit += 6; - try { throw new Error(); } - catch(e) { o.stack = e.stack; } - Error.stackTraceLimit -= 6; - }; - } - - formatStack = function(stack, error) { - if (typeof stack === "string") return stack; - - if ((typeof error === "object" || - typeof error === "function") && - error.name !== undefined && - error.message !== undefined) { - return error.toString(); - } - return formatNonError(error); - }; - - return null; - -})([]); - -if (typeof console !== "undefined" && typeof console.warn !== "undefined") { - printWarning = function (message) { - console.warn(message); - }; - if (util.isNode && process.stderr.isTTY) { - printWarning = function(message, isSoft) { - var color = isSoft ? "\u001b[33m" : "\u001b[31m"; - console.warn(color + message + "\u001b[0m\n"); - }; - } else if (!util.isNode && typeof (new Error().stack) === "string") { - printWarning = function(message, isSoft) { - console.warn("%c" + message, - isSoft ? "color: darkorange" : "color: red"); - }; - } -} - -var config = { - warnings: warnings, - longStackTraces: false, - cancellation: false, - monitoring: false -}; - -if (longStackTraces) Promise.longStackTraces(); - -return { - longStackTraces: function() { - return config.longStackTraces; - }, - warnings: function() { - return config.warnings; - }, - cancellation: function() { - return config.cancellation; - }, - monitoring: function() { - return config.monitoring; - }, - propagateFromFunction: function() { - return propagateFromFunction; - }, - boundValueFunction: function() { - return boundValueFunction; - }, - checkForgottenReturns: checkForgottenReturns, - setBounds: setBounds, - warn: warn, - deprecated: deprecated, - CapturedTrace: CapturedTrace, - fireDomEvent: fireDomEvent, - fireGlobalEvent: fireGlobalEvent -}; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/direct_resolve.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/direct_resolve.js deleted file mode 100644 index a8902982..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/direct_resolve.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -module.exports = function(Promise) { -function returner() { - return this.value; -} -function thrower() { - throw this.reason; -} - -Promise.prototype["return"] = -Promise.prototype.thenReturn = function (value) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - returner, undefined, undefined, {value: value}, undefined); -}; - -Promise.prototype["throw"] = -Promise.prototype.thenThrow = function (reason) { - return this._then( - thrower, undefined, undefined, {reason: reason}, undefined); -}; - -Promise.prototype.catchThrow = function (reason) { - if (arguments.length <= 1) { - return this._then( - undefined, thrower, undefined, {reason: reason}, undefined); - } else { - var _reason = arguments[1]; - var handler = function() {throw _reason;}; - return this.caught(reason, handler); - } -}; - -Promise.prototype.catchReturn = function (value) { - if (arguments.length <= 1) { - if (value instanceof Promise) value.suppressUnhandledRejections(); - return this._then( - undefined, returner, undefined, {value: value}, undefined); - } else { - var _value = arguments[1]; - if (_value instanceof Promise) _value.suppressUnhandledRejections(); - var handler = function() {return _value;}; - return this.caught(value, handler); - } -}; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/each.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/each.js deleted file mode 100644 index ac8ead77..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/each.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var PromiseReduce = Promise.reduce; -var PromiseAll = Promise.all; - -function promiseAllThis() { - return PromiseAll(this); -} - -function PromiseMapSeries(promises, fn) { - return PromiseReduce(promises, fn, INTERNAL, INTERNAL); -} - -Promise.prototype.each = function (fn) { - return this.mapSeries(fn) - ._then(promiseAllThis, undefined, undefined, this, undefined); -}; - -Promise.prototype.mapSeries = function (fn) { - return PromiseReduce(this, fn, INTERNAL, INTERNAL); -}; - -Promise.each = function (promises, fn) { - return PromiseMapSeries(promises, fn) - ._then(promiseAllThis, undefined, undefined, promises, undefined); -}; - -Promise.mapSeries = PromiseMapSeries; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/errors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/errors.js deleted file mode 100644 index f62f323e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/errors.js +++ /dev/null @@ -1,116 +0,0 @@ -"use strict"; -var es5 = require("./es5"); -var Objectfreeze = es5.freeze; -var util = require("./util"); -var inherits = util.inherits; -var notEnumerableProp = util.notEnumerableProp; - -function subError(nameProperty, defaultMessage) { - function SubError(message) { - if (!(this instanceof SubError)) return new SubError(message); - notEnumerableProp(this, "message", - typeof message === "string" ? message : defaultMessage); - notEnumerableProp(this, "name", nameProperty); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - Error.call(this); - } - } - inherits(SubError, Error); - return SubError; -} - -var _TypeError, _RangeError; -var Warning = subError("Warning", "warning"); -var CancellationError = subError("CancellationError", "cancellation error"); -var TimeoutError = subError("TimeoutError", "timeout error"); -var AggregateError = subError("AggregateError", "aggregate error"); -try { - _TypeError = TypeError; - _RangeError = RangeError; -} catch(e) { - _TypeError = subError("TypeError", "type error"); - _RangeError = subError("RangeError", "range error"); -} - -var methods = ("join pop push shift unshift slice filter forEach some " + - "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); - -for (var i = 0; i < methods.length; ++i) { - if (typeof Array.prototype[methods[i]] === "function") { - AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; - } -} - -es5.defineProperty(AggregateError.prototype, "length", { - value: 0, - configurable: false, - writable: true, - enumerable: true -}); -AggregateError.prototype["isOperational"] = true; -var level = 0; -AggregateError.prototype.toString = function() { - var indent = Array(level * 4 + 1).join(" "); - var ret = "\n" + indent + "AggregateError of:" + "\n"; - level++; - indent = Array(level * 4 + 1).join(" "); - for (var i = 0; i < this.length; ++i) { - var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; - var lines = str.split("\n"); - for (var j = 0; j < lines.length; ++j) { - lines[j] = indent + lines[j]; - } - str = lines.join("\n"); - ret += str + "\n"; - } - level--; - return ret; -}; - -function OperationalError(message) { - if (!(this instanceof OperationalError)) - return new OperationalError(message); - notEnumerableProp(this, "name", "OperationalError"); - notEnumerableProp(this, "message", message); - this.cause = message; - this["isOperational"] = true; - - if (message instanceof Error) { - notEnumerableProp(this, "message", message.message); - notEnumerableProp(this, "stack", message.stack); - } else if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - -} -inherits(OperationalError, Error); - -var errorTypes = Error["__BluebirdErrorTypes__"]; -if (!errorTypes) { - errorTypes = Objectfreeze({ - CancellationError: CancellationError, - TimeoutError: TimeoutError, - OperationalError: OperationalError, - RejectionError: OperationalError, - AggregateError: AggregateError - }); - es5.defineProperty(Error, "__BluebirdErrorTypes__", { - value: errorTypes, - writable: false, - enumerable: false, - configurable: false - }); -} - -module.exports = { - Error: Error, - TypeError: _TypeError, - RangeError: _RangeError, - CancellationError: errorTypes.CancellationError, - OperationalError: errorTypes.OperationalError, - TimeoutError: errorTypes.TimeoutError, - AggregateError: errorTypes.AggregateError, - Warning: Warning -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/es5.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/es5.js deleted file mode 100644 index ea41d5a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/es5.js +++ /dev/null @@ -1,80 +0,0 @@ -var isES5 = (function(){ - "use strict"; - return this === undefined; -})(); - -if (isES5) { - module.exports = { - freeze: Object.freeze, - defineProperty: Object.defineProperty, - getDescriptor: Object.getOwnPropertyDescriptor, - keys: Object.keys, - names: Object.getOwnPropertyNames, - getPrototypeOf: Object.getPrototypeOf, - isArray: Array.isArray, - isES5: isES5, - propertyIsWritable: function(obj, prop) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop); - return !!(!descriptor || descriptor.writable || descriptor.set); - } - }; -} else { - var has = {}.hasOwnProperty; - var str = {}.toString; - var proto = {}.constructor.prototype; - - var ObjectKeys = function (o) { - var ret = []; - for (var key in o) { - if (has.call(o, key)) { - ret.push(key); - } - } - return ret; - }; - - var ObjectGetDescriptor = function(o, key) { - return {value: o[key]}; - }; - - var ObjectDefineProperty = function (o, key, desc) { - o[key] = desc.value; - return o; - }; - - var ObjectFreeze = function (obj) { - return obj; - }; - - var ObjectGetPrototypeOf = function (obj) { - try { - return Object(obj).constructor.prototype; - } - catch (e) { - return proto; - } - }; - - var ArrayIsArray = function (obj) { - try { - return str.call(obj) === "[object Array]"; - } - catch(e) { - return false; - } - }; - - module.exports = { - isArray: ArrayIsArray, - keys: ObjectKeys, - names: ObjectKeys, - defineProperty: ObjectDefineProperty, - getDescriptor: ObjectGetDescriptor, - freeze: ObjectFreeze, - getPrototypeOf: ObjectGetPrototypeOf, - isES5: isES5, - propertyIsWritable: function() { - return true; - } - }; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/filter.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/filter.js deleted file mode 100644 index ed57bf01..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/filter.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var PromiseMap = Promise.map; - -Promise.prototype.filter = function (fn, options) { - return PromiseMap(this, fn, options, INTERNAL); -}; - -Promise.filter = function (promises, fn, options) { - return PromiseMap(promises, fn, options, INTERNAL); -}; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/finally.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/finally.js deleted file mode 100644 index 73a9bfce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/finally.js +++ /dev/null @@ -1,111 +0,0 @@ -"use strict"; -module.exports = function(Promise, tryConvertToPromise) { -var util = require("./util"); -var CancellationError = Promise.CancellationError; -var errorObj = util.errorObj; - -function PassThroughHandlerContext(promise, type, handler) { - this.promise = promise; - this.type = type; - this.handler = handler; - this.called = false; - this.cancelPromise = null; -} - -PassThroughHandlerContext.prototype.isFinallyHandler = function() { - return this.type === 0; -}; - -function FinallyHandlerCancelReaction(finallyHandler) { - this.finallyHandler = finallyHandler; -} - -FinallyHandlerCancelReaction.prototype._resultCancelled = function() { - checkCancel(this.finallyHandler); -}; - -function checkCancel(ctx, reason) { - if (ctx.cancelPromise != null) { - if (arguments.length > 1) { - ctx.cancelPromise._reject(reason); - } else { - ctx.cancelPromise._cancel(); - } - ctx.cancelPromise = null; - return true; - } - return false; -} - -function succeed() { - return finallyHandler.call(this, this.promise._target()._settledValue()); -} -function fail(reason) { - if (checkCancel(this, reason)) return; - errorObj.e = reason; - return errorObj; -} -function finallyHandler(reasonOrValue) { - var promise = this.promise; - var handler = this.handler; - - if (!this.called) { - this.called = true; - var ret = this.isFinallyHandler() - ? handler.call(promise._boundValue()) - : handler.call(promise._boundValue(), reasonOrValue); - if (ret !== undefined) { - promise._setReturnedNonUndefined(); - var maybePromise = tryConvertToPromise(ret, promise); - if (maybePromise instanceof Promise) { - if (this.cancelPromise != null) { - if (maybePromise.isCancelled()) { - var reason = - new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - errorObj.e = reason; - return errorObj; - } else if (maybePromise.isPending()) { - maybePromise._attachCancellationCallback( - new FinallyHandlerCancelReaction(this)); - } - } - return maybePromise._then( - succeed, fail, undefined, this, undefined); - } - } - } - - if (promise.isRejected()) { - checkCancel(this); - errorObj.e = reasonOrValue; - return errorObj; - } else { - checkCancel(this); - return reasonOrValue; - } -} - -Promise.prototype._passThrough = function(handler, type, success, fail) { - if (typeof handler !== "function") return this.then(); - return this._then(success, - fail, - undefined, - new PassThroughHandlerContext(this, type, handler), - undefined); -}; - -Promise.prototype.lastly = -Promise.prototype["finally"] = function (handler) { - return this._passThrough(handler, - 0, - finallyHandler, - finallyHandler); -}; - -Promise.prototype.tap = function (handler) { - return this._passThrough(handler, 1, finallyHandler); -}; - -return PassThroughHandlerContext; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/generators.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/generators.js deleted file mode 100644 index de0f87e2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/generators.js +++ /dev/null @@ -1,219 +0,0 @@ -"use strict"; -module.exports = function(Promise, - apiRejection, - INTERNAL, - tryConvertToPromise, - Proxyable, - debug) { -var errors = require("./errors"); -var TypeError = errors.TypeError; -var util = require("./util"); -var errorObj = util.errorObj; -var tryCatch = util.tryCatch; -var yieldHandlers = []; - -function promiseFromYieldHandler(value, yieldHandlers, traceParent) { - for (var i = 0; i < yieldHandlers.length; ++i) { - traceParent._pushContext(); - var result = tryCatch(yieldHandlers[i])(value); - traceParent._popContext(); - if (result === errorObj) { - traceParent._pushContext(); - var ret = Promise.reject(errorObj.e); - traceParent._popContext(); - return ret; - } - var maybePromise = tryConvertToPromise(result, traceParent); - if (maybePromise instanceof Promise) return maybePromise; - } - return null; -} - -function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { - if (debug.cancellation()) { - var internal = new Promise(INTERNAL); - var _finallyPromise = this._finallyPromise = new Promise(INTERNAL); - this._promise = internal.lastly(function() { - return _finallyPromise; - }); - internal._captureStackTrace(); - internal._setOnCancel(this); - } else { - var promise = this._promise = new Promise(INTERNAL); - promise._captureStackTrace(); - } - this._stack = stack; - this._generatorFunction = generatorFunction; - this._receiver = receiver; - this._generator = undefined; - this._yieldHandlers = typeof yieldHandler === "function" - ? [yieldHandler].concat(yieldHandlers) - : yieldHandlers; - this._yieldedPromise = null; - this._cancellationPhase = false; -} -util.inherits(PromiseSpawn, Proxyable); - -PromiseSpawn.prototype._isResolved = function() { - return this._promise === null; -}; - -PromiseSpawn.prototype._cleanup = function() { - this._promise = this._generator = null; - if (debug.cancellation() && this._finallyPromise !== null) { - this._finallyPromise._fulfill(); - this._finallyPromise = null; - } -}; - -PromiseSpawn.prototype._promiseCancelled = function() { - if (this._isResolved()) return; - var implementsReturn = typeof this._generator["return"] !== "undefined"; - - var result; - if (!implementsReturn) { - var reason = new Promise.CancellationError( - "generator .return() sentinel"); - Promise.coroutine.returnSentinel = reason; - this._promise._attachExtraTrace(reason); - this._promise._pushContext(); - result = tryCatch(this._generator["throw"]).call(this._generator, - reason); - this._promise._popContext(); - } else { - this._promise._pushContext(); - result = tryCatch(this._generator["return"]).call(this._generator, - undefined); - this._promise._popContext(); - } - this._cancellationPhase = true; - this._yieldedPromise = null; - this._continue(result); -}; - -PromiseSpawn.prototype._promiseFulfilled = function(value) { - this._yieldedPromise = null; - this._promise._pushContext(); - var result = tryCatch(this._generator.next).call(this._generator, value); - this._promise._popContext(); - this._continue(result); -}; - -PromiseSpawn.prototype._promiseRejected = function(reason) { - this._yieldedPromise = null; - this._promise._attachExtraTrace(reason); - this._promise._pushContext(); - var result = tryCatch(this._generator["throw"]) - .call(this._generator, reason); - this._promise._popContext(); - this._continue(result); -}; - -PromiseSpawn.prototype._resultCancelled = function() { - if (this._yieldedPromise instanceof Promise) { - var promise = this._yieldedPromise; - this._yieldedPromise = null; - promise.cancel(); - } -}; - -PromiseSpawn.prototype.promise = function () { - return this._promise; -}; - -PromiseSpawn.prototype._run = function () { - this._generator = this._generatorFunction.call(this._receiver); - this._receiver = - this._generatorFunction = undefined; - this._promiseFulfilled(undefined); -}; - -PromiseSpawn.prototype._continue = function (result) { - var promise = this._promise; - if (result === errorObj) { - this._cleanup(); - if (this._cancellationPhase) { - return promise.cancel(); - } else { - return promise._rejectCallback(result.e, false); - } - } - - var value = result.value; - if (result.done === true) { - this._cleanup(); - if (this._cancellationPhase) { - return promise.cancel(); - } else { - return promise._resolveCallback(value); - } - } else { - var maybePromise = tryConvertToPromise(value, this._promise); - if (!(maybePromise instanceof Promise)) { - maybePromise = - promiseFromYieldHandler(maybePromise, - this._yieldHandlers, - this._promise); - if (maybePromise === null) { - this._promiseRejected( - new TypeError( - "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", value) + - "From coroutine:\u000a" + - this._stack.split("\n").slice(1, -7).join("\n") - ) - ); - return; - } - } - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - this._yieldedPromise = maybePromise; - maybePromise._proxy(this, null); - } else if (((bitField & 33554432) !== 0)) { - this._promiseFulfilled(maybePromise._value()); - } else if (((bitField & 16777216) !== 0)) { - this._promiseRejected(maybePromise._reason()); - } else { - this._promiseCancelled(); - } - } -}; - -Promise.coroutine = function (generatorFunction, options) { - if (typeof generatorFunction !== "function") { - throw new TypeError("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var yieldHandler = Object(options).yieldHandler; - var PromiseSpawn$ = PromiseSpawn; - var stack = new Error().stack; - return function () { - var generator = generatorFunction.apply(this, arguments); - var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, - stack); - var ret = spawn.promise(); - spawn._generator = generator; - spawn._promiseFulfilled(undefined); - return ret; - }; -}; - -Promise.coroutine.addYieldHandler = function(fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - yieldHandlers.push(fn); -}; - -Promise.spawn = function (generatorFunction) { - debug.deprecated("Promise.spawn()", "Promise.coroutine()"); - if (typeof generatorFunction !== "function") { - return apiRejection("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var spawn = new PromiseSpawn(generatorFunction, this); - var ret = spawn.promise(); - spawn._run(Promise.spawn); - return ret; -}; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/join.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/join.js deleted file mode 100644 index b3ec246f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/join.js +++ /dev/null @@ -1,149 +0,0 @@ -"use strict"; -module.exports = -function(Promise, PromiseArray, tryConvertToPromise, INTERNAL) { -var util = require("./util"); -var canEvaluate = util.canEvaluate; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var reject; - -if (!false) { -if (canEvaluate) { - var thenCallback = function(i) { - return new Function("value", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = value; \n\ - holder.checkFulfillment(this); \n\ - ".replace(/Index/g, i)); - }; - - var promiseSetter = function(i) { - return new Function("promise", "holder", " \n\ - 'use strict'; \n\ - holder.pIndex = promise; \n\ - ".replace(/Index/g, i)); - }; - - var generateHolderClass = function(total) { - var props = new Array(total); - for (var i = 0; i < props.length; ++i) { - props[i] = "this.p" + (i+1); - } - var assignment = props.join(" = ") + " = null;"; - var cancellationCode= "var promise;\n" + props.map(function(prop) { - return " \n\ - promise = " + prop + "; \n\ - if (promise instanceof Promise) { \n\ - promise.cancel(); \n\ - } \n\ - "; - }).join("\n"); - var passedArguments = props.join(", "); - var name = "Holder$" + total; - - - var code = "return function(tryCatch, errorObj, Promise) { \n\ - 'use strict'; \n\ - function [TheName](fn) { \n\ - [TheProperties] \n\ - this.fn = fn; \n\ - this.now = 0; \n\ - } \n\ - [TheName].prototype.checkFulfillment = function(promise) { \n\ - var now = ++this.now; \n\ - if (now === [TheTotal]) { \n\ - promise._pushContext(); \n\ - var callback = this.fn; \n\ - var ret = tryCatch(callback)([ThePassedArguments]); \n\ - promise._popContext(); \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(ret.e, false); \n\ - } else { \n\ - promise._resolveCallback(ret); \n\ - } \n\ - } \n\ - }; \n\ - \n\ - [TheName].prototype._resultCancelled = function() { \n\ - [CancellationCode] \n\ - }; \n\ - \n\ - return [TheName]; \n\ - }(tryCatch, errorObj, Promise); \n\ - "; - - code = code.replace(/\[TheName\]/g, name) - .replace(/\[TheTotal\]/g, total) - .replace(/\[ThePassedArguments\]/g, passedArguments) - .replace(/\[TheProperties\]/g, assignment) - .replace(/\[CancellationCode\]/g, cancellationCode); - - return new Function("tryCatch", "errorObj", "Promise", code) - (tryCatch, errorObj, Promise); - }; - - var holderClasses = []; - var thenCallbacks = []; - var promiseSetters = []; - - for (var i = 0; i < 8; ++i) { - holderClasses.push(generateHolderClass(i + 1)); - thenCallbacks.push(thenCallback(i + 1)); - promiseSetters.push(promiseSetter(i + 1)); - } - - reject = function (reason) { - this._reject(reason); - }; -}} - -Promise.join = function () { - var last = arguments.length - 1; - var fn; - if (last > 0 && typeof arguments[last] === "function") { - fn = arguments[last]; - if (!false) { - if (last <= 8 && canEvaluate) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var HolderClass = holderClasses[last - 1]; - var holder = new HolderClass(fn); - var callbacks = thenCallbacks; - - for (var i = 0; i < last; ++i) { - var maybePromise = tryConvertToPromise(arguments[i], ret); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - maybePromise._then(callbacks[i], reject, - undefined, ret, holder); - promiseSetters[i](maybePromise, holder); - } else if (((bitField & 33554432) !== 0)) { - callbacks[i].call(ret, - maybePromise._value(), holder); - } else if (((bitField & 16777216) !== 0)) { - ret._reject(maybePromise._reason()); - } else { - ret._cancel(); - } - } else { - callbacks[i].call(ret, maybePromise, holder); - } - } - if (!ret._isFateSealed()) { - ret._setAsyncGuaranteed(); - ret._setOnCancel(holder); - } - return ret; - } - } - } - var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len; ++$_i) {args[$_i] = arguments[$_i];}; - if (fn) args.pop(); - var ret = new PromiseArray(args).promise(); - return fn !== undefined ? ret.spread(fn) : ret; -}; - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/map.js deleted file mode 100644 index 24690dc6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/map.js +++ /dev/null @@ -1,151 +0,0 @@ -"use strict"; -module.exports = function(Promise, - PromiseArray, - apiRejection, - tryConvertToPromise, - INTERNAL, - debug) { -var getDomain = Promise._getDomain; -var util = require("./util"); -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; -var EMPTY_ARRAY = []; - -function MappingPromiseArray(promises, fn, limit, _filter) { - this.constructor$(promises); - this._promise._captureStackTrace(); - var domain = getDomain(); - this._callback = domain === null ? fn : domain.bind(fn); - this._preservedValues = _filter === INTERNAL - ? new Array(this.length()) - : null; - this._limit = limit; - this._inFlight = 0; - this._queue = limit >= 1 ? [] : EMPTY_ARRAY; - this._init$(undefined, -2); -} -util.inherits(MappingPromiseArray, PromiseArray); - -MappingPromiseArray.prototype._init = function () {}; - -MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { - var values = this._values; - var length = this.length(); - var preservedValues = this._preservedValues; - var limit = this._limit; - - if (index < 0) { - index = (index * -1) - 1; - values[index] = value; - if (limit >= 1) { - this._inFlight--; - this._drainQueue(); - if (this._isResolved()) return true; - } - } else { - if (limit >= 1 && this._inFlight >= limit) { - values[index] = value; - this._queue.push(index); - return false; - } - if (preservedValues !== null) preservedValues[index] = value; - - var promise = this._promise; - var callback = this._callback; - var receiver = promise._boundValue(); - promise._pushContext(); - var ret = tryCatch(callback).call(receiver, value, index, length); - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, - promiseCreated, - preservedValues !== null ? "Promise.filter" : "Promise.map", - promise - ); - if (ret === errorObj) { - this._reject(ret.e); - return true; - } - - var maybePromise = tryConvertToPromise(ret, this._promise); - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - var bitField = maybePromise._bitField; - ; - if (((bitField & 50397184) === 0)) { - if (limit >= 1) this._inFlight++; - values[index] = maybePromise; - maybePromise._proxy(this, (index + 1) * -1); - return false; - } else if (((bitField & 33554432) !== 0)) { - ret = maybePromise._value(); - } else if (((bitField & 16777216) !== 0)) { - this._reject(maybePromise._reason()); - return true; - } else { - this._cancel(); - return true; - } - } - values[index] = ret; - } - var totalResolved = ++this._totalResolved; - if (totalResolved >= length) { - if (preservedValues !== null) { - this._filter(values, preservedValues); - } else { - this._resolve(values); - } - return true; - } - return false; -}; - -MappingPromiseArray.prototype._drainQueue = function () { - var queue = this._queue; - var limit = this._limit; - var values = this._values; - while (queue.length > 0 && this._inFlight < limit) { - if (this._isResolved()) return; - var index = queue.pop(); - this._promiseFulfilled(values[index], index); - } -}; - -MappingPromiseArray.prototype._filter = function (booleans, values) { - var len = values.length; - var ret = new Array(len); - var j = 0; - for (var i = 0; i < len; ++i) { - if (booleans[i]) ret[j++] = values[i]; - } - ret.length = j; - this._resolve(ret); -}; - -MappingPromiseArray.prototype.preservedValues = function () { - return this._preservedValues; -}; - -function map(promises, fn, options, _filter) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var limit = typeof options === "object" && options !== null - ? options.concurrency - : 0; - limit = typeof limit === "number" && - isFinite(limit) && limit >= 1 ? limit : 0; - return new MappingPromiseArray(promises, fn, limit, _filter).promise(); -} - -Promise.prototype.map = function (fn, options) { - return map(this, fn, options, null); -}; - -Promise.map = function (promises, fn, options, _filter) { - return map(promises, fn, options, _filter); -}; - - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/method.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/method.js deleted file mode 100644 index ce9e4db7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/method.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; -module.exports = -function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { -var util = require("./util"); -var tryCatch = util.tryCatch; - -Promise.method = function (fn) { - if (typeof fn !== "function") { - throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); - } - return function () { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value = tryCatch(fn).apply(this, arguments); - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.method", ret); - ret._resolveFromSyncValue(value); - return ret; - }; -}; - -Promise.attempt = Promise["try"] = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._pushContext(); - var value; - if (arguments.length > 1) { - debug.deprecated("calling Promise.try with more than 1 argument"); - var arg = arguments[1]; - var ctx = arguments[2]; - value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) - : tryCatch(fn).call(ctx, arg); - } else { - value = tryCatch(fn)(); - } - var promiseCreated = ret._popContext(); - debug.checkForgottenReturns( - value, promiseCreated, "Promise.try", ret); - ret._resolveFromSyncValue(value); - return ret; -}; - -Promise.prototype._resolveFromSyncValue = function (value) { - if (value === util.errorObj) { - this._rejectCallback(value.e, false); - } else { - this._resolveCallback(value, true); - } -}; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/nodeback.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/nodeback.js deleted file mode 100644 index 71e69ebd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/nodeback.js +++ /dev/null @@ -1,51 +0,0 @@ -"use strict"; -var util = require("./util"); -var maybeWrapAsError = util.maybeWrapAsError; -var errors = require("./errors"); -var OperationalError = errors.OperationalError; -var es5 = require("./es5"); - -function isUntypedError(obj) { - return obj instanceof Error && - es5.getPrototypeOf(obj) === Error.prototype; -} - -var rErrorKey = /^(?:name|message|stack|cause)$/; -function wrapAsOperationalError(obj) { - var ret; - if (isUntypedError(obj)) { - ret = new OperationalError(obj); - ret.name = obj.name; - ret.message = obj.message; - ret.stack = obj.stack; - var keys = es5.keys(obj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!rErrorKey.test(key)) { - ret[key] = obj[key]; - } - } - return ret; - } - util.markAsOriginatingFromRejection(obj); - return obj; -} - -function nodebackForPromise(promise, multiArgs) { - return function(err, value) { - if (promise === null) return; - if (err) { - var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); - promise._attachExtraTrace(wrapped); - promise._reject(wrapped); - } else if (!multiArgs) { - promise._fulfill(value); - } else { - var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];}; - promise._fulfill(args); - } - promise = null; - }; -} - -module.exports = nodebackForPromise; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/nodeify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/nodeify.js deleted file mode 100644 index ce2b1900..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/nodeify.js +++ /dev/null @@ -1,58 +0,0 @@ -"use strict"; -module.exports = function(Promise) { -var util = require("./util"); -var async = Promise._async; -var tryCatch = util.tryCatch; -var errorObj = util.errorObj; - -function spreadAdapter(val, nodeback) { - var promise = this; - if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); - var ret = - tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} - -function successAdapter(val, nodeback) { - var promise = this; - var receiver = promise._boundValue(); - var ret = val === undefined - ? tryCatch(nodeback).call(receiver, null) - : tryCatch(nodeback).call(receiver, null, val); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} -function errorAdapter(reason, nodeback) { - var promise = this; - if (!reason) { - var newReason = new Error(reason + ""); - newReason.cause = reason; - reason = newReason; - } - var ret = tryCatch(nodeback).call(promise._boundValue(), reason); - if (ret === errorObj) { - async.throwLater(ret.e); - } -} - -Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, - options) { - if (typeof nodeback == "function") { - var adapter = successAdapter; - if (options !== undefined && Object(options).spread) { - adapter = spreadAdapter; - } - this._then( - adapter, - errorAdapter, - undefined, - this, - nodeback - ); - } - return this; -}; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/promise.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/promise.js deleted file mode 100644 index c77114d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/promise.js +++ /dev/null @@ -1,764 +0,0 @@ -"use strict"; -module.exports = function() { -var makeSelfResolutionError = function () { - return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var reflectHandler = function() { - return new Promise.PromiseInspection(this._target()); -}; -var apiRejection = function(msg) { - return Promise.reject(new TypeError(msg)); -}; -function Proxyable() {} -var UNDEFINED_BINDING = {}; -var util = require("./util"); - -var getDomain; -if (util.isNode) { - getDomain = function() { - var ret = process.domain; - if (ret === undefined) ret = null; - return ret; - }; -} else { - getDomain = function() { - return null; - }; -} -util.notEnumerableProp(Promise, "_getDomain", getDomain); - -var es5 = require("./es5"); -var Async = require("./async"); -var async = new Async(); -es5.defineProperty(Promise, "_async", {value: async}); -var errors = require("./errors"); -var TypeError = Promise.TypeError = errors.TypeError; -Promise.RangeError = errors.RangeError; -var CancellationError = Promise.CancellationError = errors.CancellationError; -Promise.TimeoutError = errors.TimeoutError; -Promise.OperationalError = errors.OperationalError; -Promise.RejectionError = errors.OperationalError; -Promise.AggregateError = errors.AggregateError; -var INTERNAL = function(){}; -var APPLY = {}; -var NEXT_FILTER = {}; -var tryConvertToPromise = require("./thenables")(Promise, INTERNAL); -var PromiseArray = - require("./promise_array")(Promise, INTERNAL, - tryConvertToPromise, apiRejection, Proxyable); -var Context = require("./context")(Promise); - /*jshint unused:false*/ -var createContext = Context.create; -var debug = require("./debuggability")(Promise, Context); -var CapturedTrace = debug.CapturedTrace; -var PassThroughHandlerContext = - require("./finally")(Promise, tryConvertToPromise); -var catchFilter = require("./catch_filter")(NEXT_FILTER); -var nodebackForPromise = require("./nodeback"); -var errorObj = util.errorObj; -var tryCatch = util.tryCatch; -function check(self, executor) { - if (typeof executor !== "function") { - throw new TypeError("expecting a function but got " + util.classString(executor)); - } - if (self.constructor !== Promise) { - throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } -} - -function Promise(executor) { - this._bitField = 0; - this._fulfillmentHandler0 = undefined; - this._rejectionHandler0 = undefined; - this._promise0 = undefined; - this._receiver0 = undefined; - if (executor !== INTERNAL) { - check(this, executor); - this._resolveFromExecutor(executor); - } - this._promiseCreated(); - this._fireEvent("promiseCreated", this); -} - -Promise.prototype.toString = function () { - return "[object Promise]"; -}; - -Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { - var len = arguments.length; - if (len > 1) { - var catchInstances = new Array(len - 1), - j = 0, i; - for (i = 0; i < len - 1; ++i) { - var item = arguments[i]; - if (util.isObject(item)) { - catchInstances[j++] = item; - } else { - return apiRejection("expecting an object but got " + util.classString(item)); - } - } - catchInstances.length = j; - fn = arguments[i]; - return this.then(undefined, catchFilter(catchInstances, fn, this)); - } - return this.then(undefined, fn); -}; - -Promise.prototype.reflect = function () { - return this._then(reflectHandler, - reflectHandler, undefined, this, undefined); -}; - -Promise.prototype.then = function (didFulfill, didReject) { - if (debug.warnings() && arguments.length > 0 && - typeof didFulfill !== "function" && - typeof didReject !== "function") { - var msg = ".then() only accepts functions but was passed: " + - util.classString(didFulfill); - if (arguments.length > 1) { - msg += ", " + util.classString(didReject); - } - this._warn(msg); - } - return this._then(didFulfill, didReject, undefined, undefined, undefined); -}; - -Promise.prototype.done = function (didFulfill, didReject) { - var promise = - this._then(didFulfill, didReject, undefined, undefined, undefined); - promise._setIsFinal(); -}; - -Promise.prototype.spread = function (fn) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - return this.all()._then(fn, undefined, undefined, APPLY, undefined); -}; - -Promise.prototype.toJSON = function () { - var ret = { - isFulfilled: false, - isRejected: false, - fulfillmentValue: undefined, - rejectionReason: undefined - }; - if (this.isFulfilled()) { - ret.fulfillmentValue = this.value(); - ret.isFulfilled = true; - } else if (this.isRejected()) { - ret.rejectionReason = this.reason(); - ret.isRejected = true; - } - return ret; -}; - -Promise.prototype.all = function () { - if (arguments.length > 0) { - this._warn(".all() was passed arguments but it does not take any"); - } - return new PromiseArray(this).promise(); -}; - -Promise.prototype.error = function (fn) { - return this.caught(util.originatesFromRejection, fn); -}; - -Promise.is = function (val) { - return val instanceof Promise; -}; - -Promise.fromNode = Promise.fromCallback = function(fn) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs - : false; - var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); - if (result === errorObj) { - ret._rejectCallback(result.e, true); - } - if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); - return ret; -}; - -Promise.all = function (promises) { - return new PromiseArray(promises).promise(); -}; - -Promise.cast = function (obj) { - var ret = tryConvertToPromise(obj); - if (!(ret instanceof Promise)) { - ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._setFulfilled(); - ret._rejectionHandler0 = obj; - } - return ret; -}; - -Promise.resolve = Promise.fulfilled = Promise.cast; - -Promise.reject = Promise.rejected = function (reason) { - var ret = new Promise(INTERNAL); - ret._captureStackTrace(); - ret._rejectCallback(reason, true); - return ret; -}; - -Promise.setScheduler = function(fn) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - return async.setScheduler(fn); -}; - -Promise.prototype._then = function ( - didFulfill, - didReject, - _, receiver, - internalData -) { - var haveInternalData = internalData !== undefined; - var promise = haveInternalData ? internalData : new Promise(INTERNAL); - var target = this._target(); - var bitField = target._bitField; - - if (!haveInternalData) { - promise._propagateFrom(this, 3); - promise._captureStackTrace(); - if (receiver === undefined && - ((this._bitField & 2097152) !== 0)) { - if (!((bitField & 50397184) === 0)) { - receiver = this._boundValue(); - } else { - receiver = target === this ? undefined : this._boundTo; - } - } - this._fireEvent("promiseChained", this, promise); - } - - var domain = getDomain(); - if (!((bitField & 50397184) === 0)) { - var handler, value, settler = target._settlePromiseCtx; - if (((bitField & 33554432) !== 0)) { - value = target._rejectionHandler0; - handler = didFulfill; - } else if (((bitField & 16777216) !== 0)) { - value = target._fulfillmentHandler0; - handler = didReject; - target._unsetRejectionIsUnhandled(); - } else { - settler = target._settlePromiseLateCancellationObserver; - value = new CancellationError("late cancellation observer"); - target._attachExtraTrace(value); - handler = didReject; - } - - async.invoke(settler, target, { - handler: domain === null ? handler - : (typeof handler === "function" && domain.bind(handler)), - promise: promise, - receiver: receiver, - value: value - }); - } else { - target._addCallbacks(didFulfill, didReject, promise, receiver, domain); - } - - return promise; -}; - -Promise.prototype._length = function () { - return this._bitField & 65535; -}; - -Promise.prototype._isFateSealed = function () { - return (this._bitField & 117506048) !== 0; -}; - -Promise.prototype._isFollowing = function () { - return (this._bitField & 67108864) === 67108864; -}; - -Promise.prototype._setLength = function (len) { - this._bitField = (this._bitField & -65536) | - (len & 65535); -}; - -Promise.prototype._setFulfilled = function () { - this._bitField = this._bitField | 33554432; - this._fireEvent("promiseFulfilled", this); -}; - -Promise.prototype._setRejected = function () { - this._bitField = this._bitField | 16777216; - this._fireEvent("promiseRejected", this); -}; - -Promise.prototype._setFollowing = function () { - this._bitField = this._bitField | 67108864; - this._fireEvent("promiseResolved", this); -}; - -Promise.prototype._setIsFinal = function () { - this._bitField = this._bitField | 4194304; -}; - -Promise.prototype._isFinal = function () { - return (this._bitField & 4194304) > 0; -}; - -Promise.prototype._unsetCancelled = function() { - this._bitField = this._bitField & (~65536); -}; - -Promise.prototype._setCancelled = function() { - this._bitField = this._bitField | 65536; - this._fireEvent("promiseCancelled", this); -}; - -Promise.prototype._setAsyncGuaranteed = function() { - if (async.hasCustomScheduler()) return; - this._bitField = this._bitField | 134217728; -}; - -Promise.prototype._receiverAt = function (index) { - var ret = index === 0 ? this._receiver0 : this[ - index * 4 - 4 + 3]; - if (ret === UNDEFINED_BINDING) { - return undefined; - } else if (ret === undefined && this._isBound()) { - return this._boundValue(); - } - return ret; -}; - -Promise.prototype._promiseAt = function (index) { - return this[ - index * 4 - 4 + 2]; -}; - -Promise.prototype._fulfillmentHandlerAt = function (index) { - return this[ - index * 4 - 4 + 0]; -}; - -Promise.prototype._rejectionHandlerAt = function (index) { - return this[ - index * 4 - 4 + 1]; -}; - -Promise.prototype._boundValue = function() {}; - -Promise.prototype._migrateCallback0 = function (follower) { - var bitField = follower._bitField; - var fulfill = follower._fulfillmentHandler0; - var reject = follower._rejectionHandler0; - var promise = follower._promise0; - var receiver = follower._receiverAt(0); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._migrateCallbackAt = function (follower, index) { - var fulfill = follower._fulfillmentHandlerAt(index); - var reject = follower._rejectionHandlerAt(index); - var promise = follower._promiseAt(index); - var receiver = follower._receiverAt(index); - if (receiver === undefined) receiver = UNDEFINED_BINDING; - this._addCallbacks(fulfill, reject, promise, receiver, null); -}; - -Promise.prototype._addCallbacks = function ( - fulfill, - reject, - promise, - receiver, - domain -) { - var index = this._length(); - - if (index >= 65535 - 4) { - index = 0; - this._setLength(0); - } - - if (index === 0) { - this._promise0 = promise; - this._receiver0 = receiver; - if (typeof fulfill === "function") { - this._fulfillmentHandler0 = - domain === null ? fulfill : domain.bind(fulfill); - } - if (typeof reject === "function") { - this._rejectionHandler0 = - domain === null ? reject : domain.bind(reject); - } - } else { - var base = index * 4 - 4; - this[base + 2] = promise; - this[base + 3] = receiver; - if (typeof fulfill === "function") { - this[base + 0] = - domain === null ? fulfill : domain.bind(fulfill); - } - if (typeof reject === "function") { - this[base + 1] = - domain === null ? reject : domain.bind(reject); - } - } - this._setLength(index + 1); - return index; -}; - -Promise.prototype._proxy = function (proxyable, arg) { - this._addCallbacks(undefined, undefined, arg, proxyable, null); -}; - -Promise.prototype._resolveCallback = function(value, shouldBind) { - if (((this._bitField & 117506048) !== 0)) return; - if (value === this) - return this._rejectCallback(makeSelfResolutionError(), false); - var maybePromise = tryConvertToPromise(value, this); - if (!(maybePromise instanceof Promise)) return this._fulfill(value); - - if (shouldBind) this._propagateFrom(maybePromise, 2); - - var promise = maybePromise._target(); - - if (promise === this) { - this._reject(makeSelfResolutionError()); - return; - } - - var bitField = promise._bitField; - if (((bitField & 50397184) === 0)) { - var len = this._length(); - if (len > 0) promise._migrateCallback0(this); - for (var i = 1; i < len; ++i) { - promise._migrateCallbackAt(this, i); - } - this._setFollowing(); - this._setLength(0); - this._setFollowee(promise); - } else if (((bitField & 33554432) !== 0)) { - this._fulfill(promise._value()); - } else if (((bitField & 16777216) !== 0)) { - this._reject(promise._reason()); - } else { - var reason = new CancellationError("late cancellation observer"); - promise._attachExtraTrace(reason); - this._reject(reason); - } -}; - -Promise.prototype._rejectCallback = -function(reason, synchronous, ignoreNonErrorWarnings) { - var trace = util.ensureErrorObject(reason); - var hasStack = trace === reason; - if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { - var message = "a promise was rejected with a non-error: " + - util.classString(reason); - this._warn(message, true); - } - this._attachExtraTrace(trace, synchronous ? hasStack : false); - this._reject(reason); -}; - -Promise.prototype._resolveFromExecutor = function (executor) { - var promise = this; - this._captureStackTrace(); - this._pushContext(); - var synchronous = true; - var r = this._execute(executor, function(value) { - promise._resolveCallback(value); - }, function (reason) { - promise._rejectCallback(reason, synchronous); - }); - synchronous = false; - this._popContext(); - - if (r !== undefined) { - promise._rejectCallback(r, true); - } -}; - -Promise.prototype._settlePromiseFromHandler = function ( - handler, receiver, value, promise -) { - var bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - promise._pushContext(); - var x; - if (receiver === APPLY) { - if (!value || typeof value.length !== "number") { - x = errorObj; - x.e = new TypeError("cannot .spread() a non-array: " + - util.classString(value)); - } else { - x = tryCatch(handler).apply(this._boundValue(), value); - } - } else { - x = tryCatch(handler).call(receiver, value); - } - var promiseCreated = promise._popContext(); - bitField = promise._bitField; - if (((bitField & 65536) !== 0)) return; - - if (x === NEXT_FILTER) { - promise._reject(value); - } else if (x === errorObj) { - promise._rejectCallback(x.e, false); - } else { - debug.checkForgottenReturns(x, promiseCreated, "", promise, this); - promise._resolveCallback(x); - } -}; - -Promise.prototype._target = function() { - var ret = this; - while (ret._isFollowing()) ret = ret._followee(); - return ret; -}; - -Promise.prototype._followee = function() { - return this._rejectionHandler0; -}; - -Promise.prototype._setFollowee = function(promise) { - this._rejectionHandler0 = promise; -}; - -Promise.prototype._settlePromise = function(promise, handler, receiver, value) { - var isPromise = promise instanceof Promise; - var bitField = this._bitField; - var asyncGuaranteed = ((bitField & 134217728) !== 0); - if (((bitField & 65536) !== 0)) { - if (isPromise) promise._invokeInternalOnCancel(); - - if (receiver instanceof PassThroughHandlerContext && - receiver.isFinallyHandler()) { - receiver.cancelPromise = promise; - if (tryCatch(handler).call(receiver, value) === errorObj) { - promise._reject(errorObj.e); - } - } else if (handler === reflectHandler) { - promise._fulfill(reflectHandler.call(receiver)); - } else if (receiver instanceof Proxyable) { - receiver._promiseCancelled(promise); - } else if (isPromise || promise instanceof PromiseArray) { - promise._cancel(); - } else { - receiver.cancel(); - } - } else if (typeof handler === "function") { - if (!isPromise) { - handler.call(receiver, value, promise); - } else { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (receiver instanceof Proxyable) { - if (!receiver._isResolved()) { - if (((bitField & 33554432) !== 0)) { - receiver._promiseFulfilled(value, promise); - } else { - receiver._promiseRejected(value, promise); - } - } - } else if (isPromise) { - if (asyncGuaranteed) promise._setAsyncGuaranteed(); - if (((bitField & 33554432) !== 0)) { - promise._fulfill(value); - } else { - promise._reject(value); - } - } -}; - -Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { - var handler = ctx.handler; - var promise = ctx.promise; - var receiver = ctx.receiver; - var value = ctx.value; - if (typeof handler === "function") { - if (!(promise instanceof Promise)) { - handler.call(receiver, value, promise); - } else { - this._settlePromiseFromHandler(handler, receiver, value, promise); - } - } else if (promise instanceof Promise) { - promise._reject(value); - } -}; - -Promise.prototype._settlePromiseCtx = function(ctx) { - this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); -}; - -Promise.prototype._settlePromise0 = function(handler, value, bitField) { - var promise = this._promise0; - var receiver = this._receiverAt(0); - this._promise0 = undefined; - this._receiver0 = undefined; - this._settlePromise(promise, handler, receiver, value); -}; - -Promise.prototype._clearCallbackDataAtIndex = function(index) { - var base = index * 4 - 4; - this[base + 2] = - this[base + 3] = - this[base + 0] = - this[base + 1] = undefined; -}; - -Promise.prototype._fulfill = function (value) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - if (value === this) { - var err = makeSelfResolutionError(); - this._attachExtraTrace(err); - return this._reject(err); - } - this._setFulfilled(); - this._rejectionHandler0 = value; - - if ((bitField & 65535) > 0) { - if (((bitField & 134217728) !== 0)) { - this._settlePromises(); - } else { - async.settlePromises(this); - } - } -}; - -Promise.prototype._reject = function (reason) { - var bitField = this._bitField; - if (((bitField & 117506048) >>> 16)) return; - this._setRejected(); - this._fulfillmentHandler0 = reason; - - if (this._isFinal()) { - return async.fatalError(reason, util.isNode); - } - - if ((bitField & 65535) > 0) { - async.settlePromises(this); - } else { - this._ensurePossibleRejectionHandled(); - } -}; - -Promise.prototype._fulfillPromises = function (len, value) { - for (var i = 1; i < len; i++) { - var handler = this._fulfillmentHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, value); - } -}; - -Promise.prototype._rejectPromises = function (len, reason) { - for (var i = 1; i < len; i++) { - var handler = this._rejectionHandlerAt(i); - var promise = this._promiseAt(i); - var receiver = this._receiverAt(i); - this._clearCallbackDataAtIndex(i); - this._settlePromise(promise, handler, receiver, reason); - } -}; - -Promise.prototype._settlePromises = function () { - var bitField = this._bitField; - var len = (bitField & 65535); - - if (len > 0) { - if (((bitField & 16842752) !== 0)) { - var reason = this._fulfillmentHandler0; - this._settlePromise0(this._rejectionHandler0, reason, bitField); - this._rejectPromises(len, reason); - } else { - var value = this._rejectionHandler0; - this._settlePromise0(this._fulfillmentHandler0, value, bitField); - this._fulfillPromises(len, value); - } - this._setLength(0); - } - this._clearCancellationData(); -}; - -Promise.prototype._settledValue = function() { - var bitField = this._bitField; - if (((bitField & 33554432) !== 0)) { - return this._rejectionHandler0; - } else if (((bitField & 16777216) !== 0)) { - return this._fulfillmentHandler0; - } -}; - -function deferResolve(v) {this.promise._resolveCallback(v);} -function deferReject(v) {this.promise._rejectCallback(v, false);} - -Promise.defer = Promise.pending = function() { - debug.deprecated("Promise.defer", "new Promise"); - var promise = new Promise(INTERNAL); - return { - promise: promise, - resolve: deferResolve, - reject: deferReject - }; -}; - -util.notEnumerableProp(Promise, - "_makeSelfResolutionError", - makeSelfResolutionError); - -require("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, - debug); -require("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); -require("./cancel")(Promise, PromiseArray, apiRejection, debug); -require("./direct_resolve")(Promise); -require("./synchronous_inspection")(Promise); -require("./join")( - Promise, PromiseArray, tryConvertToPromise, INTERNAL, debug); -Promise.Promise = Promise; -require('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); -require('./call_get.js')(Promise); -require('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); -require('./timers.js')(Promise, INTERNAL, debug); -require('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); -require('./nodeify.js')(Promise); -require('./promisify.js')(Promise, INTERNAL); -require('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); -require('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); -require('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); -require('./settle.js')(Promise, PromiseArray, debug); -require('./some.js')(Promise, PromiseArray, apiRejection); -require('./filter.js')(Promise, INTERNAL); -require('./each.js')(Promise, INTERNAL); -require('./any.js')(Promise); - - util.toFastProperties(Promise); - util.toFastProperties(Promise.prototype); - function fillTypes(value) { - var p = new Promise(INTERNAL); - p._fulfillmentHandler0 = value; - p._rejectionHandler0 = value; - p._promise0 = value; - p._receiver0 = value; - } - // Complete slack tracking, opt out of field-type tracking and - // stabilize map - fillTypes({a: 1}); - fillTypes({b: 2}); - fillTypes({c: 3}); - fillTypes(1); - fillTypes(function(){}); - fillTypes(undefined); - fillTypes(false); - fillTypes(new Promise(INTERNAL)); - debug.setBounds(Async.firstLineError, util.lastLineError); - return Promise; - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/promise_array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/promise_array.js deleted file mode 100644 index 64007233..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/promise_array.js +++ /dev/null @@ -1,184 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL, tryConvertToPromise, - apiRejection, Proxyable) { -var util = require("./util"); -var isArray = util.isArray; - -function toResolutionValue(val) { - switch(val) { - case -2: return []; - case -3: return {}; - } -} - -function PromiseArray(values) { - var promise = this._promise = new Promise(INTERNAL); - if (values instanceof Promise) { - promise._propagateFrom(values, 3); - } - promise._setOnCancel(this); - this._values = values; - this._length = 0; - this._totalResolved = 0; - this._init(undefined, -2); -} -util.inherits(PromiseArray, Proxyable); - -PromiseArray.prototype.length = function () { - return this._length; -}; - -PromiseArray.prototype.promise = function () { - return this._promise; -}; - -PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { - var values = tryConvertToPromise(this._values, this._promise); - if (values instanceof Promise) { - values = values._target(); - var bitField = values._bitField; - ; - this._values = values; - - if (((bitField & 50397184) === 0)) { - this._promise._setAsyncGuaranteed(); - return values._then( - init, - this._reject, - undefined, - this, - resolveValueIfEmpty - ); - } else if (((bitField & 33554432) !== 0)) { - values = values._value(); - } else if (((bitField & 16777216) !== 0)) { - return this._reject(values._reason()); - } else { - return this._cancel(); - } - } - values = util.asArray(values); - if (values === null) { - var err = apiRejection( - "expecting an array or an iterable object but got " + util.classString(values)).reason(); - this._promise._rejectCallback(err, false); - return; - } - - if (values.length === 0) { - if (resolveValueIfEmpty === -5) { - this._resolveEmptyArray(); - } - else { - this._resolve(toResolutionValue(resolveValueIfEmpty)); - } - return; - } - this._iterate(values); -}; - -PromiseArray.prototype._iterate = function(values) { - var len = this.getActualLength(values.length); - this._length = len; - this._values = this.shouldCopyValues() ? new Array(len) : this._values; - var result = this._promise; - var isResolved = false; - var bitField = null; - for (var i = 0; i < len; ++i) { - var maybePromise = tryConvertToPromise(values[i], result); - - if (maybePromise instanceof Promise) { - maybePromise = maybePromise._target(); - bitField = maybePromise._bitField; - } else { - bitField = null; - } - - if (isResolved) { - if (bitField !== null) { - maybePromise.suppressUnhandledRejections(); - } - } else if (bitField !== null) { - if (((bitField & 50397184) === 0)) { - maybePromise._proxy(this, i); - this._values[i] = maybePromise; - } else if (((bitField & 33554432) !== 0)) { - isResolved = this._promiseFulfilled(maybePromise._value(), i); - } else if (((bitField & 16777216) !== 0)) { - isResolved = this._promiseRejected(maybePromise._reason(), i); - } else { - isResolved = this._promiseCancelled(i); - } - } else { - isResolved = this._promiseFulfilled(maybePromise, i); - } - } - if (!isResolved) result._setAsyncGuaranteed(); -}; - -PromiseArray.prototype._isResolved = function () { - return this._values === null; -}; - -PromiseArray.prototype._resolve = function (value) { - this._values = null; - this._promise._fulfill(value); -}; - -PromiseArray.prototype._cancel = function() { - if (this._isResolved() || !this._promise.isCancellable()) return; - this._values = null; - this._promise._cancel(); -}; - -PromiseArray.prototype._reject = function (reason) { - this._values = null; - this._promise._rejectCallback(reason, false); -}; - -PromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; -}; - -PromiseArray.prototype._promiseCancelled = function() { - this._cancel(); - return true; -}; - -PromiseArray.prototype._promiseRejected = function (reason) { - this._totalResolved++; - this._reject(reason); - return true; -}; - -PromiseArray.prototype._resultCancelled = function() { - if (this._isResolved()) return; - var values = this._values; - this._cancel(); - if (values instanceof Promise) { - values.cancel(); - } else { - for (var i = 0; i < values.length; ++i) { - if (values[i] instanceof Promise) { - values[i].cancel(); - } - } - } -}; - -PromiseArray.prototype.shouldCopyValues = function () { - return true; -}; - -PromiseArray.prototype.getActualLength = function (len) { - return len; -}; - -return PromiseArray; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/promisify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/promisify.js deleted file mode 100644 index aa98e5bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/promisify.js +++ /dev/null @@ -1,314 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var THIS = {}; -var util = require("./util"); -var nodebackForPromise = require("./nodeback"); -var withAppended = util.withAppended; -var maybeWrapAsError = util.maybeWrapAsError; -var canEvaluate = util.canEvaluate; -var TypeError = require("./errors").TypeError; -var defaultSuffix = "Async"; -var defaultPromisified = {__isPromisified__: true}; -var noCopyProps = [ - "arity", "length", - "name", - "arguments", - "caller", - "callee", - "prototype", - "__isPromisified__" -]; -var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); - -var defaultFilter = function(name) { - return util.isIdentifier(name) && - name.charAt(0) !== "_" && - name !== "constructor"; -}; - -function propsFilter(key) { - return !noCopyPropsPattern.test(key); -} - -function isPromisified(fn) { - try { - return fn.__isPromisified__ === true; - } - catch (e) { - return false; - } -} - -function hasPromisified(obj, key, suffix) { - var val = util.getDataPropertyOrDefault(obj, key + suffix, - defaultPromisified); - return val ? isPromisified(val) : false; -} -function checkValid(ret, suffix, suffixRegexp) { - for (var i = 0; i < ret.length; i += 2) { - var key = ret[i]; - if (suffixRegexp.test(key)) { - var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); - for (var j = 0; j < ret.length; j += 2) { - if (ret[j] === keyWithoutAsyncSuffix) { - throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a See http://goo.gl/MqrFmX\u000a" - .replace("%s", suffix)); - } - } - } - } -} - -function promisifiableMethods(obj, suffix, suffixRegexp, filter) { - var keys = util.inheritedDataKeys(obj); - var ret = []; - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var value = obj[key]; - var passesDefaultFilter = filter === defaultFilter - ? true : defaultFilter(key, value, obj); - if (typeof value === "function" && - !isPromisified(value) && - !hasPromisified(obj, key, suffix) && - filter(key, value, obj, passesDefaultFilter)) { - ret.push(key, value); - } - } - checkValid(ret, suffix, suffixRegexp); - return ret; -} - -var escapeIdentRegex = function(str) { - return str.replace(/([$])/, "\\$"); -}; - -var makeNodePromisifiedEval; -if (!false) { -var switchCaseArgumentOrder = function(likelyArgumentCount) { - var ret = [likelyArgumentCount]; - var min = Math.max(0, likelyArgumentCount - 1 - 3); - for(var i = likelyArgumentCount - 1; i >= min; --i) { - ret.push(i); - } - for(var i = likelyArgumentCount + 1; i <= 3; ++i) { - ret.push(i); - } - return ret; -}; - -var argumentSequence = function(argumentCount) { - return util.filledRange(argumentCount, "_arg", ""); -}; - -var parameterDeclaration = function(parameterCount) { - return util.filledRange( - Math.max(parameterCount, 3), "_arg", ""); -}; - -var parameterCount = function(fn) { - if (typeof fn.length === "number") { - return Math.max(Math.min(fn.length, 1023 + 1), 0); - } - return 0; -}; - -makeNodePromisifiedEval = -function(callback, receiver, originalName, fn, _, multiArgs) { - var newParameterCount = Math.max(0, parameterCount(fn) - 1); - var argumentOrder = switchCaseArgumentOrder(newParameterCount); - var shouldProxyThis = typeof callback === "string" || receiver === THIS; - - function generateCallForArgumentCount(count) { - var args = argumentSequence(count).join(", "); - var comma = count > 0 ? ", " : ""; - var ret; - if (shouldProxyThis) { - ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; - } else { - ret = receiver === undefined - ? "ret = callback({{args}}, nodeback); break;\n" - : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; - } - return ret.replace("{{args}}", args).replace(", ", comma); - } - - function generateArgumentSwitchCase() { - var ret = ""; - for (var i = 0; i < argumentOrder.length; ++i) { - ret += "case " + argumentOrder[i] +":" + - generateCallForArgumentCount(argumentOrder[i]); - } - - ret += " \n\ - default: \n\ - var args = new Array(len + 1); \n\ - var i = 0; \n\ - for (var i = 0; i < len; ++i) { \n\ - args[i] = arguments[i]; \n\ - } \n\ - args[i] = nodeback; \n\ - [CodeForCall] \n\ - break; \n\ - ".replace("[CodeForCall]", (shouldProxyThis - ? "ret = callback.apply(this, args);\n" - : "ret = callback.apply(receiver, args);\n")); - return ret; - } - - var getFunctionCode = typeof callback === "string" - ? ("this != null ? this['"+callback+"'] : fn") - : "fn"; - var body = "'use strict'; \n\ - var ret = function (Parameters) { \n\ - 'use strict'; \n\ - var len = arguments.length; \n\ - var promise = new Promise(INTERNAL); \n\ - promise._captureStackTrace(); \n\ - var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ - var ret; \n\ - var callback = tryCatch([GetFunctionCode]); \n\ - switch(len) { \n\ - [CodeForSwitchCase] \n\ - } \n\ - if (ret === errorObj) { \n\ - promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ - } \n\ - if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ - return promise; \n\ - }; \n\ - notEnumerableProp(ret, '__isPromisified__', true); \n\ - return ret; \n\ - ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()) - .replace("[GetFunctionCode]", getFunctionCode); - body = body.replace("Parameters", parameterDeclaration(newParameterCount)); - return new Function("Promise", - "fn", - "receiver", - "withAppended", - "maybeWrapAsError", - "nodebackForPromise", - "tryCatch", - "errorObj", - "notEnumerableProp", - "INTERNAL", - body)( - Promise, - fn, - receiver, - withAppended, - maybeWrapAsError, - nodebackForPromise, - util.tryCatch, - util.errorObj, - util.notEnumerableProp, - INTERNAL); -}; -} - -function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { - var defaultThis = (function() {return this;})(); - var method = callback; - if (typeof method === "string") { - callback = fn; - } - function promisified() { - var _receiver = receiver; - if (receiver === THIS) _receiver = this; - var promise = new Promise(INTERNAL); - promise._captureStackTrace(); - var cb = typeof method === "string" && this !== defaultThis - ? this[method] : callback; - var fn = nodebackForPromise(promise, multiArgs); - try { - cb.apply(_receiver, withAppended(arguments, fn)); - } catch(e) { - promise._rejectCallback(maybeWrapAsError(e), true, true); - } - if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); - return promise; - } - util.notEnumerableProp(promisified, "__isPromisified__", true); - return promisified; -} - -var makeNodePromisified = canEvaluate - ? makeNodePromisifiedEval - : makeNodePromisifiedClosure; - -function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { - var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); - var methods = - promisifiableMethods(obj, suffix, suffixRegexp, filter); - - for (var i = 0, len = methods.length; i < len; i+= 2) { - var key = methods[i]; - var fn = methods[i+1]; - var promisifiedKey = key + suffix; - if (promisifier === makeNodePromisified) { - obj[promisifiedKey] = - makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); - } else { - var promisified = promisifier(fn, function() { - return makeNodePromisified(key, THIS, key, - fn, suffix, multiArgs); - }); - util.notEnumerableProp(promisified, "__isPromisified__", true); - obj[promisifiedKey] = promisified; - } - } - util.toFastProperties(obj); - return obj; -} - -function promisify(callback, receiver, multiArgs) { - return makeNodePromisified(callback, receiver, undefined, - callback, null, multiArgs); -} - -Promise.promisify = function (fn, options) { - if (typeof fn !== "function") { - throw new TypeError("expecting a function but got " + util.classString(fn)); - } - if (isPromisified(fn)) { - return fn; - } - options = Object(options); - var receiver = options.context === undefined ? THIS : options.context; - var multiArgs = !!options.multiArgs; - var ret = promisify(fn, receiver, multiArgs); - util.copyDescriptors(fn, ret, propsFilter); - return ret; -}; - -Promise.promisifyAll = function (target, options) { - if (typeof target !== "function" && typeof target !== "object") { - throw new TypeError("the target of promisifyAll must be an object or a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - options = Object(options); - var multiArgs = !!options.multiArgs; - var suffix = options.suffix; - if (typeof suffix !== "string") suffix = defaultSuffix; - var filter = options.filter; - if (typeof filter !== "function") filter = defaultFilter; - var promisifier = options.promisifier; - if (typeof promisifier !== "function") promisifier = makeNodePromisified; - - if (!util.isIdentifier(suffix)) { - throw new RangeError("suffix must be a valid identifier\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - - var keys = util.inheritedDataKeys(target); - for (var i = 0; i < keys.length; ++i) { - var value = target[keys[i]]; - if (keys[i] !== "constructor" && - util.isClass(value)) { - promisifyAll(value.prototype, suffix, filter, promisifier, - multiArgs); - promisifyAll(value, suffix, filter, promisifier, multiArgs); - } - } - - return promisifyAll(target, suffix, filter, promisifier, multiArgs); -}; -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/props.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/props.js deleted file mode 100644 index fc981ce4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/props.js +++ /dev/null @@ -1,118 +0,0 @@ -"use strict"; -module.exports = function( - Promise, PromiseArray, tryConvertToPromise, apiRejection) { -var util = require("./util"); -var isObject = util.isObject; -var es5 = require("./es5"); -var Es6Map; -if (typeof Map === "function") Es6Map = Map; - -var mapToEntries = (function() { - var index = 0; - var size = 0; - - function extractEntry(value, key) { - this[index] = value; - this[index + size] = key; - index++; - } - - return function mapToEntries(map) { - size = map.size; - index = 0; - var ret = new Array(map.size * 2); - map.forEach(extractEntry, ret); - return ret; - }; -})(); - -var entriesToMap = function(entries) { - var ret = new Es6Map(); - var length = entries.length / 2 | 0; - for (var i = 0; i < length; ++i) { - var key = entries[length + i]; - var value = entries[i]; - ret.set(key, value); - } - return ret; -}; - -function PropertiesPromiseArray(obj) { - var isMap = false; - var entries; - if (Es6Map !== undefined && obj instanceof Es6Map) { - entries = mapToEntries(obj); - isMap = true; - } else { - var keys = es5.keys(obj); - var len = keys.length; - entries = new Array(len * 2); - for (var i = 0; i < len; ++i) { - var key = keys[i]; - entries[i] = obj[key]; - entries[i + len] = key; - } - } - this.constructor$(entries); - this._isMap = isMap; - this._init$(undefined, -3); -} -util.inherits(PropertiesPromiseArray, PromiseArray); - -PropertiesPromiseArray.prototype._init = function () {}; - -PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { - this._values[index] = value; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - var val; - if (this._isMap) { - val = entriesToMap(this._values); - } else { - val = {}; - var keyOffset = this.length(); - for (var i = 0, len = this.length(); i < len; ++i) { - val[this._values[i + keyOffset]] = this._values[i]; - } - } - this._resolve(val); - return true; - } - return false; -}; - -PropertiesPromiseArray.prototype.shouldCopyValues = function () { - return false; -}; - -PropertiesPromiseArray.prototype.getActualLength = function (len) { - return len >> 1; -}; - -function props(promises) { - var ret; - var castValue = tryConvertToPromise(promises); - - if (!isObject(castValue)) { - return apiRejection("cannot await properties of a non-object\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } else if (castValue instanceof Promise) { - ret = castValue._then( - Promise.props, undefined, undefined, undefined, undefined); - } else { - ret = new PropertiesPromiseArray(castValue).promise(); - } - - if (castValue instanceof Promise) { - ret._propagateFrom(castValue, 2); - } - return ret; -} - -Promise.prototype.props = function () { - return props(this); -}; - -Promise.props = function (promises) { - return props(promises); -}; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/queue.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/queue.js deleted file mode 100644 index 84d57d5f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/queue.js +++ /dev/null @@ -1,90 +0,0 @@ -"use strict"; -function arrayMove(src, srcIndex, dst, dstIndex, len) { - for (var j = 0; j < len; ++j) { - dst[j + dstIndex] = src[j + srcIndex]; - src[j + srcIndex] = void 0; - } -} - -function Queue(capacity) { - this._capacity = capacity; - this._length = 0; - this._front = 0; -} - -Queue.prototype._willBeOverCapacity = function (size) { - return this._capacity < size; -}; - -Queue.prototype._pushOne = function (arg) { - var length = this.length(); - this._checkCapacity(length + 1); - var i = (this._front + length) & (this._capacity - 1); - this[i] = arg; - this._length = length + 1; -}; - -Queue.prototype._unshiftOne = function(value) { - var capacity = this._capacity; - this._checkCapacity(this.length() + 1); - var front = this._front; - var i = (((( front - 1 ) & - ( capacity - 1) ) ^ capacity ) - capacity ); - this[i] = value; - this._front = i; - this._length = this.length() + 1; -}; - -Queue.prototype.unshift = function(fn, receiver, arg) { - this._unshiftOne(arg); - this._unshiftOne(receiver); - this._unshiftOne(fn); -}; - -Queue.prototype.push = function (fn, receiver, arg) { - var length = this.length() + 3; - if (this._willBeOverCapacity(length)) { - this._pushOne(fn); - this._pushOne(receiver); - this._pushOne(arg); - return; - } - var j = this._front + length - 3; - this._checkCapacity(length); - var wrapMask = this._capacity - 1; - this[(j + 0) & wrapMask] = fn; - this[(j + 1) & wrapMask] = receiver; - this[(j + 2) & wrapMask] = arg; - this._length = length; -}; - -Queue.prototype.shift = function () { - var front = this._front, - ret = this[front]; - - this[front] = undefined; - this._front = (front + 1) & (this._capacity - 1); - this._length--; - return ret; -}; - -Queue.prototype.length = function () { - return this._length; -}; - -Queue.prototype._checkCapacity = function (size) { - if (this._capacity < size) { - this._resizeTo(this._capacity << 1); - } -}; - -Queue.prototype._resizeTo = function (capacity) { - var oldCapacity = this._capacity; - this._capacity = capacity; - var front = this._front; - var length = this._length; - var moveItemsCount = (front + length) & (oldCapacity - 1); - arrayMove(this, 0, this, oldCapacity, moveItemsCount); -}; - -module.exports = Queue; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/race.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/race.js deleted file mode 100644 index b862f46d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/race.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -module.exports = function( - Promise, INTERNAL, tryConvertToPromise, apiRejection) { -var util = require("./util"); - -var raceLater = function (promise) { - return promise.then(function(array) { - return race(array, promise); - }); -}; - -function race(promises, parent) { - var maybePromise = tryConvertToPromise(promises); - - if (maybePromise instanceof Promise) { - return raceLater(maybePromise); - } else { - promises = util.asArray(promises); - if (promises === null) - return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); - } - - var ret = new Promise(INTERNAL); - if (parent !== undefined) { - ret._propagateFrom(parent, 3); - } - var fulfill = ret._fulfill; - var reject = ret._reject; - for (var i = 0, len = promises.length; i < len; ++i) { - var val = promises[i]; - - if (val === undefined && !(i in promises)) { - continue; - } - - Promise.cast(val)._then(fulfill, reject, undefined, ret, null); - } - return ret; -} - -Promise.race = function (promises) { - return race(promises, undefined); -}; - -Promise.prototype.race = function () { - return race(this, undefined); -}; - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/reduce.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/reduce.js deleted file mode 100644 index 8f73500d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/reduce.js +++ /dev/null @@ -1,162 +0,0 @@ -"use strict"; -module.exports = function(Promise, - PromiseArray, - apiRejection, - tryConvertToPromise, - INTERNAL, - debug) { -var getDomain = Promise._getDomain; -var util = require("./util"); -var tryCatch = util.tryCatch; - -function ReductionPromiseArray(promises, fn, initialValue, _each) { - this.constructor$(promises); - var domain = getDomain(); - this._fn = domain === null ? fn : domain.bind(fn); - if (initialValue !== undefined) { - initialValue = Promise.resolve(initialValue); - initialValue._attachCancellationCallback(this); - } - this._initialValue = initialValue; - this._currentCancellable = null; - this._eachValues = _each === INTERNAL ? [] : undefined; - this._promise._captureStackTrace(); - this._init$(undefined, -5); -} -util.inherits(ReductionPromiseArray, PromiseArray); - -ReductionPromiseArray.prototype._gotAccum = function(accum) { - if (this._eachValues !== undefined && accum !== INTERNAL) { - this._eachValues.push(accum); - } -}; - -ReductionPromiseArray.prototype._eachComplete = function(value) { - this._eachValues.push(value); - return this._eachValues; -}; - -ReductionPromiseArray.prototype._init = function() {}; - -ReductionPromiseArray.prototype._resolveEmptyArray = function() { - this._resolve(this._eachValues !== undefined ? this._eachValues - : this._initialValue); -}; - -ReductionPromiseArray.prototype.shouldCopyValues = function () { - return false; -}; - -ReductionPromiseArray.prototype._resolve = function(value) { - this._promise._resolveCallback(value); - this._values = null; -}; - -ReductionPromiseArray.prototype._resultCancelled = function(sender) { - if (sender === this._initialValue) return this._cancel(); - if (this._isResolved()) return; - this._resultCancelled$(); - if (this._currentCancellable instanceof Promise) { - this._currentCancellable.cancel(); - } - if (this._initialValue instanceof Promise) { - this._initialValue.cancel(); - } -}; - -ReductionPromiseArray.prototype._iterate = function (values) { - this._values = values; - var value; - var i; - var length = values.length; - if (this._initialValue !== undefined) { - value = this._initialValue; - i = 0; - } else { - value = Promise.resolve(values[0]); - i = 1; - } - - this._currentCancellable = value; - - if (!value.isRejected()) { - for (; i < length; ++i) { - var ctx = { - accum: null, - value: values[i], - index: i, - length: length, - array: this - }; - value = value._then(gotAccum, undefined, undefined, ctx, undefined); - } - } - - if (this._eachValues !== undefined) { - value = value - ._then(this._eachComplete, undefined, undefined, this, undefined); - } - value._then(completed, completed, undefined, value, this); -}; - -Promise.prototype.reduce = function (fn, initialValue) { - return reduce(this, fn, initialValue, null); -}; - -Promise.reduce = function (promises, fn, initialValue, _each) { - return reduce(promises, fn, initialValue, _each); -}; - -function completed(valueOrReason, array) { - if (this.isFulfilled()) { - array._resolve(valueOrReason); - } else { - array._reject(valueOrReason); - } -} - -function reduce(promises, fn, initialValue, _each) { - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var array = new ReductionPromiseArray(promises, fn, initialValue, _each); - return array.promise(); -} - -function gotAccum(accum) { - this.accum = accum; - this.array._gotAccum(accum); - var value = tryConvertToPromise(this.value, this.array._promise); - if (value instanceof Promise) { - this.array._currentCancellable = value; - return value._then(gotValue, undefined, undefined, this, undefined); - } else { - return gotValue.call(this, value); - } -} - -function gotValue(value) { - var array = this.array; - var promise = array._promise; - var fn = tryCatch(array._fn); - promise._pushContext(); - var ret; - if (array._eachValues !== undefined) { - ret = fn.call(promise._boundValue(), value, this.index, this.length); - } else { - ret = fn.call(promise._boundValue(), - this.accum, value, this.index, this.length); - } - if (ret instanceof Promise) { - array._currentCancellable = ret; - } - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, - promiseCreated, - array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", - promise - ); - return ret; -} -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/schedule.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/schedule.js deleted file mode 100644 index 714d6cfd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/schedule.js +++ /dev/null @@ -1,60 +0,0 @@ -"use strict"; -var util = require("./util"); -var schedule; -var noAsyncScheduler = function() { - throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); -}; -var NativePromise = util.getNativePromise(); -if (util.isNode && typeof MutationObserver === "undefined") { - var GlobalSetImmediate = global.setImmediate; - var ProcessNextTick = process.nextTick; - schedule = util.isRecentNode - ? function(fn) { GlobalSetImmediate.call(global, fn); } - : function(fn) { ProcessNextTick.call(process, fn); }; -} else if (typeof NativePromise === "function") { - var nativePromise = NativePromise.resolve(); - schedule = function(fn) { - nativePromise.then(fn); - }; -} else if ((typeof MutationObserver !== "undefined") && - !(typeof window !== "undefined" && - window.navigator && - window.navigator.standalone)) { - schedule = (function() { - var div = document.createElement("div"); - var opts = {attributes: true}; - var toggleScheduled = false; - var div2 = document.createElement("div"); - var o2 = new MutationObserver(function() { - div.classList.toggle("foo"); - toggleScheduled = false; - }); - o2.observe(div2, opts); - - var scheduleToggle = function() { - if (toggleScheduled) return; - toggleScheduled = true; - div2.classList.toggle("foo"); - }; - - return function schedule(fn) { - var o = new MutationObserver(function() { - o.disconnect(); - fn(); - }); - o.observe(div, opts); - scheduleToggle(); - }; - })(); -} else if (typeof setImmediate !== "undefined") { - schedule = function (fn) { - setImmediate(fn); - }; -} else if (typeof setTimeout !== "undefined") { - schedule = function (fn) { - setTimeout(fn, 0); - }; -} else { - schedule = noAsyncScheduler; -} -module.exports = schedule; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/settle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/settle.js deleted file mode 100644 index fade3a17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/settle.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict"; -module.exports = - function(Promise, PromiseArray, debug) { -var PromiseInspection = Promise.PromiseInspection; -var util = require("./util"); - -function SettledPromiseArray(values) { - this.constructor$(values); -} -util.inherits(SettledPromiseArray, PromiseArray); - -SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { - this._values[index] = inspection; - var totalResolved = ++this._totalResolved; - if (totalResolved >= this._length) { - this._resolve(this._values); - return true; - } - return false; -}; - -SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { - var ret = new PromiseInspection(); - ret._bitField = 33554432; - ret._settledValueField = value; - return this._promiseResolved(index, ret); -}; -SettledPromiseArray.prototype._promiseRejected = function (reason, index) { - var ret = new PromiseInspection(); - ret._bitField = 16777216; - ret._settledValueField = reason; - return this._promiseResolved(index, ret); -}; - -Promise.settle = function (promises) { - debug.deprecated(".settle()", ".reflect()"); - return new SettledPromiseArray(promises).promise(); -}; - -Promise.prototype.settle = function () { - return Promise.settle(this); -}; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/some.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/some.js deleted file mode 100644 index 400d8520..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/some.js +++ /dev/null @@ -1,148 +0,0 @@ -"use strict"; -module.exports = -function(Promise, PromiseArray, apiRejection) { -var util = require("./util"); -var RangeError = require("./errors").RangeError; -var AggregateError = require("./errors").AggregateError; -var isArray = util.isArray; -var CANCELLATION = {}; - - -function SomePromiseArray(values) { - this.constructor$(values); - this._howMany = 0; - this._unwrap = false; - this._initialized = false; -} -util.inherits(SomePromiseArray, PromiseArray); - -SomePromiseArray.prototype._init = function () { - if (!this._initialized) { - return; - } - if (this._howMany === 0) { - this._resolve([]); - return; - } - this._init$(undefined, -5); - var isArrayResolved = isArray(this._values); - if (!this._isResolved() && - isArrayResolved && - this._howMany > this._canPossiblyFulfill()) { - this._reject(this._getRangeError(this.length())); - } -}; - -SomePromiseArray.prototype.init = function () { - this._initialized = true; - this._init(); -}; - -SomePromiseArray.prototype.setUnwrap = function () { - this._unwrap = true; -}; - -SomePromiseArray.prototype.howMany = function () { - return this._howMany; -}; - -SomePromiseArray.prototype.setHowMany = function (count) { - this._howMany = count; -}; - -SomePromiseArray.prototype._promiseFulfilled = function (value) { - this._addFulfilled(value); - if (this._fulfilled() === this.howMany()) { - this._values.length = this.howMany(); - if (this.howMany() === 1 && this._unwrap) { - this._resolve(this._values[0]); - } else { - this._resolve(this._values); - } - return true; - } - return false; - -}; -SomePromiseArray.prototype._promiseRejected = function (reason) { - this._addRejected(reason); - return this._checkOutcome(); -}; - -SomePromiseArray.prototype._promiseCancelled = function () { - if (this._values instanceof Promise || this._values == null) { - return this._cancel(); - } - this._addRejected(CANCELLATION); - return this._checkOutcome(); -}; - -SomePromiseArray.prototype._checkOutcome = function() { - if (this.howMany() > this._canPossiblyFulfill()) { - var e = new AggregateError(); - for (var i = this.length(); i < this._values.length; ++i) { - if (this._values[i] !== CANCELLATION) { - e.push(this._values[i]); - } - } - if (e.length > 0) { - this._reject(e); - } else { - this._cancel(); - } - return true; - } - return false; -}; - -SomePromiseArray.prototype._fulfilled = function () { - return this._totalResolved; -}; - -SomePromiseArray.prototype._rejected = function () { - return this._values.length - this.length(); -}; - -SomePromiseArray.prototype._addRejected = function (reason) { - this._values.push(reason); -}; - -SomePromiseArray.prototype._addFulfilled = function (value) { - this._values[this._totalResolved++] = value; -}; - -SomePromiseArray.prototype._canPossiblyFulfill = function () { - return this.length() - this._rejected(); -}; - -SomePromiseArray.prototype._getRangeError = function (count) { - var message = "Input array must contain at least " + - this._howMany + " items but contains only " + count + " items"; - return new RangeError(message); -}; - -SomePromiseArray.prototype._resolveEmptyArray = function () { - this._reject(this._getRangeError(0)); -}; - -function some(promises, howMany) { - if ((howMany | 0) !== howMany || howMany < 0) { - return apiRejection("expecting a positive integer\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - var ret = new SomePromiseArray(promises); - var promise = ret.promise(); - ret.setHowMany(howMany); - ret.init(); - return promise; -} - -Promise.some = function (promises, howMany) { - return some(promises, howMany); -}; - -Promise.prototype.some = function (howMany) { - return some(this, howMany); -}; - -Promise._SomePromiseArray = SomePromiseArray; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/synchronous_inspection.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/synchronous_inspection.js deleted file mode 100644 index fb0c1a62..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/synchronous_inspection.js +++ /dev/null @@ -1,96 +0,0 @@ -"use strict"; -module.exports = function(Promise) { -function PromiseInspection(promise) { - if (promise !== undefined) { - promise = promise._target(); - this._bitField = promise._bitField; - this._settledValueField = promise._isFateSealed() - ? promise._settledValue() : undefined; - } - else { - this._bitField = 0; - this._settledValueField = undefined; - } -} - -PromiseInspection.prototype._settledValue = function() { - return this._settledValueField; -}; - -var value = PromiseInspection.prototype.value = function () { - if (!this.isFulfilled()) { - throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var reason = PromiseInspection.prototype.error = -PromiseInspection.prototype.reason = function () { - if (!this.isRejected()) { - throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); - } - return this._settledValue(); -}; - -var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { - return (this._bitField & 33554432) !== 0; -}; - -var isRejected = PromiseInspection.prototype.isRejected = function () { - return (this._bitField & 16777216) !== 0; -}; - -var isPending = PromiseInspection.prototype.isPending = function () { - return (this._bitField & 50397184) === 0; -}; - -var isResolved = PromiseInspection.prototype.isResolved = function () { - return (this._bitField & 50331648) !== 0; -}; - -PromiseInspection.prototype.isCancelled = -Promise.prototype._isCancelled = function() { - return (this._bitField & 65536) === 65536; -}; - -Promise.prototype.isCancelled = function() { - return this._target()._isCancelled(); -}; - -Promise.prototype.isPending = function() { - return isPending.call(this._target()); -}; - -Promise.prototype.isRejected = function() { - return isRejected.call(this._target()); -}; - -Promise.prototype.isFulfilled = function() { - return isFulfilled.call(this._target()); -}; - -Promise.prototype.isResolved = function() { - return isResolved.call(this._target()); -}; - -Promise.prototype.value = function() { - return value.call(this._target()); -}; - -Promise.prototype.reason = function() { - var target = this._target(); - target._unsetRejectionIsUnhandled(); - return reason.call(target); -}; - -Promise.prototype._value = function() { - return this._settledValue(); -}; - -Promise.prototype._reason = function() { - this._unsetRejectionIsUnhandled(); - return this._settledValue(); -}; - -Promise.PromiseInspection = PromiseInspection; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/thenables.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/thenables.js deleted file mode 100644 index a04fddea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/thenables.js +++ /dev/null @@ -1,82 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL) { -var util = require("./util"); -var errorObj = util.errorObj; -var isObject = util.isObject; - -function tryConvertToPromise(obj, context) { - if (isObject(obj)) { - if (obj instanceof Promise) return obj; - var then = getThen(obj); - if (then === errorObj) { - if (context) context._pushContext(); - var ret = Promise.reject(then.e); - if (context) context._popContext(); - return ret; - } else if (typeof then === "function") { - if (isAnyBluebirdPromise(obj)) { - var ret = new Promise(INTERNAL); - obj._then( - ret._fulfill, - ret._reject, - undefined, - ret, - null - ); - return ret; - } - return doThenable(obj, then, context); - } - } - return obj; -} - -function doGetThen(obj) { - return obj.then; -} - -function getThen(obj) { - try { - return doGetThen(obj); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} - -var hasProp = {}.hasOwnProperty; -function isAnyBluebirdPromise(obj) { - return hasProp.call(obj, "_promise0"); -} - -function doThenable(x, then, context) { - var promise = new Promise(INTERNAL); - var ret = promise; - if (context) context._pushContext(); - promise._captureStackTrace(); - if (context) context._popContext(); - var synchronous = true; - var result = util.tryCatch(then).call(x, resolve, reject); - synchronous = false; - - if (promise && result === errorObj) { - promise._rejectCallback(result.e, true, true); - promise = null; - } - - function resolve(value) { - if (!promise) return; - promise._resolveCallback(value); - promise = null; - } - - function reject(reason) { - if (!promise) return; - promise._rejectCallback(reason, synchronous, true); - promise = null; - } - return ret; -} - -return tryConvertToPromise; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/timers.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/timers.js deleted file mode 100644 index 7001b85c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/timers.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; -module.exports = function(Promise, INTERNAL, debug) { -var util = require("./util"); -var TimeoutError = Promise.TimeoutError; - -function HandleWrapper(handle) { - this.handle = handle; -} - -HandleWrapper.prototype._resultCancelled = function() { - clearTimeout(this.handle); -}; - -var afterValue = function(value) { return delay(+this).thenReturn(value); }; -var delay = Promise.delay = function (ms, value) { - var ret; - var handle; - if (value !== undefined) { - ret = Promise.resolve(value) - ._then(afterValue, null, null, ms, undefined); - if (debug.cancellation() && value instanceof Promise) { - ret._setOnCancel(value); - } - } else { - ret = new Promise(INTERNAL); - handle = setTimeout(function() { ret._fulfill(); }, +ms); - if (debug.cancellation()) { - ret._setOnCancel(new HandleWrapper(handle)); - } - } - ret._setAsyncGuaranteed(); - return ret; -}; - -Promise.prototype.delay = function (ms) { - return delay(ms, this); -}; - -var afterTimeout = function (promise, message, parent) { - var err; - if (typeof message !== "string") { - if (message instanceof Error) { - err = message; - } else { - err = new TimeoutError("operation timed out"); - } - } else { - err = new TimeoutError(message); - } - util.markAsOriginatingFromRejection(err); - promise._attachExtraTrace(err); - promise._reject(err); - - if (parent != null) { - parent.cancel(); - } -}; - -function successClear(value) { - clearTimeout(this.handle); - return value; -} - -function failureClear(reason) { - clearTimeout(this.handle); - throw reason; -} - -Promise.prototype.timeout = function (ms, message) { - ms = +ms; - var ret, parent; - - var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { - if (ret.isPending()) { - afterTimeout(ret, message, parent); - } - }, ms)); - - if (debug.cancellation()) { - parent = this.then(); - ret = parent._then(successClear, failureClear, - undefined, handleWrapper, undefined); - ret._setOnCancel(handleWrapper); - } else { - ret = this._then(successClear, failureClear, - undefined, handleWrapper, undefined); - } - - return ret; -}; - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/using.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/using.js deleted file mode 100644 index 66167940..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/using.js +++ /dev/null @@ -1,225 +0,0 @@ -"use strict"; -module.exports = function (Promise, apiRejection, tryConvertToPromise, - createContext, INTERNAL, debug) { - var util = require("./util"); - var TypeError = require("./errors").TypeError; - var inherits = require("./util").inherits; - var errorObj = util.errorObj; - var tryCatch = util.tryCatch; - - function thrower(e) { - setTimeout(function(){throw e;}, 0); - } - - function castPreservingDisposable(thenable) { - var maybePromise = tryConvertToPromise(thenable); - if (maybePromise !== thenable && - typeof thenable._isDisposable === "function" && - typeof thenable._getDisposer === "function" && - thenable._isDisposable()) { - maybePromise._setDisposable(thenable._getDisposer()); - } - return maybePromise; - } - function dispose(resources, inspection) { - var i = 0; - var len = resources.length; - var ret = new Promise(INTERNAL); - function iterator() { - if (i >= len) return ret._fulfill(); - var maybePromise = castPreservingDisposable(resources[i++]); - if (maybePromise instanceof Promise && - maybePromise._isDisposable()) { - try { - maybePromise = tryConvertToPromise( - maybePromise._getDisposer().tryDispose(inspection), - resources.promise); - } catch (e) { - return thrower(e); - } - if (maybePromise instanceof Promise) { - return maybePromise._then(iterator, thrower, - null, null, null); - } - } - iterator(); - } - iterator(); - return ret; - } - - function Disposer(data, promise, context) { - this._data = data; - this._promise = promise; - this._context = context; - } - - Disposer.prototype.data = function () { - return this._data; - }; - - Disposer.prototype.promise = function () { - return this._promise; - }; - - Disposer.prototype.resource = function () { - if (this.promise().isFulfilled()) { - return this.promise().value(); - } - return null; - }; - - Disposer.prototype.tryDispose = function(inspection) { - var resource = this.resource(); - var context = this._context; - if (context !== undefined) context._pushContext(); - var ret = resource !== null - ? this.doDispose(resource, inspection) : null; - if (context !== undefined) context._popContext(); - this._promise._unsetDisposable(); - this._data = null; - return ret; - }; - - Disposer.isDisposer = function (d) { - return (d != null && - typeof d.resource === "function" && - typeof d.tryDispose === "function"); - }; - - function FunctionDisposer(fn, promise, context) { - this.constructor$(fn, promise, context); - } - inherits(FunctionDisposer, Disposer); - - FunctionDisposer.prototype.doDispose = function (resource, inspection) { - var fn = this.data(); - return fn.call(resource, resource, inspection); - }; - - function maybeUnwrapDisposer(value) { - if (Disposer.isDisposer(value)) { - this.resources[this.index]._setDisposable(value); - return value.promise(); - } - return value; - } - - function ResourceList(length) { - this.length = length; - this.promise = null; - this[length-1] = null; - } - - ResourceList.prototype._resultCancelled = function() { - var len = this.length; - for (var i = 0; i < len; ++i) { - var item = this[i]; - if (item instanceof Promise) { - item.cancel(); - } - } - }; - - Promise.using = function () { - var len = arguments.length; - if (len < 2) return apiRejection( - "you must pass at least 2 arguments to Promise.using"); - var fn = arguments[len - 1]; - if (typeof fn !== "function") { - return apiRejection("expecting a function but got " + util.classString(fn)); - } - var input; - var spreadArgs = true; - if (len === 2 && Array.isArray(arguments[0])) { - input = arguments[0]; - len = input.length; - spreadArgs = false; - } else { - input = arguments; - len--; - } - var resources = new ResourceList(len); - for (var i = 0; i < len; ++i) { - var resource = input[i]; - if (Disposer.isDisposer(resource)) { - var disposer = resource; - resource = resource.promise(); - resource._setDisposable(disposer); - } else { - var maybePromise = tryConvertToPromise(resource); - if (maybePromise instanceof Promise) { - resource = - maybePromise._then(maybeUnwrapDisposer, null, null, { - resources: resources, - index: i - }, undefined); - } - } - resources[i] = resource; - } - - var reflectedResources = new Array(resources.length); - for (var i = 0; i < reflectedResources.length; ++i) { - reflectedResources[i] = Promise.resolve(resources[i]).reflect(); - } - - var resultPromise = Promise.all(reflectedResources) - .then(function(inspections) { - for (var i = 0; i < inspections.length; ++i) { - var inspection = inspections[i]; - if (inspection.isRejected()) { - errorObj.e = inspection.error(); - return errorObj; - } else if (!inspection.isFulfilled()) { - resultPromise.cancel(); - return; - } - inspections[i] = inspection.value(); - } - promise._pushContext(); - - fn = tryCatch(fn); - var ret = spreadArgs - ? fn.apply(undefined, inspections) : fn(inspections); - var promiseCreated = promise._popContext(); - debug.checkForgottenReturns( - ret, promiseCreated, "Promise.using", promise); - return ret; - }); - - var promise = resultPromise.lastly(function() { - var inspection = new Promise.PromiseInspection(resultPromise); - return dispose(resources, inspection); - }); - resources.promise = promise; - promise._setOnCancel(resources); - return promise; - }; - - Promise.prototype._setDisposable = function (disposer) { - this._bitField = this._bitField | 131072; - this._disposer = disposer; - }; - - Promise.prototype._isDisposable = function () { - return (this._bitField & 131072) > 0; - }; - - Promise.prototype._getDisposer = function () { - return this._disposer; - }; - - Promise.prototype._unsetDisposable = function () { - this._bitField = this._bitField & (~131072); - this._disposer = undefined; - }; - - Promise.prototype.disposer = function (fn) { - if (typeof fn === "function") { - return new FunctionDisposer(fn, this, createContext()); - } - throw new TypeError(); - }; - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/util.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/util.js deleted file mode 100644 index 1b642396..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/js/release/util.js +++ /dev/null @@ -1,370 +0,0 @@ -"use strict"; -var es5 = require("./es5"); -var canEvaluate = typeof navigator == "undefined"; - -var errorObj = {e: {}}; -var tryCatchTarget; -var globalObject = typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : - typeof global !== "undefined" ? global : - this !== undefined ? this : null; - -function tryCatcher() { - try { - var target = tryCatchTarget; - tryCatchTarget = null; - return target.apply(this, arguments); - } catch (e) { - errorObj.e = e; - return errorObj; - } -} -function tryCatch(fn) { - tryCatchTarget = fn; - return tryCatcher; -} - -var inherits = function(Child, Parent) { - var hasProp = {}.hasOwnProperty; - - function T() { - this.constructor = Child; - this.constructor$ = Parent; - for (var propertyName in Parent.prototype) { - if (hasProp.call(Parent.prototype, propertyName) && - propertyName.charAt(propertyName.length-1) !== "$" - ) { - this[propertyName + "$"] = Parent.prototype[propertyName]; - } - } - } - T.prototype = Parent.prototype; - Child.prototype = new T(); - return Child.prototype; -}; - - -function isPrimitive(val) { - return val == null || val === true || val === false || - typeof val === "string" || typeof val === "number"; - -} - -function isObject(value) { - return typeof value === "function" || - typeof value === "object" && value !== null; -} - -function maybeWrapAsError(maybeError) { - if (!isPrimitive(maybeError)) return maybeError; - - return new Error(safeToString(maybeError)); -} - -function withAppended(target, appendee) { - var len = target.length; - var ret = new Array(len + 1); - var i; - for (i = 0; i < len; ++i) { - ret[i] = target[i]; - } - ret[i] = appendee; - return ret; -} - -function getDataPropertyOrDefault(obj, key, defaultValue) { - if (es5.isES5) { - var desc = Object.getOwnPropertyDescriptor(obj, key); - - if (desc != null) { - return desc.get == null && desc.set == null - ? desc.value - : defaultValue; - } - } else { - return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; - } -} - -function notEnumerableProp(obj, name, value) { - if (isPrimitive(obj)) return obj; - var descriptor = { - value: value, - configurable: true, - enumerable: false, - writable: true - }; - es5.defineProperty(obj, name, descriptor); - return obj; -} - -function thrower(r) { - throw r; -} - -var inheritedDataKeys = (function() { - var excludedPrototypes = [ - Array.prototype, - Object.prototype, - Function.prototype - ]; - - var isExcludedProto = function(val) { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (excludedPrototypes[i] === val) { - return true; - } - } - return false; - }; - - if (es5.isES5) { - var getKeys = Object.getOwnPropertyNames; - return function(obj) { - var ret = []; - var visitedKeys = Object.create(null); - while (obj != null && !isExcludedProto(obj)) { - var keys; - try { - keys = getKeys(obj); - } catch (e) { - return ret; - } - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (visitedKeys[key]) continue; - visitedKeys[key] = true; - var desc = Object.getOwnPropertyDescriptor(obj, key); - if (desc != null && desc.get == null && desc.set == null) { - ret.push(key); - } - } - obj = es5.getPrototypeOf(obj); - } - return ret; - }; - } else { - var hasProp = {}.hasOwnProperty; - return function(obj) { - if (isExcludedProto(obj)) return []; - var ret = []; - - /*jshint forin:false */ - enumeration: for (var key in obj) { - if (hasProp.call(obj, key)) { - ret.push(key); - } else { - for (var i = 0; i < excludedPrototypes.length; ++i) { - if (hasProp.call(excludedPrototypes[i], key)) { - continue enumeration; - } - } - ret.push(key); - } - } - return ret; - }; - } - -})(); - -var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; -function isClass(fn) { - try { - if (typeof fn === "function") { - var keys = es5.names(fn.prototype); - - var hasMethods = es5.isES5 && keys.length > 1; - var hasMethodsOtherThanConstructor = keys.length > 0 && - !(keys.length === 1 && keys[0] === "constructor"); - var hasThisAssignmentAndStaticMethods = - thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; - - if (hasMethods || hasMethodsOtherThanConstructor || - hasThisAssignmentAndStaticMethods) { - return true; - } - } - return false; - } catch (e) { - return false; - } -} - -function toFastProperties(obj) { - /*jshint -W027,-W055,-W031*/ - function FakeConstructor() {} - FakeConstructor.prototype = obj; - var l = 8; - while (l--) new FakeConstructor(); - return obj; - eval(obj); -} - -var rident = /^[a-z$_][a-z$_0-9]*$/i; -function isIdentifier(str) { - return rident.test(str); -} - -function filledRange(count, prefix, suffix) { - var ret = new Array(count); - for(var i = 0; i < count; ++i) { - ret[i] = prefix + i + suffix; - } - return ret; -} - -function safeToString(obj) { - try { - return obj + ""; - } catch (e) { - return "[no string representation]"; - } -} - -function isError(obj) { - return obj !== null && - typeof obj === "object" && - typeof obj.message === "string" && - typeof obj.name === "string"; -} - -function markAsOriginatingFromRejection(e) { - try { - notEnumerableProp(e, "isOperational", true); - } - catch(ignore) {} -} - -function originatesFromRejection(e) { - if (e == null) return false; - return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || - e["isOperational"] === true); -} - -function canAttachTrace(obj) { - return isError(obj) && es5.propertyIsWritable(obj, "stack"); -} - -var ensureErrorObject = (function() { - if (!("stack" in new Error())) { - return function(value) { - if (canAttachTrace(value)) return value; - try {throw new Error(safeToString(value));} - catch(err) {return err;} - }; - } else { - return function(value) { - if (canAttachTrace(value)) return value; - return new Error(safeToString(value)); - }; - } -})(); - -function classString(obj) { - return {}.toString.call(obj); -} - -function copyDescriptors(from, to, filter) { - var keys = es5.names(from); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (filter(key)) { - try { - es5.defineProperty(to, key, es5.getDescriptor(from, key)); - } catch (ignore) {} - } - } -} - -var asArray = function(v) { - if (es5.isArray(v)) { - return v; - } - return null; -}; - -if (typeof Symbol !== "undefined" && Symbol.iterator) { - var ArrayFrom = typeof Array.from === "function" ? function(v) { - return Array.from(v); - } : function(v) { - var ret = []; - var it = v[Symbol.iterator](); - var itResult; - while (!((itResult = it.next()).done)) { - ret.push(itResult.value); - } - return ret; - }; - - asArray = function(v) { - if (es5.isArray(v)) { - return v; - } else if (v != null && typeof v[Symbol.iterator] === "function") { - return ArrayFrom(v); - } - return null; - }; -} - -var isNode = typeof process !== "undefined" && - classString(process).toLowerCase() === "[object process]"; - -function env(key, def) { - return isNode ? process.env[key] : def; -} - -function getNativePromise() { - if (typeof Promise === "function") { - try { - var promise = new Promise(function(){}); - if ({}.toString.call(promise) === "[object Promise]") { - return Promise; - } - } catch (e) {} - } -} - -var ret = { - isClass: isClass, - isIdentifier: isIdentifier, - inheritedDataKeys: inheritedDataKeys, - getDataPropertyOrDefault: getDataPropertyOrDefault, - thrower: thrower, - isArray: es5.isArray, - asArray: asArray, - notEnumerableProp: notEnumerableProp, - isPrimitive: isPrimitive, - isObject: isObject, - isError: isError, - canEvaluate: canEvaluate, - errorObj: errorObj, - tryCatch: tryCatch, - inherits: inherits, - withAppended: withAppended, - maybeWrapAsError: maybeWrapAsError, - toFastProperties: toFastProperties, - filledRange: filledRange, - toString: safeToString, - canAttachTrace: canAttachTrace, - ensureErrorObject: ensureErrorObject, - originatesFromRejection: originatesFromRejection, - markAsOriginatingFromRejection: markAsOriginatingFromRejection, - classString: classString, - copyDescriptors: copyDescriptors, - hasDevTools: typeof chrome !== "undefined" && chrome && - typeof chrome.loadTimes === "function", - isNode: isNode, - env: env, - global: globalObject, - getNativePromise: getNativePromise -}; -ret.isRecentNode = ret.isNode && (function() { - var version = process.versions.node.split(".").map(Number); - return (version[0] === 0 && version[1] > 10) || (version[0] > 0); -})(); - -if (ret.isNode) ret.toFastProperties(process); - -try {throw new Error(); } catch (e) {ret.lastLineError = e;} -module.exports = ret; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/package.json deleted file mode 100644 index 53e8c2d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/bluebird/package.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "name": "bluebird", - "description": "Full featured Promises/A+ implementation with exceptionally good performance", - "version": "3.3.5", - "keywords": [ - "promise", - "performance", - "promises", - "promises-a", - "promises-aplus", - "async", - "await", - "deferred", - "deferreds", - "future", - "flow control", - "dsl", - "fluent interface" - ], - "scripts": { - "lint": "node scripts/jshint.js", - "test": "node tools/test.js", - "istanbul": "istanbul", - "prepublish": "npm run generate-browser-core && npm run generate-browser-full", - "generate-browser-full": "node tools/build.js --no-clean --no-debug --release --browser --minify", - "generate-browser-core": "node tools/build.js --features=core --no-debug --release --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js" - }, - "homepage": "https://github.com/petkaantonov/bluebird", - "repository": { - "type": "git", - "url": "git://github.com/petkaantonov/bluebird.git" - }, - "bugs": { - "url": "http://github.com/petkaantonov/bluebird/issues" - }, - "license": "MIT", - "author": { - "name": "Petka Antonov", - "email": "petka_antonov@hotmail.com", - "url": "http://github.com/petkaantonov/" - }, - "devDependencies": { - "acorn": "~0.6.0", - "baconjs": "^0.7.43", - "bluebird": "^2.9.2", - "body-parser": "^1.10.2", - "browserify": "^8.1.1", - "cli-table": "~0.3.1", - "co": "^4.2.0", - "cross-spawn": "^0.2.3", - "glob": "^4.3.2", - "grunt-saucelabs": "~8.4.1", - "highland": "^2.3.0", - "istanbul": "^0.3.5", - "jshint": "^2.6.0", - "jshint-stylish": "~0.2.0", - "mkdirp": "~0.5.0", - "mocha": "~2.1", - "open": "~0.0.5", - "optimist": "~0.6.1", - "rimraf": "~2.2.6", - "rx": "^2.3.25", - "serve-static": "^1.7.1", - "sinon": "~1.7.3", - "uglify-js": "~2.4.16", - "kefir": "^2.4.1" - }, - "main": "./js/release/bluebird.js", - "browser": "./js/browser/bluebird.js", - "files": [ - "js/browser", - "js/release", - "LICENSE" - ], - "gitHead": "ee247f1a04b5ab7cc8a283bedd13d2e83d28f936", - "_id": "bluebird@3.3.5", - "_shasum": "5ee747f1c7bd967658b683936430aee753955a34", - "_from": "bluebird@>=3.3.5 <3.4.0", - "_npmVersion": "3.6.0", - "_nodeVersion": "5.6.0", - "_npmUser": { - "name": "esailija", - "email": "petka_antonov@hotmail.com" - }, - "dist": { - "shasum": "5ee747f1c7bd967658b683936430aee753955a34", - "tarball": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.5.tgz" - }, - "maintainers": [ - { - "name": "esailija", - "email": "petka_antonov@hotmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/bluebird-3.3.5.tgz_1460492125062_0.2224250645376742" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.5.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/.npmignore deleted file mode 100644 index 9daa8247..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -.DS_Store -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/.travis.yml deleted file mode 100644 index 7a56d2a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - "stable" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/README.md deleted file mode 100644 index 729668ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/README.md +++ /dev/null @@ -1,112 +0,0 @@ -# JavaScript MD5 - -## Demo -[JavaScript MD5 Demo](https://blueimp.github.io/JavaScript-MD5/) - -## Description -JavaScript MD5 implementation. Compatible with server-side environments like -Node.js, module loaders like RequireJS, Browserify or webpack and all web -browsers. - -## Usage - -### Client-side -Include the (minified) JavaScript [MD5](https://en.wikipedia.org/wiki/MD5) -script in your HTML markup: - -```html - -``` - -In your application code, calculate the -([hex](https://en.wikipedia.org/wiki/Hexadecimal)-encoded) -[MD5](https://en.wikipedia.org/wiki/MD5) hash of a string by calling the **md5** -method with the string as argument: - -```js -var hash = md5("value"); // "2063c1608d6e0baf80249c42e2be5804" -``` - -### Server-side - -The following is an example how to use the JavaScript MD5 module on the -server-side with [Node.js](http://nodejs.org/). - -Create a new directory and add the **md5.js** file. Or alternatively, -install the **blueimp-md5** package with [npm](https://www.npmjs.org/): - -```sh -npm install blueimp-md5 -``` - -Add a file **server.js** with the following content: - -```js -require("http").createServer(function (req, res) { - // The md5 module exports the md5() function: - var md5 = require("./md5"), - // Use the following version if you installed the package with npm: - // var md5 = require("blueimp-md5"), - url = require("url"), - query = url.parse(req.url).query; - res.writeHead(200, {"Content-Type": "text/plain"}); - // Calculate and print the MD5 hash of the url query: - res.end(md5(query)); -}).listen(8080, "localhost"); -console.log("Server running at http://localhost:8080/"); -``` - -Run the application with the following command: - -```sh -node server.js -``` - -## Requirements -The JavaScript MD5 script has zero dependencies. - -## API - -Calculate the ([hex](https://en.wikipedia.org/wiki/Hexadecimal)-encoded) -[MD5](https://en.wikipedia.org/wiki/MD5) hash of a given string value: - -```js -var hash = md5("value"); // "2063c1608d6e0baf80249c42e2be5804" -``` - -Calculate the ([hex](https://en.wikipedia.org/wiki/Hexadecimal)-encoded) -[HMAC](https://en.wikipedia.org/wiki/HMAC)-MD5 hash of a given string value and key: - -```js -var hash = md5("value", "key"); // "01433efd5f16327ea4b31144572c67f6" -``` - -Calculate the raw [MD5](https://en.wikipedia.org/wiki/MD5) hash of a given -string value: - -```js -var hash = md5("value", null, true); -``` - -Calculate the raw [HMAC](https://en.wikipedia.org/wiki/HMAC)-MD5 hash of a given -string value and key: - -```js -var hash = md5("value", "key", true); -``` - -## Tests -The JavaScript MD5 project comes with -[Unit Tests](https://en.wikipedia.org/wiki/Unit_testing). -There are two different ways to run the tests: - -* Open test/index.html in your browser or -* run `npm test` in the Terminal in the root path of the repository package. - -The first one tests the browser integration, the second one the -[node.js](http://nodejs.org/) integration. - - -## License -The JavaScript MD5 script is released under the -[MIT license](http://www.opensource.org/licenses/MIT). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/css/demo.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/css/demo.css deleted file mode 100644 index 047174ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/css/demo.css +++ /dev/null @@ -1,63 +0,0 @@ -/* - * JavaScript MD5 Demo CSS - * https://github.com/blueimp/JavaScript-MD5 - * - * Copyright 2013, Sebastian Tschan - * https://blueimp.net - * - * Licensed under the MIT license: - * http://www.opensource.org/licenses/MIT - */ - -body { - max-width: 750px; - margin: 0 auto; - padding: 1em; - font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, sans-serif; - font-size: 1em; - line-height: 1.4em; - background: #222; - color: #fff; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -a { - color: orange; - text-decoration: none; -} -img { - border: 0; - vertical-align: middle; -} -h1 { - line-height: 1em; -} -textarea, -input { - display: inline-block; - width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 10px; - margin: 0 0 10px; -} - -@media (min-width: 481px) { - .navigation { - list-style: none; - padding: 0; - } - .navigation li { - display: inline-block; - } - .navigation li:not(:first-child):before { - content: '| '; - } -} - -/* IE7 fixes */ -*+html textarea, -*+html input { - width: 460px; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/index.html deleted file mode 100644 index 858a7642..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/index.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - -JavaScript MD5 Demo - - - - - -

JavaScript MD5 Demo

-

JavaScript MD5 implementation.
-Compatible with server-side environments like Node.js, module loaders like RequireJS, Browserify or webpack and all web browsers.

- -
-

Input

- -
- - -

Result

- -
-
- - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/demo.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/demo.js deleted file mode 100644 index 965f5022..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/demo.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * JavaScript MD5 Demo JS - * https://github.com/blueimp/JavaScript-MD5 - * - * Copyright 2013, Sebastian Tschan - * https://blueimp.net - * - * Licensed under the MIT license: - * http://www.opensource.org/licenses/MIT - */ - -/*global document, md5 */ - -;(function () { - 'use strict' - - var input = document.getElementById('input') - document.getElementById('calculate').addEventListener( - 'click', - function (event) { - event.preventDefault() - document.getElementById('result').value = md5(input.value) - } - ) - input.value = '日本' -}()) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/md5.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/md5.js deleted file mode 100644 index 48ee16c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/md5.js +++ /dev/null @@ -1,281 +0,0 @@ -/* - * JavaScript MD5 - * https://github.com/blueimp/JavaScript-MD5 - * - * Copyright 2011, Sebastian Tschan - * https://blueimp.net - * - * Licensed under the MIT license: - * http://www.opensource.org/licenses/MIT - * - * Based on - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ - -/*global unescape, define, module */ - -;(function ($) { - 'use strict' - - /* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ - function safe_add (x, y) { - var lsw = (x & 0xFFFF) + (y & 0xFFFF) - var msw = (x >> 16) + (y >> 16) + (lsw >> 16) - return (msw << 16) | (lsw & 0xFFFF) - } - - /* - * Bitwise rotate a 32-bit number to the left. - */ - function bit_rol (num, cnt) { - return (num << cnt) | (num >>> (32 - cnt)) - } - - /* - * These functions implement the four basic operations the algorithm uses. - */ - function md5_cmn (q, a, b, x, s, t) { - return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b) - } - function md5_ff (a, b, c, d, x, s, t) { - return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t) - } - function md5_gg (a, b, c, d, x, s, t) { - return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t) - } - function md5_hh (a, b, c, d, x, s, t) { - return md5_cmn(b ^ c ^ d, a, b, x, s, t) - } - function md5_ii (a, b, c, d, x, s, t) { - return md5_cmn(c ^ (b | (~d)), a, b, x, s, t) - } - - /* - * Calculate the MD5 of an array of little-endian words, and a bit length. - */ - function binl_md5 (x, len) { - /* append padding */ - x[len >> 5] |= 0x80 << (len % 32) - x[(((len + 64) >>> 9) << 4) + 14] = len - - var i - var olda - var oldb - var oldc - var oldd - var a = 1732584193 - var b = -271733879 - var c = -1732584194 - var d = 271733878 - - for (i = 0; i < x.length; i += 16) { - olda = a - oldb = b - oldc = c - oldd = d - - a = md5_ff(a, b, c, d, x[i], 7, -680876936) - d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586) - c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819) - b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330) - a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897) - d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426) - c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341) - b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983) - a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416) - d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417) - c = md5_ff(c, d, a, b, x[i + 10], 17, -42063) - b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162) - a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682) - d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101) - c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290) - b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329) - - a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510) - d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632) - c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713) - b = md5_gg(b, c, d, a, x[i], 20, -373897302) - a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691) - d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083) - c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335) - b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848) - a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438) - d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690) - c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961) - b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501) - a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467) - d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784) - c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473) - b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734) - - a = md5_hh(a, b, c, d, x[i + 5], 4, -378558) - d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463) - c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562) - b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556) - a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060) - d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353) - c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632) - b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640) - a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174) - d = md5_hh(d, a, b, c, x[i], 11, -358537222) - c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979) - b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189) - a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487) - d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835) - c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520) - b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651) - - a = md5_ii(a, b, c, d, x[i], 6, -198630844) - d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415) - c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905) - b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055) - a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571) - d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606) - c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523) - b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799) - a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359) - d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744) - c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380) - b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649) - a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070) - d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379) - c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259) - b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551) - - a = safe_add(a, olda) - b = safe_add(b, oldb) - c = safe_add(c, oldc) - d = safe_add(d, oldd) - } - return [a, b, c, d] - } - - /* - * Convert an array of little-endian words to a string - */ - function binl2rstr (input) { - var i - var output = '' - var length32 = input.length * 32 - for (i = 0; i < length32; i += 8) { - output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF) - } - return output - } - - /* - * Convert a raw string to an array of little-endian words - * Characters >255 have their high-byte silently ignored. - */ - function rstr2binl (input) { - var i - var output = [] - output[(input.length >> 2) - 1] = undefined - for (i = 0; i < output.length; i += 1) { - output[i] = 0 - } - var length8 = input.length * 8 - for (i = 0; i < length8; i += 8) { - output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32) - } - return output - } - - /* - * Calculate the MD5 of a raw string - */ - function rstr_md5 (s) { - return binl2rstr(binl_md5(rstr2binl(s), s.length * 8)) - } - - /* - * Calculate the HMAC-MD5, of a key and some data (raw strings) - */ - function rstr_hmac_md5 (key, data) { - var i - var bkey = rstr2binl(key) - var ipad = [] - var opad = [] - var hash - ipad[15] = opad[15] = undefined - if (bkey.length > 16) { - bkey = binl_md5(bkey, key.length * 8) - } - for (i = 0; i < 16; i += 1) { - ipad[i] = bkey[i] ^ 0x36363636 - opad[i] = bkey[i] ^ 0x5C5C5C5C - } - hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8) - return binl2rstr(binl_md5(opad.concat(hash), 512 + 128)) - } - - /* - * Convert a raw string to a hex string - */ - function rstr2hex (input) { - var hex_tab = '0123456789abcdef' - var output = '' - var x - var i - for (i = 0; i < input.length; i += 1) { - x = input.charCodeAt(i) - output += hex_tab.charAt((x >>> 4) & 0x0F) + - hex_tab.charAt(x & 0x0F) - } - return output - } - - /* - * Encode a string as utf-8 - */ - function str2rstr_utf8 (input) { - return unescape(encodeURIComponent(input)) - } - - /* - * Take string arguments and return either raw or hex encoded strings - */ - function raw_md5 (s) { - return rstr_md5(str2rstr_utf8(s)) - } - function hex_md5 (s) { - return rstr2hex(raw_md5(s)) - } - function raw_hmac_md5 (k, d) { - return rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d)) - } - function hex_hmac_md5 (k, d) { - return rstr2hex(raw_hmac_md5(k, d)) - } - - function md5 (string, key, raw) { - if (!key) { - if (!raw) { - return hex_md5(string) - } - return raw_md5(string) - } - if (!raw) { - return hex_hmac_md5(key, string) - } - return raw_hmac_md5(key, string) - } - - if (typeof define === 'function' && define.amd) { - define(function () { - return md5 - }) - } else if (typeof module === 'object' && module.exports) { - module.exports = md5 - } else { - $.md5 = md5 - } -}(this)) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/md5.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/md5.min.js deleted file mode 100644 index c464d0c3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/md5.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t),e=(n>>16)+(t>>16)+(r>>16);return e<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)+14]=r;var e,i,a,h,d,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;et;t+=8)r+=String.fromCharCode(n[t>>5]>>>t%32&255);return r}function h(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;tt;t+=8)r[t>>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;16>r;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(h(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="0123456789abcdef",o="";for(r=0;r>>4&15)+e.charAt(15&t);return o}function v(n){return unescape(encodeURIComponent(n))}function m(n){return d(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}"function"==typeof define&&define.amd?define(function(){return A}):"object"==typeof module&&module.exports?module.exports=A:n.md5=A}(this); -//# sourceMappingURL=md5.min.js.map \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/md5.min.js.map b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/md5.min.js.map deleted file mode 100644 index 18c57dec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/js/md5.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["md5.js"],"names":["$","safe_add","x","y","lsw","msw","bit_rol","num","cnt","md5_cmn","q","a","b","s","t","md5_ff","c","d","md5_gg","md5_hh","md5_ii","binl_md5","len","i","olda","oldb","oldc","oldd","length","binl2rstr","input","output","length32","String","fromCharCode","rstr2binl","undefined","length8","charCodeAt","rstr_md5","rstr_hmac_md5","key","data","hash","bkey","ipad","opad","concat","rstr2hex","hex_tab","charAt","str2rstr_utf8","unescape","encodeURIComponent","raw_md5","hex_md5","raw_hmac_md5","k","hex_hmac_md5","md5","string","raw","define","amd","module","exports","this"],"mappings":"CAqBE,SAAUA,GACV,YAMA,SAASC,GAAUC,EAAGC,GACpB,GAAIC,IAAW,MAAJF,IAAmB,MAAJC,GACtBE,GAAOH,GAAK,KAAOC,GAAK,KAAOC,GAAO,GAC1C,OAAQC,IAAO,GAAa,MAAND,EAMxB,QAASE,GAASC,EAAKC,GACrB,MAAQD,IAAOC,EAAQD,IAAS,GAAKC,EAMvC,QAASC,GAASC,EAAGC,EAAGC,EAAGV,EAAGW,EAAGC,GAC/B,MAAOb,GAASK,EAAQL,EAASA,EAASU,EAAGD,GAAIT,EAASC,EAAGY,IAAKD,GAAID,GAExE,QAASG,GAAQJ,EAAGC,EAAGI,EAAGC,EAAGf,EAAGW,EAAGC,GACjC,MAAOL,GAASG,EAAII,GAAQJ,EAAKK,EAAIN,EAAGC,EAAGV,EAAGW,EAAGC,GAEnD,QAASI,GAAQP,EAAGC,EAAGI,EAAGC,EAAGf,EAAGW,EAAGC,GACjC,MAAOL,GAASG,EAAIK,EAAMD,GAAMC,EAAKN,EAAGC,EAAGV,EAAGW,EAAGC,GAEnD,QAASK,GAAQR,EAAGC,EAAGI,EAAGC,EAAGf,EAAGW,EAAGC,GACjC,MAAOL,GAAQG,EAAII,EAAIC,EAAGN,EAAGC,EAAGV,EAAGW,EAAGC,GAExC,QAASM,GAAQT,EAAGC,EAAGI,EAAGC,EAAGf,EAAGW,EAAGC,GACjC,MAAOL,GAAQO,GAAKJ,GAAMK,GAAKN,EAAGC,EAAGV,EAAGW,EAAGC,GAM7C,QAASO,GAAUnB,EAAGoB,GAEpBpB,EAAEoB,GAAO,IAAM,KAASA,EAAM,GAC9BpB,GAAKoB,EAAM,KAAQ,GAAM,GAAK,IAAMA,CAEpC,IAAIC,GACAC,EACAC,EACAC,EACAC,EACAhB,EAAI,WACJC,EAAI,WACJI,EAAI,YACJC,EAAI,SAER,KAAKM,EAAI,EAAGA,EAAIrB,EAAE0B,OAAQL,GAAK,GAC7BC,EAAOb,EACPc,EAAOb,EACPc,EAAOV,EACPW,EAAOV,EAEPN,EAAII,EAAOJ,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,GAAI,EAAG,YAChCN,EAAIF,EAAOE,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,GAAI,GAAI,YACrCP,EAAID,EAAOC,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,GAAI,GAAI,WACrCX,EAAIG,EAAOH,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,GAAI,GAAI,aACrCZ,EAAII,EAAOJ,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,GAAI,EAAG,YACpCN,EAAIF,EAAOE,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,GAAI,GAAI,YACrCP,EAAID,EAAOC,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,GAAI,GAAI,aACrCX,EAAIG,EAAOH,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,GAAI,GAAI,WACrCZ,EAAII,EAAOJ,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,GAAI,EAAG,YACpCN,EAAIF,EAAOE,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,GAAI,GAAI,aACrCP,EAAID,EAAOC,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,IAAK,GAAI,QACtCX,EAAIG,EAAOH,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,IAAK,GAAI,aACtCZ,EAAII,EAAOJ,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,IAAK,EAAG,YACrCN,EAAIF,EAAOE,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,IAAK,GAAI,WACtCP,EAAID,EAAOC,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,IAAK,GAAI,aACtCX,EAAIG,EAAOH,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,IAAK,GAAI,YAEtCZ,EAAIO,EAAOP,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,GAAI,EAAG,YACpCN,EAAIC,EAAOD,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,GAAI,EAAG,aACpCP,EAAIE,EAAOF,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,IAAK,GAAI,WACtCX,EAAIM,EAAON,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,GAAI,GAAI,YACjCZ,EAAIO,EAAOP,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,GAAI,EAAG,YACpCN,EAAIC,EAAOD,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,IAAK,EAAG,UACrCP,EAAIE,EAAOF,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,IAAK,GAAI,YACtCX,EAAIM,EAAON,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,GAAI,GAAI,YACrCZ,EAAIO,EAAOP,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,GAAI,EAAG,WACpCN,EAAIC,EAAOD,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,IAAK,EAAG,aACrCP,EAAIE,EAAOF,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,GAAI,GAAI,YACrCX,EAAIM,EAAON,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,GAAI,GAAI,YACrCZ,EAAIO,EAAOP,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,IAAK,EAAG,aACrCN,EAAIC,EAAOD,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,GAAI,EAAG,WACpCP,EAAIE,EAAOF,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,GAAI,GAAI,YACrCX,EAAIM,EAAON,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,IAAK,GAAI,aAEtCZ,EAAIQ,EAAOR,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,GAAI,EAAG,SACpCN,EAAIE,EAAOF,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,GAAI,GAAI,aACrCP,EAAIG,EAAOH,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,IAAK,GAAI,YACtCX,EAAIO,EAAOP,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,IAAK,GAAI,WACtCZ,EAAIQ,EAAOR,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,GAAI,EAAG,aACpCN,EAAIE,EAAOF,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,GAAI,GAAI,YACrCP,EAAIG,EAAOH,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,GAAI,GAAI,YACrCX,EAAIO,EAAOP,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,IAAK,GAAI,aACtCZ,EAAIQ,EAAOR,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,IAAK,EAAG,WACrCN,EAAIE,EAAOF,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,GAAI,GAAI,YACjCP,EAAIG,EAAOH,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,GAAI,GAAI,YACrCX,EAAIO,EAAOP,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,GAAI,GAAI,UACrCZ,EAAIQ,EAAOR,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,GAAI,EAAG,YACpCN,EAAIE,EAAOF,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,IAAK,GAAI,YACtCP,EAAIG,EAAOH,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,IAAK,GAAI,WACtCX,EAAIO,EAAOP,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,GAAI,GAAI,YAErCZ,EAAIS,EAAOT,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,GAAI,EAAG,YAChCN,EAAIG,EAAOH,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,GAAI,GAAI,YACrCP,EAAII,EAAOJ,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,IAAK,GAAI,aACtCX,EAAIQ,EAAOR,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,GAAI,GAAI,WACrCZ,EAAIS,EAAOT,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,IAAK,EAAG,YACrCN,EAAIG,EAAOH,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,GAAI,GAAI,aACrCP,EAAII,EAAOJ,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,IAAK,GAAI,UACtCX,EAAIQ,EAAOR,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,GAAI,GAAI,aACrCZ,EAAIS,EAAOT,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,GAAI,EAAG,YACpCN,EAAIG,EAAOH,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,IAAK,GAAI,WACtCP,EAAII,EAAOJ,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,GAAI,GAAI,aACrCX,EAAIQ,EAAOR,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,IAAK,GAAI,YACtCZ,EAAIS,EAAOT,EAAGC,EAAGI,EAAGC,EAAGf,EAAEqB,EAAI,GAAI,EAAG,YACpCN,EAAIG,EAAOH,EAAGN,EAAGC,EAAGI,EAAGd,EAAEqB,EAAI,IAAK,GAAI,aACtCP,EAAII,EAAOJ,EAAGC,EAAGN,EAAGC,EAAGV,EAAEqB,EAAI,GAAI,GAAI,WACrCX,EAAIQ,EAAOR,EAAGI,EAAGC,EAAGN,EAAGT,EAAEqB,EAAI,GAAI,GAAI,YAErCZ,EAAIV,EAASU,EAAGa,GAChBZ,EAAIX,EAASW,EAAGa,GAChBT,EAAIf,EAASe,EAAGU,GAChBT,EAAIhB,EAASgB,EAAGU,EAElB,QAAQhB,EAAGC,EAAGI,EAAGC,GAMnB,QAASY,GAAWC,GAClB,GAAIP,GACAQ,EAAS,GACTC,EAA0B,GAAfF,EAAMF,MACrB,KAAKL,EAAI,EAAOS,EAAJT,EAAcA,GAAK,EAC7BQ,GAAUE,OAAOC,aAAcJ,EAAMP,GAAK,KAAQA,EAAI,GAAO,IAE/D,OAAOQ,GAOT,QAASI,GAAWL,GAClB,GAAIP,GACAQ,IAEJ,KADAA,GAAQD,EAAMF,QAAU,GAAK,GAAKQ,OAC7Bb,EAAI,EAAGA,EAAIQ,EAAOH,OAAQL,GAAK,EAClCQ,EAAOR,GAAK,CAEd,IAAIc,GAAyB,EAAfP,EAAMF,MACpB,KAAKL,EAAI,EAAOc,EAAJd,EAAaA,GAAK,EAC5BQ,EAAOR,GAAK,KAAiC,IAA1BO,EAAMQ,WAAWf,EAAI,KAAeA,EAAI,EAE7D,OAAOQ,GAMT,QAASQ,GAAU1B,GACjB,MAAOgB,GAAUR,EAASc,EAAUtB,GAAe,EAAXA,EAAEe,SAM5C,QAASY,GAAeC,EAAKC,GAC3B,GAAInB,GAIAoB,EAHAC,EAAOT,EAAUM,GACjBI,KACAC,IAMJ,KAJAD,EAAK,IAAMC,EAAK,IAAMV,OAClBQ,EAAKhB,OAAS,KAChBgB,EAAOvB,EAASuB,EAAmB,EAAbH,EAAIb,SAEvBL,EAAI,EAAO,GAAJA,EAAQA,GAAK,EACvBsB,EAAKtB,GAAe,UAAVqB,EAAKrB,GACfuB,EAAKvB,GAAe,WAAVqB,EAAKrB,EAGjB,OADAoB,GAAOtB,EAASwB,EAAKE,OAAOZ,EAAUO,IAAQ,IAAoB,EAAdA,EAAKd,QAClDC,EAAUR,EAASyB,EAAKC,OAAOJ,GAAO,MAM/C,QAASK,GAAUlB,GACjB,GAEI5B,GACAqB,EAHA0B,EAAU,mBACVlB,EAAS,EAGb,KAAKR,EAAI,EAAGA,EAAIO,EAAMF,OAAQL,GAAK,EACjCrB,EAAI4B,EAAMQ,WAAWf,GACrBQ,GAAUkB,EAAQC,OAAQhD,IAAM,EAAK,IACrC+C,EAAQC,OAAW,GAAJhD,EAEjB,OAAO6B,GAMT,QAASoB,GAAerB,GACtB,MAAOsB,UAASC,mBAAmBvB,IAMrC,QAASwB,GAASzC,GAChB,MAAO0B,GAASY,EAActC,IAEhC,QAAS0C,GAAS1C,GAChB,MAAOmC,GAASM,EAAQzC,IAE1B,QAAS2C,GAAcC,EAAGxC,GACxB,MAAOuB,GAAcW,EAAcM,GAAIN,EAAclC,IAEvD,QAASyC,GAAcD,EAAGxC,GACxB,MAAO+B,GAASQ,EAAaC,EAAGxC,IAGlC,QAAS0C,GAAKC,EAAQnB,EAAKoB,GACzB,MAAKpB,GAMAoB,EAGEL,EAAaf,EAAKmB,GAFhBF,EAAajB,EAAKmB,GANpBC,EAGEP,EAAQM,GAFNL,EAAQK,GAUC,kBAAXE,SAAyBA,OAAOC,IACzCD,OAAO,WACL,MAAOH,KAEkB,gBAAXK,SAAuBA,OAAOC,QAC9CD,OAAOC,QAAUN,EAEjB3D,EAAE2D,IAAMA,GAEVO","file":"md5.min.js"} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/package.json deleted file mode 100644 index a51f0136..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/package.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "name": "blueimp-md5", - "version": "2.3.1", - "title": "JavaScript MD5", - "description": "JavaScript MD5 implementation. Compatible with server-side environments like Node.js, module loaders like RequireJS, Browserify or webpack and all web browsers.", - "keywords": [ - "javascript", - "md5" - ], - "homepage": "https://github.com/blueimp/JavaScript-MD5", - "author": { - "name": "Sebastian Tschan", - "url": "https://blueimp.net" - }, - "contributors": [ - { - "name": "Paul Johnston", - "url": "http://pajhome.org.uk/crypt/md5" - } - ], - "repository": { - "type": "git", - "url": "git://github.com/blueimp/JavaScript-MD5.git" - }, - "license": "MIT", - "devDependencies": { - "expect.js": "0.3.1", - "mocha": "2.3.4", - "standard": "6.0.7", - "uglify-js": "2.6.1" - }, - "scripts": { - "test": "standard js/*.js test/*.js && mocha", - "build": "cd js && uglifyjs md5.js -c -m -o md5.min.js --source-map md5.min.js.map", - "preversion": "npm test", - "version": "npm run build && git add -A js", - "postversion": "git push --tags origin master master:gh-pages && npm publish" - }, - "main": "js/md5.js", - "gitHead": "11688dfb76ad756b7c8595aa5d06b266e906461b", - "bugs": { - "url": "https://github.com/blueimp/JavaScript-MD5/issues" - }, - "_id": "blueimp-md5@2.3.1", - "_shasum": "992a6737733b9da1edd641550dc3acab2e9cfc5a", - "_from": "blueimp-md5@>=2.3.0 <2.4.0", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.4.0", - "_npmUser": { - "name": "blueimp", - "email": "mail@blueimp.net" - }, - "dist": { - "shasum": "992a6737733b9da1edd641550dc3acab2e9cfc5a", - "tarball": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.3.1.tgz" - }, - "maintainers": [ - { - "name": "blueimp", - "email": "sebastian.tschan@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/blueimp-md5-2.3.1.tgz_1473005305683_0.5607192928437144" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.3.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/index.html deleted file mode 100644 index 5178b850..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/index.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - -JavaScript MD5 Test - - - - -
- - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/test.js deleted file mode 100644 index acdd5d2b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/test.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * JavaScript MD5 Test - * https://github.com/blueimp/JavaScript-MD5 - * - * Copyright 2011, Sebastian Tschan - * https://blueimp.net - * - * Licensed under the MIT license: - * http://www.opensource.org/licenses/MIT - */ - -/*global describe, it, require */ - -;(function (expect, md5) { - 'use strict' - - describe('MD5 Hex-encoding', function () { - it('should create a hex-encoded MD5 hash of an ASCII value', function () { - expect( - md5('value') - ).to.be( - '2063c1608d6e0baf80249c42e2be5804' - ) - }) - - it('should create a hex-encoded MD5 hash of an UTF-8 value', function () { - expect( - md5('日本') - ).to.be( - '4dbed2e657457884e67137d3514119b3' - ) - }) - }) - - describe('HMAC-MD5 Hex-encoding', function () { - it('should create a hex-encoded HMAC-MD5 hash of an ASCII value and key', function () { - expect( - md5('value', 'key') - ).to.be( - '01433efd5f16327ea4b31144572c67f6' - ) - }) - - it('should create a hex-encoded HMAC-MD5 hash of an UTF-8 value and key', function () { - expect( - md5('日本', '日本') - ).to.be( - 'c78b8c7357926981cc04740bd3e9d015' - ) - }) - }) - - describe('MD5 raw encoding', function () { - it('should create a raw MD5 hash of an ASCII value', function () { - expect( - md5('value', null, true) - ).to.be( - ' c\xc1`\x8dn\x0b\xaf\x80$\x9cB\xe2\xbeX\x04' - ) - }) - - it('should create a raw MD5 hash of an UTF-8 value', function () { - expect( - md5('日本', null, true) - ).to.be( - 'M\xbe\xd2\xe6WEx\x84\xe6q7\xd3QA\x19\xb3' - ) - }) - }) - - describe('HMAC-MD5 raw encoding', function () { - it('should create a raw HMAC-MD5 hash of an ASCII value and key', function () { - expect( - md5('value', 'key', true) - ).to.be( - '\x01C>\xfd_\x162~\xa4\xb3\x11DW,g\xf6' - ) - }) - - it('should create a raw HMAC-MD5 hash of an UTF-8 value and key', function () { - expect( - md5('日本', '日本', true) - ).to.be( - '\xc7\x8b\x8csW\x92i\x81\xcc\x04t\x0b\xd3\xe9\xd0\x15' - ) - }) - }) -}( - this.expect || require('expect.js'), - this.md5 || require('../js/md5') -)) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/vendor/expect.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/vendor/expect.js deleted file mode 100644 index b1e921dd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/vendor/expect.js +++ /dev/null @@ -1,1284 +0,0 @@ -(function (global, module) { - - var exports = module.exports; - - /** - * Exports. - */ - - module.exports = expect; - expect.Assertion = Assertion; - - /** - * Exports version. - */ - - expect.version = '0.3.1'; - - /** - * Possible assertion flags. - */ - - var flags = { - not: ['to', 'be', 'have', 'include', 'only'] - , to: ['be', 'have', 'include', 'only', 'not'] - , only: ['have'] - , have: ['own'] - , be: ['an'] - }; - - function expect (obj) { - return new Assertion(obj); - } - - /** - * Constructor - * - * @api private - */ - - function Assertion (obj, flag, parent) { - this.obj = obj; - this.flags = {}; - - if (undefined != parent) { - this.flags[flag] = true; - - for (var i in parent.flags) { - if (parent.flags.hasOwnProperty(i)) { - this.flags[i] = true; - } - } - } - - var $flags = flag ? flags[flag] : keys(flags) - , self = this; - - if ($flags) { - for (var i = 0, l = $flags.length; i < l; i++) { - // avoid recursion - if (this.flags[$flags[i]]) continue; - - var name = $flags[i] - , assertion = new Assertion(this.obj, name, this) - - if ('function' == typeof Assertion.prototype[name]) { - // clone the function, make sure we dont touch the prot reference - var old = this[name]; - this[name] = function () { - return old.apply(self, arguments); - }; - - for (var fn in Assertion.prototype) { - if (Assertion.prototype.hasOwnProperty(fn) && fn != name) { - this[name][fn] = bind(assertion[fn], assertion); - } - } - } else { - this[name] = assertion; - } - } - } - } - - /** - * Performs an assertion - * - * @api private - */ - - Assertion.prototype.assert = function (truth, msg, error, expected) { - var msg = this.flags.not ? error : msg - , ok = this.flags.not ? !truth : truth - , err; - - if (!ok) { - err = new Error(msg.call(this)); - if (arguments.length > 3) { - err.actual = this.obj; - err.expected = expected; - err.showDiff = true; - } - throw err; - } - - this.and = new Assertion(this.obj); - }; - - /** - * Check if the value is truthy - * - * @api public - */ - - Assertion.prototype.ok = function () { - this.assert( - !!this.obj - , function(){ return 'expected ' + i(this.obj) + ' to be truthy' } - , function(){ return 'expected ' + i(this.obj) + ' to be falsy' }); - }; - - /** - * Creates an anonymous function which calls fn with arguments. - * - * @api public - */ - - Assertion.prototype.withArgs = function() { - expect(this.obj).to.be.a('function'); - var fn = this.obj; - var args = Array.prototype.slice.call(arguments); - return expect(function() { fn.apply(null, args); }); - }; - - /** - * Assert that the function throws. - * - * @param {Function|RegExp} callback, or regexp to match error string against - * @api public - */ - - Assertion.prototype.throwError = - Assertion.prototype.throwException = function (fn) { - expect(this.obj).to.be.a('function'); - - var thrown = false - , not = this.flags.not; - - try { - this.obj(); - } catch (e) { - if (isRegExp(fn)) { - var subject = 'string' == typeof e ? e : e.message; - if (not) { - expect(subject).to.not.match(fn); - } else { - expect(subject).to.match(fn); - } - } else if ('function' == typeof fn) { - fn(e); - } - thrown = true; - } - - if (isRegExp(fn) && not) { - // in the presence of a matcher, ensure the `not` only applies to - // the matching. - this.flags.not = false; - } - - var name = this.obj.name || 'fn'; - this.assert( - thrown - , function(){ return 'expected ' + name + ' to throw an exception' } - , function(){ return 'expected ' + name + ' not to throw an exception' }); - }; - - /** - * Checks if the array is empty. - * - * @api public - */ - - Assertion.prototype.empty = function () { - var expectation; - - if ('object' == typeof this.obj && null !== this.obj && !isArray(this.obj)) { - if ('number' == typeof this.obj.length) { - expectation = !this.obj.length; - } else { - expectation = !keys(this.obj).length; - } - } else { - if ('string' != typeof this.obj) { - expect(this.obj).to.be.an('object'); - } - - expect(this.obj).to.have.property('length'); - expectation = !this.obj.length; - } - - this.assert( - expectation - , function(){ return 'expected ' + i(this.obj) + ' to be empty' } - , function(){ return 'expected ' + i(this.obj) + ' to not be empty' }); - return this; - }; - - /** - * Checks if the obj exactly equals another. - * - * @api public - */ - - Assertion.prototype.be = - Assertion.prototype.equal = function (obj) { - this.assert( - obj === this.obj - , function(){ return 'expected ' + i(this.obj) + ' to equal ' + i(obj) } - , function(){ return 'expected ' + i(this.obj) + ' to not equal ' + i(obj) }); - return this; - }; - - /** - * Checks if the obj sortof equals another. - * - * @api public - */ - - Assertion.prototype.eql = function (obj) { - this.assert( - expect.eql(this.obj, obj) - , function(){ return 'expected ' + i(this.obj) + ' to sort of equal ' + i(obj) } - , function(){ return 'expected ' + i(this.obj) + ' to sort of not equal ' + i(obj) } - , obj); - return this; - }; - - /** - * Assert within start to finish (inclusive). - * - * @param {Number} start - * @param {Number} finish - * @api public - */ - - Assertion.prototype.within = function (start, finish) { - var range = start + '..' + finish; - this.assert( - this.obj >= start && this.obj <= finish - , function(){ return 'expected ' + i(this.obj) + ' to be within ' + range } - , function(){ return 'expected ' + i(this.obj) + ' to not be within ' + range }); - return this; - }; - - /** - * Assert typeof / instance of - * - * @api public - */ - - Assertion.prototype.a = - Assertion.prototype.an = function (type) { - if ('string' == typeof type) { - // proper english in error msg - var n = /^[aeiou]/.test(type) ? 'n' : ''; - - // typeof with support for 'array' - this.assert( - 'array' == type ? isArray(this.obj) : - 'regexp' == type ? isRegExp(this.obj) : - 'object' == type - ? 'object' == typeof this.obj && null !== this.obj - : type == typeof this.obj - , function(){ return 'expected ' + i(this.obj) + ' to be a' + n + ' ' + type } - , function(){ return 'expected ' + i(this.obj) + ' not to be a' + n + ' ' + type }); - } else { - // instanceof - var name = type.name || 'supplied constructor'; - this.assert( - this.obj instanceof type - , function(){ return 'expected ' + i(this.obj) + ' to be an instance of ' + name } - , function(){ return 'expected ' + i(this.obj) + ' not to be an instance of ' + name }); - } - - return this; - }; - - /** - * Assert numeric value above _n_. - * - * @param {Number} n - * @api public - */ - - Assertion.prototype.greaterThan = - Assertion.prototype.above = function (n) { - this.assert( - this.obj > n - , function(){ return 'expected ' + i(this.obj) + ' to be above ' + n } - , function(){ return 'expected ' + i(this.obj) + ' to be below ' + n }); - return this; - }; - - /** - * Assert numeric value below _n_. - * - * @param {Number} n - * @api public - */ - - Assertion.prototype.lessThan = - Assertion.prototype.below = function (n) { - this.assert( - this.obj < n - , function(){ return 'expected ' + i(this.obj) + ' to be below ' + n } - , function(){ return 'expected ' + i(this.obj) + ' to be above ' + n }); - return this; - }; - - /** - * Assert string value matches _regexp_. - * - * @param {RegExp} regexp - * @api public - */ - - Assertion.prototype.match = function (regexp) { - this.assert( - regexp.exec(this.obj) - , function(){ return 'expected ' + i(this.obj) + ' to match ' + regexp } - , function(){ return 'expected ' + i(this.obj) + ' not to match ' + regexp }); - return this; - }; - - /** - * Assert property "length" exists and has value of _n_. - * - * @param {Number} n - * @api public - */ - - Assertion.prototype.length = function (n) { - expect(this.obj).to.have.property('length'); - var len = this.obj.length; - this.assert( - n == len - , function(){ return 'expected ' + i(this.obj) + ' to have a length of ' + n + ' but got ' + len } - , function(){ return 'expected ' + i(this.obj) + ' to not have a length of ' + len }); - return this; - }; - - /** - * Assert property _name_ exists, with optional _val_. - * - * @param {String} name - * @param {Mixed} val - * @api public - */ - - Assertion.prototype.property = function (name, val) { - if (this.flags.own) { - this.assert( - Object.prototype.hasOwnProperty.call(this.obj, name) - , function(){ return 'expected ' + i(this.obj) + ' to have own property ' + i(name) } - , function(){ return 'expected ' + i(this.obj) + ' to not have own property ' + i(name) }); - return this; - } - - if (this.flags.not && undefined !== val) { - if (undefined === this.obj[name]) { - throw new Error(i(this.obj) + ' has no property ' + i(name)); - } - } else { - var hasProp; - try { - hasProp = name in this.obj - } catch (e) { - hasProp = undefined !== this.obj[name] - } - - this.assert( - hasProp - , function(){ return 'expected ' + i(this.obj) + ' to have a property ' + i(name) } - , function(){ return 'expected ' + i(this.obj) + ' to not have a property ' + i(name) }); - } - - if (undefined !== val) { - this.assert( - val === this.obj[name] - , function(){ return 'expected ' + i(this.obj) + ' to have a property ' + i(name) - + ' of ' + i(val) + ', but got ' + i(this.obj[name]) } - , function(){ return 'expected ' + i(this.obj) + ' to not have a property ' + i(name) - + ' of ' + i(val) }); - } - - this.obj = this.obj[name]; - return this; - }; - - /** - * Assert that the array contains _obj_ or string contains _obj_. - * - * @param {Mixed} obj|string - * @api public - */ - - Assertion.prototype.string = - Assertion.prototype.contain = function (obj) { - if ('string' == typeof this.obj) { - this.assert( - ~this.obj.indexOf(obj) - , function(){ return 'expected ' + i(this.obj) + ' to contain ' + i(obj) } - , function(){ return 'expected ' + i(this.obj) + ' to not contain ' + i(obj) }); - } else { - this.assert( - ~indexOf(this.obj, obj) - , function(){ return 'expected ' + i(this.obj) + ' to contain ' + i(obj) } - , function(){ return 'expected ' + i(this.obj) + ' to not contain ' + i(obj) }); - } - return this; - }; - - /** - * Assert exact keys or inclusion of keys by using - * the `.own` modifier. - * - * @param {Array|String ...} keys - * @api public - */ - - Assertion.prototype.key = - Assertion.prototype.keys = function ($keys) { - var str - , ok = true; - - $keys = isArray($keys) - ? $keys - : Array.prototype.slice.call(arguments); - - if (!$keys.length) throw new Error('keys required'); - - var actual = keys(this.obj) - , len = $keys.length; - - // Inclusion - ok = every($keys, function (key) { - return ~indexOf(actual, key); - }); - - // Strict - if (!this.flags.not && this.flags.only) { - ok = ok && $keys.length == actual.length; - } - - // Key string - if (len > 1) { - $keys = map($keys, function (key) { - return i(key); - }); - var last = $keys.pop(); - str = $keys.join(', ') + ', and ' + last; - } else { - str = i($keys[0]); - } - - // Form - str = (len > 1 ? 'keys ' : 'key ') + str; - - // Have / include - str = (!this.flags.only ? 'include ' : 'only have ') + str; - - // Assertion - this.assert( - ok - , function(){ return 'expected ' + i(this.obj) + ' to ' + str } - , function(){ return 'expected ' + i(this.obj) + ' to not ' + str }); - - return this; - }; - - /** - * Assert a failure. - * - * @param {String ...} custom message - * @api public - */ - Assertion.prototype.fail = function (msg) { - var error = function() { return msg || "explicit failure"; } - this.assert(false, error, error); - return this; - }; - - /** - * Function bind implementation. - */ - - function bind (fn, scope) { - return function () { - return fn.apply(scope, arguments); - } - } - - /** - * Array every compatibility - * - * @see bit.ly/5Fq1N2 - * @api public - */ - - function every (arr, fn, thisObj) { - var scope = thisObj || global; - for (var i = 0, j = arr.length; i < j; ++i) { - if (!fn.call(scope, arr[i], i, arr)) { - return false; - } - } - return true; - } - - /** - * Array indexOf compatibility. - * - * @see bit.ly/a5Dxa2 - * @api public - */ - - function indexOf (arr, o, i) { - if (Array.prototype.indexOf) { - return Array.prototype.indexOf.call(arr, o, i); - } - - if (arr.length === undefined) { - return -1; - } - - for (var j = arr.length, i = i < 0 ? i + j < 0 ? 0 : i + j : i || 0 - ; i < j && arr[i] !== o; i++); - - return j <= i ? -1 : i; - } - - // https://gist.github.com/1044128/ - var getOuterHTML = function(element) { - if ('outerHTML' in element) return element.outerHTML; - var ns = "http://www.w3.org/1999/xhtml"; - var container = document.createElementNS(ns, '_'); - var xmlSerializer = new XMLSerializer(); - var html; - if (document.xmlVersion) { - return xmlSerializer.serializeToString(element); - } else { - container.appendChild(element.cloneNode(false)); - html = container.innerHTML.replace('><', '>' + element.innerHTML + '<'); - container.innerHTML = ''; - return html; - } - }; - - // Returns true if object is a DOM element. - var isDOMElement = function (object) { - if (typeof HTMLElement === 'object') { - return object instanceof HTMLElement; - } else { - return object && - typeof object === 'object' && - object.nodeType === 1 && - typeof object.nodeName === 'string'; - } - }; - - /** - * Inspects an object. - * - * @see taken from node.js `util` module (copyright Joyent, MIT license) - * @api private - */ - - function i (obj, showHidden, depth) { - var seen = []; - - function stylize (str) { - return str; - } - - function format (value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (value && typeof value.inspect === 'function' && - // Filter out the util module, it's inspect function is special - value !== exports && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - return value.inspect(recurseTimes); - } - - // Primitive types cannot have properties - switch (typeof value) { - case 'undefined': - return stylize('undefined', 'undefined'); - - case 'string': - var simple = '\'' + json.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return stylize(simple, 'string'); - - case 'number': - return stylize('' + value, 'number'); - - case 'boolean': - return stylize('' + value, 'boolean'); - } - // For some reason typeof null is "object", so special case here. - if (value === null) { - return stylize('null', 'null'); - } - - if (isDOMElement(value)) { - return getOuterHTML(value); - } - - // Look up the keys of the object. - var visible_keys = keys(value); - var $keys = showHidden ? Object.getOwnPropertyNames(value) : visible_keys; - - // Functions without properties can be shortcutted. - if (typeof value === 'function' && $keys.length === 0) { - if (isRegExp(value)) { - return stylize('' + value, 'regexp'); - } else { - var name = value.name ? ': ' + value.name : ''; - return stylize('[Function' + name + ']', 'special'); - } - } - - // Dates without properties can be shortcutted - if (isDate(value) && $keys.length === 0) { - return stylize(value.toUTCString(), 'date'); - } - - // Error objects can be shortcutted - if (value instanceof Error) { - return stylize("["+value.toString()+"]", 'Error'); - } - - var base, type, braces; - // Determine the object type - if (isArray(value)) { - type = 'Array'; - braces = ['[', ']']; - } else { - type = 'Object'; - braces = ['{', '}']; - } - - // Make functions say that they are functions - if (typeof value === 'function') { - var n = value.name ? ': ' + value.name : ''; - base = (isRegExp(value)) ? ' ' + value : ' [Function' + n + ']'; - } else { - base = ''; - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + value.toUTCString(); - } - - if ($keys.length === 0) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return stylize('' + value, 'regexp'); - } else { - return stylize('[Object]', 'special'); - } - } - - seen.push(value); - - var output = map($keys, function (key) { - var name, str; - if (value.__lookupGetter__) { - if (value.__lookupGetter__(key)) { - if (value.__lookupSetter__(key)) { - str = stylize('[Getter/Setter]', 'special'); - } else { - str = stylize('[Getter]', 'special'); - } - } else { - if (value.__lookupSetter__(key)) { - str = stylize('[Setter]', 'special'); - } - } - } - if (indexOf(visible_keys, key) < 0) { - name = '[' + key + ']'; - } - if (!str) { - if (indexOf(seen, value[key]) < 0) { - if (recurseTimes === null) { - str = format(value[key]); - } else { - str = format(value[key], recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (isArray(value)) { - str = map(str.split('\n'), function (line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + map(str.split('\n'), function (line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = stylize('[Circular]', 'special'); - } - } - if (typeof name === 'undefined') { - if (type === 'Array' && key.match(/^\d+$/)) { - return str; - } - name = json.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = stylize(name, 'string'); - } - } - - return name + ': ' + str; - }); - - seen.pop(); - - var numLinesEst = 0; - var length = reduce(output, function (prev, cur) { - numLinesEst++; - if (indexOf(cur, '\n') >= 0) numLinesEst++; - return prev + cur.length + 1; - }, 0); - - if (length > 50) { - output = braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - - } else { - output = braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; - } - - return output; - } - return format(obj, (typeof depth === 'undefined' ? 2 : depth)); - } - - expect.stringify = i; - - function isArray (ar) { - return Object.prototype.toString.call(ar) === '[object Array]'; - } - - function isRegExp(re) { - var s; - try { - s = '' + re; - } catch (e) { - return false; - } - - return re instanceof RegExp || // easy case - // duck-type for context-switching evalcx case - typeof(re) === 'function' && - re.constructor.name === 'RegExp' && - re.compile && - re.test && - re.exec && - s.match(/^\/.*\/[gim]{0,3}$/); - } - - function isDate(d) { - return d instanceof Date; - } - - function keys (obj) { - if (Object.keys) { - return Object.keys(obj); - } - - var keys = []; - - for (var i in obj) { - if (Object.prototype.hasOwnProperty.call(obj, i)) { - keys.push(i); - } - } - - return keys; - } - - function map (arr, mapper, that) { - if (Array.prototype.map) { - return Array.prototype.map.call(arr, mapper, that); - } - - var other= new Array(arr.length); - - for (var i= 0, n = arr.length; i= 2) { - var rv = arguments[1]; - } else { - do { - if (i in this) { - rv = this[i++]; - break; - } - - // if array contains no values, no initial value to return - if (++i >= len) - throw new TypeError(); - } while (true); - } - - for (; i < len; i++) { - if (i in this) - rv = fun.call(null, rv, this[i], i, this); - } - - return rv; - } - - /** - * Asserts deep equality - * - * @see taken from node.js `assert` module (copyright Joyent, MIT license) - * @api private - */ - - expect.eql = function eql(actual, expected) { - // 7.1. All identical values are equivalent, as determined by ===. - if (actual === expected) { - return true; - } else if ('undefined' != typeof Buffer - && Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) { - if (actual.length != expected.length) return false; - - for (var i = 0; i < actual.length; i++) { - if (actual[i] !== expected[i]) return false; - } - - return true; - - // 7.2. If the expected value is a Date object, the actual value is - // equivalent if it is also a Date object that refers to the same time. - } else if (actual instanceof Date && expected instanceof Date) { - return actual.getTime() === expected.getTime(); - - // 7.3. Other pairs that do not both pass typeof value == "object", - // equivalence is determined by ==. - } else if (typeof actual != 'object' && typeof expected != 'object') { - return actual == expected; - // If both are regular expression use the special `regExpEquiv` method - // to determine equivalence. - } else if (isRegExp(actual) && isRegExp(expected)) { - return regExpEquiv(actual, expected); - // 7.4. For all other Object pairs, including Array objects, equivalence is - // determined by having the same number of owned properties (as verified - // with Object.prototype.hasOwnProperty.call), the same set of keys - // (although not necessarily the same order), equivalent values for every - // corresponding key, and an identical "prototype" property. Note: this - // accounts for both named and indexed properties on Arrays. - } else { - return objEquiv(actual, expected); - } - }; - - function isUndefinedOrNull (value) { - return value === null || value === undefined; - } - - function isArguments (object) { - return Object.prototype.toString.call(object) == '[object Arguments]'; - } - - function regExpEquiv (a, b) { - return a.source === b.source && a.global === b.global && - a.ignoreCase === b.ignoreCase && a.multiline === b.multiline; - } - - function objEquiv (a, b) { - if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) - return false; - // an identical "prototype" property. - if (a.prototype !== b.prototype) return false; - //~~~I've managed to break Object.keys through screwy arguments passing. - // Converting to array solves the problem. - if (isArguments(a)) { - if (!isArguments(b)) { - return false; - } - a = pSlice.call(a); - b = pSlice.call(b); - return expect.eql(a, b); - } - try{ - var ka = keys(a), - kb = keys(b), - key, i; - } catch (e) {//happens when one is a string literal and the other isn't - return false; - } - // having the same number of owned properties (keys incorporates hasOwnProperty) - if (ka.length != kb.length) - return false; - //the same set of keys (although not necessarily the same order), - ka.sort(); - kb.sort(); - //~~~cheap key test - for (i = ka.length - 1; i >= 0; i--) { - if (ka[i] != kb[i]) - return false; - } - //equivalent values for every corresponding key, and - //~~~possibly expensive deep test - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!expect.eql(a[key], b[key])) - return false; - } - return true; - } - - var json = (function () { - "use strict"; - - if ('object' == typeof JSON && JSON.parse && JSON.stringify) { - return { - parse: nativeJSON.parse - , stringify: nativeJSON.stringify - } - } - - var JSON = {}; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } - - function date(d, key) { - return isFinite(d.valueOf()) ? - d.getUTCFullYear() + '-' + - f(d.getUTCMonth() + 1) + '-' + - f(d.getUTCDate()) + 'T' + - f(d.getUTCHours()) + ':' + - f(d.getUTCMinutes()) + ':' + - f(d.getUTCSeconds()) + 'Z' : null; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - - // If the string contains no control characters, no quote characters, and no - // backslash characters, then we can safely slap some quotes around it. - // Otherwise we must also replace the offending characters with safe escape - // sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' ? c : - '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - - // Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - - // If the value has a toJSON method, call it to obtain a replacement value. - - if (value instanceof Date) { - value = date(key); - } - - // If we were called with a replacer function, then call the replacer to - // obtain a replacement value. - - if (typeof rep === 'function') { - value = rep.call(holder, key, value); - } - - // What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - - // JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - - // If the value is a boolean or null, convert it to a string. Note: - // typeof null does not produce 'null'. The case is included here in - // the remote chance that this gets fixed someday. - - return String(value); - - // If the type is 'object', we might be dealing with an object or an array or - // null. - - case 'object': - - // Due to a specification blunder in ECMAScript, typeof null is 'object', - // so watch out for that case. - - if (!value) { - return 'null'; - } - - // Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - - // Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - - // The value is an array. Stringify every element. Use null as a placeholder - // for non-JSON values. - - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; - } - - // Join all of the elements together, separated with commas, and wrap them in - // brackets. - - v = partial.length === 0 ? '[]' : gap ? - '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : - '[' + partial.join(',') + ']'; - gap = mind; - return v; - } - - // If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } else { - - // Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } - - // Join all of the member texts together, separated with commas, - // and wrap them in braces. - - v = partial.length === 0 ? '{}' : gap ? - '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : - '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - - // If the JSON object does not yet have a stringify method, give it one. - - JSON.stringify = function (value, replacer, space) { - - // The stringify method takes a value and an optional replacer, and an optional - // space parameter, and returns a JSON text. The replacer can be a function - // that can replace values, or an array of strings that will select the keys. - // A default replacer method can be provided. Use of the space parameter can - // produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - - // If the space parameter is a number, make an indent string containing that - // many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - - // If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; - } - - // If there is a replacer, it must be a function or an array. - // Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); - } - - // Make a fake root object containing our value under the key of ''. - // Return the result of stringifying the value. - - return str('', {'': value}); - }; - - // If the JSON object does not yet have a parse method, give it one. - - JSON.parse = function (text, reviver) { - // The parse method takes a text and an optional reviver function, and returns - // a JavaScript value if the text is a valid JSON text. - - var j; - - function walk(holder, key) { - - // The walk method is used to recursively walk the resulting structure so - // that modifications can be made. - - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } - } - } - } - return reviver.call(holder, key, value); - } - - - // Parsing happens in four stages. In the first stage, we replace certain - // Unicode characters with escape sequences. JavaScript handles many characters - // incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); - } - - // In the second stage, we run the text against regular expressions that look - // for non-JSON patterns. We are especially concerned with '()' and 'new' - // because they can cause invocation, and '=' because it can cause mutation. - // But just to be safe, we want to reject all unexpected forms. - - // We split the second stage into 4 regexp operations in order to work around - // crippling inefficiencies in IE's and Safari's regexp engines. First we - // replace the JSON backslash pairs with '@' (a non-JSON character). Second, we - // replace all simple value tokens with ']' characters. Third, we delete all - // open brackets that follow a colon or comma or that begin the text. Finally, - // we look to see that the remaining characters are only whitespace or ']' or - // ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - - // In the third stage we use the eval function to compile the text into a - // JavaScript structure. The '{' operator is subject to a syntactic ambiguity - // in JavaScript: it can begin a block or an object literal. We wrap the text - // in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - - // In the optional fourth stage, we recursively walk the new structure, passing - // each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' ? - walk({'': j}, '') : j; - } - - // If the text is not JSON parseable, then a SyntaxError is thrown. - - throw new SyntaxError('JSON.parse'); - }; - - return JSON; - })(); - - if ('undefined' != typeof window) { - window.expect = module.exports; - } - -})( - this - , 'undefined' != typeof module ? module : {exports: {}} -); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/vendor/mocha.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/vendor/mocha.css deleted file mode 100644 index 3b82ae91..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/vendor/mocha.css +++ /dev/null @@ -1,305 +0,0 @@ -@charset "utf-8"; - -body { - margin:0; -} - -#mocha { - font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif; - margin: 60px 50px; -} - -#mocha ul, -#mocha li { - margin: 0; - padding: 0; -} - -#mocha ul { - list-style: none; -} - -#mocha h1, -#mocha h2 { - margin: 0; -} - -#mocha h1 { - margin-top: 15px; - font-size: 1em; - font-weight: 200; -} - -#mocha h1 a { - text-decoration: none; - color: inherit; -} - -#mocha h1 a:hover { - text-decoration: underline; -} - -#mocha .suite .suite h1 { - margin-top: 0; - font-size: .8em; -} - -#mocha .hidden { - display: none; -} - -#mocha h2 { - font-size: 12px; - font-weight: normal; - cursor: pointer; -} - -#mocha .suite { - margin-left: 15px; -} - -#mocha .test { - margin-left: 15px; - overflow: hidden; -} - -#mocha .test.pending:hover h2::after { - content: '(pending)'; - font-family: arial, sans-serif; -} - -#mocha .test.pass.medium .duration { - background: #c09853; -} - -#mocha .test.pass.slow .duration { - background: #b94a48; -} - -#mocha .test.pass::before { - content: '✓'; - font-size: 12px; - display: block; - float: left; - margin-right: 5px; - color: #00d6b2; -} - -#mocha .test.pass .duration { - font-size: 9px; - margin-left: 5px; - padding: 2px 5px; - color: #fff; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.2); - -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.2); - box-shadow: inset 0 1px 1px rgba(0,0,0,.2); - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - -ms-border-radius: 5px; - -o-border-radius: 5px; - border-radius: 5px; -} - -#mocha .test.pass.fast .duration { - display: none; -} - -#mocha .test.pending { - color: #0b97c4; -} - -#mocha .test.pending::before { - content: '◦'; - color: #0b97c4; -} - -#mocha .test.fail { - color: #c00; -} - -#mocha .test.fail pre { - color: black; -} - -#mocha .test.fail::before { - content: '✖'; - font-size: 12px; - display: block; - float: left; - margin-right: 5px; - color: #c00; -} - -#mocha .test pre.error { - color: #c00; - max-height: 300px; - overflow: auto; -} - -#mocha .test .html-error { - overflow: auto; - color: black; - line-height: 1.5; - display: block; - float: left; - clear: left; - font: 12px/1.5 monaco, monospace; - margin: 5px; - padding: 15px; - border: 1px solid #eee; - max-width: 85%; /*(1)*/ - max-width: calc(100% - 42px); /*(2)*/ - max-height: 300px; - word-wrap: break-word; - border-bottom-color: #ddd; - -webkit-border-radius: 3px; - -webkit-box-shadow: 0 1px 3px #eee; - -moz-border-radius: 3px; - -moz-box-shadow: 0 1px 3px #eee; - border-radius: 3px; -} - -#mocha .test .html-error pre.error { - border: none; - -webkit-border-radius: none; - -webkit-box-shadow: none; - -moz-border-radius: none; - -moz-box-shadow: none; - padding: 0; - margin: 0; - margin-top: 18px; - max-height: none; -} - -/** - * (1): approximate for browsers not supporting calc - * (2): 42 = 2*15 + 2*10 + 2*1 (padding + margin + border) - * ^^ seriously - */ -#mocha .test pre { - display: block; - float: left; - clear: left; - font: 12px/1.5 monaco, monospace; - margin: 5px; - padding: 15px; - border: 1px solid #eee; - max-width: 85%; /*(1)*/ - max-width: calc(100% - 42px); /*(2)*/ - word-wrap: break-word; - border-bottom-color: #ddd; - -webkit-border-radius: 3px; - -webkit-box-shadow: 0 1px 3px #eee; - -moz-border-radius: 3px; - -moz-box-shadow: 0 1px 3px #eee; - border-radius: 3px; -} - -#mocha .test h2 { - position: relative; -} - -#mocha .test a.replay { - position: absolute; - top: 3px; - right: 0; - text-decoration: none; - vertical-align: middle; - display: block; - width: 15px; - height: 15px; - line-height: 15px; - text-align: center; - background: #eee; - font-size: 15px; - -moz-border-radius: 15px; - border-radius: 15px; - -webkit-transition: opacity 200ms; - -moz-transition: opacity 200ms; - transition: opacity 200ms; - opacity: 0.3; - color: #888; -} - -#mocha .test:hover a.replay { - opacity: 1; -} - -#mocha-report.pass .test.fail { - display: none; -} - -#mocha-report.fail .test.pass { - display: none; -} - -#mocha-report.pending .test.pass, -#mocha-report.pending .test.fail { - display: none; -} -#mocha-report.pending .test.pass.pending { - display: block; -} - -#mocha-error { - color: #c00; - font-size: 1.5em; - font-weight: 100; - letter-spacing: 1px; -} - -#mocha-stats { - position: fixed; - top: 15px; - right: 10px; - font-size: 12px; - margin: 0; - color: #888; - z-index: 1; -} - -#mocha-stats .progress { - float: right; - padding-top: 0; -} - -#mocha-stats em { - color: black; -} - -#mocha-stats a { - text-decoration: none; - color: inherit; -} - -#mocha-stats a:hover { - border-bottom: 1px solid #eee; -} - -#mocha-stats li { - display: inline-block; - margin: 0 5px; - list-style: none; - padding-top: 11px; -} - -#mocha-stats canvas { - width: 40px; - height: 40px; -} - -#mocha code .comment { color: #ddd; } -#mocha code .init { color: #2f6fad; } -#mocha code .string { color: #5890ad; } -#mocha code .keyword { color: #8a6343; } -#mocha code .number { color: #2f6fad; } - -@media screen and (max-device-width: 480px) { - #mocha { - margin: 60px 0px; - } - - #mocha #stats { - position: absolute; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/vendor/mocha.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/vendor/mocha.js deleted file mode 100644 index 84c384bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/blueimp-md5/test/vendor/mocha.js +++ /dev/null @@ -1,12417 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1) { - suites.shift(); - } - var suite = Suite.create(suites[0], title); - suite.file = file; - suites.unshift(suite); - return suite; - }; - - /** - * Exclusive test-case. - */ - - context.suite.only = function(title, fn) { - var suite = context.suite(title, fn); - mocha.grep(suite.fullTitle()); - }; - - /** - * Describe a specification or test-case - * with the given `title` and callback `fn` - * acting as a thunk. - */ - - context.test = function(title, fn) { - var test = new Test(title, fn); - test.file = file; - suites[0].addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.test.only = function(title, fn) { - var test = context.test(title, fn); - var reString = '^' + escapeRe(test.fullTitle()) + '$'; - mocha.grep(new RegExp(reString)); - }; - - context.test.skip = common.test.skip; - }); -}; - -},{"../suite":37,"../test":38,"./common":9,"escape-string-regexp":68}],13:[function(require,module,exports){ -/** - * Module dependencies. - */ - -var Suite = require('../suite'); -var Test = require('../test'); -var escapeRe = require('escape-string-regexp'); - -/** - * TDD-style interface: - * - * suite('Array', function() { - * suite('#indexOf()', function() { - * suiteSetup(function() { - * - * }); - * - * test('should return -1 when not present', function() { - * - * }); - * - * test('should return the index when present', function() { - * - * }); - * - * suiteTeardown(function() { - * - * }); - * }); - * }); - * - * @param {Suite} suite Root suite. - */ -module.exports = function(suite) { - var suites = [suite]; - - suite.on('pre-require', function(context, file, mocha) { - var common = require('./common')(suites, context); - - context.setup = common.beforeEach; - context.teardown = common.afterEach; - context.suiteSetup = common.before; - context.suiteTeardown = common.after; - context.run = mocha.options.delay && common.runWithSuite(suite); - - /** - * Describe a "suite" with the given `title` and callback `fn` containing - * nested suites and/or tests. - */ - context.suite = function(title, fn) { - var suite = Suite.create(suites[0], title); - suite.file = file; - suites.unshift(suite); - fn.call(suite); - suites.shift(); - return suite; - }; - - /** - * Pending suite. - */ - context.suite.skip = function(title, fn) { - var suite = Suite.create(suites[0], title); - suite.pending = true; - suites.unshift(suite); - fn.call(suite); - suites.shift(); - }; - - /** - * Exclusive test-case. - */ - context.suite.only = function(title, fn) { - var suite = context.suite(title, fn); - mocha.grep(suite.fullTitle()); - }; - - /** - * Describe a specification or test-case with the given `title` and - * callback `fn` acting as a thunk. - */ - context.test = function(title, fn) { - var suite = suites[0]; - if (suite.pending) { - fn = null; - } - var test = new Test(title, fn); - test.file = file; - suite.addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.test.only = function(title, fn) { - var test = context.test(title, fn); - var reString = '^' + escapeRe(test.fullTitle()) + '$'; - mocha.grep(new RegExp(reString)); - }; - - context.test.skip = common.test.skip; - }); -}; - -},{"../suite":37,"../test":38,"./common":9,"escape-string-regexp":68}],14:[function(require,module,exports){ -(function (process,global,__dirname){ -/*! - * mocha - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var escapeRe = require('escape-string-regexp'); -var path = require('path'); -var reporters = require('./reporters'); -var utils = require('./utils'); - -/** - * Expose `Mocha`. - */ - -exports = module.exports = Mocha; - -/** - * To require local UIs and reporters when running in node. - */ - -if (!process.browser) { - var cwd = process.cwd(); - module.paths.push(cwd, path.join(cwd, 'node_modules')); -} - -/** - * Expose internals. - */ - -exports.utils = utils; -exports.interfaces = require('./interfaces'); -exports.reporters = reporters; -exports.Runnable = require('./runnable'); -exports.Context = require('./context'); -exports.Runner = require('./runner'); -exports.Suite = require('./suite'); -exports.Hook = require('./hook'); -exports.Test = require('./test'); - -/** - * Return image `name` path. - * - * @api private - * @param {string} name - * @return {string} - */ -function image(name) { - return path.join(__dirname, '../images', name + '.png'); -} - -/** - * Set up mocha with `options`. - * - * Options: - * - * - `ui` name "bdd", "tdd", "exports" etc - * - `reporter` reporter instance, defaults to `mocha.reporters.spec` - * - `globals` array of accepted globals - * - `timeout` timeout in milliseconds - * - `bail` bail on the first test failure - * - `slow` milliseconds to wait before considering a test slow - * - `ignoreLeaks` ignore global leaks - * - `fullTrace` display the full stack-trace on failing - * - `grep` string or regexp to filter tests with - * - * @param {Object} options - * @api public - */ -function Mocha(options) { - options = options || {}; - this.files = []; - this.options = options; - if (options.grep) { - this.grep(new RegExp(options.grep)); - } - if (options.fgrep) { - this.grep(options.fgrep); - } - this.suite = new exports.Suite('', new exports.Context()); - this.ui(options.ui); - this.bail(options.bail); - this.reporter(options.reporter, options.reporterOptions); - if (typeof options.timeout !== 'undefined' && options.timeout !== null) { - this.timeout(options.timeout); - } - this.useColors(options.useColors); - if (options.enableTimeouts !== null) { - this.enableTimeouts(options.enableTimeouts); - } - if (options.slow) { - this.slow(options.slow); - } - - this.suite.on('pre-require', function(context) { - exports.afterEach = context.afterEach || context.teardown; - exports.after = context.after || context.suiteTeardown; - exports.beforeEach = context.beforeEach || context.setup; - exports.before = context.before || context.suiteSetup; - exports.describe = context.describe || context.suite; - exports.it = context.it || context.test; - exports.setup = context.setup || context.beforeEach; - exports.suiteSetup = context.suiteSetup || context.before; - exports.suiteTeardown = context.suiteTeardown || context.after; - exports.suite = context.suite || context.describe; - exports.teardown = context.teardown || context.afterEach; - exports.test = context.test || context.it; - exports.run = context.run; - }); -} - -/** - * Enable or disable bailing on the first failure. - * - * @api public - * @param {boolean} [bail] - */ -Mocha.prototype.bail = function(bail) { - if (!arguments.length) { - bail = true; - } - this.suite.bail(bail); - return this; -}; - -/** - * Add test `file`. - * - * @api public - * @param {string} file - */ -Mocha.prototype.addFile = function(file) { - this.files.push(file); - return this; -}; - -/** - * Set reporter to `reporter`, defaults to "spec". - * - * @param {String|Function} reporter name or constructor - * @param {Object} reporterOptions optional options - * @api public - * @param {string|Function} reporter name or constructor - * @param {Object} reporterOptions optional options - */ -Mocha.prototype.reporter = function(reporter, reporterOptions) { - if (typeof reporter === 'function') { - this._reporter = reporter; - } else { - reporter = reporter || 'spec'; - var _reporter; - // Try to load a built-in reporter. - if (reporters[reporter]) { - _reporter = reporters[reporter]; - } - // Try to load reporters from process.cwd() and node_modules - if (!_reporter) { - try { - _reporter = require(reporter); - } catch (err) { - err.message.indexOf('Cannot find module') !== -1 - ? console.warn('"' + reporter + '" reporter not found') - : console.warn('"' + reporter + '" reporter blew up with error:\n' + err.stack); - } - } - if (!_reporter && reporter === 'teamcity') { - console.warn('The Teamcity reporter was moved to a package named ' - + 'mocha-teamcity-reporter ' - + '(https://npmjs.org/package/mocha-teamcity-reporter).'); - } - if (!_reporter) { - throw new Error('invalid reporter "' + reporter + '"'); - } - this._reporter = _reporter; - } - this.options.reporterOptions = reporterOptions; - return this; -}; - -/** - * Set test UI `name`, defaults to "bdd". - * - * @api public - * @param {string} bdd - */ -Mocha.prototype.ui = function(name) { - name = name || 'bdd'; - this._ui = exports.interfaces[name]; - if (!this._ui) { - try { - this._ui = require(name); - } catch (err) { - throw new Error('invalid interface "' + name + '"'); - } - } - this._ui = this._ui(this.suite); - return this; -}; - -/** - * Load registered files. - * - * @api private - */ -Mocha.prototype.loadFiles = function(fn) { - var self = this; - var suite = this.suite; - var pending = this.files.length; - this.files.forEach(function(file) { - file = path.resolve(file); - suite.emit('pre-require', global, file, self); - suite.emit('require', require(file), file, self); - suite.emit('post-require', global, file, self); - --pending || (fn && fn()); - }); -}; - -/** - * Enable growl support. - * - * @api private - */ -Mocha.prototype._growl = function(runner, reporter) { - var notify = require('growl'); - - runner.on('end', function() { - var stats = reporter.stats; - if (stats.failures) { - var msg = stats.failures + ' of ' + runner.total + ' tests failed'; - notify(msg, { name: 'mocha', title: 'Failed', image: image('error') }); - } else { - notify(stats.passes + ' tests passed in ' + stats.duration + 'ms', { - name: 'mocha', - title: 'Passed', - image: image('ok') - }); - } - }); -}; - -/** - * Add regexp to grep, if `re` is a string it is escaped. - * - * @param {RegExp|String} re - * @return {Mocha} - * @api public - * @param {RegExp|string} re - * @return {Mocha} - */ -Mocha.prototype.grep = function(re) { - this.options.grep = typeof re === 'string' ? new RegExp(escapeRe(re)) : re; - return this; -}; - -/** - * Invert `.grep()` matches. - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.invert = function() { - this.options.invert = true; - return this; -}; - -/** - * Ignore global leaks. - * - * @param {Boolean} ignore - * @return {Mocha} - * @api public - * @param {boolean} ignore - * @return {Mocha} - */ -Mocha.prototype.ignoreLeaks = function(ignore) { - this.options.ignoreLeaks = Boolean(ignore); - return this; -}; - -/** - * Enable global leak checking. - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.checkLeaks = function() { - this.options.ignoreLeaks = false; - return this; -}; - -/** - * Display long stack-trace on failing - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.fullTrace = function() { - this.options.fullStackTrace = true; - return this; -}; - -/** - * Enable growl support. - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.growl = function() { - this.options.growl = true; - return this; -}; - -/** - * Ignore `globals` array or string. - * - * @param {Array|String} globals - * @return {Mocha} - * @api public - * @param {Array|string} globals - * @return {Mocha} - */ -Mocha.prototype.globals = function(globals) { - this.options.globals = (this.options.globals || []).concat(globals); - return this; -}; - -/** - * Emit color output. - * - * @param {Boolean} colors - * @return {Mocha} - * @api public - * @param {boolean} colors - * @return {Mocha} - */ -Mocha.prototype.useColors = function(colors) { - if (colors !== undefined) { - this.options.useColors = colors; - } - return this; -}; - -/** - * Use inline diffs rather than +/-. - * - * @param {Boolean} inlineDiffs - * @return {Mocha} - * @api public - * @param {boolean} inlineDiffs - * @return {Mocha} - */ -Mocha.prototype.useInlineDiffs = function(inlineDiffs) { - this.options.useInlineDiffs = inlineDiffs !== undefined && inlineDiffs; - return this; -}; - -/** - * Set the timeout in milliseconds. - * - * @param {Number} timeout - * @return {Mocha} - * @api public - * @param {number} timeout - * @return {Mocha} - */ -Mocha.prototype.timeout = function(timeout) { - this.suite.timeout(timeout); - return this; -}; - -/** - * Set slowness threshold in milliseconds. - * - * @param {Number} slow - * @return {Mocha} - * @api public - * @param {number} slow - * @return {Mocha} - */ -Mocha.prototype.slow = function(slow) { - this.suite.slow(slow); - return this; -}; - -/** - * Enable timeouts. - * - * @param {Boolean} enabled - * @return {Mocha} - * @api public - * @param {boolean} enabled - * @return {Mocha} - */ -Mocha.prototype.enableTimeouts = function(enabled) { - this.suite.enableTimeouts(arguments.length && enabled !== undefined ? enabled : true); - return this; -}; - -/** - * Makes all tests async (accepting a callback) - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.asyncOnly = function() { - this.options.asyncOnly = true; - return this; -}; - -/** - * Disable syntax highlighting (in browser). - * - * @api public - */ -Mocha.prototype.noHighlighting = function() { - this.options.noHighlighting = true; - return this; -}; - -/** - * Enable uncaught errors to propagate (in browser). - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.allowUncaught = function() { - this.options.allowUncaught = true; - return this; -}; - -/** - * Delay root suite execution. - * @returns {Mocha} - */ -Mocha.prototype.delay = function delay() { - this.options.delay = true; - return this; -}; - -/** - * Run tests and invoke `fn()` when complete. - * - * @api public - * @param {Function} fn - * @return {Runner} - */ -Mocha.prototype.run = function(fn) { - if (this.files.length) { - this.loadFiles(); - } - var suite = this.suite; - var options = this.options; - options.files = this.files; - var runner = new exports.Runner(suite, options.delay); - var reporter = new this._reporter(runner, options); - runner.ignoreLeaks = options.ignoreLeaks !== false; - runner.fullStackTrace = options.fullStackTrace; - runner.asyncOnly = options.asyncOnly; - runner.allowUncaught = options.allowUncaught; - if (options.grep) { - runner.grep(options.grep, options.invert); - } - if (options.globals) { - runner.globals(options.globals); - } - if (options.growl) { - this._growl(runner, reporter); - } - if (options.useColors !== undefined) { - exports.reporters.Base.useColors = options.useColors; - } - exports.reporters.Base.inlineDiffs = options.useInlineDiffs; - - function done(failures) { - if (reporter.done) { - reporter.done(failures, fn); - } else { - fn && fn(failures); - } - } - - return runner.run(done); -}; - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},"/lib") -},{"./context":6,"./hook":7,"./interfaces":11,"./reporters":22,"./runnable":35,"./runner":36,"./suite":37,"./test":38,"./utils":39,"_process":51,"escape-string-regexp":68,"growl":69,"path":41}],15:[function(require,module,exports){ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @api public - * @param {string|number} val - * @param {Object} options - * @return {string|number} - */ -module.exports = function(val, options) { - options = options || {}; - if (typeof val === 'string') { - return parse(val); - } - // https://github.com/mochajs/mocha/pull/1035 - return options['long'] ? longFormat(val) : shortFormat(val); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @api private - * @param {string} str - * @return {number} - */ -function parse(str) { - var match = (/^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i).exec(str); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 's': - return n * s; - case 'ms': - return n; - default: - // No default case - } -} - -/** - * Short format for `ms`. - * - * @api private - * @param {number} ms - * @return {string} - */ -function shortFormat(ms) { - if (ms >= d) { - return Math.round(ms / d) + 'd'; - } - if (ms >= h) { - return Math.round(ms / h) + 'h'; - } - if (ms >= m) { - return Math.round(ms / m) + 'm'; - } - if (ms >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @api private - * @param {number} ms - * @return {string} - */ -function longFormat(ms) { - return plural(ms, d, 'day') - || plural(ms, h, 'hour') - || plural(ms, m, 'minute') - || plural(ms, s, 'second') - || ms + ' ms'; -} - -/** - * Pluralization helper. - * - * @api private - * @param {number} ms - * @param {number} n - * @param {string} name - */ -function plural(ms, n, name) { - if (ms < n) { - return; - } - if (ms < n * 1.5) { - return Math.floor(ms / n) + ' ' + name; - } - return Math.ceil(ms / n) + ' ' + name + 's'; -} - -},{}],16:[function(require,module,exports){ - -/** - * Expose `Pending`. - */ - -module.exports = Pending; - -/** - * Initialize a new `Pending` error with the given message. - * - * @param {string} message - */ -function Pending(message) { - this.message = message; -} - -},{}],17:[function(require,module,exports){ -(function (process,global){ -/** - * Module dependencies. - */ - -var tty = require('tty'); -var diff = require('diff'); -var ms = require('../ms'); -var utils = require('../utils'); -var supportsColor = process.browser ? null : require('supports-color'); - -/** - * Expose `Base`. - */ - -exports = module.exports = Base; - -/** - * Save timer references to avoid Sinon interfering. - * See: https://github.com/mochajs/mocha/issues/237 - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Check if both stdio streams are associated with a tty. - */ - -var isatty = tty.isatty(1) && tty.isatty(2); - -/** - * Enable coloring by default, except in the browser interface. - */ - -exports.useColors = !process.browser && (supportsColor || (process.env.MOCHA_COLORS !== undefined)); - -/** - * Inline diffs instead of +/- - */ - -exports.inlineDiffs = false; - -/** - * Default color map. - */ - -exports.colors = { - pass: 90, - fail: 31, - 'bright pass': 92, - 'bright fail': 91, - 'bright yellow': 93, - pending: 36, - suite: 0, - 'error title': 0, - 'error message': 31, - 'error stack': 90, - checkmark: 32, - fast: 90, - medium: 33, - slow: 31, - green: 32, - light: 90, - 'diff gutter': 90, - 'diff added': 32, - 'diff removed': 31 -}; - -/** - * Default symbol map. - */ - -exports.symbols = { - ok: '✓', - err: '✖', - dot: '․' -}; - -// With node.js on Windows: use symbols available in terminal default fonts -if (process.platform === 'win32') { - exports.symbols.ok = '\u221A'; - exports.symbols.err = '\u00D7'; - exports.symbols.dot = '.'; -} - -/** - * Color `str` with the given `type`, - * allowing colors to be disabled, - * as well as user-defined color - * schemes. - * - * @param {string} type - * @param {string} str - * @return {string} - * @api private - */ -var color = exports.color = function(type, str) { - if (!exports.useColors) { - return String(str); - } - return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m'; -}; - -/** - * Expose term window size, with some defaults for when stderr is not a tty. - */ - -exports.window = { - width: 75 -}; - -if (isatty) { - exports.window.width = process.stdout.getWindowSize - ? process.stdout.getWindowSize(1)[0] - : tty.getWindowSize()[1]; -} - -/** - * Expose some basic cursor interactions that are common among reporters. - */ - -exports.cursor = { - hide: function() { - isatty && process.stdout.write('\u001b[?25l'); - }, - - show: function() { - isatty && process.stdout.write('\u001b[?25h'); - }, - - deleteLine: function() { - isatty && process.stdout.write('\u001b[2K'); - }, - - beginningOfLine: function() { - isatty && process.stdout.write('\u001b[0G'); - }, - - CR: function() { - if (isatty) { - exports.cursor.deleteLine(); - exports.cursor.beginningOfLine(); - } else { - process.stdout.write('\r'); - } - } -}; - -/** - * Outut the given `failures` as a list. - * - * @param {Array} failures - * @api public - */ - -exports.list = function(failures) { - console.log(); - failures.forEach(function(test, i) { - // format - var fmt = color('error title', ' %s) %s:\n') - + color('error message', ' %s') - + color('error stack', '\n%s\n'); - - // msg - var msg; - var err = test.err; - var message; - if (err.message) { - message = err.message; - } else if (typeof err.inspect === 'function') { - message = err.inspect() + ''; - } else { - message = ''; - } - var stack = err.stack || message; - var index = stack.indexOf(message); - var actual = err.actual; - var expected = err.expected; - var escape = true; - - if (index === -1) { - msg = message; - } else { - index += message.length; - msg = stack.slice(0, index); - // remove msg from stack - stack = stack.slice(index + 1); - } - - // uncaught - if (err.uncaught) { - msg = 'Uncaught ' + msg; - } - // explicitly show diff - if (err.showDiff !== false && sameType(actual, expected) && expected !== undefined) { - escape = false; - if (!(utils.isString(actual) && utils.isString(expected))) { - err.actual = actual = utils.stringify(actual); - err.expected = expected = utils.stringify(expected); - } - - fmt = color('error title', ' %s) %s:\n%s') + color('error stack', '\n%s\n'); - var match = message.match(/^([^:]+): expected/); - msg = '\n ' + color('error message', match ? match[1] : msg); - - if (exports.inlineDiffs) { - msg += inlineDiff(err, escape); - } else { - msg += unifiedDiff(err, escape); - } - } - - // indent stack trace - stack = stack.replace(/^/gm, ' '); - - console.log(fmt, (i + 1), test.fullTitle(), msg, stack); - }); -}; - -/** - * Initialize a new `Base` reporter. - * - * All other reporters generally - * inherit from this reporter, providing - * stats such as test duration, number - * of tests passed / failed etc. - * - * @param {Runner} runner - * @api public - */ - -function Base(runner) { - var stats = this.stats = { suites: 0, tests: 0, passes: 0, pending: 0, failures: 0 }; - var failures = this.failures = []; - - if (!runner) { - return; - } - this.runner = runner; - - runner.stats = stats; - - runner.on('start', function() { - stats.start = new Date(); - }); - - runner.on('suite', function(suite) { - stats.suites = stats.suites || 0; - suite.root || stats.suites++; - }); - - runner.on('test end', function() { - stats.tests = stats.tests || 0; - stats.tests++; - }); - - runner.on('pass', function(test) { - stats.passes = stats.passes || 0; - - if (test.duration > test.slow()) { - test.speed = 'slow'; - } else if (test.duration > test.slow() / 2) { - test.speed = 'medium'; - } else { - test.speed = 'fast'; - } - - stats.passes++; - }); - - runner.on('fail', function(test, err) { - stats.failures = stats.failures || 0; - stats.failures++; - test.err = err; - failures.push(test); - }); - - runner.on('end', function() { - stats.end = new Date(); - stats.duration = new Date() - stats.start; - }); - - runner.on('pending', function() { - stats.pending++; - }); -} - -/** - * Output common epilogue used by many of - * the bundled reporters. - * - * @api public - */ -Base.prototype.epilogue = function() { - var stats = this.stats; - var fmt; - - console.log(); - - // passes - fmt = color('bright pass', ' ') - + color('green', ' %d passing') - + color('light', ' (%s)'); - - console.log(fmt, - stats.passes || 0, - ms(stats.duration)); - - // pending - if (stats.pending) { - fmt = color('pending', ' ') - + color('pending', ' %d pending'); - - console.log(fmt, stats.pending); - } - - // failures - if (stats.failures) { - fmt = color('fail', ' %d failing'); - - console.log(fmt, stats.failures); - - Base.list(this.failures); - console.log(); - } - - console.log(); -}; - -/** - * Pad the given `str` to `len`. - * - * @api private - * @param {string} str - * @param {string} len - * @return {string} - */ -function pad(str, len) { - str = String(str); - return Array(len - str.length + 1).join(' ') + str; -} - -/** - * Returns an inline diff between 2 strings with coloured ANSI output - * - * @api private - * @param {Error} err with actual/expected - * @param {boolean} escape - * @return {string} Diff - */ -function inlineDiff(err, escape) { - var msg = errorDiff(err, 'WordsWithSpace', escape); - - // linenos - var lines = msg.split('\n'); - if (lines.length > 4) { - var width = String(lines.length).length; - msg = lines.map(function(str, i) { - return pad(++i, width) + ' |' + ' ' + str; - }).join('\n'); - } - - // legend - msg = '\n' - + color('diff removed', 'actual') - + ' ' - + color('diff added', 'expected') - + '\n\n' - + msg - + '\n'; - - // indent - msg = msg.replace(/^/gm, ' '); - return msg; -} - -/** - * Returns a unified diff between two strings. - * - * @api private - * @param {Error} err with actual/expected - * @param {boolean} escape - * @return {string} The diff. - */ -function unifiedDiff(err, escape) { - var indent = ' '; - function cleanUp(line) { - if (escape) { - line = escapeInvisibles(line); - } - if (line[0] === '+') { - return indent + colorLines('diff added', line); - } - if (line[0] === '-') { - return indent + colorLines('diff removed', line); - } - if (line.match(/\@\@/)) { - return null; - } - if (line.match(/\\ No newline/)) { - return null; - } - return indent + line; - } - function notBlank(line) { - return typeof line !== 'undefined' && line !== null; - } - var msg = diff.createPatch('string', err.actual, err.expected); - var lines = msg.split('\n').splice(4); - return '\n ' - + colorLines('diff added', '+ expected') + ' ' - + colorLines('diff removed', '- actual') - + '\n\n' - + lines.map(cleanUp).filter(notBlank).join('\n'); -} - -/** - * Return a character diff for `err`. - * - * @api private - * @param {Error} err - * @param {string} type - * @param {boolean} escape - * @return {string} - */ -function errorDiff(err, type, escape) { - var actual = escape ? escapeInvisibles(err.actual) : err.actual; - var expected = escape ? escapeInvisibles(err.expected) : err.expected; - return diff['diff' + type](actual, expected).map(function(str) { - if (str.added) { - return colorLines('diff added', str.value); - } - if (str.removed) { - return colorLines('diff removed', str.value); - } - return str.value; - }).join(''); -} - -/** - * Returns a string with all invisible characters in plain text - * - * @api private - * @param {string} line - * @return {string} - */ -function escapeInvisibles(line) { - return line.replace(/\t/g, '') - .replace(/\r/g, '') - .replace(/\n/g, '\n'); -} - -/** - * Color lines for `str`, using the color `name`. - * - * @api private - * @param {string} name - * @param {string} str - * @return {string} - */ -function colorLines(name, str) { - return str.split('\n').map(function(str) { - return color(name, str); - }).join('\n'); -} - -/** - * Object#toString reference. - */ -var objToString = Object.prototype.toString; - -/** - * Check that a / b have the same type. - * - * @api private - * @param {Object} a - * @param {Object} b - * @return {boolean} - */ -function sameType(a, b) { - return objToString.call(a) === objToString.call(b); -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../ms":15,"../utils":39,"_process":51,"diff":67,"supports-color":41,"tty":5}],18:[function(require,module,exports){ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); - -/** - * Expose `Doc`. - */ - -exports = module.exports = Doc; - -/** - * Initialize a new `Doc` reporter. - * - * @param {Runner} runner - * @api public - */ -function Doc(runner) { - Base.call(this, runner); - - var indents = 2; - - function indent() { - return Array(indents).join(' '); - } - - runner.on('suite', function(suite) { - if (suite.root) { - return; - } - ++indents; - console.log('%s
', indent()); - ++indents; - console.log('%s

%s

', indent(), utils.escape(suite.title)); - console.log('%s
', indent()); - }); - - runner.on('suite end', function(suite) { - if (suite.root) { - return; - } - console.log('%s
', indent()); - --indents; - console.log('%s
', indent()); - --indents; - }); - - runner.on('pass', function(test) { - console.log('%s
%s
', indent(), utils.escape(test.title)); - var code = utils.escape(utils.clean(test.fn.toString())); - console.log('%s
%s
', indent(), code); - }); - - runner.on('fail', function(test, err) { - console.log('%s
%s
', indent(), utils.escape(test.title)); - var code = utils.escape(utils.clean(test.fn.toString())); - console.log('%s
%s
', indent(), code); - console.log('%s
%s
', indent(), utils.escape(err)); - }); -} - -},{"../utils":39,"./base":17}],19:[function(require,module,exports){ -(function (process){ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; - -/** - * Expose `Dot`. - */ - -exports = module.exports = Dot; - -/** - * Initialize a new `Dot` matrix test reporter. - * - * @api public - * @param {Runner} runner - */ -function Dot(runner) { - Base.call(this, runner); - - var self = this; - var width = Base.window.width * .75 | 0; - var n = -1; - - runner.on('start', function() { - process.stdout.write('\n'); - }); - - runner.on('pending', function() { - if (++n % width === 0) { - process.stdout.write('\n '); - } - process.stdout.write(color('pending', Base.symbols.dot)); - }); - - runner.on('pass', function(test) { - if (++n % width === 0) { - process.stdout.write('\n '); - } - if (test.speed === 'slow') { - process.stdout.write(color('bright yellow', Base.symbols.dot)); - } else { - process.stdout.write(color(test.speed, Base.symbols.dot)); - } - }); - - runner.on('fail', function() { - if (++n % width === 0) { - process.stdout.write('\n '); - } - process.stdout.write(color('fail', Base.symbols.dot)); - }); - - runner.on('end', function() { - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Dot, Base); - -}).call(this,require('_process')) -},{"../utils":39,"./base":17,"_process":51}],20:[function(require,module,exports){ -(function (process,__dirname){ -/** - * Module dependencies. - */ - -var JSONCov = require('./json-cov'); -var readFileSync = require('fs').readFileSync; -var join = require('path').join; - -/** - * Expose `HTMLCov`. - */ - -exports = module.exports = HTMLCov; - -/** - * Initialize a new `JsCoverage` reporter. - * - * @api public - * @param {Runner} runner - */ -function HTMLCov(runner) { - var jade = require('jade'); - var file = join(__dirname, '/templates/coverage.jade'); - var str = readFileSync(file, 'utf8'); - var fn = jade.compile(str, { filename: file }); - var self = this; - - JSONCov.call(this, runner, false); - - runner.on('end', function() { - process.stdout.write(fn({ - cov: self.cov, - coverageClass: coverageClass - })); - }); -} - -/** - * Return coverage class for a given coverage percentage. - * - * @api private - * @param {number} coveragePctg - * @return {string} - */ -function coverageClass(coveragePctg) { - if (coveragePctg >= 75) { - return 'high'; - } - if (coveragePctg >= 50) { - return 'medium'; - } - if (coveragePctg >= 25) { - return 'low'; - } - return 'terrible'; -} - -}).call(this,require('_process'),"/lib/reporters") -},{"./json-cov":23,"_process":51,"fs":41,"jade":41,"path":41}],21:[function(require,module,exports){ -(function (global){ -/* eslint-env browser */ - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); -var Progress = require('../browser/progress'); -var escapeRe = require('escape-string-regexp'); -var escape = utils.escape; - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Expose `HTML`. - */ - -exports = module.exports = HTML; - -/** - * Stats template. - */ - -var statsTemplate = ''; - -/** - * Initialize a new `HTML` reporter. - * - * @api public - * @param {Runner} runner - */ -function HTML(runner) { - Base.call(this, runner); - - var self = this; - var stats = this.stats; - var stat = fragment(statsTemplate); - var items = stat.getElementsByTagName('li'); - var passes = items[1].getElementsByTagName('em')[0]; - var passesLink = items[1].getElementsByTagName('a')[0]; - var failures = items[2].getElementsByTagName('em')[0]; - var failuresLink = items[2].getElementsByTagName('a')[0]; - var duration = items[3].getElementsByTagName('em')[0]; - var canvas = stat.getElementsByTagName('canvas')[0]; - var report = fragment('
    '); - var stack = [report]; - var progress; - var ctx; - var root = document.getElementById('mocha'); - - if (canvas.getContext) { - var ratio = window.devicePixelRatio || 1; - canvas.style.width = canvas.width; - canvas.style.height = canvas.height; - canvas.width *= ratio; - canvas.height *= ratio; - ctx = canvas.getContext('2d'); - ctx.scale(ratio, ratio); - progress = new Progress(); - } - - if (!root) { - return error('#mocha div missing, add it to your document'); - } - - // pass toggle - on(passesLink, 'click', function() { - unhide(); - var name = (/pass/).test(report.className) ? '' : ' pass'; - report.className = report.className.replace(/fail|pass/g, '') + name; - if (report.className.trim()) { - hideSuitesWithout('test pass'); - } - }); - - // failure toggle - on(failuresLink, 'click', function() { - unhide(); - var name = (/fail/).test(report.className) ? '' : ' fail'; - report.className = report.className.replace(/fail|pass/g, '') + name; - if (report.className.trim()) { - hideSuitesWithout('test fail'); - } - }); - - root.appendChild(stat); - root.appendChild(report); - - if (progress) { - progress.size(40); - } - - runner.on('suite', function(suite) { - if (suite.root) { - return; - } - - // suite - var url = self.suiteURL(suite); - var el = fragment('
  • %s

  • ', url, escape(suite.title)); - - // container - stack[0].appendChild(el); - stack.unshift(document.createElement('ul')); - el.appendChild(stack[0]); - }); - - runner.on('suite end', function(suite) { - if (suite.root) { - return; - } - stack.shift(); - }); - - runner.on('fail', function(test) { - if (test.type === 'hook') { - runner.emit('test end', test); - } - }); - - runner.on('test end', function(test) { - // TODO: add to stats - var percent = stats.tests / this.total * 100 | 0; - if (progress) { - progress.update(percent).draw(ctx); - } - - // update stats - var ms = new Date() - stats.start; - text(passes, stats.passes); - text(failures, stats.failures); - text(duration, (ms / 1000).toFixed(2)); - - // test - var el; - if (test.state === 'passed') { - var url = self.testURL(test); - el = fragment('
  • %e%ems

  • ', test.speed, test.title, test.duration, url); - } else if (test.pending) { - el = fragment('
  • %e

  • ', test.title); - } else { - el = fragment('
  • %e

  • ', test.title, self.testURL(test)); - var stackString; // Note: Includes leading newline - var message = test.err.toString(); - - // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we - // check for the result of the stringifying. - if (message === '[object Error]') { - message = test.err.message; - } - - if (test.err.stack) { - var indexOfMessage = test.err.stack.indexOf(test.err.message); - if (indexOfMessage === -1) { - stackString = test.err.stack; - } else { - stackString = test.err.stack.substr(test.err.message.length + indexOfMessage); - } - } else if (test.err.sourceURL && test.err.line !== undefined) { - // Safari doesn't give you a stack. Let's at least provide a source line. - stackString = '\n(' + test.err.sourceURL + ':' + test.err.line + ')'; - } - - stackString = stackString || ''; - - if (test.err.htmlMessage && stackString) { - el.appendChild(fragment('
    %s\n
    %e
    ', test.err.htmlMessage, stackString)); - } else if (test.err.htmlMessage) { - el.appendChild(fragment('
    %s
    ', test.err.htmlMessage)); - } else { - el.appendChild(fragment('
    %e%e
    ', message, stackString)); - } - } - - // toggle code - // TODO: defer - if (!test.pending) { - var h2 = el.getElementsByTagName('h2')[0]; - - on(h2, 'click', function() { - pre.style.display = pre.style.display === 'none' ? 'block' : 'none'; - }); - - var pre = fragment('
    %e
    ', utils.clean(test.fn.toString())); - el.appendChild(pre); - pre.style.display = 'none'; - } - - // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack. - if (stack[0]) { - stack[0].appendChild(el); - } - }); -} - -/** - * Makes a URL, preserving querystring ("search") parameters. - * - * @param {string} s - * @return {string} A new URL. - */ -function makeUrl(s) { - var search = window.location.search; - - // Remove previous grep query parameter if present - if (search) { - search = search.replace(/[?&]grep=[^&\s]*/g, '').replace(/^&/, '?'); - } - - return window.location.pathname + (search ? search + '&' : '?') + 'grep=' + encodeURIComponent(escapeRe(s)); -} - -/** - * Provide suite URL. - * - * @param {Object} [suite] - */ -HTML.prototype.suiteURL = function(suite) { - return makeUrl(suite.fullTitle()); -}; - -/** - * Provide test URL. - * - * @param {Object} [test] - */ -HTML.prototype.testURL = function(test) { - return makeUrl(test.fullTitle()); -}; - -/** - * Display error `msg`. - * - * @param {string} msg - */ -function error(msg) { - document.body.appendChild(fragment('
    %s
    ', msg)); -} - -/** - * Return a DOM fragment from `html`. - * - * @param {string} html - */ -function fragment(html) { - var args = arguments; - var div = document.createElement('div'); - var i = 1; - - div.innerHTML = html.replace(/%([se])/g, function(_, type) { - switch (type) { - case 's': return String(args[i++]); - case 'e': return escape(args[i++]); - // no default - } - }); - - return div.firstChild; -} - -/** - * Check for suites that do not have elements - * with `classname`, and hide them. - * - * @param {text} classname - */ -function hideSuitesWithout(classname) { - var suites = document.getElementsByClassName('suite'); - for (var i = 0; i < suites.length; i++) { - var els = suites[i].getElementsByClassName(classname); - if (!els.length) { - suites[i].className += ' hidden'; - } - } -} - -/** - * Unhide .hidden suites. - */ -function unhide() { - var els = document.getElementsByClassName('suite hidden'); - for (var i = 0; i < els.length; ++i) { - els[i].className = els[i].className.replace('suite hidden', 'suite'); - } -} - -/** - * Set an element's text contents. - * - * @param {HTMLElement} el - * @param {string} contents - */ -function text(el, contents) { - if (el.textContent) { - el.textContent = contents; - } else { - el.innerText = contents; - } -} - -/** - * Listen on `event` with callback `fn`. - */ -function on(el, event, fn) { - if (el.addEventListener) { - el.addEventListener(event, fn, false); - } else { - el.attachEvent('on' + event, fn); - } -} - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../browser/progress":4,"../utils":39,"./base":17,"escape-string-regexp":68}],22:[function(require,module,exports){ -// Alias exports to a their normalized format Mocha#reporter to prevent a need -// for dynamic (try/catch) requires, which Browserify doesn't handle. -exports.Base = exports.base = require('./base'); -exports.Dot = exports.dot = require('./dot'); -exports.Doc = exports.doc = require('./doc'); -exports.TAP = exports.tap = require('./tap'); -exports.JSON = exports.json = require('./json'); -exports.HTML = exports.html = require('./html'); -exports.List = exports.list = require('./list'); -exports.Min = exports.min = require('./min'); -exports.Spec = exports.spec = require('./spec'); -exports.Nyan = exports.nyan = require('./nyan'); -exports.XUnit = exports.xunit = require('./xunit'); -exports.Markdown = exports.markdown = require('./markdown'); -exports.Progress = exports.progress = require('./progress'); -exports.Landing = exports.landing = require('./landing'); -exports.JSONCov = exports['json-cov'] = require('./json-cov'); -exports.HTMLCov = exports['html-cov'] = require('./html-cov'); -exports.JSONStream = exports['json-stream'] = require('./json-stream'); - -},{"./base":17,"./doc":18,"./dot":19,"./html":21,"./html-cov":20,"./json":25,"./json-cov":23,"./json-stream":24,"./landing":26,"./list":27,"./markdown":28,"./min":29,"./nyan":30,"./progress":31,"./spec":32,"./tap":33,"./xunit":34}],23:[function(require,module,exports){ -(function (process,global){ -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `JSONCov`. - */ - -exports = module.exports = JSONCov; - -/** - * Initialize a new `JsCoverage` reporter. - * - * @api public - * @param {Runner} runner - * @param {boolean} output - */ -function JSONCov(runner, output) { - Base.call(this, runner); - - output = arguments.length === 1 || output; - var self = this; - var tests = []; - var failures = []; - var passes = []; - - runner.on('test end', function(test) { - tests.push(test); - }); - - runner.on('pass', function(test) { - passes.push(test); - }); - - runner.on('fail', function(test) { - failures.push(test); - }); - - runner.on('end', function() { - var cov = global._$jscoverage || {}; - var result = self.cov = map(cov); - result.stats = self.stats; - result.tests = tests.map(clean); - result.failures = failures.map(clean); - result.passes = passes.map(clean); - if (!output) { - return; - } - process.stdout.write(JSON.stringify(result, null, 2)); - }); -} - -/** - * Map jscoverage data to a JSON structure - * suitable for reporting. - * - * @api private - * @param {Object} cov - * @return {Object} - */ - -function map(cov) { - var ret = { - instrumentation: 'node-jscoverage', - sloc: 0, - hits: 0, - misses: 0, - coverage: 0, - files: [] - }; - - for (var filename in cov) { - if (Object.prototype.hasOwnProperty.call(cov, filename)) { - var data = coverage(filename, cov[filename]); - ret.files.push(data); - ret.hits += data.hits; - ret.misses += data.misses; - ret.sloc += data.sloc; - } - } - - ret.files.sort(function(a, b) { - return a.filename.localeCompare(b.filename); - }); - - if (ret.sloc > 0) { - ret.coverage = (ret.hits / ret.sloc) * 100; - } - - return ret; -} - -/** - * Map jscoverage data for a single source file - * to a JSON structure suitable for reporting. - * - * @api private - * @param {string} filename name of the source file - * @param {Object} data jscoverage coverage data - * @return {Object} - */ -function coverage(filename, data) { - var ret = { - filename: filename, - coverage: 0, - hits: 0, - misses: 0, - sloc: 0, - source: {} - }; - - data.source.forEach(function(line, num) { - num++; - - if (data[num] === 0) { - ret.misses++; - ret.sloc++; - } else if (data[num] !== undefined) { - ret.hits++; - ret.sloc++; - } - - ret.source[num] = { - source: line, - coverage: data[num] === undefined ? '' : data[num] - }; - }); - - ret.coverage = ret.hits / ret.sloc * 100; - - return ret; -} - -/** - * Return a plain-object representation of `test` - * free of cyclic properties etc. - * - * @api private - * @param {Object} test - * @return {Object} - */ -function clean(test) { - return { - duration: test.duration, - fullTitle: test.fullTitle(), - title: test.title - }; -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./base":17,"_process":51}],24:[function(require,module,exports){ -(function (process){ -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `List`. - */ - -exports = module.exports = List; - -/** - * Initialize a new `List` test reporter. - * - * @api public - * @param {Runner} runner - */ -function List(runner) { - Base.call(this, runner); - - var self = this; - var total = runner.total; - - runner.on('start', function() { - console.log(JSON.stringify(['start', { total: total }])); - }); - - runner.on('pass', function(test) { - console.log(JSON.stringify(['pass', clean(test)])); - }); - - runner.on('fail', function(test, err) { - test = clean(test); - test.err = err.message; - test.stack = err.stack || null; - console.log(JSON.stringify(['fail', test])); - }); - - runner.on('end', function() { - process.stdout.write(JSON.stringify(['end', self.stats])); - }); -} - -/** - * Return a plain-object representation of `test` - * free of cyclic properties etc. - * - * @api private - * @param {Object} test - * @return {Object} - */ -function clean(test) { - return { - title: test.title, - fullTitle: test.fullTitle(), - duration: test.duration - }; -} - -}).call(this,require('_process')) -},{"./base":17,"_process":51}],25:[function(require,module,exports){ -(function (process){ -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `JSON`. - */ - -exports = module.exports = JSONReporter; - -/** - * Initialize a new `JSON` reporter. - * - * @api public - * @param {Runner} runner - */ -function JSONReporter(runner) { - Base.call(this, runner); - - var self = this; - var tests = []; - var pending = []; - var failures = []; - var passes = []; - - runner.on('test end', function(test) { - tests.push(test); - }); - - runner.on('pass', function(test) { - passes.push(test); - }); - - runner.on('fail', function(test) { - failures.push(test); - }); - - runner.on('pending', function(test) { - pending.push(test); - }); - - runner.on('end', function() { - var obj = { - stats: self.stats, - tests: tests.map(clean), - pending: pending.map(clean), - failures: failures.map(clean), - passes: passes.map(clean) - }; - - runner.testResults = obj; - - process.stdout.write(JSON.stringify(obj, null, 2)); - }); -} - -/** - * Return a plain-object representation of `test` - * free of cyclic properties etc. - * - * @api private - * @param {Object} test - * @return {Object} - */ -function clean(test) { - return { - title: test.title, - fullTitle: test.fullTitle(), - duration: test.duration, - err: errorJSON(test.err || {}) - }; -} - -/** - * Transform `error` into a JSON object. - * - * @api private - * @param {Error} err - * @return {Object} - */ -function errorJSON(err) { - var res = {}; - Object.getOwnPropertyNames(err).forEach(function(key) { - res[key] = err[key]; - }, err); - return res; -} - -}).call(this,require('_process')) -},{"./base":17,"_process":51}],26:[function(require,module,exports){ -(function (process){ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var cursor = Base.cursor; -var color = Base.color; - -/** - * Expose `Landing`. - */ - -exports = module.exports = Landing; - -/** - * Airplane color. - */ - -Base.colors.plane = 0; - -/** - * Airplane crash color. - */ - -Base.colors['plane crash'] = 31; - -/** - * Runway color. - */ - -Base.colors.runway = 90; - -/** - * Initialize a new `Landing` reporter. - * - * @api public - * @param {Runner} runner - */ -function Landing(runner) { - Base.call(this, runner); - - var self = this; - var width = Base.window.width * .75 | 0; - var total = runner.total; - var stream = process.stdout; - var plane = color('plane', '✈'); - var crashed = -1; - var n = 0; - - function runway() { - var buf = Array(width).join('-'); - return ' ' + color('runway', buf); - } - - runner.on('start', function() { - stream.write('\n\n\n '); - cursor.hide(); - }); - - runner.on('test end', function(test) { - // check if the plane crashed - var col = crashed === -1 ? width * ++n / total | 0 : crashed; - - // show the crash - if (test.state === 'failed') { - plane = color('plane crash', '✈'); - crashed = col; - } - - // render landing strip - stream.write('\u001b[' + (width + 1) + 'D\u001b[2A'); - stream.write(runway()); - stream.write('\n '); - stream.write(color('runway', Array(col).join('⋅'))); - stream.write(plane); - stream.write(color('runway', Array(width - col).join('⋅') + '\n')); - stream.write(runway()); - stream.write('\u001b[0m'); - }); - - runner.on('end', function() { - cursor.show(); - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Landing, Base); - -}).call(this,require('_process')) -},{"../utils":39,"./base":17,"_process":51}],27:[function(require,module,exports){ -(function (process){ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; -var cursor = Base.cursor; - -/** - * Expose `List`. - */ - -exports = module.exports = List; - -/** - * Initialize a new `List` test reporter. - * - * @api public - * @param {Runner} runner - */ -function List(runner) { - Base.call(this, runner); - - var self = this; - var n = 0; - - runner.on('start', function() { - console.log(); - }); - - runner.on('test', function(test) { - process.stdout.write(color('pass', ' ' + test.fullTitle() + ': ')); - }); - - runner.on('pending', function(test) { - var fmt = color('checkmark', ' -') - + color('pending', ' %s'); - console.log(fmt, test.fullTitle()); - }); - - runner.on('pass', function(test) { - var fmt = color('checkmark', ' ' + Base.symbols.dot) - + color('pass', ' %s: ') - + color(test.speed, '%dms'); - cursor.CR(); - console.log(fmt, test.fullTitle(), test.duration); - }); - - runner.on('fail', function(test) { - cursor.CR(); - console.log(color('fail', ' %d) %s'), ++n, test.fullTitle()); - }); - - runner.on('end', self.epilogue.bind(self)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(List, Base); - -}).call(this,require('_process')) -},{"../utils":39,"./base":17,"_process":51}],28:[function(require,module,exports){ -(function (process){ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); - -/** - * Constants - */ - -var SUITE_PREFIX = '$'; - -/** - * Expose `Markdown`. - */ - -exports = module.exports = Markdown; - -/** - * Initialize a new `Markdown` reporter. - * - * @api public - * @param {Runner} runner - */ -function Markdown(runner) { - Base.call(this, runner); - - var level = 0; - var buf = ''; - - function title(str) { - return Array(level).join('#') + ' ' + str; - } - - function mapTOC(suite, obj) { - var ret = obj; - var key = SUITE_PREFIX + suite.title; - - obj = obj[key] = obj[key] || { suite: suite }; - suite.suites.forEach(function(suite) { - mapTOC(suite, obj); - }); - - return ret; - } - - function stringifyTOC(obj, level) { - ++level; - var buf = ''; - var link; - for (var key in obj) { - if (key === 'suite') { - continue; - } - if (key !== SUITE_PREFIX) { - link = ' - [' + key.substring(1) + ']'; - link += '(#' + utils.slug(obj[key].suite.fullTitle()) + ')\n'; - buf += Array(level).join(' ') + link; - } - buf += stringifyTOC(obj[key], level); - } - return buf; - } - - function generateTOC(suite) { - var obj = mapTOC(suite, {}); - return stringifyTOC(obj, 0); - } - - generateTOC(runner.suite); - - runner.on('suite', function(suite) { - ++level; - var slug = utils.slug(suite.fullTitle()); - buf += '' + '\n'; - buf += title(suite.title) + '\n'; - }); - - runner.on('suite end', function() { - --level; - }); - - runner.on('pass', function(test) { - var code = utils.clean(test.fn.toString()); - buf += test.title + '.\n'; - buf += '\n```js\n'; - buf += code + '\n'; - buf += '```\n\n'; - }); - - runner.on('end', function() { - process.stdout.write('# TOC\n'); - process.stdout.write(generateTOC(runner.suite)); - process.stdout.write(buf); - }); -} - -}).call(this,require('_process')) -},{"../utils":39,"./base":17,"_process":51}],29:[function(require,module,exports){ -(function (process){ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; - -/** - * Expose `Min`. - */ - -exports = module.exports = Min; - -/** - * Initialize a new `Min` minimal test reporter (best used with --watch). - * - * @api public - * @param {Runner} runner - */ -function Min(runner) { - Base.call(this, runner); - - runner.on('start', function() { - // clear screen - process.stdout.write('\u001b[2J'); - // set cursor position - process.stdout.write('\u001b[1;3H'); - }); - - runner.on('end', this.epilogue.bind(this)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Min, Base); - -}).call(this,require('_process')) -},{"../utils":39,"./base":17,"_process":51}],30:[function(require,module,exports){ -(function (process){ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; - -/** - * Expose `Dot`. - */ - -exports = module.exports = NyanCat; - -/** - * Initialize a new `Dot` matrix test reporter. - * - * @param {Runner} runner - * @api public - */ - -function NyanCat(runner) { - Base.call(this, runner); - - var self = this; - var width = Base.window.width * .75 | 0; - var nyanCatWidth = this.nyanCatWidth = 11; - - this.colorIndex = 0; - this.numberOfLines = 4; - this.rainbowColors = self.generateColors(); - this.scoreboardWidth = 5; - this.tick = 0; - this.trajectories = [[], [], [], []]; - this.trajectoryWidthMax = (width - nyanCatWidth); - - runner.on('start', function() { - Base.cursor.hide(); - self.draw(); - }); - - runner.on('pending', function() { - self.draw(); - }); - - runner.on('pass', function() { - self.draw(); - }); - - runner.on('fail', function() { - self.draw(); - }); - - runner.on('end', function() { - Base.cursor.show(); - for (var i = 0; i < self.numberOfLines; i++) { - write('\n'); - } - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(NyanCat, Base); - -/** - * Draw the nyan cat - * - * @api private - */ - -NyanCat.prototype.draw = function() { - this.appendRainbow(); - this.drawScoreboard(); - this.drawRainbow(); - this.drawNyanCat(); - this.tick = !this.tick; -}; - -/** - * Draw the "scoreboard" showing the number - * of passes, failures and pending tests. - * - * @api private - */ - -NyanCat.prototype.drawScoreboard = function() { - var stats = this.stats; - - function draw(type, n) { - write(' '); - write(Base.color(type, n)); - write('\n'); - } - - draw('green', stats.passes); - draw('fail', stats.failures); - draw('pending', stats.pending); - write('\n'); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Append the rainbow. - * - * @api private - */ - -NyanCat.prototype.appendRainbow = function() { - var segment = this.tick ? '_' : '-'; - var rainbowified = this.rainbowify(segment); - - for (var index = 0; index < this.numberOfLines; index++) { - var trajectory = this.trajectories[index]; - if (trajectory.length >= this.trajectoryWidthMax) { - trajectory.shift(); - } - trajectory.push(rainbowified); - } -}; - -/** - * Draw the rainbow. - * - * @api private - */ - -NyanCat.prototype.drawRainbow = function() { - var self = this; - - this.trajectories.forEach(function(line) { - write('\u001b[' + self.scoreboardWidth + 'C'); - write(line.join('')); - write('\n'); - }); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Draw the nyan cat - * - * @api private - */ -NyanCat.prototype.drawNyanCat = function() { - var self = this; - var startWidth = this.scoreboardWidth + this.trajectories[0].length; - var dist = '\u001b[' + startWidth + 'C'; - var padding = ''; - - write(dist); - write('_,------,'); - write('\n'); - - write(dist); - padding = self.tick ? ' ' : ' '; - write('_|' + padding + '/\\_/\\ '); - write('\n'); - - write(dist); - padding = self.tick ? '_' : '__'; - var tail = self.tick ? '~' : '^'; - write(tail + '|' + padding + this.face() + ' '); - write('\n'); - - write(dist); - padding = self.tick ? ' ' : ' '; - write(padding + '"" "" '); - write('\n'); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Draw nyan cat face. - * - * @api private - * @return {string} - */ - -NyanCat.prototype.face = function() { - var stats = this.stats; - if (stats.failures) { - return '( x .x)'; - } else if (stats.pending) { - return '( o .o)'; - } else if (stats.passes) { - return '( ^ .^)'; - } - return '( - .-)'; -}; - -/** - * Move cursor up `n`. - * - * @api private - * @param {number} n - */ - -NyanCat.prototype.cursorUp = function(n) { - write('\u001b[' + n + 'A'); -}; - -/** - * Move cursor down `n`. - * - * @api private - * @param {number} n - */ - -NyanCat.prototype.cursorDown = function(n) { - write('\u001b[' + n + 'B'); -}; - -/** - * Generate rainbow colors. - * - * @api private - * @return {Array} - */ -NyanCat.prototype.generateColors = function() { - var colors = []; - - for (var i = 0; i < (6 * 7); i++) { - var pi3 = Math.floor(Math.PI / 3); - var n = (i * (1.0 / 6)); - var r = Math.floor(3 * Math.sin(n) + 3); - var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3); - var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3); - colors.push(36 * r + 6 * g + b + 16); - } - - return colors; -}; - -/** - * Apply rainbow to the given `str`. - * - * @api private - * @param {string} str - * @return {string} - */ -NyanCat.prototype.rainbowify = function(str) { - if (!Base.useColors) { - return str; - } - var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length]; - this.colorIndex += 1; - return '\u001b[38;5;' + color + 'm' + str + '\u001b[0m'; -}; - -/** - * Stdout helper. - * - * @param {string} string A message to write to stdout. - */ -function write(string) { - process.stdout.write(string); -} - -}).call(this,require('_process')) -},{"../utils":39,"./base":17,"_process":51}],31:[function(require,module,exports){ -(function (process){ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; -var cursor = Base.cursor; - -/** - * Expose `Progress`. - */ - -exports = module.exports = Progress; - -/** - * General progress bar color. - */ - -Base.colors.progress = 90; - -/** - * Initialize a new `Progress` bar test reporter. - * - * @api public - * @param {Runner} runner - * @param {Object} options - */ -function Progress(runner, options) { - Base.call(this, runner); - - var self = this; - var width = Base.window.width * .50 | 0; - var total = runner.total; - var complete = 0; - var lastN = -1; - - // default chars - options = options || {}; - options.open = options.open || '['; - options.complete = options.complete || '▬'; - options.incomplete = options.incomplete || Base.symbols.dot; - options.close = options.close || ']'; - options.verbose = false; - - // tests started - runner.on('start', function() { - console.log(); - cursor.hide(); - }); - - // tests complete - runner.on('test end', function() { - complete++; - - var percent = complete / total; - var n = width * percent | 0; - var i = width - n; - - if (n === lastN && !options.verbose) { - // Don't re-render the line if it hasn't changed - return; - } - lastN = n; - - cursor.CR(); - process.stdout.write('\u001b[J'); - process.stdout.write(color('progress', ' ' + options.open)); - process.stdout.write(Array(n).join(options.complete)); - process.stdout.write(Array(i).join(options.incomplete)); - process.stdout.write(color('progress', options.close)); - if (options.verbose) { - process.stdout.write(color('progress', ' ' + complete + ' of ' + total)); - } - }); - - // tests are complete, output some stats - // and the failures if any - runner.on('end', function() { - cursor.show(); - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Progress, Base); - -}).call(this,require('_process')) -},{"../utils":39,"./base":17,"_process":51}],32:[function(require,module,exports){ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; -var cursor = Base.cursor; - -/** - * Expose `Spec`. - */ - -exports = module.exports = Spec; - -/** - * Initialize a new `Spec` test reporter. - * - * @api public - * @param {Runner} runner - */ -function Spec(runner) { - Base.call(this, runner); - - var self = this; - var indents = 0; - var n = 0; - - function indent() { - return Array(indents).join(' '); - } - - runner.on('start', function() { - console.log(); - }); - - runner.on('suite', function(suite) { - ++indents; - console.log(color('suite', '%s%s'), indent(), suite.title); - }); - - runner.on('suite end', function() { - --indents; - if (indents === 1) { - console.log(); - } - }); - - runner.on('pending', function(test) { - var fmt = indent() + color('pending', ' - %s'); - console.log(fmt, test.title); - }); - - runner.on('pass', function(test) { - var fmt; - if (test.speed === 'fast') { - fmt = indent() - + color('checkmark', ' ' + Base.symbols.ok) - + color('pass', ' %s'); - cursor.CR(); - console.log(fmt, test.title); - } else { - fmt = indent() - + color('checkmark', ' ' + Base.symbols.ok) - + color('pass', ' %s') - + color(test.speed, ' (%dms)'); - cursor.CR(); - console.log(fmt, test.title, test.duration); - } - }); - - runner.on('fail', function(test) { - cursor.CR(); - console.log(indent() + color('fail', ' %d) %s'), ++n, test.title); - }); - - runner.on('end', self.epilogue.bind(self)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Spec, Base); - -},{"../utils":39,"./base":17}],33:[function(require,module,exports){ -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `TAP`. - */ - -exports = module.exports = TAP; - -/** - * Initialize a new `TAP` reporter. - * - * @api public - * @param {Runner} runner - */ -function TAP(runner) { - Base.call(this, runner); - - var n = 1; - var passes = 0; - var failures = 0; - - runner.on('start', function() { - var total = runner.grepTotal(runner.suite); - console.log('%d..%d', 1, total); - }); - - runner.on('test end', function() { - ++n; - }); - - runner.on('pending', function(test) { - console.log('ok %d %s # SKIP -', n, title(test)); - }); - - runner.on('pass', function(test) { - passes++; - console.log('ok %d %s', n, title(test)); - }); - - runner.on('fail', function(test, err) { - failures++; - console.log('not ok %d %s', n, title(test)); - if (err.stack) { - console.log(err.stack.replace(/^/gm, ' ')); - } - }); - - runner.on('end', function() { - console.log('# tests ' + (passes + failures)); - console.log('# pass ' + passes); - console.log('# fail ' + failures); - }); -} - -/** - * Return a TAP-safe title of `test` - * - * @api private - * @param {Object} test - * @return {String} - */ -function title(test) { - return test.fullTitle().replace(/#/g, ''); -} - -},{"./base":17}],34:[function(require,module,exports){ -(function (global){ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); -var inherits = utils.inherits; -var fs = require('fs'); -var escape = utils.escape; - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Expose `XUnit`. - */ - -exports = module.exports = XUnit; - -/** - * Initialize a new `XUnit` reporter. - * - * @api public - * @param {Runner} runner - */ -function XUnit(runner, options) { - Base.call(this, runner); - - var stats = this.stats; - var tests = []; - var self = this; - - if (options.reporterOptions && options.reporterOptions.output) { - if (!fs.createWriteStream) { - throw new Error('file output not supported in browser'); - } - self.fileStream = fs.createWriteStream(options.reporterOptions.output); - } - - runner.on('pending', function(test) { - tests.push(test); - }); - - runner.on('pass', function(test) { - tests.push(test); - }); - - runner.on('fail', function(test) { - tests.push(test); - }); - - runner.on('end', function() { - self.write(tag('testsuite', { - name: 'Mocha Tests', - tests: stats.tests, - failures: stats.failures, - errors: stats.failures, - skipped: stats.tests - stats.failures - stats.passes, - timestamp: (new Date()).toUTCString(), - time: (stats.duration / 1000) || 0 - }, false)); - - tests.forEach(function(t) { - self.test(t); - }); - - self.write(''); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(XUnit, Base); - -/** - * Override done to close the stream (if it's a file). - * - * @param failures - * @param {Function} fn - */ -XUnit.prototype.done = function(failures, fn) { - if (this.fileStream) { - this.fileStream.end(function() { - fn(failures); - }); - } else { - fn(failures); - } -}; - -/** - * Write out the given line. - * - * @param {string} line - */ -XUnit.prototype.write = function(line) { - if (this.fileStream) { - this.fileStream.write(line + '\n'); - } else { - console.log(line); - } -}; - -/** - * Output tag for the given `test.` - * - * @param {Test} test - */ -XUnit.prototype.test = function(test) { - var attrs = { - classname: test.parent.fullTitle(), - name: test.title, - time: (test.duration / 1000) || 0 - }; - - if (test.state === 'failed') { - var err = test.err; - this.write(tag('testcase', attrs, false, tag('failure', {}, false, cdata(escape(err.message) + '\n' + err.stack)))); - } else if (test.pending) { - this.write(tag('testcase', attrs, false, tag('skipped', {}, true))); - } else { - this.write(tag('testcase', attrs, true)); - } -}; - -/** - * HTML tag helper. - * - * @param name - * @param attrs - * @param close - * @param content - * @return {string} - */ -function tag(name, attrs, close, content) { - var end = close ? '/>' : '>'; - var pairs = []; - var tag; - - for (var key in attrs) { - if (Object.prototype.hasOwnProperty.call(attrs, key)) { - pairs.push(key + '="' + escape(attrs[key]) + '"'); - } - } - - tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end; - if (content) { - tag += content + ''; -} - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../utils":39,"./base":17,"fs":41}],35:[function(require,module,exports){ -(function (global){ -/** - * Module dependencies. - */ - -var EventEmitter = require('events').EventEmitter; -var Pending = require('./pending'); -var debug = require('debug')('mocha:runnable'); -var milliseconds = require('./ms'); -var utils = require('./utils'); -var inherits = utils.inherits; - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Object#toString(). - */ - -var toString = Object.prototype.toString; - -/** - * Expose `Runnable`. - */ - -module.exports = Runnable; - -/** - * Initialize a new `Runnable` with the given `title` and callback `fn`. - * - * @param {String} title - * @param {Function} fn - * @api private - * @param {string} title - * @param {Function} fn - */ -function Runnable(title, fn) { - this.title = title; - this.fn = fn; - this.async = fn && fn.length; - this.sync = !this.async; - this._timeout = 2000; - this._slow = 75; - this._enableTimeouts = true; - this.timedOut = false; - this._trace = new Error('done() called multiple times'); -} - -/** - * Inherit from `EventEmitter.prototype`. - */ -inherits(Runnable, EventEmitter); - -/** - * Set & get timeout `ms`. - * - * @api private - * @param {number|string} ms - * @return {Runnable|number} ms or Runnable instance. - */ -Runnable.prototype.timeout = function(ms) { - if (!arguments.length) { - return this._timeout; - } - if (ms === 0) { - this._enableTimeouts = false; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('timeout %d', ms); - this._timeout = ms; - if (this.timer) { - this.resetTimeout(); - } - return this; -}; - -/** - * Set & get slow `ms`. - * - * @api private - * @param {number|string} ms - * @return {Runnable|number} ms or Runnable instance. - */ -Runnable.prototype.slow = function(ms) { - if (!arguments.length) { - return this._slow; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('timeout %d', ms); - this._slow = ms; - return this; -}; - -/** - * Set and get whether timeout is `enabled`. - * - * @api private - * @param {boolean} enabled - * @return {Runnable|boolean} enabled or Runnable instance. - */ -Runnable.prototype.enableTimeouts = function(enabled) { - if (!arguments.length) { - return this._enableTimeouts; - } - debug('enableTimeouts %s', enabled); - this._enableTimeouts = enabled; - return this; -}; - -/** - * Halt and mark as pending. - * - * @api private - */ -Runnable.prototype.skip = function() { - throw new Pending(); -}; - -/** - * Return the full title generated by recursively concatenating the parent's - * full title. - * - * @api public - * @return {string} - */ -Runnable.prototype.fullTitle = function() { - return this.parent.fullTitle() + ' ' + this.title; -}; - -/** - * Clear the timeout. - * - * @api private - */ -Runnable.prototype.clearTimeout = function() { - clearTimeout(this.timer); -}; - -/** - * Inspect the runnable void of private properties. - * - * @api private - * @return {string} - */ -Runnable.prototype.inspect = function() { - return JSON.stringify(this, function(key, val) { - if (key[0] === '_') { - return; - } - if (key === 'parent') { - return '#'; - } - if (key === 'ctx') { - return '#'; - } - return val; - }, 2); -}; - -/** - * Reset the timeout. - * - * @api private - */ -Runnable.prototype.resetTimeout = function() { - var self = this; - var ms = this.timeout() || 1e9; - - if (!this._enableTimeouts) { - return; - } - this.clearTimeout(); - this.timer = setTimeout(function() { - if (!self._enableTimeouts) { - return; - } - self.callback(new Error('timeout of ' + ms + 'ms exceeded. Ensure the done() callback is being called in this test.')); - self.timedOut = true; - }, ms); -}; - -/** - * Whitelist a list of globals for this test run. - * - * @api private - * @param {string[]} globals - */ -Runnable.prototype.globals = function(globals) { - this._allowedGlobals = globals; -}; - -/** - * Run the test and invoke `fn(err)`. - * - * @param {Function} fn - * @api private - */ -Runnable.prototype.run = function(fn) { - var self = this; - var start = new Date(); - var ctx = this.ctx; - var finished; - var emitted; - - // Sometimes the ctx exists, but it is not runnable - if (ctx && ctx.runnable) { - ctx.runnable(this); - } - - // called multiple times - function multiple(err) { - if (emitted) { - return; - } - emitted = true; - self.emit('error', err || new Error('done() called multiple times; stacktrace may be inaccurate')); - } - - // finished - function done(err) { - var ms = self.timeout(); - if (self.timedOut) { - return; - } - if (finished) { - return multiple(err || self._trace); - } - - self.clearTimeout(); - self.duration = new Date() - start; - finished = true; - if (!err && self.duration > ms && self._enableTimeouts) { - err = new Error('timeout of ' + ms + 'ms exceeded. Ensure the done() callback is being called in this test.'); - } - fn(err); - } - - // for .resetTimeout() - this.callback = done; - - // explicit async with `done` argument - if (this.async) { - this.resetTimeout(); - - if (this.allowUncaught) { - return callFnAsync(this.fn); - } - try { - callFnAsync(this.fn); - } catch (err) { - done(utils.getError(err)); - } - return; - } - - if (this.allowUncaught) { - callFn(this.fn); - done(); - return; - } - - // sync or promise-returning - try { - if (this.pending) { - done(); - } else { - callFn(this.fn); - } - } catch (err) { - done(utils.getError(err)); - } - - function callFn(fn) { - var result = fn.call(ctx); - if (result && typeof result.then === 'function') { - self.resetTimeout(); - result - .then(function() { - done(); - }, - function(reason) { - done(reason || new Error('Promise rejected with no or falsy reason')); - }); - } else { - if (self.asyncOnly) { - return done(new Error('--async-only option in use without declaring `done()` or returning a promise')); - } - - done(); - } - } - - function callFnAsync(fn) { - fn.call(ctx, function(err) { - if (err instanceof Error || toString.call(err) === '[object Error]') { - return done(err); - } - if (err) { - if (Object.prototype.toString.call(err) === '[object Object]') { - return done(new Error('done() invoked with non-Error: ' - + JSON.stringify(err))); - } - return done(new Error('done() invoked with non-Error: ' + err)); - } - done(); - }); - } -}; - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./ms":15,"./pending":16,"./utils":39,"debug":2,"events":3}],36:[function(require,module,exports){ -(function (process,global){ -/** - * Module dependencies. - */ - -var EventEmitter = require('events').EventEmitter; -var Pending = require('./pending'); -var utils = require('./utils'); -var inherits = utils.inherits; -var debug = require('debug')('mocha:runner'); -var Runnable = require('./runnable'); -var filter = utils.filter; -var indexOf = utils.indexOf; -var keys = utils.keys; -var stackFilter = utils.stackTraceFilter(); -var stringify = utils.stringify; -var type = utils.type; -var undefinedError = utils.undefinedError; - -/** - * Non-enumerable globals. - */ - -var globals = [ - 'setTimeout', - 'clearTimeout', - 'setInterval', - 'clearInterval', - 'XMLHttpRequest', - 'Date', - 'setImmediate', - 'clearImmediate' -]; - -/** - * Expose `Runner`. - */ - -module.exports = Runner; - -/** - * Initialize a `Runner` for the given `suite`. - * - * Events: - * - * - `start` execution started - * - `end` execution complete - * - `suite` (suite) test suite execution started - * - `suite end` (suite) all tests (and sub-suites) have finished - * - `test` (test) test execution started - * - `test end` (test) test completed - * - `hook` (hook) hook execution started - * - `hook end` (hook) hook complete - * - `pass` (test) test passed - * - `fail` (test, err) test failed - * - `pending` (test) test pending - * - * @api public - * @param {Suite} suite Root suite - * @param {boolean} [delay] Whether or not to delay execution of root suite - * until ready. - */ -function Runner(suite, delay) { - var self = this; - this._globals = []; - this._abort = false; - this._delay = delay; - this.suite = suite; - this.started = false; - this.total = suite.total(); - this.failures = 0; - this.on('test end', function(test) { - self.checkGlobals(test); - }); - this.on('hook end', function(hook) { - self.checkGlobals(hook); - }); - this._defaultGrep = /.*/; - this.grep(this._defaultGrep); - this.globals(this.globalProps().concat(extraGlobals())); -} - -/** - * Wrapper for setImmediate, process.nextTick, or browser polyfill. - * - * @param {Function} fn - * @api private - */ -Runner.immediately = global.setImmediate || process.nextTick; - -/** - * Inherit from `EventEmitter.prototype`. - */ -inherits(Runner, EventEmitter); - -/** - * Run tests with full titles matching `re`. Updates runner.total - * with number of tests matched. - * - * @param {RegExp} re - * @param {Boolean} invert - * @return {Runner} for chaining - * @api public - * @param {RegExp} re - * @param {boolean} invert - * @return {Runner} Runner instance. - */ -Runner.prototype.grep = function(re, invert) { - debug('grep %s', re); - this._grep = re; - this._invert = invert; - this.total = this.grepTotal(this.suite); - return this; -}; - -/** - * Returns the number of tests matching the grep search for the - * given suite. - * - * @param {Suite} suite - * @return {Number} - * @api public - * @param {Suite} suite - * @return {number} - */ -Runner.prototype.grepTotal = function(suite) { - var self = this; - var total = 0; - - suite.eachTest(function(test) { - var match = self._grep.test(test.fullTitle()); - if (self._invert) { - match = !match; - } - if (match) { - total++; - } - }); - - return total; -}; - -/** - * Return a list of global properties. - * - * @return {Array} - * @api private - */ -Runner.prototype.globalProps = function() { - var props = keys(global); - - // non-enumerables - for (var i = 0; i < globals.length; ++i) { - if (~indexOf(props, globals[i])) { - continue; - } - props.push(globals[i]); - } - - return props; -}; - -/** - * Allow the given `arr` of globals. - * - * @param {Array} arr - * @return {Runner} for chaining - * @api public - * @param {Array} arr - * @return {Runner} Runner instance. - */ -Runner.prototype.globals = function(arr) { - if (!arguments.length) { - return this._globals; - } - debug('globals %j', arr); - this._globals = this._globals.concat(arr); - return this; -}; - -/** - * Check for global variable leaks. - * - * @api private - */ -Runner.prototype.checkGlobals = function(test) { - if (this.ignoreLeaks) { - return; - } - var ok = this._globals; - - var globals = this.globalProps(); - var leaks; - - if (test) { - ok = ok.concat(test._allowedGlobals || []); - } - - if (this.prevGlobalsLength === globals.length) { - return; - } - this.prevGlobalsLength = globals.length; - - leaks = filterLeaks(ok, globals); - this._globals = this._globals.concat(leaks); - - if (leaks.length > 1) { - this.fail(test, new Error('global leaks detected: ' + leaks.join(', ') + '')); - } else if (leaks.length) { - this.fail(test, new Error('global leak detected: ' + leaks[0])); - } -}; - -/** - * Fail the given `test`. - * - * @api private - * @param {Test} test - * @param {Error} err - */ -Runner.prototype.fail = function(test, err) { - ++this.failures; - test.state = 'failed'; - - if (!(err instanceof Error || err && typeof err.message === 'string')) { - err = new Error('the ' + type(err) + ' ' + stringify(err) + ' was thrown, throw an Error :)'); - } - - err.stack = (this.fullStackTrace || !err.stack) - ? err.stack - : stackFilter(err.stack); - - this.emit('fail', test, err); -}; - -/** - * Fail the given `hook` with `err`. - * - * Hook failures work in the following pattern: - * - If bail, then exit - * - Failed `before` hook skips all tests in a suite and subsuites, - * but jumps to corresponding `after` hook - * - Failed `before each` hook skips remaining tests in a - * suite and jumps to corresponding `after each` hook, - * which is run only once - * - Failed `after` hook does not alter - * execution order - * - Failed `after each` hook skips remaining tests in a - * suite and subsuites, but executes other `after each` - * hooks - * - * @api private - * @param {Hook} hook - * @param {Error} err - */ -Runner.prototype.failHook = function(hook, err) { - if (hook.ctx && hook.ctx.currentTest) { - hook.originalTitle = hook.originalTitle || hook.title; - hook.title = hook.originalTitle + ' for "' + hook.ctx.currentTest.title + '"'; - } - - this.fail(hook, err); - if (this.suite.bail()) { - this.emit('end'); - } -}; - -/** - * Run hook `name` callbacks and then invoke `fn()`. - * - * @api private - * @param {string} name - * @param {Function} fn - */ - -Runner.prototype.hook = function(name, fn) { - var suite = this.suite; - var hooks = suite['_' + name]; - var self = this; - - function next(i) { - var hook = hooks[i]; - if (!hook) { - return fn(); - } - self.currentRunnable = hook; - - hook.ctx.currentTest = self.test; - - self.emit('hook', hook); - - if (!hook.listeners('error').length) { - hook.on('error', function(err) { - self.failHook(hook, err); - }); - } - - hook.run(function(err) { - var testError = hook.error(); - if (testError) { - self.fail(self.test, testError); - } - if (err) { - if (err instanceof Pending) { - suite.pending = true; - } else { - self.failHook(hook, err); - - // stop executing hooks, notify callee of hook err - return fn(err); - } - } - self.emit('hook end', hook); - delete hook.ctx.currentTest; - next(++i); - }); - } - - Runner.immediately(function() { - next(0); - }); -}; - -/** - * Run hook `name` for the given array of `suites` - * in order, and callback `fn(err, errSuite)`. - * - * @api private - * @param {string} name - * @param {Array} suites - * @param {Function} fn - */ -Runner.prototype.hooks = function(name, suites, fn) { - var self = this; - var orig = this.suite; - - function next(suite) { - self.suite = suite; - - if (!suite) { - self.suite = orig; - return fn(); - } - - self.hook(name, function(err) { - if (err) { - var errSuite = self.suite; - self.suite = orig; - return fn(err, errSuite); - } - - next(suites.pop()); - }); - } - - next(suites.pop()); -}; - -/** - * Run hooks from the top level down. - * - * @param {String} name - * @param {Function} fn - * @api private - */ -Runner.prototype.hookUp = function(name, fn) { - var suites = [this.suite].concat(this.parents()).reverse(); - this.hooks(name, suites, fn); -}; - -/** - * Run hooks from the bottom up. - * - * @param {String} name - * @param {Function} fn - * @api private - */ -Runner.prototype.hookDown = function(name, fn) { - var suites = [this.suite].concat(this.parents()); - this.hooks(name, suites, fn); -}; - -/** - * Return an array of parent Suites from - * closest to furthest. - * - * @return {Array} - * @api private - */ -Runner.prototype.parents = function() { - var suite = this.suite; - var suites = []; - while (suite.parent) { - suite = suite.parent; - suites.push(suite); - } - return suites; -}; - -/** - * Run the current test and callback `fn(err)`. - * - * @param {Function} fn - * @api private - */ -Runner.prototype.runTest = function(fn) { - var self = this; - var test = this.test; - - if (this.asyncOnly) { - test.asyncOnly = true; - } - - if (this.allowUncaught) { - test.allowUncaught = true; - return test.run(fn); - } - try { - test.on('error', function(err) { - self.fail(test, err); - }); - test.run(fn); - } catch (err) { - fn(err); - } -}; - -/** - * Run tests in the given `suite` and invoke the callback `fn()` when complete. - * - * @api private - * @param {Suite} suite - * @param {Function} fn - */ -Runner.prototype.runTests = function(suite, fn) { - var self = this; - var tests = suite.tests.slice(); - var test; - - function hookErr(_, errSuite, after) { - // before/after Each hook for errSuite failed: - var orig = self.suite; - - // for failed 'after each' hook start from errSuite parent, - // otherwise start from errSuite itself - self.suite = after ? errSuite.parent : errSuite; - - if (self.suite) { - // call hookUp afterEach - self.hookUp('afterEach', function(err2, errSuite2) { - self.suite = orig; - // some hooks may fail even now - if (err2) { - return hookErr(err2, errSuite2, true); - } - // report error suite - fn(errSuite); - }); - } else { - // there is no need calling other 'after each' hooks - self.suite = orig; - fn(errSuite); - } - } - - function next(err, errSuite) { - // if we bail after first err - if (self.failures && suite._bail) { - return fn(); - } - - if (self._abort) { - return fn(); - } - - if (err) { - return hookErr(err, errSuite, true); - } - - // next test - test = tests.shift(); - - // all done - if (!test) { - return fn(); - } - - // grep - var match = self._grep.test(test.fullTitle()); - if (self._invert) { - match = !match; - } - if (!match) { - // Run immediately only if we have defined a grep. When we - // define a grep — It can cause maximum callstack error if - // the grep is doing a large recursive loop by neglecting - // all tests. The run immediately function also comes with - // a performance cost. So we don't want to run immediately - // if we run the whole test suite, because running the whole - // test suite don't do any immediate recursive loops. Thus, - // allowing a JS runtime to breathe. - if (self._grep !== self._defaultGrep) { - Runner.immediately(next); - } else { - next(); - } - return; - } - - // pending - if (test.pending) { - self.emit('pending', test); - self.emit('test end', test); - return next(); - } - - // execute test and hook(s) - self.emit('test', self.test = test); - self.hookDown('beforeEach', function(err, errSuite) { - if (suite.pending) { - self.emit('pending', test); - self.emit('test end', test); - return next(); - } - if (err) { - return hookErr(err, errSuite, false); - } - self.currentRunnable = self.test; - self.runTest(function(err) { - test = self.test; - - if (err) { - if (err instanceof Pending) { - self.emit('pending', test); - } else { - self.fail(test, err); - } - self.emit('test end', test); - - if (err instanceof Pending) { - return next(); - } - - return self.hookUp('afterEach', next); - } - - test.state = 'passed'; - self.emit('pass', test); - self.emit('test end', test); - self.hookUp('afterEach', next); - }); - }); - } - - this.next = next; - this.hookErr = hookErr; - next(); -}; - -/** - * Run the given `suite` and invoke the callback `fn()` when complete. - * - * @api private - * @param {Suite} suite - * @param {Function} fn - */ -Runner.prototype.runSuite = function(suite, fn) { - var i = 0; - var self = this; - var total = this.grepTotal(suite); - var afterAllHookCalled = false; - - debug('run suite %s', suite.fullTitle()); - - if (!total || (self.failures && suite._bail)) { - return fn(); - } - - this.emit('suite', this.suite = suite); - - function next(errSuite) { - if (errSuite) { - // current suite failed on a hook from errSuite - if (errSuite === suite) { - // if errSuite is current suite - // continue to the next sibling suite - return done(); - } - // errSuite is among the parents of current suite - // stop execution of errSuite and all sub-suites - return done(errSuite); - } - - if (self._abort) { - return done(); - } - - var curr = suite.suites[i++]; - if (!curr) { - return done(); - } - - // Avoid grep neglecting large number of tests causing a - // huge recursive loop and thus a maximum call stack error. - // See comment in `this.runTests()` for more information. - if (self._grep !== self._defaultGrep) { - Runner.immediately(function() { - self.runSuite(curr, next); - }); - } else { - self.runSuite(curr, next); - } - } - - function done(errSuite) { - self.suite = suite; - self.nextSuite = next; - - if (afterAllHookCalled) { - fn(errSuite); - } else { - // mark that the afterAll block has been called once - // and so can be skipped if there is an error in it. - afterAllHookCalled = true; - self.hook('afterAll', function() { - self.emit('suite end', suite); - fn(errSuite); - }); - } - } - - this.nextSuite = next; - - this.hook('beforeAll', function(err) { - if (err) { - return done(); - } - self.runTests(suite, next); - }); -}; - -/** - * Handle uncaught exceptions. - * - * @param {Error} err - * @api private - */ -Runner.prototype.uncaught = function(err) { - if (err) { - debug('uncaught exception %s', err !== function() { - return this; - }.call(err) ? err : (err.message || err)); - } else { - debug('uncaught undefined exception'); - err = undefinedError(); - } - err.uncaught = true; - - var runnable = this.currentRunnable; - - if (!runnable) { - runnable = new Runnable('Uncaught error outside test suite'); - runnable.parent = this.suite; - - if (this.started) { - this.fail(runnable, err); - } else { - // Can't recover from this failure - this.emit('start'); - this.fail(runnable, err); - this.emit('end'); - } - - return; - } - - runnable.clearTimeout(); - - // Ignore errors if complete - if (runnable.state) { - return; - } - this.fail(runnable, err); - - // recover from test - if (runnable.type === 'test') { - this.emit('test end', runnable); - this.hookUp('afterEach', this.next); - return; - } - - // recover from hooks - if (runnable.type === 'hook') { - var errSuite = this.suite; - // if hook failure is in afterEach block - if (runnable.fullTitle().indexOf('after each') > -1) { - return this.hookErr(err, errSuite, true); - } - // if hook failure is in beforeEach block - if (runnable.fullTitle().indexOf('before each') > -1) { - return this.hookErr(err, errSuite, false); - } - // if hook failure is in after or before blocks - return this.nextSuite(errSuite); - } - - // bail - this.emit('end'); -}; - -/** - * Run the root suite and invoke `fn(failures)` - * on completion. - * - * @param {Function} fn - * @return {Runner} for chaining - * @api public - * @param {Function} fn - * @return {Runner} Runner instance. - */ -Runner.prototype.run = function(fn) { - var self = this; - var rootSuite = this.suite; - - fn = fn || function() {}; - - function uncaught(err) { - self.uncaught(err); - } - - function start() { - self.started = true; - self.emit('start'); - self.runSuite(rootSuite, function() { - debug('finished running'); - self.emit('end'); - }); - } - - debug('start'); - - // callback - this.on('end', function() { - debug('end'); - process.removeListener('uncaughtException', uncaught); - fn(self.failures); - }); - - // uncaught exception - process.on('uncaughtException', uncaught); - - if (this._delay) { - // for reporters, I guess. - // might be nice to debounce some dots while we wait. - this.emit('waiting', rootSuite); - rootSuite.once('run', start); - } else { - start(); - } - - return this; -}; - -/** - * Cleanly abort execution. - * - * @api public - * @return {Runner} Runner instance. - */ -Runner.prototype.abort = function() { - debug('aborting'); - this._abort = true; - - return this; -}; - -/** - * Filter leaks with the given globals flagged as `ok`. - * - * @api private - * @param {Array} ok - * @param {Array} globals - * @return {Array} - */ -function filterLeaks(ok, globals) { - return filter(globals, function(key) { - // Firefox and Chrome exposes iframes as index inside the window object - if (/^d+/.test(key)) { - return false; - } - - // in firefox - // if runner runs in an iframe, this iframe's window.getInterface method not init at first - // it is assigned in some seconds - if (global.navigator && (/^getInterface/).test(key)) { - return false; - } - - // an iframe could be approached by window[iframeIndex] - // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak - if (global.navigator && (/^\d+/).test(key)) { - return false; - } - - // Opera and IE expose global variables for HTML element IDs (issue #243) - if (/^mocha-/.test(key)) { - return false; - } - - var matched = filter(ok, function(ok) { - if (~ok.indexOf('*')) { - return key.indexOf(ok.split('*')[0]) === 0; - } - return key === ok; - }); - return !matched.length && (!global.navigator || key !== 'onerror'); - }); -} - -/** - * Array of globals dependent on the environment. - * - * @return {Array} - * @api private - */ -function extraGlobals() { - if (typeof process === 'object' && typeof process.version === 'string') { - var parts = process.version.split('.'); - var nodeVersion = utils.reduce(parts, function(a, v) { - return a << 8 | v; - }); - - // 'errno' was renamed to process._errno in v0.9.11. - - if (nodeVersion < 0x00090B) { - return ['errno']; - } - } - - return []; -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./pending":16,"./runnable":35,"./utils":39,"_process":51,"debug":2,"events":3}],37:[function(require,module,exports){ -/** - * Module dependencies. - */ - -var EventEmitter = require('events').EventEmitter; -var Hook = require('./hook'); -var utils = require('./utils'); -var inherits = utils.inherits; -var debug = require('debug')('mocha:suite'); -var milliseconds = require('./ms'); - -/** - * Expose `Suite`. - */ - -exports = module.exports = Suite; - -/** - * Create a new `Suite` with the given `title` and parent `Suite`. When a suite - * with the same title is already present, that suite is returned to provide - * nicer reporter and more flexible meta-testing. - * - * @api public - * @param {Suite} parent - * @param {string} title - * @return {Suite} - */ -exports.create = function(parent, title) { - var suite = new Suite(title, parent.ctx); - suite.parent = parent; - if (parent.pending) { - suite.pending = true; - } - title = suite.fullTitle(); - parent.addSuite(suite); - return suite; -}; - -/** - * Initialize a new `Suite` with the given `title` and `ctx`. - * - * @api private - * @param {string} title - * @param {Context} parentContext - */ -function Suite(title, parentContext) { - this.title = title; - function Context() {} - Context.prototype = parentContext; - this.ctx = new Context(); - this.suites = []; - this.tests = []; - this.pending = false; - this._beforeEach = []; - this._beforeAll = []; - this._afterEach = []; - this._afterAll = []; - this.root = !title; - this._timeout = 2000; - this._enableTimeouts = true; - this._slow = 75; - this._bail = false; - this.delayed = false; -} - -/** - * Inherit from `EventEmitter.prototype`. - */ -inherits(Suite, EventEmitter); - -/** - * Return a clone of this `Suite`. - * - * @api private - * @return {Suite} - */ -Suite.prototype.clone = function() { - var suite = new Suite(this.title); - debug('clone'); - suite.ctx = this.ctx; - suite.timeout(this.timeout()); - suite.enableTimeouts(this.enableTimeouts()); - suite.slow(this.slow()); - suite.bail(this.bail()); - return suite; -}; - -/** - * Set timeout `ms` or short-hand such as "2s". - * - * @api private - * @param {number|string} ms - * @return {Suite|number} for chaining - */ -Suite.prototype.timeout = function(ms) { - if (!arguments.length) { - return this._timeout; - } - if (ms.toString() === '0') { - this._enableTimeouts = false; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('timeout %d', ms); - this._timeout = parseInt(ms, 10); - return this; -}; - -/** - * Set timeout to `enabled`. - * - * @api private - * @param {boolean} enabled - * @return {Suite|boolean} self or enabled - */ -Suite.prototype.enableTimeouts = function(enabled) { - if (!arguments.length) { - return this._enableTimeouts; - } - debug('enableTimeouts %s', enabled); - this._enableTimeouts = enabled; - return this; -}; - -/** - * Set slow `ms` or short-hand such as "2s". - * - * @api private - * @param {number|string} ms - * @return {Suite|number} for chaining - */ -Suite.prototype.slow = function(ms) { - if (!arguments.length) { - return this._slow; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('slow %d', ms); - this._slow = ms; - return this; -}; - -/** - * Sets whether to bail after first error. - * - * @api private - * @param {boolean} bail - * @return {Suite|number} for chaining - */ -Suite.prototype.bail = function(bail) { - if (!arguments.length) { - return this._bail; - } - debug('bail %s', bail); - this._bail = bail; - return this; -}; - -/** - * Run `fn(test[, done])` before running tests. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.beforeAll = function(title, fn) { - if (this.pending) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"before all" hook' + (title ? ': ' + title : ''); - - var hook = new Hook(title, fn); - hook.parent = this; - hook.timeout(this.timeout()); - hook.enableTimeouts(this.enableTimeouts()); - hook.slow(this.slow()); - hook.ctx = this.ctx; - this._beforeAll.push(hook); - this.emit('beforeAll', hook); - return this; -}; - -/** - * Run `fn(test[, done])` after running tests. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.afterAll = function(title, fn) { - if (this.pending) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"after all" hook' + (title ? ': ' + title : ''); - - var hook = new Hook(title, fn); - hook.parent = this; - hook.timeout(this.timeout()); - hook.enableTimeouts(this.enableTimeouts()); - hook.slow(this.slow()); - hook.ctx = this.ctx; - this._afterAll.push(hook); - this.emit('afterAll', hook); - return this; -}; - -/** - * Run `fn(test[, done])` before each test case. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.beforeEach = function(title, fn) { - if (this.pending) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"before each" hook' + (title ? ': ' + title : ''); - - var hook = new Hook(title, fn); - hook.parent = this; - hook.timeout(this.timeout()); - hook.enableTimeouts(this.enableTimeouts()); - hook.slow(this.slow()); - hook.ctx = this.ctx; - this._beforeEach.push(hook); - this.emit('beforeEach', hook); - return this; -}; - -/** - * Run `fn(test[, done])` after each test case. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.afterEach = function(title, fn) { - if (this.pending) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"after each" hook' + (title ? ': ' + title : ''); - - var hook = new Hook(title, fn); - hook.parent = this; - hook.timeout(this.timeout()); - hook.enableTimeouts(this.enableTimeouts()); - hook.slow(this.slow()); - hook.ctx = this.ctx; - this._afterEach.push(hook); - this.emit('afterEach', hook); - return this; -}; - -/** - * Add a test `suite`. - * - * @api private - * @param {Suite} suite - * @return {Suite} for chaining - */ -Suite.prototype.addSuite = function(suite) { - suite.parent = this; - suite.timeout(this.timeout()); - suite.enableTimeouts(this.enableTimeouts()); - suite.slow(this.slow()); - suite.bail(this.bail()); - this.suites.push(suite); - this.emit('suite', suite); - return this; -}; - -/** - * Add a `test` to this suite. - * - * @api private - * @param {Test} test - * @return {Suite} for chaining - */ -Suite.prototype.addTest = function(test) { - test.parent = this; - test.timeout(this.timeout()); - test.enableTimeouts(this.enableTimeouts()); - test.slow(this.slow()); - test.ctx = this.ctx; - this.tests.push(test); - this.emit('test', test); - return this; -}; - -/** - * Return the full title generated by recursively concatenating the parent's - * full title. - * - * @api public - * @return {string} - */ -Suite.prototype.fullTitle = function() { - if (this.parent) { - var full = this.parent.fullTitle(); - if (full) { - return full + ' ' + this.title; - } - } - return this.title; -}; - -/** - * Return the total number of tests. - * - * @api public - * @return {number} - */ -Suite.prototype.total = function() { - return utils.reduce(this.suites, function(sum, suite) { - return sum + suite.total(); - }, 0) + this.tests.length; -}; - -/** - * Iterates through each suite recursively to find all tests. Applies a - * function in the format `fn(test)`. - * - * @api private - * @param {Function} fn - * @return {Suite} - */ -Suite.prototype.eachTest = function(fn) { - utils.forEach(this.tests, fn); - utils.forEach(this.suites, function(suite) { - suite.eachTest(fn); - }); - return this; -}; - -/** - * This will run the root suite if we happen to be running in delayed mode. - */ -Suite.prototype.run = function run() { - if (this.root) { - this.emit('run'); - } -}; - -},{"./hook":7,"./ms":15,"./utils":39,"debug":2,"events":3}],38:[function(require,module,exports){ -/** - * Module dependencies. - */ - -var Runnable = require('./runnable'); -var inherits = require('./utils').inherits; - -/** - * Expose `Test`. - */ - -module.exports = Test; - -/** - * Initialize a new `Test` with the given `title` and callback `fn`. - * - * @api private - * @param {String} title - * @param {Function} fn - */ -function Test(title, fn) { - Runnable.call(this, title, fn); - this.pending = !fn; - this.type = 'test'; -} - -/** - * Inherit from `Runnable.prototype`. - */ -inherits(Test, Runnable); - -},{"./runnable":35,"./utils":39}],39:[function(require,module,exports){ -(function (process,Buffer){ -/* eslint-env browser */ - -/** - * Module dependencies. - */ - -var basename = require('path').basename; -var debug = require('debug')('mocha:watch'); -var exists = require('fs').existsSync || require('path').existsSync; -var glob = require('glob'); -var join = require('path').join; -var readdirSync = require('fs').readdirSync; -var statSync = require('fs').statSync; -var watchFile = require('fs').watchFile; - -/** - * Ignored directories. - */ - -var ignore = ['node_modules', '.git']; - -exports.inherits = require('util').inherits; - -/** - * Escape special characters in the given string of html. - * - * @api private - * @param {string} html - * @return {string} - */ -exports.escape = function(html) { - return String(html) - .replace(/&/g, '&') - .replace(/"/g, '"') - .replace(//g, '>'); -}; - -/** - * Array#forEach (<=IE8) - * - * @api private - * @param {Array} arr - * @param {Function} fn - * @param {Object} scope - */ -exports.forEach = function(arr, fn, scope) { - for (var i = 0, l = arr.length; i < l; i++) { - fn.call(scope, arr[i], i); - } -}; - -/** - * Test if the given obj is type of string. - * - * @api private - * @param {Object} obj - * @return {boolean} - */ -exports.isString = function(obj) { - return typeof obj === 'string'; -}; - -/** - * Array#map (<=IE8) - * - * @api private - * @param {Array} arr - * @param {Function} fn - * @param {Object} scope - * @return {Array} - */ -exports.map = function(arr, fn, scope) { - var result = []; - for (var i = 0, l = arr.length; i < l; i++) { - result.push(fn.call(scope, arr[i], i, arr)); - } - return result; -}; - -/** - * Array#indexOf (<=IE8) - * - * @api private - * @param {Array} arr - * @param {Object} obj to find index of - * @param {number} start - * @return {number} - */ -exports.indexOf = function(arr, obj, start) { - for (var i = start || 0, l = arr.length; i < l; i++) { - if (arr[i] === obj) { - return i; - } - } - return -1; -}; - -/** - * Array#reduce (<=IE8) - * - * @api private - * @param {Array} arr - * @param {Function} fn - * @param {Object} val Initial value. - * @return {*} - */ -exports.reduce = function(arr, fn, val) { - var rval = val; - - for (var i = 0, l = arr.length; i < l; i++) { - rval = fn(rval, arr[i], i, arr); - } - - return rval; -}; - -/** - * Array#filter (<=IE8) - * - * @api private - * @param {Array} arr - * @param {Function} fn - * @return {Array} - */ -exports.filter = function(arr, fn) { - var ret = []; - - for (var i = 0, l = arr.length; i < l; i++) { - var val = arr[i]; - if (fn(val, i, arr)) { - ret.push(val); - } - } - - return ret; -}; - -/** - * Object.keys (<=IE8) - * - * @api private - * @param {Object} obj - * @return {Array} keys - */ -exports.keys = typeof Object.keys === 'function' ? Object.keys : function(obj) { - var keys = []; - var has = Object.prototype.hasOwnProperty; // for `window` on <=IE8 - - for (var key in obj) { - if (has.call(obj, key)) { - keys.push(key); - } - } - - return keys; -}; - -/** - * Watch the given `files` for changes - * and invoke `fn(file)` on modification. - * - * @api private - * @param {Array} files - * @param {Function} fn - */ -exports.watch = function(files, fn) { - var options = { interval: 100 }; - files.forEach(function(file) { - debug('file %s', file); - watchFile(file, options, function(curr, prev) { - if (prev.mtime < curr.mtime) { - fn(file); - } - }); - }); -}; - -/** - * Array.isArray (<=IE8) - * - * @api private - * @param {Object} obj - * @return {Boolean} - */ -var isArray = typeof Array.isArray === 'function' ? Array.isArray : function(obj) { - return Object.prototype.toString.call(obj) === '[object Array]'; -}; - -/** - * Buffer.prototype.toJSON polyfill. - * - * @type {Function} - */ -if (typeof Buffer !== 'undefined' && Buffer.prototype) { - Buffer.prototype.toJSON = Buffer.prototype.toJSON || function() { - return Array.prototype.slice.call(this, 0); - }; -} - -/** - * Ignored files. - * - * @api private - * @param {string} path - * @return {boolean} - */ -function ignored(path) { - return !~ignore.indexOf(path); -} - -/** - * Lookup files in the given `dir`. - * - * @api private - * @param {string} dir - * @param {string[]} [ext=['.js']] - * @param {Array} [ret=[]] - * @return {Array} - */ -exports.files = function(dir, ext, ret) { - ret = ret || []; - ext = ext || ['js']; - - var re = new RegExp('\\.(' + ext.join('|') + ')$'); - - readdirSync(dir) - .filter(ignored) - .forEach(function(path) { - path = join(dir, path); - if (statSync(path).isDirectory()) { - exports.files(path, ext, ret); - } else if (path.match(re)) { - ret.push(path); - } - }); - - return ret; -}; - -/** - * Compute a slug from the given `str`. - * - * @api private - * @param {string} str - * @return {string} - */ -exports.slug = function(str) { - return str - .toLowerCase() - .replace(/ +/g, '-') - .replace(/[^-\w]/g, ''); -}; - -/** - * Strip the function definition from `str`, and re-indent for pre whitespace. - * - * @param {string} str - * @return {string} - */ -exports.clean = function(str) { - str = str - .replace(/\r\n?|[\n\u2028\u2029]/g, '\n').replace(/^\uFEFF/, '') - .replace(/^function *\(.*\)\s*{|\(.*\) *=> *{?/, '') - .replace(/\s+\}$/, ''); - - var spaces = str.match(/^\n?( *)/)[1].length; - var tabs = str.match(/^\n?(\t*)/)[1].length; - var re = new RegExp('^\n?' + (tabs ? '\t' : ' ') + '{' + (tabs ? tabs : spaces) + '}', 'gm'); - - str = str.replace(re, ''); - - return exports.trim(str); -}; - -/** - * Trim the given `str`. - * - * @api private - * @param {string} str - * @return {string} - */ -exports.trim = function(str) { - return str.replace(/^\s+|\s+$/g, ''); -}; - -/** - * Parse the given `qs`. - * - * @api private - * @param {string} qs - * @return {Object} - */ -exports.parseQuery = function(qs) { - return exports.reduce(qs.replace('?', '').split('&'), function(obj, pair) { - var i = pair.indexOf('='); - var key = pair.slice(0, i); - var val = pair.slice(++i); - - obj[key] = decodeURIComponent(val); - return obj; - }, {}); -}; - -/** - * Highlight the given string of `js`. - * - * @api private - * @param {string} js - * @return {string} - */ -function highlight(js) { - return js - .replace(//g, '>') - .replace(/\/\/(.*)/gm, '//$1') - .replace(/('.*?')/gm, '$1') - .replace(/(\d+\.\d+)/gm, '$1') - .replace(/(\d+)/gm, '$1') - .replace(/\bnew[ \t]+(\w+)/gm, 'new $1') - .replace(/\b(function|new|throw|return|var|if|else)\b/gm, '$1'); -} - -/** - * Highlight the contents of tag `name`. - * - * @api private - * @param {string} name - */ -exports.highlightTags = function(name) { - var code = document.getElementById('mocha').getElementsByTagName(name); - for (var i = 0, len = code.length; i < len; ++i) { - code[i].innerHTML = highlight(code[i].innerHTML); - } -}; - -/** - * If a value could have properties, and has none, this function is called, - * which returns a string representation of the empty value. - * - * Functions w/ no properties return `'[Function]'` - * Arrays w/ length === 0 return `'[]'` - * Objects w/ no properties return `'{}'` - * All else: return result of `value.toString()` - * - * @api private - * @param {*} value The value to inspect. - * @param {string} [type] The type of the value, if known. - * @returns {string} - */ -function emptyRepresentation(value, type) { - type = type || exports.type(value); - - switch (type) { - case 'function': - return '[Function]'; - case 'object': - return '{}'; - case 'array': - return '[]'; - default: - return value.toString(); - } -} - -/** - * Takes some variable and asks `Object.prototype.toString()` what it thinks it - * is. - * - * @api private - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString - * @param {*} value The value to test. - * @returns {string} - * @example - * type({}) // 'object' - * type([]) // 'array' - * type(1) // 'number' - * type(false) // 'boolean' - * type(Infinity) // 'number' - * type(null) // 'null' - * type(new Date()) // 'date' - * type(/foo/) // 'regexp' - * type('type') // 'string' - * type(global) // 'global' - */ -exports.type = function type(value) { - if (value === undefined) { - return 'undefined'; - } else if (value === null) { - return 'null'; - } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) { - return 'buffer'; - } - return Object.prototype.toString.call(value) - .replace(/^\[.+\s(.+?)\]$/, '$1') - .toLowerCase(); -}; - -/** - * Stringify `value`. Different behavior depending on type of value: - * - * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively. - * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes. - * - If `value` is an *empty* object, function, or array, return result of function - * {@link emptyRepresentation}. - * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of - * JSON.stringify(). - * - * @api private - * @see exports.type - * @param {*} value - * @return {string} - */ -exports.stringify = function(value) { - var type = exports.type(value); - - if (!~exports.indexOf(['object', 'array', 'function'], type)) { - if (type !== 'buffer') { - return jsonStringify(value); - } - var json = value.toJSON(); - // Based on the toJSON result - return jsonStringify(json.data && json.type ? json.data : json, 2) - .replace(/,(\n|$)/g, '$1'); - } - - for (var prop in value) { - if (Object.prototype.hasOwnProperty.call(value, prop)) { - return jsonStringify(exports.canonicalize(value), 2).replace(/,(\n|$)/g, '$1'); - } - } - - return emptyRepresentation(value, type); -}; - -/** - * like JSON.stringify but more sense. - * - * @api private - * @param {Object} object - * @param {number=} spaces - * @param {number=} depth - * @returns {*} - */ -function jsonStringify(object, spaces, depth) { - if (typeof spaces === 'undefined') { - // primitive types - return _stringify(object); - } - - depth = depth || 1; - var space = spaces * depth; - var str = isArray(object) ? '[' : '{'; - var end = isArray(object) ? ']' : '}'; - var length = object.length || exports.keys(object).length; - // `.repeat()` polyfill - function repeat(s, n) { - return new Array(n).join(s); - } - - function _stringify(val) { - switch (exports.type(val)) { - case 'null': - case 'undefined': - val = '[' + val + ']'; - break; - case 'array': - case 'object': - val = jsonStringify(val, spaces, depth + 1); - break; - case 'boolean': - case 'regexp': - case 'number': - val = val === 0 && (1 / val) === -Infinity // `-0` - ? '-0' - : val.toString(); - break; - case 'date': - var sDate = isNaN(val.getTime()) // Invalid date - ? val.toString() - : val.toISOString(); - val = '[Date: ' + sDate + ']'; - break; - case 'buffer': - var json = val.toJSON(); - // Based on the toJSON result - json = json.data && json.type ? json.data : json; - val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']'; - break; - default: - val = (val === '[Function]' || val === '[Circular]') - ? val - : JSON.stringify(val); // string - } - return val; - } - - for (var i in object) { - if (!object.hasOwnProperty(i)) { - continue; // not my business - } - --length; - str += '\n ' + repeat(' ', space) - + (isArray(object) ? '' : '"' + i + '": ') // key - + _stringify(object[i]) // value - + (length ? ',' : ''); // comma - } - - return str - // [], {} - + (str.length !== 1 ? '\n' + repeat(' ', --space) + end : end); -} - -/** - * Test if a value is a buffer. - * - * @api private - * @param {*} value The value to test. - * @return {boolean} True if `value` is a buffer, otherwise false - */ -exports.isBuffer = function(value) { - return typeof Buffer !== 'undefined' && Buffer.isBuffer(value); -}; - -/** - * Return a new Thing that has the keys in sorted order. Recursive. - * - * If the Thing... - * - has already been seen, return string `'[Circular]'` - * - is `undefined`, return string `'[undefined]'` - * - is `null`, return value `null` - * - is some other primitive, return the value - * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method - * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again. - * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()` - * - * @api private - * @see {@link exports.stringify} - * @param {*} value Thing to inspect. May or may not have properties. - * @param {Array} [stack=[]] Stack of seen values - * @return {(Object|Array|Function|string|undefined)} - */ -exports.canonicalize = function(value, stack) { - var canonicalizedObj; - /* eslint-disable no-unused-vars */ - var prop; - /* eslint-enable no-unused-vars */ - var type = exports.type(value); - function withStack(value, fn) { - stack.push(value); - fn(); - stack.pop(); - } - - stack = stack || []; - - if (exports.indexOf(stack, value) !== -1) { - return '[Circular]'; - } - - switch (type) { - case 'undefined': - case 'buffer': - case 'null': - canonicalizedObj = value; - break; - case 'array': - withStack(value, function() { - canonicalizedObj = exports.map(value, function(item) { - return exports.canonicalize(item, stack); - }); - }); - break; - case 'function': - /* eslint-disable guard-for-in */ - for (prop in value) { - canonicalizedObj = {}; - break; - } - /* eslint-enable guard-for-in */ - if (!canonicalizedObj) { - canonicalizedObj = emptyRepresentation(value, type); - break; - } - /* falls through */ - case 'object': - canonicalizedObj = canonicalizedObj || {}; - withStack(value, function() { - exports.forEach(exports.keys(value).sort(), function(key) { - canonicalizedObj[key] = exports.canonicalize(value[key], stack); - }); - }); - break; - case 'date': - case 'number': - case 'regexp': - case 'boolean': - canonicalizedObj = value; - break; - default: - canonicalizedObj = value.toString(); - } - - return canonicalizedObj; -}; - -/** - * Lookup file names at the given `path`. - * - * @api public - * @param {string} path Base path to start searching from. - * @param {string[]} extensions File extensions to look for. - * @param {boolean} recursive Whether or not to recurse into subdirectories. - * @return {string[]} An array of paths. - */ -exports.lookupFiles = function lookupFiles(path, extensions, recursive) { - var files = []; - var re = new RegExp('\\.(' + extensions.join('|') + ')$'); - - if (!exists(path)) { - if (exists(path + '.js')) { - path += '.js'; - } else { - files = glob.sync(path); - if (!files.length) { - throw new Error("cannot resolve path (or pattern) '" + path + "'"); - } - return files; - } - } - - try { - var stat = statSync(path); - if (stat.isFile()) { - return path; - } - } catch (err) { - // ignore error - return; - } - - readdirSync(path).forEach(function(file) { - file = join(path, file); - try { - var stat = statSync(file); - if (stat.isDirectory()) { - if (recursive) { - files = files.concat(lookupFiles(file, extensions, recursive)); - } - return; - } - } catch (err) { - // ignore error - return; - } - if (!stat.isFile() || !re.test(file) || basename(file)[0] === '.') { - return; - } - files.push(file); - }); - - return files; -}; - -/** - * Generate an undefined error with a message warning the user. - * - * @return {Error} - */ - -exports.undefinedError = function() { - return new Error('Caught undefined error, did you throw without specifying what?'); -}; - -/** - * Generate an undefined error if `err` is not defined. - * - * @param {Error} err - * @return {Error} - */ - -exports.getError = function(err) { - return err || exports.undefinedError(); -}; - -/** - * @summary - * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`) - * @description - * When invoking this function you get a filter function that get the Error.stack as an input, - * and return a prettify output. - * (i.e: strip Mocha and internal node functions from stack trace). - * @returns {Function} - */ -exports.stackTraceFilter = function() { - // TODO: Replace with `process.browser` - var slash = '/'; - var is = typeof document === 'undefined' ? { node: true } : { browser: true }; - var cwd = is.node - ? process.cwd() + slash - : (typeof location === 'undefined' ? window.location : location).href.replace(/\/[^\/]*$/, '/'); - - function isMochaInternal(line) { - return (~line.indexOf('node_modules' + slash + 'mocha' + slash)) - || (~line.indexOf('components' + slash + 'mochajs' + slash)) - || (~line.indexOf('components' + slash + 'mocha' + slash)) - || (~line.indexOf(slash + 'mocha.js')); - } - - function isNodeInternal(line) { - return (~line.indexOf('(timers.js:')) - || (~line.indexOf('(events.js:')) - || (~line.indexOf('(node.js:')) - || (~line.indexOf('(module.js:')) - || (~line.indexOf('GeneratorFunctionPrototype.next (native)')) - || false; - } - - return function(stack) { - stack = stack.split('\n'); - - stack = exports.reduce(stack, function(list, line) { - if (isMochaInternal(line)) { - return list; - } - - if (is.node && isNodeInternal(line)) { - return list; - } - - // Clean up cwd(absolute) - list.push(line.replace(cwd, '')); - return list; - }, []); - - return stack.join('\n'); - }; -}; - -}).call(this,require('_process'),require("buffer").Buffer) -},{"_process":51,"buffer":43,"debug":2,"fs":41,"glob":41,"path":41,"util":66}],40:[function(require,module,exports){ -(function (process){ -var WritableStream = require('stream').Writable -var inherits = require('util').inherits - -module.exports = BrowserStdout - - -inherits(BrowserStdout, WritableStream) - -function BrowserStdout(opts) { - if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts) - - opts = opts || {} - WritableStream.call(this, opts) - this.label = (opts.label !== undefined) ? opts.label : 'stdout' -} - -BrowserStdout.prototype._write = function(chunks, encoding, cb) { - var output = chunks.toString ? chunks.toString() : chunks - if (this.label === false) { - console.log(output) - } else { - console.log(this.label+':', output) - } - process.nextTick(cb) -} - -}).call(this,require('_process')) -},{"_process":51,"stream":63,"util":66}],41:[function(require,module,exports){ - -},{}],42:[function(require,module,exports){ -arguments[4][41][0].apply(exports,arguments) -},{"dup":41}],43:[function(require,module,exports){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - -var base64 = require('base64-js') -var ieee754 = require('ieee754') -var isArray = require('is-array') - -exports.Buffer = Buffer -exports.SlowBuffer = SlowBuffer -exports.INSPECT_MAX_BYTES = 50 -Buffer.poolSize = 8192 // not used by this implementation - -var rootParent = {} - -/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Safari 5-7 lacks support for changing the `Object.prototype.constructor` property - * on objects. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ -Buffer.TYPED_ARRAY_SUPPORT = (function () { - function Bar () {} - try { - var arr = new Uint8Array(1) - arr.foo = function () { return 42 } - arr.constructor = Bar - return arr.foo() === 42 && // typed array instances can be augmented - arr.constructor === Bar && // constructor can be set - typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` - arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` - } catch (e) { - return false - } -})() - -function kMaxLength () { - return Buffer.TYPED_ARRAY_SUPPORT - ? 0x7fffffff - : 0x3fffffff -} - -/** - * Class: Buffer - * ============= - * - * The Buffer constructor returns instances of `Uint8Array` that are augmented - * with function properties for all the node `Buffer` API functions. We use - * `Uint8Array` so that square bracket notation works as expected -- it returns - * a single octet. - * - * By augmenting the instances, we can avoid modifying the `Uint8Array` - * prototype. - */ -function Buffer (arg) { - if (!(this instanceof Buffer)) { - // Avoid going through an ArgumentsAdaptorTrampoline in the common case. - if (arguments.length > 1) return new Buffer(arg, arguments[1]) - return new Buffer(arg) - } - - this.length = 0 - this.parent = undefined - - // Common case. - if (typeof arg === 'number') { - return fromNumber(this, arg) - } - - // Slightly less common case. - if (typeof arg === 'string') { - return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8') - } - - // Unusual. - return fromObject(this, arg) -} - -function fromNumber (that, length) { - that = allocate(that, length < 0 ? 0 : checked(length) | 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < length; i++) { - that[i] = 0 - } - } - return that -} - -function fromString (that, string, encoding) { - if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8' - - // Assumption: byteLength() return value is always < kMaxLength. - var length = byteLength(string, encoding) | 0 - that = allocate(that, length) - - that.write(string, encoding) - return that -} - -function fromObject (that, object) { - if (Buffer.isBuffer(object)) return fromBuffer(that, object) - - if (isArray(object)) return fromArray(that, object) - - if (object == null) { - throw new TypeError('must start with number, buffer, array or string') - } - - if (typeof ArrayBuffer !== 'undefined') { - if (object.buffer instanceof ArrayBuffer) { - return fromTypedArray(that, object) - } - if (object instanceof ArrayBuffer) { - return fromArrayBuffer(that, object) - } - } - - if (object.length) return fromArrayLike(that, object) - - return fromJsonObject(that, object) -} - -function fromBuffer (that, buffer) { - var length = checked(buffer.length) | 0 - that = allocate(that, length) - buffer.copy(that, 0, 0, length) - return that -} - -function fromArray (that, array) { - var length = checked(array.length) | 0 - that = allocate(that, length) - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -// Duplicate of fromArray() to keep fromArray() monomorphic. -function fromTypedArray (that, array) { - var length = checked(array.length) | 0 - that = allocate(that, length) - // Truncating the elements is probably not what people expect from typed - // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior - // of the old Buffer constructor. - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -function fromArrayBuffer (that, array) { - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - array.byteLength - that = Buffer._augment(new Uint8Array(array)) - } else { - // Fallback: Return an object instance of the Buffer class - that = fromTypedArray(that, new Uint8Array(array)) - } - return that -} - -function fromArrayLike (that, array) { - var length = checked(array.length) | 0 - that = allocate(that, length) - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -// Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object. -// Returns a zero-length buffer for inputs that don't conform to the spec. -function fromJsonObject (that, object) { - var array - var length = 0 - - if (object.type === 'Buffer' && isArray(object.data)) { - array = object.data - length = checked(array.length) | 0 - } - that = allocate(that, length) - - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -function allocate (that, length) { - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = Buffer._augment(new Uint8Array(length)) - } else { - // Fallback: Return an object instance of the Buffer class - that.length = length - that._isBuffer = true - } - - var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1 - if (fromPool) that.parent = rootParent - - return that -} - -function checked (length) { - // Note: cannot use `length < kMaxLength` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= kMaxLength()) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + kMaxLength().toString(16) + ' bytes') - } - return length | 0 -} - -function SlowBuffer (subject, encoding) { - if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding) - - var buf = new Buffer(subject, encoding) - delete buf.parent - return buf -} - -Buffer.isBuffer = function isBuffer (b) { - return !!(b != null && b._isBuffer) -} - -Buffer.compare = function compare (a, b) { - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - var i = 0 - var len = Math.min(x, y) - while (i < len) { - if (a[i] !== b[i]) break - - ++i - } - - if (i !== len) { - x = a[i] - y = b[i] - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'binary': - case 'base64': - case 'raw': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } -} - -Buffer.concat = function concat (list, length) { - if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.') - - if (list.length === 0) { - return new Buffer(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; i++) { - length += list[i].length - } - } - - var buf = new Buffer(length) - var pos = 0 - for (i = 0; i < list.length; i++) { - var item = list[i] - item.copy(buf, pos) - pos += item.length - } - return buf -} - -function byteLength (string, encoding) { - if (typeof string !== 'string') string = '' + string - - var len = string.length - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'binary': - // Deprecated - case 'raw': - case 'raws': - return len - case 'utf8': - case 'utf-8': - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} -Buffer.byteLength = byteLength - -// pre-set for values that may exist in the future -Buffer.prototype.length = undefined -Buffer.prototype.parent = undefined - -function slowToString (encoding, start, end) { - var loweredCase = false - - start = start | 0 - end = end === undefined || end === Infinity ? this.length : end | 0 - - if (!encoding) encoding = 'utf8' - if (start < 0) start = 0 - if (end > this.length) end = this.length - if (end <= start) return '' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'binary': - return binarySlice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } -} - -Buffer.prototype.toString = function toString () { - var length = this.length | 0 - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) -} - -Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 -} - -Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') - if (this.length > max) str += ' ... ' - } - return '' -} - -Buffer.prototype.compare = function compare (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return 0 - return Buffer.compare(this, b) -} - -Buffer.prototype.indexOf = function indexOf (val, byteOffset) { - if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff - else if (byteOffset < -0x80000000) byteOffset = -0x80000000 - byteOffset >>= 0 - - if (this.length === 0) return -1 - if (byteOffset >= this.length) return -1 - - // Negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0) - - if (typeof val === 'string') { - if (val.length === 0) return -1 // special case: looking for empty string always fails - return String.prototype.indexOf.call(this, val, byteOffset) - } - if (Buffer.isBuffer(val)) { - return arrayIndexOf(this, val, byteOffset) - } - if (typeof val === 'number') { - if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') { - return Uint8Array.prototype.indexOf.call(this, val, byteOffset) - } - return arrayIndexOf(this, [ val ], byteOffset) - } - - function arrayIndexOf (arr, val, byteOffset) { - var foundIndex = -1 - for (var i = 0; byteOffset + i < arr.length; i++) { - if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex - } else { - foundIndex = -1 - } - } - return -1 - } - - throw new TypeError('val must be string, number or Buffer') -} - -// `get` is deprecated -Buffer.prototype.get = function get (offset) { - console.log('.get() is deprecated. Access using array indexes instead.') - return this.readUInt8(offset) -} - -// `set` is deprecated -Buffer.prototype.set = function set (v, offset) { - console.log('.set() is deprecated. Access using array indexes instead.') - return this.writeUInt8(v, offset) -} - -function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - // must be an even number of digits - var strLen = string.length - if (strLen % 2 !== 0) throw new Error('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; i++) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (isNaN(parsed)) throw new Error('Invalid hex string') - buf[offset + i] = parsed - } - return i -} - -function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) -} - -function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) -} - -function binaryWrite (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) -} - -function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) -} - -function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) -} - -Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset | 0 - if (isFinite(length)) { - length = length | 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - // legacy write(string, encoding, offset, length) - remove in v0.13 - } else { - var swap = encoding - encoding = offset - offset = length | 0 - length = swap - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'binary': - return binaryWrite(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} - -Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } -} - -function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } -} - -function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) -} - -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -var MAX_ARGUMENTS_LENGTH = 0x1000 - -function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res -} - -function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; i++) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret -} - -function binarySlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; i++) { - ret += String.fromCharCode(buf[i]) - } - return ret -} - -function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; i++) { - out += toHex(buf[i]) - } - return out -} - -function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) - } - return res -} - -Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf - if (Buffer.TYPED_ARRAY_SUPPORT) { - newBuf = Buffer._augment(this.subarray(start, end)) - } else { - var sliceLen = end - start - newBuf = new Buffer(sliceLen, undefined) - for (var i = 0; i < sliceLen; i++) { - newBuf[i] = this[i + start] - } - } - - if (newBuf.length) newBuf.parent = this.parent || this - - return newBuf -} - -/* - * Need to make sure that buffer isn't trying to write out of bounds. - */ -function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') -} - -Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val -} - -Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val -} - -Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] -} - -Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) -} - -Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] -} - -Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) -} - -Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) -} - -Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) -} - -Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) -} - -Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) -} - -Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) -} - -Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) -} - -Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) -} - -Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) -} - -function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance') - if (value > max || value < min) throw new RangeError('value is out of bounds') - if (offset + ext > buf.length) throw new RangeError('index out of range') -} - -Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - this[offset] = value - return offset + 1 -} - -function objectWriteUInt16 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) { - buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> - (littleEndian ? i : 1 - i) * 8 - } -} - -Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = value - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -function objectWriteUInt32 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffffffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) { - buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff - } -} - -Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = value - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = value - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = value < 0 ? 1 : 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = value < 0 ? 1 : 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - if (value < 0) value = 0xff + value + 1 - this[offset] = value - return offset + 1 -} - -Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = value - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = value - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -function checkIEEE754 (buf, value, offset, ext, max, min) { - if (value > max || value < min) throw new RangeError('value is out of bounds') - if (offset + ext > buf.length) throw new RangeError('index out of range') - if (offset < 0) throw new RangeError('index out of range') -} - -function writeFloat (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 -} - -Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) -} - -function writeDouble (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 -} - -Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) -} - -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - var i - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; i--) { - target[i + targetStart] = this[i + start] - } - } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { - // ascending copy from start - for (i = 0; i < len; i++) { - target[i + targetStart] = this[i + start] - } - } else { - target._set(this.subarray(start, start + len), targetStart) - } - - return len -} - -// fill(value, start=0, end=buffer.length) -Buffer.prototype.fill = function fill (value, start, end) { - if (!value) value = 0 - if (!start) start = 0 - if (!end) end = this.length - - if (end < start) throw new RangeError('end < start') - - // Fill 0 bytes; we're done - if (end === start) return - if (this.length === 0) return - - if (start < 0 || start >= this.length) throw new RangeError('start out of bounds') - if (end < 0 || end > this.length) throw new RangeError('end out of bounds') - - var i - if (typeof value === 'number') { - for (i = start; i < end; i++) { - this[i] = value - } - } else { - var bytes = utf8ToBytes(value.toString()) - var len = bytes.length - for (i = start; i < end; i++) { - this[i] = bytes[i % len] - } - } - - return this -} - -/** - * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance. - * Added in Node 0.12. Only available in browsers that support ArrayBuffer. - */ -Buffer.prototype.toArrayBuffer = function toArrayBuffer () { - if (typeof Uint8Array !== 'undefined') { - if (Buffer.TYPED_ARRAY_SUPPORT) { - return (new Buffer(this)).buffer - } else { - var buf = new Uint8Array(this.length) - for (var i = 0, len = buf.length; i < len; i += 1) { - buf[i] = this[i] - } - return buf.buffer - } - } else { - throw new TypeError('Buffer.toArrayBuffer not supported in this browser') - } -} - -// HELPER FUNCTIONS -// ================ - -var BP = Buffer.prototype - -/** - * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods - */ -Buffer._augment = function _augment (arr) { - arr.constructor = Buffer - arr._isBuffer = true - - // save reference to original Uint8Array set method before overwriting - arr._set = arr.set - - // deprecated - arr.get = BP.get - arr.set = BP.set - - arr.write = BP.write - arr.toString = BP.toString - arr.toLocaleString = BP.toString - arr.toJSON = BP.toJSON - arr.equals = BP.equals - arr.compare = BP.compare - arr.indexOf = BP.indexOf - arr.copy = BP.copy - arr.slice = BP.slice - arr.readUIntLE = BP.readUIntLE - arr.readUIntBE = BP.readUIntBE - arr.readUInt8 = BP.readUInt8 - arr.readUInt16LE = BP.readUInt16LE - arr.readUInt16BE = BP.readUInt16BE - arr.readUInt32LE = BP.readUInt32LE - arr.readUInt32BE = BP.readUInt32BE - arr.readIntLE = BP.readIntLE - arr.readIntBE = BP.readIntBE - arr.readInt8 = BP.readInt8 - arr.readInt16LE = BP.readInt16LE - arr.readInt16BE = BP.readInt16BE - arr.readInt32LE = BP.readInt32LE - arr.readInt32BE = BP.readInt32BE - arr.readFloatLE = BP.readFloatLE - arr.readFloatBE = BP.readFloatBE - arr.readDoubleLE = BP.readDoubleLE - arr.readDoubleBE = BP.readDoubleBE - arr.writeUInt8 = BP.writeUInt8 - arr.writeUIntLE = BP.writeUIntLE - arr.writeUIntBE = BP.writeUIntBE - arr.writeUInt16LE = BP.writeUInt16LE - arr.writeUInt16BE = BP.writeUInt16BE - arr.writeUInt32LE = BP.writeUInt32LE - arr.writeUInt32BE = BP.writeUInt32BE - arr.writeIntLE = BP.writeIntLE - arr.writeIntBE = BP.writeIntBE - arr.writeInt8 = BP.writeInt8 - arr.writeInt16LE = BP.writeInt16LE - arr.writeInt16BE = BP.writeInt16BE - arr.writeInt32LE = BP.writeInt32LE - arr.writeInt32BE = BP.writeInt32BE - arr.writeFloatLE = BP.writeFloatLE - arr.writeFloatBE = BP.writeFloatBE - arr.writeDoubleLE = BP.writeDoubleLE - arr.writeDoubleBE = BP.writeDoubleBE - arr.fill = BP.fill - arr.inspect = BP.inspect - arr.toArrayBuffer = BP.toArrayBuffer - - return arr -} - -var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g - -function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = stringtrim(str).replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str -} - -function stringtrim (str) { - if (str.trim) return str.trim() - return str.replace(/^\s+|\s+$/g, '') -} - -function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) -} - -function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; i++) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00 | 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes -} - -function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; i++) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray -} - -function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; i++) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray -} - -function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) -} - -function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; i++) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i -} - -},{"base64-js":44,"ieee754":45,"is-array":46}],44:[function(require,module,exports){ -var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - -;(function (exports) { - 'use strict'; - - var Arr = (typeof Uint8Array !== 'undefined') - ? Uint8Array - : Array - - var PLUS = '+'.charCodeAt(0) - var SLASH = '/'.charCodeAt(0) - var NUMBER = '0'.charCodeAt(0) - var LOWER = 'a'.charCodeAt(0) - var UPPER = 'A'.charCodeAt(0) - var PLUS_URL_SAFE = '-'.charCodeAt(0) - var SLASH_URL_SAFE = '_'.charCodeAt(0) - - function decode (elt) { - var code = elt.charCodeAt(0) - if (code === PLUS || - code === PLUS_URL_SAFE) - return 62 // '+' - if (code === SLASH || - code === SLASH_URL_SAFE) - return 63 // '/' - if (code < NUMBER) - return -1 //no match - if (code < NUMBER + 10) - return code - NUMBER + 26 + 26 - if (code < UPPER + 26) - return code - UPPER - if (code < LOWER + 26) - return code - LOWER + 26 - } - - function b64ToByteArray (b64) { - var i, j, l, tmp, placeHolders, arr - - if (b64.length % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // the number of equal signs (place holders) - // if there are two placeholders, than the two characters before it - // represent one byte - // if there is only one, then the three characters before it represent 2 bytes - // this is just a cheap hack to not do indexOf twice - var len = b64.length - placeHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0 - - // base64 is 4/3 + up to two characters of the original data - arr = new Arr(b64.length * 3 / 4 - placeHolders) - - // if there are placeholders, only get up to the last complete 4 chars - l = placeHolders > 0 ? b64.length - 4 : b64.length - - var L = 0 - - function push (v) { - arr[L++] = v - } - - for (i = 0, j = 0; i < l; i += 4, j += 3) { - tmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3)) - push((tmp & 0xFF0000) >> 16) - push((tmp & 0xFF00) >> 8) - push(tmp & 0xFF) - } - - if (placeHolders === 2) { - tmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4) - push(tmp & 0xFF) - } else if (placeHolders === 1) { - tmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2) - push((tmp >> 8) & 0xFF) - push(tmp & 0xFF) - } - - return arr - } - - function uint8ToBase64 (uint8) { - var i, - extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes - output = "", - temp, length - - function encode (num) { - return lookup.charAt(num) - } - - function tripletToBase64 (num) { - return encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F) - } - - // go through the array every three bytes, we'll deal with trailing stuff later - for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) { - temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) - output += tripletToBase64(temp) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - switch (extraBytes) { - case 1: - temp = uint8[uint8.length - 1] - output += encode(temp >> 2) - output += encode((temp << 4) & 0x3F) - output += '==' - break - case 2: - temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1]) - output += encode(temp >> 10) - output += encode((temp >> 4) & 0x3F) - output += encode((temp << 2) & 0x3F) - output += '=' - break - } - - return output - } - - exports.toByteArray = b64ToByteArray - exports.fromByteArray = uint8ToBase64 -}(typeof exports === 'undefined' ? (this.base64js = {}) : exports)) - -},{}],45:[function(require,module,exports){ -exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) -} - -exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 -} - -},{}],46:[function(require,module,exports){ - -/** - * isArray - */ - -var isArray = Array.isArray; - -/** - * toString - */ - -var str = Object.prototype.toString; - -/** - * Whether or not the given `val` - * is an array. - * - * example: - * - * isArray([]); - * // > true - * isArray(arguments); - * // > false - * isArray(''); - * // > false - * - * @param {mixed} val - * @return {bool} - */ - -module.exports = isArray || function (val) { - return !! val && '[object Array]' == str.call(val); -}; - -},{}],47:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -function EventEmitter() { - this._events = this._events || {}; - this._maxListeners = this._maxListeners || undefined; -} -module.exports = EventEmitter; - -// Backwards-compat with node 0.10.x -EventEmitter.EventEmitter = EventEmitter; - -EventEmitter.prototype._events = undefined; -EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -EventEmitter.defaultMaxListeners = 10; - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -EventEmitter.prototype.setMaxListeners = function(n) { - if (!isNumber(n) || n < 0 || isNaN(n)) - throw TypeError('n must be a positive number'); - this._maxListeners = n; - return this; -}; - -EventEmitter.prototype.emit = function(type) { - var er, handler, len, args, i, listeners; - - if (!this._events) - this._events = {}; - - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events.error || - (isObject(this._events.error) && !this._events.error.length)) { - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } - throw TypeError('Uncaught, unspecified "error" event.'); - } - } - - handler = this._events[type]; - - if (isUndefined(handler)) - return false; - - if (isFunction(handler)) { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - len = arguments.length; - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - handler.apply(this, args); - } - } else if (isObject(handler)) { - len = arguments.length; - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - - listeners = handler.slice(); - len = listeners.length; - for (i = 0; i < len; i++) - listeners[i].apply(this, args); - } - - return true; -}; - -EventEmitter.prototype.addListener = function(type, listener) { - var m; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events) - this._events = {}; - - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (this._events.newListener) - this.emit('newListener', type, - isFunction(listener.listener) ? - listener.listener : listener); - - if (!this._events[type]) - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - else if (isObject(this._events[type])) - // If we've already got an array, just append. - this._events[type].push(listener); - else - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - - // Check for listener leak - if (isObject(this._events[type]) && !this._events[type].warned) { - var m; - if (!isUndefined(this._maxListeners)) { - m = this._maxListeners; - } else { - m = EventEmitter.defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - if (typeof console.trace === 'function') { - // not supported in IE 10 - console.trace(); - } - } - } - - return this; -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.once = function(type, listener) { - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - var fired = false; - - function g() { - this.removeListener(type, g); - - if (!fired) { - fired = true; - listener.apply(this, arguments); - } - } - - g.listener = listener; - this.on(type, g); - - return this; -}; - -// emits a 'removeListener' event iff the listener was removed -EventEmitter.prototype.removeListener = function(type, listener) { - var list, position, length, i; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events || !this._events[type]) - return this; - - list = this._events[type]; - length = list.length; - position = -1; - - if (list === listener || - (isFunction(list.listener) && list.listener === listener)) { - delete this._events[type]; - if (this._events.removeListener) - this.emit('removeListener', type, listener); - - } else if (isObject(list)) { - for (i = length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - position = i; - break; - } - } - - if (position < 0) - return this; - - if (list.length === 1) { - list.length = 0; - delete this._events[type]; - } else { - list.splice(position, 1); - } - - if (this._events.removeListener) - this.emit('removeListener', type, listener); - } - - return this; -}; - -EventEmitter.prototype.removeAllListeners = function(type) { - var key, listeners; - - if (!this._events) - return this; - - // not listening for removeListener, no need to emit - if (!this._events.removeListener) { - if (arguments.length === 0) - this._events = {}; - else if (this._events[type]) - delete this._events[type]; - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - for (key in this._events) { - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = {}; - return this; - } - - listeners = this._events[type]; - - if (isFunction(listeners)) { - this.removeListener(type, listeners); - } else { - // LIFO order - while (listeners.length) - this.removeListener(type, listeners[listeners.length - 1]); - } - delete this._events[type]; - - return this; -}; - -EventEmitter.prototype.listeners = function(type) { - var ret; - if (!this._events || !this._events[type]) - ret = []; - else if (isFunction(this._events[type])) - ret = [this._events[type]]; - else - ret = this._events[type].slice(); - return ret; -}; - -EventEmitter.listenerCount = function(emitter, type) { - var ret; - if (!emitter._events || !emitter._events[type]) - ret = 0; - else if (isFunction(emitter._events[type])) - ret = 1; - else - ret = emitter._events[type].length; - return ret; -}; - -function isFunction(arg) { - return typeof arg === 'function'; -} - -function isNumber(arg) { - return typeof arg === 'number'; -} - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} - -function isUndefined(arg) { - return arg === void 0; -} - -},{}],48:[function(require,module,exports){ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - -},{}],49:[function(require,module,exports){ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; - -},{}],50:[function(require,module,exports){ -exports.endianness = function () { return 'LE' }; - -exports.hostname = function () { - if (typeof location !== 'undefined') { - return location.hostname - } - else return ''; -}; - -exports.loadavg = function () { return [] }; - -exports.uptime = function () { return 0 }; - -exports.freemem = function () { - return Number.MAX_VALUE; -}; - -exports.totalmem = function () { - return Number.MAX_VALUE; -}; - -exports.cpus = function () { return [] }; - -exports.type = function () { return 'Browser' }; - -exports.release = function () { - if (typeof navigator !== 'undefined') { - return navigator.appVersion; - } - return ''; -}; - -exports.networkInterfaces -= exports.getNetworkInterfaces -= function () { return {} }; - -exports.arch = function () { return 'javascript' }; - -exports.platform = function () { return 'browser' }; - -exports.tmpdir = exports.tmpDir = function () { - return '/tmp'; -}; - -exports.EOL = '\n'; - -},{}],51:[function(require,module,exports){ -// shim for using process in browser - -var process = module.exports = {}; -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = setTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - clearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - setTimeout(drainQueue, 0); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],52:[function(require,module,exports){ -module.exports = require("./lib/_stream_duplex.js") - -},{"./lib/_stream_duplex.js":53}],53:[function(require,module,exports){ -(function (process){ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - -module.exports = Duplex; - -/**/ -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) keys.push(key); - return keys; -} -/**/ - - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -var Readable = require('./_stream_readable'); -var Writable = require('./_stream_writable'); - -util.inherits(Duplex, Readable); - -forEach(objectKeys(Writable.prototype), function(method) { - if (!Duplex.prototype[method]) - Duplex.prototype[method] = Writable.prototype[method]; -}); - -function Duplex(options) { - if (!(this instanceof Duplex)) - return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) - this.readable = false; - - if (options && options.writable === false) - this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) - this.allowHalfOpen = false; - - this.once('end', onend); -} - -// the no-half-open enforcer -function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) - return; - - // no more data can be written. - // But allow more writes to happen in this tick. - process.nextTick(this.end.bind(this)); -} - -function forEach (xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} - -}).call(this,require('_process')) -},{"./_stream_readable":55,"./_stream_writable":57,"_process":51,"core-util-is":58,"inherits":48}],54:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - -module.exports = PassThrough; - -var Transform = require('./_stream_transform'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(PassThrough, Transform); - -function PassThrough(options) { - if (!(this instanceof PassThrough)) - return new PassThrough(options); - - Transform.call(this, options); -} - -PassThrough.prototype._transform = function(chunk, encoding, cb) { - cb(null, chunk); -}; - -},{"./_stream_transform":56,"core-util-is":58,"inherits":48}],55:[function(require,module,exports){ -(function (process){ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -module.exports = Readable; - -/**/ -var isArray = require('isarray'); -/**/ - - -/**/ -var Buffer = require('buffer').Buffer; -/**/ - -Readable.ReadableState = ReadableState; - -var EE = require('events').EventEmitter; - -/**/ -if (!EE.listenerCount) EE.listenerCount = function(emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -var Stream = require('stream'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -var StringDecoder; - - -/**/ -var debug = require('util'); -if (debug && debug.debuglog) { - debug = debug.debuglog('stream'); -} else { - debug = function () {}; -} -/**/ - - -util.inherits(Readable, Stream); - -function ReadableState(options, stream) { - var Duplex = require('./_stream_duplex'); - - options = options || {}; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var defaultHwm = options.objectMode ? 16 : 16 * 1024; - this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~~this.highWaterMark; - - this.buffer = []; - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) - this.objectMode = this.objectMode || !!options.readableObjectMode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // when piping, we only care about 'readable' events that happen - // after read()ing all the bytes and not getting any pushback. - this.ranOut = false; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) - StringDecoder = require('string_decoder/').StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -function Readable(options) { - var Duplex = require('./_stream_duplex'); - - if (!(this instanceof Readable)) - return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - Stream.call(this); -} - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function(chunk, encoding) { - var state = this._readableState; - - if (util.isString(chunk) && !state.objectMode) { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = new Buffer(chunk, encoding); - encoding = ''; - } - } - - return readableAddChunk(this, state, chunk, encoding, false); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function(chunk) { - var state = this._readableState; - return readableAddChunk(this, state, chunk, '', true); -}; - -function readableAddChunk(stream, state, chunk, encoding, addToFront) { - var er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (util.isNullOrUndefined(chunk)) { - state.reading = false; - if (!state.ended) - onEofChunk(stream, state); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (state.ended && !addToFront) { - var e = new Error('stream.push() after EOF'); - stream.emit('error', e); - } else if (state.endEmitted && addToFront) { - var e = new Error('stream.unshift() after end event'); - stream.emit('error', e); - } else { - if (state.decoder && !addToFront && !encoding) - chunk = state.decoder.write(chunk); - - if (!addToFront) - state.reading = false; - - // if we want the data now, just emit it. - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) - state.buffer.unshift(chunk); - else - state.buffer.push(chunk); - - if (state.needReadable) - emitReadable(stream); - } - - maybeReadMore(stream, state); - } - } else if (!addToFront) { - state.reading = false; - } - - return needMoreData(state); -} - - - -// if it's past the high water mark, we can push in some more. -// Also, if we have no data yet, we can stand some -// more bytes. This is to work around cases where hwm=0, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -function needMoreData(state) { - return !state.ended && - (state.needReadable || - state.length < state.highWaterMark || - state.length === 0); -} - -// backwards compatibility. -Readable.prototype.setEncoding = function(enc) { - if (!StringDecoder) - StringDecoder = require('string_decoder/').StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; -}; - -// Don't raise the hwm > 128MB -var MAX_HWM = 0x800000; -function roundUpToNextPowerOf2(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 - n--; - for (var p = 1; p < 32; p <<= 1) n |= n >> p; - n++; - } - return n; -} - -function howMuchToRead(n, state) { - if (state.length === 0 && state.ended) - return 0; - - if (state.objectMode) - return n === 0 ? 0 : 1; - - if (isNaN(n) || util.isNull(n)) { - // only flow one buffer at a time - if (state.flowing && state.buffer.length) - return state.buffer[0].length; - else - return state.length; - } - - if (n <= 0) - return 0; - - // If we're asking for more than the target buffer level, - // then raise the water mark. Bump up to the next highest - // power of 2, to prevent increasing it excessively in tiny - // amounts. - if (n > state.highWaterMark) - state.highWaterMark = roundUpToNextPowerOf2(n); - - // don't have that much. return null, unless we've ended. - if (n > state.length) { - if (!state.ended) { - state.needReadable = true; - return 0; - } else - return state.length; - } - - return n; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function(n) { - debug('read', n); - var state = this._readableState; - var nOrig = n; - - if (!util.isNumber(n) || n > 0) - state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && - state.needReadable && - (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) - endReadable(this); - else - emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) - endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } - - if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) - state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - } - - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (doRead && !state.reading) - n = howMuchToRead(nOrig, state); - - var ret; - if (n > 0) - ret = fromList(n, state); - else - ret = null; - - if (util.isNull(ret)) { - state.needReadable = true; - n = 0; - } - - state.length -= n; - - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (state.length === 0 && !state.ended) - state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended && state.length === 0) - endReadable(this); - - if (!util.isNull(ret)) - this.emit('data', ret); - - return ret; -}; - -function chunkInvalid(state, chunk) { - var er = null; - if (!util.isBuffer(chunk) && - !util.isString(chunk) && - !util.isNullOrUndefined(chunk) && - !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - - -function onEofChunk(stream, state) { - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) - process.nextTick(function() { - emitReadable_(stream); - }); - else - emitReadable_(stream); - } -} - -function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); -} - - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - process.nextTick(function() { - maybeReadMore_(stream, state); - }); - } -} - -function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && - state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break; - else - len = state.length; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function(n) { - this.emit('error', new Error('not implemented')); -}; - -Readable.prototype.pipe = function(dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && - dest !== process.stdout && - dest !== process.stderr; - - var endFn = doEnd ? onend : cleanup; - if (state.endEmitted) - process.nextTick(endFn); - else - src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable) { - debug('onunpipe'); - if (readable === src) { - cleanup(); - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', cleanup); - src.removeListener('data', ondata); - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && - (!dest._writableState || dest._writableState.needDrain)) - ondrain(); - } - - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - var ret = dest.write(chunk); - if (false === ret) { - debug('false write response, pause', - src._readableState.awaitDrain); - src._readableState.awaitDrain++; - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EE.listenerCount(dest, 'error') === 0) - dest.emit('error', er); - } - // This is a brutally ugly hack to make sure that our error handler - // is attached before any userland ones. NEVER DO THIS. - if (!dest._events || !dest._events.error) - dest.on('error', onerror); - else if (isArray(dest._events.error)) - dest._events.error.unshift(onerror); - else - dest._events.error = [onerror, dest._events.error]; - - - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; -}; - -function pipeOnDrain(src) { - return function() { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) - state.awaitDrain--; - if (state.awaitDrain === 0 && EE.listenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} - - -Readable.prototype.unpipe = function(dest) { - var state = this._readableState; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) - return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) - return this; - - if (!dest) - dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) - dest.emit('unpipe', this); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var i = 0; i < len; i++) - dests[i].emit('unpipe', this); - return this; - } - - // try to find the right one. - var i = indexOf(state.pipes, dest); - if (i === -1) - return this; - - state.pipes.splice(i, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) - state.pipes = state.pipes[0]; - - dest.emit('unpipe', this); - - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function(ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - // If listening to data, and it has not explicitly been paused, - // then call resume to start the flow of data on the next tick. - if (ev === 'data' && false !== this._readableState.flowing) { - this.resume(); - } - - if (ev === 'readable' && this.readable) { - var state = this._readableState; - if (!state.readableListening) { - state.readableListening = true; - state.emittedReadable = false; - state.needReadable = true; - if (!state.reading) { - var self = this; - process.nextTick(function() { - debug('readable nexttick read 0'); - self.read(0); - }); - } else if (state.length) { - emitReadable(this, state); - } - } - } - - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function() { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - if (!state.reading) { - debug('resume read 0'); - this.read(0); - } - resume(this, state); - } - return this; -}; - -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - process.nextTick(function() { - resume_(stream, state); - }); - } -} - -function resume_(stream, state) { - state.resumeScheduled = false; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) - stream.read(0); -} - -Readable.prototype.pause = function() { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; -}; - -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - if (state.flowing) { - do { - var chunk = stream.read(); - } while (null !== chunk && state.flowing); - } -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function(stream) { - var state = this._readableState; - var paused = false; - - var self = this; - stream.on('end', function() { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) - self.push(chunk); - } - - self.push(null); - }); - - stream.on('data', function(chunk) { - debug('wrapped data'); - if (state.decoder) - chunk = state.decoder.write(chunk); - if (!chunk || !state.objectMode && !chunk.length) - return; - - var ret = self.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (util.isFunction(stream[i]) && util.isUndefined(this[i])) { - this[i] = function(method) { return function() { - return stream[method].apply(stream, arguments); - }}(i); - } - } - - // proxy certain important events. - var events = ['error', 'close', 'destroy', 'pause', 'resume']; - forEach(events, function(ev) { - stream.on(ev, self.emit.bind(self, ev)); - }); - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - self._read = function(n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return self; -}; - - - -// exposed for testing purposes only. -Readable._fromList = fromList; - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -function fromList(n, state) { - var list = state.buffer; - var length = state.length; - var stringMode = !!state.decoder; - var objectMode = !!state.objectMode; - var ret; - - // nothing in the list, definitely empty. - if (list.length === 0) - return null; - - if (length === 0) - ret = null; - else if (objectMode) - ret = list.shift(); - else if (!n || n >= length) { - // read it all, truncate the array. - if (stringMode) - ret = list.join(''); - else - ret = Buffer.concat(list, length); - list.length = 0; - } else { - // read just some of it. - if (n < list[0].length) { - // just take a part of the first list item. - // slice is the same for buffers and strings. - var buf = list[0]; - ret = buf.slice(0, n); - list[0] = buf.slice(n); - } else if (n === list[0].length) { - // first list is a perfect match - ret = list.shift(); - } else { - // complex case. - // we have enough to cover it, but it spans past the first buffer. - if (stringMode) - ret = ''; - else - ret = new Buffer(n); - - var c = 0; - for (var i = 0, l = list.length; i < l && c < n; i++) { - var buf = list[0]; - var cpy = Math.min(n - c, buf.length); - - if (stringMode) - ret += buf.slice(0, cpy); - else - buf.copy(ret, c, 0, cpy); - - if (cpy < buf.length) - list[0] = buf.slice(cpy); - else - list.shift(); - - c += cpy; - } - } - } - - return ret; -} - -function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) - throw new Error('endReadable called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - process.nextTick(function() { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } - }); - } -} - -function forEach (xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} - -function indexOf (xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} - -}).call(this,require('_process')) -},{"./_stream_duplex":53,"_process":51,"buffer":43,"core-util-is":58,"events":47,"inherits":48,"isarray":49,"stream":63,"string_decoder/":64,"util":42}],56:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - - -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - -module.exports = Transform; - -var Duplex = require('./_stream_duplex'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(Transform, Duplex); - - -function TransformState(options, stream) { - this.afterTransform = function(er, data) { - return afterTransform(stream, er, data); - }; - - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; -} - -function afterTransform(stream, er, data) { - var ts = stream._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) - return stream.emit('error', new Error('no writecb in Transform class')); - - ts.writechunk = null; - ts.writecb = null; - - if (!util.isNullOrUndefined(data)) - stream.push(data); - - if (cb) - cb(er); - - var rs = stream._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); - } -} - - -function Transform(options) { - if (!(this instanceof Transform)) - return new Transform(options); - - Duplex.call(this, options); - - this._transformState = new TransformState(options, this); - - // when the writable side finishes, then flush out anything remaining. - var stream = this; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - this.once('prefinish', function() { - if (util.isFunction(this._flush)) - this._flush(function(er) { - done(stream, er); - }); - else - done(stream); - }); -} - -Transform.prototype.push = function(chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; - -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function(chunk, encoding, cb) { - throw new Error('not implemented'); -}; - -Transform.prototype._write = function(chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || - rs.needReadable || - rs.length < rs.highWaterMark) - this._read(rs.highWaterMark); - } -}; - -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function(n) { - var ts = this._transformState; - - if (!util.isNull(ts.writechunk) && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; - - -function done(stream, er) { - if (er) - return stream.emit('error', er); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; - - if (ws.length) - throw new Error('calling transform done when ws.length != 0'); - - if (ts.transforming) - throw new Error('calling transform done when still transforming'); - - return stream.push(null); -} - -},{"./_stream_duplex":53,"core-util-is":58,"inherits":48}],57:[function(require,module,exports){ -(function (process){ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// A bit simpler than readable streams. -// Implement an async ._write(chunk, cb), and it'll handle all -// the drain event emission and buffering. - -module.exports = Writable; - -/**/ -var Buffer = require('buffer').Buffer; -/**/ - -Writable.WritableState = WritableState; - - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -var Stream = require('stream'); - -util.inherits(Writable, Stream); - -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; -} - -function WritableState(options, stream) { - var Duplex = require('./_stream_duplex'); - - options = options || {}; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var defaultHwm = options.objectMode ? 16 : 16 * 1024; - this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) - this.objectMode = this.objectMode || !!options.writableObjectMode; - - // cast to ints. - this.highWaterMark = ~~this.highWaterMark; - - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function(er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.buffer = []; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; -} - -function Writable(options) { - var Duplex = require('./_stream_duplex'); - - // Writable ctor is applied to Duplexes, though they're not - // instanceof Writable, they're instanceof Readable. - if (!(this instanceof Writable) && !(this instanceof Duplex)) - return new Writable(options); - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function() { - this.emit('error', new Error('Cannot pipe. Not readable.')); -}; - - -function writeAfterEnd(stream, state, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - process.nextTick(function() { - cb(er); - }); -} - -// If we get something that is not a buffer, string, null, or undefined, -// and we're not in objectMode, then that's an error. -// Otherwise stream chunks are all considered to be of length=1, and the -// watermarks determine how many objects to keep in the buffer, rather than -// how many bytes or characters. -function validChunk(stream, state, chunk, cb) { - var valid = true; - if (!util.isBuffer(chunk) && - !util.isString(chunk) && - !util.isNullOrUndefined(chunk) && - !state.objectMode) { - var er = new TypeError('Invalid non-string/buffer chunk'); - stream.emit('error', er); - process.nextTick(function() { - cb(er); - }); - valid = false; - } - return valid; -} - -Writable.prototype.write = function(chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - - if (util.isFunction(encoding)) { - cb = encoding; - encoding = null; - } - - if (util.isBuffer(chunk)) - encoding = 'buffer'; - else if (!encoding) - encoding = state.defaultEncoding; - - if (!util.isFunction(cb)) - cb = function() {}; - - if (state.ended) - writeAfterEnd(this, state, cb); - else if (validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, chunk, encoding, cb); - } - - return ret; -}; - -Writable.prototype.cork = function() { - var state = this._writableState; - - state.corked++; -}; - -Writable.prototype.uncork = function() { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && - !state.corked && - !state.finished && - !state.bufferProcessing && - state.buffer.length) - clearBuffer(this, state); - } -}; - -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && - state.decodeStrings !== false && - util.isString(chunk)) { - chunk = new Buffer(chunk, encoding); - } - return chunk; -} - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, chunk, encoding, cb) { - chunk = decodeChunk(state, chunk, encoding); - if (util.isBuffer(chunk)) - encoding = 'buffer'; - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) - state.needDrain = true; - - if (state.writing || state.corked) - state.buffer.push(new WriteReq(chunk, encoding, cb)); - else - doWrite(stream, state, false, len, chunk, encoding, cb); - - return ret; -} - -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) - stream._writev(chunk, state.onwrite); - else - stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} - -function onwriteError(stream, state, sync, er, cb) { - if (sync) - process.nextTick(function() { - state.pendingcb--; - cb(er); - }); - else { - state.pendingcb--; - cb(er); - } - - stream._writableState.errorEmitted = true; - stream.emit('error', er); -} - -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) - onwriteError(stream, state, sync, er, cb); - else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(stream, state); - - if (!finished && - !state.corked && - !state.bufferProcessing && - state.buffer.length) { - clearBuffer(stream, state); - } - - if (sync) { - process.nextTick(function() { - afterWrite(stream, state, finished, cb); - }); - } else { - afterWrite(stream, state, finished, cb); - } - } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) - onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - - if (stream._writev && state.buffer.length > 1) { - // Fast case, write everything using _writev() - var cbs = []; - for (var c = 0; c < state.buffer.length; c++) - cbs.push(state.buffer[c].callback); - - // count the one we are adding, as well. - // TODO(isaacs) clean this up - state.pendingcb++; - doWrite(stream, state, true, state.length, state.buffer, '', function(err) { - for (var i = 0; i < cbs.length; i++) { - state.pendingcb--; - cbs[i](err); - } - }); - - // Clear buffer - state.buffer = []; - } else { - // Slow case, write chunks one-by-one - for (var c = 0; c < state.buffer.length; c++) { - var entry = state.buffer[c]; - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - c++; - break; - } - } - - if (c < state.buffer.length) - state.buffer = state.buffer.slice(c); - else - state.buffer.length = 0; - } - - state.bufferProcessing = false; -} - -Writable.prototype._write = function(chunk, encoding, cb) { - cb(new Error('not implemented')); - -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function(chunk, encoding, cb) { - var state = this._writableState; - - if (util.isFunction(chunk)) { - cb = chunk; - chunk = null; - encoding = null; - } else if (util.isFunction(encoding)) { - cb = encoding; - encoding = null; - } - - if (!util.isNullOrUndefined(chunk)) - this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) - endWritable(this, state, cb); -}; - - -function needFinish(stream, state) { - return (state.ending && - state.length === 0 && - !state.finished && - !state.writing); -} - -function prefinish(stream, state) { - if (!state.prefinished) { - state.prefinished = true; - stream.emit('prefinish'); - } -} - -function finishMaybe(stream, state) { - var need = needFinish(stream, state); - if (need) { - if (state.pendingcb === 0) { - prefinish(stream, state); - state.finished = true; - stream.emit('finish'); - } else - prefinish(stream, state); - } - return need; -} - -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) - process.nextTick(cb); - else - stream.once('finish', cb); - } - state.ended = true; -} - -}).call(this,require('_process')) -},{"./_stream_duplex":53,"_process":51,"buffer":43,"core-util-is":58,"inherits":48,"stream":63}],58:[function(require,module,exports){ -(function (Buffer){ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -function isBuffer(arg) { - return Buffer.isBuffer(arg); -} -exports.isBuffer = isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} -}).call(this,require("buffer").Buffer) -},{"buffer":43}],59:[function(require,module,exports){ -module.exports = require("./lib/_stream_passthrough.js") - -},{"./lib/_stream_passthrough.js":54}],60:[function(require,module,exports){ -exports = module.exports = require('./lib/_stream_readable.js'); -exports.Stream = require('stream'); -exports.Readable = exports; -exports.Writable = require('./lib/_stream_writable.js'); -exports.Duplex = require('./lib/_stream_duplex.js'); -exports.Transform = require('./lib/_stream_transform.js'); -exports.PassThrough = require('./lib/_stream_passthrough.js'); - -},{"./lib/_stream_duplex.js":53,"./lib/_stream_passthrough.js":54,"./lib/_stream_readable.js":55,"./lib/_stream_transform.js":56,"./lib/_stream_writable.js":57,"stream":63}],61:[function(require,module,exports){ -module.exports = require("./lib/_stream_transform.js") - -},{"./lib/_stream_transform.js":56}],62:[function(require,module,exports){ -module.exports = require("./lib/_stream_writable.js") - -},{"./lib/_stream_writable.js":57}],63:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -module.exports = Stream; - -var EE = require('events').EventEmitter; -var inherits = require('inherits'); - -inherits(Stream, EE); -Stream.Readable = require('readable-stream/readable.js'); -Stream.Writable = require('readable-stream/writable.js'); -Stream.Duplex = require('readable-stream/duplex.js'); -Stream.Transform = require('readable-stream/transform.js'); -Stream.PassThrough = require('readable-stream/passthrough.js'); - -// Backwards-compat with node 0.4.x -Stream.Stream = Stream; - - - -// old-style streams. Note that the pipe method (the only relevant -// part of this class) is overridden in the Readable class. - -function Stream() { - EE.call(this); -} - -Stream.prototype.pipe = function(dest, options) { - var source = this; - - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause(); - } - } - } - - source.on('data', ondata); - - function ondrain() { - if (source.readable && source.resume) { - source.resume(); - } - } - - dest.on('drain', ondrain); - - // If the 'end' option is not supplied, dest.end() will be called when - // source gets the 'end' or 'close' events. Only dest.end() once. - if (!dest._isStdio && (!options || options.end !== false)) { - source.on('end', onend); - source.on('close', onclose); - } - - var didOnEnd = false; - function onend() { - if (didOnEnd) return; - didOnEnd = true; - - dest.end(); - } - - - function onclose() { - if (didOnEnd) return; - didOnEnd = true; - - if (typeof dest.destroy === 'function') dest.destroy(); - } - - // don't leave dangling pipes when there are errors. - function onerror(er) { - cleanup(); - if (EE.listenerCount(this, 'error') === 0) { - throw er; // Unhandled stream error in pipe. - } - } - - source.on('error', onerror); - dest.on('error', onerror); - - // remove all the event listeners that were added. - function cleanup() { - source.removeListener('data', ondata); - dest.removeListener('drain', ondrain); - - source.removeListener('end', onend); - source.removeListener('close', onclose); - - source.removeListener('error', onerror); - dest.removeListener('error', onerror); - - source.removeListener('end', cleanup); - source.removeListener('close', cleanup); - - dest.removeListener('close', cleanup); - } - - source.on('end', cleanup); - source.on('close', cleanup); - - dest.on('close', cleanup); - - dest.emit('pipe', source); - - // Allow for unix-like usage: A.pipe(B).pipe(C) - return dest; -}; - -},{"events":47,"inherits":48,"readable-stream/duplex.js":52,"readable-stream/passthrough.js":59,"readable-stream/readable.js":60,"readable-stream/transform.js":61,"readable-stream/writable.js":62}],64:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -var Buffer = require('buffer').Buffer; - -var isBufferEncoding = Buffer.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; - default: return false; - } - } - - -function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. CESU-8 is handled as part of the UTF-8 encoding. -// -// @TODO Handling all encodings inside a single object makes it very difficult -// to reason about this code, so it should be split up in the future. -// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code -// points as used by CESU-8. -var StringDecoder = exports.StringDecoder = function(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; -}; - - -// write decodes the given buffer and returns it as JS string that is -// guaranteed to not contain any partial multi-byte characters. Any partial -// character found at the end of the buffer is buffered up, and will be -// returned when calling write again with the remaining bytes. -// -// Note: Converting a Buffer containing an orphan surrogate to a String -// currently works, but converting a String to a Buffer (via `new Buffer`, or -// Buffer#write) will replace incomplete surrogates with the unicode -// replacement character. See https://codereview.chromium.org/121173009/ . -StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; -}; - -// detectIncompleteChar determines if there is an incomplete UTF-8 character at -// the end of the given buffer. If so, it sets this.charLength to the byte -// length that character, and sets this.charReceived to the number of bytes -// that are available for this character. -StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; -}; - -StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; -}; - -function passThroughWrite(buffer) { - return buffer.toString(this.encoding); -} - -function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; -} - -function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; -} - -},{"buffer":43}],65:[function(require,module,exports){ -module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; -} -},{}],66:[function(require,module,exports){ -(function (process,global){ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -var formatRegExp = /%[sdj%]/g; -exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; - } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); - } - } - return str; -}; - - -// Mark that a method should not be used. -// Returns a modified function which warns once by default. -// If --no-deprecation is set, then it is a no-op. -exports.deprecate = function(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(global.process)) { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } - - if (process.noDeprecation === true) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -}; - - -var debugs = {}; -var debugEnviron; -exports.debuglog = function(set) { - if (isUndefined(debugEnviron)) - debugEnviron = process.env.NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; - - -/** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ -/* legacy: obj, showHidden, depth, colors*/ -function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); -} -exports.inspect = inspect; - - -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] -}; - -// Don't use 'blue' not visible on cmd.exe -inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' -}; - - -function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } -} - - -function stylizeNoColor(str, styleType) { - return str; -} - - -function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; -} - - -function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); -} - - -function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); -} - - -function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; -} - - -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; -} - - -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - - return name + ': ' + str; -} - - -function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; -} - - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = require('./support/isBuffer'); - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - - -function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -} - - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -// 26 Feb 16:19:34 -function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); -} - - -// log is just a thin wrapper to console.log that prepends a timestamp -exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); -}; - - -/** - * Inherit the prototype methods from one constructor into another. - * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). - * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ -exports.inherits = require('inherits'); - -exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; -}; - -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./support/isBuffer":65,"_process":51,"inherits":48}],67:[function(require,module,exports){ -/* See LICENSE file for terms of use */ - -/* - * Text diff implementation. - * - * This library supports the following APIS: - * JsDiff.diffChars: Character by character diff - * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace - * JsDiff.diffLines: Line based diff - * - * JsDiff.diffCss: Diff targeted at CSS content - * - * These methods are based on the implementation proposed in - * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986). - * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927 - */ -(function(global, undefined) { - var objectPrototypeToString = Object.prototype.toString; - - /*istanbul ignore next*/ - function map(arr, mapper, that) { - if (Array.prototype.map) { - return Array.prototype.map.call(arr, mapper, that); - } - - var other = new Array(arr.length); - - for (var i = 0, n = arr.length; i < n; i++) { - other[i] = mapper.call(that, arr[i], i, arr); - } - return other; - } - function clonePath(path) { - return { newPos: path.newPos, components: path.components.slice(0) }; - } - function removeEmpty(array) { - var ret = []; - for (var i = 0; i < array.length; i++) { - if (array[i]) { - ret.push(array[i]); - } - } - return ret; - } - function escapeHTML(s) { - var n = s; - n = n.replace(/&/g, '&'); - n = n.replace(//g, '>'); - n = n.replace(/"/g, '"'); - - return n; - } - - // This function handles the presence of circular references by bailing out when encountering an - // object that is already on the "stack" of items being processed. - function canonicalize(obj, stack, replacementStack) { - stack = stack || []; - replacementStack = replacementStack || []; - - var i; - - for (i = 0; i < stack.length; i += 1) { - if (stack[i] === obj) { - return replacementStack[i]; - } - } - - var canonicalizedObj; - - if ('[object Array]' === objectPrototypeToString.call(obj)) { - stack.push(obj); - canonicalizedObj = new Array(obj.length); - replacementStack.push(canonicalizedObj); - for (i = 0; i < obj.length; i += 1) { - canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack); - } - stack.pop(); - replacementStack.pop(); - } else if (typeof obj === 'object' && obj !== null) { - stack.push(obj); - canonicalizedObj = {}; - replacementStack.push(canonicalizedObj); - var sortedKeys = [], - key; - for (key in obj) { - sortedKeys.push(key); - } - sortedKeys.sort(); - for (i = 0; i < sortedKeys.length; i += 1) { - key = sortedKeys[i]; - canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack); - } - stack.pop(); - replacementStack.pop(); - } else { - canonicalizedObj = obj; - } - return canonicalizedObj; - } - - function buildValues(components, newString, oldString, useLongestToken) { - var componentPos = 0, - componentLen = components.length, - newPos = 0, - oldPos = 0; - - for (; componentPos < componentLen; componentPos++) { - var component = components[componentPos]; - if (!component.removed) { - if (!component.added && useLongestToken) { - var value = newString.slice(newPos, newPos + component.count); - value = map(value, function(value, i) { - var oldValue = oldString[oldPos + i]; - return oldValue.length > value.length ? oldValue : value; - }); - - component.value = value.join(''); - } else { - component.value = newString.slice(newPos, newPos + component.count).join(''); - } - newPos += component.count; - - // Common case - if (!component.added) { - oldPos += component.count; - } - } else { - component.value = oldString.slice(oldPos, oldPos + component.count).join(''); - oldPos += component.count; - - // Reverse add and remove so removes are output first to match common convention - // The diffing algorithm is tied to add then remove output and this is the simplest - // route to get the desired output with minimal overhead. - if (componentPos && components[componentPos - 1].added) { - var tmp = components[componentPos - 1]; - components[componentPos - 1] = components[componentPos]; - components[componentPos] = tmp; - } - } - } - - return components; - } - - function Diff(ignoreWhitespace) { - this.ignoreWhitespace = ignoreWhitespace; - } - Diff.prototype = { - diff: function(oldString, newString, callback) { - var self = this; - - function done(value) { - if (callback) { - setTimeout(function() { callback(undefined, value); }, 0); - return true; - } else { - return value; - } - } - - // Handle the identity case (this is due to unrolling editLength == 0 - if (newString === oldString) { - return done([{ value: newString }]); - } - if (!newString) { - return done([{ value: oldString, removed: true }]); - } - if (!oldString) { - return done([{ value: newString, added: true }]); - } - - newString = this.tokenize(newString); - oldString = this.tokenize(oldString); - - var newLen = newString.length, oldLen = oldString.length; - var editLength = 1; - var maxEditLength = newLen + oldLen; - var bestPath = [{ newPos: -1, components: [] }]; - - // Seed editLength = 0, i.e. the content starts with the same values - var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); - if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { - // Identity per the equality and tokenizer - return done([{value: newString.join('')}]); - } - - // Main worker method. checks all permutations of a given edit length for acceptance. - function execEditLength() { - for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { - var basePath; - var addPath = bestPath[diagonalPath - 1], - removePath = bestPath[diagonalPath + 1], - oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; - if (addPath) { - // No one else is going to attempt to use this value, clear it - bestPath[diagonalPath - 1] = undefined; - } - - var canAdd = addPath && addPath.newPos + 1 < newLen, - canRemove = removePath && 0 <= oldPos && oldPos < oldLen; - if (!canAdd && !canRemove) { - // If this path is a terminal then prune - bestPath[diagonalPath] = undefined; - continue; - } - - // Select the diagonal that we want to branch from. We select the prior - // path whose position in the new string is the farthest from the origin - // and does not pass the bounds of the diff graph - if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) { - basePath = clonePath(removePath); - self.pushComponent(basePath.components, undefined, true); - } else { - basePath = addPath; // No need to clone, we've pulled it from the list - basePath.newPos++; - self.pushComponent(basePath.components, true, undefined); - } - - oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); - - // If we have hit the end of both strings, then we are done - if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) { - return done(buildValues(basePath.components, newString, oldString, self.useLongestToken)); - } else { - // Otherwise track this path as a potential candidate and continue. - bestPath[diagonalPath] = basePath; - } - } - - editLength++; - } - - // Performs the length of edit iteration. Is a bit fugly as this has to support the - // sync and async mode which is never fun. Loops over execEditLength until a value - // is produced. - if (callback) { - (function exec() { - setTimeout(function() { - // This should not happen, but we want to be safe. - /*istanbul ignore next */ - if (editLength > maxEditLength) { - return callback(); - } - - if (!execEditLength()) { - exec(); - } - }, 0); - }()); - } else { - while (editLength <= maxEditLength) { - var ret = execEditLength(); - if (ret) { - return ret; - } - } - } - }, - - pushComponent: function(components, added, removed) { - var last = components[components.length - 1]; - if (last && last.added === added && last.removed === removed) { - // We need to clone here as the component clone operation is just - // as shallow array clone - components[components.length - 1] = {count: last.count + 1, added: added, removed: removed }; - } else { - components.push({count: 1, added: added, removed: removed }); - } - }, - extractCommon: function(basePath, newString, oldString, diagonalPath) { - var newLen = newString.length, - oldLen = oldString.length, - newPos = basePath.newPos, - oldPos = newPos - diagonalPath, - - commonCount = 0; - while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { - newPos++; - oldPos++; - commonCount++; - } - - if (commonCount) { - basePath.components.push({count: commonCount}); - } - - basePath.newPos = newPos; - return oldPos; - }, - - equals: function(left, right) { - var reWhitespace = /\S/; - return left === right || (this.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right)); - }, - tokenize: function(value) { - return value.split(''); - } - }; - - var CharDiff = new Diff(); - - var WordDiff = new Diff(true); - var WordWithSpaceDiff = new Diff(); - WordDiff.tokenize = WordWithSpaceDiff.tokenize = function(value) { - return removeEmpty(value.split(/(\s+|\b)/)); - }; - - var CssDiff = new Diff(true); - CssDiff.tokenize = function(value) { - return removeEmpty(value.split(/([{}:;,]|\s+)/)); - }; - - var LineDiff = new Diff(); - - var TrimmedLineDiff = new Diff(); - TrimmedLineDiff.ignoreTrim = true; - - LineDiff.tokenize = TrimmedLineDiff.tokenize = function(value) { - var retLines = [], - lines = value.split(/^/m); - for (var i = 0; i < lines.length; i++) { - var line = lines[i], - lastLine = lines[i - 1], - lastLineLastChar = lastLine && lastLine[lastLine.length - 1]; - - // Merge lines that may contain windows new lines - if (line === '\n' && lastLineLastChar === '\r') { - retLines[retLines.length - 1] = retLines[retLines.length - 1].slice(0, -1) + '\r\n'; - } else { - if (this.ignoreTrim) { - line = line.trim(); - // add a newline unless this is the last line. - if (i < lines.length - 1) { - line += '\n'; - } - } - retLines.push(line); - } - } - - return retLines; - }; - - var PatchDiff = new Diff(); - PatchDiff.tokenize = function(value) { - var ret = [], - linesAndNewlines = value.split(/(\n|\r\n)/); - - // Ignore the final empty token that occurs if the string ends with a new line - if (!linesAndNewlines[linesAndNewlines.length - 1]) { - linesAndNewlines.pop(); - } - - // Merge the content and line separators into single tokens - for (var i = 0; i < linesAndNewlines.length; i++) { - var line = linesAndNewlines[i]; - - if (i % 2) { - ret[ret.length - 1] += line; - } else { - ret.push(line); - } - } - return ret; - }; - - var SentenceDiff = new Diff(); - SentenceDiff.tokenize = function(value) { - return removeEmpty(value.split(/(\S.+?[.!?])(?=\s+|$)/)); - }; - - var JsonDiff = new Diff(); - // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a - // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: - JsonDiff.useLongestToken = true; - JsonDiff.tokenize = LineDiff.tokenize; - JsonDiff.equals = function(left, right) { - return LineDiff.equals(left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')); - }; - - var JsDiff = { - Diff: Diff, - - diffChars: function(oldStr, newStr, callback) { return CharDiff.diff(oldStr, newStr, callback); }, - diffWords: function(oldStr, newStr, callback) { return WordDiff.diff(oldStr, newStr, callback); }, - diffWordsWithSpace: function(oldStr, newStr, callback) { return WordWithSpaceDiff.diff(oldStr, newStr, callback); }, - diffLines: function(oldStr, newStr, callback) { return LineDiff.diff(oldStr, newStr, callback); }, - diffTrimmedLines: function(oldStr, newStr, callback) { return TrimmedLineDiff.diff(oldStr, newStr, callback); }, - - diffSentences: function(oldStr, newStr, callback) { return SentenceDiff.diff(oldStr, newStr, callback); }, - - diffCss: function(oldStr, newStr, callback) { return CssDiff.diff(oldStr, newStr, callback); }, - diffJson: function(oldObj, newObj, callback) { - return JsonDiff.diff( - typeof oldObj === 'string' ? oldObj : JSON.stringify(canonicalize(oldObj), undefined, ' '), - typeof newObj === 'string' ? newObj : JSON.stringify(canonicalize(newObj), undefined, ' '), - callback - ); - }, - - createTwoFilesPatch: function(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader) { - var ret = []; - - if (oldFileName == newFileName) { - ret.push('Index: ' + oldFileName); - } - ret.push('==================================================================='); - ret.push('--- ' + oldFileName + (typeof oldHeader === 'undefined' ? '' : '\t' + oldHeader)); - ret.push('+++ ' + newFileName + (typeof newHeader === 'undefined' ? '' : '\t' + newHeader)); - - var diff = PatchDiff.diff(oldStr, newStr); - diff.push({value: '', lines: []}); // Append an empty value to make cleanup easier - - // Formats a given set of lines for printing as context lines in a patch - function contextLines(lines) { - return map(lines, function(entry) { return ' ' + entry; }); - } - - // Outputs the no newline at end of file warning if needed - function eofNL(curRange, i, current) { - var last = diff[diff.length - 2], - isLast = i === diff.length - 2, - isLastOfType = i === diff.length - 3 && current.added !== last.added; - - // Figure out if this is the last line for the given file and missing NL - if (!(/\n$/.test(current.value)) && (isLast || isLastOfType)) { - curRange.push('\\ No newline at end of file'); - } - } - - var oldRangeStart = 0, newRangeStart = 0, curRange = [], - oldLine = 1, newLine = 1; - for (var i = 0; i < diff.length; i++) { - var current = diff[i], - lines = current.lines || current.value.replace(/\n$/, '').split('\n'); - current.lines = lines; - - if (current.added || current.removed) { - // If we have previous context, start with that - if (!oldRangeStart) { - var prev = diff[i - 1]; - oldRangeStart = oldLine; - newRangeStart = newLine; - - if (prev) { - curRange = contextLines(prev.lines.slice(-4)); - oldRangeStart -= curRange.length; - newRangeStart -= curRange.length; - } - } - - // Output our changes - curRange.push.apply(curRange, map(lines, function(entry) { - return (current.added ? '+' : '-') + entry; - })); - eofNL(curRange, i, current); - - // Track the updated file position - if (current.added) { - newLine += lines.length; - } else { - oldLine += lines.length; - } - } else { - // Identical context lines. Track line changes - if (oldRangeStart) { - // Close out any changes that have been output (or join overlapping) - if (lines.length <= 8 && i < diff.length - 2) { - // Overlapping - curRange.push.apply(curRange, contextLines(lines)); - } else { - // end the range and output - var contextSize = Math.min(lines.length, 4); - ret.push( - '@@ -' + oldRangeStart + ',' + (oldLine - oldRangeStart + contextSize) - + ' +' + newRangeStart + ',' + (newLine - newRangeStart + contextSize) - + ' @@'); - ret.push.apply(ret, curRange); - ret.push.apply(ret, contextLines(lines.slice(0, contextSize))); - if (lines.length <= 4) { - eofNL(ret, i, current); - } - - oldRangeStart = 0; - newRangeStart = 0; - curRange = []; - } - } - oldLine += lines.length; - newLine += lines.length; - } - } - - return ret.join('\n') + '\n'; - }, - - createPatch: function(fileName, oldStr, newStr, oldHeader, newHeader) { - return JsDiff.createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader); - }, - - applyPatch: function(oldStr, uniDiff) { - var diffstr = uniDiff.split('\n'), - hunks = [], - i = 0, - remEOFNL = false, - addEOFNL = false; - - // Skip to the first change hunk - while (i < diffstr.length && !(/^@@/.test(diffstr[i]))) { - i++; - } - - // Parse the unified diff - for (; i < diffstr.length; i++) { - if (diffstr[i][0] === '@') { - var chnukHeader = diffstr[i].split(/@@ -(\d+),(\d+) \+(\d+),(\d+) @@/); - hunks.unshift({ - start: chnukHeader[3], - oldlength: +chnukHeader[2], - removed: [], - newlength: chnukHeader[4], - added: [] - }); - } else if (diffstr[i][0] === '+') { - hunks[0].added.push(diffstr[i].substr(1)); - } else if (diffstr[i][0] === '-') { - hunks[0].removed.push(diffstr[i].substr(1)); - } else if (diffstr[i][0] === ' ') { - hunks[0].added.push(diffstr[i].substr(1)); - hunks[0].removed.push(diffstr[i].substr(1)); - } else if (diffstr[i][0] === '\\') { - if (diffstr[i - 1][0] === '+') { - remEOFNL = true; - } else if (diffstr[i - 1][0] === '-') { - addEOFNL = true; - } - } - } - - // Apply the diff to the input - var lines = oldStr.split('\n'); - for (i = hunks.length - 1; i >= 0; i--) { - var hunk = hunks[i]; - // Sanity check the input string. Bail if we don't match. - for (var j = 0; j < hunk.oldlength; j++) { - if (lines[hunk.start - 1 + j] !== hunk.removed[j]) { - return false; - } - } - Array.prototype.splice.apply(lines, [hunk.start - 1, hunk.oldlength].concat(hunk.added)); - } - - // Handle EOFNL insertion/removal - if (remEOFNL) { - while (!lines[lines.length - 1]) { - lines.pop(); - } - } else if (addEOFNL) { - lines.push(''); - } - return lines.join('\n'); - }, - - convertChangesToXML: function(changes) { - var ret = []; - for (var i = 0; i < changes.length; i++) { - var change = changes[i]; - if (change.added) { - ret.push(''); - } else if (change.removed) { - ret.push(''); - } - - ret.push(escapeHTML(change.value)); - - if (change.added) { - ret.push(''); - } else if (change.removed) { - ret.push(''); - } - } - return ret.join(''); - }, - - // See: http://code.google.com/p/google-diff-match-patch/wiki/API - convertChangesToDMP: function(changes) { - var ret = [], - change, - operation; - for (var i = 0; i < changes.length; i++) { - change = changes[i]; - if (change.added) { - operation = 1; - } else if (change.removed) { - operation = -1; - } else { - operation = 0; - } - - ret.push([operation, change.value]); - } - return ret; - }, - - canonicalize: canonicalize - }; - - /*istanbul ignore next */ - /*global module */ - if (typeof module !== 'undefined' && module.exports) { - module.exports = JsDiff; - } else if (typeof define === 'function' && define.amd) { - /*global define */ - define([], function() { return JsDiff; }); - } else if (typeof global.JsDiff === 'undefined') { - global.JsDiff = JsDiff; - } -}(this)); - -},{}],68:[function(require,module,exports){ -'use strict'; - -var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; - -module.exports = function (str) { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } - - return str.replace(matchOperatorsRe, '\\$&'); -}; - -},{}],69:[function(require,module,exports){ -(function (process){ -// Growl - Copyright TJ Holowaychuk (MIT Licensed) - -/** - * Module dependencies. - */ - -var exec = require('child_process').exec - , fs = require('fs') - , path = require('path') - , exists = fs.existsSync || path.existsSync - , os = require('os') - , quote = JSON.stringify - , cmd; - -function which(name) { - var paths = process.env.PATH.split(':'); - var loc; - - for (var i = 0, len = paths.length; i < len; ++i) { - loc = path.join(paths[i], name); - if (exists(loc)) return loc; - } -} - -switch(os.type()) { - case 'Darwin': - if (which('terminal-notifier')) { - cmd = { - type: "Darwin-NotificationCenter" - , pkg: "terminal-notifier" - , msg: '-message' - , title: '-title' - , subtitle: '-subtitle' - , priority: { - cmd: '-execute' - , range: [] - } - }; - } else { - cmd = { - type: "Darwin-Growl" - , pkg: "growlnotify" - , msg: '-m' - , sticky: '--sticky' - , priority: { - cmd: '--priority' - , range: [ - -2 - , -1 - , 0 - , 1 - , 2 - , "Very Low" - , "Moderate" - , "Normal" - , "High" - , "Emergency" - ] - } - }; - } - break; - case 'Linux': - cmd = { - type: "Linux" - , pkg: "notify-send" - , msg: '' - , sticky: '-t 0' - , icon: '-i' - , priority: { - cmd: '-u' - , range: [ - "low" - , "normal" - , "critical" - ] - } - }; - break; - case 'Windows_NT': - cmd = { - type: "Windows" - , pkg: "growlnotify" - , msg: '' - , sticky: '/s:true' - , title: '/t:' - , icon: '/i:' - , priority: { - cmd: '/p:' - , range: [ - -2 - , -1 - , 0 - , 1 - , 2 - ] - } - }; - break; -} - -/** - * Expose `growl`. - */ - -exports = module.exports = growl; - -/** - * Node-growl version. - */ - -exports.version = '1.4.1' - -/** - * Send growl notification _msg_ with _options_. - * - * Options: - * - * - title Notification title - * - sticky Make the notification stick (defaults to false) - * - priority Specify an int or named key (default is 0) - * - name Application name (defaults to growlnotify) - * - image - * - path to an icon sets --iconpath - * - path to an image sets --image - * - capitalized word sets --appIcon - * - filename uses extname as --icon - * - otherwise treated as --icon - * - * Examples: - * - * growl('New email') - * growl('5 new emails', { title: 'Thunderbird' }) - * growl('Email sent', function(){ - * // ... notification sent - * }) - * - * @param {string} msg - * @param {object} options - * @param {function} fn - * @api public - */ - -function growl(msg, options, fn) { - var image - , args - , options = options || {} - , fn = fn || function(){}; - - // noop - if (!cmd) return fn(new Error('growl not supported on this platform')); - args = [cmd.pkg]; - - // image - if (image = options.image) { - switch(cmd.type) { - case 'Darwin-Growl': - var flag, ext = path.extname(image).substr(1) - flag = flag || ext == 'icns' && 'iconpath' - flag = flag || /^[A-Z]/.test(image) && 'appIcon' - flag = flag || /^png|gif|jpe?g$/.test(ext) && 'image' - flag = flag || ext && (image = ext) && 'icon' - flag = flag || 'icon' - args.push('--' + flag, quote(image)) - break; - case 'Linux': - args.push(cmd.icon, quote(image)); - // libnotify defaults to sticky, set a hint for transient notifications - if (!options.sticky) args.push('--hint=int:transient:1'); - break; - case 'Windows': - args.push(cmd.icon + quote(image)); - break; - } - } - - // sticky - if (options.sticky) args.push(cmd.sticky); - - // priority - if (options.priority) { - var priority = options.priority + ''; - var checkindexOf = cmd.priority.range.indexOf(priority); - if (~cmd.priority.range.indexOf(priority)) { - args.push(cmd.priority, options.priority); - } - } - - // name - if (options.name && cmd.type === "Darwin-Growl") { - args.push('--name', options.name); - } - - switch(cmd.type) { - case 'Darwin-Growl': - args.push(cmd.msg); - args.push(quote(msg)); - if (options.title) args.push(quote(options.title)); - break; - case 'Darwin-NotificationCenter': - args.push(cmd.msg); - args.push(quote(msg)); - if (options.title) { - args.push(cmd.title); - args.push(quote(options.title)); - } - if (options.subtitle) { - args.push(cmd.subtitle); - args.push(quote(options.subtitle)); - } - break; - case 'Darwin-Growl': - args.push(cmd.msg); - args.push(quote(msg)); - if (options.title) args.push(quote(options.title)); - break; - case 'Linux': - if (options.title) { - args.push(quote(options.title)); - args.push(cmd.msg); - args.push(quote(msg)); - } else { - args.push(quote(msg)); - } - break; - case 'Windows': - args.push(quote(msg)); - if (options.title) args.push(cmd.title + quote(options.title)); - break; - } - - // execute - exec(args.join(' '), fn); -}; - -}).call(this,require('_process')) -},{"_process":51,"child_process":41,"fs":41,"os":50,"path":41}],70:[function(require,module,exports){ -(function (process,global){ -/** - * Shim process.stdout. - */ - -process.stdout = require('browser-stdout')(); - -var Mocha = require('../'); - -/** - * Create a Mocha instance. - * - * @return {undefined} - */ - -var mocha = new Mocha({ reporter: 'html' }); - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; - -var uncaughtExceptionHandlers = []; - -var originalOnerrorHandler = global.onerror; - -/** - * Remove uncaughtException listener. - * Revert to original onerror handler if previously defined. - */ - -process.removeListener = function(e, fn){ - if ('uncaughtException' == e) { - if (originalOnerrorHandler) { - global.onerror = originalOnerrorHandler; - } else { - global.onerror = function() {}; - } - var i = Mocha.utils.indexOf(uncaughtExceptionHandlers, fn); - if (i != -1) { uncaughtExceptionHandlers.splice(i, 1); } - } -}; - -/** - * Implements uncaughtException listener. - */ - -process.on = function(e, fn){ - if ('uncaughtException' == e) { - global.onerror = function(err, url, line){ - fn(new Error(err + ' (' + url + ':' + line + ')')); - return !mocha.allowUncaught; - }; - uncaughtExceptionHandlers.push(fn); - } -}; - -// The BDD UI is registered by default, but no UI will be functional in the -// browser without an explicit call to the overridden `mocha.ui` (see below). -// Ensure that this default UI does not expose its methods to the global scope. -mocha.suite.removeAllListeners('pre-require'); - -var immediateQueue = [] - , immediateTimeout; - -function timeslice() { - var immediateStart = new Date().getTime(); - while (immediateQueue.length && (new Date().getTime() - immediateStart) < 100) { - immediateQueue.shift()(); - } - if (immediateQueue.length) { - immediateTimeout = setTimeout(timeslice, 0); - } else { - immediateTimeout = null; - } -} - -/** - * High-performance override of Runner.immediately. - */ - -Mocha.Runner.immediately = function(callback) { - immediateQueue.push(callback); - if (!immediateTimeout) { - immediateTimeout = setTimeout(timeslice, 0); - } -}; - -/** - * Function to allow assertion libraries to throw errors directly into mocha. - * This is useful when running tests in a browser because window.onerror will - * only receive the 'message' attribute of the Error. - */ -mocha.throwError = function(err) { - Mocha.utils.forEach(uncaughtExceptionHandlers, function (fn) { - fn(err); - }); - throw err; -}; - -/** - * Override ui to ensure that the ui functions are initialized. - * Normally this would happen in Mocha.prototype.loadFiles. - */ - -mocha.ui = function(ui){ - Mocha.prototype.ui.call(this, ui); - this.suite.emit('pre-require', global, null, this); - return this; -}; - -/** - * Setup mocha with the given setting options. - */ - -mocha.setup = function(opts){ - if ('string' == typeof opts) opts = { ui: opts }; - for (var opt in opts) this[opt](opts[opt]); - return this; -}; - -/** - * Run mocha, returning the Runner. - */ - -mocha.run = function(fn){ - var options = mocha.options; - mocha.globals('location'); - - var query = Mocha.utils.parseQuery(global.location.search || ''); - if (query.grep) mocha.grep(new RegExp(query.grep)); - if (query.fgrep) mocha.grep(query.fgrep); - if (query.invert) mocha.invert(); - - return Mocha.prototype.run.call(mocha, function(err){ - // The DOM Document is not available in Web Workers. - var document = global.document; - if (document && document.getElementById('mocha') && options.noHighlighting !== true) { - Mocha.utils.highlightTags('code'); - } - if (fn) fn(err); - }); -}; - -/** - * Expose the process shim. - * https://github.com/mochajs/mocha/pull/916 - */ - -Mocha.process = process; - -/** - * Expose mocha. - */ - -window.Mocha = Mocha; -window.mocha = mocha; - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../":1,"_process":51,"browser-stdout":40}]},{},[70]); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/HISTORY.md deleted file mode 100644 index f3ea28c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/HISTORY.md +++ /dev/null @@ -1,464 +0,0 @@ -1.15.2 / 2016-06-19 -=================== - - * deps: bytes@2.4.0 - * deps: content-type@~1.0.2 - - perf: enable strict mode - * deps: http-errors@~1.5.0 - - Use `setprototypeof` module to replace `__proto__` setting - - deps: statuses@'>= 1.3.0 < 2' - - perf: enable strict mode - * deps: qs@6.2.0 - * deps: raw-body@~2.1.7 - - deps: bytes@2.4.0 - - perf: remove double-cleanup on happy path - * deps: type-is@~1.6.13 - - deps: mime-types@~2.1.11 - -1.15.1 / 2016-05-05 -=================== - - * deps: bytes@2.3.0 - - Drop partial bytes on all parsed units - - Fix parsing byte string that looks like hex - * deps: raw-body@~2.1.6 - - deps: bytes@2.3.0 - * deps: type-is@~1.6.12 - - deps: mime-types@~2.1.10 - -1.15.0 / 2016-02-10 -=================== - - * deps: http-errors@~1.4.0 - - Add `HttpError` export, for `err instanceof createError.HttpError` - - deps: inherits@2.0.1 - - deps: statuses@'>= 1.2.1 < 2' - * deps: qs@6.1.0 - * deps: type-is@~1.6.11 - - deps: mime-types@~2.1.9 - -1.14.2 / 2015-12-16 -=================== - - * deps: bytes@2.2.0 - * deps: iconv-lite@0.4.13 - * deps: qs@5.2.0 - * deps: raw-body@~2.1.5 - - deps: bytes@2.2.0 - - deps: iconv-lite@0.4.13 - * deps: type-is@~1.6.10 - - deps: mime-types@~2.1.8 - -1.14.1 / 2015-09-27 -=================== - - * Fix issue where invalid charset results in 400 when `verify` used - * deps: iconv-lite@0.4.12 - - Fix CESU-8 decoding in Node.js 4.x - * deps: raw-body@~2.1.4 - - Fix masking critical errors from `iconv-lite` - - deps: iconv-lite@0.4.12 - * deps: type-is@~1.6.9 - - deps: mime-types@~2.1.7 - -1.14.0 / 2015-09-16 -=================== - - * Fix JSON strict parse error to match syntax errors - * Provide static `require` analysis in `urlencoded` parser - * deps: depd@~1.1.0 - - Support web browser loading - * deps: qs@5.1.0 - * deps: raw-body@~2.1.3 - - Fix sync callback when attaching data listener causes sync read - * deps: type-is@~1.6.8 - - Fix type error when given invalid type to match against - - deps: mime-types@~2.1.6 - -1.13.3 / 2015-07-31 -=================== - - * deps: type-is@~1.6.6 - - deps: mime-types@~2.1.4 - -1.13.2 / 2015-07-05 -=================== - - * deps: iconv-lite@0.4.11 - * deps: qs@4.0.0 - - Fix dropping parameters like `hasOwnProperty` - - Fix user-visible incompatibilities from 3.1.0 - - Fix various parsing edge cases - * deps: raw-body@~2.1.2 - - Fix error stack traces to skip `makeError` - - deps: iconv-lite@0.4.11 - * deps: type-is@~1.6.4 - - deps: mime-types@~2.1.2 - - perf: enable strict mode - - perf: remove argument reassignment - -1.13.1 / 2015-06-16 -=================== - - * deps: qs@2.4.2 - - Downgraded from 3.1.0 because of user-visible incompatibilities - -1.13.0 / 2015-06-14 -=================== - - * Add `statusCode` property on `Error`s, in addition to `status` - * Change `type` default to `application/json` for JSON parser - * Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser - * Provide static `require` analysis - * Use the `http-errors` module to generate errors - * deps: bytes@2.1.0 - - Slight optimizations - * deps: iconv-lite@0.4.10 - - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails - - Leading BOM is now removed when decoding - * deps: on-finished@~2.3.0 - - Add defined behavior for HTTP `CONNECT` requests - - Add defined behavior for HTTP `Upgrade` requests - - deps: ee-first@1.1.1 - * deps: qs@3.1.0 - - Fix dropping parameters like `hasOwnProperty` - - Fix various parsing edge cases - - Parsed object now has `null` prototype - * deps: raw-body@~2.1.1 - - Use `unpipe` module for unpiping requests - - deps: iconv-lite@0.4.10 - * deps: type-is@~1.6.3 - - deps: mime-types@~2.1.1 - - perf: reduce try block size - - perf: remove bitwise operations - * perf: enable strict mode - * perf: remove argument reassignment - * perf: remove delete call - -1.12.4 / 2015-05-10 -=================== - - * deps: debug@~2.2.0 - * deps: qs@2.4.2 - - Fix allowing parameters like `constructor` - * deps: on-finished@~2.2.1 - * deps: raw-body@~2.0.1 - - Fix a false-positive when unpiping in Node.js 0.8 - - deps: bytes@2.0.1 - * deps: type-is@~1.6.2 - - deps: mime-types@~2.0.11 - -1.12.3 / 2015-04-15 -=================== - - * Slight efficiency improvement when not debugging - * deps: depd@~1.0.1 - * deps: iconv-lite@0.4.8 - - Add encoding alias UNICODE-1-1-UTF-7 - * deps: raw-body@1.3.4 - - Fix hanging callback if request aborts during read - - deps: iconv-lite@0.4.8 - -1.12.2 / 2015-03-16 -=================== - - * deps: qs@2.4.1 - - Fix error when parameter `hasOwnProperty` is present - -1.12.1 / 2015-03-15 -=================== - - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - * deps: type-is@~1.6.1 - - deps: mime-types@~2.0.10 - -1.12.0 / 2015-02-13 -=================== - - * add `debug` messages - * accept a function for the `type` option - * use `content-type` to parse `Content-Type` headers - * deps: iconv-lite@0.4.7 - - Gracefully support enumerables on `Object.prototype` - * deps: raw-body@1.3.3 - - deps: iconv-lite@0.4.7 - * deps: type-is@~1.6.0 - - fix argument reassignment - - fix false-positives in `hasBody` `Transfer-Encoding` check - - support wildcard for both type and subtype (`*/*`) - - deps: mime-types@~2.0.9 - -1.11.0 / 2015-01-30 -=================== - - * make internal `extended: true` depth limit infinity - * deps: type-is@~1.5.6 - - deps: mime-types@~2.0.8 - -1.10.2 / 2015-01-20 -=================== - - * deps: iconv-lite@0.4.6 - - Fix rare aliases of single-byte encodings - * deps: raw-body@1.3.2 - - deps: iconv-lite@0.4.6 - -1.10.1 / 2015-01-01 -=================== - - * deps: on-finished@~2.2.0 - * deps: type-is@~1.5.5 - - deps: mime-types@~2.0.7 - -1.10.0 / 2014-12-02 -=================== - - * make internal `extended: true` array limit dynamic - -1.9.3 / 2014-11-21 -================== - - * deps: iconv-lite@0.4.5 - - Fix Windows-31J and X-SJIS encoding support - * deps: qs@2.3.3 - - Fix `arrayLimit` behavior - * deps: raw-body@1.3.1 - - deps: iconv-lite@0.4.5 - * deps: type-is@~1.5.3 - - deps: mime-types@~2.0.3 - -1.9.2 / 2014-10-27 -================== - - * deps: qs@2.3.2 - - Fix parsing of mixed objects and values - -1.9.1 / 2014-10-22 -================== - - * deps: on-finished@~2.1.1 - - Fix handling of pipelined requests - * deps: qs@2.3.0 - - Fix parsing of mixed implicit and explicit arrays - * deps: type-is@~1.5.2 - - deps: mime-types@~2.0.2 - -1.9.0 / 2014-09-24 -================== - - * include the charset in "unsupported charset" error message - * include the encoding in "unsupported content encoding" error message - * deps: depd@~1.0.0 - -1.8.4 / 2014-09-23 -================== - - * fix content encoding to be case-insensitive - -1.8.3 / 2014-09-19 -================== - - * deps: qs@2.2.4 - - Fix issue with object keys starting with numbers truncated - -1.8.2 / 2014-09-15 -================== - - * deps: depd@0.4.5 - -1.8.1 / 2014-09-07 -================== - - * deps: media-typer@0.3.0 - * deps: type-is@~1.5.1 - -1.8.0 / 2014-09-05 -================== - - * make empty-body-handling consistent between chunked requests - - empty `json` produces `{}` - - empty `raw` produces `new Buffer(0)` - - empty `text` produces `''` - - empty `urlencoded` produces `{}` - * deps: qs@2.2.3 - - Fix issue where first empty value in array is discarded - * deps: type-is@~1.5.0 - - fix `hasbody` to be true for `content-length: 0` - -1.7.0 / 2014-09-01 -================== - - * add `parameterLimit` option to `urlencoded` parser - * change `urlencoded` extended array limit to 100 - * respond with 413 when over `parameterLimit` in `urlencoded` - -1.6.7 / 2014-08-29 -================== - - * deps: qs@2.2.2 - - Remove unnecessary cloning - -1.6.6 / 2014-08-27 -================== - - * deps: qs@2.2.0 - - Array parsing fix - - Performance improvements - -1.6.5 / 2014-08-16 -================== - - * deps: on-finished@2.1.0 - -1.6.4 / 2014-08-14 -================== - - * deps: qs@1.2.2 - -1.6.3 / 2014-08-10 -================== - - * deps: qs@1.2.1 - -1.6.2 / 2014-08-07 -================== - - * deps: qs@1.2.0 - - Fix parsing array of objects - -1.6.1 / 2014-08-06 -================== - - * deps: qs@1.1.0 - - Accept urlencoded square brackets - - Accept empty values in implicit array notation - -1.6.0 / 2014-08-05 -================== - - * deps: qs@1.0.2 - - Complete rewrite - - Limits array length to 20 - - Limits object depth to 5 - - Limits parameters to 1,000 - -1.5.2 / 2014-07-27 -================== - - * deps: depd@0.4.4 - - Work-around v8 generating empty stack traces - -1.5.1 / 2014-07-26 -================== - - * deps: depd@0.4.3 - - Fix exception when global `Error.stackTraceLimit` is too low - -1.5.0 / 2014-07-20 -================== - - * deps: depd@0.4.2 - - Add `TRACE_DEPRECATION` environment variable - - Remove non-standard grey color from color output - - Support `--no-deprecation` argument - - Support `--trace-deprecation` argument - * deps: iconv-lite@0.4.4 - - Added encoding UTF-7 - * deps: raw-body@1.3.0 - - deps: iconv-lite@0.4.4 - - Added encoding UTF-7 - - Fix `Cannot switch to old mode now` error on Node.js 0.10+ - * deps: type-is@~1.3.2 - -1.4.3 / 2014-06-19 -================== - - * deps: type-is@1.3.1 - - fix global variable leak - -1.4.2 / 2014-06-19 -================== - - * deps: type-is@1.3.0 - - improve type parsing - -1.4.1 / 2014-06-19 -================== - - * fix urlencoded extended deprecation message - -1.4.0 / 2014-06-19 -================== - - * add `text` parser - * add `raw` parser - * check accepted charset in content-type (accepts utf-8) - * check accepted encoding in content-encoding (accepts identity) - * deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed - * deprecate `urlencoded()` without provided `extended` option - * lazy-load urlencoded parsers - * parsers split into files for reduced mem usage - * support gzip and deflate bodies - - set `inflate: false` to turn off - * deps: raw-body@1.2.2 - - Support all encodings from `iconv-lite` - -1.3.1 / 2014-06-11 -================== - - * deps: type-is@1.2.1 - - Switch dependency from mime to mime-types@1.0.0 - -1.3.0 / 2014-05-31 -================== - - * add `extended` option to urlencoded parser - -1.2.2 / 2014-05-27 -================== - - * deps: raw-body@1.1.6 - - assert stream encoding on node.js 0.8 - - assert stream encoding on node.js < 0.10.6 - - deps: bytes@1 - -1.2.1 / 2014-05-26 -================== - - * invoke `next(err)` after request fully read - - prevents hung responses and socket hang ups - -1.2.0 / 2014-05-11 -================== - - * add `verify` option - * deps: type-is@1.2.0 - - support suffix matching - -1.1.2 / 2014-05-11 -================== - - * improve json parser speed - -1.1.1 / 2014-05-11 -================== - - * fix repeated limit parsing with every request - -1.1.0 / 2014-05-10 -================== - - * add `type` option - * deps: pin for safety and consistency - -1.0.2 / 2014-04-14 -================== - - * use `type-is` module - -1.0.1 / 2014-03-20 -================== - - * lower default limits to 100kb diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/LICENSE deleted file mode 100644 index 386b7b69..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/README.md deleted file mode 100644 index 63765363..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/README.md +++ /dev/null @@ -1,409 +0,0 @@ -# body-parser - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] -[![Gratipay][gratipay-image]][gratipay-url] - -Node.js body parsing middleware. - -Parse incoming request bodies in a middleware before your handlers, availabe -under the `req.body` property. - -[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). - -_This does not handle multipart bodies_, due to their complex and typically -large nature. For multipart bodies, you may be interested in the following -modules: - - * [busboy](https://www.npmjs.org/package/busboy#readme) and - [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) - * [multiparty](https://www.npmjs.org/package/multiparty#readme) and - [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) - * [formidable](https://www.npmjs.org/package/formidable#readme) - * [multer](https://www.npmjs.org/package/multer#readme) - -This module provides the following parsers: - - * [JSON body parser](#bodyparserjsonoptions) - * [Raw body parser](#bodyparserrawoptions) - * [Text body parser](#bodyparsertextoptions) - * [URL-encoded form body parser](#bodyparserurlencodedoptions) - -Other body parsers you might be interested in: - -- [body](https://www.npmjs.org/package/body#readme) -- [co-body](https://www.npmjs.org/package/co-body#readme) - -## Installation - -```sh -$ npm install body-parser -``` - -## API - -```js -var bodyParser = require('body-parser') -``` - -The `bodyParser` object exposes various factories to create middlewares. All -middlewares will populate the `req.body` property with the parsed body, or an -empty object (`{}`) if there was no body to parse (or an error was returned). - -The various errors returned by this module are described in the -[errors section](#errors). - -### bodyParser.json(options) - -Returns middleware that only parses `json`. This parser accepts any Unicode -encoding of the body and supports automatic inflation of `gzip` and `deflate` -encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). - -#### Options - -The `json` function takes an option `options` object that may contain any of -the following keys: - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### reviver - -The `reviver` option is passed directly to `JSON.parse` as the second -argument. You can find more information on this argument -[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). - -##### strict - -When set to `true`, will only accept arrays and objects; when `false` will -accept anything `JSON.parse` accepts. Defaults to `true`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a function or a string. If a string, `type` option -is passed directly to the [type-is](https://www.npmjs.org/package/type-is#readme) -library and this can be an extension name (like `json`), a mime type (like -`application/json`), or a mime type with a wildcard (like `*/*` or `*/json`). -If a function, the `type` option is called as `fn(req)` and the request is -parsed if it returns a truthy value. Defaults to `application/json`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.raw(options) - -Returns middleware that parses all bodies as a `Buffer`. This parser -supports automatic inflation of `gzip` and `deflate` encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This will be a `Buffer` object -of the body. - -#### Options - -The `raw` function takes an option `options` object that may contain any of -the following keys: - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a function or a string. If a string, `type` option -is passed directly to the [type-is](https://www.npmjs.org/package/type-is#readme) -library and this can be an extension name (like `bin`), a mime type (like -`application/octet-stream`), or a mime type with a wildcard (like `*/*` or -`application/*`). If a function, the `type` option is called as `fn(req)` -and the request is parsed if it returns a truthy value. Defaults to -`application/octet-stream`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.text(options) - -Returns middleware that parses all bodies as a string. This parser supports -automatic inflation of `gzip` and `deflate` encodings. - -A new `body` string containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This will be a string of the -body. - -#### Options - -The `text` function takes an option `options` object that may contain any of -the following keys: - -##### defaultCharset - -Specify the default character set for the text content if the charset is not -specified in the `Content-Type` header of the request. Defaults to `utf-8`. - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a function or a string. If a string, `type` option -is passed directly to the [type-is](https://www.npmjs.org/package/type-is#readme) -library and this can be an extension name (like `txt`), a mime type (like -`text/plain`), or a mime type with a wildcard (like `*/*` or `text/*`). -If a function, the `type` option is called as `fn(req)` and the request is -parsed if it returns a truthy value. Defaults to `text/plain`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.urlencoded(options) - -Returns middleware that only parses `urlencoded` bodies. This parser accepts -only UTF-8 encoding of the body and supports automatic inflation of `gzip` -and `deflate` encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This object will contain -key-value pairs, where the value can be a string or array (when `extended` is -`false`), or any type (when `extended` is `true`). - -#### Options - -The `urlencoded` function takes an option `options` object that may contain -any of the following keys: - -##### extended - -The `extended` option allows to choose between parsing the URL-encoded data -with the `querystring` library (when `false`) or the `qs` library (when -`true`). The "extended" syntax allows for rich objects and arrays to be -encoded into the URL-encoded format, allowing for a JSON-like experience -with URL-encoded. For more information, please -[see the qs library](https://www.npmjs.org/package/qs#readme). - -Defaults to `true`, but using the default has been deprecated. Please -research into the difference between `qs` and `querystring` and choose the -appropriate setting. - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### parameterLimit - -The `parameterLimit` option controls the maximum number of parameters that -are allowed in the URL-encoded data. If a request contains more parameters -than this value, a 413 will be returned to the client. Defaults to `1000`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a function or a string. If a string, `type` option -is passed directly to the [type-is](https://www.npmjs.org/package/type-is#readme) -library and this can be an extension name (like `urlencoded`), a mime type (like -`application/x-www-form-urlencoded`), or a mime type with a wildcard (like -`*/x-www-form-urlencoded`). If a function, the `type` option is called as -`fn(req)` and the request is parsed if it returns a truthy value. Defaults -to `application/x-www-form-urlencoded`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -## Errors - -The middlewares provided by this module create errors depending on the error -condition during parsing. The errors will typically have a `status` property -that contains the suggested HTTP response code and a `body` property containing -the read body, if available. - -The following are the common errors emitted, though any error can come through -for various reasons. - -### content encoding unsupported - -This error will occur when the request had a `Content-Encoding` header that -contained an encoding but the "inflation" option was set to `false`. The -`status` property is set to `415`. - -### request aborted - -This error will occur when the request is aborted by the client before reading -the body has finished. The `received` property will be set to the number of -bytes received before the request was aborted and the `expected` property is -set to the number of expected bytes. The `status` property is set to `400`. - -### request entity too large - -This error will occur when the request body's size is larger than the "limit" -option. The `limit` property will be set to the byte limit and the `length` -property will be set to the request body's length. The `status` property is -set to `413`. - -### request size did not match content length - -This error will occur when the request's length did not match the length from -the `Content-Length` header. This typically occurs when the request is malformed, -typically when the `Content-Length` header was calculated based on characters -instead of bytes. The `status` property is set to `400`. - -### stream encoding should not be set - -This error will occur when something called the `req.setEncoding` method prior -to this middleware. This module operates directly on bytes only and you cannot -call `req.setEncoding` when using this module. The `status` property is set to -`500`. - -### unsupported charset "BOGUS" - -This error will occur when the request had a charset parameter in the -`Content-Type` header, but the `iconv-lite` module does not support it OR the -parser does not support it. The charset is contained in the message as well -as in the `charset` property. The `status` property is set to `415`. - -### unsupported content encoding "bogus" - -This error will occur when the request had a `Content-Encoding` header that -contained an unsupported encoding. The encoding is contained in the message -as well as in the `encoding` property. The `status` property is set to `415`. - -## Examples - -### Express/Connect top-level generic - -This example demonstrates adding a generic JSON and URL-encoded parser as a -top-level middleware, which will parse the bodies of all incoming requests. -This is the simplest setup. - -```js -var express = require('express') -var bodyParser = require('body-parser') - -var app = express() - -// parse application/x-www-form-urlencoded -app.use(bodyParser.urlencoded({ extended: false })) - -// parse application/json -app.use(bodyParser.json()) - -app.use(function (req, res) { - res.setHeader('Content-Type', 'text/plain') - res.write('you posted:\n') - res.end(JSON.stringify(req.body, null, 2)) -}) -``` - -### Express route-specific - -This example demonstrates adding body parsers specifically to the routes that -need them. In general, this is the most recommended way to use body-parser with -Express. - -```js -var express = require('express') -var bodyParser = require('body-parser') - -var app = express() - -// create application/json parser -var jsonParser = bodyParser.json() - -// create application/x-www-form-urlencoded parser -var urlencodedParser = bodyParser.urlencoded({ extended: false }) - -// POST /login gets urlencoded bodies -app.post('/login', urlencodedParser, function (req, res) { - if (!req.body) return res.sendStatus(400) - res.send('welcome, ' + req.body.username) -}) - -// POST /api/users gets JSON bodies -app.post('/api/users', jsonParser, function (req, res) { - if (!req.body) return res.sendStatus(400) - // create user in req.body -}) -``` - -### Change accepted type for parsers - -All the parsers accept a `type` option which allows you to change the -`Content-Type` that the middleware will parse. - -```js -// parse various different custom JSON types as JSON -app.use(bodyParser.json({ type: 'application/*+json' })) - -// parse some custom thing into a Buffer -app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) - -// parse an HTML body into a string -app.use(bodyParser.text({ type: 'text/html' })) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/body-parser.svg -[npm-url]: https://npmjs.org/package/body-parser -[travis-image]: https://img.shields.io/travis/expressjs/body-parser/master.svg -[travis-url]: https://travis-ci.org/expressjs/body-parser -[coveralls-image]: https://img.shields.io/coveralls/expressjs/body-parser/master.svg -[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master -[downloads-image]: https://img.shields.io/npm/dm/body-parser.svg -[downloads-url]: https://npmjs.org/package/body-parser -[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg -[gratipay-url]: https://www.gratipay.com/dougwilson/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/index.js deleted file mode 100644 index 93c3a1ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/index.js +++ /dev/null @@ -1,157 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var deprecate = require('depd')('body-parser') - -/** - * Cache of loaded parsers. - * @private - */ - -var parsers = Object.create(null) - -/** - * @typedef Parsers - * @type {function} - * @property {function} json - * @property {function} raw - * @property {function} text - * @property {function} urlencoded - */ - -/** - * Module exports. - * @type {Parsers} - */ - -exports = module.exports = deprecate.function(bodyParser, - 'bodyParser: use individual json/urlencoded middlewares') - -/** - * JSON parser. - * @public - */ - -Object.defineProperty(exports, 'json', { - configurable: true, - enumerable: true, - get: createParserGetter('json') -}) - -/** - * Raw parser. - * @public - */ - -Object.defineProperty(exports, 'raw', { - configurable: true, - enumerable: true, - get: createParserGetter('raw') -}) - -/** - * Text parser. - * @public - */ - -Object.defineProperty(exports, 'text', { - configurable: true, - enumerable: true, - get: createParserGetter('text') -}) - -/** - * URL-encoded parser. - * @public - */ - -Object.defineProperty(exports, 'urlencoded', { - configurable: true, - enumerable: true, - get: createParserGetter('urlencoded') -}) - -/** - * Create a middleware to parse json and urlencoded bodies. - * - * @param {object} [options] - * @return {function} - * @deprecated - * @public - */ - -function bodyParser (options) { - var opts = {} - - // exclude type option - if (options) { - for (var prop in options) { - if (prop !== 'type') { - opts[prop] = options[prop] - } - } - } - - var _urlencoded = exports.urlencoded(opts) - var _json = exports.json(opts) - - return function bodyParser (req, res, next) { - _json(req, res, function (err) { - if (err) return next(err) - _urlencoded(req, res, next) - }) - } -} - -/** - * Create a getter for loading a parser. - * @private - */ - -function createParserGetter (name) { - return function get () { - return loadParser(name) - } -} - -/** - * Load a parser module. - * @private - */ - -function loadParser (parserName) { - var parser = parsers[parserName] - - if (parser !== undefined) { - return parser - } - - // this uses a switch for static require analysis - switch (parserName) { - case 'json': - parser = require('./lib/types/json') - break - case 'raw': - parser = require('./lib/types/raw') - break - case 'text': - parser = require('./lib/types/text') - break - case 'urlencoded': - parser = require('./lib/types/urlencoded') - break - } - - // store to prevent invoking require() - return (parsers[parserName] = parser) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/read.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/read.js deleted file mode 100644 index 3c0fe936..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/read.js +++ /dev/null @@ -1,188 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var createError = require('http-errors') -var getBody = require('raw-body') -var iconv = require('iconv-lite') -var onFinished = require('on-finished') -var zlib = require('zlib') - -/** - * Module exports. - */ - -module.exports = read - -/** - * Read a request into a buffer and parse. - * - * @param {object} req - * @param {object} res - * @param {function} next - * @param {function} parse - * @param {function} debug - * @param {object} [options] - * @api private - */ - -function read (req, res, next, parse, debug, options) { - var length - var opts = options || {} - var stream - - // flag as parsed - req._body = true - - // read options - var encoding = opts.encoding !== null - ? opts.encoding || 'utf-8' - : null - var verify = opts.verify - - try { - // get the content stream - stream = contentstream(req, debug, opts.inflate) - length = stream.length - stream.length = undefined - } catch (err) { - return next(err) - } - - // set raw-body options - opts.length = length - opts.encoding = verify - ? null - : encoding - - // assert charset is supported - if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { - return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { - charset: encoding.toLowerCase() - })) - } - - // read body - debug('read body') - getBody(stream, opts, function (err, body) { - if (err) { - // default to 400 - setErrorStatus(err, 400) - - // echo back charset - if (err.type === 'encoding.unsupported') { - err = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { - charset: encoding.toLowerCase() - }) - } - - // read off entire request - stream.resume() - onFinished(req, function onfinished () { - next(err) - }) - return - } - - // verify - if (verify) { - try { - debug('verify body') - verify(req, res, body, encoding) - } catch (err) { - // default to 403 - setErrorStatus(err, 403) - next(err) - return - } - } - - // parse - var str - try { - debug('parse body') - str = typeof body !== 'string' && encoding !== null - ? iconv.decode(body, encoding) - : body - req.body = parse(str) - } catch (err) { - err.body = str === undefined - ? body - : str - - // default to 400 - setErrorStatus(err, 400) - - next(err) - return - } - - next() - }) -} - -/** - * Get the content stream of the request. - * - * @param {object} req - * @param {function} debug - * @param {boolean} [inflate=true] - * @return {object} - * @api private - */ - -function contentstream (req, debug, inflate) { - var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase() - var length = req.headers['content-length'] - var stream - - debug('content-encoding "%s"', encoding) - - if (inflate === false && encoding !== 'identity') { - throw createError(415, 'content encoding unsupported') - } - - switch (encoding) { - case 'deflate': - stream = zlib.createInflate() - debug('inflate body') - req.pipe(stream) - break - case 'gzip': - stream = zlib.createGunzip() - debug('gunzip body') - req.pipe(stream) - break - case 'identity': - stream = req - stream.length = length - break - default: - throw createError(415, 'unsupported content encoding "' + encoding + '"', { - encoding: encoding - }) - } - - return stream -} - -/** - * Set a status on an error object, if ones does not exist - * @private - */ - -function setErrorStatus (error, status) { - if (!error.status && !error.statusCode) { - error.status = status - error.statusCode = status - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/json.js deleted file mode 100644 index d0023c7b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/json.js +++ /dev/null @@ -1,175 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var bytes = require('bytes') -var contentType = require('content-type') -var createError = require('http-errors') -var debug = require('debug')('body-parser:json') -var read = require('../read') -var typeis = require('type-is') - -/** - * Module exports. - */ - -module.exports = json - -/** - * RegExp to match the first non-space in a string. - * - * Allowed whitespace is defined in RFC 7159: - * - * ws = *( - * %x20 / ; Space - * %x09 / ; Horizontal tab - * %x0A / ; Line feed or New line - * %x0D ) ; Carriage return - */ - -var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*(.)/ // eslint-disable-line no-control-regex - -/** - * Create a middleware to parse JSON bodies. - * - * @param {object} [options] - * @return {function} - * @public - */ - -function json (options) { - var opts = options || {} - - var limit = typeof opts.limit !== 'number' - ? bytes.parse(opts.limit || '100kb') - : opts.limit - var inflate = opts.inflate !== false - var reviver = opts.reviver - var strict = opts.strict !== false - var type = opts.type || 'application/json' - var verify = opts.verify || false - - if (verify !== false && typeof verify !== 'function') { - throw new TypeError('option verify must be function') - } - - // create the appropriate type checking function - var shouldParse = typeof type !== 'function' - ? typeChecker(type) - : type - - function parse (body) { - if (body.length === 0) { - // special-case empty json body, as it's a common client-side mistake - // TODO: maybe make this configurable or part of "strict" option - return {} - } - - if (strict) { - var first = firstchar(body) - - if (first !== '{' && first !== '[') { - debug('strict violation') - throw new SyntaxError('Unexpected token ' + first) - } - } - - debug('parse json') - return JSON.parse(body, reviver) - } - - return function jsonParser (req, res, next) { - if (req._body) { - debug('body already parsed') - next() - return - } - - req.body = req.body || {} - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // assert charset per RFC 7159 sec 8.1 - var charset = getCharset(req) || 'utf-8' - if (charset.substr(0, 4) !== 'utf-') { - debug('invalid charset') - next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { - charset: charset - })) - return - } - - // read - read(req, res, next, parse, debug, { - encoding: charset, - inflate: inflate, - limit: limit, - verify: verify - }) - } -} - -/** - * Get the first non-whitespace character in a string. - * - * @param {string} str - * @return {function} - * @api public - */ - -function firstchar (str) { - var match = FIRST_CHAR_REGEXP.exec(str) - return match ? match[1] : '' -} - -/** - * Get the charset of a request. - * - * @param {object} req - * @api private - */ - -function getCharset (req) { - try { - return contentType.parse(req).parameters.charset.toLowerCase() - } catch (e) { - return undefined - } -} - -/** - * Get the simple type checker. - * - * @param {string} type - * @return {function} - */ - -function typeChecker (type) { - return function checkType (req) { - return Boolean(typeis(req, type)) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/raw.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/raw.js deleted file mode 100644 index f5d1b674..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/raw.js +++ /dev/null @@ -1,101 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - */ - -var bytes = require('bytes') -var debug = require('debug')('body-parser:raw') -var read = require('../read') -var typeis = require('type-is') - -/** - * Module exports. - */ - -module.exports = raw - -/** - * Create a middleware to parse raw bodies. - * - * @param {object} [options] - * @return {function} - * @api public - */ - -function raw (options) { - var opts = options || {} - - var inflate = opts.inflate !== false - var limit = typeof opts.limit !== 'number' - ? bytes.parse(opts.limit || '100kb') - : opts.limit - var type = opts.type || 'application/octet-stream' - var verify = opts.verify || false - - if (verify !== false && typeof verify !== 'function') { - throw new TypeError('option verify must be function') - } - - // create the appropriate type checking function - var shouldParse = typeof type !== 'function' - ? typeChecker(type) - : type - - function parse (buf) { - return buf - } - - return function rawParser (req, res, next) { - if (req._body) { - debug('body already parsed') - next() - return - } - - req.body = req.body || {} - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // read - read(req, res, next, parse, debug, { - encoding: null, - inflate: inflate, - limit: limit, - verify: verify - }) - } -} - -/** - * Get the simple type checker. - * - * @param {string} type - * @return {function} - */ - -function typeChecker (type) { - return function checkType (req) { - return Boolean(typeis(req, type)) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/text.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/text.js deleted file mode 100644 index 8bf26375..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/text.js +++ /dev/null @@ -1,121 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - */ - -var bytes = require('bytes') -var contentType = require('content-type') -var debug = require('debug')('body-parser:text') -var read = require('../read') -var typeis = require('type-is') - -/** - * Module exports. - */ - -module.exports = text - -/** - * Create a middleware to parse text bodies. - * - * @param {object} [options] - * @return {function} - * @api public - */ - -function text (options) { - var opts = options || {} - - var defaultCharset = opts.defaultCharset || 'utf-8' - var inflate = opts.inflate !== false - var limit = typeof opts.limit !== 'number' - ? bytes.parse(opts.limit || '100kb') - : opts.limit - var type = opts.type || 'text/plain' - var verify = opts.verify || false - - if (verify !== false && typeof verify !== 'function') { - throw new TypeError('option verify must be function') - } - - // create the appropriate type checking function - var shouldParse = typeof type !== 'function' - ? typeChecker(type) - : type - - function parse (buf) { - return buf - } - - return function textParser (req, res, next) { - if (req._body) { - debug('body already parsed') - next() - return - } - - req.body = req.body || {} - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // get charset - var charset = getCharset(req) || defaultCharset - - // read - read(req, res, next, parse, debug, { - encoding: charset, - inflate: inflate, - limit: limit, - verify: verify - }) - } -} - -/** - * Get the charset of a request. - * - * @param {object} req - * @api private - */ - -function getCharset (req) { - try { - return contentType.parse(req).parameters.charset.toLowerCase() - } catch (e) { - return undefined - } -} - -/** - * Get the simple type checker. - * - * @param {string} type - * @return {function} - */ - -function typeChecker (type) { - return function checkType (req) { - return Boolean(typeis(req, type)) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/urlencoded.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/urlencoded.js deleted file mode 100644 index 08157ae1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/lib/types/urlencoded.js +++ /dev/null @@ -1,279 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var bytes = require('bytes') -var contentType = require('content-type') -var createError = require('http-errors') -var debug = require('debug')('body-parser:urlencoded') -var deprecate = require('depd')('body-parser') -var read = require('../read') -var typeis = require('type-is') - -/** - * Module exports. - */ - -module.exports = urlencoded - -/** - * Cache of parser modules. - */ - -var parsers = Object.create(null) - -/** - * Create a middleware to parse urlencoded bodies. - * - * @param {object} [options] - * @return {function} - * @public - */ - -function urlencoded (options) { - var opts = options || {} - - // notice because option default will flip in next major - if (opts.extended === undefined) { - deprecate('undefined extended: provide extended option') - } - - var extended = opts.extended !== false - var inflate = opts.inflate !== false - var limit = typeof opts.limit !== 'number' - ? bytes.parse(opts.limit || '100kb') - : opts.limit - var type = opts.type || 'application/x-www-form-urlencoded' - var verify = opts.verify || false - - if (verify !== false && typeof verify !== 'function') { - throw new TypeError('option verify must be function') - } - - // create the appropriate query parser - var queryparse = extended - ? extendedparser(opts) - : simpleparser(opts) - - // create the appropriate type checking function - var shouldParse = typeof type !== 'function' - ? typeChecker(type) - : type - - function parse (body) { - return body.length - ? queryparse(body) - : {} - } - - return function urlencodedParser (req, res, next) { - if (req._body) { - debug('body already parsed') - next() - return - } - - req.body = req.body || {} - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // assert charset - var charset = getCharset(req) || 'utf-8' - if (charset !== 'utf-8') { - debug('invalid charset') - next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { - charset: charset - })) - return - } - - // read - read(req, res, next, parse, debug, { - debug: debug, - encoding: charset, - inflate: inflate, - limit: limit, - verify: verify - }) - } -} - -/** - * Get the extended query parser. - * - * @param {object} options - */ - -function extendedparser (options) { - var parameterLimit = options.parameterLimit !== undefined - ? options.parameterLimit - : 1000 - var parse = parser('qs') - - if (isNaN(parameterLimit) || parameterLimit < 1) { - throw new TypeError('option parameterLimit must be a positive number') - } - - if (isFinite(parameterLimit)) { - parameterLimit = parameterLimit | 0 - } - - return function queryparse (body) { - var paramCount = parameterCount(body, parameterLimit) - - if (paramCount === undefined) { - debug('too many parameters') - throw createError(413, 'too many parameters') - } - - var arrayLimit = Math.max(100, paramCount) - - debug('parse extended urlencoding') - return parse(body, { - allowPrototypes: true, - arrayLimit: arrayLimit, - depth: Infinity, - parameterLimit: parameterLimit - }) - } -} - -/** - * Get the charset of a request. - * - * @param {object} req - * @api private - */ - -function getCharset (req) { - try { - return contentType.parse(req).parameters.charset.toLowerCase() - } catch (e) { - return undefined - } -} - -/** - * Count the number of parameters, stopping once limit reached - * - * @param {string} body - * @param {number} limit - * @api private - */ - -function parameterCount (body, limit) { - var count = 0 - var index = 0 - - while ((index = body.indexOf('&', index)) !== -1) { - count++ - index++ - - if (count === limit) { - return undefined - } - } - - return count -} - -/** - * Get parser for module name dynamically. - * - * @param {string} name - * @return {function} - * @api private - */ - -function parser (name) { - var mod = parsers[name] - - if (mod !== undefined) { - return mod.parse - } - - // this uses a switch for static require analysis - switch (name) { - case 'qs': - mod = require('qs') - break - case 'querystring': - mod = require('querystring') - break - } - - // store to prevent invoking require() - parsers[name] = mod - - return mod.parse -} - -/** - * Get the simple query parser. - * - * @param {object} options - */ - -function simpleparser (options) { - var parameterLimit = options.parameterLimit !== undefined - ? options.parameterLimit - : 1000 - var parse = parser('querystring') - - if (isNaN(parameterLimit) || parameterLimit < 1) { - throw new TypeError('option parameterLimit must be a positive number') - } - - if (isFinite(parameterLimit)) { - parameterLimit = parameterLimit | 0 - } - - return function queryparse (body) { - var paramCount = parameterCount(body, parameterLimit) - - if (paramCount === undefined) { - debug('too many parameters') - throw createError(413, 'too many parameters') - } - - debug('parse urlencoding') - return parse(body, undefined, undefined, {maxKeys: parameterLimit}) - } -} - -/** - * Get the simple type checker. - * - * @param {string} type - * @return {function} - */ - -function typeChecker (type) { - return function checkType (req) { - return Boolean(typeis(req, type)) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/History.md deleted file mode 100644 index 56932a47..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/History.md +++ /dev/null @@ -1,70 +0,0 @@ -2.4.0 / 2016-06-01 -================== - - * Add option "unitSeparator" - -2.3.0 / 2016-02-15 -================== - - * Drop partial bytes on all parsed units - * Fix non-finite numbers to `.format` to return `null` - * Fix parsing byte string that looks like hex - * perf: hoist regular expressions - -2.2.0 / 2015-11-13 -================== - - * add option "decimalPlaces" - * add option "fixedDecimals" - -2.1.0 / 2015-05-21 -================== - - * add `.format` export - * add `.parse` export - -2.0.2 / 2015-05-20 -================== - - * remove map recreation - * remove unnecessary object construction - -2.0.1 / 2015-05-07 -================== - - * fix browserify require - * remove node.extend dependency - -2.0.0 / 2015-04-12 -================== - - * add option "case" - * add option "thousandsSeparator" - * return "null" on invalid parse input - * support proper round-trip: bytes(bytes(num)) === num - * units no longer case sensitive when parsing - -1.0.0 / 2014-05-05 -================== - - * add negative support. fixes #6 - -0.3.0 / 2014-03-19 -================== - - * added terabyte support - -0.2.1 / 2013-04-01 -================== - - * add .component - -0.2.0 / 2012-10-28 -================== - - * bytes(200).should.eql('200b') - -0.1.0 / 2012-07-04 -================== - - * add bytes to string conversion [yields] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/LICENSE deleted file mode 100644 index 63e95a96..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 TJ Holowaychuk -Copyright (c) 2015 Jed Watson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/Readme.md deleted file mode 100644 index 7465fde9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/Readme.md +++ /dev/null @@ -1,114 +0,0 @@ -# Bytes utility - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Build Status][travis-image]][travis-url] - -Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa. - -## Usage - -```js -var bytes = require('bytes'); -``` - -#### bytes.format(number value, [options]): string|null - -Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is - rounded. - -**Arguments** - -| Name | Type | Description | -|---------|--------|--------------------| -| value | `number` | Value in bytes | -| options | `Object` | Conversion options | - -**Options** - -| Property | Type | Description | -|-------------------|--------|-----------------------------------------------------------------------------------------| -| decimalPlaces | `number`|`null` | Maximum number of decimal places to include in output. Default value to `2`. | -| fixedDecimals | `boolean`|`null` | Whether to always display the maximum number of decimal places. Default value to `false` | -| thousandsSeparator | `string`|`null` | Example of values: `' '`, `','` and `.`... Default value to `' '`. | -| unitSeparator | `string`|`null` | Separator to use between number and unit. Default value to `''`. | - -**Returns** - -| Name | Type | Description | -|---------|-------------|-------------------------| -| results | `string`|`null` | Return null upon error. String value otherwise. | - -**Example** - -```js -bytes(1024); -// output: '1kB' - -bytes(1000); -// output: '1000B' - -bytes(1000, {thousandsSeparator: ' '}); -// output: '1 000B' - -bytes(1024 * 1.7, {decimalPlaces: 0}); -// output: '2kB' - -bytes(1024, {unitSeparator: ' '}); -// output: '1 kB' - -``` - -#### bytes.parse(string value): number|null - -Parse the string value into an integer in bytes. If no unit is given, it is assumed the value is in bytes. - -Supported units and abbreviations are as follows and are case-insensitive: - - * "b" for bytes - * "kb" for kilobytes - * "mb" for megabytes - * "gb" for gigabytes - * "tb" for terabytes - -The units are in powers of two, not ten. This means 1kb = 1024b according to this parser. - -**Arguments** - -| Name | Type | Description | -|---------------|--------|--------------------| -| value | `string` | String to parse. | - -**Returns** - -| Name | Type | Description | -|---------|-------------|-------------------------| -| results | `number`|`null` | Return null upon error. Value in bytes otherwise. | - -**Example** - -```js -bytes('1kB'); -// output: 1024 - -bytes('1024'); -// output: 1024 -``` - -## Installation - -```bash -npm install bytes --save -component install visionmedia/bytes.js -``` - -## License - -[![npm](https://img.shields.io/npm/l/express.svg)](https://github.com/visionmedia/bytes.js/blob/master/LICENSE) - -[downloads-image]: https://img.shields.io/npm/dm/bytes.svg -[downloads-url]: https://npmjs.org/package/bytes -[npm-image]: https://img.shields.io/npm/v/bytes.svg -[npm-url]: https://npmjs.org/package/bytes -[travis-image]: https://img.shields.io/travis/visionmedia/bytes.js/master.svg -[travis-url]: https://travis-ci.org/visionmedia/bytes.js diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/index.js deleted file mode 100644 index aa24231b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/index.js +++ /dev/null @@ -1,157 +0,0 @@ -/*! - * bytes - * Copyright(c) 2012-2014 TJ Holowaychuk - * Copyright(c) 2015 Jed Watson - * MIT Licensed - */ - -'use strict'; - -/** - * Module exports. - * @public - */ - -module.exports = bytes; -module.exports.format = format; -module.exports.parse = parse; - -/** - * Module variables. - * @private - */ - -var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; - -var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; - -var map = { - b: 1, - kb: 1 << 10, - mb: 1 << 20, - gb: 1 << 30, - tb: ((1 << 30) * 1024) -}; - -// TODO: use is-finite module? -var numberIsFinite = Number.isFinite || function (v) { return typeof v === 'number' && isFinite(v); }; - -var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb)$/i; - -/** - * Convert the given value in bytes into a string or parse to string to an integer in bytes. - * - * @param {string|number} value - * @param {{ - * case: [string], - * decimalPlaces: [number] - * fixedDecimals: [boolean] - * thousandsSeparator: [string] - * unitSeparator: [string] - * }} [options] bytes options. - * - * @returns {string|number|null} - */ - -function bytes(value, options) { - if (typeof value === 'string') { - return parse(value); - } - - if (typeof value === 'number') { - return format(value, options); - } - - return null; -} - -/** - * Format the given value in bytes into a string. - * - * If the value is negative, it is kept as such. If it is a float, - * it is rounded. - * - * @param {number} value - * @param {object} [options] - * @param {number} [options.decimalPlaces=2] - * @param {number} [options.fixedDecimals=false] - * @param {string} [options.thousandsSeparator=] - * @param {string} [options.unitSeparator=] - * - * @returns {string|null} - * @public - */ - -function format(value, options) { - if (!numberIsFinite(value)) { - return null; - } - - var mag = Math.abs(value); - var thousandsSeparator = (options && options.thousandsSeparator) || ''; - var unitSeparator = (options && options.unitSeparator) || ''; - var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2; - var fixedDecimals = Boolean(options && options.fixedDecimals); - var unit = 'B'; - - if (mag >= map.tb) { - unit = 'TB'; - } else if (mag >= map.gb) { - unit = 'GB'; - } else if (mag >= map.mb) { - unit = 'MB'; - } else if (mag >= map.kb) { - unit = 'kB'; - } - - var val = value / map[unit.toLowerCase()]; - var str = val.toFixed(decimalPlaces); - - if (!fixedDecimals) { - str = str.replace(formatDecimalsRegExp, '$1'); - } - - if (thousandsSeparator) { - str = str.replace(formatThousandsRegExp, thousandsSeparator); - } - - return str + unitSeparator + unit; -} - -/** - * Parse the string value into an integer in bytes. - * - * If no unit is given, it is assumed the value is in bytes. - * - * @param {number|string} val - * - * @returns {number|null} - * @public - */ - -function parse(val) { - if (typeof val === 'number' && !isNaN(val)) { - return val; - } - - if (typeof val !== 'string') { - return null; - } - - // Test if the string passed is valid - var results = parseRegExp.exec(val); - var floatValue; - var unit = 'b'; - - if (!results) { - // Nothing could be extracted from the given string - floatValue = parseInt(val, 10); - unit = 'b' - } else { - // Retrieve the value and the unit - floatValue = parseFloat(results[1]); - unit = results[4].toLowerCase(); - } - - return Math.floor(map[unit] * floatValue); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/package.json deleted file mode 100644 index f4c397ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/bytes/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "bytes", - "description": "Utility to parse a string bytes to bytes and vice-versa", - "version": "2.4.0", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": "http://tjholowaychuk.com" - }, - "contributors": [ - { - "name": "Jed Watson", - "email": "jed.watson@me.com" - }, - { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com" - } - ], - "license": "MIT", - "keywords": [ - "byte", - "bytes", - "utility", - "parse", - "parser", - "convert", - "converter" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/visionmedia/bytes.js.git" - }, - "component": { - "scripts": { - "bytes/index.js": "index.js" - } - }, - "devDependencies": { - "mocha": "1.21.5" - }, - "files": [ - "History.md", - "LICENSE", - "Readme.md", - "index.js" - ], - "scripts": { - "test": "mocha --check-leaks --reporter spec" - }, - "gitHead": "2a598442bdfa796df8d01a96cc54495cda550e70", - "bugs": { - "url": "https://github.com/visionmedia/bytes.js/issues" - }, - "homepage": "https://github.com/visionmedia/bytes.js", - "_id": "bytes@2.4.0", - "_shasum": "7d97196f9d5baf7f6935e25985549edd2a6c2339", - "_from": "bytes@2.4.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "dist": { - "shasum": "7d97196f9d5baf7f6935e25985549edd2a6c2339", - "tarball": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/bytes-2.4.0.tgz_1464812473023_0.6271433881483972" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/HISTORY.md deleted file mode 100644 index 01652ff4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/HISTORY.md +++ /dev/null @@ -1,14 +0,0 @@ -1.0.2 / 2016-05-09 -================== - - * perf: enable strict mode - -1.0.1 / 2015-02-13 -================== - - * Improve missing `Content-Type` header error message - -1.0.0 / 2015-02-01 -================== - - * Initial implementation, derived from `media-typer@0.3.0` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/LICENSE deleted file mode 100644 index 34b1a2de..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/README.md deleted file mode 100644 index 3ed67413..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# content-type - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create and parse HTTP Content-Type header according to RFC 7231 - -## Installation - -```sh -$ npm install content-type -``` - -## API - -```js -var contentType = require('content-type') -``` - -### contentType.parse(string) - -```js -var obj = contentType.parse('image/svg+xml; charset=utf-8') -``` - -Parse a content type string. This will return an object with the following -properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): - - - `type`: The media type (the type and subtype, always lower case). - Example: `'image/svg+xml'` - - - `parameters`: An object of the parameters in the media type (name of parameter - always lower case). Example: `{charset: 'utf-8'}` - -Throws a `TypeError` if the string is missing or invalid. - -### contentType.parse(req) - -```js -var obj = contentType.parse(req) -``` - -Parse the `content-type` header from the given `req`. Short-cut for -`contentType.parse(req.headers['content-type'])`. - -Throws a `TypeError` if the `Content-Type` header is missing or invalid. - -### contentType.parse(res) - -```js -var obj = contentType.parse(res) -``` - -Parse the `content-type` header set on the given `res`. Short-cut for -`contentType.parse(res.getHeader('content-type'))`. - -Throws a `TypeError` if the `Content-Type` header is missing or invalid. - -### contentType.format(obj) - -```js -var str = contentType.format({type: 'image/svg+xml'}) -``` - -Format an object into a content type string. This will return a string of the -content type for the given object with the following properties (examples are -shown that produce the string `'image/svg+xml; charset=utf-8'`): - - - `type`: The media type (will be lower-cased). Example: `'image/svg+xml'` - - - `parameters`: An object of the parameters in the media type (name of the - parameter will be lower-cased). Example: `{charset: 'utf-8'}` - -Throws a `TypeError` if the object contains an invalid type or parameter names. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/content-type.svg -[npm-url]: https://npmjs.org/package/content-type -[node-version-image]: https://img.shields.io/node/v/content-type.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/content-type/master.svg -[travis-url]: https://travis-ci.org/jshttp/content-type -[coveralls-image]: https://img.shields.io/coveralls/jshttp/content-type/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/content-type -[downloads-image]: https://img.shields.io/npm/dm/content-type.svg -[downloads-url]: https://npmjs.org/package/content-type diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/index.js deleted file mode 100644 index 61ba6b5a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/index.js +++ /dev/null @@ -1,216 +0,0 @@ -/*! - * content-type - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1 - * - * parameter = token "=" ( token / quoted-string ) - * token = 1*tchar - * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" - * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" - * / DIGIT / ALPHA - * ; any VCHAR, except delimiters - * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE - * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text - * obs-text = %x80-FF - * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) - */ -var paramRegExp = /; *([!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+) */g -var textRegExp = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/ -var tokenRegExp = /^[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+$/ - -/** - * RegExp to match quoted-pair in RFC 7230 sec 3.2.6 - * - * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) - * obs-text = %x80-FF - */ -var qescRegExp = /\\([\u000b\u0020-\u00ff])/g - -/** - * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6 - */ -var quoteRegExp = /([\\"])/g - -/** - * RegExp to match type in RFC 6838 - * - * media-type = type "/" subtype - * type = token - * subtype = token - */ -var typeRegExp = /^[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+\/[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+$/ - -/** - * Module exports. - * @public - */ - -exports.format = format -exports.parse = parse - -/** - * Format object to media type. - * - * @param {object} obj - * @return {string} - * @public - */ - -function format(obj) { - if (!obj || typeof obj !== 'object') { - throw new TypeError('argument obj is required') - } - - var parameters = obj.parameters - var type = obj.type - - if (!type || !typeRegExp.test(type)) { - throw new TypeError('invalid type') - } - - var string = type - - // append parameters - if (parameters && typeof parameters === 'object') { - var param - var params = Object.keys(parameters).sort() - - for (var i = 0; i < params.length; i++) { - param = params[i] - - if (!tokenRegExp.test(param)) { - throw new TypeError('invalid parameter name') - } - - string += '; ' + param + '=' + qstring(parameters[param]) - } - } - - return string -} - -/** - * Parse media type to object. - * - * @param {string|object} string - * @return {Object} - * @public - */ - -function parse(string) { - if (!string) { - throw new TypeError('argument string is required') - } - - if (typeof string === 'object') { - // support req/res-like objects as argument - string = getcontenttype(string) - - if (typeof string !== 'string') { - throw new TypeError('content-type header is missing from object'); - } - } - - if (typeof string !== 'string') { - throw new TypeError('argument string is required to be a string') - } - - var index = string.indexOf(';') - var type = index !== -1 - ? string.substr(0, index).trim() - : string.trim() - - if (!typeRegExp.test(type)) { - throw new TypeError('invalid media type') - } - - var key - var match - var obj = new ContentType(type.toLowerCase()) - var value - - paramRegExp.lastIndex = index - - while (match = paramRegExp.exec(string)) { - if (match.index !== index) { - throw new TypeError('invalid parameter format') - } - - index += match[0].length - key = match[1].toLowerCase() - value = match[2] - - if (value[0] === '"') { - // remove quotes and escapes - value = value - .substr(1, value.length - 2) - .replace(qescRegExp, '$1') - } - - obj.parameters[key] = value - } - - if (index !== -1 && index !== string.length) { - throw new TypeError('invalid parameter format') - } - - return obj -} - -/** - * Get content-type from req/res objects. - * - * @param {object} - * @return {Object} - * @private - */ - -function getcontenttype(obj) { - if (typeof obj.getHeader === 'function') { - // res-like - return obj.getHeader('content-type') - } - - if (typeof obj.headers === 'object') { - // req-like - return obj.headers && obj.headers['content-type'] - } -} - -/** - * Quote a string if necessary. - * - * @param {string} val - * @return {string} - * @private - */ - -function qstring(val) { - var str = String(val) - - // no need to quote tokens - if (tokenRegExp.test(str)) { - return str - } - - if (str.length > 0 && !textRegExp.test(str)) { - throw new TypeError('invalid parameter value') - } - - return '"' + str.replace(quoteRegExp, '\\$1') + '"' -} - -/** - * Class to represent a content type. - * @private - */ -function ContentType(type) { - this.parameters = Object.create(null) - this.type = type -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/package.json deleted file mode 100644 index 9f110914..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/content-type/package.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "name": "content-type", - "description": "Create and parse HTTP Content-Type header", - "version": "1.0.2", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "keywords": [ - "content-type", - "http", - "req", - "res", - "rfc7231" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/content-type.git" - }, - "devDependencies": { - "istanbul": "0.4.3", - "mocha": "~1.21.5" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - }, - "gitHead": "8118763adfbbac80cf1254191889330aec8b8be7", - "bugs": { - "url": "https://github.com/jshttp/content-type/issues" - }, - "homepage": "https://github.com/jshttp/content-type#readme", - "_id": "content-type@1.0.2", - "_shasum": "b7d113aee7a8dd27bd21133c4dc2529df1721eed", - "_from": "content-type@>=1.0.2 <1.1.0", - "_npmVersion": "2.15.1", - "_nodeVersion": "4.4.3", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "b7d113aee7a8dd27bd21133c4dc2529df1721eed", - "tarball": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/content-type-1.0.2.tgz_1462852785748_0.5491233412176371" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/.jshintrc deleted file mode 100644 index 299877f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/.jshintrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "laxbreak": true -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/.npmignore deleted file mode 100644 index 7e6163db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -support -test -examples -example -*.sock -dist diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/History.md deleted file mode 100644 index 854c9711..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/History.md +++ /dev/null @@ -1,195 +0,0 @@ - -2.2.0 / 2015-05-09 -================== - - * package: update "ms" to v0.7.1 (#202, @dougwilson) - * README: add logging to file example (#193, @DanielOchoa) - * README: fixed a typo (#191, @amir-s) - * browser: expose `storage` (#190, @stephenmathieson) - * Makefile: add a `distclean` target (#189, @stephenmathieson) - -2.1.3 / 2015-03-13 -================== - - * Updated stdout/stderr example (#186) - * Updated example/stdout.js to match debug current behaviour - * Renamed example/stderr.js to stdout.js - * Update Readme.md (#184) - * replace high intensity foreground color for bold (#182, #183) - -2.1.2 / 2015-03-01 -================== - - * dist: recompile - * update "ms" to v0.7.0 - * package: update "browserify" to v9.0.3 - * component: fix "ms.js" repo location - * changed bower package name - * updated documentation about using debug in a browser - * fix: security error on safari (#167, #168, @yields) - -2.1.1 / 2014-12-29 -================== - - * browser: use `typeof` to check for `console` existence - * browser: check for `console.log` truthiness (fix IE 8/9) - * browser: add support for Chrome apps - * Readme: added Windows usage remarks - * Add `bower.json` to properly support bower install - -2.1.0 / 2014-10-15 -================== - - * node: implement `DEBUG_FD` env variable support - * package: update "browserify" to v6.1.0 - * package: add "license" field to package.json (#135, @panuhorsmalahti) - -2.0.0 / 2014-09-01 -================== - - * package: update "browserify" to v5.11.0 - * node: use stderr rather than stdout for logging (#29, @stephenmathieson) - -1.0.4 / 2014-07-15 -================== - - * dist: recompile - * example: remove `console.info()` log usage - * example: add "Content-Type" UTF-8 header to browser example - * browser: place %c marker after the space character - * browser: reset the "content" color via `color: inherit` - * browser: add colors support for Firefox >= v31 - * debug: prefer an instance `log()` function over the global one (#119) - * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) - -1.0.3 / 2014-07-09 -================== - - * Add support for multiple wildcards in namespaces (#122, @seegno) - * browser: fix lint - -1.0.2 / 2014-06-10 -================== - - * browser: update color palette (#113, @gscottolson) - * common: make console logging function configurable (#108, @timoxley) - * node: fix %o colors on old node <= 0.8.x - * Makefile: find node path using shell/which (#109, @timoxley) - -1.0.1 / 2014-06-06 -================== - - * browser: use `removeItem()` to clear localStorage - * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) - * package: add "contributors" section - * node: fix comment typo - * README: list authors - -1.0.0 / 2014-06-04 -================== - - * make ms diff be global, not be scope - * debug: ignore empty strings in enable() - * node: make DEBUG_COLORS able to disable coloring - * *: export the `colors` array - * npmignore: don't publish the `dist` dir - * Makefile: refactor to use browserify - * package: add "browserify" as a dev dependency - * Readme: add Web Inspector Colors section - * node: reset terminal color for the debug content - * node: map "%o" to `util.inspect()` - * browser: map "%j" to `JSON.stringify()` - * debug: add custom "formatters" - * debug: use "ms" module for humanizing the diff - * Readme: add "bash" syntax highlighting - * browser: add Firebug color support - * browser: add colors for WebKit browsers - * node: apply log to `console` - * rewrite: abstract common logic for Node & browsers - * add .jshintrc file - -0.8.1 / 2014-04-14 -================== - - * package: re-add the "component" section - -0.8.0 / 2014-03-30 -================== - - * add `enable()` method for nodejs. Closes #27 - * change from stderr to stdout - * remove unnecessary index.js file - -0.7.4 / 2013-11-13 -================== - - * remove "browserify" key from package.json (fixes something in browserify) - -0.7.3 / 2013-10-30 -================== - - * fix: catch localStorage security error when cookies are blocked (Chrome) - * add debug(err) support. Closes #46 - * add .browser prop to package.json. Closes #42 - -0.7.2 / 2013-02-06 -================== - - * fix package.json - * fix: Mobile Safari (private mode) is broken with debug - * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript - -0.7.1 / 2013-02-05 -================== - - * add repository URL to package.json - * add DEBUG_COLORED to force colored output - * add browserify support - * fix component. Closes #24 - -0.7.0 / 2012-05-04 -================== - - * Added .component to package.json - * Added debug.component.js build - -0.6.0 / 2012-03-16 -================== - - * Added support for "-" prefix in DEBUG [Vinay Pulim] - * Added `.enabled` flag to the node version [TooTallNate] - -0.5.0 / 2012-02-02 -================== - - * Added: humanize diffs. Closes #8 - * Added `debug.disable()` to the CS variant - * Removed padding. Closes #10 - * Fixed: persist client-side variant again. Closes #9 - -0.4.0 / 2012-02-01 -================== - - * Added browser variant support for older browsers [TooTallNate] - * Added `debug.enable('project:*')` to browser variant [TooTallNate] - * Added padding to diff (moved it to the right) - -0.3.0 / 2012-01-26 -================== - - * Added millisecond diff when isatty, otherwise UTC string - -0.2.0 / 2012-01-22 -================== - - * Added wildcard support - -0.1.0 / 2011-12-02 -================== - - * Added: remove colors unless stderr isatty [TooTallNate] - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/Makefile deleted file mode 100644 index 5cf4a596..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/Makefile +++ /dev/null @@ -1,36 +0,0 @@ - -# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 -THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) -THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) - -# BIN directory -BIN := $(THIS_DIR)/node_modules/.bin - -# applications -NODE ?= $(shell which node) -NPM ?= $(NODE) $(shell which npm) -BROWSERIFY ?= $(NODE) $(BIN)/browserify - -all: dist/debug.js - -install: node_modules - -clean: - @rm -rf dist - -dist: - @mkdir -p $@ - -dist/debug.js: node_modules browser.js debug.js dist - @$(BROWSERIFY) \ - --standalone debug \ - . > $@ - -distclean: clean - @rm -rf node_modules - -node_modules: package.json - @NODE_ENV= $(NPM) install - @touch node_modules - -.PHONY: all install clean distclean diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/Readme.md deleted file mode 100644 index b4f45e3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/Readme.md +++ /dev/null @@ -1,188 +0,0 @@ -# debug - - tiny node.js debugging utility modelled after node core's debugging technique. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - - With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility. - -Example _app.js_: - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %s', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example _worker.js_: - -```js -var debug = require('debug')('worker'); - -setInterval(function(){ - debug('doing some work'); -}, 1000); -``` - - The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: - - ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) - - ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) - -#### Windows note - - On Windows the environment variable is set using the `set` command. - - ```cmd - set DEBUG=*,-not_this - ``` - -Then, run the program to be debugged as usual. - -## Millisecond diff - - When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) - - When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: - - ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) - -## Conventions - - If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". - -## Wildcards - - The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - - You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:". - -## Browser support - - Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include: - -```js -window.myDebug = require("debug"); -``` - - ("debug" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console: - -```js -myDebug.enable("worker:*") -``` - - Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - -#### Web Inspector Colors - - Colors are also enabled on "Web Inspectors" that understand the `%c` formatting - option. These are WebKit web inspectors, Firefox ([since version - 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) - and the Firebug plugin for Firefox (any version). - - Colored output looks something like: - - ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png) - -### stderr vs stdout - -You can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally: - -Example _stdout.js_: - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -### Save debug output to a file - -You can save all debug statements to a file by piping them. - -Example: - -```bash -$ DEBUG_FD=3 node your-app.js 3> whatever.log -``` - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - -## License - -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/bower.json deleted file mode 100644 index 6af573ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "visionmedia-debug", - "main": "dist/debug.js", - "version": "2.2.0", - "homepage": "https://github.com/visionmedia/debug", - "authors": [ - "TJ Holowaychuk " - ], - "description": "visionmedia-debug", - "moduleType": [ - "amd", - "es6", - "globals", - "node" - ], - "keywords": [ - "visionmedia", - "debug" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/browser.js deleted file mode 100644 index 7c764522..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/browser.js +++ /dev/null @@ -1,168 +0,0 @@ - -/** - * This is the web browser implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - -/** - * Colors. - */ - -exports.colors = [ - 'lightseagreen', - 'forestgreen', - 'goldenrod', - 'dodgerblue', - 'darkorchid', - 'crimson' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -function useColors() { - // is webkit? http://stackoverflow.com/a/16459606/376773 - return ('WebkitAppearance' in document.documentElement.style) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (window.console && (console.firebug || (console.exception && console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31); -} - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - return JSON.stringify(v); -}; - - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); - - if (!useColors) return args; - - var c = 'color: ' + this.color; - args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1)); - - // the final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - var index = 0; - var lastC = 0; - args[0].replace(/%[a-z%]/g, function(match) { - if ('%%' === match) return; - index++; - if ('%c' === match) { - // we only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); - return args; -} - -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ - -function log() { - // this hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - try { - if (null == namespaces) { - exports.storage.removeItem('debug'); - } else { - exports.storage.debug = namespaces; - } - } catch(e) {} -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - var r; - try { - r = exports.storage.debug; - } catch(e) {} - return r; -} - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage(){ - try { - return window.localStorage; - } catch (e) {} -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/component.json deleted file mode 100644 index ca106372..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "debug", - "repo": "visionmedia/debug", - "description": "small debugging utility", - "version": "2.2.0", - "keywords": [ - "debug", - "log", - "debugger" - ], - "main": "browser.js", - "scripts": [ - "browser.js", - "debug.js" - ], - "dependencies": { - "rauchg/ms.js": "0.7.1" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/debug.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/debug.js deleted file mode 100644 index 7571a860..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/debug.js +++ /dev/null @@ -1,197 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = debug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = require('ms'); - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lowercased letter, i.e. "n". - */ - -exports.formatters = {}; - -/** - * Previously assigned color. - */ - -var prevColor = 0; - -/** - * Previous log timestamp. - */ - -var prevTime; - -/** - * Select a color. - * - * @return {Number} - * @api private - */ - -function selectColor() { - return exports.colors[prevColor++ % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function debug(namespace) { - - // define the `disabled` version - function disabled() { - } - disabled.enabled = false; - - // define the `enabled` version - function enabled() { - - var self = enabled; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // add the `color` if not set - if (null == self.useColors) self.useColors = exports.useColors(); - if (null == self.color && self.useColors) self.color = selectColor(); - - var args = Array.prototype.slice.call(arguments); - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %o - args = ['%o'].concat(args); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - if ('function' === typeof exports.formatArgs) { - args = exports.formatArgs.apply(self, args); - } - var logFn = enabled.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - enabled.enabled = true; - - var fn = exports.enabled(namespace) ? enabled : disabled; - - fn.namespace = namespace; - - return fn; -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - var split = (namespaces || '').split(/[\s,]+/); - var len = split.length; - - for (var i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node.js deleted file mode 100644 index 1d392a81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node.js +++ /dev/null @@ -1,209 +0,0 @@ - -/** - * Module dependencies. - */ - -var tty = require('tty'); -var util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -/** - * The file descriptor to write the `debug()` calls to. - * Set the `DEBUG_FD` env variable to override with another value. i.e.: - * - * $ DEBUG_FD=3 node script.js 3>debug.log - */ - -var fd = parseInt(process.env.DEBUG_FD, 10) || 2; -var stream = 1 === fd ? process.stdout : - 2 === fd ? process.stderr : - createWritableStdioStream(fd); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - var debugColors = (process.env.DEBUG_COLORS || '').trim().toLowerCase(); - if (0 === debugColors.length) { - return tty.isatty(fd); - } else { - return '0' !== debugColors - && 'no' !== debugColors - && 'false' !== debugColors - && 'disabled' !== debugColors; - } -} - -/** - * Map %o to `util.inspect()`, since Node doesn't do that out of the box. - */ - -var inspect = (4 === util.inspect.length ? - // node <= 0.8.x - function (v, colors) { - return util.inspect(v, void 0, void 0, colors); - } : - // node > 0.8.x - function (v, colors) { - return util.inspect(v, { colors: colors }); - } -); - -exports.formatters.o = function(v) { - return inspect(v, this.useColors) - .replace(/\s*\n\s*/g, ' '); -}; - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - var name = this.namespace; - - if (useColors) { - var c = this.color; - - args[0] = ' \u001b[3' + c + ';1m' + name + ' ' - + '\u001b[0m' - + args[0] + '\u001b[3' + c + 'm' - + ' +' + exports.humanize(this.diff) + '\u001b[0m'; - } else { - args[0] = new Date().toUTCString() - + ' ' + name + ' ' + args[0]; - } - return args; -} - -/** - * Invokes `console.error()` with the specified arguments. - */ - -function log() { - return stream.write(util.format.apply(this, arguments) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - if (null == namespaces) { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } else { - process.env.DEBUG = namespaces; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Copied from `node/src/node.js`. - * - * XXX: It's lame that node doesn't expose this API out-of-the-box. It also - * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. - */ - -function createWritableStdioStream (fd) { - var stream; - var tty_wrap = process.binding('tty_wrap'); - - // Note stream._type is used for test-module-load-list.js - - switch (tty_wrap.guessHandleType(fd)) { - case 'TTY': - stream = new tty.WriteStream(fd); - stream._type = 'tty'; - - // Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - case 'FILE': - var fs = require('fs'); - stream = new fs.SyncWriteStream(fd, { autoClose: false }); - stream._type = 'fs'; - break; - - case 'PIPE': - case 'TCP': - var net = require('net'); - stream = new net.Socket({ - fd: fd, - readable: false, - writable: true - }); - - // FIXME Should probably have an option in net.Socket to create a - // stream from an existing fd which is writable only. But for now - // we'll just add this hack and set the `readable` member to false. - // Test: ./node test/fixtures/echo.js < /etc/passwd - stream.readable = false; - stream.read = null; - stream._type = 'pipe'; - - // FIXME Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - default: - // Probably an error on in uv_guess_handle() - throw new Error('Implement me. Unknown stream file type!'); - } - - // For supporting legacy API we put the FD here. - stream.fd = fd; - - stream._isStdio = true; - - return stream; -} - -/** - * Enable namespaces listed in `process.env.DEBUG` initially. - */ - -exports.enable(load()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/.npmignore deleted file mode 100644 index d1aa0ce4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules -test -History.md -Makefile -component.json diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/History.md deleted file mode 100644 index 32fdfc17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/History.md +++ /dev/null @@ -1,66 +0,0 @@ - -0.7.1 / 2015-04-20 -================== - - * prevent extraordinary long inputs (@evilpacket) - * Fixed broken readme link - -0.7.0 / 2014-11-24 -================== - - * add time abbreviations, updated tests and readme for the new units - * fix example in the readme. - * add LICENSE file - -0.6.2 / 2013-12-05 -================== - - * Adding repository section to package.json to suppress warning from NPM. - -0.6.1 / 2013-05-10 -================== - - * fix singularization [visionmedia] - -0.6.0 / 2013-03-15 -================== - - * fix minutes - -0.5.1 / 2013-02-24 -================== - - * add component namespace - -0.5.0 / 2012-11-09 -================== - - * add short formatting as default and .long option - * add .license property to component.json - * add version to component.json - -0.4.0 / 2012-10-22 -================== - - * add rounding to fix crazy decimals - -0.3.0 / 2012-09-07 -================== - - * fix `ms()` [visionmedia] - -0.2.0 / 2012-09-03 -================== - - * add component.json [visionmedia] - * add days support [visionmedia] - * add hours support [visionmedia] - * add minutes support [visionmedia] - * add seconds support [visionmedia] - * add ms string support [visionmedia] - * refactor tests to facilitate ms(number) [visionmedia] - -0.1.0 / 2012-03-07 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/LICENSE deleted file mode 100644 index 6c07561b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Guillermo Rauch - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/README.md deleted file mode 100644 index 9b4fd035..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# ms.js: miliseconds conversion utility - -```js -ms('2 days') // 172800000 -ms('1d') // 86400000 -ms('10h') // 36000000 -ms('2.5 hrs') // 9000000 -ms('2h') // 7200000 -ms('1m') // 60000 -ms('5s') // 5000 -ms('100') // 100 -``` - -```js -ms(60000) // "1m" -ms(2 * 60000) // "2m" -ms(ms('10 hours')) // "10h" -``` - -```js -ms(60000, { long: true }) // "1 minute" -ms(2 * 60000, { long: true }) // "2 minutes" -ms(ms('10 hours'), { long: true }) // "10 hours" -``` - -- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download). -- If a number is supplied to `ms`, a string with a unit is returned. -- If a string that contains the number is supplied, it returns it as -a number (e.g: it returns `100` for `'100'`). -- If you pass a string with a number and a valid unit, the number of -equivalent ms is returned. - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/index.js deleted file mode 100644 index 4f927716..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/index.js +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} options - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options){ - options = options || {}; - if ('string' == typeof val) return parse(val); - return options.long - ? long(val) - : short(val); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = '' + str; - if (str.length > 10000) return; - var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str); - if (!match) return; - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function short(ms) { - if (ms >= d) return Math.round(ms / d) + 'd'; - if (ms >= h) return Math.round(ms / h) + 'h'; - if (ms >= m) return Math.round(ms / m) + 'm'; - if (ms >= s) return Math.round(ms / s) + 's'; - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function long(ms) { - return plural(ms, d, 'day') - || plural(ms, h, 'hour') - || plural(ms, m, 'minute') - || plural(ms, s, 'second') - || ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, n, name) { - if (ms < n) return; - if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name; - return Math.ceil(ms / n) + ' ' + name + 's'; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/package.json deleted file mode 100644 index e36489ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/node_modules/ms/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "ms", - "version": "0.7.1", - "description": "Tiny ms conversion utility", - "repository": { - "type": "git", - "url": "git://github.com/guille/ms.js.git" - }, - "main": "./index", - "devDependencies": { - "mocha": "*", - "expect.js": "*", - "serve": "*" - }, - "component": { - "scripts": { - "ms/index.js": "index.js" - } - }, - "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909", - "bugs": { - "url": "https://github.com/guille/ms.js/issues" - }, - "homepage": "https://github.com/guille/ms.js", - "_id": "ms@0.7.1", - "scripts": {}, - "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "_from": "ms@0.7.1", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/package.json deleted file mode 100644 index f2148c9e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/debug/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "debug", - "version": "2.2.0", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" - ], - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "contributors": [ - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io" - } - ], - "license": "MIT", - "dependencies": { - "ms": "0.7.1" - }, - "devDependencies": { - "browserify": "9.0.3", - "mocha": "*" - }, - "main": "./node.js", - "browser": "./browser.js", - "component": { - "scripts": { - "debug/index.js": "browser.js", - "debug/debug.js": "debug.js" - } - }, - "gitHead": "b38458422b5aa8aa6d286b10dfe427e8a67e2b35", - "bugs": { - "url": "https://github.com/visionmedia/debug/issues" - }, - "homepage": "https://github.com/visionmedia/debug", - "_id": "debug@2.2.0", - "scripts": {}, - "_shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "_from": "debug@>=2.2.0 <2.3.0", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "dist": { - "shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "tarball": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/History.md deleted file mode 100644 index ace11715..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/History.md +++ /dev/null @@ -1,84 +0,0 @@ -1.1.0 / 2015-09-14 -================== - - * Enable strict mode in more places - * Support io.js 3.x - * Support io.js 2.x - * Support web browser loading - - Requires bundler like Browserify or webpack - -1.0.1 / 2015-04-07 -================== - - * Fix `TypeError`s when under `'use strict'` code - * Fix useless type name on auto-generated messages - * Support io.js 1.x - * Support Node.js 0.12 - -1.0.0 / 2014-09-17 -================== - - * No changes - -0.4.5 / 2014-09-09 -================== - - * Improve call speed to functions using the function wrapper - * Support Node.js 0.6 - -0.4.4 / 2014-07-27 -================== - - * Work-around v8 generating empty stack traces - -0.4.3 / 2014-07-26 -================== - - * Fix exception when global `Error.stackTraceLimit` is too low - -0.4.2 / 2014-07-19 -================== - - * Correct call site for wrapped functions and properties - -0.4.1 / 2014-07-19 -================== - - * Improve automatic message generation for function properties - -0.4.0 / 2014-07-19 -================== - - * Add `TRACE_DEPRECATION` environment variable - * Remove non-standard grey color from color output - * Support `--no-deprecation` argument - * Support `--trace-deprecation` argument - * Support `deprecate.property(fn, prop, message)` - -0.3.0 / 2014-06-16 -================== - - * Add `NO_DEPRECATION` environment variable - -0.2.0 / 2014-06-15 -================== - - * Add `deprecate.property(obj, prop, message)` - * Remove `supports-color` dependency for node.js 0.8 - -0.1.0 / 2014-06-15 -================== - - * Add `deprecate.function(fn, message)` - * Add `process.on('deprecation', fn)` emitter - * Automatically generate message when omitted from `deprecate()` - -0.0.1 / 2014-06-15 -================== - - * Fix warning for dynamic calls at singe call site - -0.0.0 / 2014-06-15 -================== - - * Initial implementation diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/LICENSE deleted file mode 100644 index 142ede38..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/Readme.md deleted file mode 100644 index 09bb9799..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/Readme.md +++ /dev/null @@ -1,281 +0,0 @@ -# depd - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Linux Build][travis-image]][travis-url] -[![Windows Build][appveyor-image]][appveyor-url] -[![Coverage Status][coveralls-image]][coveralls-url] -[![Gratipay][gratipay-image]][gratipay-url] - -Deprecate all the things - -> With great modules comes great responsibility; mark things deprecated! - -## Install - -This module is installed directly using `npm`: - -```sh -$ npm install depd -``` - -This module can also be bundled with systems like -[Browserify](http://browserify.org/) or [webpack](https://webpack.github.io/), -though by default this module will alter it's API to no longer display or -track deprecations. - -## API - -```js -var deprecate = require('depd')('my-module') -``` - -This library allows you to display deprecation messages to your users. -This library goes above and beyond with deprecation warnings by -introspection of the call stack (but only the bits that it is interested -in). - -Instead of just warning on the first invocation of a deprecated -function and never again, this module will warn on the first invocation -of a deprecated function per unique call site, making it ideal to alert -users of all deprecated uses across the code base, rather than just -whatever happens to execute first. - -The deprecation warnings from this module also include the file and line -information for the call into the module that the deprecated function was -in. - -**NOTE** this library has a similar interface to the `debug` module, and -this module uses the calling file to get the boundary for the call stacks, -so you should always create a new `deprecate` object in each file and not -within some central file. - -### depd(namespace) - -Create a new deprecate function that uses the given namespace name in the -messages and will display the call site prior to the stack entering the -file this function was called from. It is highly suggested you use the -name of your module as the namespace. - -### deprecate(message) - -Call this function from deprecated code to display a deprecation message. -This message will appear once per unique caller site. Caller site is the -first call site in the stack in a different file from the caller of this -function. - -If the message is omitted, a message is generated for you based on the site -of the `deprecate()` call and will display the name of the function called, -similar to the name displayed in a stack trace. - -### deprecate.function(fn, message) - -Call this function to wrap a given function in a deprecation message on any -call to the function. An optional message can be supplied to provide a custom -message. - -### deprecate.property(obj, prop, message) - -Call this function to wrap a given property on object in a deprecation message -on any accessing or setting of the property. An optional message can be supplied -to provide a custom message. - -The method must be called on the object where the property belongs (not -inherited from the prototype). - -If the property is a data descriptor, it will be converted to an accessor -descriptor in order to display the deprecation message. - -### process.on('deprecation', fn) - -This module will allow easy capturing of deprecation errors by emitting the -errors as the type "deprecation" on the global `process`. If there are no -listeners for this type, the errors are written to STDERR as normal, but if -there are any listeners, nothing will be written to STDERR and instead only -emitted. From there, you can write the errors in a different format or to a -logging source. - -The error represents the deprecation and is emitted only once with the same -rules as writing to STDERR. The error has the following properties: - - - `message` - This is the message given by the library - - `name` - This is always `'DeprecationError'` - - `namespace` - This is the namespace the deprecation came from - - `stack` - This is the stack of the call to the deprecated thing - -Example `error.stack` output: - -``` -DeprecationError: my-cool-module deprecated oldfunction - at Object. ([eval]-wrapper:6:22) - at Module._compile (module.js:456:26) - at evalScript (node.js:532:25) - at startup (node.js:80:7) - at node.js:902:3 -``` - -### process.env.NO_DEPRECATION - -As a user of modules that are deprecated, the environment variable `NO_DEPRECATION` -is provided as a quick solution to silencing deprecation warnings from being -output. The format of this is similar to that of `DEBUG`: - -```sh -$ NO_DEPRECATION=my-module,othermod node app.js -``` - -This will suppress deprecations from being output for "my-module" and "othermod". -The value is a list of comma-separated namespaces. To suppress every warning -across all namespaces, use the value `*` for a namespace. - -Providing the argument `--no-deprecation` to the `node` executable will suppress -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not suppress the deperecations given to any "deprecation" -event listeners, just the output to STDERR. - -### process.env.TRACE_DEPRECATION - -As a user of modules that are deprecated, the environment variable `TRACE_DEPRECATION` -is provided as a solution to getting more detailed location information in deprecation -warnings by including the entire stack trace. The format of this is the same as -`NO_DEPRECATION`: - -```sh -$ TRACE_DEPRECATION=my-module,othermod node app.js -``` - -This will include stack traces for deprecations being output for "my-module" and -"othermod". The value is a list of comma-separated namespaces. To trace every -warning across all namespaces, use the value `*` for a namespace. - -Providing the argument `--trace-deprecation` to the `node` executable will trace -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not trace the deperecations silenced by `NO_DEPRECATION`. - -## Display - -![message](files/message.png) - -When a user calls a function in your library that you mark deprecated, they -will see the following written to STDERR (in the given colors, similar colors -and layout to the `debug` module): - -``` -bright cyan bright yellow -| | reset cyan -| | | | -▼ ▼ ▼ ▼ -my-cool-module deprecated oldfunction [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ -| | | | -namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -If the user redirects their STDERR to a file or somewhere that does not support -colors, they see (similar layout to the `debug` module): - -``` -Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ ▲ -| | | | | -timestamp of message namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -## Examples - -### Deprecating all calls to a function - -This will display a deprecated message about "oldfunction" being deprecated -from "my-module" on STDERR. - -```js -var deprecate = require('depd')('my-cool-module') - -// message automatically derived from function name -// Object.oldfunction -exports.oldfunction = deprecate.function(function oldfunction() { - // all calls to function are deprecated -}) - -// specific message -exports.oldfunction = deprecate.function(function () { - // all calls to function are deprecated -}, 'oldfunction') -``` - -### Conditionally deprecating a function call - -This will display a deprecated message about "weirdfunction" being deprecated -from "my-module" on STDERR when called with less than 2 arguments. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } -} -``` - -When calling `deprecate` as a function, the warning is counted per call site -within your own module, so you can display different deprecations depending -on different situations and the users will still get all the warnings: - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } else if (typeof arguments[0] !== 'string') { - // calls with non-string first argument are deprecated - deprecate('weirdfunction non-string first arg') - } -} -``` - -### Deprecating property access - -This will display a deprecated message about "oldprop" being deprecated -from "my-module" on STDERR when accessed. A deprecation will be displayed -when setting the value and when getting the value. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.oldprop = 'something' - -// message automatically derives from property name -deprecate.property(exports, 'oldprop') - -// explicit message -deprecate.property(exports, 'oldprop', 'oldprop >= 0.10') -``` - -## License - -[MIT](LICENSE) - -[npm-version-image]: https://img.shields.io/npm/v/depd.svg -[npm-downloads-image]: https://img.shields.io/npm/dm/depd.svg -[npm-url]: https://npmjs.org/package/depd -[travis-image]: https://img.shields.io/travis/dougwilson/nodejs-depd/master.svg?label=linux -[travis-url]: https://travis-ci.org/dougwilson/nodejs-depd -[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/nodejs-depd/master.svg?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/nodejs-depd -[coveralls-image]: https://img.shields.io/coveralls/dougwilson/nodejs-depd/master.svg -[coveralls-url]: https://coveralls.io/r/dougwilson/nodejs-depd?branch=master -[node-image]: https://img.shields.io/node/v/depd.svg -[node-url]: http://nodejs.org/download/ -[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg -[gratipay-url]: https://www.gratipay.com/dougwilson/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/index.js deleted file mode 100644 index fddcae87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/index.js +++ /dev/null @@ -1,521 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var callSiteToString = require('./lib/compat').callSiteToString -var eventListenerCount = require('./lib/compat').eventListenerCount -var relative = require('path').relative - -/** - * Module exports. - */ - -module.exports = depd - -/** - * Get the path to base files on. - */ - -var basePath = process.cwd() - -/** - * Determine if namespace is contained in the string. - */ - -function containsNamespace(str, namespace) { - var val = str.split(/[ ,]+/) - - namespace = String(namespace).toLowerCase() - - for (var i = 0 ; i < val.length; i++) { - if (!(str = val[i])) continue; - - // namespace contained - if (str === '*' || str.toLowerCase() === namespace) { - return true - } - } - - return false -} - -/** - * Convert a data descriptor to accessor descriptor. - */ - -function convertDataDescriptorToAccessor(obj, prop, message) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - var value = descriptor.value - - descriptor.get = function getter() { return value } - - if (descriptor.writable) { - descriptor.set = function setter(val) { return value = val } - } - - delete descriptor.value - delete descriptor.writable - - Object.defineProperty(obj, prop, descriptor) - - return descriptor -} - -/** - * Create arguments string to keep arity. - */ - -function createArgumentsString(arity) { - var str = '' - - for (var i = 0; i < arity; i++) { - str += ', arg' + i - } - - return str.substr(2) -} - -/** - * Create stack string from stack. - */ - -function createStackString(stack) { - var str = this.name + ': ' + this.namespace - - if (this.message) { - str += ' deprecated ' + this.message - } - - for (var i = 0; i < stack.length; i++) { - str += '\n at ' + callSiteToString(stack[i]) - } - - return str -} - -/** - * Create deprecate for namespace in caller. - */ - -function depd(namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - var stack = getStack() - var site = callSiteLocation(stack[1]) - var file = site[0] - - function deprecate(message) { - // call to self as log - log.call(deprecate, message) - } - - deprecate._file = file - deprecate._ignored = isignored(namespace) - deprecate._namespace = namespace - deprecate._traced = istraced(namespace) - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Determine if namespace is ignored. - */ - -function isignored(namespace) { - /* istanbul ignore next: tested in a child processs */ - if (process.noDeprecation) { - // --no-deprecation support - return true - } - - var str = process.env.NO_DEPRECATION || '' - - // namespace ignored - return containsNamespace(str, namespace) -} - -/** - * Determine if namespace is traced. - */ - -function istraced(namespace) { - /* istanbul ignore next: tested in a child processs */ - if (process.traceDeprecation) { - // --trace-deprecation support - return true - } - - var str = process.env.TRACE_DEPRECATION || '' - - // namespace traced - return containsNamespace(str, namespace) -} - -/** - * Display deprecation message. - */ - -function log(message, site) { - var haslisteners = eventListenerCount(process, 'deprecation') !== 0 - - // abort early if no destination - if (!haslisteners && this._ignored) { - return - } - - var caller - var callFile - var callSite - var i = 0 - var seen = false - var stack = getStack() - var file = this._file - - if (site) { - // provided site - callSite = callSiteLocation(stack[1]) - callSite.name = site.name - file = callSite[0] - } else { - // get call site - i = 2 - site = callSiteLocation(stack[i]) - callSite = site - } - - // get caller of deprecated thing in relation to file - for (; i < stack.length; i++) { - caller = callSiteLocation(stack[i]) - callFile = caller[0] - - if (callFile === file) { - seen = true - } else if (callFile === this._file) { - file = this._file - } else if (seen) { - break - } - } - - var key = caller - ? site.join(':') + '__' + caller.join(':') - : undefined - - if (key !== undefined && key in this._warned) { - // already warned - return - } - - this._warned[key] = true - - // generate automatic message from call site - if (!message) { - message = callSite === site || !callSite.name - ? defaultMessage(site) - : defaultMessage(callSite) - } - - // emit deprecation if listeners exist - if (haslisteners) { - var err = DeprecationError(this._namespace, message, stack.slice(i)) - process.emit('deprecation', err) - return - } - - // format and write message - var format = process.stderr.isTTY - ? formatColor - : formatPlain - var msg = format.call(this, message, caller, stack.slice(i)) - process.stderr.write(msg + '\n', 'utf8') - - return -} - -/** - * Get call site location as array. - */ - -function callSiteLocation(callSite) { - var file = callSite.getFileName() || '' - var line = callSite.getLineNumber() - var colm = callSite.getColumnNumber() - - if (callSite.isEval()) { - file = callSite.getEvalOrigin() + ', ' + file - } - - var site = [file, line, colm] - - site.callSite = callSite - site.name = callSite.getFunctionName() - - return site -} - -/** - * Generate a default message from the site. - */ - -function defaultMessage(site) { - var callSite = site.callSite - var funcName = site.name - - // make useful anonymous name - if (!funcName) { - funcName = '' - } - - var context = callSite.getThis() - var typeName = context && callSite.getTypeName() - - // ignore useless type name - if (typeName === 'Object') { - typeName = undefined - } - - // make useful type name - if (typeName === 'Function') { - typeName = context.name || typeName - } - - return typeName && callSite.getMethodName() - ? typeName + '.' + funcName - : funcName -} - -/** - * Format deprecation message without color. - */ - -function formatPlain(msg, caller, stack) { - var timestamp = new Date().toUTCString() - - var formatted = timestamp - + ' ' + this._namespace - + ' deprecated ' + msg - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n at ' + callSiteToString(stack[i]) - } - - return formatted - } - - if (caller) { - formatted += ' at ' + formatLocation(caller) - } - - return formatted -} - -/** - * Format deprecation message with color. - */ - -function formatColor(msg, caller, stack) { - var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' // bold cyan - + ' \x1b[33;1mdeprecated\x1b[22;39m' // bold yellow - + ' \x1b[0m' + msg + '\x1b[39m' // reset - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n \x1b[36mat ' + callSiteToString(stack[i]) + '\x1b[39m' // cyan - } - - return formatted - } - - if (caller) { - formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan - } - - return formatted -} - -/** - * Format call site location. - */ - -function formatLocation(callSite) { - return relative(basePath, callSite[0]) - + ':' + callSite[1] - + ':' + callSite[2] -} - -/** - * Get the stack as array of call sites. - */ - -function getStack() { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = Math.max(10, limit) - - // capture the stack - Error.captureStackTrace(obj) - - // slice this function off the top - var stack = obj.stack.slice(1) - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack -} - -/** - * Capture call site stack from v8. - */ - -function prepareObjectStackTrace(obj, stack) { - return stack -} - -/** - * Return a wrapped function in a deprecation message. - */ - -function wrapfunction(fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - var args = createArgumentsString(fn.length) - var deprecate = this - var stack = getStack() - var site = callSiteLocation(stack[1]) - - site.name = fn.name - - var deprecatedfn = eval('(function (' + args + ') {\n' - + '"use strict"\n' - + 'log.call(deprecate, message, site)\n' - + 'return fn.apply(this, arguments)\n' - + '})') - - return deprecatedfn -} - -/** - * Wrap property in a deprecation message. - */ - -function wrapproperty(obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } - - var deprecate = this - var stack = getStack() - var site = callSiteLocation(stack[1]) - - // set site name - site.name = prop - - // convert data descriptor - if ('value' in descriptor) { - descriptor = convertDataDescriptorToAccessor(obj, prop, message) - } - - var get = descriptor.get - var set = descriptor.set - - // wrap getter - if (typeof get === 'function') { - descriptor.get = function getter() { - log.call(deprecate, message, site) - return get.apply(this, arguments) - } - } - - // wrap setter - if (typeof set === 'function') { - descriptor.set = function setter() { - log.call(deprecate, message, site) - return set.apply(this, arguments) - } - } - - Object.defineProperty(obj, prop, descriptor) -} - -/** - * Create DeprecationError for deprecation - */ - -function DeprecationError(namespace, message, stack) { - var error = new Error() - var stackString - - Object.defineProperty(error, 'constructor', { - value: DeprecationError - }) - - Object.defineProperty(error, 'message', { - configurable: true, - enumerable: false, - value: message, - writable: true - }) - - Object.defineProperty(error, 'name', { - enumerable: false, - configurable: true, - value: 'DeprecationError', - writable: true - }) - - Object.defineProperty(error, 'namespace', { - configurable: true, - enumerable: false, - value: namespace, - writable: true - }) - - Object.defineProperty(error, 'stack', { - configurable: true, - enumerable: false, - get: function () { - if (stackString !== undefined) { - return stackString - } - - // prepare stack trace - return stackString = createStackString.call(this, stack) - }, - set: function setter(val) { - stackString = val - } - }) - - return error -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/browser/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/browser/index.js deleted file mode 100644 index f464e052..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/browser/index.js +++ /dev/null @@ -1,79 +0,0 @@ -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = depd - -/** - * Create deprecate for namespace in caller. - */ - -function depd(namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - function deprecate(message) { - // no-op in browser - } - - deprecate._file = undefined - deprecate._ignored = true - deprecate._namespace = namespace - deprecate._traced = false - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Return a wrapped function in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapfunction(fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - return fn -} - -/** - * Wrap property in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapproperty(obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } - - return -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/buffer-concat.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/buffer-concat.js deleted file mode 100644 index 4b733810..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/buffer-concat.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! - * depd - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = bufferConcat - -/** - * Concatenate an array of Buffers. - */ - -function bufferConcat(bufs) { - var length = 0 - - for (var i = 0, len = bufs.length; i < len; i++) { - length += bufs[i].length - } - - var buf = new Buffer(length) - var pos = 0 - - for (var i = 0, len = bufs.length; i < len; i++) { - bufs[i].copy(buf, pos) - pos += bufs[i].length - } - - return buf -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/callsite-tostring.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/callsite-tostring.js deleted file mode 100644 index 9ecef346..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/callsite-tostring.js +++ /dev/null @@ -1,103 +0,0 @@ -/*! - * depd - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = callSiteToString - -/** - * Format a CallSite file location to a string. - */ - -function callSiteFileLocation(callSite) { - var fileName - var fileLocation = '' - - if (callSite.isNative()) { - fileLocation = 'native' - } else if (callSite.isEval()) { - fileName = callSite.getScriptNameOrSourceURL() - if (!fileName) { - fileLocation = callSite.getEvalOrigin() - } - } else { - fileName = callSite.getFileName() - } - - if (fileName) { - fileLocation += fileName - - var lineNumber = callSite.getLineNumber() - if (lineNumber != null) { - fileLocation += ':' + lineNumber - - var columnNumber = callSite.getColumnNumber() - if (columnNumber) { - fileLocation += ':' + columnNumber - } - } - } - - return fileLocation || 'unknown source' -} - -/** - * Format a CallSite to a string. - */ - -function callSiteToString(callSite) { - var addSuffix = true - var fileLocation = callSiteFileLocation(callSite) - var functionName = callSite.getFunctionName() - var isConstructor = callSite.isConstructor() - var isMethodCall = !(callSite.isToplevel() || isConstructor) - var line = '' - - if (isMethodCall) { - var methodName = callSite.getMethodName() - var typeName = getConstructorName(callSite) - - if (functionName) { - if (typeName && functionName.indexOf(typeName) !== 0) { - line += typeName + '.' - } - - line += functionName - - if (methodName && functionName.lastIndexOf('.' + methodName) !== functionName.length - methodName.length - 1) { - line += ' [as ' + methodName + ']' - } - } else { - line += typeName + '.' + (methodName || '') - } - } else if (isConstructor) { - line += 'new ' + (functionName || '') - } else if (functionName) { - line += functionName - } else { - addSuffix = false - line += fileLocation - } - - if (addSuffix) { - line += ' (' + fileLocation + ')' - } - - return line -} - -/** - * Get constructor name of reviver. - */ - -function getConstructorName(obj) { - var receiver = obj.receiver - return (receiver.constructor && receiver.constructor.name) || null -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/event-listener-count.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/event-listener-count.js deleted file mode 100644 index a05fceb7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/event-listener-count.js +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = eventListenerCount - -/** - * Get the count of listeners on an event emitter of a specific type. - */ - -function eventListenerCount(emitter, type) { - return emitter.listeners(type).length -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/index.js deleted file mode 100644 index aa3c1de4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/lib/compat/index.js +++ /dev/null @@ -1,84 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var Buffer = require('buffer') -var EventEmitter = require('events').EventEmitter - -/** - * Module exports. - * @public - */ - -lazyProperty(module.exports, 'bufferConcat', function bufferConcat() { - return Buffer.concat || require('./buffer-concat') -}) - -lazyProperty(module.exports, 'callSiteToString', function callSiteToString() { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - function prepareObjectStackTrace(obj, stack) { - return stack - } - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = 2 - - // capture the stack - Error.captureStackTrace(obj) - - // slice the stack - var stack = obj.stack.slice() - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack[0].toString ? toString : require('./callsite-tostring') -}) - -lazyProperty(module.exports, 'eventListenerCount', function eventListenerCount() { - return EventEmitter.listenerCount || require('./event-listener-count') -}) - -/** - * Define a lazy property. - */ - -function lazyProperty(obj, prop, getter) { - function get() { - var val = getter() - - Object.defineProperty(obj, prop, { - configurable: true, - enumerable: true, - value: val - }) - - return val - } - - Object.defineProperty(obj, prop, { - configurable: true, - enumerable: true, - get: get - }) -} - -/** - * Call toString() on the obj - */ - -function toString(obj) { - return obj.toString() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/package.json deleted file mode 100644 index edfc0b2a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/depd/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "depd", - "description": "Deprecate all the things", - "version": "1.1.0", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "keywords": [ - "deprecate", - "deprecated" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/dougwilson/nodejs-depd.git" - }, - "browser": "lib/browser/index.js", - "devDependencies": { - "benchmark": "1.0.0", - "beautify-benchmark": "0.2.4", - "istanbul": "0.3.5", - "mocha": "~1.21.5" - }, - "files": [ - "lib/", - "History.md", - "LICENSE", - "index.js", - "Readme.md" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "test": "mocha --reporter spec --bail test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --no-exit test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/" - }, - "gitHead": "78c659de20283e3a6bee92bda455e6daff01686a", - "bugs": { - "url": "https://github.com/dougwilson/nodejs-depd/issues" - }, - "homepage": "https://github.com/dougwilson/nodejs-depd", - "_id": "depd@1.1.0", - "_shasum": "e1bd82c6aab6ced965b97b88b17ed3e528ca18c3", - "_from": "depd@>=1.1.0 <1.2.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "e1bd82c6aab6ced965b97b88b17ed3e528ca18c3", - "tarball": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/HISTORY.md deleted file mode 100644 index 0dfb7acd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/HISTORY.md +++ /dev/null @@ -1,95 +0,0 @@ -2016-05-18 / 1.5.0 -================== - - * Support new code `421 Misdirected Request` - * Use `setprototypeof` module to replace `__proto__` setting - * deps: statuses@'>= 1.3.0 < 2' - - Add `421 Misdirected Request` - - perf: enable strict mode - * perf: enable strict mode - -2016-01-28 / 1.4.0 -================== - - * Add `HttpError` export, for `err instanceof createError.HttpError` - * deps: inherits@2.0.1 - * deps: statuses@'>= 1.2.1 < 2' - - Fix message for status 451 - - Remove incorrect nginx status code - -2015-02-02 / 1.3.1 -================== - - * Fix regression where status can be overwritten in `createError` `props` - -2015-02-01 / 1.3.0 -================== - - * Construct errors using defined constructors from `createError` - * Fix error names that are not identifiers - - `createError["I'mateapot"]` is now `createError.ImATeapot` - * Set a meaningful `name` property on constructed errors - -2014-12-09 / 1.2.8 -================== - - * Fix stack trace from exported function - * Remove `arguments.callee` usage - -2014-10-14 / 1.2.7 -================== - - * Remove duplicate line - -2014-10-02 / 1.2.6 -================== - - * Fix `expose` to be `true` for `ClientError` constructor - -2014-09-28 / 1.2.5 -================== - - * deps: statuses@1 - -2014-09-21 / 1.2.4 -================== - - * Fix dependency version to work with old `npm`s - -2014-09-21 / 1.2.3 -================== - - * deps: statuses@~1.1.0 - -2014-09-21 / 1.2.2 -================== - - * Fix publish error - -2014-09-21 / 1.2.1 -================== - - * Support Node.js 0.6 - * Use `inherits` instead of `util` - -2014-09-09 / 1.2.0 -================== - - * Fix the way inheriting functions - * Support `expose` being provided in properties argument - -2014-09-08 / 1.1.0 -================== - - * Default status to 500 - * Support provided `error` to extend - -2014-09-08 / 1.0.1 -================== - - * Fix accepting string message - -2014-09-08 / 1.0.0 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/LICENSE deleted file mode 100644 index 82af4df5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.com -Copyright (c) 2016 Douglas Christopher Wilson doug@somethingdoug.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/README.md deleted file mode 100644 index be80f9b9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/README.md +++ /dev/null @@ -1,112 +0,0 @@ -# http-errors - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create HTTP errors for Express, Koa, Connect, etc. with ease. - -## Example - -```js -var createError = require('http-errors'); - -app.use(function (req, res, next) { - if (!req.user) return next(createError(401, 'Please login to view this page.')); - next(); -}) -``` - -## API - -This is the current API, currently extracted from Koa and subject to change. - -All errors inherit from JavaScript `Error` and the exported `createError.HttpError`. - -### Error Properties - -- `expose` - can be used to signal if `message` should be sent to the client, defaulting to `false` when `status` >= 500 -- `message` -- `status` and `statusCode` - the status code of the error, defaulting to `500` - -### createError([status], [message], [properties]) - -```js -var err = createError(404, 'This video does not exist!'); -``` - -- `status: 500` - the status code as a number -- `message` - the message of the error, defaulting to node's text for that status code. -- `properties` - custom properties to attach to the object - -### new createError\[code || name\](\[msg]\)) - -```js -var err = new createError.NotFound(); -``` - -- `code` - the status code as a number -- `name` - the name of the error as a "bumpy case", i.e. `NotFound` or `InternalServerError`. - -#### List of all constructors - -|Status Code|Constructor Name | -|-----------|-----------------------------| -|400 |BadRequest | -|401 |Unauthorized | -|402 |PaymentRequired | -|403 |Forbidden | -|404 |NotFound | -|405 |MethodNotAllowed | -|406 |NotAcceptable | -|407 |ProxyAuthenticationRequired | -|408 |RequestTimeout | -|409 |Conflict | -|410 |Gone | -|411 |LengthRequired | -|412 |PreconditionFailed | -|413 |PayloadTooLarge | -|414 |URITooLong | -|415 |UnsupportedMediaType | -|416 |RangeNotSatisfiable | -|417 |ExpectationFailed | -|418 |ImATeapot | -|421 |MisdirectedRequest | -|422 |UnprocessableEntity | -|423 |Locked | -|424 |FailedDependency | -|425 |UnorderedCollection | -|426 |UpgradeRequired | -|428 |PreconditionRequired | -|429 |TooManyRequests | -|431 |RequestHeaderFieldsTooLarge | -|451 |UnavailableForLegalReasons | -|500 |InternalServerError | -|501 |NotImplemented | -|502 |BadGateway | -|503 |ServiceUnavailable | -|504 |GatewayTimeout | -|505 |HTTPVersionNotSupported | -|506 |VariantAlsoNegotiates | -|507 |InsufficientStorage | -|508 |LoopDetected | -|509 |BandwidthLimitExceeded | -|510 |NotExtended | -|511 |NetworkAuthenticationRequired| - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/http-errors.svg?style=flat -[npm-url]: https://npmjs.org/package/http-errors -[node-version-image]: https://img.shields.io/node/v/http-errors.svg?style=flat -[node-version-url]: https://nodejs.org/en/download/ -[travis-image]: https://img.shields.io/travis/jshttp/http-errors.svg?style=flat -[travis-url]: https://travis-ci.org/jshttp/http-errors -[coveralls-image]: https://img.shields.io/coveralls/jshttp/http-errors.svg?style=flat -[coveralls-url]: https://coveralls.io/r/jshttp/http-errors -[downloads-image]: https://img.shields.io/npm/dm/http-errors.svg?style=flat -[downloads-url]: https://npmjs.org/package/http-errors diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/index.js deleted file mode 100644 index 6130db8a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/index.js +++ /dev/null @@ -1,223 +0,0 @@ -/*! - * http-errors - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2016 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var setPrototypeOf = require('setprototypeof') -var statuses = require('statuses') -var inherits = require('inherits') - -/** - * Module exports. - * @public - */ - -module.exports = createError -module.exports.HttpError = createHttpErrorConstructor() - -// Populate exports for all constructors -populateConstructorExports(module.exports, statuses.codes, module.exports.HttpError) - -/** - * Create a new HTTP Error. - * - * @returns {Error} - * @public - */ - -function createError () { - // so much arity going on ~_~ - var err - var msg - var status = 500 - var props = {} - for (var i = 0; i < arguments.length; i++) { - var arg = arguments[i] - if (arg instanceof Error) { - err = arg - status = err.status || err.statusCode || status - continue - } - switch (typeof arg) { - case 'string': - msg = arg - break - case 'number': - status = arg - break - case 'object': - props = arg - break - } - } - - if (typeof status !== 'number' || !statuses[status]) { - status = 500 - } - - // constructor - var HttpError = createError[status] - - if (!err) { - // create error - err = HttpError - ? new HttpError(msg) - : new Error(msg || statuses[status]) - Error.captureStackTrace(err, createError) - } - - if (!HttpError || !(err instanceof HttpError)) { - // add properties to generic error - err.expose = status < 500 - err.status = err.statusCode = status - } - - for (var key in props) { - if (key !== 'status' && key !== 'statusCode') { - err[key] = props[key] - } - } - - return err -} - -/** - * Create HTTP error abstract base class. - * @private - */ - -function createHttpErrorConstructor () { - function HttpError () { - throw new TypeError('cannot construct abstract class') - } - - inherits(HttpError, Error) - - return HttpError -} - -/** - * Create a constructor for a client error. - * @private - */ - -function createClientErrorConstructor (HttpError, name, code) { - var className = name.match(/Error$/) ? name : name + 'Error' - - function ClientError (message) { - // create the error object - var err = new Error(message != null ? message : statuses[code]) - - // capture a stack trace to the construction point - Error.captureStackTrace(err, ClientError) - - // adjust the [[Prototype]] - setPrototypeOf(err, ClientError.prototype) - - // redefine the error name - Object.defineProperty(err, 'name', { - enumerable: false, - configurable: true, - value: className, - writable: true - }) - - return err - } - - inherits(ClientError, HttpError) - - ClientError.prototype.status = code - ClientError.prototype.statusCode = code - ClientError.prototype.expose = true - - return ClientError -} - -/** - * Create a constructor for a server error. - * @private - */ - -function createServerErrorConstructor (HttpError, name, code) { - var className = name.match(/Error$/) ? name : name + 'Error' - - function ServerError (message) { - // create the error object - var err = new Error(message != null ? message : statuses[code]) - - // capture a stack trace to the construction point - Error.captureStackTrace(err, ServerError) - - // adjust the [[Prototype]] - setPrototypeOf(err, ServerError.prototype) - - // redefine the error name - Object.defineProperty(err, 'name', { - enumerable: false, - configurable: true, - value: className, - writable: true - }) - - return err - } - - inherits(ServerError, HttpError) - - ServerError.prototype.status = code - ServerError.prototype.statusCode = code - ServerError.prototype.expose = false - - return ServerError -} - -/** - * Populate the exports object with constructors for every error class. - * @private - */ - -function populateConstructorExports (exports, codes, HttpError) { - codes.forEach(function forEachCode (code) { - var CodeError - var name = toIdentifier(statuses[code]) - - switch (String(code).charAt(0)) { - case '4': - CodeError = createClientErrorConstructor(HttpError, name, code) - break - case '5': - CodeError = createServerErrorConstructor(HttpError, name, code) - break - } - - if (CodeError) { - // export the constructor - exports[code] = CodeError - exports[name] = CodeError - } - }) - - // backwards-compatibility - exports["I'mateapot"] = exports.ImATeapot -} - -/** - * Convert a string of words to a JavaScript identifier. - * @private - */ - -function toIdentifier (str) { - return str.split(' ').map(function (token) { - return token.slice(0, 1).toUpperCase() + token.slice(1) - }).join('').replace(/[^ _0-9a-z]/gi, '') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/LICENSE deleted file mode 100644 index dea3013d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/README.md deleted file mode 100644 index b1c56658..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/README.md +++ /dev/null @@ -1,42 +0,0 @@ -Browser-friendly inheritance fully compatible with standard node.js -[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). - -This package exports standard `inherits` from node.js `util` module in -node environment, but also provides alternative browser-friendly -implementation through [browser -field](https://gist.github.com/shtylman/4339901). Alternative -implementation is a literal copy of standard one located in standalone -module to avoid requiring of `util`. It also has a shim for old -browsers with no `Object.create` support. - -While keeping you sure you are using standard `inherits` -implementation in node.js environment, it allows bundlers such as -[browserify](https://github.com/substack/node-browserify) to not -include full `util` package to your client code if all you need is -just `inherits` function. It worth, because browser shim for `util` -package is large and `inherits` is often the single function you need -from it. - -It's recommended to use this package instead of -`require('util').inherits` for any code that has chances to be used -not only in node.js but in browser too. - -## usage - -```js -var inherits = require('inherits'); -// then use exactly as the standard one -``` - -## note on version ~1.0 - -Version ~1.0 had completely different motivation and is not compatible -neither with 2.0 nor with standard node.js `inherits`. - -If you are using version ~1.0 and planning to switch to ~2.0, be -careful: - -* new version uses `super_` instead of `super` for referencing - superclass -* new version overwrites current prototype while old one preserves any - existing fields on it diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/inherits.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/inherits.js deleted file mode 100644 index 29f5e24f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/inherits.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('util').inherits diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/inherits_browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/inherits_browser.js deleted file mode 100644 index c1e78a75..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/inherits_browser.js +++ /dev/null @@ -1,23 +0,0 @@ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/package.json deleted file mode 100644 index b7b5b014..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "inherits", - "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.1", - "keywords": [ - "inheritance", - "class", - "klass", - "oop", - "object-oriented", - "inherits", - "browser", - "browserify" - ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/inherits.git" - }, - "license": "ISC", - "scripts": { - "test": "node test" - }, - "bugs": { - "url": "https://github.com/isaacs/inherits/issues" - }, - "_id": "inherits@2.0.1", - "dist": { - "shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1", - "tarball": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "_from": "inherits@2.0.1", - "_npmVersion": "1.3.8", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1", - "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/isaacs/inherits#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/test.js deleted file mode 100644 index fc53012d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/inherits/test.js +++ /dev/null @@ -1,25 +0,0 @@ -var inherits = require('./inherits.js') -var assert = require('assert') - -function test(c) { - assert(c.constructor === Child) - assert(c.constructor.super_ === Parent) - assert(Object.getPrototypeOf(c) === Child.prototype) - assert(Object.getPrototypeOf(Object.getPrototypeOf(c)) === Parent.prototype) - assert(c instanceof Child) - assert(c instanceof Parent) -} - -function Child() { - Parent.call(this) - test(this) -} - -function Parent() {} - -inherits(Child, Parent) - -var c = new Child -test(c) - -console.log('ok') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/LICENSE deleted file mode 100644 index 61afa2f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2015, Wes Todd - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/README.md deleted file mode 100644 index 01d79470..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Polyfill for `Object.setPrototypeOf` - -A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8. - -## Usage: - -``` -$ npm install --save setprototypeof -``` - -```javascript -var setPrototypeOf = require('setprototypeof'); - -var obj = {}; -setPrototypeOf(obj, { - foo: function() { - return 'bar'; - } -}); -obj.foo(); // bar -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/index.js deleted file mode 100644 index 086a879a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/index.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = Object.setPrototypeOf || ({__proto__:[]} instanceof Array ? setProtoOf : mixinProperties); - -function setProtoOf(obj, proto) { - obj.__proto__ = proto; -} - -function mixinProperties(obj, proto) { - for (var prop in proto) { - obj[prop] = proto[prop]; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/package.json deleted file mode 100644 index 643ae9f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/setprototypeof/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "setprototypeof", - "version": "1.0.1", - "description": "A small polyfill for Object.setprototypeof", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/wesleytodd/setprototypeof.git" - }, - "keywords": [ - "polyfill", - "object", - "setprototypeof" - ], - "author": { - "name": "Wes Todd" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/wesleytodd/setprototypeof/issues" - }, - "homepage": "https://github.com/wesleytodd/setprototypeof", - "gitHead": "1e3d0cde6b7f4a9fba10cd28e62b200c9d8f899f", - "_id": "setprototypeof@1.0.1", - "_shasum": "52009b27888c4dc48f591949c0a8275834c1ca7e", - "_from": "setprototypeof@1.0.1", - "_npmVersion": "3.3.6", - "_nodeVersion": "5.0.0", - "_npmUser": { - "name": "wesleytodd", - "email": "wes@wesleytodd.com" - }, - "dist": { - "shasum": "52009b27888c4dc48f591949c0a8275834c1ca7e", - "tarball": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.1.tgz" - }, - "maintainers": [ - { - "name": "wesleytodd", - "email": "wes@wesleytodd.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-5-east.internal.npmjs.com", - "tmp": "tmp/setprototypeof-1.0.1.tgz_1454803015119_0.7522649802267551" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/HISTORY.md deleted file mode 100644 index b175575c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/HISTORY.md +++ /dev/null @@ -1,50 +0,0 @@ -1.3.0 / 2016-05-17 -================== - - * Add `421 Misdirected Request` - * perf: enable strict mode - -1.2.1 / 2015-02-01 -================== - - * Fix message for status 451 - - `451 Unavailable For Legal Reasons` - -1.2.0 / 2014-09-28 -================== - - * Add `208 Already Repored` - * Add `226 IM Used` - * Add `306 (Unused)` - * Add `415 Unable For Legal Reasons` - * Add `508 Loop Detected` - -1.1.1 / 2014-09-24 -================== - - * Add missing 308 to `codes.json` - -1.1.0 / 2014-09-21 -================== - - * Add `codes.json` for universal support - -1.0.4 / 2014-08-20 -================== - - * Package cleanup - -1.0.3 / 2014-06-08 -================== - - * Add 308 to `.redirect` category - -1.0.2 / 2014-03-13 -================== - - * Add `.retry` category - -1.0.1 / 2014-03-12 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/LICENSE deleted file mode 100644 index 82af4df5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.com -Copyright (c) 2016 Douglas Christopher Wilson doug@somethingdoug.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/README.md deleted file mode 100644 index 1a699da0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/README.md +++ /dev/null @@ -1,114 +0,0 @@ -# Statuses - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -HTTP status utility for node. - -## API - -```js -var status = require('statuses') -``` - -### var code = status(Integer || String) - -If `Integer` or `String` is a valid HTTP code or status message, then the appropriate `code` will be returned. Otherwise, an error will be thrown. - -```js -status(403) // => 403 -status('403') // => 403 -status('forbidden') // => 403 -status('Forbidden') // => 403 -status(306) // throws, as it's not supported by node.js -``` - -### status.codes - -Returns an array of all the status codes as `Integer`s. - -### var msg = status[code] - -Map of `code` to `status message`. `undefined` for invalid `code`s. - -```js -status[404] // => 'Not Found' -``` - -### var code = status[msg] - -Map of `status message` to `code`. `msg` can either be title-cased or lower-cased. `undefined` for invalid `status message`s. - -```js -status['not found'] // => 404 -status['Not Found'] // => 404 -``` - -### status.redirect[code] - -Returns `true` if a status code is a valid redirect status. - -```js -status.redirect[200] // => undefined -status.redirect[301] // => true -``` - -### status.empty[code] - -Returns `true` if a status code expects an empty body. - -```js -status.empty[200] // => undefined -status.empty[204] // => true -status.empty[304] // => true -``` - -### status.retry[code] - -Returns `true` if you should retry the rest. - -```js -status.retry[501] // => undefined -status.retry[503] // => true -``` - -### statuses/codes.json - -```js -var codes = require('statuses/codes.json') -``` - -This is a JSON file of the status codes -taken from `require('http').STATUS_CODES`. -This is saved so that codes are consistent even in older node.js versions. -For example, `308` will be added in v0.12. - -## Adding Status Codes - -The status codes are primarily sourced from http://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv. -Additionally, custom codes are added from http://en.wikipedia.org/wiki/List_of_HTTP_status_codes. -These are added manually in the `lib/*.json` files. -If you would like to add a status code, add it to the appropriate JSON file. - -To rebuild `codes.json`, run the following: - -```bash -# update src/iana.json -npm run fetch -# build codes.json -npm run build -``` - -[npm-image]: https://img.shields.io/npm/v/statuses.svg -[npm-url]: https://npmjs.org/package/statuses -[node-version-image]: https://img.shields.io/badge/node.js-%3E%3D_0.6-brightgreen.svg -[node-version-url]: https://nodejs.org/en/download -[travis-image]: https://img.shields.io/travis/jshttp/statuses.svg -[travis-url]: https://travis-ci.org/jshttp/statuses -[coveralls-image]: https://img.shields.io/coveralls/jshttp/statuses.svg -[coveralls-url]: https://coveralls.io/r/jshttp/statuses?branch=master -[downloads-image]: https://img.shields.io/npm/dm/statuses.svg -[downloads-url]: https://npmjs.org/package/statuses diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/codes.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/codes.json deleted file mode 100644 index e7651233..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/codes.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "100": "Continue", - "101": "Switching Protocols", - "102": "Processing", - "200": "OK", - "201": "Created", - "202": "Accepted", - "203": "Non-Authoritative Information", - "204": "No Content", - "205": "Reset Content", - "206": "Partial Content", - "207": "Multi-Status", - "208": "Already Reported", - "226": "IM Used", - "300": "Multiple Choices", - "301": "Moved Permanently", - "302": "Found", - "303": "See Other", - "304": "Not Modified", - "305": "Use Proxy", - "306": "(Unused)", - "307": "Temporary Redirect", - "308": "Permanent Redirect", - "400": "Bad Request", - "401": "Unauthorized", - "402": "Payment Required", - "403": "Forbidden", - "404": "Not Found", - "405": "Method Not Allowed", - "406": "Not Acceptable", - "407": "Proxy Authentication Required", - "408": "Request Timeout", - "409": "Conflict", - "410": "Gone", - "411": "Length Required", - "412": "Precondition Failed", - "413": "Payload Too Large", - "414": "URI Too Long", - "415": "Unsupported Media Type", - "416": "Range Not Satisfiable", - "417": "Expectation Failed", - "418": "I'm a teapot", - "421": "Misdirected Request", - "422": "Unprocessable Entity", - "423": "Locked", - "424": "Failed Dependency", - "425": "Unordered Collection", - "426": "Upgrade Required", - "428": "Precondition Required", - "429": "Too Many Requests", - "431": "Request Header Fields Too Large", - "451": "Unavailable For Legal Reasons", - "500": "Internal Server Error", - "501": "Not Implemented", - "502": "Bad Gateway", - "503": "Service Unavailable", - "504": "Gateway Timeout", - "505": "HTTP Version Not Supported", - "506": "Variant Also Negotiates", - "507": "Insufficient Storage", - "508": "Loop Detected", - "509": "Bandwidth Limit Exceeded", - "510": "Not Extended", - "511": "Network Authentication Required" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/index.js deleted file mode 100644 index c2b555a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/index.js +++ /dev/null @@ -1,110 +0,0 @@ -/*! - * statuses - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2016 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var codes = require('./codes.json') - -/** - * Module exports. - * @public - */ - -module.exports = status - -// array of status codes -status.codes = populateStatusesMap(status, codes) - -// status codes for redirects -status.redirect = { - 300: true, - 301: true, - 302: true, - 303: true, - 305: true, - 307: true, - 308: true -} - -// status codes for empty bodies -status.empty = { - 204: true, - 205: true, - 304: true -} - -// status codes for when you should retry the request -status.retry = { - 502: true, - 503: true, - 504: true -} - -/** - * Populate the statuses map for given codes. - * @private - */ - -function populateStatusesMap (statuses, codes) { - var arr = [] - - Object.keys(codes).forEach(function forEachCode (code) { - var message = codes[code] - var status = Number(code) - - // Populate properties - statuses[status] = message - statuses[message] = status - statuses[message.toLowerCase()] = status - - // Add to array - arr.push(status) - }) - - return arr -} - -/** - * Get the status code. - * - * Given a number, this will throw if it is not a known status - * code, otherwise the code will be returned. Given a string, - * the string will be parsed for a number and return the code - * if valid, otherwise will lookup the code assuming this is - * the status message. - * - * @param {string|number} code - * @returns {string} - * @public - */ - -function status (code) { - if (typeof code === 'number') { - if (!status[code]) throw new Error('invalid status code: ' + code) - return code - } - - if (typeof code !== 'string') { - throw new TypeError('code must be a number or string') - } - - // '403' - var n = parseInt(code, 10) - if (!isNaN(n)) { - if (!status[n]) throw new Error('invalid status code: ' + n) - return n - } - - n = status[code.toLowerCase()] - if (!n) throw new Error('invalid status message: "' + code + '"') - return n -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/package.json deleted file mode 100644 index 743f768d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/node_modules/statuses/package.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "name": "statuses", - "description": "HTTP status utility", - "version": "1.3.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/statuses.git" - }, - "license": "MIT", - "keywords": [ - "http", - "status", - "code" - ], - "files": [ - "HISTORY.md", - "index.js", - "codes.json", - "LICENSE" - ], - "devDependencies": { - "csv-parse": "1.0.1", - "eslint": "2.10.2", - "eslint-config-standard": "5.3.1", - "eslint-plugin-promise": "1.1.0", - "eslint-plugin-standard": "1.3.2", - "istanbul": "0.4.3", - "mocha": "1.21.5", - "stream-to-array": "2.2.0" - }, - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "build": "node scripts/build.js", - "fetch": "node scripts/fetch.js", - "lint": "eslint **/*.js", - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "update": "npm run fetch && npm run build" - }, - "gitHead": "b3e31e8c32dd8107e898b44b8c0b2dfff3cba495", - "bugs": { - "url": "https://github.com/jshttp/statuses/issues" - }, - "homepage": "https://github.com/jshttp/statuses", - "_id": "statuses@1.3.0", - "_shasum": "8e55758cb20e7682c1f4fce8dcab30bf01d1e07a", - "_from": "statuses@>=1.3.0 <2.0.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "mscdex", - "email": "mscdex@mscdex.net" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "dist": { - "shasum": "8e55758cb20e7682c1f4fce8dcab30bf01d1e07a", - "tarball": "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/statuses-1.3.0.tgz_1463517875633_0.19560232176445425" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/package.json deleted file mode 100644 index 245ddac8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/http-errors/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "name": "http-errors", - "description": "Create HTTP error objects", - "version": "1.5.0", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Alan Plum", - "email": "me@pluma.io" - }, - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/http-errors.git" - }, - "dependencies": { - "inherits": "2.0.1", - "setprototypeof": "1.0.1", - "statuses": ">= 1.3.0 < 2" - }, - "devDependencies": { - "eslint": "2.10.2", - "eslint-config-standard": "5.3.1", - "eslint-plugin-promise": "1.1.0", - "eslint-plugin-standard": "1.3.2", - "istanbul": "0.4.3", - "mocha": "1.21.5" - }, - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint **/*.js", - "test": "mocha --reporter spec --bail", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" - }, - "keywords": [ - "http", - "error" - ], - "files": [ - "index.js", - "HISTORY.md", - "LICENSE", - "README.md" - ], - "gitHead": "1a826d7ac31dde16931b9c566041697939ebd0e0", - "bugs": { - "url": "https://github.com/jshttp/http-errors/issues" - }, - "homepage": "https://github.com/jshttp/http-errors#readme", - "_id": "http-errors@1.5.0", - "_shasum": "b1cb3d8260fd8e2386cad3189045943372d48211", - "_from": "http-errors@>=1.5.0 <1.6.0", - "_npmVersion": "2.15.1", - "_nodeVersion": "4.4.3", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "b1cb3d8260fd8e2386cad3189045943372d48211", - "tarball": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.0.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "egeste", - "email": "npm@egeste.net" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/http-errors-1.5.0.tgz_1463621678183_0.44013352948240936" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/.npmignore deleted file mode 100644 index 5cd2673c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -*~ -*sublime-* -generation -test -wiki -coverage diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/.travis.yml deleted file mode 100644 index f5343f19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ - sudo: false - env: - - CXX=g++-4.8 - language: node_js - node_js: - - "0.8" - - "0.10" - - "0.11" - - "0.12" - - "iojs" - - "4.0" - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - gcc-4.8 - - g++-4.8 - before_install: - - "test $TRAVIS_NODE_VERSION != '0.8' || npm install -g npm@1.2.8000" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/Changelog.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/Changelog.md deleted file mode 100644 index 421b1e2d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/Changelog.md +++ /dev/null @@ -1,93 +0,0 @@ - -# 0.4.13 / 2015-10-01 - - * Fix silly mistake in deprecation notice. - - -# 0.4.12 / 2015-09-26 - - * Node v4 support: - * Added CESU-8 decoding (#106) - * Added deprecation notice for `extendNodeEncodings` - * Added Travis tests for Node v4 and io.js latest (#105 by @Mithgol) - - -# 0.4.11 / 2015-07-03 - - * Added CESU-8 encoding. - - -# 0.4.10 / 2015-05-26 - - * Changed UTF-16 endianness heuristic to take into account any ASCII chars, not - just spaces. This should minimize the importance of "default" endianness. - - -# 0.4.9 / 2015-05-24 - - * Streamlined BOM handling: strip BOM by default, add BOM when encoding if - addBOM: true. Added docs to Readme. - * UTF16 now uses UTF16-LE by default. - * Fixed minor issue with big5 encoding. - * Added io.js testing on Travis; updated node-iconv version to test against. - Now we just skip testing SBCS encodings that node-iconv doesn't support. - * (internal refactoring) Updated codec interface to use classes. - * Use strict mode in all files. - - -# 0.4.8 / 2015-04-14 - - * added alias UNICODE-1-1-UTF-7 for UTF-7 encoding (#94) - - -# 0.4.7 / 2015-02-05 - - * stop official support of Node.js v0.8. Should still work, but no guarantees. - reason: Packages needed for testing are hard to get on Travis CI. - * work in environment where Object.prototype is monkey patched with enumerable - props (#89). - - -# 0.4.6 / 2015-01-12 - - * fix rare aliases of single-byte encodings (thanks @mscdex) - * double the timeout for dbcs tests to make them less flaky on travis - - -# 0.4.5 / 2014-11-20 - - * fix windows-31j and x-sjis encoding support (@nleush) - * minor fix: undefined variable reference when internal error happens - - -# 0.4.4 / 2014-07-16 - - * added encodings UTF-7 (RFC2152) and UTF-7-IMAP (RFC3501 Section 5.1.3) - * fixed streaming base64 encoding - - -# 0.4.3 / 2014-06-14 - - * added encodings UTF-16BE and UTF-16 with BOM - - -# 0.4.2 / 2014-06-12 - - * don't throw exception if `extendNodeEncodings()` is called more than once - - -# 0.4.1 / 2014-06-11 - - * codepage 808 added - - -# 0.4.0 / 2014-06-10 - - * code is rewritten from scratch - * all widespread encodings are supported - * streaming interface added - * browserify compatibility added - * (optional) extend core primitive encodings to make usage even simpler - * moved from vows to mocha as the testing framework - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/LICENSE deleted file mode 100644 index d518d837..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2011 Alexander Shtuchkin - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/README.md deleted file mode 100644 index 160b7cf6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/README.md +++ /dev/null @@ -1,157 +0,0 @@ -## Pure JS character encoding conversion [![Build Status](https://travis-ci.org/ashtuchkin/iconv-lite.svg?branch=master)](https://travis-ci.org/ashtuchkin/iconv-lite) - - * Doesn't need native code compilation. Works on Windows and in sandboxed environments like [Cloud9](http://c9.io). - * Used in popular projects like [Express.js (body_parser)](https://github.com/expressjs/body-parser), - [Grunt](http://gruntjs.com/), [Nodemailer](http://www.nodemailer.com/), [Yeoman](http://yeoman.io/) and others. - * Faster than [node-iconv](https://github.com/bnoordhuis/node-iconv) (see below for performance comparison). - * Intuitive encode/decode API - * Streaming support for Node v0.10+ - * [Deprecated] Can extend Node.js primitives (buffers, streams) to support all iconv-lite encodings. - * In-browser usage via [Browserify](https://github.com/substack/node-browserify) (~180k gzip compressed with Buffer shim included). - * License: MIT. - -[![NPM Stats](https://nodei.co/npm/iconv-lite.png?downloads=true&downloadRank=true)](https://npmjs.org/packages/iconv-lite/) - -## Usage -### Basic API -```javascript -var iconv = require('iconv-lite'); - -// Convert from an encoded buffer to js string. -str = iconv.decode(new Buffer([0x68, 0x65, 0x6c, 0x6c, 0x6f]), 'win1251'); - -// Convert from js string to an encoded buffer. -buf = iconv.encode("Sample input string", 'win1251'); - -// Check if encoding is supported -iconv.encodingExists("us-ascii") -``` - -### Streaming API (Node v0.10+) -```javascript - -// Decode stream (from binary stream to js strings) -http.createServer(function(req, res) { - var converterStream = iconv.decodeStream('win1251'); - req.pipe(converterStream); - - converterStream.on('data', function(str) { - console.log(str); // Do something with decoded strings, chunk-by-chunk. - }); -}); - -// Convert encoding streaming example -fs.createReadStream('file-in-win1251.txt') - .pipe(iconv.decodeStream('win1251')) - .pipe(iconv.encodeStream('ucs2')) - .pipe(fs.createWriteStream('file-in-ucs2.txt')); - -// Sugar: all encode/decode streams have .collect(cb) method to accumulate data. -http.createServer(function(req, res) { - req.pipe(iconv.decodeStream('win1251')).collect(function(err, body) { - assert(typeof body == 'string'); - console.log(body); // full request body string - }); -}); -``` - -### [Deprecated] Extend Node.js own encodings -> NOTE: This doesn't work on latest Node versions. See [details](https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility). - -```javascript -// After this call all Node basic primitives will understand iconv-lite encodings. -iconv.extendNodeEncodings(); - -// Examples: -buf = new Buffer(str, 'win1251'); -buf.write(str, 'gbk'); -str = buf.toString('latin1'); -assert(Buffer.isEncoding('iso-8859-15')); -Buffer.byteLength(str, 'us-ascii'); - -http.createServer(function(req, res) { - req.setEncoding('big5'); - req.collect(function(err, body) { - console.log(body); - }); -}); - -fs.createReadStream("file.txt", "shift_jis"); - -// External modules are also supported (if they use Node primitives, which they probably do). -request = require('request'); -request({ - url: "http://github.com/", - encoding: "cp932" -}); - -// To remove extensions -iconv.undoExtendNodeEncodings(); -``` - -## Supported encodings - - * All node.js native encodings: utf8, ucs2 / utf16-le, ascii, binary, base64, hex. - * Additional unicode encodings: utf16, utf16-be, utf-7, utf-7-imap. - * All widespread singlebyte encodings: Windows 125x family, ISO-8859 family, - IBM/DOS codepages, Macintosh family, KOI8 family, all others supported by iconv library. - Aliases like 'latin1', 'us-ascii' also supported. - * All widespread multibyte encodings: CP932, CP936, CP949, CP950, GB2313, GBK, GB18030, Big5, Shift_JIS, EUC-JP. - -See [all supported encodings on wiki](https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings). - -Most singlebyte encodings are generated automatically from [node-iconv](https://github.com/bnoordhuis/node-iconv). Thank you Ben Noordhuis and libiconv authors! - -Multibyte encodings are generated from [Unicode.org mappings](http://www.unicode.org/Public/MAPPINGS/) and [WHATWG Encoding Standard mappings](http://encoding.spec.whatwg.org/). Thank you, respective authors! - - -## Encoding/decoding speed - -Comparison with node-iconv module (1000x256kb, on MacBook Pro, Core i5/2.6 GHz, Node v0.12.0). -Note: your results may vary, so please always check on your hardware. - - operation iconv@2.1.4 iconv-lite@0.4.7 - ---------------------------------------------------------- - encode('win1251') ~96 Mb/s ~320 Mb/s - decode('win1251') ~95 Mb/s ~246 Mb/s - -## BOM handling - - * Decoding: BOM is stripped by default, unless overridden by passing `stripBOM: false` in options - (f.ex. `iconv.decode(buf, enc, {stripBOM: false})`). - A callback might also be given as a `stripBOM` parameter - it'll be called if BOM character was actually found. - * Encoding: No BOM added, unless overridden by `addBOM: true` option. - -## UTF-16 Encodings - -This library supports UTF-16LE, UTF-16BE and UTF-16 encodings. First two are straightforward, but UTF-16 is trying to be -smart about endianness in the following ways: - * Decoding: uses BOM and 'spaces heuristic' to determine input endianness. Default is UTF-16LE, but can be - overridden with `defaultEncoding: 'utf-16be'` option. Strips BOM unless `stripBOM: false`. - * Encoding: uses UTF-16LE and writes BOM by default. Use `addBOM: false` to override. - -## Other notes - -When decoding, be sure to supply a Buffer to decode() method, otherwise [bad things usually happen](https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding). -Untranslatable characters are set to � or ?. No transliteration is currently supported. -Node versions 0.10.31 and 0.11.13 are buggy, don't use them (see #65, #77). - -## Testing - -```bash -$ git clone git@github.com:ashtuchkin/iconv-lite.git -$ cd iconv-lite -$ npm install -$ npm test - -$ # To view performance: -$ node test/performance.js - -$ # To view test coverage: -$ npm run coverage -$ open coverage/lcov-report/index.html -``` - -## Adoption -[![NPM](https://nodei.co/npm-dl/iconv-lite.png)](https://nodei.co/npm/iconv-lite/) -[![Codeship Status for ashtuchkin/iconv-lite](https://www.codeship.io/projects/81670840-fa72-0131-4520-4a01a6c01acc/status)](https://www.codeship.io/projects/29053) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/dbcs-codec.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/dbcs-codec.js deleted file mode 100644 index 366809e3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/dbcs-codec.js +++ /dev/null @@ -1,554 +0,0 @@ -"use strict" - -// Multibyte codec. In this scheme, a character is represented by 1 or more bytes. -// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences. -// To save memory and loading time, we read table files only when requested. - -exports._dbcs = DBCSCodec; - -var UNASSIGNED = -1, - GB18030_CODE = -2, - SEQ_START = -10, - NODE_START = -1000, - UNASSIGNED_NODE = new Array(0x100), - DEF_CHAR = -1; - -for (var i = 0; i < 0x100; i++) - UNASSIGNED_NODE[i] = UNASSIGNED; - - -// Class DBCSCodec reads and initializes mapping tables. -function DBCSCodec(codecOptions, iconv) { - this.encodingName = codecOptions.encodingName; - if (!codecOptions) - throw new Error("DBCS codec is called without the data.") - if (!codecOptions.table) - throw new Error("Encoding '" + this.encodingName + "' has no data."); - - // Load tables. - var mappingTable = codecOptions.table(); - - - // Decode tables: MBCS -> Unicode. - - // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256. - // Trie root is decodeTables[0]. - // Values: >= 0 -> unicode character code. can be > 0xFFFF - // == UNASSIGNED -> unknown/unassigned sequence. - // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence. - // <= NODE_START -> index of the next node in our trie to process next byte. - // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq. - this.decodeTables = []; - this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node. - - // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here. - this.decodeTableSeq = []; - - // Actual mapping tables consist of chunks. Use them to fill up decode tables. - for (var i = 0; i < mappingTable.length; i++) - this._addDecodeChunk(mappingTable[i]); - - this.defaultCharUnicode = iconv.defaultCharUnicode; - - - // Encode tables: Unicode -> DBCS. - - // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance. - // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null. - // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.). - // == UNASSIGNED -> no conversion found. Output a default char. - // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence. - this.encodeTable = []; - - // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of - // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key - // means end of sequence (needed when one sequence is a strict subsequence of another). - // Objects are kept separately from encodeTable to increase performance. - this.encodeTableSeq = []; - - // Some chars can be decoded, but need not be encoded. - var skipEncodeChars = {}; - if (codecOptions.encodeSkipVals) - for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) { - var val = codecOptions.encodeSkipVals[i]; - if (typeof val === 'number') - skipEncodeChars[val] = true; - else - for (var j = val.from; j <= val.to; j++) - skipEncodeChars[j] = true; - } - - // Use decode trie to recursively fill out encode tables. - this._fillEncodeTable(0, 0, skipEncodeChars); - - // Add more encoding pairs when needed. - if (codecOptions.encodeAdd) { - for (var uChar in codecOptions.encodeAdd) - if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) - this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]); - } - - this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)]; - if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?']; - if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0); - - - // Load & create GB18030 tables when needed. - if (typeof codecOptions.gb18030 === 'function') { - this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges. - - // Add GB18030 decode tables. - var thirdByteNodeIdx = this.decodeTables.length; - var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0); - - var fourthByteNodeIdx = this.decodeTables.length; - var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0); - - for (var i = 0x81; i <= 0xFE; i++) { - var secondByteNodeIdx = NODE_START - this.decodeTables[0][i]; - var secondByteNode = this.decodeTables[secondByteNodeIdx]; - for (var j = 0x30; j <= 0x39; j++) - secondByteNode[j] = NODE_START - thirdByteNodeIdx; - } - for (var i = 0x81; i <= 0xFE; i++) - thirdByteNode[i] = NODE_START - fourthByteNodeIdx; - for (var i = 0x30; i <= 0x39; i++) - fourthByteNode[i] = GB18030_CODE - } -} - -DBCSCodec.prototype.encoder = DBCSEncoder; -DBCSCodec.prototype.decoder = DBCSDecoder; - -// Decoder helpers -DBCSCodec.prototype._getDecodeTrieNode = function(addr) { - var bytes = []; - for (; addr > 0; addr >>= 8) - bytes.push(addr & 0xFF); - if (bytes.length == 0) - bytes.push(0); - - var node = this.decodeTables[0]; - for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie. - var val = node[bytes[i]]; - - if (val == UNASSIGNED) { // Create new node. - node[bytes[i]] = NODE_START - this.decodeTables.length; - this.decodeTables.push(node = UNASSIGNED_NODE.slice(0)); - } - else if (val <= NODE_START) { // Existing node. - node = this.decodeTables[NODE_START - val]; - } - else - throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16)); - } - return node; -} - - -DBCSCodec.prototype._addDecodeChunk = function(chunk) { - // First element of chunk is the hex mbcs code where we start. - var curAddr = parseInt(chunk[0], 16); - - // Choose the decoding node where we'll write our chars. - var writeTable = this._getDecodeTrieNode(curAddr); - curAddr = curAddr & 0xFF; - - // Write all other elements of the chunk to the table. - for (var k = 1; k < chunk.length; k++) { - var part = chunk[k]; - if (typeof part === "string") { // String, write as-is. - for (var l = 0; l < part.length;) { - var code = part.charCodeAt(l++); - if (0xD800 <= code && code < 0xDC00) { // Decode surrogate - var codeTrail = part.charCodeAt(l++); - if (0xDC00 <= codeTrail && codeTrail < 0xE000) - writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00); - else - throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]); - } - else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used) - var len = 0xFFF - code + 2; - var seq = []; - for (var m = 0; m < len; m++) - seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq. - - writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length; - this.decodeTableSeq.push(seq); - } - else - writeTable[curAddr++] = code; // Basic char - } - } - else if (typeof part === "number") { // Integer, meaning increasing sequence starting with prev character. - var charCode = writeTable[curAddr - 1] + 1; - for (var l = 0; l < part; l++) - writeTable[curAddr++] = charCode++; - } - else - throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]); - } - if (curAddr > 0xFF) - throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr); -} - -// Encoder helpers -DBCSCodec.prototype._getEncodeBucket = function(uCode) { - var high = uCode >> 8; // This could be > 0xFF because of astral characters. - if (this.encodeTable[high] === undefined) - this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand. - return this.encodeTable[high]; -} - -DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) { - var bucket = this._getEncodeBucket(uCode); - var low = uCode & 0xFF; - if (bucket[low] <= SEQ_START) - this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it. - else if (bucket[low] == UNASSIGNED) - bucket[low] = dbcsCode; -} - -DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) { - - // Get the root of character tree according to first character of the sequence. - var uCode = seq[0]; - var bucket = this._getEncodeBucket(uCode); - var low = uCode & 0xFF; - - var node; - if (bucket[low] <= SEQ_START) { - // There's already a sequence with - use it. - node = this.encodeTableSeq[SEQ_START-bucket[low]]; - } - else { - // There was no sequence object - allocate a new one. - node = {}; - if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence. - bucket[low] = SEQ_START - this.encodeTableSeq.length; - this.encodeTableSeq.push(node); - } - - // Traverse the character tree, allocating new nodes as needed. - for (var j = 1; j < seq.length-1; j++) { - var oldVal = node[uCode]; - if (typeof oldVal === 'object') - node = oldVal; - else { - node = node[uCode] = {} - if (oldVal !== undefined) - node[DEF_CHAR] = oldVal - } - } - - // Set the leaf to given dbcsCode. - uCode = seq[seq.length-1]; - node[uCode] = dbcsCode; -} - -DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) { - var node = this.decodeTables[nodeIdx]; - for (var i = 0; i < 0x100; i++) { - var uCode = node[i]; - var mbCode = prefix + i; - if (skipEncodeChars[mbCode]) - continue; - - if (uCode >= 0) - this._setEncodeChar(uCode, mbCode); - else if (uCode <= NODE_START) - this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars); - else if (uCode <= SEQ_START) - this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode); - } -} - - - -// == Encoder ================================================================== - -function DBCSEncoder(options, codec) { - // Encoder state - this.leadSurrogate = -1; - this.seqObj = undefined; - - // Static data - this.encodeTable = codec.encodeTable; - this.encodeTableSeq = codec.encodeTableSeq; - this.defaultCharSingleByte = codec.defCharSB; - this.gb18030 = codec.gb18030; -} - -DBCSEncoder.prototype.write = function(str) { - var newBuf = new Buffer(str.length * (this.gb18030 ? 4 : 3)), - leadSurrogate = this.leadSurrogate, - seqObj = this.seqObj, nextChar = -1, - i = 0, j = 0; - - while (true) { - // 0. Get next character. - if (nextChar === -1) { - if (i == str.length) break; - var uCode = str.charCodeAt(i++); - } - else { - var uCode = nextChar; - nextChar = -1; - } - - // 1. Handle surrogates. - if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates. - if (uCode < 0xDC00) { // We've got lead surrogate. - if (leadSurrogate === -1) { - leadSurrogate = uCode; - continue; - } else { - leadSurrogate = uCode; - // Double lead surrogate found. - uCode = UNASSIGNED; - } - } else { // We've got trail surrogate. - if (leadSurrogate !== -1) { - uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00); - leadSurrogate = -1; - } else { - // Incomplete surrogate pair - only trail surrogate found. - uCode = UNASSIGNED; - } - - } - } - else if (leadSurrogate !== -1) { - // Incomplete surrogate pair - only lead surrogate found. - nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char. - leadSurrogate = -1; - } - - // 2. Convert uCode character. - var dbcsCode = UNASSIGNED; - if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence - var resCode = seqObj[uCode]; - if (typeof resCode === 'object') { // Sequence continues. - seqObj = resCode; - continue; - - } else if (typeof resCode == 'number') { // Sequence finished. Write it. - dbcsCode = resCode; - - } else if (resCode == undefined) { // Current character is not part of the sequence. - - // Try default character for this sequence - resCode = seqObj[DEF_CHAR]; - if (resCode !== undefined) { - dbcsCode = resCode; // Found. Write it. - nextChar = uCode; // Current character will be written too in the next iteration. - - } else { - // TODO: What if we have no default? (resCode == undefined) - // Then, we should write first char of the sequence as-is and try the rest recursively. - // Didn't do it for now because no encoding has this situation yet. - // Currently, just skip the sequence and write current char. - } - } - seqObj = undefined; - } - else if (uCode >= 0) { // Regular character - var subtable = this.encodeTable[uCode >> 8]; - if (subtable !== undefined) - dbcsCode = subtable[uCode & 0xFF]; - - if (dbcsCode <= SEQ_START) { // Sequence start - seqObj = this.encodeTableSeq[SEQ_START-dbcsCode]; - continue; - } - - if (dbcsCode == UNASSIGNED && this.gb18030) { - // Use GB18030 algorithm to find character(s) to write. - var idx = findIdx(this.gb18030.uChars, uCode); - if (idx != -1) { - var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]); - newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600; - newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260; - newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10; - newBuf[j++] = 0x30 + dbcsCode; - continue; - } - } - } - - // 3. Write dbcsCode character. - if (dbcsCode === UNASSIGNED) - dbcsCode = this.defaultCharSingleByte; - - if (dbcsCode < 0x100) { - newBuf[j++] = dbcsCode; - } - else if (dbcsCode < 0x10000) { - newBuf[j++] = dbcsCode >> 8; // high byte - newBuf[j++] = dbcsCode & 0xFF; // low byte - } - else { - newBuf[j++] = dbcsCode >> 16; - newBuf[j++] = (dbcsCode >> 8) & 0xFF; - newBuf[j++] = dbcsCode & 0xFF; - } - } - - this.seqObj = seqObj; - this.leadSurrogate = leadSurrogate; - return newBuf.slice(0, j); -} - -DBCSEncoder.prototype.end = function() { - if (this.leadSurrogate === -1 && this.seqObj === undefined) - return; // All clean. Most often case. - - var newBuf = new Buffer(10), j = 0; - - if (this.seqObj) { // We're in the sequence. - var dbcsCode = this.seqObj[DEF_CHAR]; - if (dbcsCode !== undefined) { // Write beginning of the sequence. - if (dbcsCode < 0x100) { - newBuf[j++] = dbcsCode; - } - else { - newBuf[j++] = dbcsCode >> 8; // high byte - newBuf[j++] = dbcsCode & 0xFF; // low byte - } - } else { - // See todo above. - } - this.seqObj = undefined; - } - - if (this.leadSurrogate !== -1) { - // Incomplete surrogate pair - only lead surrogate found. - newBuf[j++] = this.defaultCharSingleByte; - this.leadSurrogate = -1; - } - - return newBuf.slice(0, j); -} - -// Export for testing -DBCSEncoder.prototype.findIdx = findIdx; - - -// == Decoder ================================================================== - -function DBCSDecoder(options, codec) { - // Decoder state - this.nodeIdx = 0; - this.prevBuf = new Buffer(0); - - // Static data - this.decodeTables = codec.decodeTables; - this.decodeTableSeq = codec.decodeTableSeq; - this.defaultCharUnicode = codec.defaultCharUnicode; - this.gb18030 = codec.gb18030; -} - -DBCSDecoder.prototype.write = function(buf) { - var newBuf = new Buffer(buf.length*2), - nodeIdx = this.nodeIdx, - prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length, - seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence. - uCode; - - if (prevBufOffset > 0) // Make prev buf overlap a little to make it easier to slice later. - prevBuf = Buffer.concat([prevBuf, buf.slice(0, 10)]); - - for (var i = 0, j = 0; i < buf.length; i++) { - var curByte = (i >= 0) ? buf[i] : prevBuf[i + prevBufOffset]; - - // Lookup in current trie node. - var uCode = this.decodeTables[nodeIdx][curByte]; - - if (uCode >= 0) { - // Normal character, just use it. - } - else if (uCode === UNASSIGNED) { // Unknown char. - // TODO: Callback with seq. - //var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset); - i = seqStart; // Try to parse again, after skipping first byte of the sequence ('i' will be incremented by 'for' cycle). - uCode = this.defaultCharUnicode.charCodeAt(0); - } - else if (uCode === GB18030_CODE) { - var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset); - var ptr = (curSeq[0]-0x81)*12600 + (curSeq[1]-0x30)*1260 + (curSeq[2]-0x81)*10 + (curSeq[3]-0x30); - var idx = findIdx(this.gb18030.gbChars, ptr); - uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx]; - } - else if (uCode <= NODE_START) { // Go to next trie node. - nodeIdx = NODE_START - uCode; - continue; - } - else if (uCode <= SEQ_START) { // Output a sequence of chars. - var seq = this.decodeTableSeq[SEQ_START - uCode]; - for (var k = 0; k < seq.length - 1; k++) { - uCode = seq[k]; - newBuf[j++] = uCode & 0xFF; - newBuf[j++] = uCode >> 8; - } - uCode = seq[seq.length-1]; - } - else - throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte); - - // Write the character to buffer, handling higher planes using surrogate pair. - if (uCode > 0xFFFF) { - uCode -= 0x10000; - var uCodeLead = 0xD800 + Math.floor(uCode / 0x400); - newBuf[j++] = uCodeLead & 0xFF; - newBuf[j++] = uCodeLead >> 8; - - uCode = 0xDC00 + uCode % 0x400; - } - newBuf[j++] = uCode & 0xFF; - newBuf[j++] = uCode >> 8; - - // Reset trie node. - nodeIdx = 0; seqStart = i+1; - } - - this.nodeIdx = nodeIdx; - this.prevBuf = (seqStart >= 0) ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset); - return newBuf.slice(0, j).toString('ucs2'); -} - -DBCSDecoder.prototype.end = function() { - var ret = ''; - - // Try to parse all remaining chars. - while (this.prevBuf.length > 0) { - // Skip 1 character in the buffer. - ret += this.defaultCharUnicode; - var buf = this.prevBuf.slice(1); - - // Parse remaining as usual. - this.prevBuf = new Buffer(0); - this.nodeIdx = 0; - if (buf.length > 0) - ret += this.write(buf); - } - - this.nodeIdx = 0; - return ret; -} - -// Binary search for GB18030. Returns largest i such that table[i] <= val. -function findIdx(table, val) { - if (table[0] > val) - return -1; - - var l = 0, r = table.length; - while (l < r-1) { // always table[l] <= val < table[r] - var mid = l + Math.floor((r-l+1)/2); - if (table[mid] <= val) - l = mid; - else - r = mid; - } - return l; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/dbcs-data.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/dbcs-data.js deleted file mode 100644 index 2bf74152..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/dbcs-data.js +++ /dev/null @@ -1,170 +0,0 @@ -"use strict" - -// Description of supported double byte encodings and aliases. -// Tables are not require()-d until they are needed to speed up library load. -// require()-s are direct to support Browserify. - -module.exports = { - - // == Japanese/ShiftJIS ==================================================== - // All japanese encodings are based on JIS X set of standards: - // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF. - // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes. - // Has several variations in 1978, 1983, 1990 and 1997. - // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead. - // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233. - // 2 planes, first is superset of 0208, second - revised 0212. - // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx) - - // Byte encodings are: - // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte - // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC. - // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI. - // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes. - // 0x00-0x7F - lower part of 0201 - // 0x8E, 0xA1-0xDF - upper part of 0201 - // (0xA1-0xFE)x2 - 0208 plane (94x94). - // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94). - // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon. - // Used as-is in ISO2022 family. - // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII, - // 0201-1976 Roman, 0208-1978, 0208-1983. - // * ISO2022-JP-1: Adds esc seq for 0212-1990. - // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7. - // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2. - // * ISO2022-JP-2004: Adds 0213-2004 Plane 1. - // - // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes. - // - // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html - - - 'shiftjis': { - type: '_dbcs', - table: function() { return require('./tables/shiftjis.json') }, - encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E}, - encodeSkipVals: [{from: 0xED40, to: 0xF940}], - }, - 'csshiftjis': 'shiftjis', - 'mskanji': 'shiftjis', - 'sjis': 'shiftjis', - 'windows31j': 'shiftjis', - 'xsjis': 'shiftjis', - 'windows932': 'shiftjis', - '932': 'shiftjis', - 'cp932': 'shiftjis', - - 'eucjp': { - type: '_dbcs', - table: function() { return require('./tables/eucjp.json') }, - encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E}, - }, - - // TODO: KDDI extension to Shift_JIS - // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes. - // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars. - - // == Chinese/GBK ========================================================== - // http://en.wikipedia.org/wiki/GBK - - // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936 - 'gb2312': 'cp936', - 'gb231280': 'cp936', - 'gb23121980': 'cp936', - 'csgb2312': 'cp936', - 'csiso58gb231280': 'cp936', - 'euccn': 'cp936', - 'isoir58': 'gbk', - - // Microsoft's CP936 is a subset and approximation of GBK. - // TODO: Euro = 0x80 in cp936, but not in GBK (where it's valid but undefined) - 'windows936': 'cp936', - '936': 'cp936', - 'cp936': { - type: '_dbcs', - table: function() { return require('./tables/cp936.json') }, - }, - - // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other. - 'gbk': { - type: '_dbcs', - table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) }, - }, - 'xgbk': 'gbk', - - // GB18030 is an algorithmic extension of GBK. - 'gb18030': { - type: '_dbcs', - table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) }, - gb18030: function() { return require('./tables/gb18030-ranges.json') }, - }, - - 'chinese': 'gb18030', - - // TODO: Support GB18030 (~27000 chars + whole unicode mapping, cp54936) - // http://icu-project.org/docs/papers/gb18030.html - // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml - // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0 - - // == Korean =============================================================== - // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same. - 'windows949': 'cp949', - '949': 'cp949', - 'cp949': { - type: '_dbcs', - table: function() { return require('./tables/cp949.json') }, - }, - - 'cseuckr': 'cp949', - 'csksc56011987': 'cp949', - 'euckr': 'cp949', - 'isoir149': 'cp949', - 'korean': 'cp949', - 'ksc56011987': 'cp949', - 'ksc56011989': 'cp949', - 'ksc5601': 'cp949', - - - // == Big5/Taiwan/Hong Kong ================================================ - // There are lots of tables for Big5 and cp950. Please see the following links for history: - // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html - // Variations, in roughly number of defined chars: - // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT - // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/ - // * Big5-2003 (Taiwan standard) almost superset of cp950. - // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers. - // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard. - // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years. - // Plus, it has 4 combining sequences. - // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299 - // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way. - // Implementations are not consistent within browsers; sometimes labeled as just big5. - // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied. - // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31 - // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s. - // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt - // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt - // - // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder - // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong. - - 'windows950': 'cp950', - '950': 'cp950', - 'cp950': { - type: '_dbcs', - table: function() { return require('./tables/cp950.json') }, - }, - - // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus. - 'big5': 'big5hkscs', - 'big5hkscs': { - type: '_dbcs', - table: function() { return require('./tables/cp950.json').concat(require('./tables/big5-added.json')) }, - encodeSkipVals: [0xa2cc], - }, - - 'cnbig5': 'big5hkscs', - 'csbig5': 'big5hkscs', - 'xxbig5': 'big5hkscs', - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/index.js deleted file mode 100644 index f7892fa3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/index.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict" - -// Update this array if you add/rename/remove files in this directory. -// We support Browserify by skipping automatic module discovery and requiring modules directly. -var modules = [ - require("./internal"), - require("./utf16"), - require("./utf7"), - require("./sbcs-codec"), - require("./sbcs-data"), - require("./sbcs-data-generated"), - require("./dbcs-codec"), - require("./dbcs-data"), -]; - -// Put all encoding/alias/codec definitions to single object and export it. -for (var i = 0; i < modules.length; i++) { - var module = modules[i]; - for (var enc in module) - if (Object.prototype.hasOwnProperty.call(module, enc)) - exports[enc] = module[enc]; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/internal.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/internal.js deleted file mode 100644 index a8ae5121..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/internal.js +++ /dev/null @@ -1,187 +0,0 @@ -"use strict" - -// Export Node.js internal encodings. - -module.exports = { - // Encodings - utf8: { type: "_internal", bomAware: true}, - cesu8: { type: "_internal", bomAware: true}, - unicode11utf8: "utf8", - - ucs2: { type: "_internal", bomAware: true}, - utf16le: "ucs2", - - binary: { type: "_internal" }, - base64: { type: "_internal" }, - hex: { type: "_internal" }, - - // Codec. - _internal: InternalCodec, -}; - -//------------------------------------------------------------------------------ - -function InternalCodec(codecOptions, iconv) { - this.enc = codecOptions.encodingName; - this.bomAware = codecOptions.bomAware; - - if (this.enc === "base64") - this.encoder = InternalEncoderBase64; - else if (this.enc === "cesu8") { - this.enc = "utf8"; // Use utf8 for decoding. - this.encoder = InternalEncoderCesu8; - - // Add decoder for versions of Node not supporting CESU-8 - if (new Buffer("eda080", 'hex').toString().length == 3) { - this.decoder = InternalDecoderCesu8; - this.defaultCharUnicode = iconv.defaultCharUnicode; - } - } -} - -InternalCodec.prototype.encoder = InternalEncoder; -InternalCodec.prototype.decoder = InternalDecoder; - -//------------------------------------------------------------------------------ - -// We use node.js internal decoder. Its signature is the same as ours. -var StringDecoder = require('string_decoder').StringDecoder; - -if (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method. - StringDecoder.prototype.end = function() {}; - - -function InternalDecoder(options, codec) { - StringDecoder.call(this, codec.enc); -} - -InternalDecoder.prototype = StringDecoder.prototype; - - -//------------------------------------------------------------------------------ -// Encoder is mostly trivial - -function InternalEncoder(options, codec) { - this.enc = codec.enc; -} - -InternalEncoder.prototype.write = function(str) { - return new Buffer(str, this.enc); -} - -InternalEncoder.prototype.end = function() { -} - - -//------------------------------------------------------------------------------ -// Except base64 encoder, which must keep its state. - -function InternalEncoderBase64(options, codec) { - this.prevStr = ''; -} - -InternalEncoderBase64.prototype.write = function(str) { - str = this.prevStr + str; - var completeQuads = str.length - (str.length % 4); - this.prevStr = str.slice(completeQuads); - str = str.slice(0, completeQuads); - - return new Buffer(str, "base64"); -} - -InternalEncoderBase64.prototype.end = function() { - return new Buffer(this.prevStr, "base64"); -} - - -//------------------------------------------------------------------------------ -// CESU-8 encoder is also special. - -function InternalEncoderCesu8(options, codec) { -} - -InternalEncoderCesu8.prototype.write = function(str) { - var buf = new Buffer(str.length * 3), bufIdx = 0; - for (var i = 0; i < str.length; i++) { - var charCode = str.charCodeAt(i); - // Naive implementation, but it works because CESU-8 is especially easy - // to convert from UTF-16 (which all JS strings are encoded in). - if (charCode < 0x80) - buf[bufIdx++] = charCode; - else if (charCode < 0x800) { - buf[bufIdx++] = 0xC0 + (charCode >>> 6); - buf[bufIdx++] = 0x80 + (charCode & 0x3f); - } - else { // charCode will always be < 0x10000 in javascript. - buf[bufIdx++] = 0xE0 + (charCode >>> 12); - buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f); - buf[bufIdx++] = 0x80 + (charCode & 0x3f); - } - } - return buf.slice(0, bufIdx); -} - -InternalEncoderCesu8.prototype.end = function() { -} - -//------------------------------------------------------------------------------ -// CESU-8 decoder is not implemented in Node v4.0+ - -function InternalDecoderCesu8(options, codec) { - this.acc = 0; - this.contBytes = 0; - this.accBytes = 0; - this.defaultCharUnicode = codec.defaultCharUnicode; -} - -InternalDecoderCesu8.prototype.write = function(buf) { - var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, - res = ''; - for (var i = 0; i < buf.length; i++) { - var curByte = buf[i]; - if ((curByte & 0xC0) !== 0x80) { // Leading byte - if (contBytes > 0) { // Previous code is invalid - res += this.defaultCharUnicode; - contBytes = 0; - } - - if (curByte < 0x80) { // Single-byte code - res += String.fromCharCode(curByte); - } else if (curByte < 0xE0) { // Two-byte code - acc = curByte & 0x1F; - contBytes = 1; accBytes = 1; - } else if (curByte < 0xF0) { // Three-byte code - acc = curByte & 0x0F; - contBytes = 2; accBytes = 1; - } else { // Four or more are not supported for CESU-8. - res += this.defaultCharUnicode; - } - } else { // Continuation byte - if (contBytes > 0) { // We're waiting for it. - acc = (acc << 6) | (curByte & 0x3f); - contBytes--; accBytes++; - if (contBytes === 0) { - // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80) - if (accBytes === 2 && acc < 0x80 && acc > 0) - res += this.defaultCharUnicode; - else if (accBytes === 3 && acc < 0x800) - res += this.defaultCharUnicode; - else - // Actually add character. - res += String.fromCharCode(acc); - } - } else { // Unexpected continuation byte - res += this.defaultCharUnicode; - } - } - } - this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes; - return res; -} - -InternalDecoderCesu8.prototype.end = function() { - var res = 0; - if (this.contBytes > 0) - res += this.defaultCharUnicode; - return res; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-codec.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-codec.js deleted file mode 100644 index ca00171b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-codec.js +++ /dev/null @@ -1,72 +0,0 @@ -"use strict" - -// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that -// correspond to encoded bytes (if 128 - then lower half is ASCII). - -exports._sbcs = SBCSCodec; -function SBCSCodec(codecOptions, iconv) { - if (!codecOptions) - throw new Error("SBCS codec is called without the data.") - - // Prepare char buffer for decoding. - if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256)) - throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)"); - - if (codecOptions.chars.length === 128) { - var asciiString = ""; - for (var i = 0; i < 128; i++) - asciiString += String.fromCharCode(i); - codecOptions.chars = asciiString + codecOptions.chars; - } - - this.decodeBuf = new Buffer(codecOptions.chars, 'ucs2'); - - // Encoding buffer. - var encodeBuf = new Buffer(65536); - encodeBuf.fill(iconv.defaultCharSingleByte.charCodeAt(0)); - - for (var i = 0; i < codecOptions.chars.length; i++) - encodeBuf[codecOptions.chars.charCodeAt(i)] = i; - - this.encodeBuf = encodeBuf; -} - -SBCSCodec.prototype.encoder = SBCSEncoder; -SBCSCodec.prototype.decoder = SBCSDecoder; - - -function SBCSEncoder(options, codec) { - this.encodeBuf = codec.encodeBuf; -} - -SBCSEncoder.prototype.write = function(str) { - var buf = new Buffer(str.length); - for (var i = 0; i < str.length; i++) - buf[i] = this.encodeBuf[str.charCodeAt(i)]; - - return buf; -} - -SBCSEncoder.prototype.end = function() { -} - - -function SBCSDecoder(options, codec) { - this.decodeBuf = codec.decodeBuf; -} - -SBCSDecoder.prototype.write = function(buf) { - // Strings are immutable in JS -> we use ucs2 buffer to speed up computations. - var decodeBuf = this.decodeBuf; - var newBuf = new Buffer(buf.length*2); - var idx1 = 0, idx2 = 0; - for (var i = 0; i < buf.length; i++) { - idx1 = buf[i]*2; idx2 = i*2; - newBuf[idx2] = decodeBuf[idx1]; - newBuf[idx2+1] = decodeBuf[idx1+1]; - } - return newBuf.toString('ucs2'); -} - -SBCSDecoder.prototype.end = function() { -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-data-generated.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-data-generated.js deleted file mode 100644 index 2308c918..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-data-generated.js +++ /dev/null @@ -1,451 +0,0 @@ -"use strict" - -// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script. -module.exports = { - "437": "cp437", - "737": "cp737", - "775": "cp775", - "850": "cp850", - "852": "cp852", - "855": "cp855", - "856": "cp856", - "857": "cp857", - "858": "cp858", - "860": "cp860", - "861": "cp861", - "862": "cp862", - "863": "cp863", - "864": "cp864", - "865": "cp865", - "866": "cp866", - "869": "cp869", - "874": "windows874", - "922": "cp922", - "1046": "cp1046", - "1124": "cp1124", - "1125": "cp1125", - "1129": "cp1129", - "1133": "cp1133", - "1161": "cp1161", - "1162": "cp1162", - "1163": "cp1163", - "1250": "windows1250", - "1251": "windows1251", - "1252": "windows1252", - "1253": "windows1253", - "1254": "windows1254", - "1255": "windows1255", - "1256": "windows1256", - "1257": "windows1257", - "1258": "windows1258", - "28591": "iso88591", - "28592": "iso88592", - "28593": "iso88593", - "28594": "iso88594", - "28595": "iso88595", - "28596": "iso88596", - "28597": "iso88597", - "28598": "iso88598", - "28599": "iso88599", - "28600": "iso885910", - "28601": "iso885911", - "28603": "iso885913", - "28604": "iso885914", - "28605": "iso885915", - "28606": "iso885916", - "windows874": { - "type": "_sbcs", - "chars": "€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����" - }, - "win874": "windows874", - "cp874": "windows874", - "windows1250": { - "type": "_sbcs", - "chars": "€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙" - }, - "win1250": "windows1250", - "cp1250": "windows1250", - "windows1251": { - "type": "_sbcs", - "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя" - }, - "win1251": "windows1251", - "cp1251": "windows1251", - "windows1252": { - "type": "_sbcs", - "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" - }, - "win1252": "windows1252", - "cp1252": "windows1252", - "windows1253": { - "type": "_sbcs", - "chars": "€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�" - }, - "win1253": "windows1253", - "cp1253": "windows1253", - "windows1254": { - "type": "_sbcs", - "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ" - }, - "win1254": "windows1254", - "cp1254": "windows1254", - "windows1255": { - "type": "_sbcs", - "chars": "€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�" - }, - "win1255": "windows1255", - "cp1255": "windows1255", - "windows1256": { - "type": "_sbcs", - "chars": "€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے" - }, - "win1256": "windows1256", - "cp1256": "windows1256", - "windows1257": { - "type": "_sbcs", - "chars": "€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙" - }, - "win1257": "windows1257", - "cp1257": "windows1257", - "windows1258": { - "type": "_sbcs", - "chars": "€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ" - }, - "win1258": "windows1258", - "cp1258": "windows1258", - "iso88591": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" - }, - "cp28591": "iso88591", - "iso88592": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙" - }, - "cp28592": "iso88592", - "iso88593": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ħ˘£¤�Ĥ§¨İŞĞĴ­�Ż°ħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙" - }, - "cp28593": "iso88593", - "iso88594": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤ĨĻ§¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩļˇ¸šēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖ×ØŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙" - }, - "cp28594": "iso88594", - "iso88595": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ" - }, - "cp28595": "iso88595", - "iso88596": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������" - }, - "cp28596": "iso88596", - "iso88597": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�" - }, - "cp28597": "iso88597", - "iso88598": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�" - }, - "cp28598": "iso88598", - "iso88599": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ" - }, - "cp28599": "iso88599", - "iso885910": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨĶ§ĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ" - }, - "cp28600": "iso885910", - "iso885911": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����" - }, - "cp28601": "iso885911", - "iso885913": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’" - }, - "cp28603": "iso885913", - "iso885914": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ" - }, - "cp28604": "iso885914", - "iso885915": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" - }, - "cp28605": "iso885915", - "iso885916": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄąŁ€„Š§š©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ" - }, - "cp28606": "iso885916", - "cp437": { - "type": "_sbcs", - "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " - }, - "ibm437": "cp437", - "csibm437": "cp437", - "cp737": { - "type": "_sbcs", - "chars": "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ " - }, - "ibm737": "cp737", - "csibm737": "cp737", - "cp775": { - "type": "_sbcs", - "chars": "ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£ØפĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ " - }, - "ibm775": "cp775", - "csibm775": "cp775", - "cp850": { - "type": "_sbcs", - "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ " - }, - "ibm850": "cp850", - "csibm850": "cp850", - "cp852": { - "type": "_sbcs", - "chars": "ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ " - }, - "ibm852": "cp852", - "csibm852": "cp852", - "cp855": { - "type": "_sbcs", - "chars": "ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ " - }, - "ibm855": "cp855", - "csibm855": "cp855", - "cp856": { - "type": "_sbcs", - "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ " - }, - "ibm856": "cp856", - "csibm856": "cp856", - "cp857": { - "type": "_sbcs", - "chars": "ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ " - }, - "ibm857": "cp857", - "csibm857": "cp857", - "cp858": { - "type": "_sbcs", - "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ " - }, - "ibm858": "cp858", - "csibm858": "cp858", - "cp860": { - "type": "_sbcs", - "chars": "ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " - }, - "ibm860": "cp860", - "csibm860": "cp860", - "cp861": { - "type": "_sbcs", - "chars": "ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " - }, - "ibm861": "cp861", - "csibm861": "cp861", - "cp862": { - "type": "_sbcs", - "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " - }, - "ibm862": "cp862", - "csibm862": "cp862", - "cp863": { - "type": "_sbcs", - "chars": "ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " - }, - "ibm863": "cp863", - "csibm863": "cp863", - "cp864": { - "type": "_sbcs", - "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�" - }, - "ibm864": "cp864", - "csibm864": "cp864", - "cp865": { - "type": "_sbcs", - "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " - }, - "ibm865": "cp865", - "csibm865": "cp865", - "cp866": { - "type": "_sbcs", - "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ " - }, - "ibm866": "cp866", - "csibm866": "cp866", - "cp869": { - "type": "_sbcs", - "chars": "������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ " - }, - "ibm869": "cp869", - "csibm869": "cp869", - "cp922": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖ×ØÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ" - }, - "ibm922": "cp922", - "csibm922": "cp922", - "cp1046": { - "type": "_sbcs", - "chars": "ﺈ×÷ﹱˆ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�" - }, - "ibm1046": "cp1046", - "csibm1046": "cp1046", - "cp1124": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ" - }, - "ibm1124": "cp1124", - "csibm1124": "cp1124", - "cp1125": { - "type": "_sbcs", - "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ " - }, - "ibm1125": "cp1125", - "csibm1125": "cp1125", - "cp1129": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ" - }, - "ibm1129": "cp1129", - "csibm1129": "cp1129", - "cp1133": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�" - }, - "ibm1133": "cp1133", - "csibm1133": "cp1133", - "cp1161": { - "type": "_sbcs", - "chars": "��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ " - }, - "ibm1161": "cp1161", - "csibm1161": "cp1161", - "cp1162": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����" - }, - "ibm1162": "cp1162", - "csibm1162": "cp1162", - "cp1163": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ" - }, - "ibm1163": "cp1163", - "csibm1163": "cp1163", - "maccroatian": { - "type": "_sbcs", - "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ" - }, - "maccyrillic": { - "type": "_sbcs", - "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤" - }, - "macgreek": { - "type": "_sbcs", - "chars": "Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�" - }, - "maciceland": { - "type": "_sbcs", - "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ" - }, - "macroman": { - "type": "_sbcs", - "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ" - }, - "macromania": { - "type": "_sbcs", - "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ" - }, - "macthai": { - "type": "_sbcs", - "chars": "«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����" - }, - "macturkish": { - "type": "_sbcs", - "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ" - }, - "macukraine": { - "type": "_sbcs", - "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤" - }, - "koi8r": { - "type": "_sbcs", - "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ" - }, - "koi8u": { - "type": "_sbcs", - "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ" - }, - "koi8ru": { - "type": "_sbcs", - "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ" - }, - "koi8t": { - "type": "_sbcs", - "chars": "қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ" - }, - "armscii8": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�" - }, - "rk1048": { - "type": "_sbcs", - "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя" - }, - "tcvn": { - "type": "_sbcs", - "chars": "\u0000ÚỤ\u0003ỪỬỮ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010ỨỰỲỶỸÝỴ\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ" - }, - "georgianacademy": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ" - }, - "georgianps": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" - }, - "pt154": { - "type": "_sbcs", - "chars": "ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя" - }, - "viscii": { - "type": "_sbcs", - "chars": "\u0000\u0001Ẳ\u0003\u0004ẴẪ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013Ỷ\u0015\u0016\u0017\u0018Ỹ\u001a\u001b\u001c\u001dỴ\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ" - }, - "iso646cn": { - "type": "_sbcs", - "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������" - }, - "iso646jp": { - "type": "_sbcs", - "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������" - }, - "hproman8": { - "type": "_sbcs", - "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�" - }, - "macintosh": { - "type": "_sbcs", - "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ" - }, - "ascii": { - "type": "_sbcs", - "chars": "��������������������������������������������������������������������������������������������������������������������������������" - }, - "tis620": { - "type": "_sbcs", - "chars": "���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-data.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-data.js deleted file mode 100644 index 2058a715..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-data.js +++ /dev/null @@ -1,169 +0,0 @@ -"use strict" - -// Manually added data to be used by sbcs codec in addition to generated one. - -module.exports = { - // Not supported by iconv, not sure why. - "10029": "maccenteuro", - "maccenteuro": { - "type": "_sbcs", - "chars": "ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ" - }, - - "808": "cp808", - "ibm808": "cp808", - "cp808": { - "type": "_sbcs", - "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ " - }, - - // Aliases of generated encodings. - "ascii8bit": "ascii", - "usascii": "ascii", - "ansix34": "ascii", - "ansix341968": "ascii", - "ansix341986": "ascii", - "csascii": "ascii", - "cp367": "ascii", - "ibm367": "ascii", - "isoir6": "ascii", - "iso646us": "ascii", - "iso646irv": "ascii", - "us": "ascii", - - "latin1": "iso88591", - "latin2": "iso88592", - "latin3": "iso88593", - "latin4": "iso88594", - "latin5": "iso88599", - "latin6": "iso885910", - "latin7": "iso885913", - "latin8": "iso885914", - "latin9": "iso885915", - "latin10": "iso885916", - - "csisolatin1": "iso88591", - "csisolatin2": "iso88592", - "csisolatin3": "iso88593", - "csisolatin4": "iso88594", - "csisolatincyrillic": "iso88595", - "csisolatinarabic": "iso88596", - "csisolatingreek" : "iso88597", - "csisolatinhebrew": "iso88598", - "csisolatin5": "iso88599", - "csisolatin6": "iso885910", - - "l1": "iso88591", - "l2": "iso88592", - "l3": "iso88593", - "l4": "iso88594", - "l5": "iso88599", - "l6": "iso885910", - "l7": "iso885913", - "l8": "iso885914", - "l9": "iso885915", - "l10": "iso885916", - - "isoir14": "iso646jp", - "isoir57": "iso646cn", - "isoir100": "iso88591", - "isoir101": "iso88592", - "isoir109": "iso88593", - "isoir110": "iso88594", - "isoir144": "iso88595", - "isoir127": "iso88596", - "isoir126": "iso88597", - "isoir138": "iso88598", - "isoir148": "iso88599", - "isoir157": "iso885910", - "isoir166": "tis620", - "isoir179": "iso885913", - "isoir199": "iso885914", - "isoir203": "iso885915", - "isoir226": "iso885916", - - "cp819": "iso88591", - "ibm819": "iso88591", - - "cyrillic": "iso88595", - - "arabic": "iso88596", - "arabic8": "iso88596", - "ecma114": "iso88596", - "asmo708": "iso88596", - - "greek" : "iso88597", - "greek8" : "iso88597", - "ecma118" : "iso88597", - "elot928" : "iso88597", - - "hebrew": "iso88598", - "hebrew8": "iso88598", - - "turkish": "iso88599", - "turkish8": "iso88599", - - "thai": "iso885911", - "thai8": "iso885911", - - "celtic": "iso885914", - "celtic8": "iso885914", - "isoceltic": "iso885914", - - "tis6200": "tis620", - "tis62025291": "tis620", - "tis62025330": "tis620", - - "10000": "macroman", - "10006": "macgreek", - "10007": "maccyrillic", - "10079": "maciceland", - "10081": "macturkish", - - "cspc8codepage437": "cp437", - "cspc775baltic": "cp775", - "cspc850multilingual": "cp850", - "cspcp852": "cp852", - "cspc862latinhebrew": "cp862", - "cpgr": "cp869", - - "msee": "cp1250", - "mscyrl": "cp1251", - "msansi": "cp1252", - "msgreek": "cp1253", - "msturk": "cp1254", - "mshebr": "cp1255", - "msarab": "cp1256", - "winbaltrim": "cp1257", - - "cp20866": "koi8r", - "20866": "koi8r", - "ibm878": "koi8r", - "cskoi8r": "koi8r", - - "cp21866": "koi8u", - "21866": "koi8u", - "ibm1168": "koi8u", - - "strk10482002": "rk1048", - - "tcvn5712": "tcvn", - "tcvn57121": "tcvn", - - "gb198880": "iso646cn", - "cn": "iso646cn", - - "csiso14jisc6220ro": "iso646jp", - "jisc62201969ro": "iso646jp", - "jp": "iso646jp", - - "cshproman8": "hproman8", - "r8": "hproman8", - "roman8": "hproman8", - "xroman8": "hproman8", - "ibm1051": "hproman8", - - "mac": "macintosh", - "csmacintosh": "macintosh", -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/big5-added.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/big5-added.json deleted file mode 100644 index 3c3d3c2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/big5-added.json +++ /dev/null @@ -1,122 +0,0 @@ -[ -["8740","䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻"], -["8767","綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬"], -["87a1","𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋"], -["8840","㇀",4,"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ"], -["88a1","ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛"], -["8940","𪎩𡅅"], -["8943","攊"], -["8946","丽滝鵎釟"], -["894c","𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮"], -["89a1","琑糼緍楆竉刧"], -["89ab","醌碸酞肼"], -["89b0","贋胶𠧧"], -["89b5","肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁"], -["89c1","溚舾甙"], -["89c5","䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅"], -["8a40","𧶄唥"], -["8a43","𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓"], -["8a64","𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕"], -["8a76","䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯"], -["8aa1","𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱"], -["8aac","䠋𠆩㿺塳𢶍"], -["8ab2","𤗈𠓼𦂗𠽌𠶖啹䂻䎺"], -["8abb","䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃"], -["8ac9","𪘁𠸉𢫏𢳉"], -["8ace","𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻"], -["8adf","𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌"], -["8af6","𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭"], -["8b40","𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹"], -["8b55","𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑"], -["8ba1","𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁"], -["8bde","𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢"], -["8c40","倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋"], -["8ca1","𣏹椙橃𣱣泿"], -["8ca7","爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚"], -["8cc9","顨杫䉶圽"], -["8cce","藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶"], -["8ce6","峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻"], -["8d40","𠮟"], -["8d42","𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱"], -["8da1","㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘"], -["8e40","𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎"], -["8ea1","繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛"], -["8f40","蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖"], -["8fa1","𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起"], -["9040","趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛"], -["90a1","𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜"], -["9140","𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈"], -["91a1","鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨"], -["9240","𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘"], -["92a1","働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃"], -["9340","媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍"], -["93a1","摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋"], -["9440","銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻"], -["94a1","㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡"], -["9540","𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂"], -["95a1","衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰"], -["9640","桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸"], -["96a1","𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉"], -["9740","愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫"], -["97a1","𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎"], -["9840","𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦"], -["98a1","咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃"], -["9940","䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚"], -["99a1","䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿"], -["9a40","鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺"], -["9aa1","黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪"], -["9b40","𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌"], -["9b62","𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎"], -["9ba1","椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊"], -["9c40","嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶"], -["9ca1","㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏"], -["9d40","𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁"], -["9da1","辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢"], -["9e40","𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺"], -["9ea1","鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭"], -["9ead","𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹"], -["9ec5","㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲"], -["9ef5","噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼"], -["9f40","籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱"], -["9f4f","凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰"], -["9fa1","椬叚鰊鴂䰻陁榀傦畆𡝭駚剳"], -["9fae","酙隁酜"], -["9fb2","酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽"], -["9fc1","𤤙盖鮝个𠳔莾衂"], -["9fc9","届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳"], -["9fdb","歒酼龥鮗頮颴骺麨麄煺笔"], -["9fe7","毺蠘罸"], -["9feb","嘠𪙊蹷齓"], -["9ff0","跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇"], -["a040","𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷"], -["a055","𡠻𦸅"], -["a058","詾𢔛"], -["a05b","惽癧髗鵄鍮鮏蟵"], -["a063","蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽"], -["a073","坟慯抦戹拎㩜懢厪𣏵捤栂㗒"], -["a0a1","嵗𨯂迚𨸹"], -["a0a6","僙𡵆礆匲阸𠼻䁥"], -["a0ae","矾"], -["a0b0","糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦"], -["a0d4","覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷"], -["a0e2","罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫"], -["a3c0","␀",31,"␡"], -["c6a1","①",9,"⑴",9,"ⅰ",9,"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー[]✽ぁ",23], -["c740","す",58,"ァアィイ"], -["c7a1","ゥ",81,"А",5,"ЁЖ",4], -["c840","Л",26,"ёж",25,"⇧↸↹㇏𠃌乚𠂊刂䒑"], -["c8a1","龰冈龱𧘇"], -["c8cd","¬¦'"㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣"], -["c8f5","ʃɐɛɔɵœøŋʊɪ"], -["f9fe","■"], -["fa40","𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸"], -["faa1","鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍"], -["fb40","𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙"], -["fba1","𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂"], -["fc40","廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷"], -["fca1","𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝"], -["fd40","𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀"], -["fda1","𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎"], -["fe40","鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌"], -["fea1","𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔"] -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp936.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp936.json deleted file mode 100644 index 49ddb9a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp936.json +++ /dev/null @@ -1,264 +0,0 @@ -[ -["0","\u0000",127,"€"], -["8140","丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪",5,"乲乴",9,"乿",6,"亇亊"], -["8180","亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂",6,"伋伌伒",4,"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢"], -["8240","侤侫侭侰",4,"侶",8,"俀俁係俆俇俈俉俋俌俍俒",4,"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿",11], -["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯",10,"倻倽倿偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦傪傫傭",4,"傳",6,"傼"], -["8340","傽",17,"僐",5,"僗僘僙僛",10,"僨僩僪僫僯僰僱僲僴僶",4,"僼",9,"儈"], -["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦",4,"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒",5], -["8440","凘凙凚凜凞凟凢凣凥",5,"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄",5,"剋剎剏剒剓剕剗剘"], -["8480","剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劥劦劧劮劯劰労",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勡勢勣勥",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"], -["8540","匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"], -["8580","厐",4,"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯",6,"厷厸厹厺厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呥呧呩",7,"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡"], -["8640","咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠",4,"哫哬哯哰哱哴",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唡唥唦"], -["8680","唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣啨啩啫啯",5,"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"喨",8,"喲喴営喸喺喼喿",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸",4,"嗿嘂嘃嘄嘅"], -["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4], -["8780","噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"嚸嚹嚺嚻嚽",12,"囋",8,"囕囖囘囙囜団囥",5,"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國",6], -["8840","園",9,"圝圞圠圡圢圤圥圦圧圫圱圲圴",4,"圼圽圿坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀"], -["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埡埢埣埥",7,"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥",4,"堫",4,"報堲堳場堶",7], -["8940","堾",5,"塅",6,"塎塏塐塒塓塕塖塗塙",4,"塟",5,"塦",4,"塭",16,"塿墂墄墆墇墈墊墋墌"], -["8980","墍",4,"墔",4,"墛墜墝墠",7,"墪",17,"墽墾墿壀壂壃壄壆",10,"壒壓壔壖",13,"壥",5,"壭壯壱売壴壵壷壸壺",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻"], -["8a40","夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛",4,"奡奣奤奦",12,"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦"], -["8a80","妧妬妭妰妱妳",5,"妺妼妽妿",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩姪姫姭",11,"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪",6,"娳娵娷",4,"娽娾娿婁",4,"婇婈婋",9,"婖婗婘婙婛",5], -["8b40","婡婣婤婥婦婨婩婫",8,"婸婹婻婼婽婾媀",17,"媓",6,"媜",13,"媫媬"], -["8b80","媭",4,"媴媶媷媹",4,"媿嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶嬸",7,"孁",6], -["8c40","孈",7,"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏"], -["8c80","寑寔",8,"寠寢寣實寧審",4,"寯寱",6,"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"屰屲",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4], -["8d40","岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮峯峱",9,"峼",4], -["8d80","崁崄崅崈",5,"崏",4,"崕崗崘崙崚崜崝崟",4,"崥崨崪崫崬崯",4,"崵",7,"崿",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"嵪嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"], -["8e40","嶡",21,"嶸",12,"巆",6,"巎",12,"巜巟巠巣巤巪巬巭"], -["8e80","巰巵巶巸",4,"巿帀帄帇帉帊帋帍帎帒帓帗帞",7,"帨",4,"帯帰帲",4,"帹帺帾帿幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨",4,"庮",4,"庴庺庻庼庽庿",6], -["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤"], -["8f80","弨弫弬弮弰弲",6,"弻弽弾弿彁",14,"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬徯",5,"徶徸徹徺徻徾",4,"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇"], -["9040","怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰",4,"怶",4,"怽怾恀恄",6,"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀"], -["9080","悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽",7,"惇惈惉惌",4,"惒惓惔惖惗惙惛惞惡",4,"惪惱惲惵惷惸惻",4,"愂愃愄愅愇愊愋愌愐",4,"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬",18,"慀",6], -["9140","慇慉態慍慏慐慒慓慔慖",6,"慞慟慠慡慣慤慥慦慩",6,"慱慲慳慴慶慸",18,"憌憍憏",4,"憕"], -["9180","憖",6,"憞",8,"憪憫憭",9,"憸",5,"憿懀懁懃",4,"應懌",4,"懓懕",16,"懧",13,"懶",8,"戀",5,"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸",4,"扂扄扅扆扊"], -["9240","扏扐払扖扗扙扚扜",6,"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋",5,"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁"], -["9280","拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳",5,"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖",7,"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙",6,"採掤掦掫掯掱掲掵掶掹掻掽掿揀"], -["9340","揁揂揃揅揇揈揊揋揌揑揓揔揕揗",6,"揟揢揤",4,"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆",4,"損搎搑搒搕",5,"搝搟搢搣搤"], -["9380","搥搧搨搩搫搮",5,"搵",4,"搻搼搾摀摂摃摉摋",6,"摓摕摖摗摙",4,"摟",7,"摨摪摫摬摮",9,"摻",6,"撃撆撈",8,"撓撔撗撘撚撛撜撝撟",4,"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆",6,"擏擑擓擔擕擖擙據"], -["9440","擛擜擝擟擠擡擣擥擧",24,"攁",7,"攊",7,"攓",4,"攙",8], -["9480","攢攣攤攦",4,"攬攭攰攱攲攳攷攺攼攽敀",4,"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數",14,"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱",7,"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘",7,"旡旣旤旪旫"], -["9540","旲旳旴旵旸旹旻",4,"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷",4,"昽昿晀時晄",6,"晍晎晐晑晘"], -["9580","晙晛晜晝晞晠晢晣晥晧晩",4,"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘",4,"暞",8,"暩",4,"暯",4,"暵暶暷暸暺暻暼暽暿",25,"曚曞",7,"曧曨曪",5,"曱曵曶書曺曻曽朁朂會"], -["9640","朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠",5,"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗",4,"杝杢杣杤杦杧杫杬杮東杴杶"], -["9680","杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹",7,"柂柅",9,"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵",7,"柾栁栂栃栄栆栍栐栒栔栕栘",4,"栞栟栠栢",6,"栫",6,"栴栵栶栺栻栿桇桋桍桏桒桖",5], -["9740","桜桝桞桟桪桬",7,"桵桸",8,"梂梄梇",7,"梐梑梒梔梕梖梘",9,"梣梤梥梩梪梫梬梮梱梲梴梶梷梸"], -["9780","梹",6,"棁棃",5,"棊棌棎棏棐棑棓棔棖棗棙棛",4,"棡棢棤",9,"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆",4,"椌椏椑椓",11,"椡椢椣椥",7,"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃",16,"楕楖楘楙楛楜楟"], -["9840","楡楢楤楥楧楨楩楪楬業楯楰楲",4,"楺楻楽楾楿榁榃榅榊榋榌榎",5,"榖榗榙榚榝",9,"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽"], -["9880","榾榿槀槂",7,"構槍槏槑槒槓槕",5,"槜槝槞槡",11,"槮槯槰槱槳",9,"槾樀",9,"樋",11,"標",5,"樠樢",5,"権樫樬樭樮樰樲樳樴樶",6,"樿",4,"橅橆橈",7,"橑",6,"橚"], -["9940","橜",4,"橢橣橤橦",10,"橲",6,"橺橻橽橾橿檁檂檃檅",8,"檏檒",4,"檘",7,"檡",5], -["9980","檧檨檪檭",114,"欥欦欨",6], -["9a40","欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍",11,"歚",7,"歨歩歫",13,"歺歽歾歿殀殅殈"], -["9a80","殌殎殏殐殑殔殕殗殘殙殜",4,"殢",7,"殫",7,"殶殸",6,"毀毃毄毆",4,"毌毎毐毑毘毚毜",4,"毢",7,"毬毭毮毰毱毲毴毶毷毸毺毻毼毾",6,"氈",4,"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋",4,"汑汒汓汖汘"], -["9b40","汙汚汢汣汥汦汧汫",4,"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘"], -["9b80","泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟",5,"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽",4,"涃涄涆涇涊涋涍涏涐涒涖",4,"涜涢涥涬涭涰涱涳涴涶涷涹",5,"淁淂淃淈淉淊"], -["9c40","淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽",7,"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵"], -["9c80","渶渷渹渻",7,"湅",7,"湏湐湑湒湕湗湙湚湜湝湞湠",10,"湬湭湯",14,"満溁溂溄溇溈溊",4,"溑",6,"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪",5], -["9d40","滰滱滲滳滵滶滷滸滺",7,"漃漄漅漇漈漊",4,"漐漑漒漖",9,"漡漢漣漥漦漧漨漬漮漰漲漴漵漷",6,"漿潀潁潂"], -["9d80","潃潄潅潈潉潊潌潎",9,"潙潚潛潝潟潠潡潣潤潥潧",5,"潯潰潱潳潵潶潷潹潻潽",6,"澅澆澇澊澋澏",12,"澝澞澟澠澢",4,"澨",10,"澴澵澷澸澺",5,"濁濃",5,"濊",6,"濓",10,"濟濢濣濤濥"], -["9e40","濦",7,"濰",32,"瀒",7,"瀜",6,"瀤",6], -["9e80","瀫",9,"瀶瀷瀸瀺",17,"灍灎灐",13,"灟",11,"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞",12,"炰炲炴炵炶為炾炿烄烅烆烇烉烋",12,"烚"], -["9f40","烜烝烞烠烡烢烣烥烪烮烰",6,"烸烺烻烼烾",10,"焋",4,"焑焒焔焗焛",10,"焧",7,"焲焳焴"], -["9f80","焵焷",13,"煆煇煈煉煋煍煏",12,"煝煟",4,"煥煩",4,"煯煰煱煴煵煶煷煹煻煼煾",5,"熅",4,"熋熌熍熎熐熑熒熓熕熖熗熚",4,"熡",6,"熩熪熫熭",5,"熴熶熷熸熺",8,"燄",9,"燏",4], -["a040","燖",9,"燡燢燣燤燦燨",5,"燯",9,"燺",11,"爇",19], -["a080","爛爜爞",9,"爩爫爭爮爯爲爳爴爺爼爾牀",6,"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅",4,"犌犎犐犑犓",11,"犠",11,"犮犱犲犳犵犺",6,"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛"], -["a1a1"," 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈",7,"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓"], -["a2a1","ⅰ",9], -["a2b1","⒈",19,"⑴",19,"①",9], -["a2e5","㈠",9], -["a2f1","Ⅰ",11], -["a3a1","!"#¥%",88," ̄"], -["a4a1","ぁ",82], -["a5a1","ァ",85], -["a6a1","Α",16,"Σ",6], -["a6c1","α",16,"σ",6], -["a6e0","︵︶︹︺︿﹀︽︾﹁﹂﹃﹄"], -["a6ee","︻︼︷︸︱"], -["a6f4","︳︴"], -["a7a1","А",5,"ЁЖ",25], -["a7d1","а",5,"ёж",25], -["a840","ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═",35,"▁",6], -["a880","█",7,"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞"], -["a8a1","āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ"], -["a8bd","ńň"], -["a8c0","ɡ"], -["a8c5","ㄅ",36], -["a940","〡",8,"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦"], -["a959","℡㈱"], -["a95c","‐"], -["a960","ー゛゜ヽヾ〆ゝゞ﹉",9,"﹔﹕﹖﹗﹙",8], -["a980","﹢",4,"﹨﹩﹪﹫"], -["a996","〇"], -["a9a4","─",75], -["aa40","狜狝狟狢",5,"狪狫狵狶狹狽狾狿猀猂猄",5,"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀",8], -["aa80","獉獊獋獌獎獏獑獓獔獕獖獘",7,"獡",10,"獮獰獱"], -["ab40","獲",11,"獿",4,"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣",5,"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃",4], -["ab80","珋珌珎珒",6,"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳",4], -["ac40","珸",10,"琄琇琈琋琌琍琎琑",8,"琜",5,"琣琤琧琩琫琭琯琱琲琷",4,"琽琾琿瑀瑂",11], -["ac80","瑎",6,"瑖瑘瑝瑠",12,"瑮瑯瑱",4,"瑸瑹瑺"], -["ad40","瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑",10,"璝璟",7,"璪",15,"璻",12], -["ad80","瓈",9,"瓓",8,"瓝瓟瓡瓥瓧",6,"瓰瓱瓲"], -["ae40","瓳瓵瓸",6,"甀甁甂甃甅",7,"甎甐甒甔甕甖甗甛甝甞甠",4,"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘"], -["ae80","畝",7,"畧畨畩畫",6,"畳畵當畷畺",4,"疀疁疂疄疅疇"], -["af40","疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦",4,"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇"], -["af80","瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄"], -["b040","癅",6,"癎",5,"癕癗",4,"癝癟癠癡癢癤",6,"癬癭癮癰",7,"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛"], -["b080","皜",7,"皥",8,"皯皰皳皵",9,"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥"], -["b140","盄盇盉盋盌盓盕盙盚盜盝盞盠",4,"盦",7,"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎",10,"眛眜眝眞眡眣眤眥眧眪眫"], -["b180","眬眮眰",4,"眹眻眽眾眿睂睄睅睆睈",7,"睒",7,"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳"], -["b240","睝睞睟睠睤睧睩睪睭",11,"睺睻睼瞁瞂瞃瞆",5,"瞏瞐瞓",11,"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶",4], -["b280","瞼瞾矀",12,"矎",8,"矘矙矚矝",4,"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖"], -["b340","矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃",5,"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚"], -["b380","硛硜硞",11,"硯",7,"硸硹硺硻硽",6,"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚"], -["b440","碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨",7,"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚",9], -["b480","磤磥磦磧磩磪磫磭",4,"磳磵磶磸磹磻",5,"礂礃礄礆",6,"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮"], -["b540","礍",5,"礔",9,"礟",4,"礥",14,"礵",4,"礽礿祂祃祄祅祇祊",8,"祔祕祘祙祡祣"], -["b580","祤祦祩祪祫祬祮祰",6,"祹祻",4,"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠"], -["b640","禓",6,"禛",11,"禨",10,"禴",4,"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙",5,"秠秡秢秥秨秪"], -["b680","秬秮秱",6,"秹秺秼秾秿稁稄稅稇稈稉稊稌稏",4,"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二"], -["b740","稝稟稡稢稤",14,"稴稵稶稸稺稾穀",5,"穇",9,"穒",4,"穘",16], -["b780","穩",6,"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服"], -["b840","窣窤窧窩窪窫窮",4,"窴",10,"竀",10,"竌",9,"竗竘竚竛竜竝竡竢竤竧",5,"竮竰竱竲竳"], -["b880","竴",4,"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹"], -["b940","笯笰笲笴笵笶笷笹笻笽笿",5,"筆筈筊筍筎筓筕筗筙筜筞筟筡筣",10,"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆",6,"箎箏"], -["b980","箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹",7,"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈"], -["ba40","篅篈築篊篋篍篎篏篐篒篔",4,"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲",4,"篸篹篺篻篽篿",7,"簈簉簊簍簎簐",5,"簗簘簙"], -["ba80","簚",4,"簠",5,"簨簩簫",12,"簹",5,"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖"], -["bb40","籃",9,"籎",36,"籵",5,"籾",9], -["bb80","粈粊",6,"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴",4,"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕"], -["bc40","粿糀糂糃糄糆糉糋糎",6,"糘糚糛糝糞糡",6,"糩",5,"糰",7,"糹糺糼",13,"紋",5], -["bc80","紑",14,"紡紣紤紥紦紨紩紪紬紭紮細",6,"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件"], -["bd40","紷",54,"絯",7], -["bd80","絸",32,"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸"], -["be40","継",12,"綧",6,"綯",42], -["be80","線",32,"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻"], -["bf40","緻",62], -["bf80","縺縼",4,"繂",4,"繈",21,"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀"], -["c040","繞",35,"纃",23,"纜纝纞"], -["c080","纮纴纻纼绖绤绬绹缊缐缞缷缹缻",6,"罃罆",9,"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐"], -["c140","罖罙罛罜罝罞罠罣",4,"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂",7,"羋羍羏",4,"羕",4,"羛羜羠羢羣羥羦羨",6,"羱"], -["c180","羳",4,"羺羻羾翀翂翃翄翆翇翈翉翋翍翏",4,"翖翗翙",5,"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿"], -["c240","翤翧翨翪翫翬翭翯翲翴",6,"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫",5,"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗"], -["c280","聙聛",13,"聫",5,"聲",11,"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫"], -["c340","聾肁肂肅肈肊肍",5,"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇",4,"胏",6,"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋"], -["c380","脌脕脗脙脛脜脝脟",12,"脭脮脰脳脴脵脷脹",4,"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸"], -["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膥"], -["c480","膧膩膫",7,"膴",5,"膼膽膾膿臄臅臇臈臉臋臍",6,"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁"], -["c540","臔",14,"臤臥臦臨臩臫臮",4,"臵",5,"臽臿舃與",4,"舎舏舑舓舕",5,"舝舠舤舥舦舧舩舮舲舺舼舽舿"], -["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗"], -["c640","艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸"], -["c680","苺苼",4,"茊茋茍茐茒茓茖茘茙茝",9,"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐"], -["c740","茾茿荁荂荄荅荈荊",4,"荓荕",4,"荝荢荰",6,"荹荺荾",6,"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡",6,"莬莭莮"], -["c780","莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠"], -["c840","菮華菳",4,"菺菻菼菾菿萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"萲",5,"萹萺萻萾",7,"葇葈葉"], -["c880","葊",6,"葒",4,"葘葝葞葟葠葢葤",4,"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁"], -["c940","葽",4,"蒃蒄蒅蒆蒊蒍蒏",7,"蒘蒚蒛蒝蒞蒟蒠蒢",12,"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗"], -["c980","蓘",4,"蓞蓡蓢蓤蓧",4,"蓭蓮蓯蓱",10,"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳"], -["ca40","蔃",8,"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢",8,"蔭",9,"蔾",4,"蕄蕅蕆蕇蕋",10], -["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕥蕦蕧蕩",8,"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱"], -["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薥薦薧薩薫薬薭薱",5,"薸薺",6,"藂",6,"藊",4,"藑藒"], -["cb80","藔藖",5,"藝",6,"藥藦藧藨藪",14,"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔"], -["cc40","藹藺藼藽藾蘀",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"蘨蘪",13,"蘹蘺蘻蘽蘾蘿虀"], -["cc80","虁",11,"虒虓處",4,"虛虜虝號虠虡虣",7,"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃"], -["cd40","虭虯虰虲",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"], -["cd80","蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威"], -["ce40","蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"蝡蝢蝦",7,"蝯蝱蝲蝳蝵"], -["ce80","蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺"], -["cf40","螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯",9], -["cf80","蟺蟻蟼蟽蟿蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓"], -["d040","蠤",13,"蠳",5,"蠺蠻蠽蠾蠿衁衂衃衆",5,"衎",5,"衕衖衘衚",6,"衦衧衪衭衯衱衳衴衵衶衸衹衺"], -["d080","衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗",4,"袝",4,"袣袥",5,"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄"], -["d140","袬袮袯袰袲",4,"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚",4,"裠裡裦裧裩",6,"裲裵裶裷裺裻製裿褀褁褃",5], -["d180","褉褋",4,"褑褔",4,"褜",4,"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶"], -["d240","褸",8,"襂襃襅",24,"襠",5,"襧",19,"襼"], -["d280","襽襾覀覂覄覅覇",26,"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐"], -["d340","覢",30,"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴",6], -["d380","觻",4,"訁",5,"計",21,"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉"], -["d440","訞",31,"訿",8,"詉",21], -["d480","詟",25,"詺",6,"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧"], -["d540","誁",7,"誋",7,"誔",46], -["d580","諃",32,"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政"], -["d640","諤",34,"謈",27], -["d680","謤謥謧",30,"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑"], -["d740","譆",31,"譧",4,"譭",25], -["d780","讇",24,"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"], -["d840","谸",8,"豂豃豄豅豈豊豋豍",7,"豖豗豘豙豛",5,"豣",6,"豬",6,"豴豵豶豷豻",6,"貃貄貆貇"], -["d880","貈貋貍",6,"貕貖貗貙",20,"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝"], -["d940","貮",62], -["d980","賭",32,"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼"], -["da40","贎",14,"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸",8,"趂趃趆趇趈趉趌",4,"趒趓趕",9,"趠趡"], -["da80","趢趤",12,"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺"], -["db40","跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾",6,"踆踇踈踋踍踎踐踑踒踓踕",7,"踠踡踤",4,"踫踭踰踲踳踴踶踷踸踻踼踾"], -["db80","踿蹃蹅蹆蹌",4,"蹓",5,"蹚",11,"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝"], -["dc40","蹳蹵蹷",4,"蹽蹾躀躂躃躄躆躈",6,"躑躒躓躕",6,"躝躟",11,"躭躮躰躱躳",6,"躻",7], -["dc80","軃",10,"軏",21,"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥"], -["dd40","軥",62], -["dd80","輤",32,"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺"], -["de40","轅",32,"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆"], -["de80","迉",4,"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖"], -["df40","這逜連逤逥逧",5,"逰",4,"逷逹逺逽逿遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適遪遫遬遯",4,"遶",6,"遾邁"], -["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼"], -["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅",19,"鄚鄛鄜"], -["e080","鄝鄟鄠鄡鄤",10,"鄰鄲",6,"鄺",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼"], -["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷醸醹醻"], -["e180","醼",10,"釈釋釐釒",9,"針",8,"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺"], -["e240","釦",62], -["e280","鈥",32,"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧",5,"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂"], -["e340","鉆",45,"鉵",16], -["e380","銆",7,"銏",24,"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾"], -["e440","銨",5,"銯",24,"鋉",31], -["e480","鋩",32,"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑"], -["e540","錊",51,"錿",10], -["e580","鍊",31,"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣"], -["e640","鍬",34,"鎐",27], -["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩"], -["e740","鏎",7,"鏗",54], -["e780","鐎",32,"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡",6,"缪缫缬缭缯",4,"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬"], -["e840","鐯",14,"鐿",43,"鑬鑭鑮鑯"], -["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹"], -["e940","锧锳锽镃镈镋镕镚镠镮镴镵長",7,"門",42], -["e980","閫",32,"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋"], -["ea40","闌",27,"闬闿阇阓阘阛阞阠阣",6,"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗"], -["ea80","陘陙陚陜陝陞陠陣陥陦陫陭",4,"陳陸",12,"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰"], -["eb40","隌階隑隒隓隕隖隚際隝",9,"隨",7,"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖",9,"雡",6,"雫"], -["eb80","雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻"], -["ec40","霡",8,"霫霬霮霯霱霳",4,"霺霻霼霽霿",18,"靔靕靗靘靚靜靝靟靣靤靦靧靨靪",7], -["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐"], -["ed40","鞞鞟鞡鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46], -["ed80","韤韥韨韮",4,"韴韷",23,"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨"], -["ee40","頏",62], -["ee80","顎",32,"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶",4,"钼钽钿铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪"], -["ef40","顯",5,"颋颎颒颕颙颣風",37,"飏飐飔飖飗飛飜飝飠",4], -["ef80","飥飦飩",30,"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤",8,"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔"], -["f040","餈",4,"餎餏餑",28,"餯",26], -["f080","饊",9,"饖",12,"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨",4,"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙"], -["f140","馌馎馚",10,"馦馧馩",47], -["f180","駙",32,"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃"], -["f240","駺",62], -["f280","騹",32,"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒"], -["f340","驚",17,"驲骃骉骍骎骔骕骙骦骩",6,"骲骳骴骵骹骻骽骾骿髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"], -["f380","髝髞髠髢髣髤髥髧髨髩髪髬髮髰",8,"髺髼",6,"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋"], -["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬡鬢鬤",10,"鬰鬱鬳",7,"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕",5], -["f480","魛",32,"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤"], -["f540","魼",62], -["f580","鮻",32,"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜"], -["f640","鯜",62], -["f680","鰛",32,"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲥",4,"鲫鲭鲮鲰",7,"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋"], -["f740","鰼",62], -["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳡鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"], -["f840","鳣",62], -["f880","鴢",32], -["f940","鵃",62], -["f980","鶂",32], -["fa40","鶣",62], -["fa80","鷢",32], -["fb40","鸃",27,"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴",9,"麀"], -["fb80","麁麃麄麅麆麉麊麌",5,"麔",8,"麞麠",5,"麧麨麩麪"], -["fc40","麫",8,"麵麶麷麹麺麼麿",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰",8,"黺黽黿",6], -["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼡鼣",8,"鼭鼮鼰鼱"], -["fd40","鼲",4,"鼸鼺鼼鼿",4,"齅",10,"齒",38], -["fd80","齹",5,"龁龂龍",11,"龜龝龞龡",4,"郎凉秊裏隣"], -["fe40","兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩"] -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp949.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp949.json deleted file mode 100644 index 2022a007..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp949.json +++ /dev/null @@ -1,273 +0,0 @@ -[ -["0","\u0000",127], -["8141","갂갃갅갆갋",4,"갘갞갟갡갢갣갥",6,"갮갲갳갴"], -["8161","갵갶갷갺갻갽갾갿걁",9,"걌걎",5,"걕"], -["8181","걖걗걙걚걛걝",18,"걲걳걵걶걹걻",4,"겂겇겈겍겎겏겑겒겓겕",6,"겞겢",5,"겫겭겮겱",6,"겺겾겿곀곂곃곅곆곇곉곊곋곍",7,"곖곘",7,"곢곣곥곦곩곫곭곮곲곴곷",4,"곾곿괁괂괃괅괇",4,"괎괐괒괓"], -["8241","괔괕괖괗괙괚괛괝괞괟괡",7,"괪괫괮",5], -["8261","괶괷괹괺괻괽",6,"굆굈굊",5,"굑굒굓굕굖굗"], -["8281","굙",7,"굢굤",7,"굮굯굱굲굷굸굹굺굾궀궃",4,"궊궋궍궎궏궑",10,"궞",5,"궥",17,"궸",7,"귂귃귅귆귇귉",6,"귒귔",7,"귝귞귟귡귢귣귥",18], -["8341","귺귻귽귾긂",5,"긊긌긎",5,"긕",7], -["8361","긝",18,"긲긳긵긶긹긻긼"], -["8381","긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗",4,"깞깢깣깤깦깧깪깫깭깮깯깱",6,"깺깾",5,"꺆",5,"꺍",46,"꺿껁껂껃껅",6,"껎껒",5,"껚껛껝",8], -["8441","껦껧껩껪껬껮",5,"껵껶껷껹껺껻껽",8], -["8461","꼆꼉꼊꼋꼌꼎꼏꼑",18], -["8481","꼤",7,"꼮꼯꼱꼳꼵",6,"꼾꽀꽄꽅꽆꽇꽊",5,"꽑",10,"꽞",5,"꽦",18,"꽺",5,"꾁꾂꾃꾅꾆꾇꾉",6,"꾒꾓꾔꾖",5,"꾝",26,"꾺꾻꾽꾾"], -["8541","꾿꿁",5,"꿊꿌꿏",4,"꿕",6,"꿝",4], -["8561","꿢",5,"꿪",5,"꿲꿳꿵꿶꿷꿹",6,"뀂뀃"], -["8581","뀅",6,"뀍뀎뀏뀑뀒뀓뀕",6,"뀞",9,"뀩",26,"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞",29,"끾끿낁낂낃낅",6,"낎낐낒",5,"낛낝낞낣낤"], -["8641","낥낦낧낪낰낲낶낷낹낺낻낽",6,"냆냊",5,"냒"], -["8661","냓냕냖냗냙",6,"냡냢냣냤냦",10], -["8681","냱",22,"넊넍넎넏넑넔넕넖넗넚넞",4,"넦넧넩넪넫넭",6,"넶넺",5,"녂녃녅녆녇녉",6,"녒녓녖녗녙녚녛녝녞녟녡",22,"녺녻녽녾녿놁놃",4,"놊놌놎놏놐놑놕놖놗놙놚놛놝"], -["8741","놞",9,"놩",15], -["8761","놹",18,"뇍뇎뇏뇑뇒뇓뇕"], -["8781","뇖",5,"뇞뇠",7,"뇪뇫뇭뇮뇯뇱",7,"뇺뇼뇾",5,"눆눇눉눊눍",6,"눖눘눚",5,"눡",18,"눵",6,"눽",26,"뉙뉚뉛뉝뉞뉟뉡",6,"뉪",4], -["8841","뉯",4,"뉶",5,"뉽",6,"늆늇늈늊",4], -["8861","늏늒늓늕늖늗늛",4,"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷"], -["8881","늸",15,"닊닋닍닎닏닑닓",4,"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉",6,"댒댖",5,"댝",54,"덗덙덚덝덠덡덢덣"], -["8941","덦덨덪덬덭덯덲덳덵덶덷덹",6,"뎂뎆",5,"뎍"], -["8961","뎎뎏뎑뎒뎓뎕",10,"뎢",5,"뎩뎪뎫뎭"], -["8981","뎮",21,"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩",18,"돽",18,"됑",6,"됙됚됛됝됞됟됡",6,"됪됬",7,"됵",15], -["8a41","둅",10,"둒둓둕둖둗둙",6,"둢둤둦"], -["8a61","둧",4,"둭",18,"뒁뒂"], -["8a81","뒃",4,"뒉",19,"뒞",5,"뒥뒦뒧뒩뒪뒫뒭",7,"뒶뒸뒺",5,"듁듂듃듅듆듇듉",6,"듑듒듓듔듖",5,"듞듟듡듢듥듧",4,"듮듰듲",5,"듹",26,"딖딗딙딚딝"], -["8b41","딞",5,"딦딫",4,"딲딳딵딶딷딹",6,"땂땆"], -["8b61","땇땈땉땊땎땏땑땒땓땕",6,"땞땢",8], -["8b81","땫",52,"떢떣떥떦떧떩떬떭떮떯떲떶",4,"떾떿뗁뗂뗃뗅",6,"뗎뗒",5,"뗙",18,"뗭",18], -["8c41","똀",15,"똒똓똕똖똗똙",4], -["8c61","똞",6,"똦",5,"똭",6,"똵",5], -["8c81","똻",12,"뙉",26,"뙥뙦뙧뙩",50,"뚞뚟뚡뚢뚣뚥",5,"뚭뚮뚯뚰뚲",16], -["8d41","뛃",16,"뛕",8], -["8d61","뛞",17,"뛱뛲뛳뛵뛶뛷뛹뛺"], -["8d81","뛻",4,"뜂뜃뜄뜆",33,"뜪뜫뜭뜮뜱",6,"뜺뜼",7,"띅띆띇띉띊띋띍",6,"띖",9,"띡띢띣띥띦띧띩",6,"띲띴띶",5,"띾띿랁랂랃랅",6,"랎랓랔랕랚랛랝랞"], -["8e41","랟랡",6,"랪랮",5,"랶랷랹",8], -["8e61","럂",4,"럈럊",19], -["8e81","럞",13,"럮럯럱럲럳럵",6,"럾렂",4,"렊렋렍렎렏렑",6,"렚렜렞",5,"렦렧렩렪렫렭",6,"렶렺",5,"롁롂롃롅",11,"롒롔",7,"롞롟롡롢롣롥",6,"롮롰롲",5,"롹롺롻롽",7], -["8f41","뢅",7,"뢎",17], -["8f61","뢠",7,"뢩",6,"뢱뢲뢳뢵뢶뢷뢹",4], -["8f81","뢾뢿룂룄룆",5,"룍룎룏룑룒룓룕",7,"룞룠룢",5,"룪룫룭룮룯룱",6,"룺룼룾",5,"뤅",18,"뤙",6,"뤡",26,"뤾뤿륁륂륃륅",6,"륍륎륐륒",5], -["9041","륚륛륝륞륟륡",6,"륪륬륮",5,"륶륷륹륺륻륽"], -["9061","륾",5,"릆릈릋릌릏",15], -["9081","릟",12,"릮릯릱릲릳릵",6,"릾맀맂",5,"맊맋맍맓",4,"맚맜맟맠맢맦맧맩맪맫맭",6,"맶맻",4,"먂",5,"먉",11,"먖",33,"먺먻먽먾먿멁멃멄멅멆"], -["9141","멇멊멌멏멐멑멒멖멗멙멚멛멝",6,"멦멪",5], -["9161","멲멳멵멶멷멹",9,"몆몈몉몊몋몍",5], -["9181","몓",20,"몪몭몮몯몱몳",4,"몺몼몾",5,"뫅뫆뫇뫉",14,"뫚",33,"뫽뫾뫿묁묂묃묅",7,"묎묐묒",5,"묙묚묛묝묞묟묡",6], -["9241","묨묪묬",7,"묷묹묺묿",4,"뭆뭈뭊뭋뭌뭎뭑뭒"], -["9261","뭓뭕뭖뭗뭙",7,"뭢뭤",7,"뭭",4], -["9281","뭲",21,"뮉뮊뮋뮍뮎뮏뮑",18,"뮥뮦뮧뮩뮪뮫뮭",6,"뮵뮶뮸",7,"믁믂믃믅믆믇믉",6,"믑믒믔",35,"믺믻믽믾밁"], -["9341","밃",4,"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵"], -["9361","밶밷밹",6,"뱂뱆뱇뱈뱊뱋뱎뱏뱑",8], -["9381","뱚뱛뱜뱞",37,"벆벇벉벊벍벏",4,"벖벘벛",4,"벢벣벥벦벩",6,"벲벶",5,"벾벿볁볂볃볅",7,"볎볒볓볔볖볗볙볚볛볝",22,"볷볹볺볻볽"], -["9441","볾",5,"봆봈봊",5,"봑봒봓봕",8], -["9461","봞",5,"봥",6,"봭",12], -["9481","봺",5,"뵁",6,"뵊뵋뵍뵎뵏뵑",6,"뵚",9,"뵥뵦뵧뵩",22,"붂붃붅붆붋",4,"붒붔붖붗붘붛붝",6,"붥",10,"붱",6,"붹",24], -["9541","뷒뷓뷖뷗뷙뷚뷛뷝",11,"뷪",5,"뷱"], -["9561","뷲뷳뷵뷶뷷뷹",6,"븁븂븄븆",5,"븎븏븑븒븓"], -["9581","븕",6,"븞븠",35,"빆빇빉빊빋빍빏",4,"빖빘빜빝빞빟빢빣빥빦빧빩빫",4,"빲빶",4,"빾빿뺁뺂뺃뺅",6,"뺎뺒",5,"뺚",13,"뺩",14], -["9641","뺸",23,"뻒뻓"], -["9661","뻕뻖뻙",6,"뻡뻢뻦",5,"뻭",8], -["9681","뻶",10,"뼂",5,"뼊",13,"뼚뼞",33,"뽂뽃뽅뽆뽇뽉",6,"뽒뽓뽔뽖",44], -["9741","뾃",16,"뾕",8], -["9761","뾞",17,"뾱",7], -["9781","뾹",11,"뿆",5,"뿎뿏뿑뿒뿓뿕",6,"뿝뿞뿠뿢",89,"쀽쀾쀿"], -["9841","쁀",16,"쁒",5,"쁙쁚쁛"], -["9861","쁝쁞쁟쁡",6,"쁪",15], -["9881","쁺",21,"삒삓삕삖삗삙",6,"삢삤삦",5,"삮삱삲삷",4,"삾샂샃샄샆샇샊샋샍샎샏샑",6,"샚샞",5,"샦샧샩샪샫샭",6,"샶샸샺",5,"섁섂섃섅섆섇섉",6,"섑섒섓섔섖",5,"섡섢섥섨섩섪섫섮"], -["9941","섲섳섴섵섷섺섻섽섾섿셁",6,"셊셎",5,"셖셗"], -["9961","셙셚셛셝",6,"셦셪",5,"셱셲셳셵셶셷셹셺셻"], -["9981","셼",8,"솆",5,"솏솑솒솓솕솗",4,"솞솠솢솣솤솦솧솪솫솭솮솯솱",11,"솾",5,"쇅쇆쇇쇉쇊쇋쇍",6,"쇕쇖쇙",6,"쇡쇢쇣쇥쇦쇧쇩",6,"쇲쇴",7,"쇾쇿숁숂숃숅",6,"숎숐숒",5,"숚숛숝숞숡숢숣"], -["9a41","숤숥숦숧숪숬숮숰숳숵",16], -["9a61","쉆쉇쉉",6,"쉒쉓쉕쉖쉗쉙",6,"쉡쉢쉣쉤쉦"], -["9a81","쉧",4,"쉮쉯쉱쉲쉳쉵",6,"쉾슀슂",5,"슊",5,"슑",6,"슙슚슜슞",5,"슦슧슩슪슫슮",5,"슶슸슺",33,"싞싟싡싢싥",5,"싮싰싲싳싴싵싷싺싽싾싿쌁",6,"쌊쌋쌎쌏"], -["9b41","쌐쌑쌒쌖쌗쌙쌚쌛쌝",6,"쌦쌧쌪",8], -["9b61","쌳",17,"썆",7], -["9b81","썎",25,"썪썫썭썮썯썱썳",4,"썺썻썾",5,"쎅쎆쎇쎉쎊쎋쎍",50,"쏁",22,"쏚"], -["9c41","쏛쏝쏞쏡쏣",4,"쏪쏫쏬쏮",5,"쏶쏷쏹",5], -["9c61","쏿",8,"쐉",6,"쐑",9], -["9c81","쐛",8,"쐥",6,"쐭쐮쐯쐱쐲쐳쐵",6,"쐾",9,"쑉",26,"쑦쑧쑩쑪쑫쑭",6,"쑶쑷쑸쑺",5,"쒁",18,"쒕",6,"쒝",12], -["9d41","쒪",13,"쒹쒺쒻쒽",8], -["9d61","쓆",25], -["9d81","쓠",8,"쓪",5,"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂",9,"씍씎씏씑씒씓씕",6,"씝",10,"씪씫씭씮씯씱",6,"씺씼씾",5,"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩",6,"앲앶",5,"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔"], -["9e41","얖얙얚얛얝얞얟얡",7,"얪",9,"얶"], -["9e61","얷얺얿",4,"엋엍엏엒엓엕엖엗엙",6,"엢엤엦엧"], -["9e81","엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑",6,"옚옝",6,"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉",6,"왒왖",5,"왞왟왡",10,"왭왮왰왲",5,"왺왻왽왾왿욁",6,"욊욌욎",5,"욖욗욙욚욛욝",6,"욦"], -["9f41","욨욪",5,"욲욳욵욶욷욻",4,"웂웄웆",5,"웎"], -["9f61","웏웑웒웓웕",6,"웞웟웢",5,"웪웫웭웮웯웱웲"], -["9f81","웳",4,"웺웻웼웾",5,"윆윇윉윊윋윍",6,"윖윘윚",5,"윢윣윥윦윧윩",6,"윲윴윶윸윹윺윻윾윿읁읂읃읅",4,"읋읎읐읙읚읛읝읞읟읡",6,"읩읪읬",7,"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛",4,"잢잧",4,"잮잯잱잲잳잵잶잷"], -["a041","잸잹잺잻잾쟂",5,"쟊쟋쟍쟏쟑",6,"쟙쟚쟛쟜"], -["a061","쟞",5,"쟥쟦쟧쟩쟪쟫쟭",13], -["a081","쟻",4,"젂젃젅젆젇젉젋",4,"젒젔젗",4,"젞젟젡젢젣젥",6,"젮젰젲",5,"젹젺젻젽젾젿졁",6,"졊졋졎",5,"졕",26,"졲졳졵졶졷졹졻",4,"좂좄좈좉좊좎",5,"좕",7,"좞좠좢좣좤"], -["a141","좥좦좧좩",18,"좾좿죀죁"], -["a161","죂죃죅죆죇죉죊죋죍",6,"죖죘죚",5,"죢죣죥"], -["a181","죦",14,"죶",5,"죾죿줁줂줃줇",4,"줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈",9,"±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬"], -["a241","줐줒",5,"줙",18], -["a261","줭",6,"줵",18], -["a281","쥈",7,"쥒쥓쥕쥖쥗쥙",6,"쥢쥤",7,"쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®"], -["a341","쥱쥲쥳쥵",6,"쥽",10,"즊즋즍즎즏"], -["a361","즑",6,"즚즜즞",16], -["a381","즯",16,"짂짃짅짆짉짋",4,"짒짔짗짘짛!",58,"₩]",32," ̄"], -["a441","짞짟짡짣짥짦짨짩짪짫짮짲",5,"짺짻짽짾짿쨁쨂쨃쨄"], -["a461","쨅쨆쨇쨊쨎",5,"쨕쨖쨗쨙",12], -["a481","쨦쨧쨨쨪",28,"ㄱ",93], -["a541","쩇",4,"쩎쩏쩑쩒쩓쩕",6,"쩞쩢",5,"쩩쩪"], -["a561","쩫",17,"쩾",5,"쪅쪆"], -["a581","쪇",16,"쪙",14,"ⅰ",9], -["a5b0","Ⅰ",9], -["a5c1","Α",16,"Σ",6], -["a5e1","α",16,"σ",6], -["a641","쪨",19,"쪾쪿쫁쫂쫃쫅"], -["a661","쫆",5,"쫎쫐쫒쫔쫕쫖쫗쫚",5,"쫡",6], -["a681","쫨쫩쫪쫫쫭",6,"쫵",18,"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃",7], -["a741","쬋",4,"쬑쬒쬓쬕쬖쬗쬙",6,"쬢",7], -["a761","쬪",22,"쭂쭃쭄"], -["a781","쭅쭆쭇쭊쭋쭍쭎쭏쭑",6,"쭚쭛쭜쭞",5,"쭥",7,"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙",9,"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰",9,"㎀",4,"㎺",5,"㎐",4,"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆"], -["a841","쭭",10,"쭺",14], -["a861","쮉",18,"쮝",6], -["a881","쮤",19,"쮹",11,"ÆЪĦ"], -["a8a6","IJ"], -["a8a8","ĿŁØŒºÞŦŊ"], -["a8b1","㉠",27,"ⓐ",25,"①",14,"½⅓⅔¼¾⅛⅜⅝⅞"], -["a941","쯅",14,"쯕",10], -["a961","쯠쯡쯢쯣쯥쯦쯨쯪",18], -["a981","쯽",14,"찎찏찑찒찓찕",6,"찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀",27,"⒜",25,"⑴",14,"¹²³⁴ⁿ₁₂₃₄"], -["aa41","찥찦찪찫찭찯찱",6,"찺찿",4,"챆챇챉챊챋챍챎"], -["aa61","챏",4,"챖챚",5,"챡챢챣챥챧챩",6,"챱챲"], -["aa81","챳챴챶",29,"ぁ",82], -["ab41","첔첕첖첗첚첛첝첞첟첡",6,"첪첮",5,"첶첷첹"], -["ab61","첺첻첽",6,"쳆쳈쳊",5,"쳑쳒쳓쳕",5], -["ab81","쳛",8,"쳥",6,"쳭쳮쳯쳱",12,"ァ",85], -["ac41","쳾쳿촀촂",5,"촊촋촍촎촏촑",6,"촚촜촞촟촠"], -["ac61","촡촢촣촥촦촧촩촪촫촭",11,"촺",4], -["ac81","촿",28,"쵝쵞쵟А",5,"ЁЖ",25], -["acd1","а",5,"ёж",25], -["ad41","쵡쵢쵣쵥",6,"쵮쵰쵲",5,"쵹",7], -["ad61","춁",6,"춉",10,"춖춗춙춚춛춝춞춟"], -["ad81","춠춡춢춣춦춨춪",5,"춱",18,"췅"], -["ae41","췆",5,"췍췎췏췑",16], -["ae61","췢",5,"췩췪췫췭췮췯췱",6,"췺췼췾",4], -["ae81","츃츅츆츇츉츊츋츍",6,"츕츖츗츘츚",5,"츢츣츥츦츧츩츪츫"], -["af41","츬츭츮츯츲츴츶",19], -["af61","칊",13,"칚칛칝칞칢",5,"칪칬"], -["af81","칮",5,"칶칷칹칺칻칽",6,"캆캈캊",5,"캒캓캕캖캗캙"], -["b041","캚",5,"캢캦",5,"캮",12], -["b061","캻",5,"컂",19], -["b081","컖",13,"컦컧컩컪컭",6,"컶컺",5,"가각간갇갈갉갊감",7,"같",4,"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆"], -["b141","켂켃켅켆켇켉",6,"켒켔켖",5,"켝켞켟켡켢켣"], -["b161","켥",6,"켮켲",5,"켹",11], -["b181","콅",14,"콖콗콙콚콛콝",6,"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸"], -["b241","콭콮콯콲콳콵콶콷콹",6,"쾁쾂쾃쾄쾆",5,"쾍"], -["b261","쾎",18,"쾢",5,"쾩"], -["b281","쾪",5,"쾱",18,"쿅",6,"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙"], -["b341","쿌",19,"쿢쿣쿥쿦쿧쿩"], -["b361","쿪",5,"쿲쿴쿶",5,"쿽쿾쿿퀁퀂퀃퀅",5], -["b381","퀋",5,"퀒",5,"퀙",19,"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫",4,"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝"], -["b441","퀮",5,"퀶퀷퀹퀺퀻퀽",6,"큆큈큊",5], -["b461","큑큒큓큕큖큗큙",6,"큡",10,"큮큯"], -["b481","큱큲큳큵",6,"큾큿킀킂",18,"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫",4,"닳담답닷",4,"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥"], -["b541","킕",14,"킦킧킩킪킫킭",5], -["b561","킳킶킸킺",5,"탂탃탅탆탇탊",5,"탒탖",4], -["b581","탛탞탟탡탢탣탥",6,"탮탲",5,"탹",11,"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸"], -["b641","턅",7,"턎",17], -["b661","턠",15,"턲턳턵턶턷턹턻턼턽턾"], -["b681","턿텂텆",5,"텎텏텑텒텓텕",6,"텞텠텢",5,"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗"], -["b741","텮",13,"텽",6,"톅톆톇톉톊"], -["b761","톋",20,"톢톣톥톦톧"], -["b781","톩",6,"톲톴톶톷톸톹톻톽톾톿퇁",14,"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩"], -["b841","퇐",7,"퇙",17], -["b861","퇫",8,"퇵퇶퇷퇹",13], -["b881","툈툊",5,"툑",24,"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많",4,"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼"], -["b941","툪툫툮툯툱툲툳툵",6,"툾퉀퉂",5,"퉉퉊퉋퉌"], -["b961","퉍",14,"퉝",6,"퉥퉦퉧퉨"], -["b981","퉩",22,"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바",4,"받",4,"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗"], -["ba41","튍튎튏튒튓튔튖",5,"튝튞튟튡튢튣튥",6,"튭"], -["ba61","튮튯튰튲",5,"튺튻튽튾틁틃",4,"틊틌",5], -["ba81","틒틓틕틖틗틙틚틛틝",6,"틦",9,"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤"], -["bb41","틻",4,"팂팄팆",5,"팏팑팒팓팕팗",4,"팞팢팣"], -["bb61","팤팦팧팪팫팭팮팯팱",6,"팺팾",5,"퍆퍇퍈퍉"], -["bb81","퍊",31,"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤"], -["bc41","퍪",17,"퍾퍿펁펂펃펅펆펇"], -["bc61","펈펉펊펋펎펒",5,"펚펛펝펞펟펡",6,"펪펬펮"], -["bc81","펯",4,"펵펶펷펹펺펻펽",6,"폆폇폊",5,"폑",5,"샥샨샬샴샵샷샹섀섄섈섐섕서",4,"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭"], -["bd41","폗폙",7,"폢폤",7,"폮폯폱폲폳폵폶폷"], -["bd61","폸폹폺폻폾퐀퐂",5,"퐉",13], -["bd81","퐗",5,"퐞",25,"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰"], -["be41","퐸",7,"푁푂푃푅",14], -["be61","푔",7,"푝푞푟푡푢푣푥",7,"푮푰푱푲"], -["be81","푳",4,"푺푻푽푾풁풃",4,"풊풌풎",5,"풕",8,"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄",6,"엌엎"], -["bf41","풞",10,"풪",14], -["bf61","풹",18,"퓍퓎퓏퓑퓒퓓퓕"], -["bf81","퓖",5,"퓝퓞퓠",7,"퓩퓪퓫퓭퓮퓯퓱",6,"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염",5,"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨"], -["c041","퓾",5,"픅픆픇픉픊픋픍",6,"픖픘",5], -["c061","픞",25], -["c081","픸픹픺픻픾픿핁핂핃핅",6,"핎핐핒",5,"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응",7,"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊"], -["c141","핤핦핧핪핬핮",5,"핶핷핹핺핻핽",6,"햆햊햋"], -["c161","햌햍햎햏햑",19,"햦햧"], -["c181","햨",31,"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓"], -["c241","헊헋헍헎헏헑헓",4,"헚헜헞",5,"헦헧헩헪헫헭헮"], -["c261","헯",4,"헶헸헺",5,"혂혃혅혆혇혉",6,"혒"], -["c281","혖",5,"혝혞혟혡혢혣혥",7,"혮",9,"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻"], -["c341","혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝",4], -["c361","홢",4,"홨홪",5,"홲홳홵",11], -["c381","횁횂횄횆",5,"횎횏횑횒횓횕",7,"횞횠횢",5,"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층"], -["c441","횫횭횮횯횱",7,"횺횼",7,"훆훇훉훊훋"], -["c461","훍훎훏훐훒훓훕훖훘훚",5,"훡훢훣훥훦훧훩",4], -["c481","훮훯훱훲훳훴훶",5,"훾훿휁휂휃휅",11,"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼"], -["c541","휕휖휗휚휛휝휞휟휡",6,"휪휬휮",5,"휶휷휹"], -["c561","휺휻휽",6,"흅흆흈흊",5,"흒흓흕흚",4], -["c581","흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵",6,"흾흿힀힂",5,"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜"], -["c641","힍힎힏힑",6,"힚힜힞",5], -["c6a1","퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁"], -["c7a1","퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠"], -["c8a1","혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝"], -["caa1","伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕"], -["cba1","匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢"], -["cca1","瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械"], -["cda1","棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜"], -["cea1","科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾"], -["cfa1","區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴"], -["d0a1","鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣"], -["d1a1","朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩",5,"那樂",4,"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉"], -["d2a1","納臘蠟衲囊娘廊",4,"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧",5,"駑魯",10,"濃籠聾膿農惱牢磊腦賂雷尿壘",7,"嫩訥杻紐勒",5,"能菱陵尼泥匿溺多茶"], -["d3a1","丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃"], -["d4a1","棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅"], -["d5a1","蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣"], -["d6a1","煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼"], -["d7a1","遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬"], -["d8a1","立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅"], -["d9a1","蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文"], -["daa1","汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑"], -["dba1","發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖"], -["dca1","碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦"], -["dda1","孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥"], -["dea1","脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索"], -["dfa1","傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署"], -["e0a1","胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬"], -["e1a1","聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁"], -["e2a1","戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧"], -["e3a1","嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁"], -["e4a1","沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額"], -["e5a1","櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬"], -["e6a1","旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒"], -["e7a1","簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳"], -["e8a1","烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療"], -["e9a1","窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓"], -["eaa1","運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜"], -["eba1","濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼"], -["eca1","議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄"], -["eda1","立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長"], -["eea1","障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱"], -["efa1","煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖"], -["f0a1","靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫"], -["f1a1","踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只"], -["f2a1","咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯"], -["f3a1","鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策"], -["f4a1","責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢"], -["f5a1","椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃"], -["f6a1","贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託"], -["f7a1","鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑"], -["f8a1","阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃"], -["f9a1","品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航"], -["faa1","行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型"], -["fba1","形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵"], -["fca1","禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆"], -["fda1","爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰"] -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp950.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp950.json deleted file mode 100644 index d8bc8717..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp950.json +++ /dev/null @@ -1,177 +0,0 @@ -[ -["0","\u0000",127], -["a140"," ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚"], -["a1a1","﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢",4,"~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/"], -["a240","\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁",7,"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭"], -["a2a1","╮╰╯═╞╪╡◢◣◥◤╱╲╳0",9,"Ⅰ",9,"〡",8,"十卄卅A",25,"a",21], -["a340","wxyzΑ",16,"Σ",6,"α",16,"σ",6,"ㄅ",10], -["a3a1","ㄐ",25,"˙ˉˊˇˋ"], -["a3e1","€"], -["a440","一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才"], -["a4a1","丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙"], -["a540","世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外"], -["a5a1","央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全"], -["a640","共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年"], -["a6a1","式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣"], -["a740","作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍"], -["a7a1","均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠"], -["a840","杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒"], -["a8a1","芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵"], -["a940","咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居"], -["a9a1","屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊"], -["aa40","昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠"], -["aaa1","炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附"], -["ab40","陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品"], -["aba1","哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷"], -["ac40","拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗"], -["aca1","活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄"], -["ad40","耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥"], -["ada1","迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪"], -["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙"], -["aea1","恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓"], -["af40","浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷"], -["afa1","砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃"], -["b040","虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡"], -["b0a1","陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀"], -["b140","娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽"], -["b1a1","情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺"], -["b240","毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶"], -["b2a1","瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼"], -["b340","莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途"], -["b3a1","部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠"], -["b440","婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍"], -["b4a1","插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋"], -["b540","溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘"], -["b5a1","窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁"], -["b640","詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"], -["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼"], -["b740","媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業"], -["b7a1","楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督"], -["b840","睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫"], -["b8a1","腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊"], -["b940","辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴"], -["b9a1","飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇"], -["ba40","愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢"], -["baa1","滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬"], -["bb40","罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤"], -["bba1","說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜"], -["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂"], -["bca1","慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃"], -["bd40","瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯"], -["bda1","翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞"], -["be40","輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉"], -["bea1","鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡"], -["bf40","濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊"], -["bfa1","縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚"], -["c040","錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇"], -["c0a1","嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬"], -["c140","瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪"], -["c1a1","薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁"], -["c240","駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘"], -["c2a1","癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦"], -["c340","鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸"], -["c3a1","獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類"], -["c440","願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼"], -["c4a1","纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴"], -["c540","護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬"], -["c5a1","禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒"], -["c640","讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲"], -["c940","乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕"], -["c9a1","氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋"], -["ca40","汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘"], -["caa1","吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇"], -["cb40","杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓"], -["cba1","芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢"], -["cc40","坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋"], -["cca1","怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲"], -["cd40","泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺"], -["cda1","矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏"], -["ce40","哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛"], -["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺"], -["cf40","柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂"], -["cfa1","洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀"], -["d040","穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪"], -["d0a1","苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱"], -["d140","唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧"], -["d1a1","恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤"], -["d240","毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸"], -["d2a1","牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐"], -["d340","笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢"], -["d3a1","荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐"], -["d440","酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅"], -["d4a1","唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏"], -["d540","崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟"], -["d5a1","捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉"], -["d640","淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏"], -["d6a1","痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟"], -["d740","耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷"], -["d7a1","蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪"], -["d840","釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷"], -["d8a1","堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔"], -["d940","惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒"], -["d9a1","晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞"], -["da40","湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖"], -["daa1","琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥"], -["db40","罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳"], -["dba1","菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺"], -["dc40","軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"], -["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆"], -["dd40","媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤"], -["dda1","搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼"], -["de40","毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓"], -["dea1","煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓"], -["df40","稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯"], -["dfa1","腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤"], -["e040","觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿"], -["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠"], -["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠"], -["e1a1","寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉"], -["e240","榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊"], -["e2a1","漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓"], -["e340","禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞"], -["e3a1","耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻"], -["e440","裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍"], -["e4a1","銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘"], -["e540","噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉"], -["e5a1","憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒"], -["e640","澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙"], -["e6a1","獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟"], -["e740","膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢"], -["e7a1","蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧"], -["e840","踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"], -["e8a1","銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮"], -["e940","噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺"], -["e9a1","憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸"], -["ea40","澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙"], -["eaa1","瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘"], -["eb40","蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠"], -["eba1","諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌"], -["ec40","錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕"], -["eca1","魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎"], -["ed40","檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶"], -["eda1","瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞"], -["ee40","蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞"], -["eea1","謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜"], -["ef40","鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰"], -["efa1","鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶"], -["f040","璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒"], -["f0a1","臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧"], -["f140","蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪"], -["f1a1","鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰"], -["f240","徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛"], -["f2a1","礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕"], -["f340","譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦"], -["f3a1","鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲"], -["f440","嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩"], -["f4a1","禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿"], -["f540","鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"], -["f5a1","鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥"], -["f640","蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺"], -["f6a1","騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚"], -["f740","糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊"], -["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾"], -["f840","讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏"], -["f8a1","齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚"], -["f940","纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊"], -["f9a1","龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓"] -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/eucjp.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/eucjp.json deleted file mode 100644 index 4fa61ca1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/eucjp.json +++ /dev/null @@ -1,182 +0,0 @@ -[ -["0","\u0000",127], -["8ea1","。",62], -["a1a1"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇"], -["a2a1","◆□■△▲▽▼※〒→←↑↓〓"], -["a2ba","∈∋⊆⊇⊂⊃∪∩"], -["a2ca","∧∨¬⇒⇔∀∃"], -["a2dc","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"], -["a2f2","ʼn♯♭♪†‡¶"], -["a2fe","◯"], -["a3b0","0",9], -["a3c1","A",25], -["a3e1","a",25], -["a4a1","ぁ",82], -["a5a1","ァ",85], -["a6a1","Α",16,"Σ",6], -["a6c1","α",16,"σ",6], -["a7a1","А",5,"ЁЖ",25], -["a7d1","а",5,"ёж",25], -["a8a1","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"], -["ada1","①",19,"Ⅰ",9], -["adc0","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"], -["addf","㍻〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"], -["b0a1","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"], -["b1a1","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応"], -["b2a1","押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"], -["b3a1","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱"], -["b4a1","粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"], -["b5a1","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京"], -["b6a1","供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"], -["b7a1","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲"], -["b8a1","検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"], -["b9a1","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込"], -["baa1","此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"], -["bba1","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時"], -["bca1","次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"], -["bda1","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償"], -["bea1","勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"], -["bfa1","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾"], -["c0a1","澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"], -["c1a1","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎"], -["c2a1","臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"], -["c3a1","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵"], -["c4a1","帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"], -["c5a1","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到"], -["c6a1","董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"], -["c7a1","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦"], -["c8a1","函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"], -["c9a1","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服"], -["caa1","福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"], -["cba1","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満"], -["cca1","漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"], -["cda1","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃"], -["cea1","痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"], -["cfa1","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"], -["d0a1","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"], -["d1a1","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨"], -["d2a1","辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"], -["d3a1","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉"], -["d4a1","圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"], -["d5a1","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓"], -["d6a1","屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"], -["d7a1","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚"], -["d8a1","悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"], -["d9a1","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼"], -["daa1","據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"], -["dba1","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍"], -["dca1","棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"], -["dda1","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾"], -["dea1","沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"], -["dfa1","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼"], -["e0a1","燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"], -["e1a1","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰"], -["e2a1","癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"], -["e3a1","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐"], -["e4a1","筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"], -["e5a1","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺"], -["e6a1","罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"], -["e7a1","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙"], -["e8a1","茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"], -["e9a1","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙"], -["eaa1","蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"], -["eba1","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫"], -["eca1","譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"], -["eda1","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸"], -["eea1","遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"], -["efa1","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞"], -["f0a1","陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"], -["f1a1","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷"], -["f2a1","髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"], -["f3a1","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠"], -["f4a1","堯槇遙瑤凜熙"], -["f9a1","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德"], -["faa1","忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"], -["fba1","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚"], -["fca1","釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"], -["fcf1","ⅰ",9,"¬¦'""], -["8fa2af","˘ˇ¸˙˝¯˛˚~΄΅"], -["8fa2c2","¡¦¿"], -["8fa2eb","ºª©®™¤№"], -["8fa6e1","ΆΈΉΊΪ"], -["8fa6e7","Ό"], -["8fa6e9","ΎΫ"], -["8fa6ec","Ώ"], -["8fa6f1","άέήίϊΐόςύϋΰώ"], -["8fa7c2","Ђ",10,"ЎЏ"], -["8fa7f2","ђ",10,"ўџ"], -["8fa9a1","ÆĐ"], -["8fa9a4","Ħ"], -["8fa9a6","IJ"], -["8fa9a8","ŁĿ"], -["8fa9ab","ŊØŒ"], -["8fa9af","ŦÞ"], -["8fa9c1","æđðħıijĸłŀʼnŋøœßŧþ"], -["8faaa1","ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ"], -["8faaba","ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ"], -["8faba1","áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ"], -["8fabbd","ġĥíìïîǐ"], -["8fabc5","īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż"], -["8fb0a1","丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄"], -["8fb1a1","侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐"], -["8fb2a1","傒傓傔傖傛傜傞",4,"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂"], -["8fb3a1","凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋"], -["8fb4a1","匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿"], -["8fb5a1","咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒"], -["8fb6a1","嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍",5,"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤",4,"囱囫园"], -["8fb7a1","囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭",4,"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡"], -["8fb8a1","堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭"], -["8fb9a1","奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿"], -["8fbaa1","嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖",4,"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩"], -["8fbba1","屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤"], -["8fbca1","巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪",4,"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧"], -["8fbda1","彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐",4,"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷"], -["8fbea1","悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐",4,"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥"], -["8fbfa1","懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵"], -["8fc0a1","捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿"], -["8fc1a1","擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝"], -["8fc2a1","昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝"], -["8fc3a1","杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮",4,"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏"], -["8fc4a1","棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲"], -["8fc5a1","樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽"], -["8fc6a1","歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖"], -["8fc7a1","泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞"], -["8fc8a1","湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊"], -["8fc9a1","濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔",4,"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃",4,"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠"], -["8fcaa1","煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻"], -["8fcba1","狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽"], -["8fcca1","珿琀琁琄琇琊琑琚琛琤琦琨",9,"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆"], -["8fcda1","甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹",5,"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹"], -["8fcea1","瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢",6,"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢"], -["8fcfa1","睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳"], -["8fd0a1","碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞"], -["8fd1a1","秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰"], -["8fd2a1","笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙",5], -["8fd3a1","籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝"], -["8fd4a1","綞綦綧綪綳綶綷綹緂",4,"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭"], -["8fd5a1","罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮"], -["8fd6a1","胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆"], -["8fd7a1","艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸"], -["8fd8a1","荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓"], -["8fd9a1","蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏",4,"蕖蕙蕜",6,"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼"], -["8fdaa1","藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠",4,"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣"], -["8fdba1","蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃",6,"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵"], -["8fdca1","蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊",4,"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺"], -["8fdda1","襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔",4,"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳"], -["8fdea1","誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂",4,"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆"], -["8fdfa1","貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢"], -["8fe0a1","踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁"], -["8fe1a1","轃轇轏轑",4,"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃"], -["8fe2a1","郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿"], -["8fe3a1","釂釃釅釓釔釗釙釚釞釤釥釩釪釬",5,"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵",4,"鉻鉼鉽鉿銈銉銊銍銎銒銗"], -["8fe4a1","銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿",4,"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶"], -["8fe5a1","鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉",4,"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹"], -["8fe6a1","镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂"], -["8fe7a1","霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦"], -["8fe8a1","頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱",4,"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵"], -["8fe9a1","馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿",4], -["8feaa1","鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪",4,"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸"], -["8feba1","鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦",4,"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻"], -["8feca1","鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵"], -["8feda1","黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃",4,"齓齕齖齗齘齚齝齞齨齩齭",4,"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥"] -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json deleted file mode 100644 index 85c69347..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +++ /dev/null @@ -1 +0,0 @@ -{"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/gbk-added.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/gbk-added.json deleted file mode 100644 index 8abfa9f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/gbk-added.json +++ /dev/null @@ -1,55 +0,0 @@ -[ -["a140","",62], -["a180","",32], -["a240","",62], -["a280","",32], -["a2ab","",5], -["a2e3","€"], -["a2ef",""], -["a2fd",""], -["a340","",62], -["a380","",31," "], -["a440","",62], -["a480","",32], -["a4f4","",10], -["a540","",62], -["a580","",32], -["a5f7","",7], -["a640","",62], -["a680","",32], -["a6b9","",7], -["a6d9","",6], -["a6ec",""], -["a6f3",""], -["a6f6","",8], -["a740","",62], -["a780","",32], -["a7c2","",14], -["a7f2","",12], -["a896","",10], -["a8bc",""], -["a8bf","ǹ"], -["a8c1",""], -["a8ea","",20], -["a958",""], -["a95b",""], -["a95d",""], -["a989","〾⿰",11], -["a997","",12], -["a9f0","",14], -["aaa1","",93], -["aba1","",93], -["aca1","",93], -["ada1","",93], -["aea1","",93], -["afa1","",93], -["d7fa","",4], -["f8a1","",93], -["f9a1","",93], -["faa1","",93], -["fba1","",93], -["fca1","",93], -["fda1","",93], -["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"], -["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93] -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/shiftjis.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/shiftjis.json deleted file mode 100644 index 5a3a43cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/tables/shiftjis.json +++ /dev/null @@ -1,125 +0,0 @@ -[ -["0","\u0000",128], -["a1","。",62], -["8140"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×"], -["8180","÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓"], -["81b8","∈∋⊆⊇⊂⊃∪∩"], -["81c8","∧∨¬⇒⇔∀∃"], -["81da","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"], -["81f0","ʼn♯♭♪†‡¶"], -["81fc","◯"], -["824f","0",9], -["8260","A",25], -["8281","a",25], -["829f","ぁ",82], -["8340","ァ",62], -["8380","ム",22], -["839f","Α",16,"Σ",6], -["83bf","α",16,"σ",6], -["8440","А",5,"ЁЖ",25], -["8470","а",5,"ёж",7], -["8480","о",17], -["849f","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"], -["8740","①",19,"Ⅰ",9], -["875f","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"], -["877e","㍻"], -["8780","〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"], -["889f","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"], -["8940","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円"], -["8980","園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"], -["8a40","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫"], -["8a80","橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"], -["8b40","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救"], -["8b80","朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"], -["8c40","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨"], -["8c80","劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"], -["8d40","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降"], -["8d80","項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"], -["8e40","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止"], -["8e80","死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"], -["8f40","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳"], -["8f80","準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"], -["9040","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨"], -["9080","逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"], -["9140","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻"], -["9180","操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"], -["9240","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄"], -["9280","逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"], -["9340","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬"], -["9380","凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"], -["9440","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅"], -["9480","楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"], -["9540","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷"], -["9580","斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"], -["9640","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆"], -["9680","摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"], -["9740","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲"], -["9780","沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"], -["9840","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"], -["989f","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"], -["9940","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭"], -["9980","凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"], -["9a40","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸"], -["9a80","噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"], -["9b40","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀"], -["9b80","它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"], -["9c40","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠"], -["9c80","怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"], -["9d40","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫"], -["9d80","捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"], -["9e40","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎"], -["9e80","梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"], -["9f40","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯"], -["9f80","麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"], -["e040","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝"], -["e080","烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"], -["e140","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿"], -["e180","痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"], -["e240","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰"], -["e280","窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"], -["e340","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷"], -["e380","縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"], -["e440","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤"], -["e480","艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"], -["e540","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬"], -["e580","蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"], -["e640","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧"], -["e680","諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"], -["e740","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜"], -["e780","轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"], -["e840","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙"], -["e880","閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"], -["e940","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃"], -["e980","騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"], -["ea40","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯"], -["ea80","黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"], -["ed40","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏"], -["ed80","塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"], -["ee40","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙"], -["ee80","蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"], -["eeef","ⅰ",9,"¬¦'""], -["f040","",62], -["f080","",124], -["f140","",62], -["f180","",124], -["f240","",62], -["f280","",124], -["f340","",62], -["f380","",124], -["f440","",62], -["f480","",124], -["f540","",62], -["f580","",124], -["f640","",62], -["f680","",124], -["f740","",62], -["f780","",124], -["f840","",62], -["f880","",124], -["f940",""], -["fa40","ⅰ",9,"Ⅰ",9,"¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊"], -["fa80","兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯"], -["fb40","涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神"], -["fb80","祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙"], -["fc40","髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"] -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/utf16.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/utf16.js deleted file mode 100644 index 399f5515..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/utf16.js +++ /dev/null @@ -1,174 +0,0 @@ -"use strict" - -// == UTF16-BE codec. ========================================================== - -exports.utf16be = Utf16BECodec; -function Utf16BECodec() { -} - -Utf16BECodec.prototype.encoder = Utf16BEEncoder; -Utf16BECodec.prototype.decoder = Utf16BEDecoder; -Utf16BECodec.prototype.bomAware = true; - - -// -- Encoding - -function Utf16BEEncoder() { -} - -Utf16BEEncoder.prototype.write = function(str) { - var buf = new Buffer(str, 'ucs2'); - for (var i = 0; i < buf.length; i += 2) { - var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp; - } - return buf; -} - -Utf16BEEncoder.prototype.end = function() { -} - - -// -- Decoding - -function Utf16BEDecoder() { - this.overflowByte = -1; -} - -Utf16BEDecoder.prototype.write = function(buf) { - if (buf.length == 0) - return ''; - - var buf2 = new Buffer(buf.length + 1), - i = 0, j = 0; - - if (this.overflowByte !== -1) { - buf2[0] = buf[0]; - buf2[1] = this.overflowByte; - i = 1; j = 2; - } - - for (; i < buf.length-1; i += 2, j+= 2) { - buf2[j] = buf[i+1]; - buf2[j+1] = buf[i]; - } - - this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1; - - return buf2.slice(0, j).toString('ucs2'); -} - -Utf16BEDecoder.prototype.end = function() { -} - - -// == UTF-16 codec ============================================================= -// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic. -// Defaults to UTF-16LE, as it's prevalent and default in Node. -// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le -// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'}); - -// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false). - -exports.utf16 = Utf16Codec; -function Utf16Codec(codecOptions, iconv) { - this.iconv = iconv; -} - -Utf16Codec.prototype.encoder = Utf16Encoder; -Utf16Codec.prototype.decoder = Utf16Decoder; - - -// -- Encoding (pass-through) - -function Utf16Encoder(options, codec) { - options = options || {}; - if (options.addBOM === undefined) - options.addBOM = true; - this.encoder = codec.iconv.getEncoder('utf-16le', options); -} - -Utf16Encoder.prototype.write = function(str) { - return this.encoder.write(str); -} - -Utf16Encoder.prototype.end = function() { - return this.encoder.end(); -} - - -// -- Decoding - -function Utf16Decoder(options, codec) { - this.decoder = null; - this.initialBytes = []; - this.initialBytesLen = 0; - - this.options = options || {}; - this.iconv = codec.iconv; -} - -Utf16Decoder.prototype.write = function(buf) { - if (!this.decoder) { - // Codec is not chosen yet. Accumulate initial bytes. - this.initialBytes.push(buf); - this.initialBytesLen += buf.length; - - if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below) - return ''; - - // We have enough bytes -> detect endianness. - var buf = Buffer.concat(this.initialBytes), - encoding = detectEncoding(buf, this.options.defaultEncoding); - this.decoder = this.iconv.getDecoder(encoding, this.options); - this.initialBytes.length = this.initialBytesLen = 0; - } - - return this.decoder.write(buf); -} - -Utf16Decoder.prototype.end = function() { - if (!this.decoder) { - var buf = Buffer.concat(this.initialBytes), - encoding = detectEncoding(buf, this.options.defaultEncoding); - this.decoder = this.iconv.getDecoder(encoding, this.options); - - var res = this.decoder.write(buf), - trail = this.decoder.end(); - - return trail ? (res + trail) : res; - } - return this.decoder.end(); -} - -function detectEncoding(buf, defaultEncoding) { - var enc = defaultEncoding || 'utf-16le'; - - if (buf.length >= 2) { - // Check BOM. - if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM - enc = 'utf-16be'; - else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM - enc = 'utf-16le'; - else { - // No BOM found. Try to deduce encoding from initial content. - // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon. - // So, we count ASCII as if it was LE or BE, and decide from that. - var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions - _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even. - - for (var i = 0; i < _len; i += 2) { - if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++; - if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++; - } - - if (asciiCharsBE > asciiCharsLE) - enc = 'utf-16be'; - else if (asciiCharsBE < asciiCharsLE) - enc = 'utf-16le'; - } - } - - return enc; -} - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/utf7.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/utf7.js deleted file mode 100644 index bab5099f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/encodings/utf7.js +++ /dev/null @@ -1,289 +0,0 @@ -"use strict" - -// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152 -// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3 - -exports.utf7 = Utf7Codec; -exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7 -function Utf7Codec(codecOptions, iconv) { - this.iconv = iconv; -}; - -Utf7Codec.prototype.encoder = Utf7Encoder; -Utf7Codec.prototype.decoder = Utf7Decoder; -Utf7Codec.prototype.bomAware = true; - - -// -- Encoding - -var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g; - -function Utf7Encoder(options, codec) { - this.iconv = codec.iconv; -} - -Utf7Encoder.prototype.write = function(str) { - // Naive implementation. - // Non-direct chars are encoded as "+-"; single "+" char is encoded as "+-". - return new Buffer(str.replace(nonDirectChars, function(chunk) { - return "+" + (chunk === '+' ? '' : - this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, '')) - + "-"; - }.bind(this))); -} - -Utf7Encoder.prototype.end = function() { -} - - -// -- Decoding - -function Utf7Decoder(options, codec) { - this.iconv = codec.iconv; - this.inBase64 = false; - this.base64Accum = ''; -} - -var base64Regex = /[A-Za-z0-9\/+]/; -var base64Chars = []; -for (var i = 0; i < 256; i++) - base64Chars[i] = base64Regex.test(String.fromCharCode(i)); - -var plusChar = '+'.charCodeAt(0), - minusChar = '-'.charCodeAt(0), - andChar = '&'.charCodeAt(0); - -Utf7Decoder.prototype.write = function(buf) { - var res = "", lastI = 0, - inBase64 = this.inBase64, - base64Accum = this.base64Accum; - - // The decoder is more involved as we must handle chunks in stream. - - for (var i = 0; i < buf.length; i++) { - if (!inBase64) { // We're in direct mode. - // Write direct chars until '+' - if (buf[i] == plusChar) { - res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars. - lastI = i+1; - inBase64 = true; - } - } else { // We decode base64. - if (!base64Chars[buf[i]]) { // Base64 ended. - if (i == lastI && buf[i] == minusChar) {// "+-" -> "+" - res += "+"; - } else { - var b64str = base64Accum + buf.slice(lastI, i).toString(); - res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be"); - } - - if (buf[i] != minusChar) // Minus is absorbed after base64. - i--; - - lastI = i+1; - inBase64 = false; - base64Accum = ''; - } - } - } - - if (!inBase64) { - res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars. - } else { - var b64str = base64Accum + buf.slice(lastI).toString(); - - var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars. - base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future. - b64str = b64str.slice(0, canBeDecoded); - - res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be"); - } - - this.inBase64 = inBase64; - this.base64Accum = base64Accum; - - return res; -} - -Utf7Decoder.prototype.end = function() { - var res = ""; - if (this.inBase64 && this.base64Accum.length > 0) - res = this.iconv.decode(new Buffer(this.base64Accum, 'base64'), "utf16-be"); - - this.inBase64 = false; - this.base64Accum = ''; - return res; -} - - -// UTF-7-IMAP codec. -// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3) -// Differences: -// * Base64 part is started by "&" instead of "+" -// * Direct characters are 0x20-0x7E, except "&" (0x26) -// * In Base64, "," is used instead of "/" -// * Base64 must not be used to represent direct characters. -// * No implicit shift back from Base64 (should always end with '-') -// * String must end in non-shifted position. -// * "-&" while in base64 is not allowed. - - -exports.utf7imap = Utf7IMAPCodec; -function Utf7IMAPCodec(codecOptions, iconv) { - this.iconv = iconv; -}; - -Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder; -Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder; -Utf7IMAPCodec.prototype.bomAware = true; - - -// -- Encoding - -function Utf7IMAPEncoder(options, codec) { - this.iconv = codec.iconv; - this.inBase64 = false; - this.base64Accum = new Buffer(6); - this.base64AccumIdx = 0; -} - -Utf7IMAPEncoder.prototype.write = function(str) { - var inBase64 = this.inBase64, - base64Accum = this.base64Accum, - base64AccumIdx = this.base64AccumIdx, - buf = new Buffer(str.length*5 + 10), bufIdx = 0; - - for (var i = 0; i < str.length; i++) { - var uChar = str.charCodeAt(i); - if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'. - if (inBase64) { - if (base64AccumIdx > 0) { - bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx); - base64AccumIdx = 0; - } - - buf[bufIdx++] = minusChar; // Write '-', then go to direct mode. - inBase64 = false; - } - - if (!inBase64) { - buf[bufIdx++] = uChar; // Write direct character - - if (uChar === andChar) // Ampersand -> '&-' - buf[bufIdx++] = minusChar; - } - - } else { // Non-direct character - if (!inBase64) { - buf[bufIdx++] = andChar; // Write '&', then go to base64 mode. - inBase64 = true; - } - if (inBase64) { - base64Accum[base64AccumIdx++] = uChar >> 8; - base64Accum[base64AccumIdx++] = uChar & 0xFF; - - if (base64AccumIdx == base64Accum.length) { - bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx); - base64AccumIdx = 0; - } - } - } - } - - this.inBase64 = inBase64; - this.base64AccumIdx = base64AccumIdx; - - return buf.slice(0, bufIdx); -} - -Utf7IMAPEncoder.prototype.end = function() { - var buf = new Buffer(10), bufIdx = 0; - if (this.inBase64) { - if (this.base64AccumIdx > 0) { - bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx); - this.base64AccumIdx = 0; - } - - buf[bufIdx++] = minusChar; // Write '-', then go to direct mode. - this.inBase64 = false; - } - - return buf.slice(0, bufIdx); -} - - -// -- Decoding - -function Utf7IMAPDecoder(options, codec) { - this.iconv = codec.iconv; - this.inBase64 = false; - this.base64Accum = ''; -} - -var base64IMAPChars = base64Chars.slice(); -base64IMAPChars[','.charCodeAt(0)] = true; - -Utf7IMAPDecoder.prototype.write = function(buf) { - var res = "", lastI = 0, - inBase64 = this.inBase64, - base64Accum = this.base64Accum; - - // The decoder is more involved as we must handle chunks in stream. - // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end). - - for (var i = 0; i < buf.length; i++) { - if (!inBase64) { // We're in direct mode. - // Write direct chars until '&' - if (buf[i] == andChar) { - res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars. - lastI = i+1; - inBase64 = true; - } - } else { // We decode base64. - if (!base64IMAPChars[buf[i]]) { // Base64 ended. - if (i == lastI && buf[i] == minusChar) { // "&-" -> "&" - res += "&"; - } else { - var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/'); - res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be"); - } - - if (buf[i] != minusChar) // Minus may be absorbed after base64. - i--; - - lastI = i+1; - inBase64 = false; - base64Accum = ''; - } - } - } - - if (!inBase64) { - res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars. - } else { - var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/'); - - var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars. - base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future. - b64str = b64str.slice(0, canBeDecoded); - - res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be"); - } - - this.inBase64 = inBase64; - this.base64Accum = base64Accum; - - return res; -} - -Utf7IMAPDecoder.prototype.end = function() { - var res = ""; - if (this.inBase64 && this.base64Accum.length > 0) - res = this.iconv.decode(new Buffer(this.base64Accum, 'base64'), "utf16-be"); - - this.inBase64 = false; - this.base64Accum = ''; - return res; -} - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/bom-handling.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/bom-handling.js deleted file mode 100644 index 3f0ed93a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/bom-handling.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict" - -var BOMChar = '\uFEFF'; - -exports.PrependBOM = PrependBOMWrapper -function PrependBOMWrapper(encoder, options) { - this.encoder = encoder; - this.addBOM = true; -} - -PrependBOMWrapper.prototype.write = function(str) { - if (this.addBOM) { - str = BOMChar + str; - this.addBOM = false; - } - - return this.encoder.write(str); -} - -PrependBOMWrapper.prototype.end = function() { - return this.encoder.end(); -} - - -//------------------------------------------------------------------------------ - -exports.StripBOM = StripBOMWrapper; -function StripBOMWrapper(decoder, options) { - this.decoder = decoder; - this.pass = false; - this.options = options || {}; -} - -StripBOMWrapper.prototype.write = function(buf) { - var res = this.decoder.write(buf); - if (this.pass || !res) - return res; - - if (res[0] === BOMChar) { - res = res.slice(1); - if (typeof this.options.stripBOM === 'function') - this.options.stripBOM(); - } - - this.pass = true; - return res; -} - -StripBOMWrapper.prototype.end = function() { - return this.decoder.end(); -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/extend-node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/extend-node.js deleted file mode 100644 index 1d8c953d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/extend-node.js +++ /dev/null @@ -1,214 +0,0 @@ -"use strict" - -// == Extend Node primitives to use iconv-lite ================================= - -module.exports = function (iconv) { - var original = undefined; // Place to keep original methods. - - // Node authors rewrote Buffer internals to make it compatible with - // Uint8Array and we cannot patch key functions since then. - iconv.supportsNodeEncodingsExtension = !(new Buffer(0) instanceof Uint8Array); - - iconv.extendNodeEncodings = function extendNodeEncodings() { - if (original) return; - original = {}; - - if (!iconv.supportsNodeEncodingsExtension) { - console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"); - console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility"); - return; - } - - var nodeNativeEncodings = { - 'hex': true, 'utf8': true, 'utf-8': true, 'ascii': true, 'binary': true, - 'base64': true, 'ucs2': true, 'ucs-2': true, 'utf16le': true, 'utf-16le': true, - }; - - Buffer.isNativeEncoding = function(enc) { - return enc && nodeNativeEncodings[enc.toLowerCase()]; - } - - // -- SlowBuffer ----------------------------------------------------------- - var SlowBuffer = require('buffer').SlowBuffer; - - original.SlowBufferToString = SlowBuffer.prototype.toString; - SlowBuffer.prototype.toString = function(encoding, start, end) { - encoding = String(encoding || 'utf8').toLowerCase(); - - // Use native conversion when possible - if (Buffer.isNativeEncoding(encoding)) - return original.SlowBufferToString.call(this, encoding, start, end); - - // Otherwise, use our decoding method. - if (typeof start == 'undefined') start = 0; - if (typeof end == 'undefined') end = this.length; - return iconv.decode(this.slice(start, end), encoding); - } - - original.SlowBufferWrite = SlowBuffer.prototype.write; - SlowBuffer.prototype.write = function(string, offset, length, encoding) { - // Support both (string, offset, length, encoding) - // and the legacy (string, encoding, offset, length) - if (isFinite(offset)) { - if (!isFinite(length)) { - encoding = length; - length = undefined; - } - } else { // legacy - var swap = encoding; - encoding = offset; - offset = length; - length = swap; - } - - offset = +offset || 0; - var remaining = this.length - offset; - if (!length) { - length = remaining; - } else { - length = +length; - if (length > remaining) { - length = remaining; - } - } - encoding = String(encoding || 'utf8').toLowerCase(); - - // Use native conversion when possible - if (Buffer.isNativeEncoding(encoding)) - return original.SlowBufferWrite.call(this, string, offset, length, encoding); - - if (string.length > 0 && (length < 0 || offset < 0)) - throw new RangeError('attempt to write beyond buffer bounds'); - - // Otherwise, use our encoding method. - var buf = iconv.encode(string, encoding); - if (buf.length < length) length = buf.length; - buf.copy(this, offset, 0, length); - return length; - } - - // -- Buffer --------------------------------------------------------------- - - original.BufferIsEncoding = Buffer.isEncoding; - Buffer.isEncoding = function(encoding) { - return Buffer.isNativeEncoding(encoding) || iconv.encodingExists(encoding); - } - - original.BufferByteLength = Buffer.byteLength; - Buffer.byteLength = SlowBuffer.byteLength = function(str, encoding) { - encoding = String(encoding || 'utf8').toLowerCase(); - - // Use native conversion when possible - if (Buffer.isNativeEncoding(encoding)) - return original.BufferByteLength.call(this, str, encoding); - - // Slow, I know, but we don't have a better way yet. - return iconv.encode(str, encoding).length; - } - - original.BufferToString = Buffer.prototype.toString; - Buffer.prototype.toString = function(encoding, start, end) { - encoding = String(encoding || 'utf8').toLowerCase(); - - // Use native conversion when possible - if (Buffer.isNativeEncoding(encoding)) - return original.BufferToString.call(this, encoding, start, end); - - // Otherwise, use our decoding method. - if (typeof start == 'undefined') start = 0; - if (typeof end == 'undefined') end = this.length; - return iconv.decode(this.slice(start, end), encoding); - } - - original.BufferWrite = Buffer.prototype.write; - Buffer.prototype.write = function(string, offset, length, encoding) { - var _offset = offset, _length = length, _encoding = encoding; - // Support both (string, offset, length, encoding) - // and the legacy (string, encoding, offset, length) - if (isFinite(offset)) { - if (!isFinite(length)) { - encoding = length; - length = undefined; - } - } else { // legacy - var swap = encoding; - encoding = offset; - offset = length; - length = swap; - } - - encoding = String(encoding || 'utf8').toLowerCase(); - - // Use native conversion when possible - if (Buffer.isNativeEncoding(encoding)) - return original.BufferWrite.call(this, string, _offset, _length, _encoding); - - offset = +offset || 0; - var remaining = this.length - offset; - if (!length) { - length = remaining; - } else { - length = +length; - if (length > remaining) { - length = remaining; - } - } - - if (string.length > 0 && (length < 0 || offset < 0)) - throw new RangeError('attempt to write beyond buffer bounds'); - - // Otherwise, use our encoding method. - var buf = iconv.encode(string, encoding); - if (buf.length < length) length = buf.length; - buf.copy(this, offset, 0, length); - return length; - - // TODO: Set _charsWritten. - } - - - // -- Readable ------------------------------------------------------------- - if (iconv.supportsStreams) { - var Readable = require('stream').Readable; - - original.ReadableSetEncoding = Readable.prototype.setEncoding; - Readable.prototype.setEncoding = function setEncoding(enc, options) { - // Use our own decoder, it has the same interface. - // We cannot use original function as it doesn't handle BOM-s. - this._readableState.decoder = iconv.getDecoder(enc, options); - this._readableState.encoding = enc; - } - - Readable.prototype.collect = iconv._collect; - } - } - - // Remove iconv-lite Node primitive extensions. - iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() { - if (!iconv.supportsNodeEncodingsExtension) - return; - if (!original) - throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.") - - delete Buffer.isNativeEncoding; - - var SlowBuffer = require('buffer').SlowBuffer; - - SlowBuffer.prototype.toString = original.SlowBufferToString; - SlowBuffer.prototype.write = original.SlowBufferWrite; - - Buffer.isEncoding = original.BufferIsEncoding; - Buffer.byteLength = original.BufferByteLength; - Buffer.prototype.toString = original.BufferToString; - Buffer.prototype.write = original.BufferWrite; - - if (iconv.supportsStreams) { - var Readable = require('stream').Readable; - - Readable.prototype.setEncoding = original.ReadableSetEncoding; - delete Readable.prototype.collect; - } - - original = undefined; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/index.js deleted file mode 100644 index ac1403c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/index.js +++ /dev/null @@ -1,141 +0,0 @@ -"use strict" - -var bomHandling = require('./bom-handling'), - iconv = module.exports; - -// All codecs and aliases are kept here, keyed by encoding name/alias. -// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`. -iconv.encodings = null; - -// Characters emitted in case of error. -iconv.defaultCharUnicode = '�'; -iconv.defaultCharSingleByte = '?'; - -// Public API. -iconv.encode = function encode(str, encoding, options) { - str = "" + (str || ""); // Ensure string. - - var encoder = iconv.getEncoder(encoding, options); - - var res = encoder.write(str); - var trail = encoder.end(); - - return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res; -} - -iconv.decode = function decode(buf, encoding, options) { - if (typeof buf === 'string') { - if (!iconv.skipDecodeWarning) { - console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding'); - iconv.skipDecodeWarning = true; - } - - buf = new Buffer("" + (buf || ""), "binary"); // Ensure buffer. - } - - var decoder = iconv.getDecoder(encoding, options); - - var res = decoder.write(buf); - var trail = decoder.end(); - - return trail ? (res + trail) : res; -} - -iconv.encodingExists = function encodingExists(enc) { - try { - iconv.getCodec(enc); - return true; - } catch (e) { - return false; - } -} - -// Legacy aliases to convert functions -iconv.toEncoding = iconv.encode; -iconv.fromEncoding = iconv.decode; - -// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache. -iconv._codecDataCache = {}; -iconv.getCodec = function getCodec(encoding) { - if (!iconv.encodings) - iconv.encodings = require("../encodings"); // Lazy load all encoding definitions. - - // Canonicalize encoding name: strip all non-alphanumeric chars and appended year. - var enc = (''+encoding).toLowerCase().replace(/[^0-9a-z]|:\d{4}$/g, ""); - - // Traverse iconv.encodings to find actual codec. - var codecOptions = {}; - while (true) { - var codec = iconv._codecDataCache[enc]; - if (codec) - return codec; - - var codecDef = iconv.encodings[enc]; - - switch (typeof codecDef) { - case "string": // Direct alias to other encoding. - enc = codecDef; - break; - - case "object": // Alias with options. Can be layered. - for (var key in codecDef) - codecOptions[key] = codecDef[key]; - - if (!codecOptions.encodingName) - codecOptions.encodingName = enc; - - enc = codecDef.type; - break; - - case "function": // Codec itself. - if (!codecOptions.encodingName) - codecOptions.encodingName = enc; - - // The codec function must load all tables and return object with .encoder and .decoder methods. - // It'll be called only once (for each different options object). - codec = new codecDef(codecOptions, iconv); - - iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later. - return codec; - - default: - throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')"); - } - } -} - -iconv.getEncoder = function getEncoder(encoding, options) { - var codec = iconv.getCodec(encoding), - encoder = new codec.encoder(options, codec); - - if (codec.bomAware && options && options.addBOM) - encoder = new bomHandling.PrependBOM(encoder, options); - - return encoder; -} - -iconv.getDecoder = function getDecoder(encoding, options) { - var codec = iconv.getCodec(encoding), - decoder = new codec.decoder(options, codec); - - if (codec.bomAware && !(options && options.stripBOM === false)) - decoder = new bomHandling.StripBOM(decoder, options); - - return decoder; -} - - -// Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json. -var nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node; -if (nodeVer) { - - // Load streaming support in Node v0.10+ - var nodeVerArr = nodeVer.split(".").map(Number); - if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) { - require("./streams")(iconv); - } - - // Load Node primitive extensions. - require("./extend-node")(iconv); -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/streams.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/streams.js deleted file mode 100644 index c95b26c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/lib/streams.js +++ /dev/null @@ -1,120 +0,0 @@ -"use strict" - -var Transform = require("stream").Transform; - - -// == Exports ================================================================== -module.exports = function(iconv) { - - // Additional Public API. - iconv.encodeStream = function encodeStream(encoding, options) { - return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options); - } - - iconv.decodeStream = function decodeStream(encoding, options) { - return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options); - } - - iconv.supportsStreams = true; - - - // Not published yet. - iconv.IconvLiteEncoderStream = IconvLiteEncoderStream; - iconv.IconvLiteDecoderStream = IconvLiteDecoderStream; - iconv._collect = IconvLiteDecoderStream.prototype.collect; -}; - - -// == Encoder stream ======================================================= -function IconvLiteEncoderStream(conv, options) { - this.conv = conv; - options = options || {}; - options.decodeStrings = false; // We accept only strings, so we don't need to decode them. - Transform.call(this, options); -} - -IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, { - constructor: { value: IconvLiteEncoderStream } -}); - -IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) { - if (typeof chunk != 'string') - return done(new Error("Iconv encoding stream needs strings as its input.")); - try { - var res = this.conv.write(chunk); - if (res && res.length) this.push(res); - done(); - } - catch (e) { - done(e); - } -} - -IconvLiteEncoderStream.prototype._flush = function(done) { - try { - var res = this.conv.end(); - if (res && res.length) this.push(res); - done(); - } - catch (e) { - done(e); - } -} - -IconvLiteEncoderStream.prototype.collect = function(cb) { - var chunks = []; - this.on('error', cb); - this.on('data', function(chunk) { chunks.push(chunk); }); - this.on('end', function() { - cb(null, Buffer.concat(chunks)); - }); - return this; -} - - -// == Decoder stream ======================================================= -function IconvLiteDecoderStream(conv, options) { - this.conv = conv; - options = options || {}; - options.encoding = this.encoding = 'utf8'; // We output strings. - Transform.call(this, options); -} - -IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, { - constructor: { value: IconvLiteDecoderStream } -}); - -IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) { - if (!Buffer.isBuffer(chunk)) - return done(new Error("Iconv decoding stream needs buffers as its input.")); - try { - var res = this.conv.write(chunk); - if (res && res.length) this.push(res, this.encoding); - done(); - } - catch (e) { - done(e); - } -} - -IconvLiteDecoderStream.prototype._flush = function(done) { - try { - var res = this.conv.end(); - if (res && res.length) this.push(res, this.encoding); - done(); - } - catch (e) { - done(e); - } -} - -IconvLiteDecoderStream.prototype.collect = function(cb) { - var res = ''; - this.on('error', cb); - this.on('data', function(chunk) { res += chunk; }); - this.on('end', function() { - cb(null, res); - }); - return this; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/package.json deleted file mode 100644 index 6e721756..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/iconv-lite/package.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "name": "iconv-lite", - "description": "Convert character encodings in pure javascript.", - "version": "0.4.13", - "license": "MIT", - "keywords": [ - "iconv", - "convert", - "charset", - "icu" - ], - "author": { - "name": "Alexander Shtuchkin", - "email": "ashtuchkin@gmail.com" - }, - "contributors": [ - { - "name": "Jinwu Zhan", - "url": "https://github.com/jenkinv" - }, - { - "name": "Adamansky Anton", - "url": "https://github.com/adamansky" - }, - { - "name": "George Stagas", - "url": "https://github.com/stagas" - }, - { - "name": "Mike D Pilsbury", - "url": "https://github.com/pekim" - }, - { - "name": "Niggler", - "url": "https://github.com/Niggler" - }, - { - "name": "wychi", - "url": "https://github.com/wychi" - }, - { - "name": "David Kuo", - "url": "https://github.com/david50407" - }, - { - "name": "ChangZhuo Chen", - "url": "https://github.com/czchen" - }, - { - "name": "Lee Treveil", - "url": "https://github.com/leetreveil" - }, - { - "name": "Brian White", - "url": "https://github.com/mscdex" - }, - { - "name": "Mithgol", - "url": "https://github.com/Mithgol" - }, - { - "name": "Nazar Leush", - "url": "https://github.com/nleush" - } - ], - "main": "./lib/index.js", - "homepage": "https://github.com/ashtuchkin/iconv-lite", - "bugs": { - "url": "https://github.com/ashtuchkin/iconv-lite/issues" - }, - "repository": { - "type": "git", - "url": "git://github.com/ashtuchkin/iconv-lite.git" - }, - "engines": { - "node": ">=0.8.0" - }, - "scripts": { - "coverage": "istanbul cover _mocha -- --grep .", - "coverage-open": "open coverage/lcov-report/index.html", - "test": "mocha --reporter spec --grep ." - }, - "browser": { - "./extend-node": false, - "./streams": false - }, - "devDependencies": { - "mocha": "*", - "request": "2.47", - "unorm": "*", - "errto": "*", - "async": "*", - "istanbul": "*", - "iconv": "2.1" - }, - "gitHead": "f5ec51b1e7dd1477a3570824960641eebdc5fbc6", - "_id": "iconv-lite@0.4.13", - "_shasum": "1f88aba4ab0b1508e8312acc39345f36e992e2f2", - "_from": "iconv-lite@0.4.13", - "_npmVersion": "2.14.4", - "_nodeVersion": "4.1.1", - "_npmUser": { - "name": "ashtuchkin", - "email": "ashtuchkin@gmail.com" - }, - "maintainers": [ - { - "name": "ashtuchkin", - "email": "ashtuchkin@gmail.com" - } - ], - "dist": { - "shasum": "1f88aba4ab0b1508e8312acc39345f36e992e2f2", - "tarball": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/HISTORY.md deleted file mode 100644 index 98ff0e99..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/HISTORY.md +++ /dev/null @@ -1,88 +0,0 @@ -2.3.0 / 2015-05-26 -================== - - * Add defined behavior for HTTP `CONNECT` requests - * Add defined behavior for HTTP `Upgrade` requests - * deps: ee-first@1.1.1 - -2.2.1 / 2015-04-22 -================== - - * Fix `isFinished(req)` when data buffered - -2.2.0 / 2014-12-22 -================== - - * Add message object to callback arguments - -2.1.1 / 2014-10-22 -================== - - * Fix handling of pipelined requests - -2.1.0 / 2014-08-16 -================== - - * Check if `socket` is detached - * Return `undefined` for `isFinished` if state unknown - -2.0.0 / 2014-08-16 -================== - - * Add `isFinished` function - * Move to `jshttp` organization - * Remove support for plain socket argument - * Rename to `on-finished` - * Support both `req` and `res` as arguments - * deps: ee-first@1.0.5 - -1.2.2 / 2014-06-10 -================== - - * Reduce listeners added to emitters - - avoids "event emitter leak" warnings when used multiple times on same request - -1.2.1 / 2014-06-08 -================== - - * Fix returned value when already finished - -1.2.0 / 2014-06-05 -================== - - * Call callback when called on already-finished socket - -1.1.4 / 2014-05-27 -================== - - * Support node.js 0.8 - -1.1.3 / 2014-04-30 -================== - - * Make sure errors passed as instanceof `Error` - -1.1.2 / 2014-04-18 -================== - - * Default the `socket` to passed-in object - -1.1.1 / 2014-01-16 -================== - - * Rename module to `finished` - -1.1.0 / 2013-12-25 -================== - - * Call callback when called on already-errored socket - -1.0.1 / 2013-12-20 -================== - - * Actually pass the error to the callback - -1.0.0 / 2013-12-20 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/LICENSE deleted file mode 100644 index 5931fd23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2013 Jonathan Ong -Copyright (c) 2014 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/README.md deleted file mode 100644 index a0e11574..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/README.md +++ /dev/null @@ -1,154 +0,0 @@ -# on-finished - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Execute a callback when a HTTP request closes, finishes, or errors. - -## Install - -```sh -$ npm install on-finished -``` - -## API - -```js -var onFinished = require('on-finished') -``` - -### onFinished(res, listener) - -Attach a listener to listen for the response to finish. The listener will -be invoked only once when the response finished. If the response finished -to an error, the first argument will contain the error. If the response -has already finished, the listener will be invoked. - -Listening to the end of a response would be used to close things associated -with the response, like open files. - -Listener is invoked as `listener(err, res)`. - -```js -onFinished(res, function (err, res) { - // clean up open fds, etc. - // err contains the error is request error'd -}) -``` - -### onFinished(req, listener) - -Attach a listener to listen for the request to finish. The listener will -be invoked only once when the request finished. If the request finished -to an error, the first argument will contain the error. If the request -has already finished, the listener will be invoked. - -Listening to the end of a request would be used to know when to continue -after reading the data. - -Listener is invoked as `listener(err, req)`. - -```js -var data = '' - -req.setEncoding('utf8') -res.on('data', function (str) { - data += str -}) - -onFinished(req, function (err, req) { - // data is read unless there is err -}) -``` - -### onFinished.isFinished(res) - -Determine if `res` is already finished. This would be useful to check and -not even start certain operations if the response has already finished. - -### onFinished.isFinished(req) - -Determine if `req` is already finished. This would be useful to check and -not even start certain operations if the request has already finished. - -## Special Node.js requests - -### HTTP CONNECT method - -The meaning of the `CONNECT` method from RFC 7231, section 4.3.6: - -> The CONNECT method requests that the recipient establish a tunnel to -> the destination origin server identified by the request-target and, -> if successful, thereafter restrict its behavior to blind forwarding -> of packets, in both directions, until the tunnel is closed. Tunnels -> are commonly used to create an end-to-end virtual connection, through -> one or more proxies, which can then be secured using TLS (Transport -> Layer Security, [RFC5246]). - -In Node.js, these request objects come from the `'connect'` event on -the HTTP server. - -When this module is used on a HTTP `CONNECT` request, the request is -considered "finished" immediately, **due to limitations in the Node.js -interface**. This means if the `CONNECT` request contains a request entity, -the request will be considered "finished" even before it has been read. - -There is no such thing as a response object to a `CONNECT` request in -Node.js, so there is no support for for one. - -### HTTP Upgrade request - -The meaning of the `Upgrade` header from RFC 7230, section 6.1: - -> The "Upgrade" header field is intended to provide a simple mechanism -> for transitioning from HTTP/1.1 to some other protocol on the same -> connection. - -In Node.js, these request objects come from the `'upgrade'` event on -the HTTP server. - -When this module is used on a HTTP request with an `Upgrade` header, the -request is considered "finished" immediately, **due to limitations in the -Node.js interface**. This means if the `Upgrade` request contains a request -entity, the request will be considered "finished" even before it has been -read. - -There is no such thing as a response object to a `Upgrade` request in -Node.js, so there is no support for for one. - -## Example - -The following code ensures that file descriptors are always closed -once the response finishes. - -```js -var destroy = require('destroy') -var http = require('http') -var onFinished = require('on-finished') - -http.createServer(function onRequest(req, res) { - var stream = fs.createReadStream('package.json') - stream.pipe(res) - onFinished(res, function (err) { - destroy(stream) - }) -}) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/on-finished.svg -[npm-url]: https://npmjs.org/package/on-finished -[node-version-image]: https://img.shields.io/node/v/on-finished.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/on-finished/master.svg -[travis-url]: https://travis-ci.org/jshttp/on-finished -[coveralls-image]: https://img.shields.io/coveralls/jshttp/on-finished/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/on-finished?branch=master -[downloads-image]: https://img.shields.io/npm/dm/on-finished.svg -[downloads-url]: https://npmjs.org/package/on-finished diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/index.js deleted file mode 100644 index 9abd98f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/index.js +++ /dev/null @@ -1,196 +0,0 @@ -/*! - * on-finished - * Copyright(c) 2013 Jonathan Ong - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = onFinished -module.exports.isFinished = isFinished - -/** - * Module dependencies. - * @private - */ - -var first = require('ee-first') - -/** - * Variables. - * @private - */ - -/* istanbul ignore next */ -var defer = typeof setImmediate === 'function' - ? setImmediate - : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } - -/** - * Invoke callback when the response has finished, useful for - * cleaning up resources afterwards. - * - * @param {object} msg - * @param {function} listener - * @return {object} - * @public - */ - -function onFinished(msg, listener) { - if (isFinished(msg) !== false) { - defer(listener, null, msg) - return msg - } - - // attach the listener to the message - attachListener(msg, listener) - - return msg -} - -/** - * Determine if message is already finished. - * - * @param {object} msg - * @return {boolean} - * @public - */ - -function isFinished(msg) { - var socket = msg.socket - - if (typeof msg.finished === 'boolean') { - // OutgoingMessage - return Boolean(msg.finished || (socket && !socket.writable)) - } - - if (typeof msg.complete === 'boolean') { - // IncomingMessage - return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable)) - } - - // don't know - return undefined -} - -/** - * Attach a finished listener to the message. - * - * @param {object} msg - * @param {function} callback - * @private - */ - -function attachFinishedListener(msg, callback) { - var eeMsg - var eeSocket - var finished = false - - function onFinish(error) { - eeMsg.cancel() - eeSocket.cancel() - - finished = true - callback(error) - } - - // finished on first message event - eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish) - - function onSocket(socket) { - // remove listener - msg.removeListener('socket', onSocket) - - if (finished) return - if (eeMsg !== eeSocket) return - - // finished on first socket event - eeSocket = first([[socket, 'error', 'close']], onFinish) - } - - if (msg.socket) { - // socket already assigned - onSocket(msg.socket) - return - } - - // wait for socket to be assigned - msg.on('socket', onSocket) - - if (msg.socket === undefined) { - // node.js 0.8 patch - patchAssignSocket(msg, onSocket) - } -} - -/** - * Attach the listener to the message. - * - * @param {object} msg - * @return {function} - * @private - */ - -function attachListener(msg, listener) { - var attached = msg.__onFinished - - // create a private single listener with queue - if (!attached || !attached.queue) { - attached = msg.__onFinished = createListener(msg) - attachFinishedListener(msg, attached) - } - - attached.queue.push(listener) -} - -/** - * Create listener on message. - * - * @param {object} msg - * @return {function} - * @private - */ - -function createListener(msg) { - function listener(err) { - if (msg.__onFinished === listener) msg.__onFinished = null - if (!listener.queue) return - - var queue = listener.queue - listener.queue = null - - for (var i = 0; i < queue.length; i++) { - queue[i](err, msg) - } - } - - listener.queue = [] - - return listener -} - -/** - * Patch ServerResponse.prototype.assignSocket for node.js 0.8. - * - * @param {ServerResponse} res - * @param {function} callback - * @private - */ - -function patchAssignSocket(res, callback) { - var assignSocket = res.assignSocket - - if (typeof assignSocket !== 'function') return - - // res.on('socket', callback) is broken in 0.8 - res.assignSocket = function _assignSocket(socket) { - assignSocket.call(this, socket) - callback(socket) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/README.md deleted file mode 100644 index cbd2478b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# EE First - -[![NPM version][npm-image]][npm-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] -[![Gittip][gittip-image]][gittip-url] - -Get the first event in a set of event emitters and event pairs, -then clean up after itself. - -## Install - -```sh -$ npm install ee-first -``` - -## API - -```js -var first = require('ee-first') -``` - -### first(arr, listener) - -Invoke `listener` on the first event from the list specified in `arr`. `arr` is -an array of arrays, with each array in the format `[ee, ...event]`. `listener` -will be called only once, the first time any of the given events are emitted. If -`error` is one of the listened events, then if that fires first, the `listener` -will be given the `err` argument. - -The `listener` is invoked as `listener(err, ee, event, args)`, where `err` is the -first argument emitted from an `error` event, if applicable; `ee` is the event -emitter that fired; `event` is the string event name that fired; and `args` is an -array of the arguments that were emitted on the event. - -```js -var ee1 = new EventEmitter() -var ee2 = new EventEmitter() - -first([ - [ee1, 'close', 'end', 'error'], - [ee2, 'error'] -], function (err, ee, event, args) { - // listener invoked -}) -``` - -#### .cancel() - -The group of listeners can be cancelled before being invoked and have all the event -listeners removed from the underlying event emitters. - -```js -var thunk = first([ - [ee1, 'close', 'end', 'error'], - [ee2, 'error'] -], function (err, ee, event, args) { - // listener invoked -}) - -// cancel and clean up -thunk.cancel() -``` - -[npm-image]: https://img.shields.io/npm/v/ee-first.svg?style=flat-square -[npm-url]: https://npmjs.org/package/ee-first -[github-tag]: http://img.shields.io/github/tag/jonathanong/ee-first.svg?style=flat-square -[github-url]: https://github.com/jonathanong/ee-first/tags -[travis-image]: https://img.shields.io/travis/jonathanong/ee-first.svg?style=flat-square -[travis-url]: https://travis-ci.org/jonathanong/ee-first -[coveralls-image]: https://img.shields.io/coveralls/jonathanong/ee-first.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/jonathanong/ee-first?branch=master -[license-image]: http://img.shields.io/npm/l/ee-first.svg?style=flat-square -[license-url]: LICENSE.md -[downloads-image]: http://img.shields.io/npm/dm/ee-first.svg?style=flat-square -[downloads-url]: https://npmjs.org/package/ee-first -[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square -[gittip-url]: https://www.gittip.com/jonathanong/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/index.js deleted file mode 100644 index 501287cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/index.js +++ /dev/null @@ -1,95 +0,0 @@ -/*! - * ee-first - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = first - -/** - * Get the first event in a set of event emitters and event pairs. - * - * @param {array} stuff - * @param {function} done - * @public - */ - -function first(stuff, done) { - if (!Array.isArray(stuff)) - throw new TypeError('arg must be an array of [ee, events...] arrays') - - var cleanups = [] - - for (var i = 0; i < stuff.length; i++) { - var arr = stuff[i] - - if (!Array.isArray(arr) || arr.length < 2) - throw new TypeError('each array member must be [ee, events...]') - - var ee = arr[0] - - for (var j = 1; j < arr.length; j++) { - var event = arr[j] - var fn = listener(event, callback) - - // listen to the event - ee.on(event, fn) - // push this listener to the list of cleanups - cleanups.push({ - ee: ee, - event: event, - fn: fn, - }) - } - } - - function callback() { - cleanup() - done.apply(null, arguments) - } - - function cleanup() { - var x - for (var i = 0; i < cleanups.length; i++) { - x = cleanups[i] - x.ee.removeListener(x.event, x.fn) - } - } - - function thunk(fn) { - done = fn - } - - thunk.cancel = cleanup - - return thunk -} - -/** - * Create the event listener. - * @private - */ - -function listener(event, done) { - return function onevent(arg1) { - var args = new Array(arguments.length) - var ee = this - var err = event === 'error' - ? arg1 - : null - - // copy args to prevent arguments escaping scope - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - - done(err, ee, event, args) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/package.json deleted file mode 100644 index 35ff70d9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/node_modules/ee-first/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "ee-first", - "description": "return the first event in a set of ee/event pairs", - "version": "1.1.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/jonathanong/ee-first" - }, - "devDependencies": { - "istanbul": "0.3.9", - "mocha": "2.2.5" - }, - "files": [ - "index.js", - "LICENSE" - ], - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "512e0ce4cc3643f603708f965a97b61b1a9c0441", - "bugs": { - "url": "https://github.com/jonathanong/ee-first/issues" - }, - "homepage": "https://github.com/jonathanong/ee-first", - "_id": "ee-first@1.1.1", - "_shasum": "590c61156b0ae2f4f0255732a158b266bc56b21d", - "_from": "ee-first@1.1.1", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "590c61156b0ae2f4f0255732a158b266bc56b21d", - "tarball": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/package.json deleted file mode 100644 index 97a5680b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/on-finished/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "on-finished", - "description": "Execute a callback when a request closes, finishes, or errors", - "version": "2.3.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/on-finished.git" - }, - "dependencies": { - "ee-first": "1.1.1" - }, - "devDependencies": { - "istanbul": "0.3.9", - "mocha": "2.2.5" - }, - "engines": { - "node": ">= 0.8" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "34babcb58126a416fcf5205768204f2e12699dda", - "bugs": { - "url": "https://github.com/jshttp/on-finished/issues" - }, - "homepage": "https://github.com/jshttp/on-finished", - "_id": "on-finished@2.3.0", - "_shasum": "20f1336481b083cd75337992a16971aa2d906947", - "_from": "on-finished@>=2.3.0 <2.4.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "20f1336481b083cd75337992a16971aa2d906947", - "tarball": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/.eslintignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/.eslintignore deleted file mode 100644 index 1521c8b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -dist diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/.eslintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/.eslintrc deleted file mode 100644 index 1faac273..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/.eslintrc +++ /dev/null @@ -1,19 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "complexity": [2, 22], - "consistent-return": [1], - "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], - "indent": [2, 4], - "max-params": [2, 9], - "max-statements": [2, 36], - "no-extra-parens": [1], - "no-continue": [1], - "no-magic-numbers": 0, - "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], - "operator-linebreak": 1 - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/.jscs.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/.jscs.json deleted file mode 100644 index 3d099c4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/.jscs.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "es3": true, - - "additionalRules": [], - - "requireSemicolons": true, - - "disallowMultipleSpaces": true, - - "disallowIdentifierNames": [], - - "requireCurlyBraces": { - "allExcept": [], - "keywords": ["if", "else", "for", "while", "do", "try", "catch"] - }, - - "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"], - - "disallowSpaceAfterKeywords": [], - - "disallowSpaceBeforeComma": true, - "disallowSpaceAfterComma": false, - "disallowSpaceBeforeSemicolon": true, - - "disallowNodeTypes": [ - "DebuggerStatement", - "ForInStatement", - "LabeledStatement", - "SwitchCase", - "SwitchStatement", - "WithStatement" - ], - - "requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] }, - - "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true }, - "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true }, - "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true }, - - "requireSpaceBetweenArguments": true, - - "disallowSpacesInsideParentheses": true, - - "disallowSpacesInsideArrayBrackets": true, - - "disallowQuotedKeysInObjects": { "allExcept": ["reserved"] }, - - "disallowSpaceAfterObjectKeys": true, - - "requireCommaBeforeLineBreak": true, - - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], - "requireSpaceAfterPrefixUnaryOperators": [], - - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "requireSpaceBeforePostfixUnaryOperators": [], - - "disallowSpaceBeforeBinaryOperators": [], - "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - - "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - "disallowSpaceAfterBinaryOperators": [], - - "disallowImplicitTypeConversion": ["binary", "string"], - - "disallowKeywords": ["with", "eval"], - - "requireKeywordsOnNewLine": [], - "disallowKeywordsOnNewLine": ["else"], - - "requireLineFeedAtFileEnd": true, - - "disallowTrailingWhitespace": true, - - "disallowTrailingComma": true, - - "excludeFiles": ["node_modules/**", "vendor/**"], - - "disallowMultipleLineStrings": true, - - "requireDotNotation": { "allExcept": ["keywords"] }, - - "requireParenthesesAroundIIFE": true, - - "validateLineBreaks": "LF", - - "validateQuoteMarks": { - "escape": true, - "mark": "'" - }, - - "disallowOperatorBeforeLineBreak": [], - - "requireSpaceBeforeKeywords": [ - "do", - "for", - "if", - "else", - "switch", - "case", - "try", - "catch", - "finally", - "while", - "with", - "return" - ], - - "validateAlignedFunctionParameters": { - "lineBreakAfterOpeningBraces": true, - "lineBreakBeforeClosingBraces": true - }, - - "requirePaddingNewLinesBeforeExport": true, - - "validateNewlineAfterArrayElements": { - "maximum": 1 - }, - - "requirePaddingNewLinesAfterUseStrict": true, - - "disallowArrowFunctions": true, - - "disallowMultiLineTernary": true, - - "validateOrderInObjectKeys": "asc-insensitive", - - "disallowIdenticalDestructuringNames": true, - - "disallowNestedTernaries": { "maxLevel": 1 }, - - "requireSpaceAfterComma": { "allExcept": ["trailing"] }, - "requireAlignedMultilineParams": false, - - "requireSpacesInGenerator": { - "afterStar": true - }, - - "disallowSpacesInGenerator": { - "beforeStar": true - }, - - "disallowVar": false, - - "requireArrayDestructuring": false, - - "requireEnhancedObjectLiterals": false, - - "requireObjectDestructuring": false, - - "requireEarlyReturn": false, - - "requireCapitalizedConstructorsNew": { - "allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"] - }, - - "requireImportAlphabetized": false, - - "requireSpaceBeforeObjectValues": true, - "requireSpaceBeforeDestructuredValues": true, - - "disallowSpacesInsideTemplateStringPlaceholders": true, - - "disallowArrayDestructuringReturn": false, - - "requireNewlineBeforeSingleStatementsInIf": false, - - "disallowUnusedVariables": true, - - "requireSpacesInsideImportedObjectBraces": true, - - "requireUseStrict": true -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/CHANGELOG.md deleted file mode 100644 index e318a054..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/CHANGELOG.md +++ /dev/null @@ -1,120 +0,0 @@ -## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed) -- [New] pass Buffers to the encoder/decoder directly (#161) -- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160) -- [Fix] fix compacting of nested sparse arrays (#150) - -## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed) -- [New] allowDots option for `stringify` (#151) -- [Fix] "sort" option should work at a depth of 3 or more (#151) -- [Fix] Restore `dist` directory; will be removed in v7 (#148) - -## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed) -- Revert ES6 requirement and restore support for node down to v0.8. - -## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed) -- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json - -## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed) -- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4 - -## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed) -- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string - -## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed) -- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional -- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify - -## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed) -- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false -- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm - -## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed) -- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional - -## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed) -- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation" - -## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed) -- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties -- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost -- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing -- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object -- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option -- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects. -- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47 -- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986 -- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign -- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute - -## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed) -- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object # is not a function - -## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed) -- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option - -## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed) -- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57 -- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader - -## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed) -- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object - -## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed) -- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError". - -## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed) -- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46 - -## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed) -- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer? -- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45 -- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39 - -## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed) -- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number - -## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed) -- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array -- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x - -## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed) -- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value -- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty -- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver? - -## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed) -- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31 -- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects - -## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed) -- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present -- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays -- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge -- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters? - -## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed) -- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter - -## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed) -- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit? -- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit -- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20 - -## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed) -- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values - -## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed) -- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters -- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block - -## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed) -- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument -- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed - -## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed) -- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted -- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null -- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README - -## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed) -- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/CONTRIBUTING.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/CONTRIBUTING.md deleted file mode 100644 index 89283615..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/CONTRIBUTING.md +++ /dev/null @@ -1 +0,0 @@ -Please view our [hapijs contributing guide](https://github.com/hapijs/hapi/blob/master/CONTRIBUTING.md). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/LICENSE deleted file mode 100644 index d4569487..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2014 Nathan LaFreniere and other 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. - * The names of any contributors may not 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 HOLDERS AND 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. - - * * * - -The complete list of contributors can be found at: https://github.com/hapijs/qs/graphs/contributors diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/dist/qs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/dist/qs.js deleted file mode 100644 index 4cc6f306..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/dist/qs.js +++ /dev/null @@ -1,487 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0 && - (options.parseArrays && index <= options.arrayLimit) - ) { - obj = []; - obj[index] = parseObject(chain, val, options); - } else { - obj[cleanRoot] = parseObject(chain, val, options); - } - } - - return obj; -}; - -var parseKeys = function parseKeys(givenKey, val, options) { - if (!givenKey) { - return; - } - - // Transform dot notation to bracket notation - var key = options.allowDots ? givenKey.replace(/\.([^\.\[]+)/g, '[$1]') : givenKey; - - // The regex chunks - - var parent = /^([^\[\]]*)/; - var child = /(\[[^\[\]]*\])/g; - - // Get the parent - - var segment = parent.exec(key); - - // Stash the parent if it exists - - var keys = []; - if (segment[1]) { - // If we aren't using plain objects, optionally prefix keys - // that would overwrite object prototype properties - if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1])) { - if (!options.allowPrototypes) { - return; - } - } - - keys.push(segment[1]); - } - - // Loop through children appending to the array until we hit depth - - var i = 0; - while ((segment = child.exec(key)) !== null && i < options.depth) { - i += 1; - if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1].replace(/\[|\]/g, ''))) { - if (!options.allowPrototypes) { - continue; - } - } - keys.push(segment[1]); - } - - // If there's a remainder, just add whatever is left - - if (segment) { - keys.push('[' + key.slice(segment.index) + ']'); - } - - return parseObject(keys, val, options); -}; - -module.exports = function (str, opts) { - var options = opts || {}; - - if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') { - throw new TypeError('Decoder has to be a function.'); - } - - options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter; - options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth; - options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit; - options.parseArrays = options.parseArrays !== false; - options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder; - options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots; - options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects; - options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes; - options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit; - options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - - if (str === '' || str === null || typeof str === 'undefined') { - return options.plainObjects ? Object.create(null) : {}; - } - - var tempObj = typeof str === 'string' ? parseValues(str, options) : str; - var obj = options.plainObjects ? Object.create(null) : {}; - - // Iterate over the keys and setup the new object - - var keys = Object.keys(tempObj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var newObj = parseKeys(key, tempObj[key], options); - obj = Utils.merge(obj, newObj, options); - } - - return Utils.compact(obj); -}; - -},{"./utils":4}],3:[function(require,module,exports){ -'use strict'; - -var Utils = require('./utils'); - -var arrayPrefixGenerators = { - brackets: function brackets(prefix) { - return prefix + '[]'; - }, - indices: function indices(prefix, key) { - return prefix + '[' + key + ']'; - }, - repeat: function repeat(prefix) { - return prefix; - } -}; - -var defaults = { - delimiter: '&', - strictNullHandling: false, - skipNulls: false, - encode: true, - encoder: Utils.encode -}; - -var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots) { - var obj = object; - if (typeof filter === 'function') { - obj = filter(prefix, obj); - } else if (obj instanceof Date) { - obj = obj.toISOString(); - } else if (obj === null) { - if (strictNullHandling) { - return encoder ? encoder(prefix) : prefix; - } - - obj = ''; - } - - if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || Utils.isBuffer(obj)) { - if (encoder) { - return [encoder(prefix) + '=' + encoder(obj)]; - } - return [prefix + '=' + String(obj)]; - } - - var values = []; - - if (typeof obj === 'undefined') { - return values; - } - - var objKeys; - if (Array.isArray(filter)) { - objKeys = filter; - } else { - var keys = Object.keys(obj); - objKeys = sort ? keys.sort(sort) : keys; - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - if (Array.isArray(obj)) { - values = values.concat(stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots)); - } else { - values = values.concat(stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots)); - } - } - - return values; -}; - -module.exports = function (object, opts) { - var obj = object; - var options = opts || {}; - var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter; - var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls; - var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode; - var encoder = encode ? (typeof options.encoder === 'function' ? options.encoder : defaults.encoder) : null; - var sort = typeof options.sort === 'function' ? options.sort : null; - var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots; - var objKeys; - var filter; - - if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') { - throw new TypeError('Encoder has to be a function.'); - } - - if (typeof options.filter === 'function') { - filter = options.filter; - obj = filter('', obj); - } else if (Array.isArray(options.filter)) { - objKeys = filter = options.filter; - } - - var keys = []; - - if (typeof obj !== 'object' || obj === null) { - return ''; - } - - var arrayFormat; - if (options.arrayFormat in arrayPrefixGenerators) { - arrayFormat = options.arrayFormat; - } else if ('indices' in options) { - arrayFormat = options.indices ? 'indices' : 'repeat'; - } else { - arrayFormat = 'indices'; - } - - var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; - - if (!objKeys) { - objKeys = Object.keys(obj); - } - - if (sort) { - objKeys.sort(sort); - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - keys = keys.concat(stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots)); - } - - return keys.join(delimiter); -}; - -},{"./utils":4}],4:[function(require,module,exports){ -'use strict'; - -var hexTable = (function () { - var array = new Array(256); - for (var i = 0; i < 256; ++i) { - array[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase(); - } - - return array; -}()); - -exports.arrayToObject = function (source, options) { - var obj = options.plainObjects ? Object.create(null) : {}; - for (var i = 0; i < source.length; ++i) { - if (typeof source[i] !== 'undefined') { - obj[i] = source[i]; - } - } - - return obj; -}; - -exports.merge = function (target, source, options) { - if (!source) { - return target; - } - - if (typeof source !== 'object') { - if (Array.isArray(target)) { - target.push(source); - } else if (typeof target === 'object') { - target[source] = true; - } else { - return [target, source]; - } - - return target; - } - - if (typeof target !== 'object') { - return [target].concat(source); - } - - var mergeTarget = target; - if (Array.isArray(target) && !Array.isArray(source)) { - mergeTarget = exports.arrayToObject(target, options); - } - - return Object.keys(source).reduce(function (acc, key) { - var value = source[key]; - - if (Object.prototype.hasOwnProperty.call(acc, key)) { - acc[key] = exports.merge(acc[key], value, options); - } else { - acc[key] = value; - } - return acc; - }, mergeTarget); -}; - -exports.decode = function (str) { - try { - return decodeURIComponent(str.replace(/\+/g, ' ')); - } catch (e) { - return str; - } -}; - -exports.encode = function (str) { - // This code was originally written by Brian White (mscdex) for the io.js core querystring library. - // It has been adapted here for stricter adherence to RFC 3986 - if (str.length === 0) { - return str; - } - - var string = typeof str === 'string' ? str : String(str); - - var out = ''; - for (var i = 0; i < string.length; ++i) { - var c = string.charCodeAt(i); - - if ( - c === 0x2D || // - - c === 0x2E || // . - c === 0x5F || // _ - c === 0x7E || // ~ - (c >= 0x30 && c <= 0x39) || // 0-9 - (c >= 0x41 && c <= 0x5A) || // a-z - (c >= 0x61 && c <= 0x7A) // A-Z - ) { - out += string.charAt(i); - continue; - } - - if (c < 0x80) { - out = out + hexTable[c]; - continue; - } - - if (c < 0x800) { - out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - if (c < 0xD800 || c >= 0xE000) { - out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - i += 1; - c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); - out += hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]; - } - - return out; -}; - -exports.compact = function (obj, references) { - if (typeof obj !== 'object' || obj === null) { - return obj; - } - - var refs = references || []; - var lookup = refs.indexOf(obj); - if (lookup !== -1) { - return refs[lookup]; - } - - refs.push(obj); - - if (Array.isArray(obj)) { - var compacted = []; - - for (var i = 0; i < obj.length; ++i) { - if (obj[i] && typeof obj[i] === 'object') { - compacted.push(exports.compact(obj[i], refs)); - } else if (typeof obj[i] !== 'undefined') { - compacted.push(obj[i]); - } - } - - return compacted; - } - - var keys = Object.keys(obj); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - obj[key] = exports.compact(obj[key], refs); - } - - return obj; -}; - -exports.isRegExp = function (obj) { - return Object.prototype.toString.call(obj) === '[object RegExp]'; -}; - -exports.isBuffer = function (obj) { - if (obj === null || typeof obj === 'undefined') { - return false; - } - - return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); -}; - -},{}]},{},[1])(1) -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/index.js deleted file mode 100755 index 19019590..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/index.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var Stringify = require('./stringify'); -var Parse = require('./parse'); - -module.exports = { - stringify: Stringify, - parse: Parse -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/parse.js deleted file mode 100755 index bf70fd8d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/parse.js +++ /dev/null @@ -1,167 +0,0 @@ -'use strict'; - -var Utils = require('./utils'); - -var defaults = { - delimiter: '&', - depth: 5, - arrayLimit: 20, - parameterLimit: 1000, - strictNullHandling: false, - plainObjects: false, - allowPrototypes: false, - allowDots: false, - decoder: Utils.decode -}; - -var parseValues = function parseValues(str, options) { - var obj = {}; - var parts = str.split(options.delimiter, options.parameterLimit === Infinity ? undefined : options.parameterLimit); - - for (var i = 0; i < parts.length; ++i) { - var part = parts[i]; - var pos = part.indexOf(']=') === -1 ? part.indexOf('=') : part.indexOf(']=') + 1; - - if (pos === -1) { - obj[options.decoder(part)] = ''; - - if (options.strictNullHandling) { - obj[options.decoder(part)] = null; - } - } else { - var key = options.decoder(part.slice(0, pos)); - var val = options.decoder(part.slice(pos + 1)); - - if (Object.prototype.hasOwnProperty.call(obj, key)) { - obj[key] = [].concat(obj[key]).concat(val); - } else { - obj[key] = val; - } - } - } - - return obj; -}; - -var parseObject = function parseObject(chain, val, options) { - if (!chain.length) { - return val; - } - - var root = chain.shift(); - - var obj; - if (root === '[]') { - obj = []; - obj = obj.concat(parseObject(chain, val, options)); - } else { - obj = options.plainObjects ? Object.create(null) : {}; - var cleanRoot = root[0] === '[' && root[root.length - 1] === ']' ? root.slice(1, root.length - 1) : root; - var index = parseInt(cleanRoot, 10); - if ( - !isNaN(index) && - root !== cleanRoot && - String(index) === cleanRoot && - index >= 0 && - (options.parseArrays && index <= options.arrayLimit) - ) { - obj = []; - obj[index] = parseObject(chain, val, options); - } else { - obj[cleanRoot] = parseObject(chain, val, options); - } - } - - return obj; -}; - -var parseKeys = function parseKeys(givenKey, val, options) { - if (!givenKey) { - return; - } - - // Transform dot notation to bracket notation - var key = options.allowDots ? givenKey.replace(/\.([^\.\[]+)/g, '[$1]') : givenKey; - - // The regex chunks - - var parent = /^([^\[\]]*)/; - var child = /(\[[^\[\]]*\])/g; - - // Get the parent - - var segment = parent.exec(key); - - // Stash the parent if it exists - - var keys = []; - if (segment[1]) { - // If we aren't using plain objects, optionally prefix keys - // that would overwrite object prototype properties - if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1])) { - if (!options.allowPrototypes) { - return; - } - } - - keys.push(segment[1]); - } - - // Loop through children appending to the array until we hit depth - - var i = 0; - while ((segment = child.exec(key)) !== null && i < options.depth) { - i += 1; - if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1].replace(/\[|\]/g, ''))) { - if (!options.allowPrototypes) { - continue; - } - } - keys.push(segment[1]); - } - - // If there's a remainder, just add whatever is left - - if (segment) { - keys.push('[' + key.slice(segment.index) + ']'); - } - - return parseObject(keys, val, options); -}; - -module.exports = function (str, opts) { - var options = opts || {}; - - if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') { - throw new TypeError('Decoder has to be a function.'); - } - - options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter; - options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth; - options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit; - options.parseArrays = options.parseArrays !== false; - options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder; - options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots; - options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects; - options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes; - options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit; - options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - - if (str === '' || str === null || typeof str === 'undefined') { - return options.plainObjects ? Object.create(null) : {}; - } - - var tempObj = typeof str === 'string' ? parseValues(str, options) : str; - var obj = options.plainObjects ? Object.create(null) : {}; - - // Iterate over the keys and setup the new object - - var keys = Object.keys(tempObj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var newObj = parseKeys(key, tempObj[key], options); - obj = Utils.merge(obj, newObj, options); - } - - return Utils.compact(obj); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/stringify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/stringify.js deleted file mode 100755 index 6e1c9a26..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/stringify.js +++ /dev/null @@ -1,137 +0,0 @@ -'use strict'; - -var Utils = require('./utils'); - -var arrayPrefixGenerators = { - brackets: function brackets(prefix) { - return prefix + '[]'; - }, - indices: function indices(prefix, key) { - return prefix + '[' + key + ']'; - }, - repeat: function repeat(prefix) { - return prefix; - } -}; - -var defaults = { - delimiter: '&', - strictNullHandling: false, - skipNulls: false, - encode: true, - encoder: Utils.encode -}; - -var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots) { - var obj = object; - if (typeof filter === 'function') { - obj = filter(prefix, obj); - } else if (obj instanceof Date) { - obj = obj.toISOString(); - } else if (obj === null) { - if (strictNullHandling) { - return encoder ? encoder(prefix) : prefix; - } - - obj = ''; - } - - if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || Utils.isBuffer(obj)) { - if (encoder) { - return [encoder(prefix) + '=' + encoder(obj)]; - } - return [prefix + '=' + String(obj)]; - } - - var values = []; - - if (typeof obj === 'undefined') { - return values; - } - - var objKeys; - if (Array.isArray(filter)) { - objKeys = filter; - } else { - var keys = Object.keys(obj); - objKeys = sort ? keys.sort(sort) : keys; - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - if (Array.isArray(obj)) { - values = values.concat(stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots)); - } else { - values = values.concat(stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots)); - } - } - - return values; -}; - -module.exports = function (object, opts) { - var obj = object; - var options = opts || {}; - var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter; - var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls; - var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode; - var encoder = encode ? (typeof options.encoder === 'function' ? options.encoder : defaults.encoder) : null; - var sort = typeof options.sort === 'function' ? options.sort : null; - var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots; - var objKeys; - var filter; - - if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') { - throw new TypeError('Encoder has to be a function.'); - } - - if (typeof options.filter === 'function') { - filter = options.filter; - obj = filter('', obj); - } else if (Array.isArray(options.filter)) { - objKeys = filter = options.filter; - } - - var keys = []; - - if (typeof obj !== 'object' || obj === null) { - return ''; - } - - var arrayFormat; - if (options.arrayFormat in arrayPrefixGenerators) { - arrayFormat = options.arrayFormat; - } else if ('indices' in options) { - arrayFormat = options.indices ? 'indices' : 'repeat'; - } else { - arrayFormat = 'indices'; - } - - var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; - - if (!objKeys) { - objKeys = Object.keys(obj); - } - - if (sort) { - objKeys.sort(sort); - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - keys = keys.concat(stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots)); - } - - return keys.join(delimiter); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/utils.js deleted file mode 100755 index 2c5c8ee5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/lib/utils.js +++ /dev/null @@ -1,164 +0,0 @@ -'use strict'; - -var hexTable = (function () { - var array = new Array(256); - for (var i = 0; i < 256; ++i) { - array[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase(); - } - - return array; -}()); - -exports.arrayToObject = function (source, options) { - var obj = options.plainObjects ? Object.create(null) : {}; - for (var i = 0; i < source.length; ++i) { - if (typeof source[i] !== 'undefined') { - obj[i] = source[i]; - } - } - - return obj; -}; - -exports.merge = function (target, source, options) { - if (!source) { - return target; - } - - if (typeof source !== 'object') { - if (Array.isArray(target)) { - target.push(source); - } else if (typeof target === 'object') { - target[source] = true; - } else { - return [target, source]; - } - - return target; - } - - if (typeof target !== 'object') { - return [target].concat(source); - } - - var mergeTarget = target; - if (Array.isArray(target) && !Array.isArray(source)) { - mergeTarget = exports.arrayToObject(target, options); - } - - return Object.keys(source).reduce(function (acc, key) { - var value = source[key]; - - if (Object.prototype.hasOwnProperty.call(acc, key)) { - acc[key] = exports.merge(acc[key], value, options); - } else { - acc[key] = value; - } - return acc; - }, mergeTarget); -}; - -exports.decode = function (str) { - try { - return decodeURIComponent(str.replace(/\+/g, ' ')); - } catch (e) { - return str; - } -}; - -exports.encode = function (str) { - // This code was originally written by Brian White (mscdex) for the io.js core querystring library. - // It has been adapted here for stricter adherence to RFC 3986 - if (str.length === 0) { - return str; - } - - var string = typeof str === 'string' ? str : String(str); - - var out = ''; - for (var i = 0; i < string.length; ++i) { - var c = string.charCodeAt(i); - - if ( - c === 0x2D || // - - c === 0x2E || // . - c === 0x5F || // _ - c === 0x7E || // ~ - (c >= 0x30 && c <= 0x39) || // 0-9 - (c >= 0x41 && c <= 0x5A) || // a-z - (c >= 0x61 && c <= 0x7A) // A-Z - ) { - out += string.charAt(i); - continue; - } - - if (c < 0x80) { - out = out + hexTable[c]; - continue; - } - - if (c < 0x800) { - out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - if (c < 0xD800 || c >= 0xE000) { - out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - i += 1; - c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); - out += hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]; - } - - return out; -}; - -exports.compact = function (obj, references) { - if (typeof obj !== 'object' || obj === null) { - return obj; - } - - var refs = references || []; - var lookup = refs.indexOf(obj); - if (lookup !== -1) { - return refs[lookup]; - } - - refs.push(obj); - - if (Array.isArray(obj)) { - var compacted = []; - - for (var i = 0; i < obj.length; ++i) { - if (obj[i] && typeof obj[i] === 'object') { - compacted.push(exports.compact(obj[i], refs)); - } else if (typeof obj[i] !== 'undefined') { - compacted.push(obj[i]); - } - } - - return compacted; - } - - var keys = Object.keys(obj); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - obj[key] = exports.compact(obj[key], refs); - } - - return obj; -}; - -exports.isRegExp = function (obj) { - return Object.prototype.toString.call(obj) === '[object RegExp]'; -}; - -exports.isBuffer = function (obj) { - if (obj === null || typeof obj === 'undefined') { - return false; - } - - return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/package.json deleted file mode 100644 index 265c1721..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "qs", - "description": "A querystring parser that supports nesting and arrays, with a depth limit", - "homepage": "https://github.com/ljharb/qs", - "version": "6.2.0", - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/qs.git" - }, - "main": "lib/index.js", - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "keywords": [ - "querystring", - "qs" - ], - "engines": { - "node": ">=0.6" - }, - "dependencies": {}, - "devDependencies": { - "browserify": "^13.0.1", - "tape": "^4.5.1", - "covert": "^1.1.0", - "mkdirp": "^0.5.1", - "eslint": "^2.9.0", - "@ljharb/eslint-config": "^4.0.0", - "parallelshell": "^2.0.0", - "iconv-lite": "^0.4.13", - "evalmd": "^0.0.17" - }, - "scripts": { - "pretest": "parallelshell 'npm run --silent readme' 'npm run --silent lint'", - "test": "npm run --silent coverage", - "tests-only": "node test", - "readme": "evalmd README.md", - "lint": "eslint lib/*.js text/*.js", - "coverage": "covert test", - "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js", - "prepublish": "npm run dist" - }, - "license": "BSD-3-Clause", - "gitHead": "d67d315b606c6bb809fedcbeebbbdb7f863852aa", - "bugs": { - "url": "https://github.com/ljharb/qs/issues" - }, - "_id": "qs@6.2.0", - "_shasum": "3b7848c03c2dece69a9522b0fae8c4126d745f3b", - "_from": "qs@6.2.0", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.1.0", - "_npmUser": { - "name": "ljharb", - "email": "ljharb@gmail.com" - }, - "dist": { - "shasum": "3b7848c03c2dece69a9522b0fae8c4126d745f3b", - "tarball": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz" - }, - "maintainers": [ - { - "name": "hueniverse", - "email": "eran@hammer.io" - }, - { - "name": "ljharb", - "email": "ljharb@gmail.com" - }, - { - "name": "nlf", - "email": "quitlahok@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/qs-6.2.0.tgz_1462749349998_0.03372702235355973" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/index.js deleted file mode 100644 index b6a7d952..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/index.js +++ /dev/null @@ -1,5 +0,0 @@ -require('./parse'); - -require('./stringify'); - -require('./utils'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/parse.js deleted file mode 100755 index 1b79daf5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/parse.js +++ /dev/null @@ -1,423 +0,0 @@ -'use strict'; - -var test = require('tape'); -var qs = require('../'); -var iconv = require('iconv-lite'); - -test('parse()', function (t) { - t.test('parses a simple string', function (st) { - st.deepEqual(qs.parse('0=foo'), { '0': 'foo' }); - st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' }); - st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } }); - st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } }); - st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } }); - st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null }); - st.deepEqual(qs.parse('foo'), { foo: '' }); - st.deepEqual(qs.parse('foo='), { foo: '' }); - st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' }); - st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' }); - st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' }); - st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' }); - st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' }); - st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null }); - st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' }); - st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), { - cht: 'p3', - chd: 't:60,40', - chs: '250x100', - chl: 'Hello|World' - }); - st.end(); - }); - - t.test('allows enabling dot notation', function (st) { - st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' }); - st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } }); - st.end(); - }); - - t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string'); - t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string'); - t.deepEqual( - qs.parse('a[b][c][d][e][f][g][h]=i'), - { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } }, - 'defaults to a depth of 5' - ); - - t.test('only parses one level when depth = 1', function (st) { - st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } }); - st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } }); - st.end(); - }); - - t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array'); - - t.test('parses an explicit array', function (st) { - st.deepEqual(qs.parse('a[]=b'), { a: ['b'] }); - st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] }); - st.end(); - }); - - t.test('parses a mix of simple and explicit arrays', function (st) { - st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[1]=b&a=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a=b&a[1]=c'), { a: ['b', 'c'] }); - st.end(); - }); - - t.test('parses a nested array', function (st) { - st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } }); - st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } }); - st.end(); - }); - - t.test('allows to specify array indices', function (st) { - st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] }); - st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] }); - st.end(); - }); - - t.test('limits specific array indices to 20', function (st) { - st.deepEqual(qs.parse('a[20]=a'), { a: ['a'] }); - st.deepEqual(qs.parse('a[21]=a'), { a: { '21': 'a' } }); - st.end(); - }); - - t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number'); - - t.test('supports encoded = signs', function (st) { - st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' }); - st.end(); - }); - - t.test('is ok with url encoded strings', function (st) { - st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } }); - st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } }); - st.end(); - }); - - t.test('allows brackets in the value', function (st) { - st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' }); - st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' }); - st.end(); - }); - - t.test('allows empty values', function (st) { - st.deepEqual(qs.parse(''), {}); - st.deepEqual(qs.parse(null), {}); - st.deepEqual(qs.parse(undefined), {}); - st.end(); - }); - - t.test('transforms arrays to objects', function (st) { - st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { '0': 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', '0': 'bar' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', '0': 'bar' } }); - st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { '0': 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', '0': 'bar', '1': 'foo' } }); - st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); - st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c'), { a: { '0': 'b', t: 'u', c: true } }); - st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y'), { a: { '0': 'b', '1': 'c', x: 'y' } }); - st.end(); - }); - - t.test('transforms arrays to objects (dot notation)', function (st) { - st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } }); - st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } }); - st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } }); - st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] }); - st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] }); - st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', '0': 'bar' } }); - st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', '0': 'bar' } }); - st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { '0': 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', '0': 'bar', '1': 'foo' } }); - st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); - st.end(); - }); - - t.deepEqual(qs.parse('a[b]=c&a=d'), { a: { b: 'c', d: true } }, 'can add keys to objects'); - - t.test('correctly prunes undefined values when converting an array to an object', function (st) { - st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { '2': 'b', '99999999': 'c' } }); - st.end(); - }); - - t.test('supports malformed uri characters', function (st) { - st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null }); - st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' }); - st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' }); - st.end(); - }); - - t.test('doesn\'t produce empty keys', function (st) { - st.deepEqual(qs.parse('_r=1&'), { '_r': '1' }); - st.end(); - }); - - t.test('cannot access Object prototype', function (st) { - qs.parse('constructor[prototype][bad]=bad'); - qs.parse('bad[constructor][prototype][bad]=bad'); - st.equal(typeof Object.prototype.bad, 'undefined'); - st.end(); - }); - - t.test('parses arrays of objects', function (st) { - st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); - st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] }); - st.end(); - }); - - t.test('allows for empty strings in arrays', function (st) { - st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] }); - st.deepEqual(qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true }), { a: ['b', null, 'c', ''] }); - st.deepEqual(qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true }), { a: ['b', '', 'c', null] }); - st.deepEqual(qs.parse('a[]=&a[]=b&a[]=c'), { a: ['', 'b', 'c'] }); - st.end(); - }); - - t.test('compacts sparse arrays', function (st) { - st.deepEqual(qs.parse('a[10]=1&a[2]=2'), { a: ['2', '1'] }); - st.deepEqual(qs.parse('a[1][b][2][c]=1'), { a: [{ b: [{ c: '1' }] }] }); - st.deepEqual(qs.parse('a[1][2][3][c]=1'), { a: [[[{ c: '1' }]]] }); - st.deepEqual(qs.parse('a[1][2][3][c][1]=1'), { a: [[[{ c: ['1'] }]]] }); - st.end(); - }); - - t.test('parses semi-parsed strings', function (st) { - st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } }); - st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } }); - st.end(); - }); - - t.test('parses buffers correctly', function (st) { - var b = new Buffer('test'); - st.deepEqual(qs.parse({ a: b }), { a: b }); - st.end(); - }); - - t.test('continues parsing when no parent is found', function (st) { - st.deepEqual(qs.parse('[]=&a=b'), { '0': '', a: 'b' }); - st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { '0': null, a: 'b' }); - st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' }); - st.end(); - }); - - t.test('does not error when parsing a very long array', function (st) { - var str = 'a[]=a'; - while (Buffer.byteLength(str) < 128 * 1024) { - str = str + '&' + str; - } - - st.doesNotThrow(function () { qs.parse(str); }); - - st.end(); - }); - - t.test('should not throw when a native prototype has an enumerable property', { parallel: false }, function (st) { - Object.prototype.crash = ''; - Array.prototype.crash = ''; - st.doesNotThrow(qs.parse.bind(null, 'a=b')); - st.deepEqual(qs.parse('a=b'), { a: 'b' }); - st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c')); - st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); - delete Object.prototype.crash; - delete Array.prototype.crash; - st.end(); - }); - - t.test('parses a string with an alternative string delimiter', function (st) { - st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('parses a string with an alternative RegExp delimiter', function (st) { - st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('does not use non-splittable objects as delimiters', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('allows overriding parameter limit', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' }); - st.end(); - }); - - t.test('allows setting the parameter limit to Infinity', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('allows overriding array limit', function (st) { - st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { '0': 'b' } }); - st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } }); - st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { '0': 'b', '1': 'c' } }); - st.end(); - }); - - t.test('allows disabling array parsing', function (st) { - st.deepEqual(qs.parse('a[0]=b&a[1]=c', { parseArrays: false }), { a: { '0': 'b', '1': 'c' } }); - st.end(); - }); - - t.test('parses an object', function (st) { - var input = { - 'user[name]': { 'pop[bob]': 3 }, - 'user[email]': null - }; - - var expected = { - user: { - name: { 'pop[bob]': 3 }, - email: null - } - }; - - var result = qs.parse(input); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('parses an object in dot notation', function (st) { - var input = { - 'user.name': { 'pop[bob]': 3 }, - 'user.email.': null - }; - - var expected = { - user: { - name: { 'pop[bob]': 3 }, - email: null - } - }; - - var result = qs.parse(input, { allowDots: true }); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('parses an object and not child values', function (st) { - var input = { - 'user[name]': { 'pop[bob]': { 'test': 3 } }, - 'user[email]': null - }; - - var expected = { - user: { - name: { 'pop[bob]': { 'test': 3 } }, - email: null - } - }; - - var result = qs.parse(input); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('does not blow up when Buffer global is missing', function (st) { - var tempBuffer = global.Buffer; - delete global.Buffer; - var result = qs.parse('a=b&c=d'); - global.Buffer = tempBuffer; - st.deepEqual(result, { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('does not crash when parsing circular references', function (st) { - var a = {}; - a.b = a; - - var parsed; - - st.doesNotThrow(function () { - parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a }); - }); - - st.equal('foo' in parsed, true, 'parsed has "foo" property'); - st.equal('bar' in parsed.foo, true); - st.equal('baz' in parsed.foo, true); - st.equal(parsed.foo.bar, 'baz'); - st.deepEqual(parsed.foo.baz, a); - st.end(); - }); - - t.test('parses plain objects correctly', function (st) { - var a = Object.create(null); - a.b = 'c'; - - st.deepEqual(qs.parse(a), { b: 'c' }); - var result = qs.parse({ a: a }); - st.equal('a' in result, true, 'result has "a" property'); - st.deepEqual(result.a, a); - st.end(); - }); - - t.test('parses dates correctly', function (st) { - var now = new Date(); - st.deepEqual(qs.parse({ a: now }), { a: now }); - st.end(); - }); - - t.test('parses regular expressions correctly', function (st) { - var re = /^test$/; - st.deepEqual(qs.parse({ a: re }), { a: re }); - st.end(); - }); - - t.test('can allow overwriting prototype properties', function (st) { - st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } }, { prototype: false }); - st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' }, { prototype: false }); - st.end(); - }); - - t.test('can return plain objects', function (st) { - var expected = Object.create(null); - expected.a = Object.create(null); - expected.a.b = 'c'; - expected.a.hasOwnProperty = 'd'; - st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected); - st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null)); - var expectedArray = Object.create(null); - expectedArray.a = Object.create(null); - expectedArray.a['0'] = 'b'; - expectedArray.a.c = 'd'; - st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray); - st.end(); - }); - - t.test('can parse with custom encoding', function (st) { - st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', { - decoder: function (str) { - var reg = /\%([0-9A-F]{2})/ig; - var result = []; - var parts; - var last = 0; - while (parts = reg.exec(str)) { - result.push(parseInt(parts[1], 16)); - last = parts.index + parts[0].length; - } - return iconv.decode(new Buffer(result), 'shift_jis').toString(); - } - }), { 県: '大阪府' }); - st.end(); - }); - - t.test('throws error with wrong decoder', function (st) { - st.throws(function () { - qs.parse({}, { - decoder: 'string' - }); - }, new TypeError('Decoder has to be a function.')); - st.end(); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/stringify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/stringify.js deleted file mode 100755 index 699397e3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/stringify.js +++ /dev/null @@ -1,305 +0,0 @@ -'use strict'; - -var test = require('tape'); -var qs = require('../'); -var iconv = require('iconv-lite'); - -test('stringify()', function (t) { - t.test('stringifies a querystring object', function (st) { - st.equal(qs.stringify({ a: 'b' }), 'a=b'); - st.equal(qs.stringify({ a: 1 }), 'a=1'); - st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2'); - st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z'); - st.equal(qs.stringify({ a: '€' }), 'a=%E2%82%AC'); - st.equal(qs.stringify({ a: '' }), 'a=%EE%80%80'); - st.equal(qs.stringify({ a: 'א' }), 'a=%D7%90'); - st.equal(qs.stringify({ a: '𐐷' }), 'a=%F0%90%90%B7'); - st.end(); - }); - - t.test('stringifies a nested object', function (st) { - st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); - st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e'); - st.end(); - }); - - t.test('stringifies a nested object with dots notation', function (st) { - st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c'); - st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e'); - st.end(); - }); - - t.test('stringifies an array value', function (st) { - st.equal(qs.stringify({ a: ['b', 'c', 'd'] }), 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d'); - st.end(); - }); - - t.test('omits nulls when asked', function (st) { - st.equal(qs.stringify({ a: 'b', c: null }, { skipNulls: true }), 'a=b'); - st.end(); - }); - - - t.test('omits nested nulls when asked', function (st) { - st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('omits array indices when asked', function (st) { - st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d'); - st.end(); - }); - - t.test('stringifies a nested array value', function (st) { - st.equal(qs.stringify({ a: { b: ['c', 'd'] } }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d'); - st.end(); - }); - - t.test('stringifies a nested array value with dots notation', function (st) { - st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { allowDots: true, encode: false }), 'a.b[0]=c&a.b[1]=d'); - st.end(); - }); - - t.test('stringifies an object inside an array', function (st) { - st.equal(qs.stringify({ a: [{ b: 'c' }] }), 'a%5B0%5D%5Bb%5D=c'); - st.equal(qs.stringify({ a: [{ b: { c: [1] } }] }), 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1'); - st.end(); - }); - - t.test('stringifies an array with mixed objects and primitives', function (st) { - st.equal(qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false }), 'a[0][b]=1&a[1]=2&a[2]=3'); - st.end(); - }); - - t.test('stringifies an object inside an array with dots notation', function (st) { - st.equal(qs.stringify({ a: [{ b: 'c' }] }, { allowDots: true, encode: false }), 'a[0].b=c'); - st.equal(qs.stringify({ a: [{ b: { c: [1] } }] }, { allowDots: true, encode: false }), 'a[0].b.c[0]=1'); - st.end(); - }); - - t.test('does not omit object keys when indices = false', function (st) { - st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when indices=true', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when no arrayFormat=indices', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses repeat notation for arrays when no arrayFormat=repeat', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c'); - st.end(); - }); - - t.test('uses brackets notation for arrays when no arrayFormat=brackets', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c'); - st.end(); - }); - - t.test('stringifies a complicated object', function (st) { - st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e'); - st.end(); - }); - - t.test('stringifies an empty value', function (st) { - st.equal(qs.stringify({ a: '' }), 'a='); - st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a'); - - st.equal(qs.stringify({ a: '', b: '' }), 'a=&b='); - st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b='); - - st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D='); - st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D'); - st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D='); - - st.end(); - }); - - t.test('stringifies an empty object', function (st) { - var obj = Object.create(null); - obj.a = 'b'; - st.equal(qs.stringify(obj), 'a=b'); - st.end(); - }); - - t.test('returns an empty string for invalid input', function (st) { - st.equal(qs.stringify(undefined), ''); - st.equal(qs.stringify(false), ''); - st.equal(qs.stringify(null), ''); - st.equal(qs.stringify(''), ''); - st.end(); - }); - - t.test('stringifies an object with an empty object as a child', function (st) { - var obj = { - a: Object.create(null) - }; - - obj.a.b = 'c'; - st.equal(qs.stringify(obj), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('drops keys with a value of undefined', function (st) { - st.equal(qs.stringify({ a: undefined }), ''); - - st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D'); - st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D='); - st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D='); - st.end(); - }); - - t.test('url encodes values', function (st) { - st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); - st.end(); - }); - - t.test('stringifies a date', function (st) { - var now = new Date(); - var str = 'a=' + encodeURIComponent(now.toISOString()); - st.equal(qs.stringify({ a: now }), str); - st.end(); - }); - - t.test('stringifies the weird object from qs', function (st) { - st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F'); - st.end(); - }); - - t.test('skips properties that are part of the object prototype', function (st) { - Object.prototype.crash = 'test'; - st.equal(qs.stringify({ a: 'b' }), 'a=b'); - st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); - delete Object.prototype.crash; - st.end(); - }); - - t.test('stringifies boolean values', function (st) { - st.equal(qs.stringify({ a: true }), 'a=true'); - st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true'); - st.equal(qs.stringify({ b: false }), 'b=false'); - st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false'); - st.end(); - }); - - t.test('stringifies buffer values', function (st) { - st.equal(qs.stringify({ a: new Buffer('test') }), 'a=test'); - st.equal(qs.stringify({ a: { b: new Buffer('test') } }), 'a%5Bb%5D=test'); - st.end(); - }); - - t.test('stringifies an object using an alternative delimiter', function (st) { - st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); - st.end(); - }); - - t.test('doesn\'t blow up when Buffer global is missing', function (st) { - var tempBuffer = global.Buffer; - delete global.Buffer; - var result = qs.stringify({ a: 'b', c: 'd' }); - global.Buffer = tempBuffer; - st.equal(result, 'a=b&c=d'); - st.end(); - }); - - t.test('selects properties when filter=array', function (st) { - st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b'); - st.equal(qs.stringify({ a: 1 }, { filter: [] }), ''); - st.equal(qs.stringify({ a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, { filter: ['a', 'b', 0, 2] }), 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3'); - st.end(); - }); - - t.test('supports custom representations when filter=function', function (st) { - var calls = 0; - var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } }; - var filterFunc = function (prefix, value) { - calls++; - if (calls === 1) { - st.equal(prefix, '', 'prefix is empty'); - st.equal(value, obj); - } else if (prefix === 'c') { - return; - } else if (value instanceof Date) { - st.equal(prefix, 'e[f]'); - return value.getTime(); - } - return value; - }; - - st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000'); - st.equal(calls, 5); - st.end(); - }); - - t.test('can disable uri encoding', function (st) { - st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b'); - st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c'); - st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c'); - st.end(); - }); - - t.test('can sort the keys', function (st) { - var sort = function (a, b) { return a.localeCompare(b); }; - st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y'); - st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a'); - st.end(); - }); - - t.test('can sort the keys at depth 3 or more too', function (st) { - var sort = function (a, b) { return a.localeCompare(b); }; - st.equal(qs.stringify({ a: 'a', z: { zj: {zjb: 'zjb', zja: 'zja'}, zi: {zib: 'zib', zia: 'zia'} }, b: 'b' }, { sort: sort, encode: false }), 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb'); - st.equal(qs.stringify({ a: 'a', z: { zj: {zjb: 'zjb', zja: 'zja'}, zi: {zib: 'zib', zia: 'zia'} }, b: 'b' }, { sort: null, encode: false }), 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b'); - st.end(); - }); - - t.test('can stringify with custom encoding', function (st) { - st.equal(qs.stringify({ 県: '大阪府', '': ''}, { - encoder: function (str) { - if (str.length === 0) { - return ''; - } - var buf = iconv.encode(str, 'shiftjis'); - var result = []; - for (var i=0; i < buf.length; ++i) { - result.push(buf.readUInt8(i).toString(16)); - } - return '%' + result.join('%'); - } - }), '%8c%a7=%91%e5%8d%e3%95%7b&='); - st.end(); - }); - - t.test('throws error with wrong encoder', function (st) { - st.throws(function () { - qs.stringify({}, { - encoder: 'string' - }); - }, new TypeError('Encoder has to be a function.')); - st.end(); - }); - - t.test('can use custom encoder for a buffer object', { - skip: typeof Buffer === 'undefined' - }, function (st) { - st.equal(qs.stringify({ a: new Buffer([1]) }, { - encoder: function (buffer) { - if (typeof buffer === 'string') { - return buffer; - } - return String.fromCharCode(buffer.readUInt8(0) + 97); - } - }), 'a=b'); - st.end(); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/utils.js deleted file mode 100755 index 4a8d8246..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/qs/test/utils.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var test = require('tape'); -var utils = require('../lib/utils'); - -test('merge()', function (t) { - t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key'); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/HISTORY.md deleted file mode 100644 index 720c8603..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/HISTORY.md +++ /dev/null @@ -1,209 +0,0 @@ -2.1.7 / 2016-06-19 -================== - - * deps: bytes@2.4.0 - * perf: remove double-cleanup on happy path - -2.1.6 / 2016-03-07 -================== - - * deps: bytes@2.3.0 - - Drop partial bytes on all parsed units - - Fix parsing byte string that looks like hex - -2.1.5 / 2015-11-30 -================== - - * deps: bytes@2.2.0 - * deps: iconv-lite@0.4.13 - -2.1.4 / 2015-09-27 -================== - - * Fix masking critical errors from `iconv-lite` - * deps: iconv-lite@0.4.12 - - Fix CESU-8 decoding in Node.js 4.x - -2.1.3 / 2015-09-12 -================== - - * Fix sync callback when attaching data listener causes sync read - - Node.js 0.10 compatibility issue - -2.1.2 / 2015-07-05 -================== - - * Fix error stack traces to skip `makeError` - * deps: iconv-lite@0.4.11 - - Add encoding CESU-8 - -2.1.1 / 2015-06-14 -================== - - * Use `unpipe` module for unpiping requests - -2.1.0 / 2015-05-28 -================== - - * deps: iconv-lite@0.4.10 - - Improved UTF-16 endianness detection - - Leading BOM is now removed when decoding - - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails - -2.0.2 / 2015-05-21 -================== - - * deps: bytes@2.1.0 - - Slight optimizations - -2.0.1 / 2015-05-10 -================== - - * Fix a false-positive when unpiping in Node.js 0.8 - -2.0.0 / 2015-05-08 -================== - - * Return a promise without callback instead of thunk - * deps: bytes@2.0.1 - - units no longer case sensitive when parsing - -1.3.4 / 2015-04-15 -================== - - * Fix hanging callback if request aborts during read - * deps: iconv-lite@0.4.8 - - Add encoding alias UNICODE-1-1-UTF-7 - -1.3.3 / 2015-02-08 -================== - - * deps: iconv-lite@0.4.7 - - Gracefully support enumerables on `Object.prototype` - -1.3.2 / 2015-01-20 -================== - - * deps: iconv-lite@0.4.6 - - Fix rare aliases of single-byte encodings - -1.3.1 / 2014-11-21 -================== - - * deps: iconv-lite@0.4.5 - - Fix Windows-31J and X-SJIS encoding support - -1.3.0 / 2014-07-20 -================== - - * Fully unpipe the stream on error - - Fixes `Cannot switch to old mode now` error on Node.js 0.10+ - -1.2.3 / 2014-07-20 -================== - - * deps: iconv-lite@0.4.4 - - Added encoding UTF-7 - -1.2.2 / 2014-06-19 -================== - - * Send invalid encoding error to callback - -1.2.1 / 2014-06-15 -================== - - * deps: iconv-lite@0.4.3 - - Added encodings UTF-16BE and UTF-16 with BOM - -1.2.0 / 2014-06-13 -================== - - * Passing string as `options` interpreted as encoding - * Support all encodings from `iconv-lite` - -1.1.7 / 2014-06-12 -================== - - * use `string_decoder` module from npm - -1.1.6 / 2014-05-27 -================== - - * check encoding for old streams1 - * support node.js < 0.10.6 - -1.1.5 / 2014-05-14 -================== - - * bump bytes - -1.1.4 / 2014-04-19 -================== - - * allow true as an option - * bump bytes - -1.1.3 / 2014-03-02 -================== - - * fix case when length=null - -1.1.2 / 2013-12-01 -================== - - * be less strict on state.encoding check - -1.1.1 / 2013-11-27 -================== - - * add engines - -1.1.0 / 2013-11-27 -================== - - * add err.statusCode and err.type - * allow for encoding option to be true - * pause the stream instead of dumping on error - * throw if the stream's encoding is set - -1.0.1 / 2013-11-19 -================== - - * dont support streams1, throw if dev set encoding - -1.0.0 / 2013-11-17 -================== - - * rename `expected` option to `length` - -0.2.0 / 2013-11-15 -================== - - * republish - -0.1.1 / 2013-11-15 -================== - - * use bytes - -0.1.0 / 2013-11-11 -================== - - * generator support - -0.0.3 / 2013-10-10 -================== - - * update repo - -0.0.2 / 2013-09-14 -================== - - * dump stream on bad headers - * listen to events after defining received and buffers - -0.0.1 / 2013-09-14 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/LICENSE deleted file mode 100644 index d695c8fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-2014 Jonathan Ong -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/README.md deleted file mode 100644 index 5799c822..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/README.md +++ /dev/null @@ -1,126 +0,0 @@ -# raw-body - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] - -Gets the entire buffer of a stream either as a `Buffer` or a string. -Validates the stream's length against an expected length and maximum limit. -Ideal for parsing request bodies. - -## API - -```js -var getRawBody = require('raw-body') -``` - -### getRawBody(stream, [options], [callback]) - -**Returns a promise if no callback specified and global `Promise` exists.** - -Options: - -- `length` - The length of the stream. - If the contents of the stream do not add up to this length, - an `400` error code is returned. -- `limit` - The byte limit of the body. - If the body ends up being larger than this limit, - a `413` error code is returned. -- `encoding` - The requested encoding. - By default, a `Buffer` instance will be returned. - Most likely, you want `utf8`. - You can use any type of encoding supported by [iconv-lite](https://www.npmjs.org/package/iconv-lite#readme). - -You can also pass a string in place of options to just specify the encoding. - -`callback(err, res)`: - -- `err` - the following attributes will be defined if applicable: - - - `limit` - the limit in bytes - - `length` and `expected` - the expected length of the stream - - `received` - the received bytes - - `encoding` - the invalid encoding - - `status` and `statusCode` - the corresponding status code for the error - - `type` - either `entity.too.large`, `request.aborted`, `request.size.invalid`, `stream.encoding.set`, or `encoding.unsupported` - -- `res` - the result, either as a `String` if an encoding was set or a `Buffer` otherwise. - -If an error occurs, the stream will be paused, everything unpiped, -and you are responsible for correctly disposing the stream. -For HTTP requests, no handling is required if you send a response. -For streams that use file descriptors, you should `stream.destroy()` or `stream.close()` to prevent leaks. - -## Examples - -### Simple Express example - -```js -var getRawBody = require('raw-body') -var typer = require('media-typer') - -app.use(function (req, res, next) { - getRawBody(req, { - length: req.headers['content-length'], - limit: '1mb', - encoding: typer.parse(req.headers['content-type']).parameters.charset - }, function (err, string) { - if (err) return next(err) - req.text = string - next() - }) -}) -``` - -### Simple Koa example - -```js -app.use(function* (next) { - var string = yield getRawBody(this.req, { - length: this.length, - limit: '1mb', - encoding: this.charset - }) -}) -``` - -### Using as a promise - -To use this library as a promise, simply omit the `callback` and a promise is -returned, provided that a global `Promise` is defined. - -```js -var getRawBody = require('raw-body') -var http = require('http') - -var server = http.createServer(function (req, res) { - getRawBody(req) - .then(function (buf) { - res.statusCode = 200 - res.end(buf.length + ' bytes submitted') - }) - .catch(function (err) { - res.statusCode = 500 - res.end(err.message) - }) -}) - -server.listen(3000) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/raw-body.svg -[npm-url]: https://npmjs.org/package/raw-body -[node-version-image]: https://img.shields.io/node/v/raw-body.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/stream-utils/raw-body/master.svg -[travis-url]: https://travis-ci.org/stream-utils/raw-body -[coveralls-image]: https://img.shields.io/coveralls/stream-utils/raw-body/master.svg -[coveralls-url]: https://coveralls.io/r/stream-utils/raw-body?branch=master -[downloads-image]: https://img.shields.io/npm/dm/raw-body.svg -[downloads-url]: https://npmjs.org/package/raw-body diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/index.js deleted file mode 100644 index 57b9c11e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/index.js +++ /dev/null @@ -1,320 +0,0 @@ -/*! - * raw-body - * Copyright(c) 2013-2014 Jonathan Ong - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var bytes = require('bytes') -var iconv = require('iconv-lite') -var unpipe = require('unpipe') - -/** - * Module exports. - * @public - */ - -module.exports = getRawBody - -/** - * Module variables. - * @private - */ - -var iconvEncodingMessageRegExp = /^Encoding not recognized: / - -/** - * Get the decoder for a given encoding. - * - * @param {string} encoding - * @private - */ - -function getDecoder (encoding) { - if (!encoding) return null - - try { - return iconv.getDecoder(encoding) - } catch (e) { - // error getting decoder - if (!iconvEncodingMessageRegExp.test(e.message)) throw e - - // the encoding was not found - throw createError(415, 'specified encoding unsupported', 'encoding.unsupported', { - encoding: encoding - }) - } -} - -/** - * Get the raw body of a stream (typically HTTP). - * - * @param {object} stream - * @param {object|string|function} [options] - * @param {function} [callback] - * @public - */ - -function getRawBody (stream, options, callback) { - var done = callback - var opts = options || {} - - if (options === true || typeof options === 'string') { - // short cut for encoding - opts = { - encoding: options - } - } - - if (typeof options === 'function') { - done = options - opts = {} - } - - // validate callback is a function, if provided - if (done !== undefined && typeof done !== 'function') { - throw new TypeError('argument callback must be a function') - } - - // require the callback without promises - if (!done && !global.Promise) { - throw new TypeError('argument callback is required') - } - - // get encoding - var encoding = opts.encoding !== true - ? opts.encoding - : 'utf-8' - - // convert the limit to an integer - var limit = bytes.parse(opts.limit) - - // convert the expected length to an integer - var length = opts.length != null && !isNaN(opts.length) - ? parseInt(opts.length, 10) - : null - - if (done) { - // classic callback style - return readStream(stream, encoding, length, limit, done) - } - - return new Promise(function executor (resolve, reject) { - readStream(stream, encoding, length, limit, function onRead (err, buf) { - if (err) return reject(err) - resolve(buf) - }) - }) -} - -/** - * Halt a stream. - * - * @param {Object} stream - * @private - */ - -function halt (stream) { - // unpipe everything from the stream - unpipe(stream) - - // pause stream - if (typeof stream.pause === 'function') { - stream.pause() - } -} - -/** - * Make a serializable error object. - * - * To create serializable errors you must re-set message so - * that it is enumerable and you must re configure the type - * property so that is writable and enumerable. - * - * @param {number} status - * @param {string} message - * @param {string} type - * @param {object} props - * @private - */ - -function createError (status, message, type, props) { - var error = new Error() - - // capture stack trace - Error.captureStackTrace(error, createError) - - // set free-form properties - for (var prop in props) { - error[prop] = props[prop] - } - - // set message - error.message = message - - // set status - error.status = status - error.statusCode = status - - // set type - Object.defineProperty(error, 'type', { - value: type, - enumerable: true, - writable: true, - configurable: true - }) - - return error -} - -/** - * Read the data from the stream. - * - * @param {object} stream - * @param {string} encoding - * @param {number} length - * @param {number} limit - * @param {function} callback - * @public - */ - -function readStream (stream, encoding, length, limit, callback) { - var complete = false - var sync = true - - // check the length and limit options. - // note: we intentionally leave the stream paused, - // so users should handle the stream themselves. - if (limit !== null && length !== null && length > limit) { - return done(createError(413, 'request entity too large', 'entity.too.large', { - expected: length, - length: length, - limit: limit - })) - } - - // streams1: assert request encoding is buffer. - // streams2+: assert the stream encoding is buffer. - // stream._decoder: streams1 - // state.encoding: streams2 - // state.decoder: streams2, specifically < 0.10.6 - var state = stream._readableState - if (stream._decoder || (state && (state.encoding || state.decoder))) { - // developer error - return done(createError(500, 'stream encoding should not be set', 'stream.encoding.set')) - } - - var received = 0 - var decoder - - try { - decoder = getDecoder(encoding) - } catch (err) { - return done(err) - } - - var buffer = decoder - ? '' - : [] - - // attach listeners - stream.on('aborted', onAborted) - stream.on('close', cleanup) - stream.on('data', onData) - stream.on('end', onEnd) - stream.on('error', onEnd) - - // mark sync section complete - sync = false - - function done () { - var args = new Array(arguments.length) - - // copy arguments - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - - // mark complete - complete = true - - if (sync) { - process.nextTick(invokeCallback) - } else { - invokeCallback() - } - - function invokeCallback () { - cleanup() - - if (args[0]) { - // halt the stream on error - halt(stream) - } - - callback.apply(null, args) - } - } - - function onAborted () { - if (complete) return - - done(createError(400, 'request aborted', 'request.aborted', { - code: 'ECONNABORTED', - expected: length, - length: length, - received: received - })) - } - - function onData (chunk) { - if (complete) return - - received += chunk.length - decoder - ? buffer += decoder.write(chunk) - : buffer.push(chunk) - - if (limit !== null && received > limit) { - done(createError(413, 'request entity too large', 'entity.too.large', { - limit: limit, - received: received - })) - } - } - - function onEnd (err) { - if (complete) return - if (err) return done(err) - - if (length !== null && received !== length) { - done(createError(400, 'request size did not match content length', 'request.size.invalid', { - expected: length, - length: length, - received: received - })) - } else { - var string = decoder - ? buffer + (decoder.end() || '') - : Buffer.concat(buffer) - done(null, string) - } - } - - function cleanup () { - buffer = null - - stream.removeListener('aborted', onAborted) - stream.removeListener('data', onData) - stream.removeListener('end', onEnd) - stream.removeListener('error', onEnd) - stream.removeListener('close', cleanup) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/HISTORY.md deleted file mode 100644 index 85e0f8d7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/HISTORY.md +++ /dev/null @@ -1,4 +0,0 @@ -1.0.0 / 2015-06-14 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/LICENSE deleted file mode 100644 index aed01382..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/README.md deleted file mode 100644 index e536ad2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# unpipe - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Unpipe a stream from all destinations. - -## Installation - -```sh -$ npm install unpipe -``` - -## API - -```js -var unpipe = require('unpipe') -``` - -### unpipe(stream) - -Unpipes all destinations from a given stream. With stream 2+, this is -equivalent to `stream.unpipe()`. When used with streams 1 style streams -(typically Node.js 0.8 and below), this module attempts to undo the -actions done in `stream.pipe(dest)`. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/unpipe.svg -[npm-url]: https://npmjs.org/package/unpipe -[node-image]: https://img.shields.io/node/v/unpipe.svg -[node-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/stream-utils/unpipe.svg -[travis-url]: https://travis-ci.org/stream-utils/unpipe -[coveralls-image]: https://img.shields.io/coveralls/stream-utils/unpipe.svg -[coveralls-url]: https://coveralls.io/r/stream-utils/unpipe?branch=master -[downloads-image]: https://img.shields.io/npm/dm/unpipe.svg -[downloads-url]: https://npmjs.org/package/unpipe diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/index.js deleted file mode 100644 index 15c3d97a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/index.js +++ /dev/null @@ -1,69 +0,0 @@ -/*! - * unpipe - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = unpipe - -/** - * Determine if there are Node.js pipe-like data listeners. - * @private - */ - -function hasPipeDataListeners(stream) { - var listeners = stream.listeners('data') - - for (var i = 0; i < listeners.length; i++) { - if (listeners[i].name === 'ondata') { - return true - } - } - - return false -} - -/** - * Unpipe a stream from all destinations. - * - * @param {object} stream - * @public - */ - -function unpipe(stream) { - if (!stream) { - throw new TypeError('argument stream is required') - } - - if (typeof stream.unpipe === 'function') { - // new-style - stream.unpipe() - return - } - - // Node.js 0.8 hack - if (!hasPipeDataListeners(stream)) { - return - } - - var listener - var listeners = stream.listeners('close') - - for (var i = 0; i < listeners.length; i++) { - listener = listeners[i] - - if (listener.name !== 'cleanup' && listener.name !== 'onclose') { - continue - } - - // invoke the listener - listener.call(stream) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/package.json deleted file mode 100644 index ae1b405a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/node_modules/unpipe/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "unpipe", - "description": "Unpipe a stream from all destinations", - "version": "1.0.0", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/stream-utils/unpipe.git" - }, - "devDependencies": { - "istanbul": "0.3.15", - "mocha": "2.2.5", - "readable-stream": "1.1.13" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "d2df901c06487430e78dca62b6edb8bb2fc5e99d", - "bugs": { - "url": "https://github.com/stream-utils/unpipe/issues" - }, - "homepage": "https://github.com/stream-utils/unpipe", - "_id": "unpipe@1.0.0", - "_shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec", - "_from": "unpipe@1.0.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec", - "tarball": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/package.json deleted file mode 100644 index 772a3f09..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/raw-body/package.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "name": "raw-body", - "description": "Get and validate the raw body of a readable stream.", - "version": "2.1.7", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Raynos", - "email": "raynos2@gmail.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/stream-utils/raw-body.git" - }, - "dependencies": { - "bytes": "2.4.0", - "iconv-lite": "0.4.13", - "unpipe": "1.0.0" - }, - "devDependencies": { - "bluebird": "3.4.1", - "eslint": "2.13.0", - "eslint-config-standard": "5.3.1", - "eslint-plugin-promise": "1.3.2", - "eslint-plugin-standard": "1.3.2", - "istanbul": "0.4.3", - "mocha": "2.5.3", - "readable-stream": "2.1.2", - "through2": "2.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "scripts": { - "lint": "eslint **/*.js", - "test": "mocha --trace-deprecation --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/" - }, - "gitHead": "9d13a27048cc97958fc14fc12418c6aa76f0b1f9", - "bugs": { - "url": "https://github.com/stream-utils/raw-body/issues" - }, - "homepage": "https://github.com/stream-utils/raw-body#readme", - "_id": "raw-body@2.1.7", - "_shasum": "adfeace2e4fb3098058014d08c072dcc59758774", - "_from": "raw-body@>=2.1.7 <2.2.0", - "_npmVersion": "2.15.1", - "_nodeVersion": "4.4.3", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "adfeace2e4fb3098058014d08c072dcc59758774", - "tarball": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/raw-body-2.1.7.tgz_1466363663010_0.38383363327011466" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/HISTORY.md deleted file mode 100644 index 5ec118c7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/HISTORY.md +++ /dev/null @@ -1,206 +0,0 @@ -1.6.13 / 2016-05-18 -=================== - - * deps: mime-types@~2.1.11 - - Add new mime types - -1.6.12 / 2016-02-28 -=================== - - * deps: mime-types@~2.1.10 - - Add new mime types - - Fix extension of `application/dash+xml` - - Update primary extension for `audio/mp4` - -1.6.11 / 2016-01-29 -=================== - - * deps: mime-types@~2.1.9 - - Add new mime types - -1.6.10 / 2015-12-01 -=================== - - * deps: mime-types@~2.1.8 - - Add new mime types - -1.6.9 / 2015-09-27 -================== - - * deps: mime-types@~2.1.7 - - Add new mime types - -1.6.8 / 2015-09-04 -================== - - * deps: mime-types@~2.1.6 - - Add new mime types - -1.6.7 / 2015-08-20 -================== - - * Fix type error when given invalid type to match against - * deps: mime-types@~2.1.5 - - Add new mime types - -1.6.6 / 2015-07-31 -================== - - * deps: mime-types@~2.1.4 - - Add new mime types - -1.6.5 / 2015-07-16 -================== - - * deps: mime-types@~2.1.3 - - Add new mime types - -1.6.4 / 2015-07-01 -================== - - * deps: mime-types@~2.1.2 - - Add new mime types - * perf: enable strict mode - * perf: remove argument reassignment - -1.6.3 / 2015-06-08 -================== - - * deps: mime-types@~2.1.1 - - Add new mime types - * perf: reduce try block size - * perf: remove bitwise operations - -1.6.2 / 2015-05-10 -================== - - * deps: mime-types@~2.0.11 - - Add new mime types - -1.6.1 / 2015-03-13 -================== - - * deps: mime-types@~2.0.10 - - Add new mime types - -1.6.0 / 2015-02-12 -================== - - * fix false-positives in `hasBody` `Transfer-Encoding` check - * support wildcard for both type and subtype (`*/*`) - -1.5.7 / 2015-02-09 -================== - - * fix argument reassignment - * deps: mime-types@~2.0.9 - - Add new mime types - -1.5.6 / 2015-01-29 -================== - - * deps: mime-types@~2.0.8 - - Add new mime types - -1.5.5 / 2014-12-30 -================== - - * deps: mime-types@~2.0.7 - - Add new mime types - - Fix missing extensions - - Fix various invalid MIME type entries - - Remove example template MIME types - - deps: mime-db@~1.5.0 - -1.5.4 / 2014-12-10 -================== - - * deps: mime-types@~2.0.4 - - Add new mime types - - deps: mime-db@~1.3.0 - -1.5.3 / 2014-11-09 -================== - - * deps: mime-types@~2.0.3 - - Add new mime types - - deps: mime-db@~1.2.0 - -1.5.2 / 2014-09-28 -================== - - * deps: mime-types@~2.0.2 - - Add new mime types - - deps: mime-db@~1.1.0 - -1.5.1 / 2014-09-07 -================== - - * Support Node.js 0.6 - * deps: media-typer@0.3.0 - * deps: mime-types@~2.0.1 - - Support Node.js 0.6 - -1.5.0 / 2014-09-05 -================== - - * fix `hasbody` to be true for `content-length: 0` - -1.4.0 / 2014-09-02 -================== - - * update mime-types - -1.3.2 / 2014-06-24 -================== - - * use `~` range on mime-types - -1.3.1 / 2014-06-19 -================== - - * fix global variable leak - -1.3.0 / 2014-06-19 -================== - - * improve type parsing - - - invalid media type never matches - - media type not case-sensitive - - extra LWS does not affect results - -1.2.2 / 2014-06-19 -================== - - * fix behavior on unknown type argument - -1.2.1 / 2014-06-03 -================== - - * switch dependency from `mime` to `mime-types@1.0.0` - -1.2.0 / 2014-05-11 -================== - - * support suffix matching: - - - `+json` matches `application/vnd+json` - - `*/vnd+json` matches `application/vnd+json` - - `application/*+json` matches `application/vnd+json` - -1.1.0 / 2014-04-12 -================== - - * add non-array values support - * expose internal utilities: - - - `.is()` - - `.hasBody()` - - `.normalize()` - - `.match()` - -1.0.1 / 2014-03-30 -================== - - * add `multipart` as a shorthand diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/LICENSE deleted file mode 100644 index 386b7b69..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/README.md deleted file mode 100644 index 008a7af5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/README.md +++ /dev/null @@ -1,136 +0,0 @@ -# type-is - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Infer the content-type of a request. - -### Install - -```sh -$ npm install type-is -``` - -## API - -```js -var http = require('http') -var is = require('type-is') - -http.createServer(function (req, res) { - var istext = is(req, ['text/*']) - res.end('you ' + (istext ? 'sent' : 'did not send') + ' me text') -}) -``` - -### type = is(request, types) - -`request` is the node HTTP request. `types` is an array of types. - -```js -// req.headers.content-type = 'application/json' - -is(req, ['json']) // 'json' -is(req, ['html', 'json']) // 'json' -is(req, ['application/*']) // 'application/json' -is(req, ['application/json']) // 'application/json' - -is(req, ['html']) // false -``` - -### is.hasBody(request) - -Returns a Boolean if the given `request` has a body, regardless of the -`Content-Type` header. - -Having a body has no relation to how large the body is (it may be 0 bytes). -This is similar to how file existence works. If a body does exist, then this -indicates that there is data to read from the Node.js request stream. - -```js -if (is.hasBody(req)) { - // read the body, since there is one - - req.on('data', function (chunk) { - // ... - }) -} -``` - -### type = is.is(mediaType, types) - -`mediaType` is the [media type](https://tools.ietf.org/html/rfc6838) string. `types` is an array of types. - -```js -var mediaType = 'application/json' - -is.is(mediaType, ['json']) // 'json' -is.is(mediaType, ['html', 'json']) // 'json' -is.is(mediaType, ['application/*']) // 'application/json' -is.is(mediaType, ['application/json']) // 'application/json' - -is.is(mediaType, ['html']) // false -``` - -### Each type can be: - -- An extension name such as `json`. This name will be returned if matched. -- A mime type such as `application/json`. -- A mime type with a wildcard such as `*/*` or `*/json` or `application/*`. The full mime type will be returned if matched. -- A suffix such as `+json`. This can be combined with a wildcard such as `*/vnd+json` or `application/*+json`. The full mime type will be returned if matched. - -`false` will be returned if no type matches or the content type is invalid. - -`null` will be returned if the request does not have a body. - -## Examples - -#### Example body parser - -```js -var is = require('type-is'); - -function bodyParser(req, res, next) { - if (!is.hasBody(req)) { - return next() - } - - switch (is(req, ['urlencoded', 'json', 'multipart'])) { - case 'urlencoded': - // parse urlencoded body - throw new Error('implement urlencoded body parsing') - break - case 'json': - // parse json body - throw new Error('implement json body parsing') - break - case 'multipart': - // parse multipart body - throw new Error('implement multipart body parsing') - break - default: - // 415 error code - res.statusCode = 415 - res.end() - return - } -} -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/type-is.svg -[npm-url]: https://npmjs.org/package/type-is -[node-version-image]: https://img.shields.io/node/v/type-is.svg -[node-version-url]: https://nodejs.org/en/download/ -[travis-image]: https://img.shields.io/travis/jshttp/type-is/master.svg -[travis-url]: https://travis-ci.org/jshttp/type-is -[coveralls-image]: https://img.shields.io/coveralls/jshttp/type-is/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/type-is?branch=master -[downloads-image]: https://img.shields.io/npm/dm/type-is.svg -[downloads-url]: https://npmjs.org/package/type-is diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/index.js deleted file mode 100644 index 4da73011..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/index.js +++ /dev/null @@ -1,262 +0,0 @@ -/*! - * type-is - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var typer = require('media-typer') -var mime = require('mime-types') - -/** - * Module exports. - * @public - */ - -module.exports = typeofrequest -module.exports.is = typeis -module.exports.hasBody = hasbody -module.exports.normalize = normalize -module.exports.match = mimeMatch - -/** - * Compare a `value` content-type with `types`. - * Each `type` can be an extension like `html`, - * a special shortcut like `multipart` or `urlencoded`, - * or a mime type. - * - * If no types match, `false` is returned. - * Otherwise, the first `type` that matches is returned. - * - * @param {String} value - * @param {Array} types - * @public - */ - -function typeis (value, types_) { - var i - var types = types_ - - // remove parameters and normalize - var val = tryNormalizeType(value) - - // no type or invalid - if (!val) { - return false - } - - // support flattened arguments - if (types && !Array.isArray(types)) { - types = new Array(arguments.length - 1) - for (i = 0; i < types.length; i++) { - types[i] = arguments[i + 1] - } - } - - // no types, return the content type - if (!types || !types.length) { - return val - } - - var type - for (i = 0; i < types.length; i++) { - if (mimeMatch(normalize(type = types[i]), val)) { - return type[0] === '+' || type.indexOf('*') !== -1 - ? val - : type - } - } - - // no matches - return false -} - -/** - * Check if a request has a request body. - * A request with a body __must__ either have `transfer-encoding` - * or `content-length` headers set. - * http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3 - * - * @param {Object} request - * @return {Boolean} - * @public - */ - -function hasbody (req) { - return req.headers['transfer-encoding'] !== undefined || - !isNaN(req.headers['content-length']) -} - -/** - * Check if the incoming request contains the "Content-Type" - * header field, and it contains any of the give mime `type`s. - * If there is no request body, `null` is returned. - * If there is no content type, `false` is returned. - * Otherwise, it returns the first `type` that matches. - * - * Examples: - * - * // With Content-Type: text/html; charset=utf-8 - * this.is('html'); // => 'html' - * this.is('text/html'); // => 'text/html' - * this.is('text/*', 'application/json'); // => 'text/html' - * - * // When Content-Type is application/json - * this.is('json', 'urlencoded'); // => 'json' - * this.is('application/json'); // => 'application/json' - * this.is('html', 'application/*'); // => 'application/json' - * - * this.is('html'); // => false - * - * @param {String|Array} types... - * @return {String|false|null} - * @public - */ - -function typeofrequest (req, types_) { - var types = types_ - - // no body - if (!hasbody(req)) { - return null - } - - // support flattened arguments - if (arguments.length > 2) { - types = new Array(arguments.length - 1) - for (var i = 0; i < types.length; i++) { - types[i] = arguments[i + 1] - } - } - - // request content type - var value = req.headers['content-type'] - - return typeis(value, types) -} - -/** - * Normalize a mime type. - * If it's a shorthand, expand it to a valid mime type. - * - * In general, you probably want: - * - * var type = is(req, ['urlencoded', 'json', 'multipart']); - * - * Then use the appropriate body parsers. - * These three are the most common request body types - * and are thus ensured to work. - * - * @param {String} type - * @private - */ - -function normalize (type) { - if (typeof type !== 'string') { - // invalid type - return false - } - - switch (type) { - case 'urlencoded': - return 'application/x-www-form-urlencoded' - case 'multipart': - return 'multipart/*' - } - - if (type[0] === '+') { - // "+json" -> "*/*+json" expando - return '*/*' + type - } - - return type.indexOf('/') === -1 - ? mime.lookup(type) - : type -} - -/** - * Check if `expected` mime type - * matches `actual` mime type with - * wildcard and +suffix support. - * - * @param {String} expected - * @param {String} actual - * @return {Boolean} - * @private - */ - -function mimeMatch (expected, actual) { - // invalid type - if (expected === false) { - return false - } - - // split types - var actualParts = actual.split('/') - var expectedParts = expected.split('/') - - // invalid format - if (actualParts.length !== 2 || expectedParts.length !== 2) { - return false - } - - // validate type - if (expectedParts[0] !== '*' && expectedParts[0] !== actualParts[0]) { - return false - } - - // validate suffix wildcard - if (expectedParts[1].substr(0, 2) === '*+') { - return expectedParts[1].length <= actualParts[1].length + 1 && - expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length) - } - - // validate subtype - if (expectedParts[1] !== '*' && expectedParts[1] !== actualParts[1]) { - return false - } - - return true -} - -/** - * Normalize a type and remove parameters. - * - * @param {string} value - * @return {string} - * @private - */ - -function normalizeType (value) { - // parse the type - var type = typer.parse(value) - - // remove the parameters - type.parameters = undefined - - // reformat it - return typer.format(type) -} - -/** - * Try to normalize a type and remove parameters. - * - * @param {string} value - * @return {string} - * @private - */ - -function tryNormalizeType (value) { - try { - return normalizeType(value) - } catch (err) { - return null - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/HISTORY.md deleted file mode 100644 index 62c20031..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/HISTORY.md +++ /dev/null @@ -1,22 +0,0 @@ -0.3.0 / 2014-09-07 -================== - - * Support Node.js 0.6 - * Throw error when parameter format invalid on parse - -0.2.0 / 2014-06-18 -================== - - * Add `typer.format()` to format media types - -0.1.0 / 2014-06-17 -================== - - * Accept `req` as argument to `parse` - * Accept `res` as argument to `parse` - * Parse media type with extra LWS between type and first parameter - -0.0.0 / 2014-06-13 -================== - - * Initial implementation diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/LICENSE deleted file mode 100644 index b7dce6cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/README.md deleted file mode 100644 index d8df6234..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# media-typer - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Simple RFC 6838 media type parser - -## Installation - -```sh -$ npm install media-typer -``` - -## API - -```js -var typer = require('media-typer') -``` - -### typer.parse(string) - -```js -var obj = typer.parse('image/svg+xml; charset=utf-8') -``` - -Parse a media type string. This will return an object with the following -properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): - - - `type`: The type of the media type (always lower case). Example: `'image'` - - - `subtype`: The subtype of the media type (always lower case). Example: `'svg'` - - - `suffix`: The suffix of the media type (always lower case). Example: `'xml'` - - - `parameters`: An object of the parameters in the media type (name of parameter always lower case). Example: `{charset: 'utf-8'}` - -### typer.parse(req) - -```js -var obj = typer.parse(req) -``` - -Parse the `content-type` header from the given `req`. Short-cut for -`typer.parse(req.headers['content-type'])`. - -### typer.parse(res) - -```js -var obj = typer.parse(res) -``` - -Parse the `content-type` header set on the given `res`. Short-cut for -`typer.parse(res.getHeader('content-type'))`. - -### typer.format(obj) - -```js -var obj = typer.format({type: 'image', subtype: 'svg', suffix: 'xml'}) -``` - -Format an object into a media type string. This will return a string of the -mime type for the given object. For the properties of the object, see the -documentation for `typer.parse(string)`. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/media-typer.svg?style=flat -[npm-url]: https://npmjs.org/package/media-typer -[node-version-image]: https://img.shields.io/badge/node.js-%3E%3D_0.6-brightgreen.svg?style=flat -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/media-typer.svg?style=flat -[travis-url]: https://travis-ci.org/jshttp/media-typer -[coveralls-image]: https://img.shields.io/coveralls/jshttp/media-typer.svg?style=flat -[coveralls-url]: https://coveralls.io/r/jshttp/media-typer -[downloads-image]: https://img.shields.io/npm/dm/media-typer.svg?style=flat -[downloads-url]: https://npmjs.org/package/media-typer diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/index.js deleted file mode 100644 index 07f7295e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/index.js +++ /dev/null @@ -1,270 +0,0 @@ -/*! - * media-typer - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * RegExp to match *( ";" parameter ) in RFC 2616 sec 3.7 - * - * parameter = token "=" ( token | quoted-string ) - * token = 1* - * separators = "(" | ")" | "<" | ">" | "@" - * | "," | ";" | ":" | "\" | <"> - * | "/" | "[" | "]" | "?" | "=" - * | "{" | "}" | SP | HT - * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) - * qdtext = > - * quoted-pair = "\" CHAR - * CHAR = - * TEXT = - * LWS = [CRLF] 1*( SP | HT ) - * CRLF = CR LF - * CR = - * LF = - * SP = - * SHT = - * CTL = - * OCTET = - */ -var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g; -var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/ -var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/ - -/** - * RegExp to match quoted-pair in RFC 2616 - * - * quoted-pair = "\" CHAR - * CHAR = - */ -var qescRegExp = /\\([\u0000-\u007f])/g; - -/** - * RegExp to match chars that must be quoted-pair in RFC 2616 - */ -var quoteRegExp = /([\\"])/g; - -/** - * RegExp to match type in RFC 6838 - * - * type-name = restricted-name - * subtype-name = restricted-name - * restricted-name = restricted-name-first *126restricted-name-chars - * restricted-name-first = ALPHA / DIGIT - * restricted-name-chars = ALPHA / DIGIT / "!" / "#" / - * "$" / "&" / "-" / "^" / "_" - * restricted-name-chars =/ "." ; Characters before first dot always - * ; specify a facet name - * restricted-name-chars =/ "+" ; Characters after last plus always - * ; specify a structured syntax suffix - * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z - * DIGIT = %x30-39 ; 0-9 - */ -var subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/ -var typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/ -var typeRegExp = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/; - -/** - * Module exports. - */ - -exports.format = format -exports.parse = parse - -/** - * Format object to media type. - * - * @param {object} obj - * @return {string} - * @api public - */ - -function format(obj) { - if (!obj || typeof obj !== 'object') { - throw new TypeError('argument obj is required') - } - - var parameters = obj.parameters - var subtype = obj.subtype - var suffix = obj.suffix - var type = obj.type - - if (!type || !typeNameRegExp.test(type)) { - throw new TypeError('invalid type') - } - - if (!subtype || !subtypeNameRegExp.test(subtype)) { - throw new TypeError('invalid subtype') - } - - // format as type/subtype - var string = type + '/' + subtype - - // append +suffix - if (suffix) { - if (!typeNameRegExp.test(suffix)) { - throw new TypeError('invalid suffix') - } - - string += '+' + suffix - } - - // append parameters - if (parameters && typeof parameters === 'object') { - var param - var params = Object.keys(parameters).sort() - - for (var i = 0; i < params.length; i++) { - param = params[i] - - if (!tokenRegExp.test(param)) { - throw new TypeError('invalid parameter name') - } - - string += '; ' + param + '=' + qstring(parameters[param]) - } - } - - return string -} - -/** - * Parse media type to object. - * - * @param {string|object} string - * @return {Object} - * @api public - */ - -function parse(string) { - if (!string) { - throw new TypeError('argument string is required') - } - - // support req/res-like objects as argument - if (typeof string === 'object') { - string = getcontenttype(string) - } - - if (typeof string !== 'string') { - throw new TypeError('argument string is required to be a string') - } - - var index = string.indexOf(';') - var type = index !== -1 - ? string.substr(0, index) - : string - - var key - var match - var obj = splitType(type) - var params = {} - var value - - paramRegExp.lastIndex = index - - while (match = paramRegExp.exec(string)) { - if (match.index !== index) { - throw new TypeError('invalid parameter format') - } - - index += match[0].length - key = match[1].toLowerCase() - value = match[2] - - if (value[0] === '"') { - // remove quotes and escapes - value = value - .substr(1, value.length - 2) - .replace(qescRegExp, '$1') - } - - params[key] = value - } - - if (index !== -1 && index !== string.length) { - throw new TypeError('invalid parameter format') - } - - obj.parameters = params - - return obj -} - -/** - * Get content-type from req/res objects. - * - * @param {object} - * @return {Object} - * @api private - */ - -function getcontenttype(obj) { - if (typeof obj.getHeader === 'function') { - // res-like - return obj.getHeader('content-type') - } - - if (typeof obj.headers === 'object') { - // req-like - return obj.headers && obj.headers['content-type'] - } -} - -/** - * Quote a string if necessary. - * - * @param {string} val - * @return {string} - * @api private - */ - -function qstring(val) { - var str = String(val) - - // no need to quote tokens - if (tokenRegExp.test(str)) { - return str - } - - if (str.length > 0 && !textRegExp.test(str)) { - throw new TypeError('invalid parameter value') - } - - return '"' + str.replace(quoteRegExp, '\\$1') + '"' -} - -/** - * Simply "type/subtype+siffx" into parts. - * - * @param {string} string - * @return {Object} - * @api private - */ - -function splitType(string) { - var match = typeRegExp.exec(string.toLowerCase()) - - if (!match) { - throw new TypeError('invalid media type') - } - - var type = match[1] - var subtype = match[2] - var suffix - - // suffix after last + - var index = subtype.lastIndexOf('+') - if (index !== -1) { - suffix = subtype.substr(index + 1) - subtype = subtype.substr(0, index) - } - - var obj = { - type: type, - subtype: subtype, - suffix: suffix - } - - return obj -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/package.json deleted file mode 100644 index f6d67120..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/media-typer/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "media-typer", - "description": "Simple RFC 6838 media type parser and formatter", - "version": "0.3.0", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/media-typer.git" - }, - "devDependencies": { - "istanbul": "0.3.2", - "mocha": "~1.21.4", - "should": "~4.0.4" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "d49d41ffd0bb5a0655fa44a59df2ec0bfc835b16", - "bugs": { - "url": "https://github.com/jshttp/media-typer/issues" - }, - "homepage": "https://github.com/jshttp/media-typer", - "_id": "media-typer@0.3.0", - "_shasum": "8710d7af0aa626f8fffa1ce00168545263255748", - "_from": "media-typer@0.3.0", - "_npmVersion": "1.4.21", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "8710d7af0aa626f8fffa1ce00168545263255748", - "tarball": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/HISTORY.md deleted file mode 100644 index 8c0383a6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/HISTORY.md +++ /dev/null @@ -1,204 +0,0 @@ -2.1.12 / 2016-09-18 -=================== - - * deps: mime-db@~1.24.0 - - Add new mime types - - Add `audio/mp3` - -2.1.11 / 2016-05-01 -=================== - - * deps: mime-db@~1.23.0 - - Add new mime types - -2.1.10 / 2016-02-15 -=================== - - * deps: mime-db@~1.22.0 - - Add new mime types - - Fix extension of `application/dash+xml` - - Update primary extension for `audio/mp4` - -2.1.9 / 2016-01-06 -================== - - * deps: mime-db@~1.21.0 - - Add new mime types - -2.1.8 / 2015-11-30 -================== - - * deps: mime-db@~1.20.0 - - Add new mime types - -2.1.7 / 2015-09-20 -================== - - * deps: mime-db@~1.19.0 - - Add new mime types - -2.1.6 / 2015-09-03 -================== - - * deps: mime-db@~1.18.0 - - Add new mime types - -2.1.5 / 2015-08-20 -================== - - * deps: mime-db@~1.17.0 - - Add new mime types - -2.1.4 / 2015-07-30 -================== - - * deps: mime-db@~1.16.0 - - Add new mime types - -2.1.3 / 2015-07-13 -================== - - * deps: mime-db@~1.15.0 - - Add new mime types - -2.1.2 / 2015-06-25 -================== - - * deps: mime-db@~1.14.0 - - Add new mime types - -2.1.1 / 2015-06-08 -================== - - * perf: fix deopt during mapping - -2.1.0 / 2015-06-07 -================== - - * Fix incorrectly treating extension-less file name as extension - - i.e. `'path/to/json'` will no longer return `application/json` - * Fix `.charset(type)` to accept parameters - * Fix `.charset(type)` to match case-insensitive - * Improve generation of extension to MIME mapping - * Refactor internals for readability and no argument reassignment - * Prefer `application/*` MIME types from the same source - * Prefer any type over `application/octet-stream` - * deps: mime-db@~1.13.0 - - Add nginx as a source - - Add new mime types - -2.0.14 / 2015-06-06 -=================== - - * deps: mime-db@~1.12.0 - - Add new mime types - -2.0.13 / 2015-05-31 -=================== - - * deps: mime-db@~1.11.0 - - Add new mime types - -2.0.12 / 2015-05-19 -=================== - - * deps: mime-db@~1.10.0 - - Add new mime types - -2.0.11 / 2015-05-05 -=================== - - * deps: mime-db@~1.9.1 - - Add new mime types - -2.0.10 / 2015-03-13 -=================== - - * deps: mime-db@~1.8.0 - - Add new mime types - -2.0.9 / 2015-02-09 -================== - - * deps: mime-db@~1.7.0 - - Add new mime types - - Community extensions ownership transferred from `node-mime` - -2.0.8 / 2015-01-29 -================== - - * deps: mime-db@~1.6.0 - - Add new mime types - -2.0.7 / 2014-12-30 -================== - - * deps: mime-db@~1.5.0 - - Add new mime types - - Fix various invalid MIME type entries - -2.0.6 / 2014-12-30 -================== - - * deps: mime-db@~1.4.0 - - Add new mime types - - Fix various invalid MIME type entries - - Remove example template MIME types - -2.0.5 / 2014-12-29 -================== - - * deps: mime-db@~1.3.1 - - Fix missing extensions - -2.0.4 / 2014-12-10 -================== - - * deps: mime-db@~1.3.0 - - Add new mime types - -2.0.3 / 2014-11-09 -================== - - * deps: mime-db@~1.2.0 - - Add new mime types - -2.0.2 / 2014-09-28 -================== - - * deps: mime-db@~1.1.0 - - Add new mime types - - Add additional compressible - - Update charsets - -2.0.1 / 2014-09-07 -================== - - * Support Node.js 0.6 - -2.0.0 / 2014-09-02 -================== - - * Use `mime-db` - * Remove `.define()` - -1.0.2 / 2014-08-04 -================== - - * Set charset=utf-8 for `text/javascript` - -1.0.1 / 2014-06-24 -================== - - * Add `text/jsx` type - -1.0.0 / 2014-05-12 -================== - - * Return `false` for unknown types - * Set charset=utf-8 for `application/json` - -0.1.0 / 2014-05-02 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/LICENSE deleted file mode 100644 index 06166077..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/README.md deleted file mode 100644 index e77d615d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/README.md +++ /dev/null @@ -1,103 +0,0 @@ -# mime-types - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -The ultimate javascript content-type utility. - -Similar to [node-mime](https://github.com/broofa/node-mime), except: - -- __No fallbacks.__ Instead of naively returning the first available type, `mime-types` simply returns `false`, - so do `var type = mime.lookup('unrecognized') || 'application/octet-stream'`. -- No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`. -- Additional mime types are added such as jade and stylus via [mime-db](https://github.com/jshttp/mime-db) -- No `.define()` functionality - -Otherwise, the API is compatible. - -## Install - -```sh -$ npm install mime-types -``` - -## Adding Types - -All mime types are based on [mime-db](https://github.com/jshttp/mime-db), -so open a PR there if you'd like to add mime types. - -## API - -```js -var mime = require('mime-types') -``` - -All functions return `false` if input is invalid or not found. - -### mime.lookup(path) - -Lookup the content-type associated with a file. - -```js -mime.lookup('json') // 'application/json' -mime.lookup('.md') // 'text/x-markdown' -mime.lookup('file.html') // 'text/html' -mime.lookup('folder/file.js') // 'application/javascript' -mime.lookup('folder/.htaccess') // false - -mime.lookup('cats') // false -``` - -### mime.contentType(type) - -Create a full content-type header given a content-type or extension. - -```js -mime.contentType('markdown') // 'text/x-markdown; charset=utf-8' -mime.contentType('file.json') // 'application/json; charset=utf-8' - -// from a full path -mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8' -``` - -### mime.extension(type) - -Get the default extension for a content-type. - -```js -mime.extension('application/octet-stream') // 'bin' -``` - -### mime.charset(type) - -Lookup the implied default charset of a content-type. - -```js -mime.charset('text/x-markdown') // 'UTF-8' -``` - -### var type = mime.types[extension] - -A map of content-types by extension. - -### [extensions...] = mime.extensions[type] - -A map of extensions by content-type. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/mime-types.svg -[npm-url]: https://npmjs.org/package/mime-types -[node-version-image]: https://img.shields.io/node/v/mime-types.svg -[node-version-url]: https://nodejs.org/en/download/ -[travis-image]: https://img.shields.io/travis/jshttp/mime-types/master.svg -[travis-url]: https://travis-ci.org/jshttp/mime-types -[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-types/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/mime-types -[downloads-image]: https://img.shields.io/npm/dm/mime-types.svg -[downloads-url]: https://npmjs.org/package/mime-types diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/index.js deleted file mode 100644 index 9226ca58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/index.js +++ /dev/null @@ -1,188 +0,0 @@ -/*! - * mime-types - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var db = require('mime-db') -var extname = require('path').extname - -/** - * Module variables. - * @private - */ - -var extractTypeRegExp = /^\s*([^;\s]*)(?:;|\s|$)/ -var textTypeRegExp = /^text\//i - -/** - * Module exports. - * @public - */ - -exports.charset = charset -exports.charsets = { lookup: charset } -exports.contentType = contentType -exports.extension = extension -exports.extensions = Object.create(null) -exports.lookup = lookup -exports.types = Object.create(null) - -// Populate the extensions/types maps -populateMaps(exports.extensions, exports.types) - -/** - * Get the default charset for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function charset (type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = extractTypeRegExp.exec(type) - var mime = match && db[match[1].toLowerCase()] - - if (mime && mime.charset) { - return mime.charset - } - - // default text/* to utf-8 - if (match && textTypeRegExp.test(match[1])) { - return 'UTF-8' - } - - return false -} - -/** - * Create a full Content-Type header given a MIME type or extension. - * - * @param {string} str - * @return {boolean|string} - */ - -function contentType (str) { - // TODO: should this even be in this module? - if (!str || typeof str !== 'string') { - return false - } - - var mime = str.indexOf('/') === -1 - ? exports.lookup(str) - : str - - if (!mime) { - return false - } - - // TODO: use content-type or other module - if (mime.indexOf('charset') === -1) { - var charset = exports.charset(mime) - if (charset) mime += '; charset=' + charset.toLowerCase() - } - - return mime -} - -/** - * Get the default extension for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function extension (type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = extractTypeRegExp.exec(type) - - // get extensions - var exts = match && exports.extensions[match[1].toLowerCase()] - - if (!exts || !exts.length) { - return false - } - - return exts[0] -} - -/** - * Lookup the MIME type for a file path/extension. - * - * @param {string} path - * @return {boolean|string} - */ - -function lookup (path) { - if (!path || typeof path !== 'string') { - return false - } - - // get the extension ("ext" or ".ext" or full path) - var extension = extname('x.' + path) - .toLowerCase() - .substr(1) - - if (!extension) { - return false - } - - return exports.types[extension] || false -} - -/** - * Populate the extensions and types maps. - * @private - */ - -function populateMaps (extensions, types) { - // source preference (least -> most) - var preference = ['nginx', 'apache', undefined, 'iana'] - - Object.keys(db).forEach(function forEachMimeType (type) { - var mime = db[type] - var exts = mime.extensions - - if (!exts || !exts.length) { - return - } - - // mime -> extensions - extensions[type] = exts - - // extension -> mime - for (var i = 0; i < exts.length; i++) { - var extension = exts[i] - - if (types[extension]) { - var from = preference.indexOf(db[types[extension]].source) - var to = preference.indexOf(mime.source) - - if (types[extension] !== 'application/octet-stream' && - from > to || (from === to && types[extension].substr(0, 12) === 'application/')) { - // skip the remapping - continue - } - } - - // set the extension -> mime - types[extension] = type - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/HISTORY.md deleted file mode 100644 index d4796b55..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/HISTORY.md +++ /dev/null @@ -1,365 +0,0 @@ -1.24.0 / 2016-09-18 -=================== - - * Add `application/clue_info+xml` - * Add `application/geo+json` - * Add `application/lgr+xml` - * Add `application/vnd.amazon.mobi8-ebook` - * Add `application/vnd.chess-pgn` - * Add `application/vnd.comicbook+zip` - * Add `application/vnd.d2l.coursepackage1p0+zip` - * Add `application/vnd.espass-espass+zip` - * Add `application/vnd.nearst.inv+json` - * Add `application/vnd.oma.lwm2m+json` - * Add `application/vnd.oma.lwm2m+tlv` - * Add `application/vnd.quarantainenet` - * Add `application/vnd.rar` - * Add `audio/mp3` - * Add `image/dicom-rle` - * Add `image/emf` - * Add `image/jls` - * Add `image/wmf` - * Add `model/gltf+json` - * Add `text/vnd.ascii-art` - -1.23.0 / 2016-05-01 -=================== - - * Add `application/efi` - * Add `application/vnd.3gpp.sms+xml` - * Add `application/vnd.3lightssoftware.imagescal` - * Add `application/vnd.coreos.ignition+json` - * Add `application/vnd.desmume.movie` - * Add `application/vnd.onepager` - * Add `application/vnd.vel+json` - * Add `text/prs.prop.logic` - * Add `video/encaprtp` - * Add `video/h265` - * Add `video/iso.segment` - * Add `video/raptorfec` - * Add `video/rtploopback` - * Add `video/vnd.radgamettools.bink` - * Add `video/vnd.radgamettools.smacker` - * Add `video/vp8` - * Add extension `.3gpp` to `audio/3gpp` - -1.22.0 / 2016-02-15 -=================== - - * Add `application/ppsp-tracker+json` - * Add `application/problem+json` - * Add `application/problem+xml` - * Add `application/vnd.hdt` - * Add `application/vnd.ms-printschematicket+xml` - * Add `model/vnd.rosette.annotated-data-model` - * Add `text/slim` - * Add extension `.rng` to `application/xml` - * Fix extension of `application/dash+xml` to be `.mpd` - * Update primary extension to `.m4a` for `audio/mp4` - -1.21.0 / 2016-01-06 -=================== - - * Add `application/emergencycalldata.comment+xml` - * Add `application/emergencycalldata.deviceinfo+xml` - * Add `application/emergencycalldata.providerinfo+xml` - * Add `application/emergencycalldata.serviceinfo+xml` - * Add `application/emergencycalldata.subscriberinfo+xml` - * Add `application/vnd.filmit.zfc` - * Add `application/vnd.google-apps.document` - * Add `application/vnd.google-apps.presentation` - * Add `application/vnd.google-apps.spreadsheet` - * Add `application/vnd.mapbox-vector-tile` - * Add `application/vnd.ms-printdevicecapabilities+xml` - * Add `application/vnd.ms-windows.devicepairing` - * Add `application/vnd.ms-windows.nwprinting.oob` - * Add `application/vnd.tml` - * Add `audio/evs` - -1.20.0 / 2015-11-10 -=================== - - * Add `application/cdni` - * Add `application/csvm+json` - * Add `application/rfc+xml` - * Add `application/vnd.3gpp.access-transfer-events+xml` - * Add `application/vnd.3gpp.srvcc-ext+xml` - * Add `application/vnd.ms-windows.wsd.oob` - * Add `application/vnd.oxli.countgraph` - * Add `application/vnd.pagerduty+json` - * Add `text/x-suse-ymp` - -1.19.0 / 2015-09-17 -=================== - - * Add `application/vnd.3gpp-prose-pc3ch+xml` - * Add `application/vnd.3gpp.srvcc-info+xml` - * Add `application/vnd.apple.pkpass` - * Add `application/vnd.drive+json` - -1.18.0 / 2015-09-03 -=================== - - * Add `application/pkcs12` - * Add `application/vnd.3gpp-prose+xml` - * Add `application/vnd.3gpp.mid-call+xml` - * Add `application/vnd.3gpp.state-and-event-info+xml` - * Add `application/vnd.anki` - * Add `application/vnd.firemonkeys.cloudcell` - * Add `application/vnd.openblox.game+xml` - * Add `application/vnd.openblox.game-binary` - -1.17.0 / 2015-08-13 -=================== - - * Add `application/x-msdos-program` - * Add `audio/g711-0` - * Add `image/vnd.mozilla.apng` - * Add extension `.exe` to `application/x-msdos-program` - -1.16.0 / 2015-07-29 -=================== - - * Add `application/vnd.uri-map` - -1.15.0 / 2015-07-13 -=================== - - * Add `application/x-httpd-php` - -1.14.0 / 2015-06-25 -=================== - - * Add `application/scim+json` - * Add `application/vnd.3gpp.ussd+xml` - * Add `application/vnd.biopax.rdf+xml` - * Add `text/x-processing` - -1.13.0 / 2015-06-07 -=================== - - * Add nginx as a source - * Add `application/x-cocoa` - * Add `application/x-java-archive-diff` - * Add `application/x-makeself` - * Add `application/x-perl` - * Add `application/x-pilot` - * Add `application/x-redhat-package-manager` - * Add `application/x-sea` - * Add `audio/x-m4a` - * Add `audio/x-realaudio` - * Add `image/x-jng` - * Add `text/mathml` - -1.12.0 / 2015-06-05 -=================== - - * Add `application/bdoc` - * Add `application/vnd.hyperdrive+json` - * Add `application/x-bdoc` - * Add extension `.rtf` to `text/rtf` - -1.11.0 / 2015-05-31 -=================== - - * Add `audio/wav` - * Add `audio/wave` - * Add extension `.litcoffee` to `text/coffeescript` - * Add extension `.sfd-hdstx` to `application/vnd.hydrostatix.sof-data` - * Add extension `.n-gage` to `application/vnd.nokia.n-gage.symbian.install` - -1.10.0 / 2015-05-19 -=================== - - * Add `application/vnd.balsamiq.bmpr` - * Add `application/vnd.microsoft.portable-executable` - * Add `application/x-ns-proxy-autoconfig` - -1.9.1 / 2015-04-19 -================== - - * Remove `.json` extension from `application/manifest+json` - - This is causing bugs downstream - -1.9.0 / 2015-04-19 -================== - - * Add `application/manifest+json` - * Add `application/vnd.micro+json` - * Add `image/vnd.zbrush.pcx` - * Add `image/x-ms-bmp` - -1.8.0 / 2015-03-13 -================== - - * Add `application/vnd.citationstyles.style+xml` - * Add `application/vnd.fastcopy-disk-image` - * Add `application/vnd.gov.sk.xmldatacontainer+xml` - * Add extension `.jsonld` to `application/ld+json` - -1.7.0 / 2015-02-08 -================== - - * Add `application/vnd.gerber` - * Add `application/vnd.msa-disk-image` - -1.6.1 / 2015-02-05 -================== - - * Community extensions ownership transferred from `node-mime` - -1.6.0 / 2015-01-29 -================== - - * Add `application/jose` - * Add `application/jose+json` - * Add `application/json-seq` - * Add `application/jwk+json` - * Add `application/jwk-set+json` - * Add `application/jwt` - * Add `application/rdap+json` - * Add `application/vnd.gov.sk.e-form+xml` - * Add `application/vnd.ims.imsccv1p3` - -1.5.0 / 2014-12-30 -================== - - * Add `application/vnd.oracle.resource+json` - * Fix various invalid MIME type entries - - `application/mbox+xml` - - `application/oscp-response` - - `application/vwg-multiplexed` - - `audio/g721` - -1.4.0 / 2014-12-21 -================== - - * Add `application/vnd.ims.imsccv1p2` - * Fix various invalid MIME type entries - - `application/vnd-acucobol` - - `application/vnd-curl` - - `application/vnd-dart` - - `application/vnd-dxr` - - `application/vnd-fdf` - - `application/vnd-mif` - - `application/vnd-sema` - - `application/vnd-wap-wmlc` - - `application/vnd.adobe.flash-movie` - - `application/vnd.dece-zip` - - `application/vnd.dvb_service` - - `application/vnd.micrografx-igx` - - `application/vnd.sealed-doc` - - `application/vnd.sealed-eml` - - `application/vnd.sealed-mht` - - `application/vnd.sealed-ppt` - - `application/vnd.sealed-tiff` - - `application/vnd.sealed-xls` - - `application/vnd.sealedmedia.softseal-html` - - `application/vnd.sealedmedia.softseal-pdf` - - `application/vnd.wap-slc` - - `application/vnd.wap-wbxml` - - `audio/vnd.sealedmedia.softseal-mpeg` - - `image/vnd-djvu` - - `image/vnd-svf` - - `image/vnd-wap-wbmp` - - `image/vnd.sealed-png` - - `image/vnd.sealedmedia.softseal-gif` - - `image/vnd.sealedmedia.softseal-jpg` - - `model/vnd-dwf` - - `model/vnd.parasolid.transmit-binary` - - `model/vnd.parasolid.transmit-text` - - `text/vnd-a` - - `text/vnd-curl` - - `text/vnd.wap-wml` - * Remove example template MIME types - - `application/example` - - `audio/example` - - `image/example` - - `message/example` - - `model/example` - - `multipart/example` - - `text/example` - - `video/example` - -1.3.1 / 2014-12-16 -================== - - * Fix missing extensions - - `application/json5` - - `text/hjson` - -1.3.0 / 2014-12-07 -================== - - * Add `application/a2l` - * Add `application/aml` - * Add `application/atfx` - * Add `application/atxml` - * Add `application/cdfx+xml` - * Add `application/dii` - * Add `application/json5` - * Add `application/lxf` - * Add `application/mf4` - * Add `application/vnd.apache.thrift.compact` - * Add `application/vnd.apache.thrift.json` - * Add `application/vnd.coffeescript` - * Add `application/vnd.enphase.envoy` - * Add `application/vnd.ims.imsccv1p1` - * Add `text/csv-schema` - * Add `text/hjson` - * Add `text/markdown` - * Add `text/yaml` - -1.2.0 / 2014-11-09 -================== - - * Add `application/cea` - * Add `application/dit` - * Add `application/vnd.gov.sk.e-form+zip` - * Add `application/vnd.tmd.mediaflex.api+xml` - * Type `application/epub+zip` is now IANA-registered - -1.1.2 / 2014-10-23 -================== - - * Rebuild database for `application/x-www-form-urlencoded` change - -1.1.1 / 2014-10-20 -================== - - * Mark `application/x-www-form-urlencoded` as compressible. - -1.1.0 / 2014-09-28 -================== - - * Add `application/font-woff2` - -1.0.3 / 2014-09-25 -================== - - * Fix engine requirement in package - -1.0.2 / 2014-09-25 -================== - - * Add `application/coap-group+json` - * Add `application/dcd` - * Add `application/vnd.apache.thrift.binary` - * Add `image/vnd.tencent.tap` - * Mark all JSON-derived types as compressible - * Update `text/vtt` data - -1.0.1 / 2014-08-30 -================== - - * Fix extension ordering - -1.0.0 / 2014-08-30 -================== - - * Add `application/atf` - * Add `application/merge-patch+json` - * Add `multipart/x-mixed-replace` - * Add `source: 'apache'` metadata - * Add `source: 'iana'` metadata - * Remove badly-assumed charset data diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/README.md deleted file mode 100644 index 7662440b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# mime-db - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][travis-image]][travis-url] -[![Coverage Status][coveralls-image]][coveralls-url] - -This is a database of all mime types. -It consists of a single, public JSON file and does not include any logic, -allowing it to remain as un-opinionated as possible with an API. -It aggregates data from the following sources: - -- http://www.iana.org/assignments/media-types/media-types.xhtml -- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types -- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types - -## Installation - -```bash -npm install mime-db -``` - -### Database Download - -If you're crazy enough to use this in the browser, you can just grab the -JSON file using [RawGit](https://rawgit.com/). It is recommended to replace -`master` with [a release tag](https://github.com/jshttp/mime-db/tags) as the -JSON format may change in the future. - -``` -https://cdn.rawgit.com/jshttp/mime-db/master/db.json -``` - -## Usage - -```js -var db = require('mime-db'); - -// grab data on .js files -var data = db['application/javascript']; -``` - -## Data Structure - -The JSON file is a map lookup for lowercased mime types. -Each mime type has the following properties: - -- `.source` - where the mime type is defined. - If not set, it's probably a custom media type. - - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) - - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml) - - `nginx` - [nginx media types](http://hg.nginx.org/nginx/raw-file/default/conf/mime.types) -- `.extensions[]` - known extensions associated with this mime type. -- `.compressible` - whether a file of this type can be gzipped. -- `.charset` - the default charset associated with this type, if any. - -If unknown, every property could be `undefined`. - -## Contributing - -To edit the database, only make PRs against `src/custom.json` or -`src/custom-suffix.json`. - -To update the build, run `npm run build`. - -## Adding Custom Media Types - -The best way to get new media types included in this library is to register -them with the IANA. The community registration procedure is outlined in -[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types -registered with the IANA are automatically pulled into this library. - -[npm-version-image]: https://img.shields.io/npm/v/mime-db.svg -[npm-downloads-image]: https://img.shields.io/npm/dm/mime-db.svg -[npm-url]: https://npmjs.org/package/mime-db -[travis-image]: https://img.shields.io/travis/jshttp/mime-db/master.svg -[travis-url]: https://travis-ci.org/jshttp/mime-db -[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-db/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master -[node-image]: https://img.shields.io/node/v/mime-db.svg -[node-url]: http://nodejs.org/download/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/db.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/db.json deleted file mode 100644 index 63b226f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/db.json +++ /dev/null @@ -1,6692 +0,0 @@ -{ - "application/1d-interleaved-parityfec": { - "source": "iana" - }, - "application/3gpdash-qoe-report+xml": { - "source": "iana" - }, - "application/3gpp-ims+xml": { - "source": "iana" - }, - "application/a2l": { - "source": "iana" - }, - "application/activemessage": { - "source": "iana" - }, - "application/alto-costmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-costmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/alto-directory+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcost+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcostparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointprop+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointpropparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-error+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/aml": { - "source": "iana" - }, - "application/andrew-inset": { - "source": "iana", - "extensions": ["ez"] - }, - "application/applefile": { - "source": "iana" - }, - "application/applixware": { - "source": "apache", - "extensions": ["aw"] - }, - "application/atf": { - "source": "iana" - }, - "application/atfx": { - "source": "iana" - }, - "application/atom+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atom"] - }, - "application/atomcat+xml": { - "source": "iana", - "extensions": ["atomcat"] - }, - "application/atomdeleted+xml": { - "source": "iana" - }, - "application/atomicmail": { - "source": "iana" - }, - "application/atomsvc+xml": { - "source": "iana", - "extensions": ["atomsvc"] - }, - "application/atxml": { - "source": "iana" - }, - "application/auth-policy+xml": { - "source": "iana" - }, - "application/bacnet-xdd+zip": { - "source": "iana" - }, - "application/batch-smtp": { - "source": "iana" - }, - "application/bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/beep+xml": { - "source": "iana" - }, - "application/calendar+json": { - "source": "iana", - "compressible": true - }, - "application/calendar+xml": { - "source": "iana" - }, - "application/call-completion": { - "source": "iana" - }, - "application/cals-1840": { - "source": "iana" - }, - "application/cbor": { - "source": "iana" - }, - "application/ccmp+xml": { - "source": "iana" - }, - "application/ccxml+xml": { - "source": "iana", - "extensions": ["ccxml"] - }, - "application/cdfx+xml": { - "source": "iana" - }, - "application/cdmi-capability": { - "source": "iana", - "extensions": ["cdmia"] - }, - "application/cdmi-container": { - "source": "iana", - "extensions": ["cdmic"] - }, - "application/cdmi-domain": { - "source": "iana", - "extensions": ["cdmid"] - }, - "application/cdmi-object": { - "source": "iana", - "extensions": ["cdmio"] - }, - "application/cdmi-queue": { - "source": "iana", - "extensions": ["cdmiq"] - }, - "application/cdni": { - "source": "iana" - }, - "application/cea": { - "source": "iana" - }, - "application/cea-2018+xml": { - "source": "iana" - }, - "application/cellml+xml": { - "source": "iana" - }, - "application/cfw": { - "source": "iana" - }, - "application/clue_info+xml": { - "source": "iana" - }, - "application/cms": { - "source": "iana" - }, - "application/cnrp+xml": { - "source": "iana" - }, - "application/coap-group+json": { - "source": "iana", - "compressible": true - }, - "application/commonground": { - "source": "iana" - }, - "application/conference-info+xml": { - "source": "iana" - }, - "application/cpl+xml": { - "source": "iana" - }, - "application/csrattrs": { - "source": "iana" - }, - "application/csta+xml": { - "source": "iana" - }, - "application/cstadata+xml": { - "source": "iana" - }, - "application/csvm+json": { - "source": "iana", - "compressible": true - }, - "application/cu-seeme": { - "source": "apache", - "extensions": ["cu"] - }, - "application/cybercash": { - "source": "iana" - }, - "application/dart": { - "compressible": true - }, - "application/dash+xml": { - "source": "iana", - "extensions": ["mpd"] - }, - "application/dashdelta": { - "source": "iana" - }, - "application/davmount+xml": { - "source": "iana", - "extensions": ["davmount"] - }, - "application/dca-rft": { - "source": "iana" - }, - "application/dcd": { - "source": "iana" - }, - "application/dec-dx": { - "source": "iana" - }, - "application/dialog-info+xml": { - "source": "iana" - }, - "application/dicom": { - "source": "iana" - }, - "application/dii": { - "source": "iana" - }, - "application/dit": { - "source": "iana" - }, - "application/dns": { - "source": "iana" - }, - "application/docbook+xml": { - "source": "apache", - "extensions": ["dbk"] - }, - "application/dskpp+xml": { - "source": "iana" - }, - "application/dssc+der": { - "source": "iana", - "extensions": ["dssc"] - }, - "application/dssc+xml": { - "source": "iana", - "extensions": ["xdssc"] - }, - "application/dvcs": { - "source": "iana" - }, - "application/ecmascript": { - "source": "iana", - "compressible": true, - "extensions": ["ecma"] - }, - "application/edi-consent": { - "source": "iana" - }, - "application/edi-x12": { - "source": "iana", - "compressible": false - }, - "application/edifact": { - "source": "iana", - "compressible": false - }, - "application/efi": { - "source": "iana" - }, - "application/emergencycalldata.comment+xml": { - "source": "iana" - }, - "application/emergencycalldata.deviceinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.providerinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.serviceinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.subscriberinfo+xml": { - "source": "iana" - }, - "application/emma+xml": { - "source": "iana", - "extensions": ["emma"] - }, - "application/emotionml+xml": { - "source": "iana" - }, - "application/encaprtp": { - "source": "iana" - }, - "application/epp+xml": { - "source": "iana" - }, - "application/epub+zip": { - "source": "iana", - "extensions": ["epub"] - }, - "application/eshop": { - "source": "iana" - }, - "application/exi": { - "source": "iana", - "extensions": ["exi"] - }, - "application/fastinfoset": { - "source": "iana" - }, - "application/fastsoap": { - "source": "iana" - }, - "application/fdt+xml": { - "source": "iana" - }, - "application/fits": { - "source": "iana" - }, - "application/font-sfnt": { - "source": "iana" - }, - "application/font-tdpfr": { - "source": "iana", - "extensions": ["pfr"] - }, - "application/font-woff": { - "source": "iana", - "compressible": false, - "extensions": ["woff"] - }, - "application/font-woff2": { - "compressible": false, - "extensions": ["woff2"] - }, - "application/framework-attributes+xml": { - "source": "iana" - }, - "application/geo+json": { - "source": "iana", - "compressible": true - }, - "application/gml+xml": { - "source": "apache", - "extensions": ["gml"] - }, - "application/gpx+xml": { - "source": "apache", - "extensions": ["gpx"] - }, - "application/gxf": { - "source": "apache", - "extensions": ["gxf"] - }, - "application/gzip": { - "source": "iana", - "compressible": false - }, - "application/h224": { - "source": "iana" - }, - "application/held+xml": { - "source": "iana" - }, - "application/http": { - "source": "iana" - }, - "application/hyperstudio": { - "source": "iana", - "extensions": ["stk"] - }, - "application/ibe-key-request+xml": { - "source": "iana" - }, - "application/ibe-pkg-reply+xml": { - "source": "iana" - }, - "application/ibe-pp-data": { - "source": "iana" - }, - "application/iges": { - "source": "iana" - }, - "application/im-iscomposing+xml": { - "source": "iana" - }, - "application/index": { - "source": "iana" - }, - "application/index.cmd": { - "source": "iana" - }, - "application/index.obj": { - "source": "iana" - }, - "application/index.response": { - "source": "iana" - }, - "application/index.vnd": { - "source": "iana" - }, - "application/inkml+xml": { - "source": "iana", - "extensions": ["ink","inkml"] - }, - "application/iotp": { - "source": "iana" - }, - "application/ipfix": { - "source": "iana", - "extensions": ["ipfix"] - }, - "application/ipp": { - "source": "iana" - }, - "application/isup": { - "source": "iana" - }, - "application/its+xml": { - "source": "iana" - }, - "application/java-archive": { - "source": "apache", - "compressible": false, - "extensions": ["jar","war","ear"] - }, - "application/java-serialized-object": { - "source": "apache", - "compressible": false, - "extensions": ["ser"] - }, - "application/java-vm": { - "source": "apache", - "compressible": false, - "extensions": ["class"] - }, - "application/javascript": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["js"] - }, - "application/jose": { - "source": "iana" - }, - "application/jose+json": { - "source": "iana", - "compressible": true - }, - "application/jrd+json": { - "source": "iana", - "compressible": true - }, - "application/json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["json","map"] - }, - "application/json-patch+json": { - "source": "iana", - "compressible": true - }, - "application/json-seq": { - "source": "iana" - }, - "application/json5": { - "extensions": ["json5"] - }, - "application/jsonml+json": { - "source": "apache", - "compressible": true, - "extensions": ["jsonml"] - }, - "application/jwk+json": { - "source": "iana", - "compressible": true - }, - "application/jwk-set+json": { - "source": "iana", - "compressible": true - }, - "application/jwt": { - "source": "iana" - }, - "application/kpml-request+xml": { - "source": "iana" - }, - "application/kpml-response+xml": { - "source": "iana" - }, - "application/ld+json": { - "source": "iana", - "compressible": true, - "extensions": ["jsonld"] - }, - "application/lgr+xml": { - "source": "iana" - }, - "application/link-format": { - "source": "iana" - }, - "application/load-control+xml": { - "source": "iana" - }, - "application/lost+xml": { - "source": "iana", - "extensions": ["lostxml"] - }, - "application/lostsync+xml": { - "source": "iana" - }, - "application/lxf": { - "source": "iana" - }, - "application/mac-binhex40": { - "source": "iana", - "extensions": ["hqx"] - }, - "application/mac-compactpro": { - "source": "apache", - "extensions": ["cpt"] - }, - "application/macwriteii": { - "source": "iana" - }, - "application/mads+xml": { - "source": "iana", - "extensions": ["mads"] - }, - "application/manifest+json": { - "charset": "UTF-8", - "compressible": true, - "extensions": ["webmanifest"] - }, - "application/marc": { - "source": "iana", - "extensions": ["mrc"] - }, - "application/marcxml+xml": { - "source": "iana", - "extensions": ["mrcx"] - }, - "application/mathematica": { - "source": "iana", - "extensions": ["ma","nb","mb"] - }, - "application/mathml+xml": { - "source": "iana", - "extensions": ["mathml"] - }, - "application/mathml-content+xml": { - "source": "iana" - }, - "application/mathml-presentation+xml": { - "source": "iana" - }, - "application/mbms-associated-procedure-description+xml": { - "source": "iana" - }, - "application/mbms-deregister+xml": { - "source": "iana" - }, - "application/mbms-envelope+xml": { - "source": "iana" - }, - "application/mbms-msk+xml": { - "source": "iana" - }, - "application/mbms-msk-response+xml": { - "source": "iana" - }, - "application/mbms-protection-description+xml": { - "source": "iana" - }, - "application/mbms-reception-report+xml": { - "source": "iana" - }, - "application/mbms-register+xml": { - "source": "iana" - }, - "application/mbms-register-response+xml": { - "source": "iana" - }, - "application/mbms-schedule+xml": { - "source": "iana" - }, - "application/mbms-user-service-description+xml": { - "source": "iana" - }, - "application/mbox": { - "source": "iana", - "extensions": ["mbox"] - }, - "application/media-policy-dataset+xml": { - "source": "iana" - }, - "application/media_control+xml": { - "source": "iana" - }, - "application/mediaservercontrol+xml": { - "source": "iana", - "extensions": ["mscml"] - }, - "application/merge-patch+json": { - "source": "iana", - "compressible": true - }, - "application/metalink+xml": { - "source": "apache", - "extensions": ["metalink"] - }, - "application/metalink4+xml": { - "source": "iana", - "extensions": ["meta4"] - }, - "application/mets+xml": { - "source": "iana", - "extensions": ["mets"] - }, - "application/mf4": { - "source": "iana" - }, - "application/mikey": { - "source": "iana" - }, - "application/mods+xml": { - "source": "iana", - "extensions": ["mods"] - }, - "application/moss-keys": { - "source": "iana" - }, - "application/moss-signature": { - "source": "iana" - }, - "application/mosskey-data": { - "source": "iana" - }, - "application/mosskey-request": { - "source": "iana" - }, - "application/mp21": { - "source": "iana", - "extensions": ["m21","mp21"] - }, - "application/mp4": { - "source": "iana", - "extensions": ["mp4s","m4p"] - }, - "application/mpeg4-generic": { - "source": "iana" - }, - "application/mpeg4-iod": { - "source": "iana" - }, - "application/mpeg4-iod-xmt": { - "source": "iana" - }, - "application/mrb-consumer+xml": { - "source": "iana" - }, - "application/mrb-publish+xml": { - "source": "iana" - }, - "application/msc-ivr+xml": { - "source": "iana" - }, - "application/msc-mixer+xml": { - "source": "iana" - }, - "application/msword": { - "source": "iana", - "compressible": false, - "extensions": ["doc","dot"] - }, - "application/mxf": { - "source": "iana", - "extensions": ["mxf"] - }, - "application/nasdata": { - "source": "iana" - }, - "application/news-checkgroups": { - "source": "iana" - }, - "application/news-groupinfo": { - "source": "iana" - }, - "application/news-transmission": { - "source": "iana" - }, - "application/nlsml+xml": { - "source": "iana" - }, - "application/nss": { - "source": "iana" - }, - "application/ocsp-request": { - "source": "iana" - }, - "application/ocsp-response": { - "source": "iana" - }, - "application/octet-stream": { - "source": "iana", - "compressible": false, - "extensions": ["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"] - }, - "application/oda": { - "source": "iana", - "extensions": ["oda"] - }, - "application/odx": { - "source": "iana" - }, - "application/oebps-package+xml": { - "source": "iana", - "extensions": ["opf"] - }, - "application/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["ogx"] - }, - "application/omdoc+xml": { - "source": "apache", - "extensions": ["omdoc"] - }, - "application/onenote": { - "source": "apache", - "extensions": ["onetoc","onetoc2","onetmp","onepkg"] - }, - "application/oxps": { - "source": "iana", - "extensions": ["oxps"] - }, - "application/p2p-overlay+xml": { - "source": "iana" - }, - "application/parityfec": { - "source": "iana" - }, - "application/patch-ops-error+xml": { - "source": "iana", - "extensions": ["xer"] - }, - "application/pdf": { - "source": "iana", - "compressible": false, - "extensions": ["pdf"] - }, - "application/pdx": { - "source": "iana" - }, - "application/pgp-encrypted": { - "source": "iana", - "compressible": false, - "extensions": ["pgp"] - }, - "application/pgp-keys": { - "source": "iana" - }, - "application/pgp-signature": { - "source": "iana", - "extensions": ["asc","sig"] - }, - "application/pics-rules": { - "source": "apache", - "extensions": ["prf"] - }, - "application/pidf+xml": { - "source": "iana" - }, - "application/pidf-diff+xml": { - "source": "iana" - }, - "application/pkcs10": { - "source": "iana", - "extensions": ["p10"] - }, - "application/pkcs12": { - "source": "iana" - }, - "application/pkcs7-mime": { - "source": "iana", - "extensions": ["p7m","p7c"] - }, - "application/pkcs7-signature": { - "source": "iana", - "extensions": ["p7s"] - }, - "application/pkcs8": { - "source": "iana", - "extensions": ["p8"] - }, - "application/pkix-attr-cert": { - "source": "iana", - "extensions": ["ac"] - }, - "application/pkix-cert": { - "source": "iana", - "extensions": ["cer"] - }, - "application/pkix-crl": { - "source": "iana", - "extensions": ["crl"] - }, - "application/pkix-pkipath": { - "source": "iana", - "extensions": ["pkipath"] - }, - "application/pkixcmp": { - "source": "iana", - "extensions": ["pki"] - }, - "application/pls+xml": { - "source": "iana", - "extensions": ["pls"] - }, - "application/poc-settings+xml": { - "source": "iana" - }, - "application/postscript": { - "source": "iana", - "compressible": true, - "extensions": ["ai","eps","ps"] - }, - "application/ppsp-tracker+json": { - "source": "iana", - "compressible": true - }, - "application/problem+json": { - "source": "iana", - "compressible": true - }, - "application/problem+xml": { - "source": "iana" - }, - "application/provenance+xml": { - "source": "iana" - }, - "application/prs.alvestrand.titrax-sheet": { - "source": "iana" - }, - "application/prs.cww": { - "source": "iana", - "extensions": ["cww"] - }, - "application/prs.hpub+zip": { - "source": "iana" - }, - "application/prs.nprend": { - "source": "iana" - }, - "application/prs.plucker": { - "source": "iana" - }, - "application/prs.rdf-xml-crypt": { - "source": "iana" - }, - "application/prs.xsf+xml": { - "source": "iana" - }, - "application/pskc+xml": { - "source": "iana", - "extensions": ["pskcxml"] - }, - "application/qsig": { - "source": "iana" - }, - "application/raptorfec": { - "source": "iana" - }, - "application/rdap+json": { - "source": "iana", - "compressible": true - }, - "application/rdf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rdf"] - }, - "application/reginfo+xml": { - "source": "iana", - "extensions": ["rif"] - }, - "application/relax-ng-compact-syntax": { - "source": "iana", - "extensions": ["rnc"] - }, - "application/remote-printing": { - "source": "iana" - }, - "application/reputon+json": { - "source": "iana", - "compressible": true - }, - "application/resource-lists+xml": { - "source": "iana", - "extensions": ["rl"] - }, - "application/resource-lists-diff+xml": { - "source": "iana", - "extensions": ["rld"] - }, - "application/rfc+xml": { - "source": "iana" - }, - "application/riscos": { - "source": "iana" - }, - "application/rlmi+xml": { - "source": "iana" - }, - "application/rls-services+xml": { - "source": "iana", - "extensions": ["rs"] - }, - "application/rpki-ghostbusters": { - "source": "iana", - "extensions": ["gbr"] - }, - "application/rpki-manifest": { - "source": "iana", - "extensions": ["mft"] - }, - "application/rpki-roa": { - "source": "iana", - "extensions": ["roa"] - }, - "application/rpki-updown": { - "source": "iana" - }, - "application/rsd+xml": { - "source": "apache", - "extensions": ["rsd"] - }, - "application/rss+xml": { - "source": "apache", - "compressible": true, - "extensions": ["rss"] - }, - "application/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "application/rtploopback": { - "source": "iana" - }, - "application/rtx": { - "source": "iana" - }, - "application/samlassertion+xml": { - "source": "iana" - }, - "application/samlmetadata+xml": { - "source": "iana" - }, - "application/sbml+xml": { - "source": "iana", - "extensions": ["sbml"] - }, - "application/scaip+xml": { - "source": "iana" - }, - "application/scim+json": { - "source": "iana", - "compressible": true - }, - "application/scvp-cv-request": { - "source": "iana", - "extensions": ["scq"] - }, - "application/scvp-cv-response": { - "source": "iana", - "extensions": ["scs"] - }, - "application/scvp-vp-request": { - "source": "iana", - "extensions": ["spq"] - }, - "application/scvp-vp-response": { - "source": "iana", - "extensions": ["spp"] - }, - "application/sdp": { - "source": "iana", - "extensions": ["sdp"] - }, - "application/sep+xml": { - "source": "iana" - }, - "application/sep-exi": { - "source": "iana" - }, - "application/session-info": { - "source": "iana" - }, - "application/set-payment": { - "source": "iana" - }, - "application/set-payment-initiation": { - "source": "iana", - "extensions": ["setpay"] - }, - "application/set-registration": { - "source": "iana" - }, - "application/set-registration-initiation": { - "source": "iana", - "extensions": ["setreg"] - }, - "application/sgml": { - "source": "iana" - }, - "application/sgml-open-catalog": { - "source": "iana" - }, - "application/shf+xml": { - "source": "iana", - "extensions": ["shf"] - }, - "application/sieve": { - "source": "iana" - }, - "application/simple-filter+xml": { - "source": "iana" - }, - "application/simple-message-summary": { - "source": "iana" - }, - "application/simplesymbolcontainer": { - "source": "iana" - }, - "application/slate": { - "source": "iana" - }, - "application/smil": { - "source": "iana" - }, - "application/smil+xml": { - "source": "iana", - "extensions": ["smi","smil"] - }, - "application/smpte336m": { - "source": "iana" - }, - "application/soap+fastinfoset": { - "source": "iana" - }, - "application/soap+xml": { - "source": "iana", - "compressible": true - }, - "application/sparql-query": { - "source": "iana", - "extensions": ["rq"] - }, - "application/sparql-results+xml": { - "source": "iana", - "extensions": ["srx"] - }, - "application/spirits-event+xml": { - "source": "iana" - }, - "application/sql": { - "source": "iana" - }, - "application/srgs": { - "source": "iana", - "extensions": ["gram"] - }, - "application/srgs+xml": { - "source": "iana", - "extensions": ["grxml"] - }, - "application/sru+xml": { - "source": "iana", - "extensions": ["sru"] - }, - "application/ssdl+xml": { - "source": "apache", - "extensions": ["ssdl"] - }, - "application/ssml+xml": { - "source": "iana", - "extensions": ["ssml"] - }, - "application/tamp-apex-update": { - "source": "iana" - }, - "application/tamp-apex-update-confirm": { - "source": "iana" - }, - "application/tamp-community-update": { - "source": "iana" - }, - "application/tamp-community-update-confirm": { - "source": "iana" - }, - "application/tamp-error": { - "source": "iana" - }, - "application/tamp-sequence-adjust": { - "source": "iana" - }, - "application/tamp-sequence-adjust-confirm": { - "source": "iana" - }, - "application/tamp-status-query": { - "source": "iana" - }, - "application/tamp-status-response": { - "source": "iana" - }, - "application/tamp-update": { - "source": "iana" - }, - "application/tamp-update-confirm": { - "source": "iana" - }, - "application/tar": { - "compressible": true - }, - "application/tei+xml": { - "source": "iana", - "extensions": ["tei","teicorpus"] - }, - "application/thraud+xml": { - "source": "iana", - "extensions": ["tfi"] - }, - "application/timestamp-query": { - "source": "iana" - }, - "application/timestamp-reply": { - "source": "iana" - }, - "application/timestamped-data": { - "source": "iana", - "extensions": ["tsd"] - }, - "application/ttml+xml": { - "source": "iana" - }, - "application/tve-trigger": { - "source": "iana" - }, - "application/ulpfec": { - "source": "iana" - }, - "application/urc-grpsheet+xml": { - "source": "iana" - }, - "application/urc-ressheet+xml": { - "source": "iana" - }, - "application/urc-targetdesc+xml": { - "source": "iana" - }, - "application/urc-uisocketdesc+xml": { - "source": "iana" - }, - "application/vcard+json": { - "source": "iana", - "compressible": true - }, - "application/vcard+xml": { - "source": "iana" - }, - "application/vemmi": { - "source": "iana" - }, - "application/vividence.scriptfile": { - "source": "apache" - }, - "application/vnd.3gpp-prose+xml": { - "source": "iana" - }, - "application/vnd.3gpp-prose-pc3ch+xml": { - "source": "iana" - }, - "application/vnd.3gpp.access-transfer-events+xml": { - "source": "iana" - }, - "application/vnd.3gpp.bsf+xml": { - "source": "iana" - }, - "application/vnd.3gpp.mid-call+xml": { - "source": "iana" - }, - "application/vnd.3gpp.pic-bw-large": { - "source": "iana", - "extensions": ["plb"] - }, - "application/vnd.3gpp.pic-bw-small": { - "source": "iana", - "extensions": ["psb"] - }, - "application/vnd.3gpp.pic-bw-var": { - "source": "iana", - "extensions": ["pvb"] - }, - "application/vnd.3gpp.sms": { - "source": "iana" - }, - "application/vnd.3gpp.sms+xml": { - "source": "iana" - }, - "application/vnd.3gpp.srvcc-ext+xml": { - "source": "iana" - }, - "application/vnd.3gpp.srvcc-info+xml": { - "source": "iana" - }, - "application/vnd.3gpp.state-and-event-info+xml": { - "source": "iana" - }, - "application/vnd.3gpp.ussd+xml": { - "source": "iana" - }, - "application/vnd.3gpp2.bcmcsinfo+xml": { - "source": "iana" - }, - "application/vnd.3gpp2.sms": { - "source": "iana" - }, - "application/vnd.3gpp2.tcap": { - "source": "iana", - "extensions": ["tcap"] - }, - "application/vnd.3lightssoftware.imagescal": { - "source": "iana" - }, - "application/vnd.3m.post-it-notes": { - "source": "iana", - "extensions": ["pwn"] - }, - "application/vnd.accpac.simply.aso": { - "source": "iana", - "extensions": ["aso"] - }, - "application/vnd.accpac.simply.imp": { - "source": "iana", - "extensions": ["imp"] - }, - "application/vnd.acucobol": { - "source": "iana", - "extensions": ["acu"] - }, - "application/vnd.acucorp": { - "source": "iana", - "extensions": ["atc","acutc"] - }, - "application/vnd.adobe.air-application-installer-package+zip": { - "source": "apache", - "extensions": ["air"] - }, - "application/vnd.adobe.flash.movie": { - "source": "iana" - }, - "application/vnd.adobe.formscentral.fcdt": { - "source": "iana", - "extensions": ["fcdt"] - }, - "application/vnd.adobe.fxp": { - "source": "iana", - "extensions": ["fxp","fxpl"] - }, - "application/vnd.adobe.partial-upload": { - "source": "iana" - }, - "application/vnd.adobe.xdp+xml": { - "source": "iana", - "extensions": ["xdp"] - }, - "application/vnd.adobe.xfdf": { - "source": "iana", - "extensions": ["xfdf"] - }, - "application/vnd.aether.imp": { - "source": "iana" - }, - "application/vnd.ah-barcode": { - "source": "iana" - }, - "application/vnd.ahead.space": { - "source": "iana", - "extensions": ["ahead"] - }, - "application/vnd.airzip.filesecure.azf": { - "source": "iana", - "extensions": ["azf"] - }, - "application/vnd.airzip.filesecure.azs": { - "source": "iana", - "extensions": ["azs"] - }, - "application/vnd.amazon.ebook": { - "source": "apache", - "extensions": ["azw"] - }, - "application/vnd.amazon.mobi8-ebook": { - "source": "iana" - }, - "application/vnd.americandynamics.acc": { - "source": "iana", - "extensions": ["acc"] - }, - "application/vnd.amiga.ami": { - "source": "iana", - "extensions": ["ami"] - }, - "application/vnd.amundsen.maze+xml": { - "source": "iana" - }, - "application/vnd.android.package-archive": { - "source": "apache", - "compressible": false, - "extensions": ["apk"] - }, - "application/vnd.anki": { - "source": "iana" - }, - "application/vnd.anser-web-certificate-issue-initiation": { - "source": "iana", - "extensions": ["cii"] - }, - "application/vnd.anser-web-funds-transfer-initiation": { - "source": "apache", - "extensions": ["fti"] - }, - "application/vnd.antix.game-component": { - "source": "iana", - "extensions": ["atx"] - }, - "application/vnd.apache.thrift.binary": { - "source": "iana" - }, - "application/vnd.apache.thrift.compact": { - "source": "iana" - }, - "application/vnd.apache.thrift.json": { - "source": "iana" - }, - "application/vnd.api+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.apple.installer+xml": { - "source": "iana", - "extensions": ["mpkg"] - }, - "application/vnd.apple.mpegurl": { - "source": "iana", - "extensions": ["m3u8"] - }, - "application/vnd.apple.pkpass": { - "compressible": false, - "extensions": ["pkpass"] - }, - "application/vnd.arastra.swi": { - "source": "iana" - }, - "application/vnd.aristanetworks.swi": { - "source": "iana", - "extensions": ["swi"] - }, - "application/vnd.artsquare": { - "source": "iana" - }, - "application/vnd.astraea-software.iota": { - "source": "iana", - "extensions": ["iota"] - }, - "application/vnd.audiograph": { - "source": "iana", - "extensions": ["aep"] - }, - "application/vnd.autopackage": { - "source": "iana" - }, - "application/vnd.avistar+xml": { - "source": "iana" - }, - "application/vnd.balsamiq.bmml+xml": { - "source": "iana" - }, - "application/vnd.balsamiq.bmpr": { - "source": "iana" - }, - "application/vnd.bekitzur-stech+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.biopax.rdf+xml": { - "source": "iana" - }, - "application/vnd.blueice.multipass": { - "source": "iana", - "extensions": ["mpm"] - }, - "application/vnd.bluetooth.ep.oob": { - "source": "iana" - }, - "application/vnd.bluetooth.le.oob": { - "source": "iana" - }, - "application/vnd.bmi": { - "source": "iana", - "extensions": ["bmi"] - }, - "application/vnd.businessobjects": { - "source": "iana", - "extensions": ["rep"] - }, - "application/vnd.cab-jscript": { - "source": "iana" - }, - "application/vnd.canon-cpdl": { - "source": "iana" - }, - "application/vnd.canon-lips": { - "source": "iana" - }, - "application/vnd.cendio.thinlinc.clientconf": { - "source": "iana" - }, - "application/vnd.century-systems.tcp_stream": { - "source": "iana" - }, - "application/vnd.chemdraw+xml": { - "source": "iana", - "extensions": ["cdxml"] - }, - "application/vnd.chess-pgn": { - "source": "iana" - }, - "application/vnd.chipnuts.karaoke-mmd": { - "source": "iana", - "extensions": ["mmd"] - }, - "application/vnd.cinderella": { - "source": "iana", - "extensions": ["cdy"] - }, - "application/vnd.cirpack.isdn-ext": { - "source": "iana" - }, - "application/vnd.citationstyles.style+xml": { - "source": "iana" - }, - "application/vnd.claymore": { - "source": "iana", - "extensions": ["cla"] - }, - "application/vnd.cloanto.rp9": { - "source": "iana", - "extensions": ["rp9"] - }, - "application/vnd.clonk.c4group": { - "source": "iana", - "extensions": ["c4g","c4d","c4f","c4p","c4u"] - }, - "application/vnd.cluetrust.cartomobile-config": { - "source": "iana", - "extensions": ["c11amc"] - }, - "application/vnd.cluetrust.cartomobile-config-pkg": { - "source": "iana", - "extensions": ["c11amz"] - }, - "application/vnd.coffeescript": { - "source": "iana" - }, - "application/vnd.collection+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.doc+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.next+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.comicbook+zip": { - "source": "iana" - }, - "application/vnd.commerce-battelle": { - "source": "iana" - }, - "application/vnd.commonspace": { - "source": "iana", - "extensions": ["csp"] - }, - "application/vnd.contact.cmsg": { - "source": "iana", - "extensions": ["cdbcmsg"] - }, - "application/vnd.coreos.ignition+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cosmocaller": { - "source": "iana", - "extensions": ["cmc"] - }, - "application/vnd.crick.clicker": { - "source": "iana", - "extensions": ["clkx"] - }, - "application/vnd.crick.clicker.keyboard": { - "source": "iana", - "extensions": ["clkk"] - }, - "application/vnd.crick.clicker.palette": { - "source": "iana", - "extensions": ["clkp"] - }, - "application/vnd.crick.clicker.template": { - "source": "iana", - "extensions": ["clkt"] - }, - "application/vnd.crick.clicker.wordbank": { - "source": "iana", - "extensions": ["clkw"] - }, - "application/vnd.criticaltools.wbs+xml": { - "source": "iana", - "extensions": ["wbs"] - }, - "application/vnd.ctc-posml": { - "source": "iana", - "extensions": ["pml"] - }, - "application/vnd.ctct.ws+xml": { - "source": "iana" - }, - "application/vnd.cups-pdf": { - "source": "iana" - }, - "application/vnd.cups-postscript": { - "source": "iana" - }, - "application/vnd.cups-ppd": { - "source": "iana", - "extensions": ["ppd"] - }, - "application/vnd.cups-raster": { - "source": "iana" - }, - "application/vnd.cups-raw": { - "source": "iana" - }, - "application/vnd.curl": { - "source": "iana" - }, - "application/vnd.curl.car": { - "source": "apache", - "extensions": ["car"] - }, - "application/vnd.curl.pcurl": { - "source": "apache", - "extensions": ["pcurl"] - }, - "application/vnd.cyan.dean.root+xml": { - "source": "iana" - }, - "application/vnd.cybank": { - "source": "iana" - }, - "application/vnd.d2l.coursepackage1p0+zip": { - "source": "iana" - }, - "application/vnd.dart": { - "source": "iana", - "compressible": true, - "extensions": ["dart"] - }, - "application/vnd.data-vision.rdz": { - "source": "iana", - "extensions": ["rdz"] - }, - "application/vnd.debian.binary-package": { - "source": "iana" - }, - "application/vnd.dece.data": { - "source": "iana", - "extensions": ["uvf","uvvf","uvd","uvvd"] - }, - "application/vnd.dece.ttml+xml": { - "source": "iana", - "extensions": ["uvt","uvvt"] - }, - "application/vnd.dece.unspecified": { - "source": "iana", - "extensions": ["uvx","uvvx"] - }, - "application/vnd.dece.zip": { - "source": "iana", - "extensions": ["uvz","uvvz"] - }, - "application/vnd.denovo.fcselayout-link": { - "source": "iana", - "extensions": ["fe_launch"] - }, - "application/vnd.desmume-movie": { - "source": "iana" - }, - "application/vnd.desmume.movie": { - "source": "apache" - }, - "application/vnd.dir-bi.plate-dl-nosuffix": { - "source": "iana" - }, - "application/vnd.dm.delegation+xml": { - "source": "iana" - }, - "application/vnd.dna": { - "source": "iana", - "extensions": ["dna"] - }, - "application/vnd.document+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.dolby.mlp": { - "source": "apache", - "extensions": ["mlp"] - }, - "application/vnd.dolby.mobile.1": { - "source": "iana" - }, - "application/vnd.dolby.mobile.2": { - "source": "iana" - }, - "application/vnd.doremir.scorecloud-binary-document": { - "source": "iana" - }, - "application/vnd.dpgraph": { - "source": "iana", - "extensions": ["dpg"] - }, - "application/vnd.dreamfactory": { - "source": "iana", - "extensions": ["dfac"] - }, - "application/vnd.drive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ds-keypoint": { - "source": "apache", - "extensions": ["kpxx"] - }, - "application/vnd.dtg.local": { - "source": "iana" - }, - "application/vnd.dtg.local.flash": { - "source": "iana" - }, - "application/vnd.dtg.local.html": { - "source": "iana" - }, - "application/vnd.dvb.ait": { - "source": "iana", - "extensions": ["ait"] - }, - "application/vnd.dvb.dvbj": { - "source": "iana" - }, - "application/vnd.dvb.esgcontainer": { - "source": "iana" - }, - "application/vnd.dvb.ipdcdftnotifaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess2": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgpdd": { - "source": "iana" - }, - "application/vnd.dvb.ipdcroaming": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-base": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-enhancement": { - "source": "iana" - }, - "application/vnd.dvb.notif-aggregate-root+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-container+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-generic+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-msglist+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-registration-request+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-registration-response+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-init+xml": { - "source": "iana" - }, - "application/vnd.dvb.pfr": { - "source": "iana" - }, - "application/vnd.dvb.service": { - "source": "iana", - "extensions": ["svc"] - }, - "application/vnd.dxr": { - "source": "iana" - }, - "application/vnd.dynageo": { - "source": "iana", - "extensions": ["geo"] - }, - "application/vnd.dzr": { - "source": "iana" - }, - "application/vnd.easykaraoke.cdgdownload": { - "source": "iana" - }, - "application/vnd.ecdis-update": { - "source": "iana" - }, - "application/vnd.ecowin.chart": { - "source": "iana", - "extensions": ["mag"] - }, - "application/vnd.ecowin.filerequest": { - "source": "iana" - }, - "application/vnd.ecowin.fileupdate": { - "source": "iana" - }, - "application/vnd.ecowin.series": { - "source": "iana" - }, - "application/vnd.ecowin.seriesrequest": { - "source": "iana" - }, - "application/vnd.ecowin.seriesupdate": { - "source": "iana" - }, - "application/vnd.emclient.accessrequest+xml": { - "source": "iana" - }, - "application/vnd.enliven": { - "source": "iana", - "extensions": ["nml"] - }, - "application/vnd.enphase.envoy": { - "source": "iana" - }, - "application/vnd.eprints.data+xml": { - "source": "iana" - }, - "application/vnd.epson.esf": { - "source": "iana", - "extensions": ["esf"] - }, - "application/vnd.epson.msf": { - "source": "iana", - "extensions": ["msf"] - }, - "application/vnd.epson.quickanime": { - "source": "iana", - "extensions": ["qam"] - }, - "application/vnd.epson.salt": { - "source": "iana", - "extensions": ["slt"] - }, - "application/vnd.epson.ssf": { - "source": "iana", - "extensions": ["ssf"] - }, - "application/vnd.ericsson.quickcall": { - "source": "iana" - }, - "application/vnd.espass-espass+zip": { - "source": "iana" - }, - "application/vnd.eszigno3+xml": { - "source": "iana", - "extensions": ["es3","et3"] - }, - "application/vnd.etsi.aoc+xml": { - "source": "iana" - }, - "application/vnd.etsi.asic-e+zip": { - "source": "iana" - }, - "application/vnd.etsi.asic-s+zip": { - "source": "iana" - }, - "application/vnd.etsi.cug+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvcommand+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvdiscovery+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvprofile+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-bc+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-cod+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-npvr+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvservice+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsync+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvueprofile+xml": { - "source": "iana" - }, - "application/vnd.etsi.mcid+xml": { - "source": "iana" - }, - "application/vnd.etsi.mheg5": { - "source": "iana" - }, - "application/vnd.etsi.overload-control-policy-dataset+xml": { - "source": "iana" - }, - "application/vnd.etsi.pstn+xml": { - "source": "iana" - }, - "application/vnd.etsi.sci+xml": { - "source": "iana" - }, - "application/vnd.etsi.simservs+xml": { - "source": "iana" - }, - "application/vnd.etsi.timestamp-token": { - "source": "iana" - }, - "application/vnd.etsi.tsl+xml": { - "source": "iana" - }, - "application/vnd.etsi.tsl.der": { - "source": "iana" - }, - "application/vnd.eudora.data": { - "source": "iana" - }, - "application/vnd.ezpix-album": { - "source": "iana", - "extensions": ["ez2"] - }, - "application/vnd.ezpix-package": { - "source": "iana", - "extensions": ["ez3"] - }, - "application/vnd.f-secure.mobile": { - "source": "iana" - }, - "application/vnd.fastcopy-disk-image": { - "source": "iana" - }, - "application/vnd.fdf": { - "source": "iana", - "extensions": ["fdf"] - }, - "application/vnd.fdsn.mseed": { - "source": "iana", - "extensions": ["mseed"] - }, - "application/vnd.fdsn.seed": { - "source": "iana", - "extensions": ["seed","dataless"] - }, - "application/vnd.ffsns": { - "source": "iana" - }, - "application/vnd.filmit.zfc": { - "source": "iana" - }, - "application/vnd.fints": { - "source": "iana" - }, - "application/vnd.firemonkeys.cloudcell": { - "source": "iana" - }, - "application/vnd.flographit": { - "source": "iana", - "extensions": ["gph"] - }, - "application/vnd.fluxtime.clip": { - "source": "iana", - "extensions": ["ftc"] - }, - "application/vnd.font-fontforge-sfd": { - "source": "iana" - }, - "application/vnd.framemaker": { - "source": "iana", - "extensions": ["fm","frame","maker","book"] - }, - "application/vnd.frogans.fnc": { - "source": "iana", - "extensions": ["fnc"] - }, - "application/vnd.frogans.ltf": { - "source": "iana", - "extensions": ["ltf"] - }, - "application/vnd.fsc.weblaunch": { - "source": "iana", - "extensions": ["fsc"] - }, - "application/vnd.fujitsu.oasys": { - "source": "iana", - "extensions": ["oas"] - }, - "application/vnd.fujitsu.oasys2": { - "source": "iana", - "extensions": ["oa2"] - }, - "application/vnd.fujitsu.oasys3": { - "source": "iana", - "extensions": ["oa3"] - }, - "application/vnd.fujitsu.oasysgp": { - "source": "iana", - "extensions": ["fg5"] - }, - "application/vnd.fujitsu.oasysprs": { - "source": "iana", - "extensions": ["bh2"] - }, - "application/vnd.fujixerox.art-ex": { - "source": "iana" - }, - "application/vnd.fujixerox.art4": { - "source": "iana" - }, - "application/vnd.fujixerox.ddd": { - "source": "iana", - "extensions": ["ddd"] - }, - "application/vnd.fujixerox.docuworks": { - "source": "iana", - "extensions": ["xdw"] - }, - "application/vnd.fujixerox.docuworks.binder": { - "source": "iana", - "extensions": ["xbd"] - }, - "application/vnd.fujixerox.docuworks.container": { - "source": "iana" - }, - "application/vnd.fujixerox.hbpl": { - "source": "iana" - }, - "application/vnd.fut-misnet": { - "source": "iana" - }, - "application/vnd.fuzzysheet": { - "source": "iana", - "extensions": ["fzs"] - }, - "application/vnd.genomatix.tuxedo": { - "source": "iana", - "extensions": ["txd"] - }, - "application/vnd.geo+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.geocube+xml": { - "source": "iana" - }, - "application/vnd.geogebra.file": { - "source": "iana", - "extensions": ["ggb"] - }, - "application/vnd.geogebra.tool": { - "source": "iana", - "extensions": ["ggt"] - }, - "application/vnd.geometry-explorer": { - "source": "iana", - "extensions": ["gex","gre"] - }, - "application/vnd.geonext": { - "source": "iana", - "extensions": ["gxt"] - }, - "application/vnd.geoplan": { - "source": "iana", - "extensions": ["g2w"] - }, - "application/vnd.geospace": { - "source": "iana", - "extensions": ["g3w"] - }, - "application/vnd.gerber": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt-response": { - "source": "iana" - }, - "application/vnd.gmx": { - "source": "iana", - "extensions": ["gmx"] - }, - "application/vnd.google-apps.document": { - "compressible": false, - "extensions": ["gdoc"] - }, - "application/vnd.google-apps.presentation": { - "compressible": false, - "extensions": ["gslides"] - }, - "application/vnd.google-apps.spreadsheet": { - "compressible": false, - "extensions": ["gsheet"] - }, - "application/vnd.google-earth.kml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["kml"] - }, - "application/vnd.google-earth.kmz": { - "source": "iana", - "compressible": false, - "extensions": ["kmz"] - }, - "application/vnd.gov.sk.e-form+xml": { - "source": "iana" - }, - "application/vnd.gov.sk.e-form+zip": { - "source": "iana" - }, - "application/vnd.gov.sk.xmldatacontainer+xml": { - "source": "iana" - }, - "application/vnd.grafeq": { - "source": "iana", - "extensions": ["gqf","gqs"] - }, - "application/vnd.gridmp": { - "source": "iana" - }, - "application/vnd.groove-account": { - "source": "iana", - "extensions": ["gac"] - }, - "application/vnd.groove-help": { - "source": "iana", - "extensions": ["ghf"] - }, - "application/vnd.groove-identity-message": { - "source": "iana", - "extensions": ["gim"] - }, - "application/vnd.groove-injector": { - "source": "iana", - "extensions": ["grv"] - }, - "application/vnd.groove-tool-message": { - "source": "iana", - "extensions": ["gtm"] - }, - "application/vnd.groove-tool-template": { - "source": "iana", - "extensions": ["tpl"] - }, - "application/vnd.groove-vcard": { - "source": "iana", - "extensions": ["vcg"] - }, - "application/vnd.hal+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hal+xml": { - "source": "iana", - "extensions": ["hal"] - }, - "application/vnd.handheld-entertainment+xml": { - "source": "iana", - "extensions": ["zmm"] - }, - "application/vnd.hbci": { - "source": "iana", - "extensions": ["hbci"] - }, - "application/vnd.hcl-bireports": { - "source": "iana" - }, - "application/vnd.hdt": { - "source": "iana" - }, - "application/vnd.heroku+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hhe.lesson-player": { - "source": "iana", - "extensions": ["les"] - }, - "application/vnd.hp-hpgl": { - "source": "iana", - "extensions": ["hpgl"] - }, - "application/vnd.hp-hpid": { - "source": "iana", - "extensions": ["hpid"] - }, - "application/vnd.hp-hps": { - "source": "iana", - "extensions": ["hps"] - }, - "application/vnd.hp-jlyt": { - "source": "iana", - "extensions": ["jlt"] - }, - "application/vnd.hp-pcl": { - "source": "iana", - "extensions": ["pcl"] - }, - "application/vnd.hp-pclxl": { - "source": "iana", - "extensions": ["pclxl"] - }, - "application/vnd.httphone": { - "source": "iana" - }, - "application/vnd.hydrostatix.sof-data": { - "source": "iana", - "extensions": ["sfd-hdstx"] - }, - "application/vnd.hyperdrive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hzn-3d-crossword": { - "source": "iana" - }, - "application/vnd.ibm.afplinedata": { - "source": "iana" - }, - "application/vnd.ibm.electronic-media": { - "source": "iana" - }, - "application/vnd.ibm.minipay": { - "source": "iana", - "extensions": ["mpy"] - }, - "application/vnd.ibm.modcap": { - "source": "iana", - "extensions": ["afp","listafp","list3820"] - }, - "application/vnd.ibm.rights-management": { - "source": "iana", - "extensions": ["irm"] - }, - "application/vnd.ibm.secure-container": { - "source": "iana", - "extensions": ["sc"] - }, - "application/vnd.iccprofile": { - "source": "iana", - "extensions": ["icc","icm"] - }, - "application/vnd.ieee.1905": { - "source": "iana" - }, - "application/vnd.igloader": { - "source": "iana", - "extensions": ["igl"] - }, - "application/vnd.immervision-ivp": { - "source": "iana", - "extensions": ["ivp"] - }, - "application/vnd.immervision-ivu": { - "source": "iana", - "extensions": ["ivu"] - }, - "application/vnd.ims.imsccv1p1": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p2": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p3": { - "source": "iana" - }, - "application/vnd.ims.lis.v2.result+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolconsumerprofile+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy.id+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings.simple+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.informedcontrol.rms+xml": { - "source": "iana" - }, - "application/vnd.informix-visionary": { - "source": "iana" - }, - "application/vnd.infotech.project": { - "source": "iana" - }, - "application/vnd.infotech.project+xml": { - "source": "iana" - }, - "application/vnd.innopath.wamp.notification": { - "source": "iana" - }, - "application/vnd.insors.igm": { - "source": "iana", - "extensions": ["igm"] - }, - "application/vnd.intercon.formnet": { - "source": "iana", - "extensions": ["xpw","xpx"] - }, - "application/vnd.intergeo": { - "source": "iana", - "extensions": ["i2g"] - }, - "application/vnd.intertrust.digibox": { - "source": "iana" - }, - "application/vnd.intertrust.nncp": { - "source": "iana" - }, - "application/vnd.intu.qbo": { - "source": "iana", - "extensions": ["qbo"] - }, - "application/vnd.intu.qfx": { - "source": "iana", - "extensions": ["qfx"] - }, - "application/vnd.iptc.g2.catalogitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.conceptitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.knowledgeitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.newsitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.newsmessage+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.packageitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.planningitem+xml": { - "source": "iana" - }, - "application/vnd.ipunplugged.rcprofile": { - "source": "iana", - "extensions": ["rcprofile"] - }, - "application/vnd.irepository.package+xml": { - "source": "iana", - "extensions": ["irp"] - }, - "application/vnd.is-xpr": { - "source": "iana", - "extensions": ["xpr"] - }, - "application/vnd.isac.fcs": { - "source": "iana", - "extensions": ["fcs"] - }, - "application/vnd.jam": { - "source": "iana", - "extensions": ["jam"] - }, - "application/vnd.japannet-directory-service": { - "source": "iana" - }, - "application/vnd.japannet-jpnstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-payment-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-registration": { - "source": "iana" - }, - "application/vnd.japannet-registration-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-setstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-verification": { - "source": "iana" - }, - "application/vnd.japannet-verification-wakeup": { - "source": "iana" - }, - "application/vnd.jcp.javame.midlet-rms": { - "source": "iana", - "extensions": ["rms"] - }, - "application/vnd.jisp": { - "source": "iana", - "extensions": ["jisp"] - }, - "application/vnd.joost.joda-archive": { - "source": "iana", - "extensions": ["joda"] - }, - "application/vnd.jsk.isdn-ngn": { - "source": "iana" - }, - "application/vnd.kahootz": { - "source": "iana", - "extensions": ["ktz","ktr"] - }, - "application/vnd.kde.karbon": { - "source": "iana", - "extensions": ["karbon"] - }, - "application/vnd.kde.kchart": { - "source": "iana", - "extensions": ["chrt"] - }, - "application/vnd.kde.kformula": { - "source": "iana", - "extensions": ["kfo"] - }, - "application/vnd.kde.kivio": { - "source": "iana", - "extensions": ["flw"] - }, - "application/vnd.kde.kontour": { - "source": "iana", - "extensions": ["kon"] - }, - "application/vnd.kde.kpresenter": { - "source": "iana", - "extensions": ["kpr","kpt"] - }, - "application/vnd.kde.kspread": { - "source": "iana", - "extensions": ["ksp"] - }, - "application/vnd.kde.kword": { - "source": "iana", - "extensions": ["kwd","kwt"] - }, - "application/vnd.kenameaapp": { - "source": "iana", - "extensions": ["htke"] - }, - "application/vnd.kidspiration": { - "source": "iana", - "extensions": ["kia"] - }, - "application/vnd.kinar": { - "source": "iana", - "extensions": ["kne","knp"] - }, - "application/vnd.koan": { - "source": "iana", - "extensions": ["skp","skd","skt","skm"] - }, - "application/vnd.kodak-descriptor": { - "source": "iana", - "extensions": ["sse"] - }, - "application/vnd.las.las+xml": { - "source": "iana", - "extensions": ["lasxml"] - }, - "application/vnd.liberty-request+xml": { - "source": "iana" - }, - "application/vnd.llamagraphics.life-balance.desktop": { - "source": "iana", - "extensions": ["lbd"] - }, - "application/vnd.llamagraphics.life-balance.exchange+xml": { - "source": "iana", - "extensions": ["lbe"] - }, - "application/vnd.lotus-1-2-3": { - "source": "iana", - "extensions": ["123"] - }, - "application/vnd.lotus-approach": { - "source": "iana", - "extensions": ["apr"] - }, - "application/vnd.lotus-freelance": { - "source": "iana", - "extensions": ["pre"] - }, - "application/vnd.lotus-notes": { - "source": "iana", - "extensions": ["nsf"] - }, - "application/vnd.lotus-organizer": { - "source": "iana", - "extensions": ["org"] - }, - "application/vnd.lotus-screencam": { - "source": "iana", - "extensions": ["scm"] - }, - "application/vnd.lotus-wordpro": { - "source": "iana", - "extensions": ["lwp"] - }, - "application/vnd.macports.portpkg": { - "source": "iana", - "extensions": ["portpkg"] - }, - "application/vnd.mapbox-vector-tile": { - "source": "iana" - }, - "application/vnd.marlin.drm.actiontoken+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.conftoken+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.license+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.mdcf": { - "source": "iana" - }, - "application/vnd.mason+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.maxmind.maxmind-db": { - "source": "iana" - }, - "application/vnd.mcd": { - "source": "iana", - "extensions": ["mcd"] - }, - "application/vnd.medcalcdata": { - "source": "iana", - "extensions": ["mc1"] - }, - "application/vnd.mediastation.cdkey": { - "source": "iana", - "extensions": ["cdkey"] - }, - "application/vnd.meridian-slingshot": { - "source": "iana" - }, - "application/vnd.mfer": { - "source": "iana", - "extensions": ["mwf"] - }, - "application/vnd.mfmp": { - "source": "iana", - "extensions": ["mfm"] - }, - "application/vnd.micro+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.micrografx.flo": { - "source": "iana", - "extensions": ["flo"] - }, - "application/vnd.micrografx.igx": { - "source": "iana", - "extensions": ["igx"] - }, - "application/vnd.microsoft.portable-executable": { - "source": "iana" - }, - "application/vnd.miele+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.mif": { - "source": "iana", - "extensions": ["mif"] - }, - "application/vnd.minisoft-hp3000-save": { - "source": "iana" - }, - "application/vnd.mitsubishi.misty-guard.trustweb": { - "source": "iana" - }, - "application/vnd.mobius.daf": { - "source": "iana", - "extensions": ["daf"] - }, - "application/vnd.mobius.dis": { - "source": "iana", - "extensions": ["dis"] - }, - "application/vnd.mobius.mbk": { - "source": "iana", - "extensions": ["mbk"] - }, - "application/vnd.mobius.mqy": { - "source": "iana", - "extensions": ["mqy"] - }, - "application/vnd.mobius.msl": { - "source": "iana", - "extensions": ["msl"] - }, - "application/vnd.mobius.plc": { - "source": "iana", - "extensions": ["plc"] - }, - "application/vnd.mobius.txf": { - "source": "iana", - "extensions": ["txf"] - }, - "application/vnd.mophun.application": { - "source": "iana", - "extensions": ["mpn"] - }, - "application/vnd.mophun.certificate": { - "source": "iana", - "extensions": ["mpc"] - }, - "application/vnd.motorola.flexsuite": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.adsi": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.fis": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.gotap": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.kmr": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.ttc": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.wem": { - "source": "iana" - }, - "application/vnd.motorola.iprm": { - "source": "iana" - }, - "application/vnd.mozilla.xul+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xul"] - }, - "application/vnd.ms-3mfdocument": { - "source": "iana" - }, - "application/vnd.ms-artgalry": { - "source": "iana", - "extensions": ["cil"] - }, - "application/vnd.ms-asf": { - "source": "iana" - }, - "application/vnd.ms-cab-compressed": { - "source": "iana", - "extensions": ["cab"] - }, - "application/vnd.ms-color.iccprofile": { - "source": "apache" - }, - "application/vnd.ms-excel": { - "source": "iana", - "compressible": false, - "extensions": ["xls","xlm","xla","xlc","xlt","xlw"] - }, - "application/vnd.ms-excel.addin.macroenabled.12": { - "source": "iana", - "extensions": ["xlam"] - }, - "application/vnd.ms-excel.sheet.binary.macroenabled.12": { - "source": "iana", - "extensions": ["xlsb"] - }, - "application/vnd.ms-excel.sheet.macroenabled.12": { - "source": "iana", - "extensions": ["xlsm"] - }, - "application/vnd.ms-excel.template.macroenabled.12": { - "source": "iana", - "extensions": ["xltm"] - }, - "application/vnd.ms-fontobject": { - "source": "iana", - "compressible": true, - "extensions": ["eot"] - }, - "application/vnd.ms-htmlhelp": { - "source": "iana", - "extensions": ["chm"] - }, - "application/vnd.ms-ims": { - "source": "iana", - "extensions": ["ims"] - }, - "application/vnd.ms-lrm": { - "source": "iana", - "extensions": ["lrm"] - }, - "application/vnd.ms-office.activex+xml": { - "source": "iana" - }, - "application/vnd.ms-officetheme": { - "source": "iana", - "extensions": ["thmx"] - }, - "application/vnd.ms-opentype": { - "source": "apache", - "compressible": true - }, - "application/vnd.ms-package.obfuscated-opentype": { - "source": "apache" - }, - "application/vnd.ms-pki.seccat": { - "source": "apache", - "extensions": ["cat"] - }, - "application/vnd.ms-pki.stl": { - "source": "apache", - "extensions": ["stl"] - }, - "application/vnd.ms-playready.initiator+xml": { - "source": "iana" - }, - "application/vnd.ms-powerpoint": { - "source": "iana", - "compressible": false, - "extensions": ["ppt","pps","pot"] - }, - "application/vnd.ms-powerpoint.addin.macroenabled.12": { - "source": "iana", - "extensions": ["ppam"] - }, - "application/vnd.ms-powerpoint.presentation.macroenabled.12": { - "source": "iana", - "extensions": ["pptm"] - }, - "application/vnd.ms-powerpoint.slide.macroenabled.12": { - "source": "iana", - "extensions": ["sldm"] - }, - "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { - "source": "iana", - "extensions": ["ppsm"] - }, - "application/vnd.ms-powerpoint.template.macroenabled.12": { - "source": "iana", - "extensions": ["potm"] - }, - "application/vnd.ms-printdevicecapabilities+xml": { - "source": "iana" - }, - "application/vnd.ms-printing.printticket+xml": { - "source": "apache" - }, - "application/vnd.ms-printschematicket+xml": { - "source": "iana" - }, - "application/vnd.ms-project": { - "source": "iana", - "extensions": ["mpp","mpt"] - }, - "application/vnd.ms-tnef": { - "source": "iana" - }, - "application/vnd.ms-windows.devicepairing": { - "source": "iana" - }, - "application/vnd.ms-windows.nwprinting.oob": { - "source": "iana" - }, - "application/vnd.ms-windows.printerpairing": { - "source": "iana" - }, - "application/vnd.ms-windows.wsd.oob": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-resp": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-resp": { - "source": "iana" - }, - "application/vnd.ms-word.document.macroenabled.12": { - "source": "iana", - "extensions": ["docm"] - }, - "application/vnd.ms-word.template.macroenabled.12": { - "source": "iana", - "extensions": ["dotm"] - }, - "application/vnd.ms-works": { - "source": "iana", - "extensions": ["wps","wks","wcm","wdb"] - }, - "application/vnd.ms-wpl": { - "source": "iana", - "extensions": ["wpl"] - }, - "application/vnd.ms-xpsdocument": { - "source": "iana", - "compressible": false, - "extensions": ["xps"] - }, - "application/vnd.msa-disk-image": { - "source": "iana" - }, - "application/vnd.mseq": { - "source": "iana", - "extensions": ["mseq"] - }, - "application/vnd.msign": { - "source": "iana" - }, - "application/vnd.multiad.creator": { - "source": "iana" - }, - "application/vnd.multiad.creator.cif": { - "source": "iana" - }, - "application/vnd.music-niff": { - "source": "iana" - }, - "application/vnd.musician": { - "source": "iana", - "extensions": ["mus"] - }, - "application/vnd.muvee.style": { - "source": "iana", - "extensions": ["msty"] - }, - "application/vnd.mynfc": { - "source": "iana", - "extensions": ["taglet"] - }, - "application/vnd.ncd.control": { - "source": "iana" - }, - "application/vnd.ncd.reference": { - "source": "iana" - }, - "application/vnd.nearst.inv+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.nervana": { - "source": "iana" - }, - "application/vnd.netfpx": { - "source": "iana" - }, - "application/vnd.neurolanguage.nlu": { - "source": "iana", - "extensions": ["nlu"] - }, - "application/vnd.nintendo.nitro.rom": { - "source": "iana" - }, - "application/vnd.nintendo.snes.rom": { - "source": "iana" - }, - "application/vnd.nitf": { - "source": "iana", - "extensions": ["ntf","nitf"] - }, - "application/vnd.noblenet-directory": { - "source": "iana", - "extensions": ["nnd"] - }, - "application/vnd.noblenet-sealer": { - "source": "iana", - "extensions": ["nns"] - }, - "application/vnd.noblenet-web": { - "source": "iana", - "extensions": ["nnw"] - }, - "application/vnd.nokia.catalogs": { - "source": "iana" - }, - "application/vnd.nokia.conml+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.conml+xml": { - "source": "iana" - }, - "application/vnd.nokia.iptv.config+xml": { - "source": "iana" - }, - "application/vnd.nokia.isds-radio-presets": { - "source": "iana" - }, - "application/vnd.nokia.landmark+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.landmark+xml": { - "source": "iana" - }, - "application/vnd.nokia.landmarkcollection+xml": { - "source": "iana" - }, - "application/vnd.nokia.n-gage.ac+xml": { - "source": "iana" - }, - "application/vnd.nokia.n-gage.data": { - "source": "iana", - "extensions": ["ngdat"] - }, - "application/vnd.nokia.n-gage.symbian.install": { - "source": "iana", - "extensions": ["n-gage"] - }, - "application/vnd.nokia.ncd": { - "source": "iana" - }, - "application/vnd.nokia.pcd+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.pcd+xml": { - "source": "iana" - }, - "application/vnd.nokia.radio-preset": { - "source": "iana", - "extensions": ["rpst"] - }, - "application/vnd.nokia.radio-presets": { - "source": "iana", - "extensions": ["rpss"] - }, - "application/vnd.novadigm.edm": { - "source": "iana", - "extensions": ["edm"] - }, - "application/vnd.novadigm.edx": { - "source": "iana", - "extensions": ["edx"] - }, - "application/vnd.novadigm.ext": { - "source": "iana", - "extensions": ["ext"] - }, - "application/vnd.ntt-local.content-share": { - "source": "iana" - }, - "application/vnd.ntt-local.file-transfer": { - "source": "iana" - }, - "application/vnd.ntt-local.ogw_remote-access": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_remote": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_tcp_stream": { - "source": "iana" - }, - "application/vnd.oasis.opendocument.chart": { - "source": "iana", - "extensions": ["odc"] - }, - "application/vnd.oasis.opendocument.chart-template": { - "source": "iana", - "extensions": ["otc"] - }, - "application/vnd.oasis.opendocument.database": { - "source": "iana", - "extensions": ["odb"] - }, - "application/vnd.oasis.opendocument.formula": { - "source": "iana", - "extensions": ["odf"] - }, - "application/vnd.oasis.opendocument.formula-template": { - "source": "iana", - "extensions": ["odft"] - }, - "application/vnd.oasis.opendocument.graphics": { - "source": "iana", - "compressible": false, - "extensions": ["odg"] - }, - "application/vnd.oasis.opendocument.graphics-template": { - "source": "iana", - "extensions": ["otg"] - }, - "application/vnd.oasis.opendocument.image": { - "source": "iana", - "extensions": ["odi"] - }, - "application/vnd.oasis.opendocument.image-template": { - "source": "iana", - "extensions": ["oti"] - }, - "application/vnd.oasis.opendocument.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["odp"] - }, - "application/vnd.oasis.opendocument.presentation-template": { - "source": "iana", - "extensions": ["otp"] - }, - "application/vnd.oasis.opendocument.spreadsheet": { - "source": "iana", - "compressible": false, - "extensions": ["ods"] - }, - "application/vnd.oasis.opendocument.spreadsheet-template": { - "source": "iana", - "extensions": ["ots"] - }, - "application/vnd.oasis.opendocument.text": { - "source": "iana", - "compressible": false, - "extensions": ["odt"] - }, - "application/vnd.oasis.opendocument.text-master": { - "source": "iana", - "extensions": ["odm"] - }, - "application/vnd.oasis.opendocument.text-template": { - "source": "iana", - "extensions": ["ott"] - }, - "application/vnd.oasis.opendocument.text-web": { - "source": "iana", - "extensions": ["oth"] - }, - "application/vnd.obn": { - "source": "iana" - }, - "application/vnd.oftn.l10n+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.contentaccessdownload+xml": { - "source": "iana" - }, - "application/vnd.oipf.contentaccessstreaming+xml": { - "source": "iana" - }, - "application/vnd.oipf.cspg-hexbinary": { - "source": "iana" - }, - "application/vnd.oipf.dae.svg+xml": { - "source": "iana" - }, - "application/vnd.oipf.dae.xhtml+xml": { - "source": "iana" - }, - "application/vnd.oipf.mippvcontrolmessage+xml": { - "source": "iana" - }, - "application/vnd.oipf.pae.gem": { - "source": "iana" - }, - "application/vnd.oipf.spdiscovery+xml": { - "source": "iana" - }, - "application/vnd.oipf.spdlist+xml": { - "source": "iana" - }, - "application/vnd.oipf.ueprofile+xml": { - "source": "iana" - }, - "application/vnd.oipf.userprofile+xml": { - "source": "iana" - }, - "application/vnd.olpc-sugar": { - "source": "iana", - "extensions": ["xo"] - }, - "application/vnd.oma-scws-config": { - "source": "iana" - }, - "application/vnd.oma-scws-http-request": { - "source": "iana" - }, - "application/vnd.oma-scws-http-response": { - "source": "iana" - }, - "application/vnd.oma.bcast.associated-procedure-parameter+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.drm-trigger+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.imd+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.ltkm": { - "source": "iana" - }, - "application/vnd.oma.bcast.notification+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.provisioningtrigger": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgboot": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdd+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdu": { - "source": "iana" - }, - "application/vnd.oma.bcast.simple-symbol-container": { - "source": "iana" - }, - "application/vnd.oma.bcast.smartcard-trigger+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.sprov+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.stkm": { - "source": "iana" - }, - "application/vnd.oma.cab-address-book+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-feature-handler+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-pcc+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-subs-invite+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-user-prefs+xml": { - "source": "iana" - }, - "application/vnd.oma.dcd": { - "source": "iana" - }, - "application/vnd.oma.dcdc": { - "source": "iana" - }, - "application/vnd.oma.dd2+xml": { - "source": "iana", - "extensions": ["dd2"] - }, - "application/vnd.oma.drm.risd+xml": { - "source": "iana" - }, - "application/vnd.oma.group-usage-list+xml": { - "source": "iana" - }, - "application/vnd.oma.lwm2m+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.lwm2m+tlv": { - "source": "iana" - }, - "application/vnd.oma.pal+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.detailed-progress-report+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.final-report+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.groups+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.invocation-descriptor+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.optimized-progress-report+xml": { - "source": "iana" - }, - "application/vnd.oma.push": { - "source": "iana" - }, - "application/vnd.oma.scidm.messages+xml": { - "source": "iana" - }, - "application/vnd.oma.xcap-directory+xml": { - "source": "iana" - }, - "application/vnd.omads-email+xml": { - "source": "iana" - }, - "application/vnd.omads-file+xml": { - "source": "iana" - }, - "application/vnd.omads-folder+xml": { - "source": "iana" - }, - "application/vnd.omaloc-supl-init": { - "source": "iana" - }, - "application/vnd.onepager": { - "source": "iana" - }, - "application/vnd.openblox.game+xml": { - "source": "iana" - }, - "application/vnd.openblox.game-binary": { - "source": "iana" - }, - "application/vnd.openeye.oeb": { - "source": "iana" - }, - "application/vnd.openofficeorg.extension": { - "source": "apache", - "extensions": ["oxt"] - }, - "application/vnd.openxmlformats-officedocument.custom-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawing+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.extended-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["pptx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide": { - "source": "iana", - "extensions": ["sldx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { - "source": "iana", - "extensions": ["ppsx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.template": { - "source": "apache", - "extensions": ["potx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { - "source": "iana", - "compressible": false, - "extensions": ["xlsx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { - "source": "apache", - "extensions": ["xltx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.theme+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.themeoverride+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.vmldrawing": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { - "source": "iana", - "compressible": false, - "extensions": ["docx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { - "source": "apache", - "extensions": ["dotx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.core-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.relationships+xml": { - "source": "iana" - }, - "application/vnd.oracle.resource+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.orange.indata": { - "source": "iana" - }, - "application/vnd.osa.netdeploy": { - "source": "iana" - }, - "application/vnd.osgeo.mapguide.package": { - "source": "iana", - "extensions": ["mgp"] - }, - "application/vnd.osgi.bundle": { - "source": "iana" - }, - "application/vnd.osgi.dp": { - "source": "iana", - "extensions": ["dp"] - }, - "application/vnd.osgi.subsystem": { - "source": "iana", - "extensions": ["esa"] - }, - "application/vnd.otps.ct-kip+xml": { - "source": "iana" - }, - "application/vnd.oxli.countgraph": { - "source": "iana" - }, - "application/vnd.pagerduty+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.palm": { - "source": "iana", - "extensions": ["pdb","pqa","oprc"] - }, - "application/vnd.panoply": { - "source": "iana" - }, - "application/vnd.paos+xml": { - "source": "iana" - }, - "application/vnd.paos.xml": { - "source": "apache" - }, - "application/vnd.pawaafile": { - "source": "iana", - "extensions": ["paw"] - }, - "application/vnd.pcos": { - "source": "iana" - }, - "application/vnd.pg.format": { - "source": "iana", - "extensions": ["str"] - }, - "application/vnd.pg.osasli": { - "source": "iana", - "extensions": ["ei6"] - }, - "application/vnd.piaccess.application-licence": { - "source": "iana" - }, - "application/vnd.picsel": { - "source": "iana", - "extensions": ["efif"] - }, - "application/vnd.pmi.widget": { - "source": "iana", - "extensions": ["wg"] - }, - "application/vnd.poc.group-advertisement+xml": { - "source": "iana" - }, - "application/vnd.pocketlearn": { - "source": "iana", - "extensions": ["plf"] - }, - "application/vnd.powerbuilder6": { - "source": "iana", - "extensions": ["pbd"] - }, - "application/vnd.powerbuilder6-s": { - "source": "iana" - }, - "application/vnd.powerbuilder7": { - "source": "iana" - }, - "application/vnd.powerbuilder7-s": { - "source": "iana" - }, - "application/vnd.powerbuilder75": { - "source": "iana" - }, - "application/vnd.powerbuilder75-s": { - "source": "iana" - }, - "application/vnd.preminet": { - "source": "iana" - }, - "application/vnd.previewsystems.box": { - "source": "iana", - "extensions": ["box"] - }, - "application/vnd.proteus.magazine": { - "source": "iana", - "extensions": ["mgz"] - }, - "application/vnd.publishare-delta-tree": { - "source": "iana", - "extensions": ["qps"] - }, - "application/vnd.pvi.ptid1": { - "source": "iana", - "extensions": ["ptid"] - }, - "application/vnd.pwg-multiplexed": { - "source": "iana" - }, - "application/vnd.pwg-xhtml-print+xml": { - "source": "iana" - }, - "application/vnd.qualcomm.brew-app-res": { - "source": "iana" - }, - "application/vnd.quarantainenet": { - "source": "iana" - }, - "application/vnd.quark.quarkxpress": { - "source": "iana", - "extensions": ["qxd","qxt","qwd","qwt","qxl","qxb"] - }, - "application/vnd.quobject-quoxdocument": { - "source": "iana" - }, - "application/vnd.radisys.moml+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-conf+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-conn+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-dialog+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-stream+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-conf+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-base+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-fax-detect+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-group+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-speech+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-transform+xml": { - "source": "iana" - }, - "application/vnd.rainstor.data": { - "source": "iana" - }, - "application/vnd.rapid": { - "source": "iana" - }, - "application/vnd.rar": { - "source": "iana" - }, - "application/vnd.realvnc.bed": { - "source": "iana", - "extensions": ["bed"] - }, - "application/vnd.recordare.musicxml": { - "source": "iana", - "extensions": ["mxl"] - }, - "application/vnd.recordare.musicxml+xml": { - "source": "iana", - "extensions": ["musicxml"] - }, - "application/vnd.renlearn.rlprint": { - "source": "iana" - }, - "application/vnd.rig.cryptonote": { - "source": "iana", - "extensions": ["cryptonote"] - }, - "application/vnd.rim.cod": { - "source": "apache", - "extensions": ["cod"] - }, - "application/vnd.rn-realmedia": { - "source": "apache", - "extensions": ["rm"] - }, - "application/vnd.rn-realmedia-vbr": { - "source": "apache", - "extensions": ["rmvb"] - }, - "application/vnd.route66.link66+xml": { - "source": "iana", - "extensions": ["link66"] - }, - "application/vnd.rs-274x": { - "source": "iana" - }, - "application/vnd.ruckus.download": { - "source": "iana" - }, - "application/vnd.s3sms": { - "source": "iana" - }, - "application/vnd.sailingtracker.track": { - "source": "iana", - "extensions": ["st"] - }, - "application/vnd.sbm.cid": { - "source": "iana" - }, - "application/vnd.sbm.mid2": { - "source": "iana" - }, - "application/vnd.scribus": { - "source": "iana" - }, - "application/vnd.sealed.3df": { - "source": "iana" - }, - "application/vnd.sealed.csf": { - "source": "iana" - }, - "application/vnd.sealed.doc": { - "source": "iana" - }, - "application/vnd.sealed.eml": { - "source": "iana" - }, - "application/vnd.sealed.mht": { - "source": "iana" - }, - "application/vnd.sealed.net": { - "source": "iana" - }, - "application/vnd.sealed.ppt": { - "source": "iana" - }, - "application/vnd.sealed.tiff": { - "source": "iana" - }, - "application/vnd.sealed.xls": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.html": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.pdf": { - "source": "iana" - }, - "application/vnd.seemail": { - "source": "iana", - "extensions": ["see"] - }, - "application/vnd.sema": { - "source": "iana", - "extensions": ["sema"] - }, - "application/vnd.semd": { - "source": "iana", - "extensions": ["semd"] - }, - "application/vnd.semf": { - "source": "iana", - "extensions": ["semf"] - }, - "application/vnd.shana.informed.formdata": { - "source": "iana", - "extensions": ["ifm"] - }, - "application/vnd.shana.informed.formtemplate": { - "source": "iana", - "extensions": ["itp"] - }, - "application/vnd.shana.informed.interchange": { - "source": "iana", - "extensions": ["iif"] - }, - "application/vnd.shana.informed.package": { - "source": "iana", - "extensions": ["ipk"] - }, - "application/vnd.simtech-mindmapper": { - "source": "iana", - "extensions": ["twd","twds"] - }, - "application/vnd.siren+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.smaf": { - "source": "iana", - "extensions": ["mmf"] - }, - "application/vnd.smart.notebook": { - "source": "iana" - }, - "application/vnd.smart.teacher": { - "source": "iana", - "extensions": ["teacher"] - }, - "application/vnd.software602.filler.form+xml": { - "source": "iana" - }, - "application/vnd.software602.filler.form-xml-zip": { - "source": "iana" - }, - "application/vnd.solent.sdkm+xml": { - "source": "iana", - "extensions": ["sdkm","sdkd"] - }, - "application/vnd.spotfire.dxp": { - "source": "iana", - "extensions": ["dxp"] - }, - "application/vnd.spotfire.sfs": { - "source": "iana", - "extensions": ["sfs"] - }, - "application/vnd.sss-cod": { - "source": "iana" - }, - "application/vnd.sss-dtf": { - "source": "iana" - }, - "application/vnd.sss-ntf": { - "source": "iana" - }, - "application/vnd.stardivision.calc": { - "source": "apache", - "extensions": ["sdc"] - }, - "application/vnd.stardivision.draw": { - "source": "apache", - "extensions": ["sda"] - }, - "application/vnd.stardivision.impress": { - "source": "apache", - "extensions": ["sdd"] - }, - "application/vnd.stardivision.math": { - "source": "apache", - "extensions": ["smf"] - }, - "application/vnd.stardivision.writer": { - "source": "apache", - "extensions": ["sdw","vor"] - }, - "application/vnd.stardivision.writer-global": { - "source": "apache", - "extensions": ["sgl"] - }, - "application/vnd.stepmania.package": { - "source": "iana", - "extensions": ["smzip"] - }, - "application/vnd.stepmania.stepchart": { - "source": "iana", - "extensions": ["sm"] - }, - "application/vnd.street-stream": { - "source": "iana" - }, - "application/vnd.sun.wadl+xml": { - "source": "iana" - }, - "application/vnd.sun.xml.calc": { - "source": "apache", - "extensions": ["sxc"] - }, - "application/vnd.sun.xml.calc.template": { - "source": "apache", - "extensions": ["stc"] - }, - "application/vnd.sun.xml.draw": { - "source": "apache", - "extensions": ["sxd"] - }, - "application/vnd.sun.xml.draw.template": { - "source": "apache", - "extensions": ["std"] - }, - "application/vnd.sun.xml.impress": { - "source": "apache", - "extensions": ["sxi"] - }, - "application/vnd.sun.xml.impress.template": { - "source": "apache", - "extensions": ["sti"] - }, - "application/vnd.sun.xml.math": { - "source": "apache", - "extensions": ["sxm"] - }, - "application/vnd.sun.xml.writer": { - "source": "apache", - "extensions": ["sxw"] - }, - "application/vnd.sun.xml.writer.global": { - "source": "apache", - "extensions": ["sxg"] - }, - "application/vnd.sun.xml.writer.template": { - "source": "apache", - "extensions": ["stw"] - }, - "application/vnd.sus-calendar": { - "source": "iana", - "extensions": ["sus","susp"] - }, - "application/vnd.svd": { - "source": "iana", - "extensions": ["svd"] - }, - "application/vnd.swiftview-ics": { - "source": "iana" - }, - "application/vnd.symbian.install": { - "source": "apache", - "extensions": ["sis","sisx"] - }, - "application/vnd.syncml+xml": { - "source": "iana", - "extensions": ["xsm"] - }, - "application/vnd.syncml.dm+wbxml": { - "source": "iana", - "extensions": ["bdm"] - }, - "application/vnd.syncml.dm+xml": { - "source": "iana", - "extensions": ["xdm"] - }, - "application/vnd.syncml.dm.notification": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+xml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+xml": { - "source": "iana" - }, - "application/vnd.syncml.ds.notification": { - "source": "iana" - }, - "application/vnd.tao.intent-module-archive": { - "source": "iana", - "extensions": ["tao"] - }, - "application/vnd.tcpdump.pcap": { - "source": "iana", - "extensions": ["pcap","cap","dmp"] - }, - "application/vnd.tmd.mediaflex.api+xml": { - "source": "iana" - }, - "application/vnd.tml": { - "source": "iana" - }, - "application/vnd.tmobile-livetv": { - "source": "iana", - "extensions": ["tmo"] - }, - "application/vnd.trid.tpt": { - "source": "iana", - "extensions": ["tpt"] - }, - "application/vnd.triscape.mxs": { - "source": "iana", - "extensions": ["mxs"] - }, - "application/vnd.trueapp": { - "source": "iana", - "extensions": ["tra"] - }, - "application/vnd.truedoc": { - "source": "iana" - }, - "application/vnd.ubisoft.webplayer": { - "source": "iana" - }, - "application/vnd.ufdl": { - "source": "iana", - "extensions": ["ufd","ufdl"] - }, - "application/vnd.uiq.theme": { - "source": "iana", - "extensions": ["utz"] - }, - "application/vnd.umajin": { - "source": "iana", - "extensions": ["umj"] - }, - "application/vnd.unity": { - "source": "iana", - "extensions": ["unityweb"] - }, - "application/vnd.uoml+xml": { - "source": "iana", - "extensions": ["uoml"] - }, - "application/vnd.uplanet.alert": { - "source": "iana" - }, - "application/vnd.uplanet.alert-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.channel": { - "source": "iana" - }, - "application/vnd.uplanet.channel-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.list": { - "source": "iana" - }, - "application/vnd.uplanet.list-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.signal": { - "source": "iana" - }, - "application/vnd.uri-map": { - "source": "iana" - }, - "application/vnd.valve.source.material": { - "source": "iana" - }, - "application/vnd.vcx": { - "source": "iana", - "extensions": ["vcx"] - }, - "application/vnd.vd-study": { - "source": "iana" - }, - "application/vnd.vectorworks": { - "source": "iana" - }, - "application/vnd.vel+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.verimatrix.vcas": { - "source": "iana" - }, - "application/vnd.vidsoft.vidconference": { - "source": "iana" - }, - "application/vnd.visio": { - "source": "iana", - "extensions": ["vsd","vst","vss","vsw"] - }, - "application/vnd.visionary": { - "source": "iana", - "extensions": ["vis"] - }, - "application/vnd.vividence.scriptfile": { - "source": "iana" - }, - "application/vnd.vsf": { - "source": "iana", - "extensions": ["vsf"] - }, - "application/vnd.wap.sic": { - "source": "iana" - }, - "application/vnd.wap.slc": { - "source": "iana" - }, - "application/vnd.wap.wbxml": { - "source": "iana", - "extensions": ["wbxml"] - }, - "application/vnd.wap.wmlc": { - "source": "iana", - "extensions": ["wmlc"] - }, - "application/vnd.wap.wmlscriptc": { - "source": "iana", - "extensions": ["wmlsc"] - }, - "application/vnd.webturbo": { - "source": "iana", - "extensions": ["wtb"] - }, - "application/vnd.wfa.p2p": { - "source": "iana" - }, - "application/vnd.wfa.wsc": { - "source": "iana" - }, - "application/vnd.windows.devicepairing": { - "source": "iana" - }, - "application/vnd.wmc": { - "source": "iana" - }, - "application/vnd.wmf.bootstrap": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica.package": { - "source": "iana" - }, - "application/vnd.wolfram.player": { - "source": "iana", - "extensions": ["nbp"] - }, - "application/vnd.wordperfect": { - "source": "iana", - "extensions": ["wpd"] - }, - "application/vnd.wqd": { - "source": "iana", - "extensions": ["wqd"] - }, - "application/vnd.wrq-hp3000-labelled": { - "source": "iana" - }, - "application/vnd.wt.stf": { - "source": "iana", - "extensions": ["stf"] - }, - "application/vnd.wv.csp+wbxml": { - "source": "iana" - }, - "application/vnd.wv.csp+xml": { - "source": "iana" - }, - "application/vnd.wv.ssp+xml": { - "source": "iana" - }, - "application/vnd.xacml+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.xara": { - "source": "iana", - "extensions": ["xar"] - }, - "application/vnd.xfdl": { - "source": "iana", - "extensions": ["xfdl"] - }, - "application/vnd.xfdl.webform": { - "source": "iana" - }, - "application/vnd.xmi+xml": { - "source": "iana" - }, - "application/vnd.xmpie.cpkg": { - "source": "iana" - }, - "application/vnd.xmpie.dpkg": { - "source": "iana" - }, - "application/vnd.xmpie.plan": { - "source": "iana" - }, - "application/vnd.xmpie.ppkg": { - "source": "iana" - }, - "application/vnd.xmpie.xlim": { - "source": "iana" - }, - "application/vnd.yamaha.hv-dic": { - "source": "iana", - "extensions": ["hvd"] - }, - "application/vnd.yamaha.hv-script": { - "source": "iana", - "extensions": ["hvs"] - }, - "application/vnd.yamaha.hv-voice": { - "source": "iana", - "extensions": ["hvp"] - }, - "application/vnd.yamaha.openscoreformat": { - "source": "iana", - "extensions": ["osf"] - }, - "application/vnd.yamaha.openscoreformat.osfpvg+xml": { - "source": "iana", - "extensions": ["osfpvg"] - }, - "application/vnd.yamaha.remote-setup": { - "source": "iana" - }, - "application/vnd.yamaha.smaf-audio": { - "source": "iana", - "extensions": ["saf"] - }, - "application/vnd.yamaha.smaf-phrase": { - "source": "iana", - "extensions": ["spf"] - }, - "application/vnd.yamaha.through-ngn": { - "source": "iana" - }, - "application/vnd.yamaha.tunnel-udpencap": { - "source": "iana" - }, - "application/vnd.yaoweme": { - "source": "iana" - }, - "application/vnd.yellowriver-custom-menu": { - "source": "iana", - "extensions": ["cmp"] - }, - "application/vnd.zul": { - "source": "iana", - "extensions": ["zir","zirz"] - }, - "application/vnd.zzazz.deck+xml": { - "source": "iana", - "extensions": ["zaz"] - }, - "application/voicexml+xml": { - "source": "iana", - "extensions": ["vxml"] - }, - "application/vq-rtcpxr": { - "source": "iana" - }, - "application/watcherinfo+xml": { - "source": "iana" - }, - "application/whoispp-query": { - "source": "iana" - }, - "application/whoispp-response": { - "source": "iana" - }, - "application/widget": { - "source": "iana", - "extensions": ["wgt"] - }, - "application/winhlp": { - "source": "apache", - "extensions": ["hlp"] - }, - "application/wita": { - "source": "iana" - }, - "application/wordperfect5.1": { - "source": "iana" - }, - "application/wsdl+xml": { - "source": "iana", - "extensions": ["wsdl"] - }, - "application/wspolicy+xml": { - "source": "iana", - "extensions": ["wspolicy"] - }, - "application/x-7z-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["7z"] - }, - "application/x-abiword": { - "source": "apache", - "extensions": ["abw"] - }, - "application/x-ace-compressed": { - "source": "apache", - "extensions": ["ace"] - }, - "application/x-amf": { - "source": "apache" - }, - "application/x-apple-diskimage": { - "source": "apache", - "extensions": ["dmg"] - }, - "application/x-authorware-bin": { - "source": "apache", - "extensions": ["aab","x32","u32","vox"] - }, - "application/x-authorware-map": { - "source": "apache", - "extensions": ["aam"] - }, - "application/x-authorware-seg": { - "source": "apache", - "extensions": ["aas"] - }, - "application/x-bcpio": { - "source": "apache", - "extensions": ["bcpio"] - }, - "application/x-bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/x-bittorrent": { - "source": "apache", - "extensions": ["torrent"] - }, - "application/x-blorb": { - "source": "apache", - "extensions": ["blb","blorb"] - }, - "application/x-bzip": { - "source": "apache", - "compressible": false, - "extensions": ["bz"] - }, - "application/x-bzip2": { - "source": "apache", - "compressible": false, - "extensions": ["bz2","boz"] - }, - "application/x-cbr": { - "source": "apache", - "extensions": ["cbr","cba","cbt","cbz","cb7"] - }, - "application/x-cdlink": { - "source": "apache", - "extensions": ["vcd"] - }, - "application/x-cfs-compressed": { - "source": "apache", - "extensions": ["cfs"] - }, - "application/x-chat": { - "source": "apache", - "extensions": ["chat"] - }, - "application/x-chess-pgn": { - "source": "apache", - "extensions": ["pgn"] - }, - "application/x-chrome-extension": { - "extensions": ["crx"] - }, - "application/x-cocoa": { - "source": "nginx", - "extensions": ["cco"] - }, - "application/x-compress": { - "source": "apache" - }, - "application/x-conference": { - "source": "apache", - "extensions": ["nsc"] - }, - "application/x-cpio": { - "source": "apache", - "extensions": ["cpio"] - }, - "application/x-csh": { - "source": "apache", - "extensions": ["csh"] - }, - "application/x-deb": { - "compressible": false - }, - "application/x-debian-package": { - "source": "apache", - "extensions": ["deb","udeb"] - }, - "application/x-dgc-compressed": { - "source": "apache", - "extensions": ["dgc"] - }, - "application/x-director": { - "source": "apache", - "extensions": ["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"] - }, - "application/x-doom": { - "source": "apache", - "extensions": ["wad"] - }, - "application/x-dtbncx+xml": { - "source": "apache", - "extensions": ["ncx"] - }, - "application/x-dtbook+xml": { - "source": "apache", - "extensions": ["dtb"] - }, - "application/x-dtbresource+xml": { - "source": "apache", - "extensions": ["res"] - }, - "application/x-dvi": { - "source": "apache", - "compressible": false, - "extensions": ["dvi"] - }, - "application/x-envoy": { - "source": "apache", - "extensions": ["evy"] - }, - "application/x-eva": { - "source": "apache", - "extensions": ["eva"] - }, - "application/x-font-bdf": { - "source": "apache", - "extensions": ["bdf"] - }, - "application/x-font-dos": { - "source": "apache" - }, - "application/x-font-framemaker": { - "source": "apache" - }, - "application/x-font-ghostscript": { - "source": "apache", - "extensions": ["gsf"] - }, - "application/x-font-libgrx": { - "source": "apache" - }, - "application/x-font-linux-psf": { - "source": "apache", - "extensions": ["psf"] - }, - "application/x-font-otf": { - "source": "apache", - "compressible": true, - "extensions": ["otf"] - }, - "application/x-font-pcf": { - "source": "apache", - "extensions": ["pcf"] - }, - "application/x-font-snf": { - "source": "apache", - "extensions": ["snf"] - }, - "application/x-font-speedo": { - "source": "apache" - }, - "application/x-font-sunos-news": { - "source": "apache" - }, - "application/x-font-ttf": { - "source": "apache", - "compressible": true, - "extensions": ["ttf","ttc"] - }, - "application/x-font-type1": { - "source": "apache", - "extensions": ["pfa","pfb","pfm","afm"] - }, - "application/x-font-vfont": { - "source": "apache" - }, - "application/x-freearc": { - "source": "apache", - "extensions": ["arc"] - }, - "application/x-futuresplash": { - "source": "apache", - "extensions": ["spl"] - }, - "application/x-gca-compressed": { - "source": "apache", - "extensions": ["gca"] - }, - "application/x-glulx": { - "source": "apache", - "extensions": ["ulx"] - }, - "application/x-gnumeric": { - "source": "apache", - "extensions": ["gnumeric"] - }, - "application/x-gramps-xml": { - "source": "apache", - "extensions": ["gramps"] - }, - "application/x-gtar": { - "source": "apache", - "extensions": ["gtar"] - }, - "application/x-gzip": { - "source": "apache" - }, - "application/x-hdf": { - "source": "apache", - "extensions": ["hdf"] - }, - "application/x-httpd-php": { - "compressible": true, - "extensions": ["php"] - }, - "application/x-install-instructions": { - "source": "apache", - "extensions": ["install"] - }, - "application/x-iso9660-image": { - "source": "apache", - "extensions": ["iso"] - }, - "application/x-java-archive-diff": { - "source": "nginx", - "extensions": ["jardiff"] - }, - "application/x-java-jnlp-file": { - "source": "apache", - "compressible": false, - "extensions": ["jnlp"] - }, - "application/x-javascript": { - "compressible": true - }, - "application/x-latex": { - "source": "apache", - "compressible": false, - "extensions": ["latex"] - }, - "application/x-lua-bytecode": { - "extensions": ["luac"] - }, - "application/x-lzh-compressed": { - "source": "apache", - "extensions": ["lzh","lha"] - }, - "application/x-makeself": { - "source": "nginx", - "extensions": ["run"] - }, - "application/x-mie": { - "source": "apache", - "extensions": ["mie"] - }, - "application/x-mobipocket-ebook": { - "source": "apache", - "extensions": ["prc","mobi"] - }, - "application/x-mpegurl": { - "compressible": false - }, - "application/x-ms-application": { - "source": "apache", - "extensions": ["application"] - }, - "application/x-ms-shortcut": { - "source": "apache", - "extensions": ["lnk"] - }, - "application/x-ms-wmd": { - "source": "apache", - "extensions": ["wmd"] - }, - "application/x-ms-wmz": { - "source": "apache", - "extensions": ["wmz"] - }, - "application/x-ms-xbap": { - "source": "apache", - "extensions": ["xbap"] - }, - "application/x-msaccess": { - "source": "apache", - "extensions": ["mdb"] - }, - "application/x-msbinder": { - "source": "apache", - "extensions": ["obd"] - }, - "application/x-mscardfile": { - "source": "apache", - "extensions": ["crd"] - }, - "application/x-msclip": { - "source": "apache", - "extensions": ["clp"] - }, - "application/x-msdos-program": { - "extensions": ["exe"] - }, - "application/x-msdownload": { - "source": "apache", - "extensions": ["exe","dll","com","bat","msi"] - }, - "application/x-msmediaview": { - "source": "apache", - "extensions": ["mvb","m13","m14"] - }, - "application/x-msmetafile": { - "source": "apache", - "extensions": ["wmf","wmz","emf","emz"] - }, - "application/x-msmoney": { - "source": "apache", - "extensions": ["mny"] - }, - "application/x-mspublisher": { - "source": "apache", - "extensions": ["pub"] - }, - "application/x-msschedule": { - "source": "apache", - "extensions": ["scd"] - }, - "application/x-msterminal": { - "source": "apache", - "extensions": ["trm"] - }, - "application/x-mswrite": { - "source": "apache", - "extensions": ["wri"] - }, - "application/x-netcdf": { - "source": "apache", - "extensions": ["nc","cdf"] - }, - "application/x-ns-proxy-autoconfig": { - "compressible": true, - "extensions": ["pac"] - }, - "application/x-nzb": { - "source": "apache", - "extensions": ["nzb"] - }, - "application/x-perl": { - "source": "nginx", - "extensions": ["pl","pm"] - }, - "application/x-pilot": { - "source": "nginx", - "extensions": ["prc","pdb"] - }, - "application/x-pkcs12": { - "source": "apache", - "compressible": false, - "extensions": ["p12","pfx"] - }, - "application/x-pkcs7-certificates": { - "source": "apache", - "extensions": ["p7b","spc"] - }, - "application/x-pkcs7-certreqresp": { - "source": "apache", - "extensions": ["p7r"] - }, - "application/x-rar-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["rar"] - }, - "application/x-redhat-package-manager": { - "source": "nginx", - "extensions": ["rpm"] - }, - "application/x-research-info-systems": { - "source": "apache", - "extensions": ["ris"] - }, - "application/x-sea": { - "source": "nginx", - "extensions": ["sea"] - }, - "application/x-sh": { - "source": "apache", - "compressible": true, - "extensions": ["sh"] - }, - "application/x-shar": { - "source": "apache", - "extensions": ["shar"] - }, - "application/x-shockwave-flash": { - "source": "apache", - "compressible": false, - "extensions": ["swf"] - }, - "application/x-silverlight-app": { - "source": "apache", - "extensions": ["xap"] - }, - "application/x-sql": { - "source": "apache", - "extensions": ["sql"] - }, - "application/x-stuffit": { - "source": "apache", - "compressible": false, - "extensions": ["sit"] - }, - "application/x-stuffitx": { - "source": "apache", - "extensions": ["sitx"] - }, - "application/x-subrip": { - "source": "apache", - "extensions": ["srt"] - }, - "application/x-sv4cpio": { - "source": "apache", - "extensions": ["sv4cpio"] - }, - "application/x-sv4crc": { - "source": "apache", - "extensions": ["sv4crc"] - }, - "application/x-t3vm-image": { - "source": "apache", - "extensions": ["t3"] - }, - "application/x-tads": { - "source": "apache", - "extensions": ["gam"] - }, - "application/x-tar": { - "source": "apache", - "compressible": true, - "extensions": ["tar"] - }, - "application/x-tcl": { - "source": "apache", - "extensions": ["tcl","tk"] - }, - "application/x-tex": { - "source": "apache", - "extensions": ["tex"] - }, - "application/x-tex-tfm": { - "source": "apache", - "extensions": ["tfm"] - }, - "application/x-texinfo": { - "source": "apache", - "extensions": ["texinfo","texi"] - }, - "application/x-tgif": { - "source": "apache", - "extensions": ["obj"] - }, - "application/x-ustar": { - "source": "apache", - "extensions": ["ustar"] - }, - "application/x-wais-source": { - "source": "apache", - "extensions": ["src"] - }, - "application/x-web-app-manifest+json": { - "compressible": true, - "extensions": ["webapp"] - }, - "application/x-www-form-urlencoded": { - "source": "iana", - "compressible": true - }, - "application/x-x509-ca-cert": { - "source": "apache", - "extensions": ["der","crt","pem"] - }, - "application/x-xfig": { - "source": "apache", - "extensions": ["fig"] - }, - "application/x-xliff+xml": { - "source": "apache", - "extensions": ["xlf"] - }, - "application/x-xpinstall": { - "source": "apache", - "compressible": false, - "extensions": ["xpi"] - }, - "application/x-xz": { - "source": "apache", - "extensions": ["xz"] - }, - "application/x-zmachine": { - "source": "apache", - "extensions": ["z1","z2","z3","z4","z5","z6","z7","z8"] - }, - "application/x400-bp": { - "source": "iana" - }, - "application/xacml+xml": { - "source": "iana" - }, - "application/xaml+xml": { - "source": "apache", - "extensions": ["xaml"] - }, - "application/xcap-att+xml": { - "source": "iana" - }, - "application/xcap-caps+xml": { - "source": "iana" - }, - "application/xcap-diff+xml": { - "source": "iana", - "extensions": ["xdf"] - }, - "application/xcap-el+xml": { - "source": "iana" - }, - "application/xcap-error+xml": { - "source": "iana" - }, - "application/xcap-ns+xml": { - "source": "iana" - }, - "application/xcon-conference-info+xml": { - "source": "iana" - }, - "application/xcon-conference-info-diff+xml": { - "source": "iana" - }, - "application/xenc+xml": { - "source": "iana", - "extensions": ["xenc"] - }, - "application/xhtml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xhtml","xht"] - }, - "application/xhtml-voice+xml": { - "source": "apache" - }, - "application/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml","xsl","xsd","rng"] - }, - "application/xml-dtd": { - "source": "iana", - "compressible": true, - "extensions": ["dtd"] - }, - "application/xml-external-parsed-entity": { - "source": "iana" - }, - "application/xml-patch+xml": { - "source": "iana" - }, - "application/xmpp+xml": { - "source": "iana" - }, - "application/xop+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xop"] - }, - "application/xproc+xml": { - "source": "apache", - "extensions": ["xpl"] - }, - "application/xslt+xml": { - "source": "iana", - "extensions": ["xslt"] - }, - "application/xspf+xml": { - "source": "apache", - "extensions": ["xspf"] - }, - "application/xv+xml": { - "source": "iana", - "extensions": ["mxml","xhvml","xvml","xvm"] - }, - "application/yang": { - "source": "iana", - "extensions": ["yang"] - }, - "application/yin+xml": { - "source": "iana", - "extensions": ["yin"] - }, - "application/zip": { - "source": "iana", - "compressible": false, - "extensions": ["zip"] - }, - "application/zlib": { - "source": "iana" - }, - "audio/1d-interleaved-parityfec": { - "source": "iana" - }, - "audio/32kadpcm": { - "source": "iana" - }, - "audio/3gpp": { - "source": "iana", - "compressible": false, - "extensions": ["3gpp"] - }, - "audio/3gpp2": { - "source": "iana" - }, - "audio/ac3": { - "source": "iana" - }, - "audio/adpcm": { - "source": "apache", - "extensions": ["adp"] - }, - "audio/amr": { - "source": "iana" - }, - "audio/amr-wb": { - "source": "iana" - }, - "audio/amr-wb+": { - "source": "iana" - }, - "audio/aptx": { - "source": "iana" - }, - "audio/asc": { - "source": "iana" - }, - "audio/atrac-advanced-lossless": { - "source": "iana" - }, - "audio/atrac-x": { - "source": "iana" - }, - "audio/atrac3": { - "source": "iana" - }, - "audio/basic": { - "source": "iana", - "compressible": false, - "extensions": ["au","snd"] - }, - "audio/bv16": { - "source": "iana" - }, - "audio/bv32": { - "source": "iana" - }, - "audio/clearmode": { - "source": "iana" - }, - "audio/cn": { - "source": "iana" - }, - "audio/dat12": { - "source": "iana" - }, - "audio/dls": { - "source": "iana" - }, - "audio/dsr-es201108": { - "source": "iana" - }, - "audio/dsr-es202050": { - "source": "iana" - }, - "audio/dsr-es202211": { - "source": "iana" - }, - "audio/dsr-es202212": { - "source": "iana" - }, - "audio/dv": { - "source": "iana" - }, - "audio/dvi4": { - "source": "iana" - }, - "audio/eac3": { - "source": "iana" - }, - "audio/encaprtp": { - "source": "iana" - }, - "audio/evrc": { - "source": "iana" - }, - "audio/evrc-qcp": { - "source": "iana" - }, - "audio/evrc0": { - "source": "iana" - }, - "audio/evrc1": { - "source": "iana" - }, - "audio/evrcb": { - "source": "iana" - }, - "audio/evrcb0": { - "source": "iana" - }, - "audio/evrcb1": { - "source": "iana" - }, - "audio/evrcnw": { - "source": "iana" - }, - "audio/evrcnw0": { - "source": "iana" - }, - "audio/evrcnw1": { - "source": "iana" - }, - "audio/evrcwb": { - "source": "iana" - }, - "audio/evrcwb0": { - "source": "iana" - }, - "audio/evrcwb1": { - "source": "iana" - }, - "audio/evs": { - "source": "iana" - }, - "audio/fwdred": { - "source": "iana" - }, - "audio/g711-0": { - "source": "iana" - }, - "audio/g719": { - "source": "iana" - }, - "audio/g722": { - "source": "iana" - }, - "audio/g7221": { - "source": "iana" - }, - "audio/g723": { - "source": "iana" - }, - "audio/g726-16": { - "source": "iana" - }, - "audio/g726-24": { - "source": "iana" - }, - "audio/g726-32": { - "source": "iana" - }, - "audio/g726-40": { - "source": "iana" - }, - "audio/g728": { - "source": "iana" - }, - "audio/g729": { - "source": "iana" - }, - "audio/g7291": { - "source": "iana" - }, - "audio/g729d": { - "source": "iana" - }, - "audio/g729e": { - "source": "iana" - }, - "audio/gsm": { - "source": "iana" - }, - "audio/gsm-efr": { - "source": "iana" - }, - "audio/gsm-hr-08": { - "source": "iana" - }, - "audio/ilbc": { - "source": "iana" - }, - "audio/ip-mr_v2.5": { - "source": "iana" - }, - "audio/isac": { - "source": "apache" - }, - "audio/l16": { - "source": "iana" - }, - "audio/l20": { - "source": "iana" - }, - "audio/l24": { - "source": "iana", - "compressible": false - }, - "audio/l8": { - "source": "iana" - }, - "audio/lpc": { - "source": "iana" - }, - "audio/midi": { - "source": "apache", - "extensions": ["mid","midi","kar","rmi"] - }, - "audio/mobile-xmf": { - "source": "iana" - }, - "audio/mp3": { - "compressible": false, - "extensions": ["mp3"] - }, - "audio/mp4": { - "source": "iana", - "compressible": false, - "extensions": ["m4a","mp4a"] - }, - "audio/mp4a-latm": { - "source": "iana" - }, - "audio/mpa": { - "source": "iana" - }, - "audio/mpa-robust": { - "source": "iana" - }, - "audio/mpeg": { - "source": "iana", - "compressible": false, - "extensions": ["mpga","mp2","mp2a","mp3","m2a","m3a"] - }, - "audio/mpeg4-generic": { - "source": "iana" - }, - "audio/musepack": { - "source": "apache" - }, - "audio/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["oga","ogg","spx"] - }, - "audio/opus": { - "source": "iana" - }, - "audio/parityfec": { - "source": "iana" - }, - "audio/pcma": { - "source": "iana" - }, - "audio/pcma-wb": { - "source": "iana" - }, - "audio/pcmu": { - "source": "iana" - }, - "audio/pcmu-wb": { - "source": "iana" - }, - "audio/prs.sid": { - "source": "iana" - }, - "audio/qcelp": { - "source": "iana" - }, - "audio/raptorfec": { - "source": "iana" - }, - "audio/red": { - "source": "iana" - }, - "audio/rtp-enc-aescm128": { - "source": "iana" - }, - "audio/rtp-midi": { - "source": "iana" - }, - "audio/rtploopback": { - "source": "iana" - }, - "audio/rtx": { - "source": "iana" - }, - "audio/s3m": { - "source": "apache", - "extensions": ["s3m"] - }, - "audio/silk": { - "source": "apache", - "extensions": ["sil"] - }, - "audio/smv": { - "source": "iana" - }, - "audio/smv-qcp": { - "source": "iana" - }, - "audio/smv0": { - "source": "iana" - }, - "audio/sp-midi": { - "source": "iana" - }, - "audio/speex": { - "source": "iana" - }, - "audio/t140c": { - "source": "iana" - }, - "audio/t38": { - "source": "iana" - }, - "audio/telephone-event": { - "source": "iana" - }, - "audio/tone": { - "source": "iana" - }, - "audio/uemclip": { - "source": "iana" - }, - "audio/ulpfec": { - "source": "iana" - }, - "audio/vdvi": { - "source": "iana" - }, - "audio/vmr-wb": { - "source": "iana" - }, - "audio/vnd.3gpp.iufp": { - "source": "iana" - }, - "audio/vnd.4sb": { - "source": "iana" - }, - "audio/vnd.audiokoz": { - "source": "iana" - }, - "audio/vnd.celp": { - "source": "iana" - }, - "audio/vnd.cisco.nse": { - "source": "iana" - }, - "audio/vnd.cmles.radio-events": { - "source": "iana" - }, - "audio/vnd.cns.anp1": { - "source": "iana" - }, - "audio/vnd.cns.inf1": { - "source": "iana" - }, - "audio/vnd.dece.audio": { - "source": "iana", - "extensions": ["uva","uvva"] - }, - "audio/vnd.digital-winds": { - "source": "iana", - "extensions": ["eol"] - }, - "audio/vnd.dlna.adts": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.1": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.2": { - "source": "iana" - }, - "audio/vnd.dolby.mlp": { - "source": "iana" - }, - "audio/vnd.dolby.mps": { - "source": "iana" - }, - "audio/vnd.dolby.pl2": { - "source": "iana" - }, - "audio/vnd.dolby.pl2x": { - "source": "iana" - }, - "audio/vnd.dolby.pl2z": { - "source": "iana" - }, - "audio/vnd.dolby.pulse.1": { - "source": "iana" - }, - "audio/vnd.dra": { - "source": "iana", - "extensions": ["dra"] - }, - "audio/vnd.dts": { - "source": "iana", - "extensions": ["dts"] - }, - "audio/vnd.dts.hd": { - "source": "iana", - "extensions": ["dtshd"] - }, - "audio/vnd.dvb.file": { - "source": "iana" - }, - "audio/vnd.everad.plj": { - "source": "iana" - }, - "audio/vnd.hns.audio": { - "source": "iana" - }, - "audio/vnd.lucent.voice": { - "source": "iana", - "extensions": ["lvp"] - }, - "audio/vnd.ms-playready.media.pya": { - "source": "iana", - "extensions": ["pya"] - }, - "audio/vnd.nokia.mobile-xmf": { - "source": "iana" - }, - "audio/vnd.nortel.vbk": { - "source": "iana" - }, - "audio/vnd.nuera.ecelp4800": { - "source": "iana", - "extensions": ["ecelp4800"] - }, - "audio/vnd.nuera.ecelp7470": { - "source": "iana", - "extensions": ["ecelp7470"] - }, - "audio/vnd.nuera.ecelp9600": { - "source": "iana", - "extensions": ["ecelp9600"] - }, - "audio/vnd.octel.sbc": { - "source": "iana" - }, - "audio/vnd.qcelp": { - "source": "iana" - }, - "audio/vnd.rhetorex.32kadpcm": { - "source": "iana" - }, - "audio/vnd.rip": { - "source": "iana", - "extensions": ["rip"] - }, - "audio/vnd.rn-realaudio": { - "compressible": false - }, - "audio/vnd.sealedmedia.softseal.mpeg": { - "source": "iana" - }, - "audio/vnd.vmx.cvsd": { - "source": "iana" - }, - "audio/vnd.wave": { - "compressible": false - }, - "audio/vorbis": { - "source": "iana", - "compressible": false - }, - "audio/vorbis-config": { - "source": "iana" - }, - "audio/wav": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/wave": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/webm": { - "source": "apache", - "compressible": false, - "extensions": ["weba"] - }, - "audio/x-aac": { - "source": "apache", - "compressible": false, - "extensions": ["aac"] - }, - "audio/x-aiff": { - "source": "apache", - "extensions": ["aif","aiff","aifc"] - }, - "audio/x-caf": { - "source": "apache", - "compressible": false, - "extensions": ["caf"] - }, - "audio/x-flac": { - "source": "apache", - "extensions": ["flac"] - }, - "audio/x-m4a": { - "source": "nginx", - "extensions": ["m4a"] - }, - "audio/x-matroska": { - "source": "apache", - "extensions": ["mka"] - }, - "audio/x-mpegurl": { - "source": "apache", - "extensions": ["m3u"] - }, - "audio/x-ms-wax": { - "source": "apache", - "extensions": ["wax"] - }, - "audio/x-ms-wma": { - "source": "apache", - "extensions": ["wma"] - }, - "audio/x-pn-realaudio": { - "source": "apache", - "extensions": ["ram","ra"] - }, - "audio/x-pn-realaudio-plugin": { - "source": "apache", - "extensions": ["rmp"] - }, - "audio/x-realaudio": { - "source": "nginx", - "extensions": ["ra"] - }, - "audio/x-tta": { - "source": "apache" - }, - "audio/x-wav": { - "source": "apache", - "extensions": ["wav"] - }, - "audio/xm": { - "source": "apache", - "extensions": ["xm"] - }, - "chemical/x-cdx": { - "source": "apache", - "extensions": ["cdx"] - }, - "chemical/x-cif": { - "source": "apache", - "extensions": ["cif"] - }, - "chemical/x-cmdf": { - "source": "apache", - "extensions": ["cmdf"] - }, - "chemical/x-cml": { - "source": "apache", - "extensions": ["cml"] - }, - "chemical/x-csml": { - "source": "apache", - "extensions": ["csml"] - }, - "chemical/x-pdb": { - "source": "apache" - }, - "chemical/x-xyz": { - "source": "apache", - "extensions": ["xyz"] - }, - "font/opentype": { - "compressible": true, - "extensions": ["otf"] - }, - "image/bmp": { - "source": "iana", - "compressible": true, - "extensions": ["bmp"] - }, - "image/cgm": { - "source": "iana", - "extensions": ["cgm"] - }, - "image/dicom-rle": { - "source": "iana" - }, - "image/emf": { - "source": "iana" - }, - "image/fits": { - "source": "iana" - }, - "image/g3fax": { - "source": "iana", - "extensions": ["g3"] - }, - "image/gif": { - "source": "iana", - "compressible": false, - "extensions": ["gif"] - }, - "image/ief": { - "source": "iana", - "extensions": ["ief"] - }, - "image/jls": { - "source": "iana" - }, - "image/jp2": { - "source": "iana" - }, - "image/jpeg": { - "source": "iana", - "compressible": false, - "extensions": ["jpeg","jpg","jpe"] - }, - "image/jpm": { - "source": "iana" - }, - "image/jpx": { - "source": "iana" - }, - "image/ktx": { - "source": "iana", - "extensions": ["ktx"] - }, - "image/naplps": { - "source": "iana" - }, - "image/pjpeg": { - "compressible": false - }, - "image/png": { - "source": "iana", - "compressible": false, - "extensions": ["png"] - }, - "image/prs.btif": { - "source": "iana", - "extensions": ["btif"] - }, - "image/prs.pti": { - "source": "iana" - }, - "image/pwg-raster": { - "source": "iana" - }, - "image/sgi": { - "source": "apache", - "extensions": ["sgi"] - }, - "image/svg+xml": { - "source": "iana", - "compressible": true, - "extensions": ["svg","svgz"] - }, - "image/t38": { - "source": "iana" - }, - "image/tiff": { - "source": "iana", - "compressible": false, - "extensions": ["tiff","tif"] - }, - "image/tiff-fx": { - "source": "iana" - }, - "image/vnd.adobe.photoshop": { - "source": "iana", - "compressible": true, - "extensions": ["psd"] - }, - "image/vnd.airzip.accelerator.azv": { - "source": "iana" - }, - "image/vnd.cns.inf2": { - "source": "iana" - }, - "image/vnd.dece.graphic": { - "source": "iana", - "extensions": ["uvi","uvvi","uvg","uvvg"] - }, - "image/vnd.djvu": { - "source": "iana", - "extensions": ["djvu","djv"] - }, - "image/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "image/vnd.dwg": { - "source": "iana", - "extensions": ["dwg"] - }, - "image/vnd.dxf": { - "source": "iana", - "extensions": ["dxf"] - }, - "image/vnd.fastbidsheet": { - "source": "iana", - "extensions": ["fbs"] - }, - "image/vnd.fpx": { - "source": "iana", - "extensions": ["fpx"] - }, - "image/vnd.fst": { - "source": "iana", - "extensions": ["fst"] - }, - "image/vnd.fujixerox.edmics-mmr": { - "source": "iana", - "extensions": ["mmr"] - }, - "image/vnd.fujixerox.edmics-rlc": { - "source": "iana", - "extensions": ["rlc"] - }, - "image/vnd.globalgraphics.pgb": { - "source": "iana" - }, - "image/vnd.microsoft.icon": { - "source": "iana" - }, - "image/vnd.mix": { - "source": "iana" - }, - "image/vnd.mozilla.apng": { - "source": "iana" - }, - "image/vnd.ms-modi": { - "source": "iana", - "extensions": ["mdi"] - }, - "image/vnd.ms-photo": { - "source": "apache", - "extensions": ["wdp"] - }, - "image/vnd.net-fpx": { - "source": "iana", - "extensions": ["npx"] - }, - "image/vnd.radiance": { - "source": "iana" - }, - "image/vnd.sealed.png": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.gif": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.jpg": { - "source": "iana" - }, - "image/vnd.svf": { - "source": "iana" - }, - "image/vnd.tencent.tap": { - "source": "iana" - }, - "image/vnd.valve.source.texture": { - "source": "iana" - }, - "image/vnd.wap.wbmp": { - "source": "iana", - "extensions": ["wbmp"] - }, - "image/vnd.xiff": { - "source": "iana", - "extensions": ["xif"] - }, - "image/vnd.zbrush.pcx": { - "source": "iana" - }, - "image/webp": { - "source": "apache", - "extensions": ["webp"] - }, - "image/wmf": { - "source": "iana" - }, - "image/x-3ds": { - "source": "apache", - "extensions": ["3ds"] - }, - "image/x-cmu-raster": { - "source": "apache", - "extensions": ["ras"] - }, - "image/x-cmx": { - "source": "apache", - "extensions": ["cmx"] - }, - "image/x-freehand": { - "source": "apache", - "extensions": ["fh","fhc","fh4","fh5","fh7"] - }, - "image/x-icon": { - "source": "apache", - "compressible": true, - "extensions": ["ico"] - }, - "image/x-jng": { - "source": "nginx", - "extensions": ["jng"] - }, - "image/x-mrsid-image": { - "source": "apache", - "extensions": ["sid"] - }, - "image/x-ms-bmp": { - "source": "nginx", - "compressible": true, - "extensions": ["bmp"] - }, - "image/x-pcx": { - "source": "apache", - "extensions": ["pcx"] - }, - "image/x-pict": { - "source": "apache", - "extensions": ["pic","pct"] - }, - "image/x-portable-anymap": { - "source": "apache", - "extensions": ["pnm"] - }, - "image/x-portable-bitmap": { - "source": "apache", - "extensions": ["pbm"] - }, - "image/x-portable-graymap": { - "source": "apache", - "extensions": ["pgm"] - }, - "image/x-portable-pixmap": { - "source": "apache", - "extensions": ["ppm"] - }, - "image/x-rgb": { - "source": "apache", - "extensions": ["rgb"] - }, - "image/x-tga": { - "source": "apache", - "extensions": ["tga"] - }, - "image/x-xbitmap": { - "source": "apache", - "extensions": ["xbm"] - }, - "image/x-xcf": { - "compressible": false - }, - "image/x-xpixmap": { - "source": "apache", - "extensions": ["xpm"] - }, - "image/x-xwindowdump": { - "source": "apache", - "extensions": ["xwd"] - }, - "message/cpim": { - "source": "iana" - }, - "message/delivery-status": { - "source": "iana" - }, - "message/disposition-notification": { - "source": "iana" - }, - "message/external-body": { - "source": "iana" - }, - "message/feedback-report": { - "source": "iana" - }, - "message/global": { - "source": "iana" - }, - "message/global-delivery-status": { - "source": "iana" - }, - "message/global-disposition-notification": { - "source": "iana" - }, - "message/global-headers": { - "source": "iana" - }, - "message/http": { - "source": "iana", - "compressible": false - }, - "message/imdn+xml": { - "source": "iana", - "compressible": true - }, - "message/news": { - "source": "iana" - }, - "message/partial": { - "source": "iana", - "compressible": false - }, - "message/rfc822": { - "source": "iana", - "compressible": true, - "extensions": ["eml","mime"] - }, - "message/s-http": { - "source": "iana" - }, - "message/sip": { - "source": "iana" - }, - "message/sipfrag": { - "source": "iana" - }, - "message/tracking-status": { - "source": "iana" - }, - "message/vnd.si.simp": { - "source": "iana" - }, - "message/vnd.wfa.wsc": { - "source": "iana" - }, - "model/gltf+json": { - "source": "iana", - "compressible": true - }, - "model/iges": { - "source": "iana", - "compressible": false, - "extensions": ["igs","iges"] - }, - "model/mesh": { - "source": "iana", - "compressible": false, - "extensions": ["msh","mesh","silo"] - }, - "model/vnd.collada+xml": { - "source": "iana", - "extensions": ["dae"] - }, - "model/vnd.dwf": { - "source": "iana", - "extensions": ["dwf"] - }, - "model/vnd.flatland.3dml": { - "source": "iana" - }, - "model/vnd.gdl": { - "source": "iana", - "extensions": ["gdl"] - }, - "model/vnd.gs-gdl": { - "source": "apache" - }, - "model/vnd.gs.gdl": { - "source": "iana" - }, - "model/vnd.gtw": { - "source": "iana", - "extensions": ["gtw"] - }, - "model/vnd.moml+xml": { - "source": "iana" - }, - "model/vnd.mts": { - "source": "iana", - "extensions": ["mts"] - }, - "model/vnd.opengex": { - "source": "iana" - }, - "model/vnd.parasolid.transmit.binary": { - "source": "iana" - }, - "model/vnd.parasolid.transmit.text": { - "source": "iana" - }, - "model/vnd.rosette.annotated-data-model": { - "source": "iana" - }, - "model/vnd.valve.source.compiled-map": { - "source": "iana" - }, - "model/vnd.vtu": { - "source": "iana", - "extensions": ["vtu"] - }, - "model/vrml": { - "source": "iana", - "compressible": false, - "extensions": ["wrl","vrml"] - }, - "model/x3d+binary": { - "source": "apache", - "compressible": false, - "extensions": ["x3db","x3dbz"] - }, - "model/x3d+fastinfoset": { - "source": "iana" - }, - "model/x3d+vrml": { - "source": "apache", - "compressible": false, - "extensions": ["x3dv","x3dvz"] - }, - "model/x3d+xml": { - "source": "iana", - "compressible": true, - "extensions": ["x3d","x3dz"] - }, - "model/x3d-vrml": { - "source": "iana" - }, - "multipart/alternative": { - "source": "iana", - "compressible": false - }, - "multipart/appledouble": { - "source": "iana" - }, - "multipart/byteranges": { - "source": "iana" - }, - "multipart/digest": { - "source": "iana" - }, - "multipart/encrypted": { - "source": "iana", - "compressible": false - }, - "multipart/form-data": { - "source": "iana", - "compressible": false - }, - "multipart/header-set": { - "source": "iana" - }, - "multipart/mixed": { - "source": "iana", - "compressible": false - }, - "multipart/parallel": { - "source": "iana" - }, - "multipart/related": { - "source": "iana", - "compressible": false - }, - "multipart/report": { - "source": "iana" - }, - "multipart/signed": { - "source": "iana", - "compressible": false - }, - "multipart/voice-message": { - "source": "iana" - }, - "multipart/x-mixed-replace": { - "source": "iana" - }, - "text/1d-interleaved-parityfec": { - "source": "iana" - }, - "text/cache-manifest": { - "source": "iana", - "compressible": true, - "extensions": ["appcache","manifest"] - }, - "text/calendar": { - "source": "iana", - "extensions": ["ics","ifb"] - }, - "text/calender": { - "compressible": true - }, - "text/cmd": { - "compressible": true - }, - "text/coffeescript": { - "extensions": ["coffee","litcoffee"] - }, - "text/css": { - "source": "iana", - "compressible": true, - "extensions": ["css"] - }, - "text/csv": { - "source": "iana", - "compressible": true, - "extensions": ["csv"] - }, - "text/csv-schema": { - "source": "iana" - }, - "text/directory": { - "source": "iana" - }, - "text/dns": { - "source": "iana" - }, - "text/ecmascript": { - "source": "iana" - }, - "text/encaprtp": { - "source": "iana" - }, - "text/enriched": { - "source": "iana" - }, - "text/fwdred": { - "source": "iana" - }, - "text/grammar-ref-list": { - "source": "iana" - }, - "text/hjson": { - "extensions": ["hjson"] - }, - "text/html": { - "source": "iana", - "compressible": true, - "extensions": ["html","htm","shtml"] - }, - "text/jade": { - "extensions": ["jade"] - }, - "text/javascript": { - "source": "iana", - "compressible": true - }, - "text/jcr-cnd": { - "source": "iana" - }, - "text/jsx": { - "compressible": true, - "extensions": ["jsx"] - }, - "text/less": { - "extensions": ["less"] - }, - "text/markdown": { - "source": "iana" - }, - "text/mathml": { - "source": "nginx", - "extensions": ["mml"] - }, - "text/mizar": { - "source": "iana" - }, - "text/n3": { - "source": "iana", - "compressible": true, - "extensions": ["n3"] - }, - "text/parameters": { - "source": "iana" - }, - "text/parityfec": { - "source": "iana" - }, - "text/plain": { - "source": "iana", - "compressible": true, - "extensions": ["txt","text","conf","def","list","log","in","ini"] - }, - "text/provenance-notation": { - "source": "iana" - }, - "text/prs.fallenstein.rst": { - "source": "iana" - }, - "text/prs.lines.tag": { - "source": "iana", - "extensions": ["dsc"] - }, - "text/prs.prop.logic": { - "source": "iana" - }, - "text/raptorfec": { - "source": "iana" - }, - "text/red": { - "source": "iana" - }, - "text/rfc822-headers": { - "source": "iana" - }, - "text/richtext": { - "source": "iana", - "compressible": true, - "extensions": ["rtx"] - }, - "text/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "text/rtp-enc-aescm128": { - "source": "iana" - }, - "text/rtploopback": { - "source": "iana" - }, - "text/rtx": { - "source": "iana" - }, - "text/sgml": { - "source": "iana", - "extensions": ["sgml","sgm"] - }, - "text/slim": { - "extensions": ["slim","slm"] - }, - "text/stylus": { - "extensions": ["stylus","styl"] - }, - "text/t140": { - "source": "iana" - }, - "text/tab-separated-values": { - "source": "iana", - "compressible": true, - "extensions": ["tsv"] - }, - "text/troff": { - "source": "iana", - "extensions": ["t","tr","roff","man","me","ms"] - }, - "text/turtle": { - "source": "iana", - "extensions": ["ttl"] - }, - "text/ulpfec": { - "source": "iana" - }, - "text/uri-list": { - "source": "iana", - "compressible": true, - "extensions": ["uri","uris","urls"] - }, - "text/vcard": { - "source": "iana", - "compressible": true, - "extensions": ["vcard"] - }, - "text/vnd.a": { - "source": "iana" - }, - "text/vnd.abc": { - "source": "iana" - }, - "text/vnd.ascii-art": { - "source": "iana" - }, - "text/vnd.curl": { - "source": "iana", - "extensions": ["curl"] - }, - "text/vnd.curl.dcurl": { - "source": "apache", - "extensions": ["dcurl"] - }, - "text/vnd.curl.mcurl": { - "source": "apache", - "extensions": ["mcurl"] - }, - "text/vnd.curl.scurl": { - "source": "apache", - "extensions": ["scurl"] - }, - "text/vnd.debian.copyright": { - "source": "iana" - }, - "text/vnd.dmclientscript": { - "source": "iana" - }, - "text/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "text/vnd.esmertec.theme-descriptor": { - "source": "iana" - }, - "text/vnd.fly": { - "source": "iana", - "extensions": ["fly"] - }, - "text/vnd.fmi.flexstor": { - "source": "iana", - "extensions": ["flx"] - }, - "text/vnd.graphviz": { - "source": "iana", - "extensions": ["gv"] - }, - "text/vnd.in3d.3dml": { - "source": "iana", - "extensions": ["3dml"] - }, - "text/vnd.in3d.spot": { - "source": "iana", - "extensions": ["spot"] - }, - "text/vnd.iptc.newsml": { - "source": "iana" - }, - "text/vnd.iptc.nitf": { - "source": "iana" - }, - "text/vnd.latex-z": { - "source": "iana" - }, - "text/vnd.motorola.reflex": { - "source": "iana" - }, - "text/vnd.ms-mediapackage": { - "source": "iana" - }, - "text/vnd.net2phone.commcenter.command": { - "source": "iana" - }, - "text/vnd.radisys.msml-basic-layout": { - "source": "iana" - }, - "text/vnd.si.uricatalogue": { - "source": "iana" - }, - "text/vnd.sun.j2me.app-descriptor": { - "source": "iana", - "extensions": ["jad"] - }, - "text/vnd.trolltech.linguist": { - "source": "iana" - }, - "text/vnd.wap.si": { - "source": "iana" - }, - "text/vnd.wap.sl": { - "source": "iana" - }, - "text/vnd.wap.wml": { - "source": "iana", - "extensions": ["wml"] - }, - "text/vnd.wap.wmlscript": { - "source": "iana", - "extensions": ["wmls"] - }, - "text/vtt": { - "charset": "UTF-8", - "compressible": true, - "extensions": ["vtt"] - }, - "text/x-asm": { - "source": "apache", - "extensions": ["s","asm"] - }, - "text/x-c": { - "source": "apache", - "extensions": ["c","cc","cxx","cpp","h","hh","dic"] - }, - "text/x-component": { - "source": "nginx", - "extensions": ["htc"] - }, - "text/x-fortran": { - "source": "apache", - "extensions": ["f","for","f77","f90"] - }, - "text/x-gwt-rpc": { - "compressible": true - }, - "text/x-handlebars-template": { - "extensions": ["hbs"] - }, - "text/x-java-source": { - "source": "apache", - "extensions": ["java"] - }, - "text/x-jquery-tmpl": { - "compressible": true - }, - "text/x-lua": { - "extensions": ["lua"] - }, - "text/x-markdown": { - "compressible": true, - "extensions": ["markdown","md","mkd"] - }, - "text/x-nfo": { - "source": "apache", - "extensions": ["nfo"] - }, - "text/x-opml": { - "source": "apache", - "extensions": ["opml"] - }, - "text/x-pascal": { - "source": "apache", - "extensions": ["p","pas"] - }, - "text/x-processing": { - "compressible": true, - "extensions": ["pde"] - }, - "text/x-sass": { - "extensions": ["sass"] - }, - "text/x-scss": { - "extensions": ["scss"] - }, - "text/x-setext": { - "source": "apache", - "extensions": ["etx"] - }, - "text/x-sfv": { - "source": "apache", - "extensions": ["sfv"] - }, - "text/x-suse-ymp": { - "compressible": true, - "extensions": ["ymp"] - }, - "text/x-uuencode": { - "source": "apache", - "extensions": ["uu"] - }, - "text/x-vcalendar": { - "source": "apache", - "extensions": ["vcs"] - }, - "text/x-vcard": { - "source": "apache", - "extensions": ["vcf"] - }, - "text/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml"] - }, - "text/xml-external-parsed-entity": { - "source": "iana" - }, - "text/yaml": { - "extensions": ["yaml","yml"] - }, - "video/1d-interleaved-parityfec": { - "source": "apache" - }, - "video/3gpp": { - "source": "apache", - "extensions": ["3gp","3gpp"] - }, - "video/3gpp-tt": { - "source": "apache" - }, - "video/3gpp2": { - "source": "apache", - "extensions": ["3g2"] - }, - "video/bmpeg": { - "source": "apache" - }, - "video/bt656": { - "source": "apache" - }, - "video/celb": { - "source": "apache" - }, - "video/dv": { - "source": "apache" - }, - "video/encaprtp": { - "source": "apache" - }, - "video/h261": { - "source": "apache", - "extensions": ["h261"] - }, - "video/h263": { - "source": "apache", - "extensions": ["h263"] - }, - "video/h263-1998": { - "source": "apache" - }, - "video/h263-2000": { - "source": "apache" - }, - "video/h264": { - "source": "apache", - "extensions": ["h264"] - }, - "video/h264-rcdo": { - "source": "apache" - }, - "video/h264-svc": { - "source": "apache" - }, - "video/h265": { - "source": "apache" - }, - "video/iso.segment": { - "source": "apache" - }, - "video/jpeg": { - "source": "apache", - "extensions": ["jpgv"] - }, - "video/jpeg2000": { - "source": "apache" - }, - "video/jpm": { - "source": "apache", - "extensions": ["jpm","jpgm"] - }, - "video/mj2": { - "source": "apache", - "extensions": ["mj2","mjp2"] - }, - "video/mp1s": { - "source": "apache" - }, - "video/mp2p": { - "source": "apache" - }, - "video/mp2t": { - "source": "apache", - "extensions": ["ts"] - }, - "video/mp4": { - "source": "apache", - "compressible": false, - "extensions": ["mp4","mp4v","mpg4"] - }, - "video/mp4v-es": { - "source": "apache" - }, - "video/mpeg": { - "source": "apache", - "compressible": false, - "extensions": ["mpeg","mpg","mpe","m1v","m2v"] - }, - "video/mpeg4-generic": { - "source": "apache" - }, - "video/mpv": { - "source": "apache" - }, - "video/nv": { - "source": "apache" - }, - "video/ogg": { - "source": "apache", - "compressible": false, - "extensions": ["ogv"] - }, - "video/parityfec": { - "source": "apache" - }, - "video/pointer": { - "source": "apache" - }, - "video/quicktime": { - "source": "apache", - "compressible": false, - "extensions": ["qt","mov"] - }, - "video/raptorfec": { - "source": "apache" - }, - "video/raw": { - "source": "apache" - }, - "video/rtp-enc-aescm128": { - "source": "apache" - }, - "video/rtploopback": { - "source": "apache" - }, - "video/rtx": { - "source": "apache" - }, - "video/smpte292m": { - "source": "apache" - }, - "video/ulpfec": { - "source": "apache" - }, - "video/vc1": { - "source": "apache" - }, - "video/vnd.cctv": { - "source": "apache" - }, - "video/vnd.dece.hd": { - "source": "apache", - "extensions": ["uvh","uvvh"] - }, - "video/vnd.dece.mobile": { - "source": "apache", - "extensions": ["uvm","uvvm"] - }, - "video/vnd.dece.mp4": { - "source": "apache" - }, - "video/vnd.dece.pd": { - "source": "apache", - "extensions": ["uvp","uvvp"] - }, - "video/vnd.dece.sd": { - "source": "apache", - "extensions": ["uvs","uvvs"] - }, - "video/vnd.dece.video": { - "source": "apache", - "extensions": ["uvv","uvvv"] - }, - "video/vnd.directv.mpeg": { - "source": "apache" - }, - "video/vnd.directv.mpeg-tts": { - "source": "apache" - }, - "video/vnd.dlna.mpeg-tts": { - "source": "apache" - }, - "video/vnd.dvb.file": { - "source": "apache", - "extensions": ["dvb"] - }, - "video/vnd.fvt": { - "source": "apache", - "extensions": ["fvt"] - }, - "video/vnd.hns.video": { - "source": "apache" - }, - "video/vnd.iptvforum.1dparityfec-1010": { - "source": "apache" - }, - "video/vnd.iptvforum.1dparityfec-2005": { - "source": "apache" - }, - "video/vnd.iptvforum.2dparityfec-1010": { - "source": "apache" - }, - "video/vnd.iptvforum.2dparityfec-2005": { - "source": "apache" - }, - "video/vnd.iptvforum.ttsavc": { - "source": "apache" - }, - "video/vnd.iptvforum.ttsmpeg2": { - "source": "apache" - }, - "video/vnd.motorola.video": { - "source": "apache" - }, - "video/vnd.motorola.videop": { - "source": "apache" - }, - "video/vnd.mpegurl": { - "source": "apache", - "extensions": ["mxu","m4u"] - }, - "video/vnd.ms-playready.media.pyv": { - "source": "apache", - "extensions": ["pyv"] - }, - "video/vnd.nokia.interleaved-multimedia": { - "source": "apache" - }, - "video/vnd.nokia.videovoip": { - "source": "apache" - }, - "video/vnd.objectvideo": { - "source": "apache" - }, - "video/vnd.radgamettools.bink": { - "source": "apache" - }, - "video/vnd.radgamettools.smacker": { - "source": "apache" - }, - "video/vnd.sealed.mpeg1": { - "source": "apache" - }, - "video/vnd.sealed.mpeg4": { - "source": "apache" - }, - "video/vnd.sealed.swf": { - "source": "apache" - }, - "video/vnd.sealedmedia.softseal.mov": { - "source": "apache" - }, - "video/vnd.uvvu.mp4": { - "source": "apache", - "extensions": ["uvu","uvvu"] - }, - "video/vnd.vivo": { - "source": "apache", - "extensions": ["viv"] - }, - "video/vp8": { - "source": "apache" - }, - "video/webm": { - "source": "apache", - "compressible": false, - "extensions": ["webm"] - }, - "video/x-f4v": { - "source": "apache", - "extensions": ["f4v"] - }, - "video/x-fli": { - "source": "apache", - "extensions": ["fli"] - }, - "video/x-flv": { - "source": "apache", - "compressible": false, - "extensions": ["flv"] - }, - "video/x-m4v": { - "source": "apache", - "extensions": ["m4v"] - }, - "video/x-matroska": { - "source": "apache", - "compressible": false, - "extensions": ["mkv","mk3d","mks"] - }, - "video/x-mng": { - "source": "apache", - "extensions": ["mng"] - }, - "video/x-ms-asf": { - "source": "apache", - "extensions": ["asf","asx"] - }, - "video/x-ms-vob": { - "source": "apache", - "extensions": ["vob"] - }, - "video/x-ms-wm": { - "source": "apache", - "extensions": ["wm"] - }, - "video/x-ms-wmv": { - "source": "apache", - "compressible": false, - "extensions": ["wmv"] - }, - "video/x-ms-wmx": { - "source": "apache", - "extensions": ["wmx"] - }, - "video/x-ms-wvx": { - "source": "apache", - "extensions": ["wvx"] - }, - "video/x-msvideo": { - "source": "apache", - "extensions": ["avi"] - }, - "video/x-sgi-movie": { - "source": "apache", - "extensions": ["movie"] - }, - "video/x-smv": { - "source": "apache", - "extensions": ["smv"] - }, - "x-conference/x-cooltalk": { - "source": "apache", - "extensions": ["ice"] - }, - "x-shader/x-fragment": { - "compressible": true - }, - "x-shader/x-vertex": { - "compressible": true - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/index.js deleted file mode 100644 index 551031f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/index.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * mime-db - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -/** - * Module exports. - */ - -module.exports = require('./db.json') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/package.json deleted file mode 100644 index 4ce9bd44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "name": "mime-db", - "description": "Media Type Database", - "version": "1.24.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - { - "name": "Robert Kieffer", - "email": "robert@broofa.com", - "url": "http://github.com/broofa" - } - ], - "license": "MIT", - "keywords": [ - "mime", - "db", - "type", - "types", - "database", - "charset", - "charsets" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-db.git" - }, - "devDependencies": { - "bluebird": "3.4.6", - "co": "4.6.0", - "cogent": "1.0.1", - "csv-parse": "1.1.7", - "gnode": "0.1.2", - "istanbul": "0.4.5", - "mocha": "1.21.5", - "raw-body": "2.1.7", - "stream-to-array": "2.3.0" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "db.json", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "build": "node scripts/build", - "fetch": "gnode scripts/fetch-apache && gnode scripts/fetch-iana && gnode scripts/fetch-nginx", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "update": "npm run fetch && npm run build" - }, - "gitHead": "9dd00b34556a8cdd6f3385f09d4989298c4b86e1", - "bugs": { - "url": "https://github.com/jshttp/mime-db/issues" - }, - "homepage": "https://github.com/jshttp/mime-db#readme", - "_id": "mime-db@1.24.0", - "_shasum": "e2d13f939f0016c6e4e9ad25a8652f126c467f0c", - "_from": "mime-db@>=1.24.0 <1.25.0", - "_npmVersion": "2.15.9", - "_nodeVersion": "4.5.0", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "e2d13f939f0016c6e4e9ad25a8652f126c467f0c", - "tarball": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/mime-db-1.24.0.tgz_1474198792761_0.7161959335207939" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/package.json deleted file mode 100644 index 18b3d13e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/node_modules/mime-types/package.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "name": "mime-types", - "description": "The ultimate javascript content-type utility.", - "version": "2.1.12", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jeremiah Senkpiel", - "email": "fishrock123@rocketmail.com", - "url": "https://searchbeam.jit.su" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "keywords": [ - "mime", - "types" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-types.git" - }, - "dependencies": { - "mime-db": "~1.24.0" - }, - "devDependencies": { - "eslint": "3.5.0", - "eslint-config-standard": "6.0.1", - "eslint-plugin-promise": "2.0.1", - "eslint-plugin-standard": "2.0.0", - "istanbul": "0.4.5", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint **/*.js", - "test": "mocha --reporter spec test/test.js", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/test.js", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot test/test.js" - }, - "gitHead": "7193a9094e2efe31da93988350bb0b32ab18b1ea", - "bugs": { - "url": "https://github.com/jshttp/mime-types/issues" - }, - "homepage": "https://github.com/jshttp/mime-types#readme", - "_id": "mime-types@2.1.12", - "_shasum": "152ba256777020dd4663f54c2e7bc26381e71729", - "_from": "mime-types@>=2.1.11 <2.2.0", - "_npmVersion": "2.15.9", - "_nodeVersion": "4.5.0", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "152ba256777020dd4663f54c2e7bc26381e71729", - "tarball": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/mime-types-2.1.12.tgz_1474237415119_0.03028594213537872" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/package.json deleted file mode 100644 index a2150111..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/node_modules/type-is/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "name": "type-is", - "description": "Infer the content-type of a request.", - "version": "1.6.13", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/type-is.git" - }, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.11" - }, - "devDependencies": { - "eslint": "2.10.2", - "eslint-config-standard": "5.3.1", - "eslint-plugin-promise": "1.1.0", - "eslint-plugin-standard": "1.3.2", - "istanbul": "0.4.3", - "mocha": "1.21.5" - }, - "engines": { - "node": ">= 0.6" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "index.js" - ], - "scripts": { - "lint": "eslint **/*.js", - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "keywords": [ - "content", - "type", - "checking" - ], - "gitHead": "88c47523fff910343b3ca7d4928dad40f21ea6cd", - "bugs": { - "url": "https://github.com/jshttp/type-is/issues" - }, - "homepage": "https://github.com/jshttp/type-is#readme", - "_id": "type-is@1.6.13", - "_shasum": "6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08", - "_from": "type-is@>=1.6.13 <1.7.0", - "_npmVersion": "2.15.1", - "_nodeVersion": "4.4.3", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08", - "tarball": "https://registry.npmjs.org/type-is/-/type-is-1.6.13.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/type-is-1.6.13.tgz_1463622049206_0.9134831207338721" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.13.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/package.json deleted file mode 100644 index b6a35fb4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/body-parser/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "body-parser", - "description": "Node.js body parsing middleware", - "version": "1.15.2", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/expressjs/body-parser.git" - }, - "dependencies": { - "bytes": "2.4.0", - "content-type": "~1.0.2", - "debug": "~2.2.0", - "depd": "~1.1.0", - "http-errors": "~1.5.0", - "iconv-lite": "0.4.13", - "on-finished": "~2.3.0", - "qs": "6.2.0", - "raw-body": "~2.1.7", - "type-is": "~1.6.13" - }, - "devDependencies": { - "eslint": "2.13.0", - "eslint-config-standard": "5.3.1", - "eslint-plugin-promise": "1.3.2", - "eslint-plugin-standard": "1.3.2", - "istanbul": "0.4.3", - "methods": "1.1.2", - "mocha": "2.5.3", - "supertest": "1.1.0" - }, - "files": [ - "lib/", - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "lint": "eslint **/*.js", - "test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/" - }, - "gitHead": "3c8218446d919a5e87fa696971fb7f69b10afc1c", - "bugs": { - "url": "https://github.com/expressjs/body-parser/issues" - }, - "homepage": "https://github.com/expressjs/body-parser#readme", - "_id": "body-parser@1.15.2", - "_shasum": "d7578cf4f1d11d5f6ea804cef35dc7a7ff6dae67", - "_from": "body-parser@>=1.15.1 <1.16.0", - "_npmVersion": "2.15.1", - "_nodeVersion": "4.4.3", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "d7578cf4f1d11d5f6ea804cef35dc7a7ff6dae67", - "tarball": "https://registry.npmjs.org/body-parser/-/body-parser-1.15.2.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/body-parser-1.15.2.tgz_1466393694089_0.7908455491997302" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.15.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/LICENSE deleted file mode 100644 index 68c864ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2012 Heather Arthur - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/README.md deleted file mode 100644 index b52e3576..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/README.md +++ /dev/null @@ -1,124 +0,0 @@ -# color [![Build Status](https://travis-ci.org/Qix-/color.svg?branch=master)](https://travis-ci.org/Qix-/color) - -> JavaScript library for color conversion and manipulation with support for CSS color strings. - -```js -var color = Color("#7743CE"); - -color.alpha(0.5).lighten(0.5); - -console.log(color.hslString()); // "hsla(262, 59%, 81%, 0.5)" -``` - -## Install - -```console -$ npm install color -``` - -## Usage - -```js -var Color = require("color") -``` - -### Setters - -```js -var color = Color("rgb(255, 255, 255)") -var color = Color({r: 255, g: 255, b: 255}) -var color = Color().rgb(255, 255, 255) -var color = Color().rgb([255, 255, 255]) -``` -Pass any valid CSS color string into `Color()` or a hash of values. Also load in color values with `rgb()`, `hsl()`, `hsv()`, `hwb()`, and `cmyk()`. - -```js -color.red(120) -``` -Set the values for individual channels with `alpha`, `red`, `green`, `blue`, `hue`, `saturation` (hsl), `saturationv` (hsv), `lightness`, `whiteness`, `blackness`, `cyan`, `magenta`, `yellow`, `black` - -### Getters - - -```js -color.rgb() // {r: 255, g: 255, b: 255} -``` -Get a hash of the rgb values with `rgb()`, similarly for `hsl()`, `hsv()`, and `cmyk()` - -```js -color.rgbArray() // [255, 255, 255] -``` -Get an array of the values with `rgbArray()`, `hslArray()`, `hsvArray()`, and `cmykArray()`. - -```js -color.red() // 255 -``` -Get the value for an individual channel. - -### CSS Strings - -```js -color.hslString() // "hsl(320, 50%, 100%)" -``` - -Different CSS String formats for the color are on `hexString`, `rgbString`, `percentString`, `hslString`, `hwbString`, and `keyword` (undefined if it's not a keyword color). `"rgba"` and `"hsla"` are used if the current alpha value of the color isn't `1`. - -### Luminosity - -```js -color.luminosity(); // 0.412 -``` -The [WCAG luminosity](http://www.w3.org/TR/WCAG20/#relativeluminancedef) of the color. 0 is black, 1 is white. - -```js -color.contrast(Color("blue")) // 12 -``` -The [WCAG contrast ratio](http://www.w3.org/TR/WCAG20/#contrast-ratiodef) to another color, from 1 (same color) to 21 (contrast b/w white and black). - -```js -color.light(); // true -color.dark(); // false -``` -Get whether the color is "light" or "dark", useful for deciding text color. - -### Manipulation - -```js -color.negate() // rgb(0, 100, 255) -> rgb(255, 155, 0) - -color.lighten(0.5) // hsl(100, 50%, 50%) -> hsl(100, 50%, 75%) -color.darken(0.5) // hsl(100, 50%, 50%) -> hsl(100, 50%, 25%) - -color.saturate(0.5) // hsl(100, 50%, 50%) -> hsl(100, 75%, 50%) -color.desaturate(0.5) // hsl(100, 50%, 50%) -> hsl(100, 25%, 50%) -color.greyscale() // #5CBF54 -> #969696 - -color.whiten(0.5) // hwb(100, 50%, 50%) -> hwb(100, 75%, 50%) -color.blacken(0.5) // hwb(100, 50%, 50%) -> hwb(100, 50%, 75%) - -color.clearer(0.5) // rgba(10, 10, 10, 0.8) -> rgba(10, 10, 10, 0.4) -color.opaquer(0.5) // rgba(10, 10, 10, 0.8) -> rgba(10, 10, 10, 1.0) - -color.rotate(180) // hsl(60, 20%, 20%) -> hsl(240, 20%, 20%) -color.rotate(-90) // hsl(60, 20%, 20%) -> hsl(330, 20%, 20%) - -color.mix(Color("yellow")) // cyan -> rgb(128, 255, 128) -color.mix(Color("yellow"), 0.3) // cyan -> rgb(77, 255, 179) - -// chaining -color.green(100).greyscale().lighten(0.6) -``` - -### Clone - -You can can create a copy of an existing color object using `clone()`: - -```js -color.clone() // -> New color object -``` - -And more to come... - -## Propers - -The API was inspired by [color-js](https://github.com/brehaut/color-js). Manipulation functions by CSS tools like Sass, LESS, and Stylus. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/index.js deleted file mode 100644 index 8f850de4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/index.js +++ /dev/null @@ -1,459 +0,0 @@ -/* MIT license */ -var clone = require('clone'); -var convert = require('color-convert'); -var string = require('color-string'); - -var Color = function (obj) { - if (obj instanceof Color) { - return obj; - } - if (!(this instanceof Color)) { - return new Color(obj); - } - - this.values = { - rgb: [0, 0, 0], - hsl: [0, 0, 0], - hsv: [0, 0, 0], - hwb: [0, 0, 0], - cmyk: [0, 0, 0, 0], - alpha: 1 - }; - - // parse Color() argument - var vals; - if (typeof obj === 'string') { - vals = string.getRgba(obj); - if (vals) { - this.setValues('rgb', vals); - } else if (vals = string.getHsla(obj)) { - this.setValues('hsl', vals); - } else if (vals = string.getHwb(obj)) { - this.setValues('hwb', vals); - } else { - throw new Error('Unable to parse color from string "' + obj + '"'); - } - } else if (typeof obj === 'object') { - vals = obj; - if (vals.r !== undefined || vals.red !== undefined) { - this.setValues('rgb', vals); - } else if (vals.l !== undefined || vals.lightness !== undefined) { - this.setValues('hsl', vals); - } else if (vals.v !== undefined || vals.value !== undefined) { - this.setValues('hsv', vals); - } else if (vals.w !== undefined || vals.whiteness !== undefined) { - this.setValues('hwb', vals); - } else if (vals.c !== undefined || vals.cyan !== undefined) { - this.setValues('cmyk', vals); - } else { - throw new Error('Unable to parse color from object ' + JSON.stringify(obj)); - } - } -}; - -Color.prototype = { - rgb: function () { - return this.setSpace('rgb', arguments); - }, - hsl: function () { - return this.setSpace('hsl', arguments); - }, - hsv: function () { - return this.setSpace('hsv', arguments); - }, - hwb: function () { - return this.setSpace('hwb', arguments); - }, - cmyk: function () { - return this.setSpace('cmyk', arguments); - }, - - rgbArray: function () { - return this.values.rgb; - }, - hslArray: function () { - return this.values.hsl; - }, - hsvArray: function () { - return this.values.hsv; - }, - hwbArray: function () { - if (this.values.alpha !== 1) { - return this.values.hwb.concat([this.values.alpha]); - } - return this.values.hwb; - }, - cmykArray: function () { - return this.values.cmyk; - }, - rgbaArray: function () { - var rgb = this.values.rgb; - return rgb.concat([this.values.alpha]); - }, - rgbaArrayNormalized: function () { - var rgb = this.values.rgb; - var glRgba = []; - for (var i = 0; i < 3; i++) { - glRgba[i] = rgb[i] / 255; - } - glRgba.push(this.values.alpha); - return glRgba; - }, - hslaArray: function () { - var hsl = this.values.hsl; - return hsl.concat([this.values.alpha]); - }, - alpha: function (val) { - if (val === undefined) { - return this.values.alpha; - } - this.setValues('alpha', val); - return this; - }, - - red: function (val) { - return this.setChannel('rgb', 0, val); - }, - green: function (val) { - return this.setChannel('rgb', 1, val); - }, - blue: function (val) { - return this.setChannel('rgb', 2, val); - }, - hue: function (val) { - if (val) { - val %= 360; - val = val < 0 ? 360 + val : val; - } - return this.setChannel('hsl', 0, val); - }, - saturation: function (val) { - return this.setChannel('hsl', 1, val); - }, - lightness: function (val) { - return this.setChannel('hsl', 2, val); - }, - saturationv: function (val) { - return this.setChannel('hsv', 1, val); - }, - whiteness: function (val) { - return this.setChannel('hwb', 1, val); - }, - blackness: function (val) { - return this.setChannel('hwb', 2, val); - }, - value: function (val) { - return this.setChannel('hsv', 2, val); - }, - cyan: function (val) { - return this.setChannel('cmyk', 0, val); - }, - magenta: function (val) { - return this.setChannel('cmyk', 1, val); - }, - yellow: function (val) { - return this.setChannel('cmyk', 2, val); - }, - black: function (val) { - return this.setChannel('cmyk', 3, val); - }, - - hexString: function () { - return string.hexString(this.values.rgb); - }, - rgbString: function () { - return string.rgbString(this.values.rgb, this.values.alpha); - }, - rgbaString: function () { - return string.rgbaString(this.values.rgb, this.values.alpha); - }, - percentString: function () { - return string.percentString(this.values.rgb, this.values.alpha); - }, - hslString: function () { - return string.hslString(this.values.hsl, this.values.alpha); - }, - hslaString: function () { - return string.hslaString(this.values.hsl, this.values.alpha); - }, - hwbString: function () { - return string.hwbString(this.values.hwb, this.values.alpha); - }, - keyword: function () { - return string.keyword(this.values.rgb, this.values.alpha); - }, - - rgbNumber: function () { - return (this.values.rgb[0] << 16) | (this.values.rgb[1] << 8) | this.values.rgb[2]; - }, - - luminosity: function () { - // http://www.w3.org/TR/WCAG20/#relativeluminancedef - var rgb = this.values.rgb; - var lum = []; - for (var i = 0; i < rgb.length; i++) { - var chan = rgb[i] / 255; - lum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4); - } - return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; - }, - - contrast: function (color2) { - // http://www.w3.org/TR/WCAG20/#contrast-ratiodef - var lum1 = this.luminosity(); - var lum2 = color2.luminosity(); - if (lum1 > lum2) { - return (lum1 + 0.05) / (lum2 + 0.05); - } - return (lum2 + 0.05) / (lum1 + 0.05); - }, - - level: function (color2) { - var contrastRatio = this.contrast(color2); - if (contrastRatio >= 7.1) { - return 'AAA'; - } - - return (contrastRatio >= 4.5) ? 'AA' : ''; - }, - - dark: function () { - // YIQ equation from http://24ways.org/2010/calculating-color-contrast - var rgb = this.values.rgb; - var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000; - return yiq < 128; - }, - - light: function () { - return !this.dark(); - }, - - negate: function () { - var rgb = []; - for (var i = 0; i < 3; i++) { - rgb[i] = 255 - this.values.rgb[i]; - } - this.setValues('rgb', rgb); - return this; - }, - - lighten: function (ratio) { - this.values.hsl[2] += this.values.hsl[2] * ratio; - this.setValues('hsl', this.values.hsl); - return this; - }, - - darken: function (ratio) { - this.values.hsl[2] -= this.values.hsl[2] * ratio; - this.setValues('hsl', this.values.hsl); - return this; - }, - - saturate: function (ratio) { - this.values.hsl[1] += this.values.hsl[1] * ratio; - this.setValues('hsl', this.values.hsl); - return this; - }, - - desaturate: function (ratio) { - this.values.hsl[1] -= this.values.hsl[1] * ratio; - this.setValues('hsl', this.values.hsl); - return this; - }, - - whiten: function (ratio) { - this.values.hwb[1] += this.values.hwb[1] * ratio; - this.setValues('hwb', this.values.hwb); - return this; - }, - - blacken: function (ratio) { - this.values.hwb[2] += this.values.hwb[2] * ratio; - this.setValues('hwb', this.values.hwb); - return this; - }, - - greyscale: function () { - var rgb = this.values.rgb; - // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale - var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11; - this.setValues('rgb', [val, val, val]); - return this; - }, - - clearer: function (ratio) { - this.setValues('alpha', this.values.alpha - (this.values.alpha * ratio)); - return this; - }, - - opaquer: function (ratio) { - this.setValues('alpha', this.values.alpha + (this.values.alpha * ratio)); - return this; - }, - - rotate: function (degrees) { - var hue = this.values.hsl[0]; - hue = (hue + degrees) % 360; - hue = hue < 0 ? 360 + hue : hue; - this.values.hsl[0] = hue; - this.setValues('hsl', this.values.hsl); - return this; - }, - - /** - * Ported from sass implementation in C - * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209 - */ - mix: function (mixinColor, weight) { - var color1 = this; - var color2 = mixinColor; - var p = weight === undefined ? 0.5 : weight; - - var w = 2 * p - 1; - var a = color1.alpha() - color2.alpha(); - - var w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0; - var w2 = 1 - w1; - - return this - .rgb( - w1 * color1.red() + w2 * color2.red(), - w1 * color1.green() + w2 * color2.green(), - w1 * color1.blue() + w2 * color2.blue() - ) - .alpha(color1.alpha() * p + color2.alpha() * (1 - p)); - }, - - toJSON: function () { - return this.rgb(); - }, - - clone: function () { - var col = new Color(); - col.values = clone(this.values); - return col; - } -}; - -Color.prototype.getValues = function (space) { - var vals = {}; - - for (var i = 0; i < space.length; i++) { - vals[space.charAt(i)] = this.values[space][i]; - } - - if (this.values.alpha !== 1) { - vals.a = this.values.alpha; - } - - // {r: 255, g: 255, b: 255, a: 0.4} - return vals; -}; - -Color.prototype.setValues = function (space, vals) { - var spaces = { - rgb: ['red', 'green', 'blue'], - hsl: ['hue', 'saturation', 'lightness'], - hsv: ['hue', 'saturation', 'value'], - hwb: ['hue', 'whiteness', 'blackness'], - cmyk: ['cyan', 'magenta', 'yellow', 'black'] - }; - - var maxes = { - rgb: [255, 255, 255], - hsl: [360, 100, 100], - hsv: [360, 100, 100], - hwb: [360, 100, 100], - cmyk: [100, 100, 100, 100] - }; - - var i; - var alpha = 1; - if (space === 'alpha') { - alpha = vals; - } else if (vals.length) { - // [10, 10, 10] - this.values[space] = vals.slice(0, space.length); - alpha = vals[space.length]; - } else if (vals[space.charAt(0)] !== undefined) { - // {r: 10, g: 10, b: 10} - for (i = 0; i < space.length; i++) { - this.values[space][i] = vals[space.charAt(i)]; - } - - alpha = vals.a; - } else if (vals[spaces[space][0]] !== undefined) { - // {red: 10, green: 10, blue: 10} - var chans = spaces[space]; - - for (i = 0; i < space.length; i++) { - this.values[space][i] = vals[chans[i]]; - } - - alpha = vals.alpha; - } - - this.values.alpha = Math.max(0, Math.min(1, (alpha === undefined ? this.values.alpha : alpha))); - - if (space === 'alpha') { - return false; - } - - var capped; - - // cap values of the space prior converting all values - for (i = 0; i < space.length; i++) { - capped = Math.max(0, Math.min(maxes[space][i], this.values[space][i])); - this.values[space][i] = Math.round(capped); - } - - // convert to all the other color spaces - for (var sname in spaces) { - if (sname !== space) { - this.values[sname] = convert[space][sname](this.values[space]); - } - - // cap values - for (i = 0; i < sname.length; i++) { - capped = Math.max(0, Math.min(maxes[sname][i], this.values[sname][i])); - this.values[sname][i] = Math.round(capped); - } - } - - return true; -}; - -Color.prototype.setSpace = function (space, args) { - var vals = args[0]; - - if (vals === undefined) { - // color.rgb() - return this.getValues(space); - } - - // color.rgb(10, 10, 10) - if (typeof vals === 'number') { - vals = Array.prototype.slice.call(args); - } - - this.setValues(space, vals); - return this; -}; - -Color.prototype.setChannel = function (space, index, val) { - if (val === undefined) { - // color.red() - return this.values[space][index]; - } else if (val === this.values[space][index]) { - // color.red(color.red()) - return this; - } - - // color.red(100) - this.values[space][index] = val; - this.setValues(space, this.values[space]); - - return this; -}; - -module.exports = Color; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/.npmignore deleted file mode 100644 index c2658d7d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/.travis.yml deleted file mode 100644 index 20fd86b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - 0.10 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/LICENSE deleted file mode 100644 index cc3c87bc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Copyright © 2011-2015 Paul Vorbach - -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, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/README.md deleted file mode 100644 index 0b6cecae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/README.md +++ /dev/null @@ -1,126 +0,0 @@ -# clone - -[![build status](https://secure.travis-ci.org/pvorb/node-clone.png)](http://travis-ci.org/pvorb/node-clone) - -[![info badge](https://nodei.co/npm/clone.png?downloads=true&downloadRank=true&stars=true)](http://npm-stat.com/charts.html?package=clone) - -offers foolproof _deep cloning_ of objects, arrays, numbers, strings etc. in JavaScript. - - -## Installation - - npm install clone - -(It also works with browserify, ender or standalone.) - - -## Example - -~~~ javascript -var clone = require('clone'); - -var a, b; - -a = { foo: { bar: 'baz' } }; // initial value of a - -b = clone(a); // clone a -> b -a.foo.bar = 'foo'; // change a - -console.log(a); // show a -console.log(b); // show b -~~~ - -This will print: - -~~~ javascript -{ foo: { bar: 'foo' } } -{ foo: { bar: 'baz' } } -~~~ - -**clone** masters cloning simple objects (even with custom prototype), arrays, -Date objects, and RegExp objects. Everything is cloned recursively, so that you -can clone dates in arrays in objects, for example. - - -## API - -`clone(val, circular, depth)` - - * `val` -- the value that you want to clone, any type allowed - * `circular` -- boolean - - Call `clone` with `circular` set to `false` if you are certain that `obj` - contains no circular references. This will give better performance if needed. - There is no error if `undefined` or `null` is passed as `obj`. - * `depth` -- depth to which the object is to be cloned (optional, - defaults to infinity) - -`clone.clonePrototype(obj)` - - * `obj` -- the object that you want to clone - -Does a prototype clone as -[described by Oran Looney](http://oranlooney.com/functional-javascript/). - - -## Circular References - -~~~ javascript -var a, b; - -a = { hello: 'world' }; - -a.myself = a; -b = clone(a); - -console.log(b); -~~~ - -This will print: - -~~~ javascript -{ hello: "world", myself: [Circular] } -~~~ - -So, `b.myself` points to `b`, not `a`. Neat! - - -## Test - - npm test - - -## Caveat - -Some special objects like a socket or `process.stdout`/`stderr` are known to not -be cloneable. If you find other objects that cannot be cloned, please [open an -issue](https://github.com/pvorb/node-clone/issues/new). - - -## Bugs and Issues - -If you encounter any bugs or issues, feel free to [open an issue at -github](https://github.com/pvorb/node-clone/issues) or send me an email to -. I also always like to hear from you, if you’re using my code. - -## License - -Copyright © 2011-2015 [Paul Vorbach](http://paul.vorba.ch/) and -[contributors](https://github.com/pvorb/node-clone/graphs/contributors). - -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, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/clone.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/clone.js deleted file mode 100644 index 62637592..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/clone.js +++ /dev/null @@ -1,160 +0,0 @@ -var clone = (function() { -'use strict'; - -/** - * Clones (copies) an Object using deep copying. - * - * This function supports circular references by default, but if you are certain - * there are no circular references in your object, you can save some CPU time - * by calling clone(obj, false). - * - * Caution: if `circular` is false and `parent` contains circular references, - * your program may enter an infinite loop and crash. - * - * @param `parent` - the object to be cloned - * @param `circular` - set to true if the object to be cloned may contain - * circular references. (optional - true by default) - * @param `depth` - set to a number if the object is only to be cloned to - * a particular depth. (optional - defaults to Infinity) - * @param `prototype` - sets the prototype to be used when cloning an object. - * (optional - defaults to parent prototype). -*/ -function clone(parent, circular, depth, prototype) { - var filter; - if (typeof circular === 'object') { - depth = circular.depth; - prototype = circular.prototype; - filter = circular.filter; - circular = circular.circular - } - // maintain two arrays for circular references, where corresponding parents - // and children have the same index - var allParents = []; - var allChildren = []; - - var useBuffer = typeof Buffer != 'undefined'; - - if (typeof circular == 'undefined') - circular = true; - - if (typeof depth == 'undefined') - depth = Infinity; - - // recurse this function so we don't reset allParents and allChildren - function _clone(parent, depth) { - // cloning null always returns null - if (parent === null) - return null; - - if (depth == 0) - return parent; - - var child; - var proto; - if (typeof parent != 'object') { - return parent; - } - - if (clone.__isArray(parent)) { - child = []; - } else if (clone.__isRegExp(parent)) { - child = new RegExp(parent.source, __getRegExpFlags(parent)); - if (parent.lastIndex) child.lastIndex = parent.lastIndex; - } else if (clone.__isDate(parent)) { - child = new Date(parent.getTime()); - } else if (useBuffer && Buffer.isBuffer(parent)) { - child = new Buffer(parent.length); - parent.copy(child); - return child; - } else { - if (typeof prototype == 'undefined') { - proto = Object.getPrototypeOf(parent); - child = Object.create(proto); - } - else { - child = Object.create(prototype); - proto = prototype; - } - } - - if (circular) { - var index = allParents.indexOf(parent); - - if (index != -1) { - return allChildren[index]; - } - allParents.push(parent); - allChildren.push(child); - } - - for (var i in parent) { - var attrs; - if (proto) { - attrs = Object.getOwnPropertyDescriptor(proto, i); - } - - if (attrs && attrs.set == null) { - continue; - } - child[i] = _clone(parent[i], depth - 1); - } - - return child; - } - - return _clone(parent, depth); -} - -/** - * Simple flat clone using prototype, accepts only objects, usefull for property - * override on FLAT configuration object (no nested props). - * - * USE WITH CAUTION! This may not behave as you wish if you do not know how this - * works. - */ -clone.clonePrototype = function clonePrototype(parent) { - if (parent === null) - return null; - - var c = function () {}; - c.prototype = parent; - return new c(); -}; - -// private utility functions - -function __objToStr(o) { - return Object.prototype.toString.call(o); -}; -clone.__objToStr = __objToStr; - -function __isDate(o) { - return typeof o === 'object' && __objToStr(o) === '[object Date]'; -}; -clone.__isDate = __isDate; - -function __isArray(o) { - return typeof o === 'object' && __objToStr(o) === '[object Array]'; -}; -clone.__isArray = __isArray; - -function __isRegExp(o) { - return typeof o === 'object' && __objToStr(o) === '[object RegExp]'; -}; -clone.__isRegExp = __isRegExp; - -function __getRegExpFlags(re) { - var flags = ''; - if (re.global) flags += 'g'; - if (re.ignoreCase) flags += 'i'; - if (re.multiline) flags += 'm'; - return flags; -}; -clone.__getRegExpFlags = __getRegExpFlags; - -return clone; -})(); - -if (typeof module === 'object' && module.exports) { - module.exports = clone; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/package.json deleted file mode 100644 index 417cdf63..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/package.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "name": "clone", - "description": "deep cloning of objects and arrays", - "tags": [ - "clone", - "object", - "array", - "function", - "date" - ], - "version": "1.0.2", - "repository": { - "type": "git", - "url": "git://github.com/pvorb/node-clone.git" - }, - "bugs": { - "url": "https://github.com/pvorb/node-clone/issues" - }, - "main": "clone.js", - "author": { - "name": "Paul Vorbach", - "email": "paul@vorba.ch", - "url": "http://paul.vorba.ch/" - }, - "contributors": [ - { - "name": "Blake Miner", - "email": "miner.blake@gmail.com", - "url": "http://www.blakeminer.com/" - }, - { - "name": "Tian You", - "email": "axqd001@gmail.com", - "url": "http://blog.axqd.net/" - }, - { - "name": "George Stagas", - "email": "gstagas@gmail.com", - "url": "http://stagas.com/" - }, - { - "name": "Tobiasz Cudnik", - "email": "tobiasz.cudnik@gmail.com", - "url": "https://github.com/TobiaszCudnik" - }, - { - "name": "Pavel Lang", - "email": "langpavel@phpskelet.org", - "url": "https://github.com/langpavel" - }, - { - "name": "Dan MacTough", - "url": "http://yabfog.com/" - }, - { - "name": "w1nk", - "url": "https://github.com/w1nk" - }, - { - "name": "Hugh Kennedy", - "url": "http://twitter.com/hughskennedy" - }, - { - "name": "Dustin Diaz", - "url": "http://dustindiaz.com" - }, - { - "name": "Ilya Shaisultanov", - "url": "https://github.com/diversario" - }, - { - "name": "Nathan MacInnes", - "email": "nathan@macinn.es", - "url": "http://macinn.es/" - }, - { - "name": "Benjamin E. Coe", - "email": "ben@npmjs.com", - "url": "https://twitter.com/benjamincoe" - }, - { - "name": "Nathan Zadoks", - "url": "https://github.com/nathan7" - }, - { - "name": "Róbert Oroszi", - "email": "robert+gh@oroszi.net", - "url": "https://github.com/oroce" - }, - { - "name": "Aurélio A. Heckert", - "url": "http://softwarelivre.org/aurium" - }, - { - "name": "Guy Ellis", - "url": "http://www.guyellisrocks.com/" - } - ], - "license": "MIT", - "engines": { - "node": ">=0.8" - }, - "dependencies": {}, - "devDependencies": { - "nodeunit": "~0.9.0" - }, - "optionalDependencies": {}, - "scripts": { - "test": "nodeunit test.js" - }, - "gitHead": "0e8216efc672496b612fd7ab62159117d16ec4a0", - "homepage": "https://github.com/pvorb/node-clone", - "_id": "clone@1.0.2", - "_shasum": "260b7a99ebb1edfe247538175f783243cb19d149", - "_from": "clone@>=1.0.2 <2.0.0", - "_npmVersion": "1.4.14", - "_npmUser": { - "name": "pvorb", - "email": "paul@vorba.ch" - }, - "maintainers": [ - { - "name": "pvorb", - "email": "paul@vorb.de" - } - ], - "dist": { - "shasum": "260b7a99ebb1edfe247538175f783243cb19d149", - "tarball": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/test-apart-ctx.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/test-apart-ctx.html deleted file mode 100644 index 4d532bb7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/test-apart-ctx.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - Clone Test-Suite (Browser) - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/test.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/test.html deleted file mode 100644 index a9557025..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/test.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - Clone Test-Suite (Browser) - - - - - -

    Clone Test-Suite (Browser)

    - Tests started: ; - Tests finished: . -
      - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/test.js deleted file mode 100644 index e8b65b3f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/clone/test.js +++ /dev/null @@ -1,372 +0,0 @@ -var clone = require('./'); - -function inspect(obj) { - seen = []; - return JSON.stringify(obj, function (key, val) { - if (val != null && typeof val == "object") { - if (seen.indexOf(val) >= 0) { - return '[cyclic]'; - } - - seen.push(val); - } - - return val; - }); -} - -// Creates a new VM in node, or an iframe in a browser in order to run the -// script -function apartContext(context, script, callback) { - var vm = require('vm'); - - if (vm) { - var ctx = vm.createContext({ ctx: context }); - callback(vm.runInContext(script, ctx)); - } else if (document && document.createElement) { - var iframe = document.createElement('iframe'); - iframe.style.display = 'none'; - document.body.appendChild(iframe); - - var myCtxId = 'tmpCtx' + Math.random(); - - window[myCtxId] = context; - iframe.src = 'test-apart-ctx.html?' + myCtxId + '&' + encodeURIComponent(script); - iframe.onload = function() { - try { - callback(iframe.contentWindow.results); - } catch (e) { - throw e; - } - }; - } else { - console.log('WARNING: cannot create an apart context.'); - } -} - -exports["clone string"] = function (test) { - test.expect(2); // how many tests? - - var a = "foo"; - test.strictEqual(clone(a), a); - a = ""; - test.strictEqual(clone(a), a); - - test.done(); -}; - -exports["clone number"] = function (test) { - test.expect(5); // how many tests? - - var a = 0; - test.strictEqual(clone(a), a); - a = 1; - test.strictEqual(clone(a), a); - a = -1000; - test.strictEqual(clone(a), a); - a = 3.1415927; - test.strictEqual(clone(a), a); - a = -3.1415927; - test.strictEqual(clone(a), a); - - test.done(); -}; - -exports["clone date"] = function (test) { - test.expect(3); // how many tests? - - var a = new Date; - var c = clone(a); - test.ok(!!a.getUTCDate && !!a.toUTCString); - test.ok(!!c.getUTCDate && !!c.toUTCString); - test.equal(a.getTime(), c.getTime()); - - test.done(); -}; - -exports["clone object"] = function (test) { - test.expect(1); // how many tests? - - var a = { foo: { bar: "baz" } }; - var b = clone(a); - - test.deepEqual(b, a); - - test.done(); -}; - -exports["clone array"] = function (test) { - test.expect(2); // how many tests? - - var a = [ - { foo: "bar" }, - "baz" - ]; - var b = clone(a); - - test.ok(b instanceof Array); - test.deepEqual(b, a); - - test.done(); -}; - -exports["clone buffer"] = function (test) { - if (typeof Buffer == 'undefined') { - return test.done(); - } - - test.expect(1); - - var a = new Buffer("this is a test buffer"); - var b = clone(a); - - // no underscore equal since it has no concept of Buffers - test.deepEqual(b, a); - test.done(); -}; - -exports["clone regexp"] = function (test) { - test.expect(5); - - var a = /abc123/gi; - var b = clone(a); - test.deepEqual(b, a); - - var c = /a/g; - test.ok(c.lastIndex === 0); - - c.exec('123a456a'); - test.ok(c.lastIndex === 4); - - var d = clone(c); - test.ok(d.global); - test.ok(d.lastIndex === 4); - - test.done(); -}; - -exports["clone object containing array"] = function (test) { - test.expect(1); // how many tests? - - var a = { - arr1: [ { a: '1234', b: '2345' } ], - arr2: [ { c: '345', d: '456' } ] - }; - - var b = clone(a); - - test.deepEqual(b, a); - - test.done(); -}; - -exports["clone object with circular reference"] = function (test) { - test.expect(8); // how many tests? - - var c = [1, "foo", {'hello': 'bar'}, function () {}, false, [2]]; - var b = [c, 2, 3, 4]; - - var a = {'b': b, 'c': c}; - a.loop = a; - a.loop2 = a; - c.loop = c; - c.aloop = a; - - var aCopy = clone(a); - test.ok(a != aCopy); - test.ok(a.c != aCopy.c); - test.ok(aCopy.c == aCopy.b[0]); - test.ok(aCopy.c.loop.loop.aloop == aCopy); - test.ok(aCopy.c[0] == a.c[0]); - - test.ok(eq(a, aCopy)); - aCopy.c[0] = 2; - test.ok(!eq(a, aCopy)); - aCopy.c = "2"; - test.ok(!eq(a, aCopy)); - - function eq(x, y) { - return inspect(x) === inspect(y); - } - - test.done(); -}; - -exports['clone prototype'] = function (test) { - test.expect(3); // how many tests? - - var a = { - a: "aaa", - x: 123, - y: 45.65 - }; - var b = clone.clonePrototype(a); - - test.strictEqual(b.a, a.a); - test.strictEqual(b.x, a.x); - test.strictEqual(b.y, a.y); - - test.done(); -}; - -exports['clone within an apart context'] = function (test) { - var results = apartContext({ clone: clone }, - "results = ctx.clone({ a: [1, 2, 3], d: new Date(), r: /^foo$/ig })", - function (results) { - test.ok(results.a.constructor.toString() === Array.toString()); - test.ok(results.d.constructor.toString() === Date.toString()); - test.ok(results.r.constructor.toString() === RegExp.toString()); - test.done(); - }); -}; - -exports['clone object with no constructor'] = function (test) { - test.expect(3); - - var n = null; - - var a = { foo: 'bar' }; - a.__proto__ = n; - test.ok(typeof a === 'object'); - test.ok(typeof a !== null); - - var b = clone(a); - test.ok(a.foo, b.foo); - - test.done(); -}; - -exports['clone object with depth argument'] = function (test) { - test.expect(6); - - var a = { - foo: { - bar : { - baz : 'qux' - } - } - }; - - var b = clone(a, false, 1); - test.deepEqual(b, a); - test.notEqual(b, a); - test.strictEqual(b.foo, a.foo); - - b = clone(a, true, 2); - test.deepEqual(b, a); - test.notEqual(b.foo, a.foo); - test.strictEqual(b.foo.bar, a.foo.bar); - - test.done(); -}; - -exports['maintain prototype chain in clones'] = function (test) { - test.expect(1); - - function T() {} - - var a = new T(); - var b = clone(a); - test.strictEqual(Object.getPrototypeOf(a), Object.getPrototypeOf(b)); - - test.done(); -}; - -exports['parent prototype is overriden with prototype provided'] = function (test) { - test.expect(1); - - function T() {} - - var a = new T(); - var b = clone(a, true, Infinity, null); - test.strictEqual(b.__defineSetter__, undefined); - - test.done(); -}; - -exports['clone object with null children'] = function (test) { - test.expect(1); - var a = { - foo: { - bar: null, - baz: { - qux: false - } - } - }; - - var b = clone(a); - - test.deepEqual(b, a); - test.done(); -}; - -exports['clone instance with getter'] = function (test) { - test.expect(1); - function Ctor() {}; - Object.defineProperty(Ctor.prototype, 'prop', { - configurable: true, - enumerable: true, - get: function() { - return 'value'; - } - }); - - var a = new Ctor(); - var b = clone(a); - - test.strictEqual(b.prop, 'value'); - test.done(); -}; - -exports['get RegExp flags'] = function (test) { - test.strictEqual(clone.__getRegExpFlags(/a/), '' ); - test.strictEqual(clone.__getRegExpFlags(/a/i), 'i' ); - test.strictEqual(clone.__getRegExpFlags(/a/g), 'g' ); - test.strictEqual(clone.__getRegExpFlags(/a/gi), 'gi'); - test.strictEqual(clone.__getRegExpFlags(/a/m), 'm' ); - - test.done(); -}; - -exports["recognize Array object"] = function (test) { - var results = apartContext(null, "results = [1, 2, 3]", function(alien) { - var local = [4, 5, 6]; - test.ok(clone.__isArray(alien)); // recognize in other context. - test.ok(clone.__isArray(local)); // recognize in local context. - test.ok(!clone.__isDate(alien)); - test.ok(!clone.__isDate(local)); - test.ok(!clone.__isRegExp(alien)); - test.ok(!clone.__isRegExp(local)); - test.done(); - }); -}; - -exports["recognize Date object"] = function (test) { - var results = apartContext(null, "results = new Date()", function(alien) { - var local = new Date(); - - test.ok(clone.__isDate(alien)); // recognize in other context. - test.ok(clone.__isDate(local)); // recognize in local context. - test.ok(!clone.__isArray(alien)); - test.ok(!clone.__isArray(local)); - test.ok(!clone.__isRegExp(alien)); - test.ok(!clone.__isRegExp(local)); - - test.done(); - }); -}; - -exports["recognize RegExp object"] = function (test) { - var results = apartContext(null, "results = /foo/", function(alien) { - var local = /bar/; - - test.ok(clone.__isRegExp(alien)); // recognize in other context. - test.ok(clone.__isRegExp(local)); // recognize in local context. - test.ok(!clone.__isArray(alien)); - test.ok(!clone.__isArray(local)); - test.ok(!clone.__isDate(alien)); - test.ok(!clone.__isDate(local)); - test.done(); - }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/CHANGELOG.md deleted file mode 100644 index 0a7bce4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/CHANGELOG.md +++ /dev/null @@ -1,54 +0,0 @@ -# 1.0.0 - 2016-01-07 - -- Removed: unused speed test -- Added: Automatic routing between previously unsupported conversions -([#27](https://github.com/Qix-/color-convert/pull/27)) -- Removed: `xxx2xxx()` and `xxx2xxxRaw()` functions -([#27](https://github.com/Qix-/color-convert/pull/27)) -- Removed: `convert()` class -([#27](https://github.com/Qix-/color-convert/pull/27)) -- Changed: all functions to lookup dictionary -([#27](https://github.com/Qix-/color-convert/pull/27)) -- Changed: `ansi` to `ansi256` -([#27](https://github.com/Qix-/color-convert/pull/27)) -- Fixed: argument grouping for functions requiring only one argument -([#27](https://github.com/Qix-/color-convert/pull/27)) - -# 0.6.0 - 2015-07-23 - -- Added: methods to handle -[ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) 16/256 colors: - - rgb2ansi16 - - rgb2ansi - - hsl2ansi16 - - hsl2ansi - - hsv2ansi16 - - hsv2ansi - - hwb2ansi16 - - hwb2ansi - - cmyk2ansi16 - - cmyk2ansi - - keyword2ansi16 - - keyword2ansi - - ansi162rgb - - ansi162hsl - - ansi162hsv - - ansi162hwb - - ansi162cmyk - - ansi162keyword - - ansi2rgb - - ansi2hsl - - ansi2hsv - - ansi2hwb - - ansi2cmyk - - ansi2keyword -([#18](https://github.com/harthur/color-convert/pull/18)) - -# 0.5.3 - 2015-06-02 - -- Fixed: hsl2hsv does not return `NaN` anymore when using `[0,0,0]` -([#15](https://github.com/harthur/color-convert/issues/15)) - ---- - -Check out commit logs for older releases diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/LICENSE deleted file mode 100644 index a8b08d4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2011 Heather Arthur - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/README.md deleted file mode 100644 index d4b08fc3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# color-convert - -[![Build Status](https://travis-ci.org/Qix-/color-convert.svg?branch=master)](https://travis-ci.org/Qix-/color-convert) - -Color-convert is a color conversion library for JavaScript and node. -It converts all ways between `rgb`, `hsl`, `hsv`, `hwb`, `cmyk`, `ansi`, `ansi16`, `hex` strings, and CSS `keyword`s (will round to closest): - -```js -var convert = require('color-convert'); - -convert.rgb.hsl(140, 200, 100); // [96, 48, 59] -convert.keyword.rgb('blue'); // [0, 0, 255] - -var rgbChannels = convert.rgb.channels; // 3 -var cmykChannels = convert.cmyk.channels; // 4 -var ansiChannels = convert.ansi16.channels; // 1 -``` - -# Install - -```console -$ npm install color-convert -``` - -# API - -Simply get the property of the _from_ and _to_ conversion that you're looking for. - -All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on `.raw` to the function. - -All 'from' functions have a hidden property called `.channels` that indicates the number of channels the function expects (not including alpha). - -```js -var convert = require('color-convert'); - -// Hex to LAB -convert.hex.lab('DEADBF'); // [ 76, 21, -2 ] -convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ] - -// RGB to CMYK -convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ] -convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ] -``` - -### Arrays -All functions that accept multiple arguments also support passing an array. - -Note that this does **not** apply to functions that convert from a color that only requires one value (e.g. `keyword`, `ansi256`, `hex`, etc.) - -```js -var convert = require('color-convert'); - -convert.rgb.hex(123, 45, 67); // '7B2D43' -convert.rgb.hex([123, 45, 67]); // '7B2D43' -``` - -## Routing - -Conversions that don't have an _explicitly_ defined conversion (in [conversions.js](conversions.js)), but can be converted by means of sub-conversions (e.g. XYZ -> **RGB** -> CMYK), are automatically routed together. This allows just about any color model supported by `color-convert` to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> **LAB** -> **XYZ** -> **RGB** -> Hex). - -Keep in mind that extensive conversions _may_ result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see [conversions.js](conversions.js). - -# Contribute - -If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request. - -# License -Copyright © 2011-2016, Heather Arthur and Josh Junon. Licensed under the [MIT License](LICENSE). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/conversions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/conversions.js deleted file mode 100644 index b3a5e03e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/conversions.js +++ /dev/null @@ -1,808 +0,0 @@ -/* MIT license */ -var cssKeywords = require('color-name'); - -// NOTE: conversions should only return primitive values (i.e. arrays, or -// values that give correct `typeof` results). -// do not use box values types (i.e. Number(), String(), etc.) - -var reverseKeywords = {}; -for (var key in cssKeywords) { - if (cssKeywords.hasOwnProperty(key)) { - reverseKeywords[cssKeywords[key]] = key; - } -} - -var convert = module.exports = { - rgb: {channels: 3}, - hsl: {channels: 3}, - hsv: {channels: 3}, - hwb: {channels: 3}, - cmyk: {channels: 4}, - xyz: {channels: 3}, - lab: {channels: 3}, - lch: {channels: 3}, - hex: {channels: 1}, - keyword: {channels: 1}, - ansi16: {channels: 1}, - ansi256: {channels: 1}, - hcg: {channels: 3}, - apple: {channels: 3} -}; - -// hide .channels property -for (var model in convert) { - if (convert.hasOwnProperty(model)) { - if (!('channels' in convert[model])) { - throw new Error('missing channels property: ' + model); - } - - var channels = convert[model].channels; - delete convert[model].channels; - Object.defineProperty(convert[model], 'channels', {value: channels}); - } -} - -convert.rgb.hsl = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var min = Math.min(r, g, b); - var max = Math.max(r, g, b); - var delta = max - min; - var h; - var s; - var l; - - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; - } - - h = Math.min(h * 60, 360); - - if (h < 0) { - h += 360; - } - - l = (min + max) / 2; - - if (max === min) { - s = 0; - } else if (l <= 0.5) { - s = delta / (max + min); - } else { - s = delta / (2 - max - min); - } - - return [h, s * 100, l * 100]; -}; - -convert.rgb.hsv = function (rgb) { - var r = rgb[0]; - var g = rgb[1]; - var b = rgb[2]; - var min = Math.min(r, g, b); - var max = Math.max(r, g, b); - var delta = max - min; - var h; - var s; - var v; - - if (max === 0) { - s = 0; - } else { - s = (delta / max * 1000) / 10; - } - - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; - } - - h = Math.min(h * 60, 360); - - if (h < 0) { - h += 360; - } - - v = ((max / 255) * 1000) / 10; - - return [h, s, v]; -}; - -convert.rgb.hwb = function (rgb) { - var r = rgb[0]; - var g = rgb[1]; - var b = rgb[2]; - var h = convert.rgb.hsl(rgb)[0]; - var w = 1 / 255 * Math.min(r, Math.min(g, b)); - - b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); - - return [h, w * 100, b * 100]; -}; - -convert.rgb.cmyk = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var c; - var m; - var y; - var k; - - k = Math.min(1 - r, 1 - g, 1 - b); - c = (1 - r - k) / (1 - k) || 0; - m = (1 - g - k) / (1 - k) || 0; - y = (1 - b - k) / (1 - k) || 0; - - return [c * 100, m * 100, y * 100, k * 100]; -}; - -/** - * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance - * */ -function comparativeDistance(x, y) { - return ( - Math.pow(x[0] - y[0], 2) + - Math.pow(x[1] - y[1], 2) + - Math.pow(x[2] - y[2], 2) - ); -} - -convert.rgb.keyword = function (rgb) { - var reversed = reverseKeywords[rgb]; - if (reversed) { - return reversed; - } - - var currentClosestDistance = Infinity; - var currentClosestKeyword; - - for (var keyword in cssKeywords) { - if (cssKeywords.hasOwnProperty(keyword)) { - var value = cssKeywords[keyword]; - - // Compute comparative distance - var distance = comparativeDistance(rgb, value); - - // Check if its less, if so set as closest - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } - } - } - - return currentClosestKeyword; -}; - -convert.keyword.rgb = function (keyword) { - return cssKeywords[keyword]; -}; - -convert.rgb.xyz = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - - // assume sRGB - r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); - g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); - b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); - - var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); - var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); - var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); - - return [x * 100, y * 100, z * 100]; -}; - -convert.rgb.lab = function (rgb) { - var xyz = convert.rgb.xyz(rgb); - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; - - x /= 95.047; - y /= 100; - z /= 108.883; - - x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); - - l = (116 * y) - 16; - a = 500 * (x - y); - b = 200 * (y - z); - - return [l, a, b]; -}; - -convert.hsl.rgb = function (hsl) { - var h = hsl[0] / 360; - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var t1; - var t2; - var t3; - var rgb; - var val; - - if (s === 0) { - val = l * 255; - return [val, val, val]; - } - - if (l < 0.5) { - t2 = l * (1 + s); - } else { - t2 = l + s - l * s; - } - - t1 = 2 * l - t2; - - rgb = [0, 0, 0]; - for (var i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); - if (t3 < 0) { - t3++; - } - if (t3 > 1) { - t3--; - } - - if (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } else if (2 * t3 < 1) { - val = t2; - } else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - val = t1; - } - - rgb[i] = val * 255; - } - - return rgb; -}; - -convert.hsl.hsv = function (hsl) { - var h = hsl[0]; - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var smin = s; - var lmin = Math.max(l, 0.01); - var sv; - var v; - - l *= 2; - s *= (l <= 1) ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - v = (l + s) / 2; - sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); - - return [h, sv * 100, v * 100]; -}; - -convert.hsv.rgb = function (hsv) { - var h = hsv[0] / 60; - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var hi = Math.floor(h) % 6; - - var f = h - Math.floor(h); - var p = 255 * v * (1 - s); - var q = 255 * v * (1 - (s * f)); - var t = 255 * v * (1 - (s * (1 - f))); - v *= 255; - - switch (hi) { - case 0: - return [v, t, p]; - case 1: - return [q, v, p]; - case 2: - return [p, v, t]; - case 3: - return [p, q, v]; - case 4: - return [t, p, v]; - case 5: - return [v, p, q]; - } -}; - -convert.hsv.hsl = function (hsv) { - var h = hsv[0]; - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var vmin = Math.max(v, 0.01); - var lmin; - var sl; - var l; - - l = (2 - s) * v; - lmin = (2 - s) * vmin; - sl = s * vmin; - sl /= (lmin <= 1) ? lmin : 2 - lmin; - sl = sl || 0; - l /= 2; - - return [h, sl * 100, l * 100]; -}; - -// http://dev.w3.org/csswg/css-color/#hwb-to-rgb -convert.hwb.rgb = function (hwb) { - var h = hwb[0] / 360; - var wh = hwb[1] / 100; - var bl = hwb[2] / 100; - var ratio = wh + bl; - var i; - var v; - var f; - var n; - - // wh + bl cant be > 1 - if (ratio > 1) { - wh /= ratio; - bl /= ratio; - } - - i = Math.floor(6 * h); - v = 1 - bl; - f = 6 * h - i; - - if ((i & 0x01) !== 0) { - f = 1 - f; - } - - n = wh + f * (v - wh); // linear interpolation - - var r; - var g; - var b; - switch (i) { - default: - case 6: - case 0: r = v; g = n; b = wh; break; - case 1: r = n; g = v; b = wh; break; - case 2: r = wh; g = v; b = n; break; - case 3: r = wh; g = n; b = v; break; - case 4: r = n; g = wh; b = v; break; - case 5: r = v; g = wh; b = n; break; - } - - return [r * 255, g * 255, b * 255]; -}; - -convert.cmyk.rgb = function (cmyk) { - var c = cmyk[0] / 100; - var m = cmyk[1] / 100; - var y = cmyk[2] / 100; - var k = cmyk[3] / 100; - var r; - var g; - var b; - - r = 1 - Math.min(1, c * (1 - k) + k); - g = 1 - Math.min(1, m * (1 - k) + k); - b = 1 - Math.min(1, y * (1 - k) + k); - - return [r * 255, g * 255, b * 255]; -}; - -convert.xyz.rgb = function (xyz) { - var x = xyz[0] / 100; - var y = xyz[1] / 100; - var z = xyz[2] / 100; - var r; - var g; - var b; - - r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); - g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); - b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); - - // assume sRGB - r = r > 0.0031308 - ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) - : r * 12.92; - - g = g > 0.0031308 - ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) - : g * 12.92; - - b = b > 0.0031308 - ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) - : b * 12.92; - - r = Math.min(Math.max(0, r), 1); - g = Math.min(Math.max(0, g), 1); - b = Math.min(Math.max(0, b), 1); - - return [r * 255, g * 255, b * 255]; -}; - -convert.xyz.lab = function (xyz) { - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; - - x /= 95.047; - y /= 100; - z /= 108.883; - - x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); - - l = (116 * y) - 16; - a = 500 * (x - y); - b = 200 * (y - z); - - return [l, a, b]; -}; - -convert.lab.xyz = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var x; - var y; - var z; - - y = (l + 16) / 116; - x = a / 500 + y; - z = y - b / 200; - - var y2 = Math.pow(y, 3); - var x2 = Math.pow(x, 3); - var z2 = Math.pow(z, 3); - y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; - x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; - z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; - - x *= 95.047; - y *= 100; - z *= 108.883; - - return [x, y, z]; -}; - -convert.lab.lch = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var hr; - var h; - var c; - - hr = Math.atan2(b, a); - h = hr * 360 / 2 / Math.PI; - - if (h < 0) { - h += 360; - } - - c = Math.sqrt(a * a + b * b); - - return [l, c, h]; -}; - -convert.lch.lab = function (lch) { - var l = lch[0]; - var c = lch[1]; - var h = lch[2]; - var a; - var b; - var hr; - - hr = h / 360 * 2 * Math.PI; - a = c * Math.cos(hr); - b = c * Math.sin(hr); - - return [l, a, b]; -}; - -convert.rgb.ansi16 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; - var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization - - value = Math.round(value / 50); - - if (value === 0) { - return 30; - } - - var ansi = 30 - + ((Math.round(b / 255) << 2) - | (Math.round(g / 255) << 1) - | Math.round(r / 255)); - - if (value === 2) { - ansi += 60; - } - - return ansi; -}; - -convert.hsv.ansi16 = function (args) { - // optimization here; we already know the value and don't need to get - // it converted for us. - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); -}; - -convert.rgb.ansi256 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; - - // we use the extended greyscale palette here, with the exception of - // black and white. normal palette only has 4 greyscale shades. - if (r === g && g === b) { - if (r < 8) { - return 16; - } - - if (r > 248) { - return 231; - } - - return Math.round(((r - 8) / 247) * 24) + 232; - } - - var ansi = 16 - + (36 * Math.round(r / 255 * 5)) - + (6 * Math.round(g / 255 * 5)) - + Math.round(b / 255 * 5); - - return ansi; -}; - -convert.ansi16.rgb = function (args) { - var color = args % 10; - - // handle greyscale - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } - - color = color / 10.5 * 255; - - return [color, color, color]; - } - - var mult = (~~(args > 50) + 1) * 0.5; - var r = ((color & 1) * mult) * 255; - var g = (((color >> 1) & 1) * mult) * 255; - var b = (((color >> 2) & 1) * mult) * 255; - - return [r, g, b]; -}; - -convert.ansi256.rgb = function (args) { - // handle greyscale - if (args >= 232) { - var c = (args - 232) * 10 + 8; - return [c, c, c]; - } - - args -= 16; - - var rem; - var r = Math.floor(args / 36) / 5 * 255; - var g = Math.floor((rem = args % 36) / 6) / 5 * 255; - var b = (rem % 6) / 5 * 255; - - return [r, g, b]; -}; - -convert.rgb.hex = function (args) { - var integer = ((Math.round(args[0]) & 0xFF) << 16) - + ((Math.round(args[1]) & 0xFF) << 8) - + (Math.round(args[2]) & 0xFF); - - var string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; - -convert.hex.rgb = function (args) { - var match = args.toString(16).match(/[a-f0-9]{6}/i); - if (!match) { - return [0, 0, 0]; - } - - var integer = parseInt(match[0], 16); - var r = (integer >> 16) & 0xFF; - var g = (integer >> 8) & 0xFF; - var b = integer & 0xFF; - - return [r, g, b]; -}; - -convert.rgb.hcg = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var max = Math.max(Math.max(r, g), b); - var min = Math.min(Math.min(r, g), b); - var chroma = (max - min); - var grayscale; - var hue; - - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } - - if (chroma <= 0) { - hue = 0; - } else - if (max === r) { - hue = ((g - b) / chroma) % 6; - } else - if (max === g) { - hue = 2 + (b - r) / chroma; - } else { - hue = 4 + (r - g) / chroma + 4; - } - - hue /= 6; - hue %= 1; - - return [hue * 360, chroma * 100, grayscale * 100]; -}; - -convert.hsl.hcg = function (hsl) { - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var c = 1; - var f = 0; - - if (l < 0.5) { - c = 2.0 * s * l; - } else { - c = 2.0 * s * (1.0 - l); - } - - if (c < 1.0) { - f = (l - 0.5 * c) / (1.0 - c); - } - - return [hsl[0], c * 100, f * 100]; -}; - -convert.hsv.hcg = function (hsv) { - var s = hsv[1] / 100; - var v = hsv[2] / 100; - - var c = s * v; - var f = 0; - - if (c < 1.0) { - f = (v - c) / (1 - c); - } - - return [hsv[0], c * 100, f * 100]; -}; - -convert.hcg.rgb = function (hcg) { - var h = hcg[0] / 360; - var c = hcg[1] / 100; - var g = hcg[2] / 100; - - if (c === 0.0) { - return [g * 255, g * 255, g * 255]; - } - - var pure = [0, 0, 0]; - var hi = (h % 1) * 6; - var v = hi % 1; - var w = 1 - v; - var mg = 0; - - switch (Math.floor(hi)) { - case 0: - pure[0] = 1; pure[1] = v; pure[2] = 0; break; - case 1: - pure[0] = w; pure[1] = 1; pure[2] = 0; break; - case 2: - pure[0] = 0; pure[1] = 1; pure[2] = v; break; - case 3: - pure[0] = 0; pure[1] = w; pure[2] = 1; break; - case 4: - pure[0] = v; pure[1] = 0; pure[2] = 1; break; - default: - pure[0] = 1; pure[1] = 0; pure[2] = w; - } - - mg = (1.0 - c) * g; - - return [ - (c * pure[0] + mg) * 255, - (c * pure[1] + mg) * 255, - (c * pure[2] + mg) * 255 - ]; -}; - -convert.hcg.hsv = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - - var v = c + g * (1.0 - c); - var f = 0; - - if (v > 0.0) { - f = c / v; - } - - return [hcg[0], f * 100, v * 100]; -}; - -convert.hcg.hsl = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - - var l = g * (1.0 - c) + 0.5 * c; - var s = 0; - - if (l > 0.0 && l < 0.5) { - s = c / (2 * l); - } else - if (l >= 0.5 && l < 1.0) { - s = c / (2 * (1 - l)); - } - - return [hcg[0], s * 100, l * 100]; -}; - -convert.hcg.hwb = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - var v = c + g * (1.0 - c); - return [hcg[0], (v - c) * 100, (1 - v) * 100]; -}; - -convert.hwb.hcg = function (hwb) { - var w = hwb[1] / 100; - var b = hwb[2] / 100; - var v = 1 - b; - var c = v - w; - var g = 0; - - if (c < 1) { - g = (v - c) / (1 - c); - } - - return [hwb[0], c * 100, g * 100]; -}; - -convert.apple.rgb = function (apple) { - return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; -}; - -convert.rgb.apple = function (rgb) { - return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/index.js deleted file mode 100644 index cbc91a5c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/index.js +++ /dev/null @@ -1,77 +0,0 @@ -var conversions = require('./conversions'); -var route = require('./route'); - -var convert = {}; - -var models = Object.keys(conversions); - -function wrapRaw(fn) { - var wrappedFn = function (args) { - if (args === undefined || args === null) { - return args; - } - - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - - return fn(args); - }; - - // preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } - - return wrappedFn; -} - -function wrapRounded(fn) { - var wrappedFn = function (args) { - if (args === undefined || args === null) { - return args; - } - - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - - var result = fn(args); - - // we're assuming the result is an array here. - // see notice in conversions.js; don't use box types - // in conversion functions. - if (typeof result === 'object') { - for (var len = result.length, i = 0; i < len; i++) { - result[i] = Math.round(result[i]); - } - } - - return result; - }; - - // preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } - - return wrappedFn; -} - -models.forEach(function (fromModel) { - convert[fromModel] = {}; - - Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); - - var routes = route(fromModel); - var routeModels = Object.keys(routes); - - routeModels.forEach(function (toModel) { - var fn = routes[toModel]; - - convert[fromModel][toModel] = wrapRounded(fn); - convert[fromModel][toModel].raw = wrapRaw(fn); - }); -}); - -module.exports = convert; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/LICENSE deleted file mode 100644 index 4d9802a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/LICENSE +++ /dev/null @@ -1,8 +0,0 @@ -The MIT License (MIT) -Copyright (c) 2015 Dmitry Ivanov - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/README.md deleted file mode 100644 index 3e8ac061..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/README.md +++ /dev/null @@ -1,11 +0,0 @@ -A JSON with color names and it’s values. Based on http://dev.w3.org/csswg/css-color/#named-colors. - -[![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) - - -```js -var colors = require('color-name'); -colors.red //[255,0,0] -``` - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/index.js deleted file mode 100644 index 7d85e58c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/index.js +++ /dev/null @@ -1,150 +0,0 @@ -module.exports = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/package.json deleted file mode 100644 index 7229f14d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/node_modules/color-name/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "color-name", - "version": "1.1.1", - "description": "A list of color names and it’s values", - "main": "index.js", - "scripts": { - "test": "node test.js" - }, - "files": [ - "index.js" - ], - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/dfcreative/color-name.git" - }, - "keywords": [ - "color-name", - "color", - "color-keyword", - "keyword" - ], - "author": { - "name": "DY", - "email": "dfcreative@gmail.com" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/dfcreative/color-name/issues" - }, - "homepage": "https://github.com/dfcreative/color-name", - "gitHead": "b47de1bf75da523d6d6061a41f7f0c9bb7c213bf", - "_id": "color-name@1.1.1", - "_shasum": "4b1415304cf50028ea81643643bd82ea05803689", - "_from": "color-name@>=1.0.0 <2.0.0", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.3.0", - "_npmUser": { - "name": "dfcreative", - "email": "df.creative@gmail.com" - }, - "maintainers": [ - { - "name": "dfcreative", - "email": "df.creative@gmail.com" - } - ], - "dist": { - "shasum": "4b1415304cf50028ea81643643bd82ea05803689", - "tarball": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/package.json deleted file mode 100644 index 481d32da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/package.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "name": "color-convert", - "description": "Plain color conversion functions", - "version": "1.6.0", - "author": { - "name": "Heather Arthur", - "email": "fayearthur@gmail.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/qix-/color-convert.git" - }, - "scripts": { - "pretest": "xo", - "test": "node test/basic.js" - }, - "keywords": [ - "color", - "colour", - "convert", - "converter", - "conversion", - "rgb", - "hsl", - "hsv", - "hwb", - "cmyk", - "ansi", - "ansi16" - ], - "files": [ - "index.js", - "conversions.js", - "css-keywords.js", - "route.js" - ], - "xo": { - "rules": { - "default-case": 0, - "no-inline-comments": 0, - "operator-linebreak": 0 - } - }, - "devDependencies": { - "chalk": "^1.1.1", - "xo": "^0.11.2" - }, - "dependencies": { - "color-name": "^1.1.1" - }, - "gitHead": "12f128436b9e3d6833f74b28f544d4b5ca3a4c21", - "bugs": { - "url": "https://github.com/qix-/color-convert/issues" - }, - "homepage": "https://github.com/qix-/color-convert#readme", - "_id": "color-convert@1.6.0", - "_shasum": "7592755faf53938a05b1ea8e5374cab77d6dd190", - "_from": "color-convert@>=1.3.0 <2.0.0", - "_npmVersion": "2.14.2", - "_nodeVersion": "0.10.32", - "_npmUser": { - "name": "qix", - "email": "i.am.qix@gmail.com" - }, - "dist": { - "shasum": "7592755faf53938a05b1ea8e5374cab77d6dd190", - "tarball": "https://registry.npmjs.org/color-convert/-/color-convert-1.6.0.tgz" - }, - "maintainers": [ - { - "name": "harth", - "email": "fayearthur@gmail.com" - }, - { - "name": "moox", - "email": "m@moox.io" - }, - { - "name": "qix", - "email": "i.am.qix@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/color-convert-1.6.0.tgz_1477961042575_0.9619914321228862" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.6.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/route.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/route.js deleted file mode 100644 index c365e1ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-convert/route.js +++ /dev/null @@ -1,98 +0,0 @@ -var conversions = require('./conversions'); - -/* - this function routes a model to all other models. - - all functions that are routed have a property `.conversion` attached - to the returned synthetic function. This property is an array - of strings, each with the steps in between the 'from' and 'to' - color models (inclusive). - - conversions that are not possible simply are not included. -*/ - -// https://jsperf.com/object-keys-vs-for-in-with-closure/3 -var models = Object.keys(conversions); - -function buildGraph() { - var graph = {}; - - for (var len = models.length, i = 0; i < len; i++) { - graph[models[i]] = { - // http://jsperf.com/1-vs-infinity - // micro-opt, but this is simple. - distance: -1, - parent: null - }; - } - - return graph; -} - -// https://en.wikipedia.org/wiki/Breadth-first_search -function deriveBFS(fromModel) { - var graph = buildGraph(); - var queue = [fromModel]; // unshift -> queue -> pop - - graph[fromModel].distance = 0; - - while (queue.length) { - var current = queue.pop(); - var adjacents = Object.keys(conversions[current]); - - for (var len = adjacents.length, i = 0; i < len; i++) { - var adjacent = adjacents[i]; - var node = graph[adjacent]; - - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } - } - } - - return graph; -} - -function link(from, to) { - return function (args) { - return to(from(args)); - }; -} - -function wrapConversion(toModel, graph) { - var path = [graph[toModel].parent, toModel]; - var fn = conversions[graph[toModel].parent][toModel]; - - var cur = graph[toModel].parent; - while (graph[cur].parent) { - path.unshift(graph[cur].parent); - fn = link(conversions[graph[cur].parent][cur], fn); - cur = graph[cur].parent; - } - - fn.conversion = path; - return fn; -} - -module.exports = function (fromModel) { - var graph = deriveBFS(fromModel); - var conversion = {}; - - var models = Object.keys(graph); - for (var len = models.length, i = 0; i < len; i++) { - var toModel = models[i]; - var node = graph[toModel]; - - if (node.parent === null) { - // no possible conversion, or this node is the source model. - continue; - } - - conversion[toModel] = wrapConversion(toModel, graph); - } - - return conversion; -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/CHANGELOG.md deleted file mode 100644 index 459d08df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/CHANGELOG.md +++ /dev/null @@ -1,11 +0,0 @@ -# 0.3.0 - -- Fixed: HSL alpha channel ([#16](https://github.com/harthur/color-string/pull/16)) -- Fixed: ability to parse signed number ([#15](https://github.com/harthur/color-string/pull/15)) -- Removed: component.json -- Removed: browser build -- Added: license field to package.json ([#17](https://github.com/harthur/color-string/pull/17)) - ---- - -Check out commit logs for earlier releases diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/LICENSE deleted file mode 100644 index a8b08d4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2011 Heather Arthur - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/README.md deleted file mode 100644 index bca726dd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# color-string -color-string is a library for parsing and generating CSS color strings. - -#### parsing: -```javascript -colorString.getRgb("#FFF") // [255, 255, 255] -colorString.getRgb("blue") // [0, 0, 255] - -colorString.getRgba("rgba(200, 60, 60, 0.3)") // [200, 60, 60, 0.3] -colorString.getRgba("rgb(200, 200, 200)") // [200, 200, 200, 1] - -colorString.getHsl("hsl(360, 100%, 50%)") // [360, 100, 50] -colorString.getHsla("hsla(360, 60%, 50%, 0.4)") // [360, 60, 50, 0.4] - -colorString.getAlpha("rgba(200, 0, 12, 0.6)") // 0.6 -``` -#### generating: -```javascript -colorString.hexString([255, 255, 255]) // "#FFFFFF" -colorString.rgbString([255, 255, 255]) // "rgb(255, 255, 255)" -colorString.rgbString([0, 0, 255, 0.4]) // "rgba(0, 0, 255, 0.4)" -colorString.rgbString([0, 0, 255], 0.4) // "rgba(0, 0, 255, 0.4)" -colorString.percentString([0, 0, 255]) // "rgb(0%, 0%, 100%)" -colorString.keyword([255, 255, 0]) // "yellow" -colorString.hslString([360, 100, 100]) // "hsl(360, 100%, 100%)" -``` - -# Install - -### node -For [node](http://nodejs.org) with [npm](http://npmjs.org): - - npm install color-string - -### browser -Download the latest [color-string.js](https://github.com/harthur/color-string/tree/gh-pages). The `colorString` object is exported. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/color-string.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/color-string.js deleted file mode 100644 index 9275281d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/color-string.js +++ /dev/null @@ -1,221 +0,0 @@ -/* MIT license */ -var colorNames = require('color-name'); - -module.exports = { - getRgba: getRgba, - getHsla: getHsla, - getRgb: getRgb, - getHsl: getHsl, - getHwb: getHwb, - getAlpha: getAlpha, - - hexString: hexString, - rgbString: rgbString, - rgbaString: rgbaString, - percentString: percentString, - percentaString: percentaString, - hslString: hslString, - hslaString: hslaString, - hwbString: hwbString, - keyword: keyword -} - -function getRgba(string) { - if (!string) { - return; - } - var abbr = /^#([a-fA-F0-9]{3})$/, - hex = /^#([a-fA-F0-9]{6})$/, - rgba = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/, - per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/, - keyword = /(\D+)/; - - var rgb = [0, 0, 0], - a = 1, - match = string.match(abbr); - if (match) { - match = match[1]; - for (var i = 0; i < rgb.length; i++) { - rgb[i] = parseInt(match[i] + match[i], 16); - } - } - else if (match = string.match(hex)) { - match = match[1]; - for (var i = 0; i < rgb.length; i++) { - rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16); - } - } - else if (match = string.match(rgba)) { - for (var i = 0; i < rgb.length; i++) { - rgb[i] = parseInt(match[i + 1]); - } - a = parseFloat(match[4]); - } - else if (match = string.match(per)) { - for (var i = 0; i < rgb.length; i++) { - rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55); - } - a = parseFloat(match[4]); - } - else if (match = string.match(keyword)) { - if (match[1] == "transparent") { - return [0, 0, 0, 0]; - } - rgb = colorNames[match[1]]; - if (!rgb) { - return; - } - } - - for (var i = 0; i < rgb.length; i++) { - rgb[i] = scale(rgb[i], 0, 255); - } - if (!a && a != 0) { - a = 1; - } - else { - a = scale(a, 0, 1); - } - rgb[3] = a; - return rgb; -} - -function getHsla(string) { - if (!string) { - return; - } - var hsl = /^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/; - var match = string.match(hsl); - if (match) { - var alpha = parseFloat(match[4]); - var h = scale(parseInt(match[1]), 0, 360), - s = scale(parseFloat(match[2]), 0, 100), - l = scale(parseFloat(match[3]), 0, 100), - a = scale(isNaN(alpha) ? 1 : alpha, 0, 1); - return [h, s, l, a]; - } -} - -function getHwb(string) { - if (!string) { - return; - } - var hwb = /^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/; - var match = string.match(hwb); - if (match) { - var alpha = parseFloat(match[4]); - var h = scale(parseInt(match[1]), 0, 360), - w = scale(parseFloat(match[2]), 0, 100), - b = scale(parseFloat(match[3]), 0, 100), - a = scale(isNaN(alpha) ? 1 : alpha, 0, 1); - return [h, w, b, a]; - } -} - -function getRgb(string) { - var rgba = getRgba(string); - return rgba && rgba.slice(0, 3); -} - -function getHsl(string) { - var hsla = getHsla(string); - return hsla && hsla.slice(0, 3); -} - -function getAlpha(string) { - var vals = getRgba(string); - if (vals) { - return vals[3]; - } - else if (vals = getHsla(string)) { - return vals[3]; - } - else if (vals = getHwb(string)) { - return vals[3]; - } -} - -// generators -function hexString(rgb) { - return "#" + hexDouble(rgb[0]) + hexDouble(rgb[1]) - + hexDouble(rgb[2]); -} - -function rgbString(rgba, alpha) { - if (alpha < 1 || (rgba[3] && rgba[3] < 1)) { - return rgbaString(rgba, alpha); - } - return "rgb(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2] + ")"; -} - -function rgbaString(rgba, alpha) { - if (alpha === undefined) { - alpha = (rgba[3] !== undefined ? rgba[3] : 1); - } - return "rgba(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2] - + ", " + alpha + ")"; -} - -function percentString(rgba, alpha) { - if (alpha < 1 || (rgba[3] && rgba[3] < 1)) { - return percentaString(rgba, alpha); - } - var r = Math.round(rgba[0]/255 * 100), - g = Math.round(rgba[1]/255 * 100), - b = Math.round(rgba[2]/255 * 100); - - return "rgb(" + r + "%, " + g + "%, " + b + "%)"; -} - -function percentaString(rgba, alpha) { - var r = Math.round(rgba[0]/255 * 100), - g = Math.round(rgba[1]/255 * 100), - b = Math.round(rgba[2]/255 * 100); - return "rgba(" + r + "%, " + g + "%, " + b + "%, " + (alpha || rgba[3] || 1) + ")"; -} - -function hslString(hsla, alpha) { - if (alpha < 1 || (hsla[3] && hsla[3] < 1)) { - return hslaString(hsla, alpha); - } - return "hsl(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%)"; -} - -function hslaString(hsla, alpha) { - if (alpha === undefined) { - alpha = (hsla[3] !== undefined ? hsla[3] : 1); - } - return "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, " - + alpha + ")"; -} - -// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax -// (hwb have alpha optional & 1 is default value) -function hwbString(hwb, alpha) { - if (alpha === undefined) { - alpha = (hwb[3] !== undefined ? hwb[3] : 1); - } - return "hwb(" + hwb[0] + ", " + hwb[1] + "%, " + hwb[2] + "%" - + (alpha !== undefined && alpha !== 1 ? ", " + alpha : "") + ")"; -} - -function keyword(rgb) { - return reverseNames[rgb.slice(0, 3)]; -} - -// helpers -function scale(num, min, max) { - return Math.min(Math.max(min, num), max); -} - -function hexDouble(num) { - var str = num.toString(16).toUpperCase(); - return (str.length < 2) ? "0" + str : str; -} - - -//create a list of reverse color names -var reverseNames = {}; -for (var name in colorNames) { - reverseNames[colorNames[name]] = name; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/LICENSE deleted file mode 100644 index 4d9802a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/LICENSE +++ /dev/null @@ -1,8 +0,0 @@ -The MIT License (MIT) -Copyright (c) 2015 Dmitry Ivanov - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/README.md deleted file mode 100644 index 3e8ac061..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/README.md +++ /dev/null @@ -1,11 +0,0 @@ -A JSON with color names and it’s values. Based on http://dev.w3.org/csswg/css-color/#named-colors. - -[![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) - - -```js -var colors = require('color-name'); -colors.red //[255,0,0] -``` - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/index.js deleted file mode 100644 index 7d85e58c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/index.js +++ /dev/null @@ -1,150 +0,0 @@ -module.exports = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/package.json deleted file mode 100644 index 7229f14d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/node_modules/color-name/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "color-name", - "version": "1.1.1", - "description": "A list of color names and it’s values", - "main": "index.js", - "scripts": { - "test": "node test.js" - }, - "files": [ - "index.js" - ], - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/dfcreative/color-name.git" - }, - "keywords": [ - "color-name", - "color", - "color-keyword", - "keyword" - ], - "author": { - "name": "DY", - "email": "dfcreative@gmail.com" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/dfcreative/color-name/issues" - }, - "homepage": "https://github.com/dfcreative/color-name", - "gitHead": "b47de1bf75da523d6d6061a41f7f0c9bb7c213bf", - "_id": "color-name@1.1.1", - "_shasum": "4b1415304cf50028ea81643643bd82ea05803689", - "_from": "color-name@>=1.0.0 <2.0.0", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.3.0", - "_npmUser": { - "name": "dfcreative", - "email": "df.creative@gmail.com" - }, - "maintainers": [ - { - "name": "dfcreative", - "email": "df.creative@gmail.com" - } - ], - "dist": { - "shasum": "4b1415304cf50028ea81643643bd82ea05803689", - "tarball": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/package.json deleted file mode 100644 index ee121012..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "color-string", - "description": "Parser and generator for CSS color strings", - "version": "0.3.0", - "author": { - "name": "Heather Arthur", - "email": "fayearthur@gmail.com" - }, - "contributors": [ - { - "name": "Maxime Thirouin" - }, - { - "name": "Dyma Ywanov", - "email": "dfcreative@gmail.com" - } - ], - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/harthur/color-string.git" - }, - "scripts": { - "test": "node test/basic.js" - }, - "license": "MIT", - "main": "./color-string", - "dependencies": { - "color-name": "^1.0.0" - }, - "devDependencies": {}, - "keywords": [ - "color", - "colour", - "rgb", - "css" - ], - "gitHead": "cb3a23eeadb4abe4a9233c7ba49c731bcb1cfb0a", - "bugs": { - "url": "https://github.com/harthur/color-string/issues" - }, - "homepage": "https://github.com/harthur/color-string", - "_id": "color-string@0.3.0", - "_shasum": "27d46fb67025c5c2fa25993bfbf579e47841b991", - "_from": "color-string@>=0.3.0 <0.4.0", - "_npmVersion": "2.5.1", - "_nodeVersion": "0.12.0", - "_npmUser": { - "name": "moox", - "email": "m@moox.io" - }, - "maintainers": [ - { - "name": "harth", - "email": "fayearthur@gmail.com" - }, - { - "name": "moox", - "email": "m@moox.io" - } - ], - "dist": { - "shasum": "27d46fb67025c5c2fa25993bfbf579e47841b991", - "tarball": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/test/basic.js deleted file mode 100644 index 21788240..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/node_modules/color-string/test/basic.js +++ /dev/null @@ -1,93 +0,0 @@ -var string = require("../color-string"), - assert = require("assert"); - - -assert.deepEqual(string.getRgba("#fef"), [255, 238, 255, 1]); -assert.deepEqual(string.getRgba("#fffFEF"), [255, 255, 239,1]); -assert.deepEqual(string.getRgba("rgb(244, 233, 100)"), [244, 233, 100, 1]); -assert.deepEqual(string.getRgba("rgb(100%, 30%, 90%)"), [255, 77, 229, 1]); -assert.deepEqual(string.getRgba("transparent"), [0, 0, 0, 0]); -assert.deepEqual(string.getHsla("hsl(240, 100%, 50.5%)"), [240, 100, 50.5, 1]); -assert.deepEqual(string.getHsla("hsl(240deg, 100%, 50.5%)"), [240, 100, 50.5, 1]); -assert.deepEqual(string.getHwb("hwb(240, 100%, 50.5%)"), [240, 100, 50.5, 1]); -assert.deepEqual(string.getHwb("hwb(240deg, 100%, 50.5%)"), [240, 100, 50.5, 1]); - -// with sign -assert.deepEqual(string.getRgba("rgb(-244, +233, -100)"), [0, 233, 0, 1]); -assert.deepEqual(string.getHsla("hsl(+240, 100%, 50.5%)"), [240, 100, 50.5, 1]); -assert.deepEqual(string.getRgba("rgba(200, +20, -233, -0.0)"), [200, 20, 0, 0]); -assert.deepEqual(string.getRgba("rgba(200, +20, -233, -0.0)"), [200, 20, 0, 0]); -assert.deepEqual(string.getHsla("hsla(+200, 100%, 50%, -0.2)"), [200, 100, 50, 0]); -assert.deepEqual(string.getHwb("hwb(+240, 100%, 50.5%)"), [240, 100, 50.5, 1]); -assert.deepEqual(string.getHwb("hwb(-240deg, 100%, 50.5%)"), [0, 100, 50.5, 1]); -assert.deepEqual(string.getHwb("hwb(-240deg, 100%, 50.5%, +0.6)"), [0, 100, 50.5, 0.6]); - -//subsequent return values should not change array -assert.deepEqual(string.getRgba("blue"), [0, 0, 255, 1]); -assert.deepEqual(string.getRgba("blue"), [0, 0, 255, 1]); - -assert.equal(string.getAlpha("rgb(244, 233, 100)"), 1); -assert.equal(string.getAlpha("rgba(244, 233, 100, 0.5)"), 0.5); -assert.equal(string.getAlpha("hsla(244, 100%, 100%, 0.6)"), 0.6); -assert.equal(string.getAlpha("hwb(244, 100%, 100%, 0.6)"), 0.6); -assert.equal(string.getAlpha("hwb(244, 100%, 100%)"), 1); - -// alpha -assert.deepEqual(string.getRgba("rgba(200, 20, 233, 0.2)"), [200, 20, 233, 0.2]); -assert.deepEqual(string.getRgba("rgba(200, 20, 233, 0)"), [200, 20, 233, 0]); -assert.deepEqual(string.getRgba("rgba(100%, 30%, 90%, 0.2)"), [255, 77, 229, 0.2]); -assert.deepEqual(string.getHsla("hsla(200, 20%, 33%, 0.2)"), [200, 20, 33, 0.2]); -assert.deepEqual(string.getHwb("hwb(200, 20%, 33%, 0.2)"), [200, 20, 33, 0.2]); - -// no alpha -assert.deepEqual(string.getRgb("#fef"), [255, 238, 255]); -assert.deepEqual(string.getRgb("rgba(200, 20, 233, 0.2)"), [200, 20, 233]); -assert.deepEqual(string.getHsl("hsl(240, 100%, 50.5%)"), [240, 100, 50.5]); -assert.deepEqual(string.getRgba('rgba(0,0,0,0)'), [0, 0, 0, 0]); -assert.deepEqual(string.getHsla('hsla(0,0%,0%,0)'), [0, 0, 0, 0]); -assert.deepEqual(string.getHwb("hwb(400, 10%, 200%, 0)"), [360, 10, 100, 0]); - -// range -assert.deepEqual(string.getRgba("rgba(300, 600, 100, 3)"), [255, 255, 100, 1]); -assert.deepEqual(string.getRgba("rgba(8000%, 100%, 333%, 88)"), [255, 255, 255, 1]); -assert.deepEqual(string.getHsla("hsla(400, 10%, 200%, 10)"), [360, 10, 100, 1]); -assert.deepEqual(string.getHwb("hwb(400, 10%, 200%, 10)"), [360, 10, 100, 1]); - -// invalid -assert.strictEqual(string.getRgba("yellowblue"), undefined); -assert.strictEqual(string.getRgba("hsl(100, 10%, 10%)"), undefined); -assert.strictEqual(string.getRgba("hwb(100, 10%, 10%)"), undefined); - -// generators -assert.equal(string.hexString([255, 10, 35]), "#FF0A23"); - -assert.equal(string.rgbString([255, 10, 35]), "rgb(255, 10, 35)"); -assert.equal(string.rgbString([255, 10, 35, 0.3]), "rgba(255, 10, 35, 0.3)"); -assert.equal(string.rgbString([255, 10, 35], 0.3), "rgba(255, 10, 35, 0.3)"); -assert.equal(string.rgbaString([255, 10, 35, 0.3]), "rgba(255, 10, 35, 0.3)"); -assert.equal(string.rgbaString([255, 10, 35], 0.3), "rgba(255, 10, 35, 0.3)"); -assert.equal(string.rgbaString([255, 10, 35]), "rgba(255, 10, 35, 1)"); -assert.equal(string.rgbaString([255, 10, 35, 0]), "rgba(255, 10, 35, 0)"); - -assert.equal(string.percentString([255, 10, 35]), "rgb(100%, 4%, 14%)"); -assert.equal(string.percentString([255, 10, 35, 0.3]), "rgba(100%, 4%, 14%, 0.3)"); -assert.equal(string.percentString([255, 10, 35], 0.3), "rgba(100%, 4%, 14%, 0.3)"); -assert.equal(string.percentaString([255, 10, 35, 0.3]), "rgba(100%, 4%, 14%, 0.3)"); -assert.equal(string.percentaString([255, 10, 35], 0.3), "rgba(100%, 4%, 14%, 0.3)"); -assert.equal(string.percentaString([255, 10, 35]), "rgba(100%, 4%, 14%, 1)"); - -assert.equal(string.hslString([280, 40, 60]), "hsl(280, 40%, 60%)"); -assert.equal(string.hslString([280, 40, 60, 0.3]), "hsla(280, 40%, 60%, 0.3)"); -assert.equal(string.hslString([280, 40, 60], 0.3), "hsla(280, 40%, 60%, 0.3)"); -assert.equal(string.hslaString([280, 40, 60, 0.3]), "hsla(280, 40%, 60%, 0.3)"); -assert.equal(string.hslaString([280, 40, 60], 0.3), "hsla(280, 40%, 60%, 0.3)"); -assert.equal(string.hslaString([280, 40, 60], 0), "hsla(280, 40%, 60%, 0)"); -assert.equal(string.hslaString([280, 40, 60]), "hsla(280, 40%, 60%, 1)"); - -assert.equal(string.hwbString([280, 40, 60]), "hwb(280, 40%, 60%)"); -assert.equal(string.hwbString([280, 40, 60, 0.3]), "hwb(280, 40%, 60%, 0.3)"); -assert.equal(string.hwbString([280, 40, 60], 0.3), "hwb(280, 40%, 60%, 0.3)"); -assert.equal(string.hwbString([280, 40, 60], 0), "hwb(280, 40%, 60%, 0)"); - -assert.equal(string.keyword([255, 255, 0]), "yellow"); -assert.equal(string.keyword([100, 255, 0]), undefined); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/package.json deleted file mode 100644 index 27f90f48..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/color/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "color", - "version": "0.11.4", - "description": "Color conversion and manipulation with CSS string support", - "keywords": [ - "color", - "colour", - "css" - ], - "authors": [ - "Heather Arthur ", - "Maxime Thirouin", - "Josh Junon" - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/qix-/color.git" - }, - "xo": { - "rules": { - "no-cond-assign": 0, - "new-cap": 0 - } - }, - "files": [ - "CHANGELOG.md", - "LICENSE", - "index.js" - ], - "scripts": { - "pretest": "xo", - "test": "mocha" - }, - "dependencies": { - "clone": "^1.0.2", - "color-convert": "^1.3.0", - "color-string": "^0.3.0" - }, - "devDependencies": { - "mocha": "^2.2.5", - "xo": "^0.12.1" - }, - "gitHead": "98e434f55c3cdefe8d788deb4c5a51e368020cda", - "bugs": { - "url": "https://github.com/qix-/color/issues" - }, - "homepage": "https://github.com/qix-/color#readme", - "_id": "color@0.11.4", - "_shasum": "6d7b5c74fb65e841cd48792ad1ed5e07b904d764", - "_from": "color@>=0.11.1 <0.12.0", - "_npmVersion": "2.14.2", - "_nodeVersion": "0.10.32", - "_npmUser": { - "name": "qix", - "email": "i.am.qix@gmail.com" - }, - "dist": { - "shasum": "6d7b5c74fb65e841cd48792ad1ed5e07b904d764", - "tarball": "https://registry.npmjs.org/color/-/color-0.11.4.tgz" - }, - "maintainers": [ - { - "name": "harth", - "email": "fayearthur@gmail.com" - }, - { - "name": "moox", - "email": "m@moox.io" - }, - { - "name": "qix", - "email": "i.am.qix@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/color-0.11.4.tgz_1478033521906_0.8937840491998941" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/HISTORY.md deleted file mode 100644 index 4f28f505..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/HISTORY.md +++ /dev/null @@ -1,85 +0,0 @@ -1.4.3 / 2016-05-26 -================== - - * deps: cookie@0.3.1 - - perf: use for loop in parse - -1.4.2 / 2016-05-20 -================== - - * deps: cookie@0.2.4 - - perf: enable strict mode - - perf: use for loop in parse - - perf: use string concatination for serialization - -1.4.1 / 2016-01-11 -================== - - * deps: cookie@0.2.3 - * perf: enable strict mode - -1.4.0 / 2015-09-18 -================== - - * Accept array of secrets in addition to a single secret - * Fix `JSONCookie` to return `undefined` for non-string arguments - * Fix `signedCookie` to return `undefined` for non-string arguments - * deps: cookie@0.2.2 - -1.3.5 / 2015-05-19 -================== - - * deps: cookie@0.1.3 - - Slight optimizations - -1.3.4 / 2015-02-15 -================== - - * deps: cookie-signature@1.0.6 - -1.3.3 / 2014-09-05 -================== - - * deps: cookie-signature@1.0.5 - -1.3.2 / 2014-06-26 -================== - - * deps: cookie-signature@1.0.4 - - fix for timing attacks - -1.3.1 / 2014-06-17 -================== - - * actually export `signedCookie` - -1.3.0 / 2014-06-17 -================== - - * add `signedCookie` export for single cookie unsigning - -1.2.0 / 2014-06-17 -================== - - * export parsing functions - * `req.cookies` and `req.signedCookies` are now plain objects - * slightly faster parsing of many cookies - -1.1.0 / 2014-05-12 -================== - - * Support for NodeJS version 0.8 - * deps: cookie@0.1.2 - - Fix for maxAge == 0 - - made compat with expires field - - tweak maxAge NaN error message - -1.0.1 / 2014-02-20 -================== - - * add missing dependencies - -1.0.0 / 2014-02-15 -================== - - * Genesis from `connect` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/LICENSE deleted file mode 100644 index 343f2ada..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/README.md deleted file mode 100644 index 05dbdc5a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# cookie-parser - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Parse `Cookie` header and populate `req.cookies` with an object keyed by the cookie -names. Optionally you may enable signed cookie support by passing a `secret` string, -which assigns `req.secret` so it may be used by other middleware. - -## Installation - -```sh -$ npm install cookie-parser -``` - -## API - -```js -var express = require('express') -var cookieParser = require('cookie-parser') - -var app = express() -app.use(cookieParser()) -``` - -### cookieParser(secret, options) - -- `secret` a string or array used for signing cookies. This is optional and if not specified, will not parse signed cookies. If a string is provided, this is used as the secret. If an array is provided, an attempt will be made to unsign the cookie with each secret in order. -- `options` an object that is passed to `cookie.parse` as the second option. See [cookie](https://www.npmjs.org/package/cookie) for more information. - - `decode` a function to decode the value of the cookie - -### cookieParser.JSONCookie(str) - -Parse a cookie value as a JSON cookie. This will return the parsed JSON value if it was a JSON cookie, otherwise it will return the passed value. - -### cookieParser.JSONCookies(cookies) - -Given an object, this will iterate over the keys and call `JSONCookie` on each value. This will return the same object passed in. - -### cookieParser.signedCookie(str, secret) - -Parse a cookie value as a signed cookie. This will return the parsed unsigned value if it was a signed cookie and the signature was valid, otherwise it will return the passed value. - -The `secret` argument can be an array or string. If a string is provided, this is used as the secret. If an array is provided, an attempt will be made to unsign the cookie with each secret in order. - -### cookieParser.signedCookies(cookies, secret) - -Given an object, this will iterate over the keys and check if any value is a signed cookie. If it is a signed cookie and the signature is valid, the key will be deleted from the object and added to the new object that is returned. - -The `secret` argument can be an array or string. If a string is provided, this is used as the secret. If an array is provided, an attempt will be made to unsign the cookie with each secret in order. - -## Example - -```js -var express = require('express') -var cookieParser = require('cookie-parser') - -var app = express() -app.use(cookieParser()) - -app.get('/', function(req, res) { - console.log('Cookies: ', req.cookies) -}) - -app.listen(8080) - -// curl command that sends an HTTP request with two cookies -// curl http://127.0.0.1:8080 --cookie "Cho=Kim;Greet=Hello" -``` - -### [MIT Licensed](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/cookie-parser.svg -[npm-url]: https://npmjs.org/package/cookie-parser -[node-version-image]: https://img.shields.io/node/v/cookie-parser.svg -[node-version-url]: https://nodejs.org/en/download -[travis-image]: https://img.shields.io/travis/expressjs/cookie-parser/master.svg -[travis-url]: https://travis-ci.org/expressjs/cookie-parser -[coveralls-image]: https://img.shields.io/coveralls/expressjs/cookie-parser/master.svg -[coveralls-url]: https://coveralls.io/r/expressjs/cookie-parser?branch=master -[downloads-image]: https://img.shields.io/npm/dm/cookie-parser.svg -[downloads-url]: https://npmjs.org/package/cookie-parser diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/index.js deleted file mode 100644 index 59816a22..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/index.js +++ /dev/null @@ -1,181 +0,0 @@ -/*! - * cookie-parser - * Copyright(c) 2014 TJ Holowaychuk - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var cookie = require('cookie'); -var signature = require('cookie-signature'); - -/** - * Module exports. - * @public - */ - -module.exports = cookieParser; -module.exports.JSONCookie = JSONCookie; -module.exports.JSONCookies = JSONCookies; -module.exports.signedCookie = signedCookie; -module.exports.signedCookies = signedCookies; - -/** - * Parse Cookie header and populate `req.cookies` - * with an object keyed by the cookie names. - * - * @param {string|array} [secret] A string (or array of strings) representing cookie signing secret(s). - * @param {Object} [options] - * @return {Function} - * @public - */ - -function cookieParser(secret, options) { - return function cookieParser(req, res, next) { - if (req.cookies) { - return next(); - } - - var cookies = req.headers.cookie; - var secrets = !secret || Array.isArray(secret) - ? (secret || []) - : [secret]; - - req.secret = secrets[0]; - req.cookies = Object.create(null); - req.signedCookies = Object.create(null); - - // no cookies - if (!cookies) { - return next(); - } - - req.cookies = cookie.parse(cookies, options); - - // parse signed cookies - if (secrets.length !== 0) { - req.signedCookies = signedCookies(req.cookies, secrets); - req.signedCookies = JSONCookies(req.signedCookies); - } - - // parse JSON cookies - req.cookies = JSONCookies(req.cookies); - - next(); - }; -} - -/** - * Parse JSON cookie string. - * - * @param {String} str - * @return {Object} Parsed object or undefined if not json cookie - * @public - */ - -function JSONCookie(str) { - if (typeof str !== 'string' || str.substr(0, 2) !== 'j:') { - return undefined; - } - - try { - return JSON.parse(str.slice(2)); - } catch (err) { - return undefined; - } -} - -/** - * Parse JSON cookies. - * - * @param {Object} obj - * @return {Object} - * @public - */ - -function JSONCookies(obj) { - var cookies = Object.keys(obj); - var key; - var val; - - for (var i = 0; i < cookies.length; i++) { - key = cookies[i]; - val = JSONCookie(obj[key]); - - if (val) { - obj[key] = val; - } - } - - return obj; -} - -/** - * Parse a signed cookie string, return the decoded value. - * - * @param {String} str signed cookie string - * @param {string|array} secret - * @return {String} decoded value - * @public - */ - -function signedCookie(str, secret) { - if (typeof str !== 'string') { - return undefined; - } - - if (str.substr(0, 2) !== 's:') { - return str; - } - - var secrets = !secret || Array.isArray(secret) - ? (secret || []) - : [secret]; - - for (var i = 0; i < secrets.length; i++) { - var val = signature.unsign(str.slice(2), secrets[i]); - - if (val !== false) { - return val; - } - } - - return false; -} - -/** - * Parse signed cookies, returning an object containing the decoded key/value - * pairs, while removing the signed key from obj. - * - * @param {Object} obj - * @param {string|array} secret - * @return {Object} - * @public - */ - -function signedCookies(obj, secret) { - var cookies = Object.keys(obj); - var dec; - var key; - var ret = Object.create(null); - var val; - - for (var i = 0; i < cookies.length; i++) { - key = cookies[i]; - val = obj[key]; - dec = signedCookie(val, secret); - - if (val !== dec) { - ret[key] = dec; - delete obj[key]; - } - } - - return ret; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/.npmignore deleted file mode 100644 index f1250e58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -support -test -examples -*.sock diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/History.md deleted file mode 100644 index 78513cc3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/History.md +++ /dev/null @@ -1,38 +0,0 @@ -1.0.6 / 2015-02-03 -================== - -* use `npm test` instead of `make test` to run tests -* clearer assertion messages when checking input - - -1.0.5 / 2014-09-05 -================== - -* add license to package.json - -1.0.4 / 2014-06-25 -================== - - * corrected avoidance of timing attacks (thanks @tenbits!) - -1.0.3 / 2014-01-28 -================== - - * [incorrect] fix for timing attacks - -1.0.2 / 2014-01-28 -================== - - * fix missing repository warning - * fix typo in test - -1.0.1 / 2013-04-15 -================== - - * Revert "Changed underlying HMAC algo. to sha512." - * Revert "Fix for timing attacks on MAC verification." - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/Readme.md deleted file mode 100644 index 2559e841..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/Readme.md +++ /dev/null @@ -1,42 +0,0 @@ - -# cookie-signature - - Sign and unsign cookies. - -## Example - -```js -var cookie = require('cookie-signature'); - -var val = cookie.sign('hello', 'tobiiscool'); -val.should.equal('hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI'); - -var val = cookie.sign('hello', 'tobiiscool'); -cookie.unsign(val, 'tobiiscool').should.equal('hello'); -cookie.unsign(val, 'luna').should.be.false; -``` - -## License - -(The MIT License) - -Copyright (c) 2012 LearnBoost <tj@learnboost.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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/index.js deleted file mode 100644 index b8c9463a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/index.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Module dependencies. - */ - -var crypto = require('crypto'); - -/** - * Sign the given `val` with `secret`. - * - * @param {String} val - * @param {String} secret - * @return {String} - * @api private - */ - -exports.sign = function(val, secret){ - if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string."); - if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); - return val + '.' + crypto - .createHmac('sha256', secret) - .update(val) - .digest('base64') - .replace(/\=+$/, ''); -}; - -/** - * Unsign and decode the given `val` with `secret`, - * returning `false` if the signature is invalid. - * - * @param {String} val - * @param {String} secret - * @return {String|Boolean} - * @api private - */ - -exports.unsign = function(val, secret){ - if ('string' != typeof val) throw new TypeError("Signed cookie string must be provided."); - if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); - var str = val.slice(0, val.lastIndexOf('.')) - , mac = exports.sign(str, secret); - - return sha1(mac) == sha1(val) ? str : false; -}; - -/** - * Private - */ - -function sha1(str){ - return crypto.createHash('sha1').update(str).digest('hex'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/package.json deleted file mode 100644 index f564ea54..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie-signature/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "cookie-signature", - "version": "1.0.6", - "description": "Sign and unsign cookies", - "keywords": [ - "cookie", - "sign", - "unsign" - ], - "author": { - "name": "TJ Holowaychuk", - "email": "tj@learnboost.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/visionmedia/node-cookie-signature.git" - }, - "dependencies": {}, - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "scripts": { - "test": "mocha --require should --reporter spec" - }, - "main": "index", - "gitHead": "391b56cf44d88c493491b7e3fc53208cfb976d2a", - "bugs": { - "url": "https://github.com/visionmedia/node-cookie-signature/issues" - }, - "homepage": "https://github.com/visionmedia/node-cookie-signature", - "_id": "cookie-signature@1.0.6", - "_shasum": "e303a882b342cc3ee8ca513a79999734dab3ae2c", - "_from": "cookie-signature@1.0.6", - "_npmVersion": "2.3.0", - "_nodeVersion": "0.10.36", - "_npmUser": { - "name": "natevw", - "email": "natevw@yahoo.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "natevw", - "email": "natevw@yahoo.com" - } - ], - "dist": { - "shasum": "e303a882b342cc3ee8ca513a79999734dab3ae2c", - "tarball": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/HISTORY.md deleted file mode 100644 index 5bd64854..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/HISTORY.md +++ /dev/null @@ -1,118 +0,0 @@ -0.3.1 / 2016-05-26 -================== - - * Fix `sameSite: true` to work with draft-7 clients - - `true` now sends `SameSite=Strict` instead of `SameSite` - -0.3.0 / 2016-05-26 -================== - - * Add `sameSite` option - - Replaces `firstPartyOnly` option, never implemented by browsers - * Improve error message when `encode` is not a function - * Improve error message when `expires` is not a `Date` - -0.2.4 / 2016-05-20 -================== - - * perf: enable strict mode - * perf: use for loop in parse - * perf: use string concatination for serialization - -0.2.3 / 2015-10-25 -================== - - * Fix cookie `Max-Age` to never be a floating point number - -0.2.2 / 2015-09-17 -================== - - * Fix regression when setting empty cookie value - - Ease the new restriction, which is just basic header-level validation - * Fix typo in invalid value errors - -0.2.1 / 2015-09-17 -================== - - * Throw on invalid values provided to `serialize` - - Ensures the resulting string is a valid HTTP header value - -0.2.0 / 2015-08-13 -================== - - * Add `firstPartyOnly` option - * Throw better error for invalid argument to parse - * perf: hoist regular expression - -0.1.5 / 2015-09-17 -================== - - * Fix regression when setting empty cookie value - - Ease the new restriction, which is just basic header-level validation - * Fix typo in invalid value errors - -0.1.4 / 2015-09-17 -================== - - * Throw better error for invalid argument to parse - * Throw on invalid values provided to `serialize` - - Ensures the resulting string is a valid HTTP header value - -0.1.3 / 2015-05-19 -================== - - * Reduce the scope of try-catch deopt - * Remove argument reassignments - -0.1.2 / 2014-04-16 -================== - - * Remove unnecessary files from npm package - -0.1.1 / 2014-02-23 -================== - - * Fix bad parse when cookie value contained a comma - * Fix support for `maxAge` of `0` - -0.1.0 / 2013-05-01 -================== - - * Add `decode` option - * Add `encode` option - -0.0.6 / 2013-04-08 -================== - - * Ignore cookie parts missing `=` - -0.0.5 / 2012-10-29 -================== - - * Return raw cookie value if value unescape errors - -0.0.4 / 2012-06-21 -================== - - * Use encode/decodeURIComponent for cookie encoding/decoding - - Improve server/client interoperability - -0.0.3 / 2012-06-06 -================== - - * Only escape special characters per the cookie RFC - -0.0.2 / 2012-06-01 -================== - - * Fix `maxAge` option to not throw error - -0.0.1 / 2012-05-28 -================== - - * Add more tests - -0.0.0 / 2012-05-28 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/LICENSE deleted file mode 100644 index 058b6b4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 Roman Shtylman -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/README.md deleted file mode 100644 index db0d0782..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/README.md +++ /dev/null @@ -1,220 +0,0 @@ -# cookie - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Basic HTTP cookie parser and serializer for HTTP servers. - -## Installation - -```sh -$ npm install cookie -``` - -## API - -```js -var cookie = require('cookie'); -``` - -### cookie.parse(str, options) - -Parse an HTTP `Cookie` header string and returning an object of all cookie name-value pairs. -The `str` argument is the string representing a `Cookie` header value and `options` is an -optional object containing additional parsing options. - -```js -var cookies = cookie.parse('foo=bar; equation=E%3Dmc%5E2'); -// { foo: 'bar', equation: 'E=mc^2' } -``` - -#### Options - -`cookie.parse` accepts these properties in the options object. - -##### decode - -Specifies a function that will be used to decode a cookie's value. Since the value of a cookie -has a limited character set (and must be a simple string), this function can be used to decode -a previously-encoded cookie value into a JavaScript string or other object. - -The default function is the global `decodeURIComponent`, which will decode any URL-encoded -sequences into their byte representations. - -**note** if an error is thrown from this function, the original, non-decoded cookie value will -be returned as the cookie's value. - -### cookie.serialize(name, value, options) - -Serialize a cookie name-value pair into a `Set-Cookie` header string. The `name` argument is the -name for the cookie, the `value` argument is the value to set the cookie to, and the `options` -argument is an optional object containing additional serialization options. - -```js -var setCookie = cookie.serialize('foo', 'bar'); -// foo=bar -``` - -#### Options - -`cookie.serialize` accepts these properties in the options object. - -##### domain - -Specifies the value for the [`Domain` `Set-Cookie` attribute][rfc-6266-5.2.3]. By default, no -domain is set, and most clients will consider the cookie to apply to only the current domain. - -##### encode - -Specifies a function that will be used to encode a cookie's value. Since value of a cookie -has a limited character set (and must be a simple string), this function can be used to encode -a value into a string suited for a cookie's value. - -The default function is the global `ecodeURIComponent`, which will encode a JavaScript string -into UTF-8 byte sequences and then URL-encode any that fall outside of the cookie range. - -##### expires - -Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute][rfc-6266-5.2.1]. -By default, no expiration is set, and most clients will consider this a "non-persistent cookie" and -will delete it on a condition like exiting a web browser application. - -**note** the [cookie storage model specification][rfc-6266-5.3] states that if both `expires` and -`magAge` are set, then `maxAge` takes precedence, but it is possiblke not all clients by obey this, -so if both are set, they should point to the same date and time. - -##### httpOnly - -Specifies the `boolean` value for the [`HttpOnly` `Set-Cookie` attribute][rfc-6266-5.2.6]. When truthy, -the `HttpOnly` attribute is set, otherwise it is not. By default, the `HttpOnly` attribute is not set. - -**note** be careful when setting this to `true`, as compliant clients will not allow client-side -JavaScript to see the cookie in `document.cookie`. - -##### maxAge - -Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute][rfc-6266-5.2.2]. -The given number will be converted to an integer by rounding down. By default, no maximum age is set. - -**note** the [cookie storage model specification][rfc-6266-5.3] states that if both `expires` and -`magAge` are set, then `maxAge` takes precedence, but it is possiblke not all clients by obey this, -so if both are set, they should point to the same date and time. - -##### path - -Specifies the value for the [`Path` `Set-Cookie` attribute][rfc-6266-5.2.4]. By default, the path -is considered the ["default path"][rfc-6266-5.1.4]. By default, no maximum age is set, and most -clients will consider this a "non-persistent cookie" and will delete it on a condition like exiting -a web browser application. - -##### sameSite - -Specifies the `boolean` or `string` to be the value for the [`SameSite` `Set-Cookie` attribute][draft-west-first-party-cookies-07]. - - - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement. - - `false` will not set the `SameSite` attribute. - - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement. - - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement. - -More information about the different enforcement levels can be found in the specification -https://tools.ietf.org/html/draft-west-first-party-cookies-07#section-4.1.1 - -**note** This is an attribute that has not yet been fully standardized, and may change in the future. -This also means many clients may ignore this attribute until they understand it. - -##### secure - -Specifies the `boolean` value for the [`Secure` `Set-Cookie` attribute][rfc-6266-5.2.5]. When truthy, -the `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set. - -**note** be careful when setting this to `true`, as compliant clients will not send the cookie back to -the server in the future if the browser does not have an HTTPS connection. - -## Example - -The following example uses this module in conjunction with the Node.js core HTTP server -to prompt a user for their name and display it back on future visits. - -```js -var cookie = require('cookie'); -var escapeHtml = require('escape-html'); -var http = require('http'); -var url = require('url'); - -function onRequest(req, res) { - // Parse the query string - var query = url.parse(req.url, true, true).query; - - if (query && query.name) { - // Set a new cookie with the name - res.setHeader('Set-Cookie', cookie.serialize('name', String(query.name), { - httpOnly: true, - maxAge: 60 * 60 * 24 * 7 // 1 week - })); - - // Redirect back after setting cookie - res.statusCode = 302; - res.setHeader('Location', req.headers.referer || '/'); - res.end(); - return; - } - - // Parse the cookies on the request - var cookies = cookie.parse(req.headers.cookie || ''); - - // Get the visitor name set in the cookie - var name = cookies.name; - - res.setHeader('Content-Type', 'text/html; charset=UTF-8'); - - if (name) { - res.write('

      Welcome back, ' + escapeHtml(name) + '!

      '); - } else { - res.write('

      Hello, new visitor!

      '); - } - - res.write('
      '); - res.write(' '); - res.end(' values - * - * @param {string} str - * @param {object} [options] - * @return {object} - * @public - */ - -function parse(str, options) { - if (typeof str !== 'string') { - throw new TypeError('argument str must be a string'); - } - - var obj = {} - var opt = options || {}; - var pairs = str.split(pairSplitRegExp); - var dec = opt.decode || decode; - - for (var i = 0; i < pairs.length; i++) { - var pair = pairs[i]; - var eq_idx = pair.indexOf('='); - - // skip things that don't look like key=value - if (eq_idx < 0) { - continue; - } - - var key = pair.substr(0, eq_idx).trim() - var val = pair.substr(++eq_idx, pair.length).trim(); - - // quoted values - if ('"' == val[0]) { - val = val.slice(1, -1); - } - - // only assign once - if (undefined == obj[key]) { - obj[key] = tryDecode(val, dec); - } - } - - return obj; -} - -/** - * Serialize data into a cookie header. - * - * Serialize the a name value pair into a cookie string suitable for - * http headers. An optional options object specified cookie parameters. - * - * serialize('foo', 'bar', { httpOnly: true }) - * => "foo=bar; httpOnly" - * - * @param {string} name - * @param {string} val - * @param {object} [options] - * @return {string} - * @public - */ - -function serialize(name, val, options) { - var opt = options || {}; - var enc = opt.encode || encode; - - if (typeof enc !== 'function') { - throw new TypeError('option encode is invalid'); - } - - if (!fieldContentRegExp.test(name)) { - throw new TypeError('argument name is invalid'); - } - - var value = enc(val); - - if (value && !fieldContentRegExp.test(value)) { - throw new TypeError('argument val is invalid'); - } - - var str = name + '=' + value; - - if (null != opt.maxAge) { - var maxAge = opt.maxAge - 0; - if (isNaN(maxAge)) throw new Error('maxAge should be a Number'); - str += '; Max-Age=' + Math.floor(maxAge); - } - - if (opt.domain) { - if (!fieldContentRegExp.test(opt.domain)) { - throw new TypeError('option domain is invalid'); - } - - str += '; Domain=' + opt.domain; - } - - if (opt.path) { - if (!fieldContentRegExp.test(opt.path)) { - throw new TypeError('option path is invalid'); - } - - str += '; Path=' + opt.path; - } - - if (opt.expires) { - if (typeof opt.expires.toUTCString !== 'function') { - throw new TypeError('option expires is invalid'); - } - - str += '; Expires=' + opt.expires.toUTCString(); - } - - if (opt.httpOnly) { - str += '; HttpOnly'; - } - - if (opt.secure) { - str += '; Secure'; - } - - if (opt.sameSite) { - var sameSite = typeof opt.sameSite === 'string' - ? opt.sameSite.toLowerCase() : opt.sameSite; - - switch (sameSite) { - case true: - str += '; SameSite=Strict'; - break; - case 'lax': - str += '; SameSite=Lax'; - break; - case 'strict': - str += '; SameSite=Strict'; - break; - default: - throw new TypeError('option sameSite is invalid'); - } - } - - return str; -} - -/** - * Try decoding a string using a decoding function. - * - * @param {string} str - * @param {function} decode - * @private - */ - -function tryDecode(str, decode) { - try { - return decode(str); - } catch (e) { - return str; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/package.json deleted file mode 100644 index bb3556a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/node_modules/cookie/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "cookie", - "description": "HTTP server cookie parsing and serialization", - "version": "0.3.1", - "author": { - "name": "Roman Shtylman", - "email": "shtylman@gmail.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "keywords": [ - "cookie", - "cookies" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/cookie.git" - }, - "devDependencies": { - "istanbul": "0.4.3", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - }, - "gitHead": "e3c77d497d66c8b8d4b677b8954c1b192a09f0b3", - "bugs": { - "url": "https://github.com/jshttp/cookie/issues" - }, - "homepage": "https://github.com/jshttp/cookie", - "_id": "cookie@0.3.1", - "_shasum": "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb", - "_from": "cookie@0.3.1", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb", - "tarball": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/cookie-0.3.1.tgz_1464323556714_0.6435900838114321" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/package.json deleted file mode 100644 index 88c75748..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/cookie-parser/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "name": "cookie-parser", - "description": "cookie parsing with signatures", - "version": "1.4.3", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": "http://tjholowaychuk.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/expressjs/cookie-parser.git" - }, - "keywords": [ - "cookie", - "middleware" - ], - "dependencies": { - "cookie": "0.3.1", - "cookie-signature": "1.0.6" - }, - "devDependencies": { - "istanbul": "0.4.3", - "mocha": "2.5.3", - "supertest": "1.1.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">= 0.8.0" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "ad0b2cb834affe3929f0a690cd0494cd0b96d6be", - "bugs": { - "url": "https://github.com/expressjs/cookie-parser/issues" - }, - "homepage": "https://github.com/expressjs/cookie-parser", - "_id": "cookie-parser@1.4.3", - "_shasum": "0fe31fa19d000b95f4aadf1f53fdc2b8a203baa5", - "_from": "cookie-parser@>=1.4.1 <1.5.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "0fe31fa19d000b95f4aadf1f53fdc2b8a203baa5", - "tarball": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.3.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/cookie-parser-1.4.3.tgz_1464325360032_0.20419598533771932" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/.jshintrc deleted file mode 100644 index 52f928dc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/.jshintrc +++ /dev/null @@ -1,69 +0,0 @@ -{ - // Settings - "passfail" : false, // Stop on first error. - "maxerr" : 50, // Maximum error before stopping. - - - // Predefined globals whom JSHint will ignore. - "browser" : true, // Standard browser globals e.g. `window`, `document`. - "couch" : false, - "dojo" : false, - "jquery" : false, - "mootools" : false, - "node" : false, - "prototypejs" : false, - "rhino" : false, - "wsh" : false, - - // Custom globals. - "predef" : [ - "define", - "require" - ], - - - // Development. - "debug" : false, // Allow debugger statements e.g. browser breakpoints. - "devel" : false, // Allow developments statements e.g. `console.log();`. - - - // EcmaScript 5. - "es5" : false, // Allow EcmaScript 5 syntax. - "globalstrict" : false, // Allow global "use strict" (also enables 'strict'). - "strict" : false, // Require `use strict` pragma in every file. - - - // The Good Parts. - "asi" : false, // Tolerate Automatic Semicolon Insertion (no semicolons). - "bitwise" : false, // Prohibit bitwise operators (&, |, ^, etc.). - "boss" : true, // Tolerate assignments inside if, for & while. Usually conditions & loops are for comparison, not assignments. - "curly" : false, // Require {} for every new block or scope. - "eqeqeq" : true, // Require triple equals i.e. `===`. - "eqnull" : true, // Tolerate use of `== null`. - "evil" : false, // Tolerate use of `eval`. - "expr" : false, // Tolerate `ExpressionStatement` as Programs. - "forin" : false, // Tolerate `for in` loops without `hasOwnPrototype`. - "immed" : true, // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );` - "latedef" : false, // Prohibit variable use before definition. - "laxbreak" : false, // Tolerate unsafe line breaks e.g. `return [\n] x` without semicolons. - "loopfunc" : false, // Allow functions to be defined within loops. - "noarg" : true, // Prohibit use of `arguments.caller` and `arguments.callee`. - "regexdash" : true, // Tolerate unescaped last dash i.e. `[-...]`. - "regexp" : false, // Prohibit `.` and `[^...]` in regular expressions. - "scripturl" : false, // Tolerate script-targeted URLs. - "shadow" : false, // Allows re-define variables later in code e.g. `var x=1; x=2;`. - "supernew" : false, // Tolerate `new function () { ... };` and `new Object;`. - "undef" : false, // Require all non-global variables be declared before they are used. - - - // Personal styling prefrences. - "newcap" : true, // Require capitalization of all constructor functions e.g. `new F()`. - "noempty" : true, // Prohipit use of empty blocks. - "nomen" : false, // Prohibit use of initial or trailing underbars in names. - "nonew" : true, // Prohibit use of constructors for side-effects. - "onevar" : false, // Allow only one `var` statement per function. - "plusplus" : false, // Prohibit use of `++` & `--`. - "sub" : false, // Tolerate all forms of subscript notation besides dot notation e.g. `dict['key']` instead of `dict.key`. - "trailing" : true, // Prohibit trailing whitespaces. - "white" : false // Check against strict whitespace and indentation rules. -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/.npmignore deleted file mode 100644 index a1d06cd4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -dev/ -_assets/ -build.xml -.travis.yml diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/CHANGELOG.md deleted file mode 100644 index 277b2c20..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/CHANGELOG.md +++ /dev/null @@ -1,212 +0,0 @@ -# Crossroads.js Changelog # - -## v0.12.1 (2015/07/08) ## - - - allow multiple query parameters with same name (#128) - -## v0.12.0 (2013/01/21) ## - - - improve `Route.interpolate()` to support query strings. (#76) - - make it possible to have a different patternLexer per router. (#67) - - add trailing/leading ";" to crossroads.min.js to avoid concat issues. (#73) - - improve UMD wrapper so crossroads.min.js should also work with r.js. - - -## v0.11.0 (2012/10/31) ## - -### API Changes - - - add `crossroads.pipe()` and `crossroads.unpipe()` (#70) - - added way to toggle case sensitivity `crossroads.ignoreCase`, default is - `true` (#53) - - add `crossroads.ignoreState`. (#57) - -### Improvements - - - `decodeQueryString()` now respects `shouldTypecast` (#71) - - changed `Route.rules` array validation to be case insensitive if - `crossroads.ignoreCase = true` (#49) - - - -## v0.10.0 (2012/08/12) ## - -### Improvements - - - Avoid dispatching the routed/bypassed/matched signals if passing same - request in subsequent calls. (#57) - - Add `crossroads.resetState()` (#66) - - - -## v0.9.1 (2012/07/29) ## - -### Fixes - - - Normalize optional segments behavior on IE 7-8 (#58, #59, #60) - - Fix `captureVals` on IE 7-8, make sure global flag works properly (#61, #62, - #63) - -### Improvements - - - `Route.interpolate()` accepts Numbers as segments. (#54) - - -## v0.9.0 (2012/05/28) ## - -### API Changes ### - - - added `crossroads.greedy` (#46) - - added `crossroads.greedyEnabled` (#46) - - added `crossroads.patternLexer.strict()` and - `crossroads.patternLexer.loose()` and - `crossroads.patternLexer.legacy()` (#35) - - added `Route.interpolate()` (#34) - - added query string support (#33) - -### Fixes - - - `Route.switched` is only dispatched if matching a different route. (#50) - -### Other - - - change default behavior of slashes at begin/end of request (#35) - - query string support affected old segment rules, now `?` is considered as - a segment divisor as `/` otherwise optional query string RegExp wouldn't - match proper segment if following a required segment. (#33) - - - -## v0.8.0 (2012/03/05) ## - -### API Changes ### - - - added `Route.switched` (#37) - - added `crossroads.NORM_AS_ARRAY`, `crossroads.NORM_AS_OBJECT` (#31) - - added option to pass default arguments to `crossroads.parse()` (#44) - - added rest segments support (#43) - -### Other ### - - - change build to Node.js - - change minifier to UglifyJS. - - - -## v0.7.1 (2012/01/06) ## - -### Fixes ### - - - avoid calling `rules.normalize_` during validation step (#39) - - - -## v0.7.0 (2011/11/02) ## - -### API Changes ### - - - added `crossroads.normalizeFn` (#31) - - added `vals_` Array to values object passed to `normalize_` and - `crossroads.normalizeFn` to increase flexibility. (#31) - - added `Route.greedy` support. (#20) - - changed parameters dispatched by `crossroads.routed` signal, passes request - as first param and a data object as second param. (#20) - -### Other ### - - - improve parameter typecasting. (#32) - - refactoring for better code compression and also simplified some logic to - increase code readability. - - - -## v0.6.0 (2011/08/31) ## - -## API Changes ## - - - changed `crossroads.shouldTypecast` default value to `false` (#23) - - added magic rule to normalize route params before dispatch `rules.normalize_`. (#21) - - added crossroads.VERSION - -### Fixes ### - - - fix optional "/" between required params. (#25) - - only test optional params if value != null. (#26) - - fix CommonJS wrapper, wasn't exporting crossroads properly (#27) - -### Other ### - - - Migrated unit tests from YUI to Jasmine to allow testing on nodejs and also - because it runs locally and gives better error messages. Increased a lot the - number of tests that helped to spot a few edge cases. (#5) - - Changed wrapper to generate a single distribution file that runs on all - environments. (#27) - - - -## v0.5.0 (2011/08/17) ## - -### API Changes ### - - - added numbered rules for RegExp pattern and alias to segments (#16) - - added support to optional segments (#17) - - added property `crossroads.shouldTypecast` to enable/disable typecasting - segments values. (#18) - - added support to multiple instances (#19) - -### Other ### - - - Refactored `crossroads` core object to make it cleaner. - -### Fixes ### - - - fix trailing slash before optional param (#22) - - - -## v0.4 (2011/06/06) ## - -### API Changes ### - - - added magic rule to validate whole request `rules.request_`. (#14) - -### Other ### - - - changed behavior of trailing slash at the end of string pattern so it doesn't affect route anymore (#12). - - added NPM package. - - - -## v0.3 (2011/05/03) ## - -### API Changes ### - - - added support for RegExp route pattern. (#8) - - added signal `routed` to crossroads. (#9) - - added commonjs module wrapper. - - - -## v0.2 (2011/04/14) ## - -### API Changes ### - - - added priority param to `addRoute`. (#2) - -### Other ### - - - added "js-signals" as module dependency on AMD version. - - - -## v0.1.1 (2011/04/14) ## - -### Fixes ### - - - safe guarded from empty `parse` calls. - - - -## v0.1 (2011/04/14) ## - - - initial release with basic features support. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/README.md deleted file mode 100644 index 4bd08b8f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/README.md +++ /dev/null @@ -1,105 +0,0 @@ -[![Build Status](https://secure.travis-ci.org/millermedeiros/crossroads.js.svg)](https://travis-ci.org/millermedeiros/crossroads.js) - ---- - -![Crossroads - JavaScript Routes](https://github.com/millermedeiros/crossroads.js/raw/master/_assets/crossroads_logo.png) - - -## Introduction ## - -Crossroads.js is a routing library inspired by URL Route/Dispatch utilities present on frameworks like Rails, Pyramid, Django, CakePHP, CodeIgniter, etc... -It parses a string input and decides which action should be executed by matching the string against multiple patterns. - -If used properly it can reduce code complexity by decoupling objects and also by abstracting navigation paths. - -See [project page](http://millermedeiros.github.com/crossroads.js/) for documentation and more details. - - - - -## Links ## - - - [Project page and documentation](http://millermedeiros.github.com/crossroads.js/) - - [Usage examples](https://github.com/millermedeiros/crossroads.js/wiki/Examples) - - [Changelog](https://github.com/millermedeiros/crossroads.js/blob/master/CHANGELOG.md) - - - -## Dependencies ## - -**This library requires [JS-Signals](http://millermedeiros.github.com/js-signals/) to work.** - - - -## License ## - -[MIT License](http://www.opensource.org/licenses/mit-license.php) - - - -## Distribution Files ## - -Files inside `dist` folder. - - * crossroads.js : Uncompressed source code with comments. - * crossroads.min.js : Compressed code. - -You can install Crossroads on Node.js using [NPM](http://npmjs.org/) - - npm install crossroads - - - -## Repository Structure ## - -### Folder Structure ### - - dev -> development files - |- lib -> 3rd-party libraries - |- src -> source files - |- tests -> unit tests - dist -> distribution files - -### Branches ### - - master -> always contain code from the latest stable version - release-** -> code canditate for the next stable version (alpha/beta) - dev -> main development branch (nightly) - gh-pages -> project page - **other** -> features/hotfixes/experimental, probably non-stable code - - - -## Building your own ## - -This project uses [Node.js](http://nodejs.org/) for the build process. If for some reason you need to build a custom version install Node.js and run: - - node build - -This will delete all JS files inside the `dist` folder, merge/update/compress source files and copy the output to the `dist` folder. - -**IMPORTANT:** `dist` folder always contain the latest version, regular users should **not** need to run build task. - - - -## Running unit tests ## - -### On the browser ### - -Open `dev/tests/spec_runner-dist.html` on your browser. - -`spec_runner-dist` tests `dist/crossroads.js` and `spec_runner-dev` tests files inside -`dev/src` - they all run the same specs. - - -### On Node.js ### - -Install [npm](http://npmjs.org) and run: - -``` -npm install --dev -npm test -``` - -Each time you run `npm test` the files inside the `dist` folder will be updated -(it executes `node build` as a `pretest` script). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/build.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/build.js deleted file mode 100644 index 04dcdff0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/build.js +++ /dev/null @@ -1,99 +0,0 @@ - -var FILE_ENCODING = 'utf-8', - SRC_DIR = 'dev/src', - DIST_DIR = 'dist', - DIST_NAME = 'crossroads.js', - DIST_MIN_NAME = 'crossroads.min.js', - DIST_PATH = DIST_DIR +'/'+ DIST_NAME, - DIST_MIN_PATH = DIST_DIR +'/'+ DIST_MIN_NAME; - - -var _fs = require('fs'), - _path = require('path'), - _pkg = JSON.parse(readFile('package.json')), - _now = new Date(), - _replacements = { - NAME : _pkg.name, - AUTHOR : _pkg.author.name, - VERSION_NUMBER : _pkg.version, - HOMEPAGE : _pkg.homepage, - LICENSE : _pkg.license, - BUILD_DATE : _now.getUTCFullYear() +'/'+ pad(_now.getUTCMonth() + 1) +'/'+ pad(_now.getUTCDate()) +' '+ pad(_now.getUTCHours()) +':'+ pad(_now.getUTCMinutes()) - }; - - -function purgeDeploy(){ - [DIST_PATH, DIST_MIN_PATH].forEach(function(filePath){ - if( _fs.existsSync(filePath) ){ - _fs.unlinkSync(filePath); - } - }); - console.log(' purged deploy.'); -} - - -function build(){ - var wrapper = readFile(SRC_DIR + '/wrapper.js'), - deploy = tmpl(wrapper, { - LICENSE : readFile(SRC_DIR + '/license.txt'), - INTRO_JS : readFile(SRC_DIR + '/intro.js'), - CROSSROADS_JS : readFile(SRC_DIR + '/crossroads.js'), - ROUTE_JS : readFile(SRC_DIR + '/route.js'), - LEXER_JS : readFile(SRC_DIR + '/pattern_lexer.js') - }, /\/\/::(\w+)::\/\//g); - - _fs.writeFileSync(DIST_PATH, tmpl(deploy, _replacements), FILE_ENCODING); - console.log(' '+ DIST_PATH +' built.'); -} - - -function readFile(filePath) { - return _fs.readFileSync(filePath, FILE_ENCODING); -} - - -function tmpl(template, data, regexp){ - function replaceFn(match, prop){ - return (prop in data)? data[prop] : ''; - } - return template.replace(regexp || /::(\w+)::/g, replaceFn); -} - - -function uglify(srcPath) { - var - uglyfyJS = require('uglify-js'), - jsp = uglyfyJS.parser, - pro = uglyfyJS.uglify, - ast = jsp.parse( _fs.readFileSync(srcPath, FILE_ENCODING) ); - - ast = pro.ast_mangle(ast); - ast = pro.ast_squeeze(ast); - - return pro.gen_code(ast); -} - - -function minify(){ - var license = tmpl( readFile(SRC_DIR +'/license.txt'), _replacements ); - // we add a leading/trailing ";" to avoid concat issues (#73) - _fs.writeFileSync(DIST_MIN_PATH, license +';'+ uglify(DIST_PATH) +';', FILE_ENCODING); - console.log(' '+ DIST_MIN_PATH +' built.'); -} - - -function pad(val){ - val = String(val); - if (val.length < 2) { - return '0'+ val; - } else { - return val; - } -} - - -// --- run --- -purgeDeploy(); -build(); -minify(); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/dist/crossroads.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/dist/crossroads.js deleted file mode 100644 index ceb490dc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/dist/crossroads.js +++ /dev/null @@ -1,725 +0,0 @@ -/** @license - * crossroads - * Author: Miller Medeiros | MIT License - * v0.12.2 (2015/07/31 18:37) - */ - -(function () { -var factory = function (signals) { - - var crossroads, - _hasOptionalGroupBug, - UNDEF; - - // Helpers ----------- - //==================== - - // IE 7-8 capture optional groups as empty strings while other browsers - // capture as `undefined` - _hasOptionalGroupBug = (/t(.+)?/).exec('t')[1] === ''; - - function arrayIndexOf(arr, val) { - if (arr.indexOf) { - return arr.indexOf(val); - } else { - //Array.indexOf doesn't work on IE 6-7 - var n = arr.length; - while (n--) { - if (arr[n] === val) { - return n; - } - } - return -1; - } - } - - function arrayRemove(arr, item) { - var i = arrayIndexOf(arr, item); - if (i !== -1) { - arr.splice(i, 1); - } - } - - function isKind(val, kind) { - return '[object '+ kind +']' === Object.prototype.toString.call(val); - } - - function isRegExp(val) { - return isKind(val, 'RegExp'); - } - - function isArray(val) { - return isKind(val, 'Array'); - } - - function isFunction(val) { - return typeof val === 'function'; - } - - //borrowed from AMD-utils - function typecastValue(val) { - var r; - if (val === null || val === 'null') { - r = null; - } else if (val === 'true') { - r = true; - } else if (val === 'false') { - r = false; - } else if (val === UNDEF || val === 'undefined') { - r = UNDEF; - } else if (val === '' || isNaN(val)) { - //isNaN('') returns false - r = val; - } else { - //parseFloat(null || '') returns NaN - r = parseFloat(val); - } - return r; - } - - function typecastArrayValues(values) { - var n = values.length, - result = []; - while (n--) { - result[n] = typecastValue(values[n]); - } - return result; - } - - // borrowed from MOUT - function decodeQueryString(queryStr, shouldTypecast) { - var queryArr = (queryStr || '').replace('?', '').split('&'), - reg = /([^=]+)=(.+)/, - i = -1, - obj = {}, - equalIndex, cur, pValue, pName; - - while ((cur = queryArr[++i])) { - equalIndex = cur.indexOf('='); - pName = cur.substring(0, equalIndex); - pValue = decodeURIComponent(cur.substring(equalIndex + 1)); - if (shouldTypecast !== false) { - pValue = typecastValue(pValue); - } - if (pName in obj){ - if(isArray(obj[pName])){ - obj[pName].push(pValue); - } else { - obj[pName] = [obj[pName], pValue]; - } - } else { - obj[pName] = pValue; - } - } - return obj; - } - - - // Crossroads -------- - //==================== - - /** - * @constructor - */ - function Crossroads() { - this.bypassed = new signals.Signal(); - this.routed = new signals.Signal(); - this._routes = []; - this._prevRoutes = []; - this._piped = []; - this.resetState(); - } - - Crossroads.prototype = { - - greedy : false, - - greedyEnabled : true, - - ignoreCase : true, - - ignoreState : false, - - shouldTypecast : false, - - normalizeFn : null, - - resetState : function(){ - this._prevRoutes.length = 0; - this._prevMatchedRequest = null; - this._prevBypassedRequest = null; - }, - - create : function () { - return new Crossroads(); - }, - - addRoute : function (pattern, callback, priority) { - var route = new Route(pattern, callback, priority, this); - this._sortedInsert(route); - return route; - }, - - removeRoute : function (route) { - arrayRemove(this._routes, route); - route._destroy(); - }, - - removeAllRoutes : function () { - var n = this.getNumRoutes(); - while (n--) { - this._routes[n]._destroy(); - } - this._routes.length = 0; - }, - - parse : function (request, defaultArgs) { - request = request || ''; - defaultArgs = defaultArgs || []; - - // should only care about different requests if ignoreState isn't true - if ( !this.ignoreState && - (request === this._prevMatchedRequest || - request === this._prevBypassedRequest) ) { - return; - } - - var routes = this._getMatchedRoutes(request), - i = 0, - n = routes.length, - cur; - - if (n) { - this._prevMatchedRequest = request; - - this._notifyPrevRoutes(routes, request); - this._prevRoutes = routes; - //should be incremental loop, execute routes in order - while (i < n) { - cur = routes[i]; - cur.route.matched.dispatch.apply(cur.route.matched, defaultArgs.concat(cur.params)); - cur.isFirst = !i; - this.routed.dispatch.apply(this.routed, defaultArgs.concat([request, cur])); - i += 1; - } - } else { - this._prevBypassedRequest = request; - this.bypassed.dispatch.apply(this.bypassed, defaultArgs.concat([request])); - } - - this._pipeParse(request, defaultArgs); - }, - - _notifyPrevRoutes : function(matchedRoutes, request) { - var i = 0, prev; - while (prev = this._prevRoutes[i++]) { - //check if switched exist since route may be disposed - if(prev.route.switched && this._didSwitch(prev.route, matchedRoutes)) { - prev.route.switched.dispatch(request); - } - } - }, - - _didSwitch : function (route, matchedRoutes){ - var matched, - i = 0; - while (matched = matchedRoutes[i++]) { - // only dispatch switched if it is going to a different route - if (matched.route === route) { - return false; - } - } - return true; - }, - - _pipeParse : function(request, defaultArgs) { - var i = 0, route; - while (route = this._piped[i++]) { - route.parse(request, defaultArgs); - } - }, - - getNumRoutes : function () { - return this._routes.length; - }, - - _sortedInsert : function (route) { - //simplified insertion sort - var routes = this._routes, - n = routes.length; - do { --n; } while (routes[n] && route._priority <= routes[n]._priority); - routes.splice(n+1, 0, route); - }, - - _getMatchedRoutes : function (request) { - var res = [], - routes = this._routes, - n = routes.length, - route; - //should be decrement loop since higher priorities are added at the end of array - while (route = routes[--n]) { - if ((!res.length || this.greedy || route.greedy) && route.match(request)) { - res.push({ - route : route, - params : route._getParamsArray(request) - }); - } - if (!this.greedyEnabled && res.length) { - break; - } - } - return res; - }, - - pipe : function (otherRouter) { - this._piped.push(otherRouter); - }, - - unpipe : function (otherRouter) { - arrayRemove(this._piped, otherRouter); - }, - - toString : function () { - return '[crossroads numRoutes:'+ this.getNumRoutes() +']'; - } - }; - - //"static" instance - crossroads = new Crossroads(); - crossroads.VERSION = '0.12.2'; - - crossroads.NORM_AS_ARRAY = function (req, vals) { - return [vals.vals_]; - }; - - crossroads.NORM_AS_OBJECT = function (req, vals) { - return [vals]; - }; - - - // Route -------------- - //===================== - - /** - * @constructor - */ - function Route(pattern, callback, priority, router) { - var isRegexPattern = isRegExp(pattern), - patternLexer = router.patternLexer; - this._router = router; - this._pattern = pattern; - this._paramsIds = isRegexPattern? null : patternLexer.getParamIds(pattern); - this._optionalParamsIds = isRegexPattern? null : patternLexer.getOptionalParamsIds(pattern); - this._matchRegexp = isRegexPattern? pattern : patternLexer.compilePattern(pattern, router.ignoreCase); - this.matched = new signals.Signal(); - this.switched = new signals.Signal(); - if (callback) { - this.matched.add(callback); - } - this._priority = priority || 0; - } - - Route.prototype = { - - greedy : false, - - rules : void(0), - - match : function (request) { - request = request || ''; - return this._matchRegexp.test(request) && this._validateParams(request); //validate params even if regexp because of `request_` rule. - }, - - _validateParams : function (request) { - var rules = this.rules, - values = this._getParamsObject(request), - key; - for (key in rules) { - // normalize_ isn't a validation rule... (#39) - if(key !== 'normalize_' && rules.hasOwnProperty(key) && ! this._isValidParam(request, key, values)){ - return false; - } - } - return true; - }, - - _isValidParam : function (request, prop, values) { - var validationRule = this.rules[prop], - val = values[prop], - isValid = false, - isQuery = (prop.indexOf('?') === 0); - - if (val == null && this._optionalParamsIds && arrayIndexOf(this._optionalParamsIds, prop) !== -1) { - isValid = true; - } - else if (isRegExp(validationRule)) { - if (isQuery) { - val = values[prop +'_']; //use raw string - } - isValid = validationRule.test(val); - } - else if (isArray(validationRule)) { - if (isQuery) { - val = values[prop +'_']; //use raw string - } - isValid = this._isValidArrayRule(validationRule, val); - } - else if (isFunction(validationRule)) { - isValid = validationRule(val, request, values); - } - - return isValid; //fail silently if validationRule is from an unsupported type - }, - - _isValidArrayRule : function (arr, val) { - if (! this._router.ignoreCase) { - return arrayIndexOf(arr, val) !== -1; - } - - if (typeof val === 'string') { - val = val.toLowerCase(); - } - - var n = arr.length, - item, - compareVal; - - while (n--) { - item = arr[n]; - compareVal = (typeof item === 'string')? item.toLowerCase() : item; - if (compareVal === val) { - return true; - } - } - return false; - }, - - _getParamsObject : function (request) { - var shouldTypecast = this._router.shouldTypecast, - values = this._router.patternLexer.getParamValues(request, this._matchRegexp, shouldTypecast), - o = {}, - n = values.length, - param, val; - while (n--) { - val = values[n]; - if (this._paramsIds) { - param = this._paramsIds[n]; - if (param.indexOf('?') === 0 && val) { - //make a copy of the original string so array and - //RegExp validation can be applied properly - o[param +'_'] = val; - //update vals_ array as well since it will be used - //during dispatch - val = decodeQueryString(val, shouldTypecast); - values[n] = val; - } - // IE will capture optional groups as empty strings while other - // browsers will capture `undefined` so normalize behavior. - // see: #gh-58, #gh-59, #gh-60 - if ( _hasOptionalGroupBug && val === '' && arrayIndexOf(this._optionalParamsIds, param) !== -1 ) { - val = void(0); - values[n] = val; - } - o[param] = val; - } - //alias to paths and for RegExp pattern - o[n] = val; - } - o.request_ = shouldTypecast? typecastValue(request) : request; - o.vals_ = values; - return o; - }, - - _getParamsArray : function (request) { - var norm = this.rules? this.rules.normalize_ : null, - params; - norm = norm || this._router.normalizeFn; // default normalize - if (norm && isFunction(norm)) { - params = norm(request, this._getParamsObject(request)); - } else { - params = this._getParamsObject(request).vals_; - } - return params; - }, - - interpolate : function(replacements) { - var str = this._router.patternLexer.interpolate(this._pattern, replacements); - if (! this._validateParams(str) ) { - throw new Error('Generated string doesn\'t validate against `Route.rules`.'); - } - return str; - }, - - dispose : function () { - this._router.removeRoute(this); - }, - - _destroy : function () { - this.matched.dispose(); - this.switched.dispose(); - this.matched = this.switched = this._pattern = this._matchRegexp = null; - }, - - toString : function () { - return '[Route pattern:"'+ this._pattern +'", numListeners:'+ this.matched.getNumListeners() +']'; - } - - }; - - - - // Pattern Lexer ------ - //===================== - - Crossroads.prototype.patternLexer = (function () { - - var - //match chars that should be escaped on string regexp - ESCAPE_CHARS_REGEXP = /[\\.+*?\^$\[\](){}\/'#]/g, - - //trailing slashes (begin/end of string) - LOOSE_SLASHES_REGEXP = /^\/|\/$/g, - LEGACY_SLASHES_REGEXP = /\/$/g, - - //params - everything between `{ }` or `: :` - PARAMS_REGEXP = /(?:\{|:)([^}:]+)(?:\}|:)/g, - - //used to save params during compile (avoid escaping things that - //shouldn't be escaped). - TOKENS = { - 'OS' : { - //optional slashes - //slash between `::` or `}:` or `\w:` or `:{?` or `}{?` or `\w{?` - rgx : /([:}]|\w(?=\/))\/?(:|(?:\{\?))/g, - save : '$1{{id}}$2', - res : '\\/?' - }, - 'RS' : { - //required slashes - //used to insert slash between `:{` and `}{` - rgx : /([:}])\/?(\{)/g, - save : '$1{{id}}$2', - res : '\\/' - }, - 'RQ' : { - //required query string - everything in between `{? }` - rgx : /\{\?([^}]+)\}/g, - //everything from `?` till `#` or end of string - res : '\\?([^#]+)' - }, - 'OQ' : { - //optional query string - everything in between `:? :` - rgx : /:\?([^:]+):/g, - //everything from `?` till `#` or end of string - res : '(?:\\?([^#]*))?' - }, - 'OR' : { - //optional rest - everything in between `: *:` - rgx : /:([^:]+)\*:/g, - res : '(.*)?' // optional group to avoid passing empty string as captured - }, - 'RR' : { - //rest param - everything in between `{ *}` - rgx : /\{([^}]+)\*\}/g, - res : '(.+)' - }, - // required/optional params should come after rest segments - 'RP' : { - //required params - everything between `{ }` - rgx : /\{([^}]+)\}/g, - res : '([^\\/?]+)' - }, - 'OP' : { - //optional params - everything between `: :` - rgx : /:([^:]+):/g, - res : '([^\\/?]+)?\/?' - } - }, - - LOOSE_SLASH = 1, - STRICT_SLASH = 2, - LEGACY_SLASH = 3, - - _slashMode = LOOSE_SLASH; - - - function precompileTokens(){ - var key, cur; - for (key in TOKENS) { - if (TOKENS.hasOwnProperty(key)) { - cur = TOKENS[key]; - cur.id = '__CR_'+ key +'__'; - cur.save = ('save' in cur)? cur.save.replace('{{id}}', cur.id) : cur.id; - cur.rRestore = new RegExp(cur.id, 'g'); - } - } - } - precompileTokens(); - - - function captureVals(regex, pattern) { - var vals = [], match; - // very important to reset lastIndex since RegExp can have "g" flag - // and multiple runs might affect the result, specially if matching - // same string multiple times on IE 7-8 - regex.lastIndex = 0; - while (match = regex.exec(pattern)) { - vals.push(match[1]); - } - return vals; - } - - function getParamIds(pattern) { - return captureVals(PARAMS_REGEXP, pattern); - } - - function getOptionalParamsIds(pattern) { - return captureVals(TOKENS.OP.rgx, pattern); - } - - function compilePattern(pattern, ignoreCase) { - pattern = pattern || ''; - - if(pattern){ - if (_slashMode === LOOSE_SLASH) { - pattern = pattern.replace(LOOSE_SLASHES_REGEXP, ''); - } - else if (_slashMode === LEGACY_SLASH) { - pattern = pattern.replace(LEGACY_SLASHES_REGEXP, ''); - } - - //save tokens - pattern = replaceTokens(pattern, 'rgx', 'save'); - //regexp escape - pattern = pattern.replace(ESCAPE_CHARS_REGEXP, '\\$&'); - //restore tokens - pattern = replaceTokens(pattern, 'rRestore', 'res'); - - if (_slashMode === LOOSE_SLASH) { - pattern = '\\/?'+ pattern; - } - } - - if (_slashMode !== STRICT_SLASH) { - //single slash is treated as empty and end slash is optional - pattern += '\\/?'; - } - return new RegExp('^'+ pattern + '$', ignoreCase? 'i' : ''); - } - - function replaceTokens(pattern, regexpName, replaceName) { - var cur, key; - for (key in TOKENS) { - if (TOKENS.hasOwnProperty(key)) { - cur = TOKENS[key]; - pattern = pattern.replace(cur[regexpName], cur[replaceName]); - } - } - return pattern; - } - - function getParamValues(request, regexp, shouldTypecast) { - var vals = regexp.exec(request); - if (vals) { - vals.shift(); - if (shouldTypecast) { - vals = typecastArrayValues(vals); - } - } - return vals; - } - - function interpolate(pattern, replacements) { - // default to an empty object because pattern might have just - // optional arguments - replacements = replacements || {}; - if (typeof pattern !== 'string') { - throw new Error('Route pattern should be a string.'); - } - - var replaceFn = function(match, prop){ - var val; - prop = (prop.substr(0, 1) === '?')? prop.substr(1) : prop; - if (replacements[prop] != null) { - if (typeof replacements[prop] === 'object') { - var queryParts = [], rep; - for(var key in replacements[prop]) { - rep = replacements[prop][key]; - if (isArray(rep)) { - for (var k in rep) { - if ( key.slice(-2) == '[]' ) { - queryParts.push(encodeURI(key.slice(0, -2)) + '[]=' + encodeURI(rep[k])); - } else { - queryParts.push(encodeURI(key + '=' + rep[k])); - } - } - } - else { - queryParts.push(encodeURI(key + '=' + rep)); - } - } - val = '?' + queryParts.join('&'); - } else { - // make sure value is a string see #gh-54 - val = String(replacements[prop]); - } - - if (match.indexOf('*') === -1 && val.indexOf('/') !== -1) { - throw new Error('Invalid value "'+ val +'" for segment "'+ match +'".'); - } - } - else if (match.indexOf('{') !== -1) { - throw new Error('The segment '+ match +' is required.'); - } - else { - val = ''; - } - return val; - }; - - if (! TOKENS.OS.trail) { - TOKENS.OS.trail = new RegExp('(?:'+ TOKENS.OS.id +')+$'); - } - - return pattern - .replace(TOKENS.OS.rgx, TOKENS.OS.save) - .replace(PARAMS_REGEXP, replaceFn) - .replace(TOKENS.OS.trail, '') // remove trailing - .replace(TOKENS.OS.rRestore, '/'); // add slash between segments - } - - //API - return { - strict : function(){ - _slashMode = STRICT_SLASH; - }, - loose : function(){ - _slashMode = LOOSE_SLASH; - }, - legacy : function(){ - _slashMode = LEGACY_SLASH; - }, - getParamIds : getParamIds, - getOptionalParamsIds : getOptionalParamsIds, - getParamValues : getParamValues, - compilePattern : compilePattern, - interpolate : interpolate - }; - - }()); - - - return crossroads; -}; - -if (typeof define === 'function' && define.amd) { - define(['signals'], factory); -} else if (typeof module !== 'undefined' && module.exports) { //Node - module.exports = factory(require('signals')); -} else { - /*jshint sub:true */ - window['crossroads'] = factory(window['signals']); -} - -}()); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/dist/crossroads.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/dist/crossroads.min.js deleted file mode 100644 index f7b449dc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/dist/crossroads.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** @license - * crossroads - * Author: Miller Medeiros | MIT License - * v0.12.2 (2015/07/31 18:37) - */ -;(function(){var a=function(a){function e(a,b){if(a.indexOf)return a.indexOf(b);var c=a.length;while(c--)if(a[c]===b)return c;return-1}function f(a,b){var c=e(a,b);c!==-1&&a.splice(c,1)}function g(a,b){return"[object "+b+"]"===Object.prototype.toString.call(a)}function h(a){return g(a,"RegExp")}function i(a){return g(a,"Array")}function j(a){return typeof a=="function"}function k(a){var b;return a===null||a==="null"?b=null:a==="true"?b=!0:a==="false"?b=!1:a===d||a==="undefined"?b=d:a===""||isNaN(a)?b=a:b=parseFloat(a),b}function l(a){var b=a.length,c=[];while(b--)c[b]=k(a[b]);return c}function m(a,b){var c=(a||"").replace("?","").split("&"),d=/([^=]+)=(.+)/,e=-1,f={},g,h,j,l;while(h=c[++e])g=h.indexOf("="),l=h.substring(0,g),j=decodeURIComponent(h.substring(g+1)),b!==!1&&(j=k(j)),l in f?i(f[l])?f[l].push(j):f[l]=[f[l],j]:f[l]=j;return f}function n(){this.bypassed=new a.Signal,this.routed=new a.Signal,this._routes=[],this._prevRoutes=[],this._piped=[],this.resetState()}function o(b,c,d,e){var f=h(b),g=e.patternLexer;this._router=e,this._pattern=b,this._paramsIds=f?null:g.getParamIds(b),this._optionalParamsIds=f?null:g.getOptionalParamsIds(b),this._matchRegexp=f?b:g.compilePattern(b,e.ignoreCase),this.matched=new a.Signal,this.switched=new a.Signal,c&&this.matched.add(c),this._priority=d||0}var b,c,d;return c=/t(.+)?/.exec("t")[1]==="",n.prototype={greedy:!1,greedyEnabled:!0,ignoreCase:!0,ignoreState:!1,shouldTypecast:!1,normalizeFn:null,resetState:function(){this._prevRoutes.length=0,this._prevMatchedRequest=null,this._prevBypassedRequest=null},create:function(){return new n},addRoute:function(a,b,c){var d=new o(a,b,c,this);return this._sortedInsert(d),d},removeRoute:function(a){f(this._routes,a),a._destroy()},removeAllRoutes:function(){var a=this.getNumRoutes();while(a--)this._routes[a]._destroy();this._routes.length=0},parse:function(a,b){a=a||"",b=b||[];if(!this.ignoreState&&(a===this._prevMatchedRequest||a===this._prevBypassedRequest))return;var c=this._getMatchedRoutes(a),d=0,e=c.length,f;if(e){this._prevMatchedRequest=a,this._notifyPrevRoutes(c,a),this._prevRoutes=c;while(d=0.12.2 <0.13.0", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.12.0", - "_npmUser": { - "name": "millermedeiros", - "email": "miller@millermedeiros.com" - }, - "maintainers": [ - { - "name": "millermedeiros", - "email": "miller@millermedeiros.com" - } - ], - "dist": { - "shasum": "b1d5f9c1d98af3bdd61f1bda6a86dd1aee4ff8f2", - "tarball": "https://registry.npmjs.org/crossroads/-/crossroads-0.12.2.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/crossroads/-/crossroads-0.12.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/testacular.conf.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/testacular.conf.js deleted file mode 100644 index dbedc7f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/crossroads/testacular.conf.js +++ /dev/null @@ -1,69 +0,0 @@ -// Testacular configuration -// Generated on Sun Dec 09 2012 21:44:01 GMT-0200 (BRST) - - -// base path, that will be used to resolve files and exclude -basePath = '.'; - - -// list of files / patterns to load in the browser -files = [ - JASMINE, - JASMINE_ADAPTER, - 'dev/lib/signals.js', - 'dev/src/intro.js', - 'dev/src/crossroads.js', - 'dev/src/route.js', - 'dev/src/pattern_lexer.js', - 'dev/tests/spec/*.spec.js' -]; - - -// list of files to exclude -exclude = []; - - -// test results reporter to use -// possible values: 'dots', 'progress', 'junit' -reporters = ['progress']; - - -// web server port -port = 8080; - - -// cli runner port -runnerPort = 9100; - - -// enable / disable colors in the output (reporters and logs) -colors = true; - - -// level of logging -// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG -logLevel = LOG_INFO; - - -// enable / disable watching file and executing tests whenever any file changes -autoWatch = true; - - -// Start these browsers, currently available: -// - Chrome -// - ChromeCanary -// - Firefox -// - Opera -// - Safari (only Mac) -// - PhantomJS -// - IE (only Windows) -browsers = ['ChromeCanary', 'Firefox', 'Safari']; - - -// If browser does not capture in given timeout [ms], kill it -captureTimeout = 5000; - - -// Continuous Integration mode -// if true, it capture browsers, run tests and exit -singleRun = false; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/LICENSE deleted file mode 100644 index f676a810..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright 2014 Rodrigo Fernandes https://rtfpessoa.github.io/ - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/README.md deleted file mode 100644 index dd5ef2b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/README.md +++ /dev/null @@ -1,118 +0,0 @@ -# Diff to Html by [rtfpessoa](https://github.com/rtfpessoa) - -Diff to Html generates pretty HTML diffs from git diff output. - -## Features - -* `line-by-line` and `side-by-side` diff - -* new and old line numbers - -* inserted and removed lines - -* GitHub like style - -* Code syntax highlight - -* Line similarity matching - -## Online Example - -> Go to [Diff2HTML](http://rtfpessoa.github.io/diff2html/) - -## Distributions - -* [WebJar](http://www.webjars.org/) - -* [Node Module](https://www.npmjs.org/package/diff2html) - -* [Bower Package](http://bower.io/search/?q=diff2html) - -* [Node CLI](https://www.npmjs.org/package/diff2html-cli) - -* Manually download and import `dist/diff2html.min.js` into your page - -## How to use - -> Pretty HTML diff - - Diff2Html.getPrettyHtml(exInput, configuration) - -> Intermediate Json From Git Word Diff Output - - Diff2Html.getJsonFromDiff(exInput) - -> Check out the `index.html` for a complete example. - -## Configuration -The HTML output accepts a Javascript object with configuration. Possible options: - - - `inputFormat`: the format of the input data: `'diff'` or `'json'`, default is `'diff'` - - `outputFormat`: the format of the output data: `'line-by-line'` or `'side-by-side'`, default is `'line-by-line'` - - `showFiles`: show a file list before the diff: `true` or `false`, default is `false` - - `matching`: matching level: `'lines'` for matching lines, `'words'` for matching lines and words or `'none'`, default is `none` - - `matchWordsThreshold`: similarity threshold for word matching, default is 0.25 - - -## Syntax Highlight - -> Add the dependencies. -Choose one color scheme, and add the main highlight code. -If your favourite language is not included in the default package also add its javascript highlight file. - -```html - - - - - - -``` - -> Invoke the highlightjs plugin - -```js -document.addEventListener("DOMContentLoaded", function () { - // parse the diff to json - var diffJson = Diff2Html.getJsonFromDiff(lineDiffExample); - - // collect all the file extensions in the json - var allFileLanguages = diffJson.map(function (line) { - return line.language; - }); - - // remove duplicated languages - var distinctLanguages = allFileLanguages.filter(function (v, i) { - return allFileLanguages.indexOf(v) == i; - }); - - // pass the languages to the highlightjs plugin - hljs.configure({languages: distinctLanguages}); - - // generate and inject the diff HTML into the desired place - document.getElementById("line-by-line").innerHTML = Diff2Html.getPrettyHtml(diffJson, { inputFormat: 'json' }); - document.getElementById("side-by-side").innerHTML = Diff2Html.getPrettyHtml(diffJson, { inputFormat: 'json', outputFormat: 'side-by-side' }); - - // collect all the code lines and execute the highlight on them - var codeLines = document.getElementsByClassName("d2h-code-line-ctn"); - [].forEach.call(codeLines, function (line) { - hljs.highlightBlock(line); - }); -}); -``` - -## Contributions - -All the contributions are welcome. - -To contribute just send a pull request with your changes and I will review it asap. - -## License - -Copyright 2014 Rodrigo Fernandes. Released under the terms of the MIT license. - -## Thanks - -This project is inspired in [pretty-diff](https://github.com/scottgonzalez/pretty-diff) by [Scott González](https://github.com/scottgonzalez). - ---- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/CONTRIBUTING.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/CONTRIBUTING.md deleted file mode 100644 index 989a6c00..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/CONTRIBUTING.md +++ /dev/null @@ -1,39 +0,0 @@ -# How to Contribute - -## Pull Requests - -We also accept [pull requests][pull-request]! - -Generally we like to see pull requests that -- Maintain the existing code style -- Are focused on a single change (i.e. avoid large refactoring or style adjustments in untouched code if not the primary goal of the pull request) -- Have [good commit messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) -- Have tests -- Don't decrease the current code coverage (see coverage/lcov-report/index.html) - -## Building - -``` -npm install -grunt -```` - -The `grunt dev` implements watching for tests within Node and `karma start` may be used for manual testing in browsers. - -If you notice any problems, please report them to the GitHub issue tracker at -[http://github.com/kpdecker/jsdiff/issues](http://github.com/kpdecker/jsdiff/issues). - -## Releasing - -JsDiff utilizes the [release yeoman generator][generator-release] to perform most release tasks. - -A full release may be completed with the following: - -``` -yo release -npm publish -yo release:publish components jsdiff dist/components/ -``` - -[generator-release]: https://github.com/walmartlabs/generator-release -[pull-request]: https://github.com/kpdecker/jsdiff/pull/new/master diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/LICENSE deleted file mode 100644 index 4e7146ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ -Software License Agreement (BSD License) - -Copyright (c) 2009-2015, Kevin Decker - -All rights reserved. - -Redistribution and use of this software 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 Kevin Decker 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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/README.md deleted file mode 100644 index 39842cc2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/README.md +++ /dev/null @@ -1,193 +0,0 @@ -# jsdiff - -[![Build Status](https://secure.travis-ci.org/kpdecker/jsdiff.svg)](http://travis-ci.org/kpdecker/jsdiff) -[![Sauce Test Status](https://saucelabs.com/buildstatus/jsdiff)](https://saucelabs.com/u/jsdiff) - -A javascript text differencing implementation. - -Based on the algorithm proposed in -["An O(ND) Difference Algorithm and its Variations" (Myers, 1986)](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927). - -## Installation - - npm install diff - -or - - bower install jsdiff - - -## API - -* `JsDiff.diffChars(oldStr, newStr[, options])` - diffs two blocks of text, comparing character by character. - - Returns a list of change objects (See below). - -* `JsDiff.diffWords(oldStr, newStr[, options])` - diffs two blocks of text, comparing word by word, ignoring whitespace. - - Returns a list of change objects (See below). - -* `JsDiff.diffWordsWithSpace(oldStr, newStr[, options])` - diffs two blocks of text, comparing word by word, treating whitespace as significant. - - Returns a list of change objects (See below). - -* `JsDiff.diffLines(oldStr, newStr[, options])` - diffs two blocks of text, comparing line by line. - - Options - * `ignoreWhitespace`: `true` to ignore leading and trailing whitespace. This is the same as `diffTrimmedLines` - * `newlineIsToken`: `true` to treat newline characters as separate tokens. This allows for changes to the newline structure to occur independently of the line content and to be treated as such. In general this is the more human friendly form of `diffLines` and `diffLines` is better suited for patches and other computer friendly output. - - Returns a list of change objects (See below). - -* `JsDiff.diffTrimmedLines(oldStr, newStr[, options])` - diffs two blocks of text, comparing line by line, ignoring leading and trailing whitespace. - - Returns a list of change objects (See below). - -* `JsDiff.diffSentences(oldStr, newStr[, options])` - diffs two blocks of text, comparing sentence by sentence. - - Returns a list of change objects (See below). - -* `JsDiff.diffCss(oldStr, newStr[, options])` - diffs two blocks of text, comparing CSS tokens. - - Returns a list of change objects (See below). - -* `JsDiff.diffJson(oldObj, newObj[, options])` - diffs two JSON objects, comparing the fields defined on each. The order of fields, etc does not matter in this comparison. - - Returns a list of change objects (See below). - -* `JsDiff.createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader)` - creates a unified diff patch. - - Parameters: - * `oldFileName` : String to be output in the filename section of the patch for the removals - * `newFileName` : String to be output in the filename section of the patch for the additions - * `oldStr` : Original string value - * `newStr` : New string value - * `oldHeader` : Additional information to include in the old file header - * `newHeader` : Additional information to include in the new file header - * `options` : An object with options. Currently, only `context` is supported and describes how many lines of context should be included. - -* `JsDiff.createPatch(fileName, oldStr, newStr, oldHeader, newHeader)` - creates a unified diff patch. - - Just like JsDiff.createTwoFilesPatch, but with oldFileName being equal to newFileName. - - -* `JsDiff.structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)` - returns an object with an array of hunk objects. - - This method is similar to createTwoFilesPatch, but returns a data structure - suitable for further processing. Parameters are the same as createTwoFilesPatch. The data structure returned may look like this: - - ```js - { - oldFileName: 'oldfile', newFileName: 'newfile', - oldHeader: 'header1', newHeader: 'header2', - hunks: [{ - oldStart: 1, oldLines: 3, newStart: 1, newLines: 3, - lines: [' line2', ' line3', '-line4', '+line5', '\\ No newline at end of file'], - }] - } - ``` - -* `JsDiff.applyPatch(source, patch[, options])` - applies a unified diff patch. - - Return a string containing new version of provided data. `patch` may be a string diff or the output from the `parsePatch` or `structuredPatch` methods. - - The optional `options` object may have the following keys: - - - `fuzzFactor`: Number of lines that are allowed to differ before rejecting a patch. Defaults to 0. - - `compareLine(lineNumber, line, operation, patchContent)`: Callback used to compare to given lines to determine if they should be considered equal when patching. Defaults to strict equality but may be overriden to provide fuzzier comparison. Should return false if the lines should be rejected. - -* `JsDiff.applyPatches(patch, options)` - applies one or more patches. - - This method will iterate over the contents of the patch and apply to data provided through callbacks. The general flow for each patch index is: - - - `options.loadFile(index, callback)` is called. The caller should then load the contents of the file and then pass that to the `callback(err, data)` callback. Passing an `err` will terminate further patch execution. - - `options.patched(index, content)` is called once the patch has been applied. `content` will be the return value from `applyPatch`. - - Once all patches have been applied or an error occurs, the `options.complete(err)` callback is made. - -* `JsDiff.parsePatch(diffStr)` - Parses a patch into structured data - - Return a JSON object representation of the a patch, suitable for use with the `applyPatch` method. This parses to the same structure returned by `JsDiff.structuredPatch`. - -* `convertChangesToXML(changes)` - converts a list of changes to a serialized XML format - - -All methods above which accept the optional `callback` method will run in sync mode when that parameter is omitted and in async mode when supplied. This allows for larger diffs without blocking the event loop. This may be passed either directly as the final parameter or as the `callback` field in the `options` object. - -### Change Objects -Many of the methods above return change objects. These objects consist of the following fields: - -* `value`: Text content -* `added`: True if the value was inserted into the new string -* `removed`: True of the value was removed from the old string - -Note that some cases may omit a particular flag field. Comparison on the flag fields should always be done in a truthy or falsy manner. - -## Examples - -Basic example in Node - -```js -require('colors') -var jsdiff = require('diff'); - -var one = 'beep boop'; -var other = 'beep boob blah'; - -var diff = jsdiff.diffChars(one, other); - -diff.forEach(function(part){ - // green for additions, red for deletions - // grey for common parts - var color = part.added ? 'green' : - part.removed ? 'red' : 'grey'; - process.stderr.write(part.value[color]); -}); - -console.log() -``` -Running the above program should yield - -Node Example - -Basic example in a web page - -```html -
      
      -
      -
      -```
      -
      -Open the above .html file in a browser and you should see
      -
      -Node Example
      -
      -**[Full online demo](http://kpdecker.github.com/jsdiff)**
      -
      -## Compatibility
      -
      -[![Sauce Test Status](https://saucelabs.com/browser-matrix/jsdiff.svg)](https://saucelabs.com/u/jsdiff)
      -
      -jsdiff supports all ES3 environments with some known issues on IE8 and below. Under these browsers some diff algorithms such as word diff and others may fail due to lack of support for capturing groups in the `split` operation.
      -
      -## License
      -
      -See [LICENSE](https://github.com/kpdecker/jsdiff/blob/master/LICENSE).
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/dist/diff.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/dist/diff.js
      deleted file mode 100644
      index 43c200e1..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/dist/diff.js
      +++ /dev/null
      @@ -1,1341 +0,0 @@
      -/*!
      -
      - diff v2.2.3
      -
      -Software License Agreement (BSD License)
      -
      -Copyright (c) 2009-2015, Kevin Decker 
      -
      -All rights reserved.
      -
      -Redistribution and use of this software 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 Kevin Decker 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.
      -@license
      -*/
      -(function webpackUniversalModuleDefinition(root, factory) {
      -	if(typeof exports === 'object' && typeof module === 'object')
      -		module.exports = factory();
      -	else if(typeof define === 'function' && define.amd)
      -		define([], factory);
      -	else if(typeof exports === 'object')
      -		exports["JsDiff"] = factory();
      -	else
      -		root["JsDiff"] = factory();
      -})(this, function() {
      -return /******/ (function(modules) { // webpackBootstrap
      -/******/ 	// The module cache
      -/******/ 	var installedModules = {};
      -
      -/******/ 	// The require function
      -/******/ 	function __webpack_require__(moduleId) {
      -
      -/******/ 		// Check if module is in cache
      -/******/ 		if(installedModules[moduleId])
      -/******/ 			return installedModules[moduleId].exports;
      -
      -/******/ 		// Create a new module (and put it into the cache)
      -/******/ 		var module = installedModules[moduleId] = {
      -/******/ 			exports: {},
      -/******/ 			id: moduleId,
      -/******/ 			loaded: false
      -/******/ 		};
      -
      -/******/ 		// Execute the module function
      -/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
      -
      -/******/ 		// Flag the module as loaded
      -/******/ 		module.loaded = true;
      -
      -/******/ 		// Return the exports of the module
      -/******/ 		return module.exports;
      -/******/ 	}
      -
      -
      -/******/ 	// expose the modules object (__webpack_modules__)
      -/******/ 	__webpack_require__.m = modules;
      -
      -/******/ 	// expose the module cache
      -/******/ 	__webpack_require__.c = installedModules;
      -
      -/******/ 	// __webpack_public_path__
      -/******/ 	__webpack_require__.p = "";
      -
      -/******/ 	// Load entry module and return exports
      -/******/ 	return __webpack_require__(0);
      -/******/ })
      -/************************************************************************/
      -/******/ ([
      -/* 0 */
      -/***/ function(module, exports, __webpack_require__) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.diffJson = exports.diffCss = exports.diffSentences = exports.diffTrimmedLines = exports.diffLines = exports.diffWordsWithSpace = exports.diffWords = exports.diffChars = exports.Diff = undefined;
      -	/*istanbul ignore end*/
      -	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	var _base2 = _interopRequireDefault(_base);
      -
      -	/*istanbul ignore end*/
      -	var /*istanbul ignore start*/_character = __webpack_require__(2) /*istanbul ignore end*/;
      -
      -	var /*istanbul ignore start*/_word = __webpack_require__(3) /*istanbul ignore end*/;
      -
      -	var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/;
      -
      -	var /*istanbul ignore start*/_sentence = __webpack_require__(6) /*istanbul ignore end*/;
      -
      -	var /*istanbul ignore start*/_css = __webpack_require__(7) /*istanbul ignore end*/;
      -
      -	var /*istanbul ignore start*/_json = __webpack_require__(8) /*istanbul ignore end*/;
      -
      -	var /*istanbul ignore start*/_apply = __webpack_require__(9) /*istanbul ignore end*/;
      -
      -	var /*istanbul ignore start*/_parse = __webpack_require__(10) /*istanbul ignore end*/;
      -
      -	var /*istanbul ignore start*/_create = __webpack_require__(12) /*istanbul ignore end*/;
      -
      -	var /*istanbul ignore start*/_dmp = __webpack_require__(13) /*istanbul ignore end*/;
      -
      -	var /*istanbul ignore start*/_xml = __webpack_require__(14) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -	/* See LICENSE file for terms of use */
      -
      -	/*
      -	 * Text diff implementation.
      -	 *
      -	 * This library supports the following APIS:
      -	 * JsDiff.diffChars: Character by character diff
      -	 * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace
      -	 * JsDiff.diffLines: Line based diff
      -	 *
      -	 * JsDiff.diffCss: Diff targeted at CSS content
      -	 *
      -	 * These methods are based on the implementation proposed in
      -	 * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986).
      -	 * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927
      -	 */
      -	exports. /*istanbul ignore end*/Diff = _base2.default;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffChars = _character.diffChars;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWords = _word.diffWords;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = _word.diffWordsWithSpace;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffLines = _line.diffLines;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = _line.diffTrimmedLines;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffSentences = _sentence.diffSentences;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffCss = _css.diffCss;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffJson = _json.diffJson;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/structuredPatch = _create.structuredPatch;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = _create.createTwoFilesPatch;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = _create.createPatch;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatch = _apply.applyPatch;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = _apply.applyPatches;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/parsePatch = _parse.parsePatch;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToDMP = _dmp.convertChangesToDMP;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToXML = _xml.convertChangesToXML;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = _json.canonicalize;
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWdCQTs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnQ0FHRTt5REFFQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFFQTt5REFDQTt5REFFQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFDQSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFNlZSBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zIG9mIHVzZSAqL1xuXG4vKlxuICogVGV4dCBkaWZmIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIFRoaXMgbGlicmFyeSBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIEFQSVM6XG4gKiBKc0RpZmYuZGlmZkNoYXJzOiBDaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIGRpZmZcbiAqIEpzRGlmZi5kaWZmV29yZHM6IFdvcmQgKGFzIGRlZmluZWQgYnkgXFxiIHJlZ2V4KSBkaWZmIHdoaWNoIGlnbm9yZXMgd2hpdGVzcGFjZVxuICogSnNEaWZmLmRpZmZMaW5lczogTGluZSBiYXNlZCBkaWZmXG4gKlxuICogSnNEaWZmLmRpZmZDc3M6IERpZmYgdGFyZ2V0ZWQgYXQgQ1NTIGNvbnRlbnRcbiAqXG4gKiBUaGVzZSBtZXRob2RzIGFyZSBiYXNlZCBvbiB0aGUgaW1wbGVtZW50YXRpb24gcHJvcG9zZWQgaW5cbiAqIFwiQW4gTyhORCkgRGlmZmVyZW5jZSBBbGdvcml0aG0gYW5kIGl0cyBWYXJpYXRpb25zXCIgKE15ZXJzLCAxOTg2KS5cbiAqIGh0dHA6Ly9jaXRlc2VlcnguaXN0LnBzdS5lZHUvdmlld2RvYy9zdW1tYXJ5P2RvaT0xMC4xLjEuNC42OTI3XG4gKi9cbmltcG9ydCBEaWZmIGZyb20gJy4vZGlmZi9iYXNlJztcbmltcG9ydCB7ZGlmZkNoYXJzfSBmcm9tICcuL2RpZmYvY2hhcmFjdGVyJztcbmltcG9ydCB7ZGlmZldvcmRzLCBkaWZmV29yZHNXaXRoU3BhY2V9IGZyb20gJy4vZGlmZi93b3JkJztcbmltcG9ydCB7ZGlmZkxpbmVzLCBkaWZmVHJpbW1lZExpbmVzfSBmcm9tICcuL2RpZmYvbGluZSc7XG5pbXBvcnQge2RpZmZTZW50ZW5jZXN9IGZyb20gJy4vZGlmZi9zZW50ZW5jZSc7XG5cbmltcG9ydCB7ZGlmZkNzc30gZnJvbSAnLi9kaWZmL2Nzcyc7XG5pbXBvcnQge2RpZmZKc29uLCBjYW5vbmljYWxpemV9IGZyb20gJy4vZGlmZi9qc29uJztcblxuaW1wb3J0IHthcHBseVBhdGNoLCBhcHBseVBhdGNoZXN9IGZyb20gJy4vcGF0Y2gvYXBwbHknO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhdGNoL3BhcnNlJztcbmltcG9ydCB7c3RydWN0dXJlZFBhdGNoLCBjcmVhdGVUd29GaWxlc1BhdGNoLCBjcmVhdGVQYXRjaH0gZnJvbSAnLi9wYXRjaC9jcmVhdGUnO1xuXG5pbXBvcnQge2NvbnZlcnRDaGFuZ2VzVG9ETVB9IGZyb20gJy4vY29udmVydC9kbXAnO1xuaW1wb3J0IHtjb252ZXJ0Q2hhbmdlc1RvWE1MfSBmcm9tICcuL2NvbnZlcnQveG1sJztcblxuZXhwb3J0IHtcbiAgRGlmZixcblxuICBkaWZmQ2hhcnMsXG4gIGRpZmZXb3JkcyxcbiAgZGlmZldvcmRzV2l0aFNwYWNlLFxuICBkaWZmTGluZXMsXG4gIGRpZmZUcmltbWVkTGluZXMsXG4gIGRpZmZTZW50ZW5jZXMsXG5cbiAgZGlmZkNzcyxcbiAgZGlmZkpzb24sXG5cbiAgc3RydWN0dXJlZFBhdGNoLFxuICBjcmVhdGVUd29GaWxlc1BhdGNoLFxuICBjcmVhdGVQYXRjaCxcbiAgYXBwbHlQYXRjaCxcbiAgYXBwbHlQYXRjaGVzLFxuICBwYXJzZVBhdGNoLFxuICBjb252ZXJ0Q2hhbmdlc1RvRE1QLFxuICBjb252ZXJ0Q2hhbmdlc1RvWE1MLFxuICBjYW5vbmljYWxpemVcbn07XG4iXX0=
      -
      -
      -/***/ },
      -/* 1 */
      -/***/ function(module, exports) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports.default = /*istanbul ignore end*/Diff;
      -	function Diff() {}
      -
      -	Diff.prototype = { /*istanbul ignore start*/
      -	  /*istanbul ignore end*/diff: function diff(oldString, newString) {
      -	    /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
      -
      -	    var callback = options.callback;
      -	    if (typeof options === 'function') {
      -	      callback = options;
      -	      options = {};
      -	    }
      -	    this.options = options;
      -
      -	    var self = this;
      -
      -	    function done(value) {
      -	      if (callback) {
      -	        setTimeout(function () {
      -	          callback(undefined, value);
      -	        }, 0);
      -	        return true;
      -	      } else {
      -	        return value;
      -	      }
      -	    }
      -
      -	    // Allow subclasses to massage the input prior to running
      -	    oldString = this.castInput(oldString);
      -	    newString = this.castInput(newString);
      -
      -	    oldString = this.removeEmpty(this.tokenize(oldString));
      -	    newString = this.removeEmpty(this.tokenize(newString));
      -
      -	    var newLen = newString.length,
      -	        oldLen = oldString.length;
      -	    var editLength = 1;
      -	    var maxEditLength = newLen + oldLen;
      -	    var bestPath = [{ newPos: -1, components: [] }];
      -
      -	    // Seed editLength = 0, i.e. the content starts with the same values
      -	    var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
      -	    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
      -	      // Identity per the equality and tokenizer
      -	      return done([{ value: newString.join(''), count: newString.length }]);
      -	    }
      -
      -	    // Main worker method. checks all permutations of a given edit length for acceptance.
      -	    function execEditLength() {
      -	      for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
      -	        var basePath = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -	        var addPath = bestPath[diagonalPath - 1],
      -	            removePath = bestPath[diagonalPath + 1],
      -	            _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
      -	        if (addPath) {
      -	          // No one else is going to attempt to use this value, clear it
      -	          bestPath[diagonalPath - 1] = undefined;
      -	        }
      -
      -	        var canAdd = addPath && addPath.newPos + 1 < newLen,
      -	            canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
      -	        if (!canAdd && !canRemove) {
      -	          // If this path is a terminal then prune
      -	          bestPath[diagonalPath] = undefined;
      -	          continue;
      -	        }
      -
      -	        // Select the diagonal that we want to branch from. We select the prior
      -	        // path whose position in the new string is the farthest from the origin
      -	        // and does not pass the bounds of the diff graph
      -	        if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
      -	          basePath = clonePath(removePath);
      -	          self.pushComponent(basePath.components, undefined, true);
      -	        } else {
      -	          basePath = addPath; // No need to clone, we've pulled it from the list
      -	          basePath.newPos++;
      -	          self.pushComponent(basePath.components, true, undefined);
      -	        }
      -
      -	        _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath);
      -
      -	        // If we have hit the end of both strings, then we are done
      -	        if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
      -	          return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));
      -	        } else {
      -	          // Otherwise track this path as a potential candidate and continue.
      -	          bestPath[diagonalPath] = basePath;
      -	        }
      -	      }
      -
      -	      editLength++;
      -	    }
      -
      -	    // Performs the length of edit iteration. Is a bit fugly as this has to support the
      -	    // sync and async mode which is never fun. Loops over execEditLength until a value
      -	    // is produced.
      -	    if (callback) {
      -	      (function exec() {
      -	        setTimeout(function () {
      -	          // This should not happen, but we want to be safe.
      -	          /* istanbul ignore next */
      -	          if (editLength > maxEditLength) {
      -	            return callback();
      -	          }
      -
      -	          if (!execEditLength()) {
      -	            exec();
      -	          }
      -	        }, 0);
      -	      })();
      -	    } else {
      -	      while (editLength <= maxEditLength) {
      -	        var ret = execEditLength();
      -	        if (ret) {
      -	          return ret;
      -	        }
      -	      }
      -	    }
      -	  },
      -	  /*istanbul ignore start*/ /*istanbul ignore end*/pushComponent: function pushComponent(components, added, removed) {
      -	    var last = components[components.length - 1];
      -	    if (last && last.added === added && last.removed === removed) {
      -	      // We need to clone here as the component clone operation is just
      -	      // as shallow array clone
      -	      components[components.length - 1] = { count: last.count + 1, added: added, removed: removed };
      -	    } else {
      -	      components.push({ count: 1, added: added, removed: removed });
      -	    }
      -	  },
      -	  /*istanbul ignore start*/ /*istanbul ignore end*/extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
      -	    var newLen = newString.length,
      -	        oldLen = oldString.length,
      -	        newPos = basePath.newPos,
      -	        oldPos = newPos - diagonalPath,
      -	        commonCount = 0;
      -	    while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
      -	      newPos++;
      -	      oldPos++;
      -	      commonCount++;
      -	    }
      -
      -	    if (commonCount) {
      -	      basePath.components.push({ count: commonCount });
      -	    }
      -
      -	    basePath.newPos = newPos;
      -	    return oldPos;
      -	  },
      -	  /*istanbul ignore start*/ /*istanbul ignore end*/equals: function equals(left, right) {
      -	    return left === right;
      -	  },
      -	  /*istanbul ignore start*/ /*istanbul ignore end*/removeEmpty: function removeEmpty(array) {
      -	    var ret = [];
      -	    for (var i = 0; i < array.length; i++) {
      -	      if (array[i]) {
      -	        ret.push(array[i]);
      -	      }
      -	    }
      -	    return ret;
      -	  },
      -	  /*istanbul ignore start*/ /*istanbul ignore end*/castInput: function castInput(value) {
      -	    return value;
      -	  },
      -	  /*istanbul ignore start*/ /*istanbul ignore end*/tokenize: function tokenize(value) {
      -	    return value.split('');
      -	  }
      -	};
      -
      -	function buildValues(diff, components, newString, oldString, useLongestToken) {
      -	  var componentPos = 0,
      -	      componentLen = components.length,
      -	      newPos = 0,
      -	      oldPos = 0;
      -
      -	  for (; componentPos < componentLen; componentPos++) {
      -	    var component = components[componentPos];
      -	    if (!component.removed) {
      -	      if (!component.added && useLongestToken) {
      -	        var value = newString.slice(newPos, newPos + component.count);
      -	        value = value.map(function (value, i) {
      -	          var oldValue = oldString[oldPos + i];
      -	          return oldValue.length > value.length ? oldValue : value;
      -	        });
      -
      -	        component.value = value.join('');
      -	      } else {
      -	        component.value = newString.slice(newPos, newPos + component.count).join('');
      -	      }
      -	      newPos += component.count;
      -
      -	      // Common case
      -	      if (!component.added) {
      -	        oldPos += component.count;
      -	      }
      -	    } else {
      -	      component.value = oldString.slice(oldPos, oldPos + component.count).join('');
      -	      oldPos += component.count;
      -
      -	      // Reverse add and remove so removes are output first to match common convention
      -	      // The diffing algorithm is tied to add then remove output and this is the simplest
      -	      // route to get the desired output with minimal overhead.
      -	      if (componentPos && components[componentPos - 1].added) {
      -	        var tmp = components[componentPos - 1];
      -	        components[componentPos - 1] = components[componentPos];
      -	        components[componentPos] = tmp;
      -	      }
      -	    }
      -	  }
      -
      -	  // Special case handle for when one terminal is ignored. For this case we merge the
      -	  // terminal into the prior string and drop the change.
      -	  var lastComponent = components[componentLen - 1];
      -	  if (componentLen > 1 && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {
      -	    components[componentLen - 2].value += lastComponent.value;
      -	    components.pop();
      -	  }
      -
      -	  return components;
      -	}
      -
      -	function clonePath(path) {
      -	  return { newPos: path.newPos, components: path.components.slice(0) };
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O3lDQUF3QjtBQUFULFNBQVMsSUFBVCxHQUFnQixFQUFoQjs7QUFFZixLQUFLLFNBQUwsR0FBaUI7eUJBQ2Ysb0JBQUssV0FBVyxXQUF5Qjt3REFBZCxnRUFBVSxrQkFBSTs7QUFDdkMsUUFBSSxXQUFXLFFBQVEsUUFBUixDQUR3QjtBQUV2QyxRQUFJLE9BQU8sT0FBUCxLQUFtQixVQUFuQixFQUErQjtBQUNqQyxpQkFBVyxPQUFYLENBRGlDO0FBRWpDLGdCQUFVLEVBQVYsQ0FGaUM7S0FBbkM7QUFJQSxTQUFLLE9BQUwsR0FBZSxPQUFmLENBTnVDOztBQVF2QyxRQUFJLE9BQU8sSUFBUCxDQVJtQzs7QUFVdkMsYUFBUyxJQUFULENBQWMsS0FBZCxFQUFxQjtBQUNuQixVQUFJLFFBQUosRUFBYztBQUNaLG1CQUFXLFlBQVc7QUFBRSxtQkFBUyxTQUFULEVBQW9CLEtBQXBCLEVBQUY7U0FBWCxFQUE0QyxDQUF2RCxFQURZO0FBRVosZUFBTyxJQUFQLENBRlk7T0FBZCxNQUdPO0FBQ0wsZUFBTyxLQUFQLENBREs7T0FIUDtLQURGOzs7QUFWdUMsYUFvQnZDLEdBQVksS0FBSyxTQUFMLENBQWUsU0FBZixDQUFaLENBcEJ1QztBQXFCdkMsZ0JBQVksS0FBSyxTQUFMLENBQWUsU0FBZixDQUFaLENBckJ1Qzs7QUF1QnZDLGdCQUFZLEtBQUssV0FBTCxDQUFpQixLQUFLLFFBQUwsQ0FBYyxTQUFkLENBQWpCLENBQVosQ0F2QnVDO0FBd0J2QyxnQkFBWSxLQUFLLFdBQUwsQ0FBaUIsS0FBSyxRQUFMLENBQWMsU0FBZCxDQUFqQixDQUFaLENBeEJ1Qzs7QUEwQnZDLFFBQUksU0FBUyxVQUFVLE1BQVY7UUFBa0IsU0FBUyxVQUFVLE1BQVYsQ0ExQkQ7QUEyQnZDLFFBQUksYUFBYSxDQUFiLENBM0JtQztBQTRCdkMsUUFBSSxnQkFBZ0IsU0FBUyxNQUFULENBNUJtQjtBQTZCdkMsUUFBSSxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBRCxFQUFJLFlBQVksRUFBWixFQUFmLENBQVg7OztBQTdCbUMsUUFnQ25DLFNBQVMsS0FBSyxhQUFMLENBQW1CLFNBQVMsQ0FBVCxDQUFuQixFQUFnQyxTQUFoQyxFQUEyQyxTQUEzQyxFQUFzRCxDQUF0RCxDQUFULENBaENtQztBQWlDdkMsUUFBSSxTQUFTLENBQVQsRUFBWSxNQUFaLEdBQXFCLENBQXJCLElBQTBCLE1BQTFCLElBQW9DLFNBQVMsQ0FBVCxJQUFjLE1BQWQsRUFBc0I7O0FBRTVELGFBQU8sS0FBSyxDQUFDLEVBQUMsT0FBTyxVQUFVLElBQVYsQ0FBZSxFQUFmLENBQVAsRUFBMkIsT0FBTyxVQUFVLE1BQVYsRUFBcEMsQ0FBTCxDQUFQLENBRjREO0tBQTlEOzs7QUFqQ3VDLGFBdUM5QixjQUFULEdBQTBCO0FBQ3hCLFdBQUssSUFBSSxlQUFlLENBQUMsQ0FBRCxHQUFLLFVBQUwsRUFBaUIsZ0JBQWdCLFVBQWhCLEVBQTRCLGdCQUFnQixDQUFoQixFQUFtQjtBQUN0RixZQUFJLGtFQUFKLENBRHNGO0FBRXRGLFlBQUksVUFBVSxTQUFTLGVBQWUsQ0FBZixDQUFuQjtZQUNBLGFBQWEsU0FBUyxlQUFlLENBQWYsQ0FBdEI7WUFDQSxVQUFTLENBQUMsYUFBYSxXQUFXLE1BQVgsR0FBb0IsQ0FBakMsQ0FBRCxHQUF1QyxZQUF2QyxDQUp5RTtBQUt0RixZQUFJLE9BQUosRUFBYTs7QUFFWCxtQkFBUyxlQUFlLENBQWYsQ0FBVCxHQUE2QixTQUE3QixDQUZXO1NBQWI7O0FBS0EsWUFBSSxTQUFTLFdBQVcsUUFBUSxNQUFSLEdBQWlCLENBQWpCLEdBQXFCLE1BQXJCO1lBQ3BCLFlBQVksY0FBYyxLQUFLLE9BQUwsSUFBZSxVQUFTLE1BQVQsQ0FYeUM7QUFZdEYsWUFBSSxDQUFDLE1BQUQsSUFBVyxDQUFDLFNBQUQsRUFBWTs7QUFFekIsbUJBQVMsWUFBVCxJQUF5QixTQUF6QixDQUZ5QjtBQUd6QixtQkFIeUI7U0FBM0I7Ozs7O0FBWnNGLFlBcUJsRixDQUFDLE1BQUQsSUFBWSxhQUFhLFFBQVEsTUFBUixHQUFpQixXQUFXLE1BQVgsRUFBb0I7QUFDaEUscUJBQVcsVUFBVSxVQUFWLENBQVgsQ0FEZ0U7QUFFaEUsZUFBSyxhQUFMLENBQW1CLFNBQVMsVUFBVCxFQUFxQixTQUF4QyxFQUFtRCxJQUFuRCxFQUZnRTtTQUFsRSxNQUdPO0FBQ0wscUJBQVcsT0FBWDtBQURLLGtCQUVMLENBQVMsTUFBVCxHQUZLO0FBR0wsZUFBSyxhQUFMLENBQW1CLFNBQVMsVUFBVCxFQUFxQixJQUF4QyxFQUE4QyxTQUE5QyxFQUhLO1NBSFA7O0FBU0Esa0JBQVMsS0FBSyxhQUFMLENBQW1CLFFBQW5CLEVBQTZCLFNBQTdCLEVBQXdDLFNBQXhDLEVBQW1ELFlBQW5ELENBQVQ7OztBQTlCc0YsWUFpQ2xGLFNBQVMsTUFBVCxHQUFrQixDQUFsQixJQUF1QixNQUF2QixJQUFpQyxVQUFTLENBQVQsSUFBYyxNQUFkLEVBQXNCO0FBQ3pELGlCQUFPLEtBQUssWUFBWSxJQUFaLEVBQWtCLFNBQVMsVUFBVCxFQUFxQixTQUF2QyxFQUFrRCxTQUFsRCxFQUE2RCxLQUFLLGVBQUwsQ0FBbEUsQ0FBUCxDQUR5RDtTQUEzRCxNQUVPOztBQUVMLG1CQUFTLFlBQVQsSUFBeUIsUUFBekIsQ0FGSztTQUZQO09BakNGOztBQXlDQSxtQkExQ3dCO0tBQTFCOzs7OztBQXZDdUMsUUF1Rm5DLFFBQUosRUFBYztBQUNaLE9BQUMsU0FBUyxJQUFULEdBQWdCO0FBQ2YsbUJBQVcsWUFBVzs7O0FBR3BCLGNBQUksYUFBYSxhQUFiLEVBQTRCO0FBQzlCLG1CQUFPLFVBQVAsQ0FEOEI7V0FBaEM7O0FBSUEsY0FBSSxDQUFDLGdCQUFELEVBQW1CO0FBQ3JCLG1CQURxQjtXQUF2QjtTQVBTLEVBVVIsQ0FWSCxFQURlO09BQWhCLEdBQUQsQ0FEWTtLQUFkLE1BY087QUFDTCxhQUFPLGNBQWMsYUFBZCxFQUE2QjtBQUNsQyxZQUFJLE1BQU0sZ0JBQU4sQ0FEOEI7QUFFbEMsWUFBSSxHQUFKLEVBQVM7QUFDUCxpQkFBTyxHQUFQLENBRE87U0FBVDtPQUZGO0tBZkY7R0F4RmE7bURBZ0hmLHNDQUFjLFlBQVksT0FBTyxTQUFTO0FBQ3hDLFFBQUksT0FBTyxXQUFXLFdBQVcsTUFBWCxHQUFvQixDQUFwQixDQUFsQixDQURvQztBQUV4QyxRQUFJLFFBQVEsS0FBSyxLQUFMLEtBQWUsS0FBZixJQUF3QixLQUFLLE9BQUwsS0FBaUIsT0FBakIsRUFBMEI7OztBQUc1RCxpQkFBVyxXQUFXLE1BQVgsR0FBb0IsQ0FBcEIsQ0FBWCxHQUFvQyxFQUFDLE9BQU8sS0FBSyxLQUFMLEdBQWEsQ0FBYixFQUFnQixPQUFPLEtBQVAsRUFBYyxTQUFTLE9BQVQsRUFBMUUsQ0FINEQ7S0FBOUQsTUFJTztBQUNMLGlCQUFXLElBQVgsQ0FBZ0IsRUFBQyxPQUFPLENBQVAsRUFBVSxPQUFPLEtBQVAsRUFBYyxTQUFTLE9BQVQsRUFBekMsRUFESztLQUpQO0dBbEhhO21EQTBIZixzQ0FBYyxVQUFVLFdBQVcsV0FBVyxjQUFjO0FBQzFELFFBQUksU0FBUyxVQUFVLE1BQVY7UUFDVCxTQUFTLFVBQVUsTUFBVjtRQUNULFNBQVMsU0FBUyxNQUFUO1FBQ1QsU0FBUyxTQUFTLFlBQVQ7UUFFVCxjQUFjLENBQWQsQ0FOc0Q7QUFPMUQsV0FBTyxTQUFTLENBQVQsR0FBYSxNQUFiLElBQXVCLFNBQVMsQ0FBVCxHQUFhLE1BQWIsSUFBdUIsS0FBSyxNQUFMLENBQVksVUFBVSxTQUFTLENBQVQsQ0FBdEIsRUFBbUMsVUFBVSxTQUFTLENBQVQsQ0FBN0MsQ0FBOUMsRUFBeUc7QUFDOUcsZUFEOEc7QUFFOUcsZUFGOEc7QUFHOUcsb0JBSDhHO0tBQWhIOztBQU1BLFFBQUksV0FBSixFQUFpQjtBQUNmLGVBQVMsVUFBVCxDQUFvQixJQUFwQixDQUF5QixFQUFDLE9BQU8sV0FBUCxFQUExQixFQURlO0tBQWpCOztBQUlBLGFBQVMsTUFBVCxHQUFrQixNQUFsQixDQWpCMEQ7QUFrQjFELFdBQU8sTUFBUCxDQWxCMEQ7R0ExSDdDO21EQStJZix3QkFBTyxNQUFNLE9BQU87QUFDbEIsV0FBTyxTQUFTLEtBQVQsQ0FEVztHQS9JTDttREFrSmYsa0NBQVksT0FBTztBQUNqQixRQUFJLE1BQU0sRUFBTixDQURhO0FBRWpCLFNBQUssSUFBSSxJQUFJLENBQUosRUFBTyxJQUFJLE1BQU0sTUFBTixFQUFjLEdBQWxDLEVBQXVDO0FBQ3JDLFVBQUksTUFBTSxDQUFOLENBQUosRUFBYztBQUNaLFlBQUksSUFBSixDQUFTLE1BQU0sQ0FBTixDQUFULEVBRFk7T0FBZDtLQURGO0FBS0EsV0FBTyxHQUFQLENBUGlCO0dBbEpKO21EQTJKZiw4QkFBVSxPQUFPO0FBQ2YsV0FBTyxLQUFQLENBRGU7R0EzSkY7bURBOEpmLDRCQUFTLE9BQU87QUFDZCxXQUFPLE1BQU0sS0FBTixDQUFZLEVBQVosQ0FBUCxDQURjO0dBOUpEO0NBQWpCOztBQW1LQSxTQUFTLFdBQVQsQ0FBcUIsSUFBckIsRUFBMkIsVUFBM0IsRUFBdUMsU0FBdkMsRUFBa0QsU0FBbEQsRUFBNkQsZUFBN0QsRUFBOEU7QUFDNUUsTUFBSSxlQUFlLENBQWY7TUFDQSxlQUFlLFdBQVcsTUFBWDtNQUNmLFNBQVMsQ0FBVDtNQUNBLFNBQVMsQ0FBVCxDQUp3RTs7QUFNNUUsU0FBTyxlQUFlLFlBQWYsRUFBNkIsY0FBcEMsRUFBb0Q7QUFDbEQsUUFBSSxZQUFZLFdBQVcsWUFBWCxDQUFaLENBRDhDO0FBRWxELFFBQUksQ0FBQyxVQUFVLE9BQVYsRUFBbUI7QUFDdEIsVUFBSSxDQUFDLFVBQVUsS0FBVixJQUFtQixlQUFwQixFQUFxQztBQUN2QyxZQUFJLFFBQVEsVUFBVSxLQUFWLENBQWdCLE1BQWhCLEVBQXdCLFNBQVMsVUFBVSxLQUFWLENBQXpDLENBRG1DO0FBRXZDLGdCQUFRLE1BQU0sR0FBTixDQUFVLFVBQVMsS0FBVCxFQUFnQixDQUFoQixFQUFtQjtBQUNuQyxjQUFJLFdBQVcsVUFBVSxTQUFTLENBQVQsQ0FBckIsQ0FEK0I7QUFFbkMsaUJBQU8sU0FBUyxNQUFULEdBQWtCLE1BQU0sTUFBTixHQUFlLFFBQWpDLEdBQTRDLEtBQTVDLENBRjRCO1NBQW5CLENBQWxCLENBRnVDOztBQU92QyxrQkFBVSxLQUFWLEdBQWtCLE1BQU0sSUFBTixDQUFXLEVBQVgsQ0FBbEIsQ0FQdUM7T0FBekMsTUFRTztBQUNMLGtCQUFVLEtBQVYsR0FBa0IsVUFBVSxLQUFWLENBQWdCLE1BQWhCLEVBQXdCLFNBQVMsVUFBVSxLQUFWLENBQWpDLENBQWtELElBQWxELENBQXVELEVBQXZELENBQWxCLENBREs7T0FSUDtBQVdBLGdCQUFVLFVBQVUsS0FBVjs7O0FBWlksVUFlbEIsQ0FBQyxVQUFVLEtBQVYsRUFBaUI7QUFDcEIsa0JBQVUsVUFBVSxLQUFWLENBRFU7T0FBdEI7S0FmRixNQWtCTztBQUNMLGdCQUFVLEtBQVYsR0FBa0IsVUFBVSxLQUFWLENBQWdCLE1BQWhCLEVBQXdCLFNBQVMsVUFBVSxLQUFWLENBQWpDLENBQWtELElBQWxELENBQXVELEVBQXZELENBQWxCLENBREs7QUFFTCxnQkFBVSxVQUFVLEtBQVY7Ozs7O0FBRkwsVUFPRCxnQkFBZ0IsV0FBVyxlQUFlLENBQWYsQ0FBWCxDQUE2QixLQUE3QixFQUFvQztBQUN0RCxZQUFJLE1BQU0sV0FBVyxlQUFlLENBQWYsQ0FBakIsQ0FEa0Q7QUFFdEQsbUJBQVcsZUFBZSxDQUFmLENBQVgsR0FBK0IsV0FBVyxZQUFYLENBQS9CLENBRnNEO0FBR3RELG1CQUFXLFlBQVgsSUFBMkIsR0FBM0IsQ0FIc0Q7T0FBeEQ7S0F6QkY7R0FGRjs7OztBQU40RSxNQTJDeEUsZ0JBQWdCLFdBQVcsZUFBZSxDQUFmLENBQTNCLENBM0N3RTtBQTRDNUUsTUFBSSxlQUFlLENBQWYsS0FDSSxjQUFjLEtBQWQsSUFBdUIsY0FBYyxPQUFkLENBRDNCLElBRUcsS0FBSyxNQUFMLENBQVksRUFBWixFQUFnQixjQUFjLEtBQWQsQ0FGbkIsRUFFeUM7QUFDM0MsZUFBVyxlQUFlLENBQWYsQ0FBWCxDQUE2QixLQUE3QixJQUFzQyxjQUFjLEtBQWQsQ0FESztBQUUzQyxlQUFXLEdBQVgsR0FGMkM7R0FGN0M7O0FBT0EsU0FBTyxVQUFQLENBbkQ0RTtDQUE5RTs7QUFzREEsU0FBUyxTQUFULENBQW1CLElBQW5CLEVBQXlCO0FBQ3ZCLFNBQU8sRUFBRSxRQUFRLEtBQUssTUFBTCxFQUFhLFlBQVksS0FBSyxVQUFMLENBQWdCLEtBQWhCLENBQXNCLENBQXRCLENBQVosRUFBOUIsQ0FEdUI7Q0FBekIiLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERpZmYoKSB7fVxuXG5EaWZmLnByb3RvdHlwZSA9IHtcbiAgZGlmZihvbGRTdHJpbmcsIG5ld1N0cmluZywgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGNhbGxiYWNrID0gb3B0aW9ucy5jYWxsYmFjaztcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNhbGxiYWNrID0gb3B0aW9ucztcbiAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIGxldCBzZWxmID0gdGhpcztcblxuICAgIGZ1bmN0aW9uIGRvbmUodmFsdWUpIHtcbiAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYWxsYmFjayh1bmRlZmluZWQsIHZhbHVlKTsgfSwgMCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsbG93IHN1YmNsYXNzZXMgdG8gbWFzc2FnZSB0aGUgaW5wdXQgcHJpb3IgdG8gcnVubmluZ1xuICAgIG9sZFN0cmluZyA9IHRoaXMuY2FzdElucHV0KG9sZFN0cmluZyk7XG4gICAgbmV3U3RyaW5nID0gdGhpcy5jYXN0SW5wdXQobmV3U3RyaW5nKTtcblxuICAgIG9sZFN0cmluZyA9IHRoaXMucmVtb3ZlRW1wdHkodGhpcy50b2tlbml6ZShvbGRTdHJpbmcpKTtcbiAgICBuZXdTdHJpbmcgPSB0aGlzLnJlbW92ZUVtcHR5KHRoaXMudG9rZW5pemUobmV3U3RyaW5nKSk7XG5cbiAgICBsZXQgbmV3TGVuID0gbmV3U3RyaW5nLmxlbmd0aCwgb2xkTGVuID0gb2xkU3RyaW5nLmxlbmd0aDtcbiAgICBsZXQgZWRpdExlbmd0aCA9IDE7XG4gICAgbGV0IG1heEVkaXRMZW5ndGggPSBuZXdMZW4gKyBvbGRMZW47XG4gICAgbGV0IGJlc3RQYXRoID0gW3sgbmV3UG9zOiAtMSwgY29tcG9uZW50czogW10gfV07XG5cbiAgICAvLyBTZWVkIGVkaXRMZW5ndGggPSAwLCBpLmUuIHRoZSBjb250ZW50IHN0YXJ0cyB3aXRoIHRoZSBzYW1lIHZhbHVlc1xuICAgIGxldCBvbGRQb3MgPSB0aGlzLmV4dHJhY3RDb21tb24oYmVzdFBhdGhbMF0sIG5ld1N0cmluZywgb2xkU3RyaW5nLCAwKTtcbiAgICBpZiAoYmVzdFBhdGhbMF0ubmV3UG9zICsgMSA+PSBuZXdMZW4gJiYgb2xkUG9zICsgMSA+PSBvbGRMZW4pIHtcbiAgICAgIC8vIElkZW50aXR5IHBlciB0aGUgZXF1YWxpdHkgYW5kIHRva2VuaXplclxuICAgICAgcmV0dXJuIGRvbmUoW3t2YWx1ZTogbmV3U3RyaW5nLmpvaW4oJycpLCBjb3VudDogbmV3U3RyaW5nLmxlbmd0aH1dKTtcbiAgICB9XG5cbiAgICAvLyBNYWluIHdvcmtlciBtZXRob2QuIGNoZWNrcyBhbGwgcGVybXV0YXRpb25zIG9mIGEgZ2l2ZW4gZWRpdCBsZW5ndGggZm9yIGFjY2VwdGFuY2UuXG4gICAgZnVuY3Rpb24gZXhlY0VkaXRMZW5ndGgoKSB7XG4gICAgICBmb3IgKGxldCBkaWFnb25hbFBhdGggPSAtMSAqIGVkaXRMZW5ndGg7IGRpYWdvbmFsUGF0aCA8PSBlZGl0TGVuZ3RoOyBkaWFnb25hbFBhdGggKz0gMikge1xuICAgICAgICBsZXQgYmFzZVBhdGg7XG4gICAgICAgIGxldCBhZGRQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoIC0gMV0sXG4gICAgICAgICAgICByZW1vdmVQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoICsgMV0sXG4gICAgICAgICAgICBvbGRQb3MgPSAocmVtb3ZlUGF0aCA/IHJlbW92ZVBhdGgubmV3UG9zIDogMCkgLSBkaWFnb25hbFBhdGg7XG4gICAgICAgIGlmIChhZGRQYXRoKSB7XG4gICAgICAgICAgLy8gTm8gb25lIGVsc2UgaXMgZ29pbmcgdG8gYXR0ZW1wdCB0byB1c2UgdGhpcyB2YWx1ZSwgY2xlYXIgaXRcbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGggLSAxXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjYW5BZGQgPSBhZGRQYXRoICYmIGFkZFBhdGgubmV3UG9zICsgMSA8IG5ld0xlbixcbiAgICAgICAgICAgIGNhblJlbW92ZSA9IHJlbW92ZVBhdGggJiYgMCA8PSBvbGRQb3MgJiYgb2xkUG9zIDwgb2xkTGVuO1xuICAgICAgICBpZiAoIWNhbkFkZCAmJiAhY2FuUmVtb3ZlKSB7XG4gICAgICAgICAgLy8gSWYgdGhpcyBwYXRoIGlzIGEgdGVybWluYWwgdGhlbiBwcnVuZVxuICAgICAgICAgIGJlc3RQYXRoW2RpYWdvbmFsUGF0aF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWxlY3QgdGhlIGRpYWdvbmFsIHRoYXQgd2Ugd2FudCB0byBicmFuY2ggZnJvbS4gV2Ugc2VsZWN0IHRoZSBwcmlvclxuICAgICAgICAvLyBwYXRoIHdob3NlIHBvc2l0aW9uIGluIHRoZSBuZXcgc3RyaW5nIGlzIHRoZSBmYXJ0aGVzdCBmcm9tIHRoZSBvcmlnaW5cbiAgICAgICAgLy8gYW5kIGRvZXMgbm90IHBhc3MgdGhlIGJvdW5kcyBvZiB0aGUgZGlmZiBncmFwaFxuICAgICAgICBpZiAoIWNhbkFkZCB8fCAoY2FuUmVtb3ZlICYmIGFkZFBhdGgubmV3UG9zIDwgcmVtb3ZlUGF0aC5uZXdQb3MpKSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBjbG9uZVBhdGgocmVtb3ZlUGF0aCk7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBhZGRQYXRoOyAgIC8vIE5vIG5lZWQgdG8gY2xvbmUsIHdlJ3ZlIHB1bGxlZCBpdCBmcm9tIHRoZSBsaXN0XG4gICAgICAgICAgYmFzZVBhdGgubmV3UG9zKys7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHRydWUsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvbGRQb3MgPSBzZWxmLmV4dHJhY3RDb21tb24oYmFzZVBhdGgsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBkaWFnb25hbFBhdGgpO1xuXG4gICAgICAgIC8vIElmIHdlIGhhdmUgaGl0IHRoZSBlbmQgb2YgYm90aCBzdHJpbmdzLCB0aGVuIHdlIGFyZSBkb25lXG4gICAgICAgIGlmIChiYXNlUGF0aC5uZXdQb3MgKyAxID49IG5ld0xlbiAmJiBvbGRQb3MgKyAxID49IG9sZExlbikge1xuICAgICAgICAgIHJldHVybiBkb25lKGJ1aWxkVmFsdWVzKHNlbGYsIGJhc2VQYXRoLmNvbXBvbmVudHMsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBzZWxmLnVzZUxvbmdlc3RUb2tlbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE90aGVyd2lzZSB0cmFjayB0aGlzIHBhdGggYXMgYSBwb3RlbnRpYWwgY2FuZGlkYXRlIGFuZCBjb250aW51ZS5cbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGhdID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZWRpdExlbmd0aCsrO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm1zIHRoZSBsZW5ndGggb2YgZWRpdCBpdGVyYXRpb24uIElzIGEgYml0IGZ1Z2x5IGFzIHRoaXMgaGFzIHRvIHN1cHBvcnQgdGhlXG4gICAgLy8gc3luYyBhbmQgYXN5bmMgbW9kZSB3aGljaCBpcyBuZXZlciBmdW4uIExvb3BzIG92ZXIgZXhlY0VkaXRMZW5ndGggdW50aWwgYSB2YWx1ZVxuICAgIC8vIGlzIHByb2R1Y2VkLlxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgKGZ1bmN0aW9uIGV4ZWMoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgYnV0IHdlIHdhbnQgdG8gYmUgc2FmZS5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGlmIChlZGl0TGVuZ3RoID4gbWF4RWRpdExlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFleGVjRWRpdExlbmd0aCgpKSB7XG4gICAgICAgICAgICBleGVjKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICAgIH0oKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdoaWxlIChlZGl0TGVuZ3RoIDw9IG1heEVkaXRMZW5ndGgpIHtcbiAgICAgICAgbGV0IHJldCA9IGV4ZWNFZGl0TGVuZ3RoKCk7XG4gICAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHB1c2hDb21wb25lbnQoY29tcG9uZW50cywgYWRkZWQsIHJlbW92ZWQpIHtcbiAgICBsZXQgbGFzdCA9IGNvbXBvbmVudHNbY29tcG9uZW50cy5sZW5ndGggLSAxXTtcbiAgICBpZiAobGFzdCAmJiBsYXN0LmFkZGVkID09PSBhZGRlZCAmJiBsYXN0LnJlbW92ZWQgPT09IHJlbW92ZWQpIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gY2xvbmUgaGVyZSBhcyB0aGUgY29tcG9uZW50IGNsb25lIG9wZXJhdGlvbiBpcyBqdXN0XG4gICAgICAvLyBhcyBzaGFsbG93IGFycmF5IGNsb25lXG4gICAgICBjb21wb25lbnRzW2NvbXBvbmVudHMubGVuZ3RoIC0gMV0gPSB7Y291bnQ6IGxhc3QuY291bnQgKyAxLCBhZGRlZDogYWRkZWQsIHJlbW92ZWQ6IHJlbW92ZWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50cy5wdXNoKHtjb3VudDogMSwgYWRkZWQ6IGFkZGVkLCByZW1vdmVkOiByZW1vdmVkIH0pO1xuICAgIH1cbiAgfSxcbiAgZXh0cmFjdENvbW1vbihiYXNlUGF0aCwgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIGRpYWdvbmFsUGF0aCkge1xuICAgIGxldCBuZXdMZW4gPSBuZXdTdHJpbmcubGVuZ3RoLFxuICAgICAgICBvbGRMZW4gPSBvbGRTdHJpbmcubGVuZ3RoLFxuICAgICAgICBuZXdQb3MgPSBiYXNlUGF0aC5uZXdQb3MsXG4gICAgICAgIG9sZFBvcyA9IG5ld1BvcyAtIGRpYWdvbmFsUGF0aCxcblxuICAgICAgICBjb21tb25Db3VudCA9IDA7XG4gICAgd2hpbGUgKG5ld1BvcyArIDEgPCBuZXdMZW4gJiYgb2xkUG9zICsgMSA8IG9sZExlbiAmJiB0aGlzLmVxdWFscyhuZXdTdHJpbmdbbmV3UG9zICsgMV0sIG9sZFN0cmluZ1tvbGRQb3MgKyAxXSkpIHtcbiAgICAgIG5ld1BvcysrO1xuICAgICAgb2xkUG9zKys7XG4gICAgICBjb21tb25Db3VudCsrO1xuICAgIH1cblxuICAgIGlmIChjb21tb25Db3VudCkge1xuICAgICAgYmFzZVBhdGguY29tcG9uZW50cy5wdXNoKHtjb3VudDogY29tbW9uQ291bnR9KTtcbiAgICB9XG5cbiAgICBiYXNlUGF0aC5uZXdQb3MgPSBuZXdQb3M7XG4gICAgcmV0dXJuIG9sZFBvcztcbiAgfSxcblxuICBlcXVhbHMobGVmdCwgcmlnaHQpIHtcbiAgICByZXR1cm4gbGVmdCA9PT0gcmlnaHQ7XG4gIH0sXG4gIHJlbW92ZUVtcHR5KGFycmF5KSB7XG4gICAgbGV0IHJldCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnJheVtpXSkge1xuICAgICAgICByZXQucHVzaChhcnJheVtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH0sXG4gIGNhc3RJbnB1dCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfSxcbiAgdG9rZW5pemUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoJycpO1xuICB9XG59O1xuXG5mdW5jdGlvbiBidWlsZFZhbHVlcyhkaWZmLCBjb21wb25lbnRzLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgdXNlTG9uZ2VzdFRva2VuKSB7XG4gIGxldCBjb21wb25lbnRQb3MgPSAwLFxuICAgICAgY29tcG9uZW50TGVuID0gY29tcG9uZW50cy5sZW5ndGgsXG4gICAgICBuZXdQb3MgPSAwLFxuICAgICAgb2xkUG9zID0gMDtcblxuICBmb3IgKDsgY29tcG9uZW50UG9zIDwgY29tcG9uZW50TGVuOyBjb21wb25lbnRQb3MrKykge1xuICAgIGxldCBjb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgaWYgKCFjb21wb25lbnQucmVtb3ZlZCkge1xuICAgICAgaWYgKCFjb21wb25lbnQuYWRkZWQgJiYgdXNlTG9uZ2VzdFRva2VuKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCk7XG4gICAgICAgIHZhbHVlID0gdmFsdWUubWFwKGZ1bmN0aW9uKHZhbHVlLCBpKSB7XG4gICAgICAgICAgbGV0IG9sZFZhbHVlID0gb2xkU3RyaW5nW29sZFBvcyArIGldO1xuICAgICAgICAgIHJldHVybiBvbGRWYWx1ZS5sZW5ndGggPiB2YWx1ZS5sZW5ndGggPyBvbGRWYWx1ZSA6IHZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb21wb25lbnQudmFsdWUgPSB2YWx1ZS5qb2luKCcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbXBvbmVudC52YWx1ZSA9IG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCkuam9pbignJyk7XG4gICAgICB9XG4gICAgICBuZXdQb3MgKz0gY29tcG9uZW50LmNvdW50O1xuXG4gICAgICAvLyBDb21tb24gY2FzZVxuICAgICAgaWYgKCFjb21wb25lbnQuYWRkZWQpIHtcbiAgICAgICAgb2xkUG9zICs9IGNvbXBvbmVudC5jb3VudDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50LnZhbHVlID0gb2xkU3RyaW5nLnNsaWNlKG9sZFBvcywgb2xkUG9zICsgY29tcG9uZW50LmNvdW50KS5qb2luKCcnKTtcbiAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG5cbiAgICAgIC8vIFJldmVyc2UgYWRkIGFuZCByZW1vdmUgc28gcmVtb3ZlcyBhcmUgb3V0cHV0IGZpcnN0IHRvIG1hdGNoIGNvbW1vbiBjb252ZW50aW9uXG4gICAgICAvLyBUaGUgZGlmZmluZyBhbGdvcml0aG0gaXMgdGllZCB0byBhZGQgdGhlbiByZW1vdmUgb3V0cHV0IGFuZCB0aGlzIGlzIHRoZSBzaW1wbGVzdFxuICAgICAgLy8gcm91dGUgdG8gZ2V0IHRoZSBkZXNpcmVkIG91dHB1dCB3aXRoIG1pbmltYWwgb3ZlcmhlYWQuXG4gICAgICBpZiAoY29tcG9uZW50UG9zICYmIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0uYWRkZWQpIHtcbiAgICAgICAgbGV0IHRtcCA9IGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV07XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0gPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zXSA9IHRtcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWFsIGNhc2UgaGFuZGxlIGZvciB3aGVuIG9uZSB0ZXJtaW5hbCBpcyBpZ25vcmVkLiBGb3IgdGhpcyBjYXNlIHdlIG1lcmdlIHRoZVxuICAvLyB0ZXJtaW5hbCBpbnRvIHRoZSBwcmlvciBzdHJpbmcgYW5kIGRyb3AgdGhlIGNoYW5nZS5cbiAgbGV0IGxhc3RDb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudExlbiAtIDFdO1xuICBpZiAoY29tcG9uZW50TGVuID4gMVxuICAgICAgJiYgKGxhc3RDb21wb25lbnQuYWRkZWQgfHwgbGFzdENvbXBvbmVudC5yZW1vdmVkKVxuICAgICAgJiYgZGlmZi5lcXVhbHMoJycsIGxhc3RDb21wb25lbnQudmFsdWUpKSB7XG4gICAgY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAyXS52YWx1ZSArPSBsYXN0Q29tcG9uZW50LnZhbHVlO1xuICAgIGNvbXBvbmVudHMucG9wKCk7XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50cztcbn1cblxuZnVuY3Rpb24gY2xvbmVQYXRoKHBhdGgpIHtcbiAgcmV0dXJuIHsgbmV3UG9zOiBwYXRoLm5ld1BvcywgY29tcG9uZW50czogcGF0aC5jb21wb25lbnRzLnNsaWNlKDApIH07XG59XG4iXX0=
      -
      -
      -/***/ },
      -/* 2 */
      -/***/ function(module, exports, __webpack_require__) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports.characterDiff = undefined;
      -	exports. /*istanbul ignore end*/diffChars = diffChars;
      -
      -	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	var _base2 = _interopRequireDefault(_base);
      -
      -	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -	/*istanbul ignore end*/var characterDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/characterDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -	function diffChars(oldStr, newStr, callback) {
      -	  return characterDiff.diff(oldStr, newStr, callback);
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2NoYXJhY3Rlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O2dDQUdnQjs7QUFIaEI7Ozs7Ozs7dUJBRU8sSUFBTSx5RkFBZ0IscUVBQWhCO0FBQ04sU0FBUyxTQUFULENBQW1CLE1BQW5CLEVBQTJCLE1BQTNCLEVBQW1DLFFBQW5DLEVBQTZDO0FBQUUsU0FBTyxjQUFjLElBQWQsQ0FBbUIsTUFBbkIsRUFBMkIsTUFBM0IsRUFBbUMsUUFBbkMsQ0FBUCxDQUFGO0NBQTdDIiwiZmlsZSI6ImNoYXJhY3Rlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBjaGFyYWN0ZXJEaWZmID0gbmV3IERpZmYoKTtcbmV4cG9ydCBmdW5jdGlvbiBkaWZmQ2hhcnMob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7IHJldHVybiBjaGFyYWN0ZXJEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKTsgfVxuIl19
      -
      -
      -/***/ },
      -/* 3 */
      -/***/ function(module, exports, __webpack_require__) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports.wordDiff = undefined;
      -	exports. /*istanbul ignore end*/diffWords = diffWords;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = diffWordsWithSpace;
      -
      -	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	var _base2 = _interopRequireDefault(_base);
      -
      -	/*istanbul ignore end*/
      -	var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -	/*istanbul ignore end*/
      -
      -	// Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode
      -	//
      -	// Ranges and exceptions:
      -	// Latin-1 Supplement, 0080–00FF
      -	//  - U+00D7  × Multiplication sign
      -	//  - U+00F7  ÷ Division sign
      -	// Latin Extended-A, 0100–017F
      -	// Latin Extended-B, 0180–024F
      -	// IPA Extensions, 0250–02AF
      -	// Spacing Modifier Letters, 02B0–02FF
      -	//  - U+02C7  ˇ ˇ  Caron
      -	//  - U+02D8  ˘ ˘  Breve
      -	//  - U+02D9  ˙ ˙  Dot Above
      -	//  - U+02DA  ˚ ˚  Ring Above
      -	//  - U+02DB  ˛ ˛  Ogonek
      -	//  - U+02DC  ˜ ˜  Small Tilde
      -	//  - U+02DD  ˝ ˝  Double Acute Accent
      -	// Latin Extended Additional, 1E00–1EFF
      -	var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
      -
      -	var reWhitespace = /\S/;
      -
      -	var wordDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/wordDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -	wordDiff.equals = function (left, right) {
      -	  return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
      -	};
      -	wordDiff.tokenize = function (value) {
      -	  var tokens = value.split(/(\s+|\b)/);
      -
      -	  // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.
      -	  for (var i = 0; i < tokens.length - 1; i++) {
      -	    // If we have an empty string in the next field and we have only word chars before and after, merge
      -	    if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
      -	      tokens[i] += tokens[i + 2];
      -	      tokens.splice(i + 1, 2);
      -	      i--;
      -	    }
      -	  }
      -
      -	  return tokens;
      -	};
      -
      -	function diffWords(oldStr, newStr, callback) {
      -	  var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true });
      -	  return wordDiff.diff(oldStr, newStr, options);
      -	}
      -	function diffWordsWithSpace(oldStr, newStr, callback) {
      -	  return wordDiff.diff(oldStr, newStr, callback);
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3dvcmQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztnQ0ErQ2dCO3lEQUlBOztBQW5EaEI7Ozs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQU0sb0JBQW9CLCtEQUFwQjs7QUFFTixJQUFNLGVBQWUsSUFBZjs7QUFFQyxJQUFNLCtFQUFXLHFFQUFYO0FBQ2IsU0FBUyxNQUFULEdBQWtCLFVBQVMsSUFBVCxFQUFlLEtBQWYsRUFBc0I7QUFDdEMsU0FBTyxTQUFTLEtBQVQsSUFBbUIsS0FBSyxPQUFMLENBQWEsZ0JBQWIsSUFBaUMsQ0FBQyxhQUFhLElBQWIsQ0FBa0IsSUFBbEIsQ0FBRCxJQUE0QixDQUFDLGFBQWEsSUFBYixDQUFrQixLQUFsQixDQUFELENBRGpEO0NBQXRCO0FBR2xCLFNBQVMsUUFBVCxHQUFvQixVQUFTLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSSxTQUFTLE1BQU0sS0FBTixDQUFZLFVBQVosQ0FBVDs7O0FBRDhCLE9BSTdCLElBQUksSUFBSSxDQUFKLEVBQU8sSUFBSSxPQUFPLE1BQVAsR0FBZ0IsQ0FBaEIsRUFBbUIsR0FBdkMsRUFBNEM7O0FBRTFDLFFBQUksQ0FBQyxPQUFPLElBQUksQ0FBSixDQUFSLElBQWtCLE9BQU8sSUFBSSxDQUFKLENBQXpCLElBQ0ssa0JBQWtCLElBQWxCLENBQXVCLE9BQU8sQ0FBUCxDQUF2QixDQURMLElBRUssa0JBQWtCLElBQWxCLENBQXVCLE9BQU8sSUFBSSxDQUFKLENBQTlCLENBRkwsRUFFNEM7QUFDOUMsYUFBTyxDQUFQLEtBQWEsT0FBTyxJQUFJLENBQUosQ0FBcEIsQ0FEOEM7QUFFOUMsYUFBTyxNQUFQLENBQWMsSUFBSSxDQUFKLEVBQU8sQ0FBckIsRUFGOEM7QUFHOUMsVUFIOEM7S0FGaEQ7R0FGRjs7QUFXQSxTQUFPLE1BQVAsQ0Fma0M7Q0FBaEI7O0FBa0JiLFNBQVMsU0FBVCxDQUFtQixNQUFuQixFQUEyQixNQUEzQixFQUFtQyxRQUFuQyxFQUE2QztBQUNsRCxNQUFJLFVBQVUsOEVBQWdCLFFBQWhCLEVBQTBCLEVBQUMsa0JBQWtCLElBQWxCLEVBQTNCLENBQVYsQ0FEOEM7QUFFbEQsU0FBTyxTQUFTLElBQVQsQ0FBYyxNQUFkLEVBQXNCLE1BQXRCLEVBQThCLE9BQTlCLENBQVAsQ0FGa0Q7Q0FBN0M7QUFJQSxTQUFTLGtCQUFULENBQTRCLE1BQTVCLEVBQW9DLE1BQXBDLEVBQTRDLFFBQTVDLEVBQXNEO0FBQzNELFNBQU8sU0FBUyxJQUFULENBQWMsTUFBZCxFQUFzQixNQUF0QixFQUE4QixRQUE5QixDQUFQLENBRDJEO0NBQXREIiwiZmlsZSI6IndvcmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGlmZiBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtnZW5lcmF0ZU9wdGlvbnN9IGZyb20gJy4uL3V0aWwvcGFyYW1zJztcblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW5fc2NyaXB0X2luX1VuaWNvZGVcbi8vXG4vLyBSYW5nZXMgYW5kIGV4Y2VwdGlvbnM6XG4vLyBMYXRpbi0xIFN1cHBsZW1lbnQsIDAwODDigJMwMEZGXG4vLyAgLSBVKzAwRDcgIMOXIE11bHRpcGxpY2F0aW9uIHNpZ25cbi8vICAtIFUrMDBGNyAgw7cgRGl2aXNpb24gc2lnblxuLy8gTGF0aW4gRXh0ZW5kZWQtQSwgMDEwMOKAkzAxN0Zcbi8vIExhdGluIEV4dGVuZGVkLUIsIDAxODDigJMwMjRGXG4vLyBJUEEgRXh0ZW5zaW9ucywgMDI1MOKAkzAyQUZcbi8vIFNwYWNpbmcgTW9kaWZpZXIgTGV0dGVycywgMDJCMOKAkzAyRkZcbi8vICAtIFUrMDJDNyAgy4cgJiM3MTE7ICBDYXJvblxuLy8gIC0gVSswMkQ4ICDLmCAmIzcyODsgIEJyZXZlXG4vLyAgLSBVKzAyRDkgIMuZICYjNzI5OyAgRG90IEFib3ZlXG4vLyAgLSBVKzAyREEgIMuaICYjNzMwOyAgUmluZyBBYm92ZVxuLy8gIC0gVSswMkRCICDLmyAmIzczMTsgIE9nb25la1xuLy8gIC0gVSswMkRDICDLnCAmIzczMjsgIFNtYWxsIFRpbGRlXG4vLyAgLSBVKzAyREQgIMudICYjNzMzOyAgRG91YmxlIEFjdXRlIEFjY2VudFxuLy8gTGF0aW4gRXh0ZW5kZWQgQWRkaXRpb25hbCwgMUUwMOKAkzFFRkZcbmNvbnN0IGV4dGVuZGVkV29yZENoYXJzID0gL15bYS16QS1aXFx1e0MwfS1cXHV7RkZ9XFx1e0Q4fS1cXHV7RjZ9XFx1e0Y4fS1cXHV7MkM2fVxcdXsyQzh9LVxcdXsyRDd9XFx1ezJERX0tXFx1ezJGRn1cXHV7MUUwMH0tXFx1ezFFRkZ9XSskL3U7XG5cbmNvbnN0IHJlV2hpdGVzcGFjZSA9IC9cXFMvO1xuXG5leHBvcnQgY29uc3Qgd29yZERpZmYgPSBuZXcgRGlmZigpO1xud29yZERpZmYuZXF1YWxzID0gZnVuY3Rpb24obGVmdCwgcmlnaHQpIHtcbiAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0IHx8ICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSAmJiAhcmVXaGl0ZXNwYWNlLnRlc3QobGVmdCkgJiYgIXJlV2hpdGVzcGFjZS50ZXN0KHJpZ2h0KSk7XG59O1xud29yZERpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgdG9rZW5zID0gdmFsdWUuc3BsaXQoLyhcXHMrfFxcYikvKTtcblxuICAvLyBKb2luIHRoZSBib3VuZGFyeSBzcGxpdHMgdGhhdCB3ZSBkbyBub3QgY29uc2lkZXIgdG8gYmUgYm91bmRhcmllcy4gVGhpcyBpcyBwcmltYXJpbHkgdGhlIGV4dGVuZGVkIExhdGluIGNoYXJhY3RlciBzZXQuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIC8vIElmIHdlIGhhdmUgYW4gZW1wdHkgc3RyaW5nIGluIHRoZSBuZXh0IGZpZWxkIGFuZCB3ZSBoYXZlIG9ubHkgd29yZCBjaGFycyBiZWZvcmUgYW5kIGFmdGVyLCBtZXJnZVxuICAgIGlmICghdG9rZW5zW2kgKyAxXSAmJiB0b2tlbnNbaSArIDJdXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaV0pXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaSArIDJdKSkge1xuICAgICAgdG9rZW5zW2ldICs9IHRva2Vuc1tpICsgMl07XG4gICAgICB0b2tlbnMuc3BsaWNlKGkgKyAxLCAyKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3JkcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHtcbiAgbGV0IG9wdGlvbnMgPSBnZW5lcmF0ZU9wdGlvbnMoY2FsbGJhY2ssIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkaWZmV29yZHNXaXRoU3BhY2Uob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7XG59XG4iXX0=
      -
      -
      -/***/ },
      -/* 4 */
      -/***/ function(module, exports) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports. /*istanbul ignore end*/generateOptions = generateOptions;
      -	function generateOptions(options, defaults) {
      -	  if (typeof options === 'function') {
      -	    defaults.callback = options;
      -	  } else if (options) {
      -	    for (var name in options) {
      -	      /* istanbul ignore else */
      -	      if (options.hasOwnProperty(name)) {
      -	        defaults[name] = options[name];
      -	      }
      -	    }
      -	  }
      -	  return defaults;
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BhcmFtcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCO0FBQVQsU0FBUyxlQUFULENBQXlCLE9BQXpCLEVBQWtDLFFBQWxDLEVBQTRDO0FBQ2pELE1BQUksT0FBTyxPQUFQLEtBQW1CLFVBQW5CLEVBQStCO0FBQ2pDLGFBQVMsUUFBVCxHQUFvQixPQUFwQixDQURpQztHQUFuQyxNQUVPLElBQUksT0FBSixFQUFhO0FBQ2xCLFNBQUssSUFBSSxJQUFKLElBQVksT0FBakIsRUFBMEI7O0FBRXhCLFVBQUksUUFBUSxjQUFSLENBQXVCLElBQXZCLENBQUosRUFBa0M7QUFDaEMsaUJBQVMsSUFBVCxJQUFpQixRQUFRLElBQVIsQ0FBakIsQ0FEZ0M7T0FBbEM7S0FGRjtHQURLO0FBUVAsU0FBTyxRQUFQLENBWGlEO0NBQTVDIiwiZmlsZSI6InBhcmFtcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZU9wdGlvbnMob3B0aW9ucywgZGVmYXVsdHMpIHtcbiAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZGVmYXVsdHMuY2FsbGJhY2sgPSBvcHRpb25zO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMpIHtcbiAgICBmb3IgKGxldCBuYW1lIGluIG9wdGlvbnMpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICBkZWZhdWx0c1tuYW1lXSA9IG9wdGlvbnNbbmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBkZWZhdWx0cztcbn1cbiJdfQ==
      -
      -
      -/***/ },
      -/* 5 */
      -/***/ function(module, exports, __webpack_require__) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports.lineDiff = undefined;
      -	exports. /*istanbul ignore end*/diffLines = diffLines;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = diffTrimmedLines;
      -
      -	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	var _base2 = _interopRequireDefault(_base);
      -
      -	/*istanbul ignore end*/
      -	var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -	/*istanbul ignore end*/var lineDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/lineDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -	lineDiff.tokenize = function (value) {
      -	  var retLines = [],
      -	      linesAndNewlines = value.split(/(\n|\r\n)/);
      -
      -	  // Ignore the final empty token that occurs if the string ends with a new line
      -	  if (!linesAndNewlines[linesAndNewlines.length - 1]) {
      -	    linesAndNewlines.pop();
      -	  }
      -
      -	  // Merge the content and line separators into single tokens
      -	  for (var i = 0; i < linesAndNewlines.length; i++) {
      -	    var line = linesAndNewlines[i];
      -
      -	    if (i % 2 && !this.options.newlineIsToken) {
      -	      retLines[retLines.length - 1] += line;
      -	    } else {
      -	      if (this.options.ignoreWhitespace) {
      -	        line = line.trim();
      -	      }
      -	      retLines.push(line);
      -	    }
      -	  }
      -
      -	  return retLines;
      -	};
      -
      -	function diffLines(oldStr, newStr, callback) {
      -	  return lineDiff.diff(oldStr, newStr, callback);
      -	}
      -	function diffTrimmedLines(oldStr, newStr, callback) {
      -	  var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true });
      -	  return lineDiff.diff(oldStr, newStr, options);
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2xpbmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztnQ0E4QmdCO3lEQUNBOztBQS9CaEI7Ozs7OztBQUNBOzs7Ozt1QkFFTyxJQUFNLCtFQUFXLHFFQUFYO0FBQ2IsU0FBUyxRQUFULEdBQW9CLFVBQVMsS0FBVCxFQUFnQjtBQUNsQyxNQUFJLFdBQVcsRUFBWDtNQUNBLG1CQUFtQixNQUFNLEtBQU4sQ0FBWSxXQUFaLENBQW5COzs7QUFGOEIsTUFLOUIsQ0FBQyxpQkFBaUIsaUJBQWlCLE1BQWpCLEdBQTBCLENBQTFCLENBQWxCLEVBQWdEO0FBQ2xELHFCQUFpQixHQUFqQixHQURrRDtHQUFwRDs7O0FBTGtDLE9BVTdCLElBQUksSUFBSSxDQUFKLEVBQU8sSUFBSSxpQkFBaUIsTUFBakIsRUFBeUIsR0FBN0MsRUFBa0Q7QUFDaEQsUUFBSSxPQUFPLGlCQUFpQixDQUFqQixDQUFQLENBRDRDOztBQUdoRCxRQUFJLElBQUksQ0FBSixJQUFTLENBQUMsS0FBSyxPQUFMLENBQWEsY0FBYixFQUE2QjtBQUN6QyxlQUFTLFNBQVMsTUFBVCxHQUFrQixDQUFsQixDQUFULElBQWlDLElBQWpDLENBRHlDO0tBQTNDLE1BRU87QUFDTCxVQUFJLEtBQUssT0FBTCxDQUFhLGdCQUFiLEVBQStCO0FBQ2pDLGVBQU8sS0FBSyxJQUFMLEVBQVAsQ0FEaUM7T0FBbkM7QUFHQSxlQUFTLElBQVQsQ0FBYyxJQUFkLEVBSks7S0FGUDtHQUhGOztBQWFBLFNBQU8sUUFBUCxDQXZCa0M7Q0FBaEI7O0FBMEJiLFNBQVMsU0FBVCxDQUFtQixNQUFuQixFQUEyQixNQUEzQixFQUFtQyxRQUFuQyxFQUE2QztBQUFFLFNBQU8sU0FBUyxJQUFULENBQWMsTUFBZCxFQUFzQixNQUF0QixFQUE4QixRQUE5QixDQUFQLENBQUY7Q0FBN0M7QUFDQSxTQUFTLGdCQUFULENBQTBCLE1BQTFCLEVBQWtDLE1BQWxDLEVBQTBDLFFBQTFDLEVBQW9EO0FBQ3pELE1BQUksVUFBVSw4RUFBZ0IsUUFBaEIsRUFBMEIsRUFBQyxrQkFBa0IsSUFBbEIsRUFBM0IsQ0FBVixDQURxRDtBQUV6RCxTQUFPLFNBQVMsSUFBVCxDQUFjLE1BQWQsRUFBc0IsTUFBdEIsRUFBOEIsT0FBOUIsQ0FBUCxDQUZ5RDtDQUFwRCIsImZpbGUiOiJsaW5lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7Z2VuZXJhdGVPcHRpb25zfSBmcm9tICcuLi91dGlsL3BhcmFtcyc7XG5cbmV4cG9ydCBjb25zdCBsaW5lRGlmZiA9IG5ldyBEaWZmKCk7XG5saW5lRGlmZi50b2tlbml6ZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGxldCByZXRMaW5lcyA9IFtdLFxuICAgICAgbGluZXNBbmROZXdsaW5lcyA9IHZhbHVlLnNwbGl0KC8oXFxufFxcclxcbikvKTtcblxuICAvLyBJZ25vcmUgdGhlIGZpbmFsIGVtcHR5IHRva2VuIHRoYXQgb2NjdXJzIGlmIHRoZSBzdHJpbmcgZW5kcyB3aXRoIGEgbmV3IGxpbmVcbiAgaWYgKCFsaW5lc0FuZE5ld2xpbmVzW2xpbmVzQW5kTmV3bGluZXMubGVuZ3RoIC0gMV0pIHtcbiAgICBsaW5lc0FuZE5ld2xpbmVzLnBvcCgpO1xuICB9XG5cbiAgLy8gTWVyZ2UgdGhlIGNvbnRlbnQgYW5kIGxpbmUgc2VwYXJhdG9ycyBpbnRvIHNpbmdsZSB0b2tlbnNcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lc0FuZE5ld2xpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGxpbmUgPSBsaW5lc0FuZE5ld2xpbmVzW2ldO1xuXG4gICAgaWYgKGkgJSAyICYmICF0aGlzLm9wdGlvbnMubmV3bGluZUlzVG9rZW4pIHtcbiAgICAgIHJldExpbmVzW3JldExpbmVzLmxlbmd0aCAtIDFdICs9IGxpbmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSkge1xuICAgICAgICBsaW5lID0gbGluZS50cmltKCk7XG4gICAgICB9XG4gICAgICByZXRMaW5lcy5wdXNoKGxpbmUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXRMaW5lcztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmTGluZXMob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7IHJldHVybiBsaW5lRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbmV4cG9ydCBmdW5jdGlvbiBkaWZmVHJpbW1lZExpbmVzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykge1xuICBsZXQgb3B0aW9ucyA9IGdlbmVyYXRlT3B0aW9ucyhjYWxsYmFjaywge2lnbm9yZVdoaXRlc3BhY2U6IHRydWV9KTtcbiAgcmV0dXJuIGxpbmVEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIG9wdGlvbnMpO1xufVxuIl19
      -
      -
      -/***/ },
      -/* 6 */
      -/***/ function(module, exports, __webpack_require__) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports.sentenceDiff = undefined;
      -	exports. /*istanbul ignore end*/diffSentences = diffSentences;
      -
      -	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	var _base2 = _interopRequireDefault(_base);
      -
      -	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -	/*istanbul ignore end*/var sentenceDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/sentenceDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -	sentenceDiff.tokenize = function (value) {
      -	  return value.split(/(\S.+?[.!?])(?=\s+|$)/);
      -	};
      -
      -	function diffSentences(oldStr, newStr, callback) {
      -	  return sentenceDiff.diff(oldStr, newStr, callback);
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3NlbnRlbmNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Z0NBUWdCOztBQVJoQjs7Ozs7Ozt1QkFHTyxJQUFNLHVGQUFlLHFFQUFmO0FBQ2IsYUFBYSxRQUFiLEdBQXdCLFVBQVMsS0FBVCxFQUFnQjtBQUN0QyxTQUFPLE1BQU0sS0FBTixDQUFZLHVCQUFaLENBQVAsQ0FEc0M7Q0FBaEI7O0FBSWpCLFNBQVMsYUFBVCxDQUF1QixNQUF2QixFQUErQixNQUEvQixFQUF1QyxRQUF2QyxFQUFpRDtBQUFFLFNBQU8sYUFBYSxJQUFiLENBQWtCLE1BQWxCLEVBQTBCLE1BQTFCLEVBQWtDLFFBQWxDLENBQVAsQ0FBRjtDQUFqRCIsImZpbGUiOiJzZW50ZW5jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cblxuZXhwb3J0IGNvbnN0IHNlbnRlbmNlRGlmZiA9IG5ldyBEaWZmKCk7XG5zZW50ZW5jZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhcXFMuKz9bLiE/XSkoPz1cXHMrfCQpLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZlNlbnRlbmNlcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIHNlbnRlbmNlRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbiJdfQ==
      -
      -
      -/***/ },
      -/* 7 */
      -/***/ function(module, exports, __webpack_require__) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports.cssDiff = undefined;
      -	exports. /*istanbul ignore end*/diffCss = diffCss;
      -
      -	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	var _base2 = _interopRequireDefault(_base);
      -
      -	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -	/*istanbul ignore end*/var cssDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/cssDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -	cssDiff.tokenize = function (value) {
      -	  return value.split(/([{}:;,]|\s+)/);
      -	};
      -
      -	function diffCss(oldStr, newStr, callback) {
      -	  return cssDiff.diff(oldStr, newStr, callback);
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Nzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O2dDQU9nQjs7QUFQaEI7Ozs7Ozs7dUJBRU8sSUFBTSw2RUFBVSxxRUFBVjtBQUNiLFFBQVEsUUFBUixHQUFtQixVQUFTLEtBQVQsRUFBZ0I7QUFDakMsU0FBTyxNQUFNLEtBQU4sQ0FBWSxlQUFaLENBQVAsQ0FEaUM7Q0FBaEI7O0FBSVosU0FBUyxPQUFULENBQWlCLE1BQWpCLEVBQXlCLE1BQXpCLEVBQWlDLFFBQWpDLEVBQTJDO0FBQUUsU0FBTyxRQUFRLElBQVIsQ0FBYSxNQUFiLEVBQXFCLE1BQXJCLEVBQTZCLFFBQTdCLENBQVAsQ0FBRjtDQUEzQyIsImZpbGUiOiJjc3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGlmZiBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgY29uc3QgY3NzRGlmZiA9IG5ldyBEaWZmKCk7XG5jc3NEaWZmLnRva2VuaXplID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnNwbGl0KC8oW3t9OjssXXxcXHMrKS8pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDc3Mob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7IHJldHVybiBjc3NEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKTsgfVxuIl19
      -
      -
      -/***/ },
      -/* 8 */
      -/***/ function(module, exports, __webpack_require__) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports.jsonDiff = undefined;
      -
      -	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
      -
      -	exports. /*istanbul ignore end*/diffJson = diffJson;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = canonicalize;
      -
      -	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	var _base2 = _interopRequireDefault(_base);
      -
      -	/*istanbul ignore end*/
      -	var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -	/*istanbul ignore end*/
      -
      -	var objectPrototypeToString = Object.prototype.toString;
      -
      -	var jsonDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/jsonDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -	// Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
      -	// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
      -	jsonDiff.useLongestToken = true;
      -
      -	jsonDiff.tokenize = /*istanbul ignore start*/_line.lineDiff. /*istanbul ignore end*/tokenize;
      -	jsonDiff.castInput = function (value) {
      -	  return typeof value === 'string' ? value : JSON.stringify(canonicalize(value), undefined, '  ');
      -	};
      -	jsonDiff.equals = function (left, right) {
      -	  return (/*istanbul ignore start*/_base2.default. /*istanbul ignore end*/prototype.equals(left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'))
      -	  );
      -	};
      -
      -	function diffJson(oldObj, newObj, callback) {
      -	  return jsonDiff.diff(oldObj, newObj, callback);
      -	}
      -
      -	// This function handles the presence of circular references by bailing out when encountering an
      -	// object that is already on the "stack" of items being processed.
      -	function canonicalize(obj, stack, replacementStack) {
      -	  stack = stack || [];
      -	  replacementStack = replacementStack || [];
      -
      -	  var i = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -
      -	  for (i = 0; i < stack.length; i += 1) {
      -	    if (stack[i] === obj) {
      -	      return replacementStack[i];
      -	    }
      -	  }
      -
      -	  var canonicalizedObj = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -
      -	  if ('[object Array]' === objectPrototypeToString.call(obj)) {
      -	    stack.push(obj);
      -	    canonicalizedObj = new Array(obj.length);
      -	    replacementStack.push(canonicalizedObj);
      -	    for (i = 0; i < obj.length; i += 1) {
      -	      canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack);
      -	    }
      -	    stack.pop();
      -	    replacementStack.pop();
      -	    return canonicalizedObj;
      -	  }
      -
      -	  if (obj && obj.toJSON) {
      -	    obj = obj.toJSON();
      -	  }
      -
      -	  if ( /*istanbul ignore start*/(typeof /*istanbul ignore end*/obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null) {
      -	    stack.push(obj);
      -	    canonicalizedObj = {};
      -	    replacementStack.push(canonicalizedObj);
      -	    var sortedKeys = [],
      -	        key = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -	    for (key in obj) {
      -	      /* istanbul ignore else */
      -	      if (obj.hasOwnProperty(key)) {
      -	        sortedKeys.push(key);
      -	      }
      -	    }
      -	    sortedKeys.sort();
      -	    for (i = 0; i < sortedKeys.length; i += 1) {
      -	      key = sortedKeys[i];
      -	      canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack);
      -	    }
      -	    stack.pop();
      -	    replacementStack.pop();
      -	  } else {
      -	    canonicalizedObj = obj;
      -	  }
      -	  return canonicalizedObj;
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2pzb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztnQ0FtQmdCO3lEQUtBOztBQXhCaEI7Ozs7OztBQUNBOzs7Ozs7O0FBRUEsSUFBTSwwQkFBMEIsT0FBTyxTQUFQLENBQWlCLFFBQWpCOztBQUd6QixJQUFNLCtFQUFXLHFFQUFYOzs7QUFHYixTQUFTLGVBQVQsR0FBMkIsSUFBM0I7O0FBRUEsU0FBUyxRQUFULEdBQW9CLGdFQUFTLFFBQVQ7QUFDcEIsU0FBUyxTQUFULEdBQXFCLFVBQVMsS0FBVCxFQUFnQjtBQUNuQyxTQUFPLE9BQU8sS0FBUCxLQUFpQixRQUFqQixHQUE0QixLQUE1QixHQUFvQyxLQUFLLFNBQUwsQ0FBZSxhQUFhLEtBQWIsQ0FBZixFQUFvQyxTQUFwQyxFQUErQyxJQUEvQyxDQUFwQyxDQUQ0QjtDQUFoQjtBQUdyQixTQUFTLE1BQVQsR0FBa0IsVUFBUyxJQUFULEVBQWUsS0FBZixFQUFzQjtBQUN0QyxTQUFPLGlFQUFLLFNBQUwsQ0FBZSxNQUFmLENBQXNCLEtBQUssT0FBTCxDQUFhLFlBQWIsRUFBMkIsSUFBM0IsQ0FBdEIsRUFBd0QsTUFBTSxPQUFOLENBQWMsWUFBZCxFQUE0QixJQUE1QixDQUF4RCxDQUFQO0lBRHNDO0NBQXRCOztBQUlYLFNBQVMsUUFBVCxDQUFrQixNQUFsQixFQUEwQixNQUExQixFQUFrQyxRQUFsQyxFQUE0QztBQUFFLFNBQU8sU0FBUyxJQUFULENBQWMsTUFBZCxFQUFzQixNQUF0QixFQUE4QixRQUE5QixDQUFQLENBQUY7Q0FBNUM7Ozs7QUFLQSxTQUFTLFlBQVQsQ0FBc0IsR0FBdEIsRUFBMkIsS0FBM0IsRUFBa0MsZ0JBQWxDLEVBQW9EO0FBQ3pELFVBQVEsU0FBUyxFQUFULENBRGlEO0FBRXpELHFCQUFtQixvQkFBb0IsRUFBcEIsQ0FGc0M7O0FBSXpELE1BQUksMkRBQUosQ0FKeUQ7O0FBTXpELE9BQUssSUFBSSxDQUFKLEVBQU8sSUFBSSxNQUFNLE1BQU4sRUFBYyxLQUFLLENBQUwsRUFBUTtBQUNwQyxRQUFJLE1BQU0sQ0FBTixNQUFhLEdBQWIsRUFBa0I7QUFDcEIsYUFBTyxpQkFBaUIsQ0FBakIsQ0FBUCxDQURvQjtLQUF0QjtHQURGOztBQU1BLE1BQUksMEVBQUosQ0FaeUQ7O0FBY3pELE1BQUkscUJBQXFCLHdCQUF3QixJQUF4QixDQUE2QixHQUE3QixDQUFyQixFQUF3RDtBQUMxRCxVQUFNLElBQU4sQ0FBVyxHQUFYLEVBRDBEO0FBRTFELHVCQUFtQixJQUFJLEtBQUosQ0FBVSxJQUFJLE1BQUosQ0FBN0IsQ0FGMEQ7QUFHMUQscUJBQWlCLElBQWpCLENBQXNCLGdCQUF0QixFQUgwRDtBQUkxRCxTQUFLLElBQUksQ0FBSixFQUFPLElBQUksSUFBSSxNQUFKLEVBQVksS0FBSyxDQUFMLEVBQVE7QUFDbEMsdUJBQWlCLENBQWpCLElBQXNCLGFBQWEsSUFBSSxDQUFKLENBQWIsRUFBcUIsS0FBckIsRUFBNEIsZ0JBQTVCLENBQXRCLENBRGtDO0tBQXBDO0FBR0EsVUFBTSxHQUFOLEdBUDBEO0FBUTFELHFCQUFpQixHQUFqQixHQVIwRDtBQVMxRCxXQUFPLGdCQUFQLENBVDBEO0dBQTVEOztBQVlBLE1BQUksT0FBTyxJQUFJLE1BQUosRUFBWTtBQUNyQixVQUFNLElBQUksTUFBSixFQUFOLENBRHFCO0dBQXZCOztBQUlBLE1BQUkseURBQU8saURBQVAsS0FBZSxRQUFmLElBQTJCLFFBQVEsSUFBUixFQUFjO0FBQzNDLFVBQU0sSUFBTixDQUFXLEdBQVgsRUFEMkM7QUFFM0MsdUJBQW1CLEVBQW5CLENBRjJDO0FBRzNDLHFCQUFpQixJQUFqQixDQUFzQixnQkFBdEIsRUFIMkM7QUFJM0MsUUFBSSxhQUFhLEVBQWI7UUFDQSw2REFESixDQUoyQztBQU0zQyxTQUFLLEdBQUwsSUFBWSxHQUFaLEVBQWlCOztBQUVmLFVBQUksSUFBSSxjQUFKLENBQW1CLEdBQW5CLENBQUosRUFBNkI7QUFDM0IsbUJBQVcsSUFBWCxDQUFnQixHQUFoQixFQUQyQjtPQUE3QjtLQUZGO0FBTUEsZUFBVyxJQUFYLEdBWjJDO0FBYTNDLFNBQUssSUFBSSxDQUFKLEVBQU8sSUFBSSxXQUFXLE1BQVgsRUFBbUIsS0FBSyxDQUFMLEVBQVE7QUFDekMsWUFBTSxXQUFXLENBQVgsQ0FBTixDQUR5QztBQUV6Qyx1QkFBaUIsR0FBakIsSUFBd0IsYUFBYSxJQUFJLEdBQUosQ0FBYixFQUF1QixLQUF2QixFQUE4QixnQkFBOUIsQ0FBeEIsQ0FGeUM7S0FBM0M7QUFJQSxVQUFNLEdBQU4sR0FqQjJDO0FBa0IzQyxxQkFBaUIsR0FBakIsR0FsQjJDO0dBQTdDLE1BbUJPO0FBQ0wsdUJBQW1CLEdBQW5CLENBREs7R0FuQlA7QUFzQkEsU0FBTyxnQkFBUCxDQXBEeUQ7Q0FBcEQiLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge2xpbmVEaWZmfSBmcm9tICcuL2xpbmUnO1xuXG5jb25zdCBvYmplY3RQcm90b3R5cGVUb1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cblxuZXhwb3J0IGNvbnN0IGpzb25EaWZmID0gbmV3IERpZmYoKTtcbi8vIERpc2NyaW1pbmF0ZSBiZXR3ZWVuIHR3byBsaW5lcyBvZiBwcmV0dHktcHJpbnRlZCwgc2VyaWFsaXplZCBKU09OIHdoZXJlIG9uZSBvZiB0aGVtIGhhcyBhXG4vLyBkYW5nbGluZyBjb21tYSBhbmQgdGhlIG90aGVyIGRvZXNuJ3QuIFR1cm5zIG91dCBpbmNsdWRpbmcgdGhlIGRhbmdsaW5nIGNvbW1hIHlpZWxkcyB0aGUgbmljZXN0IG91dHB1dDpcbmpzb25EaWZmLnVzZUxvbmdlc3RUb2tlbiA9IHRydWU7XG5cbmpzb25EaWZmLnRva2VuaXplID0gbGluZURpZmYudG9rZW5pemU7XG5qc29uRGlmZi5jYXN0SW5wdXQgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkoY2Fub25pY2FsaXplKHZhbHVlKSwgdW5kZWZpbmVkLCAnICAnKTtcbn07XG5qc29uRGlmZi5lcXVhbHMgPSBmdW5jdGlvbihsZWZ0LCByaWdodCkge1xuICByZXR1cm4gRGlmZi5wcm90b3R5cGUuZXF1YWxzKGxlZnQucmVwbGFjZSgvLChbXFxyXFxuXSkvZywgJyQxJyksIHJpZ2h0LnJlcGxhY2UoLywoW1xcclxcbl0pL2csICckMScpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmSnNvbihvbGRPYmosIG5ld09iaiwgY2FsbGJhY2spIHsgcmV0dXJuIGpzb25EaWZmLmRpZmYob2xkT2JqLCBuZXdPYmosIGNhbGxiYWNrKTsgfVxuXG5cbi8vIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyB0aGUgcHJlc2VuY2Ugb2YgY2lyY3VsYXIgcmVmZXJlbmNlcyBieSBiYWlsaW5nIG91dCB3aGVuIGVuY291bnRlcmluZyBhblxuLy8gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBvbiB0aGUgXCJzdGFja1wiIG9mIGl0ZW1zIGJlaW5nIHByb2Nlc3NlZC5cbmV4cG9ydCBmdW5jdGlvbiBjYW5vbmljYWxpemUob2JqLCBzdGFjaywgcmVwbGFjZW1lbnRTdGFjaykge1xuICBzdGFjayA9IHN0YWNrIHx8IFtdO1xuICByZXBsYWNlbWVudFN0YWNrID0gcmVwbGFjZW1lbnRTdGFjayB8fCBbXTtcblxuICBsZXQgaTtcblxuICBmb3IgKGkgPSAwOyBpIDwgc3RhY2subGVuZ3RoOyBpICs9IDEpIHtcbiAgICBpZiAoc3RhY2tbaV0gPT09IG9iaikge1xuICAgICAgcmV0dXJuIHJlcGxhY2VtZW50U3RhY2tbaV07XG4gICAgfVxuICB9XG5cbiAgbGV0IGNhbm9uaWNhbGl6ZWRPYmo7XG5cbiAgaWYgKCdbb2JqZWN0IEFycmF5XScgPT09IG9iamVjdFByb3RvdHlwZVRvU3RyaW5nLmNhbGwob2JqKSkge1xuICAgIHN0YWNrLnB1c2gob2JqKTtcbiAgICBjYW5vbmljYWxpemVkT2JqID0gbmV3IEFycmF5KG9iai5sZW5ndGgpO1xuICAgIHJlcGxhY2VtZW50U3RhY2sucHVzaChjYW5vbmljYWxpemVkT2JqKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBjYW5vbmljYWxpemVkT2JqW2ldID0gY2Fub25pY2FsaXplKG9ialtpXSwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2spO1xuICAgIH1cbiAgICBzdGFjay5wb3AoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnBvcCgpO1xuICAgIHJldHVybiBjYW5vbmljYWxpemVkT2JqO1xuICB9XG5cbiAgaWYgKG9iaiAmJiBvYmoudG9KU09OKSB7XG4gICAgb2JqID0gb2JqLnRvSlNPTigpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkge1xuICAgIHN0YWNrLnB1c2gob2JqKTtcbiAgICBjYW5vbmljYWxpemVkT2JqID0ge307XG4gICAgcmVwbGFjZW1lbnRTdGFjay5wdXNoKGNhbm9uaWNhbGl6ZWRPYmopO1xuICAgIGxldCBzb3J0ZWRLZXlzID0gW10sXG4gICAgICAgIGtleTtcbiAgICBmb3IgKGtleSBpbiBvYmopIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgc29ydGVkS2V5cy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNvcnRlZEtleXMuc29ydCgpO1xuICAgIGZvciAoaSA9IDA7IGkgPCBzb3J0ZWRLZXlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBrZXkgPSBzb3J0ZWRLZXlzW2ldO1xuICAgICAgY2Fub25pY2FsaXplZE9ialtrZXldID0gY2Fub25pY2FsaXplKG9ialtrZXldLCBzdGFjaywgcmVwbGFjZW1lbnRTdGFjayk7XG4gICAgfVxuICAgIHN0YWNrLnBvcCgpO1xuICAgIHJlcGxhY2VtZW50U3RhY2sucG9wKCk7XG4gIH0gZWxzZSB7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IG9iajtcbiAgfVxuICByZXR1cm4gY2Fub25pY2FsaXplZE9iajtcbn1cbiJdfQ==
      -
      -
      -/***/ },
      -/* 9 */
      -/***/ function(module, exports, __webpack_require__) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports. /*istanbul ignore end*/applyPatch = applyPatch;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = applyPatches;
      -
      -	var /*istanbul ignore start*/_parse = __webpack_require__(10) /*istanbul ignore end*/;
      -
      -	var /*istanbul ignore start*/_distanceIterator = __webpack_require__(11) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	var _distanceIterator2 = _interopRequireDefault(_distanceIterator);
      -
      -	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -	/*istanbul ignore end*/function applyPatch(source, uniDiff) {
      -	  /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
      -
      -	  if (typeof uniDiff === 'string') {
      -	    uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff);
      -	  }
      -
      -	  if (Array.isArray(uniDiff)) {
      -	    if (uniDiff.length > 1) {
      -	      throw new Error('applyPatch only works with a single input.');
      -	    }
      -
      -	    uniDiff = uniDiff[0];
      -	  }
      -
      -	  // Apply the diff to the input
      -	  var lines = source.split('\n'),
      -	      hunks = uniDiff.hunks,
      -	      compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) /*istanbul ignore start*/{
      -	    return (/*istanbul ignore end*/line === patchContent
      -	    );
      -	  },
      -	      errorCount = 0,
      -	      fuzzFactor = options.fuzzFactor || 0,
      -	      minLine = 0,
      -	      offset = 0,
      -	      removeEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/,
      -	      addEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -
      -	  /**
      -	   * Checks if the hunk exactly fits on the provided location
      -	   */
      -	  function hunkFits(hunk, toPos) {
      -	    for (var j = 0; j < hunk.lines.length; j++) {
      -	      var line = hunk.lines[j],
      -	          operation = line[0],
      -	          content = line.substr(1);
      -
      -	      if (operation === ' ' || operation === '-') {
      -	        // Context sanity check
      -	        if (!compareLine(toPos + 1, lines[toPos], operation, content)) {
      -	          errorCount++;
      -
      -	          if (errorCount > fuzzFactor) {
      -	            return false;
      -	          }
      -	        }
      -	        toPos++;
      -	      }
      -	    }
      -
      -	    return true;
      -	  }
      -
      -	  // Search best fit offsets for each hunk based on the previous ones
      -	  for (var i = 0; i < hunks.length; i++) {
      -	    var hunk = hunks[i],
      -	        maxLine = lines.length - hunk.oldLines,
      -	        localOffset = 0,
      -	        toPos = offset + hunk.oldStart - 1;
      -
      -	    var iterator = /*istanbul ignore start*/(0, _distanceIterator2.default) /*istanbul ignore end*/(toPos, minLine, maxLine);
      -
      -	    for (; localOffset !== undefined; localOffset = iterator()) {
      -	      if (hunkFits(hunk, toPos + localOffset)) {
      -	        hunk.offset = offset += localOffset;
      -	        break;
      -	      }
      -	    }
      -
      -	    if (localOffset === undefined) {
      -	      return false;
      -	    }
      -
      -	    // Set lower text limit to end of the current hunk, so next ones don't try
      -	    // to fit over already patched text
      -	    minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
      -	  }
      -
      -	  // Apply patch hunks
      -	  for (var _i = 0; _i < hunks.length; _i++) {
      -	    var _hunk = hunks[_i],
      -	        _toPos = _hunk.offset + _hunk.newStart - 1;
      -	    if (_hunk.newLines == 0) {
      -	      _toPos++;
      -	    }
      -
      -	    for (var j = 0; j < _hunk.lines.length; j++) {
      -	      var line = _hunk.lines[j],
      -	          operation = line[0],
      -	          content = line.substr(1);
      -
      -	      if (operation === ' ') {
      -	        _toPos++;
      -	      } else if (operation === '-') {
      -	        lines.splice(_toPos, 1);
      -	        /* istanbul ignore else */
      -	      } else if (operation === '+') {
      -	          lines.splice(_toPos, 0, content);
      -	          _toPos++;
      -	        } else if (operation === '\\') {
      -	          var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
      -	          if (previousOperation === '+') {
      -	            removeEOFNL = true;
      -	          } else if (previousOperation === '-') {
      -	            addEOFNL = true;
      -	          }
      -	        }
      -	    }
      -	  }
      -
      -	  // Handle EOFNL insertion/removal
      -	  if (removeEOFNL) {
      -	    while (!lines[lines.length - 1]) {
      -	      lines.pop();
      -	    }
      -	  } else if (addEOFNL) {
      -	    lines.push('');
      -	  }
      -	  return lines.join('\n');
      -	}
      -
      -	// Wrapper that supports multiple file patches via callbacks.
      -	function applyPatches(uniDiff, options) {
      -	  if (typeof uniDiff === 'string') {
      -	    uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff);
      -	  }
      -
      -	  var currentIndex = 0;
      -	  function processIndex() {
      -	    var index = uniDiff[currentIndex++];
      -	    if (!index) {
      -	      return options.complete();
      -	    }
      -
      -	    options.loadFile(index, function (err, data) {
      -	      if (err) {
      -	        return options.complete(err);
      -	      }
      -
      -	      var updatedContent = applyPatch(data, index, options);
      -	      options.patched(index, updatedContent);
      -
      -	      setTimeout(processIndex, 0);
      -	    });
      -	  }
      -	  processIndex();
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9hcHBseS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBR2dCO3lEQXNIQTs7QUF6SGhCOztBQUNBOzs7Ozs7O3VCQUVPLFNBQVMsVUFBVCxDQUFvQixNQUFwQixFQUE0QixPQUE1QixFQUFtRDtzREFBZCxnRUFBVSxrQkFBSTs7QUFDeEQsTUFBSSxPQUFPLE9BQVAsS0FBbUIsUUFBbkIsRUFBNkI7QUFDL0IsY0FBVSx3RUFBVyxPQUFYLENBQVYsQ0FEK0I7R0FBakM7O0FBSUEsTUFBSSxNQUFNLE9BQU4sQ0FBYyxPQUFkLENBQUosRUFBNEI7QUFDMUIsUUFBSSxRQUFRLE1BQVIsR0FBaUIsQ0FBakIsRUFBb0I7QUFDdEIsWUFBTSxJQUFJLEtBQUosQ0FBVSw0Q0FBVixDQUFOLENBRHNCO0tBQXhCOztBQUlBLGNBQVUsUUFBUSxDQUFSLENBQVYsQ0FMMEI7R0FBNUI7OztBQUx3RCxNQWNwRCxRQUFRLE9BQU8sS0FBUCxDQUFhLElBQWIsQ0FBUjtNQUNBLFFBQVEsUUFBUSxLQUFSO01BRVIsY0FBYyxRQUFRLFdBQVIsSUFBd0IsVUFBQyxVQUFELEVBQWEsSUFBYixFQUFtQixTQUFuQixFQUE4QixZQUE5QjttQ0FBK0MsU0FBUyxZQUFUOztHQUEvQztNQUN0QyxhQUFhLENBQWI7TUFDQSxhQUFhLFFBQVEsVUFBUixJQUFzQixDQUF0QjtNQUNiLFVBQVUsQ0FBVjtNQUNBLFNBQVMsQ0FBVDtNQUVBLHFFQVRKO01BVUksa0VBVko7Ozs7O0FBZHdELFdBNkIvQyxRQUFULENBQWtCLElBQWxCLEVBQXdCLEtBQXhCLEVBQStCO0FBQzdCLFNBQUssSUFBSSxJQUFJLENBQUosRUFBTyxJQUFJLEtBQUssS0FBTCxDQUFXLE1BQVgsRUFBbUIsR0FBdkMsRUFBNEM7QUFDMUMsVUFBSSxPQUFPLEtBQUssS0FBTCxDQUFXLENBQVgsQ0FBUDtVQUNBLFlBQVksS0FBSyxDQUFMLENBQVo7VUFDQSxVQUFVLEtBQUssTUFBTCxDQUFZLENBQVosQ0FBVixDQUhzQzs7QUFLMUMsVUFBSSxjQUFjLEdBQWQsSUFBcUIsY0FBYyxHQUFkLEVBQW1COztBQUUxQyxZQUFJLENBQUMsWUFBWSxRQUFRLENBQVIsRUFBVyxNQUFNLEtBQU4sQ0FBdkIsRUFBcUMsU0FBckMsRUFBZ0QsT0FBaEQsQ0FBRCxFQUEyRDtBQUM3RCx1QkFENkQ7O0FBRzdELGNBQUksYUFBYSxVQUFiLEVBQXlCO0FBQzNCLG1CQUFPLEtBQVAsQ0FEMkI7V0FBN0I7U0FIRjtBQU9BLGdCQVQwQztPQUE1QztLQUxGOztBQWtCQSxXQUFPLElBQVAsQ0FuQjZCO0dBQS9COzs7QUE3QndELE9Bb0RuRCxJQUFJLElBQUksQ0FBSixFQUFPLElBQUksTUFBTSxNQUFOLEVBQWMsR0FBbEMsRUFBdUM7QUFDckMsUUFBSSxPQUFPLE1BQU0sQ0FBTixDQUFQO1FBQ0EsVUFBVSxNQUFNLE1BQU4sR0FBZSxLQUFLLFFBQUw7UUFDekIsY0FBYyxDQUFkO1FBQ0EsUUFBUSxTQUFTLEtBQUssUUFBTCxHQUFnQixDQUF6QixDQUp5Qjs7QUFNckMsUUFBSSxXQUFXLGlGQUFpQixLQUFqQixFQUF3QixPQUF4QixFQUFpQyxPQUFqQyxDQUFYLENBTmlDOztBQVFyQyxXQUFPLGdCQUFnQixTQUFoQixFQUEyQixjQUFjLFVBQWQsRUFBMEI7QUFDMUQsVUFBSSxTQUFTLElBQVQsRUFBZSxRQUFRLFdBQVIsQ0FBbkIsRUFBeUM7QUFDdkMsYUFBSyxNQUFMLEdBQWMsVUFBVSxXQUFWLENBRHlCO0FBRXZDLGNBRnVDO09BQXpDO0tBREY7O0FBT0EsUUFBSSxnQkFBZ0IsU0FBaEIsRUFBMkI7QUFDN0IsYUFBTyxLQUFQLENBRDZCO0tBQS9COzs7O0FBZnFDLFdBcUJyQyxHQUFVLEtBQUssTUFBTCxHQUFjLEtBQUssUUFBTCxHQUFnQixLQUFLLFFBQUwsQ0FyQkg7R0FBdkM7OztBQXBEd0QsT0E2RW5ELElBQUksS0FBSSxDQUFKLEVBQU8sS0FBSSxNQUFNLE1BQU4sRUFBYyxJQUFsQyxFQUF1QztBQUNyQyxRQUFJLFFBQU8sTUFBTSxFQUFOLENBQVA7UUFDQSxTQUFRLE1BQUssTUFBTCxHQUFjLE1BQUssUUFBTCxHQUFnQixDQUE5QixDQUZ5QjtBQUdyQyxRQUFJLE1BQUssUUFBTCxJQUFpQixDQUFqQixFQUFvQjtBQUFFLGVBQUY7S0FBeEI7O0FBRUEsU0FBSyxJQUFJLElBQUksQ0FBSixFQUFPLElBQUksTUFBSyxLQUFMLENBQVcsTUFBWCxFQUFtQixHQUF2QyxFQUE0QztBQUMxQyxVQUFJLE9BQU8sTUFBSyxLQUFMLENBQVcsQ0FBWCxDQUFQO1VBQ0EsWUFBWSxLQUFLLENBQUwsQ0FBWjtVQUNBLFVBQVUsS0FBSyxNQUFMLENBQVksQ0FBWixDQUFWLENBSHNDOztBQUsxQyxVQUFJLGNBQWMsR0FBZCxFQUFtQjtBQUNyQixpQkFEcUI7T0FBdkIsTUFFTyxJQUFJLGNBQWMsR0FBZCxFQUFtQjtBQUM1QixjQUFNLE1BQU4sQ0FBYSxNQUFiLEVBQW9CLENBQXBCOztBQUQ0QixPQUF2QixNQUdBLElBQUksY0FBYyxHQUFkLEVBQW1CO0FBQzVCLGdCQUFNLE1BQU4sQ0FBYSxNQUFiLEVBQW9CLENBQXBCLEVBQXVCLE9BQXZCLEVBRDRCO0FBRTVCLG1CQUY0QjtTQUF2QixNQUdBLElBQUksY0FBYyxJQUFkLEVBQW9CO0FBQzdCLGNBQUksb0JBQW9CLE1BQUssS0FBTCxDQUFXLElBQUksQ0FBSixDQUFYLEdBQW9CLE1BQUssS0FBTCxDQUFXLElBQUksQ0FBSixDQUFYLENBQWtCLENBQWxCLENBQXBCLEdBQTJDLElBQTNDLENBREs7QUFFN0IsY0FBSSxzQkFBc0IsR0FBdEIsRUFBMkI7QUFDN0IsMEJBQWMsSUFBZCxDQUQ2QjtXQUEvQixNQUVPLElBQUksc0JBQXNCLEdBQXRCLEVBQTJCO0FBQ3BDLHVCQUFXLElBQVgsQ0FEb0M7V0FBL0I7U0FKRjtLQWJUO0dBTEY7OztBQTdFd0QsTUEyR3BELFdBQUosRUFBaUI7QUFDZixXQUFPLENBQUMsTUFBTSxNQUFNLE1BQU4sR0FBZSxDQUFmLENBQVAsRUFBMEI7QUFDL0IsWUFBTSxHQUFOLEdBRCtCO0tBQWpDO0dBREYsTUFJTyxJQUFJLFFBQUosRUFBYztBQUNuQixVQUFNLElBQU4sQ0FBVyxFQUFYLEVBRG1CO0dBQWQ7QUFHUCxTQUFPLE1BQU0sSUFBTixDQUFXLElBQVgsQ0FBUCxDQWxId0Q7Q0FBbkQ7OztBQXNIQSxTQUFTLFlBQVQsQ0FBc0IsT0FBdEIsRUFBK0IsT0FBL0IsRUFBd0M7QUFDN0MsTUFBSSxPQUFPLE9BQVAsS0FBbUIsUUFBbkIsRUFBNkI7QUFDL0IsY0FBVSx3RUFBVyxPQUFYLENBQVYsQ0FEK0I7R0FBakM7O0FBSUEsTUFBSSxlQUFlLENBQWYsQ0FMeUM7QUFNN0MsV0FBUyxZQUFULEdBQXdCO0FBQ3RCLFFBQUksUUFBUSxRQUFRLGNBQVIsQ0FBUixDQURrQjtBQUV0QixRQUFJLENBQUMsS0FBRCxFQUFRO0FBQ1YsYUFBTyxRQUFRLFFBQVIsRUFBUCxDQURVO0tBQVo7O0FBSUEsWUFBUSxRQUFSLENBQWlCLEtBQWpCLEVBQXdCLFVBQVMsR0FBVCxFQUFjLElBQWQsRUFBb0I7QUFDMUMsVUFBSSxHQUFKLEVBQVM7QUFDUCxlQUFPLFFBQVEsUUFBUixDQUFpQixHQUFqQixDQUFQLENBRE87T0FBVDs7QUFJQSxVQUFJLGlCQUFpQixXQUFXLElBQVgsRUFBaUIsS0FBakIsRUFBd0IsT0FBeEIsQ0FBakIsQ0FMc0M7QUFNMUMsY0FBUSxPQUFSLENBQWdCLEtBQWhCLEVBQXVCLGNBQXZCLEVBTjBDOztBQVExQyxpQkFBVyxZQUFYLEVBQXlCLENBQXpCLEVBUjBDO0tBQXBCLENBQXhCLENBTnNCO0dBQXhCO0FBaUJBLGlCQXZCNkM7Q0FBeEMiLCJmaWxlIjoiYXBwbHkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3BhcnNlUGF0Y2h9IGZyb20gJy4vcGFyc2UnO1xuaW1wb3J0IGRpc3RhbmNlSXRlcmF0b3IgZnJvbSAnLi4vdXRpbC9kaXN0YW5jZS1pdGVyYXRvcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVBhdGNoKHNvdXJjZSwgdW5pRGlmZiwgb3B0aW9ucyA9IHt9KSB7XG4gIGlmICh0eXBlb2YgdW5pRGlmZiA9PT0gJ3N0cmluZycpIHtcbiAgICB1bmlEaWZmID0gcGFyc2VQYXRjaCh1bmlEaWZmKTtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHVuaURpZmYpKSB7XG4gICAgaWYgKHVuaURpZmYubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhcHBseVBhdGNoIG9ubHkgd29ya3Mgd2l0aCBhIHNpbmdsZSBpbnB1dC4nKTtcbiAgICB9XG5cbiAgICB1bmlEaWZmID0gdW5pRGlmZlswXTtcbiAgfVxuXG4gIC8vIEFwcGx5IHRoZSBkaWZmIHRvIHRoZSBpbnB1dFxuICBsZXQgbGluZXMgPSBzb3VyY2Uuc3BsaXQoJ1xcbicpLFxuICAgICAgaHVua3MgPSB1bmlEaWZmLmh1bmtzLFxuXG4gICAgICBjb21wYXJlTGluZSA9IG9wdGlvbnMuY29tcGFyZUxpbmUgfHwgKChsaW5lTnVtYmVyLCBsaW5lLCBvcGVyYXRpb24sIHBhdGNoQ29udGVudCkgPT4gbGluZSA9PT0gcGF0Y2hDb250ZW50KSxcbiAgICAgIGVycm9yQ291bnQgPSAwLFxuICAgICAgZnV6ekZhY3RvciA9IG9wdGlvbnMuZnV6ekZhY3RvciB8fCAwLFxuICAgICAgbWluTGluZSA9IDAsXG4gICAgICBvZmZzZXQgPSAwLFxuXG4gICAgICByZW1vdmVFT0ZOTCxcbiAgICAgIGFkZEVPRk5MO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGh1bmsgZXhhY3RseSBmaXRzIG9uIHRoZSBwcm92aWRlZCBsb2NhdGlvblxuICAgKi9cbiAgZnVuY3Rpb24gaHVua0ZpdHMoaHVuaywgdG9Qb3MpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGh1bmsubGluZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGxldCBsaW5lID0gaHVuay5saW5lc1tqXSxcbiAgICAgICAgICBvcGVyYXRpb24gPSBsaW5lWzBdLFxuICAgICAgICAgIGNvbnRlbnQgPSBsaW5lLnN1YnN0cigxKTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJyAnIHx8IG9wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgIC8vIENvbnRleHQgc2FuaXR5IGNoZWNrXG4gICAgICAgIGlmICghY29tcGFyZUxpbmUodG9Qb3MgKyAxLCBsaW5lc1t0b1Bvc10sIG9wZXJhdGlvbiwgY29udGVudCkpIHtcbiAgICAgICAgICBlcnJvckNvdW50Kys7XG5cbiAgICAgICAgICBpZiAoZXJyb3JDb3VudCA+IGZ1enpGYWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdG9Qb3MrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIFNlYXJjaCBiZXN0IGZpdCBvZmZzZXRzIGZvciBlYWNoIGh1bmsgYmFzZWQgb24gdGhlIHByZXZpb3VzIG9uZXNcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBodW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBodW5rID0gaHVua3NbaV0sXG4gICAgICAgIG1heExpbmUgPSBsaW5lcy5sZW5ndGggLSBodW5rLm9sZExpbmVzLFxuICAgICAgICBsb2NhbE9mZnNldCA9IDAsXG4gICAgICAgIHRvUG9zID0gb2Zmc2V0ICsgaHVuay5vbGRTdGFydCAtIDE7XG5cbiAgICBsZXQgaXRlcmF0b3IgPSBkaXN0YW5jZUl0ZXJhdG9yKHRvUG9zLCBtaW5MaW5lLCBtYXhMaW5lKTtcblxuICAgIGZvciAoOyBsb2NhbE9mZnNldCAhPT0gdW5kZWZpbmVkOyBsb2NhbE9mZnNldCA9IGl0ZXJhdG9yKCkpIHtcbiAgICAgIGlmIChodW5rRml0cyhodW5rLCB0b1BvcyArIGxvY2FsT2Zmc2V0KSkge1xuICAgICAgICBodW5rLm9mZnNldCA9IG9mZnNldCArPSBsb2NhbE9mZnNldDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGxvY2FsT2Zmc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBTZXQgbG93ZXIgdGV4dCBsaW1pdCB0byBlbmQgb2YgdGhlIGN1cnJlbnQgaHVuaywgc28gbmV4dCBvbmVzIGRvbid0IHRyeVxuICAgIC8vIHRvIGZpdCBvdmVyIGFscmVhZHkgcGF0Y2hlZCB0ZXh0XG4gICAgbWluTGluZSA9IGh1bmsub2Zmc2V0ICsgaHVuay5vbGRTdGFydCArIGh1bmsub2xkTGluZXM7XG4gIH1cblxuICAvLyBBcHBseSBwYXRjaCBodW5rc1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGh1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGh1bmsgPSBodW5rc1tpXSxcbiAgICAgICAgdG9Qb3MgPSBodW5rLm9mZnNldCArIGh1bmsubmV3U3RhcnQgLSAxO1xuICAgIGlmIChodW5rLm5ld0xpbmVzID09IDApIHsgdG9Qb3MrKzsgfVxuXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBodW5rLmxpbmVzLmxlbmd0aDsgaisrKSB7XG4gICAgICBsZXQgbGluZSA9IGh1bmsubGluZXNbal0sXG4gICAgICAgICAgb3BlcmF0aW9uID0gbGluZVswXSxcbiAgICAgICAgICBjb250ZW50ID0gbGluZS5zdWJzdHIoMSk7XG5cbiAgICAgIGlmIChvcGVyYXRpb24gPT09ICcgJykge1xuICAgICAgICB0b1BvcysrO1xuICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICBsaW5lcy5zcGxpY2UodG9Qb3MsIDEpO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnKycpIHtcbiAgICAgICAgbGluZXMuc3BsaWNlKHRvUG9zLCAwLCBjb250ZW50KTtcbiAgICAgICAgdG9Qb3MrKztcbiAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnXFxcXCcpIHtcbiAgICAgICAgbGV0IHByZXZpb3VzT3BlcmF0aW9uID0gaHVuay5saW5lc1tqIC0gMV0gPyBodW5rLmxpbmVzW2ogLSAxXVswXSA6IG51bGw7XG4gICAgICAgIGlmIChwcmV2aW91c09wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgICAgcmVtb3ZlRU9GTkwgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHByZXZpb3VzT3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgICBhZGRFT0ZOTCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBIYW5kbGUgRU9GTkwgaW5zZXJ0aW9uL3JlbW92YWxcbiAgaWYgKHJlbW92ZUVPRk5MKSB7XG4gICAgd2hpbGUgKCFsaW5lc1tsaW5lcy5sZW5ndGggLSAxXSkge1xuICAgICAgbGluZXMucG9wKCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFkZEVPRk5MKSB7XG4gICAgbGluZXMucHVzaCgnJyk7XG4gIH1cbiAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xufVxuXG4vLyBXcmFwcGVyIHRoYXQgc3VwcG9ydHMgbXVsdGlwbGUgZmlsZSBwYXRjaGVzIHZpYSBjYWxsYmFja3MuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQYXRjaGVzKHVuaURpZmYsIG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiB1bmlEaWZmID09PSAnc3RyaW5nJykge1xuICAgIHVuaURpZmYgPSBwYXJzZVBhdGNoKHVuaURpZmYpO1xuICB9XG5cbiAgbGV0IGN1cnJlbnRJbmRleCA9IDA7XG4gIGZ1bmN0aW9uIHByb2Nlc3NJbmRleCgpIHtcbiAgICBsZXQgaW5kZXggPSB1bmlEaWZmW2N1cnJlbnRJbmRleCsrXTtcbiAgICBpZiAoIWluZGV4KSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIG9wdGlvbnMubG9hZEZpbGUoaW5kZXgsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5jb21wbGV0ZShlcnIpO1xuICAgICAgfVxuXG4gICAgICBsZXQgdXBkYXRlZENvbnRlbnQgPSBhcHBseVBhdGNoKGRhdGEsIGluZGV4LCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMucGF0Y2hlZChpbmRleCwgdXBkYXRlZENvbnRlbnQpO1xuXG4gICAgICBzZXRUaW1lb3V0KHByb2Nlc3NJbmRleCwgMCk7XG4gICAgfSk7XG4gIH1cbiAgcHJvY2Vzc0luZGV4KCk7XG59XG4iXX0=
      -
      -
      -/***/ },
      -/* 10 */
      -/***/ function(module, exports) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports. /*istanbul ignore end*/parsePatch = parsePatch;
      -	function parsePatch(uniDiff) {
      -	  /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
      -
      -	  var diffstr = uniDiff.split('\n'),
      -	      list = [],
      -	      i = 0;
      -
      -	  function parseIndex() {
      -	    var index = {};
      -	    list.push(index);
      -
      -	    // Parse diff metadata
      -	    while (i < diffstr.length) {
      -	      var line = diffstr[i];
      -
      -	      // File header found, end parsing diff metadata
      -	      if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) {
      -	        break;
      -	      }
      -
      -	      // Diff index
      -	      var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
      -	      if (header) {
      -	        index.index = header[1];
      -	      }
      -
      -	      i++;
      -	    }
      -
      -	    // Parse file headers if they are defined. Unified diff requires them, but
      -	    // there's no technical issues to have an isolated hunk without file header
      -	    parseFileHeader(index);
      -	    parseFileHeader(index);
      -
      -	    // Parse hunks
      -	    index.hunks = [];
      -
      -	    while (i < diffstr.length) {
      -	      var _line = diffstr[i];
      -
      -	      if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) {
      -	        break;
      -	      } else if (/^@@/.test(_line)) {
      -	        index.hunks.push(parseHunk());
      -	      } else if (_line && options.strict) {
      -	        // Ignore unexpected content unless in strict mode
      -	        throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));
      -	      } else {
      -	        i++;
      -	      }
      -	    }
      -	  }
      -
      -	  // Parses the --- and +++ headers, if none are found, no lines
      -	  // are consumed.
      -	  function parseFileHeader(index) {
      -	    var fileHeader = /^(\-\-\-|\+\+\+)\s+(\S*)\s?(.*?)\s*$/.exec(diffstr[i]);
      -	    if (fileHeader) {
      -	      var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';
      -	      index[keyPrefix + 'FileName'] = fileHeader[2];
      -	      index[keyPrefix + 'Header'] = fileHeader[3];
      -
      -	      i++;
      -	    }
      -	  }
      -
      -	  // Parses a hunk
      -	  // This assumes that we are at the start of a hunk.
      -	  function parseHunk() {
      -	    var chunkHeaderIndex = i,
      -	        chunkHeaderLine = diffstr[i++],
      -	        chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
      -
      -	    var hunk = {
      -	      oldStart: +chunkHeader[1],
      -	      oldLines: +chunkHeader[2] || 1,
      -	      newStart: +chunkHeader[3],
      -	      newLines: +chunkHeader[4] || 1,
      -	      lines: []
      -	    };
      -
      -	    var addCount = 0,
      -	        removeCount = 0;
      -	    for (; i < diffstr.length; i++) {
      -	      var operation = diffstr[i][0];
      -
      -	      if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') {
      -	        hunk.lines.push(diffstr[i]);
      -
      -	        if (operation === '+') {
      -	          addCount++;
      -	        } else if (operation === '-') {
      -	          removeCount++;
      -	        } else if (operation === ' ') {
      -	          addCount++;
      -	          removeCount++;
      -	        }
      -	      } else {
      -	        break;
      -	      }
      -	    }
      -
      -	    // Handle the empty block count case
      -	    if (!addCount && hunk.newLines === 1) {
      -	      hunk.newLines = 0;
      -	    }
      -	    if (!removeCount && hunk.oldLines === 1) {
      -	      hunk.oldLines = 0;
      -	    }
      -
      -	    // Perform optional sanity checking
      -	    if (options.strict) {
      -	      if (addCount !== hunk.newLines) {
      -	        throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
      -	      }
      -	      if (removeCount !== hunk.oldLines) {
      -	        throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
      -	      }
      -	    }
      -
      -	    return hunk;
      -	  }
      -
      -	  while (i < diffstr.length) {
      -	    parseIndex();
      -	  }
      -
      -	  return list;
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9wYXJzZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCO0FBQVQsU0FBUyxVQUFULENBQW9CLE9BQXBCLEVBQTJDO3NEQUFkLGdFQUFVLGtCQUFJOztBQUNoRCxNQUFJLFVBQVUsUUFBUSxLQUFSLENBQWMsSUFBZCxDQUFWO01BQ0EsT0FBTyxFQUFQO01BQ0EsSUFBSSxDQUFKLENBSDRDOztBQUtoRCxXQUFTLFVBQVQsR0FBc0I7QUFDcEIsUUFBSSxRQUFRLEVBQVIsQ0FEZ0I7QUFFcEIsU0FBSyxJQUFMLENBQVUsS0FBVjs7O0FBRm9CLFdBS2IsSUFBSSxRQUFRLE1BQVIsRUFBZ0I7QUFDekIsVUFBSSxPQUFPLFFBQVEsQ0FBUixDQUFQOzs7QUFEcUIsVUFJckIsd0JBQXdCLElBQXhCLENBQTZCLElBQTdCLENBQUosRUFBd0M7QUFDdEMsY0FEc0M7T0FBeEM7OztBQUp5QixVQVNyQixTQUFTLDJDQUE2QyxJQUE3QyxDQUFrRCxJQUFsRCxDQUFULENBVHFCO0FBVXpCLFVBQUksTUFBSixFQUFZO0FBQ1YsY0FBTSxLQUFOLEdBQWMsT0FBTyxDQUFQLENBQWQsQ0FEVTtPQUFaOztBQUlBLFVBZHlCO0tBQTNCOzs7O0FBTG9CLG1CQXdCcEIsQ0FBZ0IsS0FBaEIsRUF4Qm9CO0FBeUJwQixvQkFBZ0IsS0FBaEI7OztBQXpCb0IsU0E0QnBCLENBQU0sS0FBTixHQUFjLEVBQWQsQ0E1Qm9COztBQThCcEIsV0FBTyxJQUFJLFFBQVEsTUFBUixFQUFnQjtBQUN6QixVQUFJLFFBQU8sUUFBUSxDQUFSLENBQVAsQ0FEcUI7O0FBR3pCLFVBQUksaUNBQWlDLElBQWpDLENBQXNDLEtBQXRDLENBQUosRUFBaUQ7QUFDL0MsY0FEK0M7T0FBakQsTUFFTyxJQUFJLE1BQU0sSUFBTixDQUFXLEtBQVgsQ0FBSixFQUFzQjtBQUMzQixjQUFNLEtBQU4sQ0FBWSxJQUFaLENBQWlCLFdBQWpCLEVBRDJCO09BQXRCLE1BRUEsSUFBSSxTQUFRLFFBQVEsTUFBUixFQUFnQjs7QUFFakMsY0FBTSxJQUFJLEtBQUosQ0FBVSxtQkFBbUIsSUFBSSxDQUFKLENBQW5CLEdBQTRCLEdBQTVCLEdBQWtDLEtBQUssU0FBTCxDQUFlLEtBQWYsQ0FBbEMsQ0FBaEIsQ0FGaUM7T0FBNUIsTUFHQTtBQUNMLFlBREs7T0FIQTtLQVBUO0dBOUJGOzs7O0FBTGdELFdBcUR2QyxlQUFULENBQXlCLEtBQXpCLEVBQWdDO0FBQzlCLFFBQUksYUFBYSx1Q0FBeUMsSUFBekMsQ0FBOEMsUUFBUSxDQUFSLENBQTlDLENBQWIsQ0FEMEI7QUFFOUIsUUFBSSxVQUFKLEVBQWdCO0FBQ2QsVUFBSSxZQUFZLFdBQVcsQ0FBWCxNQUFrQixLQUFsQixHQUEwQixLQUExQixHQUFrQyxLQUFsQyxDQURGO0FBRWQsWUFBTSxZQUFZLFVBQVosQ0FBTixHQUFnQyxXQUFXLENBQVgsQ0FBaEMsQ0FGYztBQUdkLFlBQU0sWUFBWSxRQUFaLENBQU4sR0FBOEIsV0FBVyxDQUFYLENBQTlCLENBSGM7O0FBS2QsVUFMYztLQUFoQjtHQUZGOzs7O0FBckRnRCxXQWtFdkMsU0FBVCxHQUFxQjtBQUNuQixRQUFJLG1CQUFtQixDQUFuQjtRQUNBLGtCQUFrQixRQUFRLEdBQVIsQ0FBbEI7UUFDQSxjQUFjLGdCQUFnQixLQUFoQixDQUFzQiw0Q0FBdEIsQ0FBZCxDQUhlOztBQUtuQixRQUFJLE9BQU87QUFDVCxnQkFBVSxDQUFDLFlBQVksQ0FBWixDQUFEO0FBQ1YsZ0JBQVUsQ0FBQyxZQUFZLENBQVosQ0FBRCxJQUFtQixDQUFuQjtBQUNWLGdCQUFVLENBQUMsWUFBWSxDQUFaLENBQUQ7QUFDVixnQkFBVSxDQUFDLFlBQVksQ0FBWixDQUFELElBQW1CLENBQW5CO0FBQ1YsYUFBTyxFQUFQO0tBTEUsQ0FMZTs7QUFhbkIsUUFBSSxXQUFXLENBQVg7UUFDQSxjQUFjLENBQWQsQ0FkZTtBQWVuQixXQUFPLElBQUksUUFBUSxNQUFSLEVBQWdCLEdBQTNCLEVBQWdDO0FBQzlCLFVBQUksWUFBWSxRQUFRLENBQVIsRUFBVyxDQUFYLENBQVosQ0FEMEI7O0FBRzlCLFVBQUksY0FBYyxHQUFkLElBQXFCLGNBQWMsR0FBZCxJQUFxQixjQUFjLEdBQWQsSUFBcUIsY0FBYyxJQUFkLEVBQW9CO0FBQ3JGLGFBQUssS0FBTCxDQUFXLElBQVgsQ0FBZ0IsUUFBUSxDQUFSLENBQWhCLEVBRHFGOztBQUdyRixZQUFJLGNBQWMsR0FBZCxFQUFtQjtBQUNyQixxQkFEcUI7U0FBdkIsTUFFTyxJQUFJLGNBQWMsR0FBZCxFQUFtQjtBQUM1Qix3QkFENEI7U0FBdkIsTUFFQSxJQUFJLGNBQWMsR0FBZCxFQUFtQjtBQUM1QixxQkFENEI7QUFFNUIsd0JBRjRCO1NBQXZCO09BUFQsTUFXTztBQUNMLGNBREs7T0FYUDtLQUhGOzs7QUFmbUIsUUFtQ2YsQ0FBQyxRQUFELElBQWEsS0FBSyxRQUFMLEtBQWtCLENBQWxCLEVBQXFCO0FBQ3BDLFdBQUssUUFBTCxHQUFnQixDQUFoQixDQURvQztLQUF0QztBQUdBLFFBQUksQ0FBQyxXQUFELElBQWdCLEtBQUssUUFBTCxLQUFrQixDQUFsQixFQUFxQjtBQUN2QyxXQUFLLFFBQUwsR0FBZ0IsQ0FBaEIsQ0FEdUM7S0FBekM7OztBQXRDbUIsUUEyQ2YsUUFBUSxNQUFSLEVBQWdCO0FBQ2xCLFVBQUksYUFBYSxLQUFLLFFBQUwsRUFBZTtBQUM5QixjQUFNLElBQUksS0FBSixDQUFVLHNEQUFzRCxtQkFBbUIsQ0FBbkIsQ0FBdEQsQ0FBaEIsQ0FEOEI7T0FBaEM7QUFHQSxVQUFJLGdCQUFnQixLQUFLLFFBQUwsRUFBZTtBQUNqQyxjQUFNLElBQUksS0FBSixDQUFVLHdEQUF3RCxtQkFBbUIsQ0FBbkIsQ0FBeEQsQ0FBaEIsQ0FEaUM7T0FBbkM7S0FKRjs7QUFTQSxXQUFPLElBQVAsQ0FwRG1CO0dBQXJCOztBQXVEQSxTQUFPLElBQUksUUFBUSxNQUFSLEVBQWdCO0FBQ3pCLGlCQUR5QjtHQUEzQjs7QUFJQSxTQUFPLElBQVAsQ0E3SGdEO0NBQTNDIiwiZmlsZSI6InBhcnNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGF0Y2godW5pRGlmZiwgb3B0aW9ucyA9IHt9KSB7XG4gIGxldCBkaWZmc3RyID0gdW5pRGlmZi5zcGxpdCgnXFxuJyksXG4gICAgICBsaXN0ID0gW10sXG4gICAgICBpID0gMDtcblxuICBmdW5jdGlvbiBwYXJzZUluZGV4KCkge1xuICAgIGxldCBpbmRleCA9IHt9O1xuICAgIGxpc3QucHVzaChpbmRleCk7XG5cbiAgICAvLyBQYXJzZSBkaWZmIG1ldGFkYXRhXG4gICAgd2hpbGUgKGkgPCBkaWZmc3RyLmxlbmd0aCkge1xuICAgICAgbGV0IGxpbmUgPSBkaWZmc3RyW2ldO1xuXG4gICAgICAvLyBGaWxlIGhlYWRlciBmb3VuZCwgZW5kIHBhcnNpbmcgZGlmZiBtZXRhZGF0YVxuICAgICAgaWYgKC9eKFxcLVxcLVxcLXxcXCtcXCtcXCt8QEApXFxzLy50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBEaWZmIGluZGV4XG4gICAgICBsZXQgaGVhZGVyID0gKC9eKD86SW5kZXg6fGRpZmYoPzogLXIgXFx3KykrKVxccysoLis/KVxccyokLykuZXhlYyhsaW5lKTtcbiAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgaW5kZXguaW5kZXggPSBoZWFkZXJbMV07XG4gICAgICB9XG5cbiAgICAgIGkrKztcbiAgICB9XG5cbiAgICAvLyBQYXJzZSBmaWxlIGhlYWRlcnMgaWYgdGhleSBhcmUgZGVmaW5lZC4gVW5pZmllZCBkaWZmIHJlcXVpcmVzIHRoZW0sIGJ1dFxuICAgIC8vIHRoZXJlJ3Mgbm8gdGVjaG5pY2FsIGlzc3VlcyB0byBoYXZlIGFuIGlzb2xhdGVkIGh1bmsgd2l0aG91dCBmaWxlIGhlYWRlclxuICAgIHBhcnNlRmlsZUhlYWRlcihpbmRleCk7XG4gICAgcGFyc2VGaWxlSGVhZGVyKGluZGV4KTtcblxuICAgIC8vIFBhcnNlIGh1bmtzXG4gICAgaW5kZXguaHVua3MgPSBbXTtcblxuICAgIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICAgIGxldCBsaW5lID0gZGlmZnN0cltpXTtcblxuICAgICAgaWYgKC9eKEluZGV4OnxkaWZmfFxcLVxcLVxcLXxcXCtcXCtcXCspXFxzLy50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIGlmICgvXkBALy50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGluZGV4Lmh1bmtzLnB1c2gocGFyc2VIdW5rKCkpO1xuICAgICAgfSBlbHNlIGlmIChsaW5lICYmIG9wdGlvbnMuc3RyaWN0KSB7XG4gICAgICAgIC8vIElnbm9yZSB1bmV4cGVjdGVkIGNvbnRlbnQgdW5sZXNzIGluIHN0cmljdCBtb2RlXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBsaW5lICcgKyAoaSArIDEpICsgJyAnICsgSlNPTi5zdHJpbmdpZnkobGluZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNlcyB0aGUgLS0tIGFuZCArKysgaGVhZGVycywgaWYgbm9uZSBhcmUgZm91bmQsIG5vIGxpbmVzXG4gIC8vIGFyZSBjb25zdW1lZC5cbiAgZnVuY3Rpb24gcGFyc2VGaWxlSGVhZGVyKGluZGV4KSB7XG4gICAgbGV0IGZpbGVIZWFkZXIgPSAoL14oXFwtXFwtXFwtfFxcK1xcK1xcKylcXHMrKFxcUyopXFxzPyguKj8pXFxzKiQvKS5leGVjKGRpZmZzdHJbaV0pO1xuICAgIGlmIChmaWxlSGVhZGVyKSB7XG4gICAgICBsZXQga2V5UHJlZml4ID0gZmlsZUhlYWRlclsxXSA9PT0gJy0tLScgPyAnb2xkJyA6ICduZXcnO1xuICAgICAgaW5kZXhba2V5UHJlZml4ICsgJ0ZpbGVOYW1lJ10gPSBmaWxlSGVhZGVyWzJdO1xuICAgICAgaW5kZXhba2V5UHJlZml4ICsgJ0hlYWRlciddID0gZmlsZUhlYWRlclszXTtcblxuICAgICAgaSsrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNlcyBhIGh1bmtcbiAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIGh1bmsuXG4gIGZ1bmN0aW9uIHBhcnNlSHVuaygpIHtcbiAgICBsZXQgY2h1bmtIZWFkZXJJbmRleCA9IGksXG4gICAgICAgIGNodW5rSGVhZGVyTGluZSA9IGRpZmZzdHJbaSsrXSxcbiAgICAgICAgY2h1bmtIZWFkZXIgPSBjaHVua0hlYWRlckxpbmUuc3BsaXQoL0BAIC0oXFxkKykoPzosKFxcZCspKT8gXFwrKFxcZCspKD86LChcXGQrKSk/IEBALyk7XG5cbiAgICBsZXQgaHVuayA9IHtcbiAgICAgIG9sZFN0YXJ0OiArY2h1bmtIZWFkZXJbMV0sXG4gICAgICBvbGRMaW5lczogK2NodW5rSGVhZGVyWzJdIHx8IDEsXG4gICAgICBuZXdTdGFydDogK2NodW5rSGVhZGVyWzNdLFxuICAgICAgbmV3TGluZXM6ICtjaHVua0hlYWRlcls0XSB8fCAxLFxuICAgICAgbGluZXM6IFtdXG4gICAgfTtcblxuICAgIGxldCBhZGRDb3VudCA9IDAsXG4gICAgICAgIHJlbW92ZUNvdW50ID0gMDtcbiAgICBmb3IgKDsgaSA8IGRpZmZzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBvcGVyYXRpb24gPSBkaWZmc3RyW2ldWzBdO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnKycgfHwgb3BlcmF0aW9uID09PSAnLScgfHwgb3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnXFxcXCcpIHtcbiAgICAgICAgaHVuay5saW5lcy5wdXNoKGRpZmZzdHJbaV0pO1xuXG4gICAgICAgIGlmIChvcGVyYXRpb24gPT09ICcrJykge1xuICAgICAgICAgIGFkZENvdW50Kys7XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgICByZW1vdmVDb3VudCsrO1xuICAgICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJyAnKSB7XG4gICAgICAgICAgYWRkQ291bnQrKztcbiAgICAgICAgICByZW1vdmVDb3VudCsrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgdGhlIGVtcHR5IGJsb2NrIGNvdW50IGNhc2VcbiAgICBpZiAoIWFkZENvdW50ICYmIGh1bmsubmV3TGluZXMgPT09IDEpIHtcbiAgICAgIGh1bmsubmV3TGluZXMgPSAwO1xuICAgIH1cbiAgICBpZiAoIXJlbW92ZUNvdW50ICYmIGh1bmsub2xkTGluZXMgPT09IDEpIHtcbiAgICAgIGh1bmsub2xkTGluZXMgPSAwO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm0gb3B0aW9uYWwgc2FuaXR5IGNoZWNraW5nXG4gICAgaWYgKG9wdGlvbnMuc3RyaWN0KSB7XG4gICAgICBpZiAoYWRkQ291bnQgIT09IGh1bmsubmV3TGluZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBZGRlZCBsaW5lIGNvdW50IGRpZCBub3QgbWF0Y2ggZm9yIGh1bmsgYXQgbGluZSAnICsgKGNodW5rSGVhZGVySW5kZXggKyAxKSk7XG4gICAgICB9XG4gICAgICBpZiAocmVtb3ZlQ291bnQgIT09IGh1bmsub2xkTGluZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZW1vdmVkIGxpbmUgY291bnQgZGlkIG5vdCBtYXRjaCBmb3IgaHVuayBhdCBsaW5lICcgKyAoY2h1bmtIZWFkZXJJbmRleCArIDEpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaHVuaztcbiAgfVxuXG4gIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICBwYXJzZUluZGV4KCk7XG4gIH1cblxuICByZXR1cm4gbGlzdDtcbn1cbiJdfQ==
      -
      -
      -/***/ },
      -/* 11 */
      -/***/ function(module, exports) {
      -
      -	/*istanbul ignore start*/"use strict";
      -
      -	exports.__esModule = true;
      -
      -	exports.default = /*istanbul ignore end*/function (start, minLine, maxLine) {
      -	  var wantForward = true,
      -	      backwardExhausted = false,
      -	      forwardExhausted = false,
      -	      localOffset = 1;
      -
      -	  return function iterator() {
      -	    if (wantForward && !forwardExhausted) {
      -	      if (backwardExhausted) {
      -	        localOffset++;
      -	      } else {
      -	        wantForward = false;
      -	      }
      -
      -	      // Check if trying to fit beyond text length, and if not, check it fits
      -	      // after offset location (or desired location on first iteration)
      -	      if (start + localOffset <= maxLine) {
      -	        return localOffset;
      -	      }
      -
      -	      forwardExhausted = true;
      -	    }
      -
      -	    if (!backwardExhausted) {
      -	      if (!forwardExhausted) {
      -	        wantForward = true;
      -	      }
      -
      -	      // Check if trying to fit before text beginning, and if not, check it fits
      -	      // before offset location
      -	      if (minLine <= start - localOffset) {
      -	        return - localOffset++;
      -	      }
      -
      -	      backwardExhausted = true;
      -	      return iterator();
      -	    }
      -
      -	    // We tried to fit hunk before text beginning and beyond text lenght, then
      -	    // hunk can't fit on the text. Return undefined
      -	  };
      -	};
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7eUNBR2UsVUFBUyxLQUFULEVBQWdCLE9BQWhCLEVBQXlCLE9BQXpCLEVBQWtDO0FBQy9DLE1BQUksY0FBYyxJQUFkO01BQ0Esb0JBQW9CLEtBQXBCO01BQ0EsbUJBQW1CLEtBQW5CO01BQ0EsY0FBYyxDQUFkLENBSjJDOztBQU0vQyxTQUFPLFNBQVMsUUFBVCxHQUFvQjtBQUN6QixRQUFJLGVBQWUsQ0FBQyxnQkFBRCxFQUFtQjtBQUNwQyxVQUFJLGlCQUFKLEVBQXVCO0FBQ3JCLHNCQURxQjtPQUF2QixNQUVPO0FBQ0wsc0JBQWMsS0FBZCxDQURLO09BRlA7Ozs7QUFEb0MsVUFTaEMsUUFBUSxXQUFSLElBQXVCLE9BQXZCLEVBQWdDO0FBQ2xDLGVBQU8sV0FBUCxDQURrQztPQUFwQzs7QUFJQSx5QkFBbUIsSUFBbkIsQ0Fib0M7S0FBdEM7O0FBZ0JBLFFBQUksQ0FBQyxpQkFBRCxFQUFvQjtBQUN0QixVQUFJLENBQUMsZ0JBQUQsRUFBbUI7QUFDckIsc0JBQWMsSUFBZCxDQURxQjtPQUF2Qjs7OztBQURzQixVQU9sQixXQUFXLFFBQVEsV0FBUixFQUFxQjtBQUNsQyxlQUFPLEVBQUMsYUFBRCxDQUQyQjtPQUFwQzs7QUFJQSwwQkFBb0IsSUFBcEIsQ0FYc0I7QUFZdEIsYUFBTyxVQUFQLENBWnNCO0tBQXhCOzs7O0FBakJ5QixHQUFwQixDQU53QztDQUFsQyIsImZpbGUiOiJkaXN0YW5jZS1pdGVyYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEl0ZXJhdG9yIHRoYXQgdHJhdmVyc2VzIGluIHRoZSByYW5nZSBvZiBbbWluLCBtYXhdLCBzdGVwcGluZ1xuLy8gYnkgZGlzdGFuY2UgZnJvbSBhIGdpdmVuIHN0YXJ0IHBvc2l0aW9uLiBJLmUuIGZvciBbMCwgNF0sIHdpdGhcbi8vIHN0YXJ0IG9mIDIsIHRoaXMgd2lsbCBpdGVyYXRlIDIsIDMsIDEsIDQsIDAuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzdGFydCwgbWluTGluZSwgbWF4TGluZSkge1xuICBsZXQgd2FudEZvcndhcmQgPSB0cnVlLFxuICAgICAgYmFja3dhcmRFeGhhdXN0ZWQgPSBmYWxzZSxcbiAgICAgIGZvcndhcmRFeGhhdXN0ZWQgPSBmYWxzZSxcbiAgICAgIGxvY2FsT2Zmc2V0ID0gMTtcblxuICByZXR1cm4gZnVuY3Rpb24gaXRlcmF0b3IoKSB7XG4gICAgaWYgKHdhbnRGb3J3YXJkICYmICFmb3J3YXJkRXhoYXVzdGVkKSB7XG4gICAgICBpZiAoYmFja3dhcmRFeGhhdXN0ZWQpIHtcbiAgICAgICAgbG9jYWxPZmZzZXQrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdhbnRGb3J3YXJkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRyeWluZyB0byBmaXQgYmV5b25kIHRleHQgbGVuZ3RoLCBhbmQgaWYgbm90LCBjaGVjayBpdCBmaXRzXG4gICAgICAvLyBhZnRlciBvZmZzZXQgbG9jYXRpb24gKG9yIGRlc2lyZWQgbG9jYXRpb24gb24gZmlyc3QgaXRlcmF0aW9uKVxuICAgICAgaWYgKHN0YXJ0ICsgbG9jYWxPZmZzZXQgPD0gbWF4TGluZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxPZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGZvcndhcmRFeGhhdXN0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghYmFja3dhcmRFeGhhdXN0ZWQpIHtcbiAgICAgIGlmICghZm9yd2FyZEV4aGF1c3RlZCkge1xuICAgICAgICB3YW50Rm9yd2FyZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRyeWluZyB0byBmaXQgYmVmb3JlIHRleHQgYmVnaW5uaW5nLCBhbmQgaWYgbm90LCBjaGVjayBpdCBmaXRzXG4gICAgICAvLyBiZWZvcmUgb2Zmc2V0IGxvY2F0aW9uXG4gICAgICBpZiAobWluTGluZSA8PSBzdGFydCAtIGxvY2FsT2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiAtbG9jYWxPZmZzZXQrKztcbiAgICAgIH1cblxuICAgICAgYmFja3dhcmRFeGhhdXN0ZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuIGl0ZXJhdG9yKCk7XG4gICAgfVxuXG4gICAgLy8gV2UgdHJpZWQgdG8gZml0IGh1bmsgYmVmb3JlIHRleHQgYmVnaW5uaW5nIGFuZCBiZXlvbmQgdGV4dCBsZW5naHQsIHRoZW5cbiAgICAvLyBodW5rIGNhbid0IGZpdCBvbiB0aGUgdGV4dC4gUmV0dXJuIHVuZGVmaW5lZFxuICB9O1xufVxuIl19
      -
      -
      -/***/ },
      -/* 12 */
      -/***/ function(module, exports, __webpack_require__) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports. /*istanbul ignore end*/structuredPatch = structuredPatch;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = createTwoFilesPatch;
      -	/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = createPatch;
      -
      -	var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/;
      -
      -	/*istanbul ignore start*/
      -	function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
      -
      -	/*istanbul ignore end*/function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
      -	  if (!options) {
      -	    options = { context: 4 };
      -	  }
      -
      -	  var diff = /*istanbul ignore start*/(0, _line.diffLines) /*istanbul ignore end*/(oldStr, newStr);
      -	  diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier
      -
      -	  function contextLines(lines) {
      -	    return lines.map(function (entry) {
      -	      return ' ' + entry;
      -	    });
      -	  }
      -
      -	  var hunks = [];
      -	  var oldRangeStart = 0,
      -	      newRangeStart = 0,
      -	      curRange = [],
      -	      oldLine = 1,
      -	      newLine = 1;
      -	  /*istanbul ignore start*/
      -	  var _loop = function _loop( /*istanbul ignore end*/i) {
      -	    var current = diff[i],
      -	        lines = current.lines || current.value.replace(/\n$/, '').split('\n');
      -	    current.lines = lines;
      -
      -	    if (current.added || current.removed) {
      -	      /*istanbul ignore start*/
      -	      var _curRange;
      -
      -	      /*istanbul ignore end*/
      -	      // If we have previous context, start with that
      -	      if (!oldRangeStart) {
      -	        var prev = diff[i - 1];
      -	        oldRangeStart = oldLine;
      -	        newRangeStart = newLine;
      -
      -	        if (prev) {
      -	          curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
      -	          oldRangeStart -= curRange.length;
      -	          newRangeStart -= curRange.length;
      -	        }
      -	      }
      -
      -	      // Output our changes
      -	      /*istanbul ignore start*/(_curRange = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/lines.map(function (entry) {
      -	        return (current.added ? '+' : '-') + entry;
      -	      })));
      -
      -	      // Track the updated file position
      -	      if (current.added) {
      -	        newLine += lines.length;
      -	      } else {
      -	        oldLine += lines.length;
      -	      }
      -	    } else {
      -	      // Identical context lines. Track line changes
      -	      if (oldRangeStart) {
      -	        // Close out any changes that have been output (or join overlapping)
      -	        if (lines.length <= options.context * 2 && i < diff.length - 2) {
      -	          /*istanbul ignore start*/
      -	          var _curRange2;
      -
      -	          /*istanbul ignore end*/
      -	          // Overlapping
      -	          /*istanbul ignore start*/(_curRange2 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines)));
      -	        } else {
      -	          /*istanbul ignore start*/
      -	          var _curRange3;
      -
      -	          /*istanbul ignore end*/
      -	          // end the range and output
      -	          var contextSize = Math.min(lines.length, options.context);
      -	          /*istanbul ignore start*/(_curRange3 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines.slice(0, contextSize))));
      -
      -	          var hunk = {
      -	            oldStart: oldRangeStart,
      -	            oldLines: oldLine - oldRangeStart + contextSize,
      -	            newStart: newRangeStart,
      -	            newLines: newLine - newRangeStart + contextSize,
      -	            lines: curRange
      -	          };
      -	          if (i >= diff.length - 2 && lines.length <= options.context) {
      -	            // EOF is inside this hunk
      -	            var oldEOFNewline = /\n$/.test(oldStr);
      -	            var newEOFNewline = /\n$/.test(newStr);
      -	            if (lines.length == 0 && !oldEOFNewline) {
      -	              // special case: old has no eol and no trailing context; no-nl can end up before adds
      -	              curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file');
      -	            } else if (!oldEOFNewline || !newEOFNewline) {
      -	              curRange.push('\\ No newline at end of file');
      -	            }
      -	          }
      -	          hunks.push(hunk);
      -
      -	          oldRangeStart = 0;
      -	          newRangeStart = 0;
      -	          curRange = [];
      -	        }
      -	      }
      -	      oldLine += lines.length;
      -	      newLine += lines.length;
      -	    }
      -	  };
      -
      -	  for (var i = 0; i < diff.length; i++) {
      -	    /*istanbul ignore start*/
      -	    _loop( /*istanbul ignore end*/i);
      -	  }
      -
      -	  return {
      -	    oldFileName: oldFileName, newFileName: newFileName,
      -	    oldHeader: oldHeader, newHeader: newHeader,
      -	    hunks: hunks
      -	  };
      -	}
      -
      -	function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
      -	  var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);
      -
      -	  var ret = [];
      -	  if (oldFileName == newFileName) {
      -	    ret.push('Index: ' + oldFileName);
      -	  }
      -	  ret.push('===================================================================');
      -	  ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader));
      -	  ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader));
      -
      -	  for (var i = 0; i < diff.hunks.length; i++) {
      -	    var hunk = diff.hunks[i];
      -	    ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');
      -	    ret.push.apply(ret, hunk.lines);
      -	  }
      -
      -	  return ret.join('\n') + '\n';
      -	}
      -
      -	function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
      -	  return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9jcmVhdGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O2dDQUVnQjt5REE4RkE7eURBd0JBOztBQXhIaEI7Ozs7O3VCQUVPLFNBQVMsZUFBVCxDQUF5QixXQUF6QixFQUFzQyxXQUF0QyxFQUFtRCxNQUFuRCxFQUEyRCxNQUEzRCxFQUFtRSxTQUFuRSxFQUE4RSxTQUE5RSxFQUF5RixPQUF6RixFQUFrRztBQUN2RyxNQUFJLENBQUMsT0FBRCxFQUFVO0FBQ1osY0FBVSxFQUFFLFNBQVMsQ0FBVCxFQUFaLENBRFk7R0FBZDs7QUFJQSxNQUFNLE9BQU8sc0VBQVUsTUFBVixFQUFrQixNQUFsQixDQUFQLENBTGlHO0FBTXZHLE9BQUssSUFBTCxDQUFVLEVBQUMsT0FBTyxFQUFQLEVBQVcsT0FBTyxFQUFQLEVBQXRCOztBQU51RyxXQVE5RixZQUFULENBQXNCLEtBQXRCLEVBQTZCO0FBQzNCLFdBQU8sTUFBTSxHQUFOLENBQVUsVUFBUyxLQUFULEVBQWdCO0FBQUUsYUFBTyxNQUFNLEtBQU4sQ0FBVDtLQUFoQixDQUFqQixDQUQyQjtHQUE3Qjs7QUFJQSxNQUFJLFFBQVEsRUFBUixDQVptRztBQWF2RyxNQUFJLGdCQUFnQixDQUFoQjtNQUFtQixnQkFBZ0IsQ0FBaEI7TUFBbUIsV0FBVyxFQUFYO01BQ3RDLFVBQVUsQ0FBVjtNQUFhLFVBQVUsQ0FBVixDQWRzRjs7cURBZTlGO0FBQ1AsUUFBTSxVQUFVLEtBQUssQ0FBTCxDQUFWO1FBQ0EsUUFBUSxRQUFRLEtBQVIsSUFBaUIsUUFBUSxLQUFSLENBQWMsT0FBZCxDQUFzQixLQUF0QixFQUE2QixFQUE3QixFQUFpQyxLQUFqQyxDQUF1QyxJQUF2QyxDQUFqQjtBQUNkLFlBQVEsS0FBUixHQUFnQixLQUFoQjs7QUFFQSxRQUFJLFFBQVEsS0FBUixJQUFpQixRQUFRLE9BQVIsRUFBaUI7Ozs7OztBQUVwQyxVQUFJLENBQUMsYUFBRCxFQUFnQjtBQUNsQixZQUFNLE9BQU8sS0FBSyxJQUFJLENBQUosQ0FBWixDQURZO0FBRWxCLHdCQUFnQixPQUFoQixDQUZrQjtBQUdsQix3QkFBZ0IsT0FBaEIsQ0FIa0I7O0FBS2xCLFlBQUksSUFBSixFQUFVO0FBQ1IscUJBQVcsUUFBUSxPQUFSLEdBQWtCLENBQWxCLEdBQXNCLGFBQWEsS0FBSyxLQUFMLENBQVcsS0FBWCxDQUFpQixDQUFDLFFBQVEsT0FBUixDQUEvQixDQUF0QixHQUF5RSxFQUF6RSxDQURIO0FBRVIsMkJBQWlCLFNBQVMsTUFBVCxDQUZUO0FBR1IsMkJBQWlCLFNBQVMsTUFBVCxDQUhUO1NBQVY7T0FMRjs7O0FBRm9DLG1FQWVwQyxVQUFTLElBQVQsMExBQWtCLE1BQU0sR0FBTixDQUFVLFVBQVMsS0FBVCxFQUFnQjtBQUMxQyxlQUFPLENBQUMsUUFBUSxLQUFSLEdBQWdCLEdBQWhCLEdBQXNCLEdBQXRCLENBQUQsR0FBOEIsS0FBOUIsQ0FEbUM7T0FBaEIsRUFBNUI7OztBQWZvQyxVQW9CaEMsUUFBUSxLQUFSLEVBQWU7QUFDakIsbUJBQVcsTUFBTSxNQUFOLENBRE07T0FBbkIsTUFFTztBQUNMLG1CQUFXLE1BQU0sTUFBTixDQUROO09BRlA7S0FwQkYsTUF5Qk87O0FBRUwsVUFBSSxhQUFKLEVBQW1COztBQUVqQixZQUFJLE1BQU0sTUFBTixJQUFnQixRQUFRLE9BQVIsR0FBa0IsQ0FBbEIsSUFBdUIsSUFBSSxLQUFLLE1BQUwsR0FBYyxDQUFkLEVBQWlCOzs7Ozs7QUFFOUQsa0ZBQVMsSUFBVCwyTEFBa0IsYUFBYSxLQUFiLEVBQWxCLEVBRjhEO1NBQWhFLE1BR087Ozs7OztBQUVMLGNBQUksY0FBYyxLQUFLLEdBQUwsQ0FBUyxNQUFNLE1BQU4sRUFBYyxRQUFRLE9BQVIsQ0FBckMsQ0FGQztBQUdMLGtGQUFTLElBQVQsMkxBQWtCLGFBQWEsTUFBTSxLQUFOLENBQVksQ0FBWixFQUFlLFdBQWYsQ0FBYixFQUFsQixFQUhLOztBQUtMLGNBQUksT0FBTztBQUNULHNCQUFVLGFBQVY7QUFDQSxzQkFBVyxVQUFVLGFBQVYsR0FBMEIsV0FBMUI7QUFDWCxzQkFBVSxhQUFWO0FBQ0Esc0JBQVcsVUFBVSxhQUFWLEdBQTBCLFdBQTFCO0FBQ1gsbUJBQU8sUUFBUDtXQUxFLENBTEM7QUFZTCxjQUFJLEtBQUssS0FBSyxNQUFMLEdBQWMsQ0FBZCxJQUFtQixNQUFNLE1BQU4sSUFBZ0IsUUFBUSxPQUFSLEVBQWlCOztBQUUzRCxnQkFBSSxnQkFBaUIsTUFBTSxJQUFOLENBQVcsTUFBWCxDQUFqQixDQUZ1RDtBQUczRCxnQkFBSSxnQkFBaUIsTUFBTSxJQUFOLENBQVcsTUFBWCxDQUFqQixDQUh1RDtBQUkzRCxnQkFBSSxNQUFNLE1BQU4sSUFBZ0IsQ0FBaEIsSUFBcUIsQ0FBQyxhQUFELEVBQWdCOztBQUV2Qyx1QkFBUyxNQUFULENBQWdCLEtBQUssUUFBTCxFQUFlLENBQS9CLEVBQWtDLDhCQUFsQyxFQUZ1QzthQUF6QyxNQUdPLElBQUksQ0FBQyxhQUFELElBQWtCLENBQUMsYUFBRCxFQUFnQjtBQUMzQyx1QkFBUyxJQUFULENBQWMsOEJBQWQsRUFEMkM7YUFBdEM7V0FQVDtBQVdBLGdCQUFNLElBQU4sQ0FBVyxJQUFYLEVBdkJLOztBQXlCTCwwQkFBZ0IsQ0FBaEIsQ0F6Qks7QUEwQkwsMEJBQWdCLENBQWhCLENBMUJLO0FBMkJMLHFCQUFXLEVBQVgsQ0EzQks7U0FIUDtPQUZGO0FBbUNBLGlCQUFXLE1BQU0sTUFBTixDQXJDTjtBQXNDTCxpQkFBVyxNQUFNLE1BQU4sQ0F0Q047S0F6QlA7SUFwQnFHOztBQWV2RyxPQUFLLElBQUksSUFBSSxDQUFKLEVBQU8sSUFBSSxLQUFLLE1BQUwsRUFBYSxHQUFqQyxFQUFzQzs7a0NBQTdCLEdBQTZCO0dBQXRDOztBQXdFQSxTQUFPO0FBQ0wsaUJBQWEsV0FBYixFQUEwQixhQUFhLFdBQWI7QUFDMUIsZUFBVyxTQUFYLEVBQXNCLFdBQVcsU0FBWDtBQUN0QixXQUFPLEtBQVA7R0FIRixDQXZGdUc7Q0FBbEc7O0FBOEZBLFNBQVMsbUJBQVQsQ0FBNkIsV0FBN0IsRUFBMEMsV0FBMUMsRUFBdUQsTUFBdkQsRUFBK0QsTUFBL0QsRUFBdUUsU0FBdkUsRUFBa0YsU0FBbEYsRUFBNkYsT0FBN0YsRUFBc0c7QUFDM0csTUFBTSxPQUFPLGdCQUFnQixXQUFoQixFQUE2QixXQUE3QixFQUEwQyxNQUExQyxFQUFrRCxNQUFsRCxFQUEwRCxTQUExRCxFQUFxRSxTQUFyRSxFQUFnRixPQUFoRixDQUFQLENBRHFHOztBQUczRyxNQUFNLE1BQU0sRUFBTixDQUhxRztBQUkzRyxNQUFJLGVBQWUsV0FBZixFQUE0QjtBQUM5QixRQUFJLElBQUosQ0FBUyxZQUFZLFdBQVosQ0FBVCxDQUQ4QjtHQUFoQztBQUdBLE1BQUksSUFBSixDQUFTLHFFQUFULEVBUDJHO0FBUTNHLE1BQUksSUFBSixDQUFTLFNBQVMsS0FBSyxXQUFMLElBQW9CLE9BQU8sS0FBSyxTQUFMLEtBQW1CLFdBQTFCLEdBQXdDLEVBQXhDLEdBQTZDLE9BQU8sS0FBSyxTQUFMLENBQWpGLENBQVQsQ0FSMkc7QUFTM0csTUFBSSxJQUFKLENBQVMsU0FBUyxLQUFLLFdBQUwsSUFBb0IsT0FBTyxLQUFLLFNBQUwsS0FBbUIsV0FBMUIsR0FBd0MsRUFBeEMsR0FBNkMsT0FBTyxLQUFLLFNBQUwsQ0FBakYsQ0FBVCxDQVQyRzs7QUFXM0csT0FBSyxJQUFJLElBQUksQ0FBSixFQUFPLElBQUksS0FBSyxLQUFMLENBQVcsTUFBWCxFQUFtQixHQUF2QyxFQUE0QztBQUMxQyxRQUFNLE9BQU8sS0FBSyxLQUFMLENBQVcsQ0FBWCxDQUFQLENBRG9DO0FBRTFDLFFBQUksSUFBSixDQUNFLFNBQVMsS0FBSyxRQUFMLEdBQWdCLEdBQXpCLEdBQStCLEtBQUssUUFBTCxHQUM3QixJQURGLEdBQ1MsS0FBSyxRQUFMLEdBQWdCLEdBRHpCLEdBQytCLEtBQUssUUFBTCxHQUM3QixLQUZGLENBREYsQ0FGMEM7QUFPMUMsUUFBSSxJQUFKLENBQVMsS0FBVCxDQUFlLEdBQWYsRUFBb0IsS0FBSyxLQUFMLENBQXBCLENBUDBDO0dBQTVDOztBQVVBLFNBQU8sSUFBSSxJQUFKLENBQVMsSUFBVCxJQUFpQixJQUFqQixDQXJCb0c7Q0FBdEc7O0FBd0JBLFNBQVMsV0FBVCxDQUFxQixRQUFyQixFQUErQixNQUEvQixFQUF1QyxNQUF2QyxFQUErQyxTQUEvQyxFQUEwRCxTQUExRCxFQUFxRSxPQUFyRSxFQUE4RTtBQUNuRixTQUFPLG9CQUFvQixRQUFwQixFQUE4QixRQUE5QixFQUF3QyxNQUF4QyxFQUFnRCxNQUFoRCxFQUF3RCxTQUF4RCxFQUFtRSxTQUFuRSxFQUE4RSxPQUE5RSxDQUFQLENBRG1GO0NBQTlFIiwiZmlsZSI6ImNyZWF0ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlmZkxpbmVzfSBmcm9tICcuLi9kaWZmL2xpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gc3RydWN0dXJlZFBhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7IGNvbnRleHQ6IDQgfTtcbiAgfVxuXG4gIGNvbnN0IGRpZmYgPSBkaWZmTGluZXMob2xkU3RyLCBuZXdTdHIpO1xuICBkaWZmLnB1c2goe3ZhbHVlOiAnJywgbGluZXM6IFtdfSk7ICAgLy8gQXBwZW5kIGFuIGVtcHR5IHZhbHVlIHRvIG1ha2UgY2xlYW51cCBlYXNpZXJcblxuICBmdW5jdGlvbiBjb250ZXh0TGluZXMobGluZXMpIHtcbiAgICByZXR1cm4gbGluZXMubWFwKGZ1bmN0aW9uKGVudHJ5KSB7IHJldHVybiAnICcgKyBlbnRyeTsgfSk7XG4gIH1cblxuICBsZXQgaHVua3MgPSBbXTtcbiAgbGV0IG9sZFJhbmdlU3RhcnQgPSAwLCBuZXdSYW5nZVN0YXJ0ID0gMCwgY3VyUmFuZ2UgPSBbXSxcbiAgICAgIG9sZExpbmUgPSAxLCBuZXdMaW5lID0gMTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWZmLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY3VycmVudCA9IGRpZmZbaV0sXG4gICAgICAgICAgbGluZXMgPSBjdXJyZW50LmxpbmVzIHx8IGN1cnJlbnQudmFsdWUucmVwbGFjZSgvXFxuJC8sICcnKS5zcGxpdCgnXFxuJyk7XG4gICAgY3VycmVudC5saW5lcyA9IGxpbmVzO1xuXG4gICAgaWYgKGN1cnJlbnQuYWRkZWQgfHwgY3VycmVudC5yZW1vdmVkKSB7XG4gICAgICAvLyBJZiB3ZSBoYXZlIHByZXZpb3VzIGNvbnRleHQsIHN0YXJ0IHdpdGggdGhhdFxuICAgICAgaWYgKCFvbGRSYW5nZVN0YXJ0KSB7XG4gICAgICAgIGNvbnN0IHByZXYgPSBkaWZmW2kgLSAxXTtcbiAgICAgICAgb2xkUmFuZ2VTdGFydCA9IG9sZExpbmU7XG4gICAgICAgIG5ld1JhbmdlU3RhcnQgPSBuZXdMaW5lO1xuXG4gICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgY3VyUmFuZ2UgPSBvcHRpb25zLmNvbnRleHQgPiAwID8gY29udGV4dExpbmVzKHByZXYubGluZXMuc2xpY2UoLW9wdGlvbnMuY29udGV4dCkpIDogW107XG4gICAgICAgICAgb2xkUmFuZ2VTdGFydCAtPSBjdXJSYW5nZS5sZW5ndGg7XG4gICAgICAgICAgbmV3UmFuZ2VTdGFydCAtPSBjdXJSYW5nZS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT3V0cHV0IG91ciBjaGFuZ2VzXG4gICAgICBjdXJSYW5nZS5wdXNoKC4uLiBsaW5lcy5tYXAoZnVuY3Rpb24oZW50cnkpIHtcbiAgICAgICAgcmV0dXJuIChjdXJyZW50LmFkZGVkID8gJysnIDogJy0nKSArIGVudHJ5O1xuICAgICAgfSkpO1xuXG4gICAgICAvLyBUcmFjayB0aGUgdXBkYXRlZCBmaWxlIHBvc2l0aW9uXG4gICAgICBpZiAoY3VycmVudC5hZGRlZCkge1xuICAgICAgICBuZXdMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9sZExpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZGVudGljYWwgY29udGV4dCBsaW5lcy4gVHJhY2sgbGluZSBjaGFuZ2VzXG4gICAgICBpZiAob2xkUmFuZ2VTdGFydCkge1xuICAgICAgICAvLyBDbG9zZSBvdXQgYW55IGNoYW5nZXMgdGhhdCBoYXZlIGJlZW4gb3V0cHV0IChvciBqb2luIG92ZXJsYXBwaW5nKVxuICAgICAgICBpZiAobGluZXMubGVuZ3RoIDw9IG9wdGlvbnMuY29udGV4dCAqIDIgJiYgaSA8IGRpZmYubGVuZ3RoIC0gMikge1xuICAgICAgICAgIC8vIE92ZXJsYXBwaW5nXG4gICAgICAgICAgY3VyUmFuZ2UucHVzaCguLi4gY29udGV4dExpbmVzKGxpbmVzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gZW5kIHRoZSByYW5nZSBhbmQgb3V0cHV0XG4gICAgICAgICAgbGV0IGNvbnRleHRTaXplID0gTWF0aC5taW4obGluZXMubGVuZ3RoLCBvcHRpb25zLmNvbnRleHQpO1xuICAgICAgICAgIGN1clJhbmdlLnB1c2goLi4uIGNvbnRleHRMaW5lcyhsaW5lcy5zbGljZSgwLCBjb250ZXh0U2l6ZSkpKTtcblxuICAgICAgICAgIGxldCBodW5rID0ge1xuICAgICAgICAgICAgb2xkU3RhcnQ6IG9sZFJhbmdlU3RhcnQsXG4gICAgICAgICAgICBvbGRMaW5lczogKG9sZExpbmUgLSBvbGRSYW5nZVN0YXJ0ICsgY29udGV4dFNpemUpLFxuICAgICAgICAgICAgbmV3U3RhcnQ6IG5ld1JhbmdlU3RhcnQsXG4gICAgICAgICAgICBuZXdMaW5lczogKG5ld0xpbmUgLSBuZXdSYW5nZVN0YXJ0ICsgY29udGV4dFNpemUpLFxuICAgICAgICAgICAgbGluZXM6IGN1clJhbmdlXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAoaSA+PSBkaWZmLmxlbmd0aCAtIDIgJiYgbGluZXMubGVuZ3RoIDw9IG9wdGlvbnMuY29udGV4dCkge1xuICAgICAgICAgICAgLy8gRU9GIGlzIGluc2lkZSB0aGlzIGh1bmtcbiAgICAgICAgICAgIGxldCBvbGRFT0ZOZXdsaW5lID0gKC9cXG4kLy50ZXN0KG9sZFN0cikpO1xuICAgICAgICAgICAgbGV0IG5ld0VPRk5ld2xpbmUgPSAoL1xcbiQvLnRlc3QobmV3U3RyKSk7XG4gICAgICAgICAgICBpZiAobGluZXMubGVuZ3RoID09IDAgJiYgIW9sZEVPRk5ld2xpbmUpIHtcbiAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOiBvbGQgaGFzIG5vIGVvbCBhbmQgbm8gdHJhaWxpbmcgY29udGV4dDsgbm8tbmwgY2FuIGVuZCB1cCBiZWZvcmUgYWRkc1xuICAgICAgICAgICAgICBjdXJSYW5nZS5zcGxpY2UoaHVuay5vbGRMaW5lcywgMCwgJ1xcXFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZScpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghb2xkRU9GTmV3bGluZSB8fCAhbmV3RU9GTmV3bGluZSkge1xuICAgICAgICAgICAgICBjdXJSYW5nZS5wdXNoKCdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaHVua3MucHVzaChodW5rKTtcblxuICAgICAgICAgIG9sZFJhbmdlU3RhcnQgPSAwO1xuICAgICAgICAgIG5ld1JhbmdlU3RhcnQgPSAwO1xuICAgICAgICAgIGN1clJhbmdlID0gW107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG9sZExpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgICAgbmV3TGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBvbGRGaWxlTmFtZTogb2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lOiBuZXdGaWxlTmFtZSxcbiAgICBvbGRIZWFkZXI6IG9sZEhlYWRlciwgbmV3SGVhZGVyOiBuZXdIZWFkZXIsXG4gICAgaHVua3M6IGh1bmtzXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUd29GaWxlc1BhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKSB7XG4gIGNvbnN0IGRpZmYgPSBzdHJ1Y3R1cmVkUGF0Y2gob2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IHJldCA9IFtdO1xuICBpZiAob2xkRmlsZU5hbWUgPT0gbmV3RmlsZU5hbWUpIHtcbiAgICByZXQucHVzaCgnSW5kZXg6ICcgKyBvbGRGaWxlTmFtZSk7XG4gIH1cbiAgcmV0LnB1c2goJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nKTtcbiAgcmV0LnB1c2goJy0tLSAnICsgZGlmZi5vbGRGaWxlTmFtZSArICh0eXBlb2YgZGlmZi5vbGRIZWFkZXIgPT09ICd1bmRlZmluZWQnID8gJycgOiAnXFx0JyArIGRpZmYub2xkSGVhZGVyKSk7XG4gIHJldC5wdXNoKCcrKysgJyArIGRpZmYubmV3RmlsZU5hbWUgKyAodHlwZW9mIGRpZmYubmV3SGVhZGVyID09PSAndW5kZWZpbmVkJyA/ICcnIDogJ1xcdCcgKyBkaWZmLm5ld0hlYWRlcikpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZi5odW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGh1bmsgPSBkaWZmLmh1bmtzW2ldO1xuICAgIHJldC5wdXNoKFxuICAgICAgJ0BAIC0nICsgaHVuay5vbGRTdGFydCArICcsJyArIGh1bmsub2xkTGluZXNcbiAgICAgICsgJyArJyArIGh1bmsubmV3U3RhcnQgKyAnLCcgKyBodW5rLm5ld0xpbmVzXG4gICAgICArICcgQEAnXG4gICAgKTtcbiAgICByZXQucHVzaC5hcHBseShyZXQsIGh1bmsubGluZXMpO1xuICB9XG5cbiAgcmV0dXJuIHJldC5qb2luKCdcXG4nKSArICdcXG4nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGF0Y2goZmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucykge1xuICByZXR1cm4gY3JlYXRlVHdvRmlsZXNQYXRjaChmaWxlTmFtZSwgZmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucyk7XG59XG4iXX0=
      -
      -
      -/***/ },
      -/* 13 */
      -/***/ function(module, exports) {
      -
      -	/*istanbul ignore start*/"use strict";
      -
      -	exports.__esModule = true;
      -	exports. /*istanbul ignore end*/convertChangesToDMP = convertChangesToDMP;
      -	// See: http://code.google.com/p/google-diff-match-patch/wiki/API
      -	function convertChangesToDMP(changes) {
      -	  var ret = [],
      -	      change = /*istanbul ignore start*/void 0 /*istanbul ignore end*/,
      -	      operation = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -	  for (var i = 0; i < changes.length; i++) {
      -	    change = changes[i];
      -	    if (change.added) {
      -	      operation = 1;
      -	    } else if (change.removed) {
      -	      operation = -1;
      -	    } else {
      -	      operation = 0;
      -	    }
      -
      -	    ret.push([operation, change.value]);
      -	  }
      -	  return ret;
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L2RtcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQ2dCOztBQUFULFNBQVMsbUJBQVQsQ0FBNkIsT0FBN0IsRUFBc0M7QUFDM0MsTUFBSSxNQUFNLEVBQU47TUFDQSxnRUFESjtNQUVJLG1FQUZKLENBRDJDO0FBSTNDLE9BQUssSUFBSSxJQUFJLENBQUosRUFBTyxJQUFJLFFBQVEsTUFBUixFQUFnQixHQUFwQyxFQUF5QztBQUN2QyxhQUFTLFFBQVEsQ0FBUixDQUFULENBRHVDO0FBRXZDLFFBQUksT0FBTyxLQUFQLEVBQWM7QUFDaEIsa0JBQVksQ0FBWixDQURnQjtLQUFsQixNQUVPLElBQUksT0FBTyxPQUFQLEVBQWdCO0FBQ3pCLGtCQUFZLENBQUMsQ0FBRCxDQURhO0tBQXBCLE1BRUE7QUFDTCxrQkFBWSxDQUFaLENBREs7S0FGQTs7QUFNUCxRQUFJLElBQUosQ0FBUyxDQUFDLFNBQUQsRUFBWSxPQUFPLEtBQVAsQ0FBckIsRUFWdUM7R0FBekM7QUFZQSxTQUFPLEdBQVAsQ0FoQjJDO0NBQXRDIiwiZmlsZSI6ImRtcC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNlZTogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2dvb2dsZS1kaWZmLW1hdGNoLXBhdGNoL3dpa2kvQVBJXG5leHBvcnQgZnVuY3Rpb24gY29udmVydENoYW5nZXNUb0RNUChjaGFuZ2VzKSB7XG4gIGxldCByZXQgPSBbXSxcbiAgICAgIGNoYW5nZSxcbiAgICAgIG9wZXJhdGlvbjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgY2hhbmdlID0gY2hhbmdlc1tpXTtcbiAgICBpZiAoY2hhbmdlLmFkZGVkKSB7XG4gICAgICBvcGVyYXRpb24gPSAxO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIG9wZXJhdGlvbiA9IC0xO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcGVyYXRpb24gPSAwO1xuICAgIH1cblxuICAgIHJldC5wdXNoKFtvcGVyYXRpb24sIGNoYW5nZS52YWx1ZV0pO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG4iXX0=
      -
      -
      -/***/ },
      -/* 14 */
      -/***/ function(module, exports) {
      -
      -	/*istanbul ignore start*/'use strict';
      -
      -	exports.__esModule = true;
      -	exports. /*istanbul ignore end*/convertChangesToXML = convertChangesToXML;
      -	function convertChangesToXML(changes) {
      -	  var ret = [];
      -	  for (var i = 0; i < changes.length; i++) {
      -	    var change = changes[i];
      -	    if (change.added) {
      -	      ret.push('');
      -	    } else if (change.removed) {
      -	      ret.push('');
      -	    }
      -
      -	    ret.push(escapeHTML(change.value));
      -
      -	    if (change.added) {
      -	      ret.push('');
      -	    } else if (change.removed) {
      -	      ret.push('');
      -	    }
      -	  }
      -	  return ret.join('');
      -	}
      -
      -	function escapeHTML(s) {
      -	  var n = s;
      -	  n = n.replace(/&/g, '&');
      -	  n = n.replace(//g, '>');
      -	  n = n.replace(/"/g, '"');
      -
      -	  return n;
      -	}
      -	//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L3htbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCO0FBQVQsU0FBUyxtQkFBVCxDQUE2QixPQUE3QixFQUFzQztBQUMzQyxNQUFJLE1BQU0sRUFBTixDQUR1QztBQUUzQyxPQUFLLElBQUksSUFBSSxDQUFKLEVBQU8sSUFBSSxRQUFRLE1BQVIsRUFBZ0IsR0FBcEMsRUFBeUM7QUFDdkMsUUFBSSxTQUFTLFFBQVEsQ0FBUixDQUFULENBRG1DO0FBRXZDLFFBQUksT0FBTyxLQUFQLEVBQWM7QUFDaEIsVUFBSSxJQUFKLENBQVMsT0FBVCxFQURnQjtLQUFsQixNQUVPLElBQUksT0FBTyxPQUFQLEVBQWdCO0FBQ3pCLFVBQUksSUFBSixDQUFTLE9BQVQsRUFEeUI7S0FBcEI7O0FBSVAsUUFBSSxJQUFKLENBQVMsV0FBVyxPQUFPLEtBQVAsQ0FBcEIsRUFSdUM7O0FBVXZDLFFBQUksT0FBTyxLQUFQLEVBQWM7QUFDaEIsVUFBSSxJQUFKLENBQVMsUUFBVCxFQURnQjtLQUFsQixNQUVPLElBQUksT0FBTyxPQUFQLEVBQWdCO0FBQ3pCLFVBQUksSUFBSixDQUFTLFFBQVQsRUFEeUI7S0FBcEI7R0FaVDtBQWdCQSxTQUFPLElBQUksSUFBSixDQUFTLEVBQVQsQ0FBUCxDQWxCMkM7Q0FBdEM7O0FBcUJQLFNBQVMsVUFBVCxDQUFvQixDQUFwQixFQUF1QjtBQUNyQixNQUFJLElBQUksQ0FBSixDQURpQjtBQUVyQixNQUFJLEVBQUUsT0FBRixDQUFVLElBQVYsRUFBZ0IsT0FBaEIsQ0FBSixDQUZxQjtBQUdyQixNQUFJLEVBQUUsT0FBRixDQUFVLElBQVYsRUFBZ0IsTUFBaEIsQ0FBSixDQUhxQjtBQUlyQixNQUFJLEVBQUUsT0FBRixDQUFVLElBQVYsRUFBZ0IsTUFBaEIsQ0FBSixDQUpxQjtBQUtyQixNQUFJLEVBQUUsT0FBRixDQUFVLElBQVYsRUFBZ0IsUUFBaEIsQ0FBSixDQUxxQjs7QUFPckIsU0FBTyxDQUFQLENBUHFCO0NBQXZCIiwiZmlsZSI6InhtbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0Q2hhbmdlc1RvWE1MKGNoYW5nZXMpIHtcbiAgbGV0IHJldCA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYW5nZXMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgY2hhbmdlID0gY2hhbmdlc1tpXTtcbiAgICBpZiAoY2hhbmdlLmFkZGVkKSB7XG4gICAgICByZXQucHVzaCgnPGlucz4nKTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZS5yZW1vdmVkKSB7XG4gICAgICByZXQucHVzaCgnPGRlbD4nKTtcbiAgICB9XG5cbiAgICByZXQucHVzaChlc2NhcGVIVE1MKGNoYW5nZS52YWx1ZSkpO1xuXG4gICAgaWYgKGNoYW5nZS5hZGRlZCkge1xuICAgICAgcmV0LnB1c2goJzwvaW5zPicpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8L2RlbD4nKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldC5qb2luKCcnKTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlSFRNTChzKSB7XG4gIGxldCBuID0gcztcbiAgbiA9IG4ucmVwbGFjZSgvJi9nLCAnJmFtcDsnKTtcbiAgbiA9IG4ucmVwbGFjZSgvPC9nLCAnJmx0OycpO1xuICBuID0gbi5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7XG4gIG4gPSBuLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKTtcblxuICByZXR1cm4gbjtcbn1cbiJdfQ==
      -
      -
      -/***/ }
      -/******/ ])
      -});
      -;
      \ No newline at end of file
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/dist/diff.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/dist/diff.min.js
      deleted file mode 100644
      index dbdafeef..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/dist/diff.min.js
      +++ /dev/null
      @@ -1,311 +0,0 @@
      -/*!
      -
      - diff v2.2.3
      -
      -Software License Agreement (BSD License)
      -
      -Copyright (c) 2009-2015, Kevin Decker 
      -
      -All rights reserved.
      -
      -Redistribution and use of this software 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 Kevin Decker 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.
      -@license
      -*/
      -!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?exports.JsDiff=b():a.JsDiff=b()}(this,function(){/******/
      -return function(a){/******/
      -// The require function
      -/******/
      -function b(d){/******/
      -// Check if module is in cache
      -/******/
      -if(c[d])/******/
      -return c[d].exports;/******/
      -// Create a new module (and put it into the cache)
      -/******/
      -var e=c[d]={/******/
      -exports:{},/******/
      -id:d,/******/
      -loaded:!1};/******/
      -// Return the exports of the module
      -/******/
      -/******/
      -// Execute the module function
      -/******/
      -/******/
      -// Flag the module as loaded
      -/******/
      -return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}// webpackBootstrap
      -/******/
      -// The module cache
      -/******/
      -var c={};/******/
      -// Load entry module and return exports
      -/******/
      -/******/
      -// expose the modules object (__webpack_modules__)
      -/******/
      -/******/
      -// expose the module cache
      -/******/
      -/******/
      -// __webpack_public_path__
      -/******/
      -return b.m=a,b.c=c,b.p="",b(0)}([/* 0 */
      -/***/
      -function(a,b,c){/*istanbul ignore start*/
      -"use strict";/*istanbul ignore start*/
      -function d(a){return a&&a.__esModule?a:{"default":a}}b.__esModule=!0,b.canonicalize=b.convertChangesToXML=b.convertChangesToDMP=b.parsePatch=b.applyPatches=b.applyPatch=b.createPatch=b.createTwoFilesPatch=b.structuredPatch=b.diffJson=b.diffCss=b.diffSentences=b.diffTrimmedLines=b.diffLines=b.diffWordsWithSpace=b.diffWords=b.diffChars=b.Diff=void 0;/*istanbul ignore end*/
      -var/*istanbul ignore start*/e=c(1),f=d(e),/*istanbul ignore start*/g=c(2),/*istanbul ignore start*/h=c(3),/*istanbul ignore start*/i=c(5),/*istanbul ignore start*/j=c(6),/*istanbul ignore start*/k=c(7),/*istanbul ignore start*/l=c(8),/*istanbul ignore start*/m=c(9),/*istanbul ignore start*/n=c(10),/*istanbul ignore start*/o=c(12),/*istanbul ignore start*/p=c(13),/*istanbul ignore start*/q=c(14);/* See LICENSE file for terms of use */
      -/*
      -	 * Text diff implementation.
      -	 *
      -	 * This library supports the following APIS:
      -	 * JsDiff.diffChars: Character by character diff
      -	 * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace
      -	 * JsDiff.diffLines: Line based diff
      -	 *
      -	 * JsDiff.diffCss: Diff targeted at CSS content
      -	 *
      -	 * These methods are based on the implementation proposed in
      -	 * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986).
      -	 * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927
      -	 */
      -b.Diff=f["default"],/*istanbul ignore start*/
      -b.diffChars=g.diffChars,/*istanbul ignore start*/
      -b.diffWords=h.diffWords,/*istanbul ignore start*/
      -b.diffWordsWithSpace=h.diffWordsWithSpace,/*istanbul ignore start*/
      -b.diffLines=i.diffLines,/*istanbul ignore start*/
      -b.diffTrimmedLines=i.diffTrimmedLines,/*istanbul ignore start*/
      -b.diffSentences=j.diffSentences,/*istanbul ignore start*/
      -b.diffCss=k.diffCss,/*istanbul ignore start*/
      -b.diffJson=l.diffJson,/*istanbul ignore start*/
      -b.structuredPatch=o.structuredPatch,/*istanbul ignore start*/
      -b.createTwoFilesPatch=o.createTwoFilesPatch,/*istanbul ignore start*/
      -b.createPatch=o.createPatch,/*istanbul ignore start*/
      -b.applyPatch=m.applyPatch,/*istanbul ignore start*/
      -b.applyPatches=m.applyPatches,/*istanbul ignore start*/
      -b.parsePatch=n.parsePatch,/*istanbul ignore start*/
      -b.convertChangesToDMP=p.convertChangesToDMP,/*istanbul ignore start*/
      -b.convertChangesToXML=q.convertChangesToXML,/*istanbul ignore start*/
      -b.canonicalize=l.canonicalize},/* 1 */
      -/***/
      -function(a,b){/*istanbul ignore start*/
      -"use strict";function c(){}function d(a,b,c,d,e){for(var f=0,g=b.length,h=0,i=0;g>f;f++){var j=b[f];if(j.removed){
      -// Reverse add and remove so removes are output first to match common convention
      -// The diffing algorithm is tied to add then remove output and this is the simplest
      -// route to get the desired output with minimal overhead.
      -if(j.value=d.slice(i,i+j.count).join(""),i+=j.count,f&&b[f-1].added){var k=b[f-1];b[f-1]=b[f],b[f]=k}}else{if(!j.added&&e){var l=c.slice(h,h+j.count);l=l.map(function(a,b){var c=d[i+b];return c.length>a.length?c:a}),j.value=l.join("")}else j.value=c.slice(h,h+j.count).join("");h+=j.count,
      -// Common case
      -j.added||(i+=j.count)}}
      -// Special case handle for when one terminal is ignored. For this case we merge the
      -// terminal into the prior string and drop the change.
      -var m=b[g-1];return g>1&&(m.added||m.removed)&&a.equals("",m.value)&&(b[g-2].value+=m.value,b.pop()),b}function e(a){return{newPos:a.newPos,components:a.components.slice(0)}}b.__esModule=!0,b["default"]=/*istanbul ignore end*/c,c.prototype={/*istanbul ignore start*/
      -/*istanbul ignore end*/
      -diff:function(a,b){function c(a){return h?(setTimeout(function(){h(void 0,a)},0),!0):a}
      -// Main worker method. checks all permutations of a given edit length for acceptance.
      -function f(){for(var f=-1*l;l>=f;f+=2){var g=void 0,h=n[f-1],m=n[f+1],o=(m?m.newPos:0)-f;h&&(
      -// No one else is going to attempt to use this value, clear it
      -n[f-1]=void 0);var p=h&&h.newPos+1=0&&k>o;if(p||q){
      -// If we have hit the end of both strings, then we are done
      -if(
      -// Select the diagonal that we want to branch from. We select the prior
      -// path whose position in the new string is the farthest from the origin
      -// and does not pass the bounds of the diff graph
      -!p||q&&h.newPos=j&&o+1>=k)return c(d(i,g.components,b,a,i.useLongestToken));
      -// Otherwise track this path as a potential candidate and continue.
      -n[f]=g}else
      -// If this path is a terminal then prune
      -n[f]=void 0}l++}/*istanbul ignore start*/
      -var/*istanbul ignore end*/g=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],h=g.callback;"function"==typeof g&&(h=g,g={}),this.options=g;var i=this;a=this.castInput(a),b=this.castInput(b),a=this.removeEmpty(this.tokenize(a)),b=this.removeEmpty(this.tokenize(b));var j=b.length,k=a.length,l=1,m=j+k,n=[{newPos:-1,components:[]}],o=this.extractCommon(n[0],b,a,0);if(n[0].newPos+1>=j&&o+1>=k)
      -// Identity per the equality and tokenizer
      -return c([{value:b.join(""),count:b.length}]);
      -// Performs the length of edit iteration. Is a bit fugly as this has to support the
      -// sync and async mode which is never fun. Loops over execEditLength until a value
      -// is produced.
      -if(h)!function q(){setTimeout(function(){
      -// This should not happen, but we want to be safe.
      -/* istanbul ignore next */
      -// This should not happen, but we want to be safe.
      -/* istanbul ignore next */
      -return l>m?h():void(f()||q())},0)}();else for(;m>=l;){var p=f();if(p)return p}},/*istanbul ignore start*/
      -/*istanbul ignore end*/
      -pushComponent:function(a,b,c){var d=a[a.length-1];d&&d.added===b&&d.removed===c?
      -// We need to clone here as the component clone operation is just
      -// as shallow array clone
      -a[a.length-1]={count:d.count+1,added:b,removed:c}:a.push({count:1,added:b,removed:c})},/*istanbul ignore start*/
      -/*istanbul ignore end*/
      -extractCommon:function(a,b,c,d){for(var e=b.length,f=c.length,g=a.newPos,h=g-d,i=0;e>g+1&&f>h+1&&this.equals(b[g+1],c[h+1]);)g++,h++,i++;return i&&a.components.push({count:i}),a.newPos=g,h},/*istanbul ignore start*/
      -/*istanbul ignore end*/
      -equals:function(a,b){return a===b},/*istanbul ignore start*/
      -/*istanbul ignore end*/
      -removeEmpty:function(a){for(var b=[],c=0;ck))return!1;b++}}return!0}/*istanbul ignore start*/
      -var/*istanbul ignore end*/d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];if("string"==typeof b&&(b=/*istanbul ignore start*/(0,g.parsePatch)(b)),Array.isArray(b)){if(b.length>1)throw new Error("applyPatch only works with a single input.");b=b[0]}
      -// Search best fit offsets for each hunk based on the previous ones
      -for(var e=a.split("\n"),f=b.hunks,h=d.compareLine||function(a,b,c,d){/*istanbul ignore end*/
      -return b===d},j=0,k=d.fuzzFactor||0,l=0,m=0,n=void 0,o=void 0,p=0;p=a+g)return g;f=!0}
      -// Check if trying to fit before text beginning, and if not, check it fits
      -// before offset location
      -return e?void 0:(f||(d=!0),a-g>=b?-g++:(e=!0,h()))}}},/* 12 */
      -/***/
      -function(a,b,c){/*istanbul ignore start*/
      -"use strict";/*istanbul ignore start*/
      -function d(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0?j(h.lines.slice(-i.context)):[],m-=o.length,n-=o.length)}
      -// Output our changes
      -/*istanbul ignore start*/
      -(g=/*istanbul ignore end*/o).push.apply(/*istanbul ignore start*/g,/*istanbul ignore start*/d(/*istanbul ignore end*/f.map(function(a){return(b.added?"+":"-")+a}))),
      -// Track the updated file position
      -b.added?q+=f.length:p+=f.length}else{
      -// Identical context lines. Track line changes
      -if(m)
      -// Close out any changes that have been output (or join overlapping)
      -if(f.length<=2*i.context&&a=k.length-2&&f.length<=i.context){
      -// EOF is inside this hunk
      -var v=/\n$/.test(c),w=/\n$/.test(e);0!=f.length||v?v&&w||o.push("\\ No newline at end of file"):
      -// special case: old has no eol and no trailing context; no-nl can end up before adds
      -o.splice(u.oldLines,0,"\\ No newline at end of file")}l.push(u),m=0,n=0,o=[]}p+=f.length,q+=f.length}},s=0;s"):e.removed&&b.push(""),b.push(d(e.value)),e.added?b.push(""):e.removed&&b.push("")}return b.join("")}function d(a){var b=a;return b=b.replace(/&/g,"&"),b=b.replace(//g,">"),b=b.replace(/"/g,""")}b.__esModule=!0,b.convertChangesToXML=c}])});
      \ No newline at end of file
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/examples/node_example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/examples/node_example.js
      deleted file mode 100644
      index 8e696caf..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/examples/node_example.js
      +++ /dev/null
      @@ -1,17 +0,0 @@
      -require('colors')
      -var jsdiff = require('../');
      -
      -var one = 'beep boop';
      -var other = 'beep boob blah';
      -
      -var diff = jsdiff.diffChars(one, other);
      -
      -diff.forEach(function(part){
      -  // green for additions, red for deletions
      -  // grey for common parts
      -  var color = part.added ? 'green' :
      -    part.removed ? 'red' : 'grey';
      -  process.stderr.write(part.value[color]);
      -});
      -
      -console.log();
      \ No newline at end of file
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/examples/web_example.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/examples/web_example.html
      deleted file mode 100644
      index 7f2cb636..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/examples/web_example.html
      +++ /dev/null
      @@ -1,20 +0,0 @@
      -
      
      -
      -
      \ No newline at end of file
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/images/node_example.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/images/node_example.png
      deleted file mode 100644
      index eb87034a..00000000
      Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/images/node_example.png and /dev/null differ
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/images/web_example.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/images/web_example.png
      deleted file mode 100644
      index aa7e0def..00000000
      Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/images/web_example.png and /dev/null differ
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/convert/dmp.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/convert/dmp.js
      deleted file mode 100644
      index 79f99b82..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/convert/dmp.js
      +++ /dev/null
      @@ -1,24 +0,0 @@
      -/*istanbul ignore start*/"use strict";
      -
      -exports.__esModule = true;
      -exports. /*istanbul ignore end*/convertChangesToDMP = convertChangesToDMP;
      -// See: http://code.google.com/p/google-diff-match-patch/wiki/API
      -function convertChangesToDMP(changes) {
      -  var ret = [],
      -      change = /*istanbul ignore start*/void 0 /*istanbul ignore end*/,
      -      operation = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -  for (var i = 0; i < changes.length; i++) {
      -    change = changes[i];
      -    if (change.added) {
      -      operation = 1;
      -    } else if (change.removed) {
      -      operation = -1;
      -    } else {
      -      operation = 0;
      -    }
      -
      -    ret.push([operation, change.value]);
      -  }
      -  return ret;
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L2RtcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQ2dCOztBQUFULFNBQVMsbUJBQVQsQ0FBNkIsT0FBN0IsRUFBc0M7QUFDM0MsTUFBSSxNQUFNLEVBQU47TUFDQSxnRUFESjtNQUVJLG1FQUZKLENBRDJDO0FBSTNDLE9BQUssSUFBSSxJQUFJLENBQUosRUFBTyxJQUFJLFFBQVEsTUFBUixFQUFnQixHQUFwQyxFQUF5QztBQUN2QyxhQUFTLFFBQVEsQ0FBUixDQUFULENBRHVDO0FBRXZDLFFBQUksT0FBTyxLQUFQLEVBQWM7QUFDaEIsa0JBQVksQ0FBWixDQURnQjtLQUFsQixNQUVPLElBQUksT0FBTyxPQUFQLEVBQWdCO0FBQ3pCLGtCQUFZLENBQUMsQ0FBRCxDQURhO0tBQXBCLE1BRUE7QUFDTCxrQkFBWSxDQUFaLENBREs7S0FGQTs7QUFNUCxRQUFJLElBQUosQ0FBUyxDQUFDLFNBQUQsRUFBWSxPQUFPLEtBQVAsQ0FBckIsRUFWdUM7R0FBekM7QUFZQSxTQUFPLEdBQVAsQ0FoQjJDO0NBQXRDIiwiZmlsZSI6ImRtcC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNlZTogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2dvb2dsZS1kaWZmLW1hdGNoLXBhdGNoL3dpa2kvQVBJXG5leHBvcnQgZnVuY3Rpb24gY29udmVydENoYW5nZXNUb0RNUChjaGFuZ2VzKSB7XG4gIGxldCByZXQgPSBbXSxcbiAgICAgIGNoYW5nZSxcbiAgICAgIG9wZXJhdGlvbjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgY2hhbmdlID0gY2hhbmdlc1tpXTtcbiAgICBpZiAoY2hhbmdlLmFkZGVkKSB7XG4gICAgICBvcGVyYXRpb24gPSAxO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIG9wZXJhdGlvbiA9IC0xO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcGVyYXRpb24gPSAwO1xuICAgIH1cblxuICAgIHJldC5wdXNoKFtvcGVyYXRpb24sIGNoYW5nZS52YWx1ZV0pO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG4iXX0=
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/convert/xml.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/convert/xml.js
      deleted file mode 100644
      index 07bae6e9..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/convert/xml.js
      +++ /dev/null
      @@ -1,35 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports. /*istanbul ignore end*/convertChangesToXML = convertChangesToXML;
      -function convertChangesToXML(changes) {
      -  var ret = [];
      -  for (var i = 0; i < changes.length; i++) {
      -    var change = changes[i];
      -    if (change.added) {
      -      ret.push('');
      -    } else if (change.removed) {
      -      ret.push('');
      -    }
      -
      -    ret.push(escapeHTML(change.value));
      -
      -    if (change.added) {
      -      ret.push('');
      -    } else if (change.removed) {
      -      ret.push('');
      -    }
      -  }
      -  return ret.join('');
      -}
      -
      -function escapeHTML(s) {
      -  var n = s;
      -  n = n.replace(/&/g, '&');
      -  n = n.replace(//g, '>');
      -  n = n.replace(/"/g, '"');
      -
      -  return n;
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L3htbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCO0FBQVQsU0FBUyxtQkFBVCxDQUE2QixPQUE3QixFQUFzQztBQUMzQyxNQUFJLE1BQU0sRUFBTixDQUR1QztBQUUzQyxPQUFLLElBQUksSUFBSSxDQUFKLEVBQU8sSUFBSSxRQUFRLE1BQVIsRUFBZ0IsR0FBcEMsRUFBeUM7QUFDdkMsUUFBSSxTQUFTLFFBQVEsQ0FBUixDQUFULENBRG1DO0FBRXZDLFFBQUksT0FBTyxLQUFQLEVBQWM7QUFDaEIsVUFBSSxJQUFKLENBQVMsT0FBVCxFQURnQjtLQUFsQixNQUVPLElBQUksT0FBTyxPQUFQLEVBQWdCO0FBQ3pCLFVBQUksSUFBSixDQUFTLE9BQVQsRUFEeUI7S0FBcEI7O0FBSVAsUUFBSSxJQUFKLENBQVMsV0FBVyxPQUFPLEtBQVAsQ0FBcEIsRUFSdUM7O0FBVXZDLFFBQUksT0FBTyxLQUFQLEVBQWM7QUFDaEIsVUFBSSxJQUFKLENBQVMsUUFBVCxFQURnQjtLQUFsQixNQUVPLElBQUksT0FBTyxPQUFQLEVBQWdCO0FBQ3pCLFVBQUksSUFBSixDQUFTLFFBQVQsRUFEeUI7S0FBcEI7R0FaVDtBQWdCQSxTQUFPLElBQUksSUFBSixDQUFTLEVBQVQsQ0FBUCxDQWxCMkM7Q0FBdEM7O0FBcUJQLFNBQVMsVUFBVCxDQUFvQixDQUFwQixFQUF1QjtBQUNyQixNQUFJLElBQUksQ0FBSixDQURpQjtBQUVyQixNQUFJLEVBQUUsT0FBRixDQUFVLElBQVYsRUFBZ0IsT0FBaEIsQ0FBSixDQUZxQjtBQUdyQixNQUFJLEVBQUUsT0FBRixDQUFVLElBQVYsRUFBZ0IsTUFBaEIsQ0FBSixDQUhxQjtBQUlyQixNQUFJLEVBQUUsT0FBRixDQUFVLElBQVYsRUFBZ0IsTUFBaEIsQ0FBSixDQUpxQjtBQUtyQixNQUFJLEVBQUUsT0FBRixDQUFVLElBQVYsRUFBZ0IsUUFBaEIsQ0FBSixDQUxxQjs7QUFPckIsU0FBTyxDQUFQLENBUHFCO0NBQXZCIiwiZmlsZSI6InhtbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0Q2hhbmdlc1RvWE1MKGNoYW5nZXMpIHtcbiAgbGV0IHJldCA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYW5nZXMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgY2hhbmdlID0gY2hhbmdlc1tpXTtcbiAgICBpZiAoY2hhbmdlLmFkZGVkKSB7XG4gICAgICByZXQucHVzaCgnPGlucz4nKTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZS5yZW1vdmVkKSB7XG4gICAgICByZXQucHVzaCgnPGRlbD4nKTtcbiAgICB9XG5cbiAgICByZXQucHVzaChlc2NhcGVIVE1MKGNoYW5nZS52YWx1ZSkpO1xuXG4gICAgaWYgKGNoYW5nZS5hZGRlZCkge1xuICAgICAgcmV0LnB1c2goJzwvaW5zPicpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8L2RlbD4nKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldC5qb2luKCcnKTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlSFRNTChzKSB7XG4gIGxldCBuID0gcztcbiAgbiA9IG4ucmVwbGFjZSgvJi9nLCAnJmFtcDsnKTtcbiAgbiA9IG4ucmVwbGFjZSgvPC9nLCAnJmx0OycpO1xuICBuID0gbi5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7XG4gIG4gPSBuLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKTtcblxuICByZXR1cm4gbjtcbn1cbiJdfQ==
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/base.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/base.js
      deleted file mode 100644
      index 703e0b5c..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/base.js
      +++ /dev/null
      @@ -1,227 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports.default = /*istanbul ignore end*/Diff;
      -function Diff() {}
      -
      -Diff.prototype = { /*istanbul ignore start*/
      -  /*istanbul ignore end*/diff: function diff(oldString, newString) {
      -    /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
      -
      -    var callback = options.callback;
      -    if (typeof options === 'function') {
      -      callback = options;
      -      options = {};
      -    }
      -    this.options = options;
      -
      -    var self = this;
      -
      -    function done(value) {
      -      if (callback) {
      -        setTimeout(function () {
      -          callback(undefined, value);
      -        }, 0);
      -        return true;
      -      } else {
      -        return value;
      -      }
      -    }
      -
      -    // Allow subclasses to massage the input prior to running
      -    oldString = this.castInput(oldString);
      -    newString = this.castInput(newString);
      -
      -    oldString = this.removeEmpty(this.tokenize(oldString));
      -    newString = this.removeEmpty(this.tokenize(newString));
      -
      -    var newLen = newString.length,
      -        oldLen = oldString.length;
      -    var editLength = 1;
      -    var maxEditLength = newLen + oldLen;
      -    var bestPath = [{ newPos: -1, components: [] }];
      -
      -    // Seed editLength = 0, i.e. the content starts with the same values
      -    var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
      -    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
      -      // Identity per the equality and tokenizer
      -      return done([{ value: newString.join(''), count: newString.length }]);
      -    }
      -
      -    // Main worker method. checks all permutations of a given edit length for acceptance.
      -    function execEditLength() {
      -      for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
      -        var basePath = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -        var addPath = bestPath[diagonalPath - 1],
      -            removePath = bestPath[diagonalPath + 1],
      -            _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
      -        if (addPath) {
      -          // No one else is going to attempt to use this value, clear it
      -          bestPath[diagonalPath - 1] = undefined;
      -        }
      -
      -        var canAdd = addPath && addPath.newPos + 1 < newLen,
      -            canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
      -        if (!canAdd && !canRemove) {
      -          // If this path is a terminal then prune
      -          bestPath[diagonalPath] = undefined;
      -          continue;
      -        }
      -
      -        // Select the diagonal that we want to branch from. We select the prior
      -        // path whose position in the new string is the farthest from the origin
      -        // and does not pass the bounds of the diff graph
      -        if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
      -          basePath = clonePath(removePath);
      -          self.pushComponent(basePath.components, undefined, true);
      -        } else {
      -          basePath = addPath; // No need to clone, we've pulled it from the list
      -          basePath.newPos++;
      -          self.pushComponent(basePath.components, true, undefined);
      -        }
      -
      -        _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath);
      -
      -        // If we have hit the end of both strings, then we are done
      -        if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
      -          return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));
      -        } else {
      -          // Otherwise track this path as a potential candidate and continue.
      -          bestPath[diagonalPath] = basePath;
      -        }
      -      }
      -
      -      editLength++;
      -    }
      -
      -    // Performs the length of edit iteration. Is a bit fugly as this has to support the
      -    // sync and async mode which is never fun. Loops over execEditLength until a value
      -    // is produced.
      -    if (callback) {
      -      (function exec() {
      -        setTimeout(function () {
      -          // This should not happen, but we want to be safe.
      -          /* istanbul ignore next */
      -          if (editLength > maxEditLength) {
      -            return callback();
      -          }
      -
      -          if (!execEditLength()) {
      -            exec();
      -          }
      -        }, 0);
      -      })();
      -    } else {
      -      while (editLength <= maxEditLength) {
      -        var ret = execEditLength();
      -        if (ret) {
      -          return ret;
      -        }
      -      }
      -    }
      -  },
      -  /*istanbul ignore start*/ /*istanbul ignore end*/pushComponent: function pushComponent(components, added, removed) {
      -    var last = components[components.length - 1];
      -    if (last && last.added === added && last.removed === removed) {
      -      // We need to clone here as the component clone operation is just
      -      // as shallow array clone
      -      components[components.length - 1] = { count: last.count + 1, added: added, removed: removed };
      -    } else {
      -      components.push({ count: 1, added: added, removed: removed });
      -    }
      -  },
      -  /*istanbul ignore start*/ /*istanbul ignore end*/extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
      -    var newLen = newString.length,
      -        oldLen = oldString.length,
      -        newPos = basePath.newPos,
      -        oldPos = newPos - diagonalPath,
      -        commonCount = 0;
      -    while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
      -      newPos++;
      -      oldPos++;
      -      commonCount++;
      -    }
      -
      -    if (commonCount) {
      -      basePath.components.push({ count: commonCount });
      -    }
      -
      -    basePath.newPos = newPos;
      -    return oldPos;
      -  },
      -  /*istanbul ignore start*/ /*istanbul ignore end*/equals: function equals(left, right) {
      -    return left === right;
      -  },
      -  /*istanbul ignore start*/ /*istanbul ignore end*/removeEmpty: function removeEmpty(array) {
      -    var ret = [];
      -    for (var i = 0; i < array.length; i++) {
      -      if (array[i]) {
      -        ret.push(array[i]);
      -      }
      -    }
      -    return ret;
      -  },
      -  /*istanbul ignore start*/ /*istanbul ignore end*/castInput: function castInput(value) {
      -    return value;
      -  },
      -  /*istanbul ignore start*/ /*istanbul ignore end*/tokenize: function tokenize(value) {
      -    return value.split('');
      -  }
      -};
      -
      -function buildValues(diff, components, newString, oldString, useLongestToken) {
      -  var componentPos = 0,
      -      componentLen = components.length,
      -      newPos = 0,
      -      oldPos = 0;
      -
      -  for (; componentPos < componentLen; componentPos++) {
      -    var component = components[componentPos];
      -    if (!component.removed) {
      -      if (!component.added && useLongestToken) {
      -        var value = newString.slice(newPos, newPos + component.count);
      -        value = value.map(function (value, i) {
      -          var oldValue = oldString[oldPos + i];
      -          return oldValue.length > value.length ? oldValue : value;
      -        });
      -
      -        component.value = value.join('');
      -      } else {
      -        component.value = newString.slice(newPos, newPos + component.count).join('');
      -      }
      -      newPos += component.count;
      -
      -      // Common case
      -      if (!component.added) {
      -        oldPos += component.count;
      -      }
      -    } else {
      -      component.value = oldString.slice(oldPos, oldPos + component.count).join('');
      -      oldPos += component.count;
      -
      -      // Reverse add and remove so removes are output first to match common convention
      -      // The diffing algorithm is tied to add then remove output and this is the simplest
      -      // route to get the desired output with minimal overhead.
      -      if (componentPos && components[componentPos - 1].added) {
      -        var tmp = components[componentPos - 1];
      -        components[componentPos - 1] = components[componentPos];
      -        components[componentPos] = tmp;
      -      }
      -    }
      -  }
      -
      -  // Special case handle for when one terminal is ignored. For this case we merge the
      -  // terminal into the prior string and drop the change.
      -  var lastComponent = components[componentLen - 1];
      -  if (componentLen > 1 && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {
      -    components[componentLen - 2].value += lastComponent.value;
      -    components.pop();
      -  }
      -
      -  return components;
      -}
      -
      -function clonePath(path) {
      -  return { newPos: path.newPos, components: path.components.slice(0) };
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O3lDQUF3QjtBQUFULFNBQVMsSUFBVCxHQUFnQixFQUFoQjs7QUFFZixLQUFLLFNBQUwsR0FBaUI7eUJBQ2Ysb0JBQUssV0FBVyxXQUF5Qjt3REFBZCxnRUFBVSxrQkFBSTs7QUFDdkMsUUFBSSxXQUFXLFFBQVEsUUFBUixDQUR3QjtBQUV2QyxRQUFJLE9BQU8sT0FBUCxLQUFtQixVQUFuQixFQUErQjtBQUNqQyxpQkFBVyxPQUFYLENBRGlDO0FBRWpDLGdCQUFVLEVBQVYsQ0FGaUM7S0FBbkM7QUFJQSxTQUFLLE9BQUwsR0FBZSxPQUFmLENBTnVDOztBQVF2QyxRQUFJLE9BQU8sSUFBUCxDQVJtQzs7QUFVdkMsYUFBUyxJQUFULENBQWMsS0FBZCxFQUFxQjtBQUNuQixVQUFJLFFBQUosRUFBYztBQUNaLG1CQUFXLFlBQVc7QUFBRSxtQkFBUyxTQUFULEVBQW9CLEtBQXBCLEVBQUY7U0FBWCxFQUE0QyxDQUF2RCxFQURZO0FBRVosZUFBTyxJQUFQLENBRlk7T0FBZCxNQUdPO0FBQ0wsZUFBTyxLQUFQLENBREs7T0FIUDtLQURGOzs7QUFWdUMsYUFvQnZDLEdBQVksS0FBSyxTQUFMLENBQWUsU0FBZixDQUFaLENBcEJ1QztBQXFCdkMsZ0JBQVksS0FBSyxTQUFMLENBQWUsU0FBZixDQUFaLENBckJ1Qzs7QUF1QnZDLGdCQUFZLEtBQUssV0FBTCxDQUFpQixLQUFLLFFBQUwsQ0FBYyxTQUFkLENBQWpCLENBQVosQ0F2QnVDO0FBd0J2QyxnQkFBWSxLQUFLLFdBQUwsQ0FBaUIsS0FBSyxRQUFMLENBQWMsU0FBZCxDQUFqQixDQUFaLENBeEJ1Qzs7QUEwQnZDLFFBQUksU0FBUyxVQUFVLE1BQVY7UUFBa0IsU0FBUyxVQUFVLE1BQVYsQ0ExQkQ7QUEyQnZDLFFBQUksYUFBYSxDQUFiLENBM0JtQztBQTRCdkMsUUFBSSxnQkFBZ0IsU0FBUyxNQUFULENBNUJtQjtBQTZCdkMsUUFBSSxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBRCxFQUFJLFlBQVksRUFBWixFQUFmLENBQVg7OztBQTdCbUMsUUFnQ25DLFNBQVMsS0FBSyxhQUFMLENBQW1CLFNBQVMsQ0FBVCxDQUFuQixFQUFnQyxTQUFoQyxFQUEyQyxTQUEzQyxFQUFzRCxDQUF0RCxDQUFULENBaENtQztBQWlDdkMsUUFBSSxTQUFTLENBQVQsRUFBWSxNQUFaLEdBQXFCLENBQXJCLElBQTBCLE1BQTFCLElBQW9DLFNBQVMsQ0FBVCxJQUFjLE1BQWQsRUFBc0I7O0FBRTVELGFBQU8sS0FBSyxDQUFDLEVBQUMsT0FBTyxVQUFVLElBQVYsQ0FBZSxFQUFmLENBQVAsRUFBMkIsT0FBTyxVQUFVLE1BQVYsRUFBcEMsQ0FBTCxDQUFQLENBRjREO0tBQTlEOzs7QUFqQ3VDLGFBdUM5QixjQUFULEdBQTBCO0FBQ3hCLFdBQUssSUFBSSxlQUFlLENBQUMsQ0FBRCxHQUFLLFVBQUwsRUFBaUIsZ0JBQWdCLFVBQWhCLEVBQTRCLGdCQUFnQixDQUFoQixFQUFtQjtBQUN0RixZQUFJLGtFQUFKLENBRHNGO0FBRXRGLFlBQUksVUFBVSxTQUFTLGVBQWUsQ0FBZixDQUFuQjtZQUNBLGFBQWEsU0FBUyxlQUFlLENBQWYsQ0FBdEI7WUFDQSxVQUFTLENBQUMsYUFBYSxXQUFXLE1BQVgsR0FBb0IsQ0FBakMsQ0FBRCxHQUF1QyxZQUF2QyxDQUp5RTtBQUt0RixZQUFJLE9BQUosRUFBYTs7QUFFWCxtQkFBUyxlQUFlLENBQWYsQ0FBVCxHQUE2QixTQUE3QixDQUZXO1NBQWI7O0FBS0EsWUFBSSxTQUFTLFdBQVcsUUFBUSxNQUFSLEdBQWlCLENBQWpCLEdBQXFCLE1BQXJCO1lBQ3BCLFlBQVksY0FBYyxLQUFLLE9BQUwsSUFBZSxVQUFTLE1BQVQsQ0FYeUM7QUFZdEYsWUFBSSxDQUFDLE1BQUQsSUFBVyxDQUFDLFNBQUQsRUFBWTs7QUFFekIsbUJBQVMsWUFBVCxJQUF5QixTQUF6QixDQUZ5QjtBQUd6QixtQkFIeUI7U0FBM0I7Ozs7O0FBWnNGLFlBcUJsRixDQUFDLE1BQUQsSUFBWSxhQUFhLFFBQVEsTUFBUixHQUFpQixXQUFXLE1BQVgsRUFBb0I7QUFDaEUscUJBQVcsVUFBVSxVQUFWLENBQVgsQ0FEZ0U7QUFFaEUsZUFBSyxhQUFMLENBQW1CLFNBQVMsVUFBVCxFQUFxQixTQUF4QyxFQUFtRCxJQUFuRCxFQUZnRTtTQUFsRSxNQUdPO0FBQ0wscUJBQVcsT0FBWDtBQURLLGtCQUVMLENBQVMsTUFBVCxHQUZLO0FBR0wsZUFBSyxhQUFMLENBQW1CLFNBQVMsVUFBVCxFQUFxQixJQUF4QyxFQUE4QyxTQUE5QyxFQUhLO1NBSFA7O0FBU0Esa0JBQVMsS0FBSyxhQUFMLENBQW1CLFFBQW5CLEVBQTZCLFNBQTdCLEVBQXdDLFNBQXhDLEVBQW1ELFlBQW5ELENBQVQ7OztBQTlCc0YsWUFpQ2xGLFNBQVMsTUFBVCxHQUFrQixDQUFsQixJQUF1QixNQUF2QixJQUFpQyxVQUFTLENBQVQsSUFBYyxNQUFkLEVBQXNCO0FBQ3pELGlCQUFPLEtBQUssWUFBWSxJQUFaLEVBQWtCLFNBQVMsVUFBVCxFQUFxQixTQUF2QyxFQUFrRCxTQUFsRCxFQUE2RCxLQUFLLGVBQUwsQ0FBbEUsQ0FBUCxDQUR5RDtTQUEzRCxNQUVPOztBQUVMLG1CQUFTLFlBQVQsSUFBeUIsUUFBekIsQ0FGSztTQUZQO09BakNGOztBQXlDQSxtQkExQ3dCO0tBQTFCOzs7OztBQXZDdUMsUUF1Rm5DLFFBQUosRUFBYztBQUNaLE9BQUMsU0FBUyxJQUFULEdBQWdCO0FBQ2YsbUJBQVcsWUFBVzs7O0FBR3BCLGNBQUksYUFBYSxhQUFiLEVBQTRCO0FBQzlCLG1CQUFPLFVBQVAsQ0FEOEI7V0FBaEM7O0FBSUEsY0FBSSxDQUFDLGdCQUFELEVBQW1CO0FBQ3JCLG1CQURxQjtXQUF2QjtTQVBTLEVBVVIsQ0FWSCxFQURlO09BQWhCLEdBQUQsQ0FEWTtLQUFkLE1BY087QUFDTCxhQUFPLGNBQWMsYUFBZCxFQUE2QjtBQUNsQyxZQUFJLE1BQU0sZ0JBQU4sQ0FEOEI7QUFFbEMsWUFBSSxHQUFKLEVBQVM7QUFDUCxpQkFBTyxHQUFQLENBRE87U0FBVDtPQUZGO0tBZkY7R0F4RmE7bURBZ0hmLHNDQUFjLFlBQVksT0FBTyxTQUFTO0FBQ3hDLFFBQUksT0FBTyxXQUFXLFdBQVcsTUFBWCxHQUFvQixDQUFwQixDQUFsQixDQURvQztBQUV4QyxRQUFJLFFBQVEsS0FBSyxLQUFMLEtBQWUsS0FBZixJQUF3QixLQUFLLE9BQUwsS0FBaUIsT0FBakIsRUFBMEI7OztBQUc1RCxpQkFBVyxXQUFXLE1BQVgsR0FBb0IsQ0FBcEIsQ0FBWCxHQUFvQyxFQUFDLE9BQU8sS0FBSyxLQUFMLEdBQWEsQ0FBYixFQUFnQixPQUFPLEtBQVAsRUFBYyxTQUFTLE9BQVQsRUFBMUUsQ0FINEQ7S0FBOUQsTUFJTztBQUNMLGlCQUFXLElBQVgsQ0FBZ0IsRUFBQyxPQUFPLENBQVAsRUFBVSxPQUFPLEtBQVAsRUFBYyxTQUFTLE9BQVQsRUFBekMsRUFESztLQUpQO0dBbEhhO21EQTBIZixzQ0FBYyxVQUFVLFdBQVcsV0FBVyxjQUFjO0FBQzFELFFBQUksU0FBUyxVQUFVLE1BQVY7UUFDVCxTQUFTLFVBQVUsTUFBVjtRQUNULFNBQVMsU0FBUyxNQUFUO1FBQ1QsU0FBUyxTQUFTLFlBQVQ7UUFFVCxjQUFjLENBQWQsQ0FOc0Q7QUFPMUQsV0FBTyxTQUFTLENBQVQsR0FBYSxNQUFiLElBQXVCLFNBQVMsQ0FBVCxHQUFhLE1BQWIsSUFBdUIsS0FBSyxNQUFMLENBQVksVUFBVSxTQUFTLENBQVQsQ0FBdEIsRUFBbUMsVUFBVSxTQUFTLENBQVQsQ0FBN0MsQ0FBOUMsRUFBeUc7QUFDOUcsZUFEOEc7QUFFOUcsZUFGOEc7QUFHOUcsb0JBSDhHO0tBQWhIOztBQU1BLFFBQUksV0FBSixFQUFpQjtBQUNmLGVBQVMsVUFBVCxDQUFvQixJQUFwQixDQUF5QixFQUFDLE9BQU8sV0FBUCxFQUExQixFQURlO0tBQWpCOztBQUlBLGFBQVMsTUFBVCxHQUFrQixNQUFsQixDQWpCMEQ7QUFrQjFELFdBQU8sTUFBUCxDQWxCMEQ7R0ExSDdDO21EQStJZix3QkFBTyxNQUFNLE9BQU87QUFDbEIsV0FBTyxTQUFTLEtBQVQsQ0FEVztHQS9JTDttREFrSmYsa0NBQVksT0FBTztBQUNqQixRQUFJLE1BQU0sRUFBTixDQURhO0FBRWpCLFNBQUssSUFBSSxJQUFJLENBQUosRUFBTyxJQUFJLE1BQU0sTUFBTixFQUFjLEdBQWxDLEVBQXVDO0FBQ3JDLFVBQUksTUFBTSxDQUFOLENBQUosRUFBYztBQUNaLFlBQUksSUFBSixDQUFTLE1BQU0sQ0FBTixDQUFULEVBRFk7T0FBZDtLQURGO0FBS0EsV0FBTyxHQUFQLENBUGlCO0dBbEpKO21EQTJKZiw4QkFBVSxPQUFPO0FBQ2YsV0FBTyxLQUFQLENBRGU7R0EzSkY7bURBOEpmLDRCQUFTLE9BQU87QUFDZCxXQUFPLE1BQU0sS0FBTixDQUFZLEVBQVosQ0FBUCxDQURjO0dBOUpEO0NBQWpCOztBQW1LQSxTQUFTLFdBQVQsQ0FBcUIsSUFBckIsRUFBMkIsVUFBM0IsRUFBdUMsU0FBdkMsRUFBa0QsU0FBbEQsRUFBNkQsZUFBN0QsRUFBOEU7QUFDNUUsTUFBSSxlQUFlLENBQWY7TUFDQSxlQUFlLFdBQVcsTUFBWDtNQUNmLFNBQVMsQ0FBVDtNQUNBLFNBQVMsQ0FBVCxDQUp3RTs7QUFNNUUsU0FBTyxlQUFlLFlBQWYsRUFBNkIsY0FBcEMsRUFBb0Q7QUFDbEQsUUFBSSxZQUFZLFdBQVcsWUFBWCxDQUFaLENBRDhDO0FBRWxELFFBQUksQ0FBQyxVQUFVLE9BQVYsRUFBbUI7QUFDdEIsVUFBSSxDQUFDLFVBQVUsS0FBVixJQUFtQixlQUFwQixFQUFxQztBQUN2QyxZQUFJLFFBQVEsVUFBVSxLQUFWLENBQWdCLE1BQWhCLEVBQXdCLFNBQVMsVUFBVSxLQUFWLENBQXpDLENBRG1DO0FBRXZDLGdCQUFRLE1BQU0sR0FBTixDQUFVLFVBQVMsS0FBVCxFQUFnQixDQUFoQixFQUFtQjtBQUNuQyxjQUFJLFdBQVcsVUFBVSxTQUFTLENBQVQsQ0FBckIsQ0FEK0I7QUFFbkMsaUJBQU8sU0FBUyxNQUFULEdBQWtCLE1BQU0sTUFBTixHQUFlLFFBQWpDLEdBQTRDLEtBQTVDLENBRjRCO1NBQW5CLENBQWxCLENBRnVDOztBQU92QyxrQkFBVSxLQUFWLEdBQWtCLE1BQU0sSUFBTixDQUFXLEVBQVgsQ0FBbEIsQ0FQdUM7T0FBekMsTUFRTztBQUNMLGtCQUFVLEtBQVYsR0FBa0IsVUFBVSxLQUFWLENBQWdCLE1BQWhCLEVBQXdCLFNBQVMsVUFBVSxLQUFWLENBQWpDLENBQWtELElBQWxELENBQXVELEVBQXZELENBQWxCLENBREs7T0FSUDtBQVdBLGdCQUFVLFVBQVUsS0FBVjs7O0FBWlksVUFlbEIsQ0FBQyxVQUFVLEtBQVYsRUFBaUI7QUFDcEIsa0JBQVUsVUFBVSxLQUFWLENBRFU7T0FBdEI7S0FmRixNQWtCTztBQUNMLGdCQUFVLEtBQVYsR0FBa0IsVUFBVSxLQUFWLENBQWdCLE1BQWhCLEVBQXdCLFNBQVMsVUFBVSxLQUFWLENBQWpDLENBQWtELElBQWxELENBQXVELEVBQXZELENBQWxCLENBREs7QUFFTCxnQkFBVSxVQUFVLEtBQVY7Ozs7O0FBRkwsVUFPRCxnQkFBZ0IsV0FBVyxlQUFlLENBQWYsQ0FBWCxDQUE2QixLQUE3QixFQUFvQztBQUN0RCxZQUFJLE1BQU0sV0FBVyxlQUFlLENBQWYsQ0FBakIsQ0FEa0Q7QUFFdEQsbUJBQVcsZUFBZSxDQUFmLENBQVgsR0FBK0IsV0FBVyxZQUFYLENBQS9CLENBRnNEO0FBR3RELG1CQUFXLFlBQVgsSUFBMkIsR0FBM0IsQ0FIc0Q7T0FBeEQ7S0F6QkY7R0FGRjs7OztBQU40RSxNQTJDeEUsZ0JBQWdCLFdBQVcsZUFBZSxDQUFmLENBQTNCLENBM0N3RTtBQTRDNUUsTUFBSSxlQUFlLENBQWYsS0FDSSxjQUFjLEtBQWQsSUFBdUIsY0FBYyxPQUFkLENBRDNCLElBRUcsS0FBSyxNQUFMLENBQVksRUFBWixFQUFnQixjQUFjLEtBQWQsQ0FGbkIsRUFFeUM7QUFDM0MsZUFBVyxlQUFlLENBQWYsQ0FBWCxDQUE2QixLQUE3QixJQUFzQyxjQUFjLEtBQWQsQ0FESztBQUUzQyxlQUFXLEdBQVgsR0FGMkM7R0FGN0M7O0FBT0EsU0FBTyxVQUFQLENBbkQ0RTtDQUE5RTs7QUFzREEsU0FBUyxTQUFULENBQW1CLElBQW5CLEVBQXlCO0FBQ3ZCLFNBQU8sRUFBRSxRQUFRLEtBQUssTUFBTCxFQUFhLFlBQVksS0FBSyxVQUFMLENBQWdCLEtBQWhCLENBQXNCLENBQXRCLENBQVosRUFBOUIsQ0FEdUI7Q0FBekIiLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERpZmYoKSB7fVxuXG5EaWZmLnByb3RvdHlwZSA9IHtcbiAgZGlmZihvbGRTdHJpbmcsIG5ld1N0cmluZywgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGNhbGxiYWNrID0gb3B0aW9ucy5jYWxsYmFjaztcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNhbGxiYWNrID0gb3B0aW9ucztcbiAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIGxldCBzZWxmID0gdGhpcztcblxuICAgIGZ1bmN0aW9uIGRvbmUodmFsdWUpIHtcbiAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYWxsYmFjayh1bmRlZmluZWQsIHZhbHVlKTsgfSwgMCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsbG93IHN1YmNsYXNzZXMgdG8gbWFzc2FnZSB0aGUgaW5wdXQgcHJpb3IgdG8gcnVubmluZ1xuICAgIG9sZFN0cmluZyA9IHRoaXMuY2FzdElucHV0KG9sZFN0cmluZyk7XG4gICAgbmV3U3RyaW5nID0gdGhpcy5jYXN0SW5wdXQobmV3U3RyaW5nKTtcblxuICAgIG9sZFN0cmluZyA9IHRoaXMucmVtb3ZlRW1wdHkodGhpcy50b2tlbml6ZShvbGRTdHJpbmcpKTtcbiAgICBuZXdTdHJpbmcgPSB0aGlzLnJlbW92ZUVtcHR5KHRoaXMudG9rZW5pemUobmV3U3RyaW5nKSk7XG5cbiAgICBsZXQgbmV3TGVuID0gbmV3U3RyaW5nLmxlbmd0aCwgb2xkTGVuID0gb2xkU3RyaW5nLmxlbmd0aDtcbiAgICBsZXQgZWRpdExlbmd0aCA9IDE7XG4gICAgbGV0IG1heEVkaXRMZW5ndGggPSBuZXdMZW4gKyBvbGRMZW47XG4gICAgbGV0IGJlc3RQYXRoID0gW3sgbmV3UG9zOiAtMSwgY29tcG9uZW50czogW10gfV07XG5cbiAgICAvLyBTZWVkIGVkaXRMZW5ndGggPSAwLCBpLmUuIHRoZSBjb250ZW50IHN0YXJ0cyB3aXRoIHRoZSBzYW1lIHZhbHVlc1xuICAgIGxldCBvbGRQb3MgPSB0aGlzLmV4dHJhY3RDb21tb24oYmVzdFBhdGhbMF0sIG5ld1N0cmluZywgb2xkU3RyaW5nLCAwKTtcbiAgICBpZiAoYmVzdFBhdGhbMF0ubmV3UG9zICsgMSA+PSBuZXdMZW4gJiYgb2xkUG9zICsgMSA+PSBvbGRMZW4pIHtcbiAgICAgIC8vIElkZW50aXR5IHBlciB0aGUgZXF1YWxpdHkgYW5kIHRva2VuaXplclxuICAgICAgcmV0dXJuIGRvbmUoW3t2YWx1ZTogbmV3U3RyaW5nLmpvaW4oJycpLCBjb3VudDogbmV3U3RyaW5nLmxlbmd0aH1dKTtcbiAgICB9XG5cbiAgICAvLyBNYWluIHdvcmtlciBtZXRob2QuIGNoZWNrcyBhbGwgcGVybXV0YXRpb25zIG9mIGEgZ2l2ZW4gZWRpdCBsZW5ndGggZm9yIGFjY2VwdGFuY2UuXG4gICAgZnVuY3Rpb24gZXhlY0VkaXRMZW5ndGgoKSB7XG4gICAgICBmb3IgKGxldCBkaWFnb25hbFBhdGggPSAtMSAqIGVkaXRMZW5ndGg7IGRpYWdvbmFsUGF0aCA8PSBlZGl0TGVuZ3RoOyBkaWFnb25hbFBhdGggKz0gMikge1xuICAgICAgICBsZXQgYmFzZVBhdGg7XG4gICAgICAgIGxldCBhZGRQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoIC0gMV0sXG4gICAgICAgICAgICByZW1vdmVQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoICsgMV0sXG4gICAgICAgICAgICBvbGRQb3MgPSAocmVtb3ZlUGF0aCA/IHJlbW92ZVBhdGgubmV3UG9zIDogMCkgLSBkaWFnb25hbFBhdGg7XG4gICAgICAgIGlmIChhZGRQYXRoKSB7XG4gICAgICAgICAgLy8gTm8gb25lIGVsc2UgaXMgZ29pbmcgdG8gYXR0ZW1wdCB0byB1c2UgdGhpcyB2YWx1ZSwgY2xlYXIgaXRcbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGggLSAxXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjYW5BZGQgPSBhZGRQYXRoICYmIGFkZFBhdGgubmV3UG9zICsgMSA8IG5ld0xlbixcbiAgICAgICAgICAgIGNhblJlbW92ZSA9IHJlbW92ZVBhdGggJiYgMCA8PSBvbGRQb3MgJiYgb2xkUG9zIDwgb2xkTGVuO1xuICAgICAgICBpZiAoIWNhbkFkZCAmJiAhY2FuUmVtb3ZlKSB7XG4gICAgICAgICAgLy8gSWYgdGhpcyBwYXRoIGlzIGEgdGVybWluYWwgdGhlbiBwcnVuZVxuICAgICAgICAgIGJlc3RQYXRoW2RpYWdvbmFsUGF0aF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWxlY3QgdGhlIGRpYWdvbmFsIHRoYXQgd2Ugd2FudCB0byBicmFuY2ggZnJvbS4gV2Ugc2VsZWN0IHRoZSBwcmlvclxuICAgICAgICAvLyBwYXRoIHdob3NlIHBvc2l0aW9uIGluIHRoZSBuZXcgc3RyaW5nIGlzIHRoZSBmYXJ0aGVzdCBmcm9tIHRoZSBvcmlnaW5cbiAgICAgICAgLy8gYW5kIGRvZXMgbm90IHBhc3MgdGhlIGJvdW5kcyBvZiB0aGUgZGlmZiBncmFwaFxuICAgICAgICBpZiAoIWNhbkFkZCB8fCAoY2FuUmVtb3ZlICYmIGFkZFBhdGgubmV3UG9zIDwgcmVtb3ZlUGF0aC5uZXdQb3MpKSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBjbG9uZVBhdGgocmVtb3ZlUGF0aCk7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBhZGRQYXRoOyAgIC8vIE5vIG5lZWQgdG8gY2xvbmUsIHdlJ3ZlIHB1bGxlZCBpdCBmcm9tIHRoZSBsaXN0XG4gICAgICAgICAgYmFzZVBhdGgubmV3UG9zKys7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHRydWUsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvbGRQb3MgPSBzZWxmLmV4dHJhY3RDb21tb24oYmFzZVBhdGgsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBkaWFnb25hbFBhdGgpO1xuXG4gICAgICAgIC8vIElmIHdlIGhhdmUgaGl0IHRoZSBlbmQgb2YgYm90aCBzdHJpbmdzLCB0aGVuIHdlIGFyZSBkb25lXG4gICAgICAgIGlmIChiYXNlUGF0aC5uZXdQb3MgKyAxID49IG5ld0xlbiAmJiBvbGRQb3MgKyAxID49IG9sZExlbikge1xuICAgICAgICAgIHJldHVybiBkb25lKGJ1aWxkVmFsdWVzKHNlbGYsIGJhc2VQYXRoLmNvbXBvbmVudHMsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBzZWxmLnVzZUxvbmdlc3RUb2tlbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE90aGVyd2lzZSB0cmFjayB0aGlzIHBhdGggYXMgYSBwb3RlbnRpYWwgY2FuZGlkYXRlIGFuZCBjb250aW51ZS5cbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGhdID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZWRpdExlbmd0aCsrO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm1zIHRoZSBsZW5ndGggb2YgZWRpdCBpdGVyYXRpb24uIElzIGEgYml0IGZ1Z2x5IGFzIHRoaXMgaGFzIHRvIHN1cHBvcnQgdGhlXG4gICAgLy8gc3luYyBhbmQgYXN5bmMgbW9kZSB3aGljaCBpcyBuZXZlciBmdW4uIExvb3BzIG92ZXIgZXhlY0VkaXRMZW5ndGggdW50aWwgYSB2YWx1ZVxuICAgIC8vIGlzIHByb2R1Y2VkLlxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgKGZ1bmN0aW9uIGV4ZWMoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgYnV0IHdlIHdhbnQgdG8gYmUgc2FmZS5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGlmIChlZGl0TGVuZ3RoID4gbWF4RWRpdExlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFleGVjRWRpdExlbmd0aCgpKSB7XG4gICAgICAgICAgICBleGVjKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICAgIH0oKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdoaWxlIChlZGl0TGVuZ3RoIDw9IG1heEVkaXRMZW5ndGgpIHtcbiAgICAgICAgbGV0IHJldCA9IGV4ZWNFZGl0TGVuZ3RoKCk7XG4gICAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHB1c2hDb21wb25lbnQoY29tcG9uZW50cywgYWRkZWQsIHJlbW92ZWQpIHtcbiAgICBsZXQgbGFzdCA9IGNvbXBvbmVudHNbY29tcG9uZW50cy5sZW5ndGggLSAxXTtcbiAgICBpZiAobGFzdCAmJiBsYXN0LmFkZGVkID09PSBhZGRlZCAmJiBsYXN0LnJlbW92ZWQgPT09IHJlbW92ZWQpIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gY2xvbmUgaGVyZSBhcyB0aGUgY29tcG9uZW50IGNsb25lIG9wZXJhdGlvbiBpcyBqdXN0XG4gICAgICAvLyBhcyBzaGFsbG93IGFycmF5IGNsb25lXG4gICAgICBjb21wb25lbnRzW2NvbXBvbmVudHMubGVuZ3RoIC0gMV0gPSB7Y291bnQ6IGxhc3QuY291bnQgKyAxLCBhZGRlZDogYWRkZWQsIHJlbW92ZWQ6IHJlbW92ZWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50cy5wdXNoKHtjb3VudDogMSwgYWRkZWQ6IGFkZGVkLCByZW1vdmVkOiByZW1vdmVkIH0pO1xuICAgIH1cbiAgfSxcbiAgZXh0cmFjdENvbW1vbihiYXNlUGF0aCwgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIGRpYWdvbmFsUGF0aCkge1xuICAgIGxldCBuZXdMZW4gPSBuZXdTdHJpbmcubGVuZ3RoLFxuICAgICAgICBvbGRMZW4gPSBvbGRTdHJpbmcubGVuZ3RoLFxuICAgICAgICBuZXdQb3MgPSBiYXNlUGF0aC5uZXdQb3MsXG4gICAgICAgIG9sZFBvcyA9IG5ld1BvcyAtIGRpYWdvbmFsUGF0aCxcblxuICAgICAgICBjb21tb25Db3VudCA9IDA7XG4gICAgd2hpbGUgKG5ld1BvcyArIDEgPCBuZXdMZW4gJiYgb2xkUG9zICsgMSA8IG9sZExlbiAmJiB0aGlzLmVxdWFscyhuZXdTdHJpbmdbbmV3UG9zICsgMV0sIG9sZFN0cmluZ1tvbGRQb3MgKyAxXSkpIHtcbiAgICAgIG5ld1BvcysrO1xuICAgICAgb2xkUG9zKys7XG4gICAgICBjb21tb25Db3VudCsrO1xuICAgIH1cblxuICAgIGlmIChjb21tb25Db3VudCkge1xuICAgICAgYmFzZVBhdGguY29tcG9uZW50cy5wdXNoKHtjb3VudDogY29tbW9uQ291bnR9KTtcbiAgICB9XG5cbiAgICBiYXNlUGF0aC5uZXdQb3MgPSBuZXdQb3M7XG4gICAgcmV0dXJuIG9sZFBvcztcbiAgfSxcblxuICBlcXVhbHMobGVmdCwgcmlnaHQpIHtcbiAgICByZXR1cm4gbGVmdCA9PT0gcmlnaHQ7XG4gIH0sXG4gIHJlbW92ZUVtcHR5KGFycmF5KSB7XG4gICAgbGV0IHJldCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnJheVtpXSkge1xuICAgICAgICByZXQucHVzaChhcnJheVtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH0sXG4gIGNhc3RJbnB1dCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfSxcbiAgdG9rZW5pemUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoJycpO1xuICB9XG59O1xuXG5mdW5jdGlvbiBidWlsZFZhbHVlcyhkaWZmLCBjb21wb25lbnRzLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgdXNlTG9uZ2VzdFRva2VuKSB7XG4gIGxldCBjb21wb25lbnRQb3MgPSAwLFxuICAgICAgY29tcG9uZW50TGVuID0gY29tcG9uZW50cy5sZW5ndGgsXG4gICAgICBuZXdQb3MgPSAwLFxuICAgICAgb2xkUG9zID0gMDtcblxuICBmb3IgKDsgY29tcG9uZW50UG9zIDwgY29tcG9uZW50TGVuOyBjb21wb25lbnRQb3MrKykge1xuICAgIGxldCBjb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgaWYgKCFjb21wb25lbnQucmVtb3ZlZCkge1xuICAgICAgaWYgKCFjb21wb25lbnQuYWRkZWQgJiYgdXNlTG9uZ2VzdFRva2VuKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCk7XG4gICAgICAgIHZhbHVlID0gdmFsdWUubWFwKGZ1bmN0aW9uKHZhbHVlLCBpKSB7XG4gICAgICAgICAgbGV0IG9sZFZhbHVlID0gb2xkU3RyaW5nW29sZFBvcyArIGldO1xuICAgICAgICAgIHJldHVybiBvbGRWYWx1ZS5sZW5ndGggPiB2YWx1ZS5sZW5ndGggPyBvbGRWYWx1ZSA6IHZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb21wb25lbnQudmFsdWUgPSB2YWx1ZS5qb2luKCcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbXBvbmVudC52YWx1ZSA9IG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCkuam9pbignJyk7XG4gICAgICB9XG4gICAgICBuZXdQb3MgKz0gY29tcG9uZW50LmNvdW50O1xuXG4gICAgICAvLyBDb21tb24gY2FzZVxuICAgICAgaWYgKCFjb21wb25lbnQuYWRkZWQpIHtcbiAgICAgICAgb2xkUG9zICs9IGNvbXBvbmVudC5jb3VudDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50LnZhbHVlID0gb2xkU3RyaW5nLnNsaWNlKG9sZFBvcywgb2xkUG9zICsgY29tcG9uZW50LmNvdW50KS5qb2luKCcnKTtcbiAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG5cbiAgICAgIC8vIFJldmVyc2UgYWRkIGFuZCByZW1vdmUgc28gcmVtb3ZlcyBhcmUgb3V0cHV0IGZpcnN0IHRvIG1hdGNoIGNvbW1vbiBjb252ZW50aW9uXG4gICAgICAvLyBUaGUgZGlmZmluZyBhbGdvcml0aG0gaXMgdGllZCB0byBhZGQgdGhlbiByZW1vdmUgb3V0cHV0IGFuZCB0aGlzIGlzIHRoZSBzaW1wbGVzdFxuICAgICAgLy8gcm91dGUgdG8gZ2V0IHRoZSBkZXNpcmVkIG91dHB1dCB3aXRoIG1pbmltYWwgb3ZlcmhlYWQuXG4gICAgICBpZiAoY29tcG9uZW50UG9zICYmIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0uYWRkZWQpIHtcbiAgICAgICAgbGV0IHRtcCA9IGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV07XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0gPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zXSA9IHRtcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWFsIGNhc2UgaGFuZGxlIGZvciB3aGVuIG9uZSB0ZXJtaW5hbCBpcyBpZ25vcmVkLiBGb3IgdGhpcyBjYXNlIHdlIG1lcmdlIHRoZVxuICAvLyB0ZXJtaW5hbCBpbnRvIHRoZSBwcmlvciBzdHJpbmcgYW5kIGRyb3AgdGhlIGNoYW5nZS5cbiAgbGV0IGxhc3RDb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudExlbiAtIDFdO1xuICBpZiAoY29tcG9uZW50TGVuID4gMVxuICAgICAgJiYgKGxhc3RDb21wb25lbnQuYWRkZWQgfHwgbGFzdENvbXBvbmVudC5yZW1vdmVkKVxuICAgICAgJiYgZGlmZi5lcXVhbHMoJycsIGxhc3RDb21wb25lbnQudmFsdWUpKSB7XG4gICAgY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAyXS52YWx1ZSArPSBsYXN0Q29tcG9uZW50LnZhbHVlO1xuICAgIGNvbXBvbmVudHMucG9wKCk7XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50cztcbn1cblxuZnVuY3Rpb24gY2xvbmVQYXRoKHBhdGgpIHtcbiAgcmV0dXJuIHsgbmV3UG9zOiBwYXRoLm5ld1BvcywgY29tcG9uZW50czogcGF0aC5jb21wb25lbnRzLnNsaWNlKDApIH07XG59XG4iXX0=
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/character.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/character.js
      deleted file mode 100644
      index dfe8c194..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/character.js
      +++ /dev/null
      @@ -1,18 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports.characterDiff = undefined;
      -exports. /*istanbul ignore end*/diffChars = diffChars;
      -
      -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -var _base2 = _interopRequireDefault(_base);
      -
      -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -/*istanbul ignore end*/var characterDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/characterDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -function diffChars(oldStr, newStr, callback) {
      -  return characterDiff.diff(oldStr, newStr, callback);
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2NoYXJhY3Rlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O2dDQUdnQjs7QUFIaEI7Ozs7Ozs7dUJBRU8sSUFBTSx5RkFBZ0IscUVBQWhCO0FBQ04sU0FBUyxTQUFULENBQW1CLE1BQW5CLEVBQTJCLE1BQTNCLEVBQW1DLFFBQW5DLEVBQTZDO0FBQUUsU0FBTyxjQUFjLElBQWQsQ0FBbUIsTUFBbkIsRUFBMkIsTUFBM0IsRUFBbUMsUUFBbkMsQ0FBUCxDQUFGO0NBQTdDIiwiZmlsZSI6ImNoYXJhY3Rlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBjaGFyYWN0ZXJEaWZmID0gbmV3IERpZmYoKTtcbmV4cG9ydCBmdW5jdGlvbiBkaWZmQ2hhcnMob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7IHJldHVybiBjaGFyYWN0ZXJEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKTsgfVxuIl19
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/css.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/css.js
      deleted file mode 100644
      index b4146cfb..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/css.js
      +++ /dev/null
      @@ -1,22 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports.cssDiff = undefined;
      -exports. /*istanbul ignore end*/diffCss = diffCss;
      -
      -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -var _base2 = _interopRequireDefault(_base);
      -
      -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -/*istanbul ignore end*/var cssDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/cssDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -cssDiff.tokenize = function (value) {
      -  return value.split(/([{}:;,]|\s+)/);
      -};
      -
      -function diffCss(oldStr, newStr, callback) {
      -  return cssDiff.diff(oldStr, newStr, callback);
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Nzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O2dDQU9nQjs7QUFQaEI7Ozs7Ozs7dUJBRU8sSUFBTSw2RUFBVSxxRUFBVjtBQUNiLFFBQVEsUUFBUixHQUFtQixVQUFTLEtBQVQsRUFBZ0I7QUFDakMsU0FBTyxNQUFNLEtBQU4sQ0FBWSxlQUFaLENBQVAsQ0FEaUM7Q0FBaEI7O0FBSVosU0FBUyxPQUFULENBQWlCLE1BQWpCLEVBQXlCLE1BQXpCLEVBQWlDLFFBQWpDLEVBQTJDO0FBQUUsU0FBTyxRQUFRLElBQVIsQ0FBYSxNQUFiLEVBQXFCLE1BQXJCLEVBQTZCLFFBQTdCLENBQVAsQ0FBRjtDQUEzQyIsImZpbGUiOiJjc3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGlmZiBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgY29uc3QgY3NzRGlmZiA9IG5ldyBEaWZmKCk7XG5jc3NEaWZmLnRva2VuaXplID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnNwbGl0KC8oW3t9OjssXXxcXHMrKS8pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDc3Mob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7IHJldHVybiBjc3NEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKTsgfVxuIl19
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/json.js
      deleted file mode 100644
      index 00ec825b..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/json.js
      +++ /dev/null
      @@ -1,100 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports.jsonDiff = undefined;
      -
      -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
      -
      -exports. /*istanbul ignore end*/diffJson = diffJson;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = canonicalize;
      -
      -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -var _base2 = _interopRequireDefault(_base);
      -
      -/*istanbul ignore end*/
      -var /*istanbul ignore start*/_line = require('./line') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -/*istanbul ignore end*/
      -
      -var objectPrototypeToString = Object.prototype.toString;
      -
      -var jsonDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/jsonDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -// Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
      -// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
      -jsonDiff.useLongestToken = true;
      -
      -jsonDiff.tokenize = /*istanbul ignore start*/_line.lineDiff. /*istanbul ignore end*/tokenize;
      -jsonDiff.castInput = function (value) {
      -  return typeof value === 'string' ? value : JSON.stringify(canonicalize(value), undefined, '  ');
      -};
      -jsonDiff.equals = function (left, right) {
      -  return (/*istanbul ignore start*/_base2.default. /*istanbul ignore end*/prototype.equals(left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'))
      -  );
      -};
      -
      -function diffJson(oldObj, newObj, callback) {
      -  return jsonDiff.diff(oldObj, newObj, callback);
      -}
      -
      -// This function handles the presence of circular references by bailing out when encountering an
      -// object that is already on the "stack" of items being processed.
      -function canonicalize(obj, stack, replacementStack) {
      -  stack = stack || [];
      -  replacementStack = replacementStack || [];
      -
      -  var i = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -
      -  for (i = 0; i < stack.length; i += 1) {
      -    if (stack[i] === obj) {
      -      return replacementStack[i];
      -    }
      -  }
      -
      -  var canonicalizedObj = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -
      -  if ('[object Array]' === objectPrototypeToString.call(obj)) {
      -    stack.push(obj);
      -    canonicalizedObj = new Array(obj.length);
      -    replacementStack.push(canonicalizedObj);
      -    for (i = 0; i < obj.length; i += 1) {
      -      canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack);
      -    }
      -    stack.pop();
      -    replacementStack.pop();
      -    return canonicalizedObj;
      -  }
      -
      -  if (obj && obj.toJSON) {
      -    obj = obj.toJSON();
      -  }
      -
      -  if ( /*istanbul ignore start*/(typeof /*istanbul ignore end*/obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null) {
      -    stack.push(obj);
      -    canonicalizedObj = {};
      -    replacementStack.push(canonicalizedObj);
      -    var sortedKeys = [],
      -        key = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -    for (key in obj) {
      -      /* istanbul ignore else */
      -      if (obj.hasOwnProperty(key)) {
      -        sortedKeys.push(key);
      -      }
      -    }
      -    sortedKeys.sort();
      -    for (i = 0; i < sortedKeys.length; i += 1) {
      -      key = sortedKeys[i];
      -      canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack);
      -    }
      -    stack.pop();
      -    replacementStack.pop();
      -  } else {
      -    canonicalizedObj = obj;
      -  }
      -  return canonicalizedObj;
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2pzb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztnQ0FtQmdCO3lEQUtBOztBQXhCaEI7Ozs7OztBQUNBOzs7Ozs7O0FBRUEsSUFBTSwwQkFBMEIsT0FBTyxTQUFQLENBQWlCLFFBQWpCOztBQUd6QixJQUFNLCtFQUFXLHFFQUFYOzs7QUFHYixTQUFTLGVBQVQsR0FBMkIsSUFBM0I7O0FBRUEsU0FBUyxRQUFULEdBQW9CLGdFQUFTLFFBQVQ7QUFDcEIsU0FBUyxTQUFULEdBQXFCLFVBQVMsS0FBVCxFQUFnQjtBQUNuQyxTQUFPLE9BQU8sS0FBUCxLQUFpQixRQUFqQixHQUE0QixLQUE1QixHQUFvQyxLQUFLLFNBQUwsQ0FBZSxhQUFhLEtBQWIsQ0FBZixFQUFvQyxTQUFwQyxFQUErQyxJQUEvQyxDQUFwQyxDQUQ0QjtDQUFoQjtBQUdyQixTQUFTLE1BQVQsR0FBa0IsVUFBUyxJQUFULEVBQWUsS0FBZixFQUFzQjtBQUN0QyxTQUFPLGlFQUFLLFNBQUwsQ0FBZSxNQUFmLENBQXNCLEtBQUssT0FBTCxDQUFhLFlBQWIsRUFBMkIsSUFBM0IsQ0FBdEIsRUFBd0QsTUFBTSxPQUFOLENBQWMsWUFBZCxFQUE0QixJQUE1QixDQUF4RCxDQUFQO0lBRHNDO0NBQXRCOztBQUlYLFNBQVMsUUFBVCxDQUFrQixNQUFsQixFQUEwQixNQUExQixFQUFrQyxRQUFsQyxFQUE0QztBQUFFLFNBQU8sU0FBUyxJQUFULENBQWMsTUFBZCxFQUFzQixNQUF0QixFQUE4QixRQUE5QixDQUFQLENBQUY7Q0FBNUM7Ozs7QUFLQSxTQUFTLFlBQVQsQ0FBc0IsR0FBdEIsRUFBMkIsS0FBM0IsRUFBa0MsZ0JBQWxDLEVBQW9EO0FBQ3pELFVBQVEsU0FBUyxFQUFULENBRGlEO0FBRXpELHFCQUFtQixvQkFBb0IsRUFBcEIsQ0FGc0M7O0FBSXpELE1BQUksMkRBQUosQ0FKeUQ7O0FBTXpELE9BQUssSUFBSSxDQUFKLEVBQU8sSUFBSSxNQUFNLE1BQU4sRUFBYyxLQUFLLENBQUwsRUFBUTtBQUNwQyxRQUFJLE1BQU0sQ0FBTixNQUFhLEdBQWIsRUFBa0I7QUFDcEIsYUFBTyxpQkFBaUIsQ0FBakIsQ0FBUCxDQURvQjtLQUF0QjtHQURGOztBQU1BLE1BQUksMEVBQUosQ0FaeUQ7O0FBY3pELE1BQUkscUJBQXFCLHdCQUF3QixJQUF4QixDQUE2QixHQUE3QixDQUFyQixFQUF3RDtBQUMxRCxVQUFNLElBQU4sQ0FBVyxHQUFYLEVBRDBEO0FBRTFELHVCQUFtQixJQUFJLEtBQUosQ0FBVSxJQUFJLE1BQUosQ0FBN0IsQ0FGMEQ7QUFHMUQscUJBQWlCLElBQWpCLENBQXNCLGdCQUF0QixFQUgwRDtBQUkxRCxTQUFLLElBQUksQ0FBSixFQUFPLElBQUksSUFBSSxNQUFKLEVBQVksS0FBSyxDQUFMLEVBQVE7QUFDbEMsdUJBQWlCLENBQWpCLElBQXNCLGFBQWEsSUFBSSxDQUFKLENBQWIsRUFBcUIsS0FBckIsRUFBNEIsZ0JBQTVCLENBQXRCLENBRGtDO0tBQXBDO0FBR0EsVUFBTSxHQUFOLEdBUDBEO0FBUTFELHFCQUFpQixHQUFqQixHQVIwRDtBQVMxRCxXQUFPLGdCQUFQLENBVDBEO0dBQTVEOztBQVlBLE1BQUksT0FBTyxJQUFJLE1BQUosRUFBWTtBQUNyQixVQUFNLElBQUksTUFBSixFQUFOLENBRHFCO0dBQXZCOztBQUlBLE1BQUkseURBQU8saURBQVAsS0FBZSxRQUFmLElBQTJCLFFBQVEsSUFBUixFQUFjO0FBQzNDLFVBQU0sSUFBTixDQUFXLEdBQVgsRUFEMkM7QUFFM0MsdUJBQW1CLEVBQW5CLENBRjJDO0FBRzNDLHFCQUFpQixJQUFqQixDQUFzQixnQkFBdEIsRUFIMkM7QUFJM0MsUUFBSSxhQUFhLEVBQWI7UUFDQSw2REFESixDQUoyQztBQU0zQyxTQUFLLEdBQUwsSUFBWSxHQUFaLEVBQWlCOztBQUVmLFVBQUksSUFBSSxjQUFKLENBQW1CLEdBQW5CLENBQUosRUFBNkI7QUFDM0IsbUJBQVcsSUFBWCxDQUFnQixHQUFoQixFQUQyQjtPQUE3QjtLQUZGO0FBTUEsZUFBVyxJQUFYLEdBWjJDO0FBYTNDLFNBQUssSUFBSSxDQUFKLEVBQU8sSUFBSSxXQUFXLE1BQVgsRUFBbUIsS0FBSyxDQUFMLEVBQVE7QUFDekMsWUFBTSxXQUFXLENBQVgsQ0FBTixDQUR5QztBQUV6Qyx1QkFBaUIsR0FBakIsSUFBd0IsYUFBYSxJQUFJLEdBQUosQ0FBYixFQUF1QixLQUF2QixFQUE4QixnQkFBOUIsQ0FBeEIsQ0FGeUM7S0FBM0M7QUFJQSxVQUFNLEdBQU4sR0FqQjJDO0FBa0IzQyxxQkFBaUIsR0FBakIsR0FsQjJDO0dBQTdDLE1BbUJPO0FBQ0wsdUJBQW1CLEdBQW5CLENBREs7R0FuQlA7QUFzQkEsU0FBTyxnQkFBUCxDQXBEeUQ7Q0FBcEQiLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge2xpbmVEaWZmfSBmcm9tICcuL2xpbmUnO1xuXG5jb25zdCBvYmplY3RQcm90b3R5cGVUb1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cblxuZXhwb3J0IGNvbnN0IGpzb25EaWZmID0gbmV3IERpZmYoKTtcbi8vIERpc2NyaW1pbmF0ZSBiZXR3ZWVuIHR3byBsaW5lcyBvZiBwcmV0dHktcHJpbnRlZCwgc2VyaWFsaXplZCBKU09OIHdoZXJlIG9uZSBvZiB0aGVtIGhhcyBhXG4vLyBkYW5nbGluZyBjb21tYSBhbmQgdGhlIG90aGVyIGRvZXNuJ3QuIFR1cm5zIG91dCBpbmNsdWRpbmcgdGhlIGRhbmdsaW5nIGNvbW1hIHlpZWxkcyB0aGUgbmljZXN0IG91dHB1dDpcbmpzb25EaWZmLnVzZUxvbmdlc3RUb2tlbiA9IHRydWU7XG5cbmpzb25EaWZmLnRva2VuaXplID0gbGluZURpZmYudG9rZW5pemU7XG5qc29uRGlmZi5jYXN0SW5wdXQgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkoY2Fub25pY2FsaXplKHZhbHVlKSwgdW5kZWZpbmVkLCAnICAnKTtcbn07XG5qc29uRGlmZi5lcXVhbHMgPSBmdW5jdGlvbihsZWZ0LCByaWdodCkge1xuICByZXR1cm4gRGlmZi5wcm90b3R5cGUuZXF1YWxzKGxlZnQucmVwbGFjZSgvLChbXFxyXFxuXSkvZywgJyQxJyksIHJpZ2h0LnJlcGxhY2UoLywoW1xcclxcbl0pL2csICckMScpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmSnNvbihvbGRPYmosIG5ld09iaiwgY2FsbGJhY2spIHsgcmV0dXJuIGpzb25EaWZmLmRpZmYob2xkT2JqLCBuZXdPYmosIGNhbGxiYWNrKTsgfVxuXG5cbi8vIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyB0aGUgcHJlc2VuY2Ugb2YgY2lyY3VsYXIgcmVmZXJlbmNlcyBieSBiYWlsaW5nIG91dCB3aGVuIGVuY291bnRlcmluZyBhblxuLy8gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBvbiB0aGUgXCJzdGFja1wiIG9mIGl0ZW1zIGJlaW5nIHByb2Nlc3NlZC5cbmV4cG9ydCBmdW5jdGlvbiBjYW5vbmljYWxpemUob2JqLCBzdGFjaywgcmVwbGFjZW1lbnRTdGFjaykge1xuICBzdGFjayA9IHN0YWNrIHx8IFtdO1xuICByZXBsYWNlbWVudFN0YWNrID0gcmVwbGFjZW1lbnRTdGFjayB8fCBbXTtcblxuICBsZXQgaTtcblxuICBmb3IgKGkgPSAwOyBpIDwgc3RhY2subGVuZ3RoOyBpICs9IDEpIHtcbiAgICBpZiAoc3RhY2tbaV0gPT09IG9iaikge1xuICAgICAgcmV0dXJuIHJlcGxhY2VtZW50U3RhY2tbaV07XG4gICAgfVxuICB9XG5cbiAgbGV0IGNhbm9uaWNhbGl6ZWRPYmo7XG5cbiAgaWYgKCdbb2JqZWN0IEFycmF5XScgPT09IG9iamVjdFByb3RvdHlwZVRvU3RyaW5nLmNhbGwob2JqKSkge1xuICAgIHN0YWNrLnB1c2gob2JqKTtcbiAgICBjYW5vbmljYWxpemVkT2JqID0gbmV3IEFycmF5KG9iai5sZW5ndGgpO1xuICAgIHJlcGxhY2VtZW50U3RhY2sucHVzaChjYW5vbmljYWxpemVkT2JqKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBjYW5vbmljYWxpemVkT2JqW2ldID0gY2Fub25pY2FsaXplKG9ialtpXSwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2spO1xuICAgIH1cbiAgICBzdGFjay5wb3AoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnBvcCgpO1xuICAgIHJldHVybiBjYW5vbmljYWxpemVkT2JqO1xuICB9XG5cbiAgaWYgKG9iaiAmJiBvYmoudG9KU09OKSB7XG4gICAgb2JqID0gb2JqLnRvSlNPTigpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkge1xuICAgIHN0YWNrLnB1c2gob2JqKTtcbiAgICBjYW5vbmljYWxpemVkT2JqID0ge307XG4gICAgcmVwbGFjZW1lbnRTdGFjay5wdXNoKGNhbm9uaWNhbGl6ZWRPYmopO1xuICAgIGxldCBzb3J0ZWRLZXlzID0gW10sXG4gICAgICAgIGtleTtcbiAgICBmb3IgKGtleSBpbiBvYmopIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgc29ydGVkS2V5cy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNvcnRlZEtleXMuc29ydCgpO1xuICAgIGZvciAoaSA9IDA7IGkgPCBzb3J0ZWRLZXlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBrZXkgPSBzb3J0ZWRLZXlzW2ldO1xuICAgICAgY2Fub25pY2FsaXplZE9ialtrZXldID0gY2Fub25pY2FsaXplKG9ialtrZXldLCBzdGFjaywgcmVwbGFjZW1lbnRTdGFjayk7XG4gICAgfVxuICAgIHN0YWNrLnBvcCgpO1xuICAgIHJlcGxhY2VtZW50U3RhY2sucG9wKCk7XG4gIH0gZWxzZSB7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IG9iajtcbiAgfVxuICByZXR1cm4gY2Fub25pY2FsaXplZE9iajtcbn1cbiJdfQ==
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/line.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/line.js
      deleted file mode 100644
      index d61dc5cf..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/line.js
      +++ /dev/null
      @@ -1,53 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports.lineDiff = undefined;
      -exports. /*istanbul ignore end*/diffLines = diffLines;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = diffTrimmedLines;
      -
      -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -var _base2 = _interopRequireDefault(_base);
      -
      -/*istanbul ignore end*/
      -var /*istanbul ignore start*/_params = require('../util/params') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -/*istanbul ignore end*/var lineDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/lineDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -lineDiff.tokenize = function (value) {
      -  var retLines = [],
      -      linesAndNewlines = value.split(/(\n|\r\n)/);
      -
      -  // Ignore the final empty token that occurs if the string ends with a new line
      -  if (!linesAndNewlines[linesAndNewlines.length - 1]) {
      -    linesAndNewlines.pop();
      -  }
      -
      -  // Merge the content and line separators into single tokens
      -  for (var i = 0; i < linesAndNewlines.length; i++) {
      -    var line = linesAndNewlines[i];
      -
      -    if (i % 2 && !this.options.newlineIsToken) {
      -      retLines[retLines.length - 1] += line;
      -    } else {
      -      if (this.options.ignoreWhitespace) {
      -        line = line.trim();
      -      }
      -      retLines.push(line);
      -    }
      -  }
      -
      -  return retLines;
      -};
      -
      -function diffLines(oldStr, newStr, callback) {
      -  return lineDiff.diff(oldStr, newStr, callback);
      -}
      -function diffTrimmedLines(oldStr, newStr, callback) {
      -  var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true });
      -  return lineDiff.diff(oldStr, newStr, options);
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2xpbmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztnQ0E4QmdCO3lEQUNBOztBQS9CaEI7Ozs7OztBQUNBOzs7Ozt1QkFFTyxJQUFNLCtFQUFXLHFFQUFYO0FBQ2IsU0FBUyxRQUFULEdBQW9CLFVBQVMsS0FBVCxFQUFnQjtBQUNsQyxNQUFJLFdBQVcsRUFBWDtNQUNBLG1CQUFtQixNQUFNLEtBQU4sQ0FBWSxXQUFaLENBQW5COzs7QUFGOEIsTUFLOUIsQ0FBQyxpQkFBaUIsaUJBQWlCLE1BQWpCLEdBQTBCLENBQTFCLENBQWxCLEVBQWdEO0FBQ2xELHFCQUFpQixHQUFqQixHQURrRDtHQUFwRDs7O0FBTGtDLE9BVTdCLElBQUksSUFBSSxDQUFKLEVBQU8sSUFBSSxpQkFBaUIsTUFBakIsRUFBeUIsR0FBN0MsRUFBa0Q7QUFDaEQsUUFBSSxPQUFPLGlCQUFpQixDQUFqQixDQUFQLENBRDRDOztBQUdoRCxRQUFJLElBQUksQ0FBSixJQUFTLENBQUMsS0FBSyxPQUFMLENBQWEsY0FBYixFQUE2QjtBQUN6QyxlQUFTLFNBQVMsTUFBVCxHQUFrQixDQUFsQixDQUFULElBQWlDLElBQWpDLENBRHlDO0tBQTNDLE1BRU87QUFDTCxVQUFJLEtBQUssT0FBTCxDQUFhLGdCQUFiLEVBQStCO0FBQ2pDLGVBQU8sS0FBSyxJQUFMLEVBQVAsQ0FEaUM7T0FBbkM7QUFHQSxlQUFTLElBQVQsQ0FBYyxJQUFkLEVBSks7S0FGUDtHQUhGOztBQWFBLFNBQU8sUUFBUCxDQXZCa0M7Q0FBaEI7O0FBMEJiLFNBQVMsU0FBVCxDQUFtQixNQUFuQixFQUEyQixNQUEzQixFQUFtQyxRQUFuQyxFQUE2QztBQUFFLFNBQU8sU0FBUyxJQUFULENBQWMsTUFBZCxFQUFzQixNQUF0QixFQUE4QixRQUE5QixDQUFQLENBQUY7Q0FBN0M7QUFDQSxTQUFTLGdCQUFULENBQTBCLE1BQTFCLEVBQWtDLE1BQWxDLEVBQTBDLFFBQTFDLEVBQW9EO0FBQ3pELE1BQUksVUFBVSw4RUFBZ0IsUUFBaEIsRUFBMEIsRUFBQyxrQkFBa0IsSUFBbEIsRUFBM0IsQ0FBVixDQURxRDtBQUV6RCxTQUFPLFNBQVMsSUFBVCxDQUFjLE1BQWQsRUFBc0IsTUFBdEIsRUFBOEIsT0FBOUIsQ0FBUCxDQUZ5RDtDQUFwRCIsImZpbGUiOiJsaW5lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7Z2VuZXJhdGVPcHRpb25zfSBmcm9tICcuLi91dGlsL3BhcmFtcyc7XG5cbmV4cG9ydCBjb25zdCBsaW5lRGlmZiA9IG5ldyBEaWZmKCk7XG5saW5lRGlmZi50b2tlbml6ZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGxldCByZXRMaW5lcyA9IFtdLFxuICAgICAgbGluZXNBbmROZXdsaW5lcyA9IHZhbHVlLnNwbGl0KC8oXFxufFxcclxcbikvKTtcblxuICAvLyBJZ25vcmUgdGhlIGZpbmFsIGVtcHR5IHRva2VuIHRoYXQgb2NjdXJzIGlmIHRoZSBzdHJpbmcgZW5kcyB3aXRoIGEgbmV3IGxpbmVcbiAgaWYgKCFsaW5lc0FuZE5ld2xpbmVzW2xpbmVzQW5kTmV3bGluZXMubGVuZ3RoIC0gMV0pIHtcbiAgICBsaW5lc0FuZE5ld2xpbmVzLnBvcCgpO1xuICB9XG5cbiAgLy8gTWVyZ2UgdGhlIGNvbnRlbnQgYW5kIGxpbmUgc2VwYXJhdG9ycyBpbnRvIHNpbmdsZSB0b2tlbnNcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lc0FuZE5ld2xpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGxpbmUgPSBsaW5lc0FuZE5ld2xpbmVzW2ldO1xuXG4gICAgaWYgKGkgJSAyICYmICF0aGlzLm9wdGlvbnMubmV3bGluZUlzVG9rZW4pIHtcbiAgICAgIHJldExpbmVzW3JldExpbmVzLmxlbmd0aCAtIDFdICs9IGxpbmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSkge1xuICAgICAgICBsaW5lID0gbGluZS50cmltKCk7XG4gICAgICB9XG4gICAgICByZXRMaW5lcy5wdXNoKGxpbmUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXRMaW5lcztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmTGluZXMob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7IHJldHVybiBsaW5lRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbmV4cG9ydCBmdW5jdGlvbiBkaWZmVHJpbW1lZExpbmVzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykge1xuICBsZXQgb3B0aW9ucyA9IGdlbmVyYXRlT3B0aW9ucyhjYWxsYmFjaywge2lnbm9yZVdoaXRlc3BhY2U6IHRydWV9KTtcbiAgcmV0dXJuIGxpbmVEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIG9wdGlvbnMpO1xufVxuIl19
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/sentence.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/sentence.js
      deleted file mode 100644
      index 6ac740b0..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/sentence.js
      +++ /dev/null
      @@ -1,22 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports.sentenceDiff = undefined;
      -exports. /*istanbul ignore end*/diffSentences = diffSentences;
      -
      -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -var _base2 = _interopRequireDefault(_base);
      -
      -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -/*istanbul ignore end*/var sentenceDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/sentenceDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -sentenceDiff.tokenize = function (value) {
      -  return value.split(/(\S.+?[.!?])(?=\s+|$)/);
      -};
      -
      -function diffSentences(oldStr, newStr, callback) {
      -  return sentenceDiff.diff(oldStr, newStr, callback);
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3NlbnRlbmNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Z0NBUWdCOztBQVJoQjs7Ozs7Ozt1QkFHTyxJQUFNLHVGQUFlLHFFQUFmO0FBQ2IsYUFBYSxRQUFiLEdBQXdCLFVBQVMsS0FBVCxFQUFnQjtBQUN0QyxTQUFPLE1BQU0sS0FBTixDQUFZLHVCQUFaLENBQVAsQ0FEc0M7Q0FBaEI7O0FBSWpCLFNBQVMsYUFBVCxDQUF1QixNQUF2QixFQUErQixNQUEvQixFQUF1QyxRQUF2QyxFQUFpRDtBQUFFLFNBQU8sYUFBYSxJQUFiLENBQWtCLE1BQWxCLEVBQTBCLE1BQTFCLEVBQWtDLFFBQWxDLENBQVAsQ0FBRjtDQUFqRCIsImZpbGUiOiJzZW50ZW5jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cblxuZXhwb3J0IGNvbnN0IHNlbnRlbmNlRGlmZiA9IG5ldyBEaWZmKCk7XG5zZW50ZW5jZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhcXFMuKz9bLiE/XSkoPz1cXHMrfCQpLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZlNlbnRlbmNlcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIHNlbnRlbmNlRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbiJdfQ==
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/word.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/word.js
      deleted file mode 100644
      index 5441d591..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/diff/word.js
      +++ /dev/null
      @@ -1,70 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports.wordDiff = undefined;
      -exports. /*istanbul ignore end*/diffWords = diffWords;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = diffWordsWithSpace;
      -
      -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -var _base2 = _interopRequireDefault(_base);
      -
      -/*istanbul ignore end*/
      -var /*istanbul ignore start*/_params = require('../util/params') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -/*istanbul ignore end*/
      -
      -// Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode
      -//
      -// Ranges and exceptions:
      -// Latin-1 Supplement, 0080–00FF
      -//  - U+00D7  × Multiplication sign
      -//  - U+00F7  ÷ Division sign
      -// Latin Extended-A, 0100–017F
      -// Latin Extended-B, 0180–024F
      -// IPA Extensions, 0250–02AF
      -// Spacing Modifier Letters, 02B0–02FF
      -//  - U+02C7  ˇ ˇ  Caron
      -//  - U+02D8  ˘ ˘  Breve
      -//  - U+02D9  ˙ ˙  Dot Above
      -//  - U+02DA  ˚ ˚  Ring Above
      -//  - U+02DB  ˛ ˛  Ogonek
      -//  - U+02DC  ˜ ˜  Small Tilde
      -//  - U+02DD  ˝ ˝  Double Acute Accent
      -// Latin Extended Additional, 1E00–1EFF
      -var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
      -
      -var reWhitespace = /\S/;
      -
      -var wordDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/wordDiff = new /*istanbul ignore start*/_base2.default() /*istanbul ignore end*/;
      -wordDiff.equals = function (left, right) {
      -  return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
      -};
      -wordDiff.tokenize = function (value) {
      -  var tokens = value.split(/(\s+|\b)/);
      -
      -  // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.
      -  for (var i = 0; i < tokens.length - 1; i++) {
      -    // If we have an empty string in the next field and we have only word chars before and after, merge
      -    if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
      -      tokens[i] += tokens[i + 2];
      -      tokens.splice(i + 1, 2);
      -      i--;
      -    }
      -  }
      -
      -  return tokens;
      -};
      -
      -function diffWords(oldStr, newStr, callback) {
      -  var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true });
      -  return wordDiff.diff(oldStr, newStr, options);
      -}
      -function diffWordsWithSpace(oldStr, newStr, callback) {
      -  return wordDiff.diff(oldStr, newStr, callback);
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3dvcmQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztnQ0ErQ2dCO3lEQUlBOztBQW5EaEI7Ozs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQU0sb0JBQW9CLCtEQUFwQjs7QUFFTixJQUFNLGVBQWUsSUFBZjs7QUFFQyxJQUFNLCtFQUFXLHFFQUFYO0FBQ2IsU0FBUyxNQUFULEdBQWtCLFVBQVMsSUFBVCxFQUFlLEtBQWYsRUFBc0I7QUFDdEMsU0FBTyxTQUFTLEtBQVQsSUFBbUIsS0FBSyxPQUFMLENBQWEsZ0JBQWIsSUFBaUMsQ0FBQyxhQUFhLElBQWIsQ0FBa0IsSUFBbEIsQ0FBRCxJQUE0QixDQUFDLGFBQWEsSUFBYixDQUFrQixLQUFsQixDQUFELENBRGpEO0NBQXRCO0FBR2xCLFNBQVMsUUFBVCxHQUFvQixVQUFTLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSSxTQUFTLE1BQU0sS0FBTixDQUFZLFVBQVosQ0FBVDs7O0FBRDhCLE9BSTdCLElBQUksSUFBSSxDQUFKLEVBQU8sSUFBSSxPQUFPLE1BQVAsR0FBZ0IsQ0FBaEIsRUFBbUIsR0FBdkMsRUFBNEM7O0FBRTFDLFFBQUksQ0FBQyxPQUFPLElBQUksQ0FBSixDQUFSLElBQWtCLE9BQU8sSUFBSSxDQUFKLENBQXpCLElBQ0ssa0JBQWtCLElBQWxCLENBQXVCLE9BQU8sQ0FBUCxDQUF2QixDQURMLElBRUssa0JBQWtCLElBQWxCLENBQXVCLE9BQU8sSUFBSSxDQUFKLENBQTlCLENBRkwsRUFFNEM7QUFDOUMsYUFBTyxDQUFQLEtBQWEsT0FBTyxJQUFJLENBQUosQ0FBcEIsQ0FEOEM7QUFFOUMsYUFBTyxNQUFQLENBQWMsSUFBSSxDQUFKLEVBQU8sQ0FBckIsRUFGOEM7QUFHOUMsVUFIOEM7S0FGaEQ7R0FGRjs7QUFXQSxTQUFPLE1BQVAsQ0Fma0M7Q0FBaEI7O0FBa0JiLFNBQVMsU0FBVCxDQUFtQixNQUFuQixFQUEyQixNQUEzQixFQUFtQyxRQUFuQyxFQUE2QztBQUNsRCxNQUFJLFVBQVUsOEVBQWdCLFFBQWhCLEVBQTBCLEVBQUMsa0JBQWtCLElBQWxCLEVBQTNCLENBQVYsQ0FEOEM7QUFFbEQsU0FBTyxTQUFTLElBQVQsQ0FBYyxNQUFkLEVBQXNCLE1BQXRCLEVBQThCLE9BQTlCLENBQVAsQ0FGa0Q7Q0FBN0M7QUFJQSxTQUFTLGtCQUFULENBQTRCLE1BQTVCLEVBQW9DLE1BQXBDLEVBQTRDLFFBQTVDLEVBQXNEO0FBQzNELFNBQU8sU0FBUyxJQUFULENBQWMsTUFBZCxFQUFzQixNQUF0QixFQUE4QixRQUE5QixDQUFQLENBRDJEO0NBQXREIiwiZmlsZSI6IndvcmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGlmZiBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtnZW5lcmF0ZU9wdGlvbnN9IGZyb20gJy4uL3V0aWwvcGFyYW1zJztcblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW5fc2NyaXB0X2luX1VuaWNvZGVcbi8vXG4vLyBSYW5nZXMgYW5kIGV4Y2VwdGlvbnM6XG4vLyBMYXRpbi0xIFN1cHBsZW1lbnQsIDAwODDigJMwMEZGXG4vLyAgLSBVKzAwRDcgIMOXIE11bHRpcGxpY2F0aW9uIHNpZ25cbi8vICAtIFUrMDBGNyAgw7cgRGl2aXNpb24gc2lnblxuLy8gTGF0aW4gRXh0ZW5kZWQtQSwgMDEwMOKAkzAxN0Zcbi8vIExhdGluIEV4dGVuZGVkLUIsIDAxODDigJMwMjRGXG4vLyBJUEEgRXh0ZW5zaW9ucywgMDI1MOKAkzAyQUZcbi8vIFNwYWNpbmcgTW9kaWZpZXIgTGV0dGVycywgMDJCMOKAkzAyRkZcbi8vICAtIFUrMDJDNyAgy4cgJiM3MTE7ICBDYXJvblxuLy8gIC0gVSswMkQ4ICDLmCAmIzcyODsgIEJyZXZlXG4vLyAgLSBVKzAyRDkgIMuZICYjNzI5OyAgRG90IEFib3ZlXG4vLyAgLSBVKzAyREEgIMuaICYjNzMwOyAgUmluZyBBYm92ZVxuLy8gIC0gVSswMkRCICDLmyAmIzczMTsgIE9nb25la1xuLy8gIC0gVSswMkRDICDLnCAmIzczMjsgIFNtYWxsIFRpbGRlXG4vLyAgLSBVKzAyREQgIMudICYjNzMzOyAgRG91YmxlIEFjdXRlIEFjY2VudFxuLy8gTGF0aW4gRXh0ZW5kZWQgQWRkaXRpb25hbCwgMUUwMOKAkzFFRkZcbmNvbnN0IGV4dGVuZGVkV29yZENoYXJzID0gL15bYS16QS1aXFx1e0MwfS1cXHV7RkZ9XFx1e0Q4fS1cXHV7RjZ9XFx1e0Y4fS1cXHV7MkM2fVxcdXsyQzh9LVxcdXsyRDd9XFx1ezJERX0tXFx1ezJGRn1cXHV7MUUwMH0tXFx1ezFFRkZ9XSskL3U7XG5cbmNvbnN0IHJlV2hpdGVzcGFjZSA9IC9cXFMvO1xuXG5leHBvcnQgY29uc3Qgd29yZERpZmYgPSBuZXcgRGlmZigpO1xud29yZERpZmYuZXF1YWxzID0gZnVuY3Rpb24obGVmdCwgcmlnaHQpIHtcbiAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0IHx8ICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSAmJiAhcmVXaGl0ZXNwYWNlLnRlc3QobGVmdCkgJiYgIXJlV2hpdGVzcGFjZS50ZXN0KHJpZ2h0KSk7XG59O1xud29yZERpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgdG9rZW5zID0gdmFsdWUuc3BsaXQoLyhcXHMrfFxcYikvKTtcblxuICAvLyBKb2luIHRoZSBib3VuZGFyeSBzcGxpdHMgdGhhdCB3ZSBkbyBub3QgY29uc2lkZXIgdG8gYmUgYm91bmRhcmllcy4gVGhpcyBpcyBwcmltYXJpbHkgdGhlIGV4dGVuZGVkIExhdGluIGNoYXJhY3RlciBzZXQuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIC8vIElmIHdlIGhhdmUgYW4gZW1wdHkgc3RyaW5nIGluIHRoZSBuZXh0IGZpZWxkIGFuZCB3ZSBoYXZlIG9ubHkgd29yZCBjaGFycyBiZWZvcmUgYW5kIGFmdGVyLCBtZXJnZVxuICAgIGlmICghdG9rZW5zW2kgKyAxXSAmJiB0b2tlbnNbaSArIDJdXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaV0pXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaSArIDJdKSkge1xuICAgICAgdG9rZW5zW2ldICs9IHRva2Vuc1tpICsgMl07XG4gICAgICB0b2tlbnMuc3BsaWNlKGkgKyAxLCAyKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3JkcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHtcbiAgbGV0IG9wdGlvbnMgPSBnZW5lcmF0ZU9wdGlvbnMoY2FsbGJhY2ssIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkaWZmV29yZHNXaXRoU3BhY2Uob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7XG59XG4iXX0=
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/index.js
      deleted file mode 100644
      index 431f3d6d..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/index.js
      +++ /dev/null
      @@ -1,71 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.diffJson = exports.diffCss = exports.diffSentences = exports.diffTrimmedLines = exports.diffLines = exports.diffWordsWithSpace = exports.diffWords = exports.diffChars = exports.Diff = undefined;
      -/*istanbul ignore end*/
      -var /*istanbul ignore start*/_base = require('./diff/base') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -var _base2 = _interopRequireDefault(_base);
      -
      -/*istanbul ignore end*/
      -var /*istanbul ignore start*/_character = require('./diff/character') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_word = require('./diff/word') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_line = require('./diff/line') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_sentence = require('./diff/sentence') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_css = require('./diff/css') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_json = require('./diff/json') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_apply = require('./patch/apply') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_parse = require('./patch/parse') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_create = require('./patch/create') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_dmp = require('./convert/dmp') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_xml = require('./convert/xml') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -/* See LICENSE file for terms of use */
      -
      -/*
      - * Text diff implementation.
      - *
      - * This library supports the following APIS:
      - * JsDiff.diffChars: Character by character diff
      - * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace
      - * JsDiff.diffLines: Line based diff
      - *
      - * JsDiff.diffCss: Diff targeted at CSS content
      - *
      - * These methods are based on the implementation proposed in
      - * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986).
      - * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927
      - */
      -exports. /*istanbul ignore end*/Diff = _base2.default;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffChars = _character.diffChars;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWords = _word.diffWords;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = _word.diffWordsWithSpace;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffLines = _line.diffLines;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = _line.diffTrimmedLines;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffSentences = _sentence.diffSentences;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffCss = _css.diffCss;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffJson = _json.diffJson;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/structuredPatch = _create.structuredPatch;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = _create.createTwoFilesPatch;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = _create.createPatch;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatch = _apply.applyPatch;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = _apply.applyPatches;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/parsePatch = _parse.parsePatch;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToDMP = _dmp.convertChangesToDMP;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToXML = _xml.convertChangesToXML;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = _json.canonicalize;
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWdCQTs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnQ0FHRTt5REFFQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFFQTt5REFDQTt5REFFQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFDQTt5REFDQSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFNlZSBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zIG9mIHVzZSAqL1xuXG4vKlxuICogVGV4dCBkaWZmIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIFRoaXMgbGlicmFyeSBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIEFQSVM6XG4gKiBKc0RpZmYuZGlmZkNoYXJzOiBDaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIGRpZmZcbiAqIEpzRGlmZi5kaWZmV29yZHM6IFdvcmQgKGFzIGRlZmluZWQgYnkgXFxiIHJlZ2V4KSBkaWZmIHdoaWNoIGlnbm9yZXMgd2hpdGVzcGFjZVxuICogSnNEaWZmLmRpZmZMaW5lczogTGluZSBiYXNlZCBkaWZmXG4gKlxuICogSnNEaWZmLmRpZmZDc3M6IERpZmYgdGFyZ2V0ZWQgYXQgQ1NTIGNvbnRlbnRcbiAqXG4gKiBUaGVzZSBtZXRob2RzIGFyZSBiYXNlZCBvbiB0aGUgaW1wbGVtZW50YXRpb24gcHJvcG9zZWQgaW5cbiAqIFwiQW4gTyhORCkgRGlmZmVyZW5jZSBBbGdvcml0aG0gYW5kIGl0cyBWYXJpYXRpb25zXCIgKE15ZXJzLCAxOTg2KS5cbiAqIGh0dHA6Ly9jaXRlc2VlcnguaXN0LnBzdS5lZHUvdmlld2RvYy9zdW1tYXJ5P2RvaT0xMC4xLjEuNC42OTI3XG4gKi9cbmltcG9ydCBEaWZmIGZyb20gJy4vZGlmZi9iYXNlJztcbmltcG9ydCB7ZGlmZkNoYXJzfSBmcm9tICcuL2RpZmYvY2hhcmFjdGVyJztcbmltcG9ydCB7ZGlmZldvcmRzLCBkaWZmV29yZHNXaXRoU3BhY2V9IGZyb20gJy4vZGlmZi93b3JkJztcbmltcG9ydCB7ZGlmZkxpbmVzLCBkaWZmVHJpbW1lZExpbmVzfSBmcm9tICcuL2RpZmYvbGluZSc7XG5pbXBvcnQge2RpZmZTZW50ZW5jZXN9IGZyb20gJy4vZGlmZi9zZW50ZW5jZSc7XG5cbmltcG9ydCB7ZGlmZkNzc30gZnJvbSAnLi9kaWZmL2Nzcyc7XG5pbXBvcnQge2RpZmZKc29uLCBjYW5vbmljYWxpemV9IGZyb20gJy4vZGlmZi9qc29uJztcblxuaW1wb3J0IHthcHBseVBhdGNoLCBhcHBseVBhdGNoZXN9IGZyb20gJy4vcGF0Y2gvYXBwbHknO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhdGNoL3BhcnNlJztcbmltcG9ydCB7c3RydWN0dXJlZFBhdGNoLCBjcmVhdGVUd29GaWxlc1BhdGNoLCBjcmVhdGVQYXRjaH0gZnJvbSAnLi9wYXRjaC9jcmVhdGUnO1xuXG5pbXBvcnQge2NvbnZlcnRDaGFuZ2VzVG9ETVB9IGZyb20gJy4vY29udmVydC9kbXAnO1xuaW1wb3J0IHtjb252ZXJ0Q2hhbmdlc1RvWE1MfSBmcm9tICcuL2NvbnZlcnQveG1sJztcblxuZXhwb3J0IHtcbiAgRGlmZixcblxuICBkaWZmQ2hhcnMsXG4gIGRpZmZXb3JkcyxcbiAgZGlmZldvcmRzV2l0aFNwYWNlLFxuICBkaWZmTGluZXMsXG4gIGRpZmZUcmltbWVkTGluZXMsXG4gIGRpZmZTZW50ZW5jZXMsXG5cbiAgZGlmZkNzcyxcbiAgZGlmZkpzb24sXG5cbiAgc3RydWN0dXJlZFBhdGNoLFxuICBjcmVhdGVUd29GaWxlc1BhdGNoLFxuICBjcmVhdGVQYXRjaCxcbiAgYXBwbHlQYXRjaCxcbiAgYXBwbHlQYXRjaGVzLFxuICBwYXJzZVBhdGNoLFxuICBjb252ZXJ0Q2hhbmdlc1RvRE1QLFxuICBjb252ZXJ0Q2hhbmdlc1RvWE1MLFxuICBjYW5vbmljYWxpemVcbn07XG4iXX0=
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/apply.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/apply.js
      deleted file mode 100644
      index aee9a8ac..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/apply.js
      +++ /dev/null
      @@ -1,164 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports. /*istanbul ignore end*/applyPatch = applyPatch;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = applyPatches;
      -
      -var /*istanbul ignore start*/_parse = require('./parse') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_distanceIterator = require('../util/distance-iterator') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -var _distanceIterator2 = _interopRequireDefault(_distanceIterator);
      -
      -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
      -
      -/*istanbul ignore end*/function applyPatch(source, uniDiff) {
      -  /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
      -
      -  if (typeof uniDiff === 'string') {
      -    uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff);
      -  }
      -
      -  if (Array.isArray(uniDiff)) {
      -    if (uniDiff.length > 1) {
      -      throw new Error('applyPatch only works with a single input.');
      -    }
      -
      -    uniDiff = uniDiff[0];
      -  }
      -
      -  // Apply the diff to the input
      -  var lines = source.split('\n'),
      -      hunks = uniDiff.hunks,
      -      compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) /*istanbul ignore start*/{
      -    return (/*istanbul ignore end*/line === patchContent
      -    );
      -  },
      -      errorCount = 0,
      -      fuzzFactor = options.fuzzFactor || 0,
      -      minLine = 0,
      -      offset = 0,
      -      removeEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/,
      -      addEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
      -
      -  /**
      -   * Checks if the hunk exactly fits on the provided location
      -   */
      -  function hunkFits(hunk, toPos) {
      -    for (var j = 0; j < hunk.lines.length; j++) {
      -      var line = hunk.lines[j],
      -          operation = line[0],
      -          content = line.substr(1);
      -
      -      if (operation === ' ' || operation === '-') {
      -        // Context sanity check
      -        if (!compareLine(toPos + 1, lines[toPos], operation, content)) {
      -          errorCount++;
      -
      -          if (errorCount > fuzzFactor) {
      -            return false;
      -          }
      -        }
      -        toPos++;
      -      }
      -    }
      -
      -    return true;
      -  }
      -
      -  // Search best fit offsets for each hunk based on the previous ones
      -  for (var i = 0; i < hunks.length; i++) {
      -    var hunk = hunks[i],
      -        maxLine = lines.length - hunk.oldLines,
      -        localOffset = 0,
      -        toPos = offset + hunk.oldStart - 1;
      -
      -    var iterator = /*istanbul ignore start*/(0, _distanceIterator2.default) /*istanbul ignore end*/(toPos, minLine, maxLine);
      -
      -    for (; localOffset !== undefined; localOffset = iterator()) {
      -      if (hunkFits(hunk, toPos + localOffset)) {
      -        hunk.offset = offset += localOffset;
      -        break;
      -      }
      -    }
      -
      -    if (localOffset === undefined) {
      -      return false;
      -    }
      -
      -    // Set lower text limit to end of the current hunk, so next ones don't try
      -    // to fit over already patched text
      -    minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
      -  }
      -
      -  // Apply patch hunks
      -  for (var _i = 0; _i < hunks.length; _i++) {
      -    var _hunk = hunks[_i],
      -        _toPos = _hunk.offset + _hunk.newStart - 1;
      -    if (_hunk.newLines == 0) {
      -      _toPos++;
      -    }
      -
      -    for (var j = 0; j < _hunk.lines.length; j++) {
      -      var line = _hunk.lines[j],
      -          operation = line[0],
      -          content = line.substr(1);
      -
      -      if (operation === ' ') {
      -        _toPos++;
      -      } else if (operation === '-') {
      -        lines.splice(_toPos, 1);
      -        /* istanbul ignore else */
      -      } else if (operation === '+') {
      -          lines.splice(_toPos, 0, content);
      -          _toPos++;
      -        } else if (operation === '\\') {
      -          var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
      -          if (previousOperation === '+') {
      -            removeEOFNL = true;
      -          } else if (previousOperation === '-') {
      -            addEOFNL = true;
      -          }
      -        }
      -    }
      -  }
      -
      -  // Handle EOFNL insertion/removal
      -  if (removeEOFNL) {
      -    while (!lines[lines.length - 1]) {
      -      lines.pop();
      -    }
      -  } else if (addEOFNL) {
      -    lines.push('');
      -  }
      -  return lines.join('\n');
      -}
      -
      -// Wrapper that supports multiple file patches via callbacks.
      -function applyPatches(uniDiff, options) {
      -  if (typeof uniDiff === 'string') {
      -    uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff);
      -  }
      -
      -  var currentIndex = 0;
      -  function processIndex() {
      -    var index = uniDiff[currentIndex++];
      -    if (!index) {
      -      return options.complete();
      -    }
      -
      -    options.loadFile(index, function (err, data) {
      -      if (err) {
      -        return options.complete(err);
      -      }
      -
      -      var updatedContent = applyPatch(data, index, options);
      -      options.patched(index, updatedContent);
      -
      -      setTimeout(processIndex, 0);
      -    });
      -  }
      -  processIndex();
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9hcHBseS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBR2dCO3lEQXNIQTs7QUF6SGhCOztBQUNBOzs7Ozs7O3VCQUVPLFNBQVMsVUFBVCxDQUFvQixNQUFwQixFQUE0QixPQUE1QixFQUFtRDtzREFBZCxnRUFBVSxrQkFBSTs7QUFDeEQsTUFBSSxPQUFPLE9BQVAsS0FBbUIsUUFBbkIsRUFBNkI7QUFDL0IsY0FBVSx3RUFBVyxPQUFYLENBQVYsQ0FEK0I7R0FBakM7O0FBSUEsTUFBSSxNQUFNLE9BQU4sQ0FBYyxPQUFkLENBQUosRUFBNEI7QUFDMUIsUUFBSSxRQUFRLE1BQVIsR0FBaUIsQ0FBakIsRUFBb0I7QUFDdEIsWUFBTSxJQUFJLEtBQUosQ0FBVSw0Q0FBVixDQUFOLENBRHNCO0tBQXhCOztBQUlBLGNBQVUsUUFBUSxDQUFSLENBQVYsQ0FMMEI7R0FBNUI7OztBQUx3RCxNQWNwRCxRQUFRLE9BQU8sS0FBUCxDQUFhLElBQWIsQ0FBUjtNQUNBLFFBQVEsUUFBUSxLQUFSO01BRVIsY0FBYyxRQUFRLFdBQVIsSUFBd0IsVUFBQyxVQUFELEVBQWEsSUFBYixFQUFtQixTQUFuQixFQUE4QixZQUE5QjttQ0FBK0MsU0FBUyxZQUFUOztHQUEvQztNQUN0QyxhQUFhLENBQWI7TUFDQSxhQUFhLFFBQVEsVUFBUixJQUFzQixDQUF0QjtNQUNiLFVBQVUsQ0FBVjtNQUNBLFNBQVMsQ0FBVDtNQUVBLHFFQVRKO01BVUksa0VBVko7Ozs7O0FBZHdELFdBNkIvQyxRQUFULENBQWtCLElBQWxCLEVBQXdCLEtBQXhCLEVBQStCO0FBQzdCLFNBQUssSUFBSSxJQUFJLENBQUosRUFBTyxJQUFJLEtBQUssS0FBTCxDQUFXLE1BQVgsRUFBbUIsR0FBdkMsRUFBNEM7QUFDMUMsVUFBSSxPQUFPLEtBQUssS0FBTCxDQUFXLENBQVgsQ0FBUDtVQUNBLFlBQVksS0FBSyxDQUFMLENBQVo7VUFDQSxVQUFVLEtBQUssTUFBTCxDQUFZLENBQVosQ0FBVixDQUhzQzs7QUFLMUMsVUFBSSxjQUFjLEdBQWQsSUFBcUIsY0FBYyxHQUFkLEVBQW1COztBQUUxQyxZQUFJLENBQUMsWUFBWSxRQUFRLENBQVIsRUFBVyxNQUFNLEtBQU4sQ0FBdkIsRUFBcUMsU0FBckMsRUFBZ0QsT0FBaEQsQ0FBRCxFQUEyRDtBQUM3RCx1QkFENkQ7O0FBRzdELGNBQUksYUFBYSxVQUFiLEVBQXlCO0FBQzNCLG1CQUFPLEtBQVAsQ0FEMkI7V0FBN0I7U0FIRjtBQU9BLGdCQVQwQztPQUE1QztLQUxGOztBQWtCQSxXQUFPLElBQVAsQ0FuQjZCO0dBQS9COzs7QUE3QndELE9Bb0RuRCxJQUFJLElBQUksQ0FBSixFQUFPLElBQUksTUFBTSxNQUFOLEVBQWMsR0FBbEMsRUFBdUM7QUFDckMsUUFBSSxPQUFPLE1BQU0sQ0FBTixDQUFQO1FBQ0EsVUFBVSxNQUFNLE1BQU4sR0FBZSxLQUFLLFFBQUw7UUFDekIsY0FBYyxDQUFkO1FBQ0EsUUFBUSxTQUFTLEtBQUssUUFBTCxHQUFnQixDQUF6QixDQUp5Qjs7QUFNckMsUUFBSSxXQUFXLGlGQUFpQixLQUFqQixFQUF3QixPQUF4QixFQUFpQyxPQUFqQyxDQUFYLENBTmlDOztBQVFyQyxXQUFPLGdCQUFnQixTQUFoQixFQUEyQixjQUFjLFVBQWQsRUFBMEI7QUFDMUQsVUFBSSxTQUFTLElBQVQsRUFBZSxRQUFRLFdBQVIsQ0FBbkIsRUFBeUM7QUFDdkMsYUFBSyxNQUFMLEdBQWMsVUFBVSxXQUFWLENBRHlCO0FBRXZDLGNBRnVDO09BQXpDO0tBREY7O0FBT0EsUUFBSSxnQkFBZ0IsU0FBaEIsRUFBMkI7QUFDN0IsYUFBTyxLQUFQLENBRDZCO0tBQS9COzs7O0FBZnFDLFdBcUJyQyxHQUFVLEtBQUssTUFBTCxHQUFjLEtBQUssUUFBTCxHQUFnQixLQUFLLFFBQUwsQ0FyQkg7R0FBdkM7OztBQXBEd0QsT0E2RW5ELElBQUksS0FBSSxDQUFKLEVBQU8sS0FBSSxNQUFNLE1BQU4sRUFBYyxJQUFsQyxFQUF1QztBQUNyQyxRQUFJLFFBQU8sTUFBTSxFQUFOLENBQVA7UUFDQSxTQUFRLE1BQUssTUFBTCxHQUFjLE1BQUssUUFBTCxHQUFnQixDQUE5QixDQUZ5QjtBQUdyQyxRQUFJLE1BQUssUUFBTCxJQUFpQixDQUFqQixFQUFvQjtBQUFFLGVBQUY7S0FBeEI7O0FBRUEsU0FBSyxJQUFJLElBQUksQ0FBSixFQUFPLElBQUksTUFBSyxLQUFMLENBQVcsTUFBWCxFQUFtQixHQUF2QyxFQUE0QztBQUMxQyxVQUFJLE9BQU8sTUFBSyxLQUFMLENBQVcsQ0FBWCxDQUFQO1VBQ0EsWUFBWSxLQUFLLENBQUwsQ0FBWjtVQUNBLFVBQVUsS0FBSyxNQUFMLENBQVksQ0FBWixDQUFWLENBSHNDOztBQUsxQyxVQUFJLGNBQWMsR0FBZCxFQUFtQjtBQUNyQixpQkFEcUI7T0FBdkIsTUFFTyxJQUFJLGNBQWMsR0FBZCxFQUFtQjtBQUM1QixjQUFNLE1BQU4sQ0FBYSxNQUFiLEVBQW9CLENBQXBCOztBQUQ0QixPQUF2QixNQUdBLElBQUksY0FBYyxHQUFkLEVBQW1CO0FBQzVCLGdCQUFNLE1BQU4sQ0FBYSxNQUFiLEVBQW9CLENBQXBCLEVBQXVCLE9BQXZCLEVBRDRCO0FBRTVCLG1CQUY0QjtTQUF2QixNQUdBLElBQUksY0FBYyxJQUFkLEVBQW9CO0FBQzdCLGNBQUksb0JBQW9CLE1BQUssS0FBTCxDQUFXLElBQUksQ0FBSixDQUFYLEdBQW9CLE1BQUssS0FBTCxDQUFXLElBQUksQ0FBSixDQUFYLENBQWtCLENBQWxCLENBQXBCLEdBQTJDLElBQTNDLENBREs7QUFFN0IsY0FBSSxzQkFBc0IsR0FBdEIsRUFBMkI7QUFDN0IsMEJBQWMsSUFBZCxDQUQ2QjtXQUEvQixNQUVPLElBQUksc0JBQXNCLEdBQXRCLEVBQTJCO0FBQ3BDLHVCQUFXLElBQVgsQ0FEb0M7V0FBL0I7U0FKRjtLQWJUO0dBTEY7OztBQTdFd0QsTUEyR3BELFdBQUosRUFBaUI7QUFDZixXQUFPLENBQUMsTUFBTSxNQUFNLE1BQU4sR0FBZSxDQUFmLENBQVAsRUFBMEI7QUFDL0IsWUFBTSxHQUFOLEdBRCtCO0tBQWpDO0dBREYsTUFJTyxJQUFJLFFBQUosRUFBYztBQUNuQixVQUFNLElBQU4sQ0FBVyxFQUFYLEVBRG1CO0dBQWQ7QUFHUCxTQUFPLE1BQU0sSUFBTixDQUFXLElBQVgsQ0FBUCxDQWxId0Q7Q0FBbkQ7OztBQXNIQSxTQUFTLFlBQVQsQ0FBc0IsT0FBdEIsRUFBK0IsT0FBL0IsRUFBd0M7QUFDN0MsTUFBSSxPQUFPLE9BQVAsS0FBbUIsUUFBbkIsRUFBNkI7QUFDL0IsY0FBVSx3RUFBVyxPQUFYLENBQVYsQ0FEK0I7R0FBakM7O0FBSUEsTUFBSSxlQUFlLENBQWYsQ0FMeUM7QUFNN0MsV0FBUyxZQUFULEdBQXdCO0FBQ3RCLFFBQUksUUFBUSxRQUFRLGNBQVIsQ0FBUixDQURrQjtBQUV0QixRQUFJLENBQUMsS0FBRCxFQUFRO0FBQ1YsYUFBTyxRQUFRLFFBQVIsRUFBUCxDQURVO0tBQVo7O0FBSUEsWUFBUSxRQUFSLENBQWlCLEtBQWpCLEVBQXdCLFVBQVMsR0FBVCxFQUFjLElBQWQsRUFBb0I7QUFDMUMsVUFBSSxHQUFKLEVBQVM7QUFDUCxlQUFPLFFBQVEsUUFBUixDQUFpQixHQUFqQixDQUFQLENBRE87T0FBVDs7QUFJQSxVQUFJLGlCQUFpQixXQUFXLElBQVgsRUFBaUIsS0FBakIsRUFBd0IsT0FBeEIsQ0FBakIsQ0FMc0M7QUFNMUMsY0FBUSxPQUFSLENBQWdCLEtBQWhCLEVBQXVCLGNBQXZCLEVBTjBDOztBQVExQyxpQkFBVyxZQUFYLEVBQXlCLENBQXpCLEVBUjBDO0tBQXBCLENBQXhCLENBTnNCO0dBQXhCO0FBaUJBLGlCQXZCNkM7Q0FBeEMiLCJmaWxlIjoiYXBwbHkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3BhcnNlUGF0Y2h9IGZyb20gJy4vcGFyc2UnO1xuaW1wb3J0IGRpc3RhbmNlSXRlcmF0b3IgZnJvbSAnLi4vdXRpbC9kaXN0YW5jZS1pdGVyYXRvcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVBhdGNoKHNvdXJjZSwgdW5pRGlmZiwgb3B0aW9ucyA9IHt9KSB7XG4gIGlmICh0eXBlb2YgdW5pRGlmZiA9PT0gJ3N0cmluZycpIHtcbiAgICB1bmlEaWZmID0gcGFyc2VQYXRjaCh1bmlEaWZmKTtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHVuaURpZmYpKSB7XG4gICAgaWYgKHVuaURpZmYubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhcHBseVBhdGNoIG9ubHkgd29ya3Mgd2l0aCBhIHNpbmdsZSBpbnB1dC4nKTtcbiAgICB9XG5cbiAgICB1bmlEaWZmID0gdW5pRGlmZlswXTtcbiAgfVxuXG4gIC8vIEFwcGx5IHRoZSBkaWZmIHRvIHRoZSBpbnB1dFxuICBsZXQgbGluZXMgPSBzb3VyY2Uuc3BsaXQoJ1xcbicpLFxuICAgICAgaHVua3MgPSB1bmlEaWZmLmh1bmtzLFxuXG4gICAgICBjb21wYXJlTGluZSA9IG9wdGlvbnMuY29tcGFyZUxpbmUgfHwgKChsaW5lTnVtYmVyLCBsaW5lLCBvcGVyYXRpb24sIHBhdGNoQ29udGVudCkgPT4gbGluZSA9PT0gcGF0Y2hDb250ZW50KSxcbiAgICAgIGVycm9yQ291bnQgPSAwLFxuICAgICAgZnV6ekZhY3RvciA9IG9wdGlvbnMuZnV6ekZhY3RvciB8fCAwLFxuICAgICAgbWluTGluZSA9IDAsXG4gICAgICBvZmZzZXQgPSAwLFxuXG4gICAgICByZW1vdmVFT0ZOTCxcbiAgICAgIGFkZEVPRk5MO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGh1bmsgZXhhY3RseSBmaXRzIG9uIHRoZSBwcm92aWRlZCBsb2NhdGlvblxuICAgKi9cbiAgZnVuY3Rpb24gaHVua0ZpdHMoaHVuaywgdG9Qb3MpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGh1bmsubGluZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGxldCBsaW5lID0gaHVuay5saW5lc1tqXSxcbiAgICAgICAgICBvcGVyYXRpb24gPSBsaW5lWzBdLFxuICAgICAgICAgIGNvbnRlbnQgPSBsaW5lLnN1YnN0cigxKTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJyAnIHx8IG9wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgIC8vIENvbnRleHQgc2FuaXR5IGNoZWNrXG4gICAgICAgIGlmICghY29tcGFyZUxpbmUodG9Qb3MgKyAxLCBsaW5lc1t0b1Bvc10sIG9wZXJhdGlvbiwgY29udGVudCkpIHtcbiAgICAgICAgICBlcnJvckNvdW50Kys7XG5cbiAgICAgICAgICBpZiAoZXJyb3JDb3VudCA+IGZ1enpGYWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdG9Qb3MrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIFNlYXJjaCBiZXN0IGZpdCBvZmZzZXRzIGZvciBlYWNoIGh1bmsgYmFzZWQgb24gdGhlIHByZXZpb3VzIG9uZXNcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBodW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBodW5rID0gaHVua3NbaV0sXG4gICAgICAgIG1heExpbmUgPSBsaW5lcy5sZW5ndGggLSBodW5rLm9sZExpbmVzLFxuICAgICAgICBsb2NhbE9mZnNldCA9IDAsXG4gICAgICAgIHRvUG9zID0gb2Zmc2V0ICsgaHVuay5vbGRTdGFydCAtIDE7XG5cbiAgICBsZXQgaXRlcmF0b3IgPSBkaXN0YW5jZUl0ZXJhdG9yKHRvUG9zLCBtaW5MaW5lLCBtYXhMaW5lKTtcblxuICAgIGZvciAoOyBsb2NhbE9mZnNldCAhPT0gdW5kZWZpbmVkOyBsb2NhbE9mZnNldCA9IGl0ZXJhdG9yKCkpIHtcbiAgICAgIGlmIChodW5rRml0cyhodW5rLCB0b1BvcyArIGxvY2FsT2Zmc2V0KSkge1xuICAgICAgICBodW5rLm9mZnNldCA9IG9mZnNldCArPSBsb2NhbE9mZnNldDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGxvY2FsT2Zmc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBTZXQgbG93ZXIgdGV4dCBsaW1pdCB0byBlbmQgb2YgdGhlIGN1cnJlbnQgaHVuaywgc28gbmV4dCBvbmVzIGRvbid0IHRyeVxuICAgIC8vIHRvIGZpdCBvdmVyIGFscmVhZHkgcGF0Y2hlZCB0ZXh0XG4gICAgbWluTGluZSA9IGh1bmsub2Zmc2V0ICsgaHVuay5vbGRTdGFydCArIGh1bmsub2xkTGluZXM7XG4gIH1cblxuICAvLyBBcHBseSBwYXRjaCBodW5rc1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGh1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGh1bmsgPSBodW5rc1tpXSxcbiAgICAgICAgdG9Qb3MgPSBodW5rLm9mZnNldCArIGh1bmsubmV3U3RhcnQgLSAxO1xuICAgIGlmIChodW5rLm5ld0xpbmVzID09IDApIHsgdG9Qb3MrKzsgfVxuXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBodW5rLmxpbmVzLmxlbmd0aDsgaisrKSB7XG4gICAgICBsZXQgbGluZSA9IGh1bmsubGluZXNbal0sXG4gICAgICAgICAgb3BlcmF0aW9uID0gbGluZVswXSxcbiAgICAgICAgICBjb250ZW50ID0gbGluZS5zdWJzdHIoMSk7XG5cbiAgICAgIGlmIChvcGVyYXRpb24gPT09ICcgJykge1xuICAgICAgICB0b1BvcysrO1xuICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICBsaW5lcy5zcGxpY2UodG9Qb3MsIDEpO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnKycpIHtcbiAgICAgICAgbGluZXMuc3BsaWNlKHRvUG9zLCAwLCBjb250ZW50KTtcbiAgICAgICAgdG9Qb3MrKztcbiAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnXFxcXCcpIHtcbiAgICAgICAgbGV0IHByZXZpb3VzT3BlcmF0aW9uID0gaHVuay5saW5lc1tqIC0gMV0gPyBodW5rLmxpbmVzW2ogLSAxXVswXSA6IG51bGw7XG4gICAgICAgIGlmIChwcmV2aW91c09wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgICAgcmVtb3ZlRU9GTkwgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHByZXZpb3VzT3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgICBhZGRFT0ZOTCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBIYW5kbGUgRU9GTkwgaW5zZXJ0aW9uL3JlbW92YWxcbiAgaWYgKHJlbW92ZUVPRk5MKSB7XG4gICAgd2hpbGUgKCFsaW5lc1tsaW5lcy5sZW5ndGggLSAxXSkge1xuICAgICAgbGluZXMucG9wKCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFkZEVPRk5MKSB7XG4gICAgbGluZXMucHVzaCgnJyk7XG4gIH1cbiAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xufVxuXG4vLyBXcmFwcGVyIHRoYXQgc3VwcG9ydHMgbXVsdGlwbGUgZmlsZSBwYXRjaGVzIHZpYSBjYWxsYmFja3MuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQYXRjaGVzKHVuaURpZmYsIG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiB1bmlEaWZmID09PSAnc3RyaW5nJykge1xuICAgIHVuaURpZmYgPSBwYXJzZVBhdGNoKHVuaURpZmYpO1xuICB9XG5cbiAgbGV0IGN1cnJlbnRJbmRleCA9IDA7XG4gIGZ1bmN0aW9uIHByb2Nlc3NJbmRleCgpIHtcbiAgICBsZXQgaW5kZXggPSB1bmlEaWZmW2N1cnJlbnRJbmRleCsrXTtcbiAgICBpZiAoIWluZGV4KSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIG9wdGlvbnMubG9hZEZpbGUoaW5kZXgsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5jb21wbGV0ZShlcnIpO1xuICAgICAgfVxuXG4gICAgICBsZXQgdXBkYXRlZENvbnRlbnQgPSBhcHBseVBhdGNoKGRhdGEsIGluZGV4LCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMucGF0Y2hlZChpbmRleCwgdXBkYXRlZENvbnRlbnQpO1xuXG4gICAgICBzZXRUaW1lb3V0KHByb2Nlc3NJbmRleCwgMCk7XG4gICAgfSk7XG4gIH1cbiAgcHJvY2Vzc0luZGV4KCk7XG59XG4iXX0=
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/create.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/create.js
      deleted file mode 100644
      index 3dca70f9..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/create.js
      +++ /dev/null
      @@ -1,153 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports. /*istanbul ignore end*/structuredPatch = structuredPatch;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = createTwoFilesPatch;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = createPatch;
      -
      -var /*istanbul ignore start*/_line = require('../diff/line') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
      -
      -/*istanbul ignore end*/function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
      -  if (!options) {
      -    options = { context: 4 };
      -  }
      -
      -  var diff = /*istanbul ignore start*/(0, _line.diffLines) /*istanbul ignore end*/(oldStr, newStr);
      -  diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier
      -
      -  function contextLines(lines) {
      -    return lines.map(function (entry) {
      -      return ' ' + entry;
      -    });
      -  }
      -
      -  var hunks = [];
      -  var oldRangeStart = 0,
      -      newRangeStart = 0,
      -      curRange = [],
      -      oldLine = 1,
      -      newLine = 1;
      -  /*istanbul ignore start*/
      -  var _loop = function _loop( /*istanbul ignore end*/i) {
      -    var current = diff[i],
      -        lines = current.lines || current.value.replace(/\n$/, '').split('\n');
      -    current.lines = lines;
      -
      -    if (current.added || current.removed) {
      -      /*istanbul ignore start*/
      -      var _curRange;
      -
      -      /*istanbul ignore end*/
      -      // If we have previous context, start with that
      -      if (!oldRangeStart) {
      -        var prev = diff[i - 1];
      -        oldRangeStart = oldLine;
      -        newRangeStart = newLine;
      -
      -        if (prev) {
      -          curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
      -          oldRangeStart -= curRange.length;
      -          newRangeStart -= curRange.length;
      -        }
      -      }
      -
      -      // Output our changes
      -      /*istanbul ignore start*/(_curRange = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/lines.map(function (entry) {
      -        return (current.added ? '+' : '-') + entry;
      -      })));
      -
      -      // Track the updated file position
      -      if (current.added) {
      -        newLine += lines.length;
      -      } else {
      -        oldLine += lines.length;
      -      }
      -    } else {
      -      // Identical context lines. Track line changes
      -      if (oldRangeStart) {
      -        // Close out any changes that have been output (or join overlapping)
      -        if (lines.length <= options.context * 2 && i < diff.length - 2) {
      -          /*istanbul ignore start*/
      -          var _curRange2;
      -
      -          /*istanbul ignore end*/
      -          // Overlapping
      -          /*istanbul ignore start*/(_curRange2 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines)));
      -        } else {
      -          /*istanbul ignore start*/
      -          var _curRange3;
      -
      -          /*istanbul ignore end*/
      -          // end the range and output
      -          var contextSize = Math.min(lines.length, options.context);
      -          /*istanbul ignore start*/(_curRange3 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines.slice(0, contextSize))));
      -
      -          var hunk = {
      -            oldStart: oldRangeStart,
      -            oldLines: oldLine - oldRangeStart + contextSize,
      -            newStart: newRangeStart,
      -            newLines: newLine - newRangeStart + contextSize,
      -            lines: curRange
      -          };
      -          if (i >= diff.length - 2 && lines.length <= options.context) {
      -            // EOF is inside this hunk
      -            var oldEOFNewline = /\n$/.test(oldStr);
      -            var newEOFNewline = /\n$/.test(newStr);
      -            if (lines.length == 0 && !oldEOFNewline) {
      -              // special case: old has no eol and no trailing context; no-nl can end up before adds
      -              curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file');
      -            } else if (!oldEOFNewline || !newEOFNewline) {
      -              curRange.push('\\ No newline at end of file');
      -            }
      -          }
      -          hunks.push(hunk);
      -
      -          oldRangeStart = 0;
      -          newRangeStart = 0;
      -          curRange = [];
      -        }
      -      }
      -      oldLine += lines.length;
      -      newLine += lines.length;
      -    }
      -  };
      -
      -  for (var i = 0; i < diff.length; i++) {
      -    /*istanbul ignore start*/
      -    _loop( /*istanbul ignore end*/i);
      -  }
      -
      -  return {
      -    oldFileName: oldFileName, newFileName: newFileName,
      -    oldHeader: oldHeader, newHeader: newHeader,
      -    hunks: hunks
      -  };
      -}
      -
      -function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
      -  var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);
      -
      -  var ret = [];
      -  if (oldFileName == newFileName) {
      -    ret.push('Index: ' + oldFileName);
      -  }
      -  ret.push('===================================================================');
      -  ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader));
      -  ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader));
      -
      -  for (var i = 0; i < diff.hunks.length; i++) {
      -    var hunk = diff.hunks[i];
      -    ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');
      -    ret.push.apply(ret, hunk.lines);
      -  }
      -
      -  return ret.join('\n') + '\n';
      -}
      -
      -function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
      -  return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9jcmVhdGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O2dDQUVnQjt5REE4RkE7eURBd0JBOztBQXhIaEI7Ozs7O3VCQUVPLFNBQVMsZUFBVCxDQUF5QixXQUF6QixFQUFzQyxXQUF0QyxFQUFtRCxNQUFuRCxFQUEyRCxNQUEzRCxFQUFtRSxTQUFuRSxFQUE4RSxTQUE5RSxFQUF5RixPQUF6RixFQUFrRztBQUN2RyxNQUFJLENBQUMsT0FBRCxFQUFVO0FBQ1osY0FBVSxFQUFFLFNBQVMsQ0FBVCxFQUFaLENBRFk7R0FBZDs7QUFJQSxNQUFNLE9BQU8sc0VBQVUsTUFBVixFQUFrQixNQUFsQixDQUFQLENBTGlHO0FBTXZHLE9BQUssSUFBTCxDQUFVLEVBQUMsT0FBTyxFQUFQLEVBQVcsT0FBTyxFQUFQLEVBQXRCOztBQU51RyxXQVE5RixZQUFULENBQXNCLEtBQXRCLEVBQTZCO0FBQzNCLFdBQU8sTUFBTSxHQUFOLENBQVUsVUFBUyxLQUFULEVBQWdCO0FBQUUsYUFBTyxNQUFNLEtBQU4sQ0FBVDtLQUFoQixDQUFqQixDQUQyQjtHQUE3Qjs7QUFJQSxNQUFJLFFBQVEsRUFBUixDQVptRztBQWF2RyxNQUFJLGdCQUFnQixDQUFoQjtNQUFtQixnQkFBZ0IsQ0FBaEI7TUFBbUIsV0FBVyxFQUFYO01BQ3RDLFVBQVUsQ0FBVjtNQUFhLFVBQVUsQ0FBVixDQWRzRjs7cURBZTlGO0FBQ1AsUUFBTSxVQUFVLEtBQUssQ0FBTCxDQUFWO1FBQ0EsUUFBUSxRQUFRLEtBQVIsSUFBaUIsUUFBUSxLQUFSLENBQWMsT0FBZCxDQUFzQixLQUF0QixFQUE2QixFQUE3QixFQUFpQyxLQUFqQyxDQUF1QyxJQUF2QyxDQUFqQjtBQUNkLFlBQVEsS0FBUixHQUFnQixLQUFoQjs7QUFFQSxRQUFJLFFBQVEsS0FBUixJQUFpQixRQUFRLE9BQVIsRUFBaUI7Ozs7OztBQUVwQyxVQUFJLENBQUMsYUFBRCxFQUFnQjtBQUNsQixZQUFNLE9BQU8sS0FBSyxJQUFJLENBQUosQ0FBWixDQURZO0FBRWxCLHdCQUFnQixPQUFoQixDQUZrQjtBQUdsQix3QkFBZ0IsT0FBaEIsQ0FIa0I7O0FBS2xCLFlBQUksSUFBSixFQUFVO0FBQ1IscUJBQVcsUUFBUSxPQUFSLEdBQWtCLENBQWxCLEdBQXNCLGFBQWEsS0FBSyxLQUFMLENBQVcsS0FBWCxDQUFpQixDQUFDLFFBQVEsT0FBUixDQUEvQixDQUF0QixHQUF5RSxFQUF6RSxDQURIO0FBRVIsMkJBQWlCLFNBQVMsTUFBVCxDQUZUO0FBR1IsMkJBQWlCLFNBQVMsTUFBVCxDQUhUO1NBQVY7T0FMRjs7O0FBRm9DLG1FQWVwQyxVQUFTLElBQVQsMExBQWtCLE1BQU0sR0FBTixDQUFVLFVBQVMsS0FBVCxFQUFnQjtBQUMxQyxlQUFPLENBQUMsUUFBUSxLQUFSLEdBQWdCLEdBQWhCLEdBQXNCLEdBQXRCLENBQUQsR0FBOEIsS0FBOUIsQ0FEbUM7T0FBaEIsRUFBNUI7OztBQWZvQyxVQW9CaEMsUUFBUSxLQUFSLEVBQWU7QUFDakIsbUJBQVcsTUFBTSxNQUFOLENBRE07T0FBbkIsTUFFTztBQUNMLG1CQUFXLE1BQU0sTUFBTixDQUROO09BRlA7S0FwQkYsTUF5Qk87O0FBRUwsVUFBSSxhQUFKLEVBQW1COztBQUVqQixZQUFJLE1BQU0sTUFBTixJQUFnQixRQUFRLE9BQVIsR0FBa0IsQ0FBbEIsSUFBdUIsSUFBSSxLQUFLLE1BQUwsR0FBYyxDQUFkLEVBQWlCOzs7Ozs7QUFFOUQsa0ZBQVMsSUFBVCwyTEFBa0IsYUFBYSxLQUFiLEVBQWxCLEVBRjhEO1NBQWhFLE1BR087Ozs7OztBQUVMLGNBQUksY0FBYyxLQUFLLEdBQUwsQ0FBUyxNQUFNLE1BQU4sRUFBYyxRQUFRLE9BQVIsQ0FBckMsQ0FGQztBQUdMLGtGQUFTLElBQVQsMkxBQWtCLGFBQWEsTUFBTSxLQUFOLENBQVksQ0FBWixFQUFlLFdBQWYsQ0FBYixFQUFsQixFQUhLOztBQUtMLGNBQUksT0FBTztBQUNULHNCQUFVLGFBQVY7QUFDQSxzQkFBVyxVQUFVLGFBQVYsR0FBMEIsV0FBMUI7QUFDWCxzQkFBVSxhQUFWO0FBQ0Esc0JBQVcsVUFBVSxhQUFWLEdBQTBCLFdBQTFCO0FBQ1gsbUJBQU8sUUFBUDtXQUxFLENBTEM7QUFZTCxjQUFJLEtBQUssS0FBSyxNQUFMLEdBQWMsQ0FBZCxJQUFtQixNQUFNLE1BQU4sSUFBZ0IsUUFBUSxPQUFSLEVBQWlCOztBQUUzRCxnQkFBSSxnQkFBaUIsTUFBTSxJQUFOLENBQVcsTUFBWCxDQUFqQixDQUZ1RDtBQUczRCxnQkFBSSxnQkFBaUIsTUFBTSxJQUFOLENBQVcsTUFBWCxDQUFqQixDQUh1RDtBQUkzRCxnQkFBSSxNQUFNLE1BQU4sSUFBZ0IsQ0FBaEIsSUFBcUIsQ0FBQyxhQUFELEVBQWdCOztBQUV2Qyx1QkFBUyxNQUFULENBQWdCLEtBQUssUUFBTCxFQUFlLENBQS9CLEVBQWtDLDhCQUFsQyxFQUZ1QzthQUF6QyxNQUdPLElBQUksQ0FBQyxhQUFELElBQWtCLENBQUMsYUFBRCxFQUFnQjtBQUMzQyx1QkFBUyxJQUFULENBQWMsOEJBQWQsRUFEMkM7YUFBdEM7V0FQVDtBQVdBLGdCQUFNLElBQU4sQ0FBVyxJQUFYLEVBdkJLOztBQXlCTCwwQkFBZ0IsQ0FBaEIsQ0F6Qks7QUEwQkwsMEJBQWdCLENBQWhCLENBMUJLO0FBMkJMLHFCQUFXLEVBQVgsQ0EzQks7U0FIUDtPQUZGO0FBbUNBLGlCQUFXLE1BQU0sTUFBTixDQXJDTjtBQXNDTCxpQkFBVyxNQUFNLE1BQU4sQ0F0Q047S0F6QlA7SUFwQnFHOztBQWV2RyxPQUFLLElBQUksSUFBSSxDQUFKLEVBQU8sSUFBSSxLQUFLLE1BQUwsRUFBYSxHQUFqQyxFQUFzQzs7a0NBQTdCLEdBQTZCO0dBQXRDOztBQXdFQSxTQUFPO0FBQ0wsaUJBQWEsV0FBYixFQUEwQixhQUFhLFdBQWI7QUFDMUIsZUFBVyxTQUFYLEVBQXNCLFdBQVcsU0FBWDtBQUN0QixXQUFPLEtBQVA7R0FIRixDQXZGdUc7Q0FBbEc7O0FBOEZBLFNBQVMsbUJBQVQsQ0FBNkIsV0FBN0IsRUFBMEMsV0FBMUMsRUFBdUQsTUFBdkQsRUFBK0QsTUFBL0QsRUFBdUUsU0FBdkUsRUFBa0YsU0FBbEYsRUFBNkYsT0FBN0YsRUFBc0c7QUFDM0csTUFBTSxPQUFPLGdCQUFnQixXQUFoQixFQUE2QixXQUE3QixFQUEwQyxNQUExQyxFQUFrRCxNQUFsRCxFQUEwRCxTQUExRCxFQUFxRSxTQUFyRSxFQUFnRixPQUFoRixDQUFQLENBRHFHOztBQUczRyxNQUFNLE1BQU0sRUFBTixDQUhxRztBQUkzRyxNQUFJLGVBQWUsV0FBZixFQUE0QjtBQUM5QixRQUFJLElBQUosQ0FBUyxZQUFZLFdBQVosQ0FBVCxDQUQ4QjtHQUFoQztBQUdBLE1BQUksSUFBSixDQUFTLHFFQUFULEVBUDJHO0FBUTNHLE1BQUksSUFBSixDQUFTLFNBQVMsS0FBSyxXQUFMLElBQW9CLE9BQU8sS0FBSyxTQUFMLEtBQW1CLFdBQTFCLEdBQXdDLEVBQXhDLEdBQTZDLE9BQU8sS0FBSyxTQUFMLENBQWpGLENBQVQsQ0FSMkc7QUFTM0csTUFBSSxJQUFKLENBQVMsU0FBUyxLQUFLLFdBQUwsSUFBb0IsT0FBTyxLQUFLLFNBQUwsS0FBbUIsV0FBMUIsR0FBd0MsRUFBeEMsR0FBNkMsT0FBTyxLQUFLLFNBQUwsQ0FBakYsQ0FBVCxDQVQyRzs7QUFXM0csT0FBSyxJQUFJLElBQUksQ0FBSixFQUFPLElBQUksS0FBSyxLQUFMLENBQVcsTUFBWCxFQUFtQixHQUF2QyxFQUE0QztBQUMxQyxRQUFNLE9BQU8sS0FBSyxLQUFMLENBQVcsQ0FBWCxDQUFQLENBRG9DO0FBRTFDLFFBQUksSUFBSixDQUNFLFNBQVMsS0FBSyxRQUFMLEdBQWdCLEdBQXpCLEdBQStCLEtBQUssUUFBTCxHQUM3QixJQURGLEdBQ1MsS0FBSyxRQUFMLEdBQWdCLEdBRHpCLEdBQytCLEtBQUssUUFBTCxHQUM3QixLQUZGLENBREYsQ0FGMEM7QUFPMUMsUUFBSSxJQUFKLENBQVMsS0FBVCxDQUFlLEdBQWYsRUFBb0IsS0FBSyxLQUFMLENBQXBCLENBUDBDO0dBQTVDOztBQVVBLFNBQU8sSUFBSSxJQUFKLENBQVMsSUFBVCxJQUFpQixJQUFqQixDQXJCb0c7Q0FBdEc7O0FBd0JBLFNBQVMsV0FBVCxDQUFxQixRQUFyQixFQUErQixNQUEvQixFQUF1QyxNQUF2QyxFQUErQyxTQUEvQyxFQUEwRCxTQUExRCxFQUFxRSxPQUFyRSxFQUE4RTtBQUNuRixTQUFPLG9CQUFvQixRQUFwQixFQUE4QixRQUE5QixFQUF3QyxNQUF4QyxFQUFnRCxNQUFoRCxFQUF3RCxTQUF4RCxFQUFtRSxTQUFuRSxFQUE4RSxPQUE5RSxDQUFQLENBRG1GO0NBQTlFIiwiZmlsZSI6ImNyZWF0ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlmZkxpbmVzfSBmcm9tICcuLi9kaWZmL2xpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gc3RydWN0dXJlZFBhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7IGNvbnRleHQ6IDQgfTtcbiAgfVxuXG4gIGNvbnN0IGRpZmYgPSBkaWZmTGluZXMob2xkU3RyLCBuZXdTdHIpO1xuICBkaWZmLnB1c2goe3ZhbHVlOiAnJywgbGluZXM6IFtdfSk7ICAgLy8gQXBwZW5kIGFuIGVtcHR5IHZhbHVlIHRvIG1ha2UgY2xlYW51cCBlYXNpZXJcblxuICBmdW5jdGlvbiBjb250ZXh0TGluZXMobGluZXMpIHtcbiAgICByZXR1cm4gbGluZXMubWFwKGZ1bmN0aW9uKGVudHJ5KSB7IHJldHVybiAnICcgKyBlbnRyeTsgfSk7XG4gIH1cblxuICBsZXQgaHVua3MgPSBbXTtcbiAgbGV0IG9sZFJhbmdlU3RhcnQgPSAwLCBuZXdSYW5nZVN0YXJ0ID0gMCwgY3VyUmFuZ2UgPSBbXSxcbiAgICAgIG9sZExpbmUgPSAxLCBuZXdMaW5lID0gMTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWZmLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY3VycmVudCA9IGRpZmZbaV0sXG4gICAgICAgICAgbGluZXMgPSBjdXJyZW50LmxpbmVzIHx8IGN1cnJlbnQudmFsdWUucmVwbGFjZSgvXFxuJC8sICcnKS5zcGxpdCgnXFxuJyk7XG4gICAgY3VycmVudC5saW5lcyA9IGxpbmVzO1xuXG4gICAgaWYgKGN1cnJlbnQuYWRkZWQgfHwgY3VycmVudC5yZW1vdmVkKSB7XG4gICAgICAvLyBJZiB3ZSBoYXZlIHByZXZpb3VzIGNvbnRleHQsIHN0YXJ0IHdpdGggdGhhdFxuICAgICAgaWYgKCFvbGRSYW5nZVN0YXJ0KSB7XG4gICAgICAgIGNvbnN0IHByZXYgPSBkaWZmW2kgLSAxXTtcbiAgICAgICAgb2xkUmFuZ2VTdGFydCA9IG9sZExpbmU7XG4gICAgICAgIG5ld1JhbmdlU3RhcnQgPSBuZXdMaW5lO1xuXG4gICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgY3VyUmFuZ2UgPSBvcHRpb25zLmNvbnRleHQgPiAwID8gY29udGV4dExpbmVzKHByZXYubGluZXMuc2xpY2UoLW9wdGlvbnMuY29udGV4dCkpIDogW107XG4gICAgICAgICAgb2xkUmFuZ2VTdGFydCAtPSBjdXJSYW5nZS5sZW5ndGg7XG4gICAgICAgICAgbmV3UmFuZ2VTdGFydCAtPSBjdXJSYW5nZS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT3V0cHV0IG91ciBjaGFuZ2VzXG4gICAgICBjdXJSYW5nZS5wdXNoKC4uLiBsaW5lcy5tYXAoZnVuY3Rpb24oZW50cnkpIHtcbiAgICAgICAgcmV0dXJuIChjdXJyZW50LmFkZGVkID8gJysnIDogJy0nKSArIGVudHJ5O1xuICAgICAgfSkpO1xuXG4gICAgICAvLyBUcmFjayB0aGUgdXBkYXRlZCBmaWxlIHBvc2l0aW9uXG4gICAgICBpZiAoY3VycmVudC5hZGRlZCkge1xuICAgICAgICBuZXdMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9sZExpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZGVudGljYWwgY29udGV4dCBsaW5lcy4gVHJhY2sgbGluZSBjaGFuZ2VzXG4gICAgICBpZiAob2xkUmFuZ2VTdGFydCkge1xuICAgICAgICAvLyBDbG9zZSBvdXQgYW55IGNoYW5nZXMgdGhhdCBoYXZlIGJlZW4gb3V0cHV0IChvciBqb2luIG92ZXJsYXBwaW5nKVxuICAgICAgICBpZiAobGluZXMubGVuZ3RoIDw9IG9wdGlvbnMuY29udGV4dCAqIDIgJiYgaSA8IGRpZmYubGVuZ3RoIC0gMikge1xuICAgICAgICAgIC8vIE92ZXJsYXBwaW5nXG4gICAgICAgICAgY3VyUmFuZ2UucHVzaCguLi4gY29udGV4dExpbmVzKGxpbmVzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gZW5kIHRoZSByYW5nZSBhbmQgb3V0cHV0XG4gICAgICAgICAgbGV0IGNvbnRleHRTaXplID0gTWF0aC5taW4obGluZXMubGVuZ3RoLCBvcHRpb25zLmNvbnRleHQpO1xuICAgICAgICAgIGN1clJhbmdlLnB1c2goLi4uIGNvbnRleHRMaW5lcyhsaW5lcy5zbGljZSgwLCBjb250ZXh0U2l6ZSkpKTtcblxuICAgICAgICAgIGxldCBodW5rID0ge1xuICAgICAgICAgICAgb2xkU3RhcnQ6IG9sZFJhbmdlU3RhcnQsXG4gICAgICAgICAgICBvbGRMaW5lczogKG9sZExpbmUgLSBvbGRSYW5nZVN0YXJ0ICsgY29udGV4dFNpemUpLFxuICAgICAgICAgICAgbmV3U3RhcnQ6IG5ld1JhbmdlU3RhcnQsXG4gICAgICAgICAgICBuZXdMaW5lczogKG5ld0xpbmUgLSBuZXdSYW5nZVN0YXJ0ICsgY29udGV4dFNpemUpLFxuICAgICAgICAgICAgbGluZXM6IGN1clJhbmdlXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAoaSA+PSBkaWZmLmxlbmd0aCAtIDIgJiYgbGluZXMubGVuZ3RoIDw9IG9wdGlvbnMuY29udGV4dCkge1xuICAgICAgICAgICAgLy8gRU9GIGlzIGluc2lkZSB0aGlzIGh1bmtcbiAgICAgICAgICAgIGxldCBvbGRFT0ZOZXdsaW5lID0gKC9cXG4kLy50ZXN0KG9sZFN0cikpO1xuICAgICAgICAgICAgbGV0IG5ld0VPRk5ld2xpbmUgPSAoL1xcbiQvLnRlc3QobmV3U3RyKSk7XG4gICAgICAgICAgICBpZiAobGluZXMubGVuZ3RoID09IDAgJiYgIW9sZEVPRk5ld2xpbmUpIHtcbiAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOiBvbGQgaGFzIG5vIGVvbCBhbmQgbm8gdHJhaWxpbmcgY29udGV4dDsgbm8tbmwgY2FuIGVuZCB1cCBiZWZvcmUgYWRkc1xuICAgICAgICAgICAgICBjdXJSYW5nZS5zcGxpY2UoaHVuay5vbGRMaW5lcywgMCwgJ1xcXFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZScpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghb2xkRU9GTmV3bGluZSB8fCAhbmV3RU9GTmV3bGluZSkge1xuICAgICAgICAgICAgICBjdXJSYW5nZS5wdXNoKCdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaHVua3MucHVzaChodW5rKTtcblxuICAgICAgICAgIG9sZFJhbmdlU3RhcnQgPSAwO1xuICAgICAgICAgIG5ld1JhbmdlU3RhcnQgPSAwO1xuICAgICAgICAgIGN1clJhbmdlID0gW107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG9sZExpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgICAgbmV3TGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBvbGRGaWxlTmFtZTogb2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lOiBuZXdGaWxlTmFtZSxcbiAgICBvbGRIZWFkZXI6IG9sZEhlYWRlciwgbmV3SGVhZGVyOiBuZXdIZWFkZXIsXG4gICAgaHVua3M6IGh1bmtzXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUd29GaWxlc1BhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKSB7XG4gIGNvbnN0IGRpZmYgPSBzdHJ1Y3R1cmVkUGF0Y2gob2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IHJldCA9IFtdO1xuICBpZiAob2xkRmlsZU5hbWUgPT0gbmV3RmlsZU5hbWUpIHtcbiAgICByZXQucHVzaCgnSW5kZXg6ICcgKyBvbGRGaWxlTmFtZSk7XG4gIH1cbiAgcmV0LnB1c2goJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nKTtcbiAgcmV0LnB1c2goJy0tLSAnICsgZGlmZi5vbGRGaWxlTmFtZSArICh0eXBlb2YgZGlmZi5vbGRIZWFkZXIgPT09ICd1bmRlZmluZWQnID8gJycgOiAnXFx0JyArIGRpZmYub2xkSGVhZGVyKSk7XG4gIHJldC5wdXNoKCcrKysgJyArIGRpZmYubmV3RmlsZU5hbWUgKyAodHlwZW9mIGRpZmYubmV3SGVhZGVyID09PSAndW5kZWZpbmVkJyA/ICcnIDogJ1xcdCcgKyBkaWZmLm5ld0hlYWRlcikpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZi5odW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGh1bmsgPSBkaWZmLmh1bmtzW2ldO1xuICAgIHJldC5wdXNoKFxuICAgICAgJ0BAIC0nICsgaHVuay5vbGRTdGFydCArICcsJyArIGh1bmsub2xkTGluZXNcbiAgICAgICsgJyArJyArIGh1bmsubmV3U3RhcnQgKyAnLCcgKyBodW5rLm5ld0xpbmVzXG4gICAgICArICcgQEAnXG4gICAgKTtcbiAgICByZXQucHVzaC5hcHBseShyZXQsIGh1bmsubGluZXMpO1xuICB9XG5cbiAgcmV0dXJuIHJldC5qb2luKCdcXG4nKSArICdcXG4nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGF0Y2goZmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucykge1xuICByZXR1cm4gY3JlYXRlVHdvRmlsZXNQYXRjaChmaWxlTmFtZSwgZmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucyk7XG59XG4iXX0=
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/merge.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/merge.js
      deleted file mode 100644
      index dd9df3b8..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/merge.js
      +++ /dev/null
      @@ -1,380 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports. /*istanbul ignore end*/calcLineCount = calcLineCount;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/merge = merge;
      -
      -var /*istanbul ignore start*/_create = require('./create') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_parse = require('./parse') /*istanbul ignore end*/;
      -
      -var /*istanbul ignore start*/_array = require('../util/array') /*istanbul ignore end*/;
      -
      -/*istanbul ignore start*/
      -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
      -
      -/*istanbul ignore end*/function calcLineCount(hunk) {
      -  var conflicted = false;
      -
      -  hunk.oldLines = 0;
      -  hunk.newLines = 0;
      -
      -  hunk.lines.forEach(function (line) {
      -    if (typeof line !== 'string') {
      -      conflicted = true;
      -      return;
      -    }
      -
      -    if (line[0] === '+' || line[0] === ' ') {
      -      hunk.newLines++;
      -    }
      -    if (line[0] === '-' || line[0] === ' ') {
      -      hunk.oldLines++;
      -    }
      -  });
      -
      -  if (conflicted) {
      -    delete hunk.oldLines;
      -    delete hunk.newLines;
      -  }
      -}
      -
      -function merge(mine, theirs, base) {
      -  mine = loadPatch(mine, base);
      -  theirs = loadPatch(theirs, base);
      -
      -  var ret = {};
      -
      -  // For index we just let it pass through as it doesn't have any necessary meaning.
      -  // Leaving sanity checks on this to the API consumer that may know more about the
      -  // meaning in their own context.
      -  if (mine.index || theirs.index) {
      -    ret.index = mine.index || theirs.index;
      -  }
      -
      -  if (mine.newFileName || theirs.newFileName) {
      -    if (!fileNameChanged(mine)) {
      -      // No header or no change in ours, use theirs (and ours if theirs does not exist)
      -      ret.oldFileName = theirs.oldFileName || mine.oldFileName;
      -      ret.newFileName = theirs.newFileName || mine.newFileName;
      -      ret.oldHeader = theirs.oldHeader || mine.oldHeader;
      -      ret.newHeader = theirs.newHeader || mine.newHeader;
      -    } else if (!fileNameChanged(theirs)) {
      -      // No header or no change in theirs, use ours
      -      ret.oldFileName = mine.oldFileName;
      -      ret.newFileName = mine.newFileName;
      -      ret.oldHeader = mine.oldHeader;
      -      ret.newHeader = mine.newHeader;
      -    } else {
      -      // Both changed... figure it out
      -      ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);
      -      ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);
      -      ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);
      -      ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);
      -    }
      -  }
      -
      -  ret.hunks = [];
      -
      -  var mineIndex = 0,
      -      theirsIndex = 0,
      -      mineOffset = 0,
      -      theirsOffset = 0;
      -
      -  while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {
      -    var mineCurrent = mine.hunks[mineIndex] || { oldStart: Infinity },
      -        theirsCurrent = theirs.hunks[theirsIndex] || { oldStart: Infinity };
      -
      -    if (hunkBefore(mineCurrent, theirsCurrent)) {
      -      // This patch does not overlap with any of the others, yay.
      -      ret.hunks.push(cloneHunk(mineCurrent, mineOffset));
      -      mineIndex++;
      -      theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;
      -    } else if (hunkBefore(theirsCurrent, mineCurrent)) {
      -      // This patch does not overlap with any of the others, yay.
      -      ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));
      -      theirsIndex++;
      -      mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;
      -    } else {
      -      // Overlap, merge as best we can
      -      var mergedHunk = {
      -        oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),
      -        oldLines: 0,
      -        newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),
      -        newLines: 0,
      -        lines: []
      -      };
      -      mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);
      -      theirsIndex++;
      -      mineIndex++;
      -
      -      ret.hunks.push(mergedHunk);
      -    }
      -  }
      -
      -  return ret;
      -}
      -
      -function loadPatch(param, base) {
      -  if (typeof param === 'string') {
      -    if (/^@@/m.test(param) || /^Index:/m.test(param)) {
      -      return (/*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(param)[0]
      -      );
      -    }
      -
      -    if (!base) {
      -      throw new Error('Must provide a base reference or pass in a patch');
      -    }
      -    return (/*istanbul ignore start*/(0, _create.structuredPatch) /*istanbul ignore end*/(undefined, undefined, base, param)
      -    );
      -  }
      -
      -  return param;
      -}
      -
      -function fileNameChanged(patch) {
      -  return patch.newFileName && patch.newFileName !== patch.oldFileName;
      -}
      -
      -function selectField(index, mine, theirs) {
      -  if (mine === theirs) {
      -    return mine;
      -  } else {
      -    index.conflict = true;
      -    return { mine: mine, theirs: theirs };
      -  }
      -}
      -
      -function hunkBefore(test, check) {
      -  return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;
      -}
      -
      -function cloneHunk(hunk, offset) {
      -  return {
      -    oldStart: hunk.oldStart, oldLines: hunk.oldLines,
      -    newStart: hunk.newStart + offset, newLines: hunk.newLines,
      -    lines: hunk.lines
      -  };
      -}
      -
      -function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {
      -  // This will generally result in a conflicted hunk, but there are cases where the context
      -  // is the only overlap where we can successfully merge the content here.
      -  var mine = { offset: mineOffset, lines: mineLines, index: 0 },
      -      their = { offset: theirOffset, lines: theirLines, index: 0 };
      -
      -  // Handle any leading content
      -  insertLeading(hunk, mine, their);
      -  insertLeading(hunk, their, mine);
      -
      -  // Now in the overlap content. Scan through and select the best changes from each.
      -  while (mine.index < mine.lines.length && their.index < their.lines.length) {
      -    var mineCurrent = mine.lines[mine.index],
      -        theirCurrent = their.lines[their.index];
      -
      -    if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {
      -      // Both modified ...
      -      mutualChange(hunk, mine, their);
      -    } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {
      -      /*istanbul ignore start*/
      -      var _hunk$lines;
      -
      -      /*istanbul ignore end*/
      -      // Mine inserted
      -      /*istanbul ignore start*/(_hunk$lines = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(mine)));
      -    } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {
      -      /*istanbul ignore start*/
      -      var _hunk$lines2;
      -
      -      /*istanbul ignore end*/
      -      // Theirs inserted
      -      /*istanbul ignore start*/(_hunk$lines2 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(their)));
      -    } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {
      -      // Mine removed or edited
      -      removal(hunk, mine, their);
      -    } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {
      -      // Their removed or edited
      -      removal(hunk, their, mine, true);
      -    } else if (mineCurrent === theirCurrent) {
      -      // Context identity
      -      hunk.lines.push(mineCurrent);
      -      mine.index++;
      -      their.index++;
      -    } else {
      -      // Context mismatch
      -      conflict(hunk, collectChange(mine), collectChange(their));
      -    }
      -  }
      -
      -  // Now push anything that may be remaining
      -  insertTrailing(hunk, mine);
      -  insertTrailing(hunk, their);
      -
      -  calcLineCount(hunk);
      -}
      -
      -function mutualChange(hunk, mine, their) {
      -  var myChanges = collectChange(mine),
      -      theirChanges = collectChange(their);
      -
      -  if (allRemoves(myChanges) && allRemoves(theirChanges)) {
      -    // Special case for remove changes that are supersets of one another
      -    if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {
      -      /*istanbul ignore start*/
      -      var _hunk$lines3;
      -
      -      /*istanbul ignore end*/
      -      /*istanbul ignore start*/(_hunk$lines3 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges));
      -      return;
      -    } else if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {
      -      /*istanbul ignore start*/
      -      var _hunk$lines4;
      -
      -      /*istanbul ignore end*/
      -      /*istanbul ignore start*/(_hunk$lines4 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines4 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges));
      -      return;
      -    }
      -  } else if ( /*istanbul ignore start*/(0, _array.arrayEqual) /*istanbul ignore end*/(myChanges, theirChanges)) {
      -    /*istanbul ignore start*/
      -    var _hunk$lines5;
      -
      -    /*istanbul ignore end*/
      -    /*istanbul ignore start*/(_hunk$lines5 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines5 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges));
      -    return;
      -  }
      -
      -  conflict(hunk, myChanges, theirChanges);
      -}
      -
      -function removal(hunk, mine, their, swap) {
      -  var myChanges = collectChange(mine),
      -      theirChanges = collectContext(their, myChanges);
      -  if (theirChanges.merged) {
      -    /*istanbul ignore start*/
      -    var _hunk$lines6;
      -
      -    /*istanbul ignore end*/
      -    /*istanbul ignore start*/(_hunk$lines6 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines6 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges.merged));
      -  } else {
      -    conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);
      -  }
      -}
      -
      -function conflict(hunk, mine, their) {
      -  hunk.conflict = true;
      -  hunk.lines.push({
      -    conflict: true,
      -    mine: mine,
      -    theirs: their
      -  });
      -}
      -
      -function insertLeading(hunk, insert, their) {
      -  while (insert.offset < their.offset && insert.index < insert.lines.length) {
      -    var line = insert.lines[insert.index++];
      -    hunk.lines.push(line);
      -    insert.offset++;
      -  }
      -}
      -function insertTrailing(hunk, insert) {
      -  while (insert.index < insert.lines.length) {
      -    var line = insert.lines[insert.index++];
      -    hunk.lines.push(line);
      -  }
      -}
      -
      -function collectChange(state) {
      -  var ret = [],
      -      operation = state.lines[state.index][0];
      -  while (state.index < state.lines.length) {
      -    var line = state.lines[state.index];
      -
      -    // Group additions that are immediately after subtractions and treat them as one "atomic" modify change.
      -    if (operation === '-' && line[0] === '+') {
      -      operation = '+';
      -    }
      -
      -    if (operation === line[0]) {
      -      ret.push(line);
      -      state.index++;
      -    } else {
      -      break;
      -    }
      -  }
      -
      -  return ret;
      -}
      -function collectContext(state, matchChanges) {
      -  var changes = [],
      -      merged = [],
      -      matchIndex = 0,
      -      contextChanges = false,
      -      conflicted = false;
      -  while (matchIndex < matchChanges.length && state.index < state.lines.length) {
      -    var change = state.lines[state.index],
      -        match = matchChanges[matchIndex];
      -
      -    // Once we've hit our add, then we are done
      -    if (match[0] === '+') {
      -      break;
      -    }
      -
      -    contextChanges = contextChanges || change[0] !== ' ';
      -
      -    merged.push(match);
      -    matchIndex++;
      -
      -    // Consume any additions in the other block as a conflict to attempt
      -    // to pull in the remaining context after this
      -    if (change[0] === '+') {
      -      conflicted = true;
      -
      -      while (change[0] === '+') {
      -        changes.push(change);
      -        change = state.lines[++state.index];
      -      }
      -    }
      -
      -    if (match.substr(1) === change.substr(1)) {
      -      changes.push(change);
      -      state.index++;
      -    } else {
      -      conflicted = true;
      -    }
      -  }
      -
      -  if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {
      -    conflicted = true;
      -  }
      -
      -  if (conflicted) {
      -    return changes;
      -  }
      -
      -  while (matchIndex < matchChanges.length) {
      -    merged.push(matchChanges[matchIndex++]);
      -  }
      -
      -  return {
      -    merged: merged,
      -    changes: changes
      -  };
      -}
      -
      -function allRemoves(changes) {
      -  return changes.reduce(function (prev, change) {
      -    return prev && change[0] === '-';
      -  }, true);
      -}
      -function skipRemoveSuperset(state, removeChanges, delta) {
      -  for (var i = 0; i < delta; i++) {
      -    var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);
      -    if (state.lines[state.index + i] !== ' ' + changeContent) {
      -      return false;
      -    }
      -  }
      -
      -  state.index += delta;
      -  return true;
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9tZXJnZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBS2dCO3lEQTBCQTs7QUEvQmhCOztBQUNBOztBQUVBOzs7Ozt1QkFFTyxTQUFTLGFBQVQsQ0FBdUIsSUFBdkIsRUFBNkI7QUFDbEMsTUFBSSxhQUFhLEtBQWIsQ0FEOEI7O0FBR2xDLE9BQUssUUFBTCxHQUFnQixDQUFoQixDQUhrQztBQUlsQyxPQUFLLFFBQUwsR0FBZ0IsQ0FBaEIsQ0FKa0M7O0FBTWxDLE9BQUssS0FBTCxDQUFXLE9BQVgsQ0FBbUIsVUFBUyxJQUFULEVBQWU7QUFDaEMsUUFBSSxPQUFPLElBQVAsS0FBZ0IsUUFBaEIsRUFBMEI7QUFDNUIsbUJBQWEsSUFBYixDQUQ0QjtBQUU1QixhQUY0QjtLQUE5Qjs7QUFLQSxRQUFJLEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUIsS0FBSyxDQUFMLE1BQVksR0FBWixFQUFpQjtBQUN0QyxXQUFLLFFBQUwsR0FEc0M7S0FBeEM7QUFHQSxRQUFJLEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUIsS0FBSyxDQUFMLE1BQVksR0FBWixFQUFpQjtBQUN0QyxXQUFLLFFBQUwsR0FEc0M7S0FBeEM7R0FUaUIsQ0FBbkIsQ0FOa0M7O0FBb0JsQyxNQUFJLFVBQUosRUFBZ0I7QUFDZCxXQUFPLEtBQUssUUFBTCxDQURPO0FBRWQsV0FBTyxLQUFLLFFBQUwsQ0FGTztHQUFoQjtDQXBCSzs7QUEwQkEsU0FBUyxLQUFULENBQWUsSUFBZixFQUFxQixNQUFyQixFQUE2QixJQUE3QixFQUFtQztBQUN4QyxTQUFPLFVBQVUsSUFBVixFQUFnQixJQUFoQixDQUFQLENBRHdDO0FBRXhDLFdBQVMsVUFBVSxNQUFWLEVBQWtCLElBQWxCLENBQVQsQ0FGd0M7O0FBSXhDLE1BQUksTUFBTSxFQUFOOzs7OztBQUpvQyxNQVNwQyxLQUFLLEtBQUwsSUFBYyxPQUFPLEtBQVAsRUFBYztBQUM5QixRQUFJLEtBQUosR0FBWSxLQUFLLEtBQUwsSUFBYyxPQUFPLEtBQVAsQ0FESTtHQUFoQzs7QUFJQSxNQUFJLEtBQUssV0FBTCxJQUFvQixPQUFPLFdBQVAsRUFBb0I7QUFDMUMsUUFBSSxDQUFDLGdCQUFnQixJQUFoQixDQUFELEVBQXdCOztBQUUxQixVQUFJLFdBQUosR0FBa0IsT0FBTyxXQUFQLElBQXNCLEtBQUssV0FBTCxDQUZkO0FBRzFCLFVBQUksV0FBSixHQUFrQixPQUFPLFdBQVAsSUFBc0IsS0FBSyxXQUFMLENBSGQ7QUFJMUIsVUFBSSxTQUFKLEdBQWdCLE9BQU8sU0FBUCxJQUFvQixLQUFLLFNBQUwsQ0FKVjtBQUsxQixVQUFJLFNBQUosR0FBZ0IsT0FBTyxTQUFQLElBQW9CLEtBQUssU0FBTCxDQUxWO0tBQTVCLE1BTU8sSUFBSSxDQUFDLGdCQUFnQixNQUFoQixDQUFELEVBQTBCOztBQUVuQyxVQUFJLFdBQUosR0FBa0IsS0FBSyxXQUFMLENBRmlCO0FBR25DLFVBQUksV0FBSixHQUFrQixLQUFLLFdBQUwsQ0FIaUI7QUFJbkMsVUFBSSxTQUFKLEdBQWdCLEtBQUssU0FBTCxDQUptQjtBQUtuQyxVQUFJLFNBQUosR0FBZ0IsS0FBSyxTQUFMLENBTG1CO0tBQTlCLE1BTUE7O0FBRUwsVUFBSSxXQUFKLEdBQWtCLFlBQVksR0FBWixFQUFpQixLQUFLLFdBQUwsRUFBa0IsT0FBTyxXQUFQLENBQXJELENBRks7QUFHTCxVQUFJLFdBQUosR0FBa0IsWUFBWSxHQUFaLEVBQWlCLEtBQUssV0FBTCxFQUFrQixPQUFPLFdBQVAsQ0FBckQsQ0FISztBQUlMLFVBQUksU0FBSixHQUFnQixZQUFZLEdBQVosRUFBaUIsS0FBSyxTQUFMLEVBQWdCLE9BQU8sU0FBUCxDQUFqRCxDQUpLO0FBS0wsVUFBSSxTQUFKLEdBQWdCLFlBQVksR0FBWixFQUFpQixLQUFLLFNBQUwsRUFBZ0IsT0FBTyxTQUFQLENBQWpELENBTEs7S0FOQTtHQVBUOztBQXNCQSxNQUFJLEtBQUosR0FBWSxFQUFaLENBbkN3Qzs7QUFxQ3hDLE1BQUksWUFBWSxDQUFaO01BQ0EsY0FBYyxDQUFkO01BQ0EsYUFBYSxDQUFiO01BQ0EsZUFBZSxDQUFmLENBeENvQzs7QUEwQ3hDLFNBQU8sWUFBWSxLQUFLLEtBQUwsQ0FBVyxNQUFYLElBQXFCLGNBQWMsT0FBTyxLQUFQLENBQWEsTUFBYixFQUFxQjtBQUN6RSxRQUFJLGNBQWMsS0FBSyxLQUFMLENBQVcsU0FBWCxLQUF5QixFQUFDLFVBQVUsUUFBVixFQUExQjtRQUNkLGdCQUFnQixPQUFPLEtBQVAsQ0FBYSxXQUFiLEtBQTZCLEVBQUMsVUFBVSxRQUFWLEVBQTlCLENBRnFEOztBQUl6RSxRQUFJLFdBQVcsV0FBWCxFQUF3QixhQUF4QixDQUFKLEVBQTRDOztBQUUxQyxVQUFJLEtBQUosQ0FBVSxJQUFWLENBQWUsVUFBVSxXQUFWLEVBQXVCLFVBQXZCLENBQWYsRUFGMEM7QUFHMUMsa0JBSDBDO0FBSTFDLHNCQUFnQixZQUFZLFFBQVosR0FBdUIsWUFBWSxRQUFaLENBSkc7S0FBNUMsTUFLTyxJQUFJLFdBQVcsYUFBWCxFQUEwQixXQUExQixDQUFKLEVBQTRDOztBQUVqRCxVQUFJLEtBQUosQ0FBVSxJQUFWLENBQWUsVUFBVSxhQUFWLEVBQXlCLFlBQXpCLENBQWYsRUFGaUQ7QUFHakQsb0JBSGlEO0FBSWpELG9CQUFjLGNBQWMsUUFBZCxHQUF5QixjQUFjLFFBQWQsQ0FKVTtLQUE1QyxNQUtBOztBQUVMLFVBQUksYUFBYTtBQUNmLGtCQUFVLEtBQUssR0FBTCxDQUFTLFlBQVksUUFBWixFQUFzQixjQUFjLFFBQWQsQ0FBekM7QUFDQSxrQkFBVSxDQUFWO0FBQ0Esa0JBQVUsS0FBSyxHQUFMLENBQVMsWUFBWSxRQUFaLEdBQXVCLFVBQXZCLEVBQW1DLGNBQWMsUUFBZCxHQUF5QixZQUF6QixDQUF0RDtBQUNBLGtCQUFVLENBQVY7QUFDQSxlQUFPLEVBQVA7T0FMRSxDQUZDO0FBU0wsaUJBQVcsVUFBWCxFQUF1QixZQUFZLFFBQVosRUFBc0IsWUFBWSxLQUFaLEVBQW1CLGNBQWMsUUFBZCxFQUF3QixjQUFjLEtBQWQsQ0FBeEYsQ0FUSztBQVVMLG9CQVZLO0FBV0wsa0JBWEs7O0FBYUwsVUFBSSxLQUFKLENBQVUsSUFBVixDQUFlLFVBQWYsRUFiSztLQUxBO0dBVFQ7O0FBK0JBLFNBQU8sR0FBUCxDQXpFd0M7Q0FBbkM7O0FBNEVQLFNBQVMsU0FBVCxDQUFtQixLQUFuQixFQUEwQixJQUExQixFQUFnQztBQUM5QixNQUFJLE9BQU8sS0FBUCxLQUFpQixRQUFqQixFQUEyQjtBQUM3QixRQUFJLE9BQU8sSUFBUCxDQUFZLEtBQVosS0FBdUIsV0FBVyxJQUFYLENBQWdCLEtBQWhCLENBQXZCLEVBQWdEO0FBQ2xELGFBQU8seUVBQVcsS0FBWCxFQUFrQixDQUFsQixDQUFQO1FBRGtEO0tBQXBEOztBQUlBLFFBQUksQ0FBQyxJQUFELEVBQU87QUFDVCxZQUFNLElBQUksS0FBSixDQUFVLGtEQUFWLENBQU4sQ0FEUztLQUFYO0FBR0EsV0FBTywrRUFBZ0IsU0FBaEIsRUFBMkIsU0FBM0IsRUFBc0MsSUFBdEMsRUFBNEMsS0FBNUMsQ0FBUDtNQVI2QjtHQUEvQjs7QUFXQSxTQUFPLEtBQVAsQ0FaOEI7Q0FBaEM7O0FBZUEsU0FBUyxlQUFULENBQXlCLEtBQXpCLEVBQWdDO0FBQzlCLFNBQU8sTUFBTSxXQUFOLElBQXFCLE1BQU0sV0FBTixLQUFzQixNQUFNLFdBQU4sQ0FEcEI7Q0FBaEM7O0FBSUEsU0FBUyxXQUFULENBQXFCLEtBQXJCLEVBQTRCLElBQTVCLEVBQWtDLE1BQWxDLEVBQTBDO0FBQ3hDLE1BQUksU0FBUyxNQUFULEVBQWlCO0FBQ25CLFdBQU8sSUFBUCxDQURtQjtHQUFyQixNQUVPO0FBQ0wsVUFBTSxRQUFOLEdBQWlCLElBQWpCLENBREs7QUFFTCxXQUFPLEVBQUMsVUFBRCxFQUFPLGNBQVAsRUFBUCxDQUZLO0dBRlA7Q0FERjs7QUFTQSxTQUFTLFVBQVQsQ0FBb0IsSUFBcEIsRUFBMEIsS0FBMUIsRUFBaUM7QUFDL0IsU0FBTyxLQUFLLFFBQUwsR0FBZ0IsTUFBTSxRQUFOLElBQ2xCLElBQUMsQ0FBSyxRQUFMLEdBQWdCLEtBQUssUUFBTCxHQUFpQixNQUFNLFFBQU4sQ0FGUjtDQUFqQzs7QUFLQSxTQUFTLFNBQVQsQ0FBbUIsSUFBbkIsRUFBeUIsTUFBekIsRUFBaUM7QUFDL0IsU0FBTztBQUNMLGNBQVUsS0FBSyxRQUFMLEVBQWUsVUFBVSxLQUFLLFFBQUw7QUFDbkMsY0FBVSxLQUFLLFFBQUwsR0FBZ0IsTUFBaEIsRUFBd0IsVUFBVSxLQUFLLFFBQUw7QUFDNUMsV0FBTyxLQUFLLEtBQUw7R0FIVCxDQUQrQjtDQUFqQzs7QUFRQSxTQUFTLFVBQVQsQ0FBb0IsSUFBcEIsRUFBMEIsVUFBMUIsRUFBc0MsU0FBdEMsRUFBaUQsV0FBakQsRUFBOEQsVUFBOUQsRUFBMEU7OztBQUd4RSxNQUFJLE9BQU8sRUFBQyxRQUFRLFVBQVIsRUFBb0IsT0FBTyxTQUFQLEVBQWtCLE9BQU8sQ0FBUCxFQUE5QztNQUNBLFFBQVEsRUFBQyxRQUFRLFdBQVIsRUFBcUIsT0FBTyxVQUFQLEVBQW1CLE9BQU8sQ0FBUCxFQUFqRDs7O0FBSm9FLGVBT3hFLENBQWMsSUFBZCxFQUFvQixJQUFwQixFQUEwQixLQUExQixFQVB3RTtBQVF4RSxnQkFBYyxJQUFkLEVBQW9CLEtBQXBCLEVBQTJCLElBQTNCOzs7QUFSd0UsU0FXakUsS0FBSyxLQUFMLEdBQWEsS0FBSyxLQUFMLENBQVcsTUFBWCxJQUFxQixNQUFNLEtBQU4sR0FBYyxNQUFNLEtBQU4sQ0FBWSxNQUFaLEVBQW9CO0FBQ3pFLFFBQUksY0FBYyxLQUFLLEtBQUwsQ0FBVyxLQUFLLEtBQUwsQ0FBekI7UUFDQSxlQUFlLE1BQU0sS0FBTixDQUFZLE1BQU0sS0FBTixDQUEzQixDQUZxRTs7QUFJekUsUUFBSSxDQUFDLFlBQVksQ0FBWixNQUFtQixHQUFuQixJQUEwQixZQUFZLENBQVosTUFBbUIsR0FBbkIsQ0FBM0IsS0FDSSxhQUFhLENBQWIsTUFBb0IsR0FBcEIsSUFBMkIsYUFBYSxDQUFiLE1BQW9CLEdBQXBCLENBRC9CLEVBQ3lEOztBQUUzRCxtQkFBYSxJQUFiLEVBQW1CLElBQW5CLEVBQXlCLEtBQXpCLEVBRjJEO0tBRDdELE1BSU8sSUFBSSxZQUFZLENBQVosTUFBbUIsR0FBbkIsSUFBMEIsYUFBYSxDQUFiLE1BQW9CLEdBQXBCLEVBQXlCOzs7Ozs7QUFFNUQsMEVBQUssS0FBTCxFQUFXLElBQVgsNExBQW9CLGNBQWMsSUFBZCxFQUFwQixFQUY0RDtLQUF2RCxNQUdBLElBQUksYUFBYSxDQUFiLE1BQW9CLEdBQXBCLElBQTJCLFlBQVksQ0FBWixNQUFtQixHQUFuQixFQUF3Qjs7Ozs7O0FBRTVELDJFQUFLLEtBQUwsRUFBVyxJQUFYLDZMQUFvQixjQUFjLEtBQWQsRUFBcEIsRUFGNEQ7S0FBdkQsTUFHQSxJQUFJLFlBQVksQ0FBWixNQUFtQixHQUFuQixJQUEwQixhQUFhLENBQWIsTUFBb0IsR0FBcEIsRUFBeUI7O0FBRTVELGNBQVEsSUFBUixFQUFjLElBQWQsRUFBb0IsS0FBcEIsRUFGNEQ7S0FBdkQsTUFHQSxJQUFJLGFBQWEsQ0FBYixNQUFvQixHQUFwQixJQUEyQixZQUFZLENBQVosTUFBbUIsR0FBbkIsRUFBd0I7O0FBRTVELGNBQVEsSUFBUixFQUFjLEtBQWQsRUFBcUIsSUFBckIsRUFBMkIsSUFBM0IsRUFGNEQ7S0FBdkQsTUFHQSxJQUFJLGdCQUFnQixZQUFoQixFQUE4Qjs7QUFFdkMsV0FBSyxLQUFMLENBQVcsSUFBWCxDQUFnQixXQUFoQixFQUZ1QztBQUd2QyxXQUFLLEtBQUwsR0FIdUM7QUFJdkMsWUFBTSxLQUFOLEdBSnVDO0tBQWxDLE1BS0E7O0FBRUwsZUFBUyxJQUFULEVBQWUsY0FBYyxJQUFkLENBQWYsRUFBb0MsY0FBYyxLQUFkLENBQXBDLEVBRks7S0FMQTtHQXBCVDs7O0FBWHdFLGdCQTJDeEUsQ0FBZSxJQUFmLEVBQXFCLElBQXJCLEVBM0N3RTtBQTRDeEUsaUJBQWUsSUFBZixFQUFxQixLQUFyQixFQTVDd0U7O0FBOEN4RSxnQkFBYyxJQUFkLEVBOUN3RTtDQUExRTs7QUFpREEsU0FBUyxZQUFULENBQXNCLElBQXRCLEVBQTRCLElBQTVCLEVBQWtDLEtBQWxDLEVBQXlDO0FBQ3ZDLE1BQUksWUFBWSxjQUFjLElBQWQsQ0FBWjtNQUNBLGVBQWUsY0FBYyxLQUFkLENBQWYsQ0FGbUM7O0FBSXZDLE1BQUksV0FBVyxTQUFYLEtBQXlCLFdBQVcsWUFBWCxDQUF6QixFQUFtRDs7QUFFckQsUUFBSSw4RUFBZ0IsU0FBaEIsRUFBMkIsWUFBM0IsS0FDRyxtQkFBbUIsS0FBbkIsRUFBMEIsU0FBMUIsRUFBcUMsVUFBVSxNQUFWLEdBQW1CLGFBQWEsTUFBYixDQUQzRCxFQUNpRjs7Ozs7QUFDbkYsMkVBQUssS0FBTCxFQUFXLElBQVgsNkxBQW9CLFVBQXBCLEVBRG1GO0FBRW5GLGFBRm1GO0tBRHJGLE1BSU8sSUFBSSw4RUFBZ0IsWUFBaEIsRUFBOEIsU0FBOUIsS0FDSixtQkFBbUIsSUFBbkIsRUFBeUIsWUFBekIsRUFBdUMsYUFBYSxNQUFiLEdBQXNCLFVBQVUsTUFBVixDQUR6RCxFQUM0RTs7Ozs7QUFDckYsMkVBQUssS0FBTCxFQUFXLElBQVgsNkxBQW9CLGFBQXBCLEVBRHFGO0FBRXJGLGFBRnFGO0tBRGhGO0dBTlQsTUFXTyxJQUFJLHlFQUFXLFNBQVgsRUFBc0IsWUFBdEIsQ0FBSixFQUF5Qzs7Ozs7QUFDOUMseUVBQUssS0FBTCxFQUFXLElBQVgsNkxBQW9CLFVBQXBCLEVBRDhDO0FBRTlDLFdBRjhDO0dBQXpDOztBQUtQLFdBQVMsSUFBVCxFQUFlLFNBQWYsRUFBMEIsWUFBMUIsRUFwQnVDO0NBQXpDOztBQXVCQSxTQUFTLE9BQVQsQ0FBaUIsSUFBakIsRUFBdUIsSUFBdkIsRUFBNkIsS0FBN0IsRUFBb0MsSUFBcEMsRUFBMEM7QUFDeEMsTUFBSSxZQUFZLGNBQWMsSUFBZCxDQUFaO01BQ0EsZUFBZSxlQUFlLEtBQWYsRUFBc0IsU0FBdEIsQ0FBZixDQUZvQztBQUd4QyxNQUFJLGFBQWEsTUFBYixFQUFxQjs7Ozs7QUFDdkIseUVBQUssS0FBTCxFQUFXLElBQVgsNkxBQW9CLGFBQWEsTUFBYixDQUFwQixFQUR1QjtHQUF6QixNQUVPO0FBQ0wsYUFBUyxJQUFULEVBQWUsT0FBTyxZQUFQLEdBQXNCLFNBQXRCLEVBQWlDLE9BQU8sU0FBUCxHQUFtQixZQUFuQixDQUFoRCxDQURLO0dBRlA7Q0FIRjs7QUFVQSxTQUFTLFFBQVQsQ0FBa0IsSUFBbEIsRUFBd0IsSUFBeEIsRUFBOEIsS0FBOUIsRUFBcUM7QUFDbkMsT0FBSyxRQUFMLEdBQWdCLElBQWhCLENBRG1DO0FBRW5DLE9BQUssS0FBTCxDQUFXLElBQVgsQ0FBZ0I7QUFDZCxjQUFVLElBQVY7QUFDQSxVQUFNLElBQU47QUFDQSxZQUFRLEtBQVI7R0FIRixFQUZtQztDQUFyQzs7QUFTQSxTQUFTLGFBQVQsQ0FBdUIsSUFBdkIsRUFBNkIsTUFBN0IsRUFBcUMsS0FBckMsRUFBNEM7QUFDMUMsU0FBTyxPQUFPLE1BQVAsR0FBZ0IsTUFBTSxNQUFOLElBQWdCLE9BQU8sS0FBUCxHQUFlLE9BQU8sS0FBUCxDQUFhLE1BQWIsRUFBcUI7QUFDekUsUUFBSSxPQUFPLE9BQU8sS0FBUCxDQUFhLE9BQU8sS0FBUCxFQUFiLENBQVAsQ0FEcUU7QUFFekUsU0FBSyxLQUFMLENBQVcsSUFBWCxDQUFnQixJQUFoQixFQUZ5RTtBQUd6RSxXQUFPLE1BQVAsR0FIeUU7R0FBM0U7Q0FERjtBQU9BLFNBQVMsY0FBVCxDQUF3QixJQUF4QixFQUE4QixNQUE5QixFQUFzQztBQUNwQyxTQUFPLE9BQU8sS0FBUCxHQUFlLE9BQU8sS0FBUCxDQUFhLE1BQWIsRUFBcUI7QUFDekMsUUFBSSxPQUFPLE9BQU8sS0FBUCxDQUFhLE9BQU8sS0FBUCxFQUFiLENBQVAsQ0FEcUM7QUFFekMsU0FBSyxLQUFMLENBQVcsSUFBWCxDQUFnQixJQUFoQixFQUZ5QztHQUEzQztDQURGOztBQU9BLFNBQVMsYUFBVCxDQUF1QixLQUF2QixFQUE4QjtBQUM1QixNQUFJLE1BQU0sRUFBTjtNQUNBLFlBQVksTUFBTSxLQUFOLENBQVksTUFBTSxLQUFOLENBQVosQ0FBeUIsQ0FBekIsQ0FBWixDQUZ3QjtBQUc1QixTQUFPLE1BQU0sS0FBTixHQUFjLE1BQU0sS0FBTixDQUFZLE1BQVosRUFBb0I7QUFDdkMsUUFBSSxPQUFPLE1BQU0sS0FBTixDQUFZLE1BQU0sS0FBTixDQUFuQjs7O0FBRG1DLFFBSW5DLGNBQWMsR0FBZCxJQUFxQixLQUFLLENBQUwsTUFBWSxHQUFaLEVBQWlCO0FBQ3hDLGtCQUFZLEdBQVosQ0FEd0M7S0FBMUM7O0FBSUEsUUFBSSxjQUFjLEtBQUssQ0FBTCxDQUFkLEVBQXVCO0FBQ3pCLFVBQUksSUFBSixDQUFTLElBQVQsRUFEeUI7QUFFekIsWUFBTSxLQUFOLEdBRnlCO0tBQTNCLE1BR087QUFDTCxZQURLO0tBSFA7R0FSRjs7QUFnQkEsU0FBTyxHQUFQLENBbkI0QjtDQUE5QjtBQXFCQSxTQUFTLGNBQVQsQ0FBd0IsS0FBeEIsRUFBK0IsWUFBL0IsRUFBNkM7QUFDM0MsTUFBSSxVQUFVLEVBQVY7TUFDQSxTQUFTLEVBQVQ7TUFDQSxhQUFhLENBQWI7TUFDQSxpQkFBaUIsS0FBakI7TUFDQSxhQUFhLEtBQWIsQ0FMdUM7QUFNM0MsU0FBTyxhQUFhLGFBQWEsTUFBYixJQUNYLE1BQU0sS0FBTixHQUFjLE1BQU0sS0FBTixDQUFZLE1BQVosRUFBb0I7QUFDekMsUUFBSSxTQUFTLE1BQU0sS0FBTixDQUFZLE1BQU0sS0FBTixDQUFyQjtRQUNBLFFBQVEsYUFBYSxVQUFiLENBQVI7OztBQUZxQyxRQUtyQyxNQUFNLENBQU4sTUFBYSxHQUFiLEVBQWtCO0FBQ3BCLFlBRG9CO0tBQXRCOztBQUlBLHFCQUFpQixrQkFBa0IsT0FBTyxDQUFQLE1BQWMsR0FBZCxDQVRNOztBQVd6QyxXQUFPLElBQVAsQ0FBWSxLQUFaLEVBWHlDO0FBWXpDOzs7O0FBWnlDLFFBZ0JyQyxPQUFPLENBQVAsTUFBYyxHQUFkLEVBQW1CO0FBQ3JCLG1CQUFhLElBQWIsQ0FEcUI7O0FBR3JCLGFBQU8sT0FBTyxDQUFQLE1BQWMsR0FBZCxFQUFtQjtBQUN4QixnQkFBUSxJQUFSLENBQWEsTUFBYixFQUR3QjtBQUV4QixpQkFBUyxNQUFNLEtBQU4sQ0FBWSxFQUFFLE1BQU0sS0FBTixDQUF2QixDQUZ3QjtPQUExQjtLQUhGOztBQVNBLFFBQUksTUFBTSxNQUFOLENBQWEsQ0FBYixNQUFvQixPQUFPLE1BQVAsQ0FBYyxDQUFkLENBQXBCLEVBQXNDO0FBQ3hDLGNBQVEsSUFBUixDQUFhLE1BQWIsRUFEd0M7QUFFeEMsWUFBTSxLQUFOLEdBRndDO0tBQTFDLE1BR087QUFDTCxtQkFBYSxJQUFiLENBREs7S0FIUDtHQTFCRjs7QUFrQ0EsTUFBSSxDQUFDLGFBQWEsVUFBYixLQUE0QixFQUE1QixDQUFELENBQWlDLENBQWpDLE1BQXdDLEdBQXhDLElBQ0csY0FESCxFQUNtQjtBQUNyQixpQkFBYSxJQUFiLENBRHFCO0dBRHZCOztBQUtBLE1BQUksVUFBSixFQUFnQjtBQUNkLFdBQU8sT0FBUCxDQURjO0dBQWhCOztBQUlBLFNBQU8sYUFBYSxhQUFhLE1BQWIsRUFBcUI7QUFDdkMsV0FBTyxJQUFQLENBQVksYUFBYSxZQUFiLENBQVosRUFEdUM7R0FBekM7O0FBSUEsU0FBTztBQUNMLGtCQURLO0FBRUwsb0JBRks7R0FBUCxDQXJEMkM7Q0FBN0M7O0FBMkRBLFNBQVMsVUFBVCxDQUFvQixPQUFwQixFQUE2QjtBQUMzQixTQUFPLFFBQVEsTUFBUixDQUFlLFVBQVMsSUFBVCxFQUFlLE1BQWYsRUFBdUI7QUFDM0MsV0FBTyxRQUFRLE9BQU8sQ0FBUCxNQUFjLEdBQWQsQ0FENEI7R0FBdkIsRUFFbkIsSUFGSSxDQUFQLENBRDJCO0NBQTdCO0FBS0EsU0FBUyxrQkFBVCxDQUE0QixLQUE1QixFQUFtQyxhQUFuQyxFQUFrRCxLQUFsRCxFQUF5RDtBQUN2RCxPQUFLLElBQUksSUFBSSxDQUFKLEVBQU8sSUFBSSxLQUFKLEVBQVcsR0FBM0IsRUFBZ0M7QUFDOUIsUUFBSSxnQkFBZ0IsY0FBYyxjQUFjLE1BQWQsR0FBdUIsS0FBdkIsR0FBK0IsQ0FBL0IsQ0FBZCxDQUFnRCxNQUFoRCxDQUF1RCxDQUF2RCxDQUFoQixDQUQwQjtBQUU5QixRQUFJLE1BQU0sS0FBTixDQUFZLE1BQU0sS0FBTixHQUFjLENBQWQsQ0FBWixLQUFpQyxNQUFNLGFBQU4sRUFBcUI7QUFDeEQsYUFBTyxLQUFQLENBRHdEO0tBQTFEO0dBRkY7O0FBT0EsUUFBTSxLQUFOLElBQWUsS0FBZixDQVJ1RDtBQVN2RCxTQUFPLElBQVAsQ0FUdUQ7Q0FBekQiLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3N0cnVjdHVyZWRQYXRjaH0gZnJvbSAnLi9jcmVhdGUnO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhcnNlJztcblxuaW1wb3J0IHthcnJheUVxdWFsLCBhcnJheVN0YXJ0c1dpdGh9IGZyb20gJy4uL3V0aWwvYXJyYXknO1xuXG5leHBvcnQgZnVuY3Rpb24gY2FsY0xpbmVDb3VudChodW5rKSB7XG4gIGxldCBjb25mbGljdGVkID0gZmFsc2U7XG5cbiAgaHVuay5vbGRMaW5lcyA9IDA7XG4gIGh1bmsubmV3TGluZXMgPSAwO1xuXG4gIGh1bmsubGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lKSB7XG4gICAgaWYgKHR5cGVvZiBsaW5lICE9PSAnc3RyaW5nJykge1xuICAgICAgY29uZmxpY3RlZCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGxpbmVbMF0gPT09ICcrJyB8fCBsaW5lWzBdID09PSAnICcpIHtcbiAgICAgIGh1bmsubmV3TGluZXMrKztcbiAgICB9XG4gICAgaWYgKGxpbmVbMF0gPT09ICctJyB8fCBsaW5lWzBdID09PSAnICcpIHtcbiAgICAgIGh1bmsub2xkTGluZXMrKztcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChjb25mbGljdGVkKSB7XG4gICAgZGVsZXRlIGh1bmsub2xkTGluZXM7XG4gICAgZGVsZXRlIGh1bmsubmV3TGluZXM7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlKG1pbmUsIHRoZWlycywgYmFzZSkge1xuICBtaW5lID0gbG9hZFBhdGNoKG1pbmUsIGJhc2UpO1xuICB0aGVpcnMgPSBsb2FkUGF0Y2godGhlaXJzLCBiYXNlKTtcblxuICBsZXQgcmV0ID0ge307XG5cbiAgLy8gRm9yIGluZGV4IHdlIGp1c3QgbGV0IGl0IHBhc3MgdGhyb3VnaCBhcyBpdCBkb2Vzbid0IGhhdmUgYW55IG5lY2Vzc2FyeSBtZWFuaW5nLlxuICAvLyBMZWF2aW5nIHNhbml0eSBjaGVja3Mgb24gdGhpcyB0byB0aGUgQVBJIGNvbnN1bWVyIHRoYXQgbWF5IGtub3cgbW9yZSBhYm91dCB0aGVcbiAgLy8gbWVhbmluZyBpbiB0aGVpciBvd24gY29udGV4dC5cbiAgaWYgKG1pbmUuaW5kZXggfHwgdGhlaXJzLmluZGV4KSB7XG4gICAgcmV0LmluZGV4ID0gbWluZS5pbmRleCB8fCB0aGVpcnMuaW5kZXg7XG4gIH1cblxuICBpZiAobWluZS5uZXdGaWxlTmFtZSB8fCB0aGVpcnMubmV3RmlsZU5hbWUpIHtcbiAgICBpZiAoIWZpbGVOYW1lQ2hhbmdlZChtaW5lKSkge1xuICAgICAgLy8gTm8gaGVhZGVyIG9yIG5vIGNoYW5nZSBpbiBvdXJzLCB1c2UgdGhlaXJzIChhbmQgb3VycyBpZiB0aGVpcnMgZG9lcyBub3QgZXhpc3QpXG4gICAgICByZXQub2xkRmlsZU5hbWUgPSB0aGVpcnMub2xkRmlsZU5hbWUgfHwgbWluZS5vbGRGaWxlTmFtZTtcbiAgICAgIHJldC5uZXdGaWxlTmFtZSA9IHRoZWlycy5uZXdGaWxlTmFtZSB8fCBtaW5lLm5ld0ZpbGVOYW1lO1xuICAgICAgcmV0Lm9sZEhlYWRlciA9IHRoZWlycy5vbGRIZWFkZXIgfHwgbWluZS5vbGRIZWFkZXI7XG4gICAgICByZXQubmV3SGVhZGVyID0gdGhlaXJzLm5ld0hlYWRlciB8fCBtaW5lLm5ld0hlYWRlcjtcbiAgICB9IGVsc2UgaWYgKCFmaWxlTmFtZUNoYW5nZWQodGhlaXJzKSkge1xuICAgICAgLy8gTm8gaGVhZGVyIG9yIG5vIGNoYW5nZSBpbiB0aGVpcnMsIHVzZSBvdXJzXG4gICAgICByZXQub2xkRmlsZU5hbWUgPSBtaW5lLm9sZEZpbGVOYW1lO1xuICAgICAgcmV0Lm5ld0ZpbGVOYW1lID0gbWluZS5uZXdGaWxlTmFtZTtcbiAgICAgIHJldC5vbGRIZWFkZXIgPSBtaW5lLm9sZEhlYWRlcjtcbiAgICAgIHJldC5uZXdIZWFkZXIgPSBtaW5lLm5ld0hlYWRlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQm90aCBjaGFuZ2VkLi4uIGZpZ3VyZSBpdCBvdXRcbiAgICAgIHJldC5vbGRGaWxlTmFtZSA9IHNlbGVjdEZpZWxkKHJldCwgbWluZS5vbGRGaWxlTmFtZSwgdGhlaXJzLm9sZEZpbGVOYW1lKTtcbiAgICAgIHJldC5uZXdGaWxlTmFtZSA9IHNlbGVjdEZpZWxkKHJldCwgbWluZS5uZXdGaWxlTmFtZSwgdGhlaXJzLm5ld0ZpbGVOYW1lKTtcbiAgICAgIHJldC5vbGRIZWFkZXIgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUub2xkSGVhZGVyLCB0aGVpcnMub2xkSGVhZGVyKTtcbiAgICAgIHJldC5uZXdIZWFkZXIgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUubmV3SGVhZGVyLCB0aGVpcnMubmV3SGVhZGVyKTtcbiAgICB9XG4gIH1cblxuICByZXQuaHVua3MgPSBbXTtcblxuICBsZXQgbWluZUluZGV4ID0gMCxcbiAgICAgIHRoZWlyc0luZGV4ID0gMCxcbiAgICAgIG1pbmVPZmZzZXQgPSAwLFxuICAgICAgdGhlaXJzT2Zmc2V0ID0gMDtcblxuICB3aGlsZSAobWluZUluZGV4IDwgbWluZS5odW5rcy5sZW5ndGggfHwgdGhlaXJzSW5kZXggPCB0aGVpcnMuaHVua3MubGVuZ3RoKSB7XG4gICAgbGV0IG1pbmVDdXJyZW50ID0gbWluZS5odW5rc1ttaW5lSW5kZXhdIHx8IHtvbGRTdGFydDogSW5maW5pdHl9LFxuICAgICAgICB0aGVpcnNDdXJyZW50ID0gdGhlaXJzLmh1bmtzW3RoZWlyc0luZGV4XSB8fCB7b2xkU3RhcnQ6IEluZmluaXR5fTtcblxuICAgIGlmIChodW5rQmVmb3JlKG1pbmVDdXJyZW50LCB0aGVpcnNDdXJyZW50KSkge1xuICAgICAgLy8gVGhpcyBwYXRjaCBkb2VzIG5vdCBvdmVybGFwIHdpdGggYW55IG9mIHRoZSBvdGhlcnMsIHlheS5cbiAgICAgIHJldC5odW5rcy5wdXNoKGNsb25lSHVuayhtaW5lQ3VycmVudCwgbWluZU9mZnNldCkpO1xuICAgICAgbWluZUluZGV4Kys7XG4gICAgICB0aGVpcnNPZmZzZXQgKz0gbWluZUN1cnJlbnQubmV3TGluZXMgLSBtaW5lQ3VycmVudC5vbGRMaW5lcztcbiAgICB9IGVsc2UgaWYgKGh1bmtCZWZvcmUodGhlaXJzQ3VycmVudCwgbWluZUN1cnJlbnQpKSB7XG4gICAgICAvLyBUaGlzIHBhdGNoIGRvZXMgbm90IG92ZXJsYXAgd2l0aCBhbnkgb2YgdGhlIG90aGVycywgeWF5LlxuICAgICAgcmV0Lmh1bmtzLnB1c2goY2xvbmVIdW5rKHRoZWlyc0N1cnJlbnQsIHRoZWlyc09mZnNldCkpO1xuICAgICAgdGhlaXJzSW5kZXgrKztcbiAgICAgIG1pbmVPZmZzZXQgKz0gdGhlaXJzQ3VycmVudC5uZXdMaW5lcyAtIHRoZWlyc0N1cnJlbnQub2xkTGluZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE92ZXJsYXAsIG1lcmdlIGFzIGJlc3Qgd2UgY2FuXG4gICAgICBsZXQgbWVyZ2VkSHVuayA9IHtcbiAgICAgICAgb2xkU3RhcnQ6IE1hdGgubWluKG1pbmVDdXJyZW50Lm9sZFN0YXJ0LCB0aGVpcnNDdXJyZW50Lm9sZFN0YXJ0KSxcbiAgICAgICAgb2xkTGluZXM6IDAsXG4gICAgICAgIG5ld1N0YXJ0OiBNYXRoLm1pbihtaW5lQ3VycmVudC5uZXdTdGFydCArIG1pbmVPZmZzZXQsIHRoZWlyc0N1cnJlbnQub2xkU3RhcnQgKyB0aGVpcnNPZmZzZXQpLFxuICAgICAgICBuZXdMaW5lczogMCxcbiAgICAgICAgbGluZXM6IFtdXG4gICAgICB9O1xuICAgICAgbWVyZ2VMaW5lcyhtZXJnZWRIdW5rLCBtaW5lQ3VycmVudC5vbGRTdGFydCwgbWluZUN1cnJlbnQubGluZXMsIHRoZWlyc0N1cnJlbnQub2xkU3RhcnQsIHRoZWlyc0N1cnJlbnQubGluZXMpO1xuICAgICAgdGhlaXJzSW5kZXgrKztcbiAgICAgIG1pbmVJbmRleCsrO1xuXG4gICAgICByZXQuaHVua3MucHVzaChtZXJnZWRIdW5rKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBsb2FkUGF0Y2gocGFyYW0sIGJhc2UpIHtcbiAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoL15AQC9tLnRlc3QocGFyYW0pIHx8ICgvXkluZGV4Oi9tLnRlc3QocGFyYW0pKSkge1xuICAgICAgcmV0dXJuIHBhcnNlUGF0Y2gocGFyYW0pWzBdO1xuICAgIH1cblxuICAgIGlmICghYmFzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYSBiYXNlIHJlZmVyZW5jZSBvciBwYXNzIGluIGEgcGF0Y2gnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cnVjdHVyZWRQYXRjaCh1bmRlZmluZWQsIHVuZGVmaW5lZCwgYmFzZSwgcGFyYW0pO1xuICB9XG5cbiAgcmV0dXJuIHBhcmFtO1xufVxuXG5mdW5jdGlvbiBmaWxlTmFtZUNoYW5nZWQocGF0Y2gpIHtcbiAgcmV0dXJuIHBhdGNoLm5ld0ZpbGVOYW1lICYmIHBhdGNoLm5ld0ZpbGVOYW1lICE9PSBwYXRjaC5vbGRGaWxlTmFtZTtcbn1cblxuZnVuY3Rpb24gc2VsZWN0RmllbGQoaW5kZXgsIG1pbmUsIHRoZWlycykge1xuICBpZiAobWluZSA9PT0gdGhlaXJzKSB7XG4gICAgcmV0dXJuIG1pbmU7XG4gIH0gZWxzZSB7XG4gICAgaW5kZXguY29uZmxpY3QgPSB0cnVlO1xuICAgIHJldHVybiB7bWluZSwgdGhlaXJzfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBodW5rQmVmb3JlKHRlc3QsIGNoZWNrKSB7XG4gIHJldHVybiB0ZXN0Lm9sZFN0YXJ0IDwgY2hlY2sub2xkU3RhcnRcbiAgICAmJiAodGVzdC5vbGRTdGFydCArIHRlc3Qub2xkTGluZXMpIDwgY2hlY2sub2xkU3RhcnQ7XG59XG5cbmZ1bmN0aW9uIGNsb25lSHVuayhodW5rLCBvZmZzZXQpIHtcbiAgcmV0dXJuIHtcbiAgICBvbGRTdGFydDogaHVuay5vbGRTdGFydCwgb2xkTGluZXM6IGh1bmsub2xkTGluZXMsXG4gICAgbmV3U3RhcnQ6IGh1bmsubmV3U3RhcnQgKyBvZmZzZXQsIG5ld0xpbmVzOiBodW5rLm5ld0xpbmVzLFxuICAgIGxpbmVzOiBodW5rLmxpbmVzXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1lcmdlTGluZXMoaHVuaywgbWluZU9mZnNldCwgbWluZUxpbmVzLCB0aGVpck9mZnNldCwgdGhlaXJMaW5lcykge1xuICAvLyBUaGlzIHdpbGwgZ2VuZXJhbGx5IHJlc3VsdCBpbiBhIGNvbmZsaWN0ZWQgaHVuaywgYnV0IHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGUgY29udGV4dFxuICAvLyBpcyB0aGUgb25seSBvdmVybGFwIHdoZXJlIHdlIGNhbiBzdWNjZXNzZnVsbHkgbWVyZ2UgdGhlIGNvbnRlbnQgaGVyZS5cbiAgbGV0IG1pbmUgPSB7b2Zmc2V0OiBtaW5lT2Zmc2V0LCBsaW5lczogbWluZUxpbmVzLCBpbmRleDogMH0sXG4gICAgICB0aGVpciA9IHtvZmZzZXQ6IHRoZWlyT2Zmc2V0LCBsaW5lczogdGhlaXJMaW5lcywgaW5kZXg6IDB9O1xuXG4gIC8vIEhhbmRsZSBhbnkgbGVhZGluZyBjb250ZW50XG4gIGluc2VydExlYWRpbmcoaHVuaywgbWluZSwgdGhlaXIpO1xuICBpbnNlcnRMZWFkaW5nKGh1bmssIHRoZWlyLCBtaW5lKTtcblxuICAvLyBOb3cgaW4gdGhlIG92ZXJsYXAgY29udGVudC4gU2NhbiB0aHJvdWdoIGFuZCBzZWxlY3QgdGhlIGJlc3QgY2hhbmdlcyBmcm9tIGVhY2guXG4gIHdoaWxlIChtaW5lLmluZGV4IDwgbWluZS5saW5lcy5sZW5ndGggJiYgdGhlaXIuaW5kZXggPCB0aGVpci5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbWluZUN1cnJlbnQgPSBtaW5lLmxpbmVzW21pbmUuaW5kZXhdLFxuICAgICAgICB0aGVpckN1cnJlbnQgPSB0aGVpci5saW5lc1t0aGVpci5pbmRleF07XG5cbiAgICBpZiAoKG1pbmVDdXJyZW50WzBdID09PSAnLScgfHwgbWluZUN1cnJlbnRbMF0gPT09ICcrJylcbiAgICAgICAgJiYgKHRoZWlyQ3VycmVudFswXSA9PT0gJy0nIHx8IHRoZWlyQ3VycmVudFswXSA9PT0gJysnKSkge1xuICAgICAgLy8gQm90aCBtb2RpZmllZCAuLi5cbiAgICAgIG11dHVhbENoYW5nZShodW5rLCBtaW5lLCB0aGVpcik7XG4gICAgfSBlbHNlIGlmIChtaW5lQ3VycmVudFswXSA9PT0gJysnICYmIHRoZWlyQ3VycmVudFswXSA9PT0gJyAnKSB7XG4gICAgICAvLyBNaW5lIGluc2VydGVkXG4gICAgICBodW5rLmxpbmVzLnB1c2goLi4uIGNvbGxlY3RDaGFuZ2UobWluZSkpO1xuICAgIH0gZWxzZSBpZiAodGhlaXJDdXJyZW50WzBdID09PSAnKycgJiYgbWluZUN1cnJlbnRbMF0gPT09ICcgJykge1xuICAgICAgLy8gVGhlaXJzIGluc2VydGVkXG4gICAgICBodW5rLmxpbmVzLnB1c2goLi4uIGNvbGxlY3RDaGFuZ2UodGhlaXIpKTtcbiAgICB9IGVsc2UgaWYgKG1pbmVDdXJyZW50WzBdID09PSAnLScgJiYgdGhlaXJDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIE1pbmUgcmVtb3ZlZCBvciBlZGl0ZWRcbiAgICAgIHJlbW92YWwoaHVuaywgbWluZSwgdGhlaXIpO1xuICAgIH0gZWxzZSBpZiAodGhlaXJDdXJyZW50WzBdID09PSAnLScgJiYgbWluZUN1cnJlbnRbMF0gPT09ICcgJykge1xuICAgICAgLy8gVGhlaXIgcmVtb3ZlZCBvciBlZGl0ZWRcbiAgICAgIHJlbW92YWwoaHVuaywgdGhlaXIsIG1pbmUsIHRydWUpO1xuICAgIH0gZWxzZSBpZiAobWluZUN1cnJlbnQgPT09IHRoZWlyQ3VycmVudCkge1xuICAgICAgLy8gQ29udGV4dCBpZGVudGl0eVxuICAgICAgaHVuay5saW5lcy5wdXNoKG1pbmVDdXJyZW50KTtcbiAgICAgIG1pbmUuaW5kZXgrKztcbiAgICAgIHRoZWlyLmluZGV4Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENvbnRleHQgbWlzbWF0Y2hcbiAgICAgIGNvbmZsaWN0KGh1bmssIGNvbGxlY3RDaGFuZ2UobWluZSksIGNvbGxlY3RDaGFuZ2UodGhlaXIpKTtcbiAgICB9XG4gIH1cblxuICAvLyBOb3cgcHVzaCBhbnl0aGluZyB0aGF0IG1heSBiZSByZW1haW5pbmdcbiAgaW5zZXJ0VHJhaWxpbmcoaHVuaywgbWluZSk7XG4gIGluc2VydFRyYWlsaW5nKGh1bmssIHRoZWlyKTtcblxuICBjYWxjTGluZUNvdW50KGh1bmspO1xufVxuXG5mdW5jdGlvbiBtdXR1YWxDaGFuZ2UoaHVuaywgbWluZSwgdGhlaXIpIHtcbiAgbGV0IG15Q2hhbmdlcyA9IGNvbGxlY3RDaGFuZ2UobWluZSksXG4gICAgICB0aGVpckNoYW5nZXMgPSBjb2xsZWN0Q2hhbmdlKHRoZWlyKTtcblxuICBpZiAoYWxsUmVtb3ZlcyhteUNoYW5nZXMpICYmIGFsbFJlbW92ZXModGhlaXJDaGFuZ2VzKSkge1xuICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgcmVtb3ZlIGNoYW5nZXMgdGhhdCBhcmUgc3VwZXJzZXRzIG9mIG9uZSBhbm90aGVyXG4gICAgaWYgKGFycmF5U3RhcnRzV2l0aChteUNoYW5nZXMsIHRoZWlyQ2hhbmdlcylcbiAgICAgICAgJiYgc2tpcFJlbW92ZVN1cGVyc2V0KHRoZWlyLCBteUNoYW5nZXMsIG15Q2hhbmdlcy5sZW5ndGggLSB0aGVpckNoYW5nZXMubGVuZ3RoKSkge1xuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBteUNoYW5nZXMpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoYXJyYXlTdGFydHNXaXRoKHRoZWlyQ2hhbmdlcywgbXlDaGFuZ2VzKVxuICAgICAgICAmJiBza2lwUmVtb3ZlU3VwZXJzZXQobWluZSwgdGhlaXJDaGFuZ2VzLCB0aGVpckNoYW5nZXMubGVuZ3RoIC0gbXlDaGFuZ2VzLmxlbmd0aCkpIHtcbiAgICAgIGh1bmsubGluZXMucHVzaCguLi4gdGhlaXJDaGFuZ2VzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH0gZWxzZSBpZiAoYXJyYXlFcXVhbChteUNoYW5nZXMsIHRoZWlyQ2hhbmdlcykpIHtcbiAgICBodW5rLmxpbmVzLnB1c2goLi4uIG15Q2hhbmdlcyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uZmxpY3QoaHVuaywgbXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpO1xufVxuXG5mdW5jdGlvbiByZW1vdmFsKGh1bmssIG1pbmUsIHRoZWlyLCBzd2FwKSB7XG4gIGxldCBteUNoYW5nZXMgPSBjb2xsZWN0Q2hhbmdlKG1pbmUpLFxuICAgICAgdGhlaXJDaGFuZ2VzID0gY29sbGVjdENvbnRleHQodGhlaXIsIG15Q2hhbmdlcyk7XG4gIGlmICh0aGVpckNoYW5nZXMubWVyZ2VkKSB7XG4gICAgaHVuay5saW5lcy5wdXNoKC4uLiB0aGVpckNoYW5nZXMubWVyZ2VkKTtcbiAgfSBlbHNlIHtcbiAgICBjb25mbGljdChodW5rLCBzd2FwID8gdGhlaXJDaGFuZ2VzIDogbXlDaGFuZ2VzLCBzd2FwID8gbXlDaGFuZ2VzIDogdGhlaXJDaGFuZ2VzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb25mbGljdChodW5rLCBtaW5lLCB0aGVpcikge1xuICBodW5rLmNvbmZsaWN0ID0gdHJ1ZTtcbiAgaHVuay5saW5lcy5wdXNoKHtcbiAgICBjb25mbGljdDogdHJ1ZSxcbiAgICBtaW5lOiBtaW5lLFxuICAgIHRoZWlyczogdGhlaXJcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGluc2VydExlYWRpbmcoaHVuaywgaW5zZXJ0LCB0aGVpcikge1xuICB3aGlsZSAoaW5zZXJ0Lm9mZnNldCA8IHRoZWlyLm9mZnNldCAmJiBpbnNlcnQuaW5kZXggPCBpbnNlcnQubGluZXMubGVuZ3RoKSB7XG4gICAgbGV0IGxpbmUgPSBpbnNlcnQubGluZXNbaW5zZXJ0LmluZGV4KytdO1xuICAgIGh1bmsubGluZXMucHVzaChsaW5lKTtcbiAgICBpbnNlcnQub2Zmc2V0Kys7XG4gIH1cbn1cbmZ1bmN0aW9uIGluc2VydFRyYWlsaW5nKGh1bmssIGluc2VydCkge1xuICB3aGlsZSAoaW5zZXJ0LmluZGV4IDwgaW5zZXJ0LmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBsaW5lID0gaW5zZXJ0LmxpbmVzW2luc2VydC5pbmRleCsrXTtcbiAgICBodW5rLmxpbmVzLnB1c2gobGluZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29sbGVjdENoYW5nZShzdGF0ZSkge1xuICBsZXQgcmV0ID0gW10sXG4gICAgICBvcGVyYXRpb24gPSBzdGF0ZS5saW5lc1tzdGF0ZS5pbmRleF1bMF07XG4gIHdoaWxlIChzdGF0ZS5pbmRleCA8IHN0YXRlLmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBsaW5lID0gc3RhdGUubGluZXNbc3RhdGUuaW5kZXhdO1xuXG4gICAgLy8gR3JvdXAgYWRkaXRpb25zIHRoYXQgYXJlIGltbWVkaWF0ZWx5IGFmdGVyIHN1YnRyYWN0aW9ucyBhbmQgdHJlYXQgdGhlbSBhcyBvbmUgXCJhdG9taWNcIiBtb2RpZnkgY2hhbmdlLlxuICAgIGlmIChvcGVyYXRpb24gPT09ICctJyAmJiBsaW5lWzBdID09PSAnKycpIHtcbiAgICAgIG9wZXJhdGlvbiA9ICcrJztcbiAgICB9XG5cbiAgICBpZiAob3BlcmF0aW9uID09PSBsaW5lWzBdKSB7XG4gICAgICByZXQucHVzaChsaW5lKTtcbiAgICAgIHN0YXRlLmluZGV4Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5mdW5jdGlvbiBjb2xsZWN0Q29udGV4dChzdGF0ZSwgbWF0Y2hDaGFuZ2VzKSB7XG4gIGxldCBjaGFuZ2VzID0gW10sXG4gICAgICBtZXJnZWQgPSBbXSxcbiAgICAgIG1hdGNoSW5kZXggPSAwLFxuICAgICAgY29udGV4dENoYW5nZXMgPSBmYWxzZSxcbiAgICAgIGNvbmZsaWN0ZWQgPSBmYWxzZTtcbiAgd2hpbGUgKG1hdGNoSW5kZXggPCBtYXRjaENoYW5nZXMubGVuZ3RoXG4gICAgICAgICYmIHN0YXRlLmluZGV4IDwgc3RhdGUubGluZXMubGVuZ3RoKSB7XG4gICAgbGV0IGNoYW5nZSA9IHN0YXRlLmxpbmVzW3N0YXRlLmluZGV4XSxcbiAgICAgICAgbWF0Y2ggPSBtYXRjaENoYW5nZXNbbWF0Y2hJbmRleF07XG5cbiAgICAvLyBPbmNlIHdlJ3ZlIGhpdCBvdXIgYWRkLCB0aGVuIHdlIGFyZSBkb25lXG4gICAgaWYgKG1hdGNoWzBdID09PSAnKycpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnRleHRDaGFuZ2VzID0gY29udGV4dENoYW5nZXMgfHwgY2hhbmdlWzBdICE9PSAnICc7XG5cbiAgICBtZXJnZWQucHVzaChtYXRjaCk7XG4gICAgbWF0Y2hJbmRleCsrO1xuXG4gICAgLy8gQ29uc3VtZSBhbnkgYWRkaXRpb25zIGluIHRoZSBvdGhlciBibG9jayBhcyBhIGNvbmZsaWN0IHRvIGF0dGVtcHRcbiAgICAvLyB0byBwdWxsIGluIHRoZSByZW1haW5pbmcgY29udGV4dCBhZnRlciB0aGlzXG4gICAgaWYgKGNoYW5nZVswXSA9PT0gJysnKSB7XG4gICAgICBjb25mbGljdGVkID0gdHJ1ZTtcblxuICAgICAgd2hpbGUgKGNoYW5nZVswXSA9PT0gJysnKSB7XG4gICAgICAgIGNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICBjaGFuZ2UgPSBzdGF0ZS5saW5lc1srK3N0YXRlLmluZGV4XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWF0Y2guc3Vic3RyKDEpID09PSBjaGFuZ2Uuc3Vic3RyKDEpKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgIHN0YXRlLmluZGV4Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmZsaWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmICgobWF0Y2hDaGFuZ2VzW21hdGNoSW5kZXhdIHx8ICcnKVswXSA9PT0gJysnXG4gICAgICAmJiBjb250ZXh0Q2hhbmdlcykge1xuICAgIGNvbmZsaWN0ZWQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGNvbmZsaWN0ZWQpIHtcbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxuXG4gIHdoaWxlIChtYXRjaEluZGV4IDwgbWF0Y2hDaGFuZ2VzLmxlbmd0aCkge1xuICAgIG1lcmdlZC5wdXNoKG1hdGNoQ2hhbmdlc1ttYXRjaEluZGV4KytdKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbWVyZ2VkLFxuICAgIGNoYW5nZXNcbiAgfTtcbn1cblxuZnVuY3Rpb24gYWxsUmVtb3ZlcyhjaGFuZ2VzKSB7XG4gIHJldHVybiBjaGFuZ2VzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBjaGFuZ2UpIHtcbiAgICByZXR1cm4gcHJldiAmJiBjaGFuZ2VbMF0gPT09ICctJztcbiAgfSwgdHJ1ZSk7XG59XG5mdW5jdGlvbiBza2lwUmVtb3ZlU3VwZXJzZXQoc3RhdGUsIHJlbW92ZUNoYW5nZXMsIGRlbHRhKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGVsdGE7IGkrKykge1xuICAgIGxldCBjaGFuZ2VDb250ZW50ID0gcmVtb3ZlQ2hhbmdlc1tyZW1vdmVDaGFuZ2VzLmxlbmd0aCAtIGRlbHRhICsgaV0uc3Vic3RyKDEpO1xuICAgIGlmIChzdGF0ZS5saW5lc1tzdGF0ZS5pbmRleCArIGldICE9PSAnICcgKyBjaGFuZ2VDb250ZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc3RhdGUuaW5kZXggKz0gZGVsdGE7XG4gIHJldHVybiB0cnVlO1xufVxuIl19
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/parse.js
      deleted file mode 100644
      index 190620f8..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/patch/parse.js
      +++ /dev/null
      @@ -1,134 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports. /*istanbul ignore end*/parsePatch = parsePatch;
      -function parsePatch(uniDiff) {
      -  /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
      -
      -  var diffstr = uniDiff.split('\n'),
      -      list = [],
      -      i = 0;
      -
      -  function parseIndex() {
      -    var index = {};
      -    list.push(index);
      -
      -    // Parse diff metadata
      -    while (i < diffstr.length) {
      -      var line = diffstr[i];
      -
      -      // File header found, end parsing diff metadata
      -      if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) {
      -        break;
      -      }
      -
      -      // Diff index
      -      var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
      -      if (header) {
      -        index.index = header[1];
      -      }
      -
      -      i++;
      -    }
      -
      -    // Parse file headers if they are defined. Unified diff requires them, but
      -    // there's no technical issues to have an isolated hunk without file header
      -    parseFileHeader(index);
      -    parseFileHeader(index);
      -
      -    // Parse hunks
      -    index.hunks = [];
      -
      -    while (i < diffstr.length) {
      -      var _line = diffstr[i];
      -
      -      if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) {
      -        break;
      -      } else if (/^@@/.test(_line)) {
      -        index.hunks.push(parseHunk());
      -      } else if (_line && options.strict) {
      -        // Ignore unexpected content unless in strict mode
      -        throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));
      -      } else {
      -        i++;
      -      }
      -    }
      -  }
      -
      -  // Parses the --- and +++ headers, if none are found, no lines
      -  // are consumed.
      -  function parseFileHeader(index) {
      -    var fileHeader = /^(\-\-\-|\+\+\+)\s+(\S*)\s?(.*?)\s*$/.exec(diffstr[i]);
      -    if (fileHeader) {
      -      var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';
      -      index[keyPrefix + 'FileName'] = fileHeader[2];
      -      index[keyPrefix + 'Header'] = fileHeader[3];
      -
      -      i++;
      -    }
      -  }
      -
      -  // Parses a hunk
      -  // This assumes that we are at the start of a hunk.
      -  function parseHunk() {
      -    var chunkHeaderIndex = i,
      -        chunkHeaderLine = diffstr[i++],
      -        chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
      -
      -    var hunk = {
      -      oldStart: +chunkHeader[1],
      -      oldLines: +chunkHeader[2] || 1,
      -      newStart: +chunkHeader[3],
      -      newLines: +chunkHeader[4] || 1,
      -      lines: []
      -    };
      -
      -    var addCount = 0,
      -        removeCount = 0;
      -    for (; i < diffstr.length; i++) {
      -      var operation = diffstr[i][0];
      -
      -      if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') {
      -        hunk.lines.push(diffstr[i]);
      -
      -        if (operation === '+') {
      -          addCount++;
      -        } else if (operation === '-') {
      -          removeCount++;
      -        } else if (operation === ' ') {
      -          addCount++;
      -          removeCount++;
      -        }
      -      } else {
      -        break;
      -      }
      -    }
      -
      -    // Handle the empty block count case
      -    if (!addCount && hunk.newLines === 1) {
      -      hunk.newLines = 0;
      -    }
      -    if (!removeCount && hunk.oldLines === 1) {
      -      hunk.oldLines = 0;
      -    }
      -
      -    // Perform optional sanity checking
      -    if (options.strict) {
      -      if (addCount !== hunk.newLines) {
      -        throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
      -      }
      -      if (removeCount !== hunk.oldLines) {
      -        throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
      -      }
      -    }
      -
      -    return hunk;
      -  }
      -
      -  while (i < diffstr.length) {
      -    parseIndex();
      -  }
      -
      -  return list;
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9wYXJzZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCO0FBQVQsU0FBUyxVQUFULENBQW9CLE9BQXBCLEVBQTJDO3NEQUFkLGdFQUFVLGtCQUFJOztBQUNoRCxNQUFJLFVBQVUsUUFBUSxLQUFSLENBQWMsSUFBZCxDQUFWO01BQ0EsT0FBTyxFQUFQO01BQ0EsSUFBSSxDQUFKLENBSDRDOztBQUtoRCxXQUFTLFVBQVQsR0FBc0I7QUFDcEIsUUFBSSxRQUFRLEVBQVIsQ0FEZ0I7QUFFcEIsU0FBSyxJQUFMLENBQVUsS0FBVjs7O0FBRm9CLFdBS2IsSUFBSSxRQUFRLE1BQVIsRUFBZ0I7QUFDekIsVUFBSSxPQUFPLFFBQVEsQ0FBUixDQUFQOzs7QUFEcUIsVUFJckIsd0JBQXdCLElBQXhCLENBQTZCLElBQTdCLENBQUosRUFBd0M7QUFDdEMsY0FEc0M7T0FBeEM7OztBQUp5QixVQVNyQixTQUFTLDJDQUE2QyxJQUE3QyxDQUFrRCxJQUFsRCxDQUFULENBVHFCO0FBVXpCLFVBQUksTUFBSixFQUFZO0FBQ1YsY0FBTSxLQUFOLEdBQWMsT0FBTyxDQUFQLENBQWQsQ0FEVTtPQUFaOztBQUlBLFVBZHlCO0tBQTNCOzs7O0FBTG9CLG1CQXdCcEIsQ0FBZ0IsS0FBaEIsRUF4Qm9CO0FBeUJwQixvQkFBZ0IsS0FBaEI7OztBQXpCb0IsU0E0QnBCLENBQU0sS0FBTixHQUFjLEVBQWQsQ0E1Qm9COztBQThCcEIsV0FBTyxJQUFJLFFBQVEsTUFBUixFQUFnQjtBQUN6QixVQUFJLFFBQU8sUUFBUSxDQUFSLENBQVAsQ0FEcUI7O0FBR3pCLFVBQUksaUNBQWlDLElBQWpDLENBQXNDLEtBQXRDLENBQUosRUFBaUQ7QUFDL0MsY0FEK0M7T0FBakQsTUFFTyxJQUFJLE1BQU0sSUFBTixDQUFXLEtBQVgsQ0FBSixFQUFzQjtBQUMzQixjQUFNLEtBQU4sQ0FBWSxJQUFaLENBQWlCLFdBQWpCLEVBRDJCO09BQXRCLE1BRUEsSUFBSSxTQUFRLFFBQVEsTUFBUixFQUFnQjs7QUFFakMsY0FBTSxJQUFJLEtBQUosQ0FBVSxtQkFBbUIsSUFBSSxDQUFKLENBQW5CLEdBQTRCLEdBQTVCLEdBQWtDLEtBQUssU0FBTCxDQUFlLEtBQWYsQ0FBbEMsQ0FBaEIsQ0FGaUM7T0FBNUIsTUFHQTtBQUNMLFlBREs7T0FIQTtLQVBUO0dBOUJGOzs7O0FBTGdELFdBcUR2QyxlQUFULENBQXlCLEtBQXpCLEVBQWdDO0FBQzlCLFFBQUksYUFBYSx1Q0FBeUMsSUFBekMsQ0FBOEMsUUFBUSxDQUFSLENBQTlDLENBQWIsQ0FEMEI7QUFFOUIsUUFBSSxVQUFKLEVBQWdCO0FBQ2QsVUFBSSxZQUFZLFdBQVcsQ0FBWCxNQUFrQixLQUFsQixHQUEwQixLQUExQixHQUFrQyxLQUFsQyxDQURGO0FBRWQsWUFBTSxZQUFZLFVBQVosQ0FBTixHQUFnQyxXQUFXLENBQVgsQ0FBaEMsQ0FGYztBQUdkLFlBQU0sWUFBWSxRQUFaLENBQU4sR0FBOEIsV0FBVyxDQUFYLENBQTlCLENBSGM7O0FBS2QsVUFMYztLQUFoQjtHQUZGOzs7O0FBckRnRCxXQWtFdkMsU0FBVCxHQUFxQjtBQUNuQixRQUFJLG1CQUFtQixDQUFuQjtRQUNBLGtCQUFrQixRQUFRLEdBQVIsQ0FBbEI7UUFDQSxjQUFjLGdCQUFnQixLQUFoQixDQUFzQiw0Q0FBdEIsQ0FBZCxDQUhlOztBQUtuQixRQUFJLE9BQU87QUFDVCxnQkFBVSxDQUFDLFlBQVksQ0FBWixDQUFEO0FBQ1YsZ0JBQVUsQ0FBQyxZQUFZLENBQVosQ0FBRCxJQUFtQixDQUFuQjtBQUNWLGdCQUFVLENBQUMsWUFBWSxDQUFaLENBQUQ7QUFDVixnQkFBVSxDQUFDLFlBQVksQ0FBWixDQUFELElBQW1CLENBQW5CO0FBQ1YsYUFBTyxFQUFQO0tBTEUsQ0FMZTs7QUFhbkIsUUFBSSxXQUFXLENBQVg7UUFDQSxjQUFjLENBQWQsQ0FkZTtBQWVuQixXQUFPLElBQUksUUFBUSxNQUFSLEVBQWdCLEdBQTNCLEVBQWdDO0FBQzlCLFVBQUksWUFBWSxRQUFRLENBQVIsRUFBVyxDQUFYLENBQVosQ0FEMEI7O0FBRzlCLFVBQUksY0FBYyxHQUFkLElBQXFCLGNBQWMsR0FBZCxJQUFxQixjQUFjLEdBQWQsSUFBcUIsY0FBYyxJQUFkLEVBQW9CO0FBQ3JGLGFBQUssS0FBTCxDQUFXLElBQVgsQ0FBZ0IsUUFBUSxDQUFSLENBQWhCLEVBRHFGOztBQUdyRixZQUFJLGNBQWMsR0FBZCxFQUFtQjtBQUNyQixxQkFEcUI7U0FBdkIsTUFFTyxJQUFJLGNBQWMsR0FBZCxFQUFtQjtBQUM1Qix3QkFENEI7U0FBdkIsTUFFQSxJQUFJLGNBQWMsR0FBZCxFQUFtQjtBQUM1QixxQkFENEI7QUFFNUIsd0JBRjRCO1NBQXZCO09BUFQsTUFXTztBQUNMLGNBREs7T0FYUDtLQUhGOzs7QUFmbUIsUUFtQ2YsQ0FBQyxRQUFELElBQWEsS0FBSyxRQUFMLEtBQWtCLENBQWxCLEVBQXFCO0FBQ3BDLFdBQUssUUFBTCxHQUFnQixDQUFoQixDQURvQztLQUF0QztBQUdBLFFBQUksQ0FBQyxXQUFELElBQWdCLEtBQUssUUFBTCxLQUFrQixDQUFsQixFQUFxQjtBQUN2QyxXQUFLLFFBQUwsR0FBZ0IsQ0FBaEIsQ0FEdUM7S0FBekM7OztBQXRDbUIsUUEyQ2YsUUFBUSxNQUFSLEVBQWdCO0FBQ2xCLFVBQUksYUFBYSxLQUFLLFFBQUwsRUFBZTtBQUM5QixjQUFNLElBQUksS0FBSixDQUFVLHNEQUFzRCxtQkFBbUIsQ0FBbkIsQ0FBdEQsQ0FBaEIsQ0FEOEI7T0FBaEM7QUFHQSxVQUFJLGdCQUFnQixLQUFLLFFBQUwsRUFBZTtBQUNqQyxjQUFNLElBQUksS0FBSixDQUFVLHdEQUF3RCxtQkFBbUIsQ0FBbkIsQ0FBeEQsQ0FBaEIsQ0FEaUM7T0FBbkM7S0FKRjs7QUFTQSxXQUFPLElBQVAsQ0FwRG1CO0dBQXJCOztBQXVEQSxTQUFPLElBQUksUUFBUSxNQUFSLEVBQWdCO0FBQ3pCLGlCQUR5QjtHQUEzQjs7QUFJQSxTQUFPLElBQVAsQ0E3SGdEO0NBQTNDIiwiZmlsZSI6InBhcnNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGF0Y2godW5pRGlmZiwgb3B0aW9ucyA9IHt9KSB7XG4gIGxldCBkaWZmc3RyID0gdW5pRGlmZi5zcGxpdCgnXFxuJyksXG4gICAgICBsaXN0ID0gW10sXG4gICAgICBpID0gMDtcblxuICBmdW5jdGlvbiBwYXJzZUluZGV4KCkge1xuICAgIGxldCBpbmRleCA9IHt9O1xuICAgIGxpc3QucHVzaChpbmRleCk7XG5cbiAgICAvLyBQYXJzZSBkaWZmIG1ldGFkYXRhXG4gICAgd2hpbGUgKGkgPCBkaWZmc3RyLmxlbmd0aCkge1xuICAgICAgbGV0IGxpbmUgPSBkaWZmc3RyW2ldO1xuXG4gICAgICAvLyBGaWxlIGhlYWRlciBmb3VuZCwgZW5kIHBhcnNpbmcgZGlmZiBtZXRhZGF0YVxuICAgICAgaWYgKC9eKFxcLVxcLVxcLXxcXCtcXCtcXCt8QEApXFxzLy50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBEaWZmIGluZGV4XG4gICAgICBsZXQgaGVhZGVyID0gKC9eKD86SW5kZXg6fGRpZmYoPzogLXIgXFx3KykrKVxccysoLis/KVxccyokLykuZXhlYyhsaW5lKTtcbiAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgaW5kZXguaW5kZXggPSBoZWFkZXJbMV07XG4gICAgICB9XG5cbiAgICAgIGkrKztcbiAgICB9XG5cbiAgICAvLyBQYXJzZSBmaWxlIGhlYWRlcnMgaWYgdGhleSBhcmUgZGVmaW5lZC4gVW5pZmllZCBkaWZmIHJlcXVpcmVzIHRoZW0sIGJ1dFxuICAgIC8vIHRoZXJlJ3Mgbm8gdGVjaG5pY2FsIGlzc3VlcyB0byBoYXZlIGFuIGlzb2xhdGVkIGh1bmsgd2l0aG91dCBmaWxlIGhlYWRlclxuICAgIHBhcnNlRmlsZUhlYWRlcihpbmRleCk7XG4gICAgcGFyc2VGaWxlSGVhZGVyKGluZGV4KTtcblxuICAgIC8vIFBhcnNlIGh1bmtzXG4gICAgaW5kZXguaHVua3MgPSBbXTtcblxuICAgIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICAgIGxldCBsaW5lID0gZGlmZnN0cltpXTtcblxuICAgICAgaWYgKC9eKEluZGV4OnxkaWZmfFxcLVxcLVxcLXxcXCtcXCtcXCspXFxzLy50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIGlmICgvXkBALy50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGluZGV4Lmh1bmtzLnB1c2gocGFyc2VIdW5rKCkpO1xuICAgICAgfSBlbHNlIGlmIChsaW5lICYmIG9wdGlvbnMuc3RyaWN0KSB7XG4gICAgICAgIC8vIElnbm9yZSB1bmV4cGVjdGVkIGNvbnRlbnQgdW5sZXNzIGluIHN0cmljdCBtb2RlXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBsaW5lICcgKyAoaSArIDEpICsgJyAnICsgSlNPTi5zdHJpbmdpZnkobGluZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNlcyB0aGUgLS0tIGFuZCArKysgaGVhZGVycywgaWYgbm9uZSBhcmUgZm91bmQsIG5vIGxpbmVzXG4gIC8vIGFyZSBjb25zdW1lZC5cbiAgZnVuY3Rpb24gcGFyc2VGaWxlSGVhZGVyKGluZGV4KSB7XG4gICAgbGV0IGZpbGVIZWFkZXIgPSAoL14oXFwtXFwtXFwtfFxcK1xcK1xcKylcXHMrKFxcUyopXFxzPyguKj8pXFxzKiQvKS5leGVjKGRpZmZzdHJbaV0pO1xuICAgIGlmIChmaWxlSGVhZGVyKSB7XG4gICAgICBsZXQga2V5UHJlZml4ID0gZmlsZUhlYWRlclsxXSA9PT0gJy0tLScgPyAnb2xkJyA6ICduZXcnO1xuICAgICAgaW5kZXhba2V5UHJlZml4ICsgJ0ZpbGVOYW1lJ10gPSBmaWxlSGVhZGVyWzJdO1xuICAgICAgaW5kZXhba2V5UHJlZml4ICsgJ0hlYWRlciddID0gZmlsZUhlYWRlclszXTtcblxuICAgICAgaSsrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNlcyBhIGh1bmtcbiAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIGh1bmsuXG4gIGZ1bmN0aW9uIHBhcnNlSHVuaygpIHtcbiAgICBsZXQgY2h1bmtIZWFkZXJJbmRleCA9IGksXG4gICAgICAgIGNodW5rSGVhZGVyTGluZSA9IGRpZmZzdHJbaSsrXSxcbiAgICAgICAgY2h1bmtIZWFkZXIgPSBjaHVua0hlYWRlckxpbmUuc3BsaXQoL0BAIC0oXFxkKykoPzosKFxcZCspKT8gXFwrKFxcZCspKD86LChcXGQrKSk/IEBALyk7XG5cbiAgICBsZXQgaHVuayA9IHtcbiAgICAgIG9sZFN0YXJ0OiArY2h1bmtIZWFkZXJbMV0sXG4gICAgICBvbGRMaW5lczogK2NodW5rSGVhZGVyWzJdIHx8IDEsXG4gICAgICBuZXdTdGFydDogK2NodW5rSGVhZGVyWzNdLFxuICAgICAgbmV3TGluZXM6ICtjaHVua0hlYWRlcls0XSB8fCAxLFxuICAgICAgbGluZXM6IFtdXG4gICAgfTtcblxuICAgIGxldCBhZGRDb3VudCA9IDAsXG4gICAgICAgIHJlbW92ZUNvdW50ID0gMDtcbiAgICBmb3IgKDsgaSA8IGRpZmZzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBvcGVyYXRpb24gPSBkaWZmc3RyW2ldWzBdO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnKycgfHwgb3BlcmF0aW9uID09PSAnLScgfHwgb3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnXFxcXCcpIHtcbiAgICAgICAgaHVuay5saW5lcy5wdXNoKGRpZmZzdHJbaV0pO1xuXG4gICAgICAgIGlmIChvcGVyYXRpb24gPT09ICcrJykge1xuICAgICAgICAgIGFkZENvdW50Kys7XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgICByZW1vdmVDb3VudCsrO1xuICAgICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJyAnKSB7XG4gICAgICAgICAgYWRkQ291bnQrKztcbiAgICAgICAgICByZW1vdmVDb3VudCsrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgdGhlIGVtcHR5IGJsb2NrIGNvdW50IGNhc2VcbiAgICBpZiAoIWFkZENvdW50ICYmIGh1bmsubmV3TGluZXMgPT09IDEpIHtcbiAgICAgIGh1bmsubmV3TGluZXMgPSAwO1xuICAgIH1cbiAgICBpZiAoIXJlbW92ZUNvdW50ICYmIGh1bmsub2xkTGluZXMgPT09IDEpIHtcbiAgICAgIGh1bmsub2xkTGluZXMgPSAwO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm0gb3B0aW9uYWwgc2FuaXR5IGNoZWNraW5nXG4gICAgaWYgKG9wdGlvbnMuc3RyaWN0KSB7XG4gICAgICBpZiAoYWRkQ291bnQgIT09IGh1bmsubmV3TGluZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBZGRlZCBsaW5lIGNvdW50IGRpZCBub3QgbWF0Y2ggZm9yIGh1bmsgYXQgbGluZSAnICsgKGNodW5rSGVhZGVySW5kZXggKyAxKSk7XG4gICAgICB9XG4gICAgICBpZiAocmVtb3ZlQ291bnQgIT09IGh1bmsub2xkTGluZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZW1vdmVkIGxpbmUgY291bnQgZGlkIG5vdCBtYXRjaCBmb3IgaHVuayBhdCBsaW5lICcgKyAoY2h1bmtIZWFkZXJJbmRleCArIDEpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaHVuaztcbiAgfVxuXG4gIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICBwYXJzZUluZGV4KCk7XG4gIH1cblxuICByZXR1cm4gbGlzdDtcbn1cbiJdfQ==
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/util/array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/util/array.js
      deleted file mode 100644
      index 2a89f9e9..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/util/array.js
      +++ /dev/null
      @@ -1,27 +0,0 @@
      -/*istanbul ignore start*/"use strict";
      -
      -exports.__esModule = true;
      -exports. /*istanbul ignore end*/arrayEqual = arrayEqual;
      -/*istanbul ignore start*/exports. /*istanbul ignore end*/arrayStartsWith = arrayStartsWith;
      -function arrayEqual(a, b) {
      -  if (a.length !== b.length) {
      -    return false;
      -  }
      -
      -  return arrayStartsWith(a, b);
      -}
      -
      -function arrayStartsWith(array, start) {
      -  if (start.length > array.length) {
      -    return false;
      -  }
      -
      -  for (var i = 0; i < start.length; i++) {
      -    if (start[i] !== array[i]) {
      -      return false;
      -    }
      -  }
      -
      -  return true;
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2FycmF5LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztnQ0FBZ0I7eURBUUE7QUFSVCxTQUFTLFVBQVQsQ0FBb0IsQ0FBcEIsRUFBdUIsQ0FBdkIsRUFBMEI7QUFDL0IsTUFBSSxFQUFFLE1BQUYsS0FBYSxFQUFFLE1BQUYsRUFBVTtBQUN6QixXQUFPLEtBQVAsQ0FEeUI7R0FBM0I7O0FBSUEsU0FBTyxnQkFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsQ0FBUCxDQUwrQjtDQUExQjs7QUFRQSxTQUFTLGVBQVQsQ0FBeUIsS0FBekIsRUFBZ0MsS0FBaEMsRUFBdUM7QUFDNUMsTUFBSSxNQUFNLE1BQU4sR0FBZSxNQUFNLE1BQU4sRUFBYztBQUMvQixXQUFPLEtBQVAsQ0FEK0I7R0FBakM7O0FBSUEsT0FBSyxJQUFJLElBQUksQ0FBSixFQUFPLElBQUksTUFBTSxNQUFOLEVBQWMsR0FBbEMsRUFBdUM7QUFDckMsUUFBSSxNQUFNLENBQU4sTUFBYSxNQUFNLENBQU4sQ0FBYixFQUF1QjtBQUN6QixhQUFPLEtBQVAsQ0FEeUI7S0FBM0I7R0FERjs7QUFNQSxTQUFPLElBQVAsQ0FYNEM7Q0FBdkMiLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gYXJyYXlFcXVhbChhLCBiKSB7XG4gIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gYXJyYXlTdGFydHNXaXRoKGEsIGIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlTdGFydHNXaXRoKGFycmF5LCBzdGFydCkge1xuICBpZiAoc3RhcnQubGVuZ3RoID4gYXJyYXkubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGFydC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzdGFydFtpXSAhPT0gYXJyYXlbaV0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/util/distance-iterator.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/util/distance-iterator.js
      deleted file mode 100644
      index 90d42af3..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/util/distance-iterator.js
      +++ /dev/null
      @@ -1,47 +0,0 @@
      -/*istanbul ignore start*/"use strict";
      -
      -exports.__esModule = true;
      -
      -exports.default = /*istanbul ignore end*/function (start, minLine, maxLine) {
      -  var wantForward = true,
      -      backwardExhausted = false,
      -      forwardExhausted = false,
      -      localOffset = 1;
      -
      -  return function iterator() {
      -    if (wantForward && !forwardExhausted) {
      -      if (backwardExhausted) {
      -        localOffset++;
      -      } else {
      -        wantForward = false;
      -      }
      -
      -      // Check if trying to fit beyond text length, and if not, check it fits
      -      // after offset location (or desired location on first iteration)
      -      if (start + localOffset <= maxLine) {
      -        return localOffset;
      -      }
      -
      -      forwardExhausted = true;
      -    }
      -
      -    if (!backwardExhausted) {
      -      if (!forwardExhausted) {
      -        wantForward = true;
      -      }
      -
      -      // Check if trying to fit before text beginning, and if not, check it fits
      -      // before offset location
      -      if (minLine <= start - localOffset) {
      -        return - localOffset++;
      -      }
      -
      -      backwardExhausted = true;
      -      return iterator();
      -    }
      -
      -    // We tried to fit hunk before text beginning and beyond text lenght, then
      -    // hunk can't fit on the text. Return undefined
      -  };
      -};
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7eUNBR2UsVUFBUyxLQUFULEVBQWdCLE9BQWhCLEVBQXlCLE9BQXpCLEVBQWtDO0FBQy9DLE1BQUksY0FBYyxJQUFkO01BQ0Esb0JBQW9CLEtBQXBCO01BQ0EsbUJBQW1CLEtBQW5CO01BQ0EsY0FBYyxDQUFkLENBSjJDOztBQU0vQyxTQUFPLFNBQVMsUUFBVCxHQUFvQjtBQUN6QixRQUFJLGVBQWUsQ0FBQyxnQkFBRCxFQUFtQjtBQUNwQyxVQUFJLGlCQUFKLEVBQXVCO0FBQ3JCLHNCQURxQjtPQUF2QixNQUVPO0FBQ0wsc0JBQWMsS0FBZCxDQURLO09BRlA7Ozs7QUFEb0MsVUFTaEMsUUFBUSxXQUFSLElBQXVCLE9BQXZCLEVBQWdDO0FBQ2xDLGVBQU8sV0FBUCxDQURrQztPQUFwQzs7QUFJQSx5QkFBbUIsSUFBbkIsQ0Fib0M7S0FBdEM7O0FBZ0JBLFFBQUksQ0FBQyxpQkFBRCxFQUFvQjtBQUN0QixVQUFJLENBQUMsZ0JBQUQsRUFBbUI7QUFDckIsc0JBQWMsSUFBZCxDQURxQjtPQUF2Qjs7OztBQURzQixVQU9sQixXQUFXLFFBQVEsV0FBUixFQUFxQjtBQUNsQyxlQUFPLEVBQUMsYUFBRCxDQUQyQjtPQUFwQzs7QUFJQSwwQkFBb0IsSUFBcEIsQ0FYc0I7QUFZdEIsYUFBTyxVQUFQLENBWnNCO0tBQXhCOzs7O0FBakJ5QixHQUFwQixDQU53QztDQUFsQyIsImZpbGUiOiJkaXN0YW5jZS1pdGVyYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEl0ZXJhdG9yIHRoYXQgdHJhdmVyc2VzIGluIHRoZSByYW5nZSBvZiBbbWluLCBtYXhdLCBzdGVwcGluZ1xuLy8gYnkgZGlzdGFuY2UgZnJvbSBhIGdpdmVuIHN0YXJ0IHBvc2l0aW9uLiBJLmUuIGZvciBbMCwgNF0sIHdpdGhcbi8vIHN0YXJ0IG9mIDIsIHRoaXMgd2lsbCBpdGVyYXRlIDIsIDMsIDEsIDQsIDAuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzdGFydCwgbWluTGluZSwgbWF4TGluZSkge1xuICBsZXQgd2FudEZvcndhcmQgPSB0cnVlLFxuICAgICAgYmFja3dhcmRFeGhhdXN0ZWQgPSBmYWxzZSxcbiAgICAgIGZvcndhcmRFeGhhdXN0ZWQgPSBmYWxzZSxcbiAgICAgIGxvY2FsT2Zmc2V0ID0gMTtcblxuICByZXR1cm4gZnVuY3Rpb24gaXRlcmF0b3IoKSB7XG4gICAgaWYgKHdhbnRGb3J3YXJkICYmICFmb3J3YXJkRXhoYXVzdGVkKSB7XG4gICAgICBpZiAoYmFja3dhcmRFeGhhdXN0ZWQpIHtcbiAgICAgICAgbG9jYWxPZmZzZXQrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdhbnRGb3J3YXJkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRyeWluZyB0byBmaXQgYmV5b25kIHRleHQgbGVuZ3RoLCBhbmQgaWYgbm90LCBjaGVjayBpdCBmaXRzXG4gICAgICAvLyBhZnRlciBvZmZzZXQgbG9jYXRpb24gKG9yIGRlc2lyZWQgbG9jYXRpb24gb24gZmlyc3QgaXRlcmF0aW9uKVxuICAgICAgaWYgKHN0YXJ0ICsgbG9jYWxPZmZzZXQgPD0gbWF4TGluZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxPZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGZvcndhcmRFeGhhdXN0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghYmFja3dhcmRFeGhhdXN0ZWQpIHtcbiAgICAgIGlmICghZm9yd2FyZEV4aGF1c3RlZCkge1xuICAgICAgICB3YW50Rm9yd2FyZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRyeWluZyB0byBmaXQgYmVmb3JlIHRleHQgYmVnaW5uaW5nLCBhbmQgaWYgbm90LCBjaGVjayBpdCBmaXRzXG4gICAgICAvLyBiZWZvcmUgb2Zmc2V0IGxvY2F0aW9uXG4gICAgICBpZiAobWluTGluZSA8PSBzdGFydCAtIGxvY2FsT2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiAtbG9jYWxPZmZzZXQrKztcbiAgICAgIH1cblxuICAgICAgYmFja3dhcmRFeGhhdXN0ZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuIGl0ZXJhdG9yKCk7XG4gICAgfVxuXG4gICAgLy8gV2UgdHJpZWQgdG8gZml0IGh1bmsgYmVmb3JlIHRleHQgYmVnaW5uaW5nIGFuZCBiZXlvbmQgdGV4dCBsZW5naHQsIHRoZW5cbiAgICAvLyBodW5rIGNhbid0IGZpdCBvbiB0aGUgdGV4dC4gUmV0dXJuIHVuZGVmaW5lZFxuICB9O1xufVxuIl19
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/util/params.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/util/params.js
      deleted file mode 100644
      index 6c020b5c..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/lib/util/params.js
      +++ /dev/null
      @@ -1,18 +0,0 @@
      -/*istanbul ignore start*/'use strict';
      -
      -exports.__esModule = true;
      -exports. /*istanbul ignore end*/generateOptions = generateOptions;
      -function generateOptions(options, defaults) {
      -  if (typeof options === 'function') {
      -    defaults.callback = options;
      -  } else if (options) {
      -    for (var name in options) {
      -      /* istanbul ignore else */
      -      if (options.hasOwnProperty(name)) {
      -        defaults[name] = options[name];
      -      }
      -    }
      -  }
      -  return defaults;
      -}
      -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BhcmFtcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCO0FBQVQsU0FBUyxlQUFULENBQXlCLE9BQXpCLEVBQWtDLFFBQWxDLEVBQTRDO0FBQ2pELE1BQUksT0FBTyxPQUFQLEtBQW1CLFVBQW5CLEVBQStCO0FBQ2pDLGFBQVMsUUFBVCxHQUFvQixPQUFwQixDQURpQztHQUFuQyxNQUVPLElBQUksT0FBSixFQUFhO0FBQ2xCLFNBQUssSUFBSSxJQUFKLElBQVksT0FBakIsRUFBMEI7O0FBRXhCLFVBQUksUUFBUSxjQUFSLENBQXVCLElBQXZCLENBQUosRUFBa0M7QUFDaEMsaUJBQVMsSUFBVCxJQUFpQixRQUFRLElBQVIsQ0FBakIsQ0FEZ0M7T0FBbEM7S0FGRjtHQURLO0FBUVAsU0FBTyxRQUFQLENBWGlEO0NBQTVDIiwiZmlsZSI6InBhcmFtcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZU9wdGlvbnMob3B0aW9ucywgZGVmYXVsdHMpIHtcbiAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZGVmYXVsdHMuY2FsbGJhY2sgPSBvcHRpb25zO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMpIHtcbiAgICBmb3IgKGxldCBuYW1lIGluIG9wdGlvbnMpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICBkZWZhdWx0c1tuYW1lXSA9IG9wdGlvbnNbbmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBkZWZhdWx0cztcbn1cbiJdfQ==
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/package.json
      deleted file mode 100644
      index 6629480d..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/package.json
      +++ /dev/null
      @@ -1,98 +0,0 @@
      -{
      -  "name": "diff",
      -  "version": "2.2.3",
      -  "description": "A javascript text diff implementation.",
      -  "keywords": [
      -    "diff",
      -    "javascript"
      -  ],
      -  "maintainers": [
      -    {
      -      "name": "kpdecker",
      -      "email": "kpdecker@gmail.com"
      -    }
      -  ],
      -  "bugs": {
      -    "url": "http://github.com/kpdecker/jsdiff/issues",
      -    "email": "kpdecker@gmail.com"
      -  },
      -  "license": "BSD-3-Clause",
      -  "repository": {
      -    "type": "git",
      -    "url": "git://github.com/kpdecker/jsdiff.git"
      -  },
      -  "engines": {
      -    "node": ">=0.3.1"
      -  },
      -  "main": "./lib",
      -  "scripts": {
      -    "test": "grunt"
      -  },
      -  "dependencies": {},
      -  "devDependencies": {
      -    "async": "^1.4.2",
      -    "babel-core": "^6.0.0",
      -    "babel-loader": "^6.0.0",
      -    "babel-preset-es2015-mod": "^6.3.13",
      -    "chai": "^3.3.0",
      -    "colors": "^1.1.2",
      -    "eslint": "^1.6.0",
      -    "grunt": "^0.4.5",
      -    "grunt-babel": "^6.0.0",
      -    "grunt-clean": "^0.4.0",
      -    "grunt-cli": "^0.1.13",
      -    "grunt-contrib-clean": "^1.0.0",
      -    "grunt-contrib-copy": "^1.0.0",
      -    "grunt-contrib-uglify": "^1.0.0",
      -    "grunt-contrib-watch": "^1.0.0",
      -    "grunt-eslint": "^17.3.1",
      -    "grunt-karma": "^0.12.1",
      -    "grunt-mocha-istanbul": "^3.0.1",
      -    "grunt-mocha-test": "^0.12.7",
      -    "grunt-webpack": "^1.0.11",
      -    "istanbul": "github:kpdecker/istanbul",
      -    "karma": "^0.13.11",
      -    "karma-mocha": "^0.2.0",
      -    "karma-mocha-reporter": "^2.0.0",
      -    "karma-phantomjs-launcher": "^1.0.0",
      -    "karma-sauce-launcher": "^0.3.0",
      -    "karma-sourcemap-loader": "^0.3.6",
      -    "karma-webpack": "^1.7.0",
      -    "mocha": "^2.3.3",
      -    "phantomjs-prebuilt": "^2.1.5",
      -    "semver": "^5.0.3",
      -    "webpack": "^1.12.2",
      -    "webpack-dev-server": "^1.12.0"
      -  },
      -  "optionalDependencies": {},
      -  "babel": {
      -    "sourceMaps": "inline",
      -    "presets": [
      -      "es2015-mod"
      -    ],
      -    "auxiliaryCommentBefore": "istanbul ignore start",
      -    "auxiliaryCommentAfter": "istanbul ignore end"
      -  },
      -  "gitHead": "ec007c364e88c37ccc6b3f94a4cfe163d8389b85",
      -  "homepage": "https://github.com/kpdecker/jsdiff#readme",
      -  "_id": "diff@2.2.3",
      -  "_shasum": "60eafd0d28ee906e4e8ff0a52c1229521033bf99",
      -  "_from": "diff@>=2.2.0 <2.3.0",
      -  "_npmVersion": "3.8.5",
      -  "_nodeVersion": "5.1.1",
      -  "_npmUser": {
      -    "name": "kpdecker",
      -    "email": "kpdecker@gmail.com"
      -  },
      -  "dist": {
      -    "shasum": "60eafd0d28ee906e4e8ff0a52c1229521033bf99",
      -    "tarball": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz"
      -  },
      -  "_npmOperationalInternal": {
      -    "host": "packages-12-west.internal.npmjs.com",
      -    "tmp": "tmp/diff-2.2.3.tgz_1464725207327_0.8068557067308575"
      -  },
      -  "directories": {},
      -  "_resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz",
      -  "readme": "ERROR: No README data found!"
      -}
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/release-notes.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/release-notes.md
      deleted file mode 100644
      index 9dfa3c0b..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/release-notes.md
      +++ /dev/null
      @@ -1,165 +0,0 @@
      -# Release Notes
      -
      -## Development
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.3...master)
      -
      -## v2.2.3 - May 31st, 2016
      -- [#118](https://github.com/kpdecker/jsdiff/pull/118) - Add a fix for applying 0-length destination patches ([@chaaz](https://api.github.com/users/chaaz))
      -- [#115](https://github.com/kpdecker/jsdiff/pull/115) - Fixed grammar in README ([@krizalys](https://api.github.com/users/krizalys))
      -- [#113](https://github.com/kpdecker/jsdiff/pull/113) - fix typo ([@vmazare](https://api.github.com/users/vmazare))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.2...v2.2.3)
      -
      -## v2.2.2 - March 13th, 2016
      -- [#102](https://github.com/kpdecker/jsdiff/issues/102) - diffJson with dates, returns empty curly braces  ([@dr-dimitru](https://api.github.com/users/dr-dimitru))
      -- [#97](https://github.com/kpdecker/jsdiff/issues/97) - Whitespaces & diffWords ([@faiwer](https://api.github.com/users/faiwer))
      -- [#92](https://github.com/kpdecker/jsdiff/pull/92) - Fixes typo in the readme ([@bg451](https://api.github.com/users/bg451))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.1...v2.2.2)
      -
      -## v2.2.1 - November 12th, 2015
      -- [#89](https://github.com/kpdecker/jsdiff/pull/89) - add in display selector to readme ([@FranDias](https://api.github.com/users/FranDias))
      -- [#88](https://github.com/kpdecker/jsdiff/pull/88) - Split diffs based on file headers instead of 'Index:' metadata ([@piranna](https://api.github.com/users/piranna))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.0...v2.2.1)
      -
      -## v2.2.0 - October 29th, 2015
      -- [#80](https://github.com/kpdecker/jsdiff/pull/80) - Fix a typo: applyPath ->  applyPatch ([@fluxxu](https://api.github.com/users/fluxxu))
      -- [#83](https://github.com/kpdecker/jsdiff/pull/83) - Add basic fuzzy matching to applyPatch ([@piranna](https://github.com/piranna))
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.0...v2.2.0)
      -
      -## v2.2.0 - October 29th, 2015
      -- [#80](https://github.com/kpdecker/jsdiff/pull/80) - Fix a typo: applyPath ->  applyPatch ([@fluxxu](https://api.github.com/users/fluxxu))
      -- [#83](https://github.com/kpdecker/jsdiff/pull/83) - Add basic fuzzy matching to applyPatch ([@piranna](https://github.com/piranna))
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.3...v2.2.0)
      -
      -## v2.1.3 - September 30th, 2015
      -- [#78](https://github.com/kpdecker/jsdiff/pull/78) - fix: error throwing when apply patch to empty string ([@21paradox](https://api.github.com/users/21paradox))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.2...v2.1.3)
      -
      -## v2.1.2 - September 23rd, 2015
      -- [#76](https://github.com/kpdecker/jsdiff/issues/76) - diff headers give error ([@piranna](https://api.github.com/users/piranna))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.1...v2.1.2)
      -
      -## v2.1.1 - September 9th, 2015
      -- [#73](https://github.com/kpdecker/jsdiff/issues/73) - Is applyPatches() exposed in the API? ([@davidparsson](https://api.github.com/users/davidparsson))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.0...v2.1.1)
      -
      -## v2.1.0 - August 27th, 2015
      -- [#72](https://github.com/kpdecker/jsdiff/issues/72) - Consider using options object API for flag permutations ([@kpdecker](https://api.github.com/users/kpdecker))
      -- [#70](https://github.com/kpdecker/jsdiff/issues/70) - diffWords treats \n at the end as significant whitespace ([@nesQuick](https://api.github.com/users/nesQuick))
      -- [#69](https://github.com/kpdecker/jsdiff/issues/69) - Missing count ([@wfalkwallace](https://api.github.com/users/wfalkwallace))
      -- [#68](https://github.com/kpdecker/jsdiff/issues/68) - diffLines seems broken ([@wfalkwallace](https://api.github.com/users/wfalkwallace))
      -- [#60](https://github.com/kpdecker/jsdiff/issues/60) - Support multiple diff hunks ([@piranna](https://api.github.com/users/piranna))
      -- [#54](https://github.com/kpdecker/jsdiff/issues/54) - Feature Reuqest: 3-way merge ([@mog422](https://api.github.com/users/mog422))
      -- [#42](https://github.com/kpdecker/jsdiff/issues/42) - Fuzz factor for applyPatch ([@stuartpb](https://api.github.com/users/stuartpb))
      -- Move whitespace ignore out of equals method - 542063c
      -- Include source maps in babel output - 7f7ab21
      -- Merge diff/line and diff/patch implementations - 1597705
      -- Drop map utility method - 1ddc939
      -- Documentation for parsePatch and applyPatches - 27c4b77
      -
      -Compatibility notes:
      -- The undocumented ignoreWhitespace flag has been removed from the Diff equality check directly. This implementation may be copied to diff utilities if dependencies existed on this functionality.
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.0.2...v2.1.0)
      -
      -## v2.0.2 - August 8th, 2015
      -- [#67](https://github.com/kpdecker/jsdiff/issues/67) - cannot require from npm module in node ([@commenthol](https://api.github.com/users/commenthol))
      -- Convert to chai since we don’t support IE8 - a96bbad
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.0.1...v2.0.2)
      -
      -## v2.0.1 - August 7th, 2015
      -- Add release build at proper step - 57542fd
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v2.0.0...v2.0.1)
      -
      -## v2.0.0 - August 7th, 2015
      -- [#66](https://github.com/kpdecker/jsdiff/issues/66) - Add karma and sauce tests ([@kpdecker](https://api.github.com/users/kpdecker))
      -- [#65](https://github.com/kpdecker/jsdiff/issues/65) - Create component repository for bower ([@kpdecker](https://api.github.com/users/kpdecker))
      -- [#64](https://github.com/kpdecker/jsdiff/issues/64) - Automatically call removeEmpty for all tokenizer calls ([@kpdecker](https://api.github.com/users/kpdecker))
      -- [#62](https://github.com/kpdecker/jsdiff/pull/62) - Allow access to structured object representation of patch data ([@bittrance](https://api.github.com/users/bittrance))
      -- [#61](https://github.com/kpdecker/jsdiff/pull/61) - Use svg instead of png to get better image quality ([@PeterDaveHello](https://api.github.com/users/PeterDaveHello))
      -- [#29](https://github.com/kpdecker/jsdiff/issues/29) - word tokenizer works only for 7 bit ascii ([@plasmagunman](https://api.github.com/users/plasmagunman))
      -
      -Compatibility notes:
      -- `this.removeEmpty` is now called automatically for all instances. If this is not desired, this may be overriden on a per instance basis.
      -- The library has been refactored to use some ES6 features. The external APIs should remain the same, but bower projects that directly referenced the repository will now have to point to the [components/jsdiff](https://github.com/components/jsdiff) repository.
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.4.0...v2.0.0)
      -
      -## v1.4.0 - May 6th, 2015
      -- [#57](https://github.com/kpdecker/jsdiff/issues/57) - createPatch -> applyPatch failed. ([@mog422](https://api.github.com/users/mog422))
      -- [#56](https://github.com/kpdecker/jsdiff/pull/56) - Two files patch ([@rgeissert](https://api.github.com/users/rgeissert))
      -- [#14](https://github.com/kpdecker/jsdiff/issues/14) - Flip added and removed order? ([@jakesandlund](https://api.github.com/users/jakesandlund))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.3.2...v1.4.0)
      -
      -## v1.3.2 - March 30th, 2015
      -- [#53](https://github.com/kpdecker/jsdiff/pull/53) - Updated README.MD with Bower installation instructions ([@ofbriggs](https://api.github.com/users/ofbriggs))
      -- [#49](https://github.com/kpdecker/jsdiff/issues/49) - Cannot read property 'oldlines' of undefined ([@nwtn](https://api.github.com/users/nwtn))
      -- [#44](https://github.com/kpdecker/jsdiff/issues/44) - invalid-meta jsdiff is missing "main" entry in bower.json
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.3.1...v1.3.2)
      -
      -## v1.3.1 - March 13th, 2015
      -- [#52](https://github.com/kpdecker/jsdiff/pull/52) - Fix for #51 Wrong result of JsDiff.diffLines ([@felicienfrancois](https://api.github.com/users/felicienfrancois))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.3.0...v1.3.1)
      -
      -## v1.3.0 - March 2nd, 2015
      -- [#47](https://github.com/kpdecker/jsdiff/pull/47) - Adding Diff Trimmed Lines ([@JamesGould123](https://api.github.com/users/JamesGould123))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.2.2...v1.3.0)
      -
      -## v1.2.2 - January 26th, 2015
      -- [#45](https://github.com/kpdecker/jsdiff/pull/45) - Fix AMD module loading ([@pedrocarrico](https://api.github.com/users/pedrocarrico))
      -- [#43](https://github.com/kpdecker/jsdiff/pull/43) - added a bower file ([@nbrustein](https://api.github.com/users/nbrustein))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.2.1...v1.2.2)
      -
      -## v1.2.1 - December 26th, 2014
      -- [#41](https://github.com/kpdecker/jsdiff/pull/41) - change condition of using node export system. ([@ironhee](https://api.github.com/users/ironhee))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.2.0...v1.2.1)
      -
      -## v1.2.0 - November 29th, 2014
      -- [#37](https://github.com/kpdecker/jsdiff/pull/37) - Add support for sentences. ([@vmariano](https://api.github.com/users/vmariano))
      -- [#28](https://github.com/kpdecker/jsdiff/pull/28) - Implemented diffJson ([@papandreou](https://api.github.com/users/papandreou))
      -- [#27](https://github.com/kpdecker/jsdiff/issues/27) - Slow to execute over diffs with a large number of changes ([@termi](https://api.github.com/users/termi))
      -- Allow for optional async diffing - 19385b9
      -- Fix diffChars implementation - eaa44ed
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.1.0...v1.2.0)
      -
      -## v1.1.0 - November 25th, 2014
      -- [#33](https://github.com/kpdecker/jsdiff/pull/33) - AMD and global exports ([@ovcharik](https://api.github.com/users/ovcharik))
      -- [#32](https://github.com/kpdecker/jsdiff/pull/32) - Add support for component ([@vmariano](https://api.github.com/users/vmariano))
      -- [#31](https://github.com/kpdecker/jsdiff/pull/31) - Don't rely on Array.prototype.map ([@papandreou](https://api.github.com/users/papandreou))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.8...v1.1.0)
      -
      -## v1.0.8 - December 22nd, 2013
      -- [#24](https://github.com/kpdecker/jsdiff/pull/24) - Handle windows newlines on non windows machines. ([@benogle](https://api.github.com/users/benogle))
      -- [#23](https://github.com/kpdecker/jsdiff/pull/23) - Prettied up the API formatting a little, and added basic node and web examples ([@airportyh](https://api.github.com/users/airportyh))
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.7...v1.0.8)
      -
      -## v1.0.7 - September 11th, 2013
      -
      -- [#22](https://github.com/kpdecker/jsdiff/pull/22) - Added variant of WordDiff that doesn't ignore whitespace differences ([@papandreou](https://api.github.com/users/papandreou)
      -
      -- Add 0.10 to travis tests - 243a526
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.6...v1.0.7)
      -
      -## v1.0.6 - August 30th, 2013
      -
      -- [#19](https://github.com/kpdecker/jsdiff/pull/19) - Explicitly define contents of npm package ([@sindresorhus](https://api.github.com/users/sindresorhus)
      -
      -[Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.5...v1.0.6)
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/runtime.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/runtime.js
      deleted file mode 100644
      index fd8ca6ea..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/node_modules/diff/runtime.js
      +++ /dev/null
      @@ -1,3 +0,0 @@
      -require('babel-core/register')({
      -  ignore: /\/lib\/|\/node_modules\//
      -});
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/package.json
      deleted file mode 100644
      index 2777a833..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/package.json
      +++ /dev/null
      @@ -1,77 +0,0 @@
      -{
      -  "name": "diff2html",
      -  "version": "1.2.0",
      -  "homepage": "http://rtfpessoa.github.io/diff2html/",
      -  "description": "Fast Diff to colorized HTML",
      -  "keywords": [
      -    "git",
      -    "diff",
      -    "pretty",
      -    "side",
      -    "line",
      -    "side-by-side",
      -    "line-by-line",
      -    "character",
      -    "highlight",
      -    "pretty",
      -    "color",
      -    "html",
      -    "diff2html",
      -    "difftohtml",
      -    "colorized"
      -  ],
      -  "author": {
      -    "name": "Rodrigo Fernandes",
      -    "email": "rtfrodrigo@gmail.com"
      -  },
      -  "repository": {
      -    "type": "git",
      -    "url": "https://www.github.com/rtfpessoa/diff2html.git"
      -  },
      -  "bugs": {
      -    "url": "https://www.github.com/rtfpessoa/diff2html/issues"
      -  },
      -  "engines": {
      -    "node": ">=0.10"
      -  },
      -  "preferGlobal": "true",
      -  "scripts": {
      -    "release": "bash release.sh"
      -  },
      -  "main": "./src/diff2html.js",
      -  "dependencies": {
      -    "diff": "2.2.*"
      -  },
      -  "devDependencies": {
      -    "webpack": "1.12.*",
      -    "uglifyjs": "2.4.*",
      -    "less": "2.5.*"
      -  },
      -  "license": "MIT",
      -  "files": [
      -    "src"
      -  ],
      -  "gitHead": "20e078334b27aacfd57ddc3faa19f26c5da0100c",
      -  "_id": "diff2html@1.2.0",
      -  "_shasum": "8b54af41c180befd9cb1caa130a3d76081ae4a07",
      -  "_from": "diff2html@>=1.2.0 <1.3.0",
      -  "_npmVersion": "3.3.12",
      -  "_nodeVersion": "5.3.0",
      -  "_npmUser": {
      -    "name": "rtfpessoa",
      -    "email": "rtfrodrigo@gmail.com"
      -  },
      -  "dist": {
      -    "shasum": "8b54af41c180befd9cb1caa130a3d76081ae4a07",
      -    "tarball": "https://registry.npmjs.org/diff2html/-/diff2html-1.2.0.tgz"
      -  },
      -  "maintainers": [
      -    {
      -      "name": "rtfpessoa",
      -      "email": "rtfrodrigo@gmail.com"
      -    }
      -  ],
      -  "directories": {},
      -  "_resolved": "https://registry.npmjs.org/diff2html/-/diff2html-1.2.0.tgz",
      -  "readme": "ERROR: No README data found!"
      -}
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/diff-parser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/diff-parser.js
      deleted file mode 100644
      index 4d78a519..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/diff-parser.js
      +++ /dev/null
      @@ -1,226 +0,0 @@
      -/*
      - *
      - * Diff Parser (diff-parser.js)
      - * Author: rtfpessoa
      - *
      - */
      -
      -(function(ctx, undefined) {
      -
      -  var utils = require('./utils.js').Utils;
      -
      -  var LINE_TYPE = {
      -    INSERTS: 'd2h-ins',
      -    DELETES: 'd2h-del',
      -    INSERT_CHANGES: 'd2h-ins d2h-change',
      -    DELETE_CHANGES: 'd2h-del d2h-change',
      -    CONTEXT: 'd2h-cntx',
      -    INFO: 'd2h-info'
      -  };
      -
      -  function DiffParser() {
      -  }
      -
      -  DiffParser.prototype.LINE_TYPE = LINE_TYPE;
      -
      -  DiffParser.prototype.generateDiffJson = function(diffInput) {
      -    var files = [];
      -    var currentFile = null;
      -    var currentBlock = null;
      -    var oldLine = null;
      -    var newLine = null;
      -
      -    var saveBlock = function() {
      -      /* Add previous block(if exists) before start a new file */
      -      if (currentBlock) {
      -        currentFile.blocks.push(currentBlock);
      -        currentBlock = null;
      -      }
      -    };
      -
      -    var saveFile = function() {
      -      /*
      -       * Add previous file(if exists) before start a new one
      -       * if it has name (to avoid binary files errors)
      -       */
      -      if (currentFile && currentFile.newName) {
      -        files.push(currentFile);
      -        currentFile = null;
      -      }
      -    };
      -
      -    var startFile = function() {
      -      saveBlock();
      -      saveFile();
      -
      -      /* Create file structure */
      -      currentFile = {};
      -      currentFile.blocks = [];
      -      currentFile.deletedLines = 0;
      -      currentFile.addedLines = 0;
      -    };
      -
      -    var startBlock = function(line) {
      -      saveBlock();
      -
      -      var values;
      -
      -      if (values = /^@@ -(\d+),\d+ \+(\d+),\d+ @@.*/.exec(line)) {
      -        currentFile.isCombined = false;
      -      } else if (values = /^@@@ -(\d+),\d+ -\d+,\d+ \+(\d+),\d+ @@@.*/.exec(line)) {
      -        currentFile.isCombined = true;
      -      } else {
      -        values = [0, 0];
      -        currentFile.isCombined = false;
      -      }
      -
      -      oldLine = values[1];
      -      newLine = values[2];
      -
      -      /* Create block metadata */
      -      currentBlock = {};
      -      currentBlock.lines = [];
      -      currentBlock.oldStartLine = oldLine;
      -      currentBlock.newStartLine = newLine;
      -      currentBlock.header = line;
      -    };
      -
      -    var createLine = function(line) {
      -      var currentLine = {};
      -      currentLine.content = line;
      -
      -      var newLinePrefixes = !currentFile.isCombined ? ['+'] : ['+', ' +'];
      -      var delLinePrefixes = !currentFile.isCombined ? ['-'] : ['-', ' -'];
      -
      -      /* Fill the line data */
      -      if (utils.startsWith(line, newLinePrefixes)) {
      -        currentFile.addedLines++;
      -
      -        currentLine.type = LINE_TYPE.INSERTS;
      -        currentLine.oldNumber = null;
      -        currentLine.newNumber = newLine++;
      -
      -        currentBlock.lines.push(currentLine);
      -
      -      } else if (utils.startsWith(line, delLinePrefixes)) {
      -        currentFile.deletedLines++;
      -
      -        currentLine.type = LINE_TYPE.DELETES;
      -        currentLine.oldNumber = oldLine++;
      -        currentLine.newNumber = null;
      -
      -        currentBlock.lines.push(currentLine);
      -
      -      } else {
      -        currentLine.type = LINE_TYPE.CONTEXT;
      -        currentLine.oldNumber = oldLine++;
      -        currentLine.newNumber = newLine++;
      -
      -        currentBlock.lines.push(currentLine);
      -      }
      -    };
      -
      -    var diffLines = diffInput.split('\n');
      -
      -    /* Diff */
      -    var oldMode = /^old mode (\d{6})/;
      -    var newMode = /^new mode (\d{6})/;
      -    var deletedFileMode = /^deleted file mode (\d{6})/;
      -    var newFileMode = /^new file mode (\d{6})/;
      -
      -    var copyFrom = /^copy from (.+)/;
      -    var copyTo = /^copy to (.+)/;
      -
      -    var renameFrom = /^rename from (.+)/;
      -    var renameTo = /^rename to (.+)/;
      -
      -    var similarityIndex = /^similarity index (\d+)%/;
      -    var dissimilarityIndex = /^dissimilarity index (\d+)%/;
      -    var index = /^index ([0-9a-z]+)..([0-9a-z]+) (\d{6})?/;
      -
      -    /* Combined Diff */
      -    var combinedIndex = /^index ([0-9a-z]+),([0-9a-z]+)..([0-9a-z]+)/;
      -    var combinedMode = /^mode (\d{6}),(\d{6})..(\d{6})/;
      -    var combinedNewFile = /^new file mode (\d{6})/;
      -    var combinedDeletedFile = /^deleted file mode (\d{6}),(\d{6})/;
      -
      -    diffLines.forEach(function(line) {
      -      // Unmerged paths, and possibly other non-diffable files
      -      // https://github.com/scottgonzalez/pretty-diff/issues/11
      -      // Also, remove some useless lines
      -      if (!line || utils.startsWith(line, '*')) {
      -        return;
      -      }
      -
      -      var values = [];
      -      if (utils.startsWith(line, 'diff')) {
      -        startFile();
      -      } else if (currentFile && !currentFile.oldName && (values = /^--- [aiwco]\/(.+)$/.exec(line))) {
      -        currentFile.oldName = values[1];
      -        currentFile.language = getExtension(currentFile.oldName, currentFile.language);
      -      } else if (currentFile && !currentFile.newName && (values = /^\+\+\+ [biwco]?\/(.+)$/.exec(line))) {
      -        currentFile.newName = values[1];
      -        currentFile.language = getExtension(currentFile.newName, currentFile.language);
      -      } else if (currentFile && utils.startsWith(line, '@@')) {
      -        startBlock(line);
      -      } else if ((values = oldMode.exec(line))) {
      -        currentFile.oldMode = values[1];
      -      } else if ((values = newMode.exec(line))) {
      -        currentFile.newMode = values[1];
      -      } else if ((values = deletedFileMode.exec(line))) {
      -        currentFile.deletedFileMode = values[1];
      -      } else if ((values = newFileMode.exec(line))) {
      -        currentFile.newFileMode = values[1];
      -      } else if ((values = copyFrom.exec(line))) {
      -        currentFile.oldName = values[1];
      -        currentFile.isCopy = true;
      -      } else if ((values = copyTo.exec(line))) {
      -        currentFile.newName = values[1];
      -        currentFile.isCopy = true;
      -      } else if ((values = renameFrom.exec(line))) {
      -        currentFile.oldName = values[1];
      -        currentFile.isRename = true;
      -      } else if ((values = renameTo.exec(line))) {
      -        currentFile.newName = values[1];
      -        currentFile.isRename = true;
      -      } else if ((values = similarityIndex.exec(line))) {
      -        currentFile.unchangedPercentage = values[1];
      -      } else if ((values = dissimilarityIndex.exec(line))) {
      -        currentFile.changedPercentage = values[1];
      -      } else if ((values = index.exec(line))) {
      -        currentFile.checksumBefore = values[1];
      -        currentFile.checksumAfter = values[2];
      -        values[2] && (currentFile.mode = values[3]);
      -      } else if ((values = combinedIndex.exec(line))) {
      -        currentFile.checksumBefore = [values[2], values[3]];
      -        currentFile.checksumAfter = values[1];
      -      } else if ((values = combinedMode.exec(line))) {
      -        currentFile.oldMode = [values[2], values[3]];
      -        currentFile.newMode = values[1];
      -      } else if ((values = combinedNewFile.exec(line))) {
      -        currentFile.newFileMode = values[1];
      -      } else if ((values = combinedDeletedFile.exec(line))) {
      -        currentFile.deletedFileMode = values[1];
      -      } else if (currentBlock) {
      -        createLine(line);
      -      }
      -    });
      -
      -    saveBlock();
      -    saveFile();
      -
      -    return files;
      -  };
      -
      -  function getExtension(filename, language) {
      -    var nameSplit = filename.split('.');
      -    if (nameSplit.length > 1) {
      -      return nameSplit[nameSplit.length - 1];
      -    } else {
      -      return language;
      -    }
      -  }
      -
      -  module.exports['DiffParser'] = new DiffParser();
      -
      -})(this);
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/diff2html.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/diff2html.js
      deleted file mode 100644
      index 7914f0f2..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/diff2html.js
      +++ /dev/null
      @@ -1,110 +0,0 @@
      -/*
      - *
      - * Diff to HTML (diff2html.js)
      - * Author: rtfpessoa
      - *
      - */
      -
      -(function(ctx, undefined) {
      -
      -  var diffParser = require('./diff-parser.js').DiffParser;
      -  var fileLister = require('./file-list-printer.js').FileListPrinter;
      -  var htmlPrinter = require('./html-printer.js').HtmlPrinter;
      -
      -  function Diff2Html() {
      -  }
      -
      -  /*
      -   * Line diff type configuration
      -   var config = {
      -   "wordByWord": true, // (default)
      -   // OR
      -   "charByChar": true
      -   };
      -   */
      -
      -  /*
      -   * Generates json object from string diff input
      -   */
      -  Diff2Html.prototype.getJsonFromDiff = function(diffInput) {
      -    return diffParser.generateDiffJson(diffInput);
      -  };
      -
      -  /*
      -   * Generates the html diff. The config parameter configures the output/input formats and other options
      -   */
      -  Diff2Html.prototype.getPrettyHtml = function(diffInput, config) {
      -    var configOrEmpty = config || {};
      -
      -    var diffJson = diffInput;
      -    if(!configOrEmpty.inputFormat || configOrEmpty.inputFormat === 'diff') {
      -      diffJson = diffParser.generateDiffJson(diffInput);
      -    }
      -
      -    var fileList = "";
      -    if(configOrEmpty.showFiles === true) {
      -      fileList = fileLister.generateFileList(diffJson, configOrEmpty);
      -    }
      -
      -    var diffOutput = "";
      -    if(configOrEmpty.outputFormat === 'side-by-side') {
      -      diffOutput = htmlPrinter.generateSideBySideJsonHtml(diffJson, configOrEmpty);
      -    } else {
      -      diffOutput = htmlPrinter.generateLineByLineJsonHtml(diffJson, configOrEmpty);
      -    }
      -
      -    return fileList + diffOutput
      -  };
      -
      -
      -  /*
      -   * Deprecated methods - The following methods exist only to maintain compatibility with previous versions
      -   */
      -
      -  /*
      -   * Generates pretty html from string diff input
      -   */
      -  Diff2Html.prototype.getPrettyHtmlFromDiff = function(diffInput, config) {
      -    var configOrEmpty = config || {};
      -    configOrEmpty['inputFormat'] = 'diff';
      -    configOrEmpty['outputFormat'] = 'line-by-line';
      -    return this.getPrettyHtml(diffInput, configOrEmpty)
      -  };
      -
      -  /*
      -   * Generates pretty html from a json object
      -   */
      -  Diff2Html.prototype.getPrettyHtmlFromJson = function(diffJson, config) {
      -    var configOrEmpty = config || {};
      -    configOrEmpty['inputFormat'] = 'json';
      -    configOrEmpty['outputFormat'] = 'line-by-line';
      -    return this.getPrettyHtml(diffJson, configOrEmpty)
      -  };
      -
      -  /*
      -   * Generates pretty side by side html from string diff input
      -   */
      -  Diff2Html.prototype.getPrettySideBySideHtmlFromDiff = function(diffInput, config) {
      -    var configOrEmpty = config || {};
      -    configOrEmpty['inputFormat'] = 'diff';
      -    configOrEmpty['outputFormat'] = 'side-by-side';
      -    return this.getPrettyHtml(diffInput, configOrEmpty)
      -  };
      -
      -  /*
      -   * Generates pretty side by side html from a json object
      -   */
      -  Diff2Html.prototype.getPrettySideBySideHtmlFromJson = function(diffJson, config) {
      -    var configOrEmpty = config || {};
      -    configOrEmpty['inputFormat'] = 'json';
      -    configOrEmpty['outputFormat'] = 'side-by-side';
      -    return this.getPrettyHtml(diffJson, configOrEmpty)
      -  };
      -
      -  var diffName = 'Diff2Html';
      -  var diffObject = new Diff2Html();
      -  module.exports[diffName] = diffObject;
      -  // Expose diff2html in the browser
      -  global[diffName] = diffObject;
      -
      -})(this);
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/file-list-printer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/file-list-printer.js
      deleted file mode 100644
      index 8cb2f765..00000000
      --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/file-list-printer.js
      +++ /dev/null
      @@ -1,43 +0,0 @@
      -/*
      - *
      - * FileListPrinter (file-list-printer.js)
      - * Author: nmatpt
      - *
      - */
      -
      -(function (ctx, undefined) {
      -
      -    var printerUtils = require('./printer-utils.js').PrinterUtils;
      -    var utils = require('./utils.js').Utils;
      -
      -    function FileListPrinter() {
      -    }
      -
      -    FileListPrinter.prototype.generateFileList = function (diffFiles) {
      -        var hideId = utils.getRandomId("d2h-hide"); //necessary if there are 2 elements like this in the same page
      -        var showId = utils.getRandomId("d2h-show");
      -        return '
      \n' + - '
      Files changed (' + diffFiles.length + ')  
      \n' + - ' +\n' + - ' -\n' + - '
      \n' + - ' \n' + - - - diffFiles.map(function (file) { - return ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' - }).join('\n') + - '
      \n' + - ' +' + file.addedLines + '\n' + - ' \n' + - ' -' + file.deletedLines + '\n' + - '  ' + printerUtils.getDiffName(file) + '
      \n'; - }; - - module.exports['FileListPrinter'] = new FileListPrinter(); - -})(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/html-printer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/html-printer.js deleted file mode 100644 index aa3588fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/html-printer.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * - * HtmlPrinter (html-printer.js) - * Author: rtfpessoa - * - */ - -(function(ctx, undefined) { - - var lineByLinePrinter = require('./line-by-line-printer.js').LineByLinePrinter; - var sideBySidePrinter = require('./side-by-side-printer.js').SideBySidePrinter; - - function HtmlPrinter() { - } - - HtmlPrinter.prototype.generateLineByLineJsonHtml = lineByLinePrinter.generateLineByLineJsonHtml; - - HtmlPrinter.prototype.generateSideBySideJsonHtml = sideBySidePrinter.generateSideBySideJsonHtml; - - module.exports['HtmlPrinter'] = new HtmlPrinter(); - -})(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/line-by-line-printer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/line-by-line-printer.js deleted file mode 100644 index 834f20c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/line-by-line-printer.js +++ /dev/null @@ -1,201 +0,0 @@ -/* - * - * LineByLinePrinter (line-by-line-printer.js) - * Author: rtfpessoa - * - */ - -(function(ctx, undefined) { - - var diffParser = require('./diff-parser.js').DiffParser; - var printerUtils = require('./printer-utils.js').PrinterUtils; - var utils = require('./utils.js').Utils; - var Rematch = require('./rematch.js').Rematch; - - function LineByLinePrinter() { - } - - LineByLinePrinter.prototype.generateLineByLineJsonHtml = function(diffFiles, config) { - return '
      \n' + - diffFiles.map(function(file) { - - var diffs; - if (file.blocks.length) { - diffs = generateFileHtml(file, config); - } else { - diffs = generateEmptyDiff(); - } - - return '
      \n' + - '
      \n' + - '
      \n' + - ' ' + - ' +' + file.addedLines + '\n' + - ' \n' + - ' ' + - ' -' + file.deletedLines + '\n' + - ' \n' + - '
      \n' + - '
      ' + printerUtils.getDiffName(file) + '
      \n' + - '
      \n' + - '
      \n' + - '
      \n' + - ' \n' + - ' \n' + - ' ' + diffs + - ' \n' + - '
      \n' + - '
      \n' + - '
      \n' + - '
      \n'; - }).join('\n') + - '
      \n'; - }; - - var matcher=Rematch.rematch(function(a,b) { - var amod = a.content.substr(1), - bmod = b.content.substr(1); - return Rematch.distance(amod, bmod); - }); - - function generateFileHtml(file, config) { - return file.blocks.map(function(block) { - - var lines = '\n' + - ' \n' + - ' ' + - '
      ' + utils.escape(block.header) + '
      ' + - ' \n' + - '\n'; - - var oldLines = []; - var newLines = []; - function processChangeBlock() { - var matches; - var insertType; - var deleteType; - var doMatching = config.matching === "lines" || config.matching === "words"; - if (doMatching) { - matches = matcher(oldLines, newLines); - insertType = diffParser.LINE_TYPE.INSERT_CHANGES; - deleteType = diffParser.LINE_TYPE.DELETE_CHANGES; - } else { - matches = [[oldLines,newLines]]; - insertType = diffParser.LINE_TYPE.INSERTS; - deleteType = diffParser.LINE_TYPE.DELETES; - } - matches.forEach(function(match){ - var oldLines = match[0]; - var newLines = match[1]; - var processedOldLines = []; - var processedNewLines = []; - var j = 0; - var oldLine, newLine, - common = Math.min(oldLines.length, newLines.length), - max = Math.max(oldLines.length, newLines.length); - for (j = 0; j < common; j++) { - oldLine = oldLines[j]; - newLine = newLines[j]; - - config.isCombined = file.isCombined; - var diff = printerUtils.diffHighlight(oldLine.content, newLine.content, config); - - processedOldLines += - generateLineHtml(deleteType, oldLine.oldNumber, oldLine.newNumber, - diff.first.line, diff.first.prefix); - processedNewLines += - generateLineHtml(insertType, newLine.oldNumber, newLine.newNumber, - diff.second.line, diff.second.prefix); - } - - lines += processedOldLines + processedNewLines; - lines += processLines(oldLines.slice(common), newLines.slice(common)); - - processedOldLines = []; - processedNewLines = []; - }); - oldLines = []; - newLines = []; - } - - for (var i = 0; i < block.lines.length; i++) { - var line = block.lines[i]; - var escapedLine = utils.escape(line.content); - - if ( line.type !== diffParser.LINE_TYPE.INSERTS && - (newLines.length > 0 || (line.type !== diffParser.LINE_TYPE.DELETES && oldLines.length > 0))) { - processChangeBlock(); - } - if (line.type == diffParser.LINE_TYPE.CONTEXT) { - lines += generateLineHtml(line.type, line.oldNumber, line.newNumber, escapedLine); - } else if (line.type == diffParser.LINE_TYPE.INSERTS && !oldLines.length) { - lines += generateLineHtml(line.type, line.oldNumber, line.newNumber, escapedLine); - } else if (line.type == diffParser.LINE_TYPE.DELETES) { - oldLines.push(line); - } else if (line.type == diffParser.LINE_TYPE.INSERTS && !!oldLines.length) { - newLines.push(line); - } else { - console.error('unknown state in html line-by-line generator'); - processChangeBlock(); - } - } - - processChangeBlock(); - - return lines; - }).join('\n'); - } - - function processLines(oldLines, newLines) { - var lines = ''; - - for (j = 0; j < oldLines.length; j++) { - var oldLine = oldLines[j]; - var oldEscapedLine = utils.escape(oldLine.content); - lines += generateLineHtml(oldLine.type, oldLine.oldNumber, oldLine.newNumber, oldEscapedLine); - } - - for (j = 0; j < newLines.length; j++) { - var newLine = newLines[j]; - var newEscapedLine = utils.escape(newLine.content); - lines += generateLineHtml(newLine.type, newLine.oldNumber, newLine.newNumber, newEscapedLine); - } - - return lines; - } - - function generateLineHtml(type, oldNumber, newNumber, content, prefix) { - var htmlPrefix = ''; - if (prefix) { - htmlPrefix = '' + prefix + ''; - } - - var htmlContent = ''; - if (content) { - htmlContent = '' + content + ''; - } - - return '\n' + - ' ' + - '
      ' + utils.valueOrEmpty(oldNumber) + '
      ' + - '
      ' + utils.valueOrEmpty(newNumber) + '
      ' + - ' \n' + - ' ' + - '
      ' + htmlPrefix + htmlContent + '
      ' + - ' \n' + - '\n'; - } - - function generateEmptyDiff() { - return '\n' + - ' ' + - '
      ' + - 'File without changes' + - '
      ' + - ' \n' + - '\n'; - } - - module.exports['LineByLinePrinter'] = new LineByLinePrinter(); - -})(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/printer-utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/printer-utils.js deleted file mode 100644 index 6e69c074..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/printer-utils.js +++ /dev/null @@ -1,140 +0,0 @@ -/* - * - * PrinterUtils (printer-utils.js) - * Author: rtfpessoa - * - */ - -(function(ctx, undefined) { - - var jsDiff = require('diff'); - var utils = require('./utils.js').Utils; - var Rematch = require('./rematch.js').Rematch; - - function PrinterUtils() { - } - - PrinterUtils.prototype.getHtmlId = function(file) { - var hashCode = function(text) { - var hash = 0, i, chr, len; - if (text.length == 0) return hash; - for (i = 0, len = text.length; i < len; i++) { - chr = text.charCodeAt(i); - hash = ((hash << 5) - hash) + chr; - hash |= 0; // Convert to 32bit integer - } - return hash; - }; - - return "d2h-" + hashCode(this.getDiffName(file)).toString().slice(-6); - }; - - PrinterUtils.prototype.getDiffName = function(file) { - var oldFilename = file.oldName; - var newFilename = file.newName; - - if (oldFilename && newFilename - && oldFilename !== newFilename - && !isDeletedName(newFilename)) { - return oldFilename + ' -> ' + newFilename; - } else if (newFilename && !isDeletedName(newFilename)) { - return newFilename; - } else if (oldFilename) { - return oldFilename; - } else { - return 'Unknown filename'; - } - }; - - PrinterUtils.prototype.diffHighlight = function(diffLine1, diffLine2, config) { - var lineStart1, lineStart2; - - var prefixSize = 1; - - if (config.isCombined) { - prefixSize = 2; - } - - lineStart1 = diffLine1.substr(0, prefixSize); - lineStart2 = diffLine2.substr(0, prefixSize); - - diffLine1 = diffLine1.substr(prefixSize); - diffLine2 = diffLine2.substr(prefixSize); - - var diff; - if (config.charByChar) { - diff = jsDiff.diffChars(diffLine1, diffLine2); - } else { - diff = jsDiff.diffWordsWithSpace(diffLine1, diffLine2); - } - - var highlightedLine = ''; - - var changedWords = []; - if (!config.charByChar && config.matching === 'words') { - var treshold = 0.25; - if (typeof(config.matchWordsThreshold) !== "undefined") { - treshold = config.matchWordsThreshold; - } - var matcher = Rematch.rematch(function(a, b) { - var amod = a.value, - bmod = b.value, - result = Rematch.distance(amod, bmod); - return result; - }); - var removed = diff.filter(function isRemoved(element){ - return element.removed; - }); - var added = diff.filter(function isAdded(element){ - return element.added; - }); - var chunks = matcher(added, removed); - chunks = chunks.forEach(function(chunk){ - if(chunk[0].length === 1 && chunk[1].length === 1) { - var dist = Rematch.distance(chunk[0][0].value, chunk[1][0].value) - if (dist < treshold) { - changedWords.push(chunk[0][0]); - changedWords.push(chunk[1][0]); - } - } - }); - } - diff.forEach(function(part) { - var addClass = changedWords.indexOf(part) > -1 ? ' class="d2h-change"' : ''; - var elemType = part.added ? 'ins' : part.removed ? 'del' : null; - var escapedValue = utils.escape(part.value); - - if (elemType !== null) { - highlightedLine += '<' + elemType + addClass + '>' + escapedValue + ''; - } else { - highlightedLine += escapedValue; - } - }); - - return { - first: { - prefix: lineStart1, - line: removeIns(highlightedLine) - }, - second: { - prefix: lineStart2, - line: removeDel(highlightedLine) - } - } - }; - - function isDeletedName(name) { - return name === 'dev/null'; - } - - function removeIns(line) { - return line.replace(/(]*>((.|\n)*?)<\/ins>)/g, ''); - } - - function removeDel(line) { - return line.replace(/(]*>((.|\n)*?)<\/del>)/g, ''); - } - - module.exports['PrinterUtils'] = new PrinterUtils(); - -})(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/rematch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/rematch.js deleted file mode 100644 index 1cbe50a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/rematch.js +++ /dev/null @@ -1,134 +0,0 @@ -/* - * - * Rematch (rematch.js) - * Matching two sequences of objects by similarity - * Author: W. Illmeyer, Nexxar GmbH - * - */ - -(function(ctx, undefined) { - var Rematch = {}; - Rematch.arrayToString = function arrayToString(a) { - if (Object.prototype.toString.apply(a,[]) === "[object Array]") { - return "[" + a.map(arrayToString).join(", ") + "]"; - } else { - return a; - } - } - - /* - Copyright (c) 2011 Andrei Mackenzie - 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. - */ - function levenshtein(a, b){ - if(a.length == 0) return b.length; - if(b.length == 0) return a.length; - - var matrix = []; - - // increment along the first column of each row - var i; - for(i = 0; i <= b.length; i++){ - matrix[i] = [i]; - } - - // increment each column in the first row - var j; - for(j = 0; j <= a.length; j++){ - matrix[0][j] = j; - } - - // Fill in the rest of the matrix - for(i = 1; i <= b.length; i++){ - for(j = 1; j <= a.length; j++){ - if(b.charAt(i-1) == a.charAt(j-1)){ - matrix[i][j] = matrix[i-1][j-1]; - } else { - matrix[i][j] = Math.min(matrix[i-1][j-1] + 1, // substitution - Math.min(matrix[i][j-1] + 1, // insertion - matrix[i-1][j] + 1)); // deletion - } - } - } - return matrix[b.length][a.length]; - } - Rematch.levenshtein = levenshtein; - - Rematch.distance = function distance(x,y) { - x=x.trim(); - y=y.trim(); - var lev = levenshtein(x,y), - score = lev / (x.length + y.length); - return score; - } - - Rematch.rematch = function rematch(distanceFunction) { - - function findBestMatch(a, b, cache) { - var cachecount = 0; - - for(var key in cache) { - cachecount++; - } - var bestMatchDist = Infinity; - var bestMatch; - for (var i = 0; i < a.length; ++i) { - for (var j = 0; j < b.length; ++j) { - var cacheKey = JSON.stringify([a[i], b[j]]); - var md; - if (cache.hasOwnProperty(cacheKey)) { - md = cache[cacheKey]; - } else { - md = distanceFunction(a[i], b[j]); - cache[cacheKey] = md; - } - if (md < bestMatchDist) { - bestMatchDist = md; - bestMatch = { indexA: i, indexB: j, score: bestMatchDist }; - } - } - } - return bestMatch; - } - function group(a, b, level, cache) { - - if (typeof(cache)==="undefined") { - cache = {}; - } - var minLength = Math.min(a.length, b.length); - var bm = findBestMatch(a,b, cache); - if (!level) { - level = 0; - } - if (!bm || (a.length + b.length < 3)) { - return [[a, b]]; - } - var a1 = a.slice(0, bm.indexA), - b1 = b.slice(0, bm.indexB), - aMatch = [a[bm.indexA]], - bMatch = [b[bm.indexB]], - tailA = bm.indexA + 1, - tailB = bm.indexB + 1, - a2 = a.slice(tailA), - b2 = b.slice(tailB); - - var group1 = group(a1, b1, level+1, cache); - var groupMatch = group(aMatch, bMatch, level+1, cache); - var group2 = group(a2, b2, level+1, cache); - var result = groupMatch; - if (bm.indexA > 0 || bm.indexB > 0) { - result = group1.concat(result); - } - if (a.length > tailA || b.length > tailB ) { - result = result.concat(group2); - } - return result; - } - return group; - } - - module.exports['Rematch'] = Rematch; - -})(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/side-by-side-printer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/side-by-side-printer.js deleted file mode 100644 index 22b55c8c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/side-by-side-printer.js +++ /dev/null @@ -1,250 +0,0 @@ -/* - * - * HtmlPrinter (html-printer.js) - * Author: rtfpessoa - * - */ - -(function(ctx, undefined) { - - var diffParser = require('./diff-parser.js').DiffParser; - var printerUtils = require('./printer-utils.js').PrinterUtils; - var utils = require('./utils.js').Utils; - var Rematch = require('./rematch.js').Rematch; - - function SideBySidePrinter() { - } - - SideBySidePrinter.prototype.generateSideBySideJsonHtml = function(diffFiles, config) { - return '
      \n' + - diffFiles.map(function(file) { - - var diffs; - if (file.blocks.length) { - diffs = generateSideBySideFileHtml(file, config); - } else { - diffs = generateEmptyDiff(); - } - - return '
      \n' + - '
      \n' + - '
      \n' + - ' ' + - ' +' + file.addedLines + '\n' + - ' \n' + - ' ' + - ' -' + file.deletedLines + '\n' + - ' \n' + - '
      \n' + - '
      ' + printerUtils.getDiffName(file) + '
      \n' + - '
      \n' + - '
      \n' + - '
      \n' + - '
      \n' + - ' \n' + - ' \n' + - ' ' + diffs.left + - ' \n' + - '
      \n' + - '
      \n' + - '
      \n' + - '
      \n' + - '
      \n' + - ' \n' + - ' \n' + - ' ' + diffs.right + - ' \n' + - '
      \n' + - '
      \n' + - '
      \n' + - '
      \n' + - '
      \n'; - }).join('\n') + - '
      \n'; - }; - - var matcher=Rematch.rematch(function(a,b) { - var amod = a.content.substr(1), - bmod = b.content.substr(1); - return Rematch.distance(amod, bmod); - }); - - function generateSideBySideFileHtml(file, config) { - var fileHtml = {}; - fileHtml.left = ''; - fileHtml.right = ''; - - file.blocks.forEach(function(block) { - - fileHtml.left += '\n' + - ' \n' + - ' ' + - '
      ' + - ' ' + utils.escape(block.header) + - '
      ' + - ' \n' + - '\n'; - - fileHtml.right += '\n' + - ' \n' + - ' ' + - '
      ' + - ' \n' + - '\n'; - - var oldLines = []; - var newLines = []; - function processChangeBlock() { - var matches; - var insertType; - var deleteType; - var doMatching = config.matching === "lines" || config.matching === "words"; - if (doMatching) { - matches = matcher(oldLines, newLines); - insertType = diffParser.LINE_TYPE.INSERT_CHANGES; - deleteType = diffParser.LINE_TYPE.DELETE_CHANGES; - } else { - matches = [[oldLines,newLines]]; - insertType = diffParser.LINE_TYPE.INSERTS; - deleteType = diffParser.LINE_TYPE.DELETES; - } - matches.forEach(function(match){ - var oldLines = match[0]; - var newLines = match[1]; - var tmpHtml; - var j = 0; - var oldLine, newLine, - common = Math.min(oldLines.length, newLines.length), - max = Math.max(oldLines.length, newLines.length); - for (j = 0; j < common; j++) { - oldLine = oldLines[j]; - newLine = newLines[j]; - - config.isCombined = file.isCombined; - - var diff = printerUtils.diffHighlight(oldLine.content, newLine.content, config); - - fileHtml.left += - generateSingleLineHtml(deleteType, oldLine.oldNumber, - diff.first.line, diff.first.prefix); - fileHtml.right += - generateSingleLineHtml(insertType, newLine.newNumber, - diff.second.line, diff.second.prefix); - } - if (max > common) { - var oldSlice = oldLines.slice(common), - newSlice = newLines.slice(common); - tmpHtml = processLines(oldLines.slice(common), newLines.slice(common)); - fileHtml.left += tmpHtml.left; - fileHtml.right += tmpHtml.right; - } - }); - oldLines = []; - newLines = []; - } - for (var i = 0; i < block.lines.length; i++) { - var line = block.lines[i]; - var prefix = line[0]; - var escapedLine = utils.escape(line.content.substr(1)); - - if ( line.type !== diffParser.LINE_TYPE.INSERTS && - (newLines.length > 0 || (line.type !== diffParser.LINE_TYPE.DELETES && oldLines.length > 0))) { - processChangeBlock(); - } - if (line.type == diffParser.LINE_TYPE.CONTEXT) { - fileHtml.left += generateSingleLineHtml(line.type, line.oldNumber, escapedLine, prefix); - fileHtml.right += generateSingleLineHtml(line.type, line.newNumber, escapedLine, prefix); - } else if (line.type == diffParser.LINE_TYPE.INSERTS && !oldLines.length) { - fileHtml.left += generateSingleLineHtml(diffParser.LINE_TYPE.CONTEXT, '', '', ''); - fileHtml.right += generateSingleLineHtml(line.type, line.newNumber, escapedLine, prefix); - } else if (line.type == diffParser.LINE_TYPE.DELETES) { - oldLines.push(line); - } else if (line.type == diffParser.LINE_TYPE.INSERTS && !!oldLines.length) { - newLines.push(line); - } else { - console.error('unknown state in html side-by-side generator'); - processChangeBlock(); - } - } - - processChangeBlock(); - }); - - return fileHtml; - } - - function processLines(oldLines, newLines) { - var fileHtml = {}; - fileHtml.left = ''; - fileHtml.right = ''; - - var maxLinesNumber = Math.max(oldLines.length, newLines.length); - for (j = 0; j < maxLinesNumber; j++) { - var oldLine = oldLines[j]; - var newLine = newLines[j]; - var oldContent; - var newContent; - var oldPrefix; - var newPrefix; - if (oldLine) { - oldContent = utils.escape(oldLine.content.substr(1)); - oldPrefix = oldLine.content[0]; - } - if (newLine) { - newContent = utils.escape(newLine.content.substr(1)); - newPrefix = newLine.content[0]; - } - if (oldLine && newLine) { - fileHtml.left += generateSingleLineHtml(oldLine.type, oldLine.oldNumber, oldContent, oldPrefix); - fileHtml.right += generateSingleLineHtml(newLine.type, newLine.newNumber, newContent, newPrefix); - } else if (oldLine) { - fileHtml.left += generateSingleLineHtml(oldLine.type, oldLine.oldNumber, oldContent, oldPrefix); - fileHtml.right += generateSingleLineHtml(diffParser.LINE_TYPE.CONTEXT, '', '', ''); - } else if (newLine) { - fileHtml.left += generateSingleLineHtml(diffParser.LINE_TYPE.CONTEXT, '', '', ''); - fileHtml.right += generateSingleLineHtml(newLine.type, newLine.newNumber, newContent, newPrefix); - } else { - console.error('How did it get here?'); - } - } - - return fileHtml; - } - - function generateSingleLineHtml(type, number, content, prefix) { - var htmlPrefix = ''; - if (prefix) { - htmlPrefix = '' + prefix + ''; - } - - var htmlContent = ''; - if (content) { - htmlContent = '' + content + ''; - } - - return '\n' + - ' ' + number + '\n' + - ' ' + - '
      ' + htmlPrefix + htmlContent + '
      ' + - ' \n' + - ' \n'; - } - - function generateEmptyDiff() { - var fileHtml = {}; - fileHtml.right = ''; - - fileHtml.left = '\n' + - ' ' + - '
      ' + - 'File without changes' + - '
      ' + - ' \n' + - '\n'; - - return fileHtml; - } - - module.exports['SideBySidePrinter'] = new SideBySidePrinter(); - -})(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/utils.js deleted file mode 100644 index 7f91ff10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/diff2html/src/utils.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * - * Utils (utils.js) - * Author: rtfpessoa - * - */ - -(function(ctx, undefined) { - - function Utils() { - } - - Utils.prototype.escape = function(str) { - return str.slice(0) - .replace(/&/g, '&') - .replace(//g, '>') - .replace(/\t/g, ' '); - }; - - Utils.prototype.getRandomId = function(prefix) { - return prefix + "-" + Math.random().toString(36).slice(-3); - }; - - Utils.prototype.startsWith = function(str, start) { - if (typeof start === 'object') { - var result = false; - start.forEach(function(s) { - if (str.indexOf(s) === 0) { - result = true; - } - }); - - return result; - } - - return str.indexOf(start) === 0; - }; - - Utils.prototype.valueOrEmpty = function(value) { - return value ? value : ''; - }; - - module.exports['Utils'] = new Utils(); - -})(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/HISTORY.md deleted file mode 100644 index 68e8eed4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/HISTORY.md +++ /dev/null @@ -1,293 +0,0 @@ -1.13.0 / 2016-01-10 -=================== - - * Fix `rolling: true` to not set cookie when no session exists - - Better `saveUninitialized: false` + `rolling: true` behavior - * deps: crc@3.4.0 - -1.12.1 / 2015-10-29 -=================== - - * deps: cookie@0.2.3 - - Fix cookie `Max-Age` to never be a floating point number - -1.12.0 / 2015-10-25 -=================== - - * Support the value `'auto'` in the `cookie.secure` option - * deps: cookie@0.2.2 - - Throw on invalid values provided to `serialize` - * deps: depd@~1.1.0 - - Enable strict mode in more places - - Support web browser loading - * deps: on-headers@~1.0.1 - - perf: enable strict mode - -1.11.3 / 2015-05-22 -=================== - - * deps: cookie@0.1.3 - - Slight optimizations - * deps: crc@3.3.0 - -1.11.2 / 2015-05-10 -=================== - - * deps: debug@~2.2.0 - - deps: ms@0.7.1 - * deps: uid-safe@~2.0.0 - -1.11.1 / 2015-04-08 -=================== - - * Fix mutating `options.secret` value - -1.11.0 / 2015-04-07 -=================== - - * Support an array in `secret` option for key rotation - * deps: depd@~1.0.1 - -1.10.4 / 2015-03-15 -=================== - - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - -1.10.3 / 2015-02-16 -=================== - - * deps: cookie-signature@1.0.6 - * deps: uid-safe@1.1.0 - - Use `crypto.randomBytes`, if available - - deps: base64-url@1.2.1 - -1.10.2 / 2015-01-31 -=================== - - * deps: uid-safe@1.0.3 - - Fix error branch that would throw - - deps: base64-url@1.2.0 - -1.10.1 / 2015-01-08 -=================== - - * deps: uid-safe@1.0.2 - - Remove dependency on `mz` - -1.10.0 / 2015-01-05 -=================== - - * Add `store.touch` interface for session stores - * Fix `MemoryStore` expiration with `resave: false` - * deps: debug@~2.1.1 - -1.9.3 / 2014-12-02 -================== - - * Fix error when `req.sessionID` contains a non-string value - -1.9.2 / 2014-11-22 -================== - - * deps: crc@3.2.1 - - Minor fixes - -1.9.1 / 2014-10-22 -================== - - * Remove unnecessary empty write call - - Fixes Node.js 0.11.14 behavior change - - Helps work-around Node.js 0.10.1 zlib bug - -1.9.0 / 2014-09-16 -================== - - * deps: debug@~2.1.0 - - Implement `DEBUG_FD` env variable support - * deps: depd@~1.0.0 - -1.8.2 / 2014-09-15 -================== - - * Use `crc` instead of `buffer-crc32` for speed - * deps: depd@0.4.5 - -1.8.1 / 2014-09-08 -================== - - * Keep `req.session.save` non-enumerable - * Prevent session prototype methods from being overwritten - -1.8.0 / 2014-09-07 -================== - - * Do not resave already-saved session at end of request - * deps: cookie-signature@1.0.5 - * deps: debug@~2.0.0 - -1.7.6 / 2014-08-18 -================== - - * Fix exception on `res.end(null)` calls - -1.7.5 / 2014-08-10 -================== - - * Fix parsing original URL - * deps: on-headers@~1.0.0 - * deps: parseurl@~1.3.0 - -1.7.4 / 2014-08-05 -================== - - * Fix response end delay for non-chunked responses - -1.7.3 / 2014-08-05 -================== - - * Fix `res.end` patch to call correct upstream `res.write` - -1.7.2 / 2014-07-27 -================== - - * deps: depd@0.4.4 - - Work-around v8 generating empty stack traces - -1.7.1 / 2014-07-26 -================== - - * deps: depd@0.4.3 - - Fix exception when global `Error.stackTraceLimit` is too low - -1.7.0 / 2014-07-22 -================== - - * Improve session-ending error handling - - Errors are passed to `next(err)` instead of `console.error` - * deps: debug@1.0.4 - * deps: depd@0.4.2 - - Add `TRACE_DEPRECATION` environment variable - - Remove non-standard grey color from color output - - Support `--no-deprecation` argument - - Support `--trace-deprecation` argument - -1.6.5 / 2014-07-11 -================== - - * Do not require `req.originalUrl` - * deps: debug@1.0.3 - - Add support for multiple wildcards in namespaces - -1.6.4 / 2014-07-07 -================== - - * Fix blank responses for stores with synchronous operations - -1.6.3 / 2014-07-04 -================== - - * Fix resave deprecation message - -1.6.2 / 2014-07-04 -================== - - * Fix confusing option deprecation messages - -1.6.1 / 2014-06-28 -================== - - * Fix saveUninitialized deprecation message - -1.6.0 / 2014-06-28 -================== - - * Add deprecation message to undefined `resave` option - * Add deprecation message to undefined `saveUninitialized` option - * Fix `res.end` patch to return correct value - * Fix `res.end` patch to handle multiple `res.end` calls - * Reject cookies with missing signatures - -1.5.2 / 2014-06-26 -================== - - * deps: cookie-signature@1.0.4 - - fix for timing attacks - -1.5.1 / 2014-06-21 -================== - - * Move hard-to-track-down `req.secret` deprecation message - -1.5.0 / 2014-06-19 -================== - - * Debug name is now "express-session" - * Deprecate integration with `cookie-parser` middleware - * Deprecate looking for secret in `req.secret` - * Directly read cookies; `cookie-parser` no longer required - * Directly set cookies; `res.cookie` no longer required - * Generate session IDs with `uid-safe`, faster and even less collisions - -1.4.0 / 2014-06-17 -================== - - * Add `genid` option to generate custom session IDs - * Add `saveUninitialized` option to control saving uninitialized sessions - * Add `unset` option to control unsetting `req.session` - * Generate session IDs with `rand-token` by default; reduce collisions - * deps: buffer-crc32@0.2.3 - -1.3.1 / 2014-06-14 -================== - - * Add description in package for npmjs.org listing - -1.3.0 / 2014-06-14 -================== - - * Integrate with express "trust proxy" by default - * deps: debug@1.0.2 - -1.2.1 / 2014-05-27 -================== - - * Fix `resave` such that `resave: true` works - -1.2.0 / 2014-05-19 -================== - - * Add `resave` option to control saving unmodified sessions - -1.1.0 / 2014-05-12 -================== - - * Add `name` option; replacement for `key` option - * Use `setImmediate` in MemoryStore for node.js >= 0.10 - -1.0.4 / 2014-04-27 -================== - - * deps: debug@0.8.1 - -1.0.3 / 2014-04-19 -================== - - * Use `res.cookie()` instead of `res.setHeader()` - * deps: cookie@0.1.2 - -1.0.2 / 2014-02-23 -================== - - * Add missing dependency to `package.json` - -1.0.1 / 2014-02-15 -================== - - * Add missing dependencies to `package.json` - -1.0.0 / 2014-02-15 -================== - - * Genesis from `connect` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/LICENSE deleted file mode 100644 index 9b59ff85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2010 Sencha Inc. -Copyright (c) 2011 TJ Holowaychuk -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/README.md deleted file mode 100644 index c62f4298..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/README.md +++ /dev/null @@ -1,552 +0,0 @@ -# express-session - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] -[![Gratipay][gratipay-image]][gratipay-url] - -## Installation - -```bash -$ npm install express-session -``` - -## API - -```js -var session = require('express-session') -``` - -### session(options) - -Create a session middleware with the given `options`. - -**Note** Session data is _not_ saved in the cookie itself, just the session ID. -Session data is stored server-side. - -**Warning** The default server-side session storage, `MemoryStore`, is _purposely_ -not designed for a production environment. It will leak memory under most -conditions, does not scale past a single process, and is meant for debugging and -developing. - -For a list of stores, see [compatible session stores](#compatible-session-stores). - -#### Options - -`express-session` accepts these properties in the options object. - -##### cookie - -Settings for the session ID cookie. See the "Cookie options" section below for -more information on the different values. - -The default value is `{ path: '/', httpOnly: true, secure: false, maxAge: null }`. - -##### genid - -Function to call to generate a new session ID. Provide a function that returns -a string that will be used as a session ID. The function is given `req` as the -first argument if you want to use some value attached to `req` when generating -the ID. - -The default value is a function which uses the `uid-safe` library to generate IDs. - -**NOTE** be careful to generate unique IDs so your sessions do not conflict. - -```js -app.use(session({ - genid: function(req) { - return genuuid() // use UUIDs for session IDs - }, - secret: 'keyboard cat' -})) -``` - -##### name - -The name of the session ID cookie to set in the response (and read from in the -request). - -The default value is `'connect.sid'`. - -**Note** if you have multiple apps running on the same host (hostname + port), -then you need to separate the session cookies from each other. The simplest -method is to simply set different `name`s per app. - -##### proxy - -Trust the reverse proxy when setting secure cookies (via the "X-Forwarded-Proto" -header). - -The default value is `undefined`. - - - `true` The "X-Forwarded-Proto" header will be used. - - `false` All headers are ignored and the connection is considered secure only - if there is a direct TLS/SSL connection. - - `undefined` Uses the "trust proxy" setting from express - -##### resave - -Forces the session to be saved back to the session store, even if the session -was never modified during the request. Depending on your store this may be -necessary, but it can also create race conditions where a client makes two -parallel requests to your server and changes made to the session in one -request may get overwritten when the other request ends, even if it made no -changes (this behavior also depends on what store you're using). - -The default value is `true`, but using the default has been deprecated, -as the default will change in the future. Please research into this setting -and choose what is appropriate to your use-case. Typically, you'll want -`false`. - -How do I know if this is necessary for my store? The best way to know is to -check with your store if it implements the `touch` method. If it does, then -you can safely set `resave: false`. If it does not implement the `touch` -method and your store sets an expiration date on stored sessions, then you -likely need `resave: true`. - -##### rolling - -Force a session identifier cookie to be set on every response. The expiration -is reset to the original [`maxAge`](#cookiemaxage), resetting the expiration -countdown. - -The default value is `false`. - -**Note** When this option is set to `true` but the `saveUnitialized` option is -set to `false`, the cookie will not be set on a response with an uninitialized -session. - -##### saveUninitialized - -Forces a session that is "uninitialized" to be saved to the store. A session is -uninitialized when it is new but not modified. Choosing `false` is useful for -implementing login sessions, reducing server storage usage, or complying with -laws that require permission before setting a cookie. Choosing `false` will also -help with race conditions where a client makes multiple parallel requests -without a session. - -The default value is `true`, but using the default has been deprecated, as the -default will change in the future. Please research into this setting and -choose what is appropriate to your use-case. - -**Note** if you are using Session in conjunction with PassportJS, Passport -will add an empty Passport object to the session for use after a user is -authenticated, which will be treated as a modification to the session, causing -it to be saved. - -##### secret - -**Required option** - -This is the secret used to sign the session ID cookie. This can be either a string -for a single secret, or an array of multiple secrets. If an array of secrets is -provided, only the first element will be used to sign the session ID cookie, while -all the elements will be considered when verifying the signature in requests. - -##### store - -The session store instance, defaults to a new `MemoryStore` instance. - -##### unset - -Control the result of unsetting `req.session` (through `delete`, setting to `null`, -etc.). - -The default value is `'keep'`. - - - `'destroy'` The session will be destroyed (deleted) when the response ends. - - `'keep'` The session in the store will be kept, but modifications made during - the request are ignored and not saved. - -#### Cookie options - -**Note** Since version 1.5.0, the [`cookie-parser` middleware](https://www.npmjs.com/package/cookie-parser) -no longer needs to be used for this module to work. This module now directly reads -and writes cookies on `req`/`res`. Using `cookie-parser` may result in issues -if the `secret` is not the same between this module and `cookie-parser`. - -Please note that `secure: true` is a **recommended** option. However, it requires an https-enabled website, i.e., HTTPS is necessary for secure cookies. -If `secure` is set, and you access your site over HTTP, the cookie will not be set. If you have your node.js behind a proxy and are using `secure: true`, you need to set "trust proxy" in express: - -```js -var app = express() -app.set('trust proxy', 1) // trust first proxy -app.use(session({ - secret: 'keyboard cat', - resave: false, - saveUninitialized: true, - cookie: { secure: true } -})) -``` - -For using secure cookies in production, but allowing for testing in development, the following is an example of enabling this setup based on `NODE_ENV` in express: - -```js -var app = express() -var sess = { - secret: 'keyboard cat', - cookie: {} -} - -if (app.get('env') === 'production') { - app.set('trust proxy', 1) // trust first proxy - sess.cookie.secure = true // serve secure cookies -} - -app.use(session(sess)) -``` - -The `cookie.secure` option can also be set to the special value `'auto'` to have -this setting automatically match the determined security of the connection. Be -careful when using this setting if the site is available both as HTTP and HTTPS, -as once the cookie is set on HTTPS, it will no longer be visible over HTTP. This -is useful when the Express `"trust proxy"` setting is properly setup to simplify -development vs production configuration. - -By default `cookie.maxAge` is `null`, meaning no "expires" parameter is set -so the cookie becomes a browser-session cookie. When the user closes the -browser the cookie (and session) will be removed. - -### req.session - -To store or access session data, simply use the request property `req.session`, -which is (generally) serialized as JSON by the store, so nested objects -are typically fine. For example below is a user-specific view counter: - -```js -// Use the session middleware -app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }})) - -// Access the session as req.session -app.get('/', function(req, res, next) { - var sess = req.session - if (sess.views) { - sess.views++ - res.setHeader('Content-Type', 'text/html') - res.write('

      views: ' + sess.views + '

      ') - res.write('

      expires in: ' + (sess.cookie.maxAge / 1000) + 's

      ') - res.end() - } else { - sess.views = 1 - res.end('welcome to the session demo. refresh!') - } -}) -``` - -#### Session.regenerate() - -To regenerate the session simply invoke the method. Once complete, -a new SID and `Session` instance will be initialized at `req.session`. - -```js -req.session.regenerate(function(err) { - // will have a new session here -}) -``` - -#### Session.destroy() - -Destroys the session, removing `req.session`; will be re-generated next request. - -```js -req.session.destroy(function(err) { - // cannot access session here -}) -``` - -#### Session.reload() - -Reloads the session data. - -```js -req.session.reload(function(err) { - // session updated -}) -``` - -#### Session.save() - -Save the session back to the store, replacing the contents on the store with the -contents in memory (though a store may do something else--consult the store's -documentation for exact behavior). - -This method is automatically called at the end of the HTTP response if the -session data has been altered (though this behavior can be altered with various -options in the middleware constructor). Because of this, typically this method -does not need to be called. - -There are some cases where it is useful to call this method, for example, long- -lived requests or in WebSockets. - -```js -req.session.save(function(err) { - // session saved -}) -``` - -#### Session.touch() - -Updates the `.maxAge` property. Typically this is -not necessary to call, as the session middleware does this for you. - -### req.session.id - -Each session has a unique ID associated with it. This property will -contain the session ID and cannot be modified. - -### req.session.cookie - -Each session has a unique cookie object accompany it. This allows -you to alter the session cookie per visitor. For example we can -set `req.session.cookie.expires` to `false` to enable the cookie -to remain for only the duration of the user-agent. - -#### Cookie.maxAge - -Alternatively `req.session.cookie.maxAge` will return the time -remaining in milliseconds, which we may also re-assign a new value -to adjust the `.expires` property appropriately. The following -are essentially equivalent - -```js -var hour = 3600000 -req.session.cookie.expires = new Date(Date.now() + hour) -req.session.cookie.maxAge = hour -``` - -For example when `maxAge` is set to `60000` (one minute), and 30 seconds -has elapsed it will return `30000` until the current request has completed, -at which time `req.session.touch()` is called to reset `req.session.maxAge` -to its original value. - -```js -req.session.cookie.maxAge // => 30000 -``` - -### req.sessionID - -To get the ID of the loaded session, access the request property -`req.sessionID`. This is simply a read-only value set when a session -is loaded/created. - -## Session Store Implementation - -Every session store _must_ be an `EventEmitter` and implement specific -methods. The following methods are the list of **required**, **recommended**, -and **optional**. - - * Required methods are ones that this module will always call on the store. - * Recommended methods are ones that this module will call on the store if - available. - * Optional methods are ones this module does not call at all, but helps - present uniform stores to users. - -For an example implementation view the [connect-redis](http://github.com/visionmedia/connect-redis) repo. - -### store.all(callback) - -**Optional** - -This optional method is used to get all sessions in the store as an array. The -`callback` should be called as `callback(error, sessions)`. - -### store.destroy(sid, callback) - -**Required** - -This required method is used to destroy/delete a session from the store given -a session ID (`sid`). The `callback` should be called as `callback(error)` once -the session is destroyed. - -### store.clear(callback) - -**Optional** - -This optional method is used to delete all sessions from the store. The -`callback` should be called as `callback(error)` once the store is cleared. - -### store.length(callback) - -**Optional** - -This optional method is used to get the count of all sessions in the store. -The `callback` should be called as `callback(error, len)`. - -### store.get(sid, callback) - -**Required** - -This required method is used to get a session from the store given a session -ID (`sid`). The `callback` should be called as `callback(error, session)`. - -The `session` argument should be a session if found, otherwise `null` or -`undefined` if the session was not found (and there was no error). A special -case is made when `error.code === 'ENOENT'` to act like `callback(null, null)`. - -### store.set(sid, session, callback) - -**Required** - -This required method is used to upsert a session into the store given a -session ID (`sid`) and session (`session`) object. The callback should be -called as `callback(error)` once the session has been set in the store. - -### store.touch(sid, session, callback) - -**Recommended** - -This recommended method is used to "touch" a given session given a -session ID (`sid`) and session (`session`) object. The `callback` should be -called as `callback(error)` once the session has been touched. - -This is primarily used when the store will automatically delete idle sessions -and this method is used to signal to the store the given session is active, -potentially resetting the idle timer. - -## Compatible Session Stores - -The following modules implement a session store that is compatible with this -module. Please make a PR to add additional modules :) - -[![★][cassandra-store-image] cassandra-store][cassandra-store-url] An Apache Cassandra-based session store. -[cassandra-store-url]: https://www.npmjs.com/package/cassandra-store -[cassandra-store-image]: https://img.shields.io/github/stars/webcc/cassandra-store.svg?label=%E2%98%85 - -[![★][cluster-store-image] cluster-store][cluster-store-url] A wrapper for using in-process / embedded -stores - such as SQLite (via knex), leveldb, files, or memory - with node cluster (desirable for Raspberry Pi 2 -and other multi-core embedded devices). -[cluster-store-url]: https://www.npmjs.com/package/cluster-store -[cluster-store-image]: https://img.shields.io/github/stars/coolaj86/cluster-store.svg?label=%E2%98%85 - -[![★][connect-couchbase-image] connect-couchbase][connect-couchbase-url] A [couchbase](http://www.couchbase.com/)-based session store. -[connect-couchbase-url]: https://www.npmjs.com/package/connect-couchbase -[connect-couchbase-image]: https://img.shields.io/github/stars/christophermina/connect-couchbase.svg?label=%E2%98%85 - -[![★][connect-mssql-image] connect-mssql][connect-mssql-url] A SQL Server-based session store. -[connect-mssql-url]: https://www.npmjs.com/package/connect-mssql -[connect-mssql-image]: https://img.shields.io/github/stars/patriksimek/connect-mssql.svg?label=%E2%98%85 - -[![★][connect-monetdb-image] connect-monetdb][connect-monetdb-url] A MonetDB-based session store. -[connect-monetdb-url]: https://www.npmjs.com/package/connect-monetdb -[connect-monetdb-image]: https://img.shields.io/github/stars/MonetDB/npm-connect-monetdb.svg?label=%E2%98%85 - -[![★][connect-mongo-image] connect-mongo][connect-mongo-url] A MongoDB-based session store. -[connect-mongo-url]: https://www.npmjs.com/package/connect-mongo -[connect-mongo-image]: https://img.shields.io/github/stars/kcbanner/connect-mongo.svg?label=%E2%98%85 - -[![★][connect-mongodb-session-image] connect-mongodb-session][connect-mongodb-session-url] Lightweight MongoDB-based session store built and maintained by MongoDB. -[connect-mongodb-session-url]: https://www.npmjs.com/package/connect-mongodb-session -[connect-mongodb-session-image]: https://img.shields.io/github/stars/mongodb-js/connect-mongodb-session.svg?label=%E2%98%85 - -[![★][connect-pg-simple-image] connect-pg-simple][connect-pg-simple-url] A PostgreSQL-based session store. -[connect-pg-simple-url]: https://www.npmjs.com/package/connect-pg-simple -[connect-pg-simple-image]: https://img.shields.io/github/stars/voxpelli/node-connect-pg-simple.svg?label=%E2%98%85 - -[![★][connect-redis-image] connect-redis][connect-redis-url] A Redis-based session store. -[connect-redis-url]: https://www.npmjs.com/package/connect-redis -[connect-redis-image]: https://img.shields.io/github/stars/tj/connect-redis.svg?label=%E2%98%85 - -[![★][connect-memcached-image] connect-memcached][connect-memcached-url] A memcached-based session store. -[connect-memcached-url]: https://www.npmjs.com/package/connect-memcached -[connect-memcached-image]: https://img.shields.io/github/stars/balor/connect-memcached.svg?label=%E2%98%85 - -[![★][connect-session-knex-image] connect-session-knex][connect-session-knex-url] A session store using -[Knex.js](http://knexjs.org/), which is a SQL query builder for PostgreSQL, MySQL, MariaDB, SQLite3, and Oracle. -[connect-session-knex-url]: https://www.npmjs.com/package/connect-session-knex -[connect-session-knex-image]: https://img.shields.io/github/stars/llambda/connect-session-knex.svg?label=%E2%98%85 - -[![★][connect-session-sequelize-image] connect-session-sequelize][connect-session-sequelize-url] A session store using -[Sequelize.js](http://sequelizejs.com/), which is a Node.js / io.js ORM for PostgreSQL, MySQL, SQLite and MSSQL. -[connect-session-sequelize-url]: https://www.npmjs.com/package/connect-session-sequelize -[connect-session-sequelize-image]: https://img.shields.io/github/stars/mweibel/connect-session-sequelize.svg?label=%E2%98%85 - -[![★][connect-sqlite3-image] connect-sqlite3][connect-sqlite3-url] A [SQLite3](https://github.com/mapbox/node-sqlite3) session store modeled after the TJ's `connect-redis` store. -[connect-sqlite3-url]: https://www.npmjs.com/package/connect-sqlite3 -[connect-sqlite3-image]: https://img.shields.io/github/stars/rawberg/connect-sqlite3.svg?label=%E2%98%85 - -[![★][express-nedb-session-image] express-nedb-session][express-nedb-session-url] A NeDB-based session store. -[express-nedb-session-url]: https://www.npmjs.com/package/express-nedb-session -[express-nedb-session-image]: https://img.shields.io/github/stars/louischatriot/express-nedb-session.svg?label=%E2%98%85 - -[![★][level-session-store-image] level-session-store][level-session-store-url] A LevelDB-based session store. -[level-session-store-url]: https://www.npmjs.com/package/level-session-store -[level-session-store-image]: https://img.shields.io/github/stars/scriptollc/level-session-store.svg?label=%E2%98%85 - -[![★][mssql-session-store-image] mssql-session-store][mssql-session-store-url] A SQL Server-based session store. -[mssql-session-store-url]: https://www.npmjs.com/package/mssql-session-store -[mssql-session-store-image]: https://img.shields.io/github/stars/jwathen/mssql-session-store.svg?label=%E2%98%85 - -[![★][nedb-session-store-image] nedb-session-store][nedb-session-store-url] An alternate NeDB-based (either in-memory or file-persisted) session store. -[nedb-session-store-url]: https://www.npmjs.com/package/nedb-session-store -[nedb-session-store-image]: https://img.shields.io/github/stars/JamesMGreene/nedb-session-store.svg?label=%E2%98%85 - -[![★][sequelstore-connect-image] sequelstore-connect][sequelstore-connect-url] A session store using [Sequelize.js](http://sequelizejs.com/). -[sequelstore-connect-url]: https://www.npmjs.com/package/sequelstore-connect -[sequelstore-connect-image]: https://img.shields.io/github/stars/MattMcFarland/sequelstore-connect.svg?label=%E2%98%85 - -[![★][session-file-store-image] session-file-store][session-file-store-url] A file system-based session store. -[session-file-store-url]: https://www.npmjs.com/package/session-file-store -[session-file-store-image]: https://img.shields.io/github/stars/valery-barysok/session-file-store.svg?label=%E2%98%85 - -[![★][session-rethinkdb-image] session-rethinkdb][session-rethinkdb-url] A [RethinkDB](http://rethinkdb.com/)-based session store. -[session-rethinkdb-url]: https://www.npmjs.com/package/session-rethinkdb -[session-rethinkdb-image]: https://img.shields.io/github/stars/llambda/session-rethinkdb.svg?label=%E2%98%85 - -## Example - -A simple example using `express-session` to store page views for a user. - -```js -var express = require('express') -var parseurl = require('parseurl') -var session = require('express-session') - -var app = express() - -app.use(session({ - secret: 'keyboard cat', - resave: false, - saveUninitialized: true -})) - -app.use(function (req, res, next) { - var views = req.session.views - - if (!views) { - views = req.session.views = {} - } - - // get the url pathname - var pathname = parseurl(req).pathname - - // count the views - views[pathname] = (views[pathname] || 0) + 1 - - next() -}) - -app.get('/foo', function (req, res, next) { - res.send('you viewed this page ' + req.session.views['/foo'] + ' times') -}) - -app.get('/bar', function (req, res, next) { - res.send('you viewed this page ' + req.session.views['/bar'] + ' times') -}) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/express-session.svg -[npm-url]: https://npmjs.org/package/express-session -[travis-image]: https://img.shields.io/travis/expressjs/session/master.svg -[travis-url]: https://travis-ci.org/expressjs/session -[coveralls-image]: https://img.shields.io/coveralls/expressjs/session/master.svg -[coveralls-url]: https://coveralls.io/r/expressjs/session?branch=master -[downloads-image]: https://img.shields.io/npm/dm/express-session.svg -[downloads-url]: https://npmjs.org/package/express-session -[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg -[gratipay-url]: https://gratipay.com/dougwilson/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/index.js deleted file mode 100644 index 3077cd72..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/index.js +++ /dev/null @@ -1,606 +0,0 @@ -/*! - * express-session - * Copyright(c) 2010 Sencha Inc. - * Copyright(c) 2011 TJ Holowaychuk - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module dependencies. - * @private - */ - -var cookie = require('cookie'); -var crc = require('crc').crc32; -var debug = require('debug')('express-session'); -var deprecate = require('depd')('express-session'); -var parseUrl = require('parseurl'); -var uid = require('uid-safe').sync - , onHeaders = require('on-headers') - , signature = require('cookie-signature') - -var Session = require('./session/session') - , MemoryStore = require('./session/memory') - , Cookie = require('./session/cookie') - , Store = require('./session/store') - -// environment - -var env = process.env.NODE_ENV; - -/** - * Expose the middleware. - */ - -exports = module.exports = session; - -/** - * Expose constructors. - */ - -exports.Store = Store; -exports.Cookie = Cookie; -exports.Session = Session; -exports.MemoryStore = MemoryStore; - -/** - * Warning message for `MemoryStore` usage in production. - * @private - */ - -var warning = 'Warning: connect.session() MemoryStore is not\n' - + 'designed for a production environment, as it will leak\n' - + 'memory, and will not scale past a single process.'; - -/** - * Node.js 0.8+ async implementation. - * @private - */ - -/* istanbul ignore next */ -var defer = typeof setImmediate === 'function' - ? setImmediate - : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } - -/** - * Setup session store with the given `options`. - * - * @param {Object} [options] - * @param {Object} [options.cookie] Options for cookie - * @param {Function} [options.genid] - * @param {String} [options.name=connect.sid] Session ID cookie name - * @param {Boolean} [options.proxy] - * @param {Boolean} [options.resave] Resave unmodified sessions back to the store - * @param {Boolean} [options.rolling] Enable/disable rolling session expiration - * @param {Boolean} [options.saveUninitialized] Save uninitialized sessions to the store - * @param {String|Array} [options.secret] Secret for signing session ID - * @param {Object} [options.store=MemoryStore] Session store - * @param {String} [options.unset] - * @return {Function} middleware - * @public - */ - -function session(options){ - var options = options || {} - // name - previously "options.key" - , name = options.name || options.key || 'connect.sid' - , store = options.store || new MemoryStore - , trustProxy = options.proxy - , storeReady = true - , rollingSessions = options.rolling || false; - var cookieOptions = options.cookie || {}; - var resaveSession = options.resave; - var saveUninitializedSession = options.saveUninitialized; - var secret = options.secret; - - var generateId = options.genid || generateSessionId; - - if (typeof generateId !== 'function') { - throw new TypeError('genid option must be a function'); - } - - if (resaveSession === undefined) { - deprecate('undefined resave option; provide resave option'); - resaveSession = true; - } - - if (saveUninitializedSession === undefined) { - deprecate('undefined saveUninitialized option; provide saveUninitialized option'); - saveUninitializedSession = true; - } - - if (options.unset && options.unset !== 'destroy' && options.unset !== 'keep') { - throw new TypeError('unset option must be "destroy" or "keep"'); - } - - // TODO: switch to "destroy" on next major - var unsetDestroy = options.unset === 'destroy'; - - if (Array.isArray(secret) && secret.length === 0) { - throw new TypeError('secret option array must contain one or more strings'); - } - - if (secret && !Array.isArray(secret)) { - secret = [secret]; - } - - if (!secret) { - deprecate('req.secret; provide secret option'); - } - - // notify user that this store is not - // meant for a production environment - if ('production' == env && store instanceof MemoryStore) { - console.warn(warning); - } - - // generates the new session - store.generate = function(req){ - req.sessionID = generateId(req); - req.session = new Session(req); - req.session.cookie = new Cookie(cookieOptions); - - if (cookieOptions.secure === 'auto') { - req.session.cookie.secure = issecure(req, trustProxy); - } - }; - - var storeImplementsTouch = typeof store.touch === 'function'; - store.on('disconnect', function(){ storeReady = false; }); - store.on('connect', function(){ storeReady = true; }); - - return function session(req, res, next) { - // self-awareness - if (req.session) return next(); - - // Handle connection as if there is no session if - // the store has temporarily disconnected etc - if (!storeReady) return debug('store is disconnected'), next(); - - // pathname mismatch - var originalPath = parseUrl.original(req).pathname; - if (originalPath.indexOf(cookieOptions.path || '/') !== 0) return next(); - - // ensure a secret is available or bail - if (!secret && !req.secret) { - next(new Error('secret option required for sessions')); - return; - } - - // backwards compatibility for signed cookies - // req.secret is passed from the cookie parser middleware - var secrets = secret || [req.secret]; - - var originalHash; - var originalId; - var savedHash; - - // expose store - req.sessionStore = store; - - // get the session ID from the cookie - var cookieId = req.sessionID = getcookie(req, name, secrets); - - // set-cookie - onHeaders(res, function(){ - if (!req.session) { - debug('no session'); - return; - } - - var cookie = req.session.cookie; - - // only send secure cookies via https - if (cookie.secure && !issecure(req, trustProxy)) { - debug('not secured'); - return; - } - - if (!shouldSetCookie(req)) { - return; - } - - setcookie(res, name, req.sessionID, secrets[0], cookie.data); - }); - - // proxy end() to commit the session - var _end = res.end; - var _write = res.write; - var ended = false; - res.end = function end(chunk, encoding) { - if (ended) { - return false; - } - - ended = true; - - var ret; - var sync = true; - - function writeend() { - if (sync) { - ret = _end.call(res, chunk, encoding); - sync = false; - return; - } - - _end.call(res); - } - - function writetop() { - if (!sync) { - return ret; - } - - if (chunk == null) { - ret = true; - return ret; - } - - var contentLength = Number(res.getHeader('Content-Length')); - - if (!isNaN(contentLength) && contentLength > 0) { - // measure chunk - chunk = !Buffer.isBuffer(chunk) - ? new Buffer(chunk, encoding) - : chunk; - encoding = undefined; - - if (chunk.length !== 0) { - debug('split response'); - ret = _write.call(res, chunk.slice(0, chunk.length - 1)); - chunk = chunk.slice(chunk.length - 1, chunk.length); - return ret; - } - } - - ret = _write.call(res, chunk, encoding); - sync = false; - - return ret; - } - - if (shouldDestroy(req)) { - // destroy session - debug('destroying'); - store.destroy(req.sessionID, function ondestroy(err) { - if (err) { - defer(next, err); - } - - debug('destroyed'); - writeend(); - }); - - return writetop(); - } - - // no session to save - if (!req.session) { - debug('no session'); - return _end.call(res, chunk, encoding); - } - - // touch session - req.session.touch(); - - if (shouldSave(req)) { - req.session.save(function onsave(err) { - if (err) { - defer(next, err); - } - - writeend(); - }); - - return writetop(); - } else if (storeImplementsTouch && shouldTouch(req)) { - // store implements touch method - debug('touching'); - store.touch(req.sessionID, req.session, function ontouch(err) { - if (err) { - defer(next, err); - } - - debug('touched'); - writeend(); - }); - - return writetop(); - } - - return _end.call(res, chunk, encoding); - }; - - // generate the session - function generate() { - store.generate(req); - originalId = req.sessionID; - originalHash = hash(req.session); - wrapmethods(req.session); - } - - // wrap session methods - function wrapmethods(sess) { - var _save = sess.save; - - function save() { - debug('saving %s', this.id); - savedHash = hash(this); - _save.apply(this, arguments); - } - - Object.defineProperty(sess, 'save', { - configurable: true, - enumerable: false, - value: save, - writable: true - }); - } - - // check if session has been modified - function isModified(sess) { - return originalId !== sess.id || originalHash !== hash(sess); - } - - // check if session has been saved - function isSaved(sess) { - return originalId === sess.id && savedHash === hash(sess); - } - - // determine if session should be destroyed - function shouldDestroy(req) { - return req.sessionID && unsetDestroy && req.session == null; - } - - // determine if session should be saved to store - function shouldSave(req) { - // cannot set cookie without a session ID - if (typeof req.sessionID !== 'string') { - debug('session ignored because of bogus req.sessionID %o', req.sessionID); - return false; - } - - return !saveUninitializedSession && cookieId !== req.sessionID - ? isModified(req.session) - : !isSaved(req.session) - } - - // determine if session should be touched - function shouldTouch(req) { - // cannot set cookie without a session ID - if (typeof req.sessionID !== 'string') { - debug('session ignored because of bogus req.sessionID %o', req.sessionID); - return false; - } - - return cookieId === req.sessionID && !shouldSave(req); - } - - // determine if cookie should be set on response - function shouldSetCookie(req) { - // cannot set cookie without a session ID - if (typeof req.sessionID !== 'string') { - return false; - } - - return cookieId != req.sessionID - ? saveUninitializedSession || isModified(req.session) - : rollingSessions || req.session.cookie.expires != null && isModified(req.session); - } - - // generate a session if the browser doesn't send a sessionID - if (!req.sessionID) { - debug('no SID sent, generating session'); - generate(); - next(); - return; - } - - // generate the session object - debug('fetching %s', req.sessionID); - store.get(req.sessionID, function(err, sess){ - // error handling - if (err) { - debug('error %j', err); - - if (err.code !== 'ENOENT') { - next(err); - return; - } - - generate(); - // no session - } else if (!sess) { - debug('no session found'); - generate(); - // populate req.session - } else { - debug('session found'); - store.createSession(req, sess); - originalId = req.sessionID; - originalHash = hash(sess); - - if (!resaveSession) { - savedHash = originalHash - } - - wrapmethods(req.session); - } - - next(); - }); - }; -}; - -/** - * Generate a session ID for a new session. - * - * @return {String} - * @private - */ - -function generateSessionId(sess) { - return uid(24); -} - -/** - * Get the session ID cookie from request. - * - * @return {string} - * @private - */ - -function getcookie(req, name, secrets) { - var header = req.headers.cookie; - var raw; - var val; - - // read from cookie header - if (header) { - var cookies = cookie.parse(header); - - raw = cookies[name]; - - if (raw) { - if (raw.substr(0, 2) === 's:') { - val = unsigncookie(raw.slice(2), secrets); - - if (val === false) { - debug('cookie signature invalid'); - val = undefined; - } - } else { - debug('cookie unsigned') - } - } - } - - // back-compat read from cookieParser() signedCookies data - if (!val && req.signedCookies) { - val = req.signedCookies[name]; - - if (val) { - deprecate('cookie should be available in req.headers.cookie'); - } - } - - // back-compat read from cookieParser() cookies data - if (!val && req.cookies) { - raw = req.cookies[name]; - - if (raw) { - if (raw.substr(0, 2) === 's:') { - val = unsigncookie(raw.slice(2), secrets); - - if (val) { - deprecate('cookie should be available in req.headers.cookie'); - } - - if (val === false) { - debug('cookie signature invalid'); - val = undefined; - } - } else { - debug('cookie unsigned') - } - } - } - - return val; -} - -/** - * Hash the given `sess` object omitting changes to `.cookie`. - * - * @param {Object} sess - * @return {String} - * @private - */ - -function hash(sess) { - return crc(JSON.stringify(sess, function (key, val) { - if (key !== 'cookie') { - return val; - } - })); -} - -/** - * Determine if request is secure. - * - * @param {Object} req - * @param {Boolean} [trustProxy] - * @return {Boolean} - * @private - */ - -function issecure(req, trustProxy) { - // socket is https server - if (req.connection && req.connection.encrypted) { - return true; - } - - // do not trust proxy - if (trustProxy === false) { - return false; - } - - // no explicit trust; try req.secure from express - if (trustProxy !== true) { - var secure = req.secure; - return typeof secure === 'boolean' - ? secure - : false; - } - - // read the proto from x-forwarded-proto header - var header = req.headers['x-forwarded-proto'] || ''; - var index = header.indexOf(','); - var proto = index !== -1 - ? header.substr(0, index).toLowerCase().trim() - : header.toLowerCase().trim() - - return proto === 'https'; -} - -/** - * Set cookie on response. - * - * @private - */ - -function setcookie(res, name, val, secret, options) { - var signed = 's:' + signature.sign(val, secret); - var data = cookie.serialize(name, signed, options); - - debug('set-cookie %s', data); - - var prev = res.getHeader('set-cookie') || []; - var header = Array.isArray(prev) ? prev.concat(data) - : Array.isArray(data) ? [prev].concat(data) - : [prev, data]; - - res.setHeader('set-cookie', header) -} - -/** - * Verify and decode the given `val` with `secrets`. - * - * @param {String} val - * @param {Array} secrets - * @returns {String|Boolean} - * @private - */ -function unsigncookie(val, secrets) { - for (var i = 0; i < secrets.length; i++) { - var result = signature.unsign(val, secrets[i]); - - if (result !== false) { - return result; - } - } - - return false; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/.npmignore deleted file mode 100644 index f1250e58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -support -test -examples -*.sock diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/History.md deleted file mode 100644 index 78513cc3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/History.md +++ /dev/null @@ -1,38 +0,0 @@ -1.0.6 / 2015-02-03 -================== - -* use `npm test` instead of `make test` to run tests -* clearer assertion messages when checking input - - -1.0.5 / 2014-09-05 -================== - -* add license to package.json - -1.0.4 / 2014-06-25 -================== - - * corrected avoidance of timing attacks (thanks @tenbits!) - -1.0.3 / 2014-01-28 -================== - - * [incorrect] fix for timing attacks - -1.0.2 / 2014-01-28 -================== - - * fix missing repository warning - * fix typo in test - -1.0.1 / 2013-04-15 -================== - - * Revert "Changed underlying HMAC algo. to sha512." - * Revert "Fix for timing attacks on MAC verification." - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/Readme.md deleted file mode 100644 index 2559e841..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/Readme.md +++ /dev/null @@ -1,42 +0,0 @@ - -# cookie-signature - - Sign and unsign cookies. - -## Example - -```js -var cookie = require('cookie-signature'); - -var val = cookie.sign('hello', 'tobiiscool'); -val.should.equal('hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI'); - -var val = cookie.sign('hello', 'tobiiscool'); -cookie.unsign(val, 'tobiiscool').should.equal('hello'); -cookie.unsign(val, 'luna').should.be.false; -``` - -## License - -(The MIT License) - -Copyright (c) 2012 LearnBoost <tj@learnboost.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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/index.js deleted file mode 100644 index b8c9463a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/index.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Module dependencies. - */ - -var crypto = require('crypto'); - -/** - * Sign the given `val` with `secret`. - * - * @param {String} val - * @param {String} secret - * @return {String} - * @api private - */ - -exports.sign = function(val, secret){ - if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string."); - if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); - return val + '.' + crypto - .createHmac('sha256', secret) - .update(val) - .digest('base64') - .replace(/\=+$/, ''); -}; - -/** - * Unsign and decode the given `val` with `secret`, - * returning `false` if the signature is invalid. - * - * @param {String} val - * @param {String} secret - * @return {String|Boolean} - * @api private - */ - -exports.unsign = function(val, secret){ - if ('string' != typeof val) throw new TypeError("Signed cookie string must be provided."); - if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); - var str = val.slice(0, val.lastIndexOf('.')) - , mac = exports.sign(str, secret); - - return sha1(mac) == sha1(val) ? str : false; -}; - -/** - * Private - */ - -function sha1(str){ - return crypto.createHash('sha1').update(str).digest('hex'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/package.json deleted file mode 100644 index f564ea54..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie-signature/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "cookie-signature", - "version": "1.0.6", - "description": "Sign and unsign cookies", - "keywords": [ - "cookie", - "sign", - "unsign" - ], - "author": { - "name": "TJ Holowaychuk", - "email": "tj@learnboost.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/visionmedia/node-cookie-signature.git" - }, - "dependencies": {}, - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "scripts": { - "test": "mocha --require should --reporter spec" - }, - "main": "index", - "gitHead": "391b56cf44d88c493491b7e3fc53208cfb976d2a", - "bugs": { - "url": "https://github.com/visionmedia/node-cookie-signature/issues" - }, - "homepage": "https://github.com/visionmedia/node-cookie-signature", - "_id": "cookie-signature@1.0.6", - "_shasum": "e303a882b342cc3ee8ca513a79999734dab3ae2c", - "_from": "cookie-signature@1.0.6", - "_npmVersion": "2.3.0", - "_nodeVersion": "0.10.36", - "_npmUser": { - "name": "natevw", - "email": "natevw@yahoo.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "natevw", - "email": "natevw@yahoo.com" - } - ], - "dist": { - "shasum": "e303a882b342cc3ee8ca513a79999734dab3ae2c", - "tarball": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/HISTORY.md deleted file mode 100644 index d5421496..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/HISTORY.md +++ /dev/null @@ -1,97 +0,0 @@ -0.2.3 / 2015-10-25 -================== - - * Fix cookie `Max-Age` to never be a floating point number - -0.2.2 / 2015-09-17 -================== - - * Fix regression when setting empty cookie value - - Ease the new restriction, which is just basic header-level validation - * Fix typo in invalid value errors - -0.2.1 / 2015-09-17 -================== - - * Throw on invalid values provided to `serialize` - - Ensures the resulting string is a valid HTTP header value - -0.2.0 / 2015-08-13 -================== - - * Add `firstPartyOnly` option - * Throw better error for invalid argument to parse - * perf: hoist regular expression - -0.1.5 / 2015-09-17 -================== - - * Fix regression when setting empty cookie value - - Ease the new restriction, which is just basic header-level validation - * Fix typo in invalid value errors - -0.1.4 / 2015-09-17 -================== - - * Throw better error for invalid argument to parse - * Throw on invalid values provided to `serialize` - - Ensures the resulting string is a valid HTTP header value - -0.1.3 / 2015-05-19 -================== - - * Reduce the scope of try-catch deopt - * Remove argument reassignments - -0.1.2 / 2014-04-16 -================== - - * Remove unnecessary files from npm package - -0.1.1 / 2014-02-23 -================== - - * Fix bad parse when cookie value contained a comma - * Fix support for `maxAge` of `0` - -0.1.0 / 2013-05-01 -================== - - * Add `decode` option - * Add `encode` option - -0.0.6 / 2013-04-08 -================== - - * Ignore cookie parts missing `=` - -0.0.5 / 2012-10-29 -================== - - * Return raw cookie value if value unescape errors - -0.0.4 / 2012-06-21 -================== - - * Use encode/decodeURIComponent for cookie encoding/decoding - - Improve server/client interoperability - -0.0.3 / 2012-06-06 -================== - - * Only escape special characters per the cookie RFC - -0.0.2 / 2012-06-01 -================== - - * Fix `maxAge` option to not throw error - -0.0.1 / 2012-05-28 -================== - - * Add more tests - -0.0.0 / 2012-05-28 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/LICENSE deleted file mode 100644 index 058b6b4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 Roman Shtylman -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/README.md deleted file mode 100644 index 9ef889e9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# cookie - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -cookie is a basic cookie parser and serializer. It doesn't make assumptions about how you are going to deal with your cookies. It basically just provides a way to read and write the HTTP cookie headers. - -See [RFC6265](http://tools.ietf.org/html/rfc6265) for details about the http header for cookies. - -## how? - -``` -npm install cookie -``` - -```javascript -var cookie = require('cookie'); - -var hdr = cookie.serialize('foo', 'bar'); -// hdr = 'foo=bar'; - -var cookies = cookie.parse('foo=bar; cat=meow; dog=ruff'); -// cookies = { foo: 'bar', cat: 'meow', dog: 'ruff' }; -``` - -## more - -The serialize function takes a third parameter, an object, to set cookie options. See the RFC for valid values. - -### path -> cookie path - -### expires -> absolute expiration date for the cookie (Date object) - -### maxAge -> relative max age of the cookie from when the client receives it (seconds) - -### domain -> domain for the cookie - -### secure -> true or false - -### httpOnly -> true or false - -### firstPartyOnly -> true or false - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/cookie.svg -[npm-url]: https://npmjs.org/package/cookie -[node-version-image]: https://img.shields.io/node/v/cookie.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/cookie/master.svg -[travis-url]: https://travis-ci.org/jshttp/cookie -[coveralls-image]: https://img.shields.io/coveralls/jshttp/cookie/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/cookie?branch=master -[downloads-image]: https://img.shields.io/npm/dm/cookie.svg -[downloads-url]: https://npmjs.org/package/cookie diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/index.js deleted file mode 100644 index 88de23cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/index.js +++ /dev/null @@ -1,158 +0,0 @@ -/*! - * cookie - * Copyright(c) 2012-2014 Roman Shtylman - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module exports. - * @public - */ - -exports.parse = parse; -exports.serialize = serialize; - -/** - * Module variables. - * @private - */ - -var decode = decodeURIComponent; -var encode = encodeURIComponent; -var pairSplitRegExp = /; */; - -/** - * RegExp to match field-content in RFC 7230 sec 3.2 - * - * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] - * field-vchar = VCHAR / obs-text - * obs-text = %x80-FF - */ - -var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; - -/** - * Parse a cookie header. - * - * Parse the given cookie header string into an object - * The object has the various cookies as keys(names) => values - * - * @param {string} str - * @param {object} [options] - * @return {object} - * @public - */ - -function parse(str, options) { - if (typeof str !== 'string') { - throw new TypeError('argument str must be a string'); - } - - var obj = {} - var opt = options || {}; - var pairs = str.split(pairSplitRegExp); - var dec = opt.decode || decode; - - pairs.forEach(function(pair) { - var eq_idx = pair.indexOf('=') - - // skip things that don't look like key=value - if (eq_idx < 0) { - return; - } - - var key = pair.substr(0, eq_idx).trim() - var val = pair.substr(++eq_idx, pair.length).trim(); - - // quoted values - if ('"' == val[0]) { - val = val.slice(1, -1); - } - - // only assign once - if (undefined == obj[key]) { - obj[key] = tryDecode(val, dec); - } - }); - - return obj; -} - -/** - * Serialize data into a cookie header. - * - * Serialize the a name value pair into a cookie string suitable for - * http headers. An optional options object specified cookie parameters. - * - * serialize('foo', 'bar', { httpOnly: true }) - * => "foo=bar; httpOnly" - * - * @param {string} name - * @param {string} val - * @param {object} [options] - * @return {string} - * @public - */ - -function serialize(name, val, options) { - var opt = options || {}; - var enc = opt.encode || encode; - - if (!fieldContentRegExp.test(name)) { - throw new TypeError('argument name is invalid'); - } - - var value = enc(val); - - if (value && !fieldContentRegExp.test(value)) { - throw new TypeError('argument val is invalid'); - } - - var pairs = [name + '=' + value]; - - if (null != opt.maxAge) { - var maxAge = opt.maxAge - 0; - if (isNaN(maxAge)) throw new Error('maxAge should be a Number'); - pairs.push('Max-Age=' + Math.floor(maxAge)); - } - - if (opt.domain) { - if (!fieldContentRegExp.test(opt.domain)) { - throw new TypeError('option domain is invalid'); - } - - pairs.push('Domain=' + opt.domain); - } - - if (opt.path) { - if (!fieldContentRegExp.test(opt.path)) { - throw new TypeError('option path is invalid'); - } - - pairs.push('Path=' + opt.path); - } - - if (opt.expires) pairs.push('Expires=' + opt.expires.toUTCString()); - if (opt.httpOnly) pairs.push('HttpOnly'); - if (opt.secure) pairs.push('Secure'); - if (opt.firstPartyOnly) pairs.push('First-Party-Only'); - - return pairs.join('; '); -} - -/** - * Try decoding a string using a decoding function. - * - * @param {string} str - * @param {function} decode - * @private - */ - -function tryDecode(str, decode) { - try { - return decode(str); - } catch (e) { - return str; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/package.json deleted file mode 100644 index 8319833d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/cookie/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "cookie", - "description": "cookie parsing and serialization", - "version": "0.2.3", - "author": { - "name": "Roman Shtylman", - "email": "shtylman@gmail.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "keywords": [ - "cookie", - "cookies" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/cookie.git" - }, - "devDependencies": { - "istanbul": "0.3.22", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - }, - "gitHead": "35326af88e9665bb8ea1be280cb827523e9360a7", - "bugs": { - "url": "https://github.com/jshttp/cookie/issues" - }, - "homepage": "https://github.com/jshttp/cookie", - "_id": "cookie@0.2.3", - "_shasum": "1a59536af68537a21178a01346f87cb059d2ae5c", - "_from": "cookie@0.2.3", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "1a59536af68537a21178a01346f87cb059d2ae5c", - "tarball": "https://registry.npmjs.org/cookie/-/cookie-0.2.3.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.2.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/LICENSE deleted file mode 100644 index c49097c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright 2014 Alex Gorbatchev - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/README.md deleted file mode 100644 index 499b7661..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/README.md +++ /dev/null @@ -1,100 +0,0 @@ -# crc - -[![GitTip](http://img.shields.io/gittip/alexgorbatchev.svg?style=flat)](https://www.gittip.com/alexgorbatchev/) -[![Dependency status](http://img.shields.io/david/alexgorbatchev/node-crc.svg?style=flat)](https://david-dm.org/alexgorbatchev/node-crc) -[![devDependency Status](http://img.shields.io/david/dev/alexgorbatchev/node-crc.svg?style=flat)](https://david-dm.org/alexgorbatchev/node-crc#info=devDependencies) -[![Build Status](http://img.shields.io/travis/alexgorbatchev/node-crc.svg?style=flat&branch=master)](https://travis-ci.org/alexgorbatchev/node-crc) - -[![NPM](https://nodei.co/npm/crc.svg?style=flat)](https://npmjs.org/package/crc) - -Module for calculating Cyclic Redundancy Check (CRC) for Node.js and the Browser. - -## Features - -* Full test suite comparing values against reference `pycrc` implementation. -* Version 3.x is 3x to 4x faster than version 2.x. -* Pure JavaScript implementation, no dependencies. -* Provides CRC Tables for optimized calculations. -* Provides support for the following CRC algorithms: - * CRC1 `crc.crc1(…)` - * CRC8 `crc.crc8(…)` - * CRC8 1-Wire `crc.crc81wire(…)` - * CRC16 `crc.crc16(…)` - * CRC16 CCITT `crc.crc16ccitt(…)` - * CRC16 Modbus `crc.crc16modbus(…)` - * CRC16 Kermit `crc.crc16kermit(…)` - * CRC16 XModem `crc.crc16xmodem(…)` - * CRC24 `crc.crc24(…)` - * CRC32 `crc.crc32(…)` - -## IMPORTANT - -If you've used `crc` module prior to version 2.x, you might have some inconsistencies with the current implementation because it relied on very old code and wasn't checked against reference implementation. If you upgrading from 1.x, please take special care. - -## Support - - Please support me on [GitTip](https://www.gittip.com/alexgorbatchev/). I'm sure you know that it takes a lot of personal time to write and even more time to maintain open source projects. If you use this package, buy me a beer on GitTip or via Bitcoin [`1CZyBREeHTmy8C5zVGHZHPwqBuWFmEuUCQ`](https://blockchain.info/address/1CZyBREeHTmy8C5zVGHZHPwqBuWFmEuUCQ) - -## Installation - - npm install crc - -## Running tests - - $ npm install - $ npm test - -## Usage Example - -Calculate a CRC32: - - var crc = require('crc'); - - crc.crc32('hello').toString(16); - # => "3610a686" - -Calculate a CRC32 of a file: - - crc.crc32(fs.readFileSync('README.md', 'utf8')).toString(16); - # => "127ad531" - -Or using a `Buffer`: - - crc.crc32(fs.readFileSync('README.md')).toString(16); - # => "127ad531" - -Incrementally calculate a CRC32: - - value = crc.crc32('one'); - value = crc.crc32('two', value); - value = crc.crc32('three', value); - value.toString(16); - # => "9e1c092" - -## Thanks! - -[pycrc](http://www.tty1.net/pycrc/) library is which the source of all of the CRC tables. - -# License - -The MIT License (MIT) - -Copyright (c) 2014 Alex Gorbatchev - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc1.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc1.js deleted file mode 100644 index 23e16252..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc1.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -module.exports = (0, _define_crc2.default)('crc1', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _buffer.Buffer)(buf); - - var crc = ~ ~previous; - var accum = 0; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - accum += byte; - } - - crc += accum % 256; - return crc % 256; -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16.js deleted file mode 100644 index feff26af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=crc-16 --generate=c` -var TABLE = [0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241, 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440, 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40, 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841, 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40, 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41, 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641, 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040, 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240, 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441, 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41, 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840, 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41, 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40, 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640, 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041, 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240, 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441, 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41, 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840, 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41, 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40, 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640, 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041, 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241, 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440, 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40, 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841, 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40, 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41, 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641, 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('crc-16', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _buffer.Buffer)(buf); - - var crc = ~ ~previous; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = (TABLE[(crc ^ byte) & 0xff] ^ crc >> 8) & 0xffff; - } - - return crc; -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_ccitt.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_ccitt.js deleted file mode 100644 index 01051d11..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_ccitt.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=ccitt --generate=c` -var TABLE = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('ccitt', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _buffer.Buffer)(buf); - - var crc = typeof previous !== 'undefined' ? ~ ~previous : 0xffff; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = (TABLE[(crc >> 8 ^ byte) & 0xff] ^ crc << 8) & 0xffff; - } - - return crc; -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_kermit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_kermit.js deleted file mode 100644 index 9174f4fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_kermit.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=kermit --generate=c` -var TABLE = [0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('kermit', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _buffer.Buffer)(buf); - - var crc = typeof previous !== 'undefined' ? ~ ~previous : 0x0000; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = (TABLE[(crc ^ byte) & 0xff] ^ crc >> 8) & 0xffff; - } - - return crc; -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_modbus.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_modbus.js deleted file mode 100644 index 7ce82a05..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_modbus.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=crc-16-modbus --generate=c` -var TABLE = [0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241, 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440, 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40, 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841, 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40, 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41, 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641, 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040, 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240, 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441, 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41, 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840, 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41, 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40, 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640, 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041, 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240, 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441, 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41, 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840, 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41, 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40, 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640, 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041, 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241, 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440, 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40, 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841, 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40, 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41, 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641, 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('crc-16-modbus', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _buffer.Buffer)(buf); - - var crc = typeof previous !== 'undefined' ? ~ ~previous : 0xffff; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = (TABLE[(crc ^ byte) & 0xff] ^ crc >> 8) & 0xffff; - } - - return crc; -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_xmodem.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_xmodem.js deleted file mode 100644 index 2bc58a6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc16_xmodem.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -module.exports = (0, _define_crc2.default)('xmodem', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _buffer.Buffer)(buf); - - var crc = typeof previous !== 'undefined' ? ~ ~previous : 0x0; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - var code = crc >>> 8 & 0xFF; - - code ^= byte & 0xFF; - code ^= code >>> 4; - crc = crc << 8 & 0xFFFF; - crc ^= code; - code = code << 5 & 0xFFFF; - crc ^= code; - code = code << 7 & 0xFFFF; - crc ^= code; - } - - return crc; -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc24.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc24.js deleted file mode 100644 index 610aedb4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc24.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-drive --model=crc-24 --generate=c` -var TABLE = [0x000000, 0x864cfb, 0x8ad50d, 0x0c99f6, 0x93e6e1, 0x15aa1a, 0x1933ec, 0x9f7f17, 0xa18139, 0x27cdc2, 0x2b5434, 0xad18cf, 0x3267d8, 0xb42b23, 0xb8b2d5, 0x3efe2e, 0xc54e89, 0x430272, 0x4f9b84, 0xc9d77f, 0x56a868, 0xd0e493, 0xdc7d65, 0x5a319e, 0x64cfb0, 0xe2834b, 0xee1abd, 0x685646, 0xf72951, 0x7165aa, 0x7dfc5c, 0xfbb0a7, 0x0cd1e9, 0x8a9d12, 0x8604e4, 0x00481f, 0x9f3708, 0x197bf3, 0x15e205, 0x93aefe, 0xad50d0, 0x2b1c2b, 0x2785dd, 0xa1c926, 0x3eb631, 0xb8faca, 0xb4633c, 0x322fc7, 0xc99f60, 0x4fd39b, 0x434a6d, 0xc50696, 0x5a7981, 0xdc357a, 0xd0ac8c, 0x56e077, 0x681e59, 0xee52a2, 0xe2cb54, 0x6487af, 0xfbf8b8, 0x7db443, 0x712db5, 0xf7614e, 0x19a3d2, 0x9fef29, 0x9376df, 0x153a24, 0x8a4533, 0x0c09c8, 0x00903e, 0x86dcc5, 0xb822eb, 0x3e6e10, 0x32f7e6, 0xb4bb1d, 0x2bc40a, 0xad88f1, 0xa11107, 0x275dfc, 0xdced5b, 0x5aa1a0, 0x563856, 0xd074ad, 0x4f0bba, 0xc94741, 0xc5deb7, 0x43924c, 0x7d6c62, 0xfb2099, 0xf7b96f, 0x71f594, 0xee8a83, 0x68c678, 0x645f8e, 0xe21375, 0x15723b, 0x933ec0, 0x9fa736, 0x19ebcd, 0x8694da, 0x00d821, 0x0c41d7, 0x8a0d2c, 0xb4f302, 0x32bff9, 0x3e260f, 0xb86af4, 0x2715e3, 0xa15918, 0xadc0ee, 0x2b8c15, 0xd03cb2, 0x567049, 0x5ae9bf, 0xdca544, 0x43da53, 0xc596a8, 0xc90f5e, 0x4f43a5, 0x71bd8b, 0xf7f170, 0xfb6886, 0x7d247d, 0xe25b6a, 0x641791, 0x688e67, 0xeec29c, 0x3347a4, 0xb50b5f, 0xb992a9, 0x3fde52, 0xa0a145, 0x26edbe, 0x2a7448, 0xac38b3, 0x92c69d, 0x148a66, 0x181390, 0x9e5f6b, 0x01207c, 0x876c87, 0x8bf571, 0x0db98a, 0xf6092d, 0x7045d6, 0x7cdc20, 0xfa90db, 0x65efcc, 0xe3a337, 0xef3ac1, 0x69763a, 0x578814, 0xd1c4ef, 0xdd5d19, 0x5b11e2, 0xc46ef5, 0x42220e, 0x4ebbf8, 0xc8f703, 0x3f964d, 0xb9dab6, 0xb54340, 0x330fbb, 0xac70ac, 0x2a3c57, 0x26a5a1, 0xa0e95a, 0x9e1774, 0x185b8f, 0x14c279, 0x928e82, 0x0df195, 0x8bbd6e, 0x872498, 0x016863, 0xfad8c4, 0x7c943f, 0x700dc9, 0xf64132, 0x693e25, 0xef72de, 0xe3eb28, 0x65a7d3, 0x5b59fd, 0xdd1506, 0xd18cf0, 0x57c00b, 0xc8bf1c, 0x4ef3e7, 0x426a11, 0xc426ea, 0x2ae476, 0xaca88d, 0xa0317b, 0x267d80, 0xb90297, 0x3f4e6c, 0x33d79a, 0xb59b61, 0x8b654f, 0x0d29b4, 0x01b042, 0x87fcb9, 0x1883ae, 0x9ecf55, 0x9256a3, 0x141a58, 0xefaaff, 0x69e604, 0x657ff2, 0xe33309, 0x7c4c1e, 0xfa00e5, 0xf69913, 0x70d5e8, 0x4e2bc6, 0xc8673d, 0xc4fecb, 0x42b230, 0xddcd27, 0x5b81dc, 0x57182a, 0xd154d1, 0x26359f, 0xa07964, 0xace092, 0x2aac69, 0xb5d37e, 0x339f85, 0x3f0673, 0xb94a88, 0x87b4a6, 0x01f85d, 0x0d61ab, 0x8b2d50, 0x145247, 0x921ebc, 0x9e874a, 0x18cbb1, 0xe37b16, 0x6537ed, 0x69ae1b, 0xefe2e0, 0x709df7, 0xf6d10c, 0xfa48fa, 0x7c0401, 0x42fa2f, 0xc4b6d4, 0xc82f22, 0x4e63d9, 0xd11cce, 0x575035, 0x5bc9c3, 0xdd8538]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('crc-24', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _buffer.Buffer)(buf); - - var crc = typeof previous !== 'undefined' ? ~ ~previous : 0xb704ce; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = (TABLE[(crc >> 16 ^ byte) & 0xff] ^ crc << 8) & 0xffffff; - } - - return crc; -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc32.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc32.js deleted file mode 100644 index f52abc94..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc32.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=crc-32 --generate=c` -var TABLE = [0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('crc-32', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _buffer.Buffer)(buf); - - var crc = previous === 0 ? 0 : ~ ~previous ^ -1; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = TABLE[(crc ^ byte) & 0xff] ^ crc >>> 8; - } - - return crc ^ -1; -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc8.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc8.js deleted file mode 100644 index 97feb1c3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc8.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=crc-8 --generate=c` -var TABLE = [0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d, 0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65, 0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d, 0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb, 0xf2, 0xf5, 0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd, 0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85, 0xa8, 0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd, 0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2, 0xff, 0xf8, 0xf1, 0xf6, 0xe3, 0xe4, 0xed, 0xea, 0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2, 0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d, 0x9a, 0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32, 0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a, 0x57, 0x50, 0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42, 0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a, 0x89, 0x8e, 0x87, 0x80, 0x95, 0x92, 0x9b, 0x9c, 0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4, 0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec, 0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4, 0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c, 0x51, 0x56, 0x5f, 0x58, 0x4d, 0x4a, 0x43, 0x44, 0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c, 0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a, 0x33, 0x34, 0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b, 0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63, 0x3e, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b, 0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13, 0xae, 0xa9, 0xa0, 0xa7, 0xb2, 0xb5, 0xbc, 0xbb, 0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83, 0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc, 0xcb, 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('crc-8', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _buffer.Buffer)(buf); - - var crc = ~ ~previous; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = TABLE[(crc ^ byte) & 0xff] & 0xff; - } - - return crc; -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc8_1wire.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc8_1wire.js deleted file mode 100644 index d5ced54e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/crc8_1wire.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=dallas-1-wire --generate=c` -var TABLE = [0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83, 0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41, 0x9d, 0xc3, 0x21, 0x7f, 0xfc, 0xa2, 0x40, 0x1e, 0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc, 0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c, 0xfe, 0xa0, 0xe1, 0xbf, 0x5d, 0x03, 0x80, 0xde, 0x3c, 0x62, 0xbe, 0xe0, 0x02, 0x5c, 0xdf, 0x81, 0x63, 0x3d, 0x7c, 0x22, 0xc0, 0x9e, 0x1d, 0x43, 0xa1, 0xff, 0x46, 0x18, 0xfa, 0xa4, 0x27, 0x79, 0x9b, 0xc5, 0x84, 0xda, 0x38, 0x66, 0xe5, 0xbb, 0x59, 0x07, 0xdb, 0x85, 0x67, 0x39, 0xba, 0xe4, 0x06, 0x58, 0x19, 0x47, 0xa5, 0xfb, 0x78, 0x26, 0xc4, 0x9a, 0x65, 0x3b, 0xd9, 0x87, 0x04, 0x5a, 0xb8, 0xe6, 0xa7, 0xf9, 0x1b, 0x45, 0xc6, 0x98, 0x7a, 0x24, 0xf8, 0xa6, 0x44, 0x1a, 0x99, 0xc7, 0x25, 0x7b, 0x3a, 0x64, 0x86, 0xd8, 0x5b, 0x05, 0xe7, 0xb9, 0x8c, 0xd2, 0x30, 0x6e, 0xed, 0xb3, 0x51, 0x0f, 0x4e, 0x10, 0xf2, 0xac, 0x2f, 0x71, 0x93, 0xcd, 0x11, 0x4f, 0xad, 0xf3, 0x70, 0x2e, 0xcc, 0x92, 0xd3, 0x8d, 0x6f, 0x31, 0xb2, 0xec, 0x0e, 0x50, 0xaf, 0xf1, 0x13, 0x4d, 0xce, 0x90, 0x72, 0x2c, 0x6d, 0x33, 0xd1, 0x8f, 0x0c, 0x52, 0xb0, 0xee, 0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1, 0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf, 0x2d, 0x73, 0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49, 0x08, 0x56, 0xb4, 0xea, 0x69, 0x37, 0xd5, 0x8b, 0x57, 0x09, 0xeb, 0xb5, 0x36, 0x68, 0x8a, 0xd4, 0x95, 0xcb, 0x29, 0x77, 0xf4, 0xaa, 0x48, 0x16, 0xe9, 0xb7, 0x55, 0x0b, 0x88, 0xd6, 0x34, 0x6a, 0x2b, 0x75, 0x97, 0xc9, 0x4a, 0x14, 0xf6, 0xa8, 0x74, 0x2a, 0xc8, 0x96, 0x15, 0x4b, 0xa9, 0xf7, 0xb6, 0xe8, 0x0a, 0x54, 0xd7, 0x89, 0x6b, 0x35]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('dallas-1-wire', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _buffer.Buffer)(buf); - - var crc = ~ ~previous; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = TABLE[(crc ^ byte) & 0xff] & 0xff; - } - - return crc; -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/define_crc.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/define_crc.js deleted file mode 100644 index 70c3bdcf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/define_crc.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (model, calc) { - var fn = function fn(buf, previous) { - return calc(buf, previous) >>> 0; - }; - fn.signed = calc; - fn.unsigned = fn; - fn.model = model; - - return fn; -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/index.js deleted file mode 100644 index d25d8dfc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/lib/index.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -module.exports = { - crc1: require('./crc1'), - crc8: require('./crc8'), - crc81wire: require('./crc8_1wire'), - crc16: require('./crc16'), - crc16ccitt: require('./crc16_ccitt'), - crc16modbus: require('./crc16_modbus'), - crc16xmodem: require('./crc16_xmodem'), - crc16kermit: require('./crc16_kermit'), - crc24: require('./crc24'), - crc32: require('./crc32') -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/package.json deleted file mode 100644 index 5cdb3b1c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/crc/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "crc", - "version": "3.4.0", - "description": "Module for calculating Cyclic Redundancy Check (CRC) for Node.js and the Browser.", - "keywords": [ - "crc" - ], - "files": [ - "lib" - ], - "main": "./lib/index.js", - "scripts": { - "test": "mocha test/*.test.js", - "pretest": "cd src && babel --out-dir ../lib *.js" - }, - "author": { - "name": "Alex Gorbatchev", - "url": "https://github.com/alexgorbatchev" - }, - "devDependencies": { - "babel-core": "^6.1.21", - "babel-preset-es2015": "^6.1.18", - "beautify-benchmark": "^0.2.4", - "benchmark": "^1.0.0", - "buffer-crc32": "^0.2.3", - "chai": "^3.4.1", - "mocha": "*", - "seedrandom": "^2.3.6" - }, - "homepage": "https://github.com/alexgorbatchev/node-crc", - "bugs": { - "url": "https://github.com/alexgorbatchev/node-crc/issues" - }, - "repository": { - "type": "git", - "url": "git://github.com/alexgorbatchev/node-crc.git" - }, - "license": "MIT", - "babel": { - "presets": [ - "es2015" - ] - }, - "gitHead": "3726e792cb4a328ef2d935cfd896e54fa9529aaf", - "_id": "crc@3.4.0", - "_shasum": "4258e351613a74ef1153dfcb05e820c3e9715d7f", - "_from": "crc@3.4.0", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "alexgorbatchev", - "email": "alex.gorbatchev@gmail.com" - }, - "dist": { - "shasum": "4258e351613a74ef1153dfcb05e820c3e9715d7f", - "tarball": "https://registry.npmjs.org/crc/-/crc-3.4.0.tgz" - }, - "maintainers": [ - { - "name": "alexgorbatchev", - "email": "alex.gorbatchev@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/crc/-/crc-3.4.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/.jshintrc deleted file mode 100644 index 299877f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/.jshintrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "laxbreak": true -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/.npmignore deleted file mode 100644 index 7e6163db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -support -test -examples -example -*.sock -dist diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/History.md deleted file mode 100644 index 854c9711..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/History.md +++ /dev/null @@ -1,195 +0,0 @@ - -2.2.0 / 2015-05-09 -================== - - * package: update "ms" to v0.7.1 (#202, @dougwilson) - * README: add logging to file example (#193, @DanielOchoa) - * README: fixed a typo (#191, @amir-s) - * browser: expose `storage` (#190, @stephenmathieson) - * Makefile: add a `distclean` target (#189, @stephenmathieson) - -2.1.3 / 2015-03-13 -================== - - * Updated stdout/stderr example (#186) - * Updated example/stdout.js to match debug current behaviour - * Renamed example/stderr.js to stdout.js - * Update Readme.md (#184) - * replace high intensity foreground color for bold (#182, #183) - -2.1.2 / 2015-03-01 -================== - - * dist: recompile - * update "ms" to v0.7.0 - * package: update "browserify" to v9.0.3 - * component: fix "ms.js" repo location - * changed bower package name - * updated documentation about using debug in a browser - * fix: security error on safari (#167, #168, @yields) - -2.1.1 / 2014-12-29 -================== - - * browser: use `typeof` to check for `console` existence - * browser: check for `console.log` truthiness (fix IE 8/9) - * browser: add support for Chrome apps - * Readme: added Windows usage remarks - * Add `bower.json` to properly support bower install - -2.1.0 / 2014-10-15 -================== - - * node: implement `DEBUG_FD` env variable support - * package: update "browserify" to v6.1.0 - * package: add "license" field to package.json (#135, @panuhorsmalahti) - -2.0.0 / 2014-09-01 -================== - - * package: update "browserify" to v5.11.0 - * node: use stderr rather than stdout for logging (#29, @stephenmathieson) - -1.0.4 / 2014-07-15 -================== - - * dist: recompile - * example: remove `console.info()` log usage - * example: add "Content-Type" UTF-8 header to browser example - * browser: place %c marker after the space character - * browser: reset the "content" color via `color: inherit` - * browser: add colors support for Firefox >= v31 - * debug: prefer an instance `log()` function over the global one (#119) - * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) - -1.0.3 / 2014-07-09 -================== - - * Add support for multiple wildcards in namespaces (#122, @seegno) - * browser: fix lint - -1.0.2 / 2014-06-10 -================== - - * browser: update color palette (#113, @gscottolson) - * common: make console logging function configurable (#108, @timoxley) - * node: fix %o colors on old node <= 0.8.x - * Makefile: find node path using shell/which (#109, @timoxley) - -1.0.1 / 2014-06-06 -================== - - * browser: use `removeItem()` to clear localStorage - * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) - * package: add "contributors" section - * node: fix comment typo - * README: list authors - -1.0.0 / 2014-06-04 -================== - - * make ms diff be global, not be scope - * debug: ignore empty strings in enable() - * node: make DEBUG_COLORS able to disable coloring - * *: export the `colors` array - * npmignore: don't publish the `dist` dir - * Makefile: refactor to use browserify - * package: add "browserify" as a dev dependency - * Readme: add Web Inspector Colors section - * node: reset terminal color for the debug content - * node: map "%o" to `util.inspect()` - * browser: map "%j" to `JSON.stringify()` - * debug: add custom "formatters" - * debug: use "ms" module for humanizing the diff - * Readme: add "bash" syntax highlighting - * browser: add Firebug color support - * browser: add colors for WebKit browsers - * node: apply log to `console` - * rewrite: abstract common logic for Node & browsers - * add .jshintrc file - -0.8.1 / 2014-04-14 -================== - - * package: re-add the "component" section - -0.8.0 / 2014-03-30 -================== - - * add `enable()` method for nodejs. Closes #27 - * change from stderr to stdout - * remove unnecessary index.js file - -0.7.4 / 2013-11-13 -================== - - * remove "browserify" key from package.json (fixes something in browserify) - -0.7.3 / 2013-10-30 -================== - - * fix: catch localStorage security error when cookies are blocked (Chrome) - * add debug(err) support. Closes #46 - * add .browser prop to package.json. Closes #42 - -0.7.2 / 2013-02-06 -================== - - * fix package.json - * fix: Mobile Safari (private mode) is broken with debug - * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript - -0.7.1 / 2013-02-05 -================== - - * add repository URL to package.json - * add DEBUG_COLORED to force colored output - * add browserify support - * fix component. Closes #24 - -0.7.0 / 2012-05-04 -================== - - * Added .component to package.json - * Added debug.component.js build - -0.6.0 / 2012-03-16 -================== - - * Added support for "-" prefix in DEBUG [Vinay Pulim] - * Added `.enabled` flag to the node version [TooTallNate] - -0.5.0 / 2012-02-02 -================== - - * Added: humanize diffs. Closes #8 - * Added `debug.disable()` to the CS variant - * Removed padding. Closes #10 - * Fixed: persist client-side variant again. Closes #9 - -0.4.0 / 2012-02-01 -================== - - * Added browser variant support for older browsers [TooTallNate] - * Added `debug.enable('project:*')` to browser variant [TooTallNate] - * Added padding to diff (moved it to the right) - -0.3.0 / 2012-01-26 -================== - - * Added millisecond diff when isatty, otherwise UTC string - -0.2.0 / 2012-01-22 -================== - - * Added wildcard support - -0.1.0 / 2011-12-02 -================== - - * Added: remove colors unless stderr isatty [TooTallNate] - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/Makefile deleted file mode 100644 index 5cf4a596..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/Makefile +++ /dev/null @@ -1,36 +0,0 @@ - -# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 -THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) -THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) - -# BIN directory -BIN := $(THIS_DIR)/node_modules/.bin - -# applications -NODE ?= $(shell which node) -NPM ?= $(NODE) $(shell which npm) -BROWSERIFY ?= $(NODE) $(BIN)/browserify - -all: dist/debug.js - -install: node_modules - -clean: - @rm -rf dist - -dist: - @mkdir -p $@ - -dist/debug.js: node_modules browser.js debug.js dist - @$(BROWSERIFY) \ - --standalone debug \ - . > $@ - -distclean: clean - @rm -rf node_modules - -node_modules: package.json - @NODE_ENV= $(NPM) install - @touch node_modules - -.PHONY: all install clean distclean diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/Readme.md deleted file mode 100644 index b4f45e3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/Readme.md +++ /dev/null @@ -1,188 +0,0 @@ -# debug - - tiny node.js debugging utility modelled after node core's debugging technique. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - - With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility. - -Example _app.js_: - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %s', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example _worker.js_: - -```js -var debug = require('debug')('worker'); - -setInterval(function(){ - debug('doing some work'); -}, 1000); -``` - - The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: - - ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) - - ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) - -#### Windows note - - On Windows the environment variable is set using the `set` command. - - ```cmd - set DEBUG=*,-not_this - ``` - -Then, run the program to be debugged as usual. - -## Millisecond diff - - When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) - - When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: - - ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) - -## Conventions - - If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". - -## Wildcards - - The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - - You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:". - -## Browser support - - Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include: - -```js -window.myDebug = require("debug"); -``` - - ("debug" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console: - -```js -myDebug.enable("worker:*") -``` - - Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - -#### Web Inspector Colors - - Colors are also enabled on "Web Inspectors" that understand the `%c` formatting - option. These are WebKit web inspectors, Firefox ([since version - 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) - and the Firebug plugin for Firefox (any version). - - Colored output looks something like: - - ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png) - -### stderr vs stdout - -You can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally: - -Example _stdout.js_: - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -### Save debug output to a file - -You can save all debug statements to a file by piping them. - -Example: - -```bash -$ DEBUG_FD=3 node your-app.js 3> whatever.log -``` - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - -## License - -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/bower.json deleted file mode 100644 index 6af573ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "visionmedia-debug", - "main": "dist/debug.js", - "version": "2.2.0", - "homepage": "https://github.com/visionmedia/debug", - "authors": [ - "TJ Holowaychuk " - ], - "description": "visionmedia-debug", - "moduleType": [ - "amd", - "es6", - "globals", - "node" - ], - "keywords": [ - "visionmedia", - "debug" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/browser.js deleted file mode 100644 index 7c764522..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/browser.js +++ /dev/null @@ -1,168 +0,0 @@ - -/** - * This is the web browser implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - -/** - * Colors. - */ - -exports.colors = [ - 'lightseagreen', - 'forestgreen', - 'goldenrod', - 'dodgerblue', - 'darkorchid', - 'crimson' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -function useColors() { - // is webkit? http://stackoverflow.com/a/16459606/376773 - return ('WebkitAppearance' in document.documentElement.style) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (window.console && (console.firebug || (console.exception && console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31); -} - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - return JSON.stringify(v); -}; - - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); - - if (!useColors) return args; - - var c = 'color: ' + this.color; - args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1)); - - // the final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - var index = 0; - var lastC = 0; - args[0].replace(/%[a-z%]/g, function(match) { - if ('%%' === match) return; - index++; - if ('%c' === match) { - // we only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); - return args; -} - -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ - -function log() { - // this hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - try { - if (null == namespaces) { - exports.storage.removeItem('debug'); - } else { - exports.storage.debug = namespaces; - } - } catch(e) {} -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - var r; - try { - r = exports.storage.debug; - } catch(e) {} - return r; -} - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage(){ - try { - return window.localStorage; - } catch (e) {} -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/component.json deleted file mode 100644 index ca106372..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "debug", - "repo": "visionmedia/debug", - "description": "small debugging utility", - "version": "2.2.0", - "keywords": [ - "debug", - "log", - "debugger" - ], - "main": "browser.js", - "scripts": [ - "browser.js", - "debug.js" - ], - "dependencies": { - "rauchg/ms.js": "0.7.1" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/debug.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/debug.js deleted file mode 100644 index 7571a860..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/debug.js +++ /dev/null @@ -1,197 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = debug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = require('ms'); - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lowercased letter, i.e. "n". - */ - -exports.formatters = {}; - -/** - * Previously assigned color. - */ - -var prevColor = 0; - -/** - * Previous log timestamp. - */ - -var prevTime; - -/** - * Select a color. - * - * @return {Number} - * @api private - */ - -function selectColor() { - return exports.colors[prevColor++ % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function debug(namespace) { - - // define the `disabled` version - function disabled() { - } - disabled.enabled = false; - - // define the `enabled` version - function enabled() { - - var self = enabled; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // add the `color` if not set - if (null == self.useColors) self.useColors = exports.useColors(); - if (null == self.color && self.useColors) self.color = selectColor(); - - var args = Array.prototype.slice.call(arguments); - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %o - args = ['%o'].concat(args); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - if ('function' === typeof exports.formatArgs) { - args = exports.formatArgs.apply(self, args); - } - var logFn = enabled.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - enabled.enabled = true; - - var fn = exports.enabled(namespace) ? enabled : disabled; - - fn.namespace = namespace; - - return fn; -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - var split = (namespaces || '').split(/[\s,]+/); - var len = split.length; - - for (var i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node.js deleted file mode 100644 index 1d392a81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node.js +++ /dev/null @@ -1,209 +0,0 @@ - -/** - * Module dependencies. - */ - -var tty = require('tty'); -var util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -/** - * The file descriptor to write the `debug()` calls to. - * Set the `DEBUG_FD` env variable to override with another value. i.e.: - * - * $ DEBUG_FD=3 node script.js 3>debug.log - */ - -var fd = parseInt(process.env.DEBUG_FD, 10) || 2; -var stream = 1 === fd ? process.stdout : - 2 === fd ? process.stderr : - createWritableStdioStream(fd); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - var debugColors = (process.env.DEBUG_COLORS || '').trim().toLowerCase(); - if (0 === debugColors.length) { - return tty.isatty(fd); - } else { - return '0' !== debugColors - && 'no' !== debugColors - && 'false' !== debugColors - && 'disabled' !== debugColors; - } -} - -/** - * Map %o to `util.inspect()`, since Node doesn't do that out of the box. - */ - -var inspect = (4 === util.inspect.length ? - // node <= 0.8.x - function (v, colors) { - return util.inspect(v, void 0, void 0, colors); - } : - // node > 0.8.x - function (v, colors) { - return util.inspect(v, { colors: colors }); - } -); - -exports.formatters.o = function(v) { - return inspect(v, this.useColors) - .replace(/\s*\n\s*/g, ' '); -}; - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - var name = this.namespace; - - if (useColors) { - var c = this.color; - - args[0] = ' \u001b[3' + c + ';1m' + name + ' ' - + '\u001b[0m' - + args[0] + '\u001b[3' + c + 'm' - + ' +' + exports.humanize(this.diff) + '\u001b[0m'; - } else { - args[0] = new Date().toUTCString() - + ' ' + name + ' ' + args[0]; - } - return args; -} - -/** - * Invokes `console.error()` with the specified arguments. - */ - -function log() { - return stream.write(util.format.apply(this, arguments) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - if (null == namespaces) { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } else { - process.env.DEBUG = namespaces; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Copied from `node/src/node.js`. - * - * XXX: It's lame that node doesn't expose this API out-of-the-box. It also - * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. - */ - -function createWritableStdioStream (fd) { - var stream; - var tty_wrap = process.binding('tty_wrap'); - - // Note stream._type is used for test-module-load-list.js - - switch (tty_wrap.guessHandleType(fd)) { - case 'TTY': - stream = new tty.WriteStream(fd); - stream._type = 'tty'; - - // Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - case 'FILE': - var fs = require('fs'); - stream = new fs.SyncWriteStream(fd, { autoClose: false }); - stream._type = 'fs'; - break; - - case 'PIPE': - case 'TCP': - var net = require('net'); - stream = new net.Socket({ - fd: fd, - readable: false, - writable: true - }); - - // FIXME Should probably have an option in net.Socket to create a - // stream from an existing fd which is writable only. But for now - // we'll just add this hack and set the `readable` member to false. - // Test: ./node test/fixtures/echo.js < /etc/passwd - stream.readable = false; - stream.read = null; - stream._type = 'pipe'; - - // FIXME Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - default: - // Probably an error on in uv_guess_handle() - throw new Error('Implement me. Unknown stream file type!'); - } - - // For supporting legacy API we put the FD here. - stream.fd = fd; - - stream._isStdio = true; - - return stream; -} - -/** - * Enable namespaces listed in `process.env.DEBUG` initially. - */ - -exports.enable(load()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/.npmignore deleted file mode 100644 index d1aa0ce4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules -test -History.md -Makefile -component.json diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/History.md deleted file mode 100644 index 32fdfc17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/History.md +++ /dev/null @@ -1,66 +0,0 @@ - -0.7.1 / 2015-04-20 -================== - - * prevent extraordinary long inputs (@evilpacket) - * Fixed broken readme link - -0.7.0 / 2014-11-24 -================== - - * add time abbreviations, updated tests and readme for the new units - * fix example in the readme. - * add LICENSE file - -0.6.2 / 2013-12-05 -================== - - * Adding repository section to package.json to suppress warning from NPM. - -0.6.1 / 2013-05-10 -================== - - * fix singularization [visionmedia] - -0.6.0 / 2013-03-15 -================== - - * fix minutes - -0.5.1 / 2013-02-24 -================== - - * add component namespace - -0.5.0 / 2012-11-09 -================== - - * add short formatting as default and .long option - * add .license property to component.json - * add version to component.json - -0.4.0 / 2012-10-22 -================== - - * add rounding to fix crazy decimals - -0.3.0 / 2012-09-07 -================== - - * fix `ms()` [visionmedia] - -0.2.0 / 2012-09-03 -================== - - * add component.json [visionmedia] - * add days support [visionmedia] - * add hours support [visionmedia] - * add minutes support [visionmedia] - * add seconds support [visionmedia] - * add ms string support [visionmedia] - * refactor tests to facilitate ms(number) [visionmedia] - -0.1.0 / 2012-03-07 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/LICENSE deleted file mode 100644 index 6c07561b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Guillermo Rauch - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/README.md deleted file mode 100644 index 9b4fd035..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# ms.js: miliseconds conversion utility - -```js -ms('2 days') // 172800000 -ms('1d') // 86400000 -ms('10h') // 36000000 -ms('2.5 hrs') // 9000000 -ms('2h') // 7200000 -ms('1m') // 60000 -ms('5s') // 5000 -ms('100') // 100 -``` - -```js -ms(60000) // "1m" -ms(2 * 60000) // "2m" -ms(ms('10 hours')) // "10h" -``` - -```js -ms(60000, { long: true }) // "1 minute" -ms(2 * 60000, { long: true }) // "2 minutes" -ms(ms('10 hours'), { long: true }) // "10 hours" -``` - -- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download). -- If a number is supplied to `ms`, a string with a unit is returned. -- If a string that contains the number is supplied, it returns it as -a number (e.g: it returns `100` for `'100'`). -- If you pass a string with a number and a valid unit, the number of -equivalent ms is returned. - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/index.js deleted file mode 100644 index 4f927716..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/index.js +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} options - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options){ - options = options || {}; - if ('string' == typeof val) return parse(val); - return options.long - ? long(val) - : short(val); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = '' + str; - if (str.length > 10000) return; - var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str); - if (!match) return; - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function short(ms) { - if (ms >= d) return Math.round(ms / d) + 'd'; - if (ms >= h) return Math.round(ms / h) + 'h'; - if (ms >= m) return Math.round(ms / m) + 'm'; - if (ms >= s) return Math.round(ms / s) + 's'; - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function long(ms) { - return plural(ms, d, 'day') - || plural(ms, h, 'hour') - || plural(ms, m, 'minute') - || plural(ms, s, 'second') - || ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, n, name) { - if (ms < n) return; - if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name; - return Math.ceil(ms / n) + ' ' + name + 's'; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/package.json deleted file mode 100644 index e36489ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/node_modules/ms/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "ms", - "version": "0.7.1", - "description": "Tiny ms conversion utility", - "repository": { - "type": "git", - "url": "git://github.com/guille/ms.js.git" - }, - "main": "./index", - "devDependencies": { - "mocha": "*", - "expect.js": "*", - "serve": "*" - }, - "component": { - "scripts": { - "ms/index.js": "index.js" - } - }, - "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909", - "bugs": { - "url": "https://github.com/guille/ms.js/issues" - }, - "homepage": "https://github.com/guille/ms.js", - "_id": "ms@0.7.1", - "scripts": {}, - "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "_from": "ms@0.7.1", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/package.json deleted file mode 100644 index f2148c9e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/debug/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "debug", - "version": "2.2.0", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" - ], - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "contributors": [ - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io" - } - ], - "license": "MIT", - "dependencies": { - "ms": "0.7.1" - }, - "devDependencies": { - "browserify": "9.0.3", - "mocha": "*" - }, - "main": "./node.js", - "browser": "./browser.js", - "component": { - "scripts": { - "debug/index.js": "browser.js", - "debug/debug.js": "debug.js" - } - }, - "gitHead": "b38458422b5aa8aa6d286b10dfe427e8a67e2b35", - "bugs": { - "url": "https://github.com/visionmedia/debug/issues" - }, - "homepage": "https://github.com/visionmedia/debug", - "_id": "debug@2.2.0", - "scripts": {}, - "_shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "_from": "debug@>=2.2.0 <2.3.0", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "dist": { - "shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "tarball": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/History.md deleted file mode 100644 index ace11715..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/History.md +++ /dev/null @@ -1,84 +0,0 @@ -1.1.0 / 2015-09-14 -================== - - * Enable strict mode in more places - * Support io.js 3.x - * Support io.js 2.x - * Support web browser loading - - Requires bundler like Browserify or webpack - -1.0.1 / 2015-04-07 -================== - - * Fix `TypeError`s when under `'use strict'` code - * Fix useless type name on auto-generated messages - * Support io.js 1.x - * Support Node.js 0.12 - -1.0.0 / 2014-09-17 -================== - - * No changes - -0.4.5 / 2014-09-09 -================== - - * Improve call speed to functions using the function wrapper - * Support Node.js 0.6 - -0.4.4 / 2014-07-27 -================== - - * Work-around v8 generating empty stack traces - -0.4.3 / 2014-07-26 -================== - - * Fix exception when global `Error.stackTraceLimit` is too low - -0.4.2 / 2014-07-19 -================== - - * Correct call site for wrapped functions and properties - -0.4.1 / 2014-07-19 -================== - - * Improve automatic message generation for function properties - -0.4.0 / 2014-07-19 -================== - - * Add `TRACE_DEPRECATION` environment variable - * Remove non-standard grey color from color output - * Support `--no-deprecation` argument - * Support `--trace-deprecation` argument - * Support `deprecate.property(fn, prop, message)` - -0.3.0 / 2014-06-16 -================== - - * Add `NO_DEPRECATION` environment variable - -0.2.0 / 2014-06-15 -================== - - * Add `deprecate.property(obj, prop, message)` - * Remove `supports-color` dependency for node.js 0.8 - -0.1.0 / 2014-06-15 -================== - - * Add `deprecate.function(fn, message)` - * Add `process.on('deprecation', fn)` emitter - * Automatically generate message when omitted from `deprecate()` - -0.0.1 / 2014-06-15 -================== - - * Fix warning for dynamic calls at singe call site - -0.0.0 / 2014-06-15 -================== - - * Initial implementation diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/LICENSE deleted file mode 100644 index 142ede38..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/Readme.md deleted file mode 100644 index 09bb9799..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/Readme.md +++ /dev/null @@ -1,281 +0,0 @@ -# depd - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Linux Build][travis-image]][travis-url] -[![Windows Build][appveyor-image]][appveyor-url] -[![Coverage Status][coveralls-image]][coveralls-url] -[![Gratipay][gratipay-image]][gratipay-url] - -Deprecate all the things - -> With great modules comes great responsibility; mark things deprecated! - -## Install - -This module is installed directly using `npm`: - -```sh -$ npm install depd -``` - -This module can also be bundled with systems like -[Browserify](http://browserify.org/) or [webpack](https://webpack.github.io/), -though by default this module will alter it's API to no longer display or -track deprecations. - -## API - -```js -var deprecate = require('depd')('my-module') -``` - -This library allows you to display deprecation messages to your users. -This library goes above and beyond with deprecation warnings by -introspection of the call stack (but only the bits that it is interested -in). - -Instead of just warning on the first invocation of a deprecated -function and never again, this module will warn on the first invocation -of a deprecated function per unique call site, making it ideal to alert -users of all deprecated uses across the code base, rather than just -whatever happens to execute first. - -The deprecation warnings from this module also include the file and line -information for the call into the module that the deprecated function was -in. - -**NOTE** this library has a similar interface to the `debug` module, and -this module uses the calling file to get the boundary for the call stacks, -so you should always create a new `deprecate` object in each file and not -within some central file. - -### depd(namespace) - -Create a new deprecate function that uses the given namespace name in the -messages and will display the call site prior to the stack entering the -file this function was called from. It is highly suggested you use the -name of your module as the namespace. - -### deprecate(message) - -Call this function from deprecated code to display a deprecation message. -This message will appear once per unique caller site. Caller site is the -first call site in the stack in a different file from the caller of this -function. - -If the message is omitted, a message is generated for you based on the site -of the `deprecate()` call and will display the name of the function called, -similar to the name displayed in a stack trace. - -### deprecate.function(fn, message) - -Call this function to wrap a given function in a deprecation message on any -call to the function. An optional message can be supplied to provide a custom -message. - -### deprecate.property(obj, prop, message) - -Call this function to wrap a given property on object in a deprecation message -on any accessing or setting of the property. An optional message can be supplied -to provide a custom message. - -The method must be called on the object where the property belongs (not -inherited from the prototype). - -If the property is a data descriptor, it will be converted to an accessor -descriptor in order to display the deprecation message. - -### process.on('deprecation', fn) - -This module will allow easy capturing of deprecation errors by emitting the -errors as the type "deprecation" on the global `process`. If there are no -listeners for this type, the errors are written to STDERR as normal, but if -there are any listeners, nothing will be written to STDERR and instead only -emitted. From there, you can write the errors in a different format or to a -logging source. - -The error represents the deprecation and is emitted only once with the same -rules as writing to STDERR. The error has the following properties: - - - `message` - This is the message given by the library - - `name` - This is always `'DeprecationError'` - - `namespace` - This is the namespace the deprecation came from - - `stack` - This is the stack of the call to the deprecated thing - -Example `error.stack` output: - -``` -DeprecationError: my-cool-module deprecated oldfunction - at Object. ([eval]-wrapper:6:22) - at Module._compile (module.js:456:26) - at evalScript (node.js:532:25) - at startup (node.js:80:7) - at node.js:902:3 -``` - -### process.env.NO_DEPRECATION - -As a user of modules that are deprecated, the environment variable `NO_DEPRECATION` -is provided as a quick solution to silencing deprecation warnings from being -output. The format of this is similar to that of `DEBUG`: - -```sh -$ NO_DEPRECATION=my-module,othermod node app.js -``` - -This will suppress deprecations from being output for "my-module" and "othermod". -The value is a list of comma-separated namespaces. To suppress every warning -across all namespaces, use the value `*` for a namespace. - -Providing the argument `--no-deprecation` to the `node` executable will suppress -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not suppress the deperecations given to any "deprecation" -event listeners, just the output to STDERR. - -### process.env.TRACE_DEPRECATION - -As a user of modules that are deprecated, the environment variable `TRACE_DEPRECATION` -is provided as a solution to getting more detailed location information in deprecation -warnings by including the entire stack trace. The format of this is the same as -`NO_DEPRECATION`: - -```sh -$ TRACE_DEPRECATION=my-module,othermod node app.js -``` - -This will include stack traces for deprecations being output for "my-module" and -"othermod". The value is a list of comma-separated namespaces. To trace every -warning across all namespaces, use the value `*` for a namespace. - -Providing the argument `--trace-deprecation` to the `node` executable will trace -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not trace the deperecations silenced by `NO_DEPRECATION`. - -## Display - -![message](files/message.png) - -When a user calls a function in your library that you mark deprecated, they -will see the following written to STDERR (in the given colors, similar colors -and layout to the `debug` module): - -``` -bright cyan bright yellow -| | reset cyan -| | | | -▼ ▼ ▼ ▼ -my-cool-module deprecated oldfunction [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ -| | | | -namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -If the user redirects their STDERR to a file or somewhere that does not support -colors, they see (similar layout to the `debug` module): - -``` -Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ ▲ -| | | | | -timestamp of message namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -## Examples - -### Deprecating all calls to a function - -This will display a deprecated message about "oldfunction" being deprecated -from "my-module" on STDERR. - -```js -var deprecate = require('depd')('my-cool-module') - -// message automatically derived from function name -// Object.oldfunction -exports.oldfunction = deprecate.function(function oldfunction() { - // all calls to function are deprecated -}) - -// specific message -exports.oldfunction = deprecate.function(function () { - // all calls to function are deprecated -}, 'oldfunction') -``` - -### Conditionally deprecating a function call - -This will display a deprecated message about "weirdfunction" being deprecated -from "my-module" on STDERR when called with less than 2 arguments. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } -} -``` - -When calling `deprecate` as a function, the warning is counted per call site -within your own module, so you can display different deprecations depending -on different situations and the users will still get all the warnings: - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } else if (typeof arguments[0] !== 'string') { - // calls with non-string first argument are deprecated - deprecate('weirdfunction non-string first arg') - } -} -``` - -### Deprecating property access - -This will display a deprecated message about "oldprop" being deprecated -from "my-module" on STDERR when accessed. A deprecation will be displayed -when setting the value and when getting the value. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.oldprop = 'something' - -// message automatically derives from property name -deprecate.property(exports, 'oldprop') - -// explicit message -deprecate.property(exports, 'oldprop', 'oldprop >= 0.10') -``` - -## License - -[MIT](LICENSE) - -[npm-version-image]: https://img.shields.io/npm/v/depd.svg -[npm-downloads-image]: https://img.shields.io/npm/dm/depd.svg -[npm-url]: https://npmjs.org/package/depd -[travis-image]: https://img.shields.io/travis/dougwilson/nodejs-depd/master.svg?label=linux -[travis-url]: https://travis-ci.org/dougwilson/nodejs-depd -[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/nodejs-depd/master.svg?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/nodejs-depd -[coveralls-image]: https://img.shields.io/coveralls/dougwilson/nodejs-depd/master.svg -[coveralls-url]: https://coveralls.io/r/dougwilson/nodejs-depd?branch=master -[node-image]: https://img.shields.io/node/v/depd.svg -[node-url]: http://nodejs.org/download/ -[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg -[gratipay-url]: https://www.gratipay.com/dougwilson/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/index.js deleted file mode 100644 index fddcae87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/index.js +++ /dev/null @@ -1,521 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var callSiteToString = require('./lib/compat').callSiteToString -var eventListenerCount = require('./lib/compat').eventListenerCount -var relative = require('path').relative - -/** - * Module exports. - */ - -module.exports = depd - -/** - * Get the path to base files on. - */ - -var basePath = process.cwd() - -/** - * Determine if namespace is contained in the string. - */ - -function containsNamespace(str, namespace) { - var val = str.split(/[ ,]+/) - - namespace = String(namespace).toLowerCase() - - for (var i = 0 ; i < val.length; i++) { - if (!(str = val[i])) continue; - - // namespace contained - if (str === '*' || str.toLowerCase() === namespace) { - return true - } - } - - return false -} - -/** - * Convert a data descriptor to accessor descriptor. - */ - -function convertDataDescriptorToAccessor(obj, prop, message) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - var value = descriptor.value - - descriptor.get = function getter() { return value } - - if (descriptor.writable) { - descriptor.set = function setter(val) { return value = val } - } - - delete descriptor.value - delete descriptor.writable - - Object.defineProperty(obj, prop, descriptor) - - return descriptor -} - -/** - * Create arguments string to keep arity. - */ - -function createArgumentsString(arity) { - var str = '' - - for (var i = 0; i < arity; i++) { - str += ', arg' + i - } - - return str.substr(2) -} - -/** - * Create stack string from stack. - */ - -function createStackString(stack) { - var str = this.name + ': ' + this.namespace - - if (this.message) { - str += ' deprecated ' + this.message - } - - for (var i = 0; i < stack.length; i++) { - str += '\n at ' + callSiteToString(stack[i]) - } - - return str -} - -/** - * Create deprecate for namespace in caller. - */ - -function depd(namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - var stack = getStack() - var site = callSiteLocation(stack[1]) - var file = site[0] - - function deprecate(message) { - // call to self as log - log.call(deprecate, message) - } - - deprecate._file = file - deprecate._ignored = isignored(namespace) - deprecate._namespace = namespace - deprecate._traced = istraced(namespace) - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Determine if namespace is ignored. - */ - -function isignored(namespace) { - /* istanbul ignore next: tested in a child processs */ - if (process.noDeprecation) { - // --no-deprecation support - return true - } - - var str = process.env.NO_DEPRECATION || '' - - // namespace ignored - return containsNamespace(str, namespace) -} - -/** - * Determine if namespace is traced. - */ - -function istraced(namespace) { - /* istanbul ignore next: tested in a child processs */ - if (process.traceDeprecation) { - // --trace-deprecation support - return true - } - - var str = process.env.TRACE_DEPRECATION || '' - - // namespace traced - return containsNamespace(str, namespace) -} - -/** - * Display deprecation message. - */ - -function log(message, site) { - var haslisteners = eventListenerCount(process, 'deprecation') !== 0 - - // abort early if no destination - if (!haslisteners && this._ignored) { - return - } - - var caller - var callFile - var callSite - var i = 0 - var seen = false - var stack = getStack() - var file = this._file - - if (site) { - // provided site - callSite = callSiteLocation(stack[1]) - callSite.name = site.name - file = callSite[0] - } else { - // get call site - i = 2 - site = callSiteLocation(stack[i]) - callSite = site - } - - // get caller of deprecated thing in relation to file - for (; i < stack.length; i++) { - caller = callSiteLocation(stack[i]) - callFile = caller[0] - - if (callFile === file) { - seen = true - } else if (callFile === this._file) { - file = this._file - } else if (seen) { - break - } - } - - var key = caller - ? site.join(':') + '__' + caller.join(':') - : undefined - - if (key !== undefined && key in this._warned) { - // already warned - return - } - - this._warned[key] = true - - // generate automatic message from call site - if (!message) { - message = callSite === site || !callSite.name - ? defaultMessage(site) - : defaultMessage(callSite) - } - - // emit deprecation if listeners exist - if (haslisteners) { - var err = DeprecationError(this._namespace, message, stack.slice(i)) - process.emit('deprecation', err) - return - } - - // format and write message - var format = process.stderr.isTTY - ? formatColor - : formatPlain - var msg = format.call(this, message, caller, stack.slice(i)) - process.stderr.write(msg + '\n', 'utf8') - - return -} - -/** - * Get call site location as array. - */ - -function callSiteLocation(callSite) { - var file = callSite.getFileName() || '' - var line = callSite.getLineNumber() - var colm = callSite.getColumnNumber() - - if (callSite.isEval()) { - file = callSite.getEvalOrigin() + ', ' + file - } - - var site = [file, line, colm] - - site.callSite = callSite - site.name = callSite.getFunctionName() - - return site -} - -/** - * Generate a default message from the site. - */ - -function defaultMessage(site) { - var callSite = site.callSite - var funcName = site.name - - // make useful anonymous name - if (!funcName) { - funcName = '' - } - - var context = callSite.getThis() - var typeName = context && callSite.getTypeName() - - // ignore useless type name - if (typeName === 'Object') { - typeName = undefined - } - - // make useful type name - if (typeName === 'Function') { - typeName = context.name || typeName - } - - return typeName && callSite.getMethodName() - ? typeName + '.' + funcName - : funcName -} - -/** - * Format deprecation message without color. - */ - -function formatPlain(msg, caller, stack) { - var timestamp = new Date().toUTCString() - - var formatted = timestamp - + ' ' + this._namespace - + ' deprecated ' + msg - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n at ' + callSiteToString(stack[i]) - } - - return formatted - } - - if (caller) { - formatted += ' at ' + formatLocation(caller) - } - - return formatted -} - -/** - * Format deprecation message with color. - */ - -function formatColor(msg, caller, stack) { - var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' // bold cyan - + ' \x1b[33;1mdeprecated\x1b[22;39m' // bold yellow - + ' \x1b[0m' + msg + '\x1b[39m' // reset - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n \x1b[36mat ' + callSiteToString(stack[i]) + '\x1b[39m' // cyan - } - - return formatted - } - - if (caller) { - formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan - } - - return formatted -} - -/** - * Format call site location. - */ - -function formatLocation(callSite) { - return relative(basePath, callSite[0]) - + ':' + callSite[1] - + ':' + callSite[2] -} - -/** - * Get the stack as array of call sites. - */ - -function getStack() { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = Math.max(10, limit) - - // capture the stack - Error.captureStackTrace(obj) - - // slice this function off the top - var stack = obj.stack.slice(1) - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack -} - -/** - * Capture call site stack from v8. - */ - -function prepareObjectStackTrace(obj, stack) { - return stack -} - -/** - * Return a wrapped function in a deprecation message. - */ - -function wrapfunction(fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - var args = createArgumentsString(fn.length) - var deprecate = this - var stack = getStack() - var site = callSiteLocation(stack[1]) - - site.name = fn.name - - var deprecatedfn = eval('(function (' + args + ') {\n' - + '"use strict"\n' - + 'log.call(deprecate, message, site)\n' - + 'return fn.apply(this, arguments)\n' - + '})') - - return deprecatedfn -} - -/** - * Wrap property in a deprecation message. - */ - -function wrapproperty(obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } - - var deprecate = this - var stack = getStack() - var site = callSiteLocation(stack[1]) - - // set site name - site.name = prop - - // convert data descriptor - if ('value' in descriptor) { - descriptor = convertDataDescriptorToAccessor(obj, prop, message) - } - - var get = descriptor.get - var set = descriptor.set - - // wrap getter - if (typeof get === 'function') { - descriptor.get = function getter() { - log.call(deprecate, message, site) - return get.apply(this, arguments) - } - } - - // wrap setter - if (typeof set === 'function') { - descriptor.set = function setter() { - log.call(deprecate, message, site) - return set.apply(this, arguments) - } - } - - Object.defineProperty(obj, prop, descriptor) -} - -/** - * Create DeprecationError for deprecation - */ - -function DeprecationError(namespace, message, stack) { - var error = new Error() - var stackString - - Object.defineProperty(error, 'constructor', { - value: DeprecationError - }) - - Object.defineProperty(error, 'message', { - configurable: true, - enumerable: false, - value: message, - writable: true - }) - - Object.defineProperty(error, 'name', { - enumerable: false, - configurable: true, - value: 'DeprecationError', - writable: true - }) - - Object.defineProperty(error, 'namespace', { - configurable: true, - enumerable: false, - value: namespace, - writable: true - }) - - Object.defineProperty(error, 'stack', { - configurable: true, - enumerable: false, - get: function () { - if (stackString !== undefined) { - return stackString - } - - // prepare stack trace - return stackString = createStackString.call(this, stack) - }, - set: function setter(val) { - stackString = val - } - }) - - return error -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/browser/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/browser/index.js deleted file mode 100644 index f464e052..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/browser/index.js +++ /dev/null @@ -1,79 +0,0 @@ -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = depd - -/** - * Create deprecate for namespace in caller. - */ - -function depd(namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - function deprecate(message) { - // no-op in browser - } - - deprecate._file = undefined - deprecate._ignored = true - deprecate._namespace = namespace - deprecate._traced = false - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Return a wrapped function in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapfunction(fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - return fn -} - -/** - * Wrap property in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapproperty(obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } - - return -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/buffer-concat.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/buffer-concat.js deleted file mode 100644 index 4b733810..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/buffer-concat.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! - * depd - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = bufferConcat - -/** - * Concatenate an array of Buffers. - */ - -function bufferConcat(bufs) { - var length = 0 - - for (var i = 0, len = bufs.length; i < len; i++) { - length += bufs[i].length - } - - var buf = new Buffer(length) - var pos = 0 - - for (var i = 0, len = bufs.length; i < len; i++) { - bufs[i].copy(buf, pos) - pos += bufs[i].length - } - - return buf -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/callsite-tostring.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/callsite-tostring.js deleted file mode 100644 index 9ecef346..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/callsite-tostring.js +++ /dev/null @@ -1,103 +0,0 @@ -/*! - * depd - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = callSiteToString - -/** - * Format a CallSite file location to a string. - */ - -function callSiteFileLocation(callSite) { - var fileName - var fileLocation = '' - - if (callSite.isNative()) { - fileLocation = 'native' - } else if (callSite.isEval()) { - fileName = callSite.getScriptNameOrSourceURL() - if (!fileName) { - fileLocation = callSite.getEvalOrigin() - } - } else { - fileName = callSite.getFileName() - } - - if (fileName) { - fileLocation += fileName - - var lineNumber = callSite.getLineNumber() - if (lineNumber != null) { - fileLocation += ':' + lineNumber - - var columnNumber = callSite.getColumnNumber() - if (columnNumber) { - fileLocation += ':' + columnNumber - } - } - } - - return fileLocation || 'unknown source' -} - -/** - * Format a CallSite to a string. - */ - -function callSiteToString(callSite) { - var addSuffix = true - var fileLocation = callSiteFileLocation(callSite) - var functionName = callSite.getFunctionName() - var isConstructor = callSite.isConstructor() - var isMethodCall = !(callSite.isToplevel() || isConstructor) - var line = '' - - if (isMethodCall) { - var methodName = callSite.getMethodName() - var typeName = getConstructorName(callSite) - - if (functionName) { - if (typeName && functionName.indexOf(typeName) !== 0) { - line += typeName + '.' - } - - line += functionName - - if (methodName && functionName.lastIndexOf('.' + methodName) !== functionName.length - methodName.length - 1) { - line += ' [as ' + methodName + ']' - } - } else { - line += typeName + '.' + (methodName || '') - } - } else if (isConstructor) { - line += 'new ' + (functionName || '') - } else if (functionName) { - line += functionName - } else { - addSuffix = false - line += fileLocation - } - - if (addSuffix) { - line += ' (' + fileLocation + ')' - } - - return line -} - -/** - * Get constructor name of reviver. - */ - -function getConstructorName(obj) { - var receiver = obj.receiver - return (receiver.constructor && receiver.constructor.name) || null -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/event-listener-count.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/event-listener-count.js deleted file mode 100644 index a05fceb7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/event-listener-count.js +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = eventListenerCount - -/** - * Get the count of listeners on an event emitter of a specific type. - */ - -function eventListenerCount(emitter, type) { - return emitter.listeners(type).length -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/index.js deleted file mode 100644 index aa3c1de4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/lib/compat/index.js +++ /dev/null @@ -1,84 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var Buffer = require('buffer') -var EventEmitter = require('events').EventEmitter - -/** - * Module exports. - * @public - */ - -lazyProperty(module.exports, 'bufferConcat', function bufferConcat() { - return Buffer.concat || require('./buffer-concat') -}) - -lazyProperty(module.exports, 'callSiteToString', function callSiteToString() { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - function prepareObjectStackTrace(obj, stack) { - return stack - } - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = 2 - - // capture the stack - Error.captureStackTrace(obj) - - // slice the stack - var stack = obj.stack.slice() - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack[0].toString ? toString : require('./callsite-tostring') -}) - -lazyProperty(module.exports, 'eventListenerCount', function eventListenerCount() { - return EventEmitter.listenerCount || require('./event-listener-count') -}) - -/** - * Define a lazy property. - */ - -function lazyProperty(obj, prop, getter) { - function get() { - var val = getter() - - Object.defineProperty(obj, prop, { - configurable: true, - enumerable: true, - value: val - }) - - return val - } - - Object.defineProperty(obj, prop, { - configurable: true, - enumerable: true, - get: get - }) -} - -/** - * Call toString() on the obj - */ - -function toString(obj) { - return obj.toString() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/package.json deleted file mode 100644 index edfc0b2a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/depd/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "depd", - "description": "Deprecate all the things", - "version": "1.1.0", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "keywords": [ - "deprecate", - "deprecated" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/dougwilson/nodejs-depd.git" - }, - "browser": "lib/browser/index.js", - "devDependencies": { - "benchmark": "1.0.0", - "beautify-benchmark": "0.2.4", - "istanbul": "0.3.5", - "mocha": "~1.21.5" - }, - "files": [ - "lib/", - "History.md", - "LICENSE", - "index.js", - "Readme.md" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "test": "mocha --reporter spec --bail test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --no-exit test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/" - }, - "gitHead": "78c659de20283e3a6bee92bda455e6daff01686a", - "bugs": { - "url": "https://github.com/dougwilson/nodejs-depd/issues" - }, - "homepage": "https://github.com/dougwilson/nodejs-depd", - "_id": "depd@1.1.0", - "_shasum": "e1bd82c6aab6ced965b97b88b17ed3e528ca18c3", - "_from": "depd@>=1.1.0 <1.2.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "e1bd82c6aab6ced965b97b88b17ed3e528ca18c3", - "tarball": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/HISTORY.md deleted file mode 100644 index e51ff017..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/HISTORY.md +++ /dev/null @@ -1,16 +0,0 @@ -1.0.1 / 2015-09-29 -================== - - * perf: enable strict mode - -1.0.0 / 2014-08-10 -================== - - * Honor `res.statusCode` change in `listener` - * Move to `jshttp` orgainzation - * Prevent `arguments`-related de-opt - -0.0.0 / 2014-05-13 -================== - - * Initial implementation diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/LICENSE deleted file mode 100644 index b7dce6cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/README.md deleted file mode 100644 index 48ed9aef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/README.md +++ /dev/null @@ -1,76 +0,0 @@ -# on-headers - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Execute a listener when a response is about to write headers. - -## Installation - -```sh -$ npm install on-headers -``` - -## API - -```js -var onHeaders = require('on-headers') -``` - -### onHeaders(res, listener) - -This will add the listener `listener` to fire when headers are emitted for `res`. -The listener is passed the `response` object as it's context (`this`). Headers are -considered to be emitted only once, right before they are sent to the client. - -When this is called multiple times on the same `res`, the `listener`s are fired -in the reverse order they were added. - -## Examples - -```js -var http = require('http') -var onHeaders = require('on-headers') - -http -.createServer(onRequest) -.listen(3000) - -function addPoweredBy() { - // set if not set by end of request - if (!this.getHeader('X-Powered-By')) { - this.setHeader('X-Powered-By', 'Node.js') - } -} - -function onRequest(req, res) { - onHeaders(res, addPoweredBy) - - res.setHeader('Content-Type', 'text/plain') - res.end('hello!') -} -``` - -## Testing - -```sh -$ npm test -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/on-headers.svg -[npm-url]: https://npmjs.org/package/on-headers -[node-version-image]: https://img.shields.io/node/v/on-headers.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/on-headers/master.svg -[travis-url]: https://travis-ci.org/jshttp/on-headers -[coveralls-image]: https://img.shields.io/coveralls/jshttp/on-headers/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/on-headers?branch=master -[downloads-image]: https://img.shields.io/npm/dm/on-headers.svg -[downloads-url]: https://npmjs.org/package/on-headers diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/index.js deleted file mode 100644 index 089f2b34..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/index.js +++ /dev/null @@ -1,93 +0,0 @@ -/*! - * on-headers - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Reference to Array slice. - */ - -var slice = Array.prototype.slice - -/** - * Execute a listener when a response is about to write headers. - * - * @param {Object} res - * @return {Function} listener - * @api public - */ - -module.exports = function onHeaders(res, listener) { - if (!res) { - throw new TypeError('argument res is required') - } - - if (typeof listener !== 'function') { - throw new TypeError('argument listener must be a function') - } - - res.writeHead = createWriteHead(res.writeHead, listener) -} - -function createWriteHead(prevWriteHead, listener) { - var fired = false; - - // return function with core name and argument list - return function writeHead(statusCode) { - // set headers from arguments - var args = setWriteHeadHeaders.apply(this, arguments); - - // fire listener - if (!fired) { - fired = true - listener.call(this) - - // pass-along an updated status code - if (typeof args[0] === 'number' && this.statusCode !== args[0]) { - args[0] = this.statusCode - args.length = 1 - } - } - - prevWriteHead.apply(this, args); - } -} - -function setWriteHeadHeaders(statusCode) { - var length = arguments.length - var headerIndex = length > 1 && typeof arguments[1] === 'string' - ? 2 - : 1 - - var headers = length >= headerIndex + 1 - ? arguments[headerIndex] - : undefined - - this.statusCode = statusCode - - // the following block is from node.js core - if (Array.isArray(headers)) { - // handle array case - for (var i = 0, len = headers.length; i < len; ++i) { - this.setHeader(headers[i][0], headers[i][1]) - } - } else if (headers) { - // handle object case - var keys = Object.keys(headers) - for (var i = 0; i < keys.length; i++) { - var k = keys[i] - if (k) this.setHeader(k, headers[k]) - } - } - - // copy leading arguments - var args = new Array(Math.min(length, headerIndex)) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - - return args -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/package.json deleted file mode 100644 index cf1eed57..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/on-headers/package.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "name": "on-headers", - "description": "Execute a listener when a response is about to write headers", - "version": "1.0.1", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "keywords": [ - "event", - "headers", - "http", - "onheaders" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/on-headers.git" - }, - "dependencies": {}, - "devDependencies": { - "istanbul": "0.3.21", - "mocha": "2.3.3", - "supertest": "1.1.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "ab0156a979d72353cfe666cccb3639e016b00280", - "bugs": { - "url": "https://github.com/jshttp/on-headers/issues" - }, - "homepage": "https://github.com/jshttp/on-headers", - "_id": "on-headers@1.0.1", - "_shasum": "928f5d0f470d49342651ea6794b0857c100693f7", - "_from": "on-headers@>=1.0.1 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "928f5d0f470d49342651ea6794b0857c100693f7", - "tarball": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/HISTORY.md deleted file mode 100644 index 395041ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/HISTORY.md +++ /dev/null @@ -1,47 +0,0 @@ -1.3.1 / 2016-01-17 -================== - - * perf: enable strict mode - -1.3.0 / 2014-08-09 -================== - - * Add `parseurl.original` for parsing `req.originalUrl` with fallback - * Return `undefined` if `req.url` is `undefined` - -1.2.0 / 2014-07-21 -================== - - * Cache URLs based on original value - * Remove no-longer-needed URL mis-parse work-around - * Simplify the "fast-path" `RegExp` - -1.1.3 / 2014-07-08 -================== - - * Fix typo - -1.1.2 / 2014-07-08 -================== - - * Seriously fix Node.js 0.8 compatibility - -1.1.1 / 2014-07-08 -================== - - * Fix Node.js 0.8 compatibility - -1.1.0 / 2014-07-08 -================== - - * Incorporate URL href-only parse fast-path - -1.0.1 / 2014-03-08 -================== - - * Add missing `require` - -1.0.0 / 2014-03-08 -================== - - * Genesis from `connect` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/LICENSE deleted file mode 100644 index ec7dfe7b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ - -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2014 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/README.md deleted file mode 100644 index f4796ebb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/README.md +++ /dev/null @@ -1,120 +0,0 @@ -# parseurl - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Parse a URL with memoization. - -## Install - -```bash -$ npm install parseurl -``` - -## API - -```js -var parseurl = require('parseurl') -``` - -### parseurl(req) - -Parse the URL of the given request object (looks at the `req.url` property) -and return the result. The result is the same as `url.parse` in Node.js core. -Calling this function multiple times on the same `req` where `req.url` does -not change will return a cached parsed object, rather than parsing again. - -### parseurl.original(req) - -Parse the original URL of the given request object and return the result. -This works by trying to parse `req.originalUrl` if it is a string, otherwise -parses `req.url`. The result is the same as `url.parse` in Node.js core. -Calling this function multiple times on the same `req` where `req.originalUrl` -does not change will return a cached parsed object, rather than parsing again. - -## Benchmark - -```bash -$ npm run-script bench - -> parseurl@1.3.1 bench nodejs-parseurl -> node benchmark/index.js - -> node benchmark/fullurl.js - - Parsing URL "http://localhost:8888/foo/bar?user=tj&pet=fluffy" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 1,290,780 ops/sec ±0.46% (195 runs sampled) - nativeurl x 56,401 ops/sec ±0.22% (196 runs sampled) - parseurl x 55,231 ops/sec ±0.22% (194 runs sampled) - -> node benchmark/pathquery.js - - Parsing URL "/foo/bar?user=tj&pet=fluffy" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 1,986,668 ops/sec ±0.27% (190 runs sampled) - nativeurl x 98,740 ops/sec ±0.21% (195 runs sampled) - parseurl x 2,628,171 ops/sec ±0.36% (195 runs sampled) - -> node benchmark/samerequest.js - - Parsing URL "/foo/bar?user=tj&pet=fluffy" on same request object - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 2,184,468 ops/sec ±0.40% (194 runs sampled) - nativeurl x 99,437 ops/sec ±0.71% (194 runs sampled) - parseurl x 10,498,005 ops/sec ±0.61% (186 runs sampled) - -> node benchmark/simplepath.js - - Parsing URL "/foo/bar" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 4,535,825 ops/sec ±0.27% (191 runs sampled) - nativeurl x 98,769 ops/sec ±0.54% (191 runs sampled) - parseurl x 4,164,865 ops/sec ±0.34% (192 runs sampled) - -> node benchmark/slash.js - - Parsing URL "/" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 4,908,405 ops/sec ±0.42% (191 runs sampled) - nativeurl x 100,945 ops/sec ±0.59% (188 runs sampled) - parseurl x 4,333,208 ops/sec ±0.27% (194 runs sampled) -``` - -## License - - [MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/parseurl.svg -[npm-url]: https://npmjs.org/package/parseurl -[node-version-image]: https://img.shields.io/node/v/parseurl.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/pillarjs/parseurl/master.svg -[travis-url]: https://travis-ci.org/pillarjs/parseurl -[coveralls-image]: https://img.shields.io/coveralls/pillarjs/parseurl/master.svg -[coveralls-url]: https://coveralls.io/r/pillarjs/parseurl?branch=master -[downloads-image]: https://img.shields.io/npm/dm/parseurl.svg -[downloads-url]: https://npmjs.org/package/parseurl diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/index.js deleted file mode 100644 index 56cc6ec7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/index.js +++ /dev/null @@ -1,138 +0,0 @@ -/*! - * parseurl - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - */ - -var url = require('url') -var parse = url.parse -var Url = url.Url - -/** - * Pattern for a simple path case. - * See: https://github.com/joyent/node/pull/7878 - */ - -var simplePathRegExp = /^(\/\/?(?!\/)[^\?#\s]*)(\?[^#\s]*)?$/ - -/** - * Exports. - */ - -module.exports = parseurl -module.exports.original = originalurl - -/** - * Parse the `req` url with memoization. - * - * @param {ServerRequest} req - * @return {Object} - * @api public - */ - -function parseurl(req) { - var url = req.url - - if (url === undefined) { - // URL is undefined - return undefined - } - - var parsed = req._parsedUrl - - if (fresh(url, parsed)) { - // Return cached URL parse - return parsed - } - - // Parse the URL - parsed = fastparse(url) - parsed._raw = url - - return req._parsedUrl = parsed -}; - -/** - * Parse the `req` original url with fallback and memoization. - * - * @param {ServerRequest} req - * @return {Object} - * @api public - */ - -function originalurl(req) { - var url = req.originalUrl - - if (typeof url !== 'string') { - // Fallback - return parseurl(req) - } - - var parsed = req._parsedOriginalUrl - - if (fresh(url, parsed)) { - // Return cached URL parse - return parsed - } - - // Parse the URL - parsed = fastparse(url) - parsed._raw = url - - return req._parsedOriginalUrl = parsed -}; - -/** - * Parse the `str` url with fast-path short-cut. - * - * @param {string} str - * @return {Object} - * @api private - */ - -function fastparse(str) { - // Try fast path regexp - // See: https://github.com/joyent/node/pull/7878 - var simplePath = typeof str === 'string' && simplePathRegExp.exec(str) - - // Construct simple URL - if (simplePath) { - var pathname = simplePath[1] - var search = simplePath[2] || null - var url = Url !== undefined - ? new Url() - : {} - url.path = str - url.href = str - url.pathname = pathname - url.search = search - url.query = search && search.substr(1) - - return url - } - - return parse(str) -} - -/** - * Determine if parsed is still fresh for url. - * - * @param {string} url - * @param {object} parsedUrl - * @return {boolean} - * @api private - */ - -function fresh(url, parsedUrl) { - return typeof parsedUrl === 'object' - && parsedUrl !== null - && (Url === undefined || parsedUrl instanceof Url) - && parsedUrl._raw === url -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/package.json deleted file mode 100644 index dbb0cf39..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/parseurl/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "parseurl", - "description": "parse a url with memoization", - "version": "1.3.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/pillarjs/parseurl.git" - }, - "license": "MIT", - "devDependencies": { - "benchmark": "2.0.0", - "beautify-benchmark": "0.2.4", - "fast-url-parser": "1.1.3", - "istanbul": "0.4.2", - "mocha": "~1.21.5" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "bench": "node benchmark/index.js", - "test": "mocha --check-leaks --bail --reporter spec test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec test/" - }, - "gitHead": "6d22d376d75b927ab2b5347ce3a1d6735133dd43", - "bugs": { - "url": "https://github.com/pillarjs/parseurl/issues" - }, - "homepage": "https://github.com/pillarjs/parseurl", - "_id": "parseurl@1.3.1", - "_shasum": "c8ab8c9223ba34888aa64a297b28853bec18da56", - "_from": "parseurl@>=1.3.0 <1.4.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "mscdex", - "email": "mscdex@mscdex.net" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - } - ], - "dist": { - "shasum": "c8ab8c9223ba34888aa64a297b28853bec18da56", - "tarball": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/HISTORY.md deleted file mode 100644 index 4be1e8a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/HISTORY.md +++ /dev/null @@ -1,31 +0,0 @@ -2.0.0 / 2015-05-08 -================== - - * Use global `Promise` when returning a promise - -1.1.0 / 2015-02-01 -================== - - * Use `crypto.randomBytes`, if available - * deps: base64-url@1.2.1 - -1.0.3 / 2015-01-31 -================== - - * Fix error branch that would throw - * deps: base64-url@1.2.0 - -1.0.2 / 2015-01-08 -================== - - * Remove dependency on `mz` - -1.0.1 / 2014-06-18 -================== - - * Remove direct `bluebird` dependency - -1.0.0 / 2014-06-18 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/LICENSE deleted file mode 100644 index 6b774b4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/README.md deleted file mode 100644 index b8c2779a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/README.md +++ /dev/null @@ -1,76 +0,0 @@ -# uid-safe - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -URL and cookie safe UIDs - -Create cryptographically secure UIDs safe for both cookie and URL usage. -This is in contrast to modules such as [rand-token](https://www.npmjs.com/package/rand-token) -and [uid2](https://www.npmjs.com/package/uid2) whose UIDs are actually skewed -due to the use of `%` and unnecessarily truncate the UID. -Use this if you could still use UIDs with `-` and `_` in them. - -## Installation - -```sh -$ npm install uid-safe -``` - -## API - -```js -var uid = require('uid-safe') -``` - -### uid(byteLength, callback) - -Asynchronously create a UID with a specific byte length. Because `base64` -encoding is used underneath, this is not the string length. For example, -to create a UID of length 24, you want a byte length of 18. - -```js -uid(18, function (err, string) { - if (err) throw err - // do something with the string -}) -``` - -### uid(byteLength) - -Asynchronously create a UID with a specific byte length and return a -`Promise`. - -**To use promises, you must define a global `Promise` if necessary.** - -```js -uid(18).then(function (string) { - // do something with the string -}) -``` - -### uid.sync(byteLength) - -A synchronous version of above. - -```js -var string = uid.sync(18) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/uid-safe.svg -[npm-url]: https://npmjs.org/package/uid-safe -[node-version-image]: https://img.shields.io/node/v/uid-safe.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/crypto-utils/uid-safe/master.svg -[travis-url]: https://travis-ci.org/crypto-utils/uid-safe -[coveralls-image]: https://img.shields.io/coveralls/crypto-utils/uid-safe/master.svg -[coveralls-url]: https://coveralls.io/r/crypto-utils/uid-safe?branch=master -[downloads-image]: https://img.shields.io/npm/dm/uid-safe.svg -[downloads-url]: https://npmjs.org/package/uid-safe diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/index.js deleted file mode 100644 index 87c31d69..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/index.js +++ /dev/null @@ -1,119 +0,0 @@ -/*! - * uid-safe - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var crypto = require('crypto') -var escape = require('base64-url').escape - -/** - * Module exports. - * @public - */ - -module.exports = uid -module.exports.sync = uidSync - -/** - * Create a unique ID. - * - * @param {number} length - * @param {function} [callback] - * @return {Promise} - * @public - */ - -function uid(length, callback) { - // validate callback is a function, if provided - if (callback !== undefined && typeof callback !== 'function') { - throw new TypeError('argument callback must be a function') - } - - // require the callback without promises - if (!callback && !global.Promise) { - throw new TypeError('argument callback is required') - } - - if (callback) { - // classic callback style - return generateUid(length, callback) - } - - return new Promise(function executor(resolve, reject) { - generateUid(length, function onUid(err, str) { - if (err) return reject(err) - resolve(str) - }) - }) -} - -/** - * Create a unique ID sync. - * - * @param {number} length - * @return {string} - * @public - */ - -function uidSync(length) { - try { - return toString(crypto.randomBytes(length)) - } catch (e) { - return toString(crypto.pseudoRandomBytes(length)) - } -} - -/** - * Generate a unique ID string. - * - * @param {number} length - * @param {function} callback - * @private - */ - -function generateUid(length, callback) { - randomBytes(length, function (err, buf) { - if (err) return callback(err) - callback(null, toString(buf)) - }) -} - -/** - * Get some random bytes. - * - * @param {number} length - * @param {function} callback - * @return {Buffer} - * @private - */ - -function randomBytes(length, callback) { - crypto.randomBytes(length, function (err, buf) { - if (!err) return callback(null, buf) - crypto.pseudoRandomBytes(length, function (err, buf) { - if (err) return callback(err) - callback(null, buf) - }) - }) -} - -/** - * Change a Buffer into a string. - * - * @param {Buffer} buf - * @return {string} - * @private - */ - -function toString(buf) { - return escape(buf.toString('base64')) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/LICENSE deleted file mode 100644 index 95491436..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) 2014, Joaquim José F. Serafim - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/README.md deleted file mode 100644 index e86cc2ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# base64-url - -Base64 encode, decode, escape and unescape for URL applications. - - - -[![Build Status](https://travis-ci.org/joaquimserafim/base64-url.png?branch=master)](https://travis-ci.org/joaquimserafim/base64-url) - - -## API - - > base64url.encode('Node.js is awesome.'); - Tm9kZS5qcyBpcyBhd2Vzb21lLg - - > base64url.decode('Tm9kZS5qcyBpcyBhd2Vzb21lLg'); - Node.js is awesome. - - > base64url.escape('This+is/goingto+escape=='); - This-is_goingto-escape - - > base64url.unescape('This-is_goingto-escape'); - This+is/goingto+escape== - - -## Development - -**this projet has been set up with a precommit that forces you to follow a code style, no jshint issues and 100% of code coverage before commit** - - -to run test -``` js -npm test -``` - -to run jshint -``` js -npm run jshint -``` - -to run code style -``` js -npm run code-style -``` - -to check code coverage -``` js -npm run check-coverage -``` - -to open the code coverage report -``` js -npm run open-coverage -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/index.js deleted file mode 100644 index 34968aea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/index.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var base64url = module.exports; - -base64url.unescape = function unescape (str) { - return (str + Array(5 - str.length % 4) - .join('=')) - .replace(/\-/g, '+') - .replace(/_/g, '/'); -}; - -base64url.escape = function escape (str) { - return str.replace(/\+/g, '-') - .replace(/\//g, '_') - .replace(/=/g, ''); -}; - -base64url.encode = function encode (str) { - return this.escape(new Buffer(str).toString('base64')); -}; - -base64url.decode = function decode (str) { - return new Buffer(this.unescape(str), 'base64').toString(); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/package.json deleted file mode 100644 index 702ae09d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "base64-url", - "version": "1.2.1", - "description": "Base64 encode, decode, escape and unescape for URL applications", - "main": "index.js", - "files": [ - "LICENSE", - "README.md", - "index.js" - ], - "scripts": { - "test": "istanbul cover tape test.js", - "jshint": "jshint -c .jshintrc *.js", - "code-style": "jscs -p google *.js", - "check-coverage": "istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100", - "coverage": "open coverage/lcov-report/index.html" - }, - "repository": { - "type": "git", - "url": "git://github.com/joaquimserafim/base64-url.git" - }, - "keywords": [ - "base64", - "base64url" - ], - "author": { - "name": "@joaquimserafim" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/joaquimserafim/base64-url/issues" - }, - "homepage": "https://github.com/joaquimserafim/base64-url", - "devDependencies": { - "istanbul": "^0.3.5", - "jscs": "^1.9.0", - "jshint": "^2.5.11", - "pre-commit": "0.0.9", - "tape": "^3.0.3", - "which": "^1.0.8" - }, - "pre-commit": [ - "jshint", - "code-style", - "test", - "check-coverage" - ], - "gitHead": "a548396819f17b1fb1529791ab8a2c1934d03f3e", - "_id": "base64-url@1.2.1", - "_shasum": "199fd661702a0e7b7dcae6e0698bb089c52f6d78", - "_from": "base64-url@1.2.1", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "quim", - "email": "joaquim.serafim@gmail.com" - }, - "maintainers": [ - { - "name": "quim", - "email": "joaquim.serafim@gmail.com" - } - ], - "dist": { - "shasum": "199fd661702a0e7b7dcae6e0698bb089c52f6d78", - "tarball": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/package.json deleted file mode 100644 index bd60c423..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/uid-safe/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "name": "uid-safe", - "description": "URL and cookie safe UIDs", - "version": "2.0.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/crypto-utils/uid-safe.git" - }, - "dependencies": { - "base64-url": "1.2.1" - }, - "devDependencies": { - "bluebird": "2.9.25", - "istanbul": "0.3.9", - "mocha": "~2.2.4", - "proxyquire": "~1.2.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "test": "mocha --trace-deprecation --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/" - }, - "keywords": [ - "random", - "generator", - "uid", - "safe" - ], - "gitHead": "bf6e105748aec52992efc6da50964378984f49e9", - "bugs": { - "url": "https://github.com/crypto-utils/uid-safe/issues" - }, - "homepage": "https://github.com/crypto-utils/uid-safe", - "_id": "uid-safe@2.0.0", - "_shasum": "a7f3c6ca64a1f6a5d04ec0ef3e4c3d5367317137", - "_from": "uid-safe@>=2.0.0 <2.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - } - ], - "dist": { - "shasum": "a7f3c6ca64a1f6a5d04ec0ef3e4c3d5367317137", - "tarball": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/.travis.yml deleted file mode 100644 index af92b021..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: "node_js" -node_js: - - "0.4" - - "0.6" - - "0.8" - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/LICENSE deleted file mode 100644 index e33bd10b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2013 Jared Hanson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/README.md deleted file mode 100644 index 2f94e9bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# utils-merge - -Merges the properties from a source object into a destination object. - -## Install - - $ npm install utils-merge - -## Usage - -```javascript -var a = { foo: 'bar' } - , b = { bar: 'baz' }; - -merge(a, b); -// => { foo: 'bar', bar: 'baz' } -``` - -## Tests - - $ npm install - $ npm test - -[![Build Status](https://secure.travis-ci.org/jaredhanson/utils-merge.png)](http://travis-ci.org/jaredhanson/utils-merge) - -## Credits - - - [Jared Hanson](http://github.com/jaredhanson) - -## License - -[The MIT License](http://opensource.org/licenses/MIT) - -Copyright (c) 2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/index.js deleted file mode 100644 index 4265c694..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/index.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Merge object b with object a. - * - * var a = { foo: 'bar' } - * , b = { bar: 'baz' }; - * - * merge(a, b); - * // => { foo: 'bar', bar: 'baz' } - * - * @param {Object} a - * @param {Object} b - * @return {Object} - * @api public - */ - -exports = module.exports = function(a, b){ - if (a && b) { - for (var key in b) { - a[key] = b[key]; - } - } - return a; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/package.json deleted file mode 100644 index 402f068a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/node_modules/utils-merge/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "utils-merge", - "version": "1.0.0", - "description": "merge() utility function", - "keywords": [ - "util" - ], - "repository": { - "type": "git", - "url": "git://github.com/jaredhanson/utils-merge.git" - }, - "bugs": { - "url": "http://github.com/jaredhanson/utils-merge/issues" - }, - "author": { - "name": "Jared Hanson", - "email": "jaredhanson@gmail.com", - "url": "http://www.jaredhanson.net/" - }, - "licenses": [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/MIT" - } - ], - "main": "./index", - "dependencies": {}, - "devDependencies": { - "mocha": "1.x.x", - "chai": "1.x.x" - }, - "scripts": { - "test": "node_modules/.bin/mocha --reporter spec --require test/bootstrap/node test/*.test.js" - }, - "engines": { - "node": ">= 0.4.0" - }, - "_id": "utils-merge@1.0.0", - "dist": { - "shasum": "0294fb922bb9375153541c4f7096231f287c8af8", - "tarball": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" - }, - "_from": "utils-merge@1.0.0", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - }, - "maintainers": [ - { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - } - ], - "directories": {}, - "_shasum": "0294fb922bb9375153541c4f7096231f287c8af8", - "_resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/package.json deleted file mode 100644 index 0c806f7a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/package.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "name": "express-session", - "version": "1.13.0", - "description": "Simple session middleware for Express", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": "http://tjholowaychuk.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Joe Wagner", - "email": "njwjs722@gmail.com" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/expressjs/session.git" - }, - "license": "MIT", - "dependencies": { - "cookie": "0.2.3", - "cookie-signature": "1.0.6", - "crc": "3.4.0", - "debug": "~2.2.0", - "depd": "~1.1.0", - "on-headers": "~1.0.1", - "parseurl": "~1.3.0", - "uid-safe": "~2.0.0", - "utils-merge": "1.0.0" - }, - "devDependencies": { - "after": "0.8.1", - "cookie-parser": "~1.4.0", - "express": "~4.13.3", - "istanbul": "0.4.1", - "mocha": "2.3.4", - "supertest": "1.1.0" - }, - "files": [ - "session/", - "HISTORY.md", - "LICENSE", - "index.js" - ], - "engines": { - "node": ">= 0.8.0" - }, - "scripts": { - "test": "mocha --bail --reporter spec test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec test/" - }, - "gitHead": "222b30ddeb9589ec700ae53b4e70b47a95114b77", - "bugs": { - "url": "https://github.com/expressjs/session/issues" - }, - "homepage": "https://github.com/expressjs/session", - "_id": "express-session@1.13.0", - "_shasum": "8ac3b5c0188b48382851d88207b8e7746efb4011", - "_from": "express-session@>=1.13.0 <1.14.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "mscdex", - "email": "mscdex@mscdex.net" - }, - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - } - ], - "dist": { - "shasum": "8ac3b5c0188b48382851d88207b8e7746efb4011", - "tarball": "https://registry.npmjs.org/express-session/-/express-session-1.13.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/express-session/-/express-session-1.13.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/cookie.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/cookie.js deleted file mode 100644 index 86591de3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/cookie.js +++ /dev/null @@ -1,128 +0,0 @@ - -/*! - * Connect - session - Cookie - * Copyright(c) 2010 Sencha Inc. - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var merge = require('utils-merge') - , cookie = require('cookie'); - -/** - * Initialize a new `Cookie` with the given `options`. - * - * @param {IncomingMessage} req - * @param {Object} options - * @api private - */ - -var Cookie = module.exports = function Cookie(options) { - this.path = '/'; - this.maxAge = null; - this.httpOnly = true; - if (options) merge(this, options); - this.originalMaxAge = undefined == this.originalMaxAge - ? this.maxAge - : this.originalMaxAge; -}; - -/*! - * Prototype. - */ - -Cookie.prototype = { - - /** - * Set expires `date`. - * - * @param {Date} date - * @api public - */ - - set expires(date) { - this._expires = date; - this.originalMaxAge = this.maxAge; - }, - - /** - * Get expires `date`. - * - * @return {Date} - * @api public - */ - - get expires() { - return this._expires; - }, - - /** - * Set expires via max-age in `ms`. - * - * @param {Number} ms - * @api public - */ - - set maxAge(ms) { - this.expires = 'number' == typeof ms - ? new Date(Date.now() + ms) - : ms; - }, - - /** - * Get expires max-age in `ms`. - * - * @return {Number} - * @api public - */ - - get maxAge() { - return this.expires instanceof Date - ? this.expires.valueOf() - Date.now() - : this.expires; - }, - - /** - * Return cookie data object. - * - * @return {Object} - * @api private - */ - - get data() { - return { - originalMaxAge: this.originalMaxAge - , expires: this._expires - , secure: this.secure - , httpOnly: this.httpOnly - , domain: this.domain - , path: this.path - } - }, - - /** - * Return a serialized cookie string. - * - * @return {String} - * @api public - */ - - serialize: function(name, val){ - return cookie.serialize(name, val, this.data); - }, - - /** - * Return JSON representation of this cookie. - * - * @return {Object} - * @api private - */ - - toJSON: function(){ - return this.data; - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/memory.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/memory.js deleted file mode 100644 index 9887680d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/memory.js +++ /dev/null @@ -1,183 +0,0 @@ -/*! - * express-session - * Copyright(c) 2010 Sencha Inc. - * Copyright(c) 2011 TJ Holowaychuk - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module dependencies. - * @private - */ - -var Store = require('./store') -var util = require('util') - -/** - * Shim setImmediate for node.js < 0.10 - * @private - */ - -/* istanbul ignore next */ -var defer = typeof setImmediate === 'function' - ? setImmediate - : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } - -/** - * Module exports. - */ - -module.exports = MemoryStore - -/** - * A session store in memory. - * @public - */ - -function MemoryStore() { - Store.call(this) - this.sessions = Object.create(null) -} - -/** - * Inherit from Store. - */ - -util.inherits(MemoryStore, Store) - -/** - * Get all active sessions. - * - * @param {function} callback - * @public - */ - -MemoryStore.prototype.all = function all(callback) { - var sessionIds = Object.keys(this.sessions) - var sessions = Object.create(null) - - for (var i = 0; i < sessionIds.length; i++) { - var sessionId = sessionIds[i] - var session = getSession.call(this, sessionId) - - if (session) { - sessions[sessionId] = session; - } - } - - callback && defer(callback, null, sessions) -} - -/** - * Clear all sessions. - * - * @param {function} callback - * @public - */ - -MemoryStore.prototype.clear = function clear(callback) { - this.sessions = Object.create(null) - callback && defer(callback) -} - -/** - * Destroy the session associated with the given session ID. - * - * @param {string} sessionId - * @public - */ - -MemoryStore.prototype.destroy = function destroy(sessionId, callback) { - delete this.sessions[sessionId] - callback && defer(callback) -} - -/** - * Fetch session by the given session ID. - * - * @param {string} sessionId - * @param {function} callback - * @public - */ - -MemoryStore.prototype.get = function get(sessionId, callback) { - defer(callback, null, getSession.call(this, sessionId)) -} - -/** - * Commit the given session associated with the given sessionId to the store. - * - * @param {string} sessionId - * @param {object} session - * @param {function} callback - * @public - */ - -/** - * Get number of active sessions. - * - * @param {function} callback - * @public - */ - -MemoryStore.prototype.length = function length(callback) { - this.all(function (err, sessions) { - if (err) return callback(err) - callback(null, Object.keys(sessions).length) - }) -} - -MemoryStore.prototype.set = function set(sessionId, session, callback) { - this.sessions[sessionId] = JSON.stringify(session) - callback && defer(callback) -} - -/** - * Touch the given session object associated with the given session ID. - * - * @param {string} sessionId - * @param {object} session - * @param {function} callback - * @public - */ - -MemoryStore.prototype.touch = function touch(sessionId, session, callback) { - var currentSession = getSession.call(this, sessionId) - - if (currentSession) { - // update expiration - currentSession.cookie = session.cookie - this.sessions[sessionId] = JSON.stringify(currentSession) - } - - callback && defer(callback) -} - -/** - * Get session from the store. - * @private - */ - -function getSession(sessionId) { - var sess = this.sessions[sessionId] - - if (!sess) { - return - } - - // parse - sess = JSON.parse(sess) - - var expires = typeof sess.cookie.expires === 'string' - ? new Date(sess.cookie.expires) - : sess.cookie.expires - - // destroy expired session - if (expires && expires <= Date.now()) { - delete this.sessions[sessionId] - return - } - - return sess -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/session.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/session.js deleted file mode 100644 index 4647f9da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/session.js +++ /dev/null @@ -1,124 +0,0 @@ - -/*! - * Connect - session - Session - * Copyright(c) 2010 Sencha Inc. - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - */ - -/** - * Expose Session. - */ - -module.exports = Session; - -/** - * Create a new `Session` with the given request and `data`. - * - * @param {IncomingRequest} req - * @param {Object} data - * @api private - */ - -function Session(req, data) { - Object.defineProperty(this, 'req', { value: req }); - Object.defineProperty(this, 'id', { value: req.sessionID }); - - if (typeof data === 'object' && data !== null) { - // merge data into this, ignoring prototype properties - for (var prop in data) { - if (!(prop in this)) { - this[prop] = data[prop] - } - } - } -} - -/** - * Update reset `.cookie.maxAge` to prevent - * the cookie from expiring when the - * session is still active. - * - * @return {Session} for chaining - * @api public - */ - -Session.prototype.touch = function(){ - return this.resetMaxAge(); -}; - -/** - * Reset `.maxAge` to `.originalMaxAge`. - * - * @return {Session} for chaining - * @api public - */ - -Session.prototype.resetMaxAge = function(){ - this.cookie.maxAge = this.cookie.originalMaxAge; - return this; -}; - -/** - * Save the session data with optional callback `fn(err)`. - * - * @param {Function} fn - * @return {Session} for chaining - * @api public - */ - -Session.prototype.save = function(fn){ - this.req.sessionStore.set(this.id, this, fn || function(){}); - return this; -}; - -/** - * Re-loads the session data _without_ altering - * the maxAge properties. Invokes the callback `fn(err)`, - * after which time if no exception has occurred the - * `req.session` property will be a new `Session` object, - * although representing the same session. - * - * @param {Function} fn - * @return {Session} for chaining - * @api public - */ - -Session.prototype.reload = function(fn){ - var req = this.req - , store = this.req.sessionStore; - store.get(this.id, function(err, sess){ - if (err) return fn(err); - if (!sess) return fn(new Error('failed to load session')); - store.createSession(req, sess); - fn(); - }); - return this; -}; - -/** - * Destroy `this` session. - * - * @param {Function} fn - * @return {Session} for chaining - * @api public - */ - -Session.prototype.destroy = function(fn){ - delete this.req.session; - this.req.sessionStore.destroy(this.id, fn); - return this; -}; - -/** - * Regenerate this request's session. - * - * @param {Function} fn - * @return {Session} for chaining - * @api public - */ - -Session.prototype.regenerate = function(fn){ - this.req.sessionStore.regenerate(this.req, fn); - return this; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/store.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/store.js deleted file mode 100644 index 54294cbd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express-session/session/store.js +++ /dev/null @@ -1,84 +0,0 @@ - -/*! - * Connect - session - Store - * Copyright(c) 2010 Sencha Inc. - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var EventEmitter = require('events').EventEmitter - , Session = require('./session') - , Cookie = require('./cookie'); - -/** - * Initialize abstract `Store`. - * - * @api private - */ - -var Store = module.exports = function Store(options){}; - -/** - * Inherit from `EventEmitter.prototype`. - */ - -Store.prototype.__proto__ = EventEmitter.prototype; - -/** - * Re-generate the given requests's session. - * - * @param {IncomingRequest} req - * @return {Function} fn - * @api public - */ - -Store.prototype.regenerate = function(req, fn){ - var self = this; - this.destroy(req.sessionID, function(err){ - self.generate(req); - fn(err); - }); -}; - -/** - * Load a `Session` instance via the given `sid` - * and invoke the callback `fn(err, sess)`. - * - * @param {String} sid - * @param {Function} fn - * @api public - */ - -Store.prototype.load = function(sid, fn){ - var self = this; - this.get(sid, function(err, sess){ - if (err) return fn(err); - if (!sess) return fn(); - var req = { sessionID: sid, sessionStore: self }; - sess = self.createSession(req, sess); - fn(null, sess); - }); -}; - -/** - * Create session from JSON `sess` data. - * - * @param {IncomingRequest} req - * @param {Object} sess - * @return {Session} - * @api private - */ - -Store.prototype.createSession = function(req, sess){ - var expires = sess.cookie.expires - , orig = sess.cookie.originalMaxAge; - sess.cookie = new Cookie(sess.cookie); - if ('string' == typeof expires) sess.cookie.expires = new Date(expires); - sess.cookie.originalMaxAge = orig; - req.session = new Session(req, sess); - return req.session; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/History.md deleted file mode 100644 index c72241b9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/History.md +++ /dev/null @@ -1,3062 +0,0 @@ -4.13.4 / 2016-01-21 -=================== - - * deps: content-disposition@0.5.1 - - perf: enable strict mode - * deps: cookie@0.1.5 - - Throw on invalid values provided to `serialize` - * deps: depd@~1.1.0 - - Support web browser loading - - perf: enable strict mode - * deps: escape-html@~1.0.3 - - perf: enable strict mode - - perf: optimize string replacement - - perf: use faster string coercion - * deps: finalhandler@0.4.1 - - deps: escape-html@~1.0.3 - * deps: merge-descriptors@1.0.1 - - perf: enable strict mode - * deps: methods@~1.1.2 - - perf: enable strict mode - * deps: parseurl@~1.3.1 - - perf: enable strict mode - * deps: proxy-addr@~1.0.10 - - deps: ipaddr.js@1.0.5 - - perf: enable strict mode - * deps: range-parser@~1.0.3 - - perf: enable strict mode - * deps: send@0.13.1 - - deps: depd@~1.1.0 - - deps: destroy@~1.0.4 - - deps: escape-html@~1.0.3 - - deps: range-parser@~1.0.3 - * deps: serve-static@~1.10.2 - - deps: escape-html@~1.0.3 - - deps: parseurl@~1.3.0 - - deps: send@0.13.1 - -4.13.3 / 2015-08-02 -=================== - - * Fix infinite loop condition using `mergeParams: true` - * Fix inner numeric indices incorrectly altering parent `req.params` - -4.13.2 / 2015-07-31 -=================== - - * deps: accepts@~1.2.12 - - deps: mime-types@~2.1.4 - * deps: array-flatten@1.1.1 - - perf: enable strict mode - * deps: path-to-regexp@0.1.7 - - Fix regression with escaped round brackets and matching groups - * deps: type-is@~1.6.6 - - deps: mime-types@~2.1.4 - -4.13.1 / 2015-07-05 -=================== - - * deps: accepts@~1.2.10 - - deps: mime-types@~2.1.2 - * deps: qs@4.0.0 - - Fix dropping parameters like `hasOwnProperty` - - Fix various parsing edge cases - * deps: type-is@~1.6.4 - - deps: mime-types@~2.1.2 - - perf: enable strict mode - - perf: remove argument reassignment - -4.13.0 / 2015-06-20 -=================== - - * Add settings to debug output - * Fix `res.format` error when only `default` provided - * Fix issue where `next('route')` in `app.param` would incorrectly skip values - * Fix hiding platform issues with `decodeURIComponent` - - Only `URIError`s are a 400 - * Fix using `*` before params in routes - * Fix using capture groups before params in routes - * Simplify `res.cookie` to call `res.append` - * Use `array-flatten` module for flattening arrays - * deps: accepts@~1.2.9 - - deps: mime-types@~2.1.1 - - perf: avoid argument reassignment & argument slice - - perf: avoid negotiator recursive construction - - perf: enable strict mode - - perf: remove unnecessary bitwise operator - * deps: cookie@0.1.3 - - perf: deduce the scope of try-catch deopt - - perf: remove argument reassignments - * deps: escape-html@1.0.2 - * deps: etag@~1.7.0 - - Always include entity length in ETags for hash length extensions - - Generate non-Stats ETags using MD5 only (no longer CRC32) - - Improve stat performance by removing hashing - - Improve support for JXcore - - Remove base64 padding in ETags to shorten - - Support "fake" stats objects in environments without fs - - Use MD5 instead of MD4 in weak ETags over 1KB - * deps: finalhandler@0.4.0 - - Fix a false-positive when unpiping in Node.js 0.8 - - Support `statusCode` property on `Error` objects - - Use `unpipe` module for unpiping requests - - deps: escape-html@1.0.2 - - deps: on-finished@~2.3.0 - - perf: enable strict mode - - perf: remove argument reassignment - * deps: fresh@0.3.0 - - Add weak `ETag` matching support - * deps: on-finished@~2.3.0 - - Add defined behavior for HTTP `CONNECT` requests - - Add defined behavior for HTTP `Upgrade` requests - - deps: ee-first@1.1.1 - * deps: path-to-regexp@0.1.6 - * deps: send@0.13.0 - - Allow Node.js HTTP server to set `Date` response header - - Fix incorrectly removing `Content-Location` on 304 response - - Improve the default redirect response headers - - Send appropriate headers on default error response - - Use `http-errors` for standard emitted errors - - Use `statuses` instead of `http` module for status messages - - deps: escape-html@1.0.2 - - deps: etag@~1.7.0 - - deps: fresh@0.3.0 - - deps: on-finished@~2.3.0 - - perf: enable strict mode - - perf: remove unnecessary array allocations - * deps: serve-static@~1.10.0 - - Add `fallthrough` option - - Fix reading options from options prototype - - Improve the default redirect response headers - - Malformed URLs now `next()` instead of 400 - - deps: escape-html@1.0.2 - - deps: send@0.13.0 - - perf: enable strict mode - - perf: remove argument reassignment - * deps: type-is@~1.6.3 - - deps: mime-types@~2.1.1 - - perf: reduce try block size - - perf: remove bitwise operations - * perf: enable strict mode - * perf: isolate `app.render` try block - * perf: remove argument reassignments in application - * perf: remove argument reassignments in request prototype - * perf: remove argument reassignments in response prototype - * perf: remove argument reassignments in routing - * perf: remove argument reassignments in `View` - * perf: skip attempting to decode zero length string - * perf: use saved reference to `http.STATUS_CODES` - -4.12.4 / 2015-05-17 -=================== - - * deps: accepts@~1.2.7 - - deps: mime-types@~2.0.11 - - deps: negotiator@0.5.3 - * deps: debug@~2.2.0 - - deps: ms@0.7.1 - * deps: depd@~1.0.1 - * deps: etag@~1.6.0 - - Improve support for JXcore - - Support "fake" stats objects in environments without `fs` - * deps: finalhandler@0.3.6 - - deps: debug@~2.2.0 - - deps: on-finished@~2.2.1 - * deps: on-finished@~2.2.1 - - Fix `isFinished(req)` when data buffered - * deps: proxy-addr@~1.0.8 - - deps: ipaddr.js@1.0.1 - * deps: qs@2.4.2 - - Fix allowing parameters like `constructor` - * deps: send@0.12.3 - - deps: debug@~2.2.0 - - deps: depd@~1.0.1 - - deps: etag@~1.6.0 - - deps: ms@0.7.1 - - deps: on-finished@~2.2.1 - * deps: serve-static@~1.9.3 - - deps: send@0.12.3 - * deps: type-is@~1.6.2 - - deps: mime-types@~2.0.11 - -4.12.3 / 2015-03-17 -=================== - - * deps: accepts@~1.2.5 - - deps: mime-types@~2.0.10 - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - * deps: finalhandler@0.3.4 - - deps: debug@~2.1.3 - * deps: proxy-addr@~1.0.7 - - deps: ipaddr.js@0.1.9 - * deps: qs@2.4.1 - - Fix error when parameter `hasOwnProperty` is present - * deps: send@0.12.2 - - Throw errors early for invalid `extensions` or `index` options - - deps: debug@~2.1.3 - * deps: serve-static@~1.9.2 - - deps: send@0.12.2 - * deps: type-is@~1.6.1 - - deps: mime-types@~2.0.10 - -4.12.2 / 2015-03-02 -=================== - - * Fix regression where `"Request aborted"` is logged using `res.sendFile` - -4.12.1 / 2015-03-01 -=================== - - * Fix constructing application with non-configurable prototype properties - * Fix `ECONNRESET` errors from `res.sendFile` usage - * Fix `req.host` when using "trust proxy" hops count - * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count - * Fix wrong `code` on aborted connections from `res.sendFile` - * deps: merge-descriptors@1.0.0 - -4.12.0 / 2015-02-23 -=================== - - * Fix `"trust proxy"` setting to inherit when app is mounted - * Generate `ETag`s for all request responses - - No longer restricted to only responses for `GET` and `HEAD` requests - * Use `content-type` to parse `Content-Type` headers - * deps: accepts@~1.2.4 - - Fix preference sorting to be stable for long acceptable lists - - deps: mime-types@~2.0.9 - - deps: negotiator@0.5.1 - * deps: cookie-signature@1.0.6 - * deps: send@0.12.1 - - Always read the stat size from the file - - Fix mutating passed-in `options` - - deps: mime@1.3.4 - * deps: serve-static@~1.9.1 - - deps: send@0.12.1 - * deps: type-is@~1.6.0 - - fix argument reassignment - - fix false-positives in `hasBody` `Transfer-Encoding` check - - support wildcard for both type and subtype (`*/*`) - - deps: mime-types@~2.0.9 - -4.11.2 / 2015-02-01 -=================== - - * Fix `res.redirect` double-calling `res.end` for `HEAD` requests - * deps: accepts@~1.2.3 - - deps: mime-types@~2.0.8 - * deps: proxy-addr@~1.0.6 - - deps: ipaddr.js@0.1.8 - * deps: type-is@~1.5.6 - - deps: mime-types@~2.0.8 - -4.11.1 / 2015-01-20 -=================== - - * deps: send@0.11.1 - - Fix root path disclosure - * deps: serve-static@~1.8.1 - - Fix redirect loop in Node.js 0.11.14 - - Fix root path disclosure - - deps: send@0.11.1 - -4.11.0 / 2015-01-13 -=================== - - * Add `res.append(field, val)` to append headers - * Deprecate leading `:` in `name` for `app.param(name, fn)` - * Deprecate `req.param()` -- use `req.params`, `req.body`, or `req.query` instead - * Deprecate `app.param(fn)` - * Fix `OPTIONS` responses to include the `HEAD` method properly - * Fix `res.sendFile` not always detecting aborted connection - * Match routes iteratively to prevent stack overflows - * deps: accepts@~1.2.2 - - deps: mime-types@~2.0.7 - - deps: negotiator@0.5.0 - * deps: send@0.11.0 - - deps: debug@~2.1.1 - - deps: etag@~1.5.1 - - deps: ms@0.7.0 - - deps: on-finished@~2.2.0 - * deps: serve-static@~1.8.0 - - deps: send@0.11.0 - -4.10.8 / 2015-01-13 -=================== - - * Fix crash from error within `OPTIONS` response handler - * deps: proxy-addr@~1.0.5 - - deps: ipaddr.js@0.1.6 - -4.10.7 / 2015-01-04 -=================== - - * Fix `Allow` header for `OPTIONS` to not contain duplicate methods - * Fix incorrect "Request aborted" for `res.sendFile` when `HEAD` or 304 - * deps: debug@~2.1.1 - * deps: finalhandler@0.3.3 - - deps: debug@~2.1.1 - - deps: on-finished@~2.2.0 - * deps: methods@~1.1.1 - * deps: on-finished@~2.2.0 - * deps: serve-static@~1.7.2 - - Fix potential open redirect when mounted at root - * deps: type-is@~1.5.5 - - deps: mime-types@~2.0.7 - -4.10.6 / 2014-12-12 -=================== - - * Fix exception in `req.fresh`/`req.stale` without response headers - -4.10.5 / 2014-12-10 -=================== - - * Fix `res.send` double-calling `res.end` for `HEAD` requests - * deps: accepts@~1.1.4 - - deps: mime-types@~2.0.4 - * deps: type-is@~1.5.4 - - deps: mime-types@~2.0.4 - -4.10.4 / 2014-11-24 -=================== - - * Fix `res.sendfile` logging standard write errors - -4.10.3 / 2014-11-23 -=================== - - * Fix `res.sendFile` logging standard write errors - * deps: etag@~1.5.1 - * deps: proxy-addr@~1.0.4 - - deps: ipaddr.js@0.1.5 - * deps: qs@2.3.3 - - Fix `arrayLimit` behavior - -4.10.2 / 2014-11-09 -=================== - - * Correctly invoke async router callback asynchronously - * deps: accepts@~1.1.3 - - deps: mime-types@~2.0.3 - * deps: type-is@~1.5.3 - - deps: mime-types@~2.0.3 - -4.10.1 / 2014-10-28 -=================== - - * Fix handling of URLs containing `://` in the path - * deps: qs@2.3.2 - - Fix parsing of mixed objects and values - -4.10.0 / 2014-10-23 -=================== - - * Add support for `app.set('views', array)` - - Views are looked up in sequence in array of directories - * Fix `res.send(status)` to mention `res.sendStatus(status)` - * Fix handling of invalid empty URLs - * Use `content-disposition` module for `res.attachment`/`res.download` - - Sends standards-compliant `Content-Disposition` header - - Full Unicode support - * Use `path.resolve` in view lookup - * deps: debug@~2.1.0 - - Implement `DEBUG_FD` env variable support - * deps: depd@~1.0.0 - * deps: etag@~1.5.0 - - Improve string performance - - Slightly improve speed for weak ETags over 1KB - * deps: finalhandler@0.3.2 - - Terminate in progress response only on error - - Use `on-finished` to determine request status - - deps: debug@~2.1.0 - - deps: on-finished@~2.1.1 - * deps: on-finished@~2.1.1 - - Fix handling of pipelined requests - * deps: qs@2.3.0 - - Fix parsing of mixed implicit and explicit arrays - * deps: send@0.10.1 - - deps: debug@~2.1.0 - - deps: depd@~1.0.0 - - deps: etag@~1.5.0 - - deps: on-finished@~2.1.1 - * deps: serve-static@~1.7.1 - - deps: send@0.10.1 - -4.9.8 / 2014-10-17 -================== - - * Fix `res.redirect` body when redirect status specified - * deps: accepts@~1.1.2 - - Fix error when media type has invalid parameter - - deps: negotiator@0.4.9 - -4.9.7 / 2014-10-10 -================== - - * Fix using same param name in array of paths - -4.9.6 / 2014-10-08 -================== - - * deps: accepts@~1.1.1 - - deps: mime-types@~2.0.2 - - deps: negotiator@0.4.8 - * deps: serve-static@~1.6.4 - - Fix redirect loop when index file serving disabled - * deps: type-is@~1.5.2 - - deps: mime-types@~2.0.2 - -4.9.5 / 2014-09-24 -================== - - * deps: etag@~1.4.0 - * deps: proxy-addr@~1.0.3 - - Use `forwarded` npm module - * deps: send@0.9.3 - - deps: etag@~1.4.0 - * deps: serve-static@~1.6.3 - - deps: send@0.9.3 - -4.9.4 / 2014-09-19 -================== - - * deps: qs@2.2.4 - - Fix issue with object keys starting with numbers truncated - -4.9.3 / 2014-09-18 -================== - - * deps: proxy-addr@~1.0.2 - - Fix a global leak when multiple subnets are trusted - - deps: ipaddr.js@0.1.3 - -4.9.2 / 2014-09-17 -================== - - * Fix regression for empty string `path` in `app.use` - * Fix `router.use` to accept array of middleware without path - * Improve error message for bad `app.use` arguments - -4.9.1 / 2014-09-16 -================== - - * Fix `app.use` to accept array of middleware without path - * deps: depd@0.4.5 - * deps: etag@~1.3.1 - * deps: send@0.9.2 - - deps: depd@0.4.5 - - deps: etag@~1.3.1 - - deps: range-parser@~1.0.2 - * deps: serve-static@~1.6.2 - - deps: send@0.9.2 - -4.9.0 / 2014-09-08 -================== - - * Add `res.sendStatus` - * Invoke callback for sendfile when client aborts - - Applies to `res.sendFile`, `res.sendfile`, and `res.download` - - `err` will be populated with request aborted error - * Support IP address host in `req.subdomains` - * Use `etag` to generate `ETag` headers - * deps: accepts@~1.1.0 - - update `mime-types` - * deps: cookie-signature@1.0.5 - * deps: debug@~2.0.0 - * deps: finalhandler@0.2.0 - - Set `X-Content-Type-Options: nosniff` header - - deps: debug@~2.0.0 - * deps: fresh@0.2.4 - * deps: media-typer@0.3.0 - - Throw error when parameter format invalid on parse - * deps: qs@2.2.3 - - Fix issue where first empty value in array is discarded - * deps: range-parser@~1.0.2 - * deps: send@0.9.1 - - Add `lastModified` option - - Use `etag` to generate `ETag` header - - deps: debug@~2.0.0 - - deps: fresh@0.2.4 - * deps: serve-static@~1.6.1 - - Add `lastModified` option - - deps: send@0.9.1 - * deps: type-is@~1.5.1 - - fix `hasbody` to be true for `content-length: 0` - - deps: media-typer@0.3.0 - - deps: mime-types@~2.0.1 - * deps: vary@~1.0.0 - - Accept valid `Vary` header string as `field` - -4.8.8 / 2014-09-04 -================== - - * deps: send@0.8.5 - - Fix a path traversal issue when using `root` - - Fix malicious path detection for empty string path - * deps: serve-static@~1.5.4 - - deps: send@0.8.5 - -4.8.7 / 2014-08-29 -================== - - * deps: qs@2.2.2 - - Remove unnecessary cloning - -4.8.6 / 2014-08-27 -================== - - * deps: qs@2.2.0 - - Array parsing fix - - Performance improvements - -4.8.5 / 2014-08-18 -================== - - * deps: send@0.8.3 - - deps: destroy@1.0.3 - - deps: on-finished@2.1.0 - * deps: serve-static@~1.5.3 - - deps: send@0.8.3 - -4.8.4 / 2014-08-14 -================== - - * deps: qs@1.2.2 - * deps: send@0.8.2 - - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` - * deps: serve-static@~1.5.2 - - deps: send@0.8.2 - -4.8.3 / 2014-08-10 -================== - - * deps: parseurl@~1.3.0 - * deps: qs@1.2.1 - * deps: serve-static@~1.5.1 - - Fix parsing of weird `req.originalUrl` values - - deps: parseurl@~1.3.0 - - deps: utils-merge@1.0.0 - -4.8.2 / 2014-08-07 -================== - - * deps: qs@1.2.0 - - Fix parsing array of objects - -4.8.1 / 2014-08-06 -================== - - * fix incorrect deprecation warnings on `res.download` - * deps: qs@1.1.0 - - Accept urlencoded square brackets - - Accept empty values in implicit array notation - -4.8.0 / 2014-08-05 -================== - - * add `res.sendFile` - - accepts a file system path instead of a URL - - requires an absolute path or `root` option specified - * deprecate `res.sendfile` -- use `res.sendFile` instead - * support mounted app as any argument to `app.use()` - * deps: qs@1.0.2 - - Complete rewrite - - Limits array length to 20 - - Limits object depth to 5 - - Limits parameters to 1,000 - * deps: send@0.8.1 - - Add `extensions` option - * deps: serve-static@~1.5.0 - - Add `extensions` option - - deps: send@0.8.1 - -4.7.4 / 2014-08-04 -================== - - * fix `res.sendfile` regression for serving directory index files - * deps: send@0.7.4 - - Fix incorrect 403 on Windows and Node.js 0.11 - - Fix serving index files without root dir - * deps: serve-static@~1.4.4 - - deps: send@0.7.4 - -4.7.3 / 2014-08-04 -================== - - * deps: send@0.7.3 - - Fix incorrect 403 on Windows and Node.js 0.11 - * deps: serve-static@~1.4.3 - - Fix incorrect 403 on Windows and Node.js 0.11 - - deps: send@0.7.3 - -4.7.2 / 2014-07-27 -================== - - * deps: depd@0.4.4 - - Work-around v8 generating empty stack traces - * deps: send@0.7.2 - - deps: depd@0.4.4 - * deps: serve-static@~1.4.2 - -4.7.1 / 2014-07-26 -================== - - * deps: depd@0.4.3 - - Fix exception when global `Error.stackTraceLimit` is too low - * deps: send@0.7.1 - - deps: depd@0.4.3 - * deps: serve-static@~1.4.1 - -4.7.0 / 2014-07-25 -================== - - * fix `req.protocol` for proxy-direct connections - * configurable query parser with `app.set('query parser', parser)` - - `app.set('query parser', 'extended')` parse with "qs" module - - `app.set('query parser', 'simple')` parse with "querystring" core module - - `app.set('query parser', false)` disable query string parsing - - `app.set('query parser', true)` enable simple parsing - * deprecate `res.json(status, obj)` -- use `res.status(status).json(obj)` instead - * deprecate `res.jsonp(status, obj)` -- use `res.status(status).jsonp(obj)` instead - * deprecate `res.send(status, body)` -- use `res.status(status).send(body)` instead - * deps: debug@1.0.4 - * deps: depd@0.4.2 - - Add `TRACE_DEPRECATION` environment variable - - Remove non-standard grey color from color output - - Support `--no-deprecation` argument - - Support `--trace-deprecation` argument - * deps: finalhandler@0.1.0 - - Respond after request fully read - - deps: debug@1.0.4 - * deps: parseurl@~1.2.0 - - Cache URLs based on original value - - Remove no-longer-needed URL mis-parse work-around - - Simplify the "fast-path" `RegExp` - * deps: send@0.7.0 - - Add `dotfiles` option - - Cap `maxAge` value to 1 year - - deps: debug@1.0.4 - - deps: depd@0.4.2 - * deps: serve-static@~1.4.0 - - deps: parseurl@~1.2.0 - - deps: send@0.7.0 - * perf: prevent multiple `Buffer` creation in `res.send` - -4.6.1 / 2014-07-12 -================== - - * fix `subapp.mountpath` regression for `app.use(subapp)` - -4.6.0 / 2014-07-11 -================== - - * accept multiple callbacks to `app.use()` - * add explicit "Rosetta Flash JSONP abuse" protection - - previous versions are not vulnerable; this is just explicit protection - * catch errors in multiple `req.param(name, fn)` handlers - * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead - * fix `res.send(status, num)` to send `num` as json (not error) - * remove unnecessary escaping when `res.jsonp` returns JSON response - * support non-string `path` in `app.use(path, fn)` - - supports array of paths - - supports `RegExp` - * router: fix optimization on router exit - * router: refactor location of `try` blocks - * router: speed up standard `app.use(fn)` - * deps: debug@1.0.3 - - Add support for multiple wildcards in namespaces - * deps: finalhandler@0.0.3 - - deps: debug@1.0.3 - * deps: methods@1.1.0 - - add `CONNECT` - * deps: parseurl@~1.1.3 - - faster parsing of href-only URLs - * deps: path-to-regexp@0.1.3 - * deps: send@0.6.0 - - deps: debug@1.0.3 - * deps: serve-static@~1.3.2 - - deps: parseurl@~1.1.3 - - deps: send@0.6.0 - * perf: fix arguments reassign deopt in some `res` methods - -4.5.1 / 2014-07-06 -================== - - * fix routing regression when altering `req.method` - -4.5.0 / 2014-07-04 -================== - - * add deprecation message to non-plural `req.accepts*` - * add deprecation message to `res.send(body, status)` - * add deprecation message to `res.vary()` - * add `headers` option to `res.sendfile` - - use to set headers on successful file transfer - * add `mergeParams` option to `Router` - - merges `req.params` from parent routes - * add `req.hostname` -- correct name for what `req.host` returns - * deprecate things with `depd` module - * deprecate `req.host` -- use `req.hostname` instead - * fix behavior when handling request without routes - * fix handling when `route.all` is only route - * invoke `router.param()` only when route matches - * restore `req.params` after invoking router - * use `finalhandler` for final response handling - * use `media-typer` to alter content-type charset - * deps: accepts@~1.0.7 - * deps: send@0.5.0 - - Accept string for `maxage` (converted by `ms`) - - Include link in default redirect response - * deps: serve-static@~1.3.0 - - Accept string for `maxAge` (converted by `ms`) - - Add `setHeaders` option - - Include HTML link in redirect response - - deps: send@0.5.0 - * deps: type-is@~1.3.2 - -4.4.5 / 2014-06-26 -================== - - * deps: cookie-signature@1.0.4 - - fix for timing attacks - -4.4.4 / 2014-06-20 -================== - - * fix `res.attachment` Unicode filenames in Safari - * fix "trim prefix" debug message in `express:router` - * deps: accepts@~1.0.5 - * deps: buffer-crc32@0.2.3 - -4.4.3 / 2014-06-11 -================== - - * fix persistence of modified `req.params[name]` from `app.param()` - * deps: accepts@1.0.3 - - deps: negotiator@0.4.6 - * deps: debug@1.0.2 - * deps: send@0.4.3 - - Do not throw un-catchable error on file open race condition - - Use `escape-html` for HTML escaping - - deps: debug@1.0.2 - - deps: finished@1.2.2 - - deps: fresh@0.2.2 - * deps: serve-static@1.2.3 - - Do not throw un-catchable error on file open race condition - - deps: send@0.4.3 - -4.4.2 / 2014-06-09 -================== - - * fix catching errors from top-level handlers - * use `vary` module for `res.vary` - * deps: debug@1.0.1 - * deps: proxy-addr@1.0.1 - * deps: send@0.4.2 - - fix "event emitter leak" warnings - - deps: debug@1.0.1 - - deps: finished@1.2.1 - * deps: serve-static@1.2.2 - - fix "event emitter leak" warnings - - deps: send@0.4.2 - * deps: type-is@1.2.1 - -4.4.1 / 2014-06-02 -================== - - * deps: methods@1.0.1 - * deps: send@0.4.1 - - Send `max-age` in `Cache-Control` in correct format - * deps: serve-static@1.2.1 - - use `escape-html` for escaping - - deps: send@0.4.1 - -4.4.0 / 2014-05-30 -================== - - * custom etag control with `app.set('etag', val)` - - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation - - `app.set('etag', 'weak')` weak tag - - `app.set('etag', 'strong')` strong etag - - `app.set('etag', false)` turn off - - `app.set('etag', true)` standard etag - * mark `res.send` ETag as weak and reduce collisions - * update accepts to 1.0.2 - - Fix interpretation when header not in request - * update send to 0.4.0 - - Calculate ETag with md5 for reduced collisions - - Ignore stream errors after request ends - - deps: debug@0.8.1 - * update serve-static to 1.2.0 - - Calculate ETag with md5 for reduced collisions - - Ignore stream errors after request ends - - deps: send@0.4.0 - -4.3.2 / 2014-05-28 -================== - - * fix handling of errors from `router.param()` callbacks - -4.3.1 / 2014-05-23 -================== - - * revert "fix behavior of multiple `app.VERB` for the same path" - - this caused a regression in the order of route execution - -4.3.0 / 2014-05-21 -================== - - * add `req.baseUrl` to access the path stripped from `req.url` in routes - * fix behavior of multiple `app.VERB` for the same path - * fix issue routing requests among sub routers - * invoke `router.param()` only when necessary instead of every match - * proper proxy trust with `app.set('trust proxy', trust)` - - `app.set('trust proxy', 1)` trust first hop - - `app.set('trust proxy', 'loopback')` trust loopback addresses - - `app.set('trust proxy', '10.0.0.1')` trust single IP - - `app.set('trust proxy', '10.0.0.1/16')` trust subnet - - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list - - `app.set('trust proxy', false)` turn off - - `app.set('trust proxy', true)` trust everything - * set proper `charset` in `Content-Type` for `res.send` - * update type-is to 1.2.0 - - support suffix matching - -4.2.0 / 2014-05-11 -================== - - * deprecate `app.del()` -- use `app.delete()` instead - * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead - - the edge-case `res.json(status, num)` requires `res.status(status).json(num)` - * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead - - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)` - * fix `req.next` when inside router instance - * include `ETag` header in `HEAD` requests - * keep previous `Content-Type` for `res.jsonp` - * support PURGE method - - add `app.purge` - - add `router.purge` - - include PURGE in `app.all` - * update debug to 0.8.0 - - add `enable()` method - - change from stderr to stdout - * update methods to 1.0.0 - - add PURGE - -4.1.2 / 2014-05-08 -================== - - * fix `req.host` for IPv6 literals - * fix `res.jsonp` error if callback param is object - -4.1.1 / 2014-04-27 -================== - - * fix package.json to reflect supported node version - -4.1.0 / 2014-04-24 -================== - - * pass options from `res.sendfile` to `send` - * preserve casing of headers in `res.header` and `res.set` - * support unicode file names in `res.attachment` and `res.download` - * update accepts to 1.0.1 - - deps: negotiator@0.4.0 - * update cookie to 0.1.2 - - Fix for maxAge == 0 - - made compat with expires field - * update send to 0.3.0 - - Accept API options in options object - - Coerce option types - - Control whether to generate etags - - Default directory access to 403 when index disabled - - Fix sending files with dots without root set - - Include file path in etag - - Make "Can't set headers after they are sent." catchable - - Send full entity-body for multi range requests - - Set etags to "weak" - - Support "If-Range" header - - Support multiple index paths - - deps: mime@1.2.11 - * update serve-static to 1.1.0 - - Accept options directly to `send` module - - Resolve relative paths at middleware setup - - Use parseurl to parse the URL from request - - deps: send@0.3.0 - * update type-is to 1.1.0 - - add non-array values support - - add `multipart` as a shorthand - -4.0.0 / 2014-04-09 -================== - - * remove: - - node 0.8 support - - connect and connect's patches except for charset handling - - express(1) - moved to [express-generator](https://github.com/expressjs/generator) - - `express.createServer()` - it has been deprecated for a long time. Use `express()` - - `app.configure` - use logic in your own app code - - `app.router` - is removed - - `req.auth` - use `basic-auth` instead - - `req.accepted*` - use `req.accepts*()` instead - - `res.location` - relative URL resolution is removed - - `res.charset` - include the charset in the content type when using `res.set()` - - all bundled middleware except `static` - * change: - - `app.route` -> `app.mountpath` when mounting an express app in another express app - - `json spaces` no longer enabled by default in development - - `req.accepts*` -> `req.accepts*s` - i.e. `req.acceptsEncoding` -> `req.acceptsEncodings` - - `req.params` is now an object instead of an array - - `res.locals` is no longer a function. It is a plain js object. Treat it as such. - - `res.headerSent` -> `res.headersSent` to match node.js ServerResponse object - * refactor: - - `req.accepts*` with [accepts](https://github.com/expressjs/accepts) - - `req.is` with [type-is](https://github.com/expressjs/type-is) - - [path-to-regexp](https://github.com/component/path-to-regexp) - * add: - - `app.router()` - returns the app Router instance - - `app.route()` - Proxy to the app's `Router#route()` method to create a new route - - Router & Route - public API - -3.21.2 / 2015-07-31 -=================== - - * deps: connect@2.30.2 - - deps: body-parser@~1.13.3 - - deps: compression@~1.5.2 - - deps: errorhandler@~1.4.2 - - deps: method-override@~2.3.5 - - deps: serve-index@~1.7.2 - - deps: type-is@~1.6.6 - - deps: vhost@~3.0.1 - * deps: vary@~1.0.1 - - Fix setting empty header from empty `field` - - perf: enable strict mode - - perf: remove argument reassignments - -3.21.1 / 2015-07-05 -=================== - - * deps: basic-auth@~1.0.3 - * deps: connect@2.30.1 - - deps: body-parser@~1.13.2 - - deps: compression@~1.5.1 - - deps: errorhandler@~1.4.1 - - deps: morgan@~1.6.1 - - deps: pause@0.1.0 - - deps: qs@4.0.0 - - deps: serve-index@~1.7.1 - - deps: type-is@~1.6.4 - -3.21.0 / 2015-06-18 -=================== - - * deps: basic-auth@1.0.2 - - perf: enable strict mode - - perf: hoist regular expression - - perf: parse with regular expressions - - perf: remove argument reassignment - * deps: connect@2.30.0 - - deps: body-parser@~1.13.1 - - deps: bytes@2.1.0 - - deps: compression@~1.5.0 - - deps: cookie@0.1.3 - - deps: cookie-parser@~1.3.5 - - deps: csurf@~1.8.3 - - deps: errorhandler@~1.4.0 - - deps: express-session@~1.11.3 - - deps: finalhandler@0.4.0 - - deps: fresh@0.3.0 - - deps: morgan@~1.6.0 - - deps: serve-favicon@~2.3.0 - - deps: serve-index@~1.7.0 - - deps: serve-static@~1.10.0 - - deps: type-is@~1.6.3 - * deps: cookie@0.1.3 - - perf: deduce the scope of try-catch deopt - - perf: remove argument reassignments - * deps: escape-html@1.0.2 - * deps: etag@~1.7.0 - - Always include entity length in ETags for hash length extensions - - Generate non-Stats ETags using MD5 only (no longer CRC32) - - Improve stat performance by removing hashing - - Improve support for JXcore - - Remove base64 padding in ETags to shorten - - Support "fake" stats objects in environments without fs - - Use MD5 instead of MD4 in weak ETags over 1KB - * deps: fresh@0.3.0 - - Add weak `ETag` matching support - * deps: mkdirp@0.5.1 - - Work in global strict mode - * deps: send@0.13.0 - - Allow Node.js HTTP server to set `Date` response header - - Fix incorrectly removing `Content-Location` on 304 response - - Improve the default redirect response headers - - Send appropriate headers on default error response - - Use `http-errors` for standard emitted errors - - Use `statuses` instead of `http` module for status messages - - deps: escape-html@1.0.2 - - deps: etag@~1.7.0 - - deps: fresh@0.3.0 - - deps: on-finished@~2.3.0 - - perf: enable strict mode - - perf: remove unnecessary array allocations - -3.20.3 / 2015-05-17 -=================== - - * deps: connect@2.29.2 - - deps: body-parser@~1.12.4 - - deps: compression@~1.4.4 - - deps: connect-timeout@~1.6.2 - - deps: debug@~2.2.0 - - deps: depd@~1.0.1 - - deps: errorhandler@~1.3.6 - - deps: finalhandler@0.3.6 - - deps: method-override@~2.3.3 - - deps: morgan@~1.5.3 - - deps: qs@2.4.2 - - deps: response-time@~2.3.1 - - deps: serve-favicon@~2.2.1 - - deps: serve-index@~1.6.4 - - deps: serve-static@~1.9.3 - - deps: type-is@~1.6.2 - * deps: debug@~2.2.0 - - deps: ms@0.7.1 - * deps: depd@~1.0.1 - * deps: proxy-addr@~1.0.8 - - deps: ipaddr.js@1.0.1 - * deps: send@0.12.3 - - deps: debug@~2.2.0 - - deps: depd@~1.0.1 - - deps: etag@~1.6.0 - - deps: ms@0.7.1 - - deps: on-finished@~2.2.1 - -3.20.2 / 2015-03-16 -=================== - - * deps: connect@2.29.1 - - deps: body-parser@~1.12.2 - - deps: compression@~1.4.3 - - deps: connect-timeout@~1.6.1 - - deps: debug@~2.1.3 - - deps: errorhandler@~1.3.5 - - deps: express-session@~1.10.4 - - deps: finalhandler@0.3.4 - - deps: method-override@~2.3.2 - - deps: morgan@~1.5.2 - - deps: qs@2.4.1 - - deps: serve-index@~1.6.3 - - deps: serve-static@~1.9.2 - - deps: type-is@~1.6.1 - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - * deps: merge-descriptors@1.0.0 - * deps: proxy-addr@~1.0.7 - - deps: ipaddr.js@0.1.9 - * deps: send@0.12.2 - - Throw errors early for invalid `extensions` or `index` options - - deps: debug@~2.1.3 - -3.20.1 / 2015-02-28 -=================== - - * Fix `req.host` when using "trust proxy" hops count - * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count - -3.20.0 / 2015-02-18 -=================== - - * Fix `"trust proxy"` setting to inherit when app is mounted - * Generate `ETag`s for all request responses - - No longer restricted to only responses for `GET` and `HEAD` requests - * Use `content-type` to parse `Content-Type` headers - * deps: connect@2.29.0 - - Use `content-type` to parse `Content-Type` headers - - deps: body-parser@~1.12.0 - - deps: compression@~1.4.1 - - deps: connect-timeout@~1.6.0 - - deps: cookie-parser@~1.3.4 - - deps: cookie-signature@1.0.6 - - deps: csurf@~1.7.0 - - deps: errorhandler@~1.3.4 - - deps: express-session@~1.10.3 - - deps: http-errors@~1.3.1 - - deps: response-time@~2.3.0 - - deps: serve-index@~1.6.2 - - deps: serve-static@~1.9.1 - - deps: type-is@~1.6.0 - * deps: cookie-signature@1.0.6 - * deps: send@0.12.1 - - Always read the stat size from the file - - Fix mutating passed-in `options` - - deps: mime@1.3.4 - -3.19.2 / 2015-02-01 -=================== - - * deps: connect@2.28.3 - - deps: compression@~1.3.1 - - deps: csurf@~1.6.6 - - deps: errorhandler@~1.3.3 - - deps: express-session@~1.10.2 - - deps: serve-index@~1.6.1 - - deps: type-is@~1.5.6 - * deps: proxy-addr@~1.0.6 - - deps: ipaddr.js@0.1.8 - -3.19.1 / 2015-01-20 -=================== - - * deps: connect@2.28.2 - - deps: body-parser@~1.10.2 - - deps: serve-static@~1.8.1 - * deps: send@0.11.1 - - Fix root path disclosure - -3.19.0 / 2015-01-09 -=================== - - * Fix `OPTIONS` responses to include the `HEAD` method property - * Use `readline` for prompt in `express(1)` - * deps: commander@2.6.0 - * deps: connect@2.28.1 - - deps: body-parser@~1.10.1 - - deps: compression@~1.3.0 - - deps: connect-timeout@~1.5.0 - - deps: csurf@~1.6.4 - - deps: debug@~2.1.1 - - deps: errorhandler@~1.3.2 - - deps: express-session@~1.10.1 - - deps: finalhandler@0.3.3 - - deps: method-override@~2.3.1 - - deps: morgan@~1.5.1 - - deps: serve-favicon@~2.2.0 - - deps: serve-index@~1.6.0 - - deps: serve-static@~1.8.0 - - deps: type-is@~1.5.5 - * deps: debug@~2.1.1 - * deps: methods@~1.1.1 - * deps: proxy-addr@~1.0.5 - - deps: ipaddr.js@0.1.6 - * deps: send@0.11.0 - - deps: debug@~2.1.1 - - deps: etag@~1.5.1 - - deps: ms@0.7.0 - - deps: on-finished@~2.2.0 - -3.18.6 / 2014-12-12 -=================== - - * Fix exception in `req.fresh`/`req.stale` without response headers - -3.18.5 / 2014-12-11 -=================== - - * deps: connect@2.27.6 - - deps: compression@~1.2.2 - - deps: express-session@~1.9.3 - - deps: http-errors@~1.2.8 - - deps: serve-index@~1.5.3 - - deps: type-is@~1.5.4 - -3.18.4 / 2014-11-23 -=================== - - * deps: connect@2.27.4 - - deps: body-parser@~1.9.3 - - deps: compression@~1.2.1 - - deps: errorhandler@~1.2.3 - - deps: express-session@~1.9.2 - - deps: qs@2.3.3 - - deps: serve-favicon@~2.1.7 - - deps: serve-static@~1.5.1 - - deps: type-is@~1.5.3 - * deps: etag@~1.5.1 - * deps: proxy-addr@~1.0.4 - - deps: ipaddr.js@0.1.5 - -3.18.3 / 2014-11-09 -=================== - - * deps: connect@2.27.3 - - Correctly invoke async callback asynchronously - - deps: csurf@~1.6.3 - -3.18.2 / 2014-10-28 -=================== - - * deps: connect@2.27.2 - - Fix handling of URLs containing `://` in the path - - deps: body-parser@~1.9.2 - - deps: qs@2.3.2 - -3.18.1 / 2014-10-22 -=================== - - * Fix internal `utils.merge` deprecation warnings - * deps: connect@2.27.1 - - deps: body-parser@~1.9.1 - - deps: express-session@~1.9.1 - - deps: finalhandler@0.3.2 - - deps: morgan@~1.4.1 - - deps: qs@2.3.0 - - deps: serve-static@~1.7.1 - * deps: send@0.10.1 - - deps: on-finished@~2.1.1 - -3.18.0 / 2014-10-17 -=================== - - * Use `content-disposition` module for `res.attachment`/`res.download` - - Sends standards-compliant `Content-Disposition` header - - Full Unicode support - * Use `etag` module to generate `ETag` headers - * deps: connect@2.27.0 - - Use `http-errors` module for creating errors - - Use `utils-merge` module for merging objects - - deps: body-parser@~1.9.0 - - deps: compression@~1.2.0 - - deps: connect-timeout@~1.4.0 - - deps: debug@~2.1.0 - - deps: depd@~1.0.0 - - deps: express-session@~1.9.0 - - deps: finalhandler@0.3.1 - - deps: method-override@~2.3.0 - - deps: morgan@~1.4.0 - - deps: response-time@~2.2.0 - - deps: serve-favicon@~2.1.6 - - deps: serve-index@~1.5.0 - - deps: serve-static@~1.7.0 - * deps: debug@~2.1.0 - - Implement `DEBUG_FD` env variable support - * deps: depd@~1.0.0 - * deps: send@0.10.0 - - deps: debug@~2.1.0 - - deps: depd@~1.0.0 - - deps: etag@~1.5.0 - -3.17.8 / 2014-10-15 -=================== - - * deps: connect@2.26.6 - - deps: compression@~1.1.2 - - deps: csurf@~1.6.2 - - deps: errorhandler@~1.2.2 - -3.17.7 / 2014-10-08 -=================== - - * deps: connect@2.26.5 - - Fix accepting non-object arguments to `logger` - - deps: serve-static@~1.6.4 - -3.17.6 / 2014-10-02 -=================== - - * deps: connect@2.26.4 - - deps: morgan@~1.3.2 - - deps: type-is@~1.5.2 - -3.17.5 / 2014-09-24 -=================== - - * deps: connect@2.26.3 - - deps: body-parser@~1.8.4 - - deps: serve-favicon@~2.1.5 - - deps: serve-static@~1.6.3 - * deps: proxy-addr@~1.0.3 - - Use `forwarded` npm module - * deps: send@0.9.3 - - deps: etag@~1.4.0 - -3.17.4 / 2014-09-19 -=================== - - * deps: connect@2.26.2 - - deps: body-parser@~1.8.3 - - deps: qs@2.2.4 - -3.17.3 / 2014-09-18 -=================== - - * deps: proxy-addr@~1.0.2 - - Fix a global leak when multiple subnets are trusted - - deps: ipaddr.js@0.1.3 - -3.17.2 / 2014-09-15 -=================== - - * Use `crc` instead of `buffer-crc32` for speed - * deps: connect@2.26.1 - - deps: body-parser@~1.8.2 - - deps: depd@0.4.5 - - deps: express-session@~1.8.2 - - deps: morgan@~1.3.1 - - deps: serve-favicon@~2.1.3 - - deps: serve-static@~1.6.2 - * deps: depd@0.4.5 - * deps: send@0.9.2 - - deps: depd@0.4.5 - - deps: etag@~1.3.1 - - deps: range-parser@~1.0.2 - -3.17.1 / 2014-09-08 -=================== - - * Fix error in `req.subdomains` on empty host - -3.17.0 / 2014-09-08 -=================== - - * Support `X-Forwarded-Host` in `req.subdomains` - * Support IP address host in `req.subdomains` - * deps: connect@2.26.0 - - deps: body-parser@~1.8.1 - - deps: compression@~1.1.0 - - deps: connect-timeout@~1.3.0 - - deps: cookie-parser@~1.3.3 - - deps: cookie-signature@1.0.5 - - deps: csurf@~1.6.1 - - deps: debug@~2.0.0 - - deps: errorhandler@~1.2.0 - - deps: express-session@~1.8.1 - - deps: finalhandler@0.2.0 - - deps: fresh@0.2.4 - - deps: media-typer@0.3.0 - - deps: method-override@~2.2.0 - - deps: morgan@~1.3.0 - - deps: qs@2.2.3 - - deps: serve-favicon@~2.1.3 - - deps: serve-index@~1.2.1 - - deps: serve-static@~1.6.1 - - deps: type-is@~1.5.1 - - deps: vhost@~3.0.0 - * deps: cookie-signature@1.0.5 - * deps: debug@~2.0.0 - * deps: fresh@0.2.4 - * deps: media-typer@0.3.0 - - Throw error when parameter format invalid on parse - * deps: range-parser@~1.0.2 - * deps: send@0.9.1 - - Add `lastModified` option - - Use `etag` to generate `ETag` header - - deps: debug@~2.0.0 - - deps: fresh@0.2.4 - * deps: vary@~1.0.0 - - Accept valid `Vary` header string as `field` - -3.16.10 / 2014-09-04 -==================== - - * deps: connect@2.25.10 - - deps: serve-static@~1.5.4 - * deps: send@0.8.5 - - Fix a path traversal issue when using `root` - - Fix malicious path detection for empty string path - -3.16.9 / 2014-08-29 -=================== - - * deps: connect@2.25.9 - - deps: body-parser@~1.6.7 - - deps: qs@2.2.2 - -3.16.8 / 2014-08-27 -=================== - - * deps: connect@2.25.8 - - deps: body-parser@~1.6.6 - - deps: csurf@~1.4.1 - - deps: qs@2.2.0 - -3.16.7 / 2014-08-18 -=================== - - * deps: connect@2.25.7 - - deps: body-parser@~1.6.5 - - deps: express-session@~1.7.6 - - deps: morgan@~1.2.3 - - deps: serve-static@~1.5.3 - * deps: send@0.8.3 - - deps: destroy@1.0.3 - - deps: on-finished@2.1.0 - -3.16.6 / 2014-08-14 -=================== - - * deps: connect@2.25.6 - - deps: body-parser@~1.6.4 - - deps: qs@1.2.2 - - deps: serve-static@~1.5.2 - * deps: send@0.8.2 - - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` - -3.16.5 / 2014-08-11 -=================== - - * deps: connect@2.25.5 - - Fix backwards compatibility in `logger` - -3.16.4 / 2014-08-10 -=================== - - * Fix original URL parsing in `res.location` - * deps: connect@2.25.4 - - Fix `query` middleware breaking with argument - - deps: body-parser@~1.6.3 - - deps: compression@~1.0.11 - - deps: connect-timeout@~1.2.2 - - deps: express-session@~1.7.5 - - deps: method-override@~2.1.3 - - deps: on-headers@~1.0.0 - - deps: parseurl@~1.3.0 - - deps: qs@1.2.1 - - deps: response-time@~2.0.1 - - deps: serve-index@~1.1.6 - - deps: serve-static@~1.5.1 - * deps: parseurl@~1.3.0 - -3.16.3 / 2014-08-07 -=================== - - * deps: connect@2.25.3 - - deps: multiparty@3.3.2 - -3.16.2 / 2014-08-07 -=================== - - * deps: connect@2.25.2 - - deps: body-parser@~1.6.2 - - deps: qs@1.2.0 - -3.16.1 / 2014-08-06 -=================== - - * deps: connect@2.25.1 - - deps: body-parser@~1.6.1 - - deps: qs@1.1.0 - -3.16.0 / 2014-08-05 -=================== - - * deps: connect@2.25.0 - - deps: body-parser@~1.6.0 - - deps: compression@~1.0.10 - - deps: csurf@~1.4.0 - - deps: express-session@~1.7.4 - - deps: qs@1.0.2 - - deps: serve-static@~1.5.0 - * deps: send@0.8.1 - - Add `extensions` option - -3.15.3 / 2014-08-04 -=================== - - * fix `res.sendfile` regression for serving directory index files - * deps: connect@2.24.3 - - deps: serve-index@~1.1.5 - - deps: serve-static@~1.4.4 - * deps: send@0.7.4 - - Fix incorrect 403 on Windows and Node.js 0.11 - - Fix serving index files without root dir - -3.15.2 / 2014-07-27 -=================== - - * deps: connect@2.24.2 - - deps: body-parser@~1.5.2 - - deps: depd@0.4.4 - - deps: express-session@~1.7.2 - - deps: morgan@~1.2.2 - - deps: serve-static@~1.4.2 - * deps: depd@0.4.4 - - Work-around v8 generating empty stack traces - * deps: send@0.7.2 - - deps: depd@0.4.4 - -3.15.1 / 2014-07-26 -=================== - - * deps: connect@2.24.1 - - deps: body-parser@~1.5.1 - - deps: depd@0.4.3 - - deps: express-session@~1.7.1 - - deps: morgan@~1.2.1 - - deps: serve-index@~1.1.4 - - deps: serve-static@~1.4.1 - * deps: depd@0.4.3 - - Fix exception when global `Error.stackTraceLimit` is too low - * deps: send@0.7.1 - - deps: depd@0.4.3 - -3.15.0 / 2014-07-22 -=================== - - * Fix `req.protocol` for proxy-direct connections - * Pass options from `res.sendfile` to `send` - * deps: connect@2.24.0 - - deps: body-parser@~1.5.0 - - deps: compression@~1.0.9 - - deps: connect-timeout@~1.2.1 - - deps: debug@1.0.4 - - deps: depd@0.4.2 - - deps: express-session@~1.7.0 - - deps: finalhandler@0.1.0 - - deps: method-override@~2.1.2 - - deps: morgan@~1.2.0 - - deps: multiparty@3.3.1 - - deps: parseurl@~1.2.0 - - deps: serve-static@~1.4.0 - * deps: debug@1.0.4 - * deps: depd@0.4.2 - - Add `TRACE_DEPRECATION` environment variable - - Remove non-standard grey color from color output - - Support `--no-deprecation` argument - - Support `--trace-deprecation` argument - * deps: parseurl@~1.2.0 - - Cache URLs based on original value - - Remove no-longer-needed URL mis-parse work-around - - Simplify the "fast-path" `RegExp` - * deps: send@0.7.0 - - Add `dotfiles` option - - Cap `maxAge` value to 1 year - - deps: debug@1.0.4 - - deps: depd@0.4.2 - -3.14.0 / 2014-07-11 -=================== - - * add explicit "Rosetta Flash JSONP abuse" protection - - previous versions are not vulnerable; this is just explicit protection - * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead - * fix `res.send(status, num)` to send `num` as json (not error) - * remove unnecessary escaping when `res.jsonp` returns JSON response - * deps: basic-auth@1.0.0 - - support empty password - - support empty username - * deps: connect@2.23.0 - - deps: debug@1.0.3 - - deps: express-session@~1.6.4 - - deps: method-override@~2.1.0 - - deps: parseurl@~1.1.3 - - deps: serve-static@~1.3.1 - * deps: debug@1.0.3 - - Add support for multiple wildcards in namespaces - * deps: methods@1.1.0 - - add `CONNECT` - * deps: parseurl@~1.1.3 - - faster parsing of href-only URLs - -3.13.0 / 2014-07-03 -=================== - - * add deprecation message to `app.configure` - * add deprecation message to `req.auth` - * use `basic-auth` to parse `Authorization` header - * deps: connect@2.22.0 - - deps: csurf@~1.3.0 - - deps: express-session@~1.6.1 - - deps: multiparty@3.3.0 - - deps: serve-static@~1.3.0 - * deps: send@0.5.0 - - Accept string for `maxage` (converted by `ms`) - - Include link in default redirect response - -3.12.1 / 2014-06-26 -=================== - - * deps: connect@2.21.1 - - deps: cookie-parser@1.3.2 - - deps: cookie-signature@1.0.4 - - deps: express-session@~1.5.2 - - deps: type-is@~1.3.2 - * deps: cookie-signature@1.0.4 - - fix for timing attacks - -3.12.0 / 2014-06-21 -=================== - - * use `media-typer` to alter content-type charset - * deps: connect@2.21.0 - - deprecate `connect(middleware)` -- use `app.use(middleware)` instead - - deprecate `connect.createServer()` -- use `connect()` instead - - fix `res.setHeader()` patch to work with with get -> append -> set pattern - - deps: compression@~1.0.8 - - deps: errorhandler@~1.1.1 - - deps: express-session@~1.5.0 - - deps: serve-index@~1.1.3 - -3.11.0 / 2014-06-19 -=================== - - * deprecate things with `depd` module - * deps: buffer-crc32@0.2.3 - * deps: connect@2.20.2 - - deprecate `verify` option to `json` -- use `body-parser` npm module instead - - deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead - - deprecate things with `depd` module - - use `finalhandler` for final response handling - - use `media-typer` to parse `content-type` for charset - - deps: body-parser@1.4.3 - - deps: connect-timeout@1.1.1 - - deps: cookie-parser@1.3.1 - - deps: csurf@1.2.2 - - deps: errorhandler@1.1.0 - - deps: express-session@1.4.0 - - deps: multiparty@3.2.9 - - deps: serve-index@1.1.2 - - deps: type-is@1.3.1 - - deps: vhost@2.0.0 - -3.10.5 / 2014-06-11 -=================== - - * deps: connect@2.19.6 - - deps: body-parser@1.3.1 - - deps: compression@1.0.7 - - deps: debug@1.0.2 - - deps: serve-index@1.1.1 - - deps: serve-static@1.2.3 - * deps: debug@1.0.2 - * deps: send@0.4.3 - - Do not throw un-catchable error on file open race condition - - Use `escape-html` for HTML escaping - - deps: debug@1.0.2 - - deps: finished@1.2.2 - - deps: fresh@0.2.2 - -3.10.4 / 2014-06-09 -=================== - - * deps: connect@2.19.5 - - fix "event emitter leak" warnings - - deps: csurf@1.2.1 - - deps: debug@1.0.1 - - deps: serve-static@1.2.2 - - deps: type-is@1.2.1 - * deps: debug@1.0.1 - * deps: send@0.4.2 - - fix "event emitter leak" warnings - - deps: finished@1.2.1 - - deps: debug@1.0.1 - -3.10.3 / 2014-06-05 -=================== - - * use `vary` module for `res.vary` - * deps: connect@2.19.4 - - deps: errorhandler@1.0.2 - - deps: method-override@2.0.2 - - deps: serve-favicon@2.0.1 - * deps: debug@1.0.0 - -3.10.2 / 2014-06-03 -=================== - - * deps: connect@2.19.3 - - deps: compression@1.0.6 - -3.10.1 / 2014-06-03 -=================== - - * deps: connect@2.19.2 - - deps: compression@1.0.4 - * deps: proxy-addr@1.0.1 - -3.10.0 / 2014-06-02 -=================== - - * deps: connect@2.19.1 - - deprecate `methodOverride()` -- use `method-override` npm module instead - - deps: body-parser@1.3.0 - - deps: method-override@2.0.1 - - deps: multiparty@3.2.8 - - deps: response-time@2.0.0 - - deps: serve-static@1.2.1 - * deps: methods@1.0.1 - * deps: send@0.4.1 - - Send `max-age` in `Cache-Control` in correct format - -3.9.0 / 2014-05-30 -================== - - * custom etag control with `app.set('etag', val)` - - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation - - `app.set('etag', 'weak')` weak tag - - `app.set('etag', 'strong')` strong etag - - `app.set('etag', false)` turn off - - `app.set('etag', true)` standard etag - * Include ETag in HEAD requests - * mark `res.send` ETag as weak and reduce collisions - * update connect to 2.18.0 - - deps: compression@1.0.3 - - deps: serve-index@1.1.0 - - deps: serve-static@1.2.0 - * update send to 0.4.0 - - Calculate ETag with md5 for reduced collisions - - Ignore stream errors after request ends - - deps: debug@0.8.1 - -3.8.1 / 2014-05-27 -================== - - * update connect to 2.17.3 - - deps: body-parser@1.2.2 - - deps: express-session@1.2.1 - - deps: method-override@1.0.2 - -3.8.0 / 2014-05-21 -================== - - * keep previous `Content-Type` for `res.jsonp` - * set proper `charset` in `Content-Type` for `res.send` - * update connect to 2.17.1 - - fix `res.charset` appending charset when `content-type` has one - - deps: express-session@1.2.0 - - deps: morgan@1.1.1 - - deps: serve-index@1.0.3 - -3.7.0 / 2014-05-18 -================== - - * proper proxy trust with `app.set('trust proxy', trust)` - - `app.set('trust proxy', 1)` trust first hop - - `app.set('trust proxy', 'loopback')` trust loopback addresses - - `app.set('trust proxy', '10.0.0.1')` trust single IP - - `app.set('trust proxy', '10.0.0.1/16')` trust subnet - - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list - - `app.set('trust proxy', false)` turn off - - `app.set('trust proxy', true)` trust everything - * update connect to 2.16.2 - - deprecate `res.headerSent` -- use `res.headersSent` - - deprecate `res.on("header")` -- use on-headers module instead - - fix edge-case in `res.appendHeader` that would append in wrong order - - json: use body-parser - - urlencoded: use body-parser - - dep: bytes@1.0.0 - - dep: cookie-parser@1.1.0 - - dep: csurf@1.2.0 - - dep: express-session@1.1.0 - - dep: method-override@1.0.1 - -3.6.0 / 2014-05-09 -================== - - * deprecate `app.del()` -- use `app.delete()` instead - * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead - - the edge-case `res.json(status, num)` requires `res.status(status).json(num)` - * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead - - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)` - * support PURGE method - - add `app.purge` - - add `router.purge` - - include PURGE in `app.all` - * update connect to 2.15.0 - * Add `res.appendHeader` - * Call error stack even when response has been sent - * Patch `res.headerSent` to return Boolean - * Patch `res.headersSent` for node.js 0.8 - * Prevent default 404 handler after response sent - * dep: compression@1.0.2 - * dep: connect-timeout@1.1.0 - * dep: debug@^0.8.0 - * dep: errorhandler@1.0.1 - * dep: express-session@1.0.4 - * dep: morgan@1.0.1 - * dep: serve-favicon@2.0.0 - * dep: serve-index@1.0.2 - * update debug to 0.8.0 - * add `enable()` method - * change from stderr to stdout - * update methods to 1.0.0 - - add PURGE - * update mkdirp to 0.5.0 - -3.5.3 / 2014-05-08 -================== - - * fix `req.host` for IPv6 literals - * fix `res.jsonp` error if callback param is object - -3.5.2 / 2014-04-24 -================== - - * update connect to 2.14.5 - * update cookie to 0.1.2 - * update mkdirp to 0.4.0 - * update send to 0.3.0 - -3.5.1 / 2014-03-25 -================== - - * pin less-middleware in generated app - -3.5.0 / 2014-03-06 -================== - - * bump deps - -3.4.8 / 2014-01-13 -================== - - * prevent incorrect automatic OPTIONS responses #1868 @dpatti - * update binary and examples for jade 1.0 #1876 @yossi, #1877 @reqshark, #1892 @matheusazzi - * throw 400 in case of malformed paths @rlidwka - -3.4.7 / 2013-12-10 -================== - - * update connect - -3.4.6 / 2013-12-01 -================== - - * update connect (raw-body) - -3.4.5 / 2013-11-27 -================== - - * update connect - * res.location: remove leading ./ #1802 @kapouer - * res.redirect: fix `res.redirect('toString') #1829 @michaelficarra - * res.send: always send ETag when content-length > 0 - * router: add Router.all() method - -3.4.4 / 2013-10-29 -================== - - * update connect - * update supertest - * update methods - * express(1): replace bodyParser() with urlencoded() and json() #1795 @chirag04 - -3.4.3 / 2013-10-23 -================== - - * update connect - -3.4.2 / 2013-10-18 -================== - - * update connect - * downgrade commander - -3.4.1 / 2013-10-15 -================== - - * update connect - * update commander - * jsonp: check if callback is a function - * router: wrap encodeURIComponent in a try/catch #1735 (@lxe) - * res.format: now includes charset @1747 (@sorribas) - * res.links: allow multiple calls @1746 (@sorribas) - -3.4.0 / 2013-09-07 -================== - - * add res.vary(). Closes #1682 - * update connect - -3.3.8 / 2013-09-02 -================== - - * update connect - -3.3.7 / 2013-08-28 -================== - - * update connect - -3.3.6 / 2013-08-27 -================== - - * Revert "remove charset from json responses. Closes #1631" (causes issues in some clients) - * add: req.accepts take an argument list - -3.3.4 / 2013-07-08 -================== - - * update send and connect - -3.3.3 / 2013-07-04 -================== - - * update connect - -3.3.2 / 2013-07-03 -================== - - * update connect - * update send - * remove .version export - -3.3.1 / 2013-06-27 -================== - - * update connect - -3.3.0 / 2013-06-26 -================== - - * update connect - * add support for multiple X-Forwarded-Proto values. Closes #1646 - * change: remove charset from json responses. Closes #1631 - * change: return actual booleans from req.accept* functions - * fix jsonp callback array throw - -3.2.6 / 2013-06-02 -================== - - * update connect - -3.2.5 / 2013-05-21 -================== - - * update connect - * update node-cookie - * add: throw a meaningful error when there is no default engine - * change generation of ETags with res.send() to GET requests only. Closes #1619 - -3.2.4 / 2013-05-09 -================== - - * fix `req.subdomains` when no Host is present - * fix `req.host` when no Host is present, return undefined - -3.2.3 / 2013-05-07 -================== - - * update connect / qs - -3.2.2 / 2013-05-03 -================== - - * update qs - -3.2.1 / 2013-04-29 -================== - - * add app.VERB() paths array deprecation warning - * update connect - * update qs and remove all ~ semver crap - * fix: accept number as value of Signed Cookie - -3.2.0 / 2013-04-15 -================== - - * add "view" constructor setting to override view behaviour - * add req.acceptsEncoding(name) - * add req.acceptedEncodings - * revert cookie signature change causing session race conditions - * fix sorting of Accept values of the same quality - -3.1.2 / 2013-04-12 -================== - - * add support for custom Accept parameters - * update cookie-signature - -3.1.1 / 2013-04-01 -================== - - * add X-Forwarded-Host support to `req.host` - * fix relative redirects - * update mkdirp - * update buffer-crc32 - * remove legacy app.configure() method from app template. - -3.1.0 / 2013-01-25 -================== - - * add support for leading "." in "view engine" setting - * add array support to `res.set()` - * add node 0.8.x to travis.yml - * add "subdomain offset" setting for tweaking `req.subdomains` - * add `res.location(url)` implementing `res.redirect()`-like setting of Location - * use app.get() for x-powered-by setting for inheritance - * fix colons in passwords for `req.auth` - -3.0.6 / 2013-01-04 -================== - - * add http verb methods to Router - * update connect - * fix mangling of the `res.cookie()` options object - * fix jsonp whitespace escape. Closes #1132 - -3.0.5 / 2012-12-19 -================== - - * add throwing when a non-function is passed to a route - * fix: explicitly remove Transfer-Encoding header from 204 and 304 responses - * revert "add 'etag' option" - -3.0.4 / 2012-12-05 -================== - - * add 'etag' option to disable `res.send()` Etags - * add escaping of urls in text/plain in `res.redirect()` - for old browsers interpreting as html - * change crc32 module for a more liberal license - * update connect - -3.0.3 / 2012-11-13 -================== - - * update connect - * update cookie module - * fix cookie max-age - -3.0.2 / 2012-11-08 -================== - - * add OPTIONS to cors example. Closes #1398 - * fix route chaining regression. Closes #1397 - -3.0.1 / 2012-11-01 -================== - - * update connect - -3.0.0 / 2012-10-23 -================== - - * add `make clean` - * add "Basic" check to req.auth - * add `req.auth` test coverage - * add cb && cb(payload) to `res.jsonp()`. Closes #1374 - * add backwards compat for `res.redirect()` status. Closes #1336 - * add support for `res.json()` to retain previously defined Content-Types. Closes #1349 - * update connect - * change `res.redirect()` to utilize a pathname-relative Location again. Closes #1382 - * remove non-primitive string support for `res.send()` - * fix view-locals example. Closes #1370 - * fix route-separation example - -3.0.0rc5 / 2012-09-18 -================== - - * update connect - * add redis search example - * add static-files example - * add "x-powered-by" setting (`app.disable('x-powered-by')`) - * add "application/octet-stream" redirect Accept test case. Closes #1317 - -3.0.0rc4 / 2012-08-30 -================== - - * add `res.jsonp()`. Closes #1307 - * add "verbose errors" option to error-pages example - * add another route example to express(1) so people are not so confused - * add redis online user activity tracking example - * update connect dep - * fix etag quoting. Closes #1310 - * fix error-pages 404 status - * fix jsonp callback char restrictions - * remove old OPTIONS default response - -3.0.0rc3 / 2012-08-13 -================== - - * update connect dep - * fix signed cookies to work with `connect.cookieParser()` ("s:" prefix was missing) [tnydwrds] - * fix `res.render()` clobbering of "locals" - -3.0.0rc2 / 2012-08-03 -================== - - * add CORS example - * update connect dep - * deprecate `.createServer()` & remove old stale examples - * fix: escape `res.redirect()` link - * fix vhost example - -3.0.0rc1 / 2012-07-24 -================== - - * add more examples to view-locals - * add scheme-relative redirects (`res.redirect("//foo.com")`) support - * update cookie dep - * update connect dep - * update send dep - * fix `express(1)` -h flag, use -H for hogan. Closes #1245 - * fix `res.sendfile()` socket error handling regression - -3.0.0beta7 / 2012-07-16 -================== - - * update connect dep for `send()` root normalization regression - -3.0.0beta6 / 2012-07-13 -================== - - * add `err.view` property for view errors. Closes #1226 - * add "jsonp callback name" setting - * add support for "/foo/:bar*" non-greedy matches - * change `res.sendfile()` to use `send()` module - * change `res.send` to use "response-send" module - * remove `app.locals.use` and `res.locals.use`, use regular middleware - -3.0.0beta5 / 2012-07-03 -================== - - * add "make check" support - * add route-map example - * add `res.json(obj, status)` support back for BC - * add "methods" dep, remove internal methods module - * update connect dep - * update auth example to utilize cores pbkdf2 - * updated tests to use "supertest" - -3.0.0beta4 / 2012-06-25 -================== - - * Added `req.auth` - * Added `req.range(size)` - * Added `res.links(obj)` - * Added `res.send(body, status)` support back for backwards compat - * Added `.default()` support to `res.format()` - * Added 2xx / 304 check to `req.fresh` - * Revert "Added + support to the router" - * Fixed `res.send()` freshness check, respect res.statusCode - -3.0.0beta3 / 2012-06-15 -================== - - * Added hogan `--hjs` to express(1) [nullfirm] - * Added another example to content-negotiation - * Added `fresh` dep - * Changed: `res.send()` always checks freshness - * Fixed: expose connects mime module. Closes #1165 - -3.0.0beta2 / 2012-06-06 -================== - - * Added `+` support to the router - * Added `req.host` - * Changed `req.param()` to check route first - * Update connect dep - -3.0.0beta1 / 2012-06-01 -================== - - * Added `res.format()` callback to override default 406 behaviour - * Fixed `res.redirect()` 406. Closes #1154 - -3.0.0alpha5 / 2012-05-30 -================== - - * Added `req.ip` - * Added `{ signed: true }` option to `res.cookie()` - * Removed `res.signedCookie()` - * Changed: dont reverse `req.ips` - * Fixed "trust proxy" setting check for `req.ips` - -3.0.0alpha4 / 2012-05-09 -================== - - * Added: allow `[]` in jsonp callback. Closes #1128 - * Added `PORT` env var support in generated template. Closes #1118 [benatkin] - * Updated: connect 2.2.2 - -3.0.0alpha3 / 2012-05-04 -================== - - * Added public `app.routes`. Closes #887 - * Added _view-locals_ example - * Added _mvc_ example - * Added `res.locals.use()`. Closes #1120 - * Added conditional-GET support to `res.send()` - * Added: coerce `res.set()` values to strings - * Changed: moved `static()` in generated apps below router - * Changed: `res.send()` only set ETag when not previously set - * Changed connect 2.2.1 dep - * Changed: `make test` now runs unit / acceptance tests - * Fixed req/res proto inheritance - -3.0.0alpha2 / 2012-04-26 -================== - - * Added `make benchmark` back - * Added `res.send()` support for `String` objects - * Added client-side data exposing example - * Added `res.header()` and `req.header()` aliases for BC - * Added `express.createServer()` for BC - * Perf: memoize parsed urls - * Perf: connect 2.2.0 dep - * Changed: make `expressInit()` middleware self-aware - * Fixed: use app.get() for all core settings - * Fixed redis session example - * Fixed session example. Closes #1105 - * Fixed generated express dep. Closes #1078 - -3.0.0alpha1 / 2012-04-15 -================== - - * Added `app.locals.use(callback)` - * Added `app.locals` object - * Added `app.locals(obj)` - * Added `res.locals` object - * Added `res.locals(obj)` - * Added `res.format()` for content-negotiation - * Added `app.engine()` - * Added `res.cookie()` JSON cookie support - * Added "trust proxy" setting - * Added `req.subdomains` - * Added `req.protocol` - * Added `req.secure` - * Added `req.path` - * Added `req.ips` - * Added `req.fresh` - * Added `req.stale` - * Added comma-delimited / array support for `req.accepts()` - * Added debug instrumentation - * Added `res.set(obj)` - * Added `res.set(field, value)` - * Added `res.get(field)` - * Added `app.get(setting)`. Closes #842 - * Added `req.acceptsLanguage()` - * Added `req.acceptsCharset()` - * Added `req.accepted` - * Added `req.acceptedLanguages` - * Added `req.acceptedCharsets` - * Added "json replacer" setting - * Added "json spaces" setting - * Added X-Forwarded-Proto support to `res.redirect()`. Closes #92 - * Added `--less` support to express(1) - * Added `express.response` prototype - * Added `express.request` prototype - * Added `express.application` prototype - * Added `app.path()` - * Added `app.render()` - * Added `res.type()` to replace `res.contentType()` - * Changed: `res.redirect()` to add relative support - * Changed: enable "jsonp callback" by default - * Changed: renamed "case sensitive routes" to "case sensitive routing" - * Rewrite of all tests with mocha - * Removed "root" setting - * Removed `res.redirect('home')` support - * Removed `req.notify()` - * Removed `app.register()` - * Removed `app.redirect()` - * Removed `app.is()` - * Removed `app.helpers()` - * Removed `app.dynamicHelpers()` - * Fixed `res.sendfile()` with non-GET. Closes #723 - * Fixed express(1) public dir for windows. Closes #866 - -2.5.9/ 2012-04-02 -================== - - * Added support for PURGE request method [pbuyle] - * Fixed `express(1)` generated app `app.address()` before `listening` [mmalecki] - -2.5.8 / 2012-02-08 -================== - - * Update mkdirp dep. Closes #991 - -2.5.7 / 2012-02-06 -================== - - * Fixed `app.all` duplicate DELETE requests [mscdex] - -2.5.6 / 2012-01-13 -================== - - * Updated hamljs dev dep. Closes #953 - -2.5.5 / 2012-01-08 -================== - - * Fixed: set `filename` on cached templates [matthewleon] - -2.5.4 / 2012-01-02 -================== - - * Fixed `express(1)` eol on 0.4.x. Closes #947 - -2.5.3 / 2011-12-30 -================== - - * Fixed `req.is()` when a charset is present - -2.5.2 / 2011-12-10 -================== - - * Fixed: express(1) LF -> CRLF for windows - -2.5.1 / 2011-11-17 -================== - - * Changed: updated connect to 1.8.x - * Removed sass.js support from express(1) - -2.5.0 / 2011-10-24 -================== - - * Added ./routes dir for generated app by default - * Added npm install reminder to express(1) app gen - * Added 0.5.x support - * Removed `make test-cov` since it wont work with node 0.5.x - * Fixed express(1) public dir for windows. Closes #866 - -2.4.7 / 2011-10-05 -================== - - * Added mkdirp to express(1). Closes #795 - * Added simple _json-config_ example - * Added shorthand for the parsed request's pathname via `req.path` - * Changed connect dep to 1.7.x to fix npm issue... - * Fixed `res.redirect()` __HEAD__ support. [reported by xerox] - * Fixed `req.flash()`, only escape args - * Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie] - -2.4.6 / 2011-08-22 -================== - - * Fixed multiple param callback regression. Closes #824 [reported by TroyGoode] - -2.4.5 / 2011-08-19 -================== - - * Added support for routes to handle errors. Closes #809 - * Added `app.routes.all()`. Closes #803 - * Added "basepath" setting to work in conjunction with reverse proxies etc. - * Refactored `Route` to use a single array of callbacks - * Added support for multiple callbacks for `app.param()`. Closes #801 -Closes #805 - * Changed: removed .call(self) for route callbacks - * Dependency: `qs >= 0.3.1` - * Fixed `res.redirect()` on windows due to `join()` usage. Closes #808 - -2.4.4 / 2011-08-05 -================== - - * Fixed `res.header()` intention of a set, even when `undefined` - * Fixed `*`, value no longer required - * Fixed `res.send(204)` support. Closes #771 - -2.4.3 / 2011-07-14 -================== - - * Added docs for `status` option special-case. Closes #739 - * Fixed `options.filename`, exposing the view path to template engines - -2.4.2. / 2011-07-06 -================== - - * Revert "removed jsonp stripping" for XSS - -2.4.1 / 2011-07-06 -================== - - * Added `res.json()` JSONP support. Closes #737 - * Added _extending-templates_ example. Closes #730 - * Added "strict routing" setting for trailing slashes - * Added support for multiple envs in `app.configure()` calls. Closes #735 - * Changed: `res.send()` using `res.json()` - * Changed: when cookie `path === null` don't default it - * Changed; default cookie path to "home" setting. Closes #731 - * Removed _pids/logs_ creation from express(1) - -2.4.0 / 2011-06-28 -================== - - * Added chainable `res.status(code)` - * Added `res.json()`, an explicit version of `res.send(obj)` - * Added simple web-service example - -2.3.12 / 2011-06-22 -================== - - * \#express is now on freenode! come join! - * Added `req.get(field, param)` - * Added links to Japanese documentation, thanks @hideyukisaito! - * Added; the `express(1)` generated app outputs the env - * Added `content-negotiation` example - * Dependency: connect >= 1.5.1 < 2.0.0 - * Fixed view layout bug. Closes #720 - * Fixed; ignore body on 304. Closes #701 - -2.3.11 / 2011-06-04 -================== - - * Added `npm test` - * Removed generation of dummy test file from `express(1)` - * Fixed; `express(1)` adds express as a dep - * Fixed; prune on `prepublish` - -2.3.10 / 2011-05-27 -================== - - * Added `req.route`, exposing the current route - * Added _package.json_ generation support to `express(1)` - * Fixed call to `app.param()` function for optional params. Closes #682 - -2.3.9 / 2011-05-25 -================== - - * Fixed bug-ish with `../' in `res.partial()` calls - -2.3.8 / 2011-05-24 -================== - - * Fixed `app.options()` - -2.3.7 / 2011-05-23 -================== - - * Added route `Collection`, ex: `app.get('/user/:id').remove();` - * Added support for `app.param(fn)` to define param logic - * Removed `app.param()` support for callback with return value - * Removed module.parent check from express(1) generated app. Closes #670 - * Refactored router. Closes #639 - -2.3.6 / 2011-05-20 -================== - - * Changed; using devDependencies instead of git submodules - * Fixed redis session example - * Fixed markdown example - * Fixed view caching, should not be enabled in development - -2.3.5 / 2011-05-20 -================== - - * Added export `.view` as alias for `.View` - -2.3.4 / 2011-05-08 -================== - - * Added `./examples/say` - * Fixed `res.sendfile()` bug preventing the transfer of files with spaces - -2.3.3 / 2011-05-03 -================== - - * Added "case sensitive routes" option. - * Changed; split methods supported per rfc [slaskis] - * Fixed route-specific middleware when using the same callback function several times - -2.3.2 / 2011-04-27 -================== - - * Fixed view hints - -2.3.1 / 2011-04-26 -================== - - * Added `app.match()` as `app.match.all()` - * Added `app.lookup()` as `app.lookup.all()` - * Added `app.remove()` for `app.remove.all()` - * Added `app.remove.VERB()` - * Fixed template caching collision issue. Closes #644 - * Moved router over from connect and started refactor - -2.3.0 / 2011-04-25 -================== - - * Added options support to `res.clearCookie()` - * Added `res.helpers()` as alias of `res.locals()` - * Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel * Dependency `connect >= 1.4.0` - * Changed; auto set Content-Type in res.attachement [Aaron Heckmann] - * Renamed "cache views" to "view cache". Closes #628 - * Fixed caching of views when using several apps. Closes #637 - * Fixed gotcha invoking `app.param()` callbacks once per route middleware. -Closes #638 - * Fixed partial lookup precedence. Closes #631 -Shaw] - -2.2.2 / 2011-04-12 -================== - - * Added second callback support for `res.download()` connection errors - * Fixed `filename` option passing to template engine - -2.2.1 / 2011-04-04 -================== - - * Added `layout(path)` helper to change the layout within a view. Closes #610 - * Fixed `partial()` collection object support. - Previously only anything with `.length` would work. - When `.length` is present one must still be aware of holes, - however now `{ collection: {foo: 'bar'}}` is valid, exposes - `keyInCollection` and `keysInCollection`. - - * Performance improved with better view caching - * Removed `request` and `response` locals - * Changed; errorHandler page title is now `Express` instead of `Connect` - -2.2.0 / 2011-03-30 -================== - - * Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606 - * Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606 - * Added `app.VERB(path)` as alias of `app.lookup.VERB()`. - * Dependency `connect >= 1.2.0` - -2.1.1 / 2011-03-29 -================== - - * Added; expose `err.view` object when failing to locate a view - * Fixed `res.partial()` call `next(err)` when no callback is given [reported by aheckmann] - * Fixed; `res.send(undefined)` responds with 204 [aheckmann] - -2.1.0 / 2011-03-24 -================== - - * Added `/_?` partial lookup support. Closes #447 - * Added `request`, `response`, and `app` local variables - * Added `settings` local variable, containing the app's settings - * Added `req.flash()` exception if `req.session` is not available - * Added `res.send(bool)` support (json response) - * Fixed stylus example for latest version - * Fixed; wrap try/catch around `res.render()` - -2.0.0 / 2011-03-17 -================== - - * Fixed up index view path alternative. - * Changed; `res.locals()` without object returns the locals - -2.0.0rc3 / 2011-03-17 -================== - - * Added `res.locals(obj)` to compliment `res.local(key, val)` - * Added `res.partial()` callback support - * Fixed recursive error reporting issue in `res.render()` - -2.0.0rc2 / 2011-03-17 -================== - - * Changed; `partial()` "locals" are now optional - * Fixed `SlowBuffer` support. Closes #584 [reported by tyrda01] - * Fixed .filename view engine option [reported by drudge] - * Fixed blog example - * Fixed `{req,res}.app` reference when mounting [Ben Weaver] - -2.0.0rc / 2011-03-14 -================== - - * Fixed; expose `HTTPSServer` constructor - * Fixed express(1) default test charset. Closes #579 [reported by secoif] - * Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP] - -2.0.0beta3 / 2011-03-09 -================== - - * Added support for `res.contentType()` literal - The original `res.contentType('.json')`, - `res.contentType('application/json')`, and `res.contentType('json')` - will work now. - * Added `res.render()` status option support back - * Added charset option for `res.render()` - * Added `.charset` support (via connect 1.0.4) - * Added view resolution hints when in development and a lookup fails - * Added layout lookup support relative to the page view. - For example while rendering `./views/user/index.jade` if you create - `./views/user/layout.jade` it will be used in favour of the root layout. - * Fixed `res.redirect()`. RFC states absolute url [reported by unlink] - * Fixed; default `res.send()` string charset to utf8 - * Removed `Partial` constructor (not currently used) - -2.0.0beta2 / 2011-03-07 -================== - - * Added res.render() `.locals` support back to aid in migration process - * Fixed flash example - -2.0.0beta / 2011-03-03 -================== - - * Added HTTPS support - * Added `res.cookie()` maxAge support - * Added `req.header()` _Referrer_ / _Referer_ special-case, either works - * Added mount support for `res.redirect()`, now respects the mount-point - * Added `union()` util, taking place of `merge(clone())` combo - * Added stylus support to express(1) generated app - * Added secret to session middleware used in examples and generated app - * Added `res.local(name, val)` for progressive view locals - * Added default param support to `req.param(name, default)` - * Added `app.disabled()` and `app.enabled()` - * Added `app.register()` support for omitting leading ".", either works - * Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539 - * Added `app.param()` to map route params to async/sync logic - * Added; aliased `app.helpers()` as `app.locals()`. Closes #481 - * Added extname with no leading "." support to `res.contentType()` - * Added `cache views` setting, defaulting to enabled in "production" env - * Added index file partial resolution, eg: partial('user') may try _views/user/index.jade_. - * Added `req.accepts()` support for extensions - * Changed; `res.download()` and `res.sendfile()` now utilize Connect's - static file server `connect.static.send()`. - * Changed; replaced `connect.utils.mime()` with npm _mime_ module - * Changed; allow `req.query` to be pre-defined (via middleware or other parent - * Changed view partial resolution, now relative to parent view - * Changed view engine signature. no longer `engine.render(str, options, callback)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`. - * Fixed `req.param()` bug returning Array.prototype methods. Closes #552 - * Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.sendfile()` - * Fixed; using _qs_ module instead of _querystring_ - * Fixed; strip unsafe chars from jsonp callbacks - * Removed "stream threshold" setting - -1.0.8 / 2011-03-01 -================== - - * Allow `req.query` to be pre-defined (via middleware or other parent app) - * "connect": ">= 0.5.0 < 1.0.0". Closes #547 - * Removed the long deprecated __EXPRESS_ENV__ support - -1.0.7 / 2011-02-07 -================== - - * Fixed `render()` setting inheritance. - Mounted apps would not inherit "view engine" - -1.0.6 / 2011-02-07 -================== - - * Fixed `view engine` setting bug when period is in dirname - -1.0.5 / 2011-02-05 -================== - - * Added secret to generated app `session()` call - -1.0.4 / 2011-02-05 -================== - - * Added `qs` dependency to _package.json_ - * Fixed namespaced `require()`s for latest connect support - -1.0.3 / 2011-01-13 -================== - - * Remove unsafe characters from JSONP callback names [Ryan Grove] - -1.0.2 / 2011-01-10 -================== - - * Removed nested require, using `connect.router` - -1.0.1 / 2010-12-29 -================== - - * Fixed for middleware stacked via `createServer()` - previously the `foo` middleware passed to `createServer(foo)` - would not have access to Express methods such as `res.send()` - or props like `req.query` etc. - -1.0.0 / 2010-11-16 -================== - - * Added; deduce partial object names from the last segment. - For example by default `partial('forum/post', postObject)` will - give you the _post_ object, providing a meaningful default. - * Added http status code string representation to `res.redirect()` body - * Added; `res.redirect()` supporting _text/plain_ and _text/html_ via __Accept__. - * Added `req.is()` to aid in content negotiation - * Added partial local inheritance [suggested by masylum]. Closes #102 - providing access to parent template locals. - * Added _-s, --session[s]_ flag to express(1) to add session related middleware - * Added _--template_ flag to express(1) to specify the - template engine to use. - * Added _--css_ flag to express(1) to specify the - stylesheet engine to use (or just plain css by default). - * Added `app.all()` support [thanks aheckmann] - * Added partial direct object support. - You may now `partial('user', user)` providing the "user" local, - vs previously `partial('user', { object: user })`. - * Added _route-separation_ example since many people question ways - to do this with CommonJS modules. Also view the _blog_ example for - an alternative. - * Performance; caching view path derived partial object names - * Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454 - * Fixed jsonp support; _text/javascript_ as per mailinglist discussion - -1.0.0rc4 / 2010-10-14 -================== - - * Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0 - * Added route-middleware support (very helpful, see the [docs](http://expressjs.com/guide.html#Route-Middleware)) - * Added _jsonp callback_ setting to enable/disable jsonp autowrapping [Dav Glass] - * Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass] - * Added `partial()` support for array-like collections. Closes #434 - * Added support for swappable querystring parsers - * Added session usage docs. Closes #443 - * Added dynamic helper caching. Closes #439 [suggested by maritz] - * Added authentication example - * Added basic Range support to `res.sendfile()` (and `res.download()` etc) - * Changed; `express(1)` generated app using 2 spaces instead of 4 - * Default env to "development" again [aheckmann] - * Removed _context_ option is no more, use "scope" - * Fixed; exposing _./support_ libs to examples so they can run without installs - * Fixed mvc example - -1.0.0rc3 / 2010-09-20 -================== - - * Added confirmation for `express(1)` app generation. Closes #391 - * Added extending of flash formatters via `app.flashFormatters` - * Added flash formatter support. Closes #411 - * Added streaming support to `res.sendfile()` using `sys.pump()` when >= "stream threshold" - * Added _stream threshold_ setting for `res.sendfile()` - * Added `res.send()` __HEAD__ support - * Added `res.clearCookie()` - * Added `res.cookie()` - * Added `res.render()` headers option - * Added `res.redirect()` response bodies - * Added `res.render()` status option support. Closes #425 [thanks aheckmann] - * Fixed `res.sendfile()` responding with 403 on malicious path - * Fixed `res.download()` bug; when an error occurs remove _Content-Disposition_ - * Fixed; mounted apps settings now inherit from parent app [aheckmann] - * Fixed; stripping Content-Length / Content-Type when 204 - * Fixed `res.send()` 204. Closes #419 - * Fixed multiple _Set-Cookie_ headers via `res.header()`. Closes #402 - * Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo] - - -1.0.0rc2 / 2010-08-17 -================== - - * Added `app.register()` for template engine mapping. Closes #390 - * Added `res.render()` callback support as second argument (no options) - * Added callback support to `res.download()` - * Added callback support for `res.sendfile()` - * Added support for middleware access via `express.middlewareName()` vs `connect.middlewareName()` - * Added "partials" setting to docs - * Added default expresso tests to `express(1)` generated app. Closes #384 - * Fixed `res.sendfile()` error handling, defer via `next()` - * Fixed `res.render()` callback when a layout is used [thanks guillermo] - * Fixed; `make install` creating ~/.node_libraries when not present - * Fixed issue preventing error handlers from being defined anywhere. Closes #387 - -1.0.0rc / 2010-07-28 -================== - - * Added mounted hook. Closes #369 - * Added connect dependency to _package.json_ - - * Removed "reload views" setting and support code - development env never caches, production always caches. - - * Removed _param_ in route callbacks, signature is now - simply (req, res, next), previously (req, res, params, next). - Use _req.params_ for path captures, _req.query_ for GET params. - - * Fixed "home" setting - * Fixed middleware/router precedence issue. Closes #366 - * Fixed; _configure()_ callbacks called immediately. Closes #368 - -1.0.0beta2 / 2010-07-23 -================== - - * Added more examples - * Added; exporting `Server` constructor - * Added `Server#helpers()` for view locals - * Added `Server#dynamicHelpers()` for dynamic view locals. Closes #349 - * Added support for absolute view paths - * Added; _home_ setting defaults to `Server#route` for mounted apps. Closes #363 - * Added Guillermo Rauch to the contributor list - * Added support for "as" for non-collection partials. Closes #341 - * Fixed _install.sh_, ensuring _~/.node_libraries_ exists. Closes #362 [thanks jf] - * Fixed `res.render()` exceptions, now passed to `next()` when no callback is given [thanks guillermo] - * Fixed instanceof `Array` checks, now `Array.isArray()` - * Fixed express(1) expansion of public dirs. Closes #348 - * Fixed middleware precedence. Closes #345 - * Fixed view watcher, now async [thanks aheckmann] - -1.0.0beta / 2010-07-15 -================== - - * Re-write - - much faster - - much lighter - - Check [ExpressJS.com](http://expressjs.com) for migration guide and updated docs - -0.14.0 / 2010-06-15 -================== - - * Utilize relative requires - * Added Static bufferSize option [aheckmann] - * Fixed caching of view and partial subdirectories [aheckmann] - * Fixed mime.type() comments now that ".ext" is not supported - * Updated haml submodule - * Updated class submodule - * Removed bin/express - -0.13.0 / 2010-06-01 -================== - - * Added node v0.1.97 compatibility - * Added support for deleting cookies via Request#cookie('key', null) - * Updated haml submodule - * Fixed not-found page, now using using charset utf-8 - * Fixed show-exceptions page, now using using charset utf-8 - * Fixed view support due to fs.readFile Buffers - * Changed; mime.type() no longer accepts ".type" due to node extname() changes - -0.12.0 / 2010-05-22 -================== - - * Added node v0.1.96 compatibility - * Added view `helpers` export which act as additional local variables - * Updated haml submodule - * Changed ETag; removed inode, modified time only - * Fixed LF to CRLF for setting multiple cookies - * Fixed cookie complation; values are now urlencoded - * Fixed cookies parsing; accepts quoted values and url escaped cookies - -0.11.0 / 2010-05-06 -================== - - * Added support for layouts using different engines - - this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' }) - - this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml' - - this.render('page.html.haml', { layout: false }) // no layout - * Updated ext submodule - * Updated haml submodule - * Fixed EJS partial support by passing along the context. Issue #307 - -0.10.1 / 2010-05-03 -================== - - * Fixed binary uploads. - -0.10.0 / 2010-04-30 -================== - - * Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s - encoding is set to 'utf8' or 'utf-8'. - * Added "encoding" option to Request#render(). Closes #299 - * Added "dump exceptions" setting, which is enabled by default. - * Added simple ejs template engine support - * Added error response support for text/plain, application/json. Closes #297 - * Added callback function param to Request#error() - * Added Request#sendHead() - * Added Request#stream() - * Added support for Request#respond(304, null) for empty response bodies - * Added ETag support to Request#sendfile() - * Added options to Request#sendfile(), passed to fs.createReadStream() - * Added filename arg to Request#download() - * Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request - * Performance enhanced by preventing several calls to toLowerCase() in Router#match() - * Changed; Request#sendfile() now streams - * Changed; Renamed Request#halt() to Request#respond(). Closes #289 - * Changed; Using sys.inspect() instead of JSON.encode() for error output - * Changed; run() returns the http.Server instance. Closes #298 - * Changed; Defaulting Server#host to null (INADDR_ANY) - * Changed; Logger "common" format scale of 0.4f - * Removed Logger "request" format - * Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found - * Fixed several issues with http client - * Fixed Logger Content-Length output - * Fixed bug preventing Opera from retaining the generated session id. Closes #292 - -0.9.0 / 2010-04-14 -================== - - * Added DSL level error() route support - * Added DSL level notFound() route support - * Added Request#error() - * Added Request#notFound() - * Added Request#render() callback function. Closes #258 - * Added "max upload size" setting - * Added "magic" variables to collection partials (\_\_index\_\_, \_\_length\_\_, \_\_isFirst\_\_, \_\_isLast\_\_). Closes #254 - * Added [haml.js](http://github.com/visionmedia/haml.js) submodule; removed haml-js - * Added callback function support to Request#halt() as 3rd/4th arg - * Added preprocessing of route param wildcards using param(). Closes #251 - * Added view partial support (with collections etc) - * Fixed bug preventing falsey params (such as ?page=0). Closes #286 - * Fixed setting of multiple cookies. Closes #199 - * Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml) - * Changed; session cookie is now httpOnly - * Changed; Request is no longer global - * Changed; Event is no longer global - * Changed; "sys" module is no longer global - * Changed; moved Request#download to Static plugin where it belongs - * Changed; Request instance created before body parsing. Closes #262 - * Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253 - * Changed; Pre-caching view partials in memory when "cache view partials" is enabled - * Updated support to node --version 0.1.90 - * Updated dependencies - * Removed set("session cookie") in favour of use(Session, { cookie: { ... }}) - * Removed utils.mixin(); use Object#mergeDeep() - -0.8.0 / 2010-03-19 -================== - - * Added coffeescript example app. Closes #242 - * Changed; cache api now async friendly. Closes #240 - * Removed deprecated 'express/static' support. Use 'express/plugins/static' - -0.7.6 / 2010-03-19 -================== - - * Added Request#isXHR. Closes #229 - * Added `make install` (for the executable) - * Added `express` executable for setting up simple app templates - * Added "GET /public/*" to Static plugin, defaulting to /public - * Added Static plugin - * Fixed; Request#render() only calls cache.get() once - * Fixed; Namespacing View caches with "view:" - * Fixed; Namespacing Static caches with "static:" - * Fixed; Both example apps now use the Static plugin - * Fixed set("views"). Closes #239 - * Fixed missing space for combined log format - * Deprecated Request#sendfile() and 'express/static' - * Removed Server#running - -0.7.5 / 2010-03-16 -================== - - * Added Request#flash() support without args, now returns all flashes - * Updated ext submodule - -0.7.4 / 2010-03-16 -================== - - * Fixed session reaper - * Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft) - -0.7.3 / 2010-03-16 -================== - - * Added package.json - * Fixed requiring of haml / sass due to kiwi removal - -0.7.2 / 2010-03-16 -================== - - * Fixed GIT submodules (HAH!) - -0.7.1 / 2010-03-16 -================== - - * Changed; Express now using submodules again until a PM is adopted - * Changed; chat example using millisecond conversions from ext - -0.7.0 / 2010-03-15 -================== - - * Added Request#pass() support (finds the next matching route, or the given path) - * Added Logger plugin (default "common" format replaces CommonLogger) - * Removed Profiler plugin - * Removed CommonLogger plugin - -0.6.0 / 2010-03-11 -================== - - * Added seed.yml for kiwi package management support - * Added HTTP client query string support when method is GET. Closes #205 - - * Added support for arbitrary view engines. - For example "foo.engine.html" will now require('engine'), - the exports from this module are cached after the first require(). - - * Added async plugin support - - * Removed usage of RESTful route funcs as http client - get() etc, use http.get() and friends - - * Removed custom exceptions - -0.5.0 / 2010-03-10 -================== - - * Added ext dependency (library of js extensions) - * Removed extname() / basename() utils. Use path module - * Removed toArray() util. Use arguments.values - * Removed escapeRegexp() util. Use RegExp.escape() - * Removed process.mixin() dependency. Use utils.mixin() - * Removed Collection - * Removed ElementCollection - * Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com) ;) - -0.4.0 / 2010-02-11 -================== - - * Added flash() example to sample upload app - * Added high level restful http client module (express/http) - * Changed; RESTful route functions double as HTTP clients. Closes #69 - * Changed; throwing error when routes are added at runtime - * Changed; defaulting render() context to the current Request. Closes #197 - * Updated haml submodule - -0.3.0 / 2010-02-11 -================== - - * Updated haml / sass submodules. Closes #200 - * Added flash message support. Closes #64 - * Added accepts() now allows multiple args. fixes #117 - * Added support for plugins to halt. Closes #189 - * Added alternate layout support. Closes #119 - * Removed Route#run(). Closes #188 - * Fixed broken specs due to use(Cookie) missing - -0.2.1 / 2010-02-05 -================== - - * Added "plot" format option for Profiler (for gnuplot processing) - * Added request number to Profiler plugin - * Fixed binary encoding for multi-part file uploads, was previously defaulting to UTF8 - * Fixed issue with routes not firing when not files are present. Closes #184 - * Fixed process.Promise -> events.Promise - -0.2.0 / 2010-02-03 -================== - - * Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180 - * Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174 - * Added expiration support to cache api with reaper. Closes #133 - * Added cache Store.Memory#reap() - * Added Cache; cache api now uses first class Cache instances - * Added abstract session Store. Closes #172 - * Changed; cache Memory.Store#get() utilizing Collection - * Renamed MemoryStore -> Store.Memory - * Fixed use() of the same plugin several time will always use latest options. Closes #176 - -0.1.0 / 2010-02-03 -================== - - * Changed; Hooks (before / after) pass request as arg as well as evaluated in their context - * Updated node support to 0.1.27 Closes #169 - * Updated dirname(__filename) -> __dirname - * Updated libxmljs support to v0.2.0 - * Added session support with memory store / reaping - * Added quick uid() helper - * Added multi-part upload support - * Added Sass.js support / submodule - * Added production env caching view contents and static files - * Added static file caching. Closes #136 - * Added cache plugin with memory stores - * Added support to StaticFile so that it works with non-textual files. - * Removed dirname() helper - * Removed several globals (now their modules must be required) - -0.0.2 / 2010-01-10 -================== - - * Added view benchmarks; currently haml vs ejs - * Added Request#attachment() specs. Closes #116 - * Added use of node's parseQuery() util. Closes #123 - * Added `make init` for submodules - * Updated Haml - * Updated sample chat app to show messages on load - * Updated libxmljs parseString -> parseHtmlString - * Fixed `make init` to work with older versions of git - * Fixed specs can now run independent specs for those who cant build deps. Closes #127 - * Fixed issues introduced by the node url module changes. Closes 126. - * Fixed two assertions failing due to Collection#keys() returning strings - * Fixed faulty Collection#toArray() spec due to keys() returning strings - * Fixed `make test` now builds libxmljs.node before testing - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/LICENSE deleted file mode 100644 index aa927e44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2009-2014 TJ Holowaychuk -Copyright (c) 2013-2014 Roman Shtylman -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/Readme.md deleted file mode 100644 index 6e08454b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/Readme.md +++ /dev/null @@ -1,138 +0,0 @@ -[![Express Logo](https://i.cloudup.com/zfY6lL7eFa-3000x3000.png)](http://expressjs.com/) - - Fast, unopinionated, minimalist web framework for [node](http://nodejs.org). - - [![NPM Version][npm-image]][npm-url] - [![NPM Downloads][downloads-image]][downloads-url] - [![Linux Build][travis-image]][travis-url] - [![Windows Build][appveyor-image]][appveyor-url] - [![Test Coverage][coveralls-image]][coveralls-url] - -```js -var express = require('express') -var app = express() - -app.get('/', function (req, res) { - res.send('Hello World') -}) - -app.listen(3000) -``` - -## Installation - -```bash -$ npm install express -``` - -## Features - - * Robust routing - * Focus on high performance - * Super-high test coverage - * HTTP helpers (redirection, caching, etc) - * View system supporting 14+ template engines - * Content negotiation - * Executable for generating applications quickly - -## Docs & Community - - * [#express](https://webchat.freenode.net/?channels=express) on freenode IRC - * [Github Organization](https://github.com/expressjs) for Official Middleware & Modules - * [Google Group](https://groups.google.com/group/express-js) for discussion - * [Gitter](https://gitter.im/expressjs/express) for support and discussion - * [Русскоязычная документация](http://jsman.ru/express/) - -###Security Issues - -If you discover a security vulnerability in Express, please see [Security Policies and Procedures](Security.md). - -## Quick Start - - The quickest way to get started with express is to utilize the executable [`express(1)`](https://github.com/expressjs/generator) to generate an application as shown below: - - Install the executable. The executable's major version will match Express's: - -```bash -$ npm install -g express-generator@4 -``` - - Create the app: - -```bash -$ express /tmp/foo && cd /tmp/foo -``` - - Install dependencies: - -```bash -$ npm install -``` - - Start the server: - -```bash -$ npm start -``` - -## Philosophy - - The Express philosophy is to provide small, robust tooling for HTTP servers, making - it a great solution for single page applications, web sites, hybrids, or public - HTTP APIs. - - Express does not force you to use any specific ORM or template engine. With support for over - 14 template engines via [Consolidate.js](https://github.com/tj/consolidate.js), - you can quickly craft your perfect framework. - -## Examples - - To view the examples, clone the Express repo and install the dependencies: - -```bash -$ git clone git://github.com/expressjs/express.git --depth 1 -$ cd express -$ npm install -``` - - Then run whichever example you want: - -```bash -$ node examples/content-negotiation -``` - -## Tests - - To run the test suite, first install the dependencies, then run `npm test`: - -```bash -$ npm install -$ npm test -``` - -## People - -The original author of Express is [TJ Holowaychuk](https://github.com/tj) [![TJ's Gratipay][gratipay-image-visionmedia]][gratipay-url-visionmedia] - -The current lead maintainer is [Douglas Christopher Wilson](https://github.com/dougwilson) [![Doug's Gratipay][gratipay-image-dougwilson]][gratipay-url-dougwilson] - -[List of all contributors](https://github.com/expressjs/express/graphs/contributors) - -## License - - [MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/express.svg -[npm-url]: https://npmjs.org/package/express -[downloads-image]: https://img.shields.io/npm/dm/express.svg -[downloads-url]: https://npmjs.org/package/express -[travis-image]: https://img.shields.io/travis/expressjs/express/master.svg?label=linux -[travis-url]: https://travis-ci.org/expressjs/express -[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/express/master.svg?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/express -[coveralls-image]: https://img.shields.io/coveralls/expressjs/express/master.svg -[coveralls-url]: https://coveralls.io/r/expressjs/express?branch=master -[gratipay-image-visionmedia]: https://img.shields.io/gratipay/visionmedia.svg -[gratipay-url-visionmedia]: https://gratipay.com/visionmedia/ -[gratipay-image-dougwilson]: https://img.shields.io/gratipay/dougwilson.svg -[gratipay-url-dougwilson]: https://gratipay.com/dougwilson/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/index.js deleted file mode 100644 index d219b0c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/index.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -module.exports = require('./lib/express'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/application.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/application.js deleted file mode 100644 index 0ee4def3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/application.js +++ /dev/null @@ -1,643 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var finalhandler = require('finalhandler'); -var Router = require('./router'); -var methods = require('methods'); -var middleware = require('./middleware/init'); -var query = require('./middleware/query'); -var debug = require('debug')('express:application'); -var View = require('./view'); -var http = require('http'); -var compileETag = require('./utils').compileETag; -var compileQueryParser = require('./utils').compileQueryParser; -var compileTrust = require('./utils').compileTrust; -var deprecate = require('depd')('express'); -var flatten = require('array-flatten'); -var merge = require('utils-merge'); -var resolve = require('path').resolve; -var slice = Array.prototype.slice; - -/** - * Application prototype. - */ - -var app = exports = module.exports = {}; - -/** - * Variable for trust proxy inheritance back-compat - * @private - */ - -var trustProxyDefaultSymbol = '@@symbol:trust_proxy_default'; - -/** - * Initialize the server. - * - * - setup default configuration - * - setup default middleware - * - setup route reflection methods - * - * @private - */ - -app.init = function init() { - this.cache = {}; - this.engines = {}; - this.settings = {}; - - this.defaultConfiguration(); -}; - -/** - * Initialize application configuration. - * @private - */ - -app.defaultConfiguration = function defaultConfiguration() { - var env = process.env.NODE_ENV || 'development'; - - // default settings - this.enable('x-powered-by'); - this.set('etag', 'weak'); - this.set('env', env); - this.set('query parser', 'extended'); - this.set('subdomain offset', 2); - this.set('trust proxy', false); - - // trust proxy inherit back-compat - Object.defineProperty(this.settings, trustProxyDefaultSymbol, { - configurable: true, - value: true - }); - - debug('booting in %s mode', env); - - this.on('mount', function onmount(parent) { - // inherit trust proxy - if (this.settings[trustProxyDefaultSymbol] === true - && typeof parent.settings['trust proxy fn'] === 'function') { - delete this.settings['trust proxy']; - delete this.settings['trust proxy fn']; - } - - // inherit protos - this.request.__proto__ = parent.request; - this.response.__proto__ = parent.response; - this.engines.__proto__ = parent.engines; - this.settings.__proto__ = parent.settings; - }); - - // setup locals - this.locals = Object.create(null); - - // top-most app is mounted at / - this.mountpath = '/'; - - // default locals - this.locals.settings = this.settings; - - // default configuration - this.set('view', View); - this.set('views', resolve('views')); - this.set('jsonp callback name', 'callback'); - - if (env === 'production') { - this.enable('view cache'); - } - - Object.defineProperty(this, 'router', { - get: function() { - throw new Error('\'app.router\' is deprecated!\nPlease see the 3.x to 4.x migration guide for details on how to update your app.'); - } - }); -}; - -/** - * lazily adds the base router if it has not yet been added. - * - * We cannot add the base router in the defaultConfiguration because - * it reads app settings which might be set after that has run. - * - * @private - */ -app.lazyrouter = function lazyrouter() { - if (!this._router) { - this._router = new Router({ - caseSensitive: this.enabled('case sensitive routing'), - strict: this.enabled('strict routing') - }); - - this._router.use(query(this.get('query parser fn'))); - this._router.use(middleware.init(this)); - } -}; - -/** - * Dispatch a req, res pair into the application. Starts pipeline processing. - * - * If no callback is provided, then default error handlers will respond - * in the event of an error bubbling through the stack. - * - * @private - */ - -app.handle = function handle(req, res, callback) { - var router = this._router; - - // final handler - var done = callback || finalhandler(req, res, { - env: this.get('env'), - onerror: logerror.bind(this) - }); - - // no routes - if (!router) { - debug('no routes defined on app'); - done(); - return; - } - - router.handle(req, res, done); -}; - -/** - * Proxy `Router#use()` to add middleware to the app router. - * See Router#use() documentation for details. - * - * If the _fn_ parameter is an express app, then it will be - * mounted at the _route_ specified. - * - * @public - */ - -app.use = function use(fn) { - var offset = 0; - var path = '/'; - - // default path to '/' - // disambiguate app.use([fn]) - if (typeof fn !== 'function') { - var arg = fn; - - while (Array.isArray(arg) && arg.length !== 0) { - arg = arg[0]; - } - - // first arg is the path - if (typeof arg !== 'function') { - offset = 1; - path = fn; - } - } - - var fns = flatten(slice.call(arguments, offset)); - - if (fns.length === 0) { - throw new TypeError('app.use() requires middleware functions'); - } - - // setup router - this.lazyrouter(); - var router = this._router; - - fns.forEach(function (fn) { - // non-express app - if (!fn || !fn.handle || !fn.set) { - return router.use(path, fn); - } - - debug('.use app under %s', path); - fn.mountpath = path; - fn.parent = this; - - // restore .app property on req and res - router.use(path, function mounted_app(req, res, next) { - var orig = req.app; - fn.handle(req, res, function (err) { - req.__proto__ = orig.request; - res.__proto__ = orig.response; - next(err); - }); - }); - - // mounted an app - fn.emit('mount', this); - }, this); - - return this; -}; - -/** - * Proxy to the app `Router#route()` - * Returns a new `Route` instance for the _path_. - * - * Routes are isolated middleware stacks for specific paths. - * See the Route api docs for details. - * - * @public - */ - -app.route = function route(path) { - this.lazyrouter(); - return this._router.route(path); -}; - -/** - * Register the given template engine callback `fn` - * as `ext`. - * - * By default will `require()` the engine based on the - * file extension. For example if you try to render - * a "foo.jade" file Express will invoke the following internally: - * - * app.engine('jade', require('jade').__express); - * - * For engines that do not provide `.__express` out of the box, - * or if you wish to "map" a different extension to the template engine - * you may use this method. For example mapping the EJS template engine to - * ".html" files: - * - * app.engine('html', require('ejs').renderFile); - * - * In this case EJS provides a `.renderFile()` method with - * the same signature that Express expects: `(path, options, callback)`, - * though note that it aliases this method as `ejs.__express` internally - * so if you're using ".ejs" extensions you dont need to do anything. - * - * Some template engines do not follow this convention, the - * [Consolidate.js](https://github.com/tj/consolidate.js) - * library was created to map all of node's popular template - * engines to follow this convention, thus allowing them to - * work seamlessly within Express. - * - * @param {String} ext - * @param {Function} fn - * @return {app} for chaining - * @public - */ - -app.engine = function engine(ext, fn) { - if (typeof fn !== 'function') { - throw new Error('callback function required'); - } - - // get file extension - var extension = ext[0] !== '.' - ? '.' + ext - : ext; - - // store engine - this.engines[extension] = fn; - - return this; -}; - -/** - * Proxy to `Router#param()` with one added api feature. The _name_ parameter - * can be an array of names. - * - * See the Router#param() docs for more details. - * - * @param {String|Array} name - * @param {Function} fn - * @return {app} for chaining - * @public - */ - -app.param = function param(name, fn) { - this.lazyrouter(); - - if (Array.isArray(name)) { - for (var i = 0; i < name.length; i++) { - this.param(name[i], fn); - } - - return this; - } - - this._router.param(name, fn); - - return this; -}; - -/** - * Assign `setting` to `val`, or return `setting`'s value. - * - * app.set('foo', 'bar'); - * app.get('foo'); - * // => "bar" - * - * Mounted servers inherit their parent server's settings. - * - * @param {String} setting - * @param {*} [val] - * @return {Server} for chaining - * @public - */ - -app.set = function set(setting, val) { - if (arguments.length === 1) { - // app.get(setting) - return this.settings[setting]; - } - - debug('set "%s" to %o', setting, val); - - // set value - this.settings[setting] = val; - - // trigger matched settings - switch (setting) { - case 'etag': - this.set('etag fn', compileETag(val)); - break; - case 'query parser': - this.set('query parser fn', compileQueryParser(val)); - break; - case 'trust proxy': - this.set('trust proxy fn', compileTrust(val)); - - // trust proxy inherit back-compat - Object.defineProperty(this.settings, trustProxyDefaultSymbol, { - configurable: true, - value: false - }); - - break; - } - - return this; -}; - -/** - * Return the app's absolute pathname - * based on the parent(s) that have - * mounted it. - * - * For example if the application was - * mounted as "/admin", which itself - * was mounted as "/blog" then the - * return value would be "/blog/admin". - * - * @return {String} - * @private - */ - -app.path = function path() { - return this.parent - ? this.parent.path() + this.mountpath - : ''; -}; - -/** - * Check if `setting` is enabled (truthy). - * - * app.enabled('foo') - * // => false - * - * app.enable('foo') - * app.enabled('foo') - * // => true - * - * @param {String} setting - * @return {Boolean} - * @public - */ - -app.enabled = function enabled(setting) { - return Boolean(this.set(setting)); -}; - -/** - * Check if `setting` is disabled. - * - * app.disabled('foo') - * // => true - * - * app.enable('foo') - * app.disabled('foo') - * // => false - * - * @param {String} setting - * @return {Boolean} - * @public - */ - -app.disabled = function disabled(setting) { - return !this.set(setting); -}; - -/** - * Enable `setting`. - * - * @param {String} setting - * @return {app} for chaining - * @public - */ - -app.enable = function enable(setting) { - return this.set(setting, true); -}; - -/** - * Disable `setting`. - * - * @param {String} setting - * @return {app} for chaining - * @public - */ - -app.disable = function disable(setting) { - return this.set(setting, false); -}; - -/** - * Delegate `.VERB(...)` calls to `router.VERB(...)`. - */ - -methods.forEach(function(method){ - app[method] = function(path){ - if (method === 'get' && arguments.length === 1) { - // app.get(setting) - return this.set(path); - } - - this.lazyrouter(); - - var route = this._router.route(path); - route[method].apply(route, slice.call(arguments, 1)); - return this; - }; -}); - -/** - * Special-cased "all" method, applying the given route `path`, - * middleware, and callback to _every_ HTTP method. - * - * @param {String} path - * @param {Function} ... - * @return {app} for chaining - * @public - */ - -app.all = function all(path) { - this.lazyrouter(); - - var route = this._router.route(path); - var args = slice.call(arguments, 1); - - for (var i = 0; i < methods.length; i++) { - route[methods[i]].apply(route, args); - } - - return this; -}; - -// del -> delete alias - -app.del = deprecate.function(app.delete, 'app.del: Use app.delete instead'); - -/** - * Render the given view `name` name with `options` - * and a callback accepting an error and the - * rendered template string. - * - * Example: - * - * app.render('email', { name: 'Tobi' }, function(err, html){ - * // ... - * }) - * - * @param {String} name - * @param {Object|Function} options or fn - * @param {Function} callback - * @public - */ - -app.render = function render(name, options, callback) { - var cache = this.cache; - var done = callback; - var engines = this.engines; - var opts = options; - var renderOptions = {}; - var view; - - // support callback function as second arg - if (typeof options === 'function') { - done = options; - opts = {}; - } - - // merge app.locals - merge(renderOptions, this.locals); - - // merge options._locals - if (opts._locals) { - merge(renderOptions, opts._locals); - } - - // merge options - merge(renderOptions, opts); - - // set .cache unless explicitly provided - if (renderOptions.cache == null) { - renderOptions.cache = this.enabled('view cache'); - } - - // primed cache - if (renderOptions.cache) { - view = cache[name]; - } - - // view - if (!view) { - var View = this.get('view'); - - view = new View(name, { - defaultEngine: this.get('view engine'), - root: this.get('views'), - engines: engines - }); - - if (!view.path) { - var dirs = Array.isArray(view.root) && view.root.length > 1 - ? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"' - : 'directory "' + view.root + '"' - var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs); - err.view = view; - return done(err); - } - - // prime the cache - if (renderOptions.cache) { - cache[name] = view; - } - } - - // render - tryRender(view, renderOptions, done); -}; - -/** - * Listen for connections. - * - * A node `http.Server` is returned, with this - * application (which is a `Function`) as its - * callback. If you wish to create both an HTTP - * and HTTPS server you may do so with the "http" - * and "https" modules as shown here: - * - * var http = require('http') - * , https = require('https') - * , express = require('express') - * , app = express(); - * - * http.createServer(app).listen(80); - * https.createServer({ ... }, app).listen(443); - * - * @return {http.Server} - * @public - */ - -app.listen = function listen() { - var server = http.createServer(this); - return server.listen.apply(server, arguments); -}; - -/** - * Log error using console.error. - * - * @param {Error} err - * @private - */ - -function logerror(err) { - /* istanbul ignore next */ - if (this.get('env') !== 'test') console.error(err.stack || err.toString()); -} - -/** - * Try rendering a view. - * @private - */ - -function tryRender(view, options, callback) { - try { - view.render(options, callback); - } catch (err) { - callback(err); - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/express.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/express.js deleted file mode 100644 index 540c8be6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/express.js +++ /dev/null @@ -1,103 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - */ - -var EventEmitter = require('events').EventEmitter; -var mixin = require('merge-descriptors'); -var proto = require('./application'); -var Route = require('./router/route'); -var Router = require('./router'); -var req = require('./request'); -var res = require('./response'); - -/** - * Expose `createApplication()`. - */ - -exports = module.exports = createApplication; - -/** - * Create an express application. - * - * @return {Function} - * @api public - */ - -function createApplication() { - var app = function(req, res, next) { - app.handle(req, res, next); - }; - - mixin(app, EventEmitter.prototype, false); - mixin(app, proto, false); - - app.request = { __proto__: req, app: app }; - app.response = { __proto__: res, app: app }; - app.init(); - return app; -} - -/** - * Expose the prototypes. - */ - -exports.application = proto; -exports.request = req; -exports.response = res; - -/** - * Expose constructors. - */ - -exports.Route = Route; -exports.Router = Router; - -/** - * Expose middleware - */ - -exports.query = require('./middleware/query'); -exports.static = require('serve-static'); - -/** - * Replace removed middleware with an appropriate error message. - */ - -[ - 'json', - 'urlencoded', - 'bodyParser', - 'compress', - 'cookieSession', - 'session', - 'logger', - 'cookieParser', - 'favicon', - 'responseTime', - 'errorHandler', - 'timeout', - 'methodOverride', - 'vhost', - 'csrf', - 'directory', - 'limit', - 'multipart', - 'staticCache', -].forEach(function (name) { - Object.defineProperty(exports, name, { - get: function () { - throw new Error('Most middleware (like ' + name + ') is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.'); - }, - configurable: true - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/middleware/init.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/middleware/init.js deleted file mode 100644 index f3119ed3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/middleware/init.js +++ /dev/null @@ -1,36 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Initialization middleware, exposing the - * request and response to each other, as well - * as defaulting the X-Powered-By header field. - * - * @param {Function} app - * @return {Function} - * @api private - */ - -exports.init = function(app){ - return function expressInit(req, res, next){ - if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express'); - req.res = res; - res.req = req; - req.next = next; - - req.__proto__ = app.request; - res.__proto__ = app.response; - - res.locals = res.locals || Object.create(null); - - next(); - }; -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/middleware/query.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/middleware/query.js deleted file mode 100644 index a665f3f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/middleware/query.js +++ /dev/null @@ -1,51 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - */ - -var parseUrl = require('parseurl'); -var qs = require('qs'); - -/** - * @param {Object} options - * @return {Function} - * @api public - */ - -module.exports = function query(options) { - var opts = Object.create(options || null); - var queryparse = qs.parse; - - if (typeof options === 'function') { - queryparse = options; - opts = undefined; - } - - if (opts !== undefined) { - if (opts.allowDots === undefined) { - opts.allowDots = false; - } - - if (opts.allowPrototypes === undefined) { - opts.allowPrototypes = true; - } - } - - return function query(req, res, next){ - if (!req.query) { - var val = parseUrl(req).query; - req.query = queryparse(val, opts); - } - - next(); - }; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/request.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/request.js deleted file mode 100644 index 33cac180..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/request.js +++ /dev/null @@ -1,489 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var accepts = require('accepts'); -var deprecate = require('depd')('express'); -var isIP = require('net').isIP; -var typeis = require('type-is'); -var http = require('http'); -var fresh = require('fresh'); -var parseRange = require('range-parser'); -var parse = require('parseurl'); -var proxyaddr = require('proxy-addr'); - -/** - * Request prototype. - */ - -var req = exports = module.exports = { - __proto__: http.IncomingMessage.prototype -}; - -/** - * Return request header. - * - * The `Referrer` header field is special-cased, - * both `Referrer` and `Referer` are interchangeable. - * - * Examples: - * - * req.get('Content-Type'); - * // => "text/plain" - * - * req.get('content-type'); - * // => "text/plain" - * - * req.get('Something'); - * // => undefined - * - * Aliased as `req.header()`. - * - * @param {String} name - * @return {String} - * @public - */ - -req.get = -req.header = function header(name) { - var lc = name.toLowerCase(); - - switch (lc) { - case 'referer': - case 'referrer': - return this.headers.referrer - || this.headers.referer; - default: - return this.headers[lc]; - } -}; - -/** - * To do: update docs. - * - * Check if the given `type(s)` is acceptable, returning - * the best match when true, otherwise `undefined`, in which - * case you should respond with 406 "Not Acceptable". - * - * The `type` value may be a single MIME type string - * such as "application/json", an extension name - * such as "json", a comma-delimited list such as "json, html, text/plain", - * an argument list such as `"json", "html", "text/plain"`, - * or an array `["json", "html", "text/plain"]`. When a list - * or array is given, the _best_ match, if any is returned. - * - * Examples: - * - * // Accept: text/html - * req.accepts('html'); - * // => "html" - * - * // Accept: text/*, application/json - * req.accepts('html'); - * // => "html" - * req.accepts('text/html'); - * // => "text/html" - * req.accepts('json, text'); - * // => "json" - * req.accepts('application/json'); - * // => "application/json" - * - * // Accept: text/*, application/json - * req.accepts('image/png'); - * req.accepts('png'); - * // => undefined - * - * // Accept: text/*;q=.5, application/json - * req.accepts(['html', 'json']); - * req.accepts('html', 'json'); - * req.accepts('html, json'); - * // => "json" - * - * @param {String|Array} type(s) - * @return {String|Array|Boolean} - * @public - */ - -req.accepts = function(){ - var accept = accepts(this); - return accept.types.apply(accept, arguments); -}; - -/** - * Check if the given `encoding`s are accepted. - * - * @param {String} ...encoding - * @return {String|Array} - * @public - */ - -req.acceptsEncodings = function(){ - var accept = accepts(this); - return accept.encodings.apply(accept, arguments); -}; - -req.acceptsEncoding = deprecate.function(req.acceptsEncodings, - 'req.acceptsEncoding: Use acceptsEncodings instead'); - -/** - * Check if the given `charset`s are acceptable, - * otherwise you should respond with 406 "Not Acceptable". - * - * @param {String} ...charset - * @return {String|Array} - * @public - */ - -req.acceptsCharsets = function(){ - var accept = accepts(this); - return accept.charsets.apply(accept, arguments); -}; - -req.acceptsCharset = deprecate.function(req.acceptsCharsets, - 'req.acceptsCharset: Use acceptsCharsets instead'); - -/** - * Check if the given `lang`s are acceptable, - * otherwise you should respond with 406 "Not Acceptable". - * - * @param {String} ...lang - * @return {String|Array} - * @public - */ - -req.acceptsLanguages = function(){ - var accept = accepts(this); - return accept.languages.apply(accept, arguments); -}; - -req.acceptsLanguage = deprecate.function(req.acceptsLanguages, - 'req.acceptsLanguage: Use acceptsLanguages instead'); - -/** - * Parse Range header field, - * capping to the given `size`. - * - * Unspecified ranges such as "0-" require - * knowledge of your resource length. In - * the case of a byte range this is of course - * the total number of bytes. If the Range - * header field is not given `null` is returned, - * `-1` when unsatisfiable, `-2` when syntactically invalid. - * - * NOTE: remember that ranges are inclusive, so - * for example "Range: users=0-3" should respond - * with 4 users when available, not 3. - * - * @param {Number} size - * @return {Array} - * @public - */ - -req.range = function(size){ - var range = this.get('Range'); - if (!range) return; - return parseRange(size, range); -}; - -/** - * Return the value of param `name` when present or `defaultValue`. - * - * - Checks route placeholders, ex: _/user/:id_ - * - Checks body params, ex: id=12, {"id":12} - * - Checks query string params, ex: ?id=12 - * - * To utilize request bodies, `req.body` - * should be an object. This can be done by using - * the `bodyParser()` middleware. - * - * @param {String} name - * @param {Mixed} [defaultValue] - * @return {String} - * @public - */ - -req.param = function param(name, defaultValue) { - var params = this.params || {}; - var body = this.body || {}; - var query = this.query || {}; - - var args = arguments.length === 1 - ? 'name' - : 'name, default'; - deprecate('req.param(' + args + '): Use req.params, req.body, or req.query instead'); - - if (null != params[name] && params.hasOwnProperty(name)) return params[name]; - if (null != body[name]) return body[name]; - if (null != query[name]) return query[name]; - - return defaultValue; -}; - -/** - * Check if the incoming request contains the "Content-Type" - * header field, and it contains the give mime `type`. - * - * Examples: - * - * // With Content-Type: text/html; charset=utf-8 - * req.is('html'); - * req.is('text/html'); - * req.is('text/*'); - * // => true - * - * // When Content-Type is application/json - * req.is('json'); - * req.is('application/json'); - * req.is('application/*'); - * // => true - * - * req.is('html'); - * // => false - * - * @param {String|Array} types... - * @return {String|false|null} - * @public - */ - -req.is = function is(types) { - var arr = types; - - // support flattened arguments - if (!Array.isArray(types)) { - arr = new Array(arguments.length); - for (var i = 0; i < arr.length; i++) { - arr[i] = arguments[i]; - } - } - - return typeis(this, arr); -}; - -/** - * Return the protocol string "http" or "https" - * when requested with TLS. When the "trust proxy" - * setting trusts the socket address, the - * "X-Forwarded-Proto" header field will be trusted - * and used if present. - * - * If you're running behind a reverse proxy that - * supplies https for you this may be enabled. - * - * @return {String} - * @public - */ - -defineGetter(req, 'protocol', function protocol(){ - var proto = this.connection.encrypted - ? 'https' - : 'http'; - var trust = this.app.get('trust proxy fn'); - - if (!trust(this.connection.remoteAddress, 0)) { - return proto; - } - - // Note: X-Forwarded-Proto is normally only ever a - // single value, but this is to be safe. - proto = this.get('X-Forwarded-Proto') || proto; - return proto.split(/\s*,\s*/)[0]; -}); - -/** - * Short-hand for: - * - * req.protocol == 'https' - * - * @return {Boolean} - * @public - */ - -defineGetter(req, 'secure', function secure(){ - return this.protocol === 'https'; -}); - -/** - * Return the remote address from the trusted proxy. - * - * The is the remote address on the socket unless - * "trust proxy" is set. - * - * @return {String} - * @public - */ - -defineGetter(req, 'ip', function ip(){ - var trust = this.app.get('trust proxy fn'); - return proxyaddr(this, trust); -}); - -/** - * When "trust proxy" is set, trusted proxy addresses + client. - * - * For example if the value were "client, proxy1, proxy2" - * you would receive the array `["client", "proxy1", "proxy2"]` - * where "proxy2" is the furthest down-stream and "proxy1" and - * "proxy2" were trusted. - * - * @return {Array} - * @public - */ - -defineGetter(req, 'ips', function ips() { - var trust = this.app.get('trust proxy fn'); - var addrs = proxyaddr.all(this, trust); - return addrs.slice(1).reverse(); -}); - -/** - * Return subdomains as an array. - * - * Subdomains are the dot-separated parts of the host before the main domain of - * the app. By default, the domain of the app is assumed to be the last two - * parts of the host. This can be changed by setting "subdomain offset". - * - * For example, if the domain is "tobi.ferrets.example.com": - * If "subdomain offset" is not set, req.subdomains is `["ferrets", "tobi"]`. - * If "subdomain offset" is 3, req.subdomains is `["tobi"]`. - * - * @return {Array} - * @public - */ - -defineGetter(req, 'subdomains', function subdomains() { - var hostname = this.hostname; - - if (!hostname) return []; - - var offset = this.app.get('subdomain offset'); - var subdomains = !isIP(hostname) - ? hostname.split('.').reverse() - : [hostname]; - - return subdomains.slice(offset); -}); - -/** - * Short-hand for `url.parse(req.url).pathname`. - * - * @return {String} - * @public - */ - -defineGetter(req, 'path', function path() { - return parse(this).pathname; -}); - -/** - * Parse the "Host" header field to a hostname. - * - * When the "trust proxy" setting trusts the socket - * address, the "X-Forwarded-Host" header field will - * be trusted. - * - * @return {String} - * @public - */ - -defineGetter(req, 'hostname', function hostname(){ - var trust = this.app.get('trust proxy fn'); - var host = this.get('X-Forwarded-Host'); - - if (!host || !trust(this.connection.remoteAddress, 0)) { - host = this.get('Host'); - } - - if (!host) return; - - // IPv6 literal support - var offset = host[0] === '[' - ? host.indexOf(']') + 1 - : 0; - var index = host.indexOf(':', offset); - - return index !== -1 - ? host.substring(0, index) - : host; -}); - -// TODO: change req.host to return host in next major - -defineGetter(req, 'host', deprecate.function(function host(){ - return this.hostname; -}, 'req.host: Use req.hostname instead')); - -/** - * Check if the request is fresh, aka - * Last-Modified and/or the ETag - * still match. - * - * @return {Boolean} - * @public - */ - -defineGetter(req, 'fresh', function(){ - var method = this.method; - var s = this.res.statusCode; - - // GET or HEAD for weak freshness validation only - if ('GET' != method && 'HEAD' != method) return false; - - // 2xx or 304 as per rfc2616 14.26 - if ((s >= 200 && s < 300) || 304 == s) { - return fresh(this.headers, (this.res._headers || {})); - } - - return false; -}); - -/** - * Check if the request is stale, aka - * "Last-Modified" and / or the "ETag" for the - * resource has changed. - * - * @return {Boolean} - * @public - */ - -defineGetter(req, 'stale', function stale(){ - return !this.fresh; -}); - -/** - * Check if the request was an _XMLHttpRequest_. - * - * @return {Boolean} - * @public - */ - -defineGetter(req, 'xhr', function xhr(){ - var val = this.get('X-Requested-With') || ''; - return val.toLowerCase() === 'xmlhttprequest'; -}); - -/** - * Helper function for creating a getter on an object. - * - * @param {Object} obj - * @param {String} name - * @param {Function} getter - * @private - */ -function defineGetter(obj, name, getter) { - Object.defineProperty(obj, name, { - configurable: true, - enumerable: true, - get: getter - }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/response.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/response.js deleted file mode 100644 index 641704b0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/response.js +++ /dev/null @@ -1,1053 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var contentDisposition = require('content-disposition'); -var deprecate = require('depd')('express'); -var escapeHtml = require('escape-html'); -var http = require('http'); -var isAbsolute = require('./utils').isAbsolute; -var onFinished = require('on-finished'); -var path = require('path'); -var merge = require('utils-merge'); -var sign = require('cookie-signature').sign; -var normalizeType = require('./utils').normalizeType; -var normalizeTypes = require('./utils').normalizeTypes; -var setCharset = require('./utils').setCharset; -var statusCodes = http.STATUS_CODES; -var cookie = require('cookie'); -var send = require('send'); -var extname = path.extname; -var mime = send.mime; -var resolve = path.resolve; -var vary = require('vary'); - -/** - * Response prototype. - */ - -var res = module.exports = { - __proto__: http.ServerResponse.prototype -}; - -/** - * Module variables. - * @private - */ - -var charsetRegExp = /;\s*charset\s*=/; - -/** - * Set status `code`. - * - * @param {Number} code - * @return {ServerResponse} - * @public - */ - -res.status = function status(code) { - this.statusCode = code; - return this; -}; - -/** - * Set Link header field with the given `links`. - * - * Examples: - * - * res.links({ - * next: 'http://api.example.com/users?page=2', - * last: 'http://api.example.com/users?page=5' - * }); - * - * @param {Object} links - * @return {ServerResponse} - * @public - */ - -res.links = function(links){ - var link = this.get('Link') || ''; - if (link) link += ', '; - return this.set('Link', link + Object.keys(links).map(function(rel){ - return '<' + links[rel] + '>; rel="' + rel + '"'; - }).join(', ')); -}; - -/** - * Send a response. - * - * Examples: - * - * res.send(new Buffer('wahoo')); - * res.send({ some: 'json' }); - * res.send('

      some html

      '); - * - * @param {string|number|boolean|object|Buffer} body - * @public - */ - -res.send = function send(body) { - var chunk = body; - var encoding; - var len; - var req = this.req; - var type; - - // settings - var app = this.app; - - // allow status / body - if (arguments.length === 2) { - // res.send(body, status) backwards compat - if (typeof arguments[0] !== 'number' && typeof arguments[1] === 'number') { - deprecate('res.send(body, status): Use res.status(status).send(body) instead'); - this.statusCode = arguments[1]; - } else { - deprecate('res.send(status, body): Use res.status(status).send(body) instead'); - this.statusCode = arguments[0]; - chunk = arguments[1]; - } - } - - // disambiguate res.send(status) and res.send(status, num) - if (typeof chunk === 'number' && arguments.length === 1) { - // res.send(status) will set status message as text string - if (!this.get('Content-Type')) { - this.type('txt'); - } - - deprecate('res.send(status): Use res.sendStatus(status) instead'); - this.statusCode = chunk; - chunk = statusCodes[chunk]; - } - - switch (typeof chunk) { - // string defaulting to html - case 'string': - if (!this.get('Content-Type')) { - this.type('html'); - } - break; - case 'boolean': - case 'number': - case 'object': - if (chunk === null) { - chunk = ''; - } else if (Buffer.isBuffer(chunk)) { - if (!this.get('Content-Type')) { - this.type('bin'); - } - } else { - return this.json(chunk); - } - break; - } - - // write strings in utf-8 - if (typeof chunk === 'string') { - encoding = 'utf8'; - type = this.get('Content-Type'); - - // reflect this in content-type - if (typeof type === 'string') { - this.set('Content-Type', setCharset(type, 'utf-8')); - } - } - - // populate Content-Length - if (chunk !== undefined) { - if (!Buffer.isBuffer(chunk)) { - // convert chunk to Buffer; saves later double conversions - chunk = new Buffer(chunk, encoding); - encoding = undefined; - } - - len = chunk.length; - this.set('Content-Length', len); - } - - // populate ETag - var etag; - var generateETag = len !== undefined && app.get('etag fn'); - if (typeof generateETag === 'function' && !this.get('ETag')) { - if ((etag = generateETag(chunk, encoding))) { - this.set('ETag', etag); - } - } - - // freshness - if (req.fresh) this.statusCode = 304; - - // strip irrelevant headers - if (204 == this.statusCode || 304 == this.statusCode) { - this.removeHeader('Content-Type'); - this.removeHeader('Content-Length'); - this.removeHeader('Transfer-Encoding'); - chunk = ''; - } - - if (req.method === 'HEAD') { - // skip body for HEAD - this.end(); - } else { - // respond - this.end(chunk, encoding); - } - - return this; -}; - -/** - * Send JSON response. - * - * Examples: - * - * res.json(null); - * res.json({ user: 'tj' }); - * - * @param {string|number|boolean|object} obj - * @public - */ - -res.json = function json(obj) { - var val = obj; - - // allow status / body - if (arguments.length === 2) { - // res.json(body, status) backwards compat - if (typeof arguments[1] === 'number') { - deprecate('res.json(obj, status): Use res.status(status).json(obj) instead'); - this.statusCode = arguments[1]; - } else { - deprecate('res.json(status, obj): Use res.status(status).json(obj) instead'); - this.statusCode = arguments[0]; - val = arguments[1]; - } - } - - // settings - var app = this.app; - var replacer = app.get('json replacer'); - var spaces = app.get('json spaces'); - var body = JSON.stringify(val, replacer, spaces); - - // content-type - if (!this.get('Content-Type')) { - this.set('Content-Type', 'application/json'); - } - - return this.send(body); -}; - -/** - * Send JSON response with JSONP callback support. - * - * Examples: - * - * res.jsonp(null); - * res.jsonp({ user: 'tj' }); - * - * @param {string|number|boolean|object} obj - * @public - */ - -res.jsonp = function jsonp(obj) { - var val = obj; - - // allow status / body - if (arguments.length === 2) { - // res.json(body, status) backwards compat - if (typeof arguments[1] === 'number') { - deprecate('res.jsonp(obj, status): Use res.status(status).json(obj) instead'); - this.statusCode = arguments[1]; - } else { - deprecate('res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead'); - this.statusCode = arguments[0]; - val = arguments[1]; - } - } - - // settings - var app = this.app; - var replacer = app.get('json replacer'); - var spaces = app.get('json spaces'); - var body = JSON.stringify(val, replacer, spaces); - var callback = this.req.query[app.get('jsonp callback name')]; - - // content-type - if (!this.get('Content-Type')) { - this.set('X-Content-Type-Options', 'nosniff'); - this.set('Content-Type', 'application/json'); - } - - // fixup callback - if (Array.isArray(callback)) { - callback = callback[0]; - } - - // jsonp - if (typeof callback === 'string' && callback.length !== 0) { - this.charset = 'utf-8'; - this.set('X-Content-Type-Options', 'nosniff'); - this.set('Content-Type', 'text/javascript'); - - // restrict callback charset - callback = callback.replace(/[^\[\]\w$.]/g, ''); - - // replace chars not allowed in JavaScript that are in JSON - body = body - .replace(/\u2028/g, '\\u2028') - .replace(/\u2029/g, '\\u2029'); - - // the /**/ is a specific security mitigation for "Rosetta Flash JSONP abuse" - // the typeof check is just to reduce client error noise - body = '/**/ typeof ' + callback + ' === \'function\' && ' + callback + '(' + body + ');'; - } - - return this.send(body); -}; - -/** - * Send given HTTP status code. - * - * Sets the response status to `statusCode` and the body of the - * response to the standard description from node's http.STATUS_CODES - * or the statusCode number if no description. - * - * Examples: - * - * res.sendStatus(200); - * - * @param {number} statusCode - * @public - */ - -res.sendStatus = function sendStatus(statusCode) { - var body = statusCodes[statusCode] || String(statusCode); - - this.statusCode = statusCode; - this.type('txt'); - - return this.send(body); -}; - -/** - * Transfer the file at the given `path`. - * - * Automatically sets the _Content-Type_ response header field. - * The callback `callback(err)` is invoked when the transfer is complete - * or when an error occurs. Be sure to check `res.sentHeader` - * if you wish to attempt responding, as the header and some data - * may have already been transferred. - * - * Options: - * - * - `maxAge` defaulting to 0 (can be string converted by `ms`) - * - `root` root directory for relative filenames - * - `headers` object of headers to serve with file - * - `dotfiles` serve dotfiles, defaulting to false; can be `"allow"` to send them - * - * Other options are passed along to `send`. - * - * Examples: - * - * The following example illustrates how `res.sendFile()` may - * be used as an alternative for the `static()` middleware for - * dynamic situations. The code backing `res.sendFile()` is actually - * the same code, so HTTP cache support etc is identical. - * - * app.get('/user/:uid/photos/:file', function(req, res){ - * var uid = req.params.uid - * , file = req.params.file; - * - * req.user.mayViewFilesFrom(uid, function(yes){ - * if (yes) { - * res.sendFile('/uploads/' + uid + '/' + file); - * } else { - * res.send(403, 'Sorry! you cant see that.'); - * } - * }); - * }); - * - * @public - */ - -res.sendFile = function sendFile(path, options, callback) { - var done = callback; - var req = this.req; - var res = this; - var next = req.next; - var opts = options || {}; - - if (!path) { - throw new TypeError('path argument is required to res.sendFile'); - } - - // support function as second arg - if (typeof options === 'function') { - done = options; - opts = {}; - } - - if (!opts.root && !isAbsolute(path)) { - throw new TypeError('path must be absolute or specify root to res.sendFile'); - } - - // create file stream - var pathname = encodeURI(path); - var file = send(req, pathname, opts); - - // transfer - sendfile(res, file, opts, function (err) { - if (done) return done(err); - if (err && err.code === 'EISDIR') return next(); - - // next() all but write errors - if (err && err.code !== 'ECONNABORTED' && err.syscall !== 'write') { - next(err); - } - }); -}; - -/** - * Transfer the file at the given `path`. - * - * Automatically sets the _Content-Type_ response header field. - * The callback `callback(err)` is invoked when the transfer is complete - * or when an error occurs. Be sure to check `res.sentHeader` - * if you wish to attempt responding, as the header and some data - * may have already been transferred. - * - * Options: - * - * - `maxAge` defaulting to 0 (can be string converted by `ms`) - * - `root` root directory for relative filenames - * - `headers` object of headers to serve with file - * - `dotfiles` serve dotfiles, defaulting to false; can be `"allow"` to send them - * - * Other options are passed along to `send`. - * - * Examples: - * - * The following example illustrates how `res.sendfile()` may - * be used as an alternative for the `static()` middleware for - * dynamic situations. The code backing `res.sendfile()` is actually - * the same code, so HTTP cache support etc is identical. - * - * app.get('/user/:uid/photos/:file', function(req, res){ - * var uid = req.params.uid - * , file = req.params.file; - * - * req.user.mayViewFilesFrom(uid, function(yes){ - * if (yes) { - * res.sendfile('/uploads/' + uid + '/' + file); - * } else { - * res.send(403, 'Sorry! you cant see that.'); - * } - * }); - * }); - * - * @public - */ - -res.sendfile = function (path, options, callback) { - var done = callback; - var req = this.req; - var res = this; - var next = req.next; - var opts = options || {}; - - // support function as second arg - if (typeof options === 'function') { - done = options; - opts = {}; - } - - // create file stream - var file = send(req, path, opts); - - // transfer - sendfile(res, file, opts, function (err) { - if (done) return done(err); - if (err && err.code === 'EISDIR') return next(); - - // next() all but write errors - if (err && err.code !== 'ECONNABORT' && err.syscall !== 'write') { - next(err); - } - }); -}; - -res.sendfile = deprecate.function(res.sendfile, - 'res.sendfile: Use res.sendFile instead'); - -/** - * Transfer the file at the given `path` as an attachment. - * - * Optionally providing an alternate attachment `filename`, - * and optional callback `callback(err)`. The callback is invoked - * when the data transfer is complete, or when an error has - * ocurred. Be sure to check `res.headersSent` if you plan to respond. - * - * This method uses `res.sendfile()`. - * - * @public - */ - -res.download = function download(path, filename, callback) { - var done = callback; - var name = filename; - - // support function as second arg - if (typeof filename === 'function') { - done = filename; - name = null; - } - - // set Content-Disposition when file is sent - var headers = { - 'Content-Disposition': contentDisposition(name || path) - }; - - // Resolve the full path for sendFile - var fullPath = resolve(path); - - return this.sendFile(fullPath, { headers: headers }, done); -}; - -/** - * Set _Content-Type_ response header with `type` through `mime.lookup()` - * when it does not contain "/", or set the Content-Type to `type` otherwise. - * - * Examples: - * - * res.type('.html'); - * res.type('html'); - * res.type('json'); - * res.type('application/json'); - * res.type('png'); - * - * @param {String} type - * @return {ServerResponse} for chaining - * @public - */ - -res.contentType = -res.type = function contentType(type) { - var ct = type.indexOf('/') === -1 - ? mime.lookup(type) - : type; - - return this.set('Content-Type', ct); -}; - -/** - * Respond to the Acceptable formats using an `obj` - * of mime-type callbacks. - * - * This method uses `req.accepted`, an array of - * acceptable types ordered by their quality values. - * When "Accept" is not present the _first_ callback - * is invoked, otherwise the first match is used. When - * no match is performed the server responds with - * 406 "Not Acceptable". - * - * Content-Type is set for you, however if you choose - * you may alter this within the callback using `res.type()` - * or `res.set('Content-Type', ...)`. - * - * res.format({ - * 'text/plain': function(){ - * res.send('hey'); - * }, - * - * 'text/html': function(){ - * res.send('

      hey

      '); - * }, - * - * 'appliation/json': function(){ - * res.send({ message: 'hey' }); - * } - * }); - * - * In addition to canonicalized MIME types you may - * also use extnames mapped to these types: - * - * res.format({ - * text: function(){ - * res.send('hey'); - * }, - * - * html: function(){ - * res.send('

      hey

      '); - * }, - * - * json: function(){ - * res.send({ message: 'hey' }); - * } - * }); - * - * By default Express passes an `Error` - * with a `.status` of 406 to `next(err)` - * if a match is not made. If you provide - * a `.default` callback it will be invoked - * instead. - * - * @param {Object} obj - * @return {ServerResponse} for chaining - * @public - */ - -res.format = function(obj){ - var req = this.req; - var next = req.next; - - var fn = obj.default; - if (fn) delete obj.default; - var keys = Object.keys(obj); - - var key = keys.length > 0 - ? req.accepts(keys) - : false; - - this.vary("Accept"); - - if (key) { - this.set('Content-Type', normalizeType(key).value); - obj[key](req, this, next); - } else if (fn) { - fn(); - } else { - var err = new Error('Not Acceptable'); - err.status = err.statusCode = 406; - err.types = normalizeTypes(keys).map(function(o){ return o.value }); - next(err); - } - - return this; -}; - -/** - * Set _Content-Disposition_ header to _attachment_ with optional `filename`. - * - * @param {String} filename - * @return {ServerResponse} - * @public - */ - -res.attachment = function attachment(filename) { - if (filename) { - this.type(extname(filename)); - } - - this.set('Content-Disposition', contentDisposition(filename)); - - return this; -}; - -/** - * Append additional header `field` with value `val`. - * - * Example: - * - * res.append('Link', ['', '']); - * res.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly'); - * res.append('Warning', '199 Miscellaneous warning'); - * - * @param {String} field - * @param {String|Array} val - * @return {ServerResponse} for chaining - * @public - */ - -res.append = function append(field, val) { - var prev = this.get(field); - var value = val; - - if (prev) { - // concat the new and prev vals - value = Array.isArray(prev) ? prev.concat(val) - : Array.isArray(val) ? [prev].concat(val) - : [prev, val]; - } - - return this.set(field, value); -}; - -/** - * Set header `field` to `val`, or pass - * an object of header fields. - * - * Examples: - * - * res.set('Foo', ['bar', 'baz']); - * res.set('Accept', 'application/json'); - * res.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' }); - * - * Aliased as `res.header()`. - * - * @param {String|Object} field - * @param {String|Array} val - * @return {ServerResponse} for chaining - * @public - */ - -res.set = -res.header = function header(field, val) { - if (arguments.length === 2) { - var value = Array.isArray(val) - ? val.map(String) - : String(val); - - // add charset to content-type - if (field.toLowerCase() === 'content-type' && !charsetRegExp.test(value)) { - var charset = mime.charsets.lookup(value.split(';')[0]); - if (charset) value += '; charset=' + charset.toLowerCase(); - } - - this.setHeader(field, value); - } else { - for (var key in field) { - this.set(key, field[key]); - } - } - return this; -}; - -/** - * Get value for header `field`. - * - * @param {String} field - * @return {String} - * @public - */ - -res.get = function(field){ - return this.getHeader(field); -}; - -/** - * Clear cookie `name`. - * - * @param {String} name - * @param {Object} options - * @return {ServerResponse} for chaining - * @public - */ - -res.clearCookie = function clearCookie(name, options) { - var opts = merge({ expires: new Date(1), path: '/' }, options); - - return this.cookie(name, '', opts); -}; - -/** - * Set cookie `name` to `value`, with the given `options`. - * - * Options: - * - * - `maxAge` max-age in milliseconds, converted to `expires` - * - `signed` sign the cookie - * - `path` defaults to "/" - * - * Examples: - * - * // "Remember Me" for 15 minutes - * res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true }); - * - * // save as above - * res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true }) - * - * @param {String} name - * @param {String|Object} value - * @param {Options} options - * @return {ServerResponse} for chaining - * @public - */ - -res.cookie = function (name, value, options) { - var opts = merge({}, options); - var secret = this.req.secret; - var signed = opts.signed; - - if (signed && !secret) { - throw new Error('cookieParser("secret") required for signed cookies'); - } - - var val = typeof value === 'object' - ? 'j:' + JSON.stringify(value) - : String(value); - - if (signed) { - val = 's:' + sign(val, secret); - } - - if ('maxAge' in opts) { - opts.expires = new Date(Date.now() + opts.maxAge); - opts.maxAge /= 1000; - } - - if (opts.path == null) { - opts.path = '/'; - } - - this.append('Set-Cookie', cookie.serialize(name, String(val), opts)); - - return this; -}; - -/** - * Set the location header to `url`. - * - * The given `url` can also be "back", which redirects - * to the _Referrer_ or _Referer_ headers or "/". - * - * Examples: - * - * res.location('/foo/bar').; - * res.location('http://example.com'); - * res.location('../login'); - * - * @param {String} url - * @return {ServerResponse} for chaining - * @public - */ - -res.location = function location(url) { - var loc = url; - - // "back" is an alias for the referrer - if (url === 'back') { - loc = this.req.get('Referrer') || '/'; - } - - // set location - this.set('Location', loc); - return this; -}; - -/** - * Redirect to the given `url` with optional response `status` - * defaulting to 302. - * - * The resulting `url` is determined by `res.location()`, so - * it will play nicely with mounted apps, relative paths, - * `"back"` etc. - * - * Examples: - * - * res.redirect('/foo/bar'); - * res.redirect('http://example.com'); - * res.redirect(301, 'http://example.com'); - * res.redirect('../login'); // /blog/post/1 -> /blog/login - * - * @public - */ - -res.redirect = function redirect(url) { - var address = url; - var body; - var status = 302; - - // allow status / url - if (arguments.length === 2) { - if (typeof arguments[0] === 'number') { - status = arguments[0]; - address = arguments[1]; - } else { - deprecate('res.redirect(url, status): Use res.redirect(status, url) instead'); - status = arguments[1]; - } - } - - // Set location header - this.location(address); - address = this.get('Location'); - - // Support text/{plain,html} by default - this.format({ - text: function(){ - body = statusCodes[status] + '. Redirecting to ' + encodeURI(address); - }, - - html: function(){ - var u = escapeHtml(address); - body = '

      ' + statusCodes[status] + '. Redirecting to ' + u + '

      '; - }, - - default: function(){ - body = ''; - } - }); - - // Respond - this.statusCode = status; - this.set('Content-Length', Buffer.byteLength(body)); - - if (this.req.method === 'HEAD') { - this.end(); - } else { - this.end(body); - } -}; - -/** - * Add `field` to Vary. If already present in the Vary set, then - * this call is simply ignored. - * - * @param {Array|String} field - * @return {ServerResponse} for chaining - * @public - */ - -res.vary = function(field){ - // checks for back-compat - if (!field || (Array.isArray(field) && !field.length)) { - deprecate('res.vary(): Provide a field name'); - return this; - } - - vary(this, field); - - return this; -}; - -/** - * Render `view` with the given `options` and optional callback `fn`. - * When a callback function is given a response will _not_ be made - * automatically, otherwise a response of _200_ and _text/html_ is given. - * - * Options: - * - * - `cache` boolean hinting to the engine it should cache - * - `filename` filename of the view being rendered - * - * @public - */ - -res.render = function render(view, options, callback) { - var app = this.req.app; - var done = callback; - var opts = options || {}; - var req = this.req; - var self = this; - - // support callback function as second arg - if (typeof options === 'function') { - done = options; - opts = {}; - } - - // merge res.locals - opts._locals = self.locals; - - // default callback to respond - done = done || function (err, str) { - if (err) return req.next(err); - self.send(str); - }; - - // render - app.render(view, opts, done); -}; - -// pipe the send file stream -function sendfile(res, file, options, callback) { - var done = false; - var streaming; - - // request aborted - function onaborted() { - if (done) return; - done = true; - - var err = new Error('Request aborted'); - err.code = 'ECONNABORTED'; - callback(err); - } - - // directory - function ondirectory() { - if (done) return; - done = true; - - var err = new Error('EISDIR, read'); - err.code = 'EISDIR'; - callback(err); - } - - // errors - function onerror(err) { - if (done) return; - done = true; - callback(err); - } - - // ended - function onend() { - if (done) return; - done = true; - callback(); - } - - // file - function onfile() { - streaming = false; - } - - // finished - function onfinish(err) { - if (err && err.code === 'ECONNRESET') return onaborted(); - if (err) return onerror(err); - if (done) return; - - setImmediate(function () { - if (streaming !== false && !done) { - onaborted(); - return; - } - - if (done) return; - done = true; - callback(); - }); - } - - // streaming - function onstream() { - streaming = true; - } - - file.on('directory', ondirectory); - file.on('end', onend); - file.on('error', onerror); - file.on('file', onfile); - file.on('stream', onstream); - onFinished(res, onfinish); - - if (options.headers) { - // set headers on successful transfer - file.on('headers', function headers(res) { - var obj = options.headers; - var keys = Object.keys(obj); - - for (var i = 0; i < keys.length; i++) { - var k = keys[i]; - res.setHeader(k, obj[k]); - } - }); - } - - // pipe - file.pipe(res); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/router/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/router/index.js deleted file mode 100644 index 504ed9ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/router/index.js +++ /dev/null @@ -1,645 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var Route = require('./route'); -var Layer = require('./layer'); -var methods = require('methods'); -var mixin = require('utils-merge'); -var debug = require('debug')('express:router'); -var deprecate = require('depd')('express'); -var flatten = require('array-flatten'); -var parseUrl = require('parseurl'); - -/** - * Module variables. - * @private - */ - -var objectRegExp = /^\[object (\S+)\]$/; -var slice = Array.prototype.slice; -var toString = Object.prototype.toString; - -/** - * Initialize a new `Router` with the given `options`. - * - * @param {Object} options - * @return {Router} which is an callable function - * @public - */ - -var proto = module.exports = function(options) { - var opts = options || {}; - - function router(req, res, next) { - router.handle(req, res, next); - } - - // mixin Router class functions - router.__proto__ = proto; - - router.params = {}; - router._params = []; - router.caseSensitive = opts.caseSensitive; - router.mergeParams = opts.mergeParams; - router.strict = opts.strict; - router.stack = []; - - return router; -}; - -/** - * Map the given param placeholder `name`(s) to the given callback. - * - * Parameter mapping is used to provide pre-conditions to routes - * which use normalized placeholders. For example a _:user_id_ parameter - * could automatically load a user's information from the database without - * any additional code, - * - * The callback uses the same signature as middleware, the only difference - * being that the value of the placeholder is passed, in this case the _id_ - * of the user. Once the `next()` function is invoked, just like middleware - * it will continue on to execute the route, or subsequent parameter functions. - * - * Just like in middleware, you must either respond to the request or call next - * to avoid stalling the request. - * - * app.param('user_id', function(req, res, next, id){ - * User.find(id, function(err, user){ - * if (err) { - * return next(err); - * } else if (!user) { - * return next(new Error('failed to load user')); - * } - * req.user = user; - * next(); - * }); - * }); - * - * @param {String} name - * @param {Function} fn - * @return {app} for chaining - * @public - */ - -proto.param = function param(name, fn) { - // param logic - if (typeof name === 'function') { - deprecate('router.param(fn): Refactor to use path params'); - this._params.push(name); - return; - } - - // apply param functions - var params = this._params; - var len = params.length; - var ret; - - if (name[0] === ':') { - deprecate('router.param(' + JSON.stringify(name) + ', fn): Use router.param(' + JSON.stringify(name.substr(1)) + ', fn) instead'); - name = name.substr(1); - } - - for (var i = 0; i < len; ++i) { - if (ret = params[i](name, fn)) { - fn = ret; - } - } - - // ensure we end up with a - // middleware function - if ('function' != typeof fn) { - throw new Error('invalid param() call for ' + name + ', got ' + fn); - } - - (this.params[name] = this.params[name] || []).push(fn); - return this; -}; - -/** - * Dispatch a req, res into the router. - * @private - */ - -proto.handle = function handle(req, res, out) { - var self = this; - - debug('dispatching %s %s', req.method, req.url); - - var search = 1 + req.url.indexOf('?'); - var pathlength = search ? search - 1 : req.url.length; - var fqdn = req.url[0] !== '/' && 1 + req.url.substr(0, pathlength).indexOf('://'); - var protohost = fqdn ? req.url.substr(0, req.url.indexOf('/', 2 + fqdn)) : ''; - var idx = 0; - var removed = ''; - var slashAdded = false; - var paramcalled = {}; - - // store options for OPTIONS request - // only used if OPTIONS request - var options = []; - - // middleware and routes - var stack = self.stack; - - // manage inter-router variables - var parentParams = req.params; - var parentUrl = req.baseUrl || ''; - var done = restore(out, req, 'baseUrl', 'next', 'params'); - - // setup next layer - req.next = next; - - // for options requests, respond with a default if nothing else responds - if (req.method === 'OPTIONS') { - done = wrap(done, function(old, err) { - if (err || options.length === 0) return old(err); - sendOptionsResponse(res, options, old); - }); - } - - // setup basic req values - req.baseUrl = parentUrl; - req.originalUrl = req.originalUrl || req.url; - - next(); - - function next(err) { - var layerError = err === 'route' - ? null - : err; - - // remove added slash - if (slashAdded) { - req.url = req.url.substr(1); - slashAdded = false; - } - - // restore altered req.url - if (removed.length !== 0) { - req.baseUrl = parentUrl; - req.url = protohost + removed + req.url.substr(protohost.length); - removed = ''; - } - - // no more matching layers - if (idx >= stack.length) { - setImmediate(done, layerError); - return; - } - - // get pathname of request - var path = getPathname(req); - - if (path == null) { - return done(layerError); - } - - // find next matching layer - var layer; - var match; - var route; - - while (match !== true && idx < stack.length) { - layer = stack[idx++]; - match = matchLayer(layer, path); - route = layer.route; - - if (typeof match !== 'boolean') { - // hold on to layerError - layerError = layerError || match; - } - - if (match !== true) { - continue; - } - - if (!route) { - // process non-route handlers normally - continue; - } - - if (layerError) { - // routes do not match with a pending error - match = false; - continue; - } - - var method = req.method; - var has_method = route._handles_method(method); - - // build up automatic options response - if (!has_method && method === 'OPTIONS') { - appendMethods(options, route._options()); - } - - // don't even bother matching route - if (!has_method && method !== 'HEAD') { - match = false; - continue; - } - } - - // no match - if (match !== true) { - return done(layerError); - } - - // store route for dispatch on change - if (route) { - req.route = route; - } - - // Capture one-time layer values - req.params = self.mergeParams - ? mergeParams(layer.params, parentParams) - : layer.params; - var layerPath = layer.path; - - // this should be done for the layer - self.process_params(layer, paramcalled, req, res, function (err) { - if (err) { - return next(layerError || err); - } - - if (route) { - return layer.handle_request(req, res, next); - } - - trim_prefix(layer, layerError, layerPath, path); - }); - } - - function trim_prefix(layer, layerError, layerPath, path) { - var c = path[layerPath.length]; - if (c && '/' !== c && '.' !== c) return next(layerError); - - // Trim off the part of the url that matches the route - // middleware (.use stuff) needs to have the path stripped - if (layerPath.length !== 0) { - debug('trim prefix (%s) from url %s', layerPath, req.url); - removed = layerPath; - req.url = protohost + req.url.substr(protohost.length + removed.length); - - // Ensure leading slash - if (!fqdn && req.url[0] !== '/') { - req.url = '/' + req.url; - slashAdded = true; - } - - // Setup base URL (no trailing slash) - req.baseUrl = parentUrl + (removed[removed.length - 1] === '/' - ? removed.substring(0, removed.length - 1) - : removed); - } - - debug('%s %s : %s', layer.name, layerPath, req.originalUrl); - - if (layerError) { - layer.handle_error(layerError, req, res, next); - } else { - layer.handle_request(req, res, next); - } - } -}; - -/** - * Process any parameters for the layer. - * @private - */ - -proto.process_params = function process_params(layer, called, req, res, done) { - var params = this.params; - - // captured parameters from the layer, keys and values - var keys = layer.keys; - - // fast track - if (!keys || keys.length === 0) { - return done(); - } - - var i = 0; - var name; - var paramIndex = 0; - var key; - var paramVal; - var paramCallbacks; - var paramCalled; - - // process params in order - // param callbacks can be async - function param(err) { - if (err) { - return done(err); - } - - if (i >= keys.length ) { - return done(); - } - - paramIndex = 0; - key = keys[i++]; - - if (!key) { - return done(); - } - - name = key.name; - paramVal = req.params[name]; - paramCallbacks = params[name]; - paramCalled = called[name]; - - if (paramVal === undefined || !paramCallbacks) { - return param(); - } - - // param previously called with same value or error occurred - if (paramCalled && (paramCalled.match === paramVal - || (paramCalled.error && paramCalled.error !== 'route'))) { - // restore value - req.params[name] = paramCalled.value; - - // next param - return param(paramCalled.error); - } - - called[name] = paramCalled = { - error: null, - match: paramVal, - value: paramVal - }; - - paramCallback(); - } - - // single param callbacks - function paramCallback(err) { - var fn = paramCallbacks[paramIndex++]; - - // store updated value - paramCalled.value = req.params[key.name]; - - if (err) { - // store error - paramCalled.error = err; - param(err); - return; - } - - if (!fn) return param(); - - try { - fn(req, res, paramCallback, paramVal, key.name); - } catch (e) { - paramCallback(e); - } - } - - param(); -}; - -/** - * Use the given middleware function, with optional path, defaulting to "/". - * - * Use (like `.all`) will run for any http METHOD, but it will not add - * handlers for those methods so OPTIONS requests will not consider `.use` - * functions even if they could respond. - * - * The other difference is that _route_ path is stripped and not visible - * to the handler function. The main effect of this feature is that mounted - * handlers can operate without any code changes regardless of the "prefix" - * pathname. - * - * @public - */ - -proto.use = function use(fn) { - var offset = 0; - var path = '/'; - - // default path to '/' - // disambiguate router.use([fn]) - if (typeof fn !== 'function') { - var arg = fn; - - while (Array.isArray(arg) && arg.length !== 0) { - arg = arg[0]; - } - - // first arg is the path - if (typeof arg !== 'function') { - offset = 1; - path = fn; - } - } - - var callbacks = flatten(slice.call(arguments, offset)); - - if (callbacks.length === 0) { - throw new TypeError('Router.use() requires middleware functions'); - } - - for (var i = 0; i < callbacks.length; i++) { - var fn = callbacks[i]; - - if (typeof fn !== 'function') { - throw new TypeError('Router.use() requires middleware function but got a ' + gettype(fn)); - } - - // add the middleware - debug('use %s %s', path, fn.name || ''); - - var layer = new Layer(path, { - sensitive: this.caseSensitive, - strict: false, - end: false - }, fn); - - layer.route = undefined; - - this.stack.push(layer); - } - - return this; -}; - -/** - * Create a new Route for the given path. - * - * Each route contains a separate middleware stack and VERB handlers. - * - * See the Route api documentation for details on adding handlers - * and middleware to routes. - * - * @param {String} path - * @return {Route} - * @public - */ - -proto.route = function route(path) { - var route = new Route(path); - - var layer = new Layer(path, { - sensitive: this.caseSensitive, - strict: this.strict, - end: true - }, route.dispatch.bind(route)); - - layer.route = route; - - this.stack.push(layer); - return route; -}; - -// create Router#VERB functions -methods.concat('all').forEach(function(method){ - proto[method] = function(path){ - var route = this.route(path) - route[method].apply(route, slice.call(arguments, 1)); - return this; - }; -}); - -// append methods to a list of methods -function appendMethods(list, addition) { - for (var i = 0; i < addition.length; i++) { - var method = addition[i]; - if (list.indexOf(method) === -1) { - list.push(method); - } - } -} - -// get pathname of request -function getPathname(req) { - try { - return parseUrl(req).pathname; - } catch (err) { - return undefined; - } -} - -// get type for error message -function gettype(obj) { - var type = typeof obj; - - if (type !== 'object') { - return type; - } - - // inspect [[Class]] for objects - return toString.call(obj) - .replace(objectRegExp, '$1'); -} - -/** - * Match path to a layer. - * - * @param {Layer} layer - * @param {string} path - * @private - */ - -function matchLayer(layer, path) { - try { - return layer.match(path); - } catch (err) { - return err; - } -} - -// merge params with parent params -function mergeParams(params, parent) { - if (typeof parent !== 'object' || !parent) { - return params; - } - - // make copy of parent for base - var obj = mixin({}, parent); - - // simple non-numeric merging - if (!(0 in params) || !(0 in parent)) { - return mixin(obj, params); - } - - var i = 0; - var o = 0; - - // determine numeric gaps - while (i in params) { - i++; - } - - while (o in parent) { - o++; - } - - // offset numeric indices in params before merge - for (i--; i >= 0; i--) { - params[i + o] = params[i]; - - // create holes for the merge when necessary - if (i < o) { - delete params[i]; - } - } - - return mixin(obj, params); -} - -// restore obj props after function -function restore(fn, obj) { - var props = new Array(arguments.length - 2); - var vals = new Array(arguments.length - 2); - - for (var i = 0; i < props.length; i++) { - props[i] = arguments[i + 2]; - vals[i] = obj[props[i]]; - } - - return function(err){ - // restore vals - for (var i = 0; i < props.length; i++) { - obj[props[i]] = vals[i]; - } - - return fn.apply(this, arguments); - }; -} - -// send an OPTIONS response -function sendOptionsResponse(res, options, next) { - try { - var body = options.join(','); - res.set('Allow', body); - res.send(body); - } catch (err) { - next(err); - } -} - -// wrap a function -function wrap(old, fn) { - return function proxy() { - var args = new Array(arguments.length + 1); - - args[0] = old; - for (var i = 0, len = arguments.length; i < len; i++) { - args[i + 1] = arguments[i]; - } - - fn.apply(this, args); - }; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/router/layer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/router/layer.js deleted file mode 100644 index fe9210cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/router/layer.js +++ /dev/null @@ -1,176 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var pathRegexp = require('path-to-regexp'); -var debug = require('debug')('express:router:layer'); - -/** - * Module variables. - * @private - */ - -var hasOwnProperty = Object.prototype.hasOwnProperty; - -/** - * Module exports. - * @public - */ - -module.exports = Layer; - -function Layer(path, options, fn) { - if (!(this instanceof Layer)) { - return new Layer(path, options, fn); - } - - debug('new %s', path); - var opts = options || {}; - - this.handle = fn; - this.name = fn.name || ''; - this.params = undefined; - this.path = undefined; - this.regexp = pathRegexp(path, this.keys = [], opts); - - if (path === '/' && opts.end === false) { - this.regexp.fast_slash = true; - } -} - -/** - * Handle the error for the layer. - * - * @param {Error} error - * @param {Request} req - * @param {Response} res - * @param {function} next - * @api private - */ - -Layer.prototype.handle_error = function handle_error(error, req, res, next) { - var fn = this.handle; - - if (fn.length !== 4) { - // not a standard error handler - return next(error); - } - - try { - fn(error, req, res, next); - } catch (err) { - next(err); - } -}; - -/** - * Handle the request for the layer. - * - * @param {Request} req - * @param {Response} res - * @param {function} next - * @api private - */ - -Layer.prototype.handle_request = function handle(req, res, next) { - var fn = this.handle; - - if (fn.length > 3) { - // not a standard request handler - return next(); - } - - try { - fn(req, res, next); - } catch (err) { - next(err); - } -}; - -/** - * Check if this route matches `path`, if so - * populate `.params`. - * - * @param {String} path - * @return {Boolean} - * @api private - */ - -Layer.prototype.match = function match(path) { - if (path == null) { - // no path, nothing matches - this.params = undefined; - this.path = undefined; - return false; - } - - if (this.regexp.fast_slash) { - // fast path non-ending match for / (everything matches) - this.params = {}; - this.path = ''; - return true; - } - - var m = this.regexp.exec(path); - - if (!m) { - this.params = undefined; - this.path = undefined; - return false; - } - - // store values - this.params = {}; - this.path = m[0]; - - var keys = this.keys; - var params = this.params; - - for (var i = 1; i < m.length; i++) { - var key = keys[i - 1]; - var prop = key.name; - var val = decode_param(m[i]); - - if (val !== undefined || !(hasOwnProperty.call(params, prop))) { - params[prop] = val; - } - } - - return true; -}; - -/** - * Decode param value. - * - * @param {string} val - * @return {string} - * @private - */ - -function decode_param(val) { - if (typeof val !== 'string' || val.length === 0) { - return val; - } - - try { - return decodeURIComponent(val); - } catch (err) { - if (err instanceof URIError) { - err.message = 'Failed to decode param \'' + val + '\''; - err.status = err.statusCode = 400; - } - - throw err; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/router/route.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/router/route.js deleted file mode 100644 index 2788d7b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/router/route.js +++ /dev/null @@ -1,210 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var debug = require('debug')('express:router:route'); -var flatten = require('array-flatten'); -var Layer = require('./layer'); -var methods = require('methods'); - -/** - * Module variables. - * @private - */ - -var slice = Array.prototype.slice; -var toString = Object.prototype.toString; - -/** - * Module exports. - * @public - */ - -module.exports = Route; - -/** - * Initialize `Route` with the given `path`, - * - * @param {String} path - * @public - */ - -function Route(path) { - this.path = path; - this.stack = []; - - debug('new %s', path); - - // route handlers for various http methods - this.methods = {}; -} - -/** - * Determine if the route handles a given method. - * @private - */ - -Route.prototype._handles_method = function _handles_method(method) { - if (this.methods._all) { - return true; - } - - var name = method.toLowerCase(); - - if (name === 'head' && !this.methods['head']) { - name = 'get'; - } - - return Boolean(this.methods[name]); -}; - -/** - * @return {Array} supported HTTP methods - * @private - */ - -Route.prototype._options = function _options() { - var methods = Object.keys(this.methods); - - // append automatic head - if (this.methods.get && !this.methods.head) { - methods.push('head'); - } - - for (var i = 0; i < methods.length; i++) { - // make upper case - methods[i] = methods[i].toUpperCase(); - } - - return methods; -}; - -/** - * dispatch req, res into this route - * @private - */ - -Route.prototype.dispatch = function dispatch(req, res, done) { - var idx = 0; - var stack = this.stack; - if (stack.length === 0) { - return done(); - } - - var method = req.method.toLowerCase(); - if (method === 'head' && !this.methods['head']) { - method = 'get'; - } - - req.route = this; - - next(); - - function next(err) { - if (err && err === 'route') { - return done(); - } - - var layer = stack[idx++]; - if (!layer) { - return done(err); - } - - if (layer.method && layer.method !== method) { - return next(err); - } - - if (err) { - layer.handle_error(err, req, res, next); - } else { - layer.handle_request(req, res, next); - } - } -}; - -/** - * Add a handler for all HTTP verbs to this route. - * - * Behaves just like middleware and can respond or call `next` - * to continue processing. - * - * You can use multiple `.all` call to add multiple handlers. - * - * function check_something(req, res, next){ - * next(); - * }; - * - * function validate_user(req, res, next){ - * next(); - * }; - * - * route - * .all(validate_user) - * .all(check_something) - * .get(function(req, res, next){ - * res.send('hello world'); - * }); - * - * @param {function} handler - * @return {Route} for chaining - * @api public - */ - -Route.prototype.all = function all() { - var handles = flatten(slice.call(arguments)); - - for (var i = 0; i < handles.length; i++) { - var handle = handles[i]; - - if (typeof handle !== 'function') { - var type = toString.call(handle); - var msg = 'Route.all() requires callback functions but got a ' + type; - throw new TypeError(msg); - } - - var layer = Layer('/', {}, handle); - layer.method = undefined; - - this.methods._all = true; - this.stack.push(layer); - } - - return this; -}; - -methods.forEach(function(method){ - Route.prototype[method] = function(){ - var handles = flatten(slice.call(arguments)); - - for (var i = 0; i < handles.length; i++) { - var handle = handles[i]; - - if (typeof handle !== 'function') { - var type = toString.call(handle); - var msg = 'Route.' + method + '() requires callback functions but got a ' + type; - throw new Error(msg); - } - - debug('%s %s', method, this.path); - - var layer = Layer('/', {}, handle); - layer.method = method; - - this.methods[method] = true; - this.stack.push(layer); - } - - return this; - }; -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/utils.js deleted file mode 100644 index 3d54247a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/utils.js +++ /dev/null @@ -1,300 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @api private - */ - -var contentDisposition = require('content-disposition'); -var contentType = require('content-type'); -var deprecate = require('depd')('express'); -var flatten = require('array-flatten'); -var mime = require('send').mime; -var basename = require('path').basename; -var etag = require('etag'); -var proxyaddr = require('proxy-addr'); -var qs = require('qs'); -var querystring = require('querystring'); - -/** - * Return strong ETag for `body`. - * - * @param {String|Buffer} body - * @param {String} [encoding] - * @return {String} - * @api private - */ - -exports.etag = function (body, encoding) { - var buf = !Buffer.isBuffer(body) - ? new Buffer(body, encoding) - : body; - - return etag(buf, {weak: false}); -}; - -/** - * Return weak ETag for `body`. - * - * @param {String|Buffer} body - * @param {String} [encoding] - * @return {String} - * @api private - */ - -exports.wetag = function wetag(body, encoding){ - var buf = !Buffer.isBuffer(body) - ? new Buffer(body, encoding) - : body; - - return etag(buf, {weak: true}); -}; - -/** - * Check if `path` looks absolute. - * - * @param {String} path - * @return {Boolean} - * @api private - */ - -exports.isAbsolute = function(path){ - if ('/' == path[0]) return true; - if (':' == path[1] && '\\' == path[2]) return true; - if ('\\\\' == path.substring(0, 2)) return true; // Microsoft Azure absolute path -}; - -/** - * Flatten the given `arr`. - * - * @param {Array} arr - * @return {Array} - * @api private - */ - -exports.flatten = deprecate.function(flatten, - 'utils.flatten: use array-flatten npm module instead'); - -/** - * Normalize the given `type`, for example "html" becomes "text/html". - * - * @param {String} type - * @return {Object} - * @api private - */ - -exports.normalizeType = function(type){ - return ~type.indexOf('/') - ? acceptParams(type) - : { value: mime.lookup(type), params: {} }; -}; - -/** - * Normalize `types`, for example "html" becomes "text/html". - * - * @param {Array} types - * @return {Array} - * @api private - */ - -exports.normalizeTypes = function(types){ - var ret = []; - - for (var i = 0; i < types.length; ++i) { - ret.push(exports.normalizeType(types[i])); - } - - return ret; -}; - -/** - * Generate Content-Disposition header appropriate for the filename. - * non-ascii filenames are urlencoded and a filename* parameter is added - * - * @param {String} filename - * @return {String} - * @api private - */ - -exports.contentDisposition = deprecate.function(contentDisposition, - 'utils.contentDisposition: use content-disposition npm module instead'); - -/** - * Parse accept params `str` returning an - * object with `.value`, `.quality` and `.params`. - * also includes `.originalIndex` for stable sorting - * - * @param {String} str - * @return {Object} - * @api private - */ - -function acceptParams(str, index) { - var parts = str.split(/ *; */); - var ret = { value: parts[0], quality: 1, params: {}, originalIndex: index }; - - for (var i = 1; i < parts.length; ++i) { - var pms = parts[i].split(/ *= */); - if ('q' == pms[0]) { - ret.quality = parseFloat(pms[1]); - } else { - ret.params[pms[0]] = pms[1]; - } - } - - return ret; -} - -/** - * Compile "etag" value to function. - * - * @param {Boolean|String|Function} val - * @return {Function} - * @api private - */ - -exports.compileETag = function(val) { - var fn; - - if (typeof val === 'function') { - return val; - } - - switch (val) { - case true: - fn = exports.wetag; - break; - case false: - break; - case 'strong': - fn = exports.etag; - break; - case 'weak': - fn = exports.wetag; - break; - default: - throw new TypeError('unknown value for etag function: ' + val); - } - - return fn; -} - -/** - * Compile "query parser" value to function. - * - * @param {String|Function} val - * @return {Function} - * @api private - */ - -exports.compileQueryParser = function compileQueryParser(val) { - var fn; - - if (typeof val === 'function') { - return val; - } - - switch (val) { - case true: - fn = querystring.parse; - break; - case false: - fn = newObject; - break; - case 'extended': - fn = parseExtendedQueryString; - break; - case 'simple': - fn = querystring.parse; - break; - default: - throw new TypeError('unknown value for query parser function: ' + val); - } - - return fn; -} - -/** - * Compile "proxy trust" value to function. - * - * @param {Boolean|String|Number|Array|Function} val - * @return {Function} - * @api private - */ - -exports.compileTrust = function(val) { - if (typeof val === 'function') return val; - - if (val === true) { - // Support plain true/false - return function(){ return true }; - } - - if (typeof val === 'number') { - // Support trusting hop count - return function(a, i){ return i < val }; - } - - if (typeof val === 'string') { - // Support comma-separated values - val = val.split(/ *, */); - } - - return proxyaddr.compile(val || []); -} - -/** - * Set the charset in a given Content-Type string. - * - * @param {String} type - * @param {String} charset - * @return {String} - * @api private - */ - -exports.setCharset = function setCharset(type, charset) { - if (!type || !charset) { - return type; - } - - // parse type - var parsed = contentType.parse(type); - - // set charset - parsed.parameters.charset = charset; - - // format type - return contentType.format(parsed); -}; - -/** - * Parse an extended query string with qs. - * - * @return {Object} - * @private - */ - -function parseExtendedQueryString(str) { - return qs.parse(str, { - allowDots: false, - allowPrototypes: true - }); -} - -/** - * Return new empty object. - * - * @return {Object} - * @api private - */ - -function newObject() { - return {}; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/view.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/view.js deleted file mode 100644 index 52415d4c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/lib/view.js +++ /dev/null @@ -1,173 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var debug = require('debug')('express:view'); -var path = require('path'); -var fs = require('fs'); -var utils = require('./utils'); - -/** - * Module variables. - * @private - */ - -var dirname = path.dirname; -var basename = path.basename; -var extname = path.extname; -var join = path.join; -var resolve = path.resolve; - -/** - * Module exports. - * @public - */ - -module.exports = View; - -/** - * Initialize a new `View` with the given `name`. - * - * Options: - * - * - `defaultEngine` the default template engine name - * - `engines` template engine require() cache - * - `root` root path for view lookup - * - * @param {string} name - * @param {object} options - * @public - */ - -function View(name, options) { - var opts = options || {}; - - this.defaultEngine = opts.defaultEngine; - this.ext = extname(name); - this.name = name; - this.root = opts.root; - - if (!this.ext && !this.defaultEngine) { - throw new Error('No default engine was specified and no extension was provided.'); - } - - var fileName = name; - - if (!this.ext) { - // get extension from default engine name - this.ext = this.defaultEngine[0] !== '.' - ? '.' + this.defaultEngine - : this.defaultEngine; - - fileName += this.ext; - } - - if (!opts.engines[this.ext]) { - // load engine - opts.engines[this.ext] = require(this.ext.substr(1)).__express; - } - - // store loaded engine - this.engine = opts.engines[this.ext]; - - // lookup path - this.path = this.lookup(fileName); -} - -/** - * Lookup view by the given `name` - * - * @param {string} name - * @private - */ - -View.prototype.lookup = function lookup(name) { - var path; - var roots = [].concat(this.root); - - debug('lookup "%s"', name); - - for (var i = 0; i < roots.length && !path; i++) { - var root = roots[i]; - - // resolve the path - var loc = resolve(root, name); - var dir = dirname(loc); - var file = basename(loc); - - // resolve the file - path = this.resolve(dir, file); - } - - return path; -}; - -/** - * Render with the given options. - * - * @param {object} options - * @param {function} callback - * @private - */ - -View.prototype.render = function render(options, callback) { - debug('render "%s"', this.path); - this.engine(this.path, options, callback); -}; - -/** - * Resolve the file within the given directory. - * - * @param {string} dir - * @param {string} file - * @private - */ - -View.prototype.resolve = function resolve(dir, file) { - var ext = this.ext; - - // . - var path = join(dir, file); - var stat = tryStat(path); - - if (stat && stat.isFile()) { - return path; - } - - // /index. - path = join(dir, basename(file, ext), 'index' + ext); - stat = tryStat(path); - - if (stat && stat.isFile()) { - return path; - } -}; - -/** - * Return a stat, maybe. - * - * @param {string} path - * @return {fs.Stats} - * @private - */ - -function tryStat(path) { - debug('stat "%s"', path); - - try { - return fs.statSync(path); - } catch (e) { - return undefined; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/HISTORY.md deleted file mode 100644 index 397636e0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/HISTORY.md +++ /dev/null @@ -1,170 +0,0 @@ -1.2.13 / 2015-09-06 -=================== - - * deps: mime-types@~2.1.6 - - deps: mime-db@~1.18.0 - -1.2.12 / 2015-07-30 -=================== - - * deps: mime-types@~2.1.4 - - deps: mime-db@~1.16.0 - -1.2.11 / 2015-07-16 -=================== - - * deps: mime-types@~2.1.3 - - deps: mime-db@~1.15.0 - -1.2.10 / 2015-07-01 -=================== - - * deps: mime-types@~2.1.2 - - deps: mime-db@~1.14.0 - -1.2.9 / 2015-06-08 -================== - - * deps: mime-types@~2.1.1 - - perf: fix deopt during mapping - -1.2.8 / 2015-06-07 -================== - - * deps: mime-types@~2.1.0 - - deps: mime-db@~1.13.0 - * perf: avoid argument reassignment & argument slice - * perf: avoid negotiator recursive construction - * perf: enable strict mode - * perf: remove unnecessary bitwise operator - -1.2.7 / 2015-05-10 -================== - - * deps: negotiator@0.5.3 - - Fix media type parameter matching to be case-insensitive - -1.2.6 / 2015-05-07 -================== - - * deps: mime-types@~2.0.11 - - deps: mime-db@~1.9.1 - * deps: negotiator@0.5.2 - - Fix comparing media types with quoted values - - Fix splitting media types with quoted commas - -1.2.5 / 2015-03-13 -================== - - * deps: mime-types@~2.0.10 - - deps: mime-db@~1.8.0 - -1.2.4 / 2015-02-14 -================== - - * Support Node.js 0.6 - * deps: mime-types@~2.0.9 - - deps: mime-db@~1.7.0 - * deps: negotiator@0.5.1 - - Fix preference sorting to be stable for long acceptable lists - -1.2.3 / 2015-01-31 -================== - - * deps: mime-types@~2.0.8 - - deps: mime-db@~1.6.0 - -1.2.2 / 2014-12-30 -================== - - * deps: mime-types@~2.0.7 - - deps: mime-db@~1.5.0 - -1.2.1 / 2014-12-30 -================== - - * deps: mime-types@~2.0.5 - - deps: mime-db@~1.3.1 - -1.2.0 / 2014-12-19 -================== - - * deps: negotiator@0.5.0 - - Fix list return order when large accepted list - - Fix missing identity encoding when q=0 exists - - Remove dynamic building of Negotiator class - -1.1.4 / 2014-12-10 -================== - - * deps: mime-types@~2.0.4 - - deps: mime-db@~1.3.0 - -1.1.3 / 2014-11-09 -================== - - * deps: mime-types@~2.0.3 - - deps: mime-db@~1.2.0 - -1.1.2 / 2014-10-14 -================== - - * deps: negotiator@0.4.9 - - Fix error when media type has invalid parameter - -1.1.1 / 2014-09-28 -================== - - * deps: mime-types@~2.0.2 - - deps: mime-db@~1.1.0 - * deps: negotiator@0.4.8 - - Fix all negotiations to be case-insensitive - - Stable sort preferences of same quality according to client order - -1.1.0 / 2014-09-02 -================== - - * update `mime-types` - -1.0.7 / 2014-07-04 -================== - - * Fix wrong type returned from `type` when match after unknown extension - -1.0.6 / 2014-06-24 -================== - - * deps: negotiator@0.4.7 - -1.0.5 / 2014-06-20 -================== - - * fix crash when unknown extension given - -1.0.4 / 2014-06-19 -================== - - * use `mime-types` - -1.0.3 / 2014-06-11 -================== - - * deps: negotiator@0.4.6 - - Order by specificity when quality is the same - -1.0.2 / 2014-05-29 -================== - - * Fix interpretation when header not in request - * deps: pin negotiator@0.4.5 - -1.0.1 / 2014-01-18 -================== - - * Identity encoding isn't always acceptable - * deps: negotiator@~0.4.0 - -1.0.0 / 2013-12-27 -================== - - * Genesis diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/LICENSE deleted file mode 100644 index 06166077..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/README.md deleted file mode 100644 index ae36676f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/README.md +++ /dev/null @@ -1,135 +0,0 @@ -# accepts - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). Extracted from [koa](https://www.npmjs.com/package/koa) for general use. - -In addition to negotiator, it allows: - -- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` as well as `('text/html', 'application/json')`. -- Allows type shorthands such as `json`. -- Returns `false` when no types match -- Treats non-existent headers as `*` - -## Installation - -```sh -npm install accepts -``` - -## API - -```js -var accepts = require('accepts') -``` - -### accepts(req) - -Create a new `Accepts` object for the given `req`. - -#### .charset(charsets) - -Return the first accepted charset. If nothing in `charsets` is accepted, -then `false` is returned. - -#### .charsets() - -Return the charsets that the request accepts, in the order of the client's -preference (most preferred first). - -#### .encoding(encodings) - -Return the first accepted encoding. If nothing in `encodings` is accepted, -then `false` is returned. - -#### .encodings() - -Return the encodings that the request accepts, in the order of the client's -preference (most preferred first). - -#### .language(languages) - -Return the first accepted language. If nothing in `languages` is accepted, -then `false` is returned. - -#### .languages() - -Return the languages that the request accepts, in the order of the client's -preference (most preferred first). - -#### .type(types) - -Return the first accepted type (and it is returned as the same text as what -appears in the `types` array). If nothing in `types` is accepted, then `false` -is returned. - -The `types` array can contain full MIME types or file extensions. Any value -that is not a full MIME types is passed to `require('mime-types').lookup`. - -#### .types() - -Return the types that the request accepts, in the order of the client's -preference (most preferred first). - -## Examples - -### Simple type negotiation - -This simple example shows how to use `accepts` to return a different typed -respond body based on what the client wants to accept. The server lists it's -preferences in order and will get back the best match between the client and -server. - -```js -var accepts = require('accepts') -var http = require('http') - -function app(req, res) { - var accept = accepts(req) - - // the order of this list is significant; should be server preferred order - switch(accept.type(['json', 'html'])) { - case 'json': - res.setHeader('Content-Type', 'application/json') - res.write('{"hello":"world!"}') - break - case 'html': - res.setHeader('Content-Type', 'text/html') - res.write('hello, world!') - break - default: - // the fallback is text/plain, so no need to specify it above - res.setHeader('Content-Type', 'text/plain') - res.write('hello, world!') - break - } - - res.end() -} - -http.createServer(app).listen(3000) -``` - -You can test this out with the cURL program: -```sh -curl -I -H'Accept: text/html' http://localhost:3000/ -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/accepts.svg -[npm-url]: https://npmjs.org/package/accepts -[node-version-image]: https://img.shields.io/node/v/accepts.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/accepts/master.svg -[travis-url]: https://travis-ci.org/jshttp/accepts -[coveralls-image]: https://img.shields.io/coveralls/jshttp/accepts/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/accepts -[downloads-image]: https://img.shields.io/npm/dm/accepts.svg -[downloads-url]: https://npmjs.org/package/accepts diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/index.js deleted file mode 100644 index e80192ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/index.js +++ /dev/null @@ -1,231 +0,0 @@ -/*! - * accepts - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var Negotiator = require('negotiator') -var mime = require('mime-types') - -/** - * Module exports. - * @public - */ - -module.exports = Accepts - -/** - * Create a new Accepts object for the given req. - * - * @param {object} req - * @public - */ - -function Accepts(req) { - if (!(this instanceof Accepts)) - return new Accepts(req) - - this.headers = req.headers - this.negotiator = new Negotiator(req) -} - -/** - * Check if the given `type(s)` is acceptable, returning - * the best match when true, otherwise `undefined`, in which - * case you should respond with 406 "Not Acceptable". - * - * The `type` value may be a single mime type string - * such as "application/json", the extension name - * such as "json" or an array `["json", "html", "text/plain"]`. When a list - * or array is given the _best_ match, if any is returned. - * - * Examples: - * - * // Accept: text/html - * this.types('html'); - * // => "html" - * - * // Accept: text/*, application/json - * this.types('html'); - * // => "html" - * this.types('text/html'); - * // => "text/html" - * this.types('json', 'text'); - * // => "json" - * this.types('application/json'); - * // => "application/json" - * - * // Accept: text/*, application/json - * this.types('image/png'); - * this.types('png'); - * // => undefined - * - * // Accept: text/*;q=.5, application/json - * this.types(['html', 'json']); - * this.types('html', 'json'); - * // => "json" - * - * @param {String|Array} types... - * @return {String|Array|Boolean} - * @public - */ - -Accepts.prototype.type = -Accepts.prototype.types = function (types_) { - var types = types_ - - // support flattened arguments - if (types && !Array.isArray(types)) { - types = new Array(arguments.length) - for (var i = 0; i < types.length; i++) { - types[i] = arguments[i] - } - } - - // no types, return all requested types - if (!types || types.length === 0) { - return this.negotiator.mediaTypes() - } - - if (!this.headers.accept) return types[0]; - var mimes = types.map(extToMime); - var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)); - var first = accepts[0]; - if (!first) return false; - return types[mimes.indexOf(first)]; -} - -/** - * Return accepted encodings or best fit based on `encodings`. - * - * Given `Accept-Encoding: gzip, deflate` - * an array sorted by quality is returned: - * - * ['gzip', 'deflate'] - * - * @param {String|Array} encodings... - * @return {String|Array} - * @public - */ - -Accepts.prototype.encoding = -Accepts.prototype.encodings = function (encodings_) { - var encodings = encodings_ - - // support flattened arguments - if (encodings && !Array.isArray(encodings)) { - encodings = new Array(arguments.length) - for (var i = 0; i < encodings.length; i++) { - encodings[i] = arguments[i] - } - } - - // no encodings, return all requested encodings - if (!encodings || encodings.length === 0) { - return this.negotiator.encodings() - } - - return this.negotiator.encodings(encodings)[0] || false -} - -/** - * Return accepted charsets or best fit based on `charsets`. - * - * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5` - * an array sorted by quality is returned: - * - * ['utf-8', 'utf-7', 'iso-8859-1'] - * - * @param {String|Array} charsets... - * @return {String|Array} - * @public - */ - -Accepts.prototype.charset = -Accepts.prototype.charsets = function (charsets_) { - var charsets = charsets_ - - // support flattened arguments - if (charsets && !Array.isArray(charsets)) { - charsets = new Array(arguments.length) - for (var i = 0; i < charsets.length; i++) { - charsets[i] = arguments[i] - } - } - - // no charsets, return all requested charsets - if (!charsets || charsets.length === 0) { - return this.negotiator.charsets() - } - - return this.negotiator.charsets(charsets)[0] || false -} - -/** - * Return accepted languages or best fit based on `langs`. - * - * Given `Accept-Language: en;q=0.8, es, pt` - * an array sorted by quality is returned: - * - * ['es', 'pt', 'en'] - * - * @param {String|Array} langs... - * @return {Array|String} - * @public - */ - -Accepts.prototype.lang = -Accepts.prototype.langs = -Accepts.prototype.language = -Accepts.prototype.languages = function (languages_) { - var languages = languages_ - - // support flattened arguments - if (languages && !Array.isArray(languages)) { - languages = new Array(arguments.length) - for (var i = 0; i < languages.length; i++) { - languages[i] = arguments[i] - } - } - - // no languages, return all requested languages - if (!languages || languages.length === 0) { - return this.negotiator.languages() - } - - return this.negotiator.languages(languages)[0] || false -} - -/** - * Convert extnames to mime. - * - * @param {String} type - * @return {String} - * @private - */ - -function extToMime(type) { - return type.indexOf('/') === -1 - ? mime.lookup(type) - : type -} - -/** - * Check if mime is valid. - * - * @param {String} type - * @return {String} - * @private - */ - -function validMime(type) { - return typeof type === 'string'; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/HISTORY.md deleted file mode 100644 index 8c0383a6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/HISTORY.md +++ /dev/null @@ -1,204 +0,0 @@ -2.1.12 / 2016-09-18 -=================== - - * deps: mime-db@~1.24.0 - - Add new mime types - - Add `audio/mp3` - -2.1.11 / 2016-05-01 -=================== - - * deps: mime-db@~1.23.0 - - Add new mime types - -2.1.10 / 2016-02-15 -=================== - - * deps: mime-db@~1.22.0 - - Add new mime types - - Fix extension of `application/dash+xml` - - Update primary extension for `audio/mp4` - -2.1.9 / 2016-01-06 -================== - - * deps: mime-db@~1.21.0 - - Add new mime types - -2.1.8 / 2015-11-30 -================== - - * deps: mime-db@~1.20.0 - - Add new mime types - -2.1.7 / 2015-09-20 -================== - - * deps: mime-db@~1.19.0 - - Add new mime types - -2.1.6 / 2015-09-03 -================== - - * deps: mime-db@~1.18.0 - - Add new mime types - -2.1.5 / 2015-08-20 -================== - - * deps: mime-db@~1.17.0 - - Add new mime types - -2.1.4 / 2015-07-30 -================== - - * deps: mime-db@~1.16.0 - - Add new mime types - -2.1.3 / 2015-07-13 -================== - - * deps: mime-db@~1.15.0 - - Add new mime types - -2.1.2 / 2015-06-25 -================== - - * deps: mime-db@~1.14.0 - - Add new mime types - -2.1.1 / 2015-06-08 -================== - - * perf: fix deopt during mapping - -2.1.0 / 2015-06-07 -================== - - * Fix incorrectly treating extension-less file name as extension - - i.e. `'path/to/json'` will no longer return `application/json` - * Fix `.charset(type)` to accept parameters - * Fix `.charset(type)` to match case-insensitive - * Improve generation of extension to MIME mapping - * Refactor internals for readability and no argument reassignment - * Prefer `application/*` MIME types from the same source - * Prefer any type over `application/octet-stream` - * deps: mime-db@~1.13.0 - - Add nginx as a source - - Add new mime types - -2.0.14 / 2015-06-06 -=================== - - * deps: mime-db@~1.12.0 - - Add new mime types - -2.0.13 / 2015-05-31 -=================== - - * deps: mime-db@~1.11.0 - - Add new mime types - -2.0.12 / 2015-05-19 -=================== - - * deps: mime-db@~1.10.0 - - Add new mime types - -2.0.11 / 2015-05-05 -=================== - - * deps: mime-db@~1.9.1 - - Add new mime types - -2.0.10 / 2015-03-13 -=================== - - * deps: mime-db@~1.8.0 - - Add new mime types - -2.0.9 / 2015-02-09 -================== - - * deps: mime-db@~1.7.0 - - Add new mime types - - Community extensions ownership transferred from `node-mime` - -2.0.8 / 2015-01-29 -================== - - * deps: mime-db@~1.6.0 - - Add new mime types - -2.0.7 / 2014-12-30 -================== - - * deps: mime-db@~1.5.0 - - Add new mime types - - Fix various invalid MIME type entries - -2.0.6 / 2014-12-30 -================== - - * deps: mime-db@~1.4.0 - - Add new mime types - - Fix various invalid MIME type entries - - Remove example template MIME types - -2.0.5 / 2014-12-29 -================== - - * deps: mime-db@~1.3.1 - - Fix missing extensions - -2.0.4 / 2014-12-10 -================== - - * deps: mime-db@~1.3.0 - - Add new mime types - -2.0.3 / 2014-11-09 -================== - - * deps: mime-db@~1.2.0 - - Add new mime types - -2.0.2 / 2014-09-28 -================== - - * deps: mime-db@~1.1.0 - - Add new mime types - - Add additional compressible - - Update charsets - -2.0.1 / 2014-09-07 -================== - - * Support Node.js 0.6 - -2.0.0 / 2014-09-02 -================== - - * Use `mime-db` - * Remove `.define()` - -1.0.2 / 2014-08-04 -================== - - * Set charset=utf-8 for `text/javascript` - -1.0.1 / 2014-06-24 -================== - - * Add `text/jsx` type - -1.0.0 / 2014-05-12 -================== - - * Return `false` for unknown types - * Set charset=utf-8 for `application/json` - -0.1.0 / 2014-05-02 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/LICENSE deleted file mode 100644 index 06166077..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/README.md deleted file mode 100644 index e77d615d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/README.md +++ /dev/null @@ -1,103 +0,0 @@ -# mime-types - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -The ultimate javascript content-type utility. - -Similar to [node-mime](https://github.com/broofa/node-mime), except: - -- __No fallbacks.__ Instead of naively returning the first available type, `mime-types` simply returns `false`, - so do `var type = mime.lookup('unrecognized') || 'application/octet-stream'`. -- No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`. -- Additional mime types are added such as jade and stylus via [mime-db](https://github.com/jshttp/mime-db) -- No `.define()` functionality - -Otherwise, the API is compatible. - -## Install - -```sh -$ npm install mime-types -``` - -## Adding Types - -All mime types are based on [mime-db](https://github.com/jshttp/mime-db), -so open a PR there if you'd like to add mime types. - -## API - -```js -var mime = require('mime-types') -``` - -All functions return `false` if input is invalid or not found. - -### mime.lookup(path) - -Lookup the content-type associated with a file. - -```js -mime.lookup('json') // 'application/json' -mime.lookup('.md') // 'text/x-markdown' -mime.lookup('file.html') // 'text/html' -mime.lookup('folder/file.js') // 'application/javascript' -mime.lookup('folder/.htaccess') // false - -mime.lookup('cats') // false -``` - -### mime.contentType(type) - -Create a full content-type header given a content-type or extension. - -```js -mime.contentType('markdown') // 'text/x-markdown; charset=utf-8' -mime.contentType('file.json') // 'application/json; charset=utf-8' - -// from a full path -mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8' -``` - -### mime.extension(type) - -Get the default extension for a content-type. - -```js -mime.extension('application/octet-stream') // 'bin' -``` - -### mime.charset(type) - -Lookup the implied default charset of a content-type. - -```js -mime.charset('text/x-markdown') // 'UTF-8' -``` - -### var type = mime.types[extension] - -A map of content-types by extension. - -### [extensions...] = mime.extensions[type] - -A map of extensions by content-type. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/mime-types.svg -[npm-url]: https://npmjs.org/package/mime-types -[node-version-image]: https://img.shields.io/node/v/mime-types.svg -[node-version-url]: https://nodejs.org/en/download/ -[travis-image]: https://img.shields.io/travis/jshttp/mime-types/master.svg -[travis-url]: https://travis-ci.org/jshttp/mime-types -[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-types/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/mime-types -[downloads-image]: https://img.shields.io/npm/dm/mime-types.svg -[downloads-url]: https://npmjs.org/package/mime-types diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/index.js deleted file mode 100644 index 9226ca58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/index.js +++ /dev/null @@ -1,188 +0,0 @@ -/*! - * mime-types - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var db = require('mime-db') -var extname = require('path').extname - -/** - * Module variables. - * @private - */ - -var extractTypeRegExp = /^\s*([^;\s]*)(?:;|\s|$)/ -var textTypeRegExp = /^text\//i - -/** - * Module exports. - * @public - */ - -exports.charset = charset -exports.charsets = { lookup: charset } -exports.contentType = contentType -exports.extension = extension -exports.extensions = Object.create(null) -exports.lookup = lookup -exports.types = Object.create(null) - -// Populate the extensions/types maps -populateMaps(exports.extensions, exports.types) - -/** - * Get the default charset for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function charset (type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = extractTypeRegExp.exec(type) - var mime = match && db[match[1].toLowerCase()] - - if (mime && mime.charset) { - return mime.charset - } - - // default text/* to utf-8 - if (match && textTypeRegExp.test(match[1])) { - return 'UTF-8' - } - - return false -} - -/** - * Create a full Content-Type header given a MIME type or extension. - * - * @param {string} str - * @return {boolean|string} - */ - -function contentType (str) { - // TODO: should this even be in this module? - if (!str || typeof str !== 'string') { - return false - } - - var mime = str.indexOf('/') === -1 - ? exports.lookup(str) - : str - - if (!mime) { - return false - } - - // TODO: use content-type or other module - if (mime.indexOf('charset') === -1) { - var charset = exports.charset(mime) - if (charset) mime += '; charset=' + charset.toLowerCase() - } - - return mime -} - -/** - * Get the default extension for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function extension (type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = extractTypeRegExp.exec(type) - - // get extensions - var exts = match && exports.extensions[match[1].toLowerCase()] - - if (!exts || !exts.length) { - return false - } - - return exts[0] -} - -/** - * Lookup the MIME type for a file path/extension. - * - * @param {string} path - * @return {boolean|string} - */ - -function lookup (path) { - if (!path || typeof path !== 'string') { - return false - } - - // get the extension ("ext" or ".ext" or full path) - var extension = extname('x.' + path) - .toLowerCase() - .substr(1) - - if (!extension) { - return false - } - - return exports.types[extension] || false -} - -/** - * Populate the extensions and types maps. - * @private - */ - -function populateMaps (extensions, types) { - // source preference (least -> most) - var preference = ['nginx', 'apache', undefined, 'iana'] - - Object.keys(db).forEach(function forEachMimeType (type) { - var mime = db[type] - var exts = mime.extensions - - if (!exts || !exts.length) { - return - } - - // mime -> extensions - extensions[type] = exts - - // extension -> mime - for (var i = 0; i < exts.length; i++) { - var extension = exts[i] - - if (types[extension]) { - var from = preference.indexOf(db[types[extension]].source) - var to = preference.indexOf(mime.source) - - if (types[extension] !== 'application/octet-stream' && - from > to || (from === to && types[extension].substr(0, 12) === 'application/')) { - // skip the remapping - continue - } - } - - // set the extension -> mime - types[extension] = type - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/HISTORY.md deleted file mode 100644 index d4796b55..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/HISTORY.md +++ /dev/null @@ -1,365 +0,0 @@ -1.24.0 / 2016-09-18 -=================== - - * Add `application/clue_info+xml` - * Add `application/geo+json` - * Add `application/lgr+xml` - * Add `application/vnd.amazon.mobi8-ebook` - * Add `application/vnd.chess-pgn` - * Add `application/vnd.comicbook+zip` - * Add `application/vnd.d2l.coursepackage1p0+zip` - * Add `application/vnd.espass-espass+zip` - * Add `application/vnd.nearst.inv+json` - * Add `application/vnd.oma.lwm2m+json` - * Add `application/vnd.oma.lwm2m+tlv` - * Add `application/vnd.quarantainenet` - * Add `application/vnd.rar` - * Add `audio/mp3` - * Add `image/dicom-rle` - * Add `image/emf` - * Add `image/jls` - * Add `image/wmf` - * Add `model/gltf+json` - * Add `text/vnd.ascii-art` - -1.23.0 / 2016-05-01 -=================== - - * Add `application/efi` - * Add `application/vnd.3gpp.sms+xml` - * Add `application/vnd.3lightssoftware.imagescal` - * Add `application/vnd.coreos.ignition+json` - * Add `application/vnd.desmume.movie` - * Add `application/vnd.onepager` - * Add `application/vnd.vel+json` - * Add `text/prs.prop.logic` - * Add `video/encaprtp` - * Add `video/h265` - * Add `video/iso.segment` - * Add `video/raptorfec` - * Add `video/rtploopback` - * Add `video/vnd.radgamettools.bink` - * Add `video/vnd.radgamettools.smacker` - * Add `video/vp8` - * Add extension `.3gpp` to `audio/3gpp` - -1.22.0 / 2016-02-15 -=================== - - * Add `application/ppsp-tracker+json` - * Add `application/problem+json` - * Add `application/problem+xml` - * Add `application/vnd.hdt` - * Add `application/vnd.ms-printschematicket+xml` - * Add `model/vnd.rosette.annotated-data-model` - * Add `text/slim` - * Add extension `.rng` to `application/xml` - * Fix extension of `application/dash+xml` to be `.mpd` - * Update primary extension to `.m4a` for `audio/mp4` - -1.21.0 / 2016-01-06 -=================== - - * Add `application/emergencycalldata.comment+xml` - * Add `application/emergencycalldata.deviceinfo+xml` - * Add `application/emergencycalldata.providerinfo+xml` - * Add `application/emergencycalldata.serviceinfo+xml` - * Add `application/emergencycalldata.subscriberinfo+xml` - * Add `application/vnd.filmit.zfc` - * Add `application/vnd.google-apps.document` - * Add `application/vnd.google-apps.presentation` - * Add `application/vnd.google-apps.spreadsheet` - * Add `application/vnd.mapbox-vector-tile` - * Add `application/vnd.ms-printdevicecapabilities+xml` - * Add `application/vnd.ms-windows.devicepairing` - * Add `application/vnd.ms-windows.nwprinting.oob` - * Add `application/vnd.tml` - * Add `audio/evs` - -1.20.0 / 2015-11-10 -=================== - - * Add `application/cdni` - * Add `application/csvm+json` - * Add `application/rfc+xml` - * Add `application/vnd.3gpp.access-transfer-events+xml` - * Add `application/vnd.3gpp.srvcc-ext+xml` - * Add `application/vnd.ms-windows.wsd.oob` - * Add `application/vnd.oxli.countgraph` - * Add `application/vnd.pagerduty+json` - * Add `text/x-suse-ymp` - -1.19.0 / 2015-09-17 -=================== - - * Add `application/vnd.3gpp-prose-pc3ch+xml` - * Add `application/vnd.3gpp.srvcc-info+xml` - * Add `application/vnd.apple.pkpass` - * Add `application/vnd.drive+json` - -1.18.0 / 2015-09-03 -=================== - - * Add `application/pkcs12` - * Add `application/vnd.3gpp-prose+xml` - * Add `application/vnd.3gpp.mid-call+xml` - * Add `application/vnd.3gpp.state-and-event-info+xml` - * Add `application/vnd.anki` - * Add `application/vnd.firemonkeys.cloudcell` - * Add `application/vnd.openblox.game+xml` - * Add `application/vnd.openblox.game-binary` - -1.17.0 / 2015-08-13 -=================== - - * Add `application/x-msdos-program` - * Add `audio/g711-0` - * Add `image/vnd.mozilla.apng` - * Add extension `.exe` to `application/x-msdos-program` - -1.16.0 / 2015-07-29 -=================== - - * Add `application/vnd.uri-map` - -1.15.0 / 2015-07-13 -=================== - - * Add `application/x-httpd-php` - -1.14.0 / 2015-06-25 -=================== - - * Add `application/scim+json` - * Add `application/vnd.3gpp.ussd+xml` - * Add `application/vnd.biopax.rdf+xml` - * Add `text/x-processing` - -1.13.0 / 2015-06-07 -=================== - - * Add nginx as a source - * Add `application/x-cocoa` - * Add `application/x-java-archive-diff` - * Add `application/x-makeself` - * Add `application/x-perl` - * Add `application/x-pilot` - * Add `application/x-redhat-package-manager` - * Add `application/x-sea` - * Add `audio/x-m4a` - * Add `audio/x-realaudio` - * Add `image/x-jng` - * Add `text/mathml` - -1.12.0 / 2015-06-05 -=================== - - * Add `application/bdoc` - * Add `application/vnd.hyperdrive+json` - * Add `application/x-bdoc` - * Add extension `.rtf` to `text/rtf` - -1.11.0 / 2015-05-31 -=================== - - * Add `audio/wav` - * Add `audio/wave` - * Add extension `.litcoffee` to `text/coffeescript` - * Add extension `.sfd-hdstx` to `application/vnd.hydrostatix.sof-data` - * Add extension `.n-gage` to `application/vnd.nokia.n-gage.symbian.install` - -1.10.0 / 2015-05-19 -=================== - - * Add `application/vnd.balsamiq.bmpr` - * Add `application/vnd.microsoft.portable-executable` - * Add `application/x-ns-proxy-autoconfig` - -1.9.1 / 2015-04-19 -================== - - * Remove `.json` extension from `application/manifest+json` - - This is causing bugs downstream - -1.9.0 / 2015-04-19 -================== - - * Add `application/manifest+json` - * Add `application/vnd.micro+json` - * Add `image/vnd.zbrush.pcx` - * Add `image/x-ms-bmp` - -1.8.0 / 2015-03-13 -================== - - * Add `application/vnd.citationstyles.style+xml` - * Add `application/vnd.fastcopy-disk-image` - * Add `application/vnd.gov.sk.xmldatacontainer+xml` - * Add extension `.jsonld` to `application/ld+json` - -1.7.0 / 2015-02-08 -================== - - * Add `application/vnd.gerber` - * Add `application/vnd.msa-disk-image` - -1.6.1 / 2015-02-05 -================== - - * Community extensions ownership transferred from `node-mime` - -1.6.0 / 2015-01-29 -================== - - * Add `application/jose` - * Add `application/jose+json` - * Add `application/json-seq` - * Add `application/jwk+json` - * Add `application/jwk-set+json` - * Add `application/jwt` - * Add `application/rdap+json` - * Add `application/vnd.gov.sk.e-form+xml` - * Add `application/vnd.ims.imsccv1p3` - -1.5.0 / 2014-12-30 -================== - - * Add `application/vnd.oracle.resource+json` - * Fix various invalid MIME type entries - - `application/mbox+xml` - - `application/oscp-response` - - `application/vwg-multiplexed` - - `audio/g721` - -1.4.0 / 2014-12-21 -================== - - * Add `application/vnd.ims.imsccv1p2` - * Fix various invalid MIME type entries - - `application/vnd-acucobol` - - `application/vnd-curl` - - `application/vnd-dart` - - `application/vnd-dxr` - - `application/vnd-fdf` - - `application/vnd-mif` - - `application/vnd-sema` - - `application/vnd-wap-wmlc` - - `application/vnd.adobe.flash-movie` - - `application/vnd.dece-zip` - - `application/vnd.dvb_service` - - `application/vnd.micrografx-igx` - - `application/vnd.sealed-doc` - - `application/vnd.sealed-eml` - - `application/vnd.sealed-mht` - - `application/vnd.sealed-ppt` - - `application/vnd.sealed-tiff` - - `application/vnd.sealed-xls` - - `application/vnd.sealedmedia.softseal-html` - - `application/vnd.sealedmedia.softseal-pdf` - - `application/vnd.wap-slc` - - `application/vnd.wap-wbxml` - - `audio/vnd.sealedmedia.softseal-mpeg` - - `image/vnd-djvu` - - `image/vnd-svf` - - `image/vnd-wap-wbmp` - - `image/vnd.sealed-png` - - `image/vnd.sealedmedia.softseal-gif` - - `image/vnd.sealedmedia.softseal-jpg` - - `model/vnd-dwf` - - `model/vnd.parasolid.transmit-binary` - - `model/vnd.parasolid.transmit-text` - - `text/vnd-a` - - `text/vnd-curl` - - `text/vnd.wap-wml` - * Remove example template MIME types - - `application/example` - - `audio/example` - - `image/example` - - `message/example` - - `model/example` - - `multipart/example` - - `text/example` - - `video/example` - -1.3.1 / 2014-12-16 -================== - - * Fix missing extensions - - `application/json5` - - `text/hjson` - -1.3.0 / 2014-12-07 -================== - - * Add `application/a2l` - * Add `application/aml` - * Add `application/atfx` - * Add `application/atxml` - * Add `application/cdfx+xml` - * Add `application/dii` - * Add `application/json5` - * Add `application/lxf` - * Add `application/mf4` - * Add `application/vnd.apache.thrift.compact` - * Add `application/vnd.apache.thrift.json` - * Add `application/vnd.coffeescript` - * Add `application/vnd.enphase.envoy` - * Add `application/vnd.ims.imsccv1p1` - * Add `text/csv-schema` - * Add `text/hjson` - * Add `text/markdown` - * Add `text/yaml` - -1.2.0 / 2014-11-09 -================== - - * Add `application/cea` - * Add `application/dit` - * Add `application/vnd.gov.sk.e-form+zip` - * Add `application/vnd.tmd.mediaflex.api+xml` - * Type `application/epub+zip` is now IANA-registered - -1.1.2 / 2014-10-23 -================== - - * Rebuild database for `application/x-www-form-urlencoded` change - -1.1.1 / 2014-10-20 -================== - - * Mark `application/x-www-form-urlencoded` as compressible. - -1.1.0 / 2014-09-28 -================== - - * Add `application/font-woff2` - -1.0.3 / 2014-09-25 -================== - - * Fix engine requirement in package - -1.0.2 / 2014-09-25 -================== - - * Add `application/coap-group+json` - * Add `application/dcd` - * Add `application/vnd.apache.thrift.binary` - * Add `image/vnd.tencent.tap` - * Mark all JSON-derived types as compressible - * Update `text/vtt` data - -1.0.1 / 2014-08-30 -================== - - * Fix extension ordering - -1.0.0 / 2014-08-30 -================== - - * Add `application/atf` - * Add `application/merge-patch+json` - * Add `multipart/x-mixed-replace` - * Add `source: 'apache'` metadata - * Add `source: 'iana'` metadata - * Remove badly-assumed charset data diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/README.md deleted file mode 100644 index 7662440b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# mime-db - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][travis-image]][travis-url] -[![Coverage Status][coveralls-image]][coveralls-url] - -This is a database of all mime types. -It consists of a single, public JSON file and does not include any logic, -allowing it to remain as un-opinionated as possible with an API. -It aggregates data from the following sources: - -- http://www.iana.org/assignments/media-types/media-types.xhtml -- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types -- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types - -## Installation - -```bash -npm install mime-db -``` - -### Database Download - -If you're crazy enough to use this in the browser, you can just grab the -JSON file using [RawGit](https://rawgit.com/). It is recommended to replace -`master` with [a release tag](https://github.com/jshttp/mime-db/tags) as the -JSON format may change in the future. - -``` -https://cdn.rawgit.com/jshttp/mime-db/master/db.json -``` - -## Usage - -```js -var db = require('mime-db'); - -// grab data on .js files -var data = db['application/javascript']; -``` - -## Data Structure - -The JSON file is a map lookup for lowercased mime types. -Each mime type has the following properties: - -- `.source` - where the mime type is defined. - If not set, it's probably a custom media type. - - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) - - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml) - - `nginx` - [nginx media types](http://hg.nginx.org/nginx/raw-file/default/conf/mime.types) -- `.extensions[]` - known extensions associated with this mime type. -- `.compressible` - whether a file of this type can be gzipped. -- `.charset` - the default charset associated with this type, if any. - -If unknown, every property could be `undefined`. - -## Contributing - -To edit the database, only make PRs against `src/custom.json` or -`src/custom-suffix.json`. - -To update the build, run `npm run build`. - -## Adding Custom Media Types - -The best way to get new media types included in this library is to register -them with the IANA. The community registration procedure is outlined in -[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types -registered with the IANA are automatically pulled into this library. - -[npm-version-image]: https://img.shields.io/npm/v/mime-db.svg -[npm-downloads-image]: https://img.shields.io/npm/dm/mime-db.svg -[npm-url]: https://npmjs.org/package/mime-db -[travis-image]: https://img.shields.io/travis/jshttp/mime-db/master.svg -[travis-url]: https://travis-ci.org/jshttp/mime-db -[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-db/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master -[node-image]: https://img.shields.io/node/v/mime-db.svg -[node-url]: http://nodejs.org/download/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/db.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/db.json deleted file mode 100644 index 63b226f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/db.json +++ /dev/null @@ -1,6692 +0,0 @@ -{ - "application/1d-interleaved-parityfec": { - "source": "iana" - }, - "application/3gpdash-qoe-report+xml": { - "source": "iana" - }, - "application/3gpp-ims+xml": { - "source": "iana" - }, - "application/a2l": { - "source": "iana" - }, - "application/activemessage": { - "source": "iana" - }, - "application/alto-costmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-costmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/alto-directory+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcost+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcostparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointprop+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointpropparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-error+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/aml": { - "source": "iana" - }, - "application/andrew-inset": { - "source": "iana", - "extensions": ["ez"] - }, - "application/applefile": { - "source": "iana" - }, - "application/applixware": { - "source": "apache", - "extensions": ["aw"] - }, - "application/atf": { - "source": "iana" - }, - "application/atfx": { - "source": "iana" - }, - "application/atom+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atom"] - }, - "application/atomcat+xml": { - "source": "iana", - "extensions": ["atomcat"] - }, - "application/atomdeleted+xml": { - "source": "iana" - }, - "application/atomicmail": { - "source": "iana" - }, - "application/atomsvc+xml": { - "source": "iana", - "extensions": ["atomsvc"] - }, - "application/atxml": { - "source": "iana" - }, - "application/auth-policy+xml": { - "source": "iana" - }, - "application/bacnet-xdd+zip": { - "source": "iana" - }, - "application/batch-smtp": { - "source": "iana" - }, - "application/bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/beep+xml": { - "source": "iana" - }, - "application/calendar+json": { - "source": "iana", - "compressible": true - }, - "application/calendar+xml": { - "source": "iana" - }, - "application/call-completion": { - "source": "iana" - }, - "application/cals-1840": { - "source": "iana" - }, - "application/cbor": { - "source": "iana" - }, - "application/ccmp+xml": { - "source": "iana" - }, - "application/ccxml+xml": { - "source": "iana", - "extensions": ["ccxml"] - }, - "application/cdfx+xml": { - "source": "iana" - }, - "application/cdmi-capability": { - "source": "iana", - "extensions": ["cdmia"] - }, - "application/cdmi-container": { - "source": "iana", - "extensions": ["cdmic"] - }, - "application/cdmi-domain": { - "source": "iana", - "extensions": ["cdmid"] - }, - "application/cdmi-object": { - "source": "iana", - "extensions": ["cdmio"] - }, - "application/cdmi-queue": { - "source": "iana", - "extensions": ["cdmiq"] - }, - "application/cdni": { - "source": "iana" - }, - "application/cea": { - "source": "iana" - }, - "application/cea-2018+xml": { - "source": "iana" - }, - "application/cellml+xml": { - "source": "iana" - }, - "application/cfw": { - "source": "iana" - }, - "application/clue_info+xml": { - "source": "iana" - }, - "application/cms": { - "source": "iana" - }, - "application/cnrp+xml": { - "source": "iana" - }, - "application/coap-group+json": { - "source": "iana", - "compressible": true - }, - "application/commonground": { - "source": "iana" - }, - "application/conference-info+xml": { - "source": "iana" - }, - "application/cpl+xml": { - "source": "iana" - }, - "application/csrattrs": { - "source": "iana" - }, - "application/csta+xml": { - "source": "iana" - }, - "application/cstadata+xml": { - "source": "iana" - }, - "application/csvm+json": { - "source": "iana", - "compressible": true - }, - "application/cu-seeme": { - "source": "apache", - "extensions": ["cu"] - }, - "application/cybercash": { - "source": "iana" - }, - "application/dart": { - "compressible": true - }, - "application/dash+xml": { - "source": "iana", - "extensions": ["mpd"] - }, - "application/dashdelta": { - "source": "iana" - }, - "application/davmount+xml": { - "source": "iana", - "extensions": ["davmount"] - }, - "application/dca-rft": { - "source": "iana" - }, - "application/dcd": { - "source": "iana" - }, - "application/dec-dx": { - "source": "iana" - }, - "application/dialog-info+xml": { - "source": "iana" - }, - "application/dicom": { - "source": "iana" - }, - "application/dii": { - "source": "iana" - }, - "application/dit": { - "source": "iana" - }, - "application/dns": { - "source": "iana" - }, - "application/docbook+xml": { - "source": "apache", - "extensions": ["dbk"] - }, - "application/dskpp+xml": { - "source": "iana" - }, - "application/dssc+der": { - "source": "iana", - "extensions": ["dssc"] - }, - "application/dssc+xml": { - "source": "iana", - "extensions": ["xdssc"] - }, - "application/dvcs": { - "source": "iana" - }, - "application/ecmascript": { - "source": "iana", - "compressible": true, - "extensions": ["ecma"] - }, - "application/edi-consent": { - "source": "iana" - }, - "application/edi-x12": { - "source": "iana", - "compressible": false - }, - "application/edifact": { - "source": "iana", - "compressible": false - }, - "application/efi": { - "source": "iana" - }, - "application/emergencycalldata.comment+xml": { - "source": "iana" - }, - "application/emergencycalldata.deviceinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.providerinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.serviceinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.subscriberinfo+xml": { - "source": "iana" - }, - "application/emma+xml": { - "source": "iana", - "extensions": ["emma"] - }, - "application/emotionml+xml": { - "source": "iana" - }, - "application/encaprtp": { - "source": "iana" - }, - "application/epp+xml": { - "source": "iana" - }, - "application/epub+zip": { - "source": "iana", - "extensions": ["epub"] - }, - "application/eshop": { - "source": "iana" - }, - "application/exi": { - "source": "iana", - "extensions": ["exi"] - }, - "application/fastinfoset": { - "source": "iana" - }, - "application/fastsoap": { - "source": "iana" - }, - "application/fdt+xml": { - "source": "iana" - }, - "application/fits": { - "source": "iana" - }, - "application/font-sfnt": { - "source": "iana" - }, - "application/font-tdpfr": { - "source": "iana", - "extensions": ["pfr"] - }, - "application/font-woff": { - "source": "iana", - "compressible": false, - "extensions": ["woff"] - }, - "application/font-woff2": { - "compressible": false, - "extensions": ["woff2"] - }, - "application/framework-attributes+xml": { - "source": "iana" - }, - "application/geo+json": { - "source": "iana", - "compressible": true - }, - "application/gml+xml": { - "source": "apache", - "extensions": ["gml"] - }, - "application/gpx+xml": { - "source": "apache", - "extensions": ["gpx"] - }, - "application/gxf": { - "source": "apache", - "extensions": ["gxf"] - }, - "application/gzip": { - "source": "iana", - "compressible": false - }, - "application/h224": { - "source": "iana" - }, - "application/held+xml": { - "source": "iana" - }, - "application/http": { - "source": "iana" - }, - "application/hyperstudio": { - "source": "iana", - "extensions": ["stk"] - }, - "application/ibe-key-request+xml": { - "source": "iana" - }, - "application/ibe-pkg-reply+xml": { - "source": "iana" - }, - "application/ibe-pp-data": { - "source": "iana" - }, - "application/iges": { - "source": "iana" - }, - "application/im-iscomposing+xml": { - "source": "iana" - }, - "application/index": { - "source": "iana" - }, - "application/index.cmd": { - "source": "iana" - }, - "application/index.obj": { - "source": "iana" - }, - "application/index.response": { - "source": "iana" - }, - "application/index.vnd": { - "source": "iana" - }, - "application/inkml+xml": { - "source": "iana", - "extensions": ["ink","inkml"] - }, - "application/iotp": { - "source": "iana" - }, - "application/ipfix": { - "source": "iana", - "extensions": ["ipfix"] - }, - "application/ipp": { - "source": "iana" - }, - "application/isup": { - "source": "iana" - }, - "application/its+xml": { - "source": "iana" - }, - "application/java-archive": { - "source": "apache", - "compressible": false, - "extensions": ["jar","war","ear"] - }, - "application/java-serialized-object": { - "source": "apache", - "compressible": false, - "extensions": ["ser"] - }, - "application/java-vm": { - "source": "apache", - "compressible": false, - "extensions": ["class"] - }, - "application/javascript": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["js"] - }, - "application/jose": { - "source": "iana" - }, - "application/jose+json": { - "source": "iana", - "compressible": true - }, - "application/jrd+json": { - "source": "iana", - "compressible": true - }, - "application/json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["json","map"] - }, - "application/json-patch+json": { - "source": "iana", - "compressible": true - }, - "application/json-seq": { - "source": "iana" - }, - "application/json5": { - "extensions": ["json5"] - }, - "application/jsonml+json": { - "source": "apache", - "compressible": true, - "extensions": ["jsonml"] - }, - "application/jwk+json": { - "source": "iana", - "compressible": true - }, - "application/jwk-set+json": { - "source": "iana", - "compressible": true - }, - "application/jwt": { - "source": "iana" - }, - "application/kpml-request+xml": { - "source": "iana" - }, - "application/kpml-response+xml": { - "source": "iana" - }, - "application/ld+json": { - "source": "iana", - "compressible": true, - "extensions": ["jsonld"] - }, - "application/lgr+xml": { - "source": "iana" - }, - "application/link-format": { - "source": "iana" - }, - "application/load-control+xml": { - "source": "iana" - }, - "application/lost+xml": { - "source": "iana", - "extensions": ["lostxml"] - }, - "application/lostsync+xml": { - "source": "iana" - }, - "application/lxf": { - "source": "iana" - }, - "application/mac-binhex40": { - "source": "iana", - "extensions": ["hqx"] - }, - "application/mac-compactpro": { - "source": "apache", - "extensions": ["cpt"] - }, - "application/macwriteii": { - "source": "iana" - }, - "application/mads+xml": { - "source": "iana", - "extensions": ["mads"] - }, - "application/manifest+json": { - "charset": "UTF-8", - "compressible": true, - "extensions": ["webmanifest"] - }, - "application/marc": { - "source": "iana", - "extensions": ["mrc"] - }, - "application/marcxml+xml": { - "source": "iana", - "extensions": ["mrcx"] - }, - "application/mathematica": { - "source": "iana", - "extensions": ["ma","nb","mb"] - }, - "application/mathml+xml": { - "source": "iana", - "extensions": ["mathml"] - }, - "application/mathml-content+xml": { - "source": "iana" - }, - "application/mathml-presentation+xml": { - "source": "iana" - }, - "application/mbms-associated-procedure-description+xml": { - "source": "iana" - }, - "application/mbms-deregister+xml": { - "source": "iana" - }, - "application/mbms-envelope+xml": { - "source": "iana" - }, - "application/mbms-msk+xml": { - "source": "iana" - }, - "application/mbms-msk-response+xml": { - "source": "iana" - }, - "application/mbms-protection-description+xml": { - "source": "iana" - }, - "application/mbms-reception-report+xml": { - "source": "iana" - }, - "application/mbms-register+xml": { - "source": "iana" - }, - "application/mbms-register-response+xml": { - "source": "iana" - }, - "application/mbms-schedule+xml": { - "source": "iana" - }, - "application/mbms-user-service-description+xml": { - "source": "iana" - }, - "application/mbox": { - "source": "iana", - "extensions": ["mbox"] - }, - "application/media-policy-dataset+xml": { - "source": "iana" - }, - "application/media_control+xml": { - "source": "iana" - }, - "application/mediaservercontrol+xml": { - "source": "iana", - "extensions": ["mscml"] - }, - "application/merge-patch+json": { - "source": "iana", - "compressible": true - }, - "application/metalink+xml": { - "source": "apache", - "extensions": ["metalink"] - }, - "application/metalink4+xml": { - "source": "iana", - "extensions": ["meta4"] - }, - "application/mets+xml": { - "source": "iana", - "extensions": ["mets"] - }, - "application/mf4": { - "source": "iana" - }, - "application/mikey": { - "source": "iana" - }, - "application/mods+xml": { - "source": "iana", - "extensions": ["mods"] - }, - "application/moss-keys": { - "source": "iana" - }, - "application/moss-signature": { - "source": "iana" - }, - "application/mosskey-data": { - "source": "iana" - }, - "application/mosskey-request": { - "source": "iana" - }, - "application/mp21": { - "source": "iana", - "extensions": ["m21","mp21"] - }, - "application/mp4": { - "source": "iana", - "extensions": ["mp4s","m4p"] - }, - "application/mpeg4-generic": { - "source": "iana" - }, - "application/mpeg4-iod": { - "source": "iana" - }, - "application/mpeg4-iod-xmt": { - "source": "iana" - }, - "application/mrb-consumer+xml": { - "source": "iana" - }, - "application/mrb-publish+xml": { - "source": "iana" - }, - "application/msc-ivr+xml": { - "source": "iana" - }, - "application/msc-mixer+xml": { - "source": "iana" - }, - "application/msword": { - "source": "iana", - "compressible": false, - "extensions": ["doc","dot"] - }, - "application/mxf": { - "source": "iana", - "extensions": ["mxf"] - }, - "application/nasdata": { - "source": "iana" - }, - "application/news-checkgroups": { - "source": "iana" - }, - "application/news-groupinfo": { - "source": "iana" - }, - "application/news-transmission": { - "source": "iana" - }, - "application/nlsml+xml": { - "source": "iana" - }, - "application/nss": { - "source": "iana" - }, - "application/ocsp-request": { - "source": "iana" - }, - "application/ocsp-response": { - "source": "iana" - }, - "application/octet-stream": { - "source": "iana", - "compressible": false, - "extensions": ["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"] - }, - "application/oda": { - "source": "iana", - "extensions": ["oda"] - }, - "application/odx": { - "source": "iana" - }, - "application/oebps-package+xml": { - "source": "iana", - "extensions": ["opf"] - }, - "application/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["ogx"] - }, - "application/omdoc+xml": { - "source": "apache", - "extensions": ["omdoc"] - }, - "application/onenote": { - "source": "apache", - "extensions": ["onetoc","onetoc2","onetmp","onepkg"] - }, - "application/oxps": { - "source": "iana", - "extensions": ["oxps"] - }, - "application/p2p-overlay+xml": { - "source": "iana" - }, - "application/parityfec": { - "source": "iana" - }, - "application/patch-ops-error+xml": { - "source": "iana", - "extensions": ["xer"] - }, - "application/pdf": { - "source": "iana", - "compressible": false, - "extensions": ["pdf"] - }, - "application/pdx": { - "source": "iana" - }, - "application/pgp-encrypted": { - "source": "iana", - "compressible": false, - "extensions": ["pgp"] - }, - "application/pgp-keys": { - "source": "iana" - }, - "application/pgp-signature": { - "source": "iana", - "extensions": ["asc","sig"] - }, - "application/pics-rules": { - "source": "apache", - "extensions": ["prf"] - }, - "application/pidf+xml": { - "source": "iana" - }, - "application/pidf-diff+xml": { - "source": "iana" - }, - "application/pkcs10": { - "source": "iana", - "extensions": ["p10"] - }, - "application/pkcs12": { - "source": "iana" - }, - "application/pkcs7-mime": { - "source": "iana", - "extensions": ["p7m","p7c"] - }, - "application/pkcs7-signature": { - "source": "iana", - "extensions": ["p7s"] - }, - "application/pkcs8": { - "source": "iana", - "extensions": ["p8"] - }, - "application/pkix-attr-cert": { - "source": "iana", - "extensions": ["ac"] - }, - "application/pkix-cert": { - "source": "iana", - "extensions": ["cer"] - }, - "application/pkix-crl": { - "source": "iana", - "extensions": ["crl"] - }, - "application/pkix-pkipath": { - "source": "iana", - "extensions": ["pkipath"] - }, - "application/pkixcmp": { - "source": "iana", - "extensions": ["pki"] - }, - "application/pls+xml": { - "source": "iana", - "extensions": ["pls"] - }, - "application/poc-settings+xml": { - "source": "iana" - }, - "application/postscript": { - "source": "iana", - "compressible": true, - "extensions": ["ai","eps","ps"] - }, - "application/ppsp-tracker+json": { - "source": "iana", - "compressible": true - }, - "application/problem+json": { - "source": "iana", - "compressible": true - }, - "application/problem+xml": { - "source": "iana" - }, - "application/provenance+xml": { - "source": "iana" - }, - "application/prs.alvestrand.titrax-sheet": { - "source": "iana" - }, - "application/prs.cww": { - "source": "iana", - "extensions": ["cww"] - }, - "application/prs.hpub+zip": { - "source": "iana" - }, - "application/prs.nprend": { - "source": "iana" - }, - "application/prs.plucker": { - "source": "iana" - }, - "application/prs.rdf-xml-crypt": { - "source": "iana" - }, - "application/prs.xsf+xml": { - "source": "iana" - }, - "application/pskc+xml": { - "source": "iana", - "extensions": ["pskcxml"] - }, - "application/qsig": { - "source": "iana" - }, - "application/raptorfec": { - "source": "iana" - }, - "application/rdap+json": { - "source": "iana", - "compressible": true - }, - "application/rdf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rdf"] - }, - "application/reginfo+xml": { - "source": "iana", - "extensions": ["rif"] - }, - "application/relax-ng-compact-syntax": { - "source": "iana", - "extensions": ["rnc"] - }, - "application/remote-printing": { - "source": "iana" - }, - "application/reputon+json": { - "source": "iana", - "compressible": true - }, - "application/resource-lists+xml": { - "source": "iana", - "extensions": ["rl"] - }, - "application/resource-lists-diff+xml": { - "source": "iana", - "extensions": ["rld"] - }, - "application/rfc+xml": { - "source": "iana" - }, - "application/riscos": { - "source": "iana" - }, - "application/rlmi+xml": { - "source": "iana" - }, - "application/rls-services+xml": { - "source": "iana", - "extensions": ["rs"] - }, - "application/rpki-ghostbusters": { - "source": "iana", - "extensions": ["gbr"] - }, - "application/rpki-manifest": { - "source": "iana", - "extensions": ["mft"] - }, - "application/rpki-roa": { - "source": "iana", - "extensions": ["roa"] - }, - "application/rpki-updown": { - "source": "iana" - }, - "application/rsd+xml": { - "source": "apache", - "extensions": ["rsd"] - }, - "application/rss+xml": { - "source": "apache", - "compressible": true, - "extensions": ["rss"] - }, - "application/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "application/rtploopback": { - "source": "iana" - }, - "application/rtx": { - "source": "iana" - }, - "application/samlassertion+xml": { - "source": "iana" - }, - "application/samlmetadata+xml": { - "source": "iana" - }, - "application/sbml+xml": { - "source": "iana", - "extensions": ["sbml"] - }, - "application/scaip+xml": { - "source": "iana" - }, - "application/scim+json": { - "source": "iana", - "compressible": true - }, - "application/scvp-cv-request": { - "source": "iana", - "extensions": ["scq"] - }, - "application/scvp-cv-response": { - "source": "iana", - "extensions": ["scs"] - }, - "application/scvp-vp-request": { - "source": "iana", - "extensions": ["spq"] - }, - "application/scvp-vp-response": { - "source": "iana", - "extensions": ["spp"] - }, - "application/sdp": { - "source": "iana", - "extensions": ["sdp"] - }, - "application/sep+xml": { - "source": "iana" - }, - "application/sep-exi": { - "source": "iana" - }, - "application/session-info": { - "source": "iana" - }, - "application/set-payment": { - "source": "iana" - }, - "application/set-payment-initiation": { - "source": "iana", - "extensions": ["setpay"] - }, - "application/set-registration": { - "source": "iana" - }, - "application/set-registration-initiation": { - "source": "iana", - "extensions": ["setreg"] - }, - "application/sgml": { - "source": "iana" - }, - "application/sgml-open-catalog": { - "source": "iana" - }, - "application/shf+xml": { - "source": "iana", - "extensions": ["shf"] - }, - "application/sieve": { - "source": "iana" - }, - "application/simple-filter+xml": { - "source": "iana" - }, - "application/simple-message-summary": { - "source": "iana" - }, - "application/simplesymbolcontainer": { - "source": "iana" - }, - "application/slate": { - "source": "iana" - }, - "application/smil": { - "source": "iana" - }, - "application/smil+xml": { - "source": "iana", - "extensions": ["smi","smil"] - }, - "application/smpte336m": { - "source": "iana" - }, - "application/soap+fastinfoset": { - "source": "iana" - }, - "application/soap+xml": { - "source": "iana", - "compressible": true - }, - "application/sparql-query": { - "source": "iana", - "extensions": ["rq"] - }, - "application/sparql-results+xml": { - "source": "iana", - "extensions": ["srx"] - }, - "application/spirits-event+xml": { - "source": "iana" - }, - "application/sql": { - "source": "iana" - }, - "application/srgs": { - "source": "iana", - "extensions": ["gram"] - }, - "application/srgs+xml": { - "source": "iana", - "extensions": ["grxml"] - }, - "application/sru+xml": { - "source": "iana", - "extensions": ["sru"] - }, - "application/ssdl+xml": { - "source": "apache", - "extensions": ["ssdl"] - }, - "application/ssml+xml": { - "source": "iana", - "extensions": ["ssml"] - }, - "application/tamp-apex-update": { - "source": "iana" - }, - "application/tamp-apex-update-confirm": { - "source": "iana" - }, - "application/tamp-community-update": { - "source": "iana" - }, - "application/tamp-community-update-confirm": { - "source": "iana" - }, - "application/tamp-error": { - "source": "iana" - }, - "application/tamp-sequence-adjust": { - "source": "iana" - }, - "application/tamp-sequence-adjust-confirm": { - "source": "iana" - }, - "application/tamp-status-query": { - "source": "iana" - }, - "application/tamp-status-response": { - "source": "iana" - }, - "application/tamp-update": { - "source": "iana" - }, - "application/tamp-update-confirm": { - "source": "iana" - }, - "application/tar": { - "compressible": true - }, - "application/tei+xml": { - "source": "iana", - "extensions": ["tei","teicorpus"] - }, - "application/thraud+xml": { - "source": "iana", - "extensions": ["tfi"] - }, - "application/timestamp-query": { - "source": "iana" - }, - "application/timestamp-reply": { - "source": "iana" - }, - "application/timestamped-data": { - "source": "iana", - "extensions": ["tsd"] - }, - "application/ttml+xml": { - "source": "iana" - }, - "application/tve-trigger": { - "source": "iana" - }, - "application/ulpfec": { - "source": "iana" - }, - "application/urc-grpsheet+xml": { - "source": "iana" - }, - "application/urc-ressheet+xml": { - "source": "iana" - }, - "application/urc-targetdesc+xml": { - "source": "iana" - }, - "application/urc-uisocketdesc+xml": { - "source": "iana" - }, - "application/vcard+json": { - "source": "iana", - "compressible": true - }, - "application/vcard+xml": { - "source": "iana" - }, - "application/vemmi": { - "source": "iana" - }, - "application/vividence.scriptfile": { - "source": "apache" - }, - "application/vnd.3gpp-prose+xml": { - "source": "iana" - }, - "application/vnd.3gpp-prose-pc3ch+xml": { - "source": "iana" - }, - "application/vnd.3gpp.access-transfer-events+xml": { - "source": "iana" - }, - "application/vnd.3gpp.bsf+xml": { - "source": "iana" - }, - "application/vnd.3gpp.mid-call+xml": { - "source": "iana" - }, - "application/vnd.3gpp.pic-bw-large": { - "source": "iana", - "extensions": ["plb"] - }, - "application/vnd.3gpp.pic-bw-small": { - "source": "iana", - "extensions": ["psb"] - }, - "application/vnd.3gpp.pic-bw-var": { - "source": "iana", - "extensions": ["pvb"] - }, - "application/vnd.3gpp.sms": { - "source": "iana" - }, - "application/vnd.3gpp.sms+xml": { - "source": "iana" - }, - "application/vnd.3gpp.srvcc-ext+xml": { - "source": "iana" - }, - "application/vnd.3gpp.srvcc-info+xml": { - "source": "iana" - }, - "application/vnd.3gpp.state-and-event-info+xml": { - "source": "iana" - }, - "application/vnd.3gpp.ussd+xml": { - "source": "iana" - }, - "application/vnd.3gpp2.bcmcsinfo+xml": { - "source": "iana" - }, - "application/vnd.3gpp2.sms": { - "source": "iana" - }, - "application/vnd.3gpp2.tcap": { - "source": "iana", - "extensions": ["tcap"] - }, - "application/vnd.3lightssoftware.imagescal": { - "source": "iana" - }, - "application/vnd.3m.post-it-notes": { - "source": "iana", - "extensions": ["pwn"] - }, - "application/vnd.accpac.simply.aso": { - "source": "iana", - "extensions": ["aso"] - }, - "application/vnd.accpac.simply.imp": { - "source": "iana", - "extensions": ["imp"] - }, - "application/vnd.acucobol": { - "source": "iana", - "extensions": ["acu"] - }, - "application/vnd.acucorp": { - "source": "iana", - "extensions": ["atc","acutc"] - }, - "application/vnd.adobe.air-application-installer-package+zip": { - "source": "apache", - "extensions": ["air"] - }, - "application/vnd.adobe.flash.movie": { - "source": "iana" - }, - "application/vnd.adobe.formscentral.fcdt": { - "source": "iana", - "extensions": ["fcdt"] - }, - "application/vnd.adobe.fxp": { - "source": "iana", - "extensions": ["fxp","fxpl"] - }, - "application/vnd.adobe.partial-upload": { - "source": "iana" - }, - "application/vnd.adobe.xdp+xml": { - "source": "iana", - "extensions": ["xdp"] - }, - "application/vnd.adobe.xfdf": { - "source": "iana", - "extensions": ["xfdf"] - }, - "application/vnd.aether.imp": { - "source": "iana" - }, - "application/vnd.ah-barcode": { - "source": "iana" - }, - "application/vnd.ahead.space": { - "source": "iana", - "extensions": ["ahead"] - }, - "application/vnd.airzip.filesecure.azf": { - "source": "iana", - "extensions": ["azf"] - }, - "application/vnd.airzip.filesecure.azs": { - "source": "iana", - "extensions": ["azs"] - }, - "application/vnd.amazon.ebook": { - "source": "apache", - "extensions": ["azw"] - }, - "application/vnd.amazon.mobi8-ebook": { - "source": "iana" - }, - "application/vnd.americandynamics.acc": { - "source": "iana", - "extensions": ["acc"] - }, - "application/vnd.amiga.ami": { - "source": "iana", - "extensions": ["ami"] - }, - "application/vnd.amundsen.maze+xml": { - "source": "iana" - }, - "application/vnd.android.package-archive": { - "source": "apache", - "compressible": false, - "extensions": ["apk"] - }, - "application/vnd.anki": { - "source": "iana" - }, - "application/vnd.anser-web-certificate-issue-initiation": { - "source": "iana", - "extensions": ["cii"] - }, - "application/vnd.anser-web-funds-transfer-initiation": { - "source": "apache", - "extensions": ["fti"] - }, - "application/vnd.antix.game-component": { - "source": "iana", - "extensions": ["atx"] - }, - "application/vnd.apache.thrift.binary": { - "source": "iana" - }, - "application/vnd.apache.thrift.compact": { - "source": "iana" - }, - "application/vnd.apache.thrift.json": { - "source": "iana" - }, - "application/vnd.api+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.apple.installer+xml": { - "source": "iana", - "extensions": ["mpkg"] - }, - "application/vnd.apple.mpegurl": { - "source": "iana", - "extensions": ["m3u8"] - }, - "application/vnd.apple.pkpass": { - "compressible": false, - "extensions": ["pkpass"] - }, - "application/vnd.arastra.swi": { - "source": "iana" - }, - "application/vnd.aristanetworks.swi": { - "source": "iana", - "extensions": ["swi"] - }, - "application/vnd.artsquare": { - "source": "iana" - }, - "application/vnd.astraea-software.iota": { - "source": "iana", - "extensions": ["iota"] - }, - "application/vnd.audiograph": { - "source": "iana", - "extensions": ["aep"] - }, - "application/vnd.autopackage": { - "source": "iana" - }, - "application/vnd.avistar+xml": { - "source": "iana" - }, - "application/vnd.balsamiq.bmml+xml": { - "source": "iana" - }, - "application/vnd.balsamiq.bmpr": { - "source": "iana" - }, - "application/vnd.bekitzur-stech+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.biopax.rdf+xml": { - "source": "iana" - }, - "application/vnd.blueice.multipass": { - "source": "iana", - "extensions": ["mpm"] - }, - "application/vnd.bluetooth.ep.oob": { - "source": "iana" - }, - "application/vnd.bluetooth.le.oob": { - "source": "iana" - }, - "application/vnd.bmi": { - "source": "iana", - "extensions": ["bmi"] - }, - "application/vnd.businessobjects": { - "source": "iana", - "extensions": ["rep"] - }, - "application/vnd.cab-jscript": { - "source": "iana" - }, - "application/vnd.canon-cpdl": { - "source": "iana" - }, - "application/vnd.canon-lips": { - "source": "iana" - }, - "application/vnd.cendio.thinlinc.clientconf": { - "source": "iana" - }, - "application/vnd.century-systems.tcp_stream": { - "source": "iana" - }, - "application/vnd.chemdraw+xml": { - "source": "iana", - "extensions": ["cdxml"] - }, - "application/vnd.chess-pgn": { - "source": "iana" - }, - "application/vnd.chipnuts.karaoke-mmd": { - "source": "iana", - "extensions": ["mmd"] - }, - "application/vnd.cinderella": { - "source": "iana", - "extensions": ["cdy"] - }, - "application/vnd.cirpack.isdn-ext": { - "source": "iana" - }, - "application/vnd.citationstyles.style+xml": { - "source": "iana" - }, - "application/vnd.claymore": { - "source": "iana", - "extensions": ["cla"] - }, - "application/vnd.cloanto.rp9": { - "source": "iana", - "extensions": ["rp9"] - }, - "application/vnd.clonk.c4group": { - "source": "iana", - "extensions": ["c4g","c4d","c4f","c4p","c4u"] - }, - "application/vnd.cluetrust.cartomobile-config": { - "source": "iana", - "extensions": ["c11amc"] - }, - "application/vnd.cluetrust.cartomobile-config-pkg": { - "source": "iana", - "extensions": ["c11amz"] - }, - "application/vnd.coffeescript": { - "source": "iana" - }, - "application/vnd.collection+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.doc+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.next+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.comicbook+zip": { - "source": "iana" - }, - "application/vnd.commerce-battelle": { - "source": "iana" - }, - "application/vnd.commonspace": { - "source": "iana", - "extensions": ["csp"] - }, - "application/vnd.contact.cmsg": { - "source": "iana", - "extensions": ["cdbcmsg"] - }, - "application/vnd.coreos.ignition+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cosmocaller": { - "source": "iana", - "extensions": ["cmc"] - }, - "application/vnd.crick.clicker": { - "source": "iana", - "extensions": ["clkx"] - }, - "application/vnd.crick.clicker.keyboard": { - "source": "iana", - "extensions": ["clkk"] - }, - "application/vnd.crick.clicker.palette": { - "source": "iana", - "extensions": ["clkp"] - }, - "application/vnd.crick.clicker.template": { - "source": "iana", - "extensions": ["clkt"] - }, - "application/vnd.crick.clicker.wordbank": { - "source": "iana", - "extensions": ["clkw"] - }, - "application/vnd.criticaltools.wbs+xml": { - "source": "iana", - "extensions": ["wbs"] - }, - "application/vnd.ctc-posml": { - "source": "iana", - "extensions": ["pml"] - }, - "application/vnd.ctct.ws+xml": { - "source": "iana" - }, - "application/vnd.cups-pdf": { - "source": "iana" - }, - "application/vnd.cups-postscript": { - "source": "iana" - }, - "application/vnd.cups-ppd": { - "source": "iana", - "extensions": ["ppd"] - }, - "application/vnd.cups-raster": { - "source": "iana" - }, - "application/vnd.cups-raw": { - "source": "iana" - }, - "application/vnd.curl": { - "source": "iana" - }, - "application/vnd.curl.car": { - "source": "apache", - "extensions": ["car"] - }, - "application/vnd.curl.pcurl": { - "source": "apache", - "extensions": ["pcurl"] - }, - "application/vnd.cyan.dean.root+xml": { - "source": "iana" - }, - "application/vnd.cybank": { - "source": "iana" - }, - "application/vnd.d2l.coursepackage1p0+zip": { - "source": "iana" - }, - "application/vnd.dart": { - "source": "iana", - "compressible": true, - "extensions": ["dart"] - }, - "application/vnd.data-vision.rdz": { - "source": "iana", - "extensions": ["rdz"] - }, - "application/vnd.debian.binary-package": { - "source": "iana" - }, - "application/vnd.dece.data": { - "source": "iana", - "extensions": ["uvf","uvvf","uvd","uvvd"] - }, - "application/vnd.dece.ttml+xml": { - "source": "iana", - "extensions": ["uvt","uvvt"] - }, - "application/vnd.dece.unspecified": { - "source": "iana", - "extensions": ["uvx","uvvx"] - }, - "application/vnd.dece.zip": { - "source": "iana", - "extensions": ["uvz","uvvz"] - }, - "application/vnd.denovo.fcselayout-link": { - "source": "iana", - "extensions": ["fe_launch"] - }, - "application/vnd.desmume-movie": { - "source": "iana" - }, - "application/vnd.desmume.movie": { - "source": "apache" - }, - "application/vnd.dir-bi.plate-dl-nosuffix": { - "source": "iana" - }, - "application/vnd.dm.delegation+xml": { - "source": "iana" - }, - "application/vnd.dna": { - "source": "iana", - "extensions": ["dna"] - }, - "application/vnd.document+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.dolby.mlp": { - "source": "apache", - "extensions": ["mlp"] - }, - "application/vnd.dolby.mobile.1": { - "source": "iana" - }, - "application/vnd.dolby.mobile.2": { - "source": "iana" - }, - "application/vnd.doremir.scorecloud-binary-document": { - "source": "iana" - }, - "application/vnd.dpgraph": { - "source": "iana", - "extensions": ["dpg"] - }, - "application/vnd.dreamfactory": { - "source": "iana", - "extensions": ["dfac"] - }, - "application/vnd.drive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ds-keypoint": { - "source": "apache", - "extensions": ["kpxx"] - }, - "application/vnd.dtg.local": { - "source": "iana" - }, - "application/vnd.dtg.local.flash": { - "source": "iana" - }, - "application/vnd.dtg.local.html": { - "source": "iana" - }, - "application/vnd.dvb.ait": { - "source": "iana", - "extensions": ["ait"] - }, - "application/vnd.dvb.dvbj": { - "source": "iana" - }, - "application/vnd.dvb.esgcontainer": { - "source": "iana" - }, - "application/vnd.dvb.ipdcdftnotifaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess2": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgpdd": { - "source": "iana" - }, - "application/vnd.dvb.ipdcroaming": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-base": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-enhancement": { - "source": "iana" - }, - "application/vnd.dvb.notif-aggregate-root+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-container+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-generic+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-msglist+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-registration-request+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-registration-response+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-init+xml": { - "source": "iana" - }, - "application/vnd.dvb.pfr": { - "source": "iana" - }, - "application/vnd.dvb.service": { - "source": "iana", - "extensions": ["svc"] - }, - "application/vnd.dxr": { - "source": "iana" - }, - "application/vnd.dynageo": { - "source": "iana", - "extensions": ["geo"] - }, - "application/vnd.dzr": { - "source": "iana" - }, - "application/vnd.easykaraoke.cdgdownload": { - "source": "iana" - }, - "application/vnd.ecdis-update": { - "source": "iana" - }, - "application/vnd.ecowin.chart": { - "source": "iana", - "extensions": ["mag"] - }, - "application/vnd.ecowin.filerequest": { - "source": "iana" - }, - "application/vnd.ecowin.fileupdate": { - "source": "iana" - }, - "application/vnd.ecowin.series": { - "source": "iana" - }, - "application/vnd.ecowin.seriesrequest": { - "source": "iana" - }, - "application/vnd.ecowin.seriesupdate": { - "source": "iana" - }, - "application/vnd.emclient.accessrequest+xml": { - "source": "iana" - }, - "application/vnd.enliven": { - "source": "iana", - "extensions": ["nml"] - }, - "application/vnd.enphase.envoy": { - "source": "iana" - }, - "application/vnd.eprints.data+xml": { - "source": "iana" - }, - "application/vnd.epson.esf": { - "source": "iana", - "extensions": ["esf"] - }, - "application/vnd.epson.msf": { - "source": "iana", - "extensions": ["msf"] - }, - "application/vnd.epson.quickanime": { - "source": "iana", - "extensions": ["qam"] - }, - "application/vnd.epson.salt": { - "source": "iana", - "extensions": ["slt"] - }, - "application/vnd.epson.ssf": { - "source": "iana", - "extensions": ["ssf"] - }, - "application/vnd.ericsson.quickcall": { - "source": "iana" - }, - "application/vnd.espass-espass+zip": { - "source": "iana" - }, - "application/vnd.eszigno3+xml": { - "source": "iana", - "extensions": ["es3","et3"] - }, - "application/vnd.etsi.aoc+xml": { - "source": "iana" - }, - "application/vnd.etsi.asic-e+zip": { - "source": "iana" - }, - "application/vnd.etsi.asic-s+zip": { - "source": "iana" - }, - "application/vnd.etsi.cug+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvcommand+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvdiscovery+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvprofile+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-bc+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-cod+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-npvr+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvservice+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsync+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvueprofile+xml": { - "source": "iana" - }, - "application/vnd.etsi.mcid+xml": { - "source": "iana" - }, - "application/vnd.etsi.mheg5": { - "source": "iana" - }, - "application/vnd.etsi.overload-control-policy-dataset+xml": { - "source": "iana" - }, - "application/vnd.etsi.pstn+xml": { - "source": "iana" - }, - "application/vnd.etsi.sci+xml": { - "source": "iana" - }, - "application/vnd.etsi.simservs+xml": { - "source": "iana" - }, - "application/vnd.etsi.timestamp-token": { - "source": "iana" - }, - "application/vnd.etsi.tsl+xml": { - "source": "iana" - }, - "application/vnd.etsi.tsl.der": { - "source": "iana" - }, - "application/vnd.eudora.data": { - "source": "iana" - }, - "application/vnd.ezpix-album": { - "source": "iana", - "extensions": ["ez2"] - }, - "application/vnd.ezpix-package": { - "source": "iana", - "extensions": ["ez3"] - }, - "application/vnd.f-secure.mobile": { - "source": "iana" - }, - "application/vnd.fastcopy-disk-image": { - "source": "iana" - }, - "application/vnd.fdf": { - "source": "iana", - "extensions": ["fdf"] - }, - "application/vnd.fdsn.mseed": { - "source": "iana", - "extensions": ["mseed"] - }, - "application/vnd.fdsn.seed": { - "source": "iana", - "extensions": ["seed","dataless"] - }, - "application/vnd.ffsns": { - "source": "iana" - }, - "application/vnd.filmit.zfc": { - "source": "iana" - }, - "application/vnd.fints": { - "source": "iana" - }, - "application/vnd.firemonkeys.cloudcell": { - "source": "iana" - }, - "application/vnd.flographit": { - "source": "iana", - "extensions": ["gph"] - }, - "application/vnd.fluxtime.clip": { - "source": "iana", - "extensions": ["ftc"] - }, - "application/vnd.font-fontforge-sfd": { - "source": "iana" - }, - "application/vnd.framemaker": { - "source": "iana", - "extensions": ["fm","frame","maker","book"] - }, - "application/vnd.frogans.fnc": { - "source": "iana", - "extensions": ["fnc"] - }, - "application/vnd.frogans.ltf": { - "source": "iana", - "extensions": ["ltf"] - }, - "application/vnd.fsc.weblaunch": { - "source": "iana", - "extensions": ["fsc"] - }, - "application/vnd.fujitsu.oasys": { - "source": "iana", - "extensions": ["oas"] - }, - "application/vnd.fujitsu.oasys2": { - "source": "iana", - "extensions": ["oa2"] - }, - "application/vnd.fujitsu.oasys3": { - "source": "iana", - "extensions": ["oa3"] - }, - "application/vnd.fujitsu.oasysgp": { - "source": "iana", - "extensions": ["fg5"] - }, - "application/vnd.fujitsu.oasysprs": { - "source": "iana", - "extensions": ["bh2"] - }, - "application/vnd.fujixerox.art-ex": { - "source": "iana" - }, - "application/vnd.fujixerox.art4": { - "source": "iana" - }, - "application/vnd.fujixerox.ddd": { - "source": "iana", - "extensions": ["ddd"] - }, - "application/vnd.fujixerox.docuworks": { - "source": "iana", - "extensions": ["xdw"] - }, - "application/vnd.fujixerox.docuworks.binder": { - "source": "iana", - "extensions": ["xbd"] - }, - "application/vnd.fujixerox.docuworks.container": { - "source": "iana" - }, - "application/vnd.fujixerox.hbpl": { - "source": "iana" - }, - "application/vnd.fut-misnet": { - "source": "iana" - }, - "application/vnd.fuzzysheet": { - "source": "iana", - "extensions": ["fzs"] - }, - "application/vnd.genomatix.tuxedo": { - "source": "iana", - "extensions": ["txd"] - }, - "application/vnd.geo+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.geocube+xml": { - "source": "iana" - }, - "application/vnd.geogebra.file": { - "source": "iana", - "extensions": ["ggb"] - }, - "application/vnd.geogebra.tool": { - "source": "iana", - "extensions": ["ggt"] - }, - "application/vnd.geometry-explorer": { - "source": "iana", - "extensions": ["gex","gre"] - }, - "application/vnd.geonext": { - "source": "iana", - "extensions": ["gxt"] - }, - "application/vnd.geoplan": { - "source": "iana", - "extensions": ["g2w"] - }, - "application/vnd.geospace": { - "source": "iana", - "extensions": ["g3w"] - }, - "application/vnd.gerber": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt-response": { - "source": "iana" - }, - "application/vnd.gmx": { - "source": "iana", - "extensions": ["gmx"] - }, - "application/vnd.google-apps.document": { - "compressible": false, - "extensions": ["gdoc"] - }, - "application/vnd.google-apps.presentation": { - "compressible": false, - "extensions": ["gslides"] - }, - "application/vnd.google-apps.spreadsheet": { - "compressible": false, - "extensions": ["gsheet"] - }, - "application/vnd.google-earth.kml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["kml"] - }, - "application/vnd.google-earth.kmz": { - "source": "iana", - "compressible": false, - "extensions": ["kmz"] - }, - "application/vnd.gov.sk.e-form+xml": { - "source": "iana" - }, - "application/vnd.gov.sk.e-form+zip": { - "source": "iana" - }, - "application/vnd.gov.sk.xmldatacontainer+xml": { - "source": "iana" - }, - "application/vnd.grafeq": { - "source": "iana", - "extensions": ["gqf","gqs"] - }, - "application/vnd.gridmp": { - "source": "iana" - }, - "application/vnd.groove-account": { - "source": "iana", - "extensions": ["gac"] - }, - "application/vnd.groove-help": { - "source": "iana", - "extensions": ["ghf"] - }, - "application/vnd.groove-identity-message": { - "source": "iana", - "extensions": ["gim"] - }, - "application/vnd.groove-injector": { - "source": "iana", - "extensions": ["grv"] - }, - "application/vnd.groove-tool-message": { - "source": "iana", - "extensions": ["gtm"] - }, - "application/vnd.groove-tool-template": { - "source": "iana", - "extensions": ["tpl"] - }, - "application/vnd.groove-vcard": { - "source": "iana", - "extensions": ["vcg"] - }, - "application/vnd.hal+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hal+xml": { - "source": "iana", - "extensions": ["hal"] - }, - "application/vnd.handheld-entertainment+xml": { - "source": "iana", - "extensions": ["zmm"] - }, - "application/vnd.hbci": { - "source": "iana", - "extensions": ["hbci"] - }, - "application/vnd.hcl-bireports": { - "source": "iana" - }, - "application/vnd.hdt": { - "source": "iana" - }, - "application/vnd.heroku+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hhe.lesson-player": { - "source": "iana", - "extensions": ["les"] - }, - "application/vnd.hp-hpgl": { - "source": "iana", - "extensions": ["hpgl"] - }, - "application/vnd.hp-hpid": { - "source": "iana", - "extensions": ["hpid"] - }, - "application/vnd.hp-hps": { - "source": "iana", - "extensions": ["hps"] - }, - "application/vnd.hp-jlyt": { - "source": "iana", - "extensions": ["jlt"] - }, - "application/vnd.hp-pcl": { - "source": "iana", - "extensions": ["pcl"] - }, - "application/vnd.hp-pclxl": { - "source": "iana", - "extensions": ["pclxl"] - }, - "application/vnd.httphone": { - "source": "iana" - }, - "application/vnd.hydrostatix.sof-data": { - "source": "iana", - "extensions": ["sfd-hdstx"] - }, - "application/vnd.hyperdrive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hzn-3d-crossword": { - "source": "iana" - }, - "application/vnd.ibm.afplinedata": { - "source": "iana" - }, - "application/vnd.ibm.electronic-media": { - "source": "iana" - }, - "application/vnd.ibm.minipay": { - "source": "iana", - "extensions": ["mpy"] - }, - "application/vnd.ibm.modcap": { - "source": "iana", - "extensions": ["afp","listafp","list3820"] - }, - "application/vnd.ibm.rights-management": { - "source": "iana", - "extensions": ["irm"] - }, - "application/vnd.ibm.secure-container": { - "source": "iana", - "extensions": ["sc"] - }, - "application/vnd.iccprofile": { - "source": "iana", - "extensions": ["icc","icm"] - }, - "application/vnd.ieee.1905": { - "source": "iana" - }, - "application/vnd.igloader": { - "source": "iana", - "extensions": ["igl"] - }, - "application/vnd.immervision-ivp": { - "source": "iana", - "extensions": ["ivp"] - }, - "application/vnd.immervision-ivu": { - "source": "iana", - "extensions": ["ivu"] - }, - "application/vnd.ims.imsccv1p1": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p2": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p3": { - "source": "iana" - }, - "application/vnd.ims.lis.v2.result+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolconsumerprofile+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy.id+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings.simple+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.informedcontrol.rms+xml": { - "source": "iana" - }, - "application/vnd.informix-visionary": { - "source": "iana" - }, - "application/vnd.infotech.project": { - "source": "iana" - }, - "application/vnd.infotech.project+xml": { - "source": "iana" - }, - "application/vnd.innopath.wamp.notification": { - "source": "iana" - }, - "application/vnd.insors.igm": { - "source": "iana", - "extensions": ["igm"] - }, - "application/vnd.intercon.formnet": { - "source": "iana", - "extensions": ["xpw","xpx"] - }, - "application/vnd.intergeo": { - "source": "iana", - "extensions": ["i2g"] - }, - "application/vnd.intertrust.digibox": { - "source": "iana" - }, - "application/vnd.intertrust.nncp": { - "source": "iana" - }, - "application/vnd.intu.qbo": { - "source": "iana", - "extensions": ["qbo"] - }, - "application/vnd.intu.qfx": { - "source": "iana", - "extensions": ["qfx"] - }, - "application/vnd.iptc.g2.catalogitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.conceptitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.knowledgeitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.newsitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.newsmessage+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.packageitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.planningitem+xml": { - "source": "iana" - }, - "application/vnd.ipunplugged.rcprofile": { - "source": "iana", - "extensions": ["rcprofile"] - }, - "application/vnd.irepository.package+xml": { - "source": "iana", - "extensions": ["irp"] - }, - "application/vnd.is-xpr": { - "source": "iana", - "extensions": ["xpr"] - }, - "application/vnd.isac.fcs": { - "source": "iana", - "extensions": ["fcs"] - }, - "application/vnd.jam": { - "source": "iana", - "extensions": ["jam"] - }, - "application/vnd.japannet-directory-service": { - "source": "iana" - }, - "application/vnd.japannet-jpnstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-payment-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-registration": { - "source": "iana" - }, - "application/vnd.japannet-registration-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-setstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-verification": { - "source": "iana" - }, - "application/vnd.japannet-verification-wakeup": { - "source": "iana" - }, - "application/vnd.jcp.javame.midlet-rms": { - "source": "iana", - "extensions": ["rms"] - }, - "application/vnd.jisp": { - "source": "iana", - "extensions": ["jisp"] - }, - "application/vnd.joost.joda-archive": { - "source": "iana", - "extensions": ["joda"] - }, - "application/vnd.jsk.isdn-ngn": { - "source": "iana" - }, - "application/vnd.kahootz": { - "source": "iana", - "extensions": ["ktz","ktr"] - }, - "application/vnd.kde.karbon": { - "source": "iana", - "extensions": ["karbon"] - }, - "application/vnd.kde.kchart": { - "source": "iana", - "extensions": ["chrt"] - }, - "application/vnd.kde.kformula": { - "source": "iana", - "extensions": ["kfo"] - }, - "application/vnd.kde.kivio": { - "source": "iana", - "extensions": ["flw"] - }, - "application/vnd.kde.kontour": { - "source": "iana", - "extensions": ["kon"] - }, - "application/vnd.kde.kpresenter": { - "source": "iana", - "extensions": ["kpr","kpt"] - }, - "application/vnd.kde.kspread": { - "source": "iana", - "extensions": ["ksp"] - }, - "application/vnd.kde.kword": { - "source": "iana", - "extensions": ["kwd","kwt"] - }, - "application/vnd.kenameaapp": { - "source": "iana", - "extensions": ["htke"] - }, - "application/vnd.kidspiration": { - "source": "iana", - "extensions": ["kia"] - }, - "application/vnd.kinar": { - "source": "iana", - "extensions": ["kne","knp"] - }, - "application/vnd.koan": { - "source": "iana", - "extensions": ["skp","skd","skt","skm"] - }, - "application/vnd.kodak-descriptor": { - "source": "iana", - "extensions": ["sse"] - }, - "application/vnd.las.las+xml": { - "source": "iana", - "extensions": ["lasxml"] - }, - "application/vnd.liberty-request+xml": { - "source": "iana" - }, - "application/vnd.llamagraphics.life-balance.desktop": { - "source": "iana", - "extensions": ["lbd"] - }, - "application/vnd.llamagraphics.life-balance.exchange+xml": { - "source": "iana", - "extensions": ["lbe"] - }, - "application/vnd.lotus-1-2-3": { - "source": "iana", - "extensions": ["123"] - }, - "application/vnd.lotus-approach": { - "source": "iana", - "extensions": ["apr"] - }, - "application/vnd.lotus-freelance": { - "source": "iana", - "extensions": ["pre"] - }, - "application/vnd.lotus-notes": { - "source": "iana", - "extensions": ["nsf"] - }, - "application/vnd.lotus-organizer": { - "source": "iana", - "extensions": ["org"] - }, - "application/vnd.lotus-screencam": { - "source": "iana", - "extensions": ["scm"] - }, - "application/vnd.lotus-wordpro": { - "source": "iana", - "extensions": ["lwp"] - }, - "application/vnd.macports.portpkg": { - "source": "iana", - "extensions": ["portpkg"] - }, - "application/vnd.mapbox-vector-tile": { - "source": "iana" - }, - "application/vnd.marlin.drm.actiontoken+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.conftoken+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.license+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.mdcf": { - "source": "iana" - }, - "application/vnd.mason+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.maxmind.maxmind-db": { - "source": "iana" - }, - "application/vnd.mcd": { - "source": "iana", - "extensions": ["mcd"] - }, - "application/vnd.medcalcdata": { - "source": "iana", - "extensions": ["mc1"] - }, - "application/vnd.mediastation.cdkey": { - "source": "iana", - "extensions": ["cdkey"] - }, - "application/vnd.meridian-slingshot": { - "source": "iana" - }, - "application/vnd.mfer": { - "source": "iana", - "extensions": ["mwf"] - }, - "application/vnd.mfmp": { - "source": "iana", - "extensions": ["mfm"] - }, - "application/vnd.micro+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.micrografx.flo": { - "source": "iana", - "extensions": ["flo"] - }, - "application/vnd.micrografx.igx": { - "source": "iana", - "extensions": ["igx"] - }, - "application/vnd.microsoft.portable-executable": { - "source": "iana" - }, - "application/vnd.miele+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.mif": { - "source": "iana", - "extensions": ["mif"] - }, - "application/vnd.minisoft-hp3000-save": { - "source": "iana" - }, - "application/vnd.mitsubishi.misty-guard.trustweb": { - "source": "iana" - }, - "application/vnd.mobius.daf": { - "source": "iana", - "extensions": ["daf"] - }, - "application/vnd.mobius.dis": { - "source": "iana", - "extensions": ["dis"] - }, - "application/vnd.mobius.mbk": { - "source": "iana", - "extensions": ["mbk"] - }, - "application/vnd.mobius.mqy": { - "source": "iana", - "extensions": ["mqy"] - }, - "application/vnd.mobius.msl": { - "source": "iana", - "extensions": ["msl"] - }, - "application/vnd.mobius.plc": { - "source": "iana", - "extensions": ["plc"] - }, - "application/vnd.mobius.txf": { - "source": "iana", - "extensions": ["txf"] - }, - "application/vnd.mophun.application": { - "source": "iana", - "extensions": ["mpn"] - }, - "application/vnd.mophun.certificate": { - "source": "iana", - "extensions": ["mpc"] - }, - "application/vnd.motorola.flexsuite": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.adsi": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.fis": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.gotap": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.kmr": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.ttc": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.wem": { - "source": "iana" - }, - "application/vnd.motorola.iprm": { - "source": "iana" - }, - "application/vnd.mozilla.xul+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xul"] - }, - "application/vnd.ms-3mfdocument": { - "source": "iana" - }, - "application/vnd.ms-artgalry": { - "source": "iana", - "extensions": ["cil"] - }, - "application/vnd.ms-asf": { - "source": "iana" - }, - "application/vnd.ms-cab-compressed": { - "source": "iana", - "extensions": ["cab"] - }, - "application/vnd.ms-color.iccprofile": { - "source": "apache" - }, - "application/vnd.ms-excel": { - "source": "iana", - "compressible": false, - "extensions": ["xls","xlm","xla","xlc","xlt","xlw"] - }, - "application/vnd.ms-excel.addin.macroenabled.12": { - "source": "iana", - "extensions": ["xlam"] - }, - "application/vnd.ms-excel.sheet.binary.macroenabled.12": { - "source": "iana", - "extensions": ["xlsb"] - }, - "application/vnd.ms-excel.sheet.macroenabled.12": { - "source": "iana", - "extensions": ["xlsm"] - }, - "application/vnd.ms-excel.template.macroenabled.12": { - "source": "iana", - "extensions": ["xltm"] - }, - "application/vnd.ms-fontobject": { - "source": "iana", - "compressible": true, - "extensions": ["eot"] - }, - "application/vnd.ms-htmlhelp": { - "source": "iana", - "extensions": ["chm"] - }, - "application/vnd.ms-ims": { - "source": "iana", - "extensions": ["ims"] - }, - "application/vnd.ms-lrm": { - "source": "iana", - "extensions": ["lrm"] - }, - "application/vnd.ms-office.activex+xml": { - "source": "iana" - }, - "application/vnd.ms-officetheme": { - "source": "iana", - "extensions": ["thmx"] - }, - "application/vnd.ms-opentype": { - "source": "apache", - "compressible": true - }, - "application/vnd.ms-package.obfuscated-opentype": { - "source": "apache" - }, - "application/vnd.ms-pki.seccat": { - "source": "apache", - "extensions": ["cat"] - }, - "application/vnd.ms-pki.stl": { - "source": "apache", - "extensions": ["stl"] - }, - "application/vnd.ms-playready.initiator+xml": { - "source": "iana" - }, - "application/vnd.ms-powerpoint": { - "source": "iana", - "compressible": false, - "extensions": ["ppt","pps","pot"] - }, - "application/vnd.ms-powerpoint.addin.macroenabled.12": { - "source": "iana", - "extensions": ["ppam"] - }, - "application/vnd.ms-powerpoint.presentation.macroenabled.12": { - "source": "iana", - "extensions": ["pptm"] - }, - "application/vnd.ms-powerpoint.slide.macroenabled.12": { - "source": "iana", - "extensions": ["sldm"] - }, - "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { - "source": "iana", - "extensions": ["ppsm"] - }, - "application/vnd.ms-powerpoint.template.macroenabled.12": { - "source": "iana", - "extensions": ["potm"] - }, - "application/vnd.ms-printdevicecapabilities+xml": { - "source": "iana" - }, - "application/vnd.ms-printing.printticket+xml": { - "source": "apache" - }, - "application/vnd.ms-printschematicket+xml": { - "source": "iana" - }, - "application/vnd.ms-project": { - "source": "iana", - "extensions": ["mpp","mpt"] - }, - "application/vnd.ms-tnef": { - "source": "iana" - }, - "application/vnd.ms-windows.devicepairing": { - "source": "iana" - }, - "application/vnd.ms-windows.nwprinting.oob": { - "source": "iana" - }, - "application/vnd.ms-windows.printerpairing": { - "source": "iana" - }, - "application/vnd.ms-windows.wsd.oob": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-resp": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-resp": { - "source": "iana" - }, - "application/vnd.ms-word.document.macroenabled.12": { - "source": "iana", - "extensions": ["docm"] - }, - "application/vnd.ms-word.template.macroenabled.12": { - "source": "iana", - "extensions": ["dotm"] - }, - "application/vnd.ms-works": { - "source": "iana", - "extensions": ["wps","wks","wcm","wdb"] - }, - "application/vnd.ms-wpl": { - "source": "iana", - "extensions": ["wpl"] - }, - "application/vnd.ms-xpsdocument": { - "source": "iana", - "compressible": false, - "extensions": ["xps"] - }, - "application/vnd.msa-disk-image": { - "source": "iana" - }, - "application/vnd.mseq": { - "source": "iana", - "extensions": ["mseq"] - }, - "application/vnd.msign": { - "source": "iana" - }, - "application/vnd.multiad.creator": { - "source": "iana" - }, - "application/vnd.multiad.creator.cif": { - "source": "iana" - }, - "application/vnd.music-niff": { - "source": "iana" - }, - "application/vnd.musician": { - "source": "iana", - "extensions": ["mus"] - }, - "application/vnd.muvee.style": { - "source": "iana", - "extensions": ["msty"] - }, - "application/vnd.mynfc": { - "source": "iana", - "extensions": ["taglet"] - }, - "application/vnd.ncd.control": { - "source": "iana" - }, - "application/vnd.ncd.reference": { - "source": "iana" - }, - "application/vnd.nearst.inv+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.nervana": { - "source": "iana" - }, - "application/vnd.netfpx": { - "source": "iana" - }, - "application/vnd.neurolanguage.nlu": { - "source": "iana", - "extensions": ["nlu"] - }, - "application/vnd.nintendo.nitro.rom": { - "source": "iana" - }, - "application/vnd.nintendo.snes.rom": { - "source": "iana" - }, - "application/vnd.nitf": { - "source": "iana", - "extensions": ["ntf","nitf"] - }, - "application/vnd.noblenet-directory": { - "source": "iana", - "extensions": ["nnd"] - }, - "application/vnd.noblenet-sealer": { - "source": "iana", - "extensions": ["nns"] - }, - "application/vnd.noblenet-web": { - "source": "iana", - "extensions": ["nnw"] - }, - "application/vnd.nokia.catalogs": { - "source": "iana" - }, - "application/vnd.nokia.conml+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.conml+xml": { - "source": "iana" - }, - "application/vnd.nokia.iptv.config+xml": { - "source": "iana" - }, - "application/vnd.nokia.isds-radio-presets": { - "source": "iana" - }, - "application/vnd.nokia.landmark+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.landmark+xml": { - "source": "iana" - }, - "application/vnd.nokia.landmarkcollection+xml": { - "source": "iana" - }, - "application/vnd.nokia.n-gage.ac+xml": { - "source": "iana" - }, - "application/vnd.nokia.n-gage.data": { - "source": "iana", - "extensions": ["ngdat"] - }, - "application/vnd.nokia.n-gage.symbian.install": { - "source": "iana", - "extensions": ["n-gage"] - }, - "application/vnd.nokia.ncd": { - "source": "iana" - }, - "application/vnd.nokia.pcd+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.pcd+xml": { - "source": "iana" - }, - "application/vnd.nokia.radio-preset": { - "source": "iana", - "extensions": ["rpst"] - }, - "application/vnd.nokia.radio-presets": { - "source": "iana", - "extensions": ["rpss"] - }, - "application/vnd.novadigm.edm": { - "source": "iana", - "extensions": ["edm"] - }, - "application/vnd.novadigm.edx": { - "source": "iana", - "extensions": ["edx"] - }, - "application/vnd.novadigm.ext": { - "source": "iana", - "extensions": ["ext"] - }, - "application/vnd.ntt-local.content-share": { - "source": "iana" - }, - "application/vnd.ntt-local.file-transfer": { - "source": "iana" - }, - "application/vnd.ntt-local.ogw_remote-access": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_remote": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_tcp_stream": { - "source": "iana" - }, - "application/vnd.oasis.opendocument.chart": { - "source": "iana", - "extensions": ["odc"] - }, - "application/vnd.oasis.opendocument.chart-template": { - "source": "iana", - "extensions": ["otc"] - }, - "application/vnd.oasis.opendocument.database": { - "source": "iana", - "extensions": ["odb"] - }, - "application/vnd.oasis.opendocument.formula": { - "source": "iana", - "extensions": ["odf"] - }, - "application/vnd.oasis.opendocument.formula-template": { - "source": "iana", - "extensions": ["odft"] - }, - "application/vnd.oasis.opendocument.graphics": { - "source": "iana", - "compressible": false, - "extensions": ["odg"] - }, - "application/vnd.oasis.opendocument.graphics-template": { - "source": "iana", - "extensions": ["otg"] - }, - "application/vnd.oasis.opendocument.image": { - "source": "iana", - "extensions": ["odi"] - }, - "application/vnd.oasis.opendocument.image-template": { - "source": "iana", - "extensions": ["oti"] - }, - "application/vnd.oasis.opendocument.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["odp"] - }, - "application/vnd.oasis.opendocument.presentation-template": { - "source": "iana", - "extensions": ["otp"] - }, - "application/vnd.oasis.opendocument.spreadsheet": { - "source": "iana", - "compressible": false, - "extensions": ["ods"] - }, - "application/vnd.oasis.opendocument.spreadsheet-template": { - "source": "iana", - "extensions": ["ots"] - }, - "application/vnd.oasis.opendocument.text": { - "source": "iana", - "compressible": false, - "extensions": ["odt"] - }, - "application/vnd.oasis.opendocument.text-master": { - "source": "iana", - "extensions": ["odm"] - }, - "application/vnd.oasis.opendocument.text-template": { - "source": "iana", - "extensions": ["ott"] - }, - "application/vnd.oasis.opendocument.text-web": { - "source": "iana", - "extensions": ["oth"] - }, - "application/vnd.obn": { - "source": "iana" - }, - "application/vnd.oftn.l10n+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.contentaccessdownload+xml": { - "source": "iana" - }, - "application/vnd.oipf.contentaccessstreaming+xml": { - "source": "iana" - }, - "application/vnd.oipf.cspg-hexbinary": { - "source": "iana" - }, - "application/vnd.oipf.dae.svg+xml": { - "source": "iana" - }, - "application/vnd.oipf.dae.xhtml+xml": { - "source": "iana" - }, - "application/vnd.oipf.mippvcontrolmessage+xml": { - "source": "iana" - }, - "application/vnd.oipf.pae.gem": { - "source": "iana" - }, - "application/vnd.oipf.spdiscovery+xml": { - "source": "iana" - }, - "application/vnd.oipf.spdlist+xml": { - "source": "iana" - }, - "application/vnd.oipf.ueprofile+xml": { - "source": "iana" - }, - "application/vnd.oipf.userprofile+xml": { - "source": "iana" - }, - "application/vnd.olpc-sugar": { - "source": "iana", - "extensions": ["xo"] - }, - "application/vnd.oma-scws-config": { - "source": "iana" - }, - "application/vnd.oma-scws-http-request": { - "source": "iana" - }, - "application/vnd.oma-scws-http-response": { - "source": "iana" - }, - "application/vnd.oma.bcast.associated-procedure-parameter+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.drm-trigger+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.imd+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.ltkm": { - "source": "iana" - }, - "application/vnd.oma.bcast.notification+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.provisioningtrigger": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgboot": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdd+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdu": { - "source": "iana" - }, - "application/vnd.oma.bcast.simple-symbol-container": { - "source": "iana" - }, - "application/vnd.oma.bcast.smartcard-trigger+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.sprov+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.stkm": { - "source": "iana" - }, - "application/vnd.oma.cab-address-book+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-feature-handler+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-pcc+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-subs-invite+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-user-prefs+xml": { - "source": "iana" - }, - "application/vnd.oma.dcd": { - "source": "iana" - }, - "application/vnd.oma.dcdc": { - "source": "iana" - }, - "application/vnd.oma.dd2+xml": { - "source": "iana", - "extensions": ["dd2"] - }, - "application/vnd.oma.drm.risd+xml": { - "source": "iana" - }, - "application/vnd.oma.group-usage-list+xml": { - "source": "iana" - }, - "application/vnd.oma.lwm2m+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.lwm2m+tlv": { - "source": "iana" - }, - "application/vnd.oma.pal+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.detailed-progress-report+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.final-report+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.groups+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.invocation-descriptor+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.optimized-progress-report+xml": { - "source": "iana" - }, - "application/vnd.oma.push": { - "source": "iana" - }, - "application/vnd.oma.scidm.messages+xml": { - "source": "iana" - }, - "application/vnd.oma.xcap-directory+xml": { - "source": "iana" - }, - "application/vnd.omads-email+xml": { - "source": "iana" - }, - "application/vnd.omads-file+xml": { - "source": "iana" - }, - "application/vnd.omads-folder+xml": { - "source": "iana" - }, - "application/vnd.omaloc-supl-init": { - "source": "iana" - }, - "application/vnd.onepager": { - "source": "iana" - }, - "application/vnd.openblox.game+xml": { - "source": "iana" - }, - "application/vnd.openblox.game-binary": { - "source": "iana" - }, - "application/vnd.openeye.oeb": { - "source": "iana" - }, - "application/vnd.openofficeorg.extension": { - "source": "apache", - "extensions": ["oxt"] - }, - "application/vnd.openxmlformats-officedocument.custom-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawing+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.extended-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["pptx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide": { - "source": "iana", - "extensions": ["sldx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { - "source": "iana", - "extensions": ["ppsx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.template": { - "source": "apache", - "extensions": ["potx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { - "source": "iana", - "compressible": false, - "extensions": ["xlsx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { - "source": "apache", - "extensions": ["xltx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.theme+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.themeoverride+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.vmldrawing": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { - "source": "iana", - "compressible": false, - "extensions": ["docx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { - "source": "apache", - "extensions": ["dotx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.core-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.relationships+xml": { - "source": "iana" - }, - "application/vnd.oracle.resource+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.orange.indata": { - "source": "iana" - }, - "application/vnd.osa.netdeploy": { - "source": "iana" - }, - "application/vnd.osgeo.mapguide.package": { - "source": "iana", - "extensions": ["mgp"] - }, - "application/vnd.osgi.bundle": { - "source": "iana" - }, - "application/vnd.osgi.dp": { - "source": "iana", - "extensions": ["dp"] - }, - "application/vnd.osgi.subsystem": { - "source": "iana", - "extensions": ["esa"] - }, - "application/vnd.otps.ct-kip+xml": { - "source": "iana" - }, - "application/vnd.oxli.countgraph": { - "source": "iana" - }, - "application/vnd.pagerduty+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.palm": { - "source": "iana", - "extensions": ["pdb","pqa","oprc"] - }, - "application/vnd.panoply": { - "source": "iana" - }, - "application/vnd.paos+xml": { - "source": "iana" - }, - "application/vnd.paos.xml": { - "source": "apache" - }, - "application/vnd.pawaafile": { - "source": "iana", - "extensions": ["paw"] - }, - "application/vnd.pcos": { - "source": "iana" - }, - "application/vnd.pg.format": { - "source": "iana", - "extensions": ["str"] - }, - "application/vnd.pg.osasli": { - "source": "iana", - "extensions": ["ei6"] - }, - "application/vnd.piaccess.application-licence": { - "source": "iana" - }, - "application/vnd.picsel": { - "source": "iana", - "extensions": ["efif"] - }, - "application/vnd.pmi.widget": { - "source": "iana", - "extensions": ["wg"] - }, - "application/vnd.poc.group-advertisement+xml": { - "source": "iana" - }, - "application/vnd.pocketlearn": { - "source": "iana", - "extensions": ["plf"] - }, - "application/vnd.powerbuilder6": { - "source": "iana", - "extensions": ["pbd"] - }, - "application/vnd.powerbuilder6-s": { - "source": "iana" - }, - "application/vnd.powerbuilder7": { - "source": "iana" - }, - "application/vnd.powerbuilder7-s": { - "source": "iana" - }, - "application/vnd.powerbuilder75": { - "source": "iana" - }, - "application/vnd.powerbuilder75-s": { - "source": "iana" - }, - "application/vnd.preminet": { - "source": "iana" - }, - "application/vnd.previewsystems.box": { - "source": "iana", - "extensions": ["box"] - }, - "application/vnd.proteus.magazine": { - "source": "iana", - "extensions": ["mgz"] - }, - "application/vnd.publishare-delta-tree": { - "source": "iana", - "extensions": ["qps"] - }, - "application/vnd.pvi.ptid1": { - "source": "iana", - "extensions": ["ptid"] - }, - "application/vnd.pwg-multiplexed": { - "source": "iana" - }, - "application/vnd.pwg-xhtml-print+xml": { - "source": "iana" - }, - "application/vnd.qualcomm.brew-app-res": { - "source": "iana" - }, - "application/vnd.quarantainenet": { - "source": "iana" - }, - "application/vnd.quark.quarkxpress": { - "source": "iana", - "extensions": ["qxd","qxt","qwd","qwt","qxl","qxb"] - }, - "application/vnd.quobject-quoxdocument": { - "source": "iana" - }, - "application/vnd.radisys.moml+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-conf+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-conn+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-dialog+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-stream+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-conf+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-base+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-fax-detect+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-group+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-speech+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-transform+xml": { - "source": "iana" - }, - "application/vnd.rainstor.data": { - "source": "iana" - }, - "application/vnd.rapid": { - "source": "iana" - }, - "application/vnd.rar": { - "source": "iana" - }, - "application/vnd.realvnc.bed": { - "source": "iana", - "extensions": ["bed"] - }, - "application/vnd.recordare.musicxml": { - "source": "iana", - "extensions": ["mxl"] - }, - "application/vnd.recordare.musicxml+xml": { - "source": "iana", - "extensions": ["musicxml"] - }, - "application/vnd.renlearn.rlprint": { - "source": "iana" - }, - "application/vnd.rig.cryptonote": { - "source": "iana", - "extensions": ["cryptonote"] - }, - "application/vnd.rim.cod": { - "source": "apache", - "extensions": ["cod"] - }, - "application/vnd.rn-realmedia": { - "source": "apache", - "extensions": ["rm"] - }, - "application/vnd.rn-realmedia-vbr": { - "source": "apache", - "extensions": ["rmvb"] - }, - "application/vnd.route66.link66+xml": { - "source": "iana", - "extensions": ["link66"] - }, - "application/vnd.rs-274x": { - "source": "iana" - }, - "application/vnd.ruckus.download": { - "source": "iana" - }, - "application/vnd.s3sms": { - "source": "iana" - }, - "application/vnd.sailingtracker.track": { - "source": "iana", - "extensions": ["st"] - }, - "application/vnd.sbm.cid": { - "source": "iana" - }, - "application/vnd.sbm.mid2": { - "source": "iana" - }, - "application/vnd.scribus": { - "source": "iana" - }, - "application/vnd.sealed.3df": { - "source": "iana" - }, - "application/vnd.sealed.csf": { - "source": "iana" - }, - "application/vnd.sealed.doc": { - "source": "iana" - }, - "application/vnd.sealed.eml": { - "source": "iana" - }, - "application/vnd.sealed.mht": { - "source": "iana" - }, - "application/vnd.sealed.net": { - "source": "iana" - }, - "application/vnd.sealed.ppt": { - "source": "iana" - }, - "application/vnd.sealed.tiff": { - "source": "iana" - }, - "application/vnd.sealed.xls": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.html": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.pdf": { - "source": "iana" - }, - "application/vnd.seemail": { - "source": "iana", - "extensions": ["see"] - }, - "application/vnd.sema": { - "source": "iana", - "extensions": ["sema"] - }, - "application/vnd.semd": { - "source": "iana", - "extensions": ["semd"] - }, - "application/vnd.semf": { - "source": "iana", - "extensions": ["semf"] - }, - "application/vnd.shana.informed.formdata": { - "source": "iana", - "extensions": ["ifm"] - }, - "application/vnd.shana.informed.formtemplate": { - "source": "iana", - "extensions": ["itp"] - }, - "application/vnd.shana.informed.interchange": { - "source": "iana", - "extensions": ["iif"] - }, - "application/vnd.shana.informed.package": { - "source": "iana", - "extensions": ["ipk"] - }, - "application/vnd.simtech-mindmapper": { - "source": "iana", - "extensions": ["twd","twds"] - }, - "application/vnd.siren+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.smaf": { - "source": "iana", - "extensions": ["mmf"] - }, - "application/vnd.smart.notebook": { - "source": "iana" - }, - "application/vnd.smart.teacher": { - "source": "iana", - "extensions": ["teacher"] - }, - "application/vnd.software602.filler.form+xml": { - "source": "iana" - }, - "application/vnd.software602.filler.form-xml-zip": { - "source": "iana" - }, - "application/vnd.solent.sdkm+xml": { - "source": "iana", - "extensions": ["sdkm","sdkd"] - }, - "application/vnd.spotfire.dxp": { - "source": "iana", - "extensions": ["dxp"] - }, - "application/vnd.spotfire.sfs": { - "source": "iana", - "extensions": ["sfs"] - }, - "application/vnd.sss-cod": { - "source": "iana" - }, - "application/vnd.sss-dtf": { - "source": "iana" - }, - "application/vnd.sss-ntf": { - "source": "iana" - }, - "application/vnd.stardivision.calc": { - "source": "apache", - "extensions": ["sdc"] - }, - "application/vnd.stardivision.draw": { - "source": "apache", - "extensions": ["sda"] - }, - "application/vnd.stardivision.impress": { - "source": "apache", - "extensions": ["sdd"] - }, - "application/vnd.stardivision.math": { - "source": "apache", - "extensions": ["smf"] - }, - "application/vnd.stardivision.writer": { - "source": "apache", - "extensions": ["sdw","vor"] - }, - "application/vnd.stardivision.writer-global": { - "source": "apache", - "extensions": ["sgl"] - }, - "application/vnd.stepmania.package": { - "source": "iana", - "extensions": ["smzip"] - }, - "application/vnd.stepmania.stepchart": { - "source": "iana", - "extensions": ["sm"] - }, - "application/vnd.street-stream": { - "source": "iana" - }, - "application/vnd.sun.wadl+xml": { - "source": "iana" - }, - "application/vnd.sun.xml.calc": { - "source": "apache", - "extensions": ["sxc"] - }, - "application/vnd.sun.xml.calc.template": { - "source": "apache", - "extensions": ["stc"] - }, - "application/vnd.sun.xml.draw": { - "source": "apache", - "extensions": ["sxd"] - }, - "application/vnd.sun.xml.draw.template": { - "source": "apache", - "extensions": ["std"] - }, - "application/vnd.sun.xml.impress": { - "source": "apache", - "extensions": ["sxi"] - }, - "application/vnd.sun.xml.impress.template": { - "source": "apache", - "extensions": ["sti"] - }, - "application/vnd.sun.xml.math": { - "source": "apache", - "extensions": ["sxm"] - }, - "application/vnd.sun.xml.writer": { - "source": "apache", - "extensions": ["sxw"] - }, - "application/vnd.sun.xml.writer.global": { - "source": "apache", - "extensions": ["sxg"] - }, - "application/vnd.sun.xml.writer.template": { - "source": "apache", - "extensions": ["stw"] - }, - "application/vnd.sus-calendar": { - "source": "iana", - "extensions": ["sus","susp"] - }, - "application/vnd.svd": { - "source": "iana", - "extensions": ["svd"] - }, - "application/vnd.swiftview-ics": { - "source": "iana" - }, - "application/vnd.symbian.install": { - "source": "apache", - "extensions": ["sis","sisx"] - }, - "application/vnd.syncml+xml": { - "source": "iana", - "extensions": ["xsm"] - }, - "application/vnd.syncml.dm+wbxml": { - "source": "iana", - "extensions": ["bdm"] - }, - "application/vnd.syncml.dm+xml": { - "source": "iana", - "extensions": ["xdm"] - }, - "application/vnd.syncml.dm.notification": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+xml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+xml": { - "source": "iana" - }, - "application/vnd.syncml.ds.notification": { - "source": "iana" - }, - "application/vnd.tao.intent-module-archive": { - "source": "iana", - "extensions": ["tao"] - }, - "application/vnd.tcpdump.pcap": { - "source": "iana", - "extensions": ["pcap","cap","dmp"] - }, - "application/vnd.tmd.mediaflex.api+xml": { - "source": "iana" - }, - "application/vnd.tml": { - "source": "iana" - }, - "application/vnd.tmobile-livetv": { - "source": "iana", - "extensions": ["tmo"] - }, - "application/vnd.trid.tpt": { - "source": "iana", - "extensions": ["tpt"] - }, - "application/vnd.triscape.mxs": { - "source": "iana", - "extensions": ["mxs"] - }, - "application/vnd.trueapp": { - "source": "iana", - "extensions": ["tra"] - }, - "application/vnd.truedoc": { - "source": "iana" - }, - "application/vnd.ubisoft.webplayer": { - "source": "iana" - }, - "application/vnd.ufdl": { - "source": "iana", - "extensions": ["ufd","ufdl"] - }, - "application/vnd.uiq.theme": { - "source": "iana", - "extensions": ["utz"] - }, - "application/vnd.umajin": { - "source": "iana", - "extensions": ["umj"] - }, - "application/vnd.unity": { - "source": "iana", - "extensions": ["unityweb"] - }, - "application/vnd.uoml+xml": { - "source": "iana", - "extensions": ["uoml"] - }, - "application/vnd.uplanet.alert": { - "source": "iana" - }, - "application/vnd.uplanet.alert-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.channel": { - "source": "iana" - }, - "application/vnd.uplanet.channel-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.list": { - "source": "iana" - }, - "application/vnd.uplanet.list-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.signal": { - "source": "iana" - }, - "application/vnd.uri-map": { - "source": "iana" - }, - "application/vnd.valve.source.material": { - "source": "iana" - }, - "application/vnd.vcx": { - "source": "iana", - "extensions": ["vcx"] - }, - "application/vnd.vd-study": { - "source": "iana" - }, - "application/vnd.vectorworks": { - "source": "iana" - }, - "application/vnd.vel+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.verimatrix.vcas": { - "source": "iana" - }, - "application/vnd.vidsoft.vidconference": { - "source": "iana" - }, - "application/vnd.visio": { - "source": "iana", - "extensions": ["vsd","vst","vss","vsw"] - }, - "application/vnd.visionary": { - "source": "iana", - "extensions": ["vis"] - }, - "application/vnd.vividence.scriptfile": { - "source": "iana" - }, - "application/vnd.vsf": { - "source": "iana", - "extensions": ["vsf"] - }, - "application/vnd.wap.sic": { - "source": "iana" - }, - "application/vnd.wap.slc": { - "source": "iana" - }, - "application/vnd.wap.wbxml": { - "source": "iana", - "extensions": ["wbxml"] - }, - "application/vnd.wap.wmlc": { - "source": "iana", - "extensions": ["wmlc"] - }, - "application/vnd.wap.wmlscriptc": { - "source": "iana", - "extensions": ["wmlsc"] - }, - "application/vnd.webturbo": { - "source": "iana", - "extensions": ["wtb"] - }, - "application/vnd.wfa.p2p": { - "source": "iana" - }, - "application/vnd.wfa.wsc": { - "source": "iana" - }, - "application/vnd.windows.devicepairing": { - "source": "iana" - }, - "application/vnd.wmc": { - "source": "iana" - }, - "application/vnd.wmf.bootstrap": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica.package": { - "source": "iana" - }, - "application/vnd.wolfram.player": { - "source": "iana", - "extensions": ["nbp"] - }, - "application/vnd.wordperfect": { - "source": "iana", - "extensions": ["wpd"] - }, - "application/vnd.wqd": { - "source": "iana", - "extensions": ["wqd"] - }, - "application/vnd.wrq-hp3000-labelled": { - "source": "iana" - }, - "application/vnd.wt.stf": { - "source": "iana", - "extensions": ["stf"] - }, - "application/vnd.wv.csp+wbxml": { - "source": "iana" - }, - "application/vnd.wv.csp+xml": { - "source": "iana" - }, - "application/vnd.wv.ssp+xml": { - "source": "iana" - }, - "application/vnd.xacml+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.xara": { - "source": "iana", - "extensions": ["xar"] - }, - "application/vnd.xfdl": { - "source": "iana", - "extensions": ["xfdl"] - }, - "application/vnd.xfdl.webform": { - "source": "iana" - }, - "application/vnd.xmi+xml": { - "source": "iana" - }, - "application/vnd.xmpie.cpkg": { - "source": "iana" - }, - "application/vnd.xmpie.dpkg": { - "source": "iana" - }, - "application/vnd.xmpie.plan": { - "source": "iana" - }, - "application/vnd.xmpie.ppkg": { - "source": "iana" - }, - "application/vnd.xmpie.xlim": { - "source": "iana" - }, - "application/vnd.yamaha.hv-dic": { - "source": "iana", - "extensions": ["hvd"] - }, - "application/vnd.yamaha.hv-script": { - "source": "iana", - "extensions": ["hvs"] - }, - "application/vnd.yamaha.hv-voice": { - "source": "iana", - "extensions": ["hvp"] - }, - "application/vnd.yamaha.openscoreformat": { - "source": "iana", - "extensions": ["osf"] - }, - "application/vnd.yamaha.openscoreformat.osfpvg+xml": { - "source": "iana", - "extensions": ["osfpvg"] - }, - "application/vnd.yamaha.remote-setup": { - "source": "iana" - }, - "application/vnd.yamaha.smaf-audio": { - "source": "iana", - "extensions": ["saf"] - }, - "application/vnd.yamaha.smaf-phrase": { - "source": "iana", - "extensions": ["spf"] - }, - "application/vnd.yamaha.through-ngn": { - "source": "iana" - }, - "application/vnd.yamaha.tunnel-udpencap": { - "source": "iana" - }, - "application/vnd.yaoweme": { - "source": "iana" - }, - "application/vnd.yellowriver-custom-menu": { - "source": "iana", - "extensions": ["cmp"] - }, - "application/vnd.zul": { - "source": "iana", - "extensions": ["zir","zirz"] - }, - "application/vnd.zzazz.deck+xml": { - "source": "iana", - "extensions": ["zaz"] - }, - "application/voicexml+xml": { - "source": "iana", - "extensions": ["vxml"] - }, - "application/vq-rtcpxr": { - "source": "iana" - }, - "application/watcherinfo+xml": { - "source": "iana" - }, - "application/whoispp-query": { - "source": "iana" - }, - "application/whoispp-response": { - "source": "iana" - }, - "application/widget": { - "source": "iana", - "extensions": ["wgt"] - }, - "application/winhlp": { - "source": "apache", - "extensions": ["hlp"] - }, - "application/wita": { - "source": "iana" - }, - "application/wordperfect5.1": { - "source": "iana" - }, - "application/wsdl+xml": { - "source": "iana", - "extensions": ["wsdl"] - }, - "application/wspolicy+xml": { - "source": "iana", - "extensions": ["wspolicy"] - }, - "application/x-7z-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["7z"] - }, - "application/x-abiword": { - "source": "apache", - "extensions": ["abw"] - }, - "application/x-ace-compressed": { - "source": "apache", - "extensions": ["ace"] - }, - "application/x-amf": { - "source": "apache" - }, - "application/x-apple-diskimage": { - "source": "apache", - "extensions": ["dmg"] - }, - "application/x-authorware-bin": { - "source": "apache", - "extensions": ["aab","x32","u32","vox"] - }, - "application/x-authorware-map": { - "source": "apache", - "extensions": ["aam"] - }, - "application/x-authorware-seg": { - "source": "apache", - "extensions": ["aas"] - }, - "application/x-bcpio": { - "source": "apache", - "extensions": ["bcpio"] - }, - "application/x-bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/x-bittorrent": { - "source": "apache", - "extensions": ["torrent"] - }, - "application/x-blorb": { - "source": "apache", - "extensions": ["blb","blorb"] - }, - "application/x-bzip": { - "source": "apache", - "compressible": false, - "extensions": ["bz"] - }, - "application/x-bzip2": { - "source": "apache", - "compressible": false, - "extensions": ["bz2","boz"] - }, - "application/x-cbr": { - "source": "apache", - "extensions": ["cbr","cba","cbt","cbz","cb7"] - }, - "application/x-cdlink": { - "source": "apache", - "extensions": ["vcd"] - }, - "application/x-cfs-compressed": { - "source": "apache", - "extensions": ["cfs"] - }, - "application/x-chat": { - "source": "apache", - "extensions": ["chat"] - }, - "application/x-chess-pgn": { - "source": "apache", - "extensions": ["pgn"] - }, - "application/x-chrome-extension": { - "extensions": ["crx"] - }, - "application/x-cocoa": { - "source": "nginx", - "extensions": ["cco"] - }, - "application/x-compress": { - "source": "apache" - }, - "application/x-conference": { - "source": "apache", - "extensions": ["nsc"] - }, - "application/x-cpio": { - "source": "apache", - "extensions": ["cpio"] - }, - "application/x-csh": { - "source": "apache", - "extensions": ["csh"] - }, - "application/x-deb": { - "compressible": false - }, - "application/x-debian-package": { - "source": "apache", - "extensions": ["deb","udeb"] - }, - "application/x-dgc-compressed": { - "source": "apache", - "extensions": ["dgc"] - }, - "application/x-director": { - "source": "apache", - "extensions": ["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"] - }, - "application/x-doom": { - "source": "apache", - "extensions": ["wad"] - }, - "application/x-dtbncx+xml": { - "source": "apache", - "extensions": ["ncx"] - }, - "application/x-dtbook+xml": { - "source": "apache", - "extensions": ["dtb"] - }, - "application/x-dtbresource+xml": { - "source": "apache", - "extensions": ["res"] - }, - "application/x-dvi": { - "source": "apache", - "compressible": false, - "extensions": ["dvi"] - }, - "application/x-envoy": { - "source": "apache", - "extensions": ["evy"] - }, - "application/x-eva": { - "source": "apache", - "extensions": ["eva"] - }, - "application/x-font-bdf": { - "source": "apache", - "extensions": ["bdf"] - }, - "application/x-font-dos": { - "source": "apache" - }, - "application/x-font-framemaker": { - "source": "apache" - }, - "application/x-font-ghostscript": { - "source": "apache", - "extensions": ["gsf"] - }, - "application/x-font-libgrx": { - "source": "apache" - }, - "application/x-font-linux-psf": { - "source": "apache", - "extensions": ["psf"] - }, - "application/x-font-otf": { - "source": "apache", - "compressible": true, - "extensions": ["otf"] - }, - "application/x-font-pcf": { - "source": "apache", - "extensions": ["pcf"] - }, - "application/x-font-snf": { - "source": "apache", - "extensions": ["snf"] - }, - "application/x-font-speedo": { - "source": "apache" - }, - "application/x-font-sunos-news": { - "source": "apache" - }, - "application/x-font-ttf": { - "source": "apache", - "compressible": true, - "extensions": ["ttf","ttc"] - }, - "application/x-font-type1": { - "source": "apache", - "extensions": ["pfa","pfb","pfm","afm"] - }, - "application/x-font-vfont": { - "source": "apache" - }, - "application/x-freearc": { - "source": "apache", - "extensions": ["arc"] - }, - "application/x-futuresplash": { - "source": "apache", - "extensions": ["spl"] - }, - "application/x-gca-compressed": { - "source": "apache", - "extensions": ["gca"] - }, - "application/x-glulx": { - "source": "apache", - "extensions": ["ulx"] - }, - "application/x-gnumeric": { - "source": "apache", - "extensions": ["gnumeric"] - }, - "application/x-gramps-xml": { - "source": "apache", - "extensions": ["gramps"] - }, - "application/x-gtar": { - "source": "apache", - "extensions": ["gtar"] - }, - "application/x-gzip": { - "source": "apache" - }, - "application/x-hdf": { - "source": "apache", - "extensions": ["hdf"] - }, - "application/x-httpd-php": { - "compressible": true, - "extensions": ["php"] - }, - "application/x-install-instructions": { - "source": "apache", - "extensions": ["install"] - }, - "application/x-iso9660-image": { - "source": "apache", - "extensions": ["iso"] - }, - "application/x-java-archive-diff": { - "source": "nginx", - "extensions": ["jardiff"] - }, - "application/x-java-jnlp-file": { - "source": "apache", - "compressible": false, - "extensions": ["jnlp"] - }, - "application/x-javascript": { - "compressible": true - }, - "application/x-latex": { - "source": "apache", - "compressible": false, - "extensions": ["latex"] - }, - "application/x-lua-bytecode": { - "extensions": ["luac"] - }, - "application/x-lzh-compressed": { - "source": "apache", - "extensions": ["lzh","lha"] - }, - "application/x-makeself": { - "source": "nginx", - "extensions": ["run"] - }, - "application/x-mie": { - "source": "apache", - "extensions": ["mie"] - }, - "application/x-mobipocket-ebook": { - "source": "apache", - "extensions": ["prc","mobi"] - }, - "application/x-mpegurl": { - "compressible": false - }, - "application/x-ms-application": { - "source": "apache", - "extensions": ["application"] - }, - "application/x-ms-shortcut": { - "source": "apache", - "extensions": ["lnk"] - }, - "application/x-ms-wmd": { - "source": "apache", - "extensions": ["wmd"] - }, - "application/x-ms-wmz": { - "source": "apache", - "extensions": ["wmz"] - }, - "application/x-ms-xbap": { - "source": "apache", - "extensions": ["xbap"] - }, - "application/x-msaccess": { - "source": "apache", - "extensions": ["mdb"] - }, - "application/x-msbinder": { - "source": "apache", - "extensions": ["obd"] - }, - "application/x-mscardfile": { - "source": "apache", - "extensions": ["crd"] - }, - "application/x-msclip": { - "source": "apache", - "extensions": ["clp"] - }, - "application/x-msdos-program": { - "extensions": ["exe"] - }, - "application/x-msdownload": { - "source": "apache", - "extensions": ["exe","dll","com","bat","msi"] - }, - "application/x-msmediaview": { - "source": "apache", - "extensions": ["mvb","m13","m14"] - }, - "application/x-msmetafile": { - "source": "apache", - "extensions": ["wmf","wmz","emf","emz"] - }, - "application/x-msmoney": { - "source": "apache", - "extensions": ["mny"] - }, - "application/x-mspublisher": { - "source": "apache", - "extensions": ["pub"] - }, - "application/x-msschedule": { - "source": "apache", - "extensions": ["scd"] - }, - "application/x-msterminal": { - "source": "apache", - "extensions": ["trm"] - }, - "application/x-mswrite": { - "source": "apache", - "extensions": ["wri"] - }, - "application/x-netcdf": { - "source": "apache", - "extensions": ["nc","cdf"] - }, - "application/x-ns-proxy-autoconfig": { - "compressible": true, - "extensions": ["pac"] - }, - "application/x-nzb": { - "source": "apache", - "extensions": ["nzb"] - }, - "application/x-perl": { - "source": "nginx", - "extensions": ["pl","pm"] - }, - "application/x-pilot": { - "source": "nginx", - "extensions": ["prc","pdb"] - }, - "application/x-pkcs12": { - "source": "apache", - "compressible": false, - "extensions": ["p12","pfx"] - }, - "application/x-pkcs7-certificates": { - "source": "apache", - "extensions": ["p7b","spc"] - }, - "application/x-pkcs7-certreqresp": { - "source": "apache", - "extensions": ["p7r"] - }, - "application/x-rar-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["rar"] - }, - "application/x-redhat-package-manager": { - "source": "nginx", - "extensions": ["rpm"] - }, - "application/x-research-info-systems": { - "source": "apache", - "extensions": ["ris"] - }, - "application/x-sea": { - "source": "nginx", - "extensions": ["sea"] - }, - "application/x-sh": { - "source": "apache", - "compressible": true, - "extensions": ["sh"] - }, - "application/x-shar": { - "source": "apache", - "extensions": ["shar"] - }, - "application/x-shockwave-flash": { - "source": "apache", - "compressible": false, - "extensions": ["swf"] - }, - "application/x-silverlight-app": { - "source": "apache", - "extensions": ["xap"] - }, - "application/x-sql": { - "source": "apache", - "extensions": ["sql"] - }, - "application/x-stuffit": { - "source": "apache", - "compressible": false, - "extensions": ["sit"] - }, - "application/x-stuffitx": { - "source": "apache", - "extensions": ["sitx"] - }, - "application/x-subrip": { - "source": "apache", - "extensions": ["srt"] - }, - "application/x-sv4cpio": { - "source": "apache", - "extensions": ["sv4cpio"] - }, - "application/x-sv4crc": { - "source": "apache", - "extensions": ["sv4crc"] - }, - "application/x-t3vm-image": { - "source": "apache", - "extensions": ["t3"] - }, - "application/x-tads": { - "source": "apache", - "extensions": ["gam"] - }, - "application/x-tar": { - "source": "apache", - "compressible": true, - "extensions": ["tar"] - }, - "application/x-tcl": { - "source": "apache", - "extensions": ["tcl","tk"] - }, - "application/x-tex": { - "source": "apache", - "extensions": ["tex"] - }, - "application/x-tex-tfm": { - "source": "apache", - "extensions": ["tfm"] - }, - "application/x-texinfo": { - "source": "apache", - "extensions": ["texinfo","texi"] - }, - "application/x-tgif": { - "source": "apache", - "extensions": ["obj"] - }, - "application/x-ustar": { - "source": "apache", - "extensions": ["ustar"] - }, - "application/x-wais-source": { - "source": "apache", - "extensions": ["src"] - }, - "application/x-web-app-manifest+json": { - "compressible": true, - "extensions": ["webapp"] - }, - "application/x-www-form-urlencoded": { - "source": "iana", - "compressible": true - }, - "application/x-x509-ca-cert": { - "source": "apache", - "extensions": ["der","crt","pem"] - }, - "application/x-xfig": { - "source": "apache", - "extensions": ["fig"] - }, - "application/x-xliff+xml": { - "source": "apache", - "extensions": ["xlf"] - }, - "application/x-xpinstall": { - "source": "apache", - "compressible": false, - "extensions": ["xpi"] - }, - "application/x-xz": { - "source": "apache", - "extensions": ["xz"] - }, - "application/x-zmachine": { - "source": "apache", - "extensions": ["z1","z2","z3","z4","z5","z6","z7","z8"] - }, - "application/x400-bp": { - "source": "iana" - }, - "application/xacml+xml": { - "source": "iana" - }, - "application/xaml+xml": { - "source": "apache", - "extensions": ["xaml"] - }, - "application/xcap-att+xml": { - "source": "iana" - }, - "application/xcap-caps+xml": { - "source": "iana" - }, - "application/xcap-diff+xml": { - "source": "iana", - "extensions": ["xdf"] - }, - "application/xcap-el+xml": { - "source": "iana" - }, - "application/xcap-error+xml": { - "source": "iana" - }, - "application/xcap-ns+xml": { - "source": "iana" - }, - "application/xcon-conference-info+xml": { - "source": "iana" - }, - "application/xcon-conference-info-diff+xml": { - "source": "iana" - }, - "application/xenc+xml": { - "source": "iana", - "extensions": ["xenc"] - }, - "application/xhtml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xhtml","xht"] - }, - "application/xhtml-voice+xml": { - "source": "apache" - }, - "application/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml","xsl","xsd","rng"] - }, - "application/xml-dtd": { - "source": "iana", - "compressible": true, - "extensions": ["dtd"] - }, - "application/xml-external-parsed-entity": { - "source": "iana" - }, - "application/xml-patch+xml": { - "source": "iana" - }, - "application/xmpp+xml": { - "source": "iana" - }, - "application/xop+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xop"] - }, - "application/xproc+xml": { - "source": "apache", - "extensions": ["xpl"] - }, - "application/xslt+xml": { - "source": "iana", - "extensions": ["xslt"] - }, - "application/xspf+xml": { - "source": "apache", - "extensions": ["xspf"] - }, - "application/xv+xml": { - "source": "iana", - "extensions": ["mxml","xhvml","xvml","xvm"] - }, - "application/yang": { - "source": "iana", - "extensions": ["yang"] - }, - "application/yin+xml": { - "source": "iana", - "extensions": ["yin"] - }, - "application/zip": { - "source": "iana", - "compressible": false, - "extensions": ["zip"] - }, - "application/zlib": { - "source": "iana" - }, - "audio/1d-interleaved-parityfec": { - "source": "iana" - }, - "audio/32kadpcm": { - "source": "iana" - }, - "audio/3gpp": { - "source": "iana", - "compressible": false, - "extensions": ["3gpp"] - }, - "audio/3gpp2": { - "source": "iana" - }, - "audio/ac3": { - "source": "iana" - }, - "audio/adpcm": { - "source": "apache", - "extensions": ["adp"] - }, - "audio/amr": { - "source": "iana" - }, - "audio/amr-wb": { - "source": "iana" - }, - "audio/amr-wb+": { - "source": "iana" - }, - "audio/aptx": { - "source": "iana" - }, - "audio/asc": { - "source": "iana" - }, - "audio/atrac-advanced-lossless": { - "source": "iana" - }, - "audio/atrac-x": { - "source": "iana" - }, - "audio/atrac3": { - "source": "iana" - }, - "audio/basic": { - "source": "iana", - "compressible": false, - "extensions": ["au","snd"] - }, - "audio/bv16": { - "source": "iana" - }, - "audio/bv32": { - "source": "iana" - }, - "audio/clearmode": { - "source": "iana" - }, - "audio/cn": { - "source": "iana" - }, - "audio/dat12": { - "source": "iana" - }, - "audio/dls": { - "source": "iana" - }, - "audio/dsr-es201108": { - "source": "iana" - }, - "audio/dsr-es202050": { - "source": "iana" - }, - "audio/dsr-es202211": { - "source": "iana" - }, - "audio/dsr-es202212": { - "source": "iana" - }, - "audio/dv": { - "source": "iana" - }, - "audio/dvi4": { - "source": "iana" - }, - "audio/eac3": { - "source": "iana" - }, - "audio/encaprtp": { - "source": "iana" - }, - "audio/evrc": { - "source": "iana" - }, - "audio/evrc-qcp": { - "source": "iana" - }, - "audio/evrc0": { - "source": "iana" - }, - "audio/evrc1": { - "source": "iana" - }, - "audio/evrcb": { - "source": "iana" - }, - "audio/evrcb0": { - "source": "iana" - }, - "audio/evrcb1": { - "source": "iana" - }, - "audio/evrcnw": { - "source": "iana" - }, - "audio/evrcnw0": { - "source": "iana" - }, - "audio/evrcnw1": { - "source": "iana" - }, - "audio/evrcwb": { - "source": "iana" - }, - "audio/evrcwb0": { - "source": "iana" - }, - "audio/evrcwb1": { - "source": "iana" - }, - "audio/evs": { - "source": "iana" - }, - "audio/fwdred": { - "source": "iana" - }, - "audio/g711-0": { - "source": "iana" - }, - "audio/g719": { - "source": "iana" - }, - "audio/g722": { - "source": "iana" - }, - "audio/g7221": { - "source": "iana" - }, - "audio/g723": { - "source": "iana" - }, - "audio/g726-16": { - "source": "iana" - }, - "audio/g726-24": { - "source": "iana" - }, - "audio/g726-32": { - "source": "iana" - }, - "audio/g726-40": { - "source": "iana" - }, - "audio/g728": { - "source": "iana" - }, - "audio/g729": { - "source": "iana" - }, - "audio/g7291": { - "source": "iana" - }, - "audio/g729d": { - "source": "iana" - }, - "audio/g729e": { - "source": "iana" - }, - "audio/gsm": { - "source": "iana" - }, - "audio/gsm-efr": { - "source": "iana" - }, - "audio/gsm-hr-08": { - "source": "iana" - }, - "audio/ilbc": { - "source": "iana" - }, - "audio/ip-mr_v2.5": { - "source": "iana" - }, - "audio/isac": { - "source": "apache" - }, - "audio/l16": { - "source": "iana" - }, - "audio/l20": { - "source": "iana" - }, - "audio/l24": { - "source": "iana", - "compressible": false - }, - "audio/l8": { - "source": "iana" - }, - "audio/lpc": { - "source": "iana" - }, - "audio/midi": { - "source": "apache", - "extensions": ["mid","midi","kar","rmi"] - }, - "audio/mobile-xmf": { - "source": "iana" - }, - "audio/mp3": { - "compressible": false, - "extensions": ["mp3"] - }, - "audio/mp4": { - "source": "iana", - "compressible": false, - "extensions": ["m4a","mp4a"] - }, - "audio/mp4a-latm": { - "source": "iana" - }, - "audio/mpa": { - "source": "iana" - }, - "audio/mpa-robust": { - "source": "iana" - }, - "audio/mpeg": { - "source": "iana", - "compressible": false, - "extensions": ["mpga","mp2","mp2a","mp3","m2a","m3a"] - }, - "audio/mpeg4-generic": { - "source": "iana" - }, - "audio/musepack": { - "source": "apache" - }, - "audio/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["oga","ogg","spx"] - }, - "audio/opus": { - "source": "iana" - }, - "audio/parityfec": { - "source": "iana" - }, - "audio/pcma": { - "source": "iana" - }, - "audio/pcma-wb": { - "source": "iana" - }, - "audio/pcmu": { - "source": "iana" - }, - "audio/pcmu-wb": { - "source": "iana" - }, - "audio/prs.sid": { - "source": "iana" - }, - "audio/qcelp": { - "source": "iana" - }, - "audio/raptorfec": { - "source": "iana" - }, - "audio/red": { - "source": "iana" - }, - "audio/rtp-enc-aescm128": { - "source": "iana" - }, - "audio/rtp-midi": { - "source": "iana" - }, - "audio/rtploopback": { - "source": "iana" - }, - "audio/rtx": { - "source": "iana" - }, - "audio/s3m": { - "source": "apache", - "extensions": ["s3m"] - }, - "audio/silk": { - "source": "apache", - "extensions": ["sil"] - }, - "audio/smv": { - "source": "iana" - }, - "audio/smv-qcp": { - "source": "iana" - }, - "audio/smv0": { - "source": "iana" - }, - "audio/sp-midi": { - "source": "iana" - }, - "audio/speex": { - "source": "iana" - }, - "audio/t140c": { - "source": "iana" - }, - "audio/t38": { - "source": "iana" - }, - "audio/telephone-event": { - "source": "iana" - }, - "audio/tone": { - "source": "iana" - }, - "audio/uemclip": { - "source": "iana" - }, - "audio/ulpfec": { - "source": "iana" - }, - "audio/vdvi": { - "source": "iana" - }, - "audio/vmr-wb": { - "source": "iana" - }, - "audio/vnd.3gpp.iufp": { - "source": "iana" - }, - "audio/vnd.4sb": { - "source": "iana" - }, - "audio/vnd.audiokoz": { - "source": "iana" - }, - "audio/vnd.celp": { - "source": "iana" - }, - "audio/vnd.cisco.nse": { - "source": "iana" - }, - "audio/vnd.cmles.radio-events": { - "source": "iana" - }, - "audio/vnd.cns.anp1": { - "source": "iana" - }, - "audio/vnd.cns.inf1": { - "source": "iana" - }, - "audio/vnd.dece.audio": { - "source": "iana", - "extensions": ["uva","uvva"] - }, - "audio/vnd.digital-winds": { - "source": "iana", - "extensions": ["eol"] - }, - "audio/vnd.dlna.adts": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.1": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.2": { - "source": "iana" - }, - "audio/vnd.dolby.mlp": { - "source": "iana" - }, - "audio/vnd.dolby.mps": { - "source": "iana" - }, - "audio/vnd.dolby.pl2": { - "source": "iana" - }, - "audio/vnd.dolby.pl2x": { - "source": "iana" - }, - "audio/vnd.dolby.pl2z": { - "source": "iana" - }, - "audio/vnd.dolby.pulse.1": { - "source": "iana" - }, - "audio/vnd.dra": { - "source": "iana", - "extensions": ["dra"] - }, - "audio/vnd.dts": { - "source": "iana", - "extensions": ["dts"] - }, - "audio/vnd.dts.hd": { - "source": "iana", - "extensions": ["dtshd"] - }, - "audio/vnd.dvb.file": { - "source": "iana" - }, - "audio/vnd.everad.plj": { - "source": "iana" - }, - "audio/vnd.hns.audio": { - "source": "iana" - }, - "audio/vnd.lucent.voice": { - "source": "iana", - "extensions": ["lvp"] - }, - "audio/vnd.ms-playready.media.pya": { - "source": "iana", - "extensions": ["pya"] - }, - "audio/vnd.nokia.mobile-xmf": { - "source": "iana" - }, - "audio/vnd.nortel.vbk": { - "source": "iana" - }, - "audio/vnd.nuera.ecelp4800": { - "source": "iana", - "extensions": ["ecelp4800"] - }, - "audio/vnd.nuera.ecelp7470": { - "source": "iana", - "extensions": ["ecelp7470"] - }, - "audio/vnd.nuera.ecelp9600": { - "source": "iana", - "extensions": ["ecelp9600"] - }, - "audio/vnd.octel.sbc": { - "source": "iana" - }, - "audio/vnd.qcelp": { - "source": "iana" - }, - "audio/vnd.rhetorex.32kadpcm": { - "source": "iana" - }, - "audio/vnd.rip": { - "source": "iana", - "extensions": ["rip"] - }, - "audio/vnd.rn-realaudio": { - "compressible": false - }, - "audio/vnd.sealedmedia.softseal.mpeg": { - "source": "iana" - }, - "audio/vnd.vmx.cvsd": { - "source": "iana" - }, - "audio/vnd.wave": { - "compressible": false - }, - "audio/vorbis": { - "source": "iana", - "compressible": false - }, - "audio/vorbis-config": { - "source": "iana" - }, - "audio/wav": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/wave": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/webm": { - "source": "apache", - "compressible": false, - "extensions": ["weba"] - }, - "audio/x-aac": { - "source": "apache", - "compressible": false, - "extensions": ["aac"] - }, - "audio/x-aiff": { - "source": "apache", - "extensions": ["aif","aiff","aifc"] - }, - "audio/x-caf": { - "source": "apache", - "compressible": false, - "extensions": ["caf"] - }, - "audio/x-flac": { - "source": "apache", - "extensions": ["flac"] - }, - "audio/x-m4a": { - "source": "nginx", - "extensions": ["m4a"] - }, - "audio/x-matroska": { - "source": "apache", - "extensions": ["mka"] - }, - "audio/x-mpegurl": { - "source": "apache", - "extensions": ["m3u"] - }, - "audio/x-ms-wax": { - "source": "apache", - "extensions": ["wax"] - }, - "audio/x-ms-wma": { - "source": "apache", - "extensions": ["wma"] - }, - "audio/x-pn-realaudio": { - "source": "apache", - "extensions": ["ram","ra"] - }, - "audio/x-pn-realaudio-plugin": { - "source": "apache", - "extensions": ["rmp"] - }, - "audio/x-realaudio": { - "source": "nginx", - "extensions": ["ra"] - }, - "audio/x-tta": { - "source": "apache" - }, - "audio/x-wav": { - "source": "apache", - "extensions": ["wav"] - }, - "audio/xm": { - "source": "apache", - "extensions": ["xm"] - }, - "chemical/x-cdx": { - "source": "apache", - "extensions": ["cdx"] - }, - "chemical/x-cif": { - "source": "apache", - "extensions": ["cif"] - }, - "chemical/x-cmdf": { - "source": "apache", - "extensions": ["cmdf"] - }, - "chemical/x-cml": { - "source": "apache", - "extensions": ["cml"] - }, - "chemical/x-csml": { - "source": "apache", - "extensions": ["csml"] - }, - "chemical/x-pdb": { - "source": "apache" - }, - "chemical/x-xyz": { - "source": "apache", - "extensions": ["xyz"] - }, - "font/opentype": { - "compressible": true, - "extensions": ["otf"] - }, - "image/bmp": { - "source": "iana", - "compressible": true, - "extensions": ["bmp"] - }, - "image/cgm": { - "source": "iana", - "extensions": ["cgm"] - }, - "image/dicom-rle": { - "source": "iana" - }, - "image/emf": { - "source": "iana" - }, - "image/fits": { - "source": "iana" - }, - "image/g3fax": { - "source": "iana", - "extensions": ["g3"] - }, - "image/gif": { - "source": "iana", - "compressible": false, - "extensions": ["gif"] - }, - "image/ief": { - "source": "iana", - "extensions": ["ief"] - }, - "image/jls": { - "source": "iana" - }, - "image/jp2": { - "source": "iana" - }, - "image/jpeg": { - "source": "iana", - "compressible": false, - "extensions": ["jpeg","jpg","jpe"] - }, - "image/jpm": { - "source": "iana" - }, - "image/jpx": { - "source": "iana" - }, - "image/ktx": { - "source": "iana", - "extensions": ["ktx"] - }, - "image/naplps": { - "source": "iana" - }, - "image/pjpeg": { - "compressible": false - }, - "image/png": { - "source": "iana", - "compressible": false, - "extensions": ["png"] - }, - "image/prs.btif": { - "source": "iana", - "extensions": ["btif"] - }, - "image/prs.pti": { - "source": "iana" - }, - "image/pwg-raster": { - "source": "iana" - }, - "image/sgi": { - "source": "apache", - "extensions": ["sgi"] - }, - "image/svg+xml": { - "source": "iana", - "compressible": true, - "extensions": ["svg","svgz"] - }, - "image/t38": { - "source": "iana" - }, - "image/tiff": { - "source": "iana", - "compressible": false, - "extensions": ["tiff","tif"] - }, - "image/tiff-fx": { - "source": "iana" - }, - "image/vnd.adobe.photoshop": { - "source": "iana", - "compressible": true, - "extensions": ["psd"] - }, - "image/vnd.airzip.accelerator.azv": { - "source": "iana" - }, - "image/vnd.cns.inf2": { - "source": "iana" - }, - "image/vnd.dece.graphic": { - "source": "iana", - "extensions": ["uvi","uvvi","uvg","uvvg"] - }, - "image/vnd.djvu": { - "source": "iana", - "extensions": ["djvu","djv"] - }, - "image/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "image/vnd.dwg": { - "source": "iana", - "extensions": ["dwg"] - }, - "image/vnd.dxf": { - "source": "iana", - "extensions": ["dxf"] - }, - "image/vnd.fastbidsheet": { - "source": "iana", - "extensions": ["fbs"] - }, - "image/vnd.fpx": { - "source": "iana", - "extensions": ["fpx"] - }, - "image/vnd.fst": { - "source": "iana", - "extensions": ["fst"] - }, - "image/vnd.fujixerox.edmics-mmr": { - "source": "iana", - "extensions": ["mmr"] - }, - "image/vnd.fujixerox.edmics-rlc": { - "source": "iana", - "extensions": ["rlc"] - }, - "image/vnd.globalgraphics.pgb": { - "source": "iana" - }, - "image/vnd.microsoft.icon": { - "source": "iana" - }, - "image/vnd.mix": { - "source": "iana" - }, - "image/vnd.mozilla.apng": { - "source": "iana" - }, - "image/vnd.ms-modi": { - "source": "iana", - "extensions": ["mdi"] - }, - "image/vnd.ms-photo": { - "source": "apache", - "extensions": ["wdp"] - }, - "image/vnd.net-fpx": { - "source": "iana", - "extensions": ["npx"] - }, - "image/vnd.radiance": { - "source": "iana" - }, - "image/vnd.sealed.png": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.gif": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.jpg": { - "source": "iana" - }, - "image/vnd.svf": { - "source": "iana" - }, - "image/vnd.tencent.tap": { - "source": "iana" - }, - "image/vnd.valve.source.texture": { - "source": "iana" - }, - "image/vnd.wap.wbmp": { - "source": "iana", - "extensions": ["wbmp"] - }, - "image/vnd.xiff": { - "source": "iana", - "extensions": ["xif"] - }, - "image/vnd.zbrush.pcx": { - "source": "iana" - }, - "image/webp": { - "source": "apache", - "extensions": ["webp"] - }, - "image/wmf": { - "source": "iana" - }, - "image/x-3ds": { - "source": "apache", - "extensions": ["3ds"] - }, - "image/x-cmu-raster": { - "source": "apache", - "extensions": ["ras"] - }, - "image/x-cmx": { - "source": "apache", - "extensions": ["cmx"] - }, - "image/x-freehand": { - "source": "apache", - "extensions": ["fh","fhc","fh4","fh5","fh7"] - }, - "image/x-icon": { - "source": "apache", - "compressible": true, - "extensions": ["ico"] - }, - "image/x-jng": { - "source": "nginx", - "extensions": ["jng"] - }, - "image/x-mrsid-image": { - "source": "apache", - "extensions": ["sid"] - }, - "image/x-ms-bmp": { - "source": "nginx", - "compressible": true, - "extensions": ["bmp"] - }, - "image/x-pcx": { - "source": "apache", - "extensions": ["pcx"] - }, - "image/x-pict": { - "source": "apache", - "extensions": ["pic","pct"] - }, - "image/x-portable-anymap": { - "source": "apache", - "extensions": ["pnm"] - }, - "image/x-portable-bitmap": { - "source": "apache", - "extensions": ["pbm"] - }, - "image/x-portable-graymap": { - "source": "apache", - "extensions": ["pgm"] - }, - "image/x-portable-pixmap": { - "source": "apache", - "extensions": ["ppm"] - }, - "image/x-rgb": { - "source": "apache", - "extensions": ["rgb"] - }, - "image/x-tga": { - "source": "apache", - "extensions": ["tga"] - }, - "image/x-xbitmap": { - "source": "apache", - "extensions": ["xbm"] - }, - "image/x-xcf": { - "compressible": false - }, - "image/x-xpixmap": { - "source": "apache", - "extensions": ["xpm"] - }, - "image/x-xwindowdump": { - "source": "apache", - "extensions": ["xwd"] - }, - "message/cpim": { - "source": "iana" - }, - "message/delivery-status": { - "source": "iana" - }, - "message/disposition-notification": { - "source": "iana" - }, - "message/external-body": { - "source": "iana" - }, - "message/feedback-report": { - "source": "iana" - }, - "message/global": { - "source": "iana" - }, - "message/global-delivery-status": { - "source": "iana" - }, - "message/global-disposition-notification": { - "source": "iana" - }, - "message/global-headers": { - "source": "iana" - }, - "message/http": { - "source": "iana", - "compressible": false - }, - "message/imdn+xml": { - "source": "iana", - "compressible": true - }, - "message/news": { - "source": "iana" - }, - "message/partial": { - "source": "iana", - "compressible": false - }, - "message/rfc822": { - "source": "iana", - "compressible": true, - "extensions": ["eml","mime"] - }, - "message/s-http": { - "source": "iana" - }, - "message/sip": { - "source": "iana" - }, - "message/sipfrag": { - "source": "iana" - }, - "message/tracking-status": { - "source": "iana" - }, - "message/vnd.si.simp": { - "source": "iana" - }, - "message/vnd.wfa.wsc": { - "source": "iana" - }, - "model/gltf+json": { - "source": "iana", - "compressible": true - }, - "model/iges": { - "source": "iana", - "compressible": false, - "extensions": ["igs","iges"] - }, - "model/mesh": { - "source": "iana", - "compressible": false, - "extensions": ["msh","mesh","silo"] - }, - "model/vnd.collada+xml": { - "source": "iana", - "extensions": ["dae"] - }, - "model/vnd.dwf": { - "source": "iana", - "extensions": ["dwf"] - }, - "model/vnd.flatland.3dml": { - "source": "iana" - }, - "model/vnd.gdl": { - "source": "iana", - "extensions": ["gdl"] - }, - "model/vnd.gs-gdl": { - "source": "apache" - }, - "model/vnd.gs.gdl": { - "source": "iana" - }, - "model/vnd.gtw": { - "source": "iana", - "extensions": ["gtw"] - }, - "model/vnd.moml+xml": { - "source": "iana" - }, - "model/vnd.mts": { - "source": "iana", - "extensions": ["mts"] - }, - "model/vnd.opengex": { - "source": "iana" - }, - "model/vnd.parasolid.transmit.binary": { - "source": "iana" - }, - "model/vnd.parasolid.transmit.text": { - "source": "iana" - }, - "model/vnd.rosette.annotated-data-model": { - "source": "iana" - }, - "model/vnd.valve.source.compiled-map": { - "source": "iana" - }, - "model/vnd.vtu": { - "source": "iana", - "extensions": ["vtu"] - }, - "model/vrml": { - "source": "iana", - "compressible": false, - "extensions": ["wrl","vrml"] - }, - "model/x3d+binary": { - "source": "apache", - "compressible": false, - "extensions": ["x3db","x3dbz"] - }, - "model/x3d+fastinfoset": { - "source": "iana" - }, - "model/x3d+vrml": { - "source": "apache", - "compressible": false, - "extensions": ["x3dv","x3dvz"] - }, - "model/x3d+xml": { - "source": "iana", - "compressible": true, - "extensions": ["x3d","x3dz"] - }, - "model/x3d-vrml": { - "source": "iana" - }, - "multipart/alternative": { - "source": "iana", - "compressible": false - }, - "multipart/appledouble": { - "source": "iana" - }, - "multipart/byteranges": { - "source": "iana" - }, - "multipart/digest": { - "source": "iana" - }, - "multipart/encrypted": { - "source": "iana", - "compressible": false - }, - "multipart/form-data": { - "source": "iana", - "compressible": false - }, - "multipart/header-set": { - "source": "iana" - }, - "multipart/mixed": { - "source": "iana", - "compressible": false - }, - "multipart/parallel": { - "source": "iana" - }, - "multipart/related": { - "source": "iana", - "compressible": false - }, - "multipart/report": { - "source": "iana" - }, - "multipart/signed": { - "source": "iana", - "compressible": false - }, - "multipart/voice-message": { - "source": "iana" - }, - "multipart/x-mixed-replace": { - "source": "iana" - }, - "text/1d-interleaved-parityfec": { - "source": "iana" - }, - "text/cache-manifest": { - "source": "iana", - "compressible": true, - "extensions": ["appcache","manifest"] - }, - "text/calendar": { - "source": "iana", - "extensions": ["ics","ifb"] - }, - "text/calender": { - "compressible": true - }, - "text/cmd": { - "compressible": true - }, - "text/coffeescript": { - "extensions": ["coffee","litcoffee"] - }, - "text/css": { - "source": "iana", - "compressible": true, - "extensions": ["css"] - }, - "text/csv": { - "source": "iana", - "compressible": true, - "extensions": ["csv"] - }, - "text/csv-schema": { - "source": "iana" - }, - "text/directory": { - "source": "iana" - }, - "text/dns": { - "source": "iana" - }, - "text/ecmascript": { - "source": "iana" - }, - "text/encaprtp": { - "source": "iana" - }, - "text/enriched": { - "source": "iana" - }, - "text/fwdred": { - "source": "iana" - }, - "text/grammar-ref-list": { - "source": "iana" - }, - "text/hjson": { - "extensions": ["hjson"] - }, - "text/html": { - "source": "iana", - "compressible": true, - "extensions": ["html","htm","shtml"] - }, - "text/jade": { - "extensions": ["jade"] - }, - "text/javascript": { - "source": "iana", - "compressible": true - }, - "text/jcr-cnd": { - "source": "iana" - }, - "text/jsx": { - "compressible": true, - "extensions": ["jsx"] - }, - "text/less": { - "extensions": ["less"] - }, - "text/markdown": { - "source": "iana" - }, - "text/mathml": { - "source": "nginx", - "extensions": ["mml"] - }, - "text/mizar": { - "source": "iana" - }, - "text/n3": { - "source": "iana", - "compressible": true, - "extensions": ["n3"] - }, - "text/parameters": { - "source": "iana" - }, - "text/parityfec": { - "source": "iana" - }, - "text/plain": { - "source": "iana", - "compressible": true, - "extensions": ["txt","text","conf","def","list","log","in","ini"] - }, - "text/provenance-notation": { - "source": "iana" - }, - "text/prs.fallenstein.rst": { - "source": "iana" - }, - "text/prs.lines.tag": { - "source": "iana", - "extensions": ["dsc"] - }, - "text/prs.prop.logic": { - "source": "iana" - }, - "text/raptorfec": { - "source": "iana" - }, - "text/red": { - "source": "iana" - }, - "text/rfc822-headers": { - "source": "iana" - }, - "text/richtext": { - "source": "iana", - "compressible": true, - "extensions": ["rtx"] - }, - "text/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "text/rtp-enc-aescm128": { - "source": "iana" - }, - "text/rtploopback": { - "source": "iana" - }, - "text/rtx": { - "source": "iana" - }, - "text/sgml": { - "source": "iana", - "extensions": ["sgml","sgm"] - }, - "text/slim": { - "extensions": ["slim","slm"] - }, - "text/stylus": { - "extensions": ["stylus","styl"] - }, - "text/t140": { - "source": "iana" - }, - "text/tab-separated-values": { - "source": "iana", - "compressible": true, - "extensions": ["tsv"] - }, - "text/troff": { - "source": "iana", - "extensions": ["t","tr","roff","man","me","ms"] - }, - "text/turtle": { - "source": "iana", - "extensions": ["ttl"] - }, - "text/ulpfec": { - "source": "iana" - }, - "text/uri-list": { - "source": "iana", - "compressible": true, - "extensions": ["uri","uris","urls"] - }, - "text/vcard": { - "source": "iana", - "compressible": true, - "extensions": ["vcard"] - }, - "text/vnd.a": { - "source": "iana" - }, - "text/vnd.abc": { - "source": "iana" - }, - "text/vnd.ascii-art": { - "source": "iana" - }, - "text/vnd.curl": { - "source": "iana", - "extensions": ["curl"] - }, - "text/vnd.curl.dcurl": { - "source": "apache", - "extensions": ["dcurl"] - }, - "text/vnd.curl.mcurl": { - "source": "apache", - "extensions": ["mcurl"] - }, - "text/vnd.curl.scurl": { - "source": "apache", - "extensions": ["scurl"] - }, - "text/vnd.debian.copyright": { - "source": "iana" - }, - "text/vnd.dmclientscript": { - "source": "iana" - }, - "text/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "text/vnd.esmertec.theme-descriptor": { - "source": "iana" - }, - "text/vnd.fly": { - "source": "iana", - "extensions": ["fly"] - }, - "text/vnd.fmi.flexstor": { - "source": "iana", - "extensions": ["flx"] - }, - "text/vnd.graphviz": { - "source": "iana", - "extensions": ["gv"] - }, - "text/vnd.in3d.3dml": { - "source": "iana", - "extensions": ["3dml"] - }, - "text/vnd.in3d.spot": { - "source": "iana", - "extensions": ["spot"] - }, - "text/vnd.iptc.newsml": { - "source": "iana" - }, - "text/vnd.iptc.nitf": { - "source": "iana" - }, - "text/vnd.latex-z": { - "source": "iana" - }, - "text/vnd.motorola.reflex": { - "source": "iana" - }, - "text/vnd.ms-mediapackage": { - "source": "iana" - }, - "text/vnd.net2phone.commcenter.command": { - "source": "iana" - }, - "text/vnd.radisys.msml-basic-layout": { - "source": "iana" - }, - "text/vnd.si.uricatalogue": { - "source": "iana" - }, - "text/vnd.sun.j2me.app-descriptor": { - "source": "iana", - "extensions": ["jad"] - }, - "text/vnd.trolltech.linguist": { - "source": "iana" - }, - "text/vnd.wap.si": { - "source": "iana" - }, - "text/vnd.wap.sl": { - "source": "iana" - }, - "text/vnd.wap.wml": { - "source": "iana", - "extensions": ["wml"] - }, - "text/vnd.wap.wmlscript": { - "source": "iana", - "extensions": ["wmls"] - }, - "text/vtt": { - "charset": "UTF-8", - "compressible": true, - "extensions": ["vtt"] - }, - "text/x-asm": { - "source": "apache", - "extensions": ["s","asm"] - }, - "text/x-c": { - "source": "apache", - "extensions": ["c","cc","cxx","cpp","h","hh","dic"] - }, - "text/x-component": { - "source": "nginx", - "extensions": ["htc"] - }, - "text/x-fortran": { - "source": "apache", - "extensions": ["f","for","f77","f90"] - }, - "text/x-gwt-rpc": { - "compressible": true - }, - "text/x-handlebars-template": { - "extensions": ["hbs"] - }, - "text/x-java-source": { - "source": "apache", - "extensions": ["java"] - }, - "text/x-jquery-tmpl": { - "compressible": true - }, - "text/x-lua": { - "extensions": ["lua"] - }, - "text/x-markdown": { - "compressible": true, - "extensions": ["markdown","md","mkd"] - }, - "text/x-nfo": { - "source": "apache", - "extensions": ["nfo"] - }, - "text/x-opml": { - "source": "apache", - "extensions": ["opml"] - }, - "text/x-pascal": { - "source": "apache", - "extensions": ["p","pas"] - }, - "text/x-processing": { - "compressible": true, - "extensions": ["pde"] - }, - "text/x-sass": { - "extensions": ["sass"] - }, - "text/x-scss": { - "extensions": ["scss"] - }, - "text/x-setext": { - "source": "apache", - "extensions": ["etx"] - }, - "text/x-sfv": { - "source": "apache", - "extensions": ["sfv"] - }, - "text/x-suse-ymp": { - "compressible": true, - "extensions": ["ymp"] - }, - "text/x-uuencode": { - "source": "apache", - "extensions": ["uu"] - }, - "text/x-vcalendar": { - "source": "apache", - "extensions": ["vcs"] - }, - "text/x-vcard": { - "source": "apache", - "extensions": ["vcf"] - }, - "text/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml"] - }, - "text/xml-external-parsed-entity": { - "source": "iana" - }, - "text/yaml": { - "extensions": ["yaml","yml"] - }, - "video/1d-interleaved-parityfec": { - "source": "apache" - }, - "video/3gpp": { - "source": "apache", - "extensions": ["3gp","3gpp"] - }, - "video/3gpp-tt": { - "source": "apache" - }, - "video/3gpp2": { - "source": "apache", - "extensions": ["3g2"] - }, - "video/bmpeg": { - "source": "apache" - }, - "video/bt656": { - "source": "apache" - }, - "video/celb": { - "source": "apache" - }, - "video/dv": { - "source": "apache" - }, - "video/encaprtp": { - "source": "apache" - }, - "video/h261": { - "source": "apache", - "extensions": ["h261"] - }, - "video/h263": { - "source": "apache", - "extensions": ["h263"] - }, - "video/h263-1998": { - "source": "apache" - }, - "video/h263-2000": { - "source": "apache" - }, - "video/h264": { - "source": "apache", - "extensions": ["h264"] - }, - "video/h264-rcdo": { - "source": "apache" - }, - "video/h264-svc": { - "source": "apache" - }, - "video/h265": { - "source": "apache" - }, - "video/iso.segment": { - "source": "apache" - }, - "video/jpeg": { - "source": "apache", - "extensions": ["jpgv"] - }, - "video/jpeg2000": { - "source": "apache" - }, - "video/jpm": { - "source": "apache", - "extensions": ["jpm","jpgm"] - }, - "video/mj2": { - "source": "apache", - "extensions": ["mj2","mjp2"] - }, - "video/mp1s": { - "source": "apache" - }, - "video/mp2p": { - "source": "apache" - }, - "video/mp2t": { - "source": "apache", - "extensions": ["ts"] - }, - "video/mp4": { - "source": "apache", - "compressible": false, - "extensions": ["mp4","mp4v","mpg4"] - }, - "video/mp4v-es": { - "source": "apache" - }, - "video/mpeg": { - "source": "apache", - "compressible": false, - "extensions": ["mpeg","mpg","mpe","m1v","m2v"] - }, - "video/mpeg4-generic": { - "source": "apache" - }, - "video/mpv": { - "source": "apache" - }, - "video/nv": { - "source": "apache" - }, - "video/ogg": { - "source": "apache", - "compressible": false, - "extensions": ["ogv"] - }, - "video/parityfec": { - "source": "apache" - }, - "video/pointer": { - "source": "apache" - }, - "video/quicktime": { - "source": "apache", - "compressible": false, - "extensions": ["qt","mov"] - }, - "video/raptorfec": { - "source": "apache" - }, - "video/raw": { - "source": "apache" - }, - "video/rtp-enc-aescm128": { - "source": "apache" - }, - "video/rtploopback": { - "source": "apache" - }, - "video/rtx": { - "source": "apache" - }, - "video/smpte292m": { - "source": "apache" - }, - "video/ulpfec": { - "source": "apache" - }, - "video/vc1": { - "source": "apache" - }, - "video/vnd.cctv": { - "source": "apache" - }, - "video/vnd.dece.hd": { - "source": "apache", - "extensions": ["uvh","uvvh"] - }, - "video/vnd.dece.mobile": { - "source": "apache", - "extensions": ["uvm","uvvm"] - }, - "video/vnd.dece.mp4": { - "source": "apache" - }, - "video/vnd.dece.pd": { - "source": "apache", - "extensions": ["uvp","uvvp"] - }, - "video/vnd.dece.sd": { - "source": "apache", - "extensions": ["uvs","uvvs"] - }, - "video/vnd.dece.video": { - "source": "apache", - "extensions": ["uvv","uvvv"] - }, - "video/vnd.directv.mpeg": { - "source": "apache" - }, - "video/vnd.directv.mpeg-tts": { - "source": "apache" - }, - "video/vnd.dlna.mpeg-tts": { - "source": "apache" - }, - "video/vnd.dvb.file": { - "source": "apache", - "extensions": ["dvb"] - }, - "video/vnd.fvt": { - "source": "apache", - "extensions": ["fvt"] - }, - "video/vnd.hns.video": { - "source": "apache" - }, - "video/vnd.iptvforum.1dparityfec-1010": { - "source": "apache" - }, - "video/vnd.iptvforum.1dparityfec-2005": { - "source": "apache" - }, - "video/vnd.iptvforum.2dparityfec-1010": { - "source": "apache" - }, - "video/vnd.iptvforum.2dparityfec-2005": { - "source": "apache" - }, - "video/vnd.iptvforum.ttsavc": { - "source": "apache" - }, - "video/vnd.iptvforum.ttsmpeg2": { - "source": "apache" - }, - "video/vnd.motorola.video": { - "source": "apache" - }, - "video/vnd.motorola.videop": { - "source": "apache" - }, - "video/vnd.mpegurl": { - "source": "apache", - "extensions": ["mxu","m4u"] - }, - "video/vnd.ms-playready.media.pyv": { - "source": "apache", - "extensions": ["pyv"] - }, - "video/vnd.nokia.interleaved-multimedia": { - "source": "apache" - }, - "video/vnd.nokia.videovoip": { - "source": "apache" - }, - "video/vnd.objectvideo": { - "source": "apache" - }, - "video/vnd.radgamettools.bink": { - "source": "apache" - }, - "video/vnd.radgamettools.smacker": { - "source": "apache" - }, - "video/vnd.sealed.mpeg1": { - "source": "apache" - }, - "video/vnd.sealed.mpeg4": { - "source": "apache" - }, - "video/vnd.sealed.swf": { - "source": "apache" - }, - "video/vnd.sealedmedia.softseal.mov": { - "source": "apache" - }, - "video/vnd.uvvu.mp4": { - "source": "apache", - "extensions": ["uvu","uvvu"] - }, - "video/vnd.vivo": { - "source": "apache", - "extensions": ["viv"] - }, - "video/vp8": { - "source": "apache" - }, - "video/webm": { - "source": "apache", - "compressible": false, - "extensions": ["webm"] - }, - "video/x-f4v": { - "source": "apache", - "extensions": ["f4v"] - }, - "video/x-fli": { - "source": "apache", - "extensions": ["fli"] - }, - "video/x-flv": { - "source": "apache", - "compressible": false, - "extensions": ["flv"] - }, - "video/x-m4v": { - "source": "apache", - "extensions": ["m4v"] - }, - "video/x-matroska": { - "source": "apache", - "compressible": false, - "extensions": ["mkv","mk3d","mks"] - }, - "video/x-mng": { - "source": "apache", - "extensions": ["mng"] - }, - "video/x-ms-asf": { - "source": "apache", - "extensions": ["asf","asx"] - }, - "video/x-ms-vob": { - "source": "apache", - "extensions": ["vob"] - }, - "video/x-ms-wm": { - "source": "apache", - "extensions": ["wm"] - }, - "video/x-ms-wmv": { - "source": "apache", - "compressible": false, - "extensions": ["wmv"] - }, - "video/x-ms-wmx": { - "source": "apache", - "extensions": ["wmx"] - }, - "video/x-ms-wvx": { - "source": "apache", - "extensions": ["wvx"] - }, - "video/x-msvideo": { - "source": "apache", - "extensions": ["avi"] - }, - "video/x-sgi-movie": { - "source": "apache", - "extensions": ["movie"] - }, - "video/x-smv": { - "source": "apache", - "extensions": ["smv"] - }, - "x-conference/x-cooltalk": { - "source": "apache", - "extensions": ["ice"] - }, - "x-shader/x-fragment": { - "compressible": true - }, - "x-shader/x-vertex": { - "compressible": true - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/index.js deleted file mode 100644 index 551031f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/index.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * mime-db - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -/** - * Module exports. - */ - -module.exports = require('./db.json') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/package.json deleted file mode 100644 index 4ce9bd44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "name": "mime-db", - "description": "Media Type Database", - "version": "1.24.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - { - "name": "Robert Kieffer", - "email": "robert@broofa.com", - "url": "http://github.com/broofa" - } - ], - "license": "MIT", - "keywords": [ - "mime", - "db", - "type", - "types", - "database", - "charset", - "charsets" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-db.git" - }, - "devDependencies": { - "bluebird": "3.4.6", - "co": "4.6.0", - "cogent": "1.0.1", - "csv-parse": "1.1.7", - "gnode": "0.1.2", - "istanbul": "0.4.5", - "mocha": "1.21.5", - "raw-body": "2.1.7", - "stream-to-array": "2.3.0" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "db.json", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "build": "node scripts/build", - "fetch": "gnode scripts/fetch-apache && gnode scripts/fetch-iana && gnode scripts/fetch-nginx", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "update": "npm run fetch && npm run build" - }, - "gitHead": "9dd00b34556a8cdd6f3385f09d4989298c4b86e1", - "bugs": { - "url": "https://github.com/jshttp/mime-db/issues" - }, - "homepage": "https://github.com/jshttp/mime-db#readme", - "_id": "mime-db@1.24.0", - "_shasum": "e2d13f939f0016c6e4e9ad25a8652f126c467f0c", - "_from": "mime-db@>=1.24.0 <1.25.0", - "_npmVersion": "2.15.9", - "_nodeVersion": "4.5.0", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "e2d13f939f0016c6e4e9ad25a8652f126c467f0c", - "tarball": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/mime-db-1.24.0.tgz_1474198792761_0.7161959335207939" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/package.json deleted file mode 100644 index 9d55f067..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/mime-types/package.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "name": "mime-types", - "description": "The ultimate javascript content-type utility.", - "version": "2.1.12", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jeremiah Senkpiel", - "email": "fishrock123@rocketmail.com", - "url": "https://searchbeam.jit.su" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "keywords": [ - "mime", - "types" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-types.git" - }, - "dependencies": { - "mime-db": "~1.24.0" - }, - "devDependencies": { - "eslint": "3.5.0", - "eslint-config-standard": "6.0.1", - "eslint-plugin-promise": "2.0.1", - "eslint-plugin-standard": "2.0.0", - "istanbul": "0.4.5", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint **/*.js", - "test": "mocha --reporter spec test/test.js", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/test.js", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot test/test.js" - }, - "gitHead": "7193a9094e2efe31da93988350bb0b32ab18b1ea", - "bugs": { - "url": "https://github.com/jshttp/mime-types/issues" - }, - "homepage": "https://github.com/jshttp/mime-types#readme", - "_id": "mime-types@2.1.12", - "_shasum": "152ba256777020dd4663f54c2e7bc26381e71729", - "_from": "mime-types@>=2.1.6 <2.2.0", - "_npmVersion": "2.15.9", - "_nodeVersion": "4.5.0", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "152ba256777020dd4663f54c2e7bc26381e71729", - "tarball": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/mime-types-2.1.12.tgz_1474237415119_0.03028594213537872" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/HISTORY.md deleted file mode 100644 index aa2a7c46..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/HISTORY.md +++ /dev/null @@ -1,76 +0,0 @@ -0.5.3 / 2015-05-10 -================== - - * Fix media type parameter matching to be case-insensitive - -0.5.2 / 2015-05-06 -================== - - * Fix comparing media types with quoted values - * Fix splitting media types with quoted commas - -0.5.1 / 2015-02-14 -================== - - * Fix preference sorting to be stable for long acceptable lists - -0.5.0 / 2014-12-18 -================== - - * Fix list return order when large accepted list - * Fix missing identity encoding when q=0 exists - * Remove dynamic building of Negotiator class - -0.4.9 / 2014-10-14 -================== - - * Fix error when media type has invalid parameter - -0.4.8 / 2014-09-28 -================== - - * Fix all negotiations to be case-insensitive - * Stable sort preferences of same quality according to client order - * Support Node.js 0.6 - -0.4.7 / 2014-06-24 -================== - - * Handle invalid provided languages - * Handle invalid provided media types - -0.4.6 / 2014-06-11 -================== - - * Order by specificity when quality is the same - -0.4.5 / 2014-05-29 -================== - - * Fix regression in empty header handling - -0.4.4 / 2014-05-29 -================== - - * Fix behaviors when headers are not present - -0.4.3 / 2014-04-16 -================== - - * Handle slashes on media params correctly - -0.4.2 / 2014-02-28 -================== - - * Fix media type sorting - * Handle media types params strictly - -0.4.1 / 2014-01-16 -================== - - * Use most specific matches - -0.4.0 / 2014-01-09 -================== - - * Remove preferred prefix from methods diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/LICENSE deleted file mode 100644 index ea6b9e2e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 Federico Romero -Copyright (c) 2012-2014 Isaac Z. Schlueter -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/README.md deleted file mode 100644 index ef507faa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/README.md +++ /dev/null @@ -1,203 +0,0 @@ -# negotiator - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -An HTTP content negotiator for Node.js - -## Installation - -```sh -$ npm install negotiator -``` - -## API - -```js -var Negotiator = require('negotiator') -``` - -### Accept Negotiation - -```js -availableMediaTypes = ['text/html', 'text/plain', 'application/json'] - -// The negotiator constructor receives a request object -negotiator = new Negotiator(request) - -// Let's say Accept header is 'text/html, application/*;q=0.2, image/jpeg;q=0.8' - -negotiator.mediaTypes() -// -> ['text/html', 'image/jpeg', 'application/*'] - -negotiator.mediaTypes(availableMediaTypes) -// -> ['text/html', 'application/json'] - -negotiator.mediaType(availableMediaTypes) -// -> 'text/html' -``` - -You can check a working example at `examples/accept.js`. - -#### Methods - -##### mediaType() - -Returns the most preferred media type from the client. - -##### mediaType(availableMediaType) - -Returns the most preferred media type from a list of available media types. - -##### mediaTypes() - -Returns an array of preferred media types ordered by the client preference. - -##### mediaTypes(availableMediaTypes) - -Returns an array of preferred media types ordered by priority from a list of -available media types. - -### Accept-Language Negotiation - -```js -negotiator = new Negotiator(request) - -availableLanguages = 'en', 'es', 'fr' - -// Let's say Accept-Language header is 'en;q=0.8, es, pt' - -negotiator.languages() -// -> ['es', 'pt', 'en'] - -negotiator.languages(availableLanguages) -// -> ['es', 'en'] - -language = negotiator.language(availableLanguages) -// -> 'es' -``` - -You can check a working example at `examples/language.js`. - -#### Methods - -##### language() - -Returns the most preferred language from the client. - -##### language(availableLanguages) - -Returns the most preferred language from a list of available languages. - -##### languages() - -Returns an array of preferred languages ordered by the client preference. - -##### languages(availableLanguages) - -Returns an array of preferred languages ordered by priority from a list of -available languages. - -### Accept-Charset Negotiation - -```js -availableCharsets = ['utf-8', 'iso-8859-1', 'iso-8859-5'] - -negotiator = new Negotiator(request) - -// Let's say Accept-Charset header is 'utf-8, iso-8859-1;q=0.8, utf-7;q=0.2' - -negotiator.charsets() -// -> ['utf-8', 'iso-8859-1', 'utf-7'] - -negotiator.charsets(availableCharsets) -// -> ['utf-8', 'iso-8859-1'] - -negotiator.charset(availableCharsets) -// -> 'utf-8' -``` - -You can check a working example at `examples/charset.js`. - -#### Methods - -##### charset() - -Returns the most preferred charset from the client. - -##### charset(availableCharsets) - -Returns the most preferred charset from a list of available charsets. - -##### charsets() - -Returns an array of preferred charsets ordered by the client preference. - -##### charsets(availableCharsets) - -Returns an array of preferred charsets ordered by priority from a list of -available charsets. - -### Accept-Encoding Negotiation - -```js -availableEncodings = ['identity', 'gzip'] - -negotiator = new Negotiator(request) - -// Let's say Accept-Encoding header is 'gzip, compress;q=0.2, identity;q=0.5' - -negotiator.encodings() -// -> ['gzip', 'identity', 'compress'] - -negotiator.encodings(availableEncodings) -// -> ['gzip', 'identity'] - -negotiator.encoding(availableEncodings) -// -> 'gzip' -``` - -You can check a working example at `examples/encoding.js`. - -#### Methods - -##### encoding() - -Returns the most preferred encoding from the client. - -##### encoding(availableEncodings) - -Returns the most preferred encoding from a list of available encodings. - -##### encodings() - -Returns an array of preferred encodings ordered by the client preference. - -##### encodings(availableEncodings) - -Returns an array of preferred encodings ordered by priority from a list of -available encodings. - -## See Also - -The [accepts](https://npmjs.org/package/accepts#readme) module builds on -this module and provides an alternative interface, mime type validation, -and more. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/negotiator.svg -[npm-url]: https://npmjs.org/package/negotiator -[node-version-image]: https://img.shields.io/node/v/negotiator.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/negotiator/master.svg -[travis-url]: https://travis-ci.org/jshttp/negotiator -[coveralls-image]: https://img.shields.io/coveralls/jshttp/negotiator/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/negotiator?branch=master -[downloads-image]: https://img.shields.io/npm/dm/negotiator.svg -[downloads-url]: https://npmjs.org/package/negotiator diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/index.js deleted file mode 100644 index edae9cfd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/index.js +++ /dev/null @@ -1,62 +0,0 @@ - -var preferredCharsets = require('./lib/charset'); -var preferredEncodings = require('./lib/encoding'); -var preferredLanguages = require('./lib/language'); -var preferredMediaTypes = require('./lib/mediaType'); - -module.exports = Negotiator; -Negotiator.Negotiator = Negotiator; - -function Negotiator(request) { - if (!(this instanceof Negotiator)) { - return new Negotiator(request); - } - - this.request = request; -} - -Negotiator.prototype.charset = function charset(available) { - var set = this.charsets(available); - return set && set[0]; -}; - -Negotiator.prototype.charsets = function charsets(available) { - return preferredCharsets(this.request.headers['accept-charset'], available); -}; - -Negotiator.prototype.encoding = function encoding(available) { - var set = this.encodings(available); - return set && set[0]; -}; - -Negotiator.prototype.encodings = function encodings(available) { - return preferredEncodings(this.request.headers['accept-encoding'], available); -}; - -Negotiator.prototype.language = function language(available) { - var set = this.languages(available); - return set && set[0]; -}; - -Negotiator.prototype.languages = function languages(available) { - return preferredLanguages(this.request.headers['accept-language'], available); -}; - -Negotiator.prototype.mediaType = function mediaType(available) { - var set = this.mediaTypes(available); - return set && set[0]; -}; - -Negotiator.prototype.mediaTypes = function mediaTypes(available) { - return preferredMediaTypes(this.request.headers.accept, available); -}; - -// Backwards compatibility -Negotiator.prototype.preferredCharset = Negotiator.prototype.charset; -Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets; -Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding; -Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings; -Negotiator.prototype.preferredLanguage = Negotiator.prototype.language; -Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages; -Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType; -Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/charset.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/charset.js deleted file mode 100644 index 7abd17c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/charset.js +++ /dev/null @@ -1,102 +0,0 @@ -module.exports = preferredCharsets; -preferredCharsets.preferredCharsets = preferredCharsets; - -function parseAcceptCharset(accept) { - var accepts = accept.split(','); - - for (var i = 0, j = 0; i < accepts.length; i++) { - var charset = parseCharset(accepts[i].trim(), i); - - if (charset) { - accepts[j++] = charset; - } - } - - // trim accepts - accepts.length = j; - - return accepts; -} - -function parseCharset(s, i) { - var match = s.match(/^\s*(\S+?)\s*(?:;(.*))?$/); - if (!match) return null; - - var charset = match[1]; - var q = 1; - if (match[2]) { - var params = match[2].split(';') - for (var i = 0; i < params.length; i ++) { - var p = params[i].trim().split('='); - if (p[0] === 'q') { - q = parseFloat(p[1]); - break; - } - } - } - - return { - charset: charset, - q: q, - i: i - }; -} - -function getCharsetPriority(charset, accepted, index) { - var priority = {o: -1, q: 0, s: 0}; - - for (var i = 0; i < accepted.length; i++) { - var spec = specify(charset, accepted[i], index); - - if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { - priority = spec; - } - } - - return priority; -} - -function specify(charset, spec, index) { - var s = 0; - if(spec.charset.toLowerCase() === charset.toLowerCase()){ - s |= 1; - } else if (spec.charset !== '*' ) { - return null - } - - return { - i: index, - o: spec.i, - q: spec.q, - s: s - } -} - -function preferredCharsets(accept, provided) { - // RFC 2616 sec 14.2: no header = * - var accepts = parseAcceptCharset(accept === undefined ? '*' : accept || ''); - - if (!provided) { - // sorted list of all charsets - return accepts.filter(isQuality).sort(compareSpecs).map(function getCharset(spec) { - return spec.charset; - }); - } - - var priorities = provided.map(function getPriority(type, index) { - return getCharsetPriority(type, accepts, index); - }); - - // sorted list of accepted charsets - return priorities.filter(isQuality).sort(compareSpecs).map(function getCharset(priority) { - return provided[priorities.indexOf(priority)]; - }); -} - -function compareSpecs(a, b) { - return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; -} - -function isQuality(spec) { - return spec.q > 0; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/encoding.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/encoding.js deleted file mode 100644 index 7fed6733..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/encoding.js +++ /dev/null @@ -1,118 +0,0 @@ -module.exports = preferredEncodings; -preferredEncodings.preferredEncodings = preferredEncodings; - -function parseAcceptEncoding(accept) { - var accepts = accept.split(','); - var hasIdentity = false; - var minQuality = 1; - - for (var i = 0, j = 0; i < accepts.length; i++) { - var encoding = parseEncoding(accepts[i].trim(), i); - - if (encoding) { - accepts[j++] = encoding; - hasIdentity = hasIdentity || specify('identity', encoding); - minQuality = Math.min(minQuality, encoding.q || 1); - } - } - - if (!hasIdentity) { - /* - * If identity doesn't explicitly appear in the accept-encoding header, - * it's added to the list of acceptable encoding with the lowest q - */ - accepts[j++] = { - encoding: 'identity', - q: minQuality, - i: i - }; - } - - // trim accepts - accepts.length = j; - - return accepts; -} - -function parseEncoding(s, i) { - var match = s.match(/^\s*(\S+?)\s*(?:;(.*))?$/); - - if (!match) return null; - - var encoding = match[1]; - var q = 1; - if (match[2]) { - var params = match[2].split(';'); - for (var i = 0; i < params.length; i ++) { - var p = params[i].trim().split('='); - if (p[0] === 'q') { - q = parseFloat(p[1]); - break; - } - } - } - - return { - encoding: encoding, - q: q, - i: i - }; -} - -function getEncodingPriority(encoding, accepted, index) { - var priority = {o: -1, q: 0, s: 0}; - - for (var i = 0; i < accepted.length; i++) { - var spec = specify(encoding, accepted[i], index); - - if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { - priority = spec; - } - } - - return priority; -} - -function specify(encoding, spec, index) { - var s = 0; - if(spec.encoding.toLowerCase() === encoding.toLowerCase()){ - s |= 1; - } else if (spec.encoding !== '*' ) { - return null - } - - return { - i: index, - o: spec.i, - q: spec.q, - s: s - } -}; - -function preferredEncodings(accept, provided) { - var accepts = parseAcceptEncoding(accept || ''); - - if (!provided) { - // sorted list of all encodings - return accepts.filter(isQuality).sort(compareSpecs).map(function getEncoding(spec) { - return spec.encoding; - }); - } - - var priorities = provided.map(function getPriority(type, index) { - return getEncodingPriority(type, accepts, index); - }); - - // sorted list of accepted encodings - return priorities.filter(isQuality).sort(compareSpecs).map(function getEncoding(priority) { - return provided[priorities.indexOf(priority)]; - }); -} - -function compareSpecs(a, b) { - return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; -} - -function isQuality(spec) { - return spec.q > 0; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/language.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/language.js deleted file mode 100644 index ed9e1ec0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/language.js +++ /dev/null @@ -1,112 +0,0 @@ -module.exports = preferredLanguages; -preferredLanguages.preferredLanguages = preferredLanguages; - -function parseAcceptLanguage(accept) { - var accepts = accept.split(','); - - for (var i = 0, j = 0; i < accepts.length; i++) { - var langauge = parseLanguage(accepts[i].trim(), i); - - if (langauge) { - accepts[j++] = langauge; - } - } - - // trim accepts - accepts.length = j; - - return accepts; -} - -function parseLanguage(s, i) { - var match = s.match(/^\s*(\S+?)(?:-(\S+?))?\s*(?:;(.*))?$/); - if (!match) return null; - - var prefix = match[1], - suffix = match[2], - full = prefix; - - if (suffix) full += "-" + suffix; - - var q = 1; - if (match[3]) { - var params = match[3].split(';') - for (var i = 0; i < params.length; i ++) { - var p = params[i].split('='); - if (p[0] === 'q') q = parseFloat(p[1]); - } - } - - return { - prefix: prefix, - suffix: suffix, - q: q, - i: i, - full: full - }; -} - -function getLanguagePriority(language, accepted, index) { - var priority = {o: -1, q: 0, s: 0}; - - for (var i = 0; i < accepted.length; i++) { - var spec = specify(language, accepted[i], index); - - if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { - priority = spec; - } - } - - return priority; -} - -function specify(language, spec, index) { - var p = parseLanguage(language) - if (!p) return null; - var s = 0; - if(spec.full.toLowerCase() === p.full.toLowerCase()){ - s |= 4; - } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) { - s |= 2; - } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) { - s |= 1; - } else if (spec.full !== '*' ) { - return null - } - - return { - i: index, - o: spec.i, - q: spec.q, - s: s - } -}; - -function preferredLanguages(accept, provided) { - // RFC 2616 sec 14.4: no header = * - var accepts = parseAcceptLanguage(accept === undefined ? '*' : accept || ''); - - if (!provided) { - // sorted list of all languages - return accepts.filter(isQuality).sort(compareSpecs).map(function getLanguage(spec) { - return spec.full; - }); - } - - var priorities = provided.map(function getPriority(type, index) { - return getLanguagePriority(type, accepts, index); - }); - - // sorted list of accepted languages - return priorities.filter(isQuality).sort(compareSpecs).map(function getLanguage(priority) { - return provided[priorities.indexOf(priority)]; - }); -} - -function compareSpecs(a, b) { - return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; -} - -function isQuality(spec) { - return spec.q > 0; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/mediaType.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/mediaType.js deleted file mode 100644 index 4170c258..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/lib/mediaType.js +++ /dev/null @@ -1,179 +0,0 @@ -/** - * negotiator - * Copyright(c) 2012 Isaac Z. Schlueter - * Copyright(c) 2014 Federico Romero - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -module.exports = preferredMediaTypes; -preferredMediaTypes.preferredMediaTypes = preferredMediaTypes; - -function parseAccept(accept) { - var accepts = splitMediaTypes(accept); - - for (var i = 0, j = 0; i < accepts.length; i++) { - var mediaType = parseMediaType(accepts[i].trim(), i); - - if (mediaType) { - accepts[j++] = mediaType; - } - } - - // trim accepts - accepts.length = j; - - return accepts; -}; - -function parseMediaType(s, i) { - var match = s.match(/\s*(\S+?)\/([^;\s]+)\s*(?:;(.*))?/); - if (!match) return null; - - var type = match[1], - subtype = match[2], - full = "" + type + "/" + subtype, - params = {}, - q = 1; - - if (match[3]) { - params = match[3].split(';').map(function(s) { - return s.trim().split('='); - }).reduce(function (set, p) { - var name = p[0].toLowerCase(); - var value = p[1]; - - set[name] = value && value[0] === '"' && value[value.length - 1] === '"' - ? value.substr(1, value.length - 2) - : value; - - return set; - }, params); - - if (params.q != null) { - q = parseFloat(params.q); - delete params.q; - } - } - - return { - type: type, - subtype: subtype, - params: params, - q: q, - i: i, - full: full - }; -} - -function getMediaTypePriority(type, accepted, index) { - var priority = {o: -1, q: 0, s: 0}; - - for (var i = 0; i < accepted.length; i++) { - var spec = specify(type, accepted[i], index); - - if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { - priority = spec; - } - } - - return priority; -} - -function specify(type, spec, index) { - var p = parseMediaType(type); - var s = 0; - - if (!p) { - return null; - } - - if(spec.type.toLowerCase() == p.type.toLowerCase()) { - s |= 4 - } else if(spec.type != '*') { - return null; - } - - if(spec.subtype.toLowerCase() == p.subtype.toLowerCase()) { - s |= 2 - } else if(spec.subtype != '*') { - return null; - } - - var keys = Object.keys(spec.params); - if (keys.length > 0) { - if (keys.every(function (k) { - return spec.params[k] == '*' || (spec.params[k] || '').toLowerCase() == (p.params[k] || '').toLowerCase(); - })) { - s |= 1 - } else { - return null - } - } - - return { - i: index, - o: spec.i, - q: spec.q, - s: s, - } - -} - -function preferredMediaTypes(accept, provided) { - // RFC 2616 sec 14.2: no header = */* - var accepts = parseAccept(accept === undefined ? '*/*' : accept || ''); - - if (!provided) { - // sorted list of all types - return accepts.filter(isQuality).sort(compareSpecs).map(function getType(spec) { - return spec.full; - }); - } - - var priorities = provided.map(function getPriority(type, index) { - return getMediaTypePriority(type, accepts, index); - }); - - // sorted list of accepted types - return priorities.filter(isQuality).sort(compareSpecs).map(function getType(priority) { - return provided[priorities.indexOf(priority)]; - }); -} - -function compareSpecs(a, b) { - return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; -} - -function isQuality(spec) { - return spec.q > 0; -} - -function quoteCount(string) { - var count = 0; - var index = 0; - - while ((index = string.indexOf('"', index)) !== -1) { - count++; - index++; - } - - return count; -} - -function splitMediaTypes(accept) { - var accepts = accept.split(','); - - for (var i = 1, j = 0; i < accepts.length; i++) { - if (quoteCount(accepts[j]) % 2 == 0) { - accepts[++j] = accepts[i]; - } else { - accepts[j] += ',' + accepts[i]; - } - } - - // trim accepts - accepts.length = j + 1; - - return accepts; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/package.json deleted file mode 100644 index 3ae3023f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/node_modules/negotiator/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "negotiator", - "description": "HTTP content negotiation", - "version": "0.5.3", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Federico Romero", - "email": "federico.romero@outboxlabs.com" - }, - { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - } - ], - "license": "MIT", - "keywords": [ - "http", - "content negotiation", - "accept", - "accept-language", - "accept-encoding", - "accept-charset" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/negotiator.git" - }, - "devDependencies": { - "istanbul": "0.3.9", - "mocha": "~1.21.5" - }, - "files": [ - "lib/", - "HISTORY.md", - "LICENSE", - "index.js", - "README.md" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "cbb717b3f164f25820f90b160cda6d0166b9d922", - "bugs": { - "url": "https://github.com/jshttp/negotiator/issues" - }, - "homepage": "https://github.com/jshttp/negotiator", - "_id": "negotiator@0.5.3", - "_shasum": "269d5c476810ec92edbe7b6c2f28316384f9a7e8", - "_from": "negotiator@0.5.3", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "federomero", - "email": "federomero@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "269d5c476810ec92edbe7b6c2f28316384f9a7e8", - "tarball": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/package.json deleted file mode 100644 index cc16bc5a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/accepts/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "name": "accepts", - "description": "Higher-level content negotiation", - "version": "1.2.13", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/accepts.git" - }, - "dependencies": { - "mime-types": "~2.1.6", - "negotiator": "0.5.3" - }, - "devDependencies": { - "istanbul": "0.3.19", - "mocha": "~1.21.5" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "keywords": [ - "content", - "negotiation", - "accept", - "accepts" - ], - "gitHead": "b7e15ecb25dacc0b2133ed0553d64f8a79537e01", - "bugs": { - "url": "https://github.com/jshttp/accepts/issues" - }, - "homepage": "https://github.com/jshttp/accepts", - "_id": "accepts@1.2.13", - "_shasum": "e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea", - "_from": "accepts@>=1.2.12 <1.3.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "federomero", - "email": "federomero@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "mscdex", - "email": "mscdex@mscdex.net" - }, - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - } - ], - "dist": { - "shasum": "e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea", - "tarball": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/LICENSE deleted file mode 100644 index 983fbe8a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Blake Embrey (hello@blakeembrey.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/README.md deleted file mode 100644 index 91fa5b63..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# Array Flatten - -[![NPM version][npm-image]][npm-url] -[![NPM downloads][downloads-image]][downloads-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] - -> Flatten an array of nested arrays into a single flat array. Accepts an optional depth. - -## Installation - -``` -npm install array-flatten --save -``` - -## Usage - -```javascript -var flatten = require('array-flatten') - -flatten([1, [2, [3, [4, [5], 6], 7], 8], 9]) -//=> [1, 2, 3, 4, 5, 6, 7, 8, 9] - -flatten([1, [2, [3, [4, [5], 6], 7], 8], 9], 2) -//=> [1, 2, 3, [4, [5], 6], 7, 8, 9] - -(function () { - flatten(arguments) //=> [1, 2, 3] -})(1, [2, 3]) -``` - -## License - -MIT - -[npm-image]: https://img.shields.io/npm/v/array-flatten.svg?style=flat -[npm-url]: https://npmjs.org/package/array-flatten -[downloads-image]: https://img.shields.io/npm/dm/array-flatten.svg?style=flat -[downloads-url]: https://npmjs.org/package/array-flatten -[travis-image]: https://img.shields.io/travis/blakeembrey/array-flatten.svg?style=flat -[travis-url]: https://travis-ci.org/blakeembrey/array-flatten -[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/array-flatten.svg?style=flat -[coveralls-url]: https://coveralls.io/r/blakeembrey/array-flatten?branch=master diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/array-flatten.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/array-flatten.js deleted file mode 100644 index 089117b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/array-flatten.js +++ /dev/null @@ -1,64 +0,0 @@ -'use strict' - -/** - * Expose `arrayFlatten`. - */ -module.exports = arrayFlatten - -/** - * Recursive flatten function with depth. - * - * @param {Array} array - * @param {Array} result - * @param {Number} depth - * @return {Array} - */ -function flattenWithDepth (array, result, depth) { - for (var i = 0; i < array.length; i++) { - var value = array[i] - - if (depth > 0 && Array.isArray(value)) { - flattenWithDepth(value, result, depth - 1) - } else { - result.push(value) - } - } - - return result -} - -/** - * Recursive flatten function. Omitting depth is slightly faster. - * - * @param {Array} array - * @param {Array} result - * @return {Array} - */ -function flattenForever (array, result) { - for (var i = 0; i < array.length; i++) { - var value = array[i] - - if (Array.isArray(value)) { - flattenForever(value, result) - } else { - result.push(value) - } - } - - return result -} - -/** - * Flatten an array, with the ability to define a depth. - * - * @param {Array} array - * @param {Number} depth - * @return {Array} - */ -function arrayFlatten (array, depth) { - if (depth == null) { - return flattenForever(array, []) - } - - return flattenWithDepth(array, [], depth) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/package.json deleted file mode 100644 index d36db1f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/array-flatten/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "array-flatten", - "version": "1.1.1", - "description": "Flatten an array of nested arrays into a single flat array", - "main": "array-flatten.js", - "files": [ - "array-flatten.js", - "LICENSE" - ], - "scripts": { - "test": "istanbul cover _mocha -- -R spec" - }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/array-flatten.git" - }, - "keywords": [ - "array", - "flatten", - "arguments", - "depth" - ], - "author": { - "name": "Blake Embrey", - "email": "hello@blakeembrey.com", - "url": "http://blakeembrey.me" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/blakeembrey/array-flatten/issues" - }, - "homepage": "https://github.com/blakeembrey/array-flatten", - "devDependencies": { - "istanbul": "^0.3.13", - "mocha": "^2.2.4", - "pre-commit": "^1.0.7", - "standard": "^3.7.3" - }, - "gitHead": "1963a9189229d408e1e8f585a00c8be9edbd1803", - "_id": "array-flatten@1.1.1", - "_shasum": "9a5f699051b1e7073328f2a008968b64ea2955d2", - "_from": "array-flatten@1.1.1", - "_npmVersion": "2.11.3", - "_nodeVersion": "2.3.3", - "_npmUser": { - "name": "blakeembrey", - "email": "hello@blakeembrey.com" - }, - "maintainers": [ - { - "name": "blakeembrey", - "email": "hello@blakeembrey.com" - } - ], - "dist": { - "shasum": "9a5f699051b1e7073328f2a008968b64ea2955d2", - "tarball": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/HISTORY.md deleted file mode 100644 index 76d494c6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/HISTORY.md +++ /dev/null @@ -1,45 +0,0 @@ -0.5.1 / 2016-01-17 -================== - - * perf: enable strict mode - -0.5.0 / 2014-10-11 -================== - - * Add `parse` function - -0.4.0 / 2014-09-21 -================== - - * Expand non-Unicode `filename` to the full ISO-8859-1 charset - -0.3.0 / 2014-09-20 -================== - - * Add `fallback` option - * Add `type` option - -0.2.0 / 2014-09-19 -================== - - * Reduce ambiguity of file names with hex escape in buggy browsers - -0.1.2 / 2014-09-19 -================== - - * Fix periodic invalid Unicode filename header - -0.1.1 / 2014-09-19 -================== - - * Fix invalid characters appearing in `filename*` parameter - -0.1.0 / 2014-09-18 -================== - - * Make the `filename` argument optional - -0.0.0 / 2014-09-18 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/LICENSE deleted file mode 100644 index b7dce6cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/README.md deleted file mode 100644 index 5cebce49..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/README.md +++ /dev/null @@ -1,141 +0,0 @@ -# content-disposition - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create and parse HTTP `Content-Disposition` header - -## Installation - -```sh -$ npm install content-disposition -``` - -## API - -```js -var contentDisposition = require('content-disposition') -``` - -### contentDisposition(filename, options) - -Create an attachment `Content-Disposition` header value using the given file name, -if supplied. The `filename` is optional and if no file name is desired, but you -want to specify `options`, set `filename` to `undefined`. - -```js -res.setHeader('Content-Disposition', contentDisposition('∫ maths.pdf')) -``` - -**note** HTTP headers are of the ISO-8859-1 character set. If you are writing this -header through a means different from `setHeader` in Node.js, you'll want to specify -the `'binary'` encoding in Node.js. - -#### Options - -`contentDisposition` accepts these properties in the options object. - -##### fallback - -If the `filename` option is outside ISO-8859-1, then the file name is actually -stored in a supplemental field for clients that support Unicode file names and -a ISO-8859-1 version of the file name is automatically generated. - -This specifies the ISO-8859-1 file name to override the automatic generation or -disables the generation all together, defaults to `true`. - - - A string will specify the ISO-8859-1 file name to use in place of automatic - generation. - - `false` will disable including a ISO-8859-1 file name and only include the - Unicode version (unless the file name is already ISO-8859-1). - - `true` will enable automatic generation if the file name is outside ISO-8859-1. - -If the `filename` option is ISO-8859-1 and this option is specified and has a -different value, then the `filename` option is encoded in the extended field -and this set as the fallback field, even though they are both ISO-8859-1. - -##### type - -Specifies the disposition type, defaults to `"attachment"`. This can also be -`"inline"`, or any other value (all values except inline are treated like -`attachment`, but can convey additional information if both parties agree to -it). The type is normalized to lower-case. - -### contentDisposition.parse(string) - -```js -var disposition = contentDisposition.parse('attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt'); -``` - -Parse a `Content-Disposition` header string. This automatically handles extended -("Unicode") parameters by decoding them and providing them under the standard -parameter name. This will return an object with the following properties (examples -are shown for the string `'attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt'`): - - - `type`: The disposition type (always lower case). Example: `'attachment'` - - - `parameters`: An object of the parameters in the disposition (name of parameter - always lower case and extended versions replace non-extended versions). Example: - `{filename: "€ rates.txt"}` - -## Examples - -### Send a file for download - -```js -var contentDisposition = require('content-disposition') -var destroy = require('destroy') -var http = require('http') -var onFinished = require('on-finished') - -var filePath = '/path/to/public/plans.pdf' - -http.createServer(function onRequest(req, res) { - // set headers - res.setHeader('Content-Type', 'application/pdf') - res.setHeader('Content-Disposition', contentDisposition(filePath)) - - // send file - var stream = fs.createReadStream(filePath) - stream.pipe(res) - onFinished(res, function (err) { - destroy(stream) - }) -}) -``` - -## Testing - -```sh -$ npm test -``` - -## References - -- [RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1][rfc-2616] -- [RFC 5987: Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters][rfc-5987] -- [RFC 6266: Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)][rfc-6266] -- [Test Cases for HTTP Content-Disposition header field (RFC 6266) and the Encodings defined in RFCs 2047, 2231 and 5987][tc-2231] - -[rfc-2616]: https://tools.ietf.org/html/rfc2616 -[rfc-5987]: https://tools.ietf.org/html/rfc5987 -[rfc-6266]: https://tools.ietf.org/html/rfc6266 -[tc-2231]: http://greenbytes.de/tech/tc2231/ - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/content-disposition.svg?style=flat -[npm-url]: https://npmjs.org/package/content-disposition -[node-version-image]: https://img.shields.io/node/v/content-disposition.svg?style=flat -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/content-disposition.svg?style=flat -[travis-url]: https://travis-ci.org/jshttp/content-disposition -[coveralls-image]: https://img.shields.io/coveralls/jshttp/content-disposition.svg?style=flat -[coveralls-url]: https://coveralls.io/r/jshttp/content-disposition?branch=master -[downloads-image]: https://img.shields.io/npm/dm/content-disposition.svg?style=flat -[downloads-url]: https://npmjs.org/package/content-disposition diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/index.js deleted file mode 100644 index 4a352dc8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/index.js +++ /dev/null @@ -1,445 +0,0 @@ -/*! - * content-disposition - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = contentDisposition -module.exports.parse = parse - -/** - * Module dependencies. - */ - -var basename = require('path').basename - -/** - * RegExp to match non attr-char, *after* encodeURIComponent (i.e. not including "%") - */ - -var encodeUriAttrCharRegExp = /[\x00-\x20"'\(\)*,\/:;<=>?@\[\\\]\{\}\x7f]/g - -/** - * RegExp to match percent encoding escape. - */ - -var hexEscapeRegExp = /%[0-9A-Fa-f]{2}/ -var hexEscapeReplaceRegExp = /%([0-9A-Fa-f]{2})/g - -/** - * RegExp to match non-latin1 characters. - */ - -var nonLatin1RegExp = /[^\x20-\x7e\xa0-\xff]/g - -/** - * RegExp to match quoted-pair in RFC 2616 - * - * quoted-pair = "\" CHAR - * CHAR = - */ - -var qescRegExp = /\\([\u0000-\u007f])/g; - -/** - * RegExp to match chars that must be quoted-pair in RFC 2616 - */ - -var quoteRegExp = /([\\"])/g - -/** - * RegExp for various RFC 2616 grammar - * - * parameter = token "=" ( token | quoted-string ) - * token = 1* - * separators = "(" | ")" | "<" | ">" | "@" - * | "," | ";" | ":" | "\" | <"> - * | "/" | "[" | "]" | "?" | "=" - * | "{" | "}" | SP | HT - * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) - * qdtext = > - * quoted-pair = "\" CHAR - * CHAR = - * TEXT = - * LWS = [CRLF] 1*( SP | HT ) - * CRLF = CR LF - * CR = - * LF = - * SP = - * HT = - * CTL = - * OCTET = - */ - -var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g -var textRegExp = /^[\x20-\x7e\x80-\xff]+$/ -var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/ - -/** - * RegExp for various RFC 5987 grammar - * - * ext-value = charset "'" [ language ] "'" value-chars - * charset = "UTF-8" / "ISO-8859-1" / mime-charset - * mime-charset = 1*mime-charsetc - * mime-charsetc = ALPHA / DIGIT - * / "!" / "#" / "$" / "%" / "&" - * / "+" / "-" / "^" / "_" / "`" - * / "{" / "}" / "~" - * language = ( 2*3ALPHA [ extlang ] ) - * / 4ALPHA - * / 5*8ALPHA - * extlang = *3( "-" 3ALPHA ) - * value-chars = *( pct-encoded / attr-char ) - * pct-encoded = "%" HEXDIG HEXDIG - * attr-char = ALPHA / DIGIT - * / "!" / "#" / "$" / "&" / "+" / "-" / "." - * / "^" / "_" / "`" / "|" / "~" - */ - -var extValueRegExp = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+\-\.^_`|~])+)$/ - -/** - * RegExp for various RFC 6266 grammar - * - * disposition-type = "inline" | "attachment" | disp-ext-type - * disp-ext-type = token - * disposition-parm = filename-parm | disp-ext-parm - * filename-parm = "filename" "=" value - * | "filename*" "=" ext-value - * disp-ext-parm = token "=" value - * | ext-token "=" ext-value - * ext-token = - */ - -var dispositionTypeRegExp = /^([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *(?:$|;)/ - -/** - * Create an attachment Content-Disposition header. - * - * @param {string} [filename] - * @param {object} [options] - * @param {string} [options.type=attachment] - * @param {string|boolean} [options.fallback=true] - * @return {string} - * @api public - */ - -function contentDisposition(filename, options) { - var opts = options || {} - - // get type - var type = opts.type || 'attachment' - - // get parameters - var params = createparams(filename, opts.fallback) - - // format into string - return format(new ContentDisposition(type, params)) -} - -/** - * Create parameters object from filename and fallback. - * - * @param {string} [filename] - * @param {string|boolean} [fallback=true] - * @return {object} - * @api private - */ - -function createparams(filename, fallback) { - if (filename === undefined) { - return - } - - var params = {} - - if (typeof filename !== 'string') { - throw new TypeError('filename must be a string') - } - - // fallback defaults to true - if (fallback === undefined) { - fallback = true - } - - if (typeof fallback !== 'string' && typeof fallback !== 'boolean') { - throw new TypeError('fallback must be a string or boolean') - } - - if (typeof fallback === 'string' && nonLatin1RegExp.test(fallback)) { - throw new TypeError('fallback must be ISO-8859-1 string') - } - - // restrict to file base name - var name = basename(filename) - - // determine if name is suitable for quoted string - var isQuotedString = textRegExp.test(name) - - // generate fallback name - var fallbackName = typeof fallback !== 'string' - ? fallback && getlatin1(name) - : basename(fallback) - var hasFallback = typeof fallbackName === 'string' && fallbackName !== name - - // set extended filename parameter - if (hasFallback || !isQuotedString || hexEscapeRegExp.test(name)) { - params['filename*'] = name - } - - // set filename parameter - if (isQuotedString || hasFallback) { - params.filename = hasFallback - ? fallbackName - : name - } - - return params -} - -/** - * Format object to Content-Disposition header. - * - * @param {object} obj - * @param {string} obj.type - * @param {object} [obj.parameters] - * @return {string} - * @api private - */ - -function format(obj) { - var parameters = obj.parameters - var type = obj.type - - if (!type || typeof type !== 'string' || !tokenRegExp.test(type)) { - throw new TypeError('invalid type') - } - - // start with normalized type - var string = String(type).toLowerCase() - - // append parameters - if (parameters && typeof parameters === 'object') { - var param - var params = Object.keys(parameters).sort() - - for (var i = 0; i < params.length; i++) { - param = params[i] - - var val = param.substr(-1) === '*' - ? ustring(parameters[param]) - : qstring(parameters[param]) - - string += '; ' + param + '=' + val - } - } - - return string -} - -/** - * Decode a RFC 6987 field value (gracefully). - * - * @param {string} str - * @return {string} - * @api private - */ - -function decodefield(str) { - var match = extValueRegExp.exec(str) - - if (!match) { - throw new TypeError('invalid extended field value') - } - - var charset = match[1].toLowerCase() - var encoded = match[2] - var value - - // to binary string - var binary = encoded.replace(hexEscapeReplaceRegExp, pdecode) - - switch (charset) { - case 'iso-8859-1': - value = getlatin1(binary) - break - case 'utf-8': - value = new Buffer(binary, 'binary').toString('utf8') - break - default: - throw new TypeError('unsupported charset in extended field') - } - - return value -} - -/** - * Get ISO-8859-1 version of string. - * - * @param {string} val - * @return {string} - * @api private - */ - -function getlatin1(val) { - // simple Unicode -> ISO-8859-1 transformation - return String(val).replace(nonLatin1RegExp, '?') -} - -/** - * Parse Content-Disposition header string. - * - * @param {string} string - * @return {object} - * @api private - */ - -function parse(string) { - if (!string || typeof string !== 'string') { - throw new TypeError('argument string is required') - } - - var match = dispositionTypeRegExp.exec(string) - - if (!match) { - throw new TypeError('invalid type format') - } - - // normalize type - var index = match[0].length - var type = match[1].toLowerCase() - - var key - var names = [] - var params = {} - var value - - // calculate index to start at - index = paramRegExp.lastIndex = match[0].substr(-1) === ';' - ? index - 1 - : index - - // match parameters - while (match = paramRegExp.exec(string)) { - if (match.index !== index) { - throw new TypeError('invalid parameter format') - } - - index += match[0].length - key = match[1].toLowerCase() - value = match[2] - - if (names.indexOf(key) !== -1) { - throw new TypeError('invalid duplicate parameter') - } - - names.push(key) - - if (key.indexOf('*') + 1 === key.length) { - // decode extended value - key = key.slice(0, -1) - value = decodefield(value) - - // overwrite existing value - params[key] = value - continue - } - - if (typeof params[key] === 'string') { - continue - } - - if (value[0] === '"') { - // remove quotes and escapes - value = value - .substr(1, value.length - 2) - .replace(qescRegExp, '$1') - } - - params[key] = value - } - - if (index !== -1 && index !== string.length) { - throw new TypeError('invalid parameter format') - } - - return new ContentDisposition(type, params) -} - -/** - * Percent decode a single character. - * - * @param {string} str - * @param {string} hex - * @return {string} - * @api private - */ - -function pdecode(str, hex) { - return String.fromCharCode(parseInt(hex, 16)) -} - -/** - * Percent encode a single character. - * - * @param {string} char - * @return {string} - * @api private - */ - -function pencode(char) { - var hex = String(char) - .charCodeAt(0) - .toString(16) - .toUpperCase() - return hex.length === 1 - ? '%0' + hex - : '%' + hex -} - -/** - * Quote a string for HTTP. - * - * @param {string} val - * @return {string} - * @api private - */ - -function qstring(val) { - var str = String(val) - - return '"' + str.replace(quoteRegExp, '\\$1') + '"' -} - -/** - * Encode a Unicode string for HTTP (RFC 5987). - * - * @param {string} val - * @return {string} - * @api private - */ - -function ustring(val) { - var str = String(val) - - // percent encode as UTF-8 - var encoded = encodeURIComponent(str) - .replace(encodeUriAttrCharRegExp, pencode) - - return 'UTF-8\'\'' + encoded -} - -/** - * Class for parsed Content-Disposition header for v8 optimization - */ - -function ContentDisposition(type, parameters) { - this.type = type - this.parameters = parameters -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/package.json deleted file mode 100644 index 2987c32e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-disposition/package.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "content-disposition", - "description": "Create and parse Content-Disposition header", - "version": "0.5.1", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "keywords": [ - "content-disposition", - "http", - "rfc6266", - "res" - ], - "repository": { - "type": "git", - "url": "https://github.com/jshttp/content-disposition" - }, - "devDependencies": { - "istanbul": "0.4.2", - "mocha": "1.21.5" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "7b391db3af5629d4c698f1de21802940bb9f22a5", - "bugs": { - "url": "https://github.com/jshttp/content-disposition/issues" - }, - "homepage": "https://github.com/jshttp/content-disposition", - "_id": "content-disposition@0.5.1", - "_shasum": "87476c6a67c8daa87e32e87616df883ba7fb071b", - "_from": "content-disposition@0.5.1", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "87476c6a67c8daa87e32e87616df883ba7fb071b", - "tarball": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/HISTORY.md deleted file mode 100644 index 01652ff4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/HISTORY.md +++ /dev/null @@ -1,14 +0,0 @@ -1.0.2 / 2016-05-09 -================== - - * perf: enable strict mode - -1.0.1 / 2015-02-13 -================== - - * Improve missing `Content-Type` header error message - -1.0.0 / 2015-02-01 -================== - - * Initial implementation, derived from `media-typer@0.3.0` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/LICENSE deleted file mode 100644 index 34b1a2de..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/README.md deleted file mode 100644 index 3ed67413..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# content-type - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create and parse HTTP Content-Type header according to RFC 7231 - -## Installation - -```sh -$ npm install content-type -``` - -## API - -```js -var contentType = require('content-type') -``` - -### contentType.parse(string) - -```js -var obj = contentType.parse('image/svg+xml; charset=utf-8') -``` - -Parse a content type string. This will return an object with the following -properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): - - - `type`: The media type (the type and subtype, always lower case). - Example: `'image/svg+xml'` - - - `parameters`: An object of the parameters in the media type (name of parameter - always lower case). Example: `{charset: 'utf-8'}` - -Throws a `TypeError` if the string is missing or invalid. - -### contentType.parse(req) - -```js -var obj = contentType.parse(req) -``` - -Parse the `content-type` header from the given `req`. Short-cut for -`contentType.parse(req.headers['content-type'])`. - -Throws a `TypeError` if the `Content-Type` header is missing or invalid. - -### contentType.parse(res) - -```js -var obj = contentType.parse(res) -``` - -Parse the `content-type` header set on the given `res`. Short-cut for -`contentType.parse(res.getHeader('content-type'))`. - -Throws a `TypeError` if the `Content-Type` header is missing or invalid. - -### contentType.format(obj) - -```js -var str = contentType.format({type: 'image/svg+xml'}) -``` - -Format an object into a content type string. This will return a string of the -content type for the given object with the following properties (examples are -shown that produce the string `'image/svg+xml; charset=utf-8'`): - - - `type`: The media type (will be lower-cased). Example: `'image/svg+xml'` - - - `parameters`: An object of the parameters in the media type (name of the - parameter will be lower-cased). Example: `{charset: 'utf-8'}` - -Throws a `TypeError` if the object contains an invalid type or parameter names. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/content-type.svg -[npm-url]: https://npmjs.org/package/content-type -[node-version-image]: https://img.shields.io/node/v/content-type.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/content-type/master.svg -[travis-url]: https://travis-ci.org/jshttp/content-type -[coveralls-image]: https://img.shields.io/coveralls/jshttp/content-type/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/content-type -[downloads-image]: https://img.shields.io/npm/dm/content-type.svg -[downloads-url]: https://npmjs.org/package/content-type diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/index.js deleted file mode 100644 index 61ba6b5a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/index.js +++ /dev/null @@ -1,216 +0,0 @@ -/*! - * content-type - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1 - * - * parameter = token "=" ( token / quoted-string ) - * token = 1*tchar - * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" - * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" - * / DIGIT / ALPHA - * ; any VCHAR, except delimiters - * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE - * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text - * obs-text = %x80-FF - * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) - */ -var paramRegExp = /; *([!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+) */g -var textRegExp = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/ -var tokenRegExp = /^[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+$/ - -/** - * RegExp to match quoted-pair in RFC 7230 sec 3.2.6 - * - * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) - * obs-text = %x80-FF - */ -var qescRegExp = /\\([\u000b\u0020-\u00ff])/g - -/** - * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6 - */ -var quoteRegExp = /([\\"])/g - -/** - * RegExp to match type in RFC 6838 - * - * media-type = type "/" subtype - * type = token - * subtype = token - */ -var typeRegExp = /^[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+\/[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+$/ - -/** - * Module exports. - * @public - */ - -exports.format = format -exports.parse = parse - -/** - * Format object to media type. - * - * @param {object} obj - * @return {string} - * @public - */ - -function format(obj) { - if (!obj || typeof obj !== 'object') { - throw new TypeError('argument obj is required') - } - - var parameters = obj.parameters - var type = obj.type - - if (!type || !typeRegExp.test(type)) { - throw new TypeError('invalid type') - } - - var string = type - - // append parameters - if (parameters && typeof parameters === 'object') { - var param - var params = Object.keys(parameters).sort() - - for (var i = 0; i < params.length; i++) { - param = params[i] - - if (!tokenRegExp.test(param)) { - throw new TypeError('invalid parameter name') - } - - string += '; ' + param + '=' + qstring(parameters[param]) - } - } - - return string -} - -/** - * Parse media type to object. - * - * @param {string|object} string - * @return {Object} - * @public - */ - -function parse(string) { - if (!string) { - throw new TypeError('argument string is required') - } - - if (typeof string === 'object') { - // support req/res-like objects as argument - string = getcontenttype(string) - - if (typeof string !== 'string') { - throw new TypeError('content-type header is missing from object'); - } - } - - if (typeof string !== 'string') { - throw new TypeError('argument string is required to be a string') - } - - var index = string.indexOf(';') - var type = index !== -1 - ? string.substr(0, index).trim() - : string.trim() - - if (!typeRegExp.test(type)) { - throw new TypeError('invalid media type') - } - - var key - var match - var obj = new ContentType(type.toLowerCase()) - var value - - paramRegExp.lastIndex = index - - while (match = paramRegExp.exec(string)) { - if (match.index !== index) { - throw new TypeError('invalid parameter format') - } - - index += match[0].length - key = match[1].toLowerCase() - value = match[2] - - if (value[0] === '"') { - // remove quotes and escapes - value = value - .substr(1, value.length - 2) - .replace(qescRegExp, '$1') - } - - obj.parameters[key] = value - } - - if (index !== -1 && index !== string.length) { - throw new TypeError('invalid parameter format') - } - - return obj -} - -/** - * Get content-type from req/res objects. - * - * @param {object} - * @return {Object} - * @private - */ - -function getcontenttype(obj) { - if (typeof obj.getHeader === 'function') { - // res-like - return obj.getHeader('content-type') - } - - if (typeof obj.headers === 'object') { - // req-like - return obj.headers && obj.headers['content-type'] - } -} - -/** - * Quote a string if necessary. - * - * @param {string} val - * @return {string} - * @private - */ - -function qstring(val) { - var str = String(val) - - // no need to quote tokens - if (tokenRegExp.test(str)) { - return str - } - - if (str.length > 0 && !textRegExp.test(str)) { - throw new TypeError('invalid parameter value') - } - - return '"' + str.replace(quoteRegExp, '\\$1') + '"' -} - -/** - * Class to represent a content type. - * @private - */ -function ContentType(type) { - this.parameters = Object.create(null) - this.type = type -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/package.json deleted file mode 100644 index dacc2adb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/content-type/package.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "name": "content-type", - "description": "Create and parse HTTP Content-Type header", - "version": "1.0.2", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "keywords": [ - "content-type", - "http", - "req", - "res", - "rfc7231" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/content-type.git" - }, - "devDependencies": { - "istanbul": "0.4.3", - "mocha": "~1.21.5" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - }, - "gitHead": "8118763adfbbac80cf1254191889330aec8b8be7", - "bugs": { - "url": "https://github.com/jshttp/content-type/issues" - }, - "homepage": "https://github.com/jshttp/content-type#readme", - "_id": "content-type@1.0.2", - "_shasum": "b7d113aee7a8dd27bd21133c4dc2529df1721eed", - "_from": "content-type@>=1.0.1 <1.1.0", - "_npmVersion": "2.15.1", - "_nodeVersion": "4.4.3", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "b7d113aee7a8dd27bd21133c4dc2529df1721eed", - "tarball": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/content-type-1.0.2.tgz_1462852785748_0.5491233412176371" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/.npmignore deleted file mode 100644 index f1250e58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -support -test -examples -*.sock diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/History.md deleted file mode 100644 index 78513cc3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/History.md +++ /dev/null @@ -1,38 +0,0 @@ -1.0.6 / 2015-02-03 -================== - -* use `npm test` instead of `make test` to run tests -* clearer assertion messages when checking input - - -1.0.5 / 2014-09-05 -================== - -* add license to package.json - -1.0.4 / 2014-06-25 -================== - - * corrected avoidance of timing attacks (thanks @tenbits!) - -1.0.3 / 2014-01-28 -================== - - * [incorrect] fix for timing attacks - -1.0.2 / 2014-01-28 -================== - - * fix missing repository warning - * fix typo in test - -1.0.1 / 2013-04-15 -================== - - * Revert "Changed underlying HMAC algo. to sha512." - * Revert "Fix for timing attacks on MAC verification." - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/Readme.md deleted file mode 100644 index 2559e841..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/Readme.md +++ /dev/null @@ -1,42 +0,0 @@ - -# cookie-signature - - Sign and unsign cookies. - -## Example - -```js -var cookie = require('cookie-signature'); - -var val = cookie.sign('hello', 'tobiiscool'); -val.should.equal('hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI'); - -var val = cookie.sign('hello', 'tobiiscool'); -cookie.unsign(val, 'tobiiscool').should.equal('hello'); -cookie.unsign(val, 'luna').should.be.false; -``` - -## License - -(The MIT License) - -Copyright (c) 2012 LearnBoost <tj@learnboost.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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/index.js deleted file mode 100644 index b8c9463a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/index.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Module dependencies. - */ - -var crypto = require('crypto'); - -/** - * Sign the given `val` with `secret`. - * - * @param {String} val - * @param {String} secret - * @return {String} - * @api private - */ - -exports.sign = function(val, secret){ - if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string."); - if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); - return val + '.' + crypto - .createHmac('sha256', secret) - .update(val) - .digest('base64') - .replace(/\=+$/, ''); -}; - -/** - * Unsign and decode the given `val` with `secret`, - * returning `false` if the signature is invalid. - * - * @param {String} val - * @param {String} secret - * @return {String|Boolean} - * @api private - */ - -exports.unsign = function(val, secret){ - if ('string' != typeof val) throw new TypeError("Signed cookie string must be provided."); - if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); - var str = val.slice(0, val.lastIndexOf('.')) - , mac = exports.sign(str, secret); - - return sha1(mac) == sha1(val) ? str : false; -}; - -/** - * Private - */ - -function sha1(str){ - return crypto.createHash('sha1').update(str).digest('hex'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/package.json deleted file mode 100644 index f564ea54..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie-signature/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "cookie-signature", - "version": "1.0.6", - "description": "Sign and unsign cookies", - "keywords": [ - "cookie", - "sign", - "unsign" - ], - "author": { - "name": "TJ Holowaychuk", - "email": "tj@learnboost.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/visionmedia/node-cookie-signature.git" - }, - "dependencies": {}, - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "scripts": { - "test": "mocha --require should --reporter spec" - }, - "main": "index", - "gitHead": "391b56cf44d88c493491b7e3fc53208cfb976d2a", - "bugs": { - "url": "https://github.com/visionmedia/node-cookie-signature/issues" - }, - "homepage": "https://github.com/visionmedia/node-cookie-signature", - "_id": "cookie-signature@1.0.6", - "_shasum": "e303a882b342cc3ee8ca513a79999734dab3ae2c", - "_from": "cookie-signature@1.0.6", - "_npmVersion": "2.3.0", - "_nodeVersion": "0.10.36", - "_npmUser": { - "name": "natevw", - "email": "natevw@yahoo.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "natevw", - "email": "natevw@yahoo.com" - } - ], - "dist": { - "shasum": "e303a882b342cc3ee8ca513a79999734dab3ae2c", - "tarball": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/HISTORY.md deleted file mode 100644 index ad8f1ff3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/HISTORY.md +++ /dev/null @@ -1,72 +0,0 @@ -0.1.5 / 2015-09-17 -================== - - * Fix regression when setting empty cookie value - - Ease the new restriction, which is just basic header-level validation - * Fix typo in invalid value errors - -0.1.4 / 2015-09-17 -================== - - * Throw better error for invalid argument to parse - * Throw on invalid values provided to `serialize` - - Ensures the resulting string is a valid HTTP header value - -0.1.3 / 2015-05-19 -================== - - * Reduce the scope of try-catch deopt - * Remove argument reassignments - -0.1.2 / 2014-04-16 -================== - - * Remove unnecessary files from npm package - -0.1.1 / 2014-02-23 -================== - - * Fix bad parse when cookie value contained a comma - * Fix support for `maxAge` of `0` - -0.1.0 / 2013-05-01 -================== - - * Add `decode` option - * Add `encode` option - -0.0.6 / 2013-04-08 -================== - - * Ignore cookie parts missing `=` - -0.0.5 / 2012-10-29 -================== - - * Return raw cookie value if value unescape errors - -0.0.4 / 2012-06-21 -================== - - * Use encode/decodeURIComponent for cookie encoding/decoding - - Improve server/client interoperability - -0.0.3 / 2012-06-06 -================== - - * Only escape special characters per the cookie RFC - -0.0.2 / 2012-06-01 -================== - - * Fix `maxAge` option to not throw error - -0.0.1 / 2012-05-28 -================== - - * Add more tests - -0.0.0 / 2012-05-28 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/LICENSE deleted file mode 100644 index 058b6b4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 Roman Shtylman -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/README.md deleted file mode 100644 index 8f59d1ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/README.md +++ /dev/null @@ -1,64 +0,0 @@ -# cookie - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -cookie is a basic cookie parser and serializer. It doesn't make assumptions about how you are going to deal with your cookies. It basically just provides a way to read and write the HTTP cookie headers. - -See [RFC6265](http://tools.ietf.org/html/rfc6265) for details about the http header for cookies. - -## how? - -``` -npm install cookie -``` - -```javascript -var cookie = require('cookie'); - -var hdr = cookie.serialize('foo', 'bar'); -// hdr = 'foo=bar'; - -var cookies = cookie.parse('foo=bar; cat=meow; dog=ruff'); -// cookies = { foo: 'bar', cat: 'meow', dog: 'ruff' }; -``` - -## more - -The serialize function takes a third parameter, an object, to set cookie options. See the RFC for valid values. - -### path -> cookie path - -### expires -> absolute expiration date for the cookie (Date object) - -### maxAge -> relative max age of the cookie from when the client receives it (seconds) - -### domain -> domain for the cookie - -### secure -> true or false - -### httpOnly -> true or false - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/cookie.svg -[npm-url]: https://npmjs.org/package/cookie -[node-version-image]: https://img.shields.io/node/v/cookie.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/cookie/master.svg -[travis-url]: https://travis-ci.org/jshttp/cookie -[coveralls-image]: https://img.shields.io/coveralls/jshttp/cookie/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/cookie?branch=master -[downloads-image]: https://img.shields.io/npm/dm/cookie.svg -[downloads-url]: https://npmjs.org/package/cookie diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/index.js deleted file mode 100644 index b705b2cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/index.js +++ /dev/null @@ -1,156 +0,0 @@ -/*! - * cookie - * Copyright(c) 2012-2014 Roman Shtylman - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module exports. - * @public - */ - -exports.parse = parse; -exports.serialize = serialize; - -/** - * Module variables. - * @private - */ - -var decode = decodeURIComponent; -var encode = encodeURIComponent; - -/** - * RegExp to match field-content in RFC 7230 sec 3.2 - * - * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] - * field-vchar = VCHAR / obs-text - * obs-text = %x80-FF - */ - -var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; - -/** - * Parse a cookie header. - * - * Parse the given cookie header string into an object - * The object has the various cookies as keys(names) => values - * - * @param {string} str - * @param {object} [options] - * @return {object} - * @public - */ - -function parse(str, options) { - if (typeof str !== 'string') { - throw new TypeError('argument str must be a string'); - } - - var obj = {} - var opt = options || {}; - var pairs = str.split(/; */); - var dec = opt.decode || decode; - - pairs.forEach(function(pair) { - var eq_idx = pair.indexOf('=') - - // skip things that don't look like key=value - if (eq_idx < 0) { - return; - } - - var key = pair.substr(0, eq_idx).trim() - var val = pair.substr(++eq_idx, pair.length).trim(); - - // quoted values - if ('"' == val[0]) { - val = val.slice(1, -1); - } - - // only assign once - if (undefined == obj[key]) { - obj[key] = tryDecode(val, dec); - } - }); - - return obj; -} - -/** - * Serialize data into a cookie header. - * - * Serialize the a name value pair into a cookie string suitable for - * http headers. An optional options object specified cookie parameters. - * - * serialize('foo', 'bar', { httpOnly: true }) - * => "foo=bar; httpOnly" - * - * @param {string} name - * @param {string} val - * @param {object} [options] - * @return {string} - * @public - */ - -function serialize(name, val, options) { - var opt = options || {}; - var enc = opt.encode || encode; - - if (!fieldContentRegExp.test(name)) { - throw new TypeError('argument name is invalid'); - } - - var value = enc(val); - - if (value && !fieldContentRegExp.test(value)) { - throw new TypeError('argument val is invalid'); - } - - var pairs = [name + '=' + value]; - - if (null != opt.maxAge) { - var maxAge = opt.maxAge - 0; - if (isNaN(maxAge)) throw new Error('maxAge should be a Number'); - pairs.push('Max-Age=' + maxAge); - } - - if (opt.domain) { - if (!fieldContentRegExp.test(opt.domain)) { - throw new TypeError('option domain is invalid'); - } - - pairs.push('Domain=' + opt.domain); - } - - if (opt.path) { - if (!fieldContentRegExp.test(opt.path)) { - throw new TypeError('option path is invalid'); - } - - pairs.push('Path=' + opt.path); - } - - if (opt.expires) pairs.push('Expires=' + opt.expires.toUTCString()); - if (opt.httpOnly) pairs.push('HttpOnly'); - if (opt.secure) pairs.push('Secure'); - - return pairs.join('; '); -} - -/** - * Try decoding a string using a decoding function. - * - * @param {string} str - * @param {function} decode - * @private - */ - -function tryDecode(str, decode) { - try { - return decode(str); - } catch (e) { - return str; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/package.json deleted file mode 100644 index a557b93c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/cookie/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "cookie", - "description": "cookie parsing and serialization", - "version": "0.1.5", - "author": { - "name": "Roman Shtylman", - "email": "shtylman@gmail.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "keywords": [ - "cookie", - "cookies" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/cookie.git" - }, - "devDependencies": { - "istanbul": "0.3.20", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - }, - "gitHead": "0dfc4876575cef2609cdc1082fccf832743822c2", - "bugs": { - "url": "https://github.com/jshttp/cookie/issues" - }, - "homepage": "https://github.com/jshttp/cookie", - "_id": "cookie@0.1.5", - "_shasum": "6ab9948a4b1ae21952cd2588530a4722d4044d7c", - "_from": "cookie@0.1.5", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "6ab9948a4b1ae21952cd2588530a4722d4044d7c", - "tarball": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/.jshintrc deleted file mode 100644 index 299877f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/.jshintrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "laxbreak": true -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/.npmignore deleted file mode 100644 index 7e6163db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -support -test -examples -example -*.sock -dist diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/History.md deleted file mode 100644 index 854c9711..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/History.md +++ /dev/null @@ -1,195 +0,0 @@ - -2.2.0 / 2015-05-09 -================== - - * package: update "ms" to v0.7.1 (#202, @dougwilson) - * README: add logging to file example (#193, @DanielOchoa) - * README: fixed a typo (#191, @amir-s) - * browser: expose `storage` (#190, @stephenmathieson) - * Makefile: add a `distclean` target (#189, @stephenmathieson) - -2.1.3 / 2015-03-13 -================== - - * Updated stdout/stderr example (#186) - * Updated example/stdout.js to match debug current behaviour - * Renamed example/stderr.js to stdout.js - * Update Readme.md (#184) - * replace high intensity foreground color for bold (#182, #183) - -2.1.2 / 2015-03-01 -================== - - * dist: recompile - * update "ms" to v0.7.0 - * package: update "browserify" to v9.0.3 - * component: fix "ms.js" repo location - * changed bower package name - * updated documentation about using debug in a browser - * fix: security error on safari (#167, #168, @yields) - -2.1.1 / 2014-12-29 -================== - - * browser: use `typeof` to check for `console` existence - * browser: check for `console.log` truthiness (fix IE 8/9) - * browser: add support for Chrome apps - * Readme: added Windows usage remarks - * Add `bower.json` to properly support bower install - -2.1.0 / 2014-10-15 -================== - - * node: implement `DEBUG_FD` env variable support - * package: update "browserify" to v6.1.0 - * package: add "license" field to package.json (#135, @panuhorsmalahti) - -2.0.0 / 2014-09-01 -================== - - * package: update "browserify" to v5.11.0 - * node: use stderr rather than stdout for logging (#29, @stephenmathieson) - -1.0.4 / 2014-07-15 -================== - - * dist: recompile - * example: remove `console.info()` log usage - * example: add "Content-Type" UTF-8 header to browser example - * browser: place %c marker after the space character - * browser: reset the "content" color via `color: inherit` - * browser: add colors support for Firefox >= v31 - * debug: prefer an instance `log()` function over the global one (#119) - * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) - -1.0.3 / 2014-07-09 -================== - - * Add support for multiple wildcards in namespaces (#122, @seegno) - * browser: fix lint - -1.0.2 / 2014-06-10 -================== - - * browser: update color palette (#113, @gscottolson) - * common: make console logging function configurable (#108, @timoxley) - * node: fix %o colors on old node <= 0.8.x - * Makefile: find node path using shell/which (#109, @timoxley) - -1.0.1 / 2014-06-06 -================== - - * browser: use `removeItem()` to clear localStorage - * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) - * package: add "contributors" section - * node: fix comment typo - * README: list authors - -1.0.0 / 2014-06-04 -================== - - * make ms diff be global, not be scope - * debug: ignore empty strings in enable() - * node: make DEBUG_COLORS able to disable coloring - * *: export the `colors` array - * npmignore: don't publish the `dist` dir - * Makefile: refactor to use browserify - * package: add "browserify" as a dev dependency - * Readme: add Web Inspector Colors section - * node: reset terminal color for the debug content - * node: map "%o" to `util.inspect()` - * browser: map "%j" to `JSON.stringify()` - * debug: add custom "formatters" - * debug: use "ms" module for humanizing the diff - * Readme: add "bash" syntax highlighting - * browser: add Firebug color support - * browser: add colors for WebKit browsers - * node: apply log to `console` - * rewrite: abstract common logic for Node & browsers - * add .jshintrc file - -0.8.1 / 2014-04-14 -================== - - * package: re-add the "component" section - -0.8.0 / 2014-03-30 -================== - - * add `enable()` method for nodejs. Closes #27 - * change from stderr to stdout - * remove unnecessary index.js file - -0.7.4 / 2013-11-13 -================== - - * remove "browserify" key from package.json (fixes something in browserify) - -0.7.3 / 2013-10-30 -================== - - * fix: catch localStorage security error when cookies are blocked (Chrome) - * add debug(err) support. Closes #46 - * add .browser prop to package.json. Closes #42 - -0.7.2 / 2013-02-06 -================== - - * fix package.json - * fix: Mobile Safari (private mode) is broken with debug - * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript - -0.7.1 / 2013-02-05 -================== - - * add repository URL to package.json - * add DEBUG_COLORED to force colored output - * add browserify support - * fix component. Closes #24 - -0.7.0 / 2012-05-04 -================== - - * Added .component to package.json - * Added debug.component.js build - -0.6.0 / 2012-03-16 -================== - - * Added support for "-" prefix in DEBUG [Vinay Pulim] - * Added `.enabled` flag to the node version [TooTallNate] - -0.5.0 / 2012-02-02 -================== - - * Added: humanize diffs. Closes #8 - * Added `debug.disable()` to the CS variant - * Removed padding. Closes #10 - * Fixed: persist client-side variant again. Closes #9 - -0.4.0 / 2012-02-01 -================== - - * Added browser variant support for older browsers [TooTallNate] - * Added `debug.enable('project:*')` to browser variant [TooTallNate] - * Added padding to diff (moved it to the right) - -0.3.0 / 2012-01-26 -================== - - * Added millisecond diff when isatty, otherwise UTC string - -0.2.0 / 2012-01-22 -================== - - * Added wildcard support - -0.1.0 / 2011-12-02 -================== - - * Added: remove colors unless stderr isatty [TooTallNate] - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/Makefile deleted file mode 100644 index 5cf4a596..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/Makefile +++ /dev/null @@ -1,36 +0,0 @@ - -# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 -THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) -THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) - -# BIN directory -BIN := $(THIS_DIR)/node_modules/.bin - -# applications -NODE ?= $(shell which node) -NPM ?= $(NODE) $(shell which npm) -BROWSERIFY ?= $(NODE) $(BIN)/browserify - -all: dist/debug.js - -install: node_modules - -clean: - @rm -rf dist - -dist: - @mkdir -p $@ - -dist/debug.js: node_modules browser.js debug.js dist - @$(BROWSERIFY) \ - --standalone debug \ - . > $@ - -distclean: clean - @rm -rf node_modules - -node_modules: package.json - @NODE_ENV= $(NPM) install - @touch node_modules - -.PHONY: all install clean distclean diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/Readme.md deleted file mode 100644 index b4f45e3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/Readme.md +++ /dev/null @@ -1,188 +0,0 @@ -# debug - - tiny node.js debugging utility modelled after node core's debugging technique. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - - With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility. - -Example _app.js_: - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %s', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example _worker.js_: - -```js -var debug = require('debug')('worker'); - -setInterval(function(){ - debug('doing some work'); -}, 1000); -``` - - The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: - - ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) - - ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) - -#### Windows note - - On Windows the environment variable is set using the `set` command. - - ```cmd - set DEBUG=*,-not_this - ``` - -Then, run the program to be debugged as usual. - -## Millisecond diff - - When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) - - When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: - - ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) - -## Conventions - - If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". - -## Wildcards - - The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - - You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:". - -## Browser support - - Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include: - -```js -window.myDebug = require("debug"); -``` - - ("debug" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console: - -```js -myDebug.enable("worker:*") -``` - - Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - -#### Web Inspector Colors - - Colors are also enabled on "Web Inspectors" that understand the `%c` formatting - option. These are WebKit web inspectors, Firefox ([since version - 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) - and the Firebug plugin for Firefox (any version). - - Colored output looks something like: - - ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png) - -### stderr vs stdout - -You can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally: - -Example _stdout.js_: - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -### Save debug output to a file - -You can save all debug statements to a file by piping them. - -Example: - -```bash -$ DEBUG_FD=3 node your-app.js 3> whatever.log -``` - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - -## License - -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/bower.json deleted file mode 100644 index 6af573ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "visionmedia-debug", - "main": "dist/debug.js", - "version": "2.2.0", - "homepage": "https://github.com/visionmedia/debug", - "authors": [ - "TJ Holowaychuk " - ], - "description": "visionmedia-debug", - "moduleType": [ - "amd", - "es6", - "globals", - "node" - ], - "keywords": [ - "visionmedia", - "debug" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/browser.js deleted file mode 100644 index 7c764522..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/browser.js +++ /dev/null @@ -1,168 +0,0 @@ - -/** - * This is the web browser implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - -/** - * Colors. - */ - -exports.colors = [ - 'lightseagreen', - 'forestgreen', - 'goldenrod', - 'dodgerblue', - 'darkorchid', - 'crimson' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -function useColors() { - // is webkit? http://stackoverflow.com/a/16459606/376773 - return ('WebkitAppearance' in document.documentElement.style) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (window.console && (console.firebug || (console.exception && console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31); -} - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - return JSON.stringify(v); -}; - - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); - - if (!useColors) return args; - - var c = 'color: ' + this.color; - args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1)); - - // the final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - var index = 0; - var lastC = 0; - args[0].replace(/%[a-z%]/g, function(match) { - if ('%%' === match) return; - index++; - if ('%c' === match) { - // we only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); - return args; -} - -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ - -function log() { - // this hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - try { - if (null == namespaces) { - exports.storage.removeItem('debug'); - } else { - exports.storage.debug = namespaces; - } - } catch(e) {} -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - var r; - try { - r = exports.storage.debug; - } catch(e) {} - return r; -} - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage(){ - try { - return window.localStorage; - } catch (e) {} -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/component.json deleted file mode 100644 index ca106372..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "debug", - "repo": "visionmedia/debug", - "description": "small debugging utility", - "version": "2.2.0", - "keywords": [ - "debug", - "log", - "debugger" - ], - "main": "browser.js", - "scripts": [ - "browser.js", - "debug.js" - ], - "dependencies": { - "rauchg/ms.js": "0.7.1" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/debug.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/debug.js deleted file mode 100644 index 7571a860..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/debug.js +++ /dev/null @@ -1,197 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = debug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = require('ms'); - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lowercased letter, i.e. "n". - */ - -exports.formatters = {}; - -/** - * Previously assigned color. - */ - -var prevColor = 0; - -/** - * Previous log timestamp. - */ - -var prevTime; - -/** - * Select a color. - * - * @return {Number} - * @api private - */ - -function selectColor() { - return exports.colors[prevColor++ % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function debug(namespace) { - - // define the `disabled` version - function disabled() { - } - disabled.enabled = false; - - // define the `enabled` version - function enabled() { - - var self = enabled; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // add the `color` if not set - if (null == self.useColors) self.useColors = exports.useColors(); - if (null == self.color && self.useColors) self.color = selectColor(); - - var args = Array.prototype.slice.call(arguments); - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %o - args = ['%o'].concat(args); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - if ('function' === typeof exports.formatArgs) { - args = exports.formatArgs.apply(self, args); - } - var logFn = enabled.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - enabled.enabled = true; - - var fn = exports.enabled(namespace) ? enabled : disabled; - - fn.namespace = namespace; - - return fn; -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - var split = (namespaces || '').split(/[\s,]+/); - var len = split.length; - - for (var i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node.js deleted file mode 100644 index 1d392a81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node.js +++ /dev/null @@ -1,209 +0,0 @@ - -/** - * Module dependencies. - */ - -var tty = require('tty'); -var util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -/** - * The file descriptor to write the `debug()` calls to. - * Set the `DEBUG_FD` env variable to override with another value. i.e.: - * - * $ DEBUG_FD=3 node script.js 3>debug.log - */ - -var fd = parseInt(process.env.DEBUG_FD, 10) || 2; -var stream = 1 === fd ? process.stdout : - 2 === fd ? process.stderr : - createWritableStdioStream(fd); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - var debugColors = (process.env.DEBUG_COLORS || '').trim().toLowerCase(); - if (0 === debugColors.length) { - return tty.isatty(fd); - } else { - return '0' !== debugColors - && 'no' !== debugColors - && 'false' !== debugColors - && 'disabled' !== debugColors; - } -} - -/** - * Map %o to `util.inspect()`, since Node doesn't do that out of the box. - */ - -var inspect = (4 === util.inspect.length ? - // node <= 0.8.x - function (v, colors) { - return util.inspect(v, void 0, void 0, colors); - } : - // node > 0.8.x - function (v, colors) { - return util.inspect(v, { colors: colors }); - } -); - -exports.formatters.o = function(v) { - return inspect(v, this.useColors) - .replace(/\s*\n\s*/g, ' '); -}; - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - var name = this.namespace; - - if (useColors) { - var c = this.color; - - args[0] = ' \u001b[3' + c + ';1m' + name + ' ' - + '\u001b[0m' - + args[0] + '\u001b[3' + c + 'm' - + ' +' + exports.humanize(this.diff) + '\u001b[0m'; - } else { - args[0] = new Date().toUTCString() - + ' ' + name + ' ' + args[0]; - } - return args; -} - -/** - * Invokes `console.error()` with the specified arguments. - */ - -function log() { - return stream.write(util.format.apply(this, arguments) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - if (null == namespaces) { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } else { - process.env.DEBUG = namespaces; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Copied from `node/src/node.js`. - * - * XXX: It's lame that node doesn't expose this API out-of-the-box. It also - * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. - */ - -function createWritableStdioStream (fd) { - var stream; - var tty_wrap = process.binding('tty_wrap'); - - // Note stream._type is used for test-module-load-list.js - - switch (tty_wrap.guessHandleType(fd)) { - case 'TTY': - stream = new tty.WriteStream(fd); - stream._type = 'tty'; - - // Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - case 'FILE': - var fs = require('fs'); - stream = new fs.SyncWriteStream(fd, { autoClose: false }); - stream._type = 'fs'; - break; - - case 'PIPE': - case 'TCP': - var net = require('net'); - stream = new net.Socket({ - fd: fd, - readable: false, - writable: true - }); - - // FIXME Should probably have an option in net.Socket to create a - // stream from an existing fd which is writable only. But for now - // we'll just add this hack and set the `readable` member to false. - // Test: ./node test/fixtures/echo.js < /etc/passwd - stream.readable = false; - stream.read = null; - stream._type = 'pipe'; - - // FIXME Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - default: - // Probably an error on in uv_guess_handle() - throw new Error('Implement me. Unknown stream file type!'); - } - - // For supporting legacy API we put the FD here. - stream.fd = fd; - - stream._isStdio = true; - - return stream; -} - -/** - * Enable namespaces listed in `process.env.DEBUG` initially. - */ - -exports.enable(load()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/.npmignore deleted file mode 100644 index d1aa0ce4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules -test -History.md -Makefile -component.json diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/History.md deleted file mode 100644 index 32fdfc17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/History.md +++ /dev/null @@ -1,66 +0,0 @@ - -0.7.1 / 2015-04-20 -================== - - * prevent extraordinary long inputs (@evilpacket) - * Fixed broken readme link - -0.7.0 / 2014-11-24 -================== - - * add time abbreviations, updated tests and readme for the new units - * fix example in the readme. - * add LICENSE file - -0.6.2 / 2013-12-05 -================== - - * Adding repository section to package.json to suppress warning from NPM. - -0.6.1 / 2013-05-10 -================== - - * fix singularization [visionmedia] - -0.6.0 / 2013-03-15 -================== - - * fix minutes - -0.5.1 / 2013-02-24 -================== - - * add component namespace - -0.5.0 / 2012-11-09 -================== - - * add short formatting as default and .long option - * add .license property to component.json - * add version to component.json - -0.4.0 / 2012-10-22 -================== - - * add rounding to fix crazy decimals - -0.3.0 / 2012-09-07 -================== - - * fix `ms()` [visionmedia] - -0.2.0 / 2012-09-03 -================== - - * add component.json [visionmedia] - * add days support [visionmedia] - * add hours support [visionmedia] - * add minutes support [visionmedia] - * add seconds support [visionmedia] - * add ms string support [visionmedia] - * refactor tests to facilitate ms(number) [visionmedia] - -0.1.0 / 2012-03-07 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/LICENSE deleted file mode 100644 index 6c07561b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Guillermo Rauch - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/README.md deleted file mode 100644 index 9b4fd035..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# ms.js: miliseconds conversion utility - -```js -ms('2 days') // 172800000 -ms('1d') // 86400000 -ms('10h') // 36000000 -ms('2.5 hrs') // 9000000 -ms('2h') // 7200000 -ms('1m') // 60000 -ms('5s') // 5000 -ms('100') // 100 -``` - -```js -ms(60000) // "1m" -ms(2 * 60000) // "2m" -ms(ms('10 hours')) // "10h" -``` - -```js -ms(60000, { long: true }) // "1 minute" -ms(2 * 60000, { long: true }) // "2 minutes" -ms(ms('10 hours'), { long: true }) // "10 hours" -``` - -- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download). -- If a number is supplied to `ms`, a string with a unit is returned. -- If a string that contains the number is supplied, it returns it as -a number (e.g: it returns `100` for `'100'`). -- If you pass a string with a number and a valid unit, the number of -equivalent ms is returned. - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/index.js deleted file mode 100644 index 4f927716..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/index.js +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} options - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options){ - options = options || {}; - if ('string' == typeof val) return parse(val); - return options.long - ? long(val) - : short(val); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = '' + str; - if (str.length > 10000) return; - var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str); - if (!match) return; - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function short(ms) { - if (ms >= d) return Math.round(ms / d) + 'd'; - if (ms >= h) return Math.round(ms / h) + 'h'; - if (ms >= m) return Math.round(ms / m) + 'm'; - if (ms >= s) return Math.round(ms / s) + 's'; - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function long(ms) { - return plural(ms, d, 'day') - || plural(ms, h, 'hour') - || plural(ms, m, 'minute') - || plural(ms, s, 'second') - || ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, n, name) { - if (ms < n) return; - if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name; - return Math.ceil(ms / n) + ' ' + name + 's'; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/package.json deleted file mode 100644 index e36489ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/node_modules/ms/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "ms", - "version": "0.7.1", - "description": "Tiny ms conversion utility", - "repository": { - "type": "git", - "url": "git://github.com/guille/ms.js.git" - }, - "main": "./index", - "devDependencies": { - "mocha": "*", - "expect.js": "*", - "serve": "*" - }, - "component": { - "scripts": { - "ms/index.js": "index.js" - } - }, - "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909", - "bugs": { - "url": "https://github.com/guille/ms.js/issues" - }, - "homepage": "https://github.com/guille/ms.js", - "_id": "ms@0.7.1", - "scripts": {}, - "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "_from": "ms@0.7.1", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/package.json deleted file mode 100644 index f2148c9e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/debug/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "debug", - "version": "2.2.0", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" - ], - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "contributors": [ - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io" - } - ], - "license": "MIT", - "dependencies": { - "ms": "0.7.1" - }, - "devDependencies": { - "browserify": "9.0.3", - "mocha": "*" - }, - "main": "./node.js", - "browser": "./browser.js", - "component": { - "scripts": { - "debug/index.js": "browser.js", - "debug/debug.js": "debug.js" - } - }, - "gitHead": "b38458422b5aa8aa6d286b10dfe427e8a67e2b35", - "bugs": { - "url": "https://github.com/visionmedia/debug/issues" - }, - "homepage": "https://github.com/visionmedia/debug", - "_id": "debug@2.2.0", - "scripts": {}, - "_shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "_from": "debug@>=2.2.0 <2.3.0", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "dist": { - "shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "tarball": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/History.md deleted file mode 100644 index ace11715..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/History.md +++ /dev/null @@ -1,84 +0,0 @@ -1.1.0 / 2015-09-14 -================== - - * Enable strict mode in more places - * Support io.js 3.x - * Support io.js 2.x - * Support web browser loading - - Requires bundler like Browserify or webpack - -1.0.1 / 2015-04-07 -================== - - * Fix `TypeError`s when under `'use strict'` code - * Fix useless type name on auto-generated messages - * Support io.js 1.x - * Support Node.js 0.12 - -1.0.0 / 2014-09-17 -================== - - * No changes - -0.4.5 / 2014-09-09 -================== - - * Improve call speed to functions using the function wrapper - * Support Node.js 0.6 - -0.4.4 / 2014-07-27 -================== - - * Work-around v8 generating empty stack traces - -0.4.3 / 2014-07-26 -================== - - * Fix exception when global `Error.stackTraceLimit` is too low - -0.4.2 / 2014-07-19 -================== - - * Correct call site for wrapped functions and properties - -0.4.1 / 2014-07-19 -================== - - * Improve automatic message generation for function properties - -0.4.0 / 2014-07-19 -================== - - * Add `TRACE_DEPRECATION` environment variable - * Remove non-standard grey color from color output - * Support `--no-deprecation` argument - * Support `--trace-deprecation` argument - * Support `deprecate.property(fn, prop, message)` - -0.3.0 / 2014-06-16 -================== - - * Add `NO_DEPRECATION` environment variable - -0.2.0 / 2014-06-15 -================== - - * Add `deprecate.property(obj, prop, message)` - * Remove `supports-color` dependency for node.js 0.8 - -0.1.0 / 2014-06-15 -================== - - * Add `deprecate.function(fn, message)` - * Add `process.on('deprecation', fn)` emitter - * Automatically generate message when omitted from `deprecate()` - -0.0.1 / 2014-06-15 -================== - - * Fix warning for dynamic calls at singe call site - -0.0.0 / 2014-06-15 -================== - - * Initial implementation diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/LICENSE deleted file mode 100644 index 142ede38..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/Readme.md deleted file mode 100644 index 09bb9799..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/Readme.md +++ /dev/null @@ -1,281 +0,0 @@ -# depd - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Linux Build][travis-image]][travis-url] -[![Windows Build][appveyor-image]][appveyor-url] -[![Coverage Status][coveralls-image]][coveralls-url] -[![Gratipay][gratipay-image]][gratipay-url] - -Deprecate all the things - -> With great modules comes great responsibility; mark things deprecated! - -## Install - -This module is installed directly using `npm`: - -```sh -$ npm install depd -``` - -This module can also be bundled with systems like -[Browserify](http://browserify.org/) or [webpack](https://webpack.github.io/), -though by default this module will alter it's API to no longer display or -track deprecations. - -## API - -```js -var deprecate = require('depd')('my-module') -``` - -This library allows you to display deprecation messages to your users. -This library goes above and beyond with deprecation warnings by -introspection of the call stack (but only the bits that it is interested -in). - -Instead of just warning on the first invocation of a deprecated -function and never again, this module will warn on the first invocation -of a deprecated function per unique call site, making it ideal to alert -users of all deprecated uses across the code base, rather than just -whatever happens to execute first. - -The deprecation warnings from this module also include the file and line -information for the call into the module that the deprecated function was -in. - -**NOTE** this library has a similar interface to the `debug` module, and -this module uses the calling file to get the boundary for the call stacks, -so you should always create a new `deprecate` object in each file and not -within some central file. - -### depd(namespace) - -Create a new deprecate function that uses the given namespace name in the -messages and will display the call site prior to the stack entering the -file this function was called from. It is highly suggested you use the -name of your module as the namespace. - -### deprecate(message) - -Call this function from deprecated code to display a deprecation message. -This message will appear once per unique caller site. Caller site is the -first call site in the stack in a different file from the caller of this -function. - -If the message is omitted, a message is generated for you based on the site -of the `deprecate()` call and will display the name of the function called, -similar to the name displayed in a stack trace. - -### deprecate.function(fn, message) - -Call this function to wrap a given function in a deprecation message on any -call to the function. An optional message can be supplied to provide a custom -message. - -### deprecate.property(obj, prop, message) - -Call this function to wrap a given property on object in a deprecation message -on any accessing or setting of the property. An optional message can be supplied -to provide a custom message. - -The method must be called on the object where the property belongs (not -inherited from the prototype). - -If the property is a data descriptor, it will be converted to an accessor -descriptor in order to display the deprecation message. - -### process.on('deprecation', fn) - -This module will allow easy capturing of deprecation errors by emitting the -errors as the type "deprecation" on the global `process`. If there are no -listeners for this type, the errors are written to STDERR as normal, but if -there are any listeners, nothing will be written to STDERR and instead only -emitted. From there, you can write the errors in a different format or to a -logging source. - -The error represents the deprecation and is emitted only once with the same -rules as writing to STDERR. The error has the following properties: - - - `message` - This is the message given by the library - - `name` - This is always `'DeprecationError'` - - `namespace` - This is the namespace the deprecation came from - - `stack` - This is the stack of the call to the deprecated thing - -Example `error.stack` output: - -``` -DeprecationError: my-cool-module deprecated oldfunction - at Object. ([eval]-wrapper:6:22) - at Module._compile (module.js:456:26) - at evalScript (node.js:532:25) - at startup (node.js:80:7) - at node.js:902:3 -``` - -### process.env.NO_DEPRECATION - -As a user of modules that are deprecated, the environment variable `NO_DEPRECATION` -is provided as a quick solution to silencing deprecation warnings from being -output. The format of this is similar to that of `DEBUG`: - -```sh -$ NO_DEPRECATION=my-module,othermod node app.js -``` - -This will suppress deprecations from being output for "my-module" and "othermod". -The value is a list of comma-separated namespaces. To suppress every warning -across all namespaces, use the value `*` for a namespace. - -Providing the argument `--no-deprecation` to the `node` executable will suppress -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not suppress the deperecations given to any "deprecation" -event listeners, just the output to STDERR. - -### process.env.TRACE_DEPRECATION - -As a user of modules that are deprecated, the environment variable `TRACE_DEPRECATION` -is provided as a solution to getting more detailed location information in deprecation -warnings by including the entire stack trace. The format of this is the same as -`NO_DEPRECATION`: - -```sh -$ TRACE_DEPRECATION=my-module,othermod node app.js -``` - -This will include stack traces for deprecations being output for "my-module" and -"othermod". The value is a list of comma-separated namespaces. To trace every -warning across all namespaces, use the value `*` for a namespace. - -Providing the argument `--trace-deprecation` to the `node` executable will trace -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not trace the deperecations silenced by `NO_DEPRECATION`. - -## Display - -![message](files/message.png) - -When a user calls a function in your library that you mark deprecated, they -will see the following written to STDERR (in the given colors, similar colors -and layout to the `debug` module): - -``` -bright cyan bright yellow -| | reset cyan -| | | | -▼ ▼ ▼ ▼ -my-cool-module deprecated oldfunction [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ -| | | | -namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -If the user redirects their STDERR to a file or somewhere that does not support -colors, they see (similar layout to the `debug` module): - -``` -Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ ▲ -| | | | | -timestamp of message namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -## Examples - -### Deprecating all calls to a function - -This will display a deprecated message about "oldfunction" being deprecated -from "my-module" on STDERR. - -```js -var deprecate = require('depd')('my-cool-module') - -// message automatically derived from function name -// Object.oldfunction -exports.oldfunction = deprecate.function(function oldfunction() { - // all calls to function are deprecated -}) - -// specific message -exports.oldfunction = deprecate.function(function () { - // all calls to function are deprecated -}, 'oldfunction') -``` - -### Conditionally deprecating a function call - -This will display a deprecated message about "weirdfunction" being deprecated -from "my-module" on STDERR when called with less than 2 arguments. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } -} -``` - -When calling `deprecate` as a function, the warning is counted per call site -within your own module, so you can display different deprecations depending -on different situations and the users will still get all the warnings: - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } else if (typeof arguments[0] !== 'string') { - // calls with non-string first argument are deprecated - deprecate('weirdfunction non-string first arg') - } -} -``` - -### Deprecating property access - -This will display a deprecated message about "oldprop" being deprecated -from "my-module" on STDERR when accessed. A deprecation will be displayed -when setting the value and when getting the value. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.oldprop = 'something' - -// message automatically derives from property name -deprecate.property(exports, 'oldprop') - -// explicit message -deprecate.property(exports, 'oldprop', 'oldprop >= 0.10') -``` - -## License - -[MIT](LICENSE) - -[npm-version-image]: https://img.shields.io/npm/v/depd.svg -[npm-downloads-image]: https://img.shields.io/npm/dm/depd.svg -[npm-url]: https://npmjs.org/package/depd -[travis-image]: https://img.shields.io/travis/dougwilson/nodejs-depd/master.svg?label=linux -[travis-url]: https://travis-ci.org/dougwilson/nodejs-depd -[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/nodejs-depd/master.svg?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/nodejs-depd -[coveralls-image]: https://img.shields.io/coveralls/dougwilson/nodejs-depd/master.svg -[coveralls-url]: https://coveralls.io/r/dougwilson/nodejs-depd?branch=master -[node-image]: https://img.shields.io/node/v/depd.svg -[node-url]: http://nodejs.org/download/ -[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg -[gratipay-url]: https://www.gratipay.com/dougwilson/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/index.js deleted file mode 100644 index fddcae87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/index.js +++ /dev/null @@ -1,521 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var callSiteToString = require('./lib/compat').callSiteToString -var eventListenerCount = require('./lib/compat').eventListenerCount -var relative = require('path').relative - -/** - * Module exports. - */ - -module.exports = depd - -/** - * Get the path to base files on. - */ - -var basePath = process.cwd() - -/** - * Determine if namespace is contained in the string. - */ - -function containsNamespace(str, namespace) { - var val = str.split(/[ ,]+/) - - namespace = String(namespace).toLowerCase() - - for (var i = 0 ; i < val.length; i++) { - if (!(str = val[i])) continue; - - // namespace contained - if (str === '*' || str.toLowerCase() === namespace) { - return true - } - } - - return false -} - -/** - * Convert a data descriptor to accessor descriptor. - */ - -function convertDataDescriptorToAccessor(obj, prop, message) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - var value = descriptor.value - - descriptor.get = function getter() { return value } - - if (descriptor.writable) { - descriptor.set = function setter(val) { return value = val } - } - - delete descriptor.value - delete descriptor.writable - - Object.defineProperty(obj, prop, descriptor) - - return descriptor -} - -/** - * Create arguments string to keep arity. - */ - -function createArgumentsString(arity) { - var str = '' - - for (var i = 0; i < arity; i++) { - str += ', arg' + i - } - - return str.substr(2) -} - -/** - * Create stack string from stack. - */ - -function createStackString(stack) { - var str = this.name + ': ' + this.namespace - - if (this.message) { - str += ' deprecated ' + this.message - } - - for (var i = 0; i < stack.length; i++) { - str += '\n at ' + callSiteToString(stack[i]) - } - - return str -} - -/** - * Create deprecate for namespace in caller. - */ - -function depd(namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - var stack = getStack() - var site = callSiteLocation(stack[1]) - var file = site[0] - - function deprecate(message) { - // call to self as log - log.call(deprecate, message) - } - - deprecate._file = file - deprecate._ignored = isignored(namespace) - deprecate._namespace = namespace - deprecate._traced = istraced(namespace) - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Determine if namespace is ignored. - */ - -function isignored(namespace) { - /* istanbul ignore next: tested in a child processs */ - if (process.noDeprecation) { - // --no-deprecation support - return true - } - - var str = process.env.NO_DEPRECATION || '' - - // namespace ignored - return containsNamespace(str, namespace) -} - -/** - * Determine if namespace is traced. - */ - -function istraced(namespace) { - /* istanbul ignore next: tested in a child processs */ - if (process.traceDeprecation) { - // --trace-deprecation support - return true - } - - var str = process.env.TRACE_DEPRECATION || '' - - // namespace traced - return containsNamespace(str, namespace) -} - -/** - * Display deprecation message. - */ - -function log(message, site) { - var haslisteners = eventListenerCount(process, 'deprecation') !== 0 - - // abort early if no destination - if (!haslisteners && this._ignored) { - return - } - - var caller - var callFile - var callSite - var i = 0 - var seen = false - var stack = getStack() - var file = this._file - - if (site) { - // provided site - callSite = callSiteLocation(stack[1]) - callSite.name = site.name - file = callSite[0] - } else { - // get call site - i = 2 - site = callSiteLocation(stack[i]) - callSite = site - } - - // get caller of deprecated thing in relation to file - for (; i < stack.length; i++) { - caller = callSiteLocation(stack[i]) - callFile = caller[0] - - if (callFile === file) { - seen = true - } else if (callFile === this._file) { - file = this._file - } else if (seen) { - break - } - } - - var key = caller - ? site.join(':') + '__' + caller.join(':') - : undefined - - if (key !== undefined && key in this._warned) { - // already warned - return - } - - this._warned[key] = true - - // generate automatic message from call site - if (!message) { - message = callSite === site || !callSite.name - ? defaultMessage(site) - : defaultMessage(callSite) - } - - // emit deprecation if listeners exist - if (haslisteners) { - var err = DeprecationError(this._namespace, message, stack.slice(i)) - process.emit('deprecation', err) - return - } - - // format and write message - var format = process.stderr.isTTY - ? formatColor - : formatPlain - var msg = format.call(this, message, caller, stack.slice(i)) - process.stderr.write(msg + '\n', 'utf8') - - return -} - -/** - * Get call site location as array. - */ - -function callSiteLocation(callSite) { - var file = callSite.getFileName() || '' - var line = callSite.getLineNumber() - var colm = callSite.getColumnNumber() - - if (callSite.isEval()) { - file = callSite.getEvalOrigin() + ', ' + file - } - - var site = [file, line, colm] - - site.callSite = callSite - site.name = callSite.getFunctionName() - - return site -} - -/** - * Generate a default message from the site. - */ - -function defaultMessage(site) { - var callSite = site.callSite - var funcName = site.name - - // make useful anonymous name - if (!funcName) { - funcName = '' - } - - var context = callSite.getThis() - var typeName = context && callSite.getTypeName() - - // ignore useless type name - if (typeName === 'Object') { - typeName = undefined - } - - // make useful type name - if (typeName === 'Function') { - typeName = context.name || typeName - } - - return typeName && callSite.getMethodName() - ? typeName + '.' + funcName - : funcName -} - -/** - * Format deprecation message without color. - */ - -function formatPlain(msg, caller, stack) { - var timestamp = new Date().toUTCString() - - var formatted = timestamp - + ' ' + this._namespace - + ' deprecated ' + msg - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n at ' + callSiteToString(stack[i]) - } - - return formatted - } - - if (caller) { - formatted += ' at ' + formatLocation(caller) - } - - return formatted -} - -/** - * Format deprecation message with color. - */ - -function formatColor(msg, caller, stack) { - var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' // bold cyan - + ' \x1b[33;1mdeprecated\x1b[22;39m' // bold yellow - + ' \x1b[0m' + msg + '\x1b[39m' // reset - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n \x1b[36mat ' + callSiteToString(stack[i]) + '\x1b[39m' // cyan - } - - return formatted - } - - if (caller) { - formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan - } - - return formatted -} - -/** - * Format call site location. - */ - -function formatLocation(callSite) { - return relative(basePath, callSite[0]) - + ':' + callSite[1] - + ':' + callSite[2] -} - -/** - * Get the stack as array of call sites. - */ - -function getStack() { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = Math.max(10, limit) - - // capture the stack - Error.captureStackTrace(obj) - - // slice this function off the top - var stack = obj.stack.slice(1) - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack -} - -/** - * Capture call site stack from v8. - */ - -function prepareObjectStackTrace(obj, stack) { - return stack -} - -/** - * Return a wrapped function in a deprecation message. - */ - -function wrapfunction(fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - var args = createArgumentsString(fn.length) - var deprecate = this - var stack = getStack() - var site = callSiteLocation(stack[1]) - - site.name = fn.name - - var deprecatedfn = eval('(function (' + args + ') {\n' - + '"use strict"\n' - + 'log.call(deprecate, message, site)\n' - + 'return fn.apply(this, arguments)\n' - + '})') - - return deprecatedfn -} - -/** - * Wrap property in a deprecation message. - */ - -function wrapproperty(obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } - - var deprecate = this - var stack = getStack() - var site = callSiteLocation(stack[1]) - - // set site name - site.name = prop - - // convert data descriptor - if ('value' in descriptor) { - descriptor = convertDataDescriptorToAccessor(obj, prop, message) - } - - var get = descriptor.get - var set = descriptor.set - - // wrap getter - if (typeof get === 'function') { - descriptor.get = function getter() { - log.call(deprecate, message, site) - return get.apply(this, arguments) - } - } - - // wrap setter - if (typeof set === 'function') { - descriptor.set = function setter() { - log.call(deprecate, message, site) - return set.apply(this, arguments) - } - } - - Object.defineProperty(obj, prop, descriptor) -} - -/** - * Create DeprecationError for deprecation - */ - -function DeprecationError(namespace, message, stack) { - var error = new Error() - var stackString - - Object.defineProperty(error, 'constructor', { - value: DeprecationError - }) - - Object.defineProperty(error, 'message', { - configurable: true, - enumerable: false, - value: message, - writable: true - }) - - Object.defineProperty(error, 'name', { - enumerable: false, - configurable: true, - value: 'DeprecationError', - writable: true - }) - - Object.defineProperty(error, 'namespace', { - configurable: true, - enumerable: false, - value: namespace, - writable: true - }) - - Object.defineProperty(error, 'stack', { - configurable: true, - enumerable: false, - get: function () { - if (stackString !== undefined) { - return stackString - } - - // prepare stack trace - return stackString = createStackString.call(this, stack) - }, - set: function setter(val) { - stackString = val - } - }) - - return error -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/browser/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/browser/index.js deleted file mode 100644 index f464e052..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/browser/index.js +++ /dev/null @@ -1,79 +0,0 @@ -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = depd - -/** - * Create deprecate for namespace in caller. - */ - -function depd(namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - function deprecate(message) { - // no-op in browser - } - - deprecate._file = undefined - deprecate._ignored = true - deprecate._namespace = namespace - deprecate._traced = false - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Return a wrapped function in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapfunction(fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - return fn -} - -/** - * Wrap property in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapproperty(obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } - - return -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/buffer-concat.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/buffer-concat.js deleted file mode 100644 index 4b733810..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/buffer-concat.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! - * depd - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = bufferConcat - -/** - * Concatenate an array of Buffers. - */ - -function bufferConcat(bufs) { - var length = 0 - - for (var i = 0, len = bufs.length; i < len; i++) { - length += bufs[i].length - } - - var buf = new Buffer(length) - var pos = 0 - - for (var i = 0, len = bufs.length; i < len; i++) { - bufs[i].copy(buf, pos) - pos += bufs[i].length - } - - return buf -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/callsite-tostring.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/callsite-tostring.js deleted file mode 100644 index 9ecef346..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/callsite-tostring.js +++ /dev/null @@ -1,103 +0,0 @@ -/*! - * depd - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = callSiteToString - -/** - * Format a CallSite file location to a string. - */ - -function callSiteFileLocation(callSite) { - var fileName - var fileLocation = '' - - if (callSite.isNative()) { - fileLocation = 'native' - } else if (callSite.isEval()) { - fileName = callSite.getScriptNameOrSourceURL() - if (!fileName) { - fileLocation = callSite.getEvalOrigin() - } - } else { - fileName = callSite.getFileName() - } - - if (fileName) { - fileLocation += fileName - - var lineNumber = callSite.getLineNumber() - if (lineNumber != null) { - fileLocation += ':' + lineNumber - - var columnNumber = callSite.getColumnNumber() - if (columnNumber) { - fileLocation += ':' + columnNumber - } - } - } - - return fileLocation || 'unknown source' -} - -/** - * Format a CallSite to a string. - */ - -function callSiteToString(callSite) { - var addSuffix = true - var fileLocation = callSiteFileLocation(callSite) - var functionName = callSite.getFunctionName() - var isConstructor = callSite.isConstructor() - var isMethodCall = !(callSite.isToplevel() || isConstructor) - var line = '' - - if (isMethodCall) { - var methodName = callSite.getMethodName() - var typeName = getConstructorName(callSite) - - if (functionName) { - if (typeName && functionName.indexOf(typeName) !== 0) { - line += typeName + '.' - } - - line += functionName - - if (methodName && functionName.lastIndexOf('.' + methodName) !== functionName.length - methodName.length - 1) { - line += ' [as ' + methodName + ']' - } - } else { - line += typeName + '.' + (methodName || '') - } - } else if (isConstructor) { - line += 'new ' + (functionName || '') - } else if (functionName) { - line += functionName - } else { - addSuffix = false - line += fileLocation - } - - if (addSuffix) { - line += ' (' + fileLocation + ')' - } - - return line -} - -/** - * Get constructor name of reviver. - */ - -function getConstructorName(obj) { - var receiver = obj.receiver - return (receiver.constructor && receiver.constructor.name) || null -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/event-listener-count.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/event-listener-count.js deleted file mode 100644 index a05fceb7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/event-listener-count.js +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = eventListenerCount - -/** - * Get the count of listeners on an event emitter of a specific type. - */ - -function eventListenerCount(emitter, type) { - return emitter.listeners(type).length -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/index.js deleted file mode 100644 index aa3c1de4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/lib/compat/index.js +++ /dev/null @@ -1,84 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var Buffer = require('buffer') -var EventEmitter = require('events').EventEmitter - -/** - * Module exports. - * @public - */ - -lazyProperty(module.exports, 'bufferConcat', function bufferConcat() { - return Buffer.concat || require('./buffer-concat') -}) - -lazyProperty(module.exports, 'callSiteToString', function callSiteToString() { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - function prepareObjectStackTrace(obj, stack) { - return stack - } - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = 2 - - // capture the stack - Error.captureStackTrace(obj) - - // slice the stack - var stack = obj.stack.slice() - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack[0].toString ? toString : require('./callsite-tostring') -}) - -lazyProperty(module.exports, 'eventListenerCount', function eventListenerCount() { - return EventEmitter.listenerCount || require('./event-listener-count') -}) - -/** - * Define a lazy property. - */ - -function lazyProperty(obj, prop, getter) { - function get() { - var val = getter() - - Object.defineProperty(obj, prop, { - configurable: true, - enumerable: true, - value: val - }) - - return val - } - - Object.defineProperty(obj, prop, { - configurable: true, - enumerable: true, - get: get - }) -} - -/** - * Call toString() on the obj - */ - -function toString(obj) { - return obj.toString() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/package.json deleted file mode 100644 index edfc0b2a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/depd/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "depd", - "description": "Deprecate all the things", - "version": "1.1.0", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "keywords": [ - "deprecate", - "deprecated" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/dougwilson/nodejs-depd.git" - }, - "browser": "lib/browser/index.js", - "devDependencies": { - "benchmark": "1.0.0", - "beautify-benchmark": "0.2.4", - "istanbul": "0.3.5", - "mocha": "~1.21.5" - }, - "files": [ - "lib/", - "History.md", - "LICENSE", - "index.js", - "Readme.md" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "test": "mocha --reporter spec --bail test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --no-exit test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/" - }, - "gitHead": "78c659de20283e3a6bee92bda455e6daff01686a", - "bugs": { - "url": "https://github.com/dougwilson/nodejs-depd/issues" - }, - "homepage": "https://github.com/dougwilson/nodejs-depd", - "_id": "depd@1.1.0", - "_shasum": "e1bd82c6aab6ced965b97b88b17ed3e528ca18c3", - "_from": "depd@>=1.1.0 <1.2.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "e1bd82c6aab6ced965b97b88b17ed3e528ca18c3", - "tarball": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/LICENSE deleted file mode 100644 index 2e70de97..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2013 TJ Holowaychuk -Copyright (c) 2015 Andreas Lubbe -Copyright (c) 2015 Tiancheng "Timothy" Gu - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/Readme.md deleted file mode 100644 index 653d9eaa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/Readme.md +++ /dev/null @@ -1,43 +0,0 @@ - -# escape-html - - Escape string for use in HTML - -## Example - -```js -var escape = require('escape-html'); -var html = escape('foo & bar'); -// -> foo & bar -``` - -## Benchmark - -``` -$ npm run-script bench - -> escape-html@1.0.3 bench nodejs-escape-html -> node benchmark/index.js - - - http_parser@1.0 - node@0.10.33 - v8@3.14.5.9 - ares@1.9.0-DEV - uv@0.10.29 - zlib@1.2.3 - modules@11 - openssl@1.0.1j - - 1 test completed. - 2 tests completed. - 3 tests completed. - - no special characters x 19,435,271 ops/sec ±0.85% (187 runs sampled) - single special character x 6,132,421 ops/sec ±0.67% (194 runs sampled) - many special characters x 3,175,826 ops/sec ±0.65% (193 runs sampled) -``` - -## License - - MIT \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/index.js deleted file mode 100644 index bf9e226f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/index.js +++ /dev/null @@ -1,78 +0,0 @@ -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ - -'use strict'; - -/** - * Module variables. - * @private - */ - -var matchHtmlRegExp = /["'&<>]/; - -/** - * Module exports. - * @public - */ - -module.exports = escapeHtml; - -/** - * Escape special characters in the given string of html. - * - * @param {string} string The string to escape for inserting into HTML - * @return {string} - * @public - */ - -function escapeHtml(string) { - var str = '' + string; - var match = matchHtmlRegExp.exec(str); - - if (!match) { - return str; - } - - var escape; - var html = ''; - var index = 0; - var lastIndex = 0; - - for (index = match.index; index < str.length; index++) { - switch (str.charCodeAt(index)) { - case 34: // " - escape = '"'; - break; - case 38: // & - escape = '&'; - break; - case 39: // ' - escape = '''; - break; - case 60: // < - escape = '<'; - break; - case 62: // > - escape = '>'; - break; - default: - continue; - } - - if (lastIndex !== index) { - html += str.substring(lastIndex, index); - } - - lastIndex = index + 1; - html += escape; - } - - return lastIndex !== index - ? html + str.substring(lastIndex, index) - : html; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/package.json deleted file mode 100644 index 3f418d6d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/escape-html/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "escape-html", - "description": "Escape string for use in HTML", - "version": "1.0.3", - "license": "MIT", - "keywords": [ - "escape", - "html", - "utility" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/component/escape-html.git" - }, - "devDependencies": { - "benchmark": "1.0.0", - "beautify-benchmark": "0.2.4" - }, - "files": [ - "LICENSE", - "Readme.md", - "index.js" - ], - "scripts": { - "bench": "node benchmark/index.js" - }, - "gitHead": "7ac2ea3977fcac3d4c5be8d2a037812820c65f28", - "bugs": { - "url": "https://github.com/component/escape-html/issues" - }, - "homepage": "https://github.com/component/escape-html", - "_id": "escape-html@1.0.3", - "_shasum": "0258eae4d3d0c0974de1c169188ef0051d1d1988", - "_from": "escape-html@>=1.0.3 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "0258eae4d3d0c0974de1c169188ef0051d1d1988", - "tarball": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/HISTORY.md deleted file mode 100644 index bd0f26df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/HISTORY.md +++ /dev/null @@ -1,71 +0,0 @@ -1.7.0 / 2015-06-08 -================== - - * Always include entity length in ETags for hash length extensions - * Generate non-Stats ETags using MD5 only (no longer CRC32) - * Improve stat performance by removing hashing - * Remove base64 padding in ETags to shorten - * Use MD5 instead of MD4 in weak ETags over 1KB - -1.6.0 / 2015-05-10 -================== - - * Improve support for JXcore - * Remove requirement of `atime` in the stats object - * Support "fake" stats objects in environments without `fs` - -1.5.1 / 2014-11-19 -================== - - * deps: crc@3.2.1 - - Minor fixes - -1.5.0 / 2014-10-14 -================== - - * Improve string performance - * Slightly improve speed for weak ETags over 1KB - -1.4.0 / 2014-09-21 -================== - - * Support "fake" stats objects - * Support Node.js 0.6 - -1.3.1 / 2014-09-14 -================== - - * Use the (new and improved) `crc` for crc32 - -1.3.0 / 2014-08-29 -================== - - * Default strings to strong ETags - * Improve speed for weak ETags over 1KB - -1.2.1 / 2014-08-29 -================== - - * Use the (much faster) `buffer-crc32` for crc32 - -1.2.0 / 2014-08-24 -================== - - * Add support for file stat objects - -1.1.0 / 2014-08-24 -================== - - * Add fast-path for empty entity - * Add weak ETag generation - * Shrink size of generated ETags - -1.0.1 / 2014-08-24 -================== - - * Fix behavior of string containing Unicode - -1.0.0 / 2014-05-18 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/LICENSE deleted file mode 100644 index 142ede38..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/README.md deleted file mode 100644 index 8da9e059..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/README.md +++ /dev/null @@ -1,165 +0,0 @@ -# etag - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create simple ETags - -## Installation - -```sh -$ npm install etag -``` - -## API - -```js -var etag = require('etag') -``` - -### etag(entity, [options]) - -Generate a strong ETag for the given entity. This should be the complete -body of the entity. Strings, `Buffer`s, and `fs.Stats` are accepted. By -default, a strong ETag is generated except for `fs.Stats`, which will -generate a weak ETag (this can be overwritten by `options.weak`). - -```js -res.setHeader('ETag', etag(body)) -``` - -#### Options - -`etag` accepts these properties in the options object. - -##### weak - -Specifies if the generated ETag will include the weak validator mark (that -is, the leading `W/`). The actual entity tag is the same. The default value -is `false`, unless the `entity` is `fs.Stats`, in which case it is `true`. - -## Testing - -```sh -$ npm test -``` - -## Benchmark - -```bash -$ npm run-script bench - -> etag@1.6.0 bench nodejs-etag -> node benchmark/index.js - - http_parser@1.0 - node@0.10.33 - v8@3.14.5.9 - ares@1.9.0-DEV - uv@0.10.29 - zlib@1.2.3 - modules@11 - openssl@1.0.1j - -> node benchmark/body0-100b.js - - 100B body - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* buffer - strong x 289,198 ops/sec ±1.09% (190 runs sampled) -* buffer - weak x 287,838 ops/sec ±0.91% (189 runs sampled) -* string - strong x 284,586 ops/sec ±1.05% (192 runs sampled) -* string - weak x 287,439 ops/sec ±0.82% (192 runs sampled) - -> node benchmark/body1-1kb.js - - 1KB body - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* buffer - strong x 212,423 ops/sec ±0.75% (193 runs sampled) -* buffer - weak x 211,871 ops/sec ±0.74% (194 runs sampled) - string - strong x 205,291 ops/sec ±0.86% (194 runs sampled) - string - weak x 208,463 ops/sec ±0.79% (192 runs sampled) - -> node benchmark/body2-5kb.js - - 5KB body - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* buffer - strong x 92,901 ops/sec ±0.58% (195 runs sampled) -* buffer - weak x 93,045 ops/sec ±0.65% (192 runs sampled) - string - strong x 89,621 ops/sec ±0.68% (194 runs sampled) - string - weak x 90,070 ops/sec ±0.70% (196 runs sampled) - -> node benchmark/body3-10kb.js - - 10KB body - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* buffer - strong x 54,220 ops/sec ±0.85% (192 runs sampled) -* buffer - weak x 54,069 ops/sec ±0.83% (191 runs sampled) - string - strong x 53,078 ops/sec ±0.53% (194 runs sampled) - string - weak x 53,849 ops/sec ±0.47% (197 runs sampled) - -> node benchmark/body4-100kb.js - - 100KB body - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* buffer - strong x 6,673 ops/sec ±0.15% (197 runs sampled) -* buffer - weak x 6,716 ops/sec ±0.12% (198 runs sampled) - string - strong x 6,357 ops/sec ±0.14% (197 runs sampled) - string - weak x 6,344 ops/sec ±0.21% (197 runs sampled) - -> node benchmark/stats.js - - stats - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* real - strong x 1,671,989 ops/sec ±0.13% (197 runs sampled) -* real - weak x 1,681,297 ops/sec ±0.12% (198 runs sampled) - fake - strong x 927,063 ops/sec ±0.14% (198 runs sampled) - fake - weak x 914,461 ops/sec ±0.41% (191 runs sampled) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/etag.svg -[npm-url]: https://npmjs.org/package/etag -[node-version-image]: https://img.shields.io/node/v/etag.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/etag/master.svg -[travis-url]: https://travis-ci.org/jshttp/etag -[coveralls-image]: https://img.shields.io/coveralls/jshttp/etag/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/etag?branch=master -[downloads-image]: https://img.shields.io/npm/dm/etag.svg -[downloads-url]: https://npmjs.org/package/etag diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/index.js deleted file mode 100644 index b582c84c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/index.js +++ /dev/null @@ -1,132 +0,0 @@ -/*! - * etag - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = etag - -/** - * Module dependencies. - * @private - */ - -var crypto = require('crypto') -var Stats = require('fs').Stats - -/** - * Module variables. - * @private - */ - -var base64PadCharRegExp = /=+$/ -var toString = Object.prototype.toString - -/** - * Generate an entity tag. - * - * @param {Buffer|string} entity - * @return {string} - * @private - */ - -function entitytag(entity) { - if (entity.length === 0) { - // fast-path empty - return '"0-1B2M2Y8AsgTpgAmY7PhCfg"' - } - - // compute hash of entity - var hash = crypto - .createHash('md5') - .update(entity, 'utf8') - .digest('base64') - .replace(base64PadCharRegExp, '') - - // compute length of entity - var len = typeof entity === 'string' - ? Buffer.byteLength(entity, 'utf8') - : entity.length - - return '"' + len.toString(16) + '-' + hash + '"' -} - -/** - * Create a simple ETag. - * - * @param {string|Buffer|Stats} entity - * @param {object} [options] - * @param {boolean} [options.weak] - * @return {String} - * @public - */ - -function etag(entity, options) { - if (entity == null) { - throw new TypeError('argument entity is required') - } - - // support fs.Stats object - var isStats = isstats(entity) - var weak = options && typeof options.weak === 'boolean' - ? options.weak - : isStats - - // validate argument - if (!isStats && typeof entity !== 'string' && !Buffer.isBuffer(entity)) { - throw new TypeError('argument entity must be string, Buffer, or fs.Stats') - } - - // generate entity tag - var tag = isStats - ? stattag(entity) - : entitytag(entity) - - return weak - ? 'W/' + tag - : tag -} - -/** - * Determine if object is a Stats object. - * - * @param {object} obj - * @return {boolean} - * @api private - */ - -function isstats(obj) { - // genuine fs.Stats - if (typeof Stats === 'function' && obj instanceof Stats) { - return true - } - - // quack quack - return obj && typeof obj === 'object' - && 'ctime' in obj && toString.call(obj.ctime) === '[object Date]' - && 'mtime' in obj && toString.call(obj.mtime) === '[object Date]' - && 'ino' in obj && typeof obj.ino === 'number' - && 'size' in obj && typeof obj.size === 'number' -} - -/** - * Generate a tag for a stat. - * - * @param {object} stat - * @return {string} - * @private - */ - -function stattag(stat) { - var mtime = stat.mtime.getTime().toString(16) - var size = stat.size.toString(16) - - return '"' + size + '-' + mtime + '"' -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/package.json deleted file mode 100644 index b1b5d225..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/etag/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "etag", - "description": "Create simple ETags", - "version": "1.7.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "David Björklund", - "email": "david.bjorklund@gmail.com" - } - ], - "license": "MIT", - "keywords": [ - "etag", - "http", - "res" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/etag.git" - }, - "devDependencies": { - "benchmark": "1.0.0", - "beautify-benchmark": "0.2.4", - "istanbul": "0.3.14", - "mocha": "~1.21.4", - "seedrandom": "2.3.11" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "a511f5c8c930fd9546dbd88acb080f96bc788cfc", - "bugs": { - "url": "https://github.com/jshttp/etag/issues" - }, - "homepage": "https://github.com/jshttp/etag", - "_id": "etag@1.7.0", - "_shasum": "03d30b5f67dd6e632d2945d30d6652731a34d5d8", - "_from": "etag@>=1.7.0 <1.8.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "03d30b5f67dd6e632d2945d30d6652731a34d5d8", - "tarball": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/HISTORY.md deleted file mode 100644 index 78dddc01..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/HISTORY.md +++ /dev/null @@ -1,98 +0,0 @@ -0.4.1 / 2015-12-02 -================== - - * deps: escape-html@~1.0.3 - - perf: enable strict mode - - perf: optimize string replacement - - perf: use faster string coercion - -0.4.0 / 2015-06-14 -================== - - * Fix a false-positive when unpiping in Node.js 0.8 - * Support `statusCode` property on `Error` objects - * Use `unpipe` module for unpiping requests - * deps: escape-html@1.0.2 - * deps: on-finished@~2.3.0 - - Add defined behavior for HTTP `CONNECT` requests - - Add defined behavior for HTTP `Upgrade` requests - - deps: ee-first@1.1.1 - * perf: enable strict mode - * perf: remove argument reassignment - -0.3.6 / 2015-05-11 -================== - - * deps: debug@~2.2.0 - - deps: ms@0.7.1 - -0.3.5 / 2015-04-22 -================== - - * deps: on-finished@~2.2.1 - - Fix `isFinished(req)` when data buffered - -0.3.4 / 2015-03-15 -================== - - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - -0.3.3 / 2015-01-01 -================== - - * deps: debug@~2.1.1 - * deps: on-finished@~2.2.0 - -0.3.2 / 2014-10-22 -================== - - * deps: on-finished@~2.1.1 - - Fix handling of pipelined requests - -0.3.1 / 2014-10-16 -================== - - * deps: debug@~2.1.0 - - Implement `DEBUG_FD` env variable support - -0.3.0 / 2014-09-17 -================== - - * Terminate in progress response only on error - * Use `on-finished` to determine request status - -0.2.0 / 2014-09-03 -================== - - * Set `X-Content-Type-Options: nosniff` header - * deps: debug@~2.0.0 - -0.1.0 / 2014-07-16 -================== - - * Respond after request fully read - - prevents hung responses and socket hang ups - * deps: debug@1.0.4 - -0.0.3 / 2014-07-11 -================== - - * deps: debug@1.0.3 - - Add support for multiple wildcards in namespaces - -0.0.2 / 2014-06-19 -================== - - * Handle invalid status codes - -0.0.1 / 2014-06-05 -================== - - * deps: debug@1.0.2 - -0.0.0 / 2014-06-05 -================== - - * Extracted from connect/express diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/LICENSE deleted file mode 100644 index b60a5adf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/README.md deleted file mode 100644 index 6b171d47..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# finalhandler - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Node.js function to invoke as the final step to respond to HTTP request. - -## Installation - -```sh -$ npm install finalhandler -``` - -## API - -```js -var finalhandler = require('finalhandler') -``` - -### finalhandler(req, res, [options]) - -Returns function to be invoked as the final step for the given `req` and `res`. -This function is to be invoked as `fn(err)`. If `err` is falsy, the handler will -write out a 404 response to the `res`. If it is truthy, an error response will -be written out to the `res`, and `res.statusCode` is set from `err.status`. - -The final handler will also unpipe anything from `req` when it is invoked. - -#### options.env - -By default, the environment is determined by `NODE_ENV` variable, but it can be -overridden by this option. - -#### options.onerror - -Provide a function to be called with the `err` when it exists. Can be used for -writing errors to a central location without excessive function generation. Called -as `onerror(err, req, res)`. - -## Examples - -### always 404 - -```js -var finalhandler = require('finalhandler') -var http = require('http') - -var server = http.createServer(function (req, res) { - var done = finalhandler(req, res) - done() -}) - -server.listen(3000) -``` - -### perform simple action - -```js -var finalhandler = require('finalhandler') -var fs = require('fs') -var http = require('http') - -var server = http.createServer(function (req, res) { - var done = finalhandler(req, res) - - fs.readFile('index.html', function (err, buf) { - if (err) return done(err) - res.setHeader('Content-Type', 'text/html') - res.end(buf) - }) -}) - -server.listen(3000) -``` - -### use with middleware-style functions - -```js -var finalhandler = require('finalhandler') -var http = require('http') -var serveStatic = require('serve-static') - -var serve = serveStatic('public') - -var server = http.createServer(function (req, res) { - var done = finalhandler(req, res) - serve(req, res, done) -}) - -server.listen(3000) -``` - -### keep log of all errors - -```js -var finalhandler = require('finalhandler') -var fs = require('fs') -var http = require('http') - -var server = http.createServer(function (req, res) { - var done = finalhandler(req, res, {onerror: logerror}) - - fs.readFile('index.html', function (err, buf) { - if (err) return done(err) - res.setHeader('Content-Type', 'text/html') - res.end(buf) - }) -}) - -server.listen(3000) - -function logerror(err) { - console.error(err.stack || err.toString()) -} -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/finalhandler.svg -[npm-url]: https://npmjs.org/package/finalhandler -[node-image]: https://img.shields.io/node/v/finalhandler.svg -[node-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/pillarjs/finalhandler.svg -[travis-url]: https://travis-ci.org/pillarjs/finalhandler -[coveralls-image]: https://img.shields.io/coveralls/pillarjs/finalhandler.svg -[coveralls-url]: https://coveralls.io/r/pillarjs/finalhandler?branch=master -[downloads-image]: https://img.shields.io/npm/dm/finalhandler.svg -[downloads-url]: https://npmjs.org/package/finalhandler diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/index.js deleted file mode 100644 index 0de7c6b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/index.js +++ /dev/null @@ -1,151 +0,0 @@ -/*! - * finalhandler - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var debug = require('debug')('finalhandler') -var escapeHtml = require('escape-html') -var http = require('http') -var onFinished = require('on-finished') -var unpipe = require('unpipe') - -/** - * Module variables. - * @private - */ - -/* istanbul ignore next */ -var defer = typeof setImmediate === 'function' - ? setImmediate - : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } -var isFinished = onFinished.isFinished - -/** - * Module exports. - * @public - */ - -module.exports = finalhandler - -/** - * Create a function to handle the final response. - * - * @param {Request} req - * @param {Response} res - * @param {Object} [options] - * @return {Function} - * @public - */ - -function finalhandler(req, res, options) { - var opts = options || {} - - // get environment - var env = opts.env || process.env.NODE_ENV || 'development' - - // get error callback - var onerror = opts.onerror - - return function (err) { - var status = res.statusCode - - // ignore 404 on in-flight response - if (!err && res._header) { - debug('cannot 404 after headers sent') - return - } - - // unhandled error - if (err) { - // respect err.statusCode - if (err.statusCode) { - status = err.statusCode - } - - // respect err.status - if (err.status) { - status = err.status - } - - // default status code to 500 - if (!status || status < 400) { - status = 500 - } - - // production gets a basic error message - var msg = env === 'production' - ? http.STATUS_CODES[status] - : err.stack || err.toString() - msg = escapeHtml(msg) - .replace(/\n/g, '
      ') - .replace(/ /g, '  ') + '\n' - } else { - status = 404 - msg = 'Cannot ' + escapeHtml(req.method) + ' ' + escapeHtml(req.originalUrl || req.url) + '\n' - } - - debug('default %s', status) - - // schedule onerror callback - if (err && onerror) { - defer(onerror, err, req, res) - } - - // cannot actually respond - if (res._header) { - return req.socket.destroy() - } - - send(req, res, status, msg) - } -} - -/** - * Send response. - * - * @param {IncomingMessage} req - * @param {OutgoingMessage} res - * @param {number} status - * @param {string} body - * @private - */ - -function send(req, res, status, body) { - function write() { - res.statusCode = status - - // security header for content sniffing - res.setHeader('X-Content-Type-Options', 'nosniff') - - // standard headers - res.setHeader('Content-Type', 'text/html; charset=utf-8') - res.setHeader('Content-Length', Buffer.byteLength(body, 'utf8')) - - if (req.method === 'HEAD') { - res.end() - return - } - - res.end(body, 'utf8') - } - - if (isFinished(req)) { - write() - return - } - - // unpipe everything from the request - unpipe(req) - - // flush the request - onFinished(req, write) - req.resume() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/HISTORY.md deleted file mode 100644 index 85e0f8d7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/HISTORY.md +++ /dev/null @@ -1,4 +0,0 @@ -1.0.0 / 2015-06-14 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/LICENSE deleted file mode 100644 index aed01382..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/README.md deleted file mode 100644 index e536ad2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# unpipe - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Unpipe a stream from all destinations. - -## Installation - -```sh -$ npm install unpipe -``` - -## API - -```js -var unpipe = require('unpipe') -``` - -### unpipe(stream) - -Unpipes all destinations from a given stream. With stream 2+, this is -equivalent to `stream.unpipe()`. When used with streams 1 style streams -(typically Node.js 0.8 and below), this module attempts to undo the -actions done in `stream.pipe(dest)`. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/unpipe.svg -[npm-url]: https://npmjs.org/package/unpipe -[node-image]: https://img.shields.io/node/v/unpipe.svg -[node-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/stream-utils/unpipe.svg -[travis-url]: https://travis-ci.org/stream-utils/unpipe -[coveralls-image]: https://img.shields.io/coveralls/stream-utils/unpipe.svg -[coveralls-url]: https://coveralls.io/r/stream-utils/unpipe?branch=master -[downloads-image]: https://img.shields.io/npm/dm/unpipe.svg -[downloads-url]: https://npmjs.org/package/unpipe diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/index.js deleted file mode 100644 index 15c3d97a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/index.js +++ /dev/null @@ -1,69 +0,0 @@ -/*! - * unpipe - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = unpipe - -/** - * Determine if there are Node.js pipe-like data listeners. - * @private - */ - -function hasPipeDataListeners(stream) { - var listeners = stream.listeners('data') - - for (var i = 0; i < listeners.length; i++) { - if (listeners[i].name === 'ondata') { - return true - } - } - - return false -} - -/** - * Unpipe a stream from all destinations. - * - * @param {object} stream - * @public - */ - -function unpipe(stream) { - if (!stream) { - throw new TypeError('argument stream is required') - } - - if (typeof stream.unpipe === 'function') { - // new-style - stream.unpipe() - return - } - - // Node.js 0.8 hack - if (!hasPipeDataListeners(stream)) { - return - } - - var listener - var listeners = stream.listeners('close') - - for (var i = 0; i < listeners.length; i++) { - listener = listeners[i] - - if (listener.name !== 'cleanup' && listener.name !== 'onclose') { - continue - } - - // invoke the listener - listener.call(stream) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/package.json deleted file mode 100644 index dc61177a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/node_modules/unpipe/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "unpipe", - "description": "Unpipe a stream from all destinations", - "version": "1.0.0", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/stream-utils/unpipe.git" - }, - "devDependencies": { - "istanbul": "0.3.15", - "mocha": "2.2.5", - "readable-stream": "1.1.13" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "d2df901c06487430e78dca62b6edb8bb2fc5e99d", - "bugs": { - "url": "https://github.com/stream-utils/unpipe/issues" - }, - "homepage": "https://github.com/stream-utils/unpipe", - "_id": "unpipe@1.0.0", - "_shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec", - "_from": "unpipe@>=1.0.0 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec", - "tarball": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/package.json deleted file mode 100644 index 936eb9a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/finalhandler/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "name": "finalhandler", - "description": "Node.js final http responder", - "version": "0.4.1", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/pillarjs/finalhandler.git" - }, - "dependencies": { - "debug": "~2.2.0", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "unpipe": "~1.0.0" - }, - "devDependencies": { - "istanbul": "0.4.1", - "mocha": "2.3.4", - "readable-stream": "2.0.4", - "supertest": "1.1.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "ac2036774059eb93dbac8475580e52433204d4d4", - "bugs": { - "url": "https://github.com/pillarjs/finalhandler/issues" - }, - "homepage": "https://github.com/pillarjs/finalhandler", - "_id": "finalhandler@0.4.1", - "_shasum": "85a17c6c59a94717d262d61230d4b0ebe3d4a14d", - "_from": "finalhandler@0.4.1", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - } - ], - "dist": { - "shasum": "85a17c6c59a94717d262d61230d4b0ebe3d4a14d", - "tarball": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/HISTORY.md deleted file mode 100644 index 3c95fbb9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/HISTORY.md +++ /dev/null @@ -1,38 +0,0 @@ -0.3.0 / 2015-05-12 -================== - - * Add weak `ETag` matching support - -0.2.4 / 2014-09-07 -================== - - * Support Node.js 0.6 - -0.2.3 / 2014-09-07 -================== - - * Move repository to jshttp - -0.2.2 / 2014-02-19 -================== - - * Revert "Fix for blank page on Safari reload" - -0.2.1 / 2014-01-29 -================== - - * Fix for blank page on Safari reload - -0.2.0 / 2013-08-11 -================== - - * Return stale for `Cache-Control: no-cache` - -0.1.0 / 2012-06-15 -================== - * Add `If-None-Match: *` support - -0.0.1 / 2012-06-10 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/LICENSE deleted file mode 100644 index f5273943..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2012 TJ Holowaychuk - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/README.md deleted file mode 100644 index 0813e309..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# fresh - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -HTTP response freshness testing - -## Installation - -``` -$ npm install fresh -``` - -## API - -```js -var fresh = require('fresh') -``` - -### fresh(req, res) - - Check freshness of `req` and `res` headers. - - When the cache is "fresh" __true__ is returned, - otherwise __false__ is returned to indicate that - the cache is now stale. - -## Example - -```js -var req = { 'if-none-match': 'tobi' }; -var res = { 'etag': 'luna' }; -fresh(req, res); -// => false - -var req = { 'if-none-match': 'tobi' }; -var res = { 'etag': 'tobi' }; -fresh(req, res); -// => true -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/fresh.svg -[npm-url]: https://npmjs.org/package/fresh -[node-version-image]: https://img.shields.io/node/v/fresh.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/fresh/master.svg -[travis-url]: https://travis-ci.org/jshttp/fresh -[coveralls-image]: https://img.shields.io/coveralls/jshttp/fresh/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/fresh?branch=master -[downloads-image]: https://img.shields.io/npm/dm/fresh.svg -[downloads-url]: https://npmjs.org/package/fresh diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/index.js deleted file mode 100644 index a9008736..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/index.js +++ /dev/null @@ -1,57 +0,0 @@ - -/** - * Expose `fresh()`. - */ - -module.exports = fresh; - -/** - * Check freshness of `req` and `res` headers. - * - * When the cache is "fresh" __true__ is returned, - * otherwise __false__ is returned to indicate that - * the cache is now stale. - * - * @param {Object} req - * @param {Object} res - * @return {Boolean} - * @api public - */ - -function fresh(req, res) { - // defaults - var etagMatches = true; - var notModified = true; - - // fields - var modifiedSince = req['if-modified-since']; - var noneMatch = req['if-none-match']; - var lastModified = res['last-modified']; - var etag = res['etag']; - var cc = req['cache-control']; - - // unconditional request - if (!modifiedSince && !noneMatch) return false; - - // check for no-cache cache request directive - if (cc && cc.indexOf('no-cache') !== -1) return false; - - // parse if-none-match - if (noneMatch) noneMatch = noneMatch.split(/ *, */); - - // if-none-match - if (noneMatch) { - etagMatches = noneMatch.some(function (match) { - return match === '*' || match === etag || match === 'W/' + etag; - }); - } - - // if-modified-since - if (modifiedSince) { - modifiedSince = new Date(modifiedSince); - lastModified = new Date(lastModified); - notModified = lastModified <= modifiedSince; - } - - return !! (etagMatches && notModified); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/package.json deleted file mode 100644 index c0fc6222..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/fresh/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "name": "fresh", - "description": "HTTP response freshness testing", - "version": "0.3.0", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": "http://tjholowaychuk.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "keywords": [ - "fresh", - "http", - "conditional", - "cache" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/fresh.git" - }, - "devDependencies": { - "istanbul": "0.3.9", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "14616c9748368ca08cd6a955dd88ab659b778634", - "bugs": { - "url": "https://github.com/jshttp/fresh/issues" - }, - "homepage": "https://github.com/jshttp/fresh", - "_id": "fresh@0.3.0", - "_shasum": "651f838e22424e7566de161d8358caa199f83d4f", - "_from": "fresh@0.3.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "jonathanong", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "651f838e22424e7566de161d8358caa199f83d4f", - "tarball": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/HISTORY.md deleted file mode 100644 index 486771f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/HISTORY.md +++ /dev/null @@ -1,21 +0,0 @@ -1.0.1 / 2016-01-17 -================== - - * perf: enable strict mode - -1.0.0 / 2015-03-01 -================== - - * Add option to only add new descriptors - * Add simple argument validation - * Add jsdoc to source file - -0.0.2 / 2013-12-14 -================== - - * Move repository to `component` organization - -0.0.1 / 2013-10-29 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/LICENSE deleted file mode 100644 index 274bfd82..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2013 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/README.md deleted file mode 100644 index d593c0eb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Merge Descriptors - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Merge objects using descriptors. - -```js -var thing = { - get name() { - return 'jon' - } -} - -var animal = { - -} - -merge(animal, thing) - -animal.name === 'jon' -``` - -## API - -### merge(destination, source) - -Redefines `destination`'s descriptors with `source`'s. - -### merge(destination, source, false) - -Defines `source`'s descriptors on `destination` if `destination` does not have -a descriptor by the same name. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/merge-descriptors.svg -[npm-url]: https://npmjs.org/package/merge-descriptors -[travis-image]: https://img.shields.io/travis/component/merge-descriptors/master.svg -[travis-url]: https://travis-ci.org/component/merge-descriptors -[coveralls-image]: https://img.shields.io/coveralls/component/merge-descriptors/master.svg -[coveralls-url]: https://coveralls.io/r/component/merge-descriptors?branch=master -[downloads-image]: https://img.shields.io/npm/dm/merge-descriptors.svg -[downloads-url]: https://npmjs.org/package/merge-descriptors diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/index.js deleted file mode 100644 index 573b132e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/index.js +++ /dev/null @@ -1,60 +0,0 @@ -/*! - * merge-descriptors - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = merge - -/** - * Module variables. - * @private - */ - -var hasOwnProperty = Object.prototype.hasOwnProperty - -/** - * Merge the property descriptors of `src` into `dest` - * - * @param {object} dest Object to add descriptors to - * @param {object} src Object to clone descriptors from - * @param {boolean} [redefine=true] Redefine `dest` properties with `src` properties - * @returns {object} Reference to dest - * @public - */ - -function merge(dest, src, redefine) { - if (!dest) { - throw new TypeError('argument dest is required') - } - - if (!src) { - throw new TypeError('argument src is required') - } - - if (redefine === undefined) { - // Default to true - redefine = true - } - - Object.getOwnPropertyNames(src).forEach(function forEachOwnPropertyName(name) { - if (!redefine && hasOwnProperty.call(dest, name)) { - // Skip desriptor - return - } - - // Copy descriptor - var descriptor = Object.getOwnPropertyDescriptor(src, name) - Object.defineProperty(dest, name, descriptor) - }) - - return dest -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/package.json deleted file mode 100644 index b3558d64..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/merge-descriptors/package.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "name": "merge-descriptors", - "description": "Merge objects using descriptors", - "version": "1.0.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Mike Grabowski", - "email": "grabbou@gmail.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/component/merge-descriptors" - }, - "devDependencies": { - "istanbul": "0.4.1", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - }, - "gitHead": "f26c49c3b423b0b2ac31f6e32a84e1632f2d7ac2", - "bugs": { - "url": "https://github.com/component/merge-descriptors/issues" - }, - "homepage": "https://github.com/component/merge-descriptors", - "_id": "merge-descriptors@1.0.1", - "_shasum": "b00aaa556dd8b44568150ec9d1b953f3f90cbb61", - "_from": "merge-descriptors@1.0.1", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "anthonyshort", - "email": "antshort@gmail.com" - }, - { - "name": "clintwood", - "email": "clint@anotherway.co.za" - }, - { - "name": "dfcreative", - "email": "df.creative@gmail.com" - }, - { - "name": "dominicbarnes", - "email": "dominic@dbarnes.info" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "ianstormtaylor", - "email": "ian@ianstormtaylor.com" - }, - { - "name": "jonathanong", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - { - "name": "mattmueller", - "email": "mattmuelle@gmail.com" - }, - { - "name": "queckezz", - "email": "fabian.eichenberger@gmail.com" - }, - { - "name": "stephenmathieson", - "email": "me@stephenmathieson.com" - }, - { - "name": "thehydroimpulse", - "email": "dnfagnan@gmail.com" - }, - { - "name": "timaschew", - "email": "timaschew@gmail.com" - }, - { - "name": "timoxley", - "email": "secoif@gmail.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - { - "name": "trevorgerhardt", - "email": "trevorgerhardt@gmail.com" - }, - { - "name": "yields", - "email": "yields@icloud.com" - } - ], - "dist": { - "shasum": "b00aaa556dd8b44568150ec9d1b953f3f90cbb61", - "tarball": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/HISTORY.md deleted file mode 100644 index c0ecf072..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/HISTORY.md +++ /dev/null @@ -1,29 +0,0 @@ -1.1.2 / 2016-01-17 -================== - - * perf: enable strict mode - -1.1.1 / 2014-12-30 -================== - - * Improve `browserify` support - -1.1.0 / 2014-07-05 -================== - - * Add `CONNECT` method - -1.0.1 / 2014-06-02 -================== - - * Fix module to work with harmony transform - -1.0.0 / 2014-05-08 -================== - - * Add `PURGE` method - -0.1.0 / 2013-10-28 -================== - - * Add `http.METHODS` support diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/LICENSE deleted file mode 100644 index 220dc1a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2013-2014 TJ Holowaychuk -Copyright (c) 2015-2016 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/README.md deleted file mode 100644 index 672a32bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# Methods - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -HTTP verbs that Node.js core's HTTP parser supports. - -This module provides an export that is just like `http.METHODS` from Node.js core, -with the following differences: - - * All method names are lower-cased. - * Contains a fallback list of methods for Node.js versions that do not have a - `http.METHODS` export (0.10 and lower). - * Provides the fallback list when using tools like `browserify` without pulling - in the `http` shim module. - -## Install - -```bash -$ npm install methods -``` - -## API - -```js -var methods = require('methods') -``` - -### methods - -This is an array of lower-cased method names that Node.js supports. If Node.js -provides the `http.METHODS` export, then this is the same array lower-cased, -otherwise it is a snapshot of the verbs from Node.js 0.10. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/methods.svg?style=flat -[npm-url]: https://npmjs.org/package/methods -[node-version-image]: https://img.shields.io/node/v/methods.svg?style=flat -[node-version-url]: https://nodejs.org/en/download/ -[travis-image]: https://img.shields.io/travis/jshttp/methods.svg?style=flat -[travis-url]: https://travis-ci.org/jshttp/methods -[coveralls-image]: https://img.shields.io/coveralls/jshttp/methods.svg?style=flat -[coveralls-url]: https://coveralls.io/r/jshttp/methods?branch=master -[downloads-image]: https://img.shields.io/npm/dm/methods.svg?style=flat -[downloads-url]: https://npmjs.org/package/methods diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/index.js deleted file mode 100644 index 667a50bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/index.js +++ /dev/null @@ -1,69 +0,0 @@ -/*! - * methods - * Copyright(c) 2013-2014 TJ Holowaychuk - * Copyright(c) 2015-2016 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var http = require('http'); - -/** - * Module exports. - * @public - */ - -module.exports = getCurrentNodeMethods() || getBasicNodeMethods(); - -/** - * Get the current Node.js methods. - * @private - */ - -function getCurrentNodeMethods() { - return http.METHODS && http.METHODS.map(function lowerCaseMethod(method) { - return method.toLowerCase(); - }); -} - -/** - * Get the "basic" Node.js methods, a snapshot from Node.js 0.10. - * @private - */ - -function getBasicNodeMethods() { - return [ - 'get', - 'post', - 'put', - 'head', - 'delete', - 'options', - 'trace', - 'copy', - 'lock', - 'mkcol', - 'move', - 'purge', - 'propfind', - 'proppatch', - 'unlock', - 'report', - 'mkactivity', - 'checkout', - 'merge', - 'm-search', - 'notify', - 'subscribe', - 'unsubscribe', - 'patch', - 'search', - 'connect' - ]; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/package.json deleted file mode 100644 index 09ed8878..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/methods/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "name": "methods", - "description": "HTTP methods that node supports", - "version": "1.1.2", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": "http://tjholowaychuk.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/methods.git" - }, - "devDependencies": { - "istanbul": "0.4.1", - "mocha": "1.21.5" - }, - "files": [ - "index.js", - "HISTORY.md", - "LICENSE" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "browser": { - "http": false - }, - "keywords": [ - "http", - "methods" - ], - "gitHead": "25d257d913f1b94bd2d73581521ff72c81469140", - "bugs": { - "url": "https://github.com/jshttp/methods/issues" - }, - "homepage": "https://github.com/jshttp/methods", - "_id": "methods@1.1.2", - "_shasum": "5529a4d67654134edcc5266656835b0f851afcee", - "_from": "methods@>=1.1.2 <1.2.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "jonathanong", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "5529a4d67654134edcc5266656835b0f851afcee", - "tarball": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/HISTORY.md deleted file mode 100644 index 98ff0e99..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/HISTORY.md +++ /dev/null @@ -1,88 +0,0 @@ -2.3.0 / 2015-05-26 -================== - - * Add defined behavior for HTTP `CONNECT` requests - * Add defined behavior for HTTP `Upgrade` requests - * deps: ee-first@1.1.1 - -2.2.1 / 2015-04-22 -================== - - * Fix `isFinished(req)` when data buffered - -2.2.0 / 2014-12-22 -================== - - * Add message object to callback arguments - -2.1.1 / 2014-10-22 -================== - - * Fix handling of pipelined requests - -2.1.0 / 2014-08-16 -================== - - * Check if `socket` is detached - * Return `undefined` for `isFinished` if state unknown - -2.0.0 / 2014-08-16 -================== - - * Add `isFinished` function - * Move to `jshttp` organization - * Remove support for plain socket argument - * Rename to `on-finished` - * Support both `req` and `res` as arguments - * deps: ee-first@1.0.5 - -1.2.2 / 2014-06-10 -================== - - * Reduce listeners added to emitters - - avoids "event emitter leak" warnings when used multiple times on same request - -1.2.1 / 2014-06-08 -================== - - * Fix returned value when already finished - -1.2.0 / 2014-06-05 -================== - - * Call callback when called on already-finished socket - -1.1.4 / 2014-05-27 -================== - - * Support node.js 0.8 - -1.1.3 / 2014-04-30 -================== - - * Make sure errors passed as instanceof `Error` - -1.1.2 / 2014-04-18 -================== - - * Default the `socket` to passed-in object - -1.1.1 / 2014-01-16 -================== - - * Rename module to `finished` - -1.1.0 / 2013-12-25 -================== - - * Call callback when called on already-errored socket - -1.0.1 / 2013-12-20 -================== - - * Actually pass the error to the callback - -1.0.0 / 2013-12-20 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/LICENSE deleted file mode 100644 index 5931fd23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2013 Jonathan Ong -Copyright (c) 2014 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/README.md deleted file mode 100644 index a0e11574..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/README.md +++ /dev/null @@ -1,154 +0,0 @@ -# on-finished - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Execute a callback when a HTTP request closes, finishes, or errors. - -## Install - -```sh -$ npm install on-finished -``` - -## API - -```js -var onFinished = require('on-finished') -``` - -### onFinished(res, listener) - -Attach a listener to listen for the response to finish. The listener will -be invoked only once when the response finished. If the response finished -to an error, the first argument will contain the error. If the response -has already finished, the listener will be invoked. - -Listening to the end of a response would be used to close things associated -with the response, like open files. - -Listener is invoked as `listener(err, res)`. - -```js -onFinished(res, function (err, res) { - // clean up open fds, etc. - // err contains the error is request error'd -}) -``` - -### onFinished(req, listener) - -Attach a listener to listen for the request to finish. The listener will -be invoked only once when the request finished. If the request finished -to an error, the first argument will contain the error. If the request -has already finished, the listener will be invoked. - -Listening to the end of a request would be used to know when to continue -after reading the data. - -Listener is invoked as `listener(err, req)`. - -```js -var data = '' - -req.setEncoding('utf8') -res.on('data', function (str) { - data += str -}) - -onFinished(req, function (err, req) { - // data is read unless there is err -}) -``` - -### onFinished.isFinished(res) - -Determine if `res` is already finished. This would be useful to check and -not even start certain operations if the response has already finished. - -### onFinished.isFinished(req) - -Determine if `req` is already finished. This would be useful to check and -not even start certain operations if the request has already finished. - -## Special Node.js requests - -### HTTP CONNECT method - -The meaning of the `CONNECT` method from RFC 7231, section 4.3.6: - -> The CONNECT method requests that the recipient establish a tunnel to -> the destination origin server identified by the request-target and, -> if successful, thereafter restrict its behavior to blind forwarding -> of packets, in both directions, until the tunnel is closed. Tunnels -> are commonly used to create an end-to-end virtual connection, through -> one or more proxies, which can then be secured using TLS (Transport -> Layer Security, [RFC5246]). - -In Node.js, these request objects come from the `'connect'` event on -the HTTP server. - -When this module is used on a HTTP `CONNECT` request, the request is -considered "finished" immediately, **due to limitations in the Node.js -interface**. This means if the `CONNECT` request contains a request entity, -the request will be considered "finished" even before it has been read. - -There is no such thing as a response object to a `CONNECT` request in -Node.js, so there is no support for for one. - -### HTTP Upgrade request - -The meaning of the `Upgrade` header from RFC 7230, section 6.1: - -> The "Upgrade" header field is intended to provide a simple mechanism -> for transitioning from HTTP/1.1 to some other protocol on the same -> connection. - -In Node.js, these request objects come from the `'upgrade'` event on -the HTTP server. - -When this module is used on a HTTP request with an `Upgrade` header, the -request is considered "finished" immediately, **due to limitations in the -Node.js interface**. This means if the `Upgrade` request contains a request -entity, the request will be considered "finished" even before it has been -read. - -There is no such thing as a response object to a `Upgrade` request in -Node.js, so there is no support for for one. - -## Example - -The following code ensures that file descriptors are always closed -once the response finishes. - -```js -var destroy = require('destroy') -var http = require('http') -var onFinished = require('on-finished') - -http.createServer(function onRequest(req, res) { - var stream = fs.createReadStream('package.json') - stream.pipe(res) - onFinished(res, function (err) { - destroy(stream) - }) -}) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/on-finished.svg -[npm-url]: https://npmjs.org/package/on-finished -[node-version-image]: https://img.shields.io/node/v/on-finished.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/on-finished/master.svg -[travis-url]: https://travis-ci.org/jshttp/on-finished -[coveralls-image]: https://img.shields.io/coveralls/jshttp/on-finished/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/on-finished?branch=master -[downloads-image]: https://img.shields.io/npm/dm/on-finished.svg -[downloads-url]: https://npmjs.org/package/on-finished diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/index.js deleted file mode 100644 index 9abd98f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/index.js +++ /dev/null @@ -1,196 +0,0 @@ -/*! - * on-finished - * Copyright(c) 2013 Jonathan Ong - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = onFinished -module.exports.isFinished = isFinished - -/** - * Module dependencies. - * @private - */ - -var first = require('ee-first') - -/** - * Variables. - * @private - */ - -/* istanbul ignore next */ -var defer = typeof setImmediate === 'function' - ? setImmediate - : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } - -/** - * Invoke callback when the response has finished, useful for - * cleaning up resources afterwards. - * - * @param {object} msg - * @param {function} listener - * @return {object} - * @public - */ - -function onFinished(msg, listener) { - if (isFinished(msg) !== false) { - defer(listener, null, msg) - return msg - } - - // attach the listener to the message - attachListener(msg, listener) - - return msg -} - -/** - * Determine if message is already finished. - * - * @param {object} msg - * @return {boolean} - * @public - */ - -function isFinished(msg) { - var socket = msg.socket - - if (typeof msg.finished === 'boolean') { - // OutgoingMessage - return Boolean(msg.finished || (socket && !socket.writable)) - } - - if (typeof msg.complete === 'boolean') { - // IncomingMessage - return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable)) - } - - // don't know - return undefined -} - -/** - * Attach a finished listener to the message. - * - * @param {object} msg - * @param {function} callback - * @private - */ - -function attachFinishedListener(msg, callback) { - var eeMsg - var eeSocket - var finished = false - - function onFinish(error) { - eeMsg.cancel() - eeSocket.cancel() - - finished = true - callback(error) - } - - // finished on first message event - eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish) - - function onSocket(socket) { - // remove listener - msg.removeListener('socket', onSocket) - - if (finished) return - if (eeMsg !== eeSocket) return - - // finished on first socket event - eeSocket = first([[socket, 'error', 'close']], onFinish) - } - - if (msg.socket) { - // socket already assigned - onSocket(msg.socket) - return - } - - // wait for socket to be assigned - msg.on('socket', onSocket) - - if (msg.socket === undefined) { - // node.js 0.8 patch - patchAssignSocket(msg, onSocket) - } -} - -/** - * Attach the listener to the message. - * - * @param {object} msg - * @return {function} - * @private - */ - -function attachListener(msg, listener) { - var attached = msg.__onFinished - - // create a private single listener with queue - if (!attached || !attached.queue) { - attached = msg.__onFinished = createListener(msg) - attachFinishedListener(msg, attached) - } - - attached.queue.push(listener) -} - -/** - * Create listener on message. - * - * @param {object} msg - * @return {function} - * @private - */ - -function createListener(msg) { - function listener(err) { - if (msg.__onFinished === listener) msg.__onFinished = null - if (!listener.queue) return - - var queue = listener.queue - listener.queue = null - - for (var i = 0; i < queue.length; i++) { - queue[i](err, msg) - } - } - - listener.queue = [] - - return listener -} - -/** - * Patch ServerResponse.prototype.assignSocket for node.js 0.8. - * - * @param {ServerResponse} res - * @param {function} callback - * @private - */ - -function patchAssignSocket(res, callback) { - var assignSocket = res.assignSocket - - if (typeof assignSocket !== 'function') return - - // res.on('socket', callback) is broken in 0.8 - res.assignSocket = function _assignSocket(socket) { - assignSocket.call(this, socket) - callback(socket) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/README.md deleted file mode 100644 index cbd2478b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# EE First - -[![NPM version][npm-image]][npm-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] -[![Gittip][gittip-image]][gittip-url] - -Get the first event in a set of event emitters and event pairs, -then clean up after itself. - -## Install - -```sh -$ npm install ee-first -``` - -## API - -```js -var first = require('ee-first') -``` - -### first(arr, listener) - -Invoke `listener` on the first event from the list specified in `arr`. `arr` is -an array of arrays, with each array in the format `[ee, ...event]`. `listener` -will be called only once, the first time any of the given events are emitted. If -`error` is one of the listened events, then if that fires first, the `listener` -will be given the `err` argument. - -The `listener` is invoked as `listener(err, ee, event, args)`, where `err` is the -first argument emitted from an `error` event, if applicable; `ee` is the event -emitter that fired; `event` is the string event name that fired; and `args` is an -array of the arguments that were emitted on the event. - -```js -var ee1 = new EventEmitter() -var ee2 = new EventEmitter() - -first([ - [ee1, 'close', 'end', 'error'], - [ee2, 'error'] -], function (err, ee, event, args) { - // listener invoked -}) -``` - -#### .cancel() - -The group of listeners can be cancelled before being invoked and have all the event -listeners removed from the underlying event emitters. - -```js -var thunk = first([ - [ee1, 'close', 'end', 'error'], - [ee2, 'error'] -], function (err, ee, event, args) { - // listener invoked -}) - -// cancel and clean up -thunk.cancel() -``` - -[npm-image]: https://img.shields.io/npm/v/ee-first.svg?style=flat-square -[npm-url]: https://npmjs.org/package/ee-first -[github-tag]: http://img.shields.io/github/tag/jonathanong/ee-first.svg?style=flat-square -[github-url]: https://github.com/jonathanong/ee-first/tags -[travis-image]: https://img.shields.io/travis/jonathanong/ee-first.svg?style=flat-square -[travis-url]: https://travis-ci.org/jonathanong/ee-first -[coveralls-image]: https://img.shields.io/coveralls/jonathanong/ee-first.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/jonathanong/ee-first?branch=master -[license-image]: http://img.shields.io/npm/l/ee-first.svg?style=flat-square -[license-url]: LICENSE.md -[downloads-image]: http://img.shields.io/npm/dm/ee-first.svg?style=flat-square -[downloads-url]: https://npmjs.org/package/ee-first -[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square -[gittip-url]: https://www.gittip.com/jonathanong/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js deleted file mode 100644 index 501287cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js +++ /dev/null @@ -1,95 +0,0 @@ -/*! - * ee-first - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = first - -/** - * Get the first event in a set of event emitters and event pairs. - * - * @param {array} stuff - * @param {function} done - * @public - */ - -function first(stuff, done) { - if (!Array.isArray(stuff)) - throw new TypeError('arg must be an array of [ee, events...] arrays') - - var cleanups = [] - - for (var i = 0; i < stuff.length; i++) { - var arr = stuff[i] - - if (!Array.isArray(arr) || arr.length < 2) - throw new TypeError('each array member must be [ee, events...]') - - var ee = arr[0] - - for (var j = 1; j < arr.length; j++) { - var event = arr[j] - var fn = listener(event, callback) - - // listen to the event - ee.on(event, fn) - // push this listener to the list of cleanups - cleanups.push({ - ee: ee, - event: event, - fn: fn, - }) - } - } - - function callback() { - cleanup() - done.apply(null, arguments) - } - - function cleanup() { - var x - for (var i = 0; i < cleanups.length; i++) { - x = cleanups[i] - x.ee.removeListener(x.event, x.fn) - } - } - - function thunk(fn) { - done = fn - } - - thunk.cancel = cleanup - - return thunk -} - -/** - * Create the event listener. - * @private - */ - -function listener(event, done) { - return function onevent(arg1) { - var args = new Array(arguments.length) - var ee = this - var err = event === 'error' - ? arg1 - : null - - // copy args to prevent arguments escaping scope - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - - done(err, ee, event, args) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/package.json deleted file mode 100644 index c67faf17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/node_modules/ee-first/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "ee-first", - "description": "return the first event in a set of ee/event pairs", - "version": "1.1.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jonathanong/ee-first.git" - }, - "devDependencies": { - "istanbul": "0.3.9", - "mocha": "2.2.5" - }, - "files": [ - "index.js", - "LICENSE" - ], - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "512e0ce4cc3643f603708f965a97b61b1a9c0441", - "bugs": { - "url": "https://github.com/jonathanong/ee-first/issues" - }, - "homepage": "https://github.com/jonathanong/ee-first", - "_id": "ee-first@1.1.1", - "_shasum": "590c61156b0ae2f4f0255732a158b266bc56b21d", - "_from": "ee-first@1.1.1", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "590c61156b0ae2f4f0255732a158b266bc56b21d", - "tarball": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/package.json deleted file mode 100644 index 97a5680b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/on-finished/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "on-finished", - "description": "Execute a callback when a request closes, finishes, or errors", - "version": "2.3.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/on-finished.git" - }, - "dependencies": { - "ee-first": "1.1.1" - }, - "devDependencies": { - "istanbul": "0.3.9", - "mocha": "2.2.5" - }, - "engines": { - "node": ">= 0.8" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "34babcb58126a416fcf5205768204f2e12699dda", - "bugs": { - "url": "https://github.com/jshttp/on-finished/issues" - }, - "homepage": "https://github.com/jshttp/on-finished", - "_id": "on-finished@2.3.0", - "_shasum": "20f1336481b083cd75337992a16971aa2d906947", - "_from": "on-finished@>=2.3.0 <2.4.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "20f1336481b083cd75337992a16971aa2d906947", - "tarball": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/HISTORY.md deleted file mode 100644 index 395041ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/HISTORY.md +++ /dev/null @@ -1,47 +0,0 @@ -1.3.1 / 2016-01-17 -================== - - * perf: enable strict mode - -1.3.0 / 2014-08-09 -================== - - * Add `parseurl.original` for parsing `req.originalUrl` with fallback - * Return `undefined` if `req.url` is `undefined` - -1.2.0 / 2014-07-21 -================== - - * Cache URLs based on original value - * Remove no-longer-needed URL mis-parse work-around - * Simplify the "fast-path" `RegExp` - -1.1.3 / 2014-07-08 -================== - - * Fix typo - -1.1.2 / 2014-07-08 -================== - - * Seriously fix Node.js 0.8 compatibility - -1.1.1 / 2014-07-08 -================== - - * Fix Node.js 0.8 compatibility - -1.1.0 / 2014-07-08 -================== - - * Incorporate URL href-only parse fast-path - -1.0.1 / 2014-03-08 -================== - - * Add missing `require` - -1.0.0 / 2014-03-08 -================== - - * Genesis from `connect` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/LICENSE deleted file mode 100644 index ec7dfe7b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ - -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2014 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/README.md deleted file mode 100644 index f4796ebb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/README.md +++ /dev/null @@ -1,120 +0,0 @@ -# parseurl - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Parse a URL with memoization. - -## Install - -```bash -$ npm install parseurl -``` - -## API - -```js -var parseurl = require('parseurl') -``` - -### parseurl(req) - -Parse the URL of the given request object (looks at the `req.url` property) -and return the result. The result is the same as `url.parse` in Node.js core. -Calling this function multiple times on the same `req` where `req.url` does -not change will return a cached parsed object, rather than parsing again. - -### parseurl.original(req) - -Parse the original URL of the given request object and return the result. -This works by trying to parse `req.originalUrl` if it is a string, otherwise -parses `req.url`. The result is the same as `url.parse` in Node.js core. -Calling this function multiple times on the same `req` where `req.originalUrl` -does not change will return a cached parsed object, rather than parsing again. - -## Benchmark - -```bash -$ npm run-script bench - -> parseurl@1.3.1 bench nodejs-parseurl -> node benchmark/index.js - -> node benchmark/fullurl.js - - Parsing URL "http://localhost:8888/foo/bar?user=tj&pet=fluffy" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 1,290,780 ops/sec ±0.46% (195 runs sampled) - nativeurl x 56,401 ops/sec ±0.22% (196 runs sampled) - parseurl x 55,231 ops/sec ±0.22% (194 runs sampled) - -> node benchmark/pathquery.js - - Parsing URL "/foo/bar?user=tj&pet=fluffy" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 1,986,668 ops/sec ±0.27% (190 runs sampled) - nativeurl x 98,740 ops/sec ±0.21% (195 runs sampled) - parseurl x 2,628,171 ops/sec ±0.36% (195 runs sampled) - -> node benchmark/samerequest.js - - Parsing URL "/foo/bar?user=tj&pet=fluffy" on same request object - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 2,184,468 ops/sec ±0.40% (194 runs sampled) - nativeurl x 99,437 ops/sec ±0.71% (194 runs sampled) - parseurl x 10,498,005 ops/sec ±0.61% (186 runs sampled) - -> node benchmark/simplepath.js - - Parsing URL "/foo/bar" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 4,535,825 ops/sec ±0.27% (191 runs sampled) - nativeurl x 98,769 ops/sec ±0.54% (191 runs sampled) - parseurl x 4,164,865 ops/sec ±0.34% (192 runs sampled) - -> node benchmark/slash.js - - Parsing URL "/" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 4,908,405 ops/sec ±0.42% (191 runs sampled) - nativeurl x 100,945 ops/sec ±0.59% (188 runs sampled) - parseurl x 4,333,208 ops/sec ±0.27% (194 runs sampled) -``` - -## License - - [MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/parseurl.svg -[npm-url]: https://npmjs.org/package/parseurl -[node-version-image]: https://img.shields.io/node/v/parseurl.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/pillarjs/parseurl/master.svg -[travis-url]: https://travis-ci.org/pillarjs/parseurl -[coveralls-image]: https://img.shields.io/coveralls/pillarjs/parseurl/master.svg -[coveralls-url]: https://coveralls.io/r/pillarjs/parseurl?branch=master -[downloads-image]: https://img.shields.io/npm/dm/parseurl.svg -[downloads-url]: https://npmjs.org/package/parseurl diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/index.js deleted file mode 100644 index 56cc6ec7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/index.js +++ /dev/null @@ -1,138 +0,0 @@ -/*! - * parseurl - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - */ - -var url = require('url') -var parse = url.parse -var Url = url.Url - -/** - * Pattern for a simple path case. - * See: https://github.com/joyent/node/pull/7878 - */ - -var simplePathRegExp = /^(\/\/?(?!\/)[^\?#\s]*)(\?[^#\s]*)?$/ - -/** - * Exports. - */ - -module.exports = parseurl -module.exports.original = originalurl - -/** - * Parse the `req` url with memoization. - * - * @param {ServerRequest} req - * @return {Object} - * @api public - */ - -function parseurl(req) { - var url = req.url - - if (url === undefined) { - // URL is undefined - return undefined - } - - var parsed = req._parsedUrl - - if (fresh(url, parsed)) { - // Return cached URL parse - return parsed - } - - // Parse the URL - parsed = fastparse(url) - parsed._raw = url - - return req._parsedUrl = parsed -}; - -/** - * Parse the `req` original url with fallback and memoization. - * - * @param {ServerRequest} req - * @return {Object} - * @api public - */ - -function originalurl(req) { - var url = req.originalUrl - - if (typeof url !== 'string') { - // Fallback - return parseurl(req) - } - - var parsed = req._parsedOriginalUrl - - if (fresh(url, parsed)) { - // Return cached URL parse - return parsed - } - - // Parse the URL - parsed = fastparse(url) - parsed._raw = url - - return req._parsedOriginalUrl = parsed -}; - -/** - * Parse the `str` url with fast-path short-cut. - * - * @param {string} str - * @return {Object} - * @api private - */ - -function fastparse(str) { - // Try fast path regexp - // See: https://github.com/joyent/node/pull/7878 - var simplePath = typeof str === 'string' && simplePathRegExp.exec(str) - - // Construct simple URL - if (simplePath) { - var pathname = simplePath[1] - var search = simplePath[2] || null - var url = Url !== undefined - ? new Url() - : {} - url.path = str - url.href = str - url.pathname = pathname - url.search = search - url.query = search && search.substr(1) - - return url - } - - return parse(str) -} - -/** - * Determine if parsed is still fresh for url. - * - * @param {string} url - * @param {object} parsedUrl - * @return {boolean} - * @api private - */ - -function fresh(url, parsedUrl) { - return typeof parsedUrl === 'object' - && parsedUrl !== null - && (Url === undefined || parsedUrl instanceof Url) - && parsedUrl._raw === url -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/package.json deleted file mode 100644 index 7f57caaf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/parseurl/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "parseurl", - "description": "parse a url with memoization", - "version": "1.3.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/pillarjs/parseurl.git" - }, - "license": "MIT", - "devDependencies": { - "benchmark": "2.0.0", - "beautify-benchmark": "0.2.4", - "fast-url-parser": "1.1.3", - "istanbul": "0.4.2", - "mocha": "~1.21.5" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "bench": "node benchmark/index.js", - "test": "mocha --check-leaks --bail --reporter spec test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec test/" - }, - "gitHead": "6d22d376d75b927ab2b5347ce3a1d6735133dd43", - "bugs": { - "url": "https://github.com/pillarjs/parseurl/issues" - }, - "homepage": "https://github.com/pillarjs/parseurl", - "_id": "parseurl@1.3.1", - "_shasum": "c8ab8c9223ba34888aa64a297b28853bec18da56", - "_from": "parseurl@>=1.3.1 <1.4.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "mscdex", - "email": "mscdex@mscdex.net" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - } - ], - "dist": { - "shasum": "c8ab8c9223ba34888aa64a297b28853bec18da56", - "tarball": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/History.md deleted file mode 100644 index 7f658784..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/History.md +++ /dev/null @@ -1,36 +0,0 @@ -0.1.7 / 2015-07-28 -================== - - * Fixed regression with escaped round brackets and matching groups. - -0.1.6 / 2015-06-19 -================== - - * Replace `index` feature by outputting all parameters, unnamed and named. - -0.1.5 / 2015-05-08 -================== - - * Add an index property for position in match result. - -0.1.4 / 2015-03-05 -================== - - * Add license information - -0.1.3 / 2014-07-06 -================== - - * Better array support - * Improved support for trailing slash in non-ending mode - -0.1.0 / 2014-03-06 -================== - - * add options.end - -0.0.2 / 2013-02-10 -================== - - * Update to match current express - * add .license property to component.json diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/LICENSE deleted file mode 100644 index 983fbe8a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Blake Embrey (hello@blakeembrey.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/Readme.md deleted file mode 100644 index 95452a6e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/Readme.md +++ /dev/null @@ -1,35 +0,0 @@ -# Path-to-RegExp - -Turn an Express-style path string such as `/user/:name` into a regular expression. - -**Note:** This is a legacy branch. You should upgrade to `1.x`. - -## Usage - -```javascript -var pathToRegexp = require('path-to-regexp'); -``` - -### pathToRegexp(path, keys, options) - - - **path** A string in the express format, an array of such strings, or a regular expression - - **keys** An array to be populated with the keys present in the url. Once the function completes, this will be an array of strings. - - **options** - - **options.sensitive** Defaults to false, set this to true to make routes case sensitive - - **options.strict** Defaults to false, set this to true to make the trailing slash matter. - - **options.end** Defaults to true, set this to false to only match the prefix of the URL. - -```javascript -var keys = []; -var exp = pathToRegexp('/foo/:bar', keys); -//keys = ['bar'] -//exp = /^\/foo\/(?:([^\/]+?))\/?$/i -``` - -## Live Demo - -You can see a live demo of this library in use at [express-route-tester](http://forbeslindesay.github.com/express-route-tester/). - -## License - - MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/index.js deleted file mode 100644 index 500d1dad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/index.js +++ /dev/null @@ -1,129 +0,0 @@ -/** - * Expose `pathtoRegexp`. - */ - -module.exports = pathtoRegexp; - -/** - * Match matching groups in a regular expression. - */ -var MATCHING_GROUP_REGEXP = /\((?!\?)/g; - -/** - * Normalize the given path string, - * returning a regular expression. - * - * An empty array should be passed, - * which will contain the placeholder - * key names. For example "/user/:id" will - * then contain ["id"]. - * - * @param {String|RegExp|Array} path - * @param {Array} keys - * @param {Object} options - * @return {RegExp} - * @api private - */ - -function pathtoRegexp(path, keys, options) { - options = options || {}; - keys = keys || []; - var strict = options.strict; - var end = options.end !== false; - var flags = options.sensitive ? '' : 'i'; - var extraOffset = 0; - var keysOffset = keys.length; - var i = 0; - var name = 0; - var m; - - if (path instanceof RegExp) { - while (m = MATCHING_GROUP_REGEXP.exec(path.source)) { - keys.push({ - name: name++, - optional: false, - offset: m.index - }); - } - - return path; - } - - if (Array.isArray(path)) { - // Map array parts into regexps and return their source. We also pass - // the same keys and options instance into every generation to get - // consistent matching groups before we join the sources together. - path = path.map(function (value) { - return pathtoRegexp(value, keys, options).source; - }); - - return new RegExp('(?:' + path.join('|') + ')', flags); - } - - path = ('^' + path + (strict ? '' : path[path.length - 1] === '/' ? '?' : '/?')) - .replace(/\/\(/g, '/(?:') - .replace(/([\/\.])/g, '\\$1') - .replace(/(\\\/)?(\\\.)?:(\w+)(\(.*?\))?(\*)?(\?)?/g, function (match, slash, format, key, capture, star, optional, offset) { - slash = slash || ''; - format = format || ''; - capture = capture || '([^\\/' + format + ']+?)'; - optional = optional || ''; - - keys.push({ - name: key, - optional: !!optional, - offset: offset + extraOffset - }); - - var result = '' - + (optional ? '' : slash) - + '(?:' - + format + (optional ? slash : '') + capture - + (star ? '((?:[\\/' + format + '].+?)?)' : '') - + ')' - + optional; - - extraOffset += result.length - match.length; - - return result; - }) - .replace(/\*/g, function (star, index) { - var len = keys.length - - while (len-- > keysOffset && keys[len].offset > index) { - keys[len].offset += 3; // Replacement length minus asterisk length. - } - - return '(.*)'; - }); - - // This is a workaround for handling unnamed matching groups. - while (m = MATCHING_GROUP_REGEXP.exec(path)) { - var escapeCount = 0; - var index = m.index; - - while (path.charAt(--index) === '\\') { - escapeCount++; - } - - // It's possible to escape the bracket. - if (escapeCount % 2 === 1) { - continue; - } - - if (keysOffset + i === keys.length || keys[keysOffset + i].offset > m.index) { - keys.splice(keysOffset + i, 0, { - name: name++, // Unnamed matching groups must be consistently linear. - optional: false, - offset: m.index - }); - } - - i++; - } - - // If the path is non-ending, match until the end or a slash. - path += (end ? '$' : (path[path.length - 1] === '/' ? '' : '(?=\\/|$)')); - - return new RegExp(path, flags); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/package.json deleted file mode 100644 index 042586a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/path-to-regexp/package.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "name": "path-to-regexp", - "description": "Express style path to RegExp utility", - "version": "0.1.7", - "files": [ - "index.js", - "LICENSE" - ], - "scripts": { - "test": "istanbul cover _mocha -- -R spec" - }, - "keywords": [ - "express", - "regexp" - ], - "component": { - "scripts": { - "path-to-regexp": "index.js" - } - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/component/path-to-regexp.git" - }, - "devDependencies": { - "mocha": "^1.17.1", - "istanbul": "^0.2.6" - }, - "gitHead": "039118d6c3c186d3f176c73935ca887a32a33d93", - "bugs": { - "url": "https://github.com/component/path-to-regexp/issues" - }, - "homepage": "https://github.com/component/path-to-regexp#readme", - "_id": "path-to-regexp@0.1.7", - "_shasum": "df604178005f522f15eb4490e7247a1bfaa67f8c", - "_from": "path-to-regexp@0.1.7", - "_npmVersion": "2.13.2", - "_nodeVersion": "2.3.3", - "_npmUser": { - "name": "blakeembrey", - "email": "hello@blakeembrey.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "hughsk", - "email": "hughskennedy@gmail.com" - }, - { - "name": "timaschew", - "email": "timaschew@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dominicbarnes", - "email": "dominic@dbarnes.info" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - { - "name": "retrofox", - "email": "rdsuarez@gmail.com" - }, - { - "name": "coreh", - "email": "thecoreh@gmail.com" - }, - { - "name": "forbeslindesay", - "email": "forbes@lindesay.co.uk" - }, - { - "name": "kelonye", - "email": "kelonyemitchel@gmail.com" - }, - { - "name": "mattmueller", - "email": "mattmuelle@gmail.com" - }, - { - "name": "yields", - "email": "yields@icloud.com" - }, - { - "name": "anthonyshort", - "email": "antshort@gmail.com" - }, - { - "name": "ianstormtaylor", - "email": "ian@ianstormtaylor.com" - }, - { - "name": "cristiandouce", - "email": "cristian@gravityonmars.com" - }, - { - "name": "swatinem", - "email": "arpad.borsos@googlemail.com" - }, - { - "name": "stagas", - "email": "gstagas@gmail.com" - }, - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - { - "name": "calvinfo", - "email": "calvin@calv.info" - }, - { - "name": "blakeembrey", - "email": "hello@blakeembrey.com" - }, - { - "name": "timoxley", - "email": "secoif@gmail.com" - }, - { - "name": "jonathanong", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "queckezz", - "email": "fabian.eichenberger@gmail.com" - }, - { - "name": "nami-doc", - "email": "vendethiel@hotmail.fr" - }, - { - "name": "clintwood", - "email": "clint@anotherway.co.za" - }, - { - "name": "thehydroimpulse", - "email": "dnfagnan@gmail.com" - }, - { - "name": "stephenmathieson", - "email": "me@stephenmathieson.com" - }, - { - "name": "trevorgerhardt", - "email": "trevorgerhardt@gmail.com" - }, - { - "name": "dfcreative", - "email": "df.creative@gmail.com" - }, - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - } - ], - "dist": { - "shasum": "df604178005f522f15eb4490e7247a1bfaa67f8c", - "tarball": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/HISTORY.md deleted file mode 100644 index 84f11aa5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/HISTORY.md +++ /dev/null @@ -1,80 +0,0 @@ -1.0.10 / 2015-12-09 -=================== - - * deps: ipaddr.js@1.0.5 - - Fix regression in `isValid` with non-string arguments - -1.0.9 / 2015-12-01 -================== - - * deps: ipaddr.js@1.0.4 - - Fix accepting some invalid IPv6 addresses - - Reject CIDRs with negative or overlong masks - * perf: enable strict mode - -1.0.8 / 2015-05-10 -================== - - * deps: ipaddr.js@1.0.1 - -1.0.7 / 2015-03-16 -================== - - * deps: ipaddr.js@0.1.9 - - Fix OOM on certain inputs to `isValid` - -1.0.6 / 2015-02-01 -================== - - * deps: ipaddr.js@0.1.8 - -1.0.5 / 2015-01-08 -================== - - * deps: ipaddr.js@0.1.6 - -1.0.4 / 2014-11-23 -================== - - * deps: ipaddr.js@0.1.5 - - Fix edge cases with `isValid` - -1.0.3 / 2014-09-21 -================== - - * Use `forwarded` npm module - -1.0.2 / 2014-09-18 -================== - - * Fix a global leak when multiple subnets are trusted - * Support Node.js 0.6 - * deps: ipaddr.js@0.1.3 - -1.0.1 / 2014-06-03 -================== - - * Fix links in npm package - -1.0.0 / 2014-05-08 -================== - - * Add `trust` argument to determine proxy trust on - * Accepts custom function - * Accepts IPv4/IPv6 address(es) - * Accepts subnets - * Accepts pre-defined names - * Add optional `trust` argument to `proxyaddr.all` to - stop at first untrusted - * Add `proxyaddr.compile` to pre-compile `trust` function - to make subsequent calls faster - -0.0.1 / 2014-05-04 -================== - - * Fix bad npm publish - -0.0.0 / 2014-05-04 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/LICENSE deleted file mode 100644 index b7dce6cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/README.md deleted file mode 100644 index 26f7fc01..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/README.md +++ /dev/null @@ -1,137 +0,0 @@ -# proxy-addr - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Determine address of proxied request - -## Install - -```sh -$ npm install proxy-addr -``` - -## API - -```js -var proxyaddr = require('proxy-addr') -``` - -### proxyaddr(req, trust) - -Return the address of the request, using the given `trust` parameter. - -The `trust` argument is a function that returns `true` if you trust -the address, `false` if you don't. The closest untrusted address is -returned. - -```js -proxyaddr(req, function(addr){ return addr === '127.0.0.1' }) -proxyaddr(req, function(addr, i){ return i < 1 }) -``` - -The `trust` arugment may also be a single IP address string or an -array of trusted addresses, as plain IP addresses, CIDR-formatted -strings, or IP/netmask strings. - -```js -proxyaddr(req, '127.0.0.1') -proxyaddr(req, ['127.0.0.0/8', '10.0.0.0/8']) -proxyaddr(req, ['127.0.0.0/255.0.0.0', '192.168.0.0/255.255.0.0']) -``` - -This module also supports IPv6. Your IPv6 addresses will be normalized -automatically (i.e. `fe80::00ed:1` equals `fe80:0:0:0:0:0:ed:1`). - -```js -proxyaddr(req, '::1') -proxyaddr(req, ['::1/128', 'fe80::/10']) -proxyaddr(req, ['fe80::/ffc0::']) -``` - -This module will automatically work with IPv4-mapped IPv6 addresses -as well to support node.js in IPv6-only mode. This means that you do -not have to specify both `::ffff:a00:1` and `10.0.0.1`. - -As a convenience, this module also takes certain pre-defined names -in addition to IP addresses, which expand into IP addresses: - -```js -proxyaddr(req, 'loopback') -proxyaddr(req, ['loopback', 'fc00:ac:1ab5:fff::1/64']) -``` - - * `loopback`: IPv4 and IPv6 loopback addresses (like `::1` and - `127.0.0.1`). - * `linklocal`: IPv4 and IPv6 link-local addresses (like - `fe80::1:1:1:1` and `169.254.0.1`). - * `uniquelocal`: IPv4 private addresses and IPv6 unique-local - addresses (like `fc00:ac:1ab5:fff::1` and `192.168.0.1`). - -When `trust` is specified as a function, it will be called for each -address to determine if it is a trusted address. The function is -given two arguments: `addr` and `i`, where `addr` is a string of -the address to check and `i` is a number that represents the distance -from the socket address. - -### proxyaddr.all(req, [trust]) - -Return all the addresses of the request, optionally stopping at the -first untrusted. This array is ordered from closest to furthest -(i.e. `arr[0] === req.connection.remoteAddress`). - -```js -proxyaddr.all(req) -``` - -The optional `trust` argument takes the same arguments as `trust` -does in `proxyaddr(req, trust)`. - -```js -proxyaddr.all(req, 'loopback') -``` - -### proxyaddr.compile(val) - -Compiles argument `val` into a `trust` function. This function takes -the same arguments as `trust` does in `proxyaddr(req, trust)` and -returns a function suitable for `proxyaddr(req, trust)`. - -```js -var trust = proxyaddr.compile('localhost') -var addr = proxyaddr(req, trust) -``` - -This function is meant to be optimized for use against every request. -It is recommend to compile a trust function up-front for the trusted -configuration and pass that to `proxyaddr(req, trust)` for each request. - -## Testing - -```sh -$ npm test -``` - -## Benchmarks - -```sh -$ npm run-script bench -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/proxy-addr.svg -[npm-url]: https://npmjs.org/package/proxy-addr -[node-version-image]: https://img.shields.io/node/v/proxy-addr.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/proxy-addr/master.svg -[travis-url]: https://travis-ci.org/jshttp/proxy-addr -[coveralls-image]: https://img.shields.io/coveralls/jshttp/proxy-addr/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/proxy-addr?branch=master -[downloads-image]: https://img.shields.io/npm/dm/proxy-addr.svg -[downloads-url]: https://npmjs.org/package/proxy-addr diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/index.js deleted file mode 100644 index 3200efbd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/index.js +++ /dev/null @@ -1,347 +0,0 @@ -/*! - * proxy-addr - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = proxyaddr; -module.exports.all = alladdrs; -module.exports.compile = compile; - -/** - * Module dependencies. - */ - -var forwarded = require('forwarded'); -var ipaddr = require('ipaddr.js'); - -/** - * Variables. - */ - -var digitre = /^[0-9]+$/; -var isip = ipaddr.isValid; -var parseip = ipaddr.parse; - -/** - * Pre-defined IP ranges. - */ - -var ipranges = { - linklocal: ['169.254.0.0/16', 'fe80::/10'], - loopback: ['127.0.0.1/8', '::1/128'], - uniquelocal: ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16', 'fc00::/7'] -}; - -/** - * Get all addresses in the request, optionally stopping - * at the first untrusted. - * - * @param {Object} request - * @param {Function|Array|String} [trust] - * @api public - */ - -function alladdrs(req, trust) { - // get addresses - var addrs = forwarded(req); - - if (!trust) { - // Return all addresses - return addrs; - } - - if (typeof trust !== 'function') { - trust = compile(trust); - } - - for (var i = 0; i < addrs.length - 1; i++) { - if (trust(addrs[i], i)) continue; - - addrs.length = i + 1; - } - - return addrs; -} - -/** - * Compile argument into trust function. - * - * @param {Array|String} val - * @api private - */ - -function compile(val) { - if (!val) { - throw new TypeError('argument is required'); - } - - var trust = typeof val === 'string' - ? [val] - : val; - - if (!Array.isArray(trust)) { - throw new TypeError('unsupported trust argument'); - } - - for (var i = 0; i < trust.length; i++) { - val = trust[i]; - - if (!ipranges.hasOwnProperty(val)) { - continue; - } - - // Splice in pre-defined range - val = ipranges[val]; - trust.splice.apply(trust, [i, 1].concat(val)); - i += val.length - 1; - } - - return compileTrust(compileRangeSubnets(trust)); -} - -/** - * Compile `arr` elements into range subnets. - * - * @param {Array} arr - * @api private - */ - -function compileRangeSubnets(arr) { - var rangeSubnets = new Array(arr.length); - - for (var i = 0; i < arr.length; i++) { - rangeSubnets[i] = parseipNotation(arr[i]); - } - - return rangeSubnets; -} - -/** - * Compile range subnet array into trust function. - * - * @param {Array} rangeSubnets - * @api private - */ - -function compileTrust(rangeSubnets) { - // Return optimized function based on length - var len = rangeSubnets.length; - return len === 0 - ? trustNone - : len === 1 - ? trustSingle(rangeSubnets[0]) - : trustMulti(rangeSubnets); -} - -/** - * Parse IP notation string into range subnet. - * - * @param {String} note - * @api private - */ - -function parseipNotation(note) { - var ip; - var kind; - var max; - var pos = note.lastIndexOf('/'); - var range; - - ip = pos !== -1 - ? note.substring(0, pos) - : note; - - if (!isip(ip)) { - throw new TypeError('invalid IP address: ' + ip); - } - - ip = parseip(ip); - - kind = ip.kind(); - max = kind === 'ipv6' - ? 128 - : 32; - - range = pos !== -1 - ? note.substring(pos + 1, note.length) - : max; - - if (typeof range !== 'number') { - range = digitre.test(range) - ? parseInt(range, 10) - : isip(range) - ? parseNetmask(range) - : 0; - } - - if (ip.kind() === 'ipv6' && ip.isIPv4MappedAddress()) { - // Store as IPv4 - ip = ip.toIPv4Address(); - range = range <= max - ? range - 96 - : range; - } - - if (range <= 0 || range > max) { - throw new TypeError('invalid range on address: ' + note); - } - - return [ip, range]; -} - -/** - * Parse netmask string into CIDR range. - * - * @param {String} note - * @api private - */ - -function parseNetmask(netmask) { - var ip = parseip(netmask); - var parts; - var size; - - switch (ip.kind()) { - case 'ipv4': - parts = ip.octets; - size = 8; - break; - case 'ipv6': - parts = ip.parts; - size = 16; - break; - } - - var max = Math.pow(2, size) - 1; - var part; - var range = 0; - - for (var i = 0; i < parts.length; i++) { - part = parts[i] & max; - - if (part === max) { - range += size; - continue; - } - - while (part) { - part = (part << 1) & max; - range += 1; - } - - break; - } - - return range; -} - -/** - * Determine address of proxied request. - * - * @param {Object} request - * @param {Function|Array|String} trust - * @api public - */ - -function proxyaddr(req, trust) { - if (!req) { - throw new TypeError('req argument is required'); - } - - if (!trust) { - throw new TypeError('trust argument is required'); - } - - var addrs = alladdrs(req, trust); - var addr = addrs[addrs.length - 1]; - - return addr; -} - -/** - * Static trust function to trust nothing. - * - * @api private - */ - -function trustNone() { - return false; -} - -/** - * Compile trust function for multiple subnets. - * - * @param {Array} subnets - * @api private - */ - -function trustMulti(subnets) { - return function trust(addr) { - if (!isip(addr)) return false; - - var ip = parseip(addr); - var ipv4; - var kind = ip.kind(); - var subnet; - var subnetip; - var subnetkind; - var subnetrange; - var trusted; - - for (var i = 0; i < subnets.length; i++) { - subnet = subnets[i]; - subnetip = subnet[0]; - subnetkind = subnetip.kind(); - subnetrange = subnet[1]; - trusted = ip; - - if (kind !== subnetkind) { - if (kind !== 'ipv6' || subnetkind !== 'ipv4' || !ip.isIPv4MappedAddress()) { - continue; - } - - // Store addr as IPv4 - ipv4 = ipv4 || ip.toIPv4Address(); - trusted = ipv4; - } - - if (trusted.match(subnetip, subnetrange)) return true; - } - - return false; - }; -} - -/** - * Compile trust function for single subnet. - * - * @param {Object} subnet - * @api private - */ - -function trustSingle(subnet) { - var subnetip = subnet[0]; - var subnetkind = subnetip.kind(); - var subnetisipv4 = subnetkind === 'ipv4'; - var subnetrange = subnet[1]; - - return function trust(addr) { - if (!isip(addr)) return false; - - var ip = parseip(addr); - var kind = ip.kind(); - - return kind === subnetkind - ? ip.match(subnetip, subnetrange) - : subnetisipv4 && kind === 'ipv6' && ip.isIPv4MappedAddress() - ? ip.toIPv4Address().match(subnetip, subnetrange) - : false; - }; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/HISTORY.md deleted file mode 100644 index 97fa1d10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/HISTORY.md +++ /dev/null @@ -1,4 +0,0 @@ -0.1.0 / 2014-09-21 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/LICENSE deleted file mode 100644 index b7dce6cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/README.md deleted file mode 100644 index 2b4988fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# forwarded - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Parse HTTP X-Forwarded-For header - -## Installation - -```sh -$ npm install forwarded -``` - -## API - -```js -var forwarded = require('forwarded') -``` - -### forwarded(req) - -```js -var addresses = forwarded(req) -``` - -Parse the `X-Forwarded-For` header from the request. Returns an array -of the addresses, including the socket address for the `req`. In reverse -order (i.e. index `0` is the socket address and the last index is the -furthest address, typically the end-user). - -## Testing - -```sh -$ npm test -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/forwarded.svg?style=flat -[npm-url]: https://npmjs.org/package/forwarded -[node-version-image]: https://img.shields.io/node/v/forwarded.svg?style=flat -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/forwarded.svg?style=flat -[travis-url]: https://travis-ci.org/jshttp/forwarded -[coveralls-image]: https://img.shields.io/coveralls/jshttp/forwarded.svg?style=flat -[coveralls-url]: https://coveralls.io/r/jshttp/forwarded?branch=master -[downloads-image]: https://img.shields.io/npm/dm/forwarded.svg?style=flat -[downloads-url]: https://npmjs.org/package/forwarded diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/index.js deleted file mode 100644 index 2f5c3408..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! - * forwarded - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module exports. - */ - -module.exports = forwarded - -/** - * Get all addresses in the request, using the `X-Forwarded-For` header. - * - * @param {Object} req - * @api public - */ - -function forwarded(req) { - if (!req) { - throw new TypeError('argument req is required') - } - - // simple header parsing - var proxyAddrs = (req.headers['x-forwarded-for'] || '') - .split(/ *, */) - .filter(Boolean) - .reverse() - var socketAddr = req.connection.remoteAddress - var addrs = [socketAddr].concat(proxyAddrs) - - // return all addresses - return addrs -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/package.json deleted file mode 100644 index 35297a6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/forwarded/package.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "forwarded", - "description": "Parse HTTP X-Forwarded-For header", - "version": "0.1.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "keywords": [ - "x-forwarded-for", - "http", - "req" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/forwarded.git" - }, - "devDependencies": { - "istanbul": "0.3.2", - "mocha": "~1.21.4" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "e9a9faeb3cfaadf40eb57d144fff26bca9b818e8", - "bugs": { - "url": "https://github.com/jshttp/forwarded/issues" - }, - "homepage": "https://github.com/jshttp/forwarded", - "_id": "forwarded@0.1.0", - "_shasum": "19ef9874c4ae1c297bcf078fde63a09b66a84363", - "_from": "forwarded@>=0.1.0 <0.2.0", - "_npmVersion": "1.4.21", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "19ef9874c4ae1c297bcf078fde63a09b66a84363", - "tarball": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/.npmignore deleted file mode 100644 index 7a1537ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -.idea -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/.travis.yml deleted file mode 100644 index aa3d14ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: node_js - -node_js: - - "0.10" - - "0.11" - - "0.12" - - "4.0" - - "4.1" - - "4.2" - - "5" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/Cakefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/Cakefile deleted file mode 100644 index 7fd355a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/Cakefile +++ /dev/null @@ -1,18 +0,0 @@ -fs = require 'fs' -CoffeeScript = require 'coffee-script' -nodeunit = require 'nodeunit' -UglifyJS = require 'uglify-js' - -task 'build', 'build the JavaScript files from CoffeeScript source', build = (cb) -> - source = fs.readFileSync 'src/ipaddr.coffee' - fs.writeFileSync 'lib/ipaddr.js', CoffeeScript.compile source.toString() - - invoke 'test' - invoke 'compress' - -task 'test', 'run the bundled tests', (cb) -> - nodeunit.reporters.default.run ['test'] - -task 'compress', 'uglify the resulting javascript', (cb) -> - result = UglifyJS.minify('lib/ipaddr.js') - fs.writeFileSync('ipaddr.min.js', result.code) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/LICENSE deleted file mode 100644 index 3493f0df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2011 Peter Zotov - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/README.md deleted file mode 100644 index f4f8776b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/README.md +++ /dev/null @@ -1,161 +0,0 @@ -# ipaddr.js — an IPv6 and IPv4 address manipulation library [![Build Status](https://travis-ci.org/whitequark/ipaddr.js.svg)](https://travis-ci.org/whitequark/ipaddr.js) - -ipaddr.js is a small (1.9K minified and gzipped) library for manipulating -IP addresses in JavaScript environments. It runs on both CommonJS runtimes -(e.g. [nodejs]) and in a web browser. - -ipaddr.js allows you to verify and parse string representation of an IP -address, match it against a CIDR range or range list, determine if it falls -into some reserved ranges (examples include loopback and private ranges), -and convert between IPv4 and IPv4-mapped IPv6 addresses. - -[nodejs]: http://nodejs.org - -## Installation - -`npm install ipaddr.js` - -## API - -ipaddr.js defines one object in the global scope: `ipaddr`. In CommonJS, -it is exported from the module: - -```js -var ipaddr = require('ipaddr.js'); -``` - -The API consists of several global methods and two classes: ipaddr.IPv6 and ipaddr.IPv4. - -### Global methods - -There are three global methods defined: `ipaddr.isValid`, `ipaddr.parse` and -`ipaddr.process`. All of them receive a string as a single parameter. - -The `ipaddr.isValid` method returns `true` if the address is a valid IPv4 or -IPv6 address, and `false` otherwise. It does not throw any exceptions. - -The `ipaddr.parse` method returns an object representing the IP address, -or throws an `Error` if the passed string is not a valid representation of an -IP address. - -The `ipaddr.process` method works just like the `ipaddr.parse` one, but it -automatically converts IPv4-mapped IPv6 addresses to their IPv4 couterparts -before returning. It is useful when you have a Node.js instance listening -on an IPv6 socket, and the `net.ivp6.bindv6only` sysctl parameter (or its -equivalent on non-Linux OS) is set to 0. In this case, you can accept IPv4 -connections on your IPv6-only socket, but the remote address will be mangled. -Use `ipaddr.process` method to automatically demangle it. - -### Object representation - -Parsing methods return an object which descends from `ipaddr.IPv6` or -`ipaddr.IPv4`. These objects share some properties, but most of them differ. - -#### Shared properties - -One can determine the type of address by calling `addr.kind()`. It will return -either `"ipv6"` or `"ipv4"`. - -An address can be converted back to its string representation with `addr.toString()`. -Note that this method: - * does not return the original string used to create the object (in fact, there is - no way of getting that string) - * returns a compact representation (when it is applicable) - -A `match(range, bits)` method can be used to check if the address falls into a -certain CIDR range. -Note that an address can be (obviously) matched only against an address of the same type. - -For example: - -```js -var addr = ipaddr.parse("2001:db8:1234::1"); -var range = ipaddr.parse("2001:db8::"); - -addr.match(range, 32); // => true -``` - -Alternatively, `match` can also be called as `match([range, bits])`. In this way, -it can be used together with the `parseCIDR(string)` method, which parses an IP -address together with a CIDR range. - -For example: - -```js -var addr = ipaddr.parse("2001:db8:1234::1"); - -addr.match(ipaddr.parseCIDR("2001:db8::/32")); // => true -``` - -A `range()` method returns one of predefined names for several special ranges defined -by IP protocols. The exact names (and their respective CIDR ranges) can be looked up -in the source: [IPv6 ranges] and [IPv4 ranges]. Some common ones include `"unicast"` -(the default one) and `"reserved"`. - -You can match against your own range list by using -`ipaddr.subnetMatch(address, rangeList, defaultName)` method. It can work with both -IPv6 and IPv4 addresses, and accepts a name-to-subnet map as the range list. For example: - -```js -var rangeList = { - documentationOnly: [ ipaddr.parse('2001:db8::'), 32 ], - tunnelProviders: [ - [ ipaddr.parse('2001:470::'), 32 ], // he.net - [ ipaddr.parse('2001:5c0::'), 32 ] // freenet6 - ] -}; -ipaddr.subnetMatch(ipaddr.parse('2001:470:8:66::1'), rangeList, 'unknown'); // => "he.net" -``` - -The addresses can be converted to their byte representation with `toByteArray()`. -(Actually, JavaScript mostly does not know about byte buffers. They are emulated with -arrays of numbers, each in range of 0..255.) - -```js -var bytes = ipaddr.parse('2a00:1450:8007::68').toByteArray(); // ipv6.google.com -bytes // => [42, 0x00, 0x14, 0x50, 0x80, 0x07, 0x00, , 0x00, 0x68 ] -``` - -The `ipaddr.IPv4` and `ipaddr.IPv6` objects have some methods defined, too. All of them -have the same interface for both protocols, and are similar to global methods. - -`ipaddr.IPvX.isValid(string)` can be used to check if the string is a valid address -for particular protocol, and `ipaddr.IPvX.parse(string)` is the error-throwing parser. - -[IPv6 ranges]: https://github.com/whitequark/ipaddr.js/blob/master/src/ipaddr.coffee#L186 -[IPv4 ranges]: https://github.com/whitequark/ipaddr.js/blob/master/src/ipaddr.coffee#L71 - -#### IPv6 properties - -Sometimes you will want to convert IPv6 not to a compact string representation (with -the `::` substitution); the `toNormalizedString()` method will return an address where -all zeroes are explicit. - -For example: - -```js -var addr = ipaddr.parse("2001:0db8::0001"); -addr.toString(); // => "2001:db8::1" -addr.toNormalizedString(); // => "2001:db8:0:0:0:0:0:1" -``` - -The `isIPv4MappedAddress()` method will return `true` if this address is an IPv4-mapped -one, and `toIPv4Address()` will return an IPv4 object address. - -To access the underlying binary representation of the address, use `addr.parts`. - -```js -var addr = ipaddr.parse("2001:db8:10::1234:DEAD"); -addr.parts // => [0x2001, 0xdb8, 0x10, 0, 0, 0, 0x1234, 0xdead] -``` - -#### IPv4 properties - -`toIPv4MappedAddress()` will return a corresponding IPv4-mapped IPv6 address. - -To access the underlying representation of the address, use `addr.octets`. - -```js -var addr = ipaddr.parse("192.168.1.1"); -addr.octets // => [192, 168, 1, 1] -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/bower.json deleted file mode 100644 index bc04ffe9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/bower.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "ipaddr.js", - "version": "1.0.5", - "homepage": "https://github.com/whitequark/ipaddr.js", - "authors": [ - "whitequark " - ], - "description": "IP address manipulation library in JavaScript (CoffeeScript, actually)", - "main": "lib/ipaddr.js", - "moduleType": [ - "globals", - "node" - ], - "keywords": [ - "javscript", - "ip", - "address", - "ipv4", - "ipv6" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/ipaddr.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/ipaddr.min.js deleted file mode 100644 index ee5179d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/ipaddr.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var r,t,n,e,i,o,a,s;t={},s=this,"undefined"!=typeof module&&null!==module&&module.exports?module.exports=t:s.ipaddr=t,a=function(r,t,n,e){var i,o;if(r.length!==t.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(i=0;e>0;){if(o=n-e,0>o&&(o=0),r[i]>>o!==t[i]>>o)return!1;e-=n,i+=1}return!0},t.subnetMatch=function(r,t,n){var e,i,o,a,s;null==n&&(n="unicast");for(e in t)for(i=t[e],!i[0]||i[0]instanceof Array||(i=[i]),a=0,s=i.length;s>a;a++)if(o=i[a],r.match.apply(r,o))return e;return n},t.IPv4=function(){function r(r){var t,n,e;if(4!==r.length)throw new Error("ipaddr: ipv4 octet count should be 4");for(n=0,e=r.length;e>n;n++)if(t=r[n],!(t>=0&&255>=t))throw new Error("ipaddr: ipv4 octet is a byte");this.octets=r}return r.prototype.kind=function(){return"ipv4"},r.prototype.toString=function(){return this.octets.join(".")},r.prototype.toByteArray=function(){return this.octets.slice(0)},r.prototype.match=function(r,t){var n;if(void 0===t&&(n=r,r=n[0],t=n[1]),"ipv4"!==r.kind())throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return a(this.octets,r.octets,8,t)},r.prototype.SpecialRanges={unspecified:[[new r([0,0,0,0]),8]],broadcast:[[new r([255,255,255,255]),32]],multicast:[[new r([224,0,0,0]),4]],linkLocal:[[new r([169,254,0,0]),16]],loopback:[[new r([127,0,0,0]),8]],"private":[[new r([10,0,0,0]),8],[new r([172,16,0,0]),12],[new r([192,168,0,0]),16]],reserved:[[new r([192,0,0,0]),24],[new r([192,0,2,0]),24],[new r([192,88,99,0]),24],[new r([198,51,100,0]),24],[new r([203,0,113,0]),24],[new r([240,0,0,0]),4]]},r.prototype.range=function(){return t.subnetMatch(this,this.SpecialRanges)},r.prototype.toIPv4MappedAddress=function(){return t.IPv6.parse("::ffff:"+this.toString())},r}(),n="(0?\\d+|0x[a-f0-9]+)",e={fourOctet:new RegExp("^"+n+"\\."+n+"\\."+n+"\\."+n+"$","i"),longValue:new RegExp("^"+n+"$","i")},t.IPv4.parser=function(r){var t,n,i,o,a;if(n=function(r){return"0"===r[0]&&"x"!==r[1]?parseInt(r,8):parseInt(r)},t=r.match(e.fourOctet))return function(){var r,e,o,a;for(o=t.slice(1,6),a=[],r=0,e=o.length;e>r;r++)i=o[r],a.push(n(i));return a}();if(t=r.match(e.longValue)){if(a=n(t[1]),a>4294967295||0>a)throw new Error("ipaddr: address outside defined range");return function(){var r,t;for(t=[],o=r=0;24>=r;o=r+=8)t.push(a>>o&255);return t}().reverse()}return null},t.IPv6=function(){function r(r){var t,n,e;if(8!==r.length)throw new Error("ipaddr: ipv6 part count should be 8");for(n=0,e=r.length;e>n;n++)if(t=r[n],!(t>=0&&65535>=t))throw new Error("ipaddr: ipv6 part should fit to two octets");this.parts=r}return r.prototype.kind=function(){return"ipv6"},r.prototype.toString=function(){var r,t,n,e,i,o,a;for(i=function(){var r,n,e,i;for(e=this.parts,i=[],r=0,n=e.length;n>r;r++)t=e[r],i.push(t.toString(16));return i}.call(this),r=[],n=function(t){return r.push(t)},e=0,o=0,a=i.length;a>o;o++)switch(t=i[o],e){case 0:n("0"===t?"":t),e=1;break;case 1:"0"===t?e=2:n(t);break;case 2:"0"!==t&&(n(""),n(t),e=3);break;case 3:n(t)}return 2===e&&(n(""),n("")),r.join(":")},r.prototype.toByteArray=function(){var r,t,n,e,i;for(r=[],i=this.parts,n=0,e=i.length;e>n;n++)t=i[n],r.push(t>>8),r.push(255&t);return r},r.prototype.toNormalizedString=function(){var r;return function(){var t,n,e,i;for(e=this.parts,i=[],t=0,n=e.length;n>t;t++)r=e[t],i.push(r.toString(16));return i}.call(this).join(":")},r.prototype.match=function(r,t){var n;if(void 0===t&&(n=r,r=n[0],t=n[1]),"ipv6"!==r.kind())throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return a(this.parts,r.parts,16,t)},r.prototype.SpecialRanges={unspecified:[new r([0,0,0,0,0,0,0,0]),128],linkLocal:[new r([65152,0,0,0,0,0,0,0]),10],multicast:[new r([65280,0,0,0,0,0,0,0]),8],loopback:[new r([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new r([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new r([0,0,0,0,0,65535,0,0]),96],rfc6145:[new r([0,0,0,0,65535,0,0,0]),96],rfc6052:[new r([100,65435,0,0,0,0,0,0]),96],"6to4":[new r([8194,0,0,0,0,0,0,0]),16],teredo:[new r([8193,0,0,0,0,0,0,0]),32],reserved:[[new r([8193,3512,0,0,0,0,0,0]),32]]},r.prototype.range=function(){return t.subnetMatch(this,this.SpecialRanges)},r.prototype.isIPv4MappedAddress=function(){return"ipv4Mapped"===this.range()},r.prototype.toIPv4Address=function(){var r,n,e;if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");return e=this.parts.slice(-2),r=e[0],n=e[1],new t.IPv4([r>>8,255&r,n>>8,255&n])},r}(),i="(?:[0-9a-f]+::?)+",o={"native":new RegExp("^(::)?("+i+")?([0-9a-f]+)?(::)?$","i"),transitional:new RegExp("^((?:"+i+")|(?:::)(?:"+i+")?)"+(""+n+"\\."+n+"\\."+n+"\\."+n+"$"),"i")},r=function(r,t){var n,e,i,o,a;if(r.indexOf("::")!==r.lastIndexOf("::"))return null;for(n=0,e=-1;(e=r.indexOf(":",e+1))>=0;)n++;if("::"===r.substr(0,2)&&n--,"::"===r.substr(-2,2)&&n--,n>t)return null;for(a=t-n,o=":";a--;)o+="0:";return r=r.replace("::",o),":"===r[0]&&(r=r.slice(1)),":"===r[r.length-1]&&(r=r.slice(0,-1)),function(){var t,n,e,o;for(e=r.split(":"),o=[],t=0,n=e.length;n>t;t++)i=e[t],o.push(parseInt(i,16));return o}()},t.IPv6.parser=function(t){var n,e;return t.match(o["native"])?r(t,8):(n=t.match(o.transitional))&&(e=r(n[1].slice(0,-1),6))?(e.push(parseInt(n[2])<<8|parseInt(n[3])),e.push(parseInt(n[4])<<8|parseInt(n[5])),e):null},t.IPv4.isIPv4=t.IPv6.isIPv6=function(r){return null!==this.parser(r)},t.IPv4.isValid=function(r){var t;try{return new this(this.parser(r)),!0}catch(n){return t=n,!1}},t.IPv6.isValid=function(r){var t;if("string"==typeof r&&-1===r.indexOf(":"))return!1;try{return new this(this.parser(r)),!0}catch(n){return t=n,!1}},t.IPv4.parse=t.IPv6.parse=function(r){var t;if(t=this.parser(r),null===t)throw new Error("ipaddr: string is not formatted like ip address");return new this(t)},t.IPv4.parseCIDR=function(r){var t,n;if((n=r.match(/^(.+)\/(\d+)$/))&&(t=parseInt(n[2]),t>=0&&32>=t))return[this.parse(n[1]),t];throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},t.IPv6.parseCIDR=function(r){var t,n;if((n=r.match(/^(.+)\/(\d+)$/))&&(t=parseInt(n[2]),t>=0&&128>=t))return[this.parse(n[1]),t];throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},t.isValid=function(r){return t.IPv6.isValid(r)||t.IPv4.isValid(r)},t.parse=function(r){if(t.IPv6.isValid(r))return t.IPv6.parse(r);if(t.IPv4.isValid(r))return t.IPv4.parse(r);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},t.parseCIDR=function(r){var n;try{return t.IPv6.parseCIDR(r)}catch(e){n=e;try{return t.IPv4.parseCIDR(r)}catch(e){throw n=e,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},t.process=function(r){var t;return t=this.parse(r),"ipv6"===t.kind()&&t.isIPv4MappedAddress()?t.toIPv4Address():t}}).call(this); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/lib/ipaddr.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/lib/ipaddr.js deleted file mode 100644 index ef179b44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/lib/ipaddr.js +++ /dev/null @@ -1,467 +0,0 @@ -(function() { - var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root; - - ipaddr = {}; - - root = this; - - if ((typeof module !== "undefined" && module !== null) && module.exports) { - module.exports = ipaddr; - } else { - root['ipaddr'] = ipaddr; - } - - matchCIDR = function(first, second, partSize, cidrBits) { - var part, shift; - if (first.length !== second.length) { - throw new Error("ipaddr: cannot match CIDR for objects with different lengths"); - } - part = 0; - while (cidrBits > 0) { - shift = partSize - cidrBits; - if (shift < 0) { - shift = 0; - } - if (first[part] >> shift !== second[part] >> shift) { - return false; - } - cidrBits -= partSize; - part += 1; - } - return true; - }; - - ipaddr.subnetMatch = function(address, rangeList, defaultName) { - var rangeName, rangeSubnets, subnet, _i, _len; - if (defaultName == null) { - defaultName = 'unicast'; - } - for (rangeName in rangeList) { - rangeSubnets = rangeList[rangeName]; - if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) { - rangeSubnets = [rangeSubnets]; - } - for (_i = 0, _len = rangeSubnets.length; _i < _len; _i++) { - subnet = rangeSubnets[_i]; - if (address.match.apply(address, subnet)) { - return rangeName; - } - } - } - return defaultName; - }; - - ipaddr.IPv4 = (function() { - function IPv4(octets) { - var octet, _i, _len; - if (octets.length !== 4) { - throw new Error("ipaddr: ipv4 octet count should be 4"); - } - for (_i = 0, _len = octets.length; _i < _len; _i++) { - octet = octets[_i]; - if (!((0 <= octet && octet <= 255))) { - throw new Error("ipaddr: ipv4 octet is a byte"); - } - } - this.octets = octets; - } - - IPv4.prototype.kind = function() { - return 'ipv4'; - }; - - IPv4.prototype.toString = function() { - return this.octets.join("."); - }; - - IPv4.prototype.toByteArray = function() { - return this.octets.slice(0); - }; - - IPv4.prototype.match = function(other, cidrRange) { - var _ref; - if (cidrRange === void 0) { - _ref = other, other = _ref[0], cidrRange = _ref[1]; - } - if (other.kind() !== 'ipv4') { - throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one"); - } - return matchCIDR(this.octets, other.octets, 8, cidrRange); - }; - - IPv4.prototype.SpecialRanges = { - unspecified: [[new IPv4([0, 0, 0, 0]), 8]], - broadcast: [[new IPv4([255, 255, 255, 255]), 32]], - multicast: [[new IPv4([224, 0, 0, 0]), 4]], - linkLocal: [[new IPv4([169, 254, 0, 0]), 16]], - loopback: [[new IPv4([127, 0, 0, 0]), 8]], - "private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]], - reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]] - }; - - IPv4.prototype.range = function() { - return ipaddr.subnetMatch(this, this.SpecialRanges); - }; - - IPv4.prototype.toIPv4MappedAddress = function() { - return ipaddr.IPv6.parse("::ffff:" + (this.toString())); - }; - - return IPv4; - - })(); - - ipv4Part = "(0?\\d+|0x[a-f0-9]+)"; - - ipv4Regexes = { - fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", 'i'), - longValue: new RegExp("^" + ipv4Part + "$", 'i') - }; - - ipaddr.IPv4.parser = function(string) { - var match, parseIntAuto, part, shift, value; - parseIntAuto = function(string) { - if (string[0] === "0" && string[1] !== "x") { - return parseInt(string, 8); - } else { - return parseInt(string); - } - }; - if (match = string.match(ipv4Regexes.fourOctet)) { - return (function() { - var _i, _len, _ref, _results; - _ref = match.slice(1, 6); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - part = _ref[_i]; - _results.push(parseIntAuto(part)); - } - return _results; - })(); - } else if (match = string.match(ipv4Regexes.longValue)) { - value = parseIntAuto(match[1]); - if (value > 0xffffffff || value < 0) { - throw new Error("ipaddr: address outside defined range"); - } - return ((function() { - var _i, _results; - _results = []; - for (shift = _i = 0; _i <= 24; shift = _i += 8) { - _results.push((value >> shift) & 0xff); - } - return _results; - })()).reverse(); - } else { - return null; - } - }; - - ipaddr.IPv6 = (function() { - function IPv6(parts) { - var part, _i, _len; - if (parts.length !== 8) { - throw new Error("ipaddr: ipv6 part count should be 8"); - } - for (_i = 0, _len = parts.length; _i < _len; _i++) { - part = parts[_i]; - if (!((0 <= part && part <= 0xffff))) { - throw new Error("ipaddr: ipv6 part should fit to two octets"); - } - } - this.parts = parts; - } - - IPv6.prototype.kind = function() { - return 'ipv6'; - }; - - IPv6.prototype.toString = function() { - var compactStringParts, part, pushPart, state, stringParts, _i, _len; - stringParts = (function() { - var _i, _len, _ref, _results; - _ref = this.parts; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - part = _ref[_i]; - _results.push(part.toString(16)); - } - return _results; - }).call(this); - compactStringParts = []; - pushPart = function(part) { - return compactStringParts.push(part); - }; - state = 0; - for (_i = 0, _len = stringParts.length; _i < _len; _i++) { - part = stringParts[_i]; - switch (state) { - case 0: - if (part === '0') { - pushPart(''); - } else { - pushPart(part); - } - state = 1; - break; - case 1: - if (part === '0') { - state = 2; - } else { - pushPart(part); - } - break; - case 2: - if (part !== '0') { - pushPart(''); - pushPart(part); - state = 3; - } - break; - case 3: - pushPart(part); - } - } - if (state === 2) { - pushPart(''); - pushPart(''); - } - return compactStringParts.join(":"); - }; - - IPv6.prototype.toByteArray = function() { - var bytes, part, _i, _len, _ref; - bytes = []; - _ref = this.parts; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - part = _ref[_i]; - bytes.push(part >> 8); - bytes.push(part & 0xff); - } - return bytes; - }; - - IPv6.prototype.toNormalizedString = function() { - var part; - return ((function() { - var _i, _len, _ref, _results; - _ref = this.parts; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - part = _ref[_i]; - _results.push(part.toString(16)); - } - return _results; - }).call(this)).join(":"); - }; - - IPv6.prototype.match = function(other, cidrRange) { - var _ref; - if (cidrRange === void 0) { - _ref = other, other = _ref[0], cidrRange = _ref[1]; - } - if (other.kind() !== 'ipv6') { - throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one"); - } - return matchCIDR(this.parts, other.parts, 16, cidrRange); - }; - - IPv6.prototype.SpecialRanges = { - unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128], - linkLocal: [new IPv6([0xfe80, 0, 0, 0, 0, 0, 0, 0]), 10], - multicast: [new IPv6([0xff00, 0, 0, 0, 0, 0, 0, 0]), 8], - loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128], - uniqueLocal: [new IPv6([0xfc00, 0, 0, 0, 0, 0, 0, 0]), 7], - ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 0xffff, 0, 0]), 96], - rfc6145: [new IPv6([0, 0, 0, 0, 0xffff, 0, 0, 0]), 96], - rfc6052: [new IPv6([0x64, 0xff9b, 0, 0, 0, 0, 0, 0]), 96], - '6to4': [new IPv6([0x2002, 0, 0, 0, 0, 0, 0, 0]), 16], - teredo: [new IPv6([0x2001, 0, 0, 0, 0, 0, 0, 0]), 32], - reserved: [[new IPv6([0x2001, 0xdb8, 0, 0, 0, 0, 0, 0]), 32]] - }; - - IPv6.prototype.range = function() { - return ipaddr.subnetMatch(this, this.SpecialRanges); - }; - - IPv6.prototype.isIPv4MappedAddress = function() { - return this.range() === 'ipv4Mapped'; - }; - - IPv6.prototype.toIPv4Address = function() { - var high, low, _ref; - if (!this.isIPv4MappedAddress()) { - throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4"); - } - _ref = this.parts.slice(-2), high = _ref[0], low = _ref[1]; - return new ipaddr.IPv4([high >> 8, high & 0xff, low >> 8, low & 0xff]); - }; - - return IPv6; - - })(); - - ipv6Part = "(?:[0-9a-f]+::?)+"; - - ipv6Regexes = { - "native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?$", 'i'), - transitional: new RegExp(("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)") + ("" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$"), 'i') - }; - - expandIPv6 = function(string, parts) { - var colonCount, lastColon, part, replacement, replacementCount; - if (string.indexOf('::') !== string.lastIndexOf('::')) { - return null; - } - colonCount = 0; - lastColon = -1; - while ((lastColon = string.indexOf(':', lastColon + 1)) >= 0) { - colonCount++; - } - if (string.substr(0, 2) === '::') { - colonCount--; - } - if (string.substr(-2, 2) === '::') { - colonCount--; - } - if (colonCount > parts) { - return null; - } - replacementCount = parts - colonCount; - replacement = ':'; - while (replacementCount--) { - replacement += '0:'; - } - string = string.replace('::', replacement); - if (string[0] === ':') { - string = string.slice(1); - } - if (string[string.length - 1] === ':') { - string = string.slice(0, -1); - } - return (function() { - var _i, _len, _ref, _results; - _ref = string.split(":"); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - part = _ref[_i]; - _results.push(parseInt(part, 16)); - } - return _results; - })(); - }; - - ipaddr.IPv6.parser = function(string) { - var match, parts; - if (string.match(ipv6Regexes['native'])) { - return expandIPv6(string, 8); - } else if (match = string.match(ipv6Regexes['transitional'])) { - parts = expandIPv6(match[1].slice(0, -1), 6); - if (parts) { - parts.push(parseInt(match[2]) << 8 | parseInt(match[3])); - parts.push(parseInt(match[4]) << 8 | parseInt(match[5])); - return parts; - } - } - return null; - }; - - ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = function(string) { - return this.parser(string) !== null; - }; - - ipaddr.IPv4.isValid = function(string) { - var e; - try { - new this(this.parser(string)); - return true; - } catch (_error) { - e = _error; - return false; - } - }; - - ipaddr.IPv6.isValid = function(string) { - var e; - if (typeof string === "string" && string.indexOf(":") === -1) { - return false; - } - try { - new this(this.parser(string)); - return true; - } catch (_error) { - e = _error; - return false; - } - }; - - ipaddr.IPv4.parse = ipaddr.IPv6.parse = function(string) { - var parts; - parts = this.parser(string); - if (parts === null) { - throw new Error("ipaddr: string is not formatted like ip address"); - } - return new this(parts); - }; - - ipaddr.IPv4.parseCIDR = function(string) { - var maskLength, match; - if (match = string.match(/^(.+)\/(\d+)$/)) { - maskLength = parseInt(match[2]); - if (maskLength >= 0 && maskLength <= 32) { - return [this.parse(match[1]), maskLength]; - } - } - throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range"); - }; - - ipaddr.IPv6.parseCIDR = function(string) { - var maskLength, match; - if (match = string.match(/^(.+)\/(\d+)$/)) { - maskLength = parseInt(match[2]); - if (maskLength >= 0 && maskLength <= 128) { - return [this.parse(match[1]), maskLength]; - } - } - throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range"); - }; - - ipaddr.isValid = function(string) { - return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string); - }; - - ipaddr.parse = function(string) { - if (ipaddr.IPv6.isValid(string)) { - return ipaddr.IPv6.parse(string); - } else if (ipaddr.IPv4.isValid(string)) { - return ipaddr.IPv4.parse(string); - } else { - throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format"); - } - }; - - ipaddr.parseCIDR = function(string) { - var e; - try { - return ipaddr.IPv6.parseCIDR(string); - } catch (_error) { - e = _error; - try { - return ipaddr.IPv4.parseCIDR(string); - } catch (_error) { - e = _error; - throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format"); - } - } - }; - - ipaddr.process = function(string) { - var addr; - addr = this.parse(string); - if (addr.kind() === 'ipv6' && addr.isIPv4MappedAddress()) { - return addr.toIPv4Address(); - } else { - return addr; - } - }; - -}).call(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/package.json deleted file mode 100644 index a6fcee60..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "ipaddr.js", - "description": "A library for manipulating IPv4 and IPv6 addresses in JavaScript.", - "version": "1.0.5", - "author": { - "name": "whitequark", - "email": "whitequark@whitequark.org" - }, - "directories": { - "lib": "./lib" - }, - "dependencies": {}, - "devDependencies": { - "coffee-script": "~1.6", - "nodeunit": ">=0.8.2 <0.8.7", - "uglify-js": "latest" - }, - "scripts": { - "test": "cake build test" - }, - "keywords": [ - "ip", - "ipv4", - "ipv6" - ], - "repository": { - "type": "git", - "url": "git://github.com/whitequark/ipaddr.js" - }, - "main": "./lib/ipaddr", - "engines": { - "node": ">= 0.10" - }, - "license": "MIT", - "gitHead": "46438c8bfa187505b7007a277f09a4a9e73d5686", - "bugs": { - "url": "https://github.com/whitequark/ipaddr.js/issues" - }, - "_id": "ipaddr.js@1.0.5", - "_shasum": "5fa78cf301b825c78abc3042d812723049ea23c7", - "_from": "ipaddr.js@1.0.5", - "_npmVersion": "1.4.21", - "_npmUser": { - "name": "whitequark", - "email": "whitequark@whitequark.org" - }, - "maintainers": [ - { - "name": "whitequark", - "email": "whitequark@whitequark.org" - } - ], - "dist": { - "shasum": "5fa78cf301b825c78abc3042d812723049ea23c7", - "tarball": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz" - }, - "_resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/src/ipaddr.coffee b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/src/ipaddr.coffee deleted file mode 100644 index 550174fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/src/ipaddr.coffee +++ /dev/null @@ -1,396 +0,0 @@ -# Define the main object -ipaddr = {} - -root = this - -# Export for both the CommonJS and browser-like environment -if module? && module.exports - module.exports = ipaddr -else - root['ipaddr'] = ipaddr - -# A generic CIDR (Classless Inter-Domain Routing) RFC1518 range matcher. -matchCIDR = (first, second, partSize, cidrBits) -> - if first.length != second.length - throw new Error "ipaddr: cannot match CIDR for objects with different lengths" - - part = 0 - while cidrBits > 0 - shift = partSize - cidrBits - shift = 0 if shift < 0 - - if first[part] >> shift != second[part] >> shift - return false - - cidrBits -= partSize - part += 1 - - return true - -# An utility function to ease named range matching. See examples below. -ipaddr.subnetMatch = (address, rangeList, defaultName='unicast') -> - for rangeName, rangeSubnets of rangeList - # ECMA5 Array.isArray isn't available everywhere - if rangeSubnets[0] && !(rangeSubnets[0] instanceof Array) - rangeSubnets = [ rangeSubnets ] - - for subnet in rangeSubnets - return rangeName if address.match.apply(address, subnet) - - return defaultName - -# An IPv4 address (RFC791). -class ipaddr.IPv4 - # Constructs a new IPv4 address from an array of four octets. - # Verifies the input. - constructor: (octets) -> - if octets.length != 4 - throw new Error "ipaddr: ipv4 octet count should be 4" - - for octet in octets - if !(0 <= octet <= 255) - throw new Error "ipaddr: ipv4 octet is a byte" - - @octets = octets - - # The 'kind' method exists on both IPv4 and IPv6 classes. - kind: -> - return 'ipv4' - - # Returns the address in convenient, decimal-dotted format. - toString: -> - return @octets.join "." - - # Returns an array of byte-sized values in network order - toByteArray: -> - return @octets.slice(0) # octets.clone - - # Checks if this address matches other one within given CIDR range. - match: (other, cidrRange) -> - if cidrRange == undefined - [other, cidrRange] = other - - if other.kind() != 'ipv4' - throw new Error "ipaddr: cannot match ipv4 address with non-ipv4 one" - - return matchCIDR(this.octets, other.octets, 8, cidrRange) - - # Special IPv4 address ranges. - SpecialRanges: - unspecified: [ - [ new IPv4([0, 0, 0, 0]), 8 ] - ] - broadcast: [ - [ new IPv4([255, 255, 255, 255]), 32 ] - ] - multicast: [ # RFC3171 - [ new IPv4([224, 0, 0, 0]), 4 ] - ] - linkLocal: [ # RFC3927 - [ new IPv4([169, 254, 0, 0]), 16 ] - ] - loopback: [ # RFC5735 - [ new IPv4([127, 0, 0, 0]), 8 ] - ] - private: [ # RFC1918 - [ new IPv4([10, 0, 0, 0]), 8 ] - [ new IPv4([172, 16, 0, 0]), 12 ] - [ new IPv4([192, 168, 0, 0]), 16 ] - ] - reserved: [ # Reserved and testing-only ranges; RFCs 5735, 5737, 2544, 1700 - [ new IPv4([192, 0, 0, 0]), 24 ] - [ new IPv4([192, 0, 2, 0]), 24 ] - [ new IPv4([192, 88, 99, 0]), 24 ] - [ new IPv4([198, 51, 100, 0]), 24 ] - [ new IPv4([203, 0, 113, 0]), 24 ] - [ new IPv4([240, 0, 0, 0]), 4 ] - ] - - # Checks if the address corresponds to one of the special ranges. - range: -> - return ipaddr.subnetMatch(this, @SpecialRanges) - - # Convrets this IPv4 address to an IPv4-mapped IPv6 address. - toIPv4MappedAddress: -> - return ipaddr.IPv6.parse "::ffff:#{@toString()}" - -# A list of regular expressions that match arbitrary IPv4 addresses, -# for which a number of weird notations exist. -# Note that an address like 0010.0xa5.1.1 is considered legal. -ipv4Part = "(0?\\d+|0x[a-f0-9]+)" -ipv4Regexes = - fourOctet: new RegExp "^#{ipv4Part}\\.#{ipv4Part}\\.#{ipv4Part}\\.#{ipv4Part}$", 'i' - longValue: new RegExp "^#{ipv4Part}$", 'i' - -# Classful variants (like a.b, where a is an octet, and b is a 24-bit -# value representing last three octets; this corresponds to a class C -# address) are omitted due to classless nature of modern Internet. -ipaddr.IPv4.parser = (string) -> - parseIntAuto = (string) -> - if string[0] == "0" && string[1] != "x" - parseInt(string, 8) - else - parseInt(string) - - # parseInt recognizes all that octal & hexadecimal weirdness for us - if match = string.match(ipv4Regexes.fourOctet) - return (parseIntAuto(part) for part in match[1..5]) - else if match = string.match(ipv4Regexes.longValue) - value = parseIntAuto(match[1]) - if value > 0xffffffff || value < 0 - throw new Error "ipaddr: address outside defined range" - return ((value >> shift) & 0xff for shift in [0..24] by 8).reverse() - else - return null - -# An IPv6 address (RFC2460) -class ipaddr.IPv6 - # Constructs an IPv6 address from an array of eight 16-bit parts. - # Throws an error if the input is invalid. - constructor: (parts) -> - if parts.length != 8 - throw new Error "ipaddr: ipv6 part count should be 8" - - for part in parts - if !(0 <= part <= 0xffff) - throw new Error "ipaddr: ipv6 part should fit to two octets" - - @parts = parts - - # The 'kind' method exists on both IPv4 and IPv6 classes. - kind: -> - return 'ipv6' - - # Returns the address in compact, human-readable format like - # 2001:db8:8:66::1 - toString: -> - stringParts = (part.toString(16) for part in @parts) - - compactStringParts = [] - pushPart = (part) -> compactStringParts.push part - - state = 0 - for part in stringParts - switch state - when 0 - if part == '0' - pushPart('') - else - pushPart(part) - - state = 1 - when 1 - if part == '0' - state = 2 - else - pushPart(part) - when 2 - unless part == '0' - pushPart('') - pushPart(part) - state = 3 - when 3 - pushPart(part) - - if state == 2 - pushPart('') - pushPart('') - - return compactStringParts.join ":" - - # Returns an array of byte-sized values in network order - toByteArray: -> - bytes = [] - for part in @parts - bytes.push(part >> 8) - bytes.push(part & 0xff) - - return bytes - - # Returns the address in expanded format with all zeroes included, like - # 2001:db8:8:66:0:0:0:1 - toNormalizedString: -> - return (part.toString(16) for part in @parts).join ":" - - # Checks if this address matches other one within given CIDR range. - match: (other, cidrRange) -> - if cidrRange == undefined - [other, cidrRange] = other - - if other.kind() != 'ipv6' - throw new Error "ipaddr: cannot match ipv6 address with non-ipv6 one" - - return matchCIDR(this.parts, other.parts, 16, cidrRange) - - # Special IPv6 ranges - SpecialRanges: - unspecified: [ new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128 ] # RFC4291, here and after - linkLocal: [ new IPv6([0xfe80, 0, 0, 0, 0, 0, 0, 0]), 10 ] - multicast: [ new IPv6([0xff00, 0, 0, 0, 0, 0, 0, 0]), 8 ] - loopback: [ new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128 ] - uniqueLocal: [ new IPv6([0xfc00, 0, 0, 0, 0, 0, 0, 0]), 7 ] - ipv4Mapped: [ new IPv6([0, 0, 0, 0, 0, 0xffff, 0, 0]), 96 ] - rfc6145: [ new IPv6([0, 0, 0, 0, 0xffff, 0, 0, 0]), 96 ] # RFC6145 - rfc6052: [ new IPv6([0x64, 0xff9b, 0, 0, 0, 0, 0, 0]), 96 ] # RFC6052 - '6to4': [ new IPv6([0x2002, 0, 0, 0, 0, 0, 0, 0]), 16 ] # RFC3056 - teredo: [ new IPv6([0x2001, 0, 0, 0, 0, 0, 0, 0]), 32 ] # RFC6052, RFC6146 - reserved: [ - [ new IPv6([ 0x2001, 0xdb8, 0, 0, 0, 0, 0, 0]), 32 ] # RFC4291 - ] - - # Checks if the address corresponds to one of the special ranges. - range: -> - return ipaddr.subnetMatch(this, @SpecialRanges) - - # Checks if this address is an IPv4-mapped IPv6 address. - isIPv4MappedAddress: -> - return @range() == 'ipv4Mapped' - - # Converts this address to IPv4 address if it is an IPv4-mapped IPv6 address. - # Throws an error otherwise. - toIPv4Address: -> - unless @isIPv4MappedAddress() - throw new Error "ipaddr: trying to convert a generic ipv6 address to ipv4" - - [high, low] = @parts[-2..-1] - - return new ipaddr.IPv4([high >> 8, high & 0xff, low >> 8, low & 0xff]) - -# IPv6-matching regular expressions. -# For IPv6, the task is simpler: it is enough to match the colon-delimited -# hexadecimal IPv6 and a transitional variant with dotted-decimal IPv4 at -# the end. -ipv6Part = "(?:[0-9a-f]+::?)+" -ipv6Regexes = - native: new RegExp "^(::)?(#{ipv6Part})?([0-9a-f]+)?(::)?$", 'i' - transitional: new RegExp "^((?:#{ipv6Part})|(?:::)(?:#{ipv6Part})?)" + - "#{ipv4Part}\\.#{ipv4Part}\\.#{ipv4Part}\\.#{ipv4Part}$", 'i' - -# Expand :: in an IPv6 address or address part consisting of `parts` groups. -expandIPv6 = (string, parts) -> - # More than one '::' means invalid adddress - if string.indexOf('::') != string.lastIndexOf('::') - return null - - # How many parts do we already have? - colonCount = 0 - lastColon = -1 - while (lastColon = string.indexOf(':', lastColon + 1)) >= 0 - colonCount++ - - # 0::0 is two parts more than :: - colonCount-- if string.substr(0, 2) == '::' - colonCount-- if string.substr(-2, 2) == '::' - - # The following loop would hang if colonCount > parts - if colonCount > parts - return null - - # replacement = ':' + '0:' * (parts - colonCount) - replacementCount = parts - colonCount - replacement = ':' - while replacementCount-- - replacement += '0:' - - # Insert the missing zeroes - string = string.replace('::', replacement) - - # Trim any garbage which may be hanging around if :: was at the edge in - # the source string - string = string[1..-1] if string[0] == ':' - string = string[0..-2] if string[string.length-1] == ':' - - return (parseInt(part, 16) for part in string.split(":")) - -# Parse an IPv6 address. -ipaddr.IPv6.parser = (string) -> - if string.match(ipv6Regexes['native']) - return expandIPv6(string, 8) - - else if match = string.match(ipv6Regexes['transitional']) - parts = expandIPv6(match[1][0..-2], 6) - if parts - parts.push(parseInt(match[2]) << 8 | parseInt(match[3])) - parts.push(parseInt(match[4]) << 8 | parseInt(match[5])) - return parts - - return null - -# Checks if a given string is formatted like IPv4/IPv6 address. -ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = (string) -> - return @parser(string) != null - -# Checks if a given string is a valid IPv4/IPv6 address. -ipaddr.IPv4.isValid = (string) -> - try - new this(@parser(string)) - return true - catch e - return false - -ipaddr.IPv6.isValid = (string) -> - # Since IPv6.isValid is always called first, this shortcut - # provides a substantial performance gain. - if typeof string == "string" and string.indexOf(":") == -1 - return false - - try - new this(@parser(string)) - return true - catch e - return false - -# Tries to parse and validate a string with IPv4/IPv6 address. -# Throws an error if it fails. -ipaddr.IPv4.parse = ipaddr.IPv6.parse = (string) -> - parts = @parser(string) - if parts == null - throw new Error "ipaddr: string is not formatted like ip address" - - return new this(parts) - -ipaddr.IPv4.parseCIDR = (string) -> - if match = string.match(/^(.+)\/(\d+)$/) - maskLength = parseInt(match[2]) - if maskLength >= 0 and maskLength <= 32 - return [@parse(match[1]), maskLength] - - throw new Error "ipaddr: string is not formatted like an IPv4 CIDR range" - -ipaddr.IPv6.parseCIDR = (string) -> - if match = string.match(/^(.+)\/(\d+)$/) - maskLength = parseInt(match[2]) - if maskLength >= 0 and maskLength <= 128 - return [@parse(match[1]), maskLength] - - throw new Error "ipaddr: string is not formatted like an IPv6 CIDR range" - -# Checks if the address is valid IP address -ipaddr.isValid = (string) -> - return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string) - -# Try to parse an address and throw an error if it is impossible -ipaddr.parse = (string) -> - if ipaddr.IPv6.isValid(string) - return ipaddr.IPv6.parse(string) - else if ipaddr.IPv4.isValid(string) - return ipaddr.IPv4.parse(string) - else - throw new Error "ipaddr: the address has neither IPv6 nor IPv4 format" - -ipaddr.parseCIDR = (string) -> - try - return ipaddr.IPv6.parseCIDR(string) - catch e - try - return ipaddr.IPv4.parseCIDR(string) - catch e - throw new Error "ipaddr: the address has neither IPv6 nor IPv4 CIDR format" - -# Parse an address and return plain IPv4 address if it is an IPv4-mapped address -ipaddr.process = (string) -> - addr = @parse(string) - if addr.kind() == 'ipv6' && addr.isIPv4MappedAddress() - return addr.toIPv4Address() - else - return addr diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/test/ipaddr.test.coffee b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/test/ipaddr.test.coffee deleted file mode 100644 index 17739e21..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/node_modules/ipaddr.js/test/ipaddr.test.coffee +++ /dev/null @@ -1,282 +0,0 @@ -ipaddr = require '../lib/ipaddr' - -module.exports = - 'should define main classes': (test) -> - test.ok(ipaddr.IPv4?, 'defines IPv4 class') - test.ok(ipaddr.IPv6?, 'defines IPv6 class') - test.done() - - 'can construct IPv4 from octets': (test) -> - test.doesNotThrow -> - new ipaddr.IPv4([192, 168, 1, 2]) - test.done() - - 'refuses to construct invalid IPv4': (test) -> - test.throws -> - new ipaddr.IPv4([300, 1, 2, 3]) - test.throws -> - new ipaddr.IPv4([8, 8, 8]) - test.done() - - 'converts IPv4 to string correctly': (test) -> - addr = new ipaddr.IPv4([192, 168, 1, 1]) - test.equal(addr.toString(), '192.168.1.1') - test.done() - - 'returns correct kind for IPv4': (test) -> - addr = new ipaddr.IPv4([1, 2, 3, 4]) - test.equal(addr.kind(), 'ipv4') - test.done() - - 'allows to access IPv4 octets': (test) -> - addr = new ipaddr.IPv4([42, 0, 0, 0]) - test.equal(addr.octets[0], 42) - test.done() - - 'checks IPv4 address format': (test) -> - test.equal(ipaddr.IPv4.isIPv4('192.168.007.0xa'), true) - test.equal(ipaddr.IPv4.isIPv4('1024.0.0.1'), true) - test.equal(ipaddr.IPv4.isIPv4('8.0xa.wtf.6'), false) - test.done() - - 'validates IPv4 addresses': (test) -> - test.equal(ipaddr.IPv4.isValid('192.168.007.0xa'), true) - test.equal(ipaddr.IPv4.isValid('1024.0.0.1'), false) - test.equal(ipaddr.IPv4.isValid('8.0xa.wtf.6'), false) - test.done() - - 'parses IPv4 in several weird formats': (test) -> - test.deepEqual(ipaddr.IPv4.parse('192.168.1.1').octets, [192, 168, 1, 1]) - test.deepEqual(ipaddr.IPv4.parse('0xc0.168.1.1').octets, [192, 168, 1, 1]) - test.deepEqual(ipaddr.IPv4.parse('192.0250.1.1').octets, [192, 168, 1, 1]) - test.deepEqual(ipaddr.IPv4.parse('0xc0a80101').octets, [192, 168, 1, 1]) - test.deepEqual(ipaddr.IPv4.parse('030052000401').octets, [192, 168, 1, 1]) - test.deepEqual(ipaddr.IPv4.parse('3232235777').octets, [192, 168, 1, 1]) - test.done() - - 'barfs at invalid IPv4': (test) -> - test.throws -> - ipaddr.IPv4.parse('10.0.0.wtf') - test.done() - - 'matches IPv4 CIDR correctly': (test) -> - addr = new ipaddr.IPv4([10, 5, 0, 1]) - test.equal(addr.match(ipaddr.IPv4.parse('0.0.0.0'), 0), true) - test.equal(addr.match(ipaddr.IPv4.parse('11.0.0.0'), 8), false) - test.equal(addr.match(ipaddr.IPv4.parse('10.0.0.0'), 8), true) - test.equal(addr.match(ipaddr.IPv4.parse('10.0.0.1'), 8), true) - test.equal(addr.match(ipaddr.IPv4.parse('10.0.0.10'), 8), true) - test.equal(addr.match(ipaddr.IPv4.parse('10.5.5.0'), 16), true) - test.equal(addr.match(ipaddr.IPv4.parse('10.4.5.0'), 16), false) - test.equal(addr.match(ipaddr.IPv4.parse('10.4.5.0'), 15), true) - test.equal(addr.match(ipaddr.IPv4.parse('10.5.0.2'), 32), false) - test.equal(addr.match(addr, 32), true) - test.done() - - 'parses IPv4 CIDR correctly': (test) -> - addr = new ipaddr.IPv4([10, 5, 0, 1]) - test.equal(addr.match(ipaddr.IPv4.parseCIDR('0.0.0.0/0')), true) - test.equal(addr.match(ipaddr.IPv4.parseCIDR('11.0.0.0/8')), false) - test.equal(addr.match(ipaddr.IPv4.parseCIDR('10.0.0.0/8')), true) - test.equal(addr.match(ipaddr.IPv4.parseCIDR('10.0.0.1/8')), true) - test.equal(addr.match(ipaddr.IPv4.parseCIDR('10.0.0.10/8')), true) - test.equal(addr.match(ipaddr.IPv4.parseCIDR('10.5.5.0/16')), true) - test.equal(addr.match(ipaddr.IPv4.parseCIDR('10.4.5.0/16')), false) - test.equal(addr.match(ipaddr.IPv4.parseCIDR('10.4.5.0/15')), true) - test.equal(addr.match(ipaddr.IPv4.parseCIDR('10.5.0.2/32')), false) - test.equal(addr.match(ipaddr.IPv4.parseCIDR('10.5.0.1/32')), true) - test.throws -> - ipaddr.IPv4.parseCIDR('10.5.0.1') - test.throws -> - ipaddr.IPv4.parseCIDR('0.0.0.0/-1') - test.throws -> - ipaddr.IPv4.parseCIDR('0.0.0.0/33') - test.done() - - 'detects reserved IPv4 networks': (test) -> - test.equal(ipaddr.IPv4.parse('0.0.0.0').range(), 'unspecified') - test.equal(ipaddr.IPv4.parse('0.1.0.0').range(), 'unspecified') - test.equal(ipaddr.IPv4.parse('10.1.0.1').range(), 'private') - test.equal(ipaddr.IPv4.parse('192.168.2.1').range(), 'private') - test.equal(ipaddr.IPv4.parse('224.100.0.1').range(), 'multicast') - test.equal(ipaddr.IPv4.parse('169.254.15.0').range(), 'linkLocal') - test.equal(ipaddr.IPv4.parse('127.1.1.1').range(), 'loopback') - test.equal(ipaddr.IPv4.parse('255.255.255.255').range(), 'broadcast') - test.equal(ipaddr.IPv4.parse('240.1.2.3').range(), 'reserved') - test.equal(ipaddr.IPv4.parse('8.8.8.8').range(), 'unicast') - test.done() - - 'can construct IPv6 from parts': (test) -> - test.doesNotThrow -> - new ipaddr.IPv6([0x2001, 0xdb8, 0xf53a, 0, 0, 0, 0, 1]) - test.done() - - 'refuses to construct invalid IPv6': (test) -> - test.throws -> - new ipaddr.IPv6([0xfffff, 0, 0, 0, 0, 0, 0, 1]) - test.throws -> - new ipaddr.IPv6([0xfffff, 0, 0, 0, 0, 0, 1]) - test.done() - - 'converts IPv6 to string correctly': (test) -> - addr = new ipaddr.IPv6([0x2001, 0xdb8, 0xf53a, 0, 0, 0, 0, 1]) - test.equal(addr.toNormalizedString(), '2001:db8:f53a:0:0:0:0:1') - test.equal(addr.toString(), '2001:db8:f53a::1') - test.equal(new ipaddr.IPv6([0, 0, 0, 0, 0, 0, 0, 1]).toString(), '::1') - test.equal(new ipaddr.IPv6([0x2001, 0xdb8, 0, 0, 0, 0, 0, 0]).toString(), '2001:db8::') - test.done() - - 'returns correct kind for IPv6': (test) -> - addr = new ipaddr.IPv6([0x2001, 0xdb8, 0xf53a, 0, 0, 0, 0, 1]) - test.equal(addr.kind(), 'ipv6') - test.done() - - 'allows to access IPv6 address parts': (test) -> - addr = new ipaddr.IPv6([0x2001, 0xdb8, 0xf53a, 0, 0, 42, 0, 1]) - test.equal(addr.parts[5], 42) - test.done() - - 'checks IPv6 address format': (test) -> - test.equal(ipaddr.IPv6.isIPv6('2001:db8:F53A::1'), true) - test.equal(ipaddr.IPv6.isIPv6('200001::1'), true) - test.equal(ipaddr.IPv6.isIPv6('::ffff:192.168.1.1'), true) - test.equal(ipaddr.IPv6.isIPv6('::ffff:300.168.1.1'), true) - test.equal(ipaddr.IPv6.isIPv6('::ffff:300.168.1.1:0'), false) - test.equal(ipaddr.IPv6.isIPv6('fe80::wtf'), false) - test.done() - - 'validates IPv6 addresses': (test) -> - test.equal(ipaddr.IPv6.isValid('2001:db8:F53A::1'), true) - test.equal(ipaddr.IPv6.isValid('200001::1'), false) - test.equal(ipaddr.IPv6.isValid('::ffff:192.168.1.1'), true) - test.equal(ipaddr.IPv6.isValid('::ffff:300.168.1.1'), false) - test.equal(ipaddr.IPv6.isValid('::ffff:300.168.1.1:0'), false) - test.equal(ipaddr.IPv6.isValid('2001:db8::F53A::1'), false) - test.equal(ipaddr.IPv6.isValid('fe80::wtf'), false) - test.equal(ipaddr.IPv6.isValid('2002::2:'), false) - test.equal(ipaddr.IPv6.isValid(undefined), false) - test.done() - - 'parses IPv6 in different formats': (test) -> - test.deepEqual(ipaddr.IPv6.parse('2001:db8:F53A:0:0:0:0:1').parts, [0x2001, 0xdb8, 0xf53a, 0, 0, 0, 0, 1]) - test.deepEqual(ipaddr.IPv6.parse('fe80::10').parts, [0xfe80, 0, 0, 0, 0, 0, 0, 0x10]) - test.deepEqual(ipaddr.IPv6.parse('2001:db8:F53A::').parts, [0x2001, 0xdb8, 0xf53a, 0, 0, 0, 0, 0]) - test.deepEqual(ipaddr.IPv6.parse('::1').parts, [0, 0, 0, 0, 0, 0, 0, 1]) - test.deepEqual(ipaddr.IPv6.parse('::').parts, [0, 0, 0, 0, 0, 0, 0, 0]) - test.done() - - 'barfs at invalid IPv6': (test) -> - test.throws -> - ipaddr.IPv6.parse('fe80::0::1') - test.done() - - 'matches IPv6 CIDR correctly': (test) -> - addr = ipaddr.IPv6.parse('2001:db8:f53a::1') - test.equal(addr.match(ipaddr.IPv6.parse('::'), 0), true) - test.equal(addr.match(ipaddr.IPv6.parse('2001:db8:f53a::1:1'), 64), true) - test.equal(addr.match(ipaddr.IPv6.parse('2001:db8:f53b::1:1'), 48), false) - test.equal(addr.match(ipaddr.IPv6.parse('2001:db8:f531::1:1'), 44), true) - test.equal(addr.match(ipaddr.IPv6.parse('2001:db8:f500::1'), 40), true) - test.equal(addr.match(ipaddr.IPv6.parse('2001:db9:f500::1'), 40), false) - test.equal(addr.match(addr, 128), true) - test.done() - - 'parses IPv6 CIDR correctly': (test) -> - addr = ipaddr.IPv6.parse('2001:db8:f53a::1') - test.equal(addr.match(ipaddr.IPv6.parseCIDR('::/0')), true) - test.equal(addr.match(ipaddr.IPv6.parseCIDR('2001:db8:f53a::1:1/64')), true) - test.equal(addr.match(ipaddr.IPv6.parseCIDR('2001:db8:f53b::1:1/48')), false) - test.equal(addr.match(ipaddr.IPv6.parseCIDR('2001:db8:f531::1:1/44')), true) - test.equal(addr.match(ipaddr.IPv6.parseCIDR('2001:db8:f500::1/40')), true) - test.equal(addr.match(ipaddr.IPv6.parseCIDR('2001:db9:f500::1/40')), false) - test.equal(addr.match(ipaddr.IPv6.parseCIDR('2001:db8:f53a::1/128')), true) - test.throws -> - ipaddr.IPv6.parseCIDR('2001:db8:f53a::1') - test.throws -> - ipaddr.IPv6.parseCIDR('2001:db8:f53a::1/-1') - test.throws -> - ipaddr.IPv6.parseCIDR('2001:db8:f53a::1/129') - test.done() - - 'converts between IPv4-mapped IPv6 addresses and IPv4 addresses': (test) -> - addr = ipaddr.IPv4.parse('77.88.21.11') - mapped = addr.toIPv4MappedAddress() - test.deepEqual(mapped.parts, [0, 0, 0, 0, 0, 0xffff, 0x4d58, 0x150b]) - test.deepEqual(mapped.toIPv4Address().octets, addr.octets) - test.done() - - 'refuses to convert non-IPv4-mapped IPv6 address to IPv4 address': (test) -> - test.throws -> - ipaddr.IPv6.parse('2001:db8::1').toIPv4Address() - test.done() - - 'detects reserved IPv6 networks': (test) -> - test.equal(ipaddr.IPv6.parse('::').range(), 'unspecified') - test.equal(ipaddr.IPv6.parse('fe80::1234:5678:abcd:0123').range(), 'linkLocal') - test.equal(ipaddr.IPv6.parse('ff00::1234').range(), 'multicast') - test.equal(ipaddr.IPv6.parse('::1').range(), 'loopback') - test.equal(ipaddr.IPv6.parse('fc00::').range(), 'uniqueLocal') - test.equal(ipaddr.IPv6.parse('::ffff:192.168.1.10').range(), 'ipv4Mapped') - test.equal(ipaddr.IPv6.parse('::ffff:0:192.168.1.10').range(), 'rfc6145') - test.equal(ipaddr.IPv6.parse('64:ff9b::1234').range(), 'rfc6052') - test.equal(ipaddr.IPv6.parse('2002:1f63:45e8::1').range(), '6to4') - test.equal(ipaddr.IPv6.parse('2001::4242').range(), 'teredo') - test.equal(ipaddr.IPv6.parse('2001:db8::3210').range(), 'reserved') - test.equal(ipaddr.IPv6.parse('2001:470:8:66::1').range(), 'unicast') - test.done() - - 'is able to determine IP address type': (test) -> - test.equal(ipaddr.parse('8.8.8.8').kind(), 'ipv4') - test.equal(ipaddr.parse('2001:db8:3312::1').kind(), 'ipv6') - test.done() - - 'throws an error if tried to parse an invalid address': (test) -> - test.throws -> - ipaddr.parse('::some.nonsense') - test.done() - - 'correctly processes IPv4-mapped addresses': (test) -> - test.equal(ipaddr.process('8.8.8.8').kind(), 'ipv4') - test.equal(ipaddr.process('2001:db8:3312::1').kind(), 'ipv6') - test.equal(ipaddr.process('::ffff:192.168.1.1').kind(), 'ipv4') - test.done() - - 'correctly converts IPv6 and IPv4 addresses to byte arrays': (test) -> - test.deepEqual(ipaddr.parse('1.2.3.4').toByteArray(), - [0x1, 0x2, 0x3, 0x4]); - # Fuck yeah. The first byte of Google's IPv6 address is 42. 42! - test.deepEqual(ipaddr.parse('2a00:1450:8007::68').toByteArray(), - [42, 0x00, 0x14, 0x50, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68 ]) - test.done() - - 'correctly parses 1 as an IPv4 address': (test) -> - test.equal(ipaddr.IPv6.isValid('1'), false) - test.equal(ipaddr.IPv4.isValid('1'), true) - test.deepEqual(new ipaddr.IPv4([0, 0, 0, 1]), ipaddr.parse('1')) - test.done() - - 'correctly detects IPv4 and IPv6 CIDR addresses': (test) -> - test.deepEqual([ipaddr.IPv6.parse('fc00::'), 64], - ipaddr.parseCIDR('fc00::/64')) - test.deepEqual([ipaddr.IPv4.parse('1.2.3.4'), 5], - ipaddr.parseCIDR('1.2.3.4/5')) - test.done() - - 'does not consider a very large or very small number a valid IP address': (test) -> - test.equal(ipaddr.isValid('4999999999'), false) - test.equal(ipaddr.isValid('-1'), false) - test.done() - - 'does not hang on ::8:8:8:8:8:8:8:8:8': (test) -> - test.equal(ipaddr.IPv6.isValid('::8:8:8:8:8:8:8:8:8'), false) - test.done() - - 'subnetMatch does not fail on empty range': (test) -> - ipaddr.subnetMatch(new ipaddr.IPv4([1,2,3,4]), {}, false) - ipaddr.subnetMatch(new ipaddr.IPv4([1,2,3,4]), {subnet: []}, false) - test.done() - - 'subnetMatch returns default subnet on empty range': (test) -> - test.equal(ipaddr.subnetMatch(new ipaddr.IPv4([1,2,3,4]), {}, false), false) - test.equal(ipaddr.subnetMatch(new ipaddr.IPv4([1,2,3,4]), {subnet: []}, false), false) - test.done() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/package.json deleted file mode 100644 index 9964f0a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/proxy-addr/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "name": "proxy-addr", - "description": "Determine address of proxied request", - "version": "1.0.10", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "keywords": [ - "ip", - "proxy", - "x-forwarded-for" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/proxy-addr.git" - }, - "dependencies": { - "forwarded": "~0.1.0", - "ipaddr.js": "1.0.5" - }, - "devDependencies": { - "benchmark": "1.0.0", - "beautify-benchmark": "0.2.4", - "istanbul": "0.4.1", - "mocha": "~1.21.5" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "0cdb6444100a7930285ed2555d0c3c687690a7a5", - "bugs": { - "url": "https://github.com/jshttp/proxy-addr/issues" - }, - "homepage": "https://github.com/jshttp/proxy-addr", - "_id": "proxy-addr@1.0.10", - "_shasum": "0d40a82f801fc355567d2ecb65efe3f077f121c5", - "_from": "proxy-addr@>=1.0.10 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "mscdex", - "email": "mscdex@mscdex.net" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - } - ], - "dist": { - "shasum": "0d40a82f801fc355567d2ecb65efe3f077f121c5", - "tarball": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/.eslintignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/.eslintignore deleted file mode 100644 index 1521c8b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -dist diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/.npmignore deleted file mode 100644 index 2abba8d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/.npmignore +++ /dev/null @@ -1,19 +0,0 @@ -.idea -*.iml -npm-debug.log -dump.rdb -node_modules -results.tap -results.xml -npm-shrinkwrap.json -config.json -.DS_Store -*/.DS_Store -*/*/.DS_Store -._* -*/._* -*/*/._* -coverage.* -lib-cov -complexity.md -dist diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/.travis.yml deleted file mode 100644 index f5021788..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: node_js - -node_js: - - 0.10 - - 0.12 - - iojs diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/CHANGELOG.md deleted file mode 100644 index 1fadc78e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/CHANGELOG.md +++ /dev/null @@ -1,88 +0,0 @@ - -## [**3.1.0**](https://github.com/hapijs/qs/issues?milestone=24&state=open) -- [**#89**](https://github.com/hapijs/qs/issues/89) Add option to disable "Transform dot notation to bracket notation" - -## [**3.0.0**](https://github.com/hapijs/qs/issues?milestone=23&state=closed) -- [**#77**](https://github.com/hapijs/qs/issues/77) Perf boost -- [**#60**](https://github.com/hapijs/qs/issues/60) Add explicit option to disable array parsing -- [**#80**](https://github.com/hapijs/qs/issues/80) qs.parse silently drops properties -- [**#74**](https://github.com/hapijs/qs/issues/74) Bad parse when turning array into object -- [**#81**](https://github.com/hapijs/qs/issues/81) Add a `filter` option -- [**#68**](https://github.com/hapijs/qs/issues/68) Fixed issue with recursion and passing strings into objects. -- [**#66**](https://github.com/hapijs/qs/issues/66) Add mixed array and object dot notation support Closes: #47 -- [**#76**](https://github.com/hapijs/qs/issues/76) RFC 3986 -- [**#85**](https://github.com/hapijs/qs/issues/85) No equal sign -- [**#84**](https://github.com/hapijs/qs/issues/84) update license attribute - -## [**2.4.1**](https://github.com/hapijs/qs/issues?milestone=20&state=closed) -- [**#73**](https://github.com/hapijs/qs/issues/73) Property 'hasOwnProperty' of object # is not a function - -## [**2.4.0**](https://github.com/hapijs/qs/issues?milestone=19&state=closed) -- [**#70**](https://github.com/hapijs/qs/issues/70) Add arrayFormat option - -## [**2.3.3**](https://github.com/hapijs/qs/issues?milestone=18&state=closed) -- [**#59**](https://github.com/hapijs/qs/issues/59) make sure array indexes are >= 0, closes #57 -- [**#58**](https://github.com/hapijs/qs/issues/58) make qs usable for browser loader - -## [**2.3.2**](https://github.com/hapijs/qs/issues?milestone=17&state=closed) -- [**#55**](https://github.com/hapijs/qs/issues/55) allow merging a string into an object - -## [**2.3.1**](https://github.com/hapijs/qs/issues?milestone=16&state=closed) -- [**#52**](https://github.com/hapijs/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError". - -## [**2.3.0**](https://github.com/hapijs/qs/issues?milestone=15&state=closed) -- [**#50**](https://github.com/hapijs/qs/issues/50) add option to omit array indices, closes #46 - -## [**2.2.5**](https://github.com/hapijs/qs/issues?milestone=14&state=closed) -- [**#39**](https://github.com/hapijs/qs/issues/39) Is there an alternative to Buffer.isBuffer? -- [**#49**](https://github.com/hapijs/qs/issues/49) refactor utils.merge, fixes #45 -- [**#41**](https://github.com/hapijs/qs/issues/41) avoid browserifying Buffer, for #39 - -## [**2.2.4**](https://github.com/hapijs/qs/issues?milestone=13&state=closed) -- [**#38**](https://github.com/hapijs/qs/issues/38) how to handle object keys beginning with a number - -## [**2.2.3**](https://github.com/hapijs/qs/issues?milestone=12&state=closed) -- [**#37**](https://github.com/hapijs/qs/issues/37) parser discards first empty value in array -- [**#36**](https://github.com/hapijs/qs/issues/36) Update to lab 4.x - -## [**2.2.2**](https://github.com/hapijs/qs/issues?milestone=11&state=closed) -- [**#33**](https://github.com/hapijs/qs/issues/33) Error when plain object in a value -- [**#34**](https://github.com/hapijs/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty -- [**#24**](https://github.com/hapijs/qs/issues/24) Changelog? Semver? - -## [**2.2.1**](https://github.com/hapijs/qs/issues?milestone=10&state=closed) -- [**#32**](https://github.com/hapijs/qs/issues/32) account for circular references properly, closes #31 -- [**#31**](https://github.com/hapijs/qs/issues/31) qs.parse stackoverflow on circular objects - -## [**2.2.0**](https://github.com/hapijs/qs/issues?milestone=9&state=closed) -- [**#26**](https://github.com/hapijs/qs/issues/26) Don't use Buffer global if it's not present -- [**#30**](https://github.com/hapijs/qs/issues/30) Bug when merging non-object values into arrays -- [**#29**](https://github.com/hapijs/qs/issues/29) Don't call Utils.clone at the top of Utils.merge -- [**#23**](https://github.com/hapijs/qs/issues/23) Ability to not limit parameters? - -## [**2.1.0**](https://github.com/hapijs/qs/issues?milestone=8&state=closed) -- [**#22**](https://github.com/hapijs/qs/issues/22) Enable using a RegExp as delimiter - -## [**2.0.0**](https://github.com/hapijs/qs/issues?milestone=7&state=closed) -- [**#18**](https://github.com/hapijs/qs/issues/18) Why is there arrayLimit? -- [**#20**](https://github.com/hapijs/qs/issues/20) Configurable parametersLimit -- [**#21**](https://github.com/hapijs/qs/issues/21) make all limits optional, for #18, for #20 - -## [**1.2.2**](https://github.com/hapijs/qs/issues?milestone=6&state=closed) -- [**#19**](https://github.com/hapijs/qs/issues/19) Don't overwrite null values - -## [**1.2.1**](https://github.com/hapijs/qs/issues?milestone=5&state=closed) -- [**#16**](https://github.com/hapijs/qs/issues/16) ignore non-string delimiters -- [**#15**](https://github.com/hapijs/qs/issues/15) Close code block - -## [**1.2.0**](https://github.com/hapijs/qs/issues?milestone=4&state=closed) -- [**#12**](https://github.com/hapijs/qs/issues/12) Add optional delim argument -- [**#13**](https://github.com/hapijs/qs/issues/13) fix #11: flattened keys in array are now correctly parsed - -## [**1.1.0**](https://github.com/hapijs/qs/issues?milestone=3&state=closed) -- [**#7**](https://github.com/hapijs/qs/issues/7) Empty values of a POST array disappear after being submitted -- [**#9**](https://github.com/hapijs/qs/issues/9) Should not omit equals signs (=) when value is null -- [**#6**](https://github.com/hapijs/qs/issues/6) Minor grammar fix in README - -## [**1.0.2**](https://github.com/hapijs/qs/issues?milestone=2&state=closed) -- [**#5**](https://github.com/hapijs/qs/issues/5) array holes incorrectly copied into object on large index diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/CONTRIBUTING.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/CONTRIBUTING.md deleted file mode 100644 index 89283615..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/CONTRIBUTING.md +++ /dev/null @@ -1 +0,0 @@ -Please view our [hapijs contributing guide](https://github.com/hapijs/hapi/blob/master/CONTRIBUTING.md). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/LICENSE deleted file mode 100644 index d4569487..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2014 Nathan LaFreniere and other 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. - * The names of any contributors may not 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 HOLDERS AND 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. - - * * * - -The complete list of contributors can be found at: https://github.com/hapijs/qs/graphs/contributors diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/README.md deleted file mode 100644 index 48a0de97..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/README.md +++ /dev/null @@ -1,317 +0,0 @@ -# qs - -A querystring parsing and stringifying library with some added security. - -[![Build Status](https://secure.travis-ci.org/hapijs/qs.svg)](http://travis-ci.org/hapijs/qs) - -Lead Maintainer: [Nathan LaFreniere](https://github.com/nlf) - -The **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring). - -## Usage - -```javascript -var Qs = require('qs'); - -var obj = Qs.parse('a=c'); // { a: 'c' } -var str = Qs.stringify(obj); // 'a=c' -``` - -### Parsing Objects - -```javascript -Qs.parse(string, [options]); -``` - -**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`, or prefixing the sub-key with a dot `.`. -For example, the string `'foo[bar]=baz'` converts to: - -```javascript -{ - foo: { - bar: 'baz' - } -} -``` - -When using the `plainObjects` option the parsed value is returned as a plain object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like: - -```javascript -Qs.parse('a.hasOwnProperty=b', { plainObjects: true }); -// { a: { hasOwnProperty: 'b' } } -``` - -By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option. - -```javascript -Qs.parse('a.hasOwnProperty=b', { allowPrototypes: true }); -// { a: { hasOwnProperty: 'b' } } -``` - -URI encoded strings work too: - -```javascript -Qs.parse('a%5Bb%5D=c'); -// { a: { b: 'c' } } -``` - -You can also nest your objects, like `'foo[bar][baz]=foobarbaz'`: - -```javascript -{ - foo: { - bar: { - baz: 'foobarbaz' - } - } -} -``` - -By default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like -`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be: - -```javascript -{ - a: { - b: { - c: { - d: { - e: { - f: { - '[g][h][i]': 'j' - } - } - } - } - } - } -} -``` - -This depth can be overridden by passing a `depth` option to `Qs.parse(string, [options])`: - -```javascript -Qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 }); -// { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } } -``` - -The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number. - -For similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option: - -```javascript -Qs.parse('a=b&c=d', { parameterLimit: 1 }); -// { a: 'b' } -``` - -An optional delimiter can also be passed: - -```javascript -Qs.parse('a=b;c=d', { delimiter: ';' }); -// { a: 'b', c: 'd' } -``` - -Delimiters can be a regular expression too: - -```javascript -Qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ }); -// { a: 'b', c: 'd', e: 'f' } -``` - -Option `allowDots` can be used to disable dot notation: - -```javascript -Qs.parse('a.b=c', { allowDots: false }); -// { 'a.b': 'c' } } -``` - -### Parsing Arrays - -**qs** can also parse arrays using a similar `[]` notation: - -```javascript -Qs.parse('a[]=b&a[]=c'); -// { a: ['b', 'c'] } -``` - -You may specify an index as well: - -```javascript -Qs.parse('a[1]=c&a[0]=b'); -// { a: ['b', 'c'] } -``` - -Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number -to create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving -their order: - -```javascript -Qs.parse('a[1]=b&a[15]=c'); -// { a: ['b', 'c'] } -``` - -Note that an empty string is also a value, and will be preserved: - -```javascript -Qs.parse('a[]=&a[]=b'); -// { a: ['', 'b'] } -Qs.parse('a[0]=b&a[1]=&a[2]=c'); -// { a: ['b', '', 'c'] } -``` - -**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will -instead be converted to an object with the index as the key: - -```javascript -Qs.parse('a[100]=b'); -// { a: { '100': 'b' } } -``` - -This limit can be overridden by passing an `arrayLimit` option: - -```javascript -Qs.parse('a[1]=b', { arrayLimit: 0 }); -// { a: { '1': 'b' } } -``` - -To disable array parsing entirely, set `parseArrays` to `false`. - -```javascript -Qs.parse('a[]=b', { parseArrays: false }); -// { a: { '0': 'b' } } -``` - -If you mix notations, **qs** will merge the two items into an object: - -```javascript -Qs.parse('a[0]=b&a[b]=c'); -// { a: { '0': 'b', b: 'c' } } -``` - -You can also create arrays of objects: - -```javascript -Qs.parse('a[][b]=c'); -// { a: [{ b: 'c' }] } -``` - -### Stringifying - -```javascript -Qs.stringify(object, [options]); -``` - -When stringifying, **qs** always URI encodes output. Objects are stringified as you would expect: - -```javascript -Qs.stringify({ a: 'b' }); -// 'a=b' -Qs.stringify({ a: { b: 'c' } }); -// 'a%5Bb%5D=c' -``` - -Examples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage. - -When arrays are stringified, by default they are given explicit indices: - -```javascript -Qs.stringify({ a: ['b', 'c', 'd'] }); -// 'a[0]=b&a[1]=c&a[2]=d' -``` - -You may override this by setting the `indices` option to `false`: - -```javascript -Qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); -// 'a=b&a=c&a=d' -``` - -You may use the `arrayFormat` option to specify the format of the output array - -```javascript -Qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) -// 'a[0]=b&a[1]=c' -Qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) -// 'a[]=b&a[]=c' -Qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) -// 'a=b&a=c' -``` - -Empty strings and null values will omit the value, but the equals sign (=) remains in place: - -```javascript -Qs.stringify({ a: '' }); -// 'a=' -``` - -Properties that are set to `undefined` will be omitted entirely: - -```javascript -Qs.stringify({ a: null, b: undefined }); -// 'a=' -``` - -The delimiter may be overridden with stringify as well: - -```javascript -Qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }); -// 'a=b;c=d' -``` - -Finally, you can use the `filter` option to restrict which keys will be included in the stringified output. -If you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you -pass an array, it will be used to select properties and array indices for stringification: - -```javascript -function filterFunc(prefix, value) { - if (prefix == 'b') { - // Return an `undefined` value to omit a property. - return; - } - if (prefix == 'e[f]') { - return value.getTime(); - } - if (prefix == 'e[g][0]') { - return value * 2; - } - return value; -} -Qs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc }) -// 'a=b&c=d&e[f]=123&e[g][0]=4' -Qs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] }) -// 'a=b&e=f' -Qs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] }) -// 'a[0]=b&a[2]=d' -``` - -### Handling of `null` values - -By default, `null` values are treated like empty strings: - -```javascript -Qs.stringify({ a: null, b: '' }); -// 'a=&b=' -``` - -Parsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings. - -```javascript -Qs.parse('a&b=') -// { a: '', b: '' } -``` - -To distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null` -values have no `=` sign: - -```javascript -Qs.stringify({ a: null, b: '' }, { strictNullHandling: true }); -// 'a&b=' -``` - -To parse values without `=` back to `null` use the `strictNullHandling` flag: - -```javascript -Qs.parse('a&b=', { strictNullHandling: true }); -// { a: null, b: '' } - -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/bower.json deleted file mode 100644 index ffd0641d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/bower.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "qs", - "main": "dist/qs.js", - "version": "3.0.0", - "homepage": "https://github.com/hapijs/qs", - "authors": [ - "Nathan LaFreniere " - ], - "description": "A querystring parser that supports nesting and arrays, with a depth limit", - "keywords": [ - "querystring", - "qs" - ], - "license": "BSD-3-Clause", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/index.js deleted file mode 100644 index 0e094933..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/index.js +++ /dev/null @@ -1,15 +0,0 @@ -// Load modules - -var Stringify = require('./stringify'); -var Parse = require('./parse'); - - -// Declare internals - -var internals = {}; - - -module.exports = { - stringify: Stringify, - parse: Parse -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/parse.js deleted file mode 100644 index e7c56c5c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/parse.js +++ /dev/null @@ -1,186 +0,0 @@ -// Load modules - -var Utils = require('./utils'); - - -// Declare internals - -var internals = { - delimiter: '&', - depth: 5, - arrayLimit: 20, - parameterLimit: 1000, - strictNullHandling: false, - plainObjects: false, - allowPrototypes: false -}; - - -internals.parseValues = function (str, options) { - - var obj = {}; - var parts = str.split(options.delimiter, options.parameterLimit === Infinity ? undefined : options.parameterLimit); - - for (var i = 0, il = parts.length; i < il; ++i) { - var part = parts[i]; - var pos = part.indexOf(']=') === -1 ? part.indexOf('=') : part.indexOf(']=') + 1; - - if (pos === -1) { - obj[Utils.decode(part)] = ''; - - if (options.strictNullHandling) { - obj[Utils.decode(part)] = null; - } - } - else { - var key = Utils.decode(part.slice(0, pos)); - var val = Utils.decode(part.slice(pos + 1)); - - if (!Object.prototype.hasOwnProperty.call(obj, key)) { - obj[key] = val; - } - else { - obj[key] = [].concat(obj[key]).concat(val); - } - } - } - - return obj; -}; - - -internals.parseObject = function (chain, val, options) { - - if (!chain.length) { - return val; - } - - var root = chain.shift(); - - var obj; - if (root === '[]') { - obj = []; - obj = obj.concat(internals.parseObject(chain, val, options)); - } - else { - obj = options.plainObjects ? Object.create(null) : {}; - var cleanRoot = root[0] === '[' && root[root.length - 1] === ']' ? root.slice(1, root.length - 1) : root; - var index = parseInt(cleanRoot, 10); - var indexString = '' + index; - if (!isNaN(index) && - root !== cleanRoot && - indexString === cleanRoot && - index >= 0 && - (options.parseArrays && - index <= options.arrayLimit)) { - - obj = []; - obj[index] = internals.parseObject(chain, val, options); - } - else { - obj[cleanRoot] = internals.parseObject(chain, val, options); - } - } - - return obj; -}; - - -internals.parseKeys = function (key, val, options) { - - if (!key) { - return; - } - - // Transform dot notation to bracket notation - - if (options.allowDots) { - key = key.replace(/\.([^\.\[]+)/g, '[$1]'); - } - - // The regex chunks - - var parent = /^([^\[\]]*)/; - var child = /(\[[^\[\]]*\])/g; - - // Get the parent - - var segment = parent.exec(key); - - // Stash the parent if it exists - - var keys = []; - if (segment[1]) { - // If we aren't using plain objects, optionally prefix keys - // that would overwrite object prototype properties - if (!options.plainObjects && - Object.prototype.hasOwnProperty(segment[1])) { - - if (!options.allowPrototypes) { - return; - } - } - - keys.push(segment[1]); - } - - // Loop through children appending to the array until we hit depth - - var i = 0; - while ((segment = child.exec(key)) !== null && i < options.depth) { - - ++i; - if (!options.plainObjects && - Object.prototype.hasOwnProperty(segment[1].replace(/\[|\]/g, ''))) { - - if (!options.allowPrototypes) { - continue; - } - } - keys.push(segment[1]); - } - - // If there's a remainder, just add whatever is left - - if (segment) { - keys.push('[' + key.slice(segment.index) + ']'); - } - - return internals.parseObject(keys, val, options); -}; - - -module.exports = function (str, options) { - - options = options || {}; - options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : internals.delimiter; - options.depth = typeof options.depth === 'number' ? options.depth : internals.depth; - options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : internals.arrayLimit; - options.parseArrays = options.parseArrays !== false; - options.allowDots = options.allowDots !== false; - options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : internals.plainObjects; - options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : internals.allowPrototypes; - options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : internals.parameterLimit; - options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : internals.strictNullHandling; - - if (str === '' || - str === null || - typeof str === 'undefined') { - - return options.plainObjects ? Object.create(null) : {}; - } - - var tempObj = typeof str === 'string' ? internals.parseValues(str, options) : str; - var obj = options.plainObjects ? Object.create(null) : {}; - - // Iterate over the keys and setup the new object - - var keys = Object.keys(tempObj); - for (var i = 0, il = keys.length; i < il; ++i) { - var key = keys[i]; - var newObj = internals.parseKeys(key, tempObj[key], options); - obj = Utils.merge(obj, newObj, options); - } - - return Utils.compact(obj); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/stringify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/stringify.js deleted file mode 100644 index 7414284c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/stringify.js +++ /dev/null @@ -1,121 +0,0 @@ -// Load modules - -var Utils = require('./utils'); - - -// Declare internals - -var internals = { - delimiter: '&', - arrayPrefixGenerators: { - brackets: function (prefix, key) { - - return prefix + '[]'; - }, - indices: function (prefix, key) { - - return prefix + '[' + key + ']'; - }, - repeat: function (prefix, key) { - - return prefix; - } - }, - strictNullHandling: false -}; - - -internals.stringify = function (obj, prefix, generateArrayPrefix, strictNullHandling, filter) { - - if (typeof filter === 'function') { - obj = filter(prefix, obj); - } - else if (Utils.isBuffer(obj)) { - obj = obj.toString(); - } - else if (obj instanceof Date) { - obj = obj.toISOString(); - } - else if (obj === null) { - if (strictNullHandling) { - return Utils.encode(prefix); - } - - obj = ''; - } - - if (typeof obj === 'string' || - typeof obj === 'number' || - typeof obj === 'boolean') { - - return [Utils.encode(prefix) + '=' + Utils.encode(obj)]; - } - - var values = []; - - if (typeof obj === 'undefined') { - return values; - } - - var objKeys = Array.isArray(filter) ? filter : Object.keys(obj); - for (var i = 0, il = objKeys.length; i < il; ++i) { - var key = objKeys[i]; - - if (Array.isArray(obj)) { - values = values.concat(internals.stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, filter)); - } - else { - values = values.concat(internals.stringify(obj[key], prefix + '[' + key + ']', generateArrayPrefix, strictNullHandling, filter)); - } - } - - return values; -}; - - -module.exports = function (obj, options) { - - options = options || {}; - var delimiter = typeof options.delimiter === 'undefined' ? internals.delimiter : options.delimiter; - var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : internals.strictNullHandling; - var objKeys; - var filter; - if (typeof options.filter === 'function') { - filter = options.filter; - obj = filter('', obj); - } - else if (Array.isArray(options.filter)) { - objKeys = filter = options.filter; - } - - var keys = []; - - if (typeof obj !== 'object' || - obj === null) { - - return ''; - } - - var arrayFormat; - if (options.arrayFormat in internals.arrayPrefixGenerators) { - arrayFormat = options.arrayFormat; - } - else if ('indices' in options) { - arrayFormat = options.indices ? 'indices' : 'repeat'; - } - else { - arrayFormat = 'indices'; - } - - var generateArrayPrefix = internals.arrayPrefixGenerators[arrayFormat]; - - if (!objKeys) { - objKeys = Object.keys(obj); - } - for (var i = 0, il = objKeys.length; i < il; ++i) { - var key = objKeys[i]; - keys = keys.concat(internals.stringify(obj[key], key, generateArrayPrefix, strictNullHandling, filter)); - } - - return keys.join(delimiter); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/utils.js deleted file mode 100644 index 88f31473..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/lib/utils.js +++ /dev/null @@ -1,190 +0,0 @@ -// Load modules - - -// Declare internals - -var internals = {}; -internals.hexTable = new Array(256); -for (var h = 0; h < 256; ++h) { - internals.hexTable[h] = '%' + ((h < 16 ? '0' : '') + h.toString(16)).toUpperCase(); -} - - -exports.arrayToObject = function (source, options) { - - var obj = options.plainObjects ? Object.create(null) : {}; - for (var i = 0, il = source.length; i < il; ++i) { - if (typeof source[i] !== 'undefined') { - - obj[i] = source[i]; - } - } - - return obj; -}; - - -exports.merge = function (target, source, options) { - - if (!source) { - return target; - } - - if (typeof source !== 'object') { - if (Array.isArray(target)) { - target.push(source); - } - else if (typeof target === 'object') { - target[source] = true; - } - else { - target = [target, source]; - } - - return target; - } - - if (typeof target !== 'object') { - target = [target].concat(source); - return target; - } - - if (Array.isArray(target) && - !Array.isArray(source)) { - - target = exports.arrayToObject(target, options); - } - - var keys = Object.keys(source); - for (var k = 0, kl = keys.length; k < kl; ++k) { - var key = keys[k]; - var value = source[key]; - - if (!Object.prototype.hasOwnProperty.call(target, key)) { - target[key] = value; - } - else { - target[key] = exports.merge(target[key], value, options); - } - } - - return target; -}; - - -exports.decode = function (str) { - - try { - return decodeURIComponent(str.replace(/\+/g, ' ')); - } catch (e) { - return str; - } -}; - -exports.encode = function (str) { - - // This code was originally written by Brian White (mscdex) for the io.js core querystring library. - // It has been adapted here for stricter adherence to RFC 3986 - if (str.length === 0) { - return str; - } - - if (typeof str !== 'string') { - str = '' + str; - } - - var out = ''; - for (var i = 0, il = str.length; i < il; ++i) { - var c = str.charCodeAt(i); - - if (c === 0x2D || // - - c === 0x2E || // . - c === 0x5F || // _ - c === 0x7E || // ~ - (c >= 0x30 && c <= 0x39) || // 0-9 - (c >= 0x41 && c <= 0x5A) || // a-z - (c >= 0x61 && c <= 0x7A)) { // A-Z - - out += str[i]; - continue; - } - - if (c < 0x80) { - out += internals.hexTable[c]; - continue; - } - - if (c < 0x800) { - out += internals.hexTable[0xC0 | (c >> 6)] + internals.hexTable[0x80 | (c & 0x3F)]; - continue; - } - - if (c < 0xD800 || c >= 0xE000) { - out += internals.hexTable[0xE0 | (c >> 12)] + internals.hexTable[0x80 | ((c >> 6) & 0x3F)] + internals.hexTable[0x80 | (c & 0x3F)]; - continue; - } - - ++i; - c = 0x10000 + (((c & 0x3FF) << 10) | (str.charCodeAt(i) & 0x3FF)); - out += internals.hexTable[0xF0 | (c >> 18)] + internals.hexTable[0x80 | ((c >> 12) & 0x3F)] + internals.hexTable[0x80 | ((c >> 6) & 0x3F)] + internals.hexTable[0x80 | (c & 0x3F)]; - } - - return out; -}; - -exports.compact = function (obj, refs) { - - if (typeof obj !== 'object' || - obj === null) { - - return obj; - } - - refs = refs || []; - var lookup = refs.indexOf(obj); - if (lookup !== -1) { - return refs[lookup]; - } - - refs.push(obj); - - if (Array.isArray(obj)) { - var compacted = []; - - for (var i = 0, il = obj.length; i < il; ++i) { - if (typeof obj[i] !== 'undefined') { - compacted.push(obj[i]); - } - } - - return compacted; - } - - var keys = Object.keys(obj); - for (i = 0, il = keys.length; i < il; ++i) { - var key = keys[i]; - obj[key] = exports.compact(obj[key], refs); - } - - return obj; -}; - - -exports.isRegExp = function (obj) { - - return Object.prototype.toString.call(obj) === '[object RegExp]'; -}; - - -exports.isBuffer = function (obj) { - - if (obj === null || - typeof obj === 'undefined') { - - return false; - } - - return !!(obj.constructor && - obj.constructor.isBuffer && - obj.constructor.isBuffer(obj)); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/package.json deleted file mode 100644 index 17ce489b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "qs", - "version": "4.0.0", - "description": "A querystring parser that supports nesting and arrays, with a depth limit", - "homepage": "https://github.com/hapijs/qs", - "main": "lib/index.js", - "dependencies": {}, - "devDependencies": { - "browserify": "^10.2.1", - "code": "1.x.x", - "lab": "5.x.x" - }, - "scripts": { - "test": "lab -a code -t 100 -L", - "test-cov-html": "lab -a code -r html -o coverage.html", - "dist": "browserify --standalone Qs lib/index.js > dist/qs.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/hapijs/qs.git" - }, - "keywords": [ - "querystring", - "qs" - ], - "license": "BSD-3-Clause", - "gitHead": "e573dd08eae6cce30d2202704691a102dfa3782a", - "bugs": { - "url": "https://github.com/hapijs/qs/issues" - }, - "_id": "qs@4.0.0", - "_shasum": "c31d9b74ec27df75e543a86c78728ed8d4623607", - "_from": "qs@4.0.0", - "_npmVersion": "2.12.0", - "_nodeVersion": "0.12.4", - "_npmUser": { - "name": "nlf", - "email": "quitlahok@gmail.com" - }, - "dist": { - "shasum": "c31d9b74ec27df75e543a86c78728ed8d4623607", - "tarball": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" - }, - "maintainers": [ - { - "name": "nlf", - "email": "quitlahok@gmail.com" - }, - { - "name": "hueniverse", - "email": "eran@hueniverse.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/test/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/test/parse.js deleted file mode 100644 index a19d7645..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/test/parse.js +++ /dev/null @@ -1,478 +0,0 @@ -/* eslint no-extend-native:0 */ -// Load modules - -var Code = require('code'); -var Lab = require('lab'); -var Qs = require('../'); - - -// Declare internals - -var internals = {}; - - -// Test shortcuts - -var lab = exports.lab = Lab.script(); -var expect = Code.expect; -var describe = lab.experiment; -var it = lab.test; - - -describe('parse()', function () { - - it('parses a simple string', function (done) { - - expect(Qs.parse('0=foo')).to.deep.equal({ '0': 'foo' }); - expect(Qs.parse('foo=c++')).to.deep.equal({ foo: 'c ' }); - expect(Qs.parse('a[>=]=23')).to.deep.equal({ a: { '>=': '23' } }); - expect(Qs.parse('a[<=>]==23')).to.deep.equal({ a: { '<=>': '=23' } }); - expect(Qs.parse('a[==]=23')).to.deep.equal({ a: { '==': '23' } }); - expect(Qs.parse('foo', { strictNullHandling: true })).to.deep.equal({ foo: null }); - expect(Qs.parse('foo' )).to.deep.equal({ foo: '' }); - expect(Qs.parse('foo=')).to.deep.equal({ foo: '' }); - expect(Qs.parse('foo=bar')).to.deep.equal({ foo: 'bar' }); - expect(Qs.parse(' foo = bar = baz ')).to.deep.equal({ ' foo ': ' bar = baz ' }); - expect(Qs.parse('foo=bar=baz')).to.deep.equal({ foo: 'bar=baz' }); - expect(Qs.parse('foo=bar&bar=baz')).to.deep.equal({ foo: 'bar', bar: 'baz' }); - expect(Qs.parse('foo2=bar2&baz2=')).to.deep.equal({ foo2: 'bar2', baz2: '' }); - expect(Qs.parse('foo=bar&baz', { strictNullHandling: true })).to.deep.equal({ foo: 'bar', baz: null }); - expect(Qs.parse('foo=bar&baz')).to.deep.equal({ foo: 'bar', baz: '' }); - expect(Qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World')).to.deep.equal({ - cht: 'p3', - chd: 't:60,40', - chs: '250x100', - chl: 'Hello|World' - }); - done(); - }); - - it('allows disabling dot notation', function (done) { - - expect(Qs.parse('a.b=c')).to.deep.equal({ a: { b: 'c' } }); - expect(Qs.parse('a.b=c', { allowDots: false })).to.deep.equal({ 'a.b': 'c' }); - done(); - }); - - it('parses a single nested string', function (done) { - - expect(Qs.parse('a[b]=c')).to.deep.equal({ a: { b: 'c' } }); - done(); - }); - - it('parses a double nested string', function (done) { - - expect(Qs.parse('a[b][c]=d')).to.deep.equal({ a: { b: { c: 'd' } } }); - done(); - }); - - it('defaults to a depth of 5', function (done) { - - expect(Qs.parse('a[b][c][d][e][f][g][h]=i')).to.deep.equal({ a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } }); - done(); - }); - - it('only parses one level when depth = 1', function (done) { - - expect(Qs.parse('a[b][c]=d', { depth: 1 })).to.deep.equal({ a: { b: { '[c]': 'd' } } }); - expect(Qs.parse('a[b][c][d]=e', { depth: 1 })).to.deep.equal({ a: { b: { '[c][d]': 'e' } } }); - done(); - }); - - it('parses a simple array', function (done) { - - expect(Qs.parse('a=b&a=c')).to.deep.equal({ a: ['b', 'c'] }); - done(); - }); - - it('parses an explicit array', function (done) { - - expect(Qs.parse('a[]=b')).to.deep.equal({ a: ['b'] }); - expect(Qs.parse('a[]=b&a[]=c')).to.deep.equal({ a: ['b', 'c'] }); - expect(Qs.parse('a[]=b&a[]=c&a[]=d')).to.deep.equal({ a: ['b', 'c', 'd'] }); - done(); - }); - - it('parses a mix of simple and explicit arrays', function (done) { - - expect(Qs.parse('a=b&a[]=c')).to.deep.equal({ a: ['b', 'c'] }); - expect(Qs.parse('a[]=b&a=c')).to.deep.equal({ a: ['b', 'c'] }); - expect(Qs.parse('a[0]=b&a=c')).to.deep.equal({ a: ['b', 'c'] }); - expect(Qs.parse('a=b&a[0]=c')).to.deep.equal({ a: ['b', 'c'] }); - expect(Qs.parse('a[1]=b&a=c')).to.deep.equal({ a: ['b', 'c'] }); - expect(Qs.parse('a=b&a[1]=c')).to.deep.equal({ a: ['b', 'c'] }); - done(); - }); - - it('parses a nested array', function (done) { - - expect(Qs.parse('a[b][]=c&a[b][]=d')).to.deep.equal({ a: { b: ['c', 'd'] } }); - expect(Qs.parse('a[>=]=25')).to.deep.equal({ a: { '>=': '25' } }); - done(); - }); - - it('allows to specify array indices', function (done) { - - expect(Qs.parse('a[1]=c&a[0]=b&a[2]=d')).to.deep.equal({ a: ['b', 'c', 'd'] }); - expect(Qs.parse('a[1]=c&a[0]=b')).to.deep.equal({ a: ['b', 'c'] }); - expect(Qs.parse('a[1]=c')).to.deep.equal({ a: ['c'] }); - done(); - }); - - it('limits specific array indices to 20', function (done) { - - expect(Qs.parse('a[20]=a')).to.deep.equal({ a: ['a'] }); - expect(Qs.parse('a[21]=a')).to.deep.equal({ a: { '21': 'a' } }); - done(); - }); - - it('supports keys that begin with a number', function (done) { - - expect(Qs.parse('a[12b]=c')).to.deep.equal({ a: { '12b': 'c' } }); - done(); - }); - - it('supports encoded = signs', function (done) { - - expect(Qs.parse('he%3Dllo=th%3Dere')).to.deep.equal({ 'he=llo': 'th=ere' }); - done(); - }); - - it('is ok with url encoded strings', function (done) { - - expect(Qs.parse('a[b%20c]=d')).to.deep.equal({ a: { 'b c': 'd' } }); - expect(Qs.parse('a[b]=c%20d')).to.deep.equal({ a: { b: 'c d' } }); - done(); - }); - - it('allows brackets in the value', function (done) { - - expect(Qs.parse('pets=["tobi"]')).to.deep.equal({ pets: '["tobi"]' }); - expect(Qs.parse('operators=[">=", "<="]')).to.deep.equal({ operators: '[">=", "<="]' }); - done(); - }); - - it('allows empty values', function (done) { - - expect(Qs.parse('')).to.deep.equal({}); - expect(Qs.parse(null)).to.deep.equal({}); - expect(Qs.parse(undefined)).to.deep.equal({}); - done(); - }); - - it('transforms arrays to objects', function (done) { - - expect(Qs.parse('foo[0]=bar&foo[bad]=baz')).to.deep.equal({ foo: { '0': 'bar', bad: 'baz' } }); - expect(Qs.parse('foo[bad]=baz&foo[0]=bar')).to.deep.equal({ foo: { bad: 'baz', '0': 'bar' } }); - expect(Qs.parse('foo[bad]=baz&foo[]=bar')).to.deep.equal({ foo: { bad: 'baz', '0': 'bar' } }); - expect(Qs.parse('foo[]=bar&foo[bad]=baz')).to.deep.equal({ foo: { '0': 'bar', bad: 'baz' } }); - expect(Qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo')).to.deep.equal({ foo: { bad: 'baz', '0': 'bar', '1': 'foo' } }); - expect(Qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb')).to.deep.equal({ foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); - expect(Qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c')).to.deep.equal({ a: { '0': 'b', t: 'u', c: true } }); - expect(Qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y')).to.deep.equal({ a: { '0': 'b', '1': 'c', x: 'y' } }); - done(); - }); - - it('transforms arrays to objects (dot notation)', function (done) { - - expect(Qs.parse('foo[0].baz=bar&fool.bad=baz')).to.deep.equal({ foo: [{ baz: 'bar' }], fool: { bad: 'baz' } }); - expect(Qs.parse('foo[0].baz=bar&fool.bad.boo=baz')).to.deep.equal({ foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } }); - expect(Qs.parse('foo[0][0].baz=bar&fool.bad=baz')).to.deep.equal({ foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } }); - expect(Qs.parse('foo[0].baz[0]=15&foo[0].bar=2')).to.deep.equal({ foo: [{ baz: ['15'], bar: '2' }] }); - expect(Qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2')).to.deep.equal({ foo: [{ baz: ['15', '16'], bar: '2' }] }); - expect(Qs.parse('foo.bad=baz&foo[0]=bar')).to.deep.equal({ foo: { bad: 'baz', '0': 'bar' } }); - expect(Qs.parse('foo.bad=baz&foo[]=bar')).to.deep.equal({ foo: { bad: 'baz', '0': 'bar' } }); - expect(Qs.parse('foo[]=bar&foo.bad=baz')).to.deep.equal({ foo: { '0': 'bar', bad: 'baz' } }); - expect(Qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo')).to.deep.equal({ foo: { bad: 'baz', '0': 'bar', '1': 'foo' } }); - expect(Qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb')).to.deep.equal({ foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); - done(); - }); - - it('can add keys to objects', function (done) { - - expect(Qs.parse('a[b]=c&a=d')).to.deep.equal({ a: { b: 'c', d: true } }); - done(); - }); - - it('correctly prunes undefined values when converting an array to an object', function (done) { - - expect(Qs.parse('a[2]=b&a[99999999]=c')).to.deep.equal({ a: { '2': 'b', '99999999': 'c' } }); - done(); - }); - - it('supports malformed uri characters', function (done) { - - expect(Qs.parse('{%:%}', { strictNullHandling: true })).to.deep.equal({ '{%:%}': null }); - expect(Qs.parse('{%:%}=')).to.deep.equal({ '{%:%}': '' }); - expect(Qs.parse('foo=%:%}')).to.deep.equal({ foo: '%:%}' }); - done(); - }); - - it('doesn\'t produce empty keys', function (done) { - - expect(Qs.parse('_r=1&')).to.deep.equal({ '_r': '1' }); - done(); - }); - - it('cannot access Object prototype', function (done) { - - Qs.parse('constructor[prototype][bad]=bad'); - Qs.parse('bad[constructor][prototype][bad]=bad'); - expect(typeof Object.prototype.bad).to.equal('undefined'); - done(); - }); - - it('parses arrays of objects', function (done) { - - expect(Qs.parse('a[][b]=c')).to.deep.equal({ a: [{ b: 'c' }] }); - expect(Qs.parse('a[0][b]=c')).to.deep.equal({ a: [{ b: 'c' }] }); - done(); - }); - - it('allows for empty strings in arrays', function (done) { - - expect(Qs.parse('a[]=b&a[]=&a[]=c')).to.deep.equal({ a: ['b', '', 'c'] }); - expect(Qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true })).to.deep.equal({ a: ['b', null, 'c', ''] }); - expect(Qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true })).to.deep.equal({ a: ['b', '', 'c', null] }); - expect(Qs.parse('a[]=&a[]=b&a[]=c')).to.deep.equal({ a: ['', 'b', 'c'] }); - done(); - }); - - it('compacts sparse arrays', function (done) { - - expect(Qs.parse('a[10]=1&a[2]=2')).to.deep.equal({ a: ['2', '1'] }); - done(); - }); - - it('parses semi-parsed strings', function (done) { - - expect(Qs.parse({ 'a[b]': 'c' })).to.deep.equal({ a: { b: 'c' } }); - expect(Qs.parse({ 'a[b]': 'c', 'a[d]': 'e' })).to.deep.equal({ a: { b: 'c', d: 'e' } }); - done(); - }); - - it('parses buffers correctly', function (done) { - - var b = new Buffer('test'); - expect(Qs.parse({ a: b })).to.deep.equal({ a: b }); - done(); - }); - - it('continues parsing when no parent is found', function (done) { - - expect(Qs.parse('[]=&a=b')).to.deep.equal({ '0': '', a: 'b' }); - expect(Qs.parse('[]&a=b', { strictNullHandling: true })).to.deep.equal({ '0': null, a: 'b' }); - expect(Qs.parse('[foo]=bar')).to.deep.equal({ foo: 'bar' }); - done(); - }); - - it('does not error when parsing a very long array', function (done) { - - var str = 'a[]=a'; - while (Buffer.byteLength(str) < 128 * 1024) { - str += '&' + str; - } - - expect(function () { - - Qs.parse(str); - }).to.not.throw(); - - done(); - }); - - it('should not throw when a native prototype has an enumerable property', { parallel: false }, function (done) { - - Object.prototype.crash = ''; - Array.prototype.crash = ''; - expect(Qs.parse.bind(null, 'a=b')).to.not.throw(); - expect(Qs.parse('a=b')).to.deep.equal({ a: 'b' }); - expect(Qs.parse.bind(null, 'a[][b]=c')).to.not.throw(); - expect(Qs.parse('a[][b]=c')).to.deep.equal({ a: [{ b: 'c' }] }); - delete Object.prototype.crash; - delete Array.prototype.crash; - done(); - }); - - it('parses a string with an alternative string delimiter', function (done) { - - expect(Qs.parse('a=b;c=d', { delimiter: ';' })).to.deep.equal({ a: 'b', c: 'd' }); - done(); - }); - - it('parses a string with an alternative RegExp delimiter', function (done) { - - expect(Qs.parse('a=b; c=d', { delimiter: /[;,] */ })).to.deep.equal({ a: 'b', c: 'd' }); - done(); - }); - - it('does not use non-splittable objects as delimiters', function (done) { - - expect(Qs.parse('a=b&c=d', { delimiter: true })).to.deep.equal({ a: 'b', c: 'd' }); - done(); - }); - - it('allows overriding parameter limit', function (done) { - - expect(Qs.parse('a=b&c=d', { parameterLimit: 1 })).to.deep.equal({ a: 'b' }); - done(); - }); - - it('allows setting the parameter limit to Infinity', function (done) { - - expect(Qs.parse('a=b&c=d', { parameterLimit: Infinity })).to.deep.equal({ a: 'b', c: 'd' }); - done(); - }); - - it('allows overriding array limit', function (done) { - - expect(Qs.parse('a[0]=b', { arrayLimit: -1 })).to.deep.equal({ a: { '0': 'b' } }); - expect(Qs.parse('a[-1]=b', { arrayLimit: -1 })).to.deep.equal({ a: { '-1': 'b' } }); - expect(Qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 })).to.deep.equal({ a: { '0': 'b', '1': 'c' } }); - done(); - }); - - it('allows disabling array parsing', function (done) { - - expect(Qs.parse('a[0]=b&a[1]=c', { parseArrays: false })).to.deep.equal({ a: { '0': 'b', '1': 'c' } }); - done(); - }); - - it('parses an object', function (done) { - - var input = { - 'user[name]': { 'pop[bob]': 3 }, - 'user[email]': null - }; - - var expected = { - 'user': { - 'name': { 'pop[bob]': 3 }, - 'email': null - } - }; - - var result = Qs.parse(input); - - expect(result).to.deep.equal(expected); - done(); - }); - - it('parses an object in dot notation', function (done) { - - var input = { - 'user.name': { 'pop[bob]': 3 }, - 'user.email.': null - }; - - var expected = { - 'user': { - 'name': { 'pop[bob]': 3 }, - 'email': null - } - }; - - var result = Qs.parse(input); - - expect(result).to.deep.equal(expected); - done(); - }); - - it('parses an object and not child values', function (done) { - - var input = { - 'user[name]': { 'pop[bob]': { 'test': 3 } }, - 'user[email]': null - }; - - var expected = { - 'user': { - 'name': { 'pop[bob]': { 'test': 3 } }, - 'email': null - } - }; - - var result = Qs.parse(input); - - expect(result).to.deep.equal(expected); - done(); - }); - - it('does not blow up when Buffer global is missing', function (done) { - - var tempBuffer = global.Buffer; - delete global.Buffer; - var result = Qs.parse('a=b&c=d'); - global.Buffer = tempBuffer; - expect(result).to.deep.equal({ a: 'b', c: 'd' }); - done(); - }); - - it('does not crash when parsing circular references', function (done) { - - var a = {}; - a.b = a; - - var parsed; - - expect(function () { - - parsed = Qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a }); - }).to.not.throw(); - - expect(parsed).to.contain('foo'); - expect(parsed.foo).to.contain('bar', 'baz'); - expect(parsed.foo.bar).to.equal('baz'); - expect(parsed.foo.baz).to.deep.equal(a); - done(); - }); - - it('parses plain objects correctly', function (done) { - - var a = Object.create(null); - a.b = 'c'; - - expect(Qs.parse(a)).to.deep.equal({ b: 'c' }); - var result = Qs.parse({ a: a }); - expect(result).to.contain('a'); - expect(result.a).to.deep.equal(a); - done(); - }); - - it('parses dates correctly', function (done) { - - var now = new Date(); - expect(Qs.parse({ a: now })).to.deep.equal({ a: now }); - done(); - }); - - it('parses regular expressions correctly', function (done) { - - var re = /^test$/; - expect(Qs.parse({ a: re })).to.deep.equal({ a: re }); - done(); - }); - - it('can allow overwriting prototype properties', function (done) { - - expect(Qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true })).to.deep.equal({ a: { hasOwnProperty: 'b' } }, { prototype: false }); - expect(Qs.parse('hasOwnProperty=b', { allowPrototypes: true })).to.deep.equal({ hasOwnProperty: 'b' }, { prototype: false }); - done(); - }); - - it('can return plain objects', function (done) { - - var expected = Object.create(null); - expected.a = Object.create(null); - expected.a.b = 'c'; - expected.a.hasOwnProperty = 'd'; - expect(Qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true })).to.deep.equal(expected); - expect(Qs.parse(null, { plainObjects: true })).to.deep.equal(Object.create(null)); - var expectedArray = Object.create(null); - expectedArray.a = Object.create(null); - expectedArray.a['0'] = 'b'; - expectedArray.a.c = 'd'; - expect(Qs.parse('a[]=b&a[c]=d', { plainObjects: true })).to.deep.equal(expectedArray); - done(); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/test/stringify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/test/stringify.js deleted file mode 100644 index 48b7803f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/test/stringify.js +++ /dev/null @@ -1,259 +0,0 @@ -/* eslint no-extend-native:0 */ -// Load modules - -var Code = require('code'); -var Lab = require('lab'); -var Qs = require('../'); - - -// Declare internals - -var internals = {}; - - -// Test shortcuts - -var lab = exports.lab = Lab.script(); -var expect = Code.expect; -var describe = lab.experiment; -var it = lab.test; - - -describe('stringify()', function () { - - it('stringifies a querystring object', function (done) { - - expect(Qs.stringify({ a: 'b' })).to.equal('a=b'); - expect(Qs.stringify({ a: 1 })).to.equal('a=1'); - expect(Qs.stringify({ a: 1, b: 2 })).to.equal('a=1&b=2'); - expect(Qs.stringify({ a: 'A_Z' })).to.equal('a=A_Z'); - expect(Qs.stringify({ a: '€' })).to.equal('a=%E2%82%AC'); - expect(Qs.stringify({ a: '' })).to.equal('a=%EE%80%80'); - expect(Qs.stringify({ a: 'א' })).to.equal('a=%D7%90'); - expect(Qs.stringify({ a: '𐐷' })).to.equal('a=%F0%90%90%B7'); - done(); - }); - - it('stringifies a nested object', function (done) { - - expect(Qs.stringify({ a: { b: 'c' } })).to.equal('a%5Bb%5D=c'); - expect(Qs.stringify({ a: { b: { c: { d: 'e' } } } })).to.equal('a%5Bb%5D%5Bc%5D%5Bd%5D=e'); - done(); - }); - - it('stringifies an array value', function (done) { - - expect(Qs.stringify({ a: ['b', 'c', 'd'] })).to.equal('a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d'); - done(); - }); - - it('omits array indices when asked', function (done) { - - expect(Qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false })).to.equal('a=b&a=c&a=d'); - done(); - }); - - it('stringifies a nested array value', function (done) { - - expect(Qs.stringify({ a: { b: ['c', 'd'] } })).to.equal('a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d'); - done(); - }); - - it('stringifies an object inside an array', function (done) { - - expect(Qs.stringify({ a: [{ b: 'c' }] })).to.equal('a%5B0%5D%5Bb%5D=c'); - expect(Qs.stringify({ a: [{ b: { c: [1] } }] })).to.equal('a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1'); - done(); - }); - - it('does not omit object keys when indices = false', function (done) { - - expect(Qs.stringify({ a: [{ b: 'c' }] }, { indices: false })).to.equal('a%5Bb%5D=c'); - done(); - }); - - it('uses indices notation for arrays when indices=true', function (done) { - - expect(Qs.stringify({ a: ['b', 'c'] }, { indices: true })).to.equal('a%5B0%5D=b&a%5B1%5D=c'); - done(); - }); - - it('uses indices notation for arrays when no arrayFormat is specified', function (done) { - - expect(Qs.stringify({ a: ['b', 'c'] })).to.equal('a%5B0%5D=b&a%5B1%5D=c'); - done(); - }); - - it('uses indices notation for arrays when no arrayFormat=indices', function (done) { - - expect(Qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })).to.equal('a%5B0%5D=b&a%5B1%5D=c'); - done(); - }); - - it('uses repeat notation for arrays when no arrayFormat=repeat', function (done) { - - expect(Qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })).to.equal('a=b&a=c'); - done(); - }); - - it('uses brackets notation for arrays when no arrayFormat=brackets', function (done) { - - expect(Qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })).to.equal('a%5B%5D=b&a%5B%5D=c'); - done(); - }); - - it('stringifies a complicated object', function (done) { - - expect(Qs.stringify({ a: { b: 'c', d: 'e' } })).to.equal('a%5Bb%5D=c&a%5Bd%5D=e'); - done(); - }); - - it('stringifies an empty value', function (done) { - - expect(Qs.stringify({ a: '' })).to.equal('a='); - expect(Qs.stringify({ a: null }, { strictNullHandling: true })).to.equal('a'); - - expect(Qs.stringify({ a: '', b: '' })).to.equal('a=&b='); - expect(Qs.stringify({ a: null, b: '' }, { strictNullHandling: true })).to.equal('a&b='); - - expect(Qs.stringify({ a: { b: '' } })).to.equal('a%5Bb%5D='); - expect(Qs.stringify({ a: { b: null } }, { strictNullHandling: true })).to.equal('a%5Bb%5D'); - expect(Qs.stringify({ a: { b: null } }, { strictNullHandling: false })).to.equal('a%5Bb%5D='); - - done(); - }); - - it('stringifies an empty object', function (done) { - - var obj = Object.create(null); - obj.a = 'b'; - expect(Qs.stringify(obj)).to.equal('a=b'); - done(); - }); - - it('returns an empty string for invalid input', function (done) { - - expect(Qs.stringify(undefined)).to.equal(''); - expect(Qs.stringify(false)).to.equal(''); - expect(Qs.stringify(null)).to.equal(''); - expect(Qs.stringify('')).to.equal(''); - done(); - }); - - it('stringifies an object with an empty object as a child', function (done) { - - var obj = { - a: Object.create(null) - }; - - obj.a.b = 'c'; - expect(Qs.stringify(obj)).to.equal('a%5Bb%5D=c'); - done(); - }); - - it('drops keys with a value of undefined', function (done) { - - expect(Qs.stringify({ a: undefined })).to.equal(''); - - expect(Qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true })).to.equal('a%5Bc%5D'); - expect(Qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false })).to.equal('a%5Bc%5D='); - expect(Qs.stringify({ a: { b: undefined, c: '' } })).to.equal('a%5Bc%5D='); - done(); - }); - - it('url encodes values', function (done) { - - expect(Qs.stringify({ a: 'b c' })).to.equal('a=b%20c'); - done(); - }); - - it('stringifies a date', function (done) { - - var now = new Date(); - var str = 'a=' + encodeURIComponent(now.toISOString()); - expect(Qs.stringify({ a: now })).to.equal(str); - done(); - }); - - it('stringifies the weird object from qs', function (done) { - - expect(Qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' })).to.equal('my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F'); - done(); - }); - - it('skips properties that are part of the object prototype', function (done) { - - Object.prototype.crash = 'test'; - expect(Qs.stringify({ a: 'b' })).to.equal('a=b'); - expect(Qs.stringify({ a: { b: 'c' } })).to.equal('a%5Bb%5D=c'); - delete Object.prototype.crash; - done(); - }); - - it('stringifies boolean values', function (done) { - - expect(Qs.stringify({ a: true })).to.equal('a=true'); - expect(Qs.stringify({ a: { b: true } })).to.equal('a%5Bb%5D=true'); - expect(Qs.stringify({ b: false })).to.equal('b=false'); - expect(Qs.stringify({ b: { c: false } })).to.equal('b%5Bc%5D=false'); - done(); - }); - - it('stringifies buffer values', function (done) { - - expect(Qs.stringify({ a: new Buffer('test') })).to.equal('a=test'); - expect(Qs.stringify({ a: { b: new Buffer('test') } })).to.equal('a%5Bb%5D=test'); - done(); - }); - - it('stringifies an object using an alternative delimiter', function (done) { - - expect(Qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' })).to.equal('a=b;c=d'); - done(); - }); - - it('doesn\'t blow up when Buffer global is missing', function (done) { - - var tempBuffer = global.Buffer; - delete global.Buffer; - expect(Qs.stringify({ a: 'b', c: 'd' })).to.equal('a=b&c=d'); - global.Buffer = tempBuffer; - done(); - }); - - it('selects properties when filter=array', function (done) { - - expect(Qs.stringify({ a: 'b' }, { filter: ['a'] })).to.equal('a=b'); - expect(Qs.stringify({ a: 1 }, { filter: [] })).to.equal(''); - expect(Qs.stringify({ a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, { filter: ['a', 'b', 0, 2] })).to.equal('a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3'); - done(); - - }); - - it('supports custom representations when filter=function', function (done) { - - var calls = 0; - var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } }; - var filterFunc = function (prefix, value) { - - calls++; - if (calls === 1) { - expect(prefix).to.be.empty(); - expect(value).to.equal(obj); - } - else if (prefix === 'c') { - return; - } - else if (value instanceof Date) { - expect(prefix).to.equal('e[f]'); - return value.getTime(); - } - return value; - }; - - expect(Qs.stringify(obj, { filter: filterFunc })).to.equal('a=b&e%5Bf%5D=1257894000000'); - expect(calls).to.equal(5); - done(); - - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/test/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/test/utils.js deleted file mode 100644 index a9a6b520..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/qs/test/utils.js +++ /dev/null @@ -1,28 +0,0 @@ -// Load modules - -var Code = require('code'); -var Lab = require('lab'); -var Utils = require('../lib/utils'); - - -// Declare internals - -var internals = {}; - - -// Test shortcuts - -var lab = exports.lab = Lab.script(); -var expect = Code.expect; -var describe = lab.experiment; -var it = lab.test; - - -describe('merge()', function () { - - it('can merge two objects with the same key', function (done) { - - expect(Utils.merge({ a: 'b' }, { a: 'c' })).to.deep.equal({ a: ['b', 'c'] }); - done(); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/HISTORY.md deleted file mode 100644 index f640bea7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/HISTORY.md +++ /dev/null @@ -1,40 +0,0 @@ -unreleased -========== - - * perf: enable strict mode - -1.0.2 / 2014-09-08 -================== - - * Support Node.js 0.6 - -1.0.1 / 2014-09-07 -================== - - * Move repository to jshttp - -1.0.0 / 2013-12-11 -================== - - * Add repository to package.json - * Add MIT license - -0.0.4 / 2012-06-17 -================== - - * Change ret -1 for unsatisfiable and -2 when invalid - -0.0.3 / 2012-06-17 -================== - - * Fix last-byte-pos default to len - 1 - -0.0.2 / 2012-06-14 -================== - - * Add `.type` - -0.0.1 / 2012-06-11 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/LICENSE deleted file mode 100644 index a491841b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 TJ Holowaychuk - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/README.md deleted file mode 100644 index 32f58f69..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# range-parser - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Range header field parser. - -## Installation - -``` -$ npm install range-parser -``` - -## API - -```js -var parseRange = require('range-parser') -``` - -### parseRange(size, header) - -Parse the given `header` string where `size` is the maximum size of the resource. -An array of ranges will be returned or negative numbers indicating an error parsing. - - * `-2` signals a malformed header string - * `-1` signals an invalid range - -```js -// parse header from request -var range = parseRange(req.headers.range) - -// the type of the range -if (range.type === 'bytes') { - // the ranges - range.forEach(function (r) { - // do something with r.start and r.end - }) -} -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/range-parser.svg -[npm-url]: https://npmjs.org/package/range-parser -[node-version-image]: https://img.shields.io/node/v/range-parser.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/range-parser.svg -[travis-url]: https://travis-ci.org/jshttp/range-parser -[coveralls-image]: https://img.shields.io/coveralls/jshttp/range-parser.svg -[coveralls-url]: https://coveralls.io/r/jshttp/range-parser -[downloads-image]: https://img.shields.io/npm/dm/range-parser.svg -[downloads-url]: https://npmjs.org/package/range-parser diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/index.js deleted file mode 100644 index 814e5332..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/index.js +++ /dev/null @@ -1,63 +0,0 @@ -/*! - * range-parser - * Copyright(c) 2012-2014 TJ Holowaychuk - * MIT Licensed - */ - -'use strict'; - -/** - * Module exports. - * @public - */ - -module.exports = rangeParser; - -/** - * Parse "Range" header `str` relative to the given file `size`. - * - * @param {Number} size - * @param {String} str - * @return {Array} - * @public - */ - -function rangeParser(size, str) { - var valid = true; - var i = str.indexOf('='); - - if (-1 == i) return -2; - - var arr = str.slice(i + 1).split(',').map(function(range){ - var range = range.split('-') - , start = parseInt(range[0], 10) - , end = parseInt(range[1], 10); - - // -nnn - if (isNaN(start)) { - start = size - end; - end = size - 1; - // nnn- - } else if (isNaN(end)) { - end = size - 1; - } - - // limit last-byte-pos to current length - if (end > size - 1) end = size - 1; - - // invalid - if (isNaN(start) - || isNaN(end) - || start > end - || start < 0) valid = false; - - return { - start: start, - end: end - }; - }); - - arr.type = str.slice(0, i); - - return valid ? arr : -1; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/package.json deleted file mode 100644 index e6d31386..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/range-parser/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "range-parser", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": "http://tjholowaychuk.com" - }, - "description": "Range header field string parser", - "version": "1.0.3", - "license": "MIT", - "keywords": [ - "range", - "parser", - "http" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/range-parser.git" - }, - "devDependencies": { - "istanbul": "0.4.0", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" - }, - "gitHead": "18e46a3de74afff9f4e22717f11ddd6e9aa6d845", - "bugs": { - "url": "https://github.com/jshttp/range-parser/issues" - }, - "homepage": "https://github.com/jshttp/range-parser", - "_id": "range-parser@1.0.3", - "_shasum": "6872823535c692e2c2a0103826afd82c2e0ff175", - "_from": "range-parser@>=1.0.3 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "jonathanong", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "6872823535c692e2c2a0103826afd82c2e0ff175", - "tarball": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/HISTORY.md deleted file mode 100644 index d3dca9c7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/HISTORY.md +++ /dev/null @@ -1,310 +0,0 @@ -0.13.1 / 2016-01-16 -=================== - - * deps: depd@~1.1.0 - - Support web browser loading - - perf: enable strict mode - * deps: destroy@~1.0.4 - - perf: enable strict mode - * deps: escape-html@~1.0.3 - - perf: enable strict mode - - perf: optimize string replacement - - perf: use faster string coercion - * deps: range-parser@~1.0.3 - - perf: enable strict mode - -0.13.0 / 2015-06-16 -=================== - - * Allow Node.js HTTP server to set `Date` response header - * Fix incorrectly removing `Content-Location` on 304 response - * Improve the default redirect response headers - * Send appropriate headers on default error response - * Use `http-errors` for standard emitted errors - * Use `statuses` instead of `http` module for status messages - * deps: escape-html@1.0.2 - * deps: etag@~1.7.0 - - Improve stat performance by removing hashing - * deps: fresh@0.3.0 - - Add weak `ETag` matching support - * deps: on-finished@~2.3.0 - - Add defined behavior for HTTP `CONNECT` requests - - Add defined behavior for HTTP `Upgrade` requests - - deps: ee-first@1.1.1 - * perf: enable strict mode - * perf: remove unnecessary array allocations - -0.12.3 / 2015-05-13 -=================== - - * deps: debug@~2.2.0 - - deps: ms@0.7.1 - * deps: depd@~1.0.1 - * deps: etag@~1.6.0 - - Improve support for JXcore - - Support "fake" stats objects in environments without `fs` - * deps: ms@0.7.1 - - Prevent extraordinarily long inputs - * deps: on-finished@~2.2.1 - -0.12.2 / 2015-03-13 -=================== - - * Throw errors early for invalid `extensions` or `index` options - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - -0.12.1 / 2015-02-17 -=================== - - * Fix regression sending zero-length files - -0.12.0 / 2015-02-16 -=================== - - * Always read the stat size from the file - * Fix mutating passed-in `options` - * deps: mime@1.3.4 - -0.11.1 / 2015-01-20 -=================== - - * Fix `root` path disclosure - -0.11.0 / 2015-01-05 -=================== - - * deps: debug@~2.1.1 - * deps: etag@~1.5.1 - - deps: crc@3.2.1 - * deps: ms@0.7.0 - - Add `milliseconds` - - Add `msecs` - - Add `secs` - - Add `mins` - - Add `hrs` - - Add `yrs` - * deps: on-finished@~2.2.0 - -0.10.1 / 2014-10-22 -=================== - - * deps: on-finished@~2.1.1 - - Fix handling of pipelined requests - -0.10.0 / 2014-10-15 -=================== - - * deps: debug@~2.1.0 - - Implement `DEBUG_FD` env variable support - * deps: depd@~1.0.0 - * deps: etag@~1.5.0 - - Improve string performance - - Slightly improve speed for weak ETags over 1KB - -0.9.3 / 2014-09-24 -================== - - * deps: etag@~1.4.0 - - Support "fake" stats objects - -0.9.2 / 2014-09-15 -================== - - * deps: depd@0.4.5 - * deps: etag@~1.3.1 - * deps: range-parser@~1.0.2 - -0.9.1 / 2014-09-07 -================== - - * deps: fresh@0.2.4 - -0.9.0 / 2014-09-07 -================== - - * Add `lastModified` option - * Use `etag` to generate `ETag` header - * deps: debug@~2.0.0 - -0.8.5 / 2014-09-04 -================== - - * Fix malicious path detection for empty string path - -0.8.4 / 2014-09-04 -================== - - * Fix a path traversal issue when using `root` - -0.8.3 / 2014-08-16 -================== - - * deps: destroy@1.0.3 - - renamed from dethroy - * deps: on-finished@2.1.0 - -0.8.2 / 2014-08-14 -================== - - * Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` - * deps: dethroy@1.0.2 - -0.8.1 / 2014-08-05 -================== - - * Fix `extensions` behavior when file already has extension - -0.8.0 / 2014-08-05 -================== - - * Add `extensions` option - -0.7.4 / 2014-08-04 -================== - - * Fix serving index files without root dir - -0.7.3 / 2014-07-29 -================== - - * Fix incorrect 403 on Windows and Node.js 0.11 - -0.7.2 / 2014-07-27 -================== - - * deps: depd@0.4.4 - - Work-around v8 generating empty stack traces - -0.7.1 / 2014-07-26 -================== - - * deps: depd@0.4.3 - - Fix exception when global `Error.stackTraceLimit` is too low - -0.7.0 / 2014-07-20 -================== - - * Deprecate `hidden` option; use `dotfiles` option - * Add `dotfiles` option - * deps: debug@1.0.4 - * deps: depd@0.4.2 - - Add `TRACE_DEPRECATION` environment variable - - Remove non-standard grey color from color output - - Support `--no-deprecation` argument - - Support `--trace-deprecation` argument - -0.6.0 / 2014-07-11 -================== - - * Deprecate `from` option; use `root` option - * Deprecate `send.etag()` -- use `etag` in `options` - * Deprecate `send.hidden()` -- use `hidden` in `options` - * Deprecate `send.index()` -- use `index` in `options` - * Deprecate `send.maxage()` -- use `maxAge` in `options` - * Deprecate `send.root()` -- use `root` in `options` - * Cap `maxAge` value to 1 year - * deps: debug@1.0.3 - - Add support for multiple wildcards in namespaces - -0.5.0 / 2014-06-28 -================== - - * Accept string for `maxAge` (converted by `ms`) - * Add `headers` event - * Include link in default redirect response - * Use `EventEmitter.listenerCount` to count listeners - -0.4.3 / 2014-06-11 -================== - - * Do not throw un-catchable error on file open race condition - * Use `escape-html` for HTML escaping - * deps: debug@1.0.2 - - fix some debugging output colors on node.js 0.8 - * deps: finished@1.2.2 - * deps: fresh@0.2.2 - -0.4.2 / 2014-06-09 -================== - - * fix "event emitter leak" warnings - * deps: debug@1.0.1 - * deps: finished@1.2.1 - -0.4.1 / 2014-06-02 -================== - - * Send `max-age` in `Cache-Control` in correct format - -0.4.0 / 2014-05-27 -================== - - * Calculate ETag with md5 for reduced collisions - * Fix wrong behavior when index file matches directory - * Ignore stream errors after request ends - - Goodbye `EBADF, read` - * Skip directories in index file search - * deps: debug@0.8.1 - -0.3.0 / 2014-04-24 -================== - - * Fix sending files with dots without root set - * Coerce option types - * Accept API options in options object - * Set etags to "weak" - * Include file path in etag - * Make "Can't set headers after they are sent." catchable - * Send full entity-body for multi range requests - * Default directory access to 403 when index disabled - * Support multiple index paths - * Support "If-Range" header - * Control whether to generate etags - * deps: mime@1.2.11 - -0.2.0 / 2014-01-29 -================== - - * update range-parser and fresh - -0.1.4 / 2013-08-11 -================== - - * update fresh - -0.1.3 / 2013-07-08 -================== - - * Revert "Fix fd leak" - -0.1.2 / 2013-07-03 -================== - - * Fix fd leak - -0.1.0 / 2012-08-25 -================== - - * add options parameter to send() that is passed to fs.createReadStream() [kanongil] - -0.0.4 / 2012-08-16 -================== - - * allow custom "Accept-Ranges" definition - -0.0.3 / 2012-07-16 -================== - - * fix normalization of the root directory. Closes #3 - -0.0.2 / 2012-07-09 -================== - - * add passing of req explicitly for now (YUCK) - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/LICENSE deleted file mode 100644 index e4d595b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2012 TJ Holowaychuk -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/README.md deleted file mode 100644 index 35860609..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/README.md +++ /dev/null @@ -1,195 +0,0 @@ -# send - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Linux Build][travis-image]][travis-url] -[![Windows Build][appveyor-image]][appveyor-url] -[![Test Coverage][coveralls-image]][coveralls-url] -[![Gratipay][gratipay-image]][gratipay-url] - -Send is a library for streaming files from the file system as a http response -supporting partial responses (Ranges), conditional-GET negotiation, high test -coverage, and granular events which may be leveraged to take appropriate actions -in your application or framework. - -Looking to serve up entire folders mapped to URLs? Try [serve-static](https://www.npmjs.org/package/serve-static). - -## Installation - -```bash -$ npm install send -``` - -## API - -```js -var send = require('send') -``` - -### send(req, path, [options]) - -Create a new `SendStream` for the given path to send to a `res`. The `req` is -the Node.js HTTP request and the `path` is a urlencoded path to send (urlencoded, -not the actual file-system path). - -#### Options - -##### dotfiles - -Set how "dotfiles" are treated when encountered. A dotfile is a file -or directory that begins with a dot ("."). Note this check is done on -the path itself without checking if the path actually exists on the -disk. If `root` is specified, only the dotfiles above the root are -checked (i.e. the root itself can be within a dotfile when when set -to "deny"). - - - `'allow'` No special treatment for dotfiles. - - `'deny'` Send a 403 for any request for a dotfile. - - `'ignore'` Pretend like the dotfile does not exist and 404. - -The default value is _similar_ to `'ignore'`, with the exception that -this default will not ignore the files within a directory that begins -with a dot, for backward-compatibility. - -##### etag - -Enable or disable etag generation, defaults to true. - -##### extensions - -If a given file doesn't exist, try appending one of the given extensions, -in the given order. By default, this is disabled (set to `false`). An -example value that will serve extension-less HTML files: `['html', 'htm']`. -This is skipped if the requested file already has an extension. - -##### index - -By default send supports "index.html" files, to disable this -set `false` or to supply a new index pass a string or an array -in preferred order. - -##### lastModified - -Enable or disable `Last-Modified` header, defaults to true. Uses the file -system's last modified value. - -##### maxAge - -Provide a max-age in milliseconds for http caching, defaults to 0. -This can also be a string accepted by the -[ms](https://www.npmjs.org/package/ms#readme) module. - -##### root - -Serve files relative to `path`. - -### Events - -The `SendStream` is an event emitter and will emit the following events: - - - `error` an error occurred `(err)` - - `directory` a directory was requested - - `file` a file was requested `(path, stat)` - - `headers` the headers are about to be set on a file `(res, path, stat)` - - `stream` file streaming has started `(stream)` - - `end` streaming has completed - -### .pipe - -The `pipe` method is used to pipe the response into the Node.js HTTP response -object, typically `send(req, path, options).pipe(res)`. - -## Error-handling - -By default when no `error` listeners are present an automatic response will be -made, otherwise you have full control over the response, aka you may show a 5xx -page etc. - -## Caching - -It does _not_ perform internal caching, you should use a reverse proxy cache -such as Varnish for this, or those fancy things called CDNs. If your -application is small enough that it would benefit from single-node memory -caching, it's small enough that it does not need caching at all ;). - -## Debugging - -To enable `debug()` instrumentation output export __DEBUG__: - -``` -$ DEBUG=send node app -``` - -## Running tests - -``` -$ npm install -$ npm test -``` - -## Examples - -### Small example - -```js -var http = require('http'); -var send = require('send'); - -var app = http.createServer(function(req, res){ - send(req, req.url).pipe(res); -}).listen(3000); -``` - -Serving from a root directory with custom error-handling: - -```js -var http = require('http'); -var send = require('send'); -var url = require('url'); - -var app = http.createServer(function(req, res){ - // your custom error-handling logic: - function error(err) { - res.statusCode = err.status || 500; - res.end(err.message); - } - - // your custom headers - function headers(res, path, stat) { - // serve all files for download - res.setHeader('Content-Disposition', 'attachment'); - } - - // your custom directory handling logic: - function redirect() { - res.statusCode = 301; - res.setHeader('Location', req.url + '/'); - res.end('Redirecting to ' + req.url + '/'); - } - - // transfer arbitrary files from within - // /www/example.com/public/* - send(req, url.parse(req.url).pathname, {root: '/www/example.com/public'}) - .on('error', error) - .on('directory', redirect) - .on('headers', headers) - .pipe(res); -}).listen(3000); -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/send.svg -[npm-url]: https://npmjs.org/package/send -[travis-image]: https://img.shields.io/travis/pillarjs/send/master.svg?label=linux -[travis-url]: https://travis-ci.org/pillarjs/send -[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/send/master.svg?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/send -[coveralls-image]: https://img.shields.io/coveralls/pillarjs/send/master.svg -[coveralls-url]: https://coveralls.io/r/pillarjs/send?branch=master -[downloads-image]: https://img.shields.io/npm/dm/send.svg -[downloads-url]: https://npmjs.org/package/send -[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg -[gratipay-url]: https://www.gratipay.com/dougwilson/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/index.js deleted file mode 100644 index 3510989e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/index.js +++ /dev/null @@ -1,820 +0,0 @@ -/*! - * send - * Copyright(c) 2012 TJ Holowaychuk - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var createError = require('http-errors') -var debug = require('debug')('send') -var deprecate = require('depd')('send') -var destroy = require('destroy') -var escapeHtml = require('escape-html') - , parseRange = require('range-parser') - , Stream = require('stream') - , mime = require('mime') - , fresh = require('fresh') - , path = require('path') - , fs = require('fs') - , normalize = path.normalize - , join = path.join -var etag = require('etag') -var EventEmitter = require('events').EventEmitter; -var ms = require('ms'); -var onFinished = require('on-finished') -var statuses = require('statuses') - -/** - * Variables. - */ -var extname = path.extname -var maxMaxAge = 60 * 60 * 24 * 365 * 1000; // 1 year -var resolve = path.resolve -var sep = path.sep -var toString = Object.prototype.toString -var upPathRegexp = /(?:^|[\\\/])\.\.(?:[\\\/]|$)/ - -/** - * Module exports. - * @public - */ - -module.exports = send -module.exports.mime = mime - -/** - * Shim EventEmitter.listenerCount for node.js < 0.10 - */ - -/* istanbul ignore next */ -var listenerCount = EventEmitter.listenerCount - || function(emitter, type){ return emitter.listeners(type).length; }; - -/** - * Return a `SendStream` for `req` and `path`. - * - * @param {object} req - * @param {string} path - * @param {object} [options] - * @return {SendStream} - * @public - */ - -function send(req, path, options) { - return new SendStream(req, path, options); -} - -/** - * Initialize a `SendStream` with the given `path`. - * - * @param {Request} req - * @param {String} path - * @param {object} [options] - * @private - */ - -function SendStream(req, path, options) { - var opts = options || {} - - this.options = opts - this.path = path - this.req = req - - this._etag = opts.etag !== undefined - ? Boolean(opts.etag) - : true - - this._dotfiles = opts.dotfiles !== undefined - ? opts.dotfiles - : 'ignore' - - if (this._dotfiles !== 'ignore' && this._dotfiles !== 'allow' && this._dotfiles !== 'deny') { - throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"') - } - - this._hidden = Boolean(opts.hidden) - - if (opts.hidden !== undefined) { - deprecate('hidden: use dotfiles: \'' + (this._hidden ? 'allow' : 'ignore') + '\' instead') - } - - // legacy support - if (opts.dotfiles === undefined) { - this._dotfiles = undefined - } - - this._extensions = opts.extensions !== undefined - ? normalizeList(opts.extensions, 'extensions option') - : [] - - this._index = opts.index !== undefined - ? normalizeList(opts.index, 'index option') - : ['index.html'] - - this._lastModified = opts.lastModified !== undefined - ? Boolean(opts.lastModified) - : true - - this._maxage = opts.maxAge || opts.maxage - this._maxage = typeof this._maxage === 'string' - ? ms(this._maxage) - : Number(this._maxage) - this._maxage = !isNaN(this._maxage) - ? Math.min(Math.max(0, this._maxage), maxMaxAge) - : 0 - - this._root = opts.root - ? resolve(opts.root) - : null - - if (!this._root && opts.from) { - this.from(opts.from) - } -} - -/** - * Inherits from `Stream.prototype`. - */ - -SendStream.prototype.__proto__ = Stream.prototype; - -/** - * Enable or disable etag generation. - * - * @param {Boolean} val - * @return {SendStream} - * @api public - */ - -SendStream.prototype.etag = deprecate.function(function etag(val) { - val = Boolean(val); - debug('etag %s', val); - this._etag = val; - return this; -}, 'send.etag: pass etag as option'); - -/** - * Enable or disable "hidden" (dot) files. - * - * @param {Boolean} path - * @return {SendStream} - * @api public - */ - -SendStream.prototype.hidden = deprecate.function(function hidden(val) { - val = Boolean(val); - debug('hidden %s', val); - this._hidden = val; - this._dotfiles = undefined - return this; -}, 'send.hidden: use dotfiles option'); - -/** - * Set index `paths`, set to a falsy - * value to disable index support. - * - * @param {String|Boolean|Array} paths - * @return {SendStream} - * @api public - */ - -SendStream.prototype.index = deprecate.function(function index(paths) { - var index = !paths ? [] : normalizeList(paths, 'paths argument'); - debug('index %o', paths); - this._index = index; - return this; -}, 'send.index: pass index as option'); - -/** - * Set root `path`. - * - * @param {String} path - * @return {SendStream} - * @api public - */ - -SendStream.prototype.root = function(path){ - path = String(path); - this._root = resolve(path) - return this; -}; - -SendStream.prototype.from = deprecate.function(SendStream.prototype.root, - 'send.from: pass root as option'); - -SendStream.prototype.root = deprecate.function(SendStream.prototype.root, - 'send.root: pass root as option'); - -/** - * Set max-age to `maxAge`. - * - * @param {Number} maxAge - * @return {SendStream} - * @api public - */ - -SendStream.prototype.maxage = deprecate.function(function maxage(maxAge) { - maxAge = typeof maxAge === 'string' - ? ms(maxAge) - : Number(maxAge); - if (isNaN(maxAge)) maxAge = 0; - if (Infinity == maxAge) maxAge = 60 * 60 * 24 * 365 * 1000; - debug('max-age %d', maxAge); - this._maxage = maxAge; - return this; -}, 'send.maxage: pass maxAge as option'); - -/** - * Emit error with `status`. - * - * @param {number} status - * @param {Error} [error] - * @private - */ - -SendStream.prototype.error = function error(status, error) { - // emit if listeners instead of responding - if (listenerCount(this, 'error') !== 0) { - return this.emit('error', createError(error, status, { - expose: false - })) - } - - var res = this.res - var msg = statuses[status] - - // wipe all existing headers - res._headers = null - - // send basic response - res.statusCode = status - res.setHeader('Content-Type', 'text/plain; charset=UTF-8') - res.setHeader('Content-Length', Buffer.byteLength(msg)) - res.setHeader('X-Content-Type-Options', 'nosniff') - res.end(msg) -} - -/** - * Check if the pathname ends with "/". - * - * @return {Boolean} - * @api private - */ - -SendStream.prototype.hasTrailingSlash = function(){ - return '/' == this.path[this.path.length - 1]; -}; - -/** - * Check if this is a conditional GET request. - * - * @return {Boolean} - * @api private - */ - -SendStream.prototype.isConditionalGET = function(){ - return this.req.headers['if-none-match'] - || this.req.headers['if-modified-since']; -}; - -/** - * Strip content-* header fields. - * - * @private - */ - -SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields() { - var res = this.res - var headers = Object.keys(res._headers || {}) - - for (var i = 0; i < headers.length; i++) { - var header = headers[i] - if (header.substr(0, 8) === 'content-' && header !== 'content-location') { - res.removeHeader(header) - } - } -} - -/** - * Respond with 304 not modified. - * - * @api private - */ - -SendStream.prototype.notModified = function(){ - var res = this.res; - debug('not modified'); - this.removeContentHeaderFields(); - res.statusCode = 304; - res.end(); -}; - -/** - * Raise error that headers already sent. - * - * @api private - */ - -SendStream.prototype.headersAlreadySent = function headersAlreadySent(){ - var err = new Error('Can\'t set headers after they are sent.'); - debug('headers already sent'); - this.error(500, err); -}; - -/** - * Check if the request is cacheable, aka - * responded with 2xx or 304 (see RFC 2616 section 14.2{5,6}). - * - * @return {Boolean} - * @api private - */ - -SendStream.prototype.isCachable = function(){ - var res = this.res; - return (res.statusCode >= 200 && res.statusCode < 300) || 304 == res.statusCode; -}; - -/** - * Handle stat() error. - * - * @param {Error} error - * @private - */ - -SendStream.prototype.onStatError = function onStatError(error) { - switch (error.code) { - case 'ENAMETOOLONG': - case 'ENOENT': - case 'ENOTDIR': - this.error(404, error) - break - default: - this.error(500, error) - break - } -} - -/** - * Check if the cache is fresh. - * - * @return {Boolean} - * @api private - */ - -SendStream.prototype.isFresh = function(){ - return fresh(this.req.headers, this.res._headers); -}; - -/** - * Check if the range is fresh. - * - * @return {Boolean} - * @api private - */ - -SendStream.prototype.isRangeFresh = function isRangeFresh(){ - var ifRange = this.req.headers['if-range']; - - if (!ifRange) return true; - - return ~ifRange.indexOf('"') - ? ~ifRange.indexOf(this.res._headers['etag']) - : Date.parse(this.res._headers['last-modified']) <= Date.parse(ifRange); -}; - -/** - * Redirect to path. - * - * @param {string} path - * @private - */ - -SendStream.prototype.redirect = function redirect(path) { - if (listenerCount(this, 'directory') !== 0) { - this.emit('directory') - return - } - - if (this.hasTrailingSlash()) { - this.error(403) - return - } - - var loc = path + '/' - var msg = 'Redirecting to ' + escapeHtml(loc) + '\n' - var res = this.res - - // redirect - res.statusCode = 301 - res.setHeader('Content-Type', 'text/html; charset=UTF-8') - res.setHeader('Content-Length', Buffer.byteLength(msg)) - res.setHeader('X-Content-Type-Options', 'nosniff') - res.setHeader('Location', loc) - res.end(msg) -} - -/** - * Pipe to `res. - * - * @param {Stream} res - * @return {Stream} res - * @api public - */ - -SendStream.prototype.pipe = function(res){ - var self = this - , args = arguments - , root = this._root; - - // references - this.res = res; - - // decode the path - var path = decode(this.path) - if (path === -1) return this.error(400) - - // null byte(s) - if (~path.indexOf('\0')) return this.error(400); - - var parts - if (root !== null) { - // malicious path - if (upPathRegexp.test(normalize('.' + sep + path))) { - debug('malicious path "%s"', path) - return this.error(403) - } - - // join / normalize from optional root dir - path = normalize(join(root, path)) - root = normalize(root + sep) - - // explode path parts - parts = path.substr(root.length).split(sep) - } else { - // ".." is malicious without "root" - if (upPathRegexp.test(path)) { - debug('malicious path "%s"', path) - return this.error(403) - } - - // explode path parts - parts = normalize(path).split(sep) - - // resolve the path - path = resolve(path) - } - - // dotfile handling - if (containsDotFile(parts)) { - var access = this._dotfiles - - // legacy support - if (access === undefined) { - access = parts[parts.length - 1][0] === '.' - ? (this._hidden ? 'allow' : 'ignore') - : 'allow' - } - - debug('%s dotfile "%s"', access, path) - switch (access) { - case 'allow': - break - case 'deny': - return this.error(403) - case 'ignore': - default: - return this.error(404) - } - } - - // index file support - if (this._index.length && this.path[this.path.length - 1] === '/') { - this.sendIndex(path); - return res; - } - - this.sendFile(path); - return res; -}; - -/** - * Transfer `path`. - * - * @param {String} path - * @api public - */ - -SendStream.prototype.send = function(path, stat){ - var len = stat.size; - var options = this.options - var opts = {} - var res = this.res; - var req = this.req; - var ranges = req.headers.range; - var offset = options.start || 0; - - if (res._header) { - // impossible to send now - return this.headersAlreadySent(); - } - - debug('pipe "%s"', path) - - // set header fields - this.setHeader(path, stat); - - // set content-type - this.type(path); - - // conditional GET support - if (this.isConditionalGET() - && this.isCachable() - && this.isFresh()) { - return this.notModified(); - } - - // adjust len to start/end options - len = Math.max(0, len - offset); - if (options.end !== undefined) { - var bytes = options.end - offset + 1; - if (len > bytes) len = bytes; - } - - // Range support - if (ranges) { - ranges = parseRange(len, ranges); - - // If-Range support - if (!this.isRangeFresh()) { - debug('range stale'); - ranges = -2; - } - - // unsatisfiable - if (-1 == ranges) { - debug('range unsatisfiable'); - res.setHeader('Content-Range', 'bytes */' + stat.size); - return this.error(416); - } - - // valid (syntactically invalid/multiple ranges are treated as a regular response) - if (-2 != ranges && ranges.length === 1) { - debug('range %j', ranges); - - // Content-Range - res.statusCode = 206; - res.setHeader('Content-Range', 'bytes ' - + ranges[0].start - + '-' - + ranges[0].end - + '/' - + len); - - offset += ranges[0].start; - len = ranges[0].end - ranges[0].start + 1; - } - } - - // clone options - for (var prop in options) { - opts[prop] = options[prop] - } - - // set read options - opts.start = offset - opts.end = Math.max(offset, offset + len - 1) - - // content-length - res.setHeader('Content-Length', len); - - // HEAD support - if ('HEAD' == req.method) return res.end(); - - this.stream(path, opts) -}; - -/** - * Transfer file for `path`. - * - * @param {String} path - * @api private - */ -SendStream.prototype.sendFile = function sendFile(path) { - var i = 0 - var self = this - - debug('stat "%s"', path); - fs.stat(path, function onstat(err, stat) { - if (err && err.code === 'ENOENT' - && !extname(path) - && path[path.length - 1] !== sep) { - // not found, check extensions - return next(err) - } - if (err) return self.onStatError(err) - if (stat.isDirectory()) return self.redirect(self.path) - self.emit('file', path, stat) - self.send(path, stat) - }) - - function next(err) { - if (self._extensions.length <= i) { - return err - ? self.onStatError(err) - : self.error(404) - } - - var p = path + '.' + self._extensions[i++] - - debug('stat "%s"', p) - fs.stat(p, function (err, stat) { - if (err) return next(err) - if (stat.isDirectory()) return next() - self.emit('file', p, stat) - self.send(p, stat) - }) - } -} - -/** - * Transfer index for `path`. - * - * @param {String} path - * @api private - */ -SendStream.prototype.sendIndex = function sendIndex(path){ - var i = -1; - var self = this; - - function next(err){ - if (++i >= self._index.length) { - if (err) return self.onStatError(err); - return self.error(404); - } - - var p = join(path, self._index[i]); - - debug('stat "%s"', p); - fs.stat(p, function(err, stat){ - if (err) return next(err); - if (stat.isDirectory()) return next(); - self.emit('file', p, stat); - self.send(p, stat); - }); - } - - next(); -}; - -/** - * Stream `path` to the response. - * - * @param {String} path - * @param {Object} options - * @api private - */ - -SendStream.prototype.stream = function(path, options){ - // TODO: this is all lame, refactor meeee - var finished = false; - var self = this; - var res = this.res; - var req = this.req; - - // pipe - var stream = fs.createReadStream(path, options); - this.emit('stream', stream); - stream.pipe(res); - - // response finished, done with the fd - onFinished(res, function onfinished(){ - finished = true; - destroy(stream); - }); - - // error handling code-smell - stream.on('error', function onerror(err){ - // request already finished - if (finished) return; - - // clean up stream - finished = true; - destroy(stream); - - // error - self.onStatError(err); - }); - - // end - stream.on('end', function onend(){ - self.emit('end'); - }); -}; - -/** - * Set content-type based on `path` - * if it hasn't been explicitly set. - * - * @param {String} path - * @api private - */ - -SendStream.prototype.type = function(path){ - var res = this.res; - if (res.getHeader('Content-Type')) return; - var type = mime.lookup(path); - var charset = mime.charsets.lookup(type); - debug('content-type %s', type); - res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : '')); -}; - -/** - * Set response header fields, most - * fields may be pre-defined. - * - * @param {String} path - * @param {Object} stat - * @api private - */ - -SendStream.prototype.setHeader = function setHeader(path, stat){ - var res = this.res; - - this.emit('headers', res, path, stat); - - if (!res.getHeader('Accept-Ranges')) res.setHeader('Accept-Ranges', 'bytes'); - if (!res.getHeader('Cache-Control')) res.setHeader('Cache-Control', 'public, max-age=' + Math.floor(this._maxage / 1000)); - - if (this._lastModified && !res.getHeader('Last-Modified')) { - var modified = stat.mtime.toUTCString() - debug('modified %s', modified) - res.setHeader('Last-Modified', modified) - } - - if (this._etag && !res.getHeader('ETag')) { - var val = etag(stat) - debug('etag %s', val) - res.setHeader('ETag', val) - } -}; - -/** - * Determine if path parts contain a dotfile. - * - * @api private - */ - -function containsDotFile(parts) { - for (var i = 0; i < parts.length; i++) { - if (parts[i][0] === '.') { - return true - } - } - - return false -} - -/** - * decodeURIComponent. - * - * Allows V8 to only deoptimize this fn instead of all - * of send(). - * - * @param {String} path - * @api private - */ - -function decode(path) { - try { - return decodeURIComponent(path) - } catch (err) { - return -1 - } -} - -/** - * Normalize the index option into an array. - * - * @param {boolean|string|array} val - * @param {string} name - * @private - */ - -function normalizeList(val, name) { - var list = [].concat(val || []) - - for (var i = 0; i < list.length; i++) { - if (typeof list[i] !== 'string') { - throw new TypeError(name + ' must be array of strings or false') - } - } - - return list -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/.bin/mime b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/.bin/mime deleted file mode 120000 index fbb7ee0e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/.bin/mime +++ /dev/null @@ -1 +0,0 @@ -../mime/cli.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/README.md deleted file mode 100644 index 6474bc3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# Destroy - -[![NPM version][npm-image]][npm-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] -[![Gittip][gittip-image]][gittip-url] - -Destroy a stream. - -This module is meant to ensure a stream gets destroyed, handling different APIs -and Node.js bugs. - -## API - -```js -var destroy = require('destroy') -``` - -### destroy(stream) - -Destroy the given stream. In most cases, this is identical to a simple -`stream.destroy()` call. The rules are as follows for a given stream: - - 1. If the `stream` is an instance of `ReadStream`, then call `stream.destroy()` - and add a listener to the `open` event to call `stream.close()` if it is - fired. This is for a Node.js bug that will leak a file descriptor if - `.destroy()` is called before `open`. - 2. If the `stream` is not an instance of `Stream`, then nothing happens. - 3. If the `stream` has a `.destroy()` method, then call it. - -The function returns the `stream` passed in as the argument. - -## Example - -```js -var destroy = require('destroy') - -var fs = require('fs') -var stream = fs.createReadStream('package.json') - -// ... and later -destroy(stream) -``` - -[npm-image]: https://img.shields.io/npm/v/destroy.svg?style=flat-square -[npm-url]: https://npmjs.org/package/destroy -[github-tag]: http://img.shields.io/github/tag/stream-utils/destroy.svg?style=flat-square -[github-url]: https://github.com/stream-utils/destroy/tags -[travis-image]: https://img.shields.io/travis/stream-utils/destroy.svg?style=flat-square -[travis-url]: https://travis-ci.org/stream-utils/destroy -[coveralls-image]: https://img.shields.io/coveralls/stream-utils/destroy.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/stream-utils/destroy?branch=master -[license-image]: http://img.shields.io/npm/l/destroy.svg?style=flat-square -[license-url]: LICENSE.md -[downloads-image]: http://img.shields.io/npm/dm/destroy.svg?style=flat-square -[downloads-url]: https://npmjs.org/package/destroy -[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square -[gittip-url]: https://www.gittip.com/jonathanong/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/index.js deleted file mode 100644 index 6da2d26e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/index.js +++ /dev/null @@ -1,75 +0,0 @@ -/*! - * destroy - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var ReadStream = require('fs').ReadStream -var Stream = require('stream') - -/** - * Module exports. - * @public - */ - -module.exports = destroy - -/** - * Destroy a stream. - * - * @param {object} stream - * @public - */ - -function destroy(stream) { - if (stream instanceof ReadStream) { - return destroyReadStream(stream) - } - - if (!(stream instanceof Stream)) { - return stream - } - - if (typeof stream.destroy === 'function') { - stream.destroy() - } - - return stream -} - -/** - * Destroy a ReadStream. - * - * @param {object} stream - * @private - */ - -function destroyReadStream(stream) { - stream.destroy() - - if (typeof stream.close === 'function') { - // node.js core bug work-around - stream.on('open', onOpenClose) - } - - return stream -} - -/** - * On open handler to close stream. - * @private - */ - -function onOpenClose() { - if (typeof this.fd === 'number') { - // actually close down the fd - this.close() - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/package.json deleted file mode 100644 index ec1ed98a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/destroy/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "destroy", - "description": "destroy a stream if possible", - "version": "1.0.4", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/stream-utils/destroy.git" - }, - "devDependencies": { - "istanbul": "0.4.2", - "mocha": "2.3.4" - }, - "scripts": { - "test": "mocha --reporter spec", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" - }, - "files": [ - "index.js", - "LICENSE" - ], - "keywords": [ - "stream", - "streams", - "destroy", - "cleanup", - "leak", - "fd" - ], - "gitHead": "86edea01456f5fa1027f6a47250c34c713cbcc3b", - "bugs": { - "url": "https://github.com/stream-utils/destroy/issues" - }, - "homepage": "https://github.com/stream-utils/destroy", - "_id": "destroy@1.0.4", - "_shasum": "978857442c44749e4206613e37946205826abd80", - "_from": "destroy@>=1.0.4 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "978857442c44749e4206613e37946205826abd80", - "tarball": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/HISTORY.md deleted file mode 100644 index 4c7087df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/HISTORY.md +++ /dev/null @@ -1,76 +0,0 @@ -2015-02-02 / 1.3.1 -================== - - * Fix regression where status can be overwritten in `createError` `props` - -2015-02-01 / 1.3.0 -================== - - * Construct errors using defined constructors from `createError` - * Fix error names that are not identifiers - - `createError["I'mateapot"]` is now `createError.ImATeapot` - * Set a meaningful `name` property on constructed errors - -2014-12-09 / 1.2.8 -================== - - * Fix stack trace from exported function - * Remove `arguments.callee` usage - -2014-10-14 / 1.2.7 -================== - - * Remove duplicate line - -2014-10-02 / 1.2.6 -================== - - * Fix `expose` to be `true` for `ClientError` constructor - -2014-09-28 / 1.2.5 -================== - - * deps: statuses@1 - -2014-09-21 / 1.2.4 -================== - - * Fix dependency version to work with old `npm`s - -2014-09-21 / 1.2.3 -================== - - * deps: statuses@~1.1.0 - -2014-09-21 / 1.2.2 -================== - - * Fix publish error - -2014-09-21 / 1.2.1 -================== - - * Support Node.js 0.6 - * Use `inherits` instead of `util` - -2014-09-09 / 1.2.0 -================== - - * Fix the way inheriting functions - * Support `expose` being provided in properties argument - -2014-09-08 / 1.1.0 -================== - - * Default status to 500 - * Support provided `error` to extend - -2014-09-08 / 1.0.1 -================== - - * Fix accepting string message - -2014-09-08 / 1.0.0 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/README.md deleted file mode 100644 index 520271ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/README.md +++ /dev/null @@ -1,63 +0,0 @@ -# http-errors - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create HTTP errors for Express, Koa, Connect, etc. with ease. - -## Example - -```js -var createError = require('http-errors'); - -app.use(function (req, res, next) { - if (!req.user) return next(createError(401, 'Please login to view this page.')); - next(); -}) -``` - -## API - -This is the current API, currently extracted from Koa and subject to change. - -### Error Properties - -- `message` -- `status` and `statusCode` - the status code of the error, defaulting to `500` - -### createError([status], [message], [properties]) - -```js -var err = createError(404, 'This video does not exist!'); -``` - -- `status: 500` - the status code as a number -- `message` - the message of the error, defaulting to node's text for that status code. -- `properties` - custom properties to attach to the object - -### new createError\[code || name\](\[msg]\)) - -```js -var err = new createError.NotFound(); -``` - -- `code` - the status code as a number -- `name` - the name of the error as a "bumpy case", i.e. `NotFound` or `InternalServerError`. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/http-errors.svg?style=flat -[npm-url]: https://npmjs.org/package/http-errors -[node-version-image]: https://img.shields.io/node/v/http-errors.svg?style=flat -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/http-errors.svg?style=flat -[travis-url]: https://travis-ci.org/jshttp/http-errors -[coveralls-image]: https://img.shields.io/coveralls/jshttp/http-errors.svg?style=flat -[coveralls-url]: https://coveralls.io/r/jshttp/http-errors -[downloads-image]: https://img.shields.io/npm/dm/http-errors.svg?style=flat -[downloads-url]: https://npmjs.org/package/http-errors diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/index.js deleted file mode 100644 index d84b1140..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/index.js +++ /dev/null @@ -1,120 +0,0 @@ - -var statuses = require('statuses'); -var inherits = require('inherits'); - -function toIdentifier(str) { - return str.split(' ').map(function (token) { - return token.slice(0, 1).toUpperCase() + token.slice(1) - }).join('').replace(/[^ _0-9a-z]/gi, '') -} - -exports = module.exports = function httpError() { - // so much arity going on ~_~ - var err; - var msg; - var status = 500; - var props = {}; - for (var i = 0; i < arguments.length; i++) { - var arg = arguments[i]; - if (arg instanceof Error) { - err = arg; - status = err.status || err.statusCode || status; - continue; - } - switch (typeof arg) { - case 'string': - msg = arg; - break; - case 'number': - status = arg; - break; - case 'object': - props = arg; - break; - } - } - - if (typeof status !== 'number' || !statuses[status]) { - status = 500 - } - - // constructor - var HttpError = exports[status] - - if (!err) { - // create error - err = HttpError - ? new HttpError(msg) - : new Error(msg || statuses[status]) - Error.captureStackTrace(err, httpError) - } - - if (!HttpError || !(err instanceof HttpError)) { - // add properties to generic error - err.expose = status < 500 - err.status = err.statusCode = status - } - - for (var key in props) { - if (key !== 'status' && key !== 'statusCode') { - err[key] = props[key] - } - } - - return err; -}; - -// create generic error objects -var codes = statuses.codes.filter(function (num) { - return num >= 400; -}); - -codes.forEach(function (code) { - var name = toIdentifier(statuses[code]) - var className = name.match(/Error$/) ? name : name + 'Error' - - if (code >= 500) { - var ServerError = function ServerError(msg) { - var self = new Error(msg != null ? msg : statuses[code]) - Error.captureStackTrace(self, ServerError) - self.__proto__ = ServerError.prototype - Object.defineProperty(self, 'name', { - enumerable: false, - configurable: true, - value: className, - writable: true - }) - return self - } - inherits(ServerError, Error); - ServerError.prototype.status = - ServerError.prototype.statusCode = code; - ServerError.prototype.expose = false; - exports[code] = - exports[name] = ServerError - return; - } - - var ClientError = function ClientError(msg) { - var self = new Error(msg != null ? msg : statuses[code]) - Error.captureStackTrace(self, ClientError) - self.__proto__ = ClientError.prototype - Object.defineProperty(self, 'name', { - enumerable: false, - configurable: true, - value: className, - writable: true - }) - return self - } - inherits(ClientError, Error); - ClientError.prototype.status = - ClientError.prototype.statusCode = code; - ClientError.prototype.expose = true; - exports[code] = - exports[name] = ClientError - return; -}); - -// backwards-compatibility -exports["I'mateapot"] = exports.ImATeapot diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/LICENSE deleted file mode 100644 index dea3013d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/README.md deleted file mode 100644 index b1c56658..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/README.md +++ /dev/null @@ -1,42 +0,0 @@ -Browser-friendly inheritance fully compatible with standard node.js -[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). - -This package exports standard `inherits` from node.js `util` module in -node environment, but also provides alternative browser-friendly -implementation through [browser -field](https://gist.github.com/shtylman/4339901). Alternative -implementation is a literal copy of standard one located in standalone -module to avoid requiring of `util`. It also has a shim for old -browsers with no `Object.create` support. - -While keeping you sure you are using standard `inherits` -implementation in node.js environment, it allows bundlers such as -[browserify](https://github.com/substack/node-browserify) to not -include full `util` package to your client code if all you need is -just `inherits` function. It worth, because browser shim for `util` -package is large and `inherits` is often the single function you need -from it. - -It's recommended to use this package instead of -`require('util').inherits` for any code that has chances to be used -not only in node.js but in browser too. - -## usage - -```js -var inherits = require('inherits'); -// then use exactly as the standard one -``` - -## note on version ~1.0 - -Version ~1.0 had completely different motivation and is not compatible -neither with 2.0 nor with standard node.js `inherits`. - -If you are using version ~1.0 and planning to switch to ~2.0, be -careful: - -* new version uses `super_` instead of `super` for referencing - superclass -* new version overwrites current prototype while old one preserves any - existing fields on it diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits.js deleted file mode 100644 index 3b94763a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits.js +++ /dev/null @@ -1,7 +0,0 @@ -try { - var util = require('util'); - if (typeof util.inherits !== 'function') throw ''; - module.exports = util.inherits; -} catch (e) { - module.exports = require('./inherits_browser.js'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits_browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits_browser.js deleted file mode 100644 index c1e78a75..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits_browser.js +++ /dev/null @@ -1,23 +0,0 @@ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/package.json deleted file mode 100644 index 9146e757..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/node_modules/inherits/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "inherits", - "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.3", - "keywords": [ - "inheritance", - "class", - "klass", - "oop", - "object-oriented", - "inherits", - "browser", - "browserify" - ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/inherits.git" - }, - "license": "ISC", - "scripts": { - "test": "node test" - }, - "devDependencies": { - "tap": "^7.1.0" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ], - "gitHead": "e05d0fb27c61a3ec687214f0476386b765364d5f", - "bugs": { - "url": "https://github.com/isaacs/inherits/issues" - }, - "homepage": "https://github.com/isaacs/inherits#readme", - "_id": "inherits@2.0.3", - "_shasum": "633c2c83e3da42a502f52466022480f4208261de", - "_from": "inherits@>=2.0.1 <2.1.0", - "_npmVersion": "3.10.7", - "_nodeVersion": "6.5.0", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "633c2c83e3da42a502f52466022480f4208261de", - "tarball": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/inherits-2.0.3.tgz_1473295776489_0.08142363070510328" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/package.json deleted file mode 100644 index 362434f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/http-errors/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "http-errors", - "description": "Create HTTP error objects", - "version": "1.3.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Alan Plum", - "email": "me@pluma.io" - }, - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/http-errors.git" - }, - "dependencies": { - "inherits": "~2.0.1", - "statuses": "1" - }, - "devDependencies": { - "istanbul": "0", - "mocha": "1" - }, - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --bail", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" - }, - "keywords": [ - "http", - "error" - ], - "files": [ - "index.js", - "HISTORY.md", - "LICENSE", - "README.md" - ], - "gitHead": "89a8502b40d5dd42da2908f265275e2eeb8d0699", - "bugs": { - "url": "https://github.com/jshttp/http-errors/issues" - }, - "homepage": "https://github.com/jshttp/http-errors", - "_id": "http-errors@1.3.1", - "_shasum": "197e22cdebd4198585e8694ef6786197b91ed942", - "_from": "http-errors@>=1.3.1 <1.4.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "egeste", - "email": "npm@egeste.net" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "197e22cdebd4198585e8694ef6786197b91ed942", - "tarball": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/.npmignore deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/LICENSE deleted file mode 100644 index 451fc455..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010 Benjamin Thomas, Robert Kieffer - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/README.md deleted file mode 100644 index 506fbe55..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/README.md +++ /dev/null @@ -1,90 +0,0 @@ -# mime - -Comprehensive MIME type mapping API based on mime-db module. - -## Install - -Install with [npm](http://github.com/isaacs/npm): - - npm install mime - -## Contributing / Testing - - npm run test - -## Command Line - - mime [path_string] - -E.g. - - > mime scripts/jquery.js - application/javascript - -## API - Queries - -### mime.lookup(path) -Get the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.'). E.g. - -```js -var mime = require('mime'); - -mime.lookup('/path/to/file.txt'); // => 'text/plain' -mime.lookup('file.txt'); // => 'text/plain' -mime.lookup('.TXT'); // => 'text/plain' -mime.lookup('htm'); // => 'text/html' -``` - -### mime.default_type -Sets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.) - -### mime.extension(type) -Get the default extension for `type` - -```js -mime.extension('text/html'); // => 'html' -mime.extension('application/octet-stream'); // => 'bin' -``` - -### mime.charsets.lookup() - -Map mime-type to charset - -```js -mime.charsets.lookup('text/plain'); // => 'UTF-8' -``` - -(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.) - -## API - Defining Custom Types - -Custom type mappings can be added on a per-project basis via the following APIs. - -### mime.define() - -Add custom mime/extension mappings - -```js -mime.define({ - 'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'], - 'application/x-my-type': ['x-mt', 'x-mtt'], - // etc ... -}); - -mime.lookup('x-sft'); // => 'text/x-some-format' -``` - -The first entry in the extensions array is returned by `mime.extension()`. E.g. - -```js -mime.extension('text/x-some-format'); // => 'x-sf' -``` - -### mime.load(filepath) - -Load mappings from an Apache ".types" format file - -```js -mime.load('./my_project.types'); -``` -The .types file format is simple - See the `types` dir for examples. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/build/build.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/build/build.js deleted file mode 100644 index ed5313e3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/build/build.js +++ /dev/null @@ -1,11 +0,0 @@ -var db = require('mime-db'); - -var mapByType = {}; -Object.keys(db).forEach(function(key) { - var extensions = db[key].extensions; - if (extensions) { - mapByType[key] = extensions; - } -}); - -console.log(JSON.stringify(mapByType)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/build/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/build/test.js deleted file mode 100644 index 58b9ba7c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/build/test.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Usage: node test.js - */ - -var mime = require('../mime'); -var assert = require('assert'); -var path = require('path'); - -// -// Test mime lookups -// - -assert.equal('text/plain', mime.lookup('text.txt')); // normal file -assert.equal('text/plain', mime.lookup('TEXT.TXT')); // uppercase -assert.equal('text/plain', mime.lookup('dir/text.txt')); // dir + file -assert.equal('text/plain', mime.lookup('.text.txt')); // hidden file -assert.equal('text/plain', mime.lookup('.txt')); // nameless -assert.equal('text/plain', mime.lookup('txt')); // extension-only -assert.equal('text/plain', mime.lookup('/txt')); // extension-less () -assert.equal('text/plain', mime.lookup('\\txt')); // Windows, extension-less -assert.equal('application/octet-stream', mime.lookup('text.nope')); // unrecognized -assert.equal('fallback', mime.lookup('text.fallback', 'fallback')); // alternate default - -// -// Test extensions -// - -assert.equal('txt', mime.extension(mime.types.text)); -assert.equal('html', mime.extension(mime.types.htm)); -assert.equal('bin', mime.extension('application/octet-stream')); -assert.equal('bin', mime.extension('application/octet-stream ')); -assert.equal('html', mime.extension(' text/html; charset=UTF-8')); -assert.equal('html', mime.extension('text/html; charset=UTF-8 ')); -assert.equal('html', mime.extension('text/html; charset=UTF-8')); -assert.equal('html', mime.extension('text/html ; charset=UTF-8')); -assert.equal('html', mime.extension('text/html;charset=UTF-8')); -assert.equal('html', mime.extension('text/Html;charset=UTF-8')); -assert.equal(undefined, mime.extension('unrecognized')); - -// -// Test node.types lookups -// - -assert.equal('application/font-woff', mime.lookup('file.woff')); -assert.equal('application/octet-stream', mime.lookup('file.buffer')); -assert.equal('audio/mp4', mime.lookup('file.m4a')); -assert.equal('font/opentype', mime.lookup('file.otf')); - -// -// Test charsets -// - -assert.equal('UTF-8', mime.charsets.lookup('text/plain')); -assert.equal(undefined, mime.charsets.lookup(mime.types.js)); -assert.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback')); - -console.log('\nAll tests passed'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/cli.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/cli.js deleted file mode 100755 index 20b1ffeb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/cli.js +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node - -var mime = require('./mime.js'); -var file = process.argv[2]; -var type = mime.lookup(file); - -process.stdout.write(type + '\n'); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/mime.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/mime.js deleted file mode 100644 index 341b6a5c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/mime.js +++ /dev/null @@ -1,108 +0,0 @@ -var path = require('path'); -var fs = require('fs'); - -function Mime() { - // Map of extension -> mime type - this.types = Object.create(null); - - // Map of mime type -> extension - this.extensions = Object.create(null); -} - -/** - * Define mimetype -> extension mappings. Each key is a mime-type that maps - * to an array of extensions associated with the type. The first extension is - * used as the default extension for the type. - * - * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']}); - * - * @param map (Object) type definitions - */ -Mime.prototype.define = function (map) { - for (var type in map) { - var exts = map[type]; - for (var i = 0; i < exts.length; i++) { - if (process.env.DEBUG_MIME && this.types[exts]) { - console.warn(this._loading.replace(/.*\//, ''), 'changes "' + exts[i] + '" extension type from ' + - this.types[exts] + ' to ' + type); - } - - this.types[exts[i]] = type; - } - - // Default extension is the first one we encounter - if (!this.extensions[type]) { - this.extensions[type] = exts[0]; - } - } -}; - -/** - * Load an Apache2-style ".types" file - * - * This may be called multiple times (it's expected). Where files declare - * overlapping types/extensions, the last file wins. - * - * @param file (String) path of file to load. - */ -Mime.prototype.load = function(file) { - this._loading = file; - // Read file and split into lines - var map = {}, - content = fs.readFileSync(file, 'ascii'), - lines = content.split(/[\r\n]+/); - - lines.forEach(function(line) { - // Clean up whitespace/comments, and split into fields - var fields = line.replace(/\s*#.*|^\s*|\s*$/g, '').split(/\s+/); - map[fields.shift()] = fields; - }); - - this.define(map); - - this._loading = null; -}; - -/** - * Lookup a mime type based on extension - */ -Mime.prototype.lookup = function(path, fallback) { - var ext = path.replace(/.*[\.\/\\]/, '').toLowerCase(); - - return this.types[ext] || fallback || this.default_type; -}; - -/** - * Return file extension associated with a mime type - */ -Mime.prototype.extension = function(mimeType) { - var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase(); - return this.extensions[type]; -}; - -// Default instance -var mime = new Mime(); - -// Define built-in types -mime.define(require('./types.json')); - -// Default type -mime.default_type = mime.lookup('bin'); - -// -// Additional API specific to the default instance -// - -mime.Mime = Mime; - -/** - * Lookup a charset based on mime type. - */ -mime.charsets = { - lookup: function(mimeType, fallback) { - // Assume text types are utf8 - return (/^text\//).test(mimeType) ? 'UTF-8' : fallback; - } -}; - -module.exports = mime; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/package.json deleted file mode 100644 index 9c9c711b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "author": { - "name": "Robert Kieffer", - "email": "robert@broofa.com", - "url": "http://github.com/broofa" - }, - "scripts": { - "prepublish": "node build/build.js > types.json", - "test": "node build/test.js" - }, - "bin": { - "mime": "cli.js" - }, - "contributors": [ - { - "name": "Benjamin Thomas", - "email": "benjamin@benjaminthomas.org", - "url": "http://github.com/bentomas" - } - ], - "description": "A comprehensive library for mime-type mapping", - "licenses": [ - { - "type": "MIT", - "url": "https://raw.github.com/broofa/node-mime/master/LICENSE" - } - ], - "dependencies": {}, - "devDependencies": { - "mime-db": "^1.2.0" - }, - "keywords": [ - "util", - "mime" - ], - "main": "mime.js", - "name": "mime", - "repository": { - "url": "git+https://github.com/broofa/node-mime.git", - "type": "git" - }, - "version": "1.3.4", - "gitHead": "1628f6e0187095009dcef4805c3a49706f137974", - "bugs": { - "url": "https://github.com/broofa/node-mime/issues" - }, - "homepage": "https://github.com/broofa/node-mime", - "_id": "mime@1.3.4", - "_shasum": "115f9e3b6b3daf2959983cb38f149a2d40eb5d53", - "_from": "mime@1.3.4", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "broofa", - "email": "robert@broofa.com" - }, - "maintainers": [ - { - "name": "broofa", - "email": "robert@broofa.com" - }, - { - "name": "bentomas", - "email": "benjamin@benjaminthomas.org" - } - ], - "dist": { - "shasum": "115f9e3b6b3daf2959983cb38f149a2d40eb5d53", - "tarball": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/types.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/types.json deleted file mode 100644 index c674b1c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/mime/types.json +++ /dev/null @@ -1 +0,0 @@ -{"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mdp"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":["woff"],"application/font-woff2":["woff2"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["dmg"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-otf":["otf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-ttf":["ttf","ttc"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["iso"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdownload":["exe","dll","com","bat","msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","wmz","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-nzb":["nzb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-research-info-systems":["ris"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp4":["mp4a","m4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-wav":["wav"],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/opentype":["otf"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jpeg":["jpeg","jpg","jpe"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-mrsid-image":["sid"],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/sgml":["sgml","sgm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["markdown","md","mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-pascal":["p","pas"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/.npmignore deleted file mode 100644 index d1aa0ce4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules -test -History.md -Makefile -component.json diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/History.md deleted file mode 100644 index 32fdfc17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/History.md +++ /dev/null @@ -1,66 +0,0 @@ - -0.7.1 / 2015-04-20 -================== - - * prevent extraordinary long inputs (@evilpacket) - * Fixed broken readme link - -0.7.0 / 2014-11-24 -================== - - * add time abbreviations, updated tests and readme for the new units - * fix example in the readme. - * add LICENSE file - -0.6.2 / 2013-12-05 -================== - - * Adding repository section to package.json to suppress warning from NPM. - -0.6.1 / 2013-05-10 -================== - - * fix singularization [visionmedia] - -0.6.0 / 2013-03-15 -================== - - * fix minutes - -0.5.1 / 2013-02-24 -================== - - * add component namespace - -0.5.0 / 2012-11-09 -================== - - * add short formatting as default and .long option - * add .license property to component.json - * add version to component.json - -0.4.0 / 2012-10-22 -================== - - * add rounding to fix crazy decimals - -0.3.0 / 2012-09-07 -================== - - * fix `ms()` [visionmedia] - -0.2.0 / 2012-09-03 -================== - - * add component.json [visionmedia] - * add days support [visionmedia] - * add hours support [visionmedia] - * add minutes support [visionmedia] - * add seconds support [visionmedia] - * add ms string support [visionmedia] - * refactor tests to facilitate ms(number) [visionmedia] - -0.1.0 / 2012-03-07 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/LICENSE deleted file mode 100644 index 6c07561b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Guillermo Rauch - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/README.md deleted file mode 100644 index 9b4fd035..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# ms.js: miliseconds conversion utility - -```js -ms('2 days') // 172800000 -ms('1d') // 86400000 -ms('10h') // 36000000 -ms('2.5 hrs') // 9000000 -ms('2h') // 7200000 -ms('1m') // 60000 -ms('5s') // 5000 -ms('100') // 100 -``` - -```js -ms(60000) // "1m" -ms(2 * 60000) // "2m" -ms(ms('10 hours')) // "10h" -``` - -```js -ms(60000, { long: true }) // "1 minute" -ms(2 * 60000, { long: true }) // "2 minutes" -ms(ms('10 hours'), { long: true }) // "10 hours" -``` - -- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download). -- If a number is supplied to `ms`, a string with a unit is returned. -- If a string that contains the number is supplied, it returns it as -a number (e.g: it returns `100` for `'100'`). -- If you pass a string with a number and a valid unit, the number of -equivalent ms is returned. - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/index.js deleted file mode 100644 index 4f927716..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/index.js +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} options - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options){ - options = options || {}; - if ('string' == typeof val) return parse(val); - return options.long - ? long(val) - : short(val); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = '' + str; - if (str.length > 10000) return; - var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str); - if (!match) return; - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function short(ms) { - if (ms >= d) return Math.round(ms / d) + 'd'; - if (ms >= h) return Math.round(ms / h) + 'h'; - if (ms >= m) return Math.round(ms / m) + 'm'; - if (ms >= s) return Math.round(ms / s) + 's'; - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function long(ms) { - return plural(ms, d, 'day') - || plural(ms, h, 'hour') - || plural(ms, m, 'minute') - || plural(ms, s, 'second') - || ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, n, name) { - if (ms < n) return; - if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name; - return Math.ceil(ms / n) + ' ' + name + 's'; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/package.json deleted file mode 100644 index e36489ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/ms/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "ms", - "version": "0.7.1", - "description": "Tiny ms conversion utility", - "repository": { - "type": "git", - "url": "git://github.com/guille/ms.js.git" - }, - "main": "./index", - "devDependencies": { - "mocha": "*", - "expect.js": "*", - "serve": "*" - }, - "component": { - "scripts": { - "ms/index.js": "index.js" - } - }, - "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909", - "bugs": { - "url": "https://github.com/guille/ms.js/issues" - }, - "homepage": "https://github.com/guille/ms.js", - "_id": "ms@0.7.1", - "scripts": {}, - "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "_from": "ms@0.7.1", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/README.md deleted file mode 100644 index f6ae24c7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/README.md +++ /dev/null @@ -1,114 +0,0 @@ -# Statuses - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -HTTP status utility for node. - -## API - -```js -var status = require('statuses'); -``` - -### var code = status(Integer || String) - -If `Integer` or `String` is a valid HTTP code or status message, then the appropriate `code` will be returned. Otherwise, an error will be thrown. - -```js -status(403) // => 'Forbidden' -status('403') // => 'Forbidden' -status('forbidden') // => 403 -status('Forbidden') // => 403 -status(306) // throws, as it's not supported by node.js -``` - -### status.codes - -Returns an array of all the status codes as `Integer`s. - -### var msg = status[code] - -Map of `code` to `status message`. `undefined` for invalid `code`s. - -```js -status[404] // => 'Not Found' -``` - -### var code = status[msg] - -Map of `status message` to `code`. `msg` can either be title-cased or lower-cased. `undefined` for invalid `status message`s. - -```js -status['not found'] // => 404 -status['Not Found'] // => 404 -``` - -### status.redirect[code] - -Returns `true` if a status code is a valid redirect status. - -```js -status.redirect[200] // => undefined -status.redirect[301] // => true -``` - -### status.empty[code] - -Returns `true` if a status code expects an empty body. - -```js -status.empty[200] // => undefined -status.empty[204] // => true -status.empty[304] // => true -``` - -### status.retry[code] - -Returns `true` if you should retry the rest. - -```js -status.retry[501] // => undefined -status.retry[503] // => true -``` - -### statuses/codes.json - -```js -var codes = require('statuses/codes.json'); -``` - -This is a JSON file of the status codes -taken from `require('http').STATUS_CODES`. -This is saved so that codes are consistent even in older node.js versions. -For example, `308` will be added in v0.12. - -## Adding Status Codes - -The status codes are primarily sourced from http://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv. -Additionally, custom codes are added from http://en.wikipedia.org/wiki/List_of_HTTP_status_codes. -These are added manually in the `lib/*.json` files. -If you would like to add a status code, add it to the appropriate JSON file. - -To rebuild `codes.json`, run the following: - -```bash -# update src/iana.json -npm run update -# build codes.json -npm run build -``` - -[npm-image]: https://img.shields.io/npm/v/statuses.svg?style=flat -[npm-url]: https://npmjs.org/package/statuses -[node-version-image]: http://img.shields.io/badge/node.js-%3E%3D_0.6-brightgreen.svg?style=flat -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/statuses.svg?style=flat -[travis-url]: https://travis-ci.org/jshttp/statuses -[coveralls-image]: https://img.shields.io/coveralls/jshttp/statuses.svg?style=flat -[coveralls-url]: https://coveralls.io/r/jshttp/statuses?branch=master -[downloads-image]: http://img.shields.io/npm/dm/statuses.svg?style=flat -[downloads-url]: https://npmjs.org/package/statuses diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/codes.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/codes.json deleted file mode 100644 index 4c45a88a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/codes.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "100": "Continue", - "101": "Switching Protocols", - "102": "Processing", - "200": "OK", - "201": "Created", - "202": "Accepted", - "203": "Non-Authoritative Information", - "204": "No Content", - "205": "Reset Content", - "206": "Partial Content", - "207": "Multi-Status", - "208": "Already Reported", - "226": "IM Used", - "300": "Multiple Choices", - "301": "Moved Permanently", - "302": "Found", - "303": "See Other", - "304": "Not Modified", - "305": "Use Proxy", - "306": "(Unused)", - "307": "Temporary Redirect", - "308": "Permanent Redirect", - "400": "Bad Request", - "401": "Unauthorized", - "402": "Payment Required", - "403": "Forbidden", - "404": "Not Found", - "405": "Method Not Allowed", - "406": "Not Acceptable", - "407": "Proxy Authentication Required", - "408": "Request Timeout", - "409": "Conflict", - "410": "Gone", - "411": "Length Required", - "412": "Precondition Failed", - "413": "Payload Too Large", - "414": "URI Too Long", - "415": "Unsupported Media Type", - "416": "Range Not Satisfiable", - "417": "Expectation Failed", - "418": "I'm a teapot", - "422": "Unprocessable Entity", - "423": "Locked", - "424": "Failed Dependency", - "425": "Unordered Collection", - "426": "Upgrade Required", - "428": "Precondition Required", - "429": "Too Many Requests", - "431": "Request Header Fields Too Large", - "451": "Unavailable For Legal Reasons", - "500": "Internal Server Error", - "501": "Not Implemented", - "502": "Bad Gateway", - "503": "Service Unavailable", - "504": "Gateway Timeout", - "505": "HTTP Version Not Supported", - "506": "Variant Also Negotiates", - "507": "Insufficient Storage", - "508": "Loop Detected", - "509": "Bandwidth Limit Exceeded", - "510": "Not Extended", - "511": "Network Authentication Required" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/index.js deleted file mode 100644 index b06182d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/index.js +++ /dev/null @@ -1,60 +0,0 @@ - -var codes = require('./codes.json'); - -module.exports = status; - -// [Integer...] -status.codes = Object.keys(codes).map(function (code) { - code = ~~code; - var msg = codes[code]; - status[code] = msg; - status[msg] = status[msg.toLowerCase()] = code; - return code; -}); - -// status codes for redirects -status.redirect = { - 300: true, - 301: true, - 302: true, - 303: true, - 305: true, - 307: true, - 308: true, -}; - -// status codes for empty bodies -status.empty = { - 204: true, - 205: true, - 304: true, -}; - -// status codes for when you should retry the request -status.retry = { - 502: true, - 503: true, - 504: true, -}; - -function status(code) { - if (typeof code === 'number') { - if (!status[code]) throw new Error('invalid status code: ' + code); - return code; - } - - if (typeof code !== 'string') { - throw new TypeError('code must be a number or string'); - } - - // '403' - var n = parseInt(code, 10) - if (!isNaN(n)) { - if (!status[n]) throw new Error('invalid status code: ' + n); - return n; - } - - n = status[code.toLowerCase()]; - if (!n) throw new Error('invalid status message: "' + code + '"'); - return n; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/package.json deleted file mode 100644 index 74fac2e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/node_modules/statuses/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "name": "statuses", - "description": "HTTP status utility", - "version": "1.2.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/statuses.git" - }, - "license": "MIT", - "keywords": [ - "http", - "status", - "code" - ], - "files": [ - "index.js", - "codes.json", - "LICENSE" - ], - "devDependencies": { - "csv-parse": "0.0.6", - "istanbul": "0", - "mocha": "1", - "stream-to-array": "2" - }, - "scripts": { - "build": "node scripts/build.js", - "update": "node scripts/update.js", - "test": "mocha --reporter spec --bail --check-leaks", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks" - }, - "gitHead": "49e6ac7ae4c63ee8186f56cb52112a7eeda28ed7", - "bugs": { - "url": "https://github.com/jshttp/statuses/issues" - }, - "homepage": "https://github.com/jshttp/statuses", - "_id": "statuses@1.2.1", - "_shasum": "dded45cc18256d51ed40aec142489d5c61026d28", - "_from": "statuses@>=1.2.1 <1.3.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "shtylman", - "email": "shtylman@gmail.com" - }, - { - "name": "mscdex", - "email": "mscdex@mscdex.net" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - } - ], - "dist": { - "shasum": "dded45cc18256d51ed40aec142489d5c61026d28", - "tarball": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/package.json deleted file mode 100644 index 85f504a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/send/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "send", - "description": "Better streaming static file server with Range and conditional-GET support", - "version": "0.13.1", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/pillarjs/send.git" - }, - "keywords": [ - "static", - "file", - "server" - ], - "dependencies": { - "debug": "~2.2.0", - "depd": "~1.1.0", - "destroy": "~1.0.4", - "escape-html": "~1.0.3", - "etag": "~1.7.0", - "fresh": "0.3.0", - "http-errors": "~1.3.1", - "mime": "1.3.4", - "ms": "0.7.1", - "on-finished": "~2.3.0", - "range-parser": "~1.0.3", - "statuses": "~1.2.1" - }, - "devDependencies": { - "after": "0.8.1", - "istanbul": "0.4.2", - "mocha": "2.3.4", - "supertest": "1.1.0" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8.0" - }, - "scripts": { - "test": "mocha --check-leaks --reporter spec --bail", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot" - }, - "gitHead": "dbce43fc7102c14b475c25cde918b726063cc991", - "bugs": { - "url": "https://github.com/pillarjs/send/issues" - }, - "homepage": "https://github.com/pillarjs/send", - "_id": "send@0.13.1", - "_shasum": "a30d5f4c82c8a9bae9ad00a1d9b1bdbe6f199ed7", - "_from": "send@0.13.1", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "a30d5f4c82c8a9bae9ad00a1d9b1bdbe6f199ed7", - "tarball": "https://registry.npmjs.org/send/-/send-0.13.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/HISTORY.md deleted file mode 100644 index 5ec118c7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/HISTORY.md +++ /dev/null @@ -1,206 +0,0 @@ -1.6.13 / 2016-05-18 -=================== - - * deps: mime-types@~2.1.11 - - Add new mime types - -1.6.12 / 2016-02-28 -=================== - - * deps: mime-types@~2.1.10 - - Add new mime types - - Fix extension of `application/dash+xml` - - Update primary extension for `audio/mp4` - -1.6.11 / 2016-01-29 -=================== - - * deps: mime-types@~2.1.9 - - Add new mime types - -1.6.10 / 2015-12-01 -=================== - - * deps: mime-types@~2.1.8 - - Add new mime types - -1.6.9 / 2015-09-27 -================== - - * deps: mime-types@~2.1.7 - - Add new mime types - -1.6.8 / 2015-09-04 -================== - - * deps: mime-types@~2.1.6 - - Add new mime types - -1.6.7 / 2015-08-20 -================== - - * Fix type error when given invalid type to match against - * deps: mime-types@~2.1.5 - - Add new mime types - -1.6.6 / 2015-07-31 -================== - - * deps: mime-types@~2.1.4 - - Add new mime types - -1.6.5 / 2015-07-16 -================== - - * deps: mime-types@~2.1.3 - - Add new mime types - -1.6.4 / 2015-07-01 -================== - - * deps: mime-types@~2.1.2 - - Add new mime types - * perf: enable strict mode - * perf: remove argument reassignment - -1.6.3 / 2015-06-08 -================== - - * deps: mime-types@~2.1.1 - - Add new mime types - * perf: reduce try block size - * perf: remove bitwise operations - -1.6.2 / 2015-05-10 -================== - - * deps: mime-types@~2.0.11 - - Add new mime types - -1.6.1 / 2015-03-13 -================== - - * deps: mime-types@~2.0.10 - - Add new mime types - -1.6.0 / 2015-02-12 -================== - - * fix false-positives in `hasBody` `Transfer-Encoding` check - * support wildcard for both type and subtype (`*/*`) - -1.5.7 / 2015-02-09 -================== - - * fix argument reassignment - * deps: mime-types@~2.0.9 - - Add new mime types - -1.5.6 / 2015-01-29 -================== - - * deps: mime-types@~2.0.8 - - Add new mime types - -1.5.5 / 2014-12-30 -================== - - * deps: mime-types@~2.0.7 - - Add new mime types - - Fix missing extensions - - Fix various invalid MIME type entries - - Remove example template MIME types - - deps: mime-db@~1.5.0 - -1.5.4 / 2014-12-10 -================== - - * deps: mime-types@~2.0.4 - - Add new mime types - - deps: mime-db@~1.3.0 - -1.5.3 / 2014-11-09 -================== - - * deps: mime-types@~2.0.3 - - Add new mime types - - deps: mime-db@~1.2.0 - -1.5.2 / 2014-09-28 -================== - - * deps: mime-types@~2.0.2 - - Add new mime types - - deps: mime-db@~1.1.0 - -1.5.1 / 2014-09-07 -================== - - * Support Node.js 0.6 - * deps: media-typer@0.3.0 - * deps: mime-types@~2.0.1 - - Support Node.js 0.6 - -1.5.0 / 2014-09-05 -================== - - * fix `hasbody` to be true for `content-length: 0` - -1.4.0 / 2014-09-02 -================== - - * update mime-types - -1.3.2 / 2014-06-24 -================== - - * use `~` range on mime-types - -1.3.1 / 2014-06-19 -================== - - * fix global variable leak - -1.3.0 / 2014-06-19 -================== - - * improve type parsing - - - invalid media type never matches - - media type not case-sensitive - - extra LWS does not affect results - -1.2.2 / 2014-06-19 -================== - - * fix behavior on unknown type argument - -1.2.1 / 2014-06-03 -================== - - * switch dependency from `mime` to `mime-types@1.0.0` - -1.2.0 / 2014-05-11 -================== - - * support suffix matching: - - - `+json` matches `application/vnd+json` - - `*/vnd+json` matches `application/vnd+json` - - `application/*+json` matches `application/vnd+json` - -1.1.0 / 2014-04-12 -================== - - * add non-array values support - * expose internal utilities: - - - `.is()` - - `.hasBody()` - - `.normalize()` - - `.match()` - -1.0.1 / 2014-03-30 -================== - - * add `multipart` as a shorthand diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/LICENSE deleted file mode 100644 index 386b7b69..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/README.md deleted file mode 100644 index 008a7af5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/README.md +++ /dev/null @@ -1,136 +0,0 @@ -# type-is - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Infer the content-type of a request. - -### Install - -```sh -$ npm install type-is -``` - -## API - -```js -var http = require('http') -var is = require('type-is') - -http.createServer(function (req, res) { - var istext = is(req, ['text/*']) - res.end('you ' + (istext ? 'sent' : 'did not send') + ' me text') -}) -``` - -### type = is(request, types) - -`request` is the node HTTP request. `types` is an array of types. - -```js -// req.headers.content-type = 'application/json' - -is(req, ['json']) // 'json' -is(req, ['html', 'json']) // 'json' -is(req, ['application/*']) // 'application/json' -is(req, ['application/json']) // 'application/json' - -is(req, ['html']) // false -``` - -### is.hasBody(request) - -Returns a Boolean if the given `request` has a body, regardless of the -`Content-Type` header. - -Having a body has no relation to how large the body is (it may be 0 bytes). -This is similar to how file existence works. If a body does exist, then this -indicates that there is data to read from the Node.js request stream. - -```js -if (is.hasBody(req)) { - // read the body, since there is one - - req.on('data', function (chunk) { - // ... - }) -} -``` - -### type = is.is(mediaType, types) - -`mediaType` is the [media type](https://tools.ietf.org/html/rfc6838) string. `types` is an array of types. - -```js -var mediaType = 'application/json' - -is.is(mediaType, ['json']) // 'json' -is.is(mediaType, ['html', 'json']) // 'json' -is.is(mediaType, ['application/*']) // 'application/json' -is.is(mediaType, ['application/json']) // 'application/json' - -is.is(mediaType, ['html']) // false -``` - -### Each type can be: - -- An extension name such as `json`. This name will be returned if matched. -- A mime type such as `application/json`. -- A mime type with a wildcard such as `*/*` or `*/json` or `application/*`. The full mime type will be returned if matched. -- A suffix such as `+json`. This can be combined with a wildcard such as `*/vnd+json` or `application/*+json`. The full mime type will be returned if matched. - -`false` will be returned if no type matches or the content type is invalid. - -`null` will be returned if the request does not have a body. - -## Examples - -#### Example body parser - -```js -var is = require('type-is'); - -function bodyParser(req, res, next) { - if (!is.hasBody(req)) { - return next() - } - - switch (is(req, ['urlencoded', 'json', 'multipart'])) { - case 'urlencoded': - // parse urlencoded body - throw new Error('implement urlencoded body parsing') - break - case 'json': - // parse json body - throw new Error('implement json body parsing') - break - case 'multipart': - // parse multipart body - throw new Error('implement multipart body parsing') - break - default: - // 415 error code - res.statusCode = 415 - res.end() - return - } -} -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/type-is.svg -[npm-url]: https://npmjs.org/package/type-is -[node-version-image]: https://img.shields.io/node/v/type-is.svg -[node-version-url]: https://nodejs.org/en/download/ -[travis-image]: https://img.shields.io/travis/jshttp/type-is/master.svg -[travis-url]: https://travis-ci.org/jshttp/type-is -[coveralls-image]: https://img.shields.io/coveralls/jshttp/type-is/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/type-is?branch=master -[downloads-image]: https://img.shields.io/npm/dm/type-is.svg -[downloads-url]: https://npmjs.org/package/type-is diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/index.js deleted file mode 100644 index 4da73011..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/index.js +++ /dev/null @@ -1,262 +0,0 @@ -/*! - * type-is - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var typer = require('media-typer') -var mime = require('mime-types') - -/** - * Module exports. - * @public - */ - -module.exports = typeofrequest -module.exports.is = typeis -module.exports.hasBody = hasbody -module.exports.normalize = normalize -module.exports.match = mimeMatch - -/** - * Compare a `value` content-type with `types`. - * Each `type` can be an extension like `html`, - * a special shortcut like `multipart` or `urlencoded`, - * or a mime type. - * - * If no types match, `false` is returned. - * Otherwise, the first `type` that matches is returned. - * - * @param {String} value - * @param {Array} types - * @public - */ - -function typeis (value, types_) { - var i - var types = types_ - - // remove parameters and normalize - var val = tryNormalizeType(value) - - // no type or invalid - if (!val) { - return false - } - - // support flattened arguments - if (types && !Array.isArray(types)) { - types = new Array(arguments.length - 1) - for (i = 0; i < types.length; i++) { - types[i] = arguments[i + 1] - } - } - - // no types, return the content type - if (!types || !types.length) { - return val - } - - var type - for (i = 0; i < types.length; i++) { - if (mimeMatch(normalize(type = types[i]), val)) { - return type[0] === '+' || type.indexOf('*') !== -1 - ? val - : type - } - } - - // no matches - return false -} - -/** - * Check if a request has a request body. - * A request with a body __must__ either have `transfer-encoding` - * or `content-length` headers set. - * http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3 - * - * @param {Object} request - * @return {Boolean} - * @public - */ - -function hasbody (req) { - return req.headers['transfer-encoding'] !== undefined || - !isNaN(req.headers['content-length']) -} - -/** - * Check if the incoming request contains the "Content-Type" - * header field, and it contains any of the give mime `type`s. - * If there is no request body, `null` is returned. - * If there is no content type, `false` is returned. - * Otherwise, it returns the first `type` that matches. - * - * Examples: - * - * // With Content-Type: text/html; charset=utf-8 - * this.is('html'); // => 'html' - * this.is('text/html'); // => 'text/html' - * this.is('text/*', 'application/json'); // => 'text/html' - * - * // When Content-Type is application/json - * this.is('json', 'urlencoded'); // => 'json' - * this.is('application/json'); // => 'application/json' - * this.is('html', 'application/*'); // => 'application/json' - * - * this.is('html'); // => false - * - * @param {String|Array} types... - * @return {String|false|null} - * @public - */ - -function typeofrequest (req, types_) { - var types = types_ - - // no body - if (!hasbody(req)) { - return null - } - - // support flattened arguments - if (arguments.length > 2) { - types = new Array(arguments.length - 1) - for (var i = 0; i < types.length; i++) { - types[i] = arguments[i + 1] - } - } - - // request content type - var value = req.headers['content-type'] - - return typeis(value, types) -} - -/** - * Normalize a mime type. - * If it's a shorthand, expand it to a valid mime type. - * - * In general, you probably want: - * - * var type = is(req, ['urlencoded', 'json', 'multipart']); - * - * Then use the appropriate body parsers. - * These three are the most common request body types - * and are thus ensured to work. - * - * @param {String} type - * @private - */ - -function normalize (type) { - if (typeof type !== 'string') { - // invalid type - return false - } - - switch (type) { - case 'urlencoded': - return 'application/x-www-form-urlencoded' - case 'multipart': - return 'multipart/*' - } - - if (type[0] === '+') { - // "+json" -> "*/*+json" expando - return '*/*' + type - } - - return type.indexOf('/') === -1 - ? mime.lookup(type) - : type -} - -/** - * Check if `expected` mime type - * matches `actual` mime type with - * wildcard and +suffix support. - * - * @param {String} expected - * @param {String} actual - * @return {Boolean} - * @private - */ - -function mimeMatch (expected, actual) { - // invalid type - if (expected === false) { - return false - } - - // split types - var actualParts = actual.split('/') - var expectedParts = expected.split('/') - - // invalid format - if (actualParts.length !== 2 || expectedParts.length !== 2) { - return false - } - - // validate type - if (expectedParts[0] !== '*' && expectedParts[0] !== actualParts[0]) { - return false - } - - // validate suffix wildcard - if (expectedParts[1].substr(0, 2) === '*+') { - return expectedParts[1].length <= actualParts[1].length + 1 && - expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length) - } - - // validate subtype - if (expectedParts[1] !== '*' && expectedParts[1] !== actualParts[1]) { - return false - } - - return true -} - -/** - * Normalize a type and remove parameters. - * - * @param {string} value - * @return {string} - * @private - */ - -function normalizeType (value) { - // parse the type - var type = typer.parse(value) - - // remove the parameters - type.parameters = undefined - - // reformat it - return typer.format(type) -} - -/** - * Try to normalize a type and remove parameters. - * - * @param {string} value - * @return {string} - * @private - */ - -function tryNormalizeType (value) { - try { - return normalizeType(value) - } catch (err) { - return null - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/HISTORY.md deleted file mode 100644 index 62c20031..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/HISTORY.md +++ /dev/null @@ -1,22 +0,0 @@ -0.3.0 / 2014-09-07 -================== - - * Support Node.js 0.6 - * Throw error when parameter format invalid on parse - -0.2.0 / 2014-06-18 -================== - - * Add `typer.format()` to format media types - -0.1.0 / 2014-06-17 -================== - - * Accept `req` as argument to `parse` - * Accept `res` as argument to `parse` - * Parse media type with extra LWS between type and first parameter - -0.0.0 / 2014-06-13 -================== - - * Initial implementation diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/LICENSE deleted file mode 100644 index b7dce6cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/README.md deleted file mode 100644 index d8df6234..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# media-typer - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Simple RFC 6838 media type parser - -## Installation - -```sh -$ npm install media-typer -``` - -## API - -```js -var typer = require('media-typer') -``` - -### typer.parse(string) - -```js -var obj = typer.parse('image/svg+xml; charset=utf-8') -``` - -Parse a media type string. This will return an object with the following -properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): - - - `type`: The type of the media type (always lower case). Example: `'image'` - - - `subtype`: The subtype of the media type (always lower case). Example: `'svg'` - - - `suffix`: The suffix of the media type (always lower case). Example: `'xml'` - - - `parameters`: An object of the parameters in the media type (name of parameter always lower case). Example: `{charset: 'utf-8'}` - -### typer.parse(req) - -```js -var obj = typer.parse(req) -``` - -Parse the `content-type` header from the given `req`. Short-cut for -`typer.parse(req.headers['content-type'])`. - -### typer.parse(res) - -```js -var obj = typer.parse(res) -``` - -Parse the `content-type` header set on the given `res`. Short-cut for -`typer.parse(res.getHeader('content-type'))`. - -### typer.format(obj) - -```js -var obj = typer.format({type: 'image', subtype: 'svg', suffix: 'xml'}) -``` - -Format an object into a media type string. This will return a string of the -mime type for the given object. For the properties of the object, see the -documentation for `typer.parse(string)`. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/media-typer.svg?style=flat -[npm-url]: https://npmjs.org/package/media-typer -[node-version-image]: https://img.shields.io/badge/node.js-%3E%3D_0.6-brightgreen.svg?style=flat -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/media-typer.svg?style=flat -[travis-url]: https://travis-ci.org/jshttp/media-typer -[coveralls-image]: https://img.shields.io/coveralls/jshttp/media-typer.svg?style=flat -[coveralls-url]: https://coveralls.io/r/jshttp/media-typer -[downloads-image]: https://img.shields.io/npm/dm/media-typer.svg?style=flat -[downloads-url]: https://npmjs.org/package/media-typer diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/index.js deleted file mode 100644 index 07f7295e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/index.js +++ /dev/null @@ -1,270 +0,0 @@ -/*! - * media-typer - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * RegExp to match *( ";" parameter ) in RFC 2616 sec 3.7 - * - * parameter = token "=" ( token | quoted-string ) - * token = 1* - * separators = "(" | ")" | "<" | ">" | "@" - * | "," | ";" | ":" | "\" | <"> - * | "/" | "[" | "]" | "?" | "=" - * | "{" | "}" | SP | HT - * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) - * qdtext = > - * quoted-pair = "\" CHAR - * CHAR = - * TEXT = - * LWS = [CRLF] 1*( SP | HT ) - * CRLF = CR LF - * CR = - * LF = - * SP = - * SHT = - * CTL = - * OCTET = - */ -var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g; -var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/ -var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/ - -/** - * RegExp to match quoted-pair in RFC 2616 - * - * quoted-pair = "\" CHAR - * CHAR = - */ -var qescRegExp = /\\([\u0000-\u007f])/g; - -/** - * RegExp to match chars that must be quoted-pair in RFC 2616 - */ -var quoteRegExp = /([\\"])/g; - -/** - * RegExp to match type in RFC 6838 - * - * type-name = restricted-name - * subtype-name = restricted-name - * restricted-name = restricted-name-first *126restricted-name-chars - * restricted-name-first = ALPHA / DIGIT - * restricted-name-chars = ALPHA / DIGIT / "!" / "#" / - * "$" / "&" / "-" / "^" / "_" - * restricted-name-chars =/ "." ; Characters before first dot always - * ; specify a facet name - * restricted-name-chars =/ "+" ; Characters after last plus always - * ; specify a structured syntax suffix - * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z - * DIGIT = %x30-39 ; 0-9 - */ -var subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/ -var typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/ -var typeRegExp = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/; - -/** - * Module exports. - */ - -exports.format = format -exports.parse = parse - -/** - * Format object to media type. - * - * @param {object} obj - * @return {string} - * @api public - */ - -function format(obj) { - if (!obj || typeof obj !== 'object') { - throw new TypeError('argument obj is required') - } - - var parameters = obj.parameters - var subtype = obj.subtype - var suffix = obj.suffix - var type = obj.type - - if (!type || !typeNameRegExp.test(type)) { - throw new TypeError('invalid type') - } - - if (!subtype || !subtypeNameRegExp.test(subtype)) { - throw new TypeError('invalid subtype') - } - - // format as type/subtype - var string = type + '/' + subtype - - // append +suffix - if (suffix) { - if (!typeNameRegExp.test(suffix)) { - throw new TypeError('invalid suffix') - } - - string += '+' + suffix - } - - // append parameters - if (parameters && typeof parameters === 'object') { - var param - var params = Object.keys(parameters).sort() - - for (var i = 0; i < params.length; i++) { - param = params[i] - - if (!tokenRegExp.test(param)) { - throw new TypeError('invalid parameter name') - } - - string += '; ' + param + '=' + qstring(parameters[param]) - } - } - - return string -} - -/** - * Parse media type to object. - * - * @param {string|object} string - * @return {Object} - * @api public - */ - -function parse(string) { - if (!string) { - throw new TypeError('argument string is required') - } - - // support req/res-like objects as argument - if (typeof string === 'object') { - string = getcontenttype(string) - } - - if (typeof string !== 'string') { - throw new TypeError('argument string is required to be a string') - } - - var index = string.indexOf(';') - var type = index !== -1 - ? string.substr(0, index) - : string - - var key - var match - var obj = splitType(type) - var params = {} - var value - - paramRegExp.lastIndex = index - - while (match = paramRegExp.exec(string)) { - if (match.index !== index) { - throw new TypeError('invalid parameter format') - } - - index += match[0].length - key = match[1].toLowerCase() - value = match[2] - - if (value[0] === '"') { - // remove quotes and escapes - value = value - .substr(1, value.length - 2) - .replace(qescRegExp, '$1') - } - - params[key] = value - } - - if (index !== -1 && index !== string.length) { - throw new TypeError('invalid parameter format') - } - - obj.parameters = params - - return obj -} - -/** - * Get content-type from req/res objects. - * - * @param {object} - * @return {Object} - * @api private - */ - -function getcontenttype(obj) { - if (typeof obj.getHeader === 'function') { - // res-like - return obj.getHeader('content-type') - } - - if (typeof obj.headers === 'object') { - // req-like - return obj.headers && obj.headers['content-type'] - } -} - -/** - * Quote a string if necessary. - * - * @param {string} val - * @return {string} - * @api private - */ - -function qstring(val) { - var str = String(val) - - // no need to quote tokens - if (tokenRegExp.test(str)) { - return str - } - - if (str.length > 0 && !textRegExp.test(str)) { - throw new TypeError('invalid parameter value') - } - - return '"' + str.replace(quoteRegExp, '\\$1') + '"' -} - -/** - * Simply "type/subtype+siffx" into parts. - * - * @param {string} string - * @return {Object} - * @api private - */ - -function splitType(string) { - var match = typeRegExp.exec(string.toLowerCase()) - - if (!match) { - throw new TypeError('invalid media type') - } - - var type = match[1] - var subtype = match[2] - var suffix - - // suffix after last + - var index = subtype.lastIndexOf('+') - if (index !== -1) { - suffix = subtype.substr(index + 1) - subtype = subtype.substr(0, index) - } - - var obj = { - type: type, - subtype: subtype, - suffix: suffix - } - - return obj -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/package.json deleted file mode 100644 index f6d67120..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/media-typer/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "media-typer", - "description": "Simple RFC 6838 media type parser and formatter", - "version": "0.3.0", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/media-typer.git" - }, - "devDependencies": { - "istanbul": "0.3.2", - "mocha": "~1.21.4", - "should": "~4.0.4" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "d49d41ffd0bb5a0655fa44a59df2ec0bfc835b16", - "bugs": { - "url": "https://github.com/jshttp/media-typer/issues" - }, - "homepage": "https://github.com/jshttp/media-typer", - "_id": "media-typer@0.3.0", - "_shasum": "8710d7af0aa626f8fffa1ce00168545263255748", - "_from": "media-typer@0.3.0", - "_npmVersion": "1.4.21", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "8710d7af0aa626f8fffa1ce00168545263255748", - "tarball": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/HISTORY.md deleted file mode 100644 index 8c0383a6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/HISTORY.md +++ /dev/null @@ -1,204 +0,0 @@ -2.1.12 / 2016-09-18 -=================== - - * deps: mime-db@~1.24.0 - - Add new mime types - - Add `audio/mp3` - -2.1.11 / 2016-05-01 -=================== - - * deps: mime-db@~1.23.0 - - Add new mime types - -2.1.10 / 2016-02-15 -=================== - - * deps: mime-db@~1.22.0 - - Add new mime types - - Fix extension of `application/dash+xml` - - Update primary extension for `audio/mp4` - -2.1.9 / 2016-01-06 -================== - - * deps: mime-db@~1.21.0 - - Add new mime types - -2.1.8 / 2015-11-30 -================== - - * deps: mime-db@~1.20.0 - - Add new mime types - -2.1.7 / 2015-09-20 -================== - - * deps: mime-db@~1.19.0 - - Add new mime types - -2.1.6 / 2015-09-03 -================== - - * deps: mime-db@~1.18.0 - - Add new mime types - -2.1.5 / 2015-08-20 -================== - - * deps: mime-db@~1.17.0 - - Add new mime types - -2.1.4 / 2015-07-30 -================== - - * deps: mime-db@~1.16.0 - - Add new mime types - -2.1.3 / 2015-07-13 -================== - - * deps: mime-db@~1.15.0 - - Add new mime types - -2.1.2 / 2015-06-25 -================== - - * deps: mime-db@~1.14.0 - - Add new mime types - -2.1.1 / 2015-06-08 -================== - - * perf: fix deopt during mapping - -2.1.0 / 2015-06-07 -================== - - * Fix incorrectly treating extension-less file name as extension - - i.e. `'path/to/json'` will no longer return `application/json` - * Fix `.charset(type)` to accept parameters - * Fix `.charset(type)` to match case-insensitive - * Improve generation of extension to MIME mapping - * Refactor internals for readability and no argument reassignment - * Prefer `application/*` MIME types from the same source - * Prefer any type over `application/octet-stream` - * deps: mime-db@~1.13.0 - - Add nginx as a source - - Add new mime types - -2.0.14 / 2015-06-06 -=================== - - * deps: mime-db@~1.12.0 - - Add new mime types - -2.0.13 / 2015-05-31 -=================== - - * deps: mime-db@~1.11.0 - - Add new mime types - -2.0.12 / 2015-05-19 -=================== - - * deps: mime-db@~1.10.0 - - Add new mime types - -2.0.11 / 2015-05-05 -=================== - - * deps: mime-db@~1.9.1 - - Add new mime types - -2.0.10 / 2015-03-13 -=================== - - * deps: mime-db@~1.8.0 - - Add new mime types - -2.0.9 / 2015-02-09 -================== - - * deps: mime-db@~1.7.0 - - Add new mime types - - Community extensions ownership transferred from `node-mime` - -2.0.8 / 2015-01-29 -================== - - * deps: mime-db@~1.6.0 - - Add new mime types - -2.0.7 / 2014-12-30 -================== - - * deps: mime-db@~1.5.0 - - Add new mime types - - Fix various invalid MIME type entries - -2.0.6 / 2014-12-30 -================== - - * deps: mime-db@~1.4.0 - - Add new mime types - - Fix various invalid MIME type entries - - Remove example template MIME types - -2.0.5 / 2014-12-29 -================== - - * deps: mime-db@~1.3.1 - - Fix missing extensions - -2.0.4 / 2014-12-10 -================== - - * deps: mime-db@~1.3.0 - - Add new mime types - -2.0.3 / 2014-11-09 -================== - - * deps: mime-db@~1.2.0 - - Add new mime types - -2.0.2 / 2014-09-28 -================== - - * deps: mime-db@~1.1.0 - - Add new mime types - - Add additional compressible - - Update charsets - -2.0.1 / 2014-09-07 -================== - - * Support Node.js 0.6 - -2.0.0 / 2014-09-02 -================== - - * Use `mime-db` - * Remove `.define()` - -1.0.2 / 2014-08-04 -================== - - * Set charset=utf-8 for `text/javascript` - -1.0.1 / 2014-06-24 -================== - - * Add `text/jsx` type - -1.0.0 / 2014-05-12 -================== - - * Return `false` for unknown types - * Set charset=utf-8 for `application/json` - -0.1.0 / 2014-05-02 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/LICENSE deleted file mode 100644 index 06166077..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/README.md deleted file mode 100644 index e77d615d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/README.md +++ /dev/null @@ -1,103 +0,0 @@ -# mime-types - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -The ultimate javascript content-type utility. - -Similar to [node-mime](https://github.com/broofa/node-mime), except: - -- __No fallbacks.__ Instead of naively returning the first available type, `mime-types` simply returns `false`, - so do `var type = mime.lookup('unrecognized') || 'application/octet-stream'`. -- No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`. -- Additional mime types are added such as jade and stylus via [mime-db](https://github.com/jshttp/mime-db) -- No `.define()` functionality - -Otherwise, the API is compatible. - -## Install - -```sh -$ npm install mime-types -``` - -## Adding Types - -All mime types are based on [mime-db](https://github.com/jshttp/mime-db), -so open a PR there if you'd like to add mime types. - -## API - -```js -var mime = require('mime-types') -``` - -All functions return `false` if input is invalid or not found. - -### mime.lookup(path) - -Lookup the content-type associated with a file. - -```js -mime.lookup('json') // 'application/json' -mime.lookup('.md') // 'text/x-markdown' -mime.lookup('file.html') // 'text/html' -mime.lookup('folder/file.js') // 'application/javascript' -mime.lookup('folder/.htaccess') // false - -mime.lookup('cats') // false -``` - -### mime.contentType(type) - -Create a full content-type header given a content-type or extension. - -```js -mime.contentType('markdown') // 'text/x-markdown; charset=utf-8' -mime.contentType('file.json') // 'application/json; charset=utf-8' - -// from a full path -mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8' -``` - -### mime.extension(type) - -Get the default extension for a content-type. - -```js -mime.extension('application/octet-stream') // 'bin' -``` - -### mime.charset(type) - -Lookup the implied default charset of a content-type. - -```js -mime.charset('text/x-markdown') // 'UTF-8' -``` - -### var type = mime.types[extension] - -A map of content-types by extension. - -### [extensions...] = mime.extensions[type] - -A map of extensions by content-type. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/mime-types.svg -[npm-url]: https://npmjs.org/package/mime-types -[node-version-image]: https://img.shields.io/node/v/mime-types.svg -[node-version-url]: https://nodejs.org/en/download/ -[travis-image]: https://img.shields.io/travis/jshttp/mime-types/master.svg -[travis-url]: https://travis-ci.org/jshttp/mime-types -[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-types/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/mime-types -[downloads-image]: https://img.shields.io/npm/dm/mime-types.svg -[downloads-url]: https://npmjs.org/package/mime-types diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/index.js deleted file mode 100644 index 9226ca58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/index.js +++ /dev/null @@ -1,188 +0,0 @@ -/*! - * mime-types - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var db = require('mime-db') -var extname = require('path').extname - -/** - * Module variables. - * @private - */ - -var extractTypeRegExp = /^\s*([^;\s]*)(?:;|\s|$)/ -var textTypeRegExp = /^text\//i - -/** - * Module exports. - * @public - */ - -exports.charset = charset -exports.charsets = { lookup: charset } -exports.contentType = contentType -exports.extension = extension -exports.extensions = Object.create(null) -exports.lookup = lookup -exports.types = Object.create(null) - -// Populate the extensions/types maps -populateMaps(exports.extensions, exports.types) - -/** - * Get the default charset for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function charset (type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = extractTypeRegExp.exec(type) - var mime = match && db[match[1].toLowerCase()] - - if (mime && mime.charset) { - return mime.charset - } - - // default text/* to utf-8 - if (match && textTypeRegExp.test(match[1])) { - return 'UTF-8' - } - - return false -} - -/** - * Create a full Content-Type header given a MIME type or extension. - * - * @param {string} str - * @return {boolean|string} - */ - -function contentType (str) { - // TODO: should this even be in this module? - if (!str || typeof str !== 'string') { - return false - } - - var mime = str.indexOf('/') === -1 - ? exports.lookup(str) - : str - - if (!mime) { - return false - } - - // TODO: use content-type or other module - if (mime.indexOf('charset') === -1) { - var charset = exports.charset(mime) - if (charset) mime += '; charset=' + charset.toLowerCase() - } - - return mime -} - -/** - * Get the default extension for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function extension (type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = extractTypeRegExp.exec(type) - - // get extensions - var exts = match && exports.extensions[match[1].toLowerCase()] - - if (!exts || !exts.length) { - return false - } - - return exts[0] -} - -/** - * Lookup the MIME type for a file path/extension. - * - * @param {string} path - * @return {boolean|string} - */ - -function lookup (path) { - if (!path || typeof path !== 'string') { - return false - } - - // get the extension ("ext" or ".ext" or full path) - var extension = extname('x.' + path) - .toLowerCase() - .substr(1) - - if (!extension) { - return false - } - - return exports.types[extension] || false -} - -/** - * Populate the extensions and types maps. - * @private - */ - -function populateMaps (extensions, types) { - // source preference (least -> most) - var preference = ['nginx', 'apache', undefined, 'iana'] - - Object.keys(db).forEach(function forEachMimeType (type) { - var mime = db[type] - var exts = mime.extensions - - if (!exts || !exts.length) { - return - } - - // mime -> extensions - extensions[type] = exts - - // extension -> mime - for (var i = 0; i < exts.length; i++) { - var extension = exts[i] - - if (types[extension]) { - var from = preference.indexOf(db[types[extension]].source) - var to = preference.indexOf(mime.source) - - if (types[extension] !== 'application/octet-stream' && - from > to || (from === to && types[extension].substr(0, 12) === 'application/')) { - // skip the remapping - continue - } - } - - // set the extension -> mime - types[extension] = type - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/HISTORY.md deleted file mode 100644 index d4796b55..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/HISTORY.md +++ /dev/null @@ -1,365 +0,0 @@ -1.24.0 / 2016-09-18 -=================== - - * Add `application/clue_info+xml` - * Add `application/geo+json` - * Add `application/lgr+xml` - * Add `application/vnd.amazon.mobi8-ebook` - * Add `application/vnd.chess-pgn` - * Add `application/vnd.comicbook+zip` - * Add `application/vnd.d2l.coursepackage1p0+zip` - * Add `application/vnd.espass-espass+zip` - * Add `application/vnd.nearst.inv+json` - * Add `application/vnd.oma.lwm2m+json` - * Add `application/vnd.oma.lwm2m+tlv` - * Add `application/vnd.quarantainenet` - * Add `application/vnd.rar` - * Add `audio/mp3` - * Add `image/dicom-rle` - * Add `image/emf` - * Add `image/jls` - * Add `image/wmf` - * Add `model/gltf+json` - * Add `text/vnd.ascii-art` - -1.23.0 / 2016-05-01 -=================== - - * Add `application/efi` - * Add `application/vnd.3gpp.sms+xml` - * Add `application/vnd.3lightssoftware.imagescal` - * Add `application/vnd.coreos.ignition+json` - * Add `application/vnd.desmume.movie` - * Add `application/vnd.onepager` - * Add `application/vnd.vel+json` - * Add `text/prs.prop.logic` - * Add `video/encaprtp` - * Add `video/h265` - * Add `video/iso.segment` - * Add `video/raptorfec` - * Add `video/rtploopback` - * Add `video/vnd.radgamettools.bink` - * Add `video/vnd.radgamettools.smacker` - * Add `video/vp8` - * Add extension `.3gpp` to `audio/3gpp` - -1.22.0 / 2016-02-15 -=================== - - * Add `application/ppsp-tracker+json` - * Add `application/problem+json` - * Add `application/problem+xml` - * Add `application/vnd.hdt` - * Add `application/vnd.ms-printschematicket+xml` - * Add `model/vnd.rosette.annotated-data-model` - * Add `text/slim` - * Add extension `.rng` to `application/xml` - * Fix extension of `application/dash+xml` to be `.mpd` - * Update primary extension to `.m4a` for `audio/mp4` - -1.21.0 / 2016-01-06 -=================== - - * Add `application/emergencycalldata.comment+xml` - * Add `application/emergencycalldata.deviceinfo+xml` - * Add `application/emergencycalldata.providerinfo+xml` - * Add `application/emergencycalldata.serviceinfo+xml` - * Add `application/emergencycalldata.subscriberinfo+xml` - * Add `application/vnd.filmit.zfc` - * Add `application/vnd.google-apps.document` - * Add `application/vnd.google-apps.presentation` - * Add `application/vnd.google-apps.spreadsheet` - * Add `application/vnd.mapbox-vector-tile` - * Add `application/vnd.ms-printdevicecapabilities+xml` - * Add `application/vnd.ms-windows.devicepairing` - * Add `application/vnd.ms-windows.nwprinting.oob` - * Add `application/vnd.tml` - * Add `audio/evs` - -1.20.0 / 2015-11-10 -=================== - - * Add `application/cdni` - * Add `application/csvm+json` - * Add `application/rfc+xml` - * Add `application/vnd.3gpp.access-transfer-events+xml` - * Add `application/vnd.3gpp.srvcc-ext+xml` - * Add `application/vnd.ms-windows.wsd.oob` - * Add `application/vnd.oxli.countgraph` - * Add `application/vnd.pagerduty+json` - * Add `text/x-suse-ymp` - -1.19.0 / 2015-09-17 -=================== - - * Add `application/vnd.3gpp-prose-pc3ch+xml` - * Add `application/vnd.3gpp.srvcc-info+xml` - * Add `application/vnd.apple.pkpass` - * Add `application/vnd.drive+json` - -1.18.0 / 2015-09-03 -=================== - - * Add `application/pkcs12` - * Add `application/vnd.3gpp-prose+xml` - * Add `application/vnd.3gpp.mid-call+xml` - * Add `application/vnd.3gpp.state-and-event-info+xml` - * Add `application/vnd.anki` - * Add `application/vnd.firemonkeys.cloudcell` - * Add `application/vnd.openblox.game+xml` - * Add `application/vnd.openblox.game-binary` - -1.17.0 / 2015-08-13 -=================== - - * Add `application/x-msdos-program` - * Add `audio/g711-0` - * Add `image/vnd.mozilla.apng` - * Add extension `.exe` to `application/x-msdos-program` - -1.16.0 / 2015-07-29 -=================== - - * Add `application/vnd.uri-map` - -1.15.0 / 2015-07-13 -=================== - - * Add `application/x-httpd-php` - -1.14.0 / 2015-06-25 -=================== - - * Add `application/scim+json` - * Add `application/vnd.3gpp.ussd+xml` - * Add `application/vnd.biopax.rdf+xml` - * Add `text/x-processing` - -1.13.0 / 2015-06-07 -=================== - - * Add nginx as a source - * Add `application/x-cocoa` - * Add `application/x-java-archive-diff` - * Add `application/x-makeself` - * Add `application/x-perl` - * Add `application/x-pilot` - * Add `application/x-redhat-package-manager` - * Add `application/x-sea` - * Add `audio/x-m4a` - * Add `audio/x-realaudio` - * Add `image/x-jng` - * Add `text/mathml` - -1.12.0 / 2015-06-05 -=================== - - * Add `application/bdoc` - * Add `application/vnd.hyperdrive+json` - * Add `application/x-bdoc` - * Add extension `.rtf` to `text/rtf` - -1.11.0 / 2015-05-31 -=================== - - * Add `audio/wav` - * Add `audio/wave` - * Add extension `.litcoffee` to `text/coffeescript` - * Add extension `.sfd-hdstx` to `application/vnd.hydrostatix.sof-data` - * Add extension `.n-gage` to `application/vnd.nokia.n-gage.symbian.install` - -1.10.0 / 2015-05-19 -=================== - - * Add `application/vnd.balsamiq.bmpr` - * Add `application/vnd.microsoft.portable-executable` - * Add `application/x-ns-proxy-autoconfig` - -1.9.1 / 2015-04-19 -================== - - * Remove `.json` extension from `application/manifest+json` - - This is causing bugs downstream - -1.9.0 / 2015-04-19 -================== - - * Add `application/manifest+json` - * Add `application/vnd.micro+json` - * Add `image/vnd.zbrush.pcx` - * Add `image/x-ms-bmp` - -1.8.0 / 2015-03-13 -================== - - * Add `application/vnd.citationstyles.style+xml` - * Add `application/vnd.fastcopy-disk-image` - * Add `application/vnd.gov.sk.xmldatacontainer+xml` - * Add extension `.jsonld` to `application/ld+json` - -1.7.0 / 2015-02-08 -================== - - * Add `application/vnd.gerber` - * Add `application/vnd.msa-disk-image` - -1.6.1 / 2015-02-05 -================== - - * Community extensions ownership transferred from `node-mime` - -1.6.0 / 2015-01-29 -================== - - * Add `application/jose` - * Add `application/jose+json` - * Add `application/json-seq` - * Add `application/jwk+json` - * Add `application/jwk-set+json` - * Add `application/jwt` - * Add `application/rdap+json` - * Add `application/vnd.gov.sk.e-form+xml` - * Add `application/vnd.ims.imsccv1p3` - -1.5.0 / 2014-12-30 -================== - - * Add `application/vnd.oracle.resource+json` - * Fix various invalid MIME type entries - - `application/mbox+xml` - - `application/oscp-response` - - `application/vwg-multiplexed` - - `audio/g721` - -1.4.0 / 2014-12-21 -================== - - * Add `application/vnd.ims.imsccv1p2` - * Fix various invalid MIME type entries - - `application/vnd-acucobol` - - `application/vnd-curl` - - `application/vnd-dart` - - `application/vnd-dxr` - - `application/vnd-fdf` - - `application/vnd-mif` - - `application/vnd-sema` - - `application/vnd-wap-wmlc` - - `application/vnd.adobe.flash-movie` - - `application/vnd.dece-zip` - - `application/vnd.dvb_service` - - `application/vnd.micrografx-igx` - - `application/vnd.sealed-doc` - - `application/vnd.sealed-eml` - - `application/vnd.sealed-mht` - - `application/vnd.sealed-ppt` - - `application/vnd.sealed-tiff` - - `application/vnd.sealed-xls` - - `application/vnd.sealedmedia.softseal-html` - - `application/vnd.sealedmedia.softseal-pdf` - - `application/vnd.wap-slc` - - `application/vnd.wap-wbxml` - - `audio/vnd.sealedmedia.softseal-mpeg` - - `image/vnd-djvu` - - `image/vnd-svf` - - `image/vnd-wap-wbmp` - - `image/vnd.sealed-png` - - `image/vnd.sealedmedia.softseal-gif` - - `image/vnd.sealedmedia.softseal-jpg` - - `model/vnd-dwf` - - `model/vnd.parasolid.transmit-binary` - - `model/vnd.parasolid.transmit-text` - - `text/vnd-a` - - `text/vnd-curl` - - `text/vnd.wap-wml` - * Remove example template MIME types - - `application/example` - - `audio/example` - - `image/example` - - `message/example` - - `model/example` - - `multipart/example` - - `text/example` - - `video/example` - -1.3.1 / 2014-12-16 -================== - - * Fix missing extensions - - `application/json5` - - `text/hjson` - -1.3.0 / 2014-12-07 -================== - - * Add `application/a2l` - * Add `application/aml` - * Add `application/atfx` - * Add `application/atxml` - * Add `application/cdfx+xml` - * Add `application/dii` - * Add `application/json5` - * Add `application/lxf` - * Add `application/mf4` - * Add `application/vnd.apache.thrift.compact` - * Add `application/vnd.apache.thrift.json` - * Add `application/vnd.coffeescript` - * Add `application/vnd.enphase.envoy` - * Add `application/vnd.ims.imsccv1p1` - * Add `text/csv-schema` - * Add `text/hjson` - * Add `text/markdown` - * Add `text/yaml` - -1.2.0 / 2014-11-09 -================== - - * Add `application/cea` - * Add `application/dit` - * Add `application/vnd.gov.sk.e-form+zip` - * Add `application/vnd.tmd.mediaflex.api+xml` - * Type `application/epub+zip` is now IANA-registered - -1.1.2 / 2014-10-23 -================== - - * Rebuild database for `application/x-www-form-urlencoded` change - -1.1.1 / 2014-10-20 -================== - - * Mark `application/x-www-form-urlencoded` as compressible. - -1.1.0 / 2014-09-28 -================== - - * Add `application/font-woff2` - -1.0.3 / 2014-09-25 -================== - - * Fix engine requirement in package - -1.0.2 / 2014-09-25 -================== - - * Add `application/coap-group+json` - * Add `application/dcd` - * Add `application/vnd.apache.thrift.binary` - * Add `image/vnd.tencent.tap` - * Mark all JSON-derived types as compressible - * Update `text/vtt` data - -1.0.1 / 2014-08-30 -================== - - * Fix extension ordering - -1.0.0 / 2014-08-30 -================== - - * Add `application/atf` - * Add `application/merge-patch+json` - * Add `multipart/x-mixed-replace` - * Add `source: 'apache'` metadata - * Add `source: 'iana'` metadata - * Remove badly-assumed charset data diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/README.md deleted file mode 100644 index 7662440b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# mime-db - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][travis-image]][travis-url] -[![Coverage Status][coveralls-image]][coveralls-url] - -This is a database of all mime types. -It consists of a single, public JSON file and does not include any logic, -allowing it to remain as un-opinionated as possible with an API. -It aggregates data from the following sources: - -- http://www.iana.org/assignments/media-types/media-types.xhtml -- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types -- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types - -## Installation - -```bash -npm install mime-db -``` - -### Database Download - -If you're crazy enough to use this in the browser, you can just grab the -JSON file using [RawGit](https://rawgit.com/). It is recommended to replace -`master` with [a release tag](https://github.com/jshttp/mime-db/tags) as the -JSON format may change in the future. - -``` -https://cdn.rawgit.com/jshttp/mime-db/master/db.json -``` - -## Usage - -```js -var db = require('mime-db'); - -// grab data on .js files -var data = db['application/javascript']; -``` - -## Data Structure - -The JSON file is a map lookup for lowercased mime types. -Each mime type has the following properties: - -- `.source` - where the mime type is defined. - If not set, it's probably a custom media type. - - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) - - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml) - - `nginx` - [nginx media types](http://hg.nginx.org/nginx/raw-file/default/conf/mime.types) -- `.extensions[]` - known extensions associated with this mime type. -- `.compressible` - whether a file of this type can be gzipped. -- `.charset` - the default charset associated with this type, if any. - -If unknown, every property could be `undefined`. - -## Contributing - -To edit the database, only make PRs against `src/custom.json` or -`src/custom-suffix.json`. - -To update the build, run `npm run build`. - -## Adding Custom Media Types - -The best way to get new media types included in this library is to register -them with the IANA. The community registration procedure is outlined in -[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types -registered with the IANA are automatically pulled into this library. - -[npm-version-image]: https://img.shields.io/npm/v/mime-db.svg -[npm-downloads-image]: https://img.shields.io/npm/dm/mime-db.svg -[npm-url]: https://npmjs.org/package/mime-db -[travis-image]: https://img.shields.io/travis/jshttp/mime-db/master.svg -[travis-url]: https://travis-ci.org/jshttp/mime-db -[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-db/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master -[node-image]: https://img.shields.io/node/v/mime-db.svg -[node-url]: http://nodejs.org/download/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/db.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/db.json deleted file mode 100644 index 63b226f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/db.json +++ /dev/null @@ -1,6692 +0,0 @@ -{ - "application/1d-interleaved-parityfec": { - "source": "iana" - }, - "application/3gpdash-qoe-report+xml": { - "source": "iana" - }, - "application/3gpp-ims+xml": { - "source": "iana" - }, - "application/a2l": { - "source": "iana" - }, - "application/activemessage": { - "source": "iana" - }, - "application/alto-costmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-costmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/alto-directory+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcost+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcostparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointprop+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointpropparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-error+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/aml": { - "source": "iana" - }, - "application/andrew-inset": { - "source": "iana", - "extensions": ["ez"] - }, - "application/applefile": { - "source": "iana" - }, - "application/applixware": { - "source": "apache", - "extensions": ["aw"] - }, - "application/atf": { - "source": "iana" - }, - "application/atfx": { - "source": "iana" - }, - "application/atom+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atom"] - }, - "application/atomcat+xml": { - "source": "iana", - "extensions": ["atomcat"] - }, - "application/atomdeleted+xml": { - "source": "iana" - }, - "application/atomicmail": { - "source": "iana" - }, - "application/atomsvc+xml": { - "source": "iana", - "extensions": ["atomsvc"] - }, - "application/atxml": { - "source": "iana" - }, - "application/auth-policy+xml": { - "source": "iana" - }, - "application/bacnet-xdd+zip": { - "source": "iana" - }, - "application/batch-smtp": { - "source": "iana" - }, - "application/bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/beep+xml": { - "source": "iana" - }, - "application/calendar+json": { - "source": "iana", - "compressible": true - }, - "application/calendar+xml": { - "source": "iana" - }, - "application/call-completion": { - "source": "iana" - }, - "application/cals-1840": { - "source": "iana" - }, - "application/cbor": { - "source": "iana" - }, - "application/ccmp+xml": { - "source": "iana" - }, - "application/ccxml+xml": { - "source": "iana", - "extensions": ["ccxml"] - }, - "application/cdfx+xml": { - "source": "iana" - }, - "application/cdmi-capability": { - "source": "iana", - "extensions": ["cdmia"] - }, - "application/cdmi-container": { - "source": "iana", - "extensions": ["cdmic"] - }, - "application/cdmi-domain": { - "source": "iana", - "extensions": ["cdmid"] - }, - "application/cdmi-object": { - "source": "iana", - "extensions": ["cdmio"] - }, - "application/cdmi-queue": { - "source": "iana", - "extensions": ["cdmiq"] - }, - "application/cdni": { - "source": "iana" - }, - "application/cea": { - "source": "iana" - }, - "application/cea-2018+xml": { - "source": "iana" - }, - "application/cellml+xml": { - "source": "iana" - }, - "application/cfw": { - "source": "iana" - }, - "application/clue_info+xml": { - "source": "iana" - }, - "application/cms": { - "source": "iana" - }, - "application/cnrp+xml": { - "source": "iana" - }, - "application/coap-group+json": { - "source": "iana", - "compressible": true - }, - "application/commonground": { - "source": "iana" - }, - "application/conference-info+xml": { - "source": "iana" - }, - "application/cpl+xml": { - "source": "iana" - }, - "application/csrattrs": { - "source": "iana" - }, - "application/csta+xml": { - "source": "iana" - }, - "application/cstadata+xml": { - "source": "iana" - }, - "application/csvm+json": { - "source": "iana", - "compressible": true - }, - "application/cu-seeme": { - "source": "apache", - "extensions": ["cu"] - }, - "application/cybercash": { - "source": "iana" - }, - "application/dart": { - "compressible": true - }, - "application/dash+xml": { - "source": "iana", - "extensions": ["mpd"] - }, - "application/dashdelta": { - "source": "iana" - }, - "application/davmount+xml": { - "source": "iana", - "extensions": ["davmount"] - }, - "application/dca-rft": { - "source": "iana" - }, - "application/dcd": { - "source": "iana" - }, - "application/dec-dx": { - "source": "iana" - }, - "application/dialog-info+xml": { - "source": "iana" - }, - "application/dicom": { - "source": "iana" - }, - "application/dii": { - "source": "iana" - }, - "application/dit": { - "source": "iana" - }, - "application/dns": { - "source": "iana" - }, - "application/docbook+xml": { - "source": "apache", - "extensions": ["dbk"] - }, - "application/dskpp+xml": { - "source": "iana" - }, - "application/dssc+der": { - "source": "iana", - "extensions": ["dssc"] - }, - "application/dssc+xml": { - "source": "iana", - "extensions": ["xdssc"] - }, - "application/dvcs": { - "source": "iana" - }, - "application/ecmascript": { - "source": "iana", - "compressible": true, - "extensions": ["ecma"] - }, - "application/edi-consent": { - "source": "iana" - }, - "application/edi-x12": { - "source": "iana", - "compressible": false - }, - "application/edifact": { - "source": "iana", - "compressible": false - }, - "application/efi": { - "source": "iana" - }, - "application/emergencycalldata.comment+xml": { - "source": "iana" - }, - "application/emergencycalldata.deviceinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.providerinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.serviceinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.subscriberinfo+xml": { - "source": "iana" - }, - "application/emma+xml": { - "source": "iana", - "extensions": ["emma"] - }, - "application/emotionml+xml": { - "source": "iana" - }, - "application/encaprtp": { - "source": "iana" - }, - "application/epp+xml": { - "source": "iana" - }, - "application/epub+zip": { - "source": "iana", - "extensions": ["epub"] - }, - "application/eshop": { - "source": "iana" - }, - "application/exi": { - "source": "iana", - "extensions": ["exi"] - }, - "application/fastinfoset": { - "source": "iana" - }, - "application/fastsoap": { - "source": "iana" - }, - "application/fdt+xml": { - "source": "iana" - }, - "application/fits": { - "source": "iana" - }, - "application/font-sfnt": { - "source": "iana" - }, - "application/font-tdpfr": { - "source": "iana", - "extensions": ["pfr"] - }, - "application/font-woff": { - "source": "iana", - "compressible": false, - "extensions": ["woff"] - }, - "application/font-woff2": { - "compressible": false, - "extensions": ["woff2"] - }, - "application/framework-attributes+xml": { - "source": "iana" - }, - "application/geo+json": { - "source": "iana", - "compressible": true - }, - "application/gml+xml": { - "source": "apache", - "extensions": ["gml"] - }, - "application/gpx+xml": { - "source": "apache", - "extensions": ["gpx"] - }, - "application/gxf": { - "source": "apache", - "extensions": ["gxf"] - }, - "application/gzip": { - "source": "iana", - "compressible": false - }, - "application/h224": { - "source": "iana" - }, - "application/held+xml": { - "source": "iana" - }, - "application/http": { - "source": "iana" - }, - "application/hyperstudio": { - "source": "iana", - "extensions": ["stk"] - }, - "application/ibe-key-request+xml": { - "source": "iana" - }, - "application/ibe-pkg-reply+xml": { - "source": "iana" - }, - "application/ibe-pp-data": { - "source": "iana" - }, - "application/iges": { - "source": "iana" - }, - "application/im-iscomposing+xml": { - "source": "iana" - }, - "application/index": { - "source": "iana" - }, - "application/index.cmd": { - "source": "iana" - }, - "application/index.obj": { - "source": "iana" - }, - "application/index.response": { - "source": "iana" - }, - "application/index.vnd": { - "source": "iana" - }, - "application/inkml+xml": { - "source": "iana", - "extensions": ["ink","inkml"] - }, - "application/iotp": { - "source": "iana" - }, - "application/ipfix": { - "source": "iana", - "extensions": ["ipfix"] - }, - "application/ipp": { - "source": "iana" - }, - "application/isup": { - "source": "iana" - }, - "application/its+xml": { - "source": "iana" - }, - "application/java-archive": { - "source": "apache", - "compressible": false, - "extensions": ["jar","war","ear"] - }, - "application/java-serialized-object": { - "source": "apache", - "compressible": false, - "extensions": ["ser"] - }, - "application/java-vm": { - "source": "apache", - "compressible": false, - "extensions": ["class"] - }, - "application/javascript": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["js"] - }, - "application/jose": { - "source": "iana" - }, - "application/jose+json": { - "source": "iana", - "compressible": true - }, - "application/jrd+json": { - "source": "iana", - "compressible": true - }, - "application/json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["json","map"] - }, - "application/json-patch+json": { - "source": "iana", - "compressible": true - }, - "application/json-seq": { - "source": "iana" - }, - "application/json5": { - "extensions": ["json5"] - }, - "application/jsonml+json": { - "source": "apache", - "compressible": true, - "extensions": ["jsonml"] - }, - "application/jwk+json": { - "source": "iana", - "compressible": true - }, - "application/jwk-set+json": { - "source": "iana", - "compressible": true - }, - "application/jwt": { - "source": "iana" - }, - "application/kpml-request+xml": { - "source": "iana" - }, - "application/kpml-response+xml": { - "source": "iana" - }, - "application/ld+json": { - "source": "iana", - "compressible": true, - "extensions": ["jsonld"] - }, - "application/lgr+xml": { - "source": "iana" - }, - "application/link-format": { - "source": "iana" - }, - "application/load-control+xml": { - "source": "iana" - }, - "application/lost+xml": { - "source": "iana", - "extensions": ["lostxml"] - }, - "application/lostsync+xml": { - "source": "iana" - }, - "application/lxf": { - "source": "iana" - }, - "application/mac-binhex40": { - "source": "iana", - "extensions": ["hqx"] - }, - "application/mac-compactpro": { - "source": "apache", - "extensions": ["cpt"] - }, - "application/macwriteii": { - "source": "iana" - }, - "application/mads+xml": { - "source": "iana", - "extensions": ["mads"] - }, - "application/manifest+json": { - "charset": "UTF-8", - "compressible": true, - "extensions": ["webmanifest"] - }, - "application/marc": { - "source": "iana", - "extensions": ["mrc"] - }, - "application/marcxml+xml": { - "source": "iana", - "extensions": ["mrcx"] - }, - "application/mathematica": { - "source": "iana", - "extensions": ["ma","nb","mb"] - }, - "application/mathml+xml": { - "source": "iana", - "extensions": ["mathml"] - }, - "application/mathml-content+xml": { - "source": "iana" - }, - "application/mathml-presentation+xml": { - "source": "iana" - }, - "application/mbms-associated-procedure-description+xml": { - "source": "iana" - }, - "application/mbms-deregister+xml": { - "source": "iana" - }, - "application/mbms-envelope+xml": { - "source": "iana" - }, - "application/mbms-msk+xml": { - "source": "iana" - }, - "application/mbms-msk-response+xml": { - "source": "iana" - }, - "application/mbms-protection-description+xml": { - "source": "iana" - }, - "application/mbms-reception-report+xml": { - "source": "iana" - }, - "application/mbms-register+xml": { - "source": "iana" - }, - "application/mbms-register-response+xml": { - "source": "iana" - }, - "application/mbms-schedule+xml": { - "source": "iana" - }, - "application/mbms-user-service-description+xml": { - "source": "iana" - }, - "application/mbox": { - "source": "iana", - "extensions": ["mbox"] - }, - "application/media-policy-dataset+xml": { - "source": "iana" - }, - "application/media_control+xml": { - "source": "iana" - }, - "application/mediaservercontrol+xml": { - "source": "iana", - "extensions": ["mscml"] - }, - "application/merge-patch+json": { - "source": "iana", - "compressible": true - }, - "application/metalink+xml": { - "source": "apache", - "extensions": ["metalink"] - }, - "application/metalink4+xml": { - "source": "iana", - "extensions": ["meta4"] - }, - "application/mets+xml": { - "source": "iana", - "extensions": ["mets"] - }, - "application/mf4": { - "source": "iana" - }, - "application/mikey": { - "source": "iana" - }, - "application/mods+xml": { - "source": "iana", - "extensions": ["mods"] - }, - "application/moss-keys": { - "source": "iana" - }, - "application/moss-signature": { - "source": "iana" - }, - "application/mosskey-data": { - "source": "iana" - }, - "application/mosskey-request": { - "source": "iana" - }, - "application/mp21": { - "source": "iana", - "extensions": ["m21","mp21"] - }, - "application/mp4": { - "source": "iana", - "extensions": ["mp4s","m4p"] - }, - "application/mpeg4-generic": { - "source": "iana" - }, - "application/mpeg4-iod": { - "source": "iana" - }, - "application/mpeg4-iod-xmt": { - "source": "iana" - }, - "application/mrb-consumer+xml": { - "source": "iana" - }, - "application/mrb-publish+xml": { - "source": "iana" - }, - "application/msc-ivr+xml": { - "source": "iana" - }, - "application/msc-mixer+xml": { - "source": "iana" - }, - "application/msword": { - "source": "iana", - "compressible": false, - "extensions": ["doc","dot"] - }, - "application/mxf": { - "source": "iana", - "extensions": ["mxf"] - }, - "application/nasdata": { - "source": "iana" - }, - "application/news-checkgroups": { - "source": "iana" - }, - "application/news-groupinfo": { - "source": "iana" - }, - "application/news-transmission": { - "source": "iana" - }, - "application/nlsml+xml": { - "source": "iana" - }, - "application/nss": { - "source": "iana" - }, - "application/ocsp-request": { - "source": "iana" - }, - "application/ocsp-response": { - "source": "iana" - }, - "application/octet-stream": { - "source": "iana", - "compressible": false, - "extensions": ["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"] - }, - "application/oda": { - "source": "iana", - "extensions": ["oda"] - }, - "application/odx": { - "source": "iana" - }, - "application/oebps-package+xml": { - "source": "iana", - "extensions": ["opf"] - }, - "application/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["ogx"] - }, - "application/omdoc+xml": { - "source": "apache", - "extensions": ["omdoc"] - }, - "application/onenote": { - "source": "apache", - "extensions": ["onetoc","onetoc2","onetmp","onepkg"] - }, - "application/oxps": { - "source": "iana", - "extensions": ["oxps"] - }, - "application/p2p-overlay+xml": { - "source": "iana" - }, - "application/parityfec": { - "source": "iana" - }, - "application/patch-ops-error+xml": { - "source": "iana", - "extensions": ["xer"] - }, - "application/pdf": { - "source": "iana", - "compressible": false, - "extensions": ["pdf"] - }, - "application/pdx": { - "source": "iana" - }, - "application/pgp-encrypted": { - "source": "iana", - "compressible": false, - "extensions": ["pgp"] - }, - "application/pgp-keys": { - "source": "iana" - }, - "application/pgp-signature": { - "source": "iana", - "extensions": ["asc","sig"] - }, - "application/pics-rules": { - "source": "apache", - "extensions": ["prf"] - }, - "application/pidf+xml": { - "source": "iana" - }, - "application/pidf-diff+xml": { - "source": "iana" - }, - "application/pkcs10": { - "source": "iana", - "extensions": ["p10"] - }, - "application/pkcs12": { - "source": "iana" - }, - "application/pkcs7-mime": { - "source": "iana", - "extensions": ["p7m","p7c"] - }, - "application/pkcs7-signature": { - "source": "iana", - "extensions": ["p7s"] - }, - "application/pkcs8": { - "source": "iana", - "extensions": ["p8"] - }, - "application/pkix-attr-cert": { - "source": "iana", - "extensions": ["ac"] - }, - "application/pkix-cert": { - "source": "iana", - "extensions": ["cer"] - }, - "application/pkix-crl": { - "source": "iana", - "extensions": ["crl"] - }, - "application/pkix-pkipath": { - "source": "iana", - "extensions": ["pkipath"] - }, - "application/pkixcmp": { - "source": "iana", - "extensions": ["pki"] - }, - "application/pls+xml": { - "source": "iana", - "extensions": ["pls"] - }, - "application/poc-settings+xml": { - "source": "iana" - }, - "application/postscript": { - "source": "iana", - "compressible": true, - "extensions": ["ai","eps","ps"] - }, - "application/ppsp-tracker+json": { - "source": "iana", - "compressible": true - }, - "application/problem+json": { - "source": "iana", - "compressible": true - }, - "application/problem+xml": { - "source": "iana" - }, - "application/provenance+xml": { - "source": "iana" - }, - "application/prs.alvestrand.titrax-sheet": { - "source": "iana" - }, - "application/prs.cww": { - "source": "iana", - "extensions": ["cww"] - }, - "application/prs.hpub+zip": { - "source": "iana" - }, - "application/prs.nprend": { - "source": "iana" - }, - "application/prs.plucker": { - "source": "iana" - }, - "application/prs.rdf-xml-crypt": { - "source": "iana" - }, - "application/prs.xsf+xml": { - "source": "iana" - }, - "application/pskc+xml": { - "source": "iana", - "extensions": ["pskcxml"] - }, - "application/qsig": { - "source": "iana" - }, - "application/raptorfec": { - "source": "iana" - }, - "application/rdap+json": { - "source": "iana", - "compressible": true - }, - "application/rdf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rdf"] - }, - "application/reginfo+xml": { - "source": "iana", - "extensions": ["rif"] - }, - "application/relax-ng-compact-syntax": { - "source": "iana", - "extensions": ["rnc"] - }, - "application/remote-printing": { - "source": "iana" - }, - "application/reputon+json": { - "source": "iana", - "compressible": true - }, - "application/resource-lists+xml": { - "source": "iana", - "extensions": ["rl"] - }, - "application/resource-lists-diff+xml": { - "source": "iana", - "extensions": ["rld"] - }, - "application/rfc+xml": { - "source": "iana" - }, - "application/riscos": { - "source": "iana" - }, - "application/rlmi+xml": { - "source": "iana" - }, - "application/rls-services+xml": { - "source": "iana", - "extensions": ["rs"] - }, - "application/rpki-ghostbusters": { - "source": "iana", - "extensions": ["gbr"] - }, - "application/rpki-manifest": { - "source": "iana", - "extensions": ["mft"] - }, - "application/rpki-roa": { - "source": "iana", - "extensions": ["roa"] - }, - "application/rpki-updown": { - "source": "iana" - }, - "application/rsd+xml": { - "source": "apache", - "extensions": ["rsd"] - }, - "application/rss+xml": { - "source": "apache", - "compressible": true, - "extensions": ["rss"] - }, - "application/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "application/rtploopback": { - "source": "iana" - }, - "application/rtx": { - "source": "iana" - }, - "application/samlassertion+xml": { - "source": "iana" - }, - "application/samlmetadata+xml": { - "source": "iana" - }, - "application/sbml+xml": { - "source": "iana", - "extensions": ["sbml"] - }, - "application/scaip+xml": { - "source": "iana" - }, - "application/scim+json": { - "source": "iana", - "compressible": true - }, - "application/scvp-cv-request": { - "source": "iana", - "extensions": ["scq"] - }, - "application/scvp-cv-response": { - "source": "iana", - "extensions": ["scs"] - }, - "application/scvp-vp-request": { - "source": "iana", - "extensions": ["spq"] - }, - "application/scvp-vp-response": { - "source": "iana", - "extensions": ["spp"] - }, - "application/sdp": { - "source": "iana", - "extensions": ["sdp"] - }, - "application/sep+xml": { - "source": "iana" - }, - "application/sep-exi": { - "source": "iana" - }, - "application/session-info": { - "source": "iana" - }, - "application/set-payment": { - "source": "iana" - }, - "application/set-payment-initiation": { - "source": "iana", - "extensions": ["setpay"] - }, - "application/set-registration": { - "source": "iana" - }, - "application/set-registration-initiation": { - "source": "iana", - "extensions": ["setreg"] - }, - "application/sgml": { - "source": "iana" - }, - "application/sgml-open-catalog": { - "source": "iana" - }, - "application/shf+xml": { - "source": "iana", - "extensions": ["shf"] - }, - "application/sieve": { - "source": "iana" - }, - "application/simple-filter+xml": { - "source": "iana" - }, - "application/simple-message-summary": { - "source": "iana" - }, - "application/simplesymbolcontainer": { - "source": "iana" - }, - "application/slate": { - "source": "iana" - }, - "application/smil": { - "source": "iana" - }, - "application/smil+xml": { - "source": "iana", - "extensions": ["smi","smil"] - }, - "application/smpte336m": { - "source": "iana" - }, - "application/soap+fastinfoset": { - "source": "iana" - }, - "application/soap+xml": { - "source": "iana", - "compressible": true - }, - "application/sparql-query": { - "source": "iana", - "extensions": ["rq"] - }, - "application/sparql-results+xml": { - "source": "iana", - "extensions": ["srx"] - }, - "application/spirits-event+xml": { - "source": "iana" - }, - "application/sql": { - "source": "iana" - }, - "application/srgs": { - "source": "iana", - "extensions": ["gram"] - }, - "application/srgs+xml": { - "source": "iana", - "extensions": ["grxml"] - }, - "application/sru+xml": { - "source": "iana", - "extensions": ["sru"] - }, - "application/ssdl+xml": { - "source": "apache", - "extensions": ["ssdl"] - }, - "application/ssml+xml": { - "source": "iana", - "extensions": ["ssml"] - }, - "application/tamp-apex-update": { - "source": "iana" - }, - "application/tamp-apex-update-confirm": { - "source": "iana" - }, - "application/tamp-community-update": { - "source": "iana" - }, - "application/tamp-community-update-confirm": { - "source": "iana" - }, - "application/tamp-error": { - "source": "iana" - }, - "application/tamp-sequence-adjust": { - "source": "iana" - }, - "application/tamp-sequence-adjust-confirm": { - "source": "iana" - }, - "application/tamp-status-query": { - "source": "iana" - }, - "application/tamp-status-response": { - "source": "iana" - }, - "application/tamp-update": { - "source": "iana" - }, - "application/tamp-update-confirm": { - "source": "iana" - }, - "application/tar": { - "compressible": true - }, - "application/tei+xml": { - "source": "iana", - "extensions": ["tei","teicorpus"] - }, - "application/thraud+xml": { - "source": "iana", - "extensions": ["tfi"] - }, - "application/timestamp-query": { - "source": "iana" - }, - "application/timestamp-reply": { - "source": "iana" - }, - "application/timestamped-data": { - "source": "iana", - "extensions": ["tsd"] - }, - "application/ttml+xml": { - "source": "iana" - }, - "application/tve-trigger": { - "source": "iana" - }, - "application/ulpfec": { - "source": "iana" - }, - "application/urc-grpsheet+xml": { - "source": "iana" - }, - "application/urc-ressheet+xml": { - "source": "iana" - }, - "application/urc-targetdesc+xml": { - "source": "iana" - }, - "application/urc-uisocketdesc+xml": { - "source": "iana" - }, - "application/vcard+json": { - "source": "iana", - "compressible": true - }, - "application/vcard+xml": { - "source": "iana" - }, - "application/vemmi": { - "source": "iana" - }, - "application/vividence.scriptfile": { - "source": "apache" - }, - "application/vnd.3gpp-prose+xml": { - "source": "iana" - }, - "application/vnd.3gpp-prose-pc3ch+xml": { - "source": "iana" - }, - "application/vnd.3gpp.access-transfer-events+xml": { - "source": "iana" - }, - "application/vnd.3gpp.bsf+xml": { - "source": "iana" - }, - "application/vnd.3gpp.mid-call+xml": { - "source": "iana" - }, - "application/vnd.3gpp.pic-bw-large": { - "source": "iana", - "extensions": ["plb"] - }, - "application/vnd.3gpp.pic-bw-small": { - "source": "iana", - "extensions": ["psb"] - }, - "application/vnd.3gpp.pic-bw-var": { - "source": "iana", - "extensions": ["pvb"] - }, - "application/vnd.3gpp.sms": { - "source": "iana" - }, - "application/vnd.3gpp.sms+xml": { - "source": "iana" - }, - "application/vnd.3gpp.srvcc-ext+xml": { - "source": "iana" - }, - "application/vnd.3gpp.srvcc-info+xml": { - "source": "iana" - }, - "application/vnd.3gpp.state-and-event-info+xml": { - "source": "iana" - }, - "application/vnd.3gpp.ussd+xml": { - "source": "iana" - }, - "application/vnd.3gpp2.bcmcsinfo+xml": { - "source": "iana" - }, - "application/vnd.3gpp2.sms": { - "source": "iana" - }, - "application/vnd.3gpp2.tcap": { - "source": "iana", - "extensions": ["tcap"] - }, - "application/vnd.3lightssoftware.imagescal": { - "source": "iana" - }, - "application/vnd.3m.post-it-notes": { - "source": "iana", - "extensions": ["pwn"] - }, - "application/vnd.accpac.simply.aso": { - "source": "iana", - "extensions": ["aso"] - }, - "application/vnd.accpac.simply.imp": { - "source": "iana", - "extensions": ["imp"] - }, - "application/vnd.acucobol": { - "source": "iana", - "extensions": ["acu"] - }, - "application/vnd.acucorp": { - "source": "iana", - "extensions": ["atc","acutc"] - }, - "application/vnd.adobe.air-application-installer-package+zip": { - "source": "apache", - "extensions": ["air"] - }, - "application/vnd.adobe.flash.movie": { - "source": "iana" - }, - "application/vnd.adobe.formscentral.fcdt": { - "source": "iana", - "extensions": ["fcdt"] - }, - "application/vnd.adobe.fxp": { - "source": "iana", - "extensions": ["fxp","fxpl"] - }, - "application/vnd.adobe.partial-upload": { - "source": "iana" - }, - "application/vnd.adobe.xdp+xml": { - "source": "iana", - "extensions": ["xdp"] - }, - "application/vnd.adobe.xfdf": { - "source": "iana", - "extensions": ["xfdf"] - }, - "application/vnd.aether.imp": { - "source": "iana" - }, - "application/vnd.ah-barcode": { - "source": "iana" - }, - "application/vnd.ahead.space": { - "source": "iana", - "extensions": ["ahead"] - }, - "application/vnd.airzip.filesecure.azf": { - "source": "iana", - "extensions": ["azf"] - }, - "application/vnd.airzip.filesecure.azs": { - "source": "iana", - "extensions": ["azs"] - }, - "application/vnd.amazon.ebook": { - "source": "apache", - "extensions": ["azw"] - }, - "application/vnd.amazon.mobi8-ebook": { - "source": "iana" - }, - "application/vnd.americandynamics.acc": { - "source": "iana", - "extensions": ["acc"] - }, - "application/vnd.amiga.ami": { - "source": "iana", - "extensions": ["ami"] - }, - "application/vnd.amundsen.maze+xml": { - "source": "iana" - }, - "application/vnd.android.package-archive": { - "source": "apache", - "compressible": false, - "extensions": ["apk"] - }, - "application/vnd.anki": { - "source": "iana" - }, - "application/vnd.anser-web-certificate-issue-initiation": { - "source": "iana", - "extensions": ["cii"] - }, - "application/vnd.anser-web-funds-transfer-initiation": { - "source": "apache", - "extensions": ["fti"] - }, - "application/vnd.antix.game-component": { - "source": "iana", - "extensions": ["atx"] - }, - "application/vnd.apache.thrift.binary": { - "source": "iana" - }, - "application/vnd.apache.thrift.compact": { - "source": "iana" - }, - "application/vnd.apache.thrift.json": { - "source": "iana" - }, - "application/vnd.api+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.apple.installer+xml": { - "source": "iana", - "extensions": ["mpkg"] - }, - "application/vnd.apple.mpegurl": { - "source": "iana", - "extensions": ["m3u8"] - }, - "application/vnd.apple.pkpass": { - "compressible": false, - "extensions": ["pkpass"] - }, - "application/vnd.arastra.swi": { - "source": "iana" - }, - "application/vnd.aristanetworks.swi": { - "source": "iana", - "extensions": ["swi"] - }, - "application/vnd.artsquare": { - "source": "iana" - }, - "application/vnd.astraea-software.iota": { - "source": "iana", - "extensions": ["iota"] - }, - "application/vnd.audiograph": { - "source": "iana", - "extensions": ["aep"] - }, - "application/vnd.autopackage": { - "source": "iana" - }, - "application/vnd.avistar+xml": { - "source": "iana" - }, - "application/vnd.balsamiq.bmml+xml": { - "source": "iana" - }, - "application/vnd.balsamiq.bmpr": { - "source": "iana" - }, - "application/vnd.bekitzur-stech+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.biopax.rdf+xml": { - "source": "iana" - }, - "application/vnd.blueice.multipass": { - "source": "iana", - "extensions": ["mpm"] - }, - "application/vnd.bluetooth.ep.oob": { - "source": "iana" - }, - "application/vnd.bluetooth.le.oob": { - "source": "iana" - }, - "application/vnd.bmi": { - "source": "iana", - "extensions": ["bmi"] - }, - "application/vnd.businessobjects": { - "source": "iana", - "extensions": ["rep"] - }, - "application/vnd.cab-jscript": { - "source": "iana" - }, - "application/vnd.canon-cpdl": { - "source": "iana" - }, - "application/vnd.canon-lips": { - "source": "iana" - }, - "application/vnd.cendio.thinlinc.clientconf": { - "source": "iana" - }, - "application/vnd.century-systems.tcp_stream": { - "source": "iana" - }, - "application/vnd.chemdraw+xml": { - "source": "iana", - "extensions": ["cdxml"] - }, - "application/vnd.chess-pgn": { - "source": "iana" - }, - "application/vnd.chipnuts.karaoke-mmd": { - "source": "iana", - "extensions": ["mmd"] - }, - "application/vnd.cinderella": { - "source": "iana", - "extensions": ["cdy"] - }, - "application/vnd.cirpack.isdn-ext": { - "source": "iana" - }, - "application/vnd.citationstyles.style+xml": { - "source": "iana" - }, - "application/vnd.claymore": { - "source": "iana", - "extensions": ["cla"] - }, - "application/vnd.cloanto.rp9": { - "source": "iana", - "extensions": ["rp9"] - }, - "application/vnd.clonk.c4group": { - "source": "iana", - "extensions": ["c4g","c4d","c4f","c4p","c4u"] - }, - "application/vnd.cluetrust.cartomobile-config": { - "source": "iana", - "extensions": ["c11amc"] - }, - "application/vnd.cluetrust.cartomobile-config-pkg": { - "source": "iana", - "extensions": ["c11amz"] - }, - "application/vnd.coffeescript": { - "source": "iana" - }, - "application/vnd.collection+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.doc+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.next+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.comicbook+zip": { - "source": "iana" - }, - "application/vnd.commerce-battelle": { - "source": "iana" - }, - "application/vnd.commonspace": { - "source": "iana", - "extensions": ["csp"] - }, - "application/vnd.contact.cmsg": { - "source": "iana", - "extensions": ["cdbcmsg"] - }, - "application/vnd.coreos.ignition+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cosmocaller": { - "source": "iana", - "extensions": ["cmc"] - }, - "application/vnd.crick.clicker": { - "source": "iana", - "extensions": ["clkx"] - }, - "application/vnd.crick.clicker.keyboard": { - "source": "iana", - "extensions": ["clkk"] - }, - "application/vnd.crick.clicker.palette": { - "source": "iana", - "extensions": ["clkp"] - }, - "application/vnd.crick.clicker.template": { - "source": "iana", - "extensions": ["clkt"] - }, - "application/vnd.crick.clicker.wordbank": { - "source": "iana", - "extensions": ["clkw"] - }, - "application/vnd.criticaltools.wbs+xml": { - "source": "iana", - "extensions": ["wbs"] - }, - "application/vnd.ctc-posml": { - "source": "iana", - "extensions": ["pml"] - }, - "application/vnd.ctct.ws+xml": { - "source": "iana" - }, - "application/vnd.cups-pdf": { - "source": "iana" - }, - "application/vnd.cups-postscript": { - "source": "iana" - }, - "application/vnd.cups-ppd": { - "source": "iana", - "extensions": ["ppd"] - }, - "application/vnd.cups-raster": { - "source": "iana" - }, - "application/vnd.cups-raw": { - "source": "iana" - }, - "application/vnd.curl": { - "source": "iana" - }, - "application/vnd.curl.car": { - "source": "apache", - "extensions": ["car"] - }, - "application/vnd.curl.pcurl": { - "source": "apache", - "extensions": ["pcurl"] - }, - "application/vnd.cyan.dean.root+xml": { - "source": "iana" - }, - "application/vnd.cybank": { - "source": "iana" - }, - "application/vnd.d2l.coursepackage1p0+zip": { - "source": "iana" - }, - "application/vnd.dart": { - "source": "iana", - "compressible": true, - "extensions": ["dart"] - }, - "application/vnd.data-vision.rdz": { - "source": "iana", - "extensions": ["rdz"] - }, - "application/vnd.debian.binary-package": { - "source": "iana" - }, - "application/vnd.dece.data": { - "source": "iana", - "extensions": ["uvf","uvvf","uvd","uvvd"] - }, - "application/vnd.dece.ttml+xml": { - "source": "iana", - "extensions": ["uvt","uvvt"] - }, - "application/vnd.dece.unspecified": { - "source": "iana", - "extensions": ["uvx","uvvx"] - }, - "application/vnd.dece.zip": { - "source": "iana", - "extensions": ["uvz","uvvz"] - }, - "application/vnd.denovo.fcselayout-link": { - "source": "iana", - "extensions": ["fe_launch"] - }, - "application/vnd.desmume-movie": { - "source": "iana" - }, - "application/vnd.desmume.movie": { - "source": "apache" - }, - "application/vnd.dir-bi.plate-dl-nosuffix": { - "source": "iana" - }, - "application/vnd.dm.delegation+xml": { - "source": "iana" - }, - "application/vnd.dna": { - "source": "iana", - "extensions": ["dna"] - }, - "application/vnd.document+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.dolby.mlp": { - "source": "apache", - "extensions": ["mlp"] - }, - "application/vnd.dolby.mobile.1": { - "source": "iana" - }, - "application/vnd.dolby.mobile.2": { - "source": "iana" - }, - "application/vnd.doremir.scorecloud-binary-document": { - "source": "iana" - }, - "application/vnd.dpgraph": { - "source": "iana", - "extensions": ["dpg"] - }, - "application/vnd.dreamfactory": { - "source": "iana", - "extensions": ["dfac"] - }, - "application/vnd.drive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ds-keypoint": { - "source": "apache", - "extensions": ["kpxx"] - }, - "application/vnd.dtg.local": { - "source": "iana" - }, - "application/vnd.dtg.local.flash": { - "source": "iana" - }, - "application/vnd.dtg.local.html": { - "source": "iana" - }, - "application/vnd.dvb.ait": { - "source": "iana", - "extensions": ["ait"] - }, - "application/vnd.dvb.dvbj": { - "source": "iana" - }, - "application/vnd.dvb.esgcontainer": { - "source": "iana" - }, - "application/vnd.dvb.ipdcdftnotifaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess2": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgpdd": { - "source": "iana" - }, - "application/vnd.dvb.ipdcroaming": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-base": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-enhancement": { - "source": "iana" - }, - "application/vnd.dvb.notif-aggregate-root+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-container+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-generic+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-msglist+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-registration-request+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-registration-response+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-init+xml": { - "source": "iana" - }, - "application/vnd.dvb.pfr": { - "source": "iana" - }, - "application/vnd.dvb.service": { - "source": "iana", - "extensions": ["svc"] - }, - "application/vnd.dxr": { - "source": "iana" - }, - "application/vnd.dynageo": { - "source": "iana", - "extensions": ["geo"] - }, - "application/vnd.dzr": { - "source": "iana" - }, - "application/vnd.easykaraoke.cdgdownload": { - "source": "iana" - }, - "application/vnd.ecdis-update": { - "source": "iana" - }, - "application/vnd.ecowin.chart": { - "source": "iana", - "extensions": ["mag"] - }, - "application/vnd.ecowin.filerequest": { - "source": "iana" - }, - "application/vnd.ecowin.fileupdate": { - "source": "iana" - }, - "application/vnd.ecowin.series": { - "source": "iana" - }, - "application/vnd.ecowin.seriesrequest": { - "source": "iana" - }, - "application/vnd.ecowin.seriesupdate": { - "source": "iana" - }, - "application/vnd.emclient.accessrequest+xml": { - "source": "iana" - }, - "application/vnd.enliven": { - "source": "iana", - "extensions": ["nml"] - }, - "application/vnd.enphase.envoy": { - "source": "iana" - }, - "application/vnd.eprints.data+xml": { - "source": "iana" - }, - "application/vnd.epson.esf": { - "source": "iana", - "extensions": ["esf"] - }, - "application/vnd.epson.msf": { - "source": "iana", - "extensions": ["msf"] - }, - "application/vnd.epson.quickanime": { - "source": "iana", - "extensions": ["qam"] - }, - "application/vnd.epson.salt": { - "source": "iana", - "extensions": ["slt"] - }, - "application/vnd.epson.ssf": { - "source": "iana", - "extensions": ["ssf"] - }, - "application/vnd.ericsson.quickcall": { - "source": "iana" - }, - "application/vnd.espass-espass+zip": { - "source": "iana" - }, - "application/vnd.eszigno3+xml": { - "source": "iana", - "extensions": ["es3","et3"] - }, - "application/vnd.etsi.aoc+xml": { - "source": "iana" - }, - "application/vnd.etsi.asic-e+zip": { - "source": "iana" - }, - "application/vnd.etsi.asic-s+zip": { - "source": "iana" - }, - "application/vnd.etsi.cug+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvcommand+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvdiscovery+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvprofile+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-bc+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-cod+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-npvr+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvservice+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsync+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvueprofile+xml": { - "source": "iana" - }, - "application/vnd.etsi.mcid+xml": { - "source": "iana" - }, - "application/vnd.etsi.mheg5": { - "source": "iana" - }, - "application/vnd.etsi.overload-control-policy-dataset+xml": { - "source": "iana" - }, - "application/vnd.etsi.pstn+xml": { - "source": "iana" - }, - "application/vnd.etsi.sci+xml": { - "source": "iana" - }, - "application/vnd.etsi.simservs+xml": { - "source": "iana" - }, - "application/vnd.etsi.timestamp-token": { - "source": "iana" - }, - "application/vnd.etsi.tsl+xml": { - "source": "iana" - }, - "application/vnd.etsi.tsl.der": { - "source": "iana" - }, - "application/vnd.eudora.data": { - "source": "iana" - }, - "application/vnd.ezpix-album": { - "source": "iana", - "extensions": ["ez2"] - }, - "application/vnd.ezpix-package": { - "source": "iana", - "extensions": ["ez3"] - }, - "application/vnd.f-secure.mobile": { - "source": "iana" - }, - "application/vnd.fastcopy-disk-image": { - "source": "iana" - }, - "application/vnd.fdf": { - "source": "iana", - "extensions": ["fdf"] - }, - "application/vnd.fdsn.mseed": { - "source": "iana", - "extensions": ["mseed"] - }, - "application/vnd.fdsn.seed": { - "source": "iana", - "extensions": ["seed","dataless"] - }, - "application/vnd.ffsns": { - "source": "iana" - }, - "application/vnd.filmit.zfc": { - "source": "iana" - }, - "application/vnd.fints": { - "source": "iana" - }, - "application/vnd.firemonkeys.cloudcell": { - "source": "iana" - }, - "application/vnd.flographit": { - "source": "iana", - "extensions": ["gph"] - }, - "application/vnd.fluxtime.clip": { - "source": "iana", - "extensions": ["ftc"] - }, - "application/vnd.font-fontforge-sfd": { - "source": "iana" - }, - "application/vnd.framemaker": { - "source": "iana", - "extensions": ["fm","frame","maker","book"] - }, - "application/vnd.frogans.fnc": { - "source": "iana", - "extensions": ["fnc"] - }, - "application/vnd.frogans.ltf": { - "source": "iana", - "extensions": ["ltf"] - }, - "application/vnd.fsc.weblaunch": { - "source": "iana", - "extensions": ["fsc"] - }, - "application/vnd.fujitsu.oasys": { - "source": "iana", - "extensions": ["oas"] - }, - "application/vnd.fujitsu.oasys2": { - "source": "iana", - "extensions": ["oa2"] - }, - "application/vnd.fujitsu.oasys3": { - "source": "iana", - "extensions": ["oa3"] - }, - "application/vnd.fujitsu.oasysgp": { - "source": "iana", - "extensions": ["fg5"] - }, - "application/vnd.fujitsu.oasysprs": { - "source": "iana", - "extensions": ["bh2"] - }, - "application/vnd.fujixerox.art-ex": { - "source": "iana" - }, - "application/vnd.fujixerox.art4": { - "source": "iana" - }, - "application/vnd.fujixerox.ddd": { - "source": "iana", - "extensions": ["ddd"] - }, - "application/vnd.fujixerox.docuworks": { - "source": "iana", - "extensions": ["xdw"] - }, - "application/vnd.fujixerox.docuworks.binder": { - "source": "iana", - "extensions": ["xbd"] - }, - "application/vnd.fujixerox.docuworks.container": { - "source": "iana" - }, - "application/vnd.fujixerox.hbpl": { - "source": "iana" - }, - "application/vnd.fut-misnet": { - "source": "iana" - }, - "application/vnd.fuzzysheet": { - "source": "iana", - "extensions": ["fzs"] - }, - "application/vnd.genomatix.tuxedo": { - "source": "iana", - "extensions": ["txd"] - }, - "application/vnd.geo+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.geocube+xml": { - "source": "iana" - }, - "application/vnd.geogebra.file": { - "source": "iana", - "extensions": ["ggb"] - }, - "application/vnd.geogebra.tool": { - "source": "iana", - "extensions": ["ggt"] - }, - "application/vnd.geometry-explorer": { - "source": "iana", - "extensions": ["gex","gre"] - }, - "application/vnd.geonext": { - "source": "iana", - "extensions": ["gxt"] - }, - "application/vnd.geoplan": { - "source": "iana", - "extensions": ["g2w"] - }, - "application/vnd.geospace": { - "source": "iana", - "extensions": ["g3w"] - }, - "application/vnd.gerber": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt-response": { - "source": "iana" - }, - "application/vnd.gmx": { - "source": "iana", - "extensions": ["gmx"] - }, - "application/vnd.google-apps.document": { - "compressible": false, - "extensions": ["gdoc"] - }, - "application/vnd.google-apps.presentation": { - "compressible": false, - "extensions": ["gslides"] - }, - "application/vnd.google-apps.spreadsheet": { - "compressible": false, - "extensions": ["gsheet"] - }, - "application/vnd.google-earth.kml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["kml"] - }, - "application/vnd.google-earth.kmz": { - "source": "iana", - "compressible": false, - "extensions": ["kmz"] - }, - "application/vnd.gov.sk.e-form+xml": { - "source": "iana" - }, - "application/vnd.gov.sk.e-form+zip": { - "source": "iana" - }, - "application/vnd.gov.sk.xmldatacontainer+xml": { - "source": "iana" - }, - "application/vnd.grafeq": { - "source": "iana", - "extensions": ["gqf","gqs"] - }, - "application/vnd.gridmp": { - "source": "iana" - }, - "application/vnd.groove-account": { - "source": "iana", - "extensions": ["gac"] - }, - "application/vnd.groove-help": { - "source": "iana", - "extensions": ["ghf"] - }, - "application/vnd.groove-identity-message": { - "source": "iana", - "extensions": ["gim"] - }, - "application/vnd.groove-injector": { - "source": "iana", - "extensions": ["grv"] - }, - "application/vnd.groove-tool-message": { - "source": "iana", - "extensions": ["gtm"] - }, - "application/vnd.groove-tool-template": { - "source": "iana", - "extensions": ["tpl"] - }, - "application/vnd.groove-vcard": { - "source": "iana", - "extensions": ["vcg"] - }, - "application/vnd.hal+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hal+xml": { - "source": "iana", - "extensions": ["hal"] - }, - "application/vnd.handheld-entertainment+xml": { - "source": "iana", - "extensions": ["zmm"] - }, - "application/vnd.hbci": { - "source": "iana", - "extensions": ["hbci"] - }, - "application/vnd.hcl-bireports": { - "source": "iana" - }, - "application/vnd.hdt": { - "source": "iana" - }, - "application/vnd.heroku+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hhe.lesson-player": { - "source": "iana", - "extensions": ["les"] - }, - "application/vnd.hp-hpgl": { - "source": "iana", - "extensions": ["hpgl"] - }, - "application/vnd.hp-hpid": { - "source": "iana", - "extensions": ["hpid"] - }, - "application/vnd.hp-hps": { - "source": "iana", - "extensions": ["hps"] - }, - "application/vnd.hp-jlyt": { - "source": "iana", - "extensions": ["jlt"] - }, - "application/vnd.hp-pcl": { - "source": "iana", - "extensions": ["pcl"] - }, - "application/vnd.hp-pclxl": { - "source": "iana", - "extensions": ["pclxl"] - }, - "application/vnd.httphone": { - "source": "iana" - }, - "application/vnd.hydrostatix.sof-data": { - "source": "iana", - "extensions": ["sfd-hdstx"] - }, - "application/vnd.hyperdrive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hzn-3d-crossword": { - "source": "iana" - }, - "application/vnd.ibm.afplinedata": { - "source": "iana" - }, - "application/vnd.ibm.electronic-media": { - "source": "iana" - }, - "application/vnd.ibm.minipay": { - "source": "iana", - "extensions": ["mpy"] - }, - "application/vnd.ibm.modcap": { - "source": "iana", - "extensions": ["afp","listafp","list3820"] - }, - "application/vnd.ibm.rights-management": { - "source": "iana", - "extensions": ["irm"] - }, - "application/vnd.ibm.secure-container": { - "source": "iana", - "extensions": ["sc"] - }, - "application/vnd.iccprofile": { - "source": "iana", - "extensions": ["icc","icm"] - }, - "application/vnd.ieee.1905": { - "source": "iana" - }, - "application/vnd.igloader": { - "source": "iana", - "extensions": ["igl"] - }, - "application/vnd.immervision-ivp": { - "source": "iana", - "extensions": ["ivp"] - }, - "application/vnd.immervision-ivu": { - "source": "iana", - "extensions": ["ivu"] - }, - "application/vnd.ims.imsccv1p1": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p2": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p3": { - "source": "iana" - }, - "application/vnd.ims.lis.v2.result+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolconsumerprofile+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy.id+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings.simple+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.informedcontrol.rms+xml": { - "source": "iana" - }, - "application/vnd.informix-visionary": { - "source": "iana" - }, - "application/vnd.infotech.project": { - "source": "iana" - }, - "application/vnd.infotech.project+xml": { - "source": "iana" - }, - "application/vnd.innopath.wamp.notification": { - "source": "iana" - }, - "application/vnd.insors.igm": { - "source": "iana", - "extensions": ["igm"] - }, - "application/vnd.intercon.formnet": { - "source": "iana", - "extensions": ["xpw","xpx"] - }, - "application/vnd.intergeo": { - "source": "iana", - "extensions": ["i2g"] - }, - "application/vnd.intertrust.digibox": { - "source": "iana" - }, - "application/vnd.intertrust.nncp": { - "source": "iana" - }, - "application/vnd.intu.qbo": { - "source": "iana", - "extensions": ["qbo"] - }, - "application/vnd.intu.qfx": { - "source": "iana", - "extensions": ["qfx"] - }, - "application/vnd.iptc.g2.catalogitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.conceptitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.knowledgeitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.newsitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.newsmessage+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.packageitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.planningitem+xml": { - "source": "iana" - }, - "application/vnd.ipunplugged.rcprofile": { - "source": "iana", - "extensions": ["rcprofile"] - }, - "application/vnd.irepository.package+xml": { - "source": "iana", - "extensions": ["irp"] - }, - "application/vnd.is-xpr": { - "source": "iana", - "extensions": ["xpr"] - }, - "application/vnd.isac.fcs": { - "source": "iana", - "extensions": ["fcs"] - }, - "application/vnd.jam": { - "source": "iana", - "extensions": ["jam"] - }, - "application/vnd.japannet-directory-service": { - "source": "iana" - }, - "application/vnd.japannet-jpnstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-payment-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-registration": { - "source": "iana" - }, - "application/vnd.japannet-registration-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-setstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-verification": { - "source": "iana" - }, - "application/vnd.japannet-verification-wakeup": { - "source": "iana" - }, - "application/vnd.jcp.javame.midlet-rms": { - "source": "iana", - "extensions": ["rms"] - }, - "application/vnd.jisp": { - "source": "iana", - "extensions": ["jisp"] - }, - "application/vnd.joost.joda-archive": { - "source": "iana", - "extensions": ["joda"] - }, - "application/vnd.jsk.isdn-ngn": { - "source": "iana" - }, - "application/vnd.kahootz": { - "source": "iana", - "extensions": ["ktz","ktr"] - }, - "application/vnd.kde.karbon": { - "source": "iana", - "extensions": ["karbon"] - }, - "application/vnd.kde.kchart": { - "source": "iana", - "extensions": ["chrt"] - }, - "application/vnd.kde.kformula": { - "source": "iana", - "extensions": ["kfo"] - }, - "application/vnd.kde.kivio": { - "source": "iana", - "extensions": ["flw"] - }, - "application/vnd.kde.kontour": { - "source": "iana", - "extensions": ["kon"] - }, - "application/vnd.kde.kpresenter": { - "source": "iana", - "extensions": ["kpr","kpt"] - }, - "application/vnd.kde.kspread": { - "source": "iana", - "extensions": ["ksp"] - }, - "application/vnd.kde.kword": { - "source": "iana", - "extensions": ["kwd","kwt"] - }, - "application/vnd.kenameaapp": { - "source": "iana", - "extensions": ["htke"] - }, - "application/vnd.kidspiration": { - "source": "iana", - "extensions": ["kia"] - }, - "application/vnd.kinar": { - "source": "iana", - "extensions": ["kne","knp"] - }, - "application/vnd.koan": { - "source": "iana", - "extensions": ["skp","skd","skt","skm"] - }, - "application/vnd.kodak-descriptor": { - "source": "iana", - "extensions": ["sse"] - }, - "application/vnd.las.las+xml": { - "source": "iana", - "extensions": ["lasxml"] - }, - "application/vnd.liberty-request+xml": { - "source": "iana" - }, - "application/vnd.llamagraphics.life-balance.desktop": { - "source": "iana", - "extensions": ["lbd"] - }, - "application/vnd.llamagraphics.life-balance.exchange+xml": { - "source": "iana", - "extensions": ["lbe"] - }, - "application/vnd.lotus-1-2-3": { - "source": "iana", - "extensions": ["123"] - }, - "application/vnd.lotus-approach": { - "source": "iana", - "extensions": ["apr"] - }, - "application/vnd.lotus-freelance": { - "source": "iana", - "extensions": ["pre"] - }, - "application/vnd.lotus-notes": { - "source": "iana", - "extensions": ["nsf"] - }, - "application/vnd.lotus-organizer": { - "source": "iana", - "extensions": ["org"] - }, - "application/vnd.lotus-screencam": { - "source": "iana", - "extensions": ["scm"] - }, - "application/vnd.lotus-wordpro": { - "source": "iana", - "extensions": ["lwp"] - }, - "application/vnd.macports.portpkg": { - "source": "iana", - "extensions": ["portpkg"] - }, - "application/vnd.mapbox-vector-tile": { - "source": "iana" - }, - "application/vnd.marlin.drm.actiontoken+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.conftoken+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.license+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.mdcf": { - "source": "iana" - }, - "application/vnd.mason+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.maxmind.maxmind-db": { - "source": "iana" - }, - "application/vnd.mcd": { - "source": "iana", - "extensions": ["mcd"] - }, - "application/vnd.medcalcdata": { - "source": "iana", - "extensions": ["mc1"] - }, - "application/vnd.mediastation.cdkey": { - "source": "iana", - "extensions": ["cdkey"] - }, - "application/vnd.meridian-slingshot": { - "source": "iana" - }, - "application/vnd.mfer": { - "source": "iana", - "extensions": ["mwf"] - }, - "application/vnd.mfmp": { - "source": "iana", - "extensions": ["mfm"] - }, - "application/vnd.micro+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.micrografx.flo": { - "source": "iana", - "extensions": ["flo"] - }, - "application/vnd.micrografx.igx": { - "source": "iana", - "extensions": ["igx"] - }, - "application/vnd.microsoft.portable-executable": { - "source": "iana" - }, - "application/vnd.miele+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.mif": { - "source": "iana", - "extensions": ["mif"] - }, - "application/vnd.minisoft-hp3000-save": { - "source": "iana" - }, - "application/vnd.mitsubishi.misty-guard.trustweb": { - "source": "iana" - }, - "application/vnd.mobius.daf": { - "source": "iana", - "extensions": ["daf"] - }, - "application/vnd.mobius.dis": { - "source": "iana", - "extensions": ["dis"] - }, - "application/vnd.mobius.mbk": { - "source": "iana", - "extensions": ["mbk"] - }, - "application/vnd.mobius.mqy": { - "source": "iana", - "extensions": ["mqy"] - }, - "application/vnd.mobius.msl": { - "source": "iana", - "extensions": ["msl"] - }, - "application/vnd.mobius.plc": { - "source": "iana", - "extensions": ["plc"] - }, - "application/vnd.mobius.txf": { - "source": "iana", - "extensions": ["txf"] - }, - "application/vnd.mophun.application": { - "source": "iana", - "extensions": ["mpn"] - }, - "application/vnd.mophun.certificate": { - "source": "iana", - "extensions": ["mpc"] - }, - "application/vnd.motorola.flexsuite": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.adsi": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.fis": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.gotap": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.kmr": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.ttc": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.wem": { - "source": "iana" - }, - "application/vnd.motorola.iprm": { - "source": "iana" - }, - "application/vnd.mozilla.xul+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xul"] - }, - "application/vnd.ms-3mfdocument": { - "source": "iana" - }, - "application/vnd.ms-artgalry": { - "source": "iana", - "extensions": ["cil"] - }, - "application/vnd.ms-asf": { - "source": "iana" - }, - "application/vnd.ms-cab-compressed": { - "source": "iana", - "extensions": ["cab"] - }, - "application/vnd.ms-color.iccprofile": { - "source": "apache" - }, - "application/vnd.ms-excel": { - "source": "iana", - "compressible": false, - "extensions": ["xls","xlm","xla","xlc","xlt","xlw"] - }, - "application/vnd.ms-excel.addin.macroenabled.12": { - "source": "iana", - "extensions": ["xlam"] - }, - "application/vnd.ms-excel.sheet.binary.macroenabled.12": { - "source": "iana", - "extensions": ["xlsb"] - }, - "application/vnd.ms-excel.sheet.macroenabled.12": { - "source": "iana", - "extensions": ["xlsm"] - }, - "application/vnd.ms-excel.template.macroenabled.12": { - "source": "iana", - "extensions": ["xltm"] - }, - "application/vnd.ms-fontobject": { - "source": "iana", - "compressible": true, - "extensions": ["eot"] - }, - "application/vnd.ms-htmlhelp": { - "source": "iana", - "extensions": ["chm"] - }, - "application/vnd.ms-ims": { - "source": "iana", - "extensions": ["ims"] - }, - "application/vnd.ms-lrm": { - "source": "iana", - "extensions": ["lrm"] - }, - "application/vnd.ms-office.activex+xml": { - "source": "iana" - }, - "application/vnd.ms-officetheme": { - "source": "iana", - "extensions": ["thmx"] - }, - "application/vnd.ms-opentype": { - "source": "apache", - "compressible": true - }, - "application/vnd.ms-package.obfuscated-opentype": { - "source": "apache" - }, - "application/vnd.ms-pki.seccat": { - "source": "apache", - "extensions": ["cat"] - }, - "application/vnd.ms-pki.stl": { - "source": "apache", - "extensions": ["stl"] - }, - "application/vnd.ms-playready.initiator+xml": { - "source": "iana" - }, - "application/vnd.ms-powerpoint": { - "source": "iana", - "compressible": false, - "extensions": ["ppt","pps","pot"] - }, - "application/vnd.ms-powerpoint.addin.macroenabled.12": { - "source": "iana", - "extensions": ["ppam"] - }, - "application/vnd.ms-powerpoint.presentation.macroenabled.12": { - "source": "iana", - "extensions": ["pptm"] - }, - "application/vnd.ms-powerpoint.slide.macroenabled.12": { - "source": "iana", - "extensions": ["sldm"] - }, - "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { - "source": "iana", - "extensions": ["ppsm"] - }, - "application/vnd.ms-powerpoint.template.macroenabled.12": { - "source": "iana", - "extensions": ["potm"] - }, - "application/vnd.ms-printdevicecapabilities+xml": { - "source": "iana" - }, - "application/vnd.ms-printing.printticket+xml": { - "source": "apache" - }, - "application/vnd.ms-printschematicket+xml": { - "source": "iana" - }, - "application/vnd.ms-project": { - "source": "iana", - "extensions": ["mpp","mpt"] - }, - "application/vnd.ms-tnef": { - "source": "iana" - }, - "application/vnd.ms-windows.devicepairing": { - "source": "iana" - }, - "application/vnd.ms-windows.nwprinting.oob": { - "source": "iana" - }, - "application/vnd.ms-windows.printerpairing": { - "source": "iana" - }, - "application/vnd.ms-windows.wsd.oob": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-resp": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-resp": { - "source": "iana" - }, - "application/vnd.ms-word.document.macroenabled.12": { - "source": "iana", - "extensions": ["docm"] - }, - "application/vnd.ms-word.template.macroenabled.12": { - "source": "iana", - "extensions": ["dotm"] - }, - "application/vnd.ms-works": { - "source": "iana", - "extensions": ["wps","wks","wcm","wdb"] - }, - "application/vnd.ms-wpl": { - "source": "iana", - "extensions": ["wpl"] - }, - "application/vnd.ms-xpsdocument": { - "source": "iana", - "compressible": false, - "extensions": ["xps"] - }, - "application/vnd.msa-disk-image": { - "source": "iana" - }, - "application/vnd.mseq": { - "source": "iana", - "extensions": ["mseq"] - }, - "application/vnd.msign": { - "source": "iana" - }, - "application/vnd.multiad.creator": { - "source": "iana" - }, - "application/vnd.multiad.creator.cif": { - "source": "iana" - }, - "application/vnd.music-niff": { - "source": "iana" - }, - "application/vnd.musician": { - "source": "iana", - "extensions": ["mus"] - }, - "application/vnd.muvee.style": { - "source": "iana", - "extensions": ["msty"] - }, - "application/vnd.mynfc": { - "source": "iana", - "extensions": ["taglet"] - }, - "application/vnd.ncd.control": { - "source": "iana" - }, - "application/vnd.ncd.reference": { - "source": "iana" - }, - "application/vnd.nearst.inv+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.nervana": { - "source": "iana" - }, - "application/vnd.netfpx": { - "source": "iana" - }, - "application/vnd.neurolanguage.nlu": { - "source": "iana", - "extensions": ["nlu"] - }, - "application/vnd.nintendo.nitro.rom": { - "source": "iana" - }, - "application/vnd.nintendo.snes.rom": { - "source": "iana" - }, - "application/vnd.nitf": { - "source": "iana", - "extensions": ["ntf","nitf"] - }, - "application/vnd.noblenet-directory": { - "source": "iana", - "extensions": ["nnd"] - }, - "application/vnd.noblenet-sealer": { - "source": "iana", - "extensions": ["nns"] - }, - "application/vnd.noblenet-web": { - "source": "iana", - "extensions": ["nnw"] - }, - "application/vnd.nokia.catalogs": { - "source": "iana" - }, - "application/vnd.nokia.conml+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.conml+xml": { - "source": "iana" - }, - "application/vnd.nokia.iptv.config+xml": { - "source": "iana" - }, - "application/vnd.nokia.isds-radio-presets": { - "source": "iana" - }, - "application/vnd.nokia.landmark+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.landmark+xml": { - "source": "iana" - }, - "application/vnd.nokia.landmarkcollection+xml": { - "source": "iana" - }, - "application/vnd.nokia.n-gage.ac+xml": { - "source": "iana" - }, - "application/vnd.nokia.n-gage.data": { - "source": "iana", - "extensions": ["ngdat"] - }, - "application/vnd.nokia.n-gage.symbian.install": { - "source": "iana", - "extensions": ["n-gage"] - }, - "application/vnd.nokia.ncd": { - "source": "iana" - }, - "application/vnd.nokia.pcd+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.pcd+xml": { - "source": "iana" - }, - "application/vnd.nokia.radio-preset": { - "source": "iana", - "extensions": ["rpst"] - }, - "application/vnd.nokia.radio-presets": { - "source": "iana", - "extensions": ["rpss"] - }, - "application/vnd.novadigm.edm": { - "source": "iana", - "extensions": ["edm"] - }, - "application/vnd.novadigm.edx": { - "source": "iana", - "extensions": ["edx"] - }, - "application/vnd.novadigm.ext": { - "source": "iana", - "extensions": ["ext"] - }, - "application/vnd.ntt-local.content-share": { - "source": "iana" - }, - "application/vnd.ntt-local.file-transfer": { - "source": "iana" - }, - "application/vnd.ntt-local.ogw_remote-access": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_remote": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_tcp_stream": { - "source": "iana" - }, - "application/vnd.oasis.opendocument.chart": { - "source": "iana", - "extensions": ["odc"] - }, - "application/vnd.oasis.opendocument.chart-template": { - "source": "iana", - "extensions": ["otc"] - }, - "application/vnd.oasis.opendocument.database": { - "source": "iana", - "extensions": ["odb"] - }, - "application/vnd.oasis.opendocument.formula": { - "source": "iana", - "extensions": ["odf"] - }, - "application/vnd.oasis.opendocument.formula-template": { - "source": "iana", - "extensions": ["odft"] - }, - "application/vnd.oasis.opendocument.graphics": { - "source": "iana", - "compressible": false, - "extensions": ["odg"] - }, - "application/vnd.oasis.opendocument.graphics-template": { - "source": "iana", - "extensions": ["otg"] - }, - "application/vnd.oasis.opendocument.image": { - "source": "iana", - "extensions": ["odi"] - }, - "application/vnd.oasis.opendocument.image-template": { - "source": "iana", - "extensions": ["oti"] - }, - "application/vnd.oasis.opendocument.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["odp"] - }, - "application/vnd.oasis.opendocument.presentation-template": { - "source": "iana", - "extensions": ["otp"] - }, - "application/vnd.oasis.opendocument.spreadsheet": { - "source": "iana", - "compressible": false, - "extensions": ["ods"] - }, - "application/vnd.oasis.opendocument.spreadsheet-template": { - "source": "iana", - "extensions": ["ots"] - }, - "application/vnd.oasis.opendocument.text": { - "source": "iana", - "compressible": false, - "extensions": ["odt"] - }, - "application/vnd.oasis.opendocument.text-master": { - "source": "iana", - "extensions": ["odm"] - }, - "application/vnd.oasis.opendocument.text-template": { - "source": "iana", - "extensions": ["ott"] - }, - "application/vnd.oasis.opendocument.text-web": { - "source": "iana", - "extensions": ["oth"] - }, - "application/vnd.obn": { - "source": "iana" - }, - "application/vnd.oftn.l10n+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.contentaccessdownload+xml": { - "source": "iana" - }, - "application/vnd.oipf.contentaccessstreaming+xml": { - "source": "iana" - }, - "application/vnd.oipf.cspg-hexbinary": { - "source": "iana" - }, - "application/vnd.oipf.dae.svg+xml": { - "source": "iana" - }, - "application/vnd.oipf.dae.xhtml+xml": { - "source": "iana" - }, - "application/vnd.oipf.mippvcontrolmessage+xml": { - "source": "iana" - }, - "application/vnd.oipf.pae.gem": { - "source": "iana" - }, - "application/vnd.oipf.spdiscovery+xml": { - "source": "iana" - }, - "application/vnd.oipf.spdlist+xml": { - "source": "iana" - }, - "application/vnd.oipf.ueprofile+xml": { - "source": "iana" - }, - "application/vnd.oipf.userprofile+xml": { - "source": "iana" - }, - "application/vnd.olpc-sugar": { - "source": "iana", - "extensions": ["xo"] - }, - "application/vnd.oma-scws-config": { - "source": "iana" - }, - "application/vnd.oma-scws-http-request": { - "source": "iana" - }, - "application/vnd.oma-scws-http-response": { - "source": "iana" - }, - "application/vnd.oma.bcast.associated-procedure-parameter+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.drm-trigger+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.imd+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.ltkm": { - "source": "iana" - }, - "application/vnd.oma.bcast.notification+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.provisioningtrigger": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgboot": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdd+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdu": { - "source": "iana" - }, - "application/vnd.oma.bcast.simple-symbol-container": { - "source": "iana" - }, - "application/vnd.oma.bcast.smartcard-trigger+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.sprov+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.stkm": { - "source": "iana" - }, - "application/vnd.oma.cab-address-book+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-feature-handler+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-pcc+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-subs-invite+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-user-prefs+xml": { - "source": "iana" - }, - "application/vnd.oma.dcd": { - "source": "iana" - }, - "application/vnd.oma.dcdc": { - "source": "iana" - }, - "application/vnd.oma.dd2+xml": { - "source": "iana", - "extensions": ["dd2"] - }, - "application/vnd.oma.drm.risd+xml": { - "source": "iana" - }, - "application/vnd.oma.group-usage-list+xml": { - "source": "iana" - }, - "application/vnd.oma.lwm2m+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.lwm2m+tlv": { - "source": "iana" - }, - "application/vnd.oma.pal+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.detailed-progress-report+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.final-report+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.groups+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.invocation-descriptor+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.optimized-progress-report+xml": { - "source": "iana" - }, - "application/vnd.oma.push": { - "source": "iana" - }, - "application/vnd.oma.scidm.messages+xml": { - "source": "iana" - }, - "application/vnd.oma.xcap-directory+xml": { - "source": "iana" - }, - "application/vnd.omads-email+xml": { - "source": "iana" - }, - "application/vnd.omads-file+xml": { - "source": "iana" - }, - "application/vnd.omads-folder+xml": { - "source": "iana" - }, - "application/vnd.omaloc-supl-init": { - "source": "iana" - }, - "application/vnd.onepager": { - "source": "iana" - }, - "application/vnd.openblox.game+xml": { - "source": "iana" - }, - "application/vnd.openblox.game-binary": { - "source": "iana" - }, - "application/vnd.openeye.oeb": { - "source": "iana" - }, - "application/vnd.openofficeorg.extension": { - "source": "apache", - "extensions": ["oxt"] - }, - "application/vnd.openxmlformats-officedocument.custom-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawing+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.extended-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["pptx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide": { - "source": "iana", - "extensions": ["sldx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { - "source": "iana", - "extensions": ["ppsx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.template": { - "source": "apache", - "extensions": ["potx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { - "source": "iana", - "compressible": false, - "extensions": ["xlsx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { - "source": "apache", - "extensions": ["xltx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.theme+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.themeoverride+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.vmldrawing": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { - "source": "iana", - "compressible": false, - "extensions": ["docx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { - "source": "apache", - "extensions": ["dotx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.core-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.relationships+xml": { - "source": "iana" - }, - "application/vnd.oracle.resource+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.orange.indata": { - "source": "iana" - }, - "application/vnd.osa.netdeploy": { - "source": "iana" - }, - "application/vnd.osgeo.mapguide.package": { - "source": "iana", - "extensions": ["mgp"] - }, - "application/vnd.osgi.bundle": { - "source": "iana" - }, - "application/vnd.osgi.dp": { - "source": "iana", - "extensions": ["dp"] - }, - "application/vnd.osgi.subsystem": { - "source": "iana", - "extensions": ["esa"] - }, - "application/vnd.otps.ct-kip+xml": { - "source": "iana" - }, - "application/vnd.oxli.countgraph": { - "source": "iana" - }, - "application/vnd.pagerduty+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.palm": { - "source": "iana", - "extensions": ["pdb","pqa","oprc"] - }, - "application/vnd.panoply": { - "source": "iana" - }, - "application/vnd.paos+xml": { - "source": "iana" - }, - "application/vnd.paos.xml": { - "source": "apache" - }, - "application/vnd.pawaafile": { - "source": "iana", - "extensions": ["paw"] - }, - "application/vnd.pcos": { - "source": "iana" - }, - "application/vnd.pg.format": { - "source": "iana", - "extensions": ["str"] - }, - "application/vnd.pg.osasli": { - "source": "iana", - "extensions": ["ei6"] - }, - "application/vnd.piaccess.application-licence": { - "source": "iana" - }, - "application/vnd.picsel": { - "source": "iana", - "extensions": ["efif"] - }, - "application/vnd.pmi.widget": { - "source": "iana", - "extensions": ["wg"] - }, - "application/vnd.poc.group-advertisement+xml": { - "source": "iana" - }, - "application/vnd.pocketlearn": { - "source": "iana", - "extensions": ["plf"] - }, - "application/vnd.powerbuilder6": { - "source": "iana", - "extensions": ["pbd"] - }, - "application/vnd.powerbuilder6-s": { - "source": "iana" - }, - "application/vnd.powerbuilder7": { - "source": "iana" - }, - "application/vnd.powerbuilder7-s": { - "source": "iana" - }, - "application/vnd.powerbuilder75": { - "source": "iana" - }, - "application/vnd.powerbuilder75-s": { - "source": "iana" - }, - "application/vnd.preminet": { - "source": "iana" - }, - "application/vnd.previewsystems.box": { - "source": "iana", - "extensions": ["box"] - }, - "application/vnd.proteus.magazine": { - "source": "iana", - "extensions": ["mgz"] - }, - "application/vnd.publishare-delta-tree": { - "source": "iana", - "extensions": ["qps"] - }, - "application/vnd.pvi.ptid1": { - "source": "iana", - "extensions": ["ptid"] - }, - "application/vnd.pwg-multiplexed": { - "source": "iana" - }, - "application/vnd.pwg-xhtml-print+xml": { - "source": "iana" - }, - "application/vnd.qualcomm.brew-app-res": { - "source": "iana" - }, - "application/vnd.quarantainenet": { - "source": "iana" - }, - "application/vnd.quark.quarkxpress": { - "source": "iana", - "extensions": ["qxd","qxt","qwd","qwt","qxl","qxb"] - }, - "application/vnd.quobject-quoxdocument": { - "source": "iana" - }, - "application/vnd.radisys.moml+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-conf+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-conn+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-dialog+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-stream+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-conf+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-base+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-fax-detect+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-group+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-speech+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-transform+xml": { - "source": "iana" - }, - "application/vnd.rainstor.data": { - "source": "iana" - }, - "application/vnd.rapid": { - "source": "iana" - }, - "application/vnd.rar": { - "source": "iana" - }, - "application/vnd.realvnc.bed": { - "source": "iana", - "extensions": ["bed"] - }, - "application/vnd.recordare.musicxml": { - "source": "iana", - "extensions": ["mxl"] - }, - "application/vnd.recordare.musicxml+xml": { - "source": "iana", - "extensions": ["musicxml"] - }, - "application/vnd.renlearn.rlprint": { - "source": "iana" - }, - "application/vnd.rig.cryptonote": { - "source": "iana", - "extensions": ["cryptonote"] - }, - "application/vnd.rim.cod": { - "source": "apache", - "extensions": ["cod"] - }, - "application/vnd.rn-realmedia": { - "source": "apache", - "extensions": ["rm"] - }, - "application/vnd.rn-realmedia-vbr": { - "source": "apache", - "extensions": ["rmvb"] - }, - "application/vnd.route66.link66+xml": { - "source": "iana", - "extensions": ["link66"] - }, - "application/vnd.rs-274x": { - "source": "iana" - }, - "application/vnd.ruckus.download": { - "source": "iana" - }, - "application/vnd.s3sms": { - "source": "iana" - }, - "application/vnd.sailingtracker.track": { - "source": "iana", - "extensions": ["st"] - }, - "application/vnd.sbm.cid": { - "source": "iana" - }, - "application/vnd.sbm.mid2": { - "source": "iana" - }, - "application/vnd.scribus": { - "source": "iana" - }, - "application/vnd.sealed.3df": { - "source": "iana" - }, - "application/vnd.sealed.csf": { - "source": "iana" - }, - "application/vnd.sealed.doc": { - "source": "iana" - }, - "application/vnd.sealed.eml": { - "source": "iana" - }, - "application/vnd.sealed.mht": { - "source": "iana" - }, - "application/vnd.sealed.net": { - "source": "iana" - }, - "application/vnd.sealed.ppt": { - "source": "iana" - }, - "application/vnd.sealed.tiff": { - "source": "iana" - }, - "application/vnd.sealed.xls": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.html": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.pdf": { - "source": "iana" - }, - "application/vnd.seemail": { - "source": "iana", - "extensions": ["see"] - }, - "application/vnd.sema": { - "source": "iana", - "extensions": ["sema"] - }, - "application/vnd.semd": { - "source": "iana", - "extensions": ["semd"] - }, - "application/vnd.semf": { - "source": "iana", - "extensions": ["semf"] - }, - "application/vnd.shana.informed.formdata": { - "source": "iana", - "extensions": ["ifm"] - }, - "application/vnd.shana.informed.formtemplate": { - "source": "iana", - "extensions": ["itp"] - }, - "application/vnd.shana.informed.interchange": { - "source": "iana", - "extensions": ["iif"] - }, - "application/vnd.shana.informed.package": { - "source": "iana", - "extensions": ["ipk"] - }, - "application/vnd.simtech-mindmapper": { - "source": "iana", - "extensions": ["twd","twds"] - }, - "application/vnd.siren+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.smaf": { - "source": "iana", - "extensions": ["mmf"] - }, - "application/vnd.smart.notebook": { - "source": "iana" - }, - "application/vnd.smart.teacher": { - "source": "iana", - "extensions": ["teacher"] - }, - "application/vnd.software602.filler.form+xml": { - "source": "iana" - }, - "application/vnd.software602.filler.form-xml-zip": { - "source": "iana" - }, - "application/vnd.solent.sdkm+xml": { - "source": "iana", - "extensions": ["sdkm","sdkd"] - }, - "application/vnd.spotfire.dxp": { - "source": "iana", - "extensions": ["dxp"] - }, - "application/vnd.spotfire.sfs": { - "source": "iana", - "extensions": ["sfs"] - }, - "application/vnd.sss-cod": { - "source": "iana" - }, - "application/vnd.sss-dtf": { - "source": "iana" - }, - "application/vnd.sss-ntf": { - "source": "iana" - }, - "application/vnd.stardivision.calc": { - "source": "apache", - "extensions": ["sdc"] - }, - "application/vnd.stardivision.draw": { - "source": "apache", - "extensions": ["sda"] - }, - "application/vnd.stardivision.impress": { - "source": "apache", - "extensions": ["sdd"] - }, - "application/vnd.stardivision.math": { - "source": "apache", - "extensions": ["smf"] - }, - "application/vnd.stardivision.writer": { - "source": "apache", - "extensions": ["sdw","vor"] - }, - "application/vnd.stardivision.writer-global": { - "source": "apache", - "extensions": ["sgl"] - }, - "application/vnd.stepmania.package": { - "source": "iana", - "extensions": ["smzip"] - }, - "application/vnd.stepmania.stepchart": { - "source": "iana", - "extensions": ["sm"] - }, - "application/vnd.street-stream": { - "source": "iana" - }, - "application/vnd.sun.wadl+xml": { - "source": "iana" - }, - "application/vnd.sun.xml.calc": { - "source": "apache", - "extensions": ["sxc"] - }, - "application/vnd.sun.xml.calc.template": { - "source": "apache", - "extensions": ["stc"] - }, - "application/vnd.sun.xml.draw": { - "source": "apache", - "extensions": ["sxd"] - }, - "application/vnd.sun.xml.draw.template": { - "source": "apache", - "extensions": ["std"] - }, - "application/vnd.sun.xml.impress": { - "source": "apache", - "extensions": ["sxi"] - }, - "application/vnd.sun.xml.impress.template": { - "source": "apache", - "extensions": ["sti"] - }, - "application/vnd.sun.xml.math": { - "source": "apache", - "extensions": ["sxm"] - }, - "application/vnd.sun.xml.writer": { - "source": "apache", - "extensions": ["sxw"] - }, - "application/vnd.sun.xml.writer.global": { - "source": "apache", - "extensions": ["sxg"] - }, - "application/vnd.sun.xml.writer.template": { - "source": "apache", - "extensions": ["stw"] - }, - "application/vnd.sus-calendar": { - "source": "iana", - "extensions": ["sus","susp"] - }, - "application/vnd.svd": { - "source": "iana", - "extensions": ["svd"] - }, - "application/vnd.swiftview-ics": { - "source": "iana" - }, - "application/vnd.symbian.install": { - "source": "apache", - "extensions": ["sis","sisx"] - }, - "application/vnd.syncml+xml": { - "source": "iana", - "extensions": ["xsm"] - }, - "application/vnd.syncml.dm+wbxml": { - "source": "iana", - "extensions": ["bdm"] - }, - "application/vnd.syncml.dm+xml": { - "source": "iana", - "extensions": ["xdm"] - }, - "application/vnd.syncml.dm.notification": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+xml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+xml": { - "source": "iana" - }, - "application/vnd.syncml.ds.notification": { - "source": "iana" - }, - "application/vnd.tao.intent-module-archive": { - "source": "iana", - "extensions": ["tao"] - }, - "application/vnd.tcpdump.pcap": { - "source": "iana", - "extensions": ["pcap","cap","dmp"] - }, - "application/vnd.tmd.mediaflex.api+xml": { - "source": "iana" - }, - "application/vnd.tml": { - "source": "iana" - }, - "application/vnd.tmobile-livetv": { - "source": "iana", - "extensions": ["tmo"] - }, - "application/vnd.trid.tpt": { - "source": "iana", - "extensions": ["tpt"] - }, - "application/vnd.triscape.mxs": { - "source": "iana", - "extensions": ["mxs"] - }, - "application/vnd.trueapp": { - "source": "iana", - "extensions": ["tra"] - }, - "application/vnd.truedoc": { - "source": "iana" - }, - "application/vnd.ubisoft.webplayer": { - "source": "iana" - }, - "application/vnd.ufdl": { - "source": "iana", - "extensions": ["ufd","ufdl"] - }, - "application/vnd.uiq.theme": { - "source": "iana", - "extensions": ["utz"] - }, - "application/vnd.umajin": { - "source": "iana", - "extensions": ["umj"] - }, - "application/vnd.unity": { - "source": "iana", - "extensions": ["unityweb"] - }, - "application/vnd.uoml+xml": { - "source": "iana", - "extensions": ["uoml"] - }, - "application/vnd.uplanet.alert": { - "source": "iana" - }, - "application/vnd.uplanet.alert-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.channel": { - "source": "iana" - }, - "application/vnd.uplanet.channel-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.list": { - "source": "iana" - }, - "application/vnd.uplanet.list-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.signal": { - "source": "iana" - }, - "application/vnd.uri-map": { - "source": "iana" - }, - "application/vnd.valve.source.material": { - "source": "iana" - }, - "application/vnd.vcx": { - "source": "iana", - "extensions": ["vcx"] - }, - "application/vnd.vd-study": { - "source": "iana" - }, - "application/vnd.vectorworks": { - "source": "iana" - }, - "application/vnd.vel+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.verimatrix.vcas": { - "source": "iana" - }, - "application/vnd.vidsoft.vidconference": { - "source": "iana" - }, - "application/vnd.visio": { - "source": "iana", - "extensions": ["vsd","vst","vss","vsw"] - }, - "application/vnd.visionary": { - "source": "iana", - "extensions": ["vis"] - }, - "application/vnd.vividence.scriptfile": { - "source": "iana" - }, - "application/vnd.vsf": { - "source": "iana", - "extensions": ["vsf"] - }, - "application/vnd.wap.sic": { - "source": "iana" - }, - "application/vnd.wap.slc": { - "source": "iana" - }, - "application/vnd.wap.wbxml": { - "source": "iana", - "extensions": ["wbxml"] - }, - "application/vnd.wap.wmlc": { - "source": "iana", - "extensions": ["wmlc"] - }, - "application/vnd.wap.wmlscriptc": { - "source": "iana", - "extensions": ["wmlsc"] - }, - "application/vnd.webturbo": { - "source": "iana", - "extensions": ["wtb"] - }, - "application/vnd.wfa.p2p": { - "source": "iana" - }, - "application/vnd.wfa.wsc": { - "source": "iana" - }, - "application/vnd.windows.devicepairing": { - "source": "iana" - }, - "application/vnd.wmc": { - "source": "iana" - }, - "application/vnd.wmf.bootstrap": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica.package": { - "source": "iana" - }, - "application/vnd.wolfram.player": { - "source": "iana", - "extensions": ["nbp"] - }, - "application/vnd.wordperfect": { - "source": "iana", - "extensions": ["wpd"] - }, - "application/vnd.wqd": { - "source": "iana", - "extensions": ["wqd"] - }, - "application/vnd.wrq-hp3000-labelled": { - "source": "iana" - }, - "application/vnd.wt.stf": { - "source": "iana", - "extensions": ["stf"] - }, - "application/vnd.wv.csp+wbxml": { - "source": "iana" - }, - "application/vnd.wv.csp+xml": { - "source": "iana" - }, - "application/vnd.wv.ssp+xml": { - "source": "iana" - }, - "application/vnd.xacml+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.xara": { - "source": "iana", - "extensions": ["xar"] - }, - "application/vnd.xfdl": { - "source": "iana", - "extensions": ["xfdl"] - }, - "application/vnd.xfdl.webform": { - "source": "iana" - }, - "application/vnd.xmi+xml": { - "source": "iana" - }, - "application/vnd.xmpie.cpkg": { - "source": "iana" - }, - "application/vnd.xmpie.dpkg": { - "source": "iana" - }, - "application/vnd.xmpie.plan": { - "source": "iana" - }, - "application/vnd.xmpie.ppkg": { - "source": "iana" - }, - "application/vnd.xmpie.xlim": { - "source": "iana" - }, - "application/vnd.yamaha.hv-dic": { - "source": "iana", - "extensions": ["hvd"] - }, - "application/vnd.yamaha.hv-script": { - "source": "iana", - "extensions": ["hvs"] - }, - "application/vnd.yamaha.hv-voice": { - "source": "iana", - "extensions": ["hvp"] - }, - "application/vnd.yamaha.openscoreformat": { - "source": "iana", - "extensions": ["osf"] - }, - "application/vnd.yamaha.openscoreformat.osfpvg+xml": { - "source": "iana", - "extensions": ["osfpvg"] - }, - "application/vnd.yamaha.remote-setup": { - "source": "iana" - }, - "application/vnd.yamaha.smaf-audio": { - "source": "iana", - "extensions": ["saf"] - }, - "application/vnd.yamaha.smaf-phrase": { - "source": "iana", - "extensions": ["spf"] - }, - "application/vnd.yamaha.through-ngn": { - "source": "iana" - }, - "application/vnd.yamaha.tunnel-udpencap": { - "source": "iana" - }, - "application/vnd.yaoweme": { - "source": "iana" - }, - "application/vnd.yellowriver-custom-menu": { - "source": "iana", - "extensions": ["cmp"] - }, - "application/vnd.zul": { - "source": "iana", - "extensions": ["zir","zirz"] - }, - "application/vnd.zzazz.deck+xml": { - "source": "iana", - "extensions": ["zaz"] - }, - "application/voicexml+xml": { - "source": "iana", - "extensions": ["vxml"] - }, - "application/vq-rtcpxr": { - "source": "iana" - }, - "application/watcherinfo+xml": { - "source": "iana" - }, - "application/whoispp-query": { - "source": "iana" - }, - "application/whoispp-response": { - "source": "iana" - }, - "application/widget": { - "source": "iana", - "extensions": ["wgt"] - }, - "application/winhlp": { - "source": "apache", - "extensions": ["hlp"] - }, - "application/wita": { - "source": "iana" - }, - "application/wordperfect5.1": { - "source": "iana" - }, - "application/wsdl+xml": { - "source": "iana", - "extensions": ["wsdl"] - }, - "application/wspolicy+xml": { - "source": "iana", - "extensions": ["wspolicy"] - }, - "application/x-7z-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["7z"] - }, - "application/x-abiword": { - "source": "apache", - "extensions": ["abw"] - }, - "application/x-ace-compressed": { - "source": "apache", - "extensions": ["ace"] - }, - "application/x-amf": { - "source": "apache" - }, - "application/x-apple-diskimage": { - "source": "apache", - "extensions": ["dmg"] - }, - "application/x-authorware-bin": { - "source": "apache", - "extensions": ["aab","x32","u32","vox"] - }, - "application/x-authorware-map": { - "source": "apache", - "extensions": ["aam"] - }, - "application/x-authorware-seg": { - "source": "apache", - "extensions": ["aas"] - }, - "application/x-bcpio": { - "source": "apache", - "extensions": ["bcpio"] - }, - "application/x-bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/x-bittorrent": { - "source": "apache", - "extensions": ["torrent"] - }, - "application/x-blorb": { - "source": "apache", - "extensions": ["blb","blorb"] - }, - "application/x-bzip": { - "source": "apache", - "compressible": false, - "extensions": ["bz"] - }, - "application/x-bzip2": { - "source": "apache", - "compressible": false, - "extensions": ["bz2","boz"] - }, - "application/x-cbr": { - "source": "apache", - "extensions": ["cbr","cba","cbt","cbz","cb7"] - }, - "application/x-cdlink": { - "source": "apache", - "extensions": ["vcd"] - }, - "application/x-cfs-compressed": { - "source": "apache", - "extensions": ["cfs"] - }, - "application/x-chat": { - "source": "apache", - "extensions": ["chat"] - }, - "application/x-chess-pgn": { - "source": "apache", - "extensions": ["pgn"] - }, - "application/x-chrome-extension": { - "extensions": ["crx"] - }, - "application/x-cocoa": { - "source": "nginx", - "extensions": ["cco"] - }, - "application/x-compress": { - "source": "apache" - }, - "application/x-conference": { - "source": "apache", - "extensions": ["nsc"] - }, - "application/x-cpio": { - "source": "apache", - "extensions": ["cpio"] - }, - "application/x-csh": { - "source": "apache", - "extensions": ["csh"] - }, - "application/x-deb": { - "compressible": false - }, - "application/x-debian-package": { - "source": "apache", - "extensions": ["deb","udeb"] - }, - "application/x-dgc-compressed": { - "source": "apache", - "extensions": ["dgc"] - }, - "application/x-director": { - "source": "apache", - "extensions": ["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"] - }, - "application/x-doom": { - "source": "apache", - "extensions": ["wad"] - }, - "application/x-dtbncx+xml": { - "source": "apache", - "extensions": ["ncx"] - }, - "application/x-dtbook+xml": { - "source": "apache", - "extensions": ["dtb"] - }, - "application/x-dtbresource+xml": { - "source": "apache", - "extensions": ["res"] - }, - "application/x-dvi": { - "source": "apache", - "compressible": false, - "extensions": ["dvi"] - }, - "application/x-envoy": { - "source": "apache", - "extensions": ["evy"] - }, - "application/x-eva": { - "source": "apache", - "extensions": ["eva"] - }, - "application/x-font-bdf": { - "source": "apache", - "extensions": ["bdf"] - }, - "application/x-font-dos": { - "source": "apache" - }, - "application/x-font-framemaker": { - "source": "apache" - }, - "application/x-font-ghostscript": { - "source": "apache", - "extensions": ["gsf"] - }, - "application/x-font-libgrx": { - "source": "apache" - }, - "application/x-font-linux-psf": { - "source": "apache", - "extensions": ["psf"] - }, - "application/x-font-otf": { - "source": "apache", - "compressible": true, - "extensions": ["otf"] - }, - "application/x-font-pcf": { - "source": "apache", - "extensions": ["pcf"] - }, - "application/x-font-snf": { - "source": "apache", - "extensions": ["snf"] - }, - "application/x-font-speedo": { - "source": "apache" - }, - "application/x-font-sunos-news": { - "source": "apache" - }, - "application/x-font-ttf": { - "source": "apache", - "compressible": true, - "extensions": ["ttf","ttc"] - }, - "application/x-font-type1": { - "source": "apache", - "extensions": ["pfa","pfb","pfm","afm"] - }, - "application/x-font-vfont": { - "source": "apache" - }, - "application/x-freearc": { - "source": "apache", - "extensions": ["arc"] - }, - "application/x-futuresplash": { - "source": "apache", - "extensions": ["spl"] - }, - "application/x-gca-compressed": { - "source": "apache", - "extensions": ["gca"] - }, - "application/x-glulx": { - "source": "apache", - "extensions": ["ulx"] - }, - "application/x-gnumeric": { - "source": "apache", - "extensions": ["gnumeric"] - }, - "application/x-gramps-xml": { - "source": "apache", - "extensions": ["gramps"] - }, - "application/x-gtar": { - "source": "apache", - "extensions": ["gtar"] - }, - "application/x-gzip": { - "source": "apache" - }, - "application/x-hdf": { - "source": "apache", - "extensions": ["hdf"] - }, - "application/x-httpd-php": { - "compressible": true, - "extensions": ["php"] - }, - "application/x-install-instructions": { - "source": "apache", - "extensions": ["install"] - }, - "application/x-iso9660-image": { - "source": "apache", - "extensions": ["iso"] - }, - "application/x-java-archive-diff": { - "source": "nginx", - "extensions": ["jardiff"] - }, - "application/x-java-jnlp-file": { - "source": "apache", - "compressible": false, - "extensions": ["jnlp"] - }, - "application/x-javascript": { - "compressible": true - }, - "application/x-latex": { - "source": "apache", - "compressible": false, - "extensions": ["latex"] - }, - "application/x-lua-bytecode": { - "extensions": ["luac"] - }, - "application/x-lzh-compressed": { - "source": "apache", - "extensions": ["lzh","lha"] - }, - "application/x-makeself": { - "source": "nginx", - "extensions": ["run"] - }, - "application/x-mie": { - "source": "apache", - "extensions": ["mie"] - }, - "application/x-mobipocket-ebook": { - "source": "apache", - "extensions": ["prc","mobi"] - }, - "application/x-mpegurl": { - "compressible": false - }, - "application/x-ms-application": { - "source": "apache", - "extensions": ["application"] - }, - "application/x-ms-shortcut": { - "source": "apache", - "extensions": ["lnk"] - }, - "application/x-ms-wmd": { - "source": "apache", - "extensions": ["wmd"] - }, - "application/x-ms-wmz": { - "source": "apache", - "extensions": ["wmz"] - }, - "application/x-ms-xbap": { - "source": "apache", - "extensions": ["xbap"] - }, - "application/x-msaccess": { - "source": "apache", - "extensions": ["mdb"] - }, - "application/x-msbinder": { - "source": "apache", - "extensions": ["obd"] - }, - "application/x-mscardfile": { - "source": "apache", - "extensions": ["crd"] - }, - "application/x-msclip": { - "source": "apache", - "extensions": ["clp"] - }, - "application/x-msdos-program": { - "extensions": ["exe"] - }, - "application/x-msdownload": { - "source": "apache", - "extensions": ["exe","dll","com","bat","msi"] - }, - "application/x-msmediaview": { - "source": "apache", - "extensions": ["mvb","m13","m14"] - }, - "application/x-msmetafile": { - "source": "apache", - "extensions": ["wmf","wmz","emf","emz"] - }, - "application/x-msmoney": { - "source": "apache", - "extensions": ["mny"] - }, - "application/x-mspublisher": { - "source": "apache", - "extensions": ["pub"] - }, - "application/x-msschedule": { - "source": "apache", - "extensions": ["scd"] - }, - "application/x-msterminal": { - "source": "apache", - "extensions": ["trm"] - }, - "application/x-mswrite": { - "source": "apache", - "extensions": ["wri"] - }, - "application/x-netcdf": { - "source": "apache", - "extensions": ["nc","cdf"] - }, - "application/x-ns-proxy-autoconfig": { - "compressible": true, - "extensions": ["pac"] - }, - "application/x-nzb": { - "source": "apache", - "extensions": ["nzb"] - }, - "application/x-perl": { - "source": "nginx", - "extensions": ["pl","pm"] - }, - "application/x-pilot": { - "source": "nginx", - "extensions": ["prc","pdb"] - }, - "application/x-pkcs12": { - "source": "apache", - "compressible": false, - "extensions": ["p12","pfx"] - }, - "application/x-pkcs7-certificates": { - "source": "apache", - "extensions": ["p7b","spc"] - }, - "application/x-pkcs7-certreqresp": { - "source": "apache", - "extensions": ["p7r"] - }, - "application/x-rar-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["rar"] - }, - "application/x-redhat-package-manager": { - "source": "nginx", - "extensions": ["rpm"] - }, - "application/x-research-info-systems": { - "source": "apache", - "extensions": ["ris"] - }, - "application/x-sea": { - "source": "nginx", - "extensions": ["sea"] - }, - "application/x-sh": { - "source": "apache", - "compressible": true, - "extensions": ["sh"] - }, - "application/x-shar": { - "source": "apache", - "extensions": ["shar"] - }, - "application/x-shockwave-flash": { - "source": "apache", - "compressible": false, - "extensions": ["swf"] - }, - "application/x-silverlight-app": { - "source": "apache", - "extensions": ["xap"] - }, - "application/x-sql": { - "source": "apache", - "extensions": ["sql"] - }, - "application/x-stuffit": { - "source": "apache", - "compressible": false, - "extensions": ["sit"] - }, - "application/x-stuffitx": { - "source": "apache", - "extensions": ["sitx"] - }, - "application/x-subrip": { - "source": "apache", - "extensions": ["srt"] - }, - "application/x-sv4cpio": { - "source": "apache", - "extensions": ["sv4cpio"] - }, - "application/x-sv4crc": { - "source": "apache", - "extensions": ["sv4crc"] - }, - "application/x-t3vm-image": { - "source": "apache", - "extensions": ["t3"] - }, - "application/x-tads": { - "source": "apache", - "extensions": ["gam"] - }, - "application/x-tar": { - "source": "apache", - "compressible": true, - "extensions": ["tar"] - }, - "application/x-tcl": { - "source": "apache", - "extensions": ["tcl","tk"] - }, - "application/x-tex": { - "source": "apache", - "extensions": ["tex"] - }, - "application/x-tex-tfm": { - "source": "apache", - "extensions": ["tfm"] - }, - "application/x-texinfo": { - "source": "apache", - "extensions": ["texinfo","texi"] - }, - "application/x-tgif": { - "source": "apache", - "extensions": ["obj"] - }, - "application/x-ustar": { - "source": "apache", - "extensions": ["ustar"] - }, - "application/x-wais-source": { - "source": "apache", - "extensions": ["src"] - }, - "application/x-web-app-manifest+json": { - "compressible": true, - "extensions": ["webapp"] - }, - "application/x-www-form-urlencoded": { - "source": "iana", - "compressible": true - }, - "application/x-x509-ca-cert": { - "source": "apache", - "extensions": ["der","crt","pem"] - }, - "application/x-xfig": { - "source": "apache", - "extensions": ["fig"] - }, - "application/x-xliff+xml": { - "source": "apache", - "extensions": ["xlf"] - }, - "application/x-xpinstall": { - "source": "apache", - "compressible": false, - "extensions": ["xpi"] - }, - "application/x-xz": { - "source": "apache", - "extensions": ["xz"] - }, - "application/x-zmachine": { - "source": "apache", - "extensions": ["z1","z2","z3","z4","z5","z6","z7","z8"] - }, - "application/x400-bp": { - "source": "iana" - }, - "application/xacml+xml": { - "source": "iana" - }, - "application/xaml+xml": { - "source": "apache", - "extensions": ["xaml"] - }, - "application/xcap-att+xml": { - "source": "iana" - }, - "application/xcap-caps+xml": { - "source": "iana" - }, - "application/xcap-diff+xml": { - "source": "iana", - "extensions": ["xdf"] - }, - "application/xcap-el+xml": { - "source": "iana" - }, - "application/xcap-error+xml": { - "source": "iana" - }, - "application/xcap-ns+xml": { - "source": "iana" - }, - "application/xcon-conference-info+xml": { - "source": "iana" - }, - "application/xcon-conference-info-diff+xml": { - "source": "iana" - }, - "application/xenc+xml": { - "source": "iana", - "extensions": ["xenc"] - }, - "application/xhtml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xhtml","xht"] - }, - "application/xhtml-voice+xml": { - "source": "apache" - }, - "application/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml","xsl","xsd","rng"] - }, - "application/xml-dtd": { - "source": "iana", - "compressible": true, - "extensions": ["dtd"] - }, - "application/xml-external-parsed-entity": { - "source": "iana" - }, - "application/xml-patch+xml": { - "source": "iana" - }, - "application/xmpp+xml": { - "source": "iana" - }, - "application/xop+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xop"] - }, - "application/xproc+xml": { - "source": "apache", - "extensions": ["xpl"] - }, - "application/xslt+xml": { - "source": "iana", - "extensions": ["xslt"] - }, - "application/xspf+xml": { - "source": "apache", - "extensions": ["xspf"] - }, - "application/xv+xml": { - "source": "iana", - "extensions": ["mxml","xhvml","xvml","xvm"] - }, - "application/yang": { - "source": "iana", - "extensions": ["yang"] - }, - "application/yin+xml": { - "source": "iana", - "extensions": ["yin"] - }, - "application/zip": { - "source": "iana", - "compressible": false, - "extensions": ["zip"] - }, - "application/zlib": { - "source": "iana" - }, - "audio/1d-interleaved-parityfec": { - "source": "iana" - }, - "audio/32kadpcm": { - "source": "iana" - }, - "audio/3gpp": { - "source": "iana", - "compressible": false, - "extensions": ["3gpp"] - }, - "audio/3gpp2": { - "source": "iana" - }, - "audio/ac3": { - "source": "iana" - }, - "audio/adpcm": { - "source": "apache", - "extensions": ["adp"] - }, - "audio/amr": { - "source": "iana" - }, - "audio/amr-wb": { - "source": "iana" - }, - "audio/amr-wb+": { - "source": "iana" - }, - "audio/aptx": { - "source": "iana" - }, - "audio/asc": { - "source": "iana" - }, - "audio/atrac-advanced-lossless": { - "source": "iana" - }, - "audio/atrac-x": { - "source": "iana" - }, - "audio/atrac3": { - "source": "iana" - }, - "audio/basic": { - "source": "iana", - "compressible": false, - "extensions": ["au","snd"] - }, - "audio/bv16": { - "source": "iana" - }, - "audio/bv32": { - "source": "iana" - }, - "audio/clearmode": { - "source": "iana" - }, - "audio/cn": { - "source": "iana" - }, - "audio/dat12": { - "source": "iana" - }, - "audio/dls": { - "source": "iana" - }, - "audio/dsr-es201108": { - "source": "iana" - }, - "audio/dsr-es202050": { - "source": "iana" - }, - "audio/dsr-es202211": { - "source": "iana" - }, - "audio/dsr-es202212": { - "source": "iana" - }, - "audio/dv": { - "source": "iana" - }, - "audio/dvi4": { - "source": "iana" - }, - "audio/eac3": { - "source": "iana" - }, - "audio/encaprtp": { - "source": "iana" - }, - "audio/evrc": { - "source": "iana" - }, - "audio/evrc-qcp": { - "source": "iana" - }, - "audio/evrc0": { - "source": "iana" - }, - "audio/evrc1": { - "source": "iana" - }, - "audio/evrcb": { - "source": "iana" - }, - "audio/evrcb0": { - "source": "iana" - }, - "audio/evrcb1": { - "source": "iana" - }, - "audio/evrcnw": { - "source": "iana" - }, - "audio/evrcnw0": { - "source": "iana" - }, - "audio/evrcnw1": { - "source": "iana" - }, - "audio/evrcwb": { - "source": "iana" - }, - "audio/evrcwb0": { - "source": "iana" - }, - "audio/evrcwb1": { - "source": "iana" - }, - "audio/evs": { - "source": "iana" - }, - "audio/fwdred": { - "source": "iana" - }, - "audio/g711-0": { - "source": "iana" - }, - "audio/g719": { - "source": "iana" - }, - "audio/g722": { - "source": "iana" - }, - "audio/g7221": { - "source": "iana" - }, - "audio/g723": { - "source": "iana" - }, - "audio/g726-16": { - "source": "iana" - }, - "audio/g726-24": { - "source": "iana" - }, - "audio/g726-32": { - "source": "iana" - }, - "audio/g726-40": { - "source": "iana" - }, - "audio/g728": { - "source": "iana" - }, - "audio/g729": { - "source": "iana" - }, - "audio/g7291": { - "source": "iana" - }, - "audio/g729d": { - "source": "iana" - }, - "audio/g729e": { - "source": "iana" - }, - "audio/gsm": { - "source": "iana" - }, - "audio/gsm-efr": { - "source": "iana" - }, - "audio/gsm-hr-08": { - "source": "iana" - }, - "audio/ilbc": { - "source": "iana" - }, - "audio/ip-mr_v2.5": { - "source": "iana" - }, - "audio/isac": { - "source": "apache" - }, - "audio/l16": { - "source": "iana" - }, - "audio/l20": { - "source": "iana" - }, - "audio/l24": { - "source": "iana", - "compressible": false - }, - "audio/l8": { - "source": "iana" - }, - "audio/lpc": { - "source": "iana" - }, - "audio/midi": { - "source": "apache", - "extensions": ["mid","midi","kar","rmi"] - }, - "audio/mobile-xmf": { - "source": "iana" - }, - "audio/mp3": { - "compressible": false, - "extensions": ["mp3"] - }, - "audio/mp4": { - "source": "iana", - "compressible": false, - "extensions": ["m4a","mp4a"] - }, - "audio/mp4a-latm": { - "source": "iana" - }, - "audio/mpa": { - "source": "iana" - }, - "audio/mpa-robust": { - "source": "iana" - }, - "audio/mpeg": { - "source": "iana", - "compressible": false, - "extensions": ["mpga","mp2","mp2a","mp3","m2a","m3a"] - }, - "audio/mpeg4-generic": { - "source": "iana" - }, - "audio/musepack": { - "source": "apache" - }, - "audio/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["oga","ogg","spx"] - }, - "audio/opus": { - "source": "iana" - }, - "audio/parityfec": { - "source": "iana" - }, - "audio/pcma": { - "source": "iana" - }, - "audio/pcma-wb": { - "source": "iana" - }, - "audio/pcmu": { - "source": "iana" - }, - "audio/pcmu-wb": { - "source": "iana" - }, - "audio/prs.sid": { - "source": "iana" - }, - "audio/qcelp": { - "source": "iana" - }, - "audio/raptorfec": { - "source": "iana" - }, - "audio/red": { - "source": "iana" - }, - "audio/rtp-enc-aescm128": { - "source": "iana" - }, - "audio/rtp-midi": { - "source": "iana" - }, - "audio/rtploopback": { - "source": "iana" - }, - "audio/rtx": { - "source": "iana" - }, - "audio/s3m": { - "source": "apache", - "extensions": ["s3m"] - }, - "audio/silk": { - "source": "apache", - "extensions": ["sil"] - }, - "audio/smv": { - "source": "iana" - }, - "audio/smv-qcp": { - "source": "iana" - }, - "audio/smv0": { - "source": "iana" - }, - "audio/sp-midi": { - "source": "iana" - }, - "audio/speex": { - "source": "iana" - }, - "audio/t140c": { - "source": "iana" - }, - "audio/t38": { - "source": "iana" - }, - "audio/telephone-event": { - "source": "iana" - }, - "audio/tone": { - "source": "iana" - }, - "audio/uemclip": { - "source": "iana" - }, - "audio/ulpfec": { - "source": "iana" - }, - "audio/vdvi": { - "source": "iana" - }, - "audio/vmr-wb": { - "source": "iana" - }, - "audio/vnd.3gpp.iufp": { - "source": "iana" - }, - "audio/vnd.4sb": { - "source": "iana" - }, - "audio/vnd.audiokoz": { - "source": "iana" - }, - "audio/vnd.celp": { - "source": "iana" - }, - "audio/vnd.cisco.nse": { - "source": "iana" - }, - "audio/vnd.cmles.radio-events": { - "source": "iana" - }, - "audio/vnd.cns.anp1": { - "source": "iana" - }, - "audio/vnd.cns.inf1": { - "source": "iana" - }, - "audio/vnd.dece.audio": { - "source": "iana", - "extensions": ["uva","uvva"] - }, - "audio/vnd.digital-winds": { - "source": "iana", - "extensions": ["eol"] - }, - "audio/vnd.dlna.adts": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.1": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.2": { - "source": "iana" - }, - "audio/vnd.dolby.mlp": { - "source": "iana" - }, - "audio/vnd.dolby.mps": { - "source": "iana" - }, - "audio/vnd.dolby.pl2": { - "source": "iana" - }, - "audio/vnd.dolby.pl2x": { - "source": "iana" - }, - "audio/vnd.dolby.pl2z": { - "source": "iana" - }, - "audio/vnd.dolby.pulse.1": { - "source": "iana" - }, - "audio/vnd.dra": { - "source": "iana", - "extensions": ["dra"] - }, - "audio/vnd.dts": { - "source": "iana", - "extensions": ["dts"] - }, - "audio/vnd.dts.hd": { - "source": "iana", - "extensions": ["dtshd"] - }, - "audio/vnd.dvb.file": { - "source": "iana" - }, - "audio/vnd.everad.plj": { - "source": "iana" - }, - "audio/vnd.hns.audio": { - "source": "iana" - }, - "audio/vnd.lucent.voice": { - "source": "iana", - "extensions": ["lvp"] - }, - "audio/vnd.ms-playready.media.pya": { - "source": "iana", - "extensions": ["pya"] - }, - "audio/vnd.nokia.mobile-xmf": { - "source": "iana" - }, - "audio/vnd.nortel.vbk": { - "source": "iana" - }, - "audio/vnd.nuera.ecelp4800": { - "source": "iana", - "extensions": ["ecelp4800"] - }, - "audio/vnd.nuera.ecelp7470": { - "source": "iana", - "extensions": ["ecelp7470"] - }, - "audio/vnd.nuera.ecelp9600": { - "source": "iana", - "extensions": ["ecelp9600"] - }, - "audio/vnd.octel.sbc": { - "source": "iana" - }, - "audio/vnd.qcelp": { - "source": "iana" - }, - "audio/vnd.rhetorex.32kadpcm": { - "source": "iana" - }, - "audio/vnd.rip": { - "source": "iana", - "extensions": ["rip"] - }, - "audio/vnd.rn-realaudio": { - "compressible": false - }, - "audio/vnd.sealedmedia.softseal.mpeg": { - "source": "iana" - }, - "audio/vnd.vmx.cvsd": { - "source": "iana" - }, - "audio/vnd.wave": { - "compressible": false - }, - "audio/vorbis": { - "source": "iana", - "compressible": false - }, - "audio/vorbis-config": { - "source": "iana" - }, - "audio/wav": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/wave": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/webm": { - "source": "apache", - "compressible": false, - "extensions": ["weba"] - }, - "audio/x-aac": { - "source": "apache", - "compressible": false, - "extensions": ["aac"] - }, - "audio/x-aiff": { - "source": "apache", - "extensions": ["aif","aiff","aifc"] - }, - "audio/x-caf": { - "source": "apache", - "compressible": false, - "extensions": ["caf"] - }, - "audio/x-flac": { - "source": "apache", - "extensions": ["flac"] - }, - "audio/x-m4a": { - "source": "nginx", - "extensions": ["m4a"] - }, - "audio/x-matroska": { - "source": "apache", - "extensions": ["mka"] - }, - "audio/x-mpegurl": { - "source": "apache", - "extensions": ["m3u"] - }, - "audio/x-ms-wax": { - "source": "apache", - "extensions": ["wax"] - }, - "audio/x-ms-wma": { - "source": "apache", - "extensions": ["wma"] - }, - "audio/x-pn-realaudio": { - "source": "apache", - "extensions": ["ram","ra"] - }, - "audio/x-pn-realaudio-plugin": { - "source": "apache", - "extensions": ["rmp"] - }, - "audio/x-realaudio": { - "source": "nginx", - "extensions": ["ra"] - }, - "audio/x-tta": { - "source": "apache" - }, - "audio/x-wav": { - "source": "apache", - "extensions": ["wav"] - }, - "audio/xm": { - "source": "apache", - "extensions": ["xm"] - }, - "chemical/x-cdx": { - "source": "apache", - "extensions": ["cdx"] - }, - "chemical/x-cif": { - "source": "apache", - "extensions": ["cif"] - }, - "chemical/x-cmdf": { - "source": "apache", - "extensions": ["cmdf"] - }, - "chemical/x-cml": { - "source": "apache", - "extensions": ["cml"] - }, - "chemical/x-csml": { - "source": "apache", - "extensions": ["csml"] - }, - "chemical/x-pdb": { - "source": "apache" - }, - "chemical/x-xyz": { - "source": "apache", - "extensions": ["xyz"] - }, - "font/opentype": { - "compressible": true, - "extensions": ["otf"] - }, - "image/bmp": { - "source": "iana", - "compressible": true, - "extensions": ["bmp"] - }, - "image/cgm": { - "source": "iana", - "extensions": ["cgm"] - }, - "image/dicom-rle": { - "source": "iana" - }, - "image/emf": { - "source": "iana" - }, - "image/fits": { - "source": "iana" - }, - "image/g3fax": { - "source": "iana", - "extensions": ["g3"] - }, - "image/gif": { - "source": "iana", - "compressible": false, - "extensions": ["gif"] - }, - "image/ief": { - "source": "iana", - "extensions": ["ief"] - }, - "image/jls": { - "source": "iana" - }, - "image/jp2": { - "source": "iana" - }, - "image/jpeg": { - "source": "iana", - "compressible": false, - "extensions": ["jpeg","jpg","jpe"] - }, - "image/jpm": { - "source": "iana" - }, - "image/jpx": { - "source": "iana" - }, - "image/ktx": { - "source": "iana", - "extensions": ["ktx"] - }, - "image/naplps": { - "source": "iana" - }, - "image/pjpeg": { - "compressible": false - }, - "image/png": { - "source": "iana", - "compressible": false, - "extensions": ["png"] - }, - "image/prs.btif": { - "source": "iana", - "extensions": ["btif"] - }, - "image/prs.pti": { - "source": "iana" - }, - "image/pwg-raster": { - "source": "iana" - }, - "image/sgi": { - "source": "apache", - "extensions": ["sgi"] - }, - "image/svg+xml": { - "source": "iana", - "compressible": true, - "extensions": ["svg","svgz"] - }, - "image/t38": { - "source": "iana" - }, - "image/tiff": { - "source": "iana", - "compressible": false, - "extensions": ["tiff","tif"] - }, - "image/tiff-fx": { - "source": "iana" - }, - "image/vnd.adobe.photoshop": { - "source": "iana", - "compressible": true, - "extensions": ["psd"] - }, - "image/vnd.airzip.accelerator.azv": { - "source": "iana" - }, - "image/vnd.cns.inf2": { - "source": "iana" - }, - "image/vnd.dece.graphic": { - "source": "iana", - "extensions": ["uvi","uvvi","uvg","uvvg"] - }, - "image/vnd.djvu": { - "source": "iana", - "extensions": ["djvu","djv"] - }, - "image/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "image/vnd.dwg": { - "source": "iana", - "extensions": ["dwg"] - }, - "image/vnd.dxf": { - "source": "iana", - "extensions": ["dxf"] - }, - "image/vnd.fastbidsheet": { - "source": "iana", - "extensions": ["fbs"] - }, - "image/vnd.fpx": { - "source": "iana", - "extensions": ["fpx"] - }, - "image/vnd.fst": { - "source": "iana", - "extensions": ["fst"] - }, - "image/vnd.fujixerox.edmics-mmr": { - "source": "iana", - "extensions": ["mmr"] - }, - "image/vnd.fujixerox.edmics-rlc": { - "source": "iana", - "extensions": ["rlc"] - }, - "image/vnd.globalgraphics.pgb": { - "source": "iana" - }, - "image/vnd.microsoft.icon": { - "source": "iana" - }, - "image/vnd.mix": { - "source": "iana" - }, - "image/vnd.mozilla.apng": { - "source": "iana" - }, - "image/vnd.ms-modi": { - "source": "iana", - "extensions": ["mdi"] - }, - "image/vnd.ms-photo": { - "source": "apache", - "extensions": ["wdp"] - }, - "image/vnd.net-fpx": { - "source": "iana", - "extensions": ["npx"] - }, - "image/vnd.radiance": { - "source": "iana" - }, - "image/vnd.sealed.png": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.gif": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.jpg": { - "source": "iana" - }, - "image/vnd.svf": { - "source": "iana" - }, - "image/vnd.tencent.tap": { - "source": "iana" - }, - "image/vnd.valve.source.texture": { - "source": "iana" - }, - "image/vnd.wap.wbmp": { - "source": "iana", - "extensions": ["wbmp"] - }, - "image/vnd.xiff": { - "source": "iana", - "extensions": ["xif"] - }, - "image/vnd.zbrush.pcx": { - "source": "iana" - }, - "image/webp": { - "source": "apache", - "extensions": ["webp"] - }, - "image/wmf": { - "source": "iana" - }, - "image/x-3ds": { - "source": "apache", - "extensions": ["3ds"] - }, - "image/x-cmu-raster": { - "source": "apache", - "extensions": ["ras"] - }, - "image/x-cmx": { - "source": "apache", - "extensions": ["cmx"] - }, - "image/x-freehand": { - "source": "apache", - "extensions": ["fh","fhc","fh4","fh5","fh7"] - }, - "image/x-icon": { - "source": "apache", - "compressible": true, - "extensions": ["ico"] - }, - "image/x-jng": { - "source": "nginx", - "extensions": ["jng"] - }, - "image/x-mrsid-image": { - "source": "apache", - "extensions": ["sid"] - }, - "image/x-ms-bmp": { - "source": "nginx", - "compressible": true, - "extensions": ["bmp"] - }, - "image/x-pcx": { - "source": "apache", - "extensions": ["pcx"] - }, - "image/x-pict": { - "source": "apache", - "extensions": ["pic","pct"] - }, - "image/x-portable-anymap": { - "source": "apache", - "extensions": ["pnm"] - }, - "image/x-portable-bitmap": { - "source": "apache", - "extensions": ["pbm"] - }, - "image/x-portable-graymap": { - "source": "apache", - "extensions": ["pgm"] - }, - "image/x-portable-pixmap": { - "source": "apache", - "extensions": ["ppm"] - }, - "image/x-rgb": { - "source": "apache", - "extensions": ["rgb"] - }, - "image/x-tga": { - "source": "apache", - "extensions": ["tga"] - }, - "image/x-xbitmap": { - "source": "apache", - "extensions": ["xbm"] - }, - "image/x-xcf": { - "compressible": false - }, - "image/x-xpixmap": { - "source": "apache", - "extensions": ["xpm"] - }, - "image/x-xwindowdump": { - "source": "apache", - "extensions": ["xwd"] - }, - "message/cpim": { - "source": "iana" - }, - "message/delivery-status": { - "source": "iana" - }, - "message/disposition-notification": { - "source": "iana" - }, - "message/external-body": { - "source": "iana" - }, - "message/feedback-report": { - "source": "iana" - }, - "message/global": { - "source": "iana" - }, - "message/global-delivery-status": { - "source": "iana" - }, - "message/global-disposition-notification": { - "source": "iana" - }, - "message/global-headers": { - "source": "iana" - }, - "message/http": { - "source": "iana", - "compressible": false - }, - "message/imdn+xml": { - "source": "iana", - "compressible": true - }, - "message/news": { - "source": "iana" - }, - "message/partial": { - "source": "iana", - "compressible": false - }, - "message/rfc822": { - "source": "iana", - "compressible": true, - "extensions": ["eml","mime"] - }, - "message/s-http": { - "source": "iana" - }, - "message/sip": { - "source": "iana" - }, - "message/sipfrag": { - "source": "iana" - }, - "message/tracking-status": { - "source": "iana" - }, - "message/vnd.si.simp": { - "source": "iana" - }, - "message/vnd.wfa.wsc": { - "source": "iana" - }, - "model/gltf+json": { - "source": "iana", - "compressible": true - }, - "model/iges": { - "source": "iana", - "compressible": false, - "extensions": ["igs","iges"] - }, - "model/mesh": { - "source": "iana", - "compressible": false, - "extensions": ["msh","mesh","silo"] - }, - "model/vnd.collada+xml": { - "source": "iana", - "extensions": ["dae"] - }, - "model/vnd.dwf": { - "source": "iana", - "extensions": ["dwf"] - }, - "model/vnd.flatland.3dml": { - "source": "iana" - }, - "model/vnd.gdl": { - "source": "iana", - "extensions": ["gdl"] - }, - "model/vnd.gs-gdl": { - "source": "apache" - }, - "model/vnd.gs.gdl": { - "source": "iana" - }, - "model/vnd.gtw": { - "source": "iana", - "extensions": ["gtw"] - }, - "model/vnd.moml+xml": { - "source": "iana" - }, - "model/vnd.mts": { - "source": "iana", - "extensions": ["mts"] - }, - "model/vnd.opengex": { - "source": "iana" - }, - "model/vnd.parasolid.transmit.binary": { - "source": "iana" - }, - "model/vnd.parasolid.transmit.text": { - "source": "iana" - }, - "model/vnd.rosette.annotated-data-model": { - "source": "iana" - }, - "model/vnd.valve.source.compiled-map": { - "source": "iana" - }, - "model/vnd.vtu": { - "source": "iana", - "extensions": ["vtu"] - }, - "model/vrml": { - "source": "iana", - "compressible": false, - "extensions": ["wrl","vrml"] - }, - "model/x3d+binary": { - "source": "apache", - "compressible": false, - "extensions": ["x3db","x3dbz"] - }, - "model/x3d+fastinfoset": { - "source": "iana" - }, - "model/x3d+vrml": { - "source": "apache", - "compressible": false, - "extensions": ["x3dv","x3dvz"] - }, - "model/x3d+xml": { - "source": "iana", - "compressible": true, - "extensions": ["x3d","x3dz"] - }, - "model/x3d-vrml": { - "source": "iana" - }, - "multipart/alternative": { - "source": "iana", - "compressible": false - }, - "multipart/appledouble": { - "source": "iana" - }, - "multipart/byteranges": { - "source": "iana" - }, - "multipart/digest": { - "source": "iana" - }, - "multipart/encrypted": { - "source": "iana", - "compressible": false - }, - "multipart/form-data": { - "source": "iana", - "compressible": false - }, - "multipart/header-set": { - "source": "iana" - }, - "multipart/mixed": { - "source": "iana", - "compressible": false - }, - "multipart/parallel": { - "source": "iana" - }, - "multipart/related": { - "source": "iana", - "compressible": false - }, - "multipart/report": { - "source": "iana" - }, - "multipart/signed": { - "source": "iana", - "compressible": false - }, - "multipart/voice-message": { - "source": "iana" - }, - "multipart/x-mixed-replace": { - "source": "iana" - }, - "text/1d-interleaved-parityfec": { - "source": "iana" - }, - "text/cache-manifest": { - "source": "iana", - "compressible": true, - "extensions": ["appcache","manifest"] - }, - "text/calendar": { - "source": "iana", - "extensions": ["ics","ifb"] - }, - "text/calender": { - "compressible": true - }, - "text/cmd": { - "compressible": true - }, - "text/coffeescript": { - "extensions": ["coffee","litcoffee"] - }, - "text/css": { - "source": "iana", - "compressible": true, - "extensions": ["css"] - }, - "text/csv": { - "source": "iana", - "compressible": true, - "extensions": ["csv"] - }, - "text/csv-schema": { - "source": "iana" - }, - "text/directory": { - "source": "iana" - }, - "text/dns": { - "source": "iana" - }, - "text/ecmascript": { - "source": "iana" - }, - "text/encaprtp": { - "source": "iana" - }, - "text/enriched": { - "source": "iana" - }, - "text/fwdred": { - "source": "iana" - }, - "text/grammar-ref-list": { - "source": "iana" - }, - "text/hjson": { - "extensions": ["hjson"] - }, - "text/html": { - "source": "iana", - "compressible": true, - "extensions": ["html","htm","shtml"] - }, - "text/jade": { - "extensions": ["jade"] - }, - "text/javascript": { - "source": "iana", - "compressible": true - }, - "text/jcr-cnd": { - "source": "iana" - }, - "text/jsx": { - "compressible": true, - "extensions": ["jsx"] - }, - "text/less": { - "extensions": ["less"] - }, - "text/markdown": { - "source": "iana" - }, - "text/mathml": { - "source": "nginx", - "extensions": ["mml"] - }, - "text/mizar": { - "source": "iana" - }, - "text/n3": { - "source": "iana", - "compressible": true, - "extensions": ["n3"] - }, - "text/parameters": { - "source": "iana" - }, - "text/parityfec": { - "source": "iana" - }, - "text/plain": { - "source": "iana", - "compressible": true, - "extensions": ["txt","text","conf","def","list","log","in","ini"] - }, - "text/provenance-notation": { - "source": "iana" - }, - "text/prs.fallenstein.rst": { - "source": "iana" - }, - "text/prs.lines.tag": { - "source": "iana", - "extensions": ["dsc"] - }, - "text/prs.prop.logic": { - "source": "iana" - }, - "text/raptorfec": { - "source": "iana" - }, - "text/red": { - "source": "iana" - }, - "text/rfc822-headers": { - "source": "iana" - }, - "text/richtext": { - "source": "iana", - "compressible": true, - "extensions": ["rtx"] - }, - "text/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "text/rtp-enc-aescm128": { - "source": "iana" - }, - "text/rtploopback": { - "source": "iana" - }, - "text/rtx": { - "source": "iana" - }, - "text/sgml": { - "source": "iana", - "extensions": ["sgml","sgm"] - }, - "text/slim": { - "extensions": ["slim","slm"] - }, - "text/stylus": { - "extensions": ["stylus","styl"] - }, - "text/t140": { - "source": "iana" - }, - "text/tab-separated-values": { - "source": "iana", - "compressible": true, - "extensions": ["tsv"] - }, - "text/troff": { - "source": "iana", - "extensions": ["t","tr","roff","man","me","ms"] - }, - "text/turtle": { - "source": "iana", - "extensions": ["ttl"] - }, - "text/ulpfec": { - "source": "iana" - }, - "text/uri-list": { - "source": "iana", - "compressible": true, - "extensions": ["uri","uris","urls"] - }, - "text/vcard": { - "source": "iana", - "compressible": true, - "extensions": ["vcard"] - }, - "text/vnd.a": { - "source": "iana" - }, - "text/vnd.abc": { - "source": "iana" - }, - "text/vnd.ascii-art": { - "source": "iana" - }, - "text/vnd.curl": { - "source": "iana", - "extensions": ["curl"] - }, - "text/vnd.curl.dcurl": { - "source": "apache", - "extensions": ["dcurl"] - }, - "text/vnd.curl.mcurl": { - "source": "apache", - "extensions": ["mcurl"] - }, - "text/vnd.curl.scurl": { - "source": "apache", - "extensions": ["scurl"] - }, - "text/vnd.debian.copyright": { - "source": "iana" - }, - "text/vnd.dmclientscript": { - "source": "iana" - }, - "text/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "text/vnd.esmertec.theme-descriptor": { - "source": "iana" - }, - "text/vnd.fly": { - "source": "iana", - "extensions": ["fly"] - }, - "text/vnd.fmi.flexstor": { - "source": "iana", - "extensions": ["flx"] - }, - "text/vnd.graphviz": { - "source": "iana", - "extensions": ["gv"] - }, - "text/vnd.in3d.3dml": { - "source": "iana", - "extensions": ["3dml"] - }, - "text/vnd.in3d.spot": { - "source": "iana", - "extensions": ["spot"] - }, - "text/vnd.iptc.newsml": { - "source": "iana" - }, - "text/vnd.iptc.nitf": { - "source": "iana" - }, - "text/vnd.latex-z": { - "source": "iana" - }, - "text/vnd.motorola.reflex": { - "source": "iana" - }, - "text/vnd.ms-mediapackage": { - "source": "iana" - }, - "text/vnd.net2phone.commcenter.command": { - "source": "iana" - }, - "text/vnd.radisys.msml-basic-layout": { - "source": "iana" - }, - "text/vnd.si.uricatalogue": { - "source": "iana" - }, - "text/vnd.sun.j2me.app-descriptor": { - "source": "iana", - "extensions": ["jad"] - }, - "text/vnd.trolltech.linguist": { - "source": "iana" - }, - "text/vnd.wap.si": { - "source": "iana" - }, - "text/vnd.wap.sl": { - "source": "iana" - }, - "text/vnd.wap.wml": { - "source": "iana", - "extensions": ["wml"] - }, - "text/vnd.wap.wmlscript": { - "source": "iana", - "extensions": ["wmls"] - }, - "text/vtt": { - "charset": "UTF-8", - "compressible": true, - "extensions": ["vtt"] - }, - "text/x-asm": { - "source": "apache", - "extensions": ["s","asm"] - }, - "text/x-c": { - "source": "apache", - "extensions": ["c","cc","cxx","cpp","h","hh","dic"] - }, - "text/x-component": { - "source": "nginx", - "extensions": ["htc"] - }, - "text/x-fortran": { - "source": "apache", - "extensions": ["f","for","f77","f90"] - }, - "text/x-gwt-rpc": { - "compressible": true - }, - "text/x-handlebars-template": { - "extensions": ["hbs"] - }, - "text/x-java-source": { - "source": "apache", - "extensions": ["java"] - }, - "text/x-jquery-tmpl": { - "compressible": true - }, - "text/x-lua": { - "extensions": ["lua"] - }, - "text/x-markdown": { - "compressible": true, - "extensions": ["markdown","md","mkd"] - }, - "text/x-nfo": { - "source": "apache", - "extensions": ["nfo"] - }, - "text/x-opml": { - "source": "apache", - "extensions": ["opml"] - }, - "text/x-pascal": { - "source": "apache", - "extensions": ["p","pas"] - }, - "text/x-processing": { - "compressible": true, - "extensions": ["pde"] - }, - "text/x-sass": { - "extensions": ["sass"] - }, - "text/x-scss": { - "extensions": ["scss"] - }, - "text/x-setext": { - "source": "apache", - "extensions": ["etx"] - }, - "text/x-sfv": { - "source": "apache", - "extensions": ["sfv"] - }, - "text/x-suse-ymp": { - "compressible": true, - "extensions": ["ymp"] - }, - "text/x-uuencode": { - "source": "apache", - "extensions": ["uu"] - }, - "text/x-vcalendar": { - "source": "apache", - "extensions": ["vcs"] - }, - "text/x-vcard": { - "source": "apache", - "extensions": ["vcf"] - }, - "text/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml"] - }, - "text/xml-external-parsed-entity": { - "source": "iana" - }, - "text/yaml": { - "extensions": ["yaml","yml"] - }, - "video/1d-interleaved-parityfec": { - "source": "apache" - }, - "video/3gpp": { - "source": "apache", - "extensions": ["3gp","3gpp"] - }, - "video/3gpp-tt": { - "source": "apache" - }, - "video/3gpp2": { - "source": "apache", - "extensions": ["3g2"] - }, - "video/bmpeg": { - "source": "apache" - }, - "video/bt656": { - "source": "apache" - }, - "video/celb": { - "source": "apache" - }, - "video/dv": { - "source": "apache" - }, - "video/encaprtp": { - "source": "apache" - }, - "video/h261": { - "source": "apache", - "extensions": ["h261"] - }, - "video/h263": { - "source": "apache", - "extensions": ["h263"] - }, - "video/h263-1998": { - "source": "apache" - }, - "video/h263-2000": { - "source": "apache" - }, - "video/h264": { - "source": "apache", - "extensions": ["h264"] - }, - "video/h264-rcdo": { - "source": "apache" - }, - "video/h264-svc": { - "source": "apache" - }, - "video/h265": { - "source": "apache" - }, - "video/iso.segment": { - "source": "apache" - }, - "video/jpeg": { - "source": "apache", - "extensions": ["jpgv"] - }, - "video/jpeg2000": { - "source": "apache" - }, - "video/jpm": { - "source": "apache", - "extensions": ["jpm","jpgm"] - }, - "video/mj2": { - "source": "apache", - "extensions": ["mj2","mjp2"] - }, - "video/mp1s": { - "source": "apache" - }, - "video/mp2p": { - "source": "apache" - }, - "video/mp2t": { - "source": "apache", - "extensions": ["ts"] - }, - "video/mp4": { - "source": "apache", - "compressible": false, - "extensions": ["mp4","mp4v","mpg4"] - }, - "video/mp4v-es": { - "source": "apache" - }, - "video/mpeg": { - "source": "apache", - "compressible": false, - "extensions": ["mpeg","mpg","mpe","m1v","m2v"] - }, - "video/mpeg4-generic": { - "source": "apache" - }, - "video/mpv": { - "source": "apache" - }, - "video/nv": { - "source": "apache" - }, - "video/ogg": { - "source": "apache", - "compressible": false, - "extensions": ["ogv"] - }, - "video/parityfec": { - "source": "apache" - }, - "video/pointer": { - "source": "apache" - }, - "video/quicktime": { - "source": "apache", - "compressible": false, - "extensions": ["qt","mov"] - }, - "video/raptorfec": { - "source": "apache" - }, - "video/raw": { - "source": "apache" - }, - "video/rtp-enc-aescm128": { - "source": "apache" - }, - "video/rtploopback": { - "source": "apache" - }, - "video/rtx": { - "source": "apache" - }, - "video/smpte292m": { - "source": "apache" - }, - "video/ulpfec": { - "source": "apache" - }, - "video/vc1": { - "source": "apache" - }, - "video/vnd.cctv": { - "source": "apache" - }, - "video/vnd.dece.hd": { - "source": "apache", - "extensions": ["uvh","uvvh"] - }, - "video/vnd.dece.mobile": { - "source": "apache", - "extensions": ["uvm","uvvm"] - }, - "video/vnd.dece.mp4": { - "source": "apache" - }, - "video/vnd.dece.pd": { - "source": "apache", - "extensions": ["uvp","uvvp"] - }, - "video/vnd.dece.sd": { - "source": "apache", - "extensions": ["uvs","uvvs"] - }, - "video/vnd.dece.video": { - "source": "apache", - "extensions": ["uvv","uvvv"] - }, - "video/vnd.directv.mpeg": { - "source": "apache" - }, - "video/vnd.directv.mpeg-tts": { - "source": "apache" - }, - "video/vnd.dlna.mpeg-tts": { - "source": "apache" - }, - "video/vnd.dvb.file": { - "source": "apache", - "extensions": ["dvb"] - }, - "video/vnd.fvt": { - "source": "apache", - "extensions": ["fvt"] - }, - "video/vnd.hns.video": { - "source": "apache" - }, - "video/vnd.iptvforum.1dparityfec-1010": { - "source": "apache" - }, - "video/vnd.iptvforum.1dparityfec-2005": { - "source": "apache" - }, - "video/vnd.iptvforum.2dparityfec-1010": { - "source": "apache" - }, - "video/vnd.iptvforum.2dparityfec-2005": { - "source": "apache" - }, - "video/vnd.iptvforum.ttsavc": { - "source": "apache" - }, - "video/vnd.iptvforum.ttsmpeg2": { - "source": "apache" - }, - "video/vnd.motorola.video": { - "source": "apache" - }, - "video/vnd.motorola.videop": { - "source": "apache" - }, - "video/vnd.mpegurl": { - "source": "apache", - "extensions": ["mxu","m4u"] - }, - "video/vnd.ms-playready.media.pyv": { - "source": "apache", - "extensions": ["pyv"] - }, - "video/vnd.nokia.interleaved-multimedia": { - "source": "apache" - }, - "video/vnd.nokia.videovoip": { - "source": "apache" - }, - "video/vnd.objectvideo": { - "source": "apache" - }, - "video/vnd.radgamettools.bink": { - "source": "apache" - }, - "video/vnd.radgamettools.smacker": { - "source": "apache" - }, - "video/vnd.sealed.mpeg1": { - "source": "apache" - }, - "video/vnd.sealed.mpeg4": { - "source": "apache" - }, - "video/vnd.sealed.swf": { - "source": "apache" - }, - "video/vnd.sealedmedia.softseal.mov": { - "source": "apache" - }, - "video/vnd.uvvu.mp4": { - "source": "apache", - "extensions": ["uvu","uvvu"] - }, - "video/vnd.vivo": { - "source": "apache", - "extensions": ["viv"] - }, - "video/vp8": { - "source": "apache" - }, - "video/webm": { - "source": "apache", - "compressible": false, - "extensions": ["webm"] - }, - "video/x-f4v": { - "source": "apache", - "extensions": ["f4v"] - }, - "video/x-fli": { - "source": "apache", - "extensions": ["fli"] - }, - "video/x-flv": { - "source": "apache", - "compressible": false, - "extensions": ["flv"] - }, - "video/x-m4v": { - "source": "apache", - "extensions": ["m4v"] - }, - "video/x-matroska": { - "source": "apache", - "compressible": false, - "extensions": ["mkv","mk3d","mks"] - }, - "video/x-mng": { - "source": "apache", - "extensions": ["mng"] - }, - "video/x-ms-asf": { - "source": "apache", - "extensions": ["asf","asx"] - }, - "video/x-ms-vob": { - "source": "apache", - "extensions": ["vob"] - }, - "video/x-ms-wm": { - "source": "apache", - "extensions": ["wm"] - }, - "video/x-ms-wmv": { - "source": "apache", - "compressible": false, - "extensions": ["wmv"] - }, - "video/x-ms-wmx": { - "source": "apache", - "extensions": ["wmx"] - }, - "video/x-ms-wvx": { - "source": "apache", - "extensions": ["wvx"] - }, - "video/x-msvideo": { - "source": "apache", - "extensions": ["avi"] - }, - "video/x-sgi-movie": { - "source": "apache", - "extensions": ["movie"] - }, - "video/x-smv": { - "source": "apache", - "extensions": ["smv"] - }, - "x-conference/x-cooltalk": { - "source": "apache", - "extensions": ["ice"] - }, - "x-shader/x-fragment": { - "compressible": true - }, - "x-shader/x-vertex": { - "compressible": true - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/index.js deleted file mode 100644 index 551031f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/index.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * mime-db - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -/** - * Module exports. - */ - -module.exports = require('./db.json') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/package.json deleted file mode 100644 index 4ce9bd44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "name": "mime-db", - "description": "Media Type Database", - "version": "1.24.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - { - "name": "Robert Kieffer", - "email": "robert@broofa.com", - "url": "http://github.com/broofa" - } - ], - "license": "MIT", - "keywords": [ - "mime", - "db", - "type", - "types", - "database", - "charset", - "charsets" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-db.git" - }, - "devDependencies": { - "bluebird": "3.4.6", - "co": "4.6.0", - "cogent": "1.0.1", - "csv-parse": "1.1.7", - "gnode": "0.1.2", - "istanbul": "0.4.5", - "mocha": "1.21.5", - "raw-body": "2.1.7", - "stream-to-array": "2.3.0" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "db.json", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "build": "node scripts/build", - "fetch": "gnode scripts/fetch-apache && gnode scripts/fetch-iana && gnode scripts/fetch-nginx", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "update": "npm run fetch && npm run build" - }, - "gitHead": "9dd00b34556a8cdd6f3385f09d4989298c4b86e1", - "bugs": { - "url": "https://github.com/jshttp/mime-db/issues" - }, - "homepage": "https://github.com/jshttp/mime-db#readme", - "_id": "mime-db@1.24.0", - "_shasum": "e2d13f939f0016c6e4e9ad25a8652f126c467f0c", - "_from": "mime-db@>=1.24.0 <1.25.0", - "_npmVersion": "2.15.9", - "_nodeVersion": "4.5.0", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "e2d13f939f0016c6e4e9ad25a8652f126c467f0c", - "tarball": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/mime-db-1.24.0.tgz_1474198792761_0.7161959335207939" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/package.json deleted file mode 100644 index 9d55f067..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/node_modules/mime-types/package.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "name": "mime-types", - "description": "The ultimate javascript content-type utility.", - "version": "2.1.12", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jeremiah Senkpiel", - "email": "fishrock123@rocketmail.com", - "url": "https://searchbeam.jit.su" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "keywords": [ - "mime", - "types" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-types.git" - }, - "dependencies": { - "mime-db": "~1.24.0" - }, - "devDependencies": { - "eslint": "3.5.0", - "eslint-config-standard": "6.0.1", - "eslint-plugin-promise": "2.0.1", - "eslint-plugin-standard": "2.0.0", - "istanbul": "0.4.5", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint **/*.js", - "test": "mocha --reporter spec test/test.js", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/test.js", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot test/test.js" - }, - "gitHead": "7193a9094e2efe31da93988350bb0b32ab18b1ea", - "bugs": { - "url": "https://github.com/jshttp/mime-types/issues" - }, - "homepage": "https://github.com/jshttp/mime-types#readme", - "_id": "mime-types@2.1.12", - "_shasum": "152ba256777020dd4663f54c2e7bc26381e71729", - "_from": "mime-types@>=2.1.6 <2.2.0", - "_npmVersion": "2.15.9", - "_nodeVersion": "4.5.0", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "152ba256777020dd4663f54c2e7bc26381e71729", - "tarball": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/mime-types-2.1.12.tgz_1474237415119_0.03028594213537872" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/package.json deleted file mode 100644 index 68f0bd92..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/type-is/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "name": "type-is", - "description": "Infer the content-type of a request.", - "version": "1.6.13", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/type-is.git" - }, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.11" - }, - "devDependencies": { - "eslint": "2.10.2", - "eslint-config-standard": "5.3.1", - "eslint-plugin-promise": "1.1.0", - "eslint-plugin-standard": "1.3.2", - "istanbul": "0.4.3", - "mocha": "1.21.5" - }, - "engines": { - "node": ">= 0.6" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "index.js" - ], - "scripts": { - "lint": "eslint **/*.js", - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "keywords": [ - "content", - "type", - "checking" - ], - "gitHead": "88c47523fff910343b3ca7d4928dad40f21ea6cd", - "bugs": { - "url": "https://github.com/jshttp/type-is/issues" - }, - "homepage": "https://github.com/jshttp/type-is#readme", - "_id": "type-is@1.6.13", - "_shasum": "6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08", - "_from": "type-is@>=1.6.6 <1.7.0", - "_npmVersion": "2.15.1", - "_nodeVersion": "4.4.3", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08", - "tarball": "https://registry.npmjs.org/type-is/-/type-is-1.6.13.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/type-is-1.6.13.tgz_1463622049206_0.9134831207338721" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.13.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/.travis.yml deleted file mode 100644 index af92b021..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: "node_js" -node_js: - - "0.4" - - "0.6" - - "0.8" - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/LICENSE deleted file mode 100644 index e33bd10b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2013 Jared Hanson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/README.md deleted file mode 100644 index 2f94e9bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# utils-merge - -Merges the properties from a source object into a destination object. - -## Install - - $ npm install utils-merge - -## Usage - -```javascript -var a = { foo: 'bar' } - , b = { bar: 'baz' }; - -merge(a, b); -// => { foo: 'bar', bar: 'baz' } -``` - -## Tests - - $ npm install - $ npm test - -[![Build Status](https://secure.travis-ci.org/jaredhanson/utils-merge.png)](http://travis-ci.org/jaredhanson/utils-merge) - -## Credits - - - [Jared Hanson](http://github.com/jaredhanson) - -## License - -[The MIT License](http://opensource.org/licenses/MIT) - -Copyright (c) 2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/index.js deleted file mode 100644 index 4265c694..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/index.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Merge object b with object a. - * - * var a = { foo: 'bar' } - * , b = { bar: 'baz' }; - * - * merge(a, b); - * // => { foo: 'bar', bar: 'baz' } - * - * @param {Object} a - * @param {Object} b - * @return {Object} - * @api public - */ - -exports = module.exports = function(a, b){ - if (a && b) { - for (var key in b) { - a[key] = b[key]; - } - } - return a; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/package.json deleted file mode 100644 index e86cad01..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/utils-merge/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "utils-merge", - "version": "1.0.0", - "description": "merge() utility function", - "keywords": [ - "util" - ], - "repository": { - "type": "git", - "url": "git://github.com/jaredhanson/utils-merge.git" - }, - "bugs": { - "url": "http://github.com/jaredhanson/utils-merge/issues" - }, - "author": { - "name": "Jared Hanson", - "email": "jaredhanson@gmail.com", - "url": "http://www.jaredhanson.net/" - }, - "licenses": [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/MIT" - } - ], - "main": "./index", - "dependencies": {}, - "devDependencies": { - "mocha": "1.x.x", - "chai": "1.x.x" - }, - "scripts": { - "test": "mocha --reporter spec --require test/bootstrap/node test/*.test.js" - }, - "engines": { - "node": ">= 0.4.0" - }, - "_id": "utils-merge@1.0.0", - "dist": { - "shasum": "0294fb922bb9375153541c4f7096231f287c8af8", - "tarball": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" - }, - "_from": "utils-merge@1.0.0", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - }, - "maintainers": [ - { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - } - ], - "directories": {}, - "_shasum": "0294fb922bb9375153541c4f7096231f287c8af8", - "_resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/jaredhanson/utils-merge#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/HISTORY.md deleted file mode 100644 index cddbcd42..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/HISTORY.md +++ /dev/null @@ -1,23 +0,0 @@ -1.0.1 / 2015-07-08 -================== - - * Fix setting empty header from empty `field` - * perf: enable strict mode - * perf: remove argument reassignments - -1.0.0 / 2014-08-10 -================== - - * Accept valid `Vary` header string as `field` - * Add `vary.append` for low-level string manipulation - * Move to `jshttp` orgainzation - -0.1.0 / 2014-06-05 -================== - - * Support array of fields to set - -0.0.0 / 2014-06-04 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/LICENSE deleted file mode 100644 index 142ede38..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/README.md deleted file mode 100644 index 59665427..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# vary - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Manipulate the HTTP Vary header - -## Installation - -```sh -$ npm install vary -``` - -## API - -```js -var vary = require('vary') -``` - -### vary(res, field) - -Adds the given header `field` to the `Vary` response header of `res`. -This can be a string of a single field, a string of a valid `Vary` -header, or an array of multiple fields. - -This will append the header if not already listed, otherwise leaves -it listed in the current location. - -```js -// Append "Origin" to the Vary header of the response -vary(res, 'Origin') -``` - -### vary.append(header, field) - -Adds the given header `field` to the `Vary` response header string `header`. -This can be a string of a single field, a string of a valid `Vary` header, -or an array of multiple fields. - -This will append the header if not already listed, otherwise leaves -it listed in the current location. The new header string is returned. - -```js -// Get header string appending "Origin" to "Accept, User-Agent" -vary.append('Accept, User-Agent', 'Origin') -``` - -## Examples - -### Updating the Vary header when content is based on it - -```js -var http = require('http') -var vary = require('vary') - -http.createServer(function onRequest(req, res) { - // about to user-agent sniff - vary(res, 'User-Agent') - - var ua = req.headers['user-agent'] || '' - var isMobile = /mobi|android|touch|mini/i.test(ua) - - // serve site, depending on isMobile - res.setHeader('Content-Type', 'text/html') - res.end('You are (probably) ' + (isMobile ? '' : 'not ') + 'a mobile user') -}) -``` - -## Testing - -```sh -$ npm test -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/vary.svg -[npm-url]: https://npmjs.org/package/vary -[node-version-image]: https://img.shields.io/node/v/vary.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/vary/master.svg -[travis-url]: https://travis-ci.org/jshttp/vary -[coveralls-image]: https://img.shields.io/coveralls/jshttp/vary/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/vary -[downloads-image]: https://img.shields.io/npm/dm/vary.svg -[downloads-url]: https://npmjs.org/package/vary diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/index.js deleted file mode 100644 index e818dbb8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/index.js +++ /dev/null @@ -1,117 +0,0 @@ -/*! - * vary - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module exports. - */ - -module.exports = vary; -module.exports.append = append; - -/** - * Variables. - */ - -var separators = /[\(\)<>@,;:\\"\/\[\]\?=\{\}\u0020\u0009]/; - -/** - * Append a field to a vary header. - * - * @param {String} header - * @param {String|Array} field - * @return {String} - * @api public - */ - -function append(header, field) { - if (typeof header !== 'string') { - throw new TypeError('header argument is required'); - } - - if (!field) { - throw new TypeError('field argument is required'); - } - - // get fields array - var fields = !Array.isArray(field) - ? parse(String(field)) - : field; - - // assert on invalid fields - for (var i = 0; i < fields.length; i++) { - if (separators.test(fields[i])) { - throw new TypeError('field argument contains an invalid header'); - } - } - - // existing, unspecified vary - if (header === '*') { - return header; - } - - // enumerate current values - var val = header; - var vals = parse(header.toLowerCase()); - - // unspecified vary - if (fields.indexOf('*') !== -1 || vals.indexOf('*') !== -1) { - return '*'; - } - - for (var i = 0; i < fields.length; i++) { - var fld = fields[i].toLowerCase(); - - // append value (case-preserving) - if (vals.indexOf(fld) === -1) { - vals.push(fld); - val = val - ? val + ', ' + fields[i] - : fields[i]; - } - } - - return val; -} - -/** - * Parse a vary header into an array. - * - * @param {String} header - * @return {Array} - * @api private - */ - -function parse(header) { - return header.trim().split(/ *, */); -} - -/** - * Mark that a request is varied on a header field. - * - * @param {Object} res - * @param {String|Array} field - * @api public - */ - -function vary(res, field) { - if (!res || !res.getHeader || !res.setHeader) { - // quack quack - throw new TypeError('res argument is required'); - } - - // get existing header - var val = res.getHeader('Vary') || '' - var header = Array.isArray(val) - ? val.join(', ') - : String(val); - - // set new header - if ((val = append(header, field))) { - res.setHeader('Vary', val); - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/package.json deleted file mode 100644 index aacd3856..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/node_modules/vary/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "vary", - "description": "Manipulate the HTTP Vary header", - "version": "1.0.1", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "keywords": [ - "http", - "res", - "vary" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/vary.git" - }, - "devDependencies": { - "istanbul": "0.3.17", - "mocha": "2.2.5", - "supertest": "1.0.1" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "650282ff8e614731837040a23e10f51c20728392", - "bugs": { - "url": "https://github.com/jshttp/vary/issues" - }, - "homepage": "https://github.com/jshttp/vary", - "_id": "vary@1.0.1", - "_shasum": "99e4981566a286118dfb2b817357df7993376d10", - "_from": "vary@>=1.0.1 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - } - ], - "dist": { - "shasum": "99e4981566a286118dfb2b817357df7993376d10", - "tarball": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/package.json deleted file mode 100644 index 0bb957e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/express/package.json +++ /dev/null @@ -1,143 +0,0 @@ -{ - "name": "express", - "description": "Fast, unopinionated, minimalist web framework", - "version": "4.13.4", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "contributors": [ - { - "name": "Aaron Heckmann", - "email": "aaron.heckmann+github@gmail.com" - }, - { - "name": "Ciaran Jessup", - "email": "ciaranj@gmail.com" - }, - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Guillermo Rauch", - "email": "rauchg@gmail.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com" - }, - { - "name": "Roman Shtylman", - "email": "shtylman+expressjs@gmail.com" - }, - { - "name": "Young Jae Sim", - "email": "hanul@hanul.me" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/expressjs/express.git" - }, - "keywords": [ - "express", - "framework", - "sinatra", - "web", - "rest", - "restful", - "router", - "app", - "api" - ], - "dependencies": { - "accepts": "~1.2.12", - "array-flatten": "1.1.1", - "content-disposition": "0.5.1", - "content-type": "~1.0.1", - "cookie": "0.1.5", - "cookie-signature": "1.0.6", - "debug": "~2.2.0", - "depd": "~1.1.0", - "escape-html": "~1.0.3", - "etag": "~1.7.0", - "finalhandler": "0.4.1", - "fresh": "0.3.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.1", - "path-to-regexp": "0.1.7", - "proxy-addr": "~1.0.10", - "qs": "4.0.0", - "range-parser": "~1.0.3", - "send": "0.13.1", - "serve-static": "~1.10.2", - "type-is": "~1.6.6", - "utils-merge": "1.0.0", - "vary": "~1.0.1" - }, - "devDependencies": { - "after": "0.8.1", - "ejs": "2.3.4", - "istanbul": "0.4.2", - "marked": "0.3.5", - "mocha": "2.3.4", - "should": "7.1.1", - "supertest": "1.1.0", - "body-parser": "~1.14.2", - "connect-redis": "~2.4.1", - "cookie-parser": "~1.4.1", - "cookie-session": "~1.2.0", - "express-session": "~1.13.0", - "jade": "~1.11.0", - "method-override": "~2.3.5", - "morgan": "~1.6.1", - "multiparty": "~4.1.2", - "vhost": "~3.0.1" - }, - "engines": { - "node": ">= 0.10.0" - }, - "files": [ - "LICENSE", - "History.md", - "Readme.md", - "index.js", - "lib/" - ], - "scripts": { - "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/ test/acceptance/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/ test/acceptance/", - "test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/" - }, - "gitHead": "193bed2649c55c1fd362e46cd4702c773f3e7434", - "bugs": { - "url": "https://github.com/expressjs/express/issues" - }, - "homepage": "https://github.com/expressjs/express", - "_id": "express@4.13.4", - "_shasum": "3c0b76f3c77590c8345739061ec0bd3ba067ec24", - "_from": "express@>=4.13.4 <4.14.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "3c0b76f3c77590c8345739061ec0bd3ba067ec24", - "tarball": "https://registry.npmjs.org/express/-/express-4.13.4.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/.npmignore deleted file mode 100644 index c3c073d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/.npmignore +++ /dev/null @@ -1,19 +0,0 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz - -pids -logs -results - -node_modules -npm-debug.log - -test/*.log -.*.sw[op] -test/fixtures/*.log \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/.travis.yml deleted file mode 100644 index 427879d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: node_js -node_js: - - 0.8 -branches: - only: - - master -notifications: - email: - - travis@nodejitsu.com - irc: "irc.freenode.org#nodejitsu" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/LICENSE deleted file mode 100644 index dffa1ee5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2010 Nodejitsu 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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/README.md deleted file mode 100644 index caec3fd0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/README.md +++ /dev/null @@ -1,123 +0,0 @@ -# forever-monitor [![Build Status](https://secure.travis-ci.org/nodejitsu/forever-monitor.png)](http://travis-ci.org/nodejitsu/forever-monitor) - -The core monitoring functionality of forever without the CLI - -## Usage -You can also use forever from inside your own node.js code. - -``` js - var forever = require('forever-monitor'); - - var child = new (forever.Monitor)('your-filename.js', { - max: 3, - silent: true, - options: [] - }); - - child.on('exit', function () { - console.log('your-filename.js has exited after 3 restarts'); - }); - - child.start(); -``` - -### Spawning a non-node process -You can spawn non-node processes too. Either set the `command` key in the -`options` hash or pass in an `Array` in place of the `file` argument like this: - -``` js - var forever = require('forever-monitor'); - var child = forever.start([ 'perl', '-le', 'print "moo"' ], { - max : 1, - silent : true - }); -``` - -### Options available when using Forever in node.js -There are several options that you should be aware of when using forever. Most of this configuration is optional. - -``` js - { - // - // Basic configuration options - // - 'silent': false, // Silences the output from stdout and stderr in the parent process - 'uid': 'your-UID' // Custom uid for this forever process. (default: autogen) - 'pidFile': 'path/to/a.pid', // Path to put pid information for the process(es) started - 'max': 10, // Sets the maximum number of times a given script should run - 'killTree': true // Kills the entire child process tree on `exit` - - // - // These options control how quickly forever restarts a child process - // as well as when to kill a "spinning" process - // - 'minUptime': 2000, // Minimum time a child process has to be up. Forever will 'exit' otherwise. - 'spinSleepTime': 1000, // Interval between restarts if a child is spinning (i.e. alive < minUptime). - - // - // Command to spawn as well as options and other vars - // (env, cwd, etc) to pass along - // - 'command': 'perl', // Binary to run (default: 'node') - 'options': ['foo','bar'], // Additional arguments to pass to the script, - 'sourceDir': 'script/path' // Directory that the source script is in - - // - // Options for restarting on watched files. - // - 'watch': false // Value indicating if we should watch files. - 'watchIgnoreDotFiles': null // Dot files we should read to ignore ('.foreverignore', etc). - 'watchIgnorePatterns': null // Ignore patterns to use when watching files. - 'watchDirectory': null // Top-level directory to watch from. - - // - // All or nothing options passed along to `child_process.spawn`. - // - 'spawnWith': { - env: process.env, // Information passed along to the child process - customFds: [-1, -1, -1], // that forever spawns. - setsid: false - }, - - // - // More specific options to pass along to `child_process.spawn` which - // will override anything passed to the `spawnWith` option - // - 'env': { 'ADDITIONAL': 'CHILD ENV VARS' } - 'cwd': '/path/to/child/working/directory' - - // - // Log files and associated logging options for this instance - // - 'logFile': 'path/to/file', // Path to log output from forever process (when daemonized) - 'outFile': 'path/to/file', // Path to log output from child stdout - 'errFile': 'path/to/file' // Path to log output from child stderr - } -``` - -### Events available when using an instance of Forever in node.js -Each forever object is an instance of the node.js core EventEmitter. There are several core events that you can listen for: - -* **error** _[err]:_ Raised when an error occurs -* **start** _[process, data]:_ Raised when the target script is first started. -* **stop** _[process]:_ Raised when the target script is stopped by the user -* **restart** _[forever]:_ Raised each time the target script is restarted -* **exit** _[forever]:_ Raised when the target script actually exits (permenantly). -* **stdout** _[data]:_ Raised when data is received from the child process' stdout -* **stderr** _[data]:_ Raised when data is received from the child process' stderr - -## Installation - -``` bash - $ npm install forever-monitor -``` - -## Run Tests - -``` bash - $ npm test -``` - -#### License: MIT -#### Author: [Charlie Robbins](http://github.com/indexzero) -#### Contributors: [Fedor Indutny](http://github.com/indutny), [James Halliday](http://substack.net/), [Charlie McConnell](http://github.com/avianflu), [Maciej Malecki](http://github.com/mmalecki) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/all-env-vars.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/all-env-vars.js deleted file mode 100644 index 1ddf38a3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/all-env-vars.js +++ /dev/null @@ -1 +0,0 @@ -console.log(JSON.stringify(process.env)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/always-throw.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/always-throw.js deleted file mode 100644 index 6562a488..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/always-throw.js +++ /dev/null @@ -1 +0,0 @@ -throw new Error('Dont spin restart') \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/cli-multiple-start b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/cli-multiple-start deleted file mode 100755 index 9a3e6bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/cli-multiple-start +++ /dev/null @@ -1,4 +0,0 @@ -forever start examples/server.js -p 8080 -forever start examples/server.js -p 8081 -forever start examples/server.js -p 8082 -forever list \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/count-timer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/count-timer.js deleted file mode 100644 index 7a4aff9e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/count-timer.js +++ /dev/null @@ -1,8 +0,0 @@ -var util = require('util'); - -var count = 0; - -var id = setInterval(function () { - util.puts('Count is ' + count + '. Incrementing now.'); - count++; -}, 1000); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/custom-cwd.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/custom-cwd.js deleted file mode 100644 index 9001e552..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/custom-cwd.js +++ /dev/null @@ -1 +0,0 @@ -console.log(process.cwd()); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/env-server.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/env-server.js deleted file mode 100644 index a2295b8a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/env-server.js +++ /dev/null @@ -1,7 +0,0 @@ -var http = require('http'); - -http.createServer(function (req, res) { - res.writeHead(200, { 'Content-Type': 'application/json' }); - res.write(JSON.stringify(process.env)); - res.end(); -}).listen(8080); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/env-vars.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/env-vars.js deleted file mode 100644 index 37b3938e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/env-vars.js +++ /dev/null @@ -1,4 +0,0 @@ -console.log(JSON.stringify({ - foo: process.env.FOO, - bar: process.env.BAR -})); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/error-on-timer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/error-on-timer.js deleted file mode 100644 index 3b08b8ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/error-on-timer.js +++ /dev/null @@ -1,6 +0,0 @@ -var util = require('util'); - -setTimeout(function () { - util.puts('Throwing error now.'); - throw new Error('User generated fault.'); -}, 200); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/list-multiple.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/list-multiple.js deleted file mode 100644 index 7d570c9a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/list-multiple.js +++ /dev/null @@ -1,37 +0,0 @@ -var path = require('path'), - async = require('utile').async, - forever = require('../lib/forever'); - -function startServer (port, next) { - var child = new (forever.Monitor) (script, { - options: [ '--port', port], - silent: true - }); - - child.start(); - child.on('start', function (_, data) { - console.log('Forever process running server.js on ' + port); - next(null, child); - }); -} - -// Array config data -var script = path.join(__dirname, 'server.js'), - ports = [8080, 8081, 8082]; - -async.map(ports, startServer, function (err, monitors) { - forever.startServer(monitors, function () { - // - // Now that the server has started, run `forever.list()` - // - forever.list(false, function (err, data) { - if (err) { - console.log('Error running `forever.list()`'); - console.dir(err); - } - - console.log('Data returned from `forever.list()`'); - console.dir(data) - }) - }); -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/log-on-interval.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/log-on-interval.js deleted file mode 100644 index 6b276522..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/log-on-interval.js +++ /dev/null @@ -1,3 +0,0 @@ -setInterval(function () { - console.log('Logging at ' + Date.now()); -}, 100); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/multiple-processes.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/multiple-processes.js deleted file mode 100644 index 82902656..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/multiple-processes.js +++ /dev/null @@ -1,12 +0,0 @@ -var util = require('util'), - path = require('path'), - forever = require('./../lib/forever'), - script = path.join(__dirname, 'server.js'); - -var child1 = new (forever.Monitor)(script, { 'options': [ "--port=8080"] }); -child1.start(); -util.puts('Forever process running server.js on 8080'); - -var child2 = new (forever.Monitor)(script, { 'options': [ "--port=8081"] }); -child2.start(); -util.puts('Forever process running server.js on 8081'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/process-send.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/process-send.js deleted file mode 100644 index 220f3cb7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/process-send.js +++ /dev/null @@ -1,6 +0,0 @@ - -setInterval(function () { - if (process.send) { - process.send({ from: 'child' }); - } -}, 1000) \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/server.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/server.js deleted file mode 100644 index a386de20..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/server.js +++ /dev/null @@ -1,16 +0,0 @@ -var util = require('util'), - http = require('http'), - argv = require('optimist').argv; - -var port = argv.p || argv.port || 80; - -http.createServer(function (req, res) { - console.log(req.method + ' request: ' + req.url); - res.writeHead(200, {'Content-Type': 'text/plain'}); - res.write('hello, i know nodejitsu.'); - res.end(); -}).listen(port); - -/* server started */ -util.puts('> hello world running on port ' + port); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/signal-ignore.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/signal-ignore.js deleted file mode 100644 index 466837f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/signal-ignore.js +++ /dev/null @@ -1,8 +0,0 @@ -function noop() { - console.log('IGNORED!') -} -process.on('SIGTERM',noop); -process.on('SIGINT',noop); -setInterval(function(){ - console.log('heartbeat'); -}, 100); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/spawn-and-error.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/spawn-and-error.js deleted file mode 100644 index 02bc5d0c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/examples/spawn-and-error.js +++ /dev/null @@ -1,18 +0,0 @@ -var util = require('util'), - path = require('path'), - spawn = require('child_process').spawn; - -var child = spawn('node', [path.join(__dirname, 'count-timer.js')], { cwd: __dirname }); - -child.stdout.on('data', function (data) { - util.puts(data); - //throw new Error('User generated fault.'); -}); - -child.stderr.on('data', function (data) { - util.puts(data); -}); - -child.on('exit', function (code) { - util.puts('Child process exited with code: ' + code); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/http.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/http.js deleted file mode 100644 index 0b79a884..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/http.js +++ /dev/null @@ -1,19 +0,0 @@ - - -var http = require('http'); - -var randomVal = 'not set yet!'; - -http.createServer(function (req, res) { - if (!process.send) { - res.end('No process.send!'); - } - else { - process.send(req.socket.remoteAddress + ' ' + randomVal); - res.end(randomVal); - } -}).listen(9090); - -process.on('message', function (msg) { - randomVal = JSON.stringify(msg); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/common.js deleted file mode 100644 index ae32a155..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/common.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * common.js: Common methods used in `forever-monitor`. - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var psTree = require('ps-tree'), - spawn = require('child_process').spawn; - -// -// ### function checkProcess (pid, callback) -// #### @pid {string} pid of the process to check -// #### @callback {function} Continuation to pass control backto. -// Utility function to check to see if a pid is running -// -exports.checkProcess = function (pid) { - if (!pid) { - return false; - } - - try { - // - // Trying to kill non-existent process here raises a ESRCH - no such - // process exception. Also, signal 0 doesn't do no harm to a process - it - // only checks if sending a singal to a given process is possible. - // - process.kill(pid, 0); - return true; - } - catch (err) { - return false; - } -}; - -exports.kill = function(pid, killTree, callback) { - if (killTree) { - psTree(pid, function (err, children) { - var pids = children.map(function (p) { - return p.PID; - }); - - pids.unshift(pid); - spawn('kill', ['-9'].concat(pids)).on('exit', callback || function() {}); - }); - } - else { - try { - process.kill(pid); - } - catch (ex) { } - callback && callback(); - } -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/monitor.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/monitor.js deleted file mode 100644 index bd4350d0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/monitor.js +++ /dev/null @@ -1,397 +0,0 @@ -/* - * monitor.js: Core functionality for the Monitor object. - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var events = require('events'), - fs = require('fs'), - path = require('path'), - child_process = require('child_process'), - spawn = child_process.spawn, - broadway = require('broadway'), - psTree = require('ps-tree'), - utile = require('utile'), - common = require('./common'), - plugins = require('./plugins'); - -// -// ### function Monitor (script, options) -// #### @script {string} Location of the target script to run. -// #### @options {Object} Configuration for this instance. -// Creates a new instance of forever with specified `options`. -// -var Monitor = exports.Monitor = function (script, options) { - // - // Simple bootstrapper for attaching logger - // and watch plugins by default. Other plugins - // can be attached through `monitor.use(plugin, options)`. - // - function bootstrap(monitor) { - plugins.logger.attach.call(monitor, options); - if (options.watch) { - plugins.watch.attach.call(monitor, options); - } - } - - var self = this; - - // - // Setup basic configuration options - // - options = options || {}; - this.silent = options.silent || false; - this.killTree = options.killTree !== false; - this.uid = options.uid || utile.randomString(4); - this.pidFile = options.pidFile; - this.max = options.max; - this.killTTL = options.killTTL; - this.childExists = false; - this.checkFile = options.checkFile !== false; - this.times = 0; - this.warn = console.error; - - this.logFile = options.logFile; - this.outFile = options.outFile; - this.errFile = options.errFile; - this.append = options.append; - - // - // Setup restart timing. These options control how quickly forever restarts - // a child process as well as when to kill a "spinning" process - // - this.minUptime = typeof options.minUptime !== 'number' ? 0 : options.minUptime; - this.spinSleepTime = options.spinSleepTime || null; - - // - // Setup the command to spawn and the options to pass - // to that command. - // - this.command = options.command || process.execPath; - this.args = options.options || []; - this.spawnWith = options.spawnWith || {}; - this.sourceDir = options.sourceDir; - this.fork = options.fork || false; - this.cwd = options.cwd || null; - this.hideEnv = options.hideEnv || []; - this._env = options.env || {}; - this._hideEnv = {}; - - // - // Allow for custom stdio configuration of forked processes - // - this.stdio = options.stdio || null; - - // - // Setup watch configuration options - // - this.watchIgnoreDotFiles = options.watchIgnoreDotFiles || true; - this.watchIgnorePatterns = options.watchIgnorePatterns || []; - this.watchDirectory = options.watchDirectory || this.sourceDir; - - // - // Create a simple mapping of `this.hideEnv` to an easily indexable - // object - // - this.hideEnv.forEach(function (key) { - self._hideEnv[key] = true; - }); - - if (Array.isArray(script)) { - this.command = script[0]; - this.args = script.slice(1); - } - else { - this.args.unshift(script); - } - - if (this.sourceDir) { - this.args[0] = path.join(this.sourceDir, this.args[0]); - } - - // - // Bootstrap this instance now that options - // have been set - // - broadway.App.call(this, { bootstrapper: { bootstrap: bootstrap } }); -}; - -// Inherit from events.EventEmitter -utile.inherits(Monitor, broadway.App); - -// -// ### function start ([restart]) -// #### @restart {boolean} Value indicating whether this is a restart. -// Start the process that this instance is configured for -// -Monitor.prototype.start = function (restart) { - var self = this, - child; - - if (this.running && !restart) { - process.nextTick(function () { - self.emit('error', new Error('Cannot start process that is already running.')); - }); - return this; - } - - child = this.trySpawn(); - if (!child) { - process.nextTick(function () { - self.emit('error', new Error('Target script does not exist: ' + self.args[0])); - }); - return this; - } - - this.ctime = Date.now(); - this.child = child; - this.running = true; - process.nextTick(function () { - self.emit(restart ? 'restart' : 'start', self, self.data); - }); - - function onMessage(msg) { - self.emit('message', msg); - } - - // Re-emit messages from the child process - this.child.on('message', onMessage); - - child.on('exit', function (code) { - var spinning = Date.now() - self.ctime < self.minUptime; - child.removeListener('message', onMessage); - self.emit('exit:code', code); - - function letChildDie() { - self.running = false; - self.forceStop = false; - self.emit('exit', self, spinning); - } - - function restartChild() { - self.forceRestart = false; - process.nextTick(function () { - self.start(true); - }); - } - - self.times++; - - if (self.forceStop || (self.times >= self.max) - || (spinning && typeof self.spinSleepTime !== 'number') && !self.forceRestart) { - letChildDie(); - } - else if (spinning) { - setTimeout(restartChild, self.spinSleepTime); - } - else { - restartChild(); - } - }); - - return this; -}; - -// -// ### function trySpawn() -// Tries to spawn the target Forever child process. Depending on -// configuration, it checks the first argument of the options -// to see if the file exists. This is useful is you are -// trying to execute a script with an env: e.g. node myfile.js -// -Monitor.prototype.trySpawn = function () { - if (/node/.test(this.command) && this.checkFile && !this.childExists) { - try { - var stats = fs.statSync(this.args[0]); - this.childExists = true; - } - catch (ex) { - return false; - } - } - - this.spawnWith.cwd = this.cwd || this.spawnWith.cwd; - this.spawnWith.env = this._getEnv(); - - if (this.stdio) { - this.spawnWith.stdio = this.stdio; - } - - if (this.fork) { - if (!this.stdio) { - this.spawnWith.stdio = [ 'pipe', 'pipe', 'pipe', 'ipc' ]; - } - return spawn(this.command, this.args, this.spawnWith); - } - - return spawn(this.command, this.args, this.spawnWith); -}; - -// -// ### @data {Object} -// Responds with the appropriate information about -// this `Monitor` instance and it's associated child process. -// -Monitor.prototype.__defineGetter__('data', function () { - var self = this, - childData; - - if (!this.running) { - // - // TODO: Return settings from this forever instance - // with a state indicator that it is currently stopped. - // - return {}; - } - - childData = { - ctime: this.ctime, - command: this.command, - file: this.args[0], - foreverPid: process.pid, - logFile: this.logFile, - options: this.args.slice(1), - pid: this.child.pid, - silent: this.silent, - uid: this.uid, - spawnWith: this.spawnWith - }; - - ['pidFile', 'outFile', 'errFile', 'env', 'cwd'].forEach(function (key) { - if (self[key]) { - childData[key] = self[key]; - } - }); - - if (this.sourceDir) { - childData.sourceDir = this.sourceDir; - childData.file = childData.file.replace(this.sourceDir + '/', ''); - } - - this.childData = childData; - return this.childData; - - // - // Setup the forever process to listen to - // SIGINT and SIGTERM events so that we can - // clean up the *.pid file - // - // Remark: This should work, but the fd gets screwed up - // with the daemon process. - // - // process.on('SIGINT', function () { - // process.exit(0); - // }); - // - // process.on('SIGTERM', function () { - // process.exit(0); - // }); - // process.on('exit', function () { - // fs.unlinkSync(childPath); - // }); -}); - -// -// ### function restart () -// Restarts the target script associated with this instance. -// -Monitor.prototype.restart = function () { - this.forceRestart = true; - return this.kill(false); -}; - -// -// ### function stop () -// Stops the target script associated with this instance. Prevents it from auto-respawning -// -Monitor.prototype.stop = function () { - return this.kill(true); -}; - -// -// ### function kill (forceStop) -// #### @forceStop {boolean} Value indicating whether short circuit forever auto-restart. -// Kills the ChildProcess object associated with this instance. -// -Monitor.prototype.kill = function (forceStop) { - var self = this, - child = this.child; - - if (!child || !this.running) { - process.nextTick(function () { - self.emit('error', new Error('Cannot stop process that is not running.')); - }); - } - else { - // - // Set an instance variable here to indicate this - // stoppage is forced so that when `child.on('exit', ..)` - // fires in `Monitor.prototype.start` we can short circuit - // and prevent auto-restart - // - var toKill = [this.child.pid]; - if (forceStop) { - this.forceStop = true; - // - // If we have a time before we truly kill forcefully, set up a timer - // - if (this.killTTL) { - var timer = setTimeout(function () { - toKill.forEach(function (pid) { - try { - process.kill(pid, 'SIGKILL'); - } - catch (e) { - //conditions for races may exist, this is most likely an ESRCH - //these should be ignored, and then we should emit that it is dead - } - }); - - self.emit('stop', this.childData); - }, this.killTTL); - - child.on('exit', function () { - clearTimeout(timer); - }); - } - } - - common.kill(this.child.pid, this.killTree, function () { - self.emit('stop', self.childData); - }); - } - - return this; -}; - -// -// ### @private function _getEnv () -// Returns the environment variables that should be passed along -// to the target process spawned by this instance. -// -Monitor.prototype._getEnv = function () { - var self = this, - merged = {}; - - function addKey(key, source) { - merged[key] = source[key]; - } - - // - // Mixin the key:value pairs from `process.env` and the custom - // environment variables in `this._env`. - // - Object.keys(process.env).forEach(function (key) { - if (!self._hideEnv[key]) { - addKey(key, process.env); - } - }); - - Object.keys(this._env).forEach(function (key) { - addKey(key, self._env); - }); - - return merged; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/plugins/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/plugins/index.js deleted file mode 100644 index 1494db96..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/plugins/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * index.js: Built-in plugins for forever-monitor. - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -exports.logger = require('./logger'); -exports.watch = require('./watch'); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/plugins/logger.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/plugins/logger.js deleted file mode 100644 index b6a6299e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/plugins/logger.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * logger.js: Plugin for `Monitor` instances which adds stdout and stderr logging. - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var fs = require('fs'); - -// -// Name the plugin -// -exports.name = 'logger'; - -// -// ### function attach (options) -// #### @options {Object} Options for attaching to `Monitor` -// -// Attaches functionality for logging stdout and stderr to `Monitor` instances. -// -exports.attach = function (options) { - options = options || {}; - var monitor = this; - - if (options.outFile) { - monitor.stdout = options.stdout || fs.createWriteStream(options.outFile, { - flags: monitor.append ? 'a+' : 'w+', - encoding: 'utf8', - mode: 0644 - }); - } - - if (options.errFile) { - monitor.stderr = options.stderr || fs.createWriteStream(options.errFile, { - flags: monitor.append ? 'a+' : 'w+', - encoding: 'utf8', - mode: 0644 - }); - } - - monitor.on('start', startLogs); - monitor.on('restart', startLogs); - monitor.on('exit', function () { - if (monitor.stdout) { - monitor.stdout.destroySoon(); - } - - if (monitor.stderr) { - monitor.stderr.destroySoon(); - } - }); - - function startLogs(child, childData) { - if (monitor.child) { - monitor.child.stdout.on('data', function onStdout(data) { - monitor.emit('stdout', data); - }); - - monitor.child.stderr.on('data', function onStderr(data) { - monitor.emit('stderr', data); - }); - - if (!monitor.silent) { - monitor.child.stdout.pipe(process.stdout, { end: false }); - monitor.child.stderr.pipe(process.stderr, { end: false }); - } - - if (monitor.stdout) { - monitor.child.stdout.pipe(monitor.stdout, { end: false }); - } - - if (monitor.stderr) { - monitor.child.stderr.pipe(monitor.stderr, { end: false }); - } - } - } -}; - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/plugins/watch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/plugins/watch.js deleted file mode 100644 index 01809611..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/forever-monitor/plugins/watch.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * logger.js: Plugin for `Monitor` instances which adds file watching. - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var fs = require('fs'), - path = require('path'), - minimatch = require('minimatch'), - watch = require('watch'); - -exports.name = 'watch'; - -// -// ### @private function _watchFilter -// #### @file {string} File name -// Determines whether we should restart if `file` change (@mikeal's filtering -// is pretty messed up). -// -function watchFilter(fileName) { - if (this.watchIgnoreDotFiles && path.basename(fileName)[0] === '.') { - return false; - } - - for (var key in this.watchIgnorePatterns) { - if (minimatch(fileName, this.watchIgnorePatterns[key], { matchBase: this.watchDirectory })) { - return false; - } - } - - return true; -}; - -// -// ### function attach (options) -// #### @options {Object} Options for attaching to `Monitor` -// -// Attaches functionality for logging stdout and stderr to `Monitor` instances. -// -exports.attach = function () { - var monitor = this; - - fs.readFile(path.join(this.watchDirectory, '.foreverignore'), 'utf8', function (err, data) { - if (err) { - return monitor.emit('watch:error', { - message: 'Could not read .foreverignore file.', - error: err.message - }); - } - - Array.prototype.push.apply(monitor.watchIgnorePatterns, data.split('\n')); - }); - - watch.watchTree(this.watchDirectory, function (f, curr, prev) { - if (!(curr === null && prev === null && typeof f === 'object')) { - // - // `curr` == null && `prev` == null && typeof f == "object" when watch - // finishes walking the tree to add listeners. We don't need to know - // about it, so we simply ignore it (anything different means that - // some file changed/was removed/created - that's what we want to know). - // - if (watchFilter.call(monitor, f)) { - monitor.emit('watch:restart', { file: f, stat: curr }); - monitor.restart(); - } - } - }); -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/index.js deleted file mode 100644 index 024e2e9a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/lib/index.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * index.js: Top-level include for the `forever-monitor` module. - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var pkginfo = require('pkginfo'), - utile = require('utile'), - common = require('./forever-monitor/common'); - -exports.kill = common.kill; -exports.checkProcess = common.checkProcess; -exports.Monitor = require('./forever-monitor/monitor').Monitor; - -// -// Expose version through `pkginfo` -// -require('pkginfo')(module, 'version'); - -// -// ### function start (script, options) -// #### @script {string} Location of the script to run. -// #### @options {Object} Configuration for forever instance. -// Starts a script with forever -// -exports.start = function (script, options) { - if (!options.uid) { - options.uid = options.uid || utile.randomString(4).replace(/^\-/, '_'); - } - - return new exports.Monitor(script, options).start(); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/.npmignore deleted file mode 100644 index d567f619..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -npm-debug.log -.DS_Store - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/.travis.yml deleted file mode 100644 index 07926c48..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: node_js - -node_js: - - "0.8" - - "0.10" -notifications: - email: - - travis@nodejitsu.com - irc: "irc.freenode.org#nodejitsu" - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/LICENSE deleted file mode 100644 index 1f01e2b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Nodejitsu 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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/README.md deleted file mode 100644 index 959ebe1b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/README.md +++ /dev/null @@ -1,124 +0,0 @@ -# broadway [![Build Status](https://secure.travis-ci.org/flatiron/broadway.png)](http://travis-ci.org/flatiron/broadway) - -*Lightweight application extensibility and composition with a twist of feature -reflection.* - -## Example - -### app.js -```js -var broadway = require("broadway"); - -var app = new broadway.App(); - -// Passes the second argument to `helloworld.attach`. -app.use(require("./plugins/helloworld"), { "delimiter": "!" } ); - -app.init(function (err) { - if (err) { - console.log(err); - } -}); - -app.hello("world"); -``` - -### plugins/helloworld.js - -```js -// `exports.attach` gets called by broadway on `app.use` -exports.attach = function (options) { - - this.hello = function (world) { - console.log("Hello "+ world + options.delimiter || "."); - }; - -}; - -// `exports.init` gets called by broadway on `app.init`. -exports.init = function (done) { - - // This plugin doesn't require any initialization step. - return done(); - -}; -``` - -### run it! - -```bash -josh@onix:~/dev/broadway/examples$ node simple/app.js -Hello world! -josh@onix:~/dev/broadway/examples$ -``` - -## Installation - -### Installing npm (node package manager) -``` bash - $ curl http://npmjs.org/install.sh | sh -``` - -### Installing broadway -``` bash - $ [sudo] npm install broadway -``` - -## API - -### App#init(callback) - -Initialize application and it's plugins, `callback` will be called with null or -initialization error as first argument. - -### App#use(plugin, options) - -Attach plugin to application. `plugin` should conform to following interface: - -```javascript -var plugin = { - "name": "example-plugin", // Plugin's name - - "attach": function attach(options) { - // Called with plugin options once plugin attached to application - // `this` - is a reference to application - }, - - "detach": function detach() { - // Called when plugin detached from application - // (Only if plugin with same name was attached) - // `this` - is a reference to application - }, - - "init": function init(callback) { - // Called on application initialization - // App#init(callback) will be called once every plugin will call `callback` - // `this` - is a reference to application - } -}; -``` - -### App#on(event, callback) and App#emit(event, data) - -App inherits from [EventEmitter2][2], and many plugins build on this -functionality. - -#### Built-In Events: - -* `error:init`: Broadway emits this event when it throws an error while attempting to initialize. - -Read the [EventEmitter2][2] documentation for more information. - -## Tests -All tests are written with [vows][0] and should be run with [npm][1]: - -``` bash - $ npm test -``` - -#### [Charlie Robbins](http://nodejitsu.com) -#### License: MIT - -[0]: http://vowsjs.org -[1]: http://npmjs.org -[2]: https://github.com/hij1nx/EventEmitter2 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/bin/build b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/bin/build deleted file mode 100755 index ca128baf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/bin/build +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env node - -var Codesurgeon = require('codesurgeon').Codesurgeon; -var surgeon = new Codesurgeon; - -var path = require('path'); - -var root = path.join(__dirname, '..'); -var lib = path.join(root, 'lib', 'broadway'); - -// -// Distill and package the browser version. -// -surgeon - // - .configure({ - package: root + '/package.json', - owner: 'Nodejitsu, Inc (Using Codesurgeon).' - }) - .read( - path.join(root, 'node_modules', 'eventemitter2', 'lib', 'eventemitter2.js'), - path.join(lib, 'browser.js') - ) - // - // we want everything so far. specify extract with no - // parameters to get everything into the output buffer. - // - .extract() - // - // clear the input so far, but don't clear the output. - // - .clear('inputs') - // - // read the `app.js` file - // - .read( - path.join(lib, 'app.js') - ) - // - // the current input buffer contains stuff that we dont - // want in the browser build, so let's cherry pick from - // the buffer. - // - .extract( - 'App.prototype.init', - 'App.prototype.use', - 'App.prototype.remove', - 'App.prototype.inspect' - ) - // - // wrap everything that is in the current buffer with a - // closure so that we dont get any collisions with other - // libraries - // - .wrap() - // - // write the debuggable version of the file. This file will - // get renamed to include the version from the package.json - // - .write(root + '/build/broadway.js') - // - // now lets make a minified version for production use. - // - .uglify() - .write(root + '/build/broadway.min.js') -; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/browser/app.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/browser/app.js deleted file mode 100644 index 7851df3d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/browser/app.js +++ /dev/null @@ -1,12 +0,0 @@ - -var app = new App(); - -app.use(HelloWorld, { "delimiter": "!" } ); - -app.init(function (err) { - if (err) { - console.log(err); - } -}); - -app.hello("world"); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/browser/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/browser/index.html deleted file mode 100644 index 27b007f4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/browser/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - Example - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/browser/plugins/helloworld.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/browser/plugins/helloworld.js deleted file mode 100644 index 7c9afbed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/browser/plugins/helloworld.js +++ /dev/null @@ -1,23 +0,0 @@ - -window.HelloWorld = {}; - -// -// `exports.attach` gets called by broadway on `app.use` -// -HelloWorld.attach = function (options) { - - this.hello = function (world) { - console.log("Hello "+ world + options.delimiter || "."); - } -}; - -// -// `exports.init` gets called by broadway on `app.init`. -// -HelloWorld.init = function (done) { - - // - // This plugin doesn't require any initialization step. - // - return done(); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/nodejs/app.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/nodejs/app.js deleted file mode 100644 index ce89a599..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/nodejs/app.js +++ /dev/null @@ -1,17 +0,0 @@ -var broadway = require('../../'), - app = new broadway.App(); - -// Passes the second argument to `helloworld.attach`. -app.use(require("./plugins/helloworld"), { "delimiter": "!" } ); -app.use(broadway.plugins.log, { - logAll: true -}); - -app.init(function (err) { - if (err) { - console.log(err); - } -}); - -app.hello("world"); -app.emit('world:hello', { meta: 'is here' }); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/nodejs/plugins/helloworld.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/nodejs/plugins/helloworld.js deleted file mode 100644 index ed0738d7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/examples/nodejs/plugins/helloworld.js +++ /dev/null @@ -1,23 +0,0 @@ - -var HelloWorld = exports; - -// -// `exports.attach` gets called by broadway on `app.use` -// -HelloWorld.attach = function (options) { - - this.hello = function (world) { - console.log("Hello "+ world + options.delimiter || "."); - } -}; - -// -// `exports.init` gets called by broadway on `app.init`. -// -HelloWorld.init = function (done) { - - // - // This plugin doesn't require any initialization step. - // - return done(); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway.js deleted file mode 100644 index fc614e4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * broadway.js: Top-level include for the broadway module. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var path = require('path'), - utile = require('utile'); - -var broadway = exports; - -broadway.App = require('./broadway/app').App; -broadway.common = require('./broadway/common'); -broadway.features = require('./broadway/features'); -broadway.formats = require('nconf').formats; -broadway.plugins = utile.requireDirLazy(path.join(__dirname, 'broadway', 'plugins')); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/app.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/app.js deleted file mode 100644 index 4f9d2185..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/app.js +++ /dev/null @@ -1,225 +0,0 @@ -/* - * app.js: Core Application object for managing plugins and features in broadway - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var utile = require('utile'), - async = utile.async, - events = require('eventemitter2'), - bootstrapper = require('./bootstrapper'), - common = require('./common'), - features = require('./features'); - -var App = exports.App = function (options) { - // - // Setup options and `App` constants. - // - options = options || {}; - this.root = options.root; - this.delimiter = options.delimiter || '::'; - - // - // Inherit from `EventEmitter2` - // - events.EventEmitter2.call(this, { - delimiter: this.delimiter, - wildcard: true - }); - - // - // Setup other relevant options such as the plugins - // for this instance. - // - this.options = options; - this.env = options.env || process.env['NODE_ENV'] || 'development' - this.plugins = options.plugins || {}; - this.initialized = false; - this.bootstrapper = options.bootstrapper || bootstrapper; - this.initializers = {}; - this.initlist = []; - - // - // Bootstrap this instance - // - this.bootstrapper.bootstrap(this); -}; - -// -// Inherit from `EventEmitter2`. -// -utile.inherits(App, events.EventEmitter2); - -// -// ### function init (options, callback) -// #### @options {Object} **Optional** Additional options to initialize with. -// #### @callback {function} Continuation to respond to when complete. -// Initializes this instance by the following procedure: -// -// 1. Initializes all plugins (starting with `core`). -// 2. Creates all directories in `this.config.directories` (if any). -// 3. Ensures the files in the core directory structure conform to the -// features required by this application. -// -App.prototype.init = function (options, callback) { - if (!callback && typeof options === 'function') { - callback = options; - options = {}; - } - - if (this.initialized) { - return callback(); - } - - var self = this; - options = options || {}; - callback = callback || function () {}; - this.env = options.env || this.env; - this.options = common.mixin({}, this.options, options); - - function onComplete() { - self.initialized = true; - self.emit('init'); - callback(); - } - - function ensureFeatures (err) { - return err - ? onError(err) - : features.ensure(this, onComplete); - } - - function initPlugin(plugin, next) { - if (typeof self.initializers[plugin] === 'function') { - return self.initializers[plugin].call(self, function (err) { - if (err) { - return next(err); - } - - self.emit(['plugin', plugin, 'init']); - self.initializers[plugin] = true; - next(); - }); - } - - next(); - } - - function initPlugins() { - async.forEach(self.initlist, initPlugin, ensureFeatures); - } - - // - // Emit and respond with any errors that may short - // circuit the process. - // - function onError(err) { - self.emit(['error', 'init'], err); - callback(err); - } - - // - // Run the bootstrapper, initialize plugins, and - // ensure features for this instance. - // - this.bootstrapper.init(this, initPlugins); -}; - -// -// ### function use(plugin, callback) -// Attachs the plugin with the specific name to this `App` instance. -// -App.prototype.use = function (plugin, options, callback) { - options = options || {}; - - if (typeof plugin === 'undefined') { - console.log('Cannot load invalid plugin!'); - return callback && callback(new Error('Invalid plugin')); - } - - var name = plugin.name, - self = this; - - // If the plugin doesn't have a name, use itself as an identifier for the plugins hash. - if (!name) { - name = common.uuid(); - } - - if (this.plugins[name]) { - return callback && callback(); - } - - // - // Setup state on this instance for the specified plugin - // - this.plugins[name] = plugin; - this.options[name] = common.mixin({}, options, this.options[name] || {}); - - // - // Attach the specified plugin to this instance, extending - // the `App` with new functionality. - // - if (this.plugins[name].attach && options.attach !== false) { - this.plugins[name].attach.call(this, options); - } - - // - // Setup the initializer only if `options.init` is - // not false. This allows for some plugins to be lazy-loaded - // - if (options.init === false) { - return callback && callback(); - } - - if (!this.initialized) { - this.initializers[name] = plugin.init || true; - this.initlist.push(name); - return callback && callback(); - } - else if (plugin.init) { - plugin.init.call(this, function (err) { - var args = err - ? [['plugin', name, 'error'], err] - : [['plugin', name, 'init']]; - - self.emit.apply(self, args); - return callback && (err ? callback(err) : callback()); - }); - } -}; - -// -// ### function remove(name) -// Detaches the plugin with the specific name from this `App` instance. -// -App.prototype.remove = function (name) { - // if this is a plugin object set the name to the plugins name - if (name.name) { - name = name.name; - } - - if (this.plugins[name] && this.plugins[name].detach) { - this.plugins[name].detach.call(this); - } - - delete this.plugins[name]; - delete this.options[name]; - delete this.initializers[name]; - - var init = this.initlist.indexOf(name); - - if (init !== -1) { - this.initlist.splice(1, init); - } -} - -// -// ### function inspect () -// Inspects the modules and features used by the current -// application directory structure -// -App.prototype.inspect = function () { - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/bootstrapper.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/bootstrapper.js deleted file mode 100644 index f27dae8d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/bootstrapper.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * bootstrapper.js: Default logic for bootstrapping broadway applications. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var broadway = require('../broadway'); - -// -// ### bootstrap (app, callback) -// #### @app {broadway.App} Application to bootstrap -// #### @callback {function} Continuation to respond to when complete. -// Bootstraps the specified `app`. -// -exports.bootstrap = function (app) { - app.options['config'] = app.options['config'] || {}; - app.options['config'].init = false; - app.use(broadway.plugins.config); - - // - // Remove initializers run by the bootstrapper. - // - delete app.initializers['config']; - app.initlist.pop(); - - // - // Set the current environment in the config - // - app.config.set('env', app.env); -}; - -// -// ### bootstrap (app, callback) -// #### @app {broadway.App} Application to bootstrap -// #### @callback {function} Continuation to respond to when complete. -// Runs the initialization step of the bootstrapping process -// for the specified `app`. -// -exports.init = function (app, callback) { - broadway.plugins.config.init.call(app, function (err) { - if (err) { - return callback(err); - } - - if (app.config.get('handleExceptions')) { - app.use(broadway.plugins.exceptions, app.options['exceptions'] || {}); - } - - app.use(broadway.plugins.directories, app.options['directories'] || {}); - app.use(broadway.plugins.log, app.options['log'] || {}); - - // - // Ensure the `directories` and `log` plugins initialize before - // any other plugins. - // - app.initlist.unshift.apply( - app.initlist, - app.initlist.splice(-2, 2) - ); - - callback(); - }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/browser.js deleted file mode 100644 index 9ea14cf7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/browser.js +++ /dev/null @@ -1,75 +0,0 @@ - -/* - * browser.js: Browser specific functionality for broadway. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var id = 0; - -var common = { - mixin: function (target) { - var objs = Array.prototype.slice.call(arguments, 1); - objs.forEach(function (o) { - Object.keys(o).forEach(function (attr) { - var getter = o.__lookupGetter__(attr); - if (!getter) { - target[attr] = o[attr]; - } - else { - target.__defineGetter__(attr, getter); - } - }); - }); - - return target; - }, - uuid: function () { - return String(id++); - } -}; - -var App = exports.App = function (options) { - // - // Setup options and `App` constants. - // - var self = this; - options = options || {}; - this.root = options.root; - this.delimiter = options.delimiter || '::'; - - // - // Inherit from `EventEmitter2` - // - exports.EventEmitter2.call(this, { - delimiter: this.delimiter, - wildcard: true - }); - - // - // Setup other relevant options such as the plugins - // for this instance. - // - this.options = options; - this.plugins = options.plugins || {}; - this.initialized = false; - this.bootstrapper = { init: function (app, func) {} }; - this.initializers = {}; -}; - -var inherit = function (ctor, superCtor) { - ctor.super_ = superCtor; - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); -} - -inherit(exports.App, exports.EventEmitter2); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/common/directories.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/common/directories.js deleted file mode 100644 index 46a437f8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/common/directories.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * app.js: Common utility functions for working with directories - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var utile = require('utile'), - async = utile.async, - mkdirp = utile.mkdirp, - rimraf = utile.rimraf; - -var directories = exports; - -// -// ### function create (dirs, callback) -// #### @dirs {Object} Directories to create -// #### @callback {function} Continuation to respond to when complete -// Creates all of the specified `directories` in the current environment. -// -directories.create = function (dirs, callback) { - function createDir(dir, next) { - mkdirp(dir, 0755, function () { - next(null, dir); - }); - } - - if (!dirs) { - return callback(); - } - - async.mapSeries(Object.keys(dirs).map(function (key) { - return dirs[key] - }), createDir, callback); -}; - -// -// ### function remove (dirs, callback) -// #### @dirs {Object} Directories to remove -// #### @callback {function} Continuation to respond to when complete -// Removes all of the specified `directories` in the current environment. -// -directories.remove = function (dirs, callback) { - function removeDir (dir, next) { - rimraf(dir, function () { - next(null, dir); - }); - } - - if (!dirs) { - return callback(); - } - - async.mapSeries(Object.keys(dirs).map(function (key) { - return dirs[key] - }), removeDir, callback); -}; - -// -// ### function normalize (root, dirs) -// #### @keys {Object} Set of keys to normalize upon. -// #### @dirs {Object} Set of directories to normalize. -// Normalizes the specified `dirs` against the relative -// `root` of the application. -// -directories.normalize = function (keys, dirs) { - var normalized = {}; - - Object.keys(dirs).forEach(function (key) { - normalized[key] = dirs[key]; - Object.keys(keys).forEach(function (constant) { - normalized[key] = normalized[key].replace(constant, keys[constant]); - }); - }); - - return normalized; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/common/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/common/index.js deleted file mode 100644 index 81d38d9f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/common/index.js +++ /dev/null @@ -1,18 +0,0 @@ -/* - * common.js: Top-level include for the `common` module. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var common = module.exports = require('utile'); - -common.directories = require('./directories'); - -// A naive shared "unique ID" generator for cases where `plugin.name` is -// undefined. -var id = 0; -common.uuid = function () { - return String(id++); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/features/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/features/index.js deleted file mode 100644 index ae50e4ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/features/index.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * index.js: Top-level include for the features module. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -exports.ensure = function (app, callback) { - return callback(); -} - -exports.all = [ - { - name: 'Entry Point', - test: function (target, name) { - return typeof target.start === 'function' || - typeof target.createServer === 'function'; - }, - allExports: ['start', 'createServer', 'init', 'getRoutes'] - }, - { - name: 'Resource', - test: function (target, name) { - var methods = ['create', 'get', 'update', 'destroy'], - resource = target[capitalize(name)]; - - if (typeof resource !== 'function') { - return false; - } - - for (var i = 0; i < methods.length; i++) { - if (typeof resource[method] !== 'function') { - return false; - } - } - }, - allExports: ['addRoutes', 'init'] - }, - { - name: 'Configurator', - exports: ['config'], - }, - { - name: 'Serve Files', - exports: 'serve' - } -]; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/config.js deleted file mode 100644 index 9f9e0c48..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/config.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * config.js: Default configuration management plugin which attachs nconf to App instances - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var nconf = require('nconf'); - -// -// ### Name this plugin -// -exports.name = 'config'; - -// -// ### function attach (options) -// #### @options {Object} Options for this plugin -// Extends `this` (the application) with configuration functionality -// from `nconf`. -// -exports.attach = function (options) { - options = options || {}; - this.config = new nconf.Provider(options); - - // - // Setup a default store - // - this.config.use('literal'); - this.config.stores.literal.readOnly = false; -}; - -// -// ### function init (done) -// #### @done {function} Continuation to respond to when complete. -// Initalizes the `nconf.Provider` associated with this instance. -// -exports.init = function (done) { - // - // Remark: There should be code here for automated remote - // seeding and loading - // - this.config.load(function (err) { - return err ? done(err) : done(); - }); -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/directories.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/directories.js deleted file mode 100644 index 331f8b26..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/directories.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * directories.js: Plugin for creating directories for a required for a broadway App. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var common = require('../common'); - -// -// ### Name this plugin -// -exports.name = 'directories'; - -// -// ### function attach (options) -// #### @options {Object} Options for this plugin -// #### @done {function} Continuation to respond to when complete. -// Prepopulates the directory structure of `this` (the application). -// -exports.attach = function (options) { - options = options || {}; - - if (this.config) { - // - // Merge options with any pre-existing application config. - // - options = common.mixin({}, options, this.config.get('directories') || {}); - } - - options = common.directories.normalize({'#ROOT': this.root}, options); - this.options['directories'] = options; - - if (this.config) { - this.config.merge('directories', options); - } -}; - -// -// ### function init (done) -// #### @done {function} Continuation to respond to when complete. -// Creates the directories associated with this instance. -// -exports.init = function (done) { - common.directories.create(this.options['directories'], function (err) { - return err ? done(err) : done(); - }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/exceptions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/exceptions.js deleted file mode 100644 index 883d3945..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/exceptions.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * exceptions.js: Plugin responsible for logging all uncaughtExceptions in a flatiron App. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var winston = require('winston'), - common = require('../common'); - -var exceptions = exports; - -// -// ### Setup default state for the exceptions plugin -// -exceptions.name = 'exceptions'; -exceptions.initalized = false; - -var defaultConfig = exceptions.defaultConfig = { - console: { - colorize: false, - json: true, - level: 'silly' - } -}; - -// -// ### function attach (options) -// #### @options {Object} Options for this plugin -// Extends `this` the application with exception handling -// functionality from `winston`. -// -exceptions.attach = function (options) { - options = options || {}; - - if (this.config) { - options = common.mixin({}, options, this.config.get('exceptions') || {}); - } - - if (exceptions.initalized) { - return; - } - - var exceptionHandlers = []; - - // - // Create the exceptionHandlers defaulting to Console and Loggly. - // - exceptionHandlers.push(new winston.transports.Console(options.console || defaultConfig.console)); - - Object.keys(options).forEach(function (name) { - if (name === 'console') { - return; - } - - exceptionHandlers.push(new (winston.transports[common.capitalize(name)])(options[name])); - }); - - // - // Update the state of the plugin with the logger. - // - exceptions.logger = new winston.Logger({ exceptionHandlers: exceptionHandlers }); - exceptions.initalized = true; - - // - // Have the logger handle uncaught exceptions. - // - exceptions.logger.handleExceptions(); -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/inspect.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/inspect.js deleted file mode 100644 index 47bf803e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/inspect.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - * inspect.js: Plugin responsible for attaching inspection behavior using `cliff` and `eyes`. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -// -// ### Name this plugin -// -exports.name = 'inspect'; - -// -// ### function init (done) -// #### @done {function} Continuation to respond to when complete. -// Attaches inspection behavior through `cliff` and `eyes`. -// -exports.init = function (done) { - var namespace = 'default', - app = this; - - if (app.options['inspect'] && app.options['inspect'].namespace) { - namespace = app.options['inspect'].namespace; - } - - app.inspect = require('cliff'); - app.inspect.logger = app.log.get('namespace'); - done(); -}; - -// -// ### function detact() -// Removes inspection behavior exposed by this plugin. -// -exports.detach = function () { - if (this.inspect) { - delete this.inspect; - } -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/log.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/log.js deleted file mode 100644 index d9f703e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/lib/broadway/plugins/log.js +++ /dev/null @@ -1,209 +0,0 @@ -/* - * log.js: Default logging plugin which attachs winston to App instances - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var winston = require('winston'), - common = require('../common'); - -var log = exports; - -// -// ### Setup default state for the exceptions plugin -// -log.name = 'log'; -log.ignore = ['broadway']; - -// -// ### function attach (options) -// #### @options {Object} Options for this plugin -// Extends `this` (the application) with logging functionality from `winston`. -// -log.attach = function (options) { - options = options || {}; - - var app = this, - namespaces, - logAll, - level; - - if (this.config) { - // - // Merge options with any pre-existing application config. - // - options = common.mixin({}, options, this.config.get('log') || {}); - } - - // - // Setup namespaces and then remove them from - // `options` so they are not caught by `winston`. - // - namespaces = options.namespaces || {}; - delete options.namespaces; - - // - // Setup logAll and then remove them from - // `options` so they are not caught by `winston`. - // - logAll = options.logAll || false; - if (options.logAll) { - delete options.logAll; - } - - // - // Setup level and then remove them from - // `options` so they are not caught by `winston`. - // - level = options.level || false; - if (options.level) { - delete options.level; - } - - // - // Hoist up relevant logging functions onto the app - // if requested. - // - this.log = new winston.Container(options); - this.log.namespaces = namespaces; - this.log.get('default').extend(this.log); - - // - // Set the default console loglevel to options.level - // - this.log.get('default').transports.console.level = level || 'info'; - - Object.defineProperty(this.log, 'logAll', { - get: function () { - return this._logAll; - }, - set: function (val) { - if (val === this._logAll) { - // - // If the value is identical return - // - return; - } - - if (val) { - app.onAny(log.logEvent); - app.off(['log'], log.logEvent); - app.off(['log', '*'], log.logEvent); - app.off(['log', '*', '*'], log.logEvent); - } - else { - app.offAny(log.logEvent); - app.on(['log'], log.logEvent); - app.on(['log', '*'], log.logEvent); - app.on(['log', '*', '*'], log.logEvent); - } - - this._logAll = val; - } - }); - - // - // Listen to relevant `app` events and - // log them appropriately. - // - this.log.logAll = logAll; - - // - // Add any namespaced containers to this App instance. - // - Object.keys(this.log.namespaces).forEach(function (namespace) { - app.log.add(app.log.namespaces[namespace]); - }); -}; - -// -// ### function logEvent ([level], msg, meta) -// #### @msg {string} Message to log -// #### @meta {Object} **Optional** Metadata to log -// Logs the specified `msg` and `meta` according to -// the following conditions: -// -// #### `log` events -// 1. `log` - Logs to the default logger and level. -// 2. `log::[level]` - Logs to the default logger. -// 3. `log::[level]::[namespace]` - Logs to a namespaced logger. -// -// ### `[namespaced]` events -// If `app.log.logAll` is set, then find a logger at `namespace`, -// otherwise the default logger is used. -// -// 1. `[namespace]::**(level, msg, meta)` - Logs the event as the -// message to the logger for the specified namespace and level. -// 2. `[namespace]::[level]::**(msg, meta)` - Logs the event and -// the message to the logger for the specified namespace and level. -// -log.logEvent = function (/* level, msg, meta */) { - var parts = Array.isArray(this.event) ? this.event : this.event.split(this.delimiter), - ev = parts[0], - namespace, - logger, - level, - meta, - msg; - - if (log.ignore.indexOf(ev) !== -1) { - return; - } - - // - // Determine the `namespace` to log the event to - // - if (ev === 'log') { - namespace = parts[2] || 'default'; - logger = this.log.get('default'); - } - else if (this.log.logAll) { - namespace = this.log.namespaces[ev] ? this.log.namespaces[ev] : 'default'; - logger = this.log.get(namespace); - } - else { - return; - } - - // - // Parse arguments now that we have the logger. - // - Array.prototype.slice.call(arguments).forEach(function (a) { - switch (typeof a) { - case 'object': { - meta = a; - break; - } - case 'string': { - if (logger[a]) { - level = a; - } - else { - msg = a; - } - } - } - }); - - if (ev === 'log') { - level = parts[1] || level || 'info'; - } - else if (this.log.logAll) { - if (logger[parts[1]]) { - level = parts[1]; - parts.splice(1, 1); - } - } - - if (level in logger.levels === false) { - level = 'info'; - } - - parts = parts.join(this.delimiter); - meta = meta || {}; - msg = msg || parts; - logger.log(level, msg, meta); - this.emit(['broadway', 'logged'], level, msg, meta, parts); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/.npmignore deleted file mode 100644 index 5171c540..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -npm-debug.log \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/LICENSE deleted file mode 100644 index 56217cac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010 Nodejitsu 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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/README.md deleted file mode 100644 index a0f0cd81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/README.md +++ /dev/null @@ -1,227 +0,0 @@ -# cliff - -CLI output formatting tools: "Your CLI Formatting Friend". - -## Installation - -### Installing npm (node package manager) -``` - curl http://npmjs.org/install.sh | sh -``` - -### Installing cliff -``` - [sudo] npm install cliff -``` - -## Usage -There are a number of methods available in Cliff for common logging tasks in command-line tools. If you're looking for more usage, checkout the [examples in this repository][3]: - -1. Logging rows of data -2. Inspecting Objects - -### Logging rows of data - -**cliff.stringifyRows(rows[, colors])** - -Takes a set of Arrays and row headers and returns properly formatted and padded rows. Here's a sample: - -``` js - var cliff = require('../lib/cliff'); - - var rows = [ - ['Name', 'Flavor', 'Dessert'], - ['Alice', 'cherry', 'yogurt'], - ['Bob', 'carmel', 'apples'], - ['Joe', 'chocolate', 'cake'], - ['Nick', 'vanilla', 'ice cream'] - ]; - - console.log(cliff.stringifyRows(rows, ['red', 'blue', 'green'])); -``` - -![output from string-rows.js][string-rows] - -**cliff.putRows(level, rows[, colors])** - -The `putRows` method is a simple helper that takes a set of Arrays and row headers and logs properly formatted and padded rows (logs `stringifyRows` to [winston][0]). Here's a quick sample: - -``` js - var cliff = require('../lib/cliff'); - - var rows = [ - ['Name', 'Flavor', 'Dessert'], - ['Alice', 'cherry', 'yogurt'], - ['Bob', 'carmel', 'apples'], - ['Joe', 'chocolate', 'cake'], - ['Nick', 'vanilla', 'ice cream'] - ]; - - cliff.putRows('data', rows, ['red', 'blue', 'green']); -``` - -The resulting output on the command-line would be: - -![output from put-rows.js][put-rows] - -**cliff.stringifyObjectRows(objs, properties[, colors])** -*used to be: cliff.rowifyObjects(objs, properties, colors)* - -Takes a set of Objects and the properties to extract from them and returns properly formatted and padded rows. Here's a sample: - -``` js - var cliff = require('../lib/cliff'); - - var objs = [], obj = { - name: "bazz", - address: "1234 Nowhere Dr.", - }; - - for (var i = 0; i < 10; i++) { - objs.push({ - name: obj.name, - address: obj.address, - id: Math.random().toString() - }); - } - - console.log(cliff.stringifyObjectRows(objs, ['id', 'name', 'address'], ['red', 'blue', 'green'])); -``` - -![output from string-object-rows.js][string-object-rows] - -**cliff.putObjectRows(level, objs, properties[, colors])** - -Takes a set of Objects and the properties to extract from them and it will log to the console. (it prints `stringifyObjectRows` with [winston][0]). Here's a sample: - -``` js - var cliff = require('../lib/cliff'); - - var objs = [], obj = { - name: "bazz", - address: "1234 Nowhere Dr.", - }; - - for (var i = 0; i < 10; i++) { - objs.push({ - name: obj.name, - address: obj.address, - id: Math.random().toString() - }); - } - - cliff.putObjectRows('data', objs, ['id', 'name', 'address']); -``` - -![output from string-object-rows.js][string-object-rows] - -**Colors Parameter** - -The `colors` parameter is an array that colors the first row. It uses the [colors.js][2]. You can use any of those. - -``` js - var cliff = require('../lib/cliff'); - - var rows = [ - ['Name', 'Flavor', 'Dessert'], - ['Alice'.grey, 'cherry'.cyan, 'yogurt'.yellow], - ['Bob'.magenta, 'carmel'.rainbow, 'apples'.white], - ['Joe'.italic, 'chocolate'.underline, 'cake'.inverse], - ['Nick'.bold, 'vanilla', 'ice cream'] - ]; - - cliff.putRows('data', rows, ['red', 'blue', 'green']); -``` - -The resulting output on the command-line would be: - -![output from puts-rows-colors.js][put-rows-colors] - -### Inspecting Objects - -**cliff.inspect(obj)** - -The `inspect` method is a lightweight wrapper to a pre-configured [eyes][1] inspector. If you wish to change the coloring of objects that are logged using `cliff` you only need to override `cliff.inspect` with a new [eyes][1] inspector. Here is how to use it: - -``` js - var cliff = require('../lib/cliff'); - - console.log(cliff.inspect({ - literal: "bazz", - arr: [ - "one", - 2, - ], - obj: { - host: "localhost", - port: 5984, - auth: { - username: "admin", - password: "password" - } - } - })); -``` - -![output from inspect.js][inspect] - -**cliff.putObject(obj, [rewriters, padding])** - -The `putObject` method is a simple helper function for prefixing and styling inspected object output from [eyes][1]. Here's a quick sample: - -``` js -var cliff = require('cliff'); - -cliff.putObject({ - literal: "bazz", - arr: [ - "one", - 2, - ], - obj: { - host: "localhost", - port: 5984, - auth: { - username: "admin", - password: "password" - } - } -}); -``` - -The resulting output on the command-line would be: - -![output from put-object.js][put-object] - -## Run Tests - -All of the cliff tests are written in [vows][4], and cover all of the use cases described above. - -``` - npm test -``` - -## Motivation - -Cliff is the swiss army knife of CLI formatting tools. It is based on highly flexible and powerful libraries: - -* [winston][0]: A multi-transport async logging library for node.js -* [eyes][1]: A customizable value inspector for node.js -* [colors][2]: Get colors in your node.js console like what - - -#### Author: [Charlie Robbins](http://twitter.com/indexzero) - -[0]: http://github.com/indexzero/winston -[1]: http://github.com/cloudhead/eyes.js -[2]: http://github.com/marak/colors.js -[3]: http://github.com/flatiron/cliff/tree/master/examples -[4]: http://vowsjs.org - -[inspect]: https://github.com/flatiron/cliff/raw/master/assets/inspect.png -[put-object-rows]: https://github.com/flatiron/cliff/raw/master/assets/put-object-rows.png -[put-object]: https://github.com/flatiron/cliff/raw/master/assets/put-object.png -[put-rows-colors]: https://github.com/flatiron/cliff/raw/master/assets/put-rows-colors.png -[put-rows]: https://github.com/flatiron/cliff/raw/master/assets/put-rows.png -[string-object-rows]: https://github.com/flatiron/cliff/raw/master/assets/string-object-rows.png -[string-rows]: https://github.com/flatiron/cliff/raw/master/assets/string-rows.png \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/inspect.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/inspect.png deleted file mode 100755 index 15f0eb08..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/inspect.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-object-rows.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-object-rows.png deleted file mode 100755 index 044270f3..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-object-rows.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-object.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-object.png deleted file mode 100755 index 11388548..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-object.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-rows-colors.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-rows-colors.png deleted file mode 100755 index 93252ff5..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-rows-colors.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-rows.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-rows.png deleted file mode 100755 index 6f045d73..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/put-rows.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/string-object-rows.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/string-object-rows.png deleted file mode 100755 index 0d383a26..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/string-object-rows.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/string-rows.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/string-rows.png deleted file mode 100755 index 92605072..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/assets/string-rows.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/inspect.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/inspect.js deleted file mode 100644 index eb45927a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/inspect.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - * put-object.js: Example usage for `cliff.putObject`. - * - * (C) 2010, Nodejitsu Inc. - * - */ - -var cliff = require('../lib/cliff'); - -console.log(cliff.inspect({ - literal: "bazz", - arr: [ - "one", - 2, - ], - obj: { - host: "localhost", - port: 5984, - auth: { - username: "admin", - password: "password" - } - } -})); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-object-rows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-object-rows.js deleted file mode 100644 index d7e8a802..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-object-rows.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * put-object-rows.js: Example usage for `cliff.putObjectRows`. - * - * (C) 2010, Nodejitsu Inc. - * - */ - -var cliff = require('../lib/cliff'); - -var objs = [], obj = { - name: "bazz", - address: "1234 Nowhere Dr.", -}; - -for (var i = 0; i < 10; i++) { - objs.push({ - name: obj.name, - address: obj.address, - id: Math.random().toString() - }); -} - -cliff.putObjectRows('data', objs, ['id', 'name', 'address']); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-object.js deleted file mode 100644 index 7821514b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-object.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - * put-object.js: Example usage for `cliff.putObject`. - * - * (C) 2010, Nodejitsu Inc. - * - */ - -var cliff = require('../lib/cliff'); - -cliff.putObject({ - literal: "bazz", - arr: [ - "one", - 2, - ], - obj: { - host: "localhost", - port: 5984, - auth: { - username: "admin", - password: "password" - } - } -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-rows-colors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-rows-colors.js deleted file mode 100644 index ac46d845..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-rows-colors.js +++ /dev/null @@ -1,12 +0,0 @@ -var cliff = require('../lib/cliff'); - -var rows = [ - ['Name', 'Flavor', 'Dessert'], - ['Alice'.grey, 'cherry'.cyan, 'yogurt'.yellow], - ['Bob'.magenta, 'carmel'.rainbow, 'apples'.white], - ['Joe'.italic, 'chocolate'.underline, 'cake'.inverse], - ['Nick'.bold, 'vanilla', 'ice cream'] -]; - -cliff.putRows('data', rows, ['red', 'blue', 'green']); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-rows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-rows.js deleted file mode 100644 index 4de10389..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/put-rows.js +++ /dev/null @@ -1,11 +0,0 @@ -var cliff = require('../lib/cliff'); - -var rows = [ - ['Name', 'Flavor', 'Dessert'], - ['Alice', 'cherry', 'yogurt'], - ['Bob', 'carmel', 'apples'], - ['Joe', 'chocolate', 'cake'], - ['Nick', 'vanilla', 'ice cream'] -]; - -cliff.putRows('data', rows, ['red', 'blue', 'green']); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/string-object-rows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/string-object-rows.js deleted file mode 100644 index 7f1bd9b9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/string-object-rows.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * put-object-rows.js: Example usage for `cliff.putObjectRows`. - * - * (C) 2010, Nodejitsu Inc. - * - */ - -var cliff = require('../lib/cliff'); - -var objs = [], obj = { - name: "bazz", - address: "1234 Nowhere Dr.", -}; - -for (var i = 0; i < 10; i++) { - objs.push({ - name: obj.name, - address: obj.address, - id: Math.random().toString() - }); -} - -console.log(cliff.stringifyObjectRows(objs, ['id', 'name', 'address'], ['red', 'blue', 'green'])); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/string-rows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/string-rows.js deleted file mode 100644 index a4aaa81f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/examples/string-rows.js +++ /dev/null @@ -1,11 +0,0 @@ -var cliff = require('../lib/cliff'); - -var rows = [ - ['Name', 'Flavor', 'Dessert'], - ['Alice', 'cherry', 'yogurt'], - ['Bob', 'carmel', 'apples'], - ['Joe', 'chocolate', 'cake'], - ['Nick', 'vanilla', 'ice cream'] -]; - -console.log(cliff.stringifyRows(rows, ['red', 'blue', 'green'])); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/lib/cliff.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/lib/cliff.js deleted file mode 100644 index c9fd723a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/lib/cliff.js +++ /dev/null @@ -1,280 +0,0 @@ -/* - * cliff.js: CLI output formatting tools: "Your CLI Formatting Friend". - * - * (C) 2010, Nodejitsu Inc. - * - */ - -var colors = require('colors'), - eyes = require('eyes'), - winston = require('winston'); - -var cliff = exports, - logger; - -cliff.__defineGetter__('logger', function () { - delete cliff.logger; - return cliff.logger = logger; -}); - -cliff.__defineSetter__('logger', function (val) { - logger = val; - - // - // Setup winston to use the `cli` formats - // - if (logger.cli) { - logger.cli(); - } -}); - -// -// Set the default logger for cliff. -// -cliff.logger = new winston.Logger({ - transports: [new winston.transports.Console()] -}); - -// -// Expose a default `eyes` inspector. -// -cliff.inspector = eyes.inspector; -cliff.inspect = eyes.inspector({ stream: null, - styles: { // Styles applied to stdout - all: null, // Overall style applied to everything - label: 'underline', // Inspection labels, like 'array' in `array: [1, 2, 3]` - other: 'inverted', // Objects which don't have a literal representation, such as functions - key: 'grey', // The keys in object literals, like 'a' in `{a: 1}` - special: 'grey', // null, undefined... - number: 'blue', // 0, 1, 2... - bool: 'magenta', // true false - regexp: 'green' // /\d+/ - } -}); - -// -// ### function extractFrom (obj, properties) -// #### @obj {Object} Object to extract properties from. -// #### @properties {Array} List of properties to output. -// Creates an array representing the values for `properties` in `obj`. -// -cliff.extractFrom = function (obj, properties) { - return properties.map(function (p) { - return obj[p]; - }); -}; - -// -// ### function columnMajor (rows) -// #### @rows {ArrayxArray} Row-major Matrix to transpose -// Transposes the row-major Matrix, represented as an array of rows, -// into column major form (i.e. an array of columns). -// -cliff.columnMajor = function (rows) { - var columns = []; - - rows.forEach(function (row) { - for (var i = 0; i < row.length; i += 1) { - if (!columns[i]) { - columns[i] = []; - } - - columns[i].push(row[i]); - } - }); - - return columns; -}; - -// -// ### arrayLengths (arrs) -// #### @arrs {ArrayxArray} Arrays to calculate lengths for -// Creates an array with values each representing the length -// of an array in the set provided. -// -cliff.arrayLengths = function (arrs) { - var i, lengths = []; - for (i = 0; i < arrs.length; i += 1) { - lengths.push(longestElement(arrs[i].map(cliff.stringifyLiteral))); - } - return lengths; -}; - -// -// ### function stringifyRows (rows, colors) -// #### @rows {ArrayxArray} Matrix of properties to output in row major form -// #### @colors {Array} Set of colors to use for the headers -// Outputs the specified `rows` as fixed-width columns, adding -// colorized headers if `colors` are supplied. -// -cliff.stringifyRows = function (rows, colors) { - var lengths, columns, output = [], headers; - - columns = cliff.columnMajor(rows); - lengths = cliff.arrayLengths(columns); - - function stringifyRow(row, colorize) { - var rowtext = '', padding, item, i, length; - for (i = 0; i < row.length; i += 1) { - item = cliff.stringifyLiteral(row[i]); - item = colorize ? item[colors[i]] : item; - length = realLength(item); - padding = length < lengths[i] ? lengths[i] - length + 2 : 2; - rowtext += item + new Array(padding).join(' '); - } - - output.push(rowtext); - } - - // If we were passed colors, then assume the first row - // is the headers for the rows - if (colors) { - headers = rows.splice(0, 1)[0]; - stringifyRow(headers, true); - } - - rows.forEach(function (row) { - stringifyRow(row, false); - }); - - return output.join('\n'); -}; - -// -// ### function rowifyObjects (objs, properties, colors) -// #### @objs {Array} List of objects to create output for -// #### @properties {Array} List of properties to output -// #### @colors {Array} Set of colors to use for the headers -// Extracts the lists of `properties` from the specified `objs` -// and formats them according to `cliff.stringifyRows`. -// -cliff.stringifyObjectRows = cliff.rowifyObjects = function (objs, properties, colors) { - var rows = [properties].concat(objs.map(function (obj) { - return cliff.extractFrom(obj, properties); - })); - - return cliff.stringifyRows(rows, colors); -}; - -// -// ### function putRows (level, rows, colors) -// #### @level {String} Log-level to use -// #### @rows {Array} Array of rows to log at the specified level -// #### @colors {Array} Set of colors to use for the specified row(s) headers. -// Logs the stringified table result from `rows` at the appropriate `level` using -// `cliff.logger`. If `colors` are supplied then use those when stringifying `rows`. -// -cliff.putRows = function (level, rows, colors) { - cliff.stringifyRows(rows, colors).split('\n').forEach(function (str) { - logger.log(level, str); - }); -}; - -// -// ### function putObjectRows (level, rows, colors) -// #### @level {String} Log-level to use -// #### @objs {Array} List of objects to create output for -// #### @properties {Array} List of properties to output -// #### @colors {Array} Set of colors to use for the headers -// Logs the stringified table result from `objs` at the appropriate `level` using -// `cliff.logger`. If `colors` are supplied then use those when stringifying `objs`. -// -cliff.putObjectRows = function (level, objs, properties, colors) { - cliff.rowifyObjects(objs, properties, colors).split('\n').forEach(function (str) { - logger.log(level, str); - }); -}; - -// -// ### function putObject (obj, [rewriters, padding]) -// #### @obj {Object} Object to log to the command line -// #### @rewriters {Object} **Optional** Set of methods to rewrite certain object keys -// #### @padding {Number} **Optional** Length of padding to put around the output. -// Inspects the object `obj` on the command line rewriting any properties which match -// keys in `rewriters` if any. Adds additional `padding` if supplied. -// -cliff.putObject = function (/*obj, [rewriters, padding] */) { - var args = Array.prototype.slice.call(arguments), - obj = args.shift(), - padding = typeof args[args.length - 1] === 'number' && args.pop(), - rewriters = typeof args[args.length -1] === 'object' && args.pop(), - keys = Object.keys(obj).sort(), - sorted = {}, - matchers = {}, - inspected; - - padding = padding || 0; - rewriters = rewriters || {}; - - function pad () { - for (var i = 0; i < padding / 2; i++) { - logger.data(''); - } - } - - keys.forEach(function (key) { - sorted[key] = obj[key]; - }); - - inspected = cliff.inspect(sorted); - - Object.keys(rewriters).forEach(function (key) { - matchers[key] = new RegExp(key); - }); - - pad(); - inspected.split('\n').forEach(function (line) { - Object.keys(rewriters).forEach(function (key) { - if (matchers[key].test(line)) { - line = rewriters[key](line); - } - }); - logger.data(line); - }); - pad(); -}; - -cliff.stringifyLiteral = function stringifyLiteral (literal) { - switch (cliff.typeOf(literal)) { - case 'number' : return literal + ''; - case 'null' : return 'null'; - case 'undefined': return 'undefined'; - case 'boolean' : return literal + ''; - default : return literal; - } -}; - -cliff.typeOf = function typeOf(value) { - var s = typeof(value), - types = [Object, Array, String, RegExp, Number, Function, Boolean, Date]; - - if (s === 'object' || s === 'function') { - if (value) { - types.forEach(function (t) { - if (value instanceof t) { - s = t.name.toLowerCase(); - } - }); - } else { - s = 'null'; - } - } - - return s; -}; - -function realLength(str) { - return ("" + str).replace(/\u001b\[\d+m/g,'').length; -} - -function longestElement(a) { - var l = 0; - for (var i = 0; i < a.length; i++) { - var new_l = realLength(a[i]); - if (l < new_l) { - l = new_l; - } - } - - return l; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/MIT-LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/MIT-LICENSE.txt deleted file mode 100644 index 7dca1070..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/MIT-LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2010 - -Marak Squires -Alexis Sellier (cloudhead) - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/ReadMe.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/ReadMe.md deleted file mode 100644 index 0eda52db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/ReadMe.md +++ /dev/null @@ -1,77 +0,0 @@ -# colors.js - get color and style in your node.js console ( and browser ) like what - - - - -## Installation - - npm install colors - -## colors and styles! - -- bold -- italic -- underline -- inverse -- yellow -- cyan -- white -- magenta -- green -- red -- grey -- blue -- rainbow -- zebra -- random - -## Usage - -``` js -var colors = require('./colors'); - -console.log('hello'.green); // outputs green text -console.log('i like cake and pies'.underline.red) // outputs red underlined text -console.log('inverse the color'.inverse); // inverses the color -console.log('OMG Rainbows!'.rainbow); // rainbow (ignores spaces) -``` - -# Creating Custom themes - -```js - -var colors = require('colors'); - -colors.setTheme({ - silly: 'rainbow', - input: 'grey', - verbose: 'cyan', - prompt: 'grey', - info: 'green', - data: 'grey', - help: 'cyan', - warn: 'yellow', - debug: 'blue', - error: 'red' -}); - -// outputs red text -console.log("this is an error".error); - -// outputs yellow text -console.log("this is a warning".warn); -``` - - -### Contributors - -Marak (Marak Squires) -Alexis Sellier (cloudhead) -mmalecki (Maciej Małecki) -nicoreed (Nico Reed) -morganrallen (Morgan Allen) -JustinCampbell (Justin Campbell) -ded (Dustin Diaz) - - -#### , Marak Squires , Justin Campbell, Dustin Diaz (@ded) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/colors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/colors.js deleted file mode 100644 index 7a537d8d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/colors.js +++ /dev/null @@ -1,342 +0,0 @@ -/* -colors.js - -Copyright (c) 2010 - -Marak Squires -Alexis Sellier (cloudhead) - -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. - -*/ - -var isHeadless = false; - -if (typeof module !== 'undefined') { - isHeadless = true; -} - -if (!isHeadless) { - var exports = {}; - var module = {}; - var colors = exports; - exports.mode = "browser"; -} else { - exports.mode = "console"; -} - -// -// Prototypes the string object to have additional method calls that add terminal colors -// -var addProperty = function (color, func) { - exports[color] = function (str) { - return func.apply(str); - }; - String.prototype.__defineGetter__(color, func); -}; - -function stylize(str, style) { - - var styles; - - if (exports.mode === 'console') { - styles = { - //styles - 'bold' : ['\x1B[1m', '\x1B[22m'], - 'italic' : ['\x1B[3m', '\x1B[23m'], - 'underline' : ['\x1B[4m', '\x1B[24m'], - 'inverse' : ['\x1B[7m', '\x1B[27m'], - 'strikethrough' : ['\x1B[9m', '\x1B[29m'], - //text colors - //grayscale - 'white' : ['\x1B[37m', '\x1B[39m'], - 'grey' : ['\x1B[90m', '\x1B[39m'], - 'black' : ['\x1B[30m', '\x1B[39m'], - //colors - 'blue' : ['\x1B[34m', '\x1B[39m'], - 'cyan' : ['\x1B[36m', '\x1B[39m'], - 'green' : ['\x1B[32m', '\x1B[39m'], - 'magenta' : ['\x1B[35m', '\x1B[39m'], - 'red' : ['\x1B[31m', '\x1B[39m'], - 'yellow' : ['\x1B[33m', '\x1B[39m'], - //background colors - //grayscale - 'whiteBG' : ['\x1B[47m', '\x1B[49m'], - 'greyBG' : ['\x1B[49;5;8m', '\x1B[49m'], - 'blackBG' : ['\x1B[40m', '\x1B[49m'], - //colors - 'blueBG' : ['\x1B[44m', '\x1B[49m'], - 'cyanBG' : ['\x1B[46m', '\x1B[49m'], - 'greenBG' : ['\x1B[42m', '\x1B[49m'], - 'magentaBG' : ['\x1B[45m', '\x1B[49m'], - 'redBG' : ['\x1B[41m', '\x1B[49m'], - 'yellowBG' : ['\x1B[43m', '\x1B[49m'] - }; - } else if (exports.mode === 'browser') { - styles = { - //styles - 'bold' : ['', ''], - 'italic' : ['', ''], - 'underline' : ['', ''], - 'inverse' : ['', ''], - 'strikethrough' : ['', ''], - //text colors - //grayscale - 'white' : ['', ''], - 'grey' : ['', ''], - 'black' : ['', ''], - //colors - 'blue' : ['', ''], - 'cyan' : ['', ''], - 'green' : ['', ''], - 'magenta' : ['', ''], - 'red' : ['', ''], - 'yellow' : ['', ''], - //background colors - //grayscale - 'whiteBG' : ['', ''], - 'greyBG' : ['', ''], - 'blackBG' : ['', ''], - //colors - 'blueBG' : ['', ''], - 'cyanBG' : ['', ''], - 'greenBG' : ['', ''], - 'magentaBG' : ['', ''], - 'redBG' : ['', ''], - 'yellowBG' : ['', ''] - }; - } else if (exports.mode === 'none') { - return str + ''; - } else { - console.log('unsupported mode, try "browser", "console" or "none"'); - } - return styles[style][0] + str + styles[style][1]; -} - -function applyTheme(theme) { - - // - // Remark: This is a list of methods that exist - // on String that you should not overwrite. - // - var stringPrototypeBlacklist = [ - '__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__', 'charAt', 'constructor', - 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf', 'charCodeAt', - 'indexOf', 'lastIndexof', 'length', 'localeCompare', 'match', 'replace', 'search', 'slice', 'split', 'substring', - 'toLocaleLowerCase', 'toLocaleUpperCase', 'toLowerCase', 'toUpperCase', 'trim', 'trimLeft', 'trimRight' - ]; - - Object.keys(theme).forEach(function (prop) { - if (stringPrototypeBlacklist.indexOf(prop) !== -1) { - console.log('warn: '.red + ('String.prototype' + prop).magenta + ' is probably something you don\'t want to override. Ignoring style name'); - } - else { - if (typeof(theme[prop]) === 'string') { - addProperty(prop, function () { - return exports[theme[prop]](this); - }); - } - else { - addProperty(prop, function () { - var ret = this; - for (var t = 0; t < theme[prop].length; t++) { - ret = exports[theme[prop][t]](ret); - } - return ret; - }); - } - } - }); -} - - -// -// Iterate through all default styles and colors -// -var x = ['bold', 'underline', 'strikethrough', 'italic', 'inverse', 'grey', 'black', 'yellow', 'red', 'green', 'blue', 'white', 'cyan', 'magenta', 'greyBG', 'blackBG', 'yellowBG', 'redBG', 'greenBG', 'blueBG', 'whiteBG', 'cyanBG', 'magentaBG']; -x.forEach(function (style) { - - // __defineGetter__ at the least works in more browsers - // http://robertnyman.com/javascript/javascript-getters-setters.html - // Object.defineProperty only works in Chrome - addProperty(style, function () { - return stylize(this, style); - }); -}); - -function sequencer(map) { - return function () { - if (!isHeadless) { - return this.replace(/( )/, '$1'); - } - var exploded = this.split(""), i = 0; - exploded = exploded.map(map); - return exploded.join(""); - }; -} - -var rainbowMap = (function () { - var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta']; //RoY G BiV - return function (letter, i, exploded) { - if (letter === " ") { - return letter; - } else { - return stylize(letter, rainbowColors[i++ % rainbowColors.length]); - } - }; -})(); - -exports.themes = {}; - -exports.addSequencer = function (name, map) { - addProperty(name, sequencer(map)); -}; - -exports.addSequencer('rainbow', rainbowMap); -exports.addSequencer('zebra', function (letter, i, exploded) { - return i % 2 === 0 ? letter : letter.inverse; -}); - -exports.setTheme = function (theme) { - if (typeof theme === 'string') { - try { - exports.themes[theme] = require(theme); - applyTheme(exports.themes[theme]); - return exports.themes[theme]; - } catch (err) { - console.log(err); - return err; - } - } else { - applyTheme(theme); - } -}; - - -addProperty('stripColors', function () { - return ("" + this).replace(/\x1B\[\d+m/g, ''); -}); - -// please no -function zalgo(text, options) { - var soul = { - "up" : [ - '̍', '̎', '̄', '̅', - '̿', '̑', '̆', '̐', - '͒', '͗', '͑', '̇', - '̈', '̊', '͂', '̓', - '̈', '͊', '͋', '͌', - '̃', '̂', '̌', '͐', - '̀', '́', '̋', '̏', - '̒', '̓', '̔', '̽', - '̉', 'ͣ', 'ͤ', 'ͥ', - 'ͦ', 'ͧ', 'ͨ', 'ͩ', - 'ͪ', 'ͫ', 'ͬ', 'ͭ', - 'ͮ', 'ͯ', '̾', '͛', - '͆', '̚' - ], - "down" : [ - '̖', '̗', '̘', '̙', - '̜', '̝', '̞', '̟', - '̠', '̤', '̥', '̦', - '̩', '̪', '̫', '̬', - '̭', '̮', '̯', '̰', - '̱', '̲', '̳', '̹', - '̺', '̻', '̼', 'ͅ', - '͇', '͈', '͉', '͍', - '͎', '͓', '͔', '͕', - '͖', '͙', '͚', '̣' - ], - "mid" : [ - '̕', '̛', '̀', '́', - '͘', '̡', '̢', '̧', - '̨', '̴', '̵', '̶', - '͜', '͝', '͞', - '͟', '͠', '͢', '̸', - '̷', '͡', ' ҉' - ] - }, - all = [].concat(soul.up, soul.down, soul.mid), - zalgo = {}; - - function randomNumber(range) { - var r = Math.floor(Math.random() * range); - return r; - } - - function is_char(character) { - var bool = false; - all.filter(function (i) { - bool = (i === character); - }); - return bool; - } - - function heComes(text, options) { - var result = '', counts, l; - options = options || {}; - options["up"] = options["up"] || true; - options["mid"] = options["mid"] || true; - options["down"] = options["down"] || true; - options["size"] = options["size"] || "maxi"; - text = text.split(''); - for (l in text) { - if (is_char(l)) { - continue; - } - result = result + text[l]; - counts = {"up" : 0, "down" : 0, "mid" : 0}; - switch (options.size) { - case 'mini': - counts.up = randomNumber(8); - counts.min = randomNumber(2); - counts.down = randomNumber(8); - break; - case 'maxi': - counts.up = randomNumber(16) + 3; - counts.min = randomNumber(4) + 1; - counts.down = randomNumber(64) + 3; - break; - default: - counts.up = randomNumber(8) + 1; - counts.mid = randomNumber(6) / 2; - counts.down = randomNumber(8) + 1; - break; - } - - var arr = ["up", "mid", "down"]; - for (var d in arr) { - var index = arr[d]; - for (var i = 0 ; i <= counts[index]; i++) { - if (options[index]) { - result = result + soul[index][randomNumber(soul[index].length)]; - } - } - } - } - return result; - } - return heComes(text); -} - - -// don't summon zalgo -addProperty('zalgo', function () { - return zalgo(this); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/example.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/example.html deleted file mode 100644 index 7a2ae605..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/example.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - Colors Example - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/example.js deleted file mode 100644 index b1e03a4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/example.js +++ /dev/null @@ -1,77 +0,0 @@ -var colors = require('./colors'); - -//colors.mode = "browser"; - -var test = colors.red("hopefully colorless output"); -console.log('Rainbows are fun!'.rainbow); -console.log('So '.italic + 'are'.underline + ' styles! '.bold + 'inverse'.inverse); // styles not widely supported -console.log('Chains are also cool.'.bold.italic.underline.red); // styles not widely supported -//console.log('zalgo time!'.zalgo); -console.log(test.stripColors); -console.log("a".grey + " b".black); -console.log("Zebras are so fun!".zebra); -console.log('background color attack!'.black.whiteBG) - -// -// Remark: .strikethrough may not work with Mac OS Terminal App -// -console.log("This is " + "not".strikethrough + " fun."); -console.log(colors.rainbow('Rainbows are fun!')); -console.log(colors.italic('So ') + colors.underline('are') + colors.bold(' styles! ') + colors.inverse('inverse')); // styles not widely supported -console.log(colors.bold(colors.italic(colors.underline(colors.red('Chains are also cool.'))))); // styles not widely supported -//console.log(colors.zalgo('zalgo time!')); -console.log(colors.stripColors(test)); -console.log(colors.grey("a") + colors.black(" b")); - -colors.addSequencer("america", function(letter, i, exploded) { - if(letter === " ") return letter; - switch(i%3) { - case 0: return letter.red; - case 1: return letter.white; - case 2: return letter.blue; - } -}); - -colors.addSequencer("random", (function() { - var available = ['bold', 'underline', 'italic', 'inverse', 'grey', 'yellow', 'red', 'green', 'blue', 'white', 'cyan', 'magenta']; - - return function(letter, i, exploded) { - return letter === " " ? letter : letter[available[Math.round(Math.random() * (available.length - 1))]]; - }; -})()); - -console.log("AMERICA! F--K YEAH!".america); -console.log("So apparently I've been to Mars, with all the little green men. But you know, I don't recall.".random); - -// -// Custom themes -// - -// Load theme with JSON literal -colors.setTheme({ - silly: 'rainbow', - input: 'grey', - verbose: 'cyan', - prompt: 'grey', - info: 'green', - data: 'grey', - help: 'cyan', - warn: 'yellow', - debug: 'blue', - error: 'red' -}); - -// outputs red text -console.log("this is an error".error); - -// outputs yellow text -console.log("this is a warning".warn); - -// outputs grey text -console.log("this is an input".input); - -// Load a theme from file -colors.setTheme('./themes/winston-dark.js'); - -console.log("this is an input".input); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/package.json deleted file mode 100644 index 71a44766..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "colors", - "description": "get colors in your node.js console like what", - "version": "0.6.2", - "author": { - "name": "Marak Squires" - }, - "homepage": "https://github.com/Marak/colors.js", - "bugs": { - "url": "https://github.com/Marak/colors.js/issues" - }, - "keywords": [ - "ansi", - "terminal", - "colors" - ], - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/Marak/colors.js.git" - }, - "engines": { - "node": ">=0.1.90" - }, - "main": "colors", - "_id": "colors@0.6.2", - "dist": { - "shasum": "2423fe6678ac0c5dae8852e5d0e5be08c997abcc", - "tarball": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" - }, - "_from": "colors@>=0.0.0 <1.0.0", - "_npmVersion": "1.2.30", - "_npmUser": { - "name": "marak", - "email": "marak.squires@gmail.com" - }, - "maintainers": [ - { - "name": "marak", - "email": "marak.squires@gmail.com" - } - ], - "directories": {}, - "_shasum": "2423fe6678ac0c5dae8852e5d0e5be08c997abcc", - "_resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/test.js deleted file mode 100644 index c32417d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/test.js +++ /dev/null @@ -1,70 +0,0 @@ -var assert = require('assert'), - colors = require('./colors'); - -var s = 'string'; - -function a(s, code) { - return '\x1B[' + code.toString() + 'm' + s + '\x1B[39m'; -} - -function aE(s, color, code) { - assert.equal(s[color], a(s, code)); - assert.equal(colors[color](s), a(s, code)); - assert.equal(s[color], colors[color](s)); - assert.equal(s[color].stripColors, s); - assert.equal(s[color].stripColors, colors.stripColors(s)); -} - -function h(s, color) { - return '' + s + ''; -} - -var stylesColors = ['white', 'black', 'blue', 'cyan', 'green', 'magenta', 'red', 'yellow']; -var stylesAll = stylesColors.concat(['bold', 'italic', 'underline', 'inverse', 'rainbow']); - -colors.mode = 'console'; -assert.equal(s.bold, '\x1B[1m' + s + '\x1B[22m'); -assert.equal(s.italic, '\x1B[3m' + s + '\x1B[23m'); -assert.equal(s.underline, '\x1B[4m' + s + '\x1B[24m'); -assert.equal(s.strikethrough, '\x1B[9m' + s + '\x1B[29m'); -assert.equal(s.inverse, '\x1B[7m' + s + '\x1B[27m'); -assert.ok(s.rainbow); -aE(s, 'white', 37); -aE(s, 'grey', 90); -aE(s, 'black', 30); -aE(s, 'blue', 34); -aE(s, 'cyan', 36); -aE(s, 'green', 32); -aE(s, 'magenta', 35); -aE(s, 'red', 31); -aE(s, 'yellow', 33); -assert.equal(s, 'string'); - -colors.setTheme({error:'red'}); - -assert.equal(typeof("astring".red),'string'); -assert.equal(typeof("astring".error),'string'); - -colors.mode = 'browser'; -assert.equal(s.bold, '' + s + ''); -assert.equal(s.italic, '' + s + ''); -assert.equal(s.underline, '' + s + ''); -assert.equal(s.strikethrough, '' + s + ''); -assert.equal(s.inverse, '' + s + ''); -assert.ok(s.rainbow); -stylesColors.forEach(function (color) { - assert.equal(s[color], h(s, color)); - assert.equal(colors[color](s), h(s, color)); -}); - -assert.equal(typeof("astring".red),'string'); -assert.equal(typeof("astring".error),'string'); - -colors.mode = 'none'; -stylesAll.forEach(function (style) { - assert.equal(s[style], s); - assert.equal(colors[style](s), s); -}); - -assert.equal(typeof("astring".red),'string'); -assert.equal(typeof("astring".error),'string'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/themes/winston-dark.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/themes/winston-dark.js deleted file mode 100644 index 49a905ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/themes/winston-dark.js +++ /dev/null @@ -1,12 +0,0 @@ -module['exports'] = { - silly: 'rainbow', - input: 'black', - verbose: 'cyan', - prompt: 'grey', - info: 'green', - data: 'grey', - help: 'cyan', - warn: 'yellow', - debug: 'blue', - error: 'red' -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/themes/winston-light.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/themes/winston-light.js deleted file mode 100644 index 571972c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/colors/themes/winston-light.js +++ /dev/null @@ -1,12 +0,0 @@ -module['exports'] = { - silly: 'rainbow', - input: 'grey', - verbose: 'cyan', - prompt: 'grey', - info: 'green', - data: 'grey', - help: 'cyan', - warn: 'yellow', - debug: 'blue', - error: 'red' -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/LICENSE deleted file mode 100644 index a1edd93b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2009 cloudhead - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/Makefile deleted file mode 100644 index a121deaf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -test: - @@node test/eyes-test.js - -.PHONY: test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/README.md deleted file mode 100644 index c4f6f769..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/README.md +++ /dev/null @@ -1,73 +0,0 @@ -eyes -==== - -a customizable value inspector for Node.js - -synopsis --------- - -I was tired of looking at cluttered output in the console -- something needed to be done, -`sys.inspect()` didn't display regexps correctly, and was too verbose, and I had an hour or two to spare. -So I decided to have some fun. _eyes_ were born. - -![eyes-ss](http://dl.dropbox.com/u/251849/eyes-js-ss.gif) - -_example of the output of a user-customized eyes.js inspector_ - -*eyes* also deals with circular objects in an intelligent way, and can pretty-print object literals. - -usage ------ - - var inspect = require('eyes').inspector({styles: {all: 'magenta'}}); - - inspect(something); // inspect with the settings passed to `inspector` - -or - - var eyes = require('eyes'); - - eyes.inspect(something); // inspect with the default settings - -you can pass a _label_ to `inspect()`, to keep track of your inspections: - - eyes.inspect(something, "a random value"); - -If you want to return the output of eyes without printing it, you can set it up this way: - - var inspect = require('eyes').inspector({ stream: null }); - - sys.puts(inspect({ something: 42 })); - -customization -------------- - -These are the default styles and settings used by _eyes_. - - styles: { // Styles applied to stdout - all: 'cyan', // Overall style applied to everything - label: 'underline', // Inspection labels, like 'array' in `array: [1, 2, 3]` - other: 'inverted', // Objects which don't have a literal representation, such as functions - key: 'bold', // The keys in object literals, like 'a' in `{a: 1}` - special: 'grey', // null, undefined... - string: 'green', - number: 'magenta', - bool: 'blue', // true false - regexp: 'green', // /\d+/ - }, - - pretty: true, // Indent object literals - hideFunctions: false, // Don't output functions at all - stream: process.stdout, // Stream to write to, or null - maxLength: 2048 // Truncate output if longer - -You can overwrite them with your own, by passing a similar object to `inspector()` or `inspect()`. - - var inspect = require('eyes').inspector({ - styles: { - all: 'magenta', - special: 'bold' - }, - maxLength: 512 - }); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/lib/eyes.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/lib/eyes.js deleted file mode 100644 index 10d964b9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/lib/eyes.js +++ /dev/null @@ -1,236 +0,0 @@ -// -// Eyes.js - a customizable value inspector for Node.js -// -// usage: -// -// var inspect = require('eyes').inspector({styles: {all: 'magenta'}}); -// inspect(something); // inspect with the settings passed to `inspector` -// -// or -// -// var eyes = require('eyes'); -// eyes.inspect(something); // inspect with the default settings -// -var eyes = exports, - stack = []; - -eyes.defaults = { - styles: { // Styles applied to stdout - all: 'cyan', // Overall style applied to everything - label: 'underline', // Inspection labels, like 'array' in `array: [1, 2, 3]` - other: 'inverted', // Objects which don't have a literal representation, such as functions - key: 'bold', // The keys in object literals, like 'a' in `{a: 1}` - special: 'grey', // null, undefined... - string: 'green', - number: 'magenta', - bool: 'blue', // true false - regexp: 'green', // /\d+/ - }, - pretty: true, // Indent object literals - hideFunctions: false, - showHidden: false, - stream: process.stdout, - maxLength: 2048 // Truncate output if longer -}; - -// Return a curried inspect() function, with the `options` argument filled in. -eyes.inspector = function (options) { - var that = this; - return function (obj, label, opts) { - return that.inspect.call(that, obj, label, - merge(options || {}, opts || {})); - }; -}; - -// If we have a `stream` defined, use it to print a styled string, -// if not, we just return the stringified object. -eyes.inspect = function (obj, label, options) { - options = merge(this.defaults, options || {}); - - if (options.stream) { - return this.print(stringify(obj, options), label, options); - } else { - return stringify(obj, options) + (options.styles ? '\033[39m' : ''); - } -}; - -// Output using the 'stream', and an optional label -// Loop through `str`, and truncate it after `options.maxLength` has been reached. -// Because escape sequences are, at this point embeded within -// the output string, we can't measure the length of the string -// in a useful way, without separating what is an escape sequence, -// versus a printable character (`c`). So we resort to counting the -// length manually. -eyes.print = function (str, label, options) { - for (var c = 0, i = 0; i < str.length; i++) { - if (str.charAt(i) === '\033') { i += 4 } // `4` because '\033[25m'.length + 1 == 5 - else if (c === options.maxLength) { - str = str.slice(0, i - 1) + '…'; - break; - } else { c++ } - } - return options.stream.write.call(options.stream, (label ? - this.stylize(label, options.styles.label, options.styles) + ': ' : '') + - this.stylize(str, options.styles.all, options.styles) + '\033[0m' + "\n"); -}; - -// Apply a style to a string, eventually, -// I'd like this to support passing multiple -// styles. -eyes.stylize = function (str, style, styles) { - var codes = { - 'bold' : [1, 22], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'cyan' : [36, 39], - 'magenta' : [35, 39], - 'blue' : [34, 39], - 'yellow' : [33, 39], - 'green' : [32, 39], - 'red' : [31, 39], - 'grey' : [90, 39] - }, endCode; - - if (style && codes[style]) { - endCode = (codes[style][1] === 39 && styles.all) ? codes[styles.all][0] - : codes[style][1]; - return '\033[' + codes[style][0] + 'm' + str + - '\033[' + endCode + 'm'; - } else { return str } -}; - -// Convert any object to a string, ready for output. -// When an 'array' or an 'object' are encountered, they are -// passed to specialized functions, which can then recursively call -// stringify(). -function stringify(obj, options) { - var that = this, stylize = function (str, style) { - return eyes.stylize(str, options.styles[style], options.styles) - }, index, result; - - if ((index = stack.indexOf(obj)) !== -1) { - return stylize(new(Array)(stack.length - index + 1).join('.'), 'special'); - } - stack.push(obj); - - result = (function (obj) { - switch (typeOf(obj)) { - case "string" : obj = stringifyString(obj.indexOf("'") === -1 ? "'" + obj + "'" - : '"' + obj + '"'); - return stylize(obj, 'string'); - case "regexp" : return stylize('/' + obj.source + '/', 'regexp'); - case "number" : return stylize(obj + '', 'number'); - case "function" : return options.stream ? stylize("Function", 'other') : '[Function]'; - case "null" : return stylize("null", 'special'); - case "undefined": return stylize("undefined", 'special'); - case "boolean" : return stylize(obj + '', 'bool'); - case "date" : return stylize(obj.toUTCString()); - case "array" : return stringifyArray(obj, options, stack.length); - case "object" : return stringifyObject(obj, options, stack.length); - } - })(obj); - - stack.pop(); - return result; -}; - -// Escape invisible characters in a string -function stringifyString (str, options) { - return str.replace(/\\/g, '\\\\') - .replace(/\n/g, '\\n') - .replace(/[\u0001-\u001F]/g, function (match) { - return '\\0' + match[0].charCodeAt(0).toString(8); - }); -} - -// Convert an array to a string, such as [1, 2, 3]. -// This function calls stringify() for each of the elements -// in the array. -function stringifyArray(ary, options, level) { - var out = []; - var pretty = options.pretty && (ary.length > 4 || ary.some(function (o) { - return (o !== null && typeof(o) === 'object' && Object.keys(o).length > 0) || - (Array.isArray(o) && o.length > 0); - })); - var ws = pretty ? '\n' + new(Array)(level * 4 + 1).join(' ') : ' '; - - for (var i = 0; i < ary.length; i++) { - out.push(stringify(ary[i], options)); - } - - if (out.length === 0) { - return '[]'; - } else { - return '[' + ws - + out.join(',' + (pretty ? ws : ' ')) - + (pretty ? ws.slice(0, -4) : ws) + - ']'; - } -}; - -// Convert an object to a string, such as {a: 1}. -// This function calls stringify() for each of its values, -// and does not output functions or prototype values. -function stringifyObject(obj, options, level) { - var out = []; - var pretty = options.pretty && (Object.keys(obj).length > 2 || - Object.keys(obj).some(function (k) { return typeof(obj[k]) === 'object' })); - var ws = pretty ? '\n' + new(Array)(level * 4 + 1).join(' ') : ' '; - - var keys = options.showHidden ? Object.keys(obj) : Object.getOwnPropertyNames(obj); - keys.forEach(function (k) { - if (Object.prototype.hasOwnProperty.call(obj, k) - && !(obj[k] instanceof Function && options.hideFunctions)) { - out.push(eyes.stylize(k, options.styles.key, options.styles) + ': ' + - stringify(obj[k], options)); - } - }); - - if (out.length === 0) { - return '{}'; - } else { - return "{" + ws - + out.join(',' + (pretty ? ws : ' ')) - + (pretty ? ws.slice(0, -4) : ws) + - "}"; - } -}; - -// A better `typeof` -function typeOf(value) { - var s = typeof(value), - types = [Object, Array, String, RegExp, Number, Function, Boolean, Date]; - - if (s === 'object' || s === 'function') { - if (value) { - types.forEach(function (t) { - if (value instanceof t) { s = t.name.toLowerCase() } - }); - } else { s = 'null' } - } - return s; -} - -function merge(/* variable args */) { - var objs = Array.prototype.slice.call(arguments); - var target = {}; - - objs.forEach(function (o) { - Object.keys(o).forEach(function (k) { - if (k === 'styles') { - if (! o.styles) { - target.styles = false; - } else { - target.styles = {} - for (var s in o.styles) { - target.styles[s] = o.styles[s]; - } - } - } else { - target[k] = o[k]; - } - }); - }); - return target; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/package.json deleted file mode 100644 index 52a28b03..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "eyes", - "description": "a customizable value inspector", - "url": "http://github.com/cloudhead/eyes.js", - "keywords": [ - "inspector", - "debug", - "inspect", - "print" - ], - "author": { - "name": "Alexis Sellier", - "email": "self@cloudhead.net" - }, - "contributors": [ - { - "name": "Charlie Robbins", - "email": "charlie@nodejitsu.com" - } - ], - "licenses": [ - "MIT" - ], - "main": "./lib/eyes", - "version": "0.1.8", - "scripts": { - "test": "node test/*-test.js" - }, - "directories": { - "lib": "./lib", - "test": "./test" - }, - "engines": { - "node": "> 0.1.90" - }, - "_id": "eyes@0.1.8", - "dist": { - "shasum": "62cf120234c683785d902348a800ef3e0cc20bc0", - "tarball": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" - }, - "_npmVersion": "1.1.53", - "_npmUser": { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - }, - "maintainers": [ - { - "name": "cloudhead", - "email": "self@cloudhead.net" - }, - { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - } - ], - "_shasum": "62cf120234c683785d902348a800ef3e0cc20bc0", - "_resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "_from": "eyes@>=0.1.0 <0.2.0", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/test/eyes-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/test/eyes-test.js deleted file mode 100644 index 1f9606a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/eyes/test/eyes-test.js +++ /dev/null @@ -1,56 +0,0 @@ -var util = require('util'); -var eyes = require('../lib/eyes'); - -eyes.inspect({ - number: 42, - string: "John Galt", - regexp: /[a-z]+/, - array: [99, 168, 'x', {}], - func: function () {}, - bool: false, - nil: null, - undef: undefined, - object: {attr: []} -}, "native types"); - -eyes.inspect({ - number: new(Number)(42), - string: new(String)("John Galt"), - regexp: new(RegExp)(/[a-z]+/), - array: new(Array)(99, 168, 'x', {}), - bool: new(Boolean)(false), - object: new(Object)({attr: []}), - date: new(Date) -}, "wrapped types"); - -var obj = {}; -obj.that = { self: obj }; -obj.self = obj; - -eyes.inspect(obj, "circular object"); -eyes.inspect({hello: 'moto'}, "small object"); -eyes.inspect({hello: new(Array)(6) }, "big object"); -eyes.inspect(["hello 'world'", 'hello "world"'], "quotes"); -eyes.inspect({ - recommendations: [{ - id: 'a7a6576c2c822c8e2bd81a27e41437d8', - key: [ 'spree', 3.764316258020699 ], - value: { - _id: 'a7a6576c2c822c8e2bd81a27e41437d8', - _rev: '1-2e2d2f7fd858c4a5984bcf809d22ed98', - type: 'domain', - domain: 'spree', - weight: 3.764316258020699, - product_id: 30 - } - }] -}, 'complex'); - -eyes.inspect([null], "null in array"); - -var inspect = eyes.inspector({ stream: null }); - -util.puts(inspect('something', "something")); -util.puts(inspect("something else")); - -util.puts(inspect(["no color"], null, { styles: false })); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/.npmignore deleted file mode 100644 index 2c5c40a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -test/*.log -test/fixtures/*.json -test/fixtures/logs/*.log -node_modules/ -node_modules/* -npm-debug.log \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/.travis.yml deleted file mode 100644 index b250521e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 -branches: - only: - - master -notifications: - email: - - travis@nodejitsu.com - irc: "irc.freenode.org#nodejitsu" - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/LICENSE deleted file mode 100644 index 948d80dd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010 Charlie Robbins - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/README.md deleted file mode 100644 index 2fc4798d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/README.md +++ /dev/null @@ -1,790 +0,0 @@ -# winston [![Build Status](https://secure.travis-ci.org/flatiron/winston.png)](http://travis-ci.org/flatiron/winston) - -A multi-transport async logging library for node.js. "CHILL WINSTON! ... I put it in the logs." - -## Motivation -Winston is designed to be a simple and universal logging library with support for multiple transports. A transport is essentially a storage device for your logs. Each instance of a winston logger can have multiple transports configured at different levels. For example, one may want error logs to be stored in a persistent remote location (like a database), but all logs output to the console or a local file. - -There also seemed to be a lot of logging libraries out there that coupled their implementation of logging (i.e. how the logs are stored / indexed) to the API that they exposed to the programmer. This library aims to decouple those parts of the process to make it more flexible and extensible. - -## Usage -There are two different ways to use winston: directly via the default logger, or by instantiating your own Logger. The former is merely intended to be a convenient shared logger to use throughout your application if you so choose. - -* [Logging](#logging) - * [Using the Default Logger](#using-the-default-logger) - * [Instantiating your own Logger](#instantiating-your-own-logger) - * [Logging with Metadata](#logging-with-metadata) -* [Transports](https://github.com/flatiron/winston/blob/master/docs/transports.md) -* [Profiling](#profiling) -* [Streaming Logs](#streaming-logs) -* [Querying Logs](#querying-logs) -* [Exceptions](#exceptions) - * [Handling Uncaught Exceptions with winston](#handling-uncaught-exceptions-with-winston) - * [To Exit or Not to Exit](#to-exit-or-not-to-exit) -* [Logging Levels](#logging-levels) - * [Using Logging Levels](#using-logging-levels) - * [Using Custom Logging Levels](#using-custom-logging-levels) -* [Further Reading](#further-reading) - * [Events and Callbacks in Winston](#events-and-callbacks-in-winston) - * [Working with multiple Loggers in winston](#working-with-multiple-loggers-in-winston) - * [Using winston in a CLI tool](#using-winston-in-a-cli-tool) - * [Extending another object with Logging](#extending-another-object-with-logging) - * [Adding Custom Transports](#adding-custom-transports) - -## Logging - -### Using the Default Logger -The default logger is accessible through the winston module directly. Any method that you could call on an instance of a logger is available on the default logger: - -``` js - var winston = require('winston'); - - winston.log('info', 'Hello distributed log files!'); - winston.info('Hello again distributed logs'); -``` - -By default, only the Console transport is set on the default logger. You can add or remove transports via the add() and remove() methods: - -``` js - winston.add(winston.transports.File, { filename: 'somefile.log' }); - winston.remove(winston.transports.Console); -``` - -For more documenation about working with each individual transport supported by Winston see the "Working with Transports" section below. - -### Instantiating your own Logger -If you would prefer to manage the object lifetime of loggers you are free to instantiate them yourself: - -``` js - var logger = new (winston.Logger)({ - transports: [ - new (winston.transports.Console)(), - new (winston.transports.File)({ filename: 'somefile.log' }) - ] - }); -``` - -You can work with this logger in the same way that you work with the default logger: - -``` js - // - // Logging - // - logger.log('info', 'Hello distributed log files!'); - logger.info('Hello again distributed logs'); - - // - // Adding / Removing Transports - // (Yes It's chainable) - // - logger.add(winston.transports.File) - .remove(winston.transports.Console); -``` - -### Logging with Metadata -In addition to logging string messages, winston will also optionally log additional JSON metadata objects. Adding metadata is simple: - -``` js - winston.log('info', 'Test Log Message', { anything: 'This is metadata' }); -``` - -The way these objects is stored varies from transport to transport (to best support the storage mechanisms offered). Here's a quick summary of how each transports handles metadata: - -1. __Console:__ Logged via util.inspect(meta) -2. __File:__ Logged via util.inspect(meta) - -## Profiling -In addition to logging messages and metadata, winston also has a simple profiling mechanism implemented for any logger: - -``` js - // - // Start profile of 'test' - // Remark: Consider using Date.now() with async operations - // - winston.profile('test'); - - setTimeout(function () { - // - // Stop profile of 'test'. Logging will now take place: - // "17 Jan 21:00:00 - info: test duration=1000ms" - // - winston.profile('test'); - }, 1000); -``` - -All profile messages are set to the 'info' by default and both message and metadata are optional There are no plans in the Roadmap to make this configurable, but I'm open to suggestions / issues. - - -## Querying Logs -Winston supports querying of logs with Loggly-like options. -Specifically: `File`, `Couchdb`, `Redis`, `Loggly`, `Nssocket`, and `Http`. - -``` js - var options = { - from: new Date - 24 * 60 * 60 * 1000, - until: new Date - }; - - // - // Find items logged between today and yesterday. - // - winston.query(options, function (err, results) { - if (err) { - throw err; - } - - console.log(results); - }); -``` - -## Streaming Logs -Streaming allows you to stream your logs back from your chosen transport. - -``` js - // - // Start at the end. - // - winston.stream({ start: -1 }).on('log', function(log) { - console.log(log); - }); -``` - -## Exceptions - -### Handling Uncaught Exceptions with winston - -With `winston`, it is possible to catch and log `uncaughtException` events from your process. There are two distinct ways of enabling this functionality either through the default winston logger or your own logger instance. - -If you want to use this feature with the default logger simply call `.handleExceptions()` with a transport instance. - -``` js - // - // You can add a separate exception logger by passing it to `.handleExceptions` - // - winston.handleExceptions(new winston.transports.File({ filename: 'path/to/exceptions.log' })) - - // - // Alternatively you can set `.handleExceptions` to true when adding transports to winston - // - winston.add(winston.transports.File, { - filename: 'path/to/all-logs.log', - handleExceptions: true - }); -``` - -### To Exit or Not to Exit - -by default, winston will exit after logging an uncaughtException. if this is not the behavior you want, -set `exitOnError = false` - -``` js - var logger = new (winston.Logger)({ exitOnError: false }); - - // - // or, like this: - // - logger.exitOnError = false; -``` - -When working with custom logger instances, you can pass in separate transports to the `exceptionHandlers` property or set `.handleExceptions` on any transport. - -Example 1 - -``` js - var logger = new (winston.Logger)({ - transports: [ - new winston.transports.File({ filename: 'path/to/all-logs.log' }) - ] - exceptionHandlers: [ - new winston.transports.File({ filename: 'path/to/exceptions.log' }) - ] - }); -``` - -Example 2 - -``` -var logger = new winston.Logger({ - transports: [ - new winston.transports.Console({ - handleExceptions: true, - json: true - }) - ], - exitOnError: false -}); -``` - -The `exitOnError` option can also be a function to prevent exit on only certain types of errors: - -``` js - function ignoreEpipe(err) { - return err.code !== 'EPIPE'; - } - - var logger = new (winston.Logger)({ exitOnError: ignoreEpipe }); - - // - // or, like this: - // - logger.exitOnError = ignoreEpipe; -``` - -## Logging Levels - -### Using Logging Levels -Setting the level for your logging message can be accomplished in one of two ways. You can pass a string representing the logging level to the log() method or use the level specified methods defined on every winston Logger. - -``` js - // - // Any logger instance - // - logger.log('info', "127.0.0.1 - there's no place like home"); - logger.log('warn', "127.0.0.1 - there's no place like home"); - logger.log('error', "127.0.0.1 - there's no place like home"); - logger.info("127.0.0.1 - there's no place like home"); - logger.warn("127.0.0.1 - there's no place like home"); - logger.error("127.0.0.1 - there's no place like home"); - - // - // Default logger - // - winston.log('info', "127.0.0.1 - there's no place like home"); - winston.info("127.0.0.1 - there's no place like home"); -``` - -Winston allows you to set a `level` on each transport that specifies the level of messages this transport should log. For example, you could log only errors to the console, with the full logs in a file: - -``` js - var logger = new (winston.Logger)({ - transports: [ - new (winston.transports.Console)({ level: 'error' }), - new (winston.transports.File)({ filename: 'somefile.log' }) - ] - }); -``` - -As of 0.2.0, winston supports customizable logging levels, defaulting to [npm][0] style logging levels. Changing logging levels is easy: - -``` js - // - // Change levels on the default winston logger - // - winston.setLevels(winston.config.syslog.levels); - - // - // Change levels on an instance of a logger - // - logger.setLevels(winston.config.syslog.levels); -``` - -Calling `.setLevels` on a logger will remove all of the previous helper methods for the old levels and define helper methods for the new levels. Thus, you should be careful about the logging statements you use when changing levels. For example, if you ran this code after changing to the syslog levels: - -``` js - // - // Logger does not have 'silly' defined since that level is not in the syslog levels - // - logger.silly('some silly message'); -``` - -### Using Custom Logging Levels -In addition to the predefined `npm` and `syslog` levels available in Winston, you can also choose to define your own: - -``` js - var myCustomLevels = { - levels: { - foo: 0, - bar: 1, - baz: 2, - foobar: 3 - }, - colors: { - foo: 'blue', - bar: 'green', - baz: 'yellow', - foobar: 'red' - } - }; - - var customLevelLogger = new (winston.Logger)({ levels: myCustomLevels.levels }); - customLevelLogger.foobar('some foobar level-ed message'); -``` - -Although there is slight repetition in this data structure, it enables simple encapsulation if you not to have colors. If you do wish to have colors, in addition to passing the levels to the Logger itself, you must make winston aware of them: - -``` js - // - // Make winston aware of these colors - // - winston.addColors(myCustomLevels.colors); -``` - -This enables transports with the 'colorize' option set to appropriately color the output of custom levels. - -## Further Reading - -### Events and Callbacks in Winston -Each instance of winston.Logger is also an instance of an [EventEmitter][1]. A log event will be raised each time a transport successfully logs a message: - -``` js - logger.on('logging', function (transport, level, msg, meta) { - // [msg] and [meta] have now been logged at [level] to [transport] - }); - - logger.info('CHILL WINSTON!', { seriously: true }); -``` - -It is also worth mentioning that the logger also emits an 'error' event which you should handle or suppress if you don't want unhandled exceptions: - -``` js - // - // Handle errors - // - logger.on('error', function (err) { /* Do Something */ }); - - // - // Or just suppress them. - // - logger.emitErrs = false; -``` - -Every logging method described in the previous section also takes an optional callback which will be called only when all of the transports have logged the specified message. - -``` js - logger.info('CHILL WINSTON!', { seriously: true }, function (err, level, msg, meta) { - // [msg] and [meta] have now been logged at [level] to **every** transport. - }); -``` - -### Working with multiple Loggers in winston - -Often in larger, more complex applications it is necessary to have multiple logger instances with different settings. Each logger is responsible for a different feature area (or category). This is exposed in `winston` in two ways: through `winston.loggers` and instances of `winston.Container`. In fact, `winston.loggers` is just a predefined instance of `winston.Container`: - -``` js - var winston = require('winston'); - - // - // Configure the logger for `category1` - // - winston.loggers.add('category1', { - console: { - level: 'silly', - colorize: 'true' - }, - file: { - filename: '/path/to/some/file' - } - }); - - // - // Configure the logger for `category2` - // - winston.loggers.add('category2', { - couchdb: { - host: '127.0.0.1', - port: 5984 - } - }); -``` - -Now that your loggers are setup you can require winston _in any file in your application_ and access these pre-configured loggers: - -``` js - var winston = require('winston'); - - // - // Grab your preconfigured logger - // - var category1 = winston.loggers.get('category1'); - - category1.info('logging from your IoC container-based logger'); -``` - -If you prefer to manage the `Container` yourself you can simply instantiate one: - -``` js - var winston = require('winston'), - container = new winston.Container(); - - container.add('category1', { - console: { - level: 'silly', - colorize: 'true' - }, - file: { - filename: '/path/to/some/file' - } - }); -``` - -### Sharing transports between Loggers in winston - -``` js - var winston = require('winston'); - - // - // Setup transports to be shared across all loggers - // in three ways: - // - // 1. By setting it on the default Container - // 2. By passing `transports` into the constructor function of winston.Container - // 3. By passing `transports` into the `.get()` or `.add()` methods - // - - // - // 1. By setting it on the default Container - // - winston.loggers.options.transports = [ - // Setup your shared transports here - ]; - - // - // 2. By passing `transports` into the constructor function of winston.Container - // - var container = new winston.Container({ - transports: [ - // Setup your shared transports here - ] - }); - - // - // 3. By passing `transports` into the `.get()` or `.add()` methods - // - winston.loggers.add('some-category', { - transports: [ - // Setup your shared transports here - ] - }); - - container.add('some-category', { - transports: [ - // Setup your shared transports here - ] - }); -``` - -### Using winston in a CLI tool -A common use-case for logging is output to a CLI tool. Winston has a special helper method which will pretty print output from your CLI tool. Here's an example from the [require-analyzer][2] written by [Nodejitsu][3]: - -``` - info: require-analyzer starting in /Users/Charlie/Nodejitsu/require-analyzer - info: Found existing dependencies - data: { - data: colors: '0.x.x', - data: eyes: '0.1.x', - data: findit: '0.0.x', - data: npm: '1.0.x', - data: optimist: '0.2.x', - data: semver: '1.0.x', - data: winston: '0.2.x' - data: } - info: Analyzing dependencies... - info: Done analyzing raw dependencies - info: Retrieved packages from npm - warn: No additional dependencies found -``` - -Configuring output for this style is easy, just use the `.cli()` method on `winston` or an instance of `winston.Logger`: - -``` js - var winston = require('winston'); - - // - // Configure CLI output on the default logger - // - winston.cli(); - - // - // Configure CLI on an instance of winston.Logger - // - var logger = new winston.Logger({ - transports: [ - new (winston.transports.Console)() - ] - }); - - logger.cli(); -``` - -### Extending another object with Logging -Often in a given code base with lots of Loggers it is useful to add logging methods a different object so that these methods can be called with less syntax. Winston exposes this functionality via the 'extend' method: - -``` js - var myObject = {}; - - logger.extend(myObject); - - // - // You can now call logger methods on 'myObject' - // - myObject.info('127.0.0.1 - there's no place like home'); -``` - -## Working with Transports -Right now there are four transports supported by winston core. If you have a transport you would like to add either open an issue or fork and submit a pull request. Commits are welcome, but I'll give you extra street cred if you __add tests too :D__ - -1. __Console:__ Output to the terminal -2. __Files:__ Append to a file -3. __Loggly:__ Log to Logging-as-a-Service platform Loggly - -### Console Transport -``` js - winston.add(winston.transports.Console, options) -``` - -The Console transport takes two simple options: - -* __level:__ Level of messages that this transport should log (default 'info'). -* __silent:__ Boolean flag indicating whether to suppress output (default false). -* __colorize:__ Boolean flag indicating if we should colorize output (default false). -* __timestamp:__ Boolean flag indicating if we should prepend output with timestamps (default false). If function is specified, its return value will be used instead of timestamps. - -*Metadata:* Logged via util.inspect(meta); - -### File Transport -``` js - winston.add(winston.transports.File, options) -``` - -The File transport should really be the 'Stream' transport since it will accept any [WritableStream][14]. It is named such because it will also accept filenames via the 'filename' option: - -* __level:__ Level of messages that this transport should log. -* __silent:__ Boolean flag indicating whether to suppress output. -* __colorize:__ Boolean flag indicating if we should colorize output. -* __timestamp:__ Boolean flag indicating if we should prepend output with timestamps (default true). If function is specified, its return value will be used instead of timestamps. -* __filename:__ The filename of the logfile to write output to. -* __maxsize:__ Max size in bytes of the logfile, if the size is exceeded then a new file is created. -* __maxFiles:__ Limit the number of files created when the size of the logfile is exceeded. -* __stream:__ The WriteableStream to write output to. -* __json:__ If true, messages will be logged as JSON (default true). - -*Metadata:* Logged via util.inspect(meta); - -### Loggly Transport -``` js - var Loggly = require('winston-loggly').Loggly - winston.add(Loggly, options); -``` - -The Loggly transport is based on [Nodejitsu's][5] [node-loggly][6] implementation of the [Loggly][7] API. If you haven't heard of Loggly before, you should probably read their [value proposition][8]. The Loggly transport takes the following options. Either 'inputToken' or 'inputName' is required: - -* __level:__ Level of messages that this transport should log. -* __subdomain:__ The subdomain of your Loggly account. *[required]* -* __auth__: The authentication information for your Loggly account. *[required with inputName]* -* __inputName:__ The name of the input this instance should log to. -* __inputToken:__ The input token of the input this instance should log to. -* __json:__ If true, messages will be sent to Loggly as JSON. - -*Metadata:* Logged in suggested [Loggly format][2] - -### Riak Transport -As of `0.3.0` the Riak transport has been broken out into a new module: [winston-riak][17]. Using it is just as easy: - -``` js - var Riak = require('winston-riak').Riak; - winston.add(Riak, options); -``` - -In addition to the options accepted by the [riak-js][3] [client][4], the Riak transport also accepts the following options. It is worth noting that the riak-js debug option is set to *false* by default: - -* __level:__ Level of messages that this transport should log. -* __bucket:__ The name of the Riak bucket you wish your logs to be in or a function to generate bucket names dynamically. - -``` js - // Use a single bucket for all your logs - var singleBucketTransport = new (Riak)({ bucket: 'some-logs-go-here' }); - - // Generate a dynamic bucket based on the date and level - var dynamicBucketTransport = new (Riak)({ - bucket: function (level, msg, meta, now) { - var d = new Date(now); - return level + [d.getDate(), d.getMonth(), d.getFullYear()].join('-'); - } - }); -``` - -*Metadata:* Logged as JSON literal in Riak - -### MongoDB Transport -As of `0.3.0` the MongoDB transport has been broken out into a new module: [winston-mongodb][16]. Using it is just as easy: - -``` js - var MongoDB = require('winston-mongodb').MongoDB; - winston.add(MongoDB, options); -``` - -The MongoDB transport takes the following options. 'db' is required: - -* __level:__ Level of messages that this transport should log. -* __silent:__ Boolean flag indicating whether to suppress output. -* __db:__ The name of the database you want to log to. *[required]* -* __collection__: The name of the collection you want to store log messages in, defaults to 'log'. -* __safe:__ Boolean indicating if you want eventual consistency on your log messages, if set to true it requires an extra round trip to the server to ensure the write was committed, defaults to true. -* __host:__ The host running MongoDB, defaults to localhost. -* __port:__ The port on the host that MongoDB is running on, defaults to MongoDB's default port. - -*Metadata:* Logged as a native JSON object. - -### SimpleDB Transport - -The [winston-simpledb][18] transport is just as easy: - -``` js - var SimpleDB = require('winston-simpledb').SimpleDB; - winston.add(SimpleDB, options); -``` - -The SimpleDB transport takes the following options. All items marked with an asterisk are required: - -* __awsAccessKey__:* your AWS Access Key -* __secretAccessKey__:* your AWS Secret Access Key -* __awsAccountId__:* your AWS Account Id -* __domainName__:* a string or function that returns the domain name to log to -* __region__:* the region your domain resides in -* __itemName__: a string ('uuid', 'epoch', 'timestamp') or function that returns the item name to log - -*Metadata:* Logged as a native JSON object to the 'meta' attribute of the item. - -### Mail Transport - -The [winston-mail][19] is an email transport: - -``` js - var Mail = require('winston-mail').Mail; - winston.add(Mail, options); -``` - -The Mail transport uses [emailjs](https://github.com/eleith/emailjs) behind the scenes. Options are the following: - -* __to:__ The address(es) you want to send to. *[required]* -* __from:__ The address you want to send from. (default: `winston@[server-host-name]`) -* __host:__ SMTP server hostname (default: localhost) -* __port:__ SMTP port (default: 587 or 25) -* __username__ User for server auth -* __password__ Password for server auth -* __ssl:__ Use SSL (boolean or object { key, ca, cert }) -* __tls:__ Boolean (if true, use starttls) -* __level:__ Level of messages that this transport should log. -* __silent:__ Boolean flag indicating whether to suppress output. - -*Metadata:* Stringified as JSON in email. - -### Amazon SNS (Simple Notification System) Transport - -The [winston-sns][21] transport uses amazon SNS to send emails, texts, or a bunch of other notifications. - -``` js - require('winston-sns').SNS; - winston.add(winston.transports.SNS, options); -``` - -Options: - -* __aws_key:__ Your Amazon Web Services Key. *[required]* -* __aws_secret:__ Your Amazon Web Services Secret. *[required]* -* __subscriber:__ Subscriber number - found in your SNS AWS Console, after clicking on a topic. Same as AWS Account ID. *[required]* -* __topic_arn:__ Also found in SNS AWS Console - listed under a topic as Topic ARN. *[required]* -* __region:__ AWS Region to use. Can be one of: `us-east-1`,`us-west-1`,`eu-west-1`,`ap-southeast-1`,`ap-northeast-1`,`us-gov-west-1`,`sa-east-1`. (default: `us-east-1`) -* __subject:__ Subject for notifications. (default: "Winston Error Report") -* __message:__ Message of notifications. Uses placeholders for level (%l), error message (%e), and metadata (%m). (default: "Level '%l' Error:\n%e\n\nMetadata:\n%m") -* __level:__ lowest level this transport will log. (default: `info`) - -### Graylog2 Transport - -[winston-graylog2][22] is a Graylog2 transport: - -``` js - var Graylog2 = require('winston-graylog2').Graylog2; - winston.add(Graylog2, options); -``` - -The Graylog2 transport connects to a Graylog2 server over UDP using the following options: - -* __level:__ Level of messages this transport should log. (default: info) -* __silent:__ Boolean flag indicating whether to suppress output. (default: false) - -* __graylogHost:__ IP address or hostname of the graylog2 server. (default: localhost) -* __graylogPort:__ Port to send messages to on the graylog2 server. (default: 12201) -* __graylogHostname:__ The hostname associated with graylog2 messages. (default: require('os').hostname()) -* __graylogFacility:__ The graylog2 facility to send log messages.. (default: nodejs) - -*Metadata:* Stringified as JSON in the full message GELF field. - -### Adding Custom Transports -Adding a custom transport (say for one of the datastore on the Roadmap) is actually pretty easy. All you need to do is accept a couple of options, set a name, implement a log() method, and add it to the set of transports exposed by winston. - -``` js - var util = require('util'), - winston = require('winston'); - - var CustomLogger = winston.transports.CustomerLogger = function (options) { - // - // Name this logger - // - this.name = 'customLogger'; - - // - // Set the level from your options - // - this.level = options.level || 'info'; - - // - // Configure your storage backing as you see fit - // - }; - - // - // Inherit from `winston.Transport` so you can take advantage - // of the base functionality and `.handleExceptions()`. - // - util.inherits(CustomLogger, winston.Transport); - - CustomLogger.prototype.log = function (level, msg, meta, callback) { - // - // Store this message and metadata, maybe use some custom logic - // then callback indicating success. - // - callback(null, true); - }; -``` - -### Inspirations -1. [npm][0] -2. [log.js][4] -3. [socket.io][5] -4. [node-rlog][6] -5. [BigBrother][7] -6. [Loggly][8] - -## Installation - -### Installing npm (node package manager) -``` - curl http://npmjs.org/install.sh | sh -``` - -### Installing winston -``` - [sudo] npm install winston -``` - -## Run Tests -All of the winston tests are written in [vows][9], and designed to be run with npm. - -``` bash - $ npm test -``` - -#### Author: [Charlie Robbins](http://twitter.com/indexzero) -#### Contributors: [Matthew Bergman](http://github.com/fotoverite), [Marak Squires](http://github.com/marak) - -[0]: https://github.com/isaacs/npm/blob/master/lib/utils/log.js -[1]: http://nodejs.org/docs/v0.3.5/api/events.html#events.EventEmitter -[2]: http://github.com/nodejitsu/require-analyzer -[3]: http://nodejitsu.com -[4]: https://github.com/visionmedia/log.js -[5]: http://socket.io -[6]: https://github.com/jbrisbin/node-rlog -[7]: https://github.com/feisty/BigBrother -[8]: http://loggly.com -[9]: http://vowsjs.org diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/docs/transports.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/docs/transports.md deleted file mode 100644 index 5930ad44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/docs/transports.md +++ /dev/null @@ -1,342 +0,0 @@ -# Winston Transports - -In `winston` a transport a transport is essentially a storage device for your logs. Each instance of a winston logger can have multiple transports configured at different levels. For example, one may want error logs to be stored in a persistent remote location (like a database), but all logs output to the console or a local file. - -There are several [core transports](#winston-core) included in `winston`, which leverage the built-in networking and file I/O offered by node.js core. In addition, there are [third-party transports which are supported by the winston core team](#winston-more). And last (but not least) there are [additional transports written by members of the community](#additional-transports). - -* **[Winston Core](#winston-core)** - * [Console](#console-transport) - * [File](#file-transport) - * [Http](#http-transport) - * [Webhook](#webhook-transport) - -* **[Winston More](#winston-more)** - * [CouchDB](#couchdb-transport) - * [Loggly](#loggly-transport) - * [MongoDB](#mongodb-transport) - * [Redis](#redis-transport) - * [Riak](#riak-transport) - -* **[Additional Transports](#additional-transports)** - * [SimpleDB](#simpledb-transport) - * [Mail](#mail-transport) - * [Amazon SNS](#amazon-sns-simple-notification-system-transport) - * [Graylog2](#graylog2-transport) - -## Winston Core - -There are several core transports included in `winston`, which leverage the built-in networking and file I/O offered by node.js core. - -* [Console](#console-transport) -* [File](#file-transport) -* [Http](#http-transport) -* [Webhook](#webhook-transport) - -### Console Transport - -``` js - winston.add(winston.transports.Console, options) -``` - -The Console transport takes two simple options: - -* __level:__ Level of messages that this transport should log (default 'debug'). -* __silent:__ Boolean flag indicating whether to suppress output (default false). -* __colorize:__ Boolean flag indicating if we should colorize output (default false). -* __timestamp:__ Boolean flag indicating if we should prepend output with timestamps (default false). If function is specified, its return value will be used instead of timestamps. - -*Metadata:* Logged via util.inspect(meta); - -### File Transport - -``` js - winston.add(winston.transports.File, options) -``` - -The File transport should really be the 'Stream' transport since it will accept any [WritableStream][0]. It is named such because it will also accept filenames via the 'filename' option: - -* __level:__ Level of messages that this transport should log. -* __silent:__ Boolean flag indicating whether to suppress output. -* __colorize:__ Boolean flag indicating if we should colorize output. -* __timestamp:__ Boolean flag indicating if we should prepend output with timestamps (default false). If function is specified, its return value will be used instead of timestamps. -* __filename:__ The filename of the logfile to write output to. -* __maxsize:__ Max size in bytes of the logfile, if the size is exceeded then a new file is created. -* __maxFiles:__ Limit the number of files created when the size of the logfile is exceeded. -* __stream:__ The WriteableStream to write output to. -* __json:__ If true, messages will be logged as JSON (default true). - -*Metadata:* Logged via util.inspect(meta); - -### Http Transport - -``` js - winston.add(winston.transports.Http, options) -``` - -The `Http` transport is a generic way to log, query, and stream logs from an arbitrary Http endpoint, preferably [winstond][1]. It takes options that are passed to the node.js `http` or `https` request: - -* __host:__ (Default: **localhost**) Remote host of the HTTP logging endpoint -* __port:__ (Default: **80 or 443**) Remote port of the HTTP logging endpoint -* __path:__ (Default: **/**) Remote URI of the HTTP logging endpoint -* __auth:__ (Default: **None**) An object representing the `username` and `password` for HTTP Basic Auth -* __ssl:__ (Default: **false**) Value indicating if we should us HTTPS - -## Winston More - -Starting with `winston@0.3.0` an effort was made to remove any transport which added additional dependencies to `winston`. At the time there were several transports already in `winston` which will **always be supported by the winston core team.** - -* [CouchDB](#couchdb-transport) -* [Redis](#redis-transport) -* [MongoDB](#mongodb-transport) -* [Riak](#riak-transport) -* [Loggly](#loggly-transport) - -### CouchDB Transport - -_As of `winston@0.6.0` the CouchDB transport has been broken out into a new module: [winston-couchdb][2]._ - -``` js - winston.add(winston.transports.Couchdb, options) -``` - -The `Couchdb` will place your logs in a remote CouchDB database. It will also create a [Design Document][3], `_design/Logs` for later querying and streaming your logs from CouchDB. The transport takes the following options: - -* __host:__ (Default: **localhost**) Remote host of the HTTP logging endpoint -* __port:__ (Default: **5984**) Remote port of the HTTP logging endpoint -* __db:__ (Default: **winston**) Remote URI of the HTTP logging endpoint -* __auth:__ (Default: **None**) An object representing the `username` and `password` for HTTP Basic Auth -* __ssl:__ (Default: **false**) Value indicating if we should us HTTPS - -### Redis Transport - -``` js - winston.add(winston.transports.Redis, options) -``` - -This transport accepts the options accepted by the [node-redis][4] client: - -* __host:__ (Default **localhost**) Remote host of the Redis server -* __port:__ (Default **6379**) Port the Redis server is running on. -* __auth:__ (Default **None**) Password set on the Redis server - -In addition to these, the Redis transport also accepts the following options. - -* __length:__ (Default **200**) Number of log messages to store. -* __container:__ (Default **winston**) Name of the Redis container you wish your logs to be in. -* __channel:__ (Default **None**) Name of the Redis channel to stream logs from. - -*Metadata:* Logged as JSON literal in Redis - -### Loggly Transport - -_As of `winston@0.6.0` the Loggly transport has been broken out into a new module: [winston-loggly][5]._ - -``` js - winston.add(winston.transports.Loggly, options); -``` - -The Loggly transport is based on [Nodejitsu's][6] [node-loggly][7] implementation of the [Loggly][8] API. If you haven't heard of Loggly before, you should probably read their [value proposition][9]. The Loggly transport takes the following options. Either 'inputToken' or 'inputName' is required: - -* __level:__ Level of messages that this transport should log. -* __subdomain:__ The subdomain of your Loggly account. *[required]* -* __auth__: The authentication information for your Loggly account. *[required with inputName]* -* __inputName:__ The name of the input this instance should log to. -* __inputToken:__ The input token of the input this instance should log to. -* __json:__ If true, messages will be sent to Loggly as JSON. - -*Metadata:* Logged in suggested [Loggly format][10] - -### Riak Transport - -_As of `winston@0.3.0` the Riak transport has been broken out into a new module: [winston-riak][11]._ Using it is just as easy: - -``` js - var Riak = require('winston-riak').Riak; - winston.add(Riak, options); -``` - -In addition to the options accepted by the [riak-js][12] [client][13], the Riak transport also accepts the following options. It is worth noting that the riak-js debug option is set to *false* by default: - -* __level:__ Level of messages that this transport should log. -* __bucket:__ The name of the Riak bucket you wish your logs to be in or a function to generate bucket names dynamically. - -``` js - // Use a single bucket for all your logs - var singleBucketTransport = new (Riak)({ bucket: 'some-logs-go-here' }); - - // Generate a dynamic bucket based on the date and level - var dynamicBucketTransport = new (Riak)({ - bucket: function (level, msg, meta, now) { - var d = new Date(now); - return level + [d.getDate(), d.getMonth(), d.getFullYear()].join('-'); - } - }); -``` - -*Metadata:* Logged as JSON literal in Riak - -### MongoDB Transport - -As of `winston@0.3.0` the MongoDB transport has been broken out into a new module: [winston-mongodb][14]. Using it is just as easy: - -``` js - var MongoDB = require('winston-mongodb').MongoDB; - winston.add(MongoDB, options); -``` - -The MongoDB transport takes the following options. 'db' is required: - -* __level:__ Level of messages that this transport should log. -* __silent:__ Boolean flag indicating whether to suppress output. -* __db:__ The name of the database you want to log to. *[required]* -* __collection__: The name of the collection you want to store log messages in, defaults to 'log'. -* __safe:__ Boolean indicating if you want eventual consistency on your log messages, if set to true it requires an extra round trip to the server to ensure the write was committed, defaults to true. -* __host:__ The host running MongoDB, defaults to localhost. -* __port:__ The port on the host that MongoDB is running on, defaults to MongoDB's default port. - -*Metadata:* Logged as a native JSON object. - -## Additional Transports - -The community has truly embraced `winston`; there are over **23** winston transports and over half of them are maintained by authors external to the winston core team. If you want to check them all out, just search `npm`: - -``` bash - $ npm search winston -``` - -**If you have an issue using one of these modules you should contact the module author directly** - -### SimpleDB Transport - -The [winston-simpledb][15] transport is just as easy: - -``` js - var SimpleDB = require('winston-simpledb').SimpleDB; - winston.add(SimpleDB, options); -``` - -The SimpleDB transport takes the following options. All items marked with an asterisk are required: - -* __awsAccessKey__:* your AWS Access Key -* __secretAccessKey__:* your AWS Secret Access Key -* __awsAccountId__:* your AWS Account Id -* __domainName__:* a string or function that returns the domain name to log to -* __region__:* the region your domain resides in -* __itemName__: a string ('uuid', 'epoch', 'timestamp') or function that returns the item name to log - -*Metadata:* Logged as a native JSON object to the 'meta' attribute of the item. - -### Mail Transport - -The [winston-mail][16] is an email transport: - -``` js - var Mail = require('winston-mail').Mail; - winston.add(Mail, options); -``` - -The Mail transport uses [node-mail][17] behind the scenes. Options are the following, `to` and `host` are required: - -* __to:__ The address(es) you want to send to. *[required]* -* __from:__ The address you want to send from. (default: `winston@[server-host-name]`) -* __host:__ SMTP server hostname -* __port:__ SMTP port (default: 587 or 25) -* __secure:__ Use secure -* __username__ User for server auth -* __password__ Password for server auth -* __level:__ Level of messages that this transport should log. -* __silent:__ Boolean flag indicating whether to suppress output. - -*Metadata:* Stringified as JSON in email. - -### Amazon SNS (Simple Notification System) Transport - -The [winston-sns][18] transport uses amazon SNS to send emails, texts, or a bunch of other notifications. - -``` js - require('winston-sns').SNS; - winston.add(winston.transports.SNS, options); -``` - -Options: - -* __aws_key:__ Your Amazon Web Services Key. *[required]* -* __aws_secret:__ Your Amazon Web Services Secret. *[required]* -* __subscriber:__ Subscriber number - found in your SNS AWS Console, after clicking on a topic. Same as AWS Account ID. *[required]* -* __topic_arn:__ Also found in SNS AWS Console - listed under a topic as Topic ARN. *[required]* -* __region:__ AWS Region to use. Can be one of: `us-east-1`,`us-west-1`,`eu-west-1`,`ap-southeast-1`,`ap-northeast-1`,`us-gov-west-1`,`sa-east-1`. (default: `us-east-1`) -* __subject:__ Subject for notifications. (default: "Winston Error Report") -* __message:__ Message of notifications. Uses placeholders for level (%l), error message (%e), and metadata (%m). (default: "Level '%l' Error:\n%e\n\nMetadata:\n%m") -* __level:__ lowest level this transport will log. (default: `info`) - -### Graylog2 Transport - -[winston-graylog2][19] is a Graylog2 transport: - -``` js - var Graylog2 = require('winston-graylog2').Graylog2; - winston.add(Graylog2, options); -``` - -The Graylog2 transport connects to a Graylog2 server over UDP using the following options: - -* __level:__ Level of messages this transport should log. (default: info) -* __silent:__ Boolean flag indicating whether to suppress output. (default: false) - -* __graylogHost:__ IP address or hostname of the graylog2 server. (default: localhost) -* __graylogPort:__ Port to send messages to on the graylog2 server. (default: 12201) -* __graylogHostname:__ The hostname associated with graylog2 messages. (default: require('os').hostname()) -* __graylogFacility:__ The graylog2 facility to send log messages.. (default: nodejs) - -*Metadata:* Stringified as JSON in the full message GELF field. - -## Find more Transports - -``` bash - $ npm search winston - (...) - winston-amon Winston transport for Amon logging =zoramite - winston-amqp An AMQP transport for winston =kr1sp1n - winston-couchdb a couchdb transport for winston =alz - winston-express Express middleware to let you use winston from the browser. =regality - winston-graylog2 A graylog2 transport for winston =smithclay - winston-hbase A HBase transport for winston =ddude - winston-loggly A Loggly transport for winston =indexzero - winston-mail A mail transport for winston =wavded - winston-mail2 A mail transport for winston =ivolo - winston-mongodb A MongoDB transport for winston =indexzero - winston-nodemail A mail transport for winston =reinpk - winston-nssocket nssocket transport for winston =mmalecki - winston-papertrail A Papertrail transport for winston =kenperkins - winston-redis A fixed-length Redis transport for winston =indexzero - winston-riak A Riak transport for winston =indexzero - winston-scribe A scribe transport for winston =wnoronha - winston-simpledb A Winston transport for Amazon SimpleDB =chilts - winston-skywriter A Windows Azure table storage transport for winston =pofallon - winston-sns A Simple Notification System Transport for winston =jesseditson - winston-syslog A syslog transport for winston =indexzero - winston-syslog-ain2 An ain2 based syslog transport for winston =lamtha - winston-winlog Windows Event Log logger for Winston =jfromaniello - winston-zmq A 0MQ transport for winston =dhendo -``` - -[0]: http://nodejs.org/docs/v0.3.5/api/streams.html#writable_Stream -[1]: https://github.com/flatiron/winstond -[2]: https://github.com/indexzero/winston-couchdb -[3]: http://guide.couchdb.org/draft/design.html -[4]: https://github.com/mranney/node_redis -[5]: https://github.com/indexzero/winston-loggly -[6]: http://nodejitsu.com -[7]: https://github.com/nodejitsu/node-loggly -[8]: http://loggly.com -[9]: http://www.loggly.com/product/ -[10]: http://wiki.loggly.com/loggingfromcode -[11]: https://github.com/indexzero/winston-riak -[12]: http://riakjs.org -[13]: https://github.com/frank06/riak-js/blob/master/src/http_client.coffee#L10 -[14]: http://github.com/indexzero/winston-mongodb -[15]: http://github.com/appsattic/winston-simpledb -[16]: http://github.com/wavded/winston-mail -[17]: https://github.com/weaver/node-mail -[18]: https://github.com/jesseditson/winston-sns -[19]: https://github.com/flite/winston-graylog2 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/couchdb.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/couchdb.js deleted file mode 100644 index ce2d9607..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/couchdb.js +++ /dev/null @@ -1,18 +0,0 @@ -var winston = require('../lib/winston'); - -// -// Create a new winston logger instance with two tranports: Console, and Couchdb -// -// -// The Console transport will simply output to the console screen -// The Couchdb tranport will perform an HTTP POST request to the specified CouchDB instance -// -var logger = new (winston.Logger)({ - transports: [ - new (winston.transports.Console)(), - new (winston.transports.Couchdb)({ 'host': 'localhost', 'db': 'logs' }) - // if you need auth do this: new (winston.transports.Couchdb)({ 'user': 'admin', 'pass': 'admin', 'host': 'localhost', 'db': 'logs' }) - ] -}); - -logger.log('info', 'Hello webhook log files!', { 'foo': 'bar' }); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/exception.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/exception.js deleted file mode 100644 index 99f605b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/exception.js +++ /dev/null @@ -1,4 +0,0 @@ -var winston = require('../'); -winston.handleExceptions(new winston.transports.Console({ colorize: true, json: true })); - -throw new Error('Hello, winston!'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/raw-mode.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/raw-mode.js deleted file mode 100644 index 89e070da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/raw-mode.js +++ /dev/null @@ -1,10 +0,0 @@ -var winston = require('../lib/winston'); - -var logger = new (winston.Logger)({ - transports: [ - new (winston.transports.Console)({ raw: true }), - ] -}); - -logger.log('info', 'Hello, this is a raw logging event', { 'foo': 'bar' }); -logger.log('info', 'Hello, this is a raw logging event 2', { 'foo': 'bar' }); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/webhook-post.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/webhook-post.js deleted file mode 100644 index 0fa1c8da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/examples/webhook-post.js +++ /dev/null @@ -1,17 +0,0 @@ -var winston = require('../lib/winston'); - -// -// Create a new winston logger instance with two tranports: Console, and Webhook -// -// -// The Console transport will simply output to the console screen -// The Webhook tranports will perform an HTTP POST request to an abritrary end-point ( for post/recieve webhooks ) -// -var logger = new (winston.Logger)({ - transports: [ - new (winston.transports.Console)(), - new (winston.transports.Webhook)({ 'host': 'localhost', 'port': 8080, 'path': '/collectdata' }) - ] -}); - -logger.log('info', 'Hello webhook log files!', { 'foo': 'bar' }); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston.js deleted file mode 100644 index b8fea28c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston.js +++ /dev/null @@ -1,145 +0,0 @@ -/* - * winston.js: Top-level include defining Winston. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var winston = exports; - -// -// Expose version using `pkginfo` -// -require('pkginfo')(module, 'version'); - -// -// Include transports defined by default by winston -// -winston.transports = require('./winston/transports'); - -// -// Expose utility methods -// -var common = require('./winston/common'); -winston.hash = common.hash; -winston.clone = common.clone; -winston.longestElement = common.longestElement; -winston.exception = require('./winston/exception'); -winston.config = require('./winston/config'); -winston.addColors = winston.config.addColors; - -// -// Expose core Logging-related prototypes. -// -winston.Container = require('./winston/container').Container; -winston.Logger = require('./winston/logger').Logger; -winston.Transport = require('./winston/transports/transport').Transport; - -// -// We create and expose a default `Container` to `winston.loggers` so that the -// programmer may manage multiple `winston.Logger` instances without any additional overhead. -// -// ### some-file1.js -// -// var logger = require('winston').loggers.get('something'); -// -// ### some-file2.js -// -// var logger = require('winston').loggers.get('something'); -// -winston.loggers = new winston.Container(); - -// -// We create and expose a 'defaultLogger' so that the programmer may do the -// following without the need to create an instance of winston.Logger directly: -// -// var winston = require('winston'); -// winston.log('info', 'some message'); -// winston.error('some error'); -// -var defaultLogger = new winston.Logger({ - transports: [new winston.transports.Console()] -}); - -// -// Pass through the target methods onto `winston. -// -var methods = [ - 'log', - 'query', - 'stream', - 'add', - 'remove', - 'profile', - 'startTimer', - 'extend', - 'cli', - 'handleExceptions', - 'unhandleExceptions' -]; -common.setLevels(winston, null, defaultLogger.levels); -methods.forEach(function (method) { - winston[method] = function () { - return defaultLogger[method].apply(defaultLogger, arguments); - }; -}); - -// -// ### function cli () -// Configures the default winston logger to have the -// settings for command-line interfaces: no timestamp, -// colors enabled, padded output, and additional levels. -// -winston.cli = function () { - winston.padLevels = true; - common.setLevels(winston, defaultLogger.levels, winston.config.cli.levels); - defaultLogger.setLevels(winston.config.cli.levels); - winston.config.addColors(winston.config.cli.colors); - - if (defaultLogger.transports.console) { - defaultLogger.transports.console.colorize = true; - defaultLogger.transports.console.timestamp = false; - } - - return winston; -}; - -// -// ### function setLevels (target) -// #### @target {Object} Target levels to use -// Sets the `target` levels specified on the default winston logger. -// -winston.setLevels = function (target) { - common.setLevels(winston, defaultLogger.levels, target); - defaultLogger.setLevels(target); -}; - -// -// Define getters / setters for appropriate properties of the -// default logger which need to be exposed by winston. -// -['emitErrs', 'exitOnError', 'padLevels', 'level', 'levelLength', 'stripColors'].forEach(function (prop) { - Object.defineProperty(winston, prop, { - get: function () { - return defaultLogger[prop]; - }, - set: function (val) { - defaultLogger[prop] = val; - } - }); -}); - -// -// @default {Object} -// The default transports and exceptionHandlers for -// the default winston logger. -// -Object.defineProperty(winston, 'default', { - get: function () { - return { - transports: defaultLogger.transports, - exceptionHandlers: defaultLogger.exceptionHandlers - }; - } -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/common.js deleted file mode 100644 index c67a8781..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/common.js +++ /dev/null @@ -1,259 +0,0 @@ -/* - * common.js: Internal helper and utility functions for winston - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var util = require('util'), - crypto = require('crypto'), - cycle = require('cycle'), - config = require('./config'); - -// -// ### function setLevels (target, past, current) -// #### @target {Object} Object on which to set levels. -// #### @past {Object} Previous levels set on target. -// #### @current {Object} Current levels to set on target. -// Create functions on the target objects for each level -// in current.levels. If past is defined, remove functions -// for each of those levels. -// -exports.setLevels = function (target, past, current, isDefault) { - if (past) { - Object.keys(past).forEach(function (level) { - delete target[level]; - }); - } - - target.levels = current || config.npm.levels; - if (target.padLevels) { - target.levelLength = exports.longestElement(Object.keys(target.levels)); - } - - // - // Define prototype methods for each log level - // e.g. target.log('info', msg) <=> target.info(msg) - // - Object.keys(target.levels).forEach(function (level) { - target[level] = function (msg) { - var args = Array.prototype.slice.call(arguments), - callback = typeof args[args.length - 1] === 'function' || !args[args.length - 1] ? args.pop() : null, - meta = args.length === 2 ? args.pop() : null; - - return target.log(level, msg, meta, callback); - }; - }); - - return target; -}; - -// -// ### function longestElement -// #### @xs {Array} Array to calculate against -// Returns the longest element in the `xs` array. -// -exports.longestElement = function (xs) { - return Math.max.apply( - null, - xs.map(function (x) { return x.length; }) - ); -}; - -// -// ### function clone (obj) -// #### @obj {Object} Object to clone. -// Helper method for deep cloning pure JSON objects -// i.e. JSON objects that are either literals or objects (no Arrays, etc) -// -exports.clone = function (obj) { - // we only need to clone refrence types (Object) - if (!(obj instanceof Object)) { - return obj; - } - else if (obj instanceof Date) { - return obj; - } - - var copy = {}; - for (var i in obj) { - if (Array.isArray(obj[i])) { - copy[i] = obj[i].slice(0); - } - else if (obj[i] instanceof Buffer) { - copy[i] = obj[i].slice(0); - } - else if (typeof obj[i] != 'function') { - copy[i] = obj[i] instanceof Object ? exports.clone(obj[i]) : obj[i]; - } - } - - return copy; -}; - -// -// ### function log (options) -// #### @options {Object} All information about the log serialization. -// Generic logging function for returning timestamped strings -// with the following options: -// -// { -// level: 'level to add to serialized message', -// message: 'message to serialize', -// meta: 'additional logging metadata to serialize', -// colorize: false, // Colorizes output (only if `.json` is false) -// timestamp: true // Adds a timestamp to the serialized message -// } -// -exports.log = function (options) { - var timestampFn = typeof options.timestamp === 'function' - ? options.timestamp - : exports.timestamp, - timestamp = options.timestamp ? timestampFn() : null, - meta = options.meta ? exports.clone(cycle.decycle(options.meta)) : null, - output; - - // - // raw mode is intended for outputing winston as streaming JSON to STDOUT - // - if (options.raw) { - if (typeof meta !== 'object' && meta != null) { - meta = { meta: meta }; - } - output = exports.clone(meta) || {}; - output.level = options.level; - output.message = options.message.stripColors; - return JSON.stringify(output); - } - - // - // json mode is intended for pretty printing multi-line json to the terminal - // - if (options.json) { - if (typeof meta !== 'object' && meta != null) { - meta = { meta: meta }; - } - - output = exports.clone(meta) || {}; - output.level = options.level; - output.message = options.message; - - if (timestamp) { - output.timestamp = timestamp; - } - - if (typeof options.stringify === 'function') { - return options.stringify(output); - } - - return JSON.stringify(output, function (key, value) { - return value instanceof Buffer - ? value.toString('base64') - : value; - }); - } - - output = timestamp ? timestamp + ' - ' : ''; - output += options.colorize ? config.colorize(options.level) : options.level; - output += (': ' + options.message); - - if (meta) { - if (typeof meta !== 'object') { - output += ' ' + meta; - } - else if (Object.keys(meta).length > 0) { - output += ' ' + (options.prettyPrint ? ('\n' + util.inspect(meta, false, null, options.colorize)) : exports.serialize(meta)); - } - } - - return output; -}; - -exports.capitalize = function (str) { - return str && str[0].toUpperCase() + str.slice(1); -}; - -// -// ### function hash (str) -// #### @str {string} String to hash. -// Utility function for creating unique ids -// e.g. Profiling incoming HTTP requests on the same tick -// -exports.hash = function (str) { - return crypto.createHash('sha1').update(str).digest('hex'); -}; - -// -// ### function pad (n) -// Returns a padded string if `n < 10`. -// -exports.pad = function (n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -}; - -// -// ### function timestamp () -// Returns a timestamp string for the current time. -// -exports.timestamp = function () { - return new Date().toISOString(); -}; - -// -// ### function serialize (obj, key) -// #### @obj {Object|literal} Object to serialize -// #### @key {string} **Optional** Optional key represented by obj in a larger object -// Performs simple comma-separated, `key=value` serialization for Loggly when -// logging to non-JSON inputs. -// -exports.serialize = function (obj, key) { - if (obj === null) { - obj = 'null'; - } - else if (obj === undefined) { - obj = 'undefined'; - } - else if (obj === false) { - obj = 'false'; - } - - if (typeof obj !== 'object') { - return key ? key + '=' + obj : obj; - } - - if (obj instanceof Buffer) { - return key ? key + '=' + obj.toString('base64') : obj.toString('base64'); - } - - var msg = '', - keys = Object.keys(obj), - length = keys.length; - - for (var i = 0; i < length; i++) { - if (Array.isArray(obj[keys[i]])) { - msg += keys[i] + '=['; - - for (var j = 0, l = obj[keys[i]].length; j < l; j++) { - msg += exports.serialize(obj[keys[i]][j]); - if (j < l - 1) { - msg += ', '; - } - } - - msg += ']'; - } - else if (obj[keys[i]] instanceof Date) { - msg += keys[i] + '=' + obj[keys[i]]; - } - else { - msg += exports.serialize(obj[keys[i]], keys[i]); - } - - if (i < length - 1) { - msg += ', '; - } - } - - return msg; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config.js deleted file mode 100644 index a466086f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config.js +++ /dev/null @@ -1,45 +0,0 @@ -/* - * config.js: Default settings for all levels that winston knows about - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var colors = require('colors'); - -var config = exports, - allColors = exports.allColors = {}; - -config.addColors = function (colors) { - mixin(allColors, colors); -}; - -config.colorize = function (level) { - return level[allColors[level]]; -}; - -// -// Export config sets -// -config.cli = require('./config/cli-config'); -config.npm = require('./config/npm-config'); -config.syslog = require('./config/syslog-config'); - -// -// Add colors for pre-defined config sets -// -config.addColors(config.npm.colors); -config.addColors(config.syslog.colors); - -function mixin (target) { - var args = Array.prototype.slice.call(arguments, 1); - - args.forEach(function (a) { - var keys = Object.keys(a); - for (var i = 0; i < keys.length; i++) { - target[keys[i]] = a[keys[i]]; - } - }); - return target; -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config/cli-config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config/cli-config.js deleted file mode 100644 index ec4c40f3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config/cli-config.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * cli-config.js: Config that conform to commonly used CLI logging levels. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var cliConfig = exports; - -cliConfig.levels = { - silly: 0, - input: 1, - verbose: 2, - prompt: 3, - info: 4, - data: 5, - help: 6, - warn: 7, - debug: 8, - error: 9 -}; - -cliConfig.colors = { - silly: 'magenta', - input: 'grey', - verbose: 'cyan', - prompt: 'grey', - info: 'green', - data: 'grey', - help: 'cyan', - warn: 'yellow', - debug: 'blue', - error: 'red' -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config/npm-config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config/npm-config.js deleted file mode 100644 index 176f9ac5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config/npm-config.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * npm-config.js: Config that conform to npm logging levels. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var npmConfig = exports; - -npmConfig.levels = { - silly: 0, - verbose: 1, - info: 2, - warn: 3, - debug: 4, - error: 5 -}; - -npmConfig.colors = { - silly: 'magenta', - verbose: 'cyan', - info: 'green', - warn: 'yellow', - debug: 'blue', - error: 'red' -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config/syslog-config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config/syslog-config.js deleted file mode 100644 index 00c1f316..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/config/syslog-config.js +++ /dev/null @@ -1,31 +0,0 @@ -/* - * syslog-config.js: Config that conform to syslog logging levels. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var syslogConfig = exports; - -syslogConfig.levels = { - debug: 0, - info: 1, - notice: 2, - warning: 3, - error: 4, - crit: 5, - alert: 6, - emerg: 7 -}; - -syslogConfig.colors = { - debug: 'blue', - info: 'green', - notice: 'yellow', - warning: 'red', - error: 'red', - crit: 'red', - alert: 'yellow', - emerg: 'red' -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/container.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/container.js deleted file mode 100644 index 574f25a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/container.js +++ /dev/null @@ -1,101 +0,0 @@ -/* - * container.js: Inversion of control container for winston logger instances - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var common = require('./common'), - winston = require('../winston'); - -// -// ### function Container (options) -// #### @options {Object} Default pass-thru options for Loggers -// Constructor function for the Container object responsible for managing -// a set of `winston.Logger` instances based on string ids. -// -var Container = exports.Container = function (options) { - this.loggers = {}; - this.options = options || {}; - this.default = { - transports: [ - new winston.transports.Console({ - level: 'silly', - colorize: false - }) - ] - } -}; - -// -// ### function get / add (id, options) -// #### @id {string} Id of the Logger to get -// #### @options {Object} **Optional** Options for the Logger instance -// Retreives a `winston.Logger` instance for the specified `id`. If -// an instance does not exist, one is created. -// -Container.prototype.get = Container.prototype.add = function (id, options) { - if (!this.loggers[id]) { - options = common.clone(options || this.options || this.default); - options.transports = options.transports || []; - - if (options.transports.length === 0 && (!options || !options['console'])) { - options.transports.push(this.default.transports[0]); - } - - Object.keys(options).forEach(function (key) { - if (key === 'transports') { - return; - } - - var name = common.capitalize(key); - - if (!winston.transports[name]) { - throw new Error('Cannot add unknown transport: ' + name); - } - - var namedOptions = options[key]; - namedOptions.id = id; - options.transports.push(new (winston.transports[name])(namedOptions)); - }); - - this.loggers[id] = new winston.Logger(options); - } - - return this.loggers[id]; -}; - -// -// ### function close (id) -// #### @id {string} **Optional** Id of the Logger instance to find -// Returns a boolean value indicating if this instance -// has a logger with the specified `id`. -// -Container.prototype.has = function (id) { - return !!this.loggers[id]; -}; - -// -// ### function close (id) -// #### @id {string} **Optional** Id of the Logger instance to close -// Closes a `Logger` instance with the specified `id` if it exists. -// If no `id` is supplied then all Loggers are closed. -// -Container.prototype.close = function (id) { - var self = this; - - function _close (id) { - if (!self.loggers[id]) { - return; - } - - self.loggers[id].close(); - delete self.loggers[id]; - } - - return id ? _close(id) : Object.keys(this.loggers).forEach(function (id) { - _close(id); - }); -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/exception.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/exception.js deleted file mode 100644 index 22717dd9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/exception.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * exception.js: Utility methods for gathing information about uncaughtExceptions. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var os = require('os'), - stackTrace = require('stack-trace'); - -var exception = exports; - -exception.getAllInfo = function (err) { - return { - date: new Date().toString(), - process: exception.getProcessInfo(), - os: exception.getOsInfo(), - trace: exception.getTrace(err), - stack: err.stack && err.stack.split('\n') - }; -}; - -exception.getProcessInfo = function () { - return { - pid: process.pid, - uid: process.getuid ? process.getuid() : null, - gid: process.getgid ? process.getgid() : null, - cwd: process.cwd(), - execPath: process.execPath, - version: process.version, - argv: process.argv, - memoryUsage: process.memoryUsage() - }; -}; - -exception.getOsInfo = function () { - return { - loadavg: os.loadavg(), - uptime: os.uptime() - }; -}; - -exception.getTrace = function (err) { - var trace = err ? stackTrace.parse(err) : stackTrace.get(); - return trace.map(function (site) { - return { - column: site.getColumnNumber(), - file: site.getFileName(), - function: site.getFunctionName(), - line: site.getLineNumber(), - method: site.getMethodName(), - native: site.isNative(), - } - }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/logger.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/logger.js deleted file mode 100644 index 49e6d4c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/logger.js +++ /dev/null @@ -1,668 +0,0 @@ -/* - * logger.js: Core logger object used by winston. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var events = require('events'), - util = require('util'), - async = require('async'), - config = require('./config'), - common = require('./common'), - exception = require('./exception'), - Stream = require('stream').Stream; - -// -// Time constants -// -var ticksPerMillisecond = 10000; - -// -// ### function Logger (options) -// #### @options {Object} Options for this instance. -// Constructor function for the Logger object responsible -// for persisting log messages and metadata to one or more transports. -// -var Logger = exports.Logger = function (options) { - events.EventEmitter.call(this); - options = options || {}; - - var self = this, - handleExceptions = false; - - // - // Set Levels and default logging level - // - this.padLevels = options.padLevels || false; - this.setLevels(options.levels); - if (options.colors) { - config.addColors(options.colors); - } - - // - // Hoist other options onto this instance. - // - this.level = options.level || 'info'; - this.emitErrs = options.emitErrs || false; - this.stripColors = options.stripColors || false; - this.exitOnError = typeof options.exitOnError !== 'undefined' - ? options.exitOnError - : true; - - // - // Setup other intelligent default settings. - // - this.transports = {}; - this.rewriters = []; - this.exceptionHandlers = {}; - this.profilers = {}; - this._names = []; - this._hnames = []; - - if (options.transports) { - options.transports.forEach(function (transport) { - self.add(transport, null, true); - - if (transport.handleExceptions) { - handleExceptions = true; - } - }); - } - - if (options.rewriters) { - options.rewriters.forEach(function (rewriter) { - self.addRewriter(rewriter); - }); - } - - if (options.exceptionHandlers) { - handleExceptions = true; - options.exceptionHandlers.forEach(function (handler) { - self._hnames.push(handler.name); - self.exceptionHandlers[handler.name] = handler; - }); - } - - if (options.handleExceptions || handleExceptions) { - this.handleExceptions(); - } -}; - -// -// Inherit from `events.EventEmitter`. -// -util.inherits(Logger, events.EventEmitter); - -// -// ### function extend (target) -// #### @target {Object} Target to extend. -// Extends the target object with a 'log' method -// along with a method for each level in this instance. -// -Logger.prototype.extend = function (target) { - var self = this; - ['log', 'profile', 'startTimer'].concat(Object.keys(this.levels)).forEach(function (method) { - target[method] = function () { - return self[method].apply(self, arguments); - }; - }); - - return this; -}; - -// -// ### function log (level, msg, [meta], callback) -// #### @level {string} Level at which to log the message. -// #### @msg {string} Message to log -// #### @meta {Object} **Optional** Additional metadata to attach -// #### @callback {function} Continuation to respond to when complete. -// Core logging method exposed to Winston. Metadata is optional. -// -Logger.prototype.log = function (level, msg) { - var self = this, - callback, - meta; - - if (arguments.length === 3) { - if (typeof arguments[2] === 'function') { - meta = {}; - callback = arguments[2]; - } - else if (typeof arguments[2] === 'object') { - meta = arguments[2]; - } - } - else if (arguments.length === 4) { - meta = arguments[2]; - callback = arguments[3]; - } - - // If we should pad for levels, do so - if (this.padLevels) { - msg = new Array(this.levelLength - level.length + 1).join(' ') + msg; - } - - function onError (err) { - if (callback) { - callback(err); - } - else if (self.emitErrs) { - self.emit('error', err); - }; - } - - if (this.transports.length === 0) { - return onError(new Error('Cannot log with no transports.')); - } - else if (typeof self.levels[level] === 'undefined') { - return onError(new Error('Unknown log level: ' + level)); - } - - this.rewriters.forEach(function (rewriter) { - meta = rewriter(level, msg, meta); - }); - - // - // For consideration of terminal 'color" programs like colors.js, - // which can add ANSI escape color codes to strings, we destyle the - // ANSI color escape codes when `this.stripColors` is set. - // - // see: http://en.wikipedia.org/wiki/ANSI_escape_code - // - if (this.stripColors) { - var code = /\u001b\[(\d+(;\d+)*)?m/g; - msg = ('' + msg).replace(code, ''); - } - - // - // Log for each transport and emit 'logging' event - // - function emit(name, next) { - var transport = self.transports[name]; - if ((transport.level && self.levels[transport.level] <= self.levels[level]) - || (!transport.level && self.levels[self.level] <= self.levels[level])) { - transport.log(level, msg, meta, function (err) { - if (err) { - err.transport = transport; - cb(err); - return next(); - } - self.emit('logging', transport, level, msg, meta); - next(); - }); - } else { - next(); - } - } - - // - // Respond to the callback - // - function cb(err) { - if (callback) { - if (err) return callback(err); - callback(null, level, msg, meta); - } - callback = null; - } - - async.forEach(this._names, emit, cb); - - return this; -}; - -// -// ### function query (options, callback) -// #### @options {Object} Query options for this instance. -// #### @callback {function} Continuation to respond to when complete. -// Queries the all transports for this instance with the specified `options`. -// This will aggregate each transport's results into one object containing -// a property per transport. -// -Logger.prototype.query = function (options, callback) { - if (typeof options === 'function') { - callback = options; - options = {}; - } - - var self = this, - options = options || {}, - results = {}, - query = common.clone(options.query) || {}, - transports; - - // - // Helper function to query a single transport - // - function queryTransport(transport, next) { - if (options.query) { - options.query = transport.formatQuery(query); - } - - transport.query(options, function (err, results) { - if (err) { - return next(err); - } - - next(null, transport.formatResults(results, options.format)); - }); - } - - // - // Helper function to accumulate the results from - // `queryTransport` into the `results`. - // - function addResults (transport, next) { - queryTransport(transport, function (err, result) { - result = err || result; - if (result) { - results[transport.name] = result; - } - next(); - }); - } - - // - // If an explicit transport is being queried then - // respond with the results from only that transport - // - if (options.transport) { - options.transport = options.transport.toLowerCase(); - return queryTransport(this.transports[options.transport], callback); - } - - // - // Create a list of all transports for this instance. - // - transports = this._names.map(function (name) { - return self.transports[name]; - }).filter(function (transport) { - return !!transport.query; - }); - - // - // Iterate over the transports in parallel setting the - // appropriate key in the `results` - // - async.forEach(transports, addResults, function () { - callback(null, results); - }); -}; - -// -// ### function stream (options) -// #### @options {Object} Stream options for this instance. -// Returns a log stream for all transports. Options object is optional. -// -Logger.prototype.stream = function (options) { - var self = this, - options = options || {}, - out = new Stream, - streams = [], - transports; - - if (options.transport) { - var transport = this.transports[options.transport]; - delete options.transport; - if (transport && transport.stream) { - return transport.stream(options); - } - } - - out._streams = streams; - out.destroy = function () { - var i = streams.length; - while (i--) streams[i].destroy(); - }; - - // - // Create a list of all transports for this instance. - // - transports = this._names.map(function (name) { - return self.transports[name]; - }).filter(function (transport) { - return !!transport.stream; - }); - - transports.forEach(function (transport) { - var stream = transport.stream(options); - if (!stream) return; - - streams.push(stream); - - stream.on('log', function (log) { - log.transport = log.transport || []; - log.transport.push(transport.name); - out.emit('log', log); - }); - - stream.on('error', function (err) { - err.transport = err.transport || []; - err.transport.push(transport.name); - out.emit('error', err); - }); - }); - - return out; -}; - -// -// ### function close () -// Cleans up resources (streams, event listeners) for all -// transports associated with this instance (if necessary). -// -Logger.prototype.close = function () { - var self = this; - - this._names.forEach(function (name) { - var transport = self.transports[name]; - if (transport && transport.close) { - transport.close(); - } - }); -}; - -// -// ### function handleExceptions () -// Handles `uncaughtException` events for the current process -// -Logger.prototype.handleExceptions = function () { - var args = Array.prototype.slice.call(arguments), - handlers = [], - self = this; - - args.forEach(function (a) { - if (Array.isArray(a)) { - handlers = handlers.concat(a); - } - else { - handlers.push(a); - } - }); - - handlers.forEach(function (handler) { - self.exceptionHandlers[handler.name] = handler; - }); - - this._hnames = Object.keys(self.exceptionHandlers); - - if (!this.catchExceptions) { - this.catchExceptions = this._uncaughtException.bind(this); - process.on('uncaughtException', this.catchExceptions); - } -}; - -// -// ### function unhandleExceptions () -// Removes any handlers to `uncaughtException` events -// for the current process -// -Logger.prototype.unhandleExceptions = function () { - var self = this; - - if (this.catchExceptions) { - Object.keys(this.exceptionHandlers).forEach(function (name) { - if (handler.close) { - handler.close(); - } - }); - - this.exceptionHandlers = {}; - Object.keys(this.transports).forEach(function (name) { - var transport = self.transports[name]; - if (transport.handleExceptions) { - transport.handleExceptions = false; - } - }) - - process.removeListener('uncaughtException', this.catchExceptions); - this.catchExceptions = false; - } -}; - -// -// ### function add (transport, [options]) -// #### @transport {Transport} Prototype of the Transport object to add. -// #### @options {Object} **Optional** Options for the Transport to add. -// #### @instance {Boolean} **Optional** Value indicating if `transport` is already instantiated. -// Adds a transport of the specified type to this instance. -// -Logger.prototype.add = function (transport, options, created) { - var instance = created ? transport : (new (transport)(options)); - - if (!instance.name && !instance.log) { - throw new Error('Unknown transport with no log() method'); - } - else if (this.transports[instance.name]) { - throw new Error('Transport already attached: ' + instance.name); - } - - this.transports[instance.name] = instance; - this._names = Object.keys(this.transports); - - // - // Listen for the `error` event on the new Transport - // - instance._onError = this._onError.bind(this, instance) - instance.on('error', instance._onError); - - // - // If this transport has `handleExceptions` set to `true` - // and we are not already handling exceptions, do so. - // - if (instance.handleExceptions && !this.catchExceptions) { - this.handleExceptions(); - } - - return this; -}; - -// -// ### function addRewriter (transport, [options]) -// #### @transport {Transport} Prototype of the Transport object to add. -// #### @options {Object} **Optional** Options for the Transport to add. -// #### @instance {Boolean} **Optional** Value indicating if `transport` is already instantiated. -// Adds a transport of the specified type to this instance. -// -Logger.prototype.addRewriter = function (rewriter) { - this.rewriters.push(rewriter); -} - -// -// ### function clear () -// Remove all transports from this instance -// -Logger.prototype.clear = function () { - for (var name in this.transports) { - this.remove({ name: name }); - } -}; - -// -// ### function remove (transport) -// #### @transport {Transport} Transport to remove. -// Removes a transport of the specified type from this instance. -// -Logger.prototype.remove = function (transport) { - var name = transport.name || transport.prototype.name; - - if (!this.transports[name]) { - throw new Error('Transport ' + name + ' not attached to this instance'); - } - - var instance = this.transports[name]; - delete this.transports[name]; - this._names = Object.keys(this.transports); - - if (instance.close) { - instance.close(); - } - - instance.removeListener('error', instance._onError); - return this; -}; - -var ProfileHandler = function (logger) { - this.logger = logger; - - this.start = Date.now(); - - this.done = function (msg) { - var args, callback, meta; - args = Array.prototype.slice.call(arguments); - callback = typeof args[args.length - 1] === 'function' ? args.pop() : null; - meta = typeof args[args.length - 1] === 'object' ? args.pop() : {}; - - meta.duration = (Date.now()) - this.start + 'ms'; - - return this.logger.info(msg, meta, callback); - } -} - -Logger.prototype.startTimer = function () { - return new ProfileHandler(this); -} - -// -// ### function profile (id, [msg, meta, callback]) -// #### @id {string} Unique id of the profiler -// #### @msg {string} **Optional** Message to log -// #### @meta {Object} **Optional** Additional metadata to attach -// #### @callback {function} **Optional** Continuation to respond to when complete. -// Tracks the time inbetween subsequent calls to this method -// with the same `id` parameter. The second call to this method -// will log the difference in milliseconds along with the message. -// -Logger.prototype.profile = function (id) { - var now = Date.now(), then, args, - msg, meta, callback; - - if (this.profilers[id]) { - then = this.profilers[id]; - delete this.profilers[id]; - - // Support variable arguments: msg, meta, callback - args = Array.prototype.slice.call(arguments); - callback = typeof args[args.length - 1] === 'function' ? args.pop() : null; - meta = typeof args[args.length - 1] === 'object' ? args.pop() : {}; - msg = args.length === 2 ? args[1] : id; - - // Set the duration property of the metadata - meta.duration = now - then + 'ms'; - return this.info(msg, meta, callback); - } - else { - this.profilers[id] = now; - } - - return this; -}; - -// -// ### function setLevels (target) -// #### @target {Object} Target levels to use on this instance -// Sets the `target` levels specified on this instance. -// -Logger.prototype.setLevels = function (target) { - return common.setLevels(this, this.levels, target); -}; - -// -// ### function cli () -// Configures this instance to have the default -// settings for command-line interfaces: no timestamp, -// colors enabled, padded output, and additional levels. -// -Logger.prototype.cli = function () { - this.padLevels = true; - this.setLevels(config.cli.levels); - config.addColors(config.cli.colors); - - if (this.transports.console) { - this.transports.console.colorize = true; - this.transports.console.timestamp = false; - } - - return this; -}; - -// -// ### @private function _uncaughtException (err) -// #### @err {Error} Error to handle -// Logs all relevant information around the `err` and -// exits the current process. -// -Logger.prototype._uncaughtException = function (err) { - var self = this, - responded = false, - info = exception.getAllInfo(err), - handlers = this._getExceptionHandlers(), - timeout, - doExit; - - // - // Calculate if we should exit on this error - // - doExit = typeof this.exitOnError === 'function' - ? this.exitOnError(err) - : this.exitOnError; - - function logAndWait(transport, next) { - transport.logException('uncaughtException', info, next, err); - } - - function gracefulExit() { - if (doExit && !responded) { - // - // Remark: Currently ignoring any exceptions from transports - // when catching uncaught exceptions. - // - clearTimeout(timeout); - responded = true; - process.exit(1); - } - } - - if (!handlers || handlers.length === 0) { - return gracefulExit(); - } - - // - // Log to all transports and allow the operation to take - // only up to `3000ms`. - // - async.forEach(handlers, logAndWait, gracefulExit); - if (doExit) { - timeout = setTimeout(gracefulExit, 3000); - } -}; - -// -// ### @private function _getExceptionHandlers () -// Returns the list of transports and exceptionHandlers -// for this instance. -// -Logger.prototype._getExceptionHandlers = function () { - var self = this; - - return this._hnames.map(function (name) { - return self.exceptionHandlers[name]; - }).concat(this._names.map(function (name) { - return self.transports[name].handleExceptions && self.transports[name]; - })).filter(Boolean); -}; - -// -// ### @private function _onError (transport, err) -// #### @transport {Object} Transport on which the error occured -// #### @err {Error} Error that occurred on the transport -// Bubbles the error, `err`, that occured on the specified `transport` -// up from this instance if `emitErrs` has been set. -// -Logger.prototype._onError = function (transport, err) { - if (this.emitErrs) { - this.emit('error', err, transport); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports.js deleted file mode 100644 index 1bd9f057..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - * transports.js: Set of all transports Winston knows about - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var fs = require('fs'), - path = require('path'), - common = require('./common'); - -var transports = exports; - -// -// Setup all transports as lazy-loaded getters. -// -fs.readdirSync(path.join(__dirname, 'transports')).forEach(function (file) { - var transport = file.replace('.js', ''), - name = common.capitalize(transport); - - if (transport === 'transport') { - return; - } - - transports.__defineGetter__(name, function () { - return require('./transports/' + transport)[name]; - }); -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/console.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/console.js deleted file mode 100644 index 43cdee3b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/console.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - * console.js: Transport for outputting to the console - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var events = require('events'), - util = require('util'), - colors = require('colors'), - common = require('../common'), - Transport = require('./transport').Transport; - -// -// ### function Console (options) -// #### @options {Object} Options for this instance. -// Constructor function for the Console transport object responsible -// for persisting log messages and metadata to a terminal or TTY. -// -var Console = exports.Console = function (options) { - Transport.call(this, options); - options = options || {}; - - this.name = 'console'; - this.json = options.json || false; - this.colorize = options.colorize || false; - this.prettyPrint = options.prettyPrint || false; - this.timestamp = typeof options.timestamp !== 'undefined' ? options.timestamp : false; - - if (this.json) { - this.stringify = options.stringify || function (obj) { - return JSON.stringify(obj, null, 2); - }; - } -}; - -// -// Inherit from `winston.Transport`. -// -util.inherits(Console, Transport); - -// -// Expose the name of this Transport on the prototype -// -Console.prototype.name = 'console'; - -// -// ### function log (level, msg, [meta], callback) -// #### @level {string} Level at which to log the message. -// #### @msg {string} Message to log -// #### @meta {Object} **Optional** Additional metadata to attach -// #### @callback {function} Continuation to respond to when complete. -// Core logging method exposed to Winston. Metadata is optional. -// -Console.prototype.log = function (level, msg, meta, callback) { - if (this.silent) { - return callback(null, true); - } - - var self = this, - output; - - output = common.log({ - colorize: this.colorize, - json: this.json, - level: level, - message: msg, - meta: meta, - stringify: this.stringify, - timestamp: this.timestamp, - prettyPrint: this.prettyPrint, - raw: this.raw - }); - - if (level === 'error' || level === 'debug') { - console.error(output); - } else { - console.log(output); - } - - // - // Emit the `logged` event immediately because the event loop - // will not exit until `process.stdout` has drained anyway. - // - self.emit('logged'); - callback(null, true); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/file.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/file.js deleted file mode 100644 index 7080e287..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/file.js +++ /dev/null @@ -1,575 +0,0 @@ -/* - * file.js: Transport for outputting to a local log file - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var events = require('events'), - fs = require('fs'), - path = require('path'), - util = require('util'), - colors = require('colors'), - common = require('../common'), - Transport = require('./transport').Transport, - Stream = require('stream').Stream; - -// -// ### function File (options) -// #### @options {Object} Options for this instance. -// Constructor function for the File transport object responsible -// for persisting log messages and metadata to one or more files. -// -var File = exports.File = function (options) { - Transport.call(this, options); - - // - // Helper function which throws an `Error` in the event - // that any of the rest of the arguments is present in `options`. - // - function throwIf (target /*, illegal... */) { - Array.prototype.slice.call(arguments, 1).forEach(function (name) { - if (options[name]) { - throw new Error('Cannot set ' + name + ' and ' + target + 'together'); - } - }); - } - - if (options.filename || options.dirname) { - throwIf('filename or dirname', 'stream'); - this._basename = this.filename = path.basename(options.filename) || 'winston.log'; - this.dirname = options.dirname || path.dirname(options.filename); - this.options = options.options || { flags: 'a' }; - } - else if (options.stream) { - throwIf('stream', 'filename', 'maxsize'); - this._stream = options.stream; - - // - // We need to listen for drain events when - // write() returns false. This can make node - // mad at times. - // - this._stream.setMaxListeners(Infinity); - } - else { - throw new Error('Cannot log to file without filename or stream.'); - } - - this.json = options.json !== false; - this.colorize = options.colorize || false; - this.maxsize = options.maxsize || null; - this.maxFiles = options.maxFiles || null; - this.prettyPrint = options.prettyPrint || false; - this.timestamp = options.timestamp != null ? options.timestamp : true; - - if (this.json) { - this.stringify = options.stringify; - } - - // - // Internal state variables representing the number - // of files this instance has created and the current - // size (in bytes) of the current logfile. - // - this._size = 0; - this._created = 0; - this._buffer = []; - this._draining = false; -}; - -// -// Inherit from `winston.Transport`. -// -util.inherits(File, Transport); - -// -// Expose the name of this Transport on the prototype -// -File.prototype.name = 'file'; - -// -// ### function log (level, msg, [meta], callback) -// #### @level {string} Level at which to log the message. -// #### @msg {string} Message to log -// #### @meta {Object} **Optional** Additional metadata to attach -// #### @callback {function} Continuation to respond to when complete. -// Core logging method exposed to Winston. Metadata is optional. -// -File.prototype.log = function (level, msg, meta, callback) { - if (this.silent) { - return callback(null, true); - } - - var self = this; - - var output = common.log({ - level: level, - message: msg, - meta: meta, - json: this.json, - colorize: this.colorize, - prettyPrint: this.prettyPrint, - timestamp: this.timestamp, - stringify: this.stringify - }) + '\n'; - - this._size += output.length; - - if (!this.filename) { - // - // If there is no `filename` on this instance then it was configured - // with a raw `WriteableStream` instance and we should not perform any - // size restrictions. - // - this._write(output, callback); - this._lazyDrain(); - } - else { - this.open(function (err) { - if (err) { - // - // If there was an error enqueue the message - // - return self._buffer.push([output, callback]); - } - - self._write(output, callback); - self._lazyDrain(); - }); - } -}; - -// -// ### function _write (data, cb) -// #### @data {String|Buffer} Data to write to the instance's stream. -// #### @cb {function} Continuation to respond to when complete. -// Write to the stream, ensure execution of a callback on completion. -// -File.prototype._write = function(data, callback) { - // If this is a file write stream, we could use the builtin - // callback functionality, however, the stream is not guaranteed - // to be an fs.WriteStream. - var ret = this._stream.write(data); - if (!callback) return; - if (ret === false) { - return this._stream.once('drain', function() { - callback(null, true); - }); - } - callback(null, true); -}; - -// -// ### function query (options, callback) -// #### @options {Object} Loggly-like query options for this instance. -// #### @callback {function} Continuation to respond to when complete. -// Query the transport. Options object is optional. -// -File.prototype.query = function (options, callback) { - if (typeof options === 'function') { - callback = options; - options = {}; - } - - var file = path.join(this.dirname, this.filename), - options = this.normalizeQuery(options), - buff = '', - results = [], - row = 0; - - var stream = fs.createReadStream(file, { - encoding: 'utf8' - }); - - stream.on('error', function (err) { - if (stream.readable) { - stream.destroy(); - } - if (!callback) return; - return err.code !== 'ENOENT' - ? callback(err) - : callback(null, results); - }); - - stream.on('data', function (data) { - var data = (buff + data).split(/\n+/), - l = data.length - 1, - i = 0; - - for (; i < l; i++) { - if (!options.start || row >= options.start) { - add(data[i]); - } - row++; - } - - buff = data[l]; - }); - - stream.on('close', function () { - if (buff) add(buff, true); - if (options.order === 'desc') { - results = results.reverse(); - } - if (callback) callback(null, results); - }); - - function add(buff, attempt) { - try { - var log = JSON.parse(buff); - if (check(log)) push(log); - } catch (e) { - if (!attempt) { - stream.emit('error', e); - } - } - } - - function push(log) { - if (options.rows && results.length >= options.rows) { - if (stream.readable) { - stream.destroy(); - } - return; - } - - if (options.fields) { - var obj = {}; - options.fields.forEach(function (key) { - obj[key] = log[key]; - }); - log = obj; - } - - results.push(log); - } - - function check(log) { - if (!log) return; - - if (typeof log !== 'object') return; - - var time = new Date(log.timestamp); - if ((options.from && time < options.from) - || (options.until && time > options.until)) { - return; - } - - return true; - } -}; - -// -// ### function _tail (options, callback) -// #### @options {Object} Options for tail. -// #### @callback {function} Callback to execute on every line. -// `tail -f` a file. Options must include file. -// -File.prototype._tail = function tail(options, callback) { - var stream = fs.createReadStream(options.file, { encoding: 'utf8' }), - buff = '', - destroy, - row = 0; - - destroy = stream.destroy.bind(stream); - stream.destroy = function () {}; - - if (options.start === -1) { - delete options.start; - } - - if (options.start == null) { - stream.once('end', bind); - } else { - bind(); - } - - function bind() { - stream.on('data', function (data) { - var data = (buff + data).split(/\n+/), - l = data.length - 1, - i = 0; - - for (; i < l; i++) { - if (options.start == null || row > options.start) { - stream.emit('line', data[i]); - } - row++; - } - - buff = data[l]; - }); - - stream.on('line', function (data) { - if (callback) callback(data); - }); - - stream.on('error', function (err) { - destroy(); - }); - - stream.on('end', function () { - if (buff) { - stream.emit('line', buff); - buff = ''; - } - - resume(); - }); - - resume(); - } - - function resume() { - setTimeout(function () { - stream.resume(); - }, 1000); - } - - return destroy; -}; - -// -// ### function stream (options) -// #### @options {Object} Stream options for this instance. -// Returns a log stream for this transport. Options object is optional. -// -File.prototype.stream = function (options) { - var file = path.join(this.dirname, this.filename), - options = options || {}, - stream = new Stream; - - var tail = { - file: file, - start: options.start - }; - - stream.destroy = this._tail(tail, function (line) { - try { - stream.emit('data', line); - line = JSON.parse(line); - stream.emit('log', line); - } catch (e) { - stream.emit('error', e); - } - }); - - return stream; -}; - -// -// ### function open (callback) -// #### @callback {function} Continuation to respond to when complete -// Checks to see if a new file needs to be created based on the `maxsize` -// (if any) and the current size of the file used. -// -File.prototype.open = function (callback) { - if (this.opening) { - // - // If we are already attempting to open the next - // available file then respond with a value indicating - // that the message should be buffered. - // - return callback(true); - } - else if (!this._stream || (this.maxsize && this._size >= this.maxsize)) { - // - // If we dont have a stream or have exceeded our size, then create - // the next stream and respond with a value indicating that - // the message should be buffered. - // - callback(true); - return this._createStream(); - } - - // - // Otherwise we have a valid (and ready) stream. - // - callback(); -}; - -// -// ### function close () -// Closes the stream associated with this instance. -// -File.prototype.close = function () { - var self = this; - - if (this._stream) { - this._stream.end(); - this._stream.destroySoon(); - - this._stream.once('drain', function () { - self.emit('flush'); - self.emit('closed'); - }); - } -}; - -// -// ### function flush () -// Flushes any buffered messages to the current `stream` -// used by this instance. -// -File.prototype.flush = function () { - var self = this; - - // - // Iterate over the `_buffer` of enqueued messaged - // and then write them to the newly created stream. - // - this._buffer.forEach(function (item) { - var str = item[0], - callback = item[1]; - - process.nextTick(function () { - self._write(str, callback); - self._size += str.length; - }); - }); - - // - // Quickly truncate the `_buffer` once the write operations - // have been started - // - self._buffer.length = 0; - - // - // When the stream has drained we have flushed - // our buffer. - // - self._stream.once('drain', function () { - self.emit('flush'); - self.emit('logged'); - }); -}; - -// -// ### @private function _createStream () -// Attempts to open the next appropriate file for this instance -// based on the common state (such as `maxsize` and `_basename`). -// -File.prototype._createStream = function () { - var self = this; - this.opening = true; - - (function checkFile (target) { - var fullname = path.join(self.dirname, target); - - // - // Creates the `WriteStream` and then flushes any - // buffered messages. - // - function createAndFlush (size) { - if (self._stream) { - self._stream.end(); - self._stream.destroySoon(); - } - - self._size = size; - self.filename = target; - self._stream = fs.createWriteStream(fullname, self.options); - - // - // We need to listen for drain events when - // write() returns false. This can make node - // mad at times. - // - self._stream.setMaxListeners(Infinity); - - // - // When the current stream has finished flushing - // then we can be sure we have finished opening - // and thus can emit the `open` event. - // - self.once('flush', function () { - self.opening = false; - self.emit('open', fullname); - }); - - // - // Remark: It is possible that in the time it has taken to find the - // next logfile to be written more data than `maxsize` has been buffered, - // but for sensible limits (10s - 100s of MB) this seems unlikely in less - // than one second. - // - self.flush(); - } - - fs.stat(fullname, function (err, stats) { - if (err) { - if (err.code !== 'ENOENT') { - return self.emit('error', err); - } - - return createAndFlush(0); - } - - if (!stats || (self.maxsize && stats.size >= self.maxsize)) { - // - // If `stats.size` is greater than the `maxsize` for - // this instance then try again - // - return checkFile(self._getFile(true)); - } - - createAndFlush(stats.size); - }); - })(this._getFile()); -}; - -// -// ### @private function _getFile () -// Gets the next filename to use for this instance -// in the case that log filesizes are being capped. -// -File.prototype._getFile = function (inc) { - var self = this, - ext = path.extname(this._basename), - basename = path.basename(this._basename, ext), - remaining; - - if (inc) { - // - // Increment the number of files created or - // checked by this instance. - // - // Check for maxFiles option and delete file - if (this.maxFiles && (this._created >= (this.maxFiles - 1))) { - remaining = this._created - (this.maxFiles - 1); - if (remaining === 0) { - fs.unlinkSync(path.join(this.dirname, basename + ext)); - } - else { - fs.unlinkSync(path.join(this.dirname, basename + remaining + ext)); - } - } - - this._created += 1; - } - - return this._created - ? basename + this._created + ext - : basename + ext; -}; - -// -// ### @private function _lazyDrain () -// Lazily attempts to emit the `logged` event when `this.stream` has -// drained. This is really just a simple mutex that only works because -// Node.js is single-threaded. -// -File.prototype._lazyDrain = function () { - var self = this; - - if (!this._draining && this._stream) { - this._draining = true; - - this._stream.once('drain', function () { - this._draining = false; - self.emit('logged'); - }); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/http.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/http.js deleted file mode 100644 index 9b9c61dd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/http.js +++ /dev/null @@ -1,200 +0,0 @@ -var util = require('util'), - winston = require('../../winston'), - request = require('request'), - Stream = require('stream').Stream; - -// -// ### function Http (options) -// #### @options {Object} Options for this instance. -// Constructor function for the Http transport object responsible -// for persisting log messages and metadata to a terminal or TTY. -// -var Http = exports.Http = function (options) { - options = options || {}; - - this.name = 'http'; - this.ssl = !!options.ssl; - this.host = options.host || 'localhost'; - this.port = options.port; - this.auth = options.auth; - this.path = options.path || ''; - - if (!this.port) { - this.port = this.ssl ? 443 : 80; - } -}; - -util.inherits(Http, winston.Transport); - -// -// Expose the name of this Transport on the prototype -// -Http.prototype.name = 'http'; - -// -// ### function _request (options, callback) -// #### @callback {function} Continuation to respond to when complete. -// Make a request to a winstond server or any http server which can -// handle json-rpc. -// -Http.prototype._request = function (options, callback) { - var options = options || {}, - auth = options.auth || this.auth, - path = options.path || this.path || ''; - - delete options.auth; - delete options.path; - - options = { json: options }; - options.method = 'POST'; - options.url = 'http' - + (this.ssl ? 's' : '') - + '://' - + (auth ? auth.username + ':' : '') - + (auth ? auth.password + '@' : '') - + this.host - + ':' - + this.port - + '/' - + path; - - return request(options, callback); -}; - -// -// ### function log (level, msg, [meta], callback) -// #### @level {string} Level at which to log the message. -// #### @msg {string} Message to log -// #### @meta {Object} **Optional** Additional metadata to attach -// #### @callback {function} Continuation to respond to when complete. -// Core logging method exposed to Winston. Metadata is optional. -// -Http.prototype.log = function (level, msg, meta, callback) { - var self = this; - - if (typeof meta === 'function') { - callback = meta; - meta = {}; - } - - var options = { - method: 'collect', - params: { - level: level, - message: msg, - meta: meta - } - }; - - // hack - if (meta.auth) { - options.auth = meta.auth; - delete meta.auth; - } - - // hack - if (meta.path) { - options.path = meta.path; - delete meta.path; - } - - this._request(options, function (err, res, body) { - if (res && res.statusCode !== 200) { - err = new Error('HTTP Status Code: ' + res.statusCode); - } - - if (err) return callback(err); - - // TODO: emit 'logged' correctly, - // keep track of pending logs. - self.emit('logged'); - - if (callback) callback(null, true); - }); -}; - -// -// ### function query (options, callback) -// #### @options {Object} Loggly-like query options for this instance. -// #### @callback {function} Continuation to respond to when complete. -// Query the transport. Options object is optional. -// -Http.prototype.query = function (options, callback) { - if (typeof options === 'function') { - callback = options; - options = {}; - } - - var self = this, - options = this.normalizeQuery(options); - - options = { - method: 'query', - params: options - }; - - this._request(options, function (err, res, body) { - if (res && res.statusCode !== 200) { - err = new Error('HTTP Status Code: ' + res.statusCode); - } - - if (err) return callback(err); - - if (typeof body === 'string') { - try { - body = JSON.parse(body); - } catch (e) { - return callback(e); - } - } - - callback(null, body); - }); -}; - -// -// ### function stream (options) -// #### @options {Object} Stream options for this instance. -// Returns a log stream for this transport. Options object is optional. -// -Http.prototype.stream = function (options) { - var self = this, - options = options || {}, - stream = new Stream, - req, - buff; - - stream.destroy = function () { - req.destroy(); - }; - - options = { - method: 'stream', - params: options - }; - - req = this._request(options); - buff = ''; - - req.on('data', function (data) { - var data = (buff + data).split(/\n+/), - l = data.length - 1, - i = 0; - - for (; i < l; i++) { - try { - stream.emit('log', JSON.parse(data[i])); - } catch (e) { - stream.emit('error', e); - } - } - - buff = data[l]; - }); - - req.on('error', function (err) { - stream.emit('error', err); - }); - - return stream; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/transport.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/transport.js deleted file mode 100644 index e04410e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/transport.js +++ /dev/null @@ -1,120 +0,0 @@ -/* - * transport.js: Base Transport object for all Winston transports. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - * - */ - -var events = require('events'), - util = require('util'); - -// -// ### function Transport (options) -// #### @options {Object} Options for this instance. -// Constructor function for the Tranport object responsible -// base functionality for all winston transports. -// -var Transport = exports.Transport = function (options) { - events.EventEmitter.call(this); - - options = options || {}; - this.level = options.level || 'info'; - this.silent = options.silent || false; - this.raw = options.raw || false; - - this.handleExceptions = options.handleExceptions || false; -}; - -// -// Inherit from `events.EventEmitter`. -// -util.inherits(Transport, events.EventEmitter); - -// -// ### function formatQuery (query) -// #### @query {string|Object} Query to format -// Formats the specified `query` Object (or string) to conform -// with the underlying implementation of this transport. -// -Transport.prototype.formatQuery = function (query) { - return query; -}; - -// -// ### function normalizeQuery (query) -// #### @options {string|Object} Query to normalize -// Normalize options for query -// -Transport.prototype.normalizeQuery = function (options) { - // - // Use options similar to loggly. - // [See Loggly Search API](http://wiki.loggly.com/retrieve_events#optional) - // - - options = options || {}; - - // limit - options.rows = options.rows || options.limit || 10; - - // starting row offset - options.start = options.start || 0; - - // now - 24 - options.from = options.from || new Date - (24 * 60 * 60 * 1000); - if (typeof options.from !== 'object') { - options.from = new Date(options.from); - } - - // now - options.until = options.until || new Date; - if (typeof options.until !== 'object') { - options.until = new Date(options.until); - } - - // 'asc' or 'desc' - options.order = options.order || 'desc'; - - // which fields to select - options.fields = options.fields; - - return options; -}; - -// -// ### function formatResults (results, options) -// #### @results {Object|Array} Results returned from `.query`. -// #### @options {Object} **Optional** Formatting options -// Formats the specified `results` with the given `options` accordinging -// to the implementation of this transport. -// -Transport.prototype.formatResults = function (results, options) { - return results; -}; - -// -// ### function logException (msg, meta, callback) -// #### @msg {string} Message to log -// #### @meta {Object} **Optional** Additional metadata to attach -// #### @callback {function} Continuation to respond to when complete. -// Logs the specified `msg`, `meta` and responds to the callback once the log -// operation is complete to ensure that the event loop will not exit before -// all logging has completed. -// -Transport.prototype.logException = function (msg, meta, callback) { - var self = this; - - function onLogged () { - self.removeListener('error', onError); - callback(); - } - - function onError () { - self.removeListener('logged', onLogged); - callback(); - } - - this.once('logged', onLogged); - this.once('error', onError); - this.log('error', msg, meta, function () { }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/webhook.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/webhook.js deleted file mode 100644 index 34b4a35a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/lib/winston/transports/webhook.js +++ /dev/null @@ -1,136 +0,0 @@ -/* - * webhook.js: Transport for logging to remote http endpoints ( POST / RECEIVE webhooks ) - * - * (C) 2011 Marak Squires - * MIT LICENCE - * - */ - -var events = require('events'), - http = require('http'), - https = require('https'), - util = require('util'), - cycle = require('cycle'), - common = require('../common'), - Transport = require('./transport').Transport; - -// -// ### function WebHook (options) -// #### @options {Object} Options for this instance. -// Constructor function for the Console transport object responsible -// for making arbitrary HTTP requests whenever log messages and metadata -// are received. -// -var Webhook = exports.Webhook = function (options) { - Transport.call(this, options); - - this.name = 'webhook'; - this.host = options.host || 'localhost'; - this.port = options.port || 8080; - this.method = options.method || 'POST'; - this.path = options.path || '/winston-log'; - - if (options.auth) { - this.auth = {}; - this.auth.username = options.auth.username || ''; - this.auth.password = options.auth.password || ''; - } - - if (options.ssl) { - this.ssl = {}; - this.ssl.key = options.ssl.key || null; - this.ssl.cert = options.ssl.cert || null; - this.ssl.ca = options.ssl.ca; - } -}; - -// -// Inherit from `winston.Transport`. -// -util.inherits(Webhook, Transport); - -// -// Expose the name of this Transport on the prototype -// -Webhook.prototype.name = 'webhook'; - -// -// ### function log (level, msg, [meta], callback) -// #### @level {string} Level at which to log the message. -// #### @msg {string} Message to log -// #### @meta {Object} **Optional** Additional metadata to attach -// #### @callback {function} Continuation to respond to when complete. -// Core logging method exposed to Winston. Metadata is optional. -// -Webhook.prototype.log = function (level, msg, meta, callback) { - if (this.silent) { - return callback(null, true); - } - - var self = this, - meta = cycle.decycle(meta), - message = common.clone(meta), - options, - req; - - // Prepare options for outgoing HTTP request - options = { - host: this.host, - port: this.port, - path: this.path, - method: this.method, - headers: { 'Content-Type': 'application/json' } - }; - - if (this.ssl) { - options.ca = this.ssl.ca; - options.key = this.ssl.key; - options.cert = this.ssl.cert; - } - - if (this.auth) { - // Encode `Authorization` header used by Basic Auth - options.headers['Authorization'] = 'Basic ' + new Buffer( - this.auth.username + ':' + this.auth.password, 'utf8' - ).toString('base64'); - } - - // Perform HTTP logging request - req = (self.ssl ? https : http).request(options, function (res) { - // TODO: emit 'logged' correctly, - // keep track of pending logs. - self.emit('logged'); - if (callback) callback(null, true); - callback = null; - }); - - req.on('error', function (err) { - // - // Propagate the `error` back up to the `Logger` that this - // instance belongs to. - // - self.emit('error', err); - if (callback) callback(err, false); - callback = null; - }); - - // - // Write logging event to the outgoing request body - // - // jsonMessage is currently conforming to JSON-RPC v1.0, - // but without the unique id since there is no anticipated response - // see: http://en.wikipedia.org/wiki/JSON-RPC - // - - var params = common.clone(meta) || {}; - params.timestamp = new Date(); - params.message = msg; - params.level = level; - - req.write(JSON.stringify({ - method: 'log', - params: params - })); - - req.end(); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/.gitmodules b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/.gitmodules deleted file mode 100644 index a9aae984..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/.gitmodules +++ /dev/null @@ -1,9 +0,0 @@ -[submodule "deps/nodeunit"] - path = deps/nodeunit - url = git://github.com/caolan/nodeunit.git -[submodule "deps/UglifyJS"] - path = deps/UglifyJS - url = https://github.com/mishoo/UglifyJS.git -[submodule "deps/nodelint"] - path = deps/nodelint - url = https://github.com/tav/nodelint.git diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/.npmignore deleted file mode 100644 index 9bdfc97c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -deps -dist -test -nodelint.cfg \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/LICENSE deleted file mode 100644 index b7f9d500..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010 Caolan McMahon - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/Makefile deleted file mode 100644 index bad647c6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -PACKAGE = asyncjs -NODEJS = $(if $(shell test -f /usr/bin/nodejs && echo "true"),nodejs,node) -CWD := $(shell pwd) -NODEUNIT = $(CWD)/node_modules/nodeunit/bin/nodeunit -UGLIFY = $(CWD)/node_modules/uglify-js/bin/uglifyjs -NODELINT = $(CWD)/node_modules/nodelint/nodelint - -BUILDDIR = dist - -all: clean test build - -build: $(wildcard lib/*.js) - mkdir -p $(BUILDDIR) - $(UGLIFY) lib/async.js > $(BUILDDIR)/async.min.js - -test: - $(NODEUNIT) test - -clean: - rm -rf $(BUILDDIR) - -lint: - $(NODELINT) --config nodelint.cfg lib/async.js - -.PHONY: test build all diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/README.md deleted file mode 100644 index 1bbbc477..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/README.md +++ /dev/null @@ -1,1021 +0,0 @@ -# Async.js - -Async is a utility module which provides straight-forward, powerful functions -for working with asynchronous JavaScript. Although originally designed for -use with [node.js](http://nodejs.org), it can also be used directly in the -browser. - -Async provides around 20 functions that include the usual 'functional' -suspects (map, reduce, filter, forEach…) as well as some common patterns -for asynchronous control flow (parallel, series, waterfall…). All these -functions assume you follow the node.js convention of providing a single -callback as the last argument of your async function. - - -## Quick Examples - - async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file - }); - - async.filter(['file1','file2','file3'], path.exists, function(results){ - // results now equals an array of the existing files - }); - - async.parallel([ - function(){ ... }, - function(){ ... } - ], callback); - - async.series([ - function(){ ... }, - function(){ ... } - ]); - -There are many more functions available so take a look at the docs below for a -full list. This module aims to be comprehensive, so if you feel anything is -missing please create a GitHub issue for it. - - -## Download - -Releases are available for download from -[GitHub](http://github.com/caolan/async/downloads). -Alternatively, you can install using Node Package Manager (npm): - - npm install async - - -__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 17.5kb Uncompressed - -__Production:__ [async.min.js](https://github.com/caolan/async/raw/master/dist/async.min.js) - 1.7kb Packed and Gzipped - - -## In the Browser - -So far its been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage: - - - - - -## Documentation - -### Collections - -* [forEach](#forEach) -* [map](#map) -* [filter](#filter) -* [reject](#reject) -* [reduce](#reduce) -* [detect](#detect) -* [sortBy](#sortBy) -* [some](#some) -* [every](#every) -* [concat](#concat) - -### Control Flow - -* [series](#series) -* [parallel](#parallel) -* [whilst](#whilst) -* [until](#until) -* [waterfall](#waterfall) -* [queue](#queue) -* [auto](#auto) -* [iterator](#iterator) -* [apply](#apply) -* [nextTick](#nextTick) - -### Utils - -* [memoize](#memoize) -* [unmemoize](#unmemoize) -* [log](#log) -* [dir](#dir) -* [noConflict](#noConflict) - - -## Collections - - -### forEach(arr, iterator, callback) - -Applies an iterator function to each item in an array, in parallel. -The iterator is called with an item from the list and a callback for when it -has finished. If the iterator passes an error to this callback, the main -callback for the forEach function is immediately called with the error. - -Note, that since this function applies the iterator to each item in parallel -there is no guarantee that the iterator functions will complete in order. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(err) - A callback which is called after all the iterator functions - have finished, or an error has occurred. - -__Example__ - - // assuming openFiles is an array of file names and saveFile is a function - // to save the modified contents of that file: - - async.forEach(openFiles, saveFile, function(err){ - // if any of the saves produced an error, err would equal that error - }); - ---------------------------------------- - - -### forEachSeries(arr, iterator, callback) - -The same as forEach only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. This means the iterator functions will complete in order. - - ---------------------------------------- - - -### forEachLimit(arr, limit, iterator, callback) - -The same as forEach only the iterator is applied to batches of items in the -array, in series. The next batch of iterators is only called once the current -one has completed processing. - -__Arguments__ - -* arr - An array to iterate over. -* limit - How many items should be in each batch. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(err) - A callback which is called after all the iterator functions - have finished, or an error has occurred. - -__Example__ - - // Assume documents is an array of JSON objects and requestApi is a - // function that interacts with a rate-limited REST api. - - async.forEachLimit(documents, 20, requestApi, function(err){ - // if any of the saves produced an error, err would equal that error - }); ---------------------------------------- - - -### map(arr, iterator, callback) - -Produces a new array of values by mapping each value in the given array through -the iterator function. The iterator is called with an item from the array and a -callback for when it has finished processing. The callback takes 2 arguments, -an error and the transformed item from the array. If the iterator passes an -error to this callback, the main callback for the map function is immediately -called with the error. - -Note, that since this function applies the iterator to each item in parallel -there is no guarantee that the iterator functions will complete in order, however -the results array will be in the same order as the original array. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed - with an error (which can be null) and a transformed item. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array of the - transformed items from the original array. - -__Example__ - - async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file - }); - ---------------------------------------- - - -### mapSeries(arr, iterator, callback) - -The same as map only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - - ---------------------------------------- - - -### filter(arr, iterator, callback) - -__Alias:__ select - -Returns a new array of all the values which pass an async truth test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like path.exists. This operation is -performed in parallel, but the results array will be in the same order as the -original. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(results) - A callback which is called after all the iterator - functions have finished. - -__Example__ - - async.filter(['file1','file2','file3'], path.exists, function(results){ - // results now equals an array of the existing files - }); - ---------------------------------------- - - -### filterSeries(arr, iterator, callback) - -__alias:__ selectSeries - -The same as filter only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - ---------------------------------------- - - -### reject(arr, iterator, callback) - -The opposite of filter. Removes values that pass an async truth test. - ---------------------------------------- - - -### rejectSeries(arr, iterator, callback) - -The same as filter, only the iterator is applied to each item in the array -in series. - - ---------------------------------------- - - -### reduce(arr, memo, iterator, callback) - -__aliases:__ inject, foldl - -Reduces a list of values into a single value using an async iterator to return -each successive step. Memo is the initial state of the reduction. This -function only operates in series. For performance reasons, it may make sense to -split a call to this function into a parallel map, then use the normal -Array.prototype.reduce on the results. This function is for situations where -each step in the reduction needs to be async, if you can get the data before -reducing it then its probably a good idea to do so. - -__Arguments__ - -* arr - An array to iterate over. -* memo - The initial state of the reduction. -* iterator(memo, item, callback) - A function applied to each item in the - array to produce the next step in the reduction. The iterator is passed a - callback which accepts an optional error as its first argument, and the state - of the reduction as the second. If an error is passed to the callback, the - reduction is stopped and the main callback is immediately called with the - error. -* callback(err, result) - A callback which is called after all the iterator - functions have finished. Result is the reduced value. - -__Example__ - - async.reduce([1,2,3], 0, function(memo, item, callback){ - // pointless async: - process.nextTick(function(){ - callback(null, memo + item) - }); - }, function(err, result){ - // result is now equal to the last value of memo, which is 6 - }); - ---------------------------------------- - - -### reduceRight(arr, memo, iterator, callback) - -__Alias:__ foldr - -Same as reduce, only operates on the items in the array in reverse order. - - ---------------------------------------- - - -### detect(arr, iterator, callback) - -Returns the first value in a list that passes an async truth test. The -iterator is applied in parallel, meaning the first iterator to return true will -fire the detect callback with that result. That means the result might not be -the first item in the original array (in terms of order) that passes the test. - -If order within the original array is important then look at detectSeries. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(result) - A callback which is called as soon as any iterator returns - true, or after all the iterator functions have finished. Result will be - the first item in the array that passes the truth test (iterator) or the - value undefined if none passed. - -__Example__ - - async.detect(['file1','file2','file3'], path.exists, function(result){ - // result now equals the first file in the list that exists - }); - ---------------------------------------- - - -### detectSeries(arr, iterator, callback) - -The same as detect, only the iterator is applied to each item in the array -in series. This means the result is always the first in the original array (in -terms of array order) that passes the truth test. - - ---------------------------------------- - - -### sortBy(arr, iterator, callback) - -Sorts a list by the results of running each value through an async iterator. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed - with an error (which can be null) and a value to use as the sort criteria. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is the items from - the original array sorted by the values returned by the iterator calls. - -__Example__ - - async.sortBy(['file1','file2','file3'], function(file, callback){ - fs.stat(file, function(err, stats){ - callback(err, stats.mtime); - }); - }, function(err, results){ - // results is now the original array of files sorted by - // modified date - }); - - ---------------------------------------- - - -### some(arr, iterator, callback) - -__Alias:__ any - -Returns true if at least one element in the array satisfies an async test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like path.exists. Once any iterator -call returns true, the main callback is immediately called. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(result) - A callback which is called as soon as any iterator returns - true, or after all the iterator functions have finished. Result will be - either true or false depending on the values of the async tests. - -__Example__ - - async.some(['file1','file2','file3'], path.exists, function(result){ - // if result is true then at least one of the files exists - }); - ---------------------------------------- - - -### every(arr, iterator, callback) - -__Alias:__ all - -Returns true if every element in the array satisfies an async test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like path.exists. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(result) - A callback which is called after all the iterator - functions have finished. Result will be either true or false depending on - the values of the async tests. - -__Example__ - - async.every(['file1','file2','file3'], path.exists, function(result){ - // if result is true then every file exists - }); - ---------------------------------------- - - -### concat(arr, iterator, callback) - -Applies an iterator to each item in a list, concatenating the results. Returns the -concatenated list. The iterators are called in parallel, and the results are -concatenated as they return. There is no guarantee that the results array will -be returned in the original order of the arguments passed to the iterator function. - -__Arguments__ - -* arr - An array to iterate over -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed - with an error (which can be null) and an array of results. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array containing - the concatenated results of the iterator function. - -__Example__ - - async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ - // files is now a list of filenames that exist in the 3 directories - }); - ---------------------------------------- - - -### concatSeries(arr, iterator, callback) - -Same as async.concat, but executes in series instead of parallel. - - -## Control Flow - - -### series(tasks, [callback]) - -Run an array of functions in series, each one running once the previous -function has completed. If any functions in the series pass an error to its -callback, no more functions are run and the callback for the series is -immediately called with the value of the error. Once the tasks have completed, -the results are passed to the final callback as an array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final callback as an object -instead of an array. This can be a more readable way of handling results from -async.series. - - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed - a callback it must call on completion. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets an array of all the arguments passed to - the callbacks used in the array. - -__Example__ - - async.series([ - function(callback){ - // do some stuff ... - callback(null, 'one'); - }, - function(callback){ - // do some more stuff ... - callback(null, 'two'); - }, - ], - // optional callback - function(err, results){ - // results is now equal to ['one', 'two'] - }); - - - // an example using an object instead of an array - async.series({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - }, - }, - function(err, results) { - // results is now equal to: {one: 1, two: 2} - }); - - ---------------------------------------- - - -### parallel(tasks, [callback]) - -Run an array of functions in parallel, without waiting until the previous -function has completed. If any of the functions pass an error to its -callback, the main callback is immediately called with the value of the error. -Once the tasks have completed, the results are passed to the final callback as an -array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final callback as an object -instead of an array. This can be a more readable way of handling results from -async.parallel. - - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed a - callback it must call on completion. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets an array of all the arguments passed to - the callbacks used in the array. - -__Example__ - - async.parallel([ - function(callback){ - setTimeout(function(){ - callback(null, 'one'); - }, 200); - }, - function(callback){ - setTimeout(function(){ - callback(null, 'two'); - }, 100); - }, - ], - // optional callback - function(err, results){ - // the results array will equal ['one','two'] even though - // the second function had a shorter timeout. - }); - - - // an example using an object instead of an array - async.parallel({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - }, - }, - function(err, results) { - // results is now equals to: {one: 1, two: 2} - }); - - ---------------------------------------- - - -### whilst(test, fn, callback) - -Repeatedly call fn, while test returns true. Calls the callback when stopped, -or an error occurs. - -__Arguments__ - -* test() - synchronous truth test to perform before each execution of fn. -* fn(callback) - A function to call each time the test passes. The function is - passed a callback which must be called once it has completed with an optional - error as the first argument. -* callback(err) - A callback which is called after the test fails and repeated - execution of fn has stopped. - -__Example__ - - var count = 0; - - async.whilst( - function () { return count < 5; }, - function (callback) { - count++; - setTimeout(callback, 1000); - }, - function (err) { - // 5 seconds have passed - } - ); - - ---------------------------------------- - - -### until(test, fn, callback) - -Repeatedly call fn, until test returns true. Calls the callback when stopped, -or an error occurs. - -The inverse of async.whilst. - - ---------------------------------------- - - -### waterfall(tasks, [callback]) - -Runs an array of functions in series, each passing their results to the next in -the array. However, if any of the functions pass an error to the callback, the -next function is not executed and the main callback is immediately called with -the error. - -__Arguments__ - -* tasks - An array of functions to run, each function is passed a callback it - must call on completion. -* callback(err, [results]) - An optional callback to run once all the functions - have completed. This will be passed the results of the last task's callback. - - - -__Example__ - - async.waterfall([ - function(callback){ - callback(null, 'one', 'two'); - }, - function(arg1, arg2, callback){ - callback(null, 'three'); - }, - function(arg1, callback){ - // arg1 now equals 'three' - callback(null, 'done'); - } - ], function (err, result) { - // result now equals 'done' - }); - - ---------------------------------------- - - -### queue(worker, concurrency) - -Creates a queue object with the specified concurrency. Tasks added to the -queue will be processed in parallel (up to the concurrency limit). If all -workers are in progress, the task is queued until one is available. Once -a worker has completed a task, the task's callback is called. - -__Arguments__ - -* worker(task, callback) - An asynchronous function for processing a queued - task. -* concurrency - An integer for determining how many worker functions should be - run in parallel. - -__Queue objects__ - -The queue object returned by this function has the following properties and -methods: - -* length() - a function returning the number of items waiting to be processed. -* concurrency - an integer for determining how many worker functions should be - run in parallel. This property can be changed after a queue is created to - alter the concurrency on-the-fly. -* push(task, [callback]) - add a new task to the queue, the callback is called - once the worker has finished processing the task. - instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list. -* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued -* empty - a callback that is called when the last item from the queue is given to a worker -* drain - a callback that is called when the last item from the queue has returned from the worker - -__Example__ - - // create a queue object with concurrency 2 - - var q = async.queue(function (task, callback) { - console.log('hello ' + task.name); - callback(); - }, 2); - - - // assign a callback - q.drain = function() { - console.log('all items have been processed'); - } - - // add some items to the queue - - q.push({name: 'foo'}, function (err) { - console.log('finished processing foo'); - }); - q.push({name: 'bar'}, function (err) { - console.log('finished processing bar'); - }); - - // add some items to the queue (batch-wise) - - q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { - console.log('finished processing bar'); - }); - - ---------------------------------------- - - -### auto(tasks, [callback]) - -Determines the best order for running functions 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. If any of -the functions pass an error to their callback, that function will not complete -(so any other functions depending on it will not run) and the main callback -will be called immediately with the error. Functions also receive an object -containing the results of functions which have completed so far. - -__Arguments__ - -* tasks - An object literal containing named functions or an array of - requirements, with the function itself the last item in the array. The key - used for each function or array is used when specifying requirements. The - syntax is easier to understand by looking at the example. -* callback(err, results) - An optional callback which is called when all the - tasks have been completed. The callback will receive an error as an argument - if any tasks pass an error to their callback. If all tasks complete - successfully, it will receive an object containing their results. - -__Example__ - - async.auto({ - get_data: function(callback){ - // async code to get some data - }, - make_folder: function(callback){ - // async code to create a directory to store a file in - // this is run at the same time as getting the data - }, - write_file: ['get_data', 'make_folder', function(callback){ - // once there is some data and the directory exists, - // write the data to a file in the directory - callback(null, filename); - }], - email_link: ['write_file', function(callback, results){ - // once the file is written let's email a link to it... - // results.write_file contains the filename returned by write_file. - }] - }); - -This is a fairly trivial example, but to do this using the basic parallel and -series functions would look like this: - - async.parallel([ - function(callback){ - // async code to get some data - }, - function(callback){ - // async code to create a directory to store a file in - // this is run at the same time as getting the data - } - ], - function(results){ - async.series([ - function(callback){ - // once there is some data and the directory exists, - // write the data to a file in the directory - }, - email_link: function(callback){ - // once the file is written let's email a link to it... - } - ]); - }); - -For a complicated series of async tasks using the auto function makes adding -new tasks much easier and makes the code more readable. - - ---------------------------------------- - - -### iterator(tasks) - -Creates an iterator function which calls the next function in the array, -returning a continuation to call the next one after that. Its also possible to -'peek' the next iterator by doing iterator.next(). - -This function is used internally by the async module but can be useful when -you want to manually control the flow of functions in series. - -__Arguments__ - -* tasks - An array of functions to run, each function is passed a callback it - must call on completion. - -__Example__ - - var iterator = async.iterator([ - function(){ sys.p('one'); }, - function(){ sys.p('two'); }, - function(){ sys.p('three'); } - ]); - - node> var iterator2 = iterator(); - 'one' - node> var iterator3 = iterator2(); - 'two' - node> iterator3(); - 'three' - node> var nextfn = iterator2.next(); - node> nextfn(); - 'three' - - ---------------------------------------- - - -### apply(function, arguments..) - -Creates a continuation function with some arguments already applied, a useful -shorthand when combined with other control flow functions. Any arguments -passed to the returned function are added to the arguments originally passed -to apply. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to automatically apply when the - continuation is called. - -__Example__ - - // using apply - - async.parallel([ - async.apply(fs.writeFile, 'testfile1', 'test1'), - async.apply(fs.writeFile, 'testfile2', 'test2'), - ]); - - - // the same process without using apply - - async.parallel([ - function(callback){ - fs.writeFile('testfile1', 'test1', callback); - }, - function(callback){ - fs.writeFile('testfile2', 'test2', callback); - }, - ]); - -It's possible to pass any number of additional arguments when calling the -continuation: - - node> var fn = async.apply(sys.puts, 'one'); - node> fn('two', 'three'); - one - two - three - ---------------------------------------- - - -### nextTick(callback) - -Calls the callback on a later loop around the event loop. In node.js this just -calls process.nextTick, in the browser it falls back to setTimeout(callback, 0), -which means other higher priority events may precede the execution of the callback. - -This is used internally for browser-compatibility purposes. - -__Arguments__ - -* callback - The function to call on a later loop around the event loop. - -__Example__ - - var call_order = []; - async.nextTick(function(){ - call_order.push('two'); - // call_order now equals ['one','two] - }); - call_order.push('one') - - -## Utils - - -### memoize(fn, [hasher]) - -Caches the results of an async function. When creating a hash to store function -results against, the callback is omitted from the hash and an optional hash -function can be used. - -__Arguments__ - -* fn - the function you to proxy and cache results from. -* hasher - an optional function for generating a custom hash for storing - results, it has all the arguments applied to it apart from the callback, and - must be synchronous. - -__Example__ - - var slow_fn = function (name, callback) { - // do something - callback(null, result); - }; - var fn = async.memoize(slow_fn); - - // fn can now be used as if it were slow_fn - fn('some name', function () { - // callback - }); - - -### unmemoize(fn) - -Undoes a memoized function, reverting it to the original, unmemoized -form. Comes handy in tests. - -__Arguments__ - -* fn - the memoized function - - -### log(function, arguments) - -Logs the result of an async function to the console. Only works in node.js or -in browsers that support console.log and console.error (such as FF and Chrome). -If multiple arguments are returned from the async function, console.log is -called on each argument in order. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to apply to the function. - -__Example__ - - var hello = function(name, callback){ - setTimeout(function(){ - callback(null, 'hello ' + name); - }, 1000); - }; - - node> async.log(hello, 'world'); - 'hello world' - - ---------------------------------------- - - -### dir(function, arguments) - -Logs the result of an async function to the console using console.dir to -display the properties of the resulting object. Only works in node.js or -in browsers that support console.dir and console.error (such as FF and Chrome). -If multiple arguments are returned from the async function, console.dir is -called on each argument in order. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to apply to the function. - -__Example__ - - var hello = function(name, callback){ - setTimeout(function(){ - callback(null, {hello: name}); - }, 1000); - }; - - node> async.dir(hello, 'world'); - {hello: 'world'} - - ---------------------------------------- - - -### noConflict() - -Changes the value of async back to its original value, returning a reference to the -async object. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/index.js deleted file mode 100644 index 8e238453..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// This file is just added for convenience so this repository can be -// directly checked out into a project's deps folder -module.exports = require('./lib/async'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/lib/async.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/lib/async.js deleted file mode 100644 index 7cc4f5ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/lib/async.js +++ /dev/null @@ -1,692 +0,0 @@ -/*global setTimeout: false, console: false */ -(function () { - - var async = {}; - - // global on the server, window in the browser - var root = this, - previous_async = root.async; - - if (typeof module !== 'undefined' && module.exports) { - module.exports = async; - } - else { - root.async = async; - } - - async.noConflict = function () { - root.async = previous_async; - return async; - }; - - //// cross-browser compatiblity functions //// - - var _forEach = function (arr, iterator) { - if (arr.forEach) { - return arr.forEach(iterator); - } - for (var i = 0; i < arr.length; i += 1) { - iterator(arr[i], i, arr); - } - }; - - var _map = function (arr, iterator) { - if (arr.map) { - return arr.map(iterator); - } - var results = []; - _forEach(arr, function (x, i, a) { - results.push(iterator(x, i, a)); - }); - return results; - }; - - var _reduce = function (arr, iterator, memo) { - if (arr.reduce) { - return arr.reduce(iterator, memo); - } - _forEach(arr, function (x, i, a) { - memo = iterator(memo, x, i, a); - }); - return memo; - }; - - var _keys = function (obj) { - if (Object.keys) { - return Object.keys(obj); - } - var keys = []; - for (var k in obj) { - if (obj.hasOwnProperty(k)) { - keys.push(k); - } - } - return keys; - }; - - //// exported async module functions //// - - //// nextTick implementation with browser-compatible fallback //// - if (typeof process === 'undefined' || !(process.nextTick)) { - async.nextTick = function (fn) { - setTimeout(fn, 0); - }; - } - else { - async.nextTick = process.nextTick; - } - - async.forEach = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - _forEach(arr, function (x) { - iterator(x, function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed === arr.length) { - callback(null); - } - } - }); - }); - }; - - async.forEachSeries = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - var iterate = function () { - iterator(arr[completed], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed === arr.length) { - callback(null); - } - else { - iterate(); - } - } - }); - }; - iterate(); - }; - - async.forEachLimit = function (arr, limit, iterator, callback) { - callback = callback || function () {}; - if (!arr.length || limit <= 0) { - return callback(); - } - var completed = 0; - var started = 0; - var running = 0; - - (function replenish () { - if (completed === arr.length) { - return callback(); - } - - while (running < limit && started < arr.length) { - started += 1; - running += 1; - iterator(arr[started - 1], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - running -= 1; - if (completed === arr.length) { - callback(); - } - else { - replenish(); - } - } - }); - } - })(); - }; - - - var doParallel = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.forEach].concat(args)); - }; - }; - var doSeries = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.forEachSeries].concat(args)); - }; - }; - - - var _asyncMap = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (err, v) { - results[x.index] = v; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - }; - async.map = doParallel(_asyncMap); - async.mapSeries = doSeries(_asyncMap); - - - // reduce only has a series version, as doing reduce in parallel won't - // work in many situations. - async.reduce = function (arr, memo, iterator, callback) { - async.forEachSeries(arr, function (x, callback) { - iterator(memo, x, function (err, v) { - memo = v; - callback(err); - }); - }, function (err) { - callback(err, memo); - }); - }; - // inject alias - async.inject = async.reduce; - // foldl alias - async.foldl = async.reduce; - - async.reduceRight = function (arr, memo, iterator, callback) { - var reversed = _map(arr, function (x) { - return x; - }).reverse(); - async.reduce(reversed, memo, iterator, callback); - }; - // foldr alias - async.foldr = async.reduceRight; - - var _filter = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.filter = doParallel(_filter); - async.filterSeries = doSeries(_filter); - // select alias - async.select = async.filter; - async.selectSeries = async.filterSeries; - - var _reject = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (!v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.reject = doParallel(_reject); - async.rejectSeries = doSeries(_reject); - - var _detect = function (eachfn, arr, iterator, main_callback) { - eachfn(arr, function (x, callback) { - iterator(x, function (result) { - if (result) { - main_callback(x); - main_callback = function () {}; - } - else { - callback(); - } - }); - }, function (err) { - main_callback(); - }); - }; - async.detect = doParallel(_detect); - async.detectSeries = doSeries(_detect); - - async.some = function (arr, iterator, main_callback) { - async.forEach(arr, function (x, callback) { - iterator(x, function (v) { - if (v) { - main_callback(true); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(false); - }); - }; - // any alias - async.any = async.some; - - async.every = function (arr, iterator, main_callback) { - async.forEach(arr, function (x, callback) { - iterator(x, function (v) { - if (!v) { - main_callback(false); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(true); - }); - }; - // all alias - async.all = async.every; - - async.sortBy = function (arr, iterator, callback) { - async.map(arr, function (x, callback) { - iterator(x, function (err, criteria) { - if (err) { - callback(err); - } - else { - callback(null, {value: x, criteria: criteria}); - } - }); - }, function (err, results) { - if (err) { - return callback(err); - } - else { - var fn = function (left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }; - callback(null, _map(results.sort(fn), function (x) { - return x.value; - })); - } - }); - }; - - async.auto = function (tasks, callback) { - callback = callback || function () {}; - var keys = _keys(tasks); - if (!keys.length) { - return callback(null); - } - - var results = {}; - - var listeners = []; - var addListener = function (fn) { - listeners.unshift(fn); - }; - var removeListener = function (fn) { - for (var i = 0; i < listeners.length; i += 1) { - if (listeners[i] === fn) { - listeners.splice(i, 1); - return; - } - } - }; - var taskComplete = function () { - _forEach(listeners.slice(0), function (fn) { - fn(); - }); - }; - - addListener(function () { - if (_keys(results).length === keys.length) { - callback(null, results); - callback = function () {}; - } - }); - - _forEach(keys, function (k) { - var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k]; - var taskCallback = function (err) { - if (err) { - callback(err); - // stop subsequent errors hitting callback multiple times - callback = function () {}; - } - else { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - taskComplete(); - } - }; - var requires = task.slice(0, Math.abs(task.length - 1)) || []; - var ready = function () { - return _reduce(requires, function (a, x) { - return (a && results.hasOwnProperty(x)); - }, true) && !results.hasOwnProperty(k); - }; - if (ready()) { - task[task.length - 1](taskCallback, results); - } - else { - var listener = function () { - if (ready()) { - removeListener(listener); - task[task.length - 1](taskCallback, results); - } - }; - addListener(listener); - } - }); - }; - - async.waterfall = function (tasks, callback) { - callback = callback || function () {}; - if (!tasks.length) { - return callback(); - } - var wrapIterator = function (iterator) { - return function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - var args = Array.prototype.slice.call(arguments, 1); - var next = iterator.next(); - if (next) { - args.push(wrapIterator(next)); - } - else { - args.push(callback); - } - async.nextTick(function () { - iterator.apply(null, args); - }); - } - }; - }; - wrapIterator(async.iterator(tasks))(); - }; - - async.parallel = function (tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor === Array) { - async.map(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - async.forEach(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.series = function (tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor === Array) { - async.mapSeries(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - async.forEachSeries(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.iterator = function (tasks) { - var makeCallback = function (index) { - var fn = function () { - if (tasks.length) { - tasks[index].apply(null, arguments); - } - return fn.next(); - }; - fn.next = function () { - return (index < tasks.length - 1) ? makeCallback(index + 1): null; - }; - return fn; - }; - return makeCallback(0); - }; - - async.apply = function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - return function () { - return fn.apply( - null, args.concat(Array.prototype.slice.call(arguments)) - ); - }; - }; - - var _concat = function (eachfn, arr, fn, callback) { - var r = []; - eachfn(arr, function (x, cb) { - fn(x, function (err, y) { - r = r.concat(y || []); - cb(err); - }); - }, function (err) { - callback(err, r); - }); - }; - async.concat = doParallel(_concat); - async.concatSeries = doSeries(_concat); - - async.whilst = function (test, iterator, callback) { - if (test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.whilst(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.until = function (test, iterator, callback) { - if (!test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.until(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.queue = function (worker, concurrency) { - var workers = 0; - var q = { - tasks: [], - concurrency: concurrency, - saturated: null, - empty: null, - drain: null, - push: function (data, callback) { - if(data.constructor !== Array) { - data = [data]; - } - _forEach(data, function(task) { - q.tasks.push({ - data: task, - callback: typeof callback === 'function' ? callback : null - }); - if (q.saturated && q.tasks.length == concurrency) { - q.saturated(); - } - async.nextTick(q.process); - }); - }, - process: function () { - if (workers < q.concurrency && q.tasks.length) { - var task = q.tasks.shift(); - if(q.empty && q.tasks.length == 0) q.empty(); - workers += 1; - worker(task.data, function () { - workers -= 1; - if (task.callback) { - task.callback.apply(task, arguments); - } - if(q.drain && q.tasks.length + workers == 0) q.drain(); - q.process(); - }); - } - }, - length: function () { - return q.tasks.length; - }, - running: function () { - return workers; - } - }; - return q; - }; - - var _console_fn = function (name) { - return function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - fn.apply(null, args.concat([function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (typeof console !== 'undefined') { - if (err) { - if (console.error) { - console.error(err); - } - } - else if (console[name]) { - _forEach(args, function (x) { - console[name](x); - }); - } - } - }])); - }; - }; - async.log = _console_fn('log'); - async.dir = _console_fn('dir'); - /*async.info = _console_fn('info'); - async.warn = _console_fn('warn'); - async.error = _console_fn('error');*/ - - async.memoize = function (fn, hasher) { - var memo = {}; - var queues = {}; - hasher = hasher || function (x) { - return x; - }; - var memoized = function () { - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - var key = hasher.apply(null, args); - if (key in memo) { - callback.apply(null, memo[key]); - } - else if (key in queues) { - queues[key].push(callback); - } - else { - queues[key] = [callback]; - fn.apply(null, args.concat([function () { - memo[key] = arguments; - var q = queues[key]; - delete queues[key]; - for (var i = 0, l = q.length; i < l; i++) { - q[i].apply(null, arguments); - } - }])); - } - }; - memoized.unmemoized = fn; - return memoized; - }; - - async.unmemoize = function (fn) { - return function () { - return (fn.unmemoized || fn).apply(null, arguments); - }; - }; - -}()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/package.json deleted file mode 100644 index e95e92d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/async/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "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": "https://registry.npmjs.org/async/-/async-0.1.22.tgz" - }, - "maintainers": [ - { - "name": "caolan", - "email": "caolan@caolanmcmahon.com" - } - ], - "directories": {}, - "_shasum": "0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061", - "_resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "_from": "async@>=0.1.0 <0.2.0", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/caolan/async#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/cycle/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/cycle/README.md deleted file mode 100644 index de9a06d0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/cycle/README.md +++ /dev/null @@ -1,49 +0,0 @@ -Fork of https://github.com/douglascrockford/JSON-js, maintained in npm as `cycle`. - -# Contributors - -* Douglas Crockford -* Nuno Job -* Justin Warkentin - -# JSON in JavaScript - -Douglas Crockford -douglas@crockford.com - -2010-11-18 - - -JSON is a light-weight, language independent, data interchange format. -See http://www.JSON.org/ - -The files in this collection implement JSON encoders/decoders in JavaScript. - -JSON became a built-in feature of JavaScript when the ECMAScript Programming -Language Standard - Fifth Edition was adopted by the ECMA General Assembly -in December 2009. Most of the files in this collection are for applications -that are expected to run in obsolete web browsers. For most purposes, json2.js -is the best choice. - - -json2.js: This file creates a JSON property in the global object, if there -isn't already one, setting its value to an object containing a stringify -method and a parse method. The parse method uses the eval method to do the -parsing, guarding it with several regular expressions to defend against -accidental code execution hazards. On current browsers, this file does nothing, -prefering the built-in JSON object. - -json.js: This file does everything that json2.js does. It also adds a -toJSONString method and a parseJSON method to Object.prototype. Use of this -file is not recommended. - -json_parse.js: This file contains an alternative JSON parse function that -uses recursive descent instead of eval. - -json_parse_state.js: This files contains an alternative JSON parse function that -uses a state machine instead of eval. - -cycle.js: This file contains two functions, JSON.decycle and JSON.retrocycle, -which make it possible to encode cyclical structures and dags in JSON, and to -then recover them. JSONPath is used to represent the links. -http://GOESSNER.net/articles/JsonPath/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/cycle/cycle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/cycle/cycle.js deleted file mode 100644 index 2e776ad9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/cycle/cycle.js +++ /dev/null @@ -1,170 +0,0 @@ -/* - cycle.js - 2013-02-19 - - Public Domain. - - NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. - - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html - - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. -*/ - -/*jslint evil: true, regexp: true */ - -/*members $ref, apply, call, decycle, hasOwnProperty, length, prototype, push, - retrocycle, stringify, test, toString -*/ - -var cycle = exports; - -cycle.decycle = function decycle(object) { - 'use strict'; - -// Make a deep copy of an object or array, assuring that there is at most -// one instance of each object or array in the resulting structure. The -// duplicate references (which might be forming cycles) are replaced with -// an object of the form -// {$ref: PATH} -// where the PATH is a JSONPath string that locates the first occurance. -// So, -// var a = []; -// a[0] = a; -// return JSON.stringify(JSON.decycle(a)); -// produces the string '[{"$ref":"$"}]'. - -// JSONPath is used to locate the unique object. $ indicates the top level of -// the object or array. [NUMBER] or [STRING] indicates a child member or -// property. - - var objects = [], // Keep a reference to each unique object or array - paths = []; // Keep the path to each unique object or array - - return (function derez(value, path) { - -// The derez recurses through the object, producing the deep copy. - - var i, // The loop counter - name, // Property name - nu; // The new object or array - -// typeof null === 'object', so go on if this value is really an object but not -// one of the weird builtin objects. - - if (typeof value === 'object' && value !== null && - !(value instanceof Boolean) && - !(value instanceof Date) && - !(value instanceof Number) && - !(value instanceof RegExp) && - !(value instanceof String)) { - -// If the value is an object or array, look to see if we have already -// encountered it. If so, return a $ref/path object. This is a hard way, -// linear search that will get slower as the number of unique objects grows. - - for (i = 0; i < objects.length; i += 1) { - if (objects[i] === value) { - return {$ref: paths[i]}; - } - } - -// Otherwise, accumulate the unique value and its path. - - objects.push(value); - paths.push(path); - -// If it is an array, replicate the array. - - if (Object.prototype.toString.apply(value) === '[object Array]') { - nu = []; - for (i = 0; i < value.length; i += 1) { - nu[i] = derez(value[i], path + '[' + i + ']'); - } - } else { - -// If it is an object, replicate the object. - - nu = {}; - for (name in value) { - if (Object.prototype.hasOwnProperty.call(value, name)) { - nu[name] = derez(value[name], - path + '[' + JSON.stringify(name) + ']'); - } - } - } - return nu; - } - return value; - }(object, '$')); -}; - - -cycle.retrocycle = function retrocycle($) { - 'use strict'; - -// Restore an object that was reduced by decycle. Members whose values are -// objects of the form -// {$ref: PATH} -// are replaced with references to the value found by the PATH. This will -// restore cycles. The object will be mutated. - -// The eval function is used to locate the values described by a PATH. The -// root object is kept in a $ variable. A regular expression is used to -// assure that the PATH is extremely well formed. The regexp contains nested -// * quantifiers. That has been known to have extremely bad performance -// problems on some browsers for very long strings. A PATH is expected to be -// reasonably short. A PATH is allowed to belong to a very restricted subset of -// Goessner's JSONPath. - -// So, -// var s = '[{"$ref":"$"}]'; -// return JSON.retrocycle(JSON.parse(s)); -// produces an array containing a single element which is the array itself. - - var px = - /^\$(?:\[(?:\d+|\"(?:[^\\\"\u0000-\u001f]|\\([\\\"\/bfnrt]|u[0-9a-zA-Z]{4}))*\")\])*$/; - - (function rez(value) { - -// The rez function walks recursively through the object looking for $ref -// properties. When it finds one that has a value that is a path, then it -// replaces the $ref object with a reference to the value that is found by -// the path. - - var i, item, name, path; - - if (value && typeof value === 'object') { - if (Object.prototype.toString.apply(value) === '[object Array]') { - for (i = 0; i < value.length; i += 1) { - item = value[i]; - if (item && typeof item === 'object') { - path = item.$ref; - if (typeof path === 'string' && px.test(path)) { - value[i] = eval(path); - } else { - rez(item); - } - } - } - } else { - for (name in value) { - if (typeof value[name] === 'object') { - item = value[name]; - if (item) { - path = item.$ref; - if (typeof path === 'string' && px.test(path)) { - value[name] = eval(path); - } else { - rez(item); - } - } - } - } - } - } - }($)); - return $; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/cycle/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/cycle/package.json deleted file mode 100644 index f8031396..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/cycle/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "cycle", - "description": "decycle your json", - "author": "", - "version": "1.0.3", - "main": "./cycle.js", - "homepage": "https://github.com/douglascrockford/JSON-js", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/dscape/cycle.git" - }, - "bugs": { - "url": "http://github.com/douglascrockford/JSON-js/issues" - }, - "keywords": [ - "json", - "cycle", - "stringify", - "parse" - ], - "engines": { - "node": ">=0.4.0" - }, - "readme": "Fork of https://github.com/douglascrockford/JSON-js, maintained in npm as `cycle`.\n\n# Contributors\n\n* Douglas Crockford\n* Nuno Job\n* Justin Warkentin\n\n# JSON in JavaScript\n\nDouglas Crockford\ndouglas@crockford.com\n\n2010-11-18\n\n\nJSON is a light-weight, language independent, data interchange format.\nSee http://www.JSON.org/\n\nThe files in this collection implement JSON encoders/decoders in JavaScript.\n\nJSON became a built-in feature of JavaScript when the ECMAScript Programming\nLanguage Standard - Fifth Edition was adopted by the ECMA General Assembly\nin December 2009. Most of the files in this collection are for applications\nthat are expected to run in obsolete web browsers. For most purposes, json2.js\nis the best choice.\n\n\njson2.js: This file creates a JSON property in the global object, if there\nisn't already one, setting its value to an object containing a stringify\nmethod and a parse method. The parse method uses the eval method to do the\nparsing, guarding it with several regular expressions to defend against\naccidental code execution hazards. On current browsers, this file does nothing,\nprefering the built-in JSON object.\n\njson.js: This file does everything that json2.js does. It also adds a\ntoJSONString method and a parseJSON method to Object.prototype. Use of this\nfile is not recommended.\n\njson_parse.js: This file contains an alternative JSON parse function that\nuses recursive descent instead of eval.\n\njson_parse_state.js: This files contains an alternative JSON parse function that\nuses a state machine instead of eval.\n\ncycle.js: This file contains two functions, JSON.decycle and JSON.retrocycle,\nwhich make it possible to encode cyclical structures and dags in JSON, and to\nthen recover them. JSONPath is used to represent the links.\nhttp://GOESSNER.net/articles/JsonPath/\n", - "readmeFilename": "README.md", - "_id": "cycle@1.0.3", - "dist": { - "shasum": "21e80b2be8580f98b468f379430662b046c34ad2", - "tarball": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" - }, - "_from": "cycle@>=1.0.0 <1.1.0", - "_npmVersion": "1.2.32", - "_npmUser": { - "name": "dscape", - "email": "nunojobpinto@gmail.com" - }, - "maintainers": [ - { - "name": "dscape", - "email": "nunojobpinto@gmail.com" - } - ], - "directories": {}, - "_shasum": "21e80b2be8580f98b468f379430662b046c34ad2", - "_resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/.npmignore deleted file mode 100644 index 9303c347..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -npm-debug.log \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/README.md deleted file mode 100644 index 07ba942c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# node-pkginfo - -An easy way to expose properties on a module from a package.json - -## Installation - -### Installing npm (node package manager) -``` - curl http://npmjs.org/install.sh | sh -``` - -### Installing pkginfo -``` - [sudo] npm install pkginfo -``` - -## Motivation -How often when writing node.js modules have you written the following line(s) of code? - -* Hard code your version string into your code - -``` js - exports.version = '0.1.0'; -``` - -* Programmatically expose the version from the package.json - -``` js - exports.version = JSON.parse(fs.readFileSync('/path/to/package.json', 'utf8')).version; -``` - -In other words, how often have you wanted to expose basic information from your package.json onto your module programmatically? **WELL NOW YOU CAN!** - -## Usage - -Using `pkginfo` is idiot-proof, just require and invoke it. - -``` js - var pkginfo = require('pkginfo')(module); - - console.dir(module.exports); -``` - -By invoking the `pkginfo` module all of the properties in your `package.json` file will be automatically exposed on the callee module (i.e. the parent module of `pkginfo`). - -Here's a sample of the output: - -``` - { name: 'simple-app', - description: 'A test fixture for pkginfo', - version: '0.1.0', - author: 'Charlie Robbins ', - keywords: [ 'test', 'fixture' ], - main: './index.js', - scripts: { test: 'vows test/*-test.js --spec' }, - engines: { node: '>= 0.4.0' } } -``` - -### Expose specific properties -If you don't want to expose **all** properties on from your `package.json` on your module then simple pass those properties to the `pkginfo` function: - -``` js - var pkginfo = require('pkginfo')(module, 'version', 'author'); - - console.dir(module.exports); -``` - -``` - { version: '0.1.0', - author: 'Charlie Robbins ' } -``` - -If you're looking for further usage see the [examples][0] included in this repository. - -## Run Tests -Tests are written in [vows][1] and give complete coverage of all APIs. - -``` - vows test/*-test.js --spec -``` - -[0]: https://github.com/indexzero/node-pkginfo/tree/master/examples -[1]: http://vowsjs.org - -#### Author: [Charlie Robbins](http://nodejitsu.com) \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/docs/docco.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/docs/docco.css deleted file mode 100644 index bd541343..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/docs/docco.css +++ /dev/null @@ -1,194 +0,0 @@ -/*--------------------- Layout and Typography ----------------------------*/ -body { - font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; - font-size: 15px; - line-height: 22px; - color: #252519; - margin: 0; padding: 0; -} -a { - color: #261a3b; -} - a:visited { - color: #261a3b; - } -p { - margin: 0 0 15px 0; -} -h4, h5, h6 { - color: #333; - margin: 6px 0 6px 0; - font-size: 13px; -} - h2, h3 { - margin-bottom: 0; - color: #000; - } - h1 { - margin-top: 40px; - margin-bottom: 15px; - color: #000; - } -#container { - position: relative; -} -#background { - position: fixed; - top: 0; left: 525px; right: 0; bottom: 0; - background: #f5f5ff; - border-left: 1px solid #e5e5ee; - z-index: -1; -} -#jump_to, #jump_page { - background: white; - -webkit-box-shadow: 0 0 25px #777; -moz-box-shadow: 0 0 25px #777; - -webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; - font: 10px Arial; - text-transform: uppercase; - cursor: pointer; - text-align: right; -} -#jump_to, #jump_wrapper { - position: fixed; - right: 0; top: 0; - padding: 5px 10px; -} - #jump_wrapper { - padding: 0; - display: none; - } - #jump_to:hover #jump_wrapper { - display: block; - } - #jump_page { - padding: 5px 0 3px; - margin: 0 0 25px 25px; - } - #jump_page .source { - display: block; - padding: 5px 10px; - text-decoration: none; - border-top: 1px solid #eee; - } - #jump_page .source:hover { - background: #f5f5ff; - } - #jump_page .source:first-child { - } -table td { - border: 0; - outline: 0; -} - td.docs, th.docs { - max-width: 450px; - min-width: 450px; - min-height: 5px; - padding: 10px 25px 1px 50px; - overflow-x: hidden; - vertical-align: top; - text-align: left; - } - .docs pre { - margin: 15px 0 15px; - padding-left: 15px; - } - .docs p tt, .docs p code { - background: #f8f8ff; - border: 1px solid #dedede; - font-size: 12px; - padding: 0 0.2em; - } - .pilwrap { - position: relative; - } - .pilcrow { - font: 12px Arial; - text-decoration: none; - color: #454545; - position: absolute; - top: 3px; left: -20px; - padding: 1px 2px; - opacity: 0; - -webkit-transition: opacity 0.2s linear; - } - td.docs:hover .pilcrow { - opacity: 1; - } - td.code, th.code { - padding: 14px 15px 16px 25px; - width: 100%; - vertical-align: top; - background: #f5f5ff; - border-left: 1px solid #e5e5ee; - } - pre, tt, code { - font-size: 12px; line-height: 18px; - font-family: Menlo, Monaco, Consolas, "Lucida Console", monospace; - margin: 0; padding: 0; - } - - -/*---------------------- Syntax Highlighting -----------------------------*/ -td.linenos { background-color: #f0f0f0; padding-right: 10px; } -span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; } -body .hll { background-color: #ffffcc } -body .c { color: #408080; font-style: italic } /* Comment */ -body .err { border: 1px solid #FF0000 } /* Error */ -body .k { color: #954121 } /* Keyword */ -body .o { color: #666666 } /* Operator */ -body .cm { color: #408080; font-style: italic } /* Comment.Multiline */ -body .cp { color: #BC7A00 } /* Comment.Preproc */ -body .c1 { color: #408080; font-style: italic } /* Comment.Single */ -body .cs { color: #408080; font-style: italic } /* Comment.Special */ -body .gd { color: #A00000 } /* Generic.Deleted */ -body .ge { font-style: italic } /* Generic.Emph */ -body .gr { color: #FF0000 } /* Generic.Error */ -body .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -body .gi { color: #00A000 } /* Generic.Inserted */ -body .go { color: #808080 } /* Generic.Output */ -body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -body .gs { font-weight: bold } /* Generic.Strong */ -body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -body .gt { color: #0040D0 } /* Generic.Traceback */ -body .kc { color: #954121 } /* Keyword.Constant */ -body .kd { color: #954121; font-weight: bold } /* Keyword.Declaration */ -body .kn { color: #954121; font-weight: bold } /* Keyword.Namespace */ -body .kp { color: #954121 } /* Keyword.Pseudo */ -body .kr { color: #954121; font-weight: bold } /* Keyword.Reserved */ -body .kt { color: #B00040 } /* Keyword.Type */ -body .m { color: #666666 } /* Literal.Number */ -body .s { color: #219161 } /* Literal.String */ -body .na { color: #7D9029 } /* Name.Attribute */ -body .nb { color: #954121 } /* Name.Builtin */ -body .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -body .no { color: #880000 } /* Name.Constant */ -body .nd { color: #AA22FF } /* Name.Decorator */ -body .ni { color: #999999; font-weight: bold } /* Name.Entity */ -body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -body .nf { color: #0000FF } /* Name.Function */ -body .nl { color: #A0A000 } /* Name.Label */ -body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -body .nt { color: #954121; font-weight: bold } /* Name.Tag */ -body .nv { color: #19469D } /* Name.Variable */ -body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -body .w { color: #bbbbbb } /* Text.Whitespace */ -body .mf { color: #666666 } /* Literal.Number.Float */ -body .mh { color: #666666 } /* Literal.Number.Hex */ -body .mi { color: #666666 } /* Literal.Number.Integer */ -body .mo { color: #666666 } /* Literal.Number.Oct */ -body .sb { color: #219161 } /* Literal.String.Backtick */ -body .sc { color: #219161 } /* Literal.String.Char */ -body .sd { color: #219161; font-style: italic } /* Literal.String.Doc */ -body .s2 { color: #219161 } /* Literal.String.Double */ -body .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -body .sh { color: #219161 } /* Literal.String.Heredoc */ -body .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -body .sx { color: #954121 } /* Literal.String.Other */ -body .sr { color: #BB6688 } /* Literal.String.Regex */ -body .s1 { color: #219161 } /* Literal.String.Single */ -body .ss { color: #19469D } /* Literal.String.Symbol */ -body .bp { color: #954121 } /* Name.Builtin.Pseudo */ -body .vc { color: #19469D } /* Name.Variable.Class */ -body .vg { color: #19469D } /* Name.Variable.Global */ -body .vi { color: #19469D } /* Name.Variable.Instance */ -body .il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/docs/pkginfo.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/docs/pkginfo.html deleted file mode 100644 index bf615fa9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/docs/pkginfo.html +++ /dev/null @@ -1,101 +0,0 @@ - pkginfo.js

      pkginfo.js

      /*
      - * pkginfo.js: Top-level include for the pkginfo module
      - *
      - * (C) 2011, Charlie Robbins
      - *
      - */
      - 
      -var fs = require('fs'),
      -    path = require('path');

      function pkginfo ([options, 'property', 'property' ..])

      - -

      @pmodule {Module} Parent module to read from.

      - -

      @options {Object|Array|string} Optional Options used when exposing properties.

      - -

      @arguments {string...} Optional Specified properties to expose.

      - -

      Exposes properties from the package.json file for the parent module on -it's exports. Valid usage:

      - -

      require('pkginfo')()

      - -

      require('pkginfo')('version', 'author');

      - -

      require('pkginfo')(['version', 'author']);

      - -

      require('pkginfo')({ include: ['version', 'author'] });

      var pkginfo = module.exports = function (pmodule, options) {
      -  var args = [].slice.call(arguments, 2).filter(function (arg) {
      -    return typeof arg === 'string';
      -  });
      -  

      Parse variable arguments

        if (Array.isArray(options)) {

      If the options passed in is an Array assume that -it is the Array of properties to expose from the -on the package.json file on the parent module.

          options = { include: options };
      -  }
      -  else if (typeof options === 'string') {

      Otherwise if the first argument is a string, then -assume that it is the first property to expose from -the package.json file on the parent module.

          options = { include: [options] };
      -  }
      -  

      Setup default options

        options = options || { include: [] };
      -  
      -  if (args.length > 0) {

      If additional string arguments have been passed in -then add them to the properties to expose on the -parent module.

          options.include = options.include.concat(args);
      -  }
      -  
      -  var pkg = pkginfo.read(pmodule, options.dir).package;
      -  Object.keys(pkg).forEach(function (key) {
      -    if (options.include.length > 0 && !~options.include.indexOf(key)) {
      -      return;
      -    }
      -    
      -    if (!pmodule.exports[key]) {
      -      pmodule.exports[key] = pkg[key];
      -    }
      -  });
      -  
      -  return pkginfo;
      -};

      function find (dir)

      - -

      @pmodule {Module} Parent module to read from.

      - -

      @dir {string} Optional Directory to start search from.

      - -

      Searches up the directory tree from dir until it finds a directory -which contains a package.json file.

      pkginfo.find = function (pmodule, dir) {
      -  dir = dir || pmodule.filename;
      -  dir = path.dirname(dir); 
      -  
      -  var files = fs.readdirSync(dir);
      -  
      -  if (~files.indexOf('package.json')) {
      -    return path.join(dir, 'package.json');
      -  }
      -  
      -  if (dir === '/') {
      -    throw new Error('Could not find package.json up from: ' + dir);
      -  }
      -  
      -  return pkginfo.find(dir);
      -};

      function read (pmodule, dir)

      - -

      @pmodule {Module} Parent module to read from.

      - -

      @dir {string} Optional Directory to start search from.

      - -

      Searches up the directory tree from dir until it finds a directory -which contains a package.json file and returns the package information.

      pkginfo.read = function (pmodule, dir) { 
      -  dir = pkginfo.find(pmodule, dir);
      -  
      -  var data = fs.readFileSync(dir).toString();
      -      
      -  return {
      -    dir: dir, 
      -    package: JSON.parse(data)
      -  };
      -};

      Call pkginfo on this module and expose version.

      pkginfo(module, {
      -  dir: __dirname,
      -  include: ['version'],
      -  target: pkginfo
      -});
      -
      -
      \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/all-properties.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/all-properties.js deleted file mode 100644 index fd1d831a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/all-properties.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * all-properties.js: Sample of including all properties from a package.json file - * - * (C) 2011, Charlie Robbins - * - */ - -var util = require('util'), - pkginfo = require('../lib/pkginfo')(module); - -exports.someFunction = function () { - console.log('some of your custom logic here'); -}; - -console.log('Inspecting module:'); -console.dir(module.exports); - -console.log('\nAll exports exposed:'); -console.error(Object.keys(module.exports)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/array-argument.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/array-argument.js deleted file mode 100644 index b1b68487..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/array-argument.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * array-argument.js: Sample of including specific properties from a package.json file - * using Array argument syntax. - * - * (C) 2011, Charlie Robbins - * - */ - -var util = require('util'), - pkginfo = require('../lib/pkginfo')(module, ['version', 'author']); - -exports.someFunction = function () { - console.log('some of your custom logic here'); -}; - -console.log('Inspecting module:'); -console.dir(module.exports); - -console.log('\nAll exports exposed:'); -console.error(Object.keys(module.exports)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/multiple-properties.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/multiple-properties.js deleted file mode 100644 index b4b5fd61..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/multiple-properties.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * multiple-properties.js: Sample of including multiple properties from a package.json file - * - * (C) 2011, Charlie Robbins - * - */ - -var util = require('util'), - pkginfo = require('../lib/pkginfo')(module, 'version', 'author'); - -exports.someFunction = function () { - console.log('some of your custom logic here'); -}; - -console.log('Inspecting module:'); -console.dir(module.exports); - -console.log('\nAll exports exposed:'); -console.error(Object.keys(module.exports)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/object-argument.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/object-argument.js deleted file mode 100644 index 28420c85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/object-argument.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * object-argument.js: Sample of including specific properties from a package.json file - * using Object argument syntax. - * - * (C) 2011, Charlie Robbins - * - */ - -var util = require('util'), - pkginfo = require('../lib/pkginfo')(module, { - include: ['version', 'author'] - }); - -exports.someFunction = function () { - console.log('some of your custom logic here'); -}; - -console.log('Inspecting module:'); -console.dir(module.exports); - -console.log('\nAll exports exposed:'); -console.error(Object.keys(module.exports)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/package.json deleted file mode 100644 index 1f2f01c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "simple-app", - "description": "A test fixture for pkginfo", - "version": "0.1.0", - "author": "Charlie Robbins ", - "keywords": ["test", "fixture"], - "main": "./index.js", - "scripts": { "test": "vows test/*-test.js --spec" }, - "engines": { "node": ">= 0.4.0" } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/single-property.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/single-property.js deleted file mode 100644 index 4f445614..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/examples/single-property.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * single-property.js: Sample of including a single specific properties from a package.json file - * - * (C) 2011, Charlie Robbins - * - */ - -var util = require('util'), - pkginfo = require('../lib/pkginfo')(module, 'version'); - -exports.someFunction = function () { - console.log('some of your custom logic here'); -}; - -console.log('Inspecting module:'); -console.dir(module.exports); - -console.log('\nAll exports exposed:'); -console.error(Object.keys(module.exports)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/lib/pkginfo.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/lib/pkginfo.js deleted file mode 100644 index a4a62272..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/lib/pkginfo.js +++ /dev/null @@ -1,132 +0,0 @@ -/* - * pkginfo.js: Top-level include for the pkginfo module - * - * (C) 2011, Charlie Robbins - * - */ - -var fs = require('fs'), - path = require('path'); - -// -// ### function pkginfo ([options, 'property', 'property' ..]) -// #### @pmodule {Module} Parent module to read from. -// #### @options {Object|Array|string} **Optional** Options used when exposing properties. -// #### @arguments {string...} **Optional** Specified properties to expose. -// Exposes properties from the package.json file for the parent module on -// it's exports. Valid usage: -// -// `require('pkginfo')()` -// -// `require('pkginfo')('version', 'author');` -// -// `require('pkginfo')(['version', 'author']);` -// -// `require('pkginfo')({ include: ['version', 'author'] });` -// -var pkginfo = module.exports = function (pmodule, options) { - var args = [].slice.call(arguments, 2).filter(function (arg) { - return typeof arg === 'string'; - }); - - // - // **Parse variable arguments** - // - if (Array.isArray(options)) { - // - // If the options passed in is an Array assume that - // it is the Array of properties to expose from the - // on the package.json file on the parent module. - // - options = { include: options }; - } - else if (typeof options === 'string') { - // - // Otherwise if the first argument is a string, then - // assume that it is the first property to expose from - // the package.json file on the parent module. - // - options = { include: [options] }; - } - - // - // **Setup default options** - // - options = options || { include: [] }; - - if (args.length > 0) { - // - // If additional string arguments have been passed in - // then add them to the properties to expose on the - // parent module. - // - options.include = options.include.concat(args); - } - - var pkg = pkginfo.read(pmodule, options.dir).package; - Object.keys(pkg).forEach(function (key) { - if (options.include.length > 0 && !~options.include.indexOf(key)) { - return; - } - - if (!pmodule.exports[key]) { - pmodule.exports[key] = pkg[key]; - } - }); - - return pkginfo; -}; - -// -// ### function find (dir) -// #### @pmodule {Module} Parent module to read from. -// #### @dir {string} **Optional** Directory to start search from. -// Searches up the directory tree from `dir` until it finds a directory -// which contains a `package.json` file. -// -pkginfo.find = function (pmodule, dir) { - dir = dir || pmodule.filename; - dir = path.dirname(dir); - - var files = fs.readdirSync(dir); - - if (~files.indexOf('package.json')) { - return path.join(dir, 'package.json'); - } - - if (dir === '/') { - throw new Error('Could not find package.json up from: ' + dir); - } - else if (!dir || dir === '.') { - throw new Error('Cannot find package.json from unspecified directory'); - } - - return pkginfo.find(pmodule, dir); -}; - -// -// ### function read (pmodule, dir) -// #### @pmodule {Module} Parent module to read from. -// #### @dir {string} **Optional** Directory to start search from. -// Searches up the directory tree from `dir` until it finds a directory -// which contains a `package.json` file and returns the package information. -// -pkginfo.read = function (pmodule, dir) { - dir = pkginfo.find(pmodule, dir); - - var data = fs.readFileSync(dir).toString(); - - return { - dir: dir, - package: JSON.parse(data) - }; -}; - -// -// Call `pkginfo` on this module and expose version. -// -pkginfo(module, { - dir: __dirname, - include: ['version'], - target: pkginfo -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/package.json deleted file mode 100644 index 6fa61dfa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "pkginfo", - "version": "0.2.3", - "description": "An easy way to expose properties on a module from a package.json", - "author": { - "name": "Charlie Robbins", - "email": "charlie.robbins@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/indexzero/node-pkginfo.git" - }, - "keywords": [ - "info", - "tools", - "package.json" - ], - "devDependencies": { - "vows": "0.6.x" - }, - "main": "./lib/pkginfo", - "scripts": { - "test": "vows test/*-test.js --spec" - }, - "engines": { - "node": ">= 0.4.0" - }, - "_npmUser": { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - }, - "_id": "pkginfo@0.2.3", - "dependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.0.106", - "_nodeVersion": "v0.4.12", - "_defaultsLoaded": true, - "dist": { - "shasum": "7239c42a5ef6c30b8f328439d9b9ff71042490f8", - "tarball": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz" - }, - "maintainers": [ - { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - } - ], - "directories": {}, - "_shasum": "7239c42a5ef6c30b8f328439d9b9ff71042490f8", - "_resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz", - "_from": "pkginfo@>=0.2.0 <0.3.0", - "bugs": { - "url": "https://github.com/indexzero/node-pkginfo/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/indexzero/node-pkginfo#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/test/pkginfo-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/test/pkginfo-test.js deleted file mode 100644 index 3156c001..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/pkginfo/test/pkginfo-test.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * pkginfo-test.js: Tests for the pkginfo module. - * - * (C) 2011, Charlie Robbins - * - */ - -var assert = require('assert'), - exec = require('child_process').exec, - fs = require('fs'), - path = require('path'), - vows = require('vows'), - pkginfo = require('../lib/pkginfo'); - -function assertProperties (source, target) { - assert.lengthOf(source, target.length + 1); - target.forEach(function (prop) { - assert.isTrue(!!~source.indexOf(prop)); - }); -} - -function testExposes (options) { - return { - topic: function () { - exec('node ' + path.join(__dirname, '..', 'examples', options.script), this.callback); - }, - "should expose that property correctly": function (err, stdout, stderr) { - assert.isNull(err); - - var exposed = stderr.match(/'(\w+)'/ig).map(function (p) { - return p.substring(1, p.length - 1); - }); - - return !options.assert - ? assertProperties(exposed, options.properties) - : options.assert(exposed); - } - } -} - -vows.describe('pkginfo').addBatch({ - "When using the pkginfo module": { - "and passed a single `string` argument": testExposes({ - script: 'single-property.js', - properties: ['version'] - }), - "and passed multiple `string` arguments": testExposes({ - script: 'multiple-properties.js', - properties: ['version', 'author'] - }), - "and passed an `object` argument": testExposes({ - script: 'object-argument.js', - properties: ['version', 'author'] - }), - "and passed an `array` argument": testExposes({ - script: 'array-argument.js', - properties: ['version', 'author'] - }), - "and passed no arguments": testExposes({ - script: 'all-properties.js', - assert: function (exposed) { - var pkg = fs.readFileSync(path.join(__dirname, '..', 'examples', 'package.json')).toString(), - keys = Object.keys(JSON.parse(pkg)); - - assertProperties(exposed, keys); - } - }) - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/LICENSE deleted file mode 100644 index a4a9aee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/README.md deleted file mode 100644 index 8713a807..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/README.md +++ /dev/null @@ -1,287 +0,0 @@ -# Request -- Simplified HTTP request method - -## Install - -
      -  npm install request
      -
      - -Or from source: - -
      -  git clone git://github.com/mikeal/request.git 
      -  cd request
      -  npm link
      -
      - -## Super simple to use - -Request is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default. - -```javascript -var request = require('request'); -request('http://www.google.com', function (error, response, body) { - if (!error && response.statusCode == 200) { - console.log(body) // Print the google web page. - } -}) -``` - -## Streaming - -You can stream any response to a file stream. - -```javascript -request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png')) -``` - -You can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types, in this case `application/json`, and use the proper content-type in the PUT request if one is not already provided in the headers. - -```javascript -fs.createReadStream('file.json').pipe(request.put('http://mysite.com/obj.json')) -``` - -Request can also pipe to itself. When doing so the content-type and content-length will be preserved in the PUT headers. - -```javascript -request.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png')) -``` - -Now let's get fancy. - -```javascript -http.createServer(function (req, resp) { - if (req.url === '/doodle.png') { - if (req.method === 'PUT') { - req.pipe(request.put('http://mysite.com/doodle.png')) - } else if (req.method === 'GET' || req.method === 'HEAD') { - request.get('http://mysite.com/doodle.png').pipe(resp) - } - } -}) -``` - -You can also pipe() from a http.ServerRequest instance and to a http.ServerResponse instance. The HTTP method and headers will be sent as well as the entity-body data. Which means that, if you don't really care about security, you can do: - -```javascript -http.createServer(function (req, resp) { - if (req.url === '/doodle.png') { - var x = request('http://mysite.com/doodle.png') - req.pipe(x) - x.pipe(resp) - } -}) -``` - -And since pipe() returns the destination stream in node 0.5.x you can do one line proxying :) - -```javascript -req.pipe(request('http://mysite.com/doodle.png')).pipe(resp) -``` - -Also, none of this new functionality conflicts with requests previous features, it just expands them. - -```javascript -var r = request.defaults({'proxy':'http://localproxy.com'}) - -http.createServer(function (req, resp) { - if (req.url === '/doodle.png') { - r.get('http://google.com/doodle.png').pipe(resp) - } -}) -``` - -You can still use intermediate proxies, the requests will still follow HTTP forwards, etc. - -## OAuth Signing - -```javascript -// Twitter OAuth -var qs = require('querystring') - , oauth = - { callback: 'http://mysite.com/callback/' - , consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - } - , url = 'https://api.twitter.com/oauth/request_token' - ; -request.post({url:url, oauth:oauth}, function (e, r, body) { - // Assume by some stretch of magic you aquired the verifier - var access_token = qs.parse(body) - , oauth = - { consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - , token: access_token.oauth_token - , verifier: VERIFIER - , token_secret: access_token.oauth_token_secret - } - , url = 'https://api.twitter.com/oauth/access_token' - ; - request.post({url:url, oauth:oauth}, function (e, r, body) { - var perm_token = qs.parse(body) - , oauth = - { consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - , token: perm_token.oauth_token - , token_secret: perm_token.oauth_token_secret - } - , url = 'https://api.twitter.com/1/users/show.json?' - , params = - { screen_name: perm_token.screen_name - , user_id: perm_token.user_id - } - ; - url += qs.stringify(params) - request.get({url:url, oauth:oauth, json:true}, function (e, r, user) { - console.log(user) - }) - }) -}) -``` - - - -### request(options, callback) - -The first argument can be either a url or an options object. The only required option is uri, all others are optional. - -* `uri` || `url` - fully qualified uri or a parsed url object from url.parse() -* `qs` - object containing querystring values to be appended to the uri -* `method` - http method, defaults to GET -* `headers` - http headers, defaults to {} -* `body` - entity body for POST and PUT requests. Must be buffer or string. -* `form` - sets `body` but to querystring representation of value and adds `Content-type: application/x-www-form-urlencoded; charset=utf-8` header. -* `json` - sets `body` but to JSON representation of value and adds `Content-type: application/json` header. -* `multipart` - (experimental) array of objects which contains their own headers and `body` attribute. Sends `multipart/related` request. See example below. -* `followRedirect` - follow HTTP 3xx responses as redirects. defaults to true. -* `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects. defaults to false. -* `maxRedirects` - the maximum number of redirects to follow, defaults to 10. -* `encoding` - Encoding to be used on `setEncoding` of response data. If set to `null`, the body is returned as a Buffer. -* `pool` - A hash object containing the agents for these requests. If omitted this request will use the global pool which is set to node's default maxSockets. -* `pool.maxSockets` - Integer containing the maximum amount of sockets in the pool. -* `timeout` - Integer containing the number of milliseconds to wait for a request to respond before aborting the request -* `proxy` - An HTTP proxy to be used. Support proxy Auth with Basic Auth the same way it's supported with the `url` parameter by embedding the auth info in the uri. -* `oauth` - Options for OAuth HMAC-SHA1 signing, see documentation above. -* `strictSSL` - Set to `true` to require that SSL certificates be valid. Note: to use your own certificate authority, you need to specify an agent that was created with that ca as an option. -* `jar` - Set to `false` if you don't want cookies to be remembered for future use or define your custom cookie jar (see examples section) - - -The callback argument gets 3 arguments. The first is an error when applicable (usually from the http.Client option not the http.ClientRequest object). The second in an http.ClientResponse object. The third is the response body String or Buffer. - -## Convenience methods - -There are also shorthand methods for different HTTP METHODs and some other conveniences. - -### request.defaults(options) - -This method returns a wrapper around the normal request API that defaults to whatever options you pass in to it. - -### request.put - -Same as request() but defaults to `method: "PUT"`. - -```javascript -request.put(url) -``` - -### request.post - -Same as request() but defaults to `method: "POST"`. - -```javascript -request.post(url) -``` - -### request.head - -Same as request() but defaults to `method: "HEAD"`. - -```javascript -request.head(url) -``` - -### request.del - -Same as request() but defaults to `method: "DELETE"`. - -```javascript -request.del(url) -``` - -### request.get - -Alias to normal request method for uniformity. - -```javascript -request.get(url) -``` -### request.cookie - -Function that creates a new cookie. - -```javascript -request.cookie('cookie_string_here') -``` -### request.jar - -Function that creates a new cookie jar. - -```javascript -request.jar() -``` - - -## Examples: - -```javascript - var request = require('request') - , rand = Math.floor(Math.random()*100000000).toString() - ; - request( - { method: 'PUT' - , uri: 'http://mikeal.iriscouch.com/testjs/' + rand - , multipart: - [ { 'content-type': 'application/json' - , body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}}) - } - , { body: 'I am an attachment' } - ] - } - , function (error, response, body) { - if(response.statusCode == 201){ - console.log('document saved as: http://mikeal.iriscouch.com/testjs/'+ rand) - } else { - console.log('error: '+ response.statusCode) - console.log(body) - } - } - ) -``` -Cookies are enabled by default (so they can be used in subsequent requests). To disable cookies set jar to false (either in defaults or in the options sent). - -```javascript -var request = request.defaults({jar: false}) -request('http://www.google.com', function () { - request('http://images.google.com') -}) -``` - -If you to use a custom cookie jar (instead of letting request use its own global cookie jar) you do so by setting the jar default or by specifying it as an option: - -```javascript -var j = request.jar() -var request = request.defaults({jar:j}) -request('http://www.google.com', function () { - request('http://images.google.com') -}) -``` -OR - -```javascript -var j = request.jar() -var cookie = request.cookie('your_cookie_here') -j.add(cookie) -request({url: 'http://www.google.com', jar: j}, function () { - request('http://images.google.com') -}) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/aws.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/aws.js deleted file mode 100644 index 4e87bff4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/aws.js +++ /dev/null @@ -1,190 +0,0 @@ - -/*! - * knox - auth - * Copyright(c) 2010 LearnBoost - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var crypto = require('crypto') - , parse = require('url').parse; - -/** - * Valid keys. - */ - -var keys = [ - 'acl' - , 'location' - , 'logging' - , 'notification' - , 'partNumber' - , 'policy' - , 'requestPayment' - , 'torrent' - , 'uploadId' - , 'uploads' - , 'versionId' - , 'versioning' - , 'versions' - , 'website' -]; - -/** - * Return an "Authorization" header value with the given `options` - * in the form of "AWS :" - * - * @param {Object} options - * @return {String} - * @api private - */ - -exports.authorization = function(options){ - return 'AWS ' + options.key + ':' + exports.sign(options); -}; - -/** - * Simple HMAC-SHA1 Wrapper - * - * @param {Object} options - * @return {String} - * @api private - */ - -exports.hmacSha1 = function(options){ - return crypto.createHmac('sha1', options.secret).update(options.message).digest('base64'); -}; - -/** - * Create a base64 sha1 HMAC for `options`. - * - * @param {Object} options - * @return {String} - * @api private - */ - -exports.sign = function(options){ - options.message = exports.stringToSign(options); - return exports.hmacSha1(options); -}; - -/** - * Create a base64 sha1 HMAC for `options`. - * - * Specifically to be used with S3 presigned URLs - * - * @param {Object} options - * @return {String} - * @api private - */ - -exports.signQuery = function(options){ - options.message = exports.queryStringToSign(options); - return exports.hmacSha1(options); -}; - -/** - * Return a string for sign() with the given `options`. - * - * Spec: - * - * \n - * \n - * \n - * \n - * [headers\n] - * - * - * @param {Object} options - * @return {String} - * @api private - */ - -exports.stringToSign = function(options){ - var headers = options.amazonHeaders || ''; - if (headers) headers += '\n'; - return [ - options.verb - , options.md5 - , options.contentType - , options.date.toUTCString() - , headers + options.resource - ].join('\n'); -}; - -/** - * Return a string for sign() with the given `options`, but is meant exclusively - * for S3 presigned URLs - * - * Spec: - * - * \n - * - * - * @param {Object} options - * @return {String} - * @api private - */ - -exports.queryStringToSign = function(options){ - return 'GET\n\n\n' + - options.date + '\n' + - options.resource; -}; - -/** - * Perform the following: - * - * - ignore non-amazon headers - * - lowercase fields - * - sort lexicographically - * - trim whitespace between ":" - * - join with newline - * - * @param {Object} headers - * @return {String} - * @api private - */ - -exports.canonicalizeHeaders = function(headers){ - var buf = [] - , fields = Object.keys(headers); - for (var i = 0, len = fields.length; i < len; ++i) { - var field = fields[i] - , val = headers[field] - , field = field.toLowerCase(); - if (0 !== field.indexOf('x-amz')) continue; - buf.push(field + ':' + val); - } - return buf.sort().join('\n'); -}; - -/** - * Perform the following: - * - * - ignore non sub-resources - * - sort lexicographically - * - * @param {String} resource - * @return {String} - * @api private - */ - -exports.canonicalizeResource = function(resource){ - var url = parse(resource, true) - , path = url.pathname - , buf = []; - - Object.keys(url.query).forEach(function(key){ - if (!~keys.indexOf(key)) return; - var val = '' == url.query[key] ? '' : '=' + encodeURIComponent(url.query[key]); - buf.push(key + val); - }); - - return path + (buf.length - ? '?' + buf.sort().join('&') - : ''); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/aws2.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/aws2.js deleted file mode 100644 index eb683f76..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/aws2.js +++ /dev/null @@ -1,128 +0,0 @@ -var crypto = require('crypto') - -// The Authentication Header -// -// The Amazon S3 REST API uses the standard HTTPAuthorization header to pass authentication information. (The name of the standard header is unfortunate because it carries authentication information, not authorization).Under the Amazon S3 authentication scheme, the Authorization header has the following form. -// -// Authorization: AWS AWSAccessKeyId:Signature -// -// Developers are issued an AWS Access Key ID and AWS SecretAccess Key when they register. For request authentication, theAWSAccessKeyId element identifies the secret key that was used to compute the signature, and (indirectly) the developer making the request. -// -// The Signature element is the RFC 2104HMAC-SHA1 of selected elements from the request, and so theSignature part of the Authorization header will vary from request to request. If the request signature calculated by the system matches theSignature included with the request, then the requester will have demonstrated possession to the AWSSecret Access Key. The request will then be processed under the identity, and with the authority, of the developer to whom the key was issued. -// -// Following is pseudo-grammar that illustrates the construction of the Authorization request header (\nmeans the Unicode code point U+000A commonly called newline). - -function authorizationHeader (accessKey) { - // Authorization = "AWS" + " " + AWSAccessKeyId + ":" + Signature; - - var authorization = 'AWS' + " " + accessKey + ":" + signature() - - return authorization -} - -// - -function signature (secret, verb, md5, contenttype, date, amzheaders, bucket, path) { - // Signature = Base64( HMAC-SHA1( UTF-8-Encoding-Of( YourSecretAccessKeyID, StringToSign ) ) ); - - function encodeSignature (stringToSign) { - return crypto.createHash('sha1').update(stringToSign).digest('base64') - } - - // - // StringToSign = HTTP-Verb + "\n" + - // Content-MD5 + "\n" + - // Content-Type + "\n" + - // Date + "\n" + - // CanonicalizedAmzHeaders + - // CanonicalizedResource; - - function compileStringToSign () { - var s = - verb + '\n' - (md5 || '') + '\n' - (contenttype || '') + '\n' - date.toUTCString() + '\n' - canonicalizeAmzHeaders(amzheaders) + - canonicalizeResource() - return s - } - - // - // CanonicalizedResource = [ "/" + Bucket ] + - // + - // [ sub-resource, if present. For example "?acl", "?location", "?logging", or "?torrent"]; - - function canonicalizeResource () { - return '/' + bucket + path - } - - // - // CanonicalizedAmzHeaders = - // - // HMAC-SHA1 is an algorithm defined by RFC 2104 (go to RFC 2104 - Keyed-Hashing for Message Authentication ). The algorithm takes as input two byte-strings: a key and a message. For Amazon S3 Request authentication, use your AWS Secret Access Key (YourSecretAccessKeyID) as the key, and the UTF-8 encoding of the StringToSign as the message. The output of HMAC-SHA1 is also a byte string, called the digest. The Signature request parameter is constructed by Base64 encoding this digest. - // Request Canonicalization for Signing - // - // Recall that when the system receives an authenticated request, it compares the computed request signature with the signature provided in the request in StringToSign. For that reason, you must compute the signature using the same method used by Amazon S3. We call the process of putting a request in an agreed-upon form for signing "canonicalization". - -} - - - -// Constructing the CanonicalizedResource Element -// -// CanonicalizedResource represents the Amazon S3 resource targeted by the request. Construct it for a REST request as follows: -// -// Launch Process -// -// 1 -// -// -// Start with the empty string (""). -// -// 2 -// -// -// If the request specifies a bucket using the HTTP Host header (virtual hosted-style), append the bucket name preceded by a "/" (e.g., "/bucketname"). For path-style requests and requests that don't address a bucket, do nothing. For more information on virtual hosted-style requests, see Virtual Hosting of Buckets. -// -// 3 -// -// -// Append the path part of the un-decoded HTTP Request-URI, up-to but not including the query string. -// -// 4 -// -// -// If the request addresses a sub-resource, like ?versioning, ?location, ?acl, ?torrent, ?lifecycle, or ?versionid append the sub-resource, its value if it has one, and the question mark. Note that in case of multiple sub-resources, sub-resources must be lexicographically sorted by sub-resource name and separated by '&'. e.g. ?acl&versionId=value. -// -// The list of sub-resources that must be included when constructing the CanonicalizedResource Element are: acl, lifecycle, location, logging, notification, partNumber, policy, requestPayment, torrent, uploadId, uploads, versionId, versioning, versions and website. -// -// If the request specifies query string parameters overriding the response header values (see Get Object), append the query string parameters, and its values. When signing you do not encode these values. However, when making the request, you must encode these parameter values. The query string parameters in a GET request include response-content-type, response-content-language, response-expires, response-cache-control, response-content-disposition, response-content-encoding. -// -// The delete query string parameter must be including when creating the CanonicalizedResource for a Multi-Object Delete request. -// -// Elements of the CanonicalizedResource that come from the HTTP Request-URI should be signed literally as they appear in the HTTP request, including URL-Encoding meta characters. -// -// The CanonicalizedResource might be different than the HTTP Request-URI. In particular, if your request uses the HTTP Host header to specify a bucket, the bucket does appear in the HTTP Request-URI. However, the CanonicalizedResource continues to include the bucket. Query string parameters might also appear in the Request-URI but are not included in CanonicalizedResource. For more information, see Virtual Hosting of Buckets. -// Constructing the CanonicalizedAmzHeaders Element -// -// To construct the CanonicalizedAmzHeaders part of StringToSign, select all HTTP request headers that start with 'x-amz-' (using a case-insensitive comparison) and use the following process. -// -// CanonicalizedAmzHeaders Process -// 1 Convert each HTTP header name to lower-case. For example, 'X-Amz-Date' becomes 'x-amz-date'. -// 2 Sort the collection of headers lexicographically by header name. -// 3 Combine header fields with the same name into one "header-name:comma-separated-value-list" pair as prescribed by RFC 2616, section 4.2, without any white-space between values. For example, the two metadata headers 'x-amz-meta-username: fred' and 'x-amz-meta-username: barney' would be combined into the single header 'x-amz-meta-username: fred,barney'. -// 4 "Unfold" long headers that span multiple lines (as allowed by RFC 2616, section 4.2) by replacing the folding white-space (including new-line) by a single space. -// 5 Trim any white-space around the colon in the header. For example, the header 'x-amz-meta-username: fred,barney' would become 'x-amz-meta-username:fred,barney' -// 6 Finally, append a new-line (U+000A) to each canonicalized header in the resulting list. Construct the CanonicalizedResource element by concatenating all headers in this list into a single string. -// -// Positional versus Named HTTP Header StringToSign Elements -// -// The first few header elements of StringToSign (Content-Type, Date, and Content-MD5) are positional in nature. StringToSign does not include the names of these headers, only their values from the request. In contrast, the 'x-amz-' elements are named; Both the header names and the header values appear in StringToSign. -// -// If a positional header called for in the definition of StringToSign is not present in your request, (Content-Type or Content-MD5, for example, are optional for PUT requests, and meaningless for GET requests), substitute the empty string ("") in for that position. -// Time Stamp Requirement -// -// A valid time stamp (using either the HTTP Date header or an x-amz-date alternative) is mandatory for authenticated requests. Furthermore, the client time-stamp included with an authenticated request must be within 15 minutes of the Amazon S3 system time when the request is received. If not, the request will fail with the RequestTimeTooSkewed error status code. The intention of these restrictions is to limit the possibility that intercepted requests could be replayed by an adversary. For stronger protection against eavesdropping, use the HTTPS transport for authenticated requests. -// -// Some HTTP client libraries do not expose the ability to set the Date header for a request. If you have trouble including the value of the 'Date' header in the canonicalized headers, you can set the time-stamp for the request using an 'x-amz-date' header instead. The value of the x-amz-date header must be in one of the RFC 2616 formats (http://www.ietf.org/rfc/rfc2616.txt). When an x-amz-date header is present in a request, the system will ignore any Date header when computing the request signature. Therefore, if you include the x-amz-date header, use the empty string for the Date when constructing the StringToSign. See the next section for an example. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/forever.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/forever.js deleted file mode 100644 index ac853c0d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/forever.js +++ /dev/null @@ -1,103 +0,0 @@ -module.exports = ForeverAgent -ForeverAgent.SSL = ForeverAgentSSL - -var util = require('util') - , Agent = require('http').Agent - , net = require('net') - , tls = require('tls') - , AgentSSL = require('https').Agent - -function ForeverAgent(options) { - var self = this - self.options = options || {} - self.requests = {} - self.sockets = {} - self.freeSockets = {} - self.maxSockets = self.options.maxSockets || Agent.defaultMaxSockets - self.minSockets = self.options.minSockets || ForeverAgent.defaultMinSockets - self.on('free', function(socket, host, port) { - var name = host + ':' + port - if (self.requests[name] && self.requests[name].length) { - self.requests[name].shift().onSocket(socket) - } else if (self.sockets[name].length < self.minSockets) { - if (!self.freeSockets[name]) self.freeSockets[name] = [] - self.freeSockets[name].push(socket) - - // if an error happens while we don't use the socket anyway, meh, throw the socket away - function onIdleError() { - socket.destroy() - } - socket._onIdleError = onIdleError - socket.on('error', onIdleError) - } else { - // If there are no pending requests just destroy the - // socket and it will get removed from the pool. This - // gets us out of timeout issues and allows us to - // default to Connection:keep-alive. - socket.destroy(); - } - }) - -} -util.inherits(ForeverAgent, Agent) - -ForeverAgent.defaultMinSockets = 5 - - -ForeverAgent.prototype.createConnection = net.createConnection -ForeverAgent.prototype.addRequestNoreuse = Agent.prototype.addRequest -ForeverAgent.prototype.addRequest = function(req, host, port) { - var name = host + ':' + port - if (this.freeSockets[name] && this.freeSockets[name].length > 0 && !req.useChunkedEncodingByDefault) { - var idleSocket = this.freeSockets[name].pop() - idleSocket.removeListener('error', idleSocket._onIdleError) - delete idleSocket._onIdleError - req._reusedSocket = true - req.onSocket(idleSocket) - } else { - this.addRequestNoreuse(req, host, port) - } -} - -ForeverAgent.prototype.removeSocket = function(s, name, host, port) { - if (this.sockets[name]) { - var index = this.sockets[name].indexOf(s); - if (index !== -1) { - this.sockets[name].splice(index, 1); - } - } else if (this.sockets[name] && this.sockets[name].length === 0) { - // don't leak - delete this.sockets[name]; - delete this.requests[name]; - } - - if (this.freeSockets[name]) { - var index = this.freeSockets[name].indexOf(s) - if (index !== -1) { - this.freeSockets[name].splice(index, 1) - if (this.freeSockets[name].length === 0) { - delete this.freeSockets[name] - } - } - } - - if (this.requests[name] && this.requests[name].length) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(name, host, port).emit('free'); - } -} - -function ForeverAgentSSL (options) { - ForeverAgent.call(this, options) -} -util.inherits(ForeverAgentSSL, ForeverAgent) - -ForeverAgentSSL.prototype.createConnection = createConnectionSSL -ForeverAgentSSL.prototype.addRequestNoreuse = AgentSSL.prototype.addRequest - -function createConnectionSSL (port, host, options) { - options.port = port - options.host = host - return tls.connect(options) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/main.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/main.js deleted file mode 100644 index 2407a934..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/main.js +++ /dev/null @@ -1,974 +0,0 @@ -// Copyright 2010-2012 Mikeal Rogers -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var http = require('http') - , https = false - , tls = false - , url = require('url') - , util = require('util') - , stream = require('stream') - , qs = require('querystring') - , mimetypes = require('./mimetypes') - , oauth = require('./oauth') - , uuid = require('./uuid') - , ForeverAgent = require('./forever') - , Cookie = require('./vendor/cookie') - , CookieJar = require('./vendor/cookie/jar') - , cookieJar = new CookieJar - , tunnel = require('./tunnel') - , aws = require('./aws') - ; - -if (process.logging) { - var log = process.logging('request') -} - -try { - https = require('https') -} catch (e) {} - -try { - tls = require('tls') -} catch (e) {} - -function toBase64 (str) { - return (new Buffer(str || "", "ascii")).toString("base64") -} - -// Hacky fix for pre-0.4.4 https -if (https && !https.Agent) { - https.Agent = function (options) { - http.Agent.call(this, options) - } - util.inherits(https.Agent, http.Agent) - https.Agent.prototype._getConnection = function (host, port, cb) { - var s = tls.connect(port, host, this.options, function () { - // do other checks here? - if (cb) cb() - }) - return s - } -} - -function isReadStream (rs) { - if (rs.readable && rs.path && rs.mode) { - return true - } -} - -function copy (obj) { - var o = {} - Object.keys(obj).forEach(function (i) { - o[i] = obj[i] - }) - return o -} - -var isUrl = /^https?:/ - -var globalPool = {} - -function Request (options) { - stream.Stream.call(this) - this.readable = true - this.writable = true - - if (typeof options === 'string') { - options = {uri:options} - } - - var reserved = Object.keys(Request.prototype) - for (var i in options) { - if (reserved.indexOf(i) === -1) { - this[i] = options[i] - } else { - if (typeof options[i] === 'function') { - delete options[i] - } - } - } - options = copy(options) - - this.init(options) -} -util.inherits(Request, stream.Stream) -Request.prototype.init = function (options) { - var self = this - - if (!options) options = {} - - if (!self.pool && self.pool !== false) self.pool = globalPool - self.dests = [] - self.__isRequestRequest = true - - // Protect against double callback - if (!self._callback && self.callback) { - self._callback = self.callback - self.callback = function () { - if (self._callbackCalled) return // Print a warning maybe? - self._callback.apply(self, arguments) - self._callbackCalled = true - } - self.on('error', self.callback.bind()) - self.on('complete', self.callback.bind(self, null)) - } - - if (self.url) { - // People use this property instead all the time so why not just support it. - self.uri = self.url - delete self.url - } - - if (!self.uri) { - throw new Error("options.uri is a required argument") - } else { - if (typeof self.uri == "string") self.uri = url.parse(self.uri) - } - if (self.proxy) { - if (typeof self.proxy == 'string') self.proxy = url.parse(self.proxy) - - // do the HTTP CONNECT dance using koichik/node-tunnel - if (http.globalAgent && self.uri.protocol === "https:") { - self.tunnel = true - var tunnelFn = self.proxy.protocol === "http:" - ? tunnel.httpsOverHttp : tunnel.httpsOverHttps - - var tunnelOptions = { proxy: { host: self.proxy.hostname - , port: +self.proxy.port - , proxyAuth: self.proxy.auth } - , ca: this.ca } - - self.agent = tunnelFn(tunnelOptions) - self.tunnel = true - } - } - - if (!self.uri.host || !self.uri.pathname) { - // Invalid URI: it may generate lot of bad errors, like "TypeError: Cannot call method 'indexOf' of undefined" in CookieJar - // Detect and reject it as soon as possible - var faultyUri = url.format(self.uri) - var message = 'Invalid URI "' + faultyUri + '"' - if (Object.keys(options).length === 0) { - // No option ? This can be the sign of a redirect - // As this is a case where the user cannot do anything (he didn't call request directly with this URL) - // he should be warned that it can be caused by a redirection (can save some hair) - message += '. This can be caused by a crappy redirection.' - } - self.emit('error', new Error(message)) - return // This error was fatal - } - - self._redirectsFollowed = self._redirectsFollowed || 0 - self.maxRedirects = (self.maxRedirects !== undefined) ? self.maxRedirects : 10 - self.followRedirect = (self.followRedirect !== undefined) ? self.followRedirect : true - self.followAllRedirects = (self.followAllRedirects !== undefined) ? self.followAllRedirects : false; - if (self.followRedirect || self.followAllRedirects) - self.redirects = self.redirects || [] - - self.headers = self.headers ? copy(self.headers) : {} - - self.setHost = false - if (!self.headers.host) { - self.headers.host = self.uri.hostname - if (self.uri.port) { - if ( !(self.uri.port === 80 && self.uri.protocol === 'http:') && - !(self.uri.port === 443 && self.uri.protocol === 'https:') ) - self.headers.host += (':'+self.uri.port) - } - self.setHost = true - } - - self.jar(self._jar || options.jar) - - if (!self.uri.pathname) {self.uri.pathname = '/'} - if (!self.uri.port) { - if (self.uri.protocol == 'http:') {self.uri.port = 80} - else if (self.uri.protocol == 'https:') {self.uri.port = 443} - } - - if (self.proxy && !self.tunnel) { - self.port = self.proxy.port - self.host = self.proxy.hostname - } else { - self.port = self.uri.port - self.host = self.uri.hostname - } - - self.clientErrorHandler = function (error) { - if (self._aborted) return - - if (self.setHost) delete self.headers.host - if (self.req._reusedSocket && error.code === 'ECONNRESET' - && self.agent.addRequestNoreuse) { - self.agent = { addRequest: self.agent.addRequestNoreuse.bind(self.agent) } - self.start() - self.req.end() - return - } - if (self.timeout && self.timeoutTimer) { - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null - } - self.emit('error', error) - } - - if (options.form) { - self.form(options.form) - } - - if (options.oauth) { - self.oauth(options.oauth) - } - - if (options.aws) { - self.aws(options.aws) - } - - if (self.uri.auth && !self.headers.authorization) { - self.headers.authorization = "Basic " + toBase64(self.uri.auth.split(':').map(function(item){ return qs.unescape(item)}).join(':')) - } - if (self.proxy && self.proxy.auth && !self.headers['proxy-authorization'] && !self.tunnel) { - self.headers['proxy-authorization'] = "Basic " + toBase64(self.proxy.auth.split(':').map(function(item){ return qs.unescape(item)}).join(':')) - } - - if (options.qs) self.qs(options.qs) - - if (self.uri.path) { - self.path = self.uri.path - } else { - self.path = self.uri.pathname + (self.uri.search || "") - } - - if (self.path.length === 0) self.path = '/' - - if (self.proxy && !self.tunnel) self.path = (self.uri.protocol + '//' + self.uri.host + self.path) - - if (options.json) { - self.json(options.json) - } else if (options.multipart) { - self.boundary = uuid() - self.multipart(options.multipart) - } - - if (self.body) { - var length = 0 - if (!Buffer.isBuffer(self.body)) { - if (Array.isArray(self.body)) { - for (var i = 0; i < self.body.length; i++) { - length += self.body[i].length - } - } else { - self.body = new Buffer(self.body) - length = self.body.length - } - } else { - length = self.body.length - } - if (length) { - self.headers['content-length'] = length - } else { - throw new Error('Argument error, options.body.') - } - } - - var protocol = self.proxy && !self.tunnel ? self.proxy.protocol : self.uri.protocol - , defaultModules = {'http:':http, 'https:':https} - , httpModules = self.httpModules || {} - ; - self.httpModule = httpModules[protocol] || defaultModules[protocol] - - if (!self.httpModule) throw new Error("Invalid protocol") - - if (options.ca) self.ca = options.ca - - if (!self.agent) { - if (options.agentOptions) self.agentOptions = options.agentOptions - - if (options.agentClass) { - self.agentClass = options.agentClass - } else if (options.forever) { - self.agentClass = protocol === 'http:' ? ForeverAgent : ForeverAgent.SSL - } else { - self.agentClass = self.httpModule.Agent - } - } - - if (self.pool === false) { - self.agent = false - } else { - self.agent = self.agent || self.getAgent() - if (self.maxSockets) { - // Don't use our pooling if node has the refactored client - self.agent.maxSockets = self.maxSockets - } - if (self.pool.maxSockets) { - // Don't use our pooling if node has the refactored client - self.agent.maxSockets = self.pool.maxSockets - } - } - - self.once('pipe', function (src) { - if (self.ntick) throw new Error("You cannot pipe to this stream after the first nextTick() after creation of the request stream.") - self.src = src - if (isReadStream(src)) { - if (!self.headers['content-type'] && !self.headers['Content-Type']) - self.headers['content-type'] = mimetypes.lookup(src.path.slice(src.path.lastIndexOf('.')+1)) - } else { - if (src.headers) { - for (var i in src.headers) { - if (!self.headers[i]) { - self.headers[i] = src.headers[i] - } - } - } - if (src.method && !self.method) { - self.method = src.method - } - } - - self.on('pipe', function () { - console.error("You have already piped to this stream. Pipeing twice is likely to break the request.") - }) - }) - - process.nextTick(function () { - if (self._aborted) return - - if (self.body) { - if (Array.isArray(self.body)) { - self.body.forEach(function (part) { - self.write(part) - }) - } else { - self.write(self.body) - } - self.end() - } else if (self.requestBodyStream) { - console.warn("options.requestBodyStream is deprecated, please pass the request object to stream.pipe.") - self.requestBodyStream.pipe(self) - } else if (!self.src) { - if (self.method !== 'GET' && typeof self.method !== 'undefined') { - self.headers['content-length'] = 0; - } - self.end(); - } - self.ntick = true - }) -} - -Request.prototype.getAgent = function () { - var Agent = this.agentClass - var options = {} - if (this.agentOptions) { - for (var i in this.agentOptions) { - options[i] = this.agentOptions[i] - } - } - if (this.ca) options.ca = this.ca - - var poolKey = '' - - // different types of agents are in different pools - if (Agent !== this.httpModule.Agent) { - poolKey += Agent.name - } - - if (!this.httpModule.globalAgent) { - // node 0.4.x - options.host = this.host - options.port = this.port - if (poolKey) poolKey += ':' - poolKey += this.host + ':' + this.port - } - - if (options.ca) { - if (poolKey) poolKey += ':' - poolKey += options.ca - } - - if (!poolKey && Agent === this.httpModule.Agent && this.httpModule.globalAgent) { - // not doing anything special. Use the globalAgent - return this.httpModule.globalAgent - } - - // already generated an agent for this setting - if (this.pool[poolKey]) return this.pool[poolKey] - - return this.pool[poolKey] = new Agent(options) -} - -Request.prototype.start = function () { - var self = this - - if (self._aborted) return - - self._started = true - self.method = self.method || 'GET' - self.href = self.uri.href - if (log) log('%method %href', self) - - if (self.src && self.src.stat && self.src.stat.size) { - self.headers['content-length'] = self.src.stat.size - } - if (self._aws) { - self.aws(self._aws, true) - } - - self.req = self.httpModule.request(self, function (response) { - if (self._aborted) return - if (self._paused) response.pause() - - self.response = response - response.request = self - response.toJSON = toJSON - - if (self.httpModule === https && - self.strictSSL && - !response.client.authorized) { - var sslErr = response.client.authorizationError - self.emit('error', new Error('SSL Error: '+ sslErr)) - return - } - - if (self.setHost) delete self.headers.host - if (self.timeout && self.timeoutTimer) { - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null - } - - var addCookie = function (cookie) { - if (self._jar) self._jar.add(new Cookie(cookie)) - else cookieJar.add(new Cookie(cookie)) - } - - if (response.headers['set-cookie'] && (!self._disableCookies)) { - if (Array.isArray(response.headers['set-cookie'])) response.headers['set-cookie'].forEach(addCookie) - else addCookie(response.headers['set-cookie']) - } - - if (response.statusCode >= 300 && response.statusCode < 400 && - (self.followAllRedirects || - (self.followRedirect && (self.method !== 'PUT' && self.method !== 'POST' && self.method !== 'DELETE'))) && - response.headers.location) { - if (self._redirectsFollowed >= self.maxRedirects) { - self.emit('error', new Error("Exceeded maxRedirects. Probably stuck in a redirect loop.")) - return - } - self._redirectsFollowed += 1 - - if (!isUrl.test(response.headers.location)) { - response.headers.location = url.resolve(self.uri.href, response.headers.location) - } - self.uri = response.headers.location - self.redirects.push( - { statusCode : response.statusCode - , redirectUri: response.headers.location - } - ) - if (self.followAllRedirects) self.method = 'GET' - // self.method = 'GET'; // Force all redirects to use GET || commented out fixes #215 - delete self.req - delete self.agent - delete self._started - delete self.body - if (self.headers) { - delete self.headers.host - } - if (log) log('Redirect to %uri', self) - self.init() - return // Ignore the rest of the response - } else { - self._redirectsFollowed = self._redirectsFollowed || 0 - // Be a good stream and emit end when the response is finished. - // Hack to emit end on close because of a core bug that never fires end - response.on('close', function () { - if (!self._ended) self.response.emit('end') - }) - - if (self.encoding) { - if (self.dests.length !== 0) { - console.error("Ingoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.") - } else { - response.setEncoding(self.encoding) - } - } - - self.dests.forEach(function (dest) { - self.pipeDest(dest) - }) - - response.on("data", function (chunk) { - self._destdata = true - self.emit("data", chunk) - }) - response.on("end", function (chunk) { - self._ended = true - self.emit("end", chunk) - }) - response.on("close", function () {self.emit("close")}) - - self.emit('response', response) - - if (self.callback) { - var buffer = [] - var bodyLen = 0 - self.on("data", function (chunk) { - buffer.push(chunk) - bodyLen += chunk.length - }) - self.on("end", function () { - if (self._aborted) return - - if (buffer.length && Buffer.isBuffer(buffer[0])) { - var body = new Buffer(bodyLen) - var i = 0 - buffer.forEach(function (chunk) { - chunk.copy(body, i, 0, chunk.length) - i += chunk.length - }) - if (self.encoding === null) { - response.body = body - } else { - response.body = body.toString() - } - } else if (buffer.length) { - response.body = buffer.join('') - } - - if (self._json) { - try { - response.body = JSON.parse(response.body) - } catch (e) {} - } - - self.emit('complete', response, response.body) - }) - } - } - }) - - if (self.timeout && !self.timeoutTimer) { - self.timeoutTimer = setTimeout(function () { - self.req.abort() - var e = new Error("ETIMEDOUT") - e.code = "ETIMEDOUT" - self.emit("error", e) - }, self.timeout) - - // Set additional timeout on socket - in case if remote - // server freeze after sending headers - if (self.req.setTimeout) { // only works on node 0.6+ - self.req.setTimeout(self.timeout, function () { - if (self.req) { - self.req.abort() - var e = new Error("ESOCKETTIMEDOUT") - e.code = "ESOCKETTIMEDOUT" - self.emit("error", e) - } - }) - } - } - - self.req.on('error', self.clientErrorHandler) - self.req.on('drain', function() { - self.emit('drain') - }) - - self.emit('request', self.req) -} - -Request.prototype.abort = function () { - this._aborted = true; - - if (this.req) { - this.req.abort() - } - else if (this.response) { - this.response.abort() - } - - this.emit("abort") -} - -Request.prototype.pipeDest = function (dest) { - var response = this.response - // Called after the response is received - if (dest.headers) { - dest.headers['content-type'] = response.headers['content-type'] - if (response.headers['content-length']) { - dest.headers['content-length'] = response.headers['content-length'] - } - } - if (dest.setHeader) { - for (var i in response.headers) { - dest.setHeader(i, response.headers[i]) - } - dest.statusCode = response.statusCode - } - if (this.pipefilter) this.pipefilter(response, dest) -} - -// Composable API -Request.prototype.setHeader = function (name, value, clobber) { - if (clobber === undefined) clobber = true - if (clobber || !this.headers.hasOwnProperty(name)) this.headers[name] = value - else this.headers[name] += ',' + value - return this -} -Request.prototype.setHeaders = function (headers) { - for (var i in headers) {this.setHeader(i, headers[i])} - return this -} -Request.prototype.qs = function (q, clobber) { - var base - if (!clobber && this.uri.query) base = qs.parse(this.uri.query) - else base = {} - - for (var i in q) { - base[i] = q[i] - } - - this.uri = url.parse(this.uri.href.split('?')[0] + '?' + qs.stringify(base)) - this.url = this.uri - - return this -} -Request.prototype.form = function (form) { - this.headers['content-type'] = 'application/x-www-form-urlencoded; charset=utf-8' - this.body = qs.stringify(form).toString('utf8') - return this -} -Request.prototype.multipart = function (multipart) { - var self = this - self.body = [] - - if (!self.headers['content-type']) { - self.headers['content-type'] = 'multipart/related; boundary=' + self.boundary; - } else { - self.headers['content-type'] = self.headers['content-type'].split(';')[0] + '; boundary=' + self.boundary; - } - - console.log('boundary >> ' + self.boundary) - - if (!multipart.forEach) throw new Error('Argument error, options.multipart.') - - multipart.forEach(function (part) { - var body = part.body - if(body == null) throw Error('Body attribute missing in multipart.') - delete part.body - var preamble = '--' + self.boundary + '\r\n' - Object.keys(part).forEach(function (key) { - preamble += key + ': ' + part[key] + '\r\n' - }) - preamble += '\r\n' - self.body.push(new Buffer(preamble)) - self.body.push(new Buffer(body)) - self.body.push(new Buffer('\r\n')) - }) - self.body.push(new Buffer('--' + self.boundary + '--')) - return self -} -Request.prototype.json = function (val) { - this.setHeader('content-type', 'application/json') - this.setHeader('accept', 'application/json') - this._json = true - if (typeof val === 'boolean') { - if (typeof this.body === 'object') this.body = JSON.stringify(this.body) - } else { - this.body = JSON.stringify(val) - } - return this -} -Request.prototype.aws = function (opts, now) { - if (!now) { - this._aws = opts - return this - } - var date = new Date() - this.setHeader('date', date.toUTCString()) - this.setHeader('authorization', aws.authorization( - { key: opts.key - , secret: opts.secret - , verb: this.method - , date: date - , resource: aws.canonicalizeResource('/' + opts.bucket + this.path) - , contentType: this.headers['content-type'] || '' - , md5: this.headers['content-md5'] || '' - , amazonHeaders: aws.canonicalizeHeaders(this.headers) - } - )) - - return this -} - -Request.prototype.oauth = function (_oauth) { - var form - if (this.headers['content-type'] && - this.headers['content-type'].slice(0, 'application/x-www-form-urlencoded'.length) === - 'application/x-www-form-urlencoded' - ) { - form = qs.parse(this.body) - } - if (this.uri.query) { - form = qs.parse(this.uri.query) - } - if (!form) form = {} - var oa = {} - for (var i in form) oa[i] = form[i] - for (var i in _oauth) oa['oauth_'+i] = _oauth[i] - if (!oa.oauth_version) oa.oauth_version = '1.0' - if (!oa.oauth_timestamp) oa.oauth_timestamp = Math.floor( (new Date()).getTime() / 1000 ).toString() - if (!oa.oauth_nonce) oa.oauth_nonce = uuid().replace(/-/g, '') - - oa.oauth_signature_method = 'HMAC-SHA1' - - var consumer_secret = oa.oauth_consumer_secret - delete oa.oauth_consumer_secret - var token_secret = oa.oauth_token_secret - delete oa.oauth_token_secret - - var baseurl = this.uri.protocol + '//' + this.uri.host + this.uri.pathname - var signature = oauth.hmacsign(this.method, baseurl, oa, consumer_secret, token_secret) - - // oa.oauth_signature = signature - for (var i in form) { - if ( i.slice(0, 'oauth_') in _oauth) { - // skip - } else { - delete oa['oauth_'+i] - } - } - this.headers.Authorization = - 'OAuth '+Object.keys(oa).sort().map(function (i) {return i+'="'+oauth.rfc3986(oa[i])+'"'}).join(',') - this.headers.Authorization += ',oauth_signature="'+oauth.rfc3986(signature)+'"' - return this -} -Request.prototype.jar = function (jar) { - var cookies - - if (this._redirectsFollowed === 0) { - this.originalCookieHeader = this.headers.cookie - } - - if (jar === false) { - // disable cookies - cookies = false; - this._disableCookies = true; - } else if (jar) { - // fetch cookie from the user defined cookie jar - cookies = jar.get({ url: this.uri.href }) - } else { - // fetch cookie from the global cookie jar - cookies = cookieJar.get({ url: this.uri.href }) - } - - if (cookies && cookies.length) { - var cookieString = cookies.map(function (c) { - return c.name + "=" + c.value - }).join("; ") - - if (this.originalCookieHeader) { - // Don't overwrite existing Cookie header - this.headers.cookie = this.originalCookieHeader + '; ' + cookieString - } else { - this.headers.cookie = cookieString - } - } - this._jar = jar - return this -} - - -// Stream API -Request.prototype.pipe = function (dest, opts) { - if (this.response) { - if (this._destdata) { - throw new Error("You cannot pipe after data has been emitted from the response.") - } else if (this._ended) { - throw new Error("You cannot pipe after the response has been ended.") - } else { - stream.Stream.prototype.pipe.call(this, dest, opts) - this.pipeDest(dest) - return dest - } - } else { - this.dests.push(dest) - stream.Stream.prototype.pipe.call(this, dest, opts) - return dest - } -} -Request.prototype.write = function () { - if (!this._started) this.start() - return this.req.write.apply(this.req, arguments) -} -Request.prototype.end = function (chunk) { - if (chunk) this.write(chunk) - if (!this._started) this.start() - this.req.end() -} -Request.prototype.pause = function () { - if (!this.response) this._paused = true - else this.response.pause.apply(this.response, arguments) -} -Request.prototype.resume = function () { - if (!this.response) this._paused = false - else this.response.resume.apply(this.response, arguments) -} -Request.prototype.destroy = function () { - if (!this._ended) this.end() -} - -// organize params for post, put, head, del -function initParams(uri, options, callback) { - if ((typeof options === 'function') && !callback) callback = options; - if (options && typeof options === 'object') { - options.uri = uri; - } else if (typeof uri === 'string') { - options = {uri:uri}; - } else { - options = uri; - uri = options.uri; - } - return { uri: uri, options: options, callback: callback }; -} - -function request (uri, options, callback) { - if (typeof uri === 'undefined') throw new Error('undefined is not a valid uri or options object.') - if ((typeof options === 'function') && !callback) callback = options; - if (options && typeof options === 'object') { - options.uri = uri; - } else if (typeof uri === 'string') { - options = {uri:uri}; - } else { - options = uri; - } - - if (callback) options.callback = callback; - var r = new Request(options) - return r -} - -module.exports = request - -request.defaults = function (options) { - var def = function (method) { - var d = function (uri, opts, callback) { - var params = initParams(uri, opts, callback); - for (var i in options) { - if (params.options[i] === undefined) params.options[i] = options[i] - } - return method(params.options, params.callback) - } - return d - } - var de = def(request) - de.get = def(request.get) - de.post = def(request.post) - de.put = def(request.put) - de.head = def(request.head) - de.del = def(request.del) - de.cookie = def(request.cookie) - de.jar = def(request.jar) - return de -} - -request.forever = function (agentOptions, optionsArg) { - var options = {} - if (optionsArg) { - for (option in optionsArg) { - options[option] = optionsArg[option] - } - } - if (agentOptions) options.agentOptions = agentOptions - options.forever = true - return request.defaults(options) -} - -request.get = request -request.post = function (uri, options, callback) { - var params = initParams(uri, options, callback); - params.options.method = 'POST'; - return request(params.uri || null, params.options, params.callback) -} -request.put = function (uri, options, callback) { - var params = initParams(uri, options, callback); - params.options.method = 'PUT' - return request(params.uri || null, params.options, params.callback) -} -request.head = function (uri, options, callback) { - var params = initParams(uri, options, callback); - params.options.method = 'HEAD' - if (params.options.body || - params.options.requestBodyStream || - (params.options.json && typeof params.options.json !== 'boolean') || - params.options.multipart) { - throw new Error("HTTP HEAD requests MUST NOT include a request body.") - } - return request(params.uri || null, params.options, params.callback) -} -request.del = function (uri, options, callback) { - var params = initParams(uri, options, callback); - params.options.method = 'DELETE' - return request(params.uri || null, params.options, params.callback) -} -request.jar = function () { - return new CookieJar -} -request.cookie = function (str) { - if (str && str.uri) str = str.uri - if (typeof str !== 'string') throw new Error("The cookie function only accepts STRING as param") - return new Cookie(str) -} - -// Safe toJSON - -function getSafe (self, uuid) { - if (typeof self === 'object' || typeof self === 'function') var safe = {} - if (Array.isArray(self)) var safe = [] - - var recurse = [] - - Object.defineProperty(self, uuid, {}) - - var attrs = Object.keys(self).filter(function (i) { - if (i === uuid) return false - if ( (typeof self[i] !== 'object' && typeof self[i] !== 'function') || self[i] === null) return true - return !(Object.getOwnPropertyDescriptor(self[i], uuid)) - }) - - - for (var i=0;i= 0.3.6" - ], - "main": "./main", - "scripts": { - "test": "node tests/run.js" - }, - "_npmUser": { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - "_id": "request@2.9.203", - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.1.24", - "_nodeVersion": "v0.6.20-pre", - "_defaultsLoaded": true, - "dist": { - "shasum": "6c1711a5407fb94a114219563e44145bcbf4723a", - "tarball": "https://registry.npmjs.org/request/-/request-2.9.203.tgz" - }, - "maintainers": [ - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - } - ], - "directories": {}, - "_shasum": "6c1711a5407fb94a114219563e44145bcbf4723a", - "_resolved": "https://registry.npmjs.org/request/-/request-2.9.203.tgz", - "_from": "request@>=2.9.0 <2.10.0", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/mikeal/request#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/googledoodle.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/googledoodle.png deleted file mode 100644 index f80c9c52..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/googledoodle.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/run.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/run.js deleted file mode 100644 index f3a30d35..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/run.js +++ /dev/null @@ -1,39 +0,0 @@ -var spawn = require('child_process').spawn - , exitCode = 0 - ; - -var tests = [ - 'test-body.js' - , 'test-cookie.js' - , 'test-cookiejar.js' - , 'test-defaults.js' - , 'test-errors.js' - , 'test-headers.js' - , 'test-httpModule.js' - , 'test-https.js' - , 'test-https-strict.js' - , 'test-oauth.js' - , 'test-pipes.js' - , 'test-pool.js' - , 'test-proxy.js' - , 'test-qs.js' - , 'test-redirect.js' - , 'test-timeout.js' - , 'test-toJSON.js' - , 'test-tunnel.js' -] - -var next = function () { - if (tests.length === 0) process.exit(exitCode); - - var file = tests.shift() - console.log(file) - var proc = spawn('node', [ 'tests/' + file ]) - proc.stdout.pipe(process.stdout) - proc.stderr.pipe(process.stderr) - proc.on('exit', function (code) { - exitCode += code || 0 - next() - }) -} -next() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/server.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/server.js deleted file mode 100644 index 921f5120..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/server.js +++ /dev/null @@ -1,82 +0,0 @@ -var fs = require('fs') - , http = require('http') - , path = require('path') - , https = require('https') - , events = require('events') - , stream = require('stream') - , assert = require('assert') - ; - -exports.createServer = function (port) { - port = port || 6767 - var s = http.createServer(function (req, resp) { - s.emit(req.url, req, resp); - }) - s.port = port - s.url = 'http://localhost:'+port - return s; -} - -exports.createSSLServer = function(port, opts) { - port = port || 16767 - - var options = { 'key' : path.join(__dirname, 'ssl', 'test.key') - , 'cert': path.join(__dirname, 'ssl', 'test.crt') - } - if (opts) { - for (var i in opts) options[i] = opts[i] - } - - for (var i in options) { - options[i] = fs.readFileSync(options[i]) - } - - var s = https.createServer(options, function (req, resp) { - s.emit(req.url, req, resp); - }) - s.port = port - s.url = 'https://localhost:'+port - return s; -} - -exports.createPostStream = function (text) { - var postStream = new stream.Stream(); - postStream.writeable = true; - postStream.readable = true; - setTimeout(function () {postStream.emit('data', new Buffer(text)); postStream.emit('end')}, 0); - return postStream; -} -exports.createPostValidator = function (text) { - var l = function (req, resp) { - var r = ''; - req.on('data', function (chunk) {r += chunk}) - req.on('end', function () { - if (r !== text) console.log(r, text); - assert.equal(r, text) - resp.writeHead(200, {'content-type':'text/plain'}) - resp.write('OK') - resp.end() - }) - } - return l; -} -exports.createGetResponse = function (text, contentType) { - var l = function (req, resp) { - contentType = contentType || 'text/plain' - resp.writeHead(200, {'content-type':contentType}) - resp.write(text) - resp.end() - } - return l; -} -exports.createChunkResponse = function (chunks, contentType) { - var l = function (req, resp) { - contentType = contentType || 'text/plain' - resp.writeHead(200, {'content-type':contentType}) - chunks.forEach(function (chunk) { - resp.write(chunk) - }) - resp.end() - } - return l; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/squid.conf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/squid.conf deleted file mode 100644 index 0d4a3b6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/squid.conf +++ /dev/null @@ -1,77 +0,0 @@ -# -# Recommended minimum configuration: -# -acl manager proto cache_object -acl localhost src 127.0.0.1/32 ::1 -acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 - -# Example rule allowing access from your local networks. -# Adapt to list your (internal) IP networks from where browsing -# should be allowed -acl localnet src 10.0.0.0/8 # RFC1918 possible internal network -acl localnet src 172.16.0.0/12 # RFC1918 possible internal network -acl localnet src 192.168.0.0/16 # RFC1918 possible internal network -acl localnet src fc00::/7 # RFC 4193 local private network range -acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines - -acl SSL_ports port 443 -acl Safe_ports port 80 # http -acl Safe_ports port 21 # ftp -acl Safe_ports port 443 # https -acl Safe_ports port 70 # gopher -acl Safe_ports port 210 # wais -acl Safe_ports port 1025-65535 # unregistered ports -acl Safe_ports port 280 # http-mgmt -acl Safe_ports port 488 # gss-http -acl Safe_ports port 591 # filemaker -acl Safe_ports port 777 # multiling http -acl CONNECT method CONNECT - -# -# Recommended minimum Access Permission configuration: -# -# Only allow cachemgr access from localhost -http_access allow manager localhost -http_access deny manager - -# Deny requests to certain unsafe ports -http_access deny !Safe_ports - -# Deny CONNECT to other than secure SSL ports -#http_access deny CONNECT !SSL_ports - -# We strongly recommend the following be uncommented to protect innocent -# web applications running on the proxy server who think the only -# one who can access services on "localhost" is a local user -#http_access deny to_localhost - -# -# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS -# - -# Example rule allowing access from your local networks. -# Adapt localnet in the ACL section to list your (internal) IP networks -# from where browsing should be allowed -http_access allow localnet -http_access allow localhost - -# And finally deny all other access to this proxy -http_access deny all - -# Squid normally listens to port 3128 -http_port 3128 - -# We recommend you to use at least the following line. -hierarchy_stoplist cgi-bin ? - -# Uncomment and adjust the following to add a disk cache directory. -#cache_dir ufs /usr/local/var/cache 100 16 256 - -# Leave coredumps in the first cache dir -coredump_dir /usr/local/var/cache - -# Add any of your own refresh_pattern entries above these. -refresh_pattern ^ftp: 1440 20% 10080 -refresh_pattern ^gopher: 1440 0% 1440 -refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 -refresh_pattern . 0 20% 4320 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.cnf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.cnf deleted file mode 100644 index 425a8891..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.cnf +++ /dev/null @@ -1,20 +0,0 @@ -[ req ] -default_bits = 1024 -days = 3650 -distinguished_name = req_distinguished_name -attributes = req_attributes -prompt = no -output_password = password - -[ req_distinguished_name ] -C = US -ST = CA -L = Oakland -O = request -OU = request Certificate Authority -CN = requestCA -emailAddress = mikeal@mikealrogers.com - -[ req_attributes ] -challengePassword = password challenge - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.crl b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.crl deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.crt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.crt deleted file mode 100644 index b4524e44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.crt +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICvTCCAiYCCQDn+P/MSbDsWjANBgkqhkiG9w0BAQUFADCBojELMAkGA1UEBhMC -VVMxCzAJBgNVBAgTAkNBMRAwDgYDVQQHEwdPYWtsYW5kMRAwDgYDVQQKEwdyZXF1 -ZXN0MSYwJAYDVQQLEx1yZXF1ZXN0IENlcnRpZmljYXRlIEF1dGhvcml0eTESMBAG -A1UEAxMJcmVxdWVzdENBMSYwJAYJKoZIhvcNAQkBFhdtaWtlYWxAbWlrZWFscm9n -ZXJzLmNvbTAeFw0xMjAzMDEyMjUwNTZaFw0yMjAyMjcyMjUwNTZaMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExEDAOBgNVBAcTB09ha2xhbmQxEDAOBgNVBAoT -B3JlcXVlc3QxJjAkBgNVBAsTHXJlcXVlc3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -MRIwEAYDVQQDEwlyZXF1ZXN0Q0ExJjAkBgkqhkiG9w0BCQEWF21pa2VhbEBtaWtl -YWxyb2dlcnMuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7t9pQUAK4 -5XJYTI6NrF0n3G2HZsfN+rPYSVzzL8SuVyb1tHXos+vbPm3NKI4E8X1yVAXU8CjJ -5SqXnp4DAypAhaseho81cbhk7LXUhFz78OvAa+OD+xTAEAnNQ8tGUr4VGyplEjfD -xsBVuqV2j8GPNTftr+drOCFlqfAgMrBn4wIDAQABMA0GCSqGSIb3DQEBBQUAA4GB -ADVdTlVAL45R+PACNS7Gs4o81CwSclukBu4FJbxrkd4xGQmurgfRrYYKjtqiopQm -D7ysRamS3HMN9/VKq2T7r3z1PMHPAy7zM4uoXbbaTKwlnX4j/8pGPn8Ca3qHXYlo -88L/OOPc6Di7i7qckS3HFbXQCTiULtxWmy97oEuTwrAj ------END CERTIFICATE----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.csr b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.csr deleted file mode 100644 index e48c56ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.csr +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIICBjCCAW8CAQAwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEQMA4GA1UE -BxMHT2FrbGFuZDEQMA4GA1UEChMHcmVxdWVzdDEmMCQGA1UECxMdcmVxdWVzdCBD -ZXJ0aWZpY2F0ZSBBdXRob3JpdHkxEjAQBgNVBAMTCXJlcXVlc3RDQTEmMCQGCSqG -SIb3DQEJARYXbWlrZWFsQG1pa2VhbHJvZ2Vycy5jb20wgZ8wDQYJKoZIhvcNAQEB -BQADgY0AMIGJAoGBALu32lBQArjlclhMjo2sXSfcbYdmx836s9hJXPMvxK5XJvW0 -deiz69s+bc0ojgTxfXJUBdTwKMnlKpeengMDKkCFqx6GjzVxuGTstdSEXPvw68Br -44P7FMAQCc1Dy0ZSvhUbKmUSN8PGwFW6pXaPwY81N+2v52s4IWWp8CAysGfjAgMB -AAGgIzAhBgkqhkiG9w0BCQcxFBMScGFzc3dvcmQgY2hhbGxlbmdlMA0GCSqGSIb3 -DQEBBQUAA4GBAGJO7grHeVHXetjHEK8urIxdnvfB2qeZeObz4GPKIkqUurjr0rfj -bA3EK1kDMR5aeQWR8RunixdM16Q6Ry0lEdLVWkdSwRN9dmirIHT9cypqnD/FYOia -SdezZ0lUzXgmJIwRYRwB1KSMMocIf52ll/xC2bEGg7/ZAEuAyAgcZV3X ------END CERTIFICATE REQUEST----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.key b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.key deleted file mode 100644 index a53e7f75..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.key +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: DES-EDE3-CBC,C8B5887048377F02 - -nyD5ZH0Wup2uWsDvurq5mKDaDrf8lvNn9w0SH/ZkVnfR1/bkwqrFriqJWvZNUG+q -nS0iBYczsWLJnbub9a1zLOTENWUKVD5uqbC3aGHhnoUTNSa27DONgP8gHOn6JgR+ -GAKo01HCSTiVT4LjkwN337QKHnMP2fTzg+IoC/CigvMcq09hRLwU1/guq0GJKGwH -gTxYNuYmQC4Tjh8vdS4liF+Ve/P3qPR2CehZrIOkDT8PHJBGQJRo4xGUIB7Tpk38 -VCk+UZ0JCS2coY8VkY/9tqFJp/ZnnQQVmaNbdRqg7ECKL+bXnNo7yjzmazPZmPe3 -/ShbE0+CTt7LrjCaQAxWbeDzqfo1lQfgN1LulTm8MCXpQaJpv7v1VhIhQ7afjMYb -4thW/ypHPiYS2YJCAkAVlua9Oxzzh1qJoh8Df19iHtpd79Q77X/qf+1JvITlMu0U -gi7yEatmQcmYNws1mtTC1q2DXrO90c+NZ0LK/Alse6NRL/xiUdjug2iHeTf/idOR -Gg/5dSZbnnlj1E5zjSMDkzg6EHAFmHV4jYGSAFLEQgp4V3ZhMVoWZrvvSHgKV/Qh -FqrAK4INr1G2+/QTd09AIRzfy3/j6yD4A9iNaOsEf9Ua7Qh6RcALRCAZTWR5QtEf -dX+iSNJ4E85qXs0PqwkMDkoaxIJ+tmIRJY7y8oeylV8cfGAi8Soubt/i3SlR8IHC -uDMas/2OnwafK3N7ODeE1i7r7wkzQkSHaEz0TrF8XRnP25jAICCSLiMdAAjKfxVb -EvzsFSuAy3Jt6bU3hSLY9o4YVYKE+68ITMv9yNjvTsEiW+T+IbN34w== ------END RSA PRIVATE KEY----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.srl b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.srl deleted file mode 100644 index 17128db3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/ca.srl +++ /dev/null @@ -1 +0,0 @@ -ADF62016AA40C9C3 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.cnf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.cnf deleted file mode 100644 index cd1fd1e3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.cnf +++ /dev/null @@ -1,19 +0,0 @@ -[ req ] -default_bits = 1024 -days = 3650 -distinguished_name = req_distinguished_name -attributes = req_attributes -prompt = no - -[ req_distinguished_name ] -C = US -ST = CA -L = Oakland -O = request -OU = testing -CN = testing.request.mikealrogers.com -emailAddress = mikeal@mikealrogers.com - -[ req_attributes ] -challengePassword = password challenge - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.crt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.crt deleted file mode 100644 index efe96cef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.crt +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICejCCAeMCCQCt9iAWqkDJwzANBgkqhkiG9w0BAQUFADCBojELMAkGA1UEBhMC -VVMxCzAJBgNVBAgTAkNBMRAwDgYDVQQHEwdPYWtsYW5kMRAwDgYDVQQKEwdyZXF1 -ZXN0MSYwJAYDVQQLEx1yZXF1ZXN0IENlcnRpZmljYXRlIEF1dGhvcml0eTESMBAG -A1UEAxMJcmVxdWVzdENBMSYwJAYJKoZIhvcNAQkBFhdtaWtlYWxAbWlrZWFscm9n -ZXJzLmNvbTAeFw0xMjAzMDEyMjUwNTZaFw0yMjAyMjcyMjUwNTZaMIGjMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExEDAOBgNVBAcTB09ha2xhbmQxEDAOBgNVBAoT -B3JlcXVlc3QxEDAOBgNVBAsTB3Rlc3RpbmcxKTAnBgNVBAMTIHRlc3RpbmcucmVx -dWVzdC5taWtlYWxyb2dlcnMuY29tMSYwJAYJKoZIhvcNAQkBFhdtaWtlYWxAbWlr -ZWFscm9nZXJzLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDgVl0jMumvOpmM -20W5v9yhGgZj8hPhEQF/N7yCBVBn/rWGYm70IHC8T/pR5c0LkWc5gdnCJEvKWQjh -DBKxZD8FAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEABShRkNgFbgs4vUWW9R9deNJj -7HJoiTmvkmoOC7QzcYkjdgHbOxsSq3rBnwxsVjY9PAtPwBn0GRspOeG7KzKRgySB -kb22LyrCFKbEOfKO/+CJc80ioK9zEPVjGsFMyAB+ftYRqM+s/4cQlTg/m89l01wC -yapjN3RxZbInGhWR+jA= ------END CERTIFICATE----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.csr b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.csr deleted file mode 100644 index a8e7595a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.csr +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIIBgjCCASwCAQAwgaMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEQMA4GA1UE -BxMHT2FrbGFuZDEQMA4GA1UEChMHcmVxdWVzdDEQMA4GA1UECxMHdGVzdGluZzEp -MCcGA1UEAxMgdGVzdGluZy5yZXF1ZXN0Lm1pa2VhbHJvZ2Vycy5jb20xJjAkBgkq -hkiG9w0BCQEWF21pa2VhbEBtaWtlYWxyb2dlcnMuY29tMFwwDQYJKoZIhvcNAQEB -BQADSwAwSAJBAOBWXSMy6a86mYzbRbm/3KEaBmPyE+ERAX83vIIFUGf+tYZibvQg -cLxP+lHlzQuRZzmB2cIkS8pZCOEMErFkPwUCAwEAAaAjMCEGCSqGSIb3DQEJBzEU -ExJwYXNzd29yZCBjaGFsbGVuZ2UwDQYJKoZIhvcNAQEFBQADQQBD3E5WekQzCEJw -7yOcqvtPYIxGaX8gRKkYfLPoj3pm3GF5SGqtJKhylKfi89szHXgktnQgzff9FN+A -HidVJ/3u ------END CERTIFICATE REQUEST----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.js deleted file mode 100644 index 05e21c11..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.js +++ /dev/null @@ -1,28 +0,0 @@ -var fs = require("fs") -var https = require("https") -var options = { key: fs.readFileSync("./server.key") - , cert: fs.readFileSync("./server.crt") } - -var server = https.createServer(options, function (req, res) { - res.writeHead(200) - res.end() - server.close() -}) -server.listen(1337) - -var ca = fs.readFileSync("./ca.crt") -var agent = new https.Agent({ host: "localhost", port: 1337, ca: ca }) - -https.request({ host: "localhost" - , method: "HEAD" - , port: 1337 - , headers: { host: "testing.request.mikealrogers.com" } - , agent: agent - , ca: [ ca ] - , path: "/" }, function (res) { - if (res.client.authorized) { - console.log("node test: OK") - } else { - throw new Error(res.client.authorizationError) - } -}).end() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.key b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.key deleted file mode 100644 index 72d86984..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/ca/server.key +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIBOwIBAAJBAOBWXSMy6a86mYzbRbm/3KEaBmPyE+ERAX83vIIFUGf+tYZibvQg -cLxP+lHlzQuRZzmB2cIkS8pZCOEMErFkPwUCAwEAAQJAK+r8ZM2sze8s7FRo/ApB -iRBtO9fCaIdJwbwJnXKo4RKwZDt1l2mm+fzZ+/QaQNjY1oTROkIIXmnwRvZWfYlW -gQIhAPKYsG+YSBN9o8Sdp1DMyZ/rUifKX3OE6q9tINkgajDVAiEA7Ltqh01+cnt0 -JEnud/8HHcuehUBLMofeg0G+gCnSbXECIQCqDvkXsWNNLnS/3lgsnvH0Baz4sbeJ -rjIpuVEeg8eM5QIgbu0+9JmOV6ybdmmiMV4yAncoF35R/iKGVHDZCAsQzDECIQDZ -0jGz22tlo5YMcYSqrdD3U4sds1pwiAaWFRbCunoUJw== ------END RSA PRIVATE KEY----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/npm-ca.crt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/npm-ca.crt deleted file mode 100644 index fde2fe93..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/npm-ca.crt +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIChzCCAfACCQDauvz/KHp8ejANBgkqhkiG9w0BAQUFADCBhzELMAkGA1UEBhMC -VVMxCzAJBgNVBAgTAkNBMRAwDgYDVQQHEwdPYWtsYW5kMQwwCgYDVQQKEwNucG0x -IjAgBgNVBAsTGW5wbSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxDjAMBgNVBAMTBW5w -bUNBMRcwFQYJKoZIhvcNAQkBFghpQGl6cy5tZTAeFw0xMTA5MDUwMTQ3MTdaFw0y -MTA5MDIwMTQ3MTdaMIGHMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEDAOBgNV -BAcTB09ha2xhbmQxDDAKBgNVBAoTA25wbTEiMCAGA1UECxMZbnBtIENlcnRpZmlj -YXRlIEF1dGhvcml0eTEOMAwGA1UEAxMFbnBtQ0ExFzAVBgkqhkiG9w0BCQEWCGlA -aXpzLm1lMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLI4tIqPpRW+ACw9GE -OgBlJZwK5f8nnKCLK629Pv5yJpQKs3DENExAyOgDcyaF0HD0zk8zTp+ZsLaNdKOz -Gn2U181KGprGKAXP6DU6ByOJDWmTlY6+Ad1laYT0m64fERSpHw/hjD3D+iX4aMOl -y0HdbT5m1ZGh6SJz3ZqxavhHLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAC4ySDbC -l7W1WpLmtLGEQ/yuMLUf6Jy/vr+CRp4h+UzL+IQpCv8FfxsYE7dhf/bmWTEupBkv -yNL18lipt2jSvR3v6oAHAReotvdjqhxddpe5Holns6EQd1/xEZ7sB1YhQKJtvUrl -ZNufy1Jf1r0ldEGeA+0ISck7s+xSh9rQD2Op ------END CERTIFICATE----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/test.crt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/test.crt deleted file mode 100644 index b357f864..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/test.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAawCCQCO/XWtRFck1jANBgkqhkiG9w0BAQUFADBmMQswCQYDVQQGEwJU -SDEQMA4GA1UECBMHQmFuZ2tvazEOMAwGA1UEBxMFU2lsb20xGzAZBgNVBAoTElRo -ZSBSZXF1ZXN0IE1vZHVsZTEYMBYGA1UEAxMPcmVxdWVzdC5leGFtcGxlMB4XDTEx -MTIwMzAyMjkyM1oXDTIxMTEzMDAyMjkyM1owZjELMAkGA1UEBhMCVEgxEDAOBgNV -BAgTB0Jhbmdrb2sxDjAMBgNVBAcTBVNpbG9tMRswGQYDVQQKExJUaGUgUmVxdWVz -dCBNb2R1bGUxGDAWBgNVBAMTD3JlcXVlc3QuZXhhbXBsZTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwmctddZqlA48+NXs0yOy92DijcQV1jf87zMiYAIlNUto -wghVbTWgJU5r0pdKrD16AptnWJTzKanhItEX8XCCPgsNkq1afgTtJP7rNkwu3xcj -eIMkhJg/ay4ZnkbnhYdsii5VTU5prix6AqWRAhbkBgoA+iVyHyof8wvZyKBoFTMC -AwEAATANBgkqhkiG9w0BAQUFAAOBgQB6BybMJbpeiABgihDfEVBcAjDoQ8gUMgwV -l4NulugfKTDmArqnR9aPd4ET5jX5dkMP4bwCHYsvrcYDeWEQy7x5WWuylOdKhua4 -L4cEi2uDCjqEErIG3cc1MCOk6Cl6Ld6tkIzQSf953qfdEACRytOeUqLNQcrXrqeE -c7U8F6MWLQ== ------END CERTIFICATE----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/test.key b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/test.key deleted file mode 100644 index b85810dd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/ssl/test.key +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXgIBAAKBgQDCZy111mqUDjz41ezTI7L3YOKNxBXWN/zvMyJgAiU1S2jCCFVt -NaAlTmvSl0qsPXoCm2dYlPMpqeEi0RfxcII+Cw2SrVp+BO0k/us2TC7fFyN4gySE -mD9rLhmeRueFh2yKLlVNTmmuLHoCpZECFuQGCgD6JXIfKh/zC9nIoGgVMwIDAQAB -AoGBALXFwfUf8vHTSmGlrdZS2AGFPvEtuvldyoxi9K5u8xmdFCvxnOcLsF2RsTHt -Mu5QYWhUpNJoG+IGLTPf7RJdj/kNtEs7xXqWy4jR36kt5z5MJzqiK+QIgiO9UFWZ -fjUb6oeDnTIJA9YFBdYi97MDuL89iU/UK3LkJN3hd4rciSbpAkEA+MCkowF5kSFb -rkOTBYBXZfiAG78itDXN6DXmqb9XYY+YBh3BiQM28oxCeQYyFy6pk/nstnd4TXk6 -V/ryA2g5NwJBAMgRKTY9KvxJWbESeMEFe2iBIV0c26/72Amgi7ZKUCLukLfD4tLF -+WSZdmTbbqI1079YtwaiOVfiLm45Q/3B0eUCQAaQ/0eWSGE+Yi8tdXoVszjr4GXb -G81qBi91DMu6U1It+jNfIba+MPsiHLcZJMVb4/oWBNukN7bD1nhwFWdlnu0CQQCf -Is9WHkdvz2RxbZDxb8verz/7kXXJQJhx5+rZf7jIYFxqX3yvTNv3wf2jcctJaWlZ -fVZwB193YSivcgt778xlAkEAprYUz3jczjF5r2hrgbizPzPDR94tM5BTO3ki2v3w -kbf+j2g7FNAx6kZiVN8XwfLc8xEeUGiPKwtq3ddPDFh17w== ------END RSA PRIVATE KEY----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-body.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-body.js deleted file mode 100644 index e3fc75d9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-body.js +++ /dev/null @@ -1,80 +0,0 @@ -var server = require('./server') - , events = require('events') - , stream = require('stream') - , assert = require('assert') - , request = require('../main.js') - ; - -var s = server.createServer(); - -var tests = - { testGet : - { resp : server.createGetResponse("TESTING!") - , expectBody: "TESTING!" - } - , testGetChunkBreak : - { resp : server.createChunkResponse( - [ new Buffer([239]) - , new Buffer([163]) - , new Buffer([191]) - , new Buffer([206]) - , new Buffer([169]) - , new Buffer([226]) - , new Buffer([152]) - , new Buffer([131]) - ]) - , expectBody: "Ω☃" - } - , testGetBuffer : - { resp : server.createGetResponse(new Buffer("TESTING!")) - , encoding: null - , expectBody: new Buffer("TESTING!") - } - , testGetJSON : - { resp : server.createGetResponse('{"test":true}', 'application/json') - , json : true - , expectBody: {"test":true} - } - , testPutString : - { resp : server.createPostValidator("PUTTINGDATA") - , method : "PUT" - , body : "PUTTINGDATA" - } - , testPutBuffer : - { resp : server.createPostValidator("PUTTINGDATA") - , method : "PUT" - , body : new Buffer("PUTTINGDATA") - } - , testPutJSON : - { resp : server.createPostValidator(JSON.stringify({foo: 'bar'})) - , method: "PUT" - , json: {foo: 'bar'} - } - - } - -s.listen(s.port, function () { - - var counter = 0 - - for (i in tests) { - (function () { - var test = tests[i] - s.on('/'+i, test.resp) - test.uri = s.url + '/' + i - request(test, function (err, resp, body) { - if (err) throw err - if (test.expectBody) { - assert.deepEqual(test.expectBody, body) - } - counter = counter - 1; - if (counter === 0) { - console.log(Object.keys(tests).length+" tests passed.") - s.close() - } - }) - counter++ - })() - } -}) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-cookie.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-cookie.js deleted file mode 100644 index 6c6a7a77..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-cookie.js +++ /dev/null @@ -1,29 +0,0 @@ -var Cookie = require('../vendor/cookie') - , assert = require('assert'); - -var str = 'Sid="s543qactge.wKE61E01Bs%2BKhzmxrwrnug="; Path=/; httpOnly; Expires=Sat, 04 Dec 2010 23:27:28 GMT'; -var cookie = new Cookie(str); - -// test .toString() -assert.equal(cookie.toString(), str); - -// test .path -assert.equal(cookie.path, '/'); - -// test .httpOnly -assert.equal(cookie.httpOnly, true); - -// test .name -assert.equal(cookie.name, 'Sid'); - -// test .value -assert.equal(cookie.value, '"s543qactge.wKE61E01Bs%2BKhzmxrwrnug="'); - -// test .expires -assert.equal(cookie.expires instanceof Date, true); - -// test .path default -var cookie = new Cookie('foo=bar', { url: 'http://foo.com/bar' }); -assert.equal(cookie.path, '/bar'); - -console.log('All tests passed'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-cookiejar.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-cookiejar.js deleted file mode 100644 index 76fcd716..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-cookiejar.js +++ /dev/null @@ -1,90 +0,0 @@ -var Cookie = require('../vendor/cookie') - , Jar = require('../vendor/cookie/jar') - , assert = require('assert'); - -function expires(ms) { - return new Date(Date.now() + ms).toUTCString(); -} - -// test .get() expiration -(function() { - var jar = new Jar; - var cookie = new Cookie('sid=1234; path=/; expires=' + expires(1000)); - jar.add(cookie); - setTimeout(function(){ - var cookies = jar.get({ url: 'http://foo.com/foo' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], cookie); - setTimeout(function(){ - var cookies = jar.get({ url: 'http://foo.com/foo' }); - assert.equal(cookies.length, 0); - }, 1000); - }, 5); -})(); - -// test .get() path support -(function() { - var jar = new Jar; - var a = new Cookie('sid=1234; path=/'); - var b = new Cookie('sid=1111; path=/foo/bar'); - var c = new Cookie('sid=2222; path=/'); - jar.add(a); - jar.add(b); - jar.add(c); - - // should remove the duplicates - assert.equal(jar.cookies.length, 2); - - // same name, same path, latter prevails - var cookies = jar.get({ url: 'http://foo.com/' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], c); - - // same name, diff path, path specifity prevails, latter prevails - var cookies = jar.get({ url: 'http://foo.com/foo/bar' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], b); - - var jar = new Jar; - var a = new Cookie('sid=1111; path=/foo/bar'); - var b = new Cookie('sid=1234; path=/'); - jar.add(a); - jar.add(b); - - var cookies = jar.get({ url: 'http://foo.com/foo/bar' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], a); - - var cookies = jar.get({ url: 'http://foo.com/' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], b); - - var jar = new Jar; - var a = new Cookie('sid=1111; path=/foo/bar'); - var b = new Cookie('sid=3333; path=/foo/bar'); - var c = new Cookie('pid=3333; path=/foo/bar'); - var d = new Cookie('sid=2222; path=/foo/'); - var e = new Cookie('sid=1234; path=/'); - jar.add(a); - jar.add(b); - jar.add(c); - jar.add(d); - jar.add(e); - - var cookies = jar.get({ url: 'http://foo.com/foo/bar' }); - assert.equal(cookies.length, 2); - assert.equal(cookies[0], b); - assert.equal(cookies[1], c); - - var cookies = jar.get({ url: 'http://foo.com/foo/' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], d); - - var cookies = jar.get({ url: 'http://foo.com/' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], e); -})(); - -setTimeout(function() { - console.log('All tests passed'); -}, 1200); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-defaults.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-defaults.js deleted file mode 100644 index 6c8b58fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-defaults.js +++ /dev/null @@ -1,68 +0,0 @@ -var server = require('./server') - , assert = require('assert') - , request = require('../main.js') - ; - -var s = server.createServer(); - -s.listen(s.port, function () { - var counter = 0; - s.on('/get', function (req, resp) { - assert.equal(req.headers.foo, 'bar'); - assert.equal(req.method, 'GET') - resp.writeHead(200, {'Content-Type': 'text/plain'}); - resp.end('TESTING!'); - }); - - // test get(string, function) - request.defaults({headers:{foo:"bar"}})(s.url + '/get', function (e, r, b){ - if (e) throw e; - assert.deepEqual("TESTING!", b); - counter += 1; - }); - - s.on('/post', function (req, resp) { - assert.equal(req.headers.foo, 'bar'); - assert.equal(req.headers['content-type'], 'application/json'); - assert.equal(req.method, 'POST') - resp.writeHead(200, {'Content-Type': 'application/json'}); - resp.end(JSON.stringify({foo:'bar'})); - }); - - // test post(string, object, function) - request.defaults({headers:{foo:"bar"}}).post(s.url + '/post', {json: true}, function (e, r, b){ - if (e) throw e; - assert.deepEqual('bar', b.foo); - counter += 1; - }); - - s.on('/del', function (req, resp) { - assert.equal(req.headers.foo, 'bar'); - assert.equal(req.method, 'DELETE') - resp.writeHead(200, {'Content-Type': 'application/json'}); - resp.end(JSON.stringify({foo:'bar'})); - }); - - // test .del(string, function) - request.defaults({headers:{foo:"bar"}, json:true}).del(s.url + '/del', function (e, r, b){ - if (e) throw e; - assert.deepEqual('bar', b.foo); - counter += 1; - }); - - s.on('/head', function (req, resp) { - assert.equal(req.headers.foo, 'bar'); - assert.equal(req.method, 'HEAD') - resp.writeHead(200, {'Content-Type': 'text/plain'}); - resp.end(); - }); - - // test head.(object, function) - request.defaults({headers:{foo:"bar"}}).head({uri: s.url + '/head'}, function (e, r, b){ - if (e) throw e; - counter += 1; - console.log(counter.toString() + " tests passed.") - s.close() - }); - -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-errors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-errors.js deleted file mode 100644 index 1986a59e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-errors.js +++ /dev/null @@ -1,37 +0,0 @@ -var server = require('./server') - , events = require('events') - , assert = require('assert') - , request = require('../main.js') - ; - -var local = 'http://localhost:8888/asdf' - -try { - request({uri:local, body:{}}) - assert.fail("Should have throw") -} catch(e) { - assert.equal(e.message, 'Argument error, options.body.') -} - -try { - request({uri:local, multipart: 'foo'}) - assert.fail("Should have throw") -} catch(e) { - assert.equal(e.message, 'Argument error, options.multipart.') -} - -try { - request({uri:local, multipart: [{}]}) - assert.fail("Should have throw") -} catch(e) { - assert.equal(e.message, 'Body attribute missing in multipart.') -} - -try { - request(local, {multipart: [{}]}) - assert.fail("Should have throw") -} catch(e) { - assert.equal(e.message, 'Body attribute missing in multipart.') -} - -console.log("All tests passed.") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-headers.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-headers.js deleted file mode 100644 index 31fe3f4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-headers.js +++ /dev/null @@ -1,52 +0,0 @@ -var server = require('./server') - , assert = require('assert') - , request = require('../main.js') - , Cookie = require('../vendor/cookie') - , Jar = require('../vendor/cookie/jar') - , s = server.createServer() - -s.listen(s.port, function () { - var serverUri = 'http://localhost:' + s.port - , numTests = 0 - , numOutstandingTests = 0 - - function createTest(requestObj, serverAssertFn) { - var testNumber = numTests; - numTests += 1; - numOutstandingTests += 1; - s.on('/' + testNumber, function (req, res) { - serverAssertFn(req, res); - res.writeHead(200); - res.end(); - }); - requestObj.url = serverUri + '/' + testNumber - request(requestObj, function (err, res, body) { - assert.ok(!err) - assert.equal(res.statusCode, 200) - numOutstandingTests -= 1 - if (numOutstandingTests === 0) { - console.log(numTests + ' tests passed.') - s.close() - } - }) - } - - // Issue #125: headers.cookie shouldn't be replaced when a cookie jar isn't specified - createTest({headers: {cookie: 'foo=bar'}}, function (req, res) { - assert.ok(req.headers.cookie) - assert.equal(req.headers.cookie, 'foo=bar') - }) - - // Issue #125: headers.cookie + cookie jar - var jar = new Jar() - jar.add(new Cookie('quux=baz')); - createTest({jar: jar, headers: {cookie: 'foo=bar'}}, function (req, res) { - assert.ok(req.headers.cookie) - assert.equal(req.headers.cookie, 'foo=bar; quux=baz') - }) - - // There should be no cookie header when neither headers.cookie nor a cookie jar is specified - createTest({}, function (req, res) { - assert.ok(!req.headers.cookie) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-httpModule.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-httpModule.js deleted file mode 100644 index 1866de2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-httpModule.js +++ /dev/null @@ -1,94 +0,0 @@ -var http = require('http') - , https = require('https') - , server = require('./server') - , assert = require('assert') - , request = require('../main.js') - - -var faux_requests_made = {'http':0, 'https':0} -function wrap_request(name, module) { - // Just like the http or https module, but note when a request is made. - var wrapped = {} - Object.keys(module).forEach(function(key) { - var value = module[key]; - - if(key != 'request') - wrapped[key] = value; - else - wrapped[key] = function(options, callback) { - faux_requests_made[name] += 1 - return value.apply(this, arguments) - } - }) - - return wrapped; -} - - -var faux_http = wrap_request('http', http) - , faux_https = wrap_request('https', https) - , plain_server = server.createServer() - , https_server = server.createSSLServer() - - -plain_server.listen(plain_server.port, function() { - plain_server.on('/plain', function (req, res) { - res.writeHead(200) - res.end('plain') - }) - plain_server.on('/to_https', function (req, res) { - res.writeHead(301, {'location':'https://localhost:'+https_server.port + '/https'}) - res.end() - }) - - https_server.listen(https_server.port, function() { - https_server.on('/https', function (req, res) { - res.writeHead(200) - res.end('https') - }) - https_server.on('/to_plain', function (req, res) { - res.writeHead(302, {'location':'http://localhost:'+plain_server.port + '/plain'}) - res.end() - }) - - run_tests() - run_tests({}) - run_tests({'http:':faux_http}) - run_tests({'https:':faux_https}) - run_tests({'http:':faux_http, 'https:':faux_https}) - }) -}) - -function run_tests(httpModules) { - var to_https = 'http://localhost:'+plain_server.port+'/to_https' - var to_plain = 'https://localhost:'+https_server.port+'/to_plain' - - request(to_https, {'httpModules':httpModules}, function (er, res, body) { - assert.ok(!er, 'Bounce to SSL worked') - assert.equal(body, 'https', 'Received HTTPS server body') - done() - }) - - request(to_plain, {'httpModules':httpModules}, function (er, res, body) { - assert.ok(!er, 'Bounce to plaintext server worked') - assert.equal(body, 'plain', 'Received HTTPS server body') - done() - }) -} - - -var passed = 0; -function done() { - passed += 1 - var expected = 10 - - if(passed == expected) { - plain_server.close() - https_server.close() - - assert.equal(faux_requests_made.http, 4, 'Wrapped http module called appropriately') - assert.equal(faux_requests_made.https, 4, 'Wrapped https module called appropriately') - - console.log((expected+2) + ' tests passed.') - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-https-strict.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-https-strict.js deleted file mode 100644 index f53fc14a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-https-strict.js +++ /dev/null @@ -1,97 +0,0 @@ -// a test where we validate the siguature of the keys -// otherwise exactly the same as the ssl test - -var server = require('./server') - , assert = require('assert') - , request = require('../main.js') - , fs = require('fs') - , path = require('path') - , opts = { key: path.resolve(__dirname, 'ssl/ca/server.key') - , cert: path.resolve(__dirname, 'ssl/ca/server.crt') } - , s = server.createSSLServer(null, opts) - , caFile = path.resolve(__dirname, 'ssl/ca/ca.crt') - , ca = fs.readFileSync(caFile) - -var tests = - { testGet : - { resp : server.createGetResponse("TESTING!") - , expectBody: "TESTING!" - } - , testGetChunkBreak : - { resp : server.createChunkResponse( - [ new Buffer([239]) - , new Buffer([163]) - , new Buffer([191]) - , new Buffer([206]) - , new Buffer([169]) - , new Buffer([226]) - , new Buffer([152]) - , new Buffer([131]) - ]) - , expectBody: "Ω☃" - } - , testGetJSON : - { resp : server.createGetResponse('{"test":true}', 'application/json') - , json : true - , expectBody: {"test":true} - } - , testPutString : - { resp : server.createPostValidator("PUTTINGDATA") - , method : "PUT" - , body : "PUTTINGDATA" - } - , testPutBuffer : - { resp : server.createPostValidator("PUTTINGDATA") - , method : "PUT" - , body : new Buffer("PUTTINGDATA") - } - , testPutJSON : - { resp : server.createPostValidator(JSON.stringify({foo: 'bar'})) - , method: "PUT" - , json: {foo: 'bar'} - } - , testPutMultipart : - { resp: server.createPostValidator( - '--frontier\r\n' + - 'content-type: text/html\r\n' + - '\r\n' + - 'Oh hi.' + - '\r\n--frontier\r\n\r\n' + - 'Oh hi.' + - '\r\n--frontier--' - ) - , method: "PUT" - , multipart: - [ {'content-type': 'text/html', 'body': 'Oh hi.'} - , {'body': 'Oh hi.'} - ] - } - } - -s.listen(s.port, function () { - - var counter = 0 - - for (i in tests) { - (function () { - var test = tests[i] - s.on('/'+i, test.resp) - test.uri = s.url + '/' + i - test.strictSSL = true - test.ca = ca - test.headers = { host: 'testing.request.mikealrogers.com' } - request(test, function (err, resp, body) { - if (err) throw err - if (test.expectBody) { - assert.deepEqual(test.expectBody, body) - } - counter = counter - 1; - if (counter === 0) { - console.log(Object.keys(tests).length+" tests passed.") - s.close() - } - }) - counter++ - })() - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-https.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-https.js deleted file mode 100644 index df7330b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-https.js +++ /dev/null @@ -1,86 +0,0 @@ -var server = require('./server') - , assert = require('assert') - , request = require('../main.js') - -var s = server.createSSLServer(); - -var tests = - { testGet : - { resp : server.createGetResponse("TESTING!") - , expectBody: "TESTING!" - } - , testGetChunkBreak : - { resp : server.createChunkResponse( - [ new Buffer([239]) - , new Buffer([163]) - , new Buffer([191]) - , new Buffer([206]) - , new Buffer([169]) - , new Buffer([226]) - , new Buffer([152]) - , new Buffer([131]) - ]) - , expectBody: "Ω☃" - } - , testGetJSON : - { resp : server.createGetResponse('{"test":true}', 'application/json') - , json : true - , expectBody: {"test":true} - } - , testPutString : - { resp : server.createPostValidator("PUTTINGDATA") - , method : "PUT" - , body : "PUTTINGDATA" - } - , testPutBuffer : - { resp : server.createPostValidator("PUTTINGDATA") - , method : "PUT" - , body : new Buffer("PUTTINGDATA") - } - , testPutJSON : - { resp : server.createPostValidator(JSON.stringify({foo: 'bar'})) - , method: "PUT" - , json: {foo: 'bar'} - } - , testPutMultipart : - { resp: server.createPostValidator( - '--frontier\r\n' + - 'content-type: text/html\r\n' + - '\r\n' + - 'Oh hi.' + - '\r\n--frontier\r\n\r\n' + - 'Oh hi.' + - '\r\n--frontier--' - ) - , method: "PUT" - , multipart: - [ {'content-type': 'text/html', 'body': 'Oh hi.'} - , {'body': 'Oh hi.'} - ] - } - } - -s.listen(s.port, function () { - - var counter = 0 - - for (i in tests) { - (function () { - var test = tests[i] - s.on('/'+i, test.resp) - test.uri = s.url + '/' + i - request(test, function (err, resp, body) { - if (err) throw err - if (test.expectBody) { - assert.deepEqual(test.expectBody, body) - } - counter = counter - 1; - if (counter === 0) { - console.log(Object.keys(tests).length+" tests passed.") - s.close() - } - }) - counter++ - })() - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-oauth.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-oauth.js deleted file mode 100644 index 72ca9233..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-oauth.js +++ /dev/null @@ -1,117 +0,0 @@ -var hmacsign = require('../oauth').hmacsign - , assert = require('assert') - , qs = require('querystring') - , request = require('../main') - ; - -function getsignature (r) { - var sign - r.headers.Authorization.slice('OAuth '.length).replace(/,\ /g, ',').split(',').forEach(function (v) { - if (v.slice(0, 'oauth_signature="'.length) === 'oauth_signature="') sign = v.slice('oauth_signature="'.length, -1) - }) - return decodeURIComponent(sign) -} - -// Tests from Twitter documentation https://dev.twitter.com/docs/auth/oauth - -var reqsign = hmacsign('POST', 'https://api.twitter.com/oauth/request_token', - { oauth_callback: 'http://localhost:3005/the_dance/process_callback?service_provider_id=11' - , oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' - , oauth_nonce: 'QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk' - , oauth_signature_method: 'HMAC-SHA1' - , oauth_timestamp: '1272323042' - , oauth_version: '1.0' - }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98") - -console.log(reqsign) -console.log('8wUi7m5HFQy76nowoCThusfgB+Q=') -assert.equal(reqsign, '8wUi7m5HFQy76nowoCThusfgB+Q=') - -var accsign = hmacsign('POST', 'https://api.twitter.com/oauth/access_token', - { oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' - , oauth_nonce: '9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8' - , oauth_signature_method: 'HMAC-SHA1' - , oauth_token: '8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc' - , oauth_timestamp: '1272323047' - , oauth_verifier: 'pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY' - , oauth_version: '1.0' - }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA") - -console.log(accsign) -console.log('PUw/dHA4fnlJYM6RhXk5IU/0fCc=') -assert.equal(accsign, 'PUw/dHA4fnlJYM6RhXk5IU/0fCc=') - -var upsign = hmacsign('POST', 'http://api.twitter.com/1/statuses/update.json', - { oauth_consumer_key: "GDdmIQH6jhtmLUypg82g" - , oauth_nonce: "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" - , oauth_signature_method: "HMAC-SHA1" - , oauth_token: "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw" - , oauth_timestamp: "1272325550" - , oauth_version: "1.0" - , status: 'setting up my twitter 私のさえずりを設定する' - }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "J6zix3FfA9LofH0awS24M3HcBYXO5nI1iYe8EfBA") - -console.log(upsign) -console.log('yOahq5m0YjDDjfjxHaXEsW9D+X0=') -assert.equal(upsign, 'yOahq5m0YjDDjfjxHaXEsW9D+X0=') - - -var rsign = request.post( - { url: 'https://api.twitter.com/oauth/request_token' - , oauth: - { callback: 'http://localhost:3005/the_dance/process_callback?service_provider_id=11' - , consumer_key: 'GDdmIQH6jhtmLUypg82g' - , nonce: 'QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk' - , timestamp: '1272323042' - , version: '1.0' - , consumer_secret: "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98" - } - }) - -setTimeout(function () { - console.log(getsignature(rsign)) - assert.equal(reqsign, getsignature(rsign)) -}) - -var raccsign = request.post( - { url: 'https://api.twitter.com/oauth/access_token' - , oauth: - { consumer_key: 'GDdmIQH6jhtmLUypg82g' - , nonce: '9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8' - , signature_method: 'HMAC-SHA1' - , token: '8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc' - , timestamp: '1272323047' - , verifier: 'pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY' - , version: '1.0' - , consumer_secret: "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98" - , token_secret: "x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA" - } - }) - -setTimeout(function () { - console.log(getsignature(raccsign)) - assert.equal(accsign, getsignature(raccsign)) -}, 1) - -var rupsign = request.post( - { url: 'http://api.twitter.com/1/statuses/update.json' - , oauth: - { consumer_key: "GDdmIQH6jhtmLUypg82g" - , nonce: "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" - , signature_method: "HMAC-SHA1" - , token: "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw" - , timestamp: "1272325550" - , version: "1.0" - , consumer_secret: "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98" - , token_secret: "J6zix3FfA9LofH0awS24M3HcBYXO5nI1iYe8EfBA" - } - , form: {status: 'setting up my twitter 私のさえずりを設定する'} - }) -setTimeout(function () { - console.log(getsignature(rupsign)) - assert.equal(upsign, getsignature(rupsign)) -}, 1) - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-params.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-params.js deleted file mode 100644 index 8354f6d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-params.js +++ /dev/null @@ -1,92 +0,0 @@ -var server = require('./server') - , assert = require('assert') - , request = require('../main.js') - ; - -var s = server.createServer(); - -var tests = - { testGet : - { resp : server.createGetResponse("TESTING!") - , expectBody: "TESTING!" - } - , testGetChunkBreak : - { resp : server.createChunkResponse( - [ new Buffer([239]) - , new Buffer([163]) - , new Buffer([191]) - , new Buffer([206]) - , new Buffer([169]) - , new Buffer([226]) - , new Buffer([152]) - , new Buffer([131]) - ]) - , expectBody: "Ω☃" - } - , testGetBuffer : - { resp : server.createGetResponse(new Buffer("TESTING!")) - , encoding: null - , expectBody: new Buffer("TESTING!") - } - , testGetJSON : - { resp : server.createGetResponse('{"test":true}', 'application/json') - , json : true - , expectBody: {"test":true} - } - , testPutString : - { resp : server.createPostValidator("PUTTINGDATA") - , method : "PUT" - , body : "PUTTINGDATA" - } - , testPutBuffer : - { resp : server.createPostValidator("PUTTINGDATA") - , method : "PUT" - , body : new Buffer("PUTTINGDATA") - } - , testPutJSON : - { resp : server.createPostValidator(JSON.stringify({foo: 'bar'})) - , method: "PUT" - , json: {foo: 'bar'} - } - , testPutMultipart : - { resp: server.createPostValidator( - '--frontier\r\n' + - 'content-type: text/html\r\n' + - '\r\n' + - 'Oh hi.' + - '\r\n--frontier\r\n\r\n' + - 'Oh hi.' + - '\r\n--frontier--' - ) - , method: "PUT" - , multipart: - [ {'content-type': 'text/html', 'body': 'Oh hi.'} - , {'body': 'Oh hi.'} - ] - } - } - -s.listen(s.port, function () { - - var counter = 0 - - for (i in tests) { - (function () { - var test = tests[i] - s.on('/'+i, test.resp) - //test.uri = s.url + '/' + i - request(s.url + '/' + i, test, function (err, resp, body) { - if (err) throw err - if (test.expectBody) { - assert.deepEqual(test.expectBody, body) - } - counter = counter - 1; - if (counter === 0) { - console.log(Object.keys(tests).length+" tests passed.") - s.close() - } - }) - counter++ - })() - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-pipes.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-pipes.js deleted file mode 100644 index 18698744..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-pipes.js +++ /dev/null @@ -1,202 +0,0 @@ -var server = require('./server') - , events = require('events') - , stream = require('stream') - , assert = require('assert') - , fs = require('fs') - , request = require('../main.js') - , path = require('path') - , util = require('util') - ; - -var s = server.createServer(3453); - -function ValidationStream(str) { - this.str = str - this.buf = '' - this.on('data', function (data) { - this.buf += data - }) - this.on('end', function () { - assert.equal(this.str, this.buf) - }) - this.writable = true -} -util.inherits(ValidationStream, stream.Stream) -ValidationStream.prototype.write = function (chunk) { - this.emit('data', chunk) -} -ValidationStream.prototype.end = function (chunk) { - if (chunk) emit('data', chunk) - this.emit('end') -} - -s.listen(s.port, function () { - counter = 0; - - var check = function () { - counter = counter - 1 - if (counter === 0) { - console.log('All tests passed.') - setTimeout(function () { - process.exit(); - }, 500) - } - } - - // Test pipeing to a request object - s.once('/push', server.createPostValidator("mydata")); - - var mydata = new stream.Stream(); - mydata.readable = true - - counter++ - var r1 = request.put({url:'http://localhost:3453/push'}, function () { - check(); - }) - mydata.pipe(r1) - - mydata.emit('data', 'mydata'); - mydata.emit('end'); - - - // Test pipeing from a request object. - s.once('/pull', server.createGetResponse("mypulldata")); - - var mypulldata = new stream.Stream(); - mypulldata.writable = true - - counter++ - request({url:'http://localhost:3453/pull'}).pipe(mypulldata) - - var d = ''; - - mypulldata.write = function (chunk) { - d += chunk; - } - mypulldata.end = function () { - assert.equal(d, 'mypulldata'); - check(); - }; - - - s.on('/cat', function (req, resp) { - if (req.method === "GET") { - resp.writeHead(200, {'content-type':'text/plain-test', 'content-length':4}); - resp.end('asdf') - } else if (req.method === "PUT") { - assert.equal(req.headers['content-type'], 'text/plain-test'); - assert.equal(req.headers['content-length'], 4) - var validate = ''; - - req.on('data', function (chunk) {validate += chunk}) - req.on('end', function () { - resp.writeHead(201); - resp.end(); - assert.equal(validate, 'asdf'); - check(); - }) - } - }) - s.on('/pushjs', function (req, resp) { - if (req.method === "PUT") { - assert.equal(req.headers['content-type'], 'text/javascript'); - check(); - } - }) - s.on('/catresp', function (req, resp) { - request.get('http://localhost:3453/cat').pipe(resp) - }) - s.on('/doodle', function (req, resp) { - if (req.headers['x-oneline-proxy']) { - resp.setHeader('x-oneline-proxy', 'yup') - } - resp.writeHead('200', {'content-type':'image/png'}) - fs.createReadStream(path.join(__dirname, 'googledoodle.png')).pipe(resp) - }) - s.on('/onelineproxy', function (req, resp) { - var x = request('http://localhost:3453/doodle') - req.pipe(x) - x.pipe(resp) - }) - - counter++ - fs.createReadStream(__filename).pipe(request.put('http://localhost:3453/pushjs')) - - counter++ - request.get('http://localhost:3453/cat').pipe(request.put('http://localhost:3453/cat')) - - counter++ - request.get('http://localhost:3453/catresp', function (e, resp, body) { - assert.equal(resp.headers['content-type'], 'text/plain-test'); - assert.equal(resp.headers['content-length'], 4) - check(); - }) - - var doodleWrite = fs.createWriteStream(path.join(__dirname, 'test.png')) - - counter++ - request.get('http://localhost:3453/doodle').pipe(doodleWrite) - - doodleWrite.on('close', function () { - assert.deepEqual(fs.readFileSync(path.join(__dirname, 'googledoodle.png')), fs.readFileSync(path.join(__dirname, 'test.png'))) - check() - }) - - process.on('exit', function () { - fs.unlinkSync(path.join(__dirname, 'test.png')) - }) - - counter++ - request.get({uri:'http://localhost:3453/onelineproxy', headers:{'x-oneline-proxy':'nope'}}, function (err, resp, body) { - assert.equal(resp.headers['x-oneline-proxy'], 'yup') - check() - }) - - s.on('/afterresponse', function (req, resp) { - resp.write('d') - resp.end() - }) - - counter++ - var afterresp = request.post('http://localhost:3453/afterresponse').on('response', function () { - var v = new ValidationStream('d') - afterresp.pipe(v) - v.on('end', check) - }) - - s.on('/forward1', function (req, resp) { - resp.writeHead(302, {location:'/forward2'}) - resp.end() - }) - s.on('/forward2', function (req, resp) { - resp.writeHead('200', {'content-type':'image/png'}) - resp.write('d') - resp.end() - }) - - counter++ - var validateForward = new ValidationStream('d') - validateForward.on('end', check) - request.get('http://localhost:3453/forward1').pipe(validateForward) - - // Test pipe options - s.once('/opts', server.createGetResponse('opts response')); - - var optsStream = new stream.Stream(); - optsStream.writable = true - - var optsData = ''; - optsStream.write = function (buf) { - optsData += buf; - if (optsData === 'opts response') { - setTimeout(check, 10); - } - } - - optsStream.end = function () { - assert.fail('end called') - }; - - counter++ - request({url:'http://localhost:3453/opts'}).pipe(optsStream, { end : false }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-pool.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-pool.js deleted file mode 100644 index 1e7d5786..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-pool.js +++ /dev/null @@ -1,16 +0,0 @@ -var request = require('../main') - , http = require('http') - , assert = require('assert') - ; - -var s = http.createServer(function (req, resp) { - resp.statusCode = 200; - resp.end('asdf'); -}).listen(8080, function () { - request({'url': 'http://localhost:8080', 'pool': false}, function (e, resp) { - var agent = resp.request.agent; - assert.strictEqual(typeof agent, 'boolean'); - assert.strictEqual(agent, false); - s.close(); - }); -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-proxy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-proxy.js deleted file mode 100644 index 647157ca..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-proxy.js +++ /dev/null @@ -1,39 +0,0 @@ -var server = require('./server') - , events = require('events') - , stream = require('stream') - , assert = require('assert') - , fs = require('fs') - , request = require('../main.js') - , path = require('path') - , util = require('util') - ; - -var port = 6768 - , called = false - , proxiedHost = 'google.com' - ; - -var s = server.createServer(port) -s.listen(port, function () { - s.on('http://google.com/', function (req, res) { - called = true - assert.equal(req.headers.host, proxiedHost) - res.writeHeader(200) - res.end() - }) - request ({ - url: 'http://'+proxiedHost, - proxy: 'http://localhost:'+port - /* - //should behave as if these arguments where passed: - url: 'http://localhost:'+port, - headers: {host: proxiedHost} - //*/ - }, function (err, res, body) { - s.close() - }) -}) - -process.on('exit', function () { - assert.ok(called, 'the request must be made to the proxy server') -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-qs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-qs.js deleted file mode 100644 index 1aac22bc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-qs.js +++ /dev/null @@ -1,28 +0,0 @@ -var request = request = require('../main.js') - , assert = require('assert') - ; - - -// Test adding a querystring -var req1 = request.get({ uri: 'http://www.google.com', qs: { q : 'search' }}) -setTimeout(function() { - assert.equal('/?q=search', req1.path) -}, 1) - -// Test replacing a querystring value -var req2 = request.get({ uri: 'http://www.google.com?q=abc', qs: { q : 'search' }}) -setTimeout(function() { - assert.equal('/?q=search', req2.path) -}, 1) - -// Test appending a querystring value to the ones present in the uri -var req3 = request.get({ uri: 'http://www.google.com?x=y', qs: { q : 'search' }}) -setTimeout(function() { - assert.equal('/?x=y&q=search', req3.path) -}, 1) - -// Test leaving a querystring alone -var req4 = request.get({ uri: 'http://www.google.com?x=y'}) -setTimeout(function() { - assert.equal('/?x=y', req4.path) -}, 1) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-redirect.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-redirect.js deleted file mode 100644 index b84844a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-redirect.js +++ /dev/null @@ -1,154 +0,0 @@ -var server = require('./server') - , assert = require('assert') - , request = require('../main.js') - , Cookie = require('../vendor/cookie') - , Jar = require('../vendor/cookie/jar') - -var s = server.createServer() - -s.listen(s.port, function () { - var server = 'http://localhost:' + s.port; - var hits = {} - var passed = 0; - - bouncer(301, 'temp') - bouncer(302, 'perm') - bouncer(302, 'nope') - - function bouncer(code, label) { - var landing = label+'_landing'; - - s.on('/'+label, function (req, res) { - hits[label] = true; - res.writeHead(code, { - 'location':server + '/'+landing, - 'set-cookie': 'ham=eggs' - }) - res.end() - }) - - s.on('/'+landing, function (req, res) { - if (req.method !== 'GET') { // We should only accept GET redirects - console.error("Got a non-GET request to the redirect destination URL"); - res.writeHead(400); - res.end(); - return; - } - // Make sure the cookie doesn't get included twice, see #139: - // Make sure cookies are set properly after redirect - assert.equal(req.headers.cookie, 'foo=bar; quux=baz; ham=eggs'); - hits[landing] = true; - res.writeHead(200) - res.end(landing) - }) - } - - // Permanent bounce - var jar = new Jar() - jar.add(new Cookie('quux=baz')) - request({uri: server+'/perm', jar: jar, headers: {cookie: 'foo=bar'}}, function (er, res, body) { - if (er) throw er - if (res.statusCode !== 200) throw new Error('Status is not 200: '+res.statusCode) - assert.ok(hits.perm, 'Original request is to /perm') - assert.ok(hits.perm_landing, 'Forward to permanent landing URL') - assert.equal(body, 'perm_landing', 'Got permanent landing content') - passed += 1 - done() - }) - - // Temporary bounce - request({uri: server+'/temp', jar: jar, headers: {cookie: 'foo=bar'}}, function (er, res, body) { - if (er) throw er - if (res.statusCode !== 200) throw new Error('Status is not 200: '+res.statusCode) - assert.ok(hits.temp, 'Original request is to /temp') - assert.ok(hits.temp_landing, 'Forward to temporary landing URL') - assert.equal(body, 'temp_landing', 'Got temporary landing content') - passed += 1 - done() - }) - - // Prevent bouncing. - request({uri:server+'/nope', jar: jar, headers: {cookie: 'foo=bar'}, followRedirect:false}, function (er, res, body) { - if (er) throw er - if (res.statusCode !== 302) throw new Error('Status is not 302: '+res.statusCode) - assert.ok(hits.nope, 'Original request to /nope') - assert.ok(!hits.nope_landing, 'No chasing the redirect') - assert.equal(res.statusCode, 302, 'Response is the bounce itself') - passed += 1 - done() - }) - - // Should not follow post redirects by default - request.post(server+'/temp', { jar: jar, headers: {cookie: 'foo=bar'}}, function (er, res, body) { - if (er) throw er - if (res.statusCode !== 301) throw new Error('Status is not 301: '+res.statusCode) - assert.ok(hits.temp, 'Original request is to /temp') - assert.ok(!hits.temp_landing, 'No chasing the redirect when post') - assert.equal(res.statusCode, 301, 'Response is the bounce itself') - passed += 1 - done() - }) - - // Should follow post redirects when followAllRedirects true - request.post({uri:server+'/temp', followAllRedirects:true, jar: jar, headers: {cookie: 'foo=bar'}}, function (er, res, body) { - if (er) throw er - if (res.statusCode !== 200) throw new Error('Status is not 200: '+res.statusCode) - assert.ok(hits.temp, 'Original request is to /temp') - assert.ok(hits.temp_landing, 'Forward to temporary landing URL') - assert.equal(body, 'temp_landing', 'Got temporary landing content') - passed += 1 - done() - }) - - request.post({uri:server+'/temp', followAllRedirects:false, jar: jar, headers: {cookie: 'foo=bar'}}, function (er, res, body) { - if (er) throw er - if (res.statusCode !== 301) throw new Error('Status is not 301: '+res.statusCode) - assert.ok(hits.temp, 'Original request is to /temp') - assert.ok(!hits.temp_landing, 'No chasing the redirect') - assert.equal(res.statusCode, 301, 'Response is the bounce itself') - passed += 1 - done() - }) - - // Should not follow delete redirects by default - request.del(server+'/temp', { jar: jar, headers: {cookie: 'foo=bar'}}, function (er, res, body) { - if (er) throw er - if (res.statusCode < 301) throw new Error('Status is not a redirect.') - assert.ok(hits.temp, 'Original request is to /temp') - assert.ok(!hits.temp_landing, 'No chasing the redirect when delete') - assert.equal(res.statusCode, 301, 'Response is the bounce itself') - passed += 1 - done() - }) - - // Should not follow delete redirects even if followRedirect is set to true - request.del(server+'/temp', { followRedirect: true, jar: jar, headers: {cookie: 'foo=bar'}}, function (er, res, body) { - if (er) throw er - if (res.statusCode !== 301) throw new Error('Status is not 301: '+res.statusCode) - assert.ok(hits.temp, 'Original request is to /temp') - assert.ok(!hits.temp_landing, 'No chasing the redirect when delete') - assert.equal(res.statusCode, 301, 'Response is the bounce itself') - passed += 1 - done() - }) - - // Should follow delete redirects when followAllRedirects true - request.del(server+'/temp', {followAllRedirects:true, jar: jar, headers: {cookie: 'foo=bar'}}, function (er, res, body) { - if (er) throw er - if (res.statusCode !== 200) throw new Error('Status is not 200: '+res.statusCode) - assert.ok(hits.temp, 'Original request is to /temp') - assert.ok(hits.temp_landing, 'Forward to temporary landing URL') - assert.equal(body, 'temp_landing', 'Got temporary landing content') - passed += 1 - done() - }) - - var reqs_done = 0; - function done() { - reqs_done += 1; - if(reqs_done == 9) { - console.log(passed + ' tests passed.') - s.close() - } - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-s3.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-s3.js deleted file mode 100644 index 5f59c4ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-s3.js +++ /dev/null @@ -1,13 +0,0 @@ -var request = require('../main') - -var r = request.get('https://log.curlybracecast.com.s3.amazonaws.com/', - { aws: - { key: 'AKIAI6KIQRRVMGK3WK5Q' - , secret: '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' - , bucket: 'log.curlybracecast.com' - } - }, function (e, resp, body) { - console.log(r.headers) - console.log(body) - } -) \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-timeout.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-timeout.js deleted file mode 100644 index 673f8ad8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-timeout.js +++ /dev/null @@ -1,87 +0,0 @@ -var server = require('./server') - , events = require('events') - , stream = require('stream') - , assert = require('assert') - , request = require('../main.js') - ; - -var s = server.createServer(); -var expectedBody = "waited"; -var remainingTests = 5; - -s.listen(s.port, function () { - // Request that waits for 200ms - s.on('/timeout', function (req, resp) { - setTimeout(function(){ - resp.writeHead(200, {'content-type':'text/plain'}) - resp.write(expectedBody) - resp.end() - }, 200); - }); - - // Scenario that should timeout - var shouldTimeout = { - url: s.url + "/timeout", - timeout:100 - } - - - request(shouldTimeout, function (err, resp, body) { - assert.equal(err.code, "ETIMEDOUT"); - checkDone(); - }) - - - // Scenario that shouldn't timeout - var shouldntTimeout = { - url: s.url + "/timeout", - timeout:300 - } - - request(shouldntTimeout, function (err, resp, body) { - assert.equal(err, null); - assert.equal(expectedBody, body) - checkDone(); - }) - - // Scenario with no timeout set, so shouldn't timeout - var noTimeout = { - url: s.url + "/timeout" - } - - request(noTimeout, function (err, resp, body) { - assert.equal(err); - assert.equal(expectedBody, body) - checkDone(); - }) - - // Scenario with a negative timeout value, should be treated a zero or the minimum delay - var negativeTimeout = { - url: s.url + "/timeout", - timeout:-1000 - } - - request(negativeTimeout, function (err, resp, body) { - assert.equal(err.code, "ETIMEDOUT"); - checkDone(); - }) - - // Scenario with a float timeout value, should be rounded by setTimeout anyway - var floatTimeout = { - url: s.url + "/timeout", - timeout: 100.76 - } - - request(floatTimeout, function (err, resp, body) { - assert.equal(err.code, "ETIMEDOUT"); - checkDone(); - }) - - function checkDone() { - if(--remainingTests == 0) { - s.close(); - console.log("All tests passed."); - } - } -}) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-toJSON.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-toJSON.js deleted file mode 100644 index b7c67eff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-toJSON.js +++ /dev/null @@ -1,14 +0,0 @@ -var request = require('../main') - , http = require('http') - , assert = require('assert') - ; - -var s = http.createServer(function (req, resp) { - resp.statusCode = 200 - resp.end('asdf') -}).listen(8080, function () { - var r = request('http://localhost:8080', function (e, resp) { - assert.equal(JSON.parse(JSON.stringify(r)).response.statusCode, 200) - s.close() - }) -}) \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-tunnel.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-tunnel.js deleted file mode 100644 index 58131b9b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tests/test-tunnel.js +++ /dev/null @@ -1,61 +0,0 @@ -// test that we can tunnel a https request over an http proxy -// keeping all the CA and whatnot intact. -// -// Note: this requires that squid is installed. -// If the proxy fails to start, we'll just log a warning and assume success. - -var server = require('./server') - , assert = require('assert') - , request = require('../main.js') - , fs = require('fs') - , path = require('path') - , caFile = path.resolve(__dirname, 'ssl/npm-ca.crt') - , ca = fs.readFileSync(caFile) - , child_process = require('child_process') - , sqConf = path.resolve(__dirname, 'squid.conf') - , sqArgs = ['-f', sqConf, '-N', '-d', '5'] - , proxy = 'http://localhost:3128' - , hadError = null - -var squid = child_process.spawn('squid', sqArgs); -var ready = false - -squid.stderr.on('data', function (c) { - console.error('SQUIDERR ' + c.toString().trim().split('\n') - .join('\nSQUIDERR ')) - ready = c.toString().match(/ready to serve requests/i) -}) - -squid.stdout.on('data', function (c) { - console.error('SQUIDOUT ' + c.toString().trim().split('\n') - .join('\nSQUIDOUT ')) -}) - -squid.on('exit', function (c) { - console.error('exit '+c) - if (c && !ready) { - console.error('squid must be installed to run this test.') - c = null - hadError = null - process.exit(0) - return - } - - if (c) { - hadError = hadError || new Error('Squid exited with '+c) - } - if (hadError) throw hadError -}) - -setTimeout(function F () { - if (!ready) return setTimeout(F, 100) - request({ uri: 'https://registry.npmjs.org/request/' - , proxy: 'http://localhost:3128' - , ca: ca - , json: true }, function (er, body) { - hadError = er - console.log(er || typeof body) - if (!er) console.log("ok") - squid.kill('SIGKILL') - }) -}, 100) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tunnel.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tunnel.js deleted file mode 100644 index 453786c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/tunnel.js +++ /dev/null @@ -1,229 +0,0 @@ -'use strict'; - -var net = require('net'); -var tls = require('tls'); -var http = require('http'); -var https = require('https'); -var events = require('events'); -var assert = require('assert'); -var util = require('util'); - - -exports.httpOverHttp = httpOverHttp; -exports.httpsOverHttp = httpsOverHttp; -exports.httpOverHttps = httpOverHttps; -exports.httpsOverHttps = httpsOverHttps; - - -function httpOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; -} - -function httpsOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - return agent; -} - -function httpOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; -} - -function httpsOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - agent.createSocket = createSecureSocket; - return agent; -} - - -function TunnelingAgent(options) { - var self = this; - self.options = options || {}; - self.proxyOptions = self.options.proxy || {}; - self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - - self.on('free', function onFree(socket, host, port) { - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i]; - if (pending.host === host && pending.port === port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } - } - socket.destroy(); - self.removeSocket(socket); - }); -} -util.inherits(TunnelingAgent, events.EventEmitter); - -TunnelingAgent.prototype.addRequest = function addRequest(req, host, port) { - var self = this; - - if (self.sockets.length >= this.maxSockets) { - // We are over limit so we'll add it to the queue. - self.requests.push({host: host, port: port, request: req}); - return; - } - - // If we are under maxSockets create a new one. - self.createSocket({host: host, port: port, request: req}, function(socket) { - socket.on('free', onFree); - socket.on('close', onCloseOrRemove); - socket.on('agentRemove', onCloseOrRemove); - req.onSocket(socket); - - function onFree() { - self.emit('free', socket, host, port); - } - - function onCloseOrRemove(err) { - self.removeSocket(); - socket.removeListener('free', onFree); - socket.removeListener('close', onCloseOrRemove); - socket.removeListener('agentRemove', onCloseOrRemove); - } - }); -}; - -TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { - var self = this; - var placeholder = {}; - self.sockets.push(placeholder); - - var connectOptions = mergeOptions({}, self.proxyOptions, { - method: 'CONNECT', - path: options.host + ':' + options.port, - agent: false - }); - if (connectOptions.proxyAuth) { - connectOptions.headers = connectOptions.headers || {}; - connectOptions.headers['Proxy-Authorization'] = 'Basic ' + - new Buffer(connectOptions.proxyAuth).toString('base64'); - } - - debug('making CONNECT request'); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; // for v0.6 - connectReq.once('response', onResponse); // for v0.6 - connectReq.once('upgrade', onUpgrade); // for v0.6 - connectReq.once('connect', onConnect); // for v0.7 or later - connectReq.once('error', onError); - connectReq.end(); - - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true; - } - - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head); - }); - } - - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - - if (res.statusCode === 200) { - assert.equal(head.length, 0); - debug('tunneling connection has established'); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - cb(socket); - } else { - debug('tunneling socket could not be established, statusCode=%d', - res.statusCode); - var error = new Error('tunneling socket could not be established, ' + - 'sutatusCode=' + res.statusCode); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - } - } - - function onError(cause) { - connectReq.removeAllListeners(); - - debug('tunneling socket could not be established, cause=%s\n', - cause.message, cause.stack); - var error = new Error('tunneling socket could not be established, ' + - 'cause=' + cause.message); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - } -}; - -TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { - var pos = this.sockets.indexOf(socket) - if (pos === -1) { - return; - } - this.sockets.splice(pos, 1); - - var pending = this.requests.shift(); - if (pending) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); - } -}; - -function createSecureSocket(options, cb) { - var self = this; - TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, mergeOptions({}, self.options, { - socket: socket - })); - cb(secureSocket); - }); -} - - -function mergeOptions(target) { - for (var i = 1, len = arguments.length; i < len; ++i) { - var overrides = arguments[i]; - if (typeof overrides === 'object') { - var keys = Object.keys(overrides); - for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { - var k = keys[j]; - if (overrides[k] !== undefined) { - target[k] = overrides[k]; - } - } - } - } - return target; -} - - -var debug; -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = function() { - var args = Array.prototype.slice.call(arguments); - if (typeof args[0] === 'string') { - args[0] = 'TUNNEL: ' + args[0]; - } else { - args.unshift('TUNNEL:'); - } - console.error.apply(console, args); - } -} else { - debug = function() {}; -} -exports.debug = debug; // for test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/uuid.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/uuid.js deleted file mode 100644 index 1d83bd50..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/uuid.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = function () { - var s = [], itoh = '0123456789ABCDEF'; - - // Make array of random hex digits. The UUID only has 32 digits in it, but we - // allocate an extra items to make room for the '-'s we'll be inserting. - for (var i = 0; i <36; i++) s[i] = Math.floor(Math.random()*0x10); - - // Conform to RFC-4122, section 4.4 - s[14] = 4; // Set 4 high bits of time_high field to version - s[19] = (s[19] & 0x3) | 0x8; // Specify 2 high bits of clock sequence - - // Convert to hex chars - for (var i = 0; i <36; i++) s[i] = itoh[s[i]]; - - // Insert '-'s - s[8] = s[13] = s[18] = s[23] = '-'; - - return s.join(''); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/vendor/cookie/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/vendor/cookie/index.js deleted file mode 100644 index ff44b3e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/vendor/cookie/index.js +++ /dev/null @@ -1,65 +0,0 @@ -/*! - * Tobi - Cookie - * Copyright(c) 2010 LearnBoost - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var url = require('url'); - -/** - * Initialize a new `Cookie` with the given cookie `str` and `req`. - * - * @param {String} str - * @param {IncomingRequest} req - * @api private - */ - -var Cookie = exports = module.exports = function Cookie(str, req) { - this.str = str; - - // Map the key/val pairs - str.split(/ *; */).reduce(function(obj, pair){ - var p = pair.indexOf('='); - var key = p > 0 ? pair.substring(0, p).trim() : pair.trim(); - var lowerCasedKey = key.toLowerCase(); - var value = p > 0 ? pair.substring(p + 1).trim() : true; - - if (!obj.name) { - // First key is the name - obj.name = key; - obj.value = value; - } - else if (lowerCasedKey === 'httponly') { - obj.httpOnly = value; - } - else { - obj[lowerCasedKey] = value; - } - return obj; - }, this); - - // Expires - this.expires = this.expires - ? new Date(this.expires) - : Infinity; - - // Default or trim path - this.path = this.path - ? this.path.trim(): req - ? url.parse(req.url).pathname: '/'; -}; - -/** - * Return the original cookie string. - * - * @return {String} - * @api public - */ - -Cookie.prototype.toString = function(){ - return this.str; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/vendor/cookie/jar.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/vendor/cookie/jar.js deleted file mode 100644 index 34920e06..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/request/vendor/cookie/jar.js +++ /dev/null @@ -1,72 +0,0 @@ -/*! -* Tobi - CookieJar -* Copyright(c) 2010 LearnBoost -* MIT Licensed -*/ - -/** -* Module dependencies. -*/ - -var url = require('url'); - -/** -* Initialize a new `CookieJar`. -* -* @api private -*/ - -var CookieJar = exports = module.exports = function CookieJar() { - this.cookies = []; -}; - -/** -* Add the given `cookie` to the jar. -* -* @param {Cookie} cookie -* @api private -*/ - -CookieJar.prototype.add = function(cookie){ - this.cookies = this.cookies.filter(function(c){ - // Avoid duplication (same path, same name) - return !(c.name == cookie.name && c.path == cookie.path); - }); - this.cookies.push(cookie); -}; - -/** -* Get cookies for the given `req`. -* -* @param {IncomingRequest} req -* @return {Array} -* @api private -*/ - -CookieJar.prototype.get = function(req){ - var path = url.parse(req.url).pathname - , now = new Date - , specificity = {}; - return this.cookies.filter(function(cookie){ - if (0 == path.indexOf(cookie.path) && now < cookie.expires - && cookie.path.length > (specificity[cookie.name] || 0)) - return specificity[cookie.name] = cookie.path.length; - }); -}; - -/** -* Return Cookie string for the given `req`. -* -* @param {IncomingRequest} req -* @return {String} -* @api private -*/ - -CookieJar.prototype.cookieString = function(req){ - var cookies = this.get(req); - if (cookies.length) { - return cookies.map(function(cookie){ - return cookie.name + '=' + cookie.value; - }).join('; '); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/.npmignore deleted file mode 100644 index b59f7e3a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/.npmignore +++ /dev/null @@ -1 +0,0 @@ -test/ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/License deleted file mode 100644 index 11ec094e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Felix Geisendörfer (felix@debuggable.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/Makefile deleted file mode 100644 index a7ce31d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -SHELL := /bin/bash - -test: - @./test/run.js - -release: - git push - git push --tags - npm publish . - -.PHONY: test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/Readme.md deleted file mode 100644 index fcd1b97c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/Readme.md +++ /dev/null @@ -1,98 +0,0 @@ -# stack-trace - -Get v8 stack traces as an array of CallSite objects. - -## Install - -``` bash -npm install stack-trace -``` - -## Usage - -The stack-trace module makes it easy for you to capture the current stack: - -``` javascript -var stackTrace = require('stack-trace'); -var trace = stackTrace.get(); - -require('assert').strictEqual(trace[0].getFileName(), __filename); -``` - -However, sometimes you have already popped the stack you are interested in, -and all you have left is an `Error` object. This module can help: - -``` javascript -var stackTrace = require('stack-trace'); -var err = new Error('something went wrong'); -var trace = stackTrace.parse(err); - -require('assert').strictEqual(trace[0].getFileName(), __filename); -``` - -Please note that parsing the `Error#stack` property is not perfect, only -certain properties can be retrieved with it as noted in the API docs below. - -## Long stack traces - -stack-trace works great with [long-stack-traces][], when parsing an `err.stack` -that has crossed the event loop boundary, a `CallSite` object returning -`'----------------------------------------'` for `getFileName()` is created. -All other methods of the event loop boundary call site return `null`. - -[long-stack-traces]: https://github.com/tlrobinson/long-stack-traces - -## API - -### stackTrace.get([belowFn]) - -Returns an array of `CallSite` objects, where element `0` is the current call -site. - -When passing a function on the current stack as the `belowFn` parameter, the -returned array will only include `CallSite` objects below this function. - -### stackTrace.parse(err) - -Parses the `err.stack` property of an `Error` object into an array compatible -with those returned by `stackTrace.get()`. However, only the following methods -are implemented on the returned `CallSite` objects. - -* getTypeName -* getFunctionName -* getMethodName -* getFileName -* getLineNumber -* getColumnNumber -* isNative - -Note: Except `getFunctionName()`, all of the above methods return exactly the -same values as you would get from `stackTrace.get()`. `getFunctionName()` -is sometimes a little different, but still useful. - -### CallSite - -The official v8 CallSite object API can be found [here][v8stackapi]. A quick -excerpt: - -> A CallSite object defines the following methods: -> -> * **getThis**: returns the value of this -> * **getTypeName**: returns the type of this as a string. This is the name of the function stored in the constructor field of this, if available, otherwise the object's [[Class]] internal property. -> * **getFunction**: returns the current function -> * **getFunctionName**: returns the name of the current function, typically its name property. If a name property is not available an attempt will be made to try to infer a name from the function's context. -> * **getMethodName**: returns the name of the property of this or one of its prototypes that holds the current function -> * **getFileName**: if this function was defined in a script returns the name of the script -> * **getLineNumber**: if this function was defined in a script returns the current line number -> * **getColumnNumber**: if this function was defined in a script returns the current column number -> * **getEvalOrigin**: if this function was created using a call to eval returns a CallSite object representing the location where eval was called -> * **isToplevel**: is this a toplevel invocation, that is, is this the global object? -> * **isEval**: does this call take place in code defined by a call to eval? -> * **isNative**: is this call in native V8 code? -> * **isConstructor**: is this a constructor call? - -[v8stackapi]: http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi - -## License - -stack-trace is licensed under the MIT license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/lib/stack-trace.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/lib/stack-trace.js deleted file mode 100644 index a7c38aa8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/lib/stack-trace.js +++ /dev/null @@ -1,111 +0,0 @@ -exports.get = function(belowFn) { - var oldLimit = Error.stackTraceLimit; - Error.stackTraceLimit = Infinity; - - var dummyObject = {}; - - var v8Handler = Error.prepareStackTrace; - Error.prepareStackTrace = function(dummyObject, v8StackTrace) { - return v8StackTrace; - }; - Error.captureStackTrace(dummyObject, belowFn || exports.get); - - var v8StackTrace = dummyObject.stack; - Error.prepareStackTrace = v8Handler; - Error.stackTraceLimit = oldLimit; - - return v8StackTrace; -}; - -exports.parse = function(err) { - if (!err.stack) { - return []; - } - - var self = this; - var lines = err.stack.split('\n').slice(1); - - return lines - .map(function(line) { - if (line.match(/^\s*[-]{4,}$/)) { - return self._createParsedCallSite({ - fileName: line, - lineNumber: null, - functionName: null, - typeName: null, - methodName: null, - columnNumber: null, - 'native': null, - }); - } - - var lineMatch = line.match(/at (?:(.+)\s+)?\(?(?:(.+?):(\d+):(\d+)|([^)]+))\)?/); - if (!lineMatch) { - return; - } - - var object = null; - var method = null; - var functionName = null; - var typeName = null; - var methodName = null; - var isNative = (lineMatch[5] === 'native'); - - if (lineMatch[1]) { - var methodMatch = lineMatch[1].match(/([^\.]+)(?:\.(.+))?/); - object = methodMatch[1]; - method = methodMatch[2]; - functionName = lineMatch[1]; - typeName = 'Object'; - } - - if (method) { - typeName = object; - methodName = method; - } - - if (method === '') { - methodName = null; - functionName = ''; - } - - var properties = { - fileName: lineMatch[2] || null, - lineNumber: parseInt(lineMatch[3], 10) || null, - functionName: functionName, - typeName: typeName, - methodName: methodName, - columnNumber: parseInt(lineMatch[4], 10) || null, - 'native': isNative, - }; - - return self._createParsedCallSite(properties); - }) - .filter(function(callSite) { - return !!callSite; - }); -}; - -exports._createParsedCallSite = function(properties) { - var methods = {}; - for (var property in properties) { - var prefix = 'get'; - if (property === 'native') { - prefix = 'is'; - } - var method = prefix + property.substr(0, 1).toUpperCase() + property.substr(1); - - (function(property) { - methods[method] = function() { - return properties[property]; - } - })(property); - } - - var callSite = Object.create(methods); - for (var property in properties) { - callSite[property] = properties[property]; - } - - return callSite; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/package.json deleted file mode 100644 index 56c5537e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/node_modules/stack-trace/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "author": { - "name": "Felix Geisendörfer", - "email": "felix@debuggable.com", - "url": "http://debuggable.com/" - }, - "name": "stack-trace", - "description": "Get v8 stack traces as an array of CallSite objects.", - "version": "0.0.9", - "homepage": "https://github.com/felixge/node-stack-trace", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-stack-trace.git" - }, - "main": "./lib/stack-trace", - "engines": { - "node": "*" - }, - "dependencies": {}, - "devDependencies": { - "far": "0.0.3", - "long-stack-traces": "0.1.2" - }, - "bugs": { - "url": "https://github.com/felixge/node-stack-trace/issues" - }, - "_id": "stack-trace@0.0.9", - "dist": { - "shasum": "a8f6eaeca90674c333e7c43953f275b451510695", - "tarball": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" - }, - "_from": "stack-trace@>=0.0.0 <0.1.0", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "sebastianhoitz", - "email": "hoitz@komola.de" - }, - "maintainers": [ - { - "name": "felixge", - "email": "felix@debuggable.com" - }, - { - "name": "tim-smart", - "email": "tim@fostle.com" - }, - { - "name": "sebastianhoitz", - "email": "hoitz@komola.de" - } - ], - "directories": {}, - "_shasum": "a8f6eaeca90674c333e7c43953f275b451510695", - "_resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/package.json deleted file mode 100644 index 69a2c297..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/package.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "name": "winston", - "description": "A multi-transport async logging library for Node.js", - "version": "0.6.2", - "author": { - "name": "Nodejitsu Inc.", - "email": "info@nodejitsu.com" - }, - "maintainers": [ - { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - }, - { - "name": "marak", - "email": "marak.squires@gmail.com" - }, - { - "name": "mmalecki", - "email": "me@mmalecki.com" - }, - { - "name": "chjj", - "email": "chjjeffrey@gmail.com" - } - ], - "repository": { - "type": "git", - "url": "git://github.com/flatiron/winston.git" - }, - "keywords": [ - "logging", - "sysadmin", - "tools" - ], - "dependencies": { - "async": "0.1.x", - "colors": "0.x.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "pkginfo": "0.2.x", - "request": "2.9.x", - "stack-trace": "0.0.x" - }, - "devDependencies": { - "vows": "0.6.x" - }, - "main": "./lib/winston", - "scripts": { - "test": "vows --spec --isolate" - }, - "engines": { - "node": ">= 0.4.0" - }, - "_npmUser": { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - }, - "_id": "winston@0.6.2", - "optionalDependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.1.2", - "_nodeVersion": "v0.8.1", - "_defaultsLoaded": true, - "dist": { - "shasum": "4144fe2586cdc19a612bf8c035590132c9064bd2", - "tarball": "https://registry.npmjs.org/winston/-/winston-0.6.2.tgz" - }, - "directories": {}, - "_shasum": "4144fe2586cdc19a612bf8c035590132c9064bd2", - "_resolved": "https://registry.npmjs.org/winston/-/winston-0.6.2.tgz", - "_from": "winston@>=0.6.0 <0.7.0", - "bugs": { - "url": "https://github.com/flatiron/winston/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/flatiron/winston#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/cli-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/cli-test.js deleted file mode 100644 index 365fba3f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/cli-test.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - * cli-test.js: Tests for the cli levels available in winston. - * - * (C) 2010 Charlie Robbins - * MIT LICENSE - * - */ - -var path = require('path'), - vows = require('vows'), - assert = require('assert'), - winston = require('../lib/winston'), - helpers = require('./helpers'); - -vows.describe('winston/logger/cli').addBatch({ - "When an instance of winston.Logger": { - topic: function () { - return new winston.Logger({ - transports: [ - new winston.transports.Console() - ] - }) - }, - "the cli() method": { - "should set the appropriate values on the logger": function (logger) { - logger.cli(); - assert.isTrue(logger.padLevels); - assert.isTrue(logger.transports.console.colorize); - assert.isFalse(logger.transports.console.timestamp); - Object.keys(winston.config.cli.levels).forEach(function (level) { - assert.isNumber(logger.levels[level]); - }); - - Object.keys(winston.config.cli.colors).forEach(function (color) { - assert.isString(winston.config.allColors[color]); - }); - } - } - } -}).export(module); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/container-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/container-test.js deleted file mode 100644 index 2fcc26a3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/container-test.js +++ /dev/null @@ -1,99 +0,0 @@ -/* - * container-test.js: Tests for the Container object - * - * (C) 2011 Charlie Robbins - * MIT LICENSE - * - */ - -var assert = require('assert'), - fs = require('fs'), - http = require('http'), - path = require('path'), - vows = require('vows'), - winston = require('../lib/winston'), - helpers = require('./helpers'); - -vows.describe('winston/container').addBatch({ - "An instance of winston.Container": { - topic: new winston.Container(), - "the add() method": { - topic: function (container) { - return container.add('default-test'); - }, - "should correctly instantiate a Logger": function (logger) { - assert.instanceOf(logger, winston.Logger); - }, - "the get() method": { - topic: function (logger, container) { - this.callback.apply(this, arguments); - }, - "should respond with the logger previously created": function (existing, container) { - var logger = container.get('default-test'); - assert.isTrue(existing === logger); - } - }, - "the has() method": { - topic: function (logger, container) { - this.callback.apply(this, arguments); - }, - "should indicate `default-test` logger exists": function (existing, container) { - assert.isTrue(container.has('default-test')); - }, - "should indicate `not-has` logger doesnt exists": function (existing, container) { - assert.isFalse(container.has('not-has')); - } - }, - "the close() method": { - topic: function (logger, container) { - this.callback.apply(this, arguments); - }, - "should remove the specified logger": function (logger, container) { - container.close('default-test'); - assert.isTrue(!container.loggers['default-test']); - } - } - } - }, - "An instance of winston.Container with explicit transports": { - topic: function () { - this.port = 9412; - this.transports = [ - new winston.transports.Webhook({ - port: this.port - }) - ]; - - this.container = new winston.Container({ - transports: this.transports - }); - - return null; - }, - "the get() method": { - topic: function (container) { - var server = http.createServer(function (req, res) { - res.end(); - }); - - server.listen(this.port, this.callback.bind(this, null)); - }, - "should add the logger correctly": function () { - this.someLogger = this.container.get('some-logger'); - assert.isObject(this.someLogger.transports); - assert.instanceOf(this.someLogger.transports['webhook'], winston.transports.Webhook); - assert.strictEqual(this.someLogger.transports['webhook'], this.transports[0]); - }, - "a second call to get()": { - "should respond with the same transport object": function () { - this.someOtherLogger = this.container.get('some-other-logger'); - - assert.isObject(this.someOtherLogger.transports); - assert.instanceOf(this.someOtherLogger.transports['webhook'], winston.transports.Webhook); - assert.strictEqual(this.someOtherLogger.transports['webhook'], this.transports[0]); - assert.strictEqual(this.someOtherLogger.transports['webhook'], this.someLogger.transports['webhook']); - } - } - } - } -}).export(module); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/custom-timestamp-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/custom-timestamp-test.js deleted file mode 100644 index efdc40f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/custom-timestamp-test.js +++ /dev/null @@ -1,62 +0,0 @@ -/* - * custom-timestamp-test.js: Test function as timestamp option for transport `{ timestamp: function () {} }` - * - * (C) 2011 Charlie Robbins, Tom Shinnick - * MIT LICENSE - * - */ - -var assert = require('assert'), - events = require('events'), - fs = require('fs'), - path = require('path'), - vows = require('vows'), - winston = require('../lib/winston'), - helpers = require('./helpers'); - -function assertTimestamp (basename, options) { - var filename = path.join(__dirname, 'fixtures', 'logs', basename + '.log'); - - try { fs.unlinkSync(filename) } - catch (ex) { } - - return { - topic: function () { - options.filename = filename; - var transport = new (winston.transports.File)(options); - - // We must wait until transport file has emitted the 'flush' - // event to be sure the file has been created and written - transport.once('flush', this.callback.bind(this, null, filename)); - transport.log('info', 'When a fake tree falls in the forest...', null, function () {}); - }, - "should log with the appropriate timestamp": function (_, filename) { - var data = fs.readFileSync(filename, 'utf8'); - assert.isNotNull(data.match(options.pattern)); - } - } -} - -vows.describe('winston/transport/timestamp').addBatch({ - "When timestamp option is used": { - "with file transport": { - "with value set to false": assertTimestamp('noTimestamp', { - pattern: /^info\:/, - json: false, - timestamp: false - }), - "with value set to true ": assertTimestamp('defaultTimestamp', { - pattern: /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z/, - json: false, - timestamp: true - }), - "and function value": assertTimestamp('customTimestamp', { - pattern: /^\d{8}\./, - json: false, - timestamp: function () { - return '20110803.171657'; - } - }) - } - } -}).export(module); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/exception-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/exception-test.js deleted file mode 100644 index 3c3178ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/exception-test.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * exception-test.js: Tests for exception data gathering in winston. - * - * (C) 2010 Charlie Robbins - * MIT LICENSE - * - */ - -var path = require('path'), - vows = require('vows'), - assert = require('assert'), - winston = require('../lib/winston'), - helpers = require('./helpers'); - -vows.describe('winston/exception').addBatch({ - "When using the winston exception module": { - "the getProcessInfo() method": { - topic: winston.exception.getProcessInfo(), - "should respond with the appropriate data": function (info) { - helpers.assertProcessInfo(info); - } - }, - "the getOsInfo() method": { - topic: winston.exception.getOsInfo(), - "should respond with the appropriate data": function (info) { - helpers.assertOsInfo(info); - } - }, - "the getTrace() method": { - topic: winston.exception.getTrace(new Error()), - "should have the appropriate info": function (trace) { - helpers.assertTrace(trace); - } - }, - "the getAllInfo() method": { - topic: winston.exception.getAllInfo(new Error()), - "should have the appropriate info": function (info) { - assert.isObject(info); - assert.isArray(info.stack); - helpers.assertDateInfo(info.date); - helpers.assertProcessInfo(info.process); - helpers.assertOsInfo(info.os); - helpers.assertTrace(info.trace); - } - } - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/.gitkeep b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/keys/agent2-cert.pem b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/keys/agent2-cert.pem deleted file mode 100644 index 8e4354db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/keys/agent2-cert.pem +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIB7DCCAZYCCQC7gs0MDNn6MTANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJV -UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO -BgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MjEgMB4GCSqGSIb3DQEJARYR -cnlAdGlueWNsb3Vkcy5vcmcwHhcNMTEwMzE0MTgyOTEyWhcNMzgwNzI5MTgyOTEy -WjB9MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYD -VQQKEwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MjEg -MB4GCSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwXDANBgkqhkiG9w0BAQEF -AANLADBIAkEAyXb8FrRdKbhrKLgLSsn61i1C7w7fVVVd7OQsmV/7p9WB2lWFiDlC -WKGU9SiIz/A6wNZDUAuc2E+VwtpCT561AQIDAQABMA0GCSqGSIb3DQEBBQUAA0EA -C8HzpuNhFLCI3A5KkBS5zHAQax6TFUOhbpBCR0aTDbJ6F1liDTK1lmU/BjvPoj+9 -1LHwrmh29rK8kBPEjmymCQ== ------END CERTIFICATE----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/keys/agent2-key.pem b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/keys/agent2-key.pem deleted file mode 100644 index 522903c6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/keys/agent2-key.pem +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIBOgIBAAJBAMl2/Ba0XSm4ayi4C0rJ+tYtQu8O31VVXezkLJlf+6fVgdpVhYg5 -QlihlPUoiM/wOsDWQ1ALnNhPlcLaQk+etQECAwEAAQJBAMT6Bf34+UHKY1ObpsbH -9u2jsVblFq1rWvs8GPMY6oertzvwm3DpuSUp7PTgOB1nLTLYtCERbQ4ovtN8tn3p -OHUCIQDzIEGsoCr5vlxXvy2zJwu+fxYuhTZWMVuo1397L0VyhwIhANQh+yzqUgaf -WRtSB4T2W7ADtJI35ET61jKBty3CqJY3AiAIwju7dVW3A5WeD6Qc1SZGKZvp9yCb -AFI2BfVwwaY11wIgXF3PeGcvACMyMWsuSv7aPXHfliswAbkWuzcwA4TW01ECIGWa -cgsDvVFxmfM5NPSuT/UDTa6R5BFISB5ea0N0AR3I ------END RSA PRIVATE KEY----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/logs/.gitkeep b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/logs/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/default-exceptions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/default-exceptions.js deleted file mode 100644 index ab26aa5e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/default-exceptions.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * default-exceptions.js: A test fixture for logging exceptions with the default winston logger. - * - * (C) 2011 Charlie Robbins - * MIT LICENCE - * - */ - -var path = require('path'), - winston = require('../../../lib/winston'); - -winston.handleExceptions([ - new (winston.transports.File)({ - filename: path.join(__dirname, '..', 'logs', 'default-exception.log'), - handleExceptions: true - }) -]); - -setTimeout(function () { - throw new Error('OH NOES! It failed!'); -}, 1000); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/exit-on-error.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/exit-on-error.js deleted file mode 100644 index fa3dd656..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/exit-on-error.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * default-exceptions.js: A test fixture for logging exceptions with the default winston logger. - * - * (C) 2011 Charlie Robbins - * MIT LICENCE - * - */ - -var path = require('path'), - winston = require('../../../lib/winston'); - -winston.exitOnError = function (err) { - return err.message !== 'Ignore this error'; -}; - -winston.handleExceptions([ - new (winston.transports.File)({ - filename: path.join(__dirname, '..', 'logs', 'exit-on-error.log'), - handleExceptions: true - }) -]); - -setTimeout(function () { - throw new Error('Ignore this error'); -}, 1000); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/log-exceptions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/log-exceptions.js deleted file mode 100644 index 43ce7ebc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/log-exceptions.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * log-exceptions.js: A test fixture for logging exceptions in winston. - * - * (C) 2011 Charlie Robbins - * MIT LICENCE - * - */ - -var path = require('path'), - winston = require('../../../lib/winston'); - -var logger = new (winston.Logger)({ - transports: [ - new (winston.transports.File)({ - filename: path.join(__dirname, '..', 'logs', 'exception.log'), - handleExceptions: true - }) - ] -}); - -logger.handleExceptions(); - -setTimeout(function () { - throw new Error('OH NOES! It failed!'); -}, 1000); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/unhandle-exceptions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/unhandle-exceptions.js deleted file mode 100644 index 5d722a74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/fixtures/scripts/unhandle-exceptions.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * unhandle-exceptions.js: A test fixture for using `.unhandleExceptions()` winston. - * - * (C) 2011 Charlie Robbins - * MIT LICENCE - * - */ - -var path = require('path'), - winston = require('../../../lib/winston'); - -var logger = new (winston.Logger)({ - transports: [ - new (winston.transports.File)({ - filename: path.join(__dirname, '..', 'logs', 'unhandle-exception.log'), - handleExceptions: true - }) - ] -}); - -logger.handleExceptions(); -logger.unhandleExceptions(); - -setTimeout(function () { - throw new Error('OH NOES! It failed!'); -}, 1000); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/helpers.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/helpers.js deleted file mode 100644 index 2564f797..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/helpers.js +++ /dev/null @@ -1,173 +0,0 @@ -/* - * helpers.js: Test helpers for winston - * - * (C) 2010 Charlie Robbins - * MIT LICENSE - * - */ - -var assert = require('assert'), - fs = require('fs'), - path = require('path'), - spawn = require('child_process').spawn, - util = require('util'), - vows = require('vows'), - winston = require('../lib/winston'); - -var helpers = exports; - -helpers.size = function (obj) { - var size = 0, key; - for (key in obj) { - if (obj.hasOwnProperty(key)) { - size++; - } - } - - return size; -}; - -helpers.tryUnlink = function (file) { - try { fs.unlinkSync(file) } - catch (ex) { } -}; - -helpers.assertDateInfo = function (info) { - assert.isNumber(Date.parse(info)); -}; - -helpers.assertProcessInfo = function (info) { - assert.isNumber(info.pid); - assert.isNumber(info.uid); - assert.isNumber(info.gid); - assert.isString(info.cwd); - assert.isString(info.execPath); - assert.isString(info.version); - assert.isArray(info.argv); - assert.isObject(info.memoryUsage); -}; - -helpers.assertOsInfo = function (info) { - assert.isArray(info.loadavg); - assert.isNumber(info.uptime); -}; - -helpers.assertTrace = function (trace) { - trace.forEach(function (site) { - assert.isTrue(!site.column || typeof site.column === 'number'); - assert.isTrue(!site.line || typeof site.line === 'number'); - assert.isTrue(!site.file || typeof site.file === 'string'); - assert.isTrue(!site.method || typeof site.method === 'string'); - assert.isTrue(!site.function || typeof site.function === 'string'); - assert.isTrue(typeof site.native === 'boolean'); - }); -}; - -helpers.assertLogger = function (logger, level) { - assert.instanceOf(logger, winston.Logger); - assert.isFunction(logger.log); - assert.isFunction(logger.add); - assert.isFunction(logger.remove); - assert.equal(logger.level, level || "info"); - Object.keys(logger.levels).forEach(function (method) { - assert.isFunction(logger[method]); - }); -}; - -helpers.assertConsole = function (transport) { - assert.instanceOf(transport, winston.transports.Console); - assert.isFunction(transport.log); -}; - -helpers.assertFile = function (transport) { - assert.instanceOf(transport, winston.transports.File); - assert.isFunction(transport.log); -} - -helpers.assertWebhook = function (transport) { - assert.instanceOf(transport, winston.transports.Webhook); - assert.isFunction(transport.log); -}; - -helpers.assertCouchdb = function (transport) { - assert.instanceOf(transport, winston.transports.Couchdb); - assert.isFunction(transport.log); -}; - -helpers.assertHandleExceptions = function (options) { - return { - topic: function () { - var that = this, - child = spawn('node', [options.script]); - - helpers.tryUnlink(options.logfile); - child.on('exit', function () { - fs.readFile(options.logfile, that.callback); - }); - }, - "should save the error information to the specified file": function (err, data) { - assert.isTrue(!err); - data = JSON.parse(data); - - assert.isObject(data); - helpers.assertProcessInfo(data.process); - helpers.assertOsInfo(data.os); - helpers.assertTrace(data.trace); - } - } -} - -helpers.testNpmLevels = function (transport, assertMsg, assertFn) { - return helpers.testLevels(winston.config.npm.levels, transport, assertMsg, assertFn); -}; - -helpers.testSyslogLevels = function (transport, assertMsg, assertFn) { - return helpers.testLevels(winston.config.syslog.levels, transport, assertMsg, assertFn); -}; - -helpers.testLevels = function (levels, transport, assertMsg, assertFn) { - var tests = {}; - - Object.keys(levels).forEach(function (level) { - var test = { - topic: function () { - transport.log(level, 'test message', {}, this.callback.bind(this, null)); - } - }; - - test[assertMsg] = assertFn; - tests['with the ' + level + ' level'] = test; - }); - - var metadatatest = { - topic: function () { - transport.log('info', 'test message', { metadata: true }, this.callback.bind(this, null)); - } - }; - - metadatatest[assertMsg] = assertFn; - tests['when passed metadata'] = metadatatest; - - var primmetadatatest = { - topic: function () { - transport.log('info', 'test message', 'metadata', this.callback.bind(this, null)); - } - }; - - primmetadatatest[assertMsg] = assertFn; - tests['when passed primitive metadata'] = primmetadatatest; - - var circmetadata = { }; - circmetadata['metadata'] = circmetadata; - - var circmetadatatest = { - topic: function () { - transport.log('info', 'test message', circmetadata, this.callback.bind(this, null)); - } - }; - - circmetadatatest[assertMsg] = assertFn; - tests['when passed circular metadata'] = circmetadatatest; - - return tests; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/log-exception-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/log-exception-test.js deleted file mode 100644 index 164dcdfd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/log-exception-test.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * exception-test.js: Tests for exception data gathering in winston. - * - * (C) 2010 Charlie Robbins - * MIT LICENSE - * - */ - -var assert = require('assert'), - path = require('path'), - fs = require('fs'), - spawn = require('child_process').spawn, - vows = require('vows'), - winston = require('../lib/winston'), - helpers = require('./helpers'), - exists = (fs.exists || path.exists); - -vows.describe('winston/logger/exceptions').addBatch({ - "When using winston": { - "the handleException() method": { - "with a custom winston.Logger instance": helpers.assertHandleExceptions({ - script: path.join(__dirname, 'fixtures', 'scripts', 'log-exceptions.js'), - logfile: path.join(__dirname, 'fixtures', 'logs', 'exception.log') - }), - "with the default winston logger": helpers.assertHandleExceptions({ - script: path.join(__dirname, 'fixtures', 'scripts', 'default-exceptions.js'), - logfile: path.join(__dirname, 'fixtures', 'logs', 'default-exception.log') - }), - "when a custom exitOnError function is set": { - topic: function () { - var that = this, - scriptDir = path.join(__dirname, 'fixtures', 'scripts'); - - that.child = spawn('node', [path.join(scriptDir, 'exit-on-error.js')]); - setTimeout(this.callback.bind(this), 1500); - }, - "should not exit the process": function () { - assert.isFalse(this.child.killed); - this.child.kill(); - } - } - }, - "the unhandleException() method": { - topic: function () { - var that = this, - child = spawn('node', [path.join(__dirname, 'fixtures', 'scripts', 'unhandle-exceptions.js')]), - exception = path.join(__dirname, 'fixtures', 'logs', 'unhandle-exception.log'); - - helpers.tryUnlink(exception); - child.on('exit', function () { - exists(exception, that.callback.bind(this, null)); - }); - }, - "should not write to the specified error file": function (err, exists) { - assert.isTrue(!err); - assert.isFalse(exists); - } - } - } -}).export(module); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/log-rewriter-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/log-rewriter-test.js deleted file mode 100644 index f1deeba8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/log-rewriter-test.js +++ /dev/null @@ -1,98 +0,0 @@ -/* - * log-rewriter-test.js: Tests for rewriting metadata in winston. - * - * (C) 2010 Charlie Robbins - * MIT LICENSE - * - */ - -var assert = require('assert'), - vows = require('vows'), - winston = require('../lib/winston'), - helpers = require('./helpers'); - -vows.describe('winston/logger/rewriter').addBatch({ - "An instance of winston.Logger": { - topic: new (winston.Logger)({transports: [ - new (winston.transports.Console)({ level: 'info' }) - ]}), - "the addRewriter() method": { - topic: function (logger) { - logger.addRewriter(function (level, msg, meta) { - meta.level = level; - meta.msg = msg; - meta.foo = 'bar'; - return meta; - }); - return logger; - }, - "should add the rewriter": function (logger) { - assert.equal(helpers.size(logger.rewriters), 1); - }, - "the log() method": { - topic: function (logger) { - logger.once('logging', this.callback); - logger.log('info', 'test message', {"a": "b"}); - }, - "should run the rewriter": function (transport, level, msg, meta) { - assert.equal(meta.a, 'b'); - assert.equal(meta.level, 'info'); - assert.equal(meta.msg, 'test message'); - assert.equal(meta.foo, 'bar'); - } - } - } - } -}).addBatch({ - "An instance of winston.Logger with explicit rewriter": { - topic: new (winston.Logger)({transports: [ - new (winston.transports.Console)({ level: 'info'}) - ], rewriters: [ - function (level, msg, meta) { - meta.level = level; - meta.msg = msg; - meta.foo = 'bar'; - return meta; - } - ]}), - "should add the rewriter": function (logger) { - assert.equal(helpers.size(logger.rewriters), 1); - }, - "the log() method": { - topic: function (logger) { - logger.once('logging', this.callback); - logger.log('info', 'test message', {"a": "b"}); - }, - "should run the rewriter": function (transport, level, msg, meta) { - assert.equal(meta.a, 'b'); - assert.equal(meta.level, 'info'); - assert.equal(meta.msg, 'test message'); - assert.equal(meta.foo, 'bar'); - } - } - } -}).addBatch({ - "An instance of winston.Logger with rewriters": { - topic: new (winston.Logger)({transports: [ - new (winston.transports.Console)({ level: 'info' }) - ], rewriters: [ - function (level, msg, meta) { - meta.numbers.push(1); - return meta; - }, - function (level, msg, meta) { - meta.numbers.push(2); - return meta; - } - ]}), - "the log() method": { - topic: function (logger) { - logger.once('logging', this.callback); - logger.log('info', 'test message', {"numbers": [0]}); - }, - "should run the rewriters in correct order": function (transport, level, msg, meta) { - assert.deepEqual(meta.numbers, [0, 1, 2]); - } - } - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/logger-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/logger-test.js deleted file mode 100644 index 0074f203..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/logger-test.js +++ /dev/null @@ -1,200 +0,0 @@ -/* - * logger-test.js: Tests for instances of the winston Logger - * - * (C) 2010 Charlie Robbins - * MIT LICENSE - * - */ - -var path = require('path'), - vows = require('vows'), - assert = require('assert'), - winston = require('../lib/winston'), - helpers = require('./helpers'), - transport = require('./transports/transport'); - -vows.describe('winton/logger').addBatch({ - "An instance of winston.Logger": { - topic: new (winston.Logger)({ transports: [new (winston.transports.Console)({ level: 'info' })] }), - "should have the correct methods / properties defined": function (logger) { - helpers.assertLogger(logger); - }, - "the add() with an unsupported transport": { - "should throw an error": function () { - assert.throws(function () { logger.add('unsupported') }, Error); - } - } - } -}).addBatch({ - "An instance of winston.Logger with no transports": { - topic: new (winston.Logger)({ emitErrs: true }), - "the log() method should throw an error": function (logger) { - assert.throws(function () { logger.log('anything') }, Error); - }, - "the extend() method called on an empty object": { - topic: function (logger) { - var empty = {}; - logger.extend(empty); - return empty; - }, - "should define the appropriate methods": function (extended) { - ['log', 'profile', 'startTimer'].concat(Object.keys(winston.config.npm.levels)).forEach(function (method) { - assert.isFunction(extended[method]); - }); - } - }, - "the add() method with a supported transport": { - topic: function (logger) { - return logger.add(winston.transports.Console); - }, - "should add the console Transport onto transports": function (logger) { - assert.equal(helpers.size(logger.transports), 1); - helpers.assertConsole(logger.transports.console); - }, - "should throw an error when the same Transport is added": function (logger) { - assert.throws(function () { logger.add(winston.transports.Console) }, Error); - }, - "the log() method": { - topic: function (logger) { - logger.once('logging', this.callback); - logger.log('info', 'test message'); - }, - "should emit the 'log' event with the appropriate transport": function (transport, ign) { - helpers.assertConsole(transport); - } - }, - "the profile() method": { - "when passed a callback": { - topic: function (logger) { - var that = this; - logger.profile('test1'); - setTimeout(function () { - logger.profile('test1', function (err, level, msg, meta) { - that.callback(err, level, msg, meta, logger); - }); - }, 1000); - }, - "should respond with the appropriate profile message": function (err, level, msg, meta, logger) { - assert.isNull(err); - assert.equal(level, 'info'); - assert.match(meta.duration, /(\d+)ms/); - assert.isTrue(typeof logger.profilers['test'] === 'undefined'); - } - }, - "when not passed a callback": { - topic: function (logger) { - var that = this; - logger.profile('test2'); - logger.once('logging', that.callback.bind(null, null)); - setTimeout(function () { - logger.profile('test2'); - }, 1000); - }, - "should respond with the appropriate profile message": function (err, transport, level, msg, meta) { - assert.isNull(err); - assert.equal(level, 'info'); - assert.match(meta.duration, /(\d+)ms/); - } - } - }, - "the startTimer() method": { - "when passed a callback": { - topic: function (logger) { - var that = this; - var timer = logger.startTimer() - setTimeout(function () { - timer.done('test', function (err, level, msg, meta) { - that.callback(err, level, msg, meta, logger); - }); - }, 1000); - }, - "should respond with the appropriate message": function (err, level, msg, meta, logger) { - assert.isNull(err); - assert.equal(level, 'info'); - assert.match(meta.duration, /(\d+)ms/); - } - }, - "when not passed a callback": { - topic: function (logger) { - var that = this; - var timer = logger.startTimer() - logger.once('logging', that.callback.bind(null, null)); - setTimeout(function () { - timer.done(); - }, 1000); - }, - "should respond with the appropriate message": function (err, transport, level, msg, meta) { - assert.isNull(err); - assert.equal(level, 'info'); - assert.match(meta.duration, /(\d+)ms/); - - var duration = parseInt(meta.duration); - assert.isNumber(duration); - assert.isTrue(duration > 900 && duration < 1100); - } - } - }, - "and adding an additional transport": { - topic: function (logger) { - return logger.add(winston.transports.File, { - filename: path.join(__dirname, 'fixtures', 'logs', 'testfile2.log') - }); - }, - "should be able to add multiple transports": function (logger) { - assert.equal(helpers.size(logger.transports), 2); - helpers.assertConsole(logger.transports.console); - helpers.assertFile(logger.transports.file); - } - } - } - } -}).addBatch({ - "The winston logger": { - topic: new (winston.Logger)({ - transports: [ - new (winston.transports.Console)(), - new (winston.transports.File)({ filename: path.join(__dirname, 'fixtures', 'logs', 'filelog.log' )}) - ] - }), - "should return have two transports": function (logger) { - assert.equal(helpers.size(logger.transports), 2); - }, - "the remove() with an unadded transport": { - "should throw an Error": function (logger) { - assert.throws(function () { logger.remove(winston.transports.Webhook) }, Error); - } - }, - "the remove() method with an added transport": { - topic: function (logger) { - return logger.remove(winston.transports.Console); - }, - "should remove the Console transport from transports": function (logger) { - assert.equal(helpers.size(logger.transports), 1); - helpers.assertFile(logger.transports.file); - }, - "and removing an additional transport": { - topic: function (logger) { - return logger.remove(winston.transports.File); - }, - "should remove File transport from transports": function (logger) { - assert.equal(helpers.size(logger.transports), 0); - } - } - } - } -}).addBatch({ - "The winston logger": { - topic: new (winston.Logger)({ - transports: [ - new (winston.transports.Console)(), - new (winston.transports.File)({ filename: path.join(__dirname, 'fixtures', 'logs', 'filelog.log' )}) - ] - }), - "the clear() method": { - "should remove all transports": function (logger) { - logger.clear(); - assert.equal(helpers.size(logger.transports), 0); - } - } - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/console-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/console-test.js deleted file mode 100644 index 07f5a6ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/console-test.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * console-test.js: Tests for instances of the Console transport - * - * (C) 2010 Charlie Robbins - * MIT LICENSE - * - */ - -var path = require('path'), - vows = require('vows'), - assert = require('assert'), - winston = require('../../lib/winston'), - helpers = require('../helpers'); - -var npmTransport = new (winston.transports.Console)(), - syslogTransport = new (winston.transports.Console)({ levels: winston.config.syslog.levels }); - -vows.describe('winston/transports/console').addBatch({ - "An instance of the Console Transport": { - "with npm levels": { - "should have the proper methods defined": function () { - helpers.assertConsole(npmTransport); - }, - "the log() method": helpers.testNpmLevels(npmTransport, "should respond with true", function (ign, err, logged) { - assert.isNull(err); - assert.isTrue(logged); - }) - }, - "with syslog levels": { - "should have the proper methods defined": function () { - helpers.assertConsole(syslogTransport); - }, - "the log() method": helpers.testSyslogLevels(syslogTransport, "should respond with true", function (ign, err, logged) { - assert.isNull(err); - assert.isTrue(logged); - }) - } - } -}).export(module); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/file-maxfiles-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/file-maxfiles-test.js deleted file mode 100644 index a9fa89e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/file-maxfiles-test.js +++ /dev/null @@ -1,102 +0,0 @@ -/* - * file-maxfiles-test.js: Tests for instances of the File transport setting the max file size, - * and setting a number for max files created. - * maxSize * maxFiles = total storage used by winston. - * - * (C) 2011 Daniel Aristizabal - * MIT LICENSE - * - */ - -var assert = require('assert'), - exec = require('child_process').exec, - fs = require('fs'), - path = require('path'), - vows = require('vows'), - winston = require('../../lib/winston'), - helpers = require('../helpers'); - -var maxfilesTransport = new winston.transports.File({ - timestamp: false, - json: false, - filename: path.join(__dirname, '..', 'fixtures', 'logs', 'testmaxfiles.log'), - maxsize: 4096, - maxFiles: 3 -}); - -vows.describe('winston/transports/file/maxfiles').addBatch({ - "An instance of the File Transport": { - "when passed a valid filename": { - topic: maxfilesTransport, - "should be a valid transporter": function (transportTest) { - helpers.assertFile(transportTest); - }, - "should set the maxFiles option correctly": function (transportTest) { - assert.isNumber(transportTest.maxFiles); - } - }, - "when delete old test files": { - topic: function () { - exec('rm -rf ' + path.join(__dirname, '..', 'fixtures', 'logs', 'testmaxfiles*'), this.callback); - }, - "and when passed more files than the maxFiles": { - topic: function () { - var that = this, - created = 0; - - function data(ch) { - return new Array(1018).join(String.fromCharCode(65 + ch)); - }; - - function logKbytes(kbytes, txt) { - // - // With no timestamp and at the info level, - // winston adds exactly 7 characters: - // [info](4)[ :](2)[\n](1) - // - for (var i = 0; i < kbytes; i++) { - maxfilesTransport.log('info', data(txt), null, function () { }); - } - } - - maxfilesTransport.on('logged', function () { - if (++created === 6) { - return that.callback(); - } - - logKbytes(4, created); - }); - - logKbytes(4, created); - }, - "should be only 3 files called 5.log, 4.log and 3.log": function () { - for (var num = 0; num < 6; num++) { - var file = !num ? 'testmaxfiles.log' : 'testmaxfiles' + num + '.log', - fullpath = path.join(__dirname, '..', 'fixtures', 'logs', file); - - // There should be no files with that name - if (num >= 0 && num < 3) { - return assert.throws(function () { - fs.statSync(file); - }, Error); - } - - // The other files should be exist - assert.doesNotThrow(function () { - fs.statSync(file); - }, Error); - } - }, - "should have the correct content": function () { - ['D', 'E', 'F'].forEach(function (name, inx) { - var counter = inx + 3, - logsDir = path.join(__dirname, '..', 'fixtures', 'logs'), - content = fs.readFileSync(path.join(logsDir, 'testmaxfiles' + counter + '.log'), 'utf-8'); - // The content minus the 7 characters added by winston - assert.lengthOf(content.match(new RegExp(name, 'g')), 4068); - }); - } - } - } - } -}).export(module); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/file-maxsize-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/file-maxsize-test.js deleted file mode 100644 index 7d20e089..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/file-maxsize-test.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * file-test.js: Tests for instances of the File transport - * - * (C) 2010 Charlie Robbins - * MIT LICENSE - * - */ - -var assert = require('assert'), - exec = require('child_process').exec, - fs = require('fs'), - path = require('path'), - vows = require('vows'), - winston = require('../../lib/winston'), - helpers = require('../helpers'); - -var maxsizeTransport = new winston.transports.File({ - timestamp: false, - json: false, - filename: path.join(__dirname, '..', 'fixtures', 'logs', 'testmaxsize.log'), - maxsize: 4096 -}); - -vows.describe('winston/transports/file/maxsize').addBatch({ - "An instance of the File Transport": { - "when passed a valid filename": { - "the log() method": { - topic: function () { - exec('rm -rf ' + path.join(__dirname, '..', 'fixtures', 'logs', 'testmaxsize*'), this.callback); - }, - "when passed more than the maxsize": { - topic: function () { - var that = this, - data = new Array(1018).join('-'); - - // - // Setup a list of files which we will later stat. - // - that.files = []; - - function logKbytes (kbytes) { - // - // With no timestamp and at the info level, - // winston adds exactly 7 characters: - // [info](4)[ :](2)[\n](1) - // - for (var i = 0; i < kbytes; i++) { - maxsizeTransport.log('info', data, null, function () { }); - } - } - - maxsizeTransport.on('open', function (file) { - var match = file.match(/(\d+)\.log$/), - count = match ? match[1] : 0; - - that.files.push(file); - - if (that.files.length === 5) { - return that.callback(); - } - - logKbytes(4); - }); - - logKbytes(4); - }, - "should create multiple files correctly": function () { - this.files.forEach(function (file) { - try { - var stats = fs.statSync(file); - assert.equal(stats.size, 4096); - } - catch (ex) { - assert.isNull(ex); - } - }); - } - } - } - } - } -}).export(module); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/file-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/file-test.js deleted file mode 100644 index 2039b030..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/file-test.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * file-test.js: Tests for instances of the File transport - * - * (C) 2010 Charlie Robbins - * MIT LICENSE - * - */ - -var path = require('path'), - vows = require('vows'), - fs = require('fs'), - assert = require('assert'), - winston = require('../../lib/winston'), - helpers = require('../helpers'); - -var transport = require('./transport'); - -var stream = fs.createWriteStream( - path.join(__dirname, '..', 'fixtures', 'logs', 'testfile.log') - ), - fileTransport = new (winston.transports.File)({ - filename: path.join(__dirname, '..', 'fixtures', 'logs', 'testfilename.log') - }), - streamTransport = new (winston.transports.File)({ stream: stream }); - -vows.describe('winston/transports/file').addBatch({ - "An instance of the File Transport": { - "when passed a valid filename": { - "should have the proper methods defined": function () { - helpers.assertFile(fileTransport); - }, - "the log() method": helpers.testNpmLevels(fileTransport, "should respond with true", function (ign, err, logged) { - assert.isNull(err); - assert.isTrue(logged); - }) - }, - "when passed a valid file stream": { - "should have the proper methods defined": function () { - helpers.assertFile(streamTransport); - }, - "the log() method": helpers.testNpmLevels(streamTransport, "should respond with true", function (ign, err, logged) { - assert.isNull(err); - assert.isTrue(logged); - }) - } - } -}).addBatch({ - "These tests have a non-deterministic end": { - topic: function () { - setTimeout(this.callback, 200); - }, - "and this should be fixed before releasing": function () { - assert.isTrue(true); - } - } -}).addBatch({ - "An instance of the File Transport": transport(winston.transports.File, { - filename: path.join(__dirname, '..', 'fixtures', 'logs', 'testfile.log') - }) -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/transport.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/transport.js deleted file mode 100644 index 89b1eabd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/transport.js +++ /dev/null @@ -1,212 +0,0 @@ -var assert = require('assert'), - winston = require('../../lib/winston'), - helpers = require('../helpers'); - -module.exports = function (transport, options) { - var logger = transport instanceof winston.Logger - ? transport - : new winston.Logger({ - transports: [ - new transport(options) - ] - }); - - // hack to fix transports that don't log - // any unit of time smaller than seconds - var common = require('../../lib/winston/common'); - common.timestamp = function() { - return new Date().toISOString(); - }; - - var transport = logger.transports[logger._names[0]]; - - var out = { - 'topic': logger, - 'when passed valid options': { - 'should have the proper methods defined': function () { - switch (transport.name) { - case 'console': - helpers.assertConsole(transport); - break; - case 'file': - helpers.assertFile(transport); - break; - case 'webhook': - helpers.assertWebhook(transport); - break; - case 'couchdb': - helpers.assertCouchdb(transport); - break; - } - assert.isFunction(transport.log); - } - }, - 'the log() method': helpers.testNpmLevels(transport, - 'should respond with true', function (ign, err, logged) { - assert.isNull(err); - assert.isNotNull(logged); - } - ), - 'the stream() method': { - 'using no options': { - 'topic': function () { - if (!transport.stream) return; - - logger.log('info', 'hello world', {}); - - var cb = this.callback, - j = 10, - i = 10, - results = [], - stream = logger.stream(); - - stream.on('log', function (log) { - results.push(log); - results.stream = stream; - if (!--j) cb(null, results); - }); - - stream.on('error', function () {}); - - while (i--) logger.log('info', 'hello world ' + i, {}); - }, - 'should stream logs': function (err, results) { - if (!transport.stream) return; - assert.isNull(err); - results.forEach(function (log) { - assert.ok(log.message.indexOf('hello world') === 0 - || log.message.indexOf('test message') === 0); - }); - results.stream.destroy(); - } - }, - 'using the `start` option': { - 'topic': function () { - if (!transport.stream) return; - - var cb = this.callback, - stream = logger.stream({ start: 0 }); - - stream.on('log', function (log) { - log.stream = stream; - if (cb) cb(null, log); - cb = null; - }); - }, - 'should stream logs': function (err, log) { - if (!transport.stream) return; - assert.isNull(err); - assert.isNotNull(log.message); - log.stream.destroy(); - } - } - }, - 'after the logs have flushed': { - topic: function () { - setTimeout(this.callback, 1000); - }, - 'the query() method': { - 'using basic querying': { - 'topic': function () { - if (!transport.query) return; - var cb = this.callback; - logger.log('info', 'hello world', {}, function () { - logger.query(cb); - }); - }, - 'should return matching results': function (err, results) { - if (!transport.query) return; - assert.isNull(err); - results = results[transport.name]; - while (!Array.isArray(results)) { - results = results[Object.keys(results).pop()]; - } - var log = results.pop(); - assert.ok(log.message.indexOf('hello world') === 0 - || log.message.indexOf('test message') === 0); - } - }, - 'using the `rows` option': { - 'topic': function () { - if (!transport.query) return; - var cb = this.callback; - logger.log('info', 'hello world', {}, function () { - logger.query({ rows: 1 }, cb); - }); - }, - 'should return one result': function (err, results) { - if (!transport.query) return; - assert.isNull(err); - results = results[transport.name]; - while (!Array.isArray(results)) { - results = results[Object.keys(results).pop()]; - } - assert.equal(results.length, 1); - } - }, - 'using `fields` and `order` option': { - 'topic': function () { - if (!transport.query) return; - var cb = this.callback; - logger.log('info', 'hello world', {}, function () { - logger.query({ order: 'asc', fields: ['timestamp'] }, cb); - }); - }, - 'should return matching results': function (err, results) { - if (!transport.query) return; - assert.isNull(err); - results = results[transport.name]; - while (!Array.isArray(results)) { - results = results[Object.keys(results).pop()]; - } - assert.equal(Object.keys(results[0]).length, 1); - assert.ok(new Date(results.shift().timestamp) - < new Date(results.pop().timestamp)); - } - }, - 'using the `from` and `until` option': { - 'topic': function () { - if (!transport.query) return; - var cb = this.callback; - var start = new Date - 100 * 1000; - var end = new Date + 100 * 1000; - logger.query({ from: start, until: end }, cb); - }, - 'should return matching results': function (err, results) { - if (!transport.query) return; - assert.isNull(err); - results = results[transport.name]; - while (!Array.isArray(results)) { - results = results[Object.keys(results).pop()]; - } - assert.ok(results.length >= 1); - } - }, - 'using a bad `from` and `until` option': { - 'topic': function () { - if (!transport.query) return; - var cb = this.callback; - logger.log('info', 'bad from and until', {}, function () { - var now = new Date + 1000000; - logger.query({ from: now, until: now }, cb); - }); - }, - 'should return no results': function (err, results) { - if (!transport.query) return; - assert.isNull(err); - results = results[transport.name]; - while (!Array.isArray(results)) { - results = results[Object.keys(results).pop()]; - } - results = [results.filter(function(log) { - return log.message === 'bad from and until'; - }).pop()]; - assert.isUndefined(results[0]); - } - } - } - } - }; - - return out; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/webhook-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/webhook-test.js deleted file mode 100644 index 8d40c001..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/transports/webhook-test.js +++ /dev/null @@ -1,125 +0,0 @@ -/* - * webhook-test.js: Tests for instances of the Webhook transport - * - * (C) 2011 Marak Squires - * MIT LICENSE - * - */ - -var path = require('path'), - vows = require('vows'), - fs = require('fs'), - http = require('http'), - https = require('https'), - assert = require('assert'), - winston = require('../../lib/winston'), - helpers = require('../helpers'); - -var webhookTransport = new (winston.transports.Webhook)({ - "host": "localhost", - "port": 8080, - "path": "/winston-test" -}); - -var httpsWebhookTransport = new (winston.transports.Webhook)({ - "host": "localhost", - "port": 8081, - "path": "/winston-test", - "ssl": true -}); - -var authWebhookTransport = new (winston.transports.Webhook)({ - "host": "localhost", - "port": 8080, - "path": "/winston-auth-test", - "auth": { - "username": "winston", - "password": "churchill" - } -}); - -var requestsAuthenticated = true; - -var server = http.createServer(function (req, res) { - if (req.url == '/winston-auth-test') { - // - // Test if request has been correctly authenticated - // - // Strip 'Basic' from Authorization header - var signature = req.headers['authorization'].substr(6); - requestsAuthenticated = requestsAuthenticated && - new Buffer(signature, 'base64').toString('utf8') == 'winston:churchill'; - } - res.end(); -}); - -server.listen(8080); - - -var httpsServer = https.createServer({ - cert: fs.readFileSync(path.join(__dirname, '..', 'fixtures', 'keys', 'agent2-cert.pem')), - key: fs.readFileSync(path.join(__dirname, '..', 'fixtures', 'keys', 'agent2-key.pem')) -}, function (req, res) { - res.end(); -}); - -httpsServer.listen(8081); - -vows.describe('winston/transports/webhook').addBatch({ - "An instance of the Webhook Transport": { - "when passed valid options": { - "should have the proper methods defined": function () { - helpers.assertWebhook(webhookTransport); - }, - "the log() method": helpers.testNpmLevels(webhookTransport, "should respond with true", function (ign, err, logged) { - assert.isNull(err); - assert.isTrue(logged); - }) - } - }, - "An https instance of the Webhook Transport": { - "when passed valid options": { - "should have the proper methods defined": function () { - helpers.assertWebhook(httpsWebhookTransport); - }, - "the log() method": helpers.testNpmLevels(httpsWebhookTransport, "should respond with true", function (ign, err, logged) { - assert.isNull(err); - assert.isTrue(logged); - }) - } - }, - "An http Basic Auth instance of the Webhook Transport": { - "when passed valid options": { - "should have the proper methods defined": function () { - helpers.assertWebhook(authWebhookTransport); - }, - "the log() method": helpers.testNpmLevels(authWebhookTransport, "should respond with true", function (ign, err, logged) { - assert.isNull(err); - assert.isTrue(logged); - }) - } - } -}).addBatch({ - "When the tests are over": { - topic: function () { - // - // Delay destruction of the server since the - // WebHook transport responds before the request - // has actually be completed. - // - setTimeout(this.callback, 1000); - }, - "the server should cleanup": function () { - server.close(); - }, - "requests have been correctly authenticated": function () { - assert.ok(requestsAuthenticated); - } - } -}).addBatch({ - // "An instance of the Webhook Transport": transport(winston.transports.Webhook, { - // "host": "localhost", - // "port": 8080, - // "path": "/winston-test" - // }) -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/winston-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/winston-test.js deleted file mode 100644 index 71053298..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/node_modules/winston/test/winston-test.js +++ /dev/null @@ -1,98 +0,0 @@ -/* - * logger-test.js: Tests for instances of the winston Logger - * - * (C) 2010 Charlie Robbins - * MIT LICENSE - * - */ - -var fs = require('fs'), - path = require('path'), - vows = require('vows'), - http = require('http'), - assert = require('assert'), - winston = require('../lib/winston'), - helpers = require('./helpers'); - -vows.describe('winston').addBatch({ - "The winston module": { - topic: function () { - winston.default.transports.console.level = 'silly'; - return null; - }, - "should have the correct methods defined": function () { - assert.isObject(winston.transports); - assert.isFunction(winston.Transport); - assert.isTrue(!winston.transports.Transport); - assert.isFunction(winston.transports.Console); - assert.isFunction(winston.transports.File); - assert.isFunction(winston.transports.Webhook); - assert.isObject(winston.default.transports.console); - assert.isFalse(winston.emitErrs); - assert.isObject(winston.config); - ['Logger', 'add', 'remove', 'extend'] - .concat(Object.keys(winston.config.npm.levels)) - .forEach(function (key) { - assert.isFunction(winston[key]); - }); - }, - "it should": { - topic: function () { - fs.readFile(path.join(__dirname, '..', 'package.json'), this.callback); - }, - "have the correct version set": function (err, data) { - assert.isNull(err); - data = JSON.parse(data.toString()); - assert.equal(winston.version, data.version); - } - }, - "the log() method": helpers.testNpmLevels(winston, "should respond without an error", function (err) { - assert.isNull(err); - }), - "the extend() method called on an empty object": { - topic: function (logger) { - var empty = {}; - winston.extend(empty); - return empty; - }, - "should define the appropriate methods": function (extended) { - ['log', 'profile', 'startTimer'].concat(Object.keys(winston.config.npm.levels)).forEach(function (method) { - assert.isFunction(extended[method]); - }); - } - } - } -}).addBatch({ - "The winston module": { - "the setLevels() method": { - topic: function () { - winston.setLevels(winston.config.syslog.levels); - return null; - }, - "should have the proper methods defined": function () { - assert.isObject(winston.transports); - assert.isFunction(winston.transports.Console); - assert.isFunction(winston.transports.Webhook); - assert.isObject(winston.default.transports.console); - assert.isFalse(winston.emitErrs); - assert.isObject(winston.config); - - var newLevels = Object.keys(winston.config.syslog.levels); - ['Logger', 'add', 'remove', 'extend'] - .concat(newLevels) - .forEach(function (key) { - assert.isFunction(winston[key]); - }); - - - Object.keys(winston.config.npm.levels) - .filter(function (key) { - return newLevels.indexOf(key) === -1; - }) - .forEach(function (key) { - assert.isTrue(typeof winston[key] === 'undefined'); - }); - } - } - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/package.json deleted file mode 100644 index 0f299ec0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "cliff", - "description": "Your CLI formatting friend.", - "version": "0.1.8", - "author": { - "name": "Nodejitsu Inc.", - "email": "info@nodejitsu.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/flatiron/cliff.git" - }, - "maintainers": [ - { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - }, - { - "name": "marak", - "email": "marak.squires@gmail.com" - }, - { - "name": "nicoreed", - "email": "dev@nicoreed.com" - } - ], - "keywords": [ - "cli", - "logging", - "tools", - "winston" - ], - "dependencies": { - "colors": "0.x.x", - "eyes": "0.1.x", - "winston": "0.6.x" - }, - "devDependencies": { - "vows": "0.5.x" - }, - "main": "./lib/cliff", - "scripts": { - "test": "vows test/*-test.js --spec" - }, - "engines": { - "node": ">= 0.4.0" - }, - "_npmUser": { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - }, - "_id": "cliff@0.1.8", - "optionalDependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.1.2", - "_nodeVersion": "v0.6.18", - "_defaultsLoaded": true, - "dist": { - "shasum": "43ca8ad9fe3943489693ab62dce0cae22509d272", - "tarball": "https://registry.npmjs.org/cliff/-/cliff-0.1.8.tgz" - }, - "directories": {}, - "_shasum": "43ca8ad9fe3943489693ab62dce0cae22509d272", - "_resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.8.tgz", - "_from": "cliff@0.1.8", - "bugs": { - "url": "https://github.com/flatiron/cliff/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/flatiron/cliff#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/test/cliff-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/test/cliff-test.js deleted file mode 100644 index 17c59525..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/cliff/test/cliff-test.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * log-test.js: Tests for cliff. - * - * (C) 2010, Nodejitsu Inc. - * - */ - -var assert = require('assert'), - vows = require('vows'), - eyes = require('eyes'), - cliff = require('../lib/cliff'); - -vows.describe('cliff').addBatch({ - "When using cliff module": { - "the columnMajor() method": { - "should respond with rows in column major form": function () { - var columns, rows = [ - ["1a", "2a", "3a", "4a"], - ["1b", "2b", "3b", "4b"], - ["1c", "2c", "3c", "4c"] - ]; - - columns = cliff.columnMajor(rows); - for (var i = 0; i < columns.length; i++) { - columns[i].forEach(function (val) { - assert.isTrue(val.indexOf(i + 1) !== -1); - }); - } - } - }, - "the arrayLengths() method": { - "with a set of strings": { - "should respond with a list of the longest elements": function () { - var lengths, rows = [ - ["1a", "2a", "3a", "4a"], - ["1b", "2bb", "3b", "4b"], - ["1c", "2c", "3ccc", "4c"], - ["1d", "2d", "3dd", "4dddd"] - ]; - - lengths = cliff.arrayLengths(rows); - assert.equal(lengths[0], 2); - assert.equal(lengths[1], 3); - assert.equal(lengths[2], 4); - assert.equal(lengths[3], 5); - } - }, - "with a set of numbers and strings": { - "should respond with a list of the longest elements": function () { - var lengths, rows = [ - [11, "2a", "3a", "4a"], - ["1b", 222, "3b", "4b"], - ["1c", "2c", 3333, "4c"], - ["1d", "2d", "3dd", 44444] - ]; - - lengths = cliff.arrayLengths(rows); - assert.equal(lengths[0], 2); - assert.equal(lengths[1], 3); - assert.equal(lengths[2], 4); - assert.equal(lengths[3], 5); - } - } - }, - "the stringifyRows() method": { - "should calculate padding correctly for numbers": function() { - var rows = [ - ['a', 'b'], - [12345, 1] - ]; - - assert.equal( - cliff.stringifyRows(rows), - 'a b \n12345 1 ' - ); - } - } - } -}).export(module); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/eventemitter2/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/eventemitter2/README.md deleted file mode 100644 index e1f6edd6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/eventemitter2/README.md +++ /dev/null @@ -1,248 +0,0 @@ -[![build-status](https://www.codeship.io/projects/3ad58940-4c7d-0131-15d5-5a8cd3f550f8/status)](https://www.codeship.io/projects/11259) - -# SYNOPSIS - -EventEmitter2 is an implementation of the EventEmitter found in Node.js - -# DESCRIPTION - -### FEATURES - - Namespaces/Wildcards. - - Times To Listen (TTL), extends the `once` concept with `many`. - - Browser environment compatibility. - - Demonstrates good performance in benchmarks - -``` -EventEmitterHeatUp x 3,728,965 ops/sec \302\2610.68% (60 runs sampled) -EventEmitter x 2,822,904 ops/sec \302\2610.74% (63 runs sampled) -EventEmitter2 x 7,251,227 ops/sec \302\2610.55% (58 runs sampled) -EventEmitter2 (wild) x 3,220,268 ops/sec \302\2610.44% (65 runs sampled) -Fastest is EventEmitter2 -``` - -### Differences (Non breaking, compatible with existing EventEmitter) - - - The constructor takes a configuration object. - -```javascript - var EventEmitter2 = require('eventemitter2').EventEmitter2; - var server = new EventEmitter2({ - - // - // use wildcards. - // - wildcard: true, - - // - // the delimiter used to segment namespaces, defaults to `.`. - // - delimiter: '::', - - // - // if you want to emit the newListener event set to true. - // - newListener: false, - - // - // max listeners that can be assigned to an event, default 10. - // - maxListeners: 20 - }); -``` - - - Getting the actual event that fired. - -```javascript - server.on('foo.*', function(value1, value2) { - console.log(this.event, value1, value2); - }); -``` - - - Fire an event N times and then remove it, an extension of the `once` concept. - -```javascript - server.many('foo', 4, function() { - console.log('hello'); - }); -``` - - - Pass in a namespaced event as an array rather than a delimited string. - -```javascript - server.many(['foo', 'bar', 'bazz'], function() { - console.log('hello'); - }); -``` - - -# API - -When an `EventEmitter` instance experiences an error, the typical action is -to emit an `error` event. Error events are treated as a special case. -If there is no listener for it, then the default action is to print a stack -trace and exit the program. - -All EventEmitters emit the event `newListener` when new listeners are -added. - - -**Namespaces** with **Wildcards** -To use namespaces/wildcards, pass the `wildcard` option into the EventEmitter -constructor. When namespaces/wildcards are enabled, events can either be -strings (`foo.bar`) separated by a delimiter or arrays (`['foo', 'bar']`). The -delimiter is also configurable as a constructor option. - -An event name passed to any event emitter method can contain a wild card (the -`*` character). If the event name is a string, a wildcard may appear as `foo.*`. -If the event name is an array, the wildcard may appear as `['foo', '*']`. - -If either of the above described events were passed to the `on` method, -subsequent emits such as the following would be observed... - -```javascript - emitter.emit('foo.bazz'); - emitter.emit(['foo', 'bar']); -``` - - -### emitter.addListener(event, listener) -### emitter.on(event, listener) - -Adds a listener to the end of the listeners array for the specified event. - -```javascript - server.on('data', function(value1, value2, value3, ...) { - console.log('The event was raised!'); - }); -``` - -```javascript - server.on('data', function(value) { - console.log('The event was raised!'); - }); -``` - -### emitter.onAny(listener) - -Adds a listener that will be fired when any event is emitted. - -```javascript - server.onAny(function(value) { - console.log('All events trigger this.'); - }); -``` - -### emitter.offAny(listener) - -Removes the listener that will be fired when any event is emitted. - -```javascript - server.offAny(function(value) { - console.log('The event was raised!'); - }); -``` - -#### emitter.once(event, listener) - -Adds a **one time** listener for the event. The listener is invoked -only the first time the event is fired, after which it is removed. - -```javascript - server.once('get', function (value) { - console.log('Ah, we have our first value!'); - }); -``` - -### emitter.many(event, timesToListen, listener) - -Adds a listener that will execute **n times** for the event before being -removed. The listener is invoked only the first **n times** the event is -fired, after which it is removed. - -```javascript - server.many('get', 4, function (value) { - console.log('This event will be listened to exactly four times.'); - }); -``` - - -### emitter.removeListener(event, listener) -### emitter.off(event, listener) - -Remove a listener from the listener array for the specified event. -**Caution**: changes array indices in the listener array behind the listener. - -```javascript - var callback = function(value) { - console.log('someone connected!'); - }; - server.on('get', callback); - // ... - server.removeListener('get', callback); -``` - - -### emitter.removeAllListeners([event]) - -Removes all listeners, or those of the specified event. - - -### emitter.setMaxListeners(n) - -By default EventEmitters will print a warning if more than 10 listeners -are added to it. This is a useful default which helps finding memory leaks. -Obviously not all Emitters should be limited to 10. This function allows -that to be increased. Set to zero for unlimited. - - -### emitter.listeners(event) - -Returns an array of listeners for the specified event. This array can be -manipulated, e.g. to remove listeners. - -```javascript - server.on('get', function(value) { - console.log('someone connected!'); - }); - console.log(server.listeners('get')); // [ [Function] ] -``` - -### emitter.listenersAny() - -Returns an array of listeners that are listening for any event that is -specified. This array can be manipulated, e.g. to remove listeners. - -```javascript - server.onAny(function(value) { - console.log('someone connected!'); - }); - console.log(server.listenersAny()[0]); // [ [Function] ] -``` - -### emitter.emit(event, [arg1], [arg2], [...]) - -Execute each of the listeners that may be listening for the specified event -name in order with the list of arguments. - -# LICENSE - -(The MIT License) - -Copyright (c) 2011 hij1nx - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/eventemitter2/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/eventemitter2/index.js deleted file mode 100644 index 6f583b5f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/eventemitter2/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/eventemitter2'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/eventemitter2/lib/eventemitter2.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/eventemitter2/lib/eventemitter2.js deleted file mode 100644 index bde69e85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/eventemitter2/lib/eventemitter2.js +++ /dev/null @@ -1,573 +0,0 @@ -/*! - * EventEmitter2 - * https://github.com/hij1nx/EventEmitter2 - * - * Copyright (c) 2013 hij1nx - * Licensed under the MIT license. - */ -;!function(undefined) { - - var isArray = Array.isArray ? Array.isArray : function _isArray(obj) { - return Object.prototype.toString.call(obj) === "[object Array]"; - }; - var defaultMaxListeners = 10; - - function init() { - this._events = {}; - if (this._conf) { - configure.call(this, this._conf); - } - } - - function configure(conf) { - if (conf) { - - this._conf = conf; - - conf.delimiter && (this.delimiter = conf.delimiter); - conf.maxListeners && (this._events.maxListeners = conf.maxListeners); - conf.wildcard && (this.wildcard = conf.wildcard); - conf.newListener && (this.newListener = conf.newListener); - - if (this.wildcard) { - this.listenerTree = {}; - } - } - } - - function EventEmitter(conf) { - this._events = {}; - this.newListener = false; - configure.call(this, conf); - } - - // - // Attention, function return type now is array, always ! - // It has zero elements if no any matches found and one or more - // elements (leafs) if there are matches - // - function searchListenerTree(handlers, type, tree, i) { - if (!tree) { - return []; - } - var listeners=[], leaf, len, branch, xTree, xxTree, isolatedBranch, endReached, - typeLength = type.length, currentType = type[i], nextType = type[i+1]; - if (i === typeLength && tree._listeners) { - // - // If at the end of the event(s) list and the tree has listeners - // invoke those listeners. - // - if (typeof tree._listeners === 'function') { - handlers && handlers.push(tree._listeners); - return [tree]; - } else { - for (leaf = 0, len = tree._listeners.length; leaf < len; leaf++) { - handlers && handlers.push(tree._listeners[leaf]); - } - return [tree]; - } - } - - if ((currentType === '*' || currentType === '**') || tree[currentType]) { - // - // If the event emitted is '*' at this part - // or there is a concrete match at this patch - // - if (currentType === '*') { - for (branch in tree) { - if (branch !== '_listeners' && tree.hasOwnProperty(branch)) { - listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i+1)); - } - } - return listeners; - } else if(currentType === '**') { - endReached = (i+1 === typeLength || (i+2 === typeLength && nextType === '*')); - if(endReached && tree._listeners) { - // The next element has a _listeners, add it to the handlers. - listeners = listeners.concat(searchListenerTree(handlers, type, tree, typeLength)); - } - - for (branch in tree) { - if (branch !== '_listeners' && tree.hasOwnProperty(branch)) { - if(branch === '*' || branch === '**') { - if(tree[branch]._listeners && !endReached) { - listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], typeLength)); - } - listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i)); - } else if(branch === nextType) { - listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i+2)); - } else { - // No match on this one, shift into the tree but not in the type array. - listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i)); - } - } - } - return listeners; - } - - listeners = listeners.concat(searchListenerTree(handlers, type, tree[currentType], i+1)); - } - - xTree = tree['*']; - if (xTree) { - // - // If the listener tree will allow any match for this part, - // then recursively explore all branches of the tree - // - searchListenerTree(handlers, type, xTree, i+1); - } - - xxTree = tree['**']; - if(xxTree) { - if(i < typeLength) { - if(xxTree._listeners) { - // If we have a listener on a '**', it will catch all, so add its handler. - searchListenerTree(handlers, type, xxTree, typeLength); - } - - // Build arrays of matching next branches and others. - for(branch in xxTree) { - if(branch !== '_listeners' && xxTree.hasOwnProperty(branch)) { - if(branch === nextType) { - // We know the next element will match, so jump twice. - searchListenerTree(handlers, type, xxTree[branch], i+2); - } else if(branch === currentType) { - // Current node matches, move into the tree. - searchListenerTree(handlers, type, xxTree[branch], i+1); - } else { - isolatedBranch = {}; - isolatedBranch[branch] = xxTree[branch]; - searchListenerTree(handlers, type, { '**': isolatedBranch }, i+1); - } - } - } - } else if(xxTree._listeners) { - // We have reached the end and still on a '**' - searchListenerTree(handlers, type, xxTree, typeLength); - } else if(xxTree['*'] && xxTree['*']._listeners) { - searchListenerTree(handlers, type, xxTree['*'], typeLength); - } - } - - return listeners; - } - - function growListenerTree(type, listener) { - - type = typeof type === 'string' ? type.split(this.delimiter) : type.slice(); - - // - // Looks for two consecutive '**', if so, don't add the event at all. - // - for(var i = 0, len = type.length; i+1 < len; i++) { - if(type[i] === '**' && type[i+1] === '**') { - return; - } - } - - var tree = this.listenerTree; - var name = type.shift(); - - while (name) { - - if (!tree[name]) { - tree[name] = {}; - } - - tree = tree[name]; - - if (type.length === 0) { - - if (!tree._listeners) { - tree._listeners = listener; - } - else if(typeof tree._listeners === 'function') { - tree._listeners = [tree._listeners, listener]; - } - else if (isArray(tree._listeners)) { - - tree._listeners.push(listener); - - if (!tree._listeners.warned) { - - var m = defaultMaxListeners; - - if (typeof this._events.maxListeners !== 'undefined') { - m = this._events.maxListeners; - } - - if (m > 0 && tree._listeners.length > m) { - - tree._listeners.warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - tree._listeners.length); - console.trace(); - } - } - } - return true; - } - name = type.shift(); - } - return true; - } - - // By default EventEmitters will print a warning if more than - // 10 listeners are added to it. This is a useful default which - // helps finding memory leaks. - // - // Obviously not all Emitters should be limited to 10. This function allows - // that to be increased. Set to zero for unlimited. - - EventEmitter.prototype.delimiter = '.'; - - EventEmitter.prototype.setMaxListeners = function(n) { - this._events || init.call(this); - this._events.maxListeners = n; - if (!this._conf) this._conf = {}; - this._conf.maxListeners = n; - }; - - EventEmitter.prototype.event = ''; - - EventEmitter.prototype.once = function(event, fn) { - this.many(event, 1, fn); - return this; - }; - - EventEmitter.prototype.many = function(event, ttl, fn) { - var self = this; - - if (typeof fn !== 'function') { - throw new Error('many only accepts instances of Function'); - } - - function listener() { - if (--ttl === 0) { - self.off(event, listener); - } - fn.apply(this, arguments); - } - - listener._origin = fn; - - this.on(event, listener); - - return self; - }; - - EventEmitter.prototype.emit = function() { - - this._events || init.call(this); - - var type = arguments[0]; - - if (type === 'newListener' && !this.newListener) { - if (!this._events.newListener) { return false; } - } - - // Loop through the *_all* functions and invoke them. - if (this._all) { - var l = arguments.length; - var args = new Array(l - 1); - for (var i = 1; i < l; i++) args[i - 1] = arguments[i]; - for (i = 0, l = this._all.length; i < l; i++) { - this.event = type; - this._all[i].apply(this, args); - } - } - - // If there is no 'error' event listener then throw. - if (type === 'error') { - - if (!this._all && - !this._events.error && - !(this.wildcard && this.listenerTree.error)) { - - if (arguments[1] instanceof Error) { - throw arguments[1]; // Unhandled 'error' event - } else { - throw new Error("Uncaught, unspecified 'error' event."); - } - return false; - } - } - - var handler; - - if(this.wildcard) { - handler = []; - var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice(); - searchListenerTree.call(this, handler, ns, this.listenerTree, 0); - } - else { - handler = this._events[type]; - } - - if (typeof handler === 'function') { - this.event = type; - if (arguments.length === 1) { - handler.call(this); - } - else if (arguments.length > 1) - switch (arguments.length) { - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - var l = arguments.length; - var args = new Array(l - 1); - for (var i = 1; i < l; i++) args[i - 1] = arguments[i]; - handler.apply(this, args); - } - return true; - } - else if (handler) { - var l = arguments.length; - var args = new Array(l - 1); - for (var i = 1; i < l; i++) args[i - 1] = arguments[i]; - - var listeners = handler.slice(); - for (var i = 0, l = listeners.length; i < l; i++) { - this.event = type; - listeners[i].apply(this, args); - } - return (listeners.length > 0) || !!this._all; - } - else { - return !!this._all; - } - - }; - - EventEmitter.prototype.on = function(type, listener) { - - if (typeof type === 'function') { - this.onAny(type); - return this; - } - - if (typeof listener !== 'function') { - throw new Error('on only accepts instances of Function'); - } - this._events || init.call(this); - - // To avoid recursion in the case that type == "newListeners"! Before - // adding it to the listeners, first emit "newListeners". - this.emit('newListener', type, listener); - - if(this.wildcard) { - growListenerTree.call(this, type, listener); - return this; - } - - if (!this._events[type]) { - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - } - else if(typeof this._events[type] === 'function') { - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - } - else if (isArray(this._events[type])) { - // If we've already got an array, just append. - this._events[type].push(listener); - - // Check for listener leak - if (!this._events[type].warned) { - - var m = defaultMaxListeners; - - if (typeof this._events.maxListeners !== 'undefined') { - m = this._events.maxListeners; - } - - if (m > 0 && this._events[type].length > m) { - - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - console.trace(); - } - } - } - return this; - }; - - EventEmitter.prototype.onAny = function(fn) { - - if (typeof fn !== 'function') { - throw new Error('onAny only accepts instances of Function'); - } - - if(!this._all) { - this._all = []; - } - - // Add the function to the event listener collection. - this._all.push(fn); - return this; - }; - - EventEmitter.prototype.addListener = EventEmitter.prototype.on; - - EventEmitter.prototype.off = function(type, listener) { - if (typeof listener !== 'function') { - throw new Error('removeListener only takes instances of Function'); - } - - var handlers,leafs=[]; - - if(this.wildcard) { - var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice(); - leafs = searchListenerTree.call(this, null, ns, this.listenerTree, 0); - } - else { - // does not use listeners(), so no side effect of creating _events[type] - if (!this._events[type]) return this; - handlers = this._events[type]; - leafs.push({_listeners:handlers}); - } - - for (var iLeaf=0; iLeaf 0) { - fns = this._all; - for(i = 0, l = fns.length; i < l; i++) { - if(fn === fns[i]) { - fns.splice(i, 1); - return this; - } - } - } else { - this._all = []; - } - return this; - }; - - EventEmitter.prototype.removeListener = EventEmitter.prototype.off; - - EventEmitter.prototype.removeAllListeners = function(type) { - if (arguments.length === 0) { - !this._events || init.call(this); - return this; - } - - if(this.wildcard) { - var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice(); - var leafs = searchListenerTree.call(this, null, ns, this.listenerTree, 0); - - for (var iLeaf=0; iLeaf= 0.2.2" - }, - "main": "./lib/eventemitter2.js", - "scripts": { - "test": "nodeunit test/simple/ && nodeunit test/wildcardEvents/", - "benchmark": "node test/perf/benchmark.js" - }, - "files": [ - "lib/eventemitter2.js", - "index.js" - ], - "bugs": { - "url": "https://github.com/hij1nx/EventEmitter2/issues" - }, - "homepage": "https://github.com/hij1nx/EventEmitter2", - "_id": "eventemitter2@0.4.14", - "_shasum": "8f61b75cde012b2e9eb284d4545583b5643b61ab", - "_from": "eventemitter2@0.4.14", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "jasonkuhrt", - "email": "jasonkuhrt@me.com" - }, - "maintainers": [ - { - "name": "hij1nx", - "email": "hij1nx@me.com" - }, - { - "name": "jasonkuhrt", - "email": "jasonkuhrt@me.com" - } - ], - "dist": { - "shasum": "8f61b75cde012b2e9eb284d4545583b5643b61ab", - "tarball": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/.npmignore deleted file mode 100644 index d049acdb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/.npmignore +++ /dev/null @@ -1,10 +0,0 @@ -.DS_Store -config.json -test/fixtures/*.json -!test/fixtures/complete.json -!test/fixtures/malformed.json -!test/fixtures/bom.json -!test/fixtures/no-bom.json -node_modules/ -node_modules/* -npm-debug.log diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/.travis.yml deleted file mode 100644 index 3882f987..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.8 - - 0.10 - - 0.11 - -notifications: - email: - - travis@nodejitsu.com - irc: "irc.freenode.org#nodejitsu" - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/CHANGELOG.md deleted file mode 100644 index 34c1576c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/CHANGELOG.md +++ /dev/null @@ -1,9 +0,0 @@ -# CHANGELOG - -### Version 0.5.0 - -* `nconf.stores.*` is now `nconf.*` -* `nconf.stores` now represents the set of nconf.* Store instances on the nconf object. -* Added `nconf.argv()`, `nconf.env()`, `nconf.file()`, `nconf.overrides()`, `nconf.defaults()`. -* `nconf.system` no longer exists. The `nconf.System` store has been broken into `nconf.Argv`, `nconf.Env` and `nconf.Literal` -* Fixed bugs in hierarchical configuration loading. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/LICENSE deleted file mode 100644 index 1f01e2b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Nodejitsu 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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/README.md deleted file mode 100644 index c0b68150..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/README.md +++ /dev/null @@ -1,274 +0,0 @@ -# nconf [![Build Status](https://secure.travis-ci.org/flatiron/nconf.png)](http://travis-ci.org/flatiron/nconf) - -Hierarchical node.js configuration with files, environment variables, command-line arguments, and atomic object merging. - -## Example -Using nconf is easy; it is designed to be a simple key-value store with support for both local and remote storage. Keys are namespaced and delimited by `:`. Lets dive right into sample usage: - -``` js - var fs = require('fs'), - nconf = require('nconf'); - - // - // Setup nconf to use (in-order): - // 1. Command-line arguments - // 2. Environment variables - // 3. A file located at 'path/to/config.json' - // - nconf.argv() - .env() - .file({ file: 'path/to/config.json' }); - - // - // Set a few variables on `nconf`. - // - nconf.set('database:host', '127.0.0.1'); - nconf.set('database:port', 5984); - - // - // Get the entire database object from nconf. This will output - // { host: '127.0.0.1', port: 5984 } - // - console.log('foo: ' + nconf.get('foo')); - console.log('NODE_ENV: ' + nconf.get('NODE_ENV')); - console.log('database: ' + nconf.get('database')); - - // - // Save the configuration object to disk - // - nconf.save(function (err) { - fs.readFile('path/to/your/config.json', function (err, data) { - console.dir(JSON.parse(data.toString())) - }); - }); -``` - -If you run the above script: - -``` bash - $ NODE_ENV=production sample.js --foo bar -``` - -The output will be: - -``` - foo: bar - NODE_ENV: production - database: { host: '127.0.0.1', port: 5984 } -``` - -## Hierarchical configuration - -Configuration management can get complicated very quickly for even trivial applications running in production. `nconf` addresses this problem by enabling you to setup a hierarchy for different sources of configuration with no defaults. **The order in which you attach these configuration sources determines their priority in the hierarchy.** Lets take a look at the options available to you - - 1. **nconf.argv(options)** Loads `process.argv` using optimist. If `options` is supplied it is passed along to optimist. - 2. **nconf.env(options)** Loads `process.env` into the hierarchy. - 3. **nconf.file(options)** Loads the configuration data at options.file into the hierarchy. - 4. **nconf.defaults(options)** Loads the data in options.store into the hierarchy. - 5. **nconf.overrides(options)** Loads the data in options.store into the hierarchy. - -A sane default for this could be: - -``` js - var nconf = require('nconf'); - - // - // 1. any overrides - // - nconf.overrides({ - 'always': 'be this value' - }); - - // - // 2. `process.env` - // 3. `process.argv` - // - nconf.env().argv(); - - // - // 4. Values in `config.json` - // - nconf.file('/path/to/config.json'); - - // - // Or with a custom name - // - nconf.file('custom', '/path/to/config.json'); - - // - // Or searching from a base directory. - // Note: `name` is optional. - // - nconf.file(name, { - file: 'config.json', - dir: 'search/from/here', - search: true - }); - - // - // 5. Any default values - // - nconf.defaults({ - 'if nothing else': 'use this value' - }); -``` - -## API Documentation - -The top-level of `nconf` is an instance of the `nconf.Provider` abstracts this all for you into a simple API. - -### nconf.add(name, options) -Adds a new store with the specified `name` and `options`. If `options.type` is not set, then `name` will be used instead: - -``` js - nconf.add('user', { type: 'file', file: '/path/to/userconf.json' }); - nconf.add('global', { type: 'file', file: '/path/to/globalconf.json' }); -``` - -### nconf.use(name, options) -Similar to `nconf.add`, except that it can replace an existing store if new options are provided - -``` js - // - // Load a file store onto nconf with the specified settings - // - nconf.use('file', { file: '/path/to/some/config-file.json' }); - - // - // Replace the file store with new settings - // - nconf.use('file', { file: 'path/to/a-new/config-file.json' }); -``` - -### nconf.remove(name) -Removes the store with the specified `name.` The configuration stored at that level will no longer be used for lookup(s). - -``` js - nconf.remove('file'); -``` - -## Storage Engines - -### Memory -A simple in-memory storage engine that stores a nested JSON representation of the configuration. To use this engine, just call `.use()` with the appropriate arguments. All calls to `.get()`, `.set()`, `.clear()`, `.reset()` methods are synchronous since we are only dealing with an in-memory object. - -``` js - nconf.use('memory'); -``` - -### Argv -Responsible for loading the values parsed from `process.argv` by `optimist` into the configuration hierarchy. See the [optimist option docs](https://github.com/substack/node-optimist/#optionskey-opt) for more on the option format. - -``` js - // - // Can optionally also be an object literal to pass to `optimist`. - // - nconf.argv({ - "x": { - alias: 'example', - describe: 'Example description for usage generation', - demand: true, - default: 'some-value' - } - }); -``` - -### Env -Responsible for loading the values parsed from `process.env` into the configuration hierarchy. - -``` js - // - // Can optionally also be an Array of values to limit process.env to. - // - nconf.env(['only', 'load', 'these', 'values', 'from', 'process.env']); - - // - // Can also specify a separator for nested keys (instead of the default ':') - // - nconf.env('__'); - // Get the value of the env variable 'database__host' - var dbHost = nconf.get('database:host'); - - // - // Or use both options - // - nconf.env({ - separator: '__', - whitelist: ['database__host', 'only', 'load', 'these', 'values'] - }); - var dbHost = nconf.get('database:host'); -``` - -### Literal -Loads a given object literal into the configuration hierarchy. Both `nconf.defaults()` and `nconf.overrides()` use the Literal store. - -``` js - nconf.defaults({ - 'some': 'default value' - }); -``` - -### File -Based on the Memory store, but provides additional methods `.save()` and `.load()` which allow you to read your configuration to and from file. As with the Memory store, all method calls are synchronous with the exception of `.save()` and `.load()` which take callback functions. It is important to note that setting keys in the File engine will not be persisted to disk until a call to `.save()` is made. - -``` js - nconf.file('path/to/your/config.json'); - // add multiple files, hierarchically. notice the unique key for each file - nconf.file('user', 'path/to/your/user.json'); - nconf.file('global', 'path/to/your/global.json'); -``` - -The file store is also extensible for multiple file formats, defaulting to `JSON`. To use a custom format, simply pass a format object to the `.use()` method. This object must have `.parse()` and `.stringify()` methods just like the native `JSON` object. - -### Redis -There is a separate Redis-based store available through [nconf-redis][0]. To install and use this store simply: - -``` bash - $ npm install nconf - $ npm install nconf-redis -``` - -Once installing both `nconf` and `nconf-redis`, you must require both modules to use the Redis store: - -``` js - var nconf = require('nconf'); - - // - // Requiring `nconf-redis` will extend the `nconf` - // module. - // - require('nconf-redis'); - - nconf.use('redis', { host: 'localhost', port: 6379, ttl: 60 * 60 * 1000 }); -``` - -## Installation - -### Installing npm (node package manager) -``` - curl http://npmjs.org/install.sh | sh -``` - -### Installing nconf -``` - [sudo] npm install nconf -``` - -## More Documentation -There is more documentation available through docco. I haven't gotten around to making a gh-pages branch so in the meantime if you clone the repository you can view the docs: - -``` - open docs/nconf.html -``` - -## Run Tests -Tests are written in vows and give complete coverage of all APIs and storage engines. - -``` bash - $ npm test -``` - -#### Author: [Charlie Robbins](http://nodejitsu.com) -#### License: MIT - -[0]: http://github.com/indexzero/nconf-redis diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/docco.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/docco.css deleted file mode 100644 index bd541343..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/docco.css +++ /dev/null @@ -1,194 +0,0 @@ -/*--------------------- Layout and Typography ----------------------------*/ -body { - font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; - font-size: 15px; - line-height: 22px; - color: #252519; - margin: 0; padding: 0; -} -a { - color: #261a3b; -} - a:visited { - color: #261a3b; - } -p { - margin: 0 0 15px 0; -} -h4, h5, h6 { - color: #333; - margin: 6px 0 6px 0; - font-size: 13px; -} - h2, h3 { - margin-bottom: 0; - color: #000; - } - h1 { - margin-top: 40px; - margin-bottom: 15px; - color: #000; - } -#container { - position: relative; -} -#background { - position: fixed; - top: 0; left: 525px; right: 0; bottom: 0; - background: #f5f5ff; - border-left: 1px solid #e5e5ee; - z-index: -1; -} -#jump_to, #jump_page { - background: white; - -webkit-box-shadow: 0 0 25px #777; -moz-box-shadow: 0 0 25px #777; - -webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; - font: 10px Arial; - text-transform: uppercase; - cursor: pointer; - text-align: right; -} -#jump_to, #jump_wrapper { - position: fixed; - right: 0; top: 0; - padding: 5px 10px; -} - #jump_wrapper { - padding: 0; - display: none; - } - #jump_to:hover #jump_wrapper { - display: block; - } - #jump_page { - padding: 5px 0 3px; - margin: 0 0 25px 25px; - } - #jump_page .source { - display: block; - padding: 5px 10px; - text-decoration: none; - border-top: 1px solid #eee; - } - #jump_page .source:hover { - background: #f5f5ff; - } - #jump_page .source:first-child { - } -table td { - border: 0; - outline: 0; -} - td.docs, th.docs { - max-width: 450px; - min-width: 450px; - min-height: 5px; - padding: 10px 25px 1px 50px; - overflow-x: hidden; - vertical-align: top; - text-align: left; - } - .docs pre { - margin: 15px 0 15px; - padding-left: 15px; - } - .docs p tt, .docs p code { - background: #f8f8ff; - border: 1px solid #dedede; - font-size: 12px; - padding: 0 0.2em; - } - .pilwrap { - position: relative; - } - .pilcrow { - font: 12px Arial; - text-decoration: none; - color: #454545; - position: absolute; - top: 3px; left: -20px; - padding: 1px 2px; - opacity: 0; - -webkit-transition: opacity 0.2s linear; - } - td.docs:hover .pilcrow { - opacity: 1; - } - td.code, th.code { - padding: 14px 15px 16px 25px; - width: 100%; - vertical-align: top; - background: #f5f5ff; - border-left: 1px solid #e5e5ee; - } - pre, tt, code { - font-size: 12px; line-height: 18px; - font-family: Menlo, Monaco, Consolas, "Lucida Console", monospace; - margin: 0; padding: 0; - } - - -/*---------------------- Syntax Highlighting -----------------------------*/ -td.linenos { background-color: #f0f0f0; padding-right: 10px; } -span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; } -body .hll { background-color: #ffffcc } -body .c { color: #408080; font-style: italic } /* Comment */ -body .err { border: 1px solid #FF0000 } /* Error */ -body .k { color: #954121 } /* Keyword */ -body .o { color: #666666 } /* Operator */ -body .cm { color: #408080; font-style: italic } /* Comment.Multiline */ -body .cp { color: #BC7A00 } /* Comment.Preproc */ -body .c1 { color: #408080; font-style: italic } /* Comment.Single */ -body .cs { color: #408080; font-style: italic } /* Comment.Special */ -body .gd { color: #A00000 } /* Generic.Deleted */ -body .ge { font-style: italic } /* Generic.Emph */ -body .gr { color: #FF0000 } /* Generic.Error */ -body .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -body .gi { color: #00A000 } /* Generic.Inserted */ -body .go { color: #808080 } /* Generic.Output */ -body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -body .gs { font-weight: bold } /* Generic.Strong */ -body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -body .gt { color: #0040D0 } /* Generic.Traceback */ -body .kc { color: #954121 } /* Keyword.Constant */ -body .kd { color: #954121; font-weight: bold } /* Keyword.Declaration */ -body .kn { color: #954121; font-weight: bold } /* Keyword.Namespace */ -body .kp { color: #954121 } /* Keyword.Pseudo */ -body .kr { color: #954121; font-weight: bold } /* Keyword.Reserved */ -body .kt { color: #B00040 } /* Keyword.Type */ -body .m { color: #666666 } /* Literal.Number */ -body .s { color: #219161 } /* Literal.String */ -body .na { color: #7D9029 } /* Name.Attribute */ -body .nb { color: #954121 } /* Name.Builtin */ -body .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -body .no { color: #880000 } /* Name.Constant */ -body .nd { color: #AA22FF } /* Name.Decorator */ -body .ni { color: #999999; font-weight: bold } /* Name.Entity */ -body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -body .nf { color: #0000FF } /* Name.Function */ -body .nl { color: #A0A000 } /* Name.Label */ -body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -body .nt { color: #954121; font-weight: bold } /* Name.Tag */ -body .nv { color: #19469D } /* Name.Variable */ -body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -body .w { color: #bbbbbb } /* Text.Whitespace */ -body .mf { color: #666666 } /* Literal.Number.Float */ -body .mh { color: #666666 } /* Literal.Number.Hex */ -body .mi { color: #666666 } /* Literal.Number.Integer */ -body .mo { color: #666666 } /* Literal.Number.Oct */ -body .sb { color: #219161 } /* Literal.String.Backtick */ -body .sc { color: #219161 } /* Literal.String.Char */ -body .sd { color: #219161; font-style: italic } /* Literal.String.Doc */ -body .s2 { color: #219161 } /* Literal.String.Double */ -body .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -body .sh { color: #219161 } /* Literal.String.Heredoc */ -body .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -body .sx { color: #954121 } /* Literal.String.Other */ -body .sr { color: #BB6688 } /* Literal.String.Regex */ -body .s1 { color: #219161 } /* Literal.String.Single */ -body .ss { color: #19469D } /* Literal.String.Symbol */ -body .bp { color: #954121 } /* Name.Builtin.Pseudo */ -body .vc { color: #19469D } /* Name.Variable.Class */ -body .vg { color: #19469D } /* Name.Variable.Global */ -body .vi { color: #19469D } /* Name.Variable.Instance */ -body .il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf.html deleted file mode 100644 index cb9a1f93..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf.html +++ /dev/null @@ -1,20 +0,0 @@ - nconf.js

      nconf.js

      /*
      - * nconf.js: Top-level include for the nconf module
      - *
      - * (C) 2011, Charlie Robbins
      - *
      - */
      -
      -var fs = require('fs'),
      -    async = require('async'),
      -    common = require('./nconf/common'),
      -    Provider = require('./nconf/provider').Provider,
      -    nconf = module.exports = new Provider();

      Expose the version from the package.json using pkginfo.

      require('pkginfo')(module, 'version');

      Expose the various components included with nconf

      nconf.key           = common.key;
      -nconf.path          = common.path;
      -nconf.loadFiles     = common.loadFiles;
      -nconf.loadFilesSync = common.loadFilesSync;
      -nconf.formats       = require('./nconf/formats');
      -nconf.stores        = require('./nconf/stores');
      -nconf.Provider      = Provider;
      -
      -
      \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/common.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/common.html deleted file mode 100644 index 5c359ce3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/common.html +++ /dev/null @@ -1,85 +0,0 @@ - common.js

      common.js

      /*
      - * utils.js: Utility functions for the nconf module.
      - *
      - * (C) 2011, Charlie Robbins
      - *
      - */
      - 
      -var fs = require('fs'),
      -    async = require('async'),
      -    formats = require('./formats'),
      -    Memory = require('./stores/Memory').Memory;
      -
      -var common = exports;

      function path (key)

      - -

      @key {string} The ':' delimited key to split

      - -

      Returns a fully-qualified path to a nested nconf key.

      common.path = function (key) {
      -  return key.split(':');
      -};

      function key (arguments)

      - -

      Returns a : joined string from the arguments.

      common.key = function () {
      -  return Array.prototype.slice.call(arguments).join(':');
      -};

      function loadFiles (files, callback)

      - -

      @files {Object|Array} List of files (or settings object) to load.

      - -

      @callback {function} Continuation to respond to when complete.

      - -

      Loads all the data in the specified files.

      common.loadFiles = function (files, callback) {
      -  if (!files) {
      -    return callback(null, {});
      -  }
      -
      -  var options = Array.isArray(files) ? { files: files } : files;

      Set the default JSON format if not already -specified

        options.format = options.format || formats.json;
      -
      -  function parseFile (file, next) {
      -    fs.readFile(file, function (err, data) {
      -      return !err 
      -        ? next(null, options.format.parse(data.toString()))
      -        : next(err);
      -    });
      -  }
      -
      -  async.map(files, parseFile, function (err, objs) {
      -    return err ? callback(err) : callback(null, common.merge(objs));
      -  });
      -};

      function loadFilesSync (files)

      - -

      @files {Object|Array} List of files (or settings object) to load.

      - -

      Loads all the data in the specified files synchronously.

      common.loadFilesSync = function (files) {
      -  if (!files) {
      -    return;
      -  }

      Set the default JSON format if not already -specified

        var options = Array.isArray(files) ? { files: files } : files;
      -  options.format = options.format || formats.json;
      -
      -  return common.merge(files.map(function (file) {
      -    return options.format.parse(fs.readFileSync(file, 'utf8'));
      -  }));
      -};

      function merge (objs)

      - -

      @objs {Array} Array of object literals to merge

      - -

      Merges the specified objs using a temporary instance -of stores.Memory.

      common.merge = function (objs) {
      -  var store = new Memory();
      -  
      -  objs.forEach(function (obj) {
      -    Object.keys(obj).forEach(function (key) {
      -      store.merge(key, obj[key]);
      -    });
      -  });
      -  
      -  return store.store;
      -};

      function capitalize (str)

      - -

      @str {string} String to capitalize

      - -

      Capitalizes the specified str.

      common.capitalize = function (str) {
      -  return str && str[0].toUpperCase() + str.slice(1);
      -};
      -
      -
      \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/formats.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/formats.html deleted file mode 100644 index a2ab2f53..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/formats.html +++ /dev/null @@ -1,22 +0,0 @@ - formats.js

      formats.js

      /*
      - * formats.js: Default formats supported by nconf
      - *
      - * (C) 2011, Charlie Robbins
      - *
      - */
      -
      -var ini = require('ini');
      -
      -var formats = exports;

      @json

      - -

      Standard JSON format which pretty prints .stringify().

      formats.json = {
      -  stringify: function (obj) {
      -    return JSON.stringify(obj, null, 2)
      -  },
      -  parse: JSON.parse
      -};

      @ini

      - -

      Standard INI format supplied from the ini module -http://en.wikipedia.org/wiki/INI_file

      formats.ini = ini;
      -
      -
      \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/provider.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/provider.html deleted file mode 100644 index 66c67181..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/provider.html +++ /dev/null @@ -1,378 +0,0 @@ - provider.js

      provider.js

      /*
      - * provider.js: Abstraction providing an interface into pluggable configuration storage.
      - *
      - * (C) 2011, Charlie Robbins
      - *
      - */
      -
      -var async = require('async'),
      -    common = require('./common'),
      -    stores = require('./stores');

      function Provider (options)

      - -

      @options {Object} Options for this instance.

      - -

      Constructor function for the Provider object responsible -for exposing the pluggable storage features of nconf.

      var Provider = exports.Provider = function (options) {
      -  var self = this;  
      -  

      Setup default options for working with stores, -overrides, process.env and process.argv.

        options         = options           || {};
      -  this._overrides = options.overrides || null;
      -  this._argv      = options.argv      || false;
      -  this._env       = options.env       || false;
      -  this._reserved  = Object.keys(Provider.prototype);
      -  this._stores    = [];
      -  

      Add the default system store for working with -overrides, process.env, process.argv and -a simple in-memory objects.

        this.add('system', options);
      -  
      -  if (options.type) {
      -    this.add(options.type, options);
      -  }
      -  else if (options.store) {
      -    this.add(options.store.name || options.store.type, options.store);
      -  }
      -  else if (options.stores) {
      -    Object.keys(options.stores).forEach(function (store) {
      -      self.add(store.name || store.type, store);
      -    });
      -  }
      -};

      function use (name, options)

      - -

      @type {string} Type of the nconf store to use.

      - -

      @options {Object} Options for the store instance.

      - -

      Adds (or replaces) a new store with the specified name -and options. If options.type is not set, then name -will be used instead:

      - -

      provider.use('file'); - provider.use('file', { type: 'file', filename: '/path/to/userconf' })

      Provider.prototype.use = function (name, options) {
      -  if (name === 'system') {
      -    return;
      -  }
      -  else if (this._reserved.indexOf(name) !== -1) {
      -    throw new Error('Cannot use reserved name: ' + name);
      -  }
      -  
      -  options  = options      || {};
      -  var type = options.type || name;
      -
      -  function sameOptions (store) {
      -    return Object.keys(options).every(function (key) {
      -      return options[key] === store[key];
      -    });
      -  }
      -  
      -  var store = this[name],
      -      update = store && !sameOptions(store);
      -  
      -  if (!store || update) {
      -    if (update) {
      -      this.remove(name);
      -    }
      -    
      -    this.add(name, options);
      -  }
      -  
      -  return this;
      -};

      function add (name, options)

      - -

      @name {string} Name of the store to add to this instance

      - -

      @options {Object} Options for the store to create

      - -

      Adds a new store with the specified name and options. If options.type -is not set, then name will be used instead:

      - -

      provider.add('memory'); - provider.add('userconf', { type: 'file', filename: '/path/to/userconf' })

      Provider.prototype.add = function (name, options) {
      -  if (this._reserved.indexOf(name) !== -1) {
      -    throw new Error('Cannot use reserved name: ' + name);
      -  }
      -  
      -  options  = options      || {};
      -  var type = options.type || name;
      -  
      -  if (Object.keys(stores).indexOf(common.capitalize(type)) === -1) {
      -    throw new Error('Cannot add store with unknown type: ' + type);
      -  }
      -  
      -  this[name] = this.create(type, options);
      -  this._stores.push(name);
      -  
      -  if (this[name].loadSync) {
      -    this[name].loadSync();
      -  }
      -};

      function remove (name)

      - -

      @name {string} Name of the store to remove from this instance

      - -

      Removes a store with the specified name from this instance. Users -are allowed to pass in a type argument (e.g. memory) as name if -this was used in the call to .add().

      Provider.prototype.remove = function (name) {
      -  if (this._reserved.indexOf(name) !== -1) {
      -    throw new Error('Cannot use reserved name: ' + name);
      -  }
      -  else if (!this[name]) {
      -    throw new Error('Cannot remove store that does not exist: ' + name);
      -  }
      -  
      -  delete this[name];
      -  this._stores.splice(this._stores.indexOf(name), 1);
      -};

      function create (type, options)

      - -

      @type {string} Type of the nconf store to use.

      - -

      @options {Object} Options for the store instance.

      - -

      Creates a store of the specified type using the -specified options.

      Provider.prototype.create = function (type, options) {
      -  return new stores[common.capitalize(type.toLowerCase())](options);
      -};

      function get (key, callback)

      - -

      @key {string} Key to retrieve for this instance.

      - -

      @callback {function} Optional Continuation to respond to when complete.

      - -

      Retrieves the value for the specified key (if any).

      Provider.prototype.get = function (key, callback) {

      If there is no callback we can short-circuit into the default -logic for traversing stores.

        if (!callback) {
      -    return this._execute('get', 1, key, callback);
      -  }
      -  

      Otherwise the asynchronous, hierarchical get is -slightly more complicated because we do not need to traverse -the entire set of stores, but up until there is a defined value.

        var current = 0,
      -      self = this,
      -      response;
      -      
      -  async.whilst(function () {
      -    return typeof response === 'undefined' && current < self._stores.length;
      -  }, function (next) {
      -    var store = self[self._stores[current]];
      -    current++;
      -    
      -    if (store.get.length >= 2) {
      -      return store.get(key, function (err, value) {
      -        if (err) {
      -          return next(err);
      -        }
      -        
      -        response = value;
      -        next();
      -      });
      -    }
      -    
      -    response = store.get(key);
      -    next();
      -  }, function (err) {
      -    return err ? callback(err) : callback(null, response);
      -  });
      -};

      function set (key, value, callback)

      - -

      @key {string} Key to set in this instance

      - -

      @value {literal|Object} Value for the specified key

      - -

      @callback {function} Optional Continuation to respond to when complete.

      - -

      Sets the value for the specified key in this instance.

      Provider.prototype.set = function (key, value, callback) {
      -  return this._execute('set', 2, key, value, callback);
      -};

      function reset (callback)

      - -

      @callback {function} Optional Continuation to respond to when complete.

      - -

      Clears all keys associated with this instance.

      Provider.prototype.reset = function (callback) {
      -  return this._execute('reset', 0, callback);  
      -};

      function clear (key, callback)

      - -

      @key {string} Key to remove from this instance

      - -

      @callback {function} Optional Continuation to respond to when complete.

      - -

      Removes the value for the specified key from this instance.

      Provider.prototype.clear = function (key, callback) {
      -  return this._execute('clear', 1, key, callback);
      -};

      function merge ([key,] value [, callback])

      - -

      @key {string} Key to merge the value into

      - -

      @value {literal|Object} Value to merge into the key

      - -

      @callback {function} Optional Continuation to respond to when complete.

      - -

      Merges the properties in value into the existing object value at key.

      - -
        -
      1. If the existing value key is not an Object, it will be completely overwritten.
      2. -
      3. If key is not supplied, then the value will be merged into the root.
      4. -
      Provider.prototype.merge = function () {
      -  var self = this,
      -      args = Array.prototype.slice.call(arguments),
      -      callback = typeof args[args.length - 1] === 'function' && args.pop(),
      -      value = args.pop(),
      -      key = args.pop();
      -      
      -  function mergeProperty (prop, next) {
      -    return self._execute('merge', 2, prop, value[prop], next);
      -  }
      -      
      -  if (!key) {
      -    if (Array.isArray(value) || typeof value !== 'object') {
      -      return onError(new Error('Cannot merge non-Object into top-level.'), callback);
      -    }
      -    
      -    return async.forEach(Object.keys(value), mergeProperty, callback || function () { })
      -  }
      -  
      -  return this._execute('merge', 2, key, value, callback);
      -};

      function load (callback)

      - -

      @callback {function} Continuation to respond to when complete.

      - -

      Responds with an Object representing all keys associated in this instance.

      Provider.prototype.load = function (callback) {
      -  var self = this;
      -  
      -  function loadStoreSync(name) {
      -    var store = self[name];
      -    
      -    if (!store.loadSync) {
      -      throw new Error('nconf store ' + store.type + ' has no loadSync() method');
      -    }
      -    
      -    return store.loadSync();
      -  }
      -  
      -  function loadStore(name, next) {
      -    var store = self[name];
      -    
      -    if (!store.load && !store.loadSync) {
      -      return next(new Error('nconf store ' + store.type + ' has no load() method'));
      -    }
      -    
      -    return store.loadSync
      -      ? next(null, store.loadSync())
      -      : store.load(next);
      -  }
      -  

      If we don't have a callback and the current -store is capable of loading synchronously -then do so.

        if (!callback) {
      -    return common.merge(this._stores.map(loadStoreSync));
      -  }
      -  
      -  async.map(this._stores, loadStore, function (err, objs) {
      -    return err ? callback(err) : callback(null, common.merge(objs));
      -  });
      -};

      function save (value, callback)

      - -

      @value {Object} Optional Config object to set for this instance

      - -

      @callback {function} Continuation to respond to when complete.

      - -

      Removes any existing configuration settings that may exist in this -instance and then adds all key-value pairs in value.

      Provider.prototype.save = function (value, callback) {
      -  if (!callback && typeof value === 'function') {
      -    callback = value;
      -    value = null;
      -  }
      -  
      -  var self = this;
      -  
      -  function saveStoreSync(name) {
      -    var store = self[name];
      -    
      -    if (!store.saveSync) {
      -      throw new Error('nconf store ' + store.type + ' has no saveSync() method');
      -    }
      -    
      -    return store.saveSync();
      -  }
      -  
      -  function saveStore(name, next) {
      -    var store = self[name];
      -    
      -    if (!store.save && !store.saveSync) {
      -      return next(new Error('nconf store ' + store.type + ' has no save() method'));
      -    }
      -    
      -    return store.saveSync
      -      ? next(null, store.saveSync())
      -      : store.save(next);
      -  }
      -  

      If we don't have a callback and the current -store is capable of saving synchronously -then do so.

        if (!callback) {
      -    return common.merge(this._stores.map(saveStoreSync));
      -  }
      -  
      -  async.map(this._stores, saveStore, function (err, objs) {
      -    return err ? callback(err) : callback();
      -  });  
      -};

      @private function _execute (action, syncLength, [arguments])

      - -

      @action {string} Action to execute on this.store.

      - -

      @syncLength {number} Function length of the sync version.

      - -

      @arguments {Array} Arguments array to apply to the action

      - -

      Executes the specified action on all stores for this instance, ensuring a callback supplied -to a synchronous store function is still invoked.

      Provider.prototype._execute = function (action, syncLength /* [arguments] */) {
      -  var args = Array.prototype.slice.call(arguments, 2),
      -      callback = typeof args[args.length - 1] === 'function' && args.pop(),
      -      self = this,
      -      response;
      -  
      -  function runAction (name, next) {
      -    var store = self[name]
      -    
      -    return store[action].length > syncLength
      -      ? store[action].apply(store, args.concat(next))
      -      : next(null, store[action].apply(store, args));
      -  }
      -  
      -  if (callback) {
      -    return async.forEach(self._stores, runAction, function (err) {
      -      return err ? callback(err) : callback();
      -    });
      -  }
      -
      -  this._stores.forEach(function (name) {
      -    var store = self[name];
      -    response = store[action].apply(store, args);
      -  });
      -    
      -  return response;
      -}

      @argv {boolean}

      - -

      Gets or sets a property representing overrides which supercede all -other values for this instance.

      Provider.prototype.__defineSetter__('overrides', function (val) { updateSystem.call(this, 'overrides', val) });
      -Provider.prototype.__defineGetter__('overrides', function () { return this._argv });

      @argv {boolean}

      - -

      Gets or sets a property indicating if we should wrap calls to .get -by checking optimist.argv. Can be a boolean or the pass-thru -options for optimist.

      Provider.prototype.__defineSetter__('argv', function (val) { updateSystem.call(this, 'argv', val) });
      -Provider.prototype.__defineGetter__('argv', function () { return this._argv });

      @env {boolean}

      - -

      Gets or sets a property indicating if we should wrap calls to .get -by checking process.env. Can be a boolean or an Array of -environment variables to extract.

      Provider.prototype.__defineSetter__('env', function (val) { updateSystem.call(this, 'env', val) });
      -Provider.prototype.__defineGetter__('env', function () { return this._env });

      Throw the err if a callback is not supplied

      function onError(err, callback) {
      -  if (callback) {
      -    return callback(err);
      -  }
      -  
      -  throw err;
      -}

      Helper function for working with the -default system store for providers.

      function updateSystem(prop, value) {
      -  var system = this['system'];
      -  
      -  if (system[prop] === value) {
      -    return;
      -  }
      -  
      -  value = value || false;
      -  this['_' + prop] = value;
      -  system[prop] = value;
      -  system.loadSync();
      -}
      -
      -
      \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores.html deleted file mode 100644 index d7999668..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores.html +++ /dev/null @@ -1,19 +0,0 @@ - stores.js

      stores.js

      /*
      - * stores.js: Top-level include for all nconf stores
      - *
      - * (C) 2011, Charlie Robbins
      - *
      - */
      - 
      -var fs = require('fs'),
      -    common = require('./common'),
      -    stores = exports;

      Setup all stores as lazy-loaded getters.

      fs.readdirSync(__dirname + '/stores').forEach(function (file) {
      -  var store = file.replace('.js', ''),
      -      name  = common.capitalize(store);
      -      
      -  stores.__defineGetter__(name, function () {
      -    return require('./stores/' + store)[name];
      -  });
      -});
      -
      -
      \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores/file.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores/file.html deleted file mode 100644 index 7a007655..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores/file.html +++ /dev/null @@ -1,170 +0,0 @@ - file.js

      file.js

      /*
      - * file.js: Simple file storage engine for nconf files
      - *
      - * (C) 2011, Charlie Robbins
      - *
      - */
      -
      -var fs = require('fs'),
      -    path = require('path'),
      -    util = require('util'),
      -    formats = require('../formats'),
      -    Memory = require('./memory').Memory;
      - 

      function File (options)

      - -

      @options {Object} Options for this instance

      - -

      Constructor function for the File nconf store, a simple abstraction -around the Memory store that can persist configuration to disk.

      var File = exports.File = function (options) {
      -  if (!options || !options.file) {
      -    throw new Error ('Missing required option `files`');
      -  }
      -
      -  Memory.call(this, options);
      -
      -  this.type   = 'file';
      -  this.file   = options.file;
      -  this.dir    = options.dir    || process.cwd();
      -  this.format = options.format || formats.json;
      -};

      Inherit from the Memory store

      util.inherits(File, Memory);

      function save (value, callback)

      - -

      @value {Object} Ignored Left here for consistency

      - -

      @callback {function} Continuation to respond to when complete.

      - -

      Saves the current configuration object to disk at this.file -using the format specified by this.format.

      File.prototype.save = function (value, callback) {
      -  if (!callback) {
      -    callback = value;
      -    value = null;
      -  }
      -  
      -  fs.writeFile(this.file, this.format.stringify(this.store), function (err) {
      -    return err ? callback(err) : callback();
      -  });
      -};

      function saveSync (value, callback)

      - -

      @value {Object} Ignored Left here for consistency

      - -

      @callback {function} Optional Continuation to respond to when complete.

      - -

      Saves the current configuration object to disk at this.file -using the format specified by this.format synchronously.

      File.prototype.saveSync = function (value) {
      -  try {
      -    fs.writeFileSync(this.file, this.format.stringify(this.store));
      -  }
      -  catch (ex) {
      -    throw(ex);
      -  }
      -};

      function load (callback)

      - -

      @callback {function} Continuation to respond to when complete.

      - -

      Responds with an Object representing all keys associated in this instance.

      File.prototype.load = function (callback) {
      -  var self = this;
      -
      -  path.exists(self.file, function (exists) {
      -    if (!exists) {

      If the path we are attempting to load doesn't exist, create it

            self.save({}, function (err) {
      -        self.store = {};
      -        return callback(err, self.store);
      -      });
      -    }
      -    else {

      Else, the path exists, read it from disk

            fs.readFile(self.file, function (err, data) {
      -        if (err) {
      -          return callback(err);
      -        }
      -        
      -        try {
      -          self.store = self.format.parse(data.toString());
      -        }
      -        catch (ex) {
      -          return callback(new Error("Error parsing your JSON configuration file."));
      -        }
      -        
      -        callback(null, self.store);
      -      });
      -    }
      -  });
      -};

      function load (callback)

      - -

      @callback {function} Optional Continuation to respond to when complete.

      - -

      Attempts to load the data stored in this.file synchronously and responds appropriately.

      File.prototype.loadSync = function () {
      -  var data, self = this;
      -
      -  if (!path.existsSync(self.file)) {

      If the path we are attempting to load doesn't exist, create it

          self.saveSync({});
      -    self.store = {};
      -    data = {};
      -  }
      -  else {

      Else, the path exists, read it from disk

          try {
      -      data = this.format.parse(fs.readFileSync(this.file, 'utf8'));
      -      this.store = data;
      -    }
      -    catch (ex) {
      -      throw new Error("Error parsing your JSON configuration file.")
      -    }
      -  }
      -
      -  return data;
      -};

      function search (base)

      - -

      @base {string} Base directory (or file) to begin searching for the target file.

      - -

      Attempts to find this.file by iteratively searching up the -directory structure

      File.prototype.search = function (base) {
      -  var looking = true,
      -      fullpath,
      -      previous,
      -      stats;
      -
      -  base = base || process.cwd();
      -
      -  if (this.file[0] === '/') {

      If filename for this instance is a fully qualified path -(i.e. it starts with a '/') then check if it exists

          try {
      -      stats = fs.statSync(fs.realpathSync(this.file));
      -      if (stats.isFile()) {
      -        fullpath = this.file;
      -        looking = false;
      -      }
      -    }
      -    catch (ex) {

      Ignore errors

          }
      -  }
      -
      -  if (looking && base) {

      Attempt to stat the realpath located at base -if the directory does not exist then return false.

          try {
      -      var stat = fs.statSync(fs.realpathSync(base));
      -      looking = stat.isDirectory();
      -    }
      -    catch (ex) {
      -      return false;
      -    }
      -  }
      -  
      -  while (looking) {

      Iteratively look up the directory structure from base

          try {
      -      stats = fs.statSync(fs.realpathSync(fullpath = path.join(base, this.file)));
      -      looking = stats.isDirectory();
      -    }
      -    catch (ex) {
      -      previous = base;
      -      base = path.dirname(base);
      -
      -      if (previous === base) {

      If we've reached the top of the directory structure then simply use -the default file path.

              try {
      -          stats = fs.statSync(fs.realpathSync(fullpath = path.join(this.dir, this.file)));
      -          if (stats.isDirectory()) {
      -            fullpath = undefined;
      -          }
      -        }
      -        catch (ex) {

      Ignore errors

              }
      -        
      -        looking = false;
      -      }
      -    }
      -  }

      Set the file for this instance to the fullpath -that we have found during the search. In the event that -the search was unsuccessful use the original value for this.file.

        this.file = fullpath || this.file;
      -  
      -  return fullpath;
      -};
      -
      -
      \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores/memory.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores/memory.html deleted file mode 100644 index 88673947..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores/memory.html +++ /dev/null @@ -1,143 +0,0 @@ - memory.js

      memory.js

      /*
      - * memory.js: Simple memory storage engine for nconf configuration(s)
      - *
      - * (C) 2011, Charlie Robbins
      - *
      - */
      -
      -var common = require('../common');

      function Memory (options)

      - -

      @options {Object} Options for this instance

      - -

      Constructor function for the Memory nconf store which maintains -a nested json structure based on key delimiters :.

      - -

      e.g. my:nested:key ==> { my: { nested: { key: } } }

      var Memory = exports.Memory = function (options) {
      -  options       = options || {};
      -  this.type     = 'memory';
      -  this.store    = {};
      -  this.mtimes   = {};
      -  this.readOnly = false;
      -  this.loadFrom = options.loadFrom || null;
      -  
      -  if (this.loadFrom) {
      -    this.store = common.loadFilesSync(this.loadFrom);
      -  }
      -};

      function get (key)

      - -

      @key {string} Key to retrieve for this instance.

      - -

      Retrieves the value for the specified key (if any).

      Memory.prototype.get = function (key) {
      -  var target = this.store, 
      -      path   = common.path(key);

      Scope into the object to get the appropriate nested context

        while (path.length > 0) {
      -    key = path.shift();
      -    if (!(target && key in target)) {
      -      return;
      -    }
      -    
      -    target = target[key];
      -    if (path.length === 0) {
      -      return target;
      -    }
      -  }
      -};

      function set (key, value)

      - -

      @key {string} Key to set in this instance

      - -

      @value {literal|Object} Value for the specified key

      - -

      Sets the value for the specified key in this instance.

      Memory.prototype.set = function (key, value) {
      -  if (this.readOnly) {
      -    return false;
      -  }
      -  
      -  var target = this.store, 
      -      path   = common.path(key);
      -  

      Update the mtime (modified time) of the key

        this.mtimes[key] = Date.now();
      -  

      Scope into the object to get the appropriate nested context

        while (path.length > 1) {
      -    key = path.shift();
      -    if (!target[key] || typeof target[key] !== 'object') {
      -      target[key] = {};
      -    }
      -    
      -    target = target[key];
      -  }
      -  

      Set the specified value in the nested JSON structure

        key = path.shift();
      -  target[key] = value;
      -  return true;
      -};

      function clear (key)

      - -

      @key {string} Key to remove from this instance

      - -

      Removes the value for the specified key from this instance.

      Memory.prototype.clear = function (key) {
      -  if (this.readOnly) {
      -    return false;
      -  }
      -  
      -  var target = this.store, 
      -      path   = common.path(key);
      -  

      Remove the key from the set of mtimes (modified times)

        delete this.mtimes[key];
      -  

      Scope into the object to get the appropriate nested context

        while (path.length > 1) {
      -    key = path.shift();
      -    if (!target[key]) {
      -      return;
      -    }
      -    
      -    target = target[key];
      -  }
      -  

      Delete the key from the nested JSON structure

        key = path.shift();
      -  delete target[key];
      -  return true;
      -};

      function merge (key, value)

      - -

      @key {string} Key to merge the value into

      - -

      @value {literal|Object} Value to merge into the key

      - -

      Merges the properties in value into the existing object value -at key. If the existing value key is not an Object, it will be -completely overwritten.

      Memory.prototype.merge = function (key, value) {
      -  if (this.readOnly) {
      -    return false;
      -  }
      -  

      If the key is not an Object or is an Array, -then simply set it. Merging is for Objects.

        if (typeof value !== 'object' || Array.isArray(value)) {
      -    return this.set(key, value);
      -  }
      -  
      -  var self    = this,
      -      target  = this.store, 
      -      path    = common.path(key),
      -      fullKey = key;
      -  

      Update the mtime (modified time) of the key

        this.mtimes[key] = Date.now();
      -  

      Scope into the object to get the appropriate nested context

        while (path.length > 1) {
      -    key = path.shift();
      -    if (!target[key]) {
      -      target[key] = {};
      -    }
      -    
      -    target = target[key];
      -  }

      Set the specified value in the nested JSON structure

        key = path.shift();
      -  

      If the current value at the key target is not an Object, -or is an Array then simply override it because the new value -is an Object.

        if (typeof target[key] !== 'object' || Array.isArray(target[key])) {
      -    target[key] = value;
      -    return true;
      -  }
      -  
      -  return Object.keys(value).every(function (nested) {
      -    return self.merge(fullKey + ':' + nested, value[nested]);
      -  });
      -};

      function reset (callback)

      - -

      Clears all keys associated with this instance.

      Memory.prototype.reset = function () {
      -  if (this.readOnly) {
      -    return false;
      -  }
      -  
      -  this.mtimes = {};
      -  this.store  = {};
      -  return true;
      -};
      -
      -
      \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores/system.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores/system.html deleted file mode 100644 index 9e895449..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/docs/nconf/stores/system.html +++ /dev/null @@ -1,98 +0,0 @@ - system.js

      system.js

      /*
      - * system.js: Simple memory-based store for process environment variables and
      - *            command-line arguments.
      - *
      - * (C) 2011, Charlie Robbins
      - *
      - */
      - 
      -var util = require('util'),
      -    Memory = require('./memory').Memory;
      - 

      function System (options)

      - -

      @options {Object} Options for this instance.

      - -

      Constructor function for the System nconf store, a simple abstraction -around the Memory store that can read process environment variables -and command-line arguments.

      var System = exports.System = function (options) {
      -  options = options || {};
      -  Memory.call(this, options);
      -
      -  this.type      = 'system';
      -  this.overrides = options.overrides || null;
      -  this.env       = options.env       || false;
      -  this.argv      = options.argv      || false;
      -};

      Inherit from the Memory store

      util.inherits(System, Memory);

      function loadSync ()

      - -

      Loads the data passed in from process.env into this instance.

      System.prototype.loadSync = function () {
      -  if (this.env) {
      -    this.loadEnv();
      -  }
      -  
      -  if (this.argv) {
      -    this.loadArgv();
      -  }
      -  
      -  if (this.overrides) {
      -    this.loadOverrides();
      -  }
      -  
      -  return this.store;
      -};

      function loadOverrides ()

      - -

      Loads any overrides set on this instance into -the underlying managed Memory store.

      System.prototype.loadOverrides = function () {
      -  if (!this.overrides) {
      -    return;
      -  }
      -  
      -  var self = this,
      -      keys = Object.keys(this.overrides);
      -  
      -  keys.forEach(function (key) {
      -    self.set(key, self.overrides[key]);
      -  });
      -  
      -  return this.store;
      -};

      function loadArgv ()

      - -

      Loads the data passed in from the command-line arguments -into this instance.

      System.prototype.loadArgv = function () {
      -  var self = this, 
      -      argv;
      -  
      -  if (typeof this.argv === 'object') {
      -    argv = require('optimist').options(this.argv).argv;
      -  }
      -  else if (this.argv) {
      -    argv = require('optimist').argv;
      -  }
      -  
      -  if (!argv) {
      -    return;
      -  }
      -  
      -  Object.keys(argv).forEach(function (key) {
      -    self.set(key, argv[key]);
      -  });
      -  
      -  return this.store;
      -};

      function loadEnv ()

      - -

      Loads the data passed in from process.env into this instance.

      System.prototype.loadEnv = function () {
      -  var self = this;
      -  
      -  if (!this.env) {
      -    return;
      -  }
      -  
      -  Object.keys(process.env).filter(function (key) {
      -    return !self.env.length || self.env.indexOf(key) !== -1;
      -  }).forEach(function (key) {
      -    self.set(key, process.env[key]);
      -  });
      -    
      -  return this.store;
      -};
      -
      -
      \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf.js deleted file mode 100644 index 35271b3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - * nconf.js: Top-level include for the nconf module - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var fs = require('fs'), - async = require('async'), - common = require('./nconf/common'), - Provider = require('./nconf/provider').Provider, - nconf = module.exports = new Provider(); - -// -// Expose the version from the package.json -// -nconf.version = require('../package.json').version; - -// -// Setup all stores as lazy-loaded getters. -// -fs.readdirSync(__dirname + '/nconf/stores').forEach(function (file) { - var store = file.replace('.js', ''), - name = common.capitalize(store); - - nconf.__defineGetter__(name, function () { - return require('./nconf/stores/' + store)[name]; - }); -}); - -// -// Expose the various components included with nconf -// -nconf.key = common.key; -nconf.path = common.path; -nconf.loadFiles = common.loadFiles; -nconf.loadFilesSync = common.loadFilesSync; -nconf.formats = require('./nconf/formats'); -nconf.Provider = Provider; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/common.js deleted file mode 100644 index f7462f65..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/common.js +++ /dev/null @@ -1,113 +0,0 @@ -/* - * utils.js: Utility functions for the nconf module. - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var fs = require('fs'), - async = require('async'), - formats = require('./formats'), - Memory = require('./stores/memory').Memory; - -var common = exports; - -// -// ### function path (key) -// #### @key {string} The ':' delimited key to split -// Returns a fully-qualified path to a nested nconf key. -// If given null or undefined it should return an empty path. -// '' should still be respected as a path. -// -common.path = function (key) { - return key == null ? [] : key.split(':'); -}; - -// -// ### function key (arguments) -// Returns a `:` joined string from the `arguments`. -// -common.key = function () { - return Array.prototype.slice.call(arguments).join(':'); -}; - -// -// ### function loadFiles (files, callback) -// #### @files {Object|Array} List of files (or settings object) to load. -// #### @callback {function} Continuation to respond to when complete. -// Loads all the data in the specified `files`. -// -common.loadFiles = function (files, callback) { - if (!files) { - return callback(null, {}); - } - - var options = Array.isArray(files) ? { files: files } : files; - - // - // Set the default JSON format if not already - // specified - // - options.format = options.format || formats.json; - - function parseFile (file, next) { - fs.readFile(file, function (err, data) { - return !err - ? next(null, options.format.parse(data.toString())) - : next(err); - }); - } - - async.map(options.files, parseFile, function (err, objs) { - return err ? callback(err) : callback(null, common.merge(objs)); - }); -}; - -// -// ### function loadFilesSync (files) -// #### @files {Object|Array} List of files (or settings object) to load. -// Loads all the data in the specified `files` synchronously. -// -common.loadFilesSync = function (files) { - if (!files) { - return; - } - - // - // Set the default JSON format if not already - // specified - // - var options = Array.isArray(files) ? { files: files } : files; - options.format = options.format || formats.json; - - return common.merge(options.files.map(function (file) { - return options.format.parse(fs.readFileSync(file, 'utf8')); - })); -}; - -// -// ### function merge (objs) -// #### @objs {Array} Array of object literals to merge -// Merges the specified `objs` using a temporary instance -// of `stores.Memory`. -// -common.merge = function (objs) { - var store = new Memory(); - - objs.forEach(function (obj) { - Object.keys(obj).forEach(function (key) { - store.merge(key, obj[key]); - }); - }); - - return store.store; -}; - -// -// ### function capitalize (str) -// #### @str {string} String to capitalize -// Capitalizes the specified `str`. -// -common.capitalize = function (str) { - return str && str[0].toUpperCase() + str.slice(1); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/formats.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/formats.js deleted file mode 100644 index f32268c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/formats.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * formats.js: Default formats supported by nconf - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var ini = require('ini'); - -var formats = exports; - -// -// ### @json -// Standard JSON format which pretty prints `.stringify()`. -// -formats.json = { - stringify: function (obj, replacer, spacing) { - return JSON.stringify(obj, replacer || null, spacing || 2) - }, - parse: JSON.parse -}; - -// -// ### @ini -// Standard INI format supplied from the `ini` module -// http://en.wikipedia.org/wiki/INI_file -// -formats.ini = ini; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/provider.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/provider.js deleted file mode 100644 index 413df5f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/provider.js +++ /dev/null @@ -1,565 +0,0 @@ -/* - * provider.js: Abstraction providing an interface into pluggable configuration storage. - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var async = require('async'), - common = require('./common'); - -// -// ### function Provider (options) -// #### @options {Object} Options for this instance. -// Constructor function for the Provider object responsible -// for exposing the pluggable storage features of `nconf`. -// -var Provider = exports.Provider = function (options) { - // - // Setup default options for working with `stores`, - // `overrides`, `process.env` and `process.argv`. - // - options = options || {}; - this.stores = {}; - this.sources = []; - this.init(options); -}; - -// -// Define wrapper functions for using basic stores -// in this instance -// -['argv', 'env'].forEach(function (type) { - Provider.prototype[type] = function (options) { - return this.add(type, options); - }; -}); - -// -// ### function file (key, options) -// #### @key {string|Object} Fully qualified options, name of file store, or path. -// #### @path {string|Object} **Optional** Full qualified options, or path. -// Adds a new `File` store to this instance. Accepts the following options -// -// nconf.file({ file: '.jitsuconf', dir: process.env.HOME, search: true }); -// nconf.file('path/to/config/file'); -// nconf.file('userconfig', 'path/to/config/file'); -// nconf.file('userconfig', { file: '.jitsuconf', search: true }); -// -Provider.prototype.file = function (key, options) { - if (arguments.length == 1) { - options = typeof key === 'string' ? { file: key } : key; - key = 'file'; - } - else { - options = typeof options === 'string' - ? { file: options } - : options; - } - - options.type = 'file'; - return this.add(key, options); -}; - -// -// Define wrapper functions for using -// overrides and defaults -// -['defaults', 'overrides'].forEach(function (type) { - Provider.prototype[type] = function (options) { - options = options || {}; - if (!options.type) { - options.type = 'literal'; - } - - return this.add(type, options); - }; -}); - -// -// ### function use (name, options) -// #### @type {string} Type of the nconf store to use. -// #### @options {Object} Options for the store instance. -// Adds (or replaces) a new store with the specified `name` -// and `options`. If `options.type` is not set, then `name` -// will be used instead: -// -// provider.use('file'); -// provider.use('file', { type: 'file', filename: '/path/to/userconf' }) -// -Provider.prototype.use = function (name, options) { - options = options || {}; - var type = options.type || name; - - function sameOptions (store) { - return Object.keys(options).every(function (key) { - return options[key] === store[key]; - }); - } - - var store = this.stores[name], - update = store && !sameOptions(store); - - if (!store || update) { - if (update) { - this.remove(name); - } - - this.add(name, options); - } - - return this; -}; - -// -// ### function add (name, options) -// #### @name {string} Name of the store to add to this instance -// #### @options {Object} Options for the store to create -// Adds a new store with the specified `name` and `options`. If `options.type` -// is not set, then `name` will be used instead: -// -// provider.add('memory'); -// provider.add('userconf', { type: 'file', filename: '/path/to/userconf' }) -// -Provider.prototype.add = function (name, options) { - options = options || {}; - var type = options.type || name; - - if (!require('../nconf')[common.capitalize(type)]) { - throw new Error('Cannot add store with unknown type: ' + type); - } - - this.stores[name] = this.create(type, options); - - if (this.stores[name].loadSync) { - this.stores[name].loadSync(); - } - - return this; -}; - -// -// ### function remove (name) -// #### @name {string} Name of the store to remove from this instance -// Removes a store with the specified `name` from this instance. Users -// are allowed to pass in a type argument (e.g. `memory`) as name if -// this was used in the call to `.add()`. -// -Provider.prototype.remove = function (name) { - delete this.stores[name]; - return this; -}; - -// -// ### function create (type, options) -// #### @type {string} Type of the nconf store to use. -// #### @options {Object} Options for the store instance. -// Creates a store of the specified `type` using the -// specified `options`. -// -Provider.prototype.create = function (type, options) { - return new (require('../nconf')[common.capitalize(type.toLowerCase())])(options); -}; - -// -// ### function init (options) -// #### @options {Object} Options to initialize this instance with. -// Initializes this instance with additional `stores` or `sources` in the -// `options` supplied. -// -Provider.prototype.init = function (options) { - var self = this; - - // - // Add any stores passed in through the options - // to this instance. - // - if (options.type) { - this.add(options.type, options); - } - else if (options.store) { - this.add(options.store.name || options.store.type, options.store); - } - else if (options.stores) { - Object.keys(options.stores).forEach(function (name) { - var store = options.stores[name]; - self.add(store.name || name || store.type, store); - }); - } - - // - // Add any read-only sources to this instance - // - if (options.source) { - this.sources.push(this.create(options.source.type || options.source.name, options.source)); - } - else if (options.sources) { - Object.keys(options.sources).forEach(function (name) { - var source = options.sources[name]; - self.sources.push(self.create(source.type || source.name || name, source)); - }); - } -}; - -// -// ### function get (key, callback) -// #### @key {string} Key to retrieve for this instance. -// #### @callback {function} **Optional** Continuation to respond to when complete. -// Retrieves the value for the specified key (if any). -// -Provider.prototype.get = function (key, callback) { - // - // If there is no callback we can short-circuit into the default - // logic for traversing stores. - // - if (!callback) { - return this._execute('get', 1, key, callback); - } - - // - // Otherwise the asynchronous, hierarchical `get` is - // slightly more complicated because we do not need to traverse - // the entire set of stores, but up until there is a defined value. - // - var current = 0, - names = Object.keys(this.stores), - self = this, - response, - mergeObjs = []; - - async.whilst(function () { - return typeof response === 'undefined' && current < names.length; - }, function (next) { - var store = self.stores[names[current]]; - current++; - - if (store.get.length >= 2) { - return store.get(key, function (err, value) { - if (err) { - return next(err); - } - - response = value; - - // Merge objects if necessary - if (typeof response === 'object' && !Array.isArray(response)) { - mergeObjs.push(response); - response = undefined; - } - - next(); - }); - } - - response = store.get(key); - - // Merge objects if necessary - if (typeof response === 'object' && !Array.isArray(response)) { - mergeObjs.push(response); - response = undefined; - } - - next(); - }, function (err) { - if (!err && mergeObjs.length) { - response = common.merge(mergeObjs.reverse()); - } - return err ? callback(err) : callback(null, response); - }); -}; - -// -// ### function set (key, value, callback) -// #### @key {string} Key to set in this instance -// #### @value {literal|Object} Value for the specified key -// #### @callback {function} **Optional** Continuation to respond to when complete. -// Sets the `value` for the specified `key` in this instance. -// -Provider.prototype.set = function (key, value, callback) { - return this._execute('set', 2, key, value, callback); -}; - -// -// ### function reset (callback) -// #### @callback {function} **Optional** Continuation to respond to when complete. -// Clears all keys associated with this instance. -// -Provider.prototype.reset = function (callback) { - return this._execute('reset', 0, callback); -}; - -// -// ### function clear (key, callback) -// #### @key {string} Key to remove from this instance -// #### @callback {function} **Optional** Continuation to respond to when complete. -// Removes the value for the specified `key` from this instance. -// -Provider.prototype.clear = function (key, callback) { - return this._execute('clear', 1, key, callback); -}; - -// -// ### function merge ([key,] value [, callback]) -// #### @key {string} Key to merge the value into -// #### @value {literal|Object} Value to merge into the key -// #### @callback {function} **Optional** Continuation to respond to when complete. -// Merges the properties in `value` into the existing object value at `key`. -// -// 1. If the existing value `key` is not an Object, it will be completely overwritten. -// 2. If `key` is not supplied, then the `value` will be merged into the root. -// -Provider.prototype.merge = function () { - var self = this, - args = Array.prototype.slice.call(arguments), - callback = typeof args[args.length - 1] === 'function' && args.pop(), - value = args.pop(), - key = args.pop(); - - function mergeProperty (prop, next) { - return self._execute('merge', 2, prop, value[prop], next); - } - - if (!key) { - if (Array.isArray(value) || typeof value !== 'object') { - return onError(new Error('Cannot merge non-Object into top-level.'), callback); - } - - return async.forEach(Object.keys(value), mergeProperty, callback || function () { }) - } - - return this._execute('merge', 2, key, value, callback); -}; - -// -// ### function load (callback) -// #### @callback {function} Continuation to respond to when complete. -// Responds with an Object representing all keys associated in this instance. -// -Provider.prototype.load = function (callback) { - var self = this; - - function getStores () { - var stores = Object.keys(self.stores); - stores.reverse(); - return stores.map(function (name) { - return self.stores[name]; - }); - } - - function loadStoreSync(store) { - if (!store.loadSync) { - throw new Error('nconf store ' + store.type + ' has no loadSync() method'); - } - - return store.loadSync(); - } - - function loadStore(store, next) { - if (!store.load && !store.loadSync) { - return next(new Error('nconf store ' + store.type + ' has no load() method')); - } - - return store.loadSync - ? next(null, store.loadSync()) - : store.load(next); - } - - function loadBatch (targets, done) { - if (!done) { - return common.merge(targets.map(loadStoreSync)); - } - - async.map(targets, loadStore, function (err, objs) { - return err ? done(err) : done(null, common.merge(objs)); - }); - } - - function mergeSources (data) { - // - // If `data` was returned then merge it into - // the system store. - // - if (data && typeof data === 'object') { - self.use('sources', { - type: 'literal', - store: data - }); - } - } - - function loadSources () { - var sourceHierarchy = self.sources.splice(0); - sourceHierarchy.reverse(); - - // - // If we don't have a callback and the current - // store is capable of loading synchronously - // then do so. - // - if (!callback) { - mergeSources(loadBatch(sourceHierarchy)); - return loadBatch(getStores()); - } - - loadBatch(sourceHierarchy, function (err, data) { - if (err) { - return callback(err); - } - - mergeSources(data); - return loadBatch(getStores(), callback); - }); - } - - return self.sources.length - ? loadSources() - : loadBatch(getStores(), callback); -}; - -// -// ### function save (callback) -// #### @callback {function} **optional** Continuation to respond to when -// complete. -// Instructs each provider to save. If a callback is provided, we will attempt -// asynchronous saves on the providers, falling back to synchronous saves if -// this isn't possible. If a provider does not know how to save, it will be -// ignored. Returns an object consisting of all of the data which was -// actually saved. -// -Provider.prototype.save = function (value, callback) { - if (!callback && typeof value === 'function') { - callback = value; - value = null; - } - - var self = this, - names = Object.keys(this.stores); - - function saveStoreSync(memo, name) { - var store = self.stores[name]; - - // - // If the `store` doesn't have a `saveSync` method, - // just ignore it and continue. - // - if (store.saveSync) { - var ret = store.saveSync(); - if (typeof ret == 'object' && ret !== null) { - memo.push(ret); - } - } - return memo; - } - - function saveStore(memo, name, next) { - var store = self.stores[name]; - - // - // If the `store` doesn't have a `save` or saveSync` - // method(s), just ignore it and continue. - // - - if (store.save) { - return store.save(function (err, data) { - if (err) { - return next(err); - } - - if (typeof data == 'object' && data !== null) { - memo.push(data); - } - - next(null, memo); - }); - } - else if (store.saveSync) { - memo.push(store.saveSync()); - } - - next(null, memo); - } - - // - // If we don't have a callback and the current - // store is capable of saving synchronously - // then do so. - // - if (!callback) { - return common.merge(names.reduce(saveStoreSync, [])); - } - - async.reduce(names, [], saveStore, function (err, objs) { - return err ? callback(err) : callback(null, common.merge(objs)); - }); -}; - -// -// ### @private function _execute (action, syncLength, [arguments]) -// #### @action {string} Action to execute on `this.store`. -// #### @syncLength {number} Function length of the sync version. -// #### @arguments {Array} Arguments array to apply to the action -// Executes the specified `action` on all stores for this instance, ensuring a callback supplied -// to a synchronous store function is still invoked. -// -Provider.prototype._execute = function (action, syncLength /* [arguments] */) { - var args = Array.prototype.slice.call(arguments, 2), - callback = typeof args[args.length - 1] === 'function' && args.pop(), - destructive = ['set', 'clear', 'merge', 'reset'].indexOf(action) !== -1, - self = this, - response, - mergeObjs = []; - - function runAction (name, next) { - var store = self.stores[name]; - - if (destructive && store.readOnly) { - return next(); - } - - return store[action].length > syncLength - ? store[action].apply(store, args.concat(next)) - : next(null, store[action].apply(store, args)); - } - - if (callback) { - return async.forEach(Object.keys(this.stores), runAction, function (err) { - return err ? callback(err) : callback(); - }); - } - - - Object.keys(this.stores).forEach(function (name) { - if (typeof response === 'undefined') { - var store = self.stores[name]; - - if (destructive && store.readOnly) { - return; - } - - response = store[action].apply(store, args); - - // Merge objects if necessary - if (response && action === 'get' && typeof response === 'object' && !Array.isArray(response)) { - mergeObjs.push(response); - response = undefined; - } - } - }); - - if (mergeObjs.length) { - response = common.merge(mergeObjs.reverse()); - } - - return response; -} - -// -// Throw the `err` if a callback is not supplied -// -function onError(err, callback) { - if (callback) { - return callback(err); - } - - throw err; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/argv.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/argv.js deleted file mode 100644 index 3841f7db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/argv.js +++ /dev/null @@ -1,61 +0,0 @@ -/* - * argv.js: Simple memory-based store for command-line arguments. - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var util = require('util'), - Memory = require('./memory').Memory; - -// -// ### function Argv (options) -// #### @options {Object} Options for this instance. -// Constructor function for the Argv nconf store, a simple abstraction -// around the Memory store that can read command-line arguments. -// -var Argv = exports.Argv = function (options) { - Memory.call(this, options); - - this.type = 'argv'; - this.readOnly = true; - this.options = options || false; -}; - -// Inherit from the Memory store -util.inherits(Argv, Memory); - -// -// ### function loadSync () -// Loads the data passed in from `process.argv` into this instance. -// -Argv.prototype.loadSync = function () { - this.loadArgv(); - return this.store; -}; - -// -// ### function loadArgv () -// Loads the data passed in from the command-line arguments -// into this instance. -// -Argv.prototype.loadArgv = function () { - var self = this, - argv; - - argv = typeof this.options === 'object' - ? require('optimist')(process.argv.slice(2)).options(this.options).argv - : require('optimist')(process.argv.slice(2)).argv; - - if (!argv) { - return; - } - - this.readOnly = false; - Object.keys(argv).forEach(function (key) { - self.set(key, argv[key]); - }); - - this.readOnly = true; - return this.store; -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/env.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/env.js deleted file mode 100644 index e73026ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/env.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * env.js: Simple memory-based store for environment variables - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var util = require('util'), - common = require('../common'), - Memory = require('./memory').Memory; - -// -// ### function Env (options) -// #### @options {Object} Options for this instance. -// Constructor function for the Env nconf store, a simple abstraction -// around the Memory store that can read process environment variables. -// -var Env = exports.Env = function (options) { - Memory.call(this, options); - - options = options || {}; - this.type = 'env'; - this.readOnly = true; - this.whitelist = options.whitelist || []; - this.separator = options.separator || ''; - if (options instanceof Array) { - this.whitelist = options; - } - if (typeof(options) === 'string') { - this.separator = options; - } -}; - -// Inherit from the Memory store -util.inherits(Env, Memory); - -// -// ### function loadSync () -// Loads the data passed in from `process.env` into this instance. -// -Env.prototype.loadSync = function () { - this.loadEnv(); - return this.store; -}; - -// -// ### function loadEnv () -// Loads the data passed in from `process.env` into this instance. -// -Env.prototype.loadEnv = function () { - var self = this; - - this.readOnly = false; - Object.keys(process.env).filter(function (key) { - return !self.whitelist.length || self.whitelist.indexOf(key) !== -1; - }).forEach(function (key) { - if (self.separator) { - self.set(common.key.apply(common, key.split(self.separator)), process.env[key]); - } else { - self.set(key, process.env[key]); - } - }); - - this.readOnly = true; - return this.store; -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/file.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/file.js deleted file mode 100644 index 6c1a56f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/file.js +++ /dev/null @@ -1,237 +0,0 @@ -/* - * file.js: Simple file storage engine for nconf files - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var fs = require('fs'), - path = require('path'), - util = require('util'), - formats = require('../formats'), - Memory = require('./memory').Memory, - exists = fs.exists || path.exists, - existsSync = fs.existsSync || path.existsSync; - -// -// ### function File (options) -// #### @options {Object} Options for this instance -// Constructor function for the File nconf store, a simple abstraction -// around the Memory store that can persist configuration to disk. -// -var File = exports.File = function (options) { - if (!options || !options.file) { - throw new Error ('Missing required option `file`'); - } - - Memory.call(this, options); - - this.type = 'file'; - this.file = options.file; - this.dir = options.dir || process.cwd(); - this.format = options.format || formats.json; - this.json_spacing = options.json_spacing || 2; - - if (options.search) { - this.search(this.dir); - } -}; - -// Inherit from the Memory store -util.inherits(File, Memory); - -// -// ### function save (value, callback) -// #### @value {Object} _Ignored_ Left here for consistency -// #### @callback {function} Continuation to respond to when complete. -// Saves the current configuration object to disk at `this.file` -// using the format specified by `this.format`. -// -File.prototype.save = function (value, callback) { - if (!callback) { - callback = value; - value = null; - } - - fs.writeFile(this.file, this.format.stringify(this.store, null, this.json_spacing), function (err) { - return err ? callback(err) : callback(); - }); -}; - -// -// ### function saveSync (value, callback) -// #### @value {Object} _Ignored_ Left here for consistency -// #### @callback {function} **Optional** Continuation to respond to when complete. -// Saves the current configuration object to disk at `this.file` -// using the format specified by `this.format` synchronously. -// -File.prototype.saveSync = function (value) { - try { - fs.writeFileSync(this.file, this.format.stringify(this.store, null, this.json_spacing)); - } - catch (ex) { - throw(ex); - } - return this.store; -}; - -// -// ### function load (callback) -// #### @callback {function} Continuation to respond to when complete. -// Responds with an Object representing all keys associated in this instance. -// -File.prototype.load = function (callback) { - var self = this; - - exists(self.file, function (exists) { - if (!exists) { - return callback(null, {}); - } - - // - // Else, the path exists, read it from disk - // - fs.readFile(self.file, function (err, data) { - if (err) { - return callback(err); - } - - try { - //deals with string that include BOM - var stringData = data.toString(); - - if (stringData.charAt(0) === '\uFEFF') stringData = stringData.substr(1); - self.store = self.format.parse(stringData); - - } - catch (ex) { - return callback(new Error("Error parsing your JSON configuration file: [" + self.file + '].')); - } - - callback(null, self.store); - }); - }); -}; - -// -// ### function loadSync (callback) -// Attempts to load the data stored in `this.file` synchronously -// and responds appropriately. -// -File.prototype.loadSync = function () { - var data, self = this; - - if (!existsSync(self.file)) { - self.store = {}; - data = {}; - } - else { - // - // Else, the path exists, read it from disk - // - try { - //deals with file that include BOM - var fileData = fs.readFileSync(this.file, 'utf8'); - if (fileData.charAt(0) === '\uFEFF') fileData = fileData.substr(1); - - data = this.format.parse(fileData); - this.store = data; - } - catch (ex) { - throw new Error("Error parsing your JSON configuration file: [" + self.file + '].'); - } - } - - return data; -}; - -// -// ### function search (base) -// #### @base {string} Base directory (or file) to begin searching for the target file. -// Attempts to find `this.file` by iteratively searching up the -// directory structure -// -File.prototype.search = function (base) { - var looking = true, - fullpath, - previous, - stats; - - base = base || process.cwd(); - - if (this.file[0] === '/') { - // - // If filename for this instance is a fully qualified path - // (i.e. it starts with a `'/'`) then check if it exists - // - try { - stats = fs.statSync(fs.realpathSync(this.file)); - if (stats.isFile()) { - fullpath = this.file; - looking = false; - } - } - catch (ex) { - // - // Ignore errors - // - } - } - - if (looking && base) { - // - // Attempt to stat the realpath located at `base` - // if the directory does not exist then return false. - // - try { - var stat = fs.statSync(fs.realpathSync(base)); - looking = stat.isDirectory(); - } - catch (ex) { - return false; - } - } - - while (looking) { - // - // Iteratively look up the directory structure from `base` - // - try { - stats = fs.statSync(fs.realpathSync(fullpath = path.join(base, this.file))); - looking = stats.isDirectory(); - } - catch (ex) { - previous = base; - base = path.dirname(base); - - if (previous === base) { - // - // If we've reached the top of the directory structure then simply use - // the default file path. - // - try { - stats = fs.statSync(fs.realpathSync(fullpath = path.join(this.dir, this.file))); - if (stats.isDirectory()) { - fullpath = undefined; - } - } - catch (ex) { - // - // Ignore errors - // - } - - looking = false; - } - } - } - - // - // Set the file for this instance to the fullpath - // that we have found during the search. In the event that - // the search was unsuccessful use the original value for `this.file`. - // - this.file = fullpath || this.file; - - return fullpath; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/literal.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/literal.js deleted file mode 100644 index c7c1752c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/literal.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - * literal.js: Simple literal Object store for nconf. - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var util = require('util'), - Memory = require('./memory').Memory - -var Literal = exports.Literal = function Literal (options) { - Memory.call(this, options); - - options = options || {} - this.type = 'literal'; - this.readOnly = true; - this.store = options.store || options; -}; - -// Inherit from Memory store. -util.inherits(Literal, Memory); - -// -// ### function loadSync (callback) -// Returns the data stored in `this.store` synchronously. -// -Literal.prototype.loadSync = function () { - return this.store; -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/memory.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/memory.js deleted file mode 100644 index c6553c1d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/lib/nconf/stores/memory.js +++ /dev/null @@ -1,224 +0,0 @@ -/* - * memory.js: Simple memory storage engine for nconf configuration(s) - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var common = require('../common'); - -// -// ### function Memory (options) -// #### @options {Object} Options for this instance -// Constructor function for the Memory nconf store which maintains -// a nested json structure based on key delimiters `:`. -// -// e.g. `my:nested:key` ==> `{ my: { nested: { key: } } }` -// -var Memory = exports.Memory = function (options) { - options = options || {}; - this.type = 'memory'; - this.store = {}; - this.mtimes = {}; - this.readOnly = false; - this.loadFrom = options.loadFrom || null; - - if (this.loadFrom) { - this.store = common.loadFilesSync(this.loadFrom); - } -}; - -// -// ### function get (key) -// #### @key {string} Key to retrieve for this instance. -// Retrieves the value for the specified key (if any). -// -Memory.prototype.get = function (key) { - var target = this.store, - path = common.path(key); - - // - // Scope into the object to get the appropriate nested context - // - while (path.length > 0) { - key = path.shift(); - if (target && target.hasOwnProperty(key)) { - target = target[key]; - continue; - } - return undefined; - } - - return target; -}; - -// -// ### function set (key, value) -// #### @key {string} Key to set in this instance -// #### @value {literal|Object} Value for the specified key -// Sets the `value` for the specified `key` in this instance. -// -Memory.prototype.set = function (key, value) { - if (this.readOnly) { - return false; - } - - var target = this.store, - path = common.path(key); - - if (path.length === 0) { - // - // Root must be an object - // - if (!value || typeof value !== 'object') { - return false; - } - else { - this.reset(); - this.store = value; - return true; - } - } - - // - // Update the `mtime` (modified time) of the key - // - this.mtimes[key] = Date.now(); - - // - // Scope into the object to get the appropriate nested context - // - while (path.length > 1) { - key = path.shift(); - if (!target[key] || typeof target[key] !== 'object') { - target[key] = {}; - } - - target = target[key]; - } - - // Set the specified value in the nested JSON structure - key = path.shift(); - target[key] = value; - return true; -}; - -// -// ### function clear (key) -// #### @key {string} Key to remove from this instance -// Removes the value for the specified `key` from this instance. -// -Memory.prototype.clear = function (key) { - if (this.readOnly) { - return false; - } - - var target = this.store, - value = target, - path = common.path(key); - - // - // Remove the key from the set of `mtimes` (modified times) - // - delete this.mtimes[key]; - - // - // Scope into the object to get the appropriate nested context - // - for (var i = 0; i < path.length - 1; i++) { - key = path[i]; - value = target[key]; - if (typeof value !== 'function' && typeof value !== 'object') { - return false; - } - target = value; - } - - // Delete the key from the nested JSON structure - key = path[i]; - delete target[key]; - return true; -}; - -// -// ### function merge (key, value) -// #### @key {string} Key to merge the value into -// #### @value {literal|Object} Value to merge into the key -// Merges the properties in `value` into the existing object value -// at `key`. If the existing value `key` is not an Object, it will be -// completely overwritten. -// -Memory.prototype.merge = function (key, value) { - if (this.readOnly) { - return false; - } - - // - // If the key is not an `Object` or is an `Array`, - // then simply set it. Merging is for Objects. - // - if (typeof value !== 'object' || Array.isArray(value) || value === null) { - return this.set(key, value); - } - - var self = this, - target = this.store, - path = common.path(key), - fullKey = key; - - // - // Update the `mtime` (modified time) of the key - // - this.mtimes[key] = Date.now(); - - // - // Scope into the object to get the appropriate nested context - // - while (path.length > 1) { - key = path.shift(); - if (!target[key]) { - target[key] = {}; - } - - target = target[key]; - } - - // Set the specified value in the nested JSON structure - key = path.shift(); - - // - // If the current value at the key target is not an `Object`, - // or is an `Array` then simply override it because the new value - // is an Object. - // - if (typeof target[key] !== 'object' || Array.isArray(target[key])) { - target[key] = value; - return true; - } - - return Object.keys(value).every(function (nested) { - return self.merge(common.key(fullKey, nested), value[nested]); - }); -}; - -// -// ### function reset (callback) -// Clears all keys associated with this instance. -// -Memory.prototype.reset = function () { - if (this.readOnly) { - return false; - } - - this.mtimes = {}; - this.store = {}; - return true; -}; - -// -// ### function loadSync -// Returns the store managed by this instance -// -Memory.prototype.loadSync = function () { - return this.store || {}; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/LICENSE deleted file mode 100644 index b7f9d500..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010 Caolan McMahon - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/README.md deleted file mode 100644 index 9ff1acfd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/README.md +++ /dev/null @@ -1,1414 +0,0 @@ -# Async.js - -Async is a utility module which provides straight-forward, powerful functions -for working with asynchronous JavaScript. Although originally designed for -use with [node.js](http://nodejs.org), it can also be used directly in the -browser. Also supports [component](https://github.com/component/component). - -Async provides around 20 functions that include the usual 'functional' -suspects (map, reduce, filter, each…) as well as some common patterns -for asynchronous control flow (parallel, series, waterfall…). All these -functions assume you follow the node.js convention of providing a single -callback as the last argument of your async function. - - -## Quick Examples - -```javascript -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); - -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); - -async.parallel([ - function(){ ... }, - function(){ ... } -], callback); - -async.series([ - function(){ ... }, - function(){ ... } -]); -``` - -There are many more functions available so take a look at the docs below for a -full list. This module aims to be comprehensive, so if you feel anything is -missing please create a GitHub issue for it. - -## Common Pitfalls - -### Binding a context to an iterator - -This section is really about bind, not about async. If you are wondering how to -make async execute your iterators in a given context, or are confused as to why -a method of another library isn't working as an iterator, study this example: - -```js -// Here is a simple object with an (unnecessarily roundabout) squaring method -var AsyncSquaringLibrary = { - squareExponent: 2, - square: function(number, callback){ - var result = Math.pow(number, this.squareExponent); - setTimeout(function(){ - callback(null, result); - }, 200); - } -}; - -async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){ - // result is [NaN, NaN, NaN] - // This fails because the `this.squareExponent` expression in the square - // function is not evaluated in the context of AsyncSquaringLibrary, and is - // therefore undefined. -}); - -async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){ - // result is [1, 4, 9] - // With the help of bind we can attach a context to the iterator before - // passing it to async. Now the square function will be executed in its - // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent` - // will be as expected. -}); -``` - -## Download - -The source is available for download from -[GitHub](http://github.com/caolan/async). -Alternatively, you can install using Node Package Manager (npm): - - npm install async - -__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed - -## In the Browser - -So far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage: - -```html - - -``` - -## Documentation - -### Collections - -* [each](#each) -* [map](#map) -* [filter](#filter) -* [reject](#reject) -* [reduce](#reduce) -* [detect](#detect) -* [sortBy](#sortBy) -* [some](#some) -* [every](#every) -* [concat](#concat) - -### Control Flow - -* [series](#series) -* [parallel](#parallel) -* [whilst](#whilst) -* [doWhilst](#doWhilst) -* [until](#until) -* [doUntil](#doUntil) -* [forever](#forever) -* [waterfall](#waterfall) -* [compose](#compose) -* [applyEach](#applyEach) -* [queue](#queue) -* [cargo](#cargo) -* [auto](#auto) -* [iterator](#iterator) -* [apply](#apply) -* [nextTick](#nextTick) -* [times](#times) -* [timesSeries](#timesSeries) - -### Utils - -* [memoize](#memoize) -* [unmemoize](#unmemoize) -* [log](#log) -* [dir](#dir) -* [noConflict](#noConflict) - - -## Collections - - - -### each(arr, iterator, callback) - -Applies an iterator function to each item in an array, in parallel. -The iterator is called with an item from the list and a callback for when it -has finished. If the iterator passes an error to this callback, the main -callback for the each function is immediately called with the error. - -Note, that since this function applies the iterator to each item in parallel -there is no guarantee that the iterator functions will complete in order. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err) which must be called once it has - completed. If no error has occured, the callback should be run without - arguments or with an explicit null argument. -* callback(err) - A callback which is called after all the iterator functions - have finished, or an error has occurred. - -__Example__ - -```js -// assuming openFiles is an array of file names and saveFile is a function -// to save the modified contents of that file: - -async.each(openFiles, saveFile, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - ---------------------------------------- - - - -### eachSeries(arr, iterator, callback) - -The same as each only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. This means the iterator functions will complete in order. - - ---------------------------------------- - - - -### eachLimit(arr, limit, iterator, callback) - -The same as each only no more than "limit" iterators will be simultaneously -running at any time. - -Note that the items are not processed in batches, so there is no guarantee that - the first "limit" iterator functions will complete before any others are -started. - -__Arguments__ - -* arr - An array to iterate over. -* limit - The maximum number of iterators to run at any time. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err) which must be called once it has - completed. If no error has occured, the callback should be run without - arguments or with an explicit null argument. -* callback(err) - A callback which is called after all the iterator functions - have finished, or an error has occurred. - -__Example__ - -```js -// Assume documents is an array of JSON objects and requestApi is a -// function that interacts with a rate-limited REST api. - -async.eachLimit(documents, 20, requestApi, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - ---------------------------------------- - - -### map(arr, iterator, callback) - -Produces a new array of values by mapping each value in the given array through -the iterator function. The iterator is called with an item from the array and a -callback for when it has finished processing. The callback takes 2 arguments, -an error and the transformed item from the array. If the iterator passes an -error to this callback, the main callback for the map function is immediately -called with the error. - -Note, that since this function applies the iterator to each item in parallel -there is no guarantee that the iterator functions will complete in order, however -the results array will be in the same order as the original array. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, transformed) which must be called once - it has completed with an error (which can be null) and a transformed item. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array of the - transformed items from the original array. - -__Example__ - -```js -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - ---------------------------------------- - - -### mapSeries(arr, iterator, callback) - -The same as map only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - - ---------------------------------------- - - -### mapLimit(arr, limit, iterator, callback) - -The same as map only no more than "limit" iterators will be simultaneously -running at any time. - -Note that the items are not processed in batches, so there is no guarantee that - the first "limit" iterator functions will complete before any others are -started. - -__Arguments__ - -* arr - An array to iterate over. -* limit - The maximum number of iterators to run at any time. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, transformed) which must be called once - it has completed with an error (which can be null) and a transformed item. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array of the - transformed items from the original array. - -__Example__ - -```js -async.map(['file1','file2','file3'], 1, fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - ---------------------------------------- - - -### filter(arr, iterator, callback) - -__Alias:__ select - -Returns a new array of all the values which pass an async truth test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like fs.exists. This operation is -performed in parallel, but the results array will be in the same order as the -original. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(results) - A callback which is called after all the iterator - functions have finished. - -__Example__ - -```js -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); -``` - ---------------------------------------- - - -### filterSeries(arr, iterator, callback) - -__alias:__ selectSeries - -The same as filter only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - ---------------------------------------- - - -### reject(arr, iterator, callback) - -The opposite of filter. Removes values that pass an async truth test. - ---------------------------------------- - - -### rejectSeries(arr, iterator, callback) - -The same as reject, only the iterator is applied to each item in the array -in series. - - ---------------------------------------- - - -### reduce(arr, memo, iterator, callback) - -__aliases:__ inject, foldl - -Reduces a list of values into a single value using an async iterator to return -each successive step. Memo is the initial state of the reduction. This -function only operates in series. For performance reasons, it may make sense to -split a call to this function into a parallel map, then use the normal -Array.prototype.reduce on the results. This function is for situations where -each step in the reduction needs to be async, if you can get the data before -reducing it then it's probably a good idea to do so. - -__Arguments__ - -* arr - An array to iterate over. -* memo - The initial state of the reduction. -* iterator(memo, item, callback) - A function applied to each item in the - array to produce the next step in the reduction. The iterator is passed a - callback(err, reduction) which accepts an optional error as its first - argument, and the state of the reduction as the second. If an error is - passed to the callback, the reduction is stopped and the main callback is - immediately called with the error. -* callback(err, result) - A callback which is called after all the iterator - functions have finished. Result is the reduced value. - -__Example__ - -```js -async.reduce([1,2,3], 0, function(memo, item, callback){ - // pointless async: - process.nextTick(function(){ - callback(null, memo + item) - }); -}, function(err, result){ - // result is now equal to the last value of memo, which is 6 -}); -``` - ---------------------------------------- - - -### reduceRight(arr, memo, iterator, callback) - -__Alias:__ foldr - -Same as reduce, only operates on the items in the array in reverse order. - - ---------------------------------------- - - -### detect(arr, iterator, callback) - -Returns the first value in a list that passes an async truth test. The -iterator is applied in parallel, meaning the first iterator to return true will -fire the detect callback with that result. That means the result might not be -the first item in the original array (in terms of order) that passes the test. - -If order within the original array is important then look at detectSeries. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(result) - A callback which is called as soon as any iterator returns - true, or after all the iterator functions have finished. Result will be - the first item in the array that passes the truth test (iterator) or the - value undefined if none passed. - -__Example__ - -```js -async.detect(['file1','file2','file3'], fs.exists, function(result){ - // result now equals the first file in the list that exists -}); -``` - ---------------------------------------- - - -### detectSeries(arr, iterator, callback) - -The same as detect, only the iterator is applied to each item in the array -in series. This means the result is always the first in the original array (in -terms of array order) that passes the truth test. - - ---------------------------------------- - - -### sortBy(arr, iterator, callback) - -Sorts a list by the results of running each value through an async iterator. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, sortValue) which must be called once it - has completed with an error (which can be null) and a value to use as the sort - criteria. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is the items from - the original array sorted by the values returned by the iterator calls. - -__Example__ - -```js -async.sortBy(['file1','file2','file3'], function(file, callback){ - fs.stat(file, function(err, stats){ - callback(err, stats.mtime); - }); -}, function(err, results){ - // results is now the original array of files sorted by - // modified date -}); -``` - ---------------------------------------- - - -### some(arr, iterator, callback) - -__Alias:__ any - -Returns true if at least one element in the array satisfies an async test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like fs.exists. Once any iterator -call returns true, the main callback is immediately called. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(result) - A callback which is called as soon as any iterator returns - true, or after all the iterator functions have finished. Result will be - either true or false depending on the values of the async tests. - -__Example__ - -```js -async.some(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then at least one of the files exists -}); -``` - ---------------------------------------- - - -### every(arr, iterator, callback) - -__Alias:__ all - -Returns true if every element in the array satisfies an async test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like fs.exists. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(result) - A callback which is called after all the iterator - functions have finished. Result will be either true or false depending on - the values of the async tests. - -__Example__ - -```js -async.every(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then every file exists -}); -``` - ---------------------------------------- - - -### concat(arr, iterator, callback) - -Applies an iterator to each item in a list, concatenating the results. Returns the -concatenated list. The iterators are called in parallel, and the results are -concatenated as they return. There is no guarantee that the results array will -be returned in the original order of the arguments passed to the iterator function. - -__Arguments__ - -* arr - An array to iterate over -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, results) which must be called once it - has completed with an error (which can be null) and an array of results. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array containing - the concatenated results of the iterator function. - -__Example__ - -```js -async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ - // files is now a list of filenames that exist in the 3 directories -}); -``` - ---------------------------------------- - - -### concatSeries(arr, iterator, callback) - -Same as async.concat, but executes in series instead of parallel. - - -## Control Flow - - -### series(tasks, [callback]) - -Run an array of functions in series, each one running once the previous -function has completed. If any functions in the series pass an error to its -callback, no more functions are run and the callback for the series is -immediately called with the value of the error. Once the tasks have completed, -the results are passed to the final callback as an array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final callback as an object -instead of an array. This can be a more readable way of handling results from -async.series. - - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed - a callback(err, result) it must call on completion with an error (which can - be null) and an optional result value. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - -__Example__ - -```js -async.series([ - function(callback){ - // do some stuff ... - callback(null, 'one'); - }, - function(callback){ - // do some more stuff ... - callback(null, 'two'); - } -], -// optional callback -function(err, results){ - // results is now equal to ['one', 'two'] -}); - - -// an example using an object instead of an array -async.series({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equal to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallel(tasks, [callback]) - -Run an array of functions in parallel, without waiting until the previous -function has completed. If any of the functions pass an error to its -callback, the main callback is immediately called with the value of the error. -Once the tasks have completed, the results are passed to the final callback as an -array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final callback as an object -instead of an array. This can be a more readable way of handling results from -async.parallel. - - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed - a callback(err, result) it must call on completion with an error (which can - be null) and an optional result value. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - -__Example__ - -```js -async.parallel([ - function(callback){ - setTimeout(function(){ - callback(null, 'one'); - }, 200); - }, - function(callback){ - setTimeout(function(){ - callback(null, 'two'); - }, 100); - } -], -// optional callback -function(err, results){ - // the results array will equal ['one','two'] even though - // the second function had a shorter timeout. -}); - - -// an example using an object instead of an array -async.parallel({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equals to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallelLimit(tasks, limit, [callback]) - -The same as parallel only the tasks are executed in parallel with a maximum of "limit" -tasks executing at any time. - -Note that the tasks are not executed in batches, so there is no guarantee that -the first "limit" tasks will complete before any others are started. - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed - a callback(err, result) it must call on completion with an error (which can - be null) and an optional result value. -* limit - The maximum number of tasks to run at any time. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - ---------------------------------------- - - -### whilst(test, fn, callback) - -Repeatedly call fn, while test returns true. Calls the callback when stopped, -or an error occurs. - -__Arguments__ - -* test() - synchronous truth test to perform before each execution of fn. -* fn(callback) - A function to call each time the test passes. The function is - passed a callback(err) which must be called once it has completed with an - optional error argument. -* callback(err) - A callback which is called after the test fails and repeated - execution of fn has stopped. - -__Example__ - -```js -var count = 0; - -async.whilst( - function () { return count < 5; }, - function (callback) { - count++; - setTimeout(callback, 1000); - }, - function (err) { - // 5 seconds have passed - } -); -``` - ---------------------------------------- - - -### doWhilst(fn, test, callback) - -The post check version of whilst. To reflect the difference in the order of operations `test` and `fn` arguments are switched. `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. - ---------------------------------------- - - -### until(test, fn, callback) - -Repeatedly call fn, until test returns true. Calls the callback when stopped, -or an error occurs. - -The inverse of async.whilst. - ---------------------------------------- - - -### doUntil(fn, test, callback) - -Like doWhilst except the test is inverted. Note the argument ordering differs from `until`. - ---------------------------------------- - - -### forever(fn, callback) - -Calls the asynchronous function 'fn' repeatedly, in series, indefinitely. -If an error is passed to fn's callback then 'callback' is called with the -error, otherwise it will never be called. - ---------------------------------------- - - -### waterfall(tasks, [callback]) - -Runs an array of functions in series, each passing their results to the next in -the array. However, if any of the functions pass an error to the callback, the -next function is not executed and the main callback is immediately called with -the error. - -__Arguments__ - -* tasks - An array of functions to run, each function is passed a - callback(err, result1, result2, ...) it must call on completion. The first - argument is an error (which can be null) and any further arguments will be - passed as arguments in order to the next task. -* callback(err, [results]) - An optional callback to run once all the functions - have completed. This will be passed the results of the last task's callback. - - - -__Example__ - -```js -async.waterfall([ - function(callback){ - callback(null, 'one', 'two'); - }, - function(arg1, arg2, callback){ - callback(null, 'three'); - }, - function(arg1, callback){ - // arg1 now equals 'three' - callback(null, 'done'); - } -], function (err, result) { - // result now equals 'done' -}); -``` - ---------------------------------------- - -### compose(fn1, fn2...) - -Creates a function which is a composition of the passed asynchronous -functions. Each function consumes the return value of the function that -follows. Composing functions f(), g() and h() would produce the result of -f(g(h())), only this version uses callbacks to obtain the return values. - -Each function is executed with the `this` binding of the composed function. - -__Arguments__ - -* functions... - the asynchronous functions to compose - - -__Example__ - -```js -function add1(n, callback) { - setTimeout(function () { - callback(null, n + 1); - }, 10); -} - -function mul3(n, callback) { - setTimeout(function () { - callback(null, n * 3); - }, 10); -} - -var add1mul3 = async.compose(mul3, add1); - -add1mul3(4, function (err, result) { - // result now equals 15 -}); -``` - ---------------------------------------- - -### applyEach(fns, args..., callback) - -Applies the provided arguments to each function in the array, calling the -callback after all functions have completed. If you only provide the first -argument then it will return a function which lets you pass in the -arguments as if it were a single function call. - -__Arguments__ - -* fns - the asynchronous functions to all call with the same arguments -* args... - any number of separate arguments to pass to the function -* callback - the final argument should be the callback, called when all - functions have completed processing - - -__Example__ - -```js -async.applyEach([enableSearch, updateSchema], 'bucket', callback); - -// partial application example: -async.each( - buckets, - async.applyEach([enableSearch, updateSchema]), - callback -); -``` - ---------------------------------------- - - -### applyEachSeries(arr, iterator, callback) - -The same as applyEach only the functions are applied in series. - ---------------------------------------- - - -### queue(worker, concurrency) - -Creates a queue object with the specified concurrency. Tasks added to the -queue will be processed in parallel (up to the concurrency limit). If all -workers are in progress, the task is queued until one is available. Once -a worker has completed a task, the task's callback is called. - -__Arguments__ - -* worker(task, callback) - An asynchronous function for processing a queued - task, which must call its callback(err) argument when finished, with an - optional error as an argument. -* concurrency - An integer for determining how many worker functions should be - run in parallel. - -__Queue objects__ - -The queue object returned by this function has the following properties and -methods: - -* length() - a function returning the number of items waiting to be processed. -* concurrency - an integer for determining how many worker functions should be - run in parallel. This property can be changed after a queue is created to - alter the concurrency on-the-fly. -* push(task, [callback]) - add a new task to the queue, the callback is called - once the worker has finished processing the task. - instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list. -* unshift(task, [callback]) - add a new task to the front of the queue. -* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued -* empty - a callback that is called when the last item from the queue is given to a worker -* drain - a callback that is called when the last item from the queue has returned from the worker - -__Example__ - -```js -// create a queue object with concurrency 2 - -var q = async.queue(function (task, callback) { - console.log('hello ' + task.name); - callback(); -}, 2); - - -// assign a callback -q.drain = function() { - console.log('all items have been processed'); -} - -// add some items to the queue - -q.push({name: 'foo'}, function (err) { - console.log('finished processing foo'); -}); -q.push({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); - -// add some items to the queue (batch-wise) - -q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { - console.log('finished processing bar'); -}); - -// add some items to the front of the queue - -q.unshift({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); -``` - ---------------------------------------- - - -### cargo(worker, [payload]) - -Creates a cargo object with the specified payload. Tasks added to the -cargo will be processed altogether (up to the payload limit). If the -worker is in progress, the task is queued until it is available. Once -the worker has completed some tasks, each callback of those tasks is called. - -__Arguments__ - -* worker(tasks, callback) - An asynchronous function for processing an array of - queued tasks, which must call its callback(err) argument when finished, with - an optional error as an argument. -* payload - An optional integer for determining how many tasks should be - processed per round; if omitted, the default is unlimited. - -__Cargo objects__ - -The cargo object returned by this function has the following properties and -methods: - -* length() - a function returning the number of items waiting to be processed. -* payload - an integer for determining how many tasks should be - process per round. This property can be changed after a cargo is created to - alter the payload on-the-fly. -* push(task, [callback]) - add a new task to the queue, the callback is called - once the worker has finished processing the task. - instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list. -* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued -* empty - a callback that is called when the last item from the queue is given to a worker -* drain - a callback that is called when the last item from the queue has returned from the worker - -__Example__ - -```js -// create a cargo object with payload 2 - -var cargo = async.cargo(function (tasks, callback) { - for(var i=0; i -### auto(tasks, [callback]) - -Determines the best order for running functions 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. If any of -the functions pass an error to their callback, that function will not complete -(so any other functions depending on it will not run) and the main callback -will be called immediately with the error. Functions also receive an object -containing the results of functions which have completed so far. - -Note, all functions are called with a results object as a second argument, -so it is unsafe to pass functions in the tasks object which cannot handle the -extra argument. For example, this snippet of code: - -```js -async.auto({ - readData: async.apply(fs.readFile, 'data.txt', 'utf-8'); -}, callback); -``` - -will have the effect of calling readFile with the results object as the last -argument, which will fail: - -```js -fs.readFile('data.txt', 'utf-8', cb, {}); -``` - -Instead, wrap the call to readFile in a function which does not forward the -results object: - -```js -async.auto({ - readData: function(cb, results){ - fs.readFile('data.txt', 'utf-8', cb); - } -}, callback); -``` - -__Arguments__ - -* tasks - An object literal containing named functions or an array of - requirements, with the function itself the last item in the array. The key - used for each function or array is used when specifying requirements. The - function receives two arguments: (1) a callback(err, result) which must be - called when finished, passing an error (which can be null) and the result of - the function's execution, and (2) a results object, containing the results of - the previously executed functions. -* callback(err, results) - An optional callback which is called when all the - tasks have been completed. The callback will receive an error as an argument - if any tasks pass an error to their callback. Results will always be passed - but if an error occurred, no other tasks will be performed, and the results - object will only contain partial results. - - -__Example__ - -```js -async.auto({ - get_data: function(callback){ - // async code to get some data - }, - make_folder: function(callback){ - // async code to create a directory to store a file in - // this is run at the same time as getting the data - }, - write_file: ['get_data', 'make_folder', function(callback){ - // once there is some data and the directory exists, - // write the data to a file in the directory - callback(null, filename); - }], - email_link: ['write_file', function(callback, results){ - // once the file is written let's email a link to it... - // results.write_file contains the filename returned by write_file. - }] -}); -``` - -This is a fairly trivial example, but to do this using the basic parallel and -series functions would look like this: - -```js -async.parallel([ - function(callback){ - // async code to get some data - }, - function(callback){ - // async code to create a directory to store a file in - // this is run at the same time as getting the data - } -], -function(err, results){ - async.series([ - function(callback){ - // once there is some data and the directory exists, - // write the data to a file in the directory - }, - function(callback){ - // once the file is written let's email a link to it... - } - ]); -}); -``` - -For a complicated series of async tasks using the auto function makes adding -new tasks much easier and makes the code more readable. - - ---------------------------------------- - - -### iterator(tasks) - -Creates an iterator function which calls the next function in the array, -returning a continuation to call the next one after that. It's also possible to -'peek' the next iterator by doing iterator.next(). - -This function is used internally by the async module but can be useful when -you want to manually control the flow of functions in series. - -__Arguments__ - -* tasks - An array of functions to run. - -__Example__ - -```js -var iterator = async.iterator([ - function(){ sys.p('one'); }, - function(){ sys.p('two'); }, - function(){ sys.p('three'); } -]); - -node> var iterator2 = iterator(); -'one' -node> var iterator3 = iterator2(); -'two' -node> iterator3(); -'three' -node> var nextfn = iterator2.next(); -node> nextfn(); -'three' -``` - ---------------------------------------- - - -### apply(function, arguments..) - -Creates a continuation function with some arguments already applied, a useful -shorthand when combined with other control flow functions. Any arguments -passed to the returned function are added to the arguments originally passed -to apply. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to automatically apply when the - continuation is called. - -__Example__ - -```js -// using apply - -async.parallel([ - async.apply(fs.writeFile, 'testfile1', 'test1'), - async.apply(fs.writeFile, 'testfile2', 'test2'), -]); - - -// the same process without using apply - -async.parallel([ - function(callback){ - fs.writeFile('testfile1', 'test1', callback); - }, - function(callback){ - fs.writeFile('testfile2', 'test2', callback); - } -]); -``` - -It's possible to pass any number of additional arguments when calling the -continuation: - -```js -node> var fn = async.apply(sys.puts, 'one'); -node> fn('two', 'three'); -one -two -three -``` - ---------------------------------------- - - -### nextTick(callback) - -Calls the callback on a later loop around the event loop. In node.js this just -calls process.nextTick, in the browser it falls back to setImmediate(callback) -if available, otherwise setTimeout(callback, 0), which means other higher priority -events may precede the execution of the callback. - -This is used internally for browser-compatibility purposes. - -__Arguments__ - -* callback - The function to call on a later loop around the event loop. - -__Example__ - -```js -var call_order = []; -async.nextTick(function(){ - call_order.push('two'); - // call_order now equals ['one','two'] -}); -call_order.push('one') -``` - - -### times(n, callback) - -Calls the callback n times and accumulates results in the same manner -you would use with async.map. - -__Arguments__ - -* n - The number of times to run the function. -* callback - The function to call n times. - -__Example__ - -```js -// Pretend this is some complicated async factory -var createUser = function(id, callback) { - callback(null, { - id: 'user' + id - }) -} -// generate 5 users -async.times(5, function(n, next){ - createUser(n, function(err, user) { - next(err, user) - }) -}, function(err, users) { - // we should now have 5 users -}); -``` - - -### timesSeries(n, callback) - -The same as times only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - - -## Utils - - -### memoize(fn, [hasher]) - -Caches the results of an async function. When creating a hash to store function -results against, the callback is omitted from the hash and an optional hash -function can be used. - -The cache of results is exposed as the `memo` property of the function returned -by `memoize`. - -__Arguments__ - -* fn - the function you to proxy and cache results from. -* hasher - an optional function for generating a custom hash for storing - results, it has all the arguments applied to it apart from the callback, and - must be synchronous. - -__Example__ - -```js -var slow_fn = function (name, callback) { - // do something - callback(null, result); -}; -var fn = async.memoize(slow_fn); - -// fn can now be used as if it were slow_fn -fn('some name', function () { - // callback -}); -``` - - -### unmemoize(fn) - -Undoes a memoized function, reverting it to the original, unmemoized -form. Comes handy in tests. - -__Arguments__ - -* fn - the memoized function - - -### log(function, arguments) - -Logs the result of an async function to the console. Only works in node.js or -in browsers that support console.log and console.error (such as FF and Chrome). -If multiple arguments are returned from the async function, console.log is -called on each argument in order. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, 'hello ' + name); - }, 1000); -}; -``` -```js -node> async.log(hello, 'world'); -'hello world' -``` - ---------------------------------------- - - -### dir(function, arguments) - -Logs the result of an async function to the console using console.dir to -display the properties of the resulting object. Only works in node.js or -in browsers that support console.dir and console.error (such as FF and Chrome). -If multiple arguments are returned from the async function, console.dir is -called on each argument in order. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, {hello: name}); - }, 1000); -}; -``` -```js -node> async.dir(hello, 'world'); -{hello: 'world'} -``` - ---------------------------------------- - - -### noConflict() - -Changes the value of async back to its original value, returning a reference to the -async object. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/component.json deleted file mode 100644 index bbb01154..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/component.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "async", - "repo": "caolan/async", - "description": "Higher-order functions and common patterns for asynchronous code", - "version": "0.1.23", - "keywords": [], - "dependencies": {}, - "development": {}, - "main": "lib/async.js", - "scripts": [ "lib/async.js" ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/lib/async.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/lib/async.js deleted file mode 100755 index cb6320d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/nconf/node_modules/async/lib/async.js +++ /dev/null @@ -1,955 +0,0 @@ -/*global setImmediate: false, setTimeout: false, console: false */ -(function () { - - var async = {}; - - // global on the server, window in the browser - var root, previous_async; - - root = this; - if (root != null) { - previous_async = root.async; - } - - async.noConflict = function () { - root.async = previous_async; - return async; - }; - - function only_once(fn) { - var called = false; - return function() { - if (called) throw new Error("Callback was already called."); - called = true; - fn.apply(root, arguments); - } - } - - //// cross-browser compatiblity functions //// - - var _each = function (arr, iterator) { - if (arr.forEach) { - return arr.forEach(iterator); - } - for (var i = 0; i < arr.length; i += 1) { - iterator(arr[i], i, arr); - } - }; - - var _map = function (arr, iterator) { - if (arr.map) { - return arr.map(iterator); - } - var results = []; - _each(arr, function (x, i, a) { - results.push(iterator(x, i, a)); - }); - return results; - }; - - var _reduce = function (arr, iterator, memo) { - if (arr.reduce) { - return arr.reduce(iterator, memo); - } - _each(arr, function (x, i, a) { - memo = iterator(memo, x, i, a); - }); - return memo; - }; - - var _keys = function (obj) { - if (Object.keys) { - return Object.keys(obj); - } - var keys = []; - for (var k in obj) { - if (obj.hasOwnProperty(k)) { - keys.push(k); - } - } - return keys; - }; - - //// exported async module functions //// - - //// nextTick implementation with browser-compatible fallback //// - if (typeof process === 'undefined' || !(process.nextTick)) { - if (typeof setImmediate === 'function') { - async.nextTick = function (fn) { - // not a direct alias for IE10 compatibility - setImmediate(fn); - }; - async.setImmediate = async.nextTick; - } - else { - async.nextTick = function (fn) { - setTimeout(fn, 0); - }; - async.setImmediate = async.nextTick; - } - } - else { - async.nextTick = process.nextTick; - if (typeof setImmediate !== 'undefined') { - async.setImmediate = setImmediate; - } - else { - async.setImmediate = async.nextTick; - } - } - - async.each = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - _each(arr, function (x) { - iterator(x, only_once(function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed >= arr.length) { - callback(null); - } - } - })); - }); - }; - async.forEach = async.each; - - async.eachSeries = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - var iterate = function () { - iterator(arr[completed], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed >= arr.length) { - callback(null); - } - else { - iterate(); - } - } - }); - }; - iterate(); - }; - async.forEachSeries = async.eachSeries; - - async.eachLimit = function (arr, limit, iterator, callback) { - var fn = _eachLimit(limit); - fn.apply(null, [arr, iterator, callback]); - }; - async.forEachLimit = async.eachLimit; - - var _eachLimit = function (limit) { - - return function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length || limit <= 0) { - return callback(); - } - var completed = 0; - var started = 0; - var running = 0; - - (function replenish () { - if (completed >= arr.length) { - return callback(); - } - - while (running < limit && started < arr.length) { - started += 1; - running += 1; - iterator(arr[started - 1], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - running -= 1; - if (completed >= arr.length) { - callback(); - } - else { - replenish(); - } - } - }); - } - })(); - }; - }; - - - var doParallel = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.each].concat(args)); - }; - }; - var doParallelLimit = function(limit, fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [_eachLimit(limit)].concat(args)); - }; - }; - var doSeries = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.eachSeries].concat(args)); - }; - }; - - - var _asyncMap = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (err, v) { - results[x.index] = v; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - }; - async.map = doParallel(_asyncMap); - async.mapSeries = doSeries(_asyncMap); - async.mapLimit = function (arr, limit, iterator, callback) { - return _mapLimit(limit)(arr, iterator, callback); - }; - - var _mapLimit = function(limit) { - return doParallelLimit(limit, _asyncMap); - }; - - // reduce only has a series version, as doing reduce in parallel won't - // work in many situations. - async.reduce = function (arr, memo, iterator, callback) { - async.eachSeries(arr, function (x, callback) { - iterator(memo, x, function (err, v) { - memo = v; - callback(err); - }); - }, function (err) { - callback(err, memo); - }); - }; - // inject alias - async.inject = async.reduce; - // foldl alias - async.foldl = async.reduce; - - async.reduceRight = function (arr, memo, iterator, callback) { - var reversed = _map(arr, function (x) { - return x; - }).reverse(); - async.reduce(reversed, memo, iterator, callback); - }; - // foldr alias - async.foldr = async.reduceRight; - - var _filter = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.filter = doParallel(_filter); - async.filterSeries = doSeries(_filter); - // select alias - async.select = async.filter; - async.selectSeries = async.filterSeries; - - var _reject = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (!v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.reject = doParallel(_reject); - async.rejectSeries = doSeries(_reject); - - var _detect = function (eachfn, arr, iterator, main_callback) { - eachfn(arr, function (x, callback) { - iterator(x, function (result) { - if (result) { - main_callback(x); - main_callback = function () {}; - } - else { - callback(); - } - }); - }, function (err) { - main_callback(); - }); - }; - async.detect = doParallel(_detect); - async.detectSeries = doSeries(_detect); - - async.some = function (arr, iterator, main_callback) { - async.each(arr, function (x, callback) { - iterator(x, function (v) { - if (v) { - main_callback(true); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(false); - }); - }; - // any alias - async.any = async.some; - - async.every = function (arr, iterator, main_callback) { - async.each(arr, function (x, callback) { - iterator(x, function (v) { - if (!v) { - main_callback(false); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(true); - }); - }; - // all alias - async.all = async.every; - - async.sortBy = function (arr, iterator, callback) { - async.map(arr, function (x, callback) { - iterator(x, function (err, criteria) { - if (err) { - callback(err); - } - else { - callback(null, {value: x, criteria: criteria}); - } - }); - }, function (err, results) { - if (err) { - return callback(err); - } - else { - var fn = function (left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }; - callback(null, _map(results.sort(fn), function (x) { - return x.value; - })); - } - }); - }; - - async.auto = function (tasks, callback) { - callback = callback || function () {}; - var keys = _keys(tasks); - if (!keys.length) { - return callback(null); - } - - var results = {}; - - var listeners = []; - var addListener = function (fn) { - listeners.unshift(fn); - }; - var removeListener = function (fn) { - for (var i = 0; i < listeners.length; i += 1) { - if (listeners[i] === fn) { - listeners.splice(i, 1); - return; - } - } - }; - var taskComplete = function () { - _each(listeners.slice(0), function (fn) { - fn(); - }); - }; - - addListener(function () { - if (_keys(results).length === keys.length) { - callback(null, results); - callback = function () {}; - } - }); - - _each(keys, function (k) { - var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k]; - var taskCallback = function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - if (err) { - var safeResults = {}; - _each(_keys(results), function(rkey) { - safeResults[rkey] = results[rkey]; - }); - safeResults[k] = args; - callback(err, safeResults); - // stop subsequent errors hitting callback multiple times - callback = function () {}; - } - else { - results[k] = args; - async.setImmediate(taskComplete); - } - }; - var requires = task.slice(0, Math.abs(task.length - 1)) || []; - var ready = function () { - return _reduce(requires, function (a, x) { - return (a && results.hasOwnProperty(x)); - }, true) && !results.hasOwnProperty(k); - }; - if (ready()) { - task[task.length - 1](taskCallback, results); - } - else { - var listener = function () { - if (ready()) { - removeListener(listener); - task[task.length - 1](taskCallback, results); - } - }; - addListener(listener); - } - }); - }; - - async.waterfall = function (tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor !== Array) { - var err = new Error('First argument to waterfall must be an array of functions'); - return callback(err); - } - if (!tasks.length) { - return callback(); - } - var wrapIterator = function (iterator) { - return function (err) { - if (err) { - callback.apply(null, arguments); - callback = function () {}; - } - else { - var args = Array.prototype.slice.call(arguments, 1); - var next = iterator.next(); - if (next) { - args.push(wrapIterator(next)); - } - else { - args.push(callback); - } - async.setImmediate(function () { - iterator.apply(null, args); - }); - } - }; - }; - wrapIterator(async.iterator(tasks))(); - }; - - var _parallel = function(eachfn, tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor === Array) { - eachfn.map(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - eachfn.each(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.parallel = function (tasks, callback) { - _parallel({ map: async.map, each: async.each }, tasks, callback); - }; - - async.parallelLimit = function(tasks, limit, callback) { - _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback); - }; - - async.series = function (tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor === Array) { - async.mapSeries(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - async.eachSeries(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.iterator = function (tasks) { - var makeCallback = function (index) { - var fn = function () { - if (tasks.length) { - tasks[index].apply(null, arguments); - } - return fn.next(); - }; - fn.next = function () { - return (index < tasks.length - 1) ? makeCallback(index + 1): null; - }; - return fn; - }; - return makeCallback(0); - }; - - async.apply = function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - return function () { - return fn.apply( - null, args.concat(Array.prototype.slice.call(arguments)) - ); - }; - }; - - var _concat = function (eachfn, arr, fn, callback) { - var r = []; - eachfn(arr, function (x, cb) { - fn(x, function (err, y) { - r = r.concat(y || []); - cb(err); - }); - }, function (err) { - callback(err, r); - }); - }; - async.concat = doParallel(_concat); - async.concatSeries = doSeries(_concat); - - async.whilst = function (test, iterator, callback) { - if (test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.whilst(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.doWhilst = function (iterator, test, callback) { - iterator(function (err) { - if (err) { - return callback(err); - } - if (test()) { - async.doWhilst(iterator, test, callback); - } - else { - callback(); - } - }); - }; - - async.until = function (test, iterator, callback) { - if (!test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.until(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.doUntil = function (iterator, test, callback) { - iterator(function (err) { - if (err) { - return callback(err); - } - if (!test()) { - async.doUntil(iterator, test, callback); - } - else { - callback(); - } - }); - }; - - async.queue = function (worker, concurrency) { - if (concurrency === undefined) { - concurrency = 1; - } - function _insert(q, data, pos, callback) { - if(data.constructor !== Array) { - data = [data]; - } - _each(data, function(task) { - var item = { - data: task, - callback: typeof callback === 'function' ? callback : null - }; - - if (pos) { - q.tasks.unshift(item); - } else { - q.tasks.push(item); - } - - if (q.saturated && q.tasks.length === concurrency) { - q.saturated(); - } - async.setImmediate(q.process); - }); - } - - var workers = 0; - var q = { - tasks: [], - concurrency: concurrency, - saturated: null, - empty: null, - drain: null, - push: function (data, callback) { - _insert(q, data, false, callback); - }, - unshift: function (data, callback) { - _insert(q, data, true, callback); - }, - process: function () { - if (workers < q.concurrency && q.tasks.length) { - var task = q.tasks.shift(); - if (q.empty && q.tasks.length === 0) { - q.empty(); - } - workers += 1; - var next = function () { - workers -= 1; - if (task.callback) { - task.callback.apply(task, arguments); - } - if (q.drain && q.tasks.length + workers === 0) { - q.drain(); - } - q.process(); - }; - var cb = only_once(next); - worker(task.data, cb); - } - }, - length: function () { - return q.tasks.length; - }, - running: function () { - return workers; - } - }; - return q; - }; - - async.cargo = function (worker, payload) { - var working = false, - tasks = []; - - var cargo = { - tasks: tasks, - payload: payload, - saturated: null, - empty: null, - drain: null, - push: function (data, callback) { - if(data.constructor !== Array) { - data = [data]; - } - _each(data, function(task) { - tasks.push({ - data: task, - callback: typeof callback === 'function' ? callback : null - }); - if (cargo.saturated && tasks.length === payload) { - cargo.saturated(); - } - }); - async.setImmediate(cargo.process); - }, - process: function process() { - if (working) return; - if (tasks.length === 0) { - if(cargo.drain) cargo.drain(); - return; - } - - var ts = typeof payload === 'number' - ? tasks.splice(0, payload) - : tasks.splice(0); - - var ds = _map(ts, function (task) { - return task.data; - }); - - if(cargo.empty) cargo.empty(); - working = true; - worker(ds, function () { - working = false; - - var args = arguments; - _each(ts, function (data) { - if (data.callback) { - data.callback.apply(null, args); - } - }); - - process(); - }); - }, - length: function () { - return tasks.length; - }, - running: function () { - return working; - } - }; - return cargo; - }; - - var _console_fn = function (name) { - return function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - fn.apply(null, args.concat([function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (typeof console !== 'undefined') { - if (err) { - if (console.error) { - console.error(err); - } - } - else if (console[name]) { - _each(args, function (x) { - console[name](x); - }); - } - } - }])); - }; - }; - async.log = _console_fn('log'); - async.dir = _console_fn('dir'); - /*async.info = _console_fn('info'); - async.warn = _console_fn('warn'); - async.error = _console_fn('error');*/ - - async.memoize = function (fn, hasher) { - var memo = {}; - var queues = {}; - hasher = hasher || function (x) { - return x; - }; - var memoized = function () { - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - var key = hasher.apply(null, args); - if (key in memo) { - callback.apply(null, memo[key]); - } - else if (key in queues) { - queues[key].push(callback); - } - else { - queues[key] = [callback]; - fn.apply(null, args.concat([function () { - memo[key] = arguments; - var q = queues[key]; - delete queues[key]; - for (var i = 0, l = q.length; i < l; i++) { - q[i].apply(null, arguments); - } - }])); - } - }; - memoized.memo = memo; - memoized.unmemoized = fn; - return memoized; - }; - - async.unmemoize = function (fn) { - return function () { - return (fn.unmemoized || fn).apply(null, arguments); - }; - }; - - async.times = function (count, iterator, callback) { - var counter = []; - for (var i = 0; i < count; i++) { - counter.push(i); - } - return async.map(counter, iterator, callback); - }; - - async.timesSeries = function (count, iterator, callback) { - var counter = []; - for (var i = 0; i < count; i++) { - counter.push(i); - } - return async.mapSeries(counter, iterator, callback); - }; - - async.compose = function (/* functions... */) { - var fns = Array.prototype.reverse.call(arguments); - return function () { - var that = this; - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - async.reduce(fns, args, function (newargs, fn, cb) { - fn.apply(that, newargs.concat([function () { - var err = arguments[0]; - var nextargs = Array.prototype.slice.call(arguments, 1); - cb(err, nextargs); - }])) - }, - function (err, results) { - callback.apply(that, [err].concat(results)); - }); - }; - }; - - var _applyEach = function (eachfn, fns /*args...*/) { - var go = function () { - var that = this; - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - return eachfn(fns, function (fn, cb) { - fn.apply(that, args.concat([cb])); - }, - callback); - }; - if (arguments.length > 2) { - var args = Array.prototype.slice.call(arguments, 2); - return go.apply(this, args); - } - else { - return go; - } - }; - async.applyEach = doParallel(_applyEach); - async.applyEachSeries = doSeries(_applyEach); - - async.forever = function (fn, callback) { - function next(err) { - if (err) { - if (callback) { - return callback(err); - } - throw err; - } - fn(next); - } - next(); - }; - - // AMD / RequireJS - if (typeof define !== 'undefined' && define.amd) { - define([], function () { - return async; - }); - } - // Node.js - else if (typeof module !== 'undefined' && module.exports) { - module.exports = async; - } - // included directly via - -``` - -## Documentation - -### Collections - -* [each](#each) -* [eachSeries](#eachSeries) -* [eachLimit](#eachLimit) -* [map](#map) -* [mapSeries](#mapSeries) -* [mapLimit](#mapLimit) -* [filter](#filter) -* [filterSeries](#filterSeries) -* [reject](#reject) -* [rejectSeries](#rejectSeries) -* [reduce](#reduce) -* [reduceRight](#reduceRight) -* [detect](#detect) -* [detectSeries](#detectSeries) -* [sortBy](#sortBy) -* [some](#some) -* [every](#every) -* [concat](#concat) -* [concatSeries](#concatSeries) - -### Control Flow - -* [series](#series) -* [parallel](#parallel) -* [parallelLimit](#parallellimittasks-limit-callback) -* [whilst](#whilst) -* [doWhilst](#doWhilst) -* [until](#until) -* [doUntil](#doUntil) -* [forever](#forever) -* [waterfall](#waterfall) -* [compose](#compose) -* [applyEach](#applyEach) -* [applyEachSeries](#applyEachSeries) -* [queue](#queue) -* [cargo](#cargo) -* [auto](#auto) -* [iterator](#iterator) -* [apply](#apply) -* [nextTick](#nextTick) -* [times](#times) -* [timesSeries](#timesSeries) - -### Utils - -* [memoize](#memoize) -* [unmemoize](#unmemoize) -* [log](#log) -* [dir](#dir) -* [noConflict](#noConflict) - - -## Collections - - - -### each(arr, iterator, callback) - -Applies an iterator function to each item in an array, in parallel. -The iterator is called with an item from the list and a callback for when it -has finished. If the iterator passes an error to this callback, the main -callback for the each function is immediately called with the error. - -Note, that since this function applies the iterator to each item in parallel -there is no guarantee that the iterator functions will complete in order. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err) which must be called once it has - completed. If no error has occured, the callback should be run without - arguments or with an explicit null argument. -* callback(err) - A callback which is called after all the iterator functions - have finished, or an error has occurred. - -__Example__ - -```js -// assuming openFiles is an array of file names and saveFile is a function -// to save the modified contents of that file: - -async.each(openFiles, saveFile, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - ---------------------------------------- - - - -### eachSeries(arr, iterator, callback) - -The same as each only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. This means the iterator functions will complete in order. - - ---------------------------------------- - - - -### eachLimit(arr, limit, iterator, callback) - -The same as each only no more than "limit" iterators will be simultaneously -running at any time. - -Note that the items are not processed in batches, so there is no guarantee that - the first "limit" iterator functions will complete before any others are -started. - -__Arguments__ - -* arr - An array to iterate over. -* limit - The maximum number of iterators to run at any time. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err) which must be called once it has - completed. If no error has occured, the callback should be run without - arguments or with an explicit null argument. -* callback(err) - A callback which is called after all the iterator functions - have finished, or an error has occurred. - -__Example__ - -```js -// Assume documents is an array of JSON objects and requestApi is a -// function that interacts with a rate-limited REST api. - -async.eachLimit(documents, 20, requestApi, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - ---------------------------------------- - - -### map(arr, iterator, callback) - -Produces a new array of values by mapping each value in the given array through -the iterator function. The iterator is called with an item from the array and a -callback for when it has finished processing. The callback takes 2 arguments, -an error and the transformed item from the array. If the iterator passes an -error to this callback, the main callback for the map function is immediately -called with the error. - -Note, that since this function applies the iterator to each item in parallel -there is no guarantee that the iterator functions will complete in order, however -the results array will be in the same order as the original array. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, transformed) which must be called once - it has completed with an error (which can be null) and a transformed item. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array of the - transformed items from the original array. - -__Example__ - -```js -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - ---------------------------------------- - - -### mapSeries(arr, iterator, callback) - -The same as map only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - - ---------------------------------------- - - -### mapLimit(arr, limit, iterator, callback) - -The same as map only no more than "limit" iterators will be simultaneously -running at any time. - -Note that the items are not processed in batches, so there is no guarantee that - the first "limit" iterator functions will complete before any others are -started. - -__Arguments__ - -* arr - An array to iterate over. -* limit - The maximum number of iterators to run at any time. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, transformed) which must be called once - it has completed with an error (which can be null) and a transformed item. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array of the - transformed items from the original array. - -__Example__ - -```js -async.mapLimit(['file1','file2','file3'], 1, fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - ---------------------------------------- - - -### filter(arr, iterator, callback) - -__Alias:__ select - -Returns a new array of all the values which pass an async truth test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like fs.exists. This operation is -performed in parallel, but the results array will be in the same order as the -original. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(results) - A callback which is called after all the iterator - functions have finished. - -__Example__ - -```js -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); -``` - ---------------------------------------- - - -### filterSeries(arr, iterator, callback) - -__alias:__ selectSeries - -The same as filter only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - ---------------------------------------- - - -### reject(arr, iterator, callback) - -The opposite of filter. Removes values that pass an async truth test. - ---------------------------------------- - - -### rejectSeries(arr, iterator, callback) - -The same as reject, only the iterator is applied to each item in the array -in series. - - ---------------------------------------- - - -### reduce(arr, memo, iterator, callback) - -__aliases:__ inject, foldl - -Reduces a list of values into a single value using an async iterator to return -each successive step. Memo is the initial state of the reduction. This -function only operates in series. For performance reasons, it may make sense to -split a call to this function into a parallel map, then use the normal -Array.prototype.reduce on the results. This function is for situations where -each step in the reduction needs to be async, if you can get the data before -reducing it then it's probably a good idea to do so. - -__Arguments__ - -* arr - An array to iterate over. -* memo - The initial state of the reduction. -* iterator(memo, item, callback) - A function applied to each item in the - array to produce the next step in the reduction. The iterator is passed a - callback(err, reduction) which accepts an optional error as its first - argument, and the state of the reduction as the second. If an error is - passed to the callback, the reduction is stopped and the main callback is - immediately called with the error. -* callback(err, result) - A callback which is called after all the iterator - functions have finished. Result is the reduced value. - -__Example__ - -```js -async.reduce([1,2,3], 0, function(memo, item, callback){ - // pointless async: - process.nextTick(function(){ - callback(null, memo + item) - }); -}, function(err, result){ - // result is now equal to the last value of memo, which is 6 -}); -``` - ---------------------------------------- - - -### reduceRight(arr, memo, iterator, callback) - -__Alias:__ foldr - -Same as reduce, only operates on the items in the array in reverse order. - - ---------------------------------------- - - -### detect(arr, iterator, callback) - -Returns the first value in a list that passes an async truth test. The -iterator is applied in parallel, meaning the first iterator to return true will -fire the detect callback with that result. That means the result might not be -the first item in the original array (in terms of order) that passes the test. - -If order within the original array is important then look at detectSeries. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(result) - A callback which is called as soon as any iterator returns - true, or after all the iterator functions have finished. Result will be - the first item in the array that passes the truth test (iterator) or the - value undefined if none passed. - -__Example__ - -```js -async.detect(['file1','file2','file3'], fs.exists, function(result){ - // result now equals the first file in the list that exists -}); -``` - ---------------------------------------- - - -### detectSeries(arr, iterator, callback) - -The same as detect, only the iterator is applied to each item in the array -in series. This means the result is always the first in the original array (in -terms of array order) that passes the truth test. - - ---------------------------------------- - - -### sortBy(arr, iterator, callback) - -Sorts a list by the results of running each value through an async iterator. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, sortValue) which must be called once it - has completed with an error (which can be null) and a value to use as the sort - criteria. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is the items from - the original array sorted by the values returned by the iterator calls. - -__Example__ - -```js -async.sortBy(['file1','file2','file3'], function(file, callback){ - fs.stat(file, function(err, stats){ - callback(err, stats.mtime); - }); -}, function(err, results){ - // results is now the original array of files sorted by - // modified date -}); -``` - ---------------------------------------- - - -### some(arr, iterator, callback) - -__Alias:__ any - -Returns true if at least one element in the array satisfies an async test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like fs.exists. Once any iterator -call returns true, the main callback is immediately called. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(result) - A callback which is called as soon as any iterator returns - true, or after all the iterator functions have finished. Result will be - either true or false depending on the values of the async tests. - -__Example__ - -```js -async.some(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then at least one of the files exists -}); -``` - ---------------------------------------- - - -### every(arr, iterator, callback) - -__Alias:__ all - -Returns true if every element in the array satisfies an async test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like fs.exists. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(result) - A callback which is called after all the iterator - functions have finished. Result will be either true or false depending on - the values of the async tests. - -__Example__ - -```js -async.every(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then every file exists -}); -``` - ---------------------------------------- - - -### concat(arr, iterator, callback) - -Applies an iterator to each item in a list, concatenating the results. Returns the -concatenated list. The iterators are called in parallel, and the results are -concatenated as they return. There is no guarantee that the results array will -be returned in the original order of the arguments passed to the iterator function. - -__Arguments__ - -* arr - An array to iterate over -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, results) which must be called once it - has completed with an error (which can be null) and an array of results. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array containing - the concatenated results of the iterator function. - -__Example__ - -```js -async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ - // files is now a list of filenames that exist in the 3 directories -}); -``` - ---------------------------------------- - - -### concatSeries(arr, iterator, callback) - -Same as async.concat, but executes in series instead of parallel. - - -## Control Flow - - -### series(tasks, [callback]) - -Run an array of functions in series, each one running once the previous -function has completed. If any functions in the series pass an error to its -callback, no more functions are run and the callback for the series is -immediately called with the value of the error. Once the tasks have completed, -the results are passed to the final callback as an array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final callback as an object -instead of an array. This can be a more readable way of handling results from -async.series. - - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed - a callback(err, result) it must call on completion with an error (which can - be null) and an optional result value. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - -__Example__ - -```js -async.series([ - function(callback){ - // do some stuff ... - callback(null, 'one'); - }, - function(callback){ - // do some more stuff ... - callback(null, 'two'); - } -], -// optional callback -function(err, results){ - // results is now equal to ['one', 'two'] -}); - - -// an example using an object instead of an array -async.series({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equal to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallel(tasks, [callback]) - -Run an array of functions in parallel, without waiting until the previous -function has completed. If any of the functions pass an error to its -callback, the main callback is immediately called with the value of the error. -Once the tasks have completed, the results are passed to the final callback as an -array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final callback as an object -instead of an array. This can be a more readable way of handling results from -async.parallel. - - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed - a callback(err, result) it must call on completion with an error (which can - be null) and an optional result value. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - -__Example__ - -```js -async.parallel([ - function(callback){ - setTimeout(function(){ - callback(null, 'one'); - }, 200); - }, - function(callback){ - setTimeout(function(){ - callback(null, 'two'); - }, 100); - } -], -// optional callback -function(err, results){ - // the results array will equal ['one','two'] even though - // the second function had a shorter timeout. -}); - - -// an example using an object instead of an array -async.parallel({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equals to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallelLimit(tasks, limit, [callback]) - -The same as parallel only the tasks are executed in parallel with a maximum of "limit" -tasks executing at any time. - -Note that the tasks are not executed in batches, so there is no guarantee that -the first "limit" tasks will complete before any others are started. - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed - a callback(err, result) it must call on completion with an error (which can - be null) and an optional result value. -* limit - The maximum number of tasks to run at any time. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - ---------------------------------------- - - -### whilst(test, fn, callback) - -Repeatedly call fn, while test returns true. Calls the callback when stopped, -or an error occurs. - -__Arguments__ - -* test() - synchronous truth test to perform before each execution of fn. -* fn(callback) - A function to call each time the test passes. The function is - passed a callback(err) which must be called once it has completed with an - optional error argument. -* callback(err) - A callback which is called after the test fails and repeated - execution of fn has stopped. - -__Example__ - -```js -var count = 0; - -async.whilst( - function () { return count < 5; }, - function (callback) { - count++; - setTimeout(callback, 1000); - }, - function (err) { - // 5 seconds have passed - } -); -``` - ---------------------------------------- - - -### doWhilst(fn, test, callback) - -The post check version of whilst. To reflect the difference in the order of operations `test` and `fn` arguments are switched. `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. - ---------------------------------------- - - -### until(test, fn, callback) - -Repeatedly call fn, until test returns true. Calls the callback when stopped, -or an error occurs. - -The inverse of async.whilst. - ---------------------------------------- - - -### doUntil(fn, test, callback) - -Like doWhilst except the test is inverted. Note the argument ordering differs from `until`. - ---------------------------------------- - - -### forever(fn, callback) - -Calls the asynchronous function 'fn' repeatedly, in series, indefinitely. -If an error is passed to fn's callback then 'callback' is called with the -error, otherwise it will never be called. - ---------------------------------------- - - -### waterfall(tasks, [callback]) - -Runs an array of functions in series, each passing their results to the next in -the array. However, if any of the functions pass an error to the callback, the -next function is not executed and the main callback is immediately called with -the error. - -__Arguments__ - -* tasks - An array of functions to run, each function is passed a - callback(err, result1, result2, ...) it must call on completion. The first - argument is an error (which can be null) and any further arguments will be - passed as arguments in order to the next task. -* callback(err, [results]) - An optional callback to run once all the functions - have completed. This will be passed the results of the last task's callback. - - - -__Example__ - -```js -async.waterfall([ - function(callback){ - callback(null, 'one', 'two'); - }, - function(arg1, arg2, callback){ - callback(null, 'three'); - }, - function(arg1, callback){ - // arg1 now equals 'three' - callback(null, 'done'); - } -], function (err, result) { - // result now equals 'done' -}); -``` - ---------------------------------------- - -### compose(fn1, fn2...) - -Creates a function which is a composition of the passed asynchronous -functions. Each function consumes the return value of the function that -follows. Composing functions f(), g() and h() would produce the result of -f(g(h())), only this version uses callbacks to obtain the return values. - -Each function is executed with the `this` binding of the composed function. - -__Arguments__ - -* functions... - the asynchronous functions to compose - - -__Example__ - -```js -function add1(n, callback) { - setTimeout(function () { - callback(null, n + 1); - }, 10); -} - -function mul3(n, callback) { - setTimeout(function () { - callback(null, n * 3); - }, 10); -} - -var add1mul3 = async.compose(mul3, add1); - -add1mul3(4, function (err, result) { - // result now equals 15 -}); -``` - ---------------------------------------- - -### applyEach(fns, args..., callback) - -Applies the provided arguments to each function in the array, calling the -callback after all functions have completed. If you only provide the first -argument then it will return a function which lets you pass in the -arguments as if it were a single function call. - -__Arguments__ - -* fns - the asynchronous functions to all call with the same arguments -* args... - any number of separate arguments to pass to the function -* callback - the final argument should be the callback, called when all - functions have completed processing - - -__Example__ - -```js -async.applyEach([enableSearch, updateSchema], 'bucket', callback); - -// partial application example: -async.each( - buckets, - async.applyEach([enableSearch, updateSchema]), - callback -); -``` - ---------------------------------------- - - -### applyEachSeries(arr, iterator, callback) - -The same as applyEach only the functions are applied in series. - ---------------------------------------- - - -### queue(worker, concurrency) - -Creates a queue object with the specified concurrency. Tasks added to the -queue will be processed in parallel (up to the concurrency limit). If all -workers are in progress, the task is queued until one is available. Once -a worker has completed a task, the task's callback is called. - -__Arguments__ - -* worker(task, callback) - An asynchronous function for processing a queued - task, which must call its callback(err) argument when finished, with an - optional error as an argument. -* concurrency - An integer for determining how many worker functions should be - run in parallel. - -__Queue objects__ - -The queue object returned by this function has the following properties and -methods: - -* length() - a function returning the number of items waiting to be processed. -* concurrency - an integer for determining how many worker functions should be - run in parallel. This property can be changed after a queue is created to - alter the concurrency on-the-fly. -* push(task, [callback]) - add a new task to the queue, the callback is called - once the worker has finished processing the task. - instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list. -* unshift(task, [callback]) - add a new task to the front of the queue. -* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued -* empty - a callback that is called when the last item from the queue is given to a worker -* drain - a callback that is called when the last item from the queue has returned from the worker - -__Example__ - -```js -// create a queue object with concurrency 2 - -var q = async.queue(function (task, callback) { - console.log('hello ' + task.name); - callback(); -}, 2); - - -// assign a callback -q.drain = function() { - console.log('all items have been processed'); -} - -// add some items to the queue - -q.push({name: 'foo'}, function (err) { - console.log('finished processing foo'); -}); -q.push({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); - -// add some items to the queue (batch-wise) - -q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { - console.log('finished processing bar'); -}); - -// add some items to the front of the queue - -q.unshift({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); -``` - ---------------------------------------- - - -### cargo(worker, [payload]) - -Creates a cargo object with the specified payload. Tasks added to the -cargo will be processed altogether (up to the payload limit). If the -worker is in progress, the task is queued until it is available. Once -the worker has completed some tasks, each callback of those tasks is called. - -__Arguments__ - -* worker(tasks, callback) - An asynchronous function for processing an array of - queued tasks, which must call its callback(err) argument when finished, with - an optional error as an argument. -* payload - An optional integer for determining how many tasks should be - processed per round; if omitted, the default is unlimited. - -__Cargo objects__ - -The cargo object returned by this function has the following properties and -methods: - -* length() - a function returning the number of items waiting to be processed. -* payload - an integer for determining how many tasks should be - process per round. This property can be changed after a cargo is created to - alter the payload on-the-fly. -* push(task, [callback]) - add a new task to the queue, the callback is called - once the worker has finished processing the task. - instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list. -* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued -* empty - a callback that is called when the last item from the queue is given to a worker -* drain - a callback that is called when the last item from the queue has returned from the worker - -__Example__ - -```js -// create a cargo object with payload 2 - -var cargo = async.cargo(function (tasks, callback) { - for(var i=0; i -### auto(tasks, [callback]) - -Determines the best order for running functions 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. If any of -the functions pass an error to their callback, that function will not complete -(so any other functions depending on it will not run) and the main callback -will be called immediately with the error. Functions also receive an object -containing the results of functions which have completed so far. - -Note, all functions are called with a results object as a second argument, -so it is unsafe to pass functions in the tasks object which cannot handle the -extra argument. For example, this snippet of code: - -```js -async.auto({ - readData: async.apply(fs.readFile, 'data.txt', 'utf-8') -}, callback); -``` - -will have the effect of calling readFile with the results object as the last -argument, which will fail: - -```js -fs.readFile('data.txt', 'utf-8', cb, {}); -``` - -Instead, wrap the call to readFile in a function which does not forward the -results object: - -```js -async.auto({ - readData: function(cb, results){ - fs.readFile('data.txt', 'utf-8', cb); - } -}, callback); -``` - -__Arguments__ - -* tasks - An object literal containing named functions or an array of - requirements, with the function itself the last item in the array. The key - used for each function or array is used when specifying requirements. The - function receives two arguments: (1) a callback(err, result) which must be - called when finished, passing an error (which can be null) and the result of - the function's execution, and (2) a results object, containing the results of - the previously executed functions. -* callback(err, results) - An optional callback which is called when all the - tasks have been completed. The callback will receive an error as an argument - if any tasks pass an error to their callback. Results will always be passed - but if an error occurred, no other tasks will be performed, and the results - object will only contain partial results. - - -__Example__ - -```js -async.auto({ - get_data: function(callback){ - // async code to get some data - }, - make_folder: function(callback){ - // async code to create a directory to store a file in - // this is run at the same time as getting the data - }, - write_file: ['get_data', 'make_folder', function(callback){ - // once there is some data and the directory exists, - // write the data to a file in the directory - callback(null, filename); - }], - email_link: ['write_file', function(callback, results){ - // once the file is written let's email a link to it... - // results.write_file contains the filename returned by write_file. - }] -}); -``` - -This is a fairly trivial example, but to do this using the basic parallel and -series functions would look like this: - -```js -async.parallel([ - function(callback){ - // async code to get some data - }, - function(callback){ - // async code to create a directory to store a file in - // this is run at the same time as getting the data - } -], -function(err, results){ - async.series([ - function(callback){ - // once there is some data and the directory exists, - // write the data to a file in the directory - }, - function(callback){ - // once the file is written let's email a link to it... - } - ]); -}); -``` - -For a complicated series of async tasks using the auto function makes adding -new tasks much easier and makes the code more readable. - - ---------------------------------------- - - -### iterator(tasks) - -Creates an iterator function which calls the next function in the array, -returning a continuation to call the next one after that. It's also possible to -'peek' the next iterator by doing iterator.next(). - -This function is used internally by the async module but can be useful when -you want to manually control the flow of functions in series. - -__Arguments__ - -* tasks - An array of functions to run. - -__Example__ - -```js -var iterator = async.iterator([ - function(){ sys.p('one'); }, - function(){ sys.p('two'); }, - function(){ sys.p('three'); } -]); - -node> var iterator2 = iterator(); -'one' -node> var iterator3 = iterator2(); -'two' -node> iterator3(); -'three' -node> var nextfn = iterator2.next(); -node> nextfn(); -'three' -``` - ---------------------------------------- - - -### apply(function, arguments..) - -Creates a continuation function with some arguments already applied, a useful -shorthand when combined with other control flow functions. Any arguments -passed to the returned function are added to the arguments originally passed -to apply. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to automatically apply when the - continuation is called. - -__Example__ - -```js -// using apply - -async.parallel([ - async.apply(fs.writeFile, 'testfile1', 'test1'), - async.apply(fs.writeFile, 'testfile2', 'test2'), -]); - - -// the same process without using apply - -async.parallel([ - function(callback){ - fs.writeFile('testfile1', 'test1', callback); - }, - function(callback){ - fs.writeFile('testfile2', 'test2', callback); - } -]); -``` - -It's possible to pass any number of additional arguments when calling the -continuation: - -```js -node> var fn = async.apply(sys.puts, 'one'); -node> fn('two', 'three'); -one -two -three -``` - ---------------------------------------- - - -### nextTick(callback) - -Calls the callback on a later loop around the event loop. In node.js this just -calls process.nextTick, in the browser it falls back to setImmediate(callback) -if available, otherwise setTimeout(callback, 0), which means other higher priority -events may precede the execution of the callback. - -This is used internally for browser-compatibility purposes. - -__Arguments__ - -* callback - The function to call on a later loop around the event loop. - -__Example__ - -```js -var call_order = []; -async.nextTick(function(){ - call_order.push('two'); - // call_order now equals ['one','two'] -}); -call_order.push('one') -``` - - -### times(n, callback) - -Calls the callback n times and accumulates results in the same manner -you would use with async.map. - -__Arguments__ - -* n - The number of times to run the function. -* callback - The function to call n times. - -__Example__ - -```js -// Pretend this is some complicated async factory -var createUser = function(id, callback) { - callback(null, { - id: 'user' + id - }) -} -// generate 5 users -async.times(5, function(n, next){ - createUser(n, function(err, user) { - next(err, user) - }) -}, function(err, users) { - // we should now have 5 users -}); -``` - - -### timesSeries(n, callback) - -The same as times only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - - -## Utils - - -### memoize(fn, [hasher]) - -Caches the results of an async function. When creating a hash to store function -results against, the callback is omitted from the hash and an optional hash -function can be used. - -The cache of results is exposed as the `memo` property of the function returned -by `memoize`. - -__Arguments__ - -* fn - the function you to proxy and cache results from. -* hasher - an optional function for generating a custom hash for storing - results, it has all the arguments applied to it apart from the callback, and - must be synchronous. - -__Example__ - -```js -var slow_fn = function (name, callback) { - // do something - callback(null, result); -}; -var fn = async.memoize(slow_fn); - -// fn can now be used as if it were slow_fn -fn('some name', function () { - // callback -}); -``` - - -### unmemoize(fn) - -Undoes a memoized function, reverting it to the original, unmemoized -form. Comes handy in tests. - -__Arguments__ - -* fn - the memoized function - - -### log(function, arguments) - -Logs the result of an async function to the console. Only works in node.js or -in browsers that support console.log and console.error (such as FF and Chrome). -If multiple arguments are returned from the async function, console.log is -called on each argument in order. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, 'hello ' + name); - }, 1000); -}; -``` -```js -node> async.log(hello, 'world'); -'hello world' -``` - ---------------------------------------- - - -### dir(function, arguments) - -Logs the result of an async function to the console using console.dir to -display the properties of the resulting object. Only works in node.js or -in browsers that support console.dir and console.error (such as FF and Chrome). -If multiple arguments are returned from the async function, console.dir is -called on each argument in order. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, {hello: name}); - }, 1000); -}; -``` -```js -node> async.dir(hello, 'world'); -{hello: 'world'} -``` - ---------------------------------------- - - -### noConflict() - -Changes the value of async back to its original value, returning a reference to the -async object. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/utile/node_modules/async/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/utile/node_modules/async/component.json deleted file mode 100644 index bbb01154..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/utile/node_modules/async/component.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "async", - "repo": "caolan/async", - "description": "Higher-order functions and common patterns for asynchronous code", - "version": "0.1.23", - "keywords": [], - "dependencies": {}, - "development": {}, - "main": "lib/async.js", - "scripts": [ "lib/async.js" ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/utile/node_modules/async/lib/async.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/utile/node_modules/async/lib/async.js deleted file mode 100755 index 1eebb153..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/utile/node_modules/async/lib/async.js +++ /dev/null @@ -1,958 +0,0 @@ -/*global setImmediate: false, setTimeout: false, console: false */ -(function () { - - var async = {}; - - // global on the server, window in the browser - var root, previous_async; - - root = this; - if (root != null) { - previous_async = root.async; - } - - async.noConflict = function () { - root.async = previous_async; - return async; - }; - - function only_once(fn) { - var called = false; - return function() { - if (called) throw new Error("Callback was already called."); - called = true; - fn.apply(root, arguments); - } - } - - //// cross-browser compatiblity functions //// - - var _each = function (arr, iterator) { - if (arr.forEach) { - return arr.forEach(iterator); - } - for (var i = 0; i < arr.length; i += 1) { - iterator(arr[i], i, arr); - } - }; - - var _map = function (arr, iterator) { - if (arr.map) { - return arr.map(iterator); - } - var results = []; - _each(arr, function (x, i, a) { - results.push(iterator(x, i, a)); - }); - return results; - }; - - var _reduce = function (arr, iterator, memo) { - if (arr.reduce) { - return arr.reduce(iterator, memo); - } - _each(arr, function (x, i, a) { - memo = iterator(memo, x, i, a); - }); - return memo; - }; - - var _keys = function (obj) { - if (Object.keys) { - return Object.keys(obj); - } - var keys = []; - for (var k in obj) { - if (obj.hasOwnProperty(k)) { - keys.push(k); - } - } - return keys; - }; - - //// exported async module functions //// - - //// nextTick implementation with browser-compatible fallback //// - if (typeof process === 'undefined' || !(process.nextTick)) { - if (typeof setImmediate === 'function') { - async.nextTick = function (fn) { - // not a direct alias for IE10 compatibility - setImmediate(fn); - }; - async.setImmediate = async.nextTick; - } - else { - async.nextTick = function (fn) { - setTimeout(fn, 0); - }; - async.setImmediate = async.nextTick; - } - } - else { - async.nextTick = process.nextTick; - if (typeof setImmediate !== 'undefined') { - async.setImmediate = function (fn) { - // not a direct alias for IE10 compatibility - setImmediate(fn); - }; - } - else { - async.setImmediate = async.nextTick; - } - } - - async.each = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - _each(arr, function (x) { - iterator(x, only_once(function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed >= arr.length) { - callback(null); - } - } - })); - }); - }; - async.forEach = async.each; - - async.eachSeries = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - var iterate = function () { - iterator(arr[completed], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed >= arr.length) { - callback(null); - } - else { - iterate(); - } - } - }); - }; - iterate(); - }; - async.forEachSeries = async.eachSeries; - - async.eachLimit = function (arr, limit, iterator, callback) { - var fn = _eachLimit(limit); - fn.apply(null, [arr, iterator, callback]); - }; - async.forEachLimit = async.eachLimit; - - var _eachLimit = function (limit) { - - return function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length || limit <= 0) { - return callback(); - } - var completed = 0; - var started = 0; - var running = 0; - - (function replenish () { - if (completed >= arr.length) { - return callback(); - } - - while (running < limit && started < arr.length) { - started += 1; - running += 1; - iterator(arr[started - 1], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - running -= 1; - if (completed >= arr.length) { - callback(); - } - else { - replenish(); - } - } - }); - } - })(); - }; - }; - - - var doParallel = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.each].concat(args)); - }; - }; - var doParallelLimit = function(limit, fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [_eachLimit(limit)].concat(args)); - }; - }; - var doSeries = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.eachSeries].concat(args)); - }; - }; - - - var _asyncMap = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (err, v) { - results[x.index] = v; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - }; - async.map = doParallel(_asyncMap); - async.mapSeries = doSeries(_asyncMap); - async.mapLimit = function (arr, limit, iterator, callback) { - return _mapLimit(limit)(arr, iterator, callback); - }; - - var _mapLimit = function(limit) { - return doParallelLimit(limit, _asyncMap); - }; - - // reduce only has a series version, as doing reduce in parallel won't - // work in many situations. - async.reduce = function (arr, memo, iterator, callback) { - async.eachSeries(arr, function (x, callback) { - iterator(memo, x, function (err, v) { - memo = v; - callback(err); - }); - }, function (err) { - callback(err, memo); - }); - }; - // inject alias - async.inject = async.reduce; - // foldl alias - async.foldl = async.reduce; - - async.reduceRight = function (arr, memo, iterator, callback) { - var reversed = _map(arr, function (x) { - return x; - }).reverse(); - async.reduce(reversed, memo, iterator, callback); - }; - // foldr alias - async.foldr = async.reduceRight; - - var _filter = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.filter = doParallel(_filter); - async.filterSeries = doSeries(_filter); - // select alias - async.select = async.filter; - async.selectSeries = async.filterSeries; - - var _reject = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (!v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.reject = doParallel(_reject); - async.rejectSeries = doSeries(_reject); - - var _detect = function (eachfn, arr, iterator, main_callback) { - eachfn(arr, function (x, callback) { - iterator(x, function (result) { - if (result) { - main_callback(x); - main_callback = function () {}; - } - else { - callback(); - } - }); - }, function (err) { - main_callback(); - }); - }; - async.detect = doParallel(_detect); - async.detectSeries = doSeries(_detect); - - async.some = function (arr, iterator, main_callback) { - async.each(arr, function (x, callback) { - iterator(x, function (v) { - if (v) { - main_callback(true); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(false); - }); - }; - // any alias - async.any = async.some; - - async.every = function (arr, iterator, main_callback) { - async.each(arr, function (x, callback) { - iterator(x, function (v) { - if (!v) { - main_callback(false); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(true); - }); - }; - // all alias - async.all = async.every; - - async.sortBy = function (arr, iterator, callback) { - async.map(arr, function (x, callback) { - iterator(x, function (err, criteria) { - if (err) { - callback(err); - } - else { - callback(null, {value: x, criteria: criteria}); - } - }); - }, function (err, results) { - if (err) { - return callback(err); - } - else { - var fn = function (left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }; - callback(null, _map(results.sort(fn), function (x) { - return x.value; - })); - } - }); - }; - - async.auto = function (tasks, callback) { - callback = callback || function () {}; - var keys = _keys(tasks); - if (!keys.length) { - return callback(null); - } - - var results = {}; - - var listeners = []; - var addListener = function (fn) { - listeners.unshift(fn); - }; - var removeListener = function (fn) { - for (var i = 0; i < listeners.length; i += 1) { - if (listeners[i] === fn) { - listeners.splice(i, 1); - return; - } - } - }; - var taskComplete = function () { - _each(listeners.slice(0), function (fn) { - fn(); - }); - }; - - addListener(function () { - if (_keys(results).length === keys.length) { - callback(null, results); - callback = function () {}; - } - }); - - _each(keys, function (k) { - var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k]; - var taskCallback = function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - if (err) { - var safeResults = {}; - _each(_keys(results), function(rkey) { - safeResults[rkey] = results[rkey]; - }); - safeResults[k] = args; - callback(err, safeResults); - // stop subsequent errors hitting callback multiple times - callback = function () {}; - } - else { - results[k] = args; - async.setImmediate(taskComplete); - } - }; - var requires = task.slice(0, Math.abs(task.length - 1)) || []; - var ready = function () { - return _reduce(requires, function (a, x) { - return (a && results.hasOwnProperty(x)); - }, true) && !results.hasOwnProperty(k); - }; - if (ready()) { - task[task.length - 1](taskCallback, results); - } - else { - var listener = function () { - if (ready()) { - removeListener(listener); - task[task.length - 1](taskCallback, results); - } - }; - addListener(listener); - } - }); - }; - - async.waterfall = function (tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor !== Array) { - var err = new Error('First argument to waterfall must be an array of functions'); - return callback(err); - } - if (!tasks.length) { - return callback(); - } - var wrapIterator = function (iterator) { - return function (err) { - if (err) { - callback.apply(null, arguments); - callback = function () {}; - } - else { - var args = Array.prototype.slice.call(arguments, 1); - var next = iterator.next(); - if (next) { - args.push(wrapIterator(next)); - } - else { - args.push(callback); - } - async.setImmediate(function () { - iterator.apply(null, args); - }); - } - }; - }; - wrapIterator(async.iterator(tasks))(); - }; - - var _parallel = function(eachfn, tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor === Array) { - eachfn.map(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - eachfn.each(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.parallel = function (tasks, callback) { - _parallel({ map: async.map, each: async.each }, tasks, callback); - }; - - async.parallelLimit = function(tasks, limit, callback) { - _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback); - }; - - async.series = function (tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor === Array) { - async.mapSeries(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - async.eachSeries(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.iterator = function (tasks) { - var makeCallback = function (index) { - var fn = function () { - if (tasks.length) { - tasks[index].apply(null, arguments); - } - return fn.next(); - }; - fn.next = function () { - return (index < tasks.length - 1) ? makeCallback(index + 1): null; - }; - return fn; - }; - return makeCallback(0); - }; - - async.apply = function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - return function () { - return fn.apply( - null, args.concat(Array.prototype.slice.call(arguments)) - ); - }; - }; - - var _concat = function (eachfn, arr, fn, callback) { - var r = []; - eachfn(arr, function (x, cb) { - fn(x, function (err, y) { - r = r.concat(y || []); - cb(err); - }); - }, function (err) { - callback(err, r); - }); - }; - async.concat = doParallel(_concat); - async.concatSeries = doSeries(_concat); - - async.whilst = function (test, iterator, callback) { - if (test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.whilst(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.doWhilst = function (iterator, test, callback) { - iterator(function (err) { - if (err) { - return callback(err); - } - if (test()) { - async.doWhilst(iterator, test, callback); - } - else { - callback(); - } - }); - }; - - async.until = function (test, iterator, callback) { - if (!test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.until(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.doUntil = function (iterator, test, callback) { - iterator(function (err) { - if (err) { - return callback(err); - } - if (!test()) { - async.doUntil(iterator, test, callback); - } - else { - callback(); - } - }); - }; - - async.queue = function (worker, concurrency) { - if (concurrency === undefined) { - concurrency = 1; - } - function _insert(q, data, pos, callback) { - if(data.constructor !== Array) { - data = [data]; - } - _each(data, function(task) { - var item = { - data: task, - callback: typeof callback === 'function' ? callback : null - }; - - if (pos) { - q.tasks.unshift(item); - } else { - q.tasks.push(item); - } - - if (q.saturated && q.tasks.length === concurrency) { - q.saturated(); - } - async.setImmediate(q.process); - }); - } - - var workers = 0; - var q = { - tasks: [], - concurrency: concurrency, - saturated: null, - empty: null, - drain: null, - push: function (data, callback) { - _insert(q, data, false, callback); - }, - unshift: function (data, callback) { - _insert(q, data, true, callback); - }, - process: function () { - if (workers < q.concurrency && q.tasks.length) { - var task = q.tasks.shift(); - if (q.empty && q.tasks.length === 0) { - q.empty(); - } - workers += 1; - var next = function () { - workers -= 1; - if (task.callback) { - task.callback.apply(task, arguments); - } - if (q.drain && q.tasks.length + workers === 0) { - q.drain(); - } - q.process(); - }; - var cb = only_once(next); - worker(task.data, cb); - } - }, - length: function () { - return q.tasks.length; - }, - running: function () { - return workers; - } - }; - return q; - }; - - async.cargo = function (worker, payload) { - var working = false, - tasks = []; - - var cargo = { - tasks: tasks, - payload: payload, - saturated: null, - empty: null, - drain: null, - push: function (data, callback) { - if(data.constructor !== Array) { - data = [data]; - } - _each(data, function(task) { - tasks.push({ - data: task, - callback: typeof callback === 'function' ? callback : null - }); - if (cargo.saturated && tasks.length === payload) { - cargo.saturated(); - } - }); - async.setImmediate(cargo.process); - }, - process: function process() { - if (working) return; - if (tasks.length === 0) { - if(cargo.drain) cargo.drain(); - return; - } - - var ts = typeof payload === 'number' - ? tasks.splice(0, payload) - : tasks.splice(0); - - var ds = _map(ts, function (task) { - return task.data; - }); - - if(cargo.empty) cargo.empty(); - working = true; - worker(ds, function () { - working = false; - - var args = arguments; - _each(ts, function (data) { - if (data.callback) { - data.callback.apply(null, args); - } - }); - - process(); - }); - }, - length: function () { - return tasks.length; - }, - running: function () { - return working; - } - }; - return cargo; - }; - - var _console_fn = function (name) { - return function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - fn.apply(null, args.concat([function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (typeof console !== 'undefined') { - if (err) { - if (console.error) { - console.error(err); - } - } - else if (console[name]) { - _each(args, function (x) { - console[name](x); - }); - } - } - }])); - }; - }; - async.log = _console_fn('log'); - async.dir = _console_fn('dir'); - /*async.info = _console_fn('info'); - async.warn = _console_fn('warn'); - async.error = _console_fn('error');*/ - - async.memoize = function (fn, hasher) { - var memo = {}; - var queues = {}; - hasher = hasher || function (x) { - return x; - }; - var memoized = function () { - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - var key = hasher.apply(null, args); - if (key in memo) { - callback.apply(null, memo[key]); - } - else if (key in queues) { - queues[key].push(callback); - } - else { - queues[key] = [callback]; - fn.apply(null, args.concat([function () { - memo[key] = arguments; - var q = queues[key]; - delete queues[key]; - for (var i = 0, l = q.length; i < l; i++) { - q[i].apply(null, arguments); - } - }])); - } - }; - memoized.memo = memo; - memoized.unmemoized = fn; - return memoized; - }; - - async.unmemoize = function (fn) { - return function () { - return (fn.unmemoized || fn).apply(null, arguments); - }; - }; - - async.times = function (count, iterator, callback) { - var counter = []; - for (var i = 0; i < count; i++) { - counter.push(i); - } - return async.map(counter, iterator, callback); - }; - - async.timesSeries = function (count, iterator, callback) { - var counter = []; - for (var i = 0; i < count; i++) { - counter.push(i); - } - return async.mapSeries(counter, iterator, callback); - }; - - async.compose = function (/* functions... */) { - var fns = Array.prototype.reverse.call(arguments); - return function () { - var that = this; - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - async.reduce(fns, args, function (newargs, fn, cb) { - fn.apply(that, newargs.concat([function () { - var err = arguments[0]; - var nextargs = Array.prototype.slice.call(arguments, 1); - cb(err, nextargs); - }])) - }, - function (err, results) { - callback.apply(that, [err].concat(results)); - }); - }; - }; - - var _applyEach = function (eachfn, fns /*args...*/) { - var go = function () { - var that = this; - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - return eachfn(fns, function (fn, cb) { - fn.apply(that, args.concat([cb])); - }, - callback); - }; - if (arguments.length > 2) { - var args = Array.prototype.slice.call(arguments, 2); - return go.apply(this, args); - } - else { - return go; - } - }; - async.applyEach = doParallel(_applyEach); - async.applyEachSeries = doSeries(_applyEach); - - async.forever = function (fn, callback) { - function next(err) { - if (err) { - if (callback) { - return callback(err); - } - throw err; - } - fn(next); - } - next(); - }; - - // AMD / RequireJS - if (typeof define !== 'undefined' && define.amd) { - define([], function () { - return async; - }); - } - // Node.js - else if (typeof module !== 'undefined' && module.exports) { - module.exports = async; - } - // included directly via - -``` - -## Documentation - -### Collections - -* [each](#each) -* [eachSeries](#eachSeries) -* [eachLimit](#eachLimit) -* [map](#map) -* [mapSeries](#mapSeries) -* [mapLimit](#mapLimit) -* [filter](#filter) -* [filterSeries](#filterSeries) -* [reject](#reject) -* [rejectSeries](#rejectSeries) -* [reduce](#reduce) -* [reduceRight](#reduceRight) -* [detect](#detect) -* [detectSeries](#detectSeries) -* [sortBy](#sortBy) -* [some](#some) -* [every](#every) -* [concat](#concat) -* [concatSeries](#concatSeries) - -### Control Flow - -* [series](#series) -* [parallel](#parallel) -* [parallelLimit](#parallellimittasks-limit-callback) -* [whilst](#whilst) -* [doWhilst](#doWhilst) -* [until](#until) -* [doUntil](#doUntil) -* [forever](#forever) -* [waterfall](#waterfall) -* [compose](#compose) -* [applyEach](#applyEach) -* [applyEachSeries](#applyEachSeries) -* [queue](#queue) -* [cargo](#cargo) -* [auto](#auto) -* [iterator](#iterator) -* [apply](#apply) -* [nextTick](#nextTick) -* [times](#times) -* [timesSeries](#timesSeries) - -### Utils - -* [memoize](#memoize) -* [unmemoize](#unmemoize) -* [log](#log) -* [dir](#dir) -* [noConflict](#noConflict) - - -## Collections - - - -### each(arr, iterator, callback) - -Applies an iterator function to each item in an array, in parallel. -The iterator is called with an item from the list and a callback for when it -has finished. If the iterator passes an error to this callback, the main -callback for the each function is immediately called with the error. - -Note, that since this function applies the iterator to each item in parallel -there is no guarantee that the iterator functions will complete in order. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err) which must be called once it has - completed. If no error has occured, the callback should be run without - arguments or with an explicit null argument. -* callback(err) - A callback which is called after all the iterator functions - have finished, or an error has occurred. - -__Example__ - -```js -// assuming openFiles is an array of file names and saveFile is a function -// to save the modified contents of that file: - -async.each(openFiles, saveFile, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - ---------------------------------------- - - - -### eachSeries(arr, iterator, callback) - -The same as each only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. This means the iterator functions will complete in order. - - ---------------------------------------- - - - -### eachLimit(arr, limit, iterator, callback) - -The same as each only no more than "limit" iterators will be simultaneously -running at any time. - -Note that the items are not processed in batches, so there is no guarantee that - the first "limit" iterator functions will complete before any others are -started. - -__Arguments__ - -* arr - An array to iterate over. -* limit - The maximum number of iterators to run at any time. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err) which must be called once it has - completed. If no error has occured, the callback should be run without - arguments or with an explicit null argument. -* callback(err) - A callback which is called after all the iterator functions - have finished, or an error has occurred. - -__Example__ - -```js -// Assume documents is an array of JSON objects and requestApi is a -// function that interacts with a rate-limited REST api. - -async.eachLimit(documents, 20, requestApi, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - ---------------------------------------- - - -### map(arr, iterator, callback) - -Produces a new array of values by mapping each value in the given array through -the iterator function. The iterator is called with an item from the array and a -callback for when it has finished processing. The callback takes 2 arguments, -an error and the transformed item from the array. If the iterator passes an -error to this callback, the main callback for the map function is immediately -called with the error. - -Note, that since this function applies the iterator to each item in parallel -there is no guarantee that the iterator functions will complete in order, however -the results array will be in the same order as the original array. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, transformed) which must be called once - it has completed with an error (which can be null) and a transformed item. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array of the - transformed items from the original array. - -__Example__ - -```js -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - ---------------------------------------- - - -### mapSeries(arr, iterator, callback) - -The same as map only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - - ---------------------------------------- - - -### mapLimit(arr, limit, iterator, callback) - -The same as map only no more than "limit" iterators will be simultaneously -running at any time. - -Note that the items are not processed in batches, so there is no guarantee that - the first "limit" iterator functions will complete before any others are -started. - -__Arguments__ - -* arr - An array to iterate over. -* limit - The maximum number of iterators to run at any time. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, transformed) which must be called once - it has completed with an error (which can be null) and a transformed item. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array of the - transformed items from the original array. - -__Example__ - -```js -async.mapLimit(['file1','file2','file3'], 1, fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - ---------------------------------------- - - -### filter(arr, iterator, callback) - -__Alias:__ select - -Returns a new array of all the values which pass an async truth test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like fs.exists. This operation is -performed in parallel, but the results array will be in the same order as the -original. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(results) - A callback which is called after all the iterator - functions have finished. - -__Example__ - -```js -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); -``` - ---------------------------------------- - - -### filterSeries(arr, iterator, callback) - -__alias:__ selectSeries - -The same as filter only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - ---------------------------------------- - - -### reject(arr, iterator, callback) - -The opposite of filter. Removes values that pass an async truth test. - ---------------------------------------- - - -### rejectSeries(arr, iterator, callback) - -The same as reject, only the iterator is applied to each item in the array -in series. - - ---------------------------------------- - - -### reduce(arr, memo, iterator, callback) - -__aliases:__ inject, foldl - -Reduces a list of values into a single value using an async iterator to return -each successive step. Memo is the initial state of the reduction. This -function only operates in series. For performance reasons, it may make sense to -split a call to this function into a parallel map, then use the normal -Array.prototype.reduce on the results. This function is for situations where -each step in the reduction needs to be async, if you can get the data before -reducing it then it's probably a good idea to do so. - -__Arguments__ - -* arr - An array to iterate over. -* memo - The initial state of the reduction. -* iterator(memo, item, callback) - A function applied to each item in the - array to produce the next step in the reduction. The iterator is passed a - callback(err, reduction) which accepts an optional error as its first - argument, and the state of the reduction as the second. If an error is - passed to the callback, the reduction is stopped and the main callback is - immediately called with the error. -* callback(err, result) - A callback which is called after all the iterator - functions have finished. Result is the reduced value. - -__Example__ - -```js -async.reduce([1,2,3], 0, function(memo, item, callback){ - // pointless async: - process.nextTick(function(){ - callback(null, memo + item) - }); -}, function(err, result){ - // result is now equal to the last value of memo, which is 6 -}); -``` - ---------------------------------------- - - -### reduceRight(arr, memo, iterator, callback) - -__Alias:__ foldr - -Same as reduce, only operates on the items in the array in reverse order. - - ---------------------------------------- - - -### detect(arr, iterator, callback) - -Returns the first value in a list that passes an async truth test. The -iterator is applied in parallel, meaning the first iterator to return true will -fire the detect callback with that result. That means the result might not be -the first item in the original array (in terms of order) that passes the test. - -If order within the original array is important then look at detectSeries. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(result) - A callback which is called as soon as any iterator returns - true, or after all the iterator functions have finished. Result will be - the first item in the array that passes the truth test (iterator) or the - value undefined if none passed. - -__Example__ - -```js -async.detect(['file1','file2','file3'], fs.exists, function(result){ - // result now equals the first file in the list that exists -}); -``` - ---------------------------------------- - - -### detectSeries(arr, iterator, callback) - -The same as detect, only the iterator is applied to each item in the array -in series. This means the result is always the first in the original array (in -terms of array order) that passes the truth test. - - ---------------------------------------- - - -### sortBy(arr, iterator, callback) - -Sorts a list by the results of running each value through an async iterator. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, sortValue) which must be called once it - has completed with an error (which can be null) and a value to use as the sort - criteria. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is the items from - the original array sorted by the values returned by the iterator calls. - -__Example__ - -```js -async.sortBy(['file1','file2','file3'], function(file, callback){ - fs.stat(file, function(err, stats){ - callback(err, stats.mtime); - }); -}, function(err, results){ - // results is now the original array of files sorted by - // modified date -}); -``` - ---------------------------------------- - - -### some(arr, iterator, callback) - -__Alias:__ any - -Returns true if at least one element in the array satisfies an async test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like fs.exists. Once any iterator -call returns true, the main callback is immediately called. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(result) - A callback which is called as soon as any iterator returns - true, or after all the iterator functions have finished. Result will be - either true or false depending on the values of the async tests. - -__Example__ - -```js -async.some(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then at least one of the files exists -}); -``` - ---------------------------------------- - - -### every(arr, iterator, callback) - -__Alias:__ all - -Returns true if every element in the array satisfies an async test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like fs.exists. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback(truthValue) which must be called with a - boolean argument once it has completed. -* callback(result) - A callback which is called after all the iterator - functions have finished. Result will be either true or false depending on - the values of the async tests. - -__Example__ - -```js -async.every(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then every file exists -}); -``` - ---------------------------------------- - - -### concat(arr, iterator, callback) - -Applies an iterator to each item in a list, concatenating the results. Returns the -concatenated list. The iterators are called in parallel, and the results are -concatenated as they return. There is no guarantee that the results array will -be returned in the original order of the arguments passed to the iterator function. - -__Arguments__ - -* arr - An array to iterate over -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback(err, results) which must be called once it - has completed with an error (which can be null) and an array of results. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array containing - the concatenated results of the iterator function. - -__Example__ - -```js -async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ - // files is now a list of filenames that exist in the 3 directories -}); -``` - ---------------------------------------- - - -### concatSeries(arr, iterator, callback) - -Same as async.concat, but executes in series instead of parallel. - - -## Control Flow - - -### series(tasks, [callback]) - -Run an array of functions in series, each one running once the previous -function has completed. If any functions in the series pass an error to its -callback, no more functions are run and the callback for the series is -immediately called with the value of the error. Once the tasks have completed, -the results are passed to the final callback as an array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final callback as an object -instead of an array. This can be a more readable way of handling results from -async.series. - - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed - a callback(err, result) it must call on completion with an error (which can - be null) and an optional result value. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - -__Example__ - -```js -async.series([ - function(callback){ - // do some stuff ... - callback(null, 'one'); - }, - function(callback){ - // do some more stuff ... - callback(null, 'two'); - } -], -// optional callback -function(err, results){ - // results is now equal to ['one', 'two'] -}); - - -// an example using an object instead of an array -async.series({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equal to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallel(tasks, [callback]) - -Run an array of functions in parallel, without waiting until the previous -function has completed. If any of the functions pass an error to its -callback, the main callback is immediately called with the value of the error. -Once the tasks have completed, the results are passed to the final callback as an -array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final callback as an object -instead of an array. This can be a more readable way of handling results from -async.parallel. - - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed - a callback(err, result) it must call on completion with an error (which can - be null) and an optional result value. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - -__Example__ - -```js -async.parallel([ - function(callback){ - setTimeout(function(){ - callback(null, 'one'); - }, 200); - }, - function(callback){ - setTimeout(function(){ - callback(null, 'two'); - }, 100); - } -], -// optional callback -function(err, results){ - // the results array will equal ['one','two'] even though - // the second function had a shorter timeout. -}); - - -// an example using an object instead of an array -async.parallel({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equals to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallelLimit(tasks, limit, [callback]) - -The same as parallel only the tasks are executed in parallel with a maximum of "limit" -tasks executing at any time. - -Note that the tasks are not executed in batches, so there is no guarantee that -the first "limit" tasks will complete before any others are started. - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed - a callback(err, result) it must call on completion with an error (which can - be null) and an optional result value. -* limit - The maximum number of tasks to run at any time. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - ---------------------------------------- - - -### whilst(test, fn, callback) - -Repeatedly call fn, while test returns true. Calls the callback when stopped, -or an error occurs. - -__Arguments__ - -* test() - synchronous truth test to perform before each execution of fn. -* fn(callback) - A function to call each time the test passes. The function is - passed a callback(err) which must be called once it has completed with an - optional error argument. -* callback(err) - A callback which is called after the test fails and repeated - execution of fn has stopped. - -__Example__ - -```js -var count = 0; - -async.whilst( - function () { return count < 5; }, - function (callback) { - count++; - setTimeout(callback, 1000); - }, - function (err) { - // 5 seconds have passed - } -); -``` - ---------------------------------------- - - -### doWhilst(fn, test, callback) - -The post check version of whilst. To reflect the difference in the order of operations `test` and `fn` arguments are switched. `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. - ---------------------------------------- - - -### until(test, fn, callback) - -Repeatedly call fn, until test returns true. Calls the callback when stopped, -or an error occurs. - -The inverse of async.whilst. - ---------------------------------------- - - -### doUntil(fn, test, callback) - -Like doWhilst except the test is inverted. Note the argument ordering differs from `until`. - ---------------------------------------- - - -### forever(fn, callback) - -Calls the asynchronous function 'fn' repeatedly, in series, indefinitely. -If an error is passed to fn's callback then 'callback' is called with the -error, otherwise it will never be called. - ---------------------------------------- - - -### waterfall(tasks, [callback]) - -Runs an array of functions in series, each passing their results to the next in -the array. However, if any of the functions pass an error to the callback, the -next function is not executed and the main callback is immediately called with -the error. - -__Arguments__ - -* tasks - An array of functions to run, each function is passed a - callback(err, result1, result2, ...) it must call on completion. The first - argument is an error (which can be null) and any further arguments will be - passed as arguments in order to the next task. -* callback(err, [results]) - An optional callback to run once all the functions - have completed. This will be passed the results of the last task's callback. - - - -__Example__ - -```js -async.waterfall([ - function(callback){ - callback(null, 'one', 'two'); - }, - function(arg1, arg2, callback){ - callback(null, 'three'); - }, - function(arg1, callback){ - // arg1 now equals 'three' - callback(null, 'done'); - } -], function (err, result) { - // result now equals 'done' -}); -``` - ---------------------------------------- - -### compose(fn1, fn2...) - -Creates a function which is a composition of the passed asynchronous -functions. Each function consumes the return value of the function that -follows. Composing functions f(), g() and h() would produce the result of -f(g(h())), only this version uses callbacks to obtain the return values. - -Each function is executed with the `this` binding of the composed function. - -__Arguments__ - -* functions... - the asynchronous functions to compose - - -__Example__ - -```js -function add1(n, callback) { - setTimeout(function () { - callback(null, n + 1); - }, 10); -} - -function mul3(n, callback) { - setTimeout(function () { - callback(null, n * 3); - }, 10); -} - -var add1mul3 = async.compose(mul3, add1); - -add1mul3(4, function (err, result) { - // result now equals 15 -}); -``` - ---------------------------------------- - -### applyEach(fns, args..., callback) - -Applies the provided arguments to each function in the array, calling the -callback after all functions have completed. If you only provide the first -argument then it will return a function which lets you pass in the -arguments as if it were a single function call. - -__Arguments__ - -* fns - the asynchronous functions to all call with the same arguments -* args... - any number of separate arguments to pass to the function -* callback - the final argument should be the callback, called when all - functions have completed processing - - -__Example__ - -```js -async.applyEach([enableSearch, updateSchema], 'bucket', callback); - -// partial application example: -async.each( - buckets, - async.applyEach([enableSearch, updateSchema]), - callback -); -``` - ---------------------------------------- - - -### applyEachSeries(arr, iterator, callback) - -The same as applyEach only the functions are applied in series. - ---------------------------------------- - - -### queue(worker, concurrency) - -Creates a queue object with the specified concurrency. Tasks added to the -queue will be processed in parallel (up to the concurrency limit). If all -workers are in progress, the task is queued until one is available. Once -a worker has completed a task, the task's callback is called. - -__Arguments__ - -* worker(task, callback) - An asynchronous function for processing a queued - task, which must call its callback(err) argument when finished, with an - optional error as an argument. -* concurrency - An integer for determining how many worker functions should be - run in parallel. - -__Queue objects__ - -The queue object returned by this function has the following properties and -methods: - -* length() - a function returning the number of items waiting to be processed. -* concurrency - an integer for determining how many worker functions should be - run in parallel. This property can be changed after a queue is created to - alter the concurrency on-the-fly. -* push(task, [callback]) - add a new task to the queue, the callback is called - once the worker has finished processing the task. - instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list. -* unshift(task, [callback]) - add a new task to the front of the queue. -* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued -* empty - a callback that is called when the last item from the queue is given to a worker -* drain - a callback that is called when the last item from the queue has returned from the worker - -__Example__ - -```js -// create a queue object with concurrency 2 - -var q = async.queue(function (task, callback) { - console.log('hello ' + task.name); - callback(); -}, 2); - - -// assign a callback -q.drain = function() { - console.log('all items have been processed'); -} - -// add some items to the queue - -q.push({name: 'foo'}, function (err) { - console.log('finished processing foo'); -}); -q.push({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); - -// add some items to the queue (batch-wise) - -q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { - console.log('finished processing bar'); -}); - -// add some items to the front of the queue - -q.unshift({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); -``` - ---------------------------------------- - - -### cargo(worker, [payload]) - -Creates a cargo object with the specified payload. Tasks added to the -cargo will be processed altogether (up to the payload limit). If the -worker is in progress, the task is queued until it is available. Once -the worker has completed some tasks, each callback of those tasks is called. - -__Arguments__ - -* worker(tasks, callback) - An asynchronous function for processing an array of - queued tasks, which must call its callback(err) argument when finished, with - an optional error as an argument. -* payload - An optional integer for determining how many tasks should be - processed per round; if omitted, the default is unlimited. - -__Cargo objects__ - -The cargo object returned by this function has the following properties and -methods: - -* length() - a function returning the number of items waiting to be processed. -* payload - an integer for determining how many tasks should be - process per round. This property can be changed after a cargo is created to - alter the payload on-the-fly. -* push(task, [callback]) - add a new task to the queue, the callback is called - once the worker has finished processing the task. - instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list. -* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued -* empty - a callback that is called when the last item from the queue is given to a worker -* drain - a callback that is called when the last item from the queue has returned from the worker - -__Example__ - -```js -// create a cargo object with payload 2 - -var cargo = async.cargo(function (tasks, callback) { - for(var i=0; i -### auto(tasks, [callback]) - -Determines the best order for running functions 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. If any of -the functions pass an error to their callback, that function will not complete -(so any other functions depending on it will not run) and the main callback -will be called immediately with the error. Functions also receive an object -containing the results of functions which have completed so far. - -Note, all functions are called with a results object as a second argument, -so it is unsafe to pass functions in the tasks object which cannot handle the -extra argument. For example, this snippet of code: - -```js -async.auto({ - readData: async.apply(fs.readFile, 'data.txt', 'utf-8') -}, callback); -``` - -will have the effect of calling readFile with the results object as the last -argument, which will fail: - -```js -fs.readFile('data.txt', 'utf-8', cb, {}); -``` - -Instead, wrap the call to readFile in a function which does not forward the -results object: - -```js -async.auto({ - readData: function(cb, results){ - fs.readFile('data.txt', 'utf-8', cb); - } -}, callback); -``` - -__Arguments__ - -* tasks - An object literal containing named functions or an array of - requirements, with the function itself the last item in the array. The key - used for each function or array is used when specifying requirements. The - function receives two arguments: (1) a callback(err, result) which must be - called when finished, passing an error (which can be null) and the result of - the function's execution, and (2) a results object, containing the results of - the previously executed functions. -* callback(err, results) - An optional callback which is called when all the - tasks have been completed. The callback will receive an error as an argument - if any tasks pass an error to their callback. Results will always be passed - but if an error occurred, no other tasks will be performed, and the results - object will only contain partial results. - - -__Example__ - -```js -async.auto({ - get_data: function(callback){ - // async code to get some data - }, - make_folder: function(callback){ - // async code to create a directory to store a file in - // this is run at the same time as getting the data - }, - write_file: ['get_data', 'make_folder', function(callback){ - // once there is some data and the directory exists, - // write the data to a file in the directory - callback(null, filename); - }], - email_link: ['write_file', function(callback, results){ - // once the file is written let's email a link to it... - // results.write_file contains the filename returned by write_file. - }] -}); -``` - -This is a fairly trivial example, but to do this using the basic parallel and -series functions would look like this: - -```js -async.parallel([ - function(callback){ - // async code to get some data - }, - function(callback){ - // async code to create a directory to store a file in - // this is run at the same time as getting the data - } -], -function(err, results){ - async.series([ - function(callback){ - // once there is some data and the directory exists, - // write the data to a file in the directory - }, - function(callback){ - // once the file is written let's email a link to it... - } - ]); -}); -``` - -For a complicated series of async tasks using the auto function makes adding -new tasks much easier and makes the code more readable. - - ---------------------------------------- - - -### iterator(tasks) - -Creates an iterator function which calls the next function in the array, -returning a continuation to call the next one after that. It's also possible to -'peek' the next iterator by doing iterator.next(). - -This function is used internally by the async module but can be useful when -you want to manually control the flow of functions in series. - -__Arguments__ - -* tasks - An array of functions to run. - -__Example__ - -```js -var iterator = async.iterator([ - function(){ sys.p('one'); }, - function(){ sys.p('two'); }, - function(){ sys.p('three'); } -]); - -node> var iterator2 = iterator(); -'one' -node> var iterator3 = iterator2(); -'two' -node> iterator3(); -'three' -node> var nextfn = iterator2.next(); -node> nextfn(); -'three' -``` - ---------------------------------------- - - -### apply(function, arguments..) - -Creates a continuation function with some arguments already applied, a useful -shorthand when combined with other control flow functions. Any arguments -passed to the returned function are added to the arguments originally passed -to apply. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to automatically apply when the - continuation is called. - -__Example__ - -```js -// using apply - -async.parallel([ - async.apply(fs.writeFile, 'testfile1', 'test1'), - async.apply(fs.writeFile, 'testfile2', 'test2'), -]); - - -// the same process without using apply - -async.parallel([ - function(callback){ - fs.writeFile('testfile1', 'test1', callback); - }, - function(callback){ - fs.writeFile('testfile2', 'test2', callback); - } -]); -``` - -It's possible to pass any number of additional arguments when calling the -continuation: - -```js -node> var fn = async.apply(sys.puts, 'one'); -node> fn('two', 'three'); -one -two -three -``` - ---------------------------------------- - - -### nextTick(callback) - -Calls the callback on a later loop around the event loop. In node.js this just -calls process.nextTick, in the browser it falls back to setImmediate(callback) -if available, otherwise setTimeout(callback, 0), which means other higher priority -events may precede the execution of the callback. - -This is used internally for browser-compatibility purposes. - -__Arguments__ - -* callback - The function to call on a later loop around the event loop. - -__Example__ - -```js -var call_order = []; -async.nextTick(function(){ - call_order.push('two'); - // call_order now equals ['one','two'] -}); -call_order.push('one') -``` - - -### times(n, callback) - -Calls the callback n times and accumulates results in the same manner -you would use with async.map. - -__Arguments__ - -* n - The number of times to run the function. -* callback - The function to call n times. - -__Example__ - -```js -// Pretend this is some complicated async factory -var createUser = function(id, callback) { - callback(null, { - id: 'user' + id - }) -} -// generate 5 users -async.times(5, function(n, next){ - createUser(n, function(err, user) { - next(err, user) - }) -}, function(err, users) { - // we should now have 5 users -}); -``` - - -### timesSeries(n, callback) - -The same as times only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - - -## Utils - - -### memoize(fn, [hasher]) - -Caches the results of an async function. When creating a hash to store function -results against, the callback is omitted from the hash and an optional hash -function can be used. - -The cache of results is exposed as the `memo` property of the function returned -by `memoize`. - -__Arguments__ - -* fn - the function you to proxy and cache results from. -* hasher - an optional function for generating a custom hash for storing - results, it has all the arguments applied to it apart from the callback, and - must be synchronous. - -__Example__ - -```js -var slow_fn = function (name, callback) { - // do something - callback(null, result); -}; -var fn = async.memoize(slow_fn); - -// fn can now be used as if it were slow_fn -fn('some name', function () { - // callback -}); -``` - - -### unmemoize(fn) - -Undoes a memoized function, reverting it to the original, unmemoized -form. Comes handy in tests. - -__Arguments__ - -* fn - the memoized function - - -### log(function, arguments) - -Logs the result of an async function to the console. Only works in node.js or -in browsers that support console.log and console.error (such as FF and Chrome). -If multiple arguments are returned from the async function, console.log is -called on each argument in order. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, 'hello ' + name); - }, 1000); -}; -``` -```js -node> async.log(hello, 'world'); -'hello world' -``` - ---------------------------------------- - - -### dir(function, arguments) - -Logs the result of an async function to the console using console.dir to -display the properties of the resulting object. Only works in node.js or -in browsers that support console.dir and console.error (such as FF and Chrome). -If multiple arguments are returned from the async function, console.dir is -called on each argument in order. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, {hello: name}); - }, 1000); -}; -``` -```js -node> async.dir(hello, 'world'); -{hello: 'world'} -``` - ---------------------------------------- - - -### noConflict() - -Changes the value of async back to its original value, returning a reference to the -async object. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/async/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/async/component.json deleted file mode 100644 index bbb01154..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/async/component.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "async", - "repo": "caolan/async", - "description": "Higher-order functions and common patterns for asynchronous code", - "version": "0.1.23", - "keywords": [], - "dependencies": {}, - "development": {}, - "main": "lib/async.js", - "scripts": [ "lib/async.js" ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/async/lib/async.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/async/lib/async.js deleted file mode 100755 index 1eebb153..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/async/lib/async.js +++ /dev/null @@ -1,958 +0,0 @@ -/*global setImmediate: false, setTimeout: false, console: false */ -(function () { - - var async = {}; - - // global on the server, window in the browser - var root, previous_async; - - root = this; - if (root != null) { - previous_async = root.async; - } - - async.noConflict = function () { - root.async = previous_async; - return async; - }; - - function only_once(fn) { - var called = false; - return function() { - if (called) throw new Error("Callback was already called."); - called = true; - fn.apply(root, arguments); - } - } - - //// cross-browser compatiblity functions //// - - var _each = function (arr, iterator) { - if (arr.forEach) { - return arr.forEach(iterator); - } - for (var i = 0; i < arr.length; i += 1) { - iterator(arr[i], i, arr); - } - }; - - var _map = function (arr, iterator) { - if (arr.map) { - return arr.map(iterator); - } - var results = []; - _each(arr, function (x, i, a) { - results.push(iterator(x, i, a)); - }); - return results; - }; - - var _reduce = function (arr, iterator, memo) { - if (arr.reduce) { - return arr.reduce(iterator, memo); - } - _each(arr, function (x, i, a) { - memo = iterator(memo, x, i, a); - }); - return memo; - }; - - var _keys = function (obj) { - if (Object.keys) { - return Object.keys(obj); - } - var keys = []; - for (var k in obj) { - if (obj.hasOwnProperty(k)) { - keys.push(k); - } - } - return keys; - }; - - //// exported async module functions //// - - //// nextTick implementation with browser-compatible fallback //// - if (typeof process === 'undefined' || !(process.nextTick)) { - if (typeof setImmediate === 'function') { - async.nextTick = function (fn) { - // not a direct alias for IE10 compatibility - setImmediate(fn); - }; - async.setImmediate = async.nextTick; - } - else { - async.nextTick = function (fn) { - setTimeout(fn, 0); - }; - async.setImmediate = async.nextTick; - } - } - else { - async.nextTick = process.nextTick; - if (typeof setImmediate !== 'undefined') { - async.setImmediate = function (fn) { - // not a direct alias for IE10 compatibility - setImmediate(fn); - }; - } - else { - async.setImmediate = async.nextTick; - } - } - - async.each = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - _each(arr, function (x) { - iterator(x, only_once(function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed >= arr.length) { - callback(null); - } - } - })); - }); - }; - async.forEach = async.each; - - async.eachSeries = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - var iterate = function () { - iterator(arr[completed], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed >= arr.length) { - callback(null); - } - else { - iterate(); - } - } - }); - }; - iterate(); - }; - async.forEachSeries = async.eachSeries; - - async.eachLimit = function (arr, limit, iterator, callback) { - var fn = _eachLimit(limit); - fn.apply(null, [arr, iterator, callback]); - }; - async.forEachLimit = async.eachLimit; - - var _eachLimit = function (limit) { - - return function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length || limit <= 0) { - return callback(); - } - var completed = 0; - var started = 0; - var running = 0; - - (function replenish () { - if (completed >= arr.length) { - return callback(); - } - - while (running < limit && started < arr.length) { - started += 1; - running += 1; - iterator(arr[started - 1], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - running -= 1; - if (completed >= arr.length) { - callback(); - } - else { - replenish(); - } - } - }); - } - })(); - }; - }; - - - var doParallel = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.each].concat(args)); - }; - }; - var doParallelLimit = function(limit, fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [_eachLimit(limit)].concat(args)); - }; - }; - var doSeries = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.eachSeries].concat(args)); - }; - }; - - - var _asyncMap = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (err, v) { - results[x.index] = v; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - }; - async.map = doParallel(_asyncMap); - async.mapSeries = doSeries(_asyncMap); - async.mapLimit = function (arr, limit, iterator, callback) { - return _mapLimit(limit)(arr, iterator, callback); - }; - - var _mapLimit = function(limit) { - return doParallelLimit(limit, _asyncMap); - }; - - // reduce only has a series version, as doing reduce in parallel won't - // work in many situations. - async.reduce = function (arr, memo, iterator, callback) { - async.eachSeries(arr, function (x, callback) { - iterator(memo, x, function (err, v) { - memo = v; - callback(err); - }); - }, function (err) { - callback(err, memo); - }); - }; - // inject alias - async.inject = async.reduce; - // foldl alias - async.foldl = async.reduce; - - async.reduceRight = function (arr, memo, iterator, callback) { - var reversed = _map(arr, function (x) { - return x; - }).reverse(); - async.reduce(reversed, memo, iterator, callback); - }; - // foldr alias - async.foldr = async.reduceRight; - - var _filter = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.filter = doParallel(_filter); - async.filterSeries = doSeries(_filter); - // select alias - async.select = async.filter; - async.selectSeries = async.filterSeries; - - var _reject = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (!v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.reject = doParallel(_reject); - async.rejectSeries = doSeries(_reject); - - var _detect = function (eachfn, arr, iterator, main_callback) { - eachfn(arr, function (x, callback) { - iterator(x, function (result) { - if (result) { - main_callback(x); - main_callback = function () {}; - } - else { - callback(); - } - }); - }, function (err) { - main_callback(); - }); - }; - async.detect = doParallel(_detect); - async.detectSeries = doSeries(_detect); - - async.some = function (arr, iterator, main_callback) { - async.each(arr, function (x, callback) { - iterator(x, function (v) { - if (v) { - main_callback(true); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(false); - }); - }; - // any alias - async.any = async.some; - - async.every = function (arr, iterator, main_callback) { - async.each(arr, function (x, callback) { - iterator(x, function (v) { - if (!v) { - main_callback(false); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(true); - }); - }; - // all alias - async.all = async.every; - - async.sortBy = function (arr, iterator, callback) { - async.map(arr, function (x, callback) { - iterator(x, function (err, criteria) { - if (err) { - callback(err); - } - else { - callback(null, {value: x, criteria: criteria}); - } - }); - }, function (err, results) { - if (err) { - return callback(err); - } - else { - var fn = function (left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }; - callback(null, _map(results.sort(fn), function (x) { - return x.value; - })); - } - }); - }; - - async.auto = function (tasks, callback) { - callback = callback || function () {}; - var keys = _keys(tasks); - if (!keys.length) { - return callback(null); - } - - var results = {}; - - var listeners = []; - var addListener = function (fn) { - listeners.unshift(fn); - }; - var removeListener = function (fn) { - for (var i = 0; i < listeners.length; i += 1) { - if (listeners[i] === fn) { - listeners.splice(i, 1); - return; - } - } - }; - var taskComplete = function () { - _each(listeners.slice(0), function (fn) { - fn(); - }); - }; - - addListener(function () { - if (_keys(results).length === keys.length) { - callback(null, results); - callback = function () {}; - } - }); - - _each(keys, function (k) { - var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k]; - var taskCallback = function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - if (err) { - var safeResults = {}; - _each(_keys(results), function(rkey) { - safeResults[rkey] = results[rkey]; - }); - safeResults[k] = args; - callback(err, safeResults); - // stop subsequent errors hitting callback multiple times - callback = function () {}; - } - else { - results[k] = args; - async.setImmediate(taskComplete); - } - }; - var requires = task.slice(0, Math.abs(task.length - 1)) || []; - var ready = function () { - return _reduce(requires, function (a, x) { - return (a && results.hasOwnProperty(x)); - }, true) && !results.hasOwnProperty(k); - }; - if (ready()) { - task[task.length - 1](taskCallback, results); - } - else { - var listener = function () { - if (ready()) { - removeListener(listener); - task[task.length - 1](taskCallback, results); - } - }; - addListener(listener); - } - }); - }; - - async.waterfall = function (tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor !== Array) { - var err = new Error('First argument to waterfall must be an array of functions'); - return callback(err); - } - if (!tasks.length) { - return callback(); - } - var wrapIterator = function (iterator) { - return function (err) { - if (err) { - callback.apply(null, arguments); - callback = function () {}; - } - else { - var args = Array.prototype.slice.call(arguments, 1); - var next = iterator.next(); - if (next) { - args.push(wrapIterator(next)); - } - else { - args.push(callback); - } - async.setImmediate(function () { - iterator.apply(null, args); - }); - } - }; - }; - wrapIterator(async.iterator(tasks))(); - }; - - var _parallel = function(eachfn, tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor === Array) { - eachfn.map(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - eachfn.each(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.parallel = function (tasks, callback) { - _parallel({ map: async.map, each: async.each }, tasks, callback); - }; - - async.parallelLimit = function(tasks, limit, callback) { - _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback); - }; - - async.series = function (tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor === Array) { - async.mapSeries(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - async.eachSeries(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.iterator = function (tasks) { - var makeCallback = function (index) { - var fn = function () { - if (tasks.length) { - tasks[index].apply(null, arguments); - } - return fn.next(); - }; - fn.next = function () { - return (index < tasks.length - 1) ? makeCallback(index + 1): null; - }; - return fn; - }; - return makeCallback(0); - }; - - async.apply = function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - return function () { - return fn.apply( - null, args.concat(Array.prototype.slice.call(arguments)) - ); - }; - }; - - var _concat = function (eachfn, arr, fn, callback) { - var r = []; - eachfn(arr, function (x, cb) { - fn(x, function (err, y) { - r = r.concat(y || []); - cb(err); - }); - }, function (err) { - callback(err, r); - }); - }; - async.concat = doParallel(_concat); - async.concatSeries = doSeries(_concat); - - async.whilst = function (test, iterator, callback) { - if (test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.whilst(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.doWhilst = function (iterator, test, callback) { - iterator(function (err) { - if (err) { - return callback(err); - } - if (test()) { - async.doWhilst(iterator, test, callback); - } - else { - callback(); - } - }); - }; - - async.until = function (test, iterator, callback) { - if (!test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.until(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.doUntil = function (iterator, test, callback) { - iterator(function (err) { - if (err) { - return callback(err); - } - if (!test()) { - async.doUntil(iterator, test, callback); - } - else { - callback(); - } - }); - }; - - async.queue = function (worker, concurrency) { - if (concurrency === undefined) { - concurrency = 1; - } - function _insert(q, data, pos, callback) { - if(data.constructor !== Array) { - data = [data]; - } - _each(data, function(task) { - var item = { - data: task, - callback: typeof callback === 'function' ? callback : null - }; - - if (pos) { - q.tasks.unshift(item); - } else { - q.tasks.push(item); - } - - if (q.saturated && q.tasks.length === concurrency) { - q.saturated(); - } - async.setImmediate(q.process); - }); - } - - var workers = 0; - var q = { - tasks: [], - concurrency: concurrency, - saturated: null, - empty: null, - drain: null, - push: function (data, callback) { - _insert(q, data, false, callback); - }, - unshift: function (data, callback) { - _insert(q, data, true, callback); - }, - process: function () { - if (workers < q.concurrency && q.tasks.length) { - var task = q.tasks.shift(); - if (q.empty && q.tasks.length === 0) { - q.empty(); - } - workers += 1; - var next = function () { - workers -= 1; - if (task.callback) { - task.callback.apply(task, arguments); - } - if (q.drain && q.tasks.length + workers === 0) { - q.drain(); - } - q.process(); - }; - var cb = only_once(next); - worker(task.data, cb); - } - }, - length: function () { - return q.tasks.length; - }, - running: function () { - return workers; - } - }; - return q; - }; - - async.cargo = function (worker, payload) { - var working = false, - tasks = []; - - var cargo = { - tasks: tasks, - payload: payload, - saturated: null, - empty: null, - drain: null, - push: function (data, callback) { - if(data.constructor !== Array) { - data = [data]; - } - _each(data, function(task) { - tasks.push({ - data: task, - callback: typeof callback === 'function' ? callback : null - }); - if (cargo.saturated && tasks.length === payload) { - cargo.saturated(); - } - }); - async.setImmediate(cargo.process); - }, - process: function process() { - if (working) return; - if (tasks.length === 0) { - if(cargo.drain) cargo.drain(); - return; - } - - var ts = typeof payload === 'number' - ? tasks.splice(0, payload) - : tasks.splice(0); - - var ds = _map(ts, function (task) { - return task.data; - }); - - if(cargo.empty) cargo.empty(); - working = true; - worker(ds, function () { - working = false; - - var args = arguments; - _each(ts, function (data) { - if (data.callback) { - data.callback.apply(null, args); - } - }); - - process(); - }); - }, - length: function () { - return tasks.length; - }, - running: function () { - return working; - } - }; - return cargo; - }; - - var _console_fn = function (name) { - return function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - fn.apply(null, args.concat([function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (typeof console !== 'undefined') { - if (err) { - if (console.error) { - console.error(err); - } - } - else if (console[name]) { - _each(args, function (x) { - console[name](x); - }); - } - } - }])); - }; - }; - async.log = _console_fn('log'); - async.dir = _console_fn('dir'); - /*async.info = _console_fn('info'); - async.warn = _console_fn('warn'); - async.error = _console_fn('error');*/ - - async.memoize = function (fn, hasher) { - var memo = {}; - var queues = {}; - hasher = hasher || function (x) { - return x; - }; - var memoized = function () { - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - var key = hasher.apply(null, args); - if (key in memo) { - callback.apply(null, memo[key]); - } - else if (key in queues) { - queues[key].push(callback); - } - else { - queues[key] = [callback]; - fn.apply(null, args.concat([function () { - memo[key] = arguments; - var q = queues[key]; - delete queues[key]; - for (var i = 0, l = q.length; i < l; i++) { - q[i].apply(null, arguments); - } - }])); - } - }; - memoized.memo = memo; - memoized.unmemoized = fn; - return memoized; - }; - - async.unmemoize = function (fn) { - return function () { - return (fn.unmemoized || fn).apply(null, arguments); - }; - }; - - async.times = function (count, iterator, callback) { - var counter = []; - for (var i = 0; i < count; i++) { - counter.push(i); - } - return async.map(counter, iterator, callback); - }; - - async.timesSeries = function (count, iterator, callback) { - var counter = []; - for (var i = 0; i < count; i++) { - counter.push(i); - } - return async.mapSeries(counter, iterator, callback); - }; - - async.compose = function (/* functions... */) { - var fns = Array.prototype.reverse.call(arguments); - return function () { - var that = this; - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - async.reduce(fns, args, function (newargs, fn, cb) { - fn.apply(that, newargs.concat([function () { - var err = arguments[0]; - var nextargs = Array.prototype.slice.call(arguments, 1); - cb(err, nextargs); - }])) - }, - function (err, results) { - callback.apply(that, [err].concat(results)); - }); - }; - }; - - var _applyEach = function (eachfn, fns /*args...*/) { - var go = function () { - var that = this; - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - return eachfn(fns, function (fn, cb) { - fn.apply(that, args.concat([cb])); - }, - callback); - }; - if (arguments.length > 2) { - var args = Array.prototype.slice.call(arguments, 2); - return go.apply(this, args); - } - else { - return go; - } - }; - async.applyEach = doParallel(_applyEach); - async.applyEachSeries = doSeries(_applyEach); - - async.forever = function (fn, callback) { - function next(err) { - if (err) { - if (callback) { - return callback(err); - } - throw err; - } - fn(next); - } - next(); - }; - - // AMD / RequireJS - if (typeof define !== 'undefined' && define.amd) { - define([], function () { - return async; - }); - } - // Node.js - else if (typeof module !== 'undefined' && module.exports) { - module.exports = async; - } - // included directly via - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/example.js deleted file mode 100644 index b1e03a4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/example.js +++ /dev/null @@ -1,77 +0,0 @@ -var colors = require('./colors'); - -//colors.mode = "browser"; - -var test = colors.red("hopefully colorless output"); -console.log('Rainbows are fun!'.rainbow); -console.log('So '.italic + 'are'.underline + ' styles! '.bold + 'inverse'.inverse); // styles not widely supported -console.log('Chains are also cool.'.bold.italic.underline.red); // styles not widely supported -//console.log('zalgo time!'.zalgo); -console.log(test.stripColors); -console.log("a".grey + " b".black); -console.log("Zebras are so fun!".zebra); -console.log('background color attack!'.black.whiteBG) - -// -// Remark: .strikethrough may not work with Mac OS Terminal App -// -console.log("This is " + "not".strikethrough + " fun."); -console.log(colors.rainbow('Rainbows are fun!')); -console.log(colors.italic('So ') + colors.underline('are') + colors.bold(' styles! ') + colors.inverse('inverse')); // styles not widely supported -console.log(colors.bold(colors.italic(colors.underline(colors.red('Chains are also cool.'))))); // styles not widely supported -//console.log(colors.zalgo('zalgo time!')); -console.log(colors.stripColors(test)); -console.log(colors.grey("a") + colors.black(" b")); - -colors.addSequencer("america", function(letter, i, exploded) { - if(letter === " ") return letter; - switch(i%3) { - case 0: return letter.red; - case 1: return letter.white; - case 2: return letter.blue; - } -}); - -colors.addSequencer("random", (function() { - var available = ['bold', 'underline', 'italic', 'inverse', 'grey', 'yellow', 'red', 'green', 'blue', 'white', 'cyan', 'magenta']; - - return function(letter, i, exploded) { - return letter === " " ? letter : letter[available[Math.round(Math.random() * (available.length - 1))]]; - }; -})()); - -console.log("AMERICA! F--K YEAH!".america); -console.log("So apparently I've been to Mars, with all the little green men. But you know, I don't recall.".random); - -// -// Custom themes -// - -// Load theme with JSON literal -colors.setTheme({ - silly: 'rainbow', - input: 'grey', - verbose: 'cyan', - prompt: 'grey', - info: 'green', - data: 'grey', - help: 'cyan', - warn: 'yellow', - debug: 'blue', - error: 'red' -}); - -// outputs red text -console.log("this is an error".error); - -// outputs yellow text -console.log("this is a warning".warn); - -// outputs grey text -console.log("this is an input".input); - -// Load a theme from file -colors.setTheme('./themes/winston-dark.js'); - -console.log("this is an input".input); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/package.json deleted file mode 100644 index 800e8677..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "colors", - "description": "get colors in your node.js console like what", - "version": "0.6.2", - "author": { - "name": "Marak Squires" - }, - "homepage": "https://github.com/Marak/colors.js", - "bugs": { - "url": "https://github.com/Marak/colors.js/issues" - }, - "keywords": [ - "ansi", - "terminal", - "colors" - ], - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/Marak/colors.js.git" - }, - "engines": { - "node": ">=0.1.90" - }, - "main": "colors", - "_id": "colors@0.6.2", - "dist": { - "shasum": "2423fe6678ac0c5dae8852e5d0e5be08c997abcc", - "tarball": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" - }, - "_from": "colors@>=0.6.0 <0.7.0", - "_npmVersion": "1.2.30", - "_npmUser": { - "name": "marak", - "email": "marak.squires@gmail.com" - }, - "maintainers": [ - { - "name": "marak", - "email": "marak.squires@gmail.com" - } - ], - "directories": {}, - "_shasum": "2423fe6678ac0c5dae8852e5d0e5be08c997abcc", - "_resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/test.js deleted file mode 100644 index c32417d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/test.js +++ /dev/null @@ -1,70 +0,0 @@ -var assert = require('assert'), - colors = require('./colors'); - -var s = 'string'; - -function a(s, code) { - return '\x1B[' + code.toString() + 'm' + s + '\x1B[39m'; -} - -function aE(s, color, code) { - assert.equal(s[color], a(s, code)); - assert.equal(colors[color](s), a(s, code)); - assert.equal(s[color], colors[color](s)); - assert.equal(s[color].stripColors, s); - assert.equal(s[color].stripColors, colors.stripColors(s)); -} - -function h(s, color) { - return '' + s + ''; -} - -var stylesColors = ['white', 'black', 'blue', 'cyan', 'green', 'magenta', 'red', 'yellow']; -var stylesAll = stylesColors.concat(['bold', 'italic', 'underline', 'inverse', 'rainbow']); - -colors.mode = 'console'; -assert.equal(s.bold, '\x1B[1m' + s + '\x1B[22m'); -assert.equal(s.italic, '\x1B[3m' + s + '\x1B[23m'); -assert.equal(s.underline, '\x1B[4m' + s + '\x1B[24m'); -assert.equal(s.strikethrough, '\x1B[9m' + s + '\x1B[29m'); -assert.equal(s.inverse, '\x1B[7m' + s + '\x1B[27m'); -assert.ok(s.rainbow); -aE(s, 'white', 37); -aE(s, 'grey', 90); -aE(s, 'black', 30); -aE(s, 'blue', 34); -aE(s, 'cyan', 36); -aE(s, 'green', 32); -aE(s, 'magenta', 35); -aE(s, 'red', 31); -aE(s, 'yellow', 33); -assert.equal(s, 'string'); - -colors.setTheme({error:'red'}); - -assert.equal(typeof("astring".red),'string'); -assert.equal(typeof("astring".error),'string'); - -colors.mode = 'browser'; -assert.equal(s.bold, '' + s + ''); -assert.equal(s.italic, '' + s + ''); -assert.equal(s.underline, '' + s + ''); -assert.equal(s.strikethrough, '' + s + ''); -assert.equal(s.inverse, '' + s + ''); -assert.ok(s.rainbow); -stylesColors.forEach(function (color) { - assert.equal(s[color], h(s, color)); - assert.equal(colors[color](s), h(s, color)); -}); - -assert.equal(typeof("astring".red),'string'); -assert.equal(typeof("astring".error),'string'); - -colors.mode = 'none'; -stylesAll.forEach(function (style) { - assert.equal(s[style], s); - assert.equal(colors[style](s), s); -}); - -assert.equal(typeof("astring".red),'string'); -assert.equal(typeof("astring".error),'string'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/themes/winston-dark.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/themes/winston-dark.js deleted file mode 100644 index 49a905ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/themes/winston-dark.js +++ /dev/null @@ -1,12 +0,0 @@ -module['exports'] = { - silly: 'rainbow', - input: 'black', - verbose: 'cyan', - prompt: 'grey', - info: 'green', - data: 'grey', - help: 'cyan', - warn: 'yellow', - debug: 'blue', - error: 'red' -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/themes/winston-light.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/themes/winston-light.js deleted file mode 100644 index 571972c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/colors/themes/winston-light.js +++ /dev/null @@ -1,12 +0,0 @@ -module['exports'] = { - silly: 'rainbow', - input: 'grey', - verbose: 'cyan', - prompt: 'grey', - info: 'green', - data: 'grey', - help: 'cyan', - warn: 'yellow', - debug: 'blue', - error: 'red' -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/cycle/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/cycle/README.md deleted file mode 100644 index de9a06d0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/cycle/README.md +++ /dev/null @@ -1,49 +0,0 @@ -Fork of https://github.com/douglascrockford/JSON-js, maintained in npm as `cycle`. - -# Contributors - -* Douglas Crockford -* Nuno Job -* Justin Warkentin - -# JSON in JavaScript - -Douglas Crockford -douglas@crockford.com - -2010-11-18 - - -JSON is a light-weight, language independent, data interchange format. -See http://www.JSON.org/ - -The files in this collection implement JSON encoders/decoders in JavaScript. - -JSON became a built-in feature of JavaScript when the ECMAScript Programming -Language Standard - Fifth Edition was adopted by the ECMA General Assembly -in December 2009. Most of the files in this collection are for applications -that are expected to run in obsolete web browsers. For most purposes, json2.js -is the best choice. - - -json2.js: This file creates a JSON property in the global object, if there -isn't already one, setting its value to an object containing a stringify -method and a parse method. The parse method uses the eval method to do the -parsing, guarding it with several regular expressions to defend against -accidental code execution hazards. On current browsers, this file does nothing, -prefering the built-in JSON object. - -json.js: This file does everything that json2.js does. It also adds a -toJSONString method and a parseJSON method to Object.prototype. Use of this -file is not recommended. - -json_parse.js: This file contains an alternative JSON parse function that -uses recursive descent instead of eval. - -json_parse_state.js: This files contains an alternative JSON parse function that -uses a state machine instead of eval. - -cycle.js: This file contains two functions, JSON.decycle and JSON.retrocycle, -which make it possible to encode cyclical structures and dags in JSON, and to -then recover them. JSONPath is used to represent the links. -http://GOESSNER.net/articles/JsonPath/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/cycle/cycle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/cycle/cycle.js deleted file mode 100644 index 2e776ad9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/cycle/cycle.js +++ /dev/null @@ -1,170 +0,0 @@ -/* - cycle.js - 2013-02-19 - - Public Domain. - - NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. - - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html - - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. -*/ - -/*jslint evil: true, regexp: true */ - -/*members $ref, apply, call, decycle, hasOwnProperty, length, prototype, push, - retrocycle, stringify, test, toString -*/ - -var cycle = exports; - -cycle.decycle = function decycle(object) { - 'use strict'; - -// Make a deep copy of an object or array, assuring that there is at most -// one instance of each object or array in the resulting structure. The -// duplicate references (which might be forming cycles) are replaced with -// an object of the form -// {$ref: PATH} -// where the PATH is a JSONPath string that locates the first occurance. -// So, -// var a = []; -// a[0] = a; -// return JSON.stringify(JSON.decycle(a)); -// produces the string '[{"$ref":"$"}]'. - -// JSONPath is used to locate the unique object. $ indicates the top level of -// the object or array. [NUMBER] or [STRING] indicates a child member or -// property. - - var objects = [], // Keep a reference to each unique object or array - paths = []; // Keep the path to each unique object or array - - return (function derez(value, path) { - -// The derez recurses through the object, producing the deep copy. - - var i, // The loop counter - name, // Property name - nu; // The new object or array - -// typeof null === 'object', so go on if this value is really an object but not -// one of the weird builtin objects. - - if (typeof value === 'object' && value !== null && - !(value instanceof Boolean) && - !(value instanceof Date) && - !(value instanceof Number) && - !(value instanceof RegExp) && - !(value instanceof String)) { - -// If the value is an object or array, look to see if we have already -// encountered it. If so, return a $ref/path object. This is a hard way, -// linear search that will get slower as the number of unique objects grows. - - for (i = 0; i < objects.length; i += 1) { - if (objects[i] === value) { - return {$ref: paths[i]}; - } - } - -// Otherwise, accumulate the unique value and its path. - - objects.push(value); - paths.push(path); - -// If it is an array, replicate the array. - - if (Object.prototype.toString.apply(value) === '[object Array]') { - nu = []; - for (i = 0; i < value.length; i += 1) { - nu[i] = derez(value[i], path + '[' + i + ']'); - } - } else { - -// If it is an object, replicate the object. - - nu = {}; - for (name in value) { - if (Object.prototype.hasOwnProperty.call(value, name)) { - nu[name] = derez(value[name], - path + '[' + JSON.stringify(name) + ']'); - } - } - } - return nu; - } - return value; - }(object, '$')); -}; - - -cycle.retrocycle = function retrocycle($) { - 'use strict'; - -// Restore an object that was reduced by decycle. Members whose values are -// objects of the form -// {$ref: PATH} -// are replaced with references to the value found by the PATH. This will -// restore cycles. The object will be mutated. - -// The eval function is used to locate the values described by a PATH. The -// root object is kept in a $ variable. A regular expression is used to -// assure that the PATH is extremely well formed. The regexp contains nested -// * quantifiers. That has been known to have extremely bad performance -// problems on some browsers for very long strings. A PATH is expected to be -// reasonably short. A PATH is allowed to belong to a very restricted subset of -// Goessner's JSONPath. - -// So, -// var s = '[{"$ref":"$"}]'; -// return JSON.retrocycle(JSON.parse(s)); -// produces an array containing a single element which is the array itself. - - var px = - /^\$(?:\[(?:\d+|\"(?:[^\\\"\u0000-\u001f]|\\([\\\"\/bfnrt]|u[0-9a-zA-Z]{4}))*\")\])*$/; - - (function rez(value) { - -// The rez function walks recursively through the object looking for $ref -// properties. When it finds one that has a value that is a path, then it -// replaces the $ref object with a reference to the value that is found by -// the path. - - var i, item, name, path; - - if (value && typeof value === 'object') { - if (Object.prototype.toString.apply(value) === '[object Array]') { - for (i = 0; i < value.length; i += 1) { - item = value[i]; - if (item && typeof item === 'object') { - path = item.$ref; - if (typeof path === 'string' && px.test(path)) { - value[i] = eval(path); - } else { - rez(item); - } - } - } - } else { - for (name in value) { - if (typeof value[name] === 'object') { - item = value[name]; - if (item) { - path = item.$ref; - if (typeof path === 'string' && px.test(path)) { - value[name] = eval(path); - } else { - rez(item); - } - } - } - } - } - } - }($)); - return $; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/cycle/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/cycle/package.json deleted file mode 100644 index f8031396..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/cycle/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "cycle", - "description": "decycle your json", - "author": "", - "version": "1.0.3", - "main": "./cycle.js", - "homepage": "https://github.com/douglascrockford/JSON-js", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/dscape/cycle.git" - }, - "bugs": { - "url": "http://github.com/douglascrockford/JSON-js/issues" - }, - "keywords": [ - "json", - "cycle", - "stringify", - "parse" - ], - "engines": { - "node": ">=0.4.0" - }, - "readme": "Fork of https://github.com/douglascrockford/JSON-js, maintained in npm as `cycle`.\n\n# Contributors\n\n* Douglas Crockford\n* Nuno Job\n* Justin Warkentin\n\n# JSON in JavaScript\n\nDouglas Crockford\ndouglas@crockford.com\n\n2010-11-18\n\n\nJSON is a light-weight, language independent, data interchange format.\nSee http://www.JSON.org/\n\nThe files in this collection implement JSON encoders/decoders in JavaScript.\n\nJSON became a built-in feature of JavaScript when the ECMAScript Programming\nLanguage Standard - Fifth Edition was adopted by the ECMA General Assembly\nin December 2009. Most of the files in this collection are for applications\nthat are expected to run in obsolete web browsers. For most purposes, json2.js\nis the best choice.\n\n\njson2.js: This file creates a JSON property in the global object, if there\nisn't already one, setting its value to an object containing a stringify\nmethod and a parse method. The parse method uses the eval method to do the\nparsing, guarding it with several regular expressions to defend against\naccidental code execution hazards. On current browsers, this file does nothing,\nprefering the built-in JSON object.\n\njson.js: This file does everything that json2.js does. It also adds a\ntoJSONString method and a parseJSON method to Object.prototype. Use of this\nfile is not recommended.\n\njson_parse.js: This file contains an alternative JSON parse function that\nuses recursive descent instead of eval.\n\njson_parse_state.js: This files contains an alternative JSON parse function that\nuses a state machine instead of eval.\n\ncycle.js: This file contains two functions, JSON.decycle and JSON.retrocycle,\nwhich make it possible to encode cyclical structures and dags in JSON, and to\nthen recover them. JSONPath is used to represent the links.\nhttp://GOESSNER.net/articles/JsonPath/\n", - "readmeFilename": "README.md", - "_id": "cycle@1.0.3", - "dist": { - "shasum": "21e80b2be8580f98b468f379430662b046c34ad2", - "tarball": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" - }, - "_from": "cycle@>=1.0.0 <1.1.0", - "_npmVersion": "1.2.32", - "_npmUser": { - "name": "dscape", - "email": "nunojobpinto@gmail.com" - }, - "maintainers": [ - { - "name": "dscape", - "email": "nunojobpinto@gmail.com" - } - ], - "directories": {}, - "_shasum": "21e80b2be8580f98b468f379430662b046c34ad2", - "_resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/LICENSE deleted file mode 100644 index a1edd93b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2009 cloudhead - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/Makefile deleted file mode 100644 index a121deaf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -test: - @@node test/eyes-test.js - -.PHONY: test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/README.md deleted file mode 100644 index c4f6f769..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/README.md +++ /dev/null @@ -1,73 +0,0 @@ -eyes -==== - -a customizable value inspector for Node.js - -synopsis --------- - -I was tired of looking at cluttered output in the console -- something needed to be done, -`sys.inspect()` didn't display regexps correctly, and was too verbose, and I had an hour or two to spare. -So I decided to have some fun. _eyes_ were born. - -![eyes-ss](http://dl.dropbox.com/u/251849/eyes-js-ss.gif) - -_example of the output of a user-customized eyes.js inspector_ - -*eyes* also deals with circular objects in an intelligent way, and can pretty-print object literals. - -usage ------ - - var inspect = require('eyes').inspector({styles: {all: 'magenta'}}); - - inspect(something); // inspect with the settings passed to `inspector` - -or - - var eyes = require('eyes'); - - eyes.inspect(something); // inspect with the default settings - -you can pass a _label_ to `inspect()`, to keep track of your inspections: - - eyes.inspect(something, "a random value"); - -If you want to return the output of eyes without printing it, you can set it up this way: - - var inspect = require('eyes').inspector({ stream: null }); - - sys.puts(inspect({ something: 42 })); - -customization -------------- - -These are the default styles and settings used by _eyes_. - - styles: { // Styles applied to stdout - all: 'cyan', // Overall style applied to everything - label: 'underline', // Inspection labels, like 'array' in `array: [1, 2, 3]` - other: 'inverted', // Objects which don't have a literal representation, such as functions - key: 'bold', // The keys in object literals, like 'a' in `{a: 1}` - special: 'grey', // null, undefined... - string: 'green', - number: 'magenta', - bool: 'blue', // true false - regexp: 'green', // /\d+/ - }, - - pretty: true, // Indent object literals - hideFunctions: false, // Don't output functions at all - stream: process.stdout, // Stream to write to, or null - maxLength: 2048 // Truncate output if longer - -You can overwrite them with your own, by passing a similar object to `inspector()` or `inspect()`. - - var inspect = require('eyes').inspector({ - styles: { - all: 'magenta', - special: 'bold' - }, - maxLength: 512 - }); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/lib/eyes.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/lib/eyes.js deleted file mode 100644 index 10d964b9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/lib/eyes.js +++ /dev/null @@ -1,236 +0,0 @@ -// -// Eyes.js - a customizable value inspector for Node.js -// -// usage: -// -// var inspect = require('eyes').inspector({styles: {all: 'magenta'}}); -// inspect(something); // inspect with the settings passed to `inspector` -// -// or -// -// var eyes = require('eyes'); -// eyes.inspect(something); // inspect with the default settings -// -var eyes = exports, - stack = []; - -eyes.defaults = { - styles: { // Styles applied to stdout - all: 'cyan', // Overall style applied to everything - label: 'underline', // Inspection labels, like 'array' in `array: [1, 2, 3]` - other: 'inverted', // Objects which don't have a literal representation, such as functions - key: 'bold', // The keys in object literals, like 'a' in `{a: 1}` - special: 'grey', // null, undefined... - string: 'green', - number: 'magenta', - bool: 'blue', // true false - regexp: 'green', // /\d+/ - }, - pretty: true, // Indent object literals - hideFunctions: false, - showHidden: false, - stream: process.stdout, - maxLength: 2048 // Truncate output if longer -}; - -// Return a curried inspect() function, with the `options` argument filled in. -eyes.inspector = function (options) { - var that = this; - return function (obj, label, opts) { - return that.inspect.call(that, obj, label, - merge(options || {}, opts || {})); - }; -}; - -// If we have a `stream` defined, use it to print a styled string, -// if not, we just return the stringified object. -eyes.inspect = function (obj, label, options) { - options = merge(this.defaults, options || {}); - - if (options.stream) { - return this.print(stringify(obj, options), label, options); - } else { - return stringify(obj, options) + (options.styles ? '\033[39m' : ''); - } -}; - -// Output using the 'stream', and an optional label -// Loop through `str`, and truncate it after `options.maxLength` has been reached. -// Because escape sequences are, at this point embeded within -// the output string, we can't measure the length of the string -// in a useful way, without separating what is an escape sequence, -// versus a printable character (`c`). So we resort to counting the -// length manually. -eyes.print = function (str, label, options) { - for (var c = 0, i = 0; i < str.length; i++) { - if (str.charAt(i) === '\033') { i += 4 } // `4` because '\033[25m'.length + 1 == 5 - else if (c === options.maxLength) { - str = str.slice(0, i - 1) + '…'; - break; - } else { c++ } - } - return options.stream.write.call(options.stream, (label ? - this.stylize(label, options.styles.label, options.styles) + ': ' : '') + - this.stylize(str, options.styles.all, options.styles) + '\033[0m' + "\n"); -}; - -// Apply a style to a string, eventually, -// I'd like this to support passing multiple -// styles. -eyes.stylize = function (str, style, styles) { - var codes = { - 'bold' : [1, 22], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'cyan' : [36, 39], - 'magenta' : [35, 39], - 'blue' : [34, 39], - 'yellow' : [33, 39], - 'green' : [32, 39], - 'red' : [31, 39], - 'grey' : [90, 39] - }, endCode; - - if (style && codes[style]) { - endCode = (codes[style][1] === 39 && styles.all) ? codes[styles.all][0] - : codes[style][1]; - return '\033[' + codes[style][0] + 'm' + str + - '\033[' + endCode + 'm'; - } else { return str } -}; - -// Convert any object to a string, ready for output. -// When an 'array' or an 'object' are encountered, they are -// passed to specialized functions, which can then recursively call -// stringify(). -function stringify(obj, options) { - var that = this, stylize = function (str, style) { - return eyes.stylize(str, options.styles[style], options.styles) - }, index, result; - - if ((index = stack.indexOf(obj)) !== -1) { - return stylize(new(Array)(stack.length - index + 1).join('.'), 'special'); - } - stack.push(obj); - - result = (function (obj) { - switch (typeOf(obj)) { - case "string" : obj = stringifyString(obj.indexOf("'") === -1 ? "'" + obj + "'" - : '"' + obj + '"'); - return stylize(obj, 'string'); - case "regexp" : return stylize('/' + obj.source + '/', 'regexp'); - case "number" : return stylize(obj + '', 'number'); - case "function" : return options.stream ? stylize("Function", 'other') : '[Function]'; - case "null" : return stylize("null", 'special'); - case "undefined": return stylize("undefined", 'special'); - case "boolean" : return stylize(obj + '', 'bool'); - case "date" : return stylize(obj.toUTCString()); - case "array" : return stringifyArray(obj, options, stack.length); - case "object" : return stringifyObject(obj, options, stack.length); - } - })(obj); - - stack.pop(); - return result; -}; - -// Escape invisible characters in a string -function stringifyString (str, options) { - return str.replace(/\\/g, '\\\\') - .replace(/\n/g, '\\n') - .replace(/[\u0001-\u001F]/g, function (match) { - return '\\0' + match[0].charCodeAt(0).toString(8); - }); -} - -// Convert an array to a string, such as [1, 2, 3]. -// This function calls stringify() for each of the elements -// in the array. -function stringifyArray(ary, options, level) { - var out = []; - var pretty = options.pretty && (ary.length > 4 || ary.some(function (o) { - return (o !== null && typeof(o) === 'object' && Object.keys(o).length > 0) || - (Array.isArray(o) && o.length > 0); - })); - var ws = pretty ? '\n' + new(Array)(level * 4 + 1).join(' ') : ' '; - - for (var i = 0; i < ary.length; i++) { - out.push(stringify(ary[i], options)); - } - - if (out.length === 0) { - return '[]'; - } else { - return '[' + ws - + out.join(',' + (pretty ? ws : ' ')) - + (pretty ? ws.slice(0, -4) : ws) + - ']'; - } -}; - -// Convert an object to a string, such as {a: 1}. -// This function calls stringify() for each of its values, -// and does not output functions or prototype values. -function stringifyObject(obj, options, level) { - var out = []; - var pretty = options.pretty && (Object.keys(obj).length > 2 || - Object.keys(obj).some(function (k) { return typeof(obj[k]) === 'object' })); - var ws = pretty ? '\n' + new(Array)(level * 4 + 1).join(' ') : ' '; - - var keys = options.showHidden ? Object.keys(obj) : Object.getOwnPropertyNames(obj); - keys.forEach(function (k) { - if (Object.prototype.hasOwnProperty.call(obj, k) - && !(obj[k] instanceof Function && options.hideFunctions)) { - out.push(eyes.stylize(k, options.styles.key, options.styles) + ': ' + - stringify(obj[k], options)); - } - }); - - if (out.length === 0) { - return '{}'; - } else { - return "{" + ws - + out.join(',' + (pretty ? ws : ' ')) - + (pretty ? ws.slice(0, -4) : ws) + - "}"; - } -}; - -// A better `typeof` -function typeOf(value) { - var s = typeof(value), - types = [Object, Array, String, RegExp, Number, Function, Boolean, Date]; - - if (s === 'object' || s === 'function') { - if (value) { - types.forEach(function (t) { - if (value instanceof t) { s = t.name.toLowerCase() } - }); - } else { s = 'null' } - } - return s; -} - -function merge(/* variable args */) { - var objs = Array.prototype.slice.call(arguments); - var target = {}; - - objs.forEach(function (o) { - Object.keys(o).forEach(function (k) { - if (k === 'styles') { - if (! o.styles) { - target.styles = false; - } else { - target.styles = {} - for (var s in o.styles) { - target.styles[s] = o.styles[s]; - } - } - } else { - target[k] = o[k]; - } - }); - }); - return target; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/package.json deleted file mode 100644 index 52a28b03..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "eyes", - "description": "a customizable value inspector", - "url": "http://github.com/cloudhead/eyes.js", - "keywords": [ - "inspector", - "debug", - "inspect", - "print" - ], - "author": { - "name": "Alexis Sellier", - "email": "self@cloudhead.net" - }, - "contributors": [ - { - "name": "Charlie Robbins", - "email": "charlie@nodejitsu.com" - } - ], - "licenses": [ - "MIT" - ], - "main": "./lib/eyes", - "version": "0.1.8", - "scripts": { - "test": "node test/*-test.js" - }, - "directories": { - "lib": "./lib", - "test": "./test" - }, - "engines": { - "node": "> 0.1.90" - }, - "_id": "eyes@0.1.8", - "dist": { - "shasum": "62cf120234c683785d902348a800ef3e0cc20bc0", - "tarball": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" - }, - "_npmVersion": "1.1.53", - "_npmUser": { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - }, - "maintainers": [ - { - "name": "cloudhead", - "email": "self@cloudhead.net" - }, - { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - } - ], - "_shasum": "62cf120234c683785d902348a800ef3e0cc20bc0", - "_resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "_from": "eyes@>=0.1.0 <0.2.0", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/test/eyes-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/test/eyes-test.js deleted file mode 100644 index 1f9606a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/eyes/test/eyes-test.js +++ /dev/null @@ -1,56 +0,0 @@ -var util = require('util'); -var eyes = require('../lib/eyes'); - -eyes.inspect({ - number: 42, - string: "John Galt", - regexp: /[a-z]+/, - array: [99, 168, 'x', {}], - func: function () {}, - bool: false, - nil: null, - undef: undefined, - object: {attr: []} -}, "native types"); - -eyes.inspect({ - number: new(Number)(42), - string: new(String)("John Galt"), - regexp: new(RegExp)(/[a-z]+/), - array: new(Array)(99, 168, 'x', {}), - bool: new(Boolean)(false), - object: new(Object)({attr: []}), - date: new(Date) -}, "wrapped types"); - -var obj = {}; -obj.that = { self: obj }; -obj.self = obj; - -eyes.inspect(obj, "circular object"); -eyes.inspect({hello: 'moto'}, "small object"); -eyes.inspect({hello: new(Array)(6) }, "big object"); -eyes.inspect(["hello 'world'", 'hello "world"'], "quotes"); -eyes.inspect({ - recommendations: [{ - id: 'a7a6576c2c822c8e2bd81a27e41437d8', - key: [ 'spree', 3.764316258020699 ], - value: { - _id: 'a7a6576c2c822c8e2bd81a27e41437d8', - _rev: '1-2e2d2f7fd858c4a5984bcf809d22ed98', - type: 'domain', - domain: 'spree', - weight: 3.764316258020699, - product_id: 30 - } - }] -}, 'complex'); - -eyes.inspect([null], "null in array"); - -var inspect = eyes.inspector({ stream: null }); - -util.puts(inspect('something', "something")); -util.puts(inspect("something else")); - -util.puts(inspect(["no color"], null, { styles: false })); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/.npmignore deleted file mode 100644 index 9303c347..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -npm-debug.log \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/LICENSE deleted file mode 100644 index ed4a4e70..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010 Charlie Robbins. - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/README.md deleted file mode 100644 index 7a363bf7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# node-pkginfo - -An easy way to expose properties on a module from a package.json - -## Installation - -### Installing npm (node package manager) -``` - curl http://npmjs.org/install.sh | sh -``` - -### Installing pkginfo -``` - [sudo] npm install pkginfo -``` - -## Motivation -How often when writing node.js modules have you written the following line(s) of code? - -* Hard code your version string into your code - -``` js - exports.version = '0.1.0'; -``` - -* Programmatically expose the version from the package.json - -``` js - exports.version = require('/path/to/package.json').version; -``` - -In other words, how often have you wanted to expose basic information from your package.json onto your module programmatically? **WELL NOW YOU CAN!** - -## Usage - -Using `pkginfo` is idiot-proof, just require and invoke it. - -``` js - var pkginfo = require('pkginfo')(module); - - console.dir(module.exports); -``` - -By invoking the `pkginfo` module all of the properties in your `package.json` file will be automatically exposed on the callee module (i.e. the parent module of `pkginfo`). - -Here's a sample of the output: - -``` - { name: 'simple-app', - description: 'A test fixture for pkginfo', - version: '0.1.0', - author: 'Charlie Robbins ', - keywords: [ 'test', 'fixture' ], - main: './index.js', - scripts: { test: 'vows test/*-test.js --spec' }, - engines: { node: '>= 0.4.0' } } -``` - -### Expose specific properties -If you don't want to expose **all** properties on from your `package.json` on your module then simple pass those properties to the `pkginfo` function: - -``` js - var pkginfo = require('pkginfo')(module, 'version', 'author'); - - console.dir(module.exports); -``` - -``` - { version: '0.1.0', - author: 'Charlie Robbins ' } -``` - -If you're looking for further usage see the [examples][0] included in this repository. - -## Run Tests -Tests are written in [vows][1] and give complete coverage of all APIs. - -``` - vows test/*-test.js --spec -``` - -[0]: https://github.com/indexzero/node-pkginfo/tree/master/examples -[1]: http://vowsjs.org - -#### Author: [Charlie Robbins](http://nodejitsu.com) -#### License: MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/docs/docco.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/docs/docco.css deleted file mode 100644 index bd541343..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/docs/docco.css +++ /dev/null @@ -1,194 +0,0 @@ -/*--------------------- Layout and Typography ----------------------------*/ -body { - font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; - font-size: 15px; - line-height: 22px; - color: #252519; - margin: 0; padding: 0; -} -a { - color: #261a3b; -} - a:visited { - color: #261a3b; - } -p { - margin: 0 0 15px 0; -} -h4, h5, h6 { - color: #333; - margin: 6px 0 6px 0; - font-size: 13px; -} - h2, h3 { - margin-bottom: 0; - color: #000; - } - h1 { - margin-top: 40px; - margin-bottom: 15px; - color: #000; - } -#container { - position: relative; -} -#background { - position: fixed; - top: 0; left: 525px; right: 0; bottom: 0; - background: #f5f5ff; - border-left: 1px solid #e5e5ee; - z-index: -1; -} -#jump_to, #jump_page { - background: white; - -webkit-box-shadow: 0 0 25px #777; -moz-box-shadow: 0 0 25px #777; - -webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; - font: 10px Arial; - text-transform: uppercase; - cursor: pointer; - text-align: right; -} -#jump_to, #jump_wrapper { - position: fixed; - right: 0; top: 0; - padding: 5px 10px; -} - #jump_wrapper { - padding: 0; - display: none; - } - #jump_to:hover #jump_wrapper { - display: block; - } - #jump_page { - padding: 5px 0 3px; - margin: 0 0 25px 25px; - } - #jump_page .source { - display: block; - padding: 5px 10px; - text-decoration: none; - border-top: 1px solid #eee; - } - #jump_page .source:hover { - background: #f5f5ff; - } - #jump_page .source:first-child { - } -table td { - border: 0; - outline: 0; -} - td.docs, th.docs { - max-width: 450px; - min-width: 450px; - min-height: 5px; - padding: 10px 25px 1px 50px; - overflow-x: hidden; - vertical-align: top; - text-align: left; - } - .docs pre { - margin: 15px 0 15px; - padding-left: 15px; - } - .docs p tt, .docs p code { - background: #f8f8ff; - border: 1px solid #dedede; - font-size: 12px; - padding: 0 0.2em; - } - .pilwrap { - position: relative; - } - .pilcrow { - font: 12px Arial; - text-decoration: none; - color: #454545; - position: absolute; - top: 3px; left: -20px; - padding: 1px 2px; - opacity: 0; - -webkit-transition: opacity 0.2s linear; - } - td.docs:hover .pilcrow { - opacity: 1; - } - td.code, th.code { - padding: 14px 15px 16px 25px; - width: 100%; - vertical-align: top; - background: #f5f5ff; - border-left: 1px solid #e5e5ee; - } - pre, tt, code { - font-size: 12px; line-height: 18px; - font-family: Menlo, Monaco, Consolas, "Lucida Console", monospace; - margin: 0; padding: 0; - } - - -/*---------------------- Syntax Highlighting -----------------------------*/ -td.linenos { background-color: #f0f0f0; padding-right: 10px; } -span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; } -body .hll { background-color: #ffffcc } -body .c { color: #408080; font-style: italic } /* Comment */ -body .err { border: 1px solid #FF0000 } /* Error */ -body .k { color: #954121 } /* Keyword */ -body .o { color: #666666 } /* Operator */ -body .cm { color: #408080; font-style: italic } /* Comment.Multiline */ -body .cp { color: #BC7A00 } /* Comment.Preproc */ -body .c1 { color: #408080; font-style: italic } /* Comment.Single */ -body .cs { color: #408080; font-style: italic } /* Comment.Special */ -body .gd { color: #A00000 } /* Generic.Deleted */ -body .ge { font-style: italic } /* Generic.Emph */ -body .gr { color: #FF0000 } /* Generic.Error */ -body .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -body .gi { color: #00A000 } /* Generic.Inserted */ -body .go { color: #808080 } /* Generic.Output */ -body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -body .gs { font-weight: bold } /* Generic.Strong */ -body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -body .gt { color: #0040D0 } /* Generic.Traceback */ -body .kc { color: #954121 } /* Keyword.Constant */ -body .kd { color: #954121; font-weight: bold } /* Keyword.Declaration */ -body .kn { color: #954121; font-weight: bold } /* Keyword.Namespace */ -body .kp { color: #954121 } /* Keyword.Pseudo */ -body .kr { color: #954121; font-weight: bold } /* Keyword.Reserved */ -body .kt { color: #B00040 } /* Keyword.Type */ -body .m { color: #666666 } /* Literal.Number */ -body .s { color: #219161 } /* Literal.String */ -body .na { color: #7D9029 } /* Name.Attribute */ -body .nb { color: #954121 } /* Name.Builtin */ -body .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -body .no { color: #880000 } /* Name.Constant */ -body .nd { color: #AA22FF } /* Name.Decorator */ -body .ni { color: #999999; font-weight: bold } /* Name.Entity */ -body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -body .nf { color: #0000FF } /* Name.Function */ -body .nl { color: #A0A000 } /* Name.Label */ -body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -body .nt { color: #954121; font-weight: bold } /* Name.Tag */ -body .nv { color: #19469D } /* Name.Variable */ -body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -body .w { color: #bbbbbb } /* Text.Whitespace */ -body .mf { color: #666666 } /* Literal.Number.Float */ -body .mh { color: #666666 } /* Literal.Number.Hex */ -body .mi { color: #666666 } /* Literal.Number.Integer */ -body .mo { color: #666666 } /* Literal.Number.Oct */ -body .sb { color: #219161 } /* Literal.String.Backtick */ -body .sc { color: #219161 } /* Literal.String.Char */ -body .sd { color: #219161; font-style: italic } /* Literal.String.Doc */ -body .s2 { color: #219161 } /* Literal.String.Double */ -body .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -body .sh { color: #219161 } /* Literal.String.Heredoc */ -body .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -body .sx { color: #954121 } /* Literal.String.Other */ -body .sr { color: #BB6688 } /* Literal.String.Regex */ -body .s1 { color: #219161 } /* Literal.String.Single */ -body .ss { color: #19469D } /* Literal.String.Symbol */ -body .bp { color: #954121 } /* Name.Builtin.Pseudo */ -body .vc { color: #19469D } /* Name.Variable.Class */ -body .vg { color: #19469D } /* Name.Variable.Global */ -body .vi { color: #19469D } /* Name.Variable.Instance */ -body .il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/docs/pkginfo.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/docs/pkginfo.html deleted file mode 100644 index bf615fa9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/docs/pkginfo.html +++ /dev/null @@ -1,101 +0,0 @@ - pkginfo.js

      pkginfo.js

      /*
      - * pkginfo.js: Top-level include for the pkginfo module
      - *
      - * (C) 2011, Charlie Robbins
      - *
      - */
      - 
      -var fs = require('fs'),
      -    path = require('path');

      function pkginfo ([options, 'property', 'property' ..])

      - -

      @pmodule {Module} Parent module to read from.

      - -

      @options {Object|Array|string} Optional Options used when exposing properties.

      - -

      @arguments {string...} Optional Specified properties to expose.

      - -

      Exposes properties from the package.json file for the parent module on -it's exports. Valid usage:

      - -

      require('pkginfo')()

      - -

      require('pkginfo')('version', 'author');

      - -

      require('pkginfo')(['version', 'author']);

      - -

      require('pkginfo')({ include: ['version', 'author'] });

      var pkginfo = module.exports = function (pmodule, options) {
      -  var args = [].slice.call(arguments, 2).filter(function (arg) {
      -    return typeof arg === 'string';
      -  });
      -  

      Parse variable arguments

        if (Array.isArray(options)) {

      If the options passed in is an Array assume that -it is the Array of properties to expose from the -on the package.json file on the parent module.

          options = { include: options };
      -  }
      -  else if (typeof options === 'string') {

      Otherwise if the first argument is a string, then -assume that it is the first property to expose from -the package.json file on the parent module.

          options = { include: [options] };
      -  }
      -  

      Setup default options

        options = options || { include: [] };
      -  
      -  if (args.length > 0) {

      If additional string arguments have been passed in -then add them to the properties to expose on the -parent module.

          options.include = options.include.concat(args);
      -  }
      -  
      -  var pkg = pkginfo.read(pmodule, options.dir).package;
      -  Object.keys(pkg).forEach(function (key) {
      -    if (options.include.length > 0 && !~options.include.indexOf(key)) {
      -      return;
      -    }
      -    
      -    if (!pmodule.exports[key]) {
      -      pmodule.exports[key] = pkg[key];
      -    }
      -  });
      -  
      -  return pkginfo;
      -};

      function find (dir)

      - -

      @pmodule {Module} Parent module to read from.

      - -

      @dir {string} Optional Directory to start search from.

      - -

      Searches up the directory tree from dir until it finds a directory -which contains a package.json file.

      pkginfo.find = function (pmodule, dir) {
      -  dir = dir || pmodule.filename;
      -  dir = path.dirname(dir); 
      -  
      -  var files = fs.readdirSync(dir);
      -  
      -  if (~files.indexOf('package.json')) {
      -    return path.join(dir, 'package.json');
      -  }
      -  
      -  if (dir === '/') {
      -    throw new Error('Could not find package.json up from: ' + dir);
      -  }
      -  
      -  return pkginfo.find(dir);
      -};

      function read (pmodule, dir)

      - -

      @pmodule {Module} Parent module to read from.

      - -

      @dir {string} Optional Directory to start search from.

      - -

      Searches up the directory tree from dir until it finds a directory -which contains a package.json file and returns the package information.

      pkginfo.read = function (pmodule, dir) { 
      -  dir = pkginfo.find(pmodule, dir);
      -  
      -  var data = fs.readFileSync(dir).toString();
      -      
      -  return {
      -    dir: dir, 
      -    package: JSON.parse(data)
      -  };
      -};

      Call pkginfo on this module and expose version.

      pkginfo(module, {
      -  dir: __dirname,
      -  include: ['version'],
      -  target: pkginfo
      -});
      -
      -
      \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/all-properties.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/all-properties.js deleted file mode 100644 index fd1d831a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/all-properties.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * all-properties.js: Sample of including all properties from a package.json file - * - * (C) 2011, Charlie Robbins - * - */ - -var util = require('util'), - pkginfo = require('../lib/pkginfo')(module); - -exports.someFunction = function () { - console.log('some of your custom logic here'); -}; - -console.log('Inspecting module:'); -console.dir(module.exports); - -console.log('\nAll exports exposed:'); -console.error(Object.keys(module.exports)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/array-argument.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/array-argument.js deleted file mode 100644 index b1b68487..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/array-argument.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * array-argument.js: Sample of including specific properties from a package.json file - * using Array argument syntax. - * - * (C) 2011, Charlie Robbins - * - */ - -var util = require('util'), - pkginfo = require('../lib/pkginfo')(module, ['version', 'author']); - -exports.someFunction = function () { - console.log('some of your custom logic here'); -}; - -console.log('Inspecting module:'); -console.dir(module.exports); - -console.log('\nAll exports exposed:'); -console.error(Object.keys(module.exports)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/multiple-properties.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/multiple-properties.js deleted file mode 100644 index b4b5fd61..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/multiple-properties.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * multiple-properties.js: Sample of including multiple properties from a package.json file - * - * (C) 2011, Charlie Robbins - * - */ - -var util = require('util'), - pkginfo = require('../lib/pkginfo')(module, 'version', 'author'); - -exports.someFunction = function () { - console.log('some of your custom logic here'); -}; - -console.log('Inspecting module:'); -console.dir(module.exports); - -console.log('\nAll exports exposed:'); -console.error(Object.keys(module.exports)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/object-argument.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/object-argument.js deleted file mode 100644 index 28420c85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/object-argument.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * object-argument.js: Sample of including specific properties from a package.json file - * using Object argument syntax. - * - * (C) 2011, Charlie Robbins - * - */ - -var util = require('util'), - pkginfo = require('../lib/pkginfo')(module, { - include: ['version', 'author'] - }); - -exports.someFunction = function () { - console.log('some of your custom logic here'); -}; - -console.log('Inspecting module:'); -console.dir(module.exports); - -console.log('\nAll exports exposed:'); -console.error(Object.keys(module.exports)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/package.json deleted file mode 100644 index 1f2f01c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "simple-app", - "description": "A test fixture for pkginfo", - "version": "0.1.0", - "author": "Charlie Robbins ", - "keywords": ["test", "fixture"], - "main": "./index.js", - "scripts": { "test": "vows test/*-test.js --spec" }, - "engines": { "node": ">= 0.4.0" } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/single-property.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/single-property.js deleted file mode 100644 index 4f445614..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/single-property.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * single-property.js: Sample of including a single specific properties from a package.json file - * - * (C) 2011, Charlie Robbins - * - */ - -var util = require('util'), - pkginfo = require('../lib/pkginfo')(module, 'version'); - -exports.someFunction = function () { - console.log('some of your custom logic here'); -}; - -console.log('Inspecting module:'); -console.dir(module.exports); - -console.log('\nAll exports exposed:'); -console.error(Object.keys(module.exports)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/subdir/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/subdir/package.json deleted file mode 100644 index aa854102..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/subdir/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "simple-app-subdir", - "description": "A test fixture for pkginfo", - "version": "0.1.0", - "author": "Charlie Robbins ", - "keywords": ["test", "fixture"], - "main": "./index.js", - "scripts": { "test": "vows test/*-test.js --spec" }, - "engines": { "node": ">= 0.4.0" }, - "subdironly": "true" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/target-dir.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/target-dir.js deleted file mode 100644 index 88770e6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/examples/target-dir.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * multiple-properties.js: Sample of including multiple properties from a package.json file - * - * (C) 2011, Charlie Robbins - * - */ - -var util = require('util'), - path = require('path'), - pkginfo = require('../lib/pkginfo')(module, { dir: path.resolve(__dirname, 'subdir' )}); - -exports.someFunction = function () { - console.log('some of your custom logic here'); -}; - -console.log('Inspecting module:'); -console.dir(module.exports); - -console.log('\nAll exports exposed:'); -console.error(Object.keys(module.exports)); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/lib/pkginfo.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/lib/pkginfo.js deleted file mode 100644 index c5dc0203..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/lib/pkginfo.js +++ /dev/null @@ -1,136 +0,0 @@ -/* - * pkginfo.js: Top-level include for the pkginfo module - * - * (C) 2011, Charlie Robbins - * - */ - -var fs = require('fs'), - path = require('path'); - -// -// ### function pkginfo ([options, 'property', 'property' ..]) -// #### @pmodule {Module} Parent module to read from. -// #### @options {Object|Array|string} **Optional** Options used when exposing properties. -// #### @arguments {string...} **Optional** Specified properties to expose. -// Exposes properties from the package.json file for the parent module on -// it's exports. Valid usage: -// -// `require('pkginfo')()` -// -// `require('pkginfo')('version', 'author');` -// -// `require('pkginfo')(['version', 'author']);` -// -// `require('pkginfo')({ include: ['version', 'author'] });` -// -var pkginfo = module.exports = function (pmodule, options) { - var args = [].slice.call(arguments, 2).filter(function (arg) { - return typeof arg === 'string'; - }); - - // - // **Parse variable arguments** - // - if (Array.isArray(options)) { - // - // If the options passed in is an Array assume that - // it is the Array of properties to expose from the - // on the package.json file on the parent module. - // - options = { include: options }; - } - else if (typeof options === 'string') { - // - // Otherwise if the first argument is a string, then - // assume that it is the first property to expose from - // the package.json file on the parent module. - // - options = { include: [options] }; - } - - // - // **Setup default options** - // - options = options || {}; - - // ensure that includes have been defined - options.include = options.include || []; - - if (args.length > 0) { - // - // If additional string arguments have been passed in - // then add them to the properties to expose on the - // parent module. - // - options.include = options.include.concat(args); - } - - var pkg = pkginfo.read(pmodule, options.dir).package; - Object.keys(pkg).forEach(function (key) { - if (options.include.length > 0 && !~options.include.indexOf(key)) { - return; - } - - if (!pmodule.exports[key]) { - pmodule.exports[key] = pkg[key]; - } - }); - - return pkginfo; -}; - -// -// ### function find (dir) -// #### @pmodule {Module} Parent module to read from. -// #### @dir {string} **Optional** Directory to start search from. -// Searches up the directory tree from `dir` until it finds a directory -// which contains a `package.json` file. -// -pkginfo.find = function (pmodule, dir) { - if (! dir) { - dir = path.dirname(pmodule.filename); - } - - var files = fs.readdirSync(dir); - - if (~files.indexOf('package.json')) { - return path.join(dir, 'package.json'); - } - - if (dir === '/') { - throw new Error('Could not find package.json up from: ' + dir); - } - else if (!dir || dir === '.') { - throw new Error('Cannot find package.json from unspecified directory'); - } - - return pkginfo.find(pmodule, path.dirname(dir)); -}; - -// -// ### function read (pmodule, dir) -// #### @pmodule {Module} Parent module to read from. -// #### @dir {string} **Optional** Directory to start search from. -// Searches up the directory tree from `dir` until it finds a directory -// which contains a `package.json` file and returns the package information. -// -pkginfo.read = function (pmodule, dir) { - dir = pkginfo.find(pmodule, dir); - - var data = fs.readFileSync(dir).toString(); - - return { - dir: dir, - package: JSON.parse(data) - }; -}; - -// -// Call `pkginfo` on this module and expose version. -// -pkginfo(module, { - dir: __dirname, - include: ['version'], - target: pkginfo -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/package.json deleted file mode 100644 index 546afd42..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "pkginfo", - "version": "0.3.1", - "license": "MIT", - "description": "An easy way to expose properties on a module from a package.json", - "author": { - "name": "Charlie Robbins", - "email": "charlie.robbins@gmail.com" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/indexzero/node-pkginfo.git" - }, - "bugs": { - "url": "https://github.com/indexzero/node-pkginfo/issues" - }, - "keywords": [ - "info", - "tools", - "package.json" - ], - "devDependencies": { - "vows": "0.7.x" - }, - "main": "./lib/pkginfo.js", - "scripts": { - "test": "vows test/*-test.js --spec" - }, - "engines": { - "node": ">= 0.4.0" - }, - "gitHead": "630fcf486543ee48b4c16afc575c0421fe039f26", - "homepage": "https://github.com/indexzero/node-pkginfo#readme", - "_id": "pkginfo@0.3.1", - "_shasum": "5b29f6a81f70717142e09e765bbeab97b4f81e21", - "_from": "pkginfo@>=0.3.0 <0.4.0", - "_npmVersion": "2.14.1", - "_nodeVersion": "0.10.38", - "_npmUser": { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - }, - "maintainers": [ - { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - } - ], - "dist": { - "shasum": "5b29f6a81f70717142e09e765bbeab97b4f81e21", - "tarball": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/test/pkginfo-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/test/pkginfo-test.js deleted file mode 100644 index a59f077e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/pkginfo/test/pkginfo-test.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * pkginfo-test.js: Tests for the pkginfo module. - * - * (C) 2011, Charlie Robbins - * - */ - -var assert = require('assert'), - exec = require('child_process').exec, - fs = require('fs'), - path = require('path'), - vows = require('vows'), - pkginfo = require('../lib/pkginfo'); - -function assertProperties (source, target) { - assert.lengthOf(source, target.length + 1); - target.forEach(function (prop) { - assert.isTrue(!!~source.indexOf(prop)); - }); -} - -function compareWithExample(targetPath) { - var examplePaths = ['package.json']; - - if (targetPath) { - examplePaths.unshift(targetPath); - } - - return function(exposed) { - var pkg = fs.readFileSync(path.join.apply(null, [__dirname, '..', 'examples'].concat(examplePaths))).toString(), - keys = Object.keys(JSON.parse(pkg)); - - assertProperties(exposed, keys); - }; -} - -function testExposes (options) { - return { - topic: function () { - exec('node ' + path.join(__dirname, '..', 'examples', options.script), this.callback); - }, - "should expose that property correctly": function (err, stdout, stderr) { - assert.isNull(err); - - var exposed = stderr.match(/'(\w+)'/ig).map(function (p) { - return p.substring(1, p.length - 1); - }); - - return !options.assert - ? assertProperties(exposed, options.properties) - : options.assert(exposed); - } - } -} - -vows.describe('pkginfo').addBatch({ - "When using the pkginfo module": { - "and passed a single `string` argument": testExposes({ - script: 'single-property.js', - properties: ['version'] - }), - "and passed multiple `string` arguments": testExposes({ - script: 'multiple-properties.js', - properties: ['version', 'author'] - }), - "and passed an `object` argument": testExposes({ - script: 'object-argument.js', - properties: ['version', 'author'] - }), - "and passed an `array` argument": testExposes({ - script: 'array-argument.js', - properties: ['version', 'author'] - }), - "and read from a specified directory": testExposes({ - script: 'target-dir.js', - assert: compareWithExample('subdir') - }), - "and passed no arguments": testExposes({ - script: 'all-properties.js', - assert: compareWithExample() - }) - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/LICENSE deleted file mode 100644 index a4a9aee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/README.md deleted file mode 100644 index 039a1064..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/README.md +++ /dev/null @@ -1,342 +0,0 @@ -# Request -- Simplified HTTP request method - -## Install - -
      -  npm install request
      -
      - -Or from source: - -
      -  git clone git://github.com/mikeal/request.git 
      -  cd request
      -  npm link
      -
      - -## Super simple to use - -Request is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default. - -```javascript -var request = require('request'); -request('http://www.google.com', function (error, response, body) { - if (!error && response.statusCode == 200) { - console.log(body) // Print the google web page. - } -}) -``` - -## Streaming - -You can stream any response to a file stream. - -```javascript -request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png')) -``` - -You can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types, in this case `application/json`, and use the proper content-type in the PUT request if one is not already provided in the headers. - -```javascript -fs.createReadStream('file.json').pipe(request.put('http://mysite.com/obj.json')) -``` - -Request can also pipe to itself. When doing so the content-type and content-length will be preserved in the PUT headers. - -```javascript -request.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png')) -``` - -Now let's get fancy. - -```javascript -http.createServer(function (req, resp) { - if (req.url === '/doodle.png') { - if (req.method === 'PUT') { - req.pipe(request.put('http://mysite.com/doodle.png')) - } else if (req.method === 'GET' || req.method === 'HEAD') { - request.get('http://mysite.com/doodle.png').pipe(resp) - } - } -}) -``` - -You can also pipe() from a http.ServerRequest instance and to a http.ServerResponse instance. The HTTP method and headers will be sent as well as the entity-body data. Which means that, if you don't really care about security, you can do: - -```javascript -http.createServer(function (req, resp) { - if (req.url === '/doodle.png') { - var x = request('http://mysite.com/doodle.png') - req.pipe(x) - x.pipe(resp) - } -}) -``` - -And since pipe() returns the destination stream in node 0.5.x you can do one line proxying :) - -```javascript -req.pipe(request('http://mysite.com/doodle.png')).pipe(resp) -``` - -Also, none of this new functionality conflicts with requests previous features, it just expands them. - -```javascript -var r = request.defaults({'proxy':'http://localproxy.com'}) - -http.createServer(function (req, resp) { - if (req.url === '/doodle.png') { - r.get('http://google.com/doodle.png').pipe(resp) - } -}) -``` -You can still use intermediate proxies, the requests will still follow HTTP forwards, etc. - -## Forms - -`request` supports `application/x-www-form-urlencoded` and `multipart/form-data` form uploads. For `multipart/related` refer to the `multipart` API. - -Url encoded forms are simple - -```javascript -request.post('http://service.com/upload', {form:{key:'value'}}) -// or -request.post('http://service.com/upload').form({key:'value'}) -``` - -For `multipart/form-data` we use the [form-data](https://github.com/felixge/node-form-data) library by [@felixge](https://github.com/felixge). You don't need to worry about piping the form object or setting the headers, `request` will handle that for you. - -```javascript -var r = request.post('http://service.com/upload') -var form = r.form() -form.append('my_field', 'my_value') -form.append('my_buffer', new Buffer([1, 2, 3])) -form.append('my_file', fs.createReadStream(path.join(__dirname, 'doodle.png')) -form.append('remote_file', request('http://google.com/doodle.png')) -``` - -## HTTP Authentication - -```javascript -request.auth('username', 'password', false).get('http://some.server.com/'); -// or -request.get('http://some.server.com/', { - 'auth': { - 'user': 'username', - 'pass': 'password', - 'sendImmediately': false - } -}); -``` - -If passed as an option, `auth` should be a hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). The method form takes parameters `auth(username, password, sendImmediately)`. - -`sendImmediately` defaults to true, which will cause a basic authentication header to be sent. If `sendImmediately` is `false`, then `request` will retry with a proper authentication header after receiving a 401 response from the server (which must contain a `WWW-Authenticate` header indicating the required authentication method). - -Digest authentication is supported, but it only works with `sendImmediately` set to `false` (otherwise `request` will send basic authentication on the initial request, which will probably cause the request to fail). - -## OAuth Signing - -```javascript -// Twitter OAuth -var qs = require('querystring') - , oauth = - { callback: 'http://mysite.com/callback/' - , consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - } - , url = 'https://api.twitter.com/oauth/request_token' - ; -request.post({url:url, oauth:oauth}, function (e, r, body) { - // Ideally, you would take the body in the response - // and construct a URL that a user clicks on (like a sign in button). - // The verifier is only available in the response after a user has - // verified with twitter that they are authorizing your app. - var access_token = qs.parse(body) - , oauth = - { consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - , token: access_token.oauth_token - , verifier: access_token.oauth_verifier - } - , url = 'https://api.twitter.com/oauth/access_token' - ; - request.post({url:url, oauth:oauth}, function (e, r, body) { - var perm_token = qs.parse(body) - , oauth = - { consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - , token: perm_token.oauth_token - , token_secret: perm_token.oauth_token_secret - } - , url = 'https://api.twitter.com/1/users/show.json?' - , params = - { screen_name: perm_token.screen_name - , user_id: perm_token.user_id - } - ; - url += qs.stringify(params) - request.get({url:url, oauth:oauth, json:true}, function (e, r, user) { - console.log(user) - }) - }) -}) -``` - - - -### request(options, callback) - -The first argument can be either a url or an options object. The only required option is uri, all others are optional. - -* `uri` || `url` - fully qualified uri or a parsed url object from url.parse() -* `qs` - object containing querystring values to be appended to the uri -* `method` - http method, defaults to GET -* `headers` - http headers, defaults to {} -* `body` - entity body for PATCH, POST and PUT requests. Must be buffer or string. -* `form` - when passed an object this will set `body` but to a querystring representation of value and adds `Content-type: application/x-www-form-urlencoded; charset=utf-8` header. When passed no option a FormData instance is returned that will be piped to request. -* `auth` - A hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). See documentation above. -* `json` - sets `body` but to JSON representation of value and adds `Content-type: application/json` header. Additionally, parses the response body as json. -* `multipart` - (experimental) array of objects which contains their own headers and `body` attribute. Sends `multipart/related` request. See example below. -* `followRedirect` - follow HTTP 3xx responses as redirects. defaults to true. -* `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects. defaults to false. -* `maxRedirects` - the maximum number of redirects to follow, defaults to 10. -* `encoding` - Encoding to be used on `setEncoding` of response data. If set to `null`, the body is returned as a Buffer. -* `pool` - A hash object containing the agents for these requests. If omitted this request will use the global pool which is set to node's default maxSockets. -* `pool.maxSockets` - Integer containing the maximum amount of sockets in the pool. -* `timeout` - Integer containing the number of milliseconds to wait for a request to respond before aborting the request -* `proxy` - An HTTP proxy to be used. Support proxy Auth with Basic Auth the same way it's supported with the `url` parameter by embedding the auth info in the uri. -* `oauth` - Options for OAuth HMAC-SHA1 signing, see documentation above. -* `hawk` - Options for [Hawk signing](https://github.com/hueniverse/hawk). The `credentials` key must contain the necessary signing info, [see hawk docs for details](https://github.com/hueniverse/hawk#usage-example). -* `strictSSL` - Set to `true` to require that SSL certificates be valid. Note: to use your own certificate authority, you need to specify an agent that was created with that ca as an option. -* `jar` - Set to `false` if you don't want cookies to be remembered for future use or define your custom cookie jar (see examples section) -* `aws` - object containing aws signing information, should have the properties `key` and `secret` as well as `bucket` unless you're specifying your bucket as part of the path, or you are making a request that doesn't use a bucket (i.e. GET Services) - - -The callback argument gets 3 arguments. The first is an error when applicable (usually from the http.Client option not the http.ClientRequest object). The second in an http.ClientResponse object. The third is the response body String or Buffer. - -## Convenience methods - -There are also shorthand methods for different HTTP METHODs and some other conveniences. - -### request.defaults(options) - -This method returns a wrapper around the normal request API that defaults to whatever options you pass in to it. - -### request.put - -Same as request() but defaults to `method: "PUT"`. - -```javascript -request.put(url) -``` - -### request.patch - -Same as request() but defaults to `method: "PATCH"`. - -```javascript -request.patch(url) -``` - -### request.post - -Same as request() but defaults to `method: "POST"`. - -```javascript -request.post(url) -``` - -### request.head - -Same as request() but defaults to `method: "HEAD"`. - -```javascript -request.head(url) -``` - -### request.del - -Same as request() but defaults to `method: "DELETE"`. - -```javascript -request.del(url) -``` - -### request.get - -Alias to normal request method for uniformity. - -```javascript -request.get(url) -``` -### request.cookie - -Function that creates a new cookie. - -```javascript -request.cookie('cookie_string_here') -``` -### request.jar - -Function that creates a new cookie jar. - -```javascript -request.jar() -``` - - -## Examples: - -```javascript - var request = require('request') - , rand = Math.floor(Math.random()*100000000).toString() - ; - request( - { method: 'PUT' - , uri: 'http://mikeal.iriscouch.com/testjs/' + rand - , multipart: - [ { 'content-type': 'application/json' - , body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}}) - } - , { body: 'I am an attachment' } - ] - } - , function (error, response, body) { - if(response.statusCode == 201){ - console.log('document saved as: http://mikeal.iriscouch.com/testjs/'+ rand) - } else { - console.log('error: '+ response.statusCode) - console.log(body) - } - } - ) -``` -Cookies are enabled by default (so they can be used in subsequent requests). To disable cookies set jar to false (either in defaults or in the options sent). - -```javascript -var request = request.defaults({jar: false}) -request('http://www.google.com', function () { - request('http://images.google.com') -}) -``` - -If you to use a custom cookie jar (instead of letting request use its own global cookie jar) you do so by setting the jar default or by specifying it as an option: - -```javascript -var j = request.jar() -var request = request.defaults({jar:j}) -request('http://www.google.com', function () { - request('http://images.google.com') -}) -``` -OR - -```javascript -var j = request.jar() -var cookie = request.cookie('your_cookie_here') -j.add(cookie) -request({url: 'http://www.google.com', jar: j}, function () { - request('http://images.google.com') -}) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/index.js deleted file mode 100755 index 29284a1b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/index.js +++ /dev/null @@ -1,1328 +0,0 @@ -// Copyright 2010-2012 Mikeal Rogers -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var http = require('http') - , https = false - , tls = false - , url = require('url') - , util = require('util') - , stream = require('stream') - , qs = require('qs') - , querystring = require('querystring') - , crypto = require('crypto') - - , oauth = require('oauth-sign') - , hawk = require('hawk') - , aws = require('aws-sign') - , uuid = require('node-uuid') - , mime = require('mime') - , tunnel = require('tunnel-agent') - , safeStringify = require('json-stringify-safe') - - , ForeverAgent = require('forever-agent') - , FormData = require('form-data') - - , Cookie = require('cookie-jar') - , CookieJar = Cookie.Jar - , cookieJar = new CookieJar - ; - -try { - https = require('https') -} catch (e) {} - -try { - tls = require('tls') -} catch (e) {} - -var debug -if (/\brequest\b/.test(process.env.NODE_DEBUG)) { - debug = function() { - console.error('REQUEST %s', util.format.apply(util, arguments)) - } -} else { - debug = function() {} -} - -function toBase64 (str) { - return (new Buffer(str || "", "ascii")).toString("base64") -} - -function md5 (str) { - return crypto.createHash('md5').update(str).digest('hex') -} - -// Hacky fix for pre-0.4.4 https -if (https && !https.Agent) { - https.Agent = function (options) { - http.Agent.call(this, options) - } - util.inherits(https.Agent, http.Agent) - https.Agent.prototype._getConnection = function (host, port, cb) { - var s = tls.connect(port, host, this.options, function () { - // do other checks here? - if (cb) cb() - }) - return s - } -} - -function isReadStream (rs) { - if (rs.readable && rs.path && rs.mode) { - return true - } -} - -function copy (obj) { - var o = {} - Object.keys(obj).forEach(function (i) { - o[i] = obj[i] - }) - return o -} - -var isUrl = /^https?:/ - -var globalPool = {} - -function Request (options) { - stream.Stream.call(this) - this.readable = true - this.writable = true - - if (typeof options === 'string') { - options = {uri:options} - } - - var reserved = Object.keys(Request.prototype) - for (var i in options) { - if (reserved.indexOf(i) === -1) { - this[i] = options[i] - } else { - if (typeof options[i] === 'function') { - delete options[i] - } - } - } - - this.init(options) -} -util.inherits(Request, stream.Stream) -Request.prototype.init = function (options) { - // init() contains all the code to setup the request object. - // the actual outgoing request is not started until start() is called - // this function is called from both the constructor and on redirect. - var self = this - if (!options) options = {} - - self.method = options.method || 'GET' - - debug(options) - if (!self.pool && self.pool !== false) self.pool = globalPool - self.dests = self.dests || [] - self.__isRequestRequest = true - - // Protect against double callback - if (!self._callback && self.callback) { - self._callback = self.callback - self.callback = function () { - if (self._callbackCalled) return // Print a warning maybe? - self._callbackCalled = true - self._callback.apply(self, arguments) - } - self.on('error', self.callback.bind()) - self.on('complete', self.callback.bind(self, null)) - } - - if (self.url) { - // People use this property instead all the time so why not just support it. - self.uri = self.url - delete self.url - } - - if (!self.uri) { - // this will throw if unhandled but is handleable when in a redirect - return self.emit('error', new Error("options.uri is a required argument")) - } else { - if (typeof self.uri == "string") self.uri = url.parse(self.uri) - } - - if (self.proxy) { - if (typeof self.proxy == 'string') self.proxy = url.parse(self.proxy) - - // do the HTTP CONNECT dance using koichik/node-tunnel - if (http.globalAgent && self.uri.protocol === "https:") { - var tunnelFn = self.proxy.protocol === "http:" - ? tunnel.httpsOverHttp : tunnel.httpsOverHttps - - var tunnelOptions = { proxy: { host: self.proxy.hostname - , port: +self.proxy.port - , proxyAuth: self.proxy.auth - , headers: { Host: self.uri.hostname + ':' + - (self.uri.port || self.uri.protocol === 'https:' ? 443 : 80) }} - , ca: this.ca } - - self.agent = tunnelFn(tunnelOptions) - self.tunnel = true - } - } - - if (!self.uri.host || !self.uri.pathname) { - // Invalid URI: it may generate lot of bad errors, like "TypeError: Cannot call method 'indexOf' of undefined" in CookieJar - // Detect and reject it as soon as possible - var faultyUri = url.format(self.uri) - var message = 'Invalid URI "' + faultyUri + '"' - if (Object.keys(options).length === 0) { - // No option ? This can be the sign of a redirect - // As this is a case where the user cannot do anything (he didn't call request directly with this URL) - // he should be warned that it can be caused by a redirection (can save some hair) - message += '. This can be caused by a crappy redirection.' - } - self.emit('error', new Error(message)) - return // This error was fatal - } - - self._redirectsFollowed = self._redirectsFollowed || 0 - self.maxRedirects = (self.maxRedirects !== undefined) ? self.maxRedirects : 10 - self.followRedirect = (self.followRedirect !== undefined) ? self.followRedirect : true - self.followAllRedirects = (self.followAllRedirects !== undefined) ? self.followAllRedirects : false - if (self.followRedirect || self.followAllRedirects) - self.redirects = self.redirects || [] - - self.headers = self.headers ? copy(self.headers) : {} - - self.setHost = false - if (!(self.headers.host || self.headers.Host)) { - self.headers.host = self.uri.hostname - if (self.uri.port) { - if ( !(self.uri.port === 80 && self.uri.protocol === 'http:') && - !(self.uri.port === 443 && self.uri.protocol === 'https:') ) - self.headers.host += (':'+self.uri.port) - } - self.setHost = true - } - - self.jar(self._jar || options.jar) - - if (!self.uri.pathname) {self.uri.pathname = '/'} - if (!self.uri.port) { - if (self.uri.protocol == 'http:') {self.uri.port = 80} - else if (self.uri.protocol == 'https:') {self.uri.port = 443} - } - - if (self.proxy && !self.tunnel) { - self.port = self.proxy.port - self.host = self.proxy.hostname - } else { - self.port = self.uri.port - self.host = self.uri.hostname - } - - self.clientErrorHandler = function (error) { - if (self._aborted) return - - if (self.req && self.req._reusedSocket && error.code === 'ECONNRESET' - && self.agent.addRequestNoreuse) { - self.agent = { addRequest: self.agent.addRequestNoreuse.bind(self.agent) } - self.start() - self.req.end() - return - } - if (self.timeout && self.timeoutTimer) { - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null - } - self.emit('error', error) - } - - self._parserErrorHandler = function (error) { - if (this.res) { - if (this.res.request) { - this.res.request.emit('error', error) - } else { - this.res.emit('error', error) - } - } else { - this._httpMessage.emit('error', error) - } - } - - if (options.form) { - self.form(options.form) - } - - if (options.qs) self.qs(options.qs) - - if (self.uri.path) { - self.path = self.uri.path - } else { - self.path = self.uri.pathname + (self.uri.search || "") - } - - if (self.path.length === 0) self.path = '/' - - - // Auth must happen last in case signing is dependent on other headers - if (options.oauth) { - self.oauth(options.oauth) - } - - if (options.aws) { - self.aws(options.aws) - } - - if (options.hawk) { - self.hawk(options.hawk) - } - - if (options.auth) { - self.auth( - options.auth.user || options.auth.username, - options.auth.pass || options.auth.password, - options.auth.sendImmediately) - } - - if (self.uri.auth && !self.headers.authorization) { - var authPieces = self.uri.auth.split(':').map(function(item){ return querystring.unescape(item) }) - self.auth(authPieces[0], authPieces[1], true) - } - if (self.proxy && self.proxy.auth && !self.headers['proxy-authorization'] && !self.tunnel) { - self.headers['proxy-authorization'] = "Basic " + toBase64(self.proxy.auth.split(':').map(function(item){ return querystring.unescape(item)}).join(':')) - } - - - if (self.proxy && !self.tunnel) self.path = (self.uri.protocol + '//' + self.uri.host + self.path) - - if (options.json) { - self.json(options.json) - } else if (options.multipart) { - self.boundary = uuid() - self.multipart(options.multipart) - } - - if (self.body) { - var length = 0 - if (!Buffer.isBuffer(self.body)) { - if (Array.isArray(self.body)) { - for (var i = 0; i < self.body.length; i++) { - length += self.body[i].length - } - } else { - self.body = new Buffer(self.body) - length = self.body.length - } - } else { - length = self.body.length - } - if (length) { - if(!self.headers['content-length'] && !self.headers['Content-Length']) - self.headers['content-length'] = length - } else { - throw new Error('Argument error, options.body.') - } - } - - var protocol = self.proxy && !self.tunnel ? self.proxy.protocol : self.uri.protocol - , defaultModules = {'http:':http, 'https:':https} - , httpModules = self.httpModules || {} - ; - self.httpModule = httpModules[protocol] || defaultModules[protocol] - - if (!self.httpModule) return this.emit('error', new Error("Invalid protocol")) - - if (options.ca) self.ca = options.ca - - if (!self.agent) { - if (options.agentOptions) self.agentOptions = options.agentOptions - - if (options.agentClass) { - self.agentClass = options.agentClass - } else if (options.forever) { - self.agentClass = protocol === 'http:' ? ForeverAgent : ForeverAgent.SSL - } else { - self.agentClass = self.httpModule.Agent - } - } - - if (self.strictSSL === false) { - self.rejectUnauthorized = false - } - - if (self.pool === false) { - self.agent = false - } else { - self.agent = self.agent || self.getAgent() - if (self.maxSockets) { - // Don't use our pooling if node has the refactored client - self.agent.maxSockets = self.maxSockets - } - if (self.pool.maxSockets) { - // Don't use our pooling if node has the refactored client - self.agent.maxSockets = self.pool.maxSockets - } - } - - self.once('pipe', function (src) { - if (self.ntick && self._started) throw new Error("You cannot pipe to this stream after the outbound request has started.") - self.src = src - if (isReadStream(src)) { - if (!self.headers['content-type'] && !self.headers['Content-Type']) - self.headers['content-type'] = mime.lookup(src.path) - } else { - if (src.headers) { - for (var i in src.headers) { - if (!self.headers[i]) { - self.headers[i] = src.headers[i] - } - } - } - if (self._json && !self.headers['content-type'] && !self.headers['Content-Type']) - self.headers['content-type'] = 'application/json' - if (src.method && !self.method) { - self.method = src.method - } - } - - self.on('pipe', function () { - console.error("You have already piped to this stream. Pipeing twice is likely to break the request.") - }) - }) - - process.nextTick(function () { - if (self._aborted) return - - if (self._form) { - self.setHeaders(self._form.getHeaders()) - self._form.pipe(self) - } - if (self.body) { - if (Array.isArray(self.body)) { - self.body.forEach(function (part) { - self.write(part) - }) - } else { - self.write(self.body) - } - self.end() - } else if (self.requestBodyStream) { - console.warn("options.requestBodyStream is deprecated, please pass the request object to stream.pipe.") - self.requestBodyStream.pipe(self) - } else if (!self.src) { - if (self.method !== 'GET' && typeof self.method !== 'undefined') { - self.headers['content-length'] = 0 - } - self.end() - } - self.ntick = true - }) -} - -// Must call this when following a redirect from https to http or vice versa -// Attempts to keep everything as identical as possible, but update the -// httpModule, Tunneling agent, and/or Forever Agent in use. -Request.prototype._updateProtocol = function () { - var self = this - var protocol = self.uri.protocol - - if (protocol === 'https:') { - // previously was doing http, now doing https - // if it's https, then we might need to tunnel now. - if (self.proxy) { - self.tunnel = true - var tunnelFn = self.proxy.protocol === 'http:' - ? tunnel.httpsOverHttp : tunnel.httpsOverHttps - var tunnelOptions = { proxy: { host: self.proxy.hostname - , port: +self.proxy.port - , proxyAuth: self.proxy.auth } - , ca: self.ca } - self.agent = tunnelFn(tunnelOptions) - return - } - - self.httpModule = https - switch (self.agentClass) { - case ForeverAgent: - self.agentClass = ForeverAgent.SSL - break - case http.Agent: - self.agentClass = https.Agent - break - default: - // nothing we can do. Just hope for the best. - return - } - - // if there's an agent, we need to get a new one. - if (self.agent) self.agent = self.getAgent() - - } else { - // previously was doing https, now doing http - // stop any tunneling. - if (self.tunnel) self.tunnel = false - self.httpModule = http - switch (self.agentClass) { - case ForeverAgent.SSL: - self.agentClass = ForeverAgent - break - case https.Agent: - self.agentClass = http.Agent - break - default: - // nothing we can do. just hope for the best - return - } - - // if there's an agent, then get a new one. - if (self.agent) { - self.agent = null - self.agent = self.getAgent() - } - } -} - -Request.prototype.getAgent = function () { - var Agent = this.agentClass - var options = {} - if (this.agentOptions) { - for (var i in this.agentOptions) { - options[i] = this.agentOptions[i] - } - } - if (this.ca) options.ca = this.ca - if (typeof this.rejectUnauthorized !== 'undefined') options.rejectUnauthorized = this.rejectUnauthorized - - if (this.cert && this.key) { - options.key = this.key - options.cert = this.cert - } - - var poolKey = '' - - // different types of agents are in different pools - if (Agent !== this.httpModule.Agent) { - poolKey += Agent.name - } - - if (!this.httpModule.globalAgent) { - // node 0.4.x - options.host = this.host - options.port = this.port - if (poolKey) poolKey += ':' - poolKey += this.host + ':' + this.port - } - - // ca option is only relevant if proxy or destination are https - var proxy = this.proxy - if (typeof proxy === 'string') proxy = url.parse(proxy) - var isHttps = (proxy && proxy.protocol === 'https:') || this.uri.protocol === 'https:' - if (isHttps) { - if (options.ca) { - if (poolKey) poolKey += ':' - poolKey += options.ca - } - - if (typeof options.rejectUnauthorized !== 'undefined') { - if (poolKey) poolKey += ':' - poolKey += options.rejectUnauthorized - } - - if (options.cert) - poolKey += options.cert.toString('ascii') + options.key.toString('ascii') - } - - if (!poolKey && Agent === this.httpModule.Agent && this.httpModule.globalAgent) { - // not doing anything special. Use the globalAgent - return this.httpModule.globalAgent - } - - // we're using a stored agent. Make sure it's protocol-specific - poolKey = this.uri.protocol + poolKey - - // already generated an agent for this setting - if (this.pool[poolKey]) return this.pool[poolKey] - - return this.pool[poolKey] = new Agent(options) -} - -Request.prototype.start = function () { - // start() is called once we are ready to send the outgoing HTTP request. - // this is usually called on the first write(), end() or on nextTick() - var self = this - - if (self._aborted) return - - self._started = true - self.method = self.method || 'GET' - self.href = self.uri.href - - if (self.src && self.src.stat && self.src.stat.size && !self.headers['content-length'] && !self.headers['Content-Length']) { - self.headers['content-length'] = self.src.stat.size - } - if (self._aws) { - self.aws(self._aws, true) - } - - // We have a method named auth, which is completely different from the http.request - // auth option. If we don't remove it, we're gonna have a bad time. - var reqOptions = copy(self) - delete reqOptions.auth - - debug('make request', self.uri.href) - self.req = self.httpModule.request(reqOptions, self.onResponse.bind(self)) - - if (self.timeout && !self.timeoutTimer) { - self.timeoutTimer = setTimeout(function () { - self.req.abort() - var e = new Error("ETIMEDOUT") - e.code = "ETIMEDOUT" - self.emit("error", e) - }, self.timeout) - - // Set additional timeout on socket - in case if remote - // server freeze after sending headers - if (self.req.setTimeout) { // only works on node 0.6+ - self.req.setTimeout(self.timeout, function () { - if (self.req) { - self.req.abort() - var e = new Error("ESOCKETTIMEDOUT") - e.code = "ESOCKETTIMEDOUT" - self.emit("error", e) - } - }) - } - } - - self.req.on('error', self.clientErrorHandler) - self.req.on('drain', function() { - self.emit('drain') - }) - self.on('end', function() { - if ( self.req.connection ) self.req.connection.removeListener('error', self._parserErrorHandler) - }) - self.emit('request', self.req) -} -Request.prototype.onResponse = function (response) { - var self = this - debug('onResponse', self.uri.href, response.statusCode, response.headers) - response.on('end', function() { - debug('response end', self.uri.href, response.statusCode, response.headers) - }); - - if (response.connection.listeners('error').indexOf(self._parserErrorHandler) === -1) { - response.connection.once('error', self._parserErrorHandler) - } - if (self._aborted) { - debug('aborted', self.uri.href) - response.resume() - return - } - if (self._paused) response.pause() - else response.resume() - - self.response = response - response.request = self - response.toJSON = toJSON - - // XXX This is different on 0.10, because SSL is strict by default - if (self.httpModule === https && - self.strictSSL && - !response.client.authorized) { - debug('strict ssl error', self.uri.href) - var sslErr = response.client.authorizationError - self.emit('error', new Error('SSL Error: '+ sslErr)) - return - } - - if (self.setHost) delete self.headers.host - if (self.timeout && self.timeoutTimer) { - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null - } - - var addCookie = function (cookie) { - if (self._jar) self._jar.add(new Cookie(cookie)) - else cookieJar.add(new Cookie(cookie)) - } - - if (response.headers['set-cookie'] && (!self._disableCookies)) { - if (Array.isArray(response.headers['set-cookie'])) response.headers['set-cookie'].forEach(addCookie) - else addCookie(response.headers['set-cookie']) - } - - var redirectTo = null - if (response.statusCode >= 300 && response.statusCode < 400 && response.headers.location) { - debug('redirect', response.headers.location) - - if (self.followAllRedirects) { - redirectTo = response.headers.location - } else if (self.followRedirect) { - switch (self.method) { - case 'PATCH': - case 'PUT': - case 'POST': - case 'DELETE': - // Do not follow redirects - break - default: - redirectTo = response.headers.location - break - } - } - } else if (response.statusCode == 401 && self._hasAuth && !self._sentAuth) { - var authHeader = response.headers['www-authenticate'] - var authVerb = authHeader && authHeader.split(' ')[0] - debug('reauth', authVerb) - - switch (authVerb) { - case 'Basic': - self.auth(self._user, self._pass, true) - redirectTo = self.uri - break - - case 'Digest': - // TODO: More complete implementation of RFC 2617. For reference: - // http://tools.ietf.org/html/rfc2617#section-3 - // https://github.com/bagder/curl/blob/master/lib/http_digest.c - - var matches = authHeader.match(/([a-z0-9_-]+)="([^"]+)"/gi) - var challenge = {} - - for (var i = 0; i < matches.length; i++) { - var eqPos = matches[i].indexOf('=') - var key = matches[i].substring(0, eqPos) - var quotedValue = matches[i].substring(eqPos + 1) - challenge[key] = quotedValue.substring(1, quotedValue.length - 1) - } - - var ha1 = md5(self._user + ':' + challenge.realm + ':' + self._pass) - var ha2 = md5(self.method + ':' + self.uri.path) - var digestResponse = md5(ha1 + ':' + challenge.nonce + ':1::auth:' + ha2) - var authValues = { - username: self._user, - realm: challenge.realm, - nonce: challenge.nonce, - uri: self.uri.path, - qop: challenge.qop, - response: digestResponse, - nc: 1, - cnonce: '' - } - - authHeader = [] - for (var k in authValues) { - authHeader.push(k + '="' + authValues[k] + '"') - } - authHeader = 'Digest ' + authHeader.join(', ') - self.setHeader('authorization', authHeader) - self._sentAuth = true - - redirectTo = self.uri - break - } - } - - if (redirectTo) { - debug('redirect to', redirectTo) - - // ignore any potential response body. it cannot possibly be useful - // to us at this point. - if (self._paused) response.resume() - - if (self._redirectsFollowed >= self.maxRedirects) { - self.emit('error', new Error("Exceeded maxRedirects. Probably stuck in a redirect loop "+self.uri.href)) - return - } - self._redirectsFollowed += 1 - - if (!isUrl.test(redirectTo)) { - redirectTo = url.resolve(self.uri.href, redirectTo) - } - - var uriPrev = self.uri - self.uri = url.parse(redirectTo) - - // handle the case where we change protocol from https to http or vice versa - if (self.uri.protocol !== uriPrev.protocol) { - self._updateProtocol() - } - - self.redirects.push( - { statusCode : response.statusCode - , redirectUri: redirectTo - } - ) - if (self.followAllRedirects && response.statusCode != 401) self.method = 'GET' - // self.method = 'GET' // Force all redirects to use GET || commented out fixes #215 - delete self.src - delete self.req - delete self.agent - delete self._started - if (response.statusCode != 401) { - delete self.body - delete self._form - } - if (self.headers) { - delete self.headers.host - delete self.headers['content-type'] - delete self.headers['content-length'] - } - self.init() - return // Ignore the rest of the response - } else { - self._redirectsFollowed = self._redirectsFollowed || 0 - // Be a good stream and emit end when the response is finished. - // Hack to emit end on close because of a core bug that never fires end - response.on('close', function () { - if (!self._ended) self.response.emit('end') - }) - - if (self.encoding) { - if (self.dests.length !== 0) { - console.error("Ingoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.") - } else { - response.setEncoding(self.encoding) - } - } - - self.dests.forEach(function (dest) { - self.pipeDest(dest) - }) - - response.on("data", function (chunk) { - self._destdata = true - self.emit("data", chunk) - }) - response.on("end", function (chunk) { - self._ended = true - self.emit("end", chunk) - }) - response.on("close", function () {self.emit("close")}) - - self.emit('response', response) - - if (self.callback) { - var buffer = [] - var bodyLen = 0 - self.on("data", function (chunk) { - buffer.push(chunk) - bodyLen += chunk.length - }) - self.on("end", function () { - debug('end event', self.uri.href) - if (self._aborted) { - debug('aborted', self.uri.href) - return - } - - if (buffer.length && Buffer.isBuffer(buffer[0])) { - debug('has body', self.uri.href, bodyLen) - var body = new Buffer(bodyLen) - var i = 0 - buffer.forEach(function (chunk) { - chunk.copy(body, i, 0, chunk.length) - i += chunk.length - }) - if (self.encoding === null) { - response.body = body - } else { - response.body = body.toString(self.encoding) - } - } else if (buffer.length) { - // The UTF8 BOM [0xEF,0xBB,0xBF] is converted to [0xFE,0xFF] in the JS UTC16/UCS2 representation. - // Strip this value out when the encoding is set to 'utf8', as upstream consumers won't expect it and it breaks JSON.parse(). - if (self.encoding === 'utf8' && buffer[0].length > 0 && buffer[0][0] === "\uFEFF") { - buffer[0] = buffer[0].substring(1) - } - response.body = buffer.join('') - } - - if (self._json) { - try { - response.body = JSON.parse(response.body) - } catch (e) {} - } - debug('emitting complete', self.uri.href) - self.emit('complete', response, response.body) - }) - } - } - debug('finish init function', self.uri.href) -} - -Request.prototype.abort = function () { - this._aborted = true - - if (this.req) { - this.req.abort() - } - else if (this.response) { - this.response.abort() - } - - this.emit("abort") -} - -Request.prototype.pipeDest = function (dest) { - var response = this.response - // Called after the response is received - if (dest.headers) { - dest.headers['content-type'] = response.headers['content-type'] - if (response.headers['content-length']) { - dest.headers['content-length'] = response.headers['content-length'] - } - } - if (dest.setHeader) { - for (var i in response.headers) { - dest.setHeader(i, response.headers[i]) - } - dest.statusCode = response.statusCode - } - if (this.pipefilter) this.pipefilter(response, dest) -} - -// Composable API -Request.prototype.setHeader = function (name, value, clobber) { - if (clobber === undefined) clobber = true - if (clobber || !this.headers.hasOwnProperty(name)) this.headers[name] = value - else this.headers[name] += ',' + value - return this -} -Request.prototype.setHeaders = function (headers) { - for (var i in headers) {this.setHeader(i, headers[i])} - return this -} -Request.prototype.qs = function (q, clobber) { - var base - if (!clobber && this.uri.query) base = qs.parse(this.uri.query) - else base = {} - - for (var i in q) { - base[i] = q[i] - } - - if (qs.stringify(base) === ''){ - return this - } - - this.uri = url.parse(this.uri.href.split('?')[0] + '?' + qs.stringify(base)) - this.url = this.uri - - return this -} -Request.prototype.form = function (form) { - if (form) { - this.headers['content-type'] = 'application/x-www-form-urlencoded; charset=utf-8' - this.body = qs.stringify(form).toString('utf8') - return this - } - // create form-data object - this._form = new FormData() - return this._form -} -Request.prototype.multipart = function (multipart) { - var self = this - self.body = [] - - if (!self.headers['content-type']) { - self.headers['content-type'] = 'multipart/related; boundary=' + self.boundary - } else { - self.headers['content-type'] = self.headers['content-type'].split(';')[0] + '; boundary=' + self.boundary - } - - if (!multipart.forEach) throw new Error('Argument error, options.multipart.') - - if (self.preambleCRLF) { - self.body.push(new Buffer('\r\n')) - } - - multipart.forEach(function (part) { - var body = part.body - if(body == null) throw Error('Body attribute missing in multipart.') - delete part.body - var preamble = '--' + self.boundary + '\r\n' - Object.keys(part).forEach(function (key) { - preamble += key + ': ' + part[key] + '\r\n' - }) - preamble += '\r\n' - self.body.push(new Buffer(preamble)) - self.body.push(new Buffer(body)) - self.body.push(new Buffer('\r\n')) - }) - self.body.push(new Buffer('--' + self.boundary + '--')) - return self -} -Request.prototype.json = function (val) { - var self = this; - var setAcceptHeader = function() { - if (!self.headers['accept'] && !self.headers['Accept']) { - self.setHeader('accept', 'application/json') - } - } - setAcceptHeader(); - this._json = true - if (typeof val === 'boolean') { - if (typeof this.body === 'object') { - setAcceptHeader(); - this.body = safeStringify(this.body) - self.setHeader('content-type', 'application/json') - } - } else { - setAcceptHeader(); - this.body = safeStringify(val) - self.setHeader('content-type', 'application/json') - } - return this -} -function getHeader(name, headers) { - var result, re, match - Object.keys(headers).forEach(function (key) { - re = new RegExp(name, 'i') - match = key.match(re) - if (match) result = headers[key] - }) - return result -} -Request.prototype.auth = function (user, pass, sendImmediately) { - if (typeof user !== 'string' || typeof pass !== 'string') { - throw new Error('auth() received invalid user or password') - } - this._user = user - this._pass = pass - this._hasAuth = true - if (sendImmediately || typeof sendImmediately == 'undefined') { - this.setHeader('authorization', 'Basic ' + toBase64(user + ':' + pass)) - this._sentAuth = true - } - return this -} -Request.prototype.aws = function (opts, now) { - if (!now) { - this._aws = opts - return this - } - var date = new Date() - this.setHeader('date', date.toUTCString()) - var auth = - { key: opts.key - , secret: opts.secret - , verb: this.method.toUpperCase() - , date: date - , contentType: getHeader('content-type', this.headers) || '' - , md5: getHeader('content-md5', this.headers) || '' - , amazonHeaders: aws.canonicalizeHeaders(this.headers) - } - if (opts.bucket && this.path) { - auth.resource = '/' + opts.bucket + this.path - } else if (opts.bucket && !this.path) { - auth.resource = '/' + opts.bucket - } else if (!opts.bucket && this.path) { - auth.resource = this.path - } else if (!opts.bucket && !this.path) { - auth.resource = '/' - } - auth.resource = aws.canonicalizeResource(auth.resource) - this.setHeader('authorization', aws.authorization(auth)) - - return this -} - -Request.prototype.hawk = function (opts) { - this.headers.Authorization = hawk.client.header(this.uri, this.method, opts).field -} - -Request.prototype.oauth = function (_oauth) { - var form - if (this.headers['content-type'] && - this.headers['content-type'].slice(0, 'application/x-www-form-urlencoded'.length) === - 'application/x-www-form-urlencoded' - ) { - form = qs.parse(this.body) - } - if (this.uri.query) { - form = qs.parse(this.uri.query) - } - if (!form) form = {} - var oa = {} - for (var i in form) oa[i] = form[i] - for (var i in _oauth) oa['oauth_'+i] = _oauth[i] - if (!oa.oauth_version) oa.oauth_version = '1.0' - if (!oa.oauth_timestamp) oa.oauth_timestamp = Math.floor( Date.now() / 1000 ).toString() - if (!oa.oauth_nonce) oa.oauth_nonce = uuid().replace(/-/g, '') - - oa.oauth_signature_method = 'HMAC-SHA1' - - var consumer_secret = oa.oauth_consumer_secret - delete oa.oauth_consumer_secret - var token_secret = oa.oauth_token_secret - delete oa.oauth_token_secret - var timestamp = oa.oauth_timestamp - - var baseurl = this.uri.protocol + '//' + this.uri.host + this.uri.pathname - var signature = oauth.hmacsign(this.method, baseurl, oa, consumer_secret, token_secret) - - // oa.oauth_signature = signature - for (var i in form) { - if ( i.slice(0, 'oauth_') in _oauth) { - // skip - } else { - delete oa['oauth_'+i] - if (i !== 'x_auth_mode') delete oa[i] - } - } - oa.oauth_timestamp = timestamp - this.headers.Authorization = - 'OAuth '+Object.keys(oa).sort().map(function (i) {return i+'="'+oauth.rfc3986(oa[i])+'"'}).join(',') - this.headers.Authorization += ',oauth_signature="' + oauth.rfc3986(signature) + '"' - return this -} -Request.prototype.jar = function (jar) { - var cookies - - if (this._redirectsFollowed === 0) { - this.originalCookieHeader = this.headers.cookie - } - - if (jar === false) { - // disable cookies - cookies = false - this._disableCookies = true - } else if (jar) { - // fetch cookie from the user defined cookie jar - cookies = jar.get({ url: this.uri.href }) - } else { - // fetch cookie from the global cookie jar - cookies = cookieJar.get({ url: this.uri.href }) - } - - if (cookies && cookies.length) { - var cookieString = cookies.map(function (c) { - return c.name + "=" + c.value - }).join("; ") - - if (this.originalCookieHeader) { - // Don't overwrite existing Cookie header - this.headers.cookie = this.originalCookieHeader + '; ' + cookieString - } else { - this.headers.cookie = cookieString - } - } - this._jar = jar - return this -} - - -// Stream API -Request.prototype.pipe = function (dest, opts) { - if (this.response) { - if (this._destdata) { - throw new Error("You cannot pipe after data has been emitted from the response.") - } else if (this._ended) { - throw new Error("You cannot pipe after the response has been ended.") - } else { - stream.Stream.prototype.pipe.call(this, dest, opts) - this.pipeDest(dest) - return dest - } - } else { - this.dests.push(dest) - stream.Stream.prototype.pipe.call(this, dest, opts) - return dest - } -} -Request.prototype.write = function () { - if (!this._started) this.start() - return this.req.write.apply(this.req, arguments) -} -Request.prototype.end = function (chunk) { - if (chunk) this.write(chunk) - if (!this._started) this.start() - this.req.end() -} -Request.prototype.pause = function () { - if (!this.response) this._paused = true - else this.response.pause.apply(this.response, arguments) -} -Request.prototype.resume = function () { - if (!this.response) this._paused = false - else this.response.resume.apply(this.response, arguments) -} -Request.prototype.destroy = function () { - if (!this._ended) this.end() - else if (this.response) this.response.destroy() -} - -// organize params for patch, post, put, head, del -function initParams(uri, options, callback) { - if ((typeof options === 'function') && !callback) callback = options - if (options && typeof options === 'object') { - options.uri = uri - } else if (typeof uri === 'string') { - options = {uri:uri} - } else { - options = uri - uri = options.uri - } - return { uri: uri, options: options, callback: callback } -} - -function request (uri, options, callback) { - if (typeof uri === 'undefined') throw new Error('undefined is not a valid uri or options object.') - if ((typeof options === 'function') && !callback) callback = options - if (options && typeof options === 'object') { - options.uri = uri - } else if (typeof uri === 'string') { - options = {uri:uri} - } else { - options = uri - } - - options = copy(options) - - if (callback) options.callback = callback - var r = new Request(options) - return r -} - -module.exports = request - -request.debug = process.env.NODE_DEBUG && /request/.test(process.env.NODE_DEBUG) - -request.initParams = initParams - -request.defaults = function (options, requester) { - var def = function (method) { - var d = function (uri, opts, callback) { - var params = initParams(uri, opts, callback) - for (var i in options) { - if (params.options[i] === undefined) params.options[i] = options[i] - } - if(typeof requester === 'function') { - if(method === request) { - method = requester - } else { - params.options._requester = requester - } - } - return method(params.options, params.callback) - } - return d - } - var de = def(request) - de.get = def(request.get) - de.patch = def(request.patch) - de.post = def(request.post) - de.put = def(request.put) - de.head = def(request.head) - de.del = def(request.del) - de.cookie = def(request.cookie) - de.jar = request.jar - return de -} - -request.forever = function (agentOptions, optionsArg) { - var options = {} - if (optionsArg) { - for (option in optionsArg) { - options[option] = optionsArg[option] - } - } - if (agentOptions) options.agentOptions = agentOptions - options.forever = true - return request.defaults(options) -} - -request.get = request -request.post = function (uri, options, callback) { - var params = initParams(uri, options, callback) - params.options.method = 'POST' - return request(params.uri || null, params.options, params.callback) -} -request.put = function (uri, options, callback) { - var params = initParams(uri, options, callback) - params.options.method = 'PUT' - return request(params.uri || null, params.options, params.callback) -} -request.patch = function (uri, options, callback) { - var params = initParams(uri, options, callback) - params.options.method = 'PATCH' - return request(params.uri || null, params.options, params.callback) -} -request.head = function (uri, options, callback) { - var params = initParams(uri, options, callback) - params.options.method = 'HEAD' - if (params.options.body || - params.options.requestBodyStream || - (params.options.json && typeof params.options.json !== 'boolean') || - params.options.multipart) { - throw new Error("HTTP HEAD requests MUST NOT include a request body.") - } - return request(params.uri || null, params.options, params.callback) -} -request.del = function (uri, options, callback) { - var params = initParams(uri, options, callback) - params.options.method = 'DELETE' - if(typeof params.options._requester === 'function') { - request = params.options._requester - } - return request(params.uri || null, params.options, params.callback) -} -request.jar = function () { - return new CookieJar -} -request.cookie = function (str) { - if (str && str.uri) str = str.uri - if (typeof str !== 'string') throw new Error("The cookie function only accepts STRING as param") - return new Cookie(str) -} - -// Safe toJSON - -function getSafe (self, uuid) { - if (typeof self === 'object' || typeof self === 'function') var safe = {} - if (Array.isArray(self)) var safe = [] - - var recurse = [] - - Object.defineProperty(self, uuid, {}) - - var attrs = Object.keys(self).filter(function (i) { - if (i === uuid) return false - if ( (typeof self[i] !== 'object' && typeof self[i] !== 'function') || self[i] === null) return true - return !(Object.getOwnPropertyDescriptor(self[i], uuid)) - }) - - - for (var i=0;i - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var crypto = require('crypto') - , parse = require('url').parse - ; - -/** - * Valid keys. - */ - -var keys = - [ 'acl' - , 'location' - , 'logging' - , 'notification' - , 'partNumber' - , 'policy' - , 'requestPayment' - , 'torrent' - , 'uploadId' - , 'uploads' - , 'versionId' - , 'versioning' - , 'versions' - , 'website' - ] - -/** - * Return an "Authorization" header value with the given `options` - * in the form of "AWS :" - * - * @param {Object} options - * @return {String} - * @api private - */ - -function authorization (options) { - return 'AWS ' + options.key + ':' + sign(options) -} - -module.exports = authorization -module.exports.authorization = authorization - -/** - * Simple HMAC-SHA1 Wrapper - * - * @param {Object} options - * @return {String} - * @api private - */ - -function hmacSha1 (options) { - return crypto.createHmac('sha1', options.secret).update(options.message).digest('base64') -} - -module.exports.hmacSha1 = hmacSha1 - -/** - * Create a base64 sha1 HMAC for `options`. - * - * @param {Object} options - * @return {String} - * @api private - */ - -function sign (options) { - options.message = stringToSign(options) - return hmacSha1(options) -} -module.exports.sign = sign - -/** - * Create a base64 sha1 HMAC for `options`. - * - * Specifically to be used with S3 presigned URLs - * - * @param {Object} options - * @return {String} - * @api private - */ - -function signQuery (options) { - options.message = queryStringToSign(options) - return hmacSha1(options) -} -module.exports.signQuery= signQuery - -/** - * Return a string for sign() with the given `options`. - * - * Spec: - * - * \n - * \n - * \n - * \n - * [headers\n] - * - * - * @param {Object} options - * @return {String} - * @api private - */ - -function stringToSign (options) { - var headers = options.amazonHeaders || '' - if (headers) headers += '\n' - var r = - [ options.verb - , options.md5 - , options.contentType - , options.date.toUTCString() - , headers + options.resource - ] - return r.join('\n') -} -module.exports.queryStringToSign = stringToSign - -/** - * Return a string for sign() with the given `options`, but is meant exclusively - * for S3 presigned URLs - * - * Spec: - * - * \n - * - * - * @param {Object} options - * @return {String} - * @api private - */ - -function queryStringToSign (options){ - return 'GET\n\n\n' + options.date + '\n' + options.resource -} -module.exports.queryStringToSign = queryStringToSign - -/** - * Perform the following: - * - * - ignore non-amazon headers - * - lowercase fields - * - sort lexicographically - * - trim whitespace between ":" - * - join with newline - * - * @param {Object} headers - * @return {String} - * @api private - */ - -function canonicalizeHeaders (headers) { - var buf = [] - , fields = Object.keys(headers) - ; - for (var i = 0, len = fields.length; i < len; ++i) { - var field = fields[i] - , val = headers[field] - , field = field.toLowerCase() - ; - if (0 !== field.indexOf('x-amz')) continue - buf.push(field + ':' + val) - } - return buf.sort().join('\n') -} -module.exports.canonicalizeHeaders = canonicalizeHeaders - -/** - * Perform the following: - * - * - ignore non sub-resources - * - sort lexicographically - * - * @param {String} resource - * @return {String} - * @api private - */ - -function canonicalizeResource (resource) { - var url = parse(resource, true) - , path = url.pathname - , buf = [] - ; - - Object.keys(url.query).forEach(function(key){ - if (!~keys.indexOf(key)) return - var val = '' == url.query[key] ? '' : '=' + encodeURIComponent(url.query[key]) - buf.push(key + val) - }) - - return path + (buf.length ? '?' + buf.sort().join('&') : '') -} -module.exports.canonicalizeResource = canonicalizeResource diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/aws-sign/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/aws-sign/package.json deleted file mode 100644 index 65df9c06..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/aws-sign/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com", - "url": "http://www.futurealoof.com" - }, - "name": "aws-sign", - "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.", - "version": "0.2.0", - "repository": { - "url": "git+https://github.com/mikeal/aws-sign.git" - }, - "main": "index.js", - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" - }, - "_npmUser": { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - "_id": "aws-sign@0.2.0", - "_engineSupported": true, - "_npmVersion": "1.1.24", - "_nodeVersion": "v0.8.1", - "_defaultsLoaded": true, - "dist": { - "shasum": "c55013856c8194ec854a0cbec90aab5a04ce3ac5", - "tarball": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz" - }, - "maintainers": [ - { - "name": "egorfine", - "email": "me@egorfine.com" - } - ], - "directories": {}, - "_shasum": "c55013856c8194ec854a0cbec90aab5a04ce3ac5", - "_resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz", - "_from": "aws-sign@>=0.2.0 <0.3.0", - "bugs": { - "url": "https://github.com/mikeal/aws-sign/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/mikeal/aws-sign#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/index.js deleted file mode 100644 index 7d54d940..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/index.js +++ /dev/null @@ -1,67 +0,0 @@ -/*! - * Tobi - Cookie - * Copyright(c) 2010 LearnBoost - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var url = require('url'); - -/** - * Initialize a new `Cookie` with the given cookie `str` and `req`. - * - * @param {String} str - * @param {IncomingRequest} req - * @api private - */ - -var Cookie = exports = module.exports = function Cookie(str, req) { - this.str = str; - - // Map the key/val pairs - str.split(/ *; */).reduce(function(obj, pair){ - var p = pair.indexOf('='); - var key = p > 0 ? pair.substring(0, p).trim() : pair.trim(); - var lowerCasedKey = key.toLowerCase(); - var value = p > 0 ? pair.substring(p + 1).trim() : true; - - if (!obj.name) { - // First key is the name - obj.name = key; - obj.value = value; - } - else if (lowerCasedKey === 'httponly') { - obj.httpOnly = value; - } - else { - obj[lowerCasedKey] = value; - } - return obj; - }, this); - - // Expires - this.expires = this.expires - ? new Date(this.expires) - : Infinity; - - // Default or trim path - this.path = this.path - ? this.path.trim(): req - ? url.parse(req.url).pathname: '/'; -}; - -/** - * Return the original cookie string. - * - * @return {String} - * @api public - */ - -Cookie.prototype.toString = function(){ - return this.str; -}; - -module.exports.Jar = require('./jar') \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/jar.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/jar.js deleted file mode 100644 index 34920e06..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/jar.js +++ /dev/null @@ -1,72 +0,0 @@ -/*! -* Tobi - CookieJar -* Copyright(c) 2010 LearnBoost -* MIT Licensed -*/ - -/** -* Module dependencies. -*/ - -var url = require('url'); - -/** -* Initialize a new `CookieJar`. -* -* @api private -*/ - -var CookieJar = exports = module.exports = function CookieJar() { - this.cookies = []; -}; - -/** -* Add the given `cookie` to the jar. -* -* @param {Cookie} cookie -* @api private -*/ - -CookieJar.prototype.add = function(cookie){ - this.cookies = this.cookies.filter(function(c){ - // Avoid duplication (same path, same name) - return !(c.name == cookie.name && c.path == cookie.path); - }); - this.cookies.push(cookie); -}; - -/** -* Get cookies for the given `req`. -* -* @param {IncomingRequest} req -* @return {Array} -* @api private -*/ - -CookieJar.prototype.get = function(req){ - var path = url.parse(req.url).pathname - , now = new Date - , specificity = {}; - return this.cookies.filter(function(cookie){ - if (0 == path.indexOf(cookie.path) && now < cookie.expires - && cookie.path.length > (specificity[cookie.name] || 0)) - return specificity[cookie.name] = cookie.path.length; - }); -}; - -/** -* Return Cookie string for the given `req`. -* -* @param {IncomingRequest} req -* @return {String} -* @api private -*/ - -CookieJar.prototype.cookieString = function(req){ - var cookies = this.get(req); - if (cookies.length) { - return cookies.map(function(cookie){ - return cookie.name + '=' + cookie.value; - }).join('; '); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/package.json deleted file mode 100644 index 3c89438c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com", - "url": "http://www.futurealoof.com" - }, - "name": "cookie-jar", - "description": "Cookie Jar. Originally pulled form tobi, maintained as vendor in request, now a standalone module.", - "version": "0.2.0", - "repository": { - "url": "git+https://github.com/mikeal/cookie-jar.git" - }, - "main": "index.js", - "scripts": { - "test": "node tests/run.js" - }, - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" - }, - "_npmUser": { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - "_id": "cookie-jar@0.2.0", - "_engineSupported": true, - "_npmVersion": "1.1.24", - "_nodeVersion": "v0.8.1", - "_defaultsLoaded": true, - "dist": { - "shasum": "64ecc06ac978db795e4b5290cbe48ba3781400fa", - "tarball": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz" - }, - "maintainers": [ - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - } - ], - "directories": {}, - "_shasum": "64ecc06ac978db795e4b5290cbe48ba3781400fa", - "_resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz", - "_from": "cookie-jar@>=0.2.0 <0.3.0", - "bugs": { - "url": "https://github.com/mikeal/cookie-jar/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/mikeal/cookie-jar#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/tests/run.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/tests/run.js deleted file mode 100644 index e717f02a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/tests/run.js +++ /dev/null @@ -1,40 +0,0 @@ -var spawn = require('child_process').spawn - , exitCode = 0 - , timeout = 10000 - , fs = require('fs') - ; - -fs.readdir(__dirname, function (e, files) { - if (e) throw e - - var tests = files.filter(function (f) {return f.slice(0, 'test-'.length) === 'test-'}) - - var next = function () { - if (tests.length === 0) process.exit(exitCode); - - var file = tests.shift() - console.log(file) - var proc = spawn('node', [ 'tests/' + file ]) - - var killed = false - var t = setTimeout(function () { - proc.kill() - exitCode += 1 - console.error(file + ' timeout') - killed = true - }, timeout) - - proc.stdout.pipe(process.stdout) - proc.stderr.pipe(process.stderr) - proc.on('exit', function (code) { - if (code && !killed) console.error(file + ' failed') - exitCode += code || 0 - clearTimeout(t) - next() - }) - } - next() - -}) - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/tests/test-cookie.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/tests/test-cookie.js deleted file mode 100644 index 2cdc835b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/tests/test-cookie.js +++ /dev/null @@ -1,29 +0,0 @@ -var Cookie = require('../index') - , assert = require('assert'); - -var str = 'Sid="s543qactge.wKE61E01Bs%2BKhzmxrwrnug="; Path=/; httpOnly; Expires=Sat, 04 Dec 2010 23:27:28 GMT'; -var cookie = new Cookie(str); - -// test .toString() -assert.equal(cookie.toString(), str); - -// test .path -assert.equal(cookie.path, '/'); - -// test .httpOnly -assert.equal(cookie.httpOnly, true); - -// test .name -assert.equal(cookie.name, 'Sid'); - -// test .value -assert.equal(cookie.value, '"s543qactge.wKE61E01Bs%2BKhzmxrwrnug="'); - -// test .expires -assert.equal(cookie.expires instanceof Date, true); - -// test .path default -var cookie = new Cookie('foo=bar', { url: 'http://foo.com/bar' }); -assert.equal(cookie.path, '/bar'); - -console.log('All tests passed'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/tests/test-cookiejar.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/tests/test-cookiejar.js deleted file mode 100644 index a33cfb23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/cookie-jar/tests/test-cookiejar.js +++ /dev/null @@ -1,90 +0,0 @@ -var Cookie = require('../index') - , Jar = Cookie.Jar - , assert = require('assert'); - -function expires(ms) { - return new Date(Date.now() + ms).toUTCString(); -} - -// test .get() expiration -(function() { - var jar = new Jar; - var cookie = new Cookie('sid=1234; path=/; expires=' + expires(1000)); - jar.add(cookie); - setTimeout(function(){ - var cookies = jar.get({ url: 'http://foo.com/foo' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], cookie); - setTimeout(function(){ - var cookies = jar.get({ url: 'http://foo.com/foo' }); - assert.equal(cookies.length, 0); - }, 1000); - }, 5); -})(); - -// test .get() path support -(function() { - var jar = new Jar; - var a = new Cookie('sid=1234; path=/'); - var b = new Cookie('sid=1111; path=/foo/bar'); - var c = new Cookie('sid=2222; path=/'); - jar.add(a); - jar.add(b); - jar.add(c); - - // should remove the duplicates - assert.equal(jar.cookies.length, 2); - - // same name, same path, latter prevails - var cookies = jar.get({ url: 'http://foo.com/' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], c); - - // same name, diff path, path specifity prevails, latter prevails - var cookies = jar.get({ url: 'http://foo.com/foo/bar' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], b); - - var jar = new Jar; - var a = new Cookie('sid=1111; path=/foo/bar'); - var b = new Cookie('sid=1234; path=/'); - jar.add(a); - jar.add(b); - - var cookies = jar.get({ url: 'http://foo.com/foo/bar' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], a); - - var cookies = jar.get({ url: 'http://foo.com/' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], b); - - var jar = new Jar; - var a = new Cookie('sid=1111; path=/foo/bar'); - var b = new Cookie('sid=3333; path=/foo/bar'); - var c = new Cookie('pid=3333; path=/foo/bar'); - var d = new Cookie('sid=2222; path=/foo/'); - var e = new Cookie('sid=1234; path=/'); - jar.add(a); - jar.add(b); - jar.add(c); - jar.add(d); - jar.add(e); - - var cookies = jar.get({ url: 'http://foo.com/foo/bar' }); - assert.equal(cookies.length, 2); - assert.equal(cookies[0], b); - assert.equal(cookies[1], c); - - var cookies = jar.get({ url: 'http://foo.com/foo/' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], d); - - var cookies = jar.get({ url: 'http://foo.com/' }); - assert.equal(cookies.length, 1); - assert.equal(cookies[0], e); -})(); - -setTimeout(function() { - console.log('All tests passed'); -}, 1200); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/forever-agent/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/forever-agent/index.js deleted file mode 100644 index 1e1d4b9c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/forever-agent/index.js +++ /dev/null @@ -1,103 +0,0 @@ -module.exports = ForeverAgent -ForeverAgent.SSL = ForeverAgentSSL - -var util = require('util') - , Agent = require('http').Agent - , net = require('net') - , tls = require('tls') - , AgentSSL = require('https').Agent - -function ForeverAgent(options) { - var self = this - self.options = options || {} - self.requests = {} - self.sockets = {} - self.freeSockets = {} - self.maxSockets = self.options.maxSockets || Agent.defaultMaxSockets - self.minSockets = self.options.minSockets || ForeverAgent.defaultMinSockets - self.on('free', function(socket, host, port) { - var name = host + ':' + port - if (self.requests[name] && self.requests[name].length) { - self.requests[name].shift().onSocket(socket) - } else if (self.sockets[name].length < self.minSockets) { - if (!self.freeSockets[name]) self.freeSockets[name] = [] - self.freeSockets[name].push(socket) - - // if an error happens while we don't use the socket anyway, meh, throw the socket away - function onIdleError() { - socket.destroy() - } - socket._onIdleError = onIdleError - socket.on('error', onIdleError) - } else { - // If there are no pending requests just destroy the - // socket and it will get removed from the pool. This - // gets us out of timeout issues and allows us to - // default to Connection:keep-alive. - socket.destroy() - } - }) - -} -util.inherits(ForeverAgent, Agent) - -ForeverAgent.defaultMinSockets = 5 - - -ForeverAgent.prototype.createConnection = net.createConnection -ForeverAgent.prototype.addRequestNoreuse = Agent.prototype.addRequest -ForeverAgent.prototype.addRequest = function(req, host, port) { - var name = host + ':' + port - if (this.freeSockets[name] && this.freeSockets[name].length > 0 && !req.useChunkedEncodingByDefault) { - var idleSocket = this.freeSockets[name].pop() - idleSocket.removeListener('error', idleSocket._onIdleError) - delete idleSocket._onIdleError - req._reusedSocket = true - req.onSocket(idleSocket) - } else { - this.addRequestNoreuse(req, host, port) - } -} - -ForeverAgent.prototype.removeSocket = function(s, name, host, port) { - if (this.sockets[name]) { - var index = this.sockets[name].indexOf(s) - if (index !== -1) { - this.sockets[name].splice(index, 1) - } - } else if (this.sockets[name] && this.sockets[name].length === 0) { - // don't leak - delete this.sockets[name] - delete this.requests[name] - } - - if (this.freeSockets[name]) { - var index = this.freeSockets[name].indexOf(s) - if (index !== -1) { - this.freeSockets[name].splice(index, 1) - if (this.freeSockets[name].length === 0) { - delete this.freeSockets[name] - } - } - } - - if (this.requests[name] && this.requests[name].length) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(name, host, port).emit('free') - } -} - -function ForeverAgentSSL (options) { - ForeverAgent.call(this, options) -} -util.inherits(ForeverAgentSSL, ForeverAgent) - -ForeverAgentSSL.prototype.createConnection = createConnectionSSL -ForeverAgentSSL.prototype.addRequestNoreuse = AgentSSL.prototype.addRequest - -function createConnectionSSL (port, host, options) { - options.port = port - options.host = host - return tls.connect(options) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/forever-agent/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/forever-agent/package.json deleted file mode 100644 index 6859b259..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/forever-agent/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com", - "url": "http://www.futurealoof.com" - }, - "name": "forever-agent", - "description": "HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.", - "version": "0.2.0", - "repository": { - "url": "git+https://github.com/mikeal/forever-agent.git" - }, - "main": "index.js", - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" - }, - "_npmUser": { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - "_id": "forever-agent@0.2.0", - "_engineSupported": true, - "_npmVersion": "1.1.24", - "_nodeVersion": "v0.8.1", - "_defaultsLoaded": true, - "dist": { - "shasum": "e1c25c7ad44e09c38f233876c76fcc24ff843b1f", - "tarball": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz" - }, - "maintainers": [ - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - } - ], - "directories": {}, - "_shasum": "e1c25c7ad44e09c38f233876c76fcc24ff843b1f", - "_resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz", - "_from": "forever-agent@>=0.2.0 <0.3.0", - "bugs": { - "url": "https://github.com/mikeal/forever-agent/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/mikeal/forever-agent#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/License deleted file mode 100644 index c7ff12a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors - - 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/Readme.md deleted file mode 100644 index db79372f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/Readme.md +++ /dev/null @@ -1,146 +0,0 @@ -# Form-Data [![Build Status](https://travis-ci.org/alexindigo/node-form-data.png?branch=master)](https://travis-ci.org/alexindigo/node-form-data) [![Dependency Status](https://gemnasium.com/alexindigo/node-form-data.png)](https://gemnasium.com/alexindigo/node-form-data) - -A module to create readable `"multipart/form-data"` streams. Can be used to -submit forms and file uploads to other web applications. - -The API of this module is inspired by the -[XMLHttpRequest-2 FormData Interface][xhr2-fd]. - -[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface - -## Install - -``` -npm install form-data -``` - -## Usage - -In this example we are constructing a form with 3 fields that contain a string, -a buffer and a file stream. - -``` javascript -var FormData = require('form-data'); -var fs = require('fs'); - -var form = new FormData(); -form.append('my_field', 'my value'); -form.append('my_buffer', new Buffer(10)); -form.append('my_file', fs.createReadStream('/foo/bar.jpg')); -``` - -Also you can use http-response stream: - -``` javascript -var FormData = require('form-data'); -var http = require('http'); - -var form = new FormData(); - -http.request('http://nodejs.org/images/logo.png', function(response) { - form.append('my_field', 'my value'); - form.append('my_buffer', new Buffer(10)); - form.append('my_logo', response); -}); -``` - -Or @mikeal's request stream: - -``` javascript -var FormData = require('form-data'); -var request = require('request'); - -var form = new FormData(); - -form.append('my_field', 'my value'); -form.append('my_buffer', new Buffer(10)); -form.append('my_logo', request('http://nodejs.org/images/logo.png')); -``` - -In order to submit this form to a web application, you can use node's http -client interface: - -``` javascript -var http = require('http'); - -var request = http.request({ - method: 'post', - host: 'example.org', - path: '/upload', - headers: form.getHeaders() -}); - -form.pipe(request); - -request.on('response', function(res) { - console.log(res.statusCode); -}); -``` - -Or if you would prefer the `'Content-Length'` header to be set for you: - -``` javascript -form.submit('example.org/upload', function(err, res) { - console.log(res.statusCode); -}); -``` - -To use custom headers and pre-known length in parts: - -``` javascript -var CRLF = '\r\n'; -var form = new FormData(); - -var options = { - header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF, - knownLength: 1 -}; - -form.append('my_buffer', buffer, options); - -form.submit('http://example.com/', function(err, res) { - if (err) throw err; - console.log('Done'); -}); -``` - -Form-Data can recognize and fetch all the required information from common types of streams (fs.readStream, http.response and mikeal's request), for some other types of streams you'd need to provide "file"-related information manually: - -``` javascript -someModule.stream(function(err, stdout, stderr) { - if (err) throw err; - - var form = new FormData(); - - form.append('file', stdout, { - filename: 'unicycle.jpg', - contentType: 'image/jpg', - knownLength: 19806 - }); - - form.submit('http://example.com/', function(err, res) { - if (err) throw err; - console.log('Done'); - }); -}); -``` - -For edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter: - -``` javascript -form.submit({ - host: 'example.com', - path: '/probably.php?extra=params', - auth: 'username:password' -}, function(err, res) { - console.log(res.statusCode); -}); -``` - -## TODO - -- Add new streams (0.10) support and try really hard not to break it for 0.8.x. - -## License - -Form-Data is licensed under the MIT license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/lib/form_data.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/lib/form_data.js deleted file mode 100644 index 127b70a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/lib/form_data.js +++ /dev/null @@ -1,292 +0,0 @@ -var CombinedStream = require('combined-stream'); -var util = require('util'); -var path = require('path'); -var http = require('http'); -var https = require('https'); -var parseUrl = require('url').parse; -var fs = require('fs'); -var mime = require('mime'); -var async = require('async'); - -module.exports = FormData; -function FormData() { - this._overheadLength = 0; - this._valueLength = 0; - this._lengthRetrievers = []; - - CombinedStream.call(this); -} -util.inherits(FormData, CombinedStream); - -FormData.LINE_BREAK = '\r\n'; - -FormData.prototype.append = function(field, value, options) { - options = options || {}; - - var append = CombinedStream.prototype.append.bind(this); - - // all that streamy business can't handle numbers - if (typeof value == 'number') value = ''+value; - - var header = this._multiPartHeader(field, value, options); - var footer = this._multiPartFooter(field, value, options); - - append(header); - append(value); - append(footer); - - // pass along options.knownLength - this._trackLength(header, value, options); -}; - -FormData.prototype._trackLength = function(header, value, options) { - var valueLength = 0; - - // used w/ trackLengthSync(), when length is known. - // e.g. for streaming directly from a remote server, - // w/ a known file a size, and not wanting to wait for - // incoming file to finish to get its size. - if (options.knownLength != null) { - valueLength += +options.knownLength; - } else if (Buffer.isBuffer(value)) { - valueLength = value.length; - } else if (typeof value === 'string') { - valueLength = Buffer.byteLength(value); - } - - this._valueLength += valueLength; - - // @check why add CRLF? does this account for custom/multiple CRLFs? - this._overheadLength += - Buffer.byteLength(header) + - + FormData.LINE_BREAK.length; - - // empty or either doesn't have path or not an http response - if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) )) { - return; - } - - this._lengthRetrievers.push(function(next) { - - // do we already know the size? - // 0 additional leaves value from getSyncLength() - if (options.knownLength != null) { - next(null, 0); - - // check if it's local file - } else if (value.hasOwnProperty('fd')) { - fs.stat(value.path, function(err, stat) { - if (err) { - next(err); - return; - } - - next(null, stat.size); - }); - - // or http response - } else if (value.hasOwnProperty('httpVersion')) { - next(null, +value.headers['content-length']); - - // or request stream http://github.com/mikeal/request - } else if (value.hasOwnProperty('httpModule')) { - // wait till response come back - value.on('response', function(response) { - value.pause(); - next(null, +response.headers['content-length']); - }); - value.resume(); - - // something else - } else { - next('Unknown stream'); - } - }); -}; - -FormData.prototype._multiPartHeader = function(field, value, options) { - var boundary = this.getBoundary(); - var header = ''; - - // custom header specified (as string)? - // it becomes responsible for boundary - // (e.g. to handle extra CRLFs on .NET servers) - if (options.header != null) { - header = options.header; - } else { - header += '--' + boundary + FormData.LINE_BREAK + - 'Content-Disposition: form-data; name="' + field + '"'; - - // fs- and request- streams have path property - // or use custom filename and/or contentType - // TODO: Use request's response mime-type - if (options.filename || value.path) { - header += - '; filename="' + path.basename(options.filename || value.path) + '"' + FormData.LINE_BREAK + - 'Content-Type: ' + (options.contentType || mime.lookup(options.filename || value.path)); - - // http response has not - } else if (value.readable && value.hasOwnProperty('httpVersion')) { - header += - '; filename="' + path.basename(value.client._httpMessage.path) + '"' + FormData.LINE_BREAK + - 'Content-Type: ' + value.headers['content-type']; - } - - header += FormData.LINE_BREAK + FormData.LINE_BREAK; - } - - return header; -}; - -FormData.prototype._multiPartFooter = function(field, value, options) { - return function(next) { - var footer = FormData.LINE_BREAK; - - var lastPart = (this._streams.length === 0); - if (lastPart) { - footer += this._lastBoundary(); - } - - next(footer); - }.bind(this); -}; - -FormData.prototype._lastBoundary = function() { - return '--' + this.getBoundary() + '--'; -}; - -FormData.prototype.getHeaders = function(userHeaders) { - var formHeaders = { - 'content-type': 'multipart/form-data; boundary=' + this.getBoundary() - }; - - for (var header in userHeaders) { - formHeaders[header.toLowerCase()] = userHeaders[header]; - } - - return formHeaders; -} - -FormData.prototype.getCustomHeaders = function(contentType) { - contentType = contentType ? contentType : 'multipart/form-data'; - - var formHeaders = { - 'content-type': contentType + '; boundary=' + this.getBoundary(), - 'content-length': this.getLengthSync() - }; - - return formHeaders; -} - -FormData.prototype.getBoundary = function() { - if (!this._boundary) { - this._generateBoundary(); - } - - return this._boundary; -}; - -FormData.prototype._generateBoundary = function() { - // This generates a 50 character boundary similar to those used by Firefox. - // They are optimized for boyer-moore parsing. - var boundary = '--------------------------'; - for (var i = 0; i < 24; i++) { - boundary += Math.floor(Math.random() * 10).toString(16); - } - - this._boundary = boundary; -}; - -FormData.prototype.getLengthSync = function() { - var knownLength = this._overheadLength + this._valueLength; - - if (this._streams.length) { - knownLength += this._lastBoundary().length; - } - - return knownLength; -}; - -FormData.prototype.getLength = function(cb) { - var knownLength = this._overheadLength + this._valueLength; - - if (this._streams.length) { - knownLength += this._lastBoundary().length; - } - - if (!this._lengthRetrievers.length) { - process.nextTick(cb.bind(this, null, knownLength)); - return; - } - - async.parallel(this._lengthRetrievers, function(err, values) { - if (err) { - cb(err); - return; - } - - values.forEach(function(length) { - knownLength += length; - }); - - cb(null, knownLength); - }); -}; - -FormData.prototype.submit = function(params, cb) { - this.getLength(function(err, length) { - - var request - , options - , defaults = { - method : 'post', - port : 80, - headers: this.getHeaders({'Content-Length': length}) - }; - - // parse provided url if it's string - // or treat it as options object - if (typeof params == 'string') { - params = parseUrl(params); - - options = populate({ - port: params.port, - path: params.pathname, - host: params.hostname - }, defaults); - } - else // use custom params - { - options = populate(params, defaults); - } - - // https if specified, fallback to http in any other case - if (params.protocol == 'https:') { - // override default port - if (!params.port) options.port = 443; - request = https.request(options); - } else { - request = http.request(options); - } - - this.pipe(request); - if (cb) { - request.on('error', cb); - request.on('response', cb.bind(this, null)); - } - - return request; - }.bind(this)); -}; - -/* - * Santa's little helpers - */ - -// populates missing values -function populate(dst, src) { - for (var prop in src) { - if (!dst[prop]) dst[prop] = src[prop]; - } - return dst; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/License deleted file mode 100644 index 4804b7ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Debuggable Limited - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/Readme.md deleted file mode 100644 index 8043cb48..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/Readme.md +++ /dev/null @@ -1,132 +0,0 @@ -# combined-stream [![Build Status](https://travis-ci.org/felixge/node-combined-stream.svg?branch=master)](https://travis-ci.org/felixge/node-combined-stream) - -A stream that emits multiple other streams one after another. - -## Installation - -``` bash -npm install combined-stream -``` - -## Usage - -Here is a simple example that shows how you can use combined-stream to combine -two files into one: - -``` javascript -var CombinedStream = require('combined-stream'); -var fs = require('fs'); - -var combinedStream = CombinedStream.create(); -combinedStream.append(fs.createReadStream('file1.txt')); -combinedStream.append(fs.createReadStream('file2.txt')); - -combinedStream.pipe(fs.createWriteStream('combined.txt')); -``` - -While the example above works great, it will pause all source streams until -they are needed. If you don't want that to happen, you can set `pauseStreams` -to `false`: - -``` javascript -var CombinedStream = require('combined-stream'); -var fs = require('fs'); - -var combinedStream = CombinedStream.create({pauseStreams: false}); -combinedStream.append(fs.createReadStream('file1.txt')); -combinedStream.append(fs.createReadStream('file2.txt')); - -combinedStream.pipe(fs.createWriteStream('combined.txt')); -``` - -However, what if you don't have all the source streams yet, or you don't want -to allocate the resources (file descriptors, memory, etc.) for them right away? -Well, in that case you can simply provide a callback that supplies the stream -by calling a `next()` function: - -``` javascript -var CombinedStream = require('combined-stream'); -var fs = require('fs'); - -var combinedStream = CombinedStream.create(); -combinedStream.append(function(next) { - next(fs.createReadStream('file1.txt')); -}); -combinedStream.append(function(next) { - next(fs.createReadStream('file2.txt')); -}); - -combinedStream.pipe(fs.createWriteStream('combined.txt')); -``` - -## API - -### CombinedStream.create([options]) - -Returns a new combined stream object. Available options are: - -* `maxDataSize` -* `pauseStreams` - -The effect of those options is described below. - -### combinedStream.pauseStreams = `true` - -Whether to apply back pressure to the underlaying streams. If set to `false`, -the underlaying streams will never be paused. If set to `true`, the -underlaying streams will be paused right after being appended, as well as when -`delayedStream.pipe()` wants to throttle. - -### combinedStream.maxDataSize = `2 * 1024 * 1024` - -The maximum amount of bytes (or characters) to buffer for all source streams. -If this value is exceeded, `combinedStream` emits an `'error'` event. - -### combinedStream.dataSize = `0` - -The amount of bytes (or characters) currently buffered by `combinedStream`. - -### combinedStream.append(stream) - -Appends the given `stream` to the combinedStream object. If `pauseStreams` is -set to `true, this stream will also be paused right away. - -`streams` can also be a function that takes one parameter called `next`. `next` -is a function that must be invoked in order to provide the `next` stream, see -example above. - -Regardless of how the `stream` is appended, combined-stream always attaches an -`'error'` listener to it, so you don't have to do that manually. - -Special case: `stream` can also be a String or Buffer. - -### combinedStream.write(data) - -You should not call this, `combinedStream` takes care of piping the appended -streams into itself for you. - -### combinedStream.resume() - -Causes `combinedStream` to start drain the streams it manages. The function is -idempotent, and also emits a `'resume'` event each time which usually goes to -the stream that is currently being drained. - -### combinedStream.pause(); - -If `combinedStream.pauseStreams` is set to `false`, this does nothing. -Otherwise a `'pause'` event is emitted, this goes to the stream that is -currently being drained, so you can use it to apply back pressure. - -### combinedStream.end(); - -Sets `combinedStream.writable` to false, emits an `'end'` event, and removes -all streams from the queue. - -### combinedStream.destroy(); - -Same as `combinedStream.end()`, except it emits a `'close'` event instead of -`'end'`. - -## License - -combined-stream is licensed under the MIT license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/lib/combined_stream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/lib/combined_stream.js deleted file mode 100644 index 6b5c21b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/lib/combined_stream.js +++ /dev/null @@ -1,188 +0,0 @@ -var util = require('util'); -var Stream = require('stream').Stream; -var DelayedStream = require('delayed-stream'); - -module.exports = CombinedStream; -function CombinedStream() { - this.writable = false; - this.readable = true; - this.dataSize = 0; - this.maxDataSize = 2 * 1024 * 1024; - this.pauseStreams = true; - - this._released = false; - this._streams = []; - this._currentStream = null; -} -util.inherits(CombinedStream, Stream); - -CombinedStream.create = function(options) { - var combinedStream = new this(); - - options = options || {}; - for (var option in options) { - combinedStream[option] = options[option]; - } - - return combinedStream; -}; - -CombinedStream.isStreamLike = function(stream) { - return (typeof stream !== 'function') - && (typeof stream !== 'string') - && (typeof stream !== 'boolean') - && (typeof stream !== 'number') - && (!Buffer.isBuffer(stream)); -}; - -CombinedStream.prototype.append = function(stream) { - var isStreamLike = CombinedStream.isStreamLike(stream); - - if (isStreamLike) { - if (!(stream instanceof DelayedStream)) { - var newStream = DelayedStream.create(stream, { - maxDataSize: Infinity, - pauseStream: this.pauseStreams, - }); - stream.on('data', this._checkDataSize.bind(this)); - stream = newStream; - } - - this._handleErrors(stream); - - if (this.pauseStreams) { - stream.pause(); - } - } - - this._streams.push(stream); - return this; -}; - -CombinedStream.prototype.pipe = function(dest, options) { - Stream.prototype.pipe.call(this, dest, options); - this.resume(); - return dest; -}; - -CombinedStream.prototype._getNext = function() { - this._currentStream = null; - var stream = this._streams.shift(); - - - if (typeof stream == 'undefined') { - this.end(); - return; - } - - if (typeof stream !== 'function') { - this._pipeNext(stream); - return; - } - - var getStream = stream; - getStream(function(stream) { - var isStreamLike = CombinedStream.isStreamLike(stream); - if (isStreamLike) { - stream.on('data', this._checkDataSize.bind(this)); - this._handleErrors(stream); - } - - this._pipeNext(stream); - }.bind(this)); -}; - -CombinedStream.prototype._pipeNext = function(stream) { - this._currentStream = stream; - - var isStreamLike = CombinedStream.isStreamLike(stream); - if (isStreamLike) { - stream.on('end', this._getNext.bind(this)); - stream.pipe(this, {end: false}); - return; - } - - var value = stream; - this.write(value); - this._getNext(); -}; - -CombinedStream.prototype._handleErrors = function(stream) { - var self = this; - stream.on('error', function(err) { - self._emitError(err); - }); -}; - -CombinedStream.prototype.write = function(data) { - this.emit('data', data); -}; - -CombinedStream.prototype.pause = function() { - if (!this.pauseStreams) { - return; - } - - if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause(); - this.emit('pause'); -}; - -CombinedStream.prototype.resume = function() { - if (!this._released) { - this._released = true; - this.writable = true; - this._getNext(); - } - - if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume(); - this.emit('resume'); -}; - -CombinedStream.prototype.end = function() { - this._reset(); - this.emit('end'); -}; - -CombinedStream.prototype.destroy = function() { - this._reset(); - this.emit('close'); -}; - -CombinedStream.prototype._reset = function() { - this.writable = false; - this._streams = []; - this._currentStream = null; -}; - -CombinedStream.prototype._checkDataSize = function() { - this._updateDataSize(); - if (this.dataSize <= this.maxDataSize) { - return; - } - - var message = - 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'; - this._emitError(new Error(message)); -}; - -CombinedStream.prototype._updateDataSize = function() { - this.dataSize = 0; - - var self = this; - this._streams.forEach(function(stream) { - if (!stream.dataSize) { - return; - } - - self.dataSize += stream.dataSize; - }); - - if (this._currentStream && this._currentStream.dataSize) { - this.dataSize += this._currentStream.dataSize; - } -}; - -CombinedStream.prototype._emitError = function(err) { - this._reset(); - this.emit('error', err); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/.npmignore deleted file mode 100644 index 2fedb26c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -*.un~ -/node_modules/* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/License deleted file mode 100644 index 4804b7ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Debuggable Limited - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Makefile deleted file mode 100644 index b4ff85a3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -SHELL := /bin/bash - -test: - @./test/run.js - -.PHONY: test - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Readme.md deleted file mode 100644 index 5cb5b35e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Readme.md +++ /dev/null @@ -1,154 +0,0 @@ -# delayed-stream - -Buffers events from a stream until you are ready to handle them. - -## Installation - -``` bash -npm install delayed-stream -``` - -## Usage - -The following example shows how to write a http echo server that delays its -response by 1000 ms. - -``` javascript -var DelayedStream = require('delayed-stream'); -var http = require('http'); - -http.createServer(function(req, res) { - var delayed = DelayedStream.create(req); - - setTimeout(function() { - res.writeHead(200); - delayed.pipe(res); - }, 1000); -}); -``` - -If you are not using `Stream#pipe`, you can also manually release the buffered -events by calling `delayedStream.resume()`: - -``` javascript -var delayed = DelayedStream.create(req); - -setTimeout(function() { - // Emit all buffered events and resume underlaying source - delayed.resume(); -}, 1000); -``` - -## Implementation - -In order to use this meta stream properly, here are a few things you should -know about the implementation. - -### Event Buffering / Proxying - -All events of the `source` stream are hijacked by overwriting the `source.emit` -method. Until node implements a catch-all event listener, this is the only way. - -However, delayed-stream still continues to emit all events it captures on the -`source`, regardless of whether you have released the delayed stream yet or -not. - -Upon creation, delayed-stream captures all `source` events and stores them in -an internal event buffer. Once `delayedStream.release()` is called, all -buffered events are emitted on the `delayedStream`, and the event buffer is -cleared. After that, delayed-stream merely acts as a proxy for the underlaying -source. - -### Error handling - -Error events on `source` are buffered / proxied just like any other events. -However, `delayedStream.create` attaches a no-op `'error'` listener to the -`source`. This way you only have to handle errors on the `delayedStream` -object, rather than in two places. - -### Buffer limits - -delayed-stream provides a `maxDataSize` property that can be used to limit -the amount of data being buffered. In order to protect you from bad `source` -streams that don't react to `source.pause()`, this feature is enabled by -default. - -## API - -### DelayedStream.create(source, [options]) - -Returns a new `delayedStream`. Available options are: - -* `pauseStream` -* `maxDataSize` - -The description for those properties can be found below. - -### delayedStream.source - -The `source` stream managed by this object. This is useful if you are -passing your `delayedStream` around, and you still want to access properties -on the `source` object. - -### delayedStream.pauseStream = true - -Whether to pause the underlaying `source` when calling -`DelayedStream.create()`. Modifying this property afterwards has no effect. - -### delayedStream.maxDataSize = 1024 * 1024 - -The amount of data to buffer before emitting an `error`. - -If the underlaying source is emitting `Buffer` objects, the `maxDataSize` -refers to bytes. - -If the underlaying source is emitting JavaScript strings, the size refers to -characters. - -If you know what you are doing, you can set this property to `Infinity` to -disable this feature. You can also modify this property during runtime. - -### delayedStream.maxDataSize = 1024 * 1024 - -The amount of data to buffer before emitting an `error`. - -If the underlaying source is emitting `Buffer` objects, the `maxDataSize` -refers to bytes. - -If the underlaying source is emitting JavaScript strings, the size refers to -characters. - -If you know what you are doing, you can set this property to `Infinity` to -disable this feature. - -### delayedStream.dataSize = 0 - -The amount of data buffered so far. - -### delayedStream.readable - -An ECMA5 getter that returns the value of `source.readable`. - -### delayedStream.resume() - -If the `delayedStream` has not been released so far, `delayedStream.release()` -is called. - -In either case, `source.resume()` is called. - -### delayedStream.pause() - -Calls `source.pause()`. - -### delayedStream.pipe(dest) - -Calls `delayedStream.resume()` and then proxies the arguments to `source.pipe`. - -### delayedStream.release() - -Emits and clears all events that have been buffered up so far. This does not -resume the underlaying source, use `delayedStream.resume()` instead. - -## License - -delayed-stream is licensed under the MIT license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js deleted file mode 100644 index 7c10d482..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js +++ /dev/null @@ -1,99 +0,0 @@ -var Stream = require('stream').Stream; -var util = require('util'); - -module.exports = DelayedStream; -function DelayedStream() { - this.source = null; - this.dataSize = 0; - this.maxDataSize = 1024 * 1024; - this.pauseStream = true; - - this._maxDataSizeExceeded = false; - this._released = false; - this._bufferedEvents = []; -} -util.inherits(DelayedStream, Stream); - -DelayedStream.create = function(source, options) { - var delayedStream = new this(); - - options = options || {}; - for (var option in options) { - delayedStream[option] = options[option]; - } - - delayedStream.source = source; - - var realEmit = source.emit; - source.emit = function() { - delayedStream._handleEmit(arguments); - return realEmit.apply(source, arguments); - }; - - source.on('error', function() {}); - if (delayedStream.pauseStream) { - source.pause(); - } - - return delayedStream; -}; - -DelayedStream.prototype.__defineGetter__('readable', function() { - return this.source.readable; -}); - -DelayedStream.prototype.resume = function() { - if (!this._released) { - this.release(); - } - - this.source.resume(); -}; - -DelayedStream.prototype.pause = function() { - this.source.pause(); -}; - -DelayedStream.prototype.release = function() { - this._released = true; - - this._bufferedEvents.forEach(function(args) { - this.emit.apply(this, args); - }.bind(this)); - this._bufferedEvents = []; -}; - -DelayedStream.prototype.pipe = function() { - var r = Stream.prototype.pipe.apply(this, arguments); - this.resume(); - return r; -}; - -DelayedStream.prototype._handleEmit = function(args) { - if (this._released) { - this.emit.apply(this, args); - return; - } - - if (args[0] === 'data') { - this.dataSize += args[1].length; - this._checkIfMaxDataSizeExceeded(); - } - - this._bufferedEvents.push(args); -}; - -DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() { - if (this._maxDataSizeExceeded) { - return; - } - - if (this.dataSize <= this.maxDataSize) { - return; - } - - this._maxDataSizeExceeded = true; - var message = - 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.' - this.emit('error', new Error(message)); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/package.json deleted file mode 100644 index 7df6f094..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "author": { - "name": "Felix Geisendörfer", - "email": "felix@debuggable.com", - "url": "http://debuggable.com/" - }, - "name": "delayed-stream", - "description": "Buffers events from a stream until you are ready to handle them.", - "version": "0.0.5", - "homepage": "https://github.com/felixge/node-delayed-stream", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-delayed-stream.git" - }, - "main": "./lib/delayed_stream", - "engines": { - "node": ">=0.4.0" - }, - "dependencies": {}, - "devDependencies": { - "fake": "0.2.0", - "far": "0.0.1" - }, - "_id": "delayed-stream@0.0.5", - "_engineSupported": true, - "_npmVersion": "1.0.3", - "_nodeVersion": "v0.4.9-pre", - "_defaultsLoaded": true, - "dist": { - "shasum": "d4b1f43a93e8296dfe02694f4680bc37a313c73f", - "tarball": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" - }, - "scripts": {}, - "directories": {}, - "_shasum": "d4b1f43a93e8296dfe02694f4680bc37a313c73f", - "_resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", - "_from": "delayed-stream@0.0.5", - "bugs": { - "url": "https://github.com/felixge/node-delayed-stream/issues" - }, - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/common.js deleted file mode 100644 index 4d71b8a6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/common.js +++ /dev/null @@ -1,6 +0,0 @@ -var common = module.exports; - -common.DelayedStream = require('..'); -common.assert = require('assert'); -common.fake = require('fake'); -common.PORT = 49252; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-http-upload.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-http-upload.js deleted file mode 100644 index 9ecad5b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-http-upload.js +++ /dev/null @@ -1,38 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var DelayedStream = common.DelayedStream; -var http = require('http'); - -var UPLOAD = new Buffer(10 * 1024 * 1024); - -var server = http.createServer(function(req, res) { - var delayed = DelayedStream.create(req, {maxDataSize: UPLOAD.length}); - - setTimeout(function() { - res.writeHead(200); - delayed.pipe(res); - }, 10); -}); -server.listen(common.PORT, function() { - var request = http.request({ - method: 'POST', - port: common.PORT, - }); - - request.write(UPLOAD); - request.end(); - - request.on('response', function(res) { - var received = 0; - res - .on('data', function(chunk) { - received += chunk.length; - }) - .on('end', function() { - assert.equal(received, UPLOAD.length); - server.close(); - }); - }); -}); - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-auto-pause.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-auto-pause.js deleted file mode 100644 index 6f417f3e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-auto-pause.js +++ /dev/null @@ -1,21 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var DelayedStream = common.DelayedStream; -var Stream = require('stream').Stream; - -(function testAutoPause() { - var source = new Stream(); - - fake.expect(source, 'pause', 1); - var delayedStream = DelayedStream.create(source); - fake.verify(); -})(); - -(function testDisableAutoPause() { - var source = new Stream(); - fake.expect(source, 'pause', 0); - - var delayedStream = DelayedStream.create(source, {pauseStream: false}); - fake.verify(); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-pause.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-pause.js deleted file mode 100644 index b50c3978..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-pause.js +++ /dev/null @@ -1,14 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var DelayedStream = common.DelayedStream; -var Stream = require('stream').Stream; - -(function testDelayEventsUntilResume() { - var source = new Stream(); - var delayedStream = DelayedStream.create(source, {pauseStream: false}); - - fake.expect(source, 'pause'); - delayedStream.pause(); - fake.verify(); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream.js deleted file mode 100644 index fc4047e0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream.js +++ /dev/null @@ -1,48 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var DelayedStream = common.DelayedStream; -var Stream = require('stream').Stream; - -(function testDelayEventsUntilResume() { - var source = new Stream(); - var delayedStream = DelayedStream.create(source, {pauseStream: false}); - - // delayedStream must not emit until we resume - fake.expect(delayedStream, 'emit', 0); - - // but our original source must emit - var params = []; - source.on('foo', function(param) { - params.push(param); - }); - - source.emit('foo', 1); - source.emit('foo', 2); - - // Make sure delayedStream did not emit, and source did - assert.deepEqual(params, [1, 2]); - fake.verify(); - - // After resume, delayedStream must playback all events - fake - .stub(delayedStream, 'emit') - .times(Infinity) - .withArg(1, 'newListener'); - fake.expect(delayedStream, 'emit', ['foo', 1]); - fake.expect(delayedStream, 'emit', ['foo', 2]); - fake.expect(source, 'resume'); - - delayedStream.resume(); - fake.verify(); - - // Calling resume again will delegate to source - fake.expect(source, 'resume'); - delayedStream.resume(); - fake.verify(); - - // Emitting more events directly leads to them being emitted - fake.expect(delayedStream, 'emit', ['foo', 3]); - source.emit('foo', 3); - fake.verify(); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js deleted file mode 100644 index a9d35e72..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js +++ /dev/null @@ -1,15 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var DelayedStream = common.DelayedStream; -var Stream = require('stream').Stream; - -(function testHandleSourceErrors() { - var source = new Stream(); - var delayedStream = DelayedStream.create(source, {pauseStream: false}); - - // We deal with this by attaching a no-op listener to 'error' on the source - // when creating a new DelayedStream. This way error events on the source - // won't throw. - source.emit('error', new Error('something went wrong')); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-max-data-size.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-max-data-size.js deleted file mode 100644 index 7638a2bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-max-data-size.js +++ /dev/null @@ -1,18 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var DelayedStream = common.DelayedStream; -var Stream = require('stream').Stream; - -(function testMaxDataSize() { - var source = new Stream(); - var delayedStream = DelayedStream.create(source, {maxDataSize: 1024, pauseStream: false}); - - source.emit('data', new Buffer(1024)); - - fake - .expect(delayedStream, 'emit') - .withArg(1, 'error'); - source.emit('data', new Buffer(1)); - fake.verify(); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-pipe-resumes.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-pipe-resumes.js deleted file mode 100644 index 7d312ab1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-pipe-resumes.js +++ /dev/null @@ -1,13 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var DelayedStream = common.DelayedStream; -var Stream = require('stream').Stream; - -(function testPipeReleases() { - var source = new Stream(); - var delayedStream = DelayedStream.create(source, {pauseStream: false}); - - fake.expect(delayedStream, 'resume'); - delayedStream.pipe(new Stream()); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-proxy-readable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-proxy-readable.js deleted file mode 100644 index d436163b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-proxy-readable.js +++ /dev/null @@ -1,13 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var DelayedStream = common.DelayedStream; -var Stream = require('stream').Stream; - -(function testProxyReadableProperty() { - var source = new Stream(); - var delayedStream = DelayedStream.create(source, {pauseStream: false}); - - source.readable = fake.value('source.readable'); - assert.strictEqual(delayedStream.readable, source.readable); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/run.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/run.js deleted file mode 100755 index 0bb8e822..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/run.js +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env node -var far = require('far').create(); - -far.add(__dirname); -far.include(/test-.*\.js$/); - -far.execute(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/package.json deleted file mode 100644 index 472e4f24..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/node_modules/combined-stream/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "author": { - "name": "Felix Geisendörfer", - "email": "felix@debuggable.com", - "url": "http://debuggable.com/" - }, - "name": "combined-stream", - "description": "A stream that emits multiple other streams one after another.", - "version": "0.0.7", - "homepage": "https://github.com/felixge/node-combined-stream", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-combined-stream.git" - }, - "main": "./lib/combined_stream", - "scripts": { - "test": "node test/run.js" - }, - "engines": { - "node": ">= 0.8" - }, - "dependencies": { - "delayed-stream": "0.0.5" - }, - "devDependencies": { - "far": "~0.0.7" - }, - "bugs": { - "url": "https://github.com/felixge/node-combined-stream/issues" - }, - "_id": "combined-stream@0.0.7", - "dist": { - "shasum": "0137e657baa5a7541c57ac37ac5fc07d73b4dc1f", - "tarball": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz" - }, - "_from": "combined-stream@>=0.0.4 <0.1.0", - "_npmVersion": "1.4.3", - "_npmUser": { - "name": "felixge", - "email": "felix@debuggable.com" - }, - "maintainers": [ - { - "name": "felixge", - "email": "felix@debuggable.com" - }, - { - "name": "celer", - "email": "celer@scrypt.net" - }, - { - "name": "alexindigo", - "email": "iam@alexindigo.com" - } - ], - "directories": {}, - "_shasum": "0137e657baa5a7541c57ac37ac5fc07d73b4dc1f", - "_resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/package.json deleted file mode 100644 index 74569d33..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/form-data/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "author": { - "name": "Felix Geisendörfer", - "email": "felix@debuggable.com", - "url": "http://debuggable.com/" - }, - "name": "form-data", - "description": "A module to create readable `\"multipart/form-data\"` streams. Can be used to submit forms and file uploads to other web applications.", - "version": "0.0.10", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-form-data.git" - }, - "main": "./lib/form_data", - "scripts": { - "test": "node test/run.js" - }, - "engines": { - "node": ">= 0.6" - }, - "dependencies": { - "combined-stream": "~0.0.4", - "mime": "~1.2.2", - "async": "~0.2.7" - }, - "devDependencies": { - "fake": "~0.2.1", - "far": "~0.0.7", - "formidable": "~1.0.13", - "request": "~2.16.6" - }, - "_id": "form-data@0.0.10", - "dist": { - "shasum": "db345a5378d86aeeb1ed5d553b869ac192d2f5ed", - "tarball": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz" - }, - "_from": "form-data@>=0.0.3 <0.1.0", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "alexindigo", - "email": "iam@alexindigo.com" - }, - "maintainers": [ - { - "name": "felixge", - "email": "felix@debuggable.com" - }, - { - "name": "idralyuk", - "email": "igor@buran.us" - }, - { - "name": "alexindigo", - "email": "iam@alexindigo.com" - }, - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - { - "name": "celer", - "email": "dtyree77@gmail.com" - } - ], - "directories": {}, - "_shasum": "db345a5378d86aeeb1ed5d553b869ac192d2f5ed", - "_resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz", - "bugs": { - "url": "https://github.com/felixge/node-form-data/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/felixge/node-form-data#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/.npmignore deleted file mode 100644 index 77ba16cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/.npmignore +++ /dev/null @@ -1,18 +0,0 @@ -.idea -*.iml -npm-debug.log -dump.rdb -node_modules -results.tap -results.xml -npm-shrinkwrap.json -config.json -.DS_Store -*/.DS_Store -*/*/.DS_Store -._* -*/._* -*/*/._* -coverage.* -lib-cov - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/.travis.yml deleted file mode 100755 index d8523c93..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js - -node_js: - - 0.8 - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/LICENSE deleted file mode 100755 index e699a7bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -Copyright (c) 2012-2013, Eran Hammer. -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 Eran Hammer 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 ERAN HAMMER 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/Makefile deleted file mode 100755 index 9e7138c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -test: - @./node_modules/.bin/lab -test-cov: - @./node_modules/.bin/lab -r threshold -t 100 -test-cov-html: - @./node_modules/.bin/lab -r html -o coverage.html -complexity: - @./node_modules/.bin/cr -o complexity.md -f markdown lib - -.PHONY: test test-cov test-cov-html complexity - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/README.md deleted file mode 100755 index 05d9c858..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/README.md +++ /dev/null @@ -1,604 +0,0 @@ -![hawk Logo](https://raw.github.com/hueniverse/hawk/master/images/hawk.png) - - **Hawk** is an HTTP authentication scheme using a message authentication code (MAC) algorithm to provide partial -HTTP request cryptographic verification. For more complex use cases such as access delegation, see [Oz](https://github.com/hueniverse/oz). - -Current version: **0.10.1** - -[![Build Status](https://secure.travis-ci.org/hueniverse/hawk.png)](http://travis-ci.org/hueniverse/hawk) - -# Table of Content - -- [**Introduction**](#introduction) - - [Replay Protection](#replay-protection) - - [Usage Example](#usage-example) - - [Protocol Example](#protocol-example) - - [Payload Validation](#payload-validation) - - [Response Payload Validation](#response-payload-validation) -

      -- [**Single URI Authorization**](#single-uri-authorization) - - [Usage Example](#bewit-usage-example) -

      -- [**Security Considerations**](#security-considerations) - - [MAC Keys Transmission](#mac-keys-transmission) - - [Confidentiality of Requests](#confidentiality-of-requests) - - [Spoofing by Counterfeit Servers](#spoofing-by-counterfeit-servers) - - [Plaintext Storage of Credentials](#plaintext-storage-of-credentials) - - [Entropy of Keys](#entropy-of-keys) - - [Coverage Limitations](#coverage-limitations) - - [Future Time Manipulation](#future-time-manipulation) - - [Client Clock Poisoning](#client-clock-poisoning) - - [Bewit Limitations](#bewit-limitations) -

      -- [**Frequently Asked Questions**](#frequently-asked-questions) -

      -- [**Acknowledgements**](#acknowledgements) - -# Introduction - -**Hawk** is an HTTP authentication scheme providing mechanisms for making authenticated HTTP requests with -partial cryptographic verification of the request and response, covering the HTTP method, request URI, host, -and optionally the request payload. - -Similar to the HTTP [Digest access authentication schemes](http://www.ietf.org/rfc/rfc2617.txt), **Hawk** uses a set of -client credentials which include an identifier (e.g. username) and key (e.g. password). Likewise, just as with the Digest scheme, -the key is never included in authenticated requests. Instead, it is used to calculate a request MAC value which is -included in its place. - -However, **Hawk** has several differences from Digest. In particular, while both use a nonce to limit the possibility of -replay attacks, in **Hawk** the client generates the nonce and uses it in combination with a timestamp, leading to less -"chattiness" (interaction with the server). - -Also unlike Digest, this scheme is not intended to protect the key itself (the password in Digest) because -the client and server must both have access to the key material in the clear. - -The primary design goals of this scheme are to: -* simplify and improve HTTP authentication for services that are unwilling or unable to deploy TLS for all resources, -* secure credentials against leakage (e.g., when the client uses some form of dynamic configuration to determine where - to send an authenticated request), and -* avoid the exposure of credentials sent to a malicious server over an unauthenticated secure channel due to client - failure to validate the server's identity as part of its TLS handshake. - -In addition, **Hawk** supports a method for granting third-parties temporary access to individual resources using -a query parameter called _bewit_ (in falconry, a leather strap used to attach a tracking device to the leg of a hawk). - -The **Hawk** scheme requires the establishment of a shared symmetric key between the client and the server, -which is beyond the scope of this module. Typically, the shared credentials are established via an initial -TLS-protected phase or derived from some other shared confidential information available to both the client -and the server. - - -## Replay Protection - -Without replay protection, an attacker can use a compromised (but otherwise valid and authenticated) request more -than once, gaining access to a protected resource. To mitigate this, clients include both a nonce and a timestamp when -making requests. This gives the server enough information to prevent replay attacks. - -The nonce is generated by the client, and is a string unique across all requests with the same timestamp and -key identifier combination. - -The timestamp enables the server to restrict the validity period of the credentials where requests occuring afterwards -are rejected. It also removes the need for the server to retain an unbounded number of nonce values for future checks. -By default, **Hawk** uses a time window of 1 minute to allow for time skew between the client and server (which in -practice translates to a maximum of 2 minutes as the skew can be positive or negative). - -Using a timestamp requires the client's clock to be in sync with the server's clock. **Hawk** requires both the client -clock and the server clock to use NTP to ensure synchronization. However, given the limitations of some client types -(e.g. browsers) to deploy NTP, the server provides the client with its current time in response to a bad timestamp. - -There is no expectation that the client will adjust its system clock to match the server (in fact, this would be a -potential attack vector). Instead, the client only uses the server's time to calculate an offset used only -for communications with that particular server. The protocol rewards clients with synchronized clocks by reducing -the number of round trips required to authenticate the first request. - - -## Usage Example - -Server code: - -```javascript -var Http = require('http'); -var Hawk = require('hawk'); - - -// Credentials lookup function - -var credentialsFunc = function (id, callback) { - - var credentials = { - key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn', - algorithm: 'sha256', - user: 'Steve' - }; - - return callback(null, credentials); -}; - -// Create HTTP server - -var handler = function (req, res) { - - // Authenticate incoming request - - Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials, artifacts) { - - // Prepare response - - var payload = (!err ? 'Hello ' + credentials.user + ' ' + artifacts.ext : 'Shoosh!'); - var headers = { 'Content-Type': 'text/plain' }; - - // Generate Server-Authorization response header - - var header = Hawk.server.header(artifacts, { payload: payload, contentType: headers['Content-Type'] }); - headers['Server-Authorization'] = header; - - // Send the response back - - res.writeHead(!err ? 200 : 401, headers); - res.end(payload); - }); -}; - -// Start server - -Http.createServer(handler).listen(8000, 'example.com'); -``` - -Client code: - -```javascript -var Request = require('request'); -var Hawk = require('hawk'); - - -// Client credentials - -var credentials = { - id: 'dh37fgj492je', - key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn', - algorithm: 'sha256' -} - -// Request options - -var requestOptions = { - uri: 'http://example.com:8000/resource/1?b=1&a=2', - method: 'GET', - headers: {} -}; - -// Generate Authorization request header - -var header = Hawk.client.header('http://example.com:8000/resource/1?b=1&a=2', 'GET', { credentials: credentials, ext: 'some-app-data' }); -requestOptions.headers.Authorization = header.field; - -// Send authenticated request - -Request(requestOptions, function (error, response, body) { - - // Authenticate the server's response - - var isValid = Hawk.client.authenticate(response, header.artifacts, { payload: body }); - - // Output results - - console.log(response.statusCode + ': ' + body + (isValid ? ' (valid)' : ' (invalid)')); -}); -``` - -**Hawk** utilized the [**SNTP**](https://github.com/hueniverse/sntp) module for time sync management. By default, the local -machine time is used. To automatically retrieve and synchronice the clock within the application, use the SNTP 'start()' method. - -```javascript -Hawk.sntp.start(); -``` - - -## Protocol Example - -The client attempts to access a protected resource without authentication, sending the following HTTP request to -the resource server: - -``` -GET /resource/1?b=1&a=2 HTTP/1.1 -Host: example.com:8000 -``` - -The resource server returns an authentication challenge. - -``` -HTTP/1.1 401 Unauthorized -WWW-Authenticate: Hawk -``` - -The client has previously obtained a set of **Hawk** credentials for accessing resources on the "http://example.com/" -server. The **Hawk** credentials issued to the client include the following attributes: - -* Key identifier: dh37fgj492je -* Key: werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn -* Algorithm: sha256 - -The client generates the authentication header by calculating a timestamp (e.g. the number of seconds since January 1, -1970 00:00:00 GMT), generating a nonce, and constructing the normalized request string (each value followed by a newline -character): - -``` -hawk.1.header -1353832234 -j4h3g2 -GET -/resource?a=1&b=2 -example.com -8000 - -some-app-ext-data - -``` - -The request MAC is calculated using HMAC with the specified hash algorithm "sha256" and the key over the normalized request string. -The result is base64-encoded to produce the request MAC: - -``` -6R4rV5iE+NPoym+WwjeHzjAGXUtLNIxmo1vpMofpLAE= -``` - -The client includes the **Hawk** key identifier, timestamp, nonce, application specific data, and request MAC with the request using -the HTTP `Authorization` request header field: - -``` -GET /resource/1?b=1&a=2 HTTP/1.1 -Host: example.com:8000 -Authorization: Hawk id="dh37fgj492je", ts="1353832234", nonce="j4h3g2", ext="some-app-ext-data", mac="6R4rV5iE+NPoym+WwjeHzjAGXUtLNIxmo1vpMofpLAE=" -``` - -The server validates the request by calculating the request MAC again based on the request received and verifies the validity -and scope of the **Hawk** credentials. If valid, the server responds with the requested resource. - - -### Payload Validation - -**Hawk** provides optional payload validation. When generating the authentication header, the client calculates a payload hash -using the specified hash algorithm. The hash is calculated over the concatenated value of (each followed by a newline character): -* `hawk.1.payload` -* the content-type in lowercase, without any parameters (e.g. `application/json`) -* the request payload prior to any content encoding (the exact representation requirements should be specified by the server for payloads other than simple single-part ascii to ensure interoperability) - -For example: - -* Payload: `Thank you for flying Hawk` -* Content Type: `text/plain` -* Hash (sha256): `Yi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=` - -Results in the following input to the payload hash function (newline terminated values): - -``` -hawk.1.payload -text/plain -Thank you for flying Hawk - -``` - -Which produces the following hash value: - -``` -Yi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY= -``` - -The client constructs the normalized request string (newline terminated values): - -``` -hawk.1.header -1353832234 -j4h3g2 -POST -/resource?a=1&b=2 -example.com -8000 -Yi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY= -some-app-ext-data - -``` - -Then calculates the request MAC and includes the **Hawk** key identifier, timestamp, nonce, payload hash, application specific data, -and request MAC, with the request using the HTTP `Authorization` request header field: - -``` -POST /resource/1 HTTP/1.1 -Host: example.com:8000 -Authorization: Hawk id="dh37fgj492je", ts="1353832234", nonce="j4h3g2", hash="Yi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=", ext="some-app-ext-data", mac="aSe1DERmZuRl3pI36/9BdZmnErTw3sNzOOAUlfeKjVw=" -``` - -It is up to the server if and when it validates the payload for any given request, based solely on it's security policy -and the nature of the data included. - -If the payload is available at the time of authentication, the server uses the hash value provided by the client to construct -the normalized string and validates the MAC. If the MAC is valid, the server calculates the payload hash and compares the value -with the provided payload hash in the header. In many cases, checking the MAC first is faster than calculating the payload hash. - -However, if the payload is not available at authentication time (e.g. too large to fit in memory, streamed elsewhere, or processed -at a different stage in the application), the server may choose to defer payload validation for later by retaining the hash value -provided by the client after validating the MAC. - -It is important to note that MAC validation does not mean the hash value provided by the client is valid, only that the value -included in the header was not modified. Without calculating the payload hash on the server and comparing it to the value provided -by the client, the payload may be modified by an attacker. - - -## Response Payload Validation - -**Hawk** provides partial response payload validation. The server includes the `Server-Authorization` response header which enables the -client to authenticate the response and ensure it is talking to the right server. **Hawk** defines the HTTP `Server-Authorization` header -as a response header using the exact same syntax as the `Authorization` request header field. - -The header is contructed using the same process as the client's request header. The server uses the same credentials and other -artifacts provided by the client to constructs the normalized request string. The `ext` and `hash` values are replaced with -new values based on the server response. The rest as identical to those used by the client. - -The result MAC digest is included with the optional `hash` and `ext` values: - -``` -Server-Authorization: Hawk mac="XIJRsMl/4oL+nn+vKoeVZPdCHXB4yJkNnBbTbHFZUYE=", hash="f9cDF/TDm7TkYRLnGwRMfeDzT6LixQVLvrIKhh0vgmM=", ext="response-specific" -``` - - -# Single URI Authorization - -There are cases in which limited and short-term access to a protected resource is granted to a third party which does not -have access to the shared credentials. For example, displaying a protected image on a web page accessed by anyone. **Hawk** -provides limited support for such URIs in the form of a _bewit_ - a URI query parameter appended to the request URI which contains -the necessary credentials to authenticate the request. - -Because of the significant security risks involved in issuing such access, bewit usage is purposely limited only to GET requests -and for a finite period of time. Both the client and server can issue bewit credentials, however, the server should not use the same -credentials as the client to maintain clear traceability as to who issued which credentials. - -In order to simplify implementation, bewit credentials do not support single-use policy and can be replayed multiple times within -the granted access timeframe. - - -## Bewit Usage Example - -Server code: - -```javascript -var Http = require('http'); -var Hawk = require('hawk'); - - -// Credentials lookup function - -var credentialsFunc = function (id, callback) { - - var credentials = { - key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn', - algorithm: 'sha256' - }; - - return callback(null, credentials); -}; - -// Create HTTP server - -var handler = function (req, res) { - - Hawk.uri.authenticate(req, credentialsFunc, {}, function (err, credentials, attributes) { - - res.writeHead(!err ? 200 : 401, { 'Content-Type': 'text/plain' }); - res.end(!err ? 'Access granted' : 'Shoosh!'); - }); -}; - -Http.createServer(handler).listen(8000, 'example.com'); -``` - -Bewit code generation: - -```javascript -var Request = require('request'); -var Hawk = require('hawk'); - - -// Client credentials - -var credentials = { - id: 'dh37fgj492je', - key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn', - algorithm: 'sha256' -} - -// Generate bewit - -var duration = 60 * 5; // 5 Minutes -var bewit = Hawk.uri.getBewit('http://example.com:8080/resource/1?b=1&a=2', { credentials: credentials, ttlSec: duration, ext: 'some-app-data' }); -var uri = 'http://example.com:8000/resource/1?b=1&a=2' + '&bewit=' + bewit; -``` - - -# Security Considerations - -The greatest sources of security risks are usually found not in **Hawk** but in the policies and procedures surrounding its use. -Implementers are strongly encouraged to assess how this module addresses their security requirements. This section includes -an incomplete list of security considerations that must be reviewed and understood before deploying **Hawk** on the server. -Many of the protections provided in **Hawk** depends on whether and how they are used. - -### MAC Keys Transmission - -**Hawk** does not provide any mechanism for obtaining or transmitting the set of shared credentials required. Any mechanism used -to obtain **Hawk** credentials must ensure that these transmissions are protected using transport-layer mechanisms such as TLS. - -### Confidentiality of Requests - -While **Hawk** provides a mechanism for verifying the integrity of HTTP requests, it provides no guarantee of request -confidentiality. Unless other precautions are taken, eavesdroppers will have full access to the request content. Servers should -carefully consider the types of data likely to be sent as part of such requests, and employ transport-layer security mechanisms -to protect sensitive resources. - -### Spoofing by Counterfeit Servers - -**Hawk** provides limited verification of the server authenticity. When receiving a response back from the server, the server -may choose to include a response `Server-Authorization` header which the client can use to verify the response. However, it is up to -the server to determine when such measure is included, to up to the client to enforce that policy. - -A hostile party could take advantage of this by intercepting the client's requests and returning misleading or otherwise -incorrect responses. Service providers should consider such attacks when developing services using this protocol, and should -require transport-layer security for any requests where the authenticity of the resource server or of server responses is an issue. - -### Plaintext Storage of Credentials - -The **Hawk** key functions the same way passwords do in traditional authentication systems. In order to compute the request MAC, -the server must have access to the key in plaintext form. This is in contrast, for example, to modern operating systems, which -store only a one-way hash of user credentials. - -If an attacker were to gain access to these keys - or worse, to the server's database of all such keys - he or she would be able -to perform any action on behalf of any resource owner. Accordingly, it is critical that servers protect these keys from unauthorized -access. - -### Entropy of Keys - -Unless a transport-layer security protocol is used, eavesdroppers will have full access to authenticated requests and request -MAC values, and will thus be able to mount offline brute-force attacks to recover the key used. Servers should be careful to -assign keys which are long enough, and random enough, to resist such attacks for at least the length of time that the **Hawk** -credentials are valid. - -For example, if the credentials are valid for two weeks, servers should ensure that it is not possible to mount a brute force -attack that recovers the key in less than two weeks. Of course, servers are urged to err on the side of caution, and use the -longest key reasonable. - -It is equally important that the pseudo-random number generator (PRNG) used to generate these keys be of sufficiently high -quality. Many PRNG implementations generate number sequences that may appear to be random, but which nevertheless exhibit -patterns or other weaknesses which make cryptanalysis or brute force attacks easier. Implementers should be careful to use -cryptographically secure PRNGs to avoid these problems. - -### Coverage Limitations - -The request MAC only covers the HTTP `Host` header and optionally the `Content-Type` header. It does not cover any other headers -which can often affect how the request body is interpreted by the server. If the server behavior is influenced by the presence -or value of such headers, an attacker can manipulate the request headers without being detected. Implementers should use the -`ext` feature to pass application-specific information via the `Authorization` header which is protected by the request MAC. - -The response authentication, when performed, only covers the response payload, content-type, and the request information -provided by the client in it's request (method, resource, timestamp, nonce, etc.). It does not cover the HTTP status code or -any other response header field (e.g. Location) which can affect the client's behaviour. - -### Future Time Manipulation - -The protocol relies on a clock sync between the client and server. To accomplish this, the server informs the client of its -current time when an invalid timestamp is received. - -If an attacker is able to manipulate this information and cause the client to use an incorrect time, it would be able to cause -the client to generate authenticated requests using time in the future. Such requests will fail when sent by the client, and will -not likely leave a trace on the server (given the common implementation of nonce, if at all enforced). The attacker will then -be able to replay the request at the correct time without detection. - -The client must only use the time information provided by the server if: -* it was delivered over a TLS connection and the server identity has been verified, or -* the `tsm` MAC digest calculated using the same client credentials over the timestamp has been verified. - -### Client Clock Poisoning - -When receiving a request with a bad timestamp, the server provides the client with its current time. The client must never use -the time received from the server to adjust its own clock, and must only use it to calculate an offset for communicating with -that particular server. - -### Bewit Limitations - -Special care must be taken when issuing bewit credentials to third parties. Bewit credentials are valid until expiration and cannot -be revoked or limited without using other means. Whatever resource they grant access to will be completely exposed to anyone with -access to the bewit credentials which act as bearer credentials for that particular resource. While bewit usage is limited to GET -requests only and therefore cannot be used to perform transactions or change server state, it can still be used to expose private -and sensitive information. - - -# Frequently Asked Questions - -### Where is the protocol specification? - -If you are looking for some prose explaining how all this works, **this is it**. **Hawk** is being developed as an open source -project instead of a standard. In other words, the [code](/hueniverse/hawk/tree/master/lib) is the specification. Not sure about -something? Open an issue! - -### Is it done? - -At if version 0.10.0, **Hawk** is feature-complete. However, until this module reaches version 1.0.0 it is considered experimental -and is likely to change. This also means your feedback and contribution are very welcome. Feel free to open issues with questions -and suggestions. - -### Where can I find **Hawk** implementations in other languages? - -**Hawk**'s only reference implementation is provided in JavaScript as a node.js module. However, others are actively porting it to other -platforms. There is already a [PHP](https://github.com/alexbilbie/PHP-Hawk), -[.NET](https://github.com/pcibraro/hawknet), and [JAVA](https://github.com/wealdtech/hawk) libraries available. The full list -is maintained [here](https://github.com/hueniverse/hawk/issues?labels=port). Please add an issue if you are working on another -port. A cross-platform test-suite is in the works. - -### Why isn't the algorithm part of the challenge or dynamically negotiated? - -The algorithm used is closely related to the key issued as different algorithms require different key sizes (and other -requirements). While some keys can be used for multiple algorithm, the protocol is designed to closely bind the key and algorithm -together as part of the issued credentials. - -### Why is Host and Content-Type the only headers covered by the request MAC? - -It is really hard to include other headers. Headers can be changed by proxies and other intermediaries and there is no -well-established way to normalize them. Many platforms change the case of header field names and values. The only -straight-forward solution is to include the headers in some blob (say, base64 encoded JSON) and include that with the request, -an approach taken by JWT and other such formats. However, that design violates the HTTP header boundaries, repeats information, -and introduces other security issues because firewalls will not be aware of these "hidden" headers. In addition, any information -repeated must be compared to the duplicated information in the header and therefore only moves the problem elsewhere. - -### Why not just use HTTP Digest? - -Digest requires pre-negotiation to establish a nonce. This means you can't just make a request - you must first send -a protocol handshake to the server. This pattern has become unacceptable for most web services, especially mobile -where extra round-trip are costly. - -### Why bother with all this nonce and timestamp business? - -**Hawk** is an attempt to find a reasonable, practical compromise between security and usability. OAuth 1.0 got timestamp -and nonces halfway right but failed when it came to scalability and consistent developer experience. **Hawk** addresses -it by requiring the client to sync its clock, but provides it with tools to accomplish it. - -In general, replay protection is a matter of application-specific threat model. It is less of an issue on a TLS-protected -system where the clients are implemented using best practices and are under the control of the server. Instead of dropping -replay protection, **Hawk** offers a required time window and an optional nonce verification. Together, it provides developers -with the ability to decide how to enforce their security policy without impacting the client's implementation. - -### What are `app` and `dlg` in the authorization header and normalized mac string? - -The original motivation for **Hawk** was to replace the OAuth 1.0 use cases. This included both a simple client-server mode which -this module is specifically designed for, and a delegated access mode which is being developed separately in -[Oz](https://github.com/hueniverse/oz). In addition to the **Hawk** use cases, Oz requires another attribute: the application id `app`. -This provides binding between the credentials and the application in a way that prevents an attacker from tricking an application -to use credentials issued to someone else. It also has an optional 'delegated-by' attribute `dlg` which is the application id of the -application the credentials were directly issued to. The goal of these two additions is to allow Oz to utilize **Hawk** directly, -but with the additional security of delegated credentials. - -### What is the purpose of the static strings used in each normalized MAC input? - -When calculating a hash or MAC, a static prefix (tag) is added. The prefix is used to prevent MAC values from being -used or reused for a purpose other than what they were created for (i.e. prevents switching MAC values between a request, -response, and a bewit use cases). It also protects against expliots created after a potential change in how the protocol -creates the normalized string. For example, if a future version would switch the order of nonce and timestamp, it -can create an exploit opportunity for cases where the nonce is similar in format to a timestamp. - -### Does **Hawk** have anything to do with OAuth? - -Short answer: no. - -**Hawk** was originally proposed as the OAuth MAC Token specification. However, the OAuth working group in its consistent -incompetence failed to produce a final, usable solution to address one of the most popular use cases of OAuth 1.0 - using it -to authenticate simple client-server transactions (i.e. two-legged). As you can guess, the OAuth working group is still hard -at work to produce more garbage. - -**Hawk** provides a simple HTTP authentication scheme for making client-server requests. It does not address the OAuth use case -of delegating access to a third party. If you are looking for an OAuth alternative, check out [Oz](/hueniverse/oz). - - -# Acknowledgements - -**Hawk** is a derivative work of the [HTTP MAC Authentication Scheme](http://tools.ietf.org/html/draft-hammer-oauth-v2-mac-token-05) proposal -co-authored by Ben Adida, Adam Barth, and Eran Hammer, which in turn was based on the OAuth 1.0 community specification. - -Special thanks to Ben Laurie for his always insightful feedback and advice. - -The **Hawk** logo was created by [Chris Carrasco](http://chriscarrasco.com). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/example/usage.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/example/usage.js deleted file mode 100755 index 02daf37b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/example/usage.js +++ /dev/null @@ -1,77 +0,0 @@ -// Load modules - -var Http = require('http'); -var Request = require('request'); -var Hawk = require('../lib'); - - -// Declare internals - -var internals = { - credentials: { - dh37fgj492je: { - id: 'dh37fgj492je', // Required by Hawk.client.header - key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn', - algorithm: 'sha256', - user: 'Steve' - } - } -}; - - -// Credentials lookup function - -var credentialsFunc = function (id, callback) { - - return callback(null, internals.credentials[id]); -}; - - -// Create HTTP server - -var handler = function (req, res) { - - Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials, artifacts) { - - var payload = (!err ? 'Hello ' + credentials.user + ' ' + artifacts.ext : 'Shoosh!'); - var headers = { - 'Content-Type': 'text/plain', - 'Server-Authorization': Hawk.server.header(artifacts, { payload: payload, contentType: 'text/plain' }) - }; - - res.writeHead(!err ? 200 : 401, headers); - res.end(payload); - }); -}; - -Http.createServer(handler).listen(8000, '127.0.0.1'); - - -// Send unauthenticated request - -Request('http://127.0.0.1:8000/resource/1?b=1&a=2', function (error, response, body) { - - console.log(response.statusCode + ': ' + body); -}); - - -// Send authenticated request - -var header = Hawk.client.header('http://127.0.0.1:8000/resource/1?b=1&a=2', 'GET', { credentials: internals.credentials.dh37fgj492je, ext: 'and welcome!' }); -var options = { - uri: 'http://127.0.0.1:8000/resource/1?b=1&a=2', - method: 'GET', - headers: { - authorization: header.field - } -}; - - -Request(options, function (error, response, body) { - - var isValid = Hawk.client.authenticate(response, header.artifacts, { payload: body }); - console.log(response.statusCode + ': ' + body + (isValid ? ' (valid)' : ' (invalid)')); - process.exit(0); -}); - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/images/hawk.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/images/hawk.png deleted file mode 100755 index a0e15cda..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/images/hawk.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/images/logo.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/images/logo.png deleted file mode 100755 index b8ff5901..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/images/logo.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/index.js deleted file mode 100755 index 4cc88b35..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib'); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/client.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/client.js deleted file mode 100755 index 3475e4df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/client.js +++ /dev/null @@ -1,200 +0,0 @@ -// Load modules - -var Url = require('url'); -var Hoek = require('hoek'); -var Cryptiles = require('cryptiles'); -var Crypto = require('./crypto'); -var Utils = require('./utils'); - - -// Declare internals - -var internals = {}; - - -// Generate an Authorization header for a given request - -/* - uri: 'http://example.com/resource?a=b' or object from Url.parse() - method: HTTP verb (e.g. 'GET', 'POST') - options: { - - // Required - - credentials: { - id: 'dh37fgj492je', - key: 'aoijedoaijsdlaksjdl', - algorithm: 'sha256' // 'sha1', 'sha256' - }, - - // Optional - - ext: 'application-specific', // Application specific data sent via the ext attribute - timestamp: Date.now(), // A pre-calculated timestamp - nonce: '2334f34f', // A pre-generated nonce - localtimeOffsetMsec: 400, // Time offset to sync with server time (ignored if timestamp provided) - payload: '{"some":"payload"}', // UTF-8 encoded string for body hash generation (ignored if hash provided) - contentType: 'application/json', // Payload content-type (ignored if hash provided) - hash: 'U4MKKSmiVxk37JCCrAVIjV=', // Pre-calculated payload hash - app: '24s23423f34dx', // Oz application id - dlg: '234sz34tww3sd' // Oz delegated-by application id - } -*/ - -exports.header = function (uri, method, options) { - - var result = { - field: '', - artifacts: {} - }; - - // Validate inputs - - if (!uri || (typeof uri !== 'string' && typeof uri !== 'object') || - !method || typeof method !== 'string' || - !options || typeof options !== 'object') { - - return result; - } - - // Application time - - var timestamp = options.timestamp || Math.floor((Utils.now() + (options.localtimeOffsetMsec || 0)) / 1000) - - // Validate credentials - - var credentials = options.credentials; - if (!credentials || - !credentials.id || - !credentials.key || - !credentials.algorithm) { - - // Invalid credential object - return result; - } - - if (Crypto.algorithms.indexOf(credentials.algorithm) === -1) { - return result; - } - - // Parse URI - - if (typeof uri === 'string') { - uri = Url.parse(uri); - } - - // Calculate signature - - var artifacts = { - credentials: credentials, - ts: timestamp, - nonce: options.nonce || Cryptiles.randomString(6), - method: method, - resource: uri.pathname + (uri.search || ''), // Maintain trailing '?' - host: uri.hostname, - port: uri.port || (uri.protocol === 'http:' ? 80 : 443), - hash: options.hash, - ext: options.ext, - app: options.app, - dlg: options.dlg - }; - - result.artifacts = artifacts; - - // Calculate payload hash - - if (!artifacts.hash && - options.hasOwnProperty('payload')) { - - artifacts.hash = Crypto.calculateHash(options.payload, credentials.algorithm, options.contentType); - } - - var mac = Crypto.calculateMac('header', artifacts); - - // Construct header - - var hasExt = artifacts.ext !== null && artifacts.ext !== undefined && artifacts.ext !== ''; // Other falsey values allowed - var header = 'Hawk id="' + credentials.id + - '", ts="' + artifacts.ts + - '", nonce="' + artifacts.nonce + - (artifacts.hash ? '", hash="' + artifacts.hash : '') + - (hasExt ? '", ext="' + Utils.escapeHeaderAttribute(artifacts.ext) : '') + - '", mac="' + mac + '"'; - - if (artifacts.app) { - header += ', app="' + artifacts.app + - (artifacts.dlg ? '", dlg="' + artifacts.dlg : '') + '"'; - } - - result.field = header; - - return result; -}; - - -// Validate server response - -/* - res: node's response object - artifacts: object recieved from header().artifacts - options: { - payload: optional payload received - required: specifies if a Server-Authorization header is required. Defaults to 'false' - } -*/ - -exports.authenticate = function (res, artifacts, options) { - - artifacts = Hoek.clone(artifacts); - options = options || {}; - - if (res.headers['www-authenticate']) { - - // Parse HTTP WWW-Authenticate header - - var attributes = Utils.parseAuthorizationHeader(res.headers['www-authenticate'], ['ts', 'tsm', 'error']); - if (attributes instanceof Error) { - return false; - } - - if (attributes.ts) { - var tsm = Crypto.calculateTsMac(attributes.ts, artifacts.credentials); - if (!Cryptiles.fixedTimeComparison(tsm, attributes.tsm)) { - return false; - } - } - } - - // Parse HTTP Server-Authorization header - - if (!res.headers['server-authorization'] && - !options.required) { - - return true; - } - - var attributes = Utils.parseAuthorizationHeader(res.headers['server-authorization'], ['mac', 'ext', 'hash']); - if (attributes instanceof Error) { - return false; - } - - artifacts.ext = attributes.ext; - artifacts.hash = attributes.hash; - - var mac = Crypto.calculateMac('response', artifacts); - if (!Cryptiles.fixedTimeComparison(mac, attributes.mac)) { - return false; - } - - if (!options.hasOwnProperty('payload')) { - return true; - } - - if (!attributes.hash) { - return false; - } - - var calculatedHash = Crypto.calculateHash(options.payload, artifacts.credentials.algorithm, res.headers['content-type']); - return Cryptiles.fixedTimeComparison(calculatedHash, attributes.hash); -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/crypto.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/crypto.js deleted file mode 100755 index c5cdf3f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/crypto.js +++ /dev/null @@ -1,98 +0,0 @@ -// Load modules - -var Crypto = require('crypto'); -var Url = require('url'); -var Utils = require('./utils'); - - -// Declare internals - -var internals = {}; - - -// MAC normalization format version - -exports.headerVersion = '1'; // Prevent comparison of mac values generated with different normalized string formats - - -// Supported HMAC algorithms - -exports.algorithms = ['sha1', 'sha256']; - - -// Calculate the request MAC - -/* - type: 'header' // 'header', 'bewit', 'response' - options: { - credentials: { - key: 'aoijedoaijsdlaksjdl', - algorithm: 'sha256' // 'sha1', 'sha256' - }, - method: 'GET', - resource: '/resource?a=1&b=2', - host: 'example.com', - port: 8080, - ts: 1357718381034, - nonce: 'd3d345f', - hash: 'U4MKKSmiVxk37JCCrAVIjV/OhB3y+NdwoCr6RShbVkE=', - ext: 'app-specific-data', - app: 'hf48hd83qwkj', // Application id (Oz) - dlg: 'd8djwekds9cj' // Delegated by application id (Oz), requires options.app - } -*/ - -exports.calculateMac = function (type, options) { - - var normalized = exports.generateNormalizedString(type, options); - - var hmac = Crypto.createHmac(options.credentials.algorithm, options.credentials.key).update(normalized); - var digest = hmac.digest('base64'); - return digest; -}; - - -exports.generateNormalizedString = function (type, options) { - - var normalized = 'hawk.' + exports.headerVersion + '.' + type + '\n' + - options.ts + '\n' + - options.nonce + '\n' + - options.method.toUpperCase() + '\n' + - options.resource + '\n' + - options.host.toLowerCase() + '\n' + - options.port + '\n' + - (options.hash || '') + '\n'; - - if (options.ext) { - normalized += options.ext.replace('\\', '\\\\').replace('\n', '\\n'); - } - - normalized += '\n'; - - if (options.app) { - normalized += options.app + '\n' + - (options.dlg || '') + '\n'; - } - - return normalized; -}; - - -exports.calculateHash = function (payload, algorithm, contentType) { - - var hash = Crypto.createHash(algorithm); - hash.update('hawk.' + exports.headerVersion + '.payload\n'); - hash.update(Utils.parseContentType(contentType) + '\n'); - hash.update(payload || ''); - hash.update('\n'); - return hash.digest('base64'); -}; - - -exports.calculateTsMac = function (ts, credentials) { - - var hash = Crypto.createHash(credentials.algorithm); - hash.update('hawk.' + exports.headerVersion + '.ts\n' + ts + '\n'); - return hash.digest('base64'); -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/index.js deleted file mode 100755 index 366cbf66..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/index.js +++ /dev/null @@ -1,11 +0,0 @@ -// Export sub-modules - -exports.error = exports.Error = require('boom'); -exports.sntp = require('sntp'); -exports.server = require('./server'); -exports.client = require('./client'); -exports.uri = require('./uri'); -exports.crypto = require('./crypto'); -exports.utils = require('./utils'); - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/server.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/server.js deleted file mode 100755 index b80fe3f3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/server.js +++ /dev/null @@ -1,288 +0,0 @@ -// Load modules - -var Boom = require('boom'); -var Hoek = require('hoek'); -var Cryptiles = require('cryptiles'); -var Crypto = require('./crypto'); -var Utils = require('./utils'); - - -// Declare internals - -var internals = {}; - - -// Hawk authentication - -/* - req: node's HTTP request object or an object as follows: - - var request = { - method: 'GET', - url: '/resource/4?a=1&b=2', - host: 'example.com', - port: 8080, - authorization: 'Hawk id="dh37fgj492je", ts="1353832234", nonce="j4h3g2", ext="some-app-ext-data", mac="6R4rV5iE+NPoym+WwjeHzjAGXUtLNIxmo1vpMofpLAE="' - }; - - credentialsFunc: required function to lookup the set of Hawk credentials based on the provided credentials id. - The credentials include the MAC key, MAC algorithm, and other attributes (such as username) - needed by the application. This function is the equivalent of verifying the username and - password in Basic authentication. - - var credentialsFunc = function (id, callback) { - - // Lookup credentials in database - db.lookup(id, function (err, item) { - - if (err || !item) { - return callback(err); - } - - var credentials = { - // Required - key: item.key, - algorithm: item.algorithm, - // Application specific - user: item.user - }; - - return callback(null, credentials); - }); - }; - - options: { - - hostHeaderName: optional header field name, used to override the default 'Host' header when used - behind a cache of a proxy. Apache2 changes the value of the 'Host' header while preserving - the original (which is what the module must verify) in the 'x-forwarded-host' header field. - Only used when passed a node Http.ServerRequest object. - - nonceFunc: optional nonce validation function. The function signature is function(nonce, ts, callback) - where 'callback' must be called using the signature function(err). - - timestampSkewSec: optional number of seconds of permitted clock skew for incoming timestamps. Defaults to 60 seconds. - Provides a +/- skew which means actual allowed window is double the number of seconds. - - localtimeOffsetMsec: optional local clock time offset express in a number of milliseconds (positive or negative). - Defaults to 0. - - payload: optional payload for validation. The client calculates the hash value and includes it via the 'hash' - header attribute. The server always ensures the value provided has been included in the request - MAC. When this option is provided, it validates the hash value itself. Validation is done by calculating - a hash value over the entire payload (assuming it has already be normalized to the same format and - encoding used by the client to calculate the hash on request). If the payload is not available at the time - of authentication, the authenticatePayload() method can be used by passing it the credentials and - attributes.hash returned in the authenticate callback. - } - - callback: function (err, credentials, artifacts) { } - */ - -exports.authenticate = function (req, credentialsFunc, options, callback) { - - // Default options - - options.nonceFunc = options.nonceFunc || function (nonce, ts, callback) { return callback(); }; // No validation - options.timestampSkewSec = options.timestampSkewSec || 60; // 60 seconds - - // Application time - - var now = Utils.now() + (options.localtimeOffsetMsec || 0); // Measure now before any other processing - - // Convert node Http request object to a request configuration object - - var request = Utils.parseRequest(req, options); - if (request instanceof Error) { - return callback(Boom.badRequest(request.message)); - } - - // Parse HTTP Authorization header - - var attributes = Utils.parseAuthorizationHeader(request.authorization); - if (attributes instanceof Error) { - return callback(attributes); - } - - // Construct artifacts container - - var artifacts = { - method: request.method, - host: request.host, - port: request.port, - resource: request.url, - ts: attributes.ts, - nonce: attributes.nonce, - hash: attributes.hash, - ext: attributes.ext, - app: attributes.app, - dlg: attributes.dlg, - mac: attributes.mac, - id: attributes.id - }; - - // Verify required header attributes - - if (!attributes.id || - !attributes.ts || - !attributes.nonce || - !attributes.mac) { - - return callback(Boom.badRequest('Missing attributes'), null, artifacts); - } - - // Fetch Hawk credentials - - credentialsFunc(attributes.id, function (err, credentials) { - - artifacts.credentials = credentials; - - if (err) { - return callback(err, credentials || null, artifacts); - } - - if (!credentials) { - return callback(Boom.unauthorized('Unknown credentials', 'Hawk'), null, artifacts); - } - - if (!credentials.key || - !credentials.algorithm) { - - return callback(Boom.internal('Invalid credentials'), credentials, artifacts); - } - - if (Crypto.algorithms.indexOf(credentials.algorithm) === -1) { - return callback(Boom.internal('Unknown algorithm'), credentials, artifacts); - } - - // Calculate MAC - - var mac = Crypto.calculateMac('header', artifacts); - if (!Cryptiles.fixedTimeComparison(mac, attributes.mac)) { - return callback(Boom.unauthorized('Bad mac', 'Hawk'), credentials, artifacts); - } - - // Check payload hash - - if (options.payload !== null && - options.payload !== undefined) { // '' is valid - - if (!attributes.hash) { - return callback(Boom.unauthorized('Missing required payload hash', 'Hawk'), credentials, artifacts); - } - - var hash = Crypto.calculateHash(options.payload, credentials.algorithm, request.contentType); - if (!Cryptiles.fixedTimeComparison(hash, attributes.hash)) { - return callback(Boom.unauthorized('Bad payload hash', 'Hawk'), credentials, artifacts); - } - } - - // Check nonce - - options.nonceFunc(attributes.nonce, attributes.ts, function (err) { - - if (err) { - return callback(Boom.unauthorized('Invalid nonce', 'Hawk'), credentials, artifacts); - } - - // Check timestamp staleness - - if (Math.abs((attributes.ts * 1000) - now) > (options.timestampSkewSec * 1000)) { - var fresh = Utils.now() + (options.localtimeOffsetMsec || 0); // Get fresh now - var tsm = Crypto.calculateTsMac(fresh, credentials); - return callback(Boom.unauthorized('Stale timestamp', 'Hawk', { ts: fresh, tsm: tsm }), credentials, artifacts); - } - - // Successful authentication - - return callback(null, credentials, artifacts); - }); - }); -}; - - -// Authenticate payload hash - used when payload cannot be provided during authenticate() - -/* - payload: raw request payload - credentials: from authenticate callback - hash: from authenticate callback (artifacts.hash) - contentType: req.headers['content-type'] -*/ - -exports.authenticatePayload = function (payload, credentials, hash, contentType) { - - var calculatedHash = Crypto.calculateHash(payload, credentials.algorithm, contentType); - return Cryptiles.fixedTimeComparison(calculatedHash, hash); -}; - - -// Generate a Server-Authorization header for a given response - -/* - artifacts: {} // Object received from authenticate(); 'mac', 'hash', and 'ext' - ignored - options: { - ext: 'application-specific', // Application specific data sent via the ext attribute - payload: '{"some":"payload"}', // UTF-8 encoded string for body hash generation (ignored if hash provided) - contentType: 'application/json', // Payload content-type (ignored if hash provided) - hash: 'U4MKKSmiVxk37JCCrAVIjV=' // Pre-calculated payload hash - } -*/ - -exports.header = function (artifacts, options) { - - // Prepare inputs - - options = options || {}; - - if (!artifacts || - typeof artifacts !== 'object' || - typeof options !== 'object') { - - return ''; - } - - artifacts = Hoek.clone(artifacts); - delete artifacts.mac; - artifacts.hash = options.hash; - artifacts.ext = options.ext; - - // Validate credentials - - var credentials = artifacts.credentials; - if (!credentials || - !credentials.key || - !credentials.algorithm) { - - // Invalid credential object - return ''; - } - - if (Crypto.algorithms.indexOf(credentials.algorithm) === -1) { - return ''; - } - - // Calculate payload hash - - if (!artifacts.hash && - options.hasOwnProperty('payload')) { - - artifacts.hash = Crypto.calculateHash(options.payload, credentials.algorithm, options.contentType); - } - - var mac = Crypto.calculateMac('response', artifacts); - - // Construct header - - var header = 'Hawk mac="' + mac + '"' + - (artifacts.hash ? ', hash="' + artifacts.hash + '"' : ''); - - if (artifacts.ext !== null && - artifacts.ext !== undefined && - artifacts.ext !== '') { // Other falsey values allowed - - header += ', ext="' + Utils.escapeHeaderAttribute(artifacts.ext) + '"'; - } - - return header; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/uri.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/uri.js deleted file mode 100755 index b247c331..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/uri.js +++ /dev/null @@ -1,238 +0,0 @@ -// Load modules - -var Url = require('url'); -var Boom = require('boom'); -var Cryptiles = require('cryptiles'); -var Crypto = require('./crypto'); -var Utils = require('./utils'); - - -// Declare internals - -var internals = {}; - - -// Hawk authentication - -/* - * Arguments and options are the same as index.js with the exception that the only supported options are: - * 'hostHeaderName', 'localtimeOffsetMsec' - */ - -exports.authenticate = function (req, credentialsFunc, options, callback) { - - // Application time - - var now = Utils.now() + (options.localtimeOffsetMsec || 0); - - // Convert node Http request object to a request configuration object - - var request = Utils.parseRequest(req, options); - if (request instanceof Error) { - return callback(Boom.badRequest(request.message)); - } - - // Extract bewit - - // 1 2 3 4 - var resource = request.url.match(/^(\/.*)([\?&])bewit\=([^&$]*)(?:&(.+))?$/); - if (!resource) { - return callback(Boom.unauthorized(null, 'Hawk')); - } - - // Bewit not empty - - if (!resource[3]) { - return callback(Boom.unauthorized('Empty bewit', 'Hawk')); - } - - // Verify method is GET - - if (request.method !== 'GET' && - request.method !== 'HEAD') { - - return callback(Boom.unauthorized('Invalid method', 'Hawk')); - } - - // No other authentication - - if (request.authorization) { - return callback(Boom.badRequest('Multiple authentications', 'Hawk')); - } - - // Parse bewit - - var bewitString = Utils.base64urlDecode(resource[3]); - if (bewitString instanceof Error) { - return callback(Boom.badRequest('Invalid bewit encoding')); - } - - // Bewit format: id\exp\mac\ext ('\' is used because it is a reserved header attribute character) - - var bewitParts = bewitString.split('\\'); - if (!bewitParts || - bewitParts.length !== 4) { - - return callback(Boom.badRequest('Invalid bewit structure')); - } - - var bewit = { - id: bewitParts[0], - exp: parseInt(bewitParts[1], 10), - mac: bewitParts[2], - ext: bewitParts[3] || '' - }; - - if (!bewit.id || - !bewit.exp || - !bewit.mac) { - - return callback(Boom.badRequest('Missing bewit attributes')); - } - - // Construct URL without bewit - - var url = resource[1]; - if (resource[4]) { - url += resource[2] + resource[4]; - } - - // Check expiration - - if (bewit.exp * 1000 <= now) { - return callback(Boom.unauthorized('Access expired', 'Hawk'), null, bewit); - } - - // Fetch Hawk credentials - - credentialsFunc(bewit.id, function (err, credentials) { - - if (err) { - return callback(err, credentials || null, bewit.ext); - } - - if (!credentials) { - return callback(Boom.unauthorized('Unknown credentials', 'Hawk'), null, bewit); - } - - if (!credentials.key || - !credentials.algorithm) { - - return callback(Boom.internal('Invalid credentials'), credentials, bewit); - } - - if (Crypto.algorithms.indexOf(credentials.algorithm) === -1) { - return callback(Boom.internal('Unknown algorithm'), credentials, bewit); - } - - // Calculate MAC - - var mac = Crypto.calculateMac('bewit', { - credentials: credentials, - ts: bewit.exp, - nonce: '', - method: 'GET', - resource: url, - host: request.host, - port: request.port, - ext: bewit.ext - }); - - if (!Cryptiles.fixedTimeComparison(mac, bewit.mac)) { - return callback(Boom.unauthorized('Bad mac', 'Hawk'), credentials, bewit); - } - - // Successful authentication - - return callback(null, credentials, bewit); - }); -}; - - -// Generate a bewit value for a given URI - -/* - * credentials is an object with the following keys: 'id, 'key', 'algorithm'. - * options is an object with the following optional keys: 'ext', 'localtimeOffsetMsec' - */ -/* - uri: 'http://example.com/resource?a=b' or object from Url.parse() - options: { - - // Required - - credentials: { - id: 'dh37fgj492je', - key: 'aoijedoaijsdlaksjdl', - algorithm: 'sha256' // 'sha1', 'sha256' - }, - ttlSec: 60 * 60, // TTL in seconds - - // Optional - - ext: 'application-specific', // Application specific data sent via the ext attribute - localtimeOffsetMsec: 400 // Time offset to sync with server time - }; -*/ - -exports.getBewit = function (uri, options) { - - // Validate inputs - - if (!uri || - (typeof uri !== 'string' && typeof uri !== 'object') || - !options || - typeof options !== 'object' || - !options.ttlSec) { - - return ''; - } - - options.ext = (options.ext === null || options.ext === undefined ? '' : options.ext); // Zero is valid value - - // Application time - - var now = Utils.now() + (options.localtimeOffsetMsec || 0); - - // Validate credentials - - var credentials = options.credentials; - if (!credentials || - !credentials.id || - !credentials.key || - !credentials.algorithm) { - - return ''; - } - - if (Crypto.algorithms.indexOf(credentials.algorithm) === -1) { - return ''; - } - - // Parse URI - - if (typeof uri === 'string') { - uri = Url.parse(uri); - } - - // Calculate signature - - var exp = Math.floor(now / 1000) + options.ttlSec; - var mac = Crypto.calculateMac('bewit', { - credentials: credentials, - ts: exp, - nonce: '', - method: 'GET', - resource: uri.pathname + (uri.search || ''), // Maintain trailing '?' - host: uri.hostname, - port: uri.port || (uri.protocol === 'http:' ? 80 : 443), - ext: options.ext - }); - - // Construct bewit: id\exp\mac\ext - - var bewit = credentials.id + '\\' + exp + '\\' + mac + '\\' + options.ext; - return Utils.base64urlEncode(bewit); -}; - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/utils.js deleted file mode 100755 index c2f1a73f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/lib/utils.js +++ /dev/null @@ -1,167 +0,0 @@ -// Load modules - -var Hoek = require('hoek'); -var Sntp = require('sntp'); -var Boom = require('boom'); - - -// Declare internals - -var internals = {}; - - -// Import Hoek Utilities - -internals.import = function () { - - for (var i in Hoek) { - if (Hoek.hasOwnProperty(i)) { - exports[i] = Hoek[i]; - } - } -}; - -internals.import(); - - -// Hawk version - -exports.version = function () { - - return exports.loadPackage(__dirname + '/..').version; -}; - - -// Extract host and port from request - -exports.parseHost = function (req, hostHeaderName) { - - hostHeaderName = (hostHeaderName ? hostHeaderName.toLowerCase() : 'host'); - var hostHeader = req.headers[hostHeaderName]; - if (!hostHeader) { - return null; - } - - var hostHeaderRegex = /^(?:(?:\r\n)?[\t ])*([^:]+)(?::(\d+))?(?:(?:\r\n)?[\t ])*$/; // Does not support IPv6 - var hostParts = hostHeader.match(hostHeaderRegex); - - if (!hostParts || - hostParts.length !== 3 || - !hostParts[1]) { - - return null; - } - - return { - name: hostParts[1], - port: (hostParts[2] ? hostParts[2] : (req.connection && req.connection.encrypted ? 443 : 80)) - }; -}; - - -// Parse Content-Type header content - -exports.parseContentType = function (header) { - - if (!header) { - return ''; - } - - return header.split(';')[0].trim().toLowerCase(); -}; - - -// Convert node's to request configuration object - -exports.parseRequest = function (req, options) { - - if (!req.headers) { - return req; - } - - // Obtain host and port information - - var host = exports.parseHost(req, options.hostHeaderName); - if (!host) { - return new Error('Invalid Host header'); - } - - var request = { - method: req.method, - url: req.url, - host: host.name, - port: host.port, - authorization: req.headers.authorization, - contentType: req.headers['content-type'] || '' - }; - - return request; -}; - - -exports.now = function () { - - return Sntp.now(); -}; - - -// Parse Hawk HTTP Authorization header - -exports.parseAuthorizationHeader = function (header, keys) { - - keys = keys || ['id', 'ts', 'nonce', 'hash', 'ext', 'mac', 'app', 'dlg']; - - if (!header) { - return Boom.unauthorized(null, 'Hawk'); - } - - var headerParts = header.match(/^(\w+)(?:\s+(.*))?$/); // Header: scheme[ something] - if (!headerParts) { - return Boom.badRequest('Invalid header syntax'); - } - - var scheme = headerParts[1]; - if (scheme.toLowerCase() !== 'hawk') { - return Boom.unauthorized(null, 'Hawk'); - } - - var attributesString = headerParts[2]; - if (!attributesString) { - return Boom.badRequest('Invalid header syntax'); - } - - var attributes = {}; - var errorMessage = ''; - var verify = attributesString.replace(/(\w+)="([^"\\]*)"\s*(?:,\s*|$)/g, function ($0, $1, $2) { - - // Check valid attribute names - - if (keys.indexOf($1) === -1) { - errorMessage = 'Unknown attribute: ' + $1; - return; - } - - // Allowed attribute value characters: !#$%&'()*+,-./:;<=>?@[]^_`{|}~ and space, a-z, A-Z, 0-9 - - if ($2.match(/^[ \w\!#\$%&'\(\)\*\+,\-\.\/\:;<\=>\?@\[\]\^`\{\|\}~]+$/) === null) { - errorMessage = 'Bad attribute value: ' + $1; - return; - } - - // Check for duplicates - - if (attributes.hasOwnProperty($1)) { - errorMessage = 'Duplicate attribute: ' + $1; - return; - } - - attributes[$1] = $2; - return ''; - }); - - if (verify !== '') { - return Boom.badRequest(errorMessage || 'Bad header format'); - } - - return attributes; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/.npmignore deleted file mode 100644 index 77ba16cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/.npmignore +++ /dev/null @@ -1,18 +0,0 @@ -.idea -*.iml -npm-debug.log -dump.rdb -node_modules -results.tap -results.xml -npm-shrinkwrap.json -config.json -.DS_Store -*/.DS_Store -*/*/.DS_Store -._* -*/._* -*/*/._* -coverage.* -lib-cov - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/.travis.yml deleted file mode 100755 index d8523c93..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js - -node_js: - - 0.8 - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE deleted file mode 100755 index 911b97ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -Copyright (c) 2012-2013, Walmart. -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 Walmart 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 WALMART 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/Makefile deleted file mode 100755 index 9e7138c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -test: - @./node_modules/.bin/lab -test-cov: - @./node_modules/.bin/lab -r threshold -t 100 -test-cov-html: - @./node_modules/.bin/lab -r html -o coverage.html -complexity: - @./node_modules/.bin/cr -o complexity.md -f markdown lib - -.PHONY: test test-cov test-cov-html complexity - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/README.md deleted file mode 100755 index 1970b1c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/README.md +++ /dev/null @@ -1,6 +0,0 @@ -
      -![boom Logo](https://raw.github.com/spumko/boom/master/images/boom.png) - -HTTP-friendly error objects - -[![Build Status](https://secure.travis-ci.org/spumko/boom.png)](http://travis-ci.org/spumko/boom) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/images/boom.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/images/boom.png deleted file mode 100755 index 373bc134..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/images/boom.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/index.js deleted file mode 100755 index 4cc88b35..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib'); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js deleted file mode 100755 index a0dbd0ae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js +++ /dev/null @@ -1,207 +0,0 @@ -// Load modules - -var Http = require('http'); -var NodeUtil = require('util'); -var Hoek = require('hoek'); - - -// Declare internals - -var internals = {}; - - -exports = module.exports = internals.Boom = function (/* (new Error) or (code, message) */) { - - var self = this; - - Hoek.assert(this.constructor === internals.Boom, 'Error must be instantiated using new'); - - Error.call(this); - this.isBoom = true; - - this.response = { - code: 0, - payload: {}, - headers: {} - // type: 'content-type' - }; - - if (arguments[0] instanceof Error) { - - // Error - - var error = arguments[0]; - - this.data = error; - this.response.code = error.code || 500; - if (error.message) { - this.message = error.message; - } - } - else { - - // code, message - - var code = arguments[0]; - var message = arguments[1]; - - Hoek.assert(!isNaN(parseFloat(code)) && isFinite(code) && code >= 400, 'First argument must be a number (400+)'); - - this.response.code = code; - if (message) { - this.message = message; - } - } - - // Response format - - this.reformat(); - - return this; -}; - -NodeUtil.inherits(internals.Boom, Error); - - -internals.Boom.prototype.reformat = function () { - - this.response.payload.code = this.response.code; - this.response.payload.error = Http.STATUS_CODES[this.response.code] || 'Unknown'; - if (this.message) { - this.response.payload.message = Hoek.escapeHtml(this.message); // Prevent XSS from error message - } -}; - - -// Utilities - -internals.Boom.badRequest = function (message) { - - return new internals.Boom(400, message); -}; - - -internals.Boom.unauthorized = function (error, scheme, attributes) { // Or function (error, wwwAuthenticate[]) - - var err = new internals.Boom(401, error); - - if (!scheme) { - return err; - } - - var wwwAuthenticate = ''; - - if (typeof scheme === 'string') { - - // function (error, scheme, attributes) - - wwwAuthenticate = scheme; - if (attributes) { - var names = Object.keys(attributes); - for (var i = 0, il = names.length; i < il; ++i) { - if (i) { - wwwAuthenticate += ','; - } - - var value = attributes[names[i]]; - if (value === null || - value === undefined) { // Value can be zero - - value = ''; - } - wwwAuthenticate += ' ' + names[i] + '="' + Hoek.escapeHeaderAttribute(value.toString()) + '"'; - } - } - - if (error) { - if (attributes) { - wwwAuthenticate += ','; - } - wwwAuthenticate += ' error="' + Hoek.escapeHeaderAttribute(error) + '"'; - } - else { - err.isMissing = true; - } - } - else { - - // function (error, wwwAuthenticate[]) - - var wwwArray = scheme; - for (var i = 0, il = wwwArray.length; i < il; ++i) { - if (i) { - wwwAuthenticate += ', '; - } - - wwwAuthenticate += wwwArray[i]; - } - } - - err.response.headers['WWW-Authenticate'] = wwwAuthenticate; - - return err; -}; - - -internals.Boom.clientTimeout = function (message) { - - return new internals.Boom(408, message); -}; - - -internals.Boom.serverTimeout = function (message) { - - return new internals.Boom(503, message); -}; - - -internals.Boom.forbidden = function (message) { - - return new internals.Boom(403, message); -}; - - -internals.Boom.notFound = function (message) { - - return new internals.Boom(404, message); -}; - - -internals.Boom.internal = function (message, data) { - - var err = new internals.Boom(500, message); - - if (data && data.stack) { - err.trace = data.stack.split('\n'); - err.outterTrace = Hoek.displayStack(1); - } - else { - err.trace = Hoek.displayStack(1); - } - - err.data = data; - err.response.payload.message = 'An internal server error occurred'; // Hide actual error from user - - return err; -}; - - -internals.Boom.passThrough = function (code, payload, contentType, headers) { - - var err = new internals.Boom(500, 'Pass-through'); // 500 code is only used to initialize - - err.data = { - code: code, - payload: payload, - type: contentType - }; - - err.response.code = code; - err.response.type = contentType; - err.response.headers = headers; - err.response.payload = payload; - - return err; -}; - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/package.json deleted file mode 100644 index baf20b14..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "boom", - "description": "HTTP-friendly error objects", - "version": "0.3.8", - "author": { - "name": "Eran Hammer", - "email": "eran@hueniverse.com", - "url": "http://hueniverse.com" - }, - "contributors": [], - "repository": { - "type": "git", - "url": "git://github.com/spumko/boom.git" - }, - "main": "index", - "keywords": [ - "error", - "http" - ], - "engines": { - "node": "0.8.x" - }, - "dependencies": { - "hoek": "0.7.x" - }, - "devDependencies": { - "lab": "0.0.x", - "complexity-report": "0.x.x" - }, - "scripts": { - "test": "make test-cov" - }, - "licenses": [ - { - "type": "BSD", - "url": "http://github.com/spumko/boom/raw/master/LICENSE" - } - ], - "_id": "boom@0.3.8", - "dist": { - "shasum": "c8cdb041435912741628c044ecc732d1d17c09ea", - "tarball": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz" - }, - "_from": "boom@>=0.3.0 <0.4.0", - "_npmVersion": "1.2.14", - "_npmUser": { - "name": "hueniverse", - "email": "eran@hueniverse.com" - }, - "maintainers": [ - { - "name": "hueniverse", - "email": "eran@hueniverse.com" - } - ], - "directories": {}, - "_shasum": "c8cdb041435912741628c044ecc732d1d17c09ea", - "_resolved": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz", - "bugs": { - "url": "https://github.com/spumko/boom/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/spumko/boom#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/test/index.js deleted file mode 100755 index a20c1c34..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/hawk/node_modules/boom/test/index.js +++ /dev/null @@ -1,245 +0,0 @@ -// Load modules - -var Lab = require('lab'); -var Boom = require('../lib'); - - -// Declare internals - -var internals = {}; - - -// Test shortcuts - -var expect = Lab.expect; -var before = Lab.before; -var after = Lab.after; -var describe = Lab.experiment; -var it = Lab.test; - - -describe('Boom', function () { - - it('returns an error with info when constructed using another error', function (done) { - - var error = new Error('ka-boom'); - error.xyz = 123; - var err = new Boom(error); - expect(err.data.xyz).to.equal(123); - expect(err.message).to.equal('ka-boom'); - expect(err.response).to.deep.equal({ - code: 500, - payload: { - code: 500, - error: 'Internal Server Error', - message: 'ka-boom' - }, - headers: {} - }); - done(); - }); - - describe('#isBoom', function () { - - it('returns true for Boom object', function (done) { - - expect(Boom.badRequest().isBoom).to.equal(true); - done(); - }); - - it('returns false for Error object', function (done) { - - expect(new Error().isBoom).to.not.exist; - done(); - }); - }); - - describe('#badRequest', function () { - - it('returns a 400 error code', function (done) { - - expect(Boom.badRequest().response.code).to.equal(400); - done(); - }); - - it('sets the message with the passed in message', function (done) { - - expect(Boom.badRequest('my message').message).to.equal('my message'); - done(); - }); - }); - - describe('#unauthorized', function () { - - it('returns a 401 error code', function (done) { - - var err = Boom.unauthorized(); - expect(err.response.code).to.equal(401); - expect(err.response.headers).to.deep.equal({}); - done(); - }); - - it('sets the message with the passed in message', function (done) { - - expect(Boom.unauthorized('my message').message).to.equal('my message'); - done(); - }); - - it('returns a WWW-Authenticate header when passed a scheme', function (done) { - - var err = Boom.unauthorized('boom', 'Test'); - expect(err.response.code).to.equal(401); - expect(err.response.headers['WWW-Authenticate']).to.equal('Test error="boom"'); - done(); - }); - - it('returns a WWW-Authenticate header when passed a scheme and attributes', function (done) { - - var err = Boom.unauthorized('boom', 'Test', { a: 1, b: 'something', c: null, d: 0 }); - expect(err.response.code).to.equal(401); - expect(err.response.headers['WWW-Authenticate']).to.equal('Test a="1", b="something", c="", d="0", error="boom"'); - done(); - }); - - it('sets the isMissing flag when error message is empty', function (done) { - - var err = Boom.unauthorized('', 'Basic'); - expect(err.isMissing).to.equal(true); - done(); - }); - - it('does not set the isMissing flag when error message is not empty', function (done) { - - var err = Boom.unauthorized('message', 'Basic'); - expect(err.isMissing).to.equal(undefined); - done(); - }); - - it('sets a WWW-Authenticate when passed as an array', function (done) { - - var err = Boom.unauthorized('message', ['Basic', 'Example e="1"', 'Another x="3", y="4"']); - expect(err.response.headers['WWW-Authenticate']).to.equal('Basic, Example e="1", Another x="3", y="4"'); - done(); - }); - }); - - describe('#clientTimeout', function () { - - it('returns a 408 error code', function (done) { - - expect(Boom.clientTimeout().response.code).to.equal(408); - done(); - }); - - it('sets the message with the passed in message', function (done) { - - expect(Boom.clientTimeout('my message').message).to.equal('my message'); - done(); - }); - }); - - describe('#serverTimeout', function () { - - it('returns a 503 error code', function (done) { - - expect(Boom.serverTimeout().response.code).to.equal(503); - done(); - }); - - it('sets the message with the passed in message', function (done) { - - expect(Boom.serverTimeout('my message').message).to.equal('my message'); - done(); - }); - }); - - describe('#forbidden', function () { - - it('returns a 403 error code', function (done) { - - expect(Boom.forbidden().response.code).to.equal(403); - done(); - }); - - it('sets the message with the passed in message', function (done) { - - expect(Boom.forbidden('my message').message).to.equal('my message'); - done(); - }); - }); - - describe('#notFound', function () { - - it('returns a 404 error code', function (done) { - - expect(Boom.notFound().response.code).to.equal(404); - done(); - }); - - it('sets the message with the passed in message', function (done) { - - expect(Boom.notFound('my message').message).to.equal('my message'); - done(); - }); - }); - - describe('#internal', function () { - - it('returns a 500 error code', function (done) { - - expect(Boom.internal().response.code).to.equal(500); - done(); - }); - - it('sets the message with the passed in message', function (done) { - - var err = Boom.internal('my message'); - expect(err.message).to.equal('my message'); - expect(err.response.payload.message).to.equal('An internal server error occurred'); - done(); - }); - - it('passes data on the callback if its passed in', function (done) { - - expect(Boom.internal('my message', { my: 'data' }).data.my).to.equal('data'); - done(); - }); - - it('uses passed in stack if its available', function (done) { - - var error = new Error(); - error.stack = 'my stack line\nmy second stack line'; - expect(Boom.internal('my message', error).trace[0]).to.equal('my stack line'); - done(); - }); - }); - - describe('#passThrough', function () { - - it('returns a pass-through error', function (done) { - - var err = Boom.passThrough(499, { a: 1 }, 'application/text', { 'X-Test': 'Boom' }); - expect(err.response.code).to.equal(499); - expect(err.message).to.equal('Pass-through'); - expect(err.response).to.deep.equal({ - code: 499, - payload: { a: 1 }, - headers: { 'X-Test': 'Boom' }, - type: 'application/text' - }); - done(); - }); - }); - - describe('#reformat', function () { - - it('encodes any HTML markup in the response payload', function (done) { - - var boom = new Boom(new Error('')); - expect(boom.response.payload.message).to.not.contain(''); - expect(encoded).to.equal('\\x3cscript\\x3ealert\\x281\\x29\\x3c\\x2fscript\\x3e'); - done(); - }); - - it('encodes \' characters', function (done) { - - var encoded = Hoek.escapeJavaScript('something(\'param\')'); - expect(encoded).to.equal('something\\x28\\x27param\\x27\\x29'); - done(); - }); - - it('encodes large unicode characters with the correct padding', function (done) { - - var encoded = Hoek.escapeJavaScript(String.fromCharCode(500) + String.fromCharCode(1000)); - expect(encoded).to.equal('\\u0500\\u1000'); - done(); - }); - - it('doesn\'t throw an exception when passed null', function (done) { - - var encoded = Hoek.escapeJavaScript(null); - expect(encoded).to.equal(''); - done(); - }); - }); - - describe('#escapeHtml', function () { - - it('encodes / characters', function (done) { - - var encoded = Hoek.escapeHtml(''); - expect(encoded).to.equal('<script>alert(1)</script>'); - done(); - }); - - it('encodes < and > as named characters', function (done) { - - var encoded = Hoek.escapeHtml(' -``` - -Or in node.js: - -``` -npm install node-uuid -``` - -```javascript -var uuid = require('node-uuid'); -``` - -Then create some ids ... - -```javascript -// Generate a v1 (time-based) id -uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' - -// Generate a v4 (random) id -uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1' -``` - -## API - -### uuid.v1([`options` [, `buffer` [, `offset`]]]) - -Generate and return a RFC4122 v1 (timestamp-based) UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - - * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1. - * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used. - * `msecs` - (Number | Date) Time in milliseconds since unix Epoch. Default: The current time is used. - * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2. - -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Notes: - -1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.) - -Example: Generate string UUID with fully-specified options - -```javascript -uuid.v1({ - node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], - clockseq: 0x1234, - msecs: new Date('2011-11-01').getTime(), - nsecs: 5678 -}); // -> "710b962e-041c-11e1-9234-0123456789ab" -``` - -Example: In-place generation of two binary IDs - -```javascript -// Generate two ids in an array -var arr = new Array(32); // -> [] -uuid.v1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15] -uuid.v1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15] - -// Optionally use uuid.unparse() to get stringify the ids -uuid.unparse(buffer); // -> '02a2ce90-1432-11e1-8558-0b488e4fc115' -uuid.unparse(buffer, 16) // -> '02a31cb0-1432-11e1-8558-0b488e4fc115' -``` - -### uuid.v4([`options` [, `buffer` [, `offset`]]]) - -Generate and return a RFC4122 v4 UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - - * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values - * `rng` - (Function) Random # generator to use. Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values. - -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Example: Generate string UUID with fully-specified options - -```javascript -uuid.v4({ - random: [ - 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, - 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36 - ] -}); -// -> "109156be-c4fb-41ea-b1b4-efe1671c5836" -``` - -Example: Generate two IDs in a single buffer - -```javascript -var buffer = new Array(32); // (or 'new Buffer' in node.js) -uuid.v4(null, buffer, 0); -uuid.v4(null, buffer, 16); -``` - -### uuid.parse(id[, buffer[, offset]]) -### uuid.unparse(buffer[, offset]) - -Parse and unparse UUIDs - - * `id` - (String) UUID(-like) string - * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used - * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0 - -Example parsing and unparsing a UUID string - -```javascript -var bytes = uuid.parse('797ff043-11eb-11e1-80d6-510998755d10'); // -> -var string = uuid.unparse(bytes); // -> '797ff043-11eb-11e1-80d6-510998755d10' -``` - -### uuid.noConflict() - -(Browsers only) Set `uuid` property back to it's previous value. - -Returns the node-uuid object. - -Example: - -```javascript -var myUuid = uuid.noConflict(); -myUuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' -``` - -## Deprecated APIs - -Support for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version. - -### uuid([format [, buffer [, offset]]]) - -uuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary). - -### uuid.BufferClass - -The class of container created when generating binary uuid data if no buffer argument is specified. This is expected to go away, with no replacement API. - -## Command Line Interface - -To use the executable, it's probably best to install this library globally. - -`npm install -g node-uuid` - -Usage: - -``` -USAGE: uuid [version] [options] - - -options: - ---help Display this message and exit -``` - -`version` must be an RFC4122 version that is supported by this library, which is currently version 1 and version 4 (denoted by "v1" and "v4", respectively). `version` defaults to version 4 when not supplied. - -### Examples - -``` -> uuid -3a91f950-dec8-4688-ba14-5b7bbfc7a563 -``` - -``` -> uuid v1 -9d0b43e0-7696-11e3-964b-250efa37a98e -``` - -``` -> uuid v4 -6790ac7c-24ac-4f98-8464-42f6d98a53ae -``` - -## Testing - -In node.js - -``` -npm test -``` - -In Browser - -``` -open test/test.html -``` - -### Benchmarking - -Requires node.js - -``` -npm install uuid uuid-js -node benchmark/benchmark.js -``` - -For a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark) - -For browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance). - -## Release notes - -### 1.4.6 - -* Properly detect node crypto and whatwg crypto -* Workaround phantomjs/browserify bug -* Explicit check for `window` rather implicit this-global -* Issue warning if Math.random() is being used -* "use strict"; -* A few jshint / stylistic updates (=== and such) - -### 1.4.0 - -* Improved module context detection -* Removed public RNG functions - -### 1.3.2 - -* Improve tests and handling of v1() options (Issue #24) -* Expose RNG option to allow for perf testing with different generators - -### 1.3.0 - -* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)! -* Support for node.js crypto API -* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/README.md deleted file mode 100644 index aaeb2ea0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# node-uuid Benchmarks - -### Results - -To see the results of our benchmarks visit https://github.com/broofa/node-uuid/wiki/Benchmark - -### Run them yourself - -node-uuid comes with some benchmarks to measure performance of generating UUIDs. These can be run using node.js. node-uuid is being benchmarked against some other uuid modules, that are available through npm namely `uuid` and `uuid-js`. - -To prepare and run the benchmark issue; - -``` -npm install uuid uuid-js -node benchmark/benchmark.js -``` - -You'll see an output like this one: - -``` -# v4 -nodeuuid.v4(): 854700 uuids/second -nodeuuid.v4('binary'): 788643 uuids/second -nodeuuid.v4('binary', buffer): 1336898 uuids/second -uuid(): 479386 uuids/second -uuid('binary'): 582072 uuids/second -uuidjs.create(4): 312304 uuids/second - -# v1 -nodeuuid.v1(): 938086 uuids/second -nodeuuid.v1('binary'): 683060 uuids/second -nodeuuid.v1('binary', buffer): 1644736 uuids/second -uuidjs.create(1): 190621 uuids/second -``` - -* The `uuid()` entries are for Nikhil Marathe's [uuid module](https://bitbucket.org/nikhilm/uuidjs) which is a wrapper around the native libuuid library. -* The `uuidjs()` entries are for Patrick Negri's [uuid-js module](https://github.com/pnegri/uuid-js) which is a pure javascript implementation based on [UUID.js](https://github.com/LiosK/UUID.js) by LiosK. - -If you want to get more reliable results you can run the benchmark multiple times and write the output into a log file: - -``` -for i in {0..9}; do node benchmark/benchmark.js >> benchmark/bench_0.4.12.log; done; -``` - -If you're interested in how performance varies between different node versions, you can issue the above command multiple times. - -You can then use the shell script `bench.sh` provided in this directory to calculate the averages over all benchmark runs and draw a nice plot: - -``` -(cd benchmark/ && ./bench.sh) -``` - -This assumes you have [gnuplot](http://www.gnuplot.info/) and [ImageMagick](http://www.imagemagick.org/) installed. You'll find a nice `bench.png` graph in the `benchmark/` directory then. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu deleted file mode 100644 index a342fbbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu +++ /dev/null @@ -1,174 +0,0 @@ -#!/opt/local/bin/gnuplot -persist -# -# -# G N U P L O T -# Version 4.4 patchlevel 3 -# last modified March 2011 -# System: Darwin 10.8.0 -# -# Copyright (C) 1986-1993, 1998, 2004, 2007-2010 -# Thomas Williams, Colin Kelley and many others -# -# gnuplot home: http://www.gnuplot.info -# faq, bugs, etc: type "help seeking-assistance" -# immediate help: type "help" -# plot window: hit 'h' -set terminal postscript eps noenhanced defaultplex \ - leveldefault color colortext \ - solid linewidth 1.2 butt noclip \ - palfuncparam 2000,0.003 \ - "Helvetica" 14 -set output 'bench.eps' -unset clip points -set clip one -unset clip two -set bar 1.000000 front -set border 31 front linetype -1 linewidth 1.000 -set xdata -set ydata -set zdata -set x2data -set y2data -set timefmt x "%d/%m/%y,%H:%M" -set timefmt y "%d/%m/%y,%H:%M" -set timefmt z "%d/%m/%y,%H:%M" -set timefmt x2 "%d/%m/%y,%H:%M" -set timefmt y2 "%d/%m/%y,%H:%M" -set timefmt cb "%d/%m/%y,%H:%M" -set boxwidth -set style fill empty border -set style rectangle back fc lt -3 fillstyle solid 1.00 border lt -1 -set style circle radius graph 0.02, first 0, 0 -set dummy x,y -set format x "% g" -set format y "% g" -set format x2 "% g" -set format y2 "% g" -set format z "% g" -set format cb "% g" -set angles radians -unset grid -set key title "" -set key outside left top horizontal Right noreverse enhanced autotitles columnhead nobox -set key noinvert samplen 4 spacing 1 width 0 height 0 -set key maxcolumns 2 maxrows 0 -unset label -unset arrow -set style increment default -unset style line -set style line 1 linetype 1 linewidth 2.000 pointtype 1 pointsize default pointinterval 0 -unset style arrow -set style histogram clustered gap 2 title offset character 0, 0, 0 -unset logscale -set offsets graph 0.05, 0.15, 0, 0 -set pointsize 1.5 -set pointintervalbox 1 -set encoding default -unset polar -unset parametric -unset decimalsign -set view 60, 30, 1, 1 -set samples 100, 100 -set isosamples 10, 10 -set surface -unset contour -set clabel '%8.3g' -set mapping cartesian -set datafile separator whitespace -unset hidden3d -set cntrparam order 4 -set cntrparam linear -set cntrparam levels auto 5 -set cntrparam points 5 -set size ratio 0 1,1 -set origin 0,0 -set style data points -set style function lines -set xzeroaxis linetype -2 linewidth 1.000 -set yzeroaxis linetype -2 linewidth 1.000 -set zzeroaxis linetype -2 linewidth 1.000 -set x2zeroaxis linetype -2 linewidth 1.000 -set y2zeroaxis linetype -2 linewidth 1.000 -set ticslevel 0.5 -set mxtics default -set mytics default -set mztics default -set mx2tics default -set my2tics default -set mcbtics default -set xtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set xtics norangelimit -set xtics () -set ytics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set ytics autofreq norangelimit -set ztics border in scale 1,0.5 nomirror norotate offset character 0, 0, 0 -set ztics autofreq norangelimit -set nox2tics -set noy2tics -set cbtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set cbtics autofreq norangelimit -set title "" -set title offset character 0, 0, 0 font "" norotate -set timestamp bottom -set timestamp "" -set timestamp offset character 0, 0, 0 font "" norotate -set rrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] ) -set autoscale rfixmin -set autoscale rfixmax -set trange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] ) -set autoscale tfixmin -set autoscale tfixmax -set urange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale ufixmin -set autoscale ufixmax -set vrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale vfixmin -set autoscale vfixmax -set xlabel "" -set xlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate -set x2label "" -set x2label offset character 0, 0, 0 font "" textcolor lt -1 norotate -set xrange [ * : * ] noreverse nowriteback # (currently [-0.150000:3.15000] ) -set autoscale xfixmin -set autoscale xfixmax -set x2range [ * : * ] noreverse nowriteback # (currently [0.00000:3.00000] ) -set autoscale x2fixmin -set autoscale x2fixmax -set ylabel "" -set ylabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set y2label "" -set y2label offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set yrange [ 0.00000 : 1.90000e+06 ] noreverse nowriteback # (currently [:] ) -set autoscale yfixmin -set autoscale yfixmax -set y2range [ * : * ] noreverse nowriteback # (currently [0.00000:1.90000e+06] ) -set autoscale y2fixmin -set autoscale y2fixmax -set zlabel "" -set zlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate -set zrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale zfixmin -set autoscale zfixmax -set cblabel "" -set cblabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set cbrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] ) -set autoscale cbfixmin -set autoscale cbfixmax -set zero 1e-08 -set lmargin -1 -set bmargin -1 -set rmargin -1 -set tmargin -1 -set pm3d explicit at s -set pm3d scansautomatic -set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean -set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB -set palette rgbformulae 7, 5, 15 -set colorbox default -set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault -set loadpath -set fontpath -set fit noerrorvariables -GNUTERM = "aqua" -plot 'bench_results.txt' using 2:xticlabel(1) w lp lw 2, '' using 3:xticlabel(1) w lp lw 2, '' using 4:xticlabel(1) w lp lw 2, '' using 5:xticlabel(1) w lp lw 2, '' using 6:xticlabel(1) w lp lw 2, '' using 7:xticlabel(1) w lp lw 2, '' using 8:xticlabel(1) w lp lw 2, '' using 9:xticlabel(1) w lp lw 2 -# EOF diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/bench.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/bench.sh deleted file mode 100755 index d870a0cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/bench.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -# for a given node version run: -# for i in {0..9}; do node benchmark.js >> bench_0.6.2.log; done; - -PATTERNS=('nodeuuid.v1()' "nodeuuid.v1('binary'," 'nodeuuid.v4()' "nodeuuid.v4('binary'," "uuid()" "uuid('binary')" 'uuidjs.create(1)' 'uuidjs.create(4)' '140byte') -FILES=(node_uuid_v1_string node_uuid_v1_buf node_uuid_v4_string node_uuid_v4_buf libuuid_v4_string libuuid_v4_binary uuidjs_v1_string uuidjs_v4_string 140byte_es) -INDICES=(2 3 2 3 2 2 2 2 2) -VERSIONS=$( ls bench_*.log | sed -e 's/^bench_\([0-9\.]*\)\.log/\1/' | tr "\\n" " " ) -TMPJOIN="tmp_join" -OUTPUT="bench_results.txt" - -for I in ${!FILES[*]}; do - F=${FILES[$I]} - P=${PATTERNS[$I]} - INDEX=${INDICES[$I]} - echo "version $F" > $F - for V in $VERSIONS; do - (VAL=$( grep "$P" bench_$V.log | LC_ALL=en_US awk '{ sum += $'$INDEX' } END { print sum/NR }' ); echo $V $VAL) >> $F - done - if [ $I == 0 ]; then - cat $F > $TMPJOIN - else - join $TMPJOIN $F > $OUTPUT - cp $OUTPUT $TMPJOIN - fi - rm $F -done - -rm $TMPJOIN - -gnuplot bench.gnu -convert -density 200 -resize 800x560 -flatten bench.eps bench.png -rm bench.eps diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c deleted file mode 100644 index dbfc75f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c +++ /dev/null @@ -1,34 +0,0 @@ -/* -Test performance of native C UUID generation - -To Compile: cc -luuid benchmark-native.c -o benchmark-native -*/ - -#include -#include -#include -#include - -int main() { - uuid_t myid; - char buf[36+1]; - int i; - struct timeval t; - double start, finish; - - gettimeofday(&t, NULL); - start = t.tv_sec + t.tv_usec/1e6; - - int n = 2e5; - for (i = 0; i < n; i++) { - uuid_generate(myid); - uuid_unparse(myid, buf); - } - - gettimeofday(&t, NULL); - finish = t.tv_sec + t.tv_usec/1e6; - double dur = finish - start; - - printf("%d uuids/sec", (int)(n/dur)); - return 0; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js deleted file mode 100644 index 40e6efbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js +++ /dev/null @@ -1,84 +0,0 @@ -try { - var nodeuuid = require('../uuid'); -} catch (e) { - console.error('node-uuid require failed - skipping tests'); -} - -try { - var uuid = require('uuid'); -} catch (e) { - console.error('uuid require failed - skipping tests'); -} - -try { - var uuidjs = require('uuid-js'); -} catch (e) { - console.error('uuid-js require failed - skipping tests'); -} - -var N = 5e5; - -function rate(msg, t) { - console.log(msg + ': ' + - (N / (Date.now() - t) * 1e3 | 0) + - ' uuids/second'); -} - -console.log('# v4'); - -// node-uuid - string form -if (nodeuuid) { - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4(); - rate('nodeuuid.v4() - using node.js crypto RNG', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4({rng: nodeuuid.mathRNG}); - rate('nodeuuid.v4() - using Math.random() RNG', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary'); - rate('nodeuuid.v4(\'binary\')', t); - - var buffer = new nodeuuid.BufferClass(16); - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary', buffer); - rate('nodeuuid.v4(\'binary\', buffer)', t); -} - -// libuuid - string form -if (uuid) { - for (var i = 0, t = Date.now(); i < N; i++) uuid(); - rate('uuid()', t); - - for (var i = 0, t = Date.now(); i < N; i++) uuid('binary'); - rate('uuid(\'binary\')', t); -} - -// uuid-js - string form -if (uuidjs) { - for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(4); - rate('uuidjs.create(4)', t); -} - -// 140byte.es -for (var i = 0, t = Date.now(); i < N; i++) 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(s,r){r=Math.random()*16|0;return (s=='x'?r:r&0x3|0x8).toString(16)}); -rate('140byte.es_v4', t); - -console.log(''); -console.log('# v1'); - -// node-uuid - v1 string form -if (nodeuuid) { - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1(); - rate('nodeuuid.v1()', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary'); - rate('nodeuuid.v1(\'binary\')', t); - - var buffer = new nodeuuid.BufferClass(16); - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary', buffer); - rate('nodeuuid.v1(\'binary\', buffer)', t); -} - -// uuid-js - v1 string form -if (uuidjs) { - for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(1); - rate('uuidjs.create(1)', t); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/bin/uuid b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/bin/uuid deleted file mode 100755 index f732e991..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/bin/uuid +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env node - -var path = require('path'); -var uuid = require(path.join(__dirname, '..')); - -var arg = process.argv[2]; - -if ('--help' === arg) { - console.log('\n USAGE: uuid [version] [options]\n\n'); - console.log(' options:\n'); - console.log(' --help Display this message and exit\n'); - process.exit(0); -} - -if (null == arg) { - console.log(uuid()); - process.exit(0); -} - -if ('v1' !== arg && 'v4' !== arg) { - console.error('Version must be RFC4122 version 1 or version 4, denoted as "v1" or "v4"'); - process.exit(1); -} - -console.log(uuid[arg]()); -process.exit(0); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/bower.json deleted file mode 100644 index c0925e19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/bower.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "node-uuid", - "version": "1.4.7", - "homepage": "https://github.com/broofa/node-uuid", - "authors": [ - "Robert Kieffer " - ], - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "main": "uuid.js", - "keywords": [ - "uuid", - "gid", - "rfc4122" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/component.json deleted file mode 100644 index 3ff46336..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/component.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "node-uuid", - "repo": "broofa/node-uuid", - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "version": "1.4.7", - "author": "Robert Kieffer ", - "contributors": [ - { - "name": "Christoph Tavan ", - "github": "https://github.com/ctavan" - } - ], - "keywords": [ - "uuid", - "guid", - "rfc4122" - ], - "dependencies": {}, - "development": {}, - "main": "uuid.js", - "scripts": [ - "uuid.js" - ], - "license": "MIT" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/package.json deleted file mode 100644 index 74f03df3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "author": { - "name": "Robert Kieffer", - "email": "robert@broofa.com" - }, - "bin": { - "uuid": "./bin/uuid" - }, - "bugs": { - "url": "https://github.com/broofa/node-uuid/issues" - }, - "contributors": [ - { - "name": "AJ ONeal", - "email": "coolaj86@gmail.com" - }, - { - "name": "Christoph Tavan", - "email": "dev@tavan.de" - } - ], - "dependencies": {}, - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "devDependencies": { - "nyc": "^2.2.0" - }, - "directories": {}, - "homepage": "https://github.com/broofa/node-uuid", - "installable": true, - "keywords": [ - "guid", - "rfc4122", - "uuid" - ], - "lib": ".", - "licenses": [ - { - "type": "MIT", - "url": "https://raw.github.com/broofa/node-uuid/master/LICENSE.md" - } - ], - "main": "./uuid.js", - "maintainers": [ - { - "name": "broofa", - "email": "robert@broofa.com" - }, - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - } - ], - "name": "node-uuid", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/broofa/node-uuid.git" - }, - "scripts": { - "coverage": "nyc npm test && nyc report", - "test": "node test/test.js" - }, - "url": "http://github.com/broofa/node-uuid", - "version": "1.4.7", - "gitHead": "309512573ec1c60143c257157479a20f7f1f51cd", - "_id": "node-uuid@1.4.7", - "_shasum": "6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f", - "_from": "node-uuid@>=1.4.0 <1.5.0", - "_npmVersion": "3.3.6", - "_nodeVersion": "5.0.0", - "_npmUser": { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - "dist": { - "shasum": "6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f", - "tarball": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - }, - "_resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/test/compare_v1.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/test/compare_v1.js deleted file mode 100644 index 05af8221..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/test/compare_v1.js +++ /dev/null @@ -1,63 +0,0 @@ -var assert = require('assert'), - nodeuuid = require('../uuid'), - uuidjs = require('uuid-js'), - libuuid = require('uuid').generate, - util = require('util'), - exec = require('child_process').exec, - os = require('os'); - -// On Mac Os X / macports there's only the ossp-uuid package that provides uuid -// On Linux there's uuid-runtime which provides uuidgen -var uuidCmd = os.type() === 'Darwin' ? 'uuid -1' : 'uuidgen -t'; - -function compare(ids) { - console.log(ids); - for (var i = 0; i < ids.length; i++) { - var id = ids[i].split('-'); - id = [id[2], id[1], id[0]].join(''); - ids[i] = id; - } - var sorted = ([].concat(ids)).sort(); - - if (sorted.toString() !== ids.toString()) { - console.log('Warning: sorted !== ids'); - } else { - console.log('everything in order!'); - } -} - -// Test time order of v1 uuids -var ids = []; -while (ids.length < 10e3) ids.push(nodeuuid.v1()); - -var max = 10; -console.log('node-uuid:'); -ids = []; -for (var i = 0; i < max; i++) ids.push(nodeuuid.v1()); -compare(ids); - -console.log(''); -console.log('uuidjs:'); -ids = []; -for (var i = 0; i < max; i++) ids.push(uuidjs.create(1).toString()); -compare(ids); - -console.log(''); -console.log('libuuid:'); -ids = []; -var count = 0; -var last = function() { - compare(ids); -} -var cb = function(err, stdout, stderr) { - ids.push(stdout.substring(0, stdout.length-1)); - count++; - if (count < max) { - return next(); - } - last(); -}; -var next = function() { - exec(uuidCmd, cb); -}; -next(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/test/test.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/test/test.html deleted file mode 100644 index d80326ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/test/test.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/test/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/test/test.js deleted file mode 100644 index 5f1113d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/test/test.js +++ /dev/null @@ -1,231 +0,0 @@ -if (!this.uuid) { - // node.js - uuid = require('../uuid'); - if (!/_rb/.test(uuid._rng.toString())) { - throw new Error("should use crypto for node.js"); - } -} - -// -// x-platform log/assert shims -// - -function _log(msg, type) { - type = type || 'log'; - - if (typeof(document) != 'undefined') { - document.write('
      ' + msg.replace(/\n/g, '
      ') + '
      '); - } - if (typeof(console) != 'undefined') { - var color = { - log: '\033[39m', - warn: '\033[33m', - error: '\033[31m' - }; - console[type](color[type] + msg + color.log); - } -} - -function log(msg) {_log(msg, 'log');} -function warn(msg) {_log(msg, 'warn');} -function error(msg) {_log(msg, 'error');} - -function assert(res, msg) { - if (!res) { - error('FAIL: ' + msg); - } else { - log('Pass: ' + msg); - } -} - -// -// Unit tests -// - -// Verify ordering of v1 ids created with explicit times -var TIME = 1321644961388; // 2011-11-18 11:36:01.388-08:00 - -function compare(name, ids) { - ids = ids.map(function(id) { - return id.split('-').reverse().join('-'); - }).sort(); - var sorted = ([].concat(ids)).sort(); - - assert(sorted.toString() == ids.toString(), name + ' have expected order'); -} - -// Verify ordering of v1 ids created using default behavior -compare('uuids with current time', [ - uuid.v1(), - uuid.v1(), - uuid.v1(), - uuid.v1(), - uuid.v1() -]); - -// Verify ordering of v1 ids created with explicit times -compare('uuids with time option', [ - uuid.v1({msecs: TIME - 10*3600*1000}), - uuid.v1({msecs: TIME - 1}), - uuid.v1({msecs: TIME}), - uuid.v1({msecs: TIME + 1}), - uuid.v1({msecs: TIME + 28*24*3600*1000}) -]); - -assert( - uuid.v1({msecs: TIME}) != uuid.v1({msecs: TIME}), - 'IDs created at same msec are different' -); - -// Verify throw if too many ids created -var thrown = false; -try { - uuid.v1({msecs: TIME, nsecs: 10000}); -} catch (e) { - thrown = true; -} -assert(thrown, 'Exception thrown when > 10K ids created in 1 ms'); - -// Verify clock regression bumps clockseq -var uidt = uuid.v1({msecs: TIME}); -var uidtb = uuid.v1({msecs: TIME - 1}); -assert( - parseInt(uidtb.split('-')[3], 16) - parseInt(uidt.split('-')[3], 16) === 1, - 'Clock regression by msec increments the clockseq' -); - -// Verify clock regression bumps clockseq -var uidtn = uuid.v1({msecs: TIME, nsecs: 10}); -var uidtnb = uuid.v1({msecs: TIME, nsecs: 9}); -assert( - parseInt(uidtnb.split('-')[3], 16) - parseInt(uidtn.split('-')[3], 16) === 1, - 'Clock regression by nsec increments the clockseq' -); - -// Verify explicit options produce expected id -var id = uuid.v1({ - msecs: 1321651533573, - nsecs: 5432, - clockseq: 0x385c, - node: [ 0x61, 0xcd, 0x3c, 0xbb, 0x32, 0x10 ] -}); -assert(id == 'd9428888-122b-11e1-b85c-61cd3cbb3210', 'Explicit options produce expected id'); - -// Verify adjacent ids across a msec boundary are 1 time unit apart -var u0 = uuid.v1({msecs: TIME, nsecs: 9999}); -var u1 = uuid.v1({msecs: TIME + 1, nsecs: 0}); - -var before = u0.split('-')[0], after = u1.split('-')[0]; -var dt = parseInt(after, 16) - parseInt(before, 16); -assert(dt === 1, 'Ids spanning 1ms boundary are 100ns apart'); - -// -// Test parse/unparse -// - -id = '00112233445566778899aabbccddeeff'; -assert(uuid.unparse(uuid.parse(id.substr(0,10))) == - '00112233-4400-0000-0000-000000000000', 'Short parse'); -assert(uuid.unparse(uuid.parse('(this is the uuid -> ' + id + id)) == - '00112233-4455-6677-8899-aabbccddeeff', 'Dirty parse'); - -// -// Perf tests -// - -var generators = { - v1: uuid.v1, - v4: uuid.v4 -}; - -var UUID_FORMAT = { - v1: /[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i, - v4: /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i -}; - -var N = 1e4; - -// Get %'age an actual value differs from the ideal value -function divergence(actual, ideal) { - return Math.round(100*100*(actual - ideal)/ideal)/100; -} - -function rate(msg, t) { - log(msg + ': ' + (N / (Date.now() - t) * 1e3 | 0) + ' uuids\/second'); -} - -for (var version in generators) { - var counts = {}, max = 0; - var generator = generators[version]; - var format = UUID_FORMAT[version]; - - log('\nSanity check ' + N + ' ' + version + ' uuids'); - for (var i = 0, ok = 0; i < N; i++) { - id = generator(); - if (!format.test(id)) { - throw Error(id + ' is not a valid UUID string'); - } - - if (id != uuid.unparse(uuid.parse(id))) { - assert(fail, id + ' is not a valid id'); - } - - // Count digits for our randomness check - if (version == 'v4') { - var digits = id.replace(/-/g, '').split(''); - for (var j = digits.length-1; j >= 0; j--) { - var c = digits[j]; - max = Math.max(max, counts[c] = (counts[c] || 0) + 1); - } - } - } - - // Check randomness for v4 UUIDs - if (version == 'v4') { - // Limit that we get worried about randomness. (Purely empirical choice, this!) - var limit = 2*100*Math.sqrt(1/N); - - log('\nChecking v4 randomness. Distribution of Hex Digits (% deviation from ideal)'); - - for (var i = 0; i < 16; i++) { - var c = i.toString(16); - var bar = '', n = counts[c], p = Math.round(n/max*100|0); - - // 1-3,5-8, and D-F: 1:16 odds over 30 digits - var ideal = N*30/16; - if (i == 4) { - // 4: 1:1 odds on 1 digit, plus 1:16 odds on 30 digits - ideal = N*(1 + 30/16); - } else if (i >= 8 && i <= 11) { - // 8-B: 1:4 odds on 1 digit, plus 1:16 odds on 30 digits - ideal = N*(1/4 + 30/16); - } else { - // Otherwise: 1:16 odds on 30 digits - ideal = N*30/16; - } - var d = divergence(n, ideal); - - // Draw bar using UTF squares (just for grins) - var s = n/max*50 | 0; - while (s--) bar += '='; - - assert(Math.abs(d) < limit, c + ' |' + bar + '| ' + counts[c] + ' (' + d + '% < ' + limit + '%)'); - } - } -} - -// Perf tests -for (var version in generators) { - log('\nPerformance testing ' + version + ' UUIDs'); - var generator = generators[version]; - var buf = new uuid.BufferClass(16); - - for (var i = 0, t = Date.now(); i < N; i++) generator(); - rate('uuid.' + version + '()', t); - - for (var i = 0, t = Date.now(); i < N; i++) generator('binary'); - rate('uuid.' + version + '(\'binary\')', t); - - for (var i = 0, t = Date.now(); i < N; i++) generator('binary', buf); - rate('uuid.' + version + '(\'binary\', buffer)', t); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/uuid.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/uuid.js deleted file mode 100644 index 89c5b8fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/node-uuid/uuid.js +++ /dev/null @@ -1,272 +0,0 @@ -// uuid.js -// -// Copyright (c) 2010-2012 Robert Kieffer -// MIT License - http://opensource.org/licenses/mit-license.php - -/*global window, require, define */ -(function(_window) { - 'use strict'; - - // Unique ID creation requires a high quality random # generator. We feature - // detect to determine the best RNG source, normalizing to a function that - // returns 128-bits of randomness, since that's what's usually required - var _rng, _mathRNG, _nodeRNG, _whatwgRNG, _previousRoot; - - function setupBrowser() { - // Allow for MSIE11 msCrypto - var _crypto = _window.crypto || _window.msCrypto; - - if (!_rng && _crypto && _crypto.getRandomValues) { - // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto - // - // Moderately fast, high quality - try { - var _rnds8 = new Uint8Array(16); - _whatwgRNG = _rng = function whatwgRNG() { - _crypto.getRandomValues(_rnds8); - return _rnds8; - }; - _rng(); - } catch(e) {} - } - - if (!_rng) { - // Math.random()-based (RNG) - // - // If all else fails, use Math.random(). It's fast, but is of unspecified - // quality. - var _rnds = new Array(16); - _mathRNG = _rng = function() { - for (var i = 0, r; i < 16; i++) { - if ((i & 0x03) === 0) { r = Math.random() * 0x100000000; } - _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - - return _rnds; - }; - if ('undefined' !== typeof console && console.warn) { - console.warn("[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()"); - } - } - } - - function setupNode() { - // Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html - // - // Moderately fast, high quality - if ('function' === typeof require) { - try { - var _rb = require('crypto').randomBytes; - _nodeRNG = _rng = _rb && function() {return _rb(16);}; - _rng(); - } catch(e) {} - } - } - - if (_window) { - setupBrowser(); - } else { - setupNode(); - } - - // Buffer class to use - var BufferClass = ('function' === typeof Buffer) ? Buffer : Array; - - // Maps for number <-> hex string conversion - var _byteToHex = []; - var _hexToByte = {}; - for (var i = 0; i < 256; i++) { - _byteToHex[i] = (i + 0x100).toString(16).substr(1); - _hexToByte[_byteToHex[i]] = i; - } - - // **`parse()` - Parse a UUID into it's component bytes** - function parse(s, buf, offset) { - var i = (buf && offset) || 0, ii = 0; - - buf = buf || []; - s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) { - if (ii < 16) { // Don't overflow! - buf[i + ii++] = _hexToByte[oct]; - } - }); - - // Zero out remaining bytes if string was short - while (ii < 16) { - buf[i + ii++] = 0; - } - - return buf; - } - - // **`unparse()` - Convert UUID byte array (ala parse()) into a string** - function unparse(buf, offset) { - var i = offset || 0, bth = _byteToHex; - return bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]]; - } - - // **`v1()` - Generate time-based UUID** - // - // Inspired by https://github.com/LiosK/UUID.js - // and http://docs.python.org/library/uuid.html - - // random #'s we need to init node and clockseq - var _seedBytes = _rng(); - - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - var _nodeId = [ - _seedBytes[0] | 0x01, - _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5] - ]; - - // Per 4.2.2, randomize (14 bit) clockseq - var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff; - - // Previous uuid creation time - var _lastMSecs = 0, _lastNSecs = 0; - - // See https://github.com/broofa/node-uuid for API details - function v1(options, buf, offset) { - var i = buf && offset || 0; - var b = buf || []; - - options = options || {}; - - var clockseq = (options.clockseq != null) ? options.clockseq : _clockseq; - - // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - var msecs = (options.msecs != null) ? options.msecs : new Date().getTime(); - - // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - var nsecs = (options.nsecs != null) ? options.nsecs : _lastNSecs + 1; - - // Time since last uuid creation (in msecs) - var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; - - // Per 4.2.1.2, Bump clockseq on clock regression - if (dt < 0 && options.clockseq == null) { - clockseq = clockseq + 1 & 0x3fff; - } - - // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) { - nsecs = 0; - } - - // Per 4.2.1.2 Throw error if too many uuids are requested - if (nsecs >= 10000) { - throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; - - // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - msecs += 12219292800000; - - // `time_low` - var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; - - // `time_mid` - var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; - - // `time_high_and_version` - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - b[i++] = tmh >>> 16 & 0xff; - - // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - b[i++] = clockseq >>> 8 | 0x80; - - // `clock_seq_low` - b[i++] = clockseq & 0xff; - - // `node` - var node = options.node || _nodeId; - for (var n = 0; n < 6; n++) { - b[i + n] = node[n]; - } - - return buf ? buf : unparse(b); - } - - // **`v4()` - Generate random UUID** - - // See https://github.com/broofa/node-uuid for API details - function v4(options, buf, offset) { - // Deprecated - 'format' argument, as supported in v1.2 - var i = buf && offset || 0; - - if (typeof(options) === 'string') { - buf = (options === 'binary') ? new BufferClass(16) : null; - options = null; - } - options = options || {}; - - var rnds = options.random || (options.rng || _rng)(); - - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = (rnds[6] & 0x0f) | 0x40; - rnds[8] = (rnds[8] & 0x3f) | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ii++) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || unparse(rnds); - } - - // Export public API - var uuid = v4; - uuid.v1 = v1; - uuid.v4 = v4; - uuid.parse = parse; - uuid.unparse = unparse; - uuid.BufferClass = BufferClass; - uuid._rng = _rng; - uuid._mathRNG = _mathRNG; - uuid._nodeRNG = _nodeRNG; - uuid._whatwgRNG = _whatwgRNG; - - if (('undefined' !== typeof module) && module.exports) { - // Publish as node.js module - module.exports = uuid; - } else if (typeof define === 'function' && define.amd) { - // Publish as AMD module - define(function() {return uuid;}); - - - } else { - // Publish as global (in browsers) - _previousRoot = _window.uuid; - - // **`noConflict()` - (browser only) to reset global 'uuid' var** - uuid.noConflict = function() { - _window.uuid = _previousRoot; - return uuid; - }; - - _window.uuid = uuid; - } -})('undefined' !== typeof window ? window : null); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/oauth-sign/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/oauth-sign/index.js deleted file mode 100644 index e35bfa67..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/oauth-sign/index.js +++ /dev/null @@ -1,43 +0,0 @@ -var crypto = require('crypto') - , qs = require('querystring') - ; - -function sha1 (key, body) { - return crypto.createHmac('sha1', key).update(body).digest('base64') -} - -function rfc3986 (str) { - return encodeURIComponent(str) - .replace(/!/g,'%21') - .replace(/\*/g,'%2A') - .replace(/\(/g,'%28') - .replace(/\)/g,'%29') - .replace(/'/g,'%27') - ; -} - -function hmacsign (httpMethod, base_uri, params, consumer_secret, token_secret) { - // adapted from https://dev.twitter.com/docs/auth/oauth and - // https://dev.twitter.com/docs/auth/creating-signature - - var querystring = Object.keys(params).sort().map(function(key){ - // big WTF here with the escape + encoding but it's what twitter wants - return escape(rfc3986(key)) + "%3D" + escape(rfc3986(params[key])) - }).join('%26') - - var base = [ - httpMethod ? httpMethod.toUpperCase() : 'GET', - rfc3986(base_uri), - querystring - ].join('&') - - var key = [ - consumer_secret, - token_secret || '' - ].map(rfc3986).join('&') - - return sha1(key, base) -} - -exports.hmacsign = hmacsign -exports.rfc3986 = rfc3986 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/oauth-sign/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/oauth-sign/package.json deleted file mode 100644 index 92994ef8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/oauth-sign/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com", - "url": "http://www.futurealoof.com" - }, - "name": "oauth-sign", - "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.", - "version": "0.2.0", - "repository": { - "url": "git+https://github.com/mikeal/oauth-sign.git" - }, - "main": "index.js", - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" - }, - "scripts": { - "test": "node test.js" - }, - "_npmUser": { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - "_id": "oauth-sign@0.2.0", - "_engineSupported": true, - "_npmVersion": "1.1.24", - "_nodeVersion": "v0.8.1", - "_defaultsLoaded": true, - "dist": { - "shasum": "a0e6a1715daed062f322b622b7fe5afd1035b6e2", - "tarball": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz" - }, - "maintainers": [ - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - } - ], - "directories": {}, - "_shasum": "a0e6a1715daed062f322b622b7fe5afd1035b6e2", - "_resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz", - "_from": "oauth-sign@>=0.2.0 <0.3.0", - "bugs": { - "url": "https://github.com/mikeal/oauth-sign/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/mikeal/oauth-sign#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/oauth-sign/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/oauth-sign/test.js deleted file mode 100644 index 46955ff6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/oauth-sign/test.js +++ /dev/null @@ -1,49 +0,0 @@ -var hmacsign = require('./index').hmacsign - , assert = require('assert') - , qs = require('querystring') - ; - -// Tests from Twitter documentation https://dev.twitter.com/docs/auth/oauth - -var reqsign = hmacsign('POST', 'https://api.twitter.com/oauth/request_token', - { oauth_callback: 'http://localhost:3005/the_dance/process_callback?service_provider_id=11' - , oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' - , oauth_nonce: 'QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk' - , oauth_signature_method: 'HMAC-SHA1' - , oauth_timestamp: '1272323042' - , oauth_version: '1.0' - }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98") - -console.log(reqsign) -console.log('8wUi7m5HFQy76nowoCThusfgB+Q=') -assert.equal(reqsign, '8wUi7m5HFQy76nowoCThusfgB+Q=') - -var accsign = hmacsign('POST', 'https://api.twitter.com/oauth/access_token', - { oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' - , oauth_nonce: '9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8' - , oauth_signature_method: 'HMAC-SHA1' - , oauth_token: '8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc' - , oauth_timestamp: '1272323047' - , oauth_verifier: 'pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY' - , oauth_version: '1.0' - }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA") - -console.log(accsign) -console.log('PUw/dHA4fnlJYM6RhXk5IU/0fCc=') -assert.equal(accsign, 'PUw/dHA4fnlJYM6RhXk5IU/0fCc=') - -var upsign = hmacsign('POST', 'http://api.twitter.com/1/statuses/update.json', - { oauth_consumer_key: "GDdmIQH6jhtmLUypg82g" - , oauth_nonce: "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" - , oauth_signature_method: "HMAC-SHA1" - , oauth_token: "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw" - , oauth_timestamp: "1272325550" - , oauth_version: "1.0" - , status: 'setting up my twitter 私のさえずりを設定する' - }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "J6zix3FfA9LofH0awS24M3HcBYXO5nI1iYe8EfBA") - -console.log(upsign) -console.log('yOahq5m0YjDDjfjxHaXEsW9D+X0=') -assert.equal(upsign, 'yOahq5m0YjDDjfjxHaXEsW9D+X0=') - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/.gitmodules b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/.gitmodules deleted file mode 100644 index 49e31dac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/.gitmodules +++ /dev/null @@ -1,6 +0,0 @@ -[submodule "support/expresso"] - path = support/expresso - url = git://github.com/visionmedia/expresso.git -[submodule "support/should"] - path = support/should - url = git://github.com/visionmedia/should.js.git diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/.travis.yml deleted file mode 100644 index 2c0a8f63..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.4 \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/History.md deleted file mode 100644 index c9a0e3c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/History.md +++ /dev/null @@ -1,109 +0,0 @@ - -0.5.6 / 2013-04-09 -================== - - * fix empty key productions in parser - -0.5.5 / 2013-03-20 -================== - - * output key= for null or undefined values. Closes #52 - -0.5.4 / 2013-03-15 -================== - - * fix ignoring of null / undefined. Closes #44 - -0.5.3 2012-12-09 -================== - - * add info to component.json - * remove regular client-side ./querystring.js, fix component.json support - -0.5.2 / 2012-11-14 -================== - - * fix uri encoding of non-plain object string values - -0.5.1 / 2012-09-18 -================== - - * fix encoded `=`. Closes #43 - -0.5.0 / 2012-05-04 -================== - - * Added component support - -0.4.2 / 2012-02-08 -================== - - * Fixed: ensure objects are created when appropriate not arrays [aheckmann] - -0.4.1 / 2012-01-26 -================== - - * Fixed stringify()ing numbers. Closes #23 - -0.4.0 / 2011-11-21 -================== - - * Allow parsing of an existing object (for `bodyParser()`) [jackyz] - * Replaced expresso with mocha - -0.3.2 / 2011-11-08 -================== - - * Fixed global variable leak - -0.3.1 / 2011-08-17 -================== - - * Added `try/catch` around malformed uri components - * Add test coverage for Array native method bleed-though - -0.3.0 / 2011-07-19 -================== - - * Allow `array[index]` and `object[property]` syntaxes [Aria Stewart] - -0.2.0 / 2011-06-29 -================== - - * Added `qs.stringify()` [Cory Forsyth] - -0.1.0 / 2011-04-13 -================== - - * Added jQuery-ish array support - -0.0.7 / 2011-03-13 -================== - - * Fixed; handle empty string and `== null` in `qs.parse()` [dmit] - allows for convenient `qs.parse(url.parse(str).query)` - -0.0.6 / 2011-02-14 -================== - - * Fixed; support for implicit arrays - -0.0.4 / 2011-02-09 -================== - - * Fixed `+` as a space - -0.0.3 / 2011-02-08 -================== - - * Fixed case when right-hand value contains "]" - -0.0.2 / 2011-02-07 -================== - - * Fixed "=" presence in key - -0.0.1 / 2011-02-07 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/Makefile deleted file mode 100644 index 84a78ec1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -test: - @./node_modules/.bin/mocha \ - --ui bdd - -.PHONY: test \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/Readme.md deleted file mode 100644 index 27e54a4a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/Readme.md +++ /dev/null @@ -1,58 +0,0 @@ -# node-querystring - - query string parser for node and the browser supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others. - -## Installation - - $ npm install qs - -## Examples - -```js -var qs = require('qs'); - -qs.parse('user[name][first]=Tobi&user[email]=tobi@learnboost.com'); -// => { user: { name: { first: 'Tobi' }, email: 'tobi@learnboost.com' } } - -qs.stringify({ user: { name: 'Tobi', email: 'tobi@learnboost.com' }}) -// => user[name]=Tobi&user[email]=tobi%40learnboost.com -``` - -## Testing - -Install dev dependencies: - - $ npm install -d - -and execute: - - $ make test - -browser: - - $ open test/browser/index.html - -## License - -(The MIT License) - -Copyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca> - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/benchmark.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/benchmark.js deleted file mode 100644 index 97e2c93e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/benchmark.js +++ /dev/null @@ -1,17 +0,0 @@ - -var qs = require('./'); - -var times = 100000 - , start = new Date - , n = times; - -console.log('times: %d', times); - -while (n--) qs.parse('foo=bar'); -console.log('simple: %dms', new Date - start); - -var start = new Date - , n = times; - -while (n--) qs.parse('user[name][first]=tj&user[name][last]=holowaychuk'); -console.log('nested: %dms', new Date - start); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/component.json deleted file mode 100644 index 0a46c2d4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/component.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "querystring", - "repo": "visionmedia/node-querystring", - "description": "query-string parser / stringifier with nesting support", - "version": "0.5.6", - "keywords": ["querystring", "query", "parser"], - "scripts": ["index.js"], - "license": "MIT" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/examples.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/examples.js deleted file mode 100644 index ebe3a97a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/examples.js +++ /dev/null @@ -1,51 +0,0 @@ - -/** - * Module dependencies. - */ - -var qs = require('./'); - -var obj = qs.parse('foo'); -console.log(obj) - -var obj = qs.parse('foo=bar=baz'); -console.log(obj) - -var obj = qs.parse('users[]'); -console.log(obj) - -var obj = qs.parse('name=tj&email=tj@vision-media.ca'); -console.log(obj) - -var obj = qs.parse('users[]=tj&users[]=tobi&users[]=jane'); -console.log(obj) - -var obj = qs.parse('user[name][first]=tj&user[name][last]=holowaychuk'); -console.log(obj) - -var obj = qs.parse('users[][name][first]=tj&users[][name][last]=holowaychuk'); -console.log(obj) - -var obj = qs.parse('a=a&a=b&a=c'); -console.log(obj) - -var obj = qs.parse('user[tj]=tj&user[tj]=TJ'); -console.log(obj) - -var obj = qs.parse('user[names]=tj&user[names]=TJ&user[names]=Tyler'); -console.log(obj) - -var obj = qs.parse('user[name][first]=tj&user[name][first]=TJ'); -console.log(obj) - -var obj = qs.parse('user[0]=tj&user[1]=TJ'); -console.log(obj) - -var obj = qs.parse('user[0]=tj&user[]=TJ'); -console.log(obj) - -var obj = qs.parse('user[0]=tj&user[foo]=TJ'); -console.log(obj) - -var str = qs.stringify({ user: { name: 'Tobi', email: 'tobi@learnboost.com' }}); -console.log(str); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/index.js deleted file mode 100644 index 8b27b238..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/index.js +++ /dev/null @@ -1,268 +0,0 @@ - -/** - * Object#toString() ref for stringify(). - */ - -var toString = Object.prototype.toString; - -/** - * Cache non-integer test regexp. - */ - -var isint = /^[0-9]+$/; - -function promote(parent, key) { - if (parent[key].length == 0) return parent[key] = {}; - var t = {}; - for (var i in parent[key]) t[i] = parent[key][i]; - parent[key] = t; - return t; -} - -function parse(parts, parent, key, val) { - var part = parts.shift(); - // end - if (!part) { - if (Array.isArray(parent[key])) { - parent[key].push(val); - } else if ('object' == typeof parent[key]) { - parent[key] = val; - } else if ('undefined' == typeof parent[key]) { - parent[key] = val; - } else { - parent[key] = [parent[key], val]; - } - // array - } else { - var obj = parent[key] = parent[key] || []; - if (']' == part) { - if (Array.isArray(obj)) { - if ('' != val) obj.push(val); - } else if ('object' == typeof obj) { - obj[Object.keys(obj).length] = val; - } else { - obj = parent[key] = [parent[key], val]; - } - // prop - } else if (~part.indexOf(']')) { - part = part.substr(0, part.length - 1); - if (!isint.test(part) && Array.isArray(obj)) obj = promote(parent, key); - parse(parts, obj, part, val); - // key - } else { - if (!isint.test(part) && Array.isArray(obj)) obj = promote(parent, key); - parse(parts, obj, part, val); - } - } -} - -/** - * Merge parent key/val pair. - */ - -function merge(parent, key, val){ - if (~key.indexOf(']')) { - var parts = key.split('[') - , len = parts.length - , last = len - 1; - parse(parts, parent, 'base', val); - // optimize - } else { - if (!isint.test(key) && Array.isArray(parent.base)) { - var t = {}; - for (var k in parent.base) t[k] = parent.base[k]; - parent.base = t; - } - set(parent.base, key, val); - } - - return parent; -} - -/** - * Parse the given obj. - */ - -function parseObject(obj){ - var ret = { base: {} }; - Object.keys(obj).forEach(function(name){ - merge(ret, name, obj[name]); - }); - return ret.base; -} - -/** - * Parse the given str. - */ - -function parseString(str){ - return String(str) - .split('&') - .reduce(function(ret, pair){ - var eql = pair.indexOf('=') - , brace = lastBraceInKey(pair) - , key = pair.substr(0, brace || eql) - , val = pair.substr(brace || eql, pair.length) - , val = val.substr(val.indexOf('=') + 1, val.length); - - // ?foo - if ('' == key) key = pair, val = ''; - if ('' == key) return ret; - - return merge(ret, decode(key), decode(val)); - }, { base: {} }).base; -} - -/** - * Parse the given query `str` or `obj`, returning an object. - * - * @param {String} str | {Object} obj - * @return {Object} - * @api public - */ - -exports.parse = function(str){ - if (null == str || '' == str) return {}; - return 'object' == typeof str - ? parseObject(str) - : parseString(str); -}; - -/** - * Turn the given `obj` into a query string - * - * @param {Object} obj - * @return {String} - * @api public - */ - -var stringify = exports.stringify = function(obj, prefix) { - if (Array.isArray(obj)) { - return stringifyArray(obj, prefix); - } else if ('[object Object]' == toString.call(obj)) { - return stringifyObject(obj, prefix); - } else if ('string' == typeof obj) { - return stringifyString(obj, prefix); - } else { - return prefix + '=' + encodeURIComponent(String(obj)); - } -}; - -/** - * Stringify the given `str`. - * - * @param {String} str - * @param {String} prefix - * @return {String} - * @api private - */ - -function stringifyString(str, prefix) { - if (!prefix) throw new TypeError('stringify expects an object'); - return prefix + '=' + encodeURIComponent(str); -} - -/** - * Stringify the given `arr`. - * - * @param {Array} arr - * @param {String} prefix - * @return {String} - * @api private - */ - -function stringifyArray(arr, prefix) { - var ret = []; - if (!prefix) throw new TypeError('stringify expects an object'); - for (var i = 0; i < arr.length; i++) { - ret.push(stringify(arr[i], prefix + '[' + i + ']')); - } - return ret.join('&'); -} - -/** - * Stringify the given `obj`. - * - * @param {Object} obj - * @param {String} prefix - * @return {String} - * @api private - */ - -function stringifyObject(obj, prefix) { - var ret = [] - , keys = Object.keys(obj) - , key; - - for (var i = 0, len = keys.length; i < len; ++i) { - key = keys[i]; - if ('' == key) continue; - if (null == obj[key]) { - ret.push(encodeURIComponent(key) + '='); - } else { - ret.push(stringify(obj[key], prefix - ? prefix + '[' + encodeURIComponent(key) + ']' - : encodeURIComponent(key))); - } - } - - return ret.join('&'); -} - -/** - * Set `obj`'s `key` to `val` respecting - * the weird and wonderful syntax of a qs, - * where "foo=bar&foo=baz" becomes an array. - * - * @param {Object} obj - * @param {String} key - * @param {String} val - * @api private - */ - -function set(obj, key, val) { - var v = obj[key]; - if (undefined === v) { - obj[key] = val; - } else if (Array.isArray(v)) { - v.push(val); - } else { - obj[key] = [v, val]; - } -} - -/** - * Locate last brace in `str` within the key. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function lastBraceInKey(str) { - var len = str.length - , brace - , c; - for (var i = 0; i < len; ++i) { - c = str[i]; - if (']' == c) brace = false; - if ('[' == c) brace = true; - if ('=' == c && !brace) return i; - } -} - -/** - * Decode `str`. - * - * @param {String} str - * @return {String} - * @api private - */ - -function decode(str) { - try { - return decodeURIComponent(str.replace(/\+/g, ' ')); - } catch (err) { - return str; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/package.json deleted file mode 100644 index 21b72137..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "qs", - "description": "querystring parser", - "version": "0.5.6", - "keywords": [ - "query string", - "parser", - "component" - ], - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/node-querystring.git" - }, - "devDependencies": { - "mocha": "*", - "expect.js": "*" - }, - "component": { - "scripts": { - "querystring": "querystring.js" - } - }, - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": "http://tjholowaychuk.com" - }, - "main": "index", - "engines": { - "node": "*" - }, - "_id": "qs@0.5.6", - "dist": { - "shasum": "31b1ad058567651c526921506b9a8793911a0384", - "tarball": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz" - }, - "_from": "qs@>=0.5.4 <0.6.0", - "_npmVersion": "1.2.14", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, - "_shasum": "31b1ad058567651c526921506b9a8793911a0384", - "_resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", - "bugs": { - "url": "https://github.com/visionmedia/node-querystring/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/visionmedia/node-querystring#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/test/browser/expect.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/test/browser/expect.js deleted file mode 100644 index 76aa4e84..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/test/browser/expect.js +++ /dev/null @@ -1,1202 +0,0 @@ - -(function (global, module) { - - if ('undefined' == typeof module) { - var module = { exports: {} } - , exports = module.exports - } - - /** - * Exports. - */ - - module.exports = expect; - expect.Assertion = Assertion; - - /** - * Exports version. - */ - - expect.version = '0.1.2'; - - /** - * Possible assertion flags. - */ - - var flags = { - not: ['to', 'be', 'have', 'include', 'only'] - , to: ['be', 'have', 'include', 'only', 'not'] - , only: ['have'] - , have: ['own'] - , be: ['an'] - }; - - function expect (obj) { - return new Assertion(obj); - } - - /** - * Constructor - * - * @api private - */ - - function Assertion (obj, flag, parent) { - this.obj = obj; - this.flags = {}; - - if (undefined != parent) { - this.flags[flag] = true; - - for (var i in parent.flags) { - if (parent.flags.hasOwnProperty(i)) { - this.flags[i] = true; - } - } - } - - var $flags = flag ? flags[flag] : keys(flags) - , self = this - - if ($flags) { - for (var i = 0, l = $flags.length; i < l; i++) { - // avoid recursion - if (this.flags[$flags[i]]) continue; - - var name = $flags[i] - , assertion = new Assertion(this.obj, name, this) - - if ('function' == typeof Assertion.prototype[name]) { - // clone the function, make sure we dont touch the prot reference - var old = this[name]; - this[name] = function () { - return old.apply(self, arguments); - } - - for (var fn in Assertion.prototype) { - if (Assertion.prototype.hasOwnProperty(fn) && fn != name) { - this[name][fn] = bind(assertion[fn], assertion); - } - } - } else { - this[name] = assertion; - } - } - } - }; - - /** - * Performs an assertion - * - * @api private - */ - - Assertion.prototype.assert = function (truth, msg, error) { - var msg = this.flags.not ? error : msg - , ok = this.flags.not ? !truth : truth; - - if (!ok) { - throw new Error(msg); - } - - this.and = new Assertion(this.obj); - }; - - /** - * Check if the value is truthy - * - * @api public - */ - - Assertion.prototype.ok = function () { - this.assert( - !!this.obj - , 'expected ' + i(this.obj) + ' to be truthy' - , 'expected ' + i(this.obj) + ' to be falsy'); - }; - - /** - * Assert that the function throws. - * - * @param {Function|RegExp} callback, or regexp to match error string against - * @api public - */ - - Assertion.prototype.throwError = - Assertion.prototype.throwException = function (fn) { - expect(this.obj).to.be.a('function'); - - var thrown = false - , not = this.flags.not - - try { - this.obj(); - } catch (e) { - if ('function' == typeof fn) { - fn(e); - } else if ('object' == typeof fn) { - var subject = 'string' == typeof e ? e : e.message; - if (not) { - expect(subject).to.not.match(fn); - } else { - expect(subject).to.match(fn); - } - } - thrown = true; - } - - if ('object' == typeof fn && not) { - // in the presence of a matcher, ensure the `not` only applies to - // the matching. - this.flags.not = false; - } - - var name = this.obj.name || 'fn'; - this.assert( - thrown - , 'expected ' + name + ' to throw an exception' - , 'expected ' + name + ' not to throw an exception'); - }; - - /** - * Checks if the array is empty. - * - * @api public - */ - - Assertion.prototype.empty = function () { - var expectation; - - if ('object' == typeof this.obj && null !== this.obj && !isArray(this.obj)) { - if ('number' == typeof this.obj.length) { - expectation = !this.obj.length; - } else { - expectation = !keys(this.obj).length; - } - } else { - if ('string' != typeof this.obj) { - expect(this.obj).to.be.an('object'); - } - - expect(this.obj).to.have.property('length'); - expectation = !this.obj.length; - } - - this.assert( - expectation - , 'expected ' + i(this.obj) + ' to be empty' - , 'expected ' + i(this.obj) + ' to not be empty'); - return this; - }; - - /** - * Checks if the obj exactly equals another. - * - * @api public - */ - - Assertion.prototype.be = - Assertion.prototype.equal = function (obj) { - this.assert( - obj === this.obj - , 'expected ' + i(this.obj) + ' to equal ' + i(obj) - , 'expected ' + i(this.obj) + ' to not equal ' + i(obj)); - return this; - }; - - /** - * Checks if the obj sortof equals another. - * - * @api public - */ - - Assertion.prototype.eql = function (obj) { - this.assert( - expect.eql(obj, this.obj) - , 'expected ' + i(this.obj) + ' to sort of equal ' + i(obj) - , 'expected ' + i(this.obj) + ' to sort of not equal ' + i(obj)); - return this; - }; - - /** - * Assert within start to finish (inclusive). - * - * @param {Number} start - * @param {Number} finish - * @api public - */ - - Assertion.prototype.within = function (start, finish) { - var range = start + '..' + finish; - this.assert( - this.obj >= start && this.obj <= finish - , 'expected ' + i(this.obj) + ' to be within ' + range - , 'expected ' + i(this.obj) + ' to not be within ' + range); - return this; - }; - - /** - * Assert typeof / instance of - * - * @api public - */ - - Assertion.prototype.a = - Assertion.prototype.an = function (type) { - if ('string' == typeof type) { - // proper english in error msg - var n = /^[aeiou]/.test(type) ? 'n' : ''; - - // typeof with support for 'array' - this.assert( - 'array' == type ? isArray(this.obj) : - 'object' == type - ? 'object' == typeof this.obj && null !== this.obj - : type == typeof this.obj - , 'expected ' + i(this.obj) + ' to be a' + n + ' ' + type - , 'expected ' + i(this.obj) + ' not to be a' + n + ' ' + type); - } else { - // instanceof - var name = type.name || 'supplied constructor'; - this.assert( - this.obj instanceof type - , 'expected ' + i(this.obj) + ' to be an instance of ' + name - , 'expected ' + i(this.obj) + ' not to be an instance of ' + name); - } - - return this; - }; - - /** - * Assert numeric value above _n_. - * - * @param {Number} n - * @api public - */ - - Assertion.prototype.greaterThan = - Assertion.prototype.above = function (n) { - this.assert( - this.obj > n - , 'expected ' + i(this.obj) + ' to be above ' + n - , 'expected ' + i(this.obj) + ' to be below ' + n); - return this; - }; - - /** - * Assert numeric value below _n_. - * - * @param {Number} n - * @api public - */ - - Assertion.prototype.lessThan = - Assertion.prototype.below = function (n) { - this.assert( - this.obj < n - , 'expected ' + i(this.obj) + ' to be below ' + n - , 'expected ' + i(this.obj) + ' to be above ' + n); - return this; - }; - - /** - * Assert string value matches _regexp_. - * - * @param {RegExp} regexp - * @api public - */ - - Assertion.prototype.match = function (regexp) { - this.assert( - regexp.exec(this.obj) - , 'expected ' + i(this.obj) + ' to match ' + regexp - , 'expected ' + i(this.obj) + ' not to match ' + regexp); - return this; - }; - - /** - * Assert property "length" exists and has value of _n_. - * - * @param {Number} n - * @api public - */ - - Assertion.prototype.length = function (n) { - expect(this.obj).to.have.property('length'); - var len = this.obj.length; - this.assert( - n == len - , 'expected ' + i(this.obj) + ' to have a length of ' + n + ' but got ' + len - , 'expected ' + i(this.obj) + ' to not have a length of ' + len); - return this; - }; - - /** - * Assert property _name_ exists, with optional _val_. - * - * @param {String} name - * @param {Mixed} val - * @api public - */ - - Assertion.prototype.property = function (name, val) { - if (this.flags.own) { - this.assert( - Object.prototype.hasOwnProperty.call(this.obj, name) - , 'expected ' + i(this.obj) + ' to have own property ' + i(name) - , 'expected ' + i(this.obj) + ' to not have own property ' + i(name)); - return this; - } - - if (this.flags.not && undefined !== val) { - if (undefined === this.obj[name]) { - throw new Error(i(this.obj) + ' has no property ' + i(name)); - } - } else { - var hasProp; - try { - hasProp = name in this.obj - } catch (e) { - hasProp = undefined !== this.obj[name] - } - - this.assert( - hasProp - , 'expected ' + i(this.obj) + ' to have a property ' + i(name) - , 'expected ' + i(this.obj) + ' to not have a property ' + i(name)); - } - - if (undefined !== val) { - this.assert( - val === this.obj[name] - , 'expected ' + i(this.obj) + ' to have a property ' + i(name) - + ' of ' + i(val) + ', but got ' + i(this.obj[name]) - , 'expected ' + i(this.obj) + ' to not have a property ' + i(name) - + ' of ' + i(val)); - } - - this.obj = this.obj[name]; - return this; - }; - - /** - * Assert that the array contains _obj_ or string contains _obj_. - * - * @param {Mixed} obj|string - * @api public - */ - - Assertion.prototype.string = - Assertion.prototype.contain = function (obj) { - if ('string' == typeof this.obj) { - this.assert( - ~this.obj.indexOf(obj) - , 'expected ' + i(this.obj) + ' to contain ' + i(obj) - , 'expected ' + i(this.obj) + ' to not contain ' + i(obj)); - } else { - this.assert( - ~indexOf(this.obj, obj) - , 'expected ' + i(this.obj) + ' to contain ' + i(obj) - , 'expected ' + i(this.obj) + ' to not contain ' + i(obj)); - } - return this; - }; - - /** - * Assert exact keys or inclusion of keys by using - * the `.own` modifier. - * - * @param {Array|String ...} keys - * @api public - */ - - Assertion.prototype.key = - Assertion.prototype.keys = function ($keys) { - var str - , ok = true; - - $keys = isArray($keys) - ? $keys - : Array.prototype.slice.call(arguments); - - if (!$keys.length) throw new Error('keys required'); - - var actual = keys(this.obj) - , len = $keys.length; - - // Inclusion - ok = every($keys, function (key) { - return ~indexOf(actual, key); - }); - - // Strict - if (!this.flags.not && this.flags.only) { - ok = ok && $keys.length == actual.length; - } - - // Key string - if (len > 1) { - $keys = map($keys, function (key) { - return i(key); - }); - var last = $keys.pop(); - str = $keys.join(', ') + ', and ' + last; - } else { - str = i($keys[0]); - } - - // Form - str = (len > 1 ? 'keys ' : 'key ') + str; - - // Have / include - str = (!this.flags.only ? 'include ' : 'only have ') + str; - - // Assertion - this.assert( - ok - , 'expected ' + i(this.obj) + ' to ' + str - , 'expected ' + i(this.obj) + ' to not ' + str); - - return this; - }; - - /** - * Function bind implementation. - */ - - function bind (fn, scope) { - return function () { - return fn.apply(scope, arguments); - } - } - - /** - * Array every compatibility - * - * @see bit.ly/5Fq1N2 - * @api public - */ - - function every (arr, fn, thisObj) { - var scope = thisObj || global; - for (var i = 0, j = arr.length; i < j; ++i) { - if (!fn.call(scope, arr[i], i, arr)) { - return false; - } - } - return true; - }; - - /** - * Array indexOf compatibility. - * - * @see bit.ly/a5Dxa2 - * @api public - */ - - function indexOf (arr, o, i) { - if (Array.prototype.indexOf) { - return Array.prototype.indexOf.call(arr, o, i); - } - - if (arr.length === undefined) { - return -1; - } - - for (var j = arr.length, i = i < 0 ? i + j < 0 ? 0 : i + j : i || 0 - ; i < j && arr[i] !== o; i++); - - return j <= i ? -1 : i; - }; - - /** - * Inspects an object. - * - * @see taken from node.js `util` module (copyright Joyent, MIT license) - * @api private - */ - - function i (obj, showHidden, depth) { - var seen = []; - - function stylize (str) { - return str; - }; - - function format (value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (value && typeof value.inspect === 'function' && - // Filter out the util module, it's inspect function is special - value !== exports && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - return value.inspect(recurseTimes); - } - - // Primitive types cannot have properties - switch (typeof value) { - case 'undefined': - return stylize('undefined', 'undefined'); - - case 'string': - var simple = '\'' + json.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return stylize(simple, 'string'); - - case 'number': - return stylize('' + value, 'number'); - - case 'boolean': - return stylize('' + value, 'boolean'); - } - // For some reason typeof null is "object", so special case here. - if (value === null) { - return stylize('null', 'null'); - } - - // Look up the keys of the object. - var visible_keys = keys(value); - var $keys = showHidden ? Object.getOwnPropertyNames(value) : visible_keys; - - // Functions without properties can be shortcutted. - if (typeof value === 'function' && $keys.length === 0) { - if (isRegExp(value)) { - return stylize('' + value, 'regexp'); - } else { - var name = value.name ? ': ' + value.name : ''; - return stylize('[Function' + name + ']', 'special'); - } - } - - // Dates without properties can be shortcutted - if (isDate(value) && $keys.length === 0) { - return stylize(value.toUTCString(), 'date'); - } - - var base, type, braces; - // Determine the object type - if (isArray(value)) { - type = 'Array'; - braces = ['[', ']']; - } else { - type = 'Object'; - braces = ['{', '}']; - } - - // Make functions say that they are functions - if (typeof value === 'function') { - var n = value.name ? ': ' + value.name : ''; - base = (isRegExp(value)) ? ' ' + value : ' [Function' + n + ']'; - } else { - base = ''; - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + value.toUTCString(); - } - - if ($keys.length === 0) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return stylize('' + value, 'regexp'); - } else { - return stylize('[Object]', 'special'); - } - } - - seen.push(value); - - var output = map($keys, function (key) { - var name, str; - if (value.__lookupGetter__) { - if (value.__lookupGetter__(key)) { - if (value.__lookupSetter__(key)) { - str = stylize('[Getter/Setter]', 'special'); - } else { - str = stylize('[Getter]', 'special'); - } - } else { - if (value.__lookupSetter__(key)) { - str = stylize('[Setter]', 'special'); - } - } - } - if (indexOf(visible_keys, key) < 0) { - name = '[' + key + ']'; - } - if (!str) { - if (indexOf(seen, value[key]) < 0) { - if (recurseTimes === null) { - str = format(value[key]); - } else { - str = format(value[key], recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (isArray(value)) { - str = map(str.split('\n'), function (line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + map(str.split('\n'), function (line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = stylize('[Circular]', 'special'); - } - } - if (typeof name === 'undefined') { - if (type === 'Array' && key.match(/^\d+$/)) { - return str; - } - name = json.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = stylize(name, 'string'); - } - } - - return name + ': ' + str; - }); - - seen.pop(); - - var numLinesEst = 0; - var length = reduce(output, function (prev, cur) { - numLinesEst++; - if (indexOf(cur, '\n') >= 0) numLinesEst++; - return prev + cur.length + 1; - }, 0); - - if (length > 50) { - output = braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - - } else { - output = braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; - } - - return output; - } - return format(obj, (typeof depth === 'undefined' ? 2 : depth)); - }; - - function isArray (ar) { - return Object.prototype.toString.call(ar) == '[object Array]'; - }; - - function isRegExp(re) { - var s = '' + re; - return re instanceof RegExp || // easy case - // duck-type for context-switching evalcx case - typeof(re) === 'function' && - re.constructor.name === 'RegExp' && - re.compile && - re.test && - re.exec && - s.match(/^\/.*\/[gim]{0,3}$/); - }; - - function isDate(d) { - if (d instanceof Date) return true; - return false; - }; - - function keys (obj) { - if (Object.keys) { - return Object.keys(obj); - } - - var keys = []; - - for (var i in obj) { - if (Object.prototype.hasOwnProperty.call(obj, i)) { - keys.push(i); - } - } - - return keys; - } - - function map (arr, mapper, that) { - if (Array.prototype.map) { - return Array.prototype.map.call(arr, mapper, that); - } - - var other= new Array(arr.length); - - for (var i= 0, n = arr.length; i= 2) { - var rv = arguments[1]; - } else { - do { - if (i in this) { - rv = this[i++]; - break; - } - - // if array contains no values, no initial value to return - if (++i >= len) - throw new TypeError(); - } while (true); - } - - for (; i < len; i++) { - if (i in this) - rv = fun.call(null, rv, this[i], i, this); - } - - return rv; - }; - - /** - * Asserts deep equality - * - * @see taken from node.js `assert` module (copyright Joyent, MIT license) - * @api private - */ - - expect.eql = function eql (actual, expected) { - // 7.1. All identical values are equivalent, as determined by ===. - if (actual === expected) { - return true; - } else if ('undefined' != typeof Buffer - && Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) { - if (actual.length != expected.length) return false; - - for (var i = 0; i < actual.length; i++) { - if (actual[i] !== expected[i]) return false; - } - - return true; - - // 7.2. If the expected value is a Date object, the actual value is - // equivalent if it is also a Date object that refers to the same time. - } else if (actual instanceof Date && expected instanceof Date) { - return actual.getTime() === expected.getTime(); - - // 7.3. Other pairs that do not both pass typeof value == "object", - // equivalence is determined by ==. - } else if (typeof actual != 'object' && typeof expected != 'object') { - return actual == expected; - - // 7.4. For all other Object pairs, including Array objects, equivalence is - // determined by having the same number of owned properties (as verified - // with Object.prototype.hasOwnProperty.call), the same set of keys - // (although not necessarily the same order), equivalent values for every - // corresponding key, and an identical "prototype" property. Note: this - // accounts for both named and indexed properties on Arrays. - } else { - return objEquiv(actual, expected); - } - } - - function isUndefinedOrNull (value) { - return value === null || value === undefined; - } - - function isArguments (object) { - return Object.prototype.toString.call(object) == '[object Arguments]'; - } - - function objEquiv (a, b) { - if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) - return false; - // an identical "prototype" property. - if (a.prototype !== b.prototype) return false; - //~~~I've managed to break Object.keys through screwy arguments passing. - // Converting to array solves the problem. - if (isArguments(a)) { - if (!isArguments(b)) { - return false; - } - a = pSlice.call(a); - b = pSlice.call(b); - return expect.eql(a, b); - } - try{ - var ka = keys(a), - kb = keys(b), - key, i; - } catch (e) {//happens when one is a string literal and the other isn't - return false; - } - // having the same number of owned properties (keys incorporates hasOwnProperty) - if (ka.length != kb.length) - return false; - //the same set of keys (although not necessarily the same order), - ka.sort(); - kb.sort(); - //~~~cheap key test - for (i = ka.length - 1; i >= 0; i--) { - if (ka[i] != kb[i]) - return false; - } - //equivalent values for every corresponding key, and - //~~~possibly expensive deep test - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!expect.eql(a[key], b[key])) - return false; - } - return true; - } - - var json = (function () { - "use strict"; - - if ('object' == typeof JSON && JSON.parse && JSON.stringify) { - return { - parse: nativeJSON.parse - , stringify: nativeJSON.stringify - } - } - - var JSON = {}; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } - - function date(d, key) { - return isFinite(d.valueOf()) ? - d.getUTCFullYear() + '-' + - f(d.getUTCMonth() + 1) + '-' + - f(d.getUTCDate()) + 'T' + - f(d.getUTCHours()) + ':' + - f(d.getUTCMinutes()) + ':' + - f(d.getUTCSeconds()) + 'Z' : null; - }; - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - - // If the string contains no control characters, no quote characters, and no - // backslash characters, then we can safely slap some quotes around it. - // Otherwise we must also replace the offending characters with safe escape - // sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' ? c : - '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - - // Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - - // If the value has a toJSON method, call it to obtain a replacement value. - - if (value instanceof Date) { - value = date(key); - } - - // If we were called with a replacer function, then call the replacer to - // obtain a replacement value. - - if (typeof rep === 'function') { - value = rep.call(holder, key, value); - } - - // What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - - // JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - - // If the value is a boolean or null, convert it to a string. Note: - // typeof null does not produce 'null'. The case is included here in - // the remote chance that this gets fixed someday. - - return String(value); - - // If the type is 'object', we might be dealing with an object or an array or - // null. - - case 'object': - - // Due to a specification blunder in ECMAScript, typeof null is 'object', - // so watch out for that case. - - if (!value) { - return 'null'; - } - - // Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - - // Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - - // The value is an array. Stringify every element. Use null as a placeholder - // for non-JSON values. - - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; - } - - // Join all of the elements together, separated with commas, and wrap them in - // brackets. - - v = partial.length === 0 ? '[]' : gap ? - '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : - '[' + partial.join(',') + ']'; - gap = mind; - return v; - } - - // If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } else { - - // Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } - - // Join all of the member texts together, separated with commas, - // and wrap them in braces. - - v = partial.length === 0 ? '{}' : gap ? - '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : - '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - - // If the JSON object does not yet have a stringify method, give it one. - - JSON.stringify = function (value, replacer, space) { - - // The stringify method takes a value and an optional replacer, and an optional - // space parameter, and returns a JSON text. The replacer can be a function - // that can replace values, or an array of strings that will select the keys. - // A default replacer method can be provided. Use of the space parameter can - // produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - - // If the space parameter is a number, make an indent string containing that - // many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - - // If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; - } - - // If there is a replacer, it must be a function or an array. - // Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); - } - - // Make a fake root object containing our value under the key of ''. - // Return the result of stringifying the value. - - return str('', {'': value}); - }; - - // If the JSON object does not yet have a parse method, give it one. - - JSON.parse = function (text, reviver) { - // The parse method takes a text and an optional reviver function, and returns - // a JavaScript value if the text is a valid JSON text. - - var j; - - function walk(holder, key) { - - // The walk method is used to recursively walk the resulting structure so - // that modifications can be made. - - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } - } - } - } - return reviver.call(holder, key, value); - } - - - // Parsing happens in four stages. In the first stage, we replace certain - // Unicode characters with escape sequences. JavaScript handles many characters - // incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); - } - - // In the second stage, we run the text against regular expressions that look - // for non-JSON patterns. We are especially concerned with '()' and 'new' - // because they can cause invocation, and '=' because it can cause mutation. - // But just to be safe, we want to reject all unexpected forms. - - // We split the second stage into 4 regexp operations in order to work around - // crippling inefficiencies in IE's and Safari's regexp engines. First we - // replace the JSON backslash pairs with '@' (a non-JSON character). Second, we - // replace all simple value tokens with ']' characters. Third, we delete all - // open brackets that follow a colon or comma or that begin the text. Finally, - // we look to see that the remaining characters are only whitespace or ']' or - // ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - - // In the third stage we use the eval function to compile the text into a - // JavaScript structure. The '{' operator is subject to a syntactic ambiguity - // in JavaScript: it can begin a block or an object literal. We wrap the text - // in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - - // In the optional fourth stage, we recursively walk the new structure, passing - // each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' ? - walk({'': j}, '') : j; - } - - // If the text is not JSON parseable, then a SyntaxError is thrown. - - throw new SyntaxError('JSON.parse'); - }; - - return JSON; - })(); - - if ('undefined' != typeof window) { - window.expect = module.exports; - } - -})( - this - , 'undefined' != typeof module ? module : {} - , 'undefined' != typeof exports ? exports : {} -); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/test/browser/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/test/browser/index.html deleted file mode 100644 index c73147aa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/test/browser/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - Mocha - - - - - - - - - - - - -
      - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/test/browser/jquery.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/test/browser/jquery.js deleted file mode 100644 index f3201aac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/broadway/node_modules/winston/node_modules/request/node_modules/qs/test/browser/jquery.js +++ /dev/null @@ -1,8981 +0,0 @@ -/*! - * jQuery JavaScript Library v1.6.2 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu Jun 30 14:16:56 2011 -0400 - */ -(function( window, undefined ) { - -// Use the correct document accordingly with window argument (sandbox) -var document = window.document, - navigator = window.navigator, - location = window.location; -var jQuery = (function() { - -// Define a local copy of jQuery -var jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, - - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$, - - // A central reference to the root jQuery(document) - rootjQuery, - - // A simple way to check for HTML strings or ID strings - // (both of which we optimize for) - quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, - - // Check if a string has a non-whitespace character in it - rnotwhite = /\S/, - - // Used for trimming whitespace - trimLeft = /^\s+/, - trimRight = /\s+$/, - - // Check for digits - rdigit = /\d/, - - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, - - // JSON RegExp - rvalidchars = /^[\],:{}\s]*$/, - rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, - rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - - // Useragent RegExp - rwebkit = /(webkit)[ \/]([\w.]+)/, - ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, - rmsie = /(msie) ([\w.]+)/, - rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, - - // Matches dashed string for camelizing - rdashAlpha = /-([a-z])/ig, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }, - - // Keep a UserAgent string for use with jQuery.browser - userAgent = navigator.userAgent, - - // For matching the engine and version of the browser - browserMatch, - - // The deferred used on DOM ready - readyList, - - // The ready event handler - DOMContentLoaded, - - // Save a reference to some core methods - toString = Object.prototype.toString, - hasOwn = Object.prototype.hasOwnProperty, - push = Array.prototype.push, - slice = Array.prototype.slice, - trim = String.prototype.trim, - indexOf = Array.prototype.indexOf, - - // [[Class]] -> type pairs - class2type = {}; - -jQuery.fn = jQuery.prototype = { - constructor: jQuery, - init: function( selector, context, rootjQuery ) { - var match, elem, ret, doc; - - // Handle $(""), $(null), or $(undefined) - if ( !selector ) { - return this; - } - - // Handle $(DOMElement) - if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - } - - // The body element only exists once, optimize finding it - if ( selector === "body" && !context && document.body ) { - this.context = document; - this[0] = document.body; - this.selector = selector; - this.length = 1; - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - // Are we dealing with HTML string or an ID? - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = quickExpr.exec( selector ); - } - - // Verify a match, and that no context was specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - doc = (context ? context.ownerDocument || context : document); - - // If a single string is passed in and it's a single tag - // just do a createElement and skip the rest - ret = rsingleTag.exec( selector ); - - if ( ret ) { - if ( jQuery.isPlainObject( context ) ) { - selector = [ document.createElement( ret[1] ) ]; - jQuery.fn.attr.call( selector, context, true ); - - } else { - selector = [ doc.createElement( ret[1] ) ]; - } - - } else { - ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); - selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; - } - - return jQuery.merge( this, selector ); - - // HANDLE: $("#id") - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return (context || rootjQuery).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if (selector.selector !== undefined) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - - // Start with an empty selector - selector: "", - - // The current version of jQuery being used - jquery: "1.6.2", - - // The default length of a jQuery object is 0 - length: 0, - - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - - toArray: function() { - return slice.call( this, 0 ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num == null ? - - // Return a 'clean' array - this.toArray() : - - // Return just the object - ( num < 0 ? this[ this.length + num ] : this[ num ] ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems, name, selector ) { - // Build a new jQuery matched element set - var ret = this.constructor(); - - if ( jQuery.isArray( elems ) ) { - push.apply( ret, elems ); - - } else { - jQuery.merge( ret, elems ); - } - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - ret.context = this.context; - - if ( name === "find" ) { - ret.selector = this.selector + (this.selector ? " " : "") + selector; - } else if ( name ) { - ret.selector = this.selector + "." + name + "(" + selector + ")"; - } - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - ready: function( fn ) { - // Attach the listeners - jQuery.bindReady(); - - // Add the callback - readyList.done( fn ); - - return this; - }, - - eq: function( i ) { - return i === -1 ? - this.slice( i ) : - this.slice( i, +i + 1 ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ), - "slice", slice.call(arguments).join(",") ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: [].sort, - splice: [].splice -}; - -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( length === i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - noConflict: function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; - }, - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - // Either a released hold or an DOMready/load event and not yet ready - if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready, 1 ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger( "ready" ).unbind( "ready" ); - } - } - }, - - bindReady: function() { - if ( readyList ) { - return; - } - - readyList = jQuery._Deferred(); - - // Catch cases where $(document).ready() is called after the - // browser event has already occurred. - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - return setTimeout( jQuery.ready, 1 ); - } - - // Mozilla, Opera and webkit nightlies currently support this event - if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", jQuery.ready, false ); - - // If IE event model is used - } else if ( document.attachEvent ) { - // ensure firing before onload, - // maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", DOMContentLoaded ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", jQuery.ready ); - - // If IE and not a frame - // continually check to see if the document is ready - var toplevel = false; - - try { - toplevel = window.frameElement == null; - } catch(e) {} - - if ( document.documentElement.doScroll && toplevel ) { - doScrollCheck(); - } - } - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - // A crude way of determining if an object is a window - isWindow: function( obj ) { - return obj && typeof obj === "object" && "setInterval" in obj; - }, - - isNaN: function( obj ) { - return obj == null || !rdigit.test( obj ) || isNaN( obj ); - }, - - type: function( obj ) { - return obj == null ? - String( obj ) : - class2type[ toString.call(obj) ] || "object"; - }, - - isPlainObject: function( obj ) { - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - // Not own constructor property must be Object - if ( obj.constructor && - !hasOwn.call(obj, "constructor") && - !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - - var key; - for ( key in obj ) {} - - return key === undefined || hasOwn.call( obj, key ); - }, - - isEmptyObject: function( obj ) { - for ( var name in obj ) { - return false; - } - return true; - }, - - error: function( msg ) { - throw msg; - }, - - parseJSON: function( data ) { - if ( typeof data !== "string" || !data ) { - return null; - } - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - return window.JSON.parse( data ); - } - - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test( data.replace( rvalidescape, "@" ) - .replace( rvalidtokens, "]" ) - .replace( rvalidbraces, "")) ) { - - return (new Function( "return " + data ))(); - - } - jQuery.error( "Invalid JSON: " + data ); - }, - - // Cross-browser xml parsing - // (xml & tmp used internally) - parseXML: function( data , xml , tmp ) { - - if ( window.DOMParser ) { // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - - tmp = xml.documentElement; - - if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { - jQuery.error( "Invalid XML: " + data ); - } - - return xml; - }, - - noop: function() {}, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && rnotwhite.test( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - // Converts a dashed string to camelCased string; - // Used by both the css and data modules - camelCase: function( string ) { - return string.replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); - }, - - // args is for internal usage only - each: function( object, callback, args ) { - var name, i = 0, - length = object.length, - isObj = length === undefined || jQuery.isFunction( object ); - - if ( args ) { - if ( isObj ) { - for ( name in object ) { - if ( callback.apply( object[ name ], args ) === false ) { - break; - } - } - } else { - for ( ; i < length; ) { - if ( callback.apply( object[ i++ ], args ) === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isObj ) { - for ( name in object ) { - if ( callback.call( object[ name ], name, object[ name ] ) === false ) { - break; - } - } - } else { - for ( ; i < length; ) { - if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { - break; - } - } - } - } - - return object; - }, - - // Use native String.trim function wherever possible - trim: trim ? - function( text ) { - return text == null ? - "" : - trim.call( text ); - } : - - // Otherwise use our own trimming functionality - function( text ) { - return text == null ? - "" : - text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); - }, - - // results is for internal usage only - makeArray: function( array, results ) { - var ret = results || []; - - if ( array != null ) { - // The window, strings (and functions) also have 'length' - // The extra typeof function check is to prevent crashes - // in Safari 2 (See: #3039) - // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 - var type = jQuery.type( array ); - - if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { - push.call( ret, array ); - } else { - jQuery.merge( ret, array ); - } - } - - return ret; - }, - - inArray: function( elem, array ) { - - if ( indexOf ) { - return indexOf.call( array, elem ); - } - - for ( var i = 0, length = array.length; i < length; i++ ) { - if ( array[ i ] === elem ) { - return i; - } - } - - return -1; - }, - - merge: function( first, second ) { - var i = first.length, - j = 0; - - if ( typeof second.length === "number" ) { - for ( var l = second.length; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, inv ) { - var ret = [], retVal; - inv = !!inv; - - // Go through the array, only saving the items - // that pass the validator function - for ( var i = 0, length = elems.length; i < length; i++ ) { - retVal = !!callback( elems[ i ], i ); - if ( inv !== retVal ) { - ret.push( elems[ i ] ); - } - } - - return ret; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, key, ret = [], - i = 0, - length = elems.length, - // jquery objects are treated as arrays - isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; - - // Go through the array, translating each of the items to their - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - - // Go through every key on the object, - } else { - for ( key in elems ) { - value = callback( elems[ key ], key, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - } - - // Flatten any nested arrays - return ret.concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - if ( typeof context === "string" ) { - var tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - var args = slice.call( arguments, 2 ), - proxy = function() { - return fn.apply( context, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; - - return proxy; - }, - - // Mutifunctional method to get and set values to a collection - // The value/s can optionally be executed if it's a function - access: function( elems, key, value, exec, fn, pass ) { - var length = elems.length; - - // Setting many attributes - if ( typeof key === "object" ) { - for ( var k in key ) { - jQuery.access( elems, k, key[k], exec, fn, value ); - } - return elems; - } - - // Setting one attribute - if ( value !== undefined ) { - // Optionally, function values get executed if exec is true - exec = !pass && exec && jQuery.isFunction(value); - - for ( var i = 0; i < length; i++ ) { - fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); - } - - return elems; - } - - // Getting an attribute - return length ? fn( elems[0], key ) : undefined; - }, - - now: function() { - return (new Date()).getTime(); - }, - - // Use of jQuery.browser is frowned upon. - // More details: http://docs.jquery.com/Utilities/jQuery.browser - uaMatch: function( ua ) { - ua = ua.toLowerCase(); - - var match = rwebkit.exec( ua ) || - ropera.exec( ua ) || - rmsie.exec( ua ) || - ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || - []; - - return { browser: match[1] || "", version: match[2] || "0" }; - }, - - sub: function() { - function jQuerySub( selector, context ) { - return new jQuerySub.fn.init( selector, context ); - } - jQuery.extend( true, jQuerySub, this ); - jQuerySub.superclass = this; - jQuerySub.fn = jQuerySub.prototype = this(); - jQuerySub.fn.constructor = jQuerySub; - jQuerySub.sub = this.sub; - jQuerySub.fn.init = function init( selector, context ) { - if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { - context = jQuerySub( context ); - } - - return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); - }; - jQuerySub.fn.init.prototype = jQuerySub.fn; - var rootjQuerySub = jQuerySub(document); - return jQuerySub; - }, - - browser: {} -}); - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -browserMatch = jQuery.uaMatch( userAgent ); -if ( browserMatch.browser ) { - jQuery.browser[ browserMatch.browser ] = true; - jQuery.browser.version = browserMatch.version; -} - -// Deprecated, use jQuery.browser.webkit instead -if ( jQuery.browser.webkit ) { - jQuery.browser.safari = true; -} - -// IE doesn't match non-breaking spaces with \s -if ( rnotwhite.test( "\xA0" ) ) { - trimLeft = /^[\s\xA0]+/; - trimRight = /[\s\xA0]+$/; -} - -// All jQuery objects should point back to these -rootjQuery = jQuery(document); - -// Cleanup functions for the document ready method -if ( document.addEventListener ) { - DOMContentLoaded = function() { - document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - jQuery.ready(); - }; - -} else if ( document.attachEvent ) { - DOMContentLoaded = function() { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( document.readyState === "complete" ) { - document.detachEvent( "onreadystatechange", DOMContentLoaded ); - jQuery.ready(); - } - }; -} - -// The DOM ready check for Internet Explorer -function doScrollCheck() { - if ( jQuery.isReady ) { - return; - } - - try { - // If IE is used, use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - document.documentElement.doScroll("left"); - } catch(e) { - setTimeout( doScrollCheck, 1 ); - return; - } - - // and execute any waiting functions - jQuery.ready(); -} - -return jQuery; - -})(); - - -var // Promise methods - promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ), - // Static reference to slice - sliceDeferred = [].slice; - -jQuery.extend({ - // Create a simple deferred (one callbacks list) - _Deferred: function() { - var // callbacks list - callbacks = [], - // stored [ context , args ] - fired, - // to avoid firing when already doing so - firing, - // flag to know if the deferred has been cancelled - cancelled, - // the deferred itself - deferred = { - - // done( f1, f2, ...) - done: function() { - if ( !cancelled ) { - var args = arguments, - i, - length, - elem, - type, - _fired; - if ( fired ) { - _fired = fired; - fired = 0; - } - for ( i = 0, length = args.length; i < length; i++ ) { - elem = args[ i ]; - type = jQuery.type( elem ); - if ( type === "array" ) { - deferred.done.apply( deferred, elem ); - } else if ( type === "function" ) { - callbacks.push( elem ); - } - } - if ( _fired ) { - deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); - } - } - return this; - }, - - // resolve with given context and args - resolveWith: function( context, args ) { - if ( !cancelled && !fired && !firing ) { - // make sure args are available (#8421) - args = args || []; - firing = 1; - try { - while( callbacks[ 0 ] ) { - callbacks.shift().apply( context, args ); - } - } - finally { - fired = [ context, args ]; - firing = 0; - } - } - return this; - }, - - // resolve with this as context and given arguments - resolve: function() { - deferred.resolveWith( this, arguments ); - return this; - }, - - // Has this deferred been resolved? - isResolved: function() { - return !!( firing || fired ); - }, - - // Cancel - cancel: function() { - cancelled = 1; - callbacks = []; - return this; - } - }; - - return deferred; - }, - - // Full fledged deferred (two callbacks list) - Deferred: function( func ) { - var deferred = jQuery._Deferred(), - failDeferred = jQuery._Deferred(), - promise; - // Add errorDeferred methods, then and promise - jQuery.extend( deferred, { - then: function( doneCallbacks, failCallbacks ) { - deferred.done( doneCallbacks ).fail( failCallbacks ); - return this; - }, - always: function() { - return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments ); - }, - fail: failDeferred.done, - rejectWith: failDeferred.resolveWith, - reject: failDeferred.resolve, - isRejected: failDeferred.isResolved, - pipe: function( fnDone, fnFail ) { - return jQuery.Deferred(function( newDefer ) { - jQuery.each( { - done: [ fnDone, "resolve" ], - fail: [ fnFail, "reject" ] - }, function( handler, data ) { - var fn = data[ 0 ], - action = data[ 1 ], - returned; - if ( jQuery.isFunction( fn ) ) { - deferred[ handler ](function() { - returned = fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise().then( newDefer.resolve, newDefer.reject ); - } else { - newDefer[ action ]( returned ); - } - }); - } else { - deferred[ handler ]( newDefer[ action ] ); - } - }); - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - if ( obj == null ) { - if ( promise ) { - return promise; - } - promise = obj = {}; - } - var i = promiseMethods.length; - while( i-- ) { - obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ]; - } - return obj; - } - }); - // Make sure only one callback list will be used - deferred.done( failDeferred.cancel ).fail( deferred.cancel ); - // Unexpose cancel - delete deferred.cancel; - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - return deferred; - }, - - // Deferred helper - when: function( firstParam ) { - var args = arguments, - i = 0, - length = args.length, - count = length, - deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? - firstParam : - jQuery.Deferred(); - function resolveFunc( i ) { - return function( value ) { - args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; - if ( !( --count ) ) { - // Strange bug in FF4: - // Values changed onto the arguments object sometimes end up as undefined values - // outside the $.when method. Cloning the object into a fresh array solves the issue - deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) ); - } - }; - } - if ( length > 1 ) { - for( ; i < length; i++ ) { - if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) { - args[ i ].promise().then( resolveFunc(i), deferred.reject ); - } else { - --count; - } - } - if ( !count ) { - deferred.resolveWith( deferred, args ); - } - } else if ( deferred !== firstParam ) { - deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); - } - return deferred.promise(); - } -}); - - - -jQuery.support = (function() { - - var div = document.createElement( "div" ), - documentElement = document.documentElement, - all, - a, - select, - opt, - input, - marginDiv, - support, - fragment, - body, - testElementParent, - testElement, - testElementStyle, - tds, - events, - eventName, - i, - isSupported; - - // Preliminary tests - div.setAttribute("className", "t"); - div.innerHTML = "
      a"; - - all = div.getElementsByTagName( "*" ); - a = div.getElementsByTagName( "a" )[ 0 ]; - - // Can't get basic test support - if ( !all || !all.length || !a ) { - return {}; - } - - // First batch of supports tests - select = document.createElement( "select" ); - opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName( "input" )[ 0 ]; - - support = { - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: ( div.firstChild.nodeType === 3 ), - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName( "tbody" ).length, - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName( "link" ).length, - - // Get the style information from getAttribute - // (IE uses .cssText instead) - style: /top/.test( a.getAttribute("style") ), - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: ( a.getAttribute( "href" ) === "/a" ), - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.55$/.test( a.style.opacity ), - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, - - // Make sure that if no value is specified for a checkbox - // that it defaults to "on". - // (WebKit defaults to "" instead) - checkOn: ( input.value === "on" ), - - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: opt.selected, - - // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) - getSetAttribute: div.className !== "t", - - // Will be defined later - submitBubbles: true, - changeBubbles: true, - focusinBubbles: false, - deleteExpando: true, - noCloneEvent: true, - inlineBlockNeedsLayout: false, - shrinkWrapBlocks: false, - reliableMarginRight: true - }; - - // Make sure checked status is properly cloned - input.checked = true; - support.noCloneChecked = input.cloneNode( true ).checked; - - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; - - // Test to see if it's possible to delete an expando from an element - // Fails in Internet Explorer - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - - if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { - div.attachEvent( "onclick", function() { - // Cloning a node shouldn't copy over any - // bound event handlers (IE does this) - support.noCloneEvent = false; - }); - div.cloneNode( true ).fireEvent( "onclick" ); - } - - // Check if a radio maintains it's value - // after being appended to the DOM - input = document.createElement("input"); - input.value = "t"; - input.setAttribute("type", "radio"); - support.radioValue = input.value === "t"; - - input.setAttribute("checked", "checked"); - div.appendChild( input ); - fragment = document.createDocumentFragment(); - fragment.appendChild( div.firstChild ); - - // WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; - - div.innerHTML = ""; - - // Figure out if the W3C box model works as expected - div.style.width = div.style.paddingLeft = "1px"; - - body = document.getElementsByTagName( "body" )[ 0 ]; - // We use our own, invisible, body unless the body is already present - // in which case we use a div (#9239) - testElement = document.createElement( body ? "div" : "body" ); - testElementStyle = { - visibility: "hidden", - width: 0, - height: 0, - border: 0, - margin: 0 - }; - if ( body ) { - jQuery.extend( testElementStyle, { - position: "absolute", - left: -1000, - top: -1000 - }); - } - for ( i in testElementStyle ) { - testElement.style[ i ] = testElementStyle[ i ]; - } - testElement.appendChild( div ); - testElementParent = body || documentElement; - testElementParent.insertBefore( testElement, testElementParent.firstChild ); - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - support.appendChecked = input.checked; - - support.boxModel = div.offsetWidth === 2; - - if ( "zoom" in div.style ) { - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - // (IE < 8 does this) - div.style.display = "inline"; - div.style.zoom = 1; - support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); - - // Check if elements with layout shrink-wrap their children - // (IE 6 does this) - div.style.display = ""; - div.innerHTML = "
      "; - support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); - } - - div.innerHTML = "
      t
      "; - tds = div.getElementsByTagName( "td" ); - - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - // (only IE 8 fails this test) - isSupported = ( tds[ 0 ].offsetHeight === 0 ); - - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; - - // Check if empty table cells still have offsetWidth/Height - // (IE < 8 fail this test) - support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - div.innerHTML = ""; - - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. For more - // info see bug #3333 - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - if ( document.defaultView && document.defaultView.getComputedStyle ) { - marginDiv = document.createElement( "div" ); - marginDiv.style.width = "0"; - marginDiv.style.marginRight = "0"; - div.appendChild( marginDiv ); - support.reliableMarginRight = - ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; - } - - // Remove the body element we added - testElement.innerHTML = ""; - testElementParent.removeChild( testElement ); - - // Technique from Juriy Zaytsev - // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ - // We only care about the case where non-standard event systems - // are used, namely in IE. Short-circuiting here helps us to - // avoid an eval call (in setAttribute) which can cause CSP - // to go haywire. See: https://developer.mozilla.org/en/Security/CSP - if ( div.attachEvent ) { - for( i in { - submit: 1, - change: 1, - focusin: 1 - } ) { - eventName = "on" + i; - isSupported = ( eventName in div ); - if ( !isSupported ) { - div.setAttribute( eventName, "return;" ); - isSupported = ( typeof div[ eventName ] === "function" ); - } - support[ i + "Bubbles" ] = isSupported; - } - } - - // Null connected elements to avoid leaks in IE - testElement = fragment = select = opt = body = marginDiv = div = input = null; - - return support; -})(); - -// Keep track of boxModel -jQuery.boxModel = jQuery.support.boxModel; - - - - -var rbrace = /^(?:\{.*\}|\[.*\])$/, - rmultiDash = /([a-z])([A-Z])/g; - -jQuery.extend({ - cache: {}, - - // Please use with caution - uuid: 0, - - // Unique for each copy of jQuery on the page - // Non-digits removed to match rinlinejQuery - expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), - - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "embed": true, - // Ban all objects except for Flash (which handle expandos) - "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", - "applet": true - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache, - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - elem[ jQuery.expando ] = id = ++jQuery.uuid; - } else { - id = jQuery.expando; - } - } - - if ( !cache[ id ] ) { - cache[ id ] = {}; - - // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery - // metadata on plain JS objects when the object is serialized using - // JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); - } else { - cache[ id ] = jQuery.extend(cache[ id ], name); - } - } - - thisCache = cache[ id ]; - - // Internal jQuery data is stored in a separate object inside the object's data - // cache in order to avoid key collisions between internal data and user-defined - // data - if ( pvt ) { - if ( !thisCache[ internalKey ] ) { - thisCache[ internalKey ] = {}; - } - - thisCache = thisCache[ internalKey ]; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should - // not attempt to inspect the internal events object using jQuery.data, as this - // internal data object is undocumented and subject to change. - if ( name === "events" && !thisCache[name] ) { - return thisCache[ internalKey ] && thisCache[ internalKey ].events; - } - - return getByName ? - // Check for both converted-to-camel and non-converted data property names - thisCache[ jQuery.camelCase( name ) ] || thisCache[ name ] : - thisCache; - }, - - removeData: function( elem, name, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var internalKey = jQuery.expando, isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - - // See jQuery.data for more information - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; - - if ( thisCache ) { - delete thisCache[ name ]; - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( !isEmptyDataObject(thisCache) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( pvt ) { - delete cache[ id ][ internalKey ]; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject(cache[ id ]) ) { - return; - } - } - - var internalCache = cache[ id ][ internalKey ]; - - // Browsers that fail expando deletion also refuse to delete expandos on - // the window, but it will allow it on all other JS objects; other browsers - // don't care - if ( jQuery.support.deleteExpando || cache != window ) { - delete cache[ id ]; - } else { - cache[ id ] = null; - } - - // We destroyed the entire user cache at once because it's faster than - // iterating through each key, but we need to continue to persist internal - // data if it existed - if ( internalCache ) { - cache[ id ] = {}; - // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery - // metadata on plain JS objects when the object is serialized using - // JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - - cache[ id ][ internalKey ] = internalCache; - - // Otherwise, we need to eliminate the expando on the node to avoid - // false lookups in the cache for entries that no longer exist - } else if ( isNode ) { - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( jQuery.support.deleteExpando ) { - delete elem[ jQuery.expando ]; - } else if ( elem.removeAttribute ) { - elem.removeAttribute( jQuery.expando ); - } else { - elem[ jQuery.expando ] = null; - } - } - }, - - // For internal use only. - _data: function( elem, name, data ) { - return jQuery.data( elem, name, data, true ); - }, - - // A method for determining if a DOM node can handle the data expando - acceptData: function( elem ) { - if ( elem.nodeName ) { - var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; - - if ( match ) { - return !(match === true || elem.getAttribute("classid") !== match); - } - } - - return true; - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var data = null; - - if ( typeof key === "undefined" ) { - if ( this.length ) { - data = jQuery.data( this[0] ); - - if ( this[0].nodeType === 1 ) { - var attr = this[0].attributes, name; - for ( var i = 0, l = attr.length; i < l; i++ ) { - name = attr[i].name; - - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.substring(5) ); - - dataAttr( this[0], name, data[ name ] ); - } - } - } - } - - return data; - - } else if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - var parts = key.split("."); - parts[1] = parts[1] ? "." + parts[1] : ""; - - if ( value === undefined ) { - data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); - - // Try to fetch any internally stored data first - if ( data === undefined && this.length ) { - data = jQuery.data( this[0], key ); - data = dataAttr( this[0], key, data ); - } - - return data === undefined && parts[1] ? - this.data( parts[0] ) : - data; - - } else { - return this.each(function() { - var $this = jQuery( this ), - args = [ parts[0], value ]; - - $this.triggerHandler( "setData" + parts[1] + "!", args ); - jQuery.data( this, key, value ); - $this.triggerHandler( "changeData" + parts[1] + "!", args ); - }); - } - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - !jQuery.isNaN( data ) ? parseFloat( data ) : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON -// property to be considered empty objects; this property always exists in -// order to make sure JSON.stringify does not expose internal metadata -function isEmptyDataObject( obj ) { - for ( var name in obj ) { - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} - - - - -function handleQueueMarkDefer( elem, type, src ) { - var deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - defer = jQuery.data( elem, deferDataKey, undefined, true ); - if ( defer && - ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) && - ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) { - // Give room for hard-coded callbacks to fire first - // and eventually mark/queue something else on the element - setTimeout( function() { - if ( !jQuery.data( elem, queueDataKey, undefined, true ) && - !jQuery.data( elem, markDataKey, undefined, true ) ) { - jQuery.removeData( elem, deferDataKey, true ); - defer.resolve(); - } - }, 0 ); - } -} - -jQuery.extend({ - - _mark: function( elem, type ) { - if ( elem ) { - type = (type || "fx") + "mark"; - jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true ); - } - }, - - _unmark: function( force, elem, type ) { - if ( force !== true ) { - type = elem; - elem = force; - force = false; - } - if ( elem ) { - type = type || "fx"; - var key = type + "mark", - count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 ); - if ( count ) { - jQuery.data( elem, key, count, true ); - } else { - jQuery.removeData( elem, key, true ); - handleQueueMarkDefer( elem, type, "mark" ); - } - } - }, - - queue: function( elem, type, data ) { - if ( elem ) { - type = (type || "fx") + "queue"; - var q = jQuery.data( elem, type, undefined, true ); - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !q || jQuery.isArray(data) ) { - q = jQuery.data( elem, type, jQuery.makeArray(data), true ); - } else { - q.push( data ); - } - } - return q || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - fn = queue.shift(), - defer; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - } - - if ( fn ) { - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift("inprogress"); - } - - fn.call(elem, function() { - jQuery.dequeue(elem, type); - }); - } - - if ( !queue.length ) { - jQuery.removeData( elem, type + "queue", true ); - handleQueueMarkDefer( elem, type, "queue" ); - } - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - } - - if ( data === undefined ) { - return jQuery.queue( this[0], type ); - } - return this.each(function() { - var queue = jQuery.queue( this, type, data ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; - type = type || "fx"; - - return this.queue( type, function() { - var elem = this; - setTimeout(function() { - jQuery.dequeue( elem, type ); - }, time ); - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, object ) { - if ( typeof type !== "string" ) { - object = type; - type = undefined; - } - type = type || "fx"; - var defer = jQuery.Deferred(), - elements = this, - i = elements.length, - count = 1, - deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - tmp; - function resolve() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - } - while( i-- ) { - if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || - ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || - jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && - jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) { - count++; - tmp.done( resolve ); - } - } - resolve(); - return defer.promise(); - } -}); - - - - -var rclass = /[\n\t\r]/g, - rspace = /\s+/, - rreturn = /\r/g, - rtype = /^(?:button|input)$/i, - rfocusable = /^(?:button|input|object|select|textarea)$/i, - rclickable = /^a(?:rea)?$/i, - rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, - rinvalidChar = /\:|^on/, - formHook, boolHook; - -jQuery.fn.extend({ - attr: function( name, value ) { - return jQuery.access( this, name, value, true, jQuery.attr ); - }, - - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); - }, - - prop: function( name, value ) { - return jQuery.access( this, name, value, true, jQuery.prop ); - }, - - removeProp: function( name ) { - name = jQuery.propFix[ name ] || name; - return this.each(function() { - // try/catch handles cases where IE balks (such as removing a property on window) - try { - this[ name ] = undefined; - delete this[ name ]; - } catch( e ) {} - }); - }, - - addClass: function( value ) { - var classNames, i, l, elem, - setClass, c, cl; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).addClass( value.call(this, j, this.className) ); - }); - } - - if ( value && typeof value === "string" ) { - classNames = value.split( rspace ); - - for ( i = 0, l = this.length; i < l; i++ ) { - elem = this[ i ]; - - if ( elem.nodeType === 1 ) { - if ( !elem.className && classNames.length === 1 ) { - elem.className = value; - - } else { - setClass = " " + elem.className + " "; - - for ( c = 0, cl = classNames.length; c < cl; c++ ) { - if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { - setClass += classNames[ c ] + " "; - } - } - elem.className = jQuery.trim( setClass ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classNames, i, l, elem, className, c, cl; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).removeClass( value.call(this, j, this.className) ); - }); - } - - if ( (value && typeof value === "string") || value === undefined ) { - classNames = (value || "").split( rspace ); - - for ( i = 0, l = this.length; i < l; i++ ) { - elem = this[ i ]; - - if ( elem.nodeType === 1 && elem.className ) { - if ( value ) { - className = (" " + elem.className + " ").replace( rclass, " " ); - for ( c = 0, cl = classNames.length; c < cl; c++ ) { - className = className.replace(" " + classNames[ c ] + " ", " "); - } - elem.className = jQuery.trim( className ); - - } else { - elem.className = ""; - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( i ) { - jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - state = stateVal, - classNames = value.split( rspace ); - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space seperated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } - - } else if ( type === "undefined" || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery._data( this, "__className__", this.className ); - } - - // toggle whole className - this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " "; - for ( var i = 0, l = this.length; i < l; i++ ) { - if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { - return true; - } - } - - return false; - }, - - val: function( value ) { - var hooks, ret, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; - - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } - - ret = elem.value; - - return typeof ret === "string" ? - // handle most common string cases - ret.replace(rreturn, "") : - // handle cases where value is null/undef or number - ret == null ? "" : ret; - } - - return undefined; - } - - var isFunction = jQuery.isFunction( value ); - - return this.each(function( i ) { - var self = jQuery(this), val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, self.val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - } else if ( typeof val === "number" ) { - val += ""; - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map(val, function ( value ) { - return value == null ? "" : value + ""; - }); - } - - hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - }); - } -}); - -jQuery.extend({ - valHooks: { - option: { - get: function( elem ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; - } - }, - select: { - get: function( elem ) { - var value, - index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type === "select-one"; - - // Nothing was selected - if ( index < 0 ) { - return null; - } - - // Loop through all the selected options - for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { - var option = options[ i ]; - - // Don't return options that are disabled or in a disabled optgroup - if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && - (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - // Fixes Bug #2551 -- select.val() broken in IE after form.reset() - if ( one && !values.length && options.length ) { - return jQuery( options[ index ] ).val(); - } - - return values; - }, - - set: function( elem, value ) { - var values = jQuery.makeArray( value ); - - jQuery(elem).find("option").each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - elem.selectedIndex = -1; - } - return values; - } - } - }, - - attrFn: { - val: true, - css: true, - html: true, - text: true, - data: true, - width: true, - height: true, - offset: true - }, - - attrFix: { - // Always normalize to ensure hook usage - tabindex: "tabIndex" - }, - - attr: function( elem, name, value, pass ) { - var nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return undefined; - } - - if ( pass && name in jQuery.attrFn ) { - return jQuery( elem )[ name ]( value ); - } - - // Fallback to prop when attributes are not supported - if ( !("getAttribute" in elem) ) { - return jQuery.prop( elem, name, value ); - } - - var ret, hooks, - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - // Normalize the name if needed - if ( notxml ) { - name = jQuery.attrFix[ name ] || name; - - hooks = jQuery.attrHooks[ name ]; - - if ( !hooks ) { - // Use boolHook for boolean attributes - if ( rboolean.test( name ) ) { - - hooks = boolHook; - - // Use formHook for forms and if the name contains certain characters - } else if ( formHook && name !== "className" && - (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) { - - hooks = formHook; - } - } - } - - if ( value !== undefined ) { - - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return undefined; - - } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - elem.setAttribute( name, "" + value ); - return value; - } - - } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - - ret = elem.getAttribute( name ); - - // Non-existent attributes return null, we normalize to undefined - return ret === null ? - undefined : - ret; - } - }, - - removeAttr: function( elem, name ) { - var propName; - if ( elem.nodeType === 1 ) { - name = jQuery.attrFix[ name ] || name; - - if ( jQuery.support.getSetAttribute ) { - // Use removeAttribute in browsers that support it - elem.removeAttribute( name ); - } else { - jQuery.attr( elem, name, "" ); - elem.removeAttributeNode( elem.getAttributeNode( name ) ); - } - - // Set corresponding property to false for boolean attributes - if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) { - elem[ propName ] = false; - } - } - }, - - attrHooks: { - type: { - set: function( elem, value ) { - // We can't allow the type property to be changed (since it causes problems in IE) - if ( rtype.test( elem.nodeName ) && elem.parentNode ) { - jQuery.error( "type property can't be changed" ); - } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to it's default in case type is set after value - // This is for element creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - }, - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - var attributeNode = elem.getAttributeNode("tabIndex"); - - return attributeNode && attributeNode.specified ? - parseInt( attributeNode.value, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - }, - // Use the value property for back compat - // Use the formHook for button elements in IE6/7 (#1954) - value: { - get: function( elem, name ) { - if ( formHook && jQuery.nodeName( elem, "button" ) ) { - return formHook.get( elem, name ); - } - return name in elem ? - elem.value : - null; - }, - set: function( elem, value, name ) { - if ( formHook && jQuery.nodeName( elem, "button" ) ) { - return formHook.set( elem, value, name ); - } - // Does not return so that setAttribute is also used - elem.value = value; - } - } - }, - - propFix: { - tabindex: "tabIndex", - readonly: "readOnly", - "for": "htmlFor", - "class": "className", - maxlength: "maxLength", - cellspacing: "cellSpacing", - cellpadding: "cellPadding", - rowspan: "rowSpan", - colspan: "colSpan", - usemap: "useMap", - frameborder: "frameBorder", - contenteditable: "contentEditable" - }, - - prop: function( elem, name, value ) { - var nType = elem.nodeType; - - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return undefined; - } - - var ret, hooks, - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - if ( notxml ) { - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - return (elem[ name ] = value); - } - - } else { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) { - return ret; - - } else { - return elem[ name ]; - } - } - }, - - propHooks: {} -}); - -// Hook for boolean attributes -boolHook = { - get: function( elem, name ) { - // Align boolean attributes with corresponding properties - return jQuery.prop( elem, name ) ? - name.toLowerCase() : - undefined; - }, - set: function( elem, value, name ) { - var propName; - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - // value is true since we know at this point it's type boolean and not false - // Set boolean attributes to the same name and set the DOM property - propName = jQuery.propFix[ name ] || name; - if ( propName in elem ) { - // Only set the IDL specifically if it already exists on the element - elem[ propName ] = true; - } - - elem.setAttribute( name, name.toLowerCase() ); - } - return name; - } -}; - -// IE6/7 do not support getting/setting some attributes with get/setAttribute -if ( !jQuery.support.getSetAttribute ) { - - // propFix is more comprehensive and contains all fixes - jQuery.attrFix = jQuery.propFix; - - // Use this for any attribute on a form in IE6/7 - formHook = jQuery.attrHooks.name = jQuery.attrHooks.title = jQuery.valHooks.button = { - get: function( elem, name ) { - var ret; - ret = elem.getAttributeNode( name ); - // Return undefined if nodeValue is empty string - return ret && ret.nodeValue !== "" ? - ret.nodeValue : - undefined; - }, - set: function( elem, value, name ) { - // Check form objects in IE (multiple bugs related) - // Only use nodeValue if the attribute node exists on the form - var ret = elem.getAttributeNode( name ); - if ( ret ) { - ret.nodeValue = value; - return value; - } - } - }; - - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) - // This is for removals - jQuery.each([ "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - set: function( elem, value ) { - if ( value === "" ) { - elem.setAttribute( name, "auto" ); - return value; - } - } - }); - }); -} - - -// Some attributes require a special call on IE -if ( !jQuery.support.hrefNormalized ) { - jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - get: function( elem ) { - var ret = elem.getAttribute( name, 2 ); - return ret === null ? undefined : ret; - } - }); - }); -} - -if ( !jQuery.support.style ) { - jQuery.attrHooks.style = { - get: function( elem ) { - // Return undefined in the case of empty string - // Normalize to lowercase since IE uppercases css property names - return elem.style.cssText.toLowerCase() || undefined; - }, - set: function( elem, value ) { - return (elem.style.cssText = "" + value); - } - }; -} - -// Safari mis-reports the default selected property of an option -// Accessing the parent's selectedIndex property fixes it -if ( !jQuery.support.optSelected ) { - jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { - get: function( elem ) { - var parent = elem.parentNode; - - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }); -} - -// Radios and checkboxes getter/setter -if ( !jQuery.support.checkOn ) { - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - get: function( elem ) { - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; - } - }; - }); -} -jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0); - } - } - }); -}); - - - - -var rnamespaces = /\.(.*)$/, - rformElems = /^(?:textarea|input|select)$/i, - rperiod = /\./g, - rspaces = / /g, - rescape = /[^\w\s.|`]/g, - fcleanup = function( nm ) { - return nm.replace(rescape, "\\$&"); - }; - -/* - * A number of helper functions used for managing events. - * Many of the ideas behind this code originated from - * Dean Edwards' addEvent library. - */ -jQuery.event = { - - // Bind an event to an element - // Original by Dean Edwards - add: function( elem, types, handler, data ) { - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - if ( handler === false ) { - handler = returnFalse; - } else if ( !handler ) { - // Fixes bug #7229. Fix recommended by jdalton - return; - } - - var handleObjIn, handleObj; - - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - } - - // Make sure that the function being executed has a unique ID - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure - var elemData = jQuery._data( elem ); - - // If no elemData is found then we must be trying to bind to one of the - // banned noData elements - if ( !elemData ) { - return; - } - - var events = elemData.events, - eventHandle = elemData.handle; - - if ( !events ) { - elemData.events = events = {}; - } - - if ( !eventHandle ) { - elemData.handle = eventHandle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.handle.apply( eventHandle.elem, arguments ) : - undefined; - }; - } - - // Add elem as a property of the handle function - // This is to prevent a memory leak with non-native events in IE. - eventHandle.elem = elem; - - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - types = types.split(" "); - - var type, i = 0, namespaces; - - while ( (type = types[ i++ ]) ) { - handleObj = handleObjIn ? - jQuery.extend({}, handleObjIn) : - { handler: handler, data: data }; - - // Namespaced event handlers - if ( type.indexOf(".") > -1 ) { - namespaces = type.split("."); - type = namespaces.shift(); - handleObj.namespace = namespaces.slice(0).sort().join("."); - - } else { - namespaces = []; - handleObj.namespace = ""; - } - - handleObj.type = type; - if ( !handleObj.guid ) { - handleObj.guid = handler.guid; - } - - // Get the current list of functions bound to this event - var handlers = events[ type ], - special = jQuery.event.special[ type ] || {}; - - // Init the event handler queue - if ( !handlers ) { - handlers = events[ type ] = []; - - // Check for a special event handler - // Only use addEventListener/attachEvent if the special - // events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add the function to the element's handler list - handlers.push( handleObj ); - - // Keep track of which events have been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - global: {}, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, pos ) { - // don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - if ( handler === false ) { - handler = returnFalse; - } - - var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ), - events = elemData && elemData.events; - - if ( !elemData || !events ) { - return; - } - - // types is actually an event object here - if ( types && types.type ) { - handler = types.handler; - types = types.type; - } - - // Unbind all events for the element - if ( !types || typeof types === "string" && types.charAt(0) === "." ) { - types = types || ""; - - for ( type in events ) { - jQuery.event.remove( elem, type + types ); - } - - return; - } - - // Handle multiple events separated by a space - // jQuery(...).unbind("mouseover mouseout", fn); - types = types.split(" "); - - while ( (type = types[ i++ ]) ) { - origType = type; - handleObj = null; - all = type.indexOf(".") < 0; - namespaces = []; - - if ( !all ) { - // Namespaced event handlers - namespaces = type.split("."); - type = namespaces.shift(); - - namespace = new RegExp("(^|\\.)" + - jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)"); - } - - eventType = events[ type ]; - - if ( !eventType ) { - continue; - } - - if ( !handler ) { - for ( j = 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; - - if ( all || namespace.test( handleObj.namespace ) ) { - jQuery.event.remove( elem, origType, handleObj.handler, j ); - eventType.splice( j--, 1 ); - } - } - - continue; - } - - special = jQuery.event.special[ type ] || {}; - - for ( j = pos || 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; - - if ( handler.guid === handleObj.guid ) { - // remove the given handler for the given type - if ( all || namespace.test( handleObj.namespace ) ) { - if ( pos == null ) { - eventType.splice( j--, 1 ); - } - - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - - if ( pos != null ) { - break; - } - } - } - - // remove generic event handler if no more handlers exist - if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { - if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - ret = null; - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - var handle = elemData.handle; - if ( handle ) { - handle.elem = null; - } - - delete elemData.events; - delete elemData.handle; - - if ( jQuery.isEmptyObject( elemData ) ) { - jQuery.removeData( elem, undefined, true ); - } - } - }, - - // Events that are safe to short-circuit if no handlers are attached. - // Native DOM events should not be added, they may have inline handlers. - customEvent: { - "getData": true, - "setData": true, - "changeData": true - }, - - trigger: function( event, data, elem, onlyHandlers ) { - // Event object or event type - var type = event.type || event, - namespaces = [], - exclusive; - - if ( type.indexOf("!") >= 0 ) { - // Exclusive events trigger only for the exact event (no namespaces) - type = type.slice(0, -1); - exclusive = true; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - - if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { - // No jQuery handlers for this event type, and it can't have inline handlers - return; - } - - // Caller can pass in an Event, Object, or just an event type string - event = typeof event === "object" ? - // jQuery.Event object - event[ jQuery.expando ] ? event : - // Object literal - new jQuery.Event( type, event ) : - // Just the event type (string) - new jQuery.Event( type ); - - event.type = type; - event.exclusive = exclusive; - event.namespace = namespaces.join("."); - event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)"); - - // triggerHandler() and global events don't bubble or run the default action - if ( onlyHandlers || !elem ) { - event.preventDefault(); - event.stopPropagation(); - } - - // Handle a global trigger - if ( !elem ) { - // TODO: Stop taunting the data cache; remove global events and always attach to document - jQuery.each( jQuery.cache, function() { - // internalKey variable is just used to make it easier to find - // and potentially change this stuff later; currently it just - // points to jQuery.expando - var internalKey = jQuery.expando, - internalCache = this[ internalKey ]; - if ( internalCache && internalCache.events && internalCache.events[ type ] ) { - jQuery.event.trigger( event, data, internalCache.handle.elem ); - } - }); - return; - } - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // Clean up the event in case it is being reused - event.result = undefined; - event.target = elem; - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data != null ? jQuery.makeArray( data ) : []; - data.unshift( event ); - - var cur = elem, - // IE doesn't like method names with a colon (#3533, #8272) - ontype = type.indexOf(":") < 0 ? "on" + type : ""; - - // Fire event on the current element, then bubble up the DOM tree - do { - var handle = jQuery._data( cur, "handle" ); - - event.currentTarget = cur; - if ( handle ) { - handle.apply( cur, data ); - } - - // Trigger an inline bound script - if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) { - event.result = false; - event.preventDefault(); - } - - // Bubble up to document, then to window - cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window; - } while ( cur && !event.isPropagationStopped() ); - - // If nobody prevented the default action, do it now - if ( !event.isDefaultPrevented() ) { - var old, - special = jQuery.event.special[ type ] || {}; - - if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) && - !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction)() check here because IE6/7 fails that test. - // IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch. - try { - if ( ontype && elem[ type ] ) { - // Don't re-trigger an onFOO event when we call its FOO() method - old = elem[ ontype ]; - - if ( old ) { - elem[ ontype ] = null; - } - - jQuery.event.triggered = type; - elem[ type ](); - } - } catch ( ieError ) {} - - if ( old ) { - elem[ ontype ] = old; - } - - jQuery.event.triggered = undefined; - } - } - - return event.result; - }, - - handle: function( event ) { - event = jQuery.event.fix( event || window.event ); - // Snapshot the handlers list since a called handler may add/remove events. - var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0), - run_all = !event.exclusive && !event.namespace, - args = Array.prototype.slice.call( arguments, 0 ); - - // Use the fix-ed Event rather than the (read-only) native event - args[0] = event; - event.currentTarget = this; - - for ( var j = 0, l = handlers.length; j < l; j++ ) { - var handleObj = handlers[ j ]; - - // Triggered event must 1) be non-exclusive and have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event. - if ( run_all || event.namespace_re.test( handleObj.namespace ) ) { - // Pass in a reference to the handler function itself - // So that we can later remove it - event.handler = handleObj.handler; - event.data = handleObj.data; - event.handleObj = handleObj; - - var ret = handleObj.handler.apply( this, args ); - - if ( ret !== undefined ) { - event.result = ret; - if ( ret === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - - if ( event.isImmediatePropagationStopped() ) { - break; - } - } - } - return event.result; - }, - - props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // store a copy of the original event object - // and "clone" to set read-only properties - var originalEvent = event; - event = jQuery.Event( originalEvent ); - - for ( var i = this.props.length, prop; i; ) { - prop = this.props[ --i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Fix target property, if necessary - if ( !event.target ) { - // Fixes #1925 where srcElement might not be defined either - event.target = event.srcElement || document; - } - - // check if target is a textnode (safari) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && event.fromElement ) { - event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; - } - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && event.clientX != null ) { - var eventDocument = event.target.ownerDocument || document, - doc = eventDocument.documentElement, - body = eventDocument.body; - - event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); - event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); - } - - // Add which for key events - if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { - event.which = event.charCode != null ? event.charCode : event.keyCode; - } - - // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) - if ( !event.metaKey && event.ctrlKey ) { - event.metaKey = event.ctrlKey; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && event.button !== undefined ) { - event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); - } - - return event; - }, - - // Deprecated, use jQuery.guid instead - guid: 1E8, - - // Deprecated, use jQuery.proxy instead - proxy: jQuery.proxy, - - special: { - ready: { - // Make sure the ready event is setup - setup: jQuery.bindReady, - teardown: jQuery.noop - }, - - live: { - add: function( handleObj ) { - jQuery.event.add( this, - liveConvert( handleObj.origType, handleObj.selector ), - jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); - }, - - remove: function( handleObj ) { - jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj ); - } - }, - - beforeunload: { - setup: function( data, namespaces, eventHandle ) { - // We only want to do this special case on windows - if ( jQuery.isWindow( this ) ) { - this.onbeforeunload = eventHandle; - } - }, - - teardown: function( namespaces, eventHandle ) { - if ( this.onbeforeunload === eventHandle ) { - this.onbeforeunload = null; - } - } - } - } -}; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - if ( elem.detachEvent ) { - elem.detachEvent( "on" + type, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !this.preventDefault ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || - src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // timeStamp is buggy for some events on Firefox(#3843) - // So we won't rely on the native value - this.timeStamp = jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -function returnFalse() { - return false; -} -function returnTrue() { - return true; -} - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - preventDefault: function() { - this.isDefaultPrevented = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - - // if preventDefault exists run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // otherwise set the returnValue property of the original event to false (IE) - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - this.isPropagationStopped = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - // if stopPropagation exists run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - // otherwise set the cancelBubble property of the original event to true (IE) - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - }, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse -}; - -// Checks if an event happened on an element within another element -// Used in jQuery.event.special.mouseenter and mouseleave handlers -var withinElement = function( event ) { - - // Check if mouse(over|out) are still within the same parent element - var related = event.relatedTarget, - inside = false, - eventType = event.type; - - event.type = event.data; - - if ( related !== this ) { - - if ( related ) { - inside = jQuery.contains( this, related ); - } - - if ( !inside ) { - - jQuery.event.handle.apply( this, arguments ); - - event.type = eventType; - } - } -}, - -// In case of event delegation, we only need to rename the event.type, -// liveHandler will take care of the rest. -delegate = function( event ) { - event.type = event.data; - jQuery.event.handle.apply( this, arguments ); -}; - -// Create mouseenter and mouseleave events -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - setup: function( data ) { - jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); - }, - teardown: function( data ) { - jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); - } - }; -}); - -// submit delegation -if ( !jQuery.support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function( data, namespaces ) { - if ( !jQuery.nodeName( this, "form" ) ) { - jQuery.event.add(this, "click.specialSubmit", function( e ) { - var elem = e.target, - type = elem.type; - - if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { - trigger( "submit", this, arguments ); - } - }); - - jQuery.event.add(this, "keypress.specialSubmit", function( e ) { - var elem = e.target, - type = elem.type; - - if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { - trigger( "submit", this, arguments ); - } - }); - - } else { - return false; - } - }, - - teardown: function( namespaces ) { - jQuery.event.remove( this, ".specialSubmit" ); - } - }; - -} - -// change delegation, happens here so we have bind. -if ( !jQuery.support.changeBubbles ) { - - var changeFilters, - - getVal = function( elem ) { - var type = elem.type, val = elem.value; - - if ( type === "radio" || type === "checkbox" ) { - val = elem.checked; - - } else if ( type === "select-multiple" ) { - val = elem.selectedIndex > -1 ? - jQuery.map( elem.options, function( elem ) { - return elem.selected; - }).join("-") : - ""; - - } else if ( jQuery.nodeName( elem, "select" ) ) { - val = elem.selectedIndex; - } - - return val; - }, - - testChange = function testChange( e ) { - var elem = e.target, data, val; - - if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) { - return; - } - - data = jQuery._data( elem, "_change_data" ); - val = getVal(elem); - - // the current data will be also retrieved by beforeactivate - if ( e.type !== "focusout" || elem.type !== "radio" ) { - jQuery._data( elem, "_change_data", val ); - } - - if ( data === undefined || val === data ) { - return; - } - - if ( data != null || val ) { - e.type = "change"; - e.liveFired = undefined; - jQuery.event.trigger( e, arguments[1], elem ); - } - }; - - jQuery.event.special.change = { - filters: { - focusout: testChange, - - beforedeactivate: testChange, - - click: function( e ) { - var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; - - if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) { - testChange.call( this, e ); - } - }, - - // Change has to be called before submit - // Keydown will be called before keypress, which is used in submit-event delegation - keydown: function( e ) { - var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; - - if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) || - (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || - type === "select-multiple" ) { - testChange.call( this, e ); - } - }, - - // Beforeactivate happens also before the previous element is blurred - // with this event you can't trigger a change event, but you can store - // information - beforeactivate: function( e ) { - var elem = e.target; - jQuery._data( elem, "_change_data", getVal(elem) ); - } - }, - - setup: function( data, namespaces ) { - if ( this.type === "file" ) { - return false; - } - - for ( var type in changeFilters ) { - jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); - } - - return rformElems.test( this.nodeName ); - }, - - teardown: function( namespaces ) { - jQuery.event.remove( this, ".specialChange" ); - - return rformElems.test( this.nodeName ); - } - }; - - changeFilters = jQuery.event.special.change.filters; - - // Handle when the input is .focus()'d - changeFilters.focus = changeFilters.beforeactivate; -} - -function trigger( type, elem, args ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - // Don't pass args or remember liveFired; they apply to the donor event. - var event = jQuery.extend( {}, args[ 0 ] ); - event.type = type; - event.originalEvent = {}; - event.liveFired = undefined; - jQuery.event.handle.call( elem, event ); - if ( event.isDefaultPrevented() ) { - args[ 0 ].preventDefault(); - } -} - -// Create "bubbling" focus and blur events -if ( !jQuery.support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler while someone wants focusin/focusout - var attaches = 0; - - jQuery.event.special[ fix ] = { - setup: function() { - if ( attaches++ === 0 ) { - document.addEventListener( orig, handler, true ); - } - }, - teardown: function() { - if ( --attaches === 0 ) { - document.removeEventListener( orig, handler, true ); - } - } - }; - - function handler( donor ) { - // Donor event is always a native one; fix it and switch its type. - // Let focusin/out handler cancel the donor focus/blur event. - var e = jQuery.event.fix( donor ); - e.type = fix; - e.originalEvent = {}; - jQuery.event.trigger( e, null, e.target ); - if ( e.isDefaultPrevented() ) { - donor.preventDefault(); - } - } - }); -} - -jQuery.each(["bind", "one"], function( i, name ) { - jQuery.fn[ name ] = function( type, data, fn ) { - var handler; - - // Handle object literals - if ( typeof type === "object" ) { - for ( var key in type ) { - this[ name ](key, data, type[key], fn); - } - return this; - } - - if ( arguments.length === 2 || data === false ) { - fn = data; - data = undefined; - } - - if ( name === "one" ) { - handler = function( event ) { - jQuery( this ).unbind( event, handler ); - return fn.apply( this, arguments ); - }; - handler.guid = fn.guid || jQuery.guid++; - } else { - handler = fn; - } - - if ( type === "unload" && name !== "one" ) { - this.one( type, data, fn ); - - } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - jQuery.event.add( this[i], type, handler, data ); - } - } - - return this; - }; -}); - -jQuery.fn.extend({ - unbind: function( type, fn ) { - // Handle object literals - if ( typeof type === "object" && !type.preventDefault ) { - for ( var key in type ) { - this.unbind(key, type[key]); - } - - } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - jQuery.event.remove( this[i], type, fn ); - } - } - - return this; - }, - - delegate: function( selector, types, data, fn ) { - return this.live( types, data, fn, selector ); - }, - - undelegate: function( selector, types, fn ) { - if ( arguments.length === 0 ) { - return this.unbind( "live" ); - - } else { - return this.die( types, null, fn, selector ); - } - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - - triggerHandler: function( type, data ) { - if ( this[0] ) { - return jQuery.event.trigger( type, data, this[0], true ); - } - }, - - toggle: function( fn ) { - // Save reference to arguments for access in closure - var args = arguments, - guid = fn.guid || jQuery.guid++, - i = 0, - toggler = function( event ) { - // Figure out which function to execute - var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; - jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); - - // Make sure that clicks stop - event.preventDefault(); - - // and execute the function - return args[ lastToggle ].apply( this, arguments ) || false; - }; - - // link all the functions, so any of them can unbind this click handler - toggler.guid = guid; - while ( i < args.length ) { - args[ i++ ].guid = guid; - } - - return this.click( toggler ); - }, - - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -}); - -var liveMap = { - focus: "focusin", - blur: "focusout", - mouseenter: "mouseover", - mouseleave: "mouseout" -}; - -jQuery.each(["live", "die"], function( i, name ) { - jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { - var type, i = 0, match, namespaces, preType, - selector = origSelector || this.selector, - context = origSelector ? this : jQuery( this.context ); - - if ( typeof types === "object" && !types.preventDefault ) { - for ( var key in types ) { - context[ name ]( key, data, types[key], selector ); - } - - return this; - } - - if ( name === "die" && !types && - origSelector && origSelector.charAt(0) === "." ) { - - context.unbind( origSelector ); - - return this; - } - - if ( data === false || jQuery.isFunction( data ) ) { - fn = data || returnFalse; - data = undefined; - } - - types = (types || "").split(" "); - - while ( (type = types[ i++ ]) != null ) { - match = rnamespaces.exec( type ); - namespaces = ""; - - if ( match ) { - namespaces = match[0]; - type = type.replace( rnamespaces, "" ); - } - - if ( type === "hover" ) { - types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); - continue; - } - - preType = type; - - if ( liveMap[ type ] ) { - types.push( liveMap[ type ] + namespaces ); - type = type + namespaces; - - } else { - type = (liveMap[ type ] || type) + namespaces; - } - - if ( name === "live" ) { - // bind live handler - for ( var j = 0, l = context.length; j < l; j++ ) { - jQuery.event.add( context[j], "live." + liveConvert( type, selector ), - { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); - } - - } else { - // unbind live handler - context.unbind( "live." + liveConvert( type, selector ), fn ); - } - } - - return this; - }; -}); - -function liveHandler( event ) { - var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret, - elems = [], - selectors = [], - events = jQuery._data( this, "events" ); - - // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911) - if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) { - return; - } - - if ( event.namespace ) { - namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"); - } - - event.liveFired = this; - - var live = events.live.slice(0); - - for ( j = 0; j < live.length; j++ ) { - handleObj = live[j]; - - if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { - selectors.push( handleObj.selector ); - - } else { - live.splice( j--, 1 ); - } - } - - match = jQuery( event.target ).closest( selectors, event.currentTarget ); - - for ( i = 0, l = match.length; i < l; i++ ) { - close = match[i]; - - for ( j = 0; j < live.length; j++ ) { - handleObj = live[j]; - - if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) { - elem = close.elem; - related = null; - - // Those two events require additional checking - if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { - event.type = handleObj.preType; - related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; - - // Make sure not to accidentally match a child element with the same selector - if ( related && jQuery.contains( elem, related ) ) { - related = elem; - } - } - - if ( !related || related !== elem ) { - elems.push({ elem: elem, handleObj: handleObj, level: close.level }); - } - } - } - } - - for ( i = 0, l = elems.length; i < l; i++ ) { - match = elems[i]; - - if ( maxLevel && match.level > maxLevel ) { - break; - } - - event.currentTarget = match.elem; - event.data = match.handleObj.data; - event.handleObj = match.handleObj; - - ret = match.handleObj.origHandler.apply( match.elem, arguments ); - - if ( ret === false || event.isPropagationStopped() ) { - maxLevel = match.level; - - if ( ret === false ) { - stop = false; - } - if ( event.isImmediatePropagationStopped() ) { - break; - } - } - } - - return stop; -} - -function liveConvert( type, selector ) { - return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&"); -} - -jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup error").split(" "), function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - if ( fn == null ) { - fn = data; - data = null; - } - - return arguments.length > 0 ? - this.bind( name, data, fn ) : - this.trigger( name ); - }; - - if ( jQuery.attrFn ) { - jQuery.attrFn[ name ] = true; - } -}); - - - -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){ - -var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, - done = 0, - toString = Object.prototype.toString, - hasDuplicate = false, - baseHasDuplicate = true, - rBackslash = /\\/g, - rNonWord = /\W/; - -// Here we check if the JavaScript engine is using some sort of -// optimization where it does not always call our comparision -// function. If that is the case, discard the hasDuplicate value. -// Thus far that includes Google Chrome. -[0, 0].sort(function() { - baseHasDuplicate = false; - return 0; -}); - -var Sizzle = function( selector, context, results, seed ) { - results = results || []; - context = context || document; - - var origContext = context; - - if ( context.nodeType !== 1 && context.nodeType !== 9 ) { - return []; - } - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - var m, set, checkSet, extra, ret, cur, pop, i, - prune = true, - contextXML = Sizzle.isXML( context ), - parts = [], - soFar = selector; - - // Reset the position of the chunker regexp (start from head) - do { - chunker.exec( "" ); - m = chunker.exec( soFar ); - - if ( m ) { - soFar = m[3]; - - parts.push( m[1] ); - - if ( m[2] ) { - extra = m[3]; - break; - } - } - } while ( m ); - - if ( parts.length > 1 && origPOS.exec( selector ) ) { - - if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { - set = posProcess( parts[0] + parts[1], context ); - - } else { - set = Expr.relative[ parts[0] ] ? - [ context ] : - Sizzle( parts.shift(), context ); - - while ( parts.length ) { - selector = parts.shift(); - - if ( Expr.relative[ selector ] ) { - selector += parts.shift(); - } - - set = posProcess( selector, set ); - } - } - - } else { - // Take a shortcut and set the context if the root selector is an ID - // (but not if it'll be faster if the inner selector is an ID) - if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && - Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { - - ret = Sizzle.find( parts.shift(), context, contextXML ); - context = ret.expr ? - Sizzle.filter( ret.expr, ret.set )[0] : - ret.set[0]; - } - - if ( context ) { - ret = seed ? - { expr: parts.pop(), set: makeArray(seed) } : - Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); - - set = ret.expr ? - Sizzle.filter( ret.expr, ret.set ) : - ret.set; - - if ( parts.length > 0 ) { - checkSet = makeArray( set ); - - } else { - prune = false; - } - - while ( parts.length ) { - cur = parts.pop(); - pop = cur; - - if ( !Expr.relative[ cur ] ) { - cur = ""; - } else { - pop = parts.pop(); - } - - if ( pop == null ) { - pop = context; - } - - Expr.relative[ cur ]( checkSet, pop, contextXML ); - } - - } else { - checkSet = parts = []; - } - } - - if ( !checkSet ) { - checkSet = set; - } - - if ( !checkSet ) { - Sizzle.error( cur || selector ); - } - - if ( toString.call(checkSet) === "[object Array]" ) { - if ( !prune ) { - results.push.apply( results, checkSet ); - - } else if ( context && context.nodeType === 1 ) { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { - results.push( set[i] ); - } - } - - } else { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && checkSet[i].nodeType === 1 ) { - results.push( set[i] ); - } - } - } - - } else { - makeArray( checkSet, results ); - } - - if ( extra ) { - Sizzle( extra, origContext, results, seed ); - Sizzle.uniqueSort( results ); - } - - return results; -}; - -Sizzle.uniqueSort = function( results ) { - if ( sortOrder ) { - hasDuplicate = baseHasDuplicate; - results.sort( sortOrder ); - - if ( hasDuplicate ) { - for ( var i = 1; i < results.length; i++ ) { - if ( results[i] === results[ i - 1 ] ) { - results.splice( i--, 1 ); - } - } - } - } - - return results; -}; - -Sizzle.matches = function( expr, set ) { - return Sizzle( expr, null, null, set ); -}; - -Sizzle.matchesSelector = function( node, expr ) { - return Sizzle( expr, null, null, [node] ).length > 0; -}; - -Sizzle.find = function( expr, context, isXML ) { - var set; - - if ( !expr ) { - return []; - } - - for ( var i = 0, l = Expr.order.length; i < l; i++ ) { - var match, - type = Expr.order[i]; - - if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { - var left = match[1]; - match.splice( 1, 1 ); - - if ( left.substr( left.length - 1 ) !== "\\" ) { - match[1] = (match[1] || "").replace( rBackslash, "" ); - set = Expr.find[ type ]( match, context, isXML ); - - if ( set != null ) { - expr = expr.replace( Expr.match[ type ], "" ); - break; - } - } - } - } - - if ( !set ) { - set = typeof context.getElementsByTagName !== "undefined" ? - context.getElementsByTagName( "*" ) : - []; - } - - return { set: set, expr: expr }; -}; - -Sizzle.filter = function( expr, set, inplace, not ) { - var match, anyFound, - old = expr, - result = [], - curLoop = set, - isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); - - while ( expr && set.length ) { - for ( var type in Expr.filter ) { - if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { - var found, item, - filter = Expr.filter[ type ], - left = match[1]; - - anyFound = false; - - match.splice(1,1); - - if ( left.substr( left.length - 1 ) === "\\" ) { - continue; - } - - if ( curLoop === result ) { - result = []; - } - - if ( Expr.preFilter[ type ] ) { - match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); - - if ( !match ) { - anyFound = found = true; - - } else if ( match === true ) { - continue; - } - } - - if ( match ) { - for ( var i = 0; (item = curLoop[i]) != null; i++ ) { - if ( item ) { - found = filter( item, match, i, curLoop ); - var pass = not ^ !!found; - - if ( inplace && found != null ) { - if ( pass ) { - anyFound = true; - - } else { - curLoop[i] = false; - } - - } else if ( pass ) { - result.push( item ); - anyFound = true; - } - } - } - } - - if ( found !== undefined ) { - if ( !inplace ) { - curLoop = result; - } - - expr = expr.replace( Expr.match[ type ], "" ); - - if ( !anyFound ) { - return []; - } - - break; - } - } - } - - // Improper expression - if ( expr === old ) { - if ( anyFound == null ) { - Sizzle.error( expr ); - - } else { - break; - } - } - - old = expr; - } - - return curLoop; -}; - -Sizzle.error = function( msg ) { - throw "Syntax error, unrecognized expression: " + msg; -}; - -var Expr = Sizzle.selectors = { - order: [ "ID", "NAME", "TAG" ], - - match: { - ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, - ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, - TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, - CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, - POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, - PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ - }, - - leftMatch: {}, - - attrMap: { - "class": "className", - "for": "htmlFor" - }, - - attrHandle: { - href: function( elem ) { - return elem.getAttribute( "href" ); - }, - type: function( elem ) { - return elem.getAttribute( "type" ); - } - }, - - relative: { - "+": function(checkSet, part){ - var isPartStr = typeof part === "string", - isTag = isPartStr && !rNonWord.test( part ), - isPartStrNotTag = isPartStr && !isTag; - - if ( isTag ) { - part = part.toLowerCase(); - } - - for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { - if ( (elem = checkSet[i]) ) { - while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} - - checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? - elem || false : - elem === part; - } - } - - if ( isPartStrNotTag ) { - Sizzle.filter( part, checkSet, true ); - } - }, - - ">": function( checkSet, part ) { - var elem, - isPartStr = typeof part === "string", - i = 0, - l = checkSet.length; - - if ( isPartStr && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - var parent = elem.parentNode; - checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; - } - } - - } else { - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - checkSet[i] = isPartStr ? - elem.parentNode : - elem.parentNode === part; - } - } - - if ( isPartStr ) { - Sizzle.filter( part, checkSet, true ); - } - } - }, - - "": function(checkSet, part, isXML){ - var nodeCheck, - doneName = done++, - checkFn = dirCheck; - - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; - } - - checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); - }, - - "~": function( checkSet, part, isXML ) { - var nodeCheck, - doneName = done++, - checkFn = dirCheck; - - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; - } - - checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); - } - }, - - find: { - ID: function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }, - - NAME: function( match, context ) { - if ( typeof context.getElementsByName !== "undefined" ) { - var ret = [], - results = context.getElementsByName( match[1] ); - - for ( var i = 0, l = results.length; i < l; i++ ) { - if ( results[i].getAttribute("name") === match[1] ) { - ret.push( results[i] ); - } - } - - return ret.length === 0 ? null : ret; - } - }, - - TAG: function( match, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( match[1] ); - } - } - }, - preFilter: { - CLASS: function( match, curLoop, inplace, result, not, isXML ) { - match = " " + match[1].replace( rBackslash, "" ) + " "; - - if ( isXML ) { - return match; - } - - for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { - if ( elem ) { - if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { - if ( !inplace ) { - result.push( elem ); - } - - } else if ( inplace ) { - curLoop[i] = false; - } - } - } - - return false; - }, - - ID: function( match ) { - return match[1].replace( rBackslash, "" ); - }, - - TAG: function( match, curLoop ) { - return match[1].replace( rBackslash, "" ).toLowerCase(); - }, - - CHILD: function( match ) { - if ( match[1] === "nth" ) { - if ( !match[2] ) { - Sizzle.error( match[0] ); - } - - match[2] = match[2].replace(/^\+|\s*/g, ''); - - // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' - var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( - match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || - !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); - - // calculate the numbers (first)n+(last) including if they are negative - match[2] = (test[1] + (test[2] || 1)) - 0; - match[3] = test[3] - 0; - } - else if ( match[2] ) { - Sizzle.error( match[0] ); - } - - // TODO: Move to normal caching system - match[0] = done++; - - return match; - }, - - ATTR: function( match, curLoop, inplace, result, not, isXML ) { - var name = match[1] = match[1].replace( rBackslash, "" ); - - if ( !isXML && Expr.attrMap[name] ) { - match[1] = Expr.attrMap[name]; - } - - // Handle if an un-quoted value was used - match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); - - if ( match[2] === "~=" ) { - match[4] = " " + match[4] + " "; - } - - return match; - }, - - PSEUDO: function( match, curLoop, inplace, result, not ) { - if ( match[1] === "not" ) { - // If we're dealing with a complex expression, or a simple one - if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { - match[3] = Sizzle(match[3], null, null, curLoop); - - } else { - var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); - - if ( !inplace ) { - result.push.apply( result, ret ); - } - - return false; - } - - } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { - return true; - } - - return match; - }, - - POS: function( match ) { - match.unshift( true ); - - return match; - } - }, - - filters: { - enabled: function( elem ) { - return elem.disabled === false && elem.type !== "hidden"; - }, - - disabled: function( elem ) { - return elem.disabled === true; - }, - - checked: function( elem ) { - return elem.checked === true; - }, - - selected: function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - parent: function( elem ) { - return !!elem.firstChild; - }, - - empty: function( elem ) { - return !elem.firstChild; - }, - - has: function( elem, i, match ) { - return !!Sizzle( match[3], elem ).length; - }, - - header: function( elem ) { - return (/h\d/i).test( elem.nodeName ); - }, - - text: function( elem ) { - var attr = elem.getAttribute( "type" ), type = elem.type; - // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) - // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); - }, - - radio: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; - }, - - checkbox: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; - }, - - file: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; - }, - - password: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; - }, - - submit: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "submit" === elem.type; - }, - - image: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; - }, - - reset: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "reset" === elem.type; - }, - - button: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && "button" === elem.type || name === "button"; - }, - - input: function( elem ) { - return (/input|select|textarea|button/i).test( elem.nodeName ); - }, - - focus: function( elem ) { - return elem === elem.ownerDocument.activeElement; - } - }, - setFilters: { - first: function( elem, i ) { - return i === 0; - }, - - last: function( elem, i, match, array ) { - return i === array.length - 1; - }, - - even: function( elem, i ) { - return i % 2 === 0; - }, - - odd: function( elem, i ) { - return i % 2 === 1; - }, - - lt: function( elem, i, match ) { - return i < match[3] - 0; - }, - - gt: function( elem, i, match ) { - return i > match[3] - 0; - }, - - nth: function( elem, i, match ) { - return match[3] - 0 === i; - }, - - eq: function( elem, i, match ) { - return match[3] - 0 === i; - } - }, - filter: { - PSEUDO: function( elem, match, i, array ) { - var name = match[1], - filter = Expr.filters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - - } else if ( name === "contains" ) { - return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0; - - } else if ( name === "not" ) { - var not = match[3]; - - for ( var j = 0, l = not.length; j < l; j++ ) { - if ( not[j] === elem ) { - return false; - } - } - - return true; - - } else { - Sizzle.error( name ); - } - }, - - CHILD: function( elem, match ) { - var type = match[1], - node = elem; - - switch ( type ) { - case "only": - case "first": - while ( (node = node.previousSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - if ( type === "first" ) { - return true; - } - - node = elem; - - case "last": - while ( (node = node.nextSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - return true; - - case "nth": - var first = match[2], - last = match[3]; - - if ( first === 1 && last === 0 ) { - return true; - } - - var doneName = match[0], - parent = elem.parentNode; - - if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { - var count = 0; - - for ( node = parent.firstChild; node; node = node.nextSibling ) { - if ( node.nodeType === 1 ) { - node.nodeIndex = ++count; - } - } - - parent.sizcache = doneName; - } - - var diff = elem.nodeIndex - last; - - if ( first === 0 ) { - return diff === 0; - - } else { - return ( diff % first === 0 && diff / first >= 0 ); - } - } - }, - - ID: function( elem, match ) { - return elem.nodeType === 1 && elem.getAttribute("id") === match; - }, - - TAG: function( elem, match ) { - return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; - }, - - CLASS: function( elem, match ) { - return (" " + (elem.className || elem.getAttribute("class")) + " ") - .indexOf( match ) > -1; - }, - - ATTR: function( elem, match ) { - var name = match[1], - result = Expr.attrHandle[ name ] ? - Expr.attrHandle[ name ]( elem ) : - elem[ name ] != null ? - elem[ name ] : - elem.getAttribute( name ), - value = result + "", - type = match[2], - check = match[4]; - - return result == null ? - type === "!=" : - type === "=" ? - value === check : - type === "*=" ? - value.indexOf(check) >= 0 : - type === "~=" ? - (" " + value + " ").indexOf(check) >= 0 : - !check ? - value && result !== false : - type === "!=" ? - value !== check : - type === "^=" ? - value.indexOf(check) === 0 : - type === "$=" ? - value.substr(value.length - check.length) === check : - type === "|=" ? - value === check || value.substr(0, check.length + 1) === check + "-" : - false; - }, - - POS: function( elem, match, i, array ) { - var name = match[2], - filter = Expr.setFilters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - } - } - } -}; - -var origPOS = Expr.match.POS, - fescape = function(all, num){ - return "\\" + (num - 0 + 1); - }; - -for ( var type in Expr.match ) { - Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); - Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); -} - -var makeArray = function( array, results ) { - array = Array.prototype.slice.call( array, 0 ); - - if ( results ) { - results.push.apply( results, array ); - return results; - } - - return array; -}; - -// Perform a simple check to determine if the browser is capable of -// converting a NodeList to an array using builtin methods. -// Also verifies that the returned array holds DOM nodes -// (which is not the case in the Blackberry browser) -try { - Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; - -// Provide a fallback method if it does not work -} catch( e ) { - makeArray = function( array, results ) { - var i = 0, - ret = results || []; - - if ( toString.call(array) === "[object Array]" ) { - Array.prototype.push.apply( ret, array ); - - } else { - if ( typeof array.length === "number" ) { - for ( var l = array.length; i < l; i++ ) { - ret.push( array[i] ); - } - - } else { - for ( ; array[i]; i++ ) { - ret.push( array[i] ); - } - } - } - - return ret; - }; -} - -var sortOrder, siblingCheck; - -if ( document.documentElement.compareDocumentPosition ) { - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { - return a.compareDocumentPosition ? -1 : 1; - } - - return a.compareDocumentPosition(b) & 4 ? -1 : 1; - }; - -} else { - sortOrder = function( a, b ) { - // The nodes are identical, we can exit early - if ( a === b ) { - hasDuplicate = true; - return 0; - - // Fallback to using sourceIndex (in IE) if it's available on both nodes - } else if ( a.sourceIndex && b.sourceIndex ) { - return a.sourceIndex - b.sourceIndex; - } - - var al, bl, - ap = [], - bp = [], - aup = a.parentNode, - bup = b.parentNode, - cur = aup; - - // If the nodes are siblings (or identical) we can do a quick check - if ( aup === bup ) { - return siblingCheck( a, b ); - - // If no parents were found then the nodes are disconnected - } else if ( !aup ) { - return -1; - - } else if ( !bup ) { - return 1; - } - - // Otherwise they're somewhere else in the tree so we need - // to build up a full list of the parentNodes for comparison - while ( cur ) { - ap.unshift( cur ); - cur = cur.parentNode; - } - - cur = bup; - - while ( cur ) { - bp.unshift( cur ); - cur = cur.parentNode; - } - - al = ap.length; - bl = bp.length; - - // Start walking down the tree looking for a discrepancy - for ( var i = 0; i < al && i < bl; i++ ) { - if ( ap[i] !== bp[i] ) { - return siblingCheck( ap[i], bp[i] ); - } - } - - // We ended someplace up the tree so do a sibling check - return i === al ? - siblingCheck( a, bp[i], -1 ) : - siblingCheck( ap[i], b, 1 ); - }; - - siblingCheck = function( a, b, ret ) { - if ( a === b ) { - return ret; - } - - var cur = a.nextSibling; - - while ( cur ) { - if ( cur === b ) { - return -1; - } - - cur = cur.nextSibling; - } - - return 1; - }; -} - -// Utility function for retreiving the text value of an array of DOM nodes -Sizzle.getText = function( elems ) { - var ret = "", elem; - - for ( var i = 0; elems[i]; i++ ) { - elem = elems[i]; - - // Get the text from text nodes and CDATA nodes - if ( elem.nodeType === 3 || elem.nodeType === 4 ) { - ret += elem.nodeValue; - - // Traverse everything else, except comment nodes - } else if ( elem.nodeType !== 8 ) { - ret += Sizzle.getText( elem.childNodes ); - } - } - - return ret; -}; - -// Check to see if the browser returns elements by name when -// querying by getElementById (and provide a workaround) -(function(){ - // We're going to inject a fake input element with a specified name - var form = document.createElement("div"), - id = "script" + (new Date()).getTime(), - root = document.documentElement; - - form.innerHTML = ""; - - // Inject it into the root element, check its status, and remove it quickly - root.insertBefore( form, root.firstChild ); - - // The workaround has to do additional checks after a getElementById - // Which slows things down for other browsers (hence the branching) - if ( document.getElementById( id ) ) { - Expr.find.ID = function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - - return m ? - m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? - [m] : - undefined : - []; - } - }; - - Expr.filter.ID = function( elem, match ) { - var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); - - return elem.nodeType === 1 && node && node.nodeValue === match; - }; - } - - root.removeChild( form ); - - // release memory in IE - root = form = null; -})(); - -(function(){ - // Check to see if the browser returns only elements - // when doing getElementsByTagName("*") - - // Create a fake element - var div = document.createElement("div"); - div.appendChild( document.createComment("") ); - - // Make sure no comments are found - if ( div.getElementsByTagName("*").length > 0 ) { - Expr.find.TAG = function( match, context ) { - var results = context.getElementsByTagName( match[1] ); - - // Filter out possible comments - if ( match[1] === "*" ) { - var tmp = []; - - for ( var i = 0; results[i]; i++ ) { - if ( results[i].nodeType === 1 ) { - tmp.push( results[i] ); - } - } - - results = tmp; - } - - return results; - }; - } - - // Check to see if an attribute returns normalized href attributes - div.innerHTML = ""; - - if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && - div.firstChild.getAttribute("href") !== "#" ) { - - Expr.attrHandle.href = function( elem ) { - return elem.getAttribute( "href", 2 ); - }; - } - - // release memory in IE - div = null; -})(); - -if ( document.querySelectorAll ) { - (function(){ - var oldSizzle = Sizzle, - div = document.createElement("div"), - id = "__sizzle__"; - - div.innerHTML = "

      "; - - // Safari can't handle uppercase or unicode characters when - // in quirks mode. - if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { - return; - } - - Sizzle = function( query, context, extra, seed ) { - context = context || document; - - // Only use querySelectorAll on non-XML documents - // (ID selectors don't work in non-HTML documents) - if ( !seed && !Sizzle.isXML(context) ) { - // See if we find a selector to speed up - var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); - - if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { - // Speed-up: Sizzle("TAG") - if ( match[1] ) { - return makeArray( context.getElementsByTagName( query ), extra ); - - // Speed-up: Sizzle(".CLASS") - } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { - return makeArray( context.getElementsByClassName( match[2] ), extra ); - } - } - - if ( context.nodeType === 9 ) { - // Speed-up: Sizzle("body") - // The body element only exists once, optimize finding it - if ( query === "body" && context.body ) { - return makeArray( [ context.body ], extra ); - - // Speed-up: Sizzle("#ID") - } else if ( match && match[3] ) { - var elem = context.getElementById( match[3] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id === match[3] ) { - return makeArray( [ elem ], extra ); - } - - } else { - return makeArray( [], extra ); - } - } - - try { - return makeArray( context.querySelectorAll(query), extra ); - } catch(qsaError) {} - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - var oldContext = context, - old = context.getAttribute( "id" ), - nid = old || id, - hasParent = context.parentNode, - relativeHierarchySelector = /^\s*[+~]/.test( query ); - - if ( !old ) { - context.setAttribute( "id", nid ); - } else { - nid = nid.replace( /'/g, "\\$&" ); - } - if ( relativeHierarchySelector && hasParent ) { - context = context.parentNode; - } - - try { - if ( !relativeHierarchySelector || hasParent ) { - return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); - } - - } catch(pseudoError) { - } finally { - if ( !old ) { - oldContext.removeAttribute( "id" ); - } - } - } - } - - return oldSizzle(query, context, extra, seed); - }; - - for ( var prop in oldSizzle ) { - Sizzle[ prop ] = oldSizzle[ prop ]; - } - - // release memory in IE - div = null; - })(); -} - -(function(){ - var html = document.documentElement, - matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; - - if ( matches ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9 fails this) - var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), - pseudoWorks = false; - - try { - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( document.documentElement, "[test!='']:sizzle" ); - - } catch( pseudoError ) { - pseudoWorks = true; - } - - Sizzle.matchesSelector = function( node, expr ) { - // Make sure that attribute selectors are quoted - expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); - - if ( !Sizzle.isXML( node ) ) { - try { - if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { - var ret = matches.call( node, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || !disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9, so check for that - node.document && node.document.nodeType !== 11 ) { - return ret; - } - } - } catch(e) {} - } - - return Sizzle(expr, null, null, [node]).length > 0; - }; - } -})(); - -(function(){ - var div = document.createElement("div"); - - div.innerHTML = "
      "; - - // Opera can't find a second classname (in 9.6) - // Also, make sure that getElementsByClassName actually exists - if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { - return; - } - - // Safari caches class attributes, doesn't catch changes (in 3.2) - div.lastChild.className = "e"; - - if ( div.getElementsByClassName("e").length === 1 ) { - return; - } - - Expr.order.splice(1, 0, "CLASS"); - Expr.find.CLASS = function( match, context, isXML ) { - if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { - return context.getElementsByClassName(match[1]); - } - }; - - // release memory in IE - div = null; -})(); - -function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - - if ( elem ) { - var match = false; - - elem = elem[dir]; - - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 && !isXML ){ - elem.sizcache = doneName; - elem.sizset = i; - } - - if ( elem.nodeName.toLowerCase() === cur ) { - match = elem; - break; - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - - if ( elem ) { - var match = false; - - elem = elem[dir]; - - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 ) { - if ( !isXML ) { - elem.sizcache = doneName; - elem.sizset = i; - } - - if ( typeof cur !== "string" ) { - if ( elem === cur ) { - match = true; - break; - } - - } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { - match = elem; - break; - } - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -if ( document.documentElement.contains ) { - Sizzle.contains = function( a, b ) { - return a !== b && (a.contains ? a.contains(b) : true); - }; - -} else if ( document.documentElement.compareDocumentPosition ) { - Sizzle.contains = function( a, b ) { - return !!(a.compareDocumentPosition(b) & 16); - }; - -} else { - Sizzle.contains = function() { - return false; - }; -} - -Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; - - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -var posProcess = function( selector, context ) { - var match, - tmpSet = [], - later = "", - root = context.nodeType ? [context] : context; - - // Position selectors must be done after the filter - // And so must :not(positional) so we move all PSEUDOs to the end - while ( (match = Expr.match.PSEUDO.exec( selector )) ) { - later += match[0]; - selector = selector.replace( Expr.match.PSEUDO, "" ); - } - - selector = Expr.relative[selector] ? selector + "*" : selector; - - for ( var i = 0, l = root.length; i < l; i++ ) { - Sizzle( selector, root[i], tmpSet ); - } - - return Sizzle.filter( later, tmpSet ); -}; - -// EXPOSE -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.filters; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - -})(); - - -var runtil = /Until$/, - rparentsprev = /^(?:parents|prevUntil|prevAll)/, - // Note: This RegExp should be improved, or likely pulled from Sizzle - rmultiselector = /,/, - isSimple = /^.[^:#\[\.,]*$/, - slice = Array.prototype.slice, - POS = jQuery.expr.match.POS, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend({ - find: function( selector ) { - var self = this, - i, l; - - if ( typeof selector !== "string" ) { - return jQuery( selector ).filter(function() { - for ( i = 0, l = self.length; i < l; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }); - } - - var ret = this.pushStack( "", "find", selector ), - length, n, r; - - for ( i = 0, l = this.length; i < l; i++ ) { - length = ret.length; - jQuery.find( selector, this[i], ret ); - - if ( i > 0 ) { - // Make sure that the results are unique - for ( n = length; n < ret.length; n++ ) { - for ( r = 0; r < length; r++ ) { - if ( ret[r] === ret[n] ) { - ret.splice(n--, 1); - break; - } - } - } - } - } - - return ret; - }, - - has: function( target ) { - var targets = jQuery( target ); - return this.filter(function() { - for ( var i = 0, l = targets.length; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector, false), "not", selector); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true), "filter", selector ); - }, - - is: function( selector ) { - return !!selector && ( typeof selector === "string" ? - jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0 ); - }, - - closest: function( selectors, context ) { - var ret = [], i, l, cur = this[0]; - - // Array - if ( jQuery.isArray( selectors ) ) { - var match, selector, - matches = {}, - level = 1; - - if ( cur && selectors.length ) { - for ( i = 0, l = selectors.length; i < l; i++ ) { - selector = selectors[i]; - - if ( !matches[ selector ] ) { - matches[ selector ] = POS.test( selector ) ? - jQuery( selector, context || this.context ) : - selector; - } - } - - while ( cur && cur.ownerDocument && cur !== context ) { - for ( selector in matches ) { - match = matches[ selector ]; - - if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) { - ret.push({ selector: selector, elem: cur, level: level }); - } - } - - cur = cur.parentNode; - level++; - } - } - - return ret; - } - - // String - var pos = POS.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( i = 0, l = this.length; i < l; i++ ) { - cur = this[i]; - - while ( cur ) { - if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { - ret.push( cur ); - break; - - } else { - cur = cur.parentNode; - if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { - break; - } - } - } - } - - ret = ret.length > 1 ? jQuery.unique( ret ) : ret; - - return this.pushStack( ret, "closest", selectors ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - if ( !elem || typeof elem === "string" ) { - return jQuery.inArray( this[0], - // If it receives a string, the selector is used - // If it receives nothing, the siblings are used - elem ? jQuery( elem ) : this.parent().children() ); - } - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context ) : - jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? - all : - jQuery.unique( all ) ); - }, - - andSelf: function() { - return this.add( this.prevObject ); - } -}); - -// A painfully simple check to see if an element is disconnected -// from a document (should be improved, where feasible). -function isDisconnected( node ) { - return !node || !node.parentNode || node.parentNode.nodeType === 11; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return jQuery.nth( elem, 2, "nextSibling" ); - }, - prev: function( elem ) { - return jQuery.nth( elem, 2, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( elem.parentNode.firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.makeArray( elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ), - // The variable 'args' was introduced in - // https://github.com/jquery/jquery/commit/52a0238 - // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. - // http://code.google.com/p/v8/issues/detail?id=1050 - args = slice.call(arguments); - - if ( !runtil.test( name ) ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; - - if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - - return this.pushStack( ret, name, args.join(",") ); - }; -}); - -jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 ? - jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : - jQuery.find.matches(expr, elems); - }, - - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - nth: function( cur, result, dir, elem ) { - result = result || 1; - var num = 0; - - for ( ; cur; cur = cur[dir] ) { - if ( cur.nodeType === 1 && ++num === result ) { - break; - } - } - - return cur; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, keep ) { - - // Can't pass null or undefined to indexOf in Firefox 4 - // Set to 0 to skip string check - qualifier = qualifier || 0; - - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - var retVal = !!qualifier.call( elem, i, elem ); - return retVal === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem, i ) { - return (elem === qualifier) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem, i ) { - return (jQuery.inArray( elem, qualifier ) >= 0) === keep; - }); -} - - - - -var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, - rtagName = /<([\w:]+)/, - rtbody = /", "" ], - legend: [ 1, "
      ", "
      " ], - thead: [ 1, "", "
      " ], - tr: [ 2, "", "
      " ], - td: [ 3, "", "
      " ], - col: [ 2, "", "
      " ], - area: [ 1, "", "" ], - _default: [ 0, "", "" ] - }; - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// IE can't serialize and - - - -## Documentation - -### Collections - -* [forEach](#forEach) -* [map](#map) -* [filter](#filter) -* [reject](#reject) -* [reduce](#reduce) -* [detect](#detect) -* [sortBy](#sortBy) -* [some](#some) -* [every](#every) -* [concat](#concat) - -### Control Flow - -* [series](#series) -* [parallel](#parallel) -* [whilst](#whilst) -* [until](#until) -* [waterfall](#waterfall) -* [queue](#queue) -* [auto](#auto) -* [iterator](#iterator) -* [apply](#apply) -* [nextTick](#nextTick) - -### Utils - -* [memoize](#memoize) -* [unmemoize](#unmemoize) -* [log](#log) -* [dir](#dir) -* [noConflict](#noConflict) - - -## Collections - - -### forEach(arr, iterator, callback) - -Applies an iterator function to each item in an array, in parallel. -The iterator is called with an item from the list and a callback for when it -has finished. If the iterator passes an error to this callback, the main -callback for the forEach function is immediately called with the error. - -Note, that since this function applies the iterator to each item in parallel -there is no guarantee that the iterator functions will complete in order. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(err) - A callback which is called after all the iterator functions - have finished, or an error has occurred. - -__Example__ - - // assuming openFiles is an array of file names and saveFile is a function - // to save the modified contents of that file: - - async.forEach(openFiles, saveFile, function(err){ - // if any of the saves produced an error, err would equal that error - }); - ---------------------------------------- - - -### forEachSeries(arr, iterator, callback) - -The same as forEach only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. This means the iterator functions will complete in order. - - ---------------------------------------- - - -### forEachLimit(arr, limit, iterator, callback) - -The same as forEach only the iterator is applied to batches of items in the -array, in series. The next batch of iterators is only called once the current -one has completed processing. - -__Arguments__ - -* arr - An array to iterate over. -* limit - How many items should be in each batch. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(err) - A callback which is called after all the iterator functions - have finished, or an error has occurred. - -__Example__ - - // Assume documents is an array of JSON objects and requestApi is a - // function that interacts with a rate-limited REST api. - - async.forEachLimit(documents, 20, requestApi, function(err){ - // if any of the saves produced an error, err would equal that error - }); ---------------------------------------- - - -### map(arr, iterator, callback) - -Produces a new array of values by mapping each value in the given array through -the iterator function. The iterator is called with an item from the array and a -callback for when it has finished processing. The callback takes 2 arguments, -an error and the transformed item from the array. If the iterator passes an -error to this callback, the main callback for the map function is immediately -called with the error. - -Note, that since this function applies the iterator to each item in parallel -there is no guarantee that the iterator functions will complete in order, however -the results array will be in the same order as the original array. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed - with an error (which can be null) and a transformed item. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array of the - transformed items from the original array. - -__Example__ - - async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file - }); - ---------------------------------------- - - -### mapSeries(arr, iterator, callback) - -The same as map only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - - ---------------------------------------- - - -### filter(arr, iterator, callback) - -__Alias:__ select - -Returns a new array of all the values which pass an async truth test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like path.exists. This operation is -performed in parallel, but the results array will be in the same order as the -original. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(results) - A callback which is called after all the iterator - functions have finished. - -__Example__ - - async.filter(['file1','file2','file3'], path.exists, function(results){ - // results now equals an array of the existing files - }); - ---------------------------------------- - - -### filterSeries(arr, iterator, callback) - -__alias:__ selectSeries - -The same as filter only the iterator is applied to each item in the array in -series. The next iterator is only called once the current one has completed -processing. The results array will be in the same order as the original. - ---------------------------------------- - - -### reject(arr, iterator, callback) - -The opposite of filter. Removes values that pass an async truth test. - ---------------------------------------- - - -### rejectSeries(arr, iterator, callback) - -The same as filter, only the iterator is applied to each item in the array -in series. - - ---------------------------------------- - - -### reduce(arr, memo, iterator, callback) - -__aliases:__ inject, foldl - -Reduces a list of values into a single value using an async iterator to return -each successive step. Memo is the initial state of the reduction. This -function only operates in series. For performance reasons, it may make sense to -split a call to this function into a parallel map, then use the normal -Array.prototype.reduce on the results. This function is for situations where -each step in the reduction needs to be async, if you can get the data before -reducing it then its probably a good idea to do so. - -__Arguments__ - -* arr - An array to iterate over. -* memo - The initial state of the reduction. -* iterator(memo, item, callback) - A function applied to each item in the - array to produce the next step in the reduction. The iterator is passed a - callback which accepts an optional error as its first argument, and the state - of the reduction as the second. If an error is passed to the callback, the - reduction is stopped and the main callback is immediately called with the - error. -* callback(err, result) - A callback which is called after all the iterator - functions have finished. Result is the reduced value. - -__Example__ - - async.reduce([1,2,3], 0, function(memo, item, callback){ - // pointless async: - process.nextTick(function(){ - callback(null, memo + item) - }); - }, function(err, result){ - // result is now equal to the last value of memo, which is 6 - }); - ---------------------------------------- - - -### reduceRight(arr, memo, iterator, callback) - -__Alias:__ foldr - -Same as reduce, only operates on the items in the array in reverse order. - - ---------------------------------------- - - -### detect(arr, iterator, callback) - -Returns the first value in a list that passes an async truth test. The -iterator is applied in parallel, meaning the first iterator to return true will -fire the detect callback with that result. That means the result might not be -the first item in the original array (in terms of order) that passes the test. - -If order within the original array is important then look at detectSeries. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(result) - A callback which is called as soon as any iterator returns - true, or after all the iterator functions have finished. Result will be - the first item in the array that passes the truth test (iterator) or the - value undefined if none passed. - -__Example__ - - async.detect(['file1','file2','file3'], path.exists, function(result){ - // result now equals the first file in the list that exists - }); - ---------------------------------------- - - -### detectSeries(arr, iterator, callback) - -The same as detect, only the iterator is applied to each item in the array -in series. This means the result is always the first in the original array (in -terms of array order) that passes the truth test. - - ---------------------------------------- - - -### sortBy(arr, iterator, callback) - -Sorts a list by the results of running each value through an async iterator. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed - with an error (which can be null) and a value to use as the sort criteria. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is the items from - the original array sorted by the values returned by the iterator calls. - -__Example__ - - async.sortBy(['file1','file2','file3'], function(file, callback){ - fs.stat(file, function(err, stats){ - callback(err, stats.mtime); - }); - }, function(err, results){ - // results is now the original array of files sorted by - // modified date - }); - - ---------------------------------------- - - -### some(arr, iterator, callback) - -__Alias:__ any - -Returns true if at least one element in the array satisfies an async test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like path.exists. Once any iterator -call returns true, the main callback is immediately called. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(result) - A callback which is called as soon as any iterator returns - true, or after all the iterator functions have finished. Result will be - either true or false depending on the values of the async tests. - -__Example__ - - async.some(['file1','file2','file3'], path.exists, function(result){ - // if result is true then at least one of the files exists - }); - ---------------------------------------- - - -### every(arr, iterator, callback) - -__Alias:__ all - -Returns true if every element in the array satisfies an async test. -_The callback for each iterator call only accepts a single argument of true or -false, it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like path.exists. - -__Arguments__ - -* arr - An array to iterate over. -* iterator(item, callback) - A truth test to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed. -* callback(result) - A callback which is called after all the iterator - functions have finished. Result will be either true or false depending on - the values of the async tests. - -__Example__ - - async.every(['file1','file2','file3'], path.exists, function(result){ - // if result is true then every file exists - }); - ---------------------------------------- - - -### concat(arr, iterator, callback) - -Applies an iterator to each item in a list, concatenating the results. Returns the -concatenated list. The iterators are called in parallel, and the results are -concatenated as they return. There is no guarantee that the results array will -be returned in the original order of the arguments passed to the iterator function. - -__Arguments__ - -* arr - An array to iterate over -* iterator(item, callback) - A function to apply to each item in the array. - The iterator is passed a callback which must be called once it has completed - with an error (which can be null) and an array of results. -* callback(err, results) - A callback which is called after all the iterator - functions have finished, or an error has occurred. Results is an array containing - the concatenated results of the iterator function. - -__Example__ - - async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ - // files is now a list of filenames that exist in the 3 directories - }); - ---------------------------------------- - - -### concatSeries(arr, iterator, callback) - -Same as async.concat, but executes in series instead of parallel. - - -## Control Flow - - -### series(tasks, [callback]) - -Run an array of functions in series, each one running once the previous -function has completed. If any functions in the series pass an error to its -callback, no more functions are run and the callback for the series is -immediately called with the value of the error. Once the tasks have completed, -the results are passed to the final callback as an array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final callback as an object -instead of an array. This can be a more readable way of handling results from -async.series. - - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed - a callback it must call on completion. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets an array of all the arguments passed to - the callbacks used in the array. - -__Example__ - - async.series([ - function(callback){ - // do some stuff ... - callback(null, 'one'); - }, - function(callback){ - // do some more stuff ... - callback(null, 'two'); - }, - ], - // optional callback - function(err, results){ - // results is now equal to ['one', 'two'] - }); - - - // an example using an object instead of an array - async.series({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - }, - }, - function(err, results) { - // results is now equal to: {one: 1, two: 2} - }); - - ---------------------------------------- - - -### parallel(tasks, [callback]) - -Run an array of functions in parallel, without waiting until the previous -function has completed. If any of the functions pass an error to its -callback, the main callback is immediately called with the value of the error. -Once the tasks have completed, the results are passed to the final callback as an -array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final callback as an object -instead of an array. This can be a more readable way of handling results from -async.parallel. - - -__Arguments__ - -* tasks - An array or object containing functions to run, each function is passed a - callback it must call on completion. -* callback(err, results) - An optional callback to run once all the functions - have completed. This function gets an array of all the arguments passed to - the callbacks used in the array. - -__Example__ - - async.parallel([ - function(callback){ - setTimeout(function(){ - callback(null, 'one'); - }, 200); - }, - function(callback){ - setTimeout(function(){ - callback(null, 'two'); - }, 100); - }, - ], - // optional callback - function(err, results){ - // the results array will equal ['one','two'] even though - // the second function had a shorter timeout. - }); - - - // an example using an object instead of an array - async.parallel({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - }, - }, - function(err, results) { - // results is now equals to: {one: 1, two: 2} - }); - - ---------------------------------------- - - -### whilst(test, fn, callback) - -Repeatedly call fn, while test returns true. Calls the callback when stopped, -or an error occurs. - -__Arguments__ - -* test() - synchronous truth test to perform before each execution of fn. -* fn(callback) - A function to call each time the test passes. The function is - passed a callback which must be called once it has completed with an optional - error as the first argument. -* callback(err) - A callback which is called after the test fails and repeated - execution of fn has stopped. - -__Example__ - - var count = 0; - - async.whilst( - function () { return count < 5; }, - function (callback) { - count++; - setTimeout(callback, 1000); - }, - function (err) { - // 5 seconds have passed - } - ); - - ---------------------------------------- - - -### until(test, fn, callback) - -Repeatedly call fn, until test returns true. Calls the callback when stopped, -or an error occurs. - -The inverse of async.whilst. - - ---------------------------------------- - - -### waterfall(tasks, [callback]) - -Runs an array of functions in series, each passing their results to the next in -the array. However, if any of the functions pass an error to the callback, the -next function is not executed and the main callback is immediately called with -the error. - -__Arguments__ - -* tasks - An array of functions to run, each function is passed a callback it - must call on completion. -* callback(err, [results]) - An optional callback to run once all the functions - have completed. This will be passed the results of the last task's callback. - - - -__Example__ - - async.waterfall([ - function(callback){ - callback(null, 'one', 'two'); - }, - function(arg1, arg2, callback){ - callback(null, 'three'); - }, - function(arg1, callback){ - // arg1 now equals 'three' - callback(null, 'done'); - } - ], function (err, result) { - // result now equals 'done' - }); - - ---------------------------------------- - - -### queue(worker, concurrency) - -Creates a queue object with the specified concurrency. Tasks added to the -queue will be processed in parallel (up to the concurrency limit). If all -workers are in progress, the task is queued until one is available. Once -a worker has completed a task, the task's callback is called. - -__Arguments__ - -* worker(task, callback) - An asynchronous function for processing a queued - task. -* concurrency - An integer for determining how many worker functions should be - run in parallel. - -__Queue objects__ - -The queue object returned by this function has the following properties and -methods: - -* length() - a function returning the number of items waiting to be processed. -* concurrency - an integer for determining how many worker functions should be - run in parallel. This property can be changed after a queue is created to - alter the concurrency on-the-fly. -* push(task, [callback]) - add a new task to the queue, the callback is called - once the worker has finished processing the task. - instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list. -* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued -* empty - a callback that is called when the last item from the queue is given to a worker -* drain - a callback that is called when the last item from the queue has returned from the worker - -__Example__ - - // create a queue object with concurrency 2 - - var q = async.queue(function (task, callback) { - console.log('hello ' + task.name); - callback(); - }, 2); - - - // assign a callback - q.drain = function() { - console.log('all items have been processed'); - } - - // add some items to the queue - - q.push({name: 'foo'}, function (err) { - console.log('finished processing foo'); - }); - q.push({name: 'bar'}, function (err) { - console.log('finished processing bar'); - }); - - // add some items to the queue (batch-wise) - - q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { - console.log('finished processing bar'); - }); - - ---------------------------------------- - - -### auto(tasks, [callback]) - -Determines the best order for running functions 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. If any of -the functions pass an error to their callback, that function will not complete -(so any other functions depending on it will not run) and the main callback -will be called immediately with the error. Functions also receive an object -containing the results of functions which have completed so far. - -__Arguments__ - -* tasks - An object literal containing named functions or an array of - requirements, with the function itself the last item in the array. The key - used for each function or array is used when specifying requirements. The - syntax is easier to understand by looking at the example. -* callback(err, results) - An optional callback which is called when all the - tasks have been completed. The callback will receive an error as an argument - if any tasks pass an error to their callback. If all tasks complete - successfully, it will receive an object containing their results. - -__Example__ - - async.auto({ - get_data: function(callback){ - // async code to get some data - }, - make_folder: function(callback){ - // async code to create a directory to store a file in - // this is run at the same time as getting the data - }, - write_file: ['get_data', 'make_folder', function(callback){ - // once there is some data and the directory exists, - // write the data to a file in the directory - callback(null, filename); - }], - email_link: ['write_file', function(callback, results){ - // once the file is written let's email a link to it... - // results.write_file contains the filename returned by write_file. - }] - }); - -This is a fairly trivial example, but to do this using the basic parallel and -series functions would look like this: - - async.parallel([ - function(callback){ - // async code to get some data - }, - function(callback){ - // async code to create a directory to store a file in - // this is run at the same time as getting the data - } - ], - function(results){ - async.series([ - function(callback){ - // once there is some data and the directory exists, - // write the data to a file in the directory - }, - email_link: function(callback){ - // once the file is written let's email a link to it... - } - ]); - }); - -For a complicated series of async tasks using the auto function makes adding -new tasks much easier and makes the code more readable. - - ---------------------------------------- - - -### iterator(tasks) - -Creates an iterator function which calls the next function in the array, -returning a continuation to call the next one after that. Its also possible to -'peek' the next iterator by doing iterator.next(). - -This function is used internally by the async module but can be useful when -you want to manually control the flow of functions in series. - -__Arguments__ - -* tasks - An array of functions to run, each function is passed a callback it - must call on completion. - -__Example__ - - var iterator = async.iterator([ - function(){ sys.p('one'); }, - function(){ sys.p('two'); }, - function(){ sys.p('three'); } - ]); - - node> var iterator2 = iterator(); - 'one' - node> var iterator3 = iterator2(); - 'two' - node> iterator3(); - 'three' - node> var nextfn = iterator2.next(); - node> nextfn(); - 'three' - - ---------------------------------------- - - -### apply(function, arguments..) - -Creates a continuation function with some arguments already applied, a useful -shorthand when combined with other control flow functions. Any arguments -passed to the returned function are added to the arguments originally passed -to apply. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to automatically apply when the - continuation is called. - -__Example__ - - // using apply - - async.parallel([ - async.apply(fs.writeFile, 'testfile1', 'test1'), - async.apply(fs.writeFile, 'testfile2', 'test2'), - ]); - - - // the same process without using apply - - async.parallel([ - function(callback){ - fs.writeFile('testfile1', 'test1', callback); - }, - function(callback){ - fs.writeFile('testfile2', 'test2', callback); - }, - ]); - -It's possible to pass any number of additional arguments when calling the -continuation: - - node> var fn = async.apply(sys.puts, 'one'); - node> fn('two', 'three'); - one - two - three - ---------------------------------------- - - -### nextTick(callback) - -Calls the callback on a later loop around the event loop. In node.js this just -calls process.nextTick, in the browser it falls back to setTimeout(callback, 0), -which means other higher priority events may precede the execution of the callback. - -This is used internally for browser-compatibility purposes. - -__Arguments__ - -* callback - The function to call on a later loop around the event loop. - -__Example__ - - var call_order = []; - async.nextTick(function(){ - call_order.push('two'); - // call_order now equals ['one','two] - }); - call_order.push('one') - - -## Utils - - -### memoize(fn, [hasher]) - -Caches the results of an async function. When creating a hash to store function -results against, the callback is omitted from the hash and an optional hash -function can be used. - -__Arguments__ - -* fn - the function you to proxy and cache results from. -* hasher - an optional function for generating a custom hash for storing - results, it has all the arguments applied to it apart from the callback, and - must be synchronous. - -__Example__ - - var slow_fn = function (name, callback) { - // do something - callback(null, result); - }; - var fn = async.memoize(slow_fn); - - // fn can now be used as if it were slow_fn - fn('some name', function () { - // callback - }); - - -### unmemoize(fn) - -Undoes a memoized function, reverting it to the original, unmemoized -form. Comes handy in tests. - -__Arguments__ - -* fn - the memoized function - - -### log(function, arguments) - -Logs the result of an async function to the console. Only works in node.js or -in browsers that support console.log and console.error (such as FF and Chrome). -If multiple arguments are returned from the async function, console.log is -called on each argument in order. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to apply to the function. - -__Example__ - - var hello = function(name, callback){ - setTimeout(function(){ - callback(null, 'hello ' + name); - }, 1000); - }; - - node> async.log(hello, 'world'); - 'hello world' - - ---------------------------------------- - - -### dir(function, arguments) - -Logs the result of an async function to the console using console.dir to -display the properties of the resulting object. Only works in node.js or -in browsers that support console.dir and console.error (such as FF and Chrome). -If multiple arguments are returned from the async function, console.dir is -called on each argument in order. - -__Arguments__ - -* function - The function you want to eventually apply all arguments to. -* arguments... - Any number of arguments to apply to the function. - -__Example__ - - var hello = function(name, callback){ - setTimeout(function(){ - callback(null, {hello: name}); - }, 1000); - }; - - node> async.dir(hello, 'world'); - {hello: 'world'} - - ---------------------------------------- - - -### noConflict() - -Changes the value of async back to its original value, returning a reference to the -async object. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/async/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/async/index.js deleted file mode 100644 index 8e238453..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/async/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// This file is just added for convenience so this repository can be -// directly checked out into a project's deps folder -module.exports = require('./lib/async'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/async/lib/async.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/async/lib/async.js deleted file mode 100644 index 7cc4f5ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/async/lib/async.js +++ /dev/null @@ -1,692 +0,0 @@ -/*global setTimeout: false, console: false */ -(function () { - - var async = {}; - - // global on the server, window in the browser - var root = this, - previous_async = root.async; - - if (typeof module !== 'undefined' && module.exports) { - module.exports = async; - } - else { - root.async = async; - } - - async.noConflict = function () { - root.async = previous_async; - return async; - }; - - //// cross-browser compatiblity functions //// - - var _forEach = function (arr, iterator) { - if (arr.forEach) { - return arr.forEach(iterator); - } - for (var i = 0; i < arr.length; i += 1) { - iterator(arr[i], i, arr); - } - }; - - var _map = function (arr, iterator) { - if (arr.map) { - return arr.map(iterator); - } - var results = []; - _forEach(arr, function (x, i, a) { - results.push(iterator(x, i, a)); - }); - return results; - }; - - var _reduce = function (arr, iterator, memo) { - if (arr.reduce) { - return arr.reduce(iterator, memo); - } - _forEach(arr, function (x, i, a) { - memo = iterator(memo, x, i, a); - }); - return memo; - }; - - var _keys = function (obj) { - if (Object.keys) { - return Object.keys(obj); - } - var keys = []; - for (var k in obj) { - if (obj.hasOwnProperty(k)) { - keys.push(k); - } - } - return keys; - }; - - //// exported async module functions //// - - //// nextTick implementation with browser-compatible fallback //// - if (typeof process === 'undefined' || !(process.nextTick)) { - async.nextTick = function (fn) { - setTimeout(fn, 0); - }; - } - else { - async.nextTick = process.nextTick; - } - - async.forEach = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - _forEach(arr, function (x) { - iterator(x, function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed === arr.length) { - callback(null); - } - } - }); - }); - }; - - async.forEachSeries = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - var iterate = function () { - iterator(arr[completed], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed === arr.length) { - callback(null); - } - else { - iterate(); - } - } - }); - }; - iterate(); - }; - - async.forEachLimit = function (arr, limit, iterator, callback) { - callback = callback || function () {}; - if (!arr.length || limit <= 0) { - return callback(); - } - var completed = 0; - var started = 0; - var running = 0; - - (function replenish () { - if (completed === arr.length) { - return callback(); - } - - while (running < limit && started < arr.length) { - started += 1; - running += 1; - iterator(arr[started - 1], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - running -= 1; - if (completed === arr.length) { - callback(); - } - else { - replenish(); - } - } - }); - } - })(); - }; - - - var doParallel = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.forEach].concat(args)); - }; - }; - var doSeries = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.forEachSeries].concat(args)); - }; - }; - - - var _asyncMap = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (err, v) { - results[x.index] = v; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - }; - async.map = doParallel(_asyncMap); - async.mapSeries = doSeries(_asyncMap); - - - // reduce only has a series version, as doing reduce in parallel won't - // work in many situations. - async.reduce = function (arr, memo, iterator, callback) { - async.forEachSeries(arr, function (x, callback) { - iterator(memo, x, function (err, v) { - memo = v; - callback(err); - }); - }, function (err) { - callback(err, memo); - }); - }; - // inject alias - async.inject = async.reduce; - // foldl alias - async.foldl = async.reduce; - - async.reduceRight = function (arr, memo, iterator, callback) { - var reversed = _map(arr, function (x) { - return x; - }).reverse(); - async.reduce(reversed, memo, iterator, callback); - }; - // foldr alias - async.foldr = async.reduceRight; - - var _filter = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.filter = doParallel(_filter); - async.filterSeries = doSeries(_filter); - // select alias - async.select = async.filter; - async.selectSeries = async.filterSeries; - - var _reject = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (!v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.reject = doParallel(_reject); - async.rejectSeries = doSeries(_reject); - - var _detect = function (eachfn, arr, iterator, main_callback) { - eachfn(arr, function (x, callback) { - iterator(x, function (result) { - if (result) { - main_callback(x); - main_callback = function () {}; - } - else { - callback(); - } - }); - }, function (err) { - main_callback(); - }); - }; - async.detect = doParallel(_detect); - async.detectSeries = doSeries(_detect); - - async.some = function (arr, iterator, main_callback) { - async.forEach(arr, function (x, callback) { - iterator(x, function (v) { - if (v) { - main_callback(true); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(false); - }); - }; - // any alias - async.any = async.some; - - async.every = function (arr, iterator, main_callback) { - async.forEach(arr, function (x, callback) { - iterator(x, function (v) { - if (!v) { - main_callback(false); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(true); - }); - }; - // all alias - async.all = async.every; - - async.sortBy = function (arr, iterator, callback) { - async.map(arr, function (x, callback) { - iterator(x, function (err, criteria) { - if (err) { - callback(err); - } - else { - callback(null, {value: x, criteria: criteria}); - } - }); - }, function (err, results) { - if (err) { - return callback(err); - } - else { - var fn = function (left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }; - callback(null, _map(results.sort(fn), function (x) { - return x.value; - })); - } - }); - }; - - async.auto = function (tasks, callback) { - callback = callback || function () {}; - var keys = _keys(tasks); - if (!keys.length) { - return callback(null); - } - - var results = {}; - - var listeners = []; - var addListener = function (fn) { - listeners.unshift(fn); - }; - var removeListener = function (fn) { - for (var i = 0; i < listeners.length; i += 1) { - if (listeners[i] === fn) { - listeners.splice(i, 1); - return; - } - } - }; - var taskComplete = function () { - _forEach(listeners.slice(0), function (fn) { - fn(); - }); - }; - - addListener(function () { - if (_keys(results).length === keys.length) { - callback(null, results); - callback = function () {}; - } - }); - - _forEach(keys, function (k) { - var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k]; - var taskCallback = function (err) { - if (err) { - callback(err); - // stop subsequent errors hitting callback multiple times - callback = function () {}; - } - else { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - taskComplete(); - } - }; - var requires = task.slice(0, Math.abs(task.length - 1)) || []; - var ready = function () { - return _reduce(requires, function (a, x) { - return (a && results.hasOwnProperty(x)); - }, true) && !results.hasOwnProperty(k); - }; - if (ready()) { - task[task.length - 1](taskCallback, results); - } - else { - var listener = function () { - if (ready()) { - removeListener(listener); - task[task.length - 1](taskCallback, results); - } - }; - addListener(listener); - } - }); - }; - - async.waterfall = function (tasks, callback) { - callback = callback || function () {}; - if (!tasks.length) { - return callback(); - } - var wrapIterator = function (iterator) { - return function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - var args = Array.prototype.slice.call(arguments, 1); - var next = iterator.next(); - if (next) { - args.push(wrapIterator(next)); - } - else { - args.push(callback); - } - async.nextTick(function () { - iterator.apply(null, args); - }); - } - }; - }; - wrapIterator(async.iterator(tasks))(); - }; - - async.parallel = function (tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor === Array) { - async.map(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - async.forEach(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.series = function (tasks, callback) { - callback = callback || function () {}; - if (tasks.constructor === Array) { - async.mapSeries(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - async.forEachSeries(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.iterator = function (tasks) { - var makeCallback = function (index) { - var fn = function () { - if (tasks.length) { - tasks[index].apply(null, arguments); - } - return fn.next(); - }; - fn.next = function () { - return (index < tasks.length - 1) ? makeCallback(index + 1): null; - }; - return fn; - }; - return makeCallback(0); - }; - - async.apply = function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - return function () { - return fn.apply( - null, args.concat(Array.prototype.slice.call(arguments)) - ); - }; - }; - - var _concat = function (eachfn, arr, fn, callback) { - var r = []; - eachfn(arr, function (x, cb) { - fn(x, function (err, y) { - r = r.concat(y || []); - cb(err); - }); - }, function (err) { - callback(err, r); - }); - }; - async.concat = doParallel(_concat); - async.concatSeries = doSeries(_concat); - - async.whilst = function (test, iterator, callback) { - if (test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.whilst(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.until = function (test, iterator, callback) { - if (!test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.until(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.queue = function (worker, concurrency) { - var workers = 0; - var q = { - tasks: [], - concurrency: concurrency, - saturated: null, - empty: null, - drain: null, - push: function (data, callback) { - if(data.constructor !== Array) { - data = [data]; - } - _forEach(data, function(task) { - q.tasks.push({ - data: task, - callback: typeof callback === 'function' ? callback : null - }); - if (q.saturated && q.tasks.length == concurrency) { - q.saturated(); - } - async.nextTick(q.process); - }); - }, - process: function () { - if (workers < q.concurrency && q.tasks.length) { - var task = q.tasks.shift(); - if(q.empty && q.tasks.length == 0) q.empty(); - workers += 1; - worker(task.data, function () { - workers -= 1; - if (task.callback) { - task.callback.apply(task, arguments); - } - if(q.drain && q.tasks.length + workers == 0) q.drain(); - q.process(); - }); - } - }, - length: function () { - return q.tasks.length; - }, - running: function () { - return workers; - } - }; - return q; - }; - - var _console_fn = function (name) { - return function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - fn.apply(null, args.concat([function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (typeof console !== 'undefined') { - if (err) { - if (console.error) { - console.error(err); - } - } - else if (console[name]) { - _forEach(args, function (x) { - console[name](x); - }); - } - } - }])); - }; - }; - async.log = _console_fn('log'); - async.dir = _console_fn('dir'); - /*async.info = _console_fn('info'); - async.warn = _console_fn('warn'); - async.error = _console_fn('error');*/ - - async.memoize = function (fn, hasher) { - var memo = {}; - var queues = {}; - hasher = hasher || function (x) { - return x; - }; - var memoized = function () { - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - var key = hasher.apply(null, args); - if (key in memo) { - callback.apply(null, memo[key]); - } - else if (key in queues) { - queues[key].push(callback); - } - else { - queues[key] = [callback]; - fn.apply(null, args.concat([function () { - memo[key] = arguments; - var q = queues[key]; - delete queues[key]; - for (var i = 0, l = q.length; i < l; i++) { - q[i].apply(null, arguments); - } - }])); - } - }; - memoized.unmemoized = fn; - return memoized; - }; - - async.unmemoize = function (fn) { - return function () { - return (fn.unmemoized || fn).apply(null, arguments); - }; - }; - -}()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/async/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/async/package.json deleted file mode 100644 index e95e92d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/async/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "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": "https://registry.npmjs.org/async/-/async-0.1.22.tgz" - }, - "maintainers": [ - { - "name": "caolan", - "email": "caolan@caolanmcmahon.com" - } - ], - "directories": {}, - "_shasum": "0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061", - "_resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "_from": "async@>=0.1.0 <0.2.0", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/caolan/async#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/.travis.yml deleted file mode 100644 index 4af02b3d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - '0.8' - - '0.10' - - '0.12' - - 'iojs' -before_install: - - npm install -g npm@latest diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/example/cmp.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/example/cmp.js deleted file mode 100644 index 67014b88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/example/cmp.js +++ /dev/null @@ -1,11 +0,0 @@ -var equal = require('../'); -console.dir([ - equal( - { a : [ 2, 3 ], b : [ 4 ] }, - { a : [ 2, 3 ], b : [ 4 ] } - ), - equal( - { x : 5, y : [6] }, - { x : 5, y : 6 } - ) -]); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/index.js deleted file mode 100644 index 0772f8c7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/index.js +++ /dev/null @@ -1,94 +0,0 @@ -var pSlice = Array.prototype.slice; -var objectKeys = require('./lib/keys.js'); -var isArguments = require('./lib/is_arguments.js'); - -var deepEqual = module.exports = function (actual, expected, opts) { - if (!opts) opts = {}; - // 7.1. All identical values are equivalent, as determined by ===. - if (actual === expected) { - return true; - - } else if (actual instanceof Date && expected instanceof Date) { - return actual.getTime() === expected.getTime(); - - // 7.3. Other pairs that do not both pass typeof value == 'object', - // equivalence is determined by ==. - } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') { - return opts.strict ? actual === expected : actual == expected; - - // 7.4. For all other Object pairs, including Array objects, equivalence is - // determined by having the same number of owned properties (as verified - // with Object.prototype.hasOwnProperty.call), the same set of keys - // (although not necessarily the same order), equivalent values for every - // corresponding key, and an identical 'prototype' property. Note: this - // accounts for both named and indexed properties on Arrays. - } else { - return objEquiv(actual, expected, opts); - } -} - -function isUndefinedOrNull(value) { - return value === null || value === undefined; -} - -function isBuffer (x) { - if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false; - if (typeof x.copy !== 'function' || typeof x.slice !== 'function') { - return false; - } - if (x.length > 0 && typeof x[0] !== 'number') return false; - return true; -} - -function objEquiv(a, b, opts) { - var i, key; - if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) - return false; - // an identical 'prototype' property. - if (a.prototype !== b.prototype) return false; - //~~~I've managed to break Object.keys through screwy arguments passing. - // Converting to array solves the problem. - if (isArguments(a)) { - if (!isArguments(b)) { - return false; - } - a = pSlice.call(a); - b = pSlice.call(b); - return deepEqual(a, b, opts); - } - if (isBuffer(a)) { - if (!isBuffer(b)) { - return false; - } - if (a.length !== b.length) return false; - for (i = 0; i < a.length; i++) { - if (a[i] !== b[i]) return false; - } - return true; - } - try { - var ka = objectKeys(a), - kb = objectKeys(b); - } catch (e) {//happens when one is a string literal and the other isn't - return false; - } - // having the same number of owned properties (keys incorporates - // hasOwnProperty) - if (ka.length != kb.length) - return false; - //the same set of keys (although not necessarily the same order), - ka.sort(); - kb.sort(); - //~~~cheap key test - for (i = ka.length - 1; i >= 0; i--) { - if (ka[i] != kb[i]) - return false; - } - //equivalent values for every corresponding key, and - //~~~possibly expensive deep test - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!deepEqual(a[key], b[key], opts)) return false; - } - return typeof a === typeof b; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/lib/is_arguments.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/lib/is_arguments.js deleted file mode 100644 index 1ff150fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/lib/is_arguments.js +++ /dev/null @@ -1,20 +0,0 @@ -var supportsArgumentsClass = (function(){ - return Object.prototype.toString.call(arguments) -})() == '[object Arguments]'; - -exports = module.exports = supportsArgumentsClass ? supported : unsupported; - -exports.supported = supported; -function supported(object) { - return Object.prototype.toString.call(object) == '[object Arguments]'; -}; - -exports.unsupported = unsupported; -function unsupported(object){ - return object && - typeof object == 'object' && - typeof object.length == 'number' && - Object.prototype.hasOwnProperty.call(object, 'callee') && - !Object.prototype.propertyIsEnumerable.call(object, 'callee') || - false; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/lib/keys.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/lib/keys.js deleted file mode 100644 index 13af263f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/lib/keys.js +++ /dev/null @@ -1,9 +0,0 @@ -exports = module.exports = typeof Object.keys === 'function' - ? Object.keys : shim; - -exports.shim = shim; -function shim (obj) { - var keys = []; - for (var key in obj) keys.push(key); - return keys; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/package.json deleted file mode 100644 index 9457241c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "name": "deep-equal", - "version": "1.0.1", - "description": "node's assert.deepEqual algorithm", - "main": "index.js", - "directories": { - "lib": ".", - "example": "example", - "test": "test" - }, - "scripts": { - "test": "tape test/*.js" - }, - "devDependencies": { - "tape": "^3.5.0" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/substack/node-deep-equal.git" - }, - "keywords": [ - "equality", - "equal", - "compare" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": { - "ie": [ - 6, - 7, - 8, - 9 - ], - "ff": [ - 3.5, - 10, - 15 - ], - "chrome": [ - 10, - 22 - ], - "safari": [ - 5.1 - ], - "opera": [ - 12 - ] - } - }, - "gitHead": "59c511f5aeae19e3dd1de054077a789d7302be34", - "bugs": { - "url": "https://github.com/substack/node-deep-equal/issues" - }, - "homepage": "https://github.com/substack/node-deep-equal#readme", - "_id": "deep-equal@1.0.1", - "_shasum": "f5d260292b660e084eff4cdbc9f08ad3247448b5", - "_from": "deep-equal@*", - "_npmVersion": "3.2.2", - "_nodeVersion": "2.4.0", - "_npmUser": { - "name": "substack", - "email": "substack@gmail.com" - }, - "dist": { - "shasum": "f5d260292b660e084eff4cdbc9f08ad3247448b5", - "tarball": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "_resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/readme.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/readme.markdown deleted file mode 100644 index f489c2a3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/readme.markdown +++ /dev/null @@ -1,61 +0,0 @@ -# deep-equal - -Node's `assert.deepEqual() algorithm` as a standalone module. - -This module is around [5 times faster](https://gist.github.com/2790507) -than wrapping `assert.deepEqual()` in a `try/catch`. - -[![browser support](https://ci.testling.com/substack/node-deep-equal.png)](https://ci.testling.com/substack/node-deep-equal) - -[![build status](https://secure.travis-ci.org/substack/node-deep-equal.png)](https://travis-ci.org/substack/node-deep-equal) - -# example - -``` js -var equal = require('deep-equal'); -console.dir([ - equal( - { a : [ 2, 3 ], b : [ 4 ] }, - { a : [ 2, 3 ], b : [ 4 ] } - ), - equal( - { x : 5, y : [6] }, - { x : 5, y : 6 } - ) -]); -``` - -# methods - -``` js -var deepEqual = require('deep-equal') -``` - -## deepEqual(a, b, opts) - -Compare objects `a` and `b`, returning whether they are equal according to a -recursive equality algorithm. - -If `opts.strict` is `true`, use strict equality (`===`) to compare leaf nodes. -The default is to use coercive equality (`==`) because that's how -`assert.deepEqual()` works by default. - -# install - -With [npm](http://npmjs.org) do: - -``` -npm install deep-equal -``` - -# test - -With [npm](http://npmjs.org) do: - -``` -npm test -``` - -# license - -MIT. Derived largely from node's assert module. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/test/cmp.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/test/cmp.js deleted file mode 100644 index 2aab5f96..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/deep-equal/test/cmp.js +++ /dev/null @@ -1,95 +0,0 @@ -var test = require('tape'); -var equal = require('../'); -var isArguments = require('../lib/is_arguments.js'); -var objectKeys = require('../lib/keys.js'); - -test('equal', function (t) { - t.ok(equal( - { a : [ 2, 3 ], b : [ 4 ] }, - { a : [ 2, 3 ], b : [ 4 ] } - )); - t.end(); -}); - -test('not equal', function (t) { - t.notOk(equal( - { x : 5, y : [6] }, - { x : 5, y : 6 } - )); - t.end(); -}); - -test('nested nulls', function (t) { - t.ok(equal([ null, null, null ], [ null, null, null ])); - t.end(); -}); - -test('strict equal', function (t) { - t.notOk(equal( - [ { a: 3 }, { b: 4 } ], - [ { a: '3' }, { b: '4' } ], - { strict: true } - )); - t.end(); -}); - -test('non-objects', function (t) { - t.ok(equal(3, 3)); - t.ok(equal('beep', 'beep')); - t.ok(equal('3', 3)); - t.notOk(equal('3', 3, { strict: true })); - t.notOk(equal('3', [3])); - t.end(); -}); - -test('arguments class', function (t) { - t.ok(equal( - (function(){return arguments})(1,2,3), - (function(){return arguments})(1,2,3), - "compares arguments" - )); - t.notOk(equal( - (function(){return arguments})(1,2,3), - [1,2,3], - "differenciates array and arguments" - )); - t.end(); -}); - -test('test the arguments shim', function (t) { - t.ok(isArguments.supported((function(){return arguments})())); - t.notOk(isArguments.supported([1,2,3])); - - t.ok(isArguments.unsupported((function(){return arguments})())); - t.notOk(isArguments.unsupported([1,2,3])); - - t.end(); -}); - -test('test the keys shim', function (t) { - t.deepEqual(objectKeys.shim({ a: 1, b : 2 }), [ 'a', 'b' ]); - t.end(); -}); - -test('dates', function (t) { - var d0 = new Date(1387585278000); - var d1 = new Date('Fri Dec 20 2013 16:21:18 GMT-0800 (PST)'); - t.ok(equal(d0, d1)); - t.end(); -}); - -test('buffers', function (t) { - t.ok(equal(Buffer('xyz'), Buffer('xyz'))); - t.end(); -}); - -test('booleans and arrays', function (t) { - t.notOk(equal(true, [])); - t.end(); -}) - -test('null == undefined', function (t) { - t.ok(equal(null, undefined)) - t.notOk(equal(null, undefined, { strict: true })) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/.npmignore deleted file mode 100644 index 435e4bbb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -npm-debug.log -*.swp diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/.travis.yml deleted file mode 100644 index 2f1969ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -sudo: false -language: node_js -node_js: - - '5' - - '4' - - '3' - - '2' - - '1' - - '0.12' - - '0.10' - - '0.8' -notifications: - email: - on_success: never diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/LICENSE deleted file mode 100644 index c9b44cb8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/README.md deleted file mode 100644 index 37ca2093..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/README.md +++ /dev/null @@ -1,176 +0,0 @@ -# inflect - -customizable inflections for nodejs - -**NOTE: 0.3.2 was accidentally unpublished from the server and npm doesn't allow me to publish it back. Please upgrade to 0.3.3** - -## Installation - -```bash -npm install i -``` - -## Usage - -Require the module before using - -```js -var inflect = require('i')(); -``` - -All the below api functions can be called directly on a string - -```js -inflect.titleize('messages to store') // === 'Messages To Store' -'messages to store'.titleize // === 'Messages To Store' -``` - -only if `true` is passed while initiating - -```js -var inflect = require('i')(true); -``` - -### Pluralize - -```js -inflect.pluralize('person'); // === 'people' -inflect.pluralize('octopus'); // === 'octopi' -inflect.pluralize('Hat'); // === 'Hats' -``` - -### Singularize - -```js -inflect.singularize('people'); // === 'person' -inflect.singularize('octopi'); // === 'octopus' -inflect.singularize('Hats'); // === 'Hat' -``` - -### Camelize - -```js -inflect.camelize('message_properties'); // === 'MessageProperties' -inflect.camelize('message_properties', false); // === 'messageProperties' -``` - -### Underscore - -```js -inflect.underscore('MessageProperties'); // === 'message_properties' -inflect.underscore('messageProperties'); // === 'message_properties' -``` - -### Humanize - -```js -inflect.humanize('message_id'); // === 'Message' -``` - -### Dasherize - -```js -inflect.dasherize('message_properties'); // === 'message-properties' -inflect.dasherize('Message Properties'); // === 'Message Properties' -``` - -### Titleize - -```js -inflect.titleize('message_properties'); // === 'Message Properties' -inflect.titleize('message properties to keep'); // === 'Message Properties to Keep' -``` - -### Demodulize - -```js -inflect.demodulize('Message.Bus.Properties'); // === 'Properties' -``` - -### Tableize - -```js -inflect.tableize('MessageBusProperty'); // === 'message_bus_properties' -``` - -### Classify - -```js -inflect.classify('message_bus_properties'); // === 'MessageBusProperty' -``` - -### Foreign key - -```js -inflect.foreign_key('MessageBusProperty'); // === 'message_bus_property_id' -inflect.foreign_key('MessageBusProperty', false); // === 'message_bus_propertyid' -``` - -### Ordinalize - -```js -inflect.ordinalize( '1' ); // === '1st' -``` - -## Custom rules for inflection - -### Custom plural - -We can use regexp in any of these custom rules - -```js -inflect.inflections.plural('person', 'guys'); -inflect.pluralize('person'); // === 'guys' -inflect.singularize('guys'); // === 'guy' -``` - -### Custom singular - -```js -inflect.inflections.singular('guys', 'person') -inflect.singularize('guys'); // === 'person' -inflect.pluralize('person'); // === 'people' -``` - -### Custom irregular - -```js -inflect.inflections.irregular('person', 'guys') -inflect.pluralize('person'); // === 'guys' -inflect.singularize('guys'); // === 'person' -``` - -### Custom human - -```js -inflect.inflections.human(/^(.*)_cnt$/i, '$1_count'); -inflect.inflections.humanize('jargon_cnt'); // === 'Jargon count' -``` - -### Custom uncountable - -```js -inflect.inflections.uncountable('oil') -inflect.pluralize('oil'); // === 'oil' -inflect.singularize('oil'); // === 'oil' -``` - -## Contributors -Here is a list of [Contributors](http://github.com/pksunkara/inflect/contributors) - -### TODO - -- More obscure test cases - -__I accept pull requests and guarantee a reply back within a day__ - -## License -MIT/X11 - -## Bug Reports -Report [here](http://github.com/pksunkara/inflect/issues). __Guaranteed reply within a day__. - -## Contact -Pavan Kumar Sunkara (pavan.sss1991@gmail.com) - -Follow me on [github](https://github.com/users/follow?target=pksunkara), [twitter](http://twitter.com/pksunkara) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/defaults.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/defaults.js deleted file mode 100644 index 05bdaf29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/defaults.js +++ /dev/null @@ -1,68 +0,0 @@ -// Default inflections -module.exports = function (inflect) { - - inflect.plural(/$/, 's'); - inflect.plural(/s$/i, 's'); - inflect.plural(/(ax|test)is$/i, '$1es'); - inflect.plural(/(octop|vir)us$/i, '$1i'); - inflect.plural(/(octop|vir)i$/i, '$1i'); - inflect.plural(/(alias|status)$/i, '$1es'); - inflect.plural(/(bu)s$/i, '$1ses'); - inflect.plural(/(buffal|tomat)o$/i, '$1oes'); - inflect.plural(/([ti])um$/i, '$1a'); - inflect.plural(/([ti])a$/i, '$1a'); - inflect.plural(/sis$/i, 'ses'); - inflect.plural(/(?:([^fa])fe|(?:(oa)f)|([lr])f)$/i, '$1ves'); - inflect.plural(/(hive)$/i, '$1s'); - inflect.plural(/([^aeiouy]|qu)y$/i, '$1ies'); - inflect.plural(/(x|ch|ss|sh)$/i, '$1es'); - inflect.plural(/(matr|vert|ind)(?:ix|ex)$/i, '$1ices'); - inflect.plural(/([m|l])ouse$/i, '$1ice'); - inflect.plural(/([m|l])ice$/i, '$1ice'); - inflect.plural(/^(ox)$/i, '$1en'); - inflect.plural(/^(oxen)$/i, '$1'); - inflect.plural(/(quiz)$/i, '$1zes'); - - inflect.singular(/s$/i, ''); - inflect.singular(/(n)ews$/i, '$1ews'); - inflect.singular(/([ti])a$/i, '$1um'); - inflect.singular(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i, '$1sis'); - inflect.singular(/(^analy)ses$/i, '$1sis'); - inflect.singular(/([^f])ves$/i, '$1fe'); - inflect.singular(/(hive)s$/i, '$1'); - inflect.singular(/(tive)s$/i, '$1'); - inflect.singular(/(oave)s$/i, 'oaf'); - inflect.singular(/([lr])ves$/i, '$1f'); - inflect.singular(/([^aeiouy]|qu)ies$/i, '$1y'); - inflect.singular(/(s)eries$/i, '$1eries'); - inflect.singular(/(m)ovies$/i, '$1ovie'); - inflect.singular(/(x|ch|ss|sh)es$/i, '$1'); - inflect.singular(/([m|l])ice$/i, '$1ouse'); - inflect.singular(/(bus)es$/i, '$1'); - inflect.singular(/(o)es$/i, '$1'); - inflect.singular(/(shoe)s$/i, '$1'); - inflect.singular(/(cris|ax|test)es$/i, '$1is'); - inflect.singular(/(octop|vir)i$/i, '$1us'); - inflect.singular(/(alias|status)es$/i, '$1'); - inflect.singular(/^(ox)en/i, '$1'); - inflect.singular(/(vert|ind)ices$/i, '$1ex'); - inflect.singular(/(matr)ices$/i, '$1ix'); - inflect.singular(/(quiz)zes$/i, '$1'); - inflect.singular(/(database)s$/i, '$1'); - - inflect.irregular('child', 'children'); - inflect.irregular('person', 'people'); - inflect.irregular('man', 'men'); - inflect.irregular('child', 'children'); - inflect.irregular('sex', 'sexes'); - inflect.irregular('move', 'moves'); - inflect.irregular('cow', 'kine'); - inflect.irregular('zombie', 'zombies'); - inflect.irregular('oaf', 'oafs', true); - inflect.irregular('jefe', 'jefes'); - inflect.irregular('save', 'saves'); - inflect.irregular('safe', 'safes'); - inflect.irregular('fife', 'fifes'); - - inflect.uncountable(['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'jeans', 'sushi']); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/inflect.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/inflect.js deleted file mode 100644 index 5e0cc704..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/inflect.js +++ /dev/null @@ -1,11 +0,0 @@ -// Requiring modules - -module.exports = function (attach) { - var methods = require('./methods'); - - if (attach) { - require('./native')(methods); - } - - return methods -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/inflections.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/inflections.js deleted file mode 100644 index 1972551f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/inflections.js +++ /dev/null @@ -1,120 +0,0 @@ -// A singleton instance of this class is yielded by Inflector.inflections, which can then be used to specify additional -// inflection rules. Examples: -// -// BulletSupport.Inflector.inflect ($) -> -// $.plural /^(ox)$/i, '$1en' -// $.singular /^(ox)en/i, '$1' -// -// $.irregular 'octopus', 'octopi' -// -// $.uncountable "equipment" -// -// New rules are added at the top. So in the example above, the irregular rule for octopus will now be the first of the -// pluralization and singularization rules that is runs. This guarantees that your rules run before any of the rules that may -// already have been loaded. - -var util = require('./util'); - -var Inflections = function () { - this.plurals = []; - this.singulars = []; - this.uncountables = []; - this.humans = []; - require('./defaults')(this); - return this; -}; - -// Specifies a new pluralization rule and its replacement. The rule can either be a string or a regular expression. -// The replacement should always be a string that may include references to the matched data from the rule. -Inflections.prototype.plural = function (rule, replacement) { - if (typeof rule == 'string') { - this.uncountables = util.array.del(this.uncountables, rule); - } - this.uncountables = util.array.del(this.uncountables, replacement); - this.plurals.unshift([rule, replacement]); -}; - -// Specifies a new singularization rule and its replacement. The rule can either be a string or a regular expression. -// The replacement should always be a string that may include references to the matched data from the rule. -Inflections.prototype.singular = function (rule, replacement) { - if (typeof rule == 'string') { - this.uncountables = util.array.del(this.uncountables, rule); - } - this.uncountables = util.array.del(this.uncountables, replacement); - this.singulars.unshift([rule, replacement]); -}; - -// Specifies a new irregular that applies to both pluralization and singularization at the same time. This can only be used -// for strings, not regular expressions. You simply pass the irregular in singular and plural form. -// -// irregular 'octopus', 'octopi' -// irregular 'person', 'people' -Inflections.prototype.irregular = function (singular, plural, fullMatchRequired) { - this.uncountables = util.array.del(this.uncountables, singular); - this.uncountables = util.array.del(this.uncountables, plural); - var prefix = ""; - if (fullMatchRequired) { - prefix = "^"; - } - if (singular[0].toUpperCase() == plural[0].toUpperCase()) { - this.plural(new RegExp("(" + prefix + singular[0] + ")" + singular.slice(1) + "$", "i"), '$1' + plural.slice(1)); - this.plural(new RegExp("(" + prefix + plural[0] + ")" + plural.slice(1) + "$", "i"), '$1' + plural.slice(1)); - this.singular(new RegExp("(" + prefix + plural[0] + ")" + plural.slice(1) + "$", "i"), '$1' + singular.slice(1)); - } else { - this.plural(new RegExp(prefix + (singular[0].toUpperCase()) + singular.slice(1) + "$"), plural[0].toUpperCase() + plural.slice(1)); - this.plural(new RegExp(prefix + (singular[0].toLowerCase()) + singular.slice(1) + "$"), plural[0].toLowerCase() + plural.slice(1)); - this.plural(new RegExp(prefix + (plural[0].toUpperCase()) + plural.slice(1) + "$"), plural[0].toUpperCase() + plural.slice(1)); - this.plural(new RegExp(prefix + (plural[0].toLowerCase()) + plural.slice(1) + "$"), plural[0].toLowerCase() + plural.slice(1)); - this.singular(new RegExp(prefix + (plural[0].toUpperCase()) + plural.slice(1) + "$"), singular[0].toUpperCase() + singular.slice(1)); - this.singular(new RegExp(prefix + (plural[0].toLowerCase()) + plural.slice(1) + "$"), singular[0].toLowerCase() + singular.slice(1)); - } -}; - -// Specifies a humanized form of a string by a regular expression rule or by a string mapping. -// When using a regular expression based replacement, the normal humanize formatting is called after the replacement. -// When a string is used, the human form should be specified as desired (example: 'The name', not 'the_name') -// -// human /(.*)_cnt$/i, '$1_count' -// human "legacy_col_person_name", "Name" -Inflections.prototype.human = function (rule, replacement) { - this.humans.unshift([rule, replacement]); -} - -// Add uncountable words that shouldn't be attempted inflected. -// -// uncountable "money" -// uncountable ["money", "information"] -Inflections.prototype.uncountable = function (words) { - this.uncountables = this.uncountables.concat(words); -} - -// Clears the loaded inflections within a given scope (default is _'all'_). -// Give the scope as a symbol of the inflection type, the options are: _'plurals'_, -// _'singulars'_, _'uncountables'_, _'humans'_. -// -// clear 'all' -// clear 'plurals' -Inflections.prototype.clear = function (scope) { - if (scope == null) scope = 'all'; - switch (scope) { - case 'all': - this.plurals = []; - this.singulars = []; - this.uncountables = []; - this.humans = []; - default: - this[scope] = []; - } -} - -// Clears the loaded inflections and initializes them to [default](../inflections.html) -Inflections.prototype.default = function () { - this.plurals = []; - this.singulars = []; - this.uncountables = []; - this.humans = []; - require('./defaults')(this); - return this; -}; - -module.exports = new Inflections(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/methods.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/methods.js deleted file mode 100644 index 6f6beebd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/methods.js +++ /dev/null @@ -1,232 +0,0 @@ -// The Inflector transforms words from singular to plural, class names to table names, modularized class names to ones without, -// and class names to foreign keys. The default inflections for pluralization, singularization, and uncountable words are kept -// in inflections.coffee -// -// If you discover an incorrect inflection and require it for your application, you'll need -// to correct it yourself (explained below). - -var util = require('./util'); - -var inflect = module.exports; - -// Import [inflections](inflections.html) instance -inflect.inflections = require('./inflections') - -// Gives easy access to add inflections to this class -inflect.inflect = function (inflections_function) { - inflections_function(inflect.inflections); -}; - -// By default, _camelize_ converts strings to UpperCamelCase. If the argument to _camelize_ -// is set to _false_ then _camelize_ produces lowerCamelCase. -// -// _camelize_ will also convert '/' to '.' which is useful for converting paths to namespaces. -// -// "bullet_record".camelize() // => "BulletRecord" -// "bullet_record".camelize(false) // => "bulletRecord" -// "bullet_record/errors".camelize() // => "BulletRecord.Errors" -// "bullet_record/errors".camelize(false) // => "bulletRecord.Errors" -// -// As a rule of thumb you can think of _camelize_ as the inverse of _underscore_, -// though there are cases where that does not hold: -// -// "SSLError".underscore.camelize // => "SslError" -inflect.camelize = function(lower_case_and_underscored_word, first_letter_in_uppercase) { - var result; - if (first_letter_in_uppercase == null) first_letter_in_uppercase = true; - result = util.string.gsub(lower_case_and_underscored_word, /\/(.?)/, function($) { - return "." + (util.string.upcase($[1])); - }); - result = util.string.gsub(result, /(?:_)(.)/, function($) { - return util.string.upcase($[1]); - }); - if (first_letter_in_uppercase) { - return util.string.upcase(result); - } else { - return util.string.downcase(result); - } -}; - -// Makes an underscored, lowercase form from the expression in the string. -// -// Changes '.' to '/' to convert namespaces to paths. -// -// "BulletRecord".underscore() // => "bullet_record" -// "BulletRecord.Errors".underscore() // => "bullet_record/errors" -// -// As a rule of thumb you can think of +underscore+ as the inverse of +camelize+, -// though there are cases where that does not hold: -// -// "SSLError".underscore().camelize() // => "SslError" -inflect.underscore = function (camel_cased_word) { - var self; - self = util.string.gsub(camel_cased_word, /\./, '/'); - self = util.string.gsub(self, /([A-Z]+)([A-Z][a-z])/, "$1_$2"); - self = util.string.gsub(self, /([a-z\d])([A-Z])/, "$1_$2"); - self = util.string.gsub(self, /-/, '_'); - return self.toLowerCase(); -}; - -// Replaces underscores with dashes in the string. -// -// "puni_puni".dasherize() // => "puni-puni" -inflect.dasherize = function (underscored_word) { - return util.string.gsub(underscored_word, /_/, '-'); -}; - -// Removes the module part from the expression in the string. -// -// "BulletRecord.String.Inflections".demodulize() // => "Inflections" -// "Inflections".demodulize() // => "Inflections" -inflect.demodulize = function (class_name_in_module) { - return util.string.gsub(class_name_in_module, /^.*\./, ''); -}; - -// Creates a foreign key name from a class name. -// _separate_class_name_and_id_with_underscore_ sets whether -// the method should put '_' between the name and 'id'. -// -// "Message".foreign_key() // => "message_id" -// "Message".foreign_key(false) // => "messageid" -// "Admin::Post".foreign_key() // => "post_id" -inflect.foreign_key = function (class_name, separate_class_name_and_id_with_underscore) { - if (separate_class_name_and_id_with_underscore == null) { - separate_class_name_and_id_with_underscore = true; - } - return inflect.underscore(inflect.demodulize(class_name)) + (separate_class_name_and_id_with_underscore ? "_id" : "id"); -}; - -// Turns a number into an ordinal string used to denote the position in an -// ordered sequence such as 1st, 2nd, 3rd, 4th. -// -// ordinalize(1) // => "1st" -// ordinalize(2) // => "2nd" -// ordinalize(1002) // => "1002nd" -// ordinalize(1003) // => "1003rd" -// ordinalize(-11) // => "-11th" -// ordinalize(-1021) // => "-1021st" -inflect.ordinalize = function (number) { - var _ref; - number = parseInt(number); - if ((_ref = Math.abs(number) % 100) === 11 || _ref === 12 || _ref === 13) { - return "" + number + "th"; - } else { - switch (Math.abs(number) % 10) { - case 1: - return "" + number + "st"; - case 2: - return "" + number + "nd"; - case 3: - return "" + number + "rd"; - default: - return "" + number + "th"; - } - } -}; - -// Checks a given word for uncountability -// -// "money".uncountability() // => true -// "my money".uncountability() // => true -inflect.uncountability = function (word) { - return inflect.inflections.uncountables.some(function(ele, ind, arr) { - return word.match(new RegExp("(\\b|_)" + ele + "$", 'i')) != null; - }); -}; - -// Returns the plural form of the word in the string. -// -// "post".pluralize() // => "posts" -// "octopus".pluralize() // => "octopi" -// "sheep".pluralize() // => "sheep" -// "words".pluralize() // => "words" -// "CamelOctopus".pluralize() // => "CamelOctopi" -inflect.pluralize = function (word) { - var plural, result; - result = word; - if (word === '' || inflect.uncountability(word)) { - return result; - } else { - for (var i = 0; i < inflect.inflections.plurals.length; i++) { - plural = inflect.inflections.plurals[i]; - result = util.string.gsub(result, plural[0], plural[1]); - if (word.match(plural[0]) != null) break; - } - return result; - } -}; - -// The reverse of _pluralize_, returns the singular form of a word in a string. -// -// "posts".singularize() // => "post" -// "octopi".singularize() // => "octopus" -// "sheep".singularize() // => "sheep" -// "word".singularize() // => "word" -// "CamelOctopi".singularize() // => "CamelOctopus" -inflect.singularize = function (word) { - var result, singular; - result = word; - if (word === '' || inflect.uncountability(word)) { - return result; - } else { - for (var i = 0; i < inflect.inflections.singulars.length; i++) { - singular = inflect.inflections.singulars[i]; - result = util.string.gsub(result, singular[0], singular[1]); - if (word.match(singular[0])) break; - } - return result; - } -}; - -// Capitalizes the first word and turns underscores into spaces and strips a -// trailing "_id", if any. Like _titleize_, this is meant for creating pretty output. -// -// "employee_salary".humanize() // => "Employee salary" -// "author_id".humanize() // => "Author" -inflect.humanize = function (lower_case_and_underscored_word) { - var human, result; - result = lower_case_and_underscored_word; - for (var i = 0; i < inflect.inflections.humans.length; i++) { - human = inflect.inflections.humans[i]; - result = util.string.gsub(result, human[0], human[1]); - } - result = util.string.gsub(result, /_id$/, ""); - result = util.string.gsub(result, /_/, " "); - return util.string.capitalize(result, true); -}; - -// Capitalizes all the words and replaces some characters in the string to create -// a nicer looking title. _titleize_ is meant for creating pretty output. It is not -// used in the Bullet internals. -// -// -// "man from the boondocks".titleize() // => "Man From The Boondocks" -// "x-men: the last stand".titleize() // => "X Men: The Last Stand" -inflect.titleize = function (word) { - var self; - self = inflect.humanize(inflect.underscore(word)); - return util.string.capitalize(self); -}; - -// Create the name of a table like Bullet does for models to table names. This method -// uses the _pluralize_ method on the last word in the string. -// -// "RawScaledScorer".tableize() // => "raw_scaled_scorers" -// "egg_and_ham".tableize() // => "egg_and_hams" -// "fancyCategory".tableize() // => "fancy_categories" -inflect.tableize = function (class_name) { - return inflect.pluralize(inflect.underscore(class_name)); -}; - -// Create a class name from a plural table name like Bullet does for table names to models. -// Note that this returns a string and not a Class. -// -// "egg_and_hams".classify() // => "EggAndHam" -// "posts".classify() // => "Post" -// -// Singular names are not handled correctly: -// -// "business".classify() // => "Busines" -inflect.classify = function (table_name) { - return inflect.camelize(inflect.singularize(util.string.gsub(table_name, /.*\./, ''))); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/native.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/native.js deleted file mode 100644 index d2c8de10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/native.js +++ /dev/null @@ -1,26 +0,0 @@ -module.exports = function (obj) { - - var addProperty = function (method, func) { - String.prototype.__defineGetter__(method, func); - } - - var stringPrototypeBlacklist = [ - '__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__', 'charAt', 'constructor', - 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf', 'charCodeAt', - 'indexOf', 'lastIndexof', 'length', 'localeCompare', 'match', 'replace', 'search', 'slice', 'split', 'substring', - 'toLocaleLowerCase', 'toLocaleUpperCase', 'toLowerCase', 'toUpperCase', 'trim', 'trimLeft', 'trimRight', 'gsub' - ]; - - Object.keys(obj).forEach(function (key) { - if (key != 'inflect' && key != 'inflections') { - if (stringPrototypeBlacklist.indexOf(key) !== -1) { - console.log('warn: You should not override String.prototype.' + key); - } else { - addProperty(key, function () { - return obj[key](this); - }); - } - } - }); - -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/util.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/util.js deleted file mode 100644 index 87ebd3ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/lib/util.js +++ /dev/null @@ -1,136 +0,0 @@ -// Some utility functions in js - -var u = module.exports = { - array: { - // Returns a copy of the array with the value removed once - // - // [1, 2, 3, 1].del 1 #=> [2, 3, 1] - // [1, 2, 3].del 4 #=> [1, 2, 3] - del: function (arr, val) { - var index = arr.indexOf(val); - if (index != -1) { - if (index == 0) { - return arr.slice(1) - } else { - return arr.slice(0, index).concat(arr.slice(index+1)); - } - } else { - return arr; - } - }, - - // Returns the first element of the array - // - // [1, 2, 3].first() #=> 1 - first: function(arr) { - return arr[0]; - }, - - // Returns the last element of the array - // - // [1, 2, 3].last() #=> 3 - last: function(arr) { - return arr[arr.length-1]; - } - }, - string: { - // Returns a copy of str with all occurrences of pattern replaced with either replacement or the return value of a function. - // The pattern will typically be a Regexp; if it is a String then no regular expression metacharacters will be interpreted - // (that is /\d/ will match a digit, but ‘\d’ will match a backslash followed by a ‘d’). - // - // In the function form, the current match object is passed in as a parameter to the function, and variables such as - // $[1], $[2], $[3] (where $ is the match object) will be set appropriately. The value returned by the function will be - // substituted for the match on each call. - // - // The result inherits any tainting in the original string or any supplied replacement string. - // - // "hello".gsub /[aeiou]/, '*' #=> "h*ll*" - // "hello".gsub /[aeiou]/, '<$1>' #=> "hll" - // "hello".gsub /[aeiou]/, ($) { - // "<#{$[1]}>" #=> "hll" - // - gsub: function (str, pattern, replacement) { - var i, match, matchCmpr, matchCmprPrev, replacementStr, result, self; - if (!((pattern != null) && (replacement != null))) return u.string.value(str); - result = ''; - self = str; - while (self.length > 0) { - if ((match = self.match(pattern))) { - result += self.slice(0, match.index); - if (typeof replacement === 'function') { - match[1] = match[1] || match[0]; - result += replacement(match); - } else if (replacement.match(/\$[1-9]/)) { - matchCmprPrev = match; - matchCmpr = u.array.del(match, void 0); - while (matchCmpr !== matchCmprPrev) { - matchCmprPrev = matchCmpr; - matchCmpr = u.array.del(matchCmpr, void 0); - } - match[1] = match[1] || match[0]; - replacementStr = replacement; - for (i = 1; i <= 9; i++) { - if (matchCmpr[i]) { - replacementStr = u.string.gsub(replacementStr, new RegExp("\\\$" + i), matchCmpr[i]); - } - } - result += replacementStr; - } else { - result += replacement; - } - self = self.slice(match.index + match[0].length); - } else { - result += self; - self = ''; - } - } - return result; - }, - - // Returns a copy of the String with the first letter being upper case - // - // "hello".upcase #=> "Hello" - upcase: function(str) { - var self = u.string.gsub(str, /_([a-z])/, function ($) { - return "_" + $[1].toUpperCase(); - }); - self = u.string.gsub(self, /\/([a-z])/, function ($) { - return "/" + $[1].toUpperCase(); - }); - return self[0].toUpperCase() + self.substr(1); - }, - - // Returns a copy of capitalized string - // - // "employee salary" #=> "Employee Salary" - capitalize: function (str, spaces) { - var self = str.toLowerCase(); - if(!spaces) { - self = u.string.gsub(self, /\s([a-z])/, function ($) { - return " " + $[1].toUpperCase(); - }); - } - return self[0].toUpperCase() + self.substr(1); - }, - - // Returns a copy of the String with the first letter being lower case - // - // "HELLO".downcase #=> "hELLO" - downcase: function(str) { - var self = u.string.gsub(str, /_([A-Z])/, function ($) { - return "_" + $[1].toLowerCase(); - }); - self = u.string.gsub(self, /\/([A-Z])/, function ($) { - return "/" + $[1].toLowerCase(); - }); - return self[0].toLowerCase() + self.substr(1); - }, - - // Returns a string value for the String object - // - // "hello".value() #=> "hello" - value: function (str) { - return str.substr(0); - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/package.json deleted file mode 100644 index 8176ddfa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "name": "i", - "version": "0.3.5", - "author": { - "name": "Pavan Kumar Sunkara", - "email": "pavan.sss1991@gmail.com", - "url": "pksunkara.github.com" - }, - "description": "custom inflections for nodejs", - "main": "./lib/inflect", - "repository": { - "type": "git", - "url": "git://github.com/pksunkara/inflect.git" - }, - "keywords": [ - "singular", - "plural", - "camelize", - "underscore", - "dasherize", - "demodulize", - "ordinalize", - "uncountable", - "pluralize", - "singularize", - "titleize", - "tableize", - "classify", - "foreign_key" - ], - "homepage": "http://pksunkara.github.com/inflect", - "scripts": { - "test": "vows --spec $(find test -name '*-test.js')" - }, - "contributors": [ - { - "name": "Pavan Kumar Sunkara", - "email": "pavan.sss1991@gmail.com" - } - ], - "dependencies": {}, - "devDependencies": { - "vows": "0.7.0" - }, - "engines": { - "node": ">=0.4" - }, - "bugs": { - "url": "https://github.com/pksunkara/inflect/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/pksunkara/inflect/raw/master/LICENSE" - } - ], - "gitHead": "bbcadd57a182007ab158acea511515b815385d4d", - "_id": "i@0.3.5", - "_shasum": "1d2b854158ec8169113c6cb7f6b6801e99e211d5", - "_from": "i@>=0.3.0 <0.4.0", - "_npmVersion": "2.14.9", - "_nodeVersion": "0.12.9", - "_npmUser": { - "name": "pksunkara", - "email": "pavan.sss1991@gmail.com" - }, - "dist": { - "shasum": "1d2b854158ec8169113c6cb7f6b6801e99e211d5", - "tarball": "https://registry.npmjs.org/i/-/i-0.3.5.tgz" - }, - "maintainers": [ - { - "name": "pksunkara", - "email": "pavan.sss1991@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/i-0.3.5.tgz_1462355680372_0.1744775390252471" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/i/-/i-0.3.5.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/inflector/cases.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/inflector/cases.js deleted file mode 100644 index a818f9a6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/inflector/cases.js +++ /dev/null @@ -1,230 +0,0 @@ -(function() { - - module.exports = { - SingularToPlural: { - "search": "searches", - "switch": "switches", - "fix": "fixes", - "box": "boxes", - "process": "processes", - "address": "addresses", - "case": "cases", - "stack": "stacks", - "wish": "wishes", - "fish": "fish", - "jeans": "jeans", - "funky jeans": "funky jeans", - "my money": "my money", - "category": "categories", - "query": "queries", - "ability": "abilities", - "agency": "agencies", - "movie": "movies", - "archive": "archives", - "index": "indices", - "wife": "wives", - "safe": "saves", - "half": "halves", - "move": "moves", - "salesperson": "salespeople", - "person": "people", - "spokesman": "spokesmen", - "man": "men", - "woman": "women", - "basis": "bases", - "diagnosis": "diagnoses", - "diagnosis_a": "diagnosis_as", - "datum": "data", - "medium": "media", - "stadium": "stadia", - "analysis": "analyses", - "node_child": "node_children", - "child": "children", - "experience": "experiences", - "day": "days", - "comment": "comments", - "foobar": "foobars", - "newsletter": "newsletters", - "old_news": "old_news", - "news": "news", - "series": "series", - "species": "species", - "quiz": "quizzes", - "perspective": "perspectives", - "ox": "oxen", - "photo": "photos", - "buffalo": "buffaloes", - "tomato": "tomatoes", - "dwarf": "dwarves", - "elf": "elves", - "information": "information", - "equipment": "equipment", - "bus": "buses", - "status": "statuses", - "status_code": "status_codes", - "mouse": "mice", - "louse": "lice", - "house": "houses", - "octopus": "octopi", - "virus": "viri", - "alias": "aliases", - "portfolio": "portfolios", - "vertex": "vertices", - "matrix": "matrices", - "matrix_fu": "matrix_fus", - "axis": "axes", - "testis": "testes", - "crisis": "crises", - "rice": "rice", - "shoe": "shoes", - "horse": "horses", - "prize": "prizes", - "edge": "edges", - "cow": "kine", - "database": "databases", - "safe": "safes", - "belief": "beliefs", - "gaffe": "gaffes", - "cafe": "cafes", - "caffe": "caffes", - "life": "lives", - "wife": "wives", - "save": "saves", - "fife": "fifes", - "carafe": "carafes", - "giraffe": "giraffes", - "elf": "elves", - "calf": "calves", - "bookshelf": "bookshelves", - "wolf": "wolves", - "half": "halves", - "meatloaf": "meatloaves", - "loaf": "loaves", - "oaf": "oafs", - "jefe": "jefes", - "afterlife": "afterlives", - }, - CamelToUnderscore: { - "Product": "product", - "SpecialGuest": "special_guest", - "ApplicationController": "application_controller", - "Area51Controller": "area51_controller" - }, - UnderscoreToLowerCamel: { - "product": "product", - "Widget": "widget", - "special_guest": "specialGuest", - "application_controller": "applicationController", - "area51_controller": "area51Controller" - }, - CamelToUnderscoreWithoutReverse: { - "HTMLTidy": "html_tidy", - "HTMLTidyGenerator": "html_tidy_generator", - "FreeBSD": "free_bsd", - "HTML": "html" - }, - CamelWithModuleToUnderscoreWithSlash: { - "Admin.Product": "admin/product", - "Users.Commission.Department": "users/commission/department", - "UsersSection.CommissionDepartment": "users_section/commission_department" - }, - ClassNameToForeignKeyWithUnderscore: { - "Person": "person_id", - "MyApplication.Billing.Account": "account_id" - }, - ClassNameToForeignKeyWithoutUnderscore: { - "Person": "personid", - "MyApplication.Billing.Account": "accountid" - }, - ClassNameToTableName: { - "PrimarySpokesman": "primary_spokesmen", - "NodeChild": "node_children" - }, - UnderscoreToHuman: { - "employee_salary": "Employee salary", - "employee_id": "Employee", - "underground": "Underground" - }, - MixtureToTitleCase: { - 'bullet_record': 'Bullet Record', - 'BulletRecord': 'Bullet Record', - 'bullet web service': 'Bullet Web Service', - 'Bullet Web Service': 'Bullet Web Service', - 'Bullet web service': 'Bullet Web Service', - 'bulletwebservice': 'Bulletwebservice', - 'Bulletwebservice': 'Bulletwebservice', - "pavan's code": "Pavan's Code", - "Pavan's code": "Pavan's Code", - "pavan's Code": "Pavan's Code" - }, - OrdinalNumbers: { - "-1": "-1st", - "-2": "-2nd", - "-3": "-3rd", - "-4": "-4th", - "-5": "-5th", - "-6": "-6th", - "-7": "-7th", - "-8": "-8th", - "-9": "-9th", - "-10": "-10th", - "-11": "-11th", - "-12": "-12th", - "-13": "-13th", - "-14": "-14th", - "-20": "-20th", - "-21": "-21st", - "-22": "-22nd", - "-23": "-23rd", - "-24": "-24th", - "-100": "-100th", - "-101": "-101st", - "-102": "-102nd", - "-103": "-103rd", - "-104": "-104th", - "-110": "-110th", - "-111": "-111th", - "-112": "-112th", - "-113": "-113th", - "-1000": "-1000th", - "-1001": "-1001st", - "0": "0th", - "1": "1st", - "2": "2nd", - "3": "3rd", - "4": "4th", - "5": "5th", - "6": "6th", - "7": "7th", - "8": "8th", - "9": "9th", - "10": "10th", - "11": "11th", - "12": "12th", - "13": "13th", - "14": "14th", - "20": "20th", - "21": "21st", - "22": "22nd", - "23": "23rd", - "24": "24th", - "100": "100th", - "101": "101st", - "102": "102nd", - "103": "103rd", - "104": "104th", - "110": "110th", - "111": "111th", - "112": "112th", - "113": "113th", - "1000": "1000th", - "1001": "1001st" - }, - UnderscoresToDashes: { - "street": "street", - "street_address": "street-address", - "person_street_address": "person-street-address" - } - }; - -}).call(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/inflector/inflections-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/inflector/inflections-test.js deleted file mode 100644 index be8d9605..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/inflector/inflections-test.js +++ /dev/null @@ -1,87 +0,0 @@ -(function() { - var assert, vows; - - vows = require('vows'); - - assert = require('assert'); - - vows.describe('Module Inflector inflections').addBatch({ - 'Test inflector inflections': { - topic: require('../../lib/inflections'), - 'clear': { - 'single': function(topic) { - topic.uncountables = [1, 2, 3]; - topic.humans = [1, 2, 3]; - topic.clear('uncountables'); - assert.isEmpty(topic.uncountables); - return assert.deepEqual(topic.humans, [1, 2, 3]); - }, - 'all': function(topic) { - assert.deepEqual(topic.humans, [1, 2, 3]); - topic.uncountables = [1, 2, 3]; - topic.clear(); - assert.isEmpty(topic.uncountables); - return assert.isEmpty(topic.humans); - } - }, - 'uncountable': { - 'one item': function(topic) { - topic.clear(); - assert.isEmpty(topic.uncountables); - topic.uncountable('money'); - return assert.deepEqual(topic.uncountables, ['money']); - }, - 'many items': function(topic) { - topic.clear(); - assert.isEmpty(topic.uncountables); - topic.uncountable(['money', 'rice']); - return assert.deepEqual(topic.uncountables, ['money', 'rice']); - } - }, - 'human': function(topic) { - topic.clear(); - assert.isEmpty(topic.humans); - topic.human("legacy_col_person_name", "Name"); - return assert.deepEqual(topic.humans, [["legacy_col_person_name", "Name"]]); - }, - 'plural': function(topic) { - topic.clear(); - assert.isEmpty(topic.plurals); - topic.plural('ox', 'oxen'); - assert.deepEqual(topic.plurals, [['ox', 'oxen']]); - topic.uncountable('money'); - assert.deepEqual(topic.uncountables, ['money']); - topic.uncountable('monies'); - topic.plural('money', 'monies'); - assert.deepEqual(topic.plurals, [['money', 'monies'], ['ox', 'oxen']]); - return assert.isEmpty(topic.uncountables); - }, - 'singular': function(topic) { - topic.clear(); - assert.isEmpty(topic.singulars); - topic.singular('ox', 'oxen'); - assert.deepEqual(topic.singulars, [['ox', 'oxen']]); - topic.uncountable('money'); - assert.deepEqual(topic.uncountables, ['money']); - topic.uncountable('monies'); - topic.singular('money', 'monies'); - assert.deepEqual(topic.singulars, [['money', 'monies'], ['ox', 'oxen']]); - return assert.isEmpty(topic.uncountables); - }, - 'irregular': function(topic) { - topic.clear(); - topic.uncountable(['octopi', 'octopus']); - assert.deepEqual(topic.uncountables, ['octopi', 'octopus']); - topic.irregular('octopus', 'octopi'); - assert.isEmpty(topic.uncountables); - assert.equal(topic.singulars[0][0].toString(), /(o)ctopi$/i.toString()); - assert.equal(topic.singulars[0][1], '$1ctopus'); - assert.equal(topic.plurals[0][0].toString(), /(o)ctopi$/i.toString()); - assert.equal(topic.plurals[0][1], '$1ctopi'); - assert.equal(topic.plurals[1][0].toString(), /(o)ctopus$/i.toString()); - return assert.equal(topic.plurals[1][1].toString(), '$1ctopi'); - } - } - })["export"](module); - -}).call(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/inflector/methods-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/inflector/methods-test.js deleted file mode 100644 index d49d4140..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/inflector/methods-test.js +++ /dev/null @@ -1,345 +0,0 @@ -(function() { - var assert, cases, vows, util; - - vows = require('vows'); - - assert = require('assert'); - - util = require('../../lib/util'); - - cases = require('./cases'); - - vows.describe('Module Inflector methods').addBatch({ - 'Test inflector method': { - topic: require('../../lib/methods'), - 'camelize': { - 'word': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.CamelToUnderscore; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.camelize(words[i]), i)); - } - return _results; - }, - 'word with first letter lower': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.UnderscoreToLowerCamel; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.camelize(i, false), words[i])); - } - return _results; - }, - 'path': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.CamelWithModuleToUnderscoreWithSlash; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.camelize(words[i]), i)); - } - return _results; - }, - 'path with first letter lower': function(topic) { - return assert.equal(topic.camelize('bullet_record/errors', false), 'bulletRecord.Errors'); - } - }, - 'underscore': { - 'word': function(topic) { - var i, words, _i, _j, _len, _len2, _ref, _ref2, _results; - words = cases.CamelToUnderscore; - _ref = Object.keys(words); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - assert.equal(topic.underscore(i), words[i]); - } - words = cases.CamelToUnderscoreWithoutReverse; - _ref2 = Object.keys(words); - _results = []; - for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { - i = _ref2[_j]; - _results.push(assert.equal(topic.underscore(i), words[i])); - } - return _results; - }, - 'path': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.CamelWithModuleToUnderscoreWithSlash; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.underscore(i), words[i])); - } - return _results; - }, - 'from dasherize': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.UnderscoresToDashes; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.underscore(topic.dasherize(i)), i)); - } - return _results; - } - }, - 'dasherize': { - 'underscored_word': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.UnderscoresToDashes; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.dasherize(i), words[i])); - } - return _results; - } - }, - 'demodulize': { - 'module name': function(topic) { - return assert.equal(topic.demodulize('BulletRecord.CoreExtensions.Inflections'), 'Inflections'); - }, - 'isolated module name': function(topic) { - return assert.equal(topic.demodulize('Inflections'), 'Inflections'); - } - }, - 'foreign_key': { - 'normal': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.ClassNameToForeignKeyWithoutUnderscore; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.foreign_key(i, false), words[i])); - } - return _results; - }, - 'with_underscore': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.ClassNameToForeignKeyWithUnderscore; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.foreign_key(i), words[i])); - } - return _results; - } - }, - 'ordinalize': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.OrdinalNumbers; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.ordinalize(i), words[i])); - } - return _results; - } - } - }).addBatch({ - 'Test inflector inflection methods': { - topic: function() { - var Inflector; - Inflector = require('../../lib/methods'); - Inflector.inflections["default"](); - return Inflector; - }, - 'pluralize': { - 'empty': function(topic) { - return assert.equal(topic.pluralize(''), ''); - }, - 'uncountable': function(topic) { - return assert.equal(topic.pluralize('money'), 'money'); - }, - 'normal': function(topic) { - topic.inflections.irregular('octopus', 'octopi'); - return assert.equal(topic.pluralize('octopus'), 'octopi'); - }, - 'cases': function(topic) { - var i, words, _i, _j, _len, _len2, _ref, _ref2, _results; - words = cases.SingularToPlural; - _ref = Object.keys(words); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - assert.equal(topic.pluralize(i), words[i]); - } - _ref2 = Object.keys(words); - _results = []; - for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { - i = _ref2[_j]; - _results.push(assert.equal(topic.pluralize(util.string.capitalize(i)), util.string.capitalize(words[i]))); - } - return _results; - }, - 'cases plural': function(topic) { - var i, words, _i, _j, _len, _len2, _ref, _ref2, _results; - words = cases.SingularToPlural; - _ref = Object.keys(words); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - assert.equal(topic.pluralize(words[i]), words[i]); - } - _ref2 = Object.keys(words); - _results = []; - for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { - i = _ref2[_j]; - _results.push(assert.equal(topic.pluralize(util.string.capitalize(words[i])), util.string.capitalize(words[i]))); - } - return _results; - } - }, - 'singuralize': { - 'empty': function(topic) { - return assert.equal(topic.singularize(''), ''); - }, - 'uncountable': function(topic) { - return assert.equal(topic.singularize('money'), 'money'); - }, - 'normal': function(topic) { - topic.inflections.irregular('octopus', 'octopi'); - return assert.equal(topic.singularize('octopi'), 'octopus'); - }, - 'cases': function(topic) { - var i, words, _i, _j, _len, _len2, _ref, _ref2, _results; - words = cases.SingularToPlural; - _ref = Object.keys(words); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - assert.equal(topic.singularize(words[i]), i); - } - _ref2 = Object.keys(words); - _results = []; - for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { - i = _ref2[_j]; - _results.push(assert.equal(topic.singularize(util.string.capitalize(words[i])), util.string.capitalize(i))); - } - return _results; - } - }, - 'uncountablility': { - 'normal': function(topic) { - var i, words, _i, _j, _k, _len, _len2, _len3, _results; - words = topic.inflections.uncountables; - for (_i = 0, _len = words.length; _i < _len; _i++) { - i = words[_i]; - assert.equal(topic.singularize(i), i); - } - for (_j = 0, _len2 = words.length; _j < _len2; _j++) { - i = words[_j]; - assert.equal(topic.pluralize(i), i); - } - _results = []; - for (_k = 0, _len3 = words.length; _k < _len3; _k++) { - i = words[_k]; - _results.push(assert.equal(topic.singularize(i), topic.pluralize(i))); - } - return _results; - }, - 'greedy': function(topic) { - var countable_word, uncountable_word; - uncountable_word = "ors"; - countable_word = "sponsor"; - topic.inflections.uncountable(uncountable_word); - assert.equal(topic.singularize(uncountable_word), uncountable_word); - assert.equal(topic.pluralize(uncountable_word), uncountable_word); - assert.equal(topic.pluralize(uncountable_word), topic.singularize(uncountable_word)); - assert.equal(topic.singularize(countable_word), 'sponsor'); - assert.equal(topic.pluralize(countable_word), 'sponsors'); - return assert.equal(topic.singularize(topic.pluralize(countable_word)), 'sponsor'); - } - }, - 'humanize': { - 'normal': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.UnderscoreToHuman; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.humanize(i), words[i])); - } - return _results; - }, - 'with rule': function(topic) { - topic.inflections.human(/^(.*)_cnt$/i, '$1_count'); - topic.inflections.human(/^prefix_(.*)$/i, '$1'); - assert.equal(topic.humanize('jargon_cnt'), 'Jargon count'); - return assert.equal(topic.humanize('prefix_request'), 'Request'); - }, - 'with string': function(topic) { - topic.inflections.human('col_rpted_bugs', 'Reported bugs'); - assert.equal(topic.humanize('col_rpted_bugs'), 'Reported bugs'); - return assert.equal(topic.humanize('COL_rpted_bugs'), 'Col rpted bugs'); - }, - 'with _id': function(topic) { - return assert.equal(topic.humanize('author_id'), 'Author'); - } - }, - 'titleize': { - 'normal': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.MixtureToTitleCase; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.titleize(i), words[i])); - } - return _results; - }, - 'with hyphens': function(topic) { - return assert.equal(topic.titleize('x-men: the last stand'), 'X Men: The Last Stand'); - }, - 'with ampersands': function(topic) { - return assert.equal(topic.titleize('garfunkel & oates'), 'Garfunkel & Oates'); - } - }, - 'tableize': function(topic) { - var i, words, _i, _len, _ref, _results; - words = cases.ClassNameToTableName; - _ref = Object.keys(words); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results.push(assert.equal(topic.tableize(i), words[i])); - } - return _results; - }, - 'classify': { - 'underscore': function(topic) { - var i, words, _i, _j, _len, _len2, _ref, _ref2, _results; - words = cases.ClassNameToTableName; - _ref = Object.keys(words); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - assert.equal(topic.classify(words[i]), i); - } - _ref2 = Object.keys(words); - _results = []; - for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { - i = _ref2[_j]; - _results.push(assert.equal(topic.classify('table_prefix.' + words[i]), i)); - } - return _results; - }, - 'normal': function(topic) { - topic.inflections.irregular('octopus', 'octopi'); - return assert.equal(topic.classify('octopi'), 'Octopus'); - } - } - } - })["export"](module); - -}).call(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/utils/array-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/utils/array-test.js deleted file mode 100644 index 95ba2bc5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/utils/array-test.js +++ /dev/null @@ -1,39 +0,0 @@ -(function() { - var assert, vows, util; - - vows = require('vows'); - - assert = require('assert'); - - util = require('../../lib/util'); - - vows.describe('Module core extension Array').addBatch({ - 'Testing del': { - topic: ['a', 'b', 'c'], - 'element exists': { - 'first element': function(topic) { - return assert.deepEqual(util.array.del(topic, 'a'), ['b', 'c']); - }, - 'middle element': function(topic) { - return assert.deepEqual(util.array.del(topic, 'b'), ['a', 'c']); - }, - 'last element': function(topic) { - return assert.deepEqual(util.array.del(topic, 'c'), ['a', 'b']); - } - }, - 'element does not exist': function(topic) { - return assert.deepEqual(util.array.del(topic, 'd'), ['a', 'b', 'c']); - } - }, - 'Testing utils': { - topic: ['a', 'b', 'c'], - 'first': function(topic) { - return assert.equal(util.array.first(topic), 'a'); - }, - 'last': function(topic) { - return assert.equal(util.array.last(topic), 'c'); - } - } - })["export"](module); - -}).call(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/utils/string-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/utils/string-test.js deleted file mode 100644 index e9322331..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/i/test/utils/string-test.js +++ /dev/null @@ -1,88 +0,0 @@ -(function() { - var assert, vows, util; - - vows = require('vows'); - - assert = require('assert'); - - util = require('../../lib/util'); - - vows.describe('Module core extension String').addBatch({ - 'Testing value': { - topic: 'bullet', - 'join the keys': function(topic) { - return assert.equal(util.string.value(topic), 'bullet'); - } - }, - 'Testing gsub': { - topic: 'bullet', - 'when no args': function(topic) { - return assert.equal(util.string.gsub(topic), 'bullet'); - }, - 'when only 1 arg': function(topic) { - return assert.equal(util.string.gsub(topic, /./), 'bullet'); - }, - 'when given proper args': function(topic) { - return assert.equal(util.string.gsub(topic, /[aeiou]/, '*'), 'b*ll*t'); - }, - 'when replacement is a function': { - 'with many groups': function(topic) { - var str; - str = util.string.gsub(topic, /([aeiou])(.)/, function($) { - return "<" + $[1] + ">" + $[2]; - }); - return assert.equal(str, 'bllt'); - }, - 'with no groups': function(topic) { - var str; - str = util.string.gsub(topic, /[aeiou]/, function($) { - return "<" + $[1] + ">"; - }); - return assert.equal(str, 'bllt'); - } - }, - 'when replacement is special': { - 'with many groups': function(topic) { - return assert.equal(util.string.gsub(topic, /([aeiou])(.)/, '<$1>$2'), 'bllt'); - }, - 'with no groups': function(topic) { - return assert.equal(util.string.gsub(topic, /[aeiou]/, '<$1>'), 'bllt'); - } - } - }, - 'Testing capitalize': { - topic: 'employee salary', - 'normal': function(topic) { - return assert.equal(util.string.capitalize(topic), 'Employee Salary'); - } - }, - 'Testing upcase': { - topic: 'bullet', - 'only first letter should be upcase': function(topic) { - return assert.equal(util.string.upcase(topic), 'Bullet'); - }, - 'letter after underscore': function(topic) { - return assert.equal(util.string.upcase('bullet_record'), 'Bullet_Record'); - }, - 'letter after slash': function(topic) { - return assert.equal(util.string.upcase('bullet_record/errors'), 'Bullet_Record/Errors'); - }, - 'no letter after space': function(topic) { - return assert.equal(util.string.upcase('employee salary'), 'Employee salary'); - } - }, - 'Testing downcase': { - topic: 'BULLET', - 'only first letter should be downcase': function(topic) { - return assert.equal(util.string.downcase(topic), 'bULLET'); - }, - 'letter after underscore': function(topic) { - return assert.equal(util.string.downcase('BULLET_RECORD'), 'bULLET_rECORD'); - }, - 'letter after slash': function(topic) { - return assert.equal(util.string.downcase('BULLET_RECORD/ERRORS'), 'bULLET_rECORD/eRRORS'); - } - } - })["export"](module); - -}).call(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/.npmignore deleted file mode 100644 index 9ecd205c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -.*.sw[op] -.DS_Store -test/fixtures/out diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/.travis.yml deleted file mode 100644 index 3a05aef8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: node_js - -node_js: - - 0.4 - - 0.6 - - 0.7 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/LICENSE.md deleted file mode 100644 index e2b9b413..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# MIT License - -###Copyright (C) 2011 by Charlie McConnell - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/README.md deleted file mode 100644 index 745fe99c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# ncp - Asynchronous recursive file & directory copying - -[![Build Status](https://secure.travis-ci.org/AvianFlu/ncp.png)](http://travis-ci.org/AvianFlu/ncp) - -Think `cp -r`, but pure node, and asynchronous. `ncp` can be used both as a CLI tool and programmatically. - -## Command Line usage - -Usage is simple: `ncp [source] [dest] [--limit=concurrency limit] -[--filter=filter] --stopOnErr` - -The 'filter' is a Regular Expression - matched files will be copied. - -The 'concurrency limit' is an integer that represents how many pending file system requests `ncp` has at a time. - -'stopOnErr' is a boolean flag that will tell `ncp` to stop immediately if any -errors arise, rather than attempting to continue while logging errors. - -If there are no errors, `ncp` will output `done.` when complete. If there are errors, the error messages will be logged to `stdout` and to `./ncp-debug.log`, and the copy operation will attempt to continue. - -## Programmatic usage - -Programmatic usage of `ncp` is just as simple. The only argument to the completion callback is a possible error. - -```javascript -var ncp = require('ncp').ncp; - -ncp.limit = 16; - -ncp(source, destination, function (err) { - if (err) { - return console.error(err); - } - console.log('done!'); -}); -``` - -You can also call ncp like `ncp(source, destination, options, callback)`. -`options` should be a dictionary. Currently, such options are available: - - * `options.filter` - a `RegExp` instance, against which each file name is - tested to determine whether to copy it or not, or a function taking single - parameter: copied file name, returning `true` or `false`, determining - whether to copy file or not. - -Please open an issue if any bugs arise. As always, I accept (working) pull requests, and refunds are available at `/dev/null`. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/bin/ncp b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/bin/ncp deleted file mode 100755 index 388eaba6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/bin/ncp +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env node - - - - -var ncp = require('../lib/ncp'), - args = process.argv.slice(2), - source, dest; - -if (args.length < 2) { - console.error('Usage: ncp [source] [destination] [--filter=filter] [--limit=concurrency limit]'); - process.exit(1); -} - -// parse arguments the hard way -function startsWith(str, prefix) { - return str.substr(0, prefix.length) == prefix; -} - -var options = {}; -args.forEach(function (arg) { - if (startsWith(arg, "--limit=")) { - options.limit = parseInt(arg.split('=', 2)[1], 10); - } - if (startsWith(arg, "--filter=")) { - options.filter = new RegExp(arg.split('=', 2)[1]); - } - if (startsWith(arg, "--stoponerr")) { - options.stopOnErr = true; - } -}); - -ncp.ncp(args[0], args[1], options, function (err) { - if (Array.isArray(err)) { - console.error('There were errors during the copy.'); - err.forEach(function (err) { - console.error(err.stack || err.message); - }); - process.exit(1); - } - else if (err) { - console.error('An error has occurred.'); - console.error(err.stack || err.message); - process.exit(1); - } -}); - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/lib/ncp.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/lib/ncp.js deleted file mode 100644 index 82d64c39..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/lib/ncp.js +++ /dev/null @@ -1,216 +0,0 @@ -var fs = require('fs'), - path = require('path'); - -var ncp = exports; - -ncp.ncp = function (source, dest, options, callback) { - if (!callback) { - callback = options; - options = {}; - } - - var basePath = process.cwd(), - currentPath = path.resolve(basePath, source), - targetPath = path.resolve(basePath, dest), - filter = options.filter, - errs = null, - started = 0, - finished = 0, - running = 0, - limit = options.limit || ncp.limit || 16; - - limit = (limit < 1) ? 1 : (limit > 512) ? 512 : limit; - - startCopy(currentPath); - - function startCopy(source) { - started++; - if (filter) { - if (filter instanceof RegExp) { - if (!filter.test(source)) { - return cb(true); - } - } - else if (typeof filter === 'function') { - if (!filter(source)) { - return cb(true); - } - } - } - return getStats(source); - } - - function defer(fn) { - if (typeof(setImmediate) === 'function') - return setImmediate(fn); - return process.nextTick(fn); - } - - function getStats(source) { - if (running >= limit) { - return defer(function () { - getStats(source); - }); - } - running++; - fs.lstat(source, function (err, stats) { - var item = {}; - if (err) { - return onError(err); - } - - // We need to get the mode from the stats object and preserve it. - item.name = source; - item.mode = stats.mode; - - if (stats.isDirectory()) { - return onDir(item); - } - else if (stats.isFile()) { - return onFile(item); - } - else if (stats.isSymbolicLink()) { - // Symlinks don't really need to know about the mode. - return onLink(source); - } - }); - } - - function onFile(file) { - var target = file.name.replace(currentPath, targetPath); - isWritable(target, function (writable) { - if (writable) { - return copyFile(file, target); - } - rmFile(target, function () { - copyFile(file, target); - }); - }); - } - - function copyFile(file, target) { - var readStream = fs.createReadStream(file.name), - writeStream = fs.createWriteStream(target, { mode: file.mode }); - readStream.pipe(writeStream); - readStream.once('end', cb); - } - - function rmFile(file, done) { - fs.unlink(file, function (err) { - if (err) { - return onError(err); - } - return done(); - }); - } - - function onDir(dir) { - var target = dir.name.replace(currentPath, targetPath); - isWritable(target, function (writable) { - if (writable) { - return mkDir(dir, target); - } - copyDir(dir.name); - }); - } - - function mkDir(dir, target) { - fs.mkdir(target, dir.mode, function (err) { - if (err) { - return onError(err); - } - copyDir(dir.name); - }); - } - - function copyDir(dir) { - fs.readdir(dir, function (err, items) { - if (err) { - return onError(err); - } - items.forEach(function (item) { - startCopy(dir + '/' + item); - }); - return cb(); - }); - } - - function onLink(link) { - var target = link.replace(currentPath, targetPath); - fs.readlink(link, function (err, resolvedPath) { - if (err) { - return onError(err); - } - checkLink(resolvedPath, target); - }); - } - - function checkLink(resolvedPath, target) { - isWritable(target, function (writable) { - if (writable) { - return makeLink(resolvedPath, target); - } - fs.readlink(target, function (err, targetDest) { - if (err) { - return onError(err); - } - if (targetDest === resolvedPath) { - return cb(); - } - return rmFile(target, function () { - makeLink(resolvedPath, target); - }); - }); - }); - } - - function makeLink(linkPath, target) { - fs.symlink(linkPath, target, function (err) { - if (err) { - return onError(err); - } - return cb(); - }); - } - - function isWritable(path, done) { - fs.lstat(path, function (err, stats) { - if (err) { - if (err.code === 'ENOENT') return done(true); - return done(false); - } - return done(false); - }); - } - - function onError(err) { - if (options.stopOnError) { - return callback(err); - } - else if (!errs && options.errs) { - errs = fs.createWriteStream(options.errs); - } - else if (!errs) { - errs = []; - } - else if (options.errs) { - if (typeof errs.write === 'undefined') { - errs.push(err); - } - else { - errs.write(err.stack + '\n\n'); - } - } - return cb(); - } - - function cb(skipped) { - if (!skipped) running--; - finished++; - if ((started === finished) && (running === 0)) { - return errs ? callback(errs) : callback(null); - } - } -}; - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/package.json deleted file mode 100644 index 90e9c460..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "ncp", - "version": "0.2.7", - "author": { - "name": "AvianFlu", - "email": "charlie@charlieistheman.com" - }, - "description": "Asynchronous recursive file copy utility.", - "bin": { - "ncp": "./bin/ncp" - }, - "devDependencies": { - "vows": "0.6.x", - "rimraf": "1.0.x", - "read-dir-files": "0.0.x" - }, - "main": "./lib/ncp.js", - "repository": { - "type": "git", - "url": "git+https://github.com/AvianFlu/ncp.git" - }, - "keywords": [ - "cli", - "copy" - ], - "license": "MIT", - "engine": { - "node": ">=0.4" - }, - "scripts": { - "test": "vows --isolate --spec" - }, - "_id": "ncp@0.2.7", - "dist": { - "shasum": "46fac2b7dda2560a4cb7e628677bd5f64eac5be1", - "tarball": "https://registry.npmjs.org/ncp/-/ncp-0.2.7.tgz" - }, - "_from": "ncp@>=0.2.0 <0.3.0", - "_npmVersion": "1.2.2", - "_npmUser": { - "name": "avianflu", - "email": "charlie@charlieistheman.com" - }, - "maintainers": [ - { - "name": "avianflu", - "email": "charlie@charlieistheman.com" - } - ], - "directories": {}, - "_shasum": "46fac2b7dda2560a4cb7e628677bd5f64eac5be1", - "_resolved": "https://registry.npmjs.org/ncp/-/ncp-0.2.7.tgz", - "bugs": { - "url": "https://github.com/AvianFlu/ncp/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/AvianFlu/ncp#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/a b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/a deleted file mode 100644 index 802992c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/a +++ /dev/null @@ -1 +0,0 @@ -Hello world diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/b b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/b deleted file mode 100644 index 9f6bb185..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/b +++ /dev/null @@ -1 +0,0 @@ -Hello ncp diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/c b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/c deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/d b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/d deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/e b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/e deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/f b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/f deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/sub/a b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/sub/a deleted file mode 100644 index cf291b5e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/sub/a +++ /dev/null @@ -1 +0,0 @@ -Hello nodejitsu diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/sub/b b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/fixtures/src/sub/b deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/ncp-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/ncp-test.js deleted file mode 100644 index 3783f603..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/ncp/test/ncp-test.js +++ /dev/null @@ -1,74 +0,0 @@ -var assert = require('assert'), - path = require('path'), - rimraf = require('rimraf'), - vows = require('vows'), - readDirFiles = require('read-dir-files'), - ncp = require('../').ncp; - -var fixtures = path.join(__dirname, 'fixtures'), - src = path.join(fixtures, 'src'), - out = path.join(fixtures, 'out'); - -vows.describe('ncp').addBatch({ - 'When copying a directory of files': { - topic: function () { - var cb = this.callback; - rimraf(out, function () { - ncp(src, out, cb); - }); - }, - 'files should be copied': { - topic: function () { - var cb = this.callback; - - readDirFiles(src, 'utf8', function (srcErr, srcFiles) { - readDirFiles(out, 'utf8', function (outErr, outFiles) { - cb(outErr, srcFiles, outFiles); - }); - }); - }, - 'and the destination should match the source': function (err, srcFiles, outFiles) { - assert.isNull(err); - assert.deepEqual(srcFiles, outFiles); - } - } - } -}).addBatch({ - 'When copying files using filter': { - topic: function() { - var cb = this.callback; - var filter = function(name) { - return name.substr(name.length - 1) != 'a' - } - rimraf(out, function () { - ncp(src, out, {filter: filter}, cb); - }); - }, - 'it should copy files': { - topic: function () { - var cb = this.callback; - - readDirFiles(src, 'utf8', function (srcErr, srcFiles) { - function filter(files) { - for (var fileName in files) { - var curFile = files[fileName]; - if (curFile instanceof Object) - return filter(curFile); - if (fileName.substr(fileName.length - 1) == 'a') - delete files[fileName]; - } - } - filter(srcFiles); - readDirFiles(out, 'utf8', function (outErr, outFiles) { - cb(outErr, srcFiles, outFiles); - }); - }); - }, - 'and destination files should match source files that pass filter': function (err, srcFiles, outFiles) { - assert.isNull(err); - assert.deepEqual(srcFiles, outFiles); - } - } - } -}).export(module); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/AUTHORS b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/AUTHORS deleted file mode 100644 index 008cbe7d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/AUTHORS +++ /dev/null @@ -1,5 +0,0 @@ -# Authors sorted by whether or not they're me. -Isaac Z. Schlueter (http://blog.izs.me) -Wayne Larsen (http://github.com/wvl) -ritch -Marcel Laverdet diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/LICENSE deleted file mode 100644 index 05a40109..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2009, 2010, 2011 Isaac Z. Schlueter. -All rights reserved. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/README.md deleted file mode 100644 index 99983dc4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/README.md +++ /dev/null @@ -1,32 +0,0 @@ -A `rm -rf` for node. - -Install with `npm install rimraf`, or just drop rimraf.js somewhere. - -## API - -`rimraf(f, [options,] callback)` - -The callback will be called with an error if there is one. Certain -errors are handled for you: - -* `EBUSY` - rimraf will back off a maximum of opts.maxBusyTries times - before giving up. -* `EMFILE` - If too many file descriptors get opened, rimraf will - patiently wait until more become available. - -## Options - -The options object is optional. These fields are respected: - -* `maxBusyTries` - The number of times to retry a file or folder in the - event of an `EBUSY` error. The default is 3. -* `gently` - If provided a `gently` path, then rimraf will only delete - files and folders that are beneath this path, and only delete symbolic - links that point to a place within this path. (This is very important - to npm's use-case, and shows rimraf's pedigree.) - - -## rimraf.sync - -It can remove stuff synchronously, too. But that's not so good. Use -the async API. It's better. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/fiber.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/fiber.js deleted file mode 100644 index 8812a6b4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/fiber.js +++ /dev/null @@ -1,86 +0,0 @@ -// fiber/future port originally written by Marcel Laverdet -// https://gist.github.com/1131093 -// I updated it to bring to feature parity with cb version. -// The bugs are probably mine, not Marcel's. -// -- isaacs - -var path = require('path') - , fs = require('fs') - , Future = require('fibers/future') - -// Create future-returning fs functions -var fs2 = {} -for (var ii in fs) { - fs2[ii] = Future.wrap(fs[ii]) -} - -// Return a future which just pauses for a certain amount of time - -function timer (ms) { - var future = new Future - setTimeout(function () { - future.return() - }, ms) - return future -} - -function realish (p) { - return path.resolve(path.dirname(fs2.readlink(p))) -} - -// for EMFILE backoff. -var timeout = 0 - , EMFILE_MAX = 1000 - -function rimraf_ (p, opts) { - opts = opts || {} - opts.maxBusyTries = opts.maxBusyTries || 3 - if (opts.gently) opts.gently = path.resolve(opts.gently) - var busyTries = 0 - - // exits by throwing or returning. - // loops on handled errors. - while (true) { - try { - var stat = fs2.lstat(p).wait() - - // check to make sure that symlinks are ours. - if (opts.gently) { - var rp = stat.isSymbolicLink() ? realish(p) : path.resolve(p) - if (rp.indexOf(opts.gently) !== 0) { - var er = new Error("Refusing to delete: "+p+" not in "+opts.gently) - er.errno = require("constants").EEXIST - er.code = "EEXIST" - er.path = p - throw er - } - } - - if (!stat.isDirectory()) return fs2.unlink(p).wait() - - var rimrafs = fs2.readdir(p).wait().map(function (file) { - return rimraf(path.join(p, file), opts) - }) - - Future.wait(rimrafs) - fs2.rmdir(p).wait() - timeout = 0 - return - - } catch (er) { - if (er.message.match(/^EMFILE/) && timeout < EMFILE_MAX) { - timer(timeout++).wait() - } else if (er.message.match(/^EBUSY/) - && busyTries < opt.maxBusyTries) { - timer(++busyTries * 100).wait() - } else if (er.message.match(/^ENOENT/)) { - // already gone - return - } else { - throw er - } - } - } -} - -var rimraf = module.exports = rimraf_.future() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/package.json deleted file mode 100644 index af9b9e5f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "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": "https://registry.npmjs.org/rimraf/-/rimraf-1.0.9.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_shasum": "be4801ff76c2ba6f1c50c78e9700eb1d21f239f1", - "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-1.0.9.tgz", - "_from": "rimraf@>=1.0.0 <2.0.0", - "bugs": { - "url": "https://github.com/isaacs/rimraf/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/isaacs/rimraf#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/rimraf.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/rimraf.js deleted file mode 100644 index e8104e9e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/rimraf.js +++ /dev/null @@ -1,145 +0,0 @@ -module.exports = rimraf -rimraf.sync = rimrafSync - -var path = require("path") - , fs - -try { - // optional dependency - fs = require("graceful-fs") -} catch (er) { - fs = require("fs") -} - -var lstat = process.platform === "win32" ? "stat" : "lstat" - , lstatSync = lstat + "Sync" - -// for EMFILE handling -var timeout = 0 - , EMFILE_MAX = 1000 - -function rimraf (p, opts, cb) { - if (typeof opts === "function") cb = opts, opts = {} - - if (!cb) throw new Error("No callback passed to rimraf()") - if (!opts) opts = {} - - var busyTries = 0 - opts.maxBusyTries = opts.maxBusyTries || 3 - - if (opts.gently) opts.gently = path.resolve(opts.gently) - - rimraf_(p, opts, function CB (er) { - if (er) { - if (er.code === "EBUSY" && busyTries < opts.maxBusyTries) { - var time = (opts.maxBusyTries - busyTries) * 100 - busyTries ++ - // try again, with the same exact callback as this one. - return setTimeout(function () { - rimraf_(p, opts, CB) - }) - } - - // this one won't happen if graceful-fs is used. - if (er.code === "EMFILE" && timeout < EMFILE_MAX) { - return setTimeout(function () { - rimraf_(p, opts, CB) - }, timeout ++) - } - - // already gone - if (er.code === "ENOENT") er = null - } - - timeout = 0 - cb(er) - }) -} - -function rimraf_ (p, opts, cb) { - fs[lstat](p, function (er, s) { - // if the stat fails, then assume it's already gone. - if (er) { - // already gone - if (er.code === "ENOENT") return cb() - // some other kind of error, permissions, etc. - return cb(er) - } - - // don't delete that don't point actually live in the "gently" path - if (opts.gently) return clobberTest(p, s, opts, cb) - return rm_(p, s, opts, cb) - }) -} - -function rm_ (p, s, opts, cb) { - if (!s.isDirectory()) return fs.unlink(p, cb) - fs.readdir(p, function (er, files) { - if (er) return cb(er) - asyncForEach(files.map(function (f) { - return path.join(p, f) - }), function (file, cb) { - rimraf(file, opts, cb) - }, function (er) { - if (er) return cb(er) - fs.rmdir(p, cb) - }) - }) -} - -function clobberTest (p, s, opts, cb) { - var gently = opts.gently - if (!s.isSymbolicLink()) next(null, path.resolve(p)) - else realish(p, next) - - function next (er, rp) { - if (er) return rm_(p, s, cb) - if (rp.indexOf(gently) !== 0) return clobberFail(p, gently, cb) - else return rm_(p, s, opts, cb) - } -} - -function realish (p, cb) { - fs.readlink(p, function (er, r) { - if (er) return cb(er) - return cb(null, path.resolve(path.dirname(p), r)) - }) -} - -function clobberFail (p, g, cb) { - var er = new Error("Refusing to delete: "+p+" not in "+g) - , constants = require("constants") - er.errno = constants.EEXIST - er.code = "EEXIST" - er.path = p - return cb(er) -} - -function asyncForEach (list, fn, cb) { - if (!list.length) cb() - var c = list.length - , errState = null - list.forEach(function (item, i, list) { - fn(item, function (er) { - if (errState) return - if (er) return cb(errState = er) - if (-- c === 0) return cb() - }) - }) -} - -// this looks simpler, but it will fail with big directory trees, -// or on slow stupid awful cygwin filesystems -function rimrafSync (p) { - try { - var s = fs[lstatSync](p) - } catch (er) { - if (er.code === "ENOENT") return - throw er - } - if (!s.isDirectory()) return fs.unlinkSync(p) - fs.readdirSync(p).forEach(function (f) { - rimrafSync(path.join(p, f)) - }) - fs.rmdirSync(p) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/run.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/run.sh deleted file mode 100644 index 598f0163..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -e -for i in test-*.js; do - echo -n $i ... - bash setup.sh - node $i - ! [ -d target ] - echo "pass" -done -rm -rf target diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/setup.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/setup.sh deleted file mode 100644 index 2602e631..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/setup.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -set -e - -files=10 -folders=2 -depth=4 -target="$PWD/target" - -rm -rf target - -fill () { - local depth=$1 - local files=$2 - local folders=$3 - local target=$4 - - if ! [ -d $target ]; then - mkdir -p $target - fi - - local f - - f=$files - while [ $f -gt 0 ]; do - touch "$target/f-$depth-$f" - let f-- - done - - let depth-- - - if [ $depth -le 0 ]; then - return 0 - fi - - f=$folders - while [ $f -gt 0 ]; do - mkdir "$target/folder-$depth-$f" - fill $depth $files $folders "$target/d-$depth-$f" - let f-- - done -} - -fill $depth $files $folders $target - -# sanity assert -[ -d $target ] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/test-async.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/test-async.js deleted file mode 100644 index 9c2e0b7b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/test-async.js +++ /dev/null @@ -1,5 +0,0 @@ -var rimraf = require("../rimraf") - , path = require("path") -rimraf(path.join(__dirname, "target"), function (er) { - if (er) throw er -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/test-fiber.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/test-fiber.js deleted file mode 100644 index 20d61a10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/test-fiber.js +++ /dev/null @@ -1,15 +0,0 @@ -var rimraf - , path = require("path") - -try { - rimraf = require("../fiber") -} catch (er) { - console.error("skipping fiber test") -} - -if (rimraf) { - Fiber(function () { - rimraf(path.join(__dirname, "target")).wait() - }).run() -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/test-sync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/test-sync.js deleted file mode 100644 index eb71f104..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/node_modules/rimraf/test/test-sync.js +++ /dev/null @@ -1,3 +0,0 @@ -var rimraf = require("../rimraf") - , path = require("path") -rimraf.sync(path.join(__dirname, "target")) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/package.json deleted file mode 100644 index c745e0a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "utile", - "description": "A drop-in replacement for `util` with some additional advantageous functions", - "version": "0.1.7", - "author": { - "name": "Nodejitsu Inc.", - "email": "info@nodejitsu.com" - }, - "maintainers": [ - { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - }, - { - "name": "mmalecki", - "email": "me@mmalecki.com" - } - ], - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/flatiron/utile.git" - }, - "dependencies": { - "async": "0.1.x", - "deep-equal": "*", - "i": "0.3.x", - "mkdirp": "0.x.x", - "ncp": "0.2.x", - "rimraf": "1.x.x" - }, - "devDependencies": { - "vows": "0.6.x" - }, - "scripts": { - "test": "vows --spec" - }, - "main": "./lib/index", - "engines": { - "node": ">= 0.6.4" - }, - "_id": "utile@0.1.7", - "dist": { - "shasum": "55db180d54475339fd6dd9e2d14a4c0b52624b69", - "tarball": "https://registry.npmjs.org/utile/-/utile-0.1.7.tgz" - }, - "_npmVersion": "1.1.70", - "_npmUser": { - "name": "mmalecki", - "email": "me@mmalecki.com" - }, - "directories": {}, - "_shasum": "55db180d54475339fd6dd9e2d14a4c0b52624b69", - "_resolved": "https://registry.npmjs.org/utile/-/utile-0.1.7.tgz", - "_from": "utile@>=0.1.0 <0.2.0", - "bugs": { - "url": "https://github.com/flatiron/utile/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/flatiron/utile#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/file-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/file-test.js deleted file mode 100644 index 93ea089e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/file-test.js +++ /dev/null @@ -1,31 +0,0 @@ -/* - * file-test.js: Tests for `utile.file` module. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var assert = require('assert'), - path = require('path'), - vows = require('vows'), - macros = require('./helpers/macros'), - utile = require('../'); - -var fixture = path.join(__dirname, 'fixtures', 'read-json-file', 'config.json'); - -vows.describe('utile/file').addBatch({ - 'When using utile': { - 'the `.file.readJson()` function': { - topic: function () { - utile.file.readJson(fixture, this.callback); - }, - 'should return correct JSON structure': macros.assertReadCorrectJson - }, - 'the `.file.readJsonSync()` function': { - topic: utile.file.readJsonSync(fixture), - 'should return correct JSON structure': macros.assertReadCorrectJson - } - } -}).export(module); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/fixtures/read-json-file/config.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/fixtures/read-json-file/config.json deleted file mode 100644 index e12a1068..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/fixtures/read-json-file/config.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "hello": "World", - "I am": ["the utile module"], - "thisMakesMe": { - "really": 1337, - "right?": true - } -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/fixtures/require-directory/directory/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/fixtures/require-directory/directory/index.js deleted file mode 100644 index 1afb4897..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/fixtures/require-directory/directory/index.js +++ /dev/null @@ -1,2 +0,0 @@ -exports.me = 'directory/index.js'; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/fixtures/require-directory/helloWorld.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/fixtures/require-directory/helloWorld.js deleted file mode 100644 index 1c842ec9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/fixtures/require-directory/helloWorld.js +++ /dev/null @@ -1,2 +0,0 @@ -exports.me = 'helloWorld.js'; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/format-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/format-test.js deleted file mode 100644 index fb1a2b74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/format-test.js +++ /dev/null @@ -1,31 +0,0 @@ -/* - * format-test.js: Tests for `utile.format` module. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var vows = require('vows'), - assert = require('assert'), - utile = require('../lib'); - -vows.describe('utile/format').addBatch({ - - 'Should use the original `util.format` if there are no custom parameters to replace.': function() { - assert.equal(utile.format('%s %s %s', 'test', 'test2', 'test3'), 'test test2 test3'); - }, - - 'Should use `utile.format` if custom parameters are provided.': function() { - assert.equal(utile.format('%a %b %c', [ - '%a', - '%b', - '%c' - ], [ - 'test', - 'test2', - 'test3' - ]), 'test test2 test3'); - } - -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/function-args-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/function-args-test.js deleted file mode 100644 index b2852eb8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/function-args-test.js +++ /dev/null @@ -1,104 +0,0 @@ -/* - * function-args-test.js: Tests for `args` method - * - * (C) 2012, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var assert = require('assert'), - path = require('path'), - vows = require('vows'), - macros = require('./helpers/macros'), - utile = require('../'); - -vows.describe('utile/args').addBatch({ - 'When using utile': { - 'the `args` function': { - topic: utile, - 'should be a function': function (_utile) { - assert.isFunction(_utile.args); - }, - } - }, - 'utile.rargs()': { - 'with no arguments': { - topic: utile.rargs(), - 'should return an empty object': function (result) { - assert.isArray(result); - assert.lengthOf(result, 0); - } - }, - 'with simple arguments': { - topic: function () { - return (function () { - return utile.rargs(arguments); - })('a', 'b', 'c'); - }, - 'should return an array with three items': function (result) { - assert.isArray(result); - assert.equal(3, result.length); - assert.equal(result[0], 'a'); - assert.equal(result[1], 'b'); - assert.equal(result[2], 'c'); - } - }, - 'with a simple slice': { - topic: function () { - return (function () { - return utile.rargs(arguments, 1); - })('a', 'b', 'c'); - }, - 'should return an array with three items': function (result) { - assert.isArray(result); - assert.equal(2, result.length); - assert.equal(result[0], 'b'); - assert.equal(result[1], 'c'); - } - } - }, - 'utile.args()': { - 'with no arguments': { - topic: utile.args(), - 'should return an empty Array': function (result) { - assert.isUndefined(result.callback); - assert.isArray(result); - assert.lengthOf(result, 0); - } - }, - 'with simple arguments': { - topic: function () { - return (function () { - return utile.args(arguments); - })('a', 'b', 'c', function () { - return 'ok'; - }); - }, - 'should return an array with three items': function (result) { - assert.isArray(result); - assert.equal(3, result.length); - assert.equal(result[0], 'a'); - assert.equal(result[1], 'b'); - assert.equal(result[2], 'c'); - - // - // Ensure that the Array returned - // by `utile.args()` enumerates correctly - // - var length = 0; - result.forEach(function (item) { - length++; - }); - - assert.equal(length, 3); - }, - 'should return lookup helpers': function (result) { - assert.isArray(result); - assert.equal(result.first, 'a'); - assert.equal(result.last, 'c'); - assert.isFunction(result.callback); - assert.isFunction(result.cb); - } - } - } -}).export(module); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/helpers/macros.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/helpers/macros.js deleted file mode 100644 index 66f386d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/helpers/macros.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - * macros.js: Test macros for `utile` module. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var assert = require('assert'), - utile = require('../../lib'); - -var macros = exports; - -macros.assertReadCorrectJson = function (obj) { - assert.isObject(obj); - utile.deepEqual(obj, { - hello: 'World', - 'I am': ['the utile module'], - thisMakesMe: { - really: 1337, - 'right?': true - } - }); -}; - -macros.assertDirectoryRequired = function (obj) { - assert.isObject(obj); - utile.deepEqual(obj, { - directory: { - me: 'directory/index.js' - }, - helloWorld: { - me: 'helloWorld.js' - } - }); -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/random-string-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/random-string-test.js deleted file mode 100644 index c21af3fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/random-string-test.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * common-test.js : testing common.js for expected functionality - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var assert = require('assert'), - vows = require('vows'), - utile = require('../lib'); - -vows.describe('utile/randomString').addBatch({ - "When using utile": { - "the randomString() function": { - topic: function () { - return utile.randomString(); - }, - "should return 16 characters that are actually random by default": function (random) { - assert.isString(random); - assert.lengthOf(random, 16); - assert.notEqual(random, utile.randomString()); - }, - "when you can asked for different length strings": { - topic: function () { - return [utile.randomString(4), utile.randomString(128)]; - }, - "where they actually are of length 4, 128": function (strings) { - assert.isArray(strings); - assert.lengthOf(strings,2); - assert.isString(strings[0]); - assert.isString(strings[1]); - assert.lengthOf(strings[0], 4); - assert.lengthOf(strings[1], 128); - assert.notEqual(strings[0], strings[1].substr(0,4)); - } - } - } - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/require-directory-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/require-directory-test.js deleted file mode 100644 index ce7ea835..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/require-directory-test.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * require-directory-test.js: Tests for `requireDir` and `requireDirLazy` - * methods. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var assert = require('assert'), - path = require('path'), - vows = require('vows'), - macros = require('./helpers/macros'), - utile = require('../'); - -var requireFixtures = path.join(__dirname, 'fixtures', 'require-directory'); - -vows.describe('utile/require-directory').addBatch({ - 'When using utile': { - 'the `requireDir()` function': { - topic: utile.requireDir(requireFixtures), - 'should contain all wanted modules': macros.assertDirectoryRequired - }, - 'the `requireDirLazy()` function': { - topic: utile.requireDirLazy(requireFixtures), - 'all properties should be getters': function (obj) { - assert.isObject(obj); - assert.isTrue(!!Object.getOwnPropertyDescriptor(obj, 'directory').get); - assert.isTrue(!!Object.getOwnPropertyDescriptor(obj, 'helloWorld').get); - }, - 'should contain all wanted modules': macros.assertDirectoryRequired - } - } -}).export(module); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/utile-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/utile-test.js deleted file mode 100644 index 7dd5b0f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/utile/test/utile-test.js +++ /dev/null @@ -1,126 +0,0 @@ -/* - * utile-test.js: Tests for `utile` module. - * - * (C) 2011, Nodejitsu Inc. - * MIT LICENSE - * - */ - -var assert = require('assert'), - vows = require('vows'), - utile = require('../lib'); - -var obj1, obj2; - -obj1 = { - foo: true, - bar: { - bar1: true, - bar2: 'bar2' - } -}; - -obj2 = { - baz: true, - buzz: 'buzz' -}; - -Object.defineProperties(obj2, { - - 'bazz': { - get: function() { - return 'bazz'; - }, - - set: function() { - return 'bazz'; - } - }, - - 'wat': { - set: function() { - return 'wat'; - } - } - -}); - -vows.describe('utile').addBatch({ - "When using utile": { - "it should have the same methods as the `util` module": function () { - Object.keys(require('util')).forEach(function (fn) { - assert.isFunction(utile[fn]); - }); - }, - "it should have the correct methods defined": function () { - assert.isFunction(utile.mixin); - assert.isFunction(utile.clone); - assert.isFunction(utile.rimraf); - assert.isFunction(utile.mkdirp); - assert.isFunction(utile.cpr); - }, - "the mixin() method": function () { - var mixed = utile.mixin({}, obj1, obj2); - assert.isTrue(mixed.foo); - assert.isObject(mixed.bar); - assert.isTrue(mixed.baz); - assert.isString(mixed.buzz); - assert.isTrue(!!Object.getOwnPropertyDescriptor(mixed, 'bazz').get); - assert.isTrue(!!Object.getOwnPropertyDescriptor(mixed, 'bazz').set); - assert.isTrue(!!Object.getOwnPropertyDescriptor(mixed, 'wat').set); - assert.isString(mixed.bazz); - }, - "the clone() method": function () { - var clone = utile.clone(obj1); - assert.isTrue(clone.foo); - assert.isObject(clone.bar); - assert.notStrictEqual(obj1, clone); - }, - "the createPath() method": function () { - var x = {}, - r = Math.random(); - - utile.createPath(x, ['a','b','c'], r) - assert.equal(x.a.b.c, r) - }, - "the capitalize() method": function () { - assert.isFunction(utile.capitalize); - assert.equal(utile.capitalize('bullet'), 'Bullet'); - assert.equal(utile.capitalize('bullet_train'), 'BulletTrain'); - }, - "the escapeRegExp() method": function () { - var ans = "\\/path\\/to\\/resource\\.html\\?search=query"; - assert.isFunction(utile.escapeRegExp); - assert.equal(utile.escapeRegExp('/path/to/resource.html?search=query'), ans); - }, - "the underscoreToCamel() method": function () { - var obj = utile.underscoreToCamel({ - key_with_underscore: { - andNested: 'values', - several: [1, 2, 3], - nested_underscores: true - }, - just_one: 'underscore' - }); - - assert.isObject(obj.keyWithUnderscore); - assert.isString(obj.justOne); - assert.isTrue(obj.keyWithUnderscore.nestedUnderscores); - }, - "the camelToUnderscore() method": function () { - var obj = utile.camelToUnderscore({ - keyWithCamel: { - andNested: 'values', - several: [1, 2, 3], - nestedCamel: true - }, - justOne: 'camel' - }); - - assert.isObject(obj.key_with_camel); - assert.isString(obj.just_one); - assert.isTrue(obj.key_with_camel.nested_camel); - } - } -}).export(module); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/LICENSE deleted file mode 100644 index a4a9aee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/main.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/main.js deleted file mode 100644 index 0f3d0f44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/main.js +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2010-2011 Mikeal Rogers -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var sys = require('util') - , fs = require('fs') - , path = require('path') - , events = require('events') - ; - -function walk (dir, options, callback) { - if (!callback) {callback = options; options = {}} - if (!callback.files) callback.files = {}; - if (!callback.pending) callback.pending = 0; - callback.pending += 1; - fs.stat(dir, function (err, stat) { - if (err) return callback(err); - callback.files[dir] = stat; - fs.readdir(dir, function (err, files) { - if (err) return callback(err); - callback.pending -= 1; - files.forEach(function (f, index) { - f = path.join(dir, f); - callback.pending += 1; - fs.stat(f, function (err, stat) { - var enoent = false; - if (err) { - if (err.code !== 'ENOENT') { - return callback(err); - } else { - enoent = true; - } - } - callback.pending -= 1; - if (!enoent) { - if (options.ignoreDotFiles && path.basename(f)[0] === '.') return; - if (options.filter && options.filter(f, stat)) return; - callback.files[f] = stat; - if (stat.isDirectory()) walk(f, options, callback); - if (callback.pending === 0) callback(null, callback.files); - } - }) - }) - if (callback.pending === 0) callback(null, callback.files); - }) - if (callback.pending === 0) callback(null, callback.files); - }) - -} -exports.watchTree = function ( root, options, callback ) { - if (!callback) {callback = options; options = {}} - walk(root, options, function (err, files) { - if (err) throw err; - var fileWatcher = function (f) { - fs.watchFile(f, options, function (c, p) { - // Check if anything actually changed in stat - if (files[f] && !files[f].isDirectory() && c.nlink !== 0 && files[f].mtime.getTime() == c.mtime.getTime()) return; - files[f] = c; - if (!files[f].isDirectory()) callback(f, c, p); - else { - fs.readdir(f, function (err, nfiles) { - if (err) return; - nfiles.forEach(function (b) { - var file = path.join(f, b); - if (!files[file]) { - fs.stat(file, function (err, stat) { - callback(file, stat, null); - files[file] = stat; - fileWatcher(file); - }) - } - }) - }) - } - if (c.nlink === 0) { - // unwatch removed files. - delete files[f] - fs.unwatchFile(f); - } - }) - } - fileWatcher(root); - for (var i in files) { - fileWatcher(i); - } - callback(files, null, null); - }) -} - -exports.createMonitor = function (root, options, cb) { - if (!cb) {cb = options; options = {}} - var monitor = new events.EventEmitter(); - exports.watchTree(root, options, function (f, curr, prev) { - if (typeof f == "object" && prev == null && curr === null) { - monitor.files = f; - return cb(monitor); - } - if (prev === null) { - return monitor.emit("created", f, curr); - } - if (curr.nlink === 0) { - return monitor.emit("removed", f, curr); - } - monitor.emit("changed", f, curr, prev); - }) -} - -exports.walk = walk; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/package.json deleted file mode 100644 index c2ea93c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "watch", - "description": "Utilities for watching file trees.", - "tags": [ - "util", - "utility", - "fs", - "files" - ], - "version": "0.5.1", - "homepage": "https://github.com/mikeal/watch", - "bugs": { - "url": "https://github.com/mikeal/watch/issues" - }, - "repository": { - "type": "git", - "url": "git://github.com/mikeal/watch.git" - }, - "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com" - }, - "directories": { - "lib": "lib" - }, - "engines": [ - "node >=0.1.95" - ], - "main": "./main", - "_npmUser": { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - "_id": "watch@0.5.1", - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.1.4", - "_nodeVersion": "v0.6.8-pre", - "_defaultsLoaded": true, - "dist": { - "shasum": "50ea3a056358c98073e0bca59956de4afd20b213", - "tarball": "https://registry.npmjs.org/watch/-/watch-0.5.1.tgz" - }, - "maintainers": [ - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - } - ], - "_shasum": "50ea3a056358c98073e0bca59956de4afd20b213", - "_resolved": "https://registry.npmjs.org/watch/-/watch-0.5.1.tgz", - "_from": "watch@>=0.5.0 <0.6.0", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/readme.mkd b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/readme.mkd deleted file mode 100644 index 9246278e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/readme.mkd +++ /dev/null @@ -1,71 +0,0 @@ -# watch -- Utilities for watching file trees in node.js - -## Install - -
      -  npm install watch
      -
      - -## Purpose - -The intention of this module is provide tools that make managing the watching of file & directory trees easier. - -#### watch.watchTree(root, [options,] callback) - -The first argument is the directory root you want to watch. - -The options object is passed to fs.watchFile but can also be used to provide two additional watchTree specific options: - -* `'ignoreDotFiles'` - When true this option means that when the file tree is walked it will ignore files that being with "." -* `'filter'` - You can use this option to provide a function that returns true or false for each file and directory that is walked to decide whether or not that file/directory is included in the watcher. - -The callback takes 3 arguments. The first is the file that was modified. The second is the current stat object for that file and the third is the previous stat object. - -When a file is new the previous stat object is null. - -When watchTree is finished walking the tree and adding all the listeners it passes the file hash (key if the file/directory names and the values are the current stat objects) as the first argument and null as both the previous and current stat object arguments. - -
      -  watch.watchTree('/home/mikeal', function (f, curr, prev) {
      -    if (typeof f == "object" && prev === null && curr === null) {
      -      // Finished walking the tree
      -    } else if (prev === null) {
      -      // f is a new file
      -    } else if (curr.nlink === 0) {
      -      // f was removed
      -    } else {
      -      // f was changed
      -    }
      -  })
      -
      - -### watch.createMonitor(root, [options,] callback) - -This function creates an EventEmitter that gives notifications for different changes that happen to the file and directory tree under the given root argument. - -The options object is passed to watch.watchTree. - -The callback receives the monitor object. - -The monitor object contains a property, `files`, which is a hash of files and directories as keys with the current stat object as the value. - -The monitor has the following events. - -* `'created'` - New file has been created. Two arguments, the filename and the stat object. -* `'removed'` - A file has been moved or deleted. Two arguments, the filename and the stat object for the fd. -* `'changed'` - A file has been changed. Three arguments, the filename, the current stat object, and the previous stat object. - -
      -  watch.createMonitor('/home/mikeal', function (monitor) {
      -    monitor.files['/home/mikeal/.zshrc'] // Stat object for my zshrc.
      -    monitor.on("created", function (f, stat) {
      -      // Handle file changes
      -    })
      -    monitor.on("changed", function (f, curr, prev) {
      -      // Handle new files
      -    })
      -    monitor.on("removed", function (f, stat) {
      -      // Handle removed files
      -    })
      -  }  
      -
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/test/d/d/t b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/test/d/d/t deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/test/d/t b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/test/d/t deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/test/test_monitor.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/test/test_monitor.js deleted file mode 100644 index 59e776da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/test/test_monitor.js +++ /dev/null @@ -1,31 +0,0 @@ -var watch = require('../main') - , assert = require('assert') - , path = require('path') - , fs = require('fs') - , target = path.join(__dirname, "d/t") - ; - -function clearFile() { - fs.writeFileSync(target, '') -} - -clearFile() - -// test if changed event is fired correctly -watch.createMonitor(__dirname, { interval: 150 }, - function (monitor) { - monitor.once('changed', function (f) { - assert.equal(f, target); - clearFile(); - process.exit(0) - }) - - fs.writeFile(target, 'Test Write\n', function (err) { - if (err) throw err; - - setTimeout(function () { - // should have got the other assert done by now - assert.ok(false); - }, 300); - }) -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/test/test_watchTree.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/test/test_watchTree.js deleted file mode 100644 index 80381fe0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/node_modules/watch/test/test_watchTree.js +++ /dev/null @@ -1,9 +0,0 @@ -var watch = require('../main') - , assert = require('assert') - ; - -watch.watchTree(__dirname, function (f, curr, prev) { - // console.log('file '+f+' prev '+prev+' curr '+curr); - // console.dir(curr) - // console.dir(prev) -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/package.json deleted file mode 100644 index 350c9200..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "name": "forever-monitor", - "description": "Core forever process monitor", - "version": "1.1.0", - "author": { - "name": "Nodejitsu Inc", - "email": "info@nodejitsu.com" - }, - "contributors": [ - { - "name": "Charlie Robbins", - "email": "charlie@nodejitsu.com" - }, - { - "name": "Fedor Indutny", - "email": "fedor.indutny@gmail.com" - }, - { - "name": "James Halliday", - "email": "mail@substack.net" - }, - { - "name": "Bradley Meck", - "email": "bradley@nodejitsu.com" - }, - { - "name": "Dominic Tarr", - "email": "dominic@nodejitsu.com" - }, - { - "name": "Maciej Małecki", - "email": "maciej@nodejitsu.com" - } - ], - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/nodejitsu/forever-monitor.git" - }, - "keywords": [ - "fault tolerant", - "sysadmin", - "tools" - ], - "dependencies": { - "broadway": "0.2.x", - "minimatch": "0.0.x", - "pkginfo": "0.x.x", - "ps-tree": "0.0.x", - "watch": "0.5.x", - "utile": "0.1.x" - }, - "devDependencies": { - "optimist": "0.3.x", - "vows": "0.6.x" - }, - "main": "./lib/index.js", - "scripts": { - "test": "vows test/**/*-test.js --spec -i" - }, - "engines": { - "node": "0.8.x" - }, - "_id": "forever-monitor@1.1.0", - "dist": { - "shasum": "439ce036f999601cff551aea7f5151001a869ef9", - "tarball": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.1.0.tgz" - }, - "maintainers": [ - { - "name": "indexzero", - "email": "charlie.robbins@gmail.com" - }, - { - "name": "avianflu", - "email": "charlie@charlieistheman.com" - } - ], - "directories": {}, - "_shasum": "439ce036f999601cff551aea7f5151001a869ef9", - "_resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.1.0.tgz", - "_from": "forever-monitor@>=1.1.0 <1.2.0", - "bugs": { - "url": "https://github.com/nodejitsu/forever-monitor/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/nodejitsu/forever-monitor#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test.js deleted file mode 100644 index cf8b9f2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test.js +++ /dev/null @@ -1,26 +0,0 @@ - - -var spawn = require('child_process').spawn, - utile = require('utile'); - -var child = spawn('node', ['http.js'], { - stdio: ['ipc', 'pipe', 'pipe'] -}); - -var int = setInterval(randomizer, 200); - -child.on('message', logger); - -child.on('disconnect', function () { - console.log('child disconnected'); - clearInterval(int); -}); - - -function randomizer() { - child.send(utile.randomString(16)); -} - -function logger(msg) { - console.dir(msg); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/core/check-process-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/core/check-process-test.js deleted file mode 100644 index b136bf5b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/core/check-process-test.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * check-process-test.js: Tests for forever.checkProcess(pid) - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var assert = require('assert'), - path = require('path'), - vows = require('vows'), - fmonitor = require('../../lib'); - -vows.describe('forever/core/check-process').addBatch({ - "When using forever": { - "checking if process exists": { - "if process exists": { - topic: fmonitor.checkProcess(process.pid), - "should return true": function (result) { - assert.isTrue(result); - } - }, - "if process doesn't exist": { - topic: fmonitor.checkProcess(255 * 255 * 255), - // - // This is insanely large value. On most systems there'll be no process - // with such PID. Also, there's no multiplatform way to check for - // PID limit. - // - "should return false": function (result) { - assert.isFalse(result); - } - } - } - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/fork.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/fork.js deleted file mode 100644 index cc42c1b5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/fork.js +++ /dev/null @@ -1,4 +0,0 @@ -if (process.send) { - process.send({from: 'child'}); - process.disconnect(); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/logs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/logs.js deleted file mode 100644 index 2b74caa0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/logs.js +++ /dev/null @@ -1,5 +0,0 @@ - -for (var i = 0; i < 10; i++) { - console.log('stdout %d', i); - console.error('stderr %d', i); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/watch/.foreverignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/watch/.foreverignore deleted file mode 100644 index af9c50f5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/watch/.foreverignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -ignore* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/watch/daemon.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/watch/daemon.js deleted file mode 100644 index 2f137555..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/watch/daemon.js +++ /dev/null @@ -1,3 +0,0 @@ -console.log('Hello!'); -setTimeout(process.exit, 2000); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/watch/file b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/watch/file deleted file mode 100644 index 182a60a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/watch/file +++ /dev/null @@ -1 +0,0 @@ -/* hello, I know nodejitsu. */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/watch/removeMe b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/fixtures/watch/removeMe deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/helpers/macros.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/helpers/macros.js deleted file mode 100644 index 5766d871..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/helpers/macros.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * macros.js: Test macros for the forever-monitor module - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var assert = require('assert'), - path = require('path'), - spawn = require('child_process').spawn, - fmonitor = require('../../lib'); - -var macros = exports; - -macros.assertTimes = function (script, times, options) { - options.max = times; - - return { - topic: function () { - var child = new (fmonitor.Monitor)(script, options); - child.on('exit', this.callback.bind({}, null)); - child.start(); - }, - "should emit 'exit' when completed": function (err, child) { - assert.equal(child.times, times); - } - } -}; - -macros.assertStartsWith = function (string, substring) { - assert.equal(string.slice(0, substring.length), substring); -}; - -macros.assertList = function (list) { - assert.isNotNull(list); - assert.lengthOf(list, 1); -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/env-spawn-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/env-spawn-test.js deleted file mode 100644 index 9c96f8d5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/env-spawn-test.js +++ /dev/null @@ -1,104 +0,0 @@ -/* - * env-spawn-test.js: Tests for supporting environment variables in the forever module - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var assert = require('assert'), - path = require('path'), - vows = require('vows'), - fmonitor = require('../../lib'); - -vows.describe('forever-monitor/monitor/spawn-options').addBatch({ - "When using forever-monitor": { - "an instance of Monitor with valid options": { - "passing environment variables to env-vars.js": { - topic: function () { - var that = this, child; - - this.env = { - FOO: 'foo', - BAR: 'bar' - }; - - child = new (fmonitor.Monitor)(path.join(__dirname, '..', '..', 'examples', 'env-vars.js'), { - max: 1, - silent: true, - minUptime: 0, - env: this.env - }); - - child.on('stdout', function (data) { - that.stdout = data.toString(); - }); - - child.on('exit', this.callback.bind({}, null)); - child.start(); - }, - "should pass the environment variables to the child": function (err, child) { - assert.equal(child.times, 1); - assert.equal(this.stdout, JSON.stringify(this.env)); - } - }, - "passing a custom cwd to custom-cwd.js": { - topic: function () { - var that = this, child; - - this.cwd = path.join(__dirname, '..'); - - child = new (fmonitor.Monitor)(path.join(__dirname, '..', '..', 'examples', 'custom-cwd.js'), { - max: 1, - silent: true, - minUptime: 0, - cwd: this.cwd - }); - - child.on('stdout', function (data) { - that.stdout = data.toString(); - }); - - child.on('exit', this.callback.bind({}, null)); - child.start(); - }, - "should setup the child to run in the target directory": function (err, child) { - assert.equal(child.times, 1); - assert.equal(this.stdout, this.cwd); - } - }, - "setting `hideEnv` when spawning all-env-vars.js": { - topic: function () { - var that = this, child; - - this.hideEnv = [ - 'USER', - 'OLDPWD' - ]; - - child = new (fmonitor.Monitor)(path.join(__dirname, '..', '..', 'examples', 'all-env-vars.js'), { - max: 1, - silent: true, - minUptime: 0, - hideEnv: this.hideEnv - }); - - child.on('stdout', function (data) { - that.env = Object.keys(JSON.parse(data.toString())); - }); - - child.on('exit', this.callback.bind(this, null)); - child.start(); - }, - "should hide the environment variables passed to the child": function (err, child) { - var that = this; - - assert.equal(child.times, 1); - this.hideEnv.forEach(function (key) { - assert.isTrue(that.env.indexOf(key) === -1); - }); - } - }, - } - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/fork-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/fork-test.js deleted file mode 100644 index 79aae06a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/fork-test.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * spin-test.js: Tests for spin restarts in forever-monitor. - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var assert = require('assert'), - path = require('path'), - vows = require('vows'), - fmonitor = require('../../lib'); - -vows.describe('forever-monitor/monitor/fork').addBatch({ - "When using forever-monitor": { - "and spawning a script that uses `process.send()`": { - "using the 'native' fork with default stdio": { - topic: function () { - var script = path.join(__dirname, '..', 'fixtures', 'fork.js'), - child = new (fmonitor.Monitor)(script, { silent: false, minUptime: 2000, max: 1, fork: true }); - - child.on('message', this.callback.bind(null, null)); - child.start(); - }, - "should reemit the message correctly": function (err, msg) { - assert.isObject(msg); - assert.deepEqual(msg, { from: 'child' }); - } - } - } - } -}).addBatch({ - "when spawning a script that uses `process.send()`": { - "using custom stdio and setting IPC to fd 0": { - topic: function () { - var script = path.join(__dirname, '..', 'fixtures', 'fork.js'), - child = new (fmonitor.Monitor)(script, { - silent: false, - minUptime: 2000, - max: 1, - fork: true, - stdio: ['ipc', 'pipe', 'pipe'] - }); - - child.on('message', this.callback.bind(null, null)); - child.start(); - }, - "should reemit the message correctly": function (err, msg) { - assert.isObject(msg); - assert.deepEqual(msg, { from: 'child' }); - } - } - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/signal-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/signal-test.js deleted file mode 100644 index 39900f6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/signal-test.js +++ /dev/null @@ -1,50 +0,0 @@ -/* - * signal-test.js: Tests for spin restarts in forever. - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var assert = require('assert'), - path = require('path'), - vows = require('vows'), - fmonitor = require('../../lib'); - -vows.describe('forever-monitor/monitor/signal').addBatch({ - "When using forever-monitor": { - "and spawning a script that ignores signals SIGINT and SIGTERM": { - "with killTTL defined": { - topic: function () { - var script = path.join(__dirname, '..', '..', 'examples', 'signal-ignore.js'), - child = new (fmonitor.Monitor)(script, { silent: true, killTTL: 1000 }), - callback = this.callback, - timer; - - timer = setTimeout(function () { - callback(new Error('Child did not die when killed by forever'), child); - }, 3000); - - child.on('exit', function () { - callback.apply(null, [null].concat([].slice.call(arguments))); - clearTimeout(timer); - }); - - child.on('start', function () { - // - // Give it time to set up signal handlers - // - setTimeout(function() { - child.stop(); - }, 1000); - }); - - child.start(); - }, - "should forcibly kill the processes": function (err, child, spinning) { - assert.isNull(err); - } - } - } - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/simple-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/simple-test.js deleted file mode 100644 index 99577559..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/simple-test.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * simple-test.js: Simple tests for using Monitor instances. - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var assert = require('assert'), - path = require('path'), - vows = require('vows'), - fmonitor = require('../../lib'), - macros = require('../helpers/macros'); - -var examplesDir = path.join(__dirname, '..', '..', 'examples'); - -vows.describe('forever-monitor/monitor/simple').addBatch({ - "When using forever-monitor": { - "an instance of Monitor with valid options": { - topic: new (fmonitor.Monitor)(path.join(examplesDir, 'server.js'), { - max: 10, - silent: true, - options: ['-p', 8090] - }), - "should have correct properties set": function (child) { - assert.isArray(child.args); - assert.equal(child.max, 10); - assert.isTrue(child.silent); - assert.isFunction(child.start); - assert.isObject(child.data); - assert.isFunction(child.stop); - }, - "calling the restart() method in less than `minUptime`": { - topic: function (child) { - var that = this; - child.once('start', function () { - child.once('restart', that.callback.bind(this, null)); - child.restart(); - }); - child.start(); - }, - "should restart the child process": function (_, child, data) { - assert.isObject(data); - child.kill(true); - } - } - }, - "running error-on-timer sample three times": macros.assertTimes( - path.join(examplesDir, 'error-on-timer.js'), - 3, - { - minUptime: 200, - silent: true, - outFile: 'test/fixtures/stdout.log', - errFile: 'test/fixtures/stderr.log', - options: [] - } - ), - "running error-on-timer sample once": macros.assertTimes( - path.join(examplesDir, 'error-on-timer.js'), - 1, - { - minUptime: 200, - silent: true, - outFile: 'test/fixtures/stdout.log', - errFile: 'test/fixtures/stderr.log', - options: [] - } - ), - "non-node usage with a perl one-liner": { - topic: function () { - var child = fmonitor.start([ 'perl', '-le', 'print "moo"' ], { - max: 1, - silent: true, - }); - child.on('stdout', this.callback.bind({}, null)); - }, - "should get back moo": function (err, buf) { - assert.equal(buf.toString(), 'moo\n'); - } - }, - "attempting to start a script that doesn't exist": { - topic: function () { - var child = fmonitor.start('invalid-path.js', { - max: 1, - silent: true - }); - child.on('error', this.callback.bind({}, null)); - }, - "should throw an error about the invalid file": function (err) { - assert.isNotNull(err); - assert.isTrue(err.message.indexOf('does not exist') !== -1); - } - } - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/spin-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/spin-test.js deleted file mode 100644 index 002da358..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/monitor/spin-test.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * spin-test.js: Tests for spin restarts in forever. - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENCE - * - */ - -var assert = require('assert'), - path = require('path'), - vows = require('vows'), - fmonitor = require('../../lib'); - -vows.describe('forever-monitor/monitor/spin-restart').addBatch({ - "When using forever-monitor": { - "and spawning a script that spin restarts": { - "with no spinSleepTime specified": { - topic: function () { - var script = path.join(__dirname, '..', '..', 'examples', 'always-throw.js'), - child = new (fmonitor.Monitor)(script, { silent: true, minUptime: 2000, max: 3 }); - - child.on('exit', this.callback.bind({}, null)); - child.start(); - }, - "should spawn both processes appropriately": function (err, child, spinning) { - assert.isTrue(spinning); - }, - "should only run the bad process once": function (err, child, spinning) { - assert.equal(child.times, 1); - } - }, - "with a spinSleepTime specified": { - topic: function () { - var script = path.join(__dirname, '..', '..', 'examples', 'always-throw.js'), - child = new (fmonitor.Monitor)(script, { silent: true, max: 3, spinSleepTime: 1 }); - - child.on('exit', this.callback.bind({}, null)); - child.start(); - }, - "should restart spinning processes": function (err, child, spinning) { - assert.equal(child.times, 3); - } - } - } - } -}).export(module); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/plugins/logger-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/plugins/logger-test.js deleted file mode 100644 index e2682571..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/plugins/logger-test.js +++ /dev/null @@ -1,80 +0,0 @@ -var assert = require('assert'), - fs = require('fs'), - path = require('path'), - vows = require('vows'), - fmonitor = require('../../lib'); - -var fixturesDir = path.join(__dirname, '..', 'fixtures'); - -function checkLogOutput(file, stream, expectedLength) { - var output = fs.readFileSync(path.join(fixturesDir, file), 'utf8'), - lines = output.split('\n').slice(0, -1); - - assert.equal(lines.length, expectedLength); - lines.forEach(function (line, i) { - assert.equal(lines[i], stream + ' ' + (i % 10)); - }); -} - -vows.describe('forever-monitor/plugins/logger').addBatch({ - 'When using the logger plugin': { - 'with custom log files': { - topic: function () { - var outlogs, errlogs, monitor; - - monitor = new fmonitor.Monitor(path.join(fixturesDir, 'logs.js'), { - max: 1, - silent: true, - outFile: path.join(fixturesDir, 'logs-stdout.log'), - errFile: path.join(fixturesDir, 'logs-stderr.log') - }); - - monitor.on('exit', this.callback.bind({}, null)); - monitor.start(); - }, - 'log files should contain correct output': function (err) { - checkLogOutput('logs-stdout.log', 'stdout', 10); - checkLogOutput('logs-stderr.log', 'stderr', 10); - } - }, - 'with custom log files and a process that exits': { - topic: function () { - var monitor = new fmonitor.Monitor(path.join(fixturesDir, 'logs.js'), { - max: 5, - silent: true, - outFile: path.join(fixturesDir, 'logs-stdout-2.log'), - errFile: path.join(fixturesDir, 'logs-stderr-2.log') - }); - - monitor.on('exit', this.callback.bind({}, null)); - monitor.start(); - }, - 'logging should continue through process restarts': function (err) { - checkLogOutput('logs-stdout-2.log', 'stdout', 50); - checkLogOutput('logs-stderr-2.log', 'stderr', 50); - } - }, - } -}).addBatch({ - 'When using the logger plugin': { - 'with custom log files and the append option set': { - topic: function () { - var monitor = new fmonitor.Monitor(path.join(fixturesDir, 'logs.js'), { - max: 3, - silent: true, - append: true, - outFile: path.join(fixturesDir, 'logs-stdout.log'), - errFile: path.join(fixturesDir, 'logs-stderr.log') - }); - - monitor.on('exit', this.callback.bind({}, null)); - monitor.start(); - }, - 'log files should not be truncated': function (err) { - checkLogOutput('logs-stdout.log', 'stdout', 40); - checkLogOutput('logs-stderr.log', 'stderr', 40); - } - } - } -}).export(module); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/plugins/watch-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/plugins/watch-test.js deleted file mode 100644 index c7eb8ff0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/forever-monitor/test/plugins/watch-test.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * watch-test.js: Tests for restarting forever processes when a file changes. - * - * (C) 2010 Nodejitsu Inc. - * MIT LICENSE - * - */ - -var assert = require('assert'), - path = require('path'), - fs = require('fs'), - vows = require('vows'), - fmonitor = require('../../lib'); - -vows.describe('forever-monitor/plugins/watch').addBatch({ - 'When using forever with watch enabled': { - 'forever should': { - topic: fmonitor.start('daemon.js', { - silent: true, - options: ['-p', '8090'], - watch: true, - sourceDir: path.join(__dirname, '..', 'fixtures', 'watch') - }), - 'have correct options set': function (child) { - assert.isTrue(child.watchIgnoreDotFiles); - assert.equal(fs.realpathSync(path.join(__dirname, '..', 'fixtures', 'watch')), - fs.realpathSync(child.watchDirectory)); - }, - 'when file changes': { - topic: function (child) { - child.once('restart', this.callback); - fs.writeFileSync(path.join(__dirname, '..', 'fixtures', 'watch', 'file'), - '// hello, I know nodejitsu.'); - }, - 'restart the script': function (child, _) { - fs.writeFileSync(path.join(__dirname, '..', 'fixtures', 'watch', 'file'), - '/* hello, I know nodejitsu. */'); - } - }, - 'when file is added': { - topic: function (child) { - child.once('restart', this.callback); - fs.writeFileSync(path.join(__dirname, '..', 'fixtures', 'watch', 'newFile'), ''); - }, - 'restart the script': function (child, _) { - fs.unlinkSync(path.join(__dirname, '..', 'fixtures', 'watch', 'newFile')); - } - }, - 'when file is removed': { - topic: function (child) { - child.once('restart', this.callback); - try { fs.unlinkSync(path.join(__dirname, '..', 'fixtures', 'watch', 'removeMe')) } - catch (ex) { } - }, - 'restart the script': function (child, _) { - fs.writeFileSync(path.join(__dirname, '..', 'fixtures', 'watch', 'removeMe'), ''); - } - }, - 'read .foreverignore file': { - 'and store ignore patterns': function (child) { - assert.deepEqual( - child.watchIgnorePatterns, - fs.readFileSync( - path.join(__dirname, '..', 'fixtures', 'watch', '.foreverignore'), - 'utf8' - ).split("\n") - ); - } - } - } - } -}).export(module); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/.npmignore deleted file mode 100644 index 04f814f4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/.npmignore +++ /dev/null @@ -1,39 +0,0 @@ -# v1.3.23 October 11, 2014 -# https://github.com/bevry/base - -# Temp Files -**/*.log -**/.docpad.db - -# Build Files -build/ -components/ -bower_components/ -node_modules/ - -# Private Files -.env - -# Development Files -.editorconfig -.eslintrc -.jshintrc -coffeelint.json -.travis* -Cakefile -Makefile -BACKERS.md -CONTRIBUTING.md -HISTORY.md -**/src/ -**/test/ - -# Other Package Definitions -template.js -component.json -bower.json - -# ===================================== -# CUSTOM MODIFICATIONS - -# None diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/HISTORY.md deleted file mode 100644 index 60c0e6a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/HISTORY.md +++ /dev/null @@ -1,36 +0,0 @@ -# History - -## v1.2.1 2016 May 10 -- Use down interfaces as well as up interfaces - - Thanks to [Ted Shroyer](https://github.com/tedshroyer) for [pull request #15](https://github.com/bevry/getmac/pull/15) - -## v1.1.0 2016 May 10 -- Updated dependencies -- Repackaged - -## v1.0.7 2015 March 5 -- Added fix for iproute2 commands in absence of ifconfig on Linux machines - -## v1.0.6 2013 October 27 -- Repackaged - -## v1.0.5 2013 September 2 -- Will now ignore zero-filled mac addresses and error if none are found - - Thanks to [Uwe Klawitter](https://github.com/uklawitter) for [issue #1](https://github.com/bevry/getmac/issues/1) -- Can now pass an optional object as the first argument to `getmac` that can contain `data` as a String to scan instead of executing the appropriate command to fetch the data -- Dependency updates - -## v1.0.4 2013 February 12 -- Better compatibility with linux distros - -## v1.0.3 2013 February 12 -- Minor optimisation - -## v1.0.2 2013 February 12 -- Fixed windows support, turns out they format mac addresses differently - -## v1.0.1 2013 February 12 -- Renamed `getmac` executable to `getmac-node` to avoid conflict on windows - -## v1.0.0 2013 February 12 -- Initial working commit diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/LICENSE.md deleted file mode 100644 index 08d8802a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/LICENSE.md +++ /dev/null @@ -1,23 +0,0 @@ - - -

      License

      - -Unless stated otherwise all works are: - -
      - -and licensed under: - - - -

      MIT License

      - -
      -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/README.md deleted file mode 100644 index f84456db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/README.md +++ /dev/null @@ -1,153 +0,0 @@ - - -

      getmac

      - - - - - - -Travis CI Build Status -NPM version -NPM downloads -Dependency Status -Dev Dependency Status -
      -Slack community badge -Patreon donate button -Gratipay donate button -Flattr donate button -PayPal donate button -Bitcoin donate button -Wishlist browse button - - - - - - -Get the mac address of the current machine you are on - - - - - - -

      Install

      - -

      NPM

        -
      • Install: npm install --save getmac
      • -
      • Executable: getmac-node
      • -
      • Module: require('getmac')
      - -

      Browserify

        -
      • Install: npm install --save getmac
      • -
      • Module: require('getmac')
      • -
      • CDN URL: //wzrd.in/bundle/getmac@1.2.1
      - -

      Ender

        -
      • Install: ender add getmac
      • -
      • Module: require('getmac')
      - -

      Editions

      - -

      This package is published with the following editions:

      - -
      • getmac/src/lib/getmac.coffee is Source + CoffeeScript + Require
      • -
      • getmac aliases getmac/es5/lib/getmac.js
      • -
      • getmac/es5/lib/getmac.js is CoffeeScript Compiled JavaScript + ES5 + Require
      - - - - -## Usage - -### CLI - -1. Install Globally: `install -g getmac` -2. Run with: `getmac-node` - -### API - -``` javascript -// Fetch the computer's mac address -require('getmac').getMac(function(err,macAddress){ - if (err) throw err - console.log(macAddress) -}) - -// Validate that an address is a mac address -if ( require('getmac').isMac("e4:ce:8f:5b:a7:fc") ) { - console.log('valid mac') -} -else { - console.log('invalid mac') -} -``` - - - - - -

      History

      - -Discover the release history by heading on over to the HISTORY.md file. - - - - - - -

      Contribute

      - -Discover how you can contribute by heading on over to the CONTRIBUTING.md file. - - - - - - -

      Backers

      - -

      Maintainers

      - -These amazing people are maintaining this project: - - - -

      Sponsors

      - -No sponsors yet! Will you be the first? - -Patreon donate button -Gratipay donate button -Flattr donate button -PayPal donate button -Bitcoin donate button -Wishlist browse button - -

      Contributors

      - -These amazing people have contributed code to this project: - - - -Discover how you can contribute by heading on over to the CONTRIBUTING.md file. - - - - - - -

      License

      - -Unless stated otherwise all works are: - - - -and licensed under: - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/bin/getmac-node b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/bin/getmac-node deleted file mode 100755 index 8bfed68b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/bin/getmac-node +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -require('../').getMac(console.log) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/es5/lib/getmac.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/es5/lib/getmac.js deleted file mode 100644 index badc12f4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/es5/lib/getmac.js +++ /dev/null @@ -1,61 +0,0 @@ -// Generated by CoffeeScript 1.10.0 -var exec, extractOptsAndCallback, getMac, isMac, isWindows, macRegex, zeroRegex; - -exec = require('child_process').exec; - -extractOptsAndCallback = require('extract-opts'); - -isWindows = process.platform.indexOf('win') === 0; - -macRegex = /(?:[a-z0-9]{2}[:\-]){5}[a-z0-9]{2}/ig; - -zeroRegex = /(?:[0]{2}[:\-]){5}[0]{2}/; - -getMac = function(opts, next) { - var command, data, extractMac, ref; - ref = extractOptsAndCallback(opts, next), opts = ref[0], next = ref[1]; - data = opts.data; - if (data == null) { - data = null; - } - command = isWindows ? "getmac" : "ifconfig -a || ip link"; - extractMac = function(data, next) { - var err, isZero, macAddress, match, result; - result = null; - while (match = macRegex.exec(data)) { - macAddress = match[0]; - isZero = zeroRegex.test(macAddress); - if (isZero === false) { - if (result == null) { - result = macAddress; - } - } - } - if (result === null) { - err = new Error('could not determine the mac address from:\n' + data); - return next(err); - } - return next(null, result); - }; - if (data) { - return extractMac(data, next); - } else { - return exec(command, function(err, stdout, stderr) { - if (err) { - return next(err); - } - return extractMac(stdout, next); - }); - } -}; - -isMac = function(macAddress) { - var ref; - return ((ref = String(macAddress).match(macRegex)) != null ? ref.length : void 0) === 1; -}; - -module.exports = { - macRegex: macRegex, - getMac: getMac, - isMac: isMac -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/.npmignore deleted file mode 100644 index 9a433ef9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/.npmignore +++ /dev/null @@ -1,43 +0,0 @@ -# 2015 March 8 -# https://github.com/bevry/base - -# Temp Files -**/.docpad.db -**/out.* -**/*.log -**/*.cpuprofile -**/*.heapsnapshot - -# Build Files -build/ -components/ -bower_components/ -node_modules/ - -# Private Files -.env - -# Development Files -.editorconfig -.eslintrc* -.jshintrc -.jscrc -coffeelint* -.travis* -nakefile* -Cakefile -Makefile -BACKERS.md -CONTRIBUTING.md -HISTORY.md -**/test* - -# Other Package Definitions -template.js -component.json -bower.json - -# ===================================== -# CUSTOM MODIFICATIONS - -# None diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/HISTORY.md deleted file mode 100644 index e439f1f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/HISTORY.md +++ /dev/null @@ -1,28 +0,0 @@ -# History - -## v3.3.1 2016 May 27 -- Updated internal conventions - - Corrected edition syntaxes - -## v3.3.0 2016 May 27 -- Updated internal conventions - - Moved from [ESNextGuardian](https://github.com/bevry/esnextguardian) to [Editions](https://github.com/bevry/editions) - -## v3.2.0 2016 January 15 -- Minimum supported node version has gone from 0.12 to node 0.10 - -## v3.1.0 2016 January 14 -- Converted from CoffeeScript to ESNext -- Updated internal conventions -- Updated minimum supported node version from 0.4 to 0.12 -- [This release was live coded. You can watch it here.](https://plus.google.com/u/0/b/100631142988286661025/events/c9k1pidfui89hfa39cr5831dmi8) - -## v3.0.1 2015 March 13 -- Republished - -## v3.0.0 2015 March 13 -- Simplified export -- Updated dependencies - -## v2.2.0 2013 June 24 -- Split from [bal-util](http://npmjs.com/package/bal-util) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/LICENSE.md deleted file mode 100644 index 8841cc47..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/LICENSE.md +++ /dev/null @@ -1,24 +0,0 @@ - - -

      License

      - -Unless stated otherwise all works are: - - - -and licensed under: - - - -

      MIT License

      - -
      -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/README.md deleted file mode 100644 index 6eed03cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/README.md +++ /dev/null @@ -1,175 +0,0 @@ - - -

      Extract Options & Callback

      - - - - - - -Travis CI Build Status -NPM version -NPM downloads -Dependency Status -Dev Dependency Status -
      -Slack community badge -Patreon donate button -Gratipay donate button -Flattr donate button -PayPal donate button -Bitcoin donate button -Wishlist browse button - - - - - - -Extract the options and callback from a function's arguments easily - - - - - - -

      Install

      - -

      NPM

        -
      • Install: npm install --save extract-opts
      • -
      • Module: require('extract-opts')
      - -

      Browserify

        -
      • Install: npm install --save extract-opts
      • -
      • Module: require('extract-opts')
      • -
      • CDN URL: //wzrd.in/bundle/extract-opts@3.3.1
      - -

      Ender

        -
      • Install: ender add extract-opts
      • -
      • Module: require('extract-opts')
      - -

      Editions

      - -

      This package is published with the following editions:

      - -
      • extract-opts aliases extract-opts/index.js which uses Editions to automatically select the correct edition for the consumers environment
      • -
      • extract-opts/source/index.js is Source + ESNext + Require
      • -
      • extract-opts/es2015/index.js is Babel Compiled + ES2015 + Require
      - -

      Older environments may need Babel's Polyfill or something similar.

      - - - - -## Usage - -``` javascript -var log = console.log.bind(console) -var extractOptsAndCallback = require('extract-opts') - -// fs.readFile(filename, [options], callback) -function readFile (filename, opts, next) { - // Extract options and callback - var args = extractOptsAndCallback(opts, next) - opts = args[0] - next = args[1] - - // Forward for simplicities sake - require('fs').readFile(filename, opts, next) -} - -// Test it -readFile('package.json', log) // works with no options -readFile('package.json', null, log) // works with null options -readFile('package.json', {next: log}) // works with just options -``` - -### Customisation - -Extract Options and Callback also supports a third argument. -You can use this third argument to customize the `completionCallbackNames` property that defaults to `['next']`. -This is useful if your completion callback has other names besides `next`. -Allowing you to do the following: - -``` javascript -var log = console.log.bind(console) -function extractOptsAndCallback (opts, next, config) { - if ( config == null ) config = {} - if ( config.completionCallbackNames == null ) config.completionCallbackNames = ['next', 'complete', 'done'] - return require('extract-opts')(opts, next, config) -} - -# The readFile method as before - -# Test it -readFile('package.json', {next: log}) # works the standard completion callback name -readFile('package.json', {complete: log}) # works with our custom completion callback name -readFile('package.json', {done: log}) # works with our custom completion callback name -``` - - - - -

      History

      - -Discover the release history by heading on over to the HISTORY.md file. - - - - - - -

      Contribute

      - -Discover how you can contribute by heading on over to the CONTRIBUTING.md file. - - - - - - -

      Backers

      - -

      Maintainers

      - -These amazing people are maintaining this project: - - - -

      Sponsors

      - -No sponsors yet! Will you be the first? - -Patreon donate button -Gratipay donate button -Flattr donate button -PayPal donate button -Bitcoin donate button -Wishlist browse button - -

      Contributors

      - -These amazing people have contributed code to this project: - - - -Discover how you can contribute by heading on over to the CONTRIBUTING.md file. - - - - - - -

      License

      - -Unless stated otherwise all works are: - - - -and licensed under: - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/es2015/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/es2015/index.js deleted file mode 100644 index 64cc5579..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/es2015/index.js +++ /dev/null @@ -1,49 +0,0 @@ -'use strict'; - -// Import -var typeChecker = require('typechecker'); -var eachr = require('eachr'); - -// Define -module.exports = function (opts, next) { - var config = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; - - // Empty, set default - if (config.completionCallbackNames == null) { - config.completionCallbackNames = ['next']; - } - - // Not array, make array - else if (typeChecker.isArray(config.completionCallbackNames) === false) { - config.completionCallbackNames = [config.completionCallbackNames]; - } - - // Arguments - if (typeChecker.isFunction(opts) && next == null) { - next = opts; - opts = {}; - } else if (!opts) { - opts = {}; - } - - // Completion callback - if (!next) { - // Cycle the completionCallbackNames to check if the completion callback name exists in opts - // if it does, then use it as the next and delete it's value - eachr(config.completionCallbackNames, function (completionCallbackName) { - if (typeof opts[completionCallbackName] !== 'undefined') { - next = opts[completionCallbackName]; - delete opts[completionCallbackName]; - return false; // break - // ^ why this only does the first, and not all, using the last, I don't know ... - // can be changed in a future major update - } - }); - } - - // Ensure - if (!next) next = null; - - // Return - return [opts, next]; -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/index.js deleted file mode 100644 index 3bdc0efd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// 2016 March 8 -// https://github.com/bevry/editions -module.exports = require('editions').requirePackage(__dirname, require) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/.npmignore deleted file mode 100644 index 9a433ef9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/.npmignore +++ /dev/null @@ -1,43 +0,0 @@ -# 2015 March 8 -# https://github.com/bevry/base - -# Temp Files -**/.docpad.db -**/out.* -**/*.log -**/*.cpuprofile -**/*.heapsnapshot - -# Build Files -build/ -components/ -bower_components/ -node_modules/ - -# Private Files -.env - -# Development Files -.editorconfig -.eslintrc* -.jshintrc -.jscrc -coffeelint* -.travis* -nakefile* -Cakefile -Makefile -BACKERS.md -CONTRIBUTING.md -HISTORY.md -**/test* - -# Other Package Definitions -template.js -component.json -bower.json - -# ===================================== -# CUSTOM MODIFICATIONS - -# None diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/HISTORY.md deleted file mode 100755 index bb4e3781..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/HISTORY.md +++ /dev/null @@ -1,33 +0,0 @@ -# History - -## v3.2.0 2016 May 27 -- Updated internal conventions - - Moved from [ESNextGuardian](https://github.com/bevry/esnextguardian) to [Editions](https://github.com/bevry/editions) - -## v3.1.1 2016 January 15 -- Minimum supported node version changed from 0.12 to 0.10 - - Although node 0.10 has broken Maps, so iterating Maps is not support for node 0.10 -- Minor performance improvement for iterating arrays - -## v3.1.0 2015 December 9 -- Updated internal conventions - -## v3.0.0 2015 September 21 -- Added support for maps -- Specifically only support arrays, plain objects, and maps -- Converted from CoffeeScript to ES6+ - -## v2.0.4 2015 March 11 -- Updated dependencies - -## v2.0.3 2014 February 8th -- Updated dependencies - -## v2.0.2 2013 March 29 -- Added missing `typechecker` dependency - -## v2.0.1 2013 March 29 -- Returns the subject instead of `this` - -## v2.0.0 2013 March 29 -- Split from [bal-util](https://github.com/balupton/bal-util) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/LICENSE.md deleted file mode 100644 index 3c9ba3a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/LICENSE.md +++ /dev/null @@ -1,23 +0,0 @@ - - -

      License

      - -Unless stated otherwise all works are: - - - -and licensed under: - - - -

      MIT License

      - -
      -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/README.md deleted file mode 100755 index 30c33698..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/README.md +++ /dev/null @@ -1,168 +0,0 @@ - - -

      eachr

      - - - - - - -Travis CI Build Status -NPM version -NPM downloads -Dependency Status -Dev Dependency Status -
      -Slack community badge -Patreon donate button -Gratipay donate button -Flattr donate button -PayPal donate button -Bitcoin donate button -Wishlist browse button - - - - - - -Give eachr an item to iterate (array, object or map) and an iterator, then in return eachr gives iterator the value and key of each item, and will stop if the iterator returned false. - - - - - - -

      Install

      - -

      NPM

        -
      • Install: npm install --save eachr
      • -
      • Module: require('eachr')
      - -

      Browserify

        -
      • Install: npm install --save eachr
      • -
      • Module: require('eachr')
      • -
      • CDN URL: //wzrd.in/bundle/eachr@3.2.0
      - -

      Ender

        -
      • Install: ender add eachr
      • -
      • Module: require('eachr')
      - -

      Editions

      - -

      This package is published with the following editions:

      - -
      • eachr aliases eachr/index.js which uses Editions to automatically select the correct edition for the consumers environment
      • -
      • eachr/source/index.js is Source + ESNext + Require
      • -
      • eachr/es2015/index.js is Babel Compiled + ES2015 + Require
      - -

      Older environments may need Babel's Polyfill or something similar.

      - - - - -## Usage - -Eachr accepts an array, object, or map. The iterator is bound to the list, and receives three arguments: the value, key, and list. - -``` javascript -// Prepare -const eachr = require('eachr') -const arr = ['first', 'second', 'third'] -const obj = {a: 'first', b: 'second', c: 'third'} -const map = new Map([['a', 'first'], ['b', 'second'], ['c', 'third']]) -function iterator (value, key) { - console.log({value: value, key: key}) - if ( value === 'second' ) { - console.log('break') - return false - } -} - -// Cycle Array -eachr(arr, iterator) -// {'value': 'first', 'key': 0} -// {'value': 'second', 'key': 1} -// break - -// Cycle Object -eachr(obj, iterator) -// {'value': 'first', 'key': 'a'} -// {'value': 'second', 'key': 'b'} -// break - -// Cycle Map -eachr(map, iterator) -// {'value': 'first', 'key': 'a'} -// {'value': 'second', 'key': 'b'} -// break - -``` - - - -

      History

      - -Discover the release history by heading on over to the HISTORY.md file. - - - - - - -

      Contribute

      - -Discover how you can contribute by heading on over to the CONTRIBUTING.md file. - - - - - - -

      Backers

      - -

      Maintainers

      - -These amazing people are maintaining this project: - - - -

      Sponsors

      - -No sponsors yet! Will you be the first? - -Patreon donate button -Gratipay donate button -Flattr donate button -PayPal donate button -Bitcoin donate button -Wishlist browse button - -

      Contributors

      - -These amazing people have contributed code to this project: - - - -Discover how you can contribute by heading on over to the CONTRIBUTING.md file. - - - - - - -

      License

      - -Unless stated otherwise all works are: - - - -and licensed under: - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/es2015/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/es2015/index.js deleted file mode 100755 index 09c2dae3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/es2015/index.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -/* eslint no-cond-assign:0 */ - -// Import -var typeChecker = require('typechecker'); - -// Eachr -module.exports = function eachr(subject, callback) { - // Handle - if (typeChecker.isArray(subject)) { - for (var key = 0; key < subject.length; ++key) { - var value = subject[key]; - if (callback.call(subject, value, key, subject) === false) { - break; - } - } - } else if (typeChecker.isPlainObject(subject)) { - for (var _key in subject) { - if (subject.hasOwnProperty(_key)) { - var _value = subject[_key]; - if (callback.call(subject, _value, _key, subject) === false) { - break; - } - } - } - } else if (typeChecker.isMap(subject)) { - var entries = subject.entries(); - var entry = void 0;while (entry = entries.next().value) { - var _entry = entry; - - var _entry2 = _slicedToArray(_entry, 2); - - var _key2 = _entry2[0]; - var _value2 = _entry2[1]; // destructuring - - if (callback.call(subject, _value2, _key2, subject) === false) { - break; - } - } - } else { - // Perhaps falling back to a `for of` loop here would be sensible - throw new Error('eachr does not know how to iterate what was passed to it'); - } - - // Return - return subject; -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/example.js deleted file mode 100644 index 6574cae1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/example.js +++ /dev/null @@ -1,30 +0,0 @@ -// Prepare -const eachr = require('./') -const arr = ['first', 'second', 'third'] -const obj = {a: 'first', b: 'second', c: 'third'} -const map = new Map([['a', 'first'], ['b', 'second'], ['c', 'third']]) -function iterator (value, key) { - console.log({value: value, key: key}) - if ( value === 'second' ) { - console.log('break') - return false - } -} - -// Cycle Array -eachr(arr, iterator) -// {'value': 'first', 'key': 0} -// {'value': 'second', 'key': 1} -// break - -// Cycle Object -eachr(obj, iterator) -// {'value': 'first', 'key': 'a'} -// {'value': 'second', 'key': 'b'} -// break - -// Cycle Map -eachr(map, iterator) -// {'value': 'first', 'key': 'a'} -// {'value': 'second', 'key': 'b'} -// break diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/index.js deleted file mode 100644 index 3bdc0efd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// 2016 March 8 -// https://github.com/bevry/editions -module.exports = require('editions').requirePackage(__dirname, require) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/package.json deleted file mode 100644 index 9cbfa1fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/package.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "name": "eachr", - "version": "3.2.0", - "description": "Give eachr an item to iterate (array, object or map) and an iterator, then in return eachr gives iterator the value and key of each item, and will stop if the iterator returned false.", - "homepage": "https://github.com/bevry/eachr", - "license": "MIT", - "keywords": [ - "flow", - "each", - "cycle", - "forEach", - "map", - "object", - "array" - ], - "badges": { - "list": [ - "travisci", - "npmversion", - "npmdownloads", - "daviddm", - "daviddmdev", - "---", - "slackin", - "patreon", - "gratipay", - "flattr", - "paypal", - "bitcoin", - "wishlist" - ], - "config": { - "patreonUsername": "bevry", - "gratipayUsername": "bevry", - "flattrUsername": "balupton", - "paypalURL": "https://bevry.me/paypal", - "bitcoinURL": "https://bevry.me/bitcoin", - "wishlistURL": "https://bevry.me/wishlist", - "slackinURL": "https://slack.bevry.me" - } - }, - "author": { - "name": "2011+ Bevry Pty Ltd", - "email": "us@bevry.me", - "url": "http://bevry.me" - }, - "maintainers": [ - { - "name": "balupton", - "email": "b@lupton.cc" - } - ], - "contributors": [ - { - "name": "Benjamin Lupton", - "email": "b@lupton.cc", - "url": "http://balupton.com" - }, - { - "name": "Sean Fridman", - "email": "fridman@mail.sfsu.edu", - "url": "www.seanfridman.com" - }, - { - "name": "Rob Loach", - "email": "robloach@gmail.com", - "url": "http://robloach.net" - }, - { - "name": "Sean Fridman", - "email": "mail@seanfridman.com", - "url": "http://seanfridman.com" - }, - { - "name": "Benjamin Lupton", - "url": "https://balupton.com" - } - ], - "bugs": { - "url": "https://github.com/bevry/eachr/issues" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/bevry/eachr.git" - }, - "engines": { - "node": ">=0.10" - }, - "editions": [ - { - "description": "Source + ESNext + Require", - "entry": "source/index.js", - "directory": "source", - "syntaxes": [ - "javascript", - "esnext", - "require", - "let", - "const" - ] - }, - { - "description": "Babel Compiled + ES2015 + Require", - "entry": "es2015/index.js", - "directory": "es2015", - "syntaxes": [ - "javascript", - "es2015", - "require" - ] - } - ], - "main": "index.js", - "browser": "es2015/index.js", - "dependencies": { - "editions": "^1.1.1", - "typechecker": "^4.3.0" - }, - "devDependencies": { - "assert-helpers": "^4.2.0", - "babel-cli": "^6.9.0", - "babel-preset-es2015": "^6.9.0", - "eslint": "^2.10.2", - "eslint-plugin-babel": "^3.2.0", - "joe": "^1.6.0", - "joe-reporter-console": "^1.2.1", - "projectz": "^1.1.5", - "semver": "^5.1.0" - }, - "scripts": { - "setup": "npm install", - "clean": "rm -Rf ./docs ./es2015", - "compile": "npm run compile:es2015", - "compile:es2015": "babel ./source --out-dir ./es2015 --presets es2015", - "meta": "npm run meta:projectz", - "meta:projectz": "projectz compile", - "prepare": "npm run compile && npm run test && npm run meta", - "release": "npm run prepare && npm run release:publish && npm run release:tag && npm run release:push", - "release:publish": "npm publish", - "release:tag": "git tag v$npm_package_version -a", - "release:push": "git push origin master && git push origin --tags", - "pretest": "npm run test:eslint", - "test:eslint": "eslint ./source", - "test": "node --harmony -e \"require('editions').requirePackage(process.cwd(), require, 'test.js')\"" - }, - "gitHead": "57ef794d001c16fd906b2558137e8ea51c1f6330", - "_id": "eachr@3.2.0", - "_shasum": "2c35e43ea086516f7997cf80b7aa64d55a4a4484", - "_from": "eachr@>=3.2.0 <4.0.0", - "_npmVersion": "3.8.7", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "balupton", - "email": "b@lupton.cc" - }, - "dist": { - "shasum": "2c35e43ea086516f7997cf80b7aa64d55a4a4484", - "tarball": "https://registry.npmjs.org/eachr/-/eachr-3.2.0.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/eachr-3.2.0.tgz_1464338078617_0.2750986448954791" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/eachr/-/eachr-3.2.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/source/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/source/index.js deleted file mode 100755 index 9fb42edb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/eachr/source/index.js +++ /dev/null @@ -1,43 +0,0 @@ -/* eslint no-cond-assign:0 */ - -// Import -const typeChecker = require('typechecker') - -// Eachr -module.exports = function eachr (subject, callback) { - // Handle - if ( typeChecker.isArray(subject) ) { - for ( let key = 0; key < subject.length; ++key ) { - const value = subject[key] - if ( callback.call(subject, value, key, subject) === false ) { - break - } - } - } - else if ( typeChecker.isPlainObject(subject) ) { - for ( const key in subject ) { - if ( subject.hasOwnProperty(key) ) { - const value = subject[key] - if ( callback.call(subject, value, key, subject) === false ) { - break - } - } - } - } - else if ( typeChecker.isMap(subject) ) { - const entries = subject.entries() - let entry; while ( entry = entries.next().value ) { - const [key, value] = entry // destructuring - if ( callback.call(subject, value, key, subject) === false ) { - break - } - } - } - else { - // Perhaps falling back to a `for of` loop here would be sensible - throw new Error('eachr does not know how to iterate what was passed to it') - } - - // Return - return subject -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/.flowconfig b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/.flowconfig deleted file mode 100644 index 0545dc98..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/.flowconfig +++ /dev/null @@ -1,14 +0,0 @@ -# 2016 October 24 -# https://github.com/bevry/base -[ignore] -.*/docs/.* -.*/es2015/.* - -[options] -module.ignore_non_literal_requires=true -unsafe.enable_getters_and_setters=true -esproposal.class_static_fields=enable -esproposal.class_instance_fields=enable - -[version] ->=0.23 <1 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/.npmignore deleted file mode 100644 index 8402ff53..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/.npmignore +++ /dev/null @@ -1,50 +0,0 @@ -# 2016 October 17 -# https://github.com/bevry/base - -# Temp Files -yarn.lock -**/.docpad.db -**/out.* -**/*.log -**/*.cpuprofile -**/*.heapsnapshot - -# Build Files -build/ -components/ -bower_components/ -node_modules/ - -# Private Files -.env - -# Documentation Files -docs/ -guides/ -BACKERS.md -CONTRIBUTING.md -HISTORY.md - -# Development Files -web/ -**/example* -**/test* -.editorconfig -.eslintrc* -.jshintrc -.jscrc -coffeelint* -.travis* -nakefile* -Cakefile -Makefile - -# Other Package Definitions -template.js -component.json -bower.json - -# ===================================== -# CUSTOM MODIFICATIONS - -# None diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/HISTORY.md deleted file mode 100644 index 265007c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/HISTORY.md +++ /dev/null @@ -1,41 +0,0 @@ -# History - -## v1.3.3 2016 November 4 -- Properly add node 0.8 support - -## v1.3.2 2016 November 4 -- Added node 0.8 support - -## v1.3.1 2016 October 11 -- Fixed failure to load editions that had the edition directory within the edition entry - - Thanks to [Jordan Harband](https://github.com/ljharb) for [issue #20](https://github.com/bevry/editions/issues/20) - -## v1.3.0 2016 October 11 -- Added support for `EDITIONS_SYNTAX_BLACKLIST` environment variable - - Thanks to [Damon Maria](https://github.com/damonmaria) for [issue #10](https://github.com/bevry/editions/issues/10) -- Dropped need for `DEBUG_BEVRY_EDITIONS` as failures will not output all the necessary debugging information - -## v1.2.1 2016 October 10 -- Change `esnext` skip from v8 engines < 4 to node engines < 0.12 - -## v1.2.0 2016 October 10 -- Skip syntaxes that require preprocessors -- Skip `import` syntax, as the `module` field inside `package.json` skips the autoloader if supported -- Skip `esnext` syntax on v8 engines < 4 - -## v1.1.2 2016 June 16 -- Parent errors are now displayed in a more sensible way - -## v1.1.1 2016 March 20 -- Errors and debug messages are now more useful - - Closes https://github.com/bevry/editions/issues/5 - -## v1.1.0 2016 March 20 -- Added support for custom entry point overrides -- Debugging goes to `console.error` (stderr) rather than `console.log` (stdout) - - Closes https://github.com/bevry/editions/issues/2 -- Added tests - - Closes https://github.com/bevry/editions/issues/4 - -## v1.0.1 2016 March 9 -- Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/LICENSE.md deleted file mode 100644 index 58c05d46..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/LICENSE.md +++ /dev/null @@ -1,23 +0,0 @@ - - -

      License

      - -Unless stated otherwise all works are: - - - -and licensed under: - - - -

      MIT License

      - -
      -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/README.md deleted file mode 100644 index 9b19cdc7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/README.md +++ /dev/null @@ -1,106 +0,0 @@ - - -

      editions

      - - - - - - -Travis CI Build Status -NPM version -NPM downloads -Dependency Status -Dev Dependency Status -
      -Slack community badge -Patreon donate button -Gratipay donate button -Flattr donate button -PayPal donate button -Bitcoin donate button -Wishlist browse button - - - - - - -Publish multiple editions for your JavaScript packages consistently and easily (e.g. source edition, esnext edition, es2015 edition) - - - - -## Discover - -[Watch the talk.](https://youtu.be/IAB8_UlcNWI) - -[Get started with the guides and explanations.](https://github.com/bevry/editions/wiki) - -[View the API documentation.](http://rawgit.com/bevry/editions/master/docs/index.html) - - - - -

      History

      - -Discover the release history by heading on over to the HISTORY.md file. - - - - - - -

      Contribute

      - -Discover how you can contribute by heading on over to the CONTRIBUTING.md file. - - - - - - -

      Backers

      - -

      Maintainers

      - -These amazing people are maintaining this project: - - - -

      Sponsors

      - -No sponsors yet! Will you be the first? - -Patreon donate button -Gratipay donate button -Flattr donate button -PayPal donate button -Bitcoin donate button -Wishlist browse button - -

      Contributors

      - -These amazing people have contributed code to this project: - - - -Discover how you can contribute by heading on over to the CONTRIBUTING.md file. - - - - - - -

      License

      - -Unless stated otherwise all works are: - - - -and licensed under: - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/es2015/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/es2015/index.js deleted file mode 100644 index 7846d810..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/es2015/index.js +++ /dev/null @@ -1,211 +0,0 @@ -/* @flow */ -/* eslint no-console:0 */ -'use strict'; - -// Imports - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var pathUtil = require('path'); - -// Helper class to display nested error in a sensible way - -var DetailedError = function (_Error) { - _inherits(DetailedError, _Error); - - function DetailedError(message /* :string */, details /* :Object */) { - _classCallCheck(this, DetailedError); - - Object.keys(details).forEach(function (key) { - var data = details[key]; - var value = require('util').inspect(data.stack || data.message || data); - message += '\n' + key + ': ' + value; - }); - return _possibleConstructorReturn(this, (DetailedError.__proto__ || Object.getPrototypeOf(DetailedError)).call(this, message)); - } - - return DetailedError; -}(Error); - -// Environment fetching - - -var blacklist = process && process.env && process.env.EDITIONS_SYNTAX_BLACKLIST && process.env.EDITIONS_SYNTAX_BLACKLIST.split(','); - -// Cache of which syntax combinations are supported or unsupported, hash of booleans -var syntaxFailedCombitions = {}; // sorted lowercase syntax combination => Error instance of failure -var syntaxBlacklist = {}; -syntaxBlacklist.import = new Error('The import syntax is skipped as the module package.json field eliminates the need for autoloader support'); -syntaxBlacklist.coffeescript = new Error('The coffeescript syntax is skipped as we want to use a precompiled edition rather than compiling at runtime'); -syntaxBlacklist.typescript = new Error('The typescript syntax is skipped as we want to use a precompiled edition rather than compiling at runtime'); - -// Blacklist non-esnext node versions from esnext -if (process && process.versions && process.versions.node) { - var EARLIEST_ESNEXT_NODE_VERSION = [0, 12]; - var NODE_VERSION = process.versions.node.split('.').map(function (n) { - return parseInt(n, 10); - }); - var ESNEXT_UNSUPPORTED = NODE_VERSION[0] < EARLIEST_ESNEXT_NODE_VERSION[0] || NODE_VERSION[0] === EARLIEST_ESNEXT_NODE_VERSION[0] && NODE_VERSION[1] < EARLIEST_ESNEXT_NODE_VERSION[1]; - if (ESNEXT_UNSUPPORTED) syntaxBlacklist.esnext = new Error('The esnext syntax is skipped on early node versions as attempting to use esnext features will output debugging information on these node versions'); -} - -// Check the environment configuration for a syntax blacklist -if (blacklist) { - for (var i = 0; i < blacklist.length; ++i) { - var syntax = blacklist[i].trim().toLowerCase(); - syntaxBlacklist[syntax] = new DetailedError('The EDITIONS_SYNTAX_BLACKLIST environment variable has blacklisted an edition syntax:', { syntax: syntax, blacklist: blacklist }); - } -} - -/* :: -type edition = { - name:number, - description?:string, - directory?:string, - entry?:string, - syntaxes?:Array -}; -type options = { - cwd?:string, - package?:string, - entry?:string, - require:function -}; -*/ - -/** - * Cycle through the editions and require the correct one - * @protected internal function that is untested for public consumption - * @param {edition} edition - the edition entry - * @param {Object} opts - the following options - * @param {string} opts.require - the require method of the calling module, used to ensure require paths remain correct - * @param {string} [opts.cwd] - if provided, this will be the cwd for entries - * @param {string} [opts.entry] - if provided, should be a relative or absolute path to the entry point of the edition - * @param {string} [opts.package] - if provided, should be the name of the package that we are loading the editions for - * @returns {*} - */ -function requireEdition(edition /* :edition */, opts /* :options */) /* :any */{ - // Prevent require from being included in debug logs - Object.defineProperty(opts, 'require', { value: opts.require, enumerable: false }); - - // Get the correct entry path - // As older versions o - var cwd = opts.cwd || ''; - var dir = edition.directory || ''; - var entry = opts.entry || edition.entry || ''; - if (dir && entry && entry.indexOf(dir + '/') === 0) entry = entry.substring(dir.length + 1); - // ^ this should not be needed, but as previous versions of editions included the directory inside the entry - // it unfortunately is, as such this is a stepping stone for the new format, the new format being - // if entry is specified by itself, it is cwd => entry - // if entry is specified with a directory, it is cwd => dir => entry - // if entry is not specified but dir is, it is cwd => dir - // if neither entry nor dir are specified, we have a problem - if (!dir && !entry) { - var editionFailure = new DetailedError('Skipped edition due to no entry or directory being specified:', { edition: edition, cwd: cwd, dir: dir, entry: entry }); - throw editionFailure; - } - var entryPath = pathUtil.resolve(cwd, dir, entry); - - // Check syntax support - // Convert syntaxes into a sorted lowercase string - var syntaxes = edition.syntaxes && edition.syntaxes.map(function (i) { - return i.toLowerCase(); - }).sort(); - var syntaxCombination = syntaxes && syntaxes.join(', '); - if (syntaxes && syntaxCombination) { - // Check if any of the syntaxes are unsupported - var unsupportedSyntaxes = syntaxes.filter(function (i) { - return syntaxBlacklist[i.toLowerCase()]; - }); - if (unsupportedSyntaxes.length) { - var _editionFailure = new DetailedError('Skipped edition due to it containing an unsupported syntax:', { edition: edition, unsupportedSyntaxes: unsupportedSyntaxes }); - throw _editionFailure; - } - // Is this syntax combination unsupported? If so skip it with a soft failure to try the next edition - else if (syntaxFailedCombitions[syntaxCombination]) { - var previousCombinationFailure = syntaxFailedCombitions[syntaxCombination]; - var _editionFailure2 = new DetailedError('Skipped edition due to its syntax combinatiom failing previously:', { edition: edition, previousCombinationFailure: previousCombinationFailure }); - throw _editionFailure2; - } - } - - // Try and load this syntax combination - try { - return opts.require(entryPath); - } catch (error) { - // Note the error with more details - var _editionFailure3 = new DetailedError('Failed to load the edition due to a load error:', { edition: edition, error: error.stack }); - - // Blacklist the combination, even if it may have worked before - // Perhaps in the future note if that if it did work previously, then we should instruct module owners to be more specific with their syntaxes - if (syntaxCombination) syntaxFailedCombitions[syntaxCombination] = _editionFailure3; - - // Continue to the next edition - throw _editionFailure3; - } -} - -/** - * Cycle through the editions and require the correct one - * @protected internal function that is untested for public consumption - * @param {Array} editions - an array of edition entries - * @param {Object} opts - the following options - * @param {string} opts.require - the require method of the calling module, used to ensure require paths remain correct - * @param {string} [opts.cwd] - if provided, this will be the cwd for entries - * @param {string} [opts.entry] - if provided, should be a relative path to the entry point of the edition - * @param {string} [opts.package] - if provided, should be the name of the package that we are loading the editions for - * @returns {*} - */ -function requireEditions(editions /* :Array */, opts /* :options */) /* :any */{ - // Extract - if (opts.package == null) opts.package = 'custom runtime package'; - - // Check - if (!editions || editions.length === 0) { - throw new DetailedError('No editions were specified:', { opts: opts }); - } - - // Note the last error message - var editionFailures = []; - - // Cycle through the editions - for (var _i = 0; _i < editions.length; ++_i) { - var edition = editions[_i]; - try { - return requireEdition(edition, opts); - } catch (err) { - editionFailures.push(err); - } - } - - // Through the error as no edition loaded - throw new DetailedError('There are no suitable editions for this environment:', { opts: opts, editions: editions, failures: editionFailures }); -} - -/** - * Cycle through the editions for a package and require the correct one - * @param {string} cwd - the path of the package, used to load package.json:editions and handle relative edition entry points - * @param {function} require - the require method of the calling module, used to ensure require paths remain correct - * @param {string} [entry] - an optional override for the entry of an edition, requires the edition to specify a `directory` property - * @returns {*} - */ -function requirePackage(cwd /* :string */, require /* :function */, entry /* :: ?:string */) /* :any */{ - // Load the package.json file to fetch `name` for debugging and `editions` for loading - var packagePath = pathUtil.resolve(cwd, 'package.json'); - - var _require = require(packagePath), - name = _require.name, - editions = _require.editions; - - var opts /* :options */ = { cwd: cwd, require: require }; - if (name) opts.package = name; - if (entry) opts.entry = entry; - return requireEditions(editions, opts); -} - -// Exports -module.exports = { requireEdition: requireEdition, requireEditions: requireEditions, requirePackage: requirePackage }; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/package.json deleted file mode 100644 index dfa37da9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/package.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "name": "editions", - "version": "1.3.3", - "description": "Publish multiple editions for your JavaScript packages consistently and easily (e.g. source edition, esnext edition, es2015 edition)", - "homepage": "https://github.com/bevry/editions", - "license": "MIT", - "keywords": [ - "editions", - "edition", - "versions", - "syntaxes", - "esnext", - "jsnext", - "es2015", - "es6", - "es6+" - ], - "badges": { - "list": [ - "travisci", - "npmversion", - "npmdownloads", - "daviddm", - "daviddmdev", - "---", - "slackin", - "patreon", - "gratipay", - "flattr", - "paypal", - "bitcoin", - "wishlist" - ], - "config": { - "patreonUsername": "bevry", - "gratipayUsername": "bevry", - "flattrUsername": "balupton", - "paypalURL": "https://bevry.me/paypal", - "bitcoinURL": "https://bevry.me/bitcoin", - "wishlistURL": "https://bevry.me/wishlist", - "slackinURL": "https://slack.bevry.me" - } - }, - "author": { - "name": "2016+ Bevry Pty Ltd", - "email": "us@bevry.me", - "url": "http://bevry.me" - }, - "maintainers": [ - { - "name": "balupton", - "email": "b@lupton.cc" - } - ], - "contributors": [ - { - "name": "Benjamin Lupton", - "email": "b@lupton.cc", - "url": "http://balupton.com" - }, - { - "name": "Zlatan Vasović", - "email": "zlatanvasovic@gmail.com", - "url": "http://zdroid.github.io" - } - ], - "bugs": { - "url": "https://github.com/bevry/editions/issues" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/bevry/editions.git" - }, - "engines": { - "node": ">=0.8" - }, - "editions": [ - { - "description": "Source + ESNext + Require + Flow Type Comments", - "entry": "source/index.js", - "syntaxes": [ - "javascript", - "esnext", - "require", - "arrows", - "destructuring", - "const", - "let", - "flow type comments" - ] - }, - { - "description": "Babel Compiled + ES2015 + Require", - "entry": "es2015/index.js", - "syntaxes": [ - "javascript", - "es2015", - "require" - ] - } - ], - "main": "es2015/index.js", - "scripts": { - "our:setup": "npm install", - "our:clean": "rm -Rf ./docs ./es2015", - "our:compile": "npm run our:compile:es2015", - "our:compile:es2015": "babel ./source --out-dir ./es2015 --presets es2015", - "our:meta": "npm run our:meta:docs && npm run our:meta:projectz", - "our:meta:docs": "documentation build -f html -o ./docs -g --shallow ./source/**.js", - "our:meta:projectz": "projectz compile", - "our:verify": "npm run our:verify:eslint && npm run our:verify:flow", - "our:verify:eslint": "eslint --fix ./source", - "our:verify:flow": "flow check", - "our:test": "npm run our:verify && npm test", - "our:release": "npm run our:release:prepare && npm run our:release:publish && npm run our:release:tag && npm run our:release:push", - "our:release:prepare": "npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta", - "our:release:publish": "npm publish", - "our:release:tag": "git tag v$npm_package_version -a", - "our:release:push": "git push origin master && git push origin --tags", - "test": "node --harmony ./es2015/test.js --joe-reporter=console" - }, - "dependencies": {}, - "devDependencies": { - "assert-helpers": "^4.4.0", - "babel-cli": "^6.18.0", - "babel-preset-es2015": "^6.18.0", - "documentation": "^4.0.0-beta11", - "eslint": "^3.9.1", - "flow-bin": "^0.34.0", - "joe": "^2.0.2", - "joe-reporter-console": "^2.0.1", - "projectz": "^1.3.2" - }, - "gitHead": "272530079d941652a2679cf2152e83ed2f3f2129", - "_id": "editions@1.3.3", - "_shasum": "0907101bdda20fac3cbe334c27cbd0688dc99a5b", - "_from": "editions@>=1.1.1 <2.0.0", - "_npmVersion": "3.10.9", - "_nodeVersion": "7.0.0", - "_npmUser": { - "name": "balupton", - "email": "b@lupton.cc" - }, - "dist": { - "shasum": "0907101bdda20fac3cbe334c27cbd0688dc99a5b", - "tarball": "https://registry.npmjs.org/editions/-/editions-1.3.3.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/editions-1.3.3.tgz_1478256764229_0.07439323770813644" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/editions/-/editions-1.3.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/source/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/source/index.js deleted file mode 100644 index 51ac1adc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/editions/source/index.js +++ /dev/null @@ -1,190 +0,0 @@ -/* @flow */ -/* eslint no-console:0 */ -'use strict' - -// Imports -const pathUtil = require('path') - -// Helper class to display nested error in a sensible way -class DetailedError extends Error { - constructor (message /* :string */, details /* :Object */) { - Object.keys(details).forEach(function (key) { - const data = details[key] - const value = require('util').inspect(data.stack || data.message || data) - message += `\n${key}: ${value}` - }) - super(message) - } -} - -// Environment fetching -const blacklist = process && process.env && process.env.EDITIONS_SYNTAX_BLACKLIST && process.env.EDITIONS_SYNTAX_BLACKLIST.split(',') - -// Cache of which syntax combinations are supported or unsupported, hash of booleans -const syntaxFailedCombitions = {} // sorted lowercase syntax combination => Error instance of failure -const syntaxBlacklist = {} -syntaxBlacklist.import = new Error('The import syntax is skipped as the module package.json field eliminates the need for autoloader support') -syntaxBlacklist.coffeescript = new Error('The coffeescript syntax is skipped as we want to use a precompiled edition rather than compiling at runtime') -syntaxBlacklist.typescript = new Error('The typescript syntax is skipped as we want to use a precompiled edition rather than compiling at runtime') - -// Blacklist non-esnext node versions from esnext -if ( process && process.versions && process.versions.node ) { - const EARLIEST_ESNEXT_NODE_VERSION = [0, 12] - const NODE_VERSION = process.versions.node.split('.').map((n) => parseInt(n, 10)) - const ESNEXT_UNSUPPORTED = NODE_VERSION[0] < EARLIEST_ESNEXT_NODE_VERSION[0] || ( - NODE_VERSION[0] === EARLIEST_ESNEXT_NODE_VERSION[0] && - NODE_VERSION[1] < EARLIEST_ESNEXT_NODE_VERSION[1] - ) - if ( ESNEXT_UNSUPPORTED ) syntaxBlacklist.esnext = new Error('The esnext syntax is skipped on early node versions as attempting to use esnext features will output debugging information on these node versions') -} - -// Check the environment configuration for a syntax blacklist -if ( blacklist ) { - for ( let i = 0; i < blacklist.length; ++i ) { - const syntax = blacklist[i].trim().toLowerCase() - syntaxBlacklist[syntax] = new DetailedError('The EDITIONS_SYNTAX_BLACKLIST environment variable has blacklisted an edition syntax:', {syntax, blacklist}) - } -} - -/* :: -type edition = { - name:number, - description?:string, - directory?:string, - entry?:string, - syntaxes?:Array -}; -type options = { - cwd?:string, - package?:string, - entry?:string, - require:function -}; -*/ - -/** - * Cycle through the editions and require the correct one - * @protected internal function that is untested for public consumption - * @param {edition} edition - the edition entry - * @param {Object} opts - the following options - * @param {string} opts.require - the require method of the calling module, used to ensure require paths remain correct - * @param {string} [opts.cwd] - if provided, this will be the cwd for entries - * @param {string} [opts.entry] - if provided, should be a relative or absolute path to the entry point of the edition - * @param {string} [opts.package] - if provided, should be the name of the package that we are loading the editions for - * @returns {*} - */ -function requireEdition ( edition /* :edition */, opts /* :options */ ) /* :any */ { - // Prevent require from being included in debug logs - Object.defineProperty(opts, 'require', {value: opts.require, enumerable: false}) - - // Get the correct entry path - // As older versions o - const cwd = opts.cwd || '' - const dir = edition.directory || '' - let entry = opts.entry || edition.entry || '' - if ( dir && entry && entry.indexOf(dir + '/') === 0 ) entry = entry.substring(dir.length + 1) - // ^ this should not be needed, but as previous versions of editions included the directory inside the entry - // it unfortunately is, as such this is a stepping stone for the new format, the new format being - // if entry is specified by itself, it is cwd => entry - // if entry is specified with a directory, it is cwd => dir => entry - // if entry is not specified but dir is, it is cwd => dir - // if neither entry nor dir are specified, we have a problem - if ( !dir && !entry ) { - const editionFailure = new DetailedError('Skipped edition due to no entry or directory being specified:', {edition, cwd, dir, entry}) - throw editionFailure - } - const entryPath = pathUtil.resolve(cwd, dir, entry) - - // Check syntax support - // Convert syntaxes into a sorted lowercase string - const syntaxes = edition.syntaxes && edition.syntaxes.map((i) => i.toLowerCase()).sort() - const syntaxCombination = syntaxes && syntaxes.join(', ') - if ( syntaxes && syntaxCombination ) { - // Check if any of the syntaxes are unsupported - const unsupportedSyntaxes = syntaxes.filter((i) => syntaxBlacklist[i.toLowerCase()]) - if ( unsupportedSyntaxes.length ) { - const editionFailure = new DetailedError('Skipped edition due to it containing an unsupported syntax:', {edition, unsupportedSyntaxes}) - throw editionFailure - } - // Is this syntax combination unsupported? If so skip it with a soft failure to try the next edition - else if ( syntaxFailedCombitions[syntaxCombination] ) { - const previousCombinationFailure = syntaxFailedCombitions[syntaxCombination] - const editionFailure = new DetailedError('Skipped edition due to its syntax combinatiom failing previously:', {edition, previousCombinationFailure}) - throw editionFailure - } - } - - // Try and load this syntax combination - try { - return opts.require(entryPath) - } - catch ( error ) { - // Note the error with more details - const editionFailure = new DetailedError('Failed to load the edition due to a load error:', {edition, error: error.stack}) - - // Blacklist the combination, even if it may have worked before - // Perhaps in the future note if that if it did work previously, then we should instruct module owners to be more specific with their syntaxes - if ( syntaxCombination ) syntaxFailedCombitions[syntaxCombination] = editionFailure - - // Continue to the next edition - throw editionFailure - } -} - -/** - * Cycle through the editions and require the correct one - * @protected internal function that is untested for public consumption - * @param {Array} editions - an array of edition entries - * @param {Object} opts - the following options - * @param {string} opts.require - the require method of the calling module, used to ensure require paths remain correct - * @param {string} [opts.cwd] - if provided, this will be the cwd for entries - * @param {string} [opts.entry] - if provided, should be a relative path to the entry point of the edition - * @param {string} [opts.package] - if provided, should be the name of the package that we are loading the editions for - * @returns {*} - */ -function requireEditions ( editions /* :Array */, opts /* :options */ ) /* :any */ { - // Extract - if ( opts.package == null ) opts.package = 'custom runtime package' - - // Check - if ( !editions || editions.length === 0 ) { - throw new DetailedError('No editions were specified:', {opts}) - } - - // Note the last error message - const editionFailures = [] - - // Cycle through the editions - for ( let i = 0; i < editions.length; ++i ) { - const edition = editions[i] - try { - return requireEdition(edition, opts) - } - catch ( err ) { - editionFailures.push(err) - } - } - - // Through the error as no edition loaded - throw new DetailedError('There are no suitable editions for this environment:', {opts, editions, failures: editionFailures}) -} - -/** - * Cycle through the editions for a package and require the correct one - * @param {string} cwd - the path of the package, used to load package.json:editions and handle relative edition entry points - * @param {function} require - the require method of the calling module, used to ensure require paths remain correct - * @param {string} [entry] - an optional override for the entry of an edition, requires the edition to specify a `directory` property - * @returns {*} - */ -function requirePackage (cwd /* :string */, require /* :function */, entry /* :: ?:string */ ) /* :any */ { - // Load the package.json file to fetch `name` for debugging and `editions` for loading - const packagePath = pathUtil.resolve(cwd, 'package.json') - const {name, editions} = require(packagePath) - const opts /* :options */ = {cwd, require} - if ( name ) opts.package = name - if ( entry ) opts.entry = entry - return requireEditions(editions, opts) -} - -// Exports -module.exports = {requireEdition, requireEditions, requirePackage} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/.flowconfig b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/.flowconfig deleted file mode 100644 index ea34ef52..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/.flowconfig +++ /dev/null @@ -1,14 +0,0 @@ -[ignore] -.*/node_modules/y18n/test/locales/bad-locale.json -es2015/ -esnext/ -docs/ - -[include] -source/ - -[libs] - -[options] -module.ignore_non_literal_requires=true -unsafe.enable_getters_and_setters=true diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/.npmignore deleted file mode 100644 index 9a433ef9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/.npmignore +++ /dev/null @@ -1,43 +0,0 @@ -# 2015 March 8 -# https://github.com/bevry/base - -# Temp Files -**/.docpad.db -**/out.* -**/*.log -**/*.cpuprofile -**/*.heapsnapshot - -# Build Files -build/ -components/ -bower_components/ -node_modules/ - -# Private Files -.env - -# Development Files -.editorconfig -.eslintrc* -.jshintrc -.jscrc -coffeelint* -.travis* -nakefile* -Cakefile -Makefile -BACKERS.md -CONTRIBUTING.md -HISTORY.md -**/test* - -# Other Package Definitions -template.js -component.json -bower.json - -# ===================================== -# CUSTOM MODIFICATIONS - -# None diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/HISTORY.md deleted file mode 100755 index 651eda66..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/HISTORY.md +++ /dev/null @@ -1,69 +0,0 @@ -# History - -## v4.3.0 2016 March 21 -- Removed `getTypes` as it was ambigious, internal and no one external used it -- Exposed `typeMap` which links types to the methods that check for them, used by `getType` - -## v4.2.1 2016 March 20 -- Fixed packing issue - -## v4.2.0 2016 March 20 -- Now defined as individual methods -- Repackaged - -## v4.1.0 2016 January 15 -- Now defined as a class with static methods instead of an object with functions as that is essentially what it is -- Repackaged - -## v4.0.1 2015 December 9 -- Updated base files -- Updated dependencies - -## v4.0.0 2015 September 21 -- Added new `map` and `weakmap` types that the `getType` method can now return -- Added the methods: - - `isMap` (checks for Map instance) - - `isWeakMap` (checks for WeakMap instance) - -## v3.0.0 2015 August 27 -- Added new `class` type that the `getType` method can now return -- Added the methods: - - `isClass` (checks for native and conventional classes) - - `isNativeClass` (checks for native ES6 classes) - - `isConventionalClass` (checks for functions that start with a capital letter) -- Anonymous compiled/non-native classes may be detected as functions instead of as classes. If you rely on class detection, be aware of this, and document this to your users accordingly. - -## v2.1.0 2015 August 26 -- Fixed `isEmpty` - it use to return the opposite of what was empty -- Converted from CoffeeScript to ES6+ -- Updated base files -- Everything is now tested thoroughly - -## v2.0.8 2013 November 1 -- Dropped component.io and bower support, just use ender or browserify - -## v2.0.7 2013 October 27 -- Re-packaged - -## v2.0.6 2013 September 18 -- Fixed node release (since v2.0.5) -- Fixed bower release (since v2.0.4) - -## v2.0.5 2013 September 18 -- Fixed node release (since v2.0.4) - -## v2.0.4 2013 September 18 -- Fixed cyclic dependency problem on windows (since v2.0.3) -- Added bower support - -## v2.0.3 2013 September 18 -- Attempt at fixing circular dependency infinite loop (since v2.0.2) - -## v2.0.2 2013 September 18 -- Added component.io support - -## v2.0.1 2013 March 27 -- Fixed some package.json properties - -## v2.0.0 2013 March 27 -- Split typeChecker from [bal-util](https://github.com/balupton/bal-util) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/LICENSE.md deleted file mode 100644 index f616c0a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/LICENSE.md +++ /dev/null @@ -1,24 +0,0 @@ - - -

      License

      - -Unless stated otherwise all works are: - - - -and licensed under: - - - -

      MIT License

      - -
      -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/README.md deleted file mode 100755 index dcf47554..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/README.md +++ /dev/null @@ -1,142 +0,0 @@ - - -

      TypeChecker

      - - - - - - -Travis CI Build Status -NPM version -NPM downloads -Dependency Status -Dev Dependency Status -
      -Slack community badge -Patreon donate button -Gratipay donate button -Flattr donate button -PayPal donate button -Bitcoin donate button -Wishlist browse button - - - - - - -Utilities to get and check variable types (isString, isPlainObject, isRegExp, etc) - - - - -## Why? - -Why should I use this instead of say `instanceof`? - -Under certain circumstances `instanceof` may not return the correct results. This occurs with [node's vm module](http://nodejs.org/api/vm.html#vm_globals) especially, and circumstances where an object's prototype has been dereferenced from the original. As such, for basic `==` and `===` checks (like `a === null`), you're fine not using this, but for checks when you would have done `instanceof` (like `err instanceof Error`), you should try to use this instead. Plus things like `isEmpty`, `isEmptyObject` and `isPlainObject` are darn useful! - - -## Usage - -[API Documentation.](http://rawgit.com/bevry/typechecker/master/docs/index.html) - - - - -

      Install

      - -

      NPM

        -
      • Install: npm install --save typechecker
      • -
      • Module: require('typechecker')
      - -

      Browserify

        -
      • Install: npm install --save typechecker
      • -
      • Module: require('typechecker')
      • -
      • CDN URL: //wzrd.in/bundle/typechecker@4.3.0
      - -

      Ender

        -
      • Install: ender add typechecker
      • -
      • Module: require('typechecker')
      - -

      Editions

      - -

      This package is published with the following editions:

      - - - -

      Older environments may need Babel's Polyfill or something similar.

      - - - - - - -

      History

      - -Discover the release history by heading on over to the HISTORY.md file. - - - - - - -

      Contribute

      - -Discover how you can contribute by heading on over to the CONTRIBUTING.md file. - - - - - - -

      Backers

      - -

      Maintainers

      - -These amazing people are maintaining this project: - - - -

      Sponsors

      - -No sponsors yet! Will you be the first? - -Patreon donate button -Gratipay donate button -Flattr donate button -PayPal donate button -Bitcoin donate button -Wishlist browse button - -

      Contributors

      - -These amazing people have contributed code to this project: - - - -Discover how you can contribute by heading on over to the CONTRIBUTING.md file. - - - - - - -

      License

      - -Unless stated otherwise all works are: - - - -and licensed under: - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/anchor.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/anchor.js deleted file mode 100644 index 47d871ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/anchor.js +++ /dev/null @@ -1,197 +0,0 @@ -/*! - * AnchorJS - v1.2.1 - 2015-07-02 - * https://github.com/bryanbraun/anchorjs - * Copyright (c) 2015 Bryan Braun; Licensed MIT - */ - -function AnchorJS(options) { - 'use strict'; - - this.options = options || {}; - - this._applyRemainingDefaultOptions = function(opts) { - this.options.icon = this.options.hasOwnProperty('icon') ? opts.icon : '\ue9cb'; // Accepts characters (and also URLs?), like '#', '¶', '❡', or '§'. - this.options.visible = this.options.hasOwnProperty('visible') ? opts.visible : 'hover'; // Also accepts 'always' - this.options.placement = this.options.hasOwnProperty('placement') ? opts.placement : 'right'; // Also accepts 'left' - this.options.class = this.options.hasOwnProperty('class') ? opts.class : ''; // Accepts any class name. - }; - - this._applyRemainingDefaultOptions(options); - - this.add = function(selector) { - var elements, - elsWithIds, - idList, - elementID, - i, - roughText, - tidyText, - index, - count, - newTidyText, - readableID, - anchor; - - this._applyRemainingDefaultOptions(this.options); - - // Provide a sensible default selector, if none is given. - if (!selector) { - selector = 'h1, h2, h3, h4, h5, h6'; - } else if (typeof selector !== 'string') { - throw new Error('The selector provided to AnchorJS was invalid.'); - } - - elements = document.querySelectorAll(selector); - if (elements.length === 0) { - return false; - } - - this._addBaselineStyles(); - - // We produce a list of existing IDs so we don't generate a duplicate. - elsWithIds = document.querySelectorAll('[id]'); - idList = [].map.call(elsWithIds, function assign(el) { - return el.id; - }); - - for (i = 0; i < elements.length; i++) { - - if (elements[i].hasAttribute('id')) { - elementID = elements[i].getAttribute('id'); - } else { - roughText = elements[i].textContent; - - // Refine it so it makes a good ID. Strip out non-safe characters, replace - // spaces with hyphens, truncate to 32 characters, and make toLowerCase. - // - // Example string: // '⚡⚡⚡ Unicode icons are cool--but they definitely don't belong in a URL fragment.' - tidyText = roughText.replace(/[^\w\s-]/gi, '') // ' Unicode icons are cool--but they definitely dont belong in a URL fragment' - .replace(/\s+/g, '-') // '-Unicode-icons-are-cool--but-they-definitely-dont-belong-in-a-URL-fragment' - .replace(/-{2,}/g, '-') // '-Unicode-icons-are-cool-but-they-definitely-dont-belong-in-a-URL-fragment' - .substring(0, 64) // '-Unicode-icons-are-cool-but-they-definitely-dont-belong-in-a-URL' - .replace(/^-+|-+$/gm, '') // 'Unicode-icons-are-cool-but-they-definitely-dont-belong-in-a-URL' - .toLowerCase(); // 'unicode-icons-are-cool-but-they-definitely-dont-belong-in-a-url' - - // Compare our generated ID to existing IDs (and increment it if needed) - // before we add it to the page. - newTidyText = tidyText; - count = 0; - do { - if (index !== undefined) { - newTidyText = tidyText + '-' + count; - } - // .indexOf is supported in IE9+. - index = idList.indexOf(newTidyText); - count += 1; - } while (index !== -1); - index = undefined; - idList.push(newTidyText); - - // Assign it to our element. - // Currently the setAttribute element is only supported in IE9 and above. - elements[i].setAttribute('id', newTidyText); - - elementID = newTidyText; - } - - readableID = elementID.replace(/-/g, ' '); - - // The following code builds the following DOM structure in a more effiecient (albeit opaque) way. - // ''; - anchor = document.createElement('a'); - anchor.className = 'anchorjs-link ' + this.options.class; - anchor.href = '#' + elementID; - anchor.setAttribute('aria-label', 'Anchor link for: ' + readableID); - anchor.setAttribute('data-anchorjs-icon', this.options.icon); - - if (this.options.visible === 'always') { - anchor.style.opacity = '1'; - } - - if (this.options.icon === '\ue9cb') { - anchor.style.fontFamily = 'anchorjs-icons'; - anchor.style.fontStyle = 'normal'; - anchor.style.fontVariant = 'normal'; - anchor.style.fontWeight = 'normal'; - anchor.style.lineHeight = 1; - } - - if (this.options.placement === 'left') { - anchor.style.position = 'absolute'; - anchor.style.marginLeft = '-1em'; - anchor.style.paddingRight = '0.5em'; - elements[i].insertBefore(anchor, elements[i].firstChild); - } else { // if the option provided is `right` (or anything else). - anchor.style.paddingLeft = '0.375em'; - elements[i].appendChild(anchor); - } - } - - return this; - }; - - this.remove = function(selector) { - var domAnchor, - elements = document.querySelectorAll(selector); - for (var i = 0; i < elements.length; i++) { - domAnchor = elements[i].querySelector('.anchorjs-link'); - if (domAnchor) { - elements[i].removeChild(domAnchor); - } - } - return this; - }; - - this._addBaselineStyles = function() { - // We don't want to add global baseline styles if they've been added before. - if (document.head.querySelector('style.anchorjs') !== null) { - return; - } - - var style = document.createElement('style'), - linkRule = - ' .anchorjs-link {' + - ' opacity: 0;' + - ' text-decoration: none;' + - ' -webkit-font-smoothing: antialiased;' + - ' -moz-osx-font-smoothing: grayscale;' + - ' }', - hoverRule = - ' *:hover > .anchorjs-link,' + - ' .anchorjs-link:focus {' + - ' opacity: 1;' + - ' }', - anchorjsLinkFontFace = - ' @font-face {' + - ' font-family: "anchorjs-icons";' + - ' font-style: normal;' + - ' font-weight: normal;' + // Icon from icomoon; 10px wide & 10px tall; 2 empty below & 4 above - ' src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBTUAAAC8AAAAYGNtYXAWi9QdAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zgq29TcAAAF4AAABNGhlYWQEZM3pAAACrAAAADZoaGVhBhUDxgAAAuQAAAAkaG10eASAADEAAAMIAAAAFGxvY2EAKACuAAADHAAAAAxtYXhwAAgAVwAAAygAAAAgbmFtZQ5yJ3cAAANIAAAB2nBvc3QAAwAAAAAFJAAAACAAAwJAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpywPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6cv//f//AAAAAAAg6cv//f//AAH/4xY5AAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAACADEARAJTAsAAKwBUAAABIiYnJjQ/AT4BMzIWFxYUDwEGIicmND8BNjQnLgEjIgYPAQYUFxYUBw4BIwciJicmND8BNjIXFhQPAQYUFx4BMzI2PwE2NCcmNDc2MhcWFA8BDgEjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAEAAAABAACiToc1Xw889QALBAAAAAAA0XnFFgAAAADRecUWAAAAAAJTAsAAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAAAAAlMAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAACAAAAAoAAMQAAAAAACgAUAB4AmgABAAAABQBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIABwCfAAEAAAAAAAMADgBLAAEAAAAAAAQADgC0AAEAAAAAAAUACwAqAAEAAAAAAAYADgB1AAEAAAAAAAoAGgDeAAMAAQQJAAEAHAAOAAMAAQQJAAIADgCmAAMAAQQJAAMAHABZAAMAAQQJAAQAHADCAAMAAQQJAAUAFgA1AAMAAQQJAAYAHACDAAMAAQQJAAoANAD4YW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQByYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format("truetype");' + - ' }', - pseudoElContent = - ' [data-anchorjs-icon]::after {' + - ' content: attr(data-anchorjs-icon);' + - ' }', - firstStyleEl; - - style.className = 'anchorjs'; - style.appendChild(document.createTextNode('')); // Necessary for Webkit. - - // We place it in the head with the other style tags, if possible, so as to - // not look out of place. We insert before the others so these styles can be - // overridden if necessary. - firstStyleEl = document.head.querySelector('[rel="stylesheet"], style'); - if (firstStyleEl === undefined) { - document.head.appendChild(style); - } else { - document.head.insertBefore(style, firstStyleEl); - } - - style.sheet.insertRule(linkRule, style.sheet.cssRules.length); - style.sheet.insertRule(hoverRule, style.sheet.cssRules.length); - style.sheet.insertRule(pseudoElContent, style.sheet.cssRules.length); - style.sheet.insertRule(anchorjsLinkFontFace, style.sheet.cssRules.length); - }; -} - -var anchors = new AnchorJS(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/bass.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/bass.css deleted file mode 100755 index 941c260e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/bass.css +++ /dev/null @@ -1,850 +0,0 @@ -/* - - Basscss v7.0.3 - Low-level CSS toolkit - http://basscss.com - - 14.88 kB - 3.38 kB Gzipped - 286 Rules - 328 Selectors - 441 Declarations - 95 Properties - -*/ - - - -body { margin: 0 } -img { max-width: 100% } -svg { max-height: 100% } - -input, -select, -textarea, -fieldset { - font-family: inherit; - font-size: 1rem; - box-sizing: border-box; - margin-top: 0; - margin-bottom: 0; -} - -label { - vertical-align: middle; -} - -input[type=text], -input[type=date], -input[type=datetime], -input[type=datetime-local], -input[type=email], -input[type=month], -input[type=number], -input[type=password], -input[type=search], -input[type=tel], -input[type=time], -input[type=url], -input[type=week] { - height: 2.25rem; - padding: .5rem .5rem; - vertical-align: middle; - -webkit-appearance: none; -} - -select { - line-height: 1.75; - padding: .5rem .5rem; -} - -select:not([multiple]) { - height: 2.25rem; - vertical-align: middle; -} - -textarea { - line-height: 1.75; - padding: .5rem .5rem; -} - -table { - border-collapse: separate; - border-spacing: 0; - max-width: 100%; - width: 100%; -} - -th { - text-align: left; - font-weight: bold; -} - -th, -td { - padding: .25rem 1rem; - line-height: inherit; -} - -th { vertical-align: bottom } -td { vertical-align: top } - -body { - font-family: 'Helvetica Neue', Helvetica, sans-serif; - line-height: 1.5; - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - font-family: 'Helvetica Neue', Helvetica, sans-serif; - font-weight: bold; - line-height: 1.25; - margin-top: 1em; - margin-bottom: .5em; -} - -p { - margin-top: 0; - margin-bottom: 1rem; -} - -dl, ol, ul { - margin-top: 0; - margin-bottom: 1rem; -} - -pre, code, samp { - font-family: 'Source Code Pro', Consolas, monospace; - font-size: inherit; -} - -pre { - margin-top: 0; - margin-bottom: 1rem; - overflow-x: scroll; -} - -h1 { font-size: 2rem } -h2 { font-size: 1.5rem } -h3 { font-size: 1.25rem } -h4 { font-size: 1rem } -h5 { font-size: .875rem } -h6 { font-size: .75rem } - -body { - color: #111; - background-color: #fff; -} - -a { - color: #0074d9; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -pre, code { - background-color: transparent; - border-radius: 3px; -} - -hr { - border: 0; - border-bottom-style: solid; - border-bottom-width: 1px; - border-bottom-color: rgba(0,0,0,.125); -} - -.field { - border-style: solid; - border-width: 1px; - border-color: rgba(0,0,0,.125); - border-radius: 3px; -} - -.field:focus, -.field.is-focused { - outline: none; - border-color: #0074d9; - box-shadow: 0 0 0 2px rgba(0, 116, 217, 0.5); -} - -.field:disabled, -.field.is-disabled { - background-color: rgba(0,0,0,.125); - opacity: .5; -} - -.field:read-only:not(select), -.field.is-read-only { - background-color: rgba(0,0,0,.125); -} - - -.field.is-success { - border-color: #2ecc40; -} - -.field.is-success:focus, -.field.is-success.is-focused { - box-shadow: 0 0 0 2px rgba(46, 204, 64, 0.5); -} - -.field.is-warning { - border-color: #ffdc00; -} - -.field.is-warning:focus, -.field.is-warning.is-focused { - box-shadow: 0 0 0 2px rgba(255, 220, 0, 0.5); -} - -.field:invalid, -.field.is-error { - border-color: #ff4136; -} - -.field:invalid:focus, -.field:invalid.is-focused, -.field.is-error:focus, -.field.is-error.is-focused { - box-shadow: 0 0 0 2px rgba(255, 65, 54, 0.5); -} - -.table-light th, -.table-light td { - border-bottom-width: 1px; - border-bottom-style: solid; - border-bottom-color: rgba(0,0,0,.125); -} - -.table-light tr:last-child td { - border-bottom: 0; -} - -.btn { - font-family: inherit; - font-size: inherit; - font-weight: bold; - text-decoration: none; - cursor: pointer; - display: inline-block; - line-height: 1.125rem; - padding: .5rem 1rem; - margin: 0; - height: auto; - border: 1px solid transparent; - vertical-align: middle; - -webkit-appearance: none; - color: inherit; - background-color: transparent; -} - -.btn:hover { - text-decoration: none; -} - -.btn:focus { - outline: none; - border-color: rgba(0,0,0,.125); - box-shadow: 0 0 0 3px rgba(0,0,0,.25); -} - -::-moz-focus-inner { - border: 0; - padding: 0; -} - -.btn-primary { - color: #fff; - background-color: #0074d9; - border-radius: 3px; -} - -.btn-primary:hover { - box-shadow: inset 0 0 0 20rem rgba(0,0,0,.0625); -} - -.btn-primary:active { - box-shadow: inset 0 0 0 20rem rgba(0,0,0,.125), - inset 0 3px 4px 0 rgba(0,0,0,.25), - 0 0 1px rgba(0,0,0,.125); -} - -.btn-primary:disabled, -.btn-primary.is-disabled { - opacity: .5; -} - -.btn-outline, -.btn-outline:hover { - border-color: currentcolor; -} - -.btn-outline { - border-radius: 3px; -} - -.btn-outline:hover { - box-shadow: inset 0 0 0 20rem rgba(0,0,0,.0625); -} - -.btn-outline:active { - box-shadow: inset 0 0 0 20rem rgba(0,0,0,.125), - inset 0 3px 4px 0 rgba(0,0,0,.25), - 0 0 1px rgba(0,0,0,.125); -} - -.btn-outline:disabled, -.btn-outline.is-disabled { - opacity: .5; -} - -.h1 { font-size: 2rem } -.h2 { font-size: 1.5rem } -.h3 { font-size: 1.25rem } -.h4 { font-size: 1rem } -.h5 { font-size: .875rem } -.h6 { font-size: .75rem } - -.bold { font-weight: bold } -.regular { font-weight: normal } -.italic { font-style: italic } -.caps { text-transform: uppercase; letter-spacing: .2em; } - -.left-align { text-align: left } -.center { text-align: center } -.right-align { text-align: right } -.justify { text-align: justify } - -.nowrap { white-space: nowrap } -.break-word { word-wrap: break-word } - -.truncate { - max-width: 100%; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.list-reset { - list-style: none; - padding-left: 0; -} - -.inline { display: inline } -.block { display: block } -.inline-block { display: inline-block } -.table { display: table } -.table-cell { display: table-cell } - -.overflow-hidden { overflow: hidden } -.overflow-scroll { overflow: scroll } -.overflow-auto { overflow: auto } - -.clearfix:before, -.clearfix:after { - content: " "; - display: table -} -.clearfix:after { clear: both } - -.left { float: left } -.right { float: right } - -.fit { max-width: 100% } - -.border-box { box-sizing: border-box } - -.align-baseline { vertical-align: baseline } -.align-top { vertical-align: top } -.align-middle { vertical-align: middle } -.align-bottom { vertical-align: bottom } - -.m0 { margin: 0 } -.mt0 { margin-top: 0 } -.mr0 { margin-right: 0 } -.mb0 { margin-bottom: 0 } -.ml0 { margin-left: 0 } - -.m1 { margin: .5rem } -.mt1 { margin-top: .5rem } -.mr1 { margin-right: .5rem } -.mb1 { margin-bottom: .5rem } -.ml1 { margin-left: .5rem } - -.m2 { margin: 1rem } -.mt2 { margin-top: 1rem } -.mr2 { margin-right: 1rem } -.mb2 { margin-bottom: 1rem } -.ml2 { margin-left: 1rem } - -.m3 { margin: 2rem } -.mt3 { margin-top: 2rem } -.mr3 { margin-right: 2rem } -.mb3 { margin-bottom: 2rem } -.ml3 { margin-left: 2rem } - -.m4 { margin: 4rem } -.mt4 { margin-top: 4rem } -.mr4 { margin-right: 4rem } -.mb4 { margin-bottom: 4rem } -.ml4 { margin-left: 4rem } - -.mxn1 { margin-left: -.5rem; margin-right: -.5rem; } -.mxn2 { margin-left: -1rem; margin-right: -1rem; } -.mxn3 { margin-left: -2rem; margin-right: -2rem; } -.mxn4 { margin-left: -4rem; margin-right: -4rem; } - -.mx-auto { margin-left: auto; margin-right: auto; } -.p0 { padding: 0 } - -.p1 { padding: .5rem } -.py1 { padding-top: .5rem; padding-bottom: .5rem } -.px1 { padding-left: .5rem; padding-right: .5rem } - -.p2 { padding: 1rem } -.py2 { padding-top: 1rem; padding-bottom: 1rem } -.px2 { padding-left: 1rem; padding-right: 1rem } - -.p3 { padding: 2rem } -.py3 { padding-top: 2rem; padding-bottom: 2rem } -.px3 { padding-left: 2rem; padding-right: 2rem } - -.p4 { padding: 4rem } -.py4 { padding-top: 4rem; padding-bottom: 4rem } -.px4 { padding-left: 4rem; padding-right: 4rem } - -.relative { position: relative } -.absolute { position: absolute } -.fixed { position: fixed } - -.top-0 { top: 0 } -.right-0 { right: 0 } -.bottom-0 { bottom: 0 } -.left-0 { left: 0 } - -.z1 { z-index: 1 } -.z2 { z-index: 2 } -.z3 { z-index: 3 } -.z4 { z-index: 4 } - -.sm-show, .md-show, .lg-show { - display: none !important -} - -@media (min-width: 40em) { - .sm-show { display: block !important } -} - -@media (min-width: 52em) { - .md-show { display: block !important } -} - -@media (min-width: 64em) { - .lg-show { display: block !important } -} - - -@media (min-width: 40em) { - .sm-hide { display: none !important } -} - -@media (min-width: 52em) { - .md-hide { display: none !important } -} - -@media (min-width: 64em) { - .lg-hide { display: none !important } -} - -.display-none { display: none !important } - -.hide { - position: absolute !important; - height: 1px; - width: 1px; - overflow: hidden; - clip: rect(1px, 1px, 1px, 1px); -} - -.container { - max-width: 64em; - margin-left: auto; - margin-right: auto; -} -.col { - float: left; - box-sizing: border-box; -} - -.col-right { - float: right; - box-sizing: border-box; -} - -.col-1 { - width: 8.33333%; -} - -.col-2 { - width: 16.66667%; -} - -.col-3 { - width: 25%; -} - -.col-4 { - width: 33.33333%; -} - -.col-5 { - width: 41.66667%; -} - -.col-6 { - width: 50%; -} - -.col-7 { - width: 58.33333%; -} - -.col-8 { - width: 66.66667%; -} - -.col-9 { - width: 75%; -} - -.col-10 { - width: 83.33333%; -} - -.col-11 { - width: 91.66667%; -} - -.col-12 { - width: 100%; -} -@media (min-width: 40em) { - - .sm-col { - float: left; - box-sizing: border-box; - } - - .sm-col-right { - float: right; - box-sizing: border-box; - } - - .sm-col-1 { - width: 8.33333%; - } - - .sm-col-2 { - width: 16.66667%; - } - - .sm-col-3 { - width: 25%; - } - - .sm-col-4 { - width: 33.33333%; - } - - .sm-col-5 { - width: 41.66667%; - } - - .sm-col-6 { - width: 50%; - } - - .sm-col-7 { - width: 58.33333%; - } - - .sm-col-8 { - width: 66.66667%; - } - - .sm-col-9 { - width: 75%; - } - - .sm-col-10 { - width: 83.33333%; - } - - .sm-col-11 { - width: 91.66667%; - } - - .sm-col-12 { - width: 100%; - } - -} -@media (min-width: 52em) { - - .md-col { - float: left; - box-sizing: border-box; - } - - .md-col-right { - float: right; - box-sizing: border-box; - } - - .md-col-1 { - width: 8.33333%; - } - - .md-col-2 { - width: 16.66667%; - } - - .md-col-3 { - width: 25%; - } - - .md-col-4 { - width: 33.33333%; - } - - .md-col-5 { - width: 41.66667%; - } - - .md-col-6 { - width: 50%; - } - - .md-col-7 { - width: 58.33333%; - } - - .md-col-8 { - width: 66.66667%; - } - - .md-col-9 { - width: 75%; - } - - .md-col-10 { - width: 83.33333%; - } - - .md-col-11 { - width: 91.66667%; - } - - .md-col-12 { - width: 100%; - } - -} -@media (min-width: 64em) { - - .lg-col { - float: left; - box-sizing: border-box; - } - - .lg-col-right { - float: right; - box-sizing: border-box; - } - - .lg-col-1 { - width: 8.33333%; - } - - .lg-col-2 { - width: 16.66667%; - } - - .lg-col-3 { - width: 25%; - } - - .lg-col-4 { - width: 33.33333%; - } - - .lg-col-5 { - width: 41.66667%; - } - - .lg-col-6 { - width: 50%; - } - - .lg-col-7 { - width: 58.33333%; - } - - .lg-col-8 { - width: 66.66667%; - } - - .lg-col-9 { - width: 75%; - } - - .lg-col-10 { - width: 83.33333%; - } - - .lg-col-11 { - width: 91.66667%; - } - - .lg-col-12 { - width: 100%; - } - -} - -.flex { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex } - -.flex-column { -webkit-box-orient: vertical; -webkit-box-direction: normal; -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column } -.flex-wrap { -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap } - -.flex-center { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center } -.flex-baseline { -webkit-box-align: baseline; -webkit-align-items: baseline; -ms-flex-align: baseline; align-items: baseline } -.flex-stretch { -webkit-box-align: stretch; -webkit-align-items: stretch; -ms-flex-align: stretch; align-items: stretch } -.flex-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start } -.flex-end { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end } - -.flex-justify { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between } - -.flex-auto { - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - min-width: 0; - min-height: 0; -} -.flex-grow { -webkit-box-flex: 1; -webkit-flex: 1 0 auto; -ms-flex: 1 0 auto; flex: 1 0 auto } -.flex-none { -webkit-box-flex: 0; -webkit-flex: none; -ms-flex: none; flex: none } - -.flex-first { -webkit-box-ordinal-group: 0; -webkit-order: -1; -ms-flex-order: -1; order: -1 } -.flex-last { -webkit-box-ordinal-group: 100000; -webkit-order: 99999; -ms-flex-order: 99999; order: 99999 } -@media (min-width: 40em) { - .sm-flex { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex } -} -@media (min-width: 52em) { - .md-flex { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex } -} -@media (min-width: 64em) { - .lg-flex { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex } -} - -.border { - border-style: solid; - border-width: 1px; - border-color: rgba(0,0,0,.125); -} - -.border-top { - border-top-style: solid; - border-top-width: 1px; - border-top-color: rgba(0,0,0,.125); -} - -.border-right { - border-right-style: solid; - border-right-width: 1px; - border-right-color: rgba(0,0,0,.125); -} - -.border-bottom { - border-bottom-style: solid; - border-bottom-width: 1px; - border-bottom-color: rgba(0,0,0,.125); -} - -.border-left { - border-left-style: solid; - border-left-width: 1px; - border-left-color: rgba(0,0,0,.125); -} - -.border-none { border: 0 } - -.rounded { border-radius: 3px } -.circle { border-radius: 50% } - -.rounded-top { border-radius: 3px 3px 0 0 } -.rounded-right { border-radius: 0 3px 3px 0 } -.rounded-bottom { border-radius: 0 0 3px 3px } -.rounded-left { border-radius: 3px 0 0 3px } - -.not-rounded { border-radius: 0 } - -.black { color: #111 } -.gray { color: #aaa } -.silver { color: #ddd } -.white { color: #fff } - -.aqua { color: #7fdbff } -.blue { color: #0074d9 } -.navy { color: #001f3f } -.teal { color: #39cccc } -.green { color: #2ecc40 } -.olive { color: #3d9970 } -.lime { color: #01ff70 } - -.yellow { color: #ffdc00 } -.orange { color: #ff851b } -.red { color: #ff4136 } -.fuchsia { color: #f012be } -.purple { color: #b10dc9 } -.maroon { color: #85144b } - -.color-inherit { color: inherit } -.muted { opacity: .5 } - -.bg-black { background-color: #111 } -.bg-gray { background-color: #aaa } -.bg-silver { background-color: #ddd } -.bg-white { background-color: #fff } - -.bg-aqua { background-color: #7fdbff } -.bg-blue { background-color: #0074d9 } -.bg-navy { background-color: #001f3f } -.bg-teal { background-color: #39cccc } -.bg-green { background-color: #2ecc40 } -.bg-olive { background-color: #3d9970 } -.bg-lime { background-color: #01ff70 } - -.bg-yellow { background-color: #ffdc00 } -.bg-orange { background-color: #ff851b } -.bg-red { background-color: #ff4136 } -.bg-fuchsia { background-color: #f012be } -.bg-purple { background-color: #b10dc9 } -.bg-maroon { background-color: #85144b } - -.bg-darken-1 { background-color: rgba(0,0,0,.0625) } -.bg-darken-2 { background-color: rgba(0,0,0,.125) } -.bg-darken-3 { background-color: rgba(0,0,0,.25) } -.bg-darken-4 { background-color: rgba(0,0,0,.5) } - -.bg-lighten-1 { background-color: rgba(255,255,255,.0625) } -.bg-lighten-2 { background-color: rgba(255,255,255,.125) } -.bg-lighten-3 { background-color: rgba(255,255,255,.25) } -.bg-lighten-4 { background-color: rgba(255,255,255,.5) } - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/LICENSE.txt deleted file mode 100755 index 11773304..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/LICENSE.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. - -This Font Software is licensed under the SIL Open Font License, Version 1.1. - -This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/README.md deleted file mode 100755 index 20be1f30..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Source Code Pro - -Source Code Pro is a set of OpenType fonts that have been designed to work well -in user interface (UI) environments. In addition to a functional OpenType font, this open -source project provides all of the source files that were used to build this OpenType font -by using the AFDKO makeotf tool. - -## Font installation instructions - -* [Mac OS X](http://support.apple.com/kb/HT2509) -* [Windows](http://windows.microsoft.com/en-us/windows-vista/install-or-uninstall-fonts) -* [Linux/Unix-based systems](https://github.com/adobe-fonts/source-code-pro/issues/17#issuecomment-8967116) - -## Getting Involved - -Send suggestions for changes to the Source Code OpenType font project maintainer, [Paul D. Hunt](mailto:opensourcefonts@adobe.com?subject=[GitHub] Source Code Pro), for consideration. - -## Further information - -For information about the design and background of Source Code, please refer to the [official font readme file](http://www.adobe.com/products/type/font-information/source-code-pro-readme.html). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/WOFF/OTF/SourceCodePro-Regular.otf.woff b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/WOFF/OTF/SourceCodePro-Regular.otf.woff deleted file mode 100755 index 395436eb..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/WOFF/OTF/SourceCodePro-Regular.otf.woff and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/source-code-pro.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/source-code-pro.css deleted file mode 100755 index 842b232f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-code-pro/source-code-pro.css +++ /dev/null @@ -1,15 +0,0 @@ -@font-face{ - font-family: 'Source Code Pro'; - font-weight: 400; - font-style: normal; - font-stretch: normal; - src: url('WOFF/OTF/SourceCodePro-Regular.otf.woff') format('woff'); -} - -@font-face{ - font-family: 'Source Code Pro'; - font-weight: 500; - font-style: normal; - font-stretch: normal; - src: url('WOFF/OTF/SourceCodePro-Medium.otf.woff') format('woff'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/LICENSE.txt deleted file mode 100755 index df187637..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/LICENSE.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. - -This Font Software is licensed under the SIL Open Font License, Version 1.1. - -This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/README.md deleted file mode 100755 index a3e1b9dd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Source Sans Pro - -Source Sans Pro is a set of OpenType fonts that have been designed to work well -in user interface (UI) environments. In addition to a functional OpenType font, this open -source project provides all of the source files that were used to build this OpenType font -by using the AFDKO makeotf tool. - -## Font installation instructions - -* [Mac OS X](http://support.apple.com/kb/HT2509) -* [Windows](http://windows.microsoft.com/en-us/windows-vista/install-or-uninstall-fonts) -* [Linux/Unix-based systems](https://github.com/adobe-fonts/source-code-pro/issues/17#issuecomment-8967116) - -## Getting Involved - -Send suggestions for changes to the Source Sans OpenType font project maintainer, [Paul D. Hunt](mailto:opensourcefonts@adobe.com?subject=[GitHub] Source Sans Pro), for consideration. - -## Further information - -For information about the design and background of Source Sans, please refer to the [official font readme file](http://www.adobe.com/products/type/font-information/source-sans-pro-readme.html). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Bold.otf.woff b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Bold.otf.woff deleted file mode 100755 index 6700893c..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Bold.otf.woff and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Light.otf.woff b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Light.otf.woff deleted file mode 100755 index 10490ec5..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Light.otf.woff and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Regular.otf.woff b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Regular.otf.woff deleted file mode 100755 index 04739e7f..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Regular.otf.woff and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Semibold.otf.woff b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Semibold.otf.woff deleted file mode 100755 index 17d744d1..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/WOFF/OTF/SourceSansPro-Semibold.otf.woff and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/source-sans-pro.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/source-sans-pro.css deleted file mode 100755 index 6d3862c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/fonts/source-sans-pro/source-sans-pro.css +++ /dev/null @@ -1,31 +0,0 @@ -@font-face{ - font-family: 'Source Sans Pro'; - font-weight: 300; - font-style: normal; - font-stretch: normal; - src: url('WOFF/OTF/SourceSansPro-Light.otf.woff') format('woff'); -} - -@font-face{ - font-family: 'Source Sans Pro'; - font-weight: 400; - font-style: normal; - font-stretch: normal; - src: url('WOFF/OTF/SourceSansPro-Regular.otf.woff') format('woff'); -} - -@font-face{ - font-family: 'Source Sans Pro'; - font-weight: 600; - font-style: normal; - font-stretch: normal; - src: url('WOFF/OTF/SourceSansPro-Semibold.otf.woff') format('woff'); -} - -@font-face{ - font-family: 'Source Sans Pro'; - font-weight: 700; - font-style: normal; - font-stretch: normal; - src: url('WOFF/OTF/SourceSansPro-Bold.otf.woff') format('woff'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/github.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/github.css deleted file mode 100644 index 8852abb4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/github.css +++ /dev/null @@ -1,123 +0,0 @@ -/* - -github.com style (c) Vasily Polovnyov - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #333; - background: #f8f8f8; - -webkit-text-size-adjust: none; -} - -.hljs-comment, -.diff .hljs-header, -.hljs-javadoc { - color: #998; - font-style: italic; -} - -.hljs-keyword, -.css .rule .hljs-keyword, -.hljs-winutils, -.nginx .hljs-title, -.hljs-subst, -.hljs-request, -.hljs-status { - color: #1184CE; -} - -.hljs-number, -.hljs-hexcolor, -.ruby .hljs-constant { - color: #ed225d; -} - -.hljs-string, -.hljs-tag .hljs-value, -.hljs-phpdoc, -.hljs-dartdoc, -.tex .hljs-formula { - color: #ed225d; -} - -.hljs-title, -.hljs-id, -.scss .hljs-preprocessor { - color: #900; - font-weight: bold; -} - -.hljs-list .hljs-keyword, -.hljs-subst { - font-weight: normal; -} - -.hljs-class .hljs-title, -.hljs-type, -.vhdl .hljs-literal, -.tex .hljs-command { - color: #458; - font-weight: bold; -} - -.hljs-tag, -.hljs-tag .hljs-title, -.hljs-rules .hljs-property, -.django .hljs-tag .hljs-keyword { - color: #000080; - font-weight: normal; -} - -.hljs-attribute, -.hljs-variable, -.lisp .hljs-body { - color: #008080; -} - -.hljs-regexp { - color: #009926; -} - -.hljs-symbol, -.ruby .hljs-symbol .hljs-string, -.lisp .hljs-keyword, -.clojure .hljs-keyword, -.scheme .hljs-keyword, -.tex .hljs-special, -.hljs-prompt { - color: #990073; -} - -.hljs-built_in { - color: #0086b3; -} - -.hljs-preprocessor, -.hljs-pragma, -.hljs-pi, -.hljs-doctype, -.hljs-shebang, -.hljs-cdata { - color: #999; - font-weight: bold; -} - -.hljs-deletion { - background: #fdd; -} - -.hljs-addition { - background: #dfd; -} - -.diff .hljs-change { - background: #0086b3; -} - -.hljs-chunk { - color: #aaa; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/site.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/site.js deleted file mode 100644 index 2cb0fb34..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/site.js +++ /dev/null @@ -1,40 +0,0 @@ -/* global anchors */ - -// add anchor links to headers -anchors.options.placement = 'left'; -anchors.add().remove('.no-anchor'); - -// Filter UI -var tocElements = document.getElementById('toc').getElementsByTagName('a'); -document.getElementById('filter-input').addEventListener('keyup', function(e) { - - var i, element; - - // enter key - if (e.keyCode === 13) { - // go to the first displayed item in the toc - for (i = 0; i < tocElements.length; i++) { - element = tocElements[i]; - if (!element.classList.contains('hide')) { - location.replace(element.href); - return e.preventDefault(); - } - } - } - - var match = function() { return true; }, - value = this.value.toLowerCase(); - - if (!value.match(/^\s*$/)) { - match = function(text) { return text.toLowerCase().indexOf(value) !== -1; }; - } - - for (i = 0; i < tocElements.length; i++) { - element = tocElements[i]; - if (match(element.innerHTML)) { - element.classList.remove('hide'); - } else { - element.classList.add('hide'); - } - } -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/style.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/style.css deleted file mode 100644 index 62b296e4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/assets/style.css +++ /dev/null @@ -1,98 +0,0 @@ -@import url(fonts/source-sans-pro/source-sans-pro.css); -@import url(fonts/source-code-pro/source-code-pro.css); - -.documentation a { - color: #1184CE; -} - -.documentation .suppress-p-margin p { - margin:0; -} - -.force-inline, .force-inline p { - display: inline; - color: #222; -} - -.container-small { - max-width: 58rem; - margin-left: auto; - margin-right: auto; -} - -.max-height-100 { - max-height: 100%; -} - -.fade { - opacity:0.50; -} - -.button-indent { - padding: .25rem 1.5rem; - font-size: 90%; -} - -.section-indent { - border-left: 2px solid #eee; -} - -.bg-cloudy { - background: #fafafa; -} - -.force-inline * { - display:inline; -} - -section:target h3 { - font-weight:700; -} - -.documentation, -.documentation h1, -.documentation h2, -.documentation h3, -.documentation h4, -.documentation h5, -.documentation h6 { - font-family: 'Source Sans Pro', Helvetica, sans-serif; -} - -.documentation pre, -.documentation code, -.documentation samp { - font-family: 'Source Code Pro', monospace; - font-size: 90%; -} - -.documentation td, -.documentation th { - padding: .25rem .25rem; -} - -h1:hover .anchorjs-link, -h2:hover .anchorjs-link, -h3:hover .anchorjs-link, -h4:hover .anchorjs-link { - opacity: 1; -} - -.collapsible .collapser { - display:none; -} - -.collapsible:target .collapser { - display: block; -} - -.fix-3 { - width: 25%; - max-width: 244px; -} - -@media (min-width: 52em) { - .fix-margin-3 { - margin-left: 25%; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/index.html deleted file mode 100644 index 9b3dcb0b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/docs/index.html +++ /dev/null @@ -1,838 +0,0 @@ - - - - - | Documentation - - - - - - -
      -
      - -
      -
      -
      -

      - getObjectType(value) -

      -

      source/index.js

      - - - - - -

      Get the object type string

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - string - - -
      - -
      -
      -
      -

      - getType(value, [_typeMap]) -

      -

      source/index.js

      - - - - - -

      Get the type of the value in lowercase

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      • Object -= - _typeMap - : -
        -

        a custom type map (type => method) in case you have new types you wish to use

        - -
        -
      • -
      -

      Returns

      - ? -string - - -
      - -
      -
      -
      -

      - isArguments(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is an arguments object

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isArray(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is an array

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isBoolean(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a valule is a boolean

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isClass(value) -

      -

      source/index.js

      - - - - - -

      Is Class

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isConventionalClass(value) -

      -

      source/index.js

      - - - - - -

      Is Conventional Class -Looks for function with capital first letter MyClass -First letter is the 9th character -If changed, isClass must also be updated

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isDate(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is a date

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isEmpty(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is empty

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isEmptyObject(value) -

      -

      source/index.js

      - - - - - -

      Is empty object

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isError(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is an error

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isFunction(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is a function

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isMap(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is a Map

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isNativeClass(value) -

      -

      source/index.js

      - - - - - -

      Is ES6+ class

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isNull(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is null

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isNumber(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a valule is a number

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isObject(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is an object

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isPlainObject(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is an object and only an object

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isRegExp(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is an regex

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isString(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is a string

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isUndefined(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is undefined

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - isWeakMap(value) -

      -

      source/index.js

      - - - - - -

      Checks to see if a value is a WeakMap

      - -

      Parameters

      -
        -
      • any - value - : -
        - -
        -
      • -
      -

      Returns

      - boolean - - -
      - -
      -
      -
      -

      - typeMap -

      -

      source/index.js

      - - - - - -

      The type mapping (type => method) to use for getType. Frozen.

      - -
      -
      -
      -
      -
      -
      - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/es2015/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/es2015/index.js deleted file mode 100755 index 0fa4ea35..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/es2015/index.js +++ /dev/null @@ -1,300 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - -exports.getObjectType = getObjectType; -exports.isObject = isObject; -exports.isPlainObject = isPlainObject; -exports.isEmpty = isEmpty; -exports.isEmptyObject = isEmptyObject; -exports.isNativeClass = isNativeClass; -exports.isConventionalClass = isConventionalClass; -exports.isClass = isClass; -exports.isError = isError; -exports.isDate = isDate; -exports.isArguments = isArguments; -exports.isFunction = isFunction; -exports.isRegExp = isRegExp; -exports.isArray = isArray; -exports.isNumber = isNumber; -exports.isString = isString; -exports.isBoolean = isBoolean; -exports.isNull = isNull; -exports.isUndefined = isUndefined; -exports.isMap = isMap; -exports.isWeakMap = isWeakMap; -exports.getType = getType; -/* @flow */ - -// Character positions -var INDEX_OF_FUNCTION_NAME = 9; // "function X", X is at index 9 -var FIRST_UPPERCASE_INDEX_IN_ASCII = 65; // A is at index 65 in ASCII -var LAST_UPPERCASE_INDEX_IN_ASCII = 90; // Z is at index 90 in ASCII - -// ----------------------------------- -// Values - -/** - * Get the object type string - * @param {any} value - * @returns {string} - */ -function getObjectType(value /* :mixed */) /* :string */{ - return Object.prototype.toString.call(value); -} - -/** - * Checks to see if a value is an object - * @param {any} value - * @returns {boolean} - */ -function isObject(value /* :any */) /* :boolean */{ - // null and undefined are objects, hence the truthy check - return value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object'; -} - -/** - * Checks to see if a value is an object and only an object - * @param {any} value - * @returns {boolean} - */ -function isPlainObject(value /* :any */) /* :boolean */{ - /* eslint no-proto:0 */ - return isObject(value) && value.__proto__ === Object.prototype; -} - -/** - * Checks to see if a value is empty - * @param {any} value - * @returns {boolean} - */ -function isEmpty(value /* :mixed */) /* :boolean */{ - return value == null; -} - -/** - * Is empty object - * @param {any} value - * @returns {boolean} - */ -function isEmptyObject(value /* :Object */) /* :boolean */{ - // We could use Object.keys, but this is more effecient - for (var key in value) { - if (value.hasOwnProperty(key)) { - return false; - } - } - return true; -} - -/** - * Is ES6+ class - * @param {any} value - * @returns {boolean} - */ -function isNativeClass(value /* :mixed */) /* :boolean */{ - // NOTE TO DEVELOPER: If any of this changes, isClass must also be updated - return typeof value === 'function' && value.toString().indexOf('class') === 0; -} - -/** - * Is Conventional Class - * Looks for function with capital first letter MyClass - * First letter is the 9th character - * If changed, isClass must also be updated - * @param {any} value - * @returns {boolean} - */ -function isConventionalClass(value /* :any */) /* :boolean */{ - if (typeof value !== 'function') return false; - var c = value.toString().charCodeAt(INDEX_OF_FUNCTION_NAME); - return c >= FIRST_UPPERCASE_INDEX_IN_ASCII && c <= LAST_UPPERCASE_INDEX_IN_ASCII; -} - -// There use to be code here that checked for CoffeeScript's "function _Class" at index 0 (which was sound) -// But it would also check for Babel's __classCallCheck anywhere in the function, which wasn't sound -// as somewhere in the function, another class could be defined, which would provide a false positive -// So instead, proxied classes are ignored, as we can't guarantee their accuracy, would also be an ever growing set - -// ----------------------------------- -// Types - -/** - * Is Class - * @param {any} value - * @returns {boolean} - */ -function isClass(value /* :any */) /* :boolean */{ - // NOTE TO DEVELOPER: If any of this changes, you may also need to update isNativeClass - if (typeof value !== 'function') return false; - var s = value.toString(); - if (s.indexOf('class') === 0) return true; - var c = s.charCodeAt(INDEX_OF_FUNCTION_NAME); - return c >= FIRST_UPPERCASE_INDEX_IN_ASCII && c <= LAST_UPPERCASE_INDEX_IN_ASCII; -} - -/** - * Checks to see if a value is an error - * @param {any} value - * @returns {boolean} - */ -function isError(value /* :mixed */) /* :boolean */{ - return value instanceof Error; -} - -/** - * Checks to see if a value is a date - * @param {any} value - * @returns {boolean} - */ -function isDate(value /* :mixed */) /* :boolean */{ - return getObjectType(value) === '[object Date]'; -} - -/** - * Checks to see if a value is an arguments object - * @param {any} value - * @returns {boolean} - */ -function isArguments(value /* :mixed */) /* :boolean */{ - return getObjectType(value) === '[object Arguments]'; -} - -/** - * Checks to see if a value is a function - * @param {any} value - * @returns {boolean} - */ -function isFunction(value /* :mixed */) /* :boolean */{ - return getObjectType(value) === '[object Function]'; -} - -/** - * Checks to see if a value is an regex - * @param {any} value - * @returns {boolean} - */ -function isRegExp(value /* :mixed */) /* :boolean */{ - return getObjectType(value) === '[object RegExp]'; -} - -/** - * Checks to see if a value is an array - * @param {any} value - * @returns {boolean} - */ -function isArray(value /* :mixed */) /* :boolean */{ - return Array.isArray && Array.isArray(value) || getObjectType(value) === '[object Array]'; -} - -/** - * Checks to see if a valule is a number - * @param {any} value - * @returns {boolean} - */ -function isNumber(value /* :mixed */) /* :boolean */{ - return typeof value === 'number' || getObjectType(value) === '[object Number]'; -} - -/** - * Checks to see if a value is a string - * @param {any} value - * @returns {boolean} - */ -function isString(value /* :mixed */) /* :boolean */{ - return typeof value === 'string' || getObjectType(value) === '[object String]'; -} - -/** - * Checks to see if a valule is a boolean - * @param {any} value - * @returns {boolean} - */ -function isBoolean(value /* :mixed */) /* :boolean */{ - return value === true || value === false || getObjectType(value) === '[object Boolean]'; -} - -/** - * Checks to see if a value is null - * @param {any} value - * @returns {boolean} - */ -function isNull(value /* :mixed */) /* :boolean */{ - return value === null; -} - -/** - * Checks to see if a value is undefined - * @param {any} value - * @returns {boolean} - */ -function isUndefined(value /* :mixed */) /* :boolean */{ - return typeof value === 'undefined'; -} - -/** - * Checks to see if a value is a Map - * @param {any} value - * @returns {boolean} - */ -function isMap(value /* :mixed */) /* :boolean */{ - return getObjectType(value) === '[object Map]'; -} - -/** - * Checks to see if a value is a WeakMap - * @param {any} value - * @returns {boolean} - */ -function isWeakMap(value /* :mixed */) /* :boolean */{ - return getObjectType(value) === '[object WeakMap]'; -} - -// ----------------------------------- -// General - -/** - * The type mapping (type => method) to use for getType. Frozen. - */ -var typeMap = exports.typeMap = Object.freeze({ - array: isArray, - boolean: isBoolean, - date: isDate, - error: isError, - class: isClass, - function: isFunction, - null: isNull, - number: isNumber, - regexp: isRegExp, - string: isString, - 'undefined': isUndefined, - map: isMap, - weakmap: isWeakMap, - object: isObject -}); - -/** - * Get the type of the value in lowercase - * @param {any} value - * @param {Object} [_typeMap] a custom type map (type => method) in case you have new types you wish to use - * @returns {?string} - */ -function getType(value /* :mixed */) /* :?string */{ - var _typeMap /* :Object */ = arguments.length <= 1 || arguments[1] === undefined ? typeMap : arguments[1]; - - // Cycle through our type map - for (var key in _typeMap) { - if (typeMap.hasOwnProperty(key)) { - if (typeMap[key](value)) { - return key; - } - } - } - - // No type was successful - return null; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/index.js deleted file mode 100644 index 3bdc0efd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// 2016 March 8 -// https://github.com/bevry/editions -module.exports = require('editions').requirePackage(__dirname, require) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/package.json deleted file mode 100644 index 5818b83f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/package.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "title": "TypeChecker", - "name": "typechecker", - "version": "4.3.0", - "description": "Utilities to get and check variable types (isString, isPlainObject, isRegExp, etc)", - "homepage": "https://github.com/bevry/typechecker", - "license": "MIT", - "badges": { - "list": [ - "travisci", - "npmversion", - "npmdownloads", - "daviddm", - "daviddmdev", - "---", - "slackin", - "patreon", - "gratipay", - "flattr", - "paypal", - "bitcoin", - "wishlist" - ], - "config": { - "patreonUsername": "bevry", - "gratipayUsername": "bevry", - "flattrUsername": "balupton", - "paypalURL": "https://bevry.me/paypal", - "bitcoinURL": "https://bevry.me/bitcoin", - "wishlistURL": "https://bevry.me/wishlist", - "slackinURL": "https://slack.bevry.me" - } - }, - "keywords": [ - "types", - "type", - "check", - "getType", - "isPlainObject", - "isEmpty", - "isEmptyObject", - "isNativeClass", - "isConventionalClass", - "isClass", - "isObject", - "isError", - "isDate", - "isArguments", - "isFunction", - "isRegExp", - "isArray", - "isNumber", - "isString", - "isBoolean", - "isNull", - "isUndefined", - "isMap", - "isWeakMap" - ], - "author": { - "name": "2013+ Bevry Pty Ltd", - "email": "us@bevry.me", - "url": "http://bevry.me" - }, - "maintainers": [ - { - "name": "balupton", - "email": "b@lupton.cc" - } - ], - "contributors": [ - { - "name": "Benjamin Lupton", - "email": "b@lupton.cc", - "url": "http://balupton.com" - }, - { - "name": "Joe Gesualdo", - "email": "joegesualdo@gmail.com", - "url": "https://github.com/joegesualdo" - }, - { - "name": "Sean Fridman", - "email": "mail@seanfridman.com", - "url": "http://seanfridman.com" - }, - { - "name": "Benjamin Lupton", - "url": "https://balupton.com" - } - ], - "bugs": { - "url": "https://github.com/bevry/typechecker/issues" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/bevry/typechecker.git" - }, - "engines": { - "node": ">=0.10" - }, - "editions": [ - { - "description": "Source + ESNext + Import + Flow Type Comments", - "directory": "source", - "entry": "source/index.js", - "syntaxes": [ - "javascript", - "esnext", - "import", - "defaults", - "const", - "let", - "flow type comments" - ] - }, - { - "description": "Babel Compiled + ES2015 + Require", - "directory": "es2015", - "entry": "es2015/index.js", - "syntaxes": [ - "javascript", - "es2015", - "require" - ] - } - ], - "main": "index.js", - "jsnext:main": "source/index.js", - "browser": "es2015/index.js", - "scripts": { - "setup": "npm install", - "clean": "rm -Rf ./docs ./es2015", - "compile": "npm run compile:es2015", - "compile:es2015": "babel ./source --out-dir ./es2015 --presets es2015", - "meta": "npm run meta:docs && npm run meta:projectz", - "meta:docs": "documentation build -f html -g source/**.js -o docs", - "meta:projectz": "projectz compile", - "prepare": "npm run compile && npm run test && npm run meta", - "release": "npm run prepare && npm run release:tag && npm run release:push", - "release:tag": "git tag v$npm_package_version -a", - "release:push": "git push origin master && git push origin --tags", - "pretest": "npm run test:eslint && npm run test:flow", - "test:eslint": "eslint ./source", - "test:flow": "flow check", - "test": "node --harmony -e \"require('editions').requirePackage(process.cwd(), require, 'test.js')\"" - }, - "dependencies": { - "editions": "^1.1.0" - }, - "devDependencies": { - "assert-helpers": "^4.1.0", - "babel-cli": "^6.6.5", - "babel-preset-es2015": "^6.6.0", - "documentation": "^4.0.0-beta", - "eslint": "^2.3.0", - "eslint-plugin-babel": "^3.1.0", - "flow-bin": "^0.22.1", - "joe": "^1.6.0", - "joe-reporter-console": "^1.2.1", - "projectz": "^1.0.9" - }, - "gitHead": "f703aa82fcce24862c6f78058550e1b234edff54", - "_id": "typechecker@4.3.0", - "_shasum": "6f6d6815753e88d6812aa80de4a3fd18948e6e62", - "_from": "typechecker@>=4.3.0 <5.0.0", - "_npmVersion": "3.8.1", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "balupton", - "email": "b@lupton.cc" - }, - "dist": { - "shasum": "6f6d6815753e88d6812aa80de4a3fd18948e6e62", - "tarball": "https://registry.npmjs.org/typechecker/-/typechecker-4.3.0.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/typechecker-4.3.0.tgz_1458532790224_0.4599764668382704" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/source/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/source/index.js deleted file mode 100755 index a9a46658..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/node_modules/typechecker/source/index.js +++ /dev/null @@ -1,271 +0,0 @@ -/* @flow */ - -// Character positions -const INDEX_OF_FUNCTION_NAME = 9 // "function X", X is at index 9 -const FIRST_UPPERCASE_INDEX_IN_ASCII = 65 // A is at index 65 in ASCII -const LAST_UPPERCASE_INDEX_IN_ASCII = 90 // Z is at index 90 in ASCII - - -// ----------------------------------- -// Values - -/** - * Get the object type string - * @param {any} value - * @returns {string} - */ -export function getObjectType (value /* :mixed */) /* :string */ { - return Object.prototype.toString.call(value) -} - -/** - * Checks to see if a value is an object - * @param {any} value - * @returns {boolean} - */ -export function isObject (value /* :any */ ) /* :boolean */ { - // null and undefined are objects, hence the truthy check - return value && typeof value === 'object' -} - -/** - * Checks to see if a value is an object and only an object - * @param {any} value - * @returns {boolean} - */ -export function isPlainObject (value /* :any */ ) /* :boolean */ { - /* eslint no-proto:0 */ - return isObject(value) && value.__proto__ === Object.prototype -} - -/** - * Checks to see if a value is empty - * @param {any} value - * @returns {boolean} - */ -export function isEmpty (value /* :mixed */ ) /* :boolean */ { - return value == null -} - -/** - * Is empty object - * @param {any} value - * @returns {boolean} - */ -export function isEmptyObject (value /* :Object */ ) /* :boolean */ { - // We could use Object.keys, but this is more effecient - for ( const key in value ) { - if ( value.hasOwnProperty(key) ) { - return false - } - } - return true -} - -/** - * Is ES6+ class - * @param {any} value - * @returns {boolean} - */ -export function isNativeClass (value /* :mixed */ ) /* :boolean */ { - // NOTE TO DEVELOPER: If any of this changes, isClass must also be updated - return typeof value === 'function' && value.toString().indexOf('class') === 0 -} - -/** - * Is Conventional Class - * Looks for function with capital first letter MyClass - * First letter is the 9th character - * If changed, isClass must also be updated - * @param {any} value - * @returns {boolean} - */ -export function isConventionalClass (value /* :any */ ) /* :boolean */ { - if ( typeof value !== 'function' ) return false - const c = value.toString().charCodeAt(INDEX_OF_FUNCTION_NAME) - return c >= FIRST_UPPERCASE_INDEX_IN_ASCII && c <= LAST_UPPERCASE_INDEX_IN_ASCII -} - -// There use to be code here that checked for CoffeeScript's "function _Class" at index 0 (which was sound) -// But it would also check for Babel's __classCallCheck anywhere in the function, which wasn't sound -// as somewhere in the function, another class could be defined, which would provide a false positive -// So instead, proxied classes are ignored, as we can't guarantee their accuracy, would also be an ever growing set - - -// ----------------------------------- -// Types - -/** - * Is Class - * @param {any} value - * @returns {boolean} - */ -export function isClass (value /* :any */ ) /* :boolean */ { - // NOTE TO DEVELOPER: If any of this changes, you may also need to update isNativeClass - if ( typeof value !== 'function' ) return false - const s = value.toString() - if ( s.indexOf('class') === 0 ) return true - const c = s.charCodeAt(INDEX_OF_FUNCTION_NAME) - return c >= FIRST_UPPERCASE_INDEX_IN_ASCII && c <= LAST_UPPERCASE_INDEX_IN_ASCII -} - -/** - * Checks to see if a value is an error - * @param {any} value - * @returns {boolean} - */ -export function isError (value /* :mixed */ ) /* :boolean */ { - return value instanceof Error -} - -/** - * Checks to see if a value is a date - * @param {any} value - * @returns {boolean} - */ -export function isDate (value /* :mixed */ ) /* :boolean */ { - return getObjectType(value) === '[object Date]' -} - -/** - * Checks to see if a value is an arguments object - * @param {any} value - * @returns {boolean} - */ -export function isArguments (value /* :mixed */ ) /* :boolean */ { - return getObjectType(value) === '[object Arguments]' -} - -/** - * Checks to see if a value is a function - * @param {any} value - * @returns {boolean} - */ -export function isFunction (value /* :mixed */ ) /* :boolean */ { - return getObjectType(value) === '[object Function]' -} - -/** - * Checks to see if a value is an regex - * @param {any} value - * @returns {boolean} - */ -export function isRegExp (value /* :mixed */ ) /* :boolean */ { - return getObjectType(value) === '[object RegExp]' -} - -/** - * Checks to see if a value is an array - * @param {any} value - * @returns {boolean} - */ -export function isArray (value /* :mixed */ ) /* :boolean */ { - return Array.isArray && Array.isArray(value) || getObjectType(value) === '[object Array]' -} - -/** - * Checks to see if a valule is a number - * @param {any} value - * @returns {boolean} - */ -export function isNumber (value /* :mixed */ ) /* :boolean */ { - return typeof value === 'number' || getObjectType(value) === '[object Number]' -} - -/** - * Checks to see if a value is a string - * @param {any} value - * @returns {boolean} - */ -export function isString (value /* :mixed */ ) /* :boolean */ { - return typeof value === 'string' || getObjectType(value) === '[object String]' -} - -/** - * Checks to see if a valule is a boolean - * @param {any} value - * @returns {boolean} - */ -export function isBoolean (value /* :mixed */ ) /* :boolean */ { - return value === true || value === false || getObjectType(value) === '[object Boolean]' -} - -/** - * Checks to see if a value is null - * @param {any} value - * @returns {boolean} - */ -export function isNull (value /* :mixed */ ) /* :boolean */ { - return value === null -} - -/** - * Checks to see if a value is undefined - * @param {any} value - * @returns {boolean} - */ -export function isUndefined (value /* :mixed */ ) /* :boolean */ { - return typeof value === 'undefined' -} - -/** - * Checks to see if a value is a Map - * @param {any} value - * @returns {boolean} - */ -export function isMap (value /* :mixed */ ) /* :boolean */ { - return getObjectType(value) === '[object Map]' -} - -/** - * Checks to see if a value is a WeakMap - * @param {any} value - * @returns {boolean} - */ -export function isWeakMap (value /* :mixed */ ) /* :boolean */ { - return getObjectType(value) === '[object WeakMap]' -} - - -// ----------------------------------- -// General - -/** - * The type mapping (type => method) to use for getType. Frozen. - */ -export const typeMap = Object.freeze({ - array: isArray, - boolean: isBoolean, - date: isDate, - error: isError, - class: isClass, - function: isFunction, - null: isNull, - number: isNumber, - regexp: isRegExp, - string: isString, - 'undefined': isUndefined, - map: isMap, - weakmap: isWeakMap, - object: isObject -}) - -/** - * Get the type of the value in lowercase - * @param {any} value - * @param {Object} [_typeMap] a custom type map (type => method) in case you have new types you wish to use - * @returns {?string} - */ -export function getType (value /* :mixed */, _typeMap /* :Object */ = typeMap) /* :?string */ { - // Cycle through our type map - for ( const key in _typeMap ) { - if ( typeMap.hasOwnProperty(key) ) { - if ( typeMap[key](value) ) { - return key - } - } - } - - // No type was successful - return null -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/package.json deleted file mode 100644 index dcf83454..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/package.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "title": "Extract Options & Callback", - "name": "extract-opts", - "version": "3.3.1", - "description": "Extract the options and callback from a function's arguments easily", - "homepage": "https://github.com/bevry/extract-opts", - "license": "MIT", - "keywords": [ - "opts", - "options", - "cb", - "callback", - "next", - "flow", - "args", - "optional", - "arguments", - "extract" - ], - "badges": { - "list": [ - "travisci", - "npmversion", - "npmdownloads", - "daviddm", - "daviddmdev", - "---", - "slackin", - "patreon", - "gratipay", - "flattr", - "paypal", - "bitcoin", - "wishlist" - ], - "config": { - "patreonUsername": "bevry", - "gratipayUsername": "bevry", - "flattrUsername": "balupton", - "paypalURL": "https://bevry.me/paypal", - "bitcoinURL": "https://bevry.me/bitcoin", - "wishlistURL": "https://bevry.me/wishlist", - "slackinURL": "https://slack.bevry.me" - } - }, - "author": { - "name": "2013+ Bevry Pty Ltd", - "email": "us@bevry.me", - "url": "http://bevry.me" - }, - "maintainers": [ - { - "name": "balupton", - "email": "b@lupton.cc" - } - ], - "contributors": [ - { - "name": "Benjamin Lupton", - "email": "b@lupton.cc", - "url": "https://balupton.com" - }, - { - "name": "Sean Fridman", - "email": "mail@seanfridman.com", - "url": "http://seanfridman.com" - } - ], - "bugs": { - "url": "https://github.com/bevry/extract-opts/issues" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/bevry/extract-opts.git" - }, - "engines": { - "node": ">=0.10" - }, - "editions": [ - { - "description": "Source + ESNext + Require", - "entry": "source/index.js", - "directory": "source", - "syntaxes": [ - "javascript", - "esnext", - "require", - "const", - "destructuring", - "defaults" - ] - }, - { - "description": "Babel Compiled + ES2015 + Require", - "entry": "es2015/index.js", - "directory": "es2015", - "syntaxes": [ - "javascript", - "es2015", - "require" - ] - } - ], - "main": "index.js", - "browser": "es2015/index.js", - "dependencies": { - "eachr": "^3.2.0", - "editions": "^1.1.1", - "typechecker": "^4.3.0" - }, - "devDependencies": { - "assert-helpers": "^4.2.0", - "babel-cli": "^6.9.0", - "babel-preset-es2015": "^6.9.0", - "eachr": "^3.2.0", - "eslint": "^2.10.2", - "eslint-plugin-babel": "^3.2.0", - "joe": "^1.6.0", - "joe-reporter-console": "^1.2.1", - "projectz": "^1.1.5" - }, - "scripts": { - "setup": "npm install", - "clean": "rm -Rf ./docs ./es2015", - "compile": "npm run compile:es2015", - "compile:es2015": "babel ./source --out-dir ./es2015 --presets es2015", - "meta": "npm run meta:projectz", - "meta:projectz": "projectz compile", - "prepare": "npm run compile && npm run test && npm run meta", - "release": "npm run prepare && npm run release:publish && npm run release:tag && npm run release:push", - "release:publish": "npm publish", - "release:tag": "git tag v$npm_package_version -a", - "release:push": "git push origin master && git push origin --tags", - "pretest": "npm run test:eslint", - "test:eslint": "eslint ./source", - "test": "node --harmony -e \"require('editions').requirePackage(process.cwd(), require, 'test.js')\"" - }, - "gitHead": "87e349bbf92a6f95d1ecc8b064a1631def105dc8", - "_id": "extract-opts@3.3.1", - "_shasum": "5abbedc98c0d5202e3278727f9192d7e086c6be1", - "_from": "extract-opts@>=3.2.0 <4.0.0", - "_npmVersion": "3.8.7", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "balupton", - "email": "b@lupton.cc" - }, - "dist": { - "shasum": "5abbedc98c0d5202e3278727f9192d7e086c6be1", - "tarball": "https://registry.npmjs.org/extract-opts/-/extract-opts-3.3.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/extract-opts-3.3.1.tgz_1464344858178_0.15363493445329368" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-3.3.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/source/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/source/index.js deleted file mode 100644 index f40e6215..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/node_modules/extract-opts/source/index.js +++ /dev/null @@ -1,46 +0,0 @@ -// Import -const typeChecker = require('typechecker') -const eachr = require('eachr') - -// Define -module.exports = function (opts, next, config = {}) { - // Empty, set default - if ( config.completionCallbackNames == null ) { - config.completionCallbackNames = ['next'] - } - - // Not array, make array - else if ( typeChecker.isArray(config.completionCallbackNames) === false ) { - config.completionCallbackNames = [config.completionCallbackNames] - } - - // Arguments - if ( typeChecker.isFunction(opts) && next == null ) { - next = opts - opts = {} - } - else if ( !opts ) { - opts = {} - } - - // Completion callback - if ( !next ) { - // Cycle the completionCallbackNames to check if the completion callback name exists in opts - // if it does, then use it as the next and delete it's value - eachr(config.completionCallbackNames, function (completionCallbackName) { - if ( typeof opts[completionCallbackName] !== 'undefined' ) { - next = opts[completionCallbackName] - delete opts[completionCallbackName] - return false // break - // ^ why this only does the first, and not all, using the last, I don't know ... - // can be changed in a future major update - } - }) - } - - // Ensure - if ( !next ) next = null - - // Return - return [opts, next] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/package.json deleted file mode 100644 index 8e1ba044..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/getmac/package.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "name": "getmac", - "version": "1.2.1", - "description": "Get the mac address of the current machine you are on", - "homepage": "https://github.com/bevry/getmac", - "license": "MIT", - "keywords": [ - "mac", - "mac-address", - "ifconfig", - "ipconfig", - "getmac" - ], - "badges": { - "list": [ - "travisci", - "npmversion", - "npmdownloads", - "daviddm", - "daviddmdev", - "---", - "slackin", - "patreon", - "gratipay", - "flattr", - "paypal", - "bitcoin", - "wishlist" - ], - "config": { - "patreonUsername": "bevry", - "gratipayUsername": "bevry", - "flattrUsername": "balupton", - "paypalURL": "https://bevry.me/paypal", - "bitcoinURL": "https://bevry.me/bitcoin", - "wishlistURL": "https://bevry.me/wishlist", - "slackinURL": "https://slack.bevry.me" - } - }, - "author": { - "name": "2013+ Bevry Pty Ltd", - "email": "us@bevry.me", - "url": "http://bevry.me" - }, - "maintainers": [ - { - "name": "balupton", - "email": "b@lupton.cc" - }, - { - "name": "stephenbrown2", - "email": "Stephen.Brown2+npm@gmail.com" - } - ], - "contributors": [ - { - "name": "Benjamin Lupton", - "email": "b@lupton.cc", - "url": "https://balupton.com" - }, - { - "name": "Stephen Brown II", - "email": "Stephen.Brown2@gmail.com", - "url": "https://github.com/StephenBrown2" - } - ], - "bugs": { - "url": "https://github.com/bevry/getmac/issues" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/bevry/getmac.git" - }, - "engines": { - "node": ">=0.12" - }, - "editions": [ - { - "description": "Source + CoffeeScript + Require", - "entry": "src/lib/getmac.coffee", - "directory": "src", - "syntaxes": [ - "coffeescript", - "require" - ] - }, - { - "description": "CoffeeScript Compiled JavaScript + ES5 + Require", - "entry": "es5/lib/getmac.js", - "directory": "es5", - "syntaxes": [ - "javascript", - "es5", - "require" - ] - } - ], - "main": "es5/lib/getmac.js", - "browser": "es5/lib/getmac.js", - "bin": { - "getmac-node": "bin/getmac-node" - }, - "scripts": { - "setup": "npm install", - "clean": "rm -Rf ./docs ./es5", - "compile": "npm run compile:coffeescript", - "compile:coffeescript": "coffee -bco ./es5 ./src", - "meta": "npm run meta:projectz", - "meta:projectz": "projectz compile", - "prepare": "npm run compile && npm run test && npm run meta", - "release": "npm run prepare && npm run release:publish && npm run release:tag && npm run release:push", - "release:publish": "npm publish", - "release:tag": "git tag v$npm_package_version -a", - "release:push": "git push origin master && git push origin --tags", - "pretest": "npm run test:coffeelint", - "test:coffeelint": "coffeelint ./src", - "test": "node --harmony ./es5/test/everything-test.js" - }, - "dependencies": { - "extract-opts": "^3.2.0" - }, - "devDependencies": { - "chai": "^3.5.0", - "coffee-script": "^1.10.0", - "coffeelint": "^1.15.7", - "joe": "^1.6.0", - "joe-reporter-console": "^1.2.1", - "projectz": "^1.1.5" - }, - "gitHead": "49b1832c88b2c0edbdc7a172b6bd14dcfc45e305", - "_id": "getmac@1.2.1", - "_shasum": "0d095fd0627850043eac1dcfa0b120bbdc1426d1", - "_from": "getmac@>=1.2.1 <1.3.0", - "_npmVersion": "3.8.7", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "balupton", - "email": "b@lupton.cc" - }, - "dist": { - "shasum": "0d095fd0627850043eac1dcfa0b120bbdc1426d1", - "tarball": "https://registry.npmjs.org/getmac/-/getmac-1.2.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/getmac-1.2.1.tgz_1462858392407_0.777876386186108" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/getmac/-/getmac-1.2.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/.npmignore deleted file mode 100644 index 86fd67ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -.tmp* -.project -.settings -.idea \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/CHANGELOG.md deleted file mode 100644 index 1620e985..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/CHANGELOG.md +++ /dev/null @@ -1,52 +0,0 @@ -Hasher Changelog -================ - -v1.2.0 (2013/11/11) -------------------- - - - hasher.raw for percent-encoded strings (#59, thanks @mwoc) - - wrap decodeURIComponent into `try/catch` (#57) - - bower.json - - -v1.1.4 (2013/04/03) -------------------- - - - node.js compliance + package.json (#52) - - -v1.1.3 (2013/03/14) -------------------- - - - escape RegExp on `trimHash` to avoid removing `$` from hash value (#49) - - use unnamed AMD module for greater portability (#51) - - -v1.1.2 (2012/10/31) -------------------- - - - fix unnecessary "changed" events during consecutive redirects (#39) - - fix hash containing "%" (#42) - - -v1.1.1 (2012/10/25) -------------------- - - - fix iOS5 bug when going to a new page and coming back afterwards, caused by - cached reference to an old instance of the `window.location`. (#43) - - fix IE compatibility mode. (#44). - - -v1.1.0 (2011/11/01) -------------------- - - - add `hasher.replaceHash()` (#35) - - `hasher.initialized.memorize = true` avoid issues if adding listener after - `initialized` already dispatched if using signals 0.7.0+. (#33) - - single distribution file for AMD and plain browser. (#34) - - -v1.0.0 (2011/08/03) -------------------- - - - initial public release. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/README.md deleted file mode 100644 index 208163e5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/README.md +++ /dev/null @@ -1,292 +0,0 @@ -![hasher-logo.gif](https://github.com/millermedeiros/Hasher/raw/master/assets/hasher-logo.gif) - -Hasher is a set of JavaScript functions to control browser history for rich-media websites and applications. -It works as an abstraction of browsers native methods plus some extra helper methods, it also has the advantage of dispatching Events when the history state change across multiple browsers (since this feature isn't supported by all of them). - - - -## Why? ## - - - Browsers evolved since the other available solutions were created. - - Some of the alternatives are way too complex, sometimes doing more things automatically than you actually want it to do. - - Source code of most of the solutions are way too cryptic making it impossible to customize for your need or to debug it in case you find any issue. - - Some of the solutions require extra markup and/or blank files to make it work. - - The HTML5 History API is awesome but some for some kinds of applications using the - `location.hash` may still be the recommended solution for saving application state. - - - -## Goals ## - - - Be simple. - - Work on the main browsers (IE6+, newest versions of Firefox, Safari, Opera and Chrome). - - Clean source code, making it easy to debug/customize/maintain. - - Follow best practices/standards. - - Fully unit tested. ([tests](http://millermedeiros.github.com/Hasher/test/unit.html)) - - Don't break application if for some reason `location.hash` can't be updated. - (it should still dispatch `changed` signal at each `hasher.setHash()`) - - - -## Dependencies ## - - - **This library requires [JS-Signals](http://millermedeiros.github.com/js-signals/) to work.** - - - -## Basic Example ## - - -### HTML ### - -Include [JS-Signals](http://millermedeiros.github.com/js-signals/) and **hasher** to your HTML file: - -```html - - -``` - -**IMPORTANT:** `signals.js` should be included before `hasher.js`. - - -### JavaScript ### - -```js - //handle hash changes - function handleChanges(newHash, oldHash){ - console.log(newHash); - } - - hasher.changed.add(handleChanges); //add hash change listener - hasher.initialized.add(handleChanges); //add initialized listener (to grab initial value in case it is already set) - hasher.init(); //initialize hasher (start listening for history changes) - - hasher.setHash('foo'); //change hash value (generates new history record) -``` - - -## Advanced Usage ## - - -### Hash Bang! ### - -Google have a proposal for [making Ajax content crawlable](http://code.google.com/web/ajaxcrawling/docs/getting-started.html) by specifying that a certain *hash value* also have an static snapshot. Those *hash values* should start with an exclamation mark `!`: - -```js -hasher.prependHash = '!'; //default value is "/" -hasher.setHash('foo'); //will update location.hash to "#!foo" -> htttp://example.com/#!foo -``` - -PS: Only use the hashbang if you are generating static snapshots for the hash. - - -### Setting hash value without dispatching changed signal ## - -One of the greatest benefits of Hasher over other solutions is that it uses JS-Signals for the event dispatch, which provides [many advanced features](https://github.com/millermedeiros/js-signals/wiki/Examples). This can be useful when you are setting the hash value and your `changed` handler doesn't need to be called (e.g. updating hash value during scroll). Use it with care. - -```js -function setHashSilently(hash){ - hasher.changed.active = false; //disable changed signal - hasher.setHash(hash); //set hash without dispatching changed signal - hasher.changed.active = true; //re-enable signal -} - -hasher.init(); //start listening for changes -hasher.changed.add(console.log, console); //log all changes -hasher.setHash('foo'); -setHashSilently('lorem/ipsum'); //set hash value without dispatching changed event (will generate history record anyway) -hasher.setHash('bar'); -``` - - -### Setting hash value without generating a new history record - -Hasher also contains the method `replaceHash()`. It works very similarly to the -`setHash()` method (will also dispatch a `changed` signal), the main difference -it that it won't keep the **previous** hash on the history record (similar to -`location.replace()`). It's useful for redirections and any other change that -shouldn't be on the browser history. - -```js -function onHasherInit(curHash){ - if (curHash == '') { - // redirect to "home" hash without keeping the empty hash on the history - hasher.replaceHash('home'); - } -} -hasher.initialized.add(onHasherInit); -hasher.changed.add(console.log, console); // log all hashes -hasher.init(); -``` - - -### Routes: Using Hasher together with Crossroads.js ### - -Hasher is only focused on providing a reliable and clear API for setting hash values and -listening to hash state change event. If you need an advanced *routing* system -check [crossroads.js](http://millermedeiros.github.com/crossroads.js/). Both -were designed to work together easily: - -```js -//setup crossroads -crossroads.addRoute('home'); -crossroads.addRoute('lorem'); -crossroads.addRoute('lorem/ipsum'); -crossroads.routed.add(console.log, console); //log all routes - -//setup hasher -function parseHash(newHash, oldHash){ - crossroads.parse(newHash); -} -hasher.initialized.add(parseHash); // parse initial hash -hasher.changed.add(parseHash); //parse hash changes -hasher.init(); //start listening for history change -``` - - - -## How does it work? ## - -Hasher will listen for the browser `onhashchange` event if it is supported (FF3.6+, IE8+, Chrome 5+, Safari 5+, Opera 10.6+) -or it will fallback to pooling the `window.location` on an interval to check if -hash value changed. On IE 6-7 it also uses an hidden iframe to trigger -the history state changes (since updating the hash value won't do the trick). -This is the same method used by most of the other available solutions like swfaddress, -jQuery Address, YUI History, jqBBQ, Really Simple History, etc... - -The main difference from the other solutions are the API, code structure and -the fact that it doesn't require jQuery/YUI/dojo/moootools/etc to work. It also -uses [JS-Signals](http://millermedeiros.github.com/js-signals/) for the events which -provides a sane way of handling events and some really useful advanced features. - - - -## Why should I use it? ## - -Besides the fact of making history state work across multiple browsers it also -normalizes and fixes many bugs, here are a few of the advantges: - - * Normalizes the hash value across browsers (firefox decode hash value and - all the other browsers don't). - * Fix IE8 bug if `location.hash` contains a "?" character and file is being - accessed locally it would break the history stack. [iss #6] - * Fix Safari 4-5 bug while setting `location.hash` to a value that contain - non-printable ASCII chars (non-latin, accents, etc..). [iss #8] - * Degrade gracefully if for some reason `location.hash` isn't available, will - dispatch the `changed` signal at each `hasher.setHash()` and application - can still work, it just won't generate a new history record. - * Doesn't rely on callbacks so you can add as many listeners as you want and - since it uses [JS-Signals](http://millermedeiros.github.com/js-signals/) - for the event system it also provides many advanced featured that wouldn't - be available through a simple callback system, like disabling the dispatch - of an event (so you can change the hash value without affecting your app - state), removing all the listeners at once, dispose objects, etc... - * Option to start/stop pooling/listening for changes on the hash whenever you - want giving more control over how you app is supposed to work. - * Available as an AMD module which can be easily integrated into other - projects without polluting the global scope or affecting you aplication - structure. - * Isn't a plugin for a large JS library/framework (so you can use it with - *any* library). - * Can be easily integrated into a Router like - [crossroads.js](http://millermedeiros.github.com/crossroads.js/). - * Sometimes regular URLs doesn't make any sense, specially when you *can't* - provide a fallback to all of them or when you just want to save the state of - the application and that change wouldn't make sense on a full page reload - (scrolling through the same page, interactive slideshow, etc..), also some - content may not need to be indexed by search engines (although you can use - *hashbangs* to make [Ajax content crawlable](http://code.google.com/web/ajaxcrawling/docs/getting-started.html)...). - **Each scenario requires a different approach, be pragmatic.** - * Clean API. - - - -## Documentation ## - -Documentation can be found inside the `dist/docs` folder or at [http://millermedeiros.github.com/Hasher/docs/](http://millermedeiros.github.com/Hasher/docs/). - - - -## Unit Tests ## - -Hasher is *usually* tested on IE (6,7,8,9), FF (3.6, 4.0, 5.0+ - mac/pc), -Chrome (latest stable - mac/pc), Safari Mac (4.3, 5.0) and Opera (latest - mac/pc). - -You can also run the test by yourself at [http://millermedeiros.github.com/Hasher/test/unit.html](http://millermedeiros.github.com/Hasher/test/unit.html) - - - -## Repository Structure ## - -### Folder Structure ### - - dev -> development files - |- build -> files used on the build process - |- lib -> 3rd-party libraries - |- src -> source files - |- tests -> unit tests - dist -> distribution files - |- docs -> documentation - |- js -> javascript files - -### Branches ### - - master -> always contain code from the latest stable version - release-** -> code canditate for the next stable version (alpha/beta) - dev -> main development branch (nightly) - gh-pages -> project page - **other** -> features/hotfixes/experimental, probably non-stable code - - - -## Distribution Files ## - -Files inside `dist/js` folder. - - * hasher.js : Uncompressed source code with comments. Works as a plain script - or can be loaded by an AMD loader like [RequireJS](http://requirejs.org/) - without generating any global variables. - * hasher.min.js : Compressed code. - -Documentation is inside the `dist/docs` folder. - - - -## Building your own ## - -This project uses [Apache Ant](http://ant.apache.org/) for the build process. If for some reason you need to build a custom version install Ant and run: - - ant compile - -This will delete all JS files inside the `dist` folder, merge/update/compress source files and copy the output to the `dist` folder. - - ant deploy - -This will delete all files inside *dist* folder, is runs `ant compile` and generate documentation files. - -**IMPORTANT:** `dist` folder always contain the latest version, regular users should **not** need to run build task. - - - -## License ## - -Released under the [MIT license](http://www.opensource.org/licenses/mit-license.php). - - - -## Important ## - - - Weird case scenarios like calling methods from inside (i)frame, wrong doctype, - plugins, 3rd party code, etc, **MAY** prevent script from working properly. - - Hasher was designed on a way that it will still dispatch the - `changed` signal even if it can't update the browser `location.hash`, so - application should keep working even if back/prev buttons doesn't work as - expected. - - Consider using the new [HTML5 history API](http://robertnyman.com/2011/08/03/html5-history-api-and-improving-end-user-experience/) - if normal URLs would make sense on the kind of site/application you are building and - you have static fallbacks for all of them (in some cases that may not be - possible or even a good option). [History.js](https://github.com/balupton/history.js) - is probably the most used *polyfill* for the History API, check it out. - - -© [Miller Medeiros](http://www.millermedeiros.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/assets/hasher-logo.gif b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/assets/hasher-logo.gif deleted file mode 100644 index 08907434..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/assets/hasher-logo.gif and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/assets/hasher-logo.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/assets/hasher-logo.svg deleted file mode 100644 index 7af67653..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/assets/hasher-logo.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/bower.json deleted file mode 100644 index a7e0f65a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/bower.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "hasher", - "version": "1.2.0", - "homepage": "https://github.com/millermedeiros/Hasher", - "authors": [ - "millermedeiros " - ], - "description": "Hasher is a set of JavaScript functions to control browser history for rich-media websites and applications", - "main": "dist/js/hasher.js", - "dependencies": { - "js-signals": ">0.7 <2.0" - }, - "keywords": [ - "history", - "hasher", - "hashbang", - "hash", - "navigation", - "browser" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests", - "dev", - "assets", - "updateGhPages.sh", - "build.xml", - "package.json" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/build.xml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/build.xml deleted file mode 100644 index 6b8ee2ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/build.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - Hasher Build Task. Unify files, compress, validate, generate documentation and distribution files. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/build.properties b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/build.properties deleted file mode 100644 index 4ce8be6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/build.properties +++ /dev/null @@ -1,16 +0,0 @@ -dev.dir = dev -deploy.dir = dist -src.dir = ${dev.dir}/src -lib.dir = ${dev.dir}/lib -build.dir = ${dev.dir}/build -dist.dir = ${deploy.dir}/js -docs.dir = ${deploy.dir}/docs - -jsdoc-toolkit.dir = ${build.dir}/jsdoc-toolkit -yuicompressor.jar = ${build.dir}/yuicompressor/yuicompressor-2.4.2.jar - -product.name = hasher -version.number = 1.2.0 - -dist.name = ${product.name}.js -dist.min.name = ${product.name}.min.js diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/README.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/README.txt deleted file mode 100644 index 3782da88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/README.txt +++ /dev/null @@ -1,183 +0,0 @@ -====================================================================== - -DESCRIPTION: - -This is the source code for JsDoc Toolkit, an automatic documentation -generation tool for JavaScript. It is written in JavaScript and is run -from a command line (or terminal) using Java and Mozilla's Rhino -JavaScript runtime engine. - -Using this tool you can automatically turn JavaDoc-like comments in -your JavaScript source code into published output files, such as HTML -or XML. - -For more information, to report a bug, or to browse the technical -documentation for this tool please visit the official JsDoc Toolkit -project homepage at http://code.google.com/p/jsdoc-toolkit/ - -For the most up-to-date documentation on JsDoc Toolkit see the -official wiki at http://code.google.com/p/jsdoc-toolkit/w/list - -====================================================================== - -REQUIREMENTS: - -JsDoc Toolkit is known to work with: -java version "1.6.0_03" -Java(TM) SE Runtime Environment (build 1.6.0_03-b05) -on Windows XP, -and java version "1.5.0_19" -Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02-304) -on Mac OS X 10.5. - -Other versions of java may or may not work with JsDoc Toolkit. - -====================================================================== - -USAGE: - -Running JsDoc Toolkit requires you to have Java installed on your -computer. For more information see http://www.java.com/getjava/ - -Before running the JsDoc Toolkit app you should change your current -working directory to the jsdoc-toolkit folder. Then follow the -examples below, or as shown on the project wiki. - -On a computer running Windows a valid command line to run JsDoc -Toolkit might look like this: - -> java -jar jsrun.jar app\run.js -a -t=templates\jsdoc mycode.js - -On Mac OS X or Linux the same command would look like this: - -$ java -jar jsrun.jar app/run.js -a -t=templates/jsdoc mycode.js - -The above assumes your current working directory contains jsrun.jar, -the "app" and "templates" subdirectories from the standard JsDoc -Toolkit distribution and that the relative path to the code you wish -to document is "mycode.js". - -The output documentation files will be saved to a new directory named -"out" (by default) in the current directory, or if you specify a --d=somewhere_else option, to the somewhere_else directory. - -For help (usage notes) enter this on the command line: - -$ java -jar jsrun.jar app/run.js --help - -More information about the various command line options used by JsDoc -Toolkit are available on the project wiki. - -====================================================================== - -RUNNING VIA SHELL SCRIPT - -Avi Deitcher has contributed the file jsrun.sh with the following usage notes: - -A script to simplify running jsdoc from the command-line, especially when -running from within a development or build environment such as ant. - -Normally, to run jsdoc, you need a command-line as the following: -java -Djsdoc.dir=/some/long/dir/path/to/jsdoc -jar -/some/long/dir/path/to/jsdoc/jsrun.jar /some/long/dir/path/to/jsdoc/app/run.js --t=template -r=4 /some/long/dir/path/to/my/src/code - -This can get tedious to redo time and again, and difficult to use from within a build environment. - -To simplify the process, jsrun.sh will automatically run this path, as well as passing through any arguments. - -Usage: jsrun.sh - -All will be passed through. -Additionally, jsrun.sh will take the following actions: -1) If the environment variable JSDOCDIR is set, it will add -"-Djsdoc.dir=$JSDOCDIR" to the command-line -2) If the environment variable JSDOCTEMPLATEDIR is set, it will add -"-Djsdoc.template.dir=$JSDOCTEMPLATEDIR" to the command-line -3) java with the appropriate path to jsrun.jar and run.js will be instantiated - -If not variables are set, it is assumed that the path to jsrun.jar and app/ is in the current working directory. - -Example: -# jsrun.sh ./src/ -Assuming JSDOCDIR=/some/path/to/my/jsdoc will cause the following command to -execute: -java -Djsdoc.dir=/some/path/to/my/jsdoc -jar /some/path/to/my/jsdoc/jsrun.jar -/some/path/to/my/jsdoc/app/run.js ./src/ - -====================================================================== - -TESTING: - -To run the suite of unit tests included with JsDoc Toolkit enter this -on the command line: - -$ java -jar jsrun.jar app/run.js -T - -To see a dump of the internal data structure that JsDoc Toolkit has -built from your source files use this command: - -$ java -jar jsrun.jar app/run.js mycode.js -Z - -====================================================================== - -LICENSE: - -JSDoc.pm - -This project is based on the JSDoc.pm tool, created by Michael -Mathews and Gabriel Reid. More information on JsDoc.pm can -be found on the JSDoc.pm homepage: http://jsdoc.sourceforge.net/ - -Complete documentation on JsDoc Toolkit can be found on the project -wiki at http://code.google.com/p/jsdoc-toolkit/w/list - -Rhino - -Rhino (JavaScript in Java) is open source and licensed by Mozilla -under the MPL 1.1 or later/GPL 2.0 or later licenses, the text of -which is available at http://www.mozilla.org/MPL/ - -You can obtain the source code for Rhino from the Mozilla web site at -http://www.mozilla.org/rhino/download.html - -JsDoc Toolkit is a larger work that uses the Rhino JavaScript engine -but is not derived from it in any way. The Rhino library is used -without modification and without any claims whatsoever. - -The Rhino Debugger - -You can obtain more information about the Rhino Debugger from the -Mozilla web site at http://www.mozilla.org/rhino/debugger.html - -JsDoc Toolkit is a larger work that uses the Rhino Debugger but -is not derived from it in any way. The Rhino Debugger is used -without modification and without any claims whatsoever. - -JsDoc Toolkit - -All code specific to JsDoc Toolkit are free, open source and licensed -for use under the X11/MIT License. - -JsDoc Toolkit is Copyright (c)2009 Michael Mathews - -This program is free software; you can redistribute it and/or -modify it under the terms below. - -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 must 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame.js deleted file mode 100644 index 1beb4055..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame.js +++ /dev/null @@ -1,33 +0,0 @@ -IO.include("frame/Opt.js"); -IO.include("frame/Chain.js"); -IO.include("frame/Link.js"); -IO.include("frame/String.js"); -IO.include("frame/Hash.js"); -IO.include("frame/Namespace.js"); -//IO.include("frame/Reflection.js"); - -/** A few helper functions to make life a little easier. */ - -function defined(o) { - return (o !== undefined); -} - -function copy(o) { // todo check for circular refs - if (o == null || typeof(o) != 'object') return o; - var c = new o.constructor(); - for(var p in o) c[p] = copy(o[p]); - return c; -} - -function isUnique(arr) { - var l = arr.length; - for(var i = 0; i < l; i++ ) { - if (arr.lastIndexOf(arr[i]) > i) return false; - } - return true; -} - -/** Returns the given string with all regex meta characters backslashed. */ -RegExp.escapeMeta = function(str) { - return str.replace(/([$^\\\/()|?+*\[\]{}.-])/g, "\\$1"); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Chain.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Chain.js deleted file mode 100644 index 506469d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Chain.js +++ /dev/null @@ -1,102 +0,0 @@ -/**@constructor*/ -function ChainNode(object, link) { - this.value = object; - this.link = link; // describes this node's relationship to the previous node -} - -/**@constructor*/ -function Chain(valueLinks) { - this.nodes = []; - this.cursor = -1; - - if (valueLinks && valueLinks.length > 0) { - this.push(valueLinks[0], "//"); - for (var i = 1, l = valueLinks.length; i < l; i+=2) { - this.push(valueLinks[i+1], valueLinks[i]); - } - } -} - -Chain.prototype.push = function(o, link) { - if (this.nodes.length > 0 && link) this.nodes.push(new ChainNode(o, link)); - else this.nodes.push(new ChainNode(o)); -} - -Chain.prototype.unshift = function(o, link) { - if (this.nodes.length > 0 && link) this.nodes[0].link = link; - this.nodes.unshift(new ChainNode(o)); - this.cursor++; -} - -Chain.prototype.get = function() { - if (this.cursor < 0 || this.cursor > this.nodes.length-1) return null; - return this.nodes[this.cursor]; -} - -Chain.prototype.first = function() { - this.cursor = 0; - return this.get(); -} - -Chain.prototype.last = function() { - this.cursor = this.nodes.length-1; - return this.get(); -} - -Chain.prototype.next = function() { - this.cursor++; - return this.get(); -} - -Chain.prototype.prev = function() { - this.cursor--; - return this.get(); -} - -Chain.prototype.toString = function() { - var string = ""; - for (var i = 0, l = this.nodes.length; i < l; i++) { - if (this.nodes[i].link) string += " -("+this.nodes[i].link+")-> "; - string += this.nodes[i].value.toString(); - } - return string; -} - -Chain.prototype.joinLeft = function() { - var result = ""; - for (var i = 0, l = this.cursor; i < l; i++) { - if (result && this.nodes[i].link) result += this.nodes[i].link; - result += this.nodes[i].value.toString(); - } - return result; -} - - -/* USAGE: - -var path = "one/two/three.four/five-six"; -var pathChain = new Chain(path.split(/([\/.-])/)); -print(pathChain); - -var lineage = new Chain(); -lineage.push("Port"); -lineage.push("Les", "son"); -lineage.push("Dawn", "daughter"); -lineage.unshift("Purdie", "son"); - -print(lineage); - -// walk left -for (var node = lineage.last(); node !== null; node = lineage.prev()) { - print("< "+node.value); -} - -// walk right -var node = lineage.first() -while (node !== null) { - print(node.value); - node = lineage.next(); - if (node && node.link) print("had a "+node.link+" named"); -} - -*/ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Dumper.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Dumper.js deleted file mode 100644 index d8b007b1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Dumper.js +++ /dev/null @@ -1,144 +0,0 @@ -/** - * @class -
      -This is a lightly modified version of Kevin Jones' JavaScript
      -library Data.Dump. To download the original visit:
      -    http://openjsan.org/doc/k/ke/kevinj/Data/Dump/
      -
      -AUTHORS
      -
      -The Data.Dump JavaScript module is written by Kevin Jones 
      -(kevinj@cpan.org), based on Data::Dump by Gisle Aas (gisle@aas.no),
      -based on Data::Dumper by Gurusamy Sarathy (gsar@umich.edu).
      -
      -COPYRIGHT
      -
      -Copyright 2007 Kevin Jones. Copyright 1998-2000,2003-2004 Gisle Aas.
      -Copyright 1996-1998 Gurusamy Sarathy.
      -
      -This program is free software; you can redistribute it and/or modify
      -it under the terms of the Perl Artistic License
      -
      -See http://www.perl.com/perl/misc/Artistic.html
      -
      - * @static - */ -Dumper = { - /** @param [...] The objects to dump. */ - dump: function () { - if (arguments.length > 1) - return this._dump(arguments); - else if (arguments.length == 1) - return this._dump(arguments[0]); - else - return "()"; - }, - - _dump: function (obj) { - if (typeof obj == 'undefined') return 'undefined'; - var out; - if (obj.serialize) { return obj.serialize(); } - var type = this._typeof(obj); - if (obj.circularReference) obj.circularReference++; - switch (type) { - case 'circular': - out = "{ //circularReference\n}"; - break; - case 'object': - var pairs = new Array; - - for (var prop in obj) { - if (prop != "circularReference" && obj.hasOwnProperty(prop)) { //hide inherited properties - pairs.push(prop + ': ' + this._dump(obj[prop])); - } - } - - out = '{' + this._format_list(pairs) + '}'; - break; - - case 'string': - for (var prop in Dumper.ESC) { - if (Dumper.ESC.hasOwnProperty(prop)) { - obj = obj.replace(prop, Dumper.ESC[prop]); - } - } - - // Escape UTF-8 Strings - if (obj.match(/^[\x00-\x7f]*$/)) { - out = '"' + obj.replace(/\"/g, "\\\"").replace(/([\n\r]+)/g, "\\$1") + '"'; - } - else { - out = "unescape('"+escape(obj)+"')"; - } - break; - - case 'array': - var elems = new Array; - - for (var i=0; i 60 ? '\n' : ' '; - return nl + list.join(',' + nl) + nl; - }, - - _typeof: function (obj) { - if (obj && obj.circularReference && obj.circularReference > 1) return 'circular'; - if (Array.prototype.isPrototypeOf(obj)) return 'array'; - if (Date.prototype.isPrototypeOf(obj)) return 'date'; - if (typeof obj.nodeType != 'undefined') return 'element'; - return typeof(obj); - }, - - _dump_dom: function (obj) { - return '"' + Dumper.nodeTypes[obj.nodeType] + '"'; - } -}; - -Dumper.ESC = { - "\t": "\\t", - "\n": "\\n", - "\f": "\\f" -}; - -Dumper.nodeTypes = { - 1: "ELEMENT_NODE", - 2: "ATTRIBUTE_NODE", - 3: "TEXT_NODE", - 4: "CDATA_SECTION_NODE", - 5: "ENTITY_REFERENCE_NODE", - 6: "ENTITY_NODE", - 7: "PROCESSING_INSTRUCTION_NODE", - 8: "COMMENT_NODE", - 9: "DOCUMENT_NODE", - 10: "DOCUMENT_TYPE_NODE", - 11: "DOCUMENT_FRAGMENT_NODE", - 12: "NOTATION_NODE" -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Hash.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Hash.js deleted file mode 100644 index 62cfad64..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Hash.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - @constructor - @example - var _index = new Hash(); - _index.set("a", "apple"); - _index.set("b", "blue"); - _index.set("c", "coffee"); - - for (var p = _index.first(); p; p = _index.next()) { - print(p.key+" is for "+p.value); - } - - */ -var Hash = function() { - this._map = {}; - this._keys = []; - this._vals = []; - this.reset(); -} - -Hash.prototype.set = function(k, v) { - if (k != "") { - this._keys.push(k); - this._map["="+k] = this._vals.length; - this._vals.push(v); - } -} - -Hash.prototype.replace = function(k, k2, v) { - if (k == k2) return; - - var offset = this._map["="+k]; - this._keys[offset] = k2; - if (typeof v != "undefined") this._vals[offset] = v; - this._map["="+k2] = offset; - delete(this._map["="+k]); -} - -Hash.prototype.drop = function(k) { - if (k != "") { - var offset = this._map["="+k]; - this._keys.splice(offset, 1); - this._vals.splice(offset, 1); - delete(this._map["="+k]); - for (var p in this._map) { - if (this._map[p] >= offset) this._map[p]--; - } - if (this._cursor >= offset && this._cursor > 0) this._cursor--; - } -} - -Hash.prototype.get = function(k) { - if (k != "") { - return this._vals[this._map["="+k]]; - } -} - -Hash.prototype.keys = function() { - return this._keys; -} - -Hash.prototype.hasKey = function(k) { - if (k != "") { - return (typeof this._map["="+k] != "undefined"); - } -} - -Hash.prototype.values = function() { - return this._vals; -} - -Hash.prototype.reset = function() { - this._cursor = 0; -} - -Hash.prototype.first = function() { - this.reset(); - return this.next(); -} - -Hash.prototype.next = function() { - if (this._cursor++ < this._keys.length) - return {key: this._keys[this._cursor-1], value: this._vals[this._cursor-1]}; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Link.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Link.js deleted file mode 100644 index 1e6241bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Link.js +++ /dev/null @@ -1,173 +0,0 @@ -/** Handle the creation of HTML links to documented symbols. - @constructor -*/ -function Link() { - this.alias = ""; - this.src = ""; - this.file = ""; - this.text = ""; - this.innerName = ""; - this.classLink = false; - this.targetName = ""; - - this.target = function(targetName) { - if (defined(targetName)) this.targetName = targetName; - return this; - } - this.inner = function(inner) { - if (defined(inner)) this.innerName = inner; - return this; - } - this.withText = function(text) { - if (defined(text)) this.text = text; - return this; - } - this.toSrc = function(filename) { - if (defined(filename)) this.src = filename; - return this; - } - this.toSymbol = function(alias) { - if (defined(alias)) this.alias = new String(alias); - return this; - } - this.toClass = function(alias) { - this.classLink = true; - return this.toSymbol(alias); - } - this.toFile = function(file) { - if (defined(file)) this.file = file; - return this; - } - - this.toString = function() { - var linkString; - var thisLink = this; - - if (this.alias) { - linkString = this.alias.replace(/(^|[^a-z$0-9_#.:^-])([|a-z$0-9_#.:^-]+)($|[^a-z$0-9_#.:^-])/i, - function(match, prematch, symbolName, postmatch) { - var symbolNames = symbolName.split("|"); - var links = []; - for (var i = 0, l = symbolNames.length; i < l; i++) { - thisLink.alias = symbolNames[i]; - links.push(thisLink._makeSymbolLink(symbolNames[i])); - } - return prematch+links.join("|")+postmatch; - } - ); - } - else if (this.src) { - linkString = thisLink._makeSrcLink(this.src); - } - else if (this.file) { - linkString = thisLink._makeFileLink(this.file); - } - - return linkString; - } -} - -/** prefixed for hashes */ -Link.hashPrefix = ""; - -/** Appended to the front of relative link paths. */ -Link.base = ""; - -Link.symbolNameToLinkName = function(symbol) { - var linker = "", - ns = ""; - - if (symbol.isStatic) linker = "."; - else if (symbol.isInner) linker = "-"; - - if (symbol.isEvent && !/^event:/.test(symbol.name)) { - ns = "event:"; - } - return Link.hashPrefix+linker+ns+symbol.name; -} - -Link.getSymbol= function(alias) { - var symbol= Link.symbolSet.getSymbol(alias); - - if (symbol) - return symbol; - - if ('#'!==alias.charAt(0) || !Link.currentSymbol) - return null; - - // resolve relative name - var container= Link.currentSymbol; - - while (container) - { - symbol= Link.symbolSet.getSymbol(container.alias + alias); - if (symbol) - return symbol; - - // No superclass - if (!container.augments.length) - return null; - - container= Link.symbolSet.getSymbol(container.augments[0].desc); - } - - return null; -} - -/** Create a link to another symbol. */ -Link.prototype._makeSymbolLink = function(alias) { - var linkBase = Link.base+publish.conf.symbolsDir; - var linkTo = Link.getSymbol(alias); - var linkPath; - var target = (this.targetName)? " target=\""+this.targetName+"\"" : ""; - - // if there is no symbol by that name just return the name unaltered - if (!linkTo) - return this.text || alias; - - // it's a symbol in another file - else { - if (!linkTo.is("CONSTRUCTOR") && !linkTo.isNamespace) { // it's a method or property - linkPath= (Link.filemap) ? Link.filemap[linkTo.memberOf] : - escape(linkTo.memberOf) || "_global_"; - linkPath += publish.conf.ext + "#" + Link.symbolNameToLinkName(linkTo); - } - else { - linkPath = (Link.filemap)? Link.filemap[linkTo.alias] : escape(linkTo.alias); - linkPath += publish.conf.ext;// + (this.classLink? "":"#" + Link.hashPrefix + "constructor"); - } - linkPath = linkBase + linkPath - } - - var linkText= this.text || alias; - - var link = {linkPath: linkPath, linkText: linkText, linkInner: (this.innerName? "#"+this.innerName : "")}; - - if (typeof JSDOC.PluginManager != "undefined") { - JSDOC.PluginManager.run("onSymbolLink", link); - } - - return ""+link.linkText+""; -} - -/** Create a link to a source file. */ -Link.prototype._makeSrcLink = function(srcFilePath) { - var target = (this.targetName)? " target=\""+this.targetName+"\"" : ""; - - // transform filepath into a filename - var srcFile = srcFilePath.replace(/\.\.?[\\\/]/g, "").replace(/[:\\\/]/g, "_"); - var outFilePath = Link.base + publish.conf.srcDir + srcFile + publish.conf.ext; - - if (!this.text) this.text = FilePath.fileName(srcFilePath); - return ""+this.text+""; -} - -/** Create a link to a source file. */ -Link.prototype._makeFileLink = function(filePath) { - var target = (this.targetName)? " target=\""+this.targetName+"\"" : ""; - - var outFilePath = Link.base + filePath; - - if (!this.text) this.text = filePath; - return ""+this.text+""; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Namespace.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Namespace.js deleted file mode 100644 index fa1e41d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Namespace.js +++ /dev/null @@ -1,10 +0,0 @@ -_global_ = this; - -function Namespace(name, f) { - var n = name.split("."); - for (var o = _global_, i = 0, l = n.length; i < l; i++) { - o = o[n[i]] = o[n[i]] || {}; - } - - if (f) f(); -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Opt.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Opt.js deleted file mode 100644 index 352f1590..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Opt.js +++ /dev/null @@ -1,134 +0,0 @@ -/** @namespace */ -Opt = { - /** - * Get commandline option values. - * @param {Array} args Commandline arguments. Like ["-a=xml", "-b", "--class=new", "--debug"] - * @param {object} optNames Map short names to long names. Like {a:"accept", b:"backtrace", c:"class", d:"debug"}. - * @return {object} Short names and values. Like {a:"xml", b:true, c:"new", d:true} - */ - get: function(args, optNames) { - var opt = {"_": []}; // the unnamed option allows multiple values - for (var i = 0; i < args.length; i++) { - var arg = new String(args[i]); - var name; - var value; - if (arg.charAt(0) == "-") { - if (arg.charAt(1) == "-") { // it's a longname like --foo - arg = arg.substring(2); - var m = arg.split("="); - name = m.shift(); - value = m.shift(); - if (typeof value == "undefined") value = true; - - for (var n in optNames) { // convert it to a shortname - if (name == optNames[n]) { - name = n; - } - } - } - else { // it's a shortname like -f - arg = arg.substring(1); - var m = arg.split("="); - name = m.shift(); - value = m.shift(); - if (typeof value == "undefined") value = true; - - for (var n in optNames) { // find the matching key - if (name == n || name+'[]' == n) { - name = n; - break; - } - } - } - if (name.match(/(.+)\[\]$/)) { // it's an array type like n[] - name = RegExp.$1; - if (!opt[name]) opt[name] = []; - } - - if (opt[name] && opt[name].push) { - opt[name].push(value); - } - else { - opt[name] = value; - } - } - else { // not associated with any optname - opt._.push(args[i]); - } - } - return opt; - } -} - -/*t: - plan(11, "Testing Opt."); - - is( - typeof Opt, - "object", - "Opt is an object." - ); - - is( - typeof Opt.get, - "function", - "Opt.get is a function." - ); - - var optNames = {a:"accept", b:"backtrace", c:"class", d:"debug", "e[]":"exceptions"}; - var t_options = Opt.get(["-a=xml", "-b", "--class=new", "--debug", "-e=one", "-e=two", "foo", "bar"], optNames); - - is( - t_options.a, - "xml", - "an option defined with a short name can be accessed by its short name." - ); - - is( - t_options.b, - true, - "an option defined with a short name and no value are true." - ); - - is( - t_options.c, - "new", - "an option defined with a long name can be accessed by its short name." - ); - - is( - t_options.d, - true, - "an option defined with a long name and no value are true." - ); - - is( - typeof t_options.e, - "object", - "an option that can accept multiple values is defined." - ); - - is( - t_options.e.length, - 2, - "an option that can accept multiple values can have more than one value." - ); - - is( - t_options.e[1], - "two", - "an option that can accept multiple values can be accessed as an array." - ); - - is( - typeof t_options._, - "object", - "the property '_' is defined for unnamed options." - ); - - is( - t_options._[0], - "foo", - "the property '_' can be accessed as an array." - ); - */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Reflection.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Reflection.js deleted file mode 100644 index 0968f1c6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/Reflection.js +++ /dev/null @@ -1,26 +0,0 @@ -/**@constructor*/ -function Reflection(obj) { - this.obj = obj; -} - -Reflection.prototype.getConstructorName = function() { - if (this.obj.constructor.name) return this.obj.constructor.name; - var src = this.obj.constructor.toSource(); - var name = src.substring(name.indexOf("function")+8, src.indexOf('(')).replace(/ /g,''); - return name; -} - -Reflection.prototype.getMethod = function(name) { - for (var p in this.obj) { - if (p == name && typeof(this.obj[p]) == "function") return this.obj[p]; - } - return null; -} - -Reflection.prototype.getParameterNames = function() { - var src = this.obj.toSource(); - src = src.substring( - src.indexOf("(", 8)+1, src.indexOf(")") - ); - return src.split(/, ?/); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/String.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/String.js deleted file mode 100644 index c183c27d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/frame/String.js +++ /dev/null @@ -1,93 +0,0 @@ -/** - @name String - @class Additions to the core string object. -*/ - -/** @author Steven Levithan, released as public domain. */ -String.prototype.trim = function() { - var str = this.replace(/^\s+/, ''); - for (var i = str.length - 1; i >= 0; i--) { - if (/\S/.test(str.charAt(i))) { - str = str.substring(0, i + 1); - break; - } - } - return str; -} -/*t: - plan(6, "Testing String.prototype.trim."); - - var s = " a bc ".trim(); - is(s, "a bc", "multiple spaces front and back are trimmed."); - - s = "a bc\n\n".trim(); - is(s, "a bc", "newlines only in back are trimmed."); - - s = "\ta bc".trim(); - is(s, "a bc", "tabs only in front are trimmed."); - - s = "\n \t".trim(); - is(s, "", "an all-space string is trimmed to empty."); - - s = "a b\nc".trim(); - is(s, "a b\nc", "a string with no spaces in front or back is trimmed to itself."); - - s = "".trim(); - is(s, "", "an empty string is trimmed to empty."); - -*/ - -String.prototype.balance = function(open, close) { - var i = 0; - while (this.charAt(i) != open) { - if (i == this.length) return [-1, -1]; - i++; - } - - var j = i+1; - var balance = 1; - while (j < this.length) { - if (this.charAt(j) == open) balance++; - if (this.charAt(j) == close) balance--; - if (balance == 0) break; - j++; - if (j == this.length) return [-1, -1]; - } - - return [i, j]; -} -/*t: - plan(16, "Testing String.prototype.balance."); - - var s = "{abc}".balance("{","}"); - is(s[0], 0, "opener in first is found."); - is(s[1], 4, "closer in last is found."); - - s = "ab{c}de".balance("{","}"); - is(s[0], 2, "opener in middle is found."); - is(s[1], 4, "closer in middle is found."); - - s = "a{b{c}de}f".balance("{","}"); - is(s[0], 1, "nested opener is found."); - is(s[1], 8, "nested closer is found."); - - s = "{}".balance("{","}"); - is(s[0], 0, "opener with no content is found."); - is(s[1], 1, "closer with no content is found."); - - s = "".balance("{","}"); - is(s[0], -1, "empty string opener is -1."); - is(s[1], -1, "empty string closer is -1."); - - s = "{abc".balance("{","}"); - is(s[0], -1, "opener with no closer returns -1."); - is(s[1], -1, "no closer returns -1."); - - s = "abc".balance("{","}"); - is(s[0], -1, "no opener or closer returns -1 for opener."); - is(s[1], -1, "no opener or closer returns -1 for closer."); - - s = "aX11/MIT License - * (See the accompanying README file for full details.) - */ - -/** - Yet another unit testing tool for JavaScript. - @author Michael Mathews micmath@gmail.com - @param {object} testCases Properties are testcase names, values are functions to execute as tests. -*/ -function testrun(testCases) { - var ran = 0; - for (t in testCases) { - var result = testCases[t](); - ran++; - } - - return testrun.reportOut+"-------------------------------\n"+((testrun.fails>0)? ":( Failed "+testrun.fails+"/" : ":) Passed all ")+testrun.count+" test"+((testrun.count == 1)? "":"s")+".\n"; -} - - -testrun.count = 0; -testrun.current = null; -testrun.passes = 0; -testrun.fails = 0; -testrun.reportOut = ""; - -/** @private */ -testrun.report = function(text) { - testrun.reportOut += text+"\n"; -} - -/** - Check if test evaluates to true. - @param {string} test To be evaluated. - @param {string} message Optional. To be displayed in the report. - @return {boolean} True if the string test evaluates to true. -*/ -ok = function(test, message) { - testrun.count++; - - var result; - try { - result = eval(test); - - if (result) { - testrun.passes++; - testrun.report(" OK "+testrun.count+" - "+((message != null)? message : "")); - } - else { - testrun.fails++; - testrun.report("NOT OK "+testrun.count+" - "+((message != null)? message : "")); - } - } - catch(e) { - testrun.fails++ - testrun.report("NOT OK "+testrun.count+" - "+((message != null)? message : "")); - - } -} - -/** - Check if test is same as expected. - @param {string} test To be evaluated. - @param {string} expected - @param {string} message Optional. To be displayed in the report. - @return {boolean} True if (test == expected). Note that the comparison is not a strict equality check. -*/ -is = function(test, expected, message) { - testrun.count++; - - var result; - try { - result = eval(test); - - if (result == expected) { - testrun.passes++ - testrun.report(" OK "+testrun.count+" - "+((message != null)? message : "")); - } - else { - testrun.fails++ - testrun.report("NOT OK "+testrun.count+" - "+((message != null)? message : "")); - testrun.report("expected: "+expected); - testrun.report(" got: "+result); - } - } - catch(e) { - testrun.fails++ - testrun.report("NOT OK "+testrun.count+" - "+((message != null)? message : "")); - testrun.report("expected: "+expected); - testrun.report(" got: "+result);} -} - -/** - Check if test matches pattern. - @param {string} test To be evaluated. - @param {string} pattern Used to create a RegExp. - @param {string} message Optional. To be displayed in the report. - @return {boolean} True if test matches pattern. -*/ -like = function(test, pattern, message) { - testrun.count++; - - var result; - try { - result = eval(test); - var rgx = new RegExp(pattern); - - if (rgx.test(result)) { - testrun.passes++ - testrun.report(" OK "+testrun.count+" - "+((message != null)? message : "")); - } - else { - testrun.fails++ - testrun.report("NOT OK "+testrun.count+" - "+((message != null)? message : "")); - testrun.report(" this: "+result); - testrun.report("is not like: "+pattern); - } - } - catch(e) { - testrun.fails++ - testrun.report("NOT OK "+testrun.count+" - "+((message != null)? message : "")); - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/FOODOC.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/FOODOC.js deleted file mode 100644 index b208f55b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/FOODOC.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - This is the main container for the FOODOC handler. - @namespace -*/ -FOODOC = { -}; - -/** The current version string of this application. */ -FOODOC.VERSION = "1.0"; - -FOODOC.handle = function(srcFile, src) { - LOG.inform("Handling file '" + srcFile + "'"); - - return [ - new JSDOC.Symbol( - "foo", - [], - "VIRTUAL", - new JSDOC.DocComment("/** This is a foo. */") - ) - ]; -}; - -FOODOC.publish = function(symbolgroup) { - LOG.inform("Publishing symbolgroup."); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC.js deleted file mode 100644 index 40f87b35..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * This is the main container for the XMLDOC handler. - * @namespace - * @author Brett Fattori (bfattori@fry.com) - * @version $Revision: 498 $ - */ -XMLDOC = { - -}; - -/** The current version string of this application. */ -XMLDOC.VERSION = "1.0"; - -/** Include the library necessary to handle XML files */ -IO.includeDir("handlers/XMLDOC/"); - -/** - * @type Symbol[] - */ -XMLDOC.handle = function(srcFile, src) { - -}; - -XMLDOC.publish = function(symbolgroup) { - -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC/DomReader.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC/DomReader.js deleted file mode 100644 index 240563da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC/DomReader.js +++ /dev/null @@ -1,159 +0,0 @@ -LOG.inform("XMLDOC.DomReader loaded"); - -XMLDOC.DomReader = function(root) { - - this.dom = root; - - /** - * The current node the reader is on - */ - this.node = root; - - /** - * Get the current node the reader is on - * @type XMLDOC.Parser.node - */ - XMLDOC.DomReader.prototype.getNode = function() { - return this.node; - }; - - /** - * Set the node the reader should be positioned on. - * @param node {XMLDOC.Parser.node} - */ - XMLDOC.DomReader.prototype.setNode = function(node) { - this.node = node; - }; - - /** - * A helper method to make sure the current node will - * never return null, unless null is passed as the root. - * @param step {String} An expression to evaluate - should return a node or null - */ - XMLDOC.DomReader.prototype.navigate = function(step) { - var n; - if ((n = step) != null) - { - this.node = n; - return this.node; - } - return null; - }; - - /** - * Get the root node of the current node's document. - */ - XMLDOC.DomReader.prototype.root = function() { - this.navigate(this.dom); - }; - - /** - * Get the parent of the current node. - */ - XMLDOC.DomReader.prototype.parent = function() { - return this.navigate(this.node.parentNode()); - }; - - /** - * Get the first child of the current node. - */ - XMLDOC.DomReader.prototype.firstChild = function() { - return this.navigate(this.node.firstChild()); - }; - - /** - * Get the last child of the current node. - */ - XMLDOC.DomReader.prototype.lastChild = function() { - return this.navigate(this.node.lastChild()); - }; - - /** - * Get the next sibling of the current node. - */ - XMLDOC.DomReader.prototype.nextSibling = function() { - return this.navigate(this.node.nextSibling()); - }; - - /** - * Get the previous sibling of the current node. - */ - XMLDOC.DomReader.prototype.prevSibling = function() { - return this.navigate(this.node.prevSibling()); - }; - - //=============================================================================================== - // Support methods - - /** - * Walk the tree starting with the current node, calling the plug-in for - * each node visited. Each time the plug-in is called, the DomReader - * is passed as the only parameter. Use the {@link XMLDOC.DomReader#getNode} method - * to access the current node. This method uses a depth first traversal pattern. - * - * @param srcFile {String} The source file being evaluated - */ - XMLDOC.DomReader.prototype.getSymbols = function(srcFile) - { - XMLDOC.DomReader.symbols = []; - XMLDOC.DomReader.currentFile = srcFile; - JSDOC.Symbol.srcFile = (srcFile || ""); - - if (defined(JSDOC.PluginManager)) { - JSDOC.PluginManager.run("onDomGetSymbols", this); - } - - return XMLDOC.DomReader.symbols; - }; - - /** - * Find the node with the given name using a depth first traversal. - * Does not modify the DomReader's current node. - * - * @param name {String} The name of the node to find - * @return the node that was found, or null if not found - */ - XMLDOC.DomReader.prototype.findNode = function(name) - { - var findNode = null; - - // Start at the current node and move into the subtree, - // looking for the node with the given name - function deeper(node, find) - { - var look = null; - - if (node) { - if (node.name == find) - { - return node; - } - - if (node.firstChild()) - { - look = deeper(node.firstChild(), find); - } - - if (!look && node.nextSibling()) - { - look = deeper(node.nextSibling(), find); - } - } - - return look; - } - - return deeper(this.getNode().firstChild(), name); - }; - - /** - * Find the next node with the given name using a depth first traversal. - * - * @param name {String} The name of the node to find - */ - XMLDOC.DomReader.prototype.findPreviousNode = function(name) - { - }; - -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC/XMLDoc.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC/XMLDoc.js deleted file mode 100644 index e9b3e3ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC/XMLDoc.js +++ /dev/null @@ -1,16 +0,0 @@ -LOG.inform("XMLDOC.symbolize loaded"); - -/** - * Convert the source file to a set of symbols - */ -XMLDOC.symbolize = function(srcFile, src) { - - LOG.inform("Symbolizing file '" + srcFile + "'"); - - // XML files already have a defined structure, so we don't need to - // do anything but parse them. The DOM reader can create a symbol - // table from the parsed XML. - var dr = new XMLDOC.DomReader(XMLDOC.Parser.parse(src)); - return dr.getSymbols(srcFile); - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC/XMLParse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC/XMLParse.js deleted file mode 100644 index 78e8f455..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/handlers/XMLDOC/XMLParse.js +++ /dev/null @@ -1,292 +0,0 @@ -LOG.inform("XMLDOC.Parser loaded"); - -/** - * XML Parser object. Returns an {@link #XMLDOC.Parser.node} which is - * the root element of the parsed document. - *

      - * By default, this parser will only handle well formed XML. To - * allow the parser to handle HTML, set the XMLDOC.Parser.strictMode - * variable to false before calling XMLDOC.Parser.parse(). - *

      - * Note: If you pass poorly formed XML, it will cause the parser to throw - * an exception. - * - * @author Brett Fattori (bfattori@fry.com) - * @author $Author: micmath $ - * @version $Revision: 497 $ - */ -XMLDOC.Parser = {}; - -/** - * Strict mode setting. Setting this to false allows HTML-style source to - * be parsed. Normally, well formed XML has defined end tags, or empty tags - * are properly formed. Default: true - * @type Boolean - */ -XMLDOC.Parser.strictMode = true; - -/** - * A node in an XML Document. Node types are ROOT, ELEMENT, COMMENT, PI, and TEXT. - * @param parent {XMLDOC.Parser.node} The parent node - * @param name {String} The node name - * @param type {String} One of the types - */ -XMLDOC.Parser.node = function(parent, name, type) -{ - this.name = name; - this.type = type || "ELEMENT"; - this.parent = parent; - this.charData = ""; - this.attrs = {}; - this.nodes = []; - this.cPtr = 0; - - XMLDOC.Parser.node.prototype.getAttributeNames = function() { - var a = []; - for (var o in this.attrs) - { - a.push(o); - } - - return a; - }; - - XMLDOC.Parser.node.prototype.getAttribute = function(attr) { - return this.attrs[attr]; - }; - - XMLDOC.Parser.node.prototype.setAttribute = function(attr, val) { - this.attrs[attr] = val; - }; - - XMLDOC.Parser.node.prototype.getChild = function(idx) { - return this.nodes[idx]; - }; - - XMLDOC.Parser.node.prototype.parentNode = function() { - return this.parent; - }; - - XMLDOC.Parser.node.prototype.firstChild = function() { - return this.nodes[0]; - }; - - XMLDOC.Parser.node.prototype.lastChild = function() { - return this.nodes[this.nodes.length - 1]; - }; - - XMLDOC.Parser.node.prototype.nextSibling = function() { - var p = this.parent; - if (p && (p.nodes.indexOf(this) + 1 != p.nodes.length)) - { - return p.getChild(p.nodes.indexOf(this) + 1); - } - return null; - }; - - XMLDOC.Parser.node.prototype.prevSibling = function() { - var p = this.parent; - if (p && (p.nodes.indexOf(this) - 1 >= 0)) - { - return p.getChild(p.nodes.indexOf(this) - 1); - } - return null; - }; -}; - -/** - * Parse an XML Document from the specified source. The XML should be - * well formed, unless strict mode is disabled, then the parser will - * handle HTML-style XML documents. - * @param src {String} The source to parse - */ -XMLDOC.Parser.parse = function(src) -{ - var A = []; - - // Normailize whitespace - A = src.split("\r\n"); - src = A.join("\n"); - A = src.split("\r"); - src = A.join("\n"); - - // Remove XML and DOCTYPE specifier - src.replace(/<\?XML .*\?>/i, ""); - src.replace(//i, ""); - - // The document is the root node and cannot be modified or removed - var doc = new XMLDOC.Parser.node(null, "ROOT", "DOCUMENT"); - - // Let's break it down - XMLDOC.Parser.eat(doc, src); - - return doc; -}; - -/** - * The XML fragment processing routine. This method is private and should not be called - * directly. - * @param parentNode {XMLDOC.Parser.node} The node which is the parent of this fragment - * @param src {String} The source within the fragment to process - * @private - */ -XMLDOC.Parser.eat = function(parentNode, src) -{ - // A simple tag def - var reTag = new RegExp("<(!|)(\\?|--|)((.|\\s)*?)\\2>","g"); - - // Special tag types - var reCommentTag = //; - var rePITag = /<\?((.|\s)*?)\?>/; - - // A start tag (with potential empty marker) - var reStartTag = /<(.*?)( +([\w_\-]*)=(\"|')(.*)\4)*(\/)?>/; - - // An empty HTML style tag (not proper XML, but we'll accept it so we can process HTML) - var reHTMLEmptyTag = /<(.*?)( +([\w_\-]*)=(\"|')(.*)\4)*>/; - - // Fully enclosing tag with nested tags - var reEnclosingTag = /<(.*?)( +([\w_\-]*)=(\"|')(.*?)\4)*>((.|\s)*?)<\/\1>/; - - // Breaks down attributes - var reAttributes = new RegExp(" +([\\w_\\-]*)=(\"|')(.*?)\\2","g"); - - // Find us a tag - var tag; - while ((tag = reTag.exec(src)) != null) - { - if (tag.index > 0) - { - // The next tag has some text before it - var text = src.substring(0, tag.index).replace(/^[ \t\n]+((.|\n)*?)[ \t\n]+$/, "$1"); - - if (text.length > 0 && (text != "\n")) - { - var txtnode = new XMLDOC.Parser.node(parentNode, "", "TEXT"); - txtnode.charData = text; - - // Append the new text node - parentNode.nodes.push(txtnode); - } - - // Reset the lastIndex of reTag - reTag.lastIndex -= src.substring(0, tag.index).length; - - // Eat the text - src = src.substring(tag.index); - } - - if (reCommentTag.test(tag[0])) - { - // Is this a comment? - var comment = new XMLDOC.Parser.node(parentNode, "", "COMMENT"); - comment.charData = reCommentTag.exec(tag[0])[1]; - - // Append the comment - parentNode.nodes.push(comment); - - // Move the lastIndex of reTag - reTag.lastIndex -= tag[0].length; - - // Eat the tag - src = src.replace(reCommentTag, ""); - } - else if (rePITag.test(tag[0])) - { - // Is this a processing instruction? - var pi = new XMLDOC.Parser.node(parentNode, "", "PI"); - pi.charData = rePITag.exec(tag[0])[1]; - - // Append the processing instruction - parentNode.nodes.push(pi); - - // Move the lastIndex of reTag - reTag.lastIndex -= tag[0].length; - - // Eat the tag - src = src.replace(rePITag, ""); - } - else if (reStartTag.test(tag[0])) - { - // Break it down - var e = reStartTag.exec(tag[0]); - var elem = new XMLDOC.Parser.node(parentNode, e[1], "ELEMENT"); - - // Get attributes from the tag - var a; - while ((a = reAttributes.exec(e[2])) != null ) - { - elem.attrs[a[1]] = a[3]; - } - - // Is this an empty XML-style tag? - if (e[6] == "/") - { - // Append the empty element - parentNode.nodes.push(elem); - - // Move the lastIndex of reTag (include the start tag length) - reTag.lastIndex -= e[0].length; - - // Eat the tag - src = src.replace(reStartTag, ""); - } - else - { - // Check for malformed XML tags - var htmlParsed = false; - var htmlStartTag = reHTMLEmptyTag.exec(src); - - // See if there isn't an end tag within this block - var reHTMLEndTag = new RegExp(""); - var htmlEndTag = reHTMLEndTag.exec(src); - - if (XMLDOC.Parser.strictMode && htmlEndTag == null) - { - // Poorly formed XML fails in strict mode - var err = new Error("Malformed XML passed to XMLDOC.Parser... Error contains malformed 'src'"); - err.src = src; - throw err; - } - else if (htmlEndTag == null) - { - // This is an HTML-style empty tag, store the element for it in non-strict mode - parentNode.nodes.push(elem); - - // Eat the tag - src = src.replace(reHTMLEmptyTag, ""); - htmlParsed = true; - } - - // If we didn't parse HTML-style, it must be an enclosing tag - if (!htmlParsed) - { - var enc = reEnclosingTag.exec(src); - - // Go deeper into the document - XMLDOC.Parser.eat(elem, enc[6]); - - // Append the new element node - parentNode.nodes.push(elem); - - // Eat the tag - src = src.replace(reEnclosingTag, ""); - } - } - - // Reset the lastIndex of reTag - reTag.lastIndex = 0; - } - } - - // No tag was found... append the text if there is any - src = src.replace(/^[ \t\n]+((.|\n)*?)[ \t\n]+$/, "$1"); - if (src.length > 0 && (src != "\n")) - { - var txtNode = new XMLDOC.Parser.node(parentNode, "", "TEXT"); - txtNode.charData = src; - - // Append the new text node - parentNode.nodes.push(txtNode); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC.js deleted file mode 100644 index 5de7b9ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC.js +++ /dev/null @@ -1,106 +0,0 @@ -/** - @overview - @date $Date: 2010-06-13 22:02:44 +0100 (Sun, 13 Jun 2010) $ - @version $Revision: 837 $ - @location $HeadURL: https://jsdoc-toolkit.googlecode.com/svn/tags/jsdoc_toolkit-2.4.0/jsdoc-toolkit/app/lib/JSDOC.js $ - @name JSDOC.js - */ - -/** - This is the main container for the JSDOC application. - @namespace -*/ -JSDOC = { -}; - -/** - @requires Opt - */ -if (typeof arguments == "undefined") arguments = []; -JSDOC.opt = Opt.get( - arguments, - { - a: "allfunctions", - c: "conf", - d: "directory", - "D[]": "define", - e: "encoding", - "E[]": "exclude", - h: "help", - m: "multiple", - n: "nocode", - o: "out", - p: "private", - q: "quiet", - r: "recurse", - S: "securemodules", - s: "suppress", - t: "template", - T: "testmode", - u: "unique", - v: "verbose", - x: "ext" - } -); - -/** The current version string of this application. */ -JSDOC.VERSION = "2.4.0"; - -/** Print out usage information and quit. */ -JSDOC.usage = function() { - print("USAGE: java -jar jsrun.jar app/run.js [OPTIONS] ..."); - print(""); - print("OPTIONS:"); - print(" -a or --allfunctions\n Include all functions, even undocumented ones.\n"); - print(" -c or --conf\n Load a configuration file.\n"); - print(" -d= or --directory=\n Output to this directory (defaults to \"out\").\n"); - print(" -D=\"myVar:My value\" or --define=\"myVar:My value\"\n Multiple. Define a variable, available in JsDoc as JSDOC.opt.D.myVar.\n"); - print(" -e= or --encoding=\n Use this encoding to read and write files.\n"); - print(" -E=\"REGEX\" or --exclude=\"REGEX\"\n Multiple. Exclude files based on the supplied regex.\n"); - print(" -h or --help\n Show this message and exit.\n"); - print(" -m or --multiples\n Don't warn about symbols being documented more than once.\n"); - print(" -n or --nocode\n Ignore all code, only document comments with @name tags.\n"); - print(" -o= or --out=\n Print log messages to a file (defaults to stdout).\n"); - print(" -p or --private\n Include symbols tagged as private, underscored and inner symbols.\n"); - print(" -q or --quiet\n Do not output any messages, not even warnings.\n"); - print(" -r= or --recurse=\n Descend into src directories.\n"); - print(" -s or --suppress\n Suppress source code output.\n"); - print(" -S or --securemodules\n Use Secure Modules mode to parse source code.\n"); - print(" -t= or --template=\n Required. Use this template to format the output.\n"); - print(" -T or --test\n Run all unit tests and exit.\n"); - print(" -u or --unique\n Force file names to be unique, but not based on symbol names.\n"); - print(" -v or --verbose\n Provide verbose feedback about what is happening.\n"); - print(" -x=[,EXT]... or --ext=[,EXT]...\n Scan source files with the given extension/s (defaults to js).\n"); - - quit(); -} - -/*t: - plan(4, "Testing JSDOC namespace."); - - is( - typeof JSDOC, - "object", - "JSDOC.usage is a function." - ); - - is( - typeof JSDOC.VERSION, - "string", - "JSDOC.VERSION is a string." - ); - - is( - typeof JSDOC.usage, - "function", - "JSDOC.usage is a function." - ); - - is( - typeof JSDOC.opt, - "object", - "JSDOC.opt is a object." - ); - */ - -if (this.IO) IO.includeDir("lib/JSDOC/"); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/DocComment.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/DocComment.js deleted file mode 100644 index 4b21cd71..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/DocComment.js +++ /dev/null @@ -1,204 +0,0 @@ -if (typeof JSDOC == "undefined") JSDOC = {}; - -/** - Create a new DocComment. This takes a raw documentation comment, - and wraps it in useful accessors. - @class Represents a documentation comment object. - */ -JSDOC.DocComment = function(/**String*/comment) { - this.init(); - if (typeof comment != "undefined") { - this.parse(comment); - } -} - -JSDOC.DocComment.prototype.init = function() { - this.isUserComment = true; - this.src = ""; - this.meta = ""; - this.tagTexts = []; - this.tags = []; -} - -/** - @requires JSDOC.DocTag - */ -JSDOC.DocComment.prototype.parse = function(/**String*/comment) { - if (comment == "") { - comment = "/** @desc */"; - this.isUserComment = false; - } - - this.src = JSDOC.DocComment.unwrapComment(comment); - - this.meta = ""; - if (this.src.indexOf("#") == 0) { - this.src.match(/#(.+[+-])([\s\S]*)$/); - if (RegExp.$1) this.meta = RegExp.$1; - if (RegExp.$2) this.src = RegExp.$2; - } - - if (typeof JSDOC.PluginManager != "undefined") { - JSDOC.PluginManager.run("onDocCommentSrc", this); - } - - this.fixDesc(); - - this.src = JSDOC.DocComment.shared+"\n"+this.src; - - this.tagTexts = - this.src - .split(/(^|[\r\n])\s*@/) - .filter(function($){return $.match(/\S/)}); - - /** - The tags found in the comment. - @type JSDOC.DocTag[] - */ - this.tags = this.tagTexts.map(function($){return new JSDOC.DocTag($)}); - - if (typeof JSDOC.PluginManager != "undefined") { - JSDOC.PluginManager.run("onDocCommentTags", this); - } -} - -/*t: - plan(5, "testing JSDOC.DocComment"); - requires("../frame/String.js"); - requires("../lib/JSDOC/DocTag.js"); - - var com = new JSDOC.DocComment("/**@foo some\n* comment here*"+"/"); - is(com.tagTexts[0], "foo some\ncomment here", "first tag text is found."); - is(com.tags[0].title, "foo", "the title is found in a comment with one tag."); - - var com = new JSDOC.DocComment("/** @foo first\n* @bar second*"+"/"); - is(com.getTag("bar").length, 1, "getTag() returns one tag by that title."); - - JSDOC.DocComment.shared = "@author John Smith"; - var com = new JSDOC.DocComment("/**@foo some\n* comment here*"+"/"); - is(com.tags[0].title, "author", "shared comment is added."); - is(com.tags[1].title, "foo", "shared comment is added to existing tag."); -*/ - -/** - If no @desc tag is provided, this function will add it. - */ -JSDOC.DocComment.prototype.fixDesc = function() { - if (this.meta && this.meta != "@+") return; - if (/^\s*[^@\s]/.test(this.src)) { - this.src = "@desc "+this.src; - } -} - -/*t: - plan(5, "testing JSDOC.DocComment#fixDesc"); - - var com = new JSDOC.DocComment(); - - com.src = "this is a desc\n@author foo"; - com.fixDesc(); - is(com.src, "@desc this is a desc\n@author foo", "if no @desc tag is provided one is added."); - - com.src = "x"; - com.fixDesc(); - is(com.src, "@desc x", "if no @desc tag is provided one is added to a single character."); - - com.src = "\nx"; - com.fixDesc(); - is(com.src, "@desc \nx", "if no @desc tag is provided one is added to return and character."); - - com.src = " "; - com.fixDesc(); - is(com.src, " ", "if no @desc tag is provided one is not added to just whitespace."); - - com.src = ""; - com.fixDesc(); - is(com.src, "", "if no @desc tag is provided one is not added to empty."); -*/ - -/** - Remove slash-star comment wrapper from a raw comment string. - @type String - */ -JSDOC.DocComment.unwrapComment = function(/**String*/comment) { - if (!comment) return ""; - var unwrapped = comment.replace(/(^\/\*\*|\*\/$)/g, "").replace(/^\s*\* ?/gm, ""); - return unwrapped; -} - -/*t: - plan(5, "testing JSDOC.DocComment.unwrapComment"); - - var com = "/**x*"+"/"; - var unwrapped = JSDOC.DocComment.unwrapComment(com); - is(unwrapped, "x", "a single character jsdoc is found."); - - com = "/***x*"+"/"; - unwrapped = JSDOC.DocComment.unwrapComment(com); - is(unwrapped, "x", "three stars are allowed in the opener."); - - com = "/****x*"+"/"; - unwrapped = JSDOC.DocComment.unwrapComment(com); - is(unwrapped, "*x", "fourth star in the opener is kept."); - - com = "/**x\n * y\n*"+"/"; - unwrapped = JSDOC.DocComment.unwrapComment(com); - is(unwrapped, "x\ny\n", "leading stars and spaces are trimmed."); - - com = "/**x\n * y\n*"+"/"; - unwrapped = JSDOC.DocComment.unwrapComment(com); - is(unwrapped, "x\n y\n", "only first space after leading stars are trimmed."); -*/ - -/** - Provides a printable version of the comment. - @type String - */ -JSDOC.DocComment.prototype.toString = function() { - return this.src; -} - -/*t: - plan(1, "testing JSDOC.DocComment#fixDesc"); - var com = new JSDOC.DocComment(); - com.src = "foo"; - is(""+com, "foo", "stringifying a comment returns the unwrapped src."); -*/ - -/** - Given the title of a tag, returns all tags that have that title. - @type JSDOC.DocTag[] - */ -JSDOC.DocComment.prototype.getTag = function(/**String*/tagTitle) { - return this.tags.filter(function($){return $.title == tagTitle}); -} - -JSDOC.DocComment.prototype.deleteTag = function(/**String*/tagTitle) { - this.tags = this.tags.filter(function($){return $.title != tagTitle}) -} - -/*t: - plan(1, "testing JSDOC.DocComment#getTag"); - requires("../frame/String.js"); - requires("../lib/JSDOC/DocTag.js"); - - var com = new JSDOC.DocComment("/**@foo some\n* @bar\n* @bar*"+"/"); - is(com.getTag("bar").length, 2, "getTag returns expected number of tags."); -*/ - -/** - Used to store the currently shared tag text. -*/ -JSDOC.DocComment.shared = ""; - -/*t: - plan(2, "testing JSDOC.DocComment.shared"); - requires("../frame/String.js"); - requires("../lib/JSDOC/DocTag.js"); - - JSDOC.DocComment.shared = "@author Michael"; - - var com = new JSDOC.DocComment("/**@foo\n* @foo*"+"/"); - is(com.getTag("author").length, 1, "getTag returns shared tag."); - is(com.getTag("foo").length, 2, "getTag returns unshared tags too."); -*/ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/DocTag.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/DocTag.js deleted file mode 100644 index 77ec07ca..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/DocTag.js +++ /dev/null @@ -1,294 +0,0 @@ -if (typeof JSDOC == "undefined") JSDOC = {}; - -/** - @constructor - */ -JSDOC.DocTag = function(src) { - this.init(); - if (typeof src != "undefined") { - this.parse(src); - } -} - -/** - Create and initialize the properties of this. - */ -JSDOC.DocTag.prototype.init = function() { - this.title = ""; - this.type = ""; - this.name = ""; - this.isOptional = false; - this.defaultValue = ""; - this.desc = ""; - - return this; -} - -/** - Populate the properties of this from the given tag src. - @param {string} src - */ -JSDOC.DocTag.prototype.parse = function(src) { - if (typeof src != "string") throw "src must be a string not "+(typeof src); - - try { - src = this.nibbleTitle(src); - if (JSDOC.PluginManager) { - JSDOC.PluginManager.run("onDocTagSynonym", this); - } - - src = this.nibbleType(src); - - // only some tags are allowed to have names. - if (this.title == "param" || this.title == "property" || this.title == "config") { // @config is deprecated - src = this.nibbleName(src); - } - } - catch(e) { - if (LOG) LOG.warn(e); - else throw e; - } - this.desc = src; // whatever is left - - // example tags need to have whitespace preserved - if (this.title != "example") this.desc = this.desc.trim(); - - if (JSDOC.PluginManager) { - JSDOC.PluginManager.run("onDocTag", this); - } -} - -/** - Automatically called when this is stringified. - */ -JSDOC.DocTag.prototype.toString = function() { - return this.desc; -} - -/*t: - plan(1, "testing JSDOC.DocTag#toString"); - - var tag = new JSDOC.DocTag("param {object} date A valid date."); - is(""+tag, "A valid date.", "stringifying a tag returns the desc."); - */ - -/** - Find and shift off the title of a tag. - @param {string} src - @return src - */ -JSDOC.DocTag.prototype.nibbleTitle = function(src) { - if (typeof src != "string") throw "src must be a string not "+(typeof src); - - var parts = src.match(/^\s*(\S+)(?:\s([\s\S]*))?$/); - - if (parts && parts[1]) this.title = parts[1]; - if (parts && parts[2]) src = parts[2]; - else src = ""; - - return src; -} - -/*t: - plan(8, "testing JSDOC.DocTag#nibbleTitle"); - - var tag = new JSDOC.DocTag(); - - tag.init().nibbleTitle("aTitleGoesHere"); - is(tag.title, "aTitleGoesHere", "a title can be found in a single-word string."); - - var src = tag.init().nibbleTitle("aTitleGoesHere and the rest"); - is(tag.title, "aTitleGoesHere", "a title can be found in a multi-word string."); - is(src, "and the rest", "the rest is returned when the title is nibbled off."); - - src = tag.init().nibbleTitle(""); - is(tag.title, "", "given an empty string the title is empty."); - is(src, "", "the rest is empty when the tag is empty."); - - var src = tag.init().nibbleTitle(" aTitleGoesHere\n a description"); - is(tag.title, "aTitleGoesHere", "leading and trailing spaces are not part of the title."); - is(src, " a description", "leading spaces (less one) are part of the description."); - - tag.init().nibbleTitle("a.Title::Goes_Here foo"); - is(tag.title, "a.Title::Goes_Here", "titles with punctuation are allowed."); - */ - -/** - Find and shift off the type of a tag. - @requires frame/String.js - @param {string} src - @return src - */ -JSDOC.DocTag.prototype.nibbleType = function(src) { - if (typeof src != "string") throw "src must be a string not "+(typeof src); - - if (src.match(/^\s*\{/)) { - var typeRange = src.balance("{", "}"); - if (typeRange[1] == -1) { - throw "Malformed comment tag ignored. Tag type requires an opening { and a closing }: "+src; - } - this.type = src.substring(typeRange[0]+1, typeRange[1]).trim(); - this.type = this.type.replace(/\s*,\s*/g, "|"); // multiples can be separated by , or | - src = src.substring(typeRange[1]+1); - } - - return src; -} - -/*t: - plan(5, "testing JSDOC.DocTag.parser.nibbleType"); - requires("../frame/String.js"); - - var tag = new JSDOC.DocTag(); - - tag.init().nibbleType("{String[]} aliases"); - is(tag.type, "String[]", "type can have non-alpha characters."); - - tag.init().nibbleType("{ aTypeGoesHere } etc etc"); - is(tag.type, "aTypeGoesHere", "type is trimmed."); - - tag.init().nibbleType("{ oneType, twoType ,\n threeType } etc etc"); - is(tag.type, "oneType|twoType|threeType", "multiple types can be separated by commas."); - - var error; - try { tag.init().nibbleType("{widget foo"); } - catch(e) { error = e; } - is(typeof error, "string", "malformed tag type throws error."); - isnt(error.indexOf("Malformed"), -1, "error message tells tag is malformed."); - */ - -/** - Find and shift off the name of a tag. - @requires frame/String.js - @param {string} src - @return src - */ -JSDOC.DocTag.prototype.nibbleName = function(src) { - if (typeof src != "string") throw "src must be a string not "+(typeof src); - - src = src.trim(); - - // is optional? - if (src.charAt(0) == "[") { - var nameRange = src.balance("[", "]"); - if (nameRange[1] == -1) { - throw "Malformed comment tag ignored. Tag optional name requires an opening [ and a closing ]: "+src; - } - this.name = src.substring(nameRange[0]+1, nameRange[1]).trim(); - this.isOptional = true; - - src = src.substring(nameRange[1]+1); - - // has default value? - var nameAndValue = this.name.split("="); - if (nameAndValue.length) { - this.name = nameAndValue.shift().trim(); - this.defaultValue = nameAndValue.join("="); - } - } - else { - var parts = src.match(/^(\S+)(?:\s([\s\S]*))?$/); - if (parts) { - if (parts[1]) this.name = parts[1]; - if (parts[2]) src = parts[2].trim(); - else src = ""; - } - } - - return src; -} - -/*t: - requires("../frame/String.js"); - plan(9, "testing JSDOC.DocTag.parser.nibbleName"); - - var tag = new JSDOC.DocTag(); - - tag.init().nibbleName("[foo] This is a description."); - is(tag.isOptional, true, "isOptional syntax is detected."); - is(tag.name, "foo", "optional param name is found."); - - tag.init().nibbleName("[foo] This is a description."); - is(tag.isOptional, true, "isOptional syntax is detected when no type."); - is(tag.name, "foo", "optional param name is found when no type."); - - tag.init().nibbleName("[foo=7] This is a description."); - is(tag.name, "foo", "optional param name is found when default value."); - is(tag.defaultValue, 7, "optional param default value is found when default value."); - - //tag.init().nibbleName("[foo= a value] This is a description."); - //is(tag.defaultValue, " a value", "optional param default value is found when default value has spaces (issue #112)."); - - tag.init().nibbleName("[foo=[]] This is a description."); - is(tag.defaultValue, "[]", "optional param default value is found when default value is [] (issue #95)."); - - tag.init().nibbleName("[foo=a=b] This is a description."); - is(tag.name, "foo", "optional param name is found when default value is a=b."); - is(tag.defaultValue, "a=b", "optional param default value is found when default value is a=b.") - */ - -/*t: - plan(32, "Testing JSDOC.DocTag.parser."); - requires("../frame/String.js"); - - var tag = new JSDOC.DocTag(); - - is(typeof tag, "object", "JSDOC.DocTag.parser with an empty string returns an object."); - is(typeof tag.title, "string", "returned object has a string property 'title'."); - is(typeof tag.type, "string", "returned object has a string property 'type'."); - is(typeof tag.name, "string", "returned object has a string property 'name'."); - is(typeof tag.defaultValue, "string", "returned object has a string property 'defaultValue'."); - is(typeof tag.isOptional, "boolean", "returned object has a boolean property 'isOptional'."); - is(typeof tag.desc, "string", "returned object has a string property 'desc'."); - - tag = new JSDOC.DocTag("param {widget} foo"); - is(tag.title, "param", "param title is found."); - is(tag.name, "foo", "param name is found when desc is missing."); - is(tag.desc, "", "param desc is empty when missing."); - - tag = new JSDOC.DocTag("param {object} date A valid date."); - is(tag.name, "date", "param name is found with a type."); - is(tag.type, "object", "param type is found."); - is(tag.desc, "A valid date.", "param desc is found with a type."); - - tag = new JSDOC.DocTag("param aName a description goes\n here."); - is(tag.name, "aName", "param name is found without a type."); - is(tag.desc, "a description goes\n here.", "param desc is found without a type."); - - tag = new JSDOC.DocTag("param {widget}"); - is(tag.name, "", "param name is empty when it is not given."); - - tag = new JSDOC.DocTag("param {widget} [foo] This is a description."); - is(tag.name, "foo", "optional param name is found."); - - tag = new JSDOC.DocTag("return {aType} This is a description."); - is(tag.type, "aType", "when return tag has no name, type is found."); - is(tag.desc, "This is a description.", "when return tag has no name, desc is found."); - - tag = new JSDOC.DocTag("author Joe Coder "); - is(tag.title, "author", "author tag has a title."); - is(tag.type, "", "the author tag has no type."); - is(tag.name, "", "the author tag has no name."); - is(tag.desc, "Joe Coder ", "author tag has desc."); - - tag = new JSDOC.DocTag("private \t\n "); - is(tag.title, "private", "private tag has a title."); - is(tag.type, "", "the private tag has no type."); - is(tag.name, "", "the private tag has no name."); - is(tag.desc, "", "private tag has no desc."); - - tag = new JSDOC.DocTag("example\n example(code);\n more();"); - is(tag.desc, " example(code);\n more();", "leading whitespace (less one) in examples code is preserved."); - - tag = new JSDOC.DocTag("param theName \n"); - is(tag.name, "theName", "name only is found."); - - tag = new JSDOC.DocTag("type theDesc \n"); - is(tag.desc, "theDesc", "desc only is found."); - - tag = new JSDOC.DocTag("type {theType} \n"); - is(tag.type, "theType", "type only is found."); - - tag = new JSDOC.DocTag(""); - is(tag.title, "", "title is empty when tag is empty."); - */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/JsDoc.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/JsDoc.js deleted file mode 100644 index 02275a69..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/JsDoc.js +++ /dev/null @@ -1,140 +0,0 @@ -/** - @constructor - @param [opt] Used to override the commandline options. Useful for testing. - @version $Id: JsDoc.js 831 2010-03-09 14:24:56Z micmath $ -*/ -JSDOC.JsDoc = function(/**object*/ opt) { - if (opt) { - JSDOC.opt = opt; - } - - if (JSDOC.opt.h) { - JSDOC.usage(); - quit(); - } - - // defend against options that are not sane - if (JSDOC.opt._.length == 0) { - LOG.warn("No source files to work on. Nothing to do."); - quit(); - } - if (JSDOC.opt.t === true || JSDOC.opt.d === true) { - JSDOC.usage(); - } - - if (typeof JSDOC.opt.d == "string") { - if (!JSDOC.opt.d.charAt(JSDOC.opt.d.length-1).match(/[\\\/]/)) { - JSDOC.opt.d = JSDOC.opt.d+"/"; - } - LOG.inform("Output directory set to '"+JSDOC.opt.d+"'."); - IO.mkPath(JSDOC.opt.d); - } - if (JSDOC.opt.e) IO.setEncoding(JSDOC.opt.e); - - // the -r option: scan source directories recursively - if (typeof JSDOC.opt.r == "boolean") JSDOC.opt.r = 10; - else if (!isNaN(parseInt(JSDOC.opt.r))) JSDOC.opt.r = parseInt(JSDOC.opt.r); - else JSDOC.opt.r = 1; - - // the -D option: define user variables - var D = {}; - if (JSDOC.opt.D) { - for (var i = 0; i < JSDOC.opt.D.length; i++) { - var param = JSDOC.opt.D[i]; - // remove first and last character if both == " - if ( - param.length > 1 - && param.charAt(0) == '"' - && param.charAt(param.length-1) == '"' - ) { - param = param.substr(1, param.length-2); - } - var defineParts = param.split(":"); - if (defineParts && defineParts.length > 1) { - for ( var dpIdx = 2; dpIdx < defineParts.length; dpIdx++ ) { - defineParts[1] += ':' + defineParts[dpIdx]; - } - D[defineParts[0]] = defineParts[1]; - } - } - } - JSDOC.opt.D = D; - // combine any conf file D options with the commandline D options - if (defined(JSDOC.conf)) for (var c in JSDOC.conf.D) { - if (!defined(JSDOC.opt.D[c])) { - JSDOC.opt.D[c] = JSDOC.conf.D[c]; - } - } - - // Give plugins a chance to initialize - if (defined(JSDOC.PluginManager)) { - JSDOC.PluginManager.run("onInit", JSDOC.opt); - } - - JSDOC.opt.srcFiles = JSDOC.JsDoc._getSrcFiles(); - JSDOC.JsDoc._parseSrcFiles(); - JSDOC.JsDoc.symbolSet = JSDOC.Parser.symbols; -} - -/** - Retrieve source file list. - @returns {String[]} The pathnames of the files to be parsed. - */ -JSDOC.JsDoc._getSrcFiles = function() { - JSDOC.JsDoc.srcFiles = []; - - var ext = ["js"]; - if (JSDOC.opt.x) { - ext = JSDOC.opt.x.split(",").map(function($) {return $.toLowerCase()}); - } - - for (var i = 0; i < JSDOC.opt._.length; i++) { - JSDOC.JsDoc.srcFiles = JSDOC.JsDoc.srcFiles.concat( - IO.ls(JSDOC.opt._[i], JSDOC.opt.r).filter( - function($) { - var thisExt = $.split(".").pop().toLowerCase(); - - if (JSDOC.opt.E) { - for(var n = 0; n < JSDOC.opt.E.length; n++) { - if ($.match(new RegExp(JSDOC.opt.E[n]))) { - LOG.inform("Excluding " + $); - return false; // if the file matches the regex then it's excluded. - } - } - } - - return (ext.indexOf(thisExt) > -1); // we're only interested in files with certain extensions - } - ) - ); - } - - return JSDOC.JsDoc.srcFiles; -} - -JSDOC.JsDoc._parseSrcFiles = function() { - JSDOC.Parser.init(); - for (var i = 0, l = JSDOC.JsDoc.srcFiles.length; i < l; i++) { - var srcFile = JSDOC.JsDoc.srcFiles[i]; - - if (JSDOC.opt.v) LOG.inform("Parsing file: " + srcFile); - - try { - var src = IO.readFile(srcFile); - } - catch(e) { - LOG.warn("Can't read source file '"+srcFile+"': "+e.message); - } - - var tr = new JSDOC.TokenReader(); - var ts = new JSDOC.TokenStream(tr.tokenize(new JSDOC.TextStream(src))); - - JSDOC.Parser.parse(ts, srcFile); - - } - JSDOC.Parser.finish(); - - if (JSDOC.PluginManager) { - JSDOC.PluginManager.run("onFinishedParsing", JSDOC.Parser.symbols); - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/JsPlate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/JsPlate.js deleted file mode 100644 index bcaebc9c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/JsPlate.js +++ /dev/null @@ -1,109 +0,0 @@ -/** - @constructor -*/ -JSDOC.JsPlate = function(templateFile) { - if (templateFile) this.template = IO.readFile(templateFile); - - this.templateFile = templateFile; - this.code = ""; - this.parse(); -} - -JSDOC.JsPlate.prototype.parse = function() { - this.template = this.template.replace(/\{#[\s\S]+?#\}/gi, ""); - this.code = "var output=\u001e"+this.template; - - this.code = this.code.replace( - //gi, - function (match, eachName, inName) { - return "\u001e;\rvar $"+eachName+"_keys = keys("+inName+");\rfor(var $"+eachName+"_i = 0; $"+eachName+"_i < $"+eachName+"_keys.length; $"+eachName+"_i++) {\rvar $"+eachName+"_last = ($"+eachName+"_i == $"+eachName+"_keys.length-1);\rvar $"+eachName+"_key = $"+eachName+"_keys[$"+eachName+"_i];\rvar "+eachName+" = "+inName+"[$"+eachName+"_key];\routput+=\u001e"; - } - ); - this.code = this.code.replace(//g, "\u001e;\rif ($1) { output+=\u001e"); - this.code = this.code.replace(//g, "\u001e;}\relse if ($1) { output+=\u001e"); - this.code = this.code.replace(//g, "\u001e;}\relse { output+=\u001e"); - this.code = this.code.replace(/<\/(if|for)>/g, "\u001e;\r};\routput+=\u001e"); - this.code = this.code.replace( - /\{\+\s*([\s\S]+?)\s*\+\}/gi, - function (match, code) { - code = code.replace(/"/g, "\u001e"); // prevent qoute-escaping of inline code - code = code.replace(/(\r?\n)/g, " "); - return "\u001e+ ("+code+") +\u001e"; - } - ); - this.code = this.code.replace( - /\{!\s*([\s\S]+?)\s*!\}/gi, - function (match, code) { - code = code.replace(/"/g, "\u001e"); // prevent qoute-escaping of inline code - code = code.replace(/(\n)/g, " "); - return "\u001e; "+code+";\routput+=\u001e"; - } - ); - this.code = this.code+"\u001e;"; - - this.code = this.code.replace(/(\r?\n)/g, "\\n"); - this.code = this.code.replace(/"/g, "\\\""); - this.code = this.code.replace(/\u001e/g, "\""); -} - -JSDOC.JsPlate.prototype.toCode = function() { - return this.code; -} - -JSDOC.JsPlate.keys = function(obj) { - var keys = []; - if (obj.constructor.toString().indexOf("Array") > -1) { - for (var i = 0; i < obj.length; i++) { - keys.push(i); - } - } - else { - for (var i in obj) { - keys.push(i); - } - } - return keys; -}; - -JSDOC.JsPlate.values = function(obj) { - var values = []; - if (obj.constructor.toString().indexOf("Array") > -1) { - for (var i = 0; i < obj.length; i++) { - values.push(obj[i]); - } - } - else { - for (var i in obj) { - values.push(obj[i]); - } - } - return values; -}; - -JSDOC.JsPlate.prototype.process = function(data, compact) { - var keys = JSDOC.JsPlate.keys; - var values = JSDOC.JsPlate.values; - - try { - eval(this.code); - } - catch (e) { - print(">> There was an error evaluating the compiled code from template: "+this.templateFile); - print(" The error was on line "+e.lineNumber+" "+e.name+": "+e.message); - var lines = this.code.split("\r"); - if (e.lineNumber-2 >= 0) print("line "+(e.lineNumber-1)+": "+lines[e.lineNumber-2]); - print("line "+e.lineNumber+": "+lines[e.lineNumber-1]); - print(""); - } - - if (compact) { // patch by mcbain.asm - // Remove lines that contain only space-characters, usually left by lines in the template - // which originally only contained JSPlate tags or code. This makes it easier to write - // non-tricky templates which still put out nice code (not bloated with extra lines). - // Lines purposely left blank (just a line ending) are left alone. - output = output.replace(/\s+?(\r?)\n/g, "$1\n"); - } - - /*debug*///print(this.code); - return output; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Lang.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Lang.js deleted file mode 100644 index 62919d7d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Lang.js +++ /dev/null @@ -1,144 +0,0 @@ -/** - @namespace -*/ -JSDOC.Lang = { -} - -JSDOC.Lang.isBuiltin = function(name) { - return (JSDOC.Lang.isBuiltin.coreObjects.indexOf(name) > -1); -} -JSDOC.Lang.isBuiltin.coreObjects = ['_global_', 'Array', 'Boolean', 'Date', 'Error', 'Function', 'Math', 'Number', 'Object', 'RegExp', 'String']; - -JSDOC.Lang.whitespace = function(ch) { - return JSDOC.Lang.whitespace.names[ch]; -} -JSDOC.Lang.whitespace.names = { - " ": "SPACE", - "\f": "FORMFEED", - "\t": "TAB", - "\u0009": "UNICODE_TAB", - "\u000A": "UNICODE_NBR", - "\u0008": "VERTICAL_TAB" -}; - -JSDOC.Lang.newline = function(ch) { - return JSDOC.Lang.newline.names[ch]; -} -JSDOC.Lang.newline.names = { - "\n": "NEWLINE", - "\r": "RETURN", - "\u000A": "UNICODE_LF", - "\u000D": "UNICODE_CR", - "\u2029": "UNICODE_PS", - "\u2028": "UNICODE_LS" -}; - -JSDOC.Lang.keyword = function(word) { - return JSDOC.Lang.keyword.names["="+word]; -} -JSDOC.Lang.keyword.names = { - "=break": "BREAK", - "=case": "CASE", - "=catch": "CATCH", - "=const": "VAR", - "=continue": "CONTINUE", - "=default": "DEFAULT", - "=delete": "DELETE", - "=do": "DO", - "=else": "ELSE", - "=false": "FALSE", - "=finally": "FINALLY", - "=for": "FOR", - "=function": "FUNCTION", - "=if": "IF", - "=in": "IN", - "=instanceof": "INSTANCEOF", - "=new": "NEW", - "=null": "NULL", - "=return": "RETURN", - "=switch": "SWITCH", - "=this": "THIS", - "=throw": "THROW", - "=true": "TRUE", - "=try": "TRY", - "=typeof": "TYPEOF", - "=void": "VOID", - "=while": "WHILE", - "=with": "WITH", - "=var": "VAR" -}; - -JSDOC.Lang.punc = function(ch) { - return JSDOC.Lang.punc.names[ch]; -} -JSDOC.Lang.punc.names = { - ";": "SEMICOLON", - ",": "COMMA", - "?": "HOOK", - ":": "COLON", - "||": "OR", - "&&": "AND", - "|": "BITWISE_OR", - "^": "BITWISE_XOR", - "&": "BITWISE_AND", - "===": "STRICT_EQ", - "==": "EQ", - "=": "ASSIGN", - "!==": "STRICT_NE", - "!=": "NE", - "<<": "LSH", - "<=": "LE", - "<": "LT", - ">>>": "URSH", - ">>": "RSH", - ">=": "GE", - ">": "GT", - "++": "INCREMENT", - "--": "DECREMENT", - "+": "PLUS", - "-": "MINUS", - "*": "MUL", - "/": "DIV", - "%": "MOD", - "!": "NOT", - "~": "BITWISE_NOT", - ".": "DOT", - "[": "LEFT_BRACKET", - "]": "RIGHT_BRACKET", - "{": "LEFT_CURLY", - "}": "RIGHT_CURLY", - "(": "LEFT_PAREN", - ")": "RIGHT_PAREN" -}; - -JSDOC.Lang.matching = function(name) { - return JSDOC.Lang.matching.names[name]; -} -JSDOC.Lang.matching.names = { - "LEFT_PAREN": "RIGHT_PAREN", - "RIGHT_PAREN": "LEFT_PAREN", - "LEFT_CURLY": "RIGHT_CURLY", - "RIGHT_CURLY": "LEFT_CURLY", - "LEFT_BRACE": "RIGHT_BRACE", - "RIGHT_BRACE": "LEFT_BRACE" -} - -JSDOC.Lang.isNumber = function(str) { - return /^(\.[0-9]|[0-9]+\.|[0-9])[0-9]*([eE][+-][0-9]+)?$/i.test(str); -} - -JSDOC.Lang.isHexDec = function(str) { - return /^0x[0-9A-F]+$/i.test(str); -} - -JSDOC.Lang.isWordChar = function(str) { - return /^[a-zA-Z0-9$_.]+$/.test(str); -} - -JSDOC.Lang.isSpace = function(str) { - return (typeof JSDOC.Lang.whitespace(str) != "undefined"); -} - -JSDOC.Lang.isNewline = function(str) { - return (typeof JSDOC.Lang.newline(str) != "undefined"); -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Parser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Parser.js deleted file mode 100644 index e489c61d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Parser.js +++ /dev/null @@ -1,146 +0,0 @@ -if (typeof JSDOC == "undefined") JSDOC = {}; - -/** - @namespace - @requires JSDOC.Walker - @requires JSDOC.Symbol - @requires JSDOC.DocComment -*/ -JSDOC.Parser = { - conf: { - ignoreCode: JSDOC.opt.n, - ignoreAnonymous: true, // factory: true - treatUnderscoredAsPrivate: true, // factory: true - explain: false // factory: false - }, - - addSymbol: function(symbol) { - - if (JSDOC.Parser.rename) { - for (var n in JSDOC.Parser.rename) { - if (symbol.alias.indexOf(n) == 0) { - if (symbol.name == symbol.alias) { - symbol.name = symbol.name.replace(n, JSDOC.Parser.rename[n]); - } - symbol.alias = symbol.alias.replace(n, JSDOC.Parser.rename[n]); - } - } - } - - if (JSDOC.opt.S) { - if (typeof JSDOC.Parser.secureModules == "undefined") JSDOC.Parser.secureModules = {}; - if (/^exports\./.test(symbol.alias)) { - symbol.srcFile.match(/(^|[\\\/])([^\\\/]+)\.js/i); - var fileNS = RegExp.$2; - - // need to create the namespace associated with this file first - if (!JSDOC.Parser.secureModules[fileNS]) { - JSDOC.Parser.secureModules[fileNS] = 1; - var nsSymbol = new JSDOC.Symbol(fileNS, [], "GLOBAL", new JSDOC.DocComment("")); - nsSymbol.isNamespace = true; - nsSymbol.srcFile = ""; - nsSymbol.isPrivate = false; - nsSymbol.srcFile = symbol.srcFile; - nsSymbol.desc = (JSDOC.Parser.symbols.getSymbol(symbol.srcFile) || {desc: ""}).desc; - JSDOC.Parser.addSymbol(nsSymbol); - } - - symbol.alias = symbol.alias.replace(/^exports\./, fileNS + '.'); - symbol.name = symbol.name.replace(/^exports\./, ''); - symbol.memberOf = fileNS; - symbol.isStatic = true; - } - } - - // if a symbol alias is documented more than once the first one with the user docs wins - if (JSDOC.Parser.symbols.hasSymbol(symbol.alias)) { - var oldSymbol = JSDOC.Parser.symbols.getSymbol(symbol.alias); - if (oldSymbol.comment.isUserComment) { - if (JSDOC.opt.m) return; - if (symbol.comment.isUserComment) { // old and new are both documented - LOG.warn("The symbol '"+symbol.alias+"' is documented more than once."); - return; - } - else { // old is documented but new isn't - return; - } - } - } - - // we don't document anonymous things - if (JSDOC.Parser.conf.ignoreAnonymous && symbol.name.match(/\$anonymous\b/)) return; - - // uderscored things may be treated as if they were marked private, this cascades - if (JSDOC.Parser.conf.treatUnderscoredAsPrivate && symbol.name.match(/[.#-]_[^.#-]+$/)) { - if (!symbol.comment.getTag("public").length > 0) symbol.isPrivate = true; - } - - // -p flag is required to document private things - if (!JSDOC.opt.p && symbol.isPrivate) return; // issue #161 fixed by mcbain.asm - - // ignored things are not documented, this doesn't cascade - if (symbol.isIgnored) return; - JSDOC.Parser.symbols.addSymbol(symbol); - }, - - addBuiltin: function(name) { - var builtin = new JSDOC.Symbol(name, [], "CONSTRUCTOR", new JSDOC.DocComment("")); - builtin.isNamespace = true; - builtin.srcFile = ""; - builtin.isPrivate = false; - JSDOC.Parser.addSymbol(builtin); - return builtin; - }, - - init: function() { - JSDOC.Parser.symbols = new JSDOC.SymbolSet(); - JSDOC.Parser.walker = new JSDOC.Walker(); - }, - - finish: function() { - JSDOC.Parser.symbols.relate(); - - // make a litle report about what was found - if (JSDOC.Parser.conf.explain) { - var symbols = JSDOC.Parser.symbols.toArray(); - var srcFile = ""; - for (var i = 0, l = symbols.length; i < l; i++) { - var symbol = symbols[i]; - if (srcFile != symbol.srcFile) { - srcFile = symbol.srcFile; - print("\n"+srcFile+"\n-------------------"); - } - print(i+":\n alias => "+symbol.alias + "\n name => "+symbol.name+ "\n isa => "+symbol.isa + "\n memberOf => " + symbol.memberOf + "\n isStatic => " + symbol.isStatic + ", isInner => " + symbol.isInner+ ", isPrivate => " + symbol.isPrivate); - } - print("-------------------\n"); - } - } -} - -JSDOC.Parser.parse = function(/**JSDOC.TokenStream*/ts, /**String*/srcFile) { - JSDOC.Symbol.srcFile = (srcFile || ""); - JSDOC.DocComment.shared = ""; // shared comments don't cross file boundaries - - if (!JSDOC.Parser.walker) JSDOC.Parser.init(); - JSDOC.Parser.walker.walk(ts); // adds to our symbols - - // filter symbols by option - for (var p = JSDOC.Parser.symbols._index.first(); p; p = JSDOC.Parser.symbols._index.next()) { - var symbol = p.value; - - if (!symbol) continue; - - if (symbol.is("FILE") || symbol.is("GLOBAL")) { - continue; - } - else if (!JSDOC.opt.a && !symbol.comment.isUserComment) { - JSDOC.Parser.symbols.deleteSymbol(symbol.alias); - } - - if (/#$/.test(symbol.alias)) { // we don't document prototypes - JSDOC.Parser.symbols.deleteSymbol(symbol.alias); - } - } - - return JSDOC.Parser.symbols.toArray(); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/PluginManager.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/PluginManager.js deleted file mode 100644 index 9c911931..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/PluginManager.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - @namespace Holds functionality related to running plugins. -*/ -JSDOC.PluginManager = { -} - -/** - @param name A unique name that identifies that plugin. - @param handlers A collection of named functions. The names correspond to hooks in the core code. -*/ -JSDOC.PluginManager.registerPlugin = function(/**String*/name, /**Object*/handlers) { - if (!defined(JSDOC.PluginManager.plugins)) - /** The collection of all plugins. Requires a unique name for each. - */ - JSDOC.PluginManager.plugins = {}; - - - JSDOC.PluginManager.plugins[name] = handlers; -} - -/** - @param hook The name of the hook that is being caught. - @param target Any object. This will be passed as the only argument to the handler whose - name matches the hook name. Handlers cannot return a value, so must modify the target - object to have an effect. -*/ -JSDOC.PluginManager.run = function(/**String*/hook, /**Mixed*/target) { - for (var name in JSDOC.PluginManager.plugins) { - if (defined(JSDOC.PluginManager.plugins[name][hook])) { - JSDOC.PluginManager.plugins[name][hook](target); - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Symbol.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Symbol.js deleted file mode 100644 index 1aa44da8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Symbol.js +++ /dev/null @@ -1,644 +0,0 @@ -if (typeof JSDOC == "undefined") JSDOC = {}; - -/** - Create a new Symbol. - @class Represents a symbol in the source code. - */ -JSDOC.Symbol = function() { - this.init(); - if (arguments.length) this.populate.apply(this, arguments); -} - -JSDOC.Symbol.count = 0; - -JSDOC.Symbol.prototype.init = function() { - this._name = ""; - this._params = []; - this.$args = []; - this.addOn = ""; - this.alias = ""; - this.augments = []; - this.author = ""; - this.classDesc = ""; - this.comment = {}; - this.defaultValue = undefined; - this.deprecated = ""; - this.desc = ""; - this.example = []; - this.exceptions = []; - this.fires = []; - this.id = JSDOC.Symbol.count++; - this.inherits = []; - this.inheritsFrom = []; - this.isa = "OBJECT"; - this.isConstant = false; - this.isEvent = false; - this.isIgnored = false; - this.isInner = false; - this.isNamespace = false; - this.isPrivate = false; - this.isStatic = false; - this.memberOf = ""; - this.methods = []; - this.properties = []; - this.requires = []; - this.returns = []; - this.see = []; - this.since = ""; - this.srcFile = {}; - this.type = ""; - this.version = ""; -} - -JSDOC.Symbol.prototype.serialize = function() { - var keys = []; - for (var p in this) { - keys.push (p); - } - keys = keys.sort(); - - var out = ""; - for (var i in keys) { - if (typeof this[keys[i]] == "function") continue; - out += keys[i]+" => "+Dumper.dump(this[keys[i]])+",\n"; - } - return "\n{\n" + out + "}\n"; -} - -JSDOC.Symbol.prototype.clone = function() { - var clone = new JSDOC.Symbol(); - clone.populate.apply(clone, this.$args); // repopulate using the original arguments - clone.srcFile = this.srcFile; // not the current srcFile, the one when the original was made - return clone; -} - -JSDOC.Symbol.prototype.__defineSetter__("name", - function(n) { n = n.replace(/^_global_[.#-]/, ""); n = n.replace(/\.prototype\.?/g, '#'); this._name = n; } -); -JSDOC.Symbol.prototype.__defineGetter__("name", - function() { return this._name; } -); -JSDOC.Symbol.prototype.__defineSetter__("params", - function(v) { - for (var i = 0, l = v.length; i < l; i++) { - if (v[i].constructor != JSDOC.DocTag) { // may be a generic object parsed from signature, like {type:..., name:...} - this._params[i] = new JSDOC.DocTag("param"+((v[i].type)?" {"+v[i].type+"}":"")+" "+v[i].name); - } - else { - this._params[i] = v[i]; - } - } - } -); -JSDOC.Symbol.prototype.__defineGetter__("params", - function() { return this._params; } -); - -JSDOC.Symbol.prototype.getEvents = function() { - var events = []; - for (var i = 0, l = this.methods.length; i < l; i++) { - if (this.methods[i].isEvent) { - this.methods[i].name = this.methods[i].name.replace("event:", ""); - events.push(this.methods[i]); - } - } - return events; -} - -JSDOC.Symbol.prototype.getMethods = function() { - var nonEvents = []; - for (var i = 0, l = this.methods.length; i < l; i++) { - if (!this.methods[i].isEvent) { - nonEvents.push(this.methods[i]); - } - } - return nonEvents; -} - - -JSDOC.Symbol.prototype.populate = function( - /** String */ name, - /** Object[] */ params, - /** String */ isa, - /** JSDOC.DocComment */ comment -) { - this.$args = arguments; - - this.name = name; - this.alias = this.name; - - this.params = params; - this.isa = (isa == "VIRTUAL")? "OBJECT":isa; - this.comment = comment || new JSDOC.DocComment(""); - this.srcFile = JSDOC.Symbol.srcFile; - - if (this.is("FILE") && !this.alias) this.alias = this.srcFile; - - this.setTags(); - - if (typeof JSDOC.PluginManager != "undefined") { - JSDOC.PluginManager.run("onSymbol", this); - } -} - -JSDOC.Symbol.prototype.setTags = function() { - // @author - var authors = this.comment.getTag("author"); - if (authors.length) { - this.author = authors.map(function($){return $.desc;}).join(", "); - } - - /*t: - plan(34, "testing JSDOC.Symbol"); - - requires("../lib/JSDOC/DocComment.js"); - requires("../frame/String.js"); - requires("../lib/JSDOC/DocTag.js"); - - var sym = new JSDOC.Symbol("foo", [], "OBJECT", new JSDOC.DocComment("/**@author Joe Smith*"+"/")); - is(sym.author, "Joe Smith", "@author tag, author is found."); - */ - - // @desc - var descs = this.comment.getTag("desc"); - if (descs.length) { - this.desc = descs.map(function($){return $.desc;}).join("\n"); // multiple descriptions are concatenated into one - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "OBJECT", new JSDOC.DocComment("/**@desc This is a description.*"+"/")); - is(sym.desc, "This is a description.", "@desc tag, description is found."); - */ - - // @overview - if (this.is("FILE")) { - if (!this.alias) this.alias = this.srcFile; - - var overviews = this.comment.getTag("overview"); - if (overviews.length) { - this.desc = [this.desc].concat(overviews.map(function($){return $.desc;})).join("\n"); - } - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "FILE", new JSDOC.DocComment("/**@overview This is an overview.*"+"/")); - is(sym.desc, "\nThis is an overview.", "@overview tag, description is found."); - */ - - // @since - var sinces = this.comment.getTag("since"); - if (sinces.length) { - this.since = sinces.map(function($){return $.desc;}).join(", "); - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "FILE", new JSDOC.DocComment("/**@since 1.01*"+"/")); - is(sym.since, "1.01", "@since tag, description is found."); - */ - - // @constant - if (this.comment.getTag("constant").length) { - this.isConstant = true; - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "FILE", new JSDOC.DocComment("/**@constant*"+"/")); - is(sym.isConstant, true, "@constant tag, isConstant set."); - */ - - // @version - var versions = this.comment.getTag("version"); - if (versions.length) { - this.version = versions.map(function($){return $.desc;}).join(", "); - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "FILE", new JSDOC.DocComment("/**@version 2.0x*"+"/")); - is(sym.version, "2.0x", "@version tag, version is found."); - */ - - // @deprecated - var deprecateds = this.comment.getTag("deprecated"); - if (deprecateds.length) { - this.deprecated = deprecateds.map(function($){return $.desc;}).join("\n"); - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "FILE", new JSDOC.DocComment("/**@deprecated Use other method.*"+"/")); - is(sym.deprecated, "Use other method.", "@deprecated tag, desc is found."); - */ - - // @example - var examples = this.comment.getTag("example"); - if (examples.length) { - this.example = examples.map( - // trim trailing whitespace - function($) { - $.desc = $.desc.replace(/\s+$/, ""); - return $; - } - ); - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "FILE", new JSDOC.DocComment("/**@example This\n is an example. \n*"+"/")); - isnt(typeof sym.example[0], "undefined", "@example tag, creates sym.example array."); - is(sym.example[0], "This\n is an example.", "@example tag, desc is found."); - */ - - // @see - var sees = this.comment.getTag("see"); - if (sees.length) { - var thisSee = this.see; - sees.map(function($){thisSee.push($.desc);}); - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "FILE", new JSDOC.DocComment("/**@see The other thing.*"+"/")); - is(sym.see, "The other thing.", "@see tag, desc is found."); - */ - - // @class - var classes = this.comment.getTag("class"); - if (classes.length) { - this.isa = "CONSTRUCTOR"; - this.classDesc = classes[0].desc; // desc can't apply to the constructor as there is none. - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "OBJECT", new JSDOC.DocComment("/**@class This describes the class.*"+"/")); - is(sym.isa, "CONSTRUCTOR", "@class tag, makes symbol a constructor."); - is(sym.classDesc, "This describes the class.", "@class tag, class description is found."); - */ - - // @namespace - var namespaces = this.comment.getTag("namespace"); - if (namespaces.length) { - this.classDesc = namespaces[0].desc; - this.isNamespace = true; - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "OBJECT", new JSDOC.DocComment("/**@namespace This describes the namespace.*"+"/")); - is(sym.classDesc, "This describes the namespace.", "@namespace tag, class description is found."); - */ - - // @param - var params = this.comment.getTag("param"); - if (params.length) { - // user-defined params overwrite those with same name defined by the parser - var thisParams = this.params; - - if (thisParams.length == 0) { // none exist yet, so just bung all these user-defined params straight in - this.params = params; - } - else { // need to overlay these user-defined params on to existing parser-defined params - for (var i = 0, l = params.length; i < l; i++) { - if (thisParams[i]) { - if (params[i].type) thisParams[i].type = params[i].type; - thisParams[i].name = params[i].name; - thisParams[i].desc = params[i].desc; - thisParams[i].isOptional = params[i].isOptional; - thisParams[i].defaultValue = params[i].defaultValue; - } - else thisParams[i] = params[i]; - } - } - } - - /*t: - var sym = new JSDOC.Symbol("foo", [{type: "array", name: "pages"}], "FUNCTION", new JSDOC.DocComment("/**Description.*"+"/")); - is(sym.params.length, 1, "parser defined param is found."); - - sym = new JSDOC.Symbol("foo", [], "FUNCTION", new JSDOC.DocComment("/**Description.\n@param {array} pages*"+"/")); - is(sym.params.length, 1, "user defined param is found."); - is(sym.params[0].type, "array", "user defined param type is found."); - is(sym.params[0].name, "pages", "user defined param name is found."); - - sym = new JSDOC.Symbol("foo", [{type: "array", name: "pages"}], "FUNCTION", new JSDOC.DocComment("/**Description.\n@param {string} uid*"+"/")); - is(sym.params.length, 1, "user defined param overwrites parser defined param."); - is(sym.params[0].type, "string", "user defined param type overwrites parser defined param type."); - is(sym.params[0].name, "uid", "user defined param name overwrites parser defined param name."); - - sym = new JSDOC.Symbol("foo", [{type: "array", name: "pages"}, {type: "number", name: "count"}], "FUNCTION", new JSDOC.DocComment("/**Description.\n@param {string} uid*"+"/")); - is(sym.params.length, 2, "user defined params overlay parser defined params."); - is(sym.params[1].type, "number", "user defined param type overlays parser defined param type."); - is(sym.params[1].name, "count", "user defined param name overlays parser defined param name."); - - sym = new JSDOC.Symbol("foo", [], "FUNCTION", new JSDOC.DocComment("/**Description.\n@param {array} pages The pages description.*"+"/")); - is(sym.params.length, 1, "user defined param with description is found."); - is(sym.params[0].desc, "The pages description.", "user defined param description is found."); - */ - - // @constructor - if (this.comment.getTag("constructor").length) { - this.isa = "CONSTRUCTOR"; - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "OBJECT", new JSDOC.DocComment("/**@constructor*"+"/")); - is(sym.isa, "CONSTRUCTOR", "@constructor tag, makes symbol a constructor."); - */ - - // @static - if (this.comment.getTag("static").length) { - this.isStatic = true; - if (this.isa == "CONSTRUCTOR") { - this.isNamespace = true; - } - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "OBJECT", new JSDOC.DocComment("/**@static\n@constructor*"+"/")); - is(sym.isStatic, true, "@static tag, makes isStatic true."); - is(sym.isNamespace, true, "@static and @constructor tag, makes isNamespace true."); - */ - - // @inner - if (this.comment.getTag("inner").length) { - this.isInner = true; - this.isStatic = false; - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "OBJECT", new JSDOC.DocComment("/**@inner*"+"/")); - is(sym.isStatic, false, "@inner tag, makes isStatic false."); - is(sym.isInner, true, "@inner makes isInner true."); - */ - - // @name - var names = this.comment.getTag("name"); - if (names.length) { - this.name = names[0].desc; - } - - /*t: - // todo - */ - - // @field - if (this.comment.getTag("field").length) { - this.isa = "OBJECT"; - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "FUNCTION", new JSDOC.DocComment("/**@field*"+"/")); - is(sym.isa, "OBJECT", "@field tag, makes symbol an object."); - */ - - // @function - if (this.comment.getTag("function").length) { - this.isa = "FUNCTION"; - if (/event:/.test(this.alias)) this.isEvent = true; - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "OBJECT", new JSDOC.DocComment("/**@function*"+"/")); - is(sym.isa, "FUNCTION", "@function tag, makes symbol a function."); - */ - - // @event - var events = this.comment.getTag("event"); - if (events.length) { - this.isa = "FUNCTION"; - this.isEvent = true; - if (!/event:/.test(this.alias)) - this.alias = this.alias.replace(/^(.*[.#-])([^.#-]+)$/, "$1event:$2"); - } - - /*t: - var sym = new JSDOC.Symbol("foo", [], "OBJECT", new JSDOC.DocComment("/**@event*"+"/")); - is(sym.isa, "FUNCTION", "@event tag, makes symbol a function."); - is(sym.isEvent, true, "@event makes isEvent true."); - */ - - // @fires - var fires = this.comment.getTag("fires"); - if (fires.length) { - for (var i = 0; i < fires.length; i++) { - this.fires.push(fires[i].desc); - } - } - - /*t: - // todo - */ - - // @property - var properties = this.comment.getTag("property"); - if (properties.length) { - thisProperties = this.properties; - for (var i = 0; i < properties.length; i++) { - var property = new JSDOC.Symbol(this.alias+"#"+properties[i].name, [], "OBJECT", new JSDOC.DocComment("/**"+properties[i].desc+"*/")); - // TODO: shouldn't the following happen in the addProperty method of Symbol? - if (properties[i].type) property.type = properties[i].type; - if (properties[i].defaultValue) property.defaultValue = properties[i].defaultValue; - this.addProperty(property); - if (!JSDOC.Parser.symbols.getSymbolByName(property.name)) - JSDOC.Parser.addSymbol(property); - } - } - - /*t: - // todo - */ - - // @return - var returns = this.comment.getTag("return"); - if (returns.length) { // there can be many return tags in a single doclet - this.returns = returns; - this.type = returns.map(function($){return $.type}).join(", "); - } - - /*t: - // todo - */ - - // @exception - this.exceptions = this.comment.getTag("throws"); - - /*t: - // todo - */ - - // @requires - var requires = this.comment.getTag("requires"); - if (requires.length) { - this.requires = requires.map(function($){return $.desc}); - } - - /*t: - // todo - */ - - // @type - var types = this.comment.getTag("type"); - if (types.length) { - this.type = types[0].desc; //multiple type tags are ignored - } - - /*t: - // todo - */ - - // @private - if (this.comment.getTag("private").length || this.isInner) { - this.isPrivate = true; - } - - // @ignore - if (this.comment.getTag("ignore").length) { - this.isIgnored = true; - } - - /*t: - // todo - */ - - // @inherits ... as ... - var inherits = this.comment.getTag("inherits"); - if (inherits.length) { - for (var i = 0; i < inherits.length; i++) { - if (/^\s*([a-z$0-9_.#:-]+)(?:\s+as\s+([a-z$0-9_.#:-]+))?/i.test(inherits[i].desc)) { - var inAlias = RegExp.$1; - var inAs = RegExp.$2 || inAlias; - - if (inAlias) inAlias = inAlias.replace(/\.prototype\.?/g, "#"); - - if (inAs) { - inAs = inAs.replace(/\.prototype\.?/g, "#"); - inAs = inAs.replace(/^this\.?/, "#"); - } - - if (inAs.indexOf(inAlias) != 0) { //not a full namepath - var joiner = "."; - if (this.alias.charAt(this.alias.length-1) == "#" || inAs.charAt(0) == "#") { - joiner = ""; - } - inAs = this.alias + joiner + inAs; - } - } - this.inherits.push({alias: inAlias, as: inAs}); - } - } - - /*t: - // todo - */ - - // @augments - this.augments = this.comment.getTag("augments"); - - // @default - var defaults = this.comment.getTag("default"); - if (defaults.length) { - if (this.is("OBJECT")) { - this.defaultValue = defaults[0].desc; - } - } - - /*t: - // todo - */ - - // @memberOf - var memberOfs = this.comment.getTag("memberOf"); - if (memberOfs.length) { - this.memberOf = memberOfs[0].desc; - this.memberOf = this.memberOf.replace(/\.prototype\.?/g, "#"); - } - - /*t: - // todo - */ - - // @public - if (this.comment.getTag("public").length) { - this.isPrivate = false; - } - - /*t: - // todo - */ - - if (JSDOC.PluginManager) { - JSDOC.PluginManager.run("onSetTags", this); - } -} - -JSDOC.Symbol.prototype.is = function(what) { - return this.isa === what; -} - -JSDOC.Symbol.prototype.isBuiltin = function() { - return JSDOC.Lang.isBuiltin(this.alias); -} - -JSDOC.Symbol.prototype.setType = function(/**String*/comment, /**Boolean*/overwrite) { - if (!overwrite && this.type) return; - var typeComment = JSDOC.DocComment.unwrapComment(comment); - this.type = typeComment; -} - -JSDOC.Symbol.prototype.inherit = function(symbol) { - if (!this.hasMember(symbol.name) && !symbol.isInner) { - if (symbol.is("FUNCTION")) - this.methods.push(symbol); - else if (symbol.is("OBJECT")) - this.properties.push(symbol); - } -} - -JSDOC.Symbol.prototype.hasMember = function(name) { - return (this.hasMethod(name) || this.hasProperty(name)); -} - -JSDOC.Symbol.prototype.addMember = function(symbol) { - if (symbol.is("FUNCTION")) { this.addMethod(symbol); } - else if (symbol.is("OBJECT")) { this.addProperty(symbol); } -} - -JSDOC.Symbol.prototype.hasMethod = function(name) { - var thisMethods = this.methods; - for (var i = 0, l = thisMethods.length; i < l; i++) { - if (thisMethods[i].name == name) return true; - if (thisMethods[i].alias == name) return true; - } - return false; -} - -JSDOC.Symbol.prototype.addMethod = function(symbol) { - var methodAlias = symbol.alias; - var thisMethods = this.methods; - for (var i = 0, l = thisMethods.length; i < l; i++) { - if (thisMethods[i].alias == methodAlias) { - thisMethods[i] = symbol; // overwriting previous method - return; - } - } - thisMethods.push(symbol); // new method with this alias -} - -JSDOC.Symbol.prototype.hasProperty = function(name) { - var thisProperties = this.properties; - for (var i = 0, l = thisProperties.length; i < l; i++) { - if (thisProperties[i].name == name) return true; - if (thisProperties[i].alias == name) return true; - } - return false; -} - -JSDOC.Symbol.prototype.addProperty = function(symbol) { - var propertyAlias = symbol.alias; - var thisProperties = this.properties; - for (var i = 0, l = thisProperties.length; i < l; i++) { - if (thisProperties[i].alias == propertyAlias) { - thisProperties[i] = symbol; // overwriting previous property - return; - } - } - - thisProperties.push(symbol); // new property with this alias -} - -JSDOC.Symbol.srcFile = ""; //running reference to the current file being parsed diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/SymbolSet.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/SymbolSet.js deleted file mode 100644 index 8e3a2ebf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/SymbolSet.js +++ /dev/null @@ -1,243 +0,0 @@ -/** @constructor */ -JSDOC.SymbolSet = function() { - this.init(); -} - -JSDOC.SymbolSet.prototype.init = function() { - this._index = new Hash(); -} - -JSDOC.SymbolSet.prototype.keys = function() { - return this._index.keys(); -} - -JSDOC.SymbolSet.prototype.hasSymbol = function(alias) { - return this._index.hasKey(alias); -} - -JSDOC.SymbolSet.prototype.addSymbol = function(symbol) { - if (JSDOC.opt.a && this.hasSymbol(symbol.alias)) { - LOG.warn("Overwriting symbol documentation for: " + symbol.alias + "."); - this.deleteSymbol(symbol.alias); - } - this._index.set(symbol.alias, symbol); -} - -JSDOC.SymbolSet.prototype.getSymbol = function(alias) { - if (this.hasSymbol(alias)) return this._index.get(alias); -} - -JSDOC.SymbolSet.prototype.getSymbolByName = function(name) { - for (var p = this._index.first(); p; p = this._index.next()) { - var symbol = p.value; - if (symbol.name == name) return symbol; - } -} - -JSDOC.SymbolSet.prototype.toArray = function() { - return this._index.values(); -} - -JSDOC.SymbolSet.prototype.deleteSymbol = function(alias) { - if (!this.hasSymbol(alias)) return; - this._index.drop(alias); -} - -JSDOC.SymbolSet.prototype.renameSymbol = function(oldName, newName) { - // todo: should check if oldname or newname already exist - this._index.replace(oldName, newName); - this._index.get(newName).alias = newName; - return newName; -} - -JSDOC.SymbolSet.prototype.relate = function() { - this.resolveBorrows(); - this.resolveMemberOf(); - this.resolveAugments(); -} - -JSDOC.SymbolSet.prototype.resolveBorrows = function() { - for (var p = this._index.first(); p; p = this._index.next()) { - var symbol = p.value; - if (symbol.is("FILE") || symbol.is("GLOBAL")) continue; - - var borrows = symbol.inherits; - for (var i = 0; i < borrows.length; i++) { - -if (/#$/.test(borrows[i].alias)) { - LOG.warn("Attempted to borrow entire instance of "+borrows[i].alias+" but that feature is not yet implemented."); - return; -} - var borrowed = this.getSymbol(borrows[i].alias); - - if (!borrowed) { - LOG.warn("Can't borrow undocumented "+borrows[i].alias+"."); - continue; - } - - if (borrows[i].as == borrowed.alias) { - var assumedName = borrowed.name.split(/([#.-])/).pop(); - borrows[i].as = symbol.name+RegExp.$1+assumedName; - LOG.inform("Assuming borrowed as name is "+borrows[i].as+" but that feature is experimental."); - } - - var borrowAsName = borrows[i].as; - var borrowAsAlias = borrowAsName; - if (!borrowAsName) { - LOG.warn("Malformed @borrow, 'as' is required."); - continue; - } - - if (borrowAsName.length > symbol.alias.length && borrowAsName.indexOf(symbol.alias) == 0) { - borrowAsName = borrowAsName.replace(borrowed.alias, "") - } - else { - var joiner = ""; - if (borrowAsName.charAt(0) != "#") joiner = "."; - borrowAsAlias = borrowed.alias + joiner + borrowAsName; - } - - borrowAsName = borrowAsName.replace(/^[#.]/, ""); - - if (this.hasSymbol(borrowAsAlias)) continue; - - var clone = borrowed.clone(); - clone.name = borrowAsName; - clone.alias = borrowAsAlias; - this.addSymbol(clone); - } - } -} - -JSDOC.SymbolSet.prototype.resolveMemberOf = function() { - for (var p = this._index.first(); p; p = this._index.next()) { - var symbol = p.value; - - if (symbol.is("FILE") || symbol.is("GLOBAL")) continue; - - // the memberOf value was provided in the @memberOf tag - else if (symbol.memberOf) { - // like foo.bar is a memberOf foo - if (symbol.alias.indexOf(symbol.memberOf) == 0) { - var memberMatch = new RegExp("^("+symbol.memberOf+")[.#-]?(.+)$"); - var aliasParts = symbol.alias.match(memberMatch); - - if (aliasParts) { - symbol.memberOf = aliasParts[1]; - symbol.name = aliasParts[2]; - } - - var nameParts = symbol.name.match(memberMatch); - - if (nameParts) { - symbol.name = nameParts[2]; - } - } - // like bar is a memberOf foo - else { - var joiner = symbol.memberOf.charAt(symbol.memberOf.length-1); - if (!/[.#-]/.test(joiner)) symbol.memberOf += "."; - this.renameSymbol(symbol.alias, symbol.memberOf + symbol.name); - } - } - // the memberOf must be calculated - else { - var parts = symbol.alias.match(/^(.*[.#-])([^.#-]+)$/); - - if (parts) { - symbol.memberOf = parts[1]; - symbol.name = parts[2]; - } - } - - // set isStatic, isInner - if (symbol.memberOf) { - switch (symbol.memberOf.charAt(symbol.memberOf.length-1)) { - case '#' : - symbol.isStatic = false; - symbol.isInner = false; - break; - case '.' : - symbol.isStatic = true; - symbol.isInner = false; - break; - case '-' : - symbol.isStatic = false; - symbol.isInner = true; - break; - default: // memberOf ends in none of the above - symbol.isStatic = true; - break; - } - } - - // unowned methods and fields belong to the global object - if (!symbol.is("CONSTRUCTOR") && !symbol.isNamespace && symbol.memberOf == "") { - symbol.memberOf = "_global_"; - } - - // clean up - if (symbol.memberOf.match(/[.#-]$/)) { - symbol.memberOf = symbol.memberOf.substr(0, symbol.memberOf.length-1); - } - // add to parent's methods or properties list - if (symbol.memberOf) { - - var container = this.getSymbol(symbol.memberOf); - if (!container) { - if (JSDOC.Lang.isBuiltin(symbol.memberOf)) container = JSDOC.Parser.addBuiltin(symbol.memberOf); - else { - LOG.warn("Trying to document "+symbol.name +" as a member of undocumented symbol "+symbol.memberOf+"."); - } - } - - if (container) container.addMember(symbol); - } - } -} - -JSDOC.SymbolSet.prototype.resolveAugments = function() { - for (var p = this._index.first(); p; p = this._index.next()) { - var symbol = p.value; - - if (symbol.alias == "_global_" || symbol.is("FILE")) continue; - JSDOC.SymbolSet.prototype.walk.apply(this, [symbol]); - } -} - -JSDOC.SymbolSet.prototype.walk = function(symbol) { - var augments = symbol.augments; - for(var i = 0; i < augments.length; i++) { - var contributer = this.getSymbol(augments[i]); - if (!contributer && JSDOC.Lang.isBuiltin(''+augments[i])) { - contributer = new JSDOC.Symbol("_global_."+augments[i], [], augments[i], new JSDOC.DocComment("Built in.")); - contributer.isNamespace = true; - contributer.srcFile = ""; - contributer.isPrivate = false; - JSDOC.Parser.addSymbol(contributer); - } - - if (contributer) { - if (contributer.augments.length) { - JSDOC.SymbolSet.prototype.walk.apply(this, [contributer]); - } - - symbol.inheritsFrom.push(contributer.alias); - //if (!isUnique(symbol.inheritsFrom)) { - // LOG.warn("Can't resolve augments: Circular reference: "+symbol.alias+" inherits from "+contributer.alias+" more than once."); - //} - //else { - var cmethods = contributer.methods; - var cproperties = contributer.properties; - - for (var ci = 0, cl = cmethods.length; ci < cl; ci++) { - if (!cmethods[ci].isStatic) symbol.inherit(cmethods[ci]); - } - for (var ci = 0, cl = cproperties.length; ci < cl; ci++) { - if (!cproperties[ci].isStatic) symbol.inherit(cproperties[ci]); - } - //} - } - else LOG.warn("Can't augment contributer: "+augments[i]+", not found."); - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/TextStream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/TextStream.js deleted file mode 100644 index ccc48a87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/TextStream.js +++ /dev/null @@ -1,41 +0,0 @@ - -/** - @constructor -*/ -JSDOC.TextStream = function(text) { - if (typeof(text) == "undefined") text = ""; - text = ""+text; - this.text = text; - this.cursor = 0; -} - -JSDOC.TextStream.prototype.look = function(n) { - if (typeof n == "undefined") n = 0; - - if (this.cursor+n < 0 || this.cursor+n >= this.text.length) { - var result = new String(""); - result.eof = true; - return result; - } - return this.text.charAt(this.cursor+n); -} - -JSDOC.TextStream.prototype.next = function(n) { - if (typeof n == "undefined") n = 1; - if (n < 1) return null; - - var pulled = ""; - for (var i = 0; i < n; i++) { - if (this.cursor+i < this.text.length) { - pulled += this.text.charAt(this.cursor+i); - } - else { - var result = new String(""); - result.eof = true; - return result; - } - } - - this.cursor += n; - return pulled; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Token.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Token.js deleted file mode 100644 index fb7f9d94..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Token.js +++ /dev/null @@ -1,18 +0,0 @@ -if (typeof JSDOC == "undefined") JSDOC = {}; - -/** - @constructor -*/ -JSDOC.Token = function(data, type, name) { - this.data = data; - this.type = type; - this.name = name; -} - -JSDOC.Token.prototype.toString = function() { - return "<"+this.type+" name=\""+this.name+"\">"+this.data+""; -} - -JSDOC.Token.prototype.is = function(what) { - return this.name === what || this.type === what; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/TokenReader.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/TokenReader.js deleted file mode 100644 index 9f658fb9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/TokenReader.js +++ /dev/null @@ -1,332 +0,0 @@ -if (typeof JSDOC == "undefined") JSDOC = {}; - -/** - @class Search a {@link JSDOC.TextStream} for language tokens. -*/ -JSDOC.TokenReader = function() { - this.keepDocs = true; - this.keepWhite = false; - this.keepComments = false; -} - -/** - @type {JSDOC.Token[]} - */ -JSDOC.TokenReader.prototype.tokenize = function(/**JSDOC.TextStream*/stream) { - var tokens = []; - /**@ignore*/ tokens.last = function() { return tokens[tokens.length-1]; } - /**@ignore*/ tokens.lastSym = function() { - for (var i = tokens.length-1; i >= 0; i--) { - if (!(tokens[i].is("WHIT") || tokens[i].is("COMM"))) return tokens[i]; - } - } - - while (!stream.look().eof) { - if (this.read_mlcomment(stream, tokens)) continue; - if (this.read_slcomment(stream, tokens)) continue; - if (this.read_dbquote(stream, tokens)) continue; - if (this.read_snquote(stream, tokens)) continue; - if (this.read_regx(stream, tokens)) continue; - if (this.read_numb(stream, tokens)) continue; - if (this.read_punc(stream, tokens)) continue; - if (this.read_newline(stream, tokens)) continue; - if (this.read_space(stream, tokens)) continue; - if (this.read_word(stream, tokens)) continue; - - // if execution reaches here then an error has happened - tokens.push(new JSDOC.Token(stream.next(), "TOKN", "UNKNOWN_TOKEN")); - } - return tokens; -} - -/** - @returns {Boolean} Was the token found? - */ -JSDOC.TokenReader.prototype.read_word = function(/**JSDOC.TokenStream*/stream, tokens) { - var found = ""; - while (!stream.look().eof && JSDOC.Lang.isWordChar(stream.look())) { - found += stream.next(); - } - - if (found === "") { - return false; - } - else { - var name; - if ((name = JSDOC.Lang.keyword(found))) tokens.push(new JSDOC.Token(found, "KEYW", name)); - else tokens.push(new JSDOC.Token(found, "NAME", "NAME")); - return true; - } -} - -/** - @returns {Boolean} Was the token found? - */ -JSDOC.TokenReader.prototype.read_punc = function(/**JSDOC.TokenStream*/stream, tokens) { - var found = ""; - var name; - while (!stream.look().eof && JSDOC.Lang.punc(found+stream.look())) { - found += stream.next(); - } - - if (found === "") { - return false; - } - else { - tokens.push(new JSDOC.Token(found, "PUNC", JSDOC.Lang.punc(found))); - return true; - } -} - -/** - @returns {Boolean} Was the token found? - */ -JSDOC.TokenReader.prototype.read_space = function(/**JSDOC.TokenStream*/stream, tokens) { - var found = ""; - - while (!stream.look().eof && JSDOC.Lang.isSpace(stream.look())) { - found += stream.next(); - } - - if (found === "") { - return false; - } - else { - if (this.collapseWhite) found = " "; - if (this.keepWhite) tokens.push(new JSDOC.Token(found, "WHIT", "SPACE")); - return true; - } -} - -/** - @returns {Boolean} Was the token found? - */ -JSDOC.TokenReader.prototype.read_newline = function(/**JSDOC.TokenStream*/stream, tokens) { - var found = ""; - - while (!stream.look().eof && JSDOC.Lang.isNewline(stream.look())) { - found += stream.next(); - } - - if (found === "") { - return false; - } - else { - if (this.collapseWhite) found = "\n"; - if (this.keepWhite) tokens.push(new JSDOC.Token(found, "WHIT", "NEWLINE")); - return true; - } -} - -/** - @returns {Boolean} Was the token found? - */ -JSDOC.TokenReader.prototype.read_mlcomment = function(/**JSDOC.TokenStream*/stream, tokens) { - if (stream.look() == "/" && stream.look(1) == "*") { - var found = stream.next(2); - - while (!stream.look().eof && !(stream.look(-1) == "/" && stream.look(-2) == "*")) { - found += stream.next(); - } - - // to start doclet we allow /** or /*** but not /**/ or /**** - if (/^\/\*\*([^\/]|\*[^*])/.test(found) && this.keepDocs) tokens.push(new JSDOC.Token(found, "COMM", "JSDOC")); - else if (this.keepComments) tokens.push(new JSDOC.Token(found, "COMM", "MULTI_LINE_COMM")); - return true; - } - return false; -} - -/** - @returns {Boolean} Was the token found? - */ -JSDOC.TokenReader.prototype.read_slcomment = function(/**JSDOC.TokenStream*/stream, tokens) { - var found; - if ( - (stream.look() == "/" && stream.look(1) == "/" && (found=stream.next(2))) - || - (stream.look() == "<" && stream.look(1) == "!" && stream.look(2) == "-" && stream.look(3) == "-" && (found=stream.next(4))) - ) { - - while (!stream.look().eof && !JSDOC.Lang.isNewline(stream.look())) { - found += stream.next(); - } - - if (this.keepComments) { - tokens.push(new JSDOC.Token(found, "COMM", "SINGLE_LINE_COMM")); - } - return true; - } - return false; -} - -/** - @returns {Boolean} Was the token found? - */ -JSDOC.TokenReader.prototype.read_dbquote = function(/**JSDOC.TokenStream*/stream, tokens) { - if (stream.look() == "\"") { - // find terminator - var string = stream.next(); - - while (!stream.look().eof) { - if (stream.look() == "\\") { - if (JSDOC.Lang.isNewline(stream.look(1))) { - do { - stream.next(); - } while (!stream.look().eof && JSDOC.Lang.isNewline(stream.look())); - string += "\\\n"; - } - else { - string += stream.next(2); - } - } - else if (stream.look() == "\"") { - string += stream.next(); - tokens.push(new JSDOC.Token(string, "STRN", "DOUBLE_QUOTE")); - return true; - } - else { - string += stream.next(); - } - } - } - return false; // error! unterminated string -} - -/** - @returns {Boolean} Was the token found? - */ -JSDOC.TokenReader.prototype.read_snquote = function(/**JSDOC.TokenStream*/stream, tokens) { - if (stream.look() == "'") { - // find terminator - var string = stream.next(); - - while (!stream.look().eof) { - if (stream.look() == "\\") { // escape sequence - string += stream.next(2); - } - else if (stream.look() == "'") { - string += stream.next(); - tokens.push(new JSDOC.Token(string, "STRN", "SINGLE_QUOTE")); - return true; - } - else { - string += stream.next(); - } - } - } - return false; // error! unterminated string -} - -/** - @returns {Boolean} Was the token found? - */ -JSDOC.TokenReader.prototype.read_numb = function(/**JSDOC.TokenStream*/stream, tokens) { - if (stream.look() === "0" && stream.look(1) == "x") { - return this.read_hex(stream, tokens); - } - - var found = ""; - - while (!stream.look().eof && JSDOC.Lang.isNumber(found+stream.look())){ - found += stream.next(); - } - - if (found === "") { - return false; - } - else { - if (/^0[0-7]/.test(found)) tokens.push(new JSDOC.Token(found, "NUMB", "OCTAL")); - else tokens.push(new JSDOC.Token(found, "NUMB", "DECIMAL")); - return true; - } -} -/*t: - requires("../lib/JSDOC/TextStream.js"); - requires("../lib/JSDOC/Token.js"); - requires("../lib/JSDOC/Lang.js"); - - plan(3, "testing JSDOC.TokenReader.prototype.read_numb"); - - //// setup - var src = "function foo(num){while (num+8.0 >= 0x20 && num < 0777){}}"; - var tr = new JSDOC.TokenReader(); - var tokens = tr.tokenize(new JSDOC.TextStream(src)); - - var hexToken, octToken, decToken; - for (var i = 0; i < tokens.length; i++) { - if (tokens[i].name == "HEX_DEC") hexToken = tokens[i]; - if (tokens[i].name == "OCTAL") octToken = tokens[i]; - if (tokens[i].name == "DECIMAL") decToken = tokens[i]; - } - //// - - is(decToken.data, "8.0", "decimal number is found in source."); - is(hexToken.data, "0x20", "hexdec number is found in source (issue #99)."); - is(octToken.data, "0777", "octal number is found in source."); -*/ - -/** - @returns {Boolean} Was the token found? - */ -JSDOC.TokenReader.prototype.read_hex = function(/**JSDOC.TokenStream*/stream, tokens) { - var found = stream.next(2); - - while (!stream.look().eof) { - if (JSDOC.Lang.isHexDec(found) && !JSDOC.Lang.isHexDec(found+stream.look())) { // done - tokens.push(new JSDOC.Token(found, "NUMB", "HEX_DEC")); - return true; - } - else { - found += stream.next(); - } - } - return false; -} - -/** - @returns {Boolean} Was the token found? - */ -JSDOC.TokenReader.prototype.read_regx = function(/**JSDOC.TokenStream*/stream, tokens) { - var last; - if ( - stream.look() == "/" - && - ( - - ( - !(last = tokens.lastSym()) // there is no last, the regex is the first symbol - || - ( - !last.is("NUMB") - && !last.is("NAME") - && !last.is("RIGHT_PAREN") - && !last.is("RIGHT_BRACKET") - ) - ) - ) - ) { - var regex = stream.next(); - - while (!stream.look().eof) { - if (stream.look() == "\\") { // escape sequence - regex += stream.next(2); - } - else if (stream.look() == "/") { - regex += stream.next(); - - while (/[gmi]/.test(stream.look())) { - regex += stream.next(); - } - - tokens.push(new JSDOC.Token(regex, "REGX", "REGX")); - return true; - } - else { - regex += stream.next(); - } - } - // error: unterminated regex - } - return false; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/TokenStream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/TokenStream.js deleted file mode 100644 index 1eeb44cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/TokenStream.js +++ /dev/null @@ -1,133 +0,0 @@ -if (typeof JSDOC == "undefined") JSDOC = {}; - -/** - @constructor -*/ -JSDOC.TokenStream = function(tokens) { - this.tokens = (tokens || []); - this.rewind(); -} - -/** - @constructor - @private -*/ -function VoidToken(/**String*/type) { - this.toString = function() {return ""}; - this.is = function(){return false;} -} - -JSDOC.TokenStream.prototype.rewind = function() { - this.cursor = -1; -} - -/** - @type JSDOC.Token -*/ -JSDOC.TokenStream.prototype.look = function(/**Number*/n, /**Boolean*/considerWhitespace) { - if (typeof n == "undefined") n = 0; - - if (considerWhitespace == true) { - if (this.cursor+n < 0 || this.cursor+n > this.tokens.length) return {}; - return this.tokens[this.cursor+n]; - } - else { - var count = 0; - var i = this.cursor; - - while (true) { - if (i < 0) return new JSDOC.Token("", "VOID", "START_OF_STREAM"); - else if (i > this.tokens.length) return new JSDOC.Token("", "VOID", "END_OF_STREAM"); - - if (i != this.cursor && (this.tokens[i] === undefined || this.tokens[i].is("WHIT"))) { - if (n < 0) i--; else i++; - continue; - } - - if (count == Math.abs(n)) { - return this.tokens[i]; - } - count++; - (n < 0)? i-- : i++; - } - - return new JSDOC.Token("", "VOID", "STREAM_ERROR"); // because null isn't an object and caller always expects an object - } -} - -/** - @type JSDOC.Token|JSDOC.Token[] -*/ -JSDOC.TokenStream.prototype.next = function(/**Number*/howMany) { - if (typeof howMany == "undefined") howMany = 1; - if (howMany < 1) return null; - var got = []; - - for (var i = 1; i <= howMany; i++) { - if (this.cursor+i >= this.tokens.length) { - return null; - } - got.push(this.tokens[this.cursor+i]); - } - this.cursor += howMany; - - if (howMany == 1) { - return got[0]; - } - else return got; -} - -/** - @type JSDOC.Token[] -*/ -JSDOC.TokenStream.prototype.balance = function(/**String*/start, /**String*/stop) { - if (!stop) stop = JSDOC.Lang.matching(start); - - var depth = 0; - var got = []; - var started = false; - - while ((token = this.look())) { - if (token.is(start)) { - depth++; - started = true; - } - - if (started) { - got.push(token); - } - - if (token.is(stop)) { - depth--; - if (depth == 0) return got; - } - if (!this.next()) break; - } -} - -JSDOC.TokenStream.prototype.getMatchingToken = function(/**String*/start, /**String*/stop) { - var depth = 0; - var cursor = this.cursor; - - if (!start) { - start = JSDOC.Lang.matching(stop); - depth = 1; - } - if (!stop) stop = JSDOC.Lang.matching(start); - - while ((token = this.tokens[cursor])) { - if (token.is(start)) { - depth++; - } - - if (token.is(stop) && cursor) { - depth--; - if (depth == 0) return this.tokens[cursor]; - } - cursor++; - } -} - -JSDOC.TokenStream.prototype.insertAhead = function(/**JSDOC.Token*/token) { - this.tokens.splice(this.cursor+1, 0, token); -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Util.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Util.js deleted file mode 100644 index 6d7edb36..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Util.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @namespace - * @deprecated Use {@link FilePath} instead. - */ -JSDOC.Util = { -} - -/** - * @deprecated Use {@link FilePath.fileName} instead. - */ -JSDOC.Util.fileName = function(path) { - LOG.warn("JSDOC.Util.fileName is deprecated. Use FilePath.fileName instead."); - var nameStart = Math.max(path.lastIndexOf("/")+1, path.lastIndexOf("\\")+1, 0); - return path.substring(nameStart); -} - -/** - * @deprecated Use {@link FilePath.fileExtension} instead. - */ -JSDOC.Util.fileExtension = function(filename) { - LOG.warn("JSDOC.Util.fileExtension is deprecated. Use FilePath.fileExtension instead."); - return filename.split(".").pop().toLowerCase(); -}; - -/** - * @deprecated Use {@link FilePath.dir} instead. - */ -JSDOC.Util.dir = function(path) { - LOG.warn("JSDOC.Util.dir is deprecated. Use FilePath.dir instead."); - var nameStart = Math.max(path.lastIndexOf("/")+1, path.lastIndexOf("\\")+1, 0); - return path.substring(0, nameStart-1); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Walker.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Walker.js deleted file mode 100644 index 6ecaea88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/lib/JSDOC/Walker.js +++ /dev/null @@ -1,507 +0,0 @@ -if (typeof JSDOC == "undefined") JSDOC = {}; - -/** @constructor */ -JSDOC.Walker = function(/**JSDOC.TokenStream*/ts) { - this.init(); - if (typeof ts != "undefined") { - this.walk(ts); - } -} - -JSDOC.Walker.prototype.init = function() { - this.ts = null; - - var globalSymbol = new JSDOC.Symbol("_global_", [], "GLOBAL", new JSDOC.DocComment("")); - globalSymbol.isNamespace = true; - globalSymbol.srcFile = ""; - globalSymbol.isPrivate = false; - JSDOC.Parser.addSymbol(globalSymbol); - this.lastDoc = null; - this.token = null; - - /** - The chain of symbols under which we are currently nested. - @type Array - */ - this.namescope = [globalSymbol]; - this.namescope.last = function(n){ if (!n) n = 0; return this[this.length-(1+n)] || "" }; -} - -JSDOC.Walker.prototype.walk = function(/**JSDOC.TokenStream*/ts) { - this.ts = ts; - while (this.token = this.ts.look()) { - if (this.token.popNamescope) { - - var symbol = this.namescope.pop(); - if (symbol.is("FUNCTION")) { - if (this.ts.look(1).is("LEFT_PAREN") && symbol.comment.getTag("function").length == 0) { - symbol.isa = "OBJECT"; - } - } - } - this.step(); - if (!this.ts.next()) break; - } -} - -JSDOC.Walker.prototype.step = function() { - if (this.token.is("JSDOC")) { // it's a doc comment - - var doc = new JSDOC.DocComment(this.token.data); - - - if (doc.getTag("exports").length > 0) { - var exports = doc.getTag("exports")[0]; - - exports.desc.match(/(\S+) as (\S+)/i); - var n1 = RegExp.$1; - var n2 = RegExp.$2; - - if (!n1 && n2) throw "@exports tag requires a value like: 'name as ns.name'"; - - JSDOC.Parser.rename = (JSDOC.Parser.rename || {}); - JSDOC.Parser.rename[n1] = n2 - } - - if (doc.getTag("lends").length > 0) { - var lends = doc.getTag("lends")[0]; - - var name = lends.desc - if (!name) throw "@lends tag requires a value."; - - var symbol = new JSDOC.Symbol(name, [], "OBJECT", doc); - - this.namescope.push(symbol); - - var matching = this.ts.getMatchingToken("LEFT_CURLY"); - if (matching) matching.popNamescope = name; - else LOG.warn("Mismatched } character. Can't parse code in file " + symbol.srcFile + "."); - - this.lastDoc = null; - return true; - } - else if (doc.getTag("name").length > 0 && doc.getTag("overview").length == 0) { // it's a virtual symbol - var virtualName = doc.getTag("name")[0].desc; - if (!virtualName) throw "@name tag requires a value."; - - if (doc.getTag("memberOf").length > 0) { - virtualName = (doc.getTag("memberOf")[0] + "." + virtualName) - .replace(/([#.])\./, "$1"); - doc.deleteTag("memberOf"); - } - - var symbol = new JSDOC.Symbol(virtualName, [], "VIRTUAL", doc); - - JSDOC.Parser.addSymbol(symbol); - - this.lastDoc = null; - return true; - } - else if (doc.meta) { // it's a meta doclet - if (doc.meta == "@+") JSDOC.DocComment.shared = doc.src; - else if (doc.meta == "@-") JSDOC.DocComment.shared = ""; - else if (doc.meta == "nocode+") JSDOC.Parser.conf.ignoreCode = true; - else if (doc.meta == "nocode-") JSDOC.Parser.conf.ignoreCode = JSDOC.opt.n; - else throw "Unrecognized meta comment: "+doc.meta; - - this.lastDoc = null; - return true; - } - else if (doc.getTag("overview").length > 0) { // it's a file overview - symbol = new JSDOC.Symbol("", [], "FILE", doc); - - JSDOC.Parser.addSymbol(symbol); - - this.lastDoc = null; - return true; - } - else { - this.lastDoc = doc; - return false; - } - } - else if (!JSDOC.Parser.conf.ignoreCode) { // it's code - if (this.token.is("NAME")) { // it's the name of something - var symbol; - var name = this.token.data; - var doc = null; if (this.lastDoc) doc = this.lastDoc; - var params = []; - - // it's inside an anonymous object - if (this.ts.look(1).is("COLON") && this.ts.look(-1).is("LEFT_CURLY") && !(this.ts.look(-2).is("JSDOC") || this.namescope.last().comment.getTag("lends").length || this.ts.look(-2).is("ASSIGN") || this.ts.look(-2).is("COLON"))) { - name = "$anonymous"; - name = this.namescope.last().alias+"-"+name - - params = []; - - symbol = new JSDOC.Symbol(name, params, "OBJECT", doc); - - JSDOC.Parser.addSymbol(symbol); - - this.namescope.push(symbol); - - var matching = this.ts.getMatchingToken(null, "RIGHT_CURLY"); - if (matching) matching.popNamescope = name; - else LOG.warn("Mismatched } character. Can't parse code in file " + symbol.srcFile + "."); - } - // function foo() {} - else if (this.ts.look(-1).is("FUNCTION") && this.ts.look(1).is("LEFT_PAREN")) { - var isInner; - - if (this.lastDoc) doc = this.lastDoc; - - if (doc && doc.getTag("memberOf").length > 0) { - name = (doc.getTag("memberOf")[0]+"."+name).replace("#.", "#"); - doc.deleteTag("memberOf"); - } - else { - name = this.namescope.last().alias+"-"+name; - if (!this.namescope.last().is("GLOBAL")) isInner = true; - } - - if (!this.namescope.last().is("GLOBAL")) isInner = true; - - params = JSDOC.Walker.onParamList(this.ts.balance("LEFT_PAREN")); - - symbol = new JSDOC.Symbol(name, params, "FUNCTION", doc); - if (isInner) symbol.isInner = true; - - if (this.ts.look(1).is("JSDOC")) { - var inlineReturn = ""+this.ts.look(1).data; - inlineReturn = inlineReturn.replace(/(^\/\*\* *| *\*\/$)/g, ""); - symbol.type = inlineReturn; - } - - JSDOC.Parser.addSymbol(symbol); - - this.namescope.push(symbol); - - var matching = this.ts.getMatchingToken("LEFT_CURLY"); - if (matching) matching.popNamescope = name; - else LOG.warn("Mismatched } character. Can't parse code in file " + symbol.srcFile + "."); - } - // foo = function() {} - else if (this.ts.look(1).is("ASSIGN") && this.ts.look(2).is("FUNCTION")) { - var constructs; - var isConstructor = false; - if (doc && (constructs = doc.getTag("constructs")) && constructs.length) { - if (constructs[0].desc) { - name = constructs[0].desc; - isConstructor = true; - } - } - - var isInner; - if (this.ts.look(-1).is("VAR") || this.isInner) { - if (doc && doc.getTag("memberOf").length > 0) { - name = (doc.getTag("memberOf")[0]+"."+name).replace("#.", "#"); - doc.deleteTag("memberOf"); - } - else { - name = this.namescope.last().alias+"-"+name; - if (!this.namescope.last().is("GLOBAL")) isInner = true; - } - if (!this.namescope.last().is("GLOBAL")) isInner = true; - } - else if (name.indexOf("this.") == 0) { - name = this.resolveThis(name); - } - - if (this.lastDoc) doc = this.lastDoc; - params = JSDOC.Walker.onParamList(this.ts.balance("LEFT_PAREN")); - - symbol = new JSDOC.Symbol(name, params, "FUNCTION", doc); - - if (isInner) symbol.isInner = true; - if (isConstructor) symbol.isa = "CONSTRUCTOR"; - - if (this.ts.look(1).is("JSDOC")) { - var inlineReturn = ""+this.ts.look(1).data; - inlineReturn = inlineReturn.replace(/(^\/\*\* *| *\*\/$)/g, ""); - symbol.type = inlineReturn; - } - - JSDOC.Parser.addSymbol(symbol); - - this.namescope.push(symbol); - - var matching = this.ts.getMatchingToken("LEFT_CURLY"); - if (matching) matching.popNamescope = name; - else LOG.warn("Mismatched } character. Can't parse code in file " + symbol.srcFile + "."); - } - // foo = new function() {} or foo = (function() {} - else if (this.ts.look(1).is("ASSIGN") && (this.ts.look(2).is("NEW") || this.ts.look(2).is("LEFT_PAREN")) && this.ts.look(3).is("FUNCTION")) { - var isInner; - if (this.ts.look(-1).is("VAR") || this.isInner) { - name = this.namescope.last().alias+"-"+name - if (!this.namescope.last().is("GLOBAL")) isInner = true; - } - else if (name.indexOf("this.") == 0) { - name = this.resolveThis(name); - } - - this.ts.next(3); // advance past the "new" or "(" - - if (this.lastDoc) doc = this.lastDoc; - params = JSDOC.Walker.onParamList(this.ts.balance("LEFT_PAREN")); - - symbol = new JSDOC.Symbol(name, params, "OBJECT", doc); - if (isInner) symbol.isInner = true; - - if (this.ts.look(1).is("JSDOC")) { - var inlineReturn = ""+this.ts.look(1).data; - inlineReturn = inlineReturn.replace(/(^\/\*\* *| *\*\/$)/g, ""); - symbol.type = inlineReturn; - } - - JSDOC.Parser.addSymbol(symbol); - - symbol.scopeType = "INSTANCE"; - this.namescope.push(symbol); - - var matching = this.ts.getMatchingToken("LEFT_CURLY"); - if (matching) matching.popNamescope = name; - else LOG.warn("Mismatched } character. Can't parse code in file " + symbol.srcFile + "."); - } - // foo: function() {} - else if (this.ts.look(1).is("COLON") && this.ts.look(2).is("FUNCTION")) { - name = (this.namescope.last().alias+"."+name).replace("#.", "#"); - - if (this.lastDoc) doc = this.lastDoc; - params = JSDOC.Walker.onParamList(this.ts.balance("LEFT_PAREN")); - - if (doc && doc.getTag("constructs").length) { - name = name.replace(/\.prototype(\.|$)/, "#"); - - if (name.indexOf("#") > -1) name = name.match(/(^[^#]+)/)[0]; - else name = this.namescope.last().alias; - - symbol = new JSDOC.Symbol(name, params, "CONSTRUCTOR", doc); - } - else { - symbol = new JSDOC.Symbol(name, params, "FUNCTION", doc); - } - - if (this.ts.look(1).is("JSDOC")) { - var inlineReturn = ""+this.ts.look(1).data; - inlineReturn = inlineReturn.replace(/(^\/\*\* *| *\*\/$)/g, ""); - symbol.type = inlineReturn; - } - - JSDOC.Parser.addSymbol(symbol); - - this.namescope.push(symbol); - - var matching = this.ts.getMatchingToken("LEFT_CURLY"); - if (matching) matching.popNamescope = name; - else LOG.warn("Mismatched } character. Can't parse code in file " + symbol.srcFile + "."); - } - // foo = {} - else if (this.ts.look(1).is("ASSIGN") && this.ts.look(2).is("LEFT_CURLY")) { - var isInner; - if (this.ts.look(-1).is("VAR") || this.isInner) { - name = this.namescope.last().alias+"-"+name - if (!this.namescope.last().is("GLOBAL")) isInner = true; - } - else if (name.indexOf("this.") == 0) { - name = this.resolveThis(name); - } - - if (this.lastDoc) doc = this.lastDoc; - - symbol = new JSDOC.Symbol(name, params, "OBJECT", doc); - if (isInner) symbol.isInner = true; - - - if (doc) JSDOC.Parser.addSymbol(symbol); - - this.namescope.push(symbol); - - var matching = this.ts.getMatchingToken("LEFT_CURLY"); - if (matching) matching.popNamescope = name; - else LOG.warn("Mismatched } character. Can't parse code in file " + symbol.srcFile + "."); - } - // var foo; - else if (this.ts.look(1).is("SEMICOLON")) { - var isInner; - - if (this.ts.look(-1).is("VAR") || this.isInner) { - name = this.namescope.last().alias+"-"+name - if (!this.namescope.last().is("GLOBAL")) isInner = true; - - if (this.lastDoc) doc = this.lastDoc; - - symbol = new JSDOC.Symbol(name, params, "OBJECT", doc); - if (isInner) symbol.isInner = true; - - - if (doc) JSDOC.Parser.addSymbol(symbol); - } - } - // foo = x - else if (this.ts.look(1).is("ASSIGN")) { - var isInner; - if (this.ts.look(-1).is("VAR") || this.isInner) { - name = this.namescope.last().alias+"-"+name - if (!this.namescope.last().is("GLOBAL")) isInner = true; - } - else if (name.indexOf("this.") == 0) { - name = this.resolveThis(name); - } - - if (this.lastDoc) doc = this.lastDoc; - - symbol = new JSDOC.Symbol(name, params, "OBJECT", doc); - if (isInner) symbol.isInner = true; - - - if (doc) JSDOC.Parser.addSymbol(symbol); - } - // foo: {} - else if (this.ts.look(1).is("COLON") && this.ts.look(2).is("LEFT_CURLY")) { - name = (this.namescope.last().alias+"."+name).replace("#.", "#"); - - if (this.lastDoc) doc = this.lastDoc; - - symbol = new JSDOC.Symbol(name, params, "OBJECT", doc); - - - if (doc) JSDOC.Parser.addSymbol(symbol); - - this.namescope.push(symbol); - - var matching = this.ts.getMatchingToken("LEFT_CURLY"); - if (matching) matching.popNamescope = name; - else LOG.warn("Mismatched } character. Can't parse code in file " + symbol.srcFile + "."); - } - // foo: x - else if (this.ts.look(1).is("COLON")) { - name = (this.namescope.last().alias+"."+name).replace("#.", "#");; - - if (this.lastDoc) doc = this.lastDoc; - - symbol = new JSDOC.Symbol(name, params, "OBJECT", doc); - - - if (doc) JSDOC.Parser.addSymbol(symbol); - } - // foo(...) - else if (this.ts.look(1).is("LEFT_PAREN")) { - if (typeof JSDOC.PluginManager != "undefined") { - var functionCall = {name: name}; - - var cursor = this.ts.cursor; - params = JSDOC.Walker.onParamList(this.ts.balance("LEFT_PAREN")); - this.ts.cursor = cursor; - - for (var i = 0; i < params.length; i++) - functionCall["arg" + (i + 1)] = params[i].name; - - JSDOC.PluginManager.run("onFunctionCall", functionCall); - if (functionCall.doc) { - this.ts.insertAhead(new JSDOC.Token(functionCall.doc, "COMM", "JSDOC")); - } - } - } - this.lastDoc = null; - } - else if (this.token.is("FUNCTION")) { // it's an anonymous function - if ( - (!this.ts.look(-1).is("COLON") || !this.ts.look(-1).is("ASSIGN")) - && !this.ts.look(1).is("NAME") - ) { - if (this.lastDoc) doc = this.lastDoc; - - name = "$anonymous"; - name = this.namescope.last().alias+"-"+name - - params = JSDOC.Walker.onParamList(this.ts.balance("LEFT_PAREN")); - - symbol = new JSDOC.Symbol(name, params, "FUNCTION", doc); - - JSDOC.Parser.addSymbol(symbol); - - this.namescope.push(symbol); - - var matching = this.ts.getMatchingToken("LEFT_CURLY"); - if (matching) matching.popNamescope = name; - else LOG.warn("Mismatched } character. Can't parse code in file " + symbol.srcFile + "."); - } - } - } - return true; -} - -/** - Resolves what "this." means when it appears in a name. - @param name The name that starts with "this.". - @returns The name with "this." resolved. - */ -JSDOC.Walker.prototype.resolveThis = function(name) { - name.match(/^this\.(.+)$/) - var nameFragment = RegExp.$1; - if (!nameFragment) return name; - - var symbol = this.namescope.last(); - var scopeType = symbol.scopeType || symbol.isa; - - // if we are in a constructor function, `this` means the instance - if (scopeType == "CONSTRUCTOR") { - name = symbol.alias+"#"+nameFragment; - } - - // if we are in an anonymous constructor function, `this` means the instance - else if (scopeType == "INSTANCE") { - name = symbol.alias+"."+nameFragment; - } - - // if we are in a function, `this` means the container (possibly the global) - else if (scopeType == "FUNCTION") { - // in a method of a prototype, so `this` means the constructor - if (symbol.alias.match(/(^.*)[#.-][^#.-]+/)) { - var parentName = RegExp.$1; - var parent = JSDOC.Parser.symbols.getSymbol(parentName); - - if (!parent) { - if (JSDOC.Lang.isBuiltin(parentName)) parent = JSDOC.Parser.addBuiltin(parentName); - else { - if (symbol.alias.indexOf("$anonymous") < 0) // these will be ignored eventually - LOG.warn("Trying to document "+symbol.alias+" without first documenting "+parentName+"."); - } - } - if (parent) name = parentName+(parent.is("CONSTRUCTOR")?"#":".")+nameFragment; - } - else { - parent = this.namescope.last(1); - name = parent.alias+(parent.is("CONSTRUCTOR")?"#":".")+nameFragment; - } - } - // otherwise it means the global - else { - name = nameFragment; - } - - return name; -} - -JSDOC.Walker.onParamList = function(/**Array*/paramTokens) { - if (!paramTokens) { - LOG.warn("Malformed parameter list. Can't parse code."); - return []; - } - var params = []; - for (var i = 0, l = paramTokens.length; i < l; i++) { - if (paramTokens[i].is("JSDOC")) { - var paramType = paramTokens[i].data.replace(/(^\/\*\* *| *\*\/$)/g, ""); - - if (paramTokens[i+1] && paramTokens[i+1].is("NAME")) { - i++; - params.push({type: paramType, name: paramTokens[i].data}); - } - } - else if (paramTokens[i].is("NAME")) { - params.push({name: paramTokens[i].data}); - } - } - return params; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/main.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/main.js deleted file mode 100644 index f9008c87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/main.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * @version $Id: main.js 818 2009-11-08 14:51:41Z micmath $ - */ - -function main() { - IO.include("lib/JSDOC.js"); - IO.includeDir("plugins/"); - - // process the options - - // the -c option: options are defined in a configuration file - if (JSDOC.opt.c) { - eval("JSDOC.conf = " + IO.readFile(JSDOC.opt.c)); - - LOG.inform("Using configuration file at '"+JSDOC.opt.c+"'."); - - for (var c in JSDOC.conf) { - if (c !== "D" && !defined(JSDOC.opt[c])) { // commandline overrules config file - JSDOC.opt[c] = JSDOC.conf[c]; - } - } - - if (typeof JSDOC.conf["_"] != "undefined") { - JSDOC.opt["_"] = JSDOC.opt["_"].concat(JSDOC.conf["_"]); - } - - LOG.inform("With configuration: "); - for (var o in JSDOC.opt) { - LOG.inform(" "+o+": "+JSDOC.opt[o]); - } - } - - // be verbose - if (JSDOC.opt.v) LOG.verbose = true; - - // send log messages to a file - if (JSDOC.opt.o) LOG.out = IO.open(JSDOC.opt.o); - - // run the unit tests - if (JSDOC.opt.T) { - LOG.inform("JsDoc Toolkit running in test mode at "+new Date()+"."); - IO.include("frame/Testrun.js"); - IO.include("test.js"); - } - else { - // a template must be defined and must be a directory path - if (!JSDOC.opt.t && System.getProperty("jsdoc.template.dir")) { - JSDOC.opt.t = System.getProperty("jsdoc.template.dir"); - } - if (JSDOC.opt.t && SYS.slash != JSDOC.opt.t.slice(-1)) { - JSDOC.opt.t += SYS.slash; - } - - // verbose messages about the options we were given - LOG.inform("JsDoc Toolkit main() running at "+new Date()+"."); - LOG.inform("With options: "); - for (var o in JSDOC.opt) { - LOG.inform(" "+o+": "+JSDOC.opt[o]); - } - - // initialize and build a symbolSet from your code - JSDOC.JsDoc(); - - // debugger's option: dump the entire symbolSet produced from your code - if (JSDOC.opt.Z) { - LOG.warn("So you want to see the data structure, eh? This might hang if you have circular refs..."); - IO.include("frame/Dumper.js"); - var symbols = JSDOC.JsDoc.symbolSet.toArray(); - for (var i = 0, l = symbols.length; i < l; i++) { - var symbol = symbols[i]; - print("// symbol: " + symbol.alias); - print(symbol.serialize()); - } - } - else { - if (typeof JSDOC.opt.t != "undefined") { - try { - // a file named "publish.js" must exist in the template directory - load(JSDOC.opt.t+"publish.js"); - - // and must define a function named "publish" - if (!publish) { - LOG.warn("No publish() function is defined in that template so nothing to do."); - } - else { - // which will be called with the symbolSet produced from your code - publish(JSDOC.JsDoc.symbolSet); - } - } - catch(e) { - LOG.warn("Sorry, that doesn't seem to be a valid template: "+JSDOC.opt.t+"publish.js : "+e); - } - } - else { - LOG.warn("No template given. Might as well read the usage notes."); - JSDOC.usage(); - } - } - } - - // notify of any warnings - if (!JSDOC.opt.q && LOG.warnings.length) { - print(LOG.warnings.length+" warning"+(LOG.warnings.length != 1? "s":"")+"."); - } - - // stop sending log messages to a file - if (LOG.out) { - LOG.out.flush(); - LOG.out.close(); - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/commentSrcJson.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/commentSrcJson.js deleted file mode 100644 index e826b572..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/commentSrcJson.js +++ /dev/null @@ -1,20 +0,0 @@ -JSDOC.PluginManager.registerPlugin( - "JSDOC.commentSrcJson", - { - onDocCommentSrc: function(comment) { - var json; - if (/^\s*@json\b/.test(comment)) { - comment.src = new String(comment.src).replace("@json", ""); - - eval("json = "+comment.src); - var tagged = ""; - for (var i in json) { - var tag = json[i]; - // todo handle cases where tag is an object - tagged += "@"+i+" "+tag+"\n"; - } - comment.src = tagged; - } - } - } -); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/frameworkPrototype.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/frameworkPrototype.js deleted file mode 100644 index 9c417518..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/frameworkPrototype.js +++ /dev/null @@ -1,16 +0,0 @@ -JSDOC.PluginManager.registerPlugin( - "JSDOC.frameworkPrototype", - { - onPrototypeClassCreate: function(classCreator) { - var desc = ""; - if (classCreator.comment) { - desc = classCreator.comment; - } - var insert = desc+"/** @name "+classCreator.name+"\n@constructor\n@scope "+classCreator.name+".prototype */" - - insert = insert.replace(/\*\/\/\*\*/g, "\n"); - /*DEBUG*///print("insert is "+insert); - classCreator.addComment.data = insert; - } - } -); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/functionCall.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/functionCall.js deleted file mode 100644 index 6f87705e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/functionCall.js +++ /dev/null @@ -1,10 +0,0 @@ -JSDOC.PluginManager.registerPlugin( - "JSDOC.functionCall", - { - onFunctionCall: function(functionCall) { - if (functionCall.name == "dojo.define" && functionCall.arg1) { - functionCall.doc = "/** @lends "+eval(functionCall.arg1)+".prototype */"; - } - } - } -); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/publishSrcHilite.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/publishSrcHilite.js deleted file mode 100644 index 65514f2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/publishSrcHilite.js +++ /dev/null @@ -1,62 +0,0 @@ -JSDOC.PluginManager.registerPlugin( - "JSDOC.publishSrcHilite", - { - onPublishSrc: function(src) { - if (src.path in JsHilite.cache) { - return; // already generated src code - } - else JsHilite.cache[src.path] = true; - - try { - var sourceCode = IO.readFile(src.path); - } - catch(e) { - print(e.message); - quit(); - } - - var hiliter = new JsHilite(sourceCode, src.charset); - src.hilited = hiliter.hilite(); - } - } -); - -function JsHilite(src, charset) { - - var tr = new JSDOC.TokenReader(); - - tr.keepComments = true; - tr.keepDocs = true; - tr.keepWhite = true; - - this.tokens = tr.tokenize(new JSDOC.TextStream(src)); - - // TODO is redefining toString() the best way? - JSDOC.Token.prototype.toString = function() { - return ""+this.data.replace(/"; - } - - if (!charset) charset = "utf-8"; - - this.header = ' '+ - "

      ";
      -	this.footer = "
      "; - this.showLinenumbers = true; -} - -JsHilite.cache = {}; - -JsHilite.prototype.hilite = function() { - var hilited = this.tokens.join(""); - var line = 1; - if (this.showLinenumbers) hilited = hilited.replace(/(^|\n)/g, function(m){return m+""+((line<10)? " ":"")+((line<100)? " ":"")+(line++)+" "}); - - return this.header+hilited+this.footer; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/symbolLink.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/symbolLink.js deleted file mode 100644 index c87f1ca7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/symbolLink.js +++ /dev/null @@ -1,10 +0,0 @@ -JSDOC.PluginManager.registerPlugin( - "JSDOC.symbolLink", - { - onSymbolLink: function(link) { - // modify link.linkPath (the href part of the link) - // or link.linkText (the text displayed) - // or link.linkInner (the #name part of the link) - } - } -); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/tagParamConfig.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/tagParamConfig.js deleted file mode 100644 index 3ea8a1be..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/tagParamConfig.js +++ /dev/null @@ -1,31 +0,0 @@ -JSDOC.PluginManager.registerPlugin( - "JSDOC.tagParamConfig", - { - onDocCommentTags: function(comment) { - var currentParam = null; - var tags = comment.tags; - for (var i = 0, l = tags.length; i < l; i++) { - - if (tags[i].title == "param") { - if (tags[i].name.indexOf(".") == -1) { - currentParam = i; - } - } - else if (tags[i].title == "config") { - tags[i].title = "param"; - if (currentParam == null) { - tags[i].name = "arguments"+"."+tags[i].name; - } - else if (tags[i].name.indexOf(tags[currentParam].name+".") != 0) { - tags[i].name = tags[currentParam].name+"."+tags[i].name; - } - currentParam != null - //tags[currentParam].properties.push(tags[i]); - } - else { - currentParam = null; - } - } - } - } -); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/tagSynonyms.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/tagSynonyms.js deleted file mode 100644 index 49a874f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/plugins/tagSynonyms.js +++ /dev/null @@ -1,43 +0,0 @@ -JSDOC.PluginManager.registerPlugin( - "JSDOC.tagSynonyms", - { - onDocCommentSrc: function(comment) { - comment.src = comment.src.replace(/@methodOf\b/i, "@function\n@memberOf"); - comment.src = comment.src.replace(/@fieldOf\b/i, "@field\n@memberOf"); - }, - - onDocCommentTags: function(comment) { - for (var i = 0, l = comment.tags.length; i < l; i++) { - var title = comment.tags[i].title.toLowerCase(); - var syn; - if ((syn = JSDOC.tagSynonyms.synonyms["="+title])) { - comment.tags[i].title = syn; - } - } - } - } -); - -new Namespace( - "JSDOC.tagSynonyms", - function() { - JSDOC.tagSynonyms.synonyms = { - "=member": "memberOf", - "=memberof": "memberOf", - "=description": "desc", - "=exception": "throws", - "=argument": "param", - "=returns": "return", - "=classdescription": "class", - "=fileoverview": "overview", - "=extends": "augments", - "=base": "augments", - "=projectdescription": "overview", - "=classdescription": "class", - "=link": "see", - "=borrows": "inherits", - "=scope": "lends", - "=construct": "constructor" - } - } -); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/run.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/run.js deleted file mode 100644 index 1f875cdb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/run.js +++ /dev/null @@ -1,348 +0,0 @@ -/** - * @fileOverview - * A bootstrap script that creates some basic required objects - * for loading other scripts. - * @author Michael Mathews, micmath@gmail.com - * @version $Id: run.js 756 2009-01-07 21:32:58Z micmath $ - */ - -/** - * @namespace Keep track of any messages from the running script. - */ -LOG = { - warn: function(msg, e) { - if (JSDOC.opt.q) return; - if (e) msg = e.fileName+", line "+e.lineNumber+": "+msg; - - msg = ">> WARNING: "+msg; - LOG.warnings.push(msg); - if (LOG.out) LOG.out.write(msg+"\n"); - else print(msg); - }, - - inform: function(msg) { - if (JSDOC.opt.q) return; - msg = " > "+msg; - if (LOG.out) LOG.out.write(msg+"\n"); - else if (typeof LOG.verbose != "undefined" && LOG.verbose) print(msg); - } -}; -LOG.warnings = []; -LOG.verbose = false -LOG.out = undefined; - -/** - * @class Manipulate a filepath. - */ -function FilePath(absPath, separator) { - this.slash = separator || "/"; - this.root = this.slash; - this.path = []; - this.file = ""; - - var parts = absPath.split(/[\\\/]/); - if (parts) { - if (parts.length) this.root = parts.shift() + this.slash; - if (parts.length) this.file = parts.pop() - if (parts.length) this.path = parts; - } - - this.path = this.resolvePath(); -} - -/** Collapse any dot-dot or dot items in a filepath. */ -FilePath.prototype.resolvePath = function() { - var resolvedPath = []; - for (var i = 0; i < this.path.length; i++) { - if (this.path[i] == "..") resolvedPath.pop(); - else if (this.path[i] != ".") resolvedPath.push(this.path[i]); - } - return resolvedPath; -} - -/** Trim off the filename. */ -FilePath.prototype.toDir = function() { - if (this.file) this.file = ""; - return this; -} - -/** Go up a directory. */ -FilePath.prototype.upDir = function() { - this.toDir(); - if (this.path.length) this.path.pop(); - return this; -} - -FilePath.prototype.toString = function() { - return this.root - + this.path.join(this.slash) - + ((this.path.length > 0)? this.slash : "") - + this.file; -} - -/** - * Turn a path into just the name of the file. - */ -FilePath.fileName = function(path) { - var nameStart = Math.max(path.lastIndexOf("/")+1, path.lastIndexOf("\\")+1, 0); - return path.substring(nameStart); -} - -/** - * Get the extension of a filename - */ -FilePath.fileExtension = function(filename) { - return filename.split(".").pop().toLowerCase(); -}; - -/** - * Turn a path into just the directory part. - */ -FilePath.dir = function(path) { - var nameStart = Math.max(path.lastIndexOf("/")+1, path.lastIndexOf("\\")+1, 0); - return path.substring(0, nameStart-1); -} - - -importClass(java.lang.System); - -/** - * @namespace A collection of information about your system. - */ -SYS = { - /** - * Information about your operating system: arch, name, version. - * @type string - */ - os: [ - new String(System.getProperty("os.arch")), - new String(System.getProperty("os.name")), - new String(System.getProperty("os.version")) - ].join(", "), - - /** - * Which way does your slash lean. - * @type string - */ - slash: System.getProperty("file.separator")||"/", - - /** - * The path to the working directory where you ran java. - * @type string - */ - userDir: new String(System.getProperty("user.dir")), - - /** - * Where is Java's home folder. - * @type string - */ - javaHome: new String(System.getProperty("java.home")), - - /** - * The absolute path to the directory containing this script. - * @type string - */ - pwd: undefined -}; - -// jsrun appends an argument, with the path to here. -if (arguments[arguments.length-1].match(/^-j=(.+)/)) { - if (RegExp.$1.charAt(0) == SYS.slash || RegExp.$1.charAt(1) == ":") { // absolute path to here - SYS.pwd = new FilePath(RegExp.$1).toDir().toString(); - } - else { // relative path to here - SYS.pwd = new FilePath(SYS.userDir + SYS.slash + RegExp.$1).toDir().toString(); - } - arguments.pop(); -} -else { - print("The run.js script requires you use jsrun.jar."); - quit(); -} - -// shortcut -var File = Packages.java.io.File; - -/** - * @namespace A collection of functions that deal with reading a writing to disk. - */ -IO = { - - /** - * Create a new file in the given directory, with the given name and contents. - */ - saveFile: function(/**string*/ outDir, /**string*/ fileName, /**string*/ content) { - var out = new Packages.java.io.PrintWriter( - new Packages.java.io.OutputStreamWriter( - new Packages.java.io.FileOutputStream(outDir+SYS.slash+fileName), - IO.encoding - ) - ); - out.write(content); - out.flush(); - out.close(); - }, - - /** - * @type string - */ - readFile: function(/**string*/ path) { - if (!IO.exists(path)) { - throw "File doesn't exist there: "+path; - } - return readFile(path, IO.encoding); - }, - - /** - * @param inFile - * @param outDir - * @param [fileName=The original filename] - */ - copyFile: function(/**string*/ inFile, /**string*/ outDir, /**string*/ fileName) { - if (fileName == null) fileName = FilePath.fileName(inFile); - - var inFile = new File(inFile); - var outFile = new File(outDir+SYS.slash+fileName); - - var bis = new Packages.java.io.BufferedInputStream(new Packages.java.io.FileInputStream(inFile), 4096); - var bos = new Packages.java.io.BufferedOutputStream(new Packages.java.io.FileOutputStream(outFile), 4096); - var theChar; - while ((theChar = bis.read()) != -1) { - bos.write(theChar); - } - bos.close(); - bis.close(); - }, - - /** - * Creates a series of nested directories. - */ - mkPath: function(/**Array*/ path) { - if (path.constructor != Array) path = path.split(/[\\\/]/); - var make = ""; - for (var i = 0, l = path.length; i < l; i++) { - make += path[i] + SYS.slash; - if (! IO.exists(make)) { - IO.makeDir(make); - } - } - }, - - /** - * Creates a directory at the given path. - */ - makeDir: function(/**string*/ path) { - (new File(path)).mkdir(); - }, - - /** - * @type string[] - * @param dir The starting directory to look in. - * @param [recurse=1] How many levels deep to scan. - * @returns An array of all the paths to files in the given dir. - */ - ls: function(/**string*/ dir, /**number*/ recurse, _allFiles, _path) { - if (_path === undefined) { // initially - var _allFiles = []; - var _path = [dir]; - } - if (_path.length == 0) return _allFiles; - if (recurse === undefined) recurse = 1; - - dir = new File(dir); - if (!dir.directory) return [String(dir)]; - var files = dir.list(); - - for (var f = 0; f < files.length; f++) { - var file = String(files[f]); - if (file.match(/^\.[^\.\/\\]/)) continue; // skip dot files - - if ((new File(_path.join(SYS.slash)+SYS.slash+file)).list()) { // it's a directory - _path.push(file); - if (_path.length-1 < recurse) IO.ls(_path.join(SYS.slash), recurse, _allFiles, _path); - _path.pop(); - } - else { - _allFiles.push((_path.join(SYS.slash)+SYS.slash+file).replace(SYS.slash+SYS.slash, SYS.slash)); - } - } - - return _allFiles; - }, - - /** - * @type boolean - */ - exists: function(/**string*/ path) { - file = new File(path); - - if (file.isDirectory()){ - return true; - } - if (!file.exists()){ - return false; - } - if (!file.canRead()){ - return false; - } - return true; - }, - - /** - * - */ - open: function(/**string*/ path, /**string*/ append) { - var append = true; - var outFile = new File(path); - var out = new Packages.java.io.PrintWriter( - new Packages.java.io.OutputStreamWriter( - new Packages.java.io.FileOutputStream(outFile, append), - IO.encoding - ) - ); - return out; - }, - - /** - * Sets {@link IO.encoding}. - * Encoding is used when reading and writing text to files, - * and in the meta tags of HTML output. - */ - setEncoding: function(/**string*/ encoding) { - if (/ISO-8859-([0-9]+)/i.test(encoding)) { - IO.encoding = "ISO8859_"+RegExp.$1; - } - else { - IO.encoding = encoding; - } - }, - - /** - * @default "utf-8" - * @private - */ - encoding: "utf-8", - - /** - * Load the given script. - */ - include: function(relativePath) { - load(SYS.pwd+relativePath); - }, - - /** - * Loads all scripts from the given directory path. - */ - includeDir: function(path) { - if (!path) return; - - for (var lib = IO.ls(SYS.pwd+path), i = 0; i < lib.length; i++) - if (/\.js$/i.test(lib[i])) load(lib[i]); - } -} - -// now run the application -IO.include("frame.js"); -IO.include("main.js"); - -main(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/t/TestDoc.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/t/TestDoc.js deleted file mode 100644 index c0768b71..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/t/TestDoc.js +++ /dev/null @@ -1,144 +0,0 @@ -var TestDoc = { - fails: 0, - plans: 0, - passes: 0, - results: [] -}; - -TestDoc.record = function(result) { - TestDoc.results.push(result); - if (typeof result.verdict == "boolean") { - if (result.verdict === false) TestDoc.fails++; - if (result.verdict === true) TestDoc.passes++; - } -} - -TestDoc.prove = function(filePath) { - if (typeof document != "undefined" && typeof document.write != "undefined") { - if (TestDoc.console) print = function(s) { TestDoc.console.appendChild(document.createTextNode(s+"\n")); } - else print = function(s) { document.write(s+"
      "); } - } - TestDoc.run(TestDoc.readFile(filePath)); -} - -TestDoc.run = function(src) { - try { eval(src); } catch(e) { print("# ERROR! "+e); } - - var chunks = src.split(/\/\*t:/); - - var run = function(chunk) { - // local shortcuts - var is = TestDoc.assertEquals; - var isnt = TestDoc.assertNotEquals; - var plan = TestDoc.plan; - var requires = TestDoc.requires; - - try { eval(chunk); } catch(e) { print("# ERROR! "+e); } - } - for (var start = -1, end = 0; (start = src.indexOf("/*t:", end)) > end; start = end) { - run( - src.substring( - start+4, - (end = src.indexOf("*/", start)) - ) - ); - } -} - -TestDoc.Result = function(verdict, message) { - this.verdict = verdict; - this.message = message; -} - -TestDoc.Result.prototype.toString = function() { - if (typeof this.verdict == "boolean") { - return (this.verdict? "ok" : "not ok") + " " + (++TestDoc.report.counter) + " - " + this.message; - } - - return "# " + this.message; -} - -TestDoc.requires = function(file) { - if (!TestDoc.requires.loaded[file]) { - load(file); - TestDoc.requires.loaded[file] = true; - } -} -TestDoc.requires.loaded = {}; - -TestDoc.report = function() { - TestDoc.report.counter = 0; - print("1.."+TestDoc.plans); - for (var i = 0; i < TestDoc.results.length; i++) { - print(TestDoc.results[i]); - } - print("----------------------------------------"); - if (TestDoc.fails == 0 && TestDoc.passes == TestDoc.plans) { - print("All tests successful."); - } - else { - print("Failed " + TestDoc.fails + "/" + TestDoc.plans + " tests, "+((TestDoc.plans == 0)? 0 : Math.round(TestDoc.passes/(TestDoc.passes+TestDoc.fails)*10000)/100)+"% okay. Planned to run "+TestDoc.plans+", did run "+(TestDoc.passes+TestDoc.fails)+".") - } -} - -TestDoc.plan = function(n, message) { - TestDoc.plans += n; - TestDoc.record(new TestDoc.Result(null, message+" ("+n+" tests)")); -} - -TestDoc.assertEquals = function(a, b, message) { - var result = (a == b); - if (!result) message += "\n#\n# " + a + " does not equal " + b + "\n#"; - TestDoc.record(new TestDoc.Result(result, message)); -} - -TestDoc.assertNotEquals = function(a, b, message) { - var result = (a != b); - if (!result) message += "\n#\n# " + a + " equals " + b + "\n#"; - TestDoc.record(new TestDoc.Result(result, message)); -} - -TestDoc.readFile = (function(){ - // rhino - if (typeof readFile == "function") { - return function(url) { - var text = readFile(url); - return text || ""; - } - } - - // a web browser - else { - return function(url) { - var httpRequest; - - if (window.XMLHttpRequest) { // Mozilla, Safari, etc - httpRequest = new XMLHttpRequest(); - } - else if (window.ActiveXObject) { // IE - try { - httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); - } - catch (e) { - try { - httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); - } - catch (e) { - } - } - } - - if (!httpRequest) { throw "Cannot create HTTP Request."; } - - httpRequest.open('GET', url, false); - httpRequest.send(''); - if (httpRequest.readyState == 4) { - if (httpRequest.status >= 400) { - throw "The HTTP Request returned an error code: "+httpRequest.status; - } - } - - return httpRequest.responseText || ""; - } - } -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/t/runner.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/t/runner.js deleted file mode 100644 index 3f9fb4c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/t/runner.js +++ /dev/null @@ -1,13 +0,0 @@ -// try: java -jar ../../jsrun.jar runner.js - -load("TestDoc.js"); - -TestDoc.prove("../frame/Opt.js"); -TestDoc.prove("../lib/JSDOC.js"); -TestDoc.prove("../frame/String.js"); -TestDoc.prove("../lib/JSDOC/DocTag.js"); -TestDoc.prove("../lib/JSDOC/DocComment.js"); -TestDoc.prove("../lib/JSDOC/TokenReader.js"); -TestDoc.prove("../lib/JSDOC/Symbol.js"); - -TestDoc.report(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test.js deleted file mode 100644 index 8b2dc8b1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test.js +++ /dev/null @@ -1,342 +0,0 @@ -load("app/frame/Dumper.js"); -function symbolize(opt) { - symbols = null; - JSDOC.JsDoc(opt); - symbols = JSDOC.JsDoc.symbolSet; -} - -var testCases = [ - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/overview.js"]}); - //print(Dumper.dump(symbols)); - is('symbols.getSymbolByName("My Cool Library").name', 'My Cool Library', 'File overview can be found by alias.'); - } - , - function() { - symbolize({_: [SYS.pwd+"test/name.js"]}); - - is('symbols.getSymbol("Response").name', "Response", 'Virtual class name is found.'); - is('symbols.getSymbol("Response#text").alias', "Response#text", 'Virtual method name is found.'); - is('symbols.getSymbol("Response#text").memberOf', "Response", 'Virtual method parent name is found.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/prototype.js"]}); - - is('symbols.getSymbol("Article").name', "Article", 'Function set to constructor prototype with inner constructor name is found.'); - is('symbols.getSymbol("Article").hasMethod("init")', true, 'The initializer method name of prototype function is correct.'); - is('symbols.getSymbol("Article").hasMember("counter")', true, 'A static property set in the prototype definition is found.'); - is('symbols.getSymbol("Article").hasMember("title")', true, 'An instance property set in the prototype is found.'); - is('symbols.getSymbol("Article#title").isStatic', false, 'An instance property has isStatic set to false.'); - is('symbols.getSymbol("Article.counter").name', "counter", 'A static property set in the initializer has the name set correctly.'); - is('symbols.getSymbol("Article.counter").memberOf', "Article", 'A static property set in the initializer has the memberOf set correctly.'); - is('symbols.getSymbol("Article.counter").isStatic', true, 'A static property set in the initializer has isStatic set to true.'); - } - , - function() { - symbolize({a:true, _: [SYS.pwd+"test/prototype_oblit.js"]}); - - is('symbols.getSymbol("Article").name', "Article", 'Oblit set to constructor prototype name is found.'); - is('typeof symbols.getSymbol("Article.prototype")', "undefined", 'The prototype oblit is not a symbol.'); - is('symbols.getSymbol("Article#getTitle").name', "getTitle", 'The nonstatic method name of prototype oblit is correct.'); - is('symbols.getSymbol("Article#getTitle").alias', "Article#getTitle", 'The alias of non-static method of prototype oblit is correct.'); - is('symbols.getSymbol("Article#getTitle").isStatic', false, 'The isStatic of a nonstatic method of prototype oblit is correct.'); - is('symbols.getSymbol("Article.getTitle").name', "getTitle", 'The static method name of prototype oblit is correct.'); - is('symbols.getSymbol("Article.getTitle").isStatic', true, 'The isStatic of a static method of prototype oblit is correct.'); - is('symbols.getSymbol("Article#getTitle").isa', "FUNCTION", 'The isa of non-static method of prototype oblit is correct.'); - is('symbols.getSymbol("Article.getTitle").alias', "Article.getTitle", 'The alias of a static method of prototype oblit is correct.'); - is('symbols.getSymbol("Article.getTitle").isa', "FUNCTION", 'The isa of static method of prototype oblit is correct.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/prototype_oblit_constructor.js"]}); - - is('symbols.getSymbol("Article").name', "Article", 'Oblit set to constructor prototype with inner constructor name is found.'); - is('symbols.getSymbol("Article#init").name', "init", 'The initializer method name of prototype oblit is correct.'); - is('symbols.getSymbol("Article").hasMember("pages")', true, 'Property set by initializer method "this" is on the outer constructor.'); - is('symbols.getSymbol("Article#Title").name', "Title", 'Name of the inner constructor name is found.'); - is('symbols.getSymbol("Article#Title").memberOf', "Article", 'The memberOf of the inner constructor name is found.'); - is('symbols.getSymbol("Article#Title").isa', "CONSTRUCTOR", 'The isa of the inner constructor name is constructor.'); - is('symbols.getSymbol("Article#Title").hasMember("title")', true, 'A property set on the inner constructor "this" is on the inner constructor.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/inner.js"]}); - - is('symbols.getSymbol("Outer").name', "Outer", 'Outer constructor prototype name is found.'); - is('symbols.getSymbol("Outer").methods.length', 1, 'Inner function doesnt appear as a method of the outer.'); - is('symbols.getSymbol("Outer").hasMethod("open")', true, 'Outer constructors methods arent affected by inner function.'); - is('symbols.getSymbol("Outer-Inner").alias', "Outer-Inner", 'Alias of inner function is found.'); - is('symbols.getSymbol("Outer-Inner").isa', "CONSTRUCTOR", 'isa of inner function constructor is found.'); - is('symbols.getSymbol("Outer-Inner").memberOf', "Outer", 'The memberOf of inner function is found.'); - is('symbols.getSymbol("Outer-Inner").name', "Inner", 'The name of inner function is found.'); - is('symbols.getSymbol("Outer-Inner#name").name', "name", 'A member of the inner function constructor, attached to "this" is found on inner.'); - is('symbols.getSymbol("Outer-Inner#name").memberOf', "Outer-Inner", 'The memberOf of an inner function member is found.'); - } - , - function() { - symbolize({a:true, _: [SYS.pwd+"test/prototype_nested.js"]}); - - is('symbols.getSymbol("Word").name', "Word", 'Base constructor name is found.'); - is('symbols.getSymbol("Word").hasMethod("reverse")', true, 'Base constructor method is found.'); - is('symbols.getSymbol("Word").methods.length', 1, 'Base constructor has only one method.'); - is('symbols.getSymbol("Word").memberOf', "", 'Base constructor memberOf is empty.'); - is('symbols.getSymbol("Word#reverse").name', "reverse", 'Member of constructor prototype name is found.'); - is('symbols.getSymbol("Word#reverse").memberOf', "Word", 'Member of constructor prototype memberOf is found.'); - is('symbols.getSymbol("Word#reverse.utf8").name', "utf8", 'Member of constructor prototype method name is found.'); - is('symbols.getSymbol("Word#reverse.utf8").memberOf', "Word#reverse", 'Static nested member memberOf is found.'); - } - , - function() { - symbolize({a:true, _: [SYS.pwd+"test/namespace_nested.js"]}); - - is('symbols.getSymbol("ns1").name', "ns1", 'Base namespace name is found.'); - is('symbols.getSymbol("ns1").memberOf', "", 'Base namespace memberOf is empty (its a constructor).'); - is('symbols.getSymbol("ns1.ns2").name', "ns2", 'Nested namespace name is found.'); - is('symbols.getSymbol("ns1.ns2").alias', "ns1.ns2", 'Nested namespace alias is found.'); - is('symbols.getSymbol("ns1.ns2").memberOf', "ns1", 'Nested namespace memberOf is found.'); - is('symbols.getSymbol("ns1.ns2.Function1").name', "Function1", 'Method of nested namespace name is found.'); - is('symbols.getSymbol("ns1.ns2.Function1").memberOf', "ns1.ns2", 'Constructor of nested namespace memberOf is found.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/functions_nested.js"]}); - - is('symbols.getSymbol("Zop").name', "Zop", 'Any constructor name is found.'); - is('symbols.getSymbol("Zop").isa', "CONSTRUCTOR", 'It isa constructor.'); - is('symbols.getSymbol("Zop").hasMethod("zap")', true, 'Its method name, set later, is in methods array.'); - is('symbols.getSymbol("Foo").name', "Foo", 'The containing constructor name is found.'); - is('symbols.getSymbol("Foo").hasMethod("methodOne")', true, 'Its method name is found.'); - is('symbols.getSymbol("Foo").hasMethod("methodTwo")', true, 'Its second method name is found.'); - is('symbols.getSymbol("Foo#methodOne").alias', "Foo#methodOne", 'A methods alias is found.'); - is('symbols.getSymbol("Foo#methodOne").isStatic', false, 'A methods is not static.'); - is('symbols.getSymbol("Bar").name', "Bar", 'A global function declared inside another function is found.'); - is('symbols.getSymbol("Bar").isa', "FUNCTION", 'It isa function.'); - is('symbols.getSymbol("Bar").memberOf', "_global_", 'It is global.'); - is('symbols.getSymbol("Foo-inner").name', "inner", 'An inner functions name is found.'); - is('symbols.getSymbol("Foo-inner").memberOf', "Foo", 'It is member of the outer function.'); - is('symbols.getSymbol("Foo-inner").isInner', true, 'It is an inner function.'); - } - , - function() { - symbolize({a:true, _: [SYS.pwd+"test/memberof_constructor.js"]}); - - is('symbols.getSymbol("Circle#Tangent").name', "Tangent", 'Constructor set on prototype using @member has correct name.'); - is('symbols.getSymbol("Circle#Tangent").memberOf', "Circle", 'Constructor set on prototype using @member has correct memberOf.'); - is('symbols.getSymbol("Circle#Tangent").alias', "Circle#Tangent", 'Constructor set on prototype using @member has correct alias.'); - is('symbols.getSymbol("Circle#Tangent").isa', "CONSTRUCTOR", 'Constructor set on prototype using @member has correct isa.'); - is('symbols.getSymbol("Circle#Tangent").isStatic', false, 'Constructor set on prototype using @member is not static.'); - is('symbols.getSymbol("Circle#Tangent#getDiameter").name', "getDiameter", 'Method set on prototype using @member has correct name.'); - is('symbols.getSymbol("Circle#Tangent#getDiameter").memberOf', "Circle#Tangent", 'Method set on prototype using @member has correct memberOf.'); - is('symbols.getSymbol("Circle#Tangent#getDiameter").alias', "Circle#Tangent#getDiameter", 'Method set on prototype using @member has correct alias.'); - is('symbols.getSymbol("Circle#Tangent#getDiameter").isa', "FUNCTION", 'Method set on prototype using @member has correct isa.'); - is('symbols.getSymbol("Circle#Tangent#getDiameter").isStatic', false, 'Method set on prototype using @member is not static.'); - } - , - function() { - symbolize({a:true, p: true, _: [SYS.pwd+"test/memberof.js"]}); - - is('symbols.getSymbol("pack.install").alias', "pack.install", 'Using @memberOf sets alias, when parent name is in memberOf tag.'); - is('symbols.getSymbol("pack.install.overwrite").name', "install.overwrite", 'Using @memberOf sets name, even if the name is dotted.'); - is('symbols.getSymbol("pack.install.overwrite").memberOf', "pack", 'Using @memberOf sets memberOf.'); - is('symbols.getSymbol("pack.install.overwrite").isStatic', true, 'Using @memberOf with value not ending in octothorp sets isStatic to true.'); - } - , - function() { - symbolize({a:true, p: true, _: [SYS.pwd+"test/memberof2.js"]}); - - is('symbols.getSymbol("Foo#bar").alias', "Foo#bar", 'An inner function can be documented as an instance method.'); - is('symbols.getSymbol("Foo.zip").alias', "Foo.zip", 'An inner function can be documented as a static method.'); - is('symbols.getSymbol("Foo.Fiz").alias', "Foo.Fiz", 'An inner function can be documented as a static constructor.'); - is('symbols.getSymbol("Foo.Fiz#fipple").alias', "Foo.Fiz#fipple", 'An inner function can be documented as a static constructor with a method.'); - is('symbols.getSymbol("Foo#blat").alias', "Foo#blat", 'An global function can be documented as an instance method.'); - } - , - function() { - symbolize({a:true, p: true, _: [SYS.pwd+"test/memberof3.js"]}); - - is('symbols.getSymbol("Foo#bar").alias', "Foo#bar", 'A virtual field can be documented as an instance method.'); - is('symbols.getSymbol("Foo2#bar").alias', "Foo2#bar", 'A virtual field with the same name can be documented as an instance method.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/borrows.js"]}); - - is('symbols.getSymbol("Layout").name', "Layout", 'Constructor can be found.'); - is('symbols.getSymbol("Layout").hasMethod("init")', true, 'Constructor method name can be found.'); - is('symbols.getSymbol("Layout").hasMember("orientation")', true, 'Constructor property name can be found.'); - - is('symbols.getSymbol("Page").hasMethod("reset")', true, 'Second constructor method name can be found.'); - is('symbols.getSymbol("Page").hasMember("orientation")', true, 'Second constructor borrowed property name can be found in properties.'); - is('symbols.getSymbol("Page#orientation").memberOf', "Page", 'Second constructor borrowed property memberOf can be found.'); - is('symbols.getSymbol("Page-getInnerElements").alias', "Page-getInnerElements", 'Can borrow an inner function and it is still inner.'); - is('symbols.getSymbol("Page.units").alias', "Page.units", 'Can borrow a static function and it is still static.'); - - is('symbols.getSymbol("ThreeColumnPage#init").alias', "ThreeColumnPage#init", 'Third constructor method can be found even though method with same name is borrowed.'); - is('symbols.getSymbol("ThreeColumnPage#reset").alias', "ThreeColumnPage#reset", 'Borrowed method can be found.'); - is('symbols.getSymbol("ThreeColumnPage#orientation").alias', "ThreeColumnPage#orientation", 'Twice borrowed method can be found.'); - - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/borrows2.js"]}); - - is('symbols.getSymbol("Foo").hasMethod("my_zop")', true, 'Borrowed method can be found.'); - is('symbols.getSymbol("Bar").hasMethod("my_zip")', true, 'Second borrowed method can be found.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/constructs.js"]}); - - is('symbols.getSymbol("Person").hasMethod("say")', true, 'The constructs tag creates a class that lends can add a method to.'); - } - , - function() { - symbolize({a: true, _: [SYS.pwd+"test/augments.js", SYS.pwd+"test/augments2.js"]}); - - is('symbols.getSymbol("Page").augments[0]', "Layout", 'An augmented class can be found.'); - is('symbols.getSymbol("Page#reset").alias', "Page#reset", 'Method of augmenter can be found.'); - is('symbols.getSymbol("Page").hasMethod("Layout#init")', true, 'Method from augmented can be found.'); - is('symbols.getSymbol("Page").hasMember("Layout#orientation")', true, 'Property from augmented can be found.'); - is('symbols.getSymbol("Page").methods.length', 3, 'Methods of augmented class are included in methods array.'); - - is('symbols.getSymbol("ThreeColumnPage").augments[0]', "Page", 'The extends tag is a synonym for augments.'); - is('symbols.getSymbol("ThreeColumnPage").hasMethod("ThreeColumnPage#init")', true, 'Local method overrides augmented method of same name.'); - is('symbols.getSymbol("ThreeColumnPage").methods.length', 3, 'Local method count is right.'); - - is('symbols.getSymbol("NewsletterPage").augments[0]', "ThreeColumnPage", 'Can augment across file boundaries.'); - is('symbols.getSymbol("NewsletterPage").augments.length', 2, 'Multiple augments are supported.'); - is('symbols.getSymbol("NewsletterPage").inherits[0].alias', "Junkmail#annoy", 'Inherited method with augments.'); - is('symbols.getSymbol("NewsletterPage").methods.length', 6, 'Methods of augmented class are included in methods array across files.'); - is('symbols.getSymbol("NewsletterPage").properties.length', 1, 'Properties of augmented class are included in properties array across files.'); - } - , - function() { - symbolize({a:true, _: [SYS.pwd+"test/static_this.js"]}); - - is('symbols.getSymbol("box.holder").name', "holder", 'Static namespace name can be found.'); - is('symbols.getSymbol("box.holder.foo").name', "foo", 'Static namespace method name can be found.'); - is('symbols.getSymbol("box.holder").isStatic', true, 'Static namespace method is static.'); - - is('symbols.getSymbol("box.holder.counter").name', "counter", 'Instance namespace property name set on "this" can be found.'); - is('symbols.getSymbol("box.holder.counter").alias', "box.holder.counter", 'Instance namespace property alias set on "this" can be found.'); - is('symbols.getSymbol("box.holder.counter").memberOf', "box.holder", 'Static namespace property memberOf set on "this" can be found.'); - } - , - function() { - symbolize({a:true, p: true, _: [SYS.pwd+"test/lend.js"]}); - - is('symbols.getSymbol("Person").name', "Person", 'Class defined in lend comment is found.'); - is('symbols.getSymbol("Person").hasMethod("initialize")', true, 'Lent instance method name can be found.'); - is('symbols.getSymbol("Person").hasMethod("say")', true, 'Second instance method can be found.'); - is('symbols.getSymbol("Person#sing").isStatic', false, 'Instance method is known to be not static.'); - - is('symbols.getSymbol("Person.getCount").name', "getCount", 'Static method name from second lend comment can be found.'); - is('symbols.getSymbol("Person.getCount").isStatic', true, 'Static method from second lend comment is known to be static.'); - - is('LOG.warnings.filter(function($){if($.indexOf("notok") > -1) return $}).length', 1, 'A warning is emitted when lending to an undocumented parent.'); - } - , - function() { - symbolize({a:true, _: [SYS.pwd+"test/param_inline.js"]}); - - is('symbols.getSymbol("Layout").params[0].type', "int", 'Inline param name is set.'); - is('symbols.getSymbol("Layout").params[0].desc', "The number of columns.", 'Inline param desc is set from comment.'); - is('symbols.getSymbol("Layout#getElement").params[0].name', "id", 'User defined param documentation takes precedence over parser defined.'); - is('symbols.getSymbol("Layout#getElement").params[0].isOptional', true, 'Default for param is to not be optional.'); - is('symbols.getSymbol("Layout#getElement").params[1].isOptional', false, 'Can mark a param as being optional.'); - is('symbols.getSymbol("Layout#getElement").params[1].type', "number|string", 'Type of inline param doc can have multiple values.'); - is('symbols.getSymbol("Layout#Canvas").params[0].type', "", 'Type can be not defined for some params.'); - is('symbols.getSymbol("Layout#Canvas").params[2].type', "int", 'Type can be defined inline for only some params.'); - is('symbols.getSymbol("Layout#rotate").params.length', 0, 'Docomments inside function sig is ignored without a param.'); - is('symbols.getSymbol("Layout#init").params[2].type', "zoppler", 'Doc comment type overrides inline type for param with same name.'); - } - , - function() { - symbolize({a: true, _: [SYS.pwd+"test/shared.js", SYS.pwd+"test/shared2.js"]}); - - is('symbols.getSymbol("Array#some").name', 'some', 'The name of a symbol in a shared section is found.'); - is('symbols.getSymbol("Array#some").alias', 'Array#some', 'The alias of a symbol in a shared section is found.'); - is('symbols.getSymbol("Array#some").desc', "Extension to builtin array.", 'A description can be shared.'); - is('symbols.getSymbol("Array#filter").desc', "Extension to builtin array.\nChange every element of an array.", 'A shared description is appended.'); - is('symbols.getSymbol("Queue").desc', "A first in, first out data structure.", 'A description is not shared when outside a shared section.'); - is('symbols.getSymbol("Queue.rewind").alias', "Queue.rewind", 'Second shared tag can be started.'); - is('symbols.getSymbol("startOver").alias', "startOver", 'Shared tag doesnt cross over files.'); - } - , - function() { - symbolize({a: true, _: [SYS.pwd+"test/config.js"]}); - is('symbols.getSymbol("Contact").params[0].name', 'person', 'The name of a param is found.'); - is('symbols.getSymbol("Contact").params[1].name', 'person.name', 'The name of a param set with a dot name is found.'); - is('symbols.getSymbol("Contact").params[2].name', 'person.age', 'The name of a second param set with a dot name is found.'); - is('symbols.getSymbol("Contact").params[4].name', 'connection', 'The name of a param after config is found.'); - - is('symbols.getSymbol("Family").params[0].name', 'persons', 'Another name of a param is found.'); - is('symbols.getSymbol("Family").params[1].name', 'persons.Father', 'The name of a param+config is found.'); - is('symbols.getSymbol("Family").params[2].name', 'persons.Mother', 'The name of a second param+config is found.'); - is('symbols.getSymbol("Family").params[3].name', 'persons.Children', 'The name of a third param+config is found.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/ignore.js"]}); - is('LOG.warnings.filter(function($){if($.indexOf("undocumented symbol Ignored") > -1) return $}).length', 1, 'A warning is emitted when documenting members of an ignored parent.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/functions_anon.js"]}); - is('symbols.getSymbol("a.b").alias', 'a.b', 'In anonymous constructor this is found to be the container object.'); - is('symbols.getSymbol("a.f").alias', 'a.f', 'In anonymous constructor this can have a method.'); - is('symbols.getSymbol("a.c").alias', 'a.c', 'In anonymous constructor method this is found to be the container object.'); - is('symbols.getSymbol("g").alias', 'g', 'In anonymous function executed inline this is the global.'); - is('symbols.getSymbol("bar2.p").alias', 'bar2.p', 'In named constructor executed inline this is the container object.'); - is('symbols.getSymbol("module.pub").alias', 'module.pub', 'In parenthesized anonymous function executed inline function scoped variables arent documented.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/oblit_anon.js"]}); - is('symbols.getSymbol("opt").name', 'opt', 'Anonymous object properties are created.'); - is('symbols.getSymbol("opt.conf.keep").alias', 'opt.conf.keep', 'Anonymous object first property is assigned to $anonymous.'); - is('symbols.getSymbol("opt.conf.base").alias', 'opt.conf.base', 'Anonymous object second property is assigned to $anonymous.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/params_optional.js"]}); - is('symbols.getSymbol("Document").params.length', 3, 'Correct number of params are found when optional param syntax is used.'); - is('symbols.getSymbol("Document").params[1].name', "id", 'Name of optional param is found.'); - is('symbols.getSymbol("Document").params[1].isOptional', true, 'Optional param is marked isOptional.'); - is('symbols.getSymbol("Document").params[2].name', "title", 'Name of optional param with default value is found.'); - is('symbols.getSymbol("Document").params[2].isOptional', true, 'Optional param with default value is marked isOptional.'); - is('symbols.getSymbol("Document").params[2].defaultValue', " This is untitled.", 'Optional param default value is found.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/synonyms.js"]}); - is('symbols.getSymbol("myObject.myFunc").type', 'function', 'Type can be set to function.'); - } - , - function() { - symbolize({a:true, p:true, _: [SYS.pwd+"test/event.js"]}); - is('symbols.getSymbol("Kitchen#event:cakeEaten").isEvent', true, 'Function with event prefix is an event.'); - is('symbols.getSymbol("Kitchen#cakeEaten").isa', "FUNCTION", 'Function with same name as event isa function.'); - } - , - function() { - symbolize({x:"js", a:true, _: [SYS.pwd+"test/scripts/"]}); - is('JSDOC.JsDoc.srcFiles.length', 1, 'Only js files are scanned when -x=js.'); - } - , - function() { - symbolize({x:"js", a:true, _: [SYS.pwd+"test/exports.js"]}); - is('symbols.getSymbol("mxn.Map#doThings").name', 'doThings', 'Exports creates a documentation alias that can have methods.'); - } - , - function() { - symbolize({p:true, a:true, _: [SYS.pwd+"test/module.js"]}); - is('symbols.getSymbol("myProject.myModule.myPublicMethod").name', 'myPublicMethod', 'A function wrapped in parens can be recognized.'); - is('symbols.getSymbol("myProject.myModule-myPrivateMethod").name', 'myPrivateMethod', 'A private method in the scope of a function wrapped in parens can be recognized.'); - is('symbols.getSymbol("myProject.myModule-myPrivateVar").name', 'myPrivateVar', 'A private member in the scope of a function wrapped in parens can be recognized.'); - } -]; - -//// run and print results -print(testrun(testCases)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/addon.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/addon.js deleted file mode 100644 index 88862053..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/addon.js +++ /dev/null @@ -1,24 +0,0 @@ -String.prototype.reverse = function() { -} - -String.prototype.reverse.utf8 = function() { -} - -Function.count = function() { -} - -/** @memberOf Function */ -Function.count.reset = function() { -} - -/** @memberOf Function */ -count.getValue = function() { -} - -/** @memberOf Function.prototype */ -getSig = function() { -} - -/** @memberOf Function.prototype */ -Function.prototype.getProps = function() { -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/anon_inner.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/anon_inner.js deleted file mode 100644 index 227eeee5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/anon_inner.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * @name bar - * @namespace - */ - -new function() { - /** - * @name bar-foo - * @function - * @param {number} x - */ - function foo(x) { - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/augments.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/augments.js deleted file mode 100644 index 12e706eb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/augments.js +++ /dev/null @@ -1,31 +0,0 @@ -/** -@constructor -*/ -function Layout(p) { - this.init = function(p) { - } - - this.getId = function() { - } - - /** @type Page */ - this.orientation = "landscape"; -} - -/** -@constructor -@augments Layout -*/ -function Page() { - this.reset = function(b) { - } -} - -/** -@extends Page -@constructor -*/ -function ThreeColumnPage() { - this.init = function(resetCode) { - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/augments2.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/augments2.js deleted file mode 100644 index e8388f0f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/augments2.js +++ /dev/null @@ -1,26 +0,0 @@ -/** -@constructor -*/ -function LibraryItem() { - this.reserve = function() { - } -} - -/** -@constructor -*/ -function Junkmail() { - this.annoy = function() { - } -} - -/** -@inherits Junkmail.prototype.annoy as pester -@augments ThreeColumnPage -@augments LibraryItem -@constructor -*/ -function NewsletterPage() { - this.getHeadline = function() { - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/borrows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/borrows.js deleted file mode 100644 index a5d8ea4a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/borrows.js +++ /dev/null @@ -1,46 +0,0 @@ -/** -@constructor -*/ -function Layout(p) { - /** initilize 1 */ - this.init = function(p) { - } - - /** get the id */ - this.getId = function() { - } - - /** @type string */ - this.orientation = "landscape"; - - function getInnerElements(elementSecretId){ - } -} - -/** A static method. */ -Layout.units = function() { -} - -/** -@constructor -@borrows Layout#orientation -@borrows Layout-getInnerElements -@borrows Layout.units -*/ -function Page() { - /** reset the page */ - this.reset = function(b) { - } -} - -/** -@constructor -@borrows Layout.prototype.orientation as this.orientation -@borrows Layout.prototype.init as #init -@inherits Page.prototype.reset as #reset -*/ -function ThreeColumnPage() { - /** initilize 2 */ - this.init = function(p) { - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/borrows2.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/borrows2.js deleted file mode 100644 index c0d5ea21..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/borrows2.js +++ /dev/null @@ -1,23 +0,0 @@ -// testing circular borrows - -/** - @class - @borrows Bar#zop as this.my_zop -*/ -function Foo() { - /** this is a zip. */ - this.zip = function() {} - - this.my_zop = new Bar().zop; -} - -/** - @class - @borrows Foo#zip as this.my_zip -*/ -function Bar() { - /** this is a zop. */ - this.zop = function() {} - - this.my_zip = new Foo().zip; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/config.js deleted file mode 100644 index 0748a210..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/config.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * @constructor - * @param person The person. - * @param {string} person.name The person's name. - * @config {integer} age The person's age. - * @config [id=1] Optional id number to use. - * @param connection - */ -function Contact(person, connection) { - -} - -/** - * @constructor - * @param persons - * @config {string} Father The paternal person. - * @config {string} Mother The maternal person. - * @config {string[]} Children And the rest. - */ -function Family(/**Object*/persons) { - -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/constructs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/constructs.js deleted file mode 100644 index cca5dbd3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/constructs.js +++ /dev/null @@ -1,18 +0,0 @@ -var Person = makeClass( - /** - @scope Person - */ - { - /** - This is just another way to define a constructor. - @constructs - @param {string} name The name of the person. - */ - initialize: function(name) { - this.name = name; - }, - say: function(message) { - return this.name + " says: " + message; - } - } -); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/encoding.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/encoding.js deleted file mode 100644 index ba642193..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/encoding.js +++ /dev/null @@ -1,10 +0,0 @@ - -/** - * @Constructor - * @desc 配置文件 - * @class 什么也不返回 - */ -function Test(conf) { - // do something; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/encoding_other.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/encoding_other.js deleted file mode 100644 index b144da4c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/encoding_other.js +++ /dev/null @@ -1,12 +0,0 @@ - -/** - * @Constructor - * @desc - * @class - */ -function Test(conf) { - // do something; -} - -// run with commanline option -e=iso-8859-5 - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/event.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/event.js deleted file mode 100644 index 7e41d6f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/event.js +++ /dev/null @@ -1,54 +0,0 @@ -/** - * @name Kitchen - * @constructor - * @fires Bakery#event:donutOrdered - */ - -/** - * Fired when some cake is eaten. - * @name Kitchen#event:cakeEaten - * @function - * @param {Number} pieces The number of pieces eaten. - */ - -/** - * Find out if cake was eaten. - * @name Kitchen#cakeEaten - * @function - * @param {Boolean} wasEaten - */ - -/** - * @name getDesert - * @function - * @fires Kitchen#event:cakeEaten - */ - -/** - * @name Bakery - * @constructor - * @extends Kitchen - */ - -/** - * Fired when a donut order is made. - * @name Bakery#event:donutOrdered - * @event - * @param {Event} e The event object. - * @param {String} [e.topping] Optional sprinkles. - */ - -/** - * @constructor - * @borrows Bakery#event:donutOrdered as this.event:cakeOrdered - */ -function CakeShop() { -} - -/** @event */ -CakeShop.prototype.icingReady = function(isPink) { -} - -/** @event */ -function amHungry(/**Boolean*/enoughToEatAHorse) { -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/exports.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/exports.js deleted file mode 100644 index 63a87cb4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/exports.js +++ /dev/null @@ -1,14 +0,0 @@ -/** @namespace */ -var mxn = {}; - -(function(){ - /** @exports Map as mxn.Map */ - var Map = - /** @constructor */ - mxn.Map = function() { - }; - - /** A method. */ - Map.prototype.doThings = function() { - }; -})(); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/functions_anon.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/functions_anon.js deleted file mode 100644 index e9dd6c1b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/functions_anon.js +++ /dev/null @@ -1,39 +0,0 @@ -/** an anonymous constructor executed inline */ -a = new function() { - /** a.b*/ - this.b = 1; - /** a.f */ - this.f = function() { - /** a.c */ - this.c = 2; - } -} - - -/** - named function executed inline -*/ -bar1 = function Zoola1() { - /** property of global */ - this.g = 1; -}(); - -/** - named constructor executed inline -*/ -bar2 = new function Zoola2() { - /** property of bar */ - this.p = 1; -}; - -/** module pattern */ -module = (function () { - /** won't appear in documentation */ - var priv = 1; - - /** @scope module */ - return { - /** will appear as a property of module */ - pub: 1 - } -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/functions_nested.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/functions_nested.js deleted file mode 100644 index f044fafe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/functions_nested.js +++ /dev/null @@ -1,33 +0,0 @@ -/** @constructor */ -function Zop() { -} - -/** - @class -*/ -Foo = function(id) { - // this is a bit twisted, but if you call Foo() you will then - // modify Foo(). This is kinda, sorta non-insane, because you - // would have to call Foo() 100% of the time to use Foo's methods - Foo.prototype.methodOne = function(bar) { - alert(bar); - }; - - // same again - Foo.prototype.methodTwo = function(bar2) { - alert(bar2); - }; - - // and these are only executed if the enclosing function is actually called - // and who knows if that will ever happen? - Bar = function(pez) { - alert(pez); - }; - Zop.prototype.zap = function(p){ - alert(p); - }; - - // but this is only visible inside Foo - function inner() { - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/global.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/global.js deleted file mode 100644 index 5ea48949..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/global.js +++ /dev/null @@ -1,13 +0,0 @@ -/** ecks */ -var x = [1, 2, 4]; - -var y = { - foo: function(){ - } -} - -bar = function() { -} - -function zop() { -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/globals.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/globals.js deleted file mode 100644 index 3f83fb1f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/globals.js +++ /dev/null @@ -1,25 +0,0 @@ -function example(/**Circle*/a, b) { - /** a global defined in function */ - var number = a; - - var hideNumber = function(){ - } - - setNumber = function(){ - } - alert('You have chosen: ' + b); -} - -function initPage() { - var supported = document.createElement && document.getElementsByTagName; - if (!supported) return; - // start of DOM script - var x = document.getElementById('writeroot'); - // etc. -} - -/** an example var */ -var document = new Document(x, y); - -var getNumber = function(){ -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/ignore.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/ignore.js deleted file mode 100644 index d3fac9ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/ignore.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * A test constructor. - * @constructor - * @ignore - */ -function Ignored() { - /** a method */ - this.bar = function() { - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/inner.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/inner.js deleted file mode 100644 index 37cfa9dc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/inner.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * @constructor - */ -function Outer() { - /** - * @constructor - */ - function Inner(name) { - /** The name of this. */ - this.name = name; - } - - this.open = function(name) { - return (new Inner(name)); - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/jsdoc_test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/jsdoc_test.js deleted file mode 100644 index 08177128..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/jsdoc_test.js +++ /dev/null @@ -1,477 +0,0 @@ -/** - * @fileoverview This file is to be used for testing the JSDoc parser - * It is not intended to be an example of good JavaScript OO-programming, - * nor is it intended to fulfill any specific purpose apart from - * demonstrating the functionality of the - * JSDoc parser - * - * @author Gabriel Reid gab_reid@users.sourceforge.net - * @version 0.1 - */ - - -/** - * Construct a new Shape object. - * @class This is the basic Shape class. - * It can be considered an abstract class, even though no such thing - * really existing in JavaScript - * @constructor - * @throws MemoryException if there is no more memory - * @throws GeneralShapeException rarely (if ever) - * @return {Shape|Coordinate} A new shape. - */ -function Shape(){ - - /** - * This is an example of a function that is not given as a property - * of a prototype, but instead it is assigned within a constructor. - * For inner functions like this to be picked up by the parser, the - * function that acts as a constructor must be denoted with - * the @constructor tag in its comment. - * @type String - */ - this.getClassName = function(){ - return "Shape"; - } - - /** - * This is an inner method, just used here as an example - * @since version 0.5 - * @author Sue Smart - */ - function addReference(){ - // Do nothing... - } - -} - -/** - * Create a new Hexagon instance. - * @extends Shape - * @class Hexagon is a class that is a logical sublcass of - * {@link Shape} (thanks to the @extends tag), but in - * reality it is completely unrelated to Shape. - * @param {int} sideLength The length of one side for the new Hexagon - * @example - * var h = new Hexagon(2); - * @example - * if (hasHex) { - * hex = new Hexagon(5); - * color = hex.getColor(); - * } - */ -function Hexagon(sideLength) { -} - - -/** - * This is an unattached (static) function that adds two integers together. - * @param {int} One The first number to add - * @param {int} Two The second number to add - * @author Gabriel Reid - * @deprecated So you shouldn't use it anymore! Use {@link Shape#getClassName} instead. - */ -function Add(One, Two){ - return One + Two; -} - - -/** - * The color of this shape - * @type Color - */ -Shape.prototype.color = null; - -/** - * The border of this shape. - * @field - * @type int - */ -Shape.prototype.border = function(){return border;}; - -/* - * These are all the instance method implementations for Shape - */ - -/** - * Get the coordinates of this shape. It is assumed that we're always talking - * about shapes in a 2D location here. - * @requires The {@link Shape} class - * @returns A Coordinate object representing the location of this Shape - * @type Coordinate[] - */ -Shape.prototype.getCoords = function(){ - return this.coords; -} - -/** - * Get the color of this shape. - * @see #setColor - * @see The Color library. - * @link Shape - * @type Color - */ -Shape.prototype.getColor = function(){ - return this.color; -} - -/** - * Set the coordinates for this Shape - * @param {Coordinate} coordinates The coordinates to set for this Shape - */ -Shape.prototype.setCoords = function(coordinates){ - this.coords = coordinates; -} - -/** - * Set the color for this Shape - * @param {Color} color The color to set for this Shape - * @param other There is no other param, but it can still be documented if - * optional parameters are used - * @throws NonExistantColorException (no, not really!) - * @see #getColor - */ -Shape.prototype.setColor = function(color){ - this.color = color; -} - -/** - * Clone this shape - * @returns A copy of this shape - * @type Shape - * @author Gabriel Reid - */ -Shape.prototype.clone = function(){ - return new Shape(); -} - -/** - * Create a new Rectangle instance. - * @class A basic rectangle class, inherits from Shape. - * This class could be considered a concrete implementation class - * @constructor - * @param {int} width The optional width for this Rectangle - * @param {int} height Thie optional height for this Rectangle - * @author Gabriel Reid - * @see Shape is the base class for this - * @augments Shape - * @hilited - */ -function Rectangle(width, // This is the width - height // This is the height - ){ - if (width){ - this.width = width; - if (height){ - this.height = height; - } - } -} - - -/* Inherit from Shape */ -Rectangle.prototype = new Shape(); - -/** - * Value to represent the width of the Rectangle. - *
      Text in bold and italic and a - * link to SourceForge - * @private - * @type int - */ -Rectangle.prototype.width = 0; - -/** - * Value to represent the height of the Rectangle - * @private - * @type int - */ -Rectangle.prototype.height = 0; - -/** - * Get the type of this object. - * @type String - */ -Rectangle.prototype.getClassName= function(){ - return "Rectangle"; -} - -/** - * Get the value of the width for the Rectangle - * @type int - * @see Rectangle#setWidth - */ -Rectangle.prototype.getWidth = function(){ - return this.width; -} - -/** - * Get the value of the height for the Rectangle. - * Another getter is the {@link Shape#getColor} method in the - * {@link Shape} base class. - * @return The height of this Rectangle - * @type int - * @see Rectangle#setHeight - */ -Rectangle.prototype.getHeight = function(){ - return this.height; -} - -/** - * Set the width value for this Rectangle. - * @param {int} width The width value to be set - * @see #setWidth - */ -Rectangle.prototype.setWidth = function(width){ - this.width = width; -} - -/** - * Set the height value for this Rectangle. - * @param {int} height The height value to be set - * @see #getHeight - */ -Rectangle.prototype.setHeight = function(height){ - this.height = height; -} - -/** - * Get the value for the total area of this Rectangle - * @return total area of this Rectangle - * @type int - */ -Rectangle.prototype.getArea = function(){ - return width * height; -} - - -/** - * Create a new Square instance. - * @class A Square is a subclass of {@link Rectangle} - * @param {int} width The optional width for this Rectangle - * @param {int} height The optional height for this Rectangle - * @augments Rectangle - */ -function Square(width, height){ - if (width){ - this.width = width; - if (height){ - this.height = height; - } - } - -} - -/* Square is a subclass of Rectangle */ -Square.prototype = new Rectangle(); - -/** - * Set the width value for this Shape. - * @param {int} width The width value to be set - * @see #getWidth - */ -Square.prototype.setWidth = function(width){ - this.width = this.height = width; -} - -/** - * Set the height value for this Shape - * Sets the {@link Rectangle#height} attribute in the Rectangle. - * @param {int} height The height value to be set - */ -Square.prototype.setHeight = function(height){ - this.height = this.width = height; -} - - -/** - * Create a new Circle instance based on a radius. - * @class Circle class is another subclass of Shape - * @extends Shape - * @param {int} radius The optional radius of this {@link Circle } - * @mixin Square.prototype.setWidth as this.setDiameter - */ -function Circle(radius){ - if (radius) { - /** The radius of the this Circle. */ - this.radius = radius; - } -} - -/* Circle inherits from {@link Shape} */ -Circle.prototype = new Shape(); - -/** - * The radius value for this Circle - * @private - * @type int - */ -Circle.prototype.radius = 0; - -/** - * A very simple class (static) field that is also a constant - * @final - * @type float - */ -Circle.PI = 3.14; - -/** - * Get the radius value for this Circle - * @type int - * @see #setRadius - */ -Circle.prototype.getRadius = function(){ - return this.radius; -} - -/** - * Set the radius value for this Circle - * @param {int} radius The {@link Circle#radius} value to set - * @see #getRadius - */ -Circle.prototype.setRadius = function(radius){ - this.radius = radius; -} - -/** - * An example of a class (static) method that acts as a factory for Circle - * objects. Given a radius value, this method creates a new Circle. - * @param {int} radius The radius value to use for the new Circle. - * @type Circle - */ -Circle.createCircle = function(radius){ - return new Circle(radius); -} - - -/** - * Create a new Coordinate instance based on x and y grid data. - * @class Coordinate is a class that can encapsulate location information. - * @param {int} [x=0] The optional x portion of the Coordinate - * @param {int} [y=0] The optinal y portion of the Coordinate - */ -function Coordinate(x, y){ - if (x){ - this.x = x; - if (y){ - this.y = y; - } - } -} - -/** - * The x portion of the Coordinate - * @type int - * @see #getX - * @see #setX - */ -Coordinate.prototype.x = 0; - -/** - * The y portion of the Coordinate - * @type int - * @see #getY - * @see #setY - */ -Coordinate.prototype.y = 0; - -/** - * Gets the x portion of the Coordinate. - * @type int - * @see #setX - */ -Coordinate.prototype.getX = function(){ - return this.x; -} - -/** - * Get the y portion of the Coordinate. - * @type int - * @see #setY - */ -Coordinate.prototype.getY = function(){ - return this.y; -} - -/** - * Sets the x portion of the Coordinate. - * @param {int} x The x value to set - * @see #getX - */ -Coordinate.prototype.setX = function(x){ - this.x = x; -} - -/** - * Sets the y portion of the Coordinate. - * @param {int} y The y value to set - * @see #getY - */ -Coordinate.prototype.setY = function(y){ - this.y = y; -} - -/** - * @class This class exists to demonstrate the assignment of a class prototype - * as an anonymous block. - */ -function ShapeFactory(){ -} - -ShapeFactory.prototype = { - /** - * Creates a new {@link Shape} instance. - * @return A new {@link Shape} - * @type Shape - */ - createShape: function(){ - return new Shape(); - } -} - -/** - * An example of a singleton class - * @param ... Arguments represent {@link coordinate}s in the shape. - * @constructor - */ -MySingletonShapeFactory = function(){ - - /** - * Get the next {@link Shape} - * @type Shape - * @return A new {@link Shape} - */ - this.getShape = function(){ - return null; - } - -} - - -/** - * Create a new Foo instance. - * @class This is the Foo class. It exists to demonstrate 'nested' classes. - * @constructor - * @see Foo.Bar - */ -function Foo(){} - -/** - * Creates a new instance of Bar. - * @class This class exists to demonstrate 'nested' classes. - * @constructor - * @see Foo.Bar - */ -function Bar(){} - -/** - * Nested class - * @constructor - */ -Foo.Bar = function(){ - /** The x. */ this.x = 2; -} - -Foo.Bar.prototype = new Bar(); -/** The y. */ -Foo.Bar.prototype.y = '3'; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/lend.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/lend.js deleted file mode 100644 index 92b15d5a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/lend.js +++ /dev/null @@ -1,33 +0,0 @@ - /** @class */ -var Person = Class.create( - /** - @lends Person.prototype - */ - { - initialize: function(name) { - this.name = name; - }, - say: function(message) { - return this.name + ': ' + message; - } - } - ); - -/** @lends Person.prototype */ -{ - /** like say but more musical */ - sing: function(song) { - } -} - -/** @lends Person */ -{ - getCount: function() { - } -} - -/** @lends Unknown.prototype */ -{ - notok: function() { - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof.js deleted file mode 100644 index 883bbdeb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof.js +++ /dev/null @@ -1,19 +0,0 @@ -/** @constructor */ -pack = function() { - this.init = function(){} - function config(){} -} - - pack.build = function(task) {}; - -/** @memberOf pack */ -pack.install = function() {} - -/** @memberOf pack */ -pack.install.overwrite = function() {} - -/** @memberOf pack */ -clean = function() {} - -/** @memberOf pack-config */ -install = function() {}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof2.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof2.js deleted file mode 100644 index bc3d9d8f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof2.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * @constructor - */ -function Foo() { - /** - @memberOf Foo.prototype - */ - function bar(a, b) { - } - - /** - @memberOf Foo - */ - var zip = function(p, q) { - } - - /** - @memberOf Foo - */ - function zop( x,y ) { - } - - /** - @memberOf Foo - @constructor - */ - function Fiz() { - /** A method of Foo#Fiz. */ - this.fipple = function(fop){} - } -} - -/** - @memberOf Foo# - */ -var blat = function() { - -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof3.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof3.js deleted file mode 100644 index 8c259425..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof3.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @name Foo -* @class -*/ - -/**#@+ -* @memberOf Foo# -* @field -*/ - -/** -* @name bar -* @type Object[] -*/ - -/**#@-*/ - -/** -* @name Foo2 -* @class -*/ - -/**#@+ -* @memberOf Foo2# -* @field -*/ - -/** -* @name bar -* @type Object[] -*/ - -/**#@-*/ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof_constructor.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof_constructor.js deleted file mode 100644 index 80fde735..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/memberof_constructor.js +++ /dev/null @@ -1,17 +0,0 @@ -/** @constructor */ -function Circle(){} - -/** - @constructor - @memberOf Circle# - */ -Circle.prototype.Tangent = function(){}; - -// renaming Circle#Tangent to Circle#Circle#Tangent - -/** - @memberOf Circle#Tangent# - */ -Circle.prototype.Tangent.prototype.getDiameter = function(){}; - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/module.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/module.js deleted file mode 100644 index 5b3fe42c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/module.js +++ /dev/null @@ -1,17 +0,0 @@ -/** @namespace */ -myProject = myProject || {}; - -/** @namespace */ -myProject.myModule = (function () { - /** describe myPrivateVar here */ - var myPrivateVar = ""; - - var myPrivateMethod = function () { - } - - /** @scope myProject.myModule */ - return { - myPublicMethod: function () { - } - }; -})(); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/multi_methods.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/multi_methods.js deleted file mode 100644 index bab35c76..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/multi_methods.js +++ /dev/null @@ -1,25 +0,0 @@ - -/** - Get the entire flavor. - @name flavor^3 - @function - @returns {Object} The entire flavor hash. -*/ -/** - Get a named flavor. - @name flavor^2 - @function - @param {String} name The name of the flavor to get. - @returns {String} The value of that flavor. -*/ -/** - Set the flavor. - @param {String} name The name of the flavor to set. - @param {String} value The value of the flavor. - @returns {String} The value of that flavor. -*/ -function flavor(name, value) { - if (arguments.length > 1) flavor[name] = value; - else if (arguments.length == 1) return flavor[name]; - else return flavor; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/name.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/name.js deleted file mode 100644 index e88a51a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/name.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - @name Response - @class -*/ - -Response.prototype = { - /** - @name Response#text - @function - @description - Gets the body of the response as plain text - @returns {String} - Response as text - */ - - text: function() { - return this.nativeResponse.responseText; - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/namespace_nested.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/namespace_nested.js deleted file mode 100644 index 46cafa2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/namespace_nested.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - @namespace This is the first namespace. -*/ -ns1 = {}; - -/** - This is the second namespace. - @namespace -*/ -ns1.ns2 = {}; - -/** - This part of ns1.ns2 - @constructor -*/ -ns1.ns2.Function1 = function() { -}; - -ns1.staticFunction = function() { -}; - -/** A static field in a namespace. */ -ns1.ns2.staticField = 1; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/nocode.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/nocode.js deleted file mode 100644 index 1cf99bc9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/nocode.js +++ /dev/null @@ -1,13 +0,0 @@ -/**#nocode+*/ - /** - @name star - @function - */ - function blahblah() { - - } -/**#nocode-*/ - -function yaddayadda() { - -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/oblit_anon.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/oblit_anon.js deleted file mode 100644 index 8d9e9413..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/oblit_anon.js +++ /dev/null @@ -1,20 +0,0 @@ -/** the options */ -opt = Opt.get( - arguments, - { - d: "directory", - c: "conf", - "D[]": "define" - } -); - -/** configuration */ -opt.conf = { - /** keep */ - keep: true, - /** base */ - base: getBase(this, {p: properties}) -} - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/overview.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/overview.js deleted file mode 100644 index 1dfc09b1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/overview.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @overview This "library" contains a - * lot of classes and functions. - * @example -
      -	var x (x < 1);
      -	alert("This 'is' \"code\"");
      - 
      - * @name My Cool Library - * @author Joe Smith jsmith@company.com - * @version 0.1 - */ - -/** - * Gets the current foo - * @param {String} fooId The unique identifier for the foo. - * @return {Object} Returns the current foo. - */ -function getFoo(fooID){ -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/param_inline.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/param_inline.js deleted file mode 100644 index 09845b28..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/param_inline.js +++ /dev/null @@ -1,37 +0,0 @@ -/** - @constructor - @param columns The number of columns. -*/ -function Layout(/**int*/columns){ - /** - @param [id] The id of the element. - @param elName The name of the element. - */ - this.getElement = function( - /** string */ elName, - /** number|string */ id - ) { - }; - - /** - @constructor - */ - this.Canvas = function(top, left, /**int*/width, height) { - /** Is it initiated yet? */ - this.initiated = true; - } - - this.rotate = function(/**nothing*/) { - } - - /** - @param x - @param y - @param {zoppler} z*/ - this.init = function(x, y, /**abbler*/z) { - /** The xyz. */ - this.xyz = x+y+z; - this.getXyz = function() { - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/params_optional.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/params_optional.js deleted file mode 100644 index 18bf5982..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/params_optional.js +++ /dev/null @@ -1,8 +0,0 @@ - -/** - * @param {Page[]} pages - * @param {number} [id] Specifies the id, if applicable. - * @param {String} [title = This is untitled.] Specifies the title. - */ -function Document(pages, id, title){ -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype.js deleted file mode 100644 index 11470083..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype.js +++ /dev/null @@ -1,17 +0,0 @@ -/** @constructor */ -function Article() { -} - -Article.prototype.init = function(title) { - /** the instance title */ - this.title = title; - - /** the static counter */ - Article.counter = 1; -} - -a = new Article(); -a.Init("my title"); - -print(a.title); -print(Article.counter); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype_nested.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype_nested.js deleted file mode 100644 index e8ca1ced..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype_nested.js +++ /dev/null @@ -1,9 +0,0 @@ -/** @constructor */ -function Word() { -} - -Word.prototype.reverse = function() { -} - -Word.prototype.reverse.utf8 = function() { -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype_oblit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype_oblit.js deleted file mode 100644 index 6cfc39ca..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype_oblit.js +++ /dev/null @@ -1,13 +0,0 @@ -/** @constructor */ -function Article() { -} - -Article.prototype = { - /** instance get title */ - getTitle: function(){ - } -} - -/** static get title */ -Article.getTitle = function(){ -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype_oblit_constructor.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype_oblit_constructor.js deleted file mode 100644 index 92482486..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/prototype_oblit_constructor.js +++ /dev/null @@ -1,24 +0,0 @@ -/** @constructor */ -function Article() { -} - -Article.prototype = { - /** @constructor */ - Title: function(title) { - /** the value of the Title instance */ - this.title = title; - }, - - init: function(pages) { - /** the value of the pages of the Article instance */ - this.pages = pages; - } -} - -f = new Article(); -f.init("one two three"); - -t = new f.Title("my title"); - -print(f.pages); -print(t.title); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/public.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/public.js deleted file mode 100644 index 35d34f6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/public.js +++ /dev/null @@ -1,10 +0,0 @@ -/**@constructor*/ -function Foo() { - /** - @public - @static - @field - */ - var bar = function(x) { - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/scripts/code.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/scripts/code.js deleted file mode 100644 index e9d7ed2e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/scripts/code.js +++ /dev/null @@ -1,5 +0,0 @@ -/** - @class - */ -function thisiscode() { -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/scripts/notcode.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/scripts/notcode.txt deleted file mode 100644 index fcd737e7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/scripts/notcode.txt +++ /dev/null @@ -1,5 +0,0 @@ -(This is not code) -function foo(){{{{ -( -! -@ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/shared.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/shared.js deleted file mode 100644 index e1c277a6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/shared.js +++ /dev/null @@ -1,42 +0,0 @@ - -/** - * Builtin object. - * @class - * @name Array - */ - -/**#@+ - * Extension to builtin array. - * @memberOf Array - * @method - */ - -/** - * @returns Boolen if some array members... - */ -Array.prototype.some = function(){}; - -/** - * Change every element of an array. - * @returns Filtered array copy. - */ -Array.prototype.filter = function(){}; - -/**#@-*/ - - -/** - * A first in, first out data structure. - * @constructor - */ -Queue = function(){}; - -/**#@+ - * Extension to Queue. - * @memberOf Queue - */ - -rewind = function(){ -} - -// should close automatically here. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/shared2.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/shared2.js deleted file mode 100644 index 3f7736a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/shared2.js +++ /dev/null @@ -1,2 +0,0 @@ -startOver = function(){ -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/shortcuts.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/shortcuts.js deleted file mode 100644 index f738f1e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/shortcuts.js +++ /dev/null @@ -1,22 +0,0 @@ -// /**#=+ -// * { -// * 'D': 'Date.prototype', -// * '$N': 'Number' -// * } -// */ -// var D = Date.prototype, -// $N = Number; -// -// D.locale = function(){ -// }; -// -// /** -// @return {string} The cardinal number string. -// */ -// $N.nth = function(n){ -// }; -// -// LOAD.file = function(){ -// } -// -// /**#=-*/ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/static_this.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/static_this.js deleted file mode 100644 index 9407b20f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/static_this.js +++ /dev/null @@ -1,13 +0,0 @@ -/** the parent */ -var box = {}; - -/** @namespace */ -box.holder = {} - -box.holder.foo = function() { - /** the counter */ - this.counter = 1; -} - -box.holder.foo(); -print(box.holder.counter); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/synonyms.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/synonyms.js deleted file mode 100644 index 09066b98..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/synonyms.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - @class - @inherits Bar#zop as #my_zop -*/ -function Foo() { - /** this is a zip. */ - this.zip = function() {} - - /** from Bar */ - this.my_zop = new Bar().zop; -} - -/** - @class - @borrows Foo#zip as this.my_zip -*/ -function Bar() { - /** this is a zop. */ - this.zop = function() {} - - /** from Foo */ - this.my_zip = new Foo().zip; -} - -/** @namespace */ -var myObject = { - /** - @type function - */ - myFunc: getFunction() -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/tosource.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/tosource.js deleted file mode 100644 index 706d4765..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/tosource.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * @param {Object} object - * @return {string} - */ -function valueOf(object) {} - -/** - * @param {Object} object - * @return {string} - */ -function toString(object) {} - -/** - * @param {Object} object - * @return {string} - */ -function toSource(object) {} - -/** - * @param {Object} object - * @return {string} - */ -function constructor(object) {} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/variable_redefine.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/variable_redefine.js deleted file mode 100644 index 2c07da09..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/app/test/variable_redefine.js +++ /dev/null @@ -1,14 +0,0 @@ -/** @constructor */ -function Foo() { - var bar = 1; - bar = 2; // redefining a private - - this.baz = 1; - baz = 2; // global - - /** a private */ - var blap = { - /** in here */ - tada: 1 - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/changes.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/changes.txt deleted file mode 100644 index b0acbab7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/changes.txt +++ /dev/null @@ -1,124 +0,0 @@ -== 2.4.0 == - - * Fixed bug that added mutiple symbols with the same name to docs. - * Added support for the -m option to suppress warnings for multiple docs. - * Added patch by brownsea42 to support quoted user variables on the command line. ( issue #281 ) - * Fixed bug that sometimes caused links to events to be incorrect. ( issue #292 ) - -== 2.3.3 == - - * Fixed bug that made all fields declared with the @property tag static. ( issue #262 ) - * Minor fix to better handle trailing slash on path to template (from jwmetrocat). ( issue #237 ) - * Fix for @memberOf when applied to inner members. ( issue #264 ) - * Fix for @memberOf when applied to symbols documented with @name. ( issue #260 ) - * Applied patch from kunhualqk, fix for bug where @link to borrowed member did not resolve to parent class. ( issue #218 ) - * Fix for @requires not linking back to the required class - * Added experimental support for @constructs to have an argument, the class name, when applied to a function assignment. - -== 2.3.2 == - - * Minor update to the usage notes and corrected the version number displayed in the output. - -== 2.3.1 == - - * Fixed HTML typo in allfiles template. ( issue #228 ) - * Modified template to display version information for classes. - * Modified template to better support multiple methods with the same name. - * Fixed bug that caused template to error when backtick characters appeared around class names. - -== 2.3.0 == - - * Added option -u, --unique to avoid bug that causes multiple symbols with names that differ only by case to overwrite each others output on case-insensitive filesystems. ( issue #162 ) - * Fixed bug where {@links} in @deprecated tags did not resolve. ( issue #220 ) - * Fixed bug that caused parens around a function to make it to be unrecognized. ( issue #213 ) - * Fixed bug prevented explicit links to named anchors from working (thanks katgao.pku). ( issue #215 ) - * Fixed bug that prevented full description from appearing in file overview. ( issue #224 ) - -== 2.2.1 == - - * Fixed bug with class template, where sorting of methods was accidentally removed (thanks dezfowler). - * Added missing test files for the @exports unit tests. - -== 2.2.0 == - - * Fixed bug that caused exception when given a folder containing non-js files, even with the x commandline option set to "js". ( issue #193 ) - * Fixed typo in index template [patch submitted by olle]. ( issue #198 ) - * Modified @borrows tag experimentally to allow for missing "as ..." clause. - * Added support for the @exports tag, to allow one symbol to be documented as another. - * Added support for the -S option to document code following the Secure Modules pattern. - -== 2.1.0 == - - * Added support for the @event tag. - * Fixed bug that prevented the : character from appearing in symbol names. - * Fixed bug that prevented underscored symbols marked with @public being tagged as private. (issue #184 ) - * Fixed bug that randomly affected the @memberOf tag when the name of the symbol did not include the parent name. - * Fixed bug that prevented templates that were not in the jsdoc-toolkit folder from being found. ( issue #176 ) - * Added ability to check for trailing slash on template path. ( issue #177 ) - * Modified classDesc so that it no longer is appended with the constructor desc. - * Fixed call to plugin onDocCommentSrc. - * Added missing support for inline doc comments for function return types. ( issue #189 ) - * Added command line option -q, --quiet. - * Added command line option -E, --exclude. ( issue #143 ) - * Added 2 more hooks for plugins. ( issue #163 ) - * Added support for extending built-ins. ( issue #160 ) - * Added "compact" option to JSDOC.JsPlate.prototype.process. ( issue #159 ) - * @augments no longer documents static members as inherited. ( issue #138 ) - * @link to a class now goes to the page for that class, not the constructor. ( issue #178 ) - * Warnings of mismatched curly brace now include filename. ( issue #166 ) - * Fixed bug affecting template paths loaded via a configuration file when the trailing slash is missing. ( issue #191 ) - * Minor optimizations. - -== 2.0.2 == - - * Fixed bug that sometimes caused an example of division in the source code to be interpretted as a regex by the JsDoc Toolkit analyzer. ( issue #158 ) - * Fixed a bug that prevented private variables marked as @public from appearing in the documentation. ( issue #161 ) - * Fixed bug that prevented variable names with underscored properties from appearing in summaries. ( issue #173 ) - -== 2.0.1 == - - * Fixed bug that prevented @fileOverview tag from being recognized. - * Added support for @fieldOf as a synonym for @field plus @memberOf. - * Added support for @name tag in a @fileOverview comment to control the displayed name of the file. - * Added support for multiple @example tags. ( issue #152 ) - * Modified style sheet of jsdoc template to make more readable. ( issue #151 ) - * Fixed bug that prevented @since documentation from displaying correctly when it appeared in a class. ( issue #150 ) - * Fixed bug that caused inhertited properties to sometimes not resolve correctly. ( issue #144 ) - * Modified so that trailing whitespace in @example is always trimmed. ( issue #153 ) - * Added support for elseif to JsPlate. (hat tip to fredck) - * Added support for @location urls in the @overview comment to the jsdoc template. - -== Changes From Versions 1.4.0 to 2.0.0 == - - * Upgraded included version of Rhino from 1.6 to 1.7R1. - * Removed circular references in parsed documentation objects. - * Improved inheritance handling, now properties and events can be inherited same as methods. - * Improved handling of cross-file relationships, now having two related objects in separate files is not a problem. - * Improved ability to recognize membership of previously defined objects. - * Added ability to redefine parsing behavior with plugins. - * @methodOf is a synonym for @function and @memberOf. - * Added @default to document default values of members that are objects. - * Added ability to parse and refer to inner functions. - * Fixed bug that appeared when calling a method to set properties of the instance referred to by "this". - * Added ability to automatically create links to other symbols. - * New "jsdoc" template now produces fully W3C valid XHTML. - * Inline parameter type hint comments are now documented. - * Fixed error: Locally scoped variables (declared with var) no longer appear as global. - * It is now possible to run JsDoc Toolkit from any directory. - * Added support for inline {@link ...} tags. - * Added support for the -H command-line option to allow for custom content handlers. - * Tag names @inherits and @scope changed to @borrows and @lends. - ? Combining @constructor in a doclet with @lends now supported. - * Multiple @lend tags now supported. - * Added support for the @constructs tag, used inside a @lends block. - * Added support for the @constant tag. - * Fixed bug that prevented the use of [] as a default value. - * Added support for the @field tag. - * Added support for the @public tag (applied to inner functions). - * @namespace tag can now be applied to functions, not just object literals. - * Added support for the -s command line option to suppress source code output. - * Added new unit test framework. - * Underscored symbols are now treated as if they have a @private tag by default. - * Improved support for anonymous constructors. - * Added support for the nocode meta tag. - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/conf/sample.conf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/conf/sample.conf deleted file mode 100644 index ad0f08e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/conf/sample.conf +++ /dev/null @@ -1,31 +0,0 @@ -/* - This is an example of one way you could set up a configuration file to more - conveniently define some commandline options. You might like to do this if - you frequently reuse the same options. Note that you don't need to define - every option in this file, you can combine a configuration file with - additional options on the commandline if your wish. - - You would include this configuration file by running JsDoc Toolkit like so: - java -jar jsrun.jar app/run.js -c=conf/sample.conf - -*/ - -{ - // source files to use - _: ['app/test/jsdoc_test.js'], - - // document all functions, even uncommented ones - a: true, - - // including those marked @private - p: true, - - // some extra variables I want to include - D: {generatedBy: "Michael Mathews", copyright: "2008"}, - - // use this directory as the output directory - d: "docs", - - // use this template - t: "templates/jsdoc" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/build.xml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/build.xml deleted file mode 100644 index bb845ce3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/build.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/build_1.4.xml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/build_1.4.xml deleted file mode 100644 index ab408a4c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/build_1.4.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/classes/js.jar b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/classes/js.jar deleted file mode 100644 index 0352cb18..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/classes/js.jar and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/src/JsDebugRun.java b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/src/JsDebugRun.java deleted file mode 100644 index 319a5c67..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/src/JsDebugRun.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * A trivial bootstrap class that simply adds the path to the - * .js file as an argument to the Rhino call. This little hack - * allows the code in the .js file to have access to it's own - * path via the Rhino arguments object. This is necessary to - * allow the .js code to find resource files in a location - * relative to itself. - * - * USAGE: java -jar jsdebug.jar path/to/file.js - */ -public class JsDebugRun { - public static void main(String[] args) { - String[] jsargs = {"-j="+args[0]}; - - String[] allArgs = new String[jsargs.length + args.length]; - System.arraycopy(args, 0, allArgs, 0, args.length); - System.arraycopy(jsargs, 0, allArgs, args.length ,jsargs.length); - - org.mozilla.javascript.tools.debugger.Main.main(allArgs); - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/src/JsRun.java b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/src/JsRun.java deleted file mode 100644 index 25f519a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/java/src/JsRun.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * A trivial bootstrap class that simply adds the path to the - * .js file as an argument to the Rhino call. This little hack - * allows the code in the .js file to have access to it's own - * path via the Rhino arguments object. This is necessary to - * allow the .js code to find resource files in a location - * relative to itself. - * - * USAGE: java -jar jsrun.jar path/to/file.js - */ -public class JsRun { - public static void main(String[] args) { - String[] jsargs = {"-j="+args[0]}; - - String[] allArgs = new String[jsargs.length + args.length]; - System.arraycopy(args, 0, allArgs, 0, args.length); - System.arraycopy(jsargs, 0, allArgs, args.length ,jsargs.length); - - org.mozilla.javascript.tools.shell.Main.main(allArgs); - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/jsdebug.jar b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/jsdebug.jar deleted file mode 100644 index a0ac7daa..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/jsdebug.jar and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/jsrun.jar b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/jsrun.jar deleted file mode 100644 index 49c03f4c..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/jsrun.jar and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/jsrun.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/jsrun.sh deleted file mode 100644 index 74ca79c0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/jsrun.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/ksh - -# launcher script for jsdoc -# Author: Avi Deitcher -# -# This program is released under the MIT License as follows: - -# Copyright (c) 2008-2009 Atomic 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. -# - - -if [[ -n "$JSDOCDIR" ]]; then - _DOCDIR="-Djsdoc.dir=$JSDOCDIR" - _APPDIR="$JSDOCDIR/app" - _BASEDIR="$JSDOCDIR" -else - _DOCDIR="" - _APPDIR="./app" - _BASEDIR="." -fi - -if [[ -n "$JSDOCTEMPLATEDIR" ]]; then - _TDIR="-Djsdoc.template.dir=$JSDOCTEMPLATEDIR" -else - _TDIR="" -fi - -CMD="java $_DOCDIR $_TDIR -jar $_BASEDIR/jsrun.jar $_APPDIR/run.js $@" -echo $CMD -$CMD - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/README.md deleted file mode 100644 index 6b7f4afe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/README.md +++ /dev/null @@ -1,160 +0,0 @@ -WARNING: this template is still under development and it might change every so -often. - -jsdoc-simple -============ - -jsdoc-simple is a modified jsdoc toolkit (Version 2) template with support for -additional documentation. - -## Features ## - -- very simple and readable layout -- Support for additional files and resources -- Scripts and CSS-Files in additional Resource files will be copied - automatically. So one can develop and test examples indiviually and easily - create a self contained documentation. -- Support for Markdown Resource files -- Markdown processing for Class-, Method-, Property-, Event-descriptions -- Dynamically filterable(using regular expressions) symbol index - -An example javascript library using jsdoc-simple can be found at: [http://github.com/urso/qc.js](http://github.com/urso/qc.js) - -[Screenshots](http://github.com/urso/jsdoc-simple/wiki/Screenshots) - -## Install ## - -The whole template directory must be copied as is into jsdoc's template -directory. - -## Usage ## - -In order to use 'jsdoc-simple' you have to tell jsdoc toolkit to use it via -the '-t' flag when calling jsdoc or prepare a jsdoc toolkit configuration file -with option 't:' set to the template's directory. - -You also may want to add some static documentation to the generated -documentation. To do so create a jsdoc toolkit configuration file and add the -option 'docs:' with the field 'content' being an array of files to add and -the optional field 'preprocess'. - -Every Entry in the 'content' array MUST be an object having the fields 'src' -and 'title' plus the optional field 'preprocess'. - -The 'preprocess' field MUST be a shell command to be execute on the 'src' -file. It is assumed that the command will read the file's content from stdin -and print its outcome to stdout. - -For example this will add the files intro.pdc and tutorial.pdc to the -documentation, which are preprocessed using pandoc (Haskell based markdown -program) : - - { - d: 'docs', // output directory 'docs' - a: false, // do not show all symbols - docs: { - preprocess: 'pandoc', // preprocess all files with pandoc - content: [ {src:'docsrc/intro.pdc', - title: 'Introduction' }, - {src:'docsrc/tutorial.pdc', - title: 'Tutorial'} - ] - } - } - -In the following example only the file intro.pdc is preprocessed using pandoc: - - { - d: 'docs', // output directory 'docs' - a: false, // do not show all symbols - docs: { - content: [ {src:'docsrc/intro.pdc', - preprocess: 'pandoc', // preprocess only this file with pandoc - title: 'Introduction' }, - {src:'docsrc/tutorial.html', - title: 'Tutorial'} - ] - } - } - -When using a global preprocessor for all documentations and a local one for a -file, the latter one is chosen for that file only whereas all others are -preprocessed using the former one. - -Creating the documentation then will be as easy as (with \*nix shell): - - $ run.sh -c='jsdoc.conf' -t="$JSDOCDIR/templates/jsdoc-simple" src - -## Handling additional Resources ## - -When supplying further documentation to add to the final document you may want -to add further resources like images, css files or even script files for -showcasing. To do so, the 'docs' field in the jsdoc configuration file -supports a 'resources' field, which must be an Array of File and Directory -paths to copy. - -For example: - - { - d: 'docs', // output directory 'docs' - a: false, // do not show all symbols - docs: { - resources: ['docsrc/images'], - content: [ {src:'docsrc/intro.html', - title: 'Introduction' }, - {src:'docsrc/tutorial.html', - title: 'Tutorial'} - ] - } - } - -If the additional documentation sports a valid html file with header and body, -this file will be processed as follows: - -- get body-Element of the file and copy its inner content to the final output - file - -- get header-Element and analyze tags: - - for every 'script' or 'link' tag the src/href attribute is - adjusted to the file the source was copied to - - for every 'script' or 'link' tag all files named in the src/href - attribute are automatically copied to the documentation directory - - automatically adjust path of output copied resources if needed - - copy html header into template - -Thus when writing JavaScript libraries for example you may showcase using the -relative path to your source file directory and still test it without -rebuilding the documentation. When building the documentation your library -will be copied then into the final output, such that your examples will still -work and the whole documentation is self contained and can be redistributed -without the original sources. - -Furthermore if a markdown file is given (any file ending with .mk or .markdown) -but no preprocessor, the file is automatically converted to html. - -## Using the Symbol Index ## - -The Symbol index page features a text field used for filtering. When filtering -the content of this text field is interpreted as a regular expression. Thus -typing the expression "a|b|c" will find all symbols starting with a or b or c. -Furthermore the regular expression is interpreted to be case insensitive. But -if you have symbolic names using special characters like '$' proper escaping -is needed. Meaning that if you want to filter all symbols starting with '$' -you have to type "\$". - -## Credits ## - -- JavaScript HTML Parser: - HTML Parser By John Resig (ejohn.org) - Original code by Erik Arvidsson, Mozilla Public License - http://erik.eae.net/simplehtmlparser/simplehtmlparser.js - -- [MooTools 1.2.4 Server](http://mootools.net/developers/): - authors: The MooTools production team - -- [JSDom](http://github.com/urso/jsdom): - JavaScript DOM duck typing classes for non browser environments - -- [Showdown](http://attacklab.net/showdown/): - Markdown for JavaScript - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/allclasses.tmpl b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/allclasses.tmpl deleted file mode 100644 index 11678f14..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/allclasses.tmpl +++ /dev/null @@ -1,20 +0,0 @@ - -

      Index

      -
        -
      • {+new Link().toFile("files.html").withText("File Index")+}
      • -
      • {+new Link().toFile("index.html").withText("Class Index")+}
      • -
      • {+new Link().toFile("symbolindex.html").withText("Symbol Index")+}
      • -
      -

      Classes

      -
        - -
      • {! - if (thisClass.alias == "_global_") { - output += ""+new Link().toClass(thisClass.alias)+""; - } - else { - output += new Link().toClass(thisClass.alias); - } - !}
      • -
        -
      diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/allfiles.tmpl b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/allfiles.tmpl deleted file mode 100644 index a1eca8f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/allfiles.tmpl +++ /dev/null @@ -1,59 +0,0 @@ - - - - - {! Link.base = ""; /* all generated links will be relative to this */ !} - JsDoc Reference - File Index - - - - - - - - {+include("header.html")+} - -
      -
      - {+publish.docsIndex+} -
      - {+publish.classesIndex+} -
      - -
      -

      File Index

      - - -
      -

      {+new Link().toSrc(item.alias).withText(item.name)+}

      - {+resolveLinks(item.desc)+} -
      - -
      Author:
      -
      {+item.author+}
      -
      - -
      Version:
      -
      {+item.version+}
      -
      - {! var locations = item.comment.getTag('location').map(function($){return $.toString().replace(/(^\$ ?| ?\$$)/g, '').replace(/^HeadURL: https:/g, 'http:');}) !} - -
      Location:
      - -
      {+location+}
      -
      -
      -
      -
      -
      - -
      -
      -
      - ©{+JSDOC.opt.D.copyright+}
      - Documentation generated by JsDoc Toolkit {+JSDOC.VERSION+} on {+new Date()+} - | template based on Steffen Siering jsdoc-simple. -
      - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/class.tmpl b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/class.tmpl deleted file mode 100644 index eb2b3861..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/class.tmpl +++ /dev/null @@ -1,597 +0,0 @@ - - - - - - {! Link.base = "../"; /* all generated links will be relative to this */ !} - JsDoc Reference - {+data.alias+} - - - - - - - - {+include("header.html")+} - - - {! - var classType = ""; - - if (data.isBuiltin()) { - classType += "Built-In "; - } - - if (data.isNamespace) { - if (data.is('FUNCTION')) { - classType += "Function "; - } - classType += "Namespace "; - } - else { - classType += "Class "; - } - !} - - -
      -
      - {+publish.docsIndex+} -
      - {+publish.classesIndex+} -
      - -
      - - -

      - {+classType+} -

      -
        -
      • - {+ - /* new Link().toSymbol(data.alias).inner('constructor') */ - new Link().toSymbol(data.alias).withText(data.name) - +} -
      • -
      -
      - - - - {! var ownProperties = data.properties.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !} - -

      {+ data.isNamespace ? "Variables" : "Fields" +}

      -
        - -
      • - {+new Link().toSymbol(member.alias).withText(member.name)+} -
      • -
        -
      -
      - - - - {! var ownMethods = data.methods.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !} - -

      {+ data.isNamespace ? "Functions" : "Methods" +}

      -
        - -
      • - {+new Link().toSymbol(member.alias).withText(member.name)+} -
      • -
        -
      -
      - - - - {! var ownEvents = data.events.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !} - -

      Events

      -
        - -
      • {+new Link().toSymbol(member.alias).withText(member.name)+}
      • -
        -
      -
      - -
      - -
      - -

      - {+classType+}{+data.alias+} -

      - - -

      -
      Version - {+ data.version +}.
      -
      -
      Extends - {+ - data.augments - .sort() - .map( - function($) { return new Link().toSymbol($); } - ) - .join(", ") - +}.
      - - -

      - {! - var borrowedMembers = data.properties.filter(function($) {return $.memberOf != data.alias}); - - var contributers = []; - borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)}); - for (var i = 0, l = contributers.length; i < l; i++) { - output += - "
      Fields borrowed from class "+new Link().toSymbol(contributers[i])+":
      " - + - "
      " + - borrowedMembers - .filter( - function($) { return $.memberOf == contributers[i] } - ) - .sort(makeSortby("name")) - .map( - function($) { return new Link().toSymbol($.alias).withText($.name) } - ) - .join(", ") - + - "
      "; - } - !} -
      - - - -
      - {! - var borrowedMembers = data.methods.filter(function($) {return $.memberOf != data.alias}); - var contributers = []; - borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)}); - for (var i = 0, l = contributers.length; i < l; i++) { - output += - "
      Methods borrowed from class "+new Link().toSymbol(contributers[i])+":
      " - + - "
      " + - borrowedMembers - .filter( - function($) { return $.memberOf == contributers[i] } - ) - .sort(makeSortby("name")) - .map( - function($) { return new Link().toSymbol($.alias).withText($.name) } - ) - .join(", ") - + - "
      "; - } - - !} -
      -
      - - -
      - {! - var borrowedMembers = data.events.filter(function($) {return $.memberOf != data.alias}); - var contributers = []; - borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)}); - for (var i = 0, l = contributers.length; i < l; i++) { - output += - "
      Events borrowed from class "+new Link().toSymbol(contributers[i])+":
      " - + - "
      " + - borrowedMembers - .filter( - function($) { return $.memberOf == contributers[i] } - ) - .sort(makeSortby("name")) - .map( - function($) { return new Link().toSymbol($.alias).withText($.name) } - ) - .join(", ") - + - "
      "; - } - - !} -
      -
      - - - - {+resolveLinks(data.classDesc)+} - - {# isn't defined in any file #} -
      Defined in: {+new Link().toSrc(data.srcFile)+}. -
      -

      - - - -
      -
      - {+classType+}Detail -
      - -
      {! - if (data.isPrivate) output += "<private> "; - if (data.isInner) output += "<inner> "; - !} - {+ data.alias +}{+ makeSignature(data.params) +} -
      - -
      - {+markdownConverter.makeHtml(resolveLinks(data.desc))+} -
      Author: {+data.author+}.
      -
      - - - -
      {+example+}
      -
      -
      - - - -
      -
      Parameters:
      - -
      - {+((item.type)?""+("{"+(new Link().toSymbol(item.type)+"} ")) : "")+} {+item.name+} - Optional, Default: {+item.defaultValue+} -
      -
      {+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Deprecated:
      -
      - {+resolveLinks(data.deprecated)+} -
      -
      -
      - -
      -
      Since:
      -
      {+ data.since +}
      -
      -
      - -
      -
      Throws:
      - -
      - {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+} {+item.name+} -
      -
      {+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Returns:
      - -
      {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+}{+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Requires:
      - -
      {+ resolveLinks(item) +}
      -
      -
      -
      - -
      -
      See:
      - -
      {+ new Link().toSymbol(item) +}
      -
      -
      -
      - -
      -
      - - - -
      -
      - Field Detail -
      - -
      - -
      -
      {! - if (member.isPrivate) output += "<private> "; - if (member.isInner) output += "<inner> "; - if (member.isStatic) output += "<static> "; - if (member.isConstant) output += "<constant> "; - !} -
      - - {{+new Link().toSymbol(member.type)+}} - {+member.memberOf+}.{+member.name+} - -
      -
      - {+markdownConverter.makeHtml(resolveLinks(member.desc))+} - -
      - Defined in: {+new Link().toSrc(member.srcFile)+}. -
      -
      Author: {+member.author+}.
      -
      - - - -
      {+example+}
      -
      -
      - - -
      -
      Deprecated:
      -
      - {+ resolveLinks(member.deprecated) +} -
      -
      -
      - -
      -
      Since:
      -
      {+ member.since +}
      -
      -
      - -
      -
      See:
      - -
      {+ new Link().toSymbol(item) +}
      -
      -
      -
      - -
      -
      Default Value:
      -
      - {+resolveLinks(member.defaultValue)+} -
      -
      -
      -
      -
      -
      -
      - - - -
      -
      - Method Detail -
      - -
      - -
      -
      {! - if (member.isPrivate) output += "<private> "; - if (member.isInner) output += "<inner> "; - if (member.isStatic) output += "<static> "; - !} -
      - {{+new Link().toSymbol(member.type)+}} - {+member.memberOf+}.{+member.name.replace(/\^\d+$/, '')+}{+makeSignature(member.params)+} - -
      -
      - {+markdownConverter.makeHtml(resolveLinks(member.desc))+} - -
      - Defined in: {+new Link().toSrc(member.srcFile)+}. -
      -
      Author: {+member.author+}.
      -
      - - - -
      {+example+}
      -
      -
      - - -
      -
      Parameters:
      - -
      - {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+}{+item.name+} - Optional, Default: {+item.defaultValue+} -
      -
      {+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Deprecated:
      -
      - {+ resolveLinks(member.deprecated) +} -
      -
      -
      - -
      -
      Since:
      -
      {+ member.since +}
      -
      - -
      - -
      -
      Throws:
      - -
      - {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+} {+item.name+} -
      -
      {+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Returns:
      - -
      {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+}{+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Requires:
      - -
      {+ resolveLinks(item) +}
      -
      -
      -
      - -
      -
      See:
      - -
      {+ new Link().toSymbol(item) +}
      -
      -
      -
      - -
      -
      -
      -
      - - - -
      -
      - Event Detail -
      - -
      - -
      -
      {! - if (member.isPrivate) output += "<private> "; - if (member.isInner) output += "<inner> "; - if (member.isStatic) output += "<static> "; - !} -
      - - {{+new Link().toSymbol(member.type)+}} - {+member.memberOf+}.{+member.name+}{+makeSignature(member.params)+} - -
      -
      - {+markdownConverter.makeHtml(resolveLinks(member.desc))+} - -
      - Defined in: {+new Link().toSrc(member.srcFile)+}. -
      -
      Author: {+member.author+}.
      -
      - - - -
      {+example+}
      -
      -
      - - -
      -
      Parameters:
      - -
      - {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+}{+item.name+} - Optional, Default: {+item.defaultValue+} -
      -
      {+ resolveLinks(item.desc) +}
      -
      -
      -
      - -
      -
      Deprecated:
      -
      - {+ resolveLinks(member.deprecated) +} -
      -
      -
      - -
      -
      Since:
      -
      {+ member.since +}
      -
      - -
      - -
      -
      Throws:
      - -
      - {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+} {+item.name+} -
      -
      {+ resolveLinks(item.desc) +}
      -
      -
      -
      - -
      -
      Returns:
      - -
      {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+}{+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Requires:
      - -
      {+ resolveLinks(item) +}
      -
      -
      -
      - -
      -
      See:
      - -
      {+ new Link().toSymbol(item) +}
      -
      -
      -
      - -
      -
      -
      -
      -
      -
      - - - -
      - ©{+JSDOC.opt.D.copyright+}
      - Documentation generated by JsDoc Toolkit {+JSDOC.VERSION+} on {+new Date()+} - | template based on Steffen Siering jsdoc-simple. -
      - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/class.tmpl_old b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/class.tmpl_old deleted file mode 100644 index 101f04da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/class.tmpl_old +++ /dev/null @@ -1,647 +0,0 @@ - - - - - - {! Link.base = "../"; /* all generated links will be relative to this */ !} - JsDoc Reference - {+data.alias+} - - - - - - - - {+include("header.html")+} - - - -
      - - {+publish.classesIndex+} - -
      - -
      - -

      - {! - var classType = ""; - - if (data.isBuiltin()) { - classType += "Built-In "; - } - - if (data.isNamespace) { - if (data.is('FUNCTION')) { - classType += "Function "; - } - classType += "Namespace "; - } - else { - classType += "Class "; - } - !} - {+classType+}{+data.alias+} -

      - - -

      -
      Version - {+ data.version +}.
      -
      -
      Extends - {+ - data.augments - .sort() - .map( - function($) { return new Link().toSymbol($); } - ) - .join(", ") - +}.
      -
      - - {+resolveLinks(data.classDesc)+} - - {# isn't defined in any file #} -
      Defined in: {+new Link().toSrc(data.srcFile)+}. -
      -

      - - - - - - - - - - - - - - - - - -
      {+classType+}Summary
      Constructor AttributesConstructor Name and Description
      {! - if (data.isPrivate) output += "<private> "; - if (data.isInner) output += "<inner> "; - !}  -
      - {+ new Link().toSymbol(data.alias).inner('constructor')+}{+ makeSignature(data.params) +} -
      -
      {+resolveLinks(summarize(data.desc))+}
      -
      -
      - - - - {! var ownProperties = data.properties.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !} - - - - - - - - - - - - - - - - - -
      Field Summary
      Field AttributesField Name and Description
      {! - if (member.isPrivate) output += "<private> "; - if (member.isInner) output += "<inner> "; - if (member.isStatic) output += "<static> "; - if (member.isConstant) output += "<constant> "; - !}  -
      - {+member.memberOf+}.{+new Link().toSymbol(member.alias).withText(member.name)+} -
      -
      {+resolveLinks(summarize(member.desc))+}
      -
      -
      - - -
      - {! - var borrowedMembers = data.properties.filter(function($) {return $.memberOf != data.alias}); - - var contributers = []; - borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)}); - for (var i = 0, l = contributers.length; i < l; i++) { - output += - "
      Fields borrowed from class "+new Link().toSymbol(contributers[i])+":
      " - + - "
      " + - borrowedMembers - .filter( - function($) { return $.memberOf == contributers[i] } - ) - .sort(makeSortby("name")) - .map( - function($) { return new Link().toSymbol($.alias).withText($.name) } - ) - .join(", ") - + - "
      "; - } - !} -
      -
      -
      - - - - {! var ownMethods = data.methods.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !} - - - - - - - - - - - - - - - - - -
      Method Summary
      Method AttributesMethod Name and Description
      {! - if (member.isPrivate) output += "<private> "; - if (member.isInner) output += "<inner> "; - if (member.isStatic) output += "<static> "; - !}  -
      {+member.memberOf+}.{+new Link().toSymbol(member.alias).withText(member.name.replace(/\^\d+$/, ''))+}{+makeSignature(member.params)+} -
      -
      {+resolveLinks(summarize(member.desc))+}
      -
      -
      - - -
      - {! - var borrowedMembers = data.methods.filter(function($) {return $.memberOf != data.alias}); - var contributers = []; - borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)}); - for (var i = 0, l = contributers.length; i < l; i++) { - output += - "
      Methods borrowed from class "+new Link().toSymbol(contributers[i])+":
      " - + - "
      " + - borrowedMembers - .filter( - function($) { return $.memberOf == contributers[i] } - ) - .sort(makeSortby("name")) - .map( - function($) { return new Link().toSymbol($.alias).withText($.name) } - ) - .join(", ") - + - "
      "; - } - - !} -
      -
      -
      - - - {! var ownEvents = data.events.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !} - - - - - - - - - - - - - - - - - -
      Event Summary
      Event AttributesEvent Name and Description
      {! - if (member.isPrivate) output += "<private> "; - if (member.isInner) output += "<inner> "; - if (member.isStatic) output += "<static> "; - !}  -
      {+member.memberOf+}.{+new Link().toSymbol(member.alias).withText(member.name)+}{+makeSignature(member.params)+} -
      -
      {+resolveLinks(summarize(member.desc))+}
      -
      -
      - - -
      - {! - var borrowedMembers = data.events.filter(function($) {return $.memberOf != data.alias}); - var contributers = []; - borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)}); - for (var i = 0, l = contributers.length; i < l; i++) { - output += - "
      Events borrowed from class "+new Link().toSymbol(contributers[i])+":
      " - + - "
      " + - borrowedMembers - .filter( - function($) { return $.memberOf == contributers[i] } - ) - .sort(makeSortby("name")) - .map( - function($) { return new Link().toSymbol($.alias).withText($.name) } - ) - .join(", ") - + - "
      "; - } - - !} -
      -
      -
      - - - -
      -
      - {+classType+}Detail -
      - -
      {! - if (data.isPrivate) output += "<private> "; - if (data.isInner) output += "<inner> "; - !} - {+ data.alias +}{+ makeSignature(data.params) +} -
      - -
      - {+resolveLinks(data.desc)+} -
      Author: {+data.author+}.
      -
      - - - -
      {+example+}
      -
      -
      - - - -
      -
      Parameters:
      - -
      - {+((item.type)?""+("{"+(new Link().toSymbol(item.type)+"} ")) : "")+} {+item.name+} - Optional, Default: {+item.defaultValue+} -
      -
      {+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Deprecated:
      -
      - {+resolveLinks(data.deprecated)+} -
      -
      -
      - -
      -
      Since:
      -
      {+ data.since +}
      -
      -
      - -
      -
      Throws:
      - -
      - {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+} {+item.name+} -
      -
      {+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Returns:
      - -
      {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+}{+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Requires:
      - -
      {+ resolveLinks(item) +}
      -
      -
      -
      - -
      -
      See:
      - -
      {+ new Link().toSymbol(item) +}
      -
      -
      -
      - -
      -
      - - - -
      - Field Detail -
      - - -
      {! - if (member.isPrivate) output += "<private> "; - if (member.isInner) output += "<inner> "; - if (member.isStatic) output += "<static> "; - if (member.isConstant) output += "<constant> "; - !} - - {{+new Link().toSymbol(member.type)+}} - {+member.memberOf+}.{+member.name+} - -
      -
      - {+resolveLinks(member.desc)+} - -
      - Defined in: {+new Link().toSrc(member.srcFile)+}. -
      -
      Author: {+member.author+}.
      -
      - - - -
      {+example+}
      -
      -
      - - -
      -
      Deprecated:
      -
      - {+ resolveLinks(member.deprecated) +} -
      -
      -
      - -
      -
      Since:
      -
      {+ member.since +}
      -
      -
      - -
      -
      See:
      - -
      {+ new Link().toSymbol(item) +}
      -
      -
      -
      - -
      -
      Default Value:
      -
      - {+resolveLinks(member.defaultValue)+} -
      -
      -
      - -
      -
      -
      - - - -
      - Method Detail -
      - - -
      {! - if (member.isPrivate) output += "<private> "; - if (member.isInner) output += "<inner> "; - if (member.isStatic) output += "<static> "; - !} - - {{+new Link().toSymbol(member.type)+}} - {+member.memberOf+}.{+member.name.replace(/\^\d+$/, '')+}{+makeSignature(member.params)+} - -
      -
      - {+resolveLinks(member.desc)+} - -
      - Defined in: {+new Link().toSrc(member.srcFile)+}. -
      -
      Author: {+member.author+}.
      -
      - - - -
      {+example+}
      -
      -
      - - -
      -
      Parameters:
      - -
      - {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+}{+item.name+} - Optional, Default: {+item.defaultValue+} -
      -
      {+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Deprecated:
      -
      - {+ resolveLinks(member.deprecated) +} -
      -
      -
      - -
      -
      Since:
      -
      {+ member.since +}
      -
      - -
      - -
      -
      Throws:
      - -
      - {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+} {+item.name+} -
      -
      {+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Returns:
      - -
      {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+}{+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Requires:
      - -
      {+ resolveLinks(item) +}
      -
      -
      -
      - -
      -
      See:
      - -
      {+ new Link().toSymbol(item) +}
      -
      -
      -
      - -
      -
      -
      - - - -
      - Event Detail -
      - - -
      {! - if (member.isPrivate) output += "<private> "; - if (member.isInner) output += "<inner> "; - if (member.isStatic) output += "<static> "; - !} - - {{+new Link().toSymbol(member.type)+}} - {+member.memberOf+}.{+member.name+}{+makeSignature(member.params)+} - -
      -
      - {+resolveLinks(member.desc)+} - -
      - Defined in: {+new Link().toSrc(member.srcFile)+}. -
      -
      Author: {+member.author+}.
      -
      - - - -
      {+example+}
      -
      -
      - - -
      -
      Parameters:
      - -
      - {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+}{+item.name+} - Optional, Default: {+item.defaultValue+} -
      -
      {+ resolveLinks(item.desc) +}
      -
      -
      -
      - -
      -
      Deprecated:
      -
      - {+ resolveLinks(member.deprecated) +} -
      -
      -
      - -
      -
      Since:
      -
      {+ member.since +}
      -
      - -
      - -
      -
      Throws:
      - -
      - {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+} {+item.name+} -
      -
      {+ resolveLinks(item.desc) +}
      -
      -
      -
      - -
      -
      Returns:
      - -
      {+((item.type)?"{"+(new Link().toSymbol(item.type))+"} " : "")+}{+resolveLinks(item.desc)+}
      -
      -
      -
      - -
      -
      Requires:
      - -
      {+ resolveLinks(item) +}
      -
      -
      -
      - -
      -
      See:
      - -
      {+ new Link().toSymbol(item) +}
      -
      -
      -
      - -
      -
      -
      - -
      -
      - - - -
      - ©{+JSDOC.opt.D.copyright+}
      - Documentation generated by JsDoc Toolkit {+JSDOC.VERSION+} on {+new Date()+} -
      - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/docsindex.tmpl b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/docsindex.tmpl deleted file mode 100644 index 9181c354..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/docsindex.tmpl +++ /dev/null @@ -1,9 +0,0 @@ -

      Documentation

      -
        - -
      • - {+new Link().toFile(doc.outFile).withText(doc.title)+} -
      • -
        -
      - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/footer.tmpl b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/footer.tmpl deleted file mode 100644 index a9951eb6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/footer.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -
      - ©{+JSDOC.opt.D.copyright+}
      - Documentation generated by JsDoc Toolkit {+JSDOC.VERSION+} on {+new Date()+} - | template based on Steffen Siering jsdoc-simple. -
      \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/header.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/header.html deleted file mode 100644 index 353b735a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/header.html +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/index.tmpl b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/index.tmpl deleted file mode 100644 index cddbdc33..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/index.tmpl +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - JsDoc Reference - Index - - - - - - - {+include("header.html")+} - -
      -
      - {+publish.docsIndex+} -
      - {+publish.classesIndex+} -
      - -
      -

      Class Index

      - - -
      - {! - var classType = ""; - - if (thisClass.isBuiltin()) { - classType += "Built-In "; - } - - if (thisClass.isNamespace) { - if (thisClass.is('FUNCTION')) { - classType += "Function "; - } - classType += "Namespace "; - } - else { - classType += "Class "; - } - !} -
      - {+ classType +} -
      -

      {+(new Link().toSymbol(thisClass.alias))+}

      - {+resolveLinks(summarize(thisClass.classDesc))+} -
      -
      -
      - -
      -
      - ©{+JSDOC.opt.D.copyright+}
      - Documentation generated by JsDoc Toolkit {+JSDOC.VERSION+} on {+new Date()+} - | template based on Steffen Siering jsdoc-simple. -
      - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/htmlparser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/htmlparser.js deleted file mode 100644 index a88b1f4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/htmlparser.js +++ /dev/null @@ -1,310 +0,0 @@ -/* - * HTML Parser By John Resig (ejohn.org) - * Original code by Erik Arvidsson, Mozilla Public License - * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js - * - * // Use like so: - * HTMLParser(htmlString, { - * start: function(tag, attrs, unary) {}, - * end: function(tag) {}, - * chars: function(text) {}, - * comment: function(text) {} - * }); - * - * // or to get an XML string: - * HTMLtoXML(htmlString); - * - * // or to get an XML DOM Document - * HTMLtoDOM(htmlString); - * - * // or to inject into an existing document/DOM node - * HTMLtoDOM(htmlString, document); - * HTMLtoDOM(htmlString, document.body); - * - */ - -(function(){ - - // Regular Expressions for parsing tags and attributes - var startTag = /^<(\w+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/, - endTag = /^<\/(\w+)[^>]*>/, - attr = /(\w+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g; - - // Empty Elements - HTML 4.01 - var empty = makeMap("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed"); - - // Block Elements - HTML 4.01 - var block = makeMap("address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul"); - - // Inline Elements - HTML 4.01 - var inline = makeMap("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"); - - // Elements that you can, intentionally, leave open - // (and which close themselves) - var closeSelf = makeMap("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"); - - // Attributes that have their values filled in disabled="disabled" - var fillAttrs = makeMap("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"); - - // Special Elements (can contain anything) - //var special = makeMap("script,style"); - var special = makeMap(""); - - var HTMLParser = this.HTMLParser = function( html, handler ) { - var index, chars, match, stack = [], last = html; - stack.last = function(){ - return this[ this.length - 1 ]; - }; - - while ( html ) { - chars = true; - - // Make sure we're not in a script or style element - if ( !stack.last() || !special[ stack.last() ] ) { - - // Comment - if ( html.indexOf(""); - - if ( index >= 0 ) { - if ( handler.comment ) - handler.comment( html.substring( 4, index ) ); - html = html.substring( index + 3 ); - chars = false; - } - - // end tag - } else if ( html.indexOf("]*>"), function(all, text){ - text = text.replace(//g, "$1") - .replace(//g, "$1"); - - if ( handler.chars ) - handler.chars( text ); - - return ""; - }); - - parseEndTag( "", stack.last() ); - } - - if ( html == last ) - throw "Parse Error: " + html; - last = html; - } - - // Clean up any remaining tags - parseEndTag(); - - function parseStartTag( tag, tagName, rest, unary ) { - if ( block[ tagName ] ) { - while ( stack.last() && inline[ stack.last() ] ) { - parseEndTag( "", stack.last() ); - } - } - - if ( closeSelf[ tagName ] && stack.last() == tagName ) { - parseEndTag( "", tagName ); - } - - unary = empty[ tagName ] || !!unary; - - if ( !unary ) - stack.push( tagName ); - - if ( handler.start ) { - var attrs = []; - - rest.replace(attr, function(match, name) { - var value = arguments[2] ? arguments[2] : - arguments[3] ? arguments[3] : - arguments[4] ? arguments[4] : - fillAttrs[name] ? name : ""; - - attrs.push({ - name: name, - value: value, - escaped: value.replace(/(^|[^\\])"/g, '$1\\\"') //" - }); - }); - - if ( handler.start ) - handler.start( tagName, attrs, unary ); - } - } - - function parseEndTag( tag, tagName ) { - // If no tag name is provided, clean shop - if ( !tagName ) - var pos = 0; - - // Find the closest opened tag of the same type - else - for ( var pos = stack.length - 1; pos >= 0; pos-- ) - if ( stack[ pos ] == tagName ) - break; - - if ( pos >= 0 ) { - // Close all the open elements, up the stack - for ( var i = stack.length - 1; i >= pos; i-- ) - if ( handler.end ) - handler.end( stack[ i ] ); - - // Remove the open elements from the stack - stack.length = pos; - } - } - }; - - this.HTMLtoXML = function( html ) { - var results = ""; - - HTMLParser(html, { - start: function( tag, attrs, unary ) { - results += "<" + tag; - - for ( var i = 0; i < attrs.length; i++ ) - results += " " + attrs[i].name + '="' + attrs[i].escaped + '"'; - - results += (unary ? "/" : "") + ">"; - }, - end: function( tag ) { - results += ""; - }, - chars: function( text ) { - results += text; - }, - comment: function( text ) { - results += ""; - } - }); - - return results; - }; - - this.HTMLtoDOM = function( html, doc ) { - // There can be only one of these elements - var one = makeMap("html,head,body,title"); - - // Enforce a structure for the document - var structure = { - link: "head", - base: "head" - }; - - if ( !doc ) { - if ( typeof DOMDocument != "undefined" ) - doc = new DOMDocument(); - else if ( typeof document != "undefined" && document.implementation && document.implementation.createDocument ) - doc = document.implementation.createDocument("", "", null); - else if ( typeof ActiveX != "undefined" ) - doc = new ActiveXObject("Msxml.DOMDocument"); - - } else - doc = doc.ownerDocument || - doc.getOwnerDocument && doc.getOwnerDocument() || - doc; - - var elems = [], - documentElement = doc.documentElement || - doc.getDocumentElement && doc.getDocumentElement(); - - // If we're dealing with an empty document then we - // need to pre-populate it with the HTML document structure - if ( !documentElement && doc.createElement ) (function(){ - var html = doc.createElement("html"); - var head = doc.createElement("head"); - head.appendChild( doc.createElement("title") ); - html.appendChild( head ); - html.appendChild( doc.createElement("body") ); - doc.appendChild( html ); - })(); - - // Find all the unique elements - if ( doc.getElementsByTagName ) - for ( var i in one ) - one[ i ] = doc.getElementsByTagName( i )[0]; - - // If we're working with a document, inject contents into - // the body element - var curParentNode = one.body; - - HTMLParser( html, { - start: function( tagName, attrs, unary ) { - // If it's a pre-built element, then we can ignore - // its construction - if ( one[ tagName ] ) { - curParentNode = one[ tagName ]; - return; - } - - var elem = doc.createElement( tagName ); - - for ( var attr in attrs ) - elem.setAttribute( attrs[ attr ].name, attrs[ attr ].value ); - - if ( structure[ tagName ] && typeof one[ structure[ tagName ] ] != "boolean" ) - one[ structure[ tagName ] ].appendChild( elem ); - - else if ( curParentNode && curParentNode.appendChild ) - curParentNode.appendChild( elem ); - - if ( !unary ) { - elems.push( elem ); - curParentNode = elem; - } - }, - end: function( tag ) { - elems.length -= 1; - - // Init the new parentNode - curParentNode = elems[ elems.length - 1 ]; - }, - chars: function( text ) { - curParentNode.appendChild( doc.createTextNode( text ) ); - }, - comment: function( text ) { - // create comment node - } - }); - - return doc; - }; - - function makeMap(str){ - var obj = {}, items = str.split(","); - for ( var i = 0; i < items.length; i++ ) - obj[ items[i] ] = true; - return obj; - } -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/jsdom.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/jsdom.js deleted file mode 100644 index 0e45d0c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/jsdom.js +++ /dev/null @@ -1,508 +0,0 @@ - -/* - * The contents of this file are subject to the Mozilla Public License - * Version 1.1 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" - * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the - * License for the specific language governing rights and limitations - * under the License. - * - * The Initial Developer of the Original Code is Steffen Siering. All Rights Reserved. - */ - -(function() { - - /** @scope _global_ */ - /** - * Abstract class for more specific DOM-Node classes. - * - * @class - */ - function DomAbstract(){ return this; } - - this.DomAbstract = DomAbstract; // export DomAbstract - - DomAbstract.constructor = DomAbstract; - /** @function */ - DomAbstract.prototype.__doGetElementsBy = function(){return []}; - DomAbstract.prototype.getElementsByTagName = function(){ return []; }; - DomAbstract.prototype.getElementById = function(){ return null; }; - DomAbstract.prototype.getAttribute = function(){ return ""}; - DomAbstract.prototype.setAttribute = function(){}; - DomAbstract.prototype.removeAttribute = function(){}; - DomAbstract.prototype.cloneNode = function(){}; - DomAbstract.prototype.uid = 1; - DomAbstract.prototype.nodeValue = null; - DomAbstract.prototype.firstChild = null; - DomAbstract.prototype.nextSibling = null; - DomAbstract.prototype.previousSibling = null; - DomAbstract.prototype.style = ""; - - DomAbstract.prototype.getInnerHTML = function(){}; - DomAbstract.prototype.setInnerHTML = function(val){}; - DomAbstract.prototype.getInnerText = function(){}; - DomAbstract.prototype.setInnerText = function(){}; - DomAbstract.prototype.getOuterHTML = function(){}; - DomAbstract.prototype.setOuterHTML = function(){}; - - DomAbstract.prototype.__defineGetter__("innerText", function(){ return - this.getInnerText(); - }); - DomAbstract.prototype.__defineSetter__("innerText", function(x){ - this.setInnerText(x); - }); - DomAbstract.prototype.__defineGetter__("innerHTML", function(){ - return this.getInnerHTML(); - }); - DomAbstract.prototype.__defineSetter__("innerHTML", function(x){ - this.setInnerHTML(x); - }); - DomAbstract.prototype.__defineGetter__("outerHTML", function(){ - return this.getOuterHTML(); - }); - DomAbstract.prototype.__defineSetter__("outerHTML", function(x){ - this.setOuterHTML(x); - }); - - /** @scope _global_ */ - /** - * DOM Element Node. - * - * @class - */ - function DomElement(parent, tag, attrs) { - this.nodeType = 1; - this.initialized = false; - - this.style = ""; - this.className = ''; - this.id = null; - this.lang = null; - - var attrs = !attrs ? [] : $A(attrs).filter(function(x){ - if(x.nodeName == "class") { - this.className = x.nodeValue; - return false; - } - if(x.nodeName == "id") { - this.id = x.nodeValue; - return false; - } - if(x.nodeName == "lang") { - this.lang = x.nodeValue; - return false; - } - if(x.nodeName == "style") { - this.style = x.nodeValue; - return false; - } - - return true; - }, this); - this.tagName = tag; - this.attrs = attrs; - this.parentNode = parent; - this.childNodes = []; - this.$family = true; - this.nodeName = tag.toUpperCase(); - - this.firstChild = null; - this.lastChild = null; - this.nextSibling = null; - this.previousSibling = null; - this.initialized = true; - - return this; - } - this.DomElement = DomElement; //export class DomElement - - DomElement.constructor = DomElement; - - DomElement.prototype = new DomAbstract(); - - DomElement.prototype.cloneNode = function(recursive){ - var rec = arguments.length == 0 ? true : recursive; - - var ret = new DomElement(undefined, this.tagName, this.copyAttributes); - ret.className = this.className ? this.className : ""; - ret.id = this.id ? this.id : null; - ret.lang = this.lang ? this.lang : null; - ret.style = this.style ? this.style : null; - - if(recursive){ - ret.childNodes = this.childNodes.map(function(child){ - var c = child.cloneNode(recursive); - return c; - }); - } - linkChildren(ret); - return ret; - }; - - DomElement.prototype.copyAttributes = function(){ - this.attrs.map(function(attr){ - return { nodeName: attr.nodeName, - nodeValue: attr.nodeValue, - nodeType: attr.nodeType}; - }); - }; - - DomElement.prototype.appendChild = function(newChild) { - if(newChild.parentNode) newChild.parentNode.removeChild(newChild); - this.childNodes.push(newChild); - newChild.nextSibling = null; - newChild.previousSibling = this.last; - newChild.parentNode = this; - this.lastChild = newChild; - }; - - DomElement.prototype.hasChildNodes = function() { - return this.childNodes.length > 0; - }; - - DomElement.prototype.insertBefore = function(newChild, child) { - if(arguments.length === 1 || !child) this.appendChild(newChild); - if(newChild.parentNode) newChild.parentNode.removeChild(newChild); - - newChild.parentNode = this; - newChild.previousSibling = child.previousSibling; - newChild.nextSibling = child; - child.previousSibling = newChild; - var i = this.childNodes.indexOf(child); - this.childNodes.splice(i,0,newChild); - }; - - DomElement.prototype.removeChild = function(child) { - if(!child || !child.parentNode || child.parentNode !== this) - return undefined; - - this.childNodes.erase(child); - if(child.previousSibling) { - child.previousSibling.nextSibling = child.nextSibling; - } - - if(child.nextSibling){ - child.nextSibling.previousSibling = child.previousSibling; - } - - child.parentNode = null; - child.previousSibling = child.nextSibling = null; - return child; - }; - - DomElement.prototype.replaceChild = function(newChild, oldChild) { - if(newChild.parentNode) newChild.parentNode.removeChild(newChild); - newChild.parentNode = this; - newChild.previousSibling = oldChild.previousSibling; - newChild.previousSibling.nextSibling = newChild; - newChild.nextSibling = oldChild.previousSibling; - newChild.nextSibling.previousSibling = newChild; - if(this.lastChild == oldChild) this.lastChild = newChild; - - var i = this.childNodes.indexOf(oldChild); - this.childNodes.splice(i,1,newChild); - return oldChild; - }; - - DomElement.prototype.__doGetElementsBy = function(selector, first) { - var ret = []; - - this.childNodes.map(function(elem){ - if(!elem.__doGetElementsBy) return []; - var children = elem.__doGetElementsBy(selector, first); - return selector(elem) ? - [elem].concat(children) : - children; - }).each( function(elemSubs){ - if(elemSubs && elemSubs.length>0) - ret = ret.concat(elemSubs.filter(function(x){return x})); - }); - return (!ret || ret.length == 0) ? null : ret; - }; - - DomElement.prototype.getElementsByTagName = function(name) { - return this.__doGetElementsBy( - name === "*" ? function(x){ return x.nodeType == 1; } : - function(x){ - return x.tagName == name; - }, - false); - }; - - DomElement.prototype.getElementById = function(id) { - var tmp = this.__doGetElementsBy(function(x){ return x.id == name; }, - false); - return tmp && tmp.length > 0 ? tmp[0] : undefined; - }; - - DomElement.prototype.getElement = $defined(this['Element']) ? - Element.prototype.getElement : - function(tag) { - return this.getElements(tag)[0] || null; - }; - - DomElement.prototype.getElements = $defined(this['Element']) ? - function() { - var ret = Element.prototype.getElements.apply(this, arguments); - return ret; - } : - function(tags) { - tags = tags.split(','); - var elements = null; - tags.each(function(tag){ - tag = tag.trim().toLowerCase(); - var partial = this.getElementsByTagName(tag); - elements = elements ? elements.concat(partial) : partial; - }, this); - return elements ? elements : []; - }; - - DomElement.prototype.getAttribute = function(name) { - if(name === "id") return this.id; - if(name === "lang") return this.lang; - - for(var i=0; i < this.attrs.length; i++){ - if(this.attrs[i].nodeName == name) { - return this.attrs[i].nodeValue; - } - } - return ""; - }; - - DomElement.prototype.setAttribute = function(name, value){ - for(var i=0; i < this.attrs.length; i++){ - if(this.attrs[i].nodeName == name) { - this.attrs[i].nodeValue = value; - } - } - }; - - DomElement.prototype.removeAttribute = function(name){ - for(var i=0; i < this.attrs.length; i++){ - if(this.attrs[i].nodeName == name) { - this.attrs.splice(i,1); - return; - } - } - }; - - DomElement.prototype.getProperty = $defined(this['Element']) ? - Element.prototype.getProperty : undefined, - - DomElement.prototype.setProperty = $defined(this['Element']) ? - Element.prototype.setProperty : undefined, - - DomElement.prototype.removeProperty = $defined(this['Element']) ? - Element.prototype.removeProperty : undefined, - - DomElement.prototype.getProperties = $defined(this['Element']) ? - Element.prototype.getProperties : undefined, - - DomElement.prototype.setProperties = $defined(this['Element']) ? - Element.prototype.setProperties : undefined, - - DomElement.prototype.removeProperties = $defined(this['Element']) ? - Element.prototype.removeProperties : undefined, - - DomElement.prototype.hasClass = $defined(this['Element']) ? - Element.prototype.hasClass : - function(className) { - return this.className.contains(className, ' '); - } - ; - - if ($defined(this['Element'])) { - DomElement.prototype.get = $defined(this['Element']) ? - Element.prototype.get : - undefined; - - DomElement.prototype.set = $defined(this['Element']) ? - Element.prototype.set : - undefined; - } - - DomElement.prototype.addClass = function(className) { - if (!this.hasClass(className)) { - this.className = (this.className + ' ' + className).clean(); - } - return this; - }; - - DomElement.prototype.removeClass = function(className) { - var regex = new RegExp('(^|\\s)' + className + '(?:\\s|$)'); - this.className = this.className.replace(regex, '$1'); - return this; - }; - - DomElement.prototype.toggleClass = function(className) { - return this.hasClass(className) ? - this.removeClass(className) : - this.addClass(className); - }; - - - - DomElement.prototype.getInnerHTML = function(){ - if(!this.initialized) return ""; - var strs = ""; - - if(this.childNodes && this.childNodes.length > 0) - this.childNodes.forEach(function(x){ - strs += x.getOuterHTML(); - }); - return strs; - }; - - DomElement.prototype.setInnerHTML = function(val){ - this.childNodes = parseDom(val); - linkChildren(this); - }; - - DomElement.prototype.getOuterHTML = function(){ - if(!this.initialized) return; - - var self = this; - var str = "<" + self.tagName; - function addAttrib(name, value){ - if(value) str += ' ' + name + '="' + value + '"'; - } - addAttrib('id', this.id); - addAttrib('class', this.className); - addAttrib('lang', this.lang); - addAttrib('style', this.style); - self.attrs.forEach( function(x){ - addAttrib(x.nodeName, x.nodeValue); - }); - str += ">"; - - str += this.getInnerHTML(); - str += ""; - return str; - }; - - DomElement.prototype.setOuterHTML = function(){ - throw 'property outerHTML is read only'; - }; - - /** - * DOM Text Node. - * - * @class - */ - function DomText(text) { - this.nodeType = 3; - - this.nodeValue = String(text); - this.nodeName = "#text"; - - return this; - } - - this.DomText = DomText; //export class DomText - - DomText.constructor = DomText; - DomText.prototype = new DomAbstract(); - - DomText.prototype.cloneNode = function(){ - return new DomText(this.nodeValue.substr(0)); - }; - - DomText.prototype.getOuterHTML = function(){ - return this.nodeValue; - }; - - DomText.prototype.setOuterHTML = function(val){ - var tmp = parseDom(val)[0]; - $extend( this, tmp ); - this.nodeType = tmp.nodeType; - this.nodeName = tmp.nodeName; - }; - - DomText.prototype.getInnerHTML = function(){ - return this.nodeValue; - }; - - DomText.prototype.setInnerHTML = function(val){ - return this.nodeValue; - }; - - DomText.prototype.getInnerText = function(){ - return unescape(this.nodeValue); - }; - - DomText.prototype.setInnerText = function(val){ - this.nodeValue = escape(val); - }; - - function mkElem(parent, tag, attrs, unary) { - attrs = attrs.map(function(x){ - return { nodeName: x.name, nodeValue: x.value, nodeType:2 }; - }); - return new DomElement(parent, tag, attrs); - } - - function linkChildren(elem) { - if(!elem.childNodes || elem.childNodes.length === 0 ) return; - - elem.firstChild = elem.childNodes[0]; - - var last = null; - elem.childNodes.forEach( function(child){ - child.parentNode = elem; - if(last) { - last.nextSibling = child; - child.previousSibling = last; - } - last = child; - }); - elem.lastChild = last; - last.nextSibling = null; - } - - /** - * parses DOM structure from given text. - * - * @param {String} text HTML-String to parse - * - * @return DOM Tree Root Node, or if no specific root an Array of DOM Nodes. - */ - function parseDom(text) { - var stack = []; - var elem = null; - var roots = []; - - HTMLParser(text, { - start: function( tag, attrs, unary ) { - if(unary){ - (elem ? elem.childNodes : roots). - push(mkElem(elem, tag, attrs)); - } else { - if(elem) { - stack.push(elem); - } - elem = mkElem(elem, tag, attrs, unary); - } - }, - - end: function( tag ) { - var old = stack.pop(); - ($defined(old) && old ? old.childNodes : roots).push(elem); - linkChildren(elem); - elem = old; - }, - - chars: function( text ) { - if (!text || text.trim() == "") return; - (elem ? elem.childNodes : roots).push(new DomText(text)); - } - }); - - return roots.length == 1 ? roots[0] : roots; - } - this.parseDom = parseDom; - -})(); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/mootools-1.2.4-core-server.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/mootools-1.2.4-core-server.js deleted file mode 100644 index 7723227d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/mootools-1.2.4-core-server.js +++ /dev/null @@ -1,1092 +0,0 @@ -/* ---- - -script: Core.js - -description: The core of MooTools, contains all the base functions and the Native and Hash implementations. Required by all the other scripts. - -license: MIT-style license. - -copyright: Copyright (c) 2006-2008 [Valerio Proietti](http://mad4milk.net/). - -authors: The MooTools production team (http://mootools.net/developers/) - -inspiration: -- Class implementation inspired by [Base.js](http://dean.edwards.name/weblog/2006/03/base/) Copyright (c) 2006 Dean Edwards, [GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php) -- Some functionality inspired by [Prototype.js](http://prototypejs.org) Copyright (c) 2005-2007 Sam Stephenson, [MIT License](http://opensource.org/licenses/mit-license.php) - -provides: [Mootools, Native, Hash.base, Array.each, $util] - -... -*/ - -var MooTools = { - 'version': '1.2.4', - 'build': '0d9113241a90b9cd5643b926795852a2026710d4' -}; - -var Native = function(options){ - options = options || {}; - var name = options.name; - var legacy = options.legacy; - var protect = options.protect; - var methods = options.implement; - var generics = options.generics; - var initialize = options.initialize; - var afterImplement = options.afterImplement || function(){}; - var object = initialize || legacy; - generics = generics !== false; - - object.constructor = Native; - object.$family = {name: 'native'}; - if (legacy && initialize) object.prototype = legacy.prototype; - object.prototype.constructor = object; - - if (name){ - var family = name.toLowerCase(); - object.prototype.$family = {name: family}; - Native.typize(object, family); - } - - var add = function(obj, name, method, force){ - if (!protect || force || !obj.prototype[name]) obj.prototype[name] = method; - if (generics) Native.genericize(obj, name, protect); - afterImplement.call(obj, name, method); - return obj; - }; - - object.alias = function(a1, a2, a3){ - if (typeof a1 == 'string'){ - var pa1 = this.prototype[a1]; - if ((a1 = pa1)) return add(this, a2, a1, a3); - } - for (var a in a1) this.alias(a, a1[a], a2); - return this; - }; - - object.implement = function(a1, a2, a3){ - if (typeof a1 == 'string') return add(this, a1, a2, a3); - for (var p in a1) add(this, p, a1[p], a2); - return this; - }; - - if (methods) object.implement(methods); - - return object; -}; - -Native.genericize = function(object, property, check){ - if ((!check || !object[property]) && typeof object.prototype[property] == 'function') object[property] = function(){ - var args = Array.prototype.slice.call(arguments); - return object.prototype[property].apply(args.shift(), args); - }; -}; - -Native.implement = function(objects, properties){ - for (var i = 0, l = objects.length; i < l; i++) objects[i].implement(properties); -}; - -Native.typize = function(object, family){ - if (!object.type) object.type = function(item){ - return ($type(item) === family); - }; -}; - -(function(){ - var natives = {'Array': Array, 'Date': Date, 'Function': Function, 'Number': Number, 'RegExp': RegExp, 'String': String}; - for (var n in natives) new Native({name: n, initialize: natives[n], protect: true}); - - var types = {'boolean': Boolean, 'native': Native, 'object': Object}; - for (var t in types) Native.typize(types[t], t); - - var generics = { - 'Array': ["concat", "indexOf", "join", "lastIndexOf", "pop", "push", "reverse", "shift", "slice", "sort", "splice", "toString", "unshift", "valueOf"], - 'String': ["charAt", "charCodeAt", "concat", "indexOf", "lastIndexOf", "match", "replace", "search", "slice", "split", "substr", "substring", "toLowerCase", "toUpperCase", "valueOf"] - }; - for (var g in generics){ - for (var i = generics[g].length; i--;) Native.genericize(natives[g], generics[g][i], true); - } -})(); - -var Hash = new Native({ - - name: 'Hash', - - initialize: function(object){ - if ($type(object) == 'hash') object = $unlink(object.getClean()); - for (var key in object) this[key] = object[key]; - return this; - } - -}); - -Hash.implement({ - - forEach: function(fn, bind){ - for (var key in this){ - if (this.hasOwnProperty(key)) fn.call(bind, this[key], key, this); - } - }, - - getClean: function(){ - var clean = {}; - for (var key in this){ - if (this.hasOwnProperty(key)) clean[key] = this[key]; - } - return clean; - }, - - getLength: function(){ - var length = 0; - for (var key in this){ - if (this.hasOwnProperty(key)) length++; - } - return length; - } - -}); - -Hash.alias('forEach', 'each'); - -Array.implement({ - - forEach: function(fn, bind){ - for (var i = 0, l = this.length; i < l; i++) fn.call(bind, this[i], i, this); - } - -}); - -Array.alias('forEach', 'each'); - -function $A(iterable){ - if (iterable.item){ - var l = iterable.length, array = new Array(l); - while (l--) array[l] = iterable[l]; - return array; - } - return Array.prototype.slice.call(iterable); -}; - -function $arguments(i){ - return function(){ - return arguments[i]; - }; -}; - -function $chk(obj){ - return !!(obj || obj === 0); -}; - -function $clear(timer){ - clearTimeout(timer); - clearInterval(timer); - return null; -}; - -function $defined(obj){ - return (obj != undefined); -}; - -function $each(iterable, fn, bind){ - var type = $type(iterable); - ((type == 'arguments' || type == 'collection' || type == 'array') ? Array : Hash).each(iterable, fn, bind); -}; - -function $empty(){}; - -function $extend(original, extended){ - for (var key in (extended || {})) original[key] = extended[key]; - return original; -}; - -function $H(object){ - return new Hash(object); -}; - -function $lambda(value){ - return ($type(value) == 'function') ? value : function(){ - return value; - }; -}; - -function $merge(){ - var args = Array.slice(arguments); - args.unshift({}); - return $mixin.apply(null, args); -}; - -function $mixin(mix){ - for (var i = 1, l = arguments.length; i < l; i++){ - var object = arguments[i]; - if ($type(object) != 'object') continue; - for (var key in object){ - var op = object[key], mp = mix[key]; - mix[key] = (mp && $type(op) == 'object' && $type(mp) == 'object') ? $mixin(mp, op) : $unlink(op); - } - } - return mix; -}; - -function $pick(){ - for (var i = 0, l = arguments.length; i < l; i++){ - if (arguments[i] != undefined) return arguments[i]; - } - return null; -}; - -function $random(min, max){ - return Math.floor(Math.random() * (max - min + 1) + min); -}; - -function $splat(obj){ - var type = $type(obj); - return (type) ? ((type != 'array' && type != 'arguments') ? [obj] : obj) : []; -}; - -var $time = Date.now || function(){ - return +new Date; -}; - -function $try(){ - for (var i = 0, l = arguments.length; i < l; i++){ - try { - return arguments[i](); - } catch(e){} - } - return null; -}; - -function $type(obj){ - if (obj == undefined) return false; - if (obj.$family) return (obj.$family.name == 'number' && !isFinite(obj)) ? false : obj.$family.name; - if (obj.nodeName){ - switch (obj.nodeType){ - case 1: return 'element'; - case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace'; - } - } else if (typeof obj.length == 'number'){ - if (obj.callee) return 'arguments'; - else if (obj.item) return 'collection'; - } - return typeof obj; -}; - -function $unlink(object){ - var unlinked; - switch ($type(object)){ - case 'object': - unlinked = {}; - for (var p in object) unlinked[p] = $unlink(object[p]); - break; - case 'hash': - unlinked = new Hash(object); - break; - case 'array': - unlinked = []; - for (var i = 0, l = object.length; i < l; i++) unlinked[i] = $unlink(object[i]); - break; - default: return object; - } - return unlinked; -}; - - -/* ---- - -script: Array.js - -description: Contains Array Prototypes like each, contains, and erase. - -license: MIT-style license. - -requires: -- /$util -- /Array.each - -provides: [Array] - -... -*/ - -Array.implement({ - - every: function(fn, bind){ - for (var i = 0, l = this.length; i < l; i++){ - if (!fn.call(bind, this[i], i, this)) return false; - } - return true; - }, - - filter: function(fn, bind){ - var results = []; - for (var i = 0, l = this.length; i < l; i++){ - if (fn.call(bind, this[i], i, this)) results.push(this[i]); - } - return results; - }, - - clean: function(){ - return this.filter($defined); - }, - - indexOf: function(item, from){ - var len = this.length; - for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++){ - if (this[i] === item) return i; - } - return -1; - }, - - map: function(fn, bind){ - var results = []; - for (var i = 0, l = this.length; i < l; i++) results[i] = fn.call(bind, this[i], i, this); - return results; - }, - - some: function(fn, bind){ - for (var i = 0, l = this.length; i < l; i++){ - if (fn.call(bind, this[i], i, this)) return true; - } - return false; - }, - - associate: function(keys){ - var obj = {}, length = Math.min(this.length, keys.length); - for (var i = 0; i < length; i++) obj[keys[i]] = this[i]; - return obj; - }, - - link: function(object){ - var result = {}; - for (var i = 0, l = this.length; i < l; i++){ - for (var key in object){ - if (object[key](this[i])){ - result[key] = this[i]; - delete object[key]; - break; - } - } - } - return result; - }, - - contains: function(item, from){ - return this.indexOf(item, from) != -1; - }, - - extend: function(array){ - for (var i = 0, j = array.length; i < j; i++) this.push(array[i]); - return this; - }, - - getLast: function(){ - return (this.length) ? this[this.length - 1] : null; - }, - - getRandom: function(){ - return (this.length) ? this[$random(0, this.length - 1)] : null; - }, - - include: function(item){ - if (!this.contains(item)) this.push(item); - return this; - }, - - combine: function(array){ - for (var i = 0, l = array.length; i < l; i++) this.include(array[i]); - return this; - }, - - erase: function(item){ - for (var i = this.length; i--; i){ - if (this[i] === item) this.splice(i, 1); - } - return this; - }, - - empty: function(){ - this.length = 0; - return this; - }, - - flatten: function(){ - var array = []; - for (var i = 0, l = this.length; i < l; i++){ - var type = $type(this[i]); - if (!type) continue; - array = array.concat((type == 'array' || type == 'collection' || type == 'arguments') ? Array.flatten(this[i]) : this[i]); - } - return array; - }, - - hexToRgb: function(array){ - if (this.length != 3) return null; - var rgb = this.map(function(value){ - if (value.length == 1) value += value; - return value.toInt(16); - }); - return (array) ? rgb : 'rgb(' + rgb + ')'; - }, - - rgbToHex: function(array){ - if (this.length < 3) return null; - if (this.length == 4 && this[3] == 0 && !array) return 'transparent'; - var hex = []; - for (var i = 0; i < 3; i++){ - var bit = (this[i] - 0).toString(16); - hex.push((bit.length == 1) ? '0' + bit : bit); - } - return (array) ? hex : '#' + hex.join(''); - } - -}); - - -/* ---- - -script: Function.js - -description: Contains Function Prototypes like create, bind, pass, and delay. - -license: MIT-style license. - -requires: -- /Native -- /$util - -provides: [Function] - -... -*/ - -Function.implement({ - - extend: function(properties){ - for (var property in properties) this[property] = properties[property]; - return this; - }, - - create: function(options){ - var self = this; - options = options || {}; - return function(event){ - var args = options.arguments; - args = (args != undefined) ? $splat(args) : Array.slice(arguments, (options.event) ? 1 : 0); - if (options.event) args = [event || window.event].extend(args); - var returns = function(){ - return self.apply(options.bind || null, args); - }; - if (options.delay) return setTimeout(returns, options.delay); - if (options.periodical) return setInterval(returns, options.periodical); - if (options.attempt) return $try(returns); - return returns(); - }; - }, - - run: function(args, bind){ - return this.apply(bind, $splat(args)); - }, - - pass: function(args, bind){ - return this.create({bind: bind, arguments: args}); - }, - - bind: function(bind, args){ - return this.create({bind: bind, arguments: args}); - }, - - bindWithEvent: function(bind, args){ - return this.create({bind: bind, arguments: args, event: true}); - }, - - attempt: function(args, bind){ - return this.create({bind: bind, arguments: args, attempt: true})(); - }, - - delay: function(delay, bind, args){ - return this.create({bind: bind, arguments: args, delay: delay})(); - }, - - periodical: function(periodical, bind, args){ - return this.create({bind: bind, arguments: args, periodical: periodical})(); - } - -}); - - -/* ---- - -script: Number.js - -description: Contains Number Prototypes like limit, round, times, and ceil. - -license: MIT-style license. - -requires: -- /Native -- /$util - -provides: [Number] - -... -*/ - -Number.implement({ - - limit: function(min, max){ - return Math.min(max, Math.max(min, this)); - }, - - round: function(precision){ - precision = Math.pow(10, precision || 0); - return Math.round(this * precision) / precision; - }, - - times: function(fn, bind){ - for (var i = 0; i < this; i++) fn.call(bind, i, this); - }, - - toFloat: function(){ - return parseFloat(this); - }, - - toInt: function(base){ - return parseInt(this, base || 10); - } - -}); - -Number.alias('times', 'each'); - -(function(math){ - var methods = {}; - math.each(function(name){ - if (!Number[name]) methods[name] = function(){ - return Math[name].apply(null, [this].concat($A(arguments))); - }; - }); - Number.implement(methods); -})(['abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'exp', 'floor', 'log', 'max', 'min', 'pow', 'sin', 'sqrt', 'tan']); - - -/* ---- - -script: String.js - -description: Contains String Prototypes like camelCase, capitalize, test, and toInt. - -license: MIT-style license. - -requires: -- /Native - -provides: [String] - -... -*/ - -String.implement({ - - test: function(regex, params){ - return ((typeof regex == 'string') ? new RegExp(regex, params) : regex).test(this); - }, - - contains: function(string, separator){ - return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : this.indexOf(string) > -1; - }, - - trim: function(){ - return this.replace(/^\s+|\s+$/g, ''); - }, - - clean: function(){ - return this.replace(/\s+/g, ' ').trim(); - }, - - camelCase: function(){ - return this.replace(/-\D/g, function(match){ - return match.charAt(1).toUpperCase(); - }); - }, - - hyphenate: function(){ - return this.replace(/[A-Z]/g, function(match){ - return ('-' + match.charAt(0).toLowerCase()); - }); - }, - - capitalize: function(){ - return this.replace(/\b[a-z]/g, function(match){ - return match.toUpperCase(); - }); - }, - - escapeRegExp: function(){ - return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1'); - }, - - toInt: function(base){ - return parseInt(this, base || 10); - }, - - toFloat: function(){ - return parseFloat(this); - }, - - hexToRgb: function(array){ - var hex = this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/); - return (hex) ? hex.slice(1).hexToRgb(array) : null; - }, - - rgbToHex: function(array){ - var rgb = this.match(/\d{1,3}/g); - return (rgb) ? rgb.rgbToHex(array) : null; - }, - - stripScripts: function(option){ - var scripts = ''; - var text = this.replace(/]*>([\s\S]*?)<\/script>/gi, function(){ - scripts += arguments[1] + '\n'; - return ''; - }); - if (option === true) $exec(scripts); - else if ($type(option) == 'function') option(scripts, text); - return text; - }, - - substitute: function(object, regexp){ - return this.replace(regexp || (/\\?\{([^{}]+)\}/g), function(match, name){ - if (match.charAt(0) == '\\') return match.slice(1); - return (object[name] != undefined) ? object[name] : ''; - }); - } - -}); - - -/* ---- - -script: Hash.js - -description: Contains Hash Prototypes. Provides a means for overcoming the JavaScript practical impossibility of extending native Objects. - -license: MIT-style license. - -requires: -- /Hash.base - -provides: [Hash] - -... -*/ - -Hash.implement({ - - has: Object.prototype.hasOwnProperty, - - keyOf: function(value){ - for (var key in this){ - if (this.hasOwnProperty(key) && this[key] === value) return key; - } - return null; - }, - - hasValue: function(value){ - return (Hash.keyOf(this, value) !== null); - }, - - extend: function(properties){ - Hash.each(properties || {}, function(value, key){ - Hash.set(this, key, value); - }, this); - return this; - }, - - combine: function(properties){ - Hash.each(properties || {}, function(value, key){ - Hash.include(this, key, value); - }, this); - return this; - }, - - erase: function(key){ - if (this.hasOwnProperty(key)) delete this[key]; - return this; - }, - - get: function(key){ - return (this.hasOwnProperty(key)) ? this[key] : null; - }, - - set: function(key, value){ - if (!this[key] || this.hasOwnProperty(key)) this[key] = value; - return this; - }, - - empty: function(){ - Hash.each(this, function(value, key){ - delete this[key]; - }, this); - return this; - }, - - include: function(key, value){ - if (this[key] == undefined) this[key] = value; - return this; - }, - - map: function(fn, bind){ - var results = new Hash; - Hash.each(this, function(value, key){ - results.set(key, fn.call(bind, value, key, this)); - }, this); - return results; - }, - - filter: function(fn, bind){ - var results = new Hash; - Hash.each(this, function(value, key){ - if (fn.call(bind, value, key, this)) results.set(key, value); - }, this); - return results; - }, - - every: function(fn, bind){ - for (var key in this){ - if (this.hasOwnProperty(key) && !fn.call(bind, this[key], key)) return false; - } - return true; - }, - - some: function(fn, bind){ - for (var key in this){ - if (this.hasOwnProperty(key) && fn.call(bind, this[key], key)) return true; - } - return false; - }, - - getKeys: function(){ - var keys = []; - Hash.each(this, function(value, key){ - keys.push(key); - }); - return keys; - }, - - getValues: function(){ - var values = []; - Hash.each(this, function(value){ - values.push(value); - }); - return values; - }, - - toQueryString: function(base){ - var queryString = []; - Hash.each(this, function(value, key){ - if (base) key = base + '[' + key + ']'; - var result; - switch ($type(value)){ - case 'object': result = Hash.toQueryString(value, key); break; - case 'array': - var qs = {}; - value.each(function(val, i){ - qs[i] = val; - }); - result = Hash.toQueryString(qs, key); - break; - default: result = key + '=' + encodeURIComponent(value); - } - if (value != undefined) queryString.push(result); - }); - - return queryString.join('&'); - } - -}); - -Hash.alias({keyOf: 'indexOf', hasValue: 'contains'}); - - -/* ---- - -script: Class.js - -description: Contains the Class Function for easily creating, extending, and implementing reusable Classes. - -license: MIT-style license. - -requires: -- /$util -- /Native -- /Array -- /String -- /Function -- /Number -- /Hash - -provides: [Class] - -... -*/ - -function Class(params){ - - if (params instanceof Function) params = {initialize: params}; - - var newClass = function(){ - Object.reset(this); - if (newClass._prototyping) return this; - this._current = $empty; - var value = (this.initialize) ? this.initialize.apply(this, arguments) : this; - delete this._current; delete this.caller; - return value; - }.extend(this); - - newClass.implement(params); - - newClass.constructor = Class; - newClass.prototype.constructor = newClass; - - return newClass; - -}; - -Function.prototype.protect = function(){ - this._protected = true; - return this; -}; - -Object.reset = function(object, key){ - - if (key == null){ - for (var p in object) Object.reset(object, p); - return object; - } - - //delete object[key]; - - switch ($type(object[key])){ - case 'object': - var F = function(){}; - F.prototype = object[key]; - var i = new F; - object[key] = Object.reset(i); - break; - case 'array': object[key] = $unlink(object[key]); break; - } - - return object; - -}; - -new Native({name: 'Class', initialize: Class}).extend({ - - instantiate: function(F){ - F._prototyping = true; - var proto = new F; - delete F._prototyping; - return proto; - }, - - wrap: function(self, key, method){ - if (method._origin) method = method._origin; - - return function(){ - if (method._protected && this._current == null) throw new Error('The method "' + key + '" cannot be called.'); - var caller = this.caller, current = this._current; - this.caller = current; this._current = arguments.callee; - var result = method.apply(this, arguments); - this._current = current; this.caller = caller; - return result; - }.extend({_owner: self, _origin: method, _name: key}); - - } - -}); - -Class.implement({ - - implement: function(key, value){ - - if ($type(key) == 'object'){ - for (var p in key) this.implement(p, key[p]); - return this; - } - - var mutator = Class.Mutators[key]; - - if (mutator){ - value = mutator.call(this, value); - if (value == null) return this; - } - - var proto = this.prototype; - - switch ($type(value)){ - - case 'function': - if (value._hidden) return this; - proto[key] = Class.wrap(this, key, value); - break; - - case 'object': - var previous = proto[key]; - if ($type(previous) == 'object') $mixin(previous, value); - else proto[key] = $unlink(value); - break; - - case 'array': - proto[key] = $unlink(value); - break; - - default: proto[key] = value; - } - - return this; - - } - -}); - -Class.Mutators = { - - Extends: function(parent){ - - this.parent = parent; - this.prototype = Class.instantiate(parent); - - this.implement('parent', function(){ - var name = this.caller._name, previous = this.caller._owner.parent.prototype[name]; - if (!previous) throw new Error('The method "' + name + '" has no parent.'); - return previous.apply(this, arguments); - }.protect()); - - }, - - Implements: function(items){ - $splat(items).each(function(item){ - if (item instanceof Function) item = Class.instantiate(item); - this.implement(item); - }, this); - - } - -}; - - -/* ---- - -script: Class.Extras.js - -description: Contains Utility Classes that can be implemented into your own Classes to ease the execution of many common tasks. - -license: MIT-style license. - -requires: -- /Class - -provides: [Chain, Events, Options] - -... -*/ - -var Chain = new Class({ - - $chain: [], - - chain: function(){ - this.$chain.extend(Array.flatten(arguments)); - return this; - }, - - callChain: function(){ - return (this.$chain.length) ? this.$chain.shift().apply(this, arguments) : false; - }, - - clearChain: function(){ - this.$chain.empty(); - return this; - } - -}); - -var Events = new Class({ - - $events: {}, - - addEvent: function(type, fn, internal){ - type = Events.removeOn(type); - if (fn != $empty){ - this.$events[type] = this.$events[type] || []; - this.$events[type].include(fn); - if (internal) fn.internal = true; - } - return this; - }, - - addEvents: function(events){ - for (var type in events) this.addEvent(type, events[type]); - return this; - }, - - fireEvent: function(type, args, delay){ - type = Events.removeOn(type); - if (!this.$events || !this.$events[type]) return this; - this.$events[type].each(function(fn){ - fn.create({'bind': this, 'delay': delay, 'arguments': args})(); - }, this); - return this; - }, - - removeEvent: function(type, fn){ - type = Events.removeOn(type); - if (!this.$events[type]) return this; - if (!fn.internal) this.$events[type].erase(fn); - return this; - }, - - removeEvents: function(events){ - var type; - if ($type(events) == 'object'){ - for (type in events) this.removeEvent(type, events[type]); - return this; - } - if (events) events = Events.removeOn(events); - for (type in this.$events){ - if (events && events != type) continue; - var fns = this.$events[type]; - for (var i = fns.length; i--; i) this.removeEvent(type, fns[i]); - } - return this; - } - -}); - -Events.removeOn = function(string){ - return string.replace(/^on([A-Z])/, function(full, first){ - return first.toLowerCase(); - }); -}; - -var Options = new Class({ - - setOptions: function(){ - this.options = $merge.run([this.options].extend(arguments)); - if (!this.addEvent) return this; - for (var option in this.options){ - if ($type(this.options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue; - this.addEvent(option, this.options[option]); - delete this.options[option]; - } - return this; - } - -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/showdown.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/showdown.js deleted file mode 100644 index 110270f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/showdown.js +++ /dev/null @@ -1,419 +0,0 @@ -/* - A A L Source code at: - T C A - T K B -*/ - -var Showdown={}; -Showdown.converter=function(){ -var _1; -var _2; -var _3; -var _4=0; -this.makeHtml=function(_5){ -_1=new Array(); -_2=new Array(); -_3=new Array(); -_5=_5.replace(/~/g,"~T"); -_5=_5.replace(/\$/g,"~D"); -_5=_5.replace(/\r\n/g,"\n"); -_5=_5.replace(/\r/g,"\n"); -_5="\n\n"+_5+"\n\n"; -_5=_6(_5); -_5=_5.replace(/^[ \t]+$/mg,""); -_5=_7(_5); -_5=_8(_5); -_5=_9(_5); -_5=_a(_5); -_5=_5.replace(/~D/g,"$$"); -_5=_5.replace(/~T/g,"~"); -return _5; -}; -var _8=function(_b){ -var _b=_b.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|\Z)/gm,function(_c,m1,m2,m3,m4){ -m1=m1.toLowerCase(); -_1[m1]=_11(m2); -if(m3){ -return m3+m4; -}else{ -if(m4){ -_2[m1]=m4.replace(/"/g,"""); -} -} -return ""; -}); -return _b; -}; -var _7=function(_12){ -_12=_12.replace(/\n/g,"\n\n"); -var _13="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del"; -var _14="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math"; -_12=_12.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,_15); -_12=_12.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm,_15); -_12=_12.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,_15); -_12=_12.replace(/(\n\n[ ]{0,3}[ \t]*(?=\n{2,}))/g,_15); -_12=_12.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,_15); -_12=_12.replace(/\n\n/g,"\n"); -return _12; -}; -var _15=function(_16,m1){ -var _18=m1; -_18=_18.replace(/\n\n/g,"\n"); -_18=_18.replace(/^\n/,""); -_18=_18.replace(/\n+$/g,""); -_18="\n\n~K"+(_3.push(_18)-1)+"K\n\n"; -return _18; -}; -var _9=function(_19){ -_19=_1a(_19); -var key=_1c("
      "); -_19=_19.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,key); -_19=_19.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,key); -_19=_19.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,key); -_19=_1d(_19); -_19=_1e(_19); -_19=_1f(_19); -_19=_7(_19); -_19=_20(_19); -return _19; -}; -var _21=function(_22){ -_22=_23(_22); -_22=_24(_22); -_22=_25(_22); -_22=_26(_22); -_22=_27(_22); -_22=_28(_22); -_22=_11(_22); -_22=_29(_22); -_22=_22.replace(/ +\n/g,"
      \n"); -return _22; -}; -var _24=function(_2a){ -var _2b=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|)/gi; -_2a=_2a.replace(_2b,function(_2c){ -var tag=_2c.replace(/(.)<\/?code>(?=.)/g,"$1`"); -tag=_2e(tag,"\\`*_"); -return tag; -}); -return _2a; -}; -var _27=function(_2f){ -_2f=_2f.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,_30); -_2f=_2f.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,_30); -_2f=_2f.replace(/(\[([^\[\]]+)\])()()()()()/g,_30); -return _2f; -}; -var _30=function(_31,m1,m2,m3,m4,m5,m6,m7){ -if(m7==undefined){ -m7=""; -} -var _39=m1; -var _3a=m2; -var _3b=m3.toLowerCase(); -var url=m4; -var _3d=m7; -if(url==""){ -if(_3b==""){ -_3b=_3a.toLowerCase().replace(/ ?\n/g," "); -} -url="#"+_3b; -if(_1[_3b]!=undefined){ -url=_1[_3b]; -if(_2[_3b]!=undefined){ -_3d=_2[_3b]; -} -}else{ -if(_39.search(/\(\s*\)$/m)>-1){ -url=""; -}else{ -return _39; -} -} -} -url=_2e(url,"*_"); -var _3e=""; -return _3e; -}; -var _26=function(_3f){ -_3f=_3f.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,_40); -_3f=_3f.replace(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,_40); -return _3f; -}; -var _40=function(_41,m1,m2,m3,m4,m5,m6,m7){ -var _49=m1; -var _4a=m2; -var _4b=m3.toLowerCase(); -var url=m4; -var _4d=m7; -if(!_4d){ -_4d=""; -} -if(url==""){ -if(_4b==""){ -_4b=_4a.toLowerCase().replace(/ ?\n/g," "); -} -url="#"+_4b; -if(_1[_4b]!=undefined){ -url=_1[_4b]; -if(_2[_4b]!=undefined){ -_4d=_2[_4b]; -} -}else{ -return _49; -} -} -_4a=_4a.replace(/"/g,"""); -url=_2e(url,"*_"); -var _4e="\""+_4a+"\"";"+_21(m1)+""); -}); -_4f=_4f.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(_52,m1){ -return _1c("

      "+_21(m1)+"

      "); -}); -_4f=_4f.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(_54,m1,m2){ -var _57=m1.length; -return _1c(""+_21(m2)+""); -}); -return _4f; -}; -var _58; -var _1d=function(_59){ -_59+="~0"; -var _5a=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm; -if(_4){ -_59=_59.replace(_5a,function(_5b,m1,m2){ -var _5e=m1; -var _5f=(m2.search(/[*+-]/g)>-1)?"ul":"ol"; -_5e=_5e.replace(/\n{2,}/g,"\n\n\n"); -var _60=_58(_5e); -_60=_60.replace(/\s+$/,""); -_60="<"+_5f+">"+_60+"\n"; -return _60; -}); -}else{ -_5a=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g; -_59=_59.replace(_5a,function(_61,m1,m2,m3){ -var _65=m1; -var _66=m2; -var _67=(m3.search(/[*+-]/g)>-1)?"ul":"ol"; -var _66=_66.replace(/\n{2,}/g,"\n\n\n"); -var _68=_58(_66); -_68=_65+"<"+_67+">\n"+_68+"\n"; -return _68; -}); -} -_59=_59.replace(/~0/,""); -return _59; -}; -_58=function(_69){ -_4++; -_69=_69.replace(/\n{2,}$/,"\n"); -_69+="~0"; -_69=_69.replace(/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,function(_6a,m1,m2,m3,m4){ -var _6f=m4; -var _70=m1; -var _71=m2; -if(_70||(_6f.search(/\n{2,}/)>-1)){ -_6f=_9(_72(_6f)); -}else{ -_6f=_1d(_72(_6f)); -_6f=_6f.replace(/\n$/,""); -_6f=_21(_6f); -} -return "
    • "+_6f+"
    • \n"; -}); -_69=_69.replace(/~0/g,""); -_4--; -return _69; -}; -var _1e=function(_73){ -_73+="~0"; -_73=_73.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(_74,m1,m2){ -var _77=m1; -var _78=m2; -_77=_79(_72(_77)); -_77=_6(_77); -_77=_77.replace(/^\n+/g,""); -_77=_77.replace(/\n+$/g,""); -_77="
      "+_77+"\n
      "; -return _1c(_77)+_78; -}); -_73=_73.replace(/~0/,""); -return _73; -}; -var _1c=function(_7a){ -_7a=_7a.replace(/(^\n+|\n+$)/g,""); -return "\n\n~K"+(_3.push(_7a)-1)+"K\n\n"; -}; -var _23=function(_7b){ -_7b=_7b.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(_7c,m1,m2,m3,m4){ -var c=m3; -c=c.replace(/^([ \t]*)/g,""); -c=c.replace(/[ \t]*$/g,""); -c=_79(c); -return m1+""+c+""; -}); -return _7b; -}; -var _79=function(_82){ -_82=_82.replace(/&/g,"&"); -_82=_82.replace(//g,">"); -_82=_2e(_82,"*_{}[]\\",false); -return _82; -}; -var _29=function(_83){ -_83=_83.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"$2"); -_83=_83.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"$2"); -return _83; -}; -var _1f=function(_84){ -_84=_84.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(_85,m1){ -var bq=m1; -bq=bq.replace(/^[ \t]*>[ \t]?/gm,"~0"); -bq=bq.replace(/~0/g,""); -bq=bq.replace(/^[ \t]+$/gm,""); -bq=_9(bq); -bq=bq.replace(/(^|\n)/g,"$1 "); -bq=bq.replace(/(\s*
      [^\r]+?<\/pre>)/gm,function(_88,m1){
      -var pre=m1;
      -pre=pre.replace(/^  /mg,"~0");
      -pre=pre.replace(/~0/g,"");
      -return pre;
      -});
      -return _1c("
      \n"+bq+"\n
      "); -}); -return _84; -}; -var _20=function(_8b){ -_8b=_8b.replace(/^\n+/g,""); -_8b=_8b.replace(/\n+$/g,""); -var _8c=_8b.split(/\n{2,}/g); -var _8d=new Array(); -var end=_8c.length; -for(var i=0;i=0){ -_8d.push(str); -}else{ -if(str.search(/\S/)>=0){ -str=_21(str); -str=str.replace(/^([ \t]*)/g,"

      "); -str+="

      "; -_8d.push(str); -} -} -} -end=_8d.length; -for(var i=0;i=0){ -var _91=_3[RegExp.$1]; -_91=_91.replace(/\$/g,"$$$$"); -_8d[i]=_8d[i].replace(/~K\d+K/,_91); -} -} -return _8d.join("\n\n"); -}; -var _11=function(_92){ -_92=_92.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"); -_92=_92.replace(/<(?![a-z\/?\$!])/gi,"<"); -return _92; -}; -var _25=function(_93){ -_93=_93.replace(/\\(\\)/g,_94); -_93=_93.replace(/\\([`*_{}\[\]()>#+-.!])/g,_94); -return _93; -}; -var _28=function(_95){ -_95=_95.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,"
      $1"); -_95=_95.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(_96,m1){ -return _98(_a(m1)); -}); -return _95; -}; -var _98=function(_99){ -function char2hex(ch){ -var _9b="0123456789ABCDEF"; -var dec=ch.charCodeAt(0); -return (_9b.charAt(dec>>4)+_9b.charAt(dec&15)); -} -var _9d=[function(ch){ -return "&#"+ch.charCodeAt(0)+";"; -},function(ch){ -return "&#x"+char2hex(ch)+";"; -},function(ch){ -return ch; -}]; -_99="mailto:"+_99; -_99=_99.replace(/./g,function(ch){ -if(ch=="@"){ -ch=_9d[Math.floor(Math.random()*2)](ch); -}else{ -if(ch!=":"){ -var r=Math.random(); -ch=(r>0.9?_9d[2](ch):r>0.45?_9d[1](ch):_9d[0](ch)); -} -} -return ch; -}); -_99=""+_99+""; -_99=_99.replace(/">.+:/g,"\">"); -return _99; -}; -var _a=function(_a3){ -_a3=_a3.replace(/~E(\d+)E/g,function(_a4,m1){ -var _a6=parseInt(m1); -return String.fromCharCode(_a6); -}); -return _a3; -}; -var _72=function(_a7){ -_a7=_a7.replace(/^(\t|[ ]{1,4})/gm,"~0"); -_a7=_a7.replace(/~0/g,""); -return _a7; -}; -var _6=function(_a8){ -_a8=_a8.replace(/\t(?=\t)/g," "); -_a8=_a8.replace(/\t/g,"~A~B"); -_a8=_a8.replace(/~B(.+?)~A/g,function(_a9,m1,m2){ -var _ac=m1; -var _ad=4-_ac.length%4; -for(var i=0;i<_ad;i++){ -_ac+=" "; -} -return _ac; -}); -_a8=_a8.replace(/~A/g," "); -_a8=_a8.replace(/~B/g,""); -return _a8; -}; -var _2e=function(_af,_b0,_b1){ -var _b2="(["+_b0.replace(/([\[\]\\])/g,"\\$1")+"])"; -if(_b1){ -_b2="\\\\"+_b2; -} -var _b3=new RegExp(_b2,"g"); -_af=_af.replace(_b3,_94); -return _af; -}; -var _94=function(_b4,m1){ -var _b6=m1.charCodeAt(0); -return "~E"+_b6+"E"; -}; -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/showdown_license.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/showdown_license.txt deleted file mode 100644 index e9c8672d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/js/showdown_license.txt +++ /dev/null @@ -1,34 +0,0 @@ -Copyright (c) 2007, John Fraser - -All rights reserved. - -Original Markdown copyright (c) 2004, John Gruber - -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 "Markdown" 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. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/publish.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/publish.js deleted file mode 100644 index 246e79d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/publish.js +++ /dev/null @@ -1,513 +0,0 @@ - -/** Called automatically by JsDoc Toolkit. */ -function publish(symbolSet) { - publish.conf = { // trailing slash expected for dirs - ext: ".html", - outDir: JSDOC.opt.d || SYS.pwd+"../out/jsdoc/", - templatesDir: JSDOC.opt.t || SYS.pwd+"../templates/jsdoc/", - symbolsDir: "symbols/", - srcDir: "symbols/src/" - }; - - load(publish.conf.templatesDir+'js/mootools-1.2.4-core-server.js'); - load(publish.conf.templatesDir+'js/htmlparser.js'); - load(publish.conf.templatesDir+'js/jsdom.js'); - load(publish.conf.templatesDir+'js/showdown.js'); - markdownConverter = new Showdown.converter(); - - // is source output is suppressed, just display the links to the source file - if (JSDOC.opt.s && defined(Link) && Link.prototype._makeSrcLink) { - Link.prototype._makeSrcLink = function(srcFilePath) { - return "<"+srcFilePath+">"; - } - } - - // create the folders and subfolders to hold the output - IO.mkPath((publish.conf.outDir+"symbols/src").split("/")); - - // used to allow Link to check the details of things being linked to - Link.symbolSet = symbolSet; - - // create the required templates - try { - var classTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"class.tmpl"); - var classesTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"allclasses.tmpl"); - var docsIndexTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"docsindex.tmpl"); - var userDocTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"userdoc.tmpl"); - } - catch(e) { - print("Couldn't create the required templates: "+e); - quit(); - } - - // some ustility filters - function hasNoParent($) {return ($.memberOf == "")} - function isaFile($) {return ($.is("FILE"))} - function isaClass($) {return ($.is("CONSTRUCTOR") || $.isNamespace)} - - // get an array version of the symbolset, useful for filtering - var symbols = symbolSet.toArray(); - - // create the hilited source code files - var files = JSDOC.opt.srcFiles; - for (var i = 0, l = files.length; i < l; i++) { - var file = files[i]; - var srcDir = publish.conf.outDir + "symbols/src/"; - makeSrcFile(file, srcDir); - } - - // get a list of all the classes in the symbolset - var classes = symbols.filter(isaClass).sort(makeSortby("alias")); - - // create a filemap in which outfiles must be to be named uniquely, - // ignoring case - if (JSDOC.opt.u) { - var filemapCounts = {}; - Link.filemap = {}; - for (var i = 0, l = classes.length; i < l; i++) { - var lcAlias = classes[i].alias.toLowerCase(); - - if (!filemapCounts[lcAlias]) filemapCounts[lcAlias] = 1; - else filemapCounts[lcAlias]++; - - Link.filemap[classes[i].alias] = - (filemapCounts[lcAlias] > 1)? - lcAlias+"_"+filemapCounts[lcAlias] : lcAlias; - } - } - - // create a class index, displayed in the left-hand column of every class - // page - - Link.base = "../"; - var docsConfig = JSDOC.opt.docs; - var hasDocsList = docsConfig !== undefined && docsConfig !== null && - docsConfig.content instanceof Array && - docsConfig.content.length > 0; - var docsList = hasDocsList ? docsConfig.content : null; - if (hasDocsList) { - for (var i = 0; i < docsList.length; i++) { - docsList[i].outFile = 'userdocs/' + i + '.html'; - } - } - - publish.docsIndex = hasDocsList ? docsIndexTemplate.process(docsList) : ""; - publish.classesIndex = classesTemplate.process(classes); // kept in memory - - // copy resources - var stdResources = copyResources(publish.conf.outDir+'userdocs/', - ((docsConfig === null || docsConfig === undefined) - || !docsConfig.resources) ? - null : - docsConfig.resources); - //var stdResources = {}; - var dynResources = {}; - - if (hasDocsList) { - IO.mkPath((publish.conf.outDir+'userdocs').split('/')); - - for (var i = 0; i < docsList.length; i++) { - var content, header = "", doc = docsList[i]; - - if (doc.preprocess || docsConfig.preprocess) { - content = processWithCommand(docsConfig.preprocess || - doc.preprocess, doc.src); - } else { - content = IO.readFile(doc.src); - ext = FilePath.fileExtension(doc.src); - if (ext === 'markdown' || ext === 'md') { - content = markdownConverter.makeHtml(content); - } - var absPath = new Packages.java.io.File(doc.src). - getAbsolutePath(); - - stdResources['=' + absPath] = doc.outFile; - } - - var docDOM = parseDom(content); - - if (docDOM instanceof Array) { - docDOM = docDOM.filter(function(d){ - return d instanceof DomText ? d.innerText == true : true; - }); - } - - if (!(docDOM instanceof Array) && docDOM.tagName.toLowerCase() === 'html') - { - content = docDOM.getElement('body').innerHTML; - header = docDOM.getElement('head') || null; - if (header) { - header.getElements("script").forEach(function (node){ - if( node.getAttribute('src') && - !isURL(node.getAttribute('src'))) - { - var src = addResource(publish.conf, - doc, - stdResources, - dynResources, - node.getAttribute('src')); - node.setAttribute('src', src); - } - }); - header.getElements("link").forEach(function (node) { - if (!isURL(node.getAttribute('href'))) { - var src = addResource(publish.conf, - doc, - stdResources, - dynResources, - node.getAttribute('href')); - node.setAttribute('href', src); - } - }); - } - header = header.innerHTML || ""; - } - - var docText = userDocTemplate.process({ content: content - , header: header - , title: doc.title - }); - - IO.saveFile(publish.conf.outDir+'userdocs/', - i + '.html', docText); - } - } - - // create each of the class pages - for (var i = 0, l = classes.length; i < l; i++) { - var symbol = classes[i]; - - symbol.events = symbol.getEvents(); // 1 order matters - symbol.methods = symbol.getMethods(); // 2 - - var output = ""; - output = classTemplate.process(symbol); - - IO.saveFile(publish.conf.outDir+"symbols/", - ((JSDOC.opt.u)? Link.filemap[symbol.alias] : - symbol.alias) + - publish.conf.ext, output); - } - - // regenerate the index with different relative links, used in the index - // pages - Link.base = ""; - publish.docsIndex = hasDocsList ? - docsIndexTemplate.process(docsList) : - ""; - - publish.classesIndex = classesTemplate.process(classes); - - // create the class index page - try { - var classesindexTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"index.tmpl"); - } - catch(e) { print(e.message); quit(); } - - var classesIndex = classesindexTemplate.process(classes); - IO.saveFile(publish.conf.outDir, "index"+publish.conf.ext, classesIndex); - - try { - var symbolIndexTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+'symbolindex.tmpl'); - } catch(e) { print(e.message); quit(); } - - var symbolIndex = symbolIndexTemplate.process(buildSymbolList(classes)); - IO.saveFile(publish.conf.outDir, 'symbolindex'+publish.conf.ext, symbolIndex); - - symbolIndex = symbolIndexTemplate = null; - classesindexTemplate = classesIndex = classes = null; - - // create the file index page - try { - var fileindexTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"allfiles.tmpl"); - } - catch(e) { print(e.message); quit(); } - - var documentedFiles = symbols.filter(isaFile); // files that have file-level docs - var allFiles = []; // not all files have file-level docs, but we need to list every one - - for (var i = 0; i < files.length; i++) { - allFiles.push(new JSDOC.Symbol(files[i], [], "FILE", new JSDOC.DocComment("/** */"))); - } - - for (var i = 0; i < documentedFiles.length; i++) { - var offset = files.indexOf(documentedFiles[i].alias); - allFiles[offset] = documentedFiles[i]; - } - - allFiles = allFiles.sort(makeSortby("name")); - - // output the file index page - var filesIndex = fileindexTemplate.process(allFiles); - IO.saveFile(publish.conf.outDir, "files"+publish.conf.ext, filesIndex); - fileindexTemplate = filesIndex = files = null; - - var staticDir = publish.conf.outDir + 'static'; - IO.mkPath(staticDir.split('/')); - IO.ls( publish.conf.templatesDir+'static' ).forEach(function(f){ - IO.copyFile(f, staticDir); - }); -} - - -/** Just the first sentence (up to a full stop). Should not break on dotted - * variable names. - */ -function summarize(desc) { - if (typeof desc != "undefined") - return desc.match(/([\w\W]+?\.)[^a-z0-9_$]/i)? RegExp.$1 : desc; -} - -/** Make a symbol sorter by some attribute. */ -function makeSortby(attribute) { - return function(a, b) { - if (a[attribute] != undefined && b[attribute] != undefined) { - a = a[attribute].toLowerCase(); - b = b[attribute].toLowerCase(); - if (a < b) return -1; - if (a > b) return 1; - return 0; - } - } -} - -/** Pull in the contents of an external file at the given path. */ -function include(path) { - var path = publish.conf.templatesDir+path; - return IO.readFile(path); -} - -/** Turn a raw source file into a code-hilited page in the docs. */ -function makeSrcFile(path, srcDir, name) { - if (JSDOC.opt.s) return; - - if (!name) { - name = path.replace(/\.\.?[\\\/]/g, "").replace(/[\\\/]/g, "_"); - name = name.replace(/\:/g, "_"); - } - - var src = {path: path, name:name, charset: IO.encoding, hilited: ""}; - - if (defined(JSDOC.PluginManager)) { - JSDOC.PluginManager.run("onPublishSrc", src); - } - - if (src.hilited) { - IO.saveFile(srcDir, name+publish.conf.ext, src.hilited); - } -} - -/** Build output for displaying function parameters. */ -function makeSignature(params) { - if (!params) return "()"; - var signature = "(" - + - params.filter( - function($) { - return $.name.indexOf(".") == -1; // don't show config params in signature - } - ).map( - function($) { - return $.name; - } - ).join(", ") - + - ")"; - return signature; -} - -/** Find symbol {@link ...} strings in text and turn into html links */ -function resolveLinks(str, from) { - str = str.replace(/\{@link ([^} ]+) ?\}/gi, - function(match, symbolName) { - return new Link().toSymbol(symbolName); - } - ); - - return str; -} - -function processWithCommand(cmd, file) { - var process, line, content = IO.readFile(file); - - if(!content){ - LOG.warn('could not read file: ' + file); - quit(); - return null; - } - - process = Packages.java.lang.Runtime.getRuntime().exec(cmd); - if(!process) { - LOG.warn('unable to execute command: ' + cmd); - quit(); - return null; - } - - var textIn = new Packages.java.io.BufferedReader( - new Packages.java.io.InputStreamReader( - process.getInputStream())); - - var textOut = new Packages.java.io.PrintWriter( - new Packages.java.io.BufferedWriter( - new Packages.java.io.OutputStreamWriter( - process.getOutputStream()))); - - textOut.print(content); - textOut.close(); - - content = ""; - while ((line = textIn.readLine())) { - content += line; - content += "\n"; - } - textIn.close(); - - process.waitFor(); - if(process.exitValue() != 0) { - quit(); - return null; - } - - return content; -} - -function buildSymbolList(classes) { - var clazz, i, - tmp = {}, - ret = []; - - function addSymbol(s) { - var n = '=' + s.name; - if (!tmp[n]) { - tmp[n] = { name: s.name, - symbols: [s] }; - } else { - tmp[n].symbols.push(s); - } - } - - function addMembers(c, lst) { - if(lst){ - lst.filter(function(x){ - return x.memberOf == c.alias && !x.isNamespace || !x.isIgnored; - }).forEach(addSymbol); - } - } - - for (i = 0; i < classes.length; i++) { - clazz = classes[i]; - if(clazz.name !== '_global_') { - switch(clazz.isa) { - case 'OBJECT': - case 'CONSTRUCTOR': - addSymbol(clazz); - } - } - - addMembers(clazz, clazz.properties); - addMembers(clazz, clazz.methods); - addMembers(clazz, clazz.events); - } - - for (i in tmp) { - ret.push(tmp[i]); - } - - ret.sort(makeSortby('name')); - - return ret; -} - -function copyDirectory(todir, fromdir) { - var dir = new Packages.java.io.File(fromdir); - var m = {}; - - dir.listFiles().forEach(function(f){ - if (f.isFile()) { - IO.copyFile(f, todir, f.getName()); - m['=' + f.getAbsolutePath()] = todir+f.getName(); - } else if (f.isDirectory()) { - IO.mkPath(todir+f.getName()); - var tmp = copyDirectory(todir+f.getName()+'/', f); - for(var i in tmp) { - m[i] = tmp[i]; - } - } - }); - return m; -} - -function copyResources(todir, resources) { - var m = {}; - if (resources && resources instanceof Array) { - resources.forEach(function (r) { - var files, f = new Packages.java.io.File(r); - - if (f.isFile()) { - IO.copyFile( f.getAbsolutePath(), todir, f.getName() ); - m['=' + f.getAbsolutePath()] = - new Packages.java.io.File(todir+f.getName()). - getAbsolutePath(); - } else if (f.isDirectory()) { - IO.mkPath(todir+f.getName()); - var tmp = copyDirectory(todir+f.getName()+'/', - f.getAbsolutePath()); - for(var i in tmp) { - m[i] = tmp[i]; - } - } - }); - } - return m; -} - -function isURL(str) { - return /^http:\/\//.test(str); -} - -function findRelativePath(from, to) { - var fTo = new Packages.java.io.File(to).getAbsoluteFile(); - var fFrom = new Packages.java.io.File(from).getAbsoluteFile(); - if(!fFrom.isDirectory()) fFrom = fFrom.getParentFile(); - - var aFrom = String(fFrom.getAbsolutePath()).split(/[\\\/]/); - var aTo = String(fTo.getAbsolutePath()).split(/[\\\/]/); - - while(aFrom.length && aTo.length && aFrom[0] == aTo[0]) { - aFrom.shift(); - aTo.shift(); - } - - var path = aFrom.map(function(){ return "..";}).join('/'); - if(aFrom.length > 0) path += '/'; - path += aTo.join('/'); - return path; -} - -function addResource(conf, forDoc, staticResources, dynResources, res) { - var f = new Packages.java.io.File(forDoc.src); - var docDir = f.isDirectory() ? - f.getAbsolutePath() : - f.getAbsoluteFile().getParent(); - var resource = String(new Packages.java.io.File(docDir, res). - getCanonicalPath()); - var staticRes = staticResources['=' + resource]; - - if (staticRes) { - return findRelativePath( conf.outDir+forDoc.outFile, staticRes); - } - - var dynRes = dynResources['=' + resource]; - if (dynRes) { - return findRelativePath( conf.outDir+forDoc.outFile, dynRes); - } - - //copy resource file - var fileName = FilePath.fileName(resource); - IO.copyFile(resource, conf.outDir+'userdocs/', fileName); - var dynRes = conf.outDir+'userdocs/'+fileName; - dynResources['=' + resource] = dynRes; - - return findRelativePath(conf.outDir+forDoc.outFile, dynRes); -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/static/default.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/static/default.css deleted file mode 100644 index 9696a207..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/static/default.css +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Hasher.js documentation - * based on urso jsdoc-simple template: http://github.com/urso/jsdoc-simple - * adapted by Miller Medeiros (http://millermedeiros.com/) - */ - -/* default.css */ -html{ - overflow-y:scroll; -} - -body -{ - font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif; - min-width: 1000px; - max-width: 1400px; - margin:0 auto; -} - -.header -{ - clear: both; - background-color: #ccc; -} - -a -{ - text-decoration: none; - color: #d12250; - outline:none; -} - -a:active, a:focus, a:hover{ - color: #333; -} - -h1 -{ - font-size: 1.5em; - font-weight: bold; - padding: 0; - margin: 1em 0 0 .3em; -} - -hr -{ - border: none 0; - border-top: 1px solid #7F8FB1; - height: 1px; -} - -pre.code -{ - display: block; - padding: 8px; - border: 1px dashed #ccc; -} - -#header{ - background: transparent url(hasher-logo.gif) no-repeat 20px 30px; - height: 110px; -} - -#index -{ - float: left; - width: 200px; - padding: 20px; -} - -#symbolList -{ - margin: 20px; - width: 200px; - float:right; -} - -#symbolList ul -{ - padding: 0; - margin: 0; - padding-left: 8px; - list-style: none; - font-size: 0.85em; -} - -#symbolList h3 -{ - margin-top:1.2em; - margin-bottom: 0.5em; -} - -#symbolList ul li -{ - padding: 0; - margin: 0; -} - -#content -{ - text-align: left; - padding:0 260px; - margin:0; -} - -.classList -{ - list-style-type: none; - padding: 0; - margin: 0 0 0 8px; - font-family: arial, sans-serif; - font-size: 1em; - overflow: auto; -} - -.classList li -{ - padding: 0; - margin: 0 0 8px 0; -} - -.summaryTable { width: 100%; } - -h1.classTitle -{ - font-size:1.7em; - line-height:1.3em; -} - -h2 { font-size: 1.1em; } -caption, div.sectionTitle -{ - background-color: #ddd; - color: #343436; - font-size:1.3em; - text-align: left; - padding: 2px 6px 2px 6px; - margin-top: 1.5em; - border: 1px #ddd solid; -} - -div.sectionTitle { margin-bottom: 8px; } -.summaryTable thead { display: none; } - -.summaryTable td -{ - vertical-align: top; - padding: 4px; - border-bottom: 1px #7F8FB1 solid; - border-right: 1px #7F8FB1 solid; -} - -/*col#summaryAttributes {}*/ -.summaryTable td.attributes -{ - border-left: 1px #7F8FB1 solid; - width: 140px; - text-align: right; -} - -.fixedFont b -{ - color: #d12250; -} - -td.attributes, .fixedFont -{ - line-height: 1.1em; - /* color: #002EBE; */ - font-family: "Courier New",Courier,monospace; - font-size: 1.3em; -} - -.modifiers { - float: right; - /* padding: 0 2em 0 2em; */ - padding: 0; - font-size: 0.85em; -} - -.member .description -{ - margin: 0.75em 0 0 0; - padding: 0 0.5em 0 0.5em; -} - -.summaryTable td.nameDescription -{ - text-align: left; - font-size: 1.1em; - line-height: 1.2em; -} - -.summaryTable td.nameDescription, .description -{ - line-height: 15px; - padding: 4px; - padding-left: 4px; -} - -.summaryTable { margin-bottom: 8px; } - -ul.inheritsList -{ - list-style: square; - margin-left: 20px; - padding-left: 0; -} - -.detailList { - margin-left: 20px; - line-height: 15px; -} -.detailList dt { margin-left: 20px; } - -.detailList .heading -{ - font-weight: bold; - padding-bottom: 6px; - margin-left: 0; -} - -.member -{ - border: 1px solid #ccc; - background: #f8f8ff; - margin: 1em 0 1em 0; - padding: 0.75em; -} - -.light, td.attributes, .light a:link, .light a:visited -{ - color: #777; - font-style: italic; -} - -code { - /*display: block; - margin: 1em;*/ - border: 1px solid #ccc; - padding: 2px 5px; - background: #f8f8ff; -} - -.fineprint -{ - text-align: right; - font-size: 10px; - padding:10px 0 20px; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/static/hasher-logo.gif b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/static/hasher-logo.gif deleted file mode 100644 index 08907434..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/static/hasher-logo.gif and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/symbol.tmpl b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/symbol.tmpl deleted file mode 100644 index f8f4bd1f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/symbol.tmpl +++ /dev/null @@ -1,35 +0,0 @@ - - {+data.name+} - {+data.memberOf+} - {+data.isStatic+} - {+data.isa+} - {+data.desc+} - {+data.classDesc+} - - - - {+method.name+} - {+method.memberOf+} - {+method.isStatic+} - {+method.desc+} - - - {+param.type+} - {+param.name+} - {+param.desc+} - {+param.defaultValue+} - - - - - - - - {+property.name+} - {+property.memberOf+} - {+property.isStatic+} - {+property.desc+} - {+property.type+} - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/symbolindex.tmpl b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/symbolindex.tmpl deleted file mode 100644 index 74ec4b4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/symbolindex.tmpl +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - JsDoc Reference - Index - - - - - - - - - - - {+include("header.html")+} - -
      -
      - {+publish.docsIndex+} -
      - {+publish.classesIndex+} -
      - -
      -

      Symbol Index

      -
      -
      - - - - - - - -
      {+symbol.name+} - - {+new Link().toSymbol(entry.alias)+} - -
      -
      -
      -
      -
      - ©{+JSDOC.opt.D.copyright+}
      - Documentation generated by JsDoc Toolkit {+JSDOC.VERSION+} on {+new Date()+} - | template based on Steffen Siering jsdoc-simple. -
      - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/userdoc.tmpl b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/userdoc.tmpl deleted file mode 100644 index 6da40d1c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/jsdoc-toolkit/templates/hasher/userdoc.tmpl +++ /dev/null @@ -1,36 +0,0 @@ - - - - - JsDoc Reference - File Index - - - - - {+data.header+} - - - - - {+include("header.html")+} - -
      -
      - {+publish.docsIndex+} -
      - {+publish.classesIndex+} -
      - -
      - {+data.content+} - -
      -
      -
      - ©{+JSDOC.opt.D.copyright+}
      - Documentation generated by JsDoc Toolkit {+JSDOC.VERSION+} on {+new Date()+} - | template based on Steffen Siering jsdoc-simple. -
      - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/yuicompressor/README b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/yuicompressor/README deleted file mode 100644 index 1604846c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/yuicompressor/README +++ /dev/null @@ -1,140 +0,0 @@ -============================================================================== -YUI Compressor -============================================================================== - -NAME - - YUI Compressor - The Yahoo! JavaScript and CSS Compressor - -SYNOPSIS - - Usage: java -jar yuicompressor-x.y.z.jar [options] [input file] - - Global Options - -h, --help Displays this information - --type Specifies the type of the input file - --charset Read the input file using - --line-break Insert a line break after the specified column number - -v, --verbose Display informational messages and warnings - -o Place the output into . Defaults to stdout. - - JavaScript Options - --nomunge Minify only, do not obfuscate - --preserve-semi Preserve all semicolons - --disable-optimizations Disable all micro optimizations - -DESCRIPTION - - The YUI Compressor is a JavaScript compressor which, in addition to removing - comments and white-spaces, obfuscates local variables using the smallest - possible variable name. This obfuscation is safe, even when using constructs - such as 'eval' or 'with' (although the compression is not optimal is those - cases) Compared to jsmin, the average savings is around 20%. - - The YUI Compressor is also able to safely compress CSS files. The decision - on which compressor is being used is made on the file extension (js or css) - -GLOBAL OPTIONS - - -h, --help - Prints help on how to use the YUI Compressor - - --line-break - Some source control tools don't like files containing lines longer than, - say 8000 characters. The linebreak option is used in that case to split - long lines after a specific column. It can also be used to make the code - more readable, easier to debug (especially with the MS Script Debugger) - Specify 0 to get a line break after each semi-colon in JavaScript, and - after each rule in CSS. - - --type js|css - The type of compressor (JavaScript or CSS) is chosen based on the - extension of the input file name (.js or .css) This option is required - if no input file has been specified. Otherwise, this option is only - required if the input file extension is neither 'js' nor 'css'. - - --charset character-set - If a supported character set is specified, the YUI Compressor will use it - to read the input file. Otherwise, it will assume that the platform's - default character set is being used. The output file is encoded using - the same character set. - - -o outfile - Place output in file outfile. If not specified, the YUI Compressor will - default to the standard output, which you can redirect to a file. - - -v, --verbose - Display informational messages and warnings. - -JAVASCRIPT ONLY OPTIONS - - --nomunge - Minify only. Do not obfuscate local symbols. - - --preserve-semi - Preserve unnecessary semicolons (such as right before a '}') This option - is useful when compressed code has to be run through JSLint (which is the - case of YUI for example) - - --disable-optimizations - Disable all the built-in micro optimizations. - -NOTES - - + If no input file is specified, it defaults to stdin. - - + The YUI Compressor requires Java version >= 1.4. - - + It is possible to prevent a local variable, nested function or function - argument from being obfuscated by using "hints". A hint is a string that - is located at the very beginning of a function body like so: - - function fn (arg1, arg2, arg3) { - "arg2:nomunge, localVar:nomunge, nestedFn:nomunge"; - - ... - var localVar; - ... - - function nestedFn () { - .... - } - - ... - } - - The hint itself disappears from the compressed file. - - + C-style comments starting with /*! are preserved. This is useful with - comments containing copyright/license information. For example: - - /*! - * TERMS OF USE - EASING EQUATIONS - * Open source under the BSD License. - * Copyright 2001 Robert Penner All rights reserved. - */ - - becomes: - - /* - * TERMS OF USE - EASING EQUATIONS - * Open source under the BSD License. - * Copyright 2001 Robert Penner All rights reserved. - */ - -AUTHOR - - The YUI Compressor was written and is maintained by: - Julien Lecomte - The CSS portion is a port of Isaac Schlueter's cssmin utility. - -COPYRIGHT - - Copyright (c) 2007-2009, Yahoo! Inc. All rights reserved. - -LICENSE - - All code specific to YUI Compressor is issued under a BSD license. - YUI Compressor extends and implements code from Mozilla's Rhino project. - Rhino is issued under the Mozilla Public License (MPL), and MPL applies - to the Rhino source and binaries that are distributed with YUI Compressor. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/yuicompressor/yuicompressor-2.4.2.jar b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/yuicompressor/yuicompressor-2.4.2.jar deleted file mode 100644 index c29470bd..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/build/yuicompressor/yuicompressor-2.4.2.jar and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/lib/signals.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/lib/signals.js deleted file mode 100644 index 1689346b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/lib/signals.js +++ /dev/null @@ -1,367 +0,0 @@ -/*jslint onevar:true, undef:true, newcap:true, regexp:true, bitwise:true, maxerr:50, indent:4, white:false, nomen:false, plusplus:false */ -/*global window:false, global:false*/ - -/*!! - * JS Signals - * Released under the MIT license - * @author Miller Medeiros - * @version 0.6.3 - * @build 187 (07/11/2011 10:14 AM) - */ -(function(global){ - - /** - * @namespace Signals Namespace - Custom event/messaging system based on AS3 Signals - * @name signals - */ - var signals = /** @lends signals */{ - /** - * Signals Version Number - * @type String - * @const - */ - VERSION : '0.6.3' - }; - - - - // SignalBinding ------------------------------------------------- - //================================================================ - - /** - * Object that represents a binding between a Signal and a listener function. - *
      - This is an internal constructor and shouldn't be called by regular users. - *
      - inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes. - * @author Miller Medeiros - * @constructor - * @internal - * @name signals.SignalBinding - * @param {signals.Signal} signal Reference to Signal object that listener is currently bound to. - * @param {Function} listener Handler function bound to the signal. - * @param {boolean} isOnce If binding should be executed just once. - * @param {Object} [listenerContext] Context on which listener will be executed (object that should represent the `this` variable inside listener function). - * @param {Number} [priority] The priority level of the event listener. (default = 0). - */ - function SignalBinding(signal, listener, isOnce, listenerContext, priority) { - - /** - * Handler function bound to the signal. - * @type Function - * @private - */ - this._listener = listener; - - /** - * If binding should be executed just once. - * @type boolean - * @private - */ - this._isOnce = isOnce; - - /** - * Context on which listener will be executed (object that should represent the `this` variable inside listener function). - * @memberOf signals.SignalBinding.prototype - * @name context - * @type Object|undefined|null - */ - this.context = listenerContext; - - /** - * Reference to Signal object that listener is currently bound to. - * @type signals.Signal - * @private - */ - this._signal = signal; - - /** - * Listener priority - * @type Number - * @private - */ - this._priority = priority || 0; - } - - SignalBinding.prototype = /** @lends signals.SignalBinding.prototype */ { - - /** - * If binding is active and should be executed. - * @type boolean - */ - active : true, - - /** - * Default parameters passed to listener during `Signal.dispatch` and `SignalBinding.execute`. (curried parameters) - * @type Array|null - */ - params : null, - - /** - * Call listener passing arbitrary parameters. - *

      If binding was added using `Signal.addOnce()` it will be automatically removed from signal dispatch queue, this method is used internally for the signal dispatch.

      - * @param {Array} [paramsArr] Array of parameters that should be passed to the listener - * @return {*} Value returned by the listener. - */ - execute : function (paramsArr) { - var handlerReturn, params; - if (this.active && !!this._listener) { - params = this.params? this.params.concat(paramsArr) : paramsArr; - handlerReturn = this._listener.apply(this.context, params); - if (this._isOnce) { - this.detach(); - } - } - return handlerReturn; - }, - - /** - * Detach binding from signal. - * - alias to: mySignal.remove(myBinding.getListener()); - * @return {Function|null} Handler function bound to the signal or `null` if binding was previously detached. - */ - detach : function () { - return this.isBound()? this._signal.remove(this._listener) : null; - }, - - /** - * @return {Boolean} `true` if binding is still bound to the signal and have a listener. - */ - isBound : function () { - return (!!this._signal && !!this._listener); - }, - - /** - * @return {Function} Handler function bound to the signal. - */ - getListener : function () { - return this._listener; - }, - - /** - * Delete instance properties - * @private - */ - _destroy : function () { - delete this._signal; - delete this._listener; - delete this.context; - }, - - /** - * @return {boolean} If SignalBinding will only be executed once. - */ - isOnce : function () { - return this._isOnce; - }, - - /** - * @return {string} String representation of the object. - */ - toString : function () { - return '[SignalBinding isOnce: ' + this._isOnce +', isBound: '+ this.isBound() +', active: ' + this.active + ']'; - } - - }; - - -/*global signals:true, SignalBinding:false*/ - - // Signal -------------------------------------------------------- - //================================================================ - - function validateListener(listener, fnName) { - if (typeof listener !== 'function') { - throw new Error( 'listener is a required param of {fn}() and should be a Function.'.replace('{fn}', fnName) ); - } - } - - /** - * Custom event broadcaster - *
      - inspired by Robert Penner's AS3 Signals. - * @author Miller Medeiros - * @constructor - */ - signals.Signal = function () { - /** - * @type Array. - * @private - */ - this._bindings = []; - }; - - signals.Signal.prototype = { - - /** - * @type boolean - * @private - */ - _shouldPropagate : true, - - /** - * If Signal is active and should broadcast events. - *

      IMPORTANT: Setting this property during a dispatch will only affect the next dispatch, if you want to stop the propagation of a signal use `halt()` instead.

      - * @type boolean - */ - active : true, - - /** - * @param {Function} listener - * @param {boolean} isOnce - * @param {Object} [scope] - * @param {Number} [priority] - * @return {SignalBinding} - * @private - */ - _registerListener : function (listener, isOnce, scope, priority) { - - var prevIndex = this._indexOfListener(listener), - binding; - - if (prevIndex !== -1) { //avoid creating a new Binding for same listener if already added to list - binding = this._bindings[prevIndex]; - if (binding.isOnce() !== isOnce) { - throw new Error('You cannot add'+ (isOnce? '' : 'Once') +'() then add'+ (!isOnce? '' : 'Once') +'() the same listener without removing the relationship first.'); - } - } else { - binding = new SignalBinding(this, listener, isOnce, scope, priority); - this._addBinding(binding); - } - - return binding; - }, - - /** - * @param {SignalBinding} binding - * @private - */ - _addBinding : function (binding) { - //simplified insertion sort - var n = this._bindings.length; - do { --n; } while (this._bindings[n] && binding._priority <= this._bindings[n]._priority); - this._bindings.splice(n + 1, 0, binding); - }, - - /** - * @param {Function} listener - * @return {number} - * @private - */ - _indexOfListener : function (listener) { - var n = this._bindings.length; - while (n--) { - if (this._bindings[n]._listener === listener) { - return n; - } - } - return -1; - }, - - /** - * Add a listener to the signal. - * @param {Function} listener Signal handler function. - * @param {Object} [scope] Context on which listener will be executed (object that should represent the `this` variable inside listener function). - * @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0) - * @return {SignalBinding} An Object representing the binding between the Signal and listener. - */ - add : function (listener, scope, priority) { - validateListener(listener, 'add'); - return this._registerListener(listener, false, scope, priority); - }, - - /** - * Add listener to the signal that should be removed after first execution (will be executed only once). - * @param {Function} listener Signal handler function. - * @param {Object} [scope] Context on which listener will be executed (object that should represent the `this` variable inside listener function). - * @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0) - * @return {SignalBinding} An Object representing the binding between the Signal and listener. - */ - addOnce : function (listener, scope, priority) { - validateListener(listener, 'addOnce'); - return this._registerListener(listener, true, scope, priority); - }, - - /** - * Remove a single listener from the dispatch queue. - * @param {Function} listener Handler function that should be removed. - * @return {Function} Listener handler function. - */ - remove : function (listener) { - validateListener(listener, 'remove'); - - var i = this._indexOfListener(listener); - if (i !== -1) { - this._bindings[i]._destroy(); //no reason to a SignalBinding exist if it isn't attached to a signal - this._bindings.splice(i, 1); - } - return listener; - }, - - /** - * Remove all listeners from the Signal. - */ - removeAll : function () { - var n = this._bindings.length; - while (n--) { - this._bindings[n]._destroy(); - } - this._bindings.length = 0; - }, - - /** - * @return {number} Number of listeners attached to the Signal. - */ - getNumListeners : function () { - return this._bindings.length; - }, - - /** - * Stop propagation of the event, blocking the dispatch to next listeners on the queue. - *

      IMPORTANT: should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.

      - * @see signals.Signal.prototype.disable - */ - halt : function () { - this._shouldPropagate = false; - }, - - /** - * Dispatch/Broadcast Signal to all listeners added to the queue. - * @param {...*} [params] Parameters that should be passed to each handler. - */ - dispatch : function (params) { - if (! this.active) { - return; - } - - var paramsArr = Array.prototype.slice.call(arguments), - bindings = this._bindings.slice(), //clone array in case add/remove items during dispatch - n = this._bindings.length; - - this._shouldPropagate = true; //in case `halt` was called before dispatch or during the previous dispatch. - - //execute all callbacks until end of the list or until a callback returns `false` or stops propagation - //reverse loop since listeners with higher priority will be added at the end of the list - do { n--; } while (bindings[n] && this._shouldPropagate && bindings[n].execute(paramsArr) !== false); - }, - - /** - * Remove all bindings from signal and destroy any reference to external objects (destroy Signal object). - *

      IMPORTANT: calling any method on the signal instance after calling dispose will throw errors.

      - */ - dispose : function () { - this.removeAll(); - delete this._bindings; - }, - - /** - * @return {string} String representation of the object. - */ - toString : function () { - return '[Signal active: '+ this.active +' numListeners: '+ this.getNumListeners() +']'; - } - - }; - - - - global.signals = signals; - -}(window || this)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/src/hasher.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/src/hasher.js deleted file mode 100644 index 43b30059..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/src/hasher.js +++ /dev/null @@ -1,416 +0,0 @@ -/*jshint white:false*/ -/*global signals:false, window:false*/ - -/** - * Hasher - * @namespace History Manager for rich-media applications. - * @name hasher - */ -var hasher = (function(window){ - - //-------------------------------------------------------------------------------------- - // Private Vars - //-------------------------------------------------------------------------------------- - - var - - // frequency that it will check hash value on IE 6-7 since it doesn't - // support the hashchange event - POOL_INTERVAL = 25, - - // local storage for brevity and better compression -------------------------------- - - document = window.document, - history = window.history, - Signal = signals.Signal, - - // local vars ---------------------------------------------------------------------- - - hasher, - _hash, - _checkInterval, - _isActive, - _frame, //iframe used for legacy IE (6-7) - _checkHistory, - _hashValRegexp = /#(.*)$/, - _baseUrlRegexp = /(\?.*)|(\#.*)/, - _hashRegexp = /^\#/, - - // sniffing/feature detection ------------------------------------------------------- - - //hack based on this: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html - _isIE = (!+"\v1"), - // hashchange is supported by FF3.6+, IE8+, Chrome 5+, Safari 5+ but - // feature detection fails on IE compatibility mode, so we need to - // check documentMode - _isHashChangeSupported = ('onhashchange' in window) && document.documentMode !== 7, - //check if is IE6-7 since hash change is only supported on IE8+ and - //changing hash value on IE6-7 doesn't generate history record. - _isLegacyIE = _isIE && !_isHashChangeSupported, - _isLocal = (location.protocol === 'file:'); - - - //-------------------------------------------------------------------------------------- - // Private Methods - //-------------------------------------------------------------------------------------- - - function _escapeRegExp(str){ - return String(str || '').replace(/\W/g, "\\$&"); - } - - function _trimHash(hash){ - if (!hash) return ''; - var regexp = new RegExp('^' + _escapeRegExp(hasher.prependHash) + '|' + _escapeRegExp(hasher.appendHash) + '$', 'g'); - return hash.replace(regexp, ''); - } - - function _getWindowHash(){ - //parsed full URL instead of getting window.location.hash because Firefox decode hash value (and all the other browsers don't) - //also because of IE8 bug with hash query in local file [issue #6] - var result = _hashValRegexp.exec( hasher.getURL() ); - var path = (result && result[1]) || ''; - try { - return hasher.raw? path : decodeURIComponent(path); - } catch (e) { - // in case user did not set `hasher.raw` and decodeURIComponent - // throws an error (see #57) - return path; - } - } - - function _getFrameHash(){ - return (_frame)? _frame.contentWindow.frameHash : null; - } - - function _createFrame(){ - _frame = document.createElement('iframe'); - _frame.src = 'about:blank'; - _frame.style.display = 'none'; - document.body.appendChild(_frame); - } - - function _updateFrame(){ - if(_frame && _hash !== _getFrameHash()){ - var frameDoc = _frame.contentWindow.document; - frameDoc.open(); - //update iframe content to force new history record. - //based on Really Simple History, SWFAddress and YUI.history. - frameDoc.write('' + document.title + ' '); - frameDoc.close(); - } - } - - function _registerChange(newHash, isReplace){ - if(_hash !== newHash){ - var oldHash = _hash; - _hash = newHash; //should come before event dispatch to make sure user can get proper value inside event handler - if(_isLegacyIE){ - if(!isReplace){ - _updateFrame(); - } else { - _frame.contentWindow.frameHash = newHash; - } - } - hasher.changed.dispatch(_trimHash(newHash), _trimHash(oldHash)); - } - } - - if (_isLegacyIE) { - /** - * @private - */ - _checkHistory = function(){ - var windowHash = _getWindowHash(), - frameHash = _getFrameHash(); - if(frameHash !== _hash && frameHash !== windowHash){ - //detect changes made pressing browser history buttons. - //Workaround since history.back() and history.forward() doesn't - //update hash value on IE6/7 but updates content of the iframe. - //needs to trim hash since value stored already have - //prependHash + appendHash for fast check. - hasher.setHash(_trimHash(frameHash)); - } else if (windowHash !== _hash){ - //detect if hash changed (manually or using setHash) - _registerChange(windowHash); - } - }; - } else { - /** - * @private - */ - _checkHistory = function(){ - var windowHash = _getWindowHash(); - if(windowHash !== _hash){ - _registerChange(windowHash); - } - }; - } - - function _addListener(elm, eType, fn){ - if(elm.addEventListener){ - elm.addEventListener(eType, fn, false); - } else if (elm.attachEvent){ - elm.attachEvent('on' + eType, fn); - } - } - - function _removeListener(elm, eType, fn){ - if(elm.removeEventListener){ - elm.removeEventListener(eType, fn, false); - } else if (elm.detachEvent){ - elm.detachEvent('on' + eType, fn); - } - } - - function _makePath(paths){ - paths = Array.prototype.slice.call(arguments); - - var path = paths.join(hasher.separator); - path = path? hasher.prependHash + path.replace(_hashRegexp, '') + hasher.appendHash : path; - return path; - } - - function _encodePath(path){ - //used encodeURI instead of encodeURIComponent to preserve '?', '/', - //'#'. Fixes Safari bug [issue #8] - path = encodeURI(path); - if(_isIE && _isLocal){ - //fix IE8 local file bug [issue #6] - path = path.replace(/\?/, '%3F'); - } - return path; - } - - //-------------------------------------------------------------------------------------- - // Public (API) - //-------------------------------------------------------------------------------------- - - hasher = /** @lends hasher */ { - - /** - * hasher Version Number - * @type string - * @constant - */ - VERSION : '::VERSION_NUMBER::', - - /** - * Boolean deciding if hasher encodes/decodes the hash or not. - *
        - *
      • default value: false;
      • - *
      - * @type boolean - */ - raw : false, - - /** - * String that should always be added to the end of Hash value. - *
        - *
      • default value: '';
      • - *
      • will be automatically removed from `hasher.getHash()`
      • - *
      • avoid conflicts with elements that contain ID equal to hash value;
      • - *
      - * @type string - */ - appendHash : '', - - /** - * String that should always be added to the beginning of Hash value. - *
        - *
      • default value: '/';
      • - *
      • will be automatically removed from `hasher.getHash()`
      • - *
      • avoid conflicts with elements that contain ID equal to hash value;
      • - *
      - * @type string - */ - prependHash : '/', - - /** - * String used to split hash paths; used by `hasher.getHashAsArray()` to split paths. - *
        - *
      • default value: '/';
      • - *
      - * @type string - */ - separator : '/', - - /** - * Signal dispatched when hash value changes. - * - pass current hash as 1st parameter to listeners and previous hash value as 2nd parameter. - * @type signals.Signal - */ - changed : new Signal(), - - /** - * Signal dispatched when hasher is stopped. - * - pass current hash as first parameter to listeners - * @type signals.Signal - */ - stopped : new Signal(), - - /** - * Signal dispatched when hasher is initialized. - * - pass current hash as first parameter to listeners. - * @type signals.Signal - */ - initialized : new Signal(), - - /** - * Start listening/dispatching changes in the hash/history. - *
        - *
      • hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons before calling this method.
      • - *
      - */ - init : function(){ - if(_isActive) return; - - _hash = _getWindowHash(); - - //thought about branching/overloading hasher.init() to avoid checking multiple times but - //don't think worth doing it since it probably won't be called multiple times. - if(_isHashChangeSupported){ - _addListener(window, 'hashchange', _checkHistory); - }else { - if(_isLegacyIE){ - if(! _frame){ - _createFrame(); - } - _updateFrame(); - } - _checkInterval = setInterval(_checkHistory, POOL_INTERVAL); - } - - _isActive = true; - hasher.initialized.dispatch(_trimHash(_hash)); - }, - - /** - * Stop listening/dispatching changes in the hash/history. - *
        - *
      • hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons after calling this method, unless you call hasher.init() again.
      • - *
      • hasher will still dispatch changes made programatically by calling hasher.setHash();
      • - *
      - */ - stop : function(){ - if(! _isActive) return; - - if(_isHashChangeSupported){ - _removeListener(window, 'hashchange', _checkHistory); - }else{ - clearInterval(_checkInterval); - _checkInterval = null; - } - - _isActive = false; - hasher.stopped.dispatch(_trimHash(_hash)); - }, - - /** - * @return {boolean} If hasher is listening to changes on the browser history and/or hash value. - */ - isActive : function(){ - return _isActive; - }, - - /** - * @return {string} Full URL. - */ - getURL : function(){ - return window.location.href; - }, - - /** - * @return {string} Retrieve URL without query string and hash. - */ - getBaseURL : function(){ - return hasher.getURL().replace(_baseUrlRegexp, ''); //removes everything after '?' and/or '#' - }, - - /** - * Set Hash value, generating a new history record. - * @param {...string} path Hash value without '#'. Hasher will join - * path segments using `hasher.separator` and prepend/append hash value - * with `hasher.appendHash` and `hasher.prependHash` - * @example hasher.setHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor' - */ - setHash : function(path){ - path = _makePath.apply(null, arguments); - if(path !== _hash){ - // we should store raw value - _registerChange(path); - if (path === _hash) { - // we check if path is still === _hash to avoid error in - // case of multiple consecutive redirects [issue #39] - if (! hasher.raw) { - path = _encodePath(path); - } - window.location.hash = '#' + path; - } - } - }, - - /** - * Set Hash value without keeping previous hash on the history record. - * Similar to calling `window.location.replace("#/hash")` but will also work on IE6-7. - * @param {...string} path Hash value without '#'. Hasher will join - * path segments using `hasher.separator` and prepend/append hash value - * with `hasher.appendHash` and `hasher.prependHash` - * @example hasher.replaceHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor' - */ - replaceHash : function(path){ - path = _makePath.apply(null, arguments); - if(path !== _hash){ - // we should store raw value - _registerChange(path, true); - if (path === _hash) { - // we check if path is still === _hash to avoid error in - // case of multiple consecutive redirects [issue #39] - if (! hasher.raw) { - path = _encodePath(path); - } - window.location.replace('#' + path); - } - } - }, - - /** - * @return {string} Hash value without '#', `hasher.appendHash` and `hasher.prependHash`. - */ - getHash : function(){ - //didn't used actual value of the `window.location.hash` to avoid breaking the application in case `window.location.hash` isn't available and also because value should always be synched. - return _trimHash(_hash); - }, - - /** - * @return {Array.} Hash value split into an Array. - */ - getHashAsArray : function(){ - return hasher.getHash().split(hasher.separator); - }, - - /** - * Removes all event listeners, stops hasher and destroy hasher object. - * - IMPORTANT: hasher won't work after calling this method, hasher Object will be deleted. - */ - dispose : function(){ - hasher.stop(); - hasher.initialized.dispose(); - hasher.stopped.dispose(); - hasher.changed.dispose(); - _frame = hasher = window.hasher = null; - }, - - /** - * @return {string} A string representation of the object. - */ - toString : function(){ - return '[hasher version="'+ hasher.VERSION +'" hash="'+ hasher.getHash() +'"]'; - } - - }; - - hasher.initialized.memorize = true; //see #33 - - return hasher; - -}(window)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/src/license.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/src/license.txt deleted file mode 100644 index af336ecf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/src/license.txt +++ /dev/null @@ -1,6 +0,0 @@ -/*!! - * Hasher - * @author Miller Medeiros - * @version ::VERSION_NUMBER:: (::BUILD_DATE::) - * Released under the MIT License - */ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/src/wrapper.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/src/wrapper.js deleted file mode 100644 index 9e6a122c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/src/wrapper.js +++ /dev/null @@ -1,19 +0,0 @@ -//::LICENSE::// -;(function () { -var factory = function(signals){ - -//::HASHER::// - - return hasher; -}; - -if (typeof define === 'function' && define.amd) { - define(['signals'], factory); -} else if (typeof exports === 'object') { - module.exports = factory(require('signals')); -} else { - /*jshint sub:true */ - window['hasher'] = factory(window['signals']); -} - -}()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/01.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/01.js deleted file mode 100644 index 3a0d62a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/01.js +++ /dev/null @@ -1,749 +0,0 @@ -/*jshint white:false, onevar:false, boss:true, noarg:false */ -/*global test:false, stop:false, ok:false, hasher:false, module:false, equals:false, expect:false, start:false, same:false, console:false */ - -/* - * - * Hasher JS Unit test - * - * - * ----------------------------------------------------------------------- - * - * WARNING: - * - poor code ahead! - * - don't use as reference! - * - * ----------------------------------------------------------------------- - * - * IMPORTANT: - * - unit test doesn't work properly on Chrome <= 6 because of browser bug: - * http://code.google.com/p/chromium/issues/detail?id=45419 - * - * ----------------------------------------------------------------------- - * - */ - -var DELAY_BACK_FORWARD = 80; -var TIMEOUT_BACK_FORWARD = 300; - -location.hash = ''; //resets location.hash - - -/* ==== init and stop ==== */ - -module('init and stop'); - -test("init hasher", function(){ - stop(2000); - expect(4); - - ok(! hasher.initialized.getNumListeners(), "No INIT Listener"); - - hasher.initialized.add(function(){ - ok(true, "INIT dispatched"); - - hasher.initialized.remove(arguments.callee); - ok(! hasher.initialized.getNumListeners(), "Removed INIT Listener"); - - start(); - }); - - ok(hasher.initialized.getNumListeners(), "Added INIT Listener"); - - hasher.init(); -}); - -var stopTest = function(){ - stop(2000); - expect(5); - - hasher.init(); // should be active to be able to stop - - ok(hasher.isActive(), "Is active"); - ok(! hasher.stopped.getNumListeners(), "No STOP Listener"); - - hasher.stopped.add(function(evt){ - - ok(true, "STOP dispatched"); - - hasher.stopped.remove(arguments.callee); - - ok(! hasher.stopped.getNumListeners(), "Removed STOP Listener"); - - start(); - }); - - ok(hasher.stopped.getNumListeners(), "Attached STOP Listener"); - hasher.stop(); -}; - -var stopFailTest = function(){ - stop(2000); - expect(5); - - hasher.stop(); //shouldn't be active - - ok(! hasher.isActive(), "Is not active"); - ok(! hasher.stopped.getNumListeners(), "No STOP Listener"); - - var handler = function(evt){ - ok(false, "STOP dispatched"); //shouldn't happen - hasher.stopped.removeAll(); - start(); - }; - hasher.stopped.add(handler); - - ok(hasher.stopped.getNumListeners(), "Attached STOP Listener"); - hasher.stop(); - hasher.stop(); - - var delayedStart = function(){ - ok(true, 'Didn\'t dispatched STOP event.'); - hasher.stopped.removeAll(); - ok(! hasher.stopped.getNumListeners(), "Removed STOP Listener"); - start(); - }; - - setTimeout(delayedStart, 100); -}; - -var initTest = function(){ - stop(2000); - expect(6); - - hasher.stop(); //shouldn't be active - - ok(! hasher.isActive(), "Is not active"); - ok(! hasher.initialized.getNumListeners(), "No INIT Listener"); - - hasher.initialized.add(function(evt){ - ok(hasher.isActive(), "Is active"); - ok(true, "INIT dispatched"); - - hasher.initialized.remove(arguments.callee); - - ok(! hasher.initialized.getNumListeners(), "Removed INIT Listener"); - - start(); - }); - - ok(hasher.initialized.getNumListeners(), "Attached INIT Listener"); - hasher.init(); -}; - -var initFailTest = function(){ - stop(2000); - expect(6); - - hasher.init(); //should be active - - ok(hasher.isActive(), "Is active"); - ok(! hasher.initialized.getNumListeners(), "No INIT Listener"); - - var handler = function(evt){ - ok(false, "INIT dispatched"); //shouldn't happen - hasher.initialized.removeAll(); - start(); - }; - hasher.initialized.add(handler); - - ok(hasher.initialized.getNumListeners(), "Attached INIT Listener"); - hasher.init(); - hasher.init(); - - var delayedStart = function(){ - ok(true, 'Didn\'t dispatched INIT event.'); - ok(hasher.isActive(), "Is active"); - hasher.initialized.removeAll(); - ok(! hasher.initialized.getNumListeners(), "Removed INIT Listener"); - start(); - }; - - setTimeout(delayedStart, 100); -}; - -test('stop #1', stopTest); -test('stop fail #1', stopFailTest); -test('stop fail #2', stopFailTest); -test('init #1', initTest); -test('init fail #1', initFailTest); -test('init fail #2', initFailTest); -test('stop #2', stopTest); -test('init #2', initTest); -test('stop #3', stopTest); - -/* == */ -/* ==== prep code ==== */ - -var testsHashs = [ - 'foo', - 'dolor', - 'sit-amet/ipsum/?dolor=ipsum&maecennas=ullamcor', - 'Spëçíãl Çhàrs FTW', - '/asd', - '/asd/qwerty/', - '/asd/qwerty/?foo=bar', - 'lorem-ipsum', - 'foo%bar%' // [issue #42] -]; - - -/* ==== set/get hash value ==== */ - -module('set/get hash value'); - - -function doChangeTest(i){ - - var testName = '#'+ (i + 1); - - var hash = testsHashs[i]; - var oldHash = (i > 0)? testsHashs[i - 1] : ''; - - test(testName, function(){ - stop(2000); - expect(9); - - hasher.init(); - - ok(! hasher.changed.getNumListeners(), "No CHANGED Listener"); - - hasher.changed.add(function($newHash, $oldHash){ - ok(true, "CHANGED dispatched"); - - ok(($oldHash !== hasher.getHash()), "Hash value really changed."); - - hasher.changed.remove(arguments.callee); - ok( ! hasher.changed.getNumListeners(), "Removed CHANGED Listener"); - - equals($oldHash, oldHash, "oldHash"); - equals(hasher.getHash(), $newHash, "newHash == hasher.getHash()"); - - start(); - }); - - ok(hasher.changed.getNumListeners() === 1, "Attached CHANGED Listener"); - - hasher.setHash(hash); - equals(hasher.getHash(), hash, "hasher.setHash() & hasher.getHash()"); - - var hashArray = hash.split('/'); - - same(hasher.getHashAsArray(), hashArray, "hasher.getHashAsArray()"); - - }); - -} - -for(var i=0, t=testsHashs.length; i - - - - - - - - Hasher unit test - - -

      Hasher development unit test

      -
      -

      -

      -
        - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/dist.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/dist.html deleted file mode 100644 index c293100a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/dist.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - Hasher unit test - - -

        Hasher development unit test

        -
        -

        -

        -
          - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/qunit/qunit.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/qunit/qunit.css deleted file mode 100644 index 07a61857..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/qunit/qunit.css +++ /dev/null @@ -1,228 +0,0 @@ -/** - * QUnit - A JavaScript Unit Testing Framework - * - * http://docs.jquery.com/QUnit - * - * Copyright (c) 2011 John Resig, Jörn Zaefferer - * Dual licensed under the MIT (MIT-LICENSE.txt) - * or GPL (GPL-LICENSE.txt) licenses. - * Pulled Live from Git Tue Aug 2 23:20:01 UTC 2011 - * Last Commit: 244c198ee73c1992ab005e0ac5f20fdcd50f14d9 - */ - -/** Font Family and Sizes */ - -#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult { - font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; -} - -#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } -#qunit-tests { font-size: smaller; } - - -/** Resets */ - -#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult { - margin: 0; - padding: 0; -} - - -/** Header */ - -#qunit-header { - padding: 0.5em 0 0.5em 1em; - - color: #8699a4; - background-color: #0d3349; - - font-size: 1.5em; - line-height: 1em; - font-weight: normal; - - border-radius: 15px 15px 0 0; - -moz-border-radius: 15px 15px 0 0; - -webkit-border-top-right-radius: 15px; - -webkit-border-top-left-radius: 15px; -} - -#qunit-header a { - text-decoration: none; - color: #c2ccd1; -} - -#qunit-header a:hover, -#qunit-header a:focus { - color: #fff; -} - -#qunit-banner { - height: 5px; -} - -#qunit-testrunner-toolbar { - padding: 0.5em 0 0.5em 2em; - color: #5E740B; - background-color: #eee; -} - -#qunit-userAgent { - padding: 0.5em 0 0.5em 2.5em; - background-color: #2b81af; - color: #fff; - text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; -} - - -/** Tests: Pass/Fail */ - -#qunit-tests { - list-style-position: inside; -} - -#qunit-tests li { - padding: 0.4em 0.5em 0.4em 2.5em; - border-bottom: 1px solid #fff; - list-style-position: inside; -} - -#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running { - display: none; -} - -#qunit-tests li strong { - cursor: pointer; -} - -#qunit-tests li a { - padding: 0.5em; - color: #c2ccd1; - text-decoration: none; -} -#qunit-tests li a:hover, -#qunit-tests li a:focus { - color: #000; -} - -#qunit-tests ol { - margin-top: 0.5em; - padding: 0.5em; - - background-color: #fff; - - border-radius: 15px; - -moz-border-radius: 15px; - -webkit-border-radius: 15px; - - box-shadow: inset 0px 2px 13px #999; - -moz-box-shadow: inset 0px 2px 13px #999; - -webkit-box-shadow: inset 0px 2px 13px #999; -} - -#qunit-tests table { - border-collapse: collapse; - margin-top: .2em; -} - -#qunit-tests th { - text-align: right; - vertical-align: top; - padding: 0 .5em 0 0; -} - -#qunit-tests td { - vertical-align: top; -} - -#qunit-tests pre { - margin: 0; - white-space: pre-wrap; - word-wrap: break-word; -} - -#qunit-tests del { - background-color: #e0f2be; - color: #374e0c; - text-decoration: none; -} - -#qunit-tests ins { - background-color: #ffcaca; - color: #500; - text-decoration: none; -} - -/*** Test Counts */ - -#qunit-tests b.counts { color: black; } -#qunit-tests b.passed { color: #5E740B; } -#qunit-tests b.failed { color: #710909; } - -#qunit-tests li li { - margin: 0.5em; - padding: 0.4em 0.5em 0.4em 0.5em; - background-color: #fff; - border-bottom: none; - list-style-position: inside; -} - -/*** Passing Styles */ - -#qunit-tests li li.pass { - color: #5E740B; - background-color: #fff; - border-left: 26px solid #C6E746; -} - -#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; } -#qunit-tests .pass .test-name { color: #366097; } - -#qunit-tests .pass .test-actual, -#qunit-tests .pass .test-expected { color: #999999; } - -#qunit-banner.qunit-pass { background-color: #C6E746; } - -/*** Failing Styles */ - -#qunit-tests li li.fail { - color: #710909; - background-color: #fff; - border-left: 26px solid #EE5757; -} - -#qunit-tests > li:last-child { - border-radius: 0 0 15px 15px; - -moz-border-radius: 0 0 15px 15px; - -webkit-border-bottom-right-radius: 15px; - -webkit-border-bottom-left-radius: 15px; -} - -#qunit-tests .fail { color: #000000; background-color: #EE5757; } -#qunit-tests .fail .test-name, -#qunit-tests .fail .module-name { color: #000000; } - -#qunit-tests .fail .test-actual { color: #EE5757; } -#qunit-tests .fail .test-expected { color: green; } - -#qunit-banner.qunit-fail { background-color: #EE5757; } - - -/** Result */ - -#qunit-testresult { - padding: 0.5em 0.5em 0.5em 2.5em; - - color: #2b81af; - background-color: #D2E0E6; - - border-bottom: 1px solid white; -} - -/** Fixture */ - -#qunit-fixture { - position: absolute; - top: -10000px; - left: -10000px; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/qunit/qunit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/qunit/qunit.js deleted file mode 100644 index f556456b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dev/tests/unit/qunit/qunit.js +++ /dev/null @@ -1,1454 +0,0 @@ -/** - * QUnit - A JavaScript Unit Testing Framework - * - * http://docs.jquery.com/QUnit - * - * Copyright (c) 2011 John Resig, Jörn Zaefferer - * Dual licensed under the MIT (MIT-LICENSE.txt) - * or GPL (GPL-LICENSE.txt) licenses. - * Pulled Live from Git Tue Aug 2 23:20:01 UTC 2011 - * Last Commit: 244c198ee73c1992ab005e0ac5f20fdcd50f14d9 - */ - -(function(window) { - -var defined = { - setTimeout: typeof window.setTimeout !== "undefined", - sessionStorage: (function() { - try { - return !!sessionStorage.getItem; - } catch(e){ - return false; - } - })() -}; - -var testId = 0; - -var Test = function(name, testName, expected, testEnvironmentArg, async, callback) { - this.name = name; - this.testName = testName; - this.expected = expected; - this.testEnvironmentArg = testEnvironmentArg; - this.async = async; - this.callback = callback; - this.assertions = []; -}; -Test.prototype = { - init: function() { - var tests = id("qunit-tests"); - if (tests) { - var b = document.createElement("strong"); - b.innerHTML = "Running " + this.name; - var li = document.createElement("li"); - li.appendChild( b ); - li.className = "running"; - li.id = this.id = "test-output" + testId++; - tests.appendChild( li ); - } - }, - setup: function() { - if (this.module != config.previousModule) { - if ( config.previousModule ) { - QUnit.moduleDone( { - name: config.previousModule, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all - } ); - } - config.previousModule = this.module; - config.moduleStats = { all: 0, bad: 0 }; - QUnit.moduleStart( { - name: this.module - } ); - } - - config.current = this; - this.testEnvironment = extend({ - setup: function() {}, - teardown: function() {} - }, this.moduleTestEnvironment); - if (this.testEnvironmentArg) { - extend(this.testEnvironment, this.testEnvironmentArg); - } - - QUnit.testStart( { - name: this.testName - } ); - - // allow utility functions to access the current test environment - // TODO why?? - QUnit.current_testEnvironment = this.testEnvironment; - - try { - if ( !config.pollution ) { - saveGlobal(); - } - - this.testEnvironment.setup.call(this.testEnvironment); - } catch(e) { - QUnit.ok( false, "Setup failed on " + this.testName + ": " + e.message ); - } - }, - run: function() { - if ( this.async ) { - QUnit.stop(); - } - - if ( config.notrycatch ) { - this.callback.call(this.testEnvironment); - return; - } - try { - this.callback.call(this.testEnvironment); - } catch(e) { - fail("Test " + this.testName + " died, exception and test follows", e, this.callback); - QUnit.ok( false, "Died on test #" + (this.assertions.length + 1) + ": " + e.message + " - " + QUnit.jsDump.parse(e) ); - // else next test will carry the responsibility - saveGlobal(); - - // Restart the tests if they're blocking - if ( config.blocking ) { - start(); - } - } - }, - teardown: function() { - try { - this.testEnvironment.teardown.call(this.testEnvironment); - checkPollution(); - } catch(e) { - QUnit.ok( false, "Teardown failed on " + this.testName + ": " + e.message ); - } - }, - finish: function() { - if ( this.expected && this.expected != this.assertions.length ) { - QUnit.ok( false, "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run" ); - } - - var good = 0, bad = 0, - tests = id("qunit-tests"); - - config.stats.all += this.assertions.length; - config.moduleStats.all += this.assertions.length; - - if ( tests ) { - var ol = document.createElement("ol"); - - for ( var i = 0; i < this.assertions.length; i++ ) { - var assertion = this.assertions[i]; - - var li = document.createElement("li"); - li.className = assertion.result ? "pass" : "fail"; - li.innerHTML = assertion.message || (assertion.result ? "okay" : "failed"); - ol.appendChild( li ); - - if ( assertion.result ) { - good++; - } else { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - - // store result when possible - if ( QUnit.config.reorder && defined.sessionStorage ) { - if (bad) { - sessionStorage.setItem("qunit-" + this.module + "-" + this.testName, bad); - } else { - sessionStorage.removeItem("qunit-" + this.module + "-" + this.testName); - } - } - - if (bad == 0) { - ol.style.display = "none"; - } - - var b = document.createElement("strong"); - b.innerHTML = this.name + " (" + bad + ", " + good + ", " + this.assertions.length + ")"; - - var a = document.createElement("a"); - a.innerHTML = "Rerun"; - a.href = QUnit.url({ filter: getText([b]).replace(/\([^)]+\)$/, "").replace(/(^\s*|\s*$)/g, "") }); - - addEvent(b, "click", function() { - var next = b.nextSibling.nextSibling, - display = next.style.display; - next.style.display = display === "none" ? "block" : "none"; - }); - - addEvent(b, "dblclick", function(e) { - var target = e && e.target ? e.target : window.event.srcElement; - if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) { - target = target.parentNode; - } - if ( window.location && target.nodeName.toLowerCase() === "strong" ) { - window.location = QUnit.url({ filter: getText([target]).replace(/\([^)]+\)$/, "").replace(/(^\s*|\s*$)/g, "") }); - } - }); - - var li = id(this.id); - li.className = bad ? "fail" : "pass"; - li.removeChild( li.firstChild ); - li.appendChild( b ); - li.appendChild( a ); - li.appendChild( ol ); - - } else { - for ( var i = 0; i < this.assertions.length; i++ ) { - if ( !this.assertions[i].result ) { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - } - - try { - QUnit.reset(); - } catch(e) { - fail("reset() failed, following Test " + this.testName + ", exception and reset fn follows", e, QUnit.reset); - } - - QUnit.testDone( { - name: this.testName, - failed: bad, - passed: this.assertions.length - bad, - total: this.assertions.length - } ); - }, - - queue: function() { - var test = this; - synchronize(function() { - test.init(); - }); - function run() { - // each of these can by async - synchronize(function() { - test.setup(); - }); - synchronize(function() { - test.run(); - }); - synchronize(function() { - test.teardown(); - }); - synchronize(function() { - test.finish(); - }); - } - // defer when previous test run passed, if storage is available - var bad = QUnit.config.reorder && defined.sessionStorage && +sessionStorage.getItem("qunit-" + this.module + "-" + this.testName); - if (bad) { - run(); - } else { - synchronize(run); - }; - } - -}; - -var QUnit = { - - // call on start of module test to prepend name to all tests - module: function(name, testEnvironment) { - config.currentModule = name; - config.currentModuleTestEnviroment = testEnvironment; - }, - - asyncTest: function(testName, expected, callback) { - if ( arguments.length === 2 ) { - callback = expected; - expected = 0; - } - - QUnit.test(testName, expected, callback, true); - }, - - test: function(testName, expected, callback, async) { - var name = '' + testName + '', testEnvironmentArg; - - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - // is 2nd argument a testEnvironment? - if ( expected && typeof expected === 'object') { - testEnvironmentArg = expected; - expected = null; - } - - if ( config.currentModule ) { - name = '' + config.currentModule + ": " + name; - } - - if ( !validTest(config.currentModule + ": " + testName) ) { - return; - } - - var test = new Test(name, testName, expected, testEnvironmentArg, async, callback); - test.module = config.currentModule; - test.moduleTestEnvironment = config.currentModuleTestEnviroment; - test.queue(); - }, - - /** - * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through. - */ - expect: function(asserts) { - config.current.expected = asserts; - }, - - /** - * Asserts true. - * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); - */ - ok: function(a, msg) { - a = !!a; - var details = { - result: a, - message: msg - }; - msg = escapeHtml(msg); - QUnit.log(details); - config.current.assertions.push({ - result: a, - message: msg - }); - }, - - /** - * Checks that the first two arguments are equal, with an optional message. - * Prints out both actual and expected values. - * - * Prefered to ok( actual == expected, message ) - * - * @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." ); - * - * @param Object actual - * @param Object expected - * @param String message (optional) - */ - equal: function(actual, expected, message) { - QUnit.push(expected == actual, actual, expected, message); - }, - - notEqual: function(actual, expected, message) { - QUnit.push(expected != actual, actual, expected, message); - }, - - deepEqual: function(actual, expected, message) { - QUnit.push(QUnit.equiv(actual, expected), actual, expected, message); - }, - - notDeepEqual: function(actual, expected, message) { - QUnit.push(!QUnit.equiv(actual, expected), actual, expected, message); - }, - - strictEqual: function(actual, expected, message) { - QUnit.push(expected === actual, actual, expected, message); - }, - - notStrictEqual: function(actual, expected, message) { - QUnit.push(expected !== actual, actual, expected, message); - }, - - raises: function(block, expected, message) { - var actual, ok = false; - - if (typeof expected === 'string') { - message = expected; - expected = null; - } - - try { - block(); - } catch (e) { - actual = e; - } - - if (actual) { - // we don't want to validate thrown error - if (!expected) { - ok = true; - // expected is a regexp - } else if (QUnit.objectType(expected) === "regexp") { - ok = expected.test(actual); - // expected is a constructor - } else if (actual instanceof expected) { - ok = true; - // expected is a validation function which returns true is validation passed - } else if (expected.call({}, actual) === true) { - ok = true; - } - } - - QUnit.ok(ok, message); - }, - - start: function() { - config.semaphore--; - if (config.semaphore > 0) { - // don't start until equal number of stop-calls - return; - } - if (config.semaphore < 0) { - // ignore if start is called more often then stop - config.semaphore = 0; - } - // A slight delay, to avoid any current callbacks - if ( defined.setTimeout ) { - window.setTimeout(function() { - if ( config.timeout ) { - clearTimeout(config.timeout); - } - - config.blocking = false; - process(); - }, 13); - } else { - config.blocking = false; - process(); - } - }, - - stop: function(timeout) { - config.semaphore++; - config.blocking = true; - - if ( timeout && defined.setTimeout ) { - clearTimeout(config.timeout); - config.timeout = window.setTimeout(function() { - QUnit.ok( false, "Test timed out" ); - QUnit.start(); - }, timeout); - } - } -}; - -// Backwards compatibility, deprecated -QUnit.equals = QUnit.equal; -QUnit.same = QUnit.deepEqual; - -// Maintain internal state -var config = { - // The queue of tests to run - queue: [], - - // block until document ready - blocking: true, - - // by default, run previously failed tests first - // very useful in combination with "Hide passed tests" checked - reorder: true, - - noglobals: false, - notrycatch: false -}; - -// Load paramaters -(function() { - var location = window.location || { search: "", protocol: "file:" }, - params = location.search.slice( 1 ).split( "&" ), - length = params.length, - urlParams = {}, - current; - - if ( params[ 0 ] ) { - for ( var i = 0; i < length; i++ ) { - current = params[ i ].split( "=" ); - current[ 0 ] = decodeURIComponent( current[ 0 ] ); - // allow just a key to turn on a flag, e.g., test.html?noglobals - current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true; - urlParams[ current[ 0 ] ] = current[ 1 ]; - if ( current[ 0 ] in config ) { - config[ current[ 0 ] ] = current[ 1 ]; - } - } - } - - QUnit.urlParams = urlParams; - config.filter = urlParams.filter; - - // Figure out if we're running the tests from a server or not - QUnit.isLocal = !!(location.protocol === 'file:'); -})(); - -// Expose the API as global variables, unless an 'exports' -// object exists, in that case we assume we're in CommonJS -if ( typeof exports === "undefined" || typeof require === "undefined" ) { - extend(window, QUnit); - window.QUnit = QUnit; -} else { - extend(exports, QUnit); - exports.QUnit = QUnit; -} - -// define these after exposing globals to keep them in these QUnit namespace only -extend(QUnit, { - config: config, - - // Initialize the configuration options - init: function() { - extend(config, { - stats: { all: 0, bad: 0 }, - moduleStats: { all: 0, bad: 0 }, - started: +new Date, - updateRate: 1000, - blocking: false, - autostart: true, - autorun: false, - filter: "", - queue: [], - semaphore: 0 - }); - - var tests = id( "qunit-tests" ), - banner = id( "qunit-banner" ), - result = id( "qunit-testresult" ); - - if ( tests ) { - tests.innerHTML = ""; - } - - if ( banner ) { - banner.className = ""; - } - - if ( result ) { - result.parentNode.removeChild( result ); - } - - if ( tests ) { - result = document.createElement( "p" ); - result.id = "qunit-testresult"; - result.className = "result"; - tests.parentNode.insertBefore( result, tests ); - result.innerHTML = 'Running...
           '; - } - }, - - /** - * Resets the test setup. Useful for tests that modify the DOM. - * - * If jQuery is available, uses jQuery's html(), otherwise just innerHTML. - */ - reset: function() { - if ( window.jQuery ) { - jQuery( "#qunit-fixture" ).html( config.fixture ); - } else { - var main = id( 'qunit-fixture' ); - if ( main ) { - main.innerHTML = config.fixture; - } - } - }, - - /** - * Trigger an event on an element. - * - * @example triggerEvent( document.body, "click" ); - * - * @param DOMElement elem - * @param String type - */ - triggerEvent: function( elem, type, event ) { - if ( document.createEvent ) { - event = document.createEvent("MouseEvents"); - event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, - 0, 0, 0, 0, 0, false, false, false, false, 0, null); - elem.dispatchEvent( event ); - - } else if ( elem.fireEvent ) { - elem.fireEvent("on"+type); - } - }, - - // Safe object type checking - is: function( type, obj ) { - return QUnit.objectType( obj ) == type; - }, - - objectType: function( obj ) { - if (typeof obj === "undefined") { - return "undefined"; - - // consider: typeof null === object - } - if (obj === null) { - return "null"; - } - - var type = Object.prototype.toString.call( obj ) - .match(/^\[object\s(.*)\]$/)[1] || ''; - - switch (type) { - case 'Number': - if (isNaN(obj)) { - return "nan"; - } else { - return "number"; - } - case 'String': - case 'Boolean': - case 'Array': - case 'Date': - case 'RegExp': - case 'Function': - return type.toLowerCase(); - } - if (typeof obj === "object") { - return "object"; - } - return undefined; - }, - - push: function(result, actual, expected, message) { - var details = { - result: result, - message: message, - actual: actual, - expected: expected - }; - - message = escapeHtml(message) || (result ? "okay" : "failed"); - message = '' + message + ""; - expected = escapeHtml(QUnit.jsDump.parse(expected)); - actual = escapeHtml(QUnit.jsDump.parse(actual)); - var output = message + ''; - if (actual != expected) { - output += ''; - output += ''; - } - if (!result) { - var source = sourceFromStacktrace(); - if (source) { - details.source = source; - output += ''; - } - } - output += "
          Expected:
          ' + expected + '
          Result:
          ' + actual + '
          Diff:
          ' + QUnit.diff(expected, actual) +'
          Source:
          ' + escapeHtml(source) + '
          "; - - QUnit.log(details); - - config.current.assertions.push({ - result: !!result, - message: output - }); - }, - - url: function( params ) { - params = extend( extend( {}, QUnit.urlParams ), params ); - var querystring = "?", - key; - for ( key in params ) { - querystring += encodeURIComponent( key ) + "=" + - encodeURIComponent( params[ key ] ) + "&"; - } - return window.location.pathname + querystring.slice( 0, -1 ); - }, - - extend: extend, - id: id, - addEvent: addEvent, - - // Logging callbacks; all receive a single argument with the listed properties - // run test/logs.html for any related changes - begin: function() {}, - // done: { failed, passed, total, runtime } - done: function() {}, - // log: { result, actual, expected, message } - log: function() {}, - // testStart: { name } - testStart: function() {}, - // testDone: { name, failed, passed, total } - testDone: function() {}, - // moduleStart: { name } - moduleStart: function() {}, - // moduleDone: { name, failed, passed, total } - moduleDone: function() {} -}); - -if ( typeof document === "undefined" || document.readyState === "complete" ) { - config.autorun = true; -} - -addEvent(window, "load", function() { - QUnit.begin({}); - - // Initialize the config, saving the execution queue - var oldconfig = extend({}, config); - QUnit.init(); - extend(config, oldconfig); - - config.blocking = false; - - var userAgent = id("qunit-userAgent"); - if ( userAgent ) { - userAgent.innerHTML = navigator.userAgent; - } - var banner = id("qunit-header"); - if ( banner ) { - banner.innerHTML = ' ' + banner.innerHTML + ' ' + - '' + - ''; - addEvent( banner, "change", function( event ) { - var params = {}; - params[ event.target.name ] = event.target.checked ? true : undefined; - window.location = QUnit.url( params ); - }); - } - - var toolbar = id("qunit-testrunner-toolbar"); - if ( toolbar ) { - var filter = document.createElement("input"); - filter.type = "checkbox"; - filter.id = "qunit-filter-pass"; - addEvent( filter, "click", function() { - var ol = document.getElementById("qunit-tests"); - if ( filter.checked ) { - ol.className = ol.className + " hidepass"; - } else { - var tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " "; - ol.className = tmp.replace(/ hidepass /, " "); - } - if ( defined.sessionStorage ) { - if (filter.checked) { - sessionStorage.setItem("qunit-filter-passed-tests", "true"); - } else { - sessionStorage.removeItem("qunit-filter-passed-tests"); - } - } - }); - if ( defined.sessionStorage && sessionStorage.getItem("qunit-filter-passed-tests") ) { - filter.checked = true; - var ol = document.getElementById("qunit-tests"); - ol.className = ol.className + " hidepass"; - } - toolbar.appendChild( filter ); - - var label = document.createElement("label"); - label.setAttribute("for", "qunit-filter-pass"); - label.innerHTML = "Hide passed tests"; - toolbar.appendChild( label ); - } - - var main = id('qunit-fixture'); - if ( main ) { - config.fixture = main.innerHTML; - } - - if (config.autostart) { - QUnit.start(); - } -}); - -function done() { - config.autorun = true; - - // Log the last module results - if ( config.currentModule ) { - QUnit.moduleDone( { - name: config.currentModule, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all - } ); - } - - var banner = id("qunit-banner"), - tests = id("qunit-tests"), - runtime = +new Date - config.started, - passed = config.stats.all - config.stats.bad, - html = [ - 'Tests completed in ', - runtime, - ' milliseconds.
          ', - '', - passed, - ' tests of ', - config.stats.all, - ' passed, ', - config.stats.bad, - ' failed.' - ].join(''); - - if ( banner ) { - banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass"); - } - - if ( tests ) { - id( "qunit-testresult" ).innerHTML = html; - } - - if ( typeof document !== "undefined" && document.title ) { - // show ✖ for bad, ✔ for good suite result in title - // use escape sequences in case file gets loaded with non-utf-8-charset - document.title = (config.stats.bad ? "\u2716" : "\u2714") + " " + document.title; - } - - QUnit.done( { - failed: config.stats.bad, - passed: passed, - total: config.stats.all, - runtime: runtime - } ); -} - -function validTest( name ) { - var filter = config.filter, - run = false; - - if ( !filter ) { - return true; - } - - var not = filter.charAt( 0 ) === "!"; - if ( not ) { - filter = filter.slice( 1 ); - } - - if ( name.indexOf( filter ) !== -1 ) { - return !not; - } - - if ( not ) { - run = true; - } - - return run; -} - -// so far supports only Firefox, Chrome and Opera (buggy) -// could be extended in the future to use something like https://github.com/csnover/TraceKit -function sourceFromStacktrace() { - try { - throw new Error(); - } catch ( e ) { - if (e.stacktrace) { - // Opera - return e.stacktrace.split("\n")[6]; - } else if (e.stack) { - // Firefox, Chrome - return e.stack.split("\n")[4]; - } - } -} - -function escapeHtml(s) { - if (!s) { - return ""; - } - s = s + ""; - return s.replace(/[\&"<>\\]/g, function(s) { - switch(s) { - case "&": return "&"; - case "\\": return "\\\\"; - case '"': return '\"'; - case "<": return "<"; - case ">": return ">"; - default: return s; - } - }); -} - -function synchronize( callback ) { - config.queue.push( callback ); - - if ( config.autorun && !config.blocking ) { - process(); - } -} - -function process() { - var start = (new Date()).getTime(); - - while ( config.queue.length && !config.blocking ) { - if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) { - config.queue.shift()(); - } else { - window.setTimeout( process, 13 ); - break; - } - } - if (!config.blocking && !config.queue.length) { - done(); - } -} - -function saveGlobal() { - config.pollution = []; - - if ( config.noglobals ) { - for ( var key in window ) { - config.pollution.push( key ); - } - } -} - -function checkPollution( name ) { - var old = config.pollution; - saveGlobal(); - - var newGlobals = diff( config.pollution, old ); - if ( newGlobals.length > 0 ) { - ok( false, "Introduced global variable(s): " + newGlobals.join(", ") ); - } - - var deletedGlobals = diff( old, config.pollution ); - if ( deletedGlobals.length > 0 ) { - ok( false, "Deleted global variable(s): " + deletedGlobals.join(", ") ); - } -} - -// returns a new Array with the elements that are in a but not in b -function diff( a, b ) { - var result = a.slice(); - for ( var i = 0; i < result.length; i++ ) { - for ( var j = 0; j < b.length; j++ ) { - if ( result[i] === b[j] ) { - result.splice(i, 1); - i--; - break; - } - } - } - return result; -} - -function fail(message, exception, callback) { - if ( typeof console !== "undefined" && console.error && console.warn ) { - console.error(message); - console.error(exception); - console.warn(callback.toString()); - - } else if ( window.opera && opera.postError ) { - opera.postError(message, exception, callback.toString); - } -} - -function extend(a, b) { - for ( var prop in b ) { - if ( b[prop] === undefined ) { - delete a[prop]; - } else { - a[prop] = b[prop]; - } - } - - return a; -} - -function addEvent(elem, type, fn) { - if ( elem.addEventListener ) { - elem.addEventListener( type, fn, false ); - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, fn ); - } else { - fn(); - } -} - -function id(name) { - return !!(typeof document !== "undefined" && document && document.getElementById) && - document.getElementById( name ); -} - -// Test for equality any JavaScript type. -// Discussions and reference: http://philrathe.com/articles/equiv -// Test suites: http://philrathe.com/tests/equiv -// Author: Philippe Rathé -QUnit.equiv = function () { - - var innerEquiv; // the real equiv function - var callers = []; // stack to decide between skip/abort functions - var parents = []; // stack to avoiding loops from circular referencing - - // Call the o related callback with the given arguments. - function bindCallbacks(o, callbacks, args) { - var prop = QUnit.objectType(o); - if (prop) { - if (QUnit.objectType(callbacks[prop]) === "function") { - return callbacks[prop].apply(callbacks, args); - } else { - return callbacks[prop]; // or undefined - } - } - } - - var callbacks = function () { - - // for string, boolean, number and null - function useStrictEquality(b, a) { - if (b instanceof a.constructor || a instanceof b.constructor) { - // to catch short annotaion VS 'new' annotation of a declaration - // e.g. var i = 1; - // var j = new Number(1); - return a == b; - } else { - return a === b; - } - } - - return { - "string": useStrictEquality, - "boolean": useStrictEquality, - "number": useStrictEquality, - "null": useStrictEquality, - "undefined": useStrictEquality, - - "nan": function (b) { - return isNaN(b); - }, - - "date": function (b, a) { - return QUnit.objectType(b) === "date" && a.valueOf() === b.valueOf(); - }, - - "regexp": function (b, a) { - return QUnit.objectType(b) === "regexp" && - a.source === b.source && // the regex itself - a.global === b.global && // and its modifers (gmi) ... - a.ignoreCase === b.ignoreCase && - a.multiline === b.multiline; - }, - - // - skip when the property is a method of an instance (OOP) - // - abort otherwise, - // initial === would have catch identical references anyway - "function": function () { - var caller = callers[callers.length - 1]; - return caller !== Object && - typeof caller !== "undefined"; - }, - - "array": function (b, a) { - var i, j, loop; - var len; - - // b could be an object literal here - if ( ! (QUnit.objectType(b) === "array")) { - return false; - } - - len = a.length; - if (len !== b.length) { // safe and faster - return false; - } - - //track reference to avoid circular references - parents.push(a); - for (i = 0; i < len; i++) { - loop = false; - for(j=0;j= 0) { - type = "array"; - } else { - type = typeof obj; - } - return type; - }, - separator:function() { - return this.multiline ? this.HTML ? '
          ' : '\n' : this.HTML ? ' ' : ' '; - }, - indent:function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing - if ( !this.multiline ) - return ''; - var chr = this.indentChar; - if ( this.HTML ) - chr = chr.replace(/\t/g,' ').replace(/ /g,' '); - return Array( this._depth_ + (extra||0) ).join(chr); - }, - up:function( a ) { - this._depth_ += a || 1; - }, - down:function( a ) { - this._depth_ -= a || 1; - }, - setParser:function( name, parser ) { - this.parsers[name] = parser; - }, - // The next 3 are exposed so you can use them - quote:quote, - literal:literal, - join:join, - // - _depth_: 1, - // This is the list of parsers, to modify them, use jsDump.setParser - parsers:{ - window: '[Window]', - document: '[Document]', - error:'[ERROR]', //when no parser is found, shouldn't happen - unknown: '[Unknown]', - 'null':'null', - 'undefined':'undefined', - 'function':function( fn ) { - var ret = 'function', - name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE - if ( name ) - ret += ' ' + name; - ret += '('; - - ret = [ ret, QUnit.jsDump.parse( fn, 'functionArgs' ), '){'].join(''); - return join( ret, QUnit.jsDump.parse(fn,'functionCode'), '}' ); - }, - array: array, - nodelist: array, - arguments: array, - object:function( map ) { - var ret = [ ]; - QUnit.jsDump.up(); - for ( var key in map ) - ret.push( QUnit.jsDump.parse(key,'key') + ': ' + QUnit.jsDump.parse(map[key]) ); - QUnit.jsDump.down(); - return join( '{', ret, '}' ); - }, - node:function( node ) { - var open = QUnit.jsDump.HTML ? '<' : '<', - close = QUnit.jsDump.HTML ? '>' : '>'; - - var tag = node.nodeName.toLowerCase(), - ret = open + tag; - - for ( var a in QUnit.jsDump.DOMAttrs ) { - var val = node[QUnit.jsDump.DOMAttrs[a]]; - if ( val ) - ret += ' ' + a + '=' + QUnit.jsDump.parse( val, 'attribute' ); - } - return ret + close + open + '/' + tag + close; - }, - functionArgs:function( fn ) {//function calls it internally, it's the arguments part of the function - var l = fn.length; - if ( !l ) return ''; - - var args = Array(l); - while ( l-- ) - args[l] = String.fromCharCode(97+l);//97 is 'a' - return ' ' + args.join(', ') + ' '; - }, - key:quote, //object calls it internally, the key part of an item in a map - functionCode:'[code]', //function calls it internally, it's the content of the function - attribute:quote, //node calls it internally, it's an html attribute value - string:quote, - date:quote, - regexp:literal, //regex - number:literal, - 'boolean':literal - }, - DOMAttrs:{//attributes to dump from nodes, name=>realName - id:'id', - name:'name', - 'class':'className' - }, - HTML:false,//if true, entities are escaped ( <, >, \t, space and \n ) - indentChar:' ',//indentation unit - multiline:true //if true, items in a collection, are separated by a \n, else just a space. - }; - - return jsDump; -})(); - -// from Sizzle.js -function getText( elems ) { - var ret = "", elem; - - for ( var i = 0; elems[i]; i++ ) { - elem = elems[i]; - - // Get the text from text nodes and CDATA nodes - if ( elem.nodeType === 3 || elem.nodeType === 4 ) { - ret += elem.nodeValue; - - // Traverse everything else, except comment nodes - } else if ( elem.nodeType !== 8 ) { - ret += getText( elem.childNodes ); - } - } - - return ret; -}; - -/* - * Javascript Diff Algorithm - * By John Resig (http://ejohn.org/) - * Modified by Chu Alan "sprite" - * - * Released under the MIT license. - * - * More Info: - * http://ejohn.org/projects/javascript-diff-algorithm/ - * - * Usage: QUnit.diff(expected, actual) - * - * QUnit.diff("the quick brown fox jumped over", "the quick fox jumps over") == "the quick brown fox jumped jumps over" - */ -QUnit.diff = (function() { - function diff(o, n){ - var ns = new Object(); - var os = new Object(); - - for (var i = 0; i < n.length; i++) { - if (ns[n[i]] == null) - ns[n[i]] = { - rows: new Array(), - o: null - }; - ns[n[i]].rows.push(i); - } - - for (var i = 0; i < o.length; i++) { - if (os[o[i]] == null) - os[o[i]] = { - rows: new Array(), - n: null - }; - os[o[i]].rows.push(i); - } - - for (var i in ns) { - if (ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1) { - n[ns[i].rows[0]] = { - text: n[ns[i].rows[0]], - row: os[i].rows[0] - }; - o[os[i].rows[0]] = { - text: o[os[i].rows[0]], - row: ns[i].rows[0] - }; - } - } - - for (var i = 0; i < n.length - 1; i++) { - if (n[i].text != null && n[i + 1].text == null && n[i].row + 1 < o.length && o[n[i].row + 1].text == null && - n[i + 1] == o[n[i].row + 1]) { - n[i + 1] = { - text: n[i + 1], - row: n[i].row + 1 - }; - o[n[i].row + 1] = { - text: o[n[i].row + 1], - row: i + 1 - }; - } - } - - for (var i = n.length - 1; i > 0; i--) { - if (n[i].text != null && n[i - 1].text == null && n[i].row > 0 && o[n[i].row - 1].text == null && - n[i - 1] == o[n[i].row - 1]) { - n[i - 1] = { - text: n[i - 1], - row: n[i].row - 1 - }; - o[n[i].row - 1] = { - text: o[n[i].row - 1], - row: i - 1 - }; - } - } - - return { - o: o, - n: n - }; - } - - return function(o, n){ - o = o.replace(/\s+$/, ''); - n = n.replace(/\s+$/, ''); - var out = diff(o == "" ? [] : o.split(/\s+/), n == "" ? [] : n.split(/\s+/)); - - var str = ""; - - var oSpace = o.match(/\s+/g); - if (oSpace == null) { - oSpace = [" "]; - } - else { - oSpace.push(" "); - } - var nSpace = n.match(/\s+/g); - if (nSpace == null) { - nSpace = [" "]; - } - else { - nSpace.push(" "); - } - - if (out.n.length == 0) { - for (var i = 0; i < out.o.length; i++) { - str += '' + out.o[i] + oSpace[i] + ""; - } - } - else { - if (out.n[0].text == null) { - for (n = 0; n < out.o.length && out.o[n].text == null; n++) { - str += '' + out.o[n] + oSpace[n] + ""; - } - } - - for (var i = 0; i < out.n.length; i++) { - if (out.n[i].text == null) { - str += '' + out.n[i] + nSpace[i] + ""; - } - else { - var pre = ""; - - for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++) { - pre += '' + out.o[n] + oSpace[n] + ""; - } - str += " " + out.n[i].text + nSpace[i] + pre; - } - } - } - - return str; - }; -})(); - -})(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/files.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/files.html deleted file mode 100644 index 31d58c86..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/files.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - JsDoc Reference - File Index - - - - - - - - - -
          -
          - -
          - -

          Index

          - -

          Classes

          - - -
          - -
          -

          File Index

          - - - - - -
          -
          -
          - - Documentation generated by JsDoc Toolkit 2.4.0 on Mon Nov 11 2013 15:19:04 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
          - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/index.html deleted file mode 100644 index 6847b0bb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/index.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - JsDoc Reference - Index - - - - - - - - -
          -
          - -
          - -

          Index

          - -

          Classes

          - - -
          - -
          -

          Class Index

          - - -
          - -
          - Built-In Namespace -
          -

          _global_

          - -
          - -
          - -
          - Namespace -
          -

          hasher

          - History Manager for rich-media applications. -
          - -
          - -
          -
          - - Documentation generated by JsDoc Toolkit 2.4.0 on Mon Nov 11 2013 15:19:04 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
          - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/static/default.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/static/default.css deleted file mode 100644 index 9696a207..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/static/default.css +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Hasher.js documentation - * based on urso jsdoc-simple template: http://github.com/urso/jsdoc-simple - * adapted by Miller Medeiros (http://millermedeiros.com/) - */ - -/* default.css */ -html{ - overflow-y:scroll; -} - -body -{ - font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif; - min-width: 1000px; - max-width: 1400px; - margin:0 auto; -} - -.header -{ - clear: both; - background-color: #ccc; -} - -a -{ - text-decoration: none; - color: #d12250; - outline:none; -} - -a:active, a:focus, a:hover{ - color: #333; -} - -h1 -{ - font-size: 1.5em; - font-weight: bold; - padding: 0; - margin: 1em 0 0 .3em; -} - -hr -{ - border: none 0; - border-top: 1px solid #7F8FB1; - height: 1px; -} - -pre.code -{ - display: block; - padding: 8px; - border: 1px dashed #ccc; -} - -#header{ - background: transparent url(hasher-logo.gif) no-repeat 20px 30px; - height: 110px; -} - -#index -{ - float: left; - width: 200px; - padding: 20px; -} - -#symbolList -{ - margin: 20px; - width: 200px; - float:right; -} - -#symbolList ul -{ - padding: 0; - margin: 0; - padding-left: 8px; - list-style: none; - font-size: 0.85em; -} - -#symbolList h3 -{ - margin-top:1.2em; - margin-bottom: 0.5em; -} - -#symbolList ul li -{ - padding: 0; - margin: 0; -} - -#content -{ - text-align: left; - padding:0 260px; - margin:0; -} - -.classList -{ - list-style-type: none; - padding: 0; - margin: 0 0 0 8px; - font-family: arial, sans-serif; - font-size: 1em; - overflow: auto; -} - -.classList li -{ - padding: 0; - margin: 0 0 8px 0; -} - -.summaryTable { width: 100%; } - -h1.classTitle -{ - font-size:1.7em; - line-height:1.3em; -} - -h2 { font-size: 1.1em; } -caption, div.sectionTitle -{ - background-color: #ddd; - color: #343436; - font-size:1.3em; - text-align: left; - padding: 2px 6px 2px 6px; - margin-top: 1.5em; - border: 1px #ddd solid; -} - -div.sectionTitle { margin-bottom: 8px; } -.summaryTable thead { display: none; } - -.summaryTable td -{ - vertical-align: top; - padding: 4px; - border-bottom: 1px #7F8FB1 solid; - border-right: 1px #7F8FB1 solid; -} - -/*col#summaryAttributes {}*/ -.summaryTable td.attributes -{ - border-left: 1px #7F8FB1 solid; - width: 140px; - text-align: right; -} - -.fixedFont b -{ - color: #d12250; -} - -td.attributes, .fixedFont -{ - line-height: 1.1em; - /* color: #002EBE; */ - font-family: "Courier New",Courier,monospace; - font-size: 1.3em; -} - -.modifiers { - float: right; - /* padding: 0 2em 0 2em; */ - padding: 0; - font-size: 0.85em; -} - -.member .description -{ - margin: 0.75em 0 0 0; - padding: 0 0.5em 0 0.5em; -} - -.summaryTable td.nameDescription -{ - text-align: left; - font-size: 1.1em; - line-height: 1.2em; -} - -.summaryTable td.nameDescription, .description -{ - line-height: 15px; - padding: 4px; - padding-left: 4px; -} - -.summaryTable { margin-bottom: 8px; } - -ul.inheritsList -{ - list-style: square; - margin-left: 20px; - padding-left: 0; -} - -.detailList { - margin-left: 20px; - line-height: 15px; -} -.detailList dt { margin-left: 20px; } - -.detailList .heading -{ - font-weight: bold; - padding-bottom: 6px; - margin-left: 0; -} - -.member -{ - border: 1px solid #ccc; - background: #f8f8ff; - margin: 1em 0 1em 0; - padding: 0.75em; -} - -.light, td.attributes, .light a:link, .light a:visited -{ - color: #777; - font-style: italic; -} - -code { - /*display: block; - margin: 1em;*/ - border: 1px solid #ccc; - padding: 2px 5px; - background: #f8f8ff; -} - -.fineprint -{ - text-align: right; - font-size: 10px; - padding:10px 0 20px; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/static/hasher-logo.gif b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/static/hasher-logo.gif deleted file mode 100644 index 08907434..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/static/hasher-logo.gif and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbolindex.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbolindex.html deleted file mode 100644 index 19fa8ae0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbolindex.html +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - JsDoc Reference - Index - - - - - - - - - - - - -
          -
          - -
          - -

          Index

          - -

          Classes

          - - -
          - -
          -

          Symbol Index

          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          appendHash - - hasher.appendHash - -
          changed - - hasher.changed - -
          dispose - - hasher.dispose - -
          getBaseURL - - hasher.getBaseURL - -
          getHash - - hasher.getHash - -
          getHashAsArray - - hasher.getHashAsArray - -
          getURL - - hasher.getURL - -
          hasher - - hasher - -
          init - - hasher.init - -
          initialized - - hasher.initialized - -
          isActive - - hasher.isActive - -
          prependHash - - hasher.prependHash - -
          raw - - hasher.raw - -
          replaceHash - - hasher.replaceHash - -
          separator - - hasher.separator - -
          setHash - - hasher.setHash - -
          stop - - hasher.stop - -
          stopped - - hasher.stopped - -
          toString - - hasher.toString - -
          VERSION - - hasher.VERSION - -
          -
          -
          -
          -
          - - Documentation generated by JsDoc Toolkit 2.4.0 on Mon Nov 11 2013 15:19:04 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
          - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbols/_global_.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbols/_global_.html deleted file mode 100644 index 5cfcf3cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbols/_global_.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - JsDoc Reference - _global_ - - - - - - - - - - - - - -
          -
          - -
          - -

          Index

          - -

          Classes

          - - -
          - -
          - - - - - - - - - - - - - - - - - - -
          - -
          - -

          - Built-In Namespace _global_ -

          - - -

          - - - - - - -

          - - - - - - - - - - - - -
          -
          - - - -
          - - Documentation generated by JsDoc Toolkit 2.4.0 on Mon Nov 11 2013 15:19:04 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
          - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbols/hasher.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbols/hasher.html deleted file mode 100644 index 51ef828f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbols/hasher.html +++ /dev/null @@ -1,841 +0,0 @@ - - - - - - - JsDoc Reference - hasher - - - - - - - - - - - - - -
          -
          - -
          - -

          Index

          - -

          Classes

          - - -
          - -
          - - -

          - Namespace -

          - - - - - - - -

          Variables

          - - - - - - - -

          Functions

          - - - - - - - - -
          - -
          - -

          - Namespace hasher -

          - - -

          - - - - History Manager for rich-media applications. - - -
          Defined in: hasher.js. - -

          - - - -
          -
          - Namespace Detail -
          - -
          - hasher -
          - -
          -

          Hasher

          - -
          - - - - - - - - - - - - -
          - - - - -
          -
          - Field Detail -
          - -
          - -
          -
          <static> -
          - - {string} - hasher.appendHash - -
          -
          -

          String that should always be added to the end of Hash value.

          - -
            -
          • default value: '';
          • -
          • will be automatically removed from `hasher.getHash()`
          • -
          • avoid conflicts with elements that contain ID equal to hash value;
          • -
          - - -
          - - - - - - - -
          - -
          - -
          -
          <static> -
          - - {signals.Signal} - hasher.changed - -
          -
          -

          Signal dispatched when hash value changes. -- pass current hash as 1st parameter to listeners and previous hash value as 2nd parameter.

          - - -
          - - - - - - - -
          - -
          - -
          -
          <static> -
          - - {signals.Signal} - hasher.initialized - -
          -
          -

          Signal dispatched when hasher is initialized. -- pass current hash as first parameter to listeners.

          - - -
          - - - - - - - -
          - -
          - -
          -
          <static> -
          - - {string} - hasher.prependHash - -
          -
          -

          String that should always be added to the beginning of Hash value.

          - -
            -
          • default value: '/';
          • -
          • will be automatically removed from `hasher.getHash()`
          • -
          • avoid conflicts with elements that contain ID equal to hash value;
          • -
          - - -
          - - - - - - - -
          - -
          - -
          -
          <static> -
          - - {boolean} - hasher.raw - -
          -
          -

          Boolean deciding if hasher encodes/decodes the hash or not.

          - -
            -
          • default value: false;
          • -
          - - -
          - - - - - - - -
          - -
          - -
          -
          <static> -
          - - {string} - hasher.separator - -
          -
          -

          String used to split hash paths; used by hasher.getHashAsArray() to split paths.

          - -
            -
          • default value: '/';
          • -
          - - -
          - - - - - - - -
          - -
          - -
          -
          <static> -
          - - {signals.Signal} - hasher.stopped - -
          -
          -

          Signal dispatched when hasher is stopped. -- pass current hash as first parameter to listeners

          - - -
          - - - - - - - -
          - -
          - -
          -
          <static> <constant> -
          - - {string} - hasher.VERSION - -
          -
          -

          hasher Version Number

          - - -
          - - - - - - - -
          - -
          - - - - -
          -
          - Method Detail -
          - -
          - -
          -
          <static> -
          - - hasher.dispose() - -
          -
          -

          Removes all event listeners, stops hasher and destroy hasher object. -- IMPORTANT: hasher won't work after calling this method, hasher Object will be deleted.

          - - -
          - - - - - - - - - - - -
          - -
          - -
          -
          <static> -
          - {string} - hasher.getBaseURL() - -
          -
          - - - -
          - - - - - - - - -
          -
          Returns:
          - -
          {string} Retrieve URL without query string and hash.
          - -
          - - - - -
          - -
          - -
          -
          <static> -
          - {string} - hasher.getHash() - -
          -
          - - - -
          - - - - - - - - -
          -
          Returns:
          - -
          {string} Hash value without '#', `hasher.appendHash` and `hasher.prependHash`.
          - -
          - - - - -
          - -
          - -
          -
          <static> -
          - {Array.} - hasher.getHashAsArray() - -
          -
          - - - -
          - - - - - - - - -
          -
          Returns:
          - -
          {Array.} Hash value split into an Array.
          - -
          - - - - -
          - -
          - -
          -
          <static> -
          - {string} - hasher.getURL() - -
          -
          - - - -
          - - - - - - - - -
          -
          Returns:
          - -
          {string} Full URL.
          - -
          - - - - -
          - -
          - -
          -
          <static> -
          - - hasher.init() - -
          -
          -

          Start listening/dispatching changes in the hash/history.

          - -
            -
          • hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons before calling this method.
          • -
          - - -
          - - - - - - - - - - - -
          - -
          - -
          -
          <static> -
          - {boolean} - hasher.isActive() - -
          -
          - - - -
          - - - - - - - - -
          -
          Returns:
          - -
          {boolean} If hasher is listening to changes on the browser history and/or hash value.
          - -
          - - - - -
          - -
          - -
          -
          <static> -
          - - hasher.replaceHash(path) - -
          -
          -

          Set Hash value without keeping previous hash on the history record. -Similar to calling window.location.replace("#/hash") but will also work on IE6-7.

          - - -
          - - - -
          hasher.replaceHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor'
          - - - - -
          -
          Parameters:
          - -
          - {...string} path - -
          -
          Hash value without '#'. Hasher will join -path segments using `hasher.separator` and prepend/append hash value -with `hasher.appendHash` and `hasher.prependHash`
          - -
          - - - - - - - - -
          - -
          - -
          -
          <static> -
          - - hasher.setHash(path) - -
          -
          -

          Set Hash value, generating a new history record.

          - - -
          - - - -
          hasher.setHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor'
          - - - - -
          -
          Parameters:
          - -
          - {...string} path - -
          -
          Hash value without '#'. Hasher will join -path segments using `hasher.separator` and prepend/append hash value -with `hasher.appendHash` and `hasher.prependHash`
          - -
          - - - - - - - - -
          - -
          - -
          -
          <static> -
          - - hasher.stop() - -
          -
          -

          Stop listening/dispatching changes in the hash/history.

          - -
            -
          • hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons after calling this method, unless you call hasher.init() again.
          • -
          • hasher will still dispatch changes made programatically by calling hasher.setHash();
          • -
          - - -
          - - - - - - - - - - - -
          - -
          - -
          -
          <static> -
          - {string} - hasher.toString() - -
          -
          - - - -
          - - - - - - - - -
          -
          Returns:
          - -
          {string} A string representation of the object.
          - -
          - - - - -
          - -
          - - - - -
          -
          - - - -
          - - Documentation generated by JsDoc Toolkit 2.4.0 on Mon Nov 11 2013 15:19:04 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
          - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbols/src/_Users_millermedeiros_Projects__open_source_Hasher_dist_js_hasher.js.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbols/src/_Users_millermedeiros_Projects__open_source_Hasher_dist_js_hasher.js.html deleted file mode 100644 index 940c0124..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/docs/symbols/src/_Users_millermedeiros_Projects__open_source_Hasher_dist_js_hasher.js.html +++ /dev/null @@ -1,449 +0,0 @@ -
            1 /*!!
          -  2  * Hasher <http://github.com/millermedeiros/hasher>
          -  3  * @author Miller Medeiros
          -  4  * @version 1.2.0 (2013/11/11 03:18 PM)
          -  5  * Released under the MIT License
          -  6  */
          -  7 
          -  8 ;(function () {
          -  9 var factory = function(signals){
          - 10 
          - 11 /*jshint white:false*/
          - 12 /*global signals:false, window:false*/
          - 13 
          - 14 /**
          - 15  * Hasher
          - 16  * @namespace History Manager for rich-media applications.
          - 17  * @name hasher
          - 18  */
          - 19 var hasher = (function(window){
          - 20 
          - 21     //--------------------------------------------------------------------------------------
          - 22     // Private Vars
          - 23     //--------------------------------------------------------------------------------------
          - 24 
          - 25     var
          - 26 
          - 27         // frequency that it will check hash value on IE 6-7 since it doesn't
          - 28         // support the hashchange event
          - 29         POOL_INTERVAL = 25,
          - 30 
          - 31         // local storage for brevity and better compression --------------------------------
          - 32 
          - 33         document = window.document,
          - 34         history = window.history,
          - 35         Signal = signals.Signal,
          - 36 
          - 37         // local vars ----------------------------------------------------------------------
          - 38 
          - 39         hasher,
          - 40         _hash,
          - 41         _checkInterval,
          - 42         _isActive,
          - 43         _frame, //iframe used for legacy IE (6-7)
          - 44         _checkHistory,
          - 45         _hashValRegexp = /#(.*)$/,
          - 46         _baseUrlRegexp = /(\?.*)|(\#.*)/,
          - 47         _hashRegexp = /^\#/,
          - 48 
          - 49         // sniffing/feature detection -------------------------------------------------------
          - 50 
          - 51         //hack based on this: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
          - 52         _isIE = (!+"\v1"),
          - 53         // hashchange is supported by FF3.6+, IE8+, Chrome 5+, Safari 5+ but
          - 54         // feature detection fails on IE compatibility mode, so we need to
          - 55         // check documentMode
          - 56         _isHashChangeSupported = ('onhashchange' in window) && document.documentMode !== 7,
          - 57         //check if is IE6-7 since hash change is only supported on IE8+ and
          - 58         //changing hash value on IE6-7 doesn't generate history record.
          - 59         _isLegacyIE = _isIE && !_isHashChangeSupported,
          - 60         _isLocal = (location.protocol === 'file:');
          - 61 
          - 62 
          - 63     //--------------------------------------------------------------------------------------
          - 64     // Private Methods
          - 65     //--------------------------------------------------------------------------------------
          - 66 
          - 67     function _escapeRegExp(str){
          - 68         return String(str || '').replace(/\W/g, "\\$&");
          - 69     }
          - 70 
          - 71     function _trimHash(hash){
          - 72         if (!hash) return '';
          - 73         var regexp = new RegExp('^' + _escapeRegExp(hasher.prependHash) + '|' + _escapeRegExp(hasher.appendHash) + '$', 'g');
          - 74         return hash.replace(regexp, '');
          - 75     }
          - 76 
          - 77     function _getWindowHash(){
          - 78         //parsed full URL instead of getting window.location.hash because Firefox decode hash value (and all the other browsers don't)
          - 79         //also because of IE8 bug with hash query in local file [issue #6]
          - 80         var result = _hashValRegexp.exec( hasher.getURL() );
          - 81         var path = (result && result[1]) || '';
          - 82         try {
          - 83           return hasher.raw? path : decodeURIComponent(path);
          - 84         } catch (e) {
          - 85           // in case user did not set `hasher.raw` and decodeURIComponent
          - 86           // throws an error (see #57)
          - 87           return path;
          - 88         }
          - 89     }
          - 90 
          - 91     function _getFrameHash(){
          - 92         return (_frame)? _frame.contentWindow.frameHash : null;
          - 93     }
          - 94 
          - 95     function _createFrame(){
          - 96         _frame = document.createElement('iframe');
          - 97         _frame.src = 'about:blank';
          - 98         _frame.style.display = 'none';
          - 99         document.body.appendChild(_frame);
          -100     }
          -101 
          -102     function _updateFrame(){
          -103         if(_frame && _hash !== _getFrameHash()){
          -104             var frameDoc = _frame.contentWindow.document;
          -105             frameDoc.open();
          -106             //update iframe content to force new history record.
          -107             //based on Really Simple History, SWFAddress and YUI.history.
          -108             frameDoc.write('<html><head><title>' + document.title + '</title><script type="text/javascript">var frameHash="' + _hash + '";</script></head><body> </body></html>');
          -109             frameDoc.close();
          -110         }
          -111     }
          -112 
          -113     function _registerChange(newHash, isReplace){
          -114         if(_hash !== newHash){
          -115             var oldHash = _hash;
          -116             _hash = newHash; //should come before event dispatch to make sure user can get proper value inside event handler
          -117             if(_isLegacyIE){
          -118                 if(!isReplace){
          -119                     _updateFrame();
          -120                 } else {
          -121                     _frame.contentWindow.frameHash = newHash;
          -122                 }
          -123             }
          -124             hasher.changed.dispatch(_trimHash(newHash), _trimHash(oldHash));
          -125         }
          -126     }
          -127 
          -128     if (_isLegacyIE) {
          -129         /**
          -130          * @private
          -131          */
          -132         _checkHistory = function(){
          -133             var windowHash = _getWindowHash(),
          -134                 frameHash = _getFrameHash();
          -135             if(frameHash !== _hash && frameHash !== windowHash){
          -136                 //detect changes made pressing browser history buttons.
          -137                 //Workaround since history.back() and history.forward() doesn't
          -138                 //update hash value on IE6/7 but updates content of the iframe.
          -139                 //needs to trim hash since value stored already have
          -140                 //prependHash + appendHash for fast check.
          -141                 hasher.setHash(_trimHash(frameHash));
          -142             } else if (windowHash !== _hash){
          -143                 //detect if hash changed (manually or using setHash)
          -144                 _registerChange(windowHash);
          -145             }
          -146         };
          -147     } else {
          -148         /**
          -149          * @private
          -150          */
          -151         _checkHistory = function(){
          -152             var windowHash = _getWindowHash();
          -153             if(windowHash !== _hash){
          -154                 _registerChange(windowHash);
          -155             }
          -156         };
          -157     }
          -158 
          -159     function _addListener(elm, eType, fn){
          -160         if(elm.addEventListener){
          -161             elm.addEventListener(eType, fn, false);
          -162         } else if (elm.attachEvent){
          -163             elm.attachEvent('on' + eType, fn);
          -164         }
          -165     }
          -166 
          -167     function _removeListener(elm, eType, fn){
          -168         if(elm.removeEventListener){
          -169             elm.removeEventListener(eType, fn, false);
          -170         } else if (elm.detachEvent){
          -171             elm.detachEvent('on' + eType, fn);
          -172         }
          -173     }
          -174 
          -175     function _makePath(paths){
          -176         paths = Array.prototype.slice.call(arguments);
          -177 
          -178         var path = paths.join(hasher.separator);
          -179         path = path? hasher.prependHash + path.replace(_hashRegexp, '') + hasher.appendHash : path;
          -180         return path;
          -181     }
          -182 
          -183     function _encodePath(path){
          -184         //used encodeURI instead of encodeURIComponent to preserve '?', '/',
          -185         //'#'. Fixes Safari bug [issue #8]
          -186         path = encodeURI(path);
          -187         if(_isIE && _isLocal){
          -188             //fix IE8 local file bug [issue #6]
          -189             path = path.replace(/\?/, '%3F');
          -190         }
          -191         return path;
          -192     }
          -193 
          -194     //--------------------------------------------------------------------------------------
          -195     // Public (API)
          -196     //--------------------------------------------------------------------------------------
          -197 
          -198     hasher = /** @lends hasher */ {
          -199 
          -200         /**
          -201          * hasher Version Number
          -202          * @type string
          -203          * @constant
          -204          */
          -205         VERSION : '1.2.0',
          -206 
          -207         /**
          -208          * Boolean deciding if hasher encodes/decodes the hash or not.
          -209          * <ul>
          -210          * <li>default value: false;</li>
          -211          * </ul>
          -212          * @type boolean
          -213          */
          -214         raw : false,
          -215 
          -216         /**
          -217          * String that should always be added to the end of Hash value.
          -218          * <ul>
          -219          * <li>default value: '';</li>
          -220          * <li>will be automatically removed from `hasher.getHash()`</li>
          -221          * <li>avoid conflicts with elements that contain ID equal to hash value;</li>
          -222          * </ul>
          -223          * @type string
          -224          */
          -225         appendHash : '',
          -226 
          -227         /**
          -228          * String that should always be added to the beginning of Hash value.
          -229          * <ul>
          -230          * <li>default value: '/';</li>
          -231          * <li>will be automatically removed from `hasher.getHash()`</li>
          -232          * <li>avoid conflicts with elements that contain ID equal to hash value;</li>
          -233          * </ul>
          -234          * @type string
          -235          */
          -236         prependHash : '/',
          -237 
          -238         /**
          -239          * String used to split hash paths; used by `hasher.getHashAsArray()` to split paths.
          -240          * <ul>
          -241          * <li>default value: '/';</li>
          -242          * </ul>
          -243          * @type string
          -244          */
          -245         separator : '/',
          -246 
          -247         /**
          -248          * Signal dispatched when hash value changes.
          -249          * - pass current hash as 1st parameter to listeners and previous hash value as 2nd parameter.
          -250          * @type signals.Signal
          -251          */
          -252         changed : new Signal(),
          -253 
          -254         /**
          -255          * Signal dispatched when hasher is stopped.
          -256          * -  pass current hash as first parameter to listeners
          -257          * @type signals.Signal
          -258          */
          -259         stopped : new Signal(),
          -260 
          -261         /**
          -262          * Signal dispatched when hasher is initialized.
          -263          * - pass current hash as first parameter to listeners.
          -264          * @type signals.Signal
          -265          */
          -266         initialized : new Signal(),
          -267 
          -268         /**
          -269          * Start listening/dispatching changes in the hash/history.
          -270          * <ul>
          -271          *   <li>hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons before calling this method.</li>
          -272          * </ul>
          -273          */
          -274         init : function(){
          -275             if(_isActive) return;
          -276 
          -277             _hash = _getWindowHash();
          -278 
          -279             //thought about branching/overloading hasher.init() to avoid checking multiple times but
          -280             //don't think worth doing it since it probably won't be called multiple times.
          -281             if(_isHashChangeSupported){
          -282                 _addListener(window, 'hashchange', _checkHistory);
          -283             }else {
          -284                 if(_isLegacyIE){
          -285                     if(! _frame){
          -286                         _createFrame();
          -287                     }
          -288                     _updateFrame();
          -289                 }
          -290                 _checkInterval = setInterval(_checkHistory, POOL_INTERVAL);
          -291             }
          -292 
          -293             _isActive = true;
          -294             hasher.initialized.dispatch(_trimHash(_hash));
          -295         },
          -296 
          -297         /**
          -298          * Stop listening/dispatching changes in the hash/history.
          -299          * <ul>
          -300          *   <li>hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons after calling this method, unless you call hasher.init() again.</li>
          -301          *   <li>hasher will still dispatch changes made programatically by calling hasher.setHash();</li>
          -302          * </ul>
          -303          */
          -304         stop : function(){
          -305             if(! _isActive) return;
          -306 
          -307             if(_isHashChangeSupported){
          -308                 _removeListener(window, 'hashchange', _checkHistory);
          -309             }else{
          -310                 clearInterval(_checkInterval);
          -311                 _checkInterval = null;
          -312             }
          -313 
          -314             _isActive = false;
          -315             hasher.stopped.dispatch(_trimHash(_hash));
          -316         },
          -317 
          -318         /**
          -319          * @return {boolean}    If hasher is listening to changes on the browser history and/or hash value.
          -320          */
          -321         isActive : function(){
          -322             return _isActive;
          -323         },
          -324 
          -325         /**
          -326          * @return {string} Full URL.
          -327          */
          -328         getURL : function(){
          -329             return window.location.href;
          -330         },
          -331 
          -332         /**
          -333          * @return {string} Retrieve URL without query string and hash.
          -334          */
          -335         getBaseURL : function(){
          -336             return hasher.getURL().replace(_baseUrlRegexp, ''); //removes everything after '?' and/or '#'
          -337         },
          -338 
          -339         /**
          -340          * Set Hash value, generating a new history record.
          -341          * @param {...string} path    Hash value without '#'. Hasher will join
          -342          * path segments using `hasher.separator` and prepend/append hash value
          -343          * with `hasher.appendHash` and `hasher.prependHash`
          -344          * @example hasher.setHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor'
          -345          */
          -346         setHash : function(path){
          -347             path = _makePath.apply(null, arguments);
          -348             if(path !== _hash){
          -349                 // we should store raw value
          -350                 _registerChange(path);
          -351                 if (path === _hash) {
          -352                     // we check if path is still === _hash to avoid error in
          -353                     // case of multiple consecutive redirects [issue #39]
          -354                     if (! hasher.raw) {
          -355                         path = _encodePath(path);
          -356                     }
          -357                     window.location.hash = '#' + path;
          -358                 }
          -359             }
          -360         },
          -361 
          -362         /**
          -363          * Set Hash value without keeping previous hash on the history record.
          -364          * Similar to calling `window.location.replace("#/hash")` but will also work on IE6-7.
          -365          * @param {...string} path    Hash value without '#'. Hasher will join
          -366          * path segments using `hasher.separator` and prepend/append hash value
          -367          * with `hasher.appendHash` and `hasher.prependHash`
          -368          * @example hasher.replaceHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor'
          -369          */
          -370         replaceHash : function(path){
          -371             path = _makePath.apply(null, arguments);
          -372             if(path !== _hash){
          -373                 // we should store raw value
          -374                 _registerChange(path, true);
          -375                 if (path === _hash) {
          -376                     // we check if path is still === _hash to avoid error in
          -377                     // case of multiple consecutive redirects [issue #39]
          -378                     if (! hasher.raw) {
          -379                         path = _encodePath(path);
          -380                     }
          -381                     window.location.replace('#' + path);
          -382                 }
          -383             }
          -384         },
          -385 
          -386         /**
          -387          * @return {string} Hash value without '#', `hasher.appendHash` and `hasher.prependHash`.
          -388          */
          -389         getHash : function(){
          -390             //didn't used actual value of the `window.location.hash` to avoid breaking the application in case `window.location.hash` isn't available and also because value should always be synched.
          -391             return _trimHash(_hash);
          -392         },
          -393 
          -394         /**
          -395          * @return {Array.<string>} Hash value split into an Array.
          -396          */
          -397         getHashAsArray : function(){
          -398             return hasher.getHash().split(hasher.separator);
          -399         },
          -400 
          -401         /**
          -402          * Removes all event listeners, stops hasher and destroy hasher object.
          -403          * - IMPORTANT: hasher won't work after calling this method, hasher Object will be deleted.
          -404          */
          -405         dispose : function(){
          -406             hasher.stop();
          -407             hasher.initialized.dispose();
          -408             hasher.stopped.dispose();
          -409             hasher.changed.dispose();
          -410             _frame = hasher = window.hasher = null;
          -411         },
          -412 
          -413         /**
          -414          * @return {string} A string representation of the object.
          -415          */
          -416         toString : function(){
          -417             return '[hasher version="'+ hasher.VERSION +'" hash="'+ hasher.getHash() +'"]';
          -418         }
          -419 
          -420     };
          -421 
          -422     hasher.initialized.memorize = true; //see #33
          -423 
          -424     return hasher;
          -425 
          -426 }(window));
          -427 
          -428 
          -429     return hasher;
          -430 };
          -431 
          -432 if (typeof define === 'function' && define.amd) {
          -433     define(['signals'], factory);
          -434 } else if (typeof exports === 'object') {
          -435     module.exports = factory(require('signals'));
          -436 } else {
          -437     /*jshint sub:true */
          -438     window['hasher'] = factory(window['signals']);
          -439 }
          -440 
          -441 }());
          -442 
          \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/js/hasher.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/js/hasher.js deleted file mode 100644 index d8912ea8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/js/hasher.js +++ /dev/null @@ -1,441 +0,0 @@ -/*!! - * Hasher - * @author Miller Medeiros - * @version 1.2.0 (2013/11/11 03:18 PM) - * Released under the MIT License - */ - -;(function () { -var factory = function(signals){ - -/*jshint white:false*/ -/*global signals:false, window:false*/ - -/** - * Hasher - * @namespace History Manager for rich-media applications. - * @name hasher - */ -var hasher = (function(window){ - - //-------------------------------------------------------------------------------------- - // Private Vars - //-------------------------------------------------------------------------------------- - - var - - // frequency that it will check hash value on IE 6-7 since it doesn't - // support the hashchange event - POOL_INTERVAL = 25, - - // local storage for brevity and better compression -------------------------------- - - document = window.document, - history = window.history, - Signal = signals.Signal, - - // local vars ---------------------------------------------------------------------- - - hasher, - _hash, - _checkInterval, - _isActive, - _frame, //iframe used for legacy IE (6-7) - _checkHistory, - _hashValRegexp = /#(.*)$/, - _baseUrlRegexp = /(\?.*)|(\#.*)/, - _hashRegexp = /^\#/, - - // sniffing/feature detection ------------------------------------------------------- - - //hack based on this: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html - _isIE = (!+"\v1"), - // hashchange is supported by FF3.6+, IE8+, Chrome 5+, Safari 5+ but - // feature detection fails on IE compatibility mode, so we need to - // check documentMode - _isHashChangeSupported = ('onhashchange' in window) && document.documentMode !== 7, - //check if is IE6-7 since hash change is only supported on IE8+ and - //changing hash value on IE6-7 doesn't generate history record. - _isLegacyIE = _isIE && !_isHashChangeSupported, - _isLocal = (location.protocol === 'file:'); - - - //-------------------------------------------------------------------------------------- - // Private Methods - //-------------------------------------------------------------------------------------- - - function _escapeRegExp(str){ - return String(str || '').replace(/\W/g, "\\$&"); - } - - function _trimHash(hash){ - if (!hash) return ''; - var regexp = new RegExp('^' + _escapeRegExp(hasher.prependHash) + '|' + _escapeRegExp(hasher.appendHash) + '$', 'g'); - return hash.replace(regexp, ''); - } - - function _getWindowHash(){ - //parsed full URL instead of getting window.location.hash because Firefox decode hash value (and all the other browsers don't) - //also because of IE8 bug with hash query in local file [issue #6] - var result = _hashValRegexp.exec( hasher.getURL() ); - var path = (result && result[1]) || ''; - try { - return hasher.raw? path : decodeURIComponent(path); - } catch (e) { - // in case user did not set `hasher.raw` and decodeURIComponent - // throws an error (see #57) - return path; - } - } - - function _getFrameHash(){ - return (_frame)? _frame.contentWindow.frameHash : null; - } - - function _createFrame(){ - _frame = document.createElement('iframe'); - _frame.src = 'about:blank'; - _frame.style.display = 'none'; - document.body.appendChild(_frame); - } - - function _updateFrame(){ - if(_frame && _hash !== _getFrameHash()){ - var frameDoc = _frame.contentWindow.document; - frameDoc.open(); - //update iframe content to force new history record. - //based on Really Simple History, SWFAddress and YUI.history. - frameDoc.write('' + document.title + ' '); - frameDoc.close(); - } - } - - function _registerChange(newHash, isReplace){ - if(_hash !== newHash){ - var oldHash = _hash; - _hash = newHash; //should come before event dispatch to make sure user can get proper value inside event handler - if(_isLegacyIE){ - if(!isReplace){ - _updateFrame(); - } else { - _frame.contentWindow.frameHash = newHash; - } - } - hasher.changed.dispatch(_trimHash(newHash), _trimHash(oldHash)); - } - } - - if (_isLegacyIE) { - /** - * @private - */ - _checkHistory = function(){ - var windowHash = _getWindowHash(), - frameHash = _getFrameHash(); - if(frameHash !== _hash && frameHash !== windowHash){ - //detect changes made pressing browser history buttons. - //Workaround since history.back() and history.forward() doesn't - //update hash value on IE6/7 but updates content of the iframe. - //needs to trim hash since value stored already have - //prependHash + appendHash for fast check. - hasher.setHash(_trimHash(frameHash)); - } else if (windowHash !== _hash){ - //detect if hash changed (manually or using setHash) - _registerChange(windowHash); - } - }; - } else { - /** - * @private - */ - _checkHistory = function(){ - var windowHash = _getWindowHash(); - if(windowHash !== _hash){ - _registerChange(windowHash); - } - }; - } - - function _addListener(elm, eType, fn){ - if(elm.addEventListener){ - elm.addEventListener(eType, fn, false); - } else if (elm.attachEvent){ - elm.attachEvent('on' + eType, fn); - } - } - - function _removeListener(elm, eType, fn){ - if(elm.removeEventListener){ - elm.removeEventListener(eType, fn, false); - } else if (elm.detachEvent){ - elm.detachEvent('on' + eType, fn); - } - } - - function _makePath(paths){ - paths = Array.prototype.slice.call(arguments); - - var path = paths.join(hasher.separator); - path = path? hasher.prependHash + path.replace(_hashRegexp, '') + hasher.appendHash : path; - return path; - } - - function _encodePath(path){ - //used encodeURI instead of encodeURIComponent to preserve '?', '/', - //'#'. Fixes Safari bug [issue #8] - path = encodeURI(path); - if(_isIE && _isLocal){ - //fix IE8 local file bug [issue #6] - path = path.replace(/\?/, '%3F'); - } - return path; - } - - //-------------------------------------------------------------------------------------- - // Public (API) - //-------------------------------------------------------------------------------------- - - hasher = /** @lends hasher */ { - - /** - * hasher Version Number - * @type string - * @constant - */ - VERSION : '1.2.0', - - /** - * Boolean deciding if hasher encodes/decodes the hash or not. - *
            - *
          • default value: false;
          • - *
          - * @type boolean - */ - raw : false, - - /** - * String that should always be added to the end of Hash value. - *
            - *
          • default value: '';
          • - *
          • will be automatically removed from `hasher.getHash()`
          • - *
          • avoid conflicts with elements that contain ID equal to hash value;
          • - *
          - * @type string - */ - appendHash : '', - - /** - * String that should always be added to the beginning of Hash value. - *
            - *
          • default value: '/';
          • - *
          • will be automatically removed from `hasher.getHash()`
          • - *
          • avoid conflicts with elements that contain ID equal to hash value;
          • - *
          - * @type string - */ - prependHash : '/', - - /** - * String used to split hash paths; used by `hasher.getHashAsArray()` to split paths. - *
            - *
          • default value: '/';
          • - *
          - * @type string - */ - separator : '/', - - /** - * Signal dispatched when hash value changes. - * - pass current hash as 1st parameter to listeners and previous hash value as 2nd parameter. - * @type signals.Signal - */ - changed : new Signal(), - - /** - * Signal dispatched when hasher is stopped. - * - pass current hash as first parameter to listeners - * @type signals.Signal - */ - stopped : new Signal(), - - /** - * Signal dispatched when hasher is initialized. - * - pass current hash as first parameter to listeners. - * @type signals.Signal - */ - initialized : new Signal(), - - /** - * Start listening/dispatching changes in the hash/history. - *
            - *
          • hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons before calling this method.
          • - *
          - */ - init : function(){ - if(_isActive) return; - - _hash = _getWindowHash(); - - //thought about branching/overloading hasher.init() to avoid checking multiple times but - //don't think worth doing it since it probably won't be called multiple times. - if(_isHashChangeSupported){ - _addListener(window, 'hashchange', _checkHistory); - }else { - if(_isLegacyIE){ - if(! _frame){ - _createFrame(); - } - _updateFrame(); - } - _checkInterval = setInterval(_checkHistory, POOL_INTERVAL); - } - - _isActive = true; - hasher.initialized.dispatch(_trimHash(_hash)); - }, - - /** - * Stop listening/dispatching changes in the hash/history. - *
            - *
          • hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons after calling this method, unless you call hasher.init() again.
          • - *
          • hasher will still dispatch changes made programatically by calling hasher.setHash();
          • - *
          - */ - stop : function(){ - if(! _isActive) return; - - if(_isHashChangeSupported){ - _removeListener(window, 'hashchange', _checkHistory); - }else{ - clearInterval(_checkInterval); - _checkInterval = null; - } - - _isActive = false; - hasher.stopped.dispatch(_trimHash(_hash)); - }, - - /** - * @return {boolean} If hasher is listening to changes on the browser history and/or hash value. - */ - isActive : function(){ - return _isActive; - }, - - /** - * @return {string} Full URL. - */ - getURL : function(){ - return window.location.href; - }, - - /** - * @return {string} Retrieve URL without query string and hash. - */ - getBaseURL : function(){ - return hasher.getURL().replace(_baseUrlRegexp, ''); //removes everything after '?' and/or '#' - }, - - /** - * Set Hash value, generating a new history record. - * @param {...string} path Hash value without '#'. Hasher will join - * path segments using `hasher.separator` and prepend/append hash value - * with `hasher.appendHash` and `hasher.prependHash` - * @example hasher.setHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor' - */ - setHash : function(path){ - path = _makePath.apply(null, arguments); - if(path !== _hash){ - // we should store raw value - _registerChange(path); - if (path === _hash) { - // we check if path is still === _hash to avoid error in - // case of multiple consecutive redirects [issue #39] - if (! hasher.raw) { - path = _encodePath(path); - } - window.location.hash = '#' + path; - } - } - }, - - /** - * Set Hash value without keeping previous hash on the history record. - * Similar to calling `window.location.replace("#/hash")` but will also work on IE6-7. - * @param {...string} path Hash value without '#'. Hasher will join - * path segments using `hasher.separator` and prepend/append hash value - * with `hasher.appendHash` and `hasher.prependHash` - * @example hasher.replaceHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor' - */ - replaceHash : function(path){ - path = _makePath.apply(null, arguments); - if(path !== _hash){ - // we should store raw value - _registerChange(path, true); - if (path === _hash) { - // we check if path is still === _hash to avoid error in - // case of multiple consecutive redirects [issue #39] - if (! hasher.raw) { - path = _encodePath(path); - } - window.location.replace('#' + path); - } - } - }, - - /** - * @return {string} Hash value without '#', `hasher.appendHash` and `hasher.prependHash`. - */ - getHash : function(){ - //didn't used actual value of the `window.location.hash` to avoid breaking the application in case `window.location.hash` isn't available and also because value should always be synched. - return _trimHash(_hash); - }, - - /** - * @return {Array.} Hash value split into an Array. - */ - getHashAsArray : function(){ - return hasher.getHash().split(hasher.separator); - }, - - /** - * Removes all event listeners, stops hasher and destroy hasher object. - * - IMPORTANT: hasher won't work after calling this method, hasher Object will be deleted. - */ - dispose : function(){ - hasher.stop(); - hasher.initialized.dispose(); - hasher.stopped.dispose(); - hasher.changed.dispose(); - _frame = hasher = window.hasher = null; - }, - - /** - * @return {string} A string representation of the object. - */ - toString : function(){ - return '[hasher version="'+ hasher.VERSION +'" hash="'+ hasher.getHash() +'"]'; - } - - }; - - hasher.initialized.memorize = true; //see #33 - - return hasher; - -}(window)); - - - return hasher; -}; - -if (typeof define === 'function' && define.amd) { - define(['signals'], factory); -} else if (typeof exports === 'object') { - module.exports = factory(require('signals')); -} else { - /*jshint sub:true */ - window['hasher'] = factory(window['signals']); -} - -}()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/js/hasher.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/js/hasher.min.js deleted file mode 100644 index e76a83f3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/dist/js/hasher.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Hasher - * @author Miller Medeiros - * @version 1.2.0 (2013/11/11 03:18 PM) - * Released under the MIT License - */ -(function(){var a=function(b){var c=(function(k){var p=25,r=k.document,n=k.history,x=b.Signal,f,v,m,F,d,D,t=/#(.*)$/,j=/(\?.*)|(\#.*)/,g=/^\#/,i=(!+"\v1"),B=("onhashchange" in k)&&r.documentMode!==7,e=i&&!B,s=(location.protocol==="file:");function o(G){return String(G||"").replace(/\W/g,"\\$&")}function u(H){if(!H){return""}var G=new RegExp("^"+o(f.prependHash)+"|"+o(f.appendHash)+"$","g");return H.replace(G,"")}function E(){var G=t.exec(f.getURL());var I=(G&&G[1])||"";try{return f.raw?I:decodeURIComponent(I)}catch(H){return I}}function A(){return(d)?d.contentWindow.frameHash:null}function z(){d=r.createElement("iframe");d.src="about:blank";d.style.display="none";r.body.appendChild(d)}function h(){if(d&&v!==A()){var G=d.contentWindow.document;G.open();G.write(""+r.title+'\n \n```\n\n**IMPORTANT:** `signals.js` should be included before `hasher.js`.\n\n\n### JavaScript ###\n\n```js\n //handle hash changes\n function handleChanges(newHash, oldHash){\n console.log(newHash);\n }\n\n hasher.changed.add(handleChanges); //add hash change listener\n hasher.initialized.add(handleChanges); //add initialized listener (to grab initial value in case it is already set)\n hasher.init(); //initialize hasher (start listening for history changes)\n\n hasher.setHash('foo'); //change hash value (generates new history record)\n```\n\n\n## Advanced Usage ##\n\n\n### Hash Bang! ###\n\nGoogle have a proposal for [making Ajax content crawlable](http://code.google.com/web/ajaxcrawling/docs/getting-started.html) by specifying that a certain *hash value* also have an static snapshot. Those *hash values* should start with an exclamation mark `!`:\n\n```js\nhasher.prependHash = '!'; //default value is \"/\"\nhasher.setHash('foo'); //will update location.hash to \"#!foo\" -> htttp://example.com/#!foo\n```\n\nPS: Only use the hashbang if you are generating static snapshots for the hash.\n\n\n### Setting hash value without dispatching changed signal ##\n\nOne of the greatest benefits of Hasher over other solutions is that it uses JS-Signals for the event dispatch, which provides [many advanced features](https://github.com/millermedeiros/js-signals/wiki/Examples). This can be useful when you are setting the hash value and your `changed` handler doesn't need to be called (e.g. updating hash value during scroll). Use it with care.\n\n```js\nfunction setHashSilently(hash){\n hasher.changed.active = false; //disable changed signal\n hasher.setHash(hash); //set hash without dispatching changed signal\n hasher.changed.active = true; //re-enable signal\n}\n\nhasher.init(); //start listening for changes\nhasher.changed.add(console.log, console); //log all changes\nhasher.setHash('foo');\nsetHashSilently('lorem/ipsum'); //set hash value without dispatching changed event (will generate history record anyway)\nhasher.setHash('bar');\n```\n\n\n### Setting hash value without generating a new history record\n\nHasher also contains the method `replaceHash()`. It works very similarly to the\n`setHash()` method (will also dispatch a `changed` signal), the main difference\nit that it won't keep the **previous** hash on the history record (similar to\n`location.replace()`). It's useful for redirections and any other change that\nshouldn't be on the browser history.\n\n```js\nfunction onHasherInit(curHash){\n if (curHash == '') {\n // redirect to \"home\" hash without keeping the empty hash on the history\n hasher.replaceHash('home');\n }\n}\nhasher.initialized.add(onHasherInit);\nhasher.changed.add(console.log, console); // log all hashes\nhasher.init();\n```\n\n\n### Routes: Using Hasher together with Crossroads.js ###\n\nHasher is only focused on providing a reliable and clear API for setting hash values and\nlistening to hash state change event. If you need an advanced *routing* system\ncheck [crossroads.js](http://millermedeiros.github.com/crossroads.js/). Both\nwere designed to work together easily:\n\n```js\n//setup crossroads\ncrossroads.addRoute('home');\ncrossroads.addRoute('lorem');\ncrossroads.addRoute('lorem/ipsum');\ncrossroads.routed.add(console.log, console); //log all routes\n\n//setup hasher\nfunction parseHash(newHash, oldHash){\n crossroads.parse(newHash);\n}\nhasher.initialized.add(parseHash); // parse initial hash\nhasher.changed.add(parseHash); //parse hash changes\nhasher.init(); //start listening for history change\n```\n\n\n\n## How does it work? ##\n\nHasher will listen for the browser `onhashchange` event if it is supported (FF3.6+, IE8+, Chrome 5+, Safari 5+, Opera 10.6+)\nor it will fallback to pooling the `window.location` on an interval to check if\nhash value changed. On IE 6-7 it also uses an hidden iframe to trigger\nthe history state changes (since updating the hash value won't do the trick).\nThis is the same method used by most of the other available solutions like swfaddress,\njQuery Address, YUI History, jqBBQ, Really Simple History, etc...\n\nThe main difference from the other solutions are the API, code structure and\nthe fact that it doesn't require jQuery/YUI/dojo/moootools/etc to work. It also\nuses [JS-Signals](http://millermedeiros.github.com/js-signals/) for the events which\nprovides a sane way of handling events and some really useful advanced features.\n\n\n\n## Why should I use it? ##\n\nBesides the fact of making history state work across multiple browsers it also\nnormalizes and fixes many bugs, here are a few of the advantges:\n\n * Normalizes the hash value across browsers (firefox decode hash value and\n all the other browsers don't).\n * Fix IE8 bug if `location.hash` contains a \"?\" character and file is being\n accessed locally it would break the history stack. [iss #6]\n * Fix Safari 4-5 bug while setting `location.hash` to a value that contain\n non-printable ASCII chars (non-latin, accents, etc..). [iss #8]\n * Degrade gracefully if for some reason `location.hash` isn't available, will\n dispatch the `changed` signal at each `hasher.setHash()` and application\n can still work, it just won't generate a new history record.\n * Doesn't rely on callbacks so you can add as many listeners as you want and\n since it uses [JS-Signals](http://millermedeiros.github.com/js-signals/)\n for the event system it also provides many advanced featured that wouldn't\n be available through a simple callback system, like disabling the dispatch\n of an event (so you can change the hash value without affecting your app\n state), removing all the listeners at once, dispose objects, etc...\n * Option to start/stop pooling/listening for changes on the hash whenever you\n want giving more control over how you app is supposed to work.\n * Available as an AMD module which can be easily integrated into other\n projects without polluting the global scope or affecting you aplication\n structure.\n * Isn't a plugin for a large JS library/framework (so you can use it with\n *any* library).\n * Can be easily integrated into a Router like\n [crossroads.js](http://millermedeiros.github.com/crossroads.js/).\n * Sometimes regular URLs doesn't make any sense, specially when you *can't*\n provide a fallback to all of them or when you just want to save the state of\n the application and that change wouldn't make sense on a full page reload\n (scrolling through the same page, interactive slideshow, etc..), also some\n content may not need to be indexed by search engines (although you can use\n *hashbangs* to make [Ajax content crawlable](http://code.google.com/web/ajaxcrawling/docs/getting-started.html)...).\n **Each scenario requires a different approach, be pragmatic.**\n * Clean API.\n\n\n\n## Documentation ##\n\nDocumentation can be found inside the `dist/docs` folder or at [http://millermedeiros.github.com/Hasher/docs/](http://millermedeiros.github.com/Hasher/docs/).\n\n\n\n## Unit Tests ##\n\nHasher is *usually* tested on IE (6,7,8,9), FF (3.6, 4.0, 5.0+ - mac/pc),\nChrome (latest stable - mac/pc), Safari Mac (4.3, 5.0) and Opera (latest - mac/pc).\n\nYou can also run the test by yourself at [http://millermedeiros.github.com/Hasher/test/unit.html](http://millermedeiros.github.com/Hasher/test/unit.html)\n\n\n\n## Repository Structure ##\n\n### Folder Structure ###\n\n dev -> development files\n |- build -> files used on the build process\n |- lib -> 3rd-party libraries\n |- src -> source files\n |- tests -> unit tests\n dist -> distribution files\n |- docs -> documentation\n |- js -> javascript files\n\n### Branches ###\n\n master -> always contain code from the latest stable version\n release-** -> code canditate for the next stable version (alpha/beta)\n dev -> main development branch (nightly)\n gh-pages -> project page\n **other** -> features/hotfixes/experimental, probably non-stable code\n\n\n\n## Distribution Files ##\n\nFiles inside `dist/js` folder.\n\n * hasher.js : Uncompressed source code with comments. Works as a plain script\n or can be loaded by an AMD loader like [RequireJS](http://requirejs.org/)\n without generating any global variables.\n * hasher.min.js : Compressed code.\n\nDocumentation is inside the `dist/docs` folder.\n\n\n\n## Building your own ##\n\nThis project uses [Apache Ant](http://ant.apache.org/) for the build process. If for some reason you need to build a custom version install Ant and run:\n\n ant compile\n\nThis will delete all JS files inside the `dist` folder, merge/update/compress source files and copy the output to the `dist` folder.\n\n ant deploy\n\nThis will delete all files inside *dist* folder, is runs `ant compile` and generate documentation files.\n\n**IMPORTANT:** `dist` folder always contain the latest version, regular users should **not** need to run build task.\n\n\n\n## License ##\n\nReleased under the [MIT license](http://www.opensource.org/licenses/mit-license.php).\n\n\n\n## Important ##\n\n - Weird case scenarios like calling methods from inside (i)frame, wrong doctype,\n plugins, 3rd party code, etc, **MAY** prevent script from working properly.\n - Hasher was designed on a way that it will still dispatch the\n `changed` signal even if it can't update the browser `location.hash`, so\n application should keep working even if back/prev buttons doesn't work as\n expected.\n - Consider using the new [HTML5 history API](http://robertnyman.com/2011/08/03/html5-history-api-and-improving-end-user-experience/)\n if normal URLs would make sense on the kind of site/application you are building and\n you have static fallbacks for all of them (in some cases that may not be\n possible or even a good option). [History.js](https://github.com/balupton/history.js)\n is probably the most used *polyfill* for the History API, check it out.\n\n\n© [Miller Medeiros](http://www.millermedeiros.com)\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/millermedeiros/Hasher/issues" - }, - "_id": "hasher@1.2.0", - "dist": { - "shasum": "8b5341c3496124b0724ac8555fbb8ca363ebbb73", - "tarball": "https://registry.npmjs.org/hasher/-/hasher-1.2.0.tgz" - }, - "_from": "hasher@>=1.2.0 <1.3.0", - "_npmVersion": "1.3.11", - "_npmUser": { - "name": "millermedeiros", - "email": "miller@millermedeiros.com" - }, - "maintainers": [ - { - "name": "millermedeiros", - "email": "miller@millermedeiros.com" - } - ], - "directories": {}, - "_shasum": "8b5341c3496124b0724ac8555fbb8ca363ebbb73", - "_resolved": "https://registry.npmjs.org/hasher/-/hasher-1.2.0.tgz", - "homepage": "https://github.com/millermedeiros/Hasher#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/updateGhPages.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/updateGhPages.sh deleted file mode 100644 index e9bed125..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/hasher/updateGhPages.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -# update gh-pages branch with latest doc files and specs - -git checkout gh-pages - -# --- - -# purge old -rm -r docs/ -rm test/01.js test/hasher.js test/signals.js - -# copy new -git checkout master dist -git checkout master dev - -# docs -mv dist/docs . - -# tests -mv dev/lib/signals.js test/signals.js -mv dev/tests/unit/01.js test/01.js -mv dist/js/hasher.js test/hasher.js - -# cleanup -rm -r dev/ -rm -r dist/ - -# ---- - -# commit -git add -A -git commit -git checkout master diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/.npmignore deleted file mode 100644 index b22a3d97..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -.git* -.DS_Store diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/.travis.yml deleted file mode 100644 index 2ca91f28..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.10" - - "0.8" \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/LICENSE-MIT b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/LICENSE-MIT deleted file mode 100644 index 9af7d346..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/LICENSE-MIT +++ /dev/null @@ -1,17 +0,0 @@ -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 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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/README.md deleted file mode 100644 index d70d4d46..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/README.md +++ /dev/null @@ -1,265 +0,0 @@ -# Keen IO - NodeJS - -[![Build Status](https://travis-ci.org/keenlabs/KeenClient-Node.png?branch=master)](https://travis-ci.org/keenlabs/KeenClient-Node) - -Keen IO is an online service to collect, analyze, and visualize your data. - -## Getting Started - -Use npm to install! - -```javascript -npm install keen.io -``` - -## Examples - -### Initialization - -```javascript -var Keen = require('keen.io'); - -// Configure instance. Only projectId and writeKey are required to send data. -var client = Keen.configure({ - projectId: "", - writeKey: "", - readKey: "", - masterKey: "" -}); -``` - -You can also have multiple instances if you are connecting to multiple KeenIO accounts in the one project (probably edge case). - -```javascript -var Keen = require('keen.io'); - -// Configure instance with API Key -var client1 = Keen.configure({...}); -var client2 = Keen.configure({...}); -``` - -In the future there will be the ability to pass options into the initialisation such as batching inserts, etc. The structure of this hasn't been defined yet but will look something like the following. - -```javascript -var Keen = require('keen.io'); - -// Configure instance with API Key and options -var client = Keen.configure({ - projectId: "", - batchEventInserts: 30 -}); -``` - -### Send Events - -```javascript -var Keen = require("keen.io"); -var client = Keen.configure({ - projectId: "", - writeKey: "" -}); - -// send single event to Keen IO -client.addEvent("my event collection", {"property name": "property value"}, function(err, res) { - if (err) { - console.log("Oh no, an error!"); - } else { - console.log("Hooray, it worked!"); - } -}); - -// send multiple events to Keen IO -client.addEvents({ - "my first event collection": [{"property name": "property value"}, ...], - "my second event collection": [{"property name2": "property value 2"}] -}, function(err, res) { - if (err) { - console.log("Oh no, an error!"); - } else { - console.log("Hooray, it worked!"); - } -}); -``` - -### Generate Scoped Key - -```javascript -var Keen = require("keen.io"); -var apiKey = "YOUR_API_KEY"; -var scopedKey = Keen.encryptScopedKey(apiKey, { - "allowed_operations": ["read"], - "filters": [{ - "property_name": "account.id", - "operator": "eq", - "property_value": "123" - }] -}); -var client = Keen.configure({ - projectId: ""; - readKey: scopedKey -}); -``` - -## Queries - -Analyses are first-class citizens, complete with parameter getters and setters. - -The `.run` method is available on each configured client instance to run one or many analyses on a given project. Read more about running multiple analyses below. - -**Format:** - -```javascript -var your_analysis = new Keen.Query(analysisType, params); -``` - -### Example Usage - -```javascript -var Keen = require('keen.io'); -var client = Keen.configure({ - projectId: "your_project_id", - readKey: "your_read_key" -}); - -var count = new Keen.Query("count", { - event_collection: "pageviews", - group_by: "property", - timeframe: "this_7_days" -}); - -// Send query -client.run(count, function(err, response){ - if (err) return console.log(err); - // response.result -}); -``` - - -### Query Analysis Types - -All of the following analyses require an `event_collection` parameter. Some analyses have additional requirements, which are noted below. - -`count` - -`count_unique` - -`sum` requires a `target_property` parameter, where value is an integer - -`average` requires a `target_property` parameter, where value is an integer - -`maximum` requires a `target_property` parameter, where value is an integer - -`minimum` requires a `target_property` parameter, where value is an integer - -`select_unique` requires a `target_property` parameter - -`extraction` - -**A note about extractions:** supply an optional `email` attribute to be notified when your extraction is ready for download. If email is not specified, your extraction will be processed synchronously and your data will be returned as JSON. - -`Keen.Funnel` requires a `steps` attribute - -**A note about funnels:** funnels require a `steps` as an array of objects. Each step requires an `event_collection` and `actor_property` parameter. - -```javascript -var funfunfunnel = new Keen.Query('funnel', { - steps: [ - { - event_collection: "view_landing_page", - actor_property: "user.id" - }, - { - event_collection: "signed_up", - actor_property: "user.id" - }, - ], - timeframe: "this_6_months" -}); -``` - - -Learn more about funnels in the [API reference](https://keen.io/docs/data-analysis/funnels/#steps) - -### Run multiple analyses at once - -The `.run` method accepts an individual analysis or array of analyses. In the latter scenario, the callback is fired once all requests have completed without error. Query results are then returned in a correctly sequenced array. - -Query results are also attached to the query object itself, and can be referenced as `this.data`. - -```javascript -var avg_revenue = new Keen.Query("average", { - event_collection: "purchase", - target_property: "price", - group_by: "geo.country" -}); -var max_revenue = new Keen.Query("maximum", { - event_collection: "purchase", - target_property: "price", - group_by: "geo.country" -}); - -var mashup = client.run([avg_revenue, max_revenue], function(err, res){ - if (err) return console.log(err); - // res[0].result or this.data[0] (avg_revenue) - // res[1].result or this.data[1] (max_revenue) -}); -``` - - -### Get/Set Parameters and Refresh Queries - -```javascript -// Based on previous example - -// Update parameters -avg_revenue.set({ timeframe: "this_21_days" }); -max_revenue.set({ timeframe: "this_21_days" }); - -// Re-run the query -mashup.refresh(); -``` - - - -## Future Updates - -Future module updates are planned to introduce the remaining API calls. You can see some sketches for these in the [examples directory](https://github.com/keenlabs/KeenClient-Node/blob/master/examples/). Also, as mentioned above, specifying options when creating an instance to configure the behaviour of the instance (ie, batching event submissions). - -## Contributing - -This is an open source project and we love involvement from the community! Hit us up with pull requests and issues. - -The aim is to build up this module to completely represent the API provided by Keen IO, which is quite extensive. The more contributions the better! - -## Further Reading - -[Keen IO - Website](https://keen.io/) - -[Keen IO - API Technical Reference](https://keen.io/docs/api/reference/) - -## Release History - -### 0.0.4 - -- Update dependencies. - -### 0.0.3 - -- Support generating Scoped Keys. - -### 0.0.2 - -- Change error for blank write key. - -### 0.0.1 - -- Add write/read keys. -- Reworked interface - not backwards compatible with 0.0.0! - -### 0.0.0 - -- First release. - -## License - -Licensed under the MIT license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/collections.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/collections.js deleted file mode 100644 index 1ef47674..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/collections.js +++ /dev/null @@ -1,20 +0,0 @@ -var keen = require('../index.js'); - -var keen = keen.configure({ - projectId: "", - writeKey: "", - readKey: "", - masterKey: "" -}); -var collection = ''; - -// Get collection schema -keen.collections.view(projectId, collection, function(err, res) { - console.log('collection.view', err, res); -}); - -// Removes collection -// This is irreversible and will only work for collections under 10k events. -keen.collections.remove(projectId, collection, function(err, res) { - console.log('collection.remove', err, res); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/custom.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/custom.js deleted file mode 100644 index 105ac096..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/custom.js +++ /dev/null @@ -1,18 +0,0 @@ -var keen = require("../index.js"); - -var keen = keen.configure({ - projectId: "", - writeKey: "", - readKey: "", - masterKey: "" -}); -var args = { - event_collection: "", - target_property: "" -}; - -keen.request("get", "read", "queries/count", args, function(err, res) { - if (err) return console.error(err); - - console.dir(res); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/events.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/events.js deleted file mode 100644 index 593c5d08..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/events.js +++ /dev/null @@ -1,38 +0,0 @@ -var keen = require('../index.js'); - -var keen = keen.configure({ - projectId: "", - writeKey: "" -}); - -// Construct same events -var events = [ - { - collection: 'test', - data: { - name: 'Fred', - age: 30 - }, - keen: { - timestamp: new Date(0) // overwrite the recorded keen timestamp - } - }, - { - collection: 'test', - data: { - name: 'John', - age: 40 - } - }, - { - collection: 'test2', - data: { - name: 'John Smith', - age: 20 - } - } -]; -// Send events to project -keen.addEvents(events, function(err, res) { - console.log('events.insert', err, res); -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/projects.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/projects.js deleted file mode 100644 index 9a5ea056..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/projects.js +++ /dev/null @@ -1,16 +0,0 @@ -var keen = require('../index.js'); - -var keen = keen.configure({ - projectId: "" - masterKey: "" -}); - -// Get projects list -keen.projects.list(function(err, projects) { - console.log('projects.list', err, projects); -}); - -// Get project info -keen.projects.view(projectId, function(err, res) { - console.log('projects.view', err, res); -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/properties.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/properties.js deleted file mode 100644 index 02261952..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/properties.js +++ /dev/null @@ -1,18 +0,0 @@ -var keen = require('../index.js'); - -var keen = keen.configure({ - projectId: "", - masterKey: "" -}); -var collection = ''; -var property = ''; - -// View a single property info -api.properties.view(projectId, collection, property, function(err, res) { - console.log('properties.view', err, res); -}); - -// Removes property for all events in collection -api.properties.remove(projectId, collection, property, function(err, res) { - console.log('properties.remove', err, res); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/queries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/queries.js deleted file mode 100644 index 1a49a348..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/examples/queries.js +++ /dev/null @@ -1,38 +0,0 @@ -var keen = require('../index.js'); - -var keen = keen.configure({ - projectId: "", - readKey: "" -}); -var projectId = ''; -var collection = ''; -var property = ''; - -/* -// Not Yet Implemented - -keen.queries.list(projectId, function(err, res) { - console.log('queries.list', err, res); -}); - -keen.queries.perform(projectId, collection, 'count', {}, function(err, res) { - console.log('queries.perform', err, res); -}); - -keen.queries.extraction(projectId, collection, {}, function(err, res) { - console.log('queries.extraction', err, res); -}); - -keen.queries.funnel(); - -keen.queries.saved.list(); - -keen.queries.saved.view(); - -keen.queries.saved.insert(); - -keen.queries.saved.remove(); - -keen.queries.saved.results(); - -*/ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/index.js deleted file mode 100644 index 9ed65ef1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/index.js +++ /dev/null @@ -1,179 +0,0 @@ -var _ = require('underscore'); -var crypto = require('crypto'); - -var KeenRequests = require('./lib/requests'); -var KeenQuery = require('./lib/query'); - -function KeenApi(config) { - if (!config) { - throw new Error("The 'config' parameter must be specified and must be a JS object."); - } - if (!config.projectId) { - throw new Error("The 'config' object must contain a 'projectId'."); - } - - this.projectId = config.projectId; - this.writeKey = config.writeKey; - this.readKey = config.readKey; - this.masterKey = config.masterKey; - this.baseUrl = config.baseUrl || 'https://api.keen.io/'; - this.apiVersion = config.apiVersion || '3.0'; - - var baseUrl = this.baseUrl; - var apiVersion = this.apiVersion; - var self = this; - - // Public Methods - - this.projects = { - list: function(callback) { - KeenRequests.get.call(self, self.masterKey, '/projects', null, callback); - }, - view: function(projectId, callback) { - KeenRequests.get.call(self, self.masterKey, '/projects/' + projectId, null, callback); - } - }; - - this.events = { - list: function(projectId, callback) { - KeenRequests.get.call(self, self.masterKey, '/projects/' + projectId + '/events', null, callback); - }, - insert: function(projectId, events, callback) { - events = events || []; - var data = {}; - events.forEach(function(event) { - var collection = event.collection; - if (typeof data[collection] == 'undefined') { - data[collection] = []; - } - var item = (event.data || {}); - if (typeof event.keen == 'object') { - item.keen = event.keen; - } - data[collection].push(item); - }); - KeenRequests.post.call(self, self.writeKey, '/projects/' + projectId + '/events', data, callback); - } - }; - - this.properties = { - view: function(projectId, collection, property, callback) { - KeenRequests.get.call(self, self.masterKey, '/projects/' + projectId + '/events/' + collection + '/properties/' + property, null, callback); - }, - remove: function(projectId, collection, property, callback) { - KeenRequests.del.call(self, self.masterKey, '/projects/' + projectId + '/events/' + collection + '/properties/' + property, callback); - } - }; - - this.collections = { - view: function(projectId, collection, callback) { - KeenRequests.get.call(self, self.masterKey, '/projects/' + projectId + '/events/' + collection, null, callback); - }, - remove: function(projectId, collection, callback) { - KeenRequests.del.call(self, self.masterKey, '/projects/' + projectId + '/events/' + collection, callback); - } - }; - - this.addEvent = function(eventCollection, event, callback) { - if (!this.writeKey) { - var errorMessage = "You must specify a non-null, non-empty 'writeKey' in your 'config' object when calling keen.configure()!"; - var error = new Error(errorMessage); - if (callback) { - callback(error); - } else { - throw error; - } - return; - } - - KeenRequests.post.call(self, this.writeKey, "/projects/" + this.projectId + "/events/" + eventCollection, event, callback); - }; - - this.request = function(method, keyType, path, params, callback) { - method = typeof method === 'string' && method.toLowerCase(); - keyType += 'Key'; - callback = callback || (typeof params === 'function') && params; - - if (typeof path === 'string') { - path = '/projects/' + this.projectId + '/' + path.replace(/^\//,''); - } else { - throw new Error('\'path\' must be a string.'); - } - - if ( ! KeenRequests.hasOwnProperty(method)) { - throw new Error('Method must be of type: GET/POST/DEL'); - } - - if (!this.hasOwnProperty(keyType)) { - throw new Error('Key must be of type: master/write/read'); - } - - if (!this[keyType]) { - throw new Error('You must specify a nun-null, non-empty \'' + keyType + '\' in your config object.'); - } - - if(method === 'post' || method === 'get') { - return KeenRequests[method].call(self, this[keyType], path, params, callback); - } - - KeenRequests[method].call(self, this[keyType], path, callback); - }; - - this.addEvents = function(events, callback) { - if (!this.writeKey) { - var errorMessage = "You must specify a non-null, non-empty 'writeKey' in your 'config' object when calling keen.configure()!"; - var error = new Error(errorMessage); - if (callback) { - callback(error); - } else { - throw error; - } - return; - } - - KeenRequests.post.call(self, this.writeKey, "/projects/" + this.projectId + "/events", events, callback); - }; - - this.queries = { - extraction: function(projectId, collection, params, callback){ - var requestParams = _.extend({}, params, { 'event_collection': collection }); - var path = '/projects/' + projectId + '/queries/extraction'; - KeenRequests.get.call(self, self.readKey, path, requestParams, callback); - } - }; - - this.run = KeenQuery.client.run; -} - -function configure(config) { - return new KeenApi(config); -} - -function encryptScopedKey(apiKey, options) { - var iv = crypto.randomBytes(16); - var cipher = crypto.createCipheriv("aes-256-cbc", apiKey, iv); - var jsonOptions = JSON.stringify(options); - var encryptOutput1 = cipher.update(jsonOptions, "utf8", "hex"); - var encryptOutput2 = cipher.final("hex"); - var ivPlusEncrypted = iv.toString("hex") + encryptOutput1 + encryptOutput2; - return ivPlusEncrypted; -} - -function decryptScopedKey(apiKey, scopedKey) { - var hexedIv = scopedKey.substring(0, 32); - var hexedCipherText = scopedKey.substring(32, scopedKey.length); - var iv = new Buffer(hexedIv, "hex"); - var cipherText = new Buffer(hexedCipherText, "hex"); - var decipher = crypto.createDecipheriv("aes-256-cbc", apiKey, iv); - var decryptOutput1 = decipher.update(cipherText); - var decryptOutput2 = decipher.final(); - var decrypted = decryptOutput1 + decryptOutput2; - return JSON.parse(decrypted); -} - -module.exports = { - configure: configure, - encryptScopedKey: encryptScopedKey, - decryptScopedKey: decryptScopedKey, - Query: KeenQuery.Query -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/lib/query.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/lib/query.js deleted file mode 100644 index 2c160e5e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/lib/query.js +++ /dev/null @@ -1,134 +0,0 @@ -var _ = require('underscore'); -var KeenRequests = require('./requests'); - -/*! -* ----------------- -* Keen IO Query JS -* ----------------- -*/ - -var Keen = {}; - -// ------------------------------ -// Keen.Request -// ------------------------------ - -Keen.Request = function(){ - this.data = {}; - this.configure.apply(this, arguments); -} - -Keen.Request.prototype.configure = function(client, queries, callback){ - this.client = client; - this.queries = queries; - this.callback = callback; - this.run(); - return this; -}; - -Keen.Request.prototype.run = function(){ - var self = this, - completions = 0, - response = []; - - var handleResponse = function(err, res){ - if (err && self.callback) { - return self.callback(err, null); - } - response[arguments[2]] = res, completions++; - if (completions == self.queries.length) { - self.data = (self.queries.length == 1) ? response[0] : response; - if (self.callback) self.callback(null, self.data); - } - }; - - _.each(self.queries, function(query, index){ - var data, path = '/projects/' + self.client.projectId; - var callbackSequencer = function(err, res){ - handleResponse(err, res, index); - }; - - if (query instanceof Keen.Query) { - path += query.path; - data = query.params || {}; - } - /* TODO: Test and deploy this - else if (_.isString(query)) { - path += '/saved_queries/' + query + '/result'; - data = { api_key: self.client.readKey }; - }*/ - else { - throw new Error('Query #' + (index+1) +' is not valid'); - - } - - KeenRequests.get.call(self.client, self.client.readKey, path, data, callbackSequencer); - }); - - return self; -}; - - -// ------------------------------ -// Keen.Query -// ------------------------------ - -Keen.Query = function(){ - this.configure.apply(this, arguments); -}; - -Keen.Query.prototype.configure = function(analysisType, params){ - //if (!collection) throw new Error('Event Collection name is required'); - var self = this; - self.path = '/queries/' + analysisType; - self.params = {}; - self.set(params); - return self; -}; - -Keen.Query.prototype.get = function(attribute) { - if (this.params) { - return this.params[attribute] || null; - } -}; - -Keen.Query.prototype.set = function(attributes) { - var self = this; - _.each(attributes, function(v, k){ - var key = k, value = v; - if (k.match(new RegExp("[A-Z]"))) { - key = k.replace(/([A-Z])/g, function($1) { return "_"+$1.toLowerCase(); }); - } - self.params[key] = value; - - if (_.isArray(value)) { - _.each(value, function(dv, index){ - if (_.isObject(dv)) { - _.each(dv, function(deepValue, deepKey){ - if (deepKey.match(new RegExp("[A-Z]"))) { - var _deepKey = deepKey.replace(/([A-Z])/g, function($1) { return "_"+$1.toLowerCase(); }); - delete self.params[key][index][deepKey]; - self.params[key][index][_deepKey] = deepValue; - } - }); - } - }); - } - - }); - return self; -}; - - -// Export Methods -// ------------------------------ -module.exports = { - client: { - run: function(query, callback){ - if (!query) throw new Error('At least one query is required'); - var queries = (_.isArray(query)) ? query : [query]; - return new Keen.Request(this, queries, callback); - } - }, - Query: Keen.Query -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/lib/requests.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/lib/requests.js deleted file mode 100644 index fb8fa5fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/lib/requests.js +++ /dev/null @@ -1,65 +0,0 @@ -var rest = require('superagent'); -var crypto = require('crypto'); - -// Handle logic of processing response, including error messages -// The error handling should be strengthened over time to be more -// meaningful and robust -// --------------------------------------------------------------- - -function processResponse(err, res, callback) { - callback = callback || function() {}; - - if (res && !res.ok && !err) { - var is_err = res.body && res.body.error_code; - err = new Error(is_err ? res.body.message : 'Unknown error occurred'); - err.code = is_err ? res.body.error_code : 'UnknownError'; - } - - if (err) return callback(err); - return callback(null, res.body); -} - -function buildQueryString(params){ - var query = []; - for (var key in params) { - if (params[key]) { - var value = params[key]; - if (Object.prototype.toString.call(value) !== '[object String]') { - value = JSON.stringify(value); - } - value = encodeURIComponent(value); - query.push(key + '=' + value); - } - } - return "?" + query.join('&'); -} - -module.exports = { - get: function(apiKey, path, data, callback) { - rest - .get(this.baseUrl + this.apiVersion + path + buildQueryString(data)) - .set('Authorization', apiKey) - .end(function(err, res) { - processResponse(err, res, callback); - }); - }, - post: function(apiKey, path, data, callback) { - rest - .post(this.baseUrl + this.apiVersion + path) - .set('Authorization', apiKey) - .set('Content-Type', 'application/json') - .send(data || {}) - .end(function(err, res) { - processResponse(err, res, callback); - }); - }, - del: function(apiKey, path, callback) { - rest - .del(this.baseUrl + this.apiVersion + path) - .set('Authorization', apiKey) - .set('Content-Length', 0) - .end(function(err, res) { - processResponse(err, res, callback); - }); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/LICENSE deleted file mode 100644 index 3acf9083..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative -Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/README.md deleted file mode 100644 index c2ba2590..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/README.md +++ /dev/null @@ -1,22 +0,0 @@ - __ - /\ \ __ - __ __ ___ \_\ \ __ _ __ ____ ___ ___ _ __ __ /\_\ ____ - /\ \/\ \ /' _ `\ /'_ \ /'__`\/\ __\/ ,__\ / ___\ / __`\/\ __\/'__`\ \/\ \ /',__\ - \ \ \_\ \/\ \/\ \/\ \ \ \/\ __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\ __/ __ \ \ \/\__, `\ - \ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/ - \/___/ \/_/\/_/\/__,_ /\/____/ \/_/ \/___/ \/____/\/___/ \/_/ \/____/\/_//\ \_\ \/___/ - \ \____/ - \/___/ - -Underscore.js is a utility-belt library for JavaScript that provides -support for the usual functional suspects (each, map, reduce, filter...) -without extending any core JavaScript objects. - -For Docs, License, Tests, and pre-packed downloads, see: -http://underscorejs.org - -Underscore is an open-sourced component of DocumentCloud: -https://github.com/documentcloud - -Many thanks to our contributors: -https://github.com/jashkenas/underscore/contributors diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/package.json deleted file mode 100644 index f43c2222..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/package.json +++ /dev/null @@ -1,63 +0,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.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": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz" - }, - "_from": "underscore@>=1.5.2 <1.6.0", - "_npmVersion": "1.3.5", - "_npmUser": { - "name": "jashkenas", - "email": "jashkenas@gmail.com" - }, - "maintainers": [ - { - "name": "jashkenas", - "email": "jashkenas@gmail.com" - } - ], - "directories": {}, - "_shasum": "1335c5e4f5e6d33bbb4b006ba8c86a00f556de08", - "_resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/underscore-min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/underscore-min.js deleted file mode 100644 index d22f881b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/underscore-min.js +++ /dev/null @@ -1,6 +0,0 @@ -// Underscore.js 1.5.2 -// http://underscorejs.org -// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors -// Underscore may be freely distributed under the MIT license. -(function(){var n=this,t=n._,r={},e=Array.prototype,u=Object.prototype,i=Function.prototype,a=e.push,o=e.slice,c=e.concat,l=u.toString,f=u.hasOwnProperty,s=e.forEach,p=e.map,h=e.reduce,v=e.reduceRight,g=e.filter,d=e.every,m=e.some,y=e.indexOf,b=e.lastIndexOf,x=Array.isArray,w=Object.keys,_=i.bind,j=function(n){return n instanceof j?n:this instanceof j?(this._wrapped=n,void 0):new j(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=j),exports._=j):n._=j,j.VERSION="1.5.2";var A=j.each=j.forEach=function(n,t,e){if(null!=n)if(s&&n.forEach===s)n.forEach(t,e);else if(n.length===+n.length){for(var u=0,i=n.length;i>u;u++)if(t.call(e,n[u],u,n)===r)return}else for(var a=j.keys(n),u=0,i=a.length;i>u;u++)if(t.call(e,n[a[u]],a[u],n)===r)return};j.map=j.collect=function(n,t,r){var e=[];return null==n?e:p&&n.map===p?n.map(t,r):(A(n,function(n,u,i){e.push(t.call(r,n,u,i))}),e)};var E="Reduce of empty array with no initial value";j.reduce=j.foldl=j.inject=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),h&&n.reduce===h)return e&&(t=j.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(A(n,function(n,i,a){u?r=t.call(e,r,n,i,a):(r=n,u=!0)}),!u)throw new TypeError(E);return r},j.reduceRight=j.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),v&&n.reduceRight===v)return e&&(t=j.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var a=j.keys(n);i=a.length}if(A(n,function(o,c,l){c=a?a[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(E);return r},j.find=j.detect=function(n,t,r){var e;return O(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},j.filter=j.select=function(n,t,r){var e=[];return null==n?e:g&&n.filter===g?n.filter(t,r):(A(n,function(n,u,i){t.call(r,n,u,i)&&e.push(n)}),e)},j.reject=function(n,t,r){return j.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},j.every=j.all=function(n,t,e){t||(t=j.identity);var u=!0;return null==n?u:d&&n.every===d?n.every(t,e):(A(n,function(n,i,a){return(u=u&&t.call(e,n,i,a))?void 0:r}),!!u)};var O=j.some=j.any=function(n,t,e){t||(t=j.identity);var u=!1;return null==n?u:m&&n.some===m?n.some(t,e):(A(n,function(n,i,a){return u||(u=t.call(e,n,i,a))?r:void 0}),!!u)};j.contains=j.include=function(n,t){return null==n?!1:y&&n.indexOf===y?n.indexOf(t)!=-1:O(n,function(n){return n===t})},j.invoke=function(n,t){var r=o.call(arguments,2),e=j.isFunction(t);return j.map(n,function(n){return(e?t:n[t]).apply(n,r)})},j.pluck=function(n,t){return j.map(n,function(n){return n[t]})},j.where=function(n,t,r){return j.isEmpty(t)?r?void 0:[]:j[r?"find":"filter"](n,function(n){for(var r in t)if(t[r]!==n[r])return!1;return!0})},j.findWhere=function(n,t){return j.where(n,t,!0)},j.max=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.max.apply(Math,n);if(!t&&j.isEmpty(n))return-1/0;var e={computed:-1/0,value:-1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;a>e.computed&&(e={value:n,computed:a})}),e.value},j.min=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.min.apply(Math,n);if(!t&&j.isEmpty(n))return 1/0;var e={computed:1/0,value:1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;ae||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var F=function(n){return function(t,r,e){var u={},i=null==r?j.identity:k(r);return A(t,function(r,a){var o=i.call(e,r,a,t);n(u,o,r)}),u}};j.groupBy=F(function(n,t,r){(j.has(n,t)?n[t]:n[t]=[]).push(r)}),j.indexBy=F(function(n,t,r){n[t]=r}),j.countBy=F(function(n,t){j.has(n,t)?n[t]++:n[t]=1}),j.sortedIndex=function(n,t,r,e){r=null==r?j.identity:k(r);for(var u=r.call(e,t),i=0,a=n.length;a>i;){var o=i+a>>>1;r.call(e,n[o])=0})})},j.difference=function(n){var t=c.apply(e,o.call(arguments,1));return j.filter(n,function(n){return!j.contains(t,n)})},j.zip=function(){for(var n=j.max(j.pluck(arguments,"length").concat(0)),t=new Array(n),r=0;n>r;r++)t[r]=j.pluck(arguments,""+r);return t},j.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},j.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=j.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(y&&n.indexOf===y)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},j.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(b&&n.lastIndexOf===b)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},j.range=function(n,t,r){arguments.length<=1&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=new Array(e);e>u;)i[u++]=n,n+=r;return i};var R=function(){};j.bind=function(n,t){var r,e;if(_&&n.bind===_)return _.apply(n,o.call(arguments,1));if(!j.isFunction(n))throw new TypeError;return r=o.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(o.call(arguments)));R.prototype=n.prototype;var u=new R;R.prototype=null;var i=n.apply(u,r.concat(o.call(arguments)));return Object(i)===i?i:u}},j.partial=function(n){var t=o.call(arguments,1);return function(){return n.apply(this,t.concat(o.call(arguments)))}},j.bindAll=function(n){var t=o.call(arguments,1);if(0===t.length)throw new Error("bindAll must be passed function names");return A(t,function(t){n[t]=j.bind(n[t],n)}),n},j.memoize=function(n,t){var r={};return t||(t=j.identity),function(){var e=t.apply(this,arguments);return j.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},j.delay=function(n,t){var r=o.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},j.defer=function(n){return j.delay.apply(j,[n,1].concat(o.call(arguments,1)))},j.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var c=function(){o=r.leading===!1?0:new Date,a=null,i=n.apply(e,u)};return function(){var l=new Date;o||r.leading!==!1||(o=l);var f=t-(l-o);return e=this,u=arguments,0>=f?(clearTimeout(a),a=null,o=l,i=n.apply(e,u)):a||r.trailing===!1||(a=setTimeout(c,f)),i}},j.debounce=function(n,t,r){var e,u,i,a,o;return function(){i=this,u=arguments,a=new Date;var c=function(){var l=new Date-a;t>l?e=setTimeout(c,t-l):(e=null,r||(o=n.apply(i,u)))},l=r&&!e;return e||(e=setTimeout(c,t)),l&&(o=n.apply(i,u)),o}},j.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},j.wrap=function(n,t){return function(){var r=[n];return a.apply(r,arguments),t.apply(this,r)}},j.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},j.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},j.keys=w||function(n){if(n!==Object(n))throw new TypeError("Invalid object");var t=[];for(var r in n)j.has(n,r)&&t.push(r);return t},j.values=function(n){for(var t=j.keys(n),r=t.length,e=new Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},j.pairs=function(n){for(var t=j.keys(n),r=t.length,e=new Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},j.invert=function(n){for(var t={},r=j.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},j.functions=j.methods=function(n){var t=[];for(var r in n)j.isFunction(n[r])&&t.push(r);return t.sort()},j.extend=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},j.pick=function(n){var t={},r=c.apply(e,o.call(arguments,1));return A(r,function(r){r in n&&(t[r]=n[r])}),t},j.omit=function(n){var t={},r=c.apply(e,o.call(arguments,1));for(var u in n)j.contains(r,u)||(t[u]=n[u]);return t},j.defaults=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]===void 0&&(n[r]=t[r])}),n},j.clone=function(n){return j.isObject(n)?j.isArray(n)?n.slice():j.extend({},n):n},j.tap=function(n,t){return t(n),n};var S=function(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof j&&(n=n._wrapped),t instanceof j&&(t=t._wrapped);var u=l.call(n);if(u!=l.call(t))return!1;switch(u){case"[object String]":return n==String(t);case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;var a=n.constructor,o=t.constructor;if(a!==o&&!(j.isFunction(a)&&a instanceof a&&j.isFunction(o)&&o instanceof o))return!1;r.push(n),e.push(t);var c=0,f=!0;if("[object Array]"==u){if(c=n.length,f=c==t.length)for(;c--&&(f=S(n[c],t[c],r,e)););}else{for(var s in n)if(j.has(n,s)&&(c++,!(f=j.has(t,s)&&S(n[s],t[s],r,e))))break;if(f){for(s in t)if(j.has(t,s)&&!c--)break;f=!c}}return r.pop(),e.pop(),f};j.isEqual=function(n,t){return S(n,t,[],[])},j.isEmpty=function(n){if(null==n)return!0;if(j.isArray(n)||j.isString(n))return 0===n.length;for(var t in n)if(j.has(n,t))return!1;return!0},j.isElement=function(n){return!(!n||1!==n.nodeType)},j.isArray=x||function(n){return"[object Array]"==l.call(n)},j.isObject=function(n){return n===Object(n)},A(["Arguments","Function","String","Number","Date","RegExp"],function(n){j["is"+n]=function(t){return l.call(t)=="[object "+n+"]"}}),j.isArguments(arguments)||(j.isArguments=function(n){return!(!n||!j.has(n,"callee"))}),"function"!=typeof/./&&(j.isFunction=function(n){return"function"==typeof n}),j.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},j.isNaN=function(n){return j.isNumber(n)&&n!=+n},j.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==l.call(n)},j.isNull=function(n){return null===n},j.isUndefined=function(n){return n===void 0},j.has=function(n,t){return f.call(n,t)},j.noConflict=function(){return n._=t,this},j.identity=function(n){return n},j.times=function(n,t,r){for(var e=Array(Math.max(0,n)),u=0;n>u;u++)e[u]=t.call(r,u);return e},j.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};var I={escape:{"&":"&","<":"<",">":">",'"':""","'":"'"}};I.unescape=j.invert(I.escape);var T={escape:new RegExp("["+j.keys(I.escape).join("")+"]","g"),unescape:new RegExp("("+j.keys(I.unescape).join("|")+")","g")};j.each(["escape","unescape"],function(n){j[n]=function(t){return null==t?"":(""+t).replace(T[n],function(t){return I[n][t]})}}),j.result=function(n,t){if(null==n)return void 0;var r=n[t];return j.isFunction(r)?r.call(n):r},j.mixin=function(n){A(j.functions(n),function(t){var r=j[t]=n[t];j.prototype[t]=function(){var n=[this._wrapped];return a.apply(n,arguments),z.call(this,r.apply(j,n))}})};var N=0;j.uniqueId=function(n){var t=++N+"";return n?n+t:t},j.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var q=/(.)^/,B={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\t|\u2028|\u2029/g;j.template=function(n,t,r){var e;r=j.defaults({},r,j.templateSettings);var u=new RegExp([(r.escape||q).source,(r.interpolate||q).source,(r.evaluate||q).source].join("|")+"|$","g"),i=0,a="__p+='";n.replace(u,function(t,r,e,u,o){return a+=n.slice(i,o).replace(D,function(n){return"\\"+B[n]}),r&&(a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(a+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(a+="';\n"+u+"\n__p+='"),i=o+t.length,t}),a+="';\n",r.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{e=new Function(r.variable||"obj","_",a)}catch(o){throw o.source=a,o}if(t)return e(t,j);var c=function(n){return e.call(this,n,j)};return c.source="function("+(r.variable||"obj")+"){\n"+a+"}",c},j.chain=function(n){return j(n).chain()};var z=function(n){return this._chain?j(n).chain():n};j.mixin(j),A(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=e[n];j.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],z.call(this,r)}}),A(["concat","join","slice"],function(n){var t=e[n];j.prototype[n]=function(){return z.call(this,t.apply(this._wrapped,arguments))}}),j.extend(j.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this); -//# sourceMappingURL=underscore-min.map \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/underscore.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/underscore.js deleted file mode 100644 index b50115df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/node_modules/underscore/underscore.js +++ /dev/null @@ -1,1276 +0,0 @@ -// Underscore.js 1.5.2 -// http://underscorejs.org -// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors -// Underscore may be freely distributed under the MIT license. - -(function() { - - // Baseline setup - // -------------- - - // Establish the root object, `window` in the browser, or `exports` on the server. - var root = this; - - // Save the previous value of the `_` variable. - var previousUnderscore = root._; - - // Establish the object that gets returned to break out of a loop iteration. - var breaker = {}; - - // Save bytes in the minified (but not gzipped) version: - var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; - - // Create quick reference variables for speed access to core prototypes. - var - push = ArrayProto.push, - slice = ArrayProto.slice, - concat = ArrayProto.concat, - toString = ObjProto.toString, - hasOwnProperty = ObjProto.hasOwnProperty; - - // All **ECMAScript 5** native function implementations that we hope to use - // are declared here. - var - nativeForEach = ArrayProto.forEach, - nativeMap = ArrayProto.map, - nativeReduce = ArrayProto.reduce, - nativeReduceRight = ArrayProto.reduceRight, - nativeFilter = ArrayProto.filter, - nativeEvery = ArrayProto.every, - nativeSome = ArrayProto.some, - nativeIndexOf = ArrayProto.indexOf, - nativeLastIndexOf = ArrayProto.lastIndexOf, - nativeIsArray = Array.isArray, - nativeKeys = Object.keys, - nativeBind = FuncProto.bind; - - // Create a safe reference to the Underscore object for use below. - var _ = function(obj) { - if (obj instanceof _) return obj; - if (!(this instanceof _)) return new _(obj); - this._wrapped = obj; - }; - - // Export the Underscore object for **Node.js**, with - // backwards-compatibility for the old `require()` API. If we're in - // the browser, add `_` as a global object via a string identifier, - // for Closure Compiler "advanced" mode. - if (typeof exports !== 'undefined') { - if (typeof module !== 'undefined' && module.exports) { - exports = module.exports = _; - } - exports._ = _; - } else { - root._ = _; - } - - // Current version. - _.VERSION = '1.5.2'; - - // Collection Functions - // -------------------- - - // The cornerstone, an `each` implementation, aka `forEach`. - // Handles objects with the built-in `forEach`, arrays, and raw objects. - // Delegates to **ECMAScript 5**'s native `forEach` if available. - var each = _.each = _.forEach = function(obj, iterator, context) { - if (obj == null) return; - if (nativeForEach && obj.forEach === nativeForEach) { - obj.forEach(iterator, context); - } else if (obj.length === +obj.length) { - for (var i = 0, length = obj.length; i < length; i++) { - if (iterator.call(context, obj[i], i, obj) === breaker) return; - } - } else { - var keys = _.keys(obj); - for (var i = 0, length = keys.length; i < length; i++) { - if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return; - } - } - }; - - // Return the results of applying the iterator to each element. - // Delegates to **ECMAScript 5**'s native `map` if available. - _.map = _.collect = function(obj, iterator, context) { - var results = []; - if (obj == null) return results; - if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); - each(obj, function(value, index, list) { - results.push(iterator.call(context, value, index, list)); - }); - return results; - }; - - var reduceError = 'Reduce of empty array with no initial value'; - - // **Reduce** builds up a single result from a list of values, aka `inject`, - // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available. - _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) { - var initial = arguments.length > 2; - if (obj == null) obj = []; - if (nativeReduce && obj.reduce === nativeReduce) { - if (context) iterator = _.bind(iterator, context); - return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator); - } - each(obj, function(value, index, list) { - if (!initial) { - memo = value; - initial = true; - } else { - memo = iterator.call(context, memo, value, index, list); - } - }); - if (!initial) throw new TypeError(reduceError); - return memo; - }; - - // The right-associative version of reduce, also known as `foldr`. - // Delegates to **ECMAScript 5**'s native `reduceRight` if available. - _.reduceRight = _.foldr = function(obj, iterator, memo, context) { - var initial = arguments.length > 2; - if (obj == null) obj = []; - if (nativeReduceRight && obj.reduceRight === nativeReduceRight) { - if (context) iterator = _.bind(iterator, context); - return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator); - } - var length = obj.length; - if (length !== +length) { - var keys = _.keys(obj); - length = keys.length; - } - each(obj, function(value, index, list) { - index = keys ? keys[--length] : --length; - if (!initial) { - memo = obj[index]; - initial = true; - } else { - memo = iterator.call(context, memo, obj[index], index, list); - } - }); - if (!initial) throw new TypeError(reduceError); - return memo; - }; - - // Return the first value which passes a truth test. Aliased as `detect`. - _.find = _.detect = function(obj, iterator, context) { - var result; - any(obj, function(value, index, list) { - if (iterator.call(context, value, index, list)) { - result = value; - return true; - } - }); - return result; - }; - - // Return all the elements that pass a truth test. - // Delegates to **ECMAScript 5**'s native `filter` if available. - // Aliased as `select`. - _.filter = _.select = function(obj, iterator, context) { - var results = []; - if (obj == null) return results; - if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context); - each(obj, function(value, index, list) { - if (iterator.call(context, value, index, list)) results.push(value); - }); - return results; - }; - - // Return all the elements for which a truth test fails. - _.reject = function(obj, iterator, context) { - return _.filter(obj, function(value, index, list) { - return !iterator.call(context, value, index, list); - }, context); - }; - - // Determine whether all of the elements match a truth test. - // Delegates to **ECMAScript 5**'s native `every` if available. - // Aliased as `all`. - _.every = _.all = function(obj, iterator, context) { - iterator || (iterator = _.identity); - var result = true; - if (obj == null) return result; - if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context); - each(obj, function(value, index, list) { - if (!(result = result && iterator.call(context, value, index, list))) return breaker; - }); - return !!result; - }; - - // Determine if at least one element in the object matches a truth test. - // Delegates to **ECMAScript 5**'s native `some` if available. - // Aliased as `any`. - var any = _.some = _.any = function(obj, iterator, context) { - iterator || (iterator = _.identity); - var result = false; - if (obj == null) return result; - if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context); - each(obj, function(value, index, list) { - if (result || (result = iterator.call(context, value, index, list))) return breaker; - }); - return !!result; - }; - - // Determine if the array or object contains a given value (using `===`). - // Aliased as `include`. - _.contains = _.include = function(obj, target) { - if (obj == null) return false; - if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1; - return any(obj, function(value) { - return value === target; - }); - }; - - // Invoke a method (with arguments) on every item in a collection. - _.invoke = function(obj, method) { - var args = slice.call(arguments, 2); - var isFunc = _.isFunction(method); - return _.map(obj, function(value) { - return (isFunc ? method : value[method]).apply(value, args); - }); - }; - - // Convenience version of a common use case of `map`: fetching a property. - _.pluck = function(obj, key) { - return _.map(obj, function(value){ return value[key]; }); - }; - - // Convenience version of a common use case of `filter`: selecting only objects - // containing specific `key:value` pairs. - _.where = function(obj, attrs, first) { - if (_.isEmpty(attrs)) return first ? void 0 : []; - return _[first ? 'find' : 'filter'](obj, function(value) { - for (var key in attrs) { - if (attrs[key] !== value[key]) return false; - } - return true; - }); - }; - - // Convenience version of a common use case of `find`: getting the first object - // containing specific `key:value` pairs. - _.findWhere = function(obj, attrs) { - return _.where(obj, attrs, true); - }; - - // Return the maximum element or (element-based computation). - // Can't optimize arrays of integers longer than 65,535 elements. - // See [WebKit Bug 80797](https://bugs.webkit.org/show_bug.cgi?id=80797) - _.max = function(obj, iterator, context) { - if (!iterator && _.isArray(obj) && obj[0] === +obj[0] && obj.length < 65535) { - return Math.max.apply(Math, obj); - } - if (!iterator && _.isEmpty(obj)) return -Infinity; - var result = {computed : -Infinity, value: -Infinity}; - each(obj, function(value, index, list) { - var computed = iterator ? iterator.call(context, value, index, list) : value; - computed > result.computed && (result = {value : value, computed : computed}); - }); - return result.value; - }; - - // Return the minimum element (or element-based computation). - _.min = function(obj, iterator, context) { - if (!iterator && _.isArray(obj) && obj[0] === +obj[0] && obj.length < 65535) { - return Math.min.apply(Math, obj); - } - if (!iterator && _.isEmpty(obj)) return Infinity; - var result = {computed : Infinity, value: Infinity}; - each(obj, function(value, index, list) { - var computed = iterator ? iterator.call(context, value, index, list) : value; - computed < result.computed && (result = {value : value, computed : computed}); - }); - return result.value; - }; - - // Shuffle an array, using the modern version of the - // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle). - _.shuffle = function(obj) { - var rand; - var index = 0; - var shuffled = []; - each(obj, function(value) { - rand = _.random(index++); - shuffled[index - 1] = shuffled[rand]; - shuffled[rand] = value; - }); - return shuffled; - }; - - // Sample **n** random values from an array. - // If **n** is not specified, returns a single random element from the array. - // The internal `guard` argument allows it to work with `map`. - _.sample = function(obj, n, guard) { - if (arguments.length < 2 || guard) { - return obj[_.random(obj.length - 1)]; - } - return _.shuffle(obj).slice(0, Math.max(0, n)); - }; - - // An internal function to generate lookup iterators. - var lookupIterator = function(value) { - return _.isFunction(value) ? value : function(obj){ return obj[value]; }; - }; - - // Sort the object's values by a criterion produced by an iterator. - _.sortBy = function(obj, value, context) { - var iterator = lookupIterator(value); - return _.pluck(_.map(obj, function(value, index, list) { - return { - value: value, - index: index, - criteria: iterator.call(context, value, index, list) - }; - }).sort(function(left, right) { - var a = left.criteria; - var b = right.criteria; - if (a !== b) { - if (a > b || a === void 0) return 1; - if (a < b || b === void 0) return -1; - } - return left.index - right.index; - }), 'value'); - }; - - // An internal function used for aggregate "group by" operations. - var group = function(behavior) { - return function(obj, value, context) { - var result = {}; - var iterator = value == null ? _.identity : lookupIterator(value); - each(obj, function(value, index) { - var key = iterator.call(context, value, index, obj); - behavior(result, key, value); - }); - return result; - }; - }; - - // Groups the object's values by a criterion. Pass either a string attribute - // to group by, or a function that returns the criterion. - _.groupBy = group(function(result, key, value) { - (_.has(result, key) ? result[key] : (result[key] = [])).push(value); - }); - - // Indexes the object's values by a criterion, similar to `groupBy`, but for - // when you know that your index values will be unique. - _.indexBy = group(function(result, key, value) { - result[key] = value; - }); - - // Counts instances of an object that group by a certain criterion. Pass - // either a string attribute to count by, or a function that returns the - // criterion. - _.countBy = group(function(result, key) { - _.has(result, key) ? result[key]++ : result[key] = 1; - }); - - // Use a comparator function to figure out the smallest index at which - // an object should be inserted so as to maintain order. Uses binary search. - _.sortedIndex = function(array, obj, iterator, context) { - iterator = iterator == null ? _.identity : lookupIterator(iterator); - var value = iterator.call(context, obj); - var low = 0, high = array.length; - while (low < high) { - var mid = (low + high) >>> 1; - iterator.call(context, array[mid]) < value ? low = mid + 1 : high = mid; - } - return low; - }; - - // Safely create a real, live array from anything iterable. - _.toArray = function(obj) { - if (!obj) return []; - if (_.isArray(obj)) return slice.call(obj); - if (obj.length === +obj.length) return _.map(obj, _.identity); - return _.values(obj); - }; - - // Return the number of elements in an object. - _.size = function(obj) { - if (obj == null) return 0; - return (obj.length === +obj.length) ? obj.length : _.keys(obj).length; - }; - - // Array Functions - // --------------- - - // Get the first element of an array. Passing **n** will return the first N - // values in the array. Aliased as `head` and `take`. The **guard** check - // allows it to work with `_.map`. - _.first = _.head = _.take = function(array, n, guard) { - if (array == null) return void 0; - return (n == null) || guard ? array[0] : slice.call(array, 0, n); - }; - - // Returns everything but the last entry of the array. Especially useful on - // the arguments object. Passing **n** will return all the values in - // the array, excluding the last N. The **guard** check allows it to work with - // `_.map`. - _.initial = function(array, n, guard) { - return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n)); - }; - - // Get the last element of an array. Passing **n** will return the last N - // values in the array. The **guard** check allows it to work with `_.map`. - _.last = function(array, n, guard) { - if (array == null) return void 0; - if ((n == null) || guard) { - return array[array.length - 1]; - } else { - return slice.call(array, Math.max(array.length - n, 0)); - } - }; - - // Returns everything but the first entry of the array. Aliased as `tail` and `drop`. - // Especially useful on the arguments object. Passing an **n** will return - // the rest N values in the array. The **guard** - // check allows it to work with `_.map`. - _.rest = _.tail = _.drop = function(array, n, guard) { - return slice.call(array, (n == null) || guard ? 1 : n); - }; - - // Trim out all falsy values from an array. - _.compact = function(array) { - return _.filter(array, _.identity); - }; - - // Internal implementation of a recursive `flatten` function. - var flatten = function(input, shallow, output) { - if (shallow && _.every(input, _.isArray)) { - return concat.apply(output, input); - } - each(input, function(value) { - if (_.isArray(value) || _.isArguments(value)) { - shallow ? push.apply(output, value) : flatten(value, shallow, output); - } else { - output.push(value); - } - }); - return output; - }; - - // Flatten out an array, either recursively (by default), or just one level. - _.flatten = function(array, shallow) { - return flatten(array, shallow, []); - }; - - // Return a version of the array that does not contain the specified value(s). - _.without = function(array) { - return _.difference(array, slice.call(arguments, 1)); - }; - - // Produce a duplicate-free version of the array. If the array has already - // been sorted, you have the option of using a faster algorithm. - // Aliased as `unique`. - _.uniq = _.unique = function(array, isSorted, iterator, context) { - if (_.isFunction(isSorted)) { - context = iterator; - iterator = isSorted; - isSorted = false; - } - var initial = iterator ? _.map(array, iterator, context) : array; - var results = []; - var seen = []; - each(initial, function(value, index) { - if (isSorted ? (!index || seen[seen.length - 1] !== value) : !_.contains(seen, value)) { - seen.push(value); - results.push(array[index]); - } - }); - return results; - }; - - // Produce an array that contains the union: each distinct element from all of - // the passed-in arrays. - _.union = function() { - return _.uniq(_.flatten(arguments, true)); - }; - - // Produce an array that contains every item shared between all the - // passed-in arrays. - _.intersection = function(array) { - var rest = slice.call(arguments, 1); - return _.filter(_.uniq(array), function(item) { - return _.every(rest, function(other) { - return _.indexOf(other, item) >= 0; - }); - }); - }; - - // Take the difference between one array and a number of other arrays. - // Only the elements present in just the first array will remain. - _.difference = function(array) { - var rest = concat.apply(ArrayProto, slice.call(arguments, 1)); - return _.filter(array, function(value){ return !_.contains(rest, value); }); - }; - - // Zip together multiple lists into a single array -- elements that share - // an index go together. - _.zip = function() { - var length = _.max(_.pluck(arguments, "length").concat(0)); - var results = new Array(length); - for (var i = 0; i < length; i++) { - results[i] = _.pluck(arguments, '' + i); - } - return results; - }; - - // Converts lists into objects. Pass either a single array of `[key, value]` - // pairs, or two parallel arrays of the same length -- one of keys, and one of - // the corresponding values. - _.object = function(list, values) { - if (list == null) return {}; - var result = {}; - for (var i = 0, length = list.length; i < length; i++) { - if (values) { - result[list[i]] = values[i]; - } else { - result[list[i][0]] = list[i][1]; - } - } - return result; - }; - - // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**), - // we need this function. Return the position of the first occurrence of an - // item in an array, or -1 if the item is not included in the array. - // Delegates to **ECMAScript 5**'s native `indexOf` if available. - // If the array is large and already in sort order, pass `true` - // for **isSorted** to use binary search. - _.indexOf = function(array, item, isSorted) { - if (array == null) return -1; - var i = 0, length = array.length; - if (isSorted) { - if (typeof isSorted == 'number') { - i = (isSorted < 0 ? Math.max(0, length + isSorted) : isSorted); - } else { - i = _.sortedIndex(array, item); - return array[i] === item ? i : -1; - } - } - if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item, isSorted); - for (; i < length; i++) if (array[i] === item) return i; - return -1; - }; - - // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available. - _.lastIndexOf = function(array, item, from) { - if (array == null) return -1; - var hasIndex = from != null; - if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) { - return hasIndex ? array.lastIndexOf(item, from) : array.lastIndexOf(item); - } - var i = (hasIndex ? from : array.length); - while (i--) if (array[i] === item) return i; - return -1; - }; - - // Generate an integer Array containing an arithmetic progression. A port of - // the native Python `range()` function. See - // [the Python documentation](http://docs.python.org/library/functions.html#range). - _.range = function(start, stop, step) { - if (arguments.length <= 1) { - stop = start || 0; - start = 0; - } - step = arguments[2] || 1; - - var length = Math.max(Math.ceil((stop - start) / step), 0); - var idx = 0; - var range = new Array(length); - - while(idx < length) { - range[idx++] = start; - start += step; - } - - return range; - }; - - // Function (ahem) Functions - // ------------------ - - // Reusable constructor function for prototype setting. - var ctor = function(){}; - - // Create a function bound to a given object (assigning `this`, and arguments, - // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if - // available. - _.bind = function(func, context) { - var args, bound; - if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); - if (!_.isFunction(func)) throw new TypeError; - args = slice.call(arguments, 2); - return bound = function() { - if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments))); - ctor.prototype = func.prototype; - var self = new ctor; - ctor.prototype = null; - var result = func.apply(self, args.concat(slice.call(arguments))); - if (Object(result) === result) return result; - return self; - }; - }; - - // Partially apply a function by creating a version that has had some of its - // arguments pre-filled, without changing its dynamic `this` context. - _.partial = function(func) { - var args = slice.call(arguments, 1); - return function() { - return func.apply(this, args.concat(slice.call(arguments))); - }; - }; - - // Bind all of an object's methods to that object. Useful for ensuring that - // all callbacks defined on an object belong to it. - _.bindAll = function(obj) { - var funcs = slice.call(arguments, 1); - if (funcs.length === 0) throw new Error("bindAll must be passed function names"); - each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); }); - return obj; - }; - - // Memoize an expensive function by storing its results. - _.memoize = function(func, hasher) { - var memo = {}; - hasher || (hasher = _.identity); - return function() { - var key = hasher.apply(this, arguments); - return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments)); - }; - }; - - // Delays a function for the given number of milliseconds, and then calls - // it with the arguments supplied. - _.delay = function(func, wait) { - var args = slice.call(arguments, 2); - return setTimeout(function(){ return func.apply(null, args); }, wait); - }; - - // Defers a function, scheduling it to run after the current call stack has - // cleared. - _.defer = function(func) { - return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); - }; - - // Returns a function, that, when invoked, will only be triggered at most once - // during a given window of time. Normally, the throttled function will run - // as much as it can, without ever going more than once per `wait` duration; - // but if you'd like to disable the execution on the leading edge, pass - // `{leading: false}`. To disable execution on the trailing edge, ditto. - _.throttle = function(func, wait, options) { - var context, args, result; - var timeout = null; - var previous = 0; - options || (options = {}); - var later = function() { - previous = options.leading === false ? 0 : new Date; - timeout = null; - result = func.apply(context, args); - }; - return function() { - var now = new Date; - if (!previous && options.leading === false) previous = now; - var remaining = wait - (now - previous); - context = this; - args = arguments; - if (remaining <= 0) { - clearTimeout(timeout); - timeout = null; - previous = now; - result = func.apply(context, args); - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(later, remaining); - } - return result; - }; - }; - - // Returns a function, that, as long as it continues to be invoked, will not - // be triggered. The function will be called after it stops being called for - // N milliseconds. If `immediate` is passed, trigger the function on the - // leading edge, instead of the trailing. - _.debounce = function(func, wait, immediate) { - var timeout, args, context, timestamp, result; - return function() { - context = this; - args = arguments; - timestamp = new Date(); - var later = function() { - var last = (new Date()) - timestamp; - if (last < wait) { - timeout = setTimeout(later, wait - last); - } else { - timeout = null; - if (!immediate) result = func.apply(context, args); - } - }; - var callNow = immediate && !timeout; - if (!timeout) { - timeout = setTimeout(later, wait); - } - if (callNow) result = func.apply(context, args); - return result; - }; - }; - - // Returns a function that will be executed at most one time, no matter how - // often you call it. Useful for lazy initialization. - _.once = function(func) { - var ran = false, memo; - return function() { - if (ran) return memo; - ran = true; - memo = func.apply(this, arguments); - func = null; - return memo; - }; - }; - - // Returns the first function passed as an argument to the second, - // allowing you to adjust arguments, run code before and after, and - // conditionally execute the original function. - _.wrap = function(func, wrapper) { - return function() { - var args = [func]; - push.apply(args, arguments); - return wrapper.apply(this, args); - }; - }; - - // Returns a function that is the composition of a list of functions, each - // consuming the return value of the function that follows. - _.compose = function() { - var funcs = arguments; - return function() { - var args = arguments; - for (var i = funcs.length - 1; i >= 0; i--) { - args = [funcs[i].apply(this, args)]; - } - return args[0]; - }; - }; - - // Returns a function that will only be executed after being called N times. - _.after = function(times, func) { - return function() { - if (--times < 1) { - return func.apply(this, arguments); - } - }; - }; - - // Object Functions - // ---------------- - - // Retrieve the names of an object's properties. - // Delegates to **ECMAScript 5**'s native `Object.keys` - _.keys = nativeKeys || function(obj) { - if (obj !== Object(obj)) throw new TypeError('Invalid object'); - var keys = []; - for (var key in obj) if (_.has(obj, key)) keys.push(key); - return keys; - }; - - // Retrieve the values of an object's properties. - _.values = function(obj) { - var keys = _.keys(obj); - var length = keys.length; - var values = new Array(length); - for (var i = 0; i < length; i++) { - values[i] = obj[keys[i]]; - } - return values; - }; - - // Convert an object into a list of `[key, value]` pairs. - _.pairs = function(obj) { - var keys = _.keys(obj); - var length = keys.length; - var pairs = new Array(length); - for (var i = 0; i < length; i++) { - pairs[i] = [keys[i], obj[keys[i]]]; - } - return pairs; - }; - - // Invert the keys and values of an object. The values must be serializable. - _.invert = function(obj) { - var result = {}; - var keys = _.keys(obj); - for (var i = 0, length = keys.length; i < length; i++) { - result[obj[keys[i]]] = keys[i]; - } - return result; - }; - - // Return a sorted list of the function names available on the object. - // Aliased as `methods` - _.functions = _.methods = function(obj) { - var names = []; - for (var key in obj) { - if (_.isFunction(obj[key])) names.push(key); - } - return names.sort(); - }; - - // Extend a given object with all the properties in passed-in object(s). - _.extend = function(obj) { - each(slice.call(arguments, 1), function(source) { - if (source) { - for (var prop in source) { - obj[prop] = source[prop]; - } - } - }); - return obj; - }; - - // Return a copy of the object only containing the whitelisted properties. - _.pick = function(obj) { - var copy = {}; - var keys = concat.apply(ArrayProto, slice.call(arguments, 1)); - each(keys, function(key) { - if (key in obj) copy[key] = obj[key]; - }); - return copy; - }; - - // Return a copy of the object without the blacklisted properties. - _.omit = function(obj) { - var copy = {}; - var keys = concat.apply(ArrayProto, slice.call(arguments, 1)); - for (var key in obj) { - if (!_.contains(keys, key)) copy[key] = obj[key]; - } - return copy; - }; - - // Fill in a given object with default properties. - _.defaults = function(obj) { - each(slice.call(arguments, 1), function(source) { - if (source) { - for (var prop in source) { - if (obj[prop] === void 0) obj[prop] = source[prop]; - } - } - }); - return obj; - }; - - // Create a (shallow-cloned) duplicate of an object. - _.clone = function(obj) { - if (!_.isObject(obj)) return obj; - return _.isArray(obj) ? obj.slice() : _.extend({}, obj); - }; - - // Invokes interceptor with the obj, and then returns obj. - // The primary purpose of this method is to "tap into" a method chain, in - // order to perform operations on intermediate results within the chain. - _.tap = function(obj, interceptor) { - interceptor(obj); - return obj; - }; - - // Internal recursive comparison function for `isEqual`. - var eq = function(a, b, aStack, bStack) { - // Identical objects are equal. `0 === -0`, but they aren't identical. - // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal). - if (a === b) return a !== 0 || 1 / a == 1 / b; - // A strict comparison is necessary because `null == undefined`. - if (a == null || b == null) return a === b; - // Unwrap any wrapped objects. - if (a instanceof _) a = a._wrapped; - if (b instanceof _) b = b._wrapped; - // Compare `[[Class]]` names. - var className = toString.call(a); - if (className != toString.call(b)) return false; - switch (className) { - // Strings, numbers, dates, and booleans are compared by value. - case '[object String]': - // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is - // equivalent to `new String("5")`. - return a == String(b); - case '[object Number]': - // `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for - // other numeric values. - return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b); - case '[object Date]': - case '[object Boolean]': - // Coerce dates and booleans to numeric primitive values. Dates are compared by their - // millisecond representations. Note that invalid dates with millisecond representations - // of `NaN` are not equivalent. - return +a == +b; - // RegExps are compared by their source patterns and flags. - case '[object RegExp]': - return a.source == b.source && - a.global == b.global && - a.multiline == b.multiline && - a.ignoreCase == b.ignoreCase; - } - if (typeof a != 'object' || typeof b != 'object') return false; - // Assume equality for cyclic structures. The algorithm for detecting cyclic - // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. - var length = aStack.length; - while (length--) { - // Linear search. Performance is inversely proportional to the number of - // unique nested structures. - if (aStack[length] == a) return bStack[length] == b; - } - // Objects with different constructors are not equivalent, but `Object`s - // from different frames are. - var aCtor = a.constructor, bCtor = b.constructor; - if (aCtor !== bCtor && !(_.isFunction(aCtor) && (aCtor instanceof aCtor) && - _.isFunction(bCtor) && (bCtor instanceof bCtor))) { - return false; - } - // Add the first object to the stack of traversed objects. - aStack.push(a); - bStack.push(b); - var size = 0, result = true; - // Recursively compare objects and arrays. - if (className == '[object Array]') { - // Compare array lengths to determine if a deep comparison is necessary. - size = a.length; - result = size == b.length; - if (result) { - // Deep compare the contents, ignoring non-numeric properties. - while (size--) { - if (!(result = eq(a[size], b[size], aStack, bStack))) break; - } - } - } else { - // Deep compare objects. - for (var key in a) { - if (_.has(a, key)) { - // Count the expected number of properties. - size++; - // Deep compare each member. - if (!(result = _.has(b, key) && eq(a[key], b[key], aStack, bStack))) break; - } - } - // Ensure that both objects contain the same number of properties. - if (result) { - for (key in b) { - if (_.has(b, key) && !(size--)) break; - } - result = !size; - } - } - // Remove the first object from the stack of traversed objects. - aStack.pop(); - bStack.pop(); - return result; - }; - - // Perform a deep comparison to check if two objects are equal. - _.isEqual = function(a, b) { - return eq(a, b, [], []); - }; - - // Is a given array, string, or object empty? - // An "empty" object has no enumerable own-properties. - _.isEmpty = function(obj) { - if (obj == null) return true; - if (_.isArray(obj) || _.isString(obj)) return obj.length === 0; - for (var key in obj) if (_.has(obj, key)) return false; - return true; - }; - - // Is a given value a DOM element? - _.isElement = function(obj) { - return !!(obj && obj.nodeType === 1); - }; - - // Is a given value an array? - // Delegates to ECMA5's native Array.isArray - _.isArray = nativeIsArray || function(obj) { - return toString.call(obj) == '[object Array]'; - }; - - // Is a given variable an object? - _.isObject = function(obj) { - return obj === Object(obj); - }; - - // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp. - each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp'], function(name) { - _['is' + name] = function(obj) { - return toString.call(obj) == '[object ' + name + ']'; - }; - }); - - // Define a fallback version of the method in browsers (ahem, IE), where - // there isn't any inspectable "Arguments" type. - if (!_.isArguments(arguments)) { - _.isArguments = function(obj) { - return !!(obj && _.has(obj, 'callee')); - }; - } - - // Optimize `isFunction` if appropriate. - if (typeof (/./) !== 'function') { - _.isFunction = function(obj) { - return typeof obj === 'function'; - }; - } - - // Is a given object a finite number? - _.isFinite = function(obj) { - return isFinite(obj) && !isNaN(parseFloat(obj)); - }; - - // Is the given value `NaN`? (NaN is the only number which does not equal itself). - _.isNaN = function(obj) { - return _.isNumber(obj) && obj != +obj; - }; - - // Is a given value a boolean? - _.isBoolean = function(obj) { - return obj === true || obj === false || toString.call(obj) == '[object Boolean]'; - }; - - // Is a given value equal to null? - _.isNull = function(obj) { - return obj === null; - }; - - // Is a given variable undefined? - _.isUndefined = function(obj) { - return obj === void 0; - }; - - // Shortcut function for checking if an object has a given property directly - // on itself (in other words, not on a prototype). - _.has = function(obj, key) { - return hasOwnProperty.call(obj, key); - }; - - // Utility Functions - // ----------------- - - // Run Underscore.js in *noConflict* mode, returning the `_` variable to its - // previous owner. Returns a reference to the Underscore object. - _.noConflict = function() { - root._ = previousUnderscore; - return this; - }; - - // Keep the identity function around for default iterators. - _.identity = function(value) { - return value; - }; - - // Run a function **n** times. - _.times = function(n, iterator, context) { - var accum = Array(Math.max(0, n)); - for (var i = 0; i < n; i++) accum[i] = iterator.call(context, i); - return accum; - }; - - // Return a random integer between min and max (inclusive). - _.random = function(min, max) { - if (max == null) { - max = min; - min = 0; - } - return min + Math.floor(Math.random() * (max - min + 1)); - }; - - // List of HTML entities for escaping. - var entityMap = { - escape: { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''' - } - }; - entityMap.unescape = _.invert(entityMap.escape); - - // Regexes containing the keys and values listed immediately above. - var entityRegexes = { - escape: new RegExp('[' + _.keys(entityMap.escape).join('') + ']', 'g'), - unescape: new RegExp('(' + _.keys(entityMap.unescape).join('|') + ')', 'g') - }; - - // Functions for escaping and unescaping strings to/from HTML interpolation. - _.each(['escape', 'unescape'], function(method) { - _[method] = function(string) { - if (string == null) return ''; - return ('' + string).replace(entityRegexes[method], function(match) { - return entityMap[method][match]; - }); - }; - }); - - // If the value of the named `property` is a function then invoke it with the - // `object` as context; otherwise, return it. - _.result = function(object, property) { - if (object == null) return void 0; - var value = object[property]; - return _.isFunction(value) ? value.call(object) : value; - }; - - // Add your own custom functions to the Underscore object. - _.mixin = function(obj) { - each(_.functions(obj), function(name) { - var func = _[name] = obj[name]; - _.prototype[name] = function() { - var args = [this._wrapped]; - push.apply(args, arguments); - return result.call(this, func.apply(_, args)); - }; - }); - }; - - // Generate a unique integer id (unique within the entire client session). - // Useful for temporary DOM ids. - var idCounter = 0; - _.uniqueId = function(prefix) { - var id = ++idCounter + ''; - return prefix ? prefix + id : id; - }; - - // By default, Underscore uses ERB-style template delimiters, change the - // following template settings to use alternative delimiters. - _.templateSettings = { - evaluate : /<%([\s\S]+?)%>/g, - interpolate : /<%=([\s\S]+?)%>/g, - escape : /<%-([\s\S]+?)%>/g - }; - - // When customizing `templateSettings`, if you don't want to define an - // interpolation, evaluation or escaping regex, we need one that is - // guaranteed not to match. - var noMatch = /(.)^/; - - // Certain characters need to be escaped so that they can be put into a - // string literal. - var escapes = { - "'": "'", - '\\': '\\', - '\r': 'r', - '\n': 'n', - '\t': 't', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g; - - // JavaScript micro-templating, similar to John Resig's implementation. - // Underscore templating handles arbitrary delimiters, preserves whitespace, - // and correctly escapes quotes within interpolated code. - _.template = function(text, data, settings) { - var render; - settings = _.defaults({}, settings, _.templateSettings); - - // Combine delimiters into one regular expression via alternation. - var matcher = new RegExp([ - (settings.escape || noMatch).source, - (settings.interpolate || noMatch).source, - (settings.evaluate || noMatch).source - ].join('|') + '|$', 'g'); - - // Compile the template source, escaping string literals appropriately. - var index = 0; - var source = "__p+='"; - text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { - source += text.slice(index, offset) - .replace(escaper, function(match) { return '\\' + escapes[match]; }); - - if (escape) { - source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; - } - if (interpolate) { - source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; - } - if (evaluate) { - source += "';\n" + evaluate + "\n__p+='"; - } - index = offset + match.length; - return match; - }); - source += "';\n"; - - // If a variable is not specified, place data values in local scope. - if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; - - source = "var __t,__p='',__j=Array.prototype.join," + - "print=function(){__p+=__j.call(arguments,'');};\n" + - source + "return __p;\n"; - - try { - render = new Function(settings.variable || 'obj', '_', source); - } catch (e) { - e.source = source; - throw e; - } - - if (data) return render(data, _); - var template = function(data) { - return render.call(this, data, _); - }; - - // Provide the compiled function source as a convenience for precompilation. - template.source = 'function(' + (settings.variable || 'obj') + '){\n' + source + '}'; - - return template; - }; - - // Add a "chain" function, which will delegate to the wrapper. - _.chain = function(obj) { - return _(obj).chain(); - }; - - // OOP - // --------------- - // If Underscore is called as a function, it returns a wrapped object that - // can be used OO-style. This wrapper holds altered versions of all the - // underscore functions. Wrapped objects may be chained. - - // Helper function to continue chaining intermediate results. - var result = function(obj) { - return this._chain ? _(obj).chain() : obj; - }; - - // Add all of the Underscore functions to the wrapper object. - _.mixin(_); - - // Add all mutator Array functions to the wrapper. - each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { - var method = ArrayProto[name]; - _.prototype[name] = function() { - var obj = this._wrapped; - method.apply(obj, arguments); - if ((name == 'shift' || name == 'splice') && obj.length === 0) delete obj[0]; - return result.call(this, obj); - }; - }); - - // Add all accessor Array functions to the wrapper. - each(['concat', 'join', 'slice'], function(name) { - var method = ArrayProto[name]; - _.prototype[name] = function() { - return result.call(this, method.apply(this._wrapped, arguments)); - }; - }); - - _.extend(_.prototype, { - - // Start chaining a wrapped Underscore object. - chain: function() { - this._chain = true; - return this; - }, - - // Extracts the result from a wrapped and chained object. - value: function() { - return this._wrapped; - } - - }); - -}).call(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/package.json deleted file mode 100644 index 2aea6b2a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/package.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "name": "keen.io", - "version": "0.1.3", - "description": "Keen IO NodeJS module. Keen IO is a hosted API to collect, analyze, and visualize your data.", - "homepage": "https://github.com/keenlabs/KeenClient-Node", - "bugs": { - "url": "https://github.com/keenlabs/KeenClient-Node/issues" - }, - "author": { - "name": "Ben Pearson", - "email": "ben@inlight.com.au" - }, - "contributors": [ - { - "name": "Ben Pearson", - "email": "ben@inlight.com.au", - "url": "http://inlight.com.au" - }, - { - "name": "Daniel Kador", - "email": "dan@keen.io", - "url": "http://keen.io" - }, - { - "name": "Dustin Larimer", - "email": "dustin@keen.io", - "url": "https://github.com/dustinlarimer" - }, - { - "name": "Jay Shirley", - "email": "jay@keen.io", - "url": "https://github.com/jshirley" - }, - { - "name": "Bogdan Cirlig", - "url": "https://github.com/bibanul" - }, - { - "name": "Jah Raphael", - "email": "jahraphael@yahoo.com", - "url": "https://github.com/jahraphael" - } - ], - "main": "index.js", - "scripts": { - "test": "mocha" - }, - "repository": { - "type": "git", - "url": "git://github.com/keenlabs/KeenClient-Node.git" - }, - "engines": { - "node": ">= 0.8.0" - }, - "keywords": [ - "keen", - "analytics", - "api" - ], - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/keenlabs/KeenClient-Node/blob/master/LICENSE-MIT" - } - ], - "dependencies": { - "superagent": "~0.21.0", - "underscore": "~1.5.2" - }, - "devDependencies": { - "mocha": "~1.16.1", - "should": "~2.1.1", - "nock": "~0.27.0" - }, - "gitHead": "47c4301840f7ac1eb26880a2c5f3440cc106bf88", - "_id": "keen.io@0.1.3", - "_shasum": "5056f5c989ab14ccf62fc20ed7598115ae7d09e3", - "_from": "keen.io@>=0.1.3 <0.2.0", - "_npmVersion": "2.1.6", - "_nodeVersion": "0.10.33", - "_npmUser": { - "name": "jshirley", - "email": "npm@shirley.im" - }, - "maintainers": [ - { - "name": "benjaminpearson", - "email": "ben@developinginthedark.com" - }, - { - "name": "dkador", - "email": "dan@keen.io" - }, - { - "name": "dustinlarimer", - "email": "dustin@keen.io" - }, - { - "name": "jshirley", - "email": "npm@shirley.im" - } - ], - "dist": { - "shasum": "5056f5c989ab14ccf62fc20ed7598115ae7d09e3", - "tarball": "https://registry.npmjs.org/keen.io/-/keen.io-0.1.3.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/keen.io/-/keen.io-0.1.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/test/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/test/test.js deleted file mode 100644 index 464f470f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/keen.io/test/test.js +++ /dev/null @@ -1,665 +0,0 @@ -/* jshint quotmark:false,indent:4,maxlen:600 */ -var should = require("should"); -var _ = require('underscore'); - -var buildQueryString = function(params){ - var query = []; - for (var key in params) { - if (params[key]) { - var value = params[key]; - if (Object.prototype.toString.call(value) !== '[object String]') { - value = JSON.stringify(value); - } - value = encodeURIComponent(value); - query.push(key + '=' + value); - } - } - return "?" + query.join('&'); -}; - -describe("keen", function() { - - var keen; - var Keen = require("../"); - var projectId = "fakeProjectId"; - var writeKey = "fakeWriteKey"; - var readKey = "fakeReadKey"; - var nock = require("nock"); - - beforeEach(function() { - nock.cleanAll(); - keen = require("../"); - keen = keen.configure({ - projectId: projectId, - writeKey: writeKey - }); - }); - - afterEach(function() { - nock.cleanAll(); - }); - - it("configure should set up client correctly", function() { - keen = require("../"); - var projectId = "projectId"; - var writeKey = "writeKey"; - var readKey = "readKey"; - var masterKey = "masterKey"; - keen = keen.configure({ - projectId: projectId, - writeKey: writeKey, - readKey: readKey, - masterKey: masterKey - }); - - should.exist(keen); - keen.projectId.should.equal(projectId); - keen.writeKey.should.equal(writeKey); - keen.readKey.should.equal(readKey); - keen.masterKey.should.equal(masterKey); - keen.baseUrl.should.equal("https://api.keen.io/"); - keen.apiVersion.should.equal("3.0"); - }); - - it("configure should allow overriding baseUrl and apiVersion", function() { - keen = require("../"); - var projectId = "projectId"; - var baseUrl = "blah"; - var apiVersion = "foo"; - keen = keen.configure({ - projectId: projectId, - baseUrl: baseUrl, - apiVersion: apiVersion - }); - - should.exist(keen); - keen.projectId.should.equal(projectId); - keen.baseUrl.should.equal(baseUrl); - keen.apiVersion.should.equal(apiVersion); - }); - - it("configure should error on bad input", function() { - keen = require("../"); - - var badInputHelper = function(config, expectedErrorMessage) { - try { - keen.configure(); - should.fail(); - } catch (error) { - should.exist(error); - if (expectedErrorMessage) { - error.message.should.equal(expectedErrorMessage); - } - } - }; - - badInputHelper(undefined, "The 'config' parameter must be specified and must be a JS object."); - badInputHelper(null, "The 'config' parameter must be specified and must be a JS object."); - badInputHelper({}, "The 'config' parameter must be specified and must be a JS object."); - }); - - it("addEvent should require a writeKey", function(done) { - keen = require("../"); - - keen = keen.configure({ - projectId: projectId - }); - - keen.addEvent("eventCollection", {}, function(error) { - should.exist(error); - error.message.should.equal("You must specify a non-null, non-empty 'writeKey' in your 'config' object when calling keen.configure()!"); - done(); - }); - }); - - var mockPostRequest = function(path, responseCode, responseBody) { - nock("https://api.keen.io") - .post(path) - .reply(responseCode, responseBody, {"Content-Type": "application/json"}); - }; - - var mockGetRequest = function(path, responseCode, responseBody) { - nock("https://api.keen.io") - .get(path) - .reply(responseCode, responseBody, {"Content-Type": "application/json"}); - }; - - var mockDeleteRequest = function(path, responseCode, responseBody) { - nock("https://api.keen.io") - .delete(path) - .reply(responseCode, responseBody, {"Content-Type": "application/json"}); - }; - - it("addEvent should make correct HTTP request", function(done) { - var eventCollection = "purchases"; - - mockPostRequest("/3.0/projects/" + projectId + "/events/" + eventCollection, 201, {success: true}); - - keen.addEvent(eventCollection, {"a": "b"}, function(error, responseBody) { - should.not.exist(error); - JSON.stringify(responseBody).should.equal(JSON.stringify({success: true})); - done(); - }); - }); - - it("addEvents should make correct HTTP request", function(done) { - mockPostRequest("/3.0/projects/" + projectId + "/events", 200, { - "collection1": [{success: true}] - }); - - keen.addEvents({ - "collection1": [{"a": "b"}] - }, function(error, responseBody) { - should.not.exist(error); - JSON.stringify(responseBody).should.equal(JSON.stringify({"collection1": [{success: true}]})); - done(); - }); - }); - - it("encrypt should generate a usable scoped key", function() { - keen = require("../"); - var apiKey = "80ce00d60d6443118017340c42d1cfaf"; - var options = { - "allowed_operations": ["read"], - "filters": [ { - "property_name": "purchase.amount", - "operator": "eq", - "property_value": 56 - }, { - "property_name": "purchase.name", - "operator": "ne", - "property_value": "Barbie" - }] - }; - var scopedKey = keen.encryptScopedKey(apiKey, options); - - // decrypt - var decryptedOptions = keen.decryptScopedKey(apiKey, scopedKey); - decryptedOptions.should.eql(options); - }); - - it("decrypt should return the correct options", function() { - keen = require("../"); - var apiKey = "f5d7c745ba4f437a82db02ca8b416556"; - var scopedKey = "7b8f357fa55e35efb2f7fa51a03ec2835c5537e57457c5a7c1c40c454fc00d5addef7ed911303fc2fa9648d3ae13e638192b86e90cd88657c9dc5cf03990cbf6eb2a7994513d34789bd25447f3dccaf5a3de3b9cacf6c11ded581e0506fca147ea32c13169787bbf8b4d3b8f2952bc0bea1beae3cfbbeaa1f421be2eac4cc223"; - var options = keen.decryptScopedKey(apiKey, scopedKey); - var expected = { - filters:[ { property_name: 'account_id', - operator: 'eq', - property_value: '4d9a4c421d011c553e000001' } ] - }; - expected.should.eql(options); - }); - - it("should handle API errors", function(done) { - var id = 'foo'; - var mockResponse = {error_code: 'FooError', message: 'no foo'}; - mockPostRequest("/3.0/projects/"+projectId+"/events/"+id, 500, mockResponse); - - keen.addEvent(id, {}, function(err) { - err.should.be.an.instanceOf(Error); - err.should.have.property('message', mockResponse.message); - err.should.have.property('code', mockResponse.error_code); - done(); - }); - }); - - describe('request', function() { - it("should expect a GET/POST/DEL method", function() { - should(function() { - keen.request('foo', 'write', '/'); - }).throwError('Method must be of type: GET/POST/DEL'); - }); - - it("should expect a write/read/master keytype", function() { - should(function() { - keen.request('get', 'foo', '/'); - }).throwError('Key must be of type: master/write/read'); - }); - - it("should require a string path", function() { - should(function() { - keen.request('get', 'read'); - }).throwError('\'path\' must be a string.'); - }); - - it("should expect a key to be set", function() { - should(function() { - keen.request('get', 'read', '/'); - }).throwError('You must specify a nun-null, non-empty \'readKey\' in your config object.'); - }); - - describe('send the request', function() { - var projectId = "projectId"; - var baseUrl = "https://api.keen.io/"; - var apiVersion = "3.0"; - var mockResponse = {result: 1}; - var keen = require('../').configure({ - projectId: projectId, - baseUrl: baseUrl, - apiVersion: apiVersion, - readKey: 'foo' - }); - - it('should send the request', function() { - mockGetRequest("/"+ apiVersion +"/projects/"+ projectId +"/queries/count?event_collection=foo", 200, mockResponse); - keen.request('get', 'read', '/queries/count', {event_collection:'foo'}, function(err, res) { - (err === null).should.be.true; - res.should.eql(mockResponse); - }); - }); - - it('has optional params', function() { - mockGetRequest("/"+ apiVersion +"/projects/"+projectId+"/queries/count?event_collection=bar", 200, mockResponse); - keen.request('get', 'read', '/queries/count', {event_collection:'bar'}, function(err, res) { - (err === null).should.be.true; - res.should.eql(mockResponse); - }); - }); - }); - }); - - describe('Public Methods', function() { - var projectId = "projectId"; - var baseUrl = "https://api.keen.io/"; - var apiVersion = "3.0"; - var mockResponse = {result: 1}; - var keen = require('../').configure({ - projectId: projectId, - baseUrl: baseUrl, - apiVersion: apiVersion, - readKey: 'foo' - }); - - describe('projects', function() { - it('should be able to call "list"', function(done) { - mockGetRequest("/" + apiVersion + "/projects", 200, mockResponse); - keen.projects.list( function ( err, res ) { - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - - it('should be able to call "view"', function(done) { - mockGetRequest("/" + apiVersion + "/projects/" + projectId, 200, mockResponse); - keen.projects.view( projectId, function ( err, res ) { - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - }); - - describe('events', function() { - it('should be able to call "list"', function(done) { - mockGetRequest("/" + apiVersion + "/projects/" + projectId + "/events", 200, mockResponse); - keen.events.list( projectId, function ( err, res ) { - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - - it('should be able to call "insert"', function(done) { - mockPostRequest("/" + apiVersion + "/projects/" + projectId + "/events", 200, mockResponse); - keen.events.insert( projectId, null, function ( err, res ) { - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - }); - - describe('properties', function() { - var collection = "test_collection"; - var property = "test_property"; - it('should be able to call "view"', function(done) { - mockGetRequest("/" + apiVersion + "/projects/" + projectId + "/events/" + collection + "/properties/" + property, 200, mockResponse); - keen.properties.view( projectId, collection, property, function ( err, res ) { - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - - it('should be able to call "remove"', function(done) { - mockDeleteRequest("/" + apiVersion + "/projects/" + projectId + "/events/" + collection + "/properties/" + property, 200, mockResponse); - keen.properties.remove( projectId, collection, property, function ( err, res ) { - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - }); - - describe('collections', function() { - var collection = "test_collection"; - it('should be able to call "view"', function(done) { - mockGetRequest("/" + apiVersion + "/projects/" + projectId + "/events/" + collection, 200, mockResponse); - keen.collections.view( projectId, collection, function ( err, res ) { - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - - it('should be able to call "remove"', function(done) { - mockDeleteRequest("/" + apiVersion + "/projects/" + projectId + "/events/" + collection, 200, mockResponse); - keen.collections.remove( projectId, collection, function ( err, res ) { - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - }); - - describe('queries', function() { - var collection = "test_collection"; - it('should be able to call "extraction" with no params', function(done) { - var qs = buildQueryString( { event_collection: collection } ); - mockGetRequest("/" + apiVersion + "/projects/" + projectId + "/queries/extraction" + qs, 200, mockResponse); - keen.queries.extraction( projectId, collection, null, function ( err, res ) { - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - - it('should not be able to override the "extraction" collection from params hash', function(done) { - var qs = buildQueryString( { event_collection: collection } ); - mockGetRequest("/" + apiVersion + "/projects/" + projectId + "/queries/extraction" + qs, 200, mockResponse); - keen.queries.extraction( projectId, collection, { event_collection: "attempt_override" }, function ( err, res ) { - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - }); - }); - - describe('Queries', function() { - - beforeEach(function() { - nock.cleanAll(); - Keen = require("../"); - keen = Keen.configure({ - projectId: projectId, - readKey: readKey - }); - }); - - describe('.run method', function(){ - - it('should be a method', function(){ - keen['run'].should.be.a.Function; - }); - - it('should throw an error when passed an invalid object', function(){ - (function(){ - keen.run(null); - }).should.throwError(); - (function(){ - keen.run({}); - }).should.throwError(); - (function(){ - keen.run(0); - }).should.throwError(); - - // This should be removed when 'saved_query' support is validated - (function(){ - keen.run('string'); - }).should.throwError(); - }); - - }); - - describe('Analysis Types', function(){ - - var analyses = [ - 'count', - 'count_unique', - 'sum', - 'median', - 'percentile', - 'average', - 'minimum', - 'maximum', - 'select_unique', - 'extraction' - ]; - - _.each(analyses, function(type){ - var analysis = new Keen.Query(type, { - eventCollection: 'eventCollection', - timeframe: 'this_7_days' - }); - var query_path = "/3.0/projects/" + projectId + "/queries/" + type; - - it('should be an instance of Keen.Query', function(){ - analysis.should.be.an.instanceOf(Keen.Query); - }); - - it('should have a correct path propery', function(){ - analysis.should.have.property('path'); - analysis.path.should.eql('/queries/' + type); - }); - - it('should have a params property with supplied parameters', function(){ - analysis.should.have.property('params'); - analysis.params.should.have.property('event_collection', 'eventCollection'); - analysis.params.should.have.property('timeframe', 'this_7_days'); - }); - - it('should have a #get method that returns a requested parameter', function(){ - analysis.get.should.be.a.Function; - analysis.get('timeframe').should.eql('this_7_days'); - }); - - it('should have a #set method that sets all supplied properties', function(){ - analysis.set.should.be.a.Function; - analysis.set({ group_by: 'property', target_property: 'referrer' }); - analysis.params.should.have.property('group_by', 'property'); - analysis.params.should.have.property('target_property', 'referrer'); - }); - - it('should #set under_score attributes when camelCase attributes are supplied', function(){ - analysis.set({ groupBy: 'property' }); - analysis.params.should.have.property('group_by', 'property'); - }); - - describe('When handled by .run method', function(){ - - beforeEach(function() { - nock.cleanAll(); - }); - - describe('Single analyses', function(){ - - it('should return a response when successful', function(done){ - var mockResponse = { result: 1 }; - mockGetRequest(query_path, 200, mockResponse); - analysis.params = {}; - var test = keen.run(analysis, function(err, res){ - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - - it('should return an error when unsuccessful', function(done){ - var mockResponse = { error_code: 'ResourceNotFoundError', message: 'no foo' }; - mockGetRequest(query_path, 500, mockResponse); - analysis.params = {}; - var test = keen.run(analysis, function(err, res){ - err.should.be.an.instanceOf(Error); - err.should.have.property('code', mockResponse.error_code); - done(); - }); - }); - - }); - - - describe('Multiple analyses', function(){ - - it('should return a single response when successful', function(done){ - var mockResponse = { result: 1 }; - mockGetRequest(query_path, 200, mockResponse); - mockGetRequest(query_path, 200, mockResponse); - mockGetRequest(query_path, 200, mockResponse); - analysis.params = {}; - var test = keen.run([analysis, analysis, analysis], function(err, res){ - (err === null).should.be.true; - res.should.be.an.Array; - res.should.have.length(3); - res.should.eql([mockResponse, mockResponse, mockResponse]); - done(); - }); - }); - - it('should return a single error when unsuccessful', function(done){ - var mockResponse = { error_code: 'ResourceNotFoundError', message: 'no foo' }; - mockGetRequest(query_path, 500, mockResponse); - analysis.params = {}; - var test = keen.run([analysis, analysis, analysis], function(err, res){ - err.should.be.an.instanceOf(Error); - err.should.have.property('code', mockResponse.error_code); - done(); - }); - }); - }); - - - }); - - }); - - }); - - - describe('Funnels', function(){ - - var funnel = new Keen.Query('funnel', { - steps: [ - { event_collection: "view_landing_page", actor_property: "user.id" }, - { eventCollection: "sign_up", actorProperty: "user.id" } - ], - timeframe: "this_21_days" - }); - var funnel_path = "/3.0/projects/" + projectId + "/queries/funnel" + buildQueryString(funnel.params); - - it('should be an instance of Keen.Query', function(){ - funnel.should.be.an.instanceOf(Keen.Query); - }); - - it('should have a correct path propery', function(){ - funnel.should.have.property('path'); - funnel.path.should.eql('/queries/funnel'); - }); - - it('should have a params property with supplied parameters', function(){ - funnel.should.have.property('params'); - funnel.params.should.have.property('steps'); - funnel.params.steps.should.be.an.Array.with.lengthOf(2); - }); - - it('should have steps with parameters in proper case', function(){ - funnel.params.steps[1].should.have.property('event_collection'); - funnel.params.steps[1].should.have.property('actor_property'); - }); - - it('should have a #get method that returns a requested parameter', function(){ - funnel.get.should.be.a.Function; - funnel.get('steps').should.be.an.Array; - funnel.get('timeframe').should.eql('this_21_days'); - }); - - it('should have a #set method that sets all supplied properties', function(){ - funnel.set.should.be.a.Function; - funnel.set({ timeframe: 'this_21_days' }); - funnel.params.should.have.property('timeframe', 'this_21_days'); - }); - - it('should #set under_score step attributes when camelCase are supplied ', function(){ - funnel.set({ steps: [ - { eventCollection: "view_landing_page", actorProperty: "user.id" }, - { eventCollection: "sign_up", actorProperty: "user.id" } - ] }); - funnel.params.steps[0].should.have.property('event_collection', 'view_landing_page'); - funnel.params.steps[0].should.have.property('actor_property', 'user.id'); - funnel.params.steps[1].should.have.property('event_collection', 'sign_up'); - funnel.params.steps[1].should.have.property('actor_property', 'user.id'); - }); - - - - describe('When handled by .run method', function(){ - - beforeEach(function() { - nock.cleanAll(); - }); - - describe('Single analyses', function(){ - - it('should return a response when successful', function(done){ - var mockResponse = { result: 1 }; - mockGetRequest(funnel_path, 200, mockResponse); - var test = keen.run(funnel, function(err, res){ - (err === null).should.be.true; - res.should.eql(mockResponse); - done(); - }); - }); - - it('should return an error when unsuccessful', function(done){ - var mockResponse = { error_code: 'ResourceNotFoundError', message: 'no foo' }; - mockGetRequest(funnel_path, 500, mockResponse); - var test = keen.run(funnel, function(err, res){ - err.should.be.an.instanceOf(Error); - err.should.have.property('code', mockResponse.error_code); - done(); - }); - }); - - }); - - - describe('Multiple analyses', function(){ - - it('should return a single response when successful', function(done){ - var mockResponse = { result: 1 }; - mockGetRequest(funnel_path, 200, mockResponse); - mockGetRequest(funnel_path, 200, mockResponse); - mockGetRequest(funnel_path, 200, mockResponse); - var test = keen.run([funnel, funnel, funnel], function(err, res){ - (err === null).should.be.true; - res.should.be.an.Array; - res.should.have.length(3); - res.should.eql([mockResponse, mockResponse, mockResponse]); - done(); - }); - }); - - it('should return a single error when unsuccessful', function(done){ - var mockResponse = { error_code: 'ResourceNotFoundError', message: 'no foo' }; - mockGetRequest(funnel_path, 500, mockResponse); - var test = keen.run([funnel, funnel, funnel], function(err, res){ - err.should.be.an.instanceOf(Error); - err.should.have.property('code', mockResponse.error_code); - done(); - }); - }); - - }); - - - }); - - - - }); - - }); - -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/knockout/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/knockout/README.md deleted file mode 100644 index 72815ace..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/knockout/README.md +++ /dev/null @@ -1,50 +0,0 @@ -**Knockout** is a JavaScript [MVVM](http://en.wikipedia.org/wiki/Model_View_ViewModel) (a modern variant of MVC) library that makes it easier to create rich, desktop-like user interfaces with JavaScript and HTML. It uses *observers* to make your UI automatically stay in sync with an underlying data model, along with a powerful and extensible set of *declarative bindings* to enable productive development. - -##Getting started - -[![Join the chat at https://gitter.im/knockout/knockout](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/knockout/knockout?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -**Totally new to Knockout?** The most fun place to start is the [online interactive tutorials](http://learn.knockoutjs.com/). - -For more details, see - - * Documentation on [the project's website](http://knockoutjs.com/documentation/introduction.html) - * Online examples at [http://knockoutjs.com/examples/](http://knockoutjs.com/examples/) - -##Downloading Knockout - -You can [download released versions of Knockout](http://knockoutjs.com/downloads/) from the project's website. - -For Node.js developers, Knockout is also available from [npm](https://npmjs.org/) - just run `npm install knockout`. - -##Building Knockout from sources - -If you prefer to build the library yourself: - - 1. **Clone the repo from GitHub** - - git clone https://github.com/knockout/knockout.git - cd knockout - - 2. **Acquire build dependencies.** Make sure you have [Node.js](http://nodejs.org/) installed on your workstation. This is only needed to _build_ Knockout from sources. Knockout itself has no dependency on Node.js once it is built (it works with any server technology or none). Now run: - - npm install -g grunt-cli - npm install - - The first `npm` command sets up the popular [Grunt](http://gruntjs.com/) build tool. You might need to run this command with `sudo` if you're on Linux or Mac OS X, or in an Administrator command prompt on Windows. The second `npm` command fetches the remaining build dependencies. - - 3. **Run the build tool** - - grunt - - Now you'll find the built files in `build/output/`. - -## Running the tests - -If you have [phantomjs](http://phantomjs.org/download.html) installed, then the `grunt` script will automatically run the specification suite and report its results. - -Or, if you want to run the specs in a browser (e.g., for debugging), simply open `spec/runner.html` in your browser. - -##License - -MIT license - [http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/knockout/build/output/knockout-latest.debug.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/knockout/build/output/knockout-latest.debug.js deleted file mode 100644 index 3bbeb22a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/knockout/build/output/knockout-latest.debug.js +++ /dev/null @@ -1,5871 +0,0 @@ -/*! - * Knockout JavaScript library v3.4.0 - * (c) Steven Sanderson - http://knockoutjs.com/ - * License: MIT (http://www.opensource.org/licenses/mit-license.php) - */ - -(function(){ -var DEBUG=true; -(function(undefined){ - // (0, eval)('this') is a robust way of getting a reference to the global object - // For details, see http://stackoverflow.com/questions/14119988/return-this-0-evalthis/14120023#14120023 - var window = this || (0, eval)('this'), - document = window['document'], - navigator = window['navigator'], - jQueryInstance = window["jQuery"], - JSON = window["JSON"]; -(function(factory) { - // Support three module loading scenarios - if (typeof define === 'function' && define['amd']) { - // [1] AMD anonymous module - define(['exports', 'require'], factory); - } else if (typeof exports === 'object' && typeof module === 'object') { - // [2] CommonJS/Node.js - factory(module['exports'] || exports); // module.exports is for Node.js - } else { - // [3] No module loader (plain '); - expect(encoded).to.equal('\\x3cscript\\x3ealert\\x281\\x29\\x3c\\x2fscript\\x3e'); - done(); - }); - - it('encodes \' characters', function (done) { - - var encoded = Hoek.escapeJavaScript('something(\'param\')'); - expect(encoded).to.equal('something\\x28\\x27param\\x27\\x29'); - done(); - }); - - it('encodes large unicode characters with the correct padding', function (done) { - - var encoded = Hoek.escapeJavaScript(String.fromCharCode(500) + String.fromCharCode(1000)); - expect(encoded).to.equal('\\u0500\\u1000'); - done(); - }); - - it('doesn\'t throw an exception when passed null', function (done) { - - var encoded = Hoek.escapeJavaScript(null); - expect(encoded).to.equal(''); - done(); - }); -}); - -describe('escapeHtml()', function () { - - it('encodes / characters', function (done) { - - var encoded = Hoek.escapeHtml(''); - expect(encoded).to.equal('<script>alert(1)</script>'); - done(); - }); - - it('encodes < and > as named characters', function (done) { - - var encoded = Hoek.escapeHtml(' - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.js deleted file mode 100644 index 664c1b45..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.js +++ /dev/null @@ -1,3 +0,0 @@ -var BigInteger = require('./'); -var a = new BigInteger('91823918239182398123'); -console.log(a.bitLength()); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/index.js deleted file mode 100644 index e32fe13d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/index.js +++ /dev/null @@ -1,1358 +0,0 @@ -(function(){ - - // Copyright (c) 2005 Tom Wu - // All Rights Reserved. - // See "LICENSE" for details. - - // Basic JavaScript BN library - subset useful for RSA encryption. - - // Bits per digit - var dbits; - - // JavaScript engine analysis - var canary = 0xdeadbeefcafe; - var j_lm = ((canary&0xffffff)==0xefcafe); - - // (public) Constructor - function BigInteger(a,b,c) { - if(a != null) - if("number" == typeof a) this.fromNumber(a,b,c); - else if(b == null && "string" != typeof a) this.fromString(a,256); - else this.fromString(a,b); - } - - // return new, unset BigInteger - function nbi() { return new BigInteger(null); } - - // am: Compute w_j += (x*this_i), propagate carries, - // c is initial carry, returns final carry. - // c < 3*dvalue, x < 2*dvalue, this_i < dvalue - // We need to select the fastest one that works in this environment. - - // am1: use a single mult and divide to get the high bits, - // max digit bits should be 26 because - // max internal value = 2*dvalue^2-2*dvalue (< 2^53) - function am1(i,x,w,j,c,n) { - while(--n >= 0) { - var v = x*this[i++]+w[j]+c; - c = Math.floor(v/0x4000000); - w[j++] = v&0x3ffffff; - } - return c; - } - // am2 avoids a big mult-and-extract completely. - // Max digit bits should be <= 30 because we do bitwise ops - // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31) - function am2(i,x,w,j,c,n) { - var xl = x&0x7fff, xh = x>>15; - while(--n >= 0) { - var l = this[i]&0x7fff; - var h = this[i++]>>15; - var m = xh*l+h*xl; - l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff); - c = (l>>>30)+(m>>>15)+xh*h+(c>>>30); - w[j++] = l&0x3fffffff; - } - return c; - } - // Alternately, set max digit bits to 28 since some - // browsers slow down when dealing with 32-bit numbers. - function am3(i,x,w,j,c,n) { - var xl = x&0x3fff, xh = x>>14; - while(--n >= 0) { - var l = this[i]&0x3fff; - var h = this[i++]>>14; - var m = xh*l+h*xl; - l = xl*l+((m&0x3fff)<<14)+w[j]+c; - c = (l>>28)+(m>>14)+xh*h; - w[j++] = l&0xfffffff; - } - return c; - } - var inBrowser = typeof navigator !== "undefined"; - if(inBrowser && j_lm && (navigator.appName == "Microsoft Internet Explorer")) { - BigInteger.prototype.am = am2; - dbits = 30; - } - else if(inBrowser && j_lm && (navigator.appName != "Netscape")) { - BigInteger.prototype.am = am1; - dbits = 26; - } - else { // Mozilla/Netscape seems to prefer am3 - BigInteger.prototype.am = am3; - dbits = 28; - } - - BigInteger.prototype.DB = dbits; - BigInteger.prototype.DM = ((1<= 0; --i) r[i] = this[i]; - r.t = this.t; - r.s = this.s; - } - - // (protected) set from integer value x, -DV <= x < DV - function bnpFromInt(x) { - this.t = 1; - this.s = (x<0)?-1:0; - if(x > 0) this[0] = x; - else if(x < -1) this[0] = x+this.DV; - else this.t = 0; - } - - // return bigint initialized to value - function nbv(i) { var r = nbi(); r.fromInt(i); return r; } - - // (protected) set from string and radix - function bnpFromString(s,b) { - var k; - if(b == 16) k = 4; - else if(b == 8) k = 3; - else if(b == 256) k = 8; // byte array - else if(b == 2) k = 1; - else if(b == 32) k = 5; - else if(b == 4) k = 2; - else { this.fromRadix(s,b); return; } - this.t = 0; - this.s = 0; - var i = s.length, mi = false, sh = 0; - while(--i >= 0) { - var x = (k==8)?s[i]&0xff:intAt(s,i); - if(x < 0) { - if(s.charAt(i) == "-") mi = true; - continue; - } - mi = false; - if(sh == 0) - this[this.t++] = x; - else if(sh+k > this.DB) { - this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<>(this.DB-sh)); - } - else - this[this.t-1] |= x<= this.DB) sh -= this.DB; - } - if(k == 8 && (s[0]&0x80) != 0) { - this.s = -1; - if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)< 0 && this[this.t-1] == c) --this.t; - } - - // (public) return string representation in given radix - function bnToString(b) { - if(this.s < 0) return "-"+this.negate().toString(b); - var k; - if(b == 16) k = 4; - else if(b == 8) k = 3; - else if(b == 2) k = 1; - else if(b == 32) k = 5; - else if(b == 4) k = 2; - else return this.toRadix(b); - var km = (1< 0) { - if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); } - while(i >= 0) { - if(p < k) { - d = (this[i]&((1<>(p+=this.DB-k); - } - else { - d = (this[i]>>(p-=k))&km; - if(p <= 0) { p += this.DB; --i; } - } - if(d > 0) m = true; - if(m) r += int2char(d); - } - } - return m?r:"0"; - } - - // (public) -this - function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; } - - // (public) |this| - function bnAbs() { return (this.s<0)?this.negate():this; } - - // (public) return + if this > a, - if this < a, 0 if equal - function bnCompareTo(a) { - var r = this.s-a.s; - if(r != 0) return r; - var i = this.t; - r = i-a.t; - if(r != 0) return (this.s<0)?-r:r; - while(--i >= 0) if((r=this[i]-a[i]) != 0) return r; - return 0; - } - - // returns bit length of the integer x - function nbits(x) { - var r = 1, t; - if((t=x>>>16) != 0) { x = t; r += 16; } - if((t=x>>8) != 0) { x = t; r += 8; } - if((t=x>>4) != 0) { x = t; r += 4; } - if((t=x>>2) != 0) { x = t; r += 2; } - if((t=x>>1) != 0) { x = t; r += 1; } - return r; - } - - // (public) return the number of bits in "this" - function bnBitLength() { - if(this.t <= 0) return 0; - return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM)); - } - - // (protected) r = this << n*DB - function bnpDLShiftTo(n,r) { - var i; - for(i = this.t-1; i >= 0; --i) r[i+n] = this[i]; - for(i = n-1; i >= 0; --i) r[i] = 0; - r.t = this.t+n; - r.s = this.s; - } - - // (protected) r = this >> n*DB - function bnpDRShiftTo(n,r) { - for(var i = n; i < this.t; ++i) r[i-n] = this[i]; - r.t = Math.max(this.t-n,0); - r.s = this.s; - } - - // (protected) r = this << n - function bnpLShiftTo(n,r) { - var bs = n%this.DB; - var cbs = this.DB-bs; - var bm = (1<= 0; --i) { - r[i+ds+1] = (this[i]>>cbs)|c; - c = (this[i]&bm)<= 0; --i) r[i] = 0; - r[ds] = c; - r.t = this.t+ds+1; - r.s = this.s; - r.clamp(); - } - - // (protected) r = this >> n - function bnpRShiftTo(n,r) { - r.s = this.s; - var ds = Math.floor(n/this.DB); - if(ds >= this.t) { r.t = 0; return; } - var bs = n%this.DB; - var cbs = this.DB-bs; - var bm = (1<>bs; - for(var i = ds+1; i < this.t; ++i) { - r[i-ds-1] |= (this[i]&bm)<>bs; - } - if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<>= this.DB; - } - if(a.t < this.t) { - c -= a.s; - while(i < this.t) { - c += this[i]; - r[i++] = c&this.DM; - c >>= this.DB; - } - c += this.s; - } - else { - c += this.s; - while(i < a.t) { - c -= a[i]; - r[i++] = c&this.DM; - c >>= this.DB; - } - c -= a.s; - } - r.s = (c<0)?-1:0; - if(c < -1) r[i++] = this.DV+c; - else if(c > 0) r[i++] = c; - r.t = i; - r.clamp(); - } - - // (protected) r = this * a, r != this,a (HAC 14.12) - // "this" should be the larger one if appropriate. - function bnpMultiplyTo(a,r) { - var x = this.abs(), y = a.abs(); - var i = x.t; - r.t = i+y.t; - while(--i >= 0) r[i] = 0; - for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t); - r.s = 0; - r.clamp(); - if(this.s != a.s) BigInteger.ZERO.subTo(r,r); - } - - // (protected) r = this^2, r != this (HAC 14.16) - function bnpSquareTo(r) { - var x = this.abs(); - var i = r.t = 2*x.t; - while(--i >= 0) r[i] = 0; - for(i = 0; i < x.t-1; ++i) { - var c = x.am(i,x[i],r,2*i,0,1); - if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) { - r[i+x.t] -= x.DV; - r[i+x.t+1] = 1; - } - } - if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1); - r.s = 0; - r.clamp(); - } - - // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20) - // r != q, this != m. q or r may be null. - function bnpDivRemTo(m,q,r) { - var pm = m.abs(); - if(pm.t <= 0) return; - var pt = this.abs(); - if(pt.t < pm.t) { - if(q != null) q.fromInt(0); - if(r != null) this.copyTo(r); - return; - } - if(r == null) r = nbi(); - var y = nbi(), ts = this.s, ms = m.s; - var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus - if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); } - else { pm.copyTo(y); pt.copyTo(r); } - var ys = y.t; - var y0 = y[ys-1]; - if(y0 == 0) return; - var yt = y0*(1<1)?y[ys-2]>>this.F2:0); - var d1 = this.FV/yt, d2 = (1<= 0) { - r[r.t++] = 1; - r.subTo(t,r); - } - BigInteger.ONE.dlShiftTo(ys,t); - t.subTo(y,y); // "negative" y so we can replace sub with am later - while(y.t < ys) y[y.t++] = 0; - while(--j >= 0) { - // Estimate quotient digit - var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2); - if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out - y.dlShiftTo(j,t); - r.subTo(t,r); - while(r[i] < --qd) r.subTo(t,r); - } - } - if(q != null) { - r.drShiftTo(ys,q); - if(ts != ms) BigInteger.ZERO.subTo(q,q); - } - r.t = ys; - r.clamp(); - if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder - if(ts < 0) BigInteger.ZERO.subTo(r,r); - } - - // (public) this mod a - function bnMod(a) { - var r = nbi(); - this.abs().divRemTo(a,null,r); - if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r); - return r; - } - - // Modular reduction using "classic" algorithm - function Classic(m) { this.m = m; } - function cConvert(x) { - if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m); - else return x; - } - function cRevert(x) { return x; } - function cReduce(x) { x.divRemTo(this.m,null,x); } - function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } - function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); } - - Classic.prototype.convert = cConvert; - Classic.prototype.revert = cRevert; - Classic.prototype.reduce = cReduce; - Classic.prototype.mulTo = cMulTo; - Classic.prototype.sqrTo = cSqrTo; - - // (protected) return "-1/this % 2^DB"; useful for Mont. reduction - // justification: - // xy == 1 (mod m) - // xy = 1+km - // xy(2-xy) = (1+km)(1-km) - // x[y(2-xy)] = 1-k^2m^2 - // x[y(2-xy)] == 1 (mod m^2) - // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2 - // should reduce x and y(2-xy) by m^2 at each step to keep size bounded. - // JS multiply "overflows" differently from C/C++, so care is needed here. - function bnpInvDigit() { - if(this.t < 1) return 0; - var x = this[0]; - if((x&1) == 0) return 0; - var y = x&3; // y == 1/x mod 2^2 - y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4 - y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8 - y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16 - // last step - calculate inverse mod DV directly; - // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints - y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits - // we really want the negative inverse, and -DV < y < DV - return (y>0)?this.DV-y:-y; - } - - // Montgomery reduction - function Montgomery(m) { - this.m = m; - this.mp = m.invDigit(); - this.mpl = this.mp&0x7fff; - this.mph = this.mp>>15; - this.um = (1<<(m.DB-15))-1; - this.mt2 = 2*m.t; - } - - // xR mod m - function montConvert(x) { - var r = nbi(); - x.abs().dlShiftTo(this.m.t,r); - r.divRemTo(this.m,null,r); - if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r); - return r; - } - - // x/R mod m - function montRevert(x) { - var r = nbi(); - x.copyTo(r); - this.reduce(r); - return r; - } - - // x = x/R mod m (HAC 14.32) - function montReduce(x) { - while(x.t <= this.mt2) // pad x so am has enough room later - x[x.t++] = 0; - for(var i = 0; i < this.m.t; ++i) { - // faster way of calculating u0 = x[i]*mp mod DV - var j = x[i]&0x7fff; - var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM; - // use am to combine the multiply-shift-add into one call - j = i+this.m.t; - x[j] += this.m.am(0,u0,x,i,0,this.m.t); - // propagate carry - while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; } - } - x.clamp(); - x.drShiftTo(this.m.t,x); - if(x.compareTo(this.m) >= 0) x.subTo(this.m,x); - } - - // r = "x^2/R mod m"; x != r - function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); } - - // r = "xy/R mod m"; x,y != r - function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } - - Montgomery.prototype.convert = montConvert; - Montgomery.prototype.revert = montRevert; - Montgomery.prototype.reduce = montReduce; - Montgomery.prototype.mulTo = montMulTo; - Montgomery.prototype.sqrTo = montSqrTo; - - // (protected) true iff this is even - function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; } - - // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79) - function bnpExp(e,z) { - if(e > 0xffffffff || e < 1) return BigInteger.ONE; - var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1; - g.copyTo(r); - while(--i >= 0) { - z.sqrTo(r,r2); - if((e&(1< 0) z.mulTo(r2,g,r); - else { var t = r; r = r2; r2 = t; } - } - return z.revert(r); - } - - // (public) this^e % m, 0 <= e < 2^32 - function bnModPowInt(e,m) { - var z; - if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m); - return this.exp(e,z); - } - - // protected - BigInteger.prototype.copyTo = bnpCopyTo; - BigInteger.prototype.fromInt = bnpFromInt; - BigInteger.prototype.fromString = bnpFromString; - BigInteger.prototype.clamp = bnpClamp; - BigInteger.prototype.dlShiftTo = bnpDLShiftTo; - BigInteger.prototype.drShiftTo = bnpDRShiftTo; - BigInteger.prototype.lShiftTo = bnpLShiftTo; - BigInteger.prototype.rShiftTo = bnpRShiftTo; - BigInteger.prototype.subTo = bnpSubTo; - BigInteger.prototype.multiplyTo = bnpMultiplyTo; - BigInteger.prototype.squareTo = bnpSquareTo; - BigInteger.prototype.divRemTo = bnpDivRemTo; - BigInteger.prototype.invDigit = bnpInvDigit; - BigInteger.prototype.isEven = bnpIsEven; - BigInteger.prototype.exp = bnpExp; - - // public - BigInteger.prototype.toString = bnToString; - BigInteger.prototype.negate = bnNegate; - BigInteger.prototype.abs = bnAbs; - BigInteger.prototype.compareTo = bnCompareTo; - BigInteger.prototype.bitLength = bnBitLength; - BigInteger.prototype.mod = bnMod; - BigInteger.prototype.modPowInt = bnModPowInt; - - // "constants" - BigInteger.ZERO = nbv(0); - BigInteger.ONE = nbv(1); - - // Copyright (c) 2005-2009 Tom Wu - // All Rights Reserved. - // See "LICENSE" for details. - - // Extended JavaScript BN functions, required for RSA private ops. - - // Version 1.1: new BigInteger("0", 10) returns "proper" zero - // Version 1.2: square() API, isProbablePrime fix - - // (public) - function bnClone() { var r = nbi(); this.copyTo(r); return r; } - - // (public) return value as integer - function bnIntValue() { - if(this.s < 0) { - if(this.t == 1) return this[0]-this.DV; - else if(this.t == 0) return -1; - } - else if(this.t == 1) return this[0]; - else if(this.t == 0) return 0; - // assumes 16 < DB < 32 - return ((this[1]&((1<<(32-this.DB))-1))<>24; } - - // (public) return value as short (assumes DB>=16) - function bnShortValue() { return (this.t==0)?this.s:(this[0]<<16)>>16; } - - // (protected) return x s.t. r^x < DV - function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); } - - // (public) 0 if this == 0, 1 if this > 0 - function bnSigNum() { - if(this.s < 0) return -1; - else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0; - else return 1; - } - - // (protected) convert to radix string - function bnpToRadix(b) { - if(b == null) b = 10; - if(this.signum() == 0 || b < 2 || b > 36) return "0"; - var cs = this.chunkSize(b); - var a = Math.pow(b,cs); - var d = nbv(a), y = nbi(), z = nbi(), r = ""; - this.divRemTo(d,y,z); - while(y.signum() > 0) { - r = (a+z.intValue()).toString(b).substr(1) + r; - y.divRemTo(d,y,z); - } - return z.intValue().toString(b) + r; - } - - // (protected) convert from radix string - function bnpFromRadix(s,b) { - this.fromInt(0); - if(b == null) b = 10; - var cs = this.chunkSize(b); - var d = Math.pow(b,cs), mi = false, j = 0, w = 0; - for(var i = 0; i < s.length; ++i) { - var x = intAt(s,i); - if(x < 0) { - if(s.charAt(i) == "-" && this.signum() == 0) mi = true; - continue; - } - w = b*w+x; - if(++j >= cs) { - this.dMultiply(d); - this.dAddOffset(w,0); - j = 0; - w = 0; - } - } - if(j > 0) { - this.dMultiply(Math.pow(b,j)); - this.dAddOffset(w,0); - } - if(mi) BigInteger.ZERO.subTo(this,this); - } - - // (protected) alternate constructor - function bnpFromNumber(a,b,c) { - if("number" == typeof b) { - // new BigInteger(int,int,RNG) - if(a < 2) this.fromInt(1); - else { - this.fromNumber(a,c); - if(!this.testBit(a-1)) // force MSB set - this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this); - if(this.isEven()) this.dAddOffset(1,0); // force odd - while(!this.isProbablePrime(b)) { - this.dAddOffset(2,0); - if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this); - } - } - } - else { - // new BigInteger(int,RNG) - var x = new Array(), t = a&7; - x.length = (a>>3)+1; - b.nextBytes(x); - if(t > 0) x[0] &= ((1< 0) { - if(p < this.DB && (d = this[i]>>p) != (this.s&this.DM)>>p) - r[k++] = d|(this.s<<(this.DB-p)); - while(i >= 0) { - if(p < 8) { - d = (this[i]&((1<>(p+=this.DB-8); - } - else { - d = (this[i]>>(p-=8))&0xff; - if(p <= 0) { p += this.DB; --i; } - } - if((d&0x80) != 0) d |= -256; - if(k == 0 && (this.s&0x80) != (d&0x80)) ++k; - if(k > 0 || d != this.s) r[k++] = d; - } - } - return r; - } - - function bnEquals(a) { return(this.compareTo(a)==0); } - function bnMin(a) { return(this.compareTo(a)<0)?this:a; } - function bnMax(a) { return(this.compareTo(a)>0)?this:a; } - - // (protected) r = this op a (bitwise) - function bnpBitwiseTo(a,op,r) { - var i, f, m = Math.min(a.t,this.t); - for(i = 0; i < m; ++i) r[i] = op(this[i],a[i]); - if(a.t < this.t) { - f = a.s&this.DM; - for(i = m; i < this.t; ++i) r[i] = op(this[i],f); - r.t = this.t; - } - else { - f = this.s&this.DM; - for(i = m; i < a.t; ++i) r[i] = op(f,a[i]); - r.t = a.t; - } - r.s = op(this.s,a.s); - r.clamp(); - } - - // (public) this & a - function op_and(x,y) { return x&y; } - function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; } - - // (public) this | a - function op_or(x,y) { return x|y; } - function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; } - - // (public) this ^ a - function op_xor(x,y) { return x^y; } - function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; } - - // (public) this & ~a - function op_andnot(x,y) { return x&~y; } - function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; } - - // (public) ~this - function bnNot() { - var r = nbi(); - for(var i = 0; i < this.t; ++i) r[i] = this.DM&~this[i]; - r.t = this.t; - r.s = ~this.s; - return r; - } - - // (public) this << n - function bnShiftLeft(n) { - var r = nbi(); - if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r); - return r; - } - - // (public) this >> n - function bnShiftRight(n) { - var r = nbi(); - if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r); - return r; - } - - // return index of lowest 1-bit in x, x < 2^31 - function lbit(x) { - if(x == 0) return -1; - var r = 0; - if((x&0xffff) == 0) { x >>= 16; r += 16; } - if((x&0xff) == 0) { x >>= 8; r += 8; } - if((x&0xf) == 0) { x >>= 4; r += 4; } - if((x&3) == 0) { x >>= 2; r += 2; } - if((x&1) == 0) ++r; - return r; - } - - // (public) returns index of lowest 1-bit (or -1 if none) - function bnGetLowestSetBit() { - for(var i = 0; i < this.t; ++i) - if(this[i] != 0) return i*this.DB+lbit(this[i]); - if(this.s < 0) return this.t*this.DB; - return -1; - } - - // return number of 1 bits in x - function cbit(x) { - var r = 0; - while(x != 0) { x &= x-1; ++r; } - return r; - } - - // (public) return number of set bits - function bnBitCount() { - var r = 0, x = this.s&this.DM; - for(var i = 0; i < this.t; ++i) r += cbit(this[i]^x); - return r; - } - - // (public) true iff nth bit is set - function bnTestBit(n) { - var j = Math.floor(n/this.DB); - if(j >= this.t) return(this.s!=0); - return((this[j]&(1<<(n%this.DB)))!=0); - } - - // (protected) this op (1<>= this.DB; - } - if(a.t < this.t) { - c += a.s; - while(i < this.t) { - c += this[i]; - r[i++] = c&this.DM; - c >>= this.DB; - } - c += this.s; - } - else { - c += this.s; - while(i < a.t) { - c += a[i]; - r[i++] = c&this.DM; - c >>= this.DB; - } - c += a.s; - } - r.s = (c<0)?-1:0; - if(c > 0) r[i++] = c; - else if(c < -1) r[i++] = this.DV+c; - r.t = i; - r.clamp(); - } - - // (public) this + a - function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; } - - // (public) this - a - function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; } - - // (public) this * a - function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; } - - // (public) this^2 - function bnSquare() { var r = nbi(); this.squareTo(r); return r; } - - // (public) this / a - function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; } - - // (public) this % a - function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; } - - // (public) [this/a,this%a] - function bnDivideAndRemainder(a) { - var q = nbi(), r = nbi(); - this.divRemTo(a,q,r); - return new Array(q,r); - } - - // (protected) this *= n, this >= 0, 1 < n < DV - function bnpDMultiply(n) { - this[this.t] = this.am(0,n-1,this,0,0,this.t); - ++this.t; - this.clamp(); - } - - // (protected) this += n << w words, this >= 0 - function bnpDAddOffset(n,w) { - if(n == 0) return; - while(this.t <= w) this[this.t++] = 0; - this[w] += n; - while(this[w] >= this.DV) { - this[w] -= this.DV; - if(++w >= this.t) this[this.t++] = 0; - ++this[w]; - } - } - - // A "null" reducer - function NullExp() {} - function nNop(x) { return x; } - function nMulTo(x,y,r) { x.multiplyTo(y,r); } - function nSqrTo(x,r) { x.squareTo(r); } - - NullExp.prototype.convert = nNop; - NullExp.prototype.revert = nNop; - NullExp.prototype.mulTo = nMulTo; - NullExp.prototype.sqrTo = nSqrTo; - - // (public) this^e - function bnPow(e) { return this.exp(e,new NullExp()); } - - // (protected) r = lower n words of "this * a", a.t <= n - // "this" should be the larger one if appropriate. - function bnpMultiplyLowerTo(a,n,r) { - var i = Math.min(this.t+a.t,n); - r.s = 0; // assumes a,this >= 0 - r.t = i; - while(i > 0) r[--i] = 0; - var j; - for(j = r.t-this.t; i < j; ++i) r[i+this.t] = this.am(0,a[i],r,i,0,this.t); - for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a[i],r,i,0,n-i); - r.clamp(); - } - - // (protected) r = "this * a" without lower n words, n > 0 - // "this" should be the larger one if appropriate. - function bnpMultiplyUpperTo(a,n,r) { - --n; - var i = r.t = this.t+a.t-n; - r.s = 0; // assumes a,this >= 0 - while(--i >= 0) r[i] = 0; - for(i = Math.max(n-this.t,0); i < a.t; ++i) - r[this.t+i-n] = this.am(n-i,a[i],r,0,0,this.t+i-n); - r.clamp(); - r.drShiftTo(1,r); - } - - // Barrett modular reduction - function Barrett(m) { - // setup Barrett - this.r2 = nbi(); - this.q3 = nbi(); - BigInteger.ONE.dlShiftTo(2*m.t,this.r2); - this.mu = this.r2.divide(m); - this.m = m; - } - - function barrettConvert(x) { - if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m); - else if(x.compareTo(this.m) < 0) return x; - else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; } - } - - function barrettRevert(x) { return x; } - - // x = x mod m (HAC 14.42) - function barrettReduce(x) { - x.drShiftTo(this.m.t-1,this.r2); - if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); } - this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3); - this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2); - while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1); - x.subTo(this.r2,x); - while(x.compareTo(this.m) >= 0) x.subTo(this.m,x); - } - - // r = x^2 mod m; x != r - function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); } - - // r = x*y mod m; x,y != r - function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } - - Barrett.prototype.convert = barrettConvert; - Barrett.prototype.revert = barrettRevert; - Barrett.prototype.reduce = barrettReduce; - Barrett.prototype.mulTo = barrettMulTo; - Barrett.prototype.sqrTo = barrettSqrTo; - - // (public) this^e % m (HAC 14.85) - function bnModPow(e,m) { - var i = e.bitLength(), k, r = nbv(1), z; - if(i <= 0) return r; - else if(i < 18) k = 1; - else if(i < 48) k = 3; - else if(i < 144) k = 4; - else if(i < 768) k = 5; - else k = 6; - if(i < 8) - z = new Classic(m); - else if(m.isEven()) - z = new Barrett(m); - else - z = new Montgomery(m); - - // precomputation - var g = new Array(), n = 3, k1 = k-1, km = (1< 1) { - var g2 = nbi(); - z.sqrTo(g[1],g2); - while(n <= km) { - g[n] = nbi(); - z.mulTo(g2,g[n-2],g[n]); - n += 2; - } - } - - var j = e.t-1, w, is1 = true, r2 = nbi(), t; - i = nbits(e[j])-1; - while(j >= 0) { - if(i >= k1) w = (e[j]>>(i-k1))&km; - else { - w = (e[j]&((1<<(i+1))-1))<<(k1-i); - if(j > 0) w |= e[j-1]>>(this.DB+i-k1); - } - - n = k; - while((w&1) == 0) { w >>= 1; --n; } - if((i -= n) < 0) { i += this.DB; --j; } - if(is1) { // ret == 1, don't bother squaring or multiplying it - g[w].copyTo(r); - is1 = false; - } - else { - while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; } - if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; } - z.mulTo(r2,g[w],r); - } - - while(j >= 0 && (e[j]&(1< 0) { - x.rShiftTo(g,x); - y.rShiftTo(g,y); - } - while(x.signum() > 0) { - if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x); - if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y); - if(x.compareTo(y) >= 0) { - x.subTo(y,x); - x.rShiftTo(1,x); - } - else { - y.subTo(x,y); - y.rShiftTo(1,y); - } - } - if(g > 0) y.lShiftTo(g,y); - return y; - } - - // (protected) this % n, n < 2^26 - function bnpModInt(n) { - if(n <= 0) return 0; - var d = this.DV%n, r = (this.s<0)?n-1:0; - if(this.t > 0) - if(d == 0) r = this[0]%n; - else for(var i = this.t-1; i >= 0; --i) r = (d*r+this[i])%n; - return r; - } - - // (public) 1/this % m (HAC 14.61) - function bnModInverse(m) { - var ac = m.isEven(); - if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO; - var u = m.clone(), v = this.clone(); - var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1); - while(u.signum() != 0) { - while(u.isEven()) { - u.rShiftTo(1,u); - if(ac) { - if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); } - a.rShiftTo(1,a); - } - else if(!b.isEven()) b.subTo(m,b); - b.rShiftTo(1,b); - } - while(v.isEven()) { - v.rShiftTo(1,v); - if(ac) { - if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); } - c.rShiftTo(1,c); - } - else if(!d.isEven()) d.subTo(m,d); - d.rShiftTo(1,d); - } - if(u.compareTo(v) >= 0) { - u.subTo(v,u); - if(ac) a.subTo(c,a); - b.subTo(d,b); - } - else { - v.subTo(u,v); - if(ac) c.subTo(a,c); - d.subTo(b,d); - } - } - if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO; - if(d.compareTo(m) >= 0) return d.subtract(m); - if(d.signum() < 0) d.addTo(m,d); else return d; - if(d.signum() < 0) return d.add(m); else return d; - } - - var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997]; - var lplim = (1<<26)/lowprimes[lowprimes.length-1]; - - // (public) test primality with certainty >= 1-.5^t - function bnIsProbablePrime(t) { - var i, x = this.abs(); - if(x.t == 1 && x[0] <= lowprimes[lowprimes.length-1]) { - for(i = 0; i < lowprimes.length; ++i) - if(x[0] == lowprimes[i]) return true; - return false; - } - if(x.isEven()) return false; - i = 1; - while(i < lowprimes.length) { - var m = lowprimes[i], j = i+1; - while(j < lowprimes.length && m < lplim) m *= lowprimes[j++]; - m = x.modInt(m); - while(i < j) if(m%lowprimes[i++] == 0) return false; - } - return x.millerRabin(t); - } - - // (protected) true if probably prime (HAC 4.24, Miller-Rabin) - function bnpMillerRabin(t) { - var n1 = this.subtract(BigInteger.ONE); - var k = n1.getLowestSetBit(); - if(k <= 0) return false; - var r = n1.shiftRight(k); - t = (t+1)>>1; - if(t > lowprimes.length) t = lowprimes.length; - var a = nbi(); - for(var i = 0; i < t; ++i) { - //Pick bases at random, instead of starting at 2 - a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]); - var y = a.modPow(r,this); - if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) { - var j = 1; - while(j++ < k && y.compareTo(n1) != 0) { - y = y.modPowInt(2,this); - if(y.compareTo(BigInteger.ONE) == 0) return false; - } - if(y.compareTo(n1) != 0) return false; - } - } - return true; - } - - // protected - BigInteger.prototype.chunkSize = bnpChunkSize; - BigInteger.prototype.toRadix = bnpToRadix; - BigInteger.prototype.fromRadix = bnpFromRadix; - BigInteger.prototype.fromNumber = bnpFromNumber; - BigInteger.prototype.bitwiseTo = bnpBitwiseTo; - BigInteger.prototype.changeBit = bnpChangeBit; - BigInteger.prototype.addTo = bnpAddTo; - BigInteger.prototype.dMultiply = bnpDMultiply; - BigInteger.prototype.dAddOffset = bnpDAddOffset; - BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo; - BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo; - BigInteger.prototype.modInt = bnpModInt; - BigInteger.prototype.millerRabin = bnpMillerRabin; - - // public - BigInteger.prototype.clone = bnClone; - BigInteger.prototype.intValue = bnIntValue; - BigInteger.prototype.byteValue = bnByteValue; - BigInteger.prototype.shortValue = bnShortValue; - BigInteger.prototype.signum = bnSigNum; - BigInteger.prototype.toByteArray = bnToByteArray; - BigInteger.prototype.equals = bnEquals; - BigInteger.prototype.min = bnMin; - BigInteger.prototype.max = bnMax; - BigInteger.prototype.and = bnAnd; - BigInteger.prototype.or = bnOr; - BigInteger.prototype.xor = bnXor; - BigInteger.prototype.andNot = bnAndNot; - BigInteger.prototype.not = bnNot; - BigInteger.prototype.shiftLeft = bnShiftLeft; - BigInteger.prototype.shiftRight = bnShiftRight; - BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit; - BigInteger.prototype.bitCount = bnBitCount; - BigInteger.prototype.testBit = bnTestBit; - BigInteger.prototype.setBit = bnSetBit; - BigInteger.prototype.clearBit = bnClearBit; - BigInteger.prototype.flipBit = bnFlipBit; - BigInteger.prototype.add = bnAdd; - BigInteger.prototype.subtract = bnSubtract; - BigInteger.prototype.multiply = bnMultiply; - BigInteger.prototype.divide = bnDivide; - BigInteger.prototype.remainder = bnRemainder; - BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder; - BigInteger.prototype.modPow = bnModPow; - BigInteger.prototype.modInverse = bnModInverse; - BigInteger.prototype.pow = bnPow; - BigInteger.prototype.gcd = bnGCD; - BigInteger.prototype.isProbablePrime = bnIsProbablePrime; - - // JSBN-specific extension - BigInteger.prototype.square = bnSquare; - - // Expose the Barrett function - BigInteger.prototype.Barrett = Barrett - - // BigInteger interfaces not implemented in jsbn: - - // BigInteger(int signum, byte[] magnitude) - // double doubleValue() - // float floatValue() - // int hashCode() - // long longValue() - // static BigInteger valueOf(long val) - - // Random number generator - requires a PRNG backend, e.g. prng4.js - - // For best results, put code like - // - // in your main HTML document. - - var rng_state; - var rng_pool; - var rng_pptr; - - // Mix in a 32-bit integer into the pool - function rng_seed_int(x) { - rng_pool[rng_pptr++] ^= x & 255; - rng_pool[rng_pptr++] ^= (x >> 8) & 255; - rng_pool[rng_pptr++] ^= (x >> 16) & 255; - rng_pool[rng_pptr++] ^= (x >> 24) & 255; - if(rng_pptr >= rng_psize) rng_pptr -= rng_psize; - } - - // Mix in the current time (w/milliseconds) into the pool - function rng_seed_time() { - rng_seed_int(new Date().getTime()); - } - - // Initialize the pool with junk if needed. - if(rng_pool == null) { - rng_pool = new Array(); - rng_pptr = 0; - var t; - if(typeof window !== "undefined" && window.crypto) { - if (window.crypto.getRandomValues) { - // Use webcrypto if available - var ua = new Uint8Array(32); - window.crypto.getRandomValues(ua); - for(t = 0; t < 32; ++t) - rng_pool[rng_pptr++] = ua[t]; - } - else if(navigator.appName == "Netscape" && navigator.appVersion < "5") { - // Extract entropy (256 bits) from NS4 RNG if available - var z = window.crypto.random(32); - for(t = 0; t < z.length; ++t) - rng_pool[rng_pptr++] = z.charCodeAt(t) & 255; - } - } - while(rng_pptr < rng_psize) { // extract some randomness from Math.random() - t = Math.floor(65536 * Math.random()); - rng_pool[rng_pptr++] = t >>> 8; - rng_pool[rng_pptr++] = t & 255; - } - rng_pptr = 0; - rng_seed_time(); - //rng_seed_int(window.screenX); - //rng_seed_int(window.screenY); - } - - function rng_get_byte() { - if(rng_state == null) { - rng_seed_time(); - rng_state = prng_newstate(); - rng_state.init(rng_pool); - for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) - rng_pool[rng_pptr] = 0; - rng_pptr = 0; - //rng_pool = null; - } - // TODO: allow reseeding after first request - return rng_state.next(); - } - - function rng_get_bytes(ba) { - var i; - for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte(); - } - - function SecureRandom() {} - - SecureRandom.prototype.nextBytes = rng_get_bytes; - - // prng4.js - uses Arcfour as a PRNG - - function Arcfour() { - this.i = 0; - this.j = 0; - this.S = new Array(); - } - - // Initialize arcfour context from key, an array of ints, each from [0..255] - function ARC4init(key) { - var i, j, t; - for(i = 0; i < 256; ++i) - this.S[i] = i; - j = 0; - for(i = 0; i < 256; ++i) { - j = (j + this.S[i] + key[i % key.length]) & 255; - t = this.S[i]; - this.S[i] = this.S[j]; - this.S[j] = t; - } - this.i = 0; - this.j = 0; - } - - function ARC4next() { - var t; - this.i = (this.i + 1) & 255; - this.j = (this.j + this.S[this.i]) & 255; - t = this.S[this.i]; - this.S[this.i] = this.S[this.j]; - this.S[this.j] = t; - return this.S[(t + this.S[this.i]) & 255]; - } - - Arcfour.prototype.init = ARC4init; - Arcfour.prototype.next = ARC4next; - - // Plug in your RNG constructor here - function prng_newstate() { - return new Arcfour(); - } - - // Pool size must be a multiple of 4 and greater than 32. - // An array of bytes the size of the pool will be passed to init() - var rng_psize = 256; - - if (typeof exports !== 'undefined') { - exports = module.exports = { - BigInteger: BigInteger, - SecureRandom: SecureRandom, - }; - } else { - this.BigInteger = BigInteger; - this.SecureRandom = SecureRandom; - } - -}).call(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json deleted file mode 100644 index 0113b456..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "jsbn", - "version": "0.1.0", - "description": "The jsbn library is a fast, portable implementation of large-number math in pure JavaScript, enabling public-key crypto and other applications on desktop and mobile browsers.", - "main": "index.js", - "scripts": { - "test": "mocha test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/andyperlitch/jsbn.git" - }, - "keywords": [ - "biginteger", - "bignumber", - "big", - "integer" - ], - "author": { - "name": "Tom Wu" - }, - "license": "BSD", - "gitHead": "148a967b112806e63ddeeed78ee7938eef74c84a", - "bugs": { - "url": "https://github.com/andyperlitch/jsbn/issues" - }, - "homepage": "https://github.com/andyperlitch/jsbn", - "_id": "jsbn@0.1.0", - "_shasum": "650987da0dd74f4ebf5a11377a2aa2d273e97dfd", - "_from": "jsbn@>=0.1.0 <0.2.0", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "andyperlitch", - "email": "andyperlitch@gmail.com" - }, - "dist": { - "shasum": "650987da0dd74f4ebf5a11377a2aa2d273e97dfd", - "tarball": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" - }, - "maintainers": [ - { - "name": "andyperlitch", - "email": "andyperlitch@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/.npmignore deleted file mode 100644 index 7d98dcbd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -.eslintrc -.travis.yml -bower.json -test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md deleted file mode 100644 index 9debcb42..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md +++ /dev/null @@ -1,181 +0,0 @@ -TweetNaCl.js Changelog -====================== - - -v0.14.1 -------- - -No code changes, just tweaked packaging and added COPYING.txt. - - -v0.14.0 -------- - -* **Breaking change!** All functions from `nacl.util` have been removed. These - functions are no longer available: - - nacl.util.decodeUTF8 - nacl.util.encodeUTF8 - nacl.util.decodeBase64 - nacl.util.encodeBase64 - - If want to continue using them, you can include - package: - - - - - or - - var nacl = require('tweetnacl'); - nacl.util = require('tweetnacl-util'); - - However it is recommended to use better packages that have wider - compatibility and better performance. Functions from `nacl.util` were never - intended to be robust solution for string conversion and were included for - convenience: cryptography library is not the right place for them. - - Currently calling these functions will throw error pointing to - `tweetnacl-util-js` (in the next version this error message will be removed). - -* Improved detection of available random number generators, making it possible - to use `nacl.randomBytes` and related functions in Web Workers without - changes. - -* Changes to testing (see README). - - -v0.13.3 -------- - -No code changes. - -* Reverted license field in package.json to "Public domain". - -* Fixed typo in README. - - -v0.13.2 -------- - -* Fixed undefined variable bug in fast version of Poly1305. No worries, this - bug was *never* triggered. - -* Specified CC0 public domain dedication. - -* Updated development dependencies. - - -v0.13.1 -------- - -* Exclude `crypto` and `buffer` modules from browserify builds. - - -v0.13.0 -------- - -* Made `nacl-fast` the default version in NPM package. Now - `require("tweetnacl")` will use fast version; to get the original version, - use `require("tweetnacl/nacl.js")`. - -* Cleanup temporary array after generating random bytes. - - -v0.12.2 -------- - -* Improved performance of curve operations, making `nacl.scalarMult`, `nacl.box`, - `nacl.sign` and related functions up to 3x faster in `nacl-fast` version. - - -v0.12.1 -------- - -* Significantly improved performance of Salsa20 (~1.5x faster) and - Poly1305 (~3.5x faster) in `nacl-fast` version. - - -v0.12.0 -------- - -* Instead of using the given secret key directly, TweetNaCl.js now copies it to - a new array in `nacl.box.keyPair.fromSecretKey` and - `nacl.sign.keyPair.fromSecretKey`. - - -v0.11.2 -------- - -* Added new constant: `nacl.sign.seedLength`. - - -v0.11.1 -------- - -* Even faster hash for both short and long inputs (in `nacl-fast`). - - -v0.11.0 -------- - -* Implement `nacl.sign.keyPair.fromSeed` to enable creation of sign key pairs - deterministically from a 32-byte seed. (It behaves like - [libsodium's](http://doc.libsodium.org/public-key_cryptography/public-key_signatures.html) - `crypto_sign_seed_keypair`: the seed becomes a secret part of the secret key.) - -* Fast version now has an improved hash implementation that is 2x-5x faster. - -* Fixed benchmarks, which may have produced incorrect measurements. - - -v0.10.1 -------- - -* Exported undocumented `nacl.lowlevel.crypto_core_hsalsa20`. - - -v0.10.0 -------- - -* **Signature API breaking change!** `nacl.sign` and `nacl.sign.open` now deal - with signed messages, and new `nacl.sign.detached` and - `nacl.sign.detached.verify` are available. - - Previously, `nacl.sign` returned a signature, and `nacl.sign.open` accepted a - message and "detached" signature. This was unlike NaCl's API, which dealt with - signed messages (concatenation of signature and message). - - The new API is: - - nacl.sign(message, secretKey) -> signedMessage - nacl.sign.open(signedMessage, publicKey) -> message | null - - Since detached signatures are common, two new API functions were introduced: - - nacl.sign.detached(message, secretKey) -> signature - nacl.sign.detached.verify(message, signature, publicKey) -> true | false - - (Note that it's `verify`, not `open`, and it returns a boolean value, unlike - `open`, which returns an "unsigned" message.) - -* NPM package now comes without `test` directory to keep it small. - - -v0.9.2 ------- - -* Improved documentation. -* Fast version: increased theoretical message size limit from 2^32-1 to 2^52 - bytes in Poly1305 (and thus, secretbox and box). However this has no impact - in practice since JavaScript arrays or ArrayBuffers are limited to 32-bit - indexes, and most implementations won't allocate more than a gigabyte or so. - (Obviously, there are no tests for the correctness of implementation.) Also, - it's not recommended to use messages that large without splitting them into - smaller packets anyway. - - -v0.9.1 ------- - -* Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/COPYING.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/COPYING.txt deleted file mode 100644 index c2bd1e5b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/COPYING.txt +++ /dev/null @@ -1,9 +0,0 @@ -Public Domain - -The person who associated a work with this deed has dedicated the work to the -public domain by waiving all of his or her rights to the work worldwide under -copyright law, including all related and neighboring rights, to the extent -allowed by law. - -You can copy, modify, distribute and perform the work, even for commercial -purposes, all without asking permission. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/README.md deleted file mode 100644 index c80bbed8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/README.md +++ /dev/null @@ -1,445 +0,0 @@ -TweetNaCl.js -============ - -Port of [TweetNaCl](http://tweetnacl.cr.yp.to) / [NaCl](http://nacl.cr.yp.to/) -to JavaScript for modern browsers and Node.js. Public domain. - -[![Build Status](https://travis-ci.org/dchest/tweetnacl-js.svg?branch=master) -](https://travis-ci.org/dchest/tweetnacl-js) - -Demo: - -**:warning: Beta version. The library is stable and API is frozen, however -it has not been independently reviewed. If you can help reviewing it, please -[contact me](mailto:dmitry@codingrobots.com).** - -Documentation -============= - -* [Overview](#overview) -* [Installation](#installation) -* [Usage](#usage) - * [Public-key authenticated encryption (box)](#public-key-authenticated-encryption-box) - * [Secret-key authenticated encryption (secretbox)](#secret-key-authenticated-encryption-secretbox) - * [Scalar multiplication](#scalar-multiplication) - * [Signatures](#signatures) - * [Hashing](#hashing) - * [Random bytes generation](#random-bytes-generation) - * [Constant-time comparison](#constant-time-comparison) -* [System requirements](#system-requirements) -* [Development and testing](#development-and-testing) -* [Contributors](#contributors) -* [Who uses it](#who-uses-it) - - -Overview --------- - -The primary goal of this project is to produce a translation of TweetNaCl to -JavaScript which is as close as possible to the original C implementation, plus -a thin layer of idiomatic high-level API on top of it. - -There are two versions, you can use either of them: - -* `nacl.js` is the port of TweetNaCl with minimum differences from the - original + high-level API. - -* `nacl-fast.js` is like `nacl.js`, but with some functions replaced with - faster versions. - - -Installation ------------- - -You can install TweetNaCl.js via a package manager: - -[Bower](http://bower.io): - - $ bower install tweetnacl - -[NPM](https://www.npmjs.org/): - - $ npm install tweetnacl - -or [download source code](https://github.com/dchest/tweetnacl-js/releases). - - -Usage ------ - -All API functions accept and return bytes as `Uint8Array`s. If you need to -encode or decode strings, use functions from - or one of the more robust codec -packages. - -In Node.js v4 and later `Buffer` objects are backed by `Uint8Array`s, so you -can freely pass them to TweetNaCl.js functions as arguments. The returned -objects are still `Uint8Array`s, so if you need `Buffer`s, you'll have to -convert them manually; make sure to convert using copying: `new Buffer(array)`, -instead of sharing: `new Buffer(array.buffer)`, because some functions return -subarrays of their buffers. - - -### Public-key authenticated encryption (box) - -Implements *curve25519-xsalsa20-poly1305*. - -#### nacl.box.keyPair() - -Generates a new random key pair for box and returns it as an object with -`publicKey` and `secretKey` members: - - { - publicKey: ..., // Uint8Array with 32-byte public key - secretKey: ... // Uint8Array with 32-byte secret key - } - - -#### nacl.box.keyPair.fromSecretKey(secretKey) - -Returns a key pair for box with public key corresponding to the given secret -key. - -#### nacl.box(message, nonce, theirPublicKey, mySecretKey) - -Encrypt and authenticates message using peer's public key, our secret key, and -the given nonce, which must be unique for each distinct message for a key pair. - -Returns an encrypted and authenticated message, which is -`nacl.box.overheadLength` longer than the original message. - -#### nacl.box.open(box, nonce, theirPublicKey, mySecretKey) - -Authenticates and decrypts the given box with peer's public key, our secret -key, and the given nonce. - -Returns the original message, or `false` if authentication fails. - -#### nacl.box.before(theirPublicKey, mySecretKey) - -Returns a precomputed shared key which can be used in `nacl.box.after` and -`nacl.box.open.after`. - -#### nacl.box.after(message, nonce, sharedKey) - -Same as `nacl.box`, but uses a shared key precomputed with `nacl.box.before`. - -#### nacl.box.open.after(box, nonce, sharedKey) - -Same as `nacl.box.open`, but uses a shared key precomputed with `nacl.box.before`. - -#### nacl.box.publicKeyLength = 32 - -Length of public key in bytes. - -#### nacl.box.secretKeyLength = 32 - -Length of secret key in bytes. - -#### nacl.box.sharedKeyLength = 32 - -Length of precomputed shared key in bytes. - -#### nacl.box.nonceLength = 24 - -Length of nonce in bytes. - -#### nacl.box.overheadLength = 16 - -Length of overhead added to box compared to original message. - - -### Secret-key authenticated encryption (secretbox) - -Implements *xsalsa20-poly1305*. - -#### nacl.secretbox(message, nonce, key) - -Encrypt and authenticates message using the key and the nonce. The nonce must -be unique for each distinct message for this key. - -Returns an encrypted and authenticated message, which is -`nacl.secretbox.overheadLength` longer than the original message. - -#### nacl.secretbox.open(box, nonce, key) - -Authenticates and decrypts the given secret box using the key and the nonce. - -Returns the original message, or `false` if authentication fails. - -#### nacl.secretbox.keyLength = 32 - -Length of key in bytes. - -#### nacl.secretbox.nonceLength = 24 - -Length of nonce in bytes. - -#### nacl.secretbox.overheadLength = 16 - -Length of overhead added to secret box compared to original message. - - -### Scalar multiplication - -Implements *curve25519*. - -#### nacl.scalarMult(n, p) - -Multiplies an integer `n` by a group element `p` and returns the resulting -group element. - -#### nacl.scalarMult.base(n) - -Multiplies an integer `n` by a standard group element and returns the resulting -group element. - -#### nacl.scalarMult.scalarLength = 32 - -Length of scalar in bytes. - -#### nacl.scalarMult.groupElementLength = 32 - -Length of group element in bytes. - - -### Signatures - -Implements [ed25519](http://ed25519.cr.yp.to). - -#### nacl.sign.keyPair() - -Generates new random key pair for signing and returns it as an object with -`publicKey` and `secretKey` members: - - { - publicKey: ..., // Uint8Array with 32-byte public key - secretKey: ... // Uint8Array with 64-byte secret key - } - -#### nacl.sign.keyPair.fromSecretKey(secretKey) - -Returns a signing key pair with public key corresponding to the given -64-byte secret key. The secret key must have been generated by -`nacl.sign.keyPair` or `nacl.sign.keyPair.fromSeed`. - -#### nacl.sign.keyPair.fromSeed(seed) - -Returns a new signing key pair generated deterministically from a 32-byte seed. -The seed must contain enough entropy to be secure. This method is not -recommended for general use: instead, use `nacl.sign.keyPair` to generate a new -key pair from a random seed. - -#### nacl.sign(message, secretKey) - -Signs the message using the secret key and returns a signed message. - -#### nacl.sign.open(signedMessage, publicKey) - -Verifies the signed message and returns the message without signature. - -Returns `null` if verification failed. - -#### nacl.sign.detached(message, secretKey) - -Signs the message using the secret key and returns a signature. - -#### nacl.sign.detached.verify(message, signature, publicKey) - -Verifies the signature for the message and returns `true` if verification -succeeded or `false` if it failed. - -#### nacl.sign.publicKeyLength = 32 - -Length of signing public key in bytes. - -#### nacl.sign.secretKeyLength = 64 - -Length of signing secret key in bytes. - -#### nacl.sign.seedLength = 32 - -Length of seed for `nacl.sign.keyPair.fromSeed` in bytes. - -#### nacl.sign.signatureLength = 64 - -Length of signature in bytes. - - -### Hashing - -Implements *SHA-512*. - -#### nacl.hash(message) - -Returns SHA-512 hash of the message. - -#### nacl.hash.hashLength = 64 - -Length of hash in bytes. - - -### Random bytes generation - -#### nacl.randomBytes(length) - -Returns a `Uint8Array` of the given length containing random bytes of -cryptographic quality. - -**Implementation note** - -TweetNaCl.js uses the following methods to generate random bytes, -depending on the platform it runs on: - -* `window.crypto.getRandomValues` (WebCrypto standard) -* `window.msCrypto.getRandomValues` (Internet Explorer 11) -* `crypto.randomBytes` (Node.js) - -If the platform doesn't provide a suitable PRNG, the following functions, -which require random numbers, will throw exception: - -* `nacl.randomBytes` -* `nacl.box.keyPair` -* `nacl.sign.keyPair` - -Other functions are deterministic and will continue working. - -If a platform you are targeting doesn't implement secure random number -generator, but you somehow have a cryptographically-strong source of entropy -(not `Math.random`!), and you know what you are doing, you can plug it into -TweetNaCl.js like this: - - nacl.setPRNG(function(x, n) { - // ... copy n random bytes into x ... - }); - -Note that `nacl.setPRNG` *completely replaces* internal random byte generator -with the one provided. - - -### Constant-time comparison - -#### nacl.verify(x, y) - -Compares `x` and `y` in constant time and returns `true` if their lengths are -non-zero and equal, and their contents are equal. - -Returns `false` if either of the arguments has zero length, or arguments have -different lengths, or their contents differ. - - -System requirements -------------------- - -TweetNaCl.js supports modern browsers that have a cryptographically secure -pseudorandom number generator and typed arrays, including the latest versions -of: - -* Chrome -* Firefox -* Safari (Mac, iOS) -* Internet Explorer 11 - -Other systems: - -* Node.js - - -Development and testing ------------------------- - -Install NPM modules needed for development: - - $ npm install - -To build minified versions: - - $ npm run build - -Tests use minified version, so make sure to rebuild it every time you change -`nacl.js` or `nacl-fast.js`. - -### Testing - -To run tests in Node.js: - - $ npm run test-node - -By default all tests described here work on `nacl.min.js`. To test other -versions, set environment variable `NACL_SRC` to the file name you want to test. -For example, the following command will test fast minified version: - - $ NACL_SRC=nacl-fast.min.js npm run test-node - -To run full suite of tests in Node.js, including comparing outputs of -JavaScript port to outputs of the original C version: - - $ npm run test-node-all - -To prepare tests for browsers: - - $ npm run build-test-browser - -and then open `test/browser/test.html` (or `test/browser/test-fast.html`) to -run them. - -To run headless browser tests with `tape-run` (powered by Electron): - - $ npm run test-browser - -(If you get `Error: spawn ENOENT`, install *xvfb*: `sudo apt-get install xvfb`.) - -To run tests in both Node and Electron: - - $ npm test - -### Benchmarking - -To run benchmarks in Node.js: - - $ npm run bench - $ NACL_SRC=nacl-fast.min.js npm run bench - -To run benchmarks in a browser, open `test/benchmark/bench.html` (or -`test/benchmark/bench-fast.html`). - - -Contributors ------------- - -JavaScript port: - - * [Dmitry Chestnykh](http://github.com/dchest) (ported xsalsa20, poly1305, curve25519) - * [Devi Mandiri](https://github.com/devi) (ported curve25519, ed25519, sha512) - -Original authors of [NaCl](http://nacl.cr.yp.to), [TweetNaCl](http://tweetnacl.cr.yp.to) -and [Poly1305-donna](https://github.com/floodyberry/poly1305-donna) -(who are *not* responsible for any errors in this implementation): - - * [Daniel J. Bernstein](http://cr.yp.to/djb.html) - * Wesley Janssen - * [Tanja Lange](http://hyperelliptic.org/tanja) - * [Peter Schwabe](http://www.cryptojedi.org/users/peter/) - * [Matthew Dempsky](https://github.com/mdempsky) - * [Andrew Moon](https://github.com/floodyberry) - -Contributors have dedicated their work to the public domain. - -This software is distributed without any warranty. - - -Third-party libraries based on TweetNaCl.js -------------------------------------------- - -* [forward-secrecy](https://github.com/alax/forward-secrecy) — Axolotl ratchet implementation -* [nacl-stream](https://github.com/dchest/nacl-stream-js) - streaming encryption -* [tweetnacl-auth-js](https://github.com/dchest/tweetnacl-auth-js) — implementation of [`crypto_auth`](http://nacl.cr.yp.to/auth.html) - - -Who uses it ------------ - -Some notable users of TweetNaCl.js: - -* [miniLock](http://minilock.io/) -* [Stellar](https://www.stellar.org/) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.js deleted file mode 100644 index 5e4562fe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.js +++ /dev/null @@ -1,2388 +0,0 @@ -(function(nacl) { -'use strict'; - -// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri. -// Public domain. -// -// Implementation derived from TweetNaCl version 20140427. -// See for details: http://tweetnacl.cr.yp.to/ - -var gf = function(init) { - var i, r = new Float64Array(16); - if (init) for (i = 0; i < init.length; i++) r[i] = init[i]; - return r; -}; - -// Pluggable, initialized in high-level API below. -var randombytes = function(/* x, n */) { throw new Error('no PRNG'); }; - -var _0 = new Uint8Array(16); -var _9 = new Uint8Array(32); _9[0] = 9; - -var gf0 = gf(), - gf1 = gf([1]), - _121665 = gf([0xdb41, 1]), - D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]), - D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]), - X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]), - Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]), - I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]); - -function ts64(x, i, h, l) { - x[i] = (h >> 24) & 0xff; - x[i+1] = (h >> 16) & 0xff; - x[i+2] = (h >> 8) & 0xff; - x[i+3] = h & 0xff; - x[i+4] = (l >> 24) & 0xff; - x[i+5] = (l >> 16) & 0xff; - x[i+6] = (l >> 8) & 0xff; - x[i+7] = l & 0xff; -} - -function vn(x, xi, y, yi, n) { - var i,d = 0; - for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i]; - return (1 & ((d - 1) >>> 8)) - 1; -} - -function crypto_verify_16(x, xi, y, yi) { - return vn(x,xi,y,yi,16); -} - -function crypto_verify_32(x, xi, y, yi) { - return vn(x,xi,y,yi,32); -} - -function core_salsa20(o, p, k, c) { - var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24, - j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24, - j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24, - j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24, - j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24, - j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24, - j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24, - j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24, - j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24, - j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24, - j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24, - j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24, - j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24, - j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24, - j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24, - j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24; - - var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7, - x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, - x15 = j15, u; - - for (var i = 0; i < 20; i += 2) { - u = x0 + x12 | 0; - x4 ^= u<<7 | u>>>(32-7); - u = x4 + x0 | 0; - x8 ^= u<<9 | u>>>(32-9); - u = x8 + x4 | 0; - x12 ^= u<<13 | u>>>(32-13); - u = x12 + x8 | 0; - x0 ^= u<<18 | u>>>(32-18); - - u = x5 + x1 | 0; - x9 ^= u<<7 | u>>>(32-7); - u = x9 + x5 | 0; - x13 ^= u<<9 | u>>>(32-9); - u = x13 + x9 | 0; - x1 ^= u<<13 | u>>>(32-13); - u = x1 + x13 | 0; - x5 ^= u<<18 | u>>>(32-18); - - u = x10 + x6 | 0; - x14 ^= u<<7 | u>>>(32-7); - u = x14 + x10 | 0; - x2 ^= u<<9 | u>>>(32-9); - u = x2 + x14 | 0; - x6 ^= u<<13 | u>>>(32-13); - u = x6 + x2 | 0; - x10 ^= u<<18 | u>>>(32-18); - - u = x15 + x11 | 0; - x3 ^= u<<7 | u>>>(32-7); - u = x3 + x15 | 0; - x7 ^= u<<9 | u>>>(32-9); - u = x7 + x3 | 0; - x11 ^= u<<13 | u>>>(32-13); - u = x11 + x7 | 0; - x15 ^= u<<18 | u>>>(32-18); - - u = x0 + x3 | 0; - x1 ^= u<<7 | u>>>(32-7); - u = x1 + x0 | 0; - x2 ^= u<<9 | u>>>(32-9); - u = x2 + x1 | 0; - x3 ^= u<<13 | u>>>(32-13); - u = x3 + x2 | 0; - x0 ^= u<<18 | u>>>(32-18); - - u = x5 + x4 | 0; - x6 ^= u<<7 | u>>>(32-7); - u = x6 + x5 | 0; - x7 ^= u<<9 | u>>>(32-9); - u = x7 + x6 | 0; - x4 ^= u<<13 | u>>>(32-13); - u = x4 + x7 | 0; - x5 ^= u<<18 | u>>>(32-18); - - u = x10 + x9 | 0; - x11 ^= u<<7 | u>>>(32-7); - u = x11 + x10 | 0; - x8 ^= u<<9 | u>>>(32-9); - u = x8 + x11 | 0; - x9 ^= u<<13 | u>>>(32-13); - u = x9 + x8 | 0; - x10 ^= u<<18 | u>>>(32-18); - - u = x15 + x14 | 0; - x12 ^= u<<7 | u>>>(32-7); - u = x12 + x15 | 0; - x13 ^= u<<9 | u>>>(32-9); - u = x13 + x12 | 0; - x14 ^= u<<13 | u>>>(32-13); - u = x14 + x13 | 0; - x15 ^= u<<18 | u>>>(32-18); - } - x0 = x0 + j0 | 0; - x1 = x1 + j1 | 0; - x2 = x2 + j2 | 0; - x3 = x3 + j3 | 0; - x4 = x4 + j4 | 0; - x5 = x5 + j5 | 0; - x6 = x6 + j6 | 0; - x7 = x7 + j7 | 0; - x8 = x8 + j8 | 0; - x9 = x9 + j9 | 0; - x10 = x10 + j10 | 0; - x11 = x11 + j11 | 0; - x12 = x12 + j12 | 0; - x13 = x13 + j13 | 0; - x14 = x14 + j14 | 0; - x15 = x15 + j15 | 0; - - o[ 0] = x0 >>> 0 & 0xff; - o[ 1] = x0 >>> 8 & 0xff; - o[ 2] = x0 >>> 16 & 0xff; - o[ 3] = x0 >>> 24 & 0xff; - - o[ 4] = x1 >>> 0 & 0xff; - o[ 5] = x1 >>> 8 & 0xff; - o[ 6] = x1 >>> 16 & 0xff; - o[ 7] = x1 >>> 24 & 0xff; - - o[ 8] = x2 >>> 0 & 0xff; - o[ 9] = x2 >>> 8 & 0xff; - o[10] = x2 >>> 16 & 0xff; - o[11] = x2 >>> 24 & 0xff; - - o[12] = x3 >>> 0 & 0xff; - o[13] = x3 >>> 8 & 0xff; - o[14] = x3 >>> 16 & 0xff; - o[15] = x3 >>> 24 & 0xff; - - o[16] = x4 >>> 0 & 0xff; - o[17] = x4 >>> 8 & 0xff; - o[18] = x4 >>> 16 & 0xff; - o[19] = x4 >>> 24 & 0xff; - - o[20] = x5 >>> 0 & 0xff; - o[21] = x5 >>> 8 & 0xff; - o[22] = x5 >>> 16 & 0xff; - o[23] = x5 >>> 24 & 0xff; - - o[24] = x6 >>> 0 & 0xff; - o[25] = x6 >>> 8 & 0xff; - o[26] = x6 >>> 16 & 0xff; - o[27] = x6 >>> 24 & 0xff; - - o[28] = x7 >>> 0 & 0xff; - o[29] = x7 >>> 8 & 0xff; - o[30] = x7 >>> 16 & 0xff; - o[31] = x7 >>> 24 & 0xff; - - o[32] = x8 >>> 0 & 0xff; - o[33] = x8 >>> 8 & 0xff; - o[34] = x8 >>> 16 & 0xff; - o[35] = x8 >>> 24 & 0xff; - - o[36] = x9 >>> 0 & 0xff; - o[37] = x9 >>> 8 & 0xff; - o[38] = x9 >>> 16 & 0xff; - o[39] = x9 >>> 24 & 0xff; - - o[40] = x10 >>> 0 & 0xff; - o[41] = x10 >>> 8 & 0xff; - o[42] = x10 >>> 16 & 0xff; - o[43] = x10 >>> 24 & 0xff; - - o[44] = x11 >>> 0 & 0xff; - o[45] = x11 >>> 8 & 0xff; - o[46] = x11 >>> 16 & 0xff; - o[47] = x11 >>> 24 & 0xff; - - o[48] = x12 >>> 0 & 0xff; - o[49] = x12 >>> 8 & 0xff; - o[50] = x12 >>> 16 & 0xff; - o[51] = x12 >>> 24 & 0xff; - - o[52] = x13 >>> 0 & 0xff; - o[53] = x13 >>> 8 & 0xff; - o[54] = x13 >>> 16 & 0xff; - o[55] = x13 >>> 24 & 0xff; - - o[56] = x14 >>> 0 & 0xff; - o[57] = x14 >>> 8 & 0xff; - o[58] = x14 >>> 16 & 0xff; - o[59] = x14 >>> 24 & 0xff; - - o[60] = x15 >>> 0 & 0xff; - o[61] = x15 >>> 8 & 0xff; - o[62] = x15 >>> 16 & 0xff; - o[63] = x15 >>> 24 & 0xff; -} - -function core_hsalsa20(o,p,k,c) { - var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24, - j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24, - j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24, - j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24, - j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24, - j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24, - j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24, - j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24, - j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24, - j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24, - j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24, - j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24, - j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24, - j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24, - j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24, - j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24; - - var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7, - x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, - x15 = j15, u; - - for (var i = 0; i < 20; i += 2) { - u = x0 + x12 | 0; - x4 ^= u<<7 | u>>>(32-7); - u = x4 + x0 | 0; - x8 ^= u<<9 | u>>>(32-9); - u = x8 + x4 | 0; - x12 ^= u<<13 | u>>>(32-13); - u = x12 + x8 | 0; - x0 ^= u<<18 | u>>>(32-18); - - u = x5 + x1 | 0; - x9 ^= u<<7 | u>>>(32-7); - u = x9 + x5 | 0; - x13 ^= u<<9 | u>>>(32-9); - u = x13 + x9 | 0; - x1 ^= u<<13 | u>>>(32-13); - u = x1 + x13 | 0; - x5 ^= u<<18 | u>>>(32-18); - - u = x10 + x6 | 0; - x14 ^= u<<7 | u>>>(32-7); - u = x14 + x10 | 0; - x2 ^= u<<9 | u>>>(32-9); - u = x2 + x14 | 0; - x6 ^= u<<13 | u>>>(32-13); - u = x6 + x2 | 0; - x10 ^= u<<18 | u>>>(32-18); - - u = x15 + x11 | 0; - x3 ^= u<<7 | u>>>(32-7); - u = x3 + x15 | 0; - x7 ^= u<<9 | u>>>(32-9); - u = x7 + x3 | 0; - x11 ^= u<<13 | u>>>(32-13); - u = x11 + x7 | 0; - x15 ^= u<<18 | u>>>(32-18); - - u = x0 + x3 | 0; - x1 ^= u<<7 | u>>>(32-7); - u = x1 + x0 | 0; - x2 ^= u<<9 | u>>>(32-9); - u = x2 + x1 | 0; - x3 ^= u<<13 | u>>>(32-13); - u = x3 + x2 | 0; - x0 ^= u<<18 | u>>>(32-18); - - u = x5 + x4 | 0; - x6 ^= u<<7 | u>>>(32-7); - u = x6 + x5 | 0; - x7 ^= u<<9 | u>>>(32-9); - u = x7 + x6 | 0; - x4 ^= u<<13 | u>>>(32-13); - u = x4 + x7 | 0; - x5 ^= u<<18 | u>>>(32-18); - - u = x10 + x9 | 0; - x11 ^= u<<7 | u>>>(32-7); - u = x11 + x10 | 0; - x8 ^= u<<9 | u>>>(32-9); - u = x8 + x11 | 0; - x9 ^= u<<13 | u>>>(32-13); - u = x9 + x8 | 0; - x10 ^= u<<18 | u>>>(32-18); - - u = x15 + x14 | 0; - x12 ^= u<<7 | u>>>(32-7); - u = x12 + x15 | 0; - x13 ^= u<<9 | u>>>(32-9); - u = x13 + x12 | 0; - x14 ^= u<<13 | u>>>(32-13); - u = x14 + x13 | 0; - x15 ^= u<<18 | u>>>(32-18); - } - - o[ 0] = x0 >>> 0 & 0xff; - o[ 1] = x0 >>> 8 & 0xff; - o[ 2] = x0 >>> 16 & 0xff; - o[ 3] = x0 >>> 24 & 0xff; - - o[ 4] = x5 >>> 0 & 0xff; - o[ 5] = x5 >>> 8 & 0xff; - o[ 6] = x5 >>> 16 & 0xff; - o[ 7] = x5 >>> 24 & 0xff; - - o[ 8] = x10 >>> 0 & 0xff; - o[ 9] = x10 >>> 8 & 0xff; - o[10] = x10 >>> 16 & 0xff; - o[11] = x10 >>> 24 & 0xff; - - o[12] = x15 >>> 0 & 0xff; - o[13] = x15 >>> 8 & 0xff; - o[14] = x15 >>> 16 & 0xff; - o[15] = x15 >>> 24 & 0xff; - - o[16] = x6 >>> 0 & 0xff; - o[17] = x6 >>> 8 & 0xff; - o[18] = x6 >>> 16 & 0xff; - o[19] = x6 >>> 24 & 0xff; - - o[20] = x7 >>> 0 & 0xff; - o[21] = x7 >>> 8 & 0xff; - o[22] = x7 >>> 16 & 0xff; - o[23] = x7 >>> 24 & 0xff; - - o[24] = x8 >>> 0 & 0xff; - o[25] = x8 >>> 8 & 0xff; - o[26] = x8 >>> 16 & 0xff; - o[27] = x8 >>> 24 & 0xff; - - o[28] = x9 >>> 0 & 0xff; - o[29] = x9 >>> 8 & 0xff; - o[30] = x9 >>> 16 & 0xff; - o[31] = x9 >>> 24 & 0xff; -} - -function crypto_core_salsa20(out,inp,k,c) { - core_salsa20(out,inp,k,c); -} - -function crypto_core_hsalsa20(out,inp,k,c) { - core_hsalsa20(out,inp,k,c); -} - -var sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]); - // "expand 32-byte k" - -function crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) { - var z = new Uint8Array(16), x = new Uint8Array(64); - var u, i; - for (i = 0; i < 16; i++) z[i] = 0; - for (i = 0; i < 8; i++) z[i] = n[i]; - while (b >= 64) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i]; - u = 1; - for (i = 8; i < 16; i++) { - u = u + (z[i] & 0xff) | 0; - z[i] = u & 0xff; - u >>>= 8; - } - b -= 64; - cpos += 64; - mpos += 64; - } - if (b > 0) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i]; - } - return 0; -} - -function crypto_stream_salsa20(c,cpos,b,n,k) { - var z = new Uint8Array(16), x = new Uint8Array(64); - var u, i; - for (i = 0; i < 16; i++) z[i] = 0; - for (i = 0; i < 8; i++) z[i] = n[i]; - while (b >= 64) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < 64; i++) c[cpos+i] = x[i]; - u = 1; - for (i = 8; i < 16; i++) { - u = u + (z[i] & 0xff) | 0; - z[i] = u & 0xff; - u >>>= 8; - } - b -= 64; - cpos += 64; - } - if (b > 0) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < b; i++) c[cpos+i] = x[i]; - } - return 0; -} - -function crypto_stream(c,cpos,d,n,k) { - var s = new Uint8Array(32); - crypto_core_hsalsa20(s,n,k,sigma); - var sn = new Uint8Array(8); - for (var i = 0; i < 8; i++) sn[i] = n[i+16]; - return crypto_stream_salsa20(c,cpos,d,sn,s); -} - -function crypto_stream_xor(c,cpos,m,mpos,d,n,k) { - var s = new Uint8Array(32); - crypto_core_hsalsa20(s,n,k,sigma); - var sn = new Uint8Array(8); - for (var i = 0; i < 8; i++) sn[i] = n[i+16]; - return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s); -} - -/* -* Port of Andrew Moon's Poly1305-donna-16. Public domain. -* https://github.com/floodyberry/poly1305-donna -*/ - -var poly1305 = function(key) { - this.buffer = new Uint8Array(16); - this.r = new Uint16Array(10); - this.h = new Uint16Array(10); - this.pad = new Uint16Array(8); - this.leftover = 0; - this.fin = 0; - - var t0, t1, t2, t3, t4, t5, t6, t7; - - t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff; - t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff; - t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03; - t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff; - t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff; - this.r[5] = ((t4 >>> 1)) & 0x1ffe; - t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff; - t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81; - t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff; - this.r[9] = ((t7 >>> 5)) & 0x007f; - - this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8; - this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8; - this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8; - this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8; - this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8; - this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8; - this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8; - this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8; -}; - -poly1305.prototype.blocks = function(m, mpos, bytes) { - var hibit = this.fin ? 0 : (1 << 11); - var t0, t1, t2, t3, t4, t5, t6, t7, c; - var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9; - - var h0 = this.h[0], - h1 = this.h[1], - h2 = this.h[2], - h3 = this.h[3], - h4 = this.h[4], - h5 = this.h[5], - h6 = this.h[6], - h7 = this.h[7], - h8 = this.h[8], - h9 = this.h[9]; - - var r0 = this.r[0], - r1 = this.r[1], - r2 = this.r[2], - r3 = this.r[3], - r4 = this.r[4], - r5 = this.r[5], - r6 = this.r[6], - r7 = this.r[7], - r8 = this.r[8], - r9 = this.r[9]; - - while (bytes >= 16) { - t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff; - t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff; - t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff; - t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff; - t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff; - h5 += ((t4 >>> 1)) & 0x1fff; - t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff; - t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff; - t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff; - h9 += ((t7 >>> 5)) | hibit; - - c = 0; - - d0 = c; - d0 += h0 * r0; - d0 += h1 * (5 * r9); - d0 += h2 * (5 * r8); - d0 += h3 * (5 * r7); - d0 += h4 * (5 * r6); - c = (d0 >>> 13); d0 &= 0x1fff; - d0 += h5 * (5 * r5); - d0 += h6 * (5 * r4); - d0 += h7 * (5 * r3); - d0 += h8 * (5 * r2); - d0 += h9 * (5 * r1); - c += (d0 >>> 13); d0 &= 0x1fff; - - d1 = c; - d1 += h0 * r1; - d1 += h1 * r0; - d1 += h2 * (5 * r9); - d1 += h3 * (5 * r8); - d1 += h4 * (5 * r7); - c = (d1 >>> 13); d1 &= 0x1fff; - d1 += h5 * (5 * r6); - d1 += h6 * (5 * r5); - d1 += h7 * (5 * r4); - d1 += h8 * (5 * r3); - d1 += h9 * (5 * r2); - c += (d1 >>> 13); d1 &= 0x1fff; - - d2 = c; - d2 += h0 * r2; - d2 += h1 * r1; - d2 += h2 * r0; - d2 += h3 * (5 * r9); - d2 += h4 * (5 * r8); - c = (d2 >>> 13); d2 &= 0x1fff; - d2 += h5 * (5 * r7); - d2 += h6 * (5 * r6); - d2 += h7 * (5 * r5); - d2 += h8 * (5 * r4); - d2 += h9 * (5 * r3); - c += (d2 >>> 13); d2 &= 0x1fff; - - d3 = c; - d3 += h0 * r3; - d3 += h1 * r2; - d3 += h2 * r1; - d3 += h3 * r0; - d3 += h4 * (5 * r9); - c = (d3 >>> 13); d3 &= 0x1fff; - d3 += h5 * (5 * r8); - d3 += h6 * (5 * r7); - d3 += h7 * (5 * r6); - d3 += h8 * (5 * r5); - d3 += h9 * (5 * r4); - c += (d3 >>> 13); d3 &= 0x1fff; - - d4 = c; - d4 += h0 * r4; - d4 += h1 * r3; - d4 += h2 * r2; - d4 += h3 * r1; - d4 += h4 * r0; - c = (d4 >>> 13); d4 &= 0x1fff; - d4 += h5 * (5 * r9); - d4 += h6 * (5 * r8); - d4 += h7 * (5 * r7); - d4 += h8 * (5 * r6); - d4 += h9 * (5 * r5); - c += (d4 >>> 13); d4 &= 0x1fff; - - d5 = c; - d5 += h0 * r5; - d5 += h1 * r4; - d5 += h2 * r3; - d5 += h3 * r2; - d5 += h4 * r1; - c = (d5 >>> 13); d5 &= 0x1fff; - d5 += h5 * r0; - d5 += h6 * (5 * r9); - d5 += h7 * (5 * r8); - d5 += h8 * (5 * r7); - d5 += h9 * (5 * r6); - c += (d5 >>> 13); d5 &= 0x1fff; - - d6 = c; - d6 += h0 * r6; - d6 += h1 * r5; - d6 += h2 * r4; - d6 += h3 * r3; - d6 += h4 * r2; - c = (d6 >>> 13); d6 &= 0x1fff; - d6 += h5 * r1; - d6 += h6 * r0; - d6 += h7 * (5 * r9); - d6 += h8 * (5 * r8); - d6 += h9 * (5 * r7); - c += (d6 >>> 13); d6 &= 0x1fff; - - d7 = c; - d7 += h0 * r7; - d7 += h1 * r6; - d7 += h2 * r5; - d7 += h3 * r4; - d7 += h4 * r3; - c = (d7 >>> 13); d7 &= 0x1fff; - d7 += h5 * r2; - d7 += h6 * r1; - d7 += h7 * r0; - d7 += h8 * (5 * r9); - d7 += h9 * (5 * r8); - c += (d7 >>> 13); d7 &= 0x1fff; - - d8 = c; - d8 += h0 * r8; - d8 += h1 * r7; - d8 += h2 * r6; - d8 += h3 * r5; - d8 += h4 * r4; - c = (d8 >>> 13); d8 &= 0x1fff; - d8 += h5 * r3; - d8 += h6 * r2; - d8 += h7 * r1; - d8 += h8 * r0; - d8 += h9 * (5 * r9); - c += (d8 >>> 13); d8 &= 0x1fff; - - d9 = c; - d9 += h0 * r9; - d9 += h1 * r8; - d9 += h2 * r7; - d9 += h3 * r6; - d9 += h4 * r5; - c = (d9 >>> 13); d9 &= 0x1fff; - d9 += h5 * r4; - d9 += h6 * r3; - d9 += h7 * r2; - d9 += h8 * r1; - d9 += h9 * r0; - c += (d9 >>> 13); d9 &= 0x1fff; - - c = (((c << 2) + c)) | 0; - c = (c + d0) | 0; - d0 = c & 0x1fff; - c = (c >>> 13); - d1 += c; - - h0 = d0; - h1 = d1; - h2 = d2; - h3 = d3; - h4 = d4; - h5 = d5; - h6 = d6; - h7 = d7; - h8 = d8; - h9 = d9; - - mpos += 16; - bytes -= 16; - } - this.h[0] = h0; - this.h[1] = h1; - this.h[2] = h2; - this.h[3] = h3; - this.h[4] = h4; - this.h[5] = h5; - this.h[6] = h6; - this.h[7] = h7; - this.h[8] = h8; - this.h[9] = h9; -}; - -poly1305.prototype.finish = function(mac, macpos) { - var g = new Uint16Array(10); - var c, mask, f, i; - - if (this.leftover) { - i = this.leftover; - this.buffer[i++] = 1; - for (; i < 16; i++) this.buffer[i] = 0; - this.fin = 1; - this.blocks(this.buffer, 0, 16); - } - - c = this.h[1] >>> 13; - this.h[1] &= 0x1fff; - for (i = 2; i < 10; i++) { - this.h[i] += c; - c = this.h[i] >>> 13; - this.h[i] &= 0x1fff; - } - this.h[0] += (c * 5); - c = this.h[0] >>> 13; - this.h[0] &= 0x1fff; - this.h[1] += c; - c = this.h[1] >>> 13; - this.h[1] &= 0x1fff; - this.h[2] += c; - - g[0] = this.h[0] + 5; - c = g[0] >>> 13; - g[0] &= 0x1fff; - for (i = 1; i < 10; i++) { - g[i] = this.h[i] + c; - c = g[i] >>> 13; - g[i] &= 0x1fff; - } - g[9] -= (1 << 13); - - mask = (c ^ 1) - 1; - for (i = 0; i < 10; i++) g[i] &= mask; - mask = ~mask; - for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i]; - - this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff; - this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff; - this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff; - this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff; - this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff; - this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff; - this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff; - this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff; - - f = this.h[0] + this.pad[0]; - this.h[0] = f & 0xffff; - for (i = 1; i < 8; i++) { - f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0; - this.h[i] = f & 0xffff; - } - - mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff; - mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff; - mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff; - mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff; - mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff; - mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff; - mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff; - mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff; - mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff; - mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff; - mac[macpos+10] = (this.h[5] >>> 0) & 0xff; - mac[macpos+11] = (this.h[5] >>> 8) & 0xff; - mac[macpos+12] = (this.h[6] >>> 0) & 0xff; - mac[macpos+13] = (this.h[6] >>> 8) & 0xff; - mac[macpos+14] = (this.h[7] >>> 0) & 0xff; - mac[macpos+15] = (this.h[7] >>> 8) & 0xff; -}; - -poly1305.prototype.update = function(m, mpos, bytes) { - var i, want; - - if (this.leftover) { - want = (16 - this.leftover); - if (want > bytes) - want = bytes; - for (i = 0; i < want; i++) - this.buffer[this.leftover + i] = m[mpos+i]; - bytes -= want; - mpos += want; - this.leftover += want; - if (this.leftover < 16) - return; - this.blocks(this.buffer, 0, 16); - this.leftover = 0; - } - - if (bytes >= 16) { - want = bytes - (bytes % 16); - this.blocks(m, mpos, want); - mpos += want; - bytes -= want; - } - - if (bytes) { - for (i = 0; i < bytes; i++) - this.buffer[this.leftover + i] = m[mpos+i]; - this.leftover += bytes; - } -}; - -function crypto_onetimeauth(out, outpos, m, mpos, n, k) { - var s = new poly1305(k); - s.update(m, mpos, n); - s.finish(out, outpos); - return 0; -} - -function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) { - var x = new Uint8Array(16); - crypto_onetimeauth(x,0,m,mpos,n,k); - return crypto_verify_16(h,hpos,x,0); -} - -function crypto_secretbox(c,m,d,n,k) { - var i; - if (d < 32) return -1; - crypto_stream_xor(c,0,m,0,d,n,k); - crypto_onetimeauth(c, 16, c, 32, d - 32, c); - for (i = 0; i < 16; i++) c[i] = 0; - return 0; -} - -function crypto_secretbox_open(m,c,d,n,k) { - var i; - var x = new Uint8Array(32); - if (d < 32) return -1; - crypto_stream(x,0,32,n,k); - if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1; - crypto_stream_xor(m,0,c,0,d,n,k); - for (i = 0; i < 32; i++) m[i] = 0; - return 0; -} - -function set25519(r, a) { - var i; - for (i = 0; i < 16; i++) r[i] = a[i]|0; -} - -function car25519(o) { - var i, v, c = 1; - for (i = 0; i < 16; i++) { - v = o[i] + c + 65535; - c = Math.floor(v / 65536); - o[i] = v - c * 65536; - } - o[0] += c-1 + 37 * (c-1); -} - -function sel25519(p, q, b) { - var t, c = ~(b-1); - for (var i = 0; i < 16; i++) { - t = c & (p[i] ^ q[i]); - p[i] ^= t; - q[i] ^= t; - } -} - -function pack25519(o, n) { - var i, j, b; - var m = gf(), t = gf(); - for (i = 0; i < 16; i++) t[i] = n[i]; - car25519(t); - car25519(t); - car25519(t); - for (j = 0; j < 2; j++) { - m[0] = t[0] - 0xffed; - for (i = 1; i < 15; i++) { - m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1); - m[i-1] &= 0xffff; - } - m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1); - b = (m[15]>>16) & 1; - m[14] &= 0xffff; - sel25519(t, m, 1-b); - } - for (i = 0; i < 16; i++) { - o[2*i] = t[i] & 0xff; - o[2*i+1] = t[i]>>8; - } -} - -function neq25519(a, b) { - var c = new Uint8Array(32), d = new Uint8Array(32); - pack25519(c, a); - pack25519(d, b); - return crypto_verify_32(c, 0, d, 0); -} - -function par25519(a) { - var d = new Uint8Array(32); - pack25519(d, a); - return d[0] & 1; -} - -function unpack25519(o, n) { - var i; - for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8); - o[15] &= 0x7fff; -} - -function A(o, a, b) { - for (var i = 0; i < 16; i++) o[i] = a[i] + b[i]; -} - -function Z(o, a, b) { - for (var i = 0; i < 16; i++) o[i] = a[i] - b[i]; -} - -function M(o, a, b) { - var v, c, - t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, - t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, - t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, - t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, - b0 = b[0], - b1 = b[1], - b2 = b[2], - b3 = b[3], - b4 = b[4], - b5 = b[5], - b6 = b[6], - b7 = b[7], - b8 = b[8], - b9 = b[9], - b10 = b[10], - b11 = b[11], - b12 = b[12], - b13 = b[13], - b14 = b[14], - b15 = b[15]; - - v = a[0]; - t0 += v * b0; - t1 += v * b1; - t2 += v * b2; - t3 += v * b3; - t4 += v * b4; - t5 += v * b5; - t6 += v * b6; - t7 += v * b7; - t8 += v * b8; - t9 += v * b9; - t10 += v * b10; - t11 += v * b11; - t12 += v * b12; - t13 += v * b13; - t14 += v * b14; - t15 += v * b15; - v = a[1]; - t1 += v * b0; - t2 += v * b1; - t3 += v * b2; - t4 += v * b3; - t5 += v * b4; - t6 += v * b5; - t7 += v * b6; - t8 += v * b7; - t9 += v * b8; - t10 += v * b9; - t11 += v * b10; - t12 += v * b11; - t13 += v * b12; - t14 += v * b13; - t15 += v * b14; - t16 += v * b15; - v = a[2]; - t2 += v * b0; - t3 += v * b1; - t4 += v * b2; - t5 += v * b3; - t6 += v * b4; - t7 += v * b5; - t8 += v * b6; - t9 += v * b7; - t10 += v * b8; - t11 += v * b9; - t12 += v * b10; - t13 += v * b11; - t14 += v * b12; - t15 += v * b13; - t16 += v * b14; - t17 += v * b15; - v = a[3]; - t3 += v * b0; - t4 += v * b1; - t5 += v * b2; - t6 += v * b3; - t7 += v * b4; - t8 += v * b5; - t9 += v * b6; - t10 += v * b7; - t11 += v * b8; - t12 += v * b9; - t13 += v * b10; - t14 += v * b11; - t15 += v * b12; - t16 += v * b13; - t17 += v * b14; - t18 += v * b15; - v = a[4]; - t4 += v * b0; - t5 += v * b1; - t6 += v * b2; - t7 += v * b3; - t8 += v * b4; - t9 += v * b5; - t10 += v * b6; - t11 += v * b7; - t12 += v * b8; - t13 += v * b9; - t14 += v * b10; - t15 += v * b11; - t16 += v * b12; - t17 += v * b13; - t18 += v * b14; - t19 += v * b15; - v = a[5]; - t5 += v * b0; - t6 += v * b1; - t7 += v * b2; - t8 += v * b3; - t9 += v * b4; - t10 += v * b5; - t11 += v * b6; - t12 += v * b7; - t13 += v * b8; - t14 += v * b9; - t15 += v * b10; - t16 += v * b11; - t17 += v * b12; - t18 += v * b13; - t19 += v * b14; - t20 += v * b15; - v = a[6]; - t6 += v * b0; - t7 += v * b1; - t8 += v * b2; - t9 += v * b3; - t10 += v * b4; - t11 += v * b5; - t12 += v * b6; - t13 += v * b7; - t14 += v * b8; - t15 += v * b9; - t16 += v * b10; - t17 += v * b11; - t18 += v * b12; - t19 += v * b13; - t20 += v * b14; - t21 += v * b15; - v = a[7]; - t7 += v * b0; - t8 += v * b1; - t9 += v * b2; - t10 += v * b3; - t11 += v * b4; - t12 += v * b5; - t13 += v * b6; - t14 += v * b7; - t15 += v * b8; - t16 += v * b9; - t17 += v * b10; - t18 += v * b11; - t19 += v * b12; - t20 += v * b13; - t21 += v * b14; - t22 += v * b15; - v = a[8]; - t8 += v * b0; - t9 += v * b1; - t10 += v * b2; - t11 += v * b3; - t12 += v * b4; - t13 += v * b5; - t14 += v * b6; - t15 += v * b7; - t16 += v * b8; - t17 += v * b9; - t18 += v * b10; - t19 += v * b11; - t20 += v * b12; - t21 += v * b13; - t22 += v * b14; - t23 += v * b15; - v = a[9]; - t9 += v * b0; - t10 += v * b1; - t11 += v * b2; - t12 += v * b3; - t13 += v * b4; - t14 += v * b5; - t15 += v * b6; - t16 += v * b7; - t17 += v * b8; - t18 += v * b9; - t19 += v * b10; - t20 += v * b11; - t21 += v * b12; - t22 += v * b13; - t23 += v * b14; - t24 += v * b15; - v = a[10]; - t10 += v * b0; - t11 += v * b1; - t12 += v * b2; - t13 += v * b3; - t14 += v * b4; - t15 += v * b5; - t16 += v * b6; - t17 += v * b7; - t18 += v * b8; - t19 += v * b9; - t20 += v * b10; - t21 += v * b11; - t22 += v * b12; - t23 += v * b13; - t24 += v * b14; - t25 += v * b15; - v = a[11]; - t11 += v * b0; - t12 += v * b1; - t13 += v * b2; - t14 += v * b3; - t15 += v * b4; - t16 += v * b5; - t17 += v * b6; - t18 += v * b7; - t19 += v * b8; - t20 += v * b9; - t21 += v * b10; - t22 += v * b11; - t23 += v * b12; - t24 += v * b13; - t25 += v * b14; - t26 += v * b15; - v = a[12]; - t12 += v * b0; - t13 += v * b1; - t14 += v * b2; - t15 += v * b3; - t16 += v * b4; - t17 += v * b5; - t18 += v * b6; - t19 += v * b7; - t20 += v * b8; - t21 += v * b9; - t22 += v * b10; - t23 += v * b11; - t24 += v * b12; - t25 += v * b13; - t26 += v * b14; - t27 += v * b15; - v = a[13]; - t13 += v * b0; - t14 += v * b1; - t15 += v * b2; - t16 += v * b3; - t17 += v * b4; - t18 += v * b5; - t19 += v * b6; - t20 += v * b7; - t21 += v * b8; - t22 += v * b9; - t23 += v * b10; - t24 += v * b11; - t25 += v * b12; - t26 += v * b13; - t27 += v * b14; - t28 += v * b15; - v = a[14]; - t14 += v * b0; - t15 += v * b1; - t16 += v * b2; - t17 += v * b3; - t18 += v * b4; - t19 += v * b5; - t20 += v * b6; - t21 += v * b7; - t22 += v * b8; - t23 += v * b9; - t24 += v * b10; - t25 += v * b11; - t26 += v * b12; - t27 += v * b13; - t28 += v * b14; - t29 += v * b15; - v = a[15]; - t15 += v * b0; - t16 += v * b1; - t17 += v * b2; - t18 += v * b3; - t19 += v * b4; - t20 += v * b5; - t21 += v * b6; - t22 += v * b7; - t23 += v * b8; - t24 += v * b9; - t25 += v * b10; - t26 += v * b11; - t27 += v * b12; - t28 += v * b13; - t29 += v * b14; - t30 += v * b15; - - t0 += 38 * t16; - t1 += 38 * t17; - t2 += 38 * t18; - t3 += 38 * t19; - t4 += 38 * t20; - t5 += 38 * t21; - t6 += 38 * t22; - t7 += 38 * t23; - t8 += 38 * t24; - t9 += 38 * t25; - t10 += 38 * t26; - t11 += 38 * t27; - t12 += 38 * t28; - t13 += 38 * t29; - t14 += 38 * t30; - // t15 left as is - - // first car - c = 1; - v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536; - v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536; - v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536; - v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536; - v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536; - v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536; - v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536; - v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536; - v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536; - v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536; - v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536; - v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536; - v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536; - v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536; - v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536; - v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536; - t0 += c-1 + 37 * (c-1); - - // second car - c = 1; - v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536; - v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536; - v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536; - v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536; - v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536; - v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536; - v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536; - v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536; - v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536; - v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536; - v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536; - v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536; - v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536; - v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536; - v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536; - v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536; - t0 += c-1 + 37 * (c-1); - - o[ 0] = t0; - o[ 1] = t1; - o[ 2] = t2; - o[ 3] = t3; - o[ 4] = t4; - o[ 5] = t5; - o[ 6] = t6; - o[ 7] = t7; - o[ 8] = t8; - o[ 9] = t9; - o[10] = t10; - o[11] = t11; - o[12] = t12; - o[13] = t13; - o[14] = t14; - o[15] = t15; -} - -function S(o, a) { - M(o, a, a); -} - -function inv25519(o, i) { - var c = gf(); - var a; - for (a = 0; a < 16; a++) c[a] = i[a]; - for (a = 253; a >= 0; a--) { - S(c, c); - if(a !== 2 && a !== 4) M(c, c, i); - } - for (a = 0; a < 16; a++) o[a] = c[a]; -} - -function pow2523(o, i) { - var c = gf(); - var a; - for (a = 0; a < 16; a++) c[a] = i[a]; - for (a = 250; a >= 0; a--) { - S(c, c); - if(a !== 1) M(c, c, i); - } - for (a = 0; a < 16; a++) o[a] = c[a]; -} - -function crypto_scalarmult(q, n, p) { - var z = new Uint8Array(32); - var x = new Float64Array(80), r, i; - var a = gf(), b = gf(), c = gf(), - d = gf(), e = gf(), f = gf(); - for (i = 0; i < 31; i++) z[i] = n[i]; - z[31]=(n[31]&127)|64; - z[0]&=248; - unpack25519(x,p); - for (i = 0; i < 16; i++) { - b[i]=x[i]; - d[i]=a[i]=c[i]=0; - } - a[0]=d[0]=1; - for (i=254; i>=0; --i) { - r=(z[i>>>3]>>>(i&7))&1; - sel25519(a,b,r); - sel25519(c,d,r); - A(e,a,c); - Z(a,a,c); - A(c,b,d); - Z(b,b,d); - S(d,e); - S(f,a); - M(a,c,a); - M(c,b,e); - A(e,a,c); - Z(a,a,c); - S(b,a); - Z(c,d,f); - M(a,c,_121665); - A(a,a,d); - M(c,c,a); - M(a,d,f); - M(d,b,x); - S(b,e); - sel25519(a,b,r); - sel25519(c,d,r); - } - for (i = 0; i < 16; i++) { - x[i+16]=a[i]; - x[i+32]=c[i]; - x[i+48]=b[i]; - x[i+64]=d[i]; - } - var x32 = x.subarray(32); - var x16 = x.subarray(16); - inv25519(x32,x32); - M(x16,x16,x32); - pack25519(q,x16); - return 0; -} - -function crypto_scalarmult_base(q, n) { - return crypto_scalarmult(q, n, _9); -} - -function crypto_box_keypair(y, x) { - randombytes(x, 32); - return crypto_scalarmult_base(y, x); -} - -function crypto_box_beforenm(k, y, x) { - var s = new Uint8Array(32); - crypto_scalarmult(s, x, y); - return crypto_core_hsalsa20(k, _0, s, sigma); -} - -var crypto_box_afternm = crypto_secretbox; -var crypto_box_open_afternm = crypto_secretbox_open; - -function crypto_box(c, m, d, n, y, x) { - var k = new Uint8Array(32); - crypto_box_beforenm(k, y, x); - return crypto_box_afternm(c, m, d, n, k); -} - -function crypto_box_open(m, c, d, n, y, x) { - var k = new Uint8Array(32); - crypto_box_beforenm(k, y, x); - return crypto_box_open_afternm(m, c, d, n, k); -} - -var K = [ - 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, - 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, - 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, - 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, - 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, - 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, - 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, - 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, - 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, - 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, - 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, - 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, - 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, - 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, - 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, - 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, - 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, - 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, - 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, - 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, - 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, - 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, - 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, - 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, - 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, - 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, - 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, - 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, - 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, - 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, - 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, - 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, - 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, - 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, - 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, - 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, - 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, - 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, - 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, - 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817 -]; - -function crypto_hashblocks_hl(hh, hl, m, n) { - var wh = new Int32Array(16), wl = new Int32Array(16), - bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7, - bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7, - th, tl, i, j, h, l, a, b, c, d; - - var ah0 = hh[0], - ah1 = hh[1], - ah2 = hh[2], - ah3 = hh[3], - ah4 = hh[4], - ah5 = hh[5], - ah6 = hh[6], - ah7 = hh[7], - - al0 = hl[0], - al1 = hl[1], - al2 = hl[2], - al3 = hl[3], - al4 = hl[4], - al5 = hl[5], - al6 = hl[6], - al7 = hl[7]; - - var pos = 0; - while (n >= 128) { - for (i = 0; i < 16; i++) { - j = 8 * i + pos; - wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3]; - wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7]; - } - for (i = 0; i < 80; i++) { - bh0 = ah0; - bh1 = ah1; - bh2 = ah2; - bh3 = ah3; - bh4 = ah4; - bh5 = ah5; - bh6 = ah6; - bh7 = ah7; - - bl0 = al0; - bl1 = al1; - bl2 = al2; - bl3 = al3; - bl4 = al4; - bl5 = al5; - bl6 = al6; - bl7 = al7; - - // add - h = ah7; - l = al7; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - // Sigma1 - h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32)))); - l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32)))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // Ch - h = (ah4 & ah5) ^ (~ah4 & ah6); - l = (al4 & al5) ^ (~al4 & al6); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // K - h = K[i*2]; - l = K[i*2+1]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // w - h = wh[i%16]; - l = wl[i%16]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - th = c & 0xffff | d << 16; - tl = a & 0xffff | b << 16; - - // add - h = th; - l = tl; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - // Sigma0 - h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32)))); - l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32)))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // Maj - h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2); - l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - bh7 = (c & 0xffff) | (d << 16); - bl7 = (a & 0xffff) | (b << 16); - - // add - h = bh3; - l = bl3; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = th; - l = tl; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - bh3 = (c & 0xffff) | (d << 16); - bl3 = (a & 0xffff) | (b << 16); - - ah1 = bh0; - ah2 = bh1; - ah3 = bh2; - ah4 = bh3; - ah5 = bh4; - ah6 = bh5; - ah7 = bh6; - ah0 = bh7; - - al1 = bl0; - al2 = bl1; - al3 = bl2; - al4 = bl3; - al5 = bl4; - al6 = bl5; - al7 = bl6; - al0 = bl7; - - if (i%16 === 15) { - for (j = 0; j < 16; j++) { - // add - h = wh[j]; - l = wl[j]; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = wh[(j+9)%16]; - l = wl[(j+9)%16]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // sigma0 - th = wh[(j+1)%16]; - tl = wl[(j+1)%16]; - h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7); - l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // sigma1 - th = wh[(j+14)%16]; - tl = wl[(j+14)%16]; - h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6); - l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - wh[j] = (c & 0xffff) | (d << 16); - wl[j] = (a & 0xffff) | (b << 16); - } - } - } - - // add - h = ah0; - l = al0; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[0]; - l = hl[0]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[0] = ah0 = (c & 0xffff) | (d << 16); - hl[0] = al0 = (a & 0xffff) | (b << 16); - - h = ah1; - l = al1; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[1]; - l = hl[1]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[1] = ah1 = (c & 0xffff) | (d << 16); - hl[1] = al1 = (a & 0xffff) | (b << 16); - - h = ah2; - l = al2; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[2]; - l = hl[2]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[2] = ah2 = (c & 0xffff) | (d << 16); - hl[2] = al2 = (a & 0xffff) | (b << 16); - - h = ah3; - l = al3; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[3]; - l = hl[3]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[3] = ah3 = (c & 0xffff) | (d << 16); - hl[3] = al3 = (a & 0xffff) | (b << 16); - - h = ah4; - l = al4; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[4]; - l = hl[4]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[4] = ah4 = (c & 0xffff) | (d << 16); - hl[4] = al4 = (a & 0xffff) | (b << 16); - - h = ah5; - l = al5; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[5]; - l = hl[5]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[5] = ah5 = (c & 0xffff) | (d << 16); - hl[5] = al5 = (a & 0xffff) | (b << 16); - - h = ah6; - l = al6; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[6]; - l = hl[6]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[6] = ah6 = (c & 0xffff) | (d << 16); - hl[6] = al6 = (a & 0xffff) | (b << 16); - - h = ah7; - l = al7; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[7]; - l = hl[7]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[7] = ah7 = (c & 0xffff) | (d << 16); - hl[7] = al7 = (a & 0xffff) | (b << 16); - - pos += 128; - n -= 128; - } - - return n; -} - -function crypto_hash(out, m, n) { - var hh = new Int32Array(8), - hl = new Int32Array(8), - x = new Uint8Array(256), - i, b = n; - - hh[0] = 0x6a09e667; - hh[1] = 0xbb67ae85; - hh[2] = 0x3c6ef372; - hh[3] = 0xa54ff53a; - hh[4] = 0x510e527f; - hh[5] = 0x9b05688c; - hh[6] = 0x1f83d9ab; - hh[7] = 0x5be0cd19; - - hl[0] = 0xf3bcc908; - hl[1] = 0x84caa73b; - hl[2] = 0xfe94f82b; - hl[3] = 0x5f1d36f1; - hl[4] = 0xade682d1; - hl[5] = 0x2b3e6c1f; - hl[6] = 0xfb41bd6b; - hl[7] = 0x137e2179; - - crypto_hashblocks_hl(hh, hl, m, n); - n %= 128; - - for (i = 0; i < n; i++) x[i] = m[b-n+i]; - x[n] = 128; - - n = 256-128*(n<112?1:0); - x[n-9] = 0; - ts64(x, n-8, (b / 0x20000000) | 0, b << 3); - crypto_hashblocks_hl(hh, hl, x, n); - - for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]); - - return 0; -} - -function add(p, q) { - var a = gf(), b = gf(), c = gf(), - d = gf(), e = gf(), f = gf(), - g = gf(), h = gf(), t = gf(); - - Z(a, p[1], p[0]); - Z(t, q[1], q[0]); - M(a, a, t); - A(b, p[0], p[1]); - A(t, q[0], q[1]); - M(b, b, t); - M(c, p[3], q[3]); - M(c, c, D2); - M(d, p[2], q[2]); - A(d, d, d); - Z(e, b, a); - Z(f, d, c); - A(g, d, c); - A(h, b, a); - - M(p[0], e, f); - M(p[1], h, g); - M(p[2], g, f); - M(p[3], e, h); -} - -function cswap(p, q, b) { - var i; - for (i = 0; i < 4; i++) { - sel25519(p[i], q[i], b); - } -} - -function pack(r, p) { - var tx = gf(), ty = gf(), zi = gf(); - inv25519(zi, p[2]); - M(tx, p[0], zi); - M(ty, p[1], zi); - pack25519(r, ty); - r[31] ^= par25519(tx) << 7; -} - -function scalarmult(p, q, s) { - var b, i; - set25519(p[0], gf0); - set25519(p[1], gf1); - set25519(p[2], gf1); - set25519(p[3], gf0); - for (i = 255; i >= 0; --i) { - b = (s[(i/8)|0] >> (i&7)) & 1; - cswap(p, q, b); - add(q, p); - add(p, p); - cswap(p, q, b); - } -} - -function scalarbase(p, s) { - var q = [gf(), gf(), gf(), gf()]; - set25519(q[0], X); - set25519(q[1], Y); - set25519(q[2], gf1); - M(q[3], X, Y); - scalarmult(p, q, s); -} - -function crypto_sign_keypair(pk, sk, seeded) { - var d = new Uint8Array(64); - var p = [gf(), gf(), gf(), gf()]; - var i; - - if (!seeded) randombytes(sk, 32); - crypto_hash(d, sk, 32); - d[0] &= 248; - d[31] &= 127; - d[31] |= 64; - - scalarbase(p, d); - pack(pk, p); - - for (i = 0; i < 32; i++) sk[i+32] = pk[i]; - return 0; -} - -var L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]); - -function modL(r, x) { - var carry, i, j, k; - for (i = 63; i >= 32; --i) { - carry = 0; - for (j = i - 32, k = i - 12; j < k; ++j) { - x[j] += carry - 16 * x[i] * L[j - (i - 32)]; - carry = (x[j] + 128) >> 8; - x[j] -= carry * 256; - } - x[j] += carry; - x[i] = 0; - } - carry = 0; - for (j = 0; j < 32; j++) { - x[j] += carry - (x[31] >> 4) * L[j]; - carry = x[j] >> 8; - x[j] &= 255; - } - for (j = 0; j < 32; j++) x[j] -= carry * L[j]; - for (i = 0; i < 32; i++) { - x[i+1] += x[i] >> 8; - r[i] = x[i] & 255; - } -} - -function reduce(r) { - var x = new Float64Array(64), i; - for (i = 0; i < 64; i++) x[i] = r[i]; - for (i = 0; i < 64; i++) r[i] = 0; - modL(r, x); -} - -// Note: difference from C - smlen returned, not passed as argument. -function crypto_sign(sm, m, n, sk) { - var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64); - var i, j, x = new Float64Array(64); - var p = [gf(), gf(), gf(), gf()]; - - crypto_hash(d, sk, 32); - d[0] &= 248; - d[31] &= 127; - d[31] |= 64; - - var smlen = n + 64; - for (i = 0; i < n; i++) sm[64 + i] = m[i]; - for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i]; - - crypto_hash(r, sm.subarray(32), n+32); - reduce(r); - scalarbase(p, r); - pack(sm, p); - - for (i = 32; i < 64; i++) sm[i] = sk[i]; - crypto_hash(h, sm, n + 64); - reduce(h); - - for (i = 0; i < 64; i++) x[i] = 0; - for (i = 0; i < 32; i++) x[i] = r[i]; - for (i = 0; i < 32; i++) { - for (j = 0; j < 32; j++) { - x[i+j] += h[i] * d[j]; - } - } - - modL(sm.subarray(32), x); - return smlen; -} - -function unpackneg(r, p) { - var t = gf(), chk = gf(), num = gf(), - den = gf(), den2 = gf(), den4 = gf(), - den6 = gf(); - - set25519(r[2], gf1); - unpack25519(r[1], p); - S(num, r[1]); - M(den, num, D); - Z(num, num, r[2]); - A(den, r[2], den); - - S(den2, den); - S(den4, den2); - M(den6, den4, den2); - M(t, den6, num); - M(t, t, den); - - pow2523(t, t); - M(t, t, num); - M(t, t, den); - M(t, t, den); - M(r[0], t, den); - - S(chk, r[0]); - M(chk, chk, den); - if (neq25519(chk, num)) M(r[0], r[0], I); - - S(chk, r[0]); - M(chk, chk, den); - if (neq25519(chk, num)) return -1; - - if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]); - - M(r[3], r[0], r[1]); - return 0; -} - -function crypto_sign_open(m, sm, n, pk) { - var i, mlen; - var t = new Uint8Array(32), h = new Uint8Array(64); - var p = [gf(), gf(), gf(), gf()], - q = [gf(), gf(), gf(), gf()]; - - mlen = -1; - if (n < 64) return -1; - - if (unpackneg(q, pk)) return -1; - - for (i = 0; i < n; i++) m[i] = sm[i]; - for (i = 0; i < 32; i++) m[i+32] = pk[i]; - crypto_hash(h, m, n); - reduce(h); - scalarmult(p, q, h); - - scalarbase(q, sm.subarray(32)); - add(p, q); - pack(t, p); - - n -= 64; - if (crypto_verify_32(sm, 0, t, 0)) { - for (i = 0; i < n; i++) m[i] = 0; - return -1; - } - - for (i = 0; i < n; i++) m[i] = sm[i + 64]; - mlen = n; - return mlen; -} - -var crypto_secretbox_KEYBYTES = 32, - crypto_secretbox_NONCEBYTES = 24, - crypto_secretbox_ZEROBYTES = 32, - crypto_secretbox_BOXZEROBYTES = 16, - crypto_scalarmult_BYTES = 32, - crypto_scalarmult_SCALARBYTES = 32, - crypto_box_PUBLICKEYBYTES = 32, - crypto_box_SECRETKEYBYTES = 32, - crypto_box_BEFORENMBYTES = 32, - crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES, - crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES, - crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES, - crypto_sign_BYTES = 64, - crypto_sign_PUBLICKEYBYTES = 32, - crypto_sign_SECRETKEYBYTES = 64, - crypto_sign_SEEDBYTES = 32, - crypto_hash_BYTES = 64; - -nacl.lowlevel = { - crypto_core_hsalsa20: crypto_core_hsalsa20, - crypto_stream_xor: crypto_stream_xor, - crypto_stream: crypto_stream, - crypto_stream_salsa20_xor: crypto_stream_salsa20_xor, - crypto_stream_salsa20: crypto_stream_salsa20, - crypto_onetimeauth: crypto_onetimeauth, - crypto_onetimeauth_verify: crypto_onetimeauth_verify, - crypto_verify_16: crypto_verify_16, - crypto_verify_32: crypto_verify_32, - crypto_secretbox: crypto_secretbox, - crypto_secretbox_open: crypto_secretbox_open, - crypto_scalarmult: crypto_scalarmult, - crypto_scalarmult_base: crypto_scalarmult_base, - crypto_box_beforenm: crypto_box_beforenm, - crypto_box_afternm: crypto_box_afternm, - crypto_box: crypto_box, - crypto_box_open: crypto_box_open, - crypto_box_keypair: crypto_box_keypair, - crypto_hash: crypto_hash, - crypto_sign: crypto_sign, - crypto_sign_keypair: crypto_sign_keypair, - crypto_sign_open: crypto_sign_open, - - crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES, - crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES, - crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES, - crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES, - crypto_scalarmult_BYTES: crypto_scalarmult_BYTES, - crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES, - crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES, - crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES, - crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES, - crypto_box_NONCEBYTES: crypto_box_NONCEBYTES, - crypto_box_ZEROBYTES: crypto_box_ZEROBYTES, - crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES, - crypto_sign_BYTES: crypto_sign_BYTES, - crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES, - crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES, - crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES, - crypto_hash_BYTES: crypto_hash_BYTES -}; - -/* High-level API */ - -function checkLengths(k, n) { - if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size'); - if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size'); -} - -function checkBoxLengths(pk, sk) { - if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size'); - if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size'); -} - -function checkArrayTypes() { - var t, i; - for (i = 0; i < arguments.length; i++) { - if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]') - throw new TypeError('unexpected type ' + t + ', use Uint8Array'); - } -} - -function cleanup(arr) { - for (var i = 0; i < arr.length; i++) arr[i] = 0; -} - -// TODO: Completely remove this in v0.15. -if (!nacl.util) { - nacl.util = {}; - nacl.util.decodeUTF8 = nacl.util.encodeUTF8 = nacl.util.encodeBase64 = nacl.util.decodeBase64 = function() { - throw new Error('nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js'); - }; -} - -nacl.randomBytes = function(n) { - var b = new Uint8Array(n); - randombytes(b, n); - return b; -}; - -nacl.secretbox = function(msg, nonce, key) { - checkArrayTypes(msg, nonce, key); - checkLengths(key, nonce); - var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length); - var c = new Uint8Array(m.length); - for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i]; - crypto_secretbox(c, m, m.length, nonce, key); - return c.subarray(crypto_secretbox_BOXZEROBYTES); -}; - -nacl.secretbox.open = function(box, nonce, key) { - checkArrayTypes(box, nonce, key); - checkLengths(key, nonce); - var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length); - var m = new Uint8Array(c.length); - for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i]; - if (c.length < 32) return false; - if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return false; - return m.subarray(crypto_secretbox_ZEROBYTES); -}; - -nacl.secretbox.keyLength = crypto_secretbox_KEYBYTES; -nacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES; -nacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES; - -nacl.scalarMult = function(n, p) { - checkArrayTypes(n, p); - if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size'); - if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size'); - var q = new Uint8Array(crypto_scalarmult_BYTES); - crypto_scalarmult(q, n, p); - return q; -}; - -nacl.scalarMult.base = function(n) { - checkArrayTypes(n); - if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size'); - var q = new Uint8Array(crypto_scalarmult_BYTES); - crypto_scalarmult_base(q, n); - return q; -}; - -nacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES; -nacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES; - -nacl.box = function(msg, nonce, publicKey, secretKey) { - var k = nacl.box.before(publicKey, secretKey); - return nacl.secretbox(msg, nonce, k); -}; - -nacl.box.before = function(publicKey, secretKey) { - checkArrayTypes(publicKey, secretKey); - checkBoxLengths(publicKey, secretKey); - var k = new Uint8Array(crypto_box_BEFORENMBYTES); - crypto_box_beforenm(k, publicKey, secretKey); - return k; -}; - -nacl.box.after = nacl.secretbox; - -nacl.box.open = function(msg, nonce, publicKey, secretKey) { - var k = nacl.box.before(publicKey, secretKey); - return nacl.secretbox.open(msg, nonce, k); -}; - -nacl.box.open.after = nacl.secretbox.open; - -nacl.box.keyPair = function() { - var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_box_SECRETKEYBYTES); - crypto_box_keypair(pk, sk); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.box.keyPair.fromSecretKey = function(secretKey) { - checkArrayTypes(secretKey); - if (secretKey.length !== crypto_box_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES); - crypto_scalarmult_base(pk, secretKey); - return {publicKey: pk, secretKey: new Uint8Array(secretKey)}; -}; - -nacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES; -nacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES; -nacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES; -nacl.box.nonceLength = crypto_box_NONCEBYTES; -nacl.box.overheadLength = nacl.secretbox.overheadLength; - -nacl.sign = function(msg, secretKey) { - checkArrayTypes(msg, secretKey); - if (secretKey.length !== crypto_sign_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length); - crypto_sign(signedMsg, msg, msg.length, secretKey); - return signedMsg; -}; - -nacl.sign.open = function(signedMsg, publicKey) { - if (arguments.length !== 2) - throw new Error('nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?'); - checkArrayTypes(signedMsg, publicKey); - if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) - throw new Error('bad public key size'); - var tmp = new Uint8Array(signedMsg.length); - var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey); - if (mlen < 0) return null; - var m = new Uint8Array(mlen); - for (var i = 0; i < m.length; i++) m[i] = tmp[i]; - return m; -}; - -nacl.sign.detached = function(msg, secretKey) { - var signedMsg = nacl.sign(msg, secretKey); - var sig = new Uint8Array(crypto_sign_BYTES); - for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i]; - return sig; -}; - -nacl.sign.detached.verify = function(msg, sig, publicKey) { - checkArrayTypes(msg, sig, publicKey); - if (sig.length !== crypto_sign_BYTES) - throw new Error('bad signature size'); - if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) - throw new Error('bad public key size'); - var sm = new Uint8Array(crypto_sign_BYTES + msg.length); - var m = new Uint8Array(crypto_sign_BYTES + msg.length); - var i; - for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i]; - for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i]; - return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0); -}; - -nacl.sign.keyPair = function() { - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES); - crypto_sign_keypair(pk, sk); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.sign.keyPair.fromSecretKey = function(secretKey) { - checkArrayTypes(secretKey); - if (secretKey.length !== crypto_sign_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i]; - return {publicKey: pk, secretKey: new Uint8Array(secretKey)}; -}; - -nacl.sign.keyPair.fromSeed = function(seed) { - checkArrayTypes(seed); - if (seed.length !== crypto_sign_SEEDBYTES) - throw new Error('bad seed size'); - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES); - for (var i = 0; i < 32; i++) sk[i] = seed[i]; - crypto_sign_keypair(pk, sk, true); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES; -nacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES; -nacl.sign.seedLength = crypto_sign_SEEDBYTES; -nacl.sign.signatureLength = crypto_sign_BYTES; - -nacl.hash = function(msg) { - checkArrayTypes(msg); - var h = new Uint8Array(crypto_hash_BYTES); - crypto_hash(h, msg, msg.length); - return h; -}; - -nacl.hash.hashLength = crypto_hash_BYTES; - -nacl.verify = function(x, y) { - checkArrayTypes(x, y); - // Zero length arguments are considered not equal. - if (x.length === 0 || y.length === 0) return false; - if (x.length !== y.length) return false; - return (vn(x, 0, y, 0, x.length) === 0) ? true : false; -}; - -nacl.setPRNG = function(fn) { - randombytes = fn; -}; - -(function() { - // Initialize PRNG if environment provides CSPRNG. - // If not, methods calling randombytes will throw. - var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null; - if (crypto && crypto.getRandomValues) { - // Browsers. - var QUOTA = 65536; - nacl.setPRNG(function(x, n) { - var i, v = new Uint8Array(n); - for (i = 0; i < n; i += QUOTA) { - crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA))); - } - for (i = 0; i < n; i++) x[i] = v[i]; - cleanup(v); - }); - } else if (typeof require !== 'undefined') { - // Node.js. - crypto = require('crypto'); - if (crypto && crypto.randomBytes) { - nacl.setPRNG(function(x, n) { - var i, v = crypto.randomBytes(n); - for (i = 0; i < n; i++) x[i] = v[i]; - cleanup(v); - }); - } - } -})(); - -})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {})); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.min.js deleted file mode 100644 index 624fbbe9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(r){"use strict";function t(r,t,n,e){r[t]=n>>24&255,r[t+1]=n>>16&255,r[t+2]=n>>8&255,r[t+3]=255&n,r[t+4]=e>>24&255,r[t+5]=e>>16&255,r[t+6]=e>>8&255,r[t+7]=255&e}function n(r,t,n,e,o){var i,h=0;for(i=0;o>i;i++)h|=r[t+i]^n[e+i];return(1&h-1>>>8)-1}function e(r,t,e,o){return n(r,t,e,o,16)}function o(r,t,e,o){return n(r,t,e,o,32)}function i(r,t,n,e){for(var o,i=255&e[0]|(255&e[1])<<8|(255&e[2])<<16|(255&e[3])<<24,h=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,a=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,f=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,s=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,u=255&e[4]|(255&e[5])<<8|(255&e[6])<<16|(255&e[7])<<24,c=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,y=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,l=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,w=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,p=255&e[8]|(255&e[9])<<8|(255&e[10])<<16|(255&e[11])<<24,v=255&n[16]|(255&n[17])<<8|(255&n[18])<<16|(255&n[19])<<24,b=255&n[20]|(255&n[21])<<8|(255&n[22])<<16|(255&n[23])<<24,g=255&n[24]|(255&n[25])<<8|(255&n[26])<<16|(255&n[27])<<24,_=255&n[28]|(255&n[29])<<8|(255&n[30])<<16|(255&n[31])<<24,A=255&e[12]|(255&e[13])<<8|(255&e[14])<<16|(255&e[15])<<24,d=i,U=h,E=a,x=f,M=s,m=u,B=c,S=y,K=l,T=w,Y=p,k=v,L=b,z=g,R=_,P=A,O=0;20>O;O+=2)o=d+L|0,M^=o<<7|o>>>25,o=M+d|0,K^=o<<9|o>>>23,o=K+M|0,L^=o<<13|o>>>19,o=L+K|0,d^=o<<18|o>>>14,o=m+U|0,T^=o<<7|o>>>25,o=T+m|0,z^=o<<9|o>>>23,o=z+T|0,U^=o<<13|o>>>19,o=U+z|0,m^=o<<18|o>>>14,o=Y+B|0,R^=o<<7|o>>>25,o=R+Y|0,E^=o<<9|o>>>23,o=E+R|0,B^=o<<13|o>>>19,o=B+E|0,Y^=o<<18|o>>>14,o=P+k|0,x^=o<<7|o>>>25,o=x+P|0,S^=o<<9|o>>>23,o=S+x|0,k^=o<<13|o>>>19,o=k+S|0,P^=o<<18|o>>>14,o=d+x|0,U^=o<<7|o>>>25,o=U+d|0,E^=o<<9|o>>>23,o=E+U|0,x^=o<<13|o>>>19,o=x+E|0,d^=o<<18|o>>>14,o=m+M|0,B^=o<<7|o>>>25,o=B+m|0,S^=o<<9|o>>>23,o=S+B|0,M^=o<<13|o>>>19,o=M+S|0,m^=o<<18|o>>>14,o=Y+T|0,k^=o<<7|o>>>25,o=k+Y|0,K^=o<<9|o>>>23,o=K+k|0,T^=o<<13|o>>>19,o=T+K|0,Y^=o<<18|o>>>14,o=P+R|0,L^=o<<7|o>>>25,o=L+P|0,z^=o<<9|o>>>23,o=z+L|0,R^=o<<13|o>>>19,o=R+z|0,P^=o<<18|o>>>14;d=d+i|0,U=U+h|0,E=E+a|0,x=x+f|0,M=M+s|0,m=m+u|0,B=B+c|0,S=S+y|0,K=K+l|0,T=T+w|0,Y=Y+p|0,k=k+v|0,L=L+b|0,z=z+g|0,R=R+_|0,P=P+A|0,r[0]=d>>>0&255,r[1]=d>>>8&255,r[2]=d>>>16&255,r[3]=d>>>24&255,r[4]=U>>>0&255,r[5]=U>>>8&255,r[6]=U>>>16&255,r[7]=U>>>24&255,r[8]=E>>>0&255,r[9]=E>>>8&255,r[10]=E>>>16&255,r[11]=E>>>24&255,r[12]=x>>>0&255,r[13]=x>>>8&255,r[14]=x>>>16&255,r[15]=x>>>24&255,r[16]=M>>>0&255,r[17]=M>>>8&255,r[18]=M>>>16&255,r[19]=M>>>24&255,r[20]=m>>>0&255,r[21]=m>>>8&255,r[22]=m>>>16&255,r[23]=m>>>24&255,r[24]=B>>>0&255,r[25]=B>>>8&255,r[26]=B>>>16&255,r[27]=B>>>24&255,r[28]=S>>>0&255,r[29]=S>>>8&255,r[30]=S>>>16&255,r[31]=S>>>24&255,r[32]=K>>>0&255,r[33]=K>>>8&255,r[34]=K>>>16&255,r[35]=K>>>24&255,r[36]=T>>>0&255,r[37]=T>>>8&255,r[38]=T>>>16&255,r[39]=T>>>24&255,r[40]=Y>>>0&255,r[41]=Y>>>8&255,r[42]=Y>>>16&255,r[43]=Y>>>24&255,r[44]=k>>>0&255,r[45]=k>>>8&255,r[46]=k>>>16&255,r[47]=k>>>24&255,r[48]=L>>>0&255,r[49]=L>>>8&255,r[50]=L>>>16&255,r[51]=L>>>24&255,r[52]=z>>>0&255,r[53]=z>>>8&255,r[54]=z>>>16&255,r[55]=z>>>24&255,r[56]=R>>>0&255,r[57]=R>>>8&255,r[58]=R>>>16&255,r[59]=R>>>24&255,r[60]=P>>>0&255,r[61]=P>>>8&255,r[62]=P>>>16&255,r[63]=P>>>24&255}function h(r,t,n,e){for(var o,i=255&e[0]|(255&e[1])<<8|(255&e[2])<<16|(255&e[3])<<24,h=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,a=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,f=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,s=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,u=255&e[4]|(255&e[5])<<8|(255&e[6])<<16|(255&e[7])<<24,c=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,y=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,l=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,w=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,p=255&e[8]|(255&e[9])<<8|(255&e[10])<<16|(255&e[11])<<24,v=255&n[16]|(255&n[17])<<8|(255&n[18])<<16|(255&n[19])<<24,b=255&n[20]|(255&n[21])<<8|(255&n[22])<<16|(255&n[23])<<24,g=255&n[24]|(255&n[25])<<8|(255&n[26])<<16|(255&n[27])<<24,_=255&n[28]|(255&n[29])<<8|(255&n[30])<<16|(255&n[31])<<24,A=255&e[12]|(255&e[13])<<8|(255&e[14])<<16|(255&e[15])<<24,d=i,U=h,E=a,x=f,M=s,m=u,B=c,S=y,K=l,T=w,Y=p,k=v,L=b,z=g,R=_,P=A,O=0;20>O;O+=2)o=d+L|0,M^=o<<7|o>>>25,o=M+d|0,K^=o<<9|o>>>23,o=K+M|0,L^=o<<13|o>>>19,o=L+K|0,d^=o<<18|o>>>14,o=m+U|0,T^=o<<7|o>>>25,o=T+m|0,z^=o<<9|o>>>23,o=z+T|0,U^=o<<13|o>>>19,o=U+z|0,m^=o<<18|o>>>14,o=Y+B|0,R^=o<<7|o>>>25,o=R+Y|0,E^=o<<9|o>>>23,o=E+R|0,B^=o<<13|o>>>19,o=B+E|0,Y^=o<<18|o>>>14,o=P+k|0,x^=o<<7|o>>>25,o=x+P|0,S^=o<<9|o>>>23,o=S+x|0,k^=o<<13|o>>>19,o=k+S|0,P^=o<<18|o>>>14,o=d+x|0,U^=o<<7|o>>>25,o=U+d|0,E^=o<<9|o>>>23,o=E+U|0,x^=o<<13|o>>>19,o=x+E|0,d^=o<<18|o>>>14,o=m+M|0,B^=o<<7|o>>>25,o=B+m|0,S^=o<<9|o>>>23,o=S+B|0,M^=o<<13|o>>>19,o=M+S|0,m^=o<<18|o>>>14,o=Y+T|0,k^=o<<7|o>>>25,o=k+Y|0,K^=o<<9|o>>>23,o=K+k|0,T^=o<<13|o>>>19,o=T+K|0,Y^=o<<18|o>>>14,o=P+R|0,L^=o<<7|o>>>25,o=L+P|0,z^=o<<9|o>>>23,o=z+L|0,R^=o<<13|o>>>19,o=R+z|0,P^=o<<18|o>>>14;r[0]=d>>>0&255,r[1]=d>>>8&255,r[2]=d>>>16&255,r[3]=d>>>24&255,r[4]=m>>>0&255,r[5]=m>>>8&255,r[6]=m>>>16&255,r[7]=m>>>24&255,r[8]=Y>>>0&255,r[9]=Y>>>8&255,r[10]=Y>>>16&255,r[11]=Y>>>24&255,r[12]=P>>>0&255,r[13]=P>>>8&255,r[14]=P>>>16&255,r[15]=P>>>24&255,r[16]=B>>>0&255,r[17]=B>>>8&255,r[18]=B>>>16&255,r[19]=B>>>24&255,r[20]=S>>>0&255,r[21]=S>>>8&255,r[22]=S>>>16&255,r[23]=S>>>24&255,r[24]=K>>>0&255,r[25]=K>>>8&255,r[26]=K>>>16&255,r[27]=K>>>24&255,r[28]=T>>>0&255,r[29]=T>>>8&255,r[30]=T>>>16&255,r[31]=T>>>24&255}function a(r,t,n,e){i(r,t,n,e)}function f(r,t,n,e){h(r,t,n,e)}function s(r,t,n,e,o,i,h){var f,s,u=new Uint8Array(16),c=new Uint8Array(64);for(s=0;16>s;s++)u[s]=0;for(s=0;8>s;s++)u[s]=i[s];for(;o>=64;){for(a(c,u,h,cr),s=0;64>s;s++)r[t+s]=n[e+s]^c[s];for(f=1,s=8;16>s;s++)f=f+(255&u[s])|0,u[s]=255&f,f>>>=8;o-=64,t+=64,e+=64}if(o>0)for(a(c,u,h,cr),s=0;o>s;s++)r[t+s]=n[e+s]^c[s];return 0}function u(r,t,n,e,o){var i,h,f=new Uint8Array(16),s=new Uint8Array(64);for(h=0;16>h;h++)f[h]=0;for(h=0;8>h;h++)f[h]=e[h];for(;n>=64;){for(a(s,f,o,cr),h=0;64>h;h++)r[t+h]=s[h];for(i=1,h=8;16>h;h++)i=i+(255&f[h])|0,f[h]=255&i,i>>>=8;n-=64,t+=64}if(n>0)for(a(s,f,o,cr),h=0;n>h;h++)r[t+h]=s[h];return 0}function c(r,t,n,e,o){var i=new Uint8Array(32);f(i,e,o,cr);for(var h=new Uint8Array(8),a=0;8>a;a++)h[a]=e[a+16];return u(r,t,n,h,i)}function y(r,t,n,e,o,i,h){var a=new Uint8Array(32);f(a,i,h,cr);for(var u=new Uint8Array(8),c=0;8>c;c++)u[c]=i[c+16];return s(r,t,n,e,o,u,a)}function l(r,t,n,e,o,i){var h=new yr(i);return h.update(n,e,o),h.finish(r,t),0}function w(r,t,n,o,i,h){var a=new Uint8Array(16);return l(a,0,n,o,i,h),e(r,t,a,0)}function p(r,t,n,e,o){var i;if(32>n)return-1;for(y(r,0,t,0,n,e,o),l(r,16,r,32,n-32,r),i=0;16>i;i++)r[i]=0;return 0}function v(r,t,n,e,o){var i,h=new Uint8Array(32);if(32>n)return-1;if(c(h,0,32,e,o),0!==w(t,16,t,32,n-32,h))return-1;for(y(r,0,t,0,n,e,o),i=0;32>i;i++)r[i]=0;return 0}function b(r,t){var n;for(n=0;16>n;n++)r[n]=0|t[n]}function g(r){var t,n,e=1;for(t=0;16>t;t++)n=r[t]+e+65535,e=Math.floor(n/65536),r[t]=n-65536*e;r[0]+=e-1+37*(e-1)}function _(r,t,n){for(var e,o=~(n-1),i=0;16>i;i++)e=o&(r[i]^t[i]),r[i]^=e,t[i]^=e}function A(r,t){var n,e,o,i=$(),h=$();for(n=0;16>n;n++)h[n]=t[n];for(g(h),g(h),g(h),e=0;2>e;e++){for(i[0]=h[0]-65517,n=1;15>n;n++)i[n]=h[n]-65535-(i[n-1]>>16&1),i[n-1]&=65535;i[15]=h[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,_(h,i,1-o)}for(n=0;16>n;n++)r[2*n]=255&h[n],r[2*n+1]=h[n]>>8}function d(r,t){var n=new Uint8Array(32),e=new Uint8Array(32);return A(n,r),A(e,t),o(n,0,e,0)}function U(r){var t=new Uint8Array(32);return A(t,r),1&t[0]}function E(r,t){var n;for(n=0;16>n;n++)r[n]=t[2*n]+(t[2*n+1]<<8);r[15]&=32767}function x(r,t,n){for(var e=0;16>e;e++)r[e]=t[e]+n[e]}function M(r,t,n){for(var e=0;16>e;e++)r[e]=t[e]-n[e]}function m(r,t,n){var e,o,i=0,h=0,a=0,f=0,s=0,u=0,c=0,y=0,l=0,w=0,p=0,v=0,b=0,g=0,_=0,A=0,d=0,U=0,E=0,x=0,M=0,m=0,B=0,S=0,K=0,T=0,Y=0,k=0,L=0,z=0,R=0,P=n[0],O=n[1],N=n[2],C=n[3],F=n[4],I=n[5],G=n[6],Z=n[7],j=n[8],q=n[9],V=n[10],X=n[11],D=n[12],H=n[13],J=n[14],Q=n[15];e=t[0],i+=e*P,h+=e*O,a+=e*N,f+=e*C,s+=e*F,u+=e*I,c+=e*G,y+=e*Z,l+=e*j,w+=e*q,p+=e*V,v+=e*X,b+=e*D,g+=e*H,_+=e*J,A+=e*Q,e=t[1],h+=e*P,a+=e*O,f+=e*N,s+=e*C,u+=e*F,c+=e*I,y+=e*G,l+=e*Z,w+=e*j,p+=e*q,v+=e*V,b+=e*X,g+=e*D,_+=e*H,A+=e*J,d+=e*Q,e=t[2],a+=e*P,f+=e*O,s+=e*N,u+=e*C,c+=e*F,y+=e*I,l+=e*G,w+=e*Z,p+=e*j,v+=e*q,b+=e*V,g+=e*X,_+=e*D,A+=e*H,d+=e*J,U+=e*Q,e=t[3],f+=e*P,s+=e*O,u+=e*N,c+=e*C,y+=e*F,l+=e*I,w+=e*G,p+=e*Z,v+=e*j,b+=e*q,g+=e*V,_+=e*X,A+=e*D,d+=e*H,U+=e*J,E+=e*Q,e=t[4],s+=e*P,u+=e*O,c+=e*N,y+=e*C,l+=e*F,w+=e*I,p+=e*G,v+=e*Z,b+=e*j,g+=e*q,_+=e*V,A+=e*X,d+=e*D,U+=e*H,E+=e*J,x+=e*Q,e=t[5],u+=e*P,c+=e*O,y+=e*N,l+=e*C,w+=e*F,p+=e*I,v+=e*G,b+=e*Z,g+=e*j,_+=e*q,A+=e*V,d+=e*X,U+=e*D,E+=e*H,x+=e*J,M+=e*Q,e=t[6],c+=e*P,y+=e*O,l+=e*N,w+=e*C,p+=e*F,v+=e*I,b+=e*G,g+=e*Z,_+=e*j,A+=e*q,d+=e*V,U+=e*X,E+=e*D,x+=e*H,M+=e*J,m+=e*Q,e=t[7],y+=e*P,l+=e*O,w+=e*N,p+=e*C,v+=e*F,b+=e*I,g+=e*G,_+=e*Z,A+=e*j,d+=e*q,U+=e*V,E+=e*X,x+=e*D,M+=e*H,m+=e*J,B+=e*Q,e=t[8],l+=e*P,w+=e*O,p+=e*N,v+=e*C,b+=e*F,g+=e*I,_+=e*G,A+=e*Z,d+=e*j,U+=e*q,E+=e*V,x+=e*X,M+=e*D,m+=e*H,B+=e*J,S+=e*Q,e=t[9],w+=e*P,p+=e*O,v+=e*N,b+=e*C,g+=e*F,_+=e*I,A+=e*G,d+=e*Z,U+=e*j,E+=e*q,x+=e*V,M+=e*X,m+=e*D,B+=e*H,S+=e*J,K+=e*Q,e=t[10],p+=e*P,v+=e*O,b+=e*N,g+=e*C,_+=e*F,A+=e*I,d+=e*G,U+=e*Z,E+=e*j,x+=e*q,M+=e*V,m+=e*X,B+=e*D,S+=e*H,K+=e*J,T+=e*Q,e=t[11],v+=e*P,b+=e*O,g+=e*N,_+=e*C,A+=e*F,d+=e*I,U+=e*G,E+=e*Z,x+=e*j,M+=e*q,m+=e*V,B+=e*X,S+=e*D,K+=e*H,T+=e*J,Y+=e*Q,e=t[12],b+=e*P,g+=e*O,_+=e*N,A+=e*C,d+=e*F,U+=e*I,E+=e*G,x+=e*Z,M+=e*j,m+=e*q,B+=e*V,S+=e*X,K+=e*D,T+=e*H,Y+=e*J,k+=e*Q,e=t[13],g+=e*P,_+=e*O,A+=e*N,d+=e*C,U+=e*F,E+=e*I,x+=e*G,M+=e*Z,m+=e*j,B+=e*q,S+=e*V,K+=e*X,T+=e*D,Y+=e*H,k+=e*J,L+=e*Q,e=t[14],_+=e*P,A+=e*O,d+=e*N,U+=e*C,E+=e*F,x+=e*I,M+=e*G,m+=e*Z,B+=e*j,S+=e*q,K+=e*V,T+=e*X,Y+=e*D,k+=e*H,L+=e*J,z+=e*Q,e=t[15],A+=e*P,d+=e*O,U+=e*N,E+=e*C,x+=e*F,M+=e*I,m+=e*G,B+=e*Z,S+=e*j,K+=e*q,T+=e*V,Y+=e*X,k+=e*D,L+=e*H,z+=e*J,R+=e*Q,i+=38*d,h+=38*U,a+=38*E,f+=38*x,s+=38*M,u+=38*m,c+=38*B,y+=38*S,l+=38*K,w+=38*T,p+=38*Y,v+=38*k,b+=38*L,g+=38*z,_+=38*R,o=1,e=i+o+65535,o=Math.floor(e/65536),i=e-65536*o,e=h+o+65535,o=Math.floor(e/65536),h=e-65536*o,e=a+o+65535,o=Math.floor(e/65536),a=e-65536*o,e=f+o+65535,o=Math.floor(e/65536),f=e-65536*o,e=s+o+65535,o=Math.floor(e/65536),s=e-65536*o,e=u+o+65535,o=Math.floor(e/65536),u=e-65536*o,e=c+o+65535,o=Math.floor(e/65536),c=e-65536*o,e=y+o+65535,o=Math.floor(e/65536),y=e-65536*o,e=l+o+65535,o=Math.floor(e/65536),l=e-65536*o,e=w+o+65535,o=Math.floor(e/65536),w=e-65536*o,e=p+o+65535,o=Math.floor(e/65536),p=e-65536*o,e=v+o+65535,o=Math.floor(e/65536),v=e-65536*o,e=b+o+65535,o=Math.floor(e/65536),b=e-65536*o,e=g+o+65535,o=Math.floor(e/65536),g=e-65536*o,e=_+o+65535,o=Math.floor(e/65536),_=e-65536*o,e=A+o+65535,o=Math.floor(e/65536),A=e-65536*o,i+=o-1+37*(o-1),o=1,e=i+o+65535,o=Math.floor(e/65536),i=e-65536*o,e=h+o+65535,o=Math.floor(e/65536),h=e-65536*o,e=a+o+65535,o=Math.floor(e/65536),a=e-65536*o,e=f+o+65535,o=Math.floor(e/65536),f=e-65536*o,e=s+o+65535,o=Math.floor(e/65536),s=e-65536*o,e=u+o+65535,o=Math.floor(e/65536),u=e-65536*o,e=c+o+65535,o=Math.floor(e/65536),c=e-65536*o,e=y+o+65535,o=Math.floor(e/65536),y=e-65536*o,e=l+o+65535,o=Math.floor(e/65536),l=e-65536*o,e=w+o+65535,o=Math.floor(e/65536),w=e-65536*o,e=p+o+65535,o=Math.floor(e/65536),p=e-65536*o,e=v+o+65535,o=Math.floor(e/65536),v=e-65536*o,e=b+o+65535,o=Math.floor(e/65536),b=e-65536*o,e=g+o+65535,o=Math.floor(e/65536),g=e-65536*o,e=_+o+65535,o=Math.floor(e/65536),_=e-65536*o,e=A+o+65535,o=Math.floor(e/65536),A=e-65536*o,i+=o-1+37*(o-1),r[0]=i,r[1]=h,r[2]=a,r[3]=f,r[4]=s,r[5]=u,r[6]=c,r[7]=y,r[8]=l,r[9]=w,r[10]=p,r[11]=v,r[12]=b,r[13]=g,r[14]=_,r[15]=A}function B(r,t){m(r,t,t)}function S(r,t){var n,e=$();for(n=0;16>n;n++)e[n]=t[n];for(n=253;n>=0;n--)B(e,e),2!==n&&4!==n&&m(e,e,t);for(n=0;16>n;n++)r[n]=e[n]}function K(r,t){var n,e=$();for(n=0;16>n;n++)e[n]=t[n];for(n=250;n>=0;n--)B(e,e),1!==n&&m(e,e,t);for(n=0;16>n;n++)r[n]=e[n]}function T(r,t,n){var e,o,i=new Uint8Array(32),h=new Float64Array(80),a=$(),f=$(),s=$(),u=$(),c=$(),y=$();for(o=0;31>o;o++)i[o]=t[o];for(i[31]=127&t[31]|64,i[0]&=248,E(h,n),o=0;16>o;o++)f[o]=h[o],u[o]=a[o]=s[o]=0;for(a[0]=u[0]=1,o=254;o>=0;--o)e=i[o>>>3]>>>(7&o)&1,_(a,f,e),_(s,u,e),x(c,a,s),M(a,a,s),x(s,f,u),M(f,f,u),B(u,c),B(y,a),m(a,s,a),m(s,f,c),x(c,a,s),M(a,a,s),B(f,a),M(s,u,y),m(a,s,ir),x(a,a,u),m(s,s,a),m(a,u,y),m(u,f,h),B(f,c),_(a,f,e),_(s,u,e);for(o=0;16>o;o++)h[o+16]=a[o],h[o+32]=s[o],h[o+48]=f[o],h[o+64]=u[o];var l=h.subarray(32),w=h.subarray(16);return S(l,l),m(w,w,l),A(r,w),0}function Y(r,t){return T(r,t,nr)}function k(r,t){return rr(t,32),Y(r,t)}function L(r,t,n){var e=new Uint8Array(32);return T(e,n,t),f(r,tr,e,cr)}function z(r,t,n,e,o,i){var h=new Uint8Array(32);return L(h,o,i),lr(r,t,n,e,h)}function R(r,t,n,e,o,i){var h=new Uint8Array(32);return L(h,o,i),wr(r,t,n,e,h)}function P(r,t,n,e){for(var o,i,h,a,f,s,u,c,y,l,w,p,v,b,g,_,A,d,U,E,x,M,m,B,S,K,T=new Int32Array(16),Y=new Int32Array(16),k=r[0],L=r[1],z=r[2],R=r[3],P=r[4],O=r[5],N=r[6],C=r[7],F=t[0],I=t[1],G=t[2],Z=t[3],j=t[4],q=t[5],V=t[6],X=t[7],D=0;e>=128;){for(U=0;16>U;U++)E=8*U+D,T[U]=n[E+0]<<24|n[E+1]<<16|n[E+2]<<8|n[E+3],Y[U]=n[E+4]<<24|n[E+5]<<16|n[E+6]<<8|n[E+7];for(U=0;80>U;U++)if(o=k,i=L,h=z,a=R,f=P,s=O,u=N,c=C,y=F,l=I,w=G,p=Z,v=j,b=q,g=V,_=X,x=C,M=X,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=(P>>>14|j<<18)^(P>>>18|j<<14)^(j>>>9|P<<23),M=(j>>>14|P<<18)^(j>>>18|P<<14)^(P>>>9|j<<23),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=P&O^~P&N,M=j&q^~j&V,m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=pr[2*U],M=pr[2*U+1],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=T[U%16],M=Y[U%16],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,A=65535&S|K<<16,d=65535&m|B<<16,x=A,M=d,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=(k>>>28|F<<4)^(F>>>2|k<<30)^(F>>>7|k<<25),M=(F>>>28|k<<4)^(k>>>2|F<<30)^(k>>>7|F<<25),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=k&L^k&z^L&z,M=F&I^F&G^I&G,m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,c=65535&S|K<<16,_=65535&m|B<<16,x=a,M=p,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=A,M=d,m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,a=65535&S|K<<16,p=65535&m|B<<16,L=o,z=i,R=h,P=a,O=f,N=s,C=u,k=c,I=y,G=l,Z=w,j=p,q=v,V=b,X=g,F=_,U%16===15)for(E=0;16>E;E++)x=T[E],M=Y[E],m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=T[(E+9)%16],M=Y[(E+9)%16],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,A=T[(E+1)%16],d=Y[(E+1)%16],x=(A>>>1|d<<31)^(A>>>8|d<<24)^A>>>7,M=(d>>>1|A<<31)^(d>>>8|A<<24)^(d>>>7|A<<25),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,A=T[(E+14)%16],d=Y[(E+14)%16],x=(A>>>19|d<<13)^(d>>>29|A<<3)^A>>>6,M=(d>>>19|A<<13)^(A>>>29|d<<3)^(d>>>6|A<<26),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,T[E]=65535&S|K<<16,Y[E]=65535&m|B<<16;x=k,M=F,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[0],M=t[0],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[0]=k=65535&S|K<<16,t[0]=F=65535&m|B<<16,x=L,M=I,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[1],M=t[1],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[1]=L=65535&S|K<<16,t[1]=I=65535&m|B<<16,x=z,M=G,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[2],M=t[2],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[2]=z=65535&S|K<<16,t[2]=G=65535&m|B<<16,x=R,M=Z,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[3],M=t[3],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[3]=R=65535&S|K<<16,t[3]=Z=65535&m|B<<16,x=P,M=j,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[4],M=t[4],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[4]=P=65535&S|K<<16,t[4]=j=65535&m|B<<16,x=O,M=q,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[5],M=t[5],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[5]=O=65535&S|K<<16,t[5]=q=65535&m|B<<16,x=N,M=V,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[6],M=t[6],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[6]=N=65535&S|K<<16,t[6]=V=65535&m|B<<16,x=C,M=X,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[7],M=t[7],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[7]=C=65535&S|K<<16,t[7]=X=65535&m|B<<16,D+=128,e-=128}return e}function O(r,n,e){var o,i=new Int32Array(8),h=new Int32Array(8),a=new Uint8Array(256),f=e;for(i[0]=1779033703,i[1]=3144134277,i[2]=1013904242,i[3]=2773480762,i[4]=1359893119,i[5]=2600822924,i[6]=528734635,i[7]=1541459225,h[0]=4089235720,h[1]=2227873595,h[2]=4271175723,h[3]=1595750129,h[4]=2917565137,h[5]=725511199,h[6]=4215389547,h[7]=327033209,P(i,h,n,e),e%=128,o=0;e>o;o++)a[o]=n[f-e+o];for(a[e]=128,e=256-128*(112>e?1:0),a[e-9]=0,t(a,e-8,f/536870912|0,f<<3),P(i,h,a,e),o=0;8>o;o++)t(r,8*o,i[o],h[o]);return 0}function N(r,t){var n=$(),e=$(),o=$(),i=$(),h=$(),a=$(),f=$(),s=$(),u=$();M(n,r[1],r[0]),M(u,t[1],t[0]),m(n,n,u),x(e,r[0],r[1]),x(u,t[0],t[1]),m(e,e,u),m(o,r[3],t[3]),m(o,o,ar),m(i,r[2],t[2]),x(i,i,i),M(h,e,n),M(a,i,o),x(f,i,o),x(s,e,n),m(r[0],h,a),m(r[1],s,f),m(r[2],f,a),m(r[3],h,s)}function C(r,t,n){var e;for(e=0;4>e;e++)_(r[e],t[e],n)}function F(r,t){var n=$(),e=$(),o=$();S(o,t[2]),m(n,t[0],o),m(e,t[1],o),A(r,e),r[31]^=U(n)<<7}function I(r,t,n){var e,o;for(b(r[0],er),b(r[1],or),b(r[2],or),b(r[3],er),o=255;o>=0;--o)e=n[o/8|0]>>(7&o)&1,C(r,t,e),N(t,r),N(r,r),C(r,t,e)}function G(r,t){var n=[$(),$(),$(),$()];b(n[0],fr),b(n[1],sr),b(n[2],or),m(n[3],fr,sr),I(r,n,t)}function Z(r,t,n){var e,o=new Uint8Array(64),i=[$(),$(),$(),$()];for(n||rr(t,32),O(o,t,32),o[0]&=248,o[31]&=127,o[31]|=64,G(i,o),F(r,i),e=0;32>e;e++)t[e+32]=r[e];return 0}function j(r,t){var n,e,o,i;for(e=63;e>=32;--e){for(n=0,o=e-32,i=e-12;i>o;++o)t[o]+=n-16*t[e]*vr[o-(e-32)],n=t[o]+128>>8,t[o]-=256*n;t[o]+=n,t[e]=0}for(n=0,o=0;32>o;o++)t[o]+=n-(t[31]>>4)*vr[o],n=t[o]>>8,t[o]&=255;for(o=0;32>o;o++)t[o]-=n*vr[o];for(e=0;32>e;e++)t[e+1]+=t[e]>>8,r[e]=255&t[e]}function q(r){var t,n=new Float64Array(64);for(t=0;64>t;t++)n[t]=r[t];for(t=0;64>t;t++)r[t]=0;j(r,n)}function V(r,t,n,e){var o,i,h=new Uint8Array(64),a=new Uint8Array(64),f=new Uint8Array(64),s=new Float64Array(64),u=[$(),$(),$(),$()];O(h,e,32),h[0]&=248,h[31]&=127,h[31]|=64;var c=n+64;for(o=0;n>o;o++)r[64+o]=t[o];for(o=0;32>o;o++)r[32+o]=h[32+o];for(O(f,r.subarray(32),n+32),q(f),G(u,f),F(r,u),o=32;64>o;o++)r[o]=e[o];for(O(a,r,n+64),q(a),o=0;64>o;o++)s[o]=0;for(o=0;32>o;o++)s[o]=f[o];for(o=0;32>o;o++)for(i=0;32>i;i++)s[o+i]+=a[o]*h[i];return j(r.subarray(32),s),c}function X(r,t){var n=$(),e=$(),o=$(),i=$(),h=$(),a=$(),f=$();return b(r[2],or),E(r[1],t),B(o,r[1]),m(i,o,hr),M(o,o,r[2]),x(i,r[2],i),B(h,i),B(a,h),m(f,a,h),m(n,f,o),m(n,n,i),K(n,n),m(n,n,o),m(n,n,i),m(n,n,i),m(r[0],n,i),B(e,r[0]),m(e,e,i),d(e,o)&&m(r[0],r[0],ur),B(e,r[0]),m(e,e,i),d(e,o)?-1:(U(r[0])===t[31]>>7&&M(r[0],er,r[0]),m(r[3],r[0],r[1]),0)}function D(r,t,n,e){var i,h,a=new Uint8Array(32),f=new Uint8Array(64),s=[$(),$(),$(),$()],u=[$(),$(),$(),$()];if(h=-1,64>n)return-1;if(X(u,e))return-1;for(i=0;n>i;i++)r[i]=t[i];for(i=0;32>i;i++)r[i+32]=e[i];if(O(f,r,n),q(f),I(s,u,f),G(u,t.subarray(32)),N(s,u),F(a,s),n-=64,o(t,0,a,0)){for(i=0;n>i;i++)r[i]=0;return-1}for(i=0;n>i;i++)r[i]=t[i+64];return h=n}function H(r,t){if(r.length!==br)throw new Error("bad key size");if(t.length!==gr)throw new Error("bad nonce size")}function J(r,t){if(r.length!==Er)throw new Error("bad public key size");if(t.length!==xr)throw new Error("bad secret key size")}function Q(){var r,t;for(t=0;t>>13|n<<3),e=255&r[4]|(255&r[5])<<8,this.r[2]=7939&(n>>>10|e<<6),o=255&r[6]|(255&r[7])<<8,this.r[3]=8191&(e>>>7|o<<9),i=255&r[8]|(255&r[9])<<8,this.r[4]=255&(o>>>4|i<<12),this.r[5]=i>>>1&8190,h=255&r[10]|(255&r[11])<<8,this.r[6]=8191&(i>>>14|h<<2),a=255&r[12]|(255&r[13])<<8,this.r[7]=8065&(h>>>11|a<<5),f=255&r[14]|(255&r[15])<<8,this.r[8]=8191&(a>>>8|f<<8),this.r[9]=f>>>5&127,this.pad[0]=255&r[16]|(255&r[17])<<8,this.pad[1]=255&r[18]|(255&r[19])<<8,this.pad[2]=255&r[20]|(255&r[21])<<8,this.pad[3]=255&r[22]|(255&r[23])<<8,this.pad[4]=255&r[24]|(255&r[25])<<8,this.pad[5]=255&r[26]|(255&r[27])<<8,this.pad[6]=255&r[28]|(255&r[29])<<8,this.pad[7]=255&r[30]|(255&r[31])<<8};yr.prototype.blocks=function(r,t,n){for(var e,o,i,h,a,f,s,u,c,y,l,w,p,v,b,g,_,A,d,U=this.fin?0:2048,E=this.h[0],x=this.h[1],M=this.h[2],m=this.h[3],B=this.h[4],S=this.h[5],K=this.h[6],T=this.h[7],Y=this.h[8],k=this.h[9],L=this.r[0],z=this.r[1],R=this.r[2],P=this.r[3],O=this.r[4],N=this.r[5],C=this.r[6],F=this.r[7],I=this.r[8],G=this.r[9];n>=16;)e=255&r[t+0]|(255&r[t+1])<<8,E+=8191&e,o=255&r[t+2]|(255&r[t+3])<<8,x+=8191&(e>>>13|o<<3),i=255&r[t+4]|(255&r[t+5])<<8,M+=8191&(o>>>10|i<<6),h=255&r[t+6]|(255&r[t+7])<<8,m+=8191&(i>>>7|h<<9),a=255&r[t+8]|(255&r[t+9])<<8,B+=8191&(h>>>4|a<<12),S+=a>>>1&8191,f=255&r[t+10]|(255&r[t+11])<<8,K+=8191&(a>>>14|f<<2),s=255&r[t+12]|(255&r[t+13])<<8,T+=8191&(f>>>11|s<<5),u=255&r[t+14]|(255&r[t+15])<<8,Y+=8191&(s>>>8|u<<8),k+=u>>>5|U,c=0,y=c,y+=E*L,y+=x*(5*G),y+=M*(5*I),y+=m*(5*F),y+=B*(5*C),c=y>>>13,y&=8191,y+=S*(5*N),y+=K*(5*O),y+=T*(5*P),y+=Y*(5*R),y+=k*(5*z),c+=y>>>13,y&=8191,l=c,l+=E*z,l+=x*L,l+=M*(5*G),l+=m*(5*I),l+=B*(5*F),c=l>>>13,l&=8191,l+=S*(5*C),l+=K*(5*N),l+=T*(5*O),l+=Y*(5*P),l+=k*(5*R),c+=l>>>13,l&=8191,w=c,w+=E*R,w+=x*z,w+=M*L,w+=m*(5*G),w+=B*(5*I),c=w>>>13,w&=8191,w+=S*(5*F),w+=K*(5*C),w+=T*(5*N),w+=Y*(5*O),w+=k*(5*P),c+=w>>>13,w&=8191,p=c,p+=E*P,p+=x*R,p+=M*z,p+=m*L,p+=B*(5*G),c=p>>>13,p&=8191,p+=S*(5*I),p+=K*(5*F),p+=T*(5*C),p+=Y*(5*N),p+=k*(5*O),c+=p>>>13,p&=8191,v=c,v+=E*O,v+=x*P,v+=M*R,v+=m*z,v+=B*L,c=v>>>13,v&=8191,v+=S*(5*G),v+=K*(5*I),v+=T*(5*F),v+=Y*(5*C),v+=k*(5*N),c+=v>>>13,v&=8191,b=c,b+=E*N,b+=x*O,b+=M*P,b+=m*R,b+=B*z,c=b>>>13,b&=8191,b+=S*L,b+=K*(5*G),b+=T*(5*I),b+=Y*(5*F),b+=k*(5*C),c+=b>>>13,b&=8191,g=c,g+=E*C,g+=x*N,g+=M*O,g+=m*P,g+=B*R,c=g>>>13,g&=8191,g+=S*z,g+=K*L,g+=T*(5*G),g+=Y*(5*I),g+=k*(5*F),c+=g>>>13,g&=8191,_=c,_+=E*F,_+=x*C,_+=M*N,_+=m*O,_+=B*P,c=_>>>13,_&=8191,_+=S*R,_+=K*z,_+=T*L,_+=Y*(5*G),_+=k*(5*I),c+=_>>>13,_&=8191,A=c,A+=E*I,A+=x*F,A+=M*C,A+=m*N,A+=B*O,c=A>>>13,A&=8191,A+=S*P,A+=K*R,A+=T*z,A+=Y*L,A+=k*(5*G),c+=A>>>13,A&=8191,d=c,d+=E*G,d+=x*I,d+=M*F,d+=m*C,d+=B*N,c=d>>>13,d&=8191,d+=S*O,d+=K*P,d+=T*R,d+=Y*z,d+=k*L,c+=d>>>13,d&=8191,c=(c<<2)+c|0,c=c+y|0,y=8191&c,c>>>=13,l+=c,E=y,x=l,M=w,m=p,B=v,S=b,K=g,T=_,Y=A,k=d,t+=16,n-=16;this.h[0]=E,this.h[1]=x,this.h[2]=M,this.h[3]=m,this.h[4]=B,this.h[5]=S,this.h[6]=K,this.h[7]=T,this.h[8]=Y,this.h[9]=k},yr.prototype.finish=function(r,t){var n,e,o,i,h=new Uint16Array(10);if(this.leftover){for(i=this.leftover,this.buffer[i++]=1;16>i;i++)this.buffer[i]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(n=this.h[1]>>>13,this.h[1]&=8191,i=2;10>i;i++)this.h[i]+=n,n=this.h[i]>>>13,this.h[i]&=8191;for(this.h[0]+=5*n,n=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=n,n=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=n,h[0]=this.h[0]+5,n=h[0]>>>13,h[0]&=8191,i=1;10>i;i++)h[i]=this.h[i]+n,n=h[i]>>>13,h[i]&=8191;for(h[9]-=8192,e=(1^n)-1,i=0;10>i;i++)h[i]&=e;for(e=~e,i=0;10>i;i++)this.h[i]=this.h[i]&e|h[i];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,i=1;8>i;i++)o=(this.h[i]+this.pad[i]|0)+(o>>>16)|0,this.h[i]=65535&o;r[t+0]=this.h[0]>>>0&255,r[t+1]=this.h[0]>>>8&255,r[t+2]=this.h[1]>>>0&255,r[t+3]=this.h[1]>>>8&255,r[t+4]=this.h[2]>>>0&255,r[t+5]=this.h[2]>>>8&255,r[t+6]=this.h[3]>>>0&255,r[t+7]=this.h[3]>>>8&255,r[t+8]=this.h[4]>>>0&255,r[t+9]=this.h[4]>>>8&255,r[t+10]=this.h[5]>>>0&255,r[t+11]=this.h[5]>>>8&255,r[t+12]=this.h[6]>>>0&255,r[t+13]=this.h[6]>>>8&255,r[t+14]=this.h[7]>>>0&255,r[t+15]=this.h[7]>>>8&255},yr.prototype.update=function(r,t,n){var e,o;if(this.leftover){for(o=16-this.leftover,o>n&&(o=n),e=0;o>e;e++)this.buffer[this.leftover+e]=r[t+e];if(n-=o,t+=o,this.leftover+=o,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(n>=16&&(o=n-n%16,this.blocks(r,t,o),t+=o,n-=o),n){for(e=0;n>e;e++)this.buffer[this.leftover+e]=r[t+e];this.leftover+=n}};var lr=p,wr=v,pr=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],vr=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]),br=32,gr=24,_r=32,Ar=16,dr=32,Ur=32,Er=32,xr=32,Mr=32,mr=gr,Br=_r,Sr=Ar,Kr=64,Tr=32,Yr=64,kr=32,Lr=64;r.lowlevel={crypto_core_hsalsa20:f,crypto_stream_xor:y,crypto_stream:c,crypto_stream_salsa20_xor:s,crypto_stream_salsa20:u,crypto_onetimeauth:l,crypto_onetimeauth_verify:w,crypto_verify_16:e,crypto_verify_32:o,crypto_secretbox:p,crypto_secretbox_open:v,crypto_scalarmult:T,crypto_scalarmult_base:Y,crypto_box_beforenm:L,crypto_box_afternm:lr,crypto_box:z,crypto_box_open:R,crypto_box_keypair:k,crypto_hash:O,crypto_sign:V,crypto_sign_keypair:Z,crypto_sign_open:D,crypto_secretbox_KEYBYTES:br,crypto_secretbox_NONCEBYTES:gr,crypto_secretbox_ZEROBYTES:_r,crypto_secretbox_BOXZEROBYTES:Ar,crypto_scalarmult_BYTES:dr,crypto_scalarmult_SCALARBYTES:Ur,crypto_box_PUBLICKEYBYTES:Er,crypto_box_SECRETKEYBYTES:xr,crypto_box_BEFORENMBYTES:Mr,crypto_box_NONCEBYTES:mr,crypto_box_ZEROBYTES:Br,crypto_box_BOXZEROBYTES:Sr,crypto_sign_BYTES:Kr,crypto_sign_PUBLICKEYBYTES:Tr,crypto_sign_SECRETKEYBYTES:Yr,crypto_sign_SEEDBYTES:kr,crypto_hash_BYTES:Lr},r.util||(r.util={},r.util.decodeUTF8=r.util.encodeUTF8=r.util.encodeBase64=r.util.decodeBase64=function(){throw new Error("nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js")}),r.randomBytes=function(r){var t=new Uint8Array(r);return rr(t,r),t},r.secretbox=function(r,t,n){Q(r,t,n),H(n,t);for(var e=new Uint8Array(_r+r.length),o=new Uint8Array(e.length),i=0;ie)return null;for(var o=new Uint8Array(e),i=0;ie;e++)o[e]=t[e];for(e=0;e=0},r.sign.keyPair=function(){var r=new Uint8Array(Tr),t=new Uint8Array(Yr);return Z(r,t),{publicKey:r,secretKey:t}},r.sign.keyPair.fromSecretKey=function(r){if(Q(r),r.length!==Yr)throw new Error("bad secret key size");for(var t=new Uint8Array(Tr),n=0;ne;e++)n[e]=r[e];return Z(t,n,!0),{publicKey:t,secretKey:n}},r.sign.publicKeyLength=Tr,r.sign.secretKeyLength=Yr,r.sign.seedLength=kr,r.sign.signatureLength=Kr,r.hash=function(r){Q(r);var t=new Uint8Array(Lr);return O(t,r,r.length),t},r.hash.hashLength=Lr,r.verify=function(r,t){return Q(r,t), -0===r.length||0===t.length?!1:r.length!==t.length?!1:0===n(r,0,t,0,r.length)?!0:!1},r.setPRNG=function(r){rr=r},function(){var t="undefined"!=typeof self?self.crypto||self.msCrypto:null;if(t&&t.getRandomValues){var n=65536;r.setPRNG(function(r,e){var o,i=new Uint8Array(e);for(o=0;e>o;o+=n)t.getRandomValues(i.subarray(o,o+Math.min(e-o,n)));for(o=0;e>o;o++)r[o]=i[o];W(i)})}else"undefined"!=typeof require&&(t=require("crypto"),t&&t.randomBytes&&r.setPRNG(function(r,n){var e,o=t.randomBytes(n);for(e=0;n>e;e++)r[e]=o[e];W(o)}))}()}("undefined"!=typeof module&&module.exports?module.exports:self.nacl=self.nacl||{}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.js deleted file mode 100644 index f72dd78d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.js +++ /dev/null @@ -1,1175 +0,0 @@ -(function(nacl) { -'use strict'; - -// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri. -// Public domain. -// -// Implementation derived from TweetNaCl version 20140427. -// See for details: http://tweetnacl.cr.yp.to/ - -var u64 = function(h, l) { this.hi = h|0 >>> 0; this.lo = l|0 >>> 0; }; -var gf = function(init) { - var i, r = new Float64Array(16); - if (init) for (i = 0; i < init.length; i++) r[i] = init[i]; - return r; -}; - -// Pluggable, initialized in high-level API below. -var randombytes = function(/* x, n */) { throw new Error('no PRNG'); }; - -var _0 = new Uint8Array(16); -var _9 = new Uint8Array(32); _9[0] = 9; - -var gf0 = gf(), - gf1 = gf([1]), - _121665 = gf([0xdb41, 1]), - D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]), - D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]), - X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]), - Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]), - I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]); - -function L32(x, c) { return (x << c) | (x >>> (32 - c)); } - -function ld32(x, i) { - var u = x[i+3] & 0xff; - u = (u<<8)|(x[i+2] & 0xff); - u = (u<<8)|(x[i+1] & 0xff); - return (u<<8)|(x[i+0] & 0xff); -} - -function dl64(x, i) { - var h = (x[i] << 24) | (x[i+1] << 16) | (x[i+2] << 8) | x[i+3]; - var l = (x[i+4] << 24) | (x[i+5] << 16) | (x[i+6] << 8) | x[i+7]; - return new u64(h, l); -} - -function st32(x, j, u) { - var i; - for (i = 0; i < 4; i++) { x[j+i] = u & 255; u >>>= 8; } -} - -function ts64(x, i, u) { - x[i] = (u.hi >> 24) & 0xff; - x[i+1] = (u.hi >> 16) & 0xff; - x[i+2] = (u.hi >> 8) & 0xff; - x[i+3] = u.hi & 0xff; - x[i+4] = (u.lo >> 24) & 0xff; - x[i+5] = (u.lo >> 16) & 0xff; - x[i+6] = (u.lo >> 8) & 0xff; - x[i+7] = u.lo & 0xff; -} - -function vn(x, xi, y, yi, n) { - var i,d = 0; - for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i]; - return (1 & ((d - 1) >>> 8)) - 1; -} - -function crypto_verify_16(x, xi, y, yi) { - return vn(x,xi,y,yi,16); -} - -function crypto_verify_32(x, xi, y, yi) { - return vn(x,xi,y,yi,32); -} - -function core(out,inp,k,c,h) { - var w = new Uint32Array(16), x = new Uint32Array(16), - y = new Uint32Array(16), t = new Uint32Array(4); - var i, j, m; - - for (i = 0; i < 4; i++) { - x[5*i] = ld32(c, 4*i); - x[1+i] = ld32(k, 4*i); - x[6+i] = ld32(inp, 4*i); - x[11+i] = ld32(k, 16+4*i); - } - - for (i = 0; i < 16; i++) y[i] = x[i]; - - for (i = 0; i < 20; i++) { - for (j = 0; j < 4; j++) { - for (m = 0; m < 4; m++) t[m] = x[(5*j+4*m)%16]; - t[1] ^= L32((t[0]+t[3])|0, 7); - t[2] ^= L32((t[1]+t[0])|0, 9); - t[3] ^= L32((t[2]+t[1])|0,13); - t[0] ^= L32((t[3]+t[2])|0,18); - for (m = 0; m < 4; m++) w[4*j+(j+m)%4] = t[m]; - } - for (m = 0; m < 16; m++) x[m] = w[m]; - } - - if (h) { - for (i = 0; i < 16; i++) x[i] = (x[i] + y[i]) | 0; - for (i = 0; i < 4; i++) { - x[5*i] = (x[5*i] - ld32(c, 4*i)) | 0; - x[6+i] = (x[6+i] - ld32(inp, 4*i)) | 0; - } - for (i = 0; i < 4; i++) { - st32(out,4*i,x[5*i]); - st32(out,16+4*i,x[6+i]); - } - } else { - for (i = 0; i < 16; i++) st32(out, 4 * i, (x[i] + y[i]) | 0); - } -} - -function crypto_core_salsa20(out,inp,k,c) { - core(out,inp,k,c,false); - return 0; -} - -function crypto_core_hsalsa20(out,inp,k,c) { - core(out,inp,k,c,true); - return 0; -} - -var sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]); - // "expand 32-byte k" - -function crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) { - var z = new Uint8Array(16), x = new Uint8Array(64); - var u, i; - if (!b) return 0; - for (i = 0; i < 16; i++) z[i] = 0; - for (i = 0; i < 8; i++) z[i] = n[i]; - while (b >= 64) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < 64; i++) c[cpos+i] = (m?m[mpos+i]:0) ^ x[i]; - u = 1; - for (i = 8; i < 16; i++) { - u = u + (z[i] & 0xff) | 0; - z[i] = u & 0xff; - u >>>= 8; - } - b -= 64; - cpos += 64; - if (m) mpos += 64; - } - if (b > 0) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < b; i++) c[cpos+i] = (m?m[mpos+i]:0) ^ x[i]; - } - return 0; -} - -function crypto_stream_salsa20(c,cpos,d,n,k) { - return crypto_stream_salsa20_xor(c,cpos,null,0,d,n,k); -} - -function crypto_stream(c,cpos,d,n,k) { - var s = new Uint8Array(32); - crypto_core_hsalsa20(s,n,k,sigma); - return crypto_stream_salsa20(c,cpos,d,n.subarray(16),s); -} - -function crypto_stream_xor(c,cpos,m,mpos,d,n,k) { - var s = new Uint8Array(32); - crypto_core_hsalsa20(s,n,k,sigma); - return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,n.subarray(16),s); -} - -function add1305(h, c) { - var j, u = 0; - for (j = 0; j < 17; j++) { - u = (u + ((h[j] + c[j]) | 0)) | 0; - h[j] = u & 255; - u >>>= 8; - } -} - -var minusp = new Uint32Array([ - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252 -]); - -function crypto_onetimeauth(out, outpos, m, mpos, n, k) { - var s, i, j, u; - var x = new Uint32Array(17), r = new Uint32Array(17), - h = new Uint32Array(17), c = new Uint32Array(17), - g = new Uint32Array(17); - for (j = 0; j < 17; j++) r[j]=h[j]=0; - for (j = 0; j < 16; j++) r[j]=k[j]; - r[3]&=15; - r[4]&=252; - r[7]&=15; - r[8]&=252; - r[11]&=15; - r[12]&=252; - r[15]&=15; - - while (n > 0) { - for (j = 0; j < 17; j++) c[j] = 0; - for (j = 0; (j < 16) && (j < n); ++j) c[j] = m[mpos+j]; - c[j] = 1; - mpos += j; n -= j; - add1305(h,c); - for (i = 0; i < 17; i++) { - x[i] = 0; - for (j = 0; j < 17; j++) x[i] = (x[i] + (h[j] * ((j <= i) ? r[i - j] : ((320 * r[i + 17 - j])|0))) | 0) | 0; - } - for (i = 0; i < 17; i++) h[i] = x[i]; - u = 0; - for (j = 0; j < 16; j++) { - u = (u + h[j]) | 0; - h[j] = u & 255; - u >>>= 8; - } - u = (u + h[16]) | 0; h[16] = u & 3; - u = (5 * (u >>> 2)) | 0; - for (j = 0; j < 16; j++) { - u = (u + h[j]) | 0; - h[j] = u & 255; - u >>>= 8; - } - u = (u + h[16]) | 0; h[16] = u; - } - - for (j = 0; j < 17; j++) g[j] = h[j]; - add1305(h,minusp); - s = (-(h[16] >>> 7) | 0); - for (j = 0; j < 17; j++) h[j] ^= s & (g[j] ^ h[j]); - - for (j = 0; j < 16; j++) c[j] = k[j + 16]; - c[16] = 0; - add1305(h,c); - for (j = 0; j < 16; j++) out[outpos+j] = h[j]; - return 0; -} - -function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) { - var x = new Uint8Array(16); - crypto_onetimeauth(x,0,m,mpos,n,k); - return crypto_verify_16(h,hpos,x,0); -} - -function crypto_secretbox(c,m,d,n,k) { - var i; - if (d < 32) return -1; - crypto_stream_xor(c,0,m,0,d,n,k); - crypto_onetimeauth(c, 16, c, 32, d - 32, c); - for (i = 0; i < 16; i++) c[i] = 0; - return 0; -} - -function crypto_secretbox_open(m,c,d,n,k) { - var i; - var x = new Uint8Array(32); - if (d < 32) return -1; - crypto_stream(x,0,32,n,k); - if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1; - crypto_stream_xor(m,0,c,0,d,n,k); - for (i = 0; i < 32; i++) m[i] = 0; - return 0; -} - -function set25519(r, a) { - var i; - for (i = 0; i < 16; i++) r[i] = a[i]|0; -} - -function car25519(o) { - var c; - var i; - for (i = 0; i < 16; i++) { - o[i] += 65536; - c = Math.floor(o[i] / 65536); - o[(i+1)*(i<15?1:0)] += c - 1 + 37 * (c-1) * (i===15?1:0); - o[i] -= (c * 65536); - } -} - -function sel25519(p, q, b) { - var t, c = ~(b-1); - for (var i = 0; i < 16; i++) { - t = c & (p[i] ^ q[i]); - p[i] ^= t; - q[i] ^= t; - } -} - -function pack25519(o, n) { - var i, j, b; - var m = gf(), t = gf(); - for (i = 0; i < 16; i++) t[i] = n[i]; - car25519(t); - car25519(t); - car25519(t); - for (j = 0; j < 2; j++) { - m[0] = t[0] - 0xffed; - for (i = 1; i < 15; i++) { - m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1); - m[i-1] &= 0xffff; - } - m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1); - b = (m[15]>>16) & 1; - m[14] &= 0xffff; - sel25519(t, m, 1-b); - } - for (i = 0; i < 16; i++) { - o[2*i] = t[i] & 0xff; - o[2*i+1] = t[i]>>8; - } -} - -function neq25519(a, b) { - var c = new Uint8Array(32), d = new Uint8Array(32); - pack25519(c, a); - pack25519(d, b); - return crypto_verify_32(c, 0, d, 0); -} - -function par25519(a) { - var d = new Uint8Array(32); - pack25519(d, a); - return d[0] & 1; -} - -function unpack25519(o, n) { - var i; - for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8); - o[15] &= 0x7fff; -} - -function A(o, a, b) { - var i; - for (i = 0; i < 16; i++) o[i] = (a[i] + b[i])|0; -} - -function Z(o, a, b) { - var i; - for (i = 0; i < 16; i++) o[i] = (a[i] - b[i])|0; -} - -function M(o, a, b) { - var i, j, t = new Float64Array(31); - for (i = 0; i < 31; i++) t[i] = 0; - for (i = 0; i < 16; i++) { - for (j = 0; j < 16; j++) { - t[i+j] += a[i] * b[j]; - } - } - for (i = 0; i < 15; i++) { - t[i] += 38 * t[i+16]; - } - for (i = 0; i < 16; i++) o[i] = t[i]; - car25519(o); - car25519(o); -} - -function S(o, a) { - M(o, a, a); -} - -function inv25519(o, i) { - var c = gf(); - var a; - for (a = 0; a < 16; a++) c[a] = i[a]; - for (a = 253; a >= 0; a--) { - S(c, c); - if(a !== 2 && a !== 4) M(c, c, i); - } - for (a = 0; a < 16; a++) o[a] = c[a]; -} - -function pow2523(o, i) { - var c = gf(); - var a; - for (a = 0; a < 16; a++) c[a] = i[a]; - for (a = 250; a >= 0; a--) { - S(c, c); - if(a !== 1) M(c, c, i); - } - for (a = 0; a < 16; a++) o[a] = c[a]; -} - -function crypto_scalarmult(q, n, p) { - var z = new Uint8Array(32); - var x = new Float64Array(80), r, i; - var a = gf(), b = gf(), c = gf(), - d = gf(), e = gf(), f = gf(); - for (i = 0; i < 31; i++) z[i] = n[i]; - z[31]=(n[31]&127)|64; - z[0]&=248; - unpack25519(x,p); - for (i = 0; i < 16; i++) { - b[i]=x[i]; - d[i]=a[i]=c[i]=0; - } - a[0]=d[0]=1; - for (i=254; i>=0; --i) { - r=(z[i>>>3]>>>(i&7))&1; - sel25519(a,b,r); - sel25519(c,d,r); - A(e,a,c); - Z(a,a,c); - A(c,b,d); - Z(b,b,d); - S(d,e); - S(f,a); - M(a,c,a); - M(c,b,e); - A(e,a,c); - Z(a,a,c); - S(b,a); - Z(c,d,f); - M(a,c,_121665); - A(a,a,d); - M(c,c,a); - M(a,d,f); - M(d,b,x); - S(b,e); - sel25519(a,b,r); - sel25519(c,d,r); - } - for (i = 0; i < 16; i++) { - x[i+16]=a[i]; - x[i+32]=c[i]; - x[i+48]=b[i]; - x[i+64]=d[i]; - } - var x32 = x.subarray(32); - var x16 = x.subarray(16); - inv25519(x32,x32); - M(x16,x16,x32); - pack25519(q,x16); - return 0; -} - -function crypto_scalarmult_base(q, n) { - return crypto_scalarmult(q, n, _9); -} - -function crypto_box_keypair(y, x) { - randombytes(x, 32); - return crypto_scalarmult_base(y, x); -} - -function crypto_box_beforenm(k, y, x) { - var s = new Uint8Array(32); - crypto_scalarmult(s, x, y); - return crypto_core_hsalsa20(k, _0, s, sigma); -} - -var crypto_box_afternm = crypto_secretbox; -var crypto_box_open_afternm = crypto_secretbox_open; - -function crypto_box(c, m, d, n, y, x) { - var k = new Uint8Array(32); - crypto_box_beforenm(k, y, x); - return crypto_box_afternm(c, m, d, n, k); -} - -function crypto_box_open(m, c, d, n, y, x) { - var k = new Uint8Array(32); - crypto_box_beforenm(k, y, x); - return crypto_box_open_afternm(m, c, d, n, k); -} - -function add64() { - var a = 0, b = 0, c = 0, d = 0, m16 = 65535, l, h, i; - for (i = 0; i < arguments.length; i++) { - l = arguments[i].lo; - h = arguments[i].hi; - a += (l & m16); b += (l >>> 16); - c += (h & m16); d += (h >>> 16); - } - - b += (a >>> 16); - c += (b >>> 16); - d += (c >>> 16); - - return new u64((c & m16) | (d << 16), (a & m16) | (b << 16)); -} - -function shr64(x, c) { - return new u64((x.hi >>> c), (x.lo >>> c) | (x.hi << (32 - c))); -} - -function xor64() { - var l = 0, h = 0, i; - for (i = 0; i < arguments.length; i++) { - l ^= arguments[i].lo; - h ^= arguments[i].hi; - } - return new u64(h, l); -} - -function R(x, c) { - var h, l, c1 = 32 - c; - if (c < 32) { - h = (x.hi >>> c) | (x.lo << c1); - l = (x.lo >>> c) | (x.hi << c1); - } else if (c < 64) { - h = (x.lo >>> c) | (x.hi << c1); - l = (x.hi >>> c) | (x.lo << c1); - } - return new u64(h, l); -} - -function Ch(x, y, z) { - var h = (x.hi & y.hi) ^ (~x.hi & z.hi), - l = (x.lo & y.lo) ^ (~x.lo & z.lo); - return new u64(h, l); -} - -function Maj(x, y, z) { - var h = (x.hi & y.hi) ^ (x.hi & z.hi) ^ (y.hi & z.hi), - l = (x.lo & y.lo) ^ (x.lo & z.lo) ^ (y.lo & z.lo); - return new u64(h, l); -} - -function Sigma0(x) { return xor64(R(x,28), R(x,34), R(x,39)); } -function Sigma1(x) { return xor64(R(x,14), R(x,18), R(x,41)); } -function sigma0(x) { return xor64(R(x, 1), R(x, 8), shr64(x,7)); } -function sigma1(x) { return xor64(R(x,19), R(x,61), shr64(x,6)); } - -var K = [ - new u64(0x428a2f98, 0xd728ae22), new u64(0x71374491, 0x23ef65cd), - new u64(0xb5c0fbcf, 0xec4d3b2f), new u64(0xe9b5dba5, 0x8189dbbc), - new u64(0x3956c25b, 0xf348b538), new u64(0x59f111f1, 0xb605d019), - new u64(0x923f82a4, 0xaf194f9b), new u64(0xab1c5ed5, 0xda6d8118), - new u64(0xd807aa98, 0xa3030242), new u64(0x12835b01, 0x45706fbe), - new u64(0x243185be, 0x4ee4b28c), new u64(0x550c7dc3, 0xd5ffb4e2), - new u64(0x72be5d74, 0xf27b896f), new u64(0x80deb1fe, 0x3b1696b1), - new u64(0x9bdc06a7, 0x25c71235), new u64(0xc19bf174, 0xcf692694), - new u64(0xe49b69c1, 0x9ef14ad2), new u64(0xefbe4786, 0x384f25e3), - new u64(0x0fc19dc6, 0x8b8cd5b5), new u64(0x240ca1cc, 0x77ac9c65), - new u64(0x2de92c6f, 0x592b0275), new u64(0x4a7484aa, 0x6ea6e483), - new u64(0x5cb0a9dc, 0xbd41fbd4), new u64(0x76f988da, 0x831153b5), - new u64(0x983e5152, 0xee66dfab), new u64(0xa831c66d, 0x2db43210), - new u64(0xb00327c8, 0x98fb213f), new u64(0xbf597fc7, 0xbeef0ee4), - new u64(0xc6e00bf3, 0x3da88fc2), new u64(0xd5a79147, 0x930aa725), - new u64(0x06ca6351, 0xe003826f), new u64(0x14292967, 0x0a0e6e70), - new u64(0x27b70a85, 0x46d22ffc), new u64(0x2e1b2138, 0x5c26c926), - new u64(0x4d2c6dfc, 0x5ac42aed), new u64(0x53380d13, 0x9d95b3df), - new u64(0x650a7354, 0x8baf63de), new u64(0x766a0abb, 0x3c77b2a8), - new u64(0x81c2c92e, 0x47edaee6), new u64(0x92722c85, 0x1482353b), - new u64(0xa2bfe8a1, 0x4cf10364), new u64(0xa81a664b, 0xbc423001), - new u64(0xc24b8b70, 0xd0f89791), new u64(0xc76c51a3, 0x0654be30), - new u64(0xd192e819, 0xd6ef5218), new u64(0xd6990624, 0x5565a910), - new u64(0xf40e3585, 0x5771202a), new u64(0x106aa070, 0x32bbd1b8), - new u64(0x19a4c116, 0xb8d2d0c8), new u64(0x1e376c08, 0x5141ab53), - new u64(0x2748774c, 0xdf8eeb99), new u64(0x34b0bcb5, 0xe19b48a8), - new u64(0x391c0cb3, 0xc5c95a63), new u64(0x4ed8aa4a, 0xe3418acb), - new u64(0x5b9cca4f, 0x7763e373), new u64(0x682e6ff3, 0xd6b2b8a3), - new u64(0x748f82ee, 0x5defb2fc), new u64(0x78a5636f, 0x43172f60), - new u64(0x84c87814, 0xa1f0ab72), new u64(0x8cc70208, 0x1a6439ec), - new u64(0x90befffa, 0x23631e28), new u64(0xa4506ceb, 0xde82bde9), - new u64(0xbef9a3f7, 0xb2c67915), new u64(0xc67178f2, 0xe372532b), - new u64(0xca273ece, 0xea26619c), new u64(0xd186b8c7, 0x21c0c207), - new u64(0xeada7dd6, 0xcde0eb1e), new u64(0xf57d4f7f, 0xee6ed178), - new u64(0x06f067aa, 0x72176fba), new u64(0x0a637dc5, 0xa2c898a6), - new u64(0x113f9804, 0xbef90dae), new u64(0x1b710b35, 0x131c471b), - new u64(0x28db77f5, 0x23047d84), new u64(0x32caab7b, 0x40c72493), - new u64(0x3c9ebe0a, 0x15c9bebc), new u64(0x431d67c4, 0x9c100d4c), - new u64(0x4cc5d4be, 0xcb3e42b6), new u64(0x597f299c, 0xfc657e2a), - new u64(0x5fcb6fab, 0x3ad6faec), new u64(0x6c44198c, 0x4a475817) -]; - -function crypto_hashblocks(x, m, n) { - var z = [], b = [], a = [], w = [], t, i, j; - - for (i = 0; i < 8; i++) z[i] = a[i] = dl64(x, 8*i); - - var pos = 0; - while (n >= 128) { - for (i = 0; i < 16; i++) w[i] = dl64(m, 8*i+pos); - for (i = 0; i < 80; i++) { - for (j = 0; j < 8; j++) b[j] = a[j]; - t = add64(a[7], Sigma1(a[4]), Ch(a[4], a[5], a[6]), K[i], w[i%16]); - b[7] = add64(t, Sigma0(a[0]), Maj(a[0], a[1], a[2])); - b[3] = add64(b[3], t); - for (j = 0; j < 8; j++) a[(j+1)%8] = b[j]; - if (i%16 === 15) { - for (j = 0; j < 16; j++) { - w[j] = add64(w[j], w[(j+9)%16], sigma0(w[(j+1)%16]), sigma1(w[(j+14)%16])); - } - } - } - - for (i = 0; i < 8; i++) { - a[i] = add64(a[i], z[i]); - z[i] = a[i]; - } - - pos += 128; - n -= 128; - } - - for (i = 0; i < 8; i++) ts64(x, 8*i, z[i]); - return n; -} - -var iv = new Uint8Array([ - 0x6a,0x09,0xe6,0x67,0xf3,0xbc,0xc9,0x08, - 0xbb,0x67,0xae,0x85,0x84,0xca,0xa7,0x3b, - 0x3c,0x6e,0xf3,0x72,0xfe,0x94,0xf8,0x2b, - 0xa5,0x4f,0xf5,0x3a,0x5f,0x1d,0x36,0xf1, - 0x51,0x0e,0x52,0x7f,0xad,0xe6,0x82,0xd1, - 0x9b,0x05,0x68,0x8c,0x2b,0x3e,0x6c,0x1f, - 0x1f,0x83,0xd9,0xab,0xfb,0x41,0xbd,0x6b, - 0x5b,0xe0,0xcd,0x19,0x13,0x7e,0x21,0x79 -]); - -function crypto_hash(out, m, n) { - var h = new Uint8Array(64), x = new Uint8Array(256); - var i, b = n; - - for (i = 0; i < 64; i++) h[i] = iv[i]; - - crypto_hashblocks(h, m, n); - n %= 128; - - for (i = 0; i < 256; i++) x[i] = 0; - for (i = 0; i < n; i++) x[i] = m[b-n+i]; - x[n] = 128; - - n = 256-128*(n<112?1:0); - x[n-9] = 0; - ts64(x, n-8, new u64((b / 0x20000000) | 0, b << 3)); - crypto_hashblocks(h, x, n); - - for (i = 0; i < 64; i++) out[i] = h[i]; - - return 0; -} - -function add(p, q) { - var a = gf(), b = gf(), c = gf(), - d = gf(), e = gf(), f = gf(), - g = gf(), h = gf(), t = gf(); - - Z(a, p[1], p[0]); - Z(t, q[1], q[0]); - M(a, a, t); - A(b, p[0], p[1]); - A(t, q[0], q[1]); - M(b, b, t); - M(c, p[3], q[3]); - M(c, c, D2); - M(d, p[2], q[2]); - A(d, d, d); - Z(e, b, a); - Z(f, d, c); - A(g, d, c); - A(h, b, a); - - M(p[0], e, f); - M(p[1], h, g); - M(p[2], g, f); - M(p[3], e, h); -} - -function cswap(p, q, b) { - var i; - for (i = 0; i < 4; i++) { - sel25519(p[i], q[i], b); - } -} - -function pack(r, p) { - var tx = gf(), ty = gf(), zi = gf(); - inv25519(zi, p[2]); - M(tx, p[0], zi); - M(ty, p[1], zi); - pack25519(r, ty); - r[31] ^= par25519(tx) << 7; -} - -function scalarmult(p, q, s) { - var b, i; - set25519(p[0], gf0); - set25519(p[1], gf1); - set25519(p[2], gf1); - set25519(p[3], gf0); - for (i = 255; i >= 0; --i) { - b = (s[(i/8)|0] >> (i&7)) & 1; - cswap(p, q, b); - add(q, p); - add(p, p); - cswap(p, q, b); - } -} - -function scalarbase(p, s) { - var q = [gf(), gf(), gf(), gf()]; - set25519(q[0], X); - set25519(q[1], Y); - set25519(q[2], gf1); - M(q[3], X, Y); - scalarmult(p, q, s); -} - -function crypto_sign_keypair(pk, sk, seeded) { - var d = new Uint8Array(64); - var p = [gf(), gf(), gf(), gf()]; - var i; - - if (!seeded) randombytes(sk, 32); - crypto_hash(d, sk, 32); - d[0] &= 248; - d[31] &= 127; - d[31] |= 64; - - scalarbase(p, d); - pack(pk, p); - - for (i = 0; i < 32; i++) sk[i+32] = pk[i]; - return 0; -} - -var L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]); - -function modL(r, x) { - var carry, i, j, k; - for (i = 63; i >= 32; --i) { - carry = 0; - for (j = i - 32, k = i - 12; j < k; ++j) { - x[j] += carry - 16 * x[i] * L[j - (i - 32)]; - carry = (x[j] + 128) >> 8; - x[j] -= carry * 256; - } - x[j] += carry; - x[i] = 0; - } - carry = 0; - for (j = 0; j < 32; j++) { - x[j] += carry - (x[31] >> 4) * L[j]; - carry = x[j] >> 8; - x[j] &= 255; - } - for (j = 0; j < 32; j++) x[j] -= carry * L[j]; - for (i = 0; i < 32; i++) { - x[i+1] += x[i] >> 8; - r[i] = x[i] & 255; - } -} - -function reduce(r) { - var x = new Float64Array(64), i; - for (i = 0; i < 64; i++) x[i] = r[i]; - for (i = 0; i < 64; i++) r[i] = 0; - modL(r, x); -} - -// Note: difference from C - smlen returned, not passed as argument. -function crypto_sign(sm, m, n, sk) { - var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64); - var i, j, x = new Float64Array(64); - var p = [gf(), gf(), gf(), gf()]; - - crypto_hash(d, sk, 32); - d[0] &= 248; - d[31] &= 127; - d[31] |= 64; - - var smlen = n + 64; - for (i = 0; i < n; i++) sm[64 + i] = m[i]; - for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i]; - - crypto_hash(r, sm.subarray(32), n+32); - reduce(r); - scalarbase(p, r); - pack(sm, p); - - for (i = 32; i < 64; i++) sm[i] = sk[i]; - crypto_hash(h, sm, n + 64); - reduce(h); - - for (i = 0; i < 64; i++) x[i] = 0; - for (i = 0; i < 32; i++) x[i] = r[i]; - for (i = 0; i < 32; i++) { - for (j = 0; j < 32; j++) { - x[i+j] += h[i] * d[j]; - } - } - - modL(sm.subarray(32), x); - return smlen; -} - -function unpackneg(r, p) { - var t = gf(), chk = gf(), num = gf(), - den = gf(), den2 = gf(), den4 = gf(), - den6 = gf(); - - set25519(r[2], gf1); - unpack25519(r[1], p); - S(num, r[1]); - M(den, num, D); - Z(num, num, r[2]); - A(den, r[2], den); - - S(den2, den); - S(den4, den2); - M(den6, den4, den2); - M(t, den6, num); - M(t, t, den); - - pow2523(t, t); - M(t, t, num); - M(t, t, den); - M(t, t, den); - M(r[0], t, den); - - S(chk, r[0]); - M(chk, chk, den); - if (neq25519(chk, num)) M(r[0], r[0], I); - - S(chk, r[0]); - M(chk, chk, den); - if (neq25519(chk, num)) return -1; - - if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]); - - M(r[3], r[0], r[1]); - return 0; -} - -function crypto_sign_open(m, sm, n, pk) { - var i, mlen; - var t = new Uint8Array(32), h = new Uint8Array(64); - var p = [gf(), gf(), gf(), gf()], - q = [gf(), gf(), gf(), gf()]; - - mlen = -1; - if (n < 64) return -1; - - if (unpackneg(q, pk)) return -1; - - for (i = 0; i < n; i++) m[i] = sm[i]; - for (i = 0; i < 32; i++) m[i+32] = pk[i]; - crypto_hash(h, m, n); - reduce(h); - scalarmult(p, q, h); - - scalarbase(q, sm.subarray(32)); - add(p, q); - pack(t, p); - - n -= 64; - if (crypto_verify_32(sm, 0, t, 0)) { - for (i = 0; i < n; i++) m[i] = 0; - return -1; - } - - for (i = 0; i < n; i++) m[i] = sm[i + 64]; - mlen = n; - return mlen; -} - -var crypto_secretbox_KEYBYTES = 32, - crypto_secretbox_NONCEBYTES = 24, - crypto_secretbox_ZEROBYTES = 32, - crypto_secretbox_BOXZEROBYTES = 16, - crypto_scalarmult_BYTES = 32, - crypto_scalarmult_SCALARBYTES = 32, - crypto_box_PUBLICKEYBYTES = 32, - crypto_box_SECRETKEYBYTES = 32, - crypto_box_BEFORENMBYTES = 32, - crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES, - crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES, - crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES, - crypto_sign_BYTES = 64, - crypto_sign_PUBLICKEYBYTES = 32, - crypto_sign_SECRETKEYBYTES = 64, - crypto_sign_SEEDBYTES = 32, - crypto_hash_BYTES = 64; - -nacl.lowlevel = { - crypto_core_hsalsa20: crypto_core_hsalsa20, - crypto_stream_xor: crypto_stream_xor, - crypto_stream: crypto_stream, - crypto_stream_salsa20_xor: crypto_stream_salsa20_xor, - crypto_stream_salsa20: crypto_stream_salsa20, - crypto_onetimeauth: crypto_onetimeauth, - crypto_onetimeauth_verify: crypto_onetimeauth_verify, - crypto_verify_16: crypto_verify_16, - crypto_verify_32: crypto_verify_32, - crypto_secretbox: crypto_secretbox, - crypto_secretbox_open: crypto_secretbox_open, - crypto_scalarmult: crypto_scalarmult, - crypto_scalarmult_base: crypto_scalarmult_base, - crypto_box_beforenm: crypto_box_beforenm, - crypto_box_afternm: crypto_box_afternm, - crypto_box: crypto_box, - crypto_box_open: crypto_box_open, - crypto_box_keypair: crypto_box_keypair, - crypto_hash: crypto_hash, - crypto_sign: crypto_sign, - crypto_sign_keypair: crypto_sign_keypair, - crypto_sign_open: crypto_sign_open, - - crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES, - crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES, - crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES, - crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES, - crypto_scalarmult_BYTES: crypto_scalarmult_BYTES, - crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES, - crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES, - crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES, - crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES, - crypto_box_NONCEBYTES: crypto_box_NONCEBYTES, - crypto_box_ZEROBYTES: crypto_box_ZEROBYTES, - crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES, - crypto_sign_BYTES: crypto_sign_BYTES, - crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES, - crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES, - crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES, - crypto_hash_BYTES: crypto_hash_BYTES -}; - -/* High-level API */ - -function checkLengths(k, n) { - if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size'); - if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size'); -} - -function checkBoxLengths(pk, sk) { - if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size'); - if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size'); -} - -function checkArrayTypes() { - var t, i; - for (i = 0; i < arguments.length; i++) { - if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]') - throw new TypeError('unexpected type ' + t + ', use Uint8Array'); - } -} - -function cleanup(arr) { - for (var i = 0; i < arr.length; i++) arr[i] = 0; -} - -// TODO: Completely remove this in v0.15. -if (!nacl.util) { - nacl.util = {}; - nacl.util.decodeUTF8 = nacl.util.encodeUTF8 = nacl.util.encodeBase64 = nacl.util.decodeBase64 = function() { - throw new Error('nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js'); - }; -} - -nacl.randomBytes = function(n) { - var b = new Uint8Array(n); - randombytes(b, n); - return b; -}; - -nacl.secretbox = function(msg, nonce, key) { - checkArrayTypes(msg, nonce, key); - checkLengths(key, nonce); - var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length); - var c = new Uint8Array(m.length); - for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i]; - crypto_secretbox(c, m, m.length, nonce, key); - return c.subarray(crypto_secretbox_BOXZEROBYTES); -}; - -nacl.secretbox.open = function(box, nonce, key) { - checkArrayTypes(box, nonce, key); - checkLengths(key, nonce); - var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length); - var m = new Uint8Array(c.length); - for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i]; - if (c.length < 32) return false; - if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return false; - return m.subarray(crypto_secretbox_ZEROBYTES); -}; - -nacl.secretbox.keyLength = crypto_secretbox_KEYBYTES; -nacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES; -nacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES; - -nacl.scalarMult = function(n, p) { - checkArrayTypes(n, p); - if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size'); - if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size'); - var q = new Uint8Array(crypto_scalarmult_BYTES); - crypto_scalarmult(q, n, p); - return q; -}; - -nacl.scalarMult.base = function(n) { - checkArrayTypes(n); - if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size'); - var q = new Uint8Array(crypto_scalarmult_BYTES); - crypto_scalarmult_base(q, n); - return q; -}; - -nacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES; -nacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES; - -nacl.box = function(msg, nonce, publicKey, secretKey) { - var k = nacl.box.before(publicKey, secretKey); - return nacl.secretbox(msg, nonce, k); -}; - -nacl.box.before = function(publicKey, secretKey) { - checkArrayTypes(publicKey, secretKey); - checkBoxLengths(publicKey, secretKey); - var k = new Uint8Array(crypto_box_BEFORENMBYTES); - crypto_box_beforenm(k, publicKey, secretKey); - return k; -}; - -nacl.box.after = nacl.secretbox; - -nacl.box.open = function(msg, nonce, publicKey, secretKey) { - var k = nacl.box.before(publicKey, secretKey); - return nacl.secretbox.open(msg, nonce, k); -}; - -nacl.box.open.after = nacl.secretbox.open; - -nacl.box.keyPair = function() { - var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_box_SECRETKEYBYTES); - crypto_box_keypair(pk, sk); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.box.keyPair.fromSecretKey = function(secretKey) { - checkArrayTypes(secretKey); - if (secretKey.length !== crypto_box_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES); - crypto_scalarmult_base(pk, secretKey); - return {publicKey: pk, secretKey: new Uint8Array(secretKey)}; -}; - -nacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES; -nacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES; -nacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES; -nacl.box.nonceLength = crypto_box_NONCEBYTES; -nacl.box.overheadLength = nacl.secretbox.overheadLength; - -nacl.sign = function(msg, secretKey) { - checkArrayTypes(msg, secretKey); - if (secretKey.length !== crypto_sign_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length); - crypto_sign(signedMsg, msg, msg.length, secretKey); - return signedMsg; -}; - -nacl.sign.open = function(signedMsg, publicKey) { - if (arguments.length !== 2) - throw new Error('nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?'); - checkArrayTypes(signedMsg, publicKey); - if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) - throw new Error('bad public key size'); - var tmp = new Uint8Array(signedMsg.length); - var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey); - if (mlen < 0) return null; - var m = new Uint8Array(mlen); - for (var i = 0; i < m.length; i++) m[i] = tmp[i]; - return m; -}; - -nacl.sign.detached = function(msg, secretKey) { - var signedMsg = nacl.sign(msg, secretKey); - var sig = new Uint8Array(crypto_sign_BYTES); - for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i]; - return sig; -}; - -nacl.sign.detached.verify = function(msg, sig, publicKey) { - checkArrayTypes(msg, sig, publicKey); - if (sig.length !== crypto_sign_BYTES) - throw new Error('bad signature size'); - if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) - throw new Error('bad public key size'); - var sm = new Uint8Array(crypto_sign_BYTES + msg.length); - var m = new Uint8Array(crypto_sign_BYTES + msg.length); - var i; - for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i]; - for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i]; - return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0); -}; - -nacl.sign.keyPair = function() { - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES); - crypto_sign_keypair(pk, sk); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.sign.keyPair.fromSecretKey = function(secretKey) { - checkArrayTypes(secretKey); - if (secretKey.length !== crypto_sign_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i]; - return {publicKey: pk, secretKey: new Uint8Array(secretKey)}; -}; - -nacl.sign.keyPair.fromSeed = function(seed) { - checkArrayTypes(seed); - if (seed.length !== crypto_sign_SEEDBYTES) - throw new Error('bad seed size'); - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES); - for (var i = 0; i < 32; i++) sk[i] = seed[i]; - crypto_sign_keypair(pk, sk, true); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES; -nacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES; -nacl.sign.seedLength = crypto_sign_SEEDBYTES; -nacl.sign.signatureLength = crypto_sign_BYTES; - -nacl.hash = function(msg) { - checkArrayTypes(msg); - var h = new Uint8Array(crypto_hash_BYTES); - crypto_hash(h, msg, msg.length); - return h; -}; - -nacl.hash.hashLength = crypto_hash_BYTES; - -nacl.verify = function(x, y) { - checkArrayTypes(x, y); - // Zero length arguments are considered not equal. - if (x.length === 0 || y.length === 0) return false; - if (x.length !== y.length) return false; - return (vn(x, 0, y, 0, x.length) === 0) ? true : false; -}; - -nacl.setPRNG = function(fn) { - randombytes = fn; -}; - -(function() { - // Initialize PRNG if environment provides CSPRNG. - // If not, methods calling randombytes will throw. - var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null; - if (crypto && crypto.getRandomValues) { - // Browsers. - var QUOTA = 65536; - nacl.setPRNG(function(x, n) { - var i, v = new Uint8Array(n); - for (i = 0; i < n; i += QUOTA) { - crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA))); - } - for (i = 0; i < n; i++) x[i] = v[i]; - cleanup(v); - }); - } else if (typeof require !== 'undefined') { - // Node.js. - crypto = require('crypto'); - if (crypto && crypto.randomBytes) { - nacl.setPRNG(function(x, n) { - var i, v = crypto.randomBytes(n); - for (i = 0; i < n; i++) x[i] = v[i]; - cleanup(v); - }); - } - } -})(); - -})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {})); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.min.js deleted file mode 100644 index eed38541..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(r){"use strict";function n(r,n){return r<>>32-n}function e(r,n){var e=255&r[n+3];return e=e<<8|255&r[n+2],e=e<<8|255&r[n+1],e<<8|255&r[n+0]}function t(r,n){var e=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],t=r[n+4]<<24|r[n+5]<<16|r[n+6]<<8|r[n+7];return new lr(e,t)}function o(r,n,e){var t;for(t=0;4>t;t++)r[n+t]=255&e,e>>>=8}function i(r,n,e){r[n]=e.hi>>24&255,r[n+1]=e.hi>>16&255,r[n+2]=e.hi>>8&255,r[n+3]=255&e.hi,r[n+4]=e.lo>>24&255,r[n+5]=e.lo>>16&255,r[n+6]=e.lo>>8&255,r[n+7]=255&e.lo}function a(r,n,e,t,o){var i,a=0;for(i=0;o>i;i++)a|=r[n+i]^e[t+i];return(1&a-1>>>8)-1}function f(r,n,e,t){return a(r,n,e,t,16)}function u(r,n,e,t){return a(r,n,e,t,32)}function c(r,t,i,a,f){var u,c,w,y=new Uint32Array(16),s=new Uint32Array(16),l=new Uint32Array(16),h=new Uint32Array(4);for(u=0;4>u;u++)s[5*u]=e(a,4*u),s[1+u]=e(i,4*u),s[6+u]=e(t,4*u),s[11+u]=e(i,16+4*u);for(u=0;16>u;u++)l[u]=s[u];for(u=0;20>u;u++){for(c=0;4>c;c++){for(w=0;4>w;w++)h[w]=s[(5*c+4*w)%16];for(h[1]^=n(h[0]+h[3]|0,7),h[2]^=n(h[1]+h[0]|0,9),h[3]^=n(h[2]+h[1]|0,13),h[0]^=n(h[3]+h[2]|0,18),w=0;4>w;w++)y[4*c+(c+w)%4]=h[w]}for(w=0;16>w;w++)s[w]=y[w]}if(f){for(u=0;16>u;u++)s[u]=s[u]+l[u]|0;for(u=0;4>u;u++)s[5*u]=s[5*u]-e(a,4*u)|0,s[6+u]=s[6+u]-e(t,4*u)|0;for(u=0;4>u;u++)o(r,4*u,s[5*u]),o(r,16+4*u,s[6+u])}else for(u=0;16>u;u++)o(r,4*u,s[u]+l[u]|0)}function w(r,n,e,t){return c(r,n,e,t,!1),0}function y(r,n,e,t){return c(r,n,e,t,!0),0}function s(r,n,e,t,o,i,a){var f,u,c=new Uint8Array(16),y=new Uint8Array(64);if(!o)return 0;for(u=0;16>u;u++)c[u]=0;for(u=0;8>u;u++)c[u]=i[u];for(;o>=64;){for(w(y,c,a,Br),u=0;64>u;u++)r[n+u]=(e?e[t+u]:0)^y[u];for(f=1,u=8;16>u;u++)f=f+(255&c[u])|0,c[u]=255&f,f>>>=8;o-=64,n+=64,e&&(t+=64)}if(o>0)for(w(y,c,a,Br),u=0;o>u;u++)r[n+u]=(e?e[t+u]:0)^y[u];return 0}function l(r,n,e,t,o){return s(r,n,null,0,e,t,o)}function h(r,n,e,t,o){var i=new Uint8Array(32);return y(i,t,o,Br),l(r,n,e,t.subarray(16),i)}function g(r,n,e,t,o,i,a){var f=new Uint8Array(32);return y(f,i,a,Br),s(r,n,e,t,o,i.subarray(16),f)}function v(r,n){var e,t=0;for(e=0;17>e;e++)t=t+(r[e]+n[e]|0)|0,r[e]=255&t,t>>>=8}function b(r,n,e,t,o,i){var a,f,u,c,w=new Uint32Array(17),y=new Uint32Array(17),s=new Uint32Array(17),l=new Uint32Array(17),h=new Uint32Array(17);for(u=0;17>u;u++)y[u]=s[u]=0;for(u=0;16>u;u++)y[u]=i[u];for(y[3]&=15,y[4]&=252,y[7]&=15,y[8]&=252,y[11]&=15,y[12]&=252,y[15]&=15;o>0;){for(u=0;17>u;u++)l[u]=0;for(u=0;16>u&&o>u;++u)l[u]=e[t+u];for(l[u]=1,t+=u,o-=u,v(s,l),f=0;17>f;f++)for(w[f]=0,u=0;17>u;u++)w[f]=w[f]+s[u]*(f>=u?y[f-u]:320*y[f+17-u]|0)|0|0;for(f=0;17>f;f++)s[f]=w[f];for(c=0,u=0;16>u;u++)c=c+s[u]|0,s[u]=255&c,c>>>=8;for(c=c+s[16]|0,s[16]=3&c,c=5*(c>>>2)|0,u=0;16>u;u++)c=c+s[u]|0,s[u]=255&c,c>>>=8;c=c+s[16]|0,s[16]=c}for(u=0;17>u;u++)h[u]=s[u];for(v(s,Sr),a=0|-(s[16]>>>7),u=0;17>u;u++)s[u]^=a&(h[u]^s[u]);for(u=0;16>u;u++)l[u]=i[u+16];for(l[16]=0,v(s,l),u=0;16>u;u++)r[n+u]=s[u];return 0}function p(r,n,e,t,o,i){var a=new Uint8Array(16);return b(a,0,e,t,o,i),f(r,n,a,0)}function _(r,n,e,t,o){var i;if(32>e)return-1;for(g(r,0,n,0,e,t,o),b(r,16,r,32,e-32,r),i=0;16>i;i++)r[i]=0;return 0}function A(r,n,e,t,o){var i,a=new Uint8Array(32);if(32>e)return-1;if(h(a,0,32,t,o),0!==p(n,16,n,32,e-32,a))return-1;for(g(r,0,n,0,e,t,o),i=0;32>i;i++)r[i]=0;return 0}function U(r,n){var e;for(e=0;16>e;e++)r[e]=0|n[e]}function E(r){var n,e;for(e=0;16>e;e++)r[e]+=65536,n=Math.floor(r[e]/65536),r[(e+1)*(15>e?1:0)]+=n-1+37*(n-1)*(15===e?1:0),r[e]-=65536*n}function d(r,n,e){for(var t,o=~(e-1),i=0;16>i;i++)t=o&(r[i]^n[i]),r[i]^=t,n[i]^=t}function x(r,n){var e,t,o,i=hr(),a=hr();for(e=0;16>e;e++)a[e]=n[e];for(E(a),E(a),E(a),t=0;2>t;t++){for(i[0]=a[0]-65517,e=1;15>e;e++)i[e]=a[e]-65535-(i[e-1]>>16&1),i[e-1]&=65535;i[15]=a[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,d(a,i,1-o)}for(e=0;16>e;e++)r[2*e]=255&a[e],r[2*e+1]=a[e]>>8}function m(r,n){var e=new Uint8Array(32),t=new Uint8Array(32);return x(e,r),x(t,n),u(e,0,t,0)}function B(r){var n=new Uint8Array(32);return x(n,r),1&n[0]}function S(r,n){var e;for(e=0;16>e;e++)r[e]=n[2*e]+(n[2*e+1]<<8);r[15]&=32767}function K(r,n,e){var t;for(t=0;16>t;t++)r[t]=n[t]+e[t]|0}function T(r,n,e){var t;for(t=0;16>t;t++)r[t]=n[t]-e[t]|0}function Y(r,n,e){var t,o,i=new Float64Array(31);for(t=0;31>t;t++)i[t]=0;for(t=0;16>t;t++)for(o=0;16>o;o++)i[t+o]+=n[t]*e[o];for(t=0;15>t;t++)i[t]+=38*i[t+16];for(t=0;16>t;t++)r[t]=i[t];E(r),E(r)}function L(r,n){Y(r,n,n)}function k(r,n){var e,t=hr();for(e=0;16>e;e++)t[e]=n[e];for(e=253;e>=0;e--)L(t,t),2!==e&&4!==e&&Y(t,t,n);for(e=0;16>e;e++)r[e]=t[e]}function z(r,n){var e,t=hr();for(e=0;16>e;e++)t[e]=n[e];for(e=250;e>=0;e--)L(t,t),1!==e&&Y(t,t,n);for(e=0;16>e;e++)r[e]=t[e]}function R(r,n,e){var t,o,i=new Uint8Array(32),a=new Float64Array(80),f=hr(),u=hr(),c=hr(),w=hr(),y=hr(),s=hr();for(o=0;31>o;o++)i[o]=n[o];for(i[31]=127&n[31]|64,i[0]&=248,S(a,e),o=0;16>o;o++)u[o]=a[o],w[o]=f[o]=c[o]=0;for(f[0]=w[0]=1,o=254;o>=0;--o)t=i[o>>>3]>>>(7&o)&1,d(f,u,t),d(c,w,t),K(y,f,c),T(f,f,c),K(c,u,w),T(u,u,w),L(w,y),L(s,f),Y(f,c,f),Y(c,u,y),K(y,f,c),T(f,f,c),L(u,f),T(c,w,s),Y(f,c,Ar),K(f,f,w),Y(c,c,f),Y(f,w,s),Y(w,u,a),L(u,y),d(f,u,t),d(c,w,t);for(o=0;16>o;o++)a[o+16]=f[o],a[o+32]=c[o],a[o+48]=u[o],a[o+64]=w[o];var l=a.subarray(32),h=a.subarray(16);return k(l,l),Y(h,h,l),x(r,h),0}function P(r,n){return R(r,n,br)}function O(r,n){return gr(n,32),P(r,n)}function F(r,n,e){var t=new Uint8Array(32);return R(t,e,n),y(r,vr,t,Br)}function N(r,n,e,t,o,i){var a=new Uint8Array(32);return F(a,o,i),Kr(r,n,e,t,a)}function C(r,n,e,t,o,i){var a=new Uint8Array(32);return F(a,o,i),Tr(r,n,e,t,a)}function M(){var r,n,e,t=0,o=0,i=0,a=0,f=65535;for(e=0;e>>16,i+=n&f,a+=n>>>16;return o+=t>>>16,i+=o>>>16,a+=i>>>16,new lr(i&f|a<<16,t&f|o<<16)}function G(r,n){return new lr(r.hi>>>n,r.lo>>>n|r.hi<<32-n)}function Z(){var r,n=0,e=0;for(r=0;rn?(e=r.hi>>>n|r.lo<>>n|r.hi<n&&(e=r.lo>>>n|r.hi<>>n|r.lo<a;a++)u[a]=w[a]=t(r,8*a);for(var s=0;e>=128;){for(a=0;16>a;a++)y[a]=t(n,8*a+s);for(a=0;80>a;a++){for(f=0;8>f;f++)c[f]=w[f];for(o=M(w[7],X(w[4]),q(w[4],w[5],w[6]),Yr[a],y[a%16]),c[7]=M(o,V(w[0]),I(w[0],w[1],w[2])),c[3]=M(c[3],o),f=0;8>f;f++)w[(f+1)%8]=c[f];if(a%16===15)for(f=0;16>f;f++)y[f]=M(y[f],y[(f+9)%16],D(y[(f+1)%16]),H(y[(f+14)%16]))}for(a=0;8>a;a++)w[a]=M(w[a],u[a]),u[a]=w[a];s+=128,e-=128}for(a=0;8>a;a++)i(r,8*a,u[a]);return e}function Q(r,n,e){var t,o=new Uint8Array(64),a=new Uint8Array(256),f=e;for(t=0;64>t;t++)o[t]=Lr[t];for(J(o,n,e),e%=128,t=0;256>t;t++)a[t]=0;for(t=0;e>t;t++)a[t]=n[f-e+t];for(a[e]=128,e=256-128*(112>e?1:0),a[e-9]=0,i(a,e-8,new lr(f/536870912|0,f<<3)),J(o,a,e),t=0;64>t;t++)r[t]=o[t];return 0}function W(r,n){var e=hr(),t=hr(),o=hr(),i=hr(),a=hr(),f=hr(),u=hr(),c=hr(),w=hr();T(e,r[1],r[0]),T(w,n[1],n[0]),Y(e,e,w),K(t,r[0],r[1]),K(w,n[0],n[1]),Y(t,t,w),Y(o,r[3],n[3]),Y(o,o,Er),Y(i,r[2],n[2]),K(i,i,i),T(a,t,e),T(f,i,o),K(u,i,o),K(c,t,e),Y(r[0],a,f),Y(r[1],c,u),Y(r[2],u,f),Y(r[3],a,c)}function $(r,n,e){var t;for(t=0;4>t;t++)d(r[t],n[t],e)}function rr(r,n){var e=hr(),t=hr(),o=hr();k(o,n[2]),Y(e,n[0],o),Y(t,n[1],o),x(r,t),r[31]^=B(e)<<7}function nr(r,n,e){var t,o;for(U(r[0],pr),U(r[1],_r),U(r[2],_r),U(r[3],pr),o=255;o>=0;--o)t=e[o/8|0]>>(7&o)&1,$(r,n,t),W(n,r),W(r,r),$(r,n,t)}function er(r,n){var e=[hr(),hr(),hr(),hr()];U(e[0],dr),U(e[1],xr),U(e[2],_r),Y(e[3],dr,xr),nr(r,e,n)}function tr(r,n,e){var t,o=new Uint8Array(64),i=[hr(),hr(),hr(),hr()];for(e||gr(n,32),Q(o,n,32),o[0]&=248,o[31]&=127,o[31]|=64,er(i,o),rr(r,i),t=0;32>t;t++)n[t+32]=r[t];return 0}function or(r,n){var e,t,o,i;for(t=63;t>=32;--t){for(e=0,o=t-32,i=t-12;i>o;++o)n[o]+=e-16*n[t]*kr[o-(t-32)],e=n[o]+128>>8,n[o]-=256*e;n[o]+=e,n[t]=0}for(e=0,o=0;32>o;o++)n[o]+=e-(n[31]>>4)*kr[o],e=n[o]>>8,n[o]&=255;for(o=0;32>o;o++)n[o]-=e*kr[o];for(t=0;32>t;t++)n[t+1]+=n[t]>>8,r[t]=255&n[t]}function ir(r){var n,e=new Float64Array(64);for(n=0;64>n;n++)e[n]=r[n];for(n=0;64>n;n++)r[n]=0;or(r,e)}function ar(r,n,e,t){var o,i,a=new Uint8Array(64),f=new Uint8Array(64),u=new Uint8Array(64),c=new Float64Array(64),w=[hr(),hr(),hr(),hr()];Q(a,t,32),a[0]&=248,a[31]&=127,a[31]|=64;var y=e+64;for(o=0;e>o;o++)r[64+o]=n[o];for(o=0;32>o;o++)r[32+o]=a[32+o];for(Q(u,r.subarray(32),e+32),ir(u),er(w,u),rr(r,w),o=32;64>o;o++)r[o]=t[o];for(Q(f,r,e+64),ir(f),o=0;64>o;o++)c[o]=0;for(o=0;32>o;o++)c[o]=u[o];for(o=0;32>o;o++)for(i=0;32>i;i++)c[o+i]+=f[o]*a[i];return or(r.subarray(32),c),y}function fr(r,n){var e=hr(),t=hr(),o=hr(),i=hr(),a=hr(),f=hr(),u=hr();return U(r[2],_r),S(r[1],n),L(o,r[1]),Y(i,o,Ur),T(o,o,r[2]),K(i,r[2],i),L(a,i),L(f,a),Y(u,f,a),Y(e,u,o),Y(e,e,i),z(e,e),Y(e,e,o),Y(e,e,i),Y(e,e,i),Y(r[0],e,i),L(t,r[0]),Y(t,t,i),m(t,o)&&Y(r[0],r[0],mr),L(t,r[0]),Y(t,t,i),m(t,o)?-1:(B(r[0])===n[31]>>7&&T(r[0],pr,r[0]),Y(r[3],r[0],r[1]),0)}function ur(r,n,e,t){var o,i,a=new Uint8Array(32),f=new Uint8Array(64),c=[hr(),hr(),hr(),hr()],w=[hr(),hr(),hr(),hr()];if(i=-1,64>e)return-1;if(fr(w,t))return-1;for(o=0;e>o;o++)r[o]=n[o];for(o=0;32>o;o++)r[o+32]=t[o];if(Q(f,r,e),ir(f),nr(c,w,f),er(w,n.subarray(32)),W(c,w),rr(a,c),e-=64,u(n,0,a,0)){for(o=0;e>o;o++)r[o]=0;return-1}for(o=0;e>o;o++)r[o]=n[o+64];return i=e}function cr(r,n){if(r.length!==zr)throw new Error("bad key size");if(n.length!==Rr)throw new Error("bad nonce size")}function wr(r,n){if(r.length!==Cr)throw new Error("bad public key size");if(n.length!==Mr)throw new Error("bad secret key size")}function yr(){var r,n;for(n=0;nt)return null;for(var o=new Uint8Array(t),i=0;it;t++)o[t]=n[t];for(t=0;t=0},r.sign.keyPair=function(){var r=new Uint8Array(Vr),n=new Uint8Array(Xr);return tr(r,n),{publicKey:r,secretKey:n}},r.sign.keyPair.fromSecretKey=function(r){if(yr(r),r.length!==Xr)throw new Error("bad secret key size");for(var n=new Uint8Array(Vr),e=0;et;t++)e[t]=r[t];return tr(n,e,!0),{publicKey:n,secretKey:e}},r.sign.publicKeyLength=Vr,r.sign.secretKeyLength=Xr,r.sign.seedLength=Dr,r.sign.signatureLength=Ir,r.hash=function(r){yr(r);var n=new Uint8Array(Hr);return Q(n,r,r.length),n},r.hash.hashLength=Hr,r.verify=function(r,n){return yr(r,n),0===r.length||0===n.length?!1:r.length!==n.length?!1:0===a(r,0,n,0,r.length)?!0:!1},r.setPRNG=function(r){gr=r},function(){var n="undefined"!=typeof self?self.crypto||self.msCrypto:null;if(n&&n.getRandomValues){var e=65536;r.setPRNG(function(r,t){var o,i=new Uint8Array(t);for(o=0;t>o;o+=e)n.getRandomValues(i.subarray(o,o+Math.min(t-o,e)));for(o=0;t>o;o++)r[o]=i[o];sr(i)})}else"undefined"!=typeof require&&(n=require("crypto"),n&&n.randomBytes&&r.setPRNG(function(r,e){var t,o=n.randomBytes(e);for(t=0;e>t;t++)r[t]=o[t];sr(o)}))}()}("undefined"!=typeof module&&module.exports?module.exports:self.nacl=self.nacl||{}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json deleted file mode 100644 index cb55dc10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "tweetnacl", - "version": "0.14.3", - "description": "Port of TweetNaCl cryptographic library to JavaScript", - "main": "nacl-fast.js", - "directories": { - "test": "test" - }, - "scripts": { - "build": "uglifyjs nacl.js -c -m -o nacl.min.js && uglifyjs nacl-fast.js -c -m -o nacl-fast.min.js", - "test-node": "tape test/*.js | faucet", - "test-node-all": "make -C test/c && tape test/*.js test/c/*.js | faucet", - "test-browser": "NACL_SRC=${NACL_SRC:='nacl.min.js'} && npm run build-test-browser && cat $NACL_SRC test/browser/_bundle.js | tape-run | faucet", - "build-test-browser": "browserify test/browser/init.js test/*.js | uglifyjs -c -m -o test/browser/_bundle.js 2>/dev/null && browserify test/browser/init.js test/*.quick.js | uglifyjs -c -m -o test/browser/_bundle-quick.js 2>/dev/null", - "test": "npm run test-node-all && npm run test-browser", - "bench": "node test/benchmark/bench.js", - "lint": "eslint nacl.js nacl-fast.js test/*.js test/benchmark/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/dchest/tweetnacl-js.git" - }, - "keywords": [ - "crypto", - "cryptography", - "curve25519", - "ed25519", - "encrypt", - "hash", - "key", - "nacl", - "poly1305", - "public", - "salsa20", - "signatures" - ], - "author": { - "name": "TweetNaCl-js contributors" - }, - "license": "SEE LICENSE IN COPYING.txt", - "bugs": { - "url": "https://github.com/dchest/tweetnacl-js/issues" - }, - "homepage": "https://tweetnacl.js.org", - "devDependencies": { - "browserify": "^13.0.0", - "eslint": "^2.2.0", - "faucet": "^0.0.1", - "tap-browser-color": "^0.1.2", - "tape": "^4.4.0", - "tape-run": "^2.1.3", - "tweetnacl-util": "^0.13.3", - "uglify-js": "^2.6.1" - }, - "browser": { - "buffer": false, - "crypto": false - }, - "gitHead": "3eb4fc544a2a1d6c0a41b98b9906288ca8b087e4", - "_id": "tweetnacl@0.14.3", - "_shasum": "3da382f670f25ded78d7b3d1792119bca0b7132d", - "_from": "tweetnacl@>=0.14.0 <0.15.0", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.6.0", - "_npmUser": { - "name": "dchest", - "email": "dmitry@codingrobots.com" - }, - "dist": { - "shasum": "3da382f670f25ded78d7b3d1792119bca0b7132d", - "tarball": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz" - }, - "maintainers": [ - { - "name": "dchest", - "email": "dmitry@codingrobots.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/tweetnacl-0.14.3.tgz_1459224951636_0.7403244483284652" - }, - "_resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json deleted file mode 100644 index 5e56007c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "name": "sshpk", - "version": "1.10.1", - "description": "A library for finding and using SSH public keys", - "main": "lib/index.js", - "scripts": { - "test": "tape test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/arekinath/node-sshpk.git" - }, - "author": { - "name": "Joyent, Inc" - }, - "contributors": [ - { - "name": "Dave Eddy", - "email": "dave@daveeddy.com" - }, - { - "name": "Mark Cavage", - "email": "mcavage@gmail.com" - }, - { - "name": "Alex Wilson", - "email": "alex@cooperi.net" - } - ], - "license": "MIT", - "bugs": { - "url": "https://github.com/arekinath/node-sshpk/issues" - }, - "engines": { - "node": ">=0.10.0" - }, - "directories": { - "bin": "./bin", - "lib": "./lib", - "man": "./man/man1" - }, - "homepage": "https://github.com/arekinath/node-sshpk#readme", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "dashdash": "^1.12.0", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0", - "jodid25519": "^1.0.0", - "ecc-jsbn": "~0.1.1", - "bcrypt-pbkdf": "^1.0.0" - }, - "optionalDependencies": { - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0", - "jodid25519": "^1.0.0", - "ecc-jsbn": "~0.1.1", - "bcrypt-pbkdf": "^1.0.0" - }, - "devDependencies": { - "tape": "^3.5.0", - "benchmark": "^1.0.0", - "sinon": "^1.17.2", - "temp": "^0.8.2" - }, - "man": [ - "/Users/alex.wilson/dev/node-sshpk/man/man1/sshpk-conv.1", - "/Users/alex.wilson/dev/node-sshpk/man/man1/sshpk-sign.1", - "/Users/alex.wilson/dev/node-sshpk/man/man1/sshpk-verify.1" - ], - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "gitHead": "4212272b3889f2df155d2aa8a1a5305fe7a7d3a5", - "_id": "sshpk@1.10.1", - "_shasum": "30e1a5d329244974a1af61511339d595af6638b0", - "_from": "sshpk@>=1.7.0 <2.0.0", - "_npmVersion": "3.10.3", - "_nodeVersion": "0.12.15", - "_npmUser": { - "name": "arekinath", - "email": "alex@cooperi.net" - }, - "dist": { - "shasum": "30e1a5d329244974a1af61511339d595af6638b0", - "tarball": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz" - }, - "maintainers": [ - { - "name": "arekinath", - "email": "alex@cooperi.net" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/sshpk-1.10.1.tgz_1475095320582_0.4095200637821108" - }, - "_resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/package.json deleted file mode 100644 index 12b32f8e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/http-signature/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "http-signature", - "description": "Reference implementation of Joyent's HTTP Signature scheme.", - "version": "1.1.1", - "license": "MIT", - "author": { - "name": "Joyent, Inc" - }, - "contributors": [ - { - "name": "Mark Cavage", - "email": "mcavage@gmail.com" - }, - { - "name": "David I. Lehn", - "email": "dil@lehn.org" - }, - { - "name": "Patrick Mooney", - "email": "patrick.f.mooney@gmail.com" - } - ], - "repository": { - "type": "git", - "url": "git://github.com/joyent/node-http-signature.git" - }, - "homepage": "https://github.com/joyent/node-http-signature/", - "bugs": { - "url": "https://github.com/joyent/node-http-signature/issues" - }, - "keywords": [ - "https", - "request" - ], - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - }, - "main": "lib/index.js", - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "devDependencies": { - "node-uuid": "^1.4.1", - "tap": "0.4.2" - }, - "gitHead": "74d3f35e3aa436d83723c53b01e266f448e8149a", - "_id": "http-signature@1.1.1", - "_shasum": "df72e267066cd0ac67fb76adf8e134a8fbcf91bf", - "_from": "http-signature@>=1.1.0 <1.2.0", - "_npmVersion": "2.14.9", - "_nodeVersion": "0.12.9", - "_npmUser": { - "name": "arekinath", - "email": "alex@cooperi.net" - }, - "dist": { - "shasum": "df72e267066cd0ac67fb76adf8e134a8fbcf91bf", - "tarball": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" - }, - "maintainers": [ - { - "name": "arekinath", - "email": "alex@cooperi.net" - }, - { - "name": "mcavage", - "email": "mcavage@gmail.com" - }, - { - "name": "pfmooney", - "email": "patrick.f.mooney@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/LICENSE.md deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/LICENSE.md +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/README.md deleted file mode 100644 index 27528639..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# is-typedarray [![locked](http://badges.github.io/stability-badges/dist/locked.svg)](http://github.com/badges/stability-badges) - -Detect whether or not an object is a -[Typed Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays). - -## Usage - -[![NPM](https://nodei.co/npm/is-typedarray.png)](https://nodei.co/npm/is-typedarray/) - -### isTypedArray(array) - -Returns `true` when array is a Typed Array, and `false` when it is not. - -## License - -MIT. See [LICENSE.md](http://github.com/hughsk/is-typedarray/blob/master/LICENSE.md) for details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/index.js deleted file mode 100644 index 58596036..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/index.js +++ /dev/null @@ -1,41 +0,0 @@ -module.exports = isTypedArray -isTypedArray.strict = isStrictTypedArray -isTypedArray.loose = isLooseTypedArray - -var toString = Object.prototype.toString -var names = { - '[object Int8Array]': true - , '[object Int16Array]': true - , '[object Int32Array]': true - , '[object Uint8Array]': true - , '[object Uint8ClampedArray]': true - , '[object Uint16Array]': true - , '[object Uint32Array]': true - , '[object Float32Array]': true - , '[object Float64Array]': true -} - -function isTypedArray(arr) { - return ( - isStrictTypedArray(arr) - || isLooseTypedArray(arr) - ) -} - -function isStrictTypedArray(arr) { - return ( - arr instanceof Int8Array - || arr instanceof Int16Array - || arr instanceof Int32Array - || arr instanceof Uint8Array - || arr instanceof Uint8ClampedArray - || arr instanceof Uint16Array - || arr instanceof Uint32Array - || arr instanceof Float32Array - || arr instanceof Float64Array - ) -} - -function isLooseTypedArray(arr) { - return names[toString.call(arr)] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/package.json deleted file mode 100644 index 750da78e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "is-typedarray", - "version": "1.0.0", - "description": "Detect whether or not an object is a Typed Array", - "main": "index.js", - "scripts": { - "test": "node test" - }, - "author": { - "name": "Hugh Kennedy", - "email": "hughskennedy@gmail.com", - "url": "http://hughsk.io/" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "tape": "^2.13.1" - }, - "repository": { - "type": "git", - "url": "git://github.com/hughsk/is-typedarray.git" - }, - "keywords": [ - "typed", - "array", - "detect", - "is", - "util" - ], - "bugs": { - "url": "https://github.com/hughsk/is-typedarray/issues" - }, - "homepage": "https://github.com/hughsk/is-typedarray", - "gitHead": "0617cfa871686cf541af62b144f130488f44f6fe", - "_id": "is-typedarray@1.0.0", - "_shasum": "e479c80858df0c1b11ddda6940f96011fcda4a9a", - "_from": "is-typedarray@>=1.0.0 <1.1.0", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.10.36", - "_npmUser": { - "name": "hughsk", - "email": "hughskennedy@gmail.com" - }, - "dist": { - "shasum": "e479c80858df0c1b11ddda6940f96011fcda4a9a", - "tarball": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - }, - "maintainers": [ - { - "name": "hughsk", - "email": "hughskennedy@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/test.js deleted file mode 100644 index b0c176fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/is-typedarray/test.js +++ /dev/null @@ -1,34 +0,0 @@ -var test = require('tape') -var ista = require('./') - -test('strict', function(t) { - t.ok(ista.strict(new Int8Array), 'Int8Array') - t.ok(ista.strict(new Int16Array), 'Int16Array') - t.ok(ista.strict(new Int32Array), 'Int32Array') - t.ok(ista.strict(new Uint8Array), 'Uint8Array') - t.ok(ista.strict(new Uint16Array), 'Uint16Array') - t.ok(ista.strict(new Uint32Array), 'Uint32Array') - t.ok(ista.strict(new Float32Array), 'Float32Array') - t.ok(ista.strict(new Float64Array), 'Float64Array') - - t.ok(!ista.strict(new Array), 'Array') - t.ok(!ista.strict([]), '[]') - - t.end() -}) - -test('loose', function(t) { - t.ok(ista.loose(new Int8Array), 'Int8Array') - t.ok(ista.loose(new Int16Array), 'Int16Array') - t.ok(ista.loose(new Int32Array), 'Int32Array') - t.ok(ista.loose(new Uint8Array), 'Uint8Array') - t.ok(ista.loose(new Uint16Array), 'Uint16Array') - t.ok(ista.loose(new Uint32Array), 'Uint32Array') - t.ok(ista.loose(new Float32Array), 'Float32Array') - t.ok(ista.loose(new Float64Array), 'Float64Array') - - t.ok(!ista.loose(new Array), 'Array') - t.ok(!ista.loose([]), '[]') - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/.jshintrc deleted file mode 100644 index c8ef3ca4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/.jshintrc +++ /dev/null @@ -1,59 +0,0 @@ -{ - "predef": [ ] - , "bitwise": false - , "camelcase": false - , "curly": false - , "eqeqeq": false - , "forin": false - , "immed": false - , "latedef": false - , "noarg": true - , "noempty": true - , "nonew": true - , "plusplus": false - , "quotmark": true - , "regexp": false - , "undef": true - , "unused": true - , "strict": false - , "trailing": true - , "maxlen": 120 - , "asi": true - , "boss": true - , "debug": true - , "eqnull": true - , "esnext": true - , "evil": true - , "expr": true - , "funcscope": false - , "globalstrict": false - , "iterator": false - , "lastsemic": true - , "laxbreak": true - , "laxcomma": true - , "loopfunc": true - , "multistr": false - , "onecase": false - , "proto": false - , "regexdash": false - , "scripturl": true - , "smarttabs": false - , "shadow": false - , "sub": true - , "supernew": false - , "validthis": true - , "browser": true - , "couch": false - , "devel": false - , "dojo": false - , "mootools": false - , "node": true - , "nonstandard": true - , "prototypejs": false - , "rhino": false - , "worker": true - , "wsh": false - , "nomen": false - , "onevar": false - , "passfail": false -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/.npmignore deleted file mode 100644 index aa1ec1ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/.npmignore +++ /dev/null @@ -1 +0,0 @@ -*.tgz diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/.travis.yml deleted file mode 100644 index 1fec2ab9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.11" -branches: - only: - - master -notifications: - email: - - rod@vagg.org -script: npm test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/LICENSE.md deleted file mode 100644 index 43f7153f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/LICENSE.md +++ /dev/null @@ -1,11 +0,0 @@ -The MIT License (MIT) -===================== - -Copyright (c) 2015 Rod Vagg ---------------------------- - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/README.md deleted file mode 100644 index 06770e82..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# isStream - -[![Build Status](https://secure.travis-ci.org/rvagg/isstream.png)](http://travis-ci.org/rvagg/isstream) - -**Test if an object is a `Stream`** - -[![NPM](https://nodei.co/npm/isstream.svg)](https://nodei.co/npm/isstream/) - -The missing `Stream.isStream(obj)`: determine if an object is standard Node.js `Stream`. Works for Node-core `Stream` objects (for 0.8, 0.10, 0.11, and in theory, older and newer versions) and all versions of **[readable-stream](https://github.com/isaacs/readable-stream)**. - -## Usage: - -```js -var isStream = require('isstream') -var Stream = require('stream') - -isStream(new Stream()) // true - -isStream({}) // false - -isStream(new Stream.Readable()) // true -isStream(new Stream.Writable()) // true -isStream(new Stream.Duplex()) // true -isStream(new Stream.Transform()) // true -isStream(new Stream.PassThrough()) // true -``` - -## But wait! There's more! - -You can also test for `isReadable(obj)`, `isWritable(obj)` and `isDuplex(obj)` to test for implementations of Streams2 (and Streams3) base classes. - -```js -var isReadable = require('isstream').isReadable -var isWritable = require('isstream').isWritable -var isDuplex = require('isstream').isDuplex -var Stream = require('stream') - -isReadable(new Stream()) // false -isWritable(new Stream()) // false -isDuplex(new Stream()) // false - -isReadable(new Stream.Readable()) // true -isReadable(new Stream.Writable()) // false -isReadable(new Stream.Duplex()) // true -isReadable(new Stream.Transform()) // true -isReadable(new Stream.PassThrough()) // true - -isWritable(new Stream.Readable()) // false -isWritable(new Stream.Writable()) // true -isWritable(new Stream.Duplex()) // true -isWritable(new Stream.Transform()) // true -isWritable(new Stream.PassThrough()) // true - -isDuplex(new Stream.Readable()) // false -isDuplex(new Stream.Writable()) // false -isDuplex(new Stream.Duplex()) // true -isDuplex(new Stream.Transform()) // true -isDuplex(new Stream.PassThrough()) // true -``` - -*Reminder: when implementing your own streams, please [use **readable-stream** rather than core streams](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html).* - - -## License - -**isStream** is Copyright (c) 2015 Rod Vagg [@rvagg](https://twitter.com/rvagg) and licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md file for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/isstream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/isstream.js deleted file mode 100644 index a1d104a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/isstream.js +++ /dev/null @@ -1,27 +0,0 @@ -var stream = require('stream') - - -function isStream (obj) { - return obj instanceof stream.Stream -} - - -function isReadable (obj) { - return isStream(obj) && typeof obj._read == 'function' && typeof obj._readableState == 'object' -} - - -function isWritable (obj) { - return isStream(obj) && typeof obj._write == 'function' && typeof obj._writableState == 'object' -} - - -function isDuplex (obj) { - return isReadable(obj) && isWritable(obj) -} - - -module.exports = isStream -module.exports.isReadable = isReadable -module.exports.isWritable = isWritable -module.exports.isDuplex = isDuplex diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/package.json deleted file mode 100644 index 266fd5d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "isstream", - "version": "0.1.2", - "description": "Determine if an object is a Stream", - "main": "isstream.js", - "scripts": { - "test": "tar --xform 's/^package/readable-stream-1.0/' -zxf readable-stream-1.0.*.tgz && tar --xform 's/^package/readable-stream-1.1/' -zxf readable-stream-1.1.*.tgz && node test.js; rm -rf readable-stream-1.?/" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/rvagg/isstream.git" - }, - "keywords": [ - "stream", - "type", - "streams", - "readable-stream", - "hippo" - ], - "devDependencies": { - "tape": "~2.12.3", - "core-util-is": "~1.0.0", - "isarray": "0.0.1", - "string_decoder": "~0.10.x", - "inherits": "~2.0.1" - }, - "author": { - "name": "Rod Vagg", - "email": "rod@vagg.org" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/rvagg/isstream/issues" - }, - "homepage": "https://github.com/rvagg/isstream", - "gitHead": "cd39cba6da939b4fc9110825203adc506422c3dc", - "_id": "isstream@0.1.2", - "_shasum": "47e63f7af55afa6f92e1500e690eb8b8529c099a", - "_from": "isstream@>=0.1.2 <0.2.0", - "_npmVersion": "2.6.1", - "_nodeVersion": "1.4.3", - "_npmUser": { - "name": "rvagg", - "email": "rod@vagg.org" - }, - "maintainers": [ - { - "name": "rvagg", - "email": "rod@vagg.org" - } - ], - "dist": { - "shasum": "47e63f7af55afa6f92e1500e690eb8b8529c099a", - "tarball": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/test.js deleted file mode 100644 index 8c950c55..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/isstream/test.js +++ /dev/null @@ -1,168 +0,0 @@ -var tape = require('tape') - , EE = require('events').EventEmitter - , util = require('util') - - - , isStream = require('./') - , isReadable = require('./').isReadable - , isWritable = require('./').isWritable - , isDuplex = require('./').isDuplex - - , CoreStreams = require('stream') - , ReadableStream10 = require('./readable-stream-1.0/') - , ReadableStream11 = require('./readable-stream-1.1/') - - -function test (pass, type, stream) { - tape('isStream(' + type + ')', function (t) { - t.plan(1) - t.ok(pass === isStream(stream), type) - }) -} - - -function testReadable (pass, type, stream) { - tape('isReadable(' + type + ')', function (t) { - t.plan(1) - t.ok(pass === isReadable(stream), type) - }) -} - - -function testWritable (pass, type, stream) { - tape('isWritable(' + type + ')', function (t) { - t.plan(1) - t.ok(pass === isWritable(stream), type) - }) -} - - -function testDuplex (pass, type, stream) { - tape('isDuplex(' + type + ')', function (t) { - t.plan(1) - t.ok(pass === isDuplex(stream), type) - }) -} - - -[ undefined, null, '', true, false, 0, 1, 1.0, 'string', {}, function foo () {} ].forEach(function (o) { - test(false, 'non-stream / primitive: ' + (JSON.stringify(o) || (o && o.toString()) || o), o) -}) - - -test(false, 'fake stream obj', { pipe: function () {} }) - - -;(function () { - - // looks like a stream! - - function Stream () { - EE.call(this) - } - util.inherits(Stream, EE) - Stream.prototype.pipe = function () {} - Stream.Stream = Stream - - test(false, 'fake stream "new Stream()"', new Stream()) - -}()) - - -test(true, 'CoreStreams.Stream', new (CoreStreams.Stream)()) -test(true, 'CoreStreams.Readable', new (CoreStreams.Readable)()) -test(true, 'CoreStreams.Writable', new (CoreStreams.Writable)()) -test(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)()) -test(true, 'CoreStreams.Transform', new (CoreStreams.Transform)()) -test(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)()) - -test(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)()) -test(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)()) -test(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)()) -test(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)()) -test(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)()) - -test(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)()) -test(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)()) -test(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)()) -test(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)()) -test(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)()) - - -testReadable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)()) -testReadable(true, 'CoreStreams.Readable', new (CoreStreams.Readable)()) -testReadable(false, 'CoreStreams.Writable', new (CoreStreams.Writable)()) -testReadable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)()) -testReadable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)()) -testReadable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)()) - -testReadable(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)()) -testReadable(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)()) -testReadable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)()) -testReadable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)()) -testReadable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)()) - -testReadable(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)()) -testReadable(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)()) -testReadable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)()) -testReadable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)()) -testReadable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)()) - - -testWritable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)()) -testWritable(false, 'CoreStreams.Readable', new (CoreStreams.Readable)()) -testWritable(true, 'CoreStreams.Writable', new (CoreStreams.Writable)()) -testWritable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)()) -testWritable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)()) -testWritable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)()) - -testWritable(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)()) -testWritable(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)()) -testWritable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)()) -testWritable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)()) -testWritable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)()) - -testWritable(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)()) -testWritable(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)()) -testWritable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)()) -testWritable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)()) -testWritable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)()) - - -testDuplex(false, 'CoreStreams.Stream', new (CoreStreams.Stream)()) -testDuplex(false, 'CoreStreams.Readable', new (CoreStreams.Readable)()) -testDuplex(false, 'CoreStreams.Writable', new (CoreStreams.Writable)()) -testDuplex(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)()) -testDuplex(true, 'CoreStreams.Transform', new (CoreStreams.Transform)()) -testDuplex(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)()) - -testDuplex(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)()) -testDuplex(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)()) -testDuplex(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)()) -testDuplex(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)()) -testDuplex(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)()) - -testDuplex(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)()) -testDuplex(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)()) -testDuplex(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)()) -testDuplex(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)()) -testDuplex(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)()) - - -;[ CoreStreams, ReadableStream10, ReadableStream11 ].forEach(function (p) { - [ 'Stream', 'Readable', 'Writable', 'Duplex', 'Transform', 'PassThrough' ].forEach(function (k) { - if (!p[k]) - return - - function SubStream () { - p[k].call(this) - } - util.inherits(SubStream, p[k]) - - test(true, 'Stream subclass: ' + p.name + '.' + k, new SubStream()) - - }) -}) - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/.npmignore deleted file mode 100644 index 17d6b367..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/*.tgz diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md deleted file mode 100644 index 42bcb60a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md +++ /dev/null @@ -1,14 +0,0 @@ -## Unreleased -- Fixes stringify to only take ancestors into account when checking - circularity. - It previously assumed every visited object was circular which led to [false - positives][issue9]. - Uses the tiny serializer I wrote for [Must.js][must] a year and a half ago. -- Fixes calling the `replacer` function in the proper context (`thisArg`). -- Fixes calling the `cycleReplacer` function in the proper context (`thisArg`). -- Speeds serializing by a factor of - Big-O(h-my-god-it-linearly-searched-every-object) it had ever seen. Searching - only the ancestors for a circular references speeds up things considerably. - -[must]: https://github.com/moll/js-must -[issue9]: https://github.com/isaacs/json-stringify-safe/issues/9 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/Makefile deleted file mode 100644 index 36088c72..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -NODE_OPTS = -TEST_OPTS = - -love: - @echo "Feel like makin' love." - -test: - @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R dot $(TEST_OPTS) - -spec: - @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R spec $(TEST_OPTS) - -autotest: - @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R dot --watch $(TEST_OPTS) - -autospec: - @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R spec --watch $(TEST_OPTS) - -pack: - @file=$$(npm pack); echo "$$file"; tar tf "$$file" - -publish: - npm publish - -tag: - git tag "v$$(node -e 'console.log(require("./package").version)')" - -clean: - rm -f *.tgz - npm prune --production - -.PHONY: love -.PHONY: test spec autotest autospec -.PHONY: pack publish tag -.PHONY: clean diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/README.md deleted file mode 100644 index a11f302a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# json-stringify-safe - -Like JSON.stringify, but doesn't throw on circular references. - -## Usage - -Takes the same arguments as `JSON.stringify`. - -```javascript -var stringify = require('json-stringify-safe'); -var circularObj = {}; -circularObj.circularRef = circularObj; -circularObj.list = [ circularObj, circularObj ]; -console.log(stringify(circularObj, null, 2)); -``` - -Output: - -```json -{ - "circularRef": "[Circular]", - "list": [ - "[Circular]", - "[Circular]" - ] -} -``` - -## Details - -``` -stringify(obj, serializer, indent, decycler) -``` - -The first three arguments are the same as to JSON.stringify. The last -is an argument that's only used when the object has been seen already. - -The default `decycler` function returns the string `'[Circular]'`. -If, for example, you pass in `function(k,v){}` (return nothing) then it -will prune cycles. If you pass in `function(k,v){ return {foo: 'bar'}}`, -then cyclical objects will always be represented as `{"foo":"bar"}` in -the result. - -``` -stringify.getSerialize(serializer, decycler) -``` - -Returns a serializer that can be used elsewhere. This is the actual -function that's passed to JSON.stringify. - -**Note** that the function returned from `getSerialize` is stateful for now, so -do **not** use it more than once. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/package.json deleted file mode 100644 index 1ba97c94..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "json-stringify-safe", - "version": "5.0.1", - "description": "Like JSON.stringify, but doesn't blow up on circular refs.", - "keywords": [ - "json", - "stringify", - "circular", - "safe" - ], - "homepage": "https://github.com/isaacs/json-stringify-safe", - "bugs": { - "url": "https://github.com/isaacs/json-stringify-safe/issues" - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "contributors": [ - { - "name": "Andri Möll", - "email": "andri@dot.ee", - "url": "http://themoll.com" - } - ], - "license": "ISC", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/json-stringify-safe.git" - }, - "main": "stringify.js", - "scripts": { - "test": "node test.js" - }, - "devDependencies": { - "mocha": ">= 2.1.0 < 3", - "must": ">= 0.12 < 0.13", - "sinon": ">= 1.12.2 < 2" - }, - "gitHead": "3890dceab3ad14f8701e38ca74f38276abc76de5", - "_id": "json-stringify-safe@5.0.1", - "_shasum": "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb", - "_from": "json-stringify-safe@>=5.0.1 <5.1.0", - "_npmVersion": "2.10.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb", - "tarball": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - }, - { - "name": "moll", - "email": "andri@dot.ee" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/stringify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/stringify.js deleted file mode 100644 index 124a4521..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/stringify.js +++ /dev/null @@ -1,27 +0,0 @@ -exports = module.exports = stringify -exports.getSerialize = serializer - -function stringify(obj, replacer, spaces, cycleReplacer) { - return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces) -} - -function serializer(replacer, cycleReplacer) { - var stack = [], keys = [] - - if (cycleReplacer == null) cycleReplacer = function(key, value) { - if (stack[0] === value) return "[Circular ~]" - return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]" - } - - return function(key, value) { - if (stack.length > 0) { - var thisPos = stack.indexOf(this) - ~thisPos ? stack.splice(thisPos + 1) : stack.push(this) - ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key) - if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value) - } - else stack.push(value) - - return replacer == null ? value : replacer.call(this, key, value) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts deleted file mode 100644 index 2544e586..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts +++ /dev/null @@ -1,2 +0,0 @@ ---recursive ---require must diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js deleted file mode 100644 index 5b325831..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js +++ /dev/null @@ -1,246 +0,0 @@ -var Sinon = require("sinon") -var stringify = require("..") -function jsonify(obj) { return JSON.stringify(obj, null, 2) } - -describe("Stringify", function() { - it("must stringify circular objects", function() { - var obj = {name: "Alice"} - obj.self = obj - var json = stringify(obj, null, 2) - json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"})) - }) - - it("must stringify circular objects with intermediaries", function() { - var obj = {name: "Alice"} - obj.identity = {self: obj} - var json = stringify(obj, null, 2) - json.must.eql(jsonify({name: "Alice", identity: {self: "[Circular ~]"}})) - }) - - it("must stringify circular objects deeper", function() { - var obj = {name: "Alice", child: {name: "Bob"}} - obj.child.self = obj.child - - stringify(obj, null, 2).must.eql(jsonify({ - name: "Alice", - child: {name: "Bob", self: "[Circular ~.child]"} - })) - }) - - it("must stringify circular objects deeper with intermediaries", function() { - var obj = {name: "Alice", child: {name: "Bob"}} - obj.child.identity = {self: obj.child} - - stringify(obj, null, 2).must.eql(jsonify({ - name: "Alice", - child: {name: "Bob", identity: {self: "[Circular ~.child]"}} - })) - }) - - it("must stringify circular objects in an array", function() { - var obj = {name: "Alice"} - obj.self = [obj, obj] - - stringify(obj, null, 2).must.eql(jsonify({ - name: "Alice", self: ["[Circular ~]", "[Circular ~]"] - })) - }) - - it("must stringify circular objects deeper in an array", function() { - var obj = {name: "Alice", children: [{name: "Bob"}, {name: "Eve"}]} - obj.children[0].self = obj.children[0] - obj.children[1].self = obj.children[1] - - stringify(obj, null, 2).must.eql(jsonify({ - name: "Alice", - children: [ - {name: "Bob", self: "[Circular ~.children.0]"}, - {name: "Eve", self: "[Circular ~.children.1]"} - ] - })) - }) - - it("must stringify circular arrays", function() { - var obj = [] - obj.push(obj) - obj.push(obj) - var json = stringify(obj, null, 2) - json.must.eql(jsonify(["[Circular ~]", "[Circular ~]"])) - }) - - it("must stringify circular arrays with intermediaries", function() { - var obj = [] - obj.push({name: "Alice", self: obj}) - obj.push({name: "Bob", self: obj}) - - stringify(obj, null, 2).must.eql(jsonify([ - {name: "Alice", self: "[Circular ~]"}, - {name: "Bob", self: "[Circular ~]"} - ])) - }) - - it("must stringify repeated objects in objects", function() { - var obj = {} - var alice = {name: "Alice"} - obj.alice1 = alice - obj.alice2 = alice - - stringify(obj, null, 2).must.eql(jsonify({ - alice1: {name: "Alice"}, - alice2: {name: "Alice"} - })) - }) - - it("must stringify repeated objects in arrays", function() { - var alice = {name: "Alice"} - var obj = [alice, alice] - var json = stringify(obj, null, 2) - json.must.eql(jsonify([{name: "Alice"}, {name: "Alice"}])) - }) - - it("must call given decycler and use its output", function() { - var obj = {} - obj.a = obj - obj.b = obj - - var decycle = Sinon.spy(function() { return decycle.callCount }) - var json = stringify(obj, null, 2, decycle) - json.must.eql(jsonify({a: 1, b: 2}, null, 2)) - - decycle.callCount.must.equal(2) - decycle.thisValues[0].must.equal(obj) - decycle.args[0][0].must.equal("a") - decycle.args[0][1].must.equal(obj) - decycle.thisValues[1].must.equal(obj) - decycle.args[1][0].must.equal("b") - decycle.args[1][1].must.equal(obj) - }) - - it("must call replacer and use its output", function() { - var obj = {name: "Alice", child: {name: "Bob"}} - - var replacer = Sinon.spy(bangString) - var json = stringify(obj, replacer, 2) - json.must.eql(jsonify({name: "Alice!", child: {name: "Bob!"}})) - - replacer.callCount.must.equal(4) - replacer.args[0][0].must.equal("") - replacer.args[0][1].must.equal(obj) - replacer.thisValues[1].must.equal(obj) - replacer.args[1][0].must.equal("name") - replacer.args[1][1].must.equal("Alice") - replacer.thisValues[2].must.equal(obj) - replacer.args[2][0].must.equal("child") - replacer.args[2][1].must.equal(obj.child) - replacer.thisValues[3].must.equal(obj.child) - replacer.args[3][0].must.equal("name") - replacer.args[3][1].must.equal("Bob") - }) - - it("must call replacer after describing circular references", function() { - var obj = {name: "Alice"} - obj.self = obj - - var replacer = Sinon.spy(bangString) - var json = stringify(obj, replacer, 2) - json.must.eql(jsonify({name: "Alice!", self: "[Circular ~]!"})) - - replacer.callCount.must.equal(3) - replacer.args[0][0].must.equal("") - replacer.args[0][1].must.equal(obj) - replacer.thisValues[1].must.equal(obj) - replacer.args[1][0].must.equal("name") - replacer.args[1][1].must.equal("Alice") - replacer.thisValues[2].must.equal(obj) - replacer.args[2][0].must.equal("self") - replacer.args[2][1].must.equal("[Circular ~]") - }) - - it("must call given decycler and use its output for nested objects", - function() { - var obj = {} - obj.a = obj - obj.b = {self: obj} - - var decycle = Sinon.spy(function() { return decycle.callCount }) - var json = stringify(obj, null, 2, decycle) - json.must.eql(jsonify({a: 1, b: {self: 2}})) - - decycle.callCount.must.equal(2) - decycle.args[0][0].must.equal("a") - decycle.args[0][1].must.equal(obj) - decycle.args[1][0].must.equal("self") - decycle.args[1][1].must.equal(obj) - }) - - it("must use decycler's output when it returned null", function() { - var obj = {a: "b"} - obj.self = obj - obj.selves = [obj, obj] - - function decycle() { return null } - stringify(obj, null, 2, decycle).must.eql(jsonify({ - a: "b", - self: null, - selves: [null, null] - })) - }) - - it("must use decycler's output when it returned undefined", function() { - var obj = {a: "b"} - obj.self = obj - obj.selves = [obj, obj] - - function decycle() {} - stringify(obj, null, 2, decycle).must.eql(jsonify({ - a: "b", - selves: [null, null] - })) - }) - - it("must throw given a decycler that returns a cycle", function() { - var obj = {} - obj.self = obj - var err - function identity(key, value) { return value } - try { stringify(obj, null, 2, identity) } catch (ex) { err = ex } - err.must.be.an.instanceof(TypeError) - }) - - describe(".getSerialize", function() { - it("must stringify circular objects", function() { - var obj = {a: "b"} - obj.circularRef = obj - obj.list = [obj, obj] - - var json = JSON.stringify(obj, stringify.getSerialize(), 2) - json.must.eql(jsonify({ - "a": "b", - "circularRef": "[Circular ~]", - "list": ["[Circular ~]", "[Circular ~]"] - })) - }) - - // This is the behavior as of Mar 3, 2015. - // The serializer function keeps state inside the returned function and - // so far I'm not sure how to not do that. JSON.stringify's replacer is not - // called _after_ serialization. - xit("must return a function that could be called twice", function() { - var obj = {name: "Alice"} - obj.self = obj - - var json - var serializer = stringify.getSerialize() - - json = JSON.stringify(obj, serializer, 2) - json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"})) - - json = JSON.stringify(obj, serializer, 2) - json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"})) - }) - }) -}) - -function bangString(key, value) { - return typeof value == "string" ? value + "!" : value -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/HISTORY.md deleted file mode 100644 index 8c0383a6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/HISTORY.md +++ /dev/null @@ -1,204 +0,0 @@ -2.1.12 / 2016-09-18 -=================== - - * deps: mime-db@~1.24.0 - - Add new mime types - - Add `audio/mp3` - -2.1.11 / 2016-05-01 -=================== - - * deps: mime-db@~1.23.0 - - Add new mime types - -2.1.10 / 2016-02-15 -=================== - - * deps: mime-db@~1.22.0 - - Add new mime types - - Fix extension of `application/dash+xml` - - Update primary extension for `audio/mp4` - -2.1.9 / 2016-01-06 -================== - - * deps: mime-db@~1.21.0 - - Add new mime types - -2.1.8 / 2015-11-30 -================== - - * deps: mime-db@~1.20.0 - - Add new mime types - -2.1.7 / 2015-09-20 -================== - - * deps: mime-db@~1.19.0 - - Add new mime types - -2.1.6 / 2015-09-03 -================== - - * deps: mime-db@~1.18.0 - - Add new mime types - -2.1.5 / 2015-08-20 -================== - - * deps: mime-db@~1.17.0 - - Add new mime types - -2.1.4 / 2015-07-30 -================== - - * deps: mime-db@~1.16.0 - - Add new mime types - -2.1.3 / 2015-07-13 -================== - - * deps: mime-db@~1.15.0 - - Add new mime types - -2.1.2 / 2015-06-25 -================== - - * deps: mime-db@~1.14.0 - - Add new mime types - -2.1.1 / 2015-06-08 -================== - - * perf: fix deopt during mapping - -2.1.0 / 2015-06-07 -================== - - * Fix incorrectly treating extension-less file name as extension - - i.e. `'path/to/json'` will no longer return `application/json` - * Fix `.charset(type)` to accept parameters - * Fix `.charset(type)` to match case-insensitive - * Improve generation of extension to MIME mapping - * Refactor internals for readability and no argument reassignment - * Prefer `application/*` MIME types from the same source - * Prefer any type over `application/octet-stream` - * deps: mime-db@~1.13.0 - - Add nginx as a source - - Add new mime types - -2.0.14 / 2015-06-06 -=================== - - * deps: mime-db@~1.12.0 - - Add new mime types - -2.0.13 / 2015-05-31 -=================== - - * deps: mime-db@~1.11.0 - - Add new mime types - -2.0.12 / 2015-05-19 -=================== - - * deps: mime-db@~1.10.0 - - Add new mime types - -2.0.11 / 2015-05-05 -=================== - - * deps: mime-db@~1.9.1 - - Add new mime types - -2.0.10 / 2015-03-13 -=================== - - * deps: mime-db@~1.8.0 - - Add new mime types - -2.0.9 / 2015-02-09 -================== - - * deps: mime-db@~1.7.0 - - Add new mime types - - Community extensions ownership transferred from `node-mime` - -2.0.8 / 2015-01-29 -================== - - * deps: mime-db@~1.6.0 - - Add new mime types - -2.0.7 / 2014-12-30 -================== - - * deps: mime-db@~1.5.0 - - Add new mime types - - Fix various invalid MIME type entries - -2.0.6 / 2014-12-30 -================== - - * deps: mime-db@~1.4.0 - - Add new mime types - - Fix various invalid MIME type entries - - Remove example template MIME types - -2.0.5 / 2014-12-29 -================== - - * deps: mime-db@~1.3.1 - - Fix missing extensions - -2.0.4 / 2014-12-10 -================== - - * deps: mime-db@~1.3.0 - - Add new mime types - -2.0.3 / 2014-11-09 -================== - - * deps: mime-db@~1.2.0 - - Add new mime types - -2.0.2 / 2014-09-28 -================== - - * deps: mime-db@~1.1.0 - - Add new mime types - - Add additional compressible - - Update charsets - -2.0.1 / 2014-09-07 -================== - - * Support Node.js 0.6 - -2.0.0 / 2014-09-02 -================== - - * Use `mime-db` - * Remove `.define()` - -1.0.2 / 2014-08-04 -================== - - * Set charset=utf-8 for `text/javascript` - -1.0.1 / 2014-06-24 -================== - - * Add `text/jsx` type - -1.0.0 / 2014-05-12 -================== - - * Return `false` for unknown types - * Set charset=utf-8 for `application/json` - -0.1.0 / 2014-05-02 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/LICENSE deleted file mode 100644 index 06166077..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/README.md deleted file mode 100644 index e77d615d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/README.md +++ /dev/null @@ -1,103 +0,0 @@ -# mime-types - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -The ultimate javascript content-type utility. - -Similar to [node-mime](https://github.com/broofa/node-mime), except: - -- __No fallbacks.__ Instead of naively returning the first available type, `mime-types` simply returns `false`, - so do `var type = mime.lookup('unrecognized') || 'application/octet-stream'`. -- No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`. -- Additional mime types are added such as jade and stylus via [mime-db](https://github.com/jshttp/mime-db) -- No `.define()` functionality - -Otherwise, the API is compatible. - -## Install - -```sh -$ npm install mime-types -``` - -## Adding Types - -All mime types are based on [mime-db](https://github.com/jshttp/mime-db), -so open a PR there if you'd like to add mime types. - -## API - -```js -var mime = require('mime-types') -``` - -All functions return `false` if input is invalid or not found. - -### mime.lookup(path) - -Lookup the content-type associated with a file. - -```js -mime.lookup('json') // 'application/json' -mime.lookup('.md') // 'text/x-markdown' -mime.lookup('file.html') // 'text/html' -mime.lookup('folder/file.js') // 'application/javascript' -mime.lookup('folder/.htaccess') // false - -mime.lookup('cats') // false -``` - -### mime.contentType(type) - -Create a full content-type header given a content-type or extension. - -```js -mime.contentType('markdown') // 'text/x-markdown; charset=utf-8' -mime.contentType('file.json') // 'application/json; charset=utf-8' - -// from a full path -mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8' -``` - -### mime.extension(type) - -Get the default extension for a content-type. - -```js -mime.extension('application/octet-stream') // 'bin' -``` - -### mime.charset(type) - -Lookup the implied default charset of a content-type. - -```js -mime.charset('text/x-markdown') // 'UTF-8' -``` - -### var type = mime.types[extension] - -A map of content-types by extension. - -### [extensions...] = mime.extensions[type] - -A map of extensions by content-type. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/mime-types.svg -[npm-url]: https://npmjs.org/package/mime-types -[node-version-image]: https://img.shields.io/node/v/mime-types.svg -[node-version-url]: https://nodejs.org/en/download/ -[travis-image]: https://img.shields.io/travis/jshttp/mime-types/master.svg -[travis-url]: https://travis-ci.org/jshttp/mime-types -[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-types/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/mime-types -[downloads-image]: https://img.shields.io/npm/dm/mime-types.svg -[downloads-url]: https://npmjs.org/package/mime-types diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/index.js deleted file mode 100644 index 9226ca58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/index.js +++ /dev/null @@ -1,188 +0,0 @@ -/*! - * mime-types - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var db = require('mime-db') -var extname = require('path').extname - -/** - * Module variables. - * @private - */ - -var extractTypeRegExp = /^\s*([^;\s]*)(?:;|\s|$)/ -var textTypeRegExp = /^text\//i - -/** - * Module exports. - * @public - */ - -exports.charset = charset -exports.charsets = { lookup: charset } -exports.contentType = contentType -exports.extension = extension -exports.extensions = Object.create(null) -exports.lookup = lookup -exports.types = Object.create(null) - -// Populate the extensions/types maps -populateMaps(exports.extensions, exports.types) - -/** - * Get the default charset for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function charset (type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = extractTypeRegExp.exec(type) - var mime = match && db[match[1].toLowerCase()] - - if (mime && mime.charset) { - return mime.charset - } - - // default text/* to utf-8 - if (match && textTypeRegExp.test(match[1])) { - return 'UTF-8' - } - - return false -} - -/** - * Create a full Content-Type header given a MIME type or extension. - * - * @param {string} str - * @return {boolean|string} - */ - -function contentType (str) { - // TODO: should this even be in this module? - if (!str || typeof str !== 'string') { - return false - } - - var mime = str.indexOf('/') === -1 - ? exports.lookup(str) - : str - - if (!mime) { - return false - } - - // TODO: use content-type or other module - if (mime.indexOf('charset') === -1) { - var charset = exports.charset(mime) - if (charset) mime += '; charset=' + charset.toLowerCase() - } - - return mime -} - -/** - * Get the default extension for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function extension (type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = extractTypeRegExp.exec(type) - - // get extensions - var exts = match && exports.extensions[match[1].toLowerCase()] - - if (!exts || !exts.length) { - return false - } - - return exts[0] -} - -/** - * Lookup the MIME type for a file path/extension. - * - * @param {string} path - * @return {boolean|string} - */ - -function lookup (path) { - if (!path || typeof path !== 'string') { - return false - } - - // get the extension ("ext" or ".ext" or full path) - var extension = extname('x.' + path) - .toLowerCase() - .substr(1) - - if (!extension) { - return false - } - - return exports.types[extension] || false -} - -/** - * Populate the extensions and types maps. - * @private - */ - -function populateMaps (extensions, types) { - // source preference (least -> most) - var preference = ['nginx', 'apache', undefined, 'iana'] - - Object.keys(db).forEach(function forEachMimeType (type) { - var mime = db[type] - var exts = mime.extensions - - if (!exts || !exts.length) { - return - } - - // mime -> extensions - extensions[type] = exts - - // extension -> mime - for (var i = 0; i < exts.length; i++) { - var extension = exts[i] - - if (types[extension]) { - var from = preference.indexOf(db[types[extension]].source) - var to = preference.indexOf(mime.source) - - if (types[extension] !== 'application/octet-stream' && - from > to || (from === to && types[extension].substr(0, 12) === 'application/')) { - // skip the remapping - continue - } - } - - // set the extension -> mime - types[extension] = type - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md deleted file mode 100644 index d4796b55..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md +++ /dev/null @@ -1,365 +0,0 @@ -1.24.0 / 2016-09-18 -=================== - - * Add `application/clue_info+xml` - * Add `application/geo+json` - * Add `application/lgr+xml` - * Add `application/vnd.amazon.mobi8-ebook` - * Add `application/vnd.chess-pgn` - * Add `application/vnd.comicbook+zip` - * Add `application/vnd.d2l.coursepackage1p0+zip` - * Add `application/vnd.espass-espass+zip` - * Add `application/vnd.nearst.inv+json` - * Add `application/vnd.oma.lwm2m+json` - * Add `application/vnd.oma.lwm2m+tlv` - * Add `application/vnd.quarantainenet` - * Add `application/vnd.rar` - * Add `audio/mp3` - * Add `image/dicom-rle` - * Add `image/emf` - * Add `image/jls` - * Add `image/wmf` - * Add `model/gltf+json` - * Add `text/vnd.ascii-art` - -1.23.0 / 2016-05-01 -=================== - - * Add `application/efi` - * Add `application/vnd.3gpp.sms+xml` - * Add `application/vnd.3lightssoftware.imagescal` - * Add `application/vnd.coreos.ignition+json` - * Add `application/vnd.desmume.movie` - * Add `application/vnd.onepager` - * Add `application/vnd.vel+json` - * Add `text/prs.prop.logic` - * Add `video/encaprtp` - * Add `video/h265` - * Add `video/iso.segment` - * Add `video/raptorfec` - * Add `video/rtploopback` - * Add `video/vnd.radgamettools.bink` - * Add `video/vnd.radgamettools.smacker` - * Add `video/vp8` - * Add extension `.3gpp` to `audio/3gpp` - -1.22.0 / 2016-02-15 -=================== - - * Add `application/ppsp-tracker+json` - * Add `application/problem+json` - * Add `application/problem+xml` - * Add `application/vnd.hdt` - * Add `application/vnd.ms-printschematicket+xml` - * Add `model/vnd.rosette.annotated-data-model` - * Add `text/slim` - * Add extension `.rng` to `application/xml` - * Fix extension of `application/dash+xml` to be `.mpd` - * Update primary extension to `.m4a` for `audio/mp4` - -1.21.0 / 2016-01-06 -=================== - - * Add `application/emergencycalldata.comment+xml` - * Add `application/emergencycalldata.deviceinfo+xml` - * Add `application/emergencycalldata.providerinfo+xml` - * Add `application/emergencycalldata.serviceinfo+xml` - * Add `application/emergencycalldata.subscriberinfo+xml` - * Add `application/vnd.filmit.zfc` - * Add `application/vnd.google-apps.document` - * Add `application/vnd.google-apps.presentation` - * Add `application/vnd.google-apps.spreadsheet` - * Add `application/vnd.mapbox-vector-tile` - * Add `application/vnd.ms-printdevicecapabilities+xml` - * Add `application/vnd.ms-windows.devicepairing` - * Add `application/vnd.ms-windows.nwprinting.oob` - * Add `application/vnd.tml` - * Add `audio/evs` - -1.20.0 / 2015-11-10 -=================== - - * Add `application/cdni` - * Add `application/csvm+json` - * Add `application/rfc+xml` - * Add `application/vnd.3gpp.access-transfer-events+xml` - * Add `application/vnd.3gpp.srvcc-ext+xml` - * Add `application/vnd.ms-windows.wsd.oob` - * Add `application/vnd.oxli.countgraph` - * Add `application/vnd.pagerduty+json` - * Add `text/x-suse-ymp` - -1.19.0 / 2015-09-17 -=================== - - * Add `application/vnd.3gpp-prose-pc3ch+xml` - * Add `application/vnd.3gpp.srvcc-info+xml` - * Add `application/vnd.apple.pkpass` - * Add `application/vnd.drive+json` - -1.18.0 / 2015-09-03 -=================== - - * Add `application/pkcs12` - * Add `application/vnd.3gpp-prose+xml` - * Add `application/vnd.3gpp.mid-call+xml` - * Add `application/vnd.3gpp.state-and-event-info+xml` - * Add `application/vnd.anki` - * Add `application/vnd.firemonkeys.cloudcell` - * Add `application/vnd.openblox.game+xml` - * Add `application/vnd.openblox.game-binary` - -1.17.0 / 2015-08-13 -=================== - - * Add `application/x-msdos-program` - * Add `audio/g711-0` - * Add `image/vnd.mozilla.apng` - * Add extension `.exe` to `application/x-msdos-program` - -1.16.0 / 2015-07-29 -=================== - - * Add `application/vnd.uri-map` - -1.15.0 / 2015-07-13 -=================== - - * Add `application/x-httpd-php` - -1.14.0 / 2015-06-25 -=================== - - * Add `application/scim+json` - * Add `application/vnd.3gpp.ussd+xml` - * Add `application/vnd.biopax.rdf+xml` - * Add `text/x-processing` - -1.13.0 / 2015-06-07 -=================== - - * Add nginx as a source - * Add `application/x-cocoa` - * Add `application/x-java-archive-diff` - * Add `application/x-makeself` - * Add `application/x-perl` - * Add `application/x-pilot` - * Add `application/x-redhat-package-manager` - * Add `application/x-sea` - * Add `audio/x-m4a` - * Add `audio/x-realaudio` - * Add `image/x-jng` - * Add `text/mathml` - -1.12.0 / 2015-06-05 -=================== - - * Add `application/bdoc` - * Add `application/vnd.hyperdrive+json` - * Add `application/x-bdoc` - * Add extension `.rtf` to `text/rtf` - -1.11.0 / 2015-05-31 -=================== - - * Add `audio/wav` - * Add `audio/wave` - * Add extension `.litcoffee` to `text/coffeescript` - * Add extension `.sfd-hdstx` to `application/vnd.hydrostatix.sof-data` - * Add extension `.n-gage` to `application/vnd.nokia.n-gage.symbian.install` - -1.10.0 / 2015-05-19 -=================== - - * Add `application/vnd.balsamiq.bmpr` - * Add `application/vnd.microsoft.portable-executable` - * Add `application/x-ns-proxy-autoconfig` - -1.9.1 / 2015-04-19 -================== - - * Remove `.json` extension from `application/manifest+json` - - This is causing bugs downstream - -1.9.0 / 2015-04-19 -================== - - * Add `application/manifest+json` - * Add `application/vnd.micro+json` - * Add `image/vnd.zbrush.pcx` - * Add `image/x-ms-bmp` - -1.8.0 / 2015-03-13 -================== - - * Add `application/vnd.citationstyles.style+xml` - * Add `application/vnd.fastcopy-disk-image` - * Add `application/vnd.gov.sk.xmldatacontainer+xml` - * Add extension `.jsonld` to `application/ld+json` - -1.7.0 / 2015-02-08 -================== - - * Add `application/vnd.gerber` - * Add `application/vnd.msa-disk-image` - -1.6.1 / 2015-02-05 -================== - - * Community extensions ownership transferred from `node-mime` - -1.6.0 / 2015-01-29 -================== - - * Add `application/jose` - * Add `application/jose+json` - * Add `application/json-seq` - * Add `application/jwk+json` - * Add `application/jwk-set+json` - * Add `application/jwt` - * Add `application/rdap+json` - * Add `application/vnd.gov.sk.e-form+xml` - * Add `application/vnd.ims.imsccv1p3` - -1.5.0 / 2014-12-30 -================== - - * Add `application/vnd.oracle.resource+json` - * Fix various invalid MIME type entries - - `application/mbox+xml` - - `application/oscp-response` - - `application/vwg-multiplexed` - - `audio/g721` - -1.4.0 / 2014-12-21 -================== - - * Add `application/vnd.ims.imsccv1p2` - * Fix various invalid MIME type entries - - `application/vnd-acucobol` - - `application/vnd-curl` - - `application/vnd-dart` - - `application/vnd-dxr` - - `application/vnd-fdf` - - `application/vnd-mif` - - `application/vnd-sema` - - `application/vnd-wap-wmlc` - - `application/vnd.adobe.flash-movie` - - `application/vnd.dece-zip` - - `application/vnd.dvb_service` - - `application/vnd.micrografx-igx` - - `application/vnd.sealed-doc` - - `application/vnd.sealed-eml` - - `application/vnd.sealed-mht` - - `application/vnd.sealed-ppt` - - `application/vnd.sealed-tiff` - - `application/vnd.sealed-xls` - - `application/vnd.sealedmedia.softseal-html` - - `application/vnd.sealedmedia.softseal-pdf` - - `application/vnd.wap-slc` - - `application/vnd.wap-wbxml` - - `audio/vnd.sealedmedia.softseal-mpeg` - - `image/vnd-djvu` - - `image/vnd-svf` - - `image/vnd-wap-wbmp` - - `image/vnd.sealed-png` - - `image/vnd.sealedmedia.softseal-gif` - - `image/vnd.sealedmedia.softseal-jpg` - - `model/vnd-dwf` - - `model/vnd.parasolid.transmit-binary` - - `model/vnd.parasolid.transmit-text` - - `text/vnd-a` - - `text/vnd-curl` - - `text/vnd.wap-wml` - * Remove example template MIME types - - `application/example` - - `audio/example` - - `image/example` - - `message/example` - - `model/example` - - `multipart/example` - - `text/example` - - `video/example` - -1.3.1 / 2014-12-16 -================== - - * Fix missing extensions - - `application/json5` - - `text/hjson` - -1.3.0 / 2014-12-07 -================== - - * Add `application/a2l` - * Add `application/aml` - * Add `application/atfx` - * Add `application/atxml` - * Add `application/cdfx+xml` - * Add `application/dii` - * Add `application/json5` - * Add `application/lxf` - * Add `application/mf4` - * Add `application/vnd.apache.thrift.compact` - * Add `application/vnd.apache.thrift.json` - * Add `application/vnd.coffeescript` - * Add `application/vnd.enphase.envoy` - * Add `application/vnd.ims.imsccv1p1` - * Add `text/csv-schema` - * Add `text/hjson` - * Add `text/markdown` - * Add `text/yaml` - -1.2.0 / 2014-11-09 -================== - - * Add `application/cea` - * Add `application/dit` - * Add `application/vnd.gov.sk.e-form+zip` - * Add `application/vnd.tmd.mediaflex.api+xml` - * Type `application/epub+zip` is now IANA-registered - -1.1.2 / 2014-10-23 -================== - - * Rebuild database for `application/x-www-form-urlencoded` change - -1.1.1 / 2014-10-20 -================== - - * Mark `application/x-www-form-urlencoded` as compressible. - -1.1.0 / 2014-09-28 -================== - - * Add `application/font-woff2` - -1.0.3 / 2014-09-25 -================== - - * Fix engine requirement in package - -1.0.2 / 2014-09-25 -================== - - * Add `application/coap-group+json` - * Add `application/dcd` - * Add `application/vnd.apache.thrift.binary` - * Add `image/vnd.tencent.tap` - * Mark all JSON-derived types as compressible - * Update `text/vtt` data - -1.0.1 / 2014-08-30 -================== - - * Fix extension ordering - -1.0.0 / 2014-08-30 -================== - - * Add `application/atf` - * Add `application/merge-patch+json` - * Add `multipart/x-mixed-replace` - * Add `source: 'apache'` metadata - * Add `source: 'iana'` metadata - * Remove badly-assumed charset data diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md deleted file mode 100644 index 7662440b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# mime-db - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][travis-image]][travis-url] -[![Coverage Status][coveralls-image]][coveralls-url] - -This is a database of all mime types. -It consists of a single, public JSON file and does not include any logic, -allowing it to remain as un-opinionated as possible with an API. -It aggregates data from the following sources: - -- http://www.iana.org/assignments/media-types/media-types.xhtml -- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types -- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types - -## Installation - -```bash -npm install mime-db -``` - -### Database Download - -If you're crazy enough to use this in the browser, you can just grab the -JSON file using [RawGit](https://rawgit.com/). It is recommended to replace -`master` with [a release tag](https://github.com/jshttp/mime-db/tags) as the -JSON format may change in the future. - -``` -https://cdn.rawgit.com/jshttp/mime-db/master/db.json -``` - -## Usage - -```js -var db = require('mime-db'); - -// grab data on .js files -var data = db['application/javascript']; -``` - -## Data Structure - -The JSON file is a map lookup for lowercased mime types. -Each mime type has the following properties: - -- `.source` - where the mime type is defined. - If not set, it's probably a custom media type. - - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) - - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml) - - `nginx` - [nginx media types](http://hg.nginx.org/nginx/raw-file/default/conf/mime.types) -- `.extensions[]` - known extensions associated with this mime type. -- `.compressible` - whether a file of this type can be gzipped. -- `.charset` - the default charset associated with this type, if any. - -If unknown, every property could be `undefined`. - -## Contributing - -To edit the database, only make PRs against `src/custom.json` or -`src/custom-suffix.json`. - -To update the build, run `npm run build`. - -## Adding Custom Media Types - -The best way to get new media types included in this library is to register -them with the IANA. The community registration procedure is outlined in -[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types -registered with the IANA are automatically pulled into this library. - -[npm-version-image]: https://img.shields.io/npm/v/mime-db.svg -[npm-downloads-image]: https://img.shields.io/npm/dm/mime-db.svg -[npm-url]: https://npmjs.org/package/mime-db -[travis-image]: https://img.shields.io/travis/jshttp/mime-db/master.svg -[travis-url]: https://travis-ci.org/jshttp/mime-db -[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-db/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master -[node-image]: https://img.shields.io/node/v/mime-db.svg -[node-url]: http://nodejs.org/download/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json deleted file mode 100644 index 63b226f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json +++ /dev/null @@ -1,6692 +0,0 @@ -{ - "application/1d-interleaved-parityfec": { - "source": "iana" - }, - "application/3gpdash-qoe-report+xml": { - "source": "iana" - }, - "application/3gpp-ims+xml": { - "source": "iana" - }, - "application/a2l": { - "source": "iana" - }, - "application/activemessage": { - "source": "iana" - }, - "application/alto-costmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-costmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/alto-directory+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcost+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcostparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointprop+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointpropparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-error+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/aml": { - "source": "iana" - }, - "application/andrew-inset": { - "source": "iana", - "extensions": ["ez"] - }, - "application/applefile": { - "source": "iana" - }, - "application/applixware": { - "source": "apache", - "extensions": ["aw"] - }, - "application/atf": { - "source": "iana" - }, - "application/atfx": { - "source": "iana" - }, - "application/atom+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atom"] - }, - "application/atomcat+xml": { - "source": "iana", - "extensions": ["atomcat"] - }, - "application/atomdeleted+xml": { - "source": "iana" - }, - "application/atomicmail": { - "source": "iana" - }, - "application/atomsvc+xml": { - "source": "iana", - "extensions": ["atomsvc"] - }, - "application/atxml": { - "source": "iana" - }, - "application/auth-policy+xml": { - "source": "iana" - }, - "application/bacnet-xdd+zip": { - "source": "iana" - }, - "application/batch-smtp": { - "source": "iana" - }, - "application/bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/beep+xml": { - "source": "iana" - }, - "application/calendar+json": { - "source": "iana", - "compressible": true - }, - "application/calendar+xml": { - "source": "iana" - }, - "application/call-completion": { - "source": "iana" - }, - "application/cals-1840": { - "source": "iana" - }, - "application/cbor": { - "source": "iana" - }, - "application/ccmp+xml": { - "source": "iana" - }, - "application/ccxml+xml": { - "source": "iana", - "extensions": ["ccxml"] - }, - "application/cdfx+xml": { - "source": "iana" - }, - "application/cdmi-capability": { - "source": "iana", - "extensions": ["cdmia"] - }, - "application/cdmi-container": { - "source": "iana", - "extensions": ["cdmic"] - }, - "application/cdmi-domain": { - "source": "iana", - "extensions": ["cdmid"] - }, - "application/cdmi-object": { - "source": "iana", - "extensions": ["cdmio"] - }, - "application/cdmi-queue": { - "source": "iana", - "extensions": ["cdmiq"] - }, - "application/cdni": { - "source": "iana" - }, - "application/cea": { - "source": "iana" - }, - "application/cea-2018+xml": { - "source": "iana" - }, - "application/cellml+xml": { - "source": "iana" - }, - "application/cfw": { - "source": "iana" - }, - "application/clue_info+xml": { - "source": "iana" - }, - "application/cms": { - "source": "iana" - }, - "application/cnrp+xml": { - "source": "iana" - }, - "application/coap-group+json": { - "source": "iana", - "compressible": true - }, - "application/commonground": { - "source": "iana" - }, - "application/conference-info+xml": { - "source": "iana" - }, - "application/cpl+xml": { - "source": "iana" - }, - "application/csrattrs": { - "source": "iana" - }, - "application/csta+xml": { - "source": "iana" - }, - "application/cstadata+xml": { - "source": "iana" - }, - "application/csvm+json": { - "source": "iana", - "compressible": true - }, - "application/cu-seeme": { - "source": "apache", - "extensions": ["cu"] - }, - "application/cybercash": { - "source": "iana" - }, - "application/dart": { - "compressible": true - }, - "application/dash+xml": { - "source": "iana", - "extensions": ["mpd"] - }, - "application/dashdelta": { - "source": "iana" - }, - "application/davmount+xml": { - "source": "iana", - "extensions": ["davmount"] - }, - "application/dca-rft": { - "source": "iana" - }, - "application/dcd": { - "source": "iana" - }, - "application/dec-dx": { - "source": "iana" - }, - "application/dialog-info+xml": { - "source": "iana" - }, - "application/dicom": { - "source": "iana" - }, - "application/dii": { - "source": "iana" - }, - "application/dit": { - "source": "iana" - }, - "application/dns": { - "source": "iana" - }, - "application/docbook+xml": { - "source": "apache", - "extensions": ["dbk"] - }, - "application/dskpp+xml": { - "source": "iana" - }, - "application/dssc+der": { - "source": "iana", - "extensions": ["dssc"] - }, - "application/dssc+xml": { - "source": "iana", - "extensions": ["xdssc"] - }, - "application/dvcs": { - "source": "iana" - }, - "application/ecmascript": { - "source": "iana", - "compressible": true, - "extensions": ["ecma"] - }, - "application/edi-consent": { - "source": "iana" - }, - "application/edi-x12": { - "source": "iana", - "compressible": false - }, - "application/edifact": { - "source": "iana", - "compressible": false - }, - "application/efi": { - "source": "iana" - }, - "application/emergencycalldata.comment+xml": { - "source": "iana" - }, - "application/emergencycalldata.deviceinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.providerinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.serviceinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.subscriberinfo+xml": { - "source": "iana" - }, - "application/emma+xml": { - "source": "iana", - "extensions": ["emma"] - }, - "application/emotionml+xml": { - "source": "iana" - }, - "application/encaprtp": { - "source": "iana" - }, - "application/epp+xml": { - "source": "iana" - }, - "application/epub+zip": { - "source": "iana", - "extensions": ["epub"] - }, - "application/eshop": { - "source": "iana" - }, - "application/exi": { - "source": "iana", - "extensions": ["exi"] - }, - "application/fastinfoset": { - "source": "iana" - }, - "application/fastsoap": { - "source": "iana" - }, - "application/fdt+xml": { - "source": "iana" - }, - "application/fits": { - "source": "iana" - }, - "application/font-sfnt": { - "source": "iana" - }, - "application/font-tdpfr": { - "source": "iana", - "extensions": ["pfr"] - }, - "application/font-woff": { - "source": "iana", - "compressible": false, - "extensions": ["woff"] - }, - "application/font-woff2": { - "compressible": false, - "extensions": ["woff2"] - }, - "application/framework-attributes+xml": { - "source": "iana" - }, - "application/geo+json": { - "source": "iana", - "compressible": true - }, - "application/gml+xml": { - "source": "apache", - "extensions": ["gml"] - }, - "application/gpx+xml": { - "source": "apache", - "extensions": ["gpx"] - }, - "application/gxf": { - "source": "apache", - "extensions": ["gxf"] - }, - "application/gzip": { - "source": "iana", - "compressible": false - }, - "application/h224": { - "source": "iana" - }, - "application/held+xml": { - "source": "iana" - }, - "application/http": { - "source": "iana" - }, - "application/hyperstudio": { - "source": "iana", - "extensions": ["stk"] - }, - "application/ibe-key-request+xml": { - "source": "iana" - }, - "application/ibe-pkg-reply+xml": { - "source": "iana" - }, - "application/ibe-pp-data": { - "source": "iana" - }, - "application/iges": { - "source": "iana" - }, - "application/im-iscomposing+xml": { - "source": "iana" - }, - "application/index": { - "source": "iana" - }, - "application/index.cmd": { - "source": "iana" - }, - "application/index.obj": { - "source": "iana" - }, - "application/index.response": { - "source": "iana" - }, - "application/index.vnd": { - "source": "iana" - }, - "application/inkml+xml": { - "source": "iana", - "extensions": ["ink","inkml"] - }, - "application/iotp": { - "source": "iana" - }, - "application/ipfix": { - "source": "iana", - "extensions": ["ipfix"] - }, - "application/ipp": { - "source": "iana" - }, - "application/isup": { - "source": "iana" - }, - "application/its+xml": { - "source": "iana" - }, - "application/java-archive": { - "source": "apache", - "compressible": false, - "extensions": ["jar","war","ear"] - }, - "application/java-serialized-object": { - "source": "apache", - "compressible": false, - "extensions": ["ser"] - }, - "application/java-vm": { - "source": "apache", - "compressible": false, - "extensions": ["class"] - }, - "application/javascript": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["js"] - }, - "application/jose": { - "source": "iana" - }, - "application/jose+json": { - "source": "iana", - "compressible": true - }, - "application/jrd+json": { - "source": "iana", - "compressible": true - }, - "application/json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["json","map"] - }, - "application/json-patch+json": { - "source": "iana", - "compressible": true - }, - "application/json-seq": { - "source": "iana" - }, - "application/json5": { - "extensions": ["json5"] - }, - "application/jsonml+json": { - "source": "apache", - "compressible": true, - "extensions": ["jsonml"] - }, - "application/jwk+json": { - "source": "iana", - "compressible": true - }, - "application/jwk-set+json": { - "source": "iana", - "compressible": true - }, - "application/jwt": { - "source": "iana" - }, - "application/kpml-request+xml": { - "source": "iana" - }, - "application/kpml-response+xml": { - "source": "iana" - }, - "application/ld+json": { - "source": "iana", - "compressible": true, - "extensions": ["jsonld"] - }, - "application/lgr+xml": { - "source": "iana" - }, - "application/link-format": { - "source": "iana" - }, - "application/load-control+xml": { - "source": "iana" - }, - "application/lost+xml": { - "source": "iana", - "extensions": ["lostxml"] - }, - "application/lostsync+xml": { - "source": "iana" - }, - "application/lxf": { - "source": "iana" - }, - "application/mac-binhex40": { - "source": "iana", - "extensions": ["hqx"] - }, - "application/mac-compactpro": { - "source": "apache", - "extensions": ["cpt"] - }, - "application/macwriteii": { - "source": "iana" - }, - "application/mads+xml": { - "source": "iana", - "extensions": ["mads"] - }, - "application/manifest+json": { - "charset": "UTF-8", - "compressible": true, - "extensions": ["webmanifest"] - }, - "application/marc": { - "source": "iana", - "extensions": ["mrc"] - }, - "application/marcxml+xml": { - "source": "iana", - "extensions": ["mrcx"] - }, - "application/mathematica": { - "source": "iana", - "extensions": ["ma","nb","mb"] - }, - "application/mathml+xml": { - "source": "iana", - "extensions": ["mathml"] - }, - "application/mathml-content+xml": { - "source": "iana" - }, - "application/mathml-presentation+xml": { - "source": "iana" - }, - "application/mbms-associated-procedure-description+xml": { - "source": "iana" - }, - "application/mbms-deregister+xml": { - "source": "iana" - }, - "application/mbms-envelope+xml": { - "source": "iana" - }, - "application/mbms-msk+xml": { - "source": "iana" - }, - "application/mbms-msk-response+xml": { - "source": "iana" - }, - "application/mbms-protection-description+xml": { - "source": "iana" - }, - "application/mbms-reception-report+xml": { - "source": "iana" - }, - "application/mbms-register+xml": { - "source": "iana" - }, - "application/mbms-register-response+xml": { - "source": "iana" - }, - "application/mbms-schedule+xml": { - "source": "iana" - }, - "application/mbms-user-service-description+xml": { - "source": "iana" - }, - "application/mbox": { - "source": "iana", - "extensions": ["mbox"] - }, - "application/media-policy-dataset+xml": { - "source": "iana" - }, - "application/media_control+xml": { - "source": "iana" - }, - "application/mediaservercontrol+xml": { - "source": "iana", - "extensions": ["mscml"] - }, - "application/merge-patch+json": { - "source": "iana", - "compressible": true - }, - "application/metalink+xml": { - "source": "apache", - "extensions": ["metalink"] - }, - "application/metalink4+xml": { - "source": "iana", - "extensions": ["meta4"] - }, - "application/mets+xml": { - "source": "iana", - "extensions": ["mets"] - }, - "application/mf4": { - "source": "iana" - }, - "application/mikey": { - "source": "iana" - }, - "application/mods+xml": { - "source": "iana", - "extensions": ["mods"] - }, - "application/moss-keys": { - "source": "iana" - }, - "application/moss-signature": { - "source": "iana" - }, - "application/mosskey-data": { - "source": "iana" - }, - "application/mosskey-request": { - "source": "iana" - }, - "application/mp21": { - "source": "iana", - "extensions": ["m21","mp21"] - }, - "application/mp4": { - "source": "iana", - "extensions": ["mp4s","m4p"] - }, - "application/mpeg4-generic": { - "source": "iana" - }, - "application/mpeg4-iod": { - "source": "iana" - }, - "application/mpeg4-iod-xmt": { - "source": "iana" - }, - "application/mrb-consumer+xml": { - "source": "iana" - }, - "application/mrb-publish+xml": { - "source": "iana" - }, - "application/msc-ivr+xml": { - "source": "iana" - }, - "application/msc-mixer+xml": { - "source": "iana" - }, - "application/msword": { - "source": "iana", - "compressible": false, - "extensions": ["doc","dot"] - }, - "application/mxf": { - "source": "iana", - "extensions": ["mxf"] - }, - "application/nasdata": { - "source": "iana" - }, - "application/news-checkgroups": { - "source": "iana" - }, - "application/news-groupinfo": { - "source": "iana" - }, - "application/news-transmission": { - "source": "iana" - }, - "application/nlsml+xml": { - "source": "iana" - }, - "application/nss": { - "source": "iana" - }, - "application/ocsp-request": { - "source": "iana" - }, - "application/ocsp-response": { - "source": "iana" - }, - "application/octet-stream": { - "source": "iana", - "compressible": false, - "extensions": ["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"] - }, - "application/oda": { - "source": "iana", - "extensions": ["oda"] - }, - "application/odx": { - "source": "iana" - }, - "application/oebps-package+xml": { - "source": "iana", - "extensions": ["opf"] - }, - "application/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["ogx"] - }, - "application/omdoc+xml": { - "source": "apache", - "extensions": ["omdoc"] - }, - "application/onenote": { - "source": "apache", - "extensions": ["onetoc","onetoc2","onetmp","onepkg"] - }, - "application/oxps": { - "source": "iana", - "extensions": ["oxps"] - }, - "application/p2p-overlay+xml": { - "source": "iana" - }, - "application/parityfec": { - "source": "iana" - }, - "application/patch-ops-error+xml": { - "source": "iana", - "extensions": ["xer"] - }, - "application/pdf": { - "source": "iana", - "compressible": false, - "extensions": ["pdf"] - }, - "application/pdx": { - "source": "iana" - }, - "application/pgp-encrypted": { - "source": "iana", - "compressible": false, - "extensions": ["pgp"] - }, - "application/pgp-keys": { - "source": "iana" - }, - "application/pgp-signature": { - "source": "iana", - "extensions": ["asc","sig"] - }, - "application/pics-rules": { - "source": "apache", - "extensions": ["prf"] - }, - "application/pidf+xml": { - "source": "iana" - }, - "application/pidf-diff+xml": { - "source": "iana" - }, - "application/pkcs10": { - "source": "iana", - "extensions": ["p10"] - }, - "application/pkcs12": { - "source": "iana" - }, - "application/pkcs7-mime": { - "source": "iana", - "extensions": ["p7m","p7c"] - }, - "application/pkcs7-signature": { - "source": "iana", - "extensions": ["p7s"] - }, - "application/pkcs8": { - "source": "iana", - "extensions": ["p8"] - }, - "application/pkix-attr-cert": { - "source": "iana", - "extensions": ["ac"] - }, - "application/pkix-cert": { - "source": "iana", - "extensions": ["cer"] - }, - "application/pkix-crl": { - "source": "iana", - "extensions": ["crl"] - }, - "application/pkix-pkipath": { - "source": "iana", - "extensions": ["pkipath"] - }, - "application/pkixcmp": { - "source": "iana", - "extensions": ["pki"] - }, - "application/pls+xml": { - "source": "iana", - "extensions": ["pls"] - }, - "application/poc-settings+xml": { - "source": "iana" - }, - "application/postscript": { - "source": "iana", - "compressible": true, - "extensions": ["ai","eps","ps"] - }, - "application/ppsp-tracker+json": { - "source": "iana", - "compressible": true - }, - "application/problem+json": { - "source": "iana", - "compressible": true - }, - "application/problem+xml": { - "source": "iana" - }, - "application/provenance+xml": { - "source": "iana" - }, - "application/prs.alvestrand.titrax-sheet": { - "source": "iana" - }, - "application/prs.cww": { - "source": "iana", - "extensions": ["cww"] - }, - "application/prs.hpub+zip": { - "source": "iana" - }, - "application/prs.nprend": { - "source": "iana" - }, - "application/prs.plucker": { - "source": "iana" - }, - "application/prs.rdf-xml-crypt": { - "source": "iana" - }, - "application/prs.xsf+xml": { - "source": "iana" - }, - "application/pskc+xml": { - "source": "iana", - "extensions": ["pskcxml"] - }, - "application/qsig": { - "source": "iana" - }, - "application/raptorfec": { - "source": "iana" - }, - "application/rdap+json": { - "source": "iana", - "compressible": true - }, - "application/rdf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rdf"] - }, - "application/reginfo+xml": { - "source": "iana", - "extensions": ["rif"] - }, - "application/relax-ng-compact-syntax": { - "source": "iana", - "extensions": ["rnc"] - }, - "application/remote-printing": { - "source": "iana" - }, - "application/reputon+json": { - "source": "iana", - "compressible": true - }, - "application/resource-lists+xml": { - "source": "iana", - "extensions": ["rl"] - }, - "application/resource-lists-diff+xml": { - "source": "iana", - "extensions": ["rld"] - }, - "application/rfc+xml": { - "source": "iana" - }, - "application/riscos": { - "source": "iana" - }, - "application/rlmi+xml": { - "source": "iana" - }, - "application/rls-services+xml": { - "source": "iana", - "extensions": ["rs"] - }, - "application/rpki-ghostbusters": { - "source": "iana", - "extensions": ["gbr"] - }, - "application/rpki-manifest": { - "source": "iana", - "extensions": ["mft"] - }, - "application/rpki-roa": { - "source": "iana", - "extensions": ["roa"] - }, - "application/rpki-updown": { - "source": "iana" - }, - "application/rsd+xml": { - "source": "apache", - "extensions": ["rsd"] - }, - "application/rss+xml": { - "source": "apache", - "compressible": true, - "extensions": ["rss"] - }, - "application/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "application/rtploopback": { - "source": "iana" - }, - "application/rtx": { - "source": "iana" - }, - "application/samlassertion+xml": { - "source": "iana" - }, - "application/samlmetadata+xml": { - "source": "iana" - }, - "application/sbml+xml": { - "source": "iana", - "extensions": ["sbml"] - }, - "application/scaip+xml": { - "source": "iana" - }, - "application/scim+json": { - "source": "iana", - "compressible": true - }, - "application/scvp-cv-request": { - "source": "iana", - "extensions": ["scq"] - }, - "application/scvp-cv-response": { - "source": "iana", - "extensions": ["scs"] - }, - "application/scvp-vp-request": { - "source": "iana", - "extensions": ["spq"] - }, - "application/scvp-vp-response": { - "source": "iana", - "extensions": ["spp"] - }, - "application/sdp": { - "source": "iana", - "extensions": ["sdp"] - }, - "application/sep+xml": { - "source": "iana" - }, - "application/sep-exi": { - "source": "iana" - }, - "application/session-info": { - "source": "iana" - }, - "application/set-payment": { - "source": "iana" - }, - "application/set-payment-initiation": { - "source": "iana", - "extensions": ["setpay"] - }, - "application/set-registration": { - "source": "iana" - }, - "application/set-registration-initiation": { - "source": "iana", - "extensions": ["setreg"] - }, - "application/sgml": { - "source": "iana" - }, - "application/sgml-open-catalog": { - "source": "iana" - }, - "application/shf+xml": { - "source": "iana", - "extensions": ["shf"] - }, - "application/sieve": { - "source": "iana" - }, - "application/simple-filter+xml": { - "source": "iana" - }, - "application/simple-message-summary": { - "source": "iana" - }, - "application/simplesymbolcontainer": { - "source": "iana" - }, - "application/slate": { - "source": "iana" - }, - "application/smil": { - "source": "iana" - }, - "application/smil+xml": { - "source": "iana", - "extensions": ["smi","smil"] - }, - "application/smpte336m": { - "source": "iana" - }, - "application/soap+fastinfoset": { - "source": "iana" - }, - "application/soap+xml": { - "source": "iana", - "compressible": true - }, - "application/sparql-query": { - "source": "iana", - "extensions": ["rq"] - }, - "application/sparql-results+xml": { - "source": "iana", - "extensions": ["srx"] - }, - "application/spirits-event+xml": { - "source": "iana" - }, - "application/sql": { - "source": "iana" - }, - "application/srgs": { - "source": "iana", - "extensions": ["gram"] - }, - "application/srgs+xml": { - "source": "iana", - "extensions": ["grxml"] - }, - "application/sru+xml": { - "source": "iana", - "extensions": ["sru"] - }, - "application/ssdl+xml": { - "source": "apache", - "extensions": ["ssdl"] - }, - "application/ssml+xml": { - "source": "iana", - "extensions": ["ssml"] - }, - "application/tamp-apex-update": { - "source": "iana" - }, - "application/tamp-apex-update-confirm": { - "source": "iana" - }, - "application/tamp-community-update": { - "source": "iana" - }, - "application/tamp-community-update-confirm": { - "source": "iana" - }, - "application/tamp-error": { - "source": "iana" - }, - "application/tamp-sequence-adjust": { - "source": "iana" - }, - "application/tamp-sequence-adjust-confirm": { - "source": "iana" - }, - "application/tamp-status-query": { - "source": "iana" - }, - "application/tamp-status-response": { - "source": "iana" - }, - "application/tamp-update": { - "source": "iana" - }, - "application/tamp-update-confirm": { - "source": "iana" - }, - "application/tar": { - "compressible": true - }, - "application/tei+xml": { - "source": "iana", - "extensions": ["tei","teicorpus"] - }, - "application/thraud+xml": { - "source": "iana", - "extensions": ["tfi"] - }, - "application/timestamp-query": { - "source": "iana" - }, - "application/timestamp-reply": { - "source": "iana" - }, - "application/timestamped-data": { - "source": "iana", - "extensions": ["tsd"] - }, - "application/ttml+xml": { - "source": "iana" - }, - "application/tve-trigger": { - "source": "iana" - }, - "application/ulpfec": { - "source": "iana" - }, - "application/urc-grpsheet+xml": { - "source": "iana" - }, - "application/urc-ressheet+xml": { - "source": "iana" - }, - "application/urc-targetdesc+xml": { - "source": "iana" - }, - "application/urc-uisocketdesc+xml": { - "source": "iana" - }, - "application/vcard+json": { - "source": "iana", - "compressible": true - }, - "application/vcard+xml": { - "source": "iana" - }, - "application/vemmi": { - "source": "iana" - }, - "application/vividence.scriptfile": { - "source": "apache" - }, - "application/vnd.3gpp-prose+xml": { - "source": "iana" - }, - "application/vnd.3gpp-prose-pc3ch+xml": { - "source": "iana" - }, - "application/vnd.3gpp.access-transfer-events+xml": { - "source": "iana" - }, - "application/vnd.3gpp.bsf+xml": { - "source": "iana" - }, - "application/vnd.3gpp.mid-call+xml": { - "source": "iana" - }, - "application/vnd.3gpp.pic-bw-large": { - "source": "iana", - "extensions": ["plb"] - }, - "application/vnd.3gpp.pic-bw-small": { - "source": "iana", - "extensions": ["psb"] - }, - "application/vnd.3gpp.pic-bw-var": { - "source": "iana", - "extensions": ["pvb"] - }, - "application/vnd.3gpp.sms": { - "source": "iana" - }, - "application/vnd.3gpp.sms+xml": { - "source": "iana" - }, - "application/vnd.3gpp.srvcc-ext+xml": { - "source": "iana" - }, - "application/vnd.3gpp.srvcc-info+xml": { - "source": "iana" - }, - "application/vnd.3gpp.state-and-event-info+xml": { - "source": "iana" - }, - "application/vnd.3gpp.ussd+xml": { - "source": "iana" - }, - "application/vnd.3gpp2.bcmcsinfo+xml": { - "source": "iana" - }, - "application/vnd.3gpp2.sms": { - "source": "iana" - }, - "application/vnd.3gpp2.tcap": { - "source": "iana", - "extensions": ["tcap"] - }, - "application/vnd.3lightssoftware.imagescal": { - "source": "iana" - }, - "application/vnd.3m.post-it-notes": { - "source": "iana", - "extensions": ["pwn"] - }, - "application/vnd.accpac.simply.aso": { - "source": "iana", - "extensions": ["aso"] - }, - "application/vnd.accpac.simply.imp": { - "source": "iana", - "extensions": ["imp"] - }, - "application/vnd.acucobol": { - "source": "iana", - "extensions": ["acu"] - }, - "application/vnd.acucorp": { - "source": "iana", - "extensions": ["atc","acutc"] - }, - "application/vnd.adobe.air-application-installer-package+zip": { - "source": "apache", - "extensions": ["air"] - }, - "application/vnd.adobe.flash.movie": { - "source": "iana" - }, - "application/vnd.adobe.formscentral.fcdt": { - "source": "iana", - "extensions": ["fcdt"] - }, - "application/vnd.adobe.fxp": { - "source": "iana", - "extensions": ["fxp","fxpl"] - }, - "application/vnd.adobe.partial-upload": { - "source": "iana" - }, - "application/vnd.adobe.xdp+xml": { - "source": "iana", - "extensions": ["xdp"] - }, - "application/vnd.adobe.xfdf": { - "source": "iana", - "extensions": ["xfdf"] - }, - "application/vnd.aether.imp": { - "source": "iana" - }, - "application/vnd.ah-barcode": { - "source": "iana" - }, - "application/vnd.ahead.space": { - "source": "iana", - "extensions": ["ahead"] - }, - "application/vnd.airzip.filesecure.azf": { - "source": "iana", - "extensions": ["azf"] - }, - "application/vnd.airzip.filesecure.azs": { - "source": "iana", - "extensions": ["azs"] - }, - "application/vnd.amazon.ebook": { - "source": "apache", - "extensions": ["azw"] - }, - "application/vnd.amazon.mobi8-ebook": { - "source": "iana" - }, - "application/vnd.americandynamics.acc": { - "source": "iana", - "extensions": ["acc"] - }, - "application/vnd.amiga.ami": { - "source": "iana", - "extensions": ["ami"] - }, - "application/vnd.amundsen.maze+xml": { - "source": "iana" - }, - "application/vnd.android.package-archive": { - "source": "apache", - "compressible": false, - "extensions": ["apk"] - }, - "application/vnd.anki": { - "source": "iana" - }, - "application/vnd.anser-web-certificate-issue-initiation": { - "source": "iana", - "extensions": ["cii"] - }, - "application/vnd.anser-web-funds-transfer-initiation": { - "source": "apache", - "extensions": ["fti"] - }, - "application/vnd.antix.game-component": { - "source": "iana", - "extensions": ["atx"] - }, - "application/vnd.apache.thrift.binary": { - "source": "iana" - }, - "application/vnd.apache.thrift.compact": { - "source": "iana" - }, - "application/vnd.apache.thrift.json": { - "source": "iana" - }, - "application/vnd.api+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.apple.installer+xml": { - "source": "iana", - "extensions": ["mpkg"] - }, - "application/vnd.apple.mpegurl": { - "source": "iana", - "extensions": ["m3u8"] - }, - "application/vnd.apple.pkpass": { - "compressible": false, - "extensions": ["pkpass"] - }, - "application/vnd.arastra.swi": { - "source": "iana" - }, - "application/vnd.aristanetworks.swi": { - "source": "iana", - "extensions": ["swi"] - }, - "application/vnd.artsquare": { - "source": "iana" - }, - "application/vnd.astraea-software.iota": { - "source": "iana", - "extensions": ["iota"] - }, - "application/vnd.audiograph": { - "source": "iana", - "extensions": ["aep"] - }, - "application/vnd.autopackage": { - "source": "iana" - }, - "application/vnd.avistar+xml": { - "source": "iana" - }, - "application/vnd.balsamiq.bmml+xml": { - "source": "iana" - }, - "application/vnd.balsamiq.bmpr": { - "source": "iana" - }, - "application/vnd.bekitzur-stech+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.biopax.rdf+xml": { - "source": "iana" - }, - "application/vnd.blueice.multipass": { - "source": "iana", - "extensions": ["mpm"] - }, - "application/vnd.bluetooth.ep.oob": { - "source": "iana" - }, - "application/vnd.bluetooth.le.oob": { - "source": "iana" - }, - "application/vnd.bmi": { - "source": "iana", - "extensions": ["bmi"] - }, - "application/vnd.businessobjects": { - "source": "iana", - "extensions": ["rep"] - }, - "application/vnd.cab-jscript": { - "source": "iana" - }, - "application/vnd.canon-cpdl": { - "source": "iana" - }, - "application/vnd.canon-lips": { - "source": "iana" - }, - "application/vnd.cendio.thinlinc.clientconf": { - "source": "iana" - }, - "application/vnd.century-systems.tcp_stream": { - "source": "iana" - }, - "application/vnd.chemdraw+xml": { - "source": "iana", - "extensions": ["cdxml"] - }, - "application/vnd.chess-pgn": { - "source": "iana" - }, - "application/vnd.chipnuts.karaoke-mmd": { - "source": "iana", - "extensions": ["mmd"] - }, - "application/vnd.cinderella": { - "source": "iana", - "extensions": ["cdy"] - }, - "application/vnd.cirpack.isdn-ext": { - "source": "iana" - }, - "application/vnd.citationstyles.style+xml": { - "source": "iana" - }, - "application/vnd.claymore": { - "source": "iana", - "extensions": ["cla"] - }, - "application/vnd.cloanto.rp9": { - "source": "iana", - "extensions": ["rp9"] - }, - "application/vnd.clonk.c4group": { - "source": "iana", - "extensions": ["c4g","c4d","c4f","c4p","c4u"] - }, - "application/vnd.cluetrust.cartomobile-config": { - "source": "iana", - "extensions": ["c11amc"] - }, - "application/vnd.cluetrust.cartomobile-config-pkg": { - "source": "iana", - "extensions": ["c11amz"] - }, - "application/vnd.coffeescript": { - "source": "iana" - }, - "application/vnd.collection+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.doc+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.next+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.comicbook+zip": { - "source": "iana" - }, - "application/vnd.commerce-battelle": { - "source": "iana" - }, - "application/vnd.commonspace": { - "source": "iana", - "extensions": ["csp"] - }, - "application/vnd.contact.cmsg": { - "source": "iana", - "extensions": ["cdbcmsg"] - }, - "application/vnd.coreos.ignition+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cosmocaller": { - "source": "iana", - "extensions": ["cmc"] - }, - "application/vnd.crick.clicker": { - "source": "iana", - "extensions": ["clkx"] - }, - "application/vnd.crick.clicker.keyboard": { - "source": "iana", - "extensions": ["clkk"] - }, - "application/vnd.crick.clicker.palette": { - "source": "iana", - "extensions": ["clkp"] - }, - "application/vnd.crick.clicker.template": { - "source": "iana", - "extensions": ["clkt"] - }, - "application/vnd.crick.clicker.wordbank": { - "source": "iana", - "extensions": ["clkw"] - }, - "application/vnd.criticaltools.wbs+xml": { - "source": "iana", - "extensions": ["wbs"] - }, - "application/vnd.ctc-posml": { - "source": "iana", - "extensions": ["pml"] - }, - "application/vnd.ctct.ws+xml": { - "source": "iana" - }, - "application/vnd.cups-pdf": { - "source": "iana" - }, - "application/vnd.cups-postscript": { - "source": "iana" - }, - "application/vnd.cups-ppd": { - "source": "iana", - "extensions": ["ppd"] - }, - "application/vnd.cups-raster": { - "source": "iana" - }, - "application/vnd.cups-raw": { - "source": "iana" - }, - "application/vnd.curl": { - "source": "iana" - }, - "application/vnd.curl.car": { - "source": "apache", - "extensions": ["car"] - }, - "application/vnd.curl.pcurl": { - "source": "apache", - "extensions": ["pcurl"] - }, - "application/vnd.cyan.dean.root+xml": { - "source": "iana" - }, - "application/vnd.cybank": { - "source": "iana" - }, - "application/vnd.d2l.coursepackage1p0+zip": { - "source": "iana" - }, - "application/vnd.dart": { - "source": "iana", - "compressible": true, - "extensions": ["dart"] - }, - "application/vnd.data-vision.rdz": { - "source": "iana", - "extensions": ["rdz"] - }, - "application/vnd.debian.binary-package": { - "source": "iana" - }, - "application/vnd.dece.data": { - "source": "iana", - "extensions": ["uvf","uvvf","uvd","uvvd"] - }, - "application/vnd.dece.ttml+xml": { - "source": "iana", - "extensions": ["uvt","uvvt"] - }, - "application/vnd.dece.unspecified": { - "source": "iana", - "extensions": ["uvx","uvvx"] - }, - "application/vnd.dece.zip": { - "source": "iana", - "extensions": ["uvz","uvvz"] - }, - "application/vnd.denovo.fcselayout-link": { - "source": "iana", - "extensions": ["fe_launch"] - }, - "application/vnd.desmume-movie": { - "source": "iana" - }, - "application/vnd.desmume.movie": { - "source": "apache" - }, - "application/vnd.dir-bi.plate-dl-nosuffix": { - "source": "iana" - }, - "application/vnd.dm.delegation+xml": { - "source": "iana" - }, - "application/vnd.dna": { - "source": "iana", - "extensions": ["dna"] - }, - "application/vnd.document+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.dolby.mlp": { - "source": "apache", - "extensions": ["mlp"] - }, - "application/vnd.dolby.mobile.1": { - "source": "iana" - }, - "application/vnd.dolby.mobile.2": { - "source": "iana" - }, - "application/vnd.doremir.scorecloud-binary-document": { - "source": "iana" - }, - "application/vnd.dpgraph": { - "source": "iana", - "extensions": ["dpg"] - }, - "application/vnd.dreamfactory": { - "source": "iana", - "extensions": ["dfac"] - }, - "application/vnd.drive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ds-keypoint": { - "source": "apache", - "extensions": ["kpxx"] - }, - "application/vnd.dtg.local": { - "source": "iana" - }, - "application/vnd.dtg.local.flash": { - "source": "iana" - }, - "application/vnd.dtg.local.html": { - "source": "iana" - }, - "application/vnd.dvb.ait": { - "source": "iana", - "extensions": ["ait"] - }, - "application/vnd.dvb.dvbj": { - "source": "iana" - }, - "application/vnd.dvb.esgcontainer": { - "source": "iana" - }, - "application/vnd.dvb.ipdcdftnotifaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess2": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgpdd": { - "source": "iana" - }, - "application/vnd.dvb.ipdcroaming": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-base": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-enhancement": { - "source": "iana" - }, - "application/vnd.dvb.notif-aggregate-root+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-container+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-generic+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-msglist+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-registration-request+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-registration-response+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-init+xml": { - "source": "iana" - }, - "application/vnd.dvb.pfr": { - "source": "iana" - }, - "application/vnd.dvb.service": { - "source": "iana", - "extensions": ["svc"] - }, - "application/vnd.dxr": { - "source": "iana" - }, - "application/vnd.dynageo": { - "source": "iana", - "extensions": ["geo"] - }, - "application/vnd.dzr": { - "source": "iana" - }, - "application/vnd.easykaraoke.cdgdownload": { - "source": "iana" - }, - "application/vnd.ecdis-update": { - "source": "iana" - }, - "application/vnd.ecowin.chart": { - "source": "iana", - "extensions": ["mag"] - }, - "application/vnd.ecowin.filerequest": { - "source": "iana" - }, - "application/vnd.ecowin.fileupdate": { - "source": "iana" - }, - "application/vnd.ecowin.series": { - "source": "iana" - }, - "application/vnd.ecowin.seriesrequest": { - "source": "iana" - }, - "application/vnd.ecowin.seriesupdate": { - "source": "iana" - }, - "application/vnd.emclient.accessrequest+xml": { - "source": "iana" - }, - "application/vnd.enliven": { - "source": "iana", - "extensions": ["nml"] - }, - "application/vnd.enphase.envoy": { - "source": "iana" - }, - "application/vnd.eprints.data+xml": { - "source": "iana" - }, - "application/vnd.epson.esf": { - "source": "iana", - "extensions": ["esf"] - }, - "application/vnd.epson.msf": { - "source": "iana", - "extensions": ["msf"] - }, - "application/vnd.epson.quickanime": { - "source": "iana", - "extensions": ["qam"] - }, - "application/vnd.epson.salt": { - "source": "iana", - "extensions": ["slt"] - }, - "application/vnd.epson.ssf": { - "source": "iana", - "extensions": ["ssf"] - }, - "application/vnd.ericsson.quickcall": { - "source": "iana" - }, - "application/vnd.espass-espass+zip": { - "source": "iana" - }, - "application/vnd.eszigno3+xml": { - "source": "iana", - "extensions": ["es3","et3"] - }, - "application/vnd.etsi.aoc+xml": { - "source": "iana" - }, - "application/vnd.etsi.asic-e+zip": { - "source": "iana" - }, - "application/vnd.etsi.asic-s+zip": { - "source": "iana" - }, - "application/vnd.etsi.cug+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvcommand+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvdiscovery+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvprofile+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-bc+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-cod+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-npvr+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvservice+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsync+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvueprofile+xml": { - "source": "iana" - }, - "application/vnd.etsi.mcid+xml": { - "source": "iana" - }, - "application/vnd.etsi.mheg5": { - "source": "iana" - }, - "application/vnd.etsi.overload-control-policy-dataset+xml": { - "source": "iana" - }, - "application/vnd.etsi.pstn+xml": { - "source": "iana" - }, - "application/vnd.etsi.sci+xml": { - "source": "iana" - }, - "application/vnd.etsi.simservs+xml": { - "source": "iana" - }, - "application/vnd.etsi.timestamp-token": { - "source": "iana" - }, - "application/vnd.etsi.tsl+xml": { - "source": "iana" - }, - "application/vnd.etsi.tsl.der": { - "source": "iana" - }, - "application/vnd.eudora.data": { - "source": "iana" - }, - "application/vnd.ezpix-album": { - "source": "iana", - "extensions": ["ez2"] - }, - "application/vnd.ezpix-package": { - "source": "iana", - "extensions": ["ez3"] - }, - "application/vnd.f-secure.mobile": { - "source": "iana" - }, - "application/vnd.fastcopy-disk-image": { - "source": "iana" - }, - "application/vnd.fdf": { - "source": "iana", - "extensions": ["fdf"] - }, - "application/vnd.fdsn.mseed": { - "source": "iana", - "extensions": ["mseed"] - }, - "application/vnd.fdsn.seed": { - "source": "iana", - "extensions": ["seed","dataless"] - }, - "application/vnd.ffsns": { - "source": "iana" - }, - "application/vnd.filmit.zfc": { - "source": "iana" - }, - "application/vnd.fints": { - "source": "iana" - }, - "application/vnd.firemonkeys.cloudcell": { - "source": "iana" - }, - "application/vnd.flographit": { - "source": "iana", - "extensions": ["gph"] - }, - "application/vnd.fluxtime.clip": { - "source": "iana", - "extensions": ["ftc"] - }, - "application/vnd.font-fontforge-sfd": { - "source": "iana" - }, - "application/vnd.framemaker": { - "source": "iana", - "extensions": ["fm","frame","maker","book"] - }, - "application/vnd.frogans.fnc": { - "source": "iana", - "extensions": ["fnc"] - }, - "application/vnd.frogans.ltf": { - "source": "iana", - "extensions": ["ltf"] - }, - "application/vnd.fsc.weblaunch": { - "source": "iana", - "extensions": ["fsc"] - }, - "application/vnd.fujitsu.oasys": { - "source": "iana", - "extensions": ["oas"] - }, - "application/vnd.fujitsu.oasys2": { - "source": "iana", - "extensions": ["oa2"] - }, - "application/vnd.fujitsu.oasys3": { - "source": "iana", - "extensions": ["oa3"] - }, - "application/vnd.fujitsu.oasysgp": { - "source": "iana", - "extensions": ["fg5"] - }, - "application/vnd.fujitsu.oasysprs": { - "source": "iana", - "extensions": ["bh2"] - }, - "application/vnd.fujixerox.art-ex": { - "source": "iana" - }, - "application/vnd.fujixerox.art4": { - "source": "iana" - }, - "application/vnd.fujixerox.ddd": { - "source": "iana", - "extensions": ["ddd"] - }, - "application/vnd.fujixerox.docuworks": { - "source": "iana", - "extensions": ["xdw"] - }, - "application/vnd.fujixerox.docuworks.binder": { - "source": "iana", - "extensions": ["xbd"] - }, - "application/vnd.fujixerox.docuworks.container": { - "source": "iana" - }, - "application/vnd.fujixerox.hbpl": { - "source": "iana" - }, - "application/vnd.fut-misnet": { - "source": "iana" - }, - "application/vnd.fuzzysheet": { - "source": "iana", - "extensions": ["fzs"] - }, - "application/vnd.genomatix.tuxedo": { - "source": "iana", - "extensions": ["txd"] - }, - "application/vnd.geo+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.geocube+xml": { - "source": "iana" - }, - "application/vnd.geogebra.file": { - "source": "iana", - "extensions": ["ggb"] - }, - "application/vnd.geogebra.tool": { - "source": "iana", - "extensions": ["ggt"] - }, - "application/vnd.geometry-explorer": { - "source": "iana", - "extensions": ["gex","gre"] - }, - "application/vnd.geonext": { - "source": "iana", - "extensions": ["gxt"] - }, - "application/vnd.geoplan": { - "source": "iana", - "extensions": ["g2w"] - }, - "application/vnd.geospace": { - "source": "iana", - "extensions": ["g3w"] - }, - "application/vnd.gerber": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt-response": { - "source": "iana" - }, - "application/vnd.gmx": { - "source": "iana", - "extensions": ["gmx"] - }, - "application/vnd.google-apps.document": { - "compressible": false, - "extensions": ["gdoc"] - }, - "application/vnd.google-apps.presentation": { - "compressible": false, - "extensions": ["gslides"] - }, - "application/vnd.google-apps.spreadsheet": { - "compressible": false, - "extensions": ["gsheet"] - }, - "application/vnd.google-earth.kml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["kml"] - }, - "application/vnd.google-earth.kmz": { - "source": "iana", - "compressible": false, - "extensions": ["kmz"] - }, - "application/vnd.gov.sk.e-form+xml": { - "source": "iana" - }, - "application/vnd.gov.sk.e-form+zip": { - "source": "iana" - }, - "application/vnd.gov.sk.xmldatacontainer+xml": { - "source": "iana" - }, - "application/vnd.grafeq": { - "source": "iana", - "extensions": ["gqf","gqs"] - }, - "application/vnd.gridmp": { - "source": "iana" - }, - "application/vnd.groove-account": { - "source": "iana", - "extensions": ["gac"] - }, - "application/vnd.groove-help": { - "source": "iana", - "extensions": ["ghf"] - }, - "application/vnd.groove-identity-message": { - "source": "iana", - "extensions": ["gim"] - }, - "application/vnd.groove-injector": { - "source": "iana", - "extensions": ["grv"] - }, - "application/vnd.groove-tool-message": { - "source": "iana", - "extensions": ["gtm"] - }, - "application/vnd.groove-tool-template": { - "source": "iana", - "extensions": ["tpl"] - }, - "application/vnd.groove-vcard": { - "source": "iana", - "extensions": ["vcg"] - }, - "application/vnd.hal+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hal+xml": { - "source": "iana", - "extensions": ["hal"] - }, - "application/vnd.handheld-entertainment+xml": { - "source": "iana", - "extensions": ["zmm"] - }, - "application/vnd.hbci": { - "source": "iana", - "extensions": ["hbci"] - }, - "application/vnd.hcl-bireports": { - "source": "iana" - }, - "application/vnd.hdt": { - "source": "iana" - }, - "application/vnd.heroku+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hhe.lesson-player": { - "source": "iana", - "extensions": ["les"] - }, - "application/vnd.hp-hpgl": { - "source": "iana", - "extensions": ["hpgl"] - }, - "application/vnd.hp-hpid": { - "source": "iana", - "extensions": ["hpid"] - }, - "application/vnd.hp-hps": { - "source": "iana", - "extensions": ["hps"] - }, - "application/vnd.hp-jlyt": { - "source": "iana", - "extensions": ["jlt"] - }, - "application/vnd.hp-pcl": { - "source": "iana", - "extensions": ["pcl"] - }, - "application/vnd.hp-pclxl": { - "source": "iana", - "extensions": ["pclxl"] - }, - "application/vnd.httphone": { - "source": "iana" - }, - "application/vnd.hydrostatix.sof-data": { - "source": "iana", - "extensions": ["sfd-hdstx"] - }, - "application/vnd.hyperdrive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hzn-3d-crossword": { - "source": "iana" - }, - "application/vnd.ibm.afplinedata": { - "source": "iana" - }, - "application/vnd.ibm.electronic-media": { - "source": "iana" - }, - "application/vnd.ibm.minipay": { - "source": "iana", - "extensions": ["mpy"] - }, - "application/vnd.ibm.modcap": { - "source": "iana", - "extensions": ["afp","listafp","list3820"] - }, - "application/vnd.ibm.rights-management": { - "source": "iana", - "extensions": ["irm"] - }, - "application/vnd.ibm.secure-container": { - "source": "iana", - "extensions": ["sc"] - }, - "application/vnd.iccprofile": { - "source": "iana", - "extensions": ["icc","icm"] - }, - "application/vnd.ieee.1905": { - "source": "iana" - }, - "application/vnd.igloader": { - "source": "iana", - "extensions": ["igl"] - }, - "application/vnd.immervision-ivp": { - "source": "iana", - "extensions": ["ivp"] - }, - "application/vnd.immervision-ivu": { - "source": "iana", - "extensions": ["ivu"] - }, - "application/vnd.ims.imsccv1p1": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p2": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p3": { - "source": "iana" - }, - "application/vnd.ims.lis.v2.result+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolconsumerprofile+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy.id+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings.simple+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.informedcontrol.rms+xml": { - "source": "iana" - }, - "application/vnd.informix-visionary": { - "source": "iana" - }, - "application/vnd.infotech.project": { - "source": "iana" - }, - "application/vnd.infotech.project+xml": { - "source": "iana" - }, - "application/vnd.innopath.wamp.notification": { - "source": "iana" - }, - "application/vnd.insors.igm": { - "source": "iana", - "extensions": ["igm"] - }, - "application/vnd.intercon.formnet": { - "source": "iana", - "extensions": ["xpw","xpx"] - }, - "application/vnd.intergeo": { - "source": "iana", - "extensions": ["i2g"] - }, - "application/vnd.intertrust.digibox": { - "source": "iana" - }, - "application/vnd.intertrust.nncp": { - "source": "iana" - }, - "application/vnd.intu.qbo": { - "source": "iana", - "extensions": ["qbo"] - }, - "application/vnd.intu.qfx": { - "source": "iana", - "extensions": ["qfx"] - }, - "application/vnd.iptc.g2.catalogitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.conceptitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.knowledgeitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.newsitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.newsmessage+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.packageitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.planningitem+xml": { - "source": "iana" - }, - "application/vnd.ipunplugged.rcprofile": { - "source": "iana", - "extensions": ["rcprofile"] - }, - "application/vnd.irepository.package+xml": { - "source": "iana", - "extensions": ["irp"] - }, - "application/vnd.is-xpr": { - "source": "iana", - "extensions": ["xpr"] - }, - "application/vnd.isac.fcs": { - "source": "iana", - "extensions": ["fcs"] - }, - "application/vnd.jam": { - "source": "iana", - "extensions": ["jam"] - }, - "application/vnd.japannet-directory-service": { - "source": "iana" - }, - "application/vnd.japannet-jpnstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-payment-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-registration": { - "source": "iana" - }, - "application/vnd.japannet-registration-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-setstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-verification": { - "source": "iana" - }, - "application/vnd.japannet-verification-wakeup": { - "source": "iana" - }, - "application/vnd.jcp.javame.midlet-rms": { - "source": "iana", - "extensions": ["rms"] - }, - "application/vnd.jisp": { - "source": "iana", - "extensions": ["jisp"] - }, - "application/vnd.joost.joda-archive": { - "source": "iana", - "extensions": ["joda"] - }, - "application/vnd.jsk.isdn-ngn": { - "source": "iana" - }, - "application/vnd.kahootz": { - "source": "iana", - "extensions": ["ktz","ktr"] - }, - "application/vnd.kde.karbon": { - "source": "iana", - "extensions": ["karbon"] - }, - "application/vnd.kde.kchart": { - "source": "iana", - "extensions": ["chrt"] - }, - "application/vnd.kde.kformula": { - "source": "iana", - "extensions": ["kfo"] - }, - "application/vnd.kde.kivio": { - "source": "iana", - "extensions": ["flw"] - }, - "application/vnd.kde.kontour": { - "source": "iana", - "extensions": ["kon"] - }, - "application/vnd.kde.kpresenter": { - "source": "iana", - "extensions": ["kpr","kpt"] - }, - "application/vnd.kde.kspread": { - "source": "iana", - "extensions": ["ksp"] - }, - "application/vnd.kde.kword": { - "source": "iana", - "extensions": ["kwd","kwt"] - }, - "application/vnd.kenameaapp": { - "source": "iana", - "extensions": ["htke"] - }, - "application/vnd.kidspiration": { - "source": "iana", - "extensions": ["kia"] - }, - "application/vnd.kinar": { - "source": "iana", - "extensions": ["kne","knp"] - }, - "application/vnd.koan": { - "source": "iana", - "extensions": ["skp","skd","skt","skm"] - }, - "application/vnd.kodak-descriptor": { - "source": "iana", - "extensions": ["sse"] - }, - "application/vnd.las.las+xml": { - "source": "iana", - "extensions": ["lasxml"] - }, - "application/vnd.liberty-request+xml": { - "source": "iana" - }, - "application/vnd.llamagraphics.life-balance.desktop": { - "source": "iana", - "extensions": ["lbd"] - }, - "application/vnd.llamagraphics.life-balance.exchange+xml": { - "source": "iana", - "extensions": ["lbe"] - }, - "application/vnd.lotus-1-2-3": { - "source": "iana", - "extensions": ["123"] - }, - "application/vnd.lotus-approach": { - "source": "iana", - "extensions": ["apr"] - }, - "application/vnd.lotus-freelance": { - "source": "iana", - "extensions": ["pre"] - }, - "application/vnd.lotus-notes": { - "source": "iana", - "extensions": ["nsf"] - }, - "application/vnd.lotus-organizer": { - "source": "iana", - "extensions": ["org"] - }, - "application/vnd.lotus-screencam": { - "source": "iana", - "extensions": ["scm"] - }, - "application/vnd.lotus-wordpro": { - "source": "iana", - "extensions": ["lwp"] - }, - "application/vnd.macports.portpkg": { - "source": "iana", - "extensions": ["portpkg"] - }, - "application/vnd.mapbox-vector-tile": { - "source": "iana" - }, - "application/vnd.marlin.drm.actiontoken+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.conftoken+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.license+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.mdcf": { - "source": "iana" - }, - "application/vnd.mason+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.maxmind.maxmind-db": { - "source": "iana" - }, - "application/vnd.mcd": { - "source": "iana", - "extensions": ["mcd"] - }, - "application/vnd.medcalcdata": { - "source": "iana", - "extensions": ["mc1"] - }, - "application/vnd.mediastation.cdkey": { - "source": "iana", - "extensions": ["cdkey"] - }, - "application/vnd.meridian-slingshot": { - "source": "iana" - }, - "application/vnd.mfer": { - "source": "iana", - "extensions": ["mwf"] - }, - "application/vnd.mfmp": { - "source": "iana", - "extensions": ["mfm"] - }, - "application/vnd.micro+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.micrografx.flo": { - "source": "iana", - "extensions": ["flo"] - }, - "application/vnd.micrografx.igx": { - "source": "iana", - "extensions": ["igx"] - }, - "application/vnd.microsoft.portable-executable": { - "source": "iana" - }, - "application/vnd.miele+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.mif": { - "source": "iana", - "extensions": ["mif"] - }, - "application/vnd.minisoft-hp3000-save": { - "source": "iana" - }, - "application/vnd.mitsubishi.misty-guard.trustweb": { - "source": "iana" - }, - "application/vnd.mobius.daf": { - "source": "iana", - "extensions": ["daf"] - }, - "application/vnd.mobius.dis": { - "source": "iana", - "extensions": ["dis"] - }, - "application/vnd.mobius.mbk": { - "source": "iana", - "extensions": ["mbk"] - }, - "application/vnd.mobius.mqy": { - "source": "iana", - "extensions": ["mqy"] - }, - "application/vnd.mobius.msl": { - "source": "iana", - "extensions": ["msl"] - }, - "application/vnd.mobius.plc": { - "source": "iana", - "extensions": ["plc"] - }, - "application/vnd.mobius.txf": { - "source": "iana", - "extensions": ["txf"] - }, - "application/vnd.mophun.application": { - "source": "iana", - "extensions": ["mpn"] - }, - "application/vnd.mophun.certificate": { - "source": "iana", - "extensions": ["mpc"] - }, - "application/vnd.motorola.flexsuite": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.adsi": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.fis": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.gotap": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.kmr": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.ttc": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.wem": { - "source": "iana" - }, - "application/vnd.motorola.iprm": { - "source": "iana" - }, - "application/vnd.mozilla.xul+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xul"] - }, - "application/vnd.ms-3mfdocument": { - "source": "iana" - }, - "application/vnd.ms-artgalry": { - "source": "iana", - "extensions": ["cil"] - }, - "application/vnd.ms-asf": { - "source": "iana" - }, - "application/vnd.ms-cab-compressed": { - "source": "iana", - "extensions": ["cab"] - }, - "application/vnd.ms-color.iccprofile": { - "source": "apache" - }, - "application/vnd.ms-excel": { - "source": "iana", - "compressible": false, - "extensions": ["xls","xlm","xla","xlc","xlt","xlw"] - }, - "application/vnd.ms-excel.addin.macroenabled.12": { - "source": "iana", - "extensions": ["xlam"] - }, - "application/vnd.ms-excel.sheet.binary.macroenabled.12": { - "source": "iana", - "extensions": ["xlsb"] - }, - "application/vnd.ms-excel.sheet.macroenabled.12": { - "source": "iana", - "extensions": ["xlsm"] - }, - "application/vnd.ms-excel.template.macroenabled.12": { - "source": "iana", - "extensions": ["xltm"] - }, - "application/vnd.ms-fontobject": { - "source": "iana", - "compressible": true, - "extensions": ["eot"] - }, - "application/vnd.ms-htmlhelp": { - "source": "iana", - "extensions": ["chm"] - }, - "application/vnd.ms-ims": { - "source": "iana", - "extensions": ["ims"] - }, - "application/vnd.ms-lrm": { - "source": "iana", - "extensions": ["lrm"] - }, - "application/vnd.ms-office.activex+xml": { - "source": "iana" - }, - "application/vnd.ms-officetheme": { - "source": "iana", - "extensions": ["thmx"] - }, - "application/vnd.ms-opentype": { - "source": "apache", - "compressible": true - }, - "application/vnd.ms-package.obfuscated-opentype": { - "source": "apache" - }, - "application/vnd.ms-pki.seccat": { - "source": "apache", - "extensions": ["cat"] - }, - "application/vnd.ms-pki.stl": { - "source": "apache", - "extensions": ["stl"] - }, - "application/vnd.ms-playready.initiator+xml": { - "source": "iana" - }, - "application/vnd.ms-powerpoint": { - "source": "iana", - "compressible": false, - "extensions": ["ppt","pps","pot"] - }, - "application/vnd.ms-powerpoint.addin.macroenabled.12": { - "source": "iana", - "extensions": ["ppam"] - }, - "application/vnd.ms-powerpoint.presentation.macroenabled.12": { - "source": "iana", - "extensions": ["pptm"] - }, - "application/vnd.ms-powerpoint.slide.macroenabled.12": { - "source": "iana", - "extensions": ["sldm"] - }, - "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { - "source": "iana", - "extensions": ["ppsm"] - }, - "application/vnd.ms-powerpoint.template.macroenabled.12": { - "source": "iana", - "extensions": ["potm"] - }, - "application/vnd.ms-printdevicecapabilities+xml": { - "source": "iana" - }, - "application/vnd.ms-printing.printticket+xml": { - "source": "apache" - }, - "application/vnd.ms-printschematicket+xml": { - "source": "iana" - }, - "application/vnd.ms-project": { - "source": "iana", - "extensions": ["mpp","mpt"] - }, - "application/vnd.ms-tnef": { - "source": "iana" - }, - "application/vnd.ms-windows.devicepairing": { - "source": "iana" - }, - "application/vnd.ms-windows.nwprinting.oob": { - "source": "iana" - }, - "application/vnd.ms-windows.printerpairing": { - "source": "iana" - }, - "application/vnd.ms-windows.wsd.oob": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-resp": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-resp": { - "source": "iana" - }, - "application/vnd.ms-word.document.macroenabled.12": { - "source": "iana", - "extensions": ["docm"] - }, - "application/vnd.ms-word.template.macroenabled.12": { - "source": "iana", - "extensions": ["dotm"] - }, - "application/vnd.ms-works": { - "source": "iana", - "extensions": ["wps","wks","wcm","wdb"] - }, - "application/vnd.ms-wpl": { - "source": "iana", - "extensions": ["wpl"] - }, - "application/vnd.ms-xpsdocument": { - "source": "iana", - "compressible": false, - "extensions": ["xps"] - }, - "application/vnd.msa-disk-image": { - "source": "iana" - }, - "application/vnd.mseq": { - "source": "iana", - "extensions": ["mseq"] - }, - "application/vnd.msign": { - "source": "iana" - }, - "application/vnd.multiad.creator": { - "source": "iana" - }, - "application/vnd.multiad.creator.cif": { - "source": "iana" - }, - "application/vnd.music-niff": { - "source": "iana" - }, - "application/vnd.musician": { - "source": "iana", - "extensions": ["mus"] - }, - "application/vnd.muvee.style": { - "source": "iana", - "extensions": ["msty"] - }, - "application/vnd.mynfc": { - "source": "iana", - "extensions": ["taglet"] - }, - "application/vnd.ncd.control": { - "source": "iana" - }, - "application/vnd.ncd.reference": { - "source": "iana" - }, - "application/vnd.nearst.inv+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.nervana": { - "source": "iana" - }, - "application/vnd.netfpx": { - "source": "iana" - }, - "application/vnd.neurolanguage.nlu": { - "source": "iana", - "extensions": ["nlu"] - }, - "application/vnd.nintendo.nitro.rom": { - "source": "iana" - }, - "application/vnd.nintendo.snes.rom": { - "source": "iana" - }, - "application/vnd.nitf": { - "source": "iana", - "extensions": ["ntf","nitf"] - }, - "application/vnd.noblenet-directory": { - "source": "iana", - "extensions": ["nnd"] - }, - "application/vnd.noblenet-sealer": { - "source": "iana", - "extensions": ["nns"] - }, - "application/vnd.noblenet-web": { - "source": "iana", - "extensions": ["nnw"] - }, - "application/vnd.nokia.catalogs": { - "source": "iana" - }, - "application/vnd.nokia.conml+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.conml+xml": { - "source": "iana" - }, - "application/vnd.nokia.iptv.config+xml": { - "source": "iana" - }, - "application/vnd.nokia.isds-radio-presets": { - "source": "iana" - }, - "application/vnd.nokia.landmark+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.landmark+xml": { - "source": "iana" - }, - "application/vnd.nokia.landmarkcollection+xml": { - "source": "iana" - }, - "application/vnd.nokia.n-gage.ac+xml": { - "source": "iana" - }, - "application/vnd.nokia.n-gage.data": { - "source": "iana", - "extensions": ["ngdat"] - }, - "application/vnd.nokia.n-gage.symbian.install": { - "source": "iana", - "extensions": ["n-gage"] - }, - "application/vnd.nokia.ncd": { - "source": "iana" - }, - "application/vnd.nokia.pcd+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.pcd+xml": { - "source": "iana" - }, - "application/vnd.nokia.radio-preset": { - "source": "iana", - "extensions": ["rpst"] - }, - "application/vnd.nokia.radio-presets": { - "source": "iana", - "extensions": ["rpss"] - }, - "application/vnd.novadigm.edm": { - "source": "iana", - "extensions": ["edm"] - }, - "application/vnd.novadigm.edx": { - "source": "iana", - "extensions": ["edx"] - }, - "application/vnd.novadigm.ext": { - "source": "iana", - "extensions": ["ext"] - }, - "application/vnd.ntt-local.content-share": { - "source": "iana" - }, - "application/vnd.ntt-local.file-transfer": { - "source": "iana" - }, - "application/vnd.ntt-local.ogw_remote-access": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_remote": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_tcp_stream": { - "source": "iana" - }, - "application/vnd.oasis.opendocument.chart": { - "source": "iana", - "extensions": ["odc"] - }, - "application/vnd.oasis.opendocument.chart-template": { - "source": "iana", - "extensions": ["otc"] - }, - "application/vnd.oasis.opendocument.database": { - "source": "iana", - "extensions": ["odb"] - }, - "application/vnd.oasis.opendocument.formula": { - "source": "iana", - "extensions": ["odf"] - }, - "application/vnd.oasis.opendocument.formula-template": { - "source": "iana", - "extensions": ["odft"] - }, - "application/vnd.oasis.opendocument.graphics": { - "source": "iana", - "compressible": false, - "extensions": ["odg"] - }, - "application/vnd.oasis.opendocument.graphics-template": { - "source": "iana", - "extensions": ["otg"] - }, - "application/vnd.oasis.opendocument.image": { - "source": "iana", - "extensions": ["odi"] - }, - "application/vnd.oasis.opendocument.image-template": { - "source": "iana", - "extensions": ["oti"] - }, - "application/vnd.oasis.opendocument.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["odp"] - }, - "application/vnd.oasis.opendocument.presentation-template": { - "source": "iana", - "extensions": ["otp"] - }, - "application/vnd.oasis.opendocument.spreadsheet": { - "source": "iana", - "compressible": false, - "extensions": ["ods"] - }, - "application/vnd.oasis.opendocument.spreadsheet-template": { - "source": "iana", - "extensions": ["ots"] - }, - "application/vnd.oasis.opendocument.text": { - "source": "iana", - "compressible": false, - "extensions": ["odt"] - }, - "application/vnd.oasis.opendocument.text-master": { - "source": "iana", - "extensions": ["odm"] - }, - "application/vnd.oasis.opendocument.text-template": { - "source": "iana", - "extensions": ["ott"] - }, - "application/vnd.oasis.opendocument.text-web": { - "source": "iana", - "extensions": ["oth"] - }, - "application/vnd.obn": { - "source": "iana" - }, - "application/vnd.oftn.l10n+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.contentaccessdownload+xml": { - "source": "iana" - }, - "application/vnd.oipf.contentaccessstreaming+xml": { - "source": "iana" - }, - "application/vnd.oipf.cspg-hexbinary": { - "source": "iana" - }, - "application/vnd.oipf.dae.svg+xml": { - "source": "iana" - }, - "application/vnd.oipf.dae.xhtml+xml": { - "source": "iana" - }, - "application/vnd.oipf.mippvcontrolmessage+xml": { - "source": "iana" - }, - "application/vnd.oipf.pae.gem": { - "source": "iana" - }, - "application/vnd.oipf.spdiscovery+xml": { - "source": "iana" - }, - "application/vnd.oipf.spdlist+xml": { - "source": "iana" - }, - "application/vnd.oipf.ueprofile+xml": { - "source": "iana" - }, - "application/vnd.oipf.userprofile+xml": { - "source": "iana" - }, - "application/vnd.olpc-sugar": { - "source": "iana", - "extensions": ["xo"] - }, - "application/vnd.oma-scws-config": { - "source": "iana" - }, - "application/vnd.oma-scws-http-request": { - "source": "iana" - }, - "application/vnd.oma-scws-http-response": { - "source": "iana" - }, - "application/vnd.oma.bcast.associated-procedure-parameter+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.drm-trigger+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.imd+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.ltkm": { - "source": "iana" - }, - "application/vnd.oma.bcast.notification+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.provisioningtrigger": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgboot": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdd+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdu": { - "source": "iana" - }, - "application/vnd.oma.bcast.simple-symbol-container": { - "source": "iana" - }, - "application/vnd.oma.bcast.smartcard-trigger+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.sprov+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.stkm": { - "source": "iana" - }, - "application/vnd.oma.cab-address-book+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-feature-handler+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-pcc+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-subs-invite+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-user-prefs+xml": { - "source": "iana" - }, - "application/vnd.oma.dcd": { - "source": "iana" - }, - "application/vnd.oma.dcdc": { - "source": "iana" - }, - "application/vnd.oma.dd2+xml": { - "source": "iana", - "extensions": ["dd2"] - }, - "application/vnd.oma.drm.risd+xml": { - "source": "iana" - }, - "application/vnd.oma.group-usage-list+xml": { - "source": "iana" - }, - "application/vnd.oma.lwm2m+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.lwm2m+tlv": { - "source": "iana" - }, - "application/vnd.oma.pal+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.detailed-progress-report+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.final-report+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.groups+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.invocation-descriptor+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.optimized-progress-report+xml": { - "source": "iana" - }, - "application/vnd.oma.push": { - "source": "iana" - }, - "application/vnd.oma.scidm.messages+xml": { - "source": "iana" - }, - "application/vnd.oma.xcap-directory+xml": { - "source": "iana" - }, - "application/vnd.omads-email+xml": { - "source": "iana" - }, - "application/vnd.omads-file+xml": { - "source": "iana" - }, - "application/vnd.omads-folder+xml": { - "source": "iana" - }, - "application/vnd.omaloc-supl-init": { - "source": "iana" - }, - "application/vnd.onepager": { - "source": "iana" - }, - "application/vnd.openblox.game+xml": { - "source": "iana" - }, - "application/vnd.openblox.game-binary": { - "source": "iana" - }, - "application/vnd.openeye.oeb": { - "source": "iana" - }, - "application/vnd.openofficeorg.extension": { - "source": "apache", - "extensions": ["oxt"] - }, - "application/vnd.openxmlformats-officedocument.custom-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawing+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.extended-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["pptx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide": { - "source": "iana", - "extensions": ["sldx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { - "source": "iana", - "extensions": ["ppsx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.template": { - "source": "apache", - "extensions": ["potx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { - "source": "iana", - "compressible": false, - "extensions": ["xlsx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { - "source": "apache", - "extensions": ["xltx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.theme+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.themeoverride+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.vmldrawing": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { - "source": "iana", - "compressible": false, - "extensions": ["docx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { - "source": "apache", - "extensions": ["dotx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.core-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.relationships+xml": { - "source": "iana" - }, - "application/vnd.oracle.resource+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.orange.indata": { - "source": "iana" - }, - "application/vnd.osa.netdeploy": { - "source": "iana" - }, - "application/vnd.osgeo.mapguide.package": { - "source": "iana", - "extensions": ["mgp"] - }, - "application/vnd.osgi.bundle": { - "source": "iana" - }, - "application/vnd.osgi.dp": { - "source": "iana", - "extensions": ["dp"] - }, - "application/vnd.osgi.subsystem": { - "source": "iana", - "extensions": ["esa"] - }, - "application/vnd.otps.ct-kip+xml": { - "source": "iana" - }, - "application/vnd.oxli.countgraph": { - "source": "iana" - }, - "application/vnd.pagerduty+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.palm": { - "source": "iana", - "extensions": ["pdb","pqa","oprc"] - }, - "application/vnd.panoply": { - "source": "iana" - }, - "application/vnd.paos+xml": { - "source": "iana" - }, - "application/vnd.paos.xml": { - "source": "apache" - }, - "application/vnd.pawaafile": { - "source": "iana", - "extensions": ["paw"] - }, - "application/vnd.pcos": { - "source": "iana" - }, - "application/vnd.pg.format": { - "source": "iana", - "extensions": ["str"] - }, - "application/vnd.pg.osasli": { - "source": "iana", - "extensions": ["ei6"] - }, - "application/vnd.piaccess.application-licence": { - "source": "iana" - }, - "application/vnd.picsel": { - "source": "iana", - "extensions": ["efif"] - }, - "application/vnd.pmi.widget": { - "source": "iana", - "extensions": ["wg"] - }, - "application/vnd.poc.group-advertisement+xml": { - "source": "iana" - }, - "application/vnd.pocketlearn": { - "source": "iana", - "extensions": ["plf"] - }, - "application/vnd.powerbuilder6": { - "source": "iana", - "extensions": ["pbd"] - }, - "application/vnd.powerbuilder6-s": { - "source": "iana" - }, - "application/vnd.powerbuilder7": { - "source": "iana" - }, - "application/vnd.powerbuilder7-s": { - "source": "iana" - }, - "application/vnd.powerbuilder75": { - "source": "iana" - }, - "application/vnd.powerbuilder75-s": { - "source": "iana" - }, - "application/vnd.preminet": { - "source": "iana" - }, - "application/vnd.previewsystems.box": { - "source": "iana", - "extensions": ["box"] - }, - "application/vnd.proteus.magazine": { - "source": "iana", - "extensions": ["mgz"] - }, - "application/vnd.publishare-delta-tree": { - "source": "iana", - "extensions": ["qps"] - }, - "application/vnd.pvi.ptid1": { - "source": "iana", - "extensions": ["ptid"] - }, - "application/vnd.pwg-multiplexed": { - "source": "iana" - }, - "application/vnd.pwg-xhtml-print+xml": { - "source": "iana" - }, - "application/vnd.qualcomm.brew-app-res": { - "source": "iana" - }, - "application/vnd.quarantainenet": { - "source": "iana" - }, - "application/vnd.quark.quarkxpress": { - "source": "iana", - "extensions": ["qxd","qxt","qwd","qwt","qxl","qxb"] - }, - "application/vnd.quobject-quoxdocument": { - "source": "iana" - }, - "application/vnd.radisys.moml+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-conf+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-conn+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-dialog+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-stream+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-conf+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-base+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-fax-detect+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-group+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-speech+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-transform+xml": { - "source": "iana" - }, - "application/vnd.rainstor.data": { - "source": "iana" - }, - "application/vnd.rapid": { - "source": "iana" - }, - "application/vnd.rar": { - "source": "iana" - }, - "application/vnd.realvnc.bed": { - "source": "iana", - "extensions": ["bed"] - }, - "application/vnd.recordare.musicxml": { - "source": "iana", - "extensions": ["mxl"] - }, - "application/vnd.recordare.musicxml+xml": { - "source": "iana", - "extensions": ["musicxml"] - }, - "application/vnd.renlearn.rlprint": { - "source": "iana" - }, - "application/vnd.rig.cryptonote": { - "source": "iana", - "extensions": ["cryptonote"] - }, - "application/vnd.rim.cod": { - "source": "apache", - "extensions": ["cod"] - }, - "application/vnd.rn-realmedia": { - "source": "apache", - "extensions": ["rm"] - }, - "application/vnd.rn-realmedia-vbr": { - "source": "apache", - "extensions": ["rmvb"] - }, - "application/vnd.route66.link66+xml": { - "source": "iana", - "extensions": ["link66"] - }, - "application/vnd.rs-274x": { - "source": "iana" - }, - "application/vnd.ruckus.download": { - "source": "iana" - }, - "application/vnd.s3sms": { - "source": "iana" - }, - "application/vnd.sailingtracker.track": { - "source": "iana", - "extensions": ["st"] - }, - "application/vnd.sbm.cid": { - "source": "iana" - }, - "application/vnd.sbm.mid2": { - "source": "iana" - }, - "application/vnd.scribus": { - "source": "iana" - }, - "application/vnd.sealed.3df": { - "source": "iana" - }, - "application/vnd.sealed.csf": { - "source": "iana" - }, - "application/vnd.sealed.doc": { - "source": "iana" - }, - "application/vnd.sealed.eml": { - "source": "iana" - }, - "application/vnd.sealed.mht": { - "source": "iana" - }, - "application/vnd.sealed.net": { - "source": "iana" - }, - "application/vnd.sealed.ppt": { - "source": "iana" - }, - "application/vnd.sealed.tiff": { - "source": "iana" - }, - "application/vnd.sealed.xls": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.html": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.pdf": { - "source": "iana" - }, - "application/vnd.seemail": { - "source": "iana", - "extensions": ["see"] - }, - "application/vnd.sema": { - "source": "iana", - "extensions": ["sema"] - }, - "application/vnd.semd": { - "source": "iana", - "extensions": ["semd"] - }, - "application/vnd.semf": { - "source": "iana", - "extensions": ["semf"] - }, - "application/vnd.shana.informed.formdata": { - "source": "iana", - "extensions": ["ifm"] - }, - "application/vnd.shana.informed.formtemplate": { - "source": "iana", - "extensions": ["itp"] - }, - "application/vnd.shana.informed.interchange": { - "source": "iana", - "extensions": ["iif"] - }, - "application/vnd.shana.informed.package": { - "source": "iana", - "extensions": ["ipk"] - }, - "application/vnd.simtech-mindmapper": { - "source": "iana", - "extensions": ["twd","twds"] - }, - "application/vnd.siren+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.smaf": { - "source": "iana", - "extensions": ["mmf"] - }, - "application/vnd.smart.notebook": { - "source": "iana" - }, - "application/vnd.smart.teacher": { - "source": "iana", - "extensions": ["teacher"] - }, - "application/vnd.software602.filler.form+xml": { - "source": "iana" - }, - "application/vnd.software602.filler.form-xml-zip": { - "source": "iana" - }, - "application/vnd.solent.sdkm+xml": { - "source": "iana", - "extensions": ["sdkm","sdkd"] - }, - "application/vnd.spotfire.dxp": { - "source": "iana", - "extensions": ["dxp"] - }, - "application/vnd.spotfire.sfs": { - "source": "iana", - "extensions": ["sfs"] - }, - "application/vnd.sss-cod": { - "source": "iana" - }, - "application/vnd.sss-dtf": { - "source": "iana" - }, - "application/vnd.sss-ntf": { - "source": "iana" - }, - "application/vnd.stardivision.calc": { - "source": "apache", - "extensions": ["sdc"] - }, - "application/vnd.stardivision.draw": { - "source": "apache", - "extensions": ["sda"] - }, - "application/vnd.stardivision.impress": { - "source": "apache", - "extensions": ["sdd"] - }, - "application/vnd.stardivision.math": { - "source": "apache", - "extensions": ["smf"] - }, - "application/vnd.stardivision.writer": { - "source": "apache", - "extensions": ["sdw","vor"] - }, - "application/vnd.stardivision.writer-global": { - "source": "apache", - "extensions": ["sgl"] - }, - "application/vnd.stepmania.package": { - "source": "iana", - "extensions": ["smzip"] - }, - "application/vnd.stepmania.stepchart": { - "source": "iana", - "extensions": ["sm"] - }, - "application/vnd.street-stream": { - "source": "iana" - }, - "application/vnd.sun.wadl+xml": { - "source": "iana" - }, - "application/vnd.sun.xml.calc": { - "source": "apache", - "extensions": ["sxc"] - }, - "application/vnd.sun.xml.calc.template": { - "source": "apache", - "extensions": ["stc"] - }, - "application/vnd.sun.xml.draw": { - "source": "apache", - "extensions": ["sxd"] - }, - "application/vnd.sun.xml.draw.template": { - "source": "apache", - "extensions": ["std"] - }, - "application/vnd.sun.xml.impress": { - "source": "apache", - "extensions": ["sxi"] - }, - "application/vnd.sun.xml.impress.template": { - "source": "apache", - "extensions": ["sti"] - }, - "application/vnd.sun.xml.math": { - "source": "apache", - "extensions": ["sxm"] - }, - "application/vnd.sun.xml.writer": { - "source": "apache", - "extensions": ["sxw"] - }, - "application/vnd.sun.xml.writer.global": { - "source": "apache", - "extensions": ["sxg"] - }, - "application/vnd.sun.xml.writer.template": { - "source": "apache", - "extensions": ["stw"] - }, - "application/vnd.sus-calendar": { - "source": "iana", - "extensions": ["sus","susp"] - }, - "application/vnd.svd": { - "source": "iana", - "extensions": ["svd"] - }, - "application/vnd.swiftview-ics": { - "source": "iana" - }, - "application/vnd.symbian.install": { - "source": "apache", - "extensions": ["sis","sisx"] - }, - "application/vnd.syncml+xml": { - "source": "iana", - "extensions": ["xsm"] - }, - "application/vnd.syncml.dm+wbxml": { - "source": "iana", - "extensions": ["bdm"] - }, - "application/vnd.syncml.dm+xml": { - "source": "iana", - "extensions": ["xdm"] - }, - "application/vnd.syncml.dm.notification": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+xml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+xml": { - "source": "iana" - }, - "application/vnd.syncml.ds.notification": { - "source": "iana" - }, - "application/vnd.tao.intent-module-archive": { - "source": "iana", - "extensions": ["tao"] - }, - "application/vnd.tcpdump.pcap": { - "source": "iana", - "extensions": ["pcap","cap","dmp"] - }, - "application/vnd.tmd.mediaflex.api+xml": { - "source": "iana" - }, - "application/vnd.tml": { - "source": "iana" - }, - "application/vnd.tmobile-livetv": { - "source": "iana", - "extensions": ["tmo"] - }, - "application/vnd.trid.tpt": { - "source": "iana", - "extensions": ["tpt"] - }, - "application/vnd.triscape.mxs": { - "source": "iana", - "extensions": ["mxs"] - }, - "application/vnd.trueapp": { - "source": "iana", - "extensions": ["tra"] - }, - "application/vnd.truedoc": { - "source": "iana" - }, - "application/vnd.ubisoft.webplayer": { - "source": "iana" - }, - "application/vnd.ufdl": { - "source": "iana", - "extensions": ["ufd","ufdl"] - }, - "application/vnd.uiq.theme": { - "source": "iana", - "extensions": ["utz"] - }, - "application/vnd.umajin": { - "source": "iana", - "extensions": ["umj"] - }, - "application/vnd.unity": { - "source": "iana", - "extensions": ["unityweb"] - }, - "application/vnd.uoml+xml": { - "source": "iana", - "extensions": ["uoml"] - }, - "application/vnd.uplanet.alert": { - "source": "iana" - }, - "application/vnd.uplanet.alert-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.channel": { - "source": "iana" - }, - "application/vnd.uplanet.channel-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.list": { - "source": "iana" - }, - "application/vnd.uplanet.list-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.signal": { - "source": "iana" - }, - "application/vnd.uri-map": { - "source": "iana" - }, - "application/vnd.valve.source.material": { - "source": "iana" - }, - "application/vnd.vcx": { - "source": "iana", - "extensions": ["vcx"] - }, - "application/vnd.vd-study": { - "source": "iana" - }, - "application/vnd.vectorworks": { - "source": "iana" - }, - "application/vnd.vel+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.verimatrix.vcas": { - "source": "iana" - }, - "application/vnd.vidsoft.vidconference": { - "source": "iana" - }, - "application/vnd.visio": { - "source": "iana", - "extensions": ["vsd","vst","vss","vsw"] - }, - "application/vnd.visionary": { - "source": "iana", - "extensions": ["vis"] - }, - "application/vnd.vividence.scriptfile": { - "source": "iana" - }, - "application/vnd.vsf": { - "source": "iana", - "extensions": ["vsf"] - }, - "application/vnd.wap.sic": { - "source": "iana" - }, - "application/vnd.wap.slc": { - "source": "iana" - }, - "application/vnd.wap.wbxml": { - "source": "iana", - "extensions": ["wbxml"] - }, - "application/vnd.wap.wmlc": { - "source": "iana", - "extensions": ["wmlc"] - }, - "application/vnd.wap.wmlscriptc": { - "source": "iana", - "extensions": ["wmlsc"] - }, - "application/vnd.webturbo": { - "source": "iana", - "extensions": ["wtb"] - }, - "application/vnd.wfa.p2p": { - "source": "iana" - }, - "application/vnd.wfa.wsc": { - "source": "iana" - }, - "application/vnd.windows.devicepairing": { - "source": "iana" - }, - "application/vnd.wmc": { - "source": "iana" - }, - "application/vnd.wmf.bootstrap": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica.package": { - "source": "iana" - }, - "application/vnd.wolfram.player": { - "source": "iana", - "extensions": ["nbp"] - }, - "application/vnd.wordperfect": { - "source": "iana", - "extensions": ["wpd"] - }, - "application/vnd.wqd": { - "source": "iana", - "extensions": ["wqd"] - }, - "application/vnd.wrq-hp3000-labelled": { - "source": "iana" - }, - "application/vnd.wt.stf": { - "source": "iana", - "extensions": ["stf"] - }, - "application/vnd.wv.csp+wbxml": { - "source": "iana" - }, - "application/vnd.wv.csp+xml": { - "source": "iana" - }, - "application/vnd.wv.ssp+xml": { - "source": "iana" - }, - "application/vnd.xacml+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.xara": { - "source": "iana", - "extensions": ["xar"] - }, - "application/vnd.xfdl": { - "source": "iana", - "extensions": ["xfdl"] - }, - "application/vnd.xfdl.webform": { - "source": "iana" - }, - "application/vnd.xmi+xml": { - "source": "iana" - }, - "application/vnd.xmpie.cpkg": { - "source": "iana" - }, - "application/vnd.xmpie.dpkg": { - "source": "iana" - }, - "application/vnd.xmpie.plan": { - "source": "iana" - }, - "application/vnd.xmpie.ppkg": { - "source": "iana" - }, - "application/vnd.xmpie.xlim": { - "source": "iana" - }, - "application/vnd.yamaha.hv-dic": { - "source": "iana", - "extensions": ["hvd"] - }, - "application/vnd.yamaha.hv-script": { - "source": "iana", - "extensions": ["hvs"] - }, - "application/vnd.yamaha.hv-voice": { - "source": "iana", - "extensions": ["hvp"] - }, - "application/vnd.yamaha.openscoreformat": { - "source": "iana", - "extensions": ["osf"] - }, - "application/vnd.yamaha.openscoreformat.osfpvg+xml": { - "source": "iana", - "extensions": ["osfpvg"] - }, - "application/vnd.yamaha.remote-setup": { - "source": "iana" - }, - "application/vnd.yamaha.smaf-audio": { - "source": "iana", - "extensions": ["saf"] - }, - "application/vnd.yamaha.smaf-phrase": { - "source": "iana", - "extensions": ["spf"] - }, - "application/vnd.yamaha.through-ngn": { - "source": "iana" - }, - "application/vnd.yamaha.tunnel-udpencap": { - "source": "iana" - }, - "application/vnd.yaoweme": { - "source": "iana" - }, - "application/vnd.yellowriver-custom-menu": { - "source": "iana", - "extensions": ["cmp"] - }, - "application/vnd.zul": { - "source": "iana", - "extensions": ["zir","zirz"] - }, - "application/vnd.zzazz.deck+xml": { - "source": "iana", - "extensions": ["zaz"] - }, - "application/voicexml+xml": { - "source": "iana", - "extensions": ["vxml"] - }, - "application/vq-rtcpxr": { - "source": "iana" - }, - "application/watcherinfo+xml": { - "source": "iana" - }, - "application/whoispp-query": { - "source": "iana" - }, - "application/whoispp-response": { - "source": "iana" - }, - "application/widget": { - "source": "iana", - "extensions": ["wgt"] - }, - "application/winhlp": { - "source": "apache", - "extensions": ["hlp"] - }, - "application/wita": { - "source": "iana" - }, - "application/wordperfect5.1": { - "source": "iana" - }, - "application/wsdl+xml": { - "source": "iana", - "extensions": ["wsdl"] - }, - "application/wspolicy+xml": { - "source": "iana", - "extensions": ["wspolicy"] - }, - "application/x-7z-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["7z"] - }, - "application/x-abiword": { - "source": "apache", - "extensions": ["abw"] - }, - "application/x-ace-compressed": { - "source": "apache", - "extensions": ["ace"] - }, - "application/x-amf": { - "source": "apache" - }, - "application/x-apple-diskimage": { - "source": "apache", - "extensions": ["dmg"] - }, - "application/x-authorware-bin": { - "source": "apache", - "extensions": ["aab","x32","u32","vox"] - }, - "application/x-authorware-map": { - "source": "apache", - "extensions": ["aam"] - }, - "application/x-authorware-seg": { - "source": "apache", - "extensions": ["aas"] - }, - "application/x-bcpio": { - "source": "apache", - "extensions": ["bcpio"] - }, - "application/x-bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/x-bittorrent": { - "source": "apache", - "extensions": ["torrent"] - }, - "application/x-blorb": { - "source": "apache", - "extensions": ["blb","blorb"] - }, - "application/x-bzip": { - "source": "apache", - "compressible": false, - "extensions": ["bz"] - }, - "application/x-bzip2": { - "source": "apache", - "compressible": false, - "extensions": ["bz2","boz"] - }, - "application/x-cbr": { - "source": "apache", - "extensions": ["cbr","cba","cbt","cbz","cb7"] - }, - "application/x-cdlink": { - "source": "apache", - "extensions": ["vcd"] - }, - "application/x-cfs-compressed": { - "source": "apache", - "extensions": ["cfs"] - }, - "application/x-chat": { - "source": "apache", - "extensions": ["chat"] - }, - "application/x-chess-pgn": { - "source": "apache", - "extensions": ["pgn"] - }, - "application/x-chrome-extension": { - "extensions": ["crx"] - }, - "application/x-cocoa": { - "source": "nginx", - "extensions": ["cco"] - }, - "application/x-compress": { - "source": "apache" - }, - "application/x-conference": { - "source": "apache", - "extensions": ["nsc"] - }, - "application/x-cpio": { - "source": "apache", - "extensions": ["cpio"] - }, - "application/x-csh": { - "source": "apache", - "extensions": ["csh"] - }, - "application/x-deb": { - "compressible": false - }, - "application/x-debian-package": { - "source": "apache", - "extensions": ["deb","udeb"] - }, - "application/x-dgc-compressed": { - "source": "apache", - "extensions": ["dgc"] - }, - "application/x-director": { - "source": "apache", - "extensions": ["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"] - }, - "application/x-doom": { - "source": "apache", - "extensions": ["wad"] - }, - "application/x-dtbncx+xml": { - "source": "apache", - "extensions": ["ncx"] - }, - "application/x-dtbook+xml": { - "source": "apache", - "extensions": ["dtb"] - }, - "application/x-dtbresource+xml": { - "source": "apache", - "extensions": ["res"] - }, - "application/x-dvi": { - "source": "apache", - "compressible": false, - "extensions": ["dvi"] - }, - "application/x-envoy": { - "source": "apache", - "extensions": ["evy"] - }, - "application/x-eva": { - "source": "apache", - "extensions": ["eva"] - }, - "application/x-font-bdf": { - "source": "apache", - "extensions": ["bdf"] - }, - "application/x-font-dos": { - "source": "apache" - }, - "application/x-font-framemaker": { - "source": "apache" - }, - "application/x-font-ghostscript": { - "source": "apache", - "extensions": ["gsf"] - }, - "application/x-font-libgrx": { - "source": "apache" - }, - "application/x-font-linux-psf": { - "source": "apache", - "extensions": ["psf"] - }, - "application/x-font-otf": { - "source": "apache", - "compressible": true, - "extensions": ["otf"] - }, - "application/x-font-pcf": { - "source": "apache", - "extensions": ["pcf"] - }, - "application/x-font-snf": { - "source": "apache", - "extensions": ["snf"] - }, - "application/x-font-speedo": { - "source": "apache" - }, - "application/x-font-sunos-news": { - "source": "apache" - }, - "application/x-font-ttf": { - "source": "apache", - "compressible": true, - "extensions": ["ttf","ttc"] - }, - "application/x-font-type1": { - "source": "apache", - "extensions": ["pfa","pfb","pfm","afm"] - }, - "application/x-font-vfont": { - "source": "apache" - }, - "application/x-freearc": { - "source": "apache", - "extensions": ["arc"] - }, - "application/x-futuresplash": { - "source": "apache", - "extensions": ["spl"] - }, - "application/x-gca-compressed": { - "source": "apache", - "extensions": ["gca"] - }, - "application/x-glulx": { - "source": "apache", - "extensions": ["ulx"] - }, - "application/x-gnumeric": { - "source": "apache", - "extensions": ["gnumeric"] - }, - "application/x-gramps-xml": { - "source": "apache", - "extensions": ["gramps"] - }, - "application/x-gtar": { - "source": "apache", - "extensions": ["gtar"] - }, - "application/x-gzip": { - "source": "apache" - }, - "application/x-hdf": { - "source": "apache", - "extensions": ["hdf"] - }, - "application/x-httpd-php": { - "compressible": true, - "extensions": ["php"] - }, - "application/x-install-instructions": { - "source": "apache", - "extensions": ["install"] - }, - "application/x-iso9660-image": { - "source": "apache", - "extensions": ["iso"] - }, - "application/x-java-archive-diff": { - "source": "nginx", - "extensions": ["jardiff"] - }, - "application/x-java-jnlp-file": { - "source": "apache", - "compressible": false, - "extensions": ["jnlp"] - }, - "application/x-javascript": { - "compressible": true - }, - "application/x-latex": { - "source": "apache", - "compressible": false, - "extensions": ["latex"] - }, - "application/x-lua-bytecode": { - "extensions": ["luac"] - }, - "application/x-lzh-compressed": { - "source": "apache", - "extensions": ["lzh","lha"] - }, - "application/x-makeself": { - "source": "nginx", - "extensions": ["run"] - }, - "application/x-mie": { - "source": "apache", - "extensions": ["mie"] - }, - "application/x-mobipocket-ebook": { - "source": "apache", - "extensions": ["prc","mobi"] - }, - "application/x-mpegurl": { - "compressible": false - }, - "application/x-ms-application": { - "source": "apache", - "extensions": ["application"] - }, - "application/x-ms-shortcut": { - "source": "apache", - "extensions": ["lnk"] - }, - "application/x-ms-wmd": { - "source": "apache", - "extensions": ["wmd"] - }, - "application/x-ms-wmz": { - "source": "apache", - "extensions": ["wmz"] - }, - "application/x-ms-xbap": { - "source": "apache", - "extensions": ["xbap"] - }, - "application/x-msaccess": { - "source": "apache", - "extensions": ["mdb"] - }, - "application/x-msbinder": { - "source": "apache", - "extensions": ["obd"] - }, - "application/x-mscardfile": { - "source": "apache", - "extensions": ["crd"] - }, - "application/x-msclip": { - "source": "apache", - "extensions": ["clp"] - }, - "application/x-msdos-program": { - "extensions": ["exe"] - }, - "application/x-msdownload": { - "source": "apache", - "extensions": ["exe","dll","com","bat","msi"] - }, - "application/x-msmediaview": { - "source": "apache", - "extensions": ["mvb","m13","m14"] - }, - "application/x-msmetafile": { - "source": "apache", - "extensions": ["wmf","wmz","emf","emz"] - }, - "application/x-msmoney": { - "source": "apache", - "extensions": ["mny"] - }, - "application/x-mspublisher": { - "source": "apache", - "extensions": ["pub"] - }, - "application/x-msschedule": { - "source": "apache", - "extensions": ["scd"] - }, - "application/x-msterminal": { - "source": "apache", - "extensions": ["trm"] - }, - "application/x-mswrite": { - "source": "apache", - "extensions": ["wri"] - }, - "application/x-netcdf": { - "source": "apache", - "extensions": ["nc","cdf"] - }, - "application/x-ns-proxy-autoconfig": { - "compressible": true, - "extensions": ["pac"] - }, - "application/x-nzb": { - "source": "apache", - "extensions": ["nzb"] - }, - "application/x-perl": { - "source": "nginx", - "extensions": ["pl","pm"] - }, - "application/x-pilot": { - "source": "nginx", - "extensions": ["prc","pdb"] - }, - "application/x-pkcs12": { - "source": "apache", - "compressible": false, - "extensions": ["p12","pfx"] - }, - "application/x-pkcs7-certificates": { - "source": "apache", - "extensions": ["p7b","spc"] - }, - "application/x-pkcs7-certreqresp": { - "source": "apache", - "extensions": ["p7r"] - }, - "application/x-rar-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["rar"] - }, - "application/x-redhat-package-manager": { - "source": "nginx", - "extensions": ["rpm"] - }, - "application/x-research-info-systems": { - "source": "apache", - "extensions": ["ris"] - }, - "application/x-sea": { - "source": "nginx", - "extensions": ["sea"] - }, - "application/x-sh": { - "source": "apache", - "compressible": true, - "extensions": ["sh"] - }, - "application/x-shar": { - "source": "apache", - "extensions": ["shar"] - }, - "application/x-shockwave-flash": { - "source": "apache", - "compressible": false, - "extensions": ["swf"] - }, - "application/x-silverlight-app": { - "source": "apache", - "extensions": ["xap"] - }, - "application/x-sql": { - "source": "apache", - "extensions": ["sql"] - }, - "application/x-stuffit": { - "source": "apache", - "compressible": false, - "extensions": ["sit"] - }, - "application/x-stuffitx": { - "source": "apache", - "extensions": ["sitx"] - }, - "application/x-subrip": { - "source": "apache", - "extensions": ["srt"] - }, - "application/x-sv4cpio": { - "source": "apache", - "extensions": ["sv4cpio"] - }, - "application/x-sv4crc": { - "source": "apache", - "extensions": ["sv4crc"] - }, - "application/x-t3vm-image": { - "source": "apache", - "extensions": ["t3"] - }, - "application/x-tads": { - "source": "apache", - "extensions": ["gam"] - }, - "application/x-tar": { - "source": "apache", - "compressible": true, - "extensions": ["tar"] - }, - "application/x-tcl": { - "source": "apache", - "extensions": ["tcl","tk"] - }, - "application/x-tex": { - "source": "apache", - "extensions": ["tex"] - }, - "application/x-tex-tfm": { - "source": "apache", - "extensions": ["tfm"] - }, - "application/x-texinfo": { - "source": "apache", - "extensions": ["texinfo","texi"] - }, - "application/x-tgif": { - "source": "apache", - "extensions": ["obj"] - }, - "application/x-ustar": { - "source": "apache", - "extensions": ["ustar"] - }, - "application/x-wais-source": { - "source": "apache", - "extensions": ["src"] - }, - "application/x-web-app-manifest+json": { - "compressible": true, - "extensions": ["webapp"] - }, - "application/x-www-form-urlencoded": { - "source": "iana", - "compressible": true - }, - "application/x-x509-ca-cert": { - "source": "apache", - "extensions": ["der","crt","pem"] - }, - "application/x-xfig": { - "source": "apache", - "extensions": ["fig"] - }, - "application/x-xliff+xml": { - "source": "apache", - "extensions": ["xlf"] - }, - "application/x-xpinstall": { - "source": "apache", - "compressible": false, - "extensions": ["xpi"] - }, - "application/x-xz": { - "source": "apache", - "extensions": ["xz"] - }, - "application/x-zmachine": { - "source": "apache", - "extensions": ["z1","z2","z3","z4","z5","z6","z7","z8"] - }, - "application/x400-bp": { - "source": "iana" - }, - "application/xacml+xml": { - "source": "iana" - }, - "application/xaml+xml": { - "source": "apache", - "extensions": ["xaml"] - }, - "application/xcap-att+xml": { - "source": "iana" - }, - "application/xcap-caps+xml": { - "source": "iana" - }, - "application/xcap-diff+xml": { - "source": "iana", - "extensions": ["xdf"] - }, - "application/xcap-el+xml": { - "source": "iana" - }, - "application/xcap-error+xml": { - "source": "iana" - }, - "application/xcap-ns+xml": { - "source": "iana" - }, - "application/xcon-conference-info+xml": { - "source": "iana" - }, - "application/xcon-conference-info-diff+xml": { - "source": "iana" - }, - "application/xenc+xml": { - "source": "iana", - "extensions": ["xenc"] - }, - "application/xhtml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xhtml","xht"] - }, - "application/xhtml-voice+xml": { - "source": "apache" - }, - "application/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml","xsl","xsd","rng"] - }, - "application/xml-dtd": { - "source": "iana", - "compressible": true, - "extensions": ["dtd"] - }, - "application/xml-external-parsed-entity": { - "source": "iana" - }, - "application/xml-patch+xml": { - "source": "iana" - }, - "application/xmpp+xml": { - "source": "iana" - }, - "application/xop+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xop"] - }, - "application/xproc+xml": { - "source": "apache", - "extensions": ["xpl"] - }, - "application/xslt+xml": { - "source": "iana", - "extensions": ["xslt"] - }, - "application/xspf+xml": { - "source": "apache", - "extensions": ["xspf"] - }, - "application/xv+xml": { - "source": "iana", - "extensions": ["mxml","xhvml","xvml","xvm"] - }, - "application/yang": { - "source": "iana", - "extensions": ["yang"] - }, - "application/yin+xml": { - "source": "iana", - "extensions": ["yin"] - }, - "application/zip": { - "source": "iana", - "compressible": false, - "extensions": ["zip"] - }, - "application/zlib": { - "source": "iana" - }, - "audio/1d-interleaved-parityfec": { - "source": "iana" - }, - "audio/32kadpcm": { - "source": "iana" - }, - "audio/3gpp": { - "source": "iana", - "compressible": false, - "extensions": ["3gpp"] - }, - "audio/3gpp2": { - "source": "iana" - }, - "audio/ac3": { - "source": "iana" - }, - "audio/adpcm": { - "source": "apache", - "extensions": ["adp"] - }, - "audio/amr": { - "source": "iana" - }, - "audio/amr-wb": { - "source": "iana" - }, - "audio/amr-wb+": { - "source": "iana" - }, - "audio/aptx": { - "source": "iana" - }, - "audio/asc": { - "source": "iana" - }, - "audio/atrac-advanced-lossless": { - "source": "iana" - }, - "audio/atrac-x": { - "source": "iana" - }, - "audio/atrac3": { - "source": "iana" - }, - "audio/basic": { - "source": "iana", - "compressible": false, - "extensions": ["au","snd"] - }, - "audio/bv16": { - "source": "iana" - }, - "audio/bv32": { - "source": "iana" - }, - "audio/clearmode": { - "source": "iana" - }, - "audio/cn": { - "source": "iana" - }, - "audio/dat12": { - "source": "iana" - }, - "audio/dls": { - "source": "iana" - }, - "audio/dsr-es201108": { - "source": "iana" - }, - "audio/dsr-es202050": { - "source": "iana" - }, - "audio/dsr-es202211": { - "source": "iana" - }, - "audio/dsr-es202212": { - "source": "iana" - }, - "audio/dv": { - "source": "iana" - }, - "audio/dvi4": { - "source": "iana" - }, - "audio/eac3": { - "source": "iana" - }, - "audio/encaprtp": { - "source": "iana" - }, - "audio/evrc": { - "source": "iana" - }, - "audio/evrc-qcp": { - "source": "iana" - }, - "audio/evrc0": { - "source": "iana" - }, - "audio/evrc1": { - "source": "iana" - }, - "audio/evrcb": { - "source": "iana" - }, - "audio/evrcb0": { - "source": "iana" - }, - "audio/evrcb1": { - "source": "iana" - }, - "audio/evrcnw": { - "source": "iana" - }, - "audio/evrcnw0": { - "source": "iana" - }, - "audio/evrcnw1": { - "source": "iana" - }, - "audio/evrcwb": { - "source": "iana" - }, - "audio/evrcwb0": { - "source": "iana" - }, - "audio/evrcwb1": { - "source": "iana" - }, - "audio/evs": { - "source": "iana" - }, - "audio/fwdred": { - "source": "iana" - }, - "audio/g711-0": { - "source": "iana" - }, - "audio/g719": { - "source": "iana" - }, - "audio/g722": { - "source": "iana" - }, - "audio/g7221": { - "source": "iana" - }, - "audio/g723": { - "source": "iana" - }, - "audio/g726-16": { - "source": "iana" - }, - "audio/g726-24": { - "source": "iana" - }, - "audio/g726-32": { - "source": "iana" - }, - "audio/g726-40": { - "source": "iana" - }, - "audio/g728": { - "source": "iana" - }, - "audio/g729": { - "source": "iana" - }, - "audio/g7291": { - "source": "iana" - }, - "audio/g729d": { - "source": "iana" - }, - "audio/g729e": { - "source": "iana" - }, - "audio/gsm": { - "source": "iana" - }, - "audio/gsm-efr": { - "source": "iana" - }, - "audio/gsm-hr-08": { - "source": "iana" - }, - "audio/ilbc": { - "source": "iana" - }, - "audio/ip-mr_v2.5": { - "source": "iana" - }, - "audio/isac": { - "source": "apache" - }, - "audio/l16": { - "source": "iana" - }, - "audio/l20": { - "source": "iana" - }, - "audio/l24": { - "source": "iana", - "compressible": false - }, - "audio/l8": { - "source": "iana" - }, - "audio/lpc": { - "source": "iana" - }, - "audio/midi": { - "source": "apache", - "extensions": ["mid","midi","kar","rmi"] - }, - "audio/mobile-xmf": { - "source": "iana" - }, - "audio/mp3": { - "compressible": false, - "extensions": ["mp3"] - }, - "audio/mp4": { - "source": "iana", - "compressible": false, - "extensions": ["m4a","mp4a"] - }, - "audio/mp4a-latm": { - "source": "iana" - }, - "audio/mpa": { - "source": "iana" - }, - "audio/mpa-robust": { - "source": "iana" - }, - "audio/mpeg": { - "source": "iana", - "compressible": false, - "extensions": ["mpga","mp2","mp2a","mp3","m2a","m3a"] - }, - "audio/mpeg4-generic": { - "source": "iana" - }, - "audio/musepack": { - "source": "apache" - }, - "audio/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["oga","ogg","spx"] - }, - "audio/opus": { - "source": "iana" - }, - "audio/parityfec": { - "source": "iana" - }, - "audio/pcma": { - "source": "iana" - }, - "audio/pcma-wb": { - "source": "iana" - }, - "audio/pcmu": { - "source": "iana" - }, - "audio/pcmu-wb": { - "source": "iana" - }, - "audio/prs.sid": { - "source": "iana" - }, - "audio/qcelp": { - "source": "iana" - }, - "audio/raptorfec": { - "source": "iana" - }, - "audio/red": { - "source": "iana" - }, - "audio/rtp-enc-aescm128": { - "source": "iana" - }, - "audio/rtp-midi": { - "source": "iana" - }, - "audio/rtploopback": { - "source": "iana" - }, - "audio/rtx": { - "source": "iana" - }, - "audio/s3m": { - "source": "apache", - "extensions": ["s3m"] - }, - "audio/silk": { - "source": "apache", - "extensions": ["sil"] - }, - "audio/smv": { - "source": "iana" - }, - "audio/smv-qcp": { - "source": "iana" - }, - "audio/smv0": { - "source": "iana" - }, - "audio/sp-midi": { - "source": "iana" - }, - "audio/speex": { - "source": "iana" - }, - "audio/t140c": { - "source": "iana" - }, - "audio/t38": { - "source": "iana" - }, - "audio/telephone-event": { - "source": "iana" - }, - "audio/tone": { - "source": "iana" - }, - "audio/uemclip": { - "source": "iana" - }, - "audio/ulpfec": { - "source": "iana" - }, - "audio/vdvi": { - "source": "iana" - }, - "audio/vmr-wb": { - "source": "iana" - }, - "audio/vnd.3gpp.iufp": { - "source": "iana" - }, - "audio/vnd.4sb": { - "source": "iana" - }, - "audio/vnd.audiokoz": { - "source": "iana" - }, - "audio/vnd.celp": { - "source": "iana" - }, - "audio/vnd.cisco.nse": { - "source": "iana" - }, - "audio/vnd.cmles.radio-events": { - "source": "iana" - }, - "audio/vnd.cns.anp1": { - "source": "iana" - }, - "audio/vnd.cns.inf1": { - "source": "iana" - }, - "audio/vnd.dece.audio": { - "source": "iana", - "extensions": ["uva","uvva"] - }, - "audio/vnd.digital-winds": { - "source": "iana", - "extensions": ["eol"] - }, - "audio/vnd.dlna.adts": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.1": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.2": { - "source": "iana" - }, - "audio/vnd.dolby.mlp": { - "source": "iana" - }, - "audio/vnd.dolby.mps": { - "source": "iana" - }, - "audio/vnd.dolby.pl2": { - "source": "iana" - }, - "audio/vnd.dolby.pl2x": { - "source": "iana" - }, - "audio/vnd.dolby.pl2z": { - "source": "iana" - }, - "audio/vnd.dolby.pulse.1": { - "source": "iana" - }, - "audio/vnd.dra": { - "source": "iana", - "extensions": ["dra"] - }, - "audio/vnd.dts": { - "source": "iana", - "extensions": ["dts"] - }, - "audio/vnd.dts.hd": { - "source": "iana", - "extensions": ["dtshd"] - }, - "audio/vnd.dvb.file": { - "source": "iana" - }, - "audio/vnd.everad.plj": { - "source": "iana" - }, - "audio/vnd.hns.audio": { - "source": "iana" - }, - "audio/vnd.lucent.voice": { - "source": "iana", - "extensions": ["lvp"] - }, - "audio/vnd.ms-playready.media.pya": { - "source": "iana", - "extensions": ["pya"] - }, - "audio/vnd.nokia.mobile-xmf": { - "source": "iana" - }, - "audio/vnd.nortel.vbk": { - "source": "iana" - }, - "audio/vnd.nuera.ecelp4800": { - "source": "iana", - "extensions": ["ecelp4800"] - }, - "audio/vnd.nuera.ecelp7470": { - "source": "iana", - "extensions": ["ecelp7470"] - }, - "audio/vnd.nuera.ecelp9600": { - "source": "iana", - "extensions": ["ecelp9600"] - }, - "audio/vnd.octel.sbc": { - "source": "iana" - }, - "audio/vnd.qcelp": { - "source": "iana" - }, - "audio/vnd.rhetorex.32kadpcm": { - "source": "iana" - }, - "audio/vnd.rip": { - "source": "iana", - "extensions": ["rip"] - }, - "audio/vnd.rn-realaudio": { - "compressible": false - }, - "audio/vnd.sealedmedia.softseal.mpeg": { - "source": "iana" - }, - "audio/vnd.vmx.cvsd": { - "source": "iana" - }, - "audio/vnd.wave": { - "compressible": false - }, - "audio/vorbis": { - "source": "iana", - "compressible": false - }, - "audio/vorbis-config": { - "source": "iana" - }, - "audio/wav": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/wave": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/webm": { - "source": "apache", - "compressible": false, - "extensions": ["weba"] - }, - "audio/x-aac": { - "source": "apache", - "compressible": false, - "extensions": ["aac"] - }, - "audio/x-aiff": { - "source": "apache", - "extensions": ["aif","aiff","aifc"] - }, - "audio/x-caf": { - "source": "apache", - "compressible": false, - "extensions": ["caf"] - }, - "audio/x-flac": { - "source": "apache", - "extensions": ["flac"] - }, - "audio/x-m4a": { - "source": "nginx", - "extensions": ["m4a"] - }, - "audio/x-matroska": { - "source": "apache", - "extensions": ["mka"] - }, - "audio/x-mpegurl": { - "source": "apache", - "extensions": ["m3u"] - }, - "audio/x-ms-wax": { - "source": "apache", - "extensions": ["wax"] - }, - "audio/x-ms-wma": { - "source": "apache", - "extensions": ["wma"] - }, - "audio/x-pn-realaudio": { - "source": "apache", - "extensions": ["ram","ra"] - }, - "audio/x-pn-realaudio-plugin": { - "source": "apache", - "extensions": ["rmp"] - }, - "audio/x-realaudio": { - "source": "nginx", - "extensions": ["ra"] - }, - "audio/x-tta": { - "source": "apache" - }, - "audio/x-wav": { - "source": "apache", - "extensions": ["wav"] - }, - "audio/xm": { - "source": "apache", - "extensions": ["xm"] - }, - "chemical/x-cdx": { - "source": "apache", - "extensions": ["cdx"] - }, - "chemical/x-cif": { - "source": "apache", - "extensions": ["cif"] - }, - "chemical/x-cmdf": { - "source": "apache", - "extensions": ["cmdf"] - }, - "chemical/x-cml": { - "source": "apache", - "extensions": ["cml"] - }, - "chemical/x-csml": { - "source": "apache", - "extensions": ["csml"] - }, - "chemical/x-pdb": { - "source": "apache" - }, - "chemical/x-xyz": { - "source": "apache", - "extensions": ["xyz"] - }, - "font/opentype": { - "compressible": true, - "extensions": ["otf"] - }, - "image/bmp": { - "source": "iana", - "compressible": true, - "extensions": ["bmp"] - }, - "image/cgm": { - "source": "iana", - "extensions": ["cgm"] - }, - "image/dicom-rle": { - "source": "iana" - }, - "image/emf": { - "source": "iana" - }, - "image/fits": { - "source": "iana" - }, - "image/g3fax": { - "source": "iana", - "extensions": ["g3"] - }, - "image/gif": { - "source": "iana", - "compressible": false, - "extensions": ["gif"] - }, - "image/ief": { - "source": "iana", - "extensions": ["ief"] - }, - "image/jls": { - "source": "iana" - }, - "image/jp2": { - "source": "iana" - }, - "image/jpeg": { - "source": "iana", - "compressible": false, - "extensions": ["jpeg","jpg","jpe"] - }, - "image/jpm": { - "source": "iana" - }, - "image/jpx": { - "source": "iana" - }, - "image/ktx": { - "source": "iana", - "extensions": ["ktx"] - }, - "image/naplps": { - "source": "iana" - }, - "image/pjpeg": { - "compressible": false - }, - "image/png": { - "source": "iana", - "compressible": false, - "extensions": ["png"] - }, - "image/prs.btif": { - "source": "iana", - "extensions": ["btif"] - }, - "image/prs.pti": { - "source": "iana" - }, - "image/pwg-raster": { - "source": "iana" - }, - "image/sgi": { - "source": "apache", - "extensions": ["sgi"] - }, - "image/svg+xml": { - "source": "iana", - "compressible": true, - "extensions": ["svg","svgz"] - }, - "image/t38": { - "source": "iana" - }, - "image/tiff": { - "source": "iana", - "compressible": false, - "extensions": ["tiff","tif"] - }, - "image/tiff-fx": { - "source": "iana" - }, - "image/vnd.adobe.photoshop": { - "source": "iana", - "compressible": true, - "extensions": ["psd"] - }, - "image/vnd.airzip.accelerator.azv": { - "source": "iana" - }, - "image/vnd.cns.inf2": { - "source": "iana" - }, - "image/vnd.dece.graphic": { - "source": "iana", - "extensions": ["uvi","uvvi","uvg","uvvg"] - }, - "image/vnd.djvu": { - "source": "iana", - "extensions": ["djvu","djv"] - }, - "image/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "image/vnd.dwg": { - "source": "iana", - "extensions": ["dwg"] - }, - "image/vnd.dxf": { - "source": "iana", - "extensions": ["dxf"] - }, - "image/vnd.fastbidsheet": { - "source": "iana", - "extensions": ["fbs"] - }, - "image/vnd.fpx": { - "source": "iana", - "extensions": ["fpx"] - }, - "image/vnd.fst": { - "source": "iana", - "extensions": ["fst"] - }, - "image/vnd.fujixerox.edmics-mmr": { - "source": "iana", - "extensions": ["mmr"] - }, - "image/vnd.fujixerox.edmics-rlc": { - "source": "iana", - "extensions": ["rlc"] - }, - "image/vnd.globalgraphics.pgb": { - "source": "iana" - }, - "image/vnd.microsoft.icon": { - "source": "iana" - }, - "image/vnd.mix": { - "source": "iana" - }, - "image/vnd.mozilla.apng": { - "source": "iana" - }, - "image/vnd.ms-modi": { - "source": "iana", - "extensions": ["mdi"] - }, - "image/vnd.ms-photo": { - "source": "apache", - "extensions": ["wdp"] - }, - "image/vnd.net-fpx": { - "source": "iana", - "extensions": ["npx"] - }, - "image/vnd.radiance": { - "source": "iana" - }, - "image/vnd.sealed.png": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.gif": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.jpg": { - "source": "iana" - }, - "image/vnd.svf": { - "source": "iana" - }, - "image/vnd.tencent.tap": { - "source": "iana" - }, - "image/vnd.valve.source.texture": { - "source": "iana" - }, - "image/vnd.wap.wbmp": { - "source": "iana", - "extensions": ["wbmp"] - }, - "image/vnd.xiff": { - "source": "iana", - "extensions": ["xif"] - }, - "image/vnd.zbrush.pcx": { - "source": "iana" - }, - "image/webp": { - "source": "apache", - "extensions": ["webp"] - }, - "image/wmf": { - "source": "iana" - }, - "image/x-3ds": { - "source": "apache", - "extensions": ["3ds"] - }, - "image/x-cmu-raster": { - "source": "apache", - "extensions": ["ras"] - }, - "image/x-cmx": { - "source": "apache", - "extensions": ["cmx"] - }, - "image/x-freehand": { - "source": "apache", - "extensions": ["fh","fhc","fh4","fh5","fh7"] - }, - "image/x-icon": { - "source": "apache", - "compressible": true, - "extensions": ["ico"] - }, - "image/x-jng": { - "source": "nginx", - "extensions": ["jng"] - }, - "image/x-mrsid-image": { - "source": "apache", - "extensions": ["sid"] - }, - "image/x-ms-bmp": { - "source": "nginx", - "compressible": true, - "extensions": ["bmp"] - }, - "image/x-pcx": { - "source": "apache", - "extensions": ["pcx"] - }, - "image/x-pict": { - "source": "apache", - "extensions": ["pic","pct"] - }, - "image/x-portable-anymap": { - "source": "apache", - "extensions": ["pnm"] - }, - "image/x-portable-bitmap": { - "source": "apache", - "extensions": ["pbm"] - }, - "image/x-portable-graymap": { - "source": "apache", - "extensions": ["pgm"] - }, - "image/x-portable-pixmap": { - "source": "apache", - "extensions": ["ppm"] - }, - "image/x-rgb": { - "source": "apache", - "extensions": ["rgb"] - }, - "image/x-tga": { - "source": "apache", - "extensions": ["tga"] - }, - "image/x-xbitmap": { - "source": "apache", - "extensions": ["xbm"] - }, - "image/x-xcf": { - "compressible": false - }, - "image/x-xpixmap": { - "source": "apache", - "extensions": ["xpm"] - }, - "image/x-xwindowdump": { - "source": "apache", - "extensions": ["xwd"] - }, - "message/cpim": { - "source": "iana" - }, - "message/delivery-status": { - "source": "iana" - }, - "message/disposition-notification": { - "source": "iana" - }, - "message/external-body": { - "source": "iana" - }, - "message/feedback-report": { - "source": "iana" - }, - "message/global": { - "source": "iana" - }, - "message/global-delivery-status": { - "source": "iana" - }, - "message/global-disposition-notification": { - "source": "iana" - }, - "message/global-headers": { - "source": "iana" - }, - "message/http": { - "source": "iana", - "compressible": false - }, - "message/imdn+xml": { - "source": "iana", - "compressible": true - }, - "message/news": { - "source": "iana" - }, - "message/partial": { - "source": "iana", - "compressible": false - }, - "message/rfc822": { - "source": "iana", - "compressible": true, - "extensions": ["eml","mime"] - }, - "message/s-http": { - "source": "iana" - }, - "message/sip": { - "source": "iana" - }, - "message/sipfrag": { - "source": "iana" - }, - "message/tracking-status": { - "source": "iana" - }, - "message/vnd.si.simp": { - "source": "iana" - }, - "message/vnd.wfa.wsc": { - "source": "iana" - }, - "model/gltf+json": { - "source": "iana", - "compressible": true - }, - "model/iges": { - "source": "iana", - "compressible": false, - "extensions": ["igs","iges"] - }, - "model/mesh": { - "source": "iana", - "compressible": false, - "extensions": ["msh","mesh","silo"] - }, - "model/vnd.collada+xml": { - "source": "iana", - "extensions": ["dae"] - }, - "model/vnd.dwf": { - "source": "iana", - "extensions": ["dwf"] - }, - "model/vnd.flatland.3dml": { - "source": "iana" - }, - "model/vnd.gdl": { - "source": "iana", - "extensions": ["gdl"] - }, - "model/vnd.gs-gdl": { - "source": "apache" - }, - "model/vnd.gs.gdl": { - "source": "iana" - }, - "model/vnd.gtw": { - "source": "iana", - "extensions": ["gtw"] - }, - "model/vnd.moml+xml": { - "source": "iana" - }, - "model/vnd.mts": { - "source": "iana", - "extensions": ["mts"] - }, - "model/vnd.opengex": { - "source": "iana" - }, - "model/vnd.parasolid.transmit.binary": { - "source": "iana" - }, - "model/vnd.parasolid.transmit.text": { - "source": "iana" - }, - "model/vnd.rosette.annotated-data-model": { - "source": "iana" - }, - "model/vnd.valve.source.compiled-map": { - "source": "iana" - }, - "model/vnd.vtu": { - "source": "iana", - "extensions": ["vtu"] - }, - "model/vrml": { - "source": "iana", - "compressible": false, - "extensions": ["wrl","vrml"] - }, - "model/x3d+binary": { - "source": "apache", - "compressible": false, - "extensions": ["x3db","x3dbz"] - }, - "model/x3d+fastinfoset": { - "source": "iana" - }, - "model/x3d+vrml": { - "source": "apache", - "compressible": false, - "extensions": ["x3dv","x3dvz"] - }, - "model/x3d+xml": { - "source": "iana", - "compressible": true, - "extensions": ["x3d","x3dz"] - }, - "model/x3d-vrml": { - "source": "iana" - }, - "multipart/alternative": { - "source": "iana", - "compressible": false - }, - "multipart/appledouble": { - "source": "iana" - }, - "multipart/byteranges": { - "source": "iana" - }, - "multipart/digest": { - "source": "iana" - }, - "multipart/encrypted": { - "source": "iana", - "compressible": false - }, - "multipart/form-data": { - "source": "iana", - "compressible": false - }, - "multipart/header-set": { - "source": "iana" - }, - "multipart/mixed": { - "source": "iana", - "compressible": false - }, - "multipart/parallel": { - "source": "iana" - }, - "multipart/related": { - "source": "iana", - "compressible": false - }, - "multipart/report": { - "source": "iana" - }, - "multipart/signed": { - "source": "iana", - "compressible": false - }, - "multipart/voice-message": { - "source": "iana" - }, - "multipart/x-mixed-replace": { - "source": "iana" - }, - "text/1d-interleaved-parityfec": { - "source": "iana" - }, - "text/cache-manifest": { - "source": "iana", - "compressible": true, - "extensions": ["appcache","manifest"] - }, - "text/calendar": { - "source": "iana", - "extensions": ["ics","ifb"] - }, - "text/calender": { - "compressible": true - }, - "text/cmd": { - "compressible": true - }, - "text/coffeescript": { - "extensions": ["coffee","litcoffee"] - }, - "text/css": { - "source": "iana", - "compressible": true, - "extensions": ["css"] - }, - "text/csv": { - "source": "iana", - "compressible": true, - "extensions": ["csv"] - }, - "text/csv-schema": { - "source": "iana" - }, - "text/directory": { - "source": "iana" - }, - "text/dns": { - "source": "iana" - }, - "text/ecmascript": { - "source": "iana" - }, - "text/encaprtp": { - "source": "iana" - }, - "text/enriched": { - "source": "iana" - }, - "text/fwdred": { - "source": "iana" - }, - "text/grammar-ref-list": { - "source": "iana" - }, - "text/hjson": { - "extensions": ["hjson"] - }, - "text/html": { - "source": "iana", - "compressible": true, - "extensions": ["html","htm","shtml"] - }, - "text/jade": { - "extensions": ["jade"] - }, - "text/javascript": { - "source": "iana", - "compressible": true - }, - "text/jcr-cnd": { - "source": "iana" - }, - "text/jsx": { - "compressible": true, - "extensions": ["jsx"] - }, - "text/less": { - "extensions": ["less"] - }, - "text/markdown": { - "source": "iana" - }, - "text/mathml": { - "source": "nginx", - "extensions": ["mml"] - }, - "text/mizar": { - "source": "iana" - }, - "text/n3": { - "source": "iana", - "compressible": true, - "extensions": ["n3"] - }, - "text/parameters": { - "source": "iana" - }, - "text/parityfec": { - "source": "iana" - }, - "text/plain": { - "source": "iana", - "compressible": true, - "extensions": ["txt","text","conf","def","list","log","in","ini"] - }, - "text/provenance-notation": { - "source": "iana" - }, - "text/prs.fallenstein.rst": { - "source": "iana" - }, - "text/prs.lines.tag": { - "source": "iana", - "extensions": ["dsc"] - }, - "text/prs.prop.logic": { - "source": "iana" - }, - "text/raptorfec": { - "source": "iana" - }, - "text/red": { - "source": "iana" - }, - "text/rfc822-headers": { - "source": "iana" - }, - "text/richtext": { - "source": "iana", - "compressible": true, - "extensions": ["rtx"] - }, - "text/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "text/rtp-enc-aescm128": { - "source": "iana" - }, - "text/rtploopback": { - "source": "iana" - }, - "text/rtx": { - "source": "iana" - }, - "text/sgml": { - "source": "iana", - "extensions": ["sgml","sgm"] - }, - "text/slim": { - "extensions": ["slim","slm"] - }, - "text/stylus": { - "extensions": ["stylus","styl"] - }, - "text/t140": { - "source": "iana" - }, - "text/tab-separated-values": { - "source": "iana", - "compressible": true, - "extensions": ["tsv"] - }, - "text/troff": { - "source": "iana", - "extensions": ["t","tr","roff","man","me","ms"] - }, - "text/turtle": { - "source": "iana", - "extensions": ["ttl"] - }, - "text/ulpfec": { - "source": "iana" - }, - "text/uri-list": { - "source": "iana", - "compressible": true, - "extensions": ["uri","uris","urls"] - }, - "text/vcard": { - "source": "iana", - "compressible": true, - "extensions": ["vcard"] - }, - "text/vnd.a": { - "source": "iana" - }, - "text/vnd.abc": { - "source": "iana" - }, - "text/vnd.ascii-art": { - "source": "iana" - }, - "text/vnd.curl": { - "source": "iana", - "extensions": ["curl"] - }, - "text/vnd.curl.dcurl": { - "source": "apache", - "extensions": ["dcurl"] - }, - "text/vnd.curl.mcurl": { - "source": "apache", - "extensions": ["mcurl"] - }, - "text/vnd.curl.scurl": { - "source": "apache", - "extensions": ["scurl"] - }, - "text/vnd.debian.copyright": { - "source": "iana" - }, - "text/vnd.dmclientscript": { - "source": "iana" - }, - "text/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "text/vnd.esmertec.theme-descriptor": { - "source": "iana" - }, - "text/vnd.fly": { - "source": "iana", - "extensions": ["fly"] - }, - "text/vnd.fmi.flexstor": { - "source": "iana", - "extensions": ["flx"] - }, - "text/vnd.graphviz": { - "source": "iana", - "extensions": ["gv"] - }, - "text/vnd.in3d.3dml": { - "source": "iana", - "extensions": ["3dml"] - }, - "text/vnd.in3d.spot": { - "source": "iana", - "extensions": ["spot"] - }, - "text/vnd.iptc.newsml": { - "source": "iana" - }, - "text/vnd.iptc.nitf": { - "source": "iana" - }, - "text/vnd.latex-z": { - "source": "iana" - }, - "text/vnd.motorola.reflex": { - "source": "iana" - }, - "text/vnd.ms-mediapackage": { - "source": "iana" - }, - "text/vnd.net2phone.commcenter.command": { - "source": "iana" - }, - "text/vnd.radisys.msml-basic-layout": { - "source": "iana" - }, - "text/vnd.si.uricatalogue": { - "source": "iana" - }, - "text/vnd.sun.j2me.app-descriptor": { - "source": "iana", - "extensions": ["jad"] - }, - "text/vnd.trolltech.linguist": { - "source": "iana" - }, - "text/vnd.wap.si": { - "source": "iana" - }, - "text/vnd.wap.sl": { - "source": "iana" - }, - "text/vnd.wap.wml": { - "source": "iana", - "extensions": ["wml"] - }, - "text/vnd.wap.wmlscript": { - "source": "iana", - "extensions": ["wmls"] - }, - "text/vtt": { - "charset": "UTF-8", - "compressible": true, - "extensions": ["vtt"] - }, - "text/x-asm": { - "source": "apache", - "extensions": ["s","asm"] - }, - "text/x-c": { - "source": "apache", - "extensions": ["c","cc","cxx","cpp","h","hh","dic"] - }, - "text/x-component": { - "source": "nginx", - "extensions": ["htc"] - }, - "text/x-fortran": { - "source": "apache", - "extensions": ["f","for","f77","f90"] - }, - "text/x-gwt-rpc": { - "compressible": true - }, - "text/x-handlebars-template": { - "extensions": ["hbs"] - }, - "text/x-java-source": { - "source": "apache", - "extensions": ["java"] - }, - "text/x-jquery-tmpl": { - "compressible": true - }, - "text/x-lua": { - "extensions": ["lua"] - }, - "text/x-markdown": { - "compressible": true, - "extensions": ["markdown","md","mkd"] - }, - "text/x-nfo": { - "source": "apache", - "extensions": ["nfo"] - }, - "text/x-opml": { - "source": "apache", - "extensions": ["opml"] - }, - "text/x-pascal": { - "source": "apache", - "extensions": ["p","pas"] - }, - "text/x-processing": { - "compressible": true, - "extensions": ["pde"] - }, - "text/x-sass": { - "extensions": ["sass"] - }, - "text/x-scss": { - "extensions": ["scss"] - }, - "text/x-setext": { - "source": "apache", - "extensions": ["etx"] - }, - "text/x-sfv": { - "source": "apache", - "extensions": ["sfv"] - }, - "text/x-suse-ymp": { - "compressible": true, - "extensions": ["ymp"] - }, - "text/x-uuencode": { - "source": "apache", - "extensions": ["uu"] - }, - "text/x-vcalendar": { - "source": "apache", - "extensions": ["vcs"] - }, - "text/x-vcard": { - "source": "apache", - "extensions": ["vcf"] - }, - "text/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml"] - }, - "text/xml-external-parsed-entity": { - "source": "iana" - }, - "text/yaml": { - "extensions": ["yaml","yml"] - }, - "video/1d-interleaved-parityfec": { - "source": "apache" - }, - "video/3gpp": { - "source": "apache", - "extensions": ["3gp","3gpp"] - }, - "video/3gpp-tt": { - "source": "apache" - }, - "video/3gpp2": { - "source": "apache", - "extensions": ["3g2"] - }, - "video/bmpeg": { - "source": "apache" - }, - "video/bt656": { - "source": "apache" - }, - "video/celb": { - "source": "apache" - }, - "video/dv": { - "source": "apache" - }, - "video/encaprtp": { - "source": "apache" - }, - "video/h261": { - "source": "apache", - "extensions": ["h261"] - }, - "video/h263": { - "source": "apache", - "extensions": ["h263"] - }, - "video/h263-1998": { - "source": "apache" - }, - "video/h263-2000": { - "source": "apache" - }, - "video/h264": { - "source": "apache", - "extensions": ["h264"] - }, - "video/h264-rcdo": { - "source": "apache" - }, - "video/h264-svc": { - "source": "apache" - }, - "video/h265": { - "source": "apache" - }, - "video/iso.segment": { - "source": "apache" - }, - "video/jpeg": { - "source": "apache", - "extensions": ["jpgv"] - }, - "video/jpeg2000": { - "source": "apache" - }, - "video/jpm": { - "source": "apache", - "extensions": ["jpm","jpgm"] - }, - "video/mj2": { - "source": "apache", - "extensions": ["mj2","mjp2"] - }, - "video/mp1s": { - "source": "apache" - }, - "video/mp2p": { - "source": "apache" - }, - "video/mp2t": { - "source": "apache", - "extensions": ["ts"] - }, - "video/mp4": { - "source": "apache", - "compressible": false, - "extensions": ["mp4","mp4v","mpg4"] - }, - "video/mp4v-es": { - "source": "apache" - }, - "video/mpeg": { - "source": "apache", - "compressible": false, - "extensions": ["mpeg","mpg","mpe","m1v","m2v"] - }, - "video/mpeg4-generic": { - "source": "apache" - }, - "video/mpv": { - "source": "apache" - }, - "video/nv": { - "source": "apache" - }, - "video/ogg": { - "source": "apache", - "compressible": false, - "extensions": ["ogv"] - }, - "video/parityfec": { - "source": "apache" - }, - "video/pointer": { - "source": "apache" - }, - "video/quicktime": { - "source": "apache", - "compressible": false, - "extensions": ["qt","mov"] - }, - "video/raptorfec": { - "source": "apache" - }, - "video/raw": { - "source": "apache" - }, - "video/rtp-enc-aescm128": { - "source": "apache" - }, - "video/rtploopback": { - "source": "apache" - }, - "video/rtx": { - "source": "apache" - }, - "video/smpte292m": { - "source": "apache" - }, - "video/ulpfec": { - "source": "apache" - }, - "video/vc1": { - "source": "apache" - }, - "video/vnd.cctv": { - "source": "apache" - }, - "video/vnd.dece.hd": { - "source": "apache", - "extensions": ["uvh","uvvh"] - }, - "video/vnd.dece.mobile": { - "source": "apache", - "extensions": ["uvm","uvvm"] - }, - "video/vnd.dece.mp4": { - "source": "apache" - }, - "video/vnd.dece.pd": { - "source": "apache", - "extensions": ["uvp","uvvp"] - }, - "video/vnd.dece.sd": { - "source": "apache", - "extensions": ["uvs","uvvs"] - }, - "video/vnd.dece.video": { - "source": "apache", - "extensions": ["uvv","uvvv"] - }, - "video/vnd.directv.mpeg": { - "source": "apache" - }, - "video/vnd.directv.mpeg-tts": { - "source": "apache" - }, - "video/vnd.dlna.mpeg-tts": { - "source": "apache" - }, - "video/vnd.dvb.file": { - "source": "apache", - "extensions": ["dvb"] - }, - "video/vnd.fvt": { - "source": "apache", - "extensions": ["fvt"] - }, - "video/vnd.hns.video": { - "source": "apache" - }, - "video/vnd.iptvforum.1dparityfec-1010": { - "source": "apache" - }, - "video/vnd.iptvforum.1dparityfec-2005": { - "source": "apache" - }, - "video/vnd.iptvforum.2dparityfec-1010": { - "source": "apache" - }, - "video/vnd.iptvforum.2dparityfec-2005": { - "source": "apache" - }, - "video/vnd.iptvforum.ttsavc": { - "source": "apache" - }, - "video/vnd.iptvforum.ttsmpeg2": { - "source": "apache" - }, - "video/vnd.motorola.video": { - "source": "apache" - }, - "video/vnd.motorola.videop": { - "source": "apache" - }, - "video/vnd.mpegurl": { - "source": "apache", - "extensions": ["mxu","m4u"] - }, - "video/vnd.ms-playready.media.pyv": { - "source": "apache", - "extensions": ["pyv"] - }, - "video/vnd.nokia.interleaved-multimedia": { - "source": "apache" - }, - "video/vnd.nokia.videovoip": { - "source": "apache" - }, - "video/vnd.objectvideo": { - "source": "apache" - }, - "video/vnd.radgamettools.bink": { - "source": "apache" - }, - "video/vnd.radgamettools.smacker": { - "source": "apache" - }, - "video/vnd.sealed.mpeg1": { - "source": "apache" - }, - "video/vnd.sealed.mpeg4": { - "source": "apache" - }, - "video/vnd.sealed.swf": { - "source": "apache" - }, - "video/vnd.sealedmedia.softseal.mov": { - "source": "apache" - }, - "video/vnd.uvvu.mp4": { - "source": "apache", - "extensions": ["uvu","uvvu"] - }, - "video/vnd.vivo": { - "source": "apache", - "extensions": ["viv"] - }, - "video/vp8": { - "source": "apache" - }, - "video/webm": { - "source": "apache", - "compressible": false, - "extensions": ["webm"] - }, - "video/x-f4v": { - "source": "apache", - "extensions": ["f4v"] - }, - "video/x-fli": { - "source": "apache", - "extensions": ["fli"] - }, - "video/x-flv": { - "source": "apache", - "compressible": false, - "extensions": ["flv"] - }, - "video/x-m4v": { - "source": "apache", - "extensions": ["m4v"] - }, - "video/x-matroska": { - "source": "apache", - "compressible": false, - "extensions": ["mkv","mk3d","mks"] - }, - "video/x-mng": { - "source": "apache", - "extensions": ["mng"] - }, - "video/x-ms-asf": { - "source": "apache", - "extensions": ["asf","asx"] - }, - "video/x-ms-vob": { - "source": "apache", - "extensions": ["vob"] - }, - "video/x-ms-wm": { - "source": "apache", - "extensions": ["wm"] - }, - "video/x-ms-wmv": { - "source": "apache", - "compressible": false, - "extensions": ["wmv"] - }, - "video/x-ms-wmx": { - "source": "apache", - "extensions": ["wmx"] - }, - "video/x-ms-wvx": { - "source": "apache", - "extensions": ["wvx"] - }, - "video/x-msvideo": { - "source": "apache", - "extensions": ["avi"] - }, - "video/x-sgi-movie": { - "source": "apache", - "extensions": ["movie"] - }, - "video/x-smv": { - "source": "apache", - "extensions": ["smv"] - }, - "x-conference/x-cooltalk": { - "source": "apache", - "extensions": ["ice"] - }, - "x-shader/x-fragment": { - "compressible": true - }, - "x-shader/x-vertex": { - "compressible": true - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js deleted file mode 100644 index 551031f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * mime-db - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -/** - * Module exports. - */ - -module.exports = require('./db.json') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json deleted file mode 100644 index 4ce9bd44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "name": "mime-db", - "description": "Media Type Database", - "version": "1.24.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - { - "name": "Robert Kieffer", - "email": "robert@broofa.com", - "url": "http://github.com/broofa" - } - ], - "license": "MIT", - "keywords": [ - "mime", - "db", - "type", - "types", - "database", - "charset", - "charsets" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-db.git" - }, - "devDependencies": { - "bluebird": "3.4.6", - "co": "4.6.0", - "cogent": "1.0.1", - "csv-parse": "1.1.7", - "gnode": "0.1.2", - "istanbul": "0.4.5", - "mocha": "1.21.5", - "raw-body": "2.1.7", - "stream-to-array": "2.3.0" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "db.json", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "build": "node scripts/build", - "fetch": "gnode scripts/fetch-apache && gnode scripts/fetch-iana && gnode scripts/fetch-nginx", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "update": "npm run fetch && npm run build" - }, - "gitHead": "9dd00b34556a8cdd6f3385f09d4989298c4b86e1", - "bugs": { - "url": "https://github.com/jshttp/mime-db/issues" - }, - "homepage": "https://github.com/jshttp/mime-db#readme", - "_id": "mime-db@1.24.0", - "_shasum": "e2d13f939f0016c6e4e9ad25a8652f126c467f0c", - "_from": "mime-db@>=1.24.0 <1.25.0", - "_npmVersion": "2.15.9", - "_nodeVersion": "4.5.0", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "e2d13f939f0016c6e4e9ad25a8652f126c467f0c", - "tarball": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/mime-db-1.24.0.tgz_1474198792761_0.7161959335207939" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/package.json deleted file mode 100644 index a603563a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/mime-types/package.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "name": "mime-types", - "description": "The ultimate javascript content-type utility.", - "version": "2.1.12", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jeremiah Senkpiel", - "email": "fishrock123@rocketmail.com", - "url": "https://searchbeam.jit.su" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "keywords": [ - "mime", - "types" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-types.git" - }, - "dependencies": { - "mime-db": "~1.24.0" - }, - "devDependencies": { - "eslint": "3.5.0", - "eslint-config-standard": "6.0.1", - "eslint-plugin-promise": "2.0.1", - "eslint-plugin-standard": "2.0.0", - "istanbul": "0.4.5", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint **/*.js", - "test": "mocha --reporter spec test/test.js", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/test.js", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot test/test.js" - }, - "gitHead": "7193a9094e2efe31da93988350bb0b32ab18b1ea", - "bugs": { - "url": "https://github.com/jshttp/mime-types/issues" - }, - "homepage": "https://github.com/jshttp/mime-types#readme", - "_id": "mime-types@2.1.12", - "_shasum": "152ba256777020dd4663f54c2e7bc26381e71729", - "_from": "mime-types@>=2.1.7 <2.2.0", - "_npmVersion": "2.15.9", - "_nodeVersion": "4.5.0", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "152ba256777020dd4663f54c2e7bc26381e71729", - "tarball": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/mime-types-2.1.12.tgz_1474237415119_0.03028594213537872" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/.npmignore deleted file mode 100644 index 88861393..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -.DS_Store -.nyc_output -coverage diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/LICENSE.md deleted file mode 100644 index 652609b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2010-2012 Robert Kieffer - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/README.md deleted file mode 100644 index 5cd85550..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/README.md +++ /dev/null @@ -1,254 +0,0 @@ -# node-uuid - -Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS. - -Features: - -* Generate RFC4122 version 1 or version 4 UUIDs -* Runs in node.js and all browsers. -* Registered as a [ComponentJS](https://github.com/component/component) [component](https://github.com/component/component/wiki/Components) ('broofa/node-uuid'). -* Cryptographically strong random # generation - * `crypto.randomBytes(n)` in node.js - * `window.crypto.getRandomValues(ta)` in [supported browsers](https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues#Browser_Compatibility) -* 1.1K minified and gzip'ed (Want something smaller? Check this [crazy shit](https://gist.github.com/982883) out! ) -* [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html) -* Comes with a Command Line Interface for generating uuids on the command line - -## Getting Started - -Install it in your browser: - -```html - -``` - -Or in node.js: - -``` -npm install node-uuid -``` - -```javascript -var uuid = require('node-uuid'); -``` - -Then create some ids ... - -```javascript -// Generate a v1 (time-based) id -uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' - -// Generate a v4 (random) id -uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1' -``` - -## API - -### uuid.v1([`options` [, `buffer` [, `offset`]]]) - -Generate and return a RFC4122 v1 (timestamp-based) UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - - * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1. - * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used. - * `msecs` - (Number | Date) Time in milliseconds since unix Epoch. Default: The current time is used. - * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2. - -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Notes: - -1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.) - -Example: Generate string UUID with fully-specified options - -```javascript -uuid.v1({ - node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], - clockseq: 0x1234, - msecs: new Date('2011-11-01').getTime(), - nsecs: 5678 -}); // -> "710b962e-041c-11e1-9234-0123456789ab" -``` - -Example: In-place generation of two binary IDs - -```javascript -// Generate two ids in an array -var arr = new Array(32); // -> [] -uuid.v1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15] -uuid.v1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15] - -// Optionally use uuid.unparse() to get stringify the ids -uuid.unparse(buffer); // -> '02a2ce90-1432-11e1-8558-0b488e4fc115' -uuid.unparse(buffer, 16) // -> '02a31cb0-1432-11e1-8558-0b488e4fc115' -``` - -### uuid.v4([`options` [, `buffer` [, `offset`]]]) - -Generate and return a RFC4122 v4 UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - - * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values - * `rng` - (Function) Random # generator to use. Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values. - -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Example: Generate string UUID with fully-specified options - -```javascript -uuid.v4({ - random: [ - 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, - 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36 - ] -}); -// -> "109156be-c4fb-41ea-b1b4-efe1671c5836" -``` - -Example: Generate two IDs in a single buffer - -```javascript -var buffer = new Array(32); // (or 'new Buffer' in node.js) -uuid.v4(null, buffer, 0); -uuid.v4(null, buffer, 16); -``` - -### uuid.parse(id[, buffer[, offset]]) -### uuid.unparse(buffer[, offset]) - -Parse and unparse UUIDs - - * `id` - (String) UUID(-like) string - * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used - * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0 - -Example parsing and unparsing a UUID string - -```javascript -var bytes = uuid.parse('797ff043-11eb-11e1-80d6-510998755d10'); // -> -var string = uuid.unparse(bytes); // -> '797ff043-11eb-11e1-80d6-510998755d10' -``` - -### uuid.noConflict() - -(Browsers only) Set `uuid` property back to it's previous value. - -Returns the node-uuid object. - -Example: - -```javascript -var myUuid = uuid.noConflict(); -myUuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' -``` - -## Deprecated APIs - -Support for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version. - -### uuid([format [, buffer [, offset]]]) - -uuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary). - -### uuid.BufferClass - -The class of container created when generating binary uuid data if no buffer argument is specified. This is expected to go away, with no replacement API. - -## Command Line Interface - -To use the executable, it's probably best to install this library globally. - -`npm install -g node-uuid` - -Usage: - -``` -USAGE: uuid [version] [options] - - -options: - ---help Display this message and exit -``` - -`version` must be an RFC4122 version that is supported by this library, which is currently version 1 and version 4 (denoted by "v1" and "v4", respectively). `version` defaults to version 4 when not supplied. - -### Examples - -``` -> uuid -3a91f950-dec8-4688-ba14-5b7bbfc7a563 -``` - -``` -> uuid v1 -9d0b43e0-7696-11e3-964b-250efa37a98e -``` - -``` -> uuid v4 -6790ac7c-24ac-4f98-8464-42f6d98a53ae -``` - -## Testing - -In node.js - -``` -npm test -``` - -In Browser - -``` -open test/test.html -``` - -### Benchmarking - -Requires node.js - -``` -npm install uuid uuid-js -node benchmark/benchmark.js -``` - -For a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark) - -For browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance). - -## Release notes - -### 1.4.6 - -* Properly detect node crypto and whatwg crypto -* Workaround phantomjs/browserify bug -* Explicit check for `window` rather implicit this-global -* Issue warning if Math.random() is being used -* "use strict"; -* A few jshint / stylistic updates (=== and such) - -### 1.4.0 - -* Improved module context detection -* Removed public RNG functions - -### 1.3.2 - -* Improve tests and handling of v1() options (Issue #24) -* Expose RNG option to allow for perf testing with different generators - -### 1.3.0 - -* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)! -* Support for node.js crypto API -* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/README.md deleted file mode 100644 index aaeb2ea0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# node-uuid Benchmarks - -### Results - -To see the results of our benchmarks visit https://github.com/broofa/node-uuid/wiki/Benchmark - -### Run them yourself - -node-uuid comes with some benchmarks to measure performance of generating UUIDs. These can be run using node.js. node-uuid is being benchmarked against some other uuid modules, that are available through npm namely `uuid` and `uuid-js`. - -To prepare and run the benchmark issue; - -``` -npm install uuid uuid-js -node benchmark/benchmark.js -``` - -You'll see an output like this one: - -``` -# v4 -nodeuuid.v4(): 854700 uuids/second -nodeuuid.v4('binary'): 788643 uuids/second -nodeuuid.v4('binary', buffer): 1336898 uuids/second -uuid(): 479386 uuids/second -uuid('binary'): 582072 uuids/second -uuidjs.create(4): 312304 uuids/second - -# v1 -nodeuuid.v1(): 938086 uuids/second -nodeuuid.v1('binary'): 683060 uuids/second -nodeuuid.v1('binary', buffer): 1644736 uuids/second -uuidjs.create(1): 190621 uuids/second -``` - -* The `uuid()` entries are for Nikhil Marathe's [uuid module](https://bitbucket.org/nikhilm/uuidjs) which is a wrapper around the native libuuid library. -* The `uuidjs()` entries are for Patrick Negri's [uuid-js module](https://github.com/pnegri/uuid-js) which is a pure javascript implementation based on [UUID.js](https://github.com/LiosK/UUID.js) by LiosK. - -If you want to get more reliable results you can run the benchmark multiple times and write the output into a log file: - -``` -for i in {0..9}; do node benchmark/benchmark.js >> benchmark/bench_0.4.12.log; done; -``` - -If you're interested in how performance varies between different node versions, you can issue the above command multiple times. - -You can then use the shell script `bench.sh` provided in this directory to calculate the averages over all benchmark runs and draw a nice plot: - -``` -(cd benchmark/ && ./bench.sh) -``` - -This assumes you have [gnuplot](http://www.gnuplot.info/) and [ImageMagick](http://www.imagemagick.org/) installed. You'll find a nice `bench.png` graph in the `benchmark/` directory then. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu deleted file mode 100644 index a342fbbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu +++ /dev/null @@ -1,174 +0,0 @@ -#!/opt/local/bin/gnuplot -persist -# -# -# G N U P L O T -# Version 4.4 patchlevel 3 -# last modified March 2011 -# System: Darwin 10.8.0 -# -# Copyright (C) 1986-1993, 1998, 2004, 2007-2010 -# Thomas Williams, Colin Kelley and many others -# -# gnuplot home: http://www.gnuplot.info -# faq, bugs, etc: type "help seeking-assistance" -# immediate help: type "help" -# plot window: hit 'h' -set terminal postscript eps noenhanced defaultplex \ - leveldefault color colortext \ - solid linewidth 1.2 butt noclip \ - palfuncparam 2000,0.003 \ - "Helvetica" 14 -set output 'bench.eps' -unset clip points -set clip one -unset clip two -set bar 1.000000 front -set border 31 front linetype -1 linewidth 1.000 -set xdata -set ydata -set zdata -set x2data -set y2data -set timefmt x "%d/%m/%y,%H:%M" -set timefmt y "%d/%m/%y,%H:%M" -set timefmt z "%d/%m/%y,%H:%M" -set timefmt x2 "%d/%m/%y,%H:%M" -set timefmt y2 "%d/%m/%y,%H:%M" -set timefmt cb "%d/%m/%y,%H:%M" -set boxwidth -set style fill empty border -set style rectangle back fc lt -3 fillstyle solid 1.00 border lt -1 -set style circle radius graph 0.02, first 0, 0 -set dummy x,y -set format x "% g" -set format y "% g" -set format x2 "% g" -set format y2 "% g" -set format z "% g" -set format cb "% g" -set angles radians -unset grid -set key title "" -set key outside left top horizontal Right noreverse enhanced autotitles columnhead nobox -set key noinvert samplen 4 spacing 1 width 0 height 0 -set key maxcolumns 2 maxrows 0 -unset label -unset arrow -set style increment default -unset style line -set style line 1 linetype 1 linewidth 2.000 pointtype 1 pointsize default pointinterval 0 -unset style arrow -set style histogram clustered gap 2 title offset character 0, 0, 0 -unset logscale -set offsets graph 0.05, 0.15, 0, 0 -set pointsize 1.5 -set pointintervalbox 1 -set encoding default -unset polar -unset parametric -unset decimalsign -set view 60, 30, 1, 1 -set samples 100, 100 -set isosamples 10, 10 -set surface -unset contour -set clabel '%8.3g' -set mapping cartesian -set datafile separator whitespace -unset hidden3d -set cntrparam order 4 -set cntrparam linear -set cntrparam levels auto 5 -set cntrparam points 5 -set size ratio 0 1,1 -set origin 0,0 -set style data points -set style function lines -set xzeroaxis linetype -2 linewidth 1.000 -set yzeroaxis linetype -2 linewidth 1.000 -set zzeroaxis linetype -2 linewidth 1.000 -set x2zeroaxis linetype -2 linewidth 1.000 -set y2zeroaxis linetype -2 linewidth 1.000 -set ticslevel 0.5 -set mxtics default -set mytics default -set mztics default -set mx2tics default -set my2tics default -set mcbtics default -set xtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set xtics norangelimit -set xtics () -set ytics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set ytics autofreq norangelimit -set ztics border in scale 1,0.5 nomirror norotate offset character 0, 0, 0 -set ztics autofreq norangelimit -set nox2tics -set noy2tics -set cbtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set cbtics autofreq norangelimit -set title "" -set title offset character 0, 0, 0 font "" norotate -set timestamp bottom -set timestamp "" -set timestamp offset character 0, 0, 0 font "" norotate -set rrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] ) -set autoscale rfixmin -set autoscale rfixmax -set trange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] ) -set autoscale tfixmin -set autoscale tfixmax -set urange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale ufixmin -set autoscale ufixmax -set vrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale vfixmin -set autoscale vfixmax -set xlabel "" -set xlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate -set x2label "" -set x2label offset character 0, 0, 0 font "" textcolor lt -1 norotate -set xrange [ * : * ] noreverse nowriteback # (currently [-0.150000:3.15000] ) -set autoscale xfixmin -set autoscale xfixmax -set x2range [ * : * ] noreverse nowriteback # (currently [0.00000:3.00000] ) -set autoscale x2fixmin -set autoscale x2fixmax -set ylabel "" -set ylabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set y2label "" -set y2label offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set yrange [ 0.00000 : 1.90000e+06 ] noreverse nowriteback # (currently [:] ) -set autoscale yfixmin -set autoscale yfixmax -set y2range [ * : * ] noreverse nowriteback # (currently [0.00000:1.90000e+06] ) -set autoscale y2fixmin -set autoscale y2fixmax -set zlabel "" -set zlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate -set zrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale zfixmin -set autoscale zfixmax -set cblabel "" -set cblabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set cbrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] ) -set autoscale cbfixmin -set autoscale cbfixmax -set zero 1e-08 -set lmargin -1 -set bmargin -1 -set rmargin -1 -set tmargin -1 -set pm3d explicit at s -set pm3d scansautomatic -set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean -set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB -set palette rgbformulae 7, 5, 15 -set colorbox default -set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault -set loadpath -set fontpath -set fit noerrorvariables -GNUTERM = "aqua" -plot 'bench_results.txt' using 2:xticlabel(1) w lp lw 2, '' using 3:xticlabel(1) w lp lw 2, '' using 4:xticlabel(1) w lp lw 2, '' using 5:xticlabel(1) w lp lw 2, '' using 6:xticlabel(1) w lp lw 2, '' using 7:xticlabel(1) w lp lw 2, '' using 8:xticlabel(1) w lp lw 2, '' using 9:xticlabel(1) w lp lw 2 -# EOF diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/bench.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/bench.sh deleted file mode 100755 index d870a0cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/bench.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -# for a given node version run: -# for i in {0..9}; do node benchmark.js >> bench_0.6.2.log; done; - -PATTERNS=('nodeuuid.v1()' "nodeuuid.v1('binary'," 'nodeuuid.v4()' "nodeuuid.v4('binary'," "uuid()" "uuid('binary')" 'uuidjs.create(1)' 'uuidjs.create(4)' '140byte') -FILES=(node_uuid_v1_string node_uuid_v1_buf node_uuid_v4_string node_uuid_v4_buf libuuid_v4_string libuuid_v4_binary uuidjs_v1_string uuidjs_v4_string 140byte_es) -INDICES=(2 3 2 3 2 2 2 2 2) -VERSIONS=$( ls bench_*.log | sed -e 's/^bench_\([0-9\.]*\)\.log/\1/' | tr "\\n" " " ) -TMPJOIN="tmp_join" -OUTPUT="bench_results.txt" - -for I in ${!FILES[*]}; do - F=${FILES[$I]} - P=${PATTERNS[$I]} - INDEX=${INDICES[$I]} - echo "version $F" > $F - for V in $VERSIONS; do - (VAL=$( grep "$P" bench_$V.log | LC_ALL=en_US awk '{ sum += $'$INDEX' } END { print sum/NR }' ); echo $V $VAL) >> $F - done - if [ $I == 0 ]; then - cat $F > $TMPJOIN - else - join $TMPJOIN $F > $OUTPUT - cp $OUTPUT $TMPJOIN - fi - rm $F -done - -rm $TMPJOIN - -gnuplot bench.gnu -convert -density 200 -resize 800x560 -flatten bench.eps bench.png -rm bench.eps diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c deleted file mode 100644 index dbfc75f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c +++ /dev/null @@ -1,34 +0,0 @@ -/* -Test performance of native C UUID generation - -To Compile: cc -luuid benchmark-native.c -o benchmark-native -*/ - -#include -#include -#include -#include - -int main() { - uuid_t myid; - char buf[36+1]; - int i; - struct timeval t; - double start, finish; - - gettimeofday(&t, NULL); - start = t.tv_sec + t.tv_usec/1e6; - - int n = 2e5; - for (i = 0; i < n; i++) { - uuid_generate(myid); - uuid_unparse(myid, buf); - } - - gettimeofday(&t, NULL); - finish = t.tv_sec + t.tv_usec/1e6; - double dur = finish - start; - - printf("%d uuids/sec", (int)(n/dur)); - return 0; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js deleted file mode 100644 index 40e6efbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js +++ /dev/null @@ -1,84 +0,0 @@ -try { - var nodeuuid = require('../uuid'); -} catch (e) { - console.error('node-uuid require failed - skipping tests'); -} - -try { - var uuid = require('uuid'); -} catch (e) { - console.error('uuid require failed - skipping tests'); -} - -try { - var uuidjs = require('uuid-js'); -} catch (e) { - console.error('uuid-js require failed - skipping tests'); -} - -var N = 5e5; - -function rate(msg, t) { - console.log(msg + ': ' + - (N / (Date.now() - t) * 1e3 | 0) + - ' uuids/second'); -} - -console.log('# v4'); - -// node-uuid - string form -if (nodeuuid) { - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4(); - rate('nodeuuid.v4() - using node.js crypto RNG', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4({rng: nodeuuid.mathRNG}); - rate('nodeuuid.v4() - using Math.random() RNG', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary'); - rate('nodeuuid.v4(\'binary\')', t); - - var buffer = new nodeuuid.BufferClass(16); - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary', buffer); - rate('nodeuuid.v4(\'binary\', buffer)', t); -} - -// libuuid - string form -if (uuid) { - for (var i = 0, t = Date.now(); i < N; i++) uuid(); - rate('uuid()', t); - - for (var i = 0, t = Date.now(); i < N; i++) uuid('binary'); - rate('uuid(\'binary\')', t); -} - -// uuid-js - string form -if (uuidjs) { - for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(4); - rate('uuidjs.create(4)', t); -} - -// 140byte.es -for (var i = 0, t = Date.now(); i < N; i++) 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(s,r){r=Math.random()*16|0;return (s=='x'?r:r&0x3|0x8).toString(16)}); -rate('140byte.es_v4', t); - -console.log(''); -console.log('# v1'); - -// node-uuid - v1 string form -if (nodeuuid) { - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1(); - rate('nodeuuid.v1()', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary'); - rate('nodeuuid.v1(\'binary\')', t); - - var buffer = new nodeuuid.BufferClass(16); - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary', buffer); - rate('nodeuuid.v1(\'binary\', buffer)', t); -} - -// uuid-js - v1 string form -if (uuidjs) { - for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(1); - rate('uuidjs.create(1)', t); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/bin/uuid b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/bin/uuid deleted file mode 100755 index f732e991..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/bin/uuid +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env node - -var path = require('path'); -var uuid = require(path.join(__dirname, '..')); - -var arg = process.argv[2]; - -if ('--help' === arg) { - console.log('\n USAGE: uuid [version] [options]\n\n'); - console.log(' options:\n'); - console.log(' --help Display this message and exit\n'); - process.exit(0); -} - -if (null == arg) { - console.log(uuid()); - process.exit(0); -} - -if ('v1' !== arg && 'v4' !== arg) { - console.error('Version must be RFC4122 version 1 or version 4, denoted as "v1" or "v4"'); - process.exit(1); -} - -console.log(uuid[arg]()); -process.exit(0); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/bower.json deleted file mode 100644 index c0925e19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/bower.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "node-uuid", - "version": "1.4.7", - "homepage": "https://github.com/broofa/node-uuid", - "authors": [ - "Robert Kieffer " - ], - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "main": "uuid.js", - "keywords": [ - "uuid", - "gid", - "rfc4122" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/component.json deleted file mode 100644 index 3ff46336..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/component.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "node-uuid", - "repo": "broofa/node-uuid", - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "version": "1.4.7", - "author": "Robert Kieffer ", - "contributors": [ - { - "name": "Christoph Tavan ", - "github": "https://github.com/ctavan" - } - ], - "keywords": [ - "uuid", - "guid", - "rfc4122" - ], - "dependencies": {}, - "development": {}, - "main": "uuid.js", - "scripts": [ - "uuid.js" - ], - "license": "MIT" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/package.json deleted file mode 100644 index 2f578874..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "author": { - "name": "Robert Kieffer", - "email": "robert@broofa.com" - }, - "bin": { - "uuid": "./bin/uuid" - }, - "bugs": { - "url": "https://github.com/broofa/node-uuid/issues" - }, - "contributors": [ - { - "name": "AJ ONeal", - "email": "coolaj86@gmail.com" - }, - { - "name": "Christoph Tavan", - "email": "dev@tavan.de" - } - ], - "dependencies": {}, - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "devDependencies": { - "nyc": "^2.2.0" - }, - "directories": {}, - "homepage": "https://github.com/broofa/node-uuid", - "installable": true, - "keywords": [ - "guid", - "rfc4122", - "uuid" - ], - "lib": ".", - "licenses": [ - { - "type": "MIT", - "url": "https://raw.github.com/broofa/node-uuid/master/LICENSE.md" - } - ], - "main": "./uuid.js", - "maintainers": [ - { - "name": "broofa", - "email": "robert@broofa.com" - }, - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - } - ], - "name": "node-uuid", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/broofa/node-uuid.git" - }, - "scripts": { - "coverage": "nyc npm test && nyc report", - "test": "node test/test.js" - }, - "url": "http://github.com/broofa/node-uuid", - "version": "1.4.7", - "gitHead": "309512573ec1c60143c257157479a20f7f1f51cd", - "_id": "node-uuid@1.4.7", - "_shasum": "6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f", - "_from": "node-uuid@>=1.4.7 <1.5.0", - "_npmVersion": "3.3.6", - "_nodeVersion": "5.0.0", - "_npmUser": { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - "dist": { - "shasum": "6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f", - "tarball": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - }, - "_resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/test/compare_v1.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/test/compare_v1.js deleted file mode 100644 index 05af8221..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/test/compare_v1.js +++ /dev/null @@ -1,63 +0,0 @@ -var assert = require('assert'), - nodeuuid = require('../uuid'), - uuidjs = require('uuid-js'), - libuuid = require('uuid').generate, - util = require('util'), - exec = require('child_process').exec, - os = require('os'); - -// On Mac Os X / macports there's only the ossp-uuid package that provides uuid -// On Linux there's uuid-runtime which provides uuidgen -var uuidCmd = os.type() === 'Darwin' ? 'uuid -1' : 'uuidgen -t'; - -function compare(ids) { - console.log(ids); - for (var i = 0; i < ids.length; i++) { - var id = ids[i].split('-'); - id = [id[2], id[1], id[0]].join(''); - ids[i] = id; - } - var sorted = ([].concat(ids)).sort(); - - if (sorted.toString() !== ids.toString()) { - console.log('Warning: sorted !== ids'); - } else { - console.log('everything in order!'); - } -} - -// Test time order of v1 uuids -var ids = []; -while (ids.length < 10e3) ids.push(nodeuuid.v1()); - -var max = 10; -console.log('node-uuid:'); -ids = []; -for (var i = 0; i < max; i++) ids.push(nodeuuid.v1()); -compare(ids); - -console.log(''); -console.log('uuidjs:'); -ids = []; -for (var i = 0; i < max; i++) ids.push(uuidjs.create(1).toString()); -compare(ids); - -console.log(''); -console.log('libuuid:'); -ids = []; -var count = 0; -var last = function() { - compare(ids); -} -var cb = function(err, stdout, stderr) { - ids.push(stdout.substring(0, stdout.length-1)); - count++; - if (count < max) { - return next(); - } - last(); -}; -var next = function() { - exec(uuidCmd, cb); -}; -next(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/test/test.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/test/test.html deleted file mode 100644 index d80326ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/test/test.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/test/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/test/test.js deleted file mode 100644 index 5f1113d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/test/test.js +++ /dev/null @@ -1,231 +0,0 @@ -if (!this.uuid) { - // node.js - uuid = require('../uuid'); - if (!/_rb/.test(uuid._rng.toString())) { - throw new Error("should use crypto for node.js"); - } -} - -// -// x-platform log/assert shims -// - -function _log(msg, type) { - type = type || 'log'; - - if (typeof(document) != 'undefined') { - document.write('
          ' + msg.replace(/\n/g, '
          ') + '
          '); - } - if (typeof(console) != 'undefined') { - var color = { - log: '\033[39m', - warn: '\033[33m', - error: '\033[31m' - }; - console[type](color[type] + msg + color.log); - } -} - -function log(msg) {_log(msg, 'log');} -function warn(msg) {_log(msg, 'warn');} -function error(msg) {_log(msg, 'error');} - -function assert(res, msg) { - if (!res) { - error('FAIL: ' + msg); - } else { - log('Pass: ' + msg); - } -} - -// -// Unit tests -// - -// Verify ordering of v1 ids created with explicit times -var TIME = 1321644961388; // 2011-11-18 11:36:01.388-08:00 - -function compare(name, ids) { - ids = ids.map(function(id) { - return id.split('-').reverse().join('-'); - }).sort(); - var sorted = ([].concat(ids)).sort(); - - assert(sorted.toString() == ids.toString(), name + ' have expected order'); -} - -// Verify ordering of v1 ids created using default behavior -compare('uuids with current time', [ - uuid.v1(), - uuid.v1(), - uuid.v1(), - uuid.v1(), - uuid.v1() -]); - -// Verify ordering of v1 ids created with explicit times -compare('uuids with time option', [ - uuid.v1({msecs: TIME - 10*3600*1000}), - uuid.v1({msecs: TIME - 1}), - uuid.v1({msecs: TIME}), - uuid.v1({msecs: TIME + 1}), - uuid.v1({msecs: TIME + 28*24*3600*1000}) -]); - -assert( - uuid.v1({msecs: TIME}) != uuid.v1({msecs: TIME}), - 'IDs created at same msec are different' -); - -// Verify throw if too many ids created -var thrown = false; -try { - uuid.v1({msecs: TIME, nsecs: 10000}); -} catch (e) { - thrown = true; -} -assert(thrown, 'Exception thrown when > 10K ids created in 1 ms'); - -// Verify clock regression bumps clockseq -var uidt = uuid.v1({msecs: TIME}); -var uidtb = uuid.v1({msecs: TIME - 1}); -assert( - parseInt(uidtb.split('-')[3], 16) - parseInt(uidt.split('-')[3], 16) === 1, - 'Clock regression by msec increments the clockseq' -); - -// Verify clock regression bumps clockseq -var uidtn = uuid.v1({msecs: TIME, nsecs: 10}); -var uidtnb = uuid.v1({msecs: TIME, nsecs: 9}); -assert( - parseInt(uidtnb.split('-')[3], 16) - parseInt(uidtn.split('-')[3], 16) === 1, - 'Clock regression by nsec increments the clockseq' -); - -// Verify explicit options produce expected id -var id = uuid.v1({ - msecs: 1321651533573, - nsecs: 5432, - clockseq: 0x385c, - node: [ 0x61, 0xcd, 0x3c, 0xbb, 0x32, 0x10 ] -}); -assert(id == 'd9428888-122b-11e1-b85c-61cd3cbb3210', 'Explicit options produce expected id'); - -// Verify adjacent ids across a msec boundary are 1 time unit apart -var u0 = uuid.v1({msecs: TIME, nsecs: 9999}); -var u1 = uuid.v1({msecs: TIME + 1, nsecs: 0}); - -var before = u0.split('-')[0], after = u1.split('-')[0]; -var dt = parseInt(after, 16) - parseInt(before, 16); -assert(dt === 1, 'Ids spanning 1ms boundary are 100ns apart'); - -// -// Test parse/unparse -// - -id = '00112233445566778899aabbccddeeff'; -assert(uuid.unparse(uuid.parse(id.substr(0,10))) == - '00112233-4400-0000-0000-000000000000', 'Short parse'); -assert(uuid.unparse(uuid.parse('(this is the uuid -> ' + id + id)) == - '00112233-4455-6677-8899-aabbccddeeff', 'Dirty parse'); - -// -// Perf tests -// - -var generators = { - v1: uuid.v1, - v4: uuid.v4 -}; - -var UUID_FORMAT = { - v1: /[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i, - v4: /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i -}; - -var N = 1e4; - -// Get %'age an actual value differs from the ideal value -function divergence(actual, ideal) { - return Math.round(100*100*(actual - ideal)/ideal)/100; -} - -function rate(msg, t) { - log(msg + ': ' + (N / (Date.now() - t) * 1e3 | 0) + ' uuids\/second'); -} - -for (var version in generators) { - var counts = {}, max = 0; - var generator = generators[version]; - var format = UUID_FORMAT[version]; - - log('\nSanity check ' + N + ' ' + version + ' uuids'); - for (var i = 0, ok = 0; i < N; i++) { - id = generator(); - if (!format.test(id)) { - throw Error(id + ' is not a valid UUID string'); - } - - if (id != uuid.unparse(uuid.parse(id))) { - assert(fail, id + ' is not a valid id'); - } - - // Count digits for our randomness check - if (version == 'v4') { - var digits = id.replace(/-/g, '').split(''); - for (var j = digits.length-1; j >= 0; j--) { - var c = digits[j]; - max = Math.max(max, counts[c] = (counts[c] || 0) + 1); - } - } - } - - // Check randomness for v4 UUIDs - if (version == 'v4') { - // Limit that we get worried about randomness. (Purely empirical choice, this!) - var limit = 2*100*Math.sqrt(1/N); - - log('\nChecking v4 randomness. Distribution of Hex Digits (% deviation from ideal)'); - - for (var i = 0; i < 16; i++) { - var c = i.toString(16); - var bar = '', n = counts[c], p = Math.round(n/max*100|0); - - // 1-3,5-8, and D-F: 1:16 odds over 30 digits - var ideal = N*30/16; - if (i == 4) { - // 4: 1:1 odds on 1 digit, plus 1:16 odds on 30 digits - ideal = N*(1 + 30/16); - } else if (i >= 8 && i <= 11) { - // 8-B: 1:4 odds on 1 digit, plus 1:16 odds on 30 digits - ideal = N*(1/4 + 30/16); - } else { - // Otherwise: 1:16 odds on 30 digits - ideal = N*30/16; - } - var d = divergence(n, ideal); - - // Draw bar using UTF squares (just for grins) - var s = n/max*50 | 0; - while (s--) bar += '='; - - assert(Math.abs(d) < limit, c + ' |' + bar + '| ' + counts[c] + ' (' + d + '% < ' + limit + '%)'); - } - } -} - -// Perf tests -for (var version in generators) { - log('\nPerformance testing ' + version + ' UUIDs'); - var generator = generators[version]; - var buf = new uuid.BufferClass(16); - - for (var i = 0, t = Date.now(); i < N; i++) generator(); - rate('uuid.' + version + '()', t); - - for (var i = 0, t = Date.now(); i < N; i++) generator('binary'); - rate('uuid.' + version + '(\'binary\')', t); - - for (var i = 0, t = Date.now(); i < N; i++) generator('binary', buf); - rate('uuid.' + version + '(\'binary\', buffer)', t); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/uuid.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/uuid.js deleted file mode 100644 index 89c5b8fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/node-uuid/uuid.js +++ /dev/null @@ -1,272 +0,0 @@ -// uuid.js -// -// Copyright (c) 2010-2012 Robert Kieffer -// MIT License - http://opensource.org/licenses/mit-license.php - -/*global window, require, define */ -(function(_window) { - 'use strict'; - - // Unique ID creation requires a high quality random # generator. We feature - // detect to determine the best RNG source, normalizing to a function that - // returns 128-bits of randomness, since that's what's usually required - var _rng, _mathRNG, _nodeRNG, _whatwgRNG, _previousRoot; - - function setupBrowser() { - // Allow for MSIE11 msCrypto - var _crypto = _window.crypto || _window.msCrypto; - - if (!_rng && _crypto && _crypto.getRandomValues) { - // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto - // - // Moderately fast, high quality - try { - var _rnds8 = new Uint8Array(16); - _whatwgRNG = _rng = function whatwgRNG() { - _crypto.getRandomValues(_rnds8); - return _rnds8; - }; - _rng(); - } catch(e) {} - } - - if (!_rng) { - // Math.random()-based (RNG) - // - // If all else fails, use Math.random(). It's fast, but is of unspecified - // quality. - var _rnds = new Array(16); - _mathRNG = _rng = function() { - for (var i = 0, r; i < 16; i++) { - if ((i & 0x03) === 0) { r = Math.random() * 0x100000000; } - _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - - return _rnds; - }; - if ('undefined' !== typeof console && console.warn) { - console.warn("[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()"); - } - } - } - - function setupNode() { - // Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html - // - // Moderately fast, high quality - if ('function' === typeof require) { - try { - var _rb = require('crypto').randomBytes; - _nodeRNG = _rng = _rb && function() {return _rb(16);}; - _rng(); - } catch(e) {} - } - } - - if (_window) { - setupBrowser(); - } else { - setupNode(); - } - - // Buffer class to use - var BufferClass = ('function' === typeof Buffer) ? Buffer : Array; - - // Maps for number <-> hex string conversion - var _byteToHex = []; - var _hexToByte = {}; - for (var i = 0; i < 256; i++) { - _byteToHex[i] = (i + 0x100).toString(16).substr(1); - _hexToByte[_byteToHex[i]] = i; - } - - // **`parse()` - Parse a UUID into it's component bytes** - function parse(s, buf, offset) { - var i = (buf && offset) || 0, ii = 0; - - buf = buf || []; - s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) { - if (ii < 16) { // Don't overflow! - buf[i + ii++] = _hexToByte[oct]; - } - }); - - // Zero out remaining bytes if string was short - while (ii < 16) { - buf[i + ii++] = 0; - } - - return buf; - } - - // **`unparse()` - Convert UUID byte array (ala parse()) into a string** - function unparse(buf, offset) { - var i = offset || 0, bth = _byteToHex; - return bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]]; - } - - // **`v1()` - Generate time-based UUID** - // - // Inspired by https://github.com/LiosK/UUID.js - // and http://docs.python.org/library/uuid.html - - // random #'s we need to init node and clockseq - var _seedBytes = _rng(); - - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - var _nodeId = [ - _seedBytes[0] | 0x01, - _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5] - ]; - - // Per 4.2.2, randomize (14 bit) clockseq - var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff; - - // Previous uuid creation time - var _lastMSecs = 0, _lastNSecs = 0; - - // See https://github.com/broofa/node-uuid for API details - function v1(options, buf, offset) { - var i = buf && offset || 0; - var b = buf || []; - - options = options || {}; - - var clockseq = (options.clockseq != null) ? options.clockseq : _clockseq; - - // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - var msecs = (options.msecs != null) ? options.msecs : new Date().getTime(); - - // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - var nsecs = (options.nsecs != null) ? options.nsecs : _lastNSecs + 1; - - // Time since last uuid creation (in msecs) - var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; - - // Per 4.2.1.2, Bump clockseq on clock regression - if (dt < 0 && options.clockseq == null) { - clockseq = clockseq + 1 & 0x3fff; - } - - // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) { - nsecs = 0; - } - - // Per 4.2.1.2 Throw error if too many uuids are requested - if (nsecs >= 10000) { - throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; - - // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - msecs += 12219292800000; - - // `time_low` - var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; - - // `time_mid` - var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; - - // `time_high_and_version` - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - b[i++] = tmh >>> 16 & 0xff; - - // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - b[i++] = clockseq >>> 8 | 0x80; - - // `clock_seq_low` - b[i++] = clockseq & 0xff; - - // `node` - var node = options.node || _nodeId; - for (var n = 0; n < 6; n++) { - b[i + n] = node[n]; - } - - return buf ? buf : unparse(b); - } - - // **`v4()` - Generate random UUID** - - // See https://github.com/broofa/node-uuid for API details - function v4(options, buf, offset) { - // Deprecated - 'format' argument, as supported in v1.2 - var i = buf && offset || 0; - - if (typeof(options) === 'string') { - buf = (options === 'binary') ? new BufferClass(16) : null; - options = null; - } - options = options || {}; - - var rnds = options.random || (options.rng || _rng)(); - - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = (rnds[6] & 0x0f) | 0x40; - rnds[8] = (rnds[8] & 0x3f) | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ii++) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || unparse(rnds); - } - - // Export public API - var uuid = v4; - uuid.v1 = v1; - uuid.v4 = v4; - uuid.parse = parse; - uuid.unparse = unparse; - uuid.BufferClass = BufferClass; - uuid._rng = _rng; - uuid._mathRNG = _mathRNG; - uuid._nodeRNG = _nodeRNG; - uuid._whatwgRNG = _whatwgRNG; - - if (('undefined' !== typeof module) && module.exports) { - // Publish as node.js module - module.exports = uuid; - } else if (typeof define === 'function' && define.amd) { - // Publish as AMD module - define(function() {return uuid;}); - - - } else { - // Publish as global (in browsers) - _previousRoot = _window.uuid; - - // **`noConflict()` - (browser only) to reset global 'uuid' var** - uuid.noConflict = function() { - _window.uuid = _previousRoot; - return uuid; - }; - - _window.uuid = uuid; - } -})('undefined' !== typeof window ? window : null); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/LICENSE deleted file mode 100644 index a4a9aee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/README.md deleted file mode 100644 index 34c4a85d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/README.md +++ /dev/null @@ -1,4 +0,0 @@ -oauth-sign -========== - -OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/index.js deleted file mode 100644 index dadcba97..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/index.js +++ /dev/null @@ -1,136 +0,0 @@ -var crypto = require('crypto') - , qs = require('querystring') - ; - -function sha1 (key, body) { - return crypto.createHmac('sha1', key).update(body).digest('base64') -} - -function rsa (key, body) { - return crypto.createSign("RSA-SHA1").update(body).sign(key, 'base64'); -} - -function rfc3986 (str) { - return encodeURIComponent(str) - .replace(/!/g,'%21') - .replace(/\*/g,'%2A') - .replace(/\(/g,'%28') - .replace(/\)/g,'%29') - .replace(/'/g,'%27') - ; -} - -// Maps object to bi-dimensional array -// Converts { foo: 'A', bar: [ 'b', 'B' ]} to -// [ ['foo', 'A'], ['bar', 'b'], ['bar', 'B'] ] -function map (obj) { - var key, val, arr = [] - for (key in obj) { - val = obj[key] - if (Array.isArray(val)) - for (var i = 0; i < val.length; i++) - arr.push([key, val[i]]) - else if (typeof val === "object") - for (var prop in val) - arr.push([key + '[' + prop + ']', val[prop]]); - else - arr.push([key, val]) - } - return arr -} - -// Compare function for sort -function compare (a, b) { - return a > b ? 1 : a < b ? -1 : 0 -} - -function generateBase (httpMethod, base_uri, params) { - // adapted from https://dev.twitter.com/docs/auth/oauth and - // https://dev.twitter.com/docs/auth/creating-signature - - // Parameter normalization - // http://tools.ietf.org/html/rfc5849#section-3.4.1.3.2 - var normalized = map(params) - // 1. First, the name and value of each parameter are encoded - .map(function (p) { - return [ rfc3986(p[0]), rfc3986(p[1] || '') ] - }) - // 2. The parameters are sorted by name, using ascending byte value - // ordering. If two or more parameters share the same name, they - // are sorted by their value. - .sort(function (a, b) { - return compare(a[0], b[0]) || compare(a[1], b[1]) - }) - // 3. The name of each parameter is concatenated to its corresponding - // value using an "=" character (ASCII code 61) as a separator, even - // if the value is empty. - .map(function (p) { return p.join('=') }) - // 4. The sorted name/value pairs are concatenated together into a - // single string by using an "&" character (ASCII code 38) as - // separator. - .join('&') - - var base = [ - rfc3986(httpMethod ? httpMethod.toUpperCase() : 'GET'), - rfc3986(base_uri), - rfc3986(normalized) - ].join('&') - - return base -} - -function hmacsign (httpMethod, base_uri, params, consumer_secret, token_secret) { - var base = generateBase(httpMethod, base_uri, params) - var key = [ - consumer_secret || '', - token_secret || '' - ].map(rfc3986).join('&') - - return sha1(key, base) -} - -function rsasign (httpMethod, base_uri, params, private_key, token_secret) { - var base = generateBase(httpMethod, base_uri, params) - var key = private_key || '' - - return rsa(key, base) -} - -function plaintext (consumer_secret, token_secret) { - var key = [ - consumer_secret || '', - token_secret || '' - ].map(rfc3986).join('&') - - return key -} - -function sign (signMethod, httpMethod, base_uri, params, consumer_secret, token_secret) { - var method - var skipArgs = 1 - - switch (signMethod) { - case 'RSA-SHA1': - method = rsasign - break - case 'HMAC-SHA1': - method = hmacsign - break - case 'PLAINTEXT': - method = plaintext - skipArgs = 4 - break - default: - throw new Error("Signature method not supported: " + signMethod) - } - - return method.apply(null, [].slice.call(arguments, skipArgs)) -} - -exports.hmacsign = hmacsign -exports.rsasign = rsasign -exports.plaintext = plaintext -exports.sign = sign -exports.rfc3986 = rfc3986 -exports.generateBase = generateBase - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/package.json deleted file mode 100644 index cf1eeb77..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/oauth-sign/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com", - "url": "http://www.futurealoof.com" - }, - "name": "oauth-sign", - "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.", - "version": "0.8.2", - "license": "Apache-2.0", - "repository": { - "url": "git+https://github.com/mikeal/oauth-sign.git" - }, - "main": "index.js", - "files": [ - "index.js" - ], - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" - }, - "scripts": { - "test": "node test.js" - }, - "gitHead": "0b034206316132f57e26970152c2fb18e71bddd5", - "bugs": { - "url": "https://github.com/mikeal/oauth-sign/issues" - }, - "homepage": "https://github.com/mikeal/oauth-sign#readme", - "_id": "oauth-sign@0.8.2", - "_shasum": "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43", - "_from": "oauth-sign@>=0.8.1 <0.9.0", - "_npmVersion": "2.15.3", - "_nodeVersion": "5.9.0", - "_npmUser": { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - }, - "dist": { - "shasum": "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43", - "tarball": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" - }, - "maintainers": [ - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - { - "name": "nylen", - "email": "jnylen@gmail.com" - }, - { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/oauth-sign-0.8.2.tgz_1462396399020_0.8175400267355144" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/.eslintignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/.eslintignore deleted file mode 100644 index 1521c8b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -dist diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/.eslintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/.eslintrc deleted file mode 100644 index e5c4f806..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/.eslintrc +++ /dev/null @@ -1,19 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "complexity": [2, 25], - "consistent-return": [1], - "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], - "indent": [2, 4], - "max-params": [2, 11], - "max-statements": [2, 42], - "no-extra-parens": [1], - "no-continue": [1], - "no-magic-numbers": 0, - "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], - "operator-linebreak": 1 - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/CHANGELOG.md deleted file mode 100644 index 351edd4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/CHANGELOG.md +++ /dev/null @@ -1,144 +0,0 @@ -## **6.3.0** -- [New] Add support for RFC 1738 (#174, #173) -- [New] `stringify`: Add `serializeDate` option to customize Date serialization (#159) -- [Fix] ensure `utils.merge` handles merging two arrays -- [Refactor] only constructors should be capitalized -- [Refactor] capitalized var names are for constructors only -- [Refactor] avoid using a sparse array -- [Robustness] `formats`: cache `String#replace` -- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`; add `safe-publish-latest` -- [Tests] up to `node` `v6.8`, `v4.6`; improve test matrix -- [Tests] flesh out arrayLimit/arrayFormat tests (#107) -- [Tests] skip Object.create tests when null objects are not available -- [Tests] Turn on eslint for test files (#175) - -## **6.2.1** -- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values -- [Refactor] Be explicit and use `Object.prototype.hasOwnProperty.call` -- [Tests] remove `parallelshell` since it does not reliably report failures -- [Tests] up to `node` `v6.3`, `v5.12` -- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`, `qs-iconv` - -## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed) -- [New] pass Buffers to the encoder/decoder directly (#161) -- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160) -- [Fix] fix compacting of nested sparse arrays (#150) - -## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed) -- [New] allowDots option for `stringify` (#151) -- [Fix] "sort" option should work at a depth of 3 or more (#151) -- [Fix] Restore `dist` directory; will be removed in v7 (#148) - -## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed) -- Revert ES6 requirement and restore support for node down to v0.8. - -## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed) -- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json - -## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed) -- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4 - -## **5.2.1** -- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values - -## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed) -- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string - -## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed) -- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional -- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify - -## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed) -- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false -- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm - -## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed) -- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional - -## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed) -- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation" - -## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed) -- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties -- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost -- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing -- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object -- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option -- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects. -- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47 -- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986 -- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign -- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute - -## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed) -- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object # is not a function - -## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed) -- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option - -## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed) -- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57 -- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader - -## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed) -- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object - -## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed) -- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError". - -## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed) -- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46 - -## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed) -- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer? -- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45 -- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39 - -## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed) -- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number - -## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed) -- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array -- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x - -## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed) -- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value -- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty -- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver? - -## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed) -- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31 -- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects - -## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed) -- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present -- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays -- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge -- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters? - -## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed) -- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter - -## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed) -- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit? -- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit -- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20 - -## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed) -- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values - -## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed) -- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters -- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block - -## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed) -- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument -- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed - -## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed) -- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted -- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null -- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README - -## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed) -- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/CONTRIBUTING.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/CONTRIBUTING.md deleted file mode 100644 index 89283615..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/CONTRIBUTING.md +++ /dev/null @@ -1 +0,0 @@ -Please view our [hapijs contributing guide](https://github.com/hapijs/hapi/blob/master/CONTRIBUTING.md). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/LICENSE deleted file mode 100644 index d4569487..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2014 Nathan LaFreniere and other 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. - * The names of any contributors may not 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 HOLDERS AND 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. - - * * * - -The complete list of contributors can be found at: https://github.com/hapijs/qs/graphs/contributors diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/README.md deleted file mode 100644 index ac1e7f16..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/README.md +++ /dev/null @@ -1,398 +0,0 @@ -# qs - -A querystring parsing and stringifying library with some added security. - -[![Build Status](https://api.travis-ci.org/ljharb/qs.svg)](http://travis-ci.org/ljharb/qs) - -Lead Maintainer: [Jordan Harband](https://github.com/ljharb) - -The **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring). - -## Usage - -```javascript -var qs = require('qs'); -var assert = require('assert'); - -var obj = qs.parse('a=c'); -assert.deepEqual(obj, { a: 'c' }); - -var str = qs.stringify(obj); -assert.equal(str, 'a=c'); -``` - -### Parsing Objects - -[](#preventEval) -```javascript -qs.parse(string, [options]); -``` - -**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`. -For example, the string `'foo[bar]=baz'` converts to: - -```javascript -assert.deepEqual(qs.parse('foo[bar]=baz'), { - foo: { - bar: 'baz' - } -}); -``` - -When using the `plainObjects` option the parsed value is returned as a null object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like: - -```javascript -var nullObject = qs.parse('a[hasOwnProperty]=b', { plainObjects: true }); -assert.deepEqual(nullObject, { a: { hasOwnProperty: 'b' } }); -``` - -By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option. - -```javascript -var protoObject = qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }); -assert.deepEqual(protoObject, { a: { hasOwnProperty: 'b' } }); -``` - -URI encoded strings work too: - -```javascript -assert.deepEqual(qs.parse('a%5Bb%5D=c'), { - a: { b: 'c' } -}); -``` - -You can also nest your objects, like `'foo[bar][baz]=foobarbaz'`: - -```javascript -assert.deepEqual(qs.parse('foo[bar][baz]=foobarbaz'), { - foo: { - bar: { - baz: 'foobarbaz' - } - } -}); -``` - -By default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like -`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be: - -```javascript -var expected = { - a: { - b: { - c: { - d: { - e: { - f: { - '[g][h][i]': 'j' - } - } - } - } - } - } -}; -var string = 'a[b][c][d][e][f][g][h][i]=j'; -assert.deepEqual(qs.parse(string), expected); -``` - -This depth can be overridden by passing a `depth` option to `qs.parse(string, [options])`: - -```javascript -var deep = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 }); -assert.deepEqual(deep, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }); -``` - -The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number. - -For similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option: - -```javascript -var limited = qs.parse('a=b&c=d', { parameterLimit: 1 }); -assert.deepEqual(limited, { a: 'b' }); -``` - -An optional delimiter can also be passed: - -```javascript -var delimited = qs.parse('a=b;c=d', { delimiter: ';' }); -assert.deepEqual(delimited, { a: 'b', c: 'd' }); -``` - -Delimiters can be a regular expression too: - -```javascript -var regexed = qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ }); -assert.deepEqual(regexed, { a: 'b', c: 'd', e: 'f' }); -``` - -Option `allowDots` can be used to enable dot notation: - -```javascript -var withDots = qs.parse('a.b=c', { allowDots: true }); -assert.deepEqual(withDots, { a: { b: 'c' } }); -``` - -### Parsing Arrays - -**qs** can also parse arrays using a similar `[]` notation: - -```javascript -var withArray = qs.parse('a[]=b&a[]=c'); -assert.deepEqual(withArray, { a: ['b', 'c'] }); -``` - -You may specify an index as well: - -```javascript -var withIndexes = qs.parse('a[1]=c&a[0]=b'); -assert.deepEqual(withIndexes, { a: ['b', 'c'] }); -``` - -Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number -to create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving -their order: - -```javascript -var noSparse = qs.parse('a[1]=b&a[15]=c'); -assert.deepEqual(noSparse, { a: ['b', 'c'] }); -``` - -Note that an empty string is also a value, and will be preserved: - -```javascript -var withEmptyString = qs.parse('a[]=&a[]=b'); -assert.deepEqual(withEmptyString, { a: ['', 'b'] }); - -var withIndexedEmptyString = qs.parse('a[0]=b&a[1]=&a[2]=c'); -assert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] }); -``` - -**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will -instead be converted to an object with the index as the key: - -```javascript -var withMaxIndex = qs.parse('a[100]=b'); -assert.deepEqual(withMaxIndex, { a: { '100': 'b' } }); -``` - -This limit can be overridden by passing an `arrayLimit` option: - -```javascript -var withArrayLimit = qs.parse('a[1]=b', { arrayLimit: 0 }); -assert.deepEqual(withArrayLimit, { a: { '1': 'b' } }); -``` - -To disable array parsing entirely, set `parseArrays` to `false`. - -```javascript -var noParsingArrays = qs.parse('a[]=b', { parseArrays: false }); -assert.deepEqual(noParsingArrays, { a: { '0': 'b' } }); -``` - -If you mix notations, **qs** will merge the two items into an object: - -```javascript -var mixedNotation = qs.parse('a[0]=b&a[b]=c'); -assert.deepEqual(mixedNotation, { a: { '0': 'b', b: 'c' } }); -``` - -You can also create arrays of objects: - -```javascript -var arraysOfObjects = qs.parse('a[][b]=c'); -assert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] }); -``` - -### Stringifying - -[](#preventEval) -```javascript -qs.stringify(object, [options]); -``` - -When stringifying, **qs** by default URI encodes output. Objects are stringified as you would expect: - -```javascript -assert.equal(qs.stringify({ a: 'b' }), 'a=b'); -assert.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); -``` - -This encoding can be disabled by setting the `encode` option to `false`: - -```javascript -var unencoded = qs.stringify({ a: { b: 'c' } }, { encode: false }); -assert.equal(unencoded, 'a[b]=c'); -``` - -This encoding can also be replaced by a custom encoding method set as `encoder` option: - -```javascript -var encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str) { - // Passed in values `a`, `b`, `c` - return // Return encoded string -}}) -``` - -_(Note: the `encoder` option does not apply if `encode` is `false`)_ - -Analogue to the `encoder` there is a `decoder` option for `parse` to override decoding of properties and values: - -```javascript -var decoded = qs.parse('x=z', { decoder: function (str) { - // Passed in values `x`, `z` - return // Return decoded string -}}) -``` - -Examples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage. - -When arrays are stringified, by default they are given explicit indices: - -```javascript -qs.stringify({ a: ['b', 'c', 'd'] }); -// 'a[0]=b&a[1]=c&a[2]=d' -``` - -You may override this by setting the `indices` option to `false`: - -```javascript -qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); -// 'a=b&a=c&a=d' -``` - -You may use the `arrayFormat` option to specify the format of the output array - -```javascript -qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) -// 'a[0]=b&a[1]=c' -qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) -// 'a[]=b&a[]=c' -qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) -// 'a=b&a=c' -``` - -Empty strings and null values will omit the value, but the equals sign (=) remains in place: - -```javascript -assert.equal(qs.stringify({ a: '' }), 'a='); -``` - -Properties that are set to `undefined` will be omitted entirely: - -```javascript -assert.equal(qs.stringify({ a: null, b: undefined }), 'a='); -``` - -The delimiter may be overridden with stringify as well: - -```javascript -assert.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); -``` - -If you only want to override the serialization of `Date` objects, you can provide a `serializeDate` option: - -```javascript -var date = new Date(7); -assert.equal(qs.stringify({ a: date }), 'a=1970-01-01T00:00:00.007Z'.replace(/:/g, '%3A')); -assert.equal( - qs.stringify({ a: date }, { serializeDate: function (d) { return d.getTime(); } }), - 'a=7' -); -``` - -Finally, you can use the `filter` option to restrict which keys will be included in the stringified output. -If you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you -pass an array, it will be used to select properties and array indices for stringification: - -```javascript -function filterFunc(prefix, value) { - if (prefix == 'b') { - // Return an `undefined` value to omit a property. - return; - } - if (prefix == 'e[f]') { - return value.getTime(); - } - if (prefix == 'e[g][0]') { - return value * 2; - } - return value; -} -qs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc }); -// 'a=b&c=d&e[f]=123&e[g][0]=4' -qs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] }); -// 'a=b&e=f' -qs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] }); -// 'a[0]=b&a[2]=d' -``` - -### Handling of `null` values - -By default, `null` values are treated like empty strings: - -```javascript -var withNull = qs.stringify({ a: null, b: '' }); -assert.equal(withNull, 'a=&b='); -``` - -Parsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings. - -```javascript -var equalsInsensitive = qs.parse('a&b='); -assert.deepEqual(equalsInsensitive, { a: '', b: '' }); -``` - -To distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null` -values have no `=` sign: - -```javascript -var strictNull = qs.stringify({ a: null, b: '' }, { strictNullHandling: true }); -assert.equal(strictNull, 'a&b='); -``` - -To parse values without `=` back to `null` use the `strictNullHandling` flag: - -```javascript -var parsedStrictNull = qs.parse('a&b=', { strictNullHandling: true }); -assert.deepEqual(parsedStrictNull, { a: null, b: '' }); -``` - -To completely skip rendering keys with `null` values, use the `skipNulls` flag: - -```javascript -var nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true }); -assert.equal(nullsSkipped, 'a=b'); -``` - -### Dealing with special character sets - -By default the encoding and decoding of characters is done in `utf-8`. If you -wish to encode querystrings to a different character set (i.e. -[Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the -[`qs-iconv`](https://github.com/martinheidegger/qs-iconv) library: - -```javascript -var encoder = require('qs-iconv/encoder')('shift_jis'); -var shiftJISEncoded = qs.stringify({ a: 'こんにちは!' }, { encoder: encoder }); -assert.equal(shiftJISEncoded, 'a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I'); -``` - -This also works for decoding of query strings: - -```javascript -var decoder = require('qs-iconv/decoder')('shift_jis'); -var obj = qs.parse('a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I', { decoder: decoder }); -assert.deepEqual(obj, { a: 'こんにちは!' }); -``` - -### RFC 3986 and RFC 1738 space encoding - -RFC3986 used as default option and encodes ' ' to *%20* which is backward compatible. -In the same time, output can be stringified as per RFC1738 with ' ' equal to '+'. - -``` -assert.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); -assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC3986' }), 'a=b%20c'); -assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC1738' }), 'a=b+c'); -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/dist/qs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/dist/qs.js deleted file mode 100644 index 1a80d2d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/dist/qs.js +++ /dev/null @@ -1,574 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0 && - (options.parseArrays && index <= options.arrayLimit) - ) { - obj = []; - obj[index] = parseObject(chain, val, options); - } else { - obj[cleanRoot] = parseObject(chain, val, options); - } - } - - return obj; -}; - -var parseKeys = function parseKeys(givenKey, val, options) { - if (!givenKey) { - return; - } - - // Transform dot notation to bracket notation - var key = options.allowDots ? givenKey.replace(/\.([^\.\[]+)/g, '[$1]') : givenKey; - - // The regex chunks - - var parent = /^([^\[\]]*)/; - var child = /(\[[^\[\]]*\])/g; - - // Get the parent - - var segment = parent.exec(key); - - // Stash the parent if it exists - - var keys = []; - if (segment[1]) { - // If we aren't using plain objects, optionally prefix keys - // that would overwrite object prototype properties - if (!options.plainObjects && has.call(Object.prototype, segment[1])) { - if (!options.allowPrototypes) { - return; - } - } - - keys.push(segment[1]); - } - - // Loop through children appending to the array until we hit depth - - var i = 0; - while ((segment = child.exec(key)) !== null && i < options.depth) { - i += 1; - if (!options.plainObjects && has.call(Object.prototype, segment[1].replace(/\[|\]/g, ''))) { - if (!options.allowPrototypes) { - continue; - } - } - keys.push(segment[1]); - } - - // If there's a remainder, just add whatever is left - - if (segment) { - keys.push('[' + key.slice(segment.index) + ']'); - } - - return parseObject(keys, val, options); -}; - -module.exports = function (str, opts) { - var options = opts || {}; - - if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') { - throw new TypeError('Decoder has to be a function.'); - } - - options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter; - options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth; - options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit; - options.parseArrays = options.parseArrays !== false; - options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder; - options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots; - options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects; - options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes; - options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit; - options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - - if (str === '' || str === null || typeof str === 'undefined') { - return options.plainObjects ? Object.create(null) : {}; - } - - var tempObj = typeof str === 'string' ? parseValues(str, options) : str; - var obj = options.plainObjects ? Object.create(null) : {}; - - // Iterate over the keys and setup the new object - - var keys = Object.keys(tempObj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var newObj = parseKeys(key, tempObj[key], options); - obj = utils.merge(obj, newObj, options); - } - - return utils.compact(obj); -}; - -},{"./utils":5}],4:[function(require,module,exports){ -'use strict'; - -var utils = require('./utils'); -var formats = require('./formats'); - -var arrayPrefixGenerators = { - brackets: function brackets(prefix) { - return prefix + '[]'; - }, - indices: function indices(prefix, key) { - return prefix + '[' + key + ']'; - }, - repeat: function repeat(prefix) { - return prefix; - } -}; - -var toISO = Date.prototype.toISOString; - -var defaults = { - delimiter: '&', - encode: true, - encoder: utils.encode, - serializeDate: function serializeDate(date) { - return toISO.call(date); - }, - skipNulls: false, - strictNullHandling: false -}; - -var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter) { - var obj = object; - if (typeof filter === 'function') { - obj = filter(prefix, obj); - } else if (obj instanceof Date) { - obj = serializeDate(obj); - } else if (obj === null) { - if (strictNullHandling) { - return encoder ? encoder(prefix) : prefix; - } - - obj = ''; - } - - if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) { - if (encoder) { - return [formatter(encoder(prefix)) + '=' + formatter(encoder(obj))]; - } - return [formatter(prefix) + '=' + formatter(String(obj))]; - } - - var values = []; - - if (typeof obj === 'undefined') { - return values; - } - - var objKeys; - if (Array.isArray(filter)) { - objKeys = filter; - } else { - var keys = Object.keys(obj); - objKeys = sort ? keys.sort(sort) : keys; - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - if (Array.isArray(obj)) { - values = values.concat(stringify( - obj[key], - generateArrayPrefix(prefix, key), - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter - )); - } else { - values = values.concat(stringify( - obj[key], - prefix + (allowDots ? '.' + key : '[' + key + ']'), - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter - )); - } - } - - return values; -}; - -module.exports = function (object, opts) { - var obj = object; - var options = opts || {}; - var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter; - var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls; - var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode; - var encoder = encode ? (typeof options.encoder === 'function' ? options.encoder : defaults.encoder) : null; - var sort = typeof options.sort === 'function' ? options.sort : null; - var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots; - var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate; - if (typeof options.format === 'undefined') { - options.format = formats.default; - } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) { - throw new TypeError('Unknown format option provided.'); - } - var formatter = formats.formatters[options.format]; - var objKeys; - var filter; - - if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') { - throw new TypeError('Encoder has to be a function.'); - } - - if (typeof options.filter === 'function') { - filter = options.filter; - obj = filter('', obj); - } else if (Array.isArray(options.filter)) { - filter = options.filter; - objKeys = filter; - } - - var keys = []; - - if (typeof obj !== 'object' || obj === null) { - return ''; - } - - var arrayFormat; - if (options.arrayFormat in arrayPrefixGenerators) { - arrayFormat = options.arrayFormat; - } else if ('indices' in options) { - arrayFormat = options.indices ? 'indices' : 'repeat'; - } else { - arrayFormat = 'indices'; - } - - var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; - - if (!objKeys) { - objKeys = Object.keys(obj); - } - - if (sort) { - objKeys.sort(sort); - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - keys = keys.concat(stringify( - obj[key], - key, - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter - )); - } - - return keys.join(delimiter); -}; - -},{"./formats":1,"./utils":5}],5:[function(require,module,exports){ -'use strict'; - -var has = Object.prototype.hasOwnProperty; - -var hexTable = (function () { - var array = []; - for (var i = 0; i < 256; ++i) { - array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); - } - - return array; -}()); - -exports.arrayToObject = function (source, options) { - var obj = options && options.plainObjects ? Object.create(null) : {}; - for (var i = 0; i < source.length; ++i) { - if (typeof source[i] !== 'undefined') { - obj[i] = source[i]; - } - } - - return obj; -}; - -exports.merge = function (target, source, options) { - if (!source) { - return target; - } - - if (typeof source !== 'object') { - if (Array.isArray(target)) { - target.push(source); - } else if (typeof target === 'object') { - target[source] = true; - } else { - return [target, source]; - } - - return target; - } - - if (typeof target !== 'object') { - return [target].concat(source); - } - - var mergeTarget = target; - if (Array.isArray(target) && !Array.isArray(source)) { - mergeTarget = exports.arrayToObject(target, options); - } - - if (Array.isArray(target) && Array.isArray(source)) { - source.forEach(function (item, i) { - if (has.call(target, i)) { - if (target[i] && typeof target[i] === 'object') { - target[i] = exports.merge(target[i], item, options); - } else { - target.push(item); - } - } else { - target[i] = item; - } - }); - return target; - } - - return Object.keys(source).reduce(function (acc, key) { - var value = source[key]; - - if (Object.prototype.hasOwnProperty.call(acc, key)) { - acc[key] = exports.merge(acc[key], value, options); - } else { - acc[key] = value; - } - return acc; - }, mergeTarget); -}; - -exports.decode = function (str) { - try { - return decodeURIComponent(str.replace(/\+/g, ' ')); - } catch (e) { - return str; - } -}; - -exports.encode = function (str) { - // This code was originally written by Brian White (mscdex) for the io.js core querystring library. - // It has been adapted here for stricter adherence to RFC 3986 - if (str.length === 0) { - return str; - } - - var string = typeof str === 'string' ? str : String(str); - - var out = ''; - for (var i = 0; i < string.length; ++i) { - var c = string.charCodeAt(i); - - if ( - c === 0x2D || // - - c === 0x2E || // . - c === 0x5F || // _ - c === 0x7E || // ~ - (c >= 0x30 && c <= 0x39) || // 0-9 - (c >= 0x41 && c <= 0x5A) || // a-z - (c >= 0x61 && c <= 0x7A) // A-Z - ) { - out += string.charAt(i); - continue; - } - - if (c < 0x80) { - out = out + hexTable[c]; - continue; - } - - if (c < 0x800) { - out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - if (c < 0xD800 || c >= 0xE000) { - out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - i += 1; - c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); - out += hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]; - } - - return out; -}; - -exports.compact = function (obj, references) { - if (typeof obj !== 'object' || obj === null) { - return obj; - } - - var refs = references || []; - var lookup = refs.indexOf(obj); - if (lookup !== -1) { - return refs[lookup]; - } - - refs.push(obj); - - if (Array.isArray(obj)) { - var compacted = []; - - for (var i = 0; i < obj.length; ++i) { - if (obj[i] && typeof obj[i] === 'object') { - compacted.push(exports.compact(obj[i], refs)); - } else if (typeof obj[i] !== 'undefined') { - compacted.push(obj[i]); - } - } - - return compacted; - } - - var keys = Object.keys(obj); - keys.forEach(function (key) { - obj[key] = exports.compact(obj[key], refs); - }); - - return obj; -}; - -exports.isRegExp = function (obj) { - return Object.prototype.toString.call(obj) === '[object RegExp]'; -}; - -exports.isBuffer = function (obj) { - if (obj === null || typeof obj === 'undefined') { - return false; - } - - return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); -}; - -},{}]},{},[2])(2) -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/formats.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/formats.js deleted file mode 100644 index df459975..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/formats.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var replace = String.prototype.replace; -var percentTwenties = /%20/g; - -module.exports = { - 'default': 'RFC3986', - formatters: { - RFC1738: function (value) { - return replace.call(value, percentTwenties, '+'); - }, - RFC3986: function (value) { - return value; - } - }, - RFC1738: 'RFC1738', - RFC3986: 'RFC3986' -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/index.js deleted file mode 100755 index 0d6a97dc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/index.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var stringify = require('./stringify'); -var parse = require('./parse'); -var formats = require('./formats'); - -module.exports = { - formats: formats, - parse: parse, - stringify: stringify -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/parse.js deleted file mode 100755 index 97387a6a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/parse.js +++ /dev/null @@ -1,166 +0,0 @@ -'use strict'; - -var utils = require('./utils'); - -var has = Object.prototype.hasOwnProperty; - -var defaults = { - allowDots: false, - allowPrototypes: false, - arrayLimit: 20, - decoder: utils.decode, - delimiter: '&', - depth: 5, - parameterLimit: 1000, - plainObjects: false, - strictNullHandling: false -}; - -var parseValues = function parseValues(str, options) { - var obj = {}; - var parts = str.split(options.delimiter, options.parameterLimit === Infinity ? undefined : options.parameterLimit); - - for (var i = 0; i < parts.length; ++i) { - var part = parts[i]; - var pos = part.indexOf(']=') === -1 ? part.indexOf('=') : part.indexOf(']=') + 1; - - var key, val; - if (pos === -1) { - key = options.decoder(part); - val = options.strictNullHandling ? null : ''; - } else { - key = options.decoder(part.slice(0, pos)); - val = options.decoder(part.slice(pos + 1)); - } - if (has.call(obj, key)) { - obj[key] = [].concat(obj[key]).concat(val); - } else { - obj[key] = val; - } - } - - return obj; -}; - -var parseObject = function parseObject(chain, val, options) { - if (!chain.length) { - return val; - } - - var root = chain.shift(); - - var obj; - if (root === '[]') { - obj = []; - obj = obj.concat(parseObject(chain, val, options)); - } else { - obj = options.plainObjects ? Object.create(null) : {}; - var cleanRoot = root[0] === '[' && root[root.length - 1] === ']' ? root.slice(1, root.length - 1) : root; - var index = parseInt(cleanRoot, 10); - if ( - !isNaN(index) && - root !== cleanRoot && - String(index) === cleanRoot && - index >= 0 && - (options.parseArrays && index <= options.arrayLimit) - ) { - obj = []; - obj[index] = parseObject(chain, val, options); - } else { - obj[cleanRoot] = parseObject(chain, val, options); - } - } - - return obj; -}; - -var parseKeys = function parseKeys(givenKey, val, options) { - if (!givenKey) { - return; - } - - // Transform dot notation to bracket notation - var key = options.allowDots ? givenKey.replace(/\.([^\.\[]+)/g, '[$1]') : givenKey; - - // The regex chunks - - var parent = /^([^\[\]]*)/; - var child = /(\[[^\[\]]*\])/g; - - // Get the parent - - var segment = parent.exec(key); - - // Stash the parent if it exists - - var keys = []; - if (segment[1]) { - // If we aren't using plain objects, optionally prefix keys - // that would overwrite object prototype properties - if (!options.plainObjects && has.call(Object.prototype, segment[1])) { - if (!options.allowPrototypes) { - return; - } - } - - keys.push(segment[1]); - } - - // Loop through children appending to the array until we hit depth - - var i = 0; - while ((segment = child.exec(key)) !== null && i < options.depth) { - i += 1; - if (!options.plainObjects && has.call(Object.prototype, segment[1].replace(/\[|\]/g, ''))) { - if (!options.allowPrototypes) { - continue; - } - } - keys.push(segment[1]); - } - - // If there's a remainder, just add whatever is left - - if (segment) { - keys.push('[' + key.slice(segment.index) + ']'); - } - - return parseObject(keys, val, options); -}; - -module.exports = function (str, opts) { - var options = opts || {}; - - if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') { - throw new TypeError('Decoder has to be a function.'); - } - - options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter; - options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth; - options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit; - options.parseArrays = options.parseArrays !== false; - options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder; - options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots; - options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects; - options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes; - options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit; - options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - - if (str === '' || str === null || typeof str === 'undefined') { - return options.plainObjects ? Object.create(null) : {}; - } - - var tempObj = typeof str === 'string' ? parseValues(str, options) : str; - var obj = options.plainObjects ? Object.create(null) : {}; - - // Iterate over the keys and setup the new object - - var keys = Object.keys(tempObj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var newObj = parseKeys(key, tempObj[key], options); - obj = utils.merge(obj, newObj, options); - } - - return utils.compact(obj); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/stringify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/stringify.js deleted file mode 100755 index 88cd7910..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/stringify.js +++ /dev/null @@ -1,187 +0,0 @@ -'use strict'; - -var utils = require('./utils'); -var formats = require('./formats'); - -var arrayPrefixGenerators = { - brackets: function brackets(prefix) { - return prefix + '[]'; - }, - indices: function indices(prefix, key) { - return prefix + '[' + key + ']'; - }, - repeat: function repeat(prefix) { - return prefix; - } -}; - -var toISO = Date.prototype.toISOString; - -var defaults = { - delimiter: '&', - encode: true, - encoder: utils.encode, - serializeDate: function serializeDate(date) { - return toISO.call(date); - }, - skipNulls: false, - strictNullHandling: false -}; - -var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter) { - var obj = object; - if (typeof filter === 'function') { - obj = filter(prefix, obj); - } else if (obj instanceof Date) { - obj = serializeDate(obj); - } else if (obj === null) { - if (strictNullHandling) { - return encoder ? encoder(prefix) : prefix; - } - - obj = ''; - } - - if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) { - if (encoder) { - return [formatter(encoder(prefix)) + '=' + formatter(encoder(obj))]; - } - return [formatter(prefix) + '=' + formatter(String(obj))]; - } - - var values = []; - - if (typeof obj === 'undefined') { - return values; - } - - var objKeys; - if (Array.isArray(filter)) { - objKeys = filter; - } else { - var keys = Object.keys(obj); - objKeys = sort ? keys.sort(sort) : keys; - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - if (Array.isArray(obj)) { - values = values.concat(stringify( - obj[key], - generateArrayPrefix(prefix, key), - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter - )); - } else { - values = values.concat(stringify( - obj[key], - prefix + (allowDots ? '.' + key : '[' + key + ']'), - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter - )); - } - } - - return values; -}; - -module.exports = function (object, opts) { - var obj = object; - var options = opts || {}; - var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter; - var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls; - var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode; - var encoder = encode ? (typeof options.encoder === 'function' ? options.encoder : defaults.encoder) : null; - var sort = typeof options.sort === 'function' ? options.sort : null; - var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots; - var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate; - if (typeof options.format === 'undefined') { - options.format = formats.default; - } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) { - throw new TypeError('Unknown format option provided.'); - } - var formatter = formats.formatters[options.format]; - var objKeys; - var filter; - - if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') { - throw new TypeError('Encoder has to be a function.'); - } - - if (typeof options.filter === 'function') { - filter = options.filter; - obj = filter('', obj); - } else if (Array.isArray(options.filter)) { - filter = options.filter; - objKeys = filter; - } - - var keys = []; - - if (typeof obj !== 'object' || obj === null) { - return ''; - } - - var arrayFormat; - if (options.arrayFormat in arrayPrefixGenerators) { - arrayFormat = options.arrayFormat; - } else if ('indices' in options) { - arrayFormat = options.indices ? 'indices' : 'repeat'; - } else { - arrayFormat = 'indices'; - } - - var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; - - if (!objKeys) { - objKeys = Object.keys(obj); - } - - if (sort) { - objKeys.sort(sort); - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - keys = keys.concat(stringify( - obj[key], - key, - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter - )); - } - - return keys.join(delimiter); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/utils.js deleted file mode 100755 index 33c01c00..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/lib/utils.js +++ /dev/null @@ -1,180 +0,0 @@ -'use strict'; - -var has = Object.prototype.hasOwnProperty; - -var hexTable = (function () { - var array = []; - for (var i = 0; i < 256; ++i) { - array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); - } - - return array; -}()); - -exports.arrayToObject = function (source, options) { - var obj = options && options.plainObjects ? Object.create(null) : {}; - for (var i = 0; i < source.length; ++i) { - if (typeof source[i] !== 'undefined') { - obj[i] = source[i]; - } - } - - return obj; -}; - -exports.merge = function (target, source, options) { - if (!source) { - return target; - } - - if (typeof source !== 'object') { - if (Array.isArray(target)) { - target.push(source); - } else if (typeof target === 'object') { - target[source] = true; - } else { - return [target, source]; - } - - return target; - } - - if (typeof target !== 'object') { - return [target].concat(source); - } - - var mergeTarget = target; - if (Array.isArray(target) && !Array.isArray(source)) { - mergeTarget = exports.arrayToObject(target, options); - } - - if (Array.isArray(target) && Array.isArray(source)) { - source.forEach(function (item, i) { - if (has.call(target, i)) { - if (target[i] && typeof target[i] === 'object') { - target[i] = exports.merge(target[i], item, options); - } else { - target.push(item); - } - } else { - target[i] = item; - } - }); - return target; - } - - return Object.keys(source).reduce(function (acc, key) { - var value = source[key]; - - if (Object.prototype.hasOwnProperty.call(acc, key)) { - acc[key] = exports.merge(acc[key], value, options); - } else { - acc[key] = value; - } - return acc; - }, mergeTarget); -}; - -exports.decode = function (str) { - try { - return decodeURIComponent(str.replace(/\+/g, ' ')); - } catch (e) { - return str; - } -}; - -exports.encode = function (str) { - // This code was originally written by Brian White (mscdex) for the io.js core querystring library. - // It has been adapted here for stricter adherence to RFC 3986 - if (str.length === 0) { - return str; - } - - var string = typeof str === 'string' ? str : String(str); - - var out = ''; - for (var i = 0; i < string.length; ++i) { - var c = string.charCodeAt(i); - - if ( - c === 0x2D || // - - c === 0x2E || // . - c === 0x5F || // _ - c === 0x7E || // ~ - (c >= 0x30 && c <= 0x39) || // 0-9 - (c >= 0x41 && c <= 0x5A) || // a-z - (c >= 0x61 && c <= 0x7A) // A-Z - ) { - out += string.charAt(i); - continue; - } - - if (c < 0x80) { - out = out + hexTable[c]; - continue; - } - - if (c < 0x800) { - out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - if (c < 0xD800 || c >= 0xE000) { - out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - i += 1; - c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); - out += hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]; - } - - return out; -}; - -exports.compact = function (obj, references) { - if (typeof obj !== 'object' || obj === null) { - return obj; - } - - var refs = references || []; - var lookup = refs.indexOf(obj); - if (lookup !== -1) { - return refs[lookup]; - } - - refs.push(obj); - - if (Array.isArray(obj)) { - var compacted = []; - - for (var i = 0; i < obj.length; ++i) { - if (obj[i] && typeof obj[i] === 'object') { - compacted.push(exports.compact(obj[i], refs)); - } else if (typeof obj[i] !== 'undefined') { - compacted.push(obj[i]); - } - } - - return compacted; - } - - var keys = Object.keys(obj); - keys.forEach(function (key) { - obj[key] = exports.compact(obj[key], refs); - }); - - return obj; -}; - -exports.isRegExp = function (obj) { - return Object.prototype.toString.call(obj) === '[object RegExp]'; -}; - -exports.isBuffer = function (obj) { - if (obj === null || typeof obj === 'undefined') { - return false; - } - - return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/package.json deleted file mode 100644 index 618bc734..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "name": "qs", - "description": "A querystring parser that supports nesting and arrays, with a depth limit", - "homepage": "https://github.com/ljharb/qs", - "version": "6.3.0", - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/qs.git" - }, - "main": "lib/index.js", - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "keywords": [ - "querystring", - "qs" - ], - "engines": { - "node": ">=0.6" - }, - "dependencies": {}, - "devDependencies": { - "@ljharb/eslint-config": "^8.0.0", - "browserify": "^13.1.0", - "covert": "^1.1.0", - "eslint": "^3.8.0", - "evalmd": "^0.0.17", - "iconv-lite": "^0.4.13", - "mkdirp": "^0.5.1", - "parallelshell": "^2.0.0", - "qs-iconv": "^1.0.3", - "safe-publish-latest": "^1.1.1", - "tape": "^4.6.2" - }, - "scripts": { - "prepublish": "safe-publish-latest && npm run dist", - "pretest": "npm run --silent readme && npm run --silent lint", - "test": "npm run --silent coverage", - "tests-only": "node test", - "readme": "evalmd README.md", - "lint": "eslint lib/*.js test/*.js", - "coverage": "covert test", - "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js" - }, - "license": "BSD-3-Clause", - "gitHead": "8aa9c26f90335b5483a4f456dea9acbada8a881c", - "bugs": { - "url": "https://github.com/ljharb/qs/issues" - }, - "_id": "qs@6.3.0", - "_shasum": "f403b264f23bc01228c74131b407f18d5ea5d442", - "_from": "qs@>=6.3.0 <6.4.0", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.6.0", - "_npmUser": { - "name": "ljharb", - "email": "ljharb@gmail.com" - }, - "dist": { - "shasum": "f403b264f23bc01228c74131b407f18d5ea5d442", - "tarball": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz" - }, - "maintainers": [ - { - "name": "hueniverse", - "email": "eran@hammer.io" - }, - { - "name": "ljharb", - "email": "ljharb@gmail.com" - }, - { - "name": "nlf", - "email": "quitlahok@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/qs-6.3.0.tgz_1476663988179_0.7400497454218566" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/.eslintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/.eslintrc deleted file mode 100644 index 71553946..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/.eslintrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "rules": { - "max-lines": 0, - "max-nested-callbacks": [2, 3], - "max-statements": 0, - "no-extend-native": 0, - "sort-keys": 1 - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/index.js deleted file mode 100644 index 5e6bc8fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -require('./parse'); - -require('./stringify'); - -require('./utils'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/parse.js deleted file mode 100755 index 3a9611ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/parse.js +++ /dev/null @@ -1,459 +0,0 @@ -'use strict'; - -var test = require('tape'); -var qs = require('../'); -var iconv = require('iconv-lite'); - -test('parse()', function (t) { - t.test('parses a simple string', function (st) { - st.deepEqual(qs.parse('0=foo'), { 0: 'foo' }); - st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' }); - st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } }); - st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } }); - st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } }); - st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null }); - st.deepEqual(qs.parse('foo'), { foo: '' }); - st.deepEqual(qs.parse('foo='), { foo: '' }); - st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' }); - st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' }); - st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' }); - st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' }); - st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' }); - st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null }); - st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' }); - st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), { - cht: 'p3', - chd: 't:60,40', - chs: '250x100', - chl: 'Hello|World' - }); - st.end(); - }); - - t.test('allows enabling dot notation', function (st) { - st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' }); - st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } }); - st.end(); - }); - - t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string'); - t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string'); - t.deepEqual( - qs.parse('a[b][c][d][e][f][g][h]=i'), - { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } }, - 'defaults to a depth of 5' - ); - - t.test('only parses one level when depth = 1', function (st) { - st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } }); - st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } }); - st.end(); - }); - - t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array'); - - t.test('parses an explicit array', function (st) { - st.deepEqual(qs.parse('a[]=b'), { a: ['b'] }); - st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] }); - st.end(); - }); - - t.test('parses a mix of simple and explicit arrays', function (st) { - st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] }); - - st.deepEqual(qs.parse('a[1]=b&a=c', { arrayLimit: 20 }), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a=c', { arrayLimit: 0 }), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); - - st.deepEqual(qs.parse('a=b&a[1]=c', { arrayLimit: 20 }), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a=b&a[]=c', { arrayLimit: 0 }), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); - - st.end(); - }); - - t.test('parses a nested array', function (st) { - st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } }); - st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } }); - st.end(); - }); - - t.test('allows to specify array indices', function (st) { - st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] }); - st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 20 }), { a: ['c'] }); - st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 0 }), { a: { 1: 'c' } }); - st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] }); - st.end(); - }); - - t.test('limits specific array indices to arrayLimit', function (st) { - st.deepEqual(qs.parse('a[20]=a', { arrayLimit: 20 }), { a: ['a'] }); - st.deepEqual(qs.parse('a[21]=a', { arrayLimit: 20 }), { a: { 21: 'a' } }); - st.end(); - }); - - t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number'); - - t.test('supports encoded = signs', function (st) { - st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' }); - st.end(); - }); - - t.test('is ok with url encoded strings', function (st) { - st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } }); - st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } }); - st.end(); - }); - - t.test('allows brackets in the value', function (st) { - st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' }); - st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' }); - st.end(); - }); - - t.test('allows empty values', function (st) { - st.deepEqual(qs.parse(''), {}); - st.deepEqual(qs.parse(null), {}); - st.deepEqual(qs.parse(undefined), {}); - st.end(); - }); - - t.test('transforms arrays to objects', function (st) { - st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', 0: 'bar' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', 0: 'bar' } }); - st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } }); - st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); - - st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { 0: 'b', c: true, t: 'u' } }); - st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { 0: 'b', t: 'u', hasOwnProperty: 'c' } }); - st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { 0: 'b', 1: 'c', x: 'y' } }); - st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { 0: 'b', hasOwnProperty: 'c', x: 'y' } }); - st.end(); - }); - - t.test('transforms arrays to objects (dot notation)', function (st) { - st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } }); - st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } }); - st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } }); - st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] }); - st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] }); - st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } }); - st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } }); - st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { 0: 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } }); - st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); - st.end(); - }); - - t.deepEqual(qs.parse('a[b]=c&a=d'), { a: { b: 'c', d: true } }, 'can add keys to objects'); - - t.test('correctly prunes undefined values when converting an array to an object', function (st) { - st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { 2: 'b', 99999999: 'c' } }); - st.end(); - }); - - t.test('supports malformed uri characters', function (st) { - st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null }); - st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' }); - st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' }); - st.end(); - }); - - t.test('doesn\'t produce empty keys', function (st) { - st.deepEqual(qs.parse('_r=1&'), { _r: '1' }); - st.end(); - }); - - t.test('cannot access Object prototype', function (st) { - qs.parse('constructor[prototype][bad]=bad'); - qs.parse('bad[constructor][prototype][bad]=bad'); - st.equal(typeof Object.prototype.bad, 'undefined'); - st.end(); - }); - - t.test('parses arrays of objects', function (st) { - st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); - st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] }); - st.end(); - }); - - t.test('allows for empty strings in arrays', function (st) { - st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] }); - - st.deepEqual( - qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }), - { a: ['b', null, 'c', ''] }, - 'with arrayLimit 20 + array indices: null then empty string works' - ); - st.deepEqual( - qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }), - { a: ['b', null, 'c', ''] }, - 'with arrayLimit 0 + array brackets: null then empty string works' - ); - - st.deepEqual( - qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }), - { a: ['b', '', 'c', null] }, - 'with arrayLimit 20 + array indices: empty string then null works' - ); - st.deepEqual( - qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }), - { a: ['b', '', 'c', null] }, - 'with arrayLimit 0 + array brackets: empty string then null works' - ); - - st.deepEqual( - qs.parse('a[]=&a[]=b&a[]=c'), - { a: ['', 'b', 'c'] }, - 'array brackets: empty strings work' - ); - st.end(); - }); - - t.test('compacts sparse arrays', function (st) { - st.deepEqual(qs.parse('a[10]=1&a[2]=2', { arrayLimit: 20 }), { a: ['2', '1'] }); - st.deepEqual(qs.parse('a[1][b][2][c]=1', { arrayLimit: 20 }), { a: [{ b: [{ c: '1' }] }] }); - st.deepEqual(qs.parse('a[1][2][3][c]=1', { arrayLimit: 20 }), { a: [[[{ c: '1' }]]] }); - st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { arrayLimit: 20 }), { a: [[[{ c: ['1'] }]]] }); - st.end(); - }); - - t.test('parses semi-parsed strings', function (st) { - st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } }); - st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } }); - st.end(); - }); - - t.test('parses buffers correctly', function (st) { - var b = new Buffer('test'); - st.deepEqual(qs.parse({ a: b }), { a: b }); - st.end(); - }); - - t.test('continues parsing when no parent is found', function (st) { - st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' }); - st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' }); - st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' }); - st.end(); - }); - - t.test('does not error when parsing a very long array', function (st) { - var str = 'a[]=a'; - while (Buffer.byteLength(str) < 128 * 1024) { - str = str + '&' + str; - } - - st.doesNotThrow(function () { - qs.parse(str); - }); - - st.end(); - }); - - t.test('should not throw when a native prototype has an enumerable property', { parallel: false }, function (st) { - Object.prototype.crash = ''; - Array.prototype.crash = ''; - st.doesNotThrow(qs.parse.bind(null, 'a=b')); - st.deepEqual(qs.parse('a=b'), { a: 'b' }); - st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c')); - st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); - delete Object.prototype.crash; - delete Array.prototype.crash; - st.end(); - }); - - t.test('parses a string with an alternative string delimiter', function (st) { - st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('parses a string with an alternative RegExp delimiter', function (st) { - st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('does not use non-splittable objects as delimiters', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('allows overriding parameter limit', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' }); - st.end(); - }); - - t.test('allows setting the parameter limit to Infinity', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('allows overriding array limit', function (st) { - st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } }); - st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } }); - st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } }); - st.end(); - }); - - t.test('allows disabling array parsing', function (st) { - st.deepEqual(qs.parse('a[0]=b&a[1]=c', { parseArrays: false }), { a: { 0: 'b', 1: 'c' } }); - st.end(); - }); - - t.test('parses an object', function (st) { - var input = { - 'user[name]': { 'pop[bob]': 3 }, - 'user[email]': null - }; - - var expected = { - user: { - name: { 'pop[bob]': 3 }, - email: null - } - }; - - var result = qs.parse(input); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('parses an object in dot notation', function (st) { - var input = { - 'user.name': { 'pop[bob]': 3 }, - 'user.email.': null - }; - - var expected = { - user: { - name: { 'pop[bob]': 3 }, - email: null - } - }; - - var result = qs.parse(input, { allowDots: true }); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('parses an object and not child values', function (st) { - var input = { - 'user[name]': { 'pop[bob]': { test: 3 } }, - 'user[email]': null - }; - - var expected = { - user: { - name: { 'pop[bob]': { test: 3 } }, - email: null - } - }; - - var result = qs.parse(input); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('does not blow up when Buffer global is missing', function (st) { - var tempBuffer = global.Buffer; - delete global.Buffer; - var result = qs.parse('a=b&c=d'); - global.Buffer = tempBuffer; - st.deepEqual(result, { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('does not crash when parsing circular references', function (st) { - var a = {}; - a.b = a; - - var parsed; - - st.doesNotThrow(function () { - parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a }); - }); - - st.equal('foo' in parsed, true, 'parsed has "foo" property'); - st.equal('bar' in parsed.foo, true); - st.equal('baz' in parsed.foo, true); - st.equal(parsed.foo.bar, 'baz'); - st.deepEqual(parsed.foo.baz, a); - st.end(); - }); - - t.test('parses null objects correctly', { skip: !Object.create }, function (st) { - var a = Object.create(null); - a.b = 'c'; - - st.deepEqual(qs.parse(a), { b: 'c' }); - var result = qs.parse({ a: a }); - st.equal('a' in result, true, 'result has "a" property'); - st.deepEqual(result.a, a); - st.end(); - }); - - t.test('parses dates correctly', function (st) { - var now = new Date(); - st.deepEqual(qs.parse({ a: now }), { a: now }); - st.end(); - }); - - t.test('parses regular expressions correctly', function (st) { - var re = /^test$/; - st.deepEqual(qs.parse({ a: re }), { a: re }); - st.end(); - }); - - t.test('can allow overwriting prototype properties', function (st) { - st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } }, { prototype: false }); - st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' }, { prototype: false }); - st.end(); - }); - - t.test('can return null objects', { skip: !Object.create }, function (st) { - var expected = Object.create(null); - expected.a = Object.create(null); - expected.a.b = 'c'; - expected.a.hasOwnProperty = 'd'; - st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected); - st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null)); - var expectedArray = Object.create(null); - expectedArray.a = Object.create(null); - expectedArray.a[0] = 'b'; - expectedArray.a.c = 'd'; - st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray); - st.end(); - }); - - t.test('can parse with custom encoding', function (st) { - st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', { - decoder: function (str) { - var reg = /%([0-9A-F]{2})/ig; - var result = []; - var parts = reg.exec(str); - while (parts) { - result.push(parseInt(parts[1], 16)); - parts = reg.exec(str); - } - return iconv.decode(new Buffer(result), 'shift_jis').toString(); - } - }), { 県: '大阪府' }); - st.end(); - }); - - t.test('throws error with wrong decoder', function (st) { - st.throws(function () { - qs.parse({}, { decoder: 'string' }); - }, new TypeError('Decoder has to be a function.')); - st.end(); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/stringify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/stringify.js deleted file mode 100755 index 8818eaca..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/stringify.js +++ /dev/null @@ -1,538 +0,0 @@ -'use strict'; - -var test = require('tape'); -var qs = require('../'); -var iconv = require('iconv-lite'); - -test('stringify()', function (t) { - t.test('stringifies a querystring object', function (st) { - st.equal(qs.stringify({ a: 'b' }), 'a=b'); - st.equal(qs.stringify({ a: 1 }), 'a=1'); - st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2'); - st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z'); - st.equal(qs.stringify({ a: '€' }), 'a=%E2%82%AC'); - st.equal(qs.stringify({ a: '' }), 'a=%EE%80%80'); - st.equal(qs.stringify({ a: 'א' }), 'a=%D7%90'); - st.equal(qs.stringify({ a: '𐐷' }), 'a=%F0%90%90%B7'); - st.end(); - }); - - t.test('stringifies a nested object', function (st) { - st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); - st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e'); - st.end(); - }); - - t.test('stringifies a nested object with dots notation', function (st) { - st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c'); - st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e'); - st.end(); - }); - - t.test('stringifies an array value', function (st) { - st.equal( - qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'indices' }), - 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d', - 'indices => indices' - ); - st.equal( - qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'brackets' }), - 'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d', - 'brackets => brackets' - ); - st.equal( - qs.stringify({ a: ['b', 'c', 'd'] }), - 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d', - 'default => indices' - ); - st.end(); - }); - - t.test('omits nulls when asked', function (st) { - st.equal(qs.stringify({ a: 'b', c: null }, { skipNulls: true }), 'a=b'); - st.end(); - }); - - t.test('omits nested nulls when asked', function (st) { - st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('omits array indices when asked', function (st) { - st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d'); - st.end(); - }); - - t.test('stringifies a nested array value', function (st) { - st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'indices' }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d'); - st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'brackets' }), 'a%5Bb%5D%5B%5D=c&a%5Bb%5D%5B%5D=d'); - st.equal(qs.stringify({ a: { b: ['c', 'd'] } }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d'); - st.end(); - }); - - t.test('stringifies a nested array value with dots notation', function (st) { - st.equal( - qs.stringify( - { a: { b: ['c', 'd'] } }, - { allowDots: true, encode: false, arrayFormat: 'indices' } - ), - 'a.b[0]=c&a.b[1]=d', - 'indices: stringifies with dots + indices' - ); - st.equal( - qs.stringify( - { a: { b: ['c', 'd'] } }, - { allowDots: true, encode: false, arrayFormat: 'brackets' } - ), - 'a.b[]=c&a.b[]=d', - 'brackets: stringifies with dots + brackets' - ); - st.equal( - qs.stringify( - { a: { b: ['c', 'd'] } }, - { allowDots: true, encode: false } - ), - 'a.b[0]=c&a.b[1]=d', - 'default: stringifies with dots + indices' - ); - st.end(); - }); - - t.test('stringifies an object inside an array', function (st) { - st.equal( - qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices' }), - 'a%5B0%5D%5Bb%5D=c', - 'indices => brackets' - ); - st.equal( - qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }), - 'a%5B%5D%5Bb%5D=c', - 'brackets => brackets' - ); - st.equal( - qs.stringify({ a: [{ b: 'c' }] }), - 'a%5B0%5D%5Bb%5D=c', - 'default => indices' - ); - - st.equal( - qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices' }), - 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1', - 'indices => indices' - ); - - st.equal( - qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets' }), - 'a%5B%5D%5Bb%5D%5Bc%5D%5B%5D=1', - 'brackets => brackets' - ); - - st.equal( - qs.stringify({ a: [{ b: { c: [1] } }] }), - 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1', - 'default => indices' - ); - - st.end(); - }); - - t.test('stringifies an array with mixed objects and primitives', function (st) { - st.equal( - qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'indices' }), - 'a[0][b]=1&a[1]=2&a[2]=3', - 'indices => indices' - ); - st.equal( - qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'brackets' }), - 'a[][b]=1&a[]=2&a[]=3', - 'brackets => brackets' - ); - st.equal( - qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false }), - 'a[0][b]=1&a[1]=2&a[2]=3', - 'default => indices' - ); - - st.end(); - }); - - t.test('stringifies an object inside an array with dots notation', function (st) { - st.equal( - qs.stringify( - { a: [{ b: 'c' }] }, - { allowDots: true, encode: false, arrayFormat: 'indices' } - ), - 'a[0].b=c', - 'indices => indices' - ); - st.equal( - qs.stringify( - { a: [{ b: 'c' }] }, - { allowDots: true, encode: false, arrayFormat: 'brackets' } - ), - 'a[].b=c', - 'brackets => brackets' - ); - st.equal( - qs.stringify( - { a: [{ b: 'c' }] }, - { allowDots: true, encode: false } - ), - 'a[0].b=c', - 'default => indices' - ); - - st.equal( - qs.stringify( - { a: [{ b: { c: [1] } }] }, - { allowDots: true, encode: false, arrayFormat: 'indices' } - ), - 'a[0].b.c[0]=1', - 'indices => indices' - ); - st.equal( - qs.stringify( - { a: [{ b: { c: [1] } }] }, - { allowDots: true, encode: false, arrayFormat: 'brackets' } - ), - 'a[].b.c[]=1', - 'brackets => brackets' - ); - st.equal( - qs.stringify( - { a: [{ b: { c: [1] } }] }, - { allowDots: true, encode: false } - ), - 'a[0].b.c[0]=1', - 'default => indices' - ); - - st.end(); - }); - - t.test('does not omit object keys when indices = false', function (st) { - st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when indices=true', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when no arrayFormat=indices', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses repeat notation for arrays when no arrayFormat=repeat', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c'); - st.end(); - }); - - t.test('uses brackets notation for arrays when no arrayFormat=brackets', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c'); - st.end(); - }); - - t.test('stringifies a complicated object', function (st) { - st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e'); - st.end(); - }); - - t.test('stringifies an empty value', function (st) { - st.equal(qs.stringify({ a: '' }), 'a='); - st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a'); - - st.equal(qs.stringify({ a: '', b: '' }), 'a=&b='); - st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b='); - - st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D='); - st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D'); - st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D='); - - st.end(); - }); - - t.test('stringifies a null object', { skip: !Object.create }, function (st) { - var obj = Object.create(null); - obj.a = 'b'; - st.equal(qs.stringify(obj), 'a=b'); - st.end(); - }); - - t.test('returns an empty string for invalid input', function (st) { - st.equal(qs.stringify(undefined), ''); - st.equal(qs.stringify(false), ''); - st.equal(qs.stringify(null), ''); - st.equal(qs.stringify(''), ''); - st.end(); - }); - - t.test('stringifies an object with a null object as a child', { skip: !Object.create }, function (st) { - var obj = { a: Object.create(null) }; - - obj.a.b = 'c'; - st.equal(qs.stringify(obj), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('drops keys with a value of undefined', function (st) { - st.equal(qs.stringify({ a: undefined }), ''); - - st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D'); - st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D='); - st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D='); - st.end(); - }); - - t.test('url encodes values', function (st) { - st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); - st.end(); - }); - - t.test('stringifies a date', function (st) { - var now = new Date(); - var str = 'a=' + encodeURIComponent(now.toISOString()); - st.equal(qs.stringify({ a: now }), str); - st.end(); - }); - - t.test('stringifies the weird object from qs', function (st) { - st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F'); - st.end(); - }); - - t.test('skips properties that are part of the object prototype', function (st) { - Object.prototype.crash = 'test'; - st.equal(qs.stringify({ a: 'b' }), 'a=b'); - st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); - delete Object.prototype.crash; - st.end(); - }); - - t.test('stringifies boolean values', function (st) { - st.equal(qs.stringify({ a: true }), 'a=true'); - st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true'); - st.equal(qs.stringify({ b: false }), 'b=false'); - st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false'); - st.end(); - }); - - t.test('stringifies buffer values', function (st) { - st.equal(qs.stringify({ a: new Buffer('test') }), 'a=test'); - st.equal(qs.stringify({ a: { b: new Buffer('test') } }), 'a%5Bb%5D=test'); - st.end(); - }); - - t.test('stringifies an object using an alternative delimiter', function (st) { - st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); - st.end(); - }); - - t.test('doesn\'t blow up when Buffer global is missing', function (st) { - var tempBuffer = global.Buffer; - delete global.Buffer; - var result = qs.stringify({ a: 'b', c: 'd' }); - global.Buffer = tempBuffer; - st.equal(result, 'a=b&c=d'); - st.end(); - }); - - t.test('selects properties when filter=array', function (st) { - st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b'); - st.equal(qs.stringify({ a: 1 }, { filter: [] }), ''); - - st.equal( - qs.stringify( - { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, - { filter: ['a', 'b', 0, 2], arrayFormat: 'indices' } - ), - 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3', - 'indices => indices' - ); - st.equal( - qs.stringify( - { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, - { filter: ['a', 'b', 0, 2], arrayFormat: 'brackets' } - ), - 'a%5Bb%5D%5B%5D=1&a%5Bb%5D%5B%5D=3', - 'brackets => brackets' - ); - st.equal( - qs.stringify( - { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, - { filter: ['a', 'b', 0, 2] } - ), - 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3', - 'default => indices' - ); - - st.end(); - }); - - t.test('supports custom representations when filter=function', function (st) { - var calls = 0; - var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } }; - var filterFunc = function (prefix, value) { - calls += 1; - if (calls === 1) { - st.equal(prefix, '', 'prefix is empty'); - st.equal(value, obj); - } else if (prefix === 'c') { - return; - } else if (value instanceof Date) { - st.equal(prefix, 'e[f]'); - return value.getTime(); - } - return value; - }; - - st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000'); - st.equal(calls, 5); - st.end(); - }); - - t.test('can disable uri encoding', function (st) { - st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b'); - st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c'); - st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c'); - st.end(); - }); - - t.test('can sort the keys', function (st) { - var sort = function (a, b) { - return a.localeCompare(b); - }; - st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y'); - st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a'); - st.end(); - }); - - t.test('can sort the keys at depth 3 or more too', function (st) { - var sort = function (a, b) { - return a.localeCompare(b); - }; - st.equal( - qs.stringify( - { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' }, - { sort: sort, encode: false } - ), - 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb' - ); - st.equal( - qs.stringify( - { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' }, - { sort: null, encode: false } - ), - 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b' - ); - st.end(); - }); - - t.test('can stringify with custom encoding', function (st) { - st.equal(qs.stringify({ 県: '大阪府', '': '' }, { - encoder: function (str) { - if (str.length === 0) { - return ''; - } - var buf = iconv.encode(str, 'shiftjis'); - var result = []; - for (var i = 0; i < buf.length; ++i) { - result.push(buf.readUInt8(i).toString(16)); - } - return '%' + result.join('%'); - } - }), '%8c%a7=%91%e5%8d%e3%95%7b&='); - st.end(); - }); - - t.test('throws error with wrong encoder', function (st) { - st.throws(function () { - qs.stringify({}, { encoder: 'string' }); - }, new TypeError('Encoder has to be a function.')); - st.end(); - }); - - t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) { - st.equal(qs.stringify({ a: new Buffer([1]) }, { - encoder: function (buffer) { - if (typeof buffer === 'string') { - return buffer; - } - return String.fromCharCode(buffer.readUInt8(0) + 97); - } - }), 'a=b'); - st.end(); - }); - - t.test('serializeDate option', function (st) { - var date = new Date(); - st.equal( - qs.stringify({ a: date }), - 'a=' + date.toISOString().replace(/:/g, '%3A'), - 'default is toISOString' - ); - - var mutatedDate = new Date(); - mutatedDate.toISOString = function () { - throw new SyntaxError(); - }; - st.throws(function () { - mutatedDate.toISOString(); - }, SyntaxError); - st.equal( - qs.stringify({ a: mutatedDate }), - 'a=' + Date.prototype.toISOString.call(mutatedDate).replace(/:/g, '%3A'), - 'toISOString works even when method is not locally present' - ); - - var specificDate = new Date(6); - st.equal( - qs.stringify( - { a: specificDate }, - { serializeDate: function (d) { return d.getTime() * 7; } } - ), - 'a=42', - 'custom serializeDate function called' - ); - - st.end(); - }); - - t.test('RFC 1738 spaces serialization', function (st) { - st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC1738 }), 'a=b+c'); - st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC1738 }), 'a+b=c+d'); - st.end(); - }); - - t.test('RFC 3986 spaces serialization', function (st) { - st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC3986 }), 'a=b%20c'); - st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC3986 }), 'a%20b=c%20d'); - st.end(); - }); - - t.test('Backward compatibility to RFC 3986', function (st) { - st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); - st.end(); - }); - - t.test('Edge cases and unknown formats', function (st) { - ['UFO1234', false, 1234, null, {}, []].forEach( - function (format) { - st.throws( - function () { - qs.stringify({ a: 'b c' }, { format: format }); - }, - new TypeError('Unknown format option provided.') - ); - } - ); - st.end(); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/utils.js deleted file mode 100755 index 0721dd8e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/qs/test/utils.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var test = require('tape'); -var utils = require('../lib/utils'); - -test('merge()', function (t) { - t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key'); - - var oneMerged = utils.merge({ foo: 'bar' }, { foo: { first: '123' } }); - t.deepEqual(oneMerged, { foo: ['bar', { first: '123' }] }, 'merges a standalone and an object into an array'); - - var twoMerged = utils.merge({ foo: ['bar', { first: '123' }] }, { foo: { second: '456' } }); - t.deepEqual(twoMerged, { foo: { 0: 'bar', 1: { first: '123' }, second: '456' } }, 'merges a standalone and two objects into an array'); - - var sandwiched = utils.merge({ foo: ['bar', { first: '123', second: '456' }] }, { foo: 'baz' }); - t.deepEqual(sandwiched, { foo: ['bar', { first: '123', second: '456' }, 'baz'] }, 'merges an object sandwiched by two standalones into an array'); - - var nestedArrays = utils.merge({ foo: ['baz'] }, { foo: ['bar', 'xyzzy'] }); - t.deepEqual(nestedArrays, { foo: ['baz', 'bar', 'xyzzy'] }); - - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/.npmignore deleted file mode 100644 index 7dccd970..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/.npmignore +++ /dev/null @@ -1,15 +0,0 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz - -pids -logs -results - -node_modules -npm-debug.log \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/.travis.yml deleted file mode 100644 index f1d0f13c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/LICENSE.txt deleted file mode 100644 index ab861acd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2012 Michael Hart (michael.hart.au@gmail.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/README.md deleted file mode 100644 index 32fc9825..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Decode streams into strings The Right Way(tm) - -```javascript -var fs = require('fs') -var zlib = require('zlib') -var strs = require('stringstream') - -var utf8Stream = fs.createReadStream('massiveLogFile.gz') - .pipe(zlib.createGunzip()) - .pipe(strs('utf8')) -``` - -No need to deal with `setEncoding()` weirdness, just compose streams -like they were supposed to be! - -Handles input and output encoding: - -```javascript -// Stream from utf8 to hex to base64... Why not, ay. -var hex64Stream = fs.createReadStream('myFile') - .pipe(strs('utf8', 'hex')) - .pipe(strs('hex', 'base64')) -``` - -Also deals with `base64` output correctly by aligning each emitted data -chunk so that there are no dangling `=` characters: - -```javascript -var stream = fs.createReadStream('myFile').pipe(strs('base64')) - -var base64Str = '' - -stream.on('data', function(data) { base64Str += data }) -stream.on('end', function() { - console.log('My base64 encoded file is: ' + base64Str) // Wouldn't work with setEncoding() - console.log('Original file is: ' + new Buffer(base64Str, 'base64')) -}) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/example.js deleted file mode 100644 index f82b85ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/example.js +++ /dev/null @@ -1,27 +0,0 @@ -var fs = require('fs') -var zlib = require('zlib') -var strs = require('stringstream') - -var utf8Stream = fs.createReadStream('massiveLogFile.gz') - .pipe(zlib.createGunzip()) - .pipe(strs('utf8')) - -utf8Stream.pipe(process.stdout) - -// Stream from utf8 to hex to base64... Why not, ay. -var hex64Stream = fs.createReadStream('myFile') - .pipe(strs('utf8', 'hex')) - .pipe(strs('hex', 'base64')) - -hex64Stream.pipe(process.stdout) - -// Deals with base64 correctly by aligning chunks -var stream = fs.createReadStream('myFile').pipe(strs('base64')) - -var base64Str = '' - -stream.on('data', function(data) { base64Str += data }) -stream.on('end', function() { - console.log('My base64 encoded file is: ' + base64Str) // Wouldn't work with setEncoding() - console.log('Original file is: ' + new Buffer(base64Str, 'base64')) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/package.json deleted file mode 100644 index 2c6d7cdc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "stringstream", - "version": "0.0.5", - "description": "Encode and decode streams into string streams", - "author": { - "name": "Michael Hart", - "email": "michael.hart.au@gmail.com", - "url": "http://github.com/mhart" - }, - "main": "stringstream.js", - "keywords": [ - "string", - "stream", - "base64", - "gzip" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/mhart/StringStream.git" - }, - "license": "MIT", - "gitHead": "1efe3bf507bf3a1161f8473908b60e881d41422b", - "bugs": { - "url": "https://github.com/mhart/StringStream/issues" - }, - "homepage": "https://github.com/mhart/StringStream#readme", - "_id": "stringstream@0.0.5", - "scripts": {}, - "_shasum": "4e484cd4de5a0bbbee18e46307710a8a81621878", - "_from": "stringstream@>=0.0.4 <0.1.0", - "_npmVersion": "2.14.8", - "_nodeVersion": "4.2.1", - "_npmUser": { - "name": "hichaelmart", - "email": "michael.hart.au@gmail.com" - }, - "maintainers": [ - { - "name": "hichaelmart", - "email": "michael.hart.au@gmail.com" - } - ], - "dist": { - "shasum": "4e484cd4de5a0bbbee18e46307710a8a81621878", - "tarball": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/stringstream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/stringstream.js deleted file mode 100644 index 4ece1275..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/stringstream/stringstream.js +++ /dev/null @@ -1,102 +0,0 @@ -var util = require('util') -var Stream = require('stream') -var StringDecoder = require('string_decoder').StringDecoder - -module.exports = StringStream -module.exports.AlignedStringDecoder = AlignedStringDecoder - -function StringStream(from, to) { - if (!(this instanceof StringStream)) return new StringStream(from, to) - - Stream.call(this) - - if (from == null) from = 'utf8' - - this.readable = this.writable = true - this.paused = false - this.toEncoding = (to == null ? from : to) - this.fromEncoding = (to == null ? '' : from) - this.decoder = new AlignedStringDecoder(this.toEncoding) -} -util.inherits(StringStream, Stream) - -StringStream.prototype.write = function(data) { - if (!this.writable) { - var err = new Error('stream not writable') - err.code = 'EPIPE' - this.emit('error', err) - return false - } - if (this.fromEncoding) { - if (Buffer.isBuffer(data)) data = data.toString() - data = new Buffer(data, this.fromEncoding) - } - var string = this.decoder.write(data) - if (string.length) this.emit('data', string) - return !this.paused -} - -StringStream.prototype.flush = function() { - if (this.decoder.flush) { - var string = this.decoder.flush() - if (string.length) this.emit('data', string) - } -} - -StringStream.prototype.end = function() { - if (!this.writable && !this.readable) return - this.flush() - this.emit('end') - this.writable = this.readable = false - this.destroy() -} - -StringStream.prototype.destroy = function() { - this.decoder = null - this.writable = this.readable = false - this.emit('close') -} - -StringStream.prototype.pause = function() { - this.paused = true -} - -StringStream.prototype.resume = function () { - if (this.paused) this.emit('drain') - this.paused = false -} - -function AlignedStringDecoder(encoding) { - StringDecoder.call(this, encoding) - - switch (this.encoding) { - case 'base64': - this.write = alignedWrite - this.alignedBuffer = new Buffer(3) - this.alignedBytes = 0 - break - } -} -util.inherits(AlignedStringDecoder, StringDecoder) - -AlignedStringDecoder.prototype.flush = function() { - if (!this.alignedBuffer || !this.alignedBytes) return '' - var leftover = this.alignedBuffer.toString(this.encoding, 0, this.alignedBytes) - this.alignedBytes = 0 - return leftover -} - -function alignedWrite(buffer) { - var rem = (this.alignedBytes + buffer.length) % this.alignedBuffer.length - if (!rem && !this.alignedBytes) return buffer.toString(this.encoding) - - var returnBuffer = new Buffer(this.alignedBytes + buffer.length - rem) - - this.alignedBuffer.copy(returnBuffer, 0, 0, this.alignedBytes) - buffer.copy(returnBuffer, this.alignedBytes, 0, buffer.length - rem) - - buffer.copy(this.alignedBuffer, 0, buffer.length - rem, buffer.length) - this.alignedBytes = rem - - return returnBuffer.toString(this.encoding) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/LICENSE deleted file mode 100644 index 1bc286fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2015, Salesforce.com, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. 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. - -3. Neither the name of Salesforce.com 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 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. - -=== - -The following exceptions apply: - -=== - -`public_suffix_list.dat` was obtained from - via -. The license for this file is MPL/2.0. The header of -that file reads as follows: - - // This Source Code Form is subject to the terms of the Mozilla Public - // License, v. 2.0. If a copy of the MPL was not distributed with this - // file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/README.md deleted file mode 100644 index ba2bdbbc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/README.md +++ /dev/null @@ -1,506 +0,0 @@ -[RFC6265](https://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js - -[![npm package](https://nodei.co/npm/tough-cookie.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/tough-cookie/) - -[![Build Status](https://travis-ci.org/salesforce/tough-cookie.png?branch=master)](https://travis-ci.org/salesforce/tough-cookie) - -# Synopsis - -``` javascript -var tough = require('tough-cookie'); -var Cookie = tough.Cookie; -var cookie = Cookie.parse(header); -cookie.value = 'somethingdifferent'; -header = cookie.toString(); - -var cookiejar = new tough.CookieJar(); -cookiejar.setCookie(cookie, 'http://currentdomain.example.com/path', cb); -// ... -cookiejar.getCookies('http://example.com/otherpath',function(err,cookies) { - res.headers['cookie'] = cookies.join('; '); -}); -``` - -# Installation - -It's _so_ easy! - -`npm install tough-cookie` - -Why the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken. - -## Version Support - -Support for versions of node.js will follow that of the [request](https://www.npmjs.com/package/request) module. - -# API - -## tough - -Functions on the module you get from `require('tough-cookie')`. All can be used as pure functions and don't need to be "bound". - -**Note**: prior to 1.0.x, several of these functions took a `strict` parameter. This has since been removed from the API as it was no longer necessary. - -### `parseDate(string)` - -Parse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`. - -### `formatDate(date)` - -Format a Date into a RFC1123 string (the RFC6265-recommended format). - -### `canonicalDomain(str)` - -Transforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects). - -### `domainMatch(str,domStr[,canonicalize=true])` - -Answers "does this real domain match the domain in a cookie?". The `str` is the "current" domain-name and the `domStr` is the "cookie" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match". - -The `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not. - -### `defaultPath(path)` - -Given a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC. - -The `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node's `uri.parse()` output. - -### `pathMatch(reqPath,cookiePath)` - -Answers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4. Returns a boolean. - -This is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`. - -### `parse(cookieString[, options])` - -alias for `Cookie.parse(cookieString[, options])` - -### `fromJSON(string)` - -alias for `Cookie.fromJSON(string)` - -### `getPublicSuffix(hostname)` - -Returns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it. - -For example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`. - -For further information, see http://publicsuffix.org/. This module derives its list from that site. - -### `cookieCompare(a,b)` - -For use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). The sort algorithm is, in order of precedence: - -* Longest `.path` -* oldest `.creation` (which has a 1ms precision, same as `Date`) -* lowest `.creationIndex` (to get beyond the 1ms precision) - -``` javascript -var cookies = [ /* unsorted array of Cookie objects */ ]; -cookies = cookies.sort(cookieCompare); -``` - -**Note**: Since JavaScript's `Date` is limited to a 1ms precision, cookies within the same milisecond are entirely possible. This is especially true when using the `now` option to `.setCookie()`. The `.creationIndex` property is a per-process global counter, assigned during construction with `new Cookie()`. This preserves the spirit of the RFC sorting: older cookies go first. This works great for `MemoryCookieStore`, since `Set-Cookie` headers are parsed in order, but may not be so great for distributed systems. Sophisticated `Store`s may wish to set this to some other _logical clock_ such that if cookies A and B are created in the same millisecond, but cookie A is created before cookie B, then `A.creationIndex < B.creationIndex`. If you want to alter the global counter, which you probably _shouldn't_ do, it's stored in `Cookie.cookiesCreated`. - -### `permuteDomain(domain)` - -Generates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores. - -### `permutePath(path)` - -Generates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores. - - -## Cookie - -Exported via `tough.Cookie`. - -### `Cookie.parse(cookieString[, options])` - -Parses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can't be parsed. - -The options parameter is not required and currently has only one property: - - * _loose_ - boolean - if `true` enable parsing of key-less cookies like `=abc` and `=`, which are not RFC-compliant. - -If options is not an object, it is ignored, which means you can use `Array#map` with it. - -Here's how to process the Set-Cookie header(s) on a node HTTP/HTTPS response: - -``` javascript -if (res.headers['set-cookie'] instanceof Array) - cookies = res.headers['set-cookie'].map(Cookie.parse); -else - cookies = [Cookie.parse(res.headers['set-cookie'])]; -``` - -### Properties - -Cookie object properties: - - * _key_ - string - the name or key of the cookie (default "") - * _value_ - string - the value of the cookie (default "") - * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `"Infinity"`). See `setExpires()` - * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `"Infinity"` and `"-Infinity"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()` - * _domain_ - string - the `Domain=` attribute of the cookie - * _path_ - string - the `Path=` of the cookie - * _secure_ - boolean - the `Secure` cookie flag - * _httpOnly_ - boolean - the `HttpOnly` cookie flag - * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside) - * _creation_ - `Date` - when this cookie was constructed - * _creationIndex_ - number - set at construction, used to provide greater sort precision (please see `cookieCompare(a,b)` for a full explanation) - -After a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes: - - * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied) - * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one. - * _creation_ - `Date` - **modified** from construction to when the cookie was added to the jar - * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute. - -### `Cookie([{properties}])` - -Receives an options object that can contain any of the above Cookie properties, uses the default for unspecified properties. - -### `.toString()` - -encode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`. - -### `.cookieString()` - -encode to a Cookie header value (i.e. the `.key` and `.value` properties joined with '='). - -### `.setExpires(String)` - -sets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can't parse this date string), `.expires` is set to `"Infinity"` (a string) is set. - -### `.setMaxAge(number)` - -sets the maxAge in seconds. Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it JSON serializes correctly. - -### `.expiryTime([now=Date.now()])` - -### `.expiryDate([now=Date.now()])` - -expiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds. - -Max-Age takes precedence over Expires (as per the RFC). The `.creation` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute. - -If Expires (`.expires`) is set, that's returned. - -Otherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for "Tue, 19 Jan 2038 03:14:07 GMT" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents). - -### `.TTL([now=Date.now()])` - -compute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply. - -The "number" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned. - -### `.canonicalizedDoman()` - -### `.cdomain()` - -return the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters. - -### `.toJSON()` - -For convenience in using `JSON.serialize(cookie)`. Returns a plain-old `Object` that can be JSON-serialized. - -Any `Date` properties (i.e., `.expires`, `.creation`, and `.lastAccessed`) are exported in ISO format (`.toISOString()`). - -**NOTE**: Custom `Cookie` properties will be discarded. In tough-cookie 1.x, since there was no `.toJSON` method explicitly defined, all enumerable properties were captured. If you want a property to be serialized, add the property name to the `Cookie.serializableProperties` Array. - -### `Cookie.fromJSON(strOrObj)` - -Does the reverse of `cookie.toJSON()`. If passed a string, will `JSON.parse()` that first. - -Any `Date` properties (i.e., `.expires`, `.creation`, and `.lastAccessed`) are parsed via `Date.parse()`, not the tough-cookie `parseDate`, since it's JavaScript/JSON-y timestamps being handled at this layer. - -Returns `null` upon JSON parsing error. - -### `.clone()` - -Does a deep clone of this cookie, exactly implemented as `Cookie.fromJSON(cookie.toJSON())`. - -### `.validate()` - -Status: *IN PROGRESS*. Works for a few things, but is by no means comprehensive. - -validates cookie attributes for semantic correctness. Useful for "lint" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct: - -``` javascript -if (cookie.validate() === true) { - // it's tasty -} else { - // yuck! -} -``` - - -## CookieJar - -Exported via `tough.CookieJar`. - -### `CookieJar([store],[options])` - -Simply use `new CookieJar()`. If you'd like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used. - -The `options` object can be omitted and can have the following properties: - - * _rejectPublicSuffixes_ - boolean - default `true` - reject cookies with domains like "com" and "co.uk" - * _looseMode_ - boolean - default `false` - accept malformed cookies like `bar` and `=bar`, which have an implied empty name. - This is not in the standard, but is used sometimes on the web and is accepted by (most) browsers. - -Since eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods. - -### `.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))` - -Attempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.creation`, `.lastAccessed` and `.hostOnly` properties. - -The `options` object can be omitted and can have the following properties: - - * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. - * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. - * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies - * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. `Store` errors aren't ignored by this option. - -As per the RFC, the `.hostOnly` property is set if there was no "Domain=" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual). - -### `.setCookieSync(cookieOrString, currentUrl, [{options}])` - -Synchronous version of `setCookie`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). - -### `.getCookies(currentUrl, [{options},] cb(err,cookies))` - -Retrieve the list of cookies that can be sent in a Cookie header for the current url. - -If an error is encountered, that's passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given. - -The `options` object can be omitted and can have the following properties: - - * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. - * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. - * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies - * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially). - * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the underlying store (the default `MemoryCookieStore` supports it). - -The `.lastAccessed` property of the returned cookies will have been updated. - -### `.getCookiesSync(currentUrl, [{options}])` - -Synchronous version of `getCookies`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). - -### `.getCookieString(...)` - -Accepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`. - -### `.getCookieStringSync(...)` - -Synchronous version of `getCookieString`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). - -### `.getSetCookieStrings(...)` - -Returns an array of strings suitable for **Set-Cookie** headers. Accepts the same options as `.getCookies()`. Simply maps the cookie array via `.toString()`. - -### `.getSetCookieStringsSync(...)` - -Synchronous version of `getSetCookieStrings`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). - -### `.serialize(cb(err,serializedObject))` - -Serialize the Jar if the underlying store supports `.getAllCookies`. - -**NOTE**: Custom `Cookie` properties will be discarded. If you want a property to be serialized, add the property name to the `Cookie.serializableProperties` Array. - -See [Serialization Format]. - -### `.serializeSync()` - -Sync version of .serialize - -### `.toJSON()` - -Alias of .serializeSync() for the convenience of `JSON.stringify(cookiejar)`. - -### `CookieJar.deserialize(serialized, [store], cb(err,object))` - -A new Jar is created and the serialized Cookies are added to the underlying store. Each `Cookie` is added via `store.putCookie` in the order in which they appear in the serialization. - -The `store` argument is optional, but should be an instance of `Store`. By default, a new instance of `MemoryCookieStore` is created. - -As a convenience, if `serialized` is a string, it is passed through `JSON.parse` first. If that throws an error, this is passed to the callback. - -### `CookieJar.deserializeSync(serialized, [store])` - -Sync version of `.deserialize`. _Note_ that the `store` must be synchronous for this to work. - -### `CookieJar.fromJSON(string)` - -Alias of `.deserializeSync` to provide consistency with `Cookie.fromJSON()`. - -### `.clone([store,]cb(err,newJar))` - -Produces a deep clone of this jar. Modifications to the original won't affect the clone, and vice versa. - -The `store` argument is optional, but should be an instance of `Store`. By default, a new instance of `MemoryCookieStore` is created. Transferring between store types is supported so long as the source implements `.getAllCookies()` and the destination implements `.putCookie()`. - -### `.cloneSync([store])` - -Synchronous version of `.clone`, returning a new `CookieJar` instance. - -The `store` argument is optional, but must be a _synchronous_ `Store` instance if specified. If not passed, a new instance of `MemoryCookieStore` is used. - -The _source_ and _destination_ must both be synchronous `Store`s. If one or both stores are asynchronous, use `.clone` instead. Recall that `MemoryCookieStore` supports both synchronous and asynchronous API calls. - -## Store - -Base class for CookieJar stores. Available as `tough.Store`. - -## Store API - -The storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores. - -Stores should inherit from the base `Store` class, which is available as `require('tough-cookie').Store`. - -Stores are asynchronous by default, but if `store.synchronous` is set to `true`, then the `*Sync` methods on the of the containing `CookieJar` can be used (however, the continuation-passing style - -All `domain` parameters will have been normalized before calling. - -The Cookie store must have all of the following methods. - -### `store.findCookie(domain, path, key, cb(err,cookie))` - -Retrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned. - -Callback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error). - -### `store.findCookies(domain, path, cb(err,cookies))` - -Locates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above. - -If no cookies are found, the callback MUST be passed an empty array. - -The resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it's OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done. - -As of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only). - -### `store.putCookie(cookie, cb(err))` - -Adds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur. - -The `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties. - -Pass an error if the cookie cannot be stored. - -### `store.updateCookie(oldCookie, newCookie, cb(err))` - -Update an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store. - -The `.lastAccessed` property will always be different between the two objects (to the precision possible via JavaScript's clock). Both `.creation` and `.creationIndex` are guaranteed to be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are selected for automatic deletion (e.g., least-recently-used, which is up to the store to implement). - -Stores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn't define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object. - -The `newCookie` and `oldCookie` objects MUST NOT be modified. - -Pass an error if the newCookie cannot be stored. - -### `store.removeCookie(domain, path, key, cb(err))` - -Remove a cookie from the store (see notes on `findCookie` about the uniqueness constraint). - -The implementation MUST NOT pass an error if the cookie doesn't exist; only pass an error due to the failure to remove an existing cookie. - -### `store.removeCookies(domain, path, cb(err))` - -Removes matching cookies from the store. The `path` parameter is optional, and if missing means all paths in a domain should be removed. - -Pass an error ONLY if removing any existing cookies failed. - -### `store.getAllCookies(cb(err, cookies))` - -Produces an `Array` of all cookies during `jar.serialize()`. The items in the array can be true `Cookie` objects or generic `Object`s with the [Serialization Format] data structure. - -Cookies SHOULD be returned in creation order to preserve sorting via `compareCookies()`. For reference, `MemoryCookieStore` will sort by `.creationIndex` since it uses true `Cookie` objects internally. If you don't return the cookies in creation order, they'll still be sorted by creation time, but this only has a precision of 1ms. See `compareCookies` for more detail. - -Pass an error if retrieval fails. - -## MemoryCookieStore - -Inherits from `Store`. - -A just-in-memory CookieJar synchronous store implementation, used by default. Despite being a synchronous implementation, it's usable with both the synchronous and asynchronous forms of the `CookieJar` API. - -## Community Cookie Stores - -These are some Store implementations authored and maintained by the community. They aren't official and we don't vouch for them but you may be interested to have a look: - -- [`db-cookie-store`](https://github.com/JSBizon/db-cookie-store): SQL including SQLite-based databases -- [`file-cookie-store`](https://github.com/JSBizon/file-cookie-store): Netscape cookie file format on disk -- [`redis-cookie-store`](https://github.com/benkroeger/redis-cookie-store): Redis -- [`tough-cookie-filestore`](https://github.com/mitsuru/tough-cookie-filestore): JSON on disk -- [`tough-cookie-web-storage-store`](https://github.com/exponentjs/tough-cookie-web-storage-store): DOM localStorage and sessionStorage - - -# Serialization Format - -**NOTE**: if you want to have custom `Cookie` properties serialized, add the property name to `Cookie.serializableProperties`. - -```js - { - // The version of tough-cookie that serialized this jar. - version: 'tough-cookie@1.x.y', - - // add the store type, to make humans happy: - storeType: 'MemoryCookieStore', - - // CookieJar configuration: - rejectPublicSuffixes: true, - // ... future items go here - - // Gets filled from jar.store.getAllCookies(): - cookies: [ - { - key: 'string', - value: 'string', - // ... - /* other Cookie.serializableProperties go here */ - } - ] - } -``` - -# Copyright and License - -(tl;dr: BSD-3-Clause with some MPL/2.0) - -```text - Copyright (c) 2015, Salesforce.com, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. 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. - - 3. Neither the name of Salesforce.com 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 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. -``` - -Portions may be licensed under different licenses (in particular `public_suffix_list.dat` is MPL/2.0); please read that file and the LICENSE file for full details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/lib/cookie.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/lib/cookie.js deleted file mode 100644 index c3dacfe4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/lib/cookie.js +++ /dev/null @@ -1,1336 +0,0 @@ -/*! - * Copyright (c) 2015, Salesforce.com, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. 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. - * - * 3. Neither the name of Salesforce.com 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 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. - */ -'use strict'; -var net = require('net'); -var urlParse = require('url').parse; -var pubsuffix = require('./pubsuffix'); -var Store = require('./store').Store; -var MemoryCookieStore = require('./memstore').MemoryCookieStore; -var pathMatch = require('./pathMatch').pathMatch; -var VERSION = require('../package.json').version; - -var punycode; -try { - punycode = require('punycode'); -} catch(e) { - console.warn("cookie: can't load punycode; won't use punycode for domain normalization"); -} - -var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/; - -// From RFC6265 S4.1.1 -// note that it excludes \x3B ";" -var COOKIE_OCTET = /[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]/; -var COOKIE_OCTETS = new RegExp('^'+COOKIE_OCTET.source+'+$'); - -var CONTROL_CHARS = /[\x00-\x1F]/; - -// Double quotes are part of the value (see: S4.1.1). -// '\r', '\n' and '\0' should be treated as a terminator in the "relaxed" mode -// (see: https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/parsed_cookie.cc#L60) -// '=' and ';' are attribute/values separators -// (see: https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/parsed_cookie.cc#L64) -var COOKIE_PAIR = /^(([^=;]+))\s*=\s*([^\n\r\0]*)/; - -// Used to parse non-RFC-compliant cookies like '=abc' when given the `loose` -// option in Cookie.parse: -var LOOSE_COOKIE_PAIR = /^((?:=)?([^=;]*)\s*=\s*)?([^\n\r\0]*)/; - -// RFC6265 S4.1.1 defines path value as 'any CHAR except CTLs or ";"' -// Note ';' is \x3B -var PATH_VALUE = /[\x20-\x3A\x3C-\x7E]+/; - -var DAY_OF_MONTH = /^(\d{1,2})[^\d]*$/; -var TIME = /^(\d{1,2})[^\d]*:(\d{1,2})[^\d]*:(\d{1,2})[^\d]*$/; -var MONTH = /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/i; - -var MONTH_TO_NUM = { - jan:0, feb:1, mar:2, apr:3, may:4, jun:5, - jul:6, aug:7, sep:8, oct:9, nov:10, dec:11 -}; -var NUM_TO_MONTH = [ - 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec' -]; -var NUM_TO_DAY = [ - 'Sun','Mon','Tue','Wed','Thu','Fri','Sat' -]; - -var YEAR = /^(\d{2}|\d{4})$/; // 2 to 4 digits - -var MAX_TIME = 2147483647000; // 31-bit max -var MIN_TIME = 0; // 31-bit min - - -// RFC6265 S5.1.1 date parser: -function parseDate(str) { - if (!str) { - return; - } - - /* RFC6265 S5.1.1: - * 2. Process each date-token sequentially in the order the date-tokens - * appear in the cookie-date - */ - var tokens = str.split(DATE_DELIM); - if (!tokens) { - return; - } - - var hour = null; - var minutes = null; - var seconds = null; - var day = null; - var month = null; - var year = null; - - for (var i=0; i 23 || minutes > 59 || seconds > 59) { - return; - } - - continue; - } - } - - /* 2.2. If the found-day-of-month flag is not set and the date-token matches - * the day-of-month production, set the found-day-of- month flag and set - * the day-of-month-value to the number denoted by the date-token. Skip - * the remaining sub-steps and continue to the next date-token. - */ - if (day === null) { - result = DAY_OF_MONTH.exec(token); - if (result) { - day = parseInt(result, 10); - /* RFC6265 S5.1.1.5: - * [fail if] the day-of-month-value is less than 1 or greater than 31 - */ - if(day < 1 || day > 31) { - return; - } - continue; - } - } - - /* 2.3. If the found-month flag is not set and the date-token matches the - * month production, set the found-month flag and set the month-value to - * the month denoted by the date-token. Skip the remaining sub-steps and - * continue to the next date-token. - */ - if (month === null) { - result = MONTH.exec(token); - if (result) { - month = MONTH_TO_NUM[result[1].toLowerCase()]; - continue; - } - } - - /* 2.4. If the found-year flag is not set and the date-token matches the year - * production, set the found-year flag and set the year-value to the number - * denoted by the date-token. Skip the remaining sub-steps and continue to - * the next date-token. - */ - if (year === null) { - result = YEAR.exec(token); - if (result) { - year = parseInt(result[0], 10); - /* From S5.1.1: - * 3. If the year-value is greater than or equal to 70 and less - * than or equal to 99, increment the year-value by 1900. - * 4. If the year-value is greater than or equal to 0 and less - * than or equal to 69, increment the year-value by 2000. - */ - if (70 <= year && year <= 99) { - year += 1900; - } else if (0 <= year && year <= 69) { - year += 2000; - } - - if (year < 1601) { - return; // 5. ... the year-value is less than 1601 - } - } - } - } - - if (seconds === null || day === null || month === null || year === null) { - return; // 5. ... at least one of the found-day-of-month, found-month, found- - // year, or found-time flags is not set, - } - - return new Date(Date.UTC(year, month, day, hour, minutes, seconds)); -} - -function formatDate(date) { - var d = date.getUTCDate(); d = d >= 10 ? d : '0'+d; - var h = date.getUTCHours(); h = h >= 10 ? h : '0'+h; - var m = date.getUTCMinutes(); m = m >= 10 ? m : '0'+m; - var s = date.getUTCSeconds(); s = s >= 10 ? s : '0'+s; - return NUM_TO_DAY[date.getUTCDay()] + ', ' + - d+' '+ NUM_TO_MONTH[date.getUTCMonth()] +' '+ date.getUTCFullYear() +' '+ - h+':'+m+':'+s+' GMT'; -} - -// S5.1.2 Canonicalized Host Names -function canonicalDomain(str) { - if (str == null) { - return null; - } - str = str.trim().replace(/^\./,''); // S4.1.2.3 & S5.2.3: ignore leading . - - // convert to IDN if any non-ASCII characters - if (punycode && /[^\u0001-\u007f]/.test(str)) { - str = punycode.toASCII(str); - } - - return str.toLowerCase(); -} - -// S5.1.3 Domain Matching -function domainMatch(str, domStr, canonicalize) { - if (str == null || domStr == null) { - return null; - } - if (canonicalize !== false) { - str = canonicalDomain(str); - domStr = canonicalDomain(domStr); - } - - /* - * "The domain string and the string are identical. (Note that both the - * domain string and the string will have been canonicalized to lower case at - * this point)" - */ - if (str == domStr) { - return true; - } - - /* "All of the following [three] conditions hold:" (order adjusted from the RFC) */ - - /* "* The string is a host name (i.e., not an IP address)." */ - if (net.isIP(str)) { - return false; - } - - /* "* The domain string is a suffix of the string" */ - var idx = str.indexOf(domStr); - if (idx <= 0) { - return false; // it's a non-match (-1) or prefix (0) - } - - // e.g "a.b.c".indexOf("b.c") === 2 - // 5 === 3+2 - if (str.length !== domStr.length + idx) { // it's not a suffix - return false; - } - - /* "* The last character of the string that is not included in the domain - * string is a %x2E (".") character." */ - if (str.substr(idx-1,1) !== '.') { - return false; - } - - return true; -} - - -// RFC6265 S5.1.4 Paths and Path-Match - -/* - * "The user agent MUST use an algorithm equivalent to the following algorithm - * to compute the default-path of a cookie:" - * - * Assumption: the path (and not query part or absolute uri) is passed in. - */ -function defaultPath(path) { - // "2. If the uri-path is empty or if the first character of the uri-path is not - // a %x2F ("/") character, output %x2F ("/") and skip the remaining steps. - if (!path || path.substr(0,1) !== "/") { - return "/"; - } - - // "3. If the uri-path contains no more than one %x2F ("/") character, output - // %x2F ("/") and skip the remaining step." - if (path === "/") { - return path; - } - - var rightSlash = path.lastIndexOf("/"); - if (rightSlash === 0) { - return "/"; - } - - // "4. Output the characters of the uri-path from the first character up to, - // but not including, the right-most %x2F ("/")." - return path.slice(0, rightSlash); -} - - -function parse(str, options) { - if (!options || typeof options !== 'object') { - options = {}; - } - str = str.trim(); - - // We use a regex to parse the "name-value-pair" part of S5.2 - var firstSemi = str.indexOf(';'); // S5.2 step 1 - var pairRe = options.loose ? LOOSE_COOKIE_PAIR : COOKIE_PAIR; - var result = pairRe.exec(firstSemi === -1 ? str : str.substr(0,firstSemi)); - - // Rx satisfies the "the name string is empty" and "lacks a %x3D ("=")" - // constraints as well as trimming any whitespace. - if (!result) { - return; - } - - var c = new Cookie(); - if (result[1]) { - c.key = result[2].trim(); - } else { - c.key = ''; - } - c.value = result[3].trim(); - if (CONTROL_CHARS.test(c.key) || CONTROL_CHARS.test(c.value)) { - return; - } - - if (firstSemi === -1) { - return c; - } - - // S5.2.3 "unparsed-attributes consist of the remainder of the set-cookie-string - // (including the %x3B (";") in question)." plus later on in the same section - // "discard the first ";" and trim". - var unparsed = str.slice(firstSemi + 1).trim(); - - // "If the unparsed-attributes string is empty, skip the rest of these - // steps." - if (unparsed.length === 0) { - return c; - } - - /* - * S5.2 says that when looping over the items "[p]rocess the attribute-name - * and attribute-value according to the requirements in the following - * subsections" for every item. Plus, for many of the individual attributes - * in S5.3 it says to use the "attribute-value of the last attribute in the - * cookie-attribute-list". Therefore, in this implementation, we overwrite - * the previous value. - */ - var cookie_avs = unparsed.split(';'); - while (cookie_avs.length) { - var av = cookie_avs.shift().trim(); - if (av.length === 0) { // happens if ";;" appears - continue; - } - var av_sep = av.indexOf('='); - var av_key, av_value; - - if (av_sep === -1) { - av_key = av; - av_value = null; - } else { - av_key = av.substr(0,av_sep); - av_value = av.substr(av_sep+1); - } - - av_key = av_key.trim().toLowerCase(); - - if (av_value) { - av_value = av_value.trim(); - } - - switch(av_key) { - case 'expires': // S5.2.1 - if (av_value) { - var exp = parseDate(av_value); - // "If the attribute-value failed to parse as a cookie date, ignore the - // cookie-av." - if (exp) { - // over and underflow not realistically a concern: V8's getTime() seems to - // store something larger than a 32-bit time_t (even with 32-bit node) - c.expires = exp; - } - } - break; - - case 'max-age': // S5.2.2 - if (av_value) { - // "If the first character of the attribute-value is not a DIGIT or a "-" - // character ...[or]... If the remainder of attribute-value contains a - // non-DIGIT character, ignore the cookie-av." - if (/^-?[0-9]+$/.test(av_value)) { - var delta = parseInt(av_value, 10); - // "If delta-seconds is less than or equal to zero (0), let expiry-time - // be the earliest representable date and time." - c.setMaxAge(delta); - } - } - break; - - case 'domain': // S5.2.3 - // "If the attribute-value is empty, the behavior is undefined. However, - // the user agent SHOULD ignore the cookie-av entirely." - if (av_value) { - // S5.2.3 "Let cookie-domain be the attribute-value without the leading %x2E - // (".") character." - var domain = av_value.trim().replace(/^\./, ''); - if (domain) { - // "Convert the cookie-domain to lower case." - c.domain = domain.toLowerCase(); - } - } - break; - - case 'path': // S5.2.4 - /* - * "If the attribute-value is empty or if the first character of the - * attribute-value is not %x2F ("/"): - * Let cookie-path be the default-path. - * Otherwise: - * Let cookie-path be the attribute-value." - * - * We'll represent the default-path as null since it depends on the - * context of the parsing. - */ - c.path = av_value && av_value[0] === "/" ? av_value : null; - break; - - case 'secure': // S5.2.5 - /* - * "If the attribute-name case-insensitively matches the string "Secure", - * the user agent MUST append an attribute to the cookie-attribute-list - * with an attribute-name of Secure and an empty attribute-value." - */ - c.secure = true; - break; - - case 'httponly': // S5.2.6 -- effectively the same as 'secure' - c.httpOnly = true; - break; - - default: - c.extensions = c.extensions || []; - c.extensions.push(av); - break; - } - } - - return c; -} - -// avoid the V8 deoptimization monster! -function jsonParse(str) { - var obj; - try { - obj = JSON.parse(str); - } catch (e) { - return e; - } - return obj; -} - -function fromJSON(str) { - if (!str) { - return null; - } - - var obj; - if (typeof str === 'string') { - obj = jsonParse(str); - if (obj instanceof Error) { - return null; - } - } else { - // assume it's an Object - obj = str; - } - - var c = new Cookie(); - for (var i=0; i 1) { - var lindex = path.lastIndexOf('/'); - if (lindex === 0) { - break; - } - path = path.substr(0,lindex); - permutations.push(path); - } - permutations.push('/'); - return permutations; -} - -function getCookieContext(url) { - if (url instanceof Object) { - return url; - } - // NOTE: decodeURI will throw on malformed URIs (see GH-32). - // Therefore, we will just skip decoding for such URIs. - try { - url = decodeURI(url); - } - catch(err) { - // Silently swallow error - } - - return urlParse(url); -} - -function Cookie(options) { - options = options || {}; - - Object.keys(options).forEach(function(prop) { - if (Cookie.prototype.hasOwnProperty(prop) && - Cookie.prototype[prop] !== options[prop] && - prop.substr(0,1) !== '_') - { - this[prop] = options[prop]; - } - }, this); - - this.creation = this.creation || new Date(); - - // used to break creation ties in cookieCompare(): - Object.defineProperty(this, 'creationIndex', { - configurable: false, - enumerable: false, // important for assert.deepEqual checks - writable: true, - value: ++Cookie.cookiesCreated - }); -} - -Cookie.cookiesCreated = 0; // incremented each time a cookie is created - -Cookie.parse = parse; -Cookie.fromJSON = fromJSON; - -Cookie.prototype.key = ""; -Cookie.prototype.value = ""; - -// the order in which the RFC has them: -Cookie.prototype.expires = "Infinity"; // coerces to literal Infinity -Cookie.prototype.maxAge = null; // takes precedence over expires for TTL -Cookie.prototype.domain = null; -Cookie.prototype.path = null; -Cookie.prototype.secure = false; -Cookie.prototype.httpOnly = false; -Cookie.prototype.extensions = null; - -// set by the CookieJar: -Cookie.prototype.hostOnly = null; // boolean when set -Cookie.prototype.pathIsDefault = null; // boolean when set -Cookie.prototype.creation = null; // Date when set; defaulted by Cookie.parse -Cookie.prototype.lastAccessed = null; // Date when set -Object.defineProperty(Cookie.prototype, 'creationIndex', { - configurable: true, - enumerable: false, - writable: true, - value: 0 -}); - -Cookie.serializableProperties = Object.keys(Cookie.prototype) - .filter(function(prop) { - return !( - Cookie.prototype[prop] instanceof Function || - prop === 'creationIndex' || - prop.substr(0,1) === '_' - ); - }); - -Cookie.prototype.inspect = function inspect() { - var now = Date.now(); - return 'Cookie="'+this.toString() + - '; hostOnly='+(this.hostOnly != null ? this.hostOnly : '?') + - '; aAge='+(this.lastAccessed ? (now-this.lastAccessed.getTime())+'ms' : '?') + - '; cAge='+(this.creation ? (now-this.creation.getTime())+'ms' : '?') + - '"'; -}; - -Cookie.prototype.toJSON = function() { - var obj = {}; - - var props = Cookie.serializableProperties; - for (var i=0; i suffixLen) { - var publicSuffix = parts.slice(0,suffixLen+1).reverse().join('.'); - return converted ? punycode.toUnicode(publicSuffix) : publicSuffix; - } - - return null; -}; - -// The following generated structure is used under the MPL version 2.0 -// See public-suffix.txt for more information - -var index = module.exports.index = Object.freeze( -{"ac":true,"com.ac":true,"edu.ac":true,"gov.ac":true,"net.ac":true,"mil.ac":true,"org.ac":true,"ad":true,"nom.ad":true,"ae":true,"co.ae":true,"net.ae":true,"org.ae":true,"sch.ae":true,"ac.ae":true,"gov.ae":true,"mil.ae":true,"aero":true,"accident-investigation.aero":true,"accident-prevention.aero":true,"aerobatic.aero":true,"aeroclub.aero":true,"aerodrome.aero":true,"agents.aero":true,"aircraft.aero":true,"airline.aero":true,"airport.aero":true,"air-surveillance.aero":true,"airtraffic.aero":true,"air-traffic-control.aero":true,"ambulance.aero":true,"amusement.aero":true,"association.aero":true,"author.aero":true,"ballooning.aero":true,"broker.aero":true,"caa.aero":true,"cargo.aero":true,"catering.aero":true,"certification.aero":true,"championship.aero":true,"charter.aero":true,"civilaviation.aero":true,"club.aero":true,"conference.aero":true,"consultant.aero":true,"consulting.aero":true,"control.aero":true,"council.aero":true,"crew.aero":true,"design.aero":true,"dgca.aero":true,"educator.aero":true,"emergency.aero":true,"engine.aero":true,"engineer.aero":true,"entertainment.aero":true,"equipment.aero":true,"exchange.aero":true,"express.aero":true,"federation.aero":true,"flight.aero":true,"freight.aero":true,"fuel.aero":true,"gliding.aero":true,"government.aero":true,"groundhandling.aero":true,"group.aero":true,"hanggliding.aero":true,"homebuilt.aero":true,"insurance.aero":true,"journal.aero":true,"journalist.aero":true,"leasing.aero":true,"logistics.aero":true,"magazine.aero":true,"maintenance.aero":true,"marketplace.aero":true,"media.aero":true,"microlight.aero":true,"modelling.aero":true,"navigation.aero":true,"parachuting.aero":true,"paragliding.aero":true,"passenger-association.aero":true,"pilot.aero":true,"press.aero":true,"production.aero":true,"recreation.aero":true,"repbody.aero":true,"res.aero":true,"research.aero":true,"rotorcraft.aero":true,"safety.aero":true,"scientist.aero":true,"services.aero":true,"show.aero":true,"skydiving.aero":true,"software.aero":true,"student.aero":true,"taxi.aero":true,"trader.aero":true,"trading.aero":true,"trainer.aero":true,"union.aero":true,"workinggroup.aero":true,"works.aero":true,"af":true,"gov.af":true,"com.af":true,"org.af":true,"net.af":true,"edu.af":true,"ag":true,"com.ag":true,"org.ag":true,"net.ag":true,"co.ag":true,"nom.ag":true,"ai":true,"off.ai":true,"com.ai":true,"net.ai":true,"org.ai":true,"al":true,"com.al":true,"edu.al":true,"gov.al":true,"mil.al":true,"net.al":true,"org.al":true,"am":true,"an":true,"com.an":true,"net.an":true,"org.an":true,"edu.an":true,"ao":true,"ed.ao":true,"gv.ao":true,"og.ao":true,"co.ao":true,"pb.ao":true,"it.ao":true,"aq":true,"ar":true,"com.ar":true,"edu.ar":true,"gob.ar":true,"gov.ar":true,"int.ar":true,"mil.ar":true,"net.ar":true,"org.ar":true,"tur.ar":true,"arpa":true,"e164.arpa":true,"in-addr.arpa":true,"ip6.arpa":true,"iris.arpa":true,"uri.arpa":true,"urn.arpa":true,"as":true,"gov.as":true,"asia":true,"at":true,"ac.at":true,"co.at":true,"gv.at":true,"or.at":true,"au":true,"com.au":true,"net.au":true,"org.au":true,"edu.au":true,"gov.au":true,"asn.au":true,"id.au":true,"info.au":true,"conf.au":true,"oz.au":true,"act.au":true,"nsw.au":true,"nt.au":true,"qld.au":true,"sa.au":true,"tas.au":true,"vic.au":true,"wa.au":true,"act.edu.au":true,"nsw.edu.au":true,"nt.edu.au":true,"qld.edu.au":true,"sa.edu.au":true,"tas.edu.au":true,"vic.edu.au":true,"wa.edu.au":true,"qld.gov.au":true,"sa.gov.au":true,"tas.gov.au":true,"vic.gov.au":true,"wa.gov.au":true,"aw":true,"com.aw":true,"ax":true,"az":true,"com.az":true,"net.az":true,"int.az":true,"gov.az":true,"org.az":true,"edu.az":true,"info.az":true,"pp.az":true,"mil.az":true,"name.az":true,"pro.az":true,"biz.az":true,"ba":true,"org.ba":true,"net.ba":true,"edu.ba":true,"gov.ba":true,"mil.ba":true,"unsa.ba":true,"unbi.ba":true,"co.ba":true,"com.ba":true,"rs.ba":true,"bb":true,"biz.bb":true,"co.bb":true,"com.bb":true,"edu.bb":true,"gov.bb":true,"info.bb":true,"net.bb":true,"org.bb":true,"store.bb":true,"tv.bb":true,"*.bd":true,"be":true,"ac.be":true,"bf":true,"gov.bf":true,"bg":true,"a.bg":true,"b.bg":true,"c.bg":true,"d.bg":true,"e.bg":true,"f.bg":true,"g.bg":true,"h.bg":true,"i.bg":true,"j.bg":true,"k.bg":true,"l.bg":true,"m.bg":true,"n.bg":true,"o.bg":true,"p.bg":true,"q.bg":true,"r.bg":true,"s.bg":true,"t.bg":true,"u.bg":true,"v.bg":true,"w.bg":true,"x.bg":true,"y.bg":true,"z.bg":true,"0.bg":true,"1.bg":true,"2.bg":true,"3.bg":true,"4.bg":true,"5.bg":true,"6.bg":true,"7.bg":true,"8.bg":true,"9.bg":true,"bh":true,"com.bh":true,"edu.bh":true,"net.bh":true,"org.bh":true,"gov.bh":true,"bi":true,"co.bi":true,"com.bi":true,"edu.bi":true,"or.bi":true,"org.bi":true,"biz":true,"bj":true,"asso.bj":true,"barreau.bj":true,"gouv.bj":true,"bm":true,"com.bm":true,"edu.bm":true,"gov.bm":true,"net.bm":true,"org.bm":true,"*.bn":true,"bo":true,"com.bo":true,"edu.bo":true,"gov.bo":true,"gob.bo":true,"int.bo":true,"org.bo":true,"net.bo":true,"mil.bo":true,"tv.bo":true,"br":true,"adm.br":true,"adv.br":true,"agr.br":true,"am.br":true,"arq.br":true,"art.br":true,"ato.br":true,"b.br":true,"bio.br":true,"blog.br":true,"bmd.br":true,"cim.br":true,"cng.br":true,"cnt.br":true,"com.br":true,"coop.br":true,"ecn.br":true,"eco.br":true,"edu.br":true,"emp.br":true,"eng.br":true,"esp.br":true,"etc.br":true,"eti.br":true,"far.br":true,"flog.br":true,"fm.br":true,"fnd.br":true,"fot.br":true,"fst.br":true,"g12.br":true,"ggf.br":true,"gov.br":true,"imb.br":true,"ind.br":true,"inf.br":true,"jor.br":true,"jus.br":true,"leg.br":true,"lel.br":true,"mat.br":true,"med.br":true,"mil.br":true,"mp.br":true,"mus.br":true,"net.br":true,"*.nom.br":true,"not.br":true,"ntr.br":true,"odo.br":true,"org.br":true,"ppg.br":true,"pro.br":true,"psc.br":true,"psi.br":true,"qsl.br":true,"radio.br":true,"rec.br":true,"slg.br":true,"srv.br":true,"taxi.br":true,"teo.br":true,"tmp.br":true,"trd.br":true,"tur.br":true,"tv.br":true,"vet.br":true,"vlog.br":true,"wiki.br":true,"zlg.br":true,"bs":true,"com.bs":true,"net.bs":true,"org.bs":true,"edu.bs":true,"gov.bs":true,"bt":true,"com.bt":true,"edu.bt":true,"gov.bt":true,"net.bt":true,"org.bt":true,"bv":true,"bw":true,"co.bw":true,"org.bw":true,"by":true,"gov.by":true,"mil.by":true,"com.by":true,"of.by":true,"bz":true,"com.bz":true,"net.bz":true,"org.bz":true,"edu.bz":true,"gov.bz":true,"ca":true,"ab.ca":true,"bc.ca":true,"mb.ca":true,"nb.ca":true,"nf.ca":true,"nl.ca":true,"ns.ca":true,"nt.ca":true,"nu.ca":true,"on.ca":true,"pe.ca":true,"qc.ca":true,"sk.ca":true,"yk.ca":true,"gc.ca":true,"cat":true,"cc":true,"cd":true,"gov.cd":true,"cf":true,"cg":true,"ch":true,"ci":true,"org.ci":true,"or.ci":true,"com.ci":true,"co.ci":true,"edu.ci":true,"ed.ci":true,"ac.ci":true,"net.ci":true,"go.ci":true,"asso.ci":true,"xn--aroport-bya.ci":true,"int.ci":true,"presse.ci":true,"md.ci":true,"gouv.ci":true,"*.ck":true,"www.ck":false,"cl":true,"gov.cl":true,"gob.cl":true,"co.cl":true,"mil.cl":true,"cm":true,"co.cm":true,"com.cm":true,"gov.cm":true,"net.cm":true,"cn":true,"ac.cn":true,"com.cn":true,"edu.cn":true,"gov.cn":true,"net.cn":true,"org.cn":true,"mil.cn":true,"xn--55qx5d.cn":true,"xn--io0a7i.cn":true,"xn--od0alg.cn":true,"ah.cn":true,"bj.cn":true,"cq.cn":true,"fj.cn":true,"gd.cn":true,"gs.cn":true,"gz.cn":true,"gx.cn":true,"ha.cn":true,"hb.cn":true,"he.cn":true,"hi.cn":true,"hl.cn":true,"hn.cn":true,"jl.cn":true,"js.cn":true,"jx.cn":true,"ln.cn":true,"nm.cn":true,"nx.cn":true,"qh.cn":true,"sc.cn":true,"sd.cn":true,"sh.cn":true,"sn.cn":true,"sx.cn":true,"tj.cn":true,"xj.cn":true,"xz.cn":true,"yn.cn":true,"zj.cn":true,"hk.cn":true,"mo.cn":true,"tw.cn":true,"co":true,"arts.co":true,"com.co":true,"edu.co":true,"firm.co":true,"gov.co":true,"info.co":true,"int.co":true,"mil.co":true,"net.co":true,"nom.co":true,"org.co":true,"rec.co":true,"web.co":true,"com":true,"coop":true,"cr":true,"ac.cr":true,"co.cr":true,"ed.cr":true,"fi.cr":true,"go.cr":true,"or.cr":true,"sa.cr":true,"cu":true,"com.cu":true,"edu.cu":true,"org.cu":true,"net.cu":true,"gov.cu":true,"inf.cu":true,"cv":true,"cw":true,"com.cw":true,"edu.cw":true,"net.cw":true,"org.cw":true,"cx":true,"gov.cx":true,"ac.cy":true,"biz.cy":true,"com.cy":true,"ekloges.cy":true,"gov.cy":true,"ltd.cy":true,"name.cy":true,"net.cy":true,"org.cy":true,"parliament.cy":true,"press.cy":true,"pro.cy":true,"tm.cy":true,"cz":true,"de":true,"dj":true,"dk":true,"dm":true,"com.dm":true,"net.dm":true,"org.dm":true,"edu.dm":true,"gov.dm":true,"do":true,"art.do":true,"com.do":true,"edu.do":true,"gob.do":true,"gov.do":true,"mil.do":true,"net.do":true,"org.do":true,"sld.do":true,"web.do":true,"dz":true,"com.dz":true,"org.dz":true,"net.dz":true,"gov.dz":true,"edu.dz":true,"asso.dz":true,"pol.dz":true,"art.dz":true,"ec":true,"com.ec":true,"info.ec":true,"net.ec":true,"fin.ec":true,"k12.ec":true,"med.ec":true,"pro.ec":true,"org.ec":true,"edu.ec":true,"gov.ec":true,"gob.ec":true,"mil.ec":true,"edu":true,"ee":true,"edu.ee":true,"gov.ee":true,"riik.ee":true,"lib.ee":true,"med.ee":true,"com.ee":true,"pri.ee":true,"aip.ee":true,"org.ee":true,"fie.ee":true,"eg":true,"com.eg":true,"edu.eg":true,"eun.eg":true,"gov.eg":true,"mil.eg":true,"name.eg":true,"net.eg":true,"org.eg":true,"sci.eg":true,"*.er":true,"es":true,"com.es":true,"nom.es":true,"org.es":true,"gob.es":true,"edu.es":true,"et":true,"com.et":true,"gov.et":true,"org.et":true,"edu.et":true,"biz.et":true,"name.et":true,"info.et":true,"net.et":true,"eu":true,"fi":true,"aland.fi":true,"*.fj":true,"*.fk":true,"fm":true,"fo":true,"fr":true,"com.fr":true,"asso.fr":true,"nom.fr":true,"prd.fr":true,"presse.fr":true,"tm.fr":true,"aeroport.fr":true,"assedic.fr":true,"avocat.fr":true,"avoues.fr":true,"cci.fr":true,"chambagri.fr":true,"chirurgiens-dentistes.fr":true,"experts-comptables.fr":true,"geometre-expert.fr":true,"gouv.fr":true,"greta.fr":true,"huissier-justice.fr":true,"medecin.fr":true,"notaires.fr":true,"pharmacien.fr":true,"port.fr":true,"veterinaire.fr":true,"ga":true,"gb":true,"gd":true,"ge":true,"com.ge":true,"edu.ge":true,"gov.ge":true,"org.ge":true,"mil.ge":true,"net.ge":true,"pvt.ge":true,"gf":true,"gg":true,"co.gg":true,"net.gg":true,"org.gg":true,"gh":true,"com.gh":true,"edu.gh":true,"gov.gh":true,"org.gh":true,"mil.gh":true,"gi":true,"com.gi":true,"ltd.gi":true,"gov.gi":true,"mod.gi":true,"edu.gi":true,"org.gi":true,"gl":true,"co.gl":true,"com.gl":true,"edu.gl":true,"net.gl":true,"org.gl":true,"gm":true,"gn":true,"ac.gn":true,"com.gn":true,"edu.gn":true,"gov.gn":true,"org.gn":true,"net.gn":true,"gov":true,"gp":true,"com.gp":true,"net.gp":true,"mobi.gp":true,"edu.gp":true,"org.gp":true,"asso.gp":true,"gq":true,"gr":true,"com.gr":true,"edu.gr":true,"net.gr":true,"org.gr":true,"gov.gr":true,"gs":true,"gt":true,"com.gt":true,"edu.gt":true,"gob.gt":true,"ind.gt":true,"mil.gt":true,"net.gt":true,"org.gt":true,"*.gu":true,"gw":true,"gy":true,"co.gy":true,"com.gy":true,"net.gy":true,"hk":true,"com.hk":true,"edu.hk":true,"gov.hk":true,"idv.hk":true,"net.hk":true,"org.hk":true,"xn--55qx5d.hk":true,"xn--wcvs22d.hk":true,"xn--lcvr32d.hk":true,"xn--mxtq1m.hk":true,"xn--gmqw5a.hk":true,"xn--ciqpn.hk":true,"xn--gmq050i.hk":true,"xn--zf0avx.hk":true,"xn--io0a7i.hk":true,"xn--mk0axi.hk":true,"xn--od0alg.hk":true,"xn--od0aq3b.hk":true,"xn--tn0ag.hk":true,"xn--uc0atv.hk":true,"xn--uc0ay4a.hk":true,"hm":true,"hn":true,"com.hn":true,"edu.hn":true,"org.hn":true,"net.hn":true,"mil.hn":true,"gob.hn":true,"hr":true,"iz.hr":true,"from.hr":true,"name.hr":true,"com.hr":true,"ht":true,"com.ht":true,"shop.ht":true,"firm.ht":true,"info.ht":true,"adult.ht":true,"net.ht":true,"pro.ht":true,"org.ht":true,"med.ht":true,"art.ht":true,"coop.ht":true,"pol.ht":true,"asso.ht":true,"edu.ht":true,"rel.ht":true,"gouv.ht":true,"perso.ht":true,"hu":true,"co.hu":true,"info.hu":true,"org.hu":true,"priv.hu":true,"sport.hu":true,"tm.hu":true,"2000.hu":true,"agrar.hu":true,"bolt.hu":true,"casino.hu":true,"city.hu":true,"erotica.hu":true,"erotika.hu":true,"film.hu":true,"forum.hu":true,"games.hu":true,"hotel.hu":true,"ingatlan.hu":true,"jogasz.hu":true,"konyvelo.hu":true,"lakas.hu":true,"media.hu":true,"news.hu":true,"reklam.hu":true,"sex.hu":true,"shop.hu":true,"suli.hu":true,"szex.hu":true,"tozsde.hu":true,"utazas.hu":true,"video.hu":true,"id":true,"ac.id":true,"biz.id":true,"co.id":true,"desa.id":true,"go.id":true,"mil.id":true,"my.id":true,"net.id":true,"or.id":true,"sch.id":true,"web.id":true,"ie":true,"gov.ie":true,"il":true,"ac.il":true,"co.il":true,"gov.il":true,"idf.il":true,"k12.il":true,"muni.il":true,"net.il":true,"org.il":true,"im":true,"ac.im":true,"co.im":true,"com.im":true,"ltd.co.im":true,"net.im":true,"org.im":true,"plc.co.im":true,"tt.im":true,"tv.im":true,"in":true,"co.in":true,"firm.in":true,"net.in":true,"org.in":true,"gen.in":true,"ind.in":true,"nic.in":true,"ac.in":true,"edu.in":true,"res.in":true,"gov.in":true,"mil.in":true,"info":true,"int":true,"eu.int":true,"io":true,"com.io":true,"iq":true,"gov.iq":true,"edu.iq":true,"mil.iq":true,"com.iq":true,"org.iq":true,"net.iq":true,"ir":true,"ac.ir":true,"co.ir":true,"gov.ir":true,"id.ir":true,"net.ir":true,"org.ir":true,"sch.ir":true,"xn--mgba3a4f16a.ir":true,"xn--mgba3a4fra.ir":true,"is":true,"net.is":true,"com.is":true,"edu.is":true,"gov.is":true,"org.is":true,"int.is":true,"it":true,"gov.it":true,"edu.it":true,"abr.it":true,"abruzzo.it":true,"aosta-valley.it":true,"aostavalley.it":true,"bas.it":true,"basilicata.it":true,"cal.it":true,"calabria.it":true,"cam.it":true,"campania.it":true,"emilia-romagna.it":true,"emiliaromagna.it":true,"emr.it":true,"friuli-v-giulia.it":true,"friuli-ve-giulia.it":true,"friuli-vegiulia.it":true,"friuli-venezia-giulia.it":true,"friuli-veneziagiulia.it":true,"friuli-vgiulia.it":true,"friuliv-giulia.it":true,"friulive-giulia.it":true,"friulivegiulia.it":true,"friulivenezia-giulia.it":true,"friuliveneziagiulia.it":true,"friulivgiulia.it":true,"fvg.it":true,"laz.it":true,"lazio.it":true,"lig.it":true,"liguria.it":true,"lom.it":true,"lombardia.it":true,"lombardy.it":true,"lucania.it":true,"mar.it":true,"marche.it":true,"mol.it":true,"molise.it":true,"piedmont.it":true,"piemonte.it":true,"pmn.it":true,"pug.it":true,"puglia.it":true,"sar.it":true,"sardegna.it":true,"sardinia.it":true,"sic.it":true,"sicilia.it":true,"sicily.it":true,"taa.it":true,"tos.it":true,"toscana.it":true,"trentino-a-adige.it":true,"trentino-aadige.it":true,"trentino-alto-adige.it":true,"trentino-altoadige.it":true,"trentino-s-tirol.it":true,"trentino-stirol.it":true,"trentino-sud-tirol.it":true,"trentino-sudtirol.it":true,"trentino-sued-tirol.it":true,"trentino-suedtirol.it":true,"trentinoa-adige.it":true,"trentinoaadige.it":true,"trentinoalto-adige.it":true,"trentinoaltoadige.it":true,"trentinos-tirol.it":true,"trentinostirol.it":true,"trentinosud-tirol.it":true,"trentinosudtirol.it":true,"trentinosued-tirol.it":true,"trentinosuedtirol.it":true,"tuscany.it":true,"umb.it":true,"umbria.it":true,"val-d-aosta.it":true,"val-daosta.it":true,"vald-aosta.it":true,"valdaosta.it":true,"valle-aosta.it":true,"valle-d-aosta.it":true,"valle-daosta.it":true,"valleaosta.it":true,"valled-aosta.it":true,"valledaosta.it":true,"vallee-aoste.it":true,"valleeaoste.it":true,"vao.it":true,"vda.it":true,"ven.it":true,"veneto.it":true,"ag.it":true,"agrigento.it":true,"al.it":true,"alessandria.it":true,"alto-adige.it":true,"altoadige.it":true,"an.it":true,"ancona.it":true,"andria-barletta-trani.it":true,"andria-trani-barletta.it":true,"andriabarlettatrani.it":true,"andriatranibarletta.it":true,"ao.it":true,"aosta.it":true,"aoste.it":true,"ap.it":true,"aq.it":true,"aquila.it":true,"ar.it":true,"arezzo.it":true,"ascoli-piceno.it":true,"ascolipiceno.it":true,"asti.it":true,"at.it":true,"av.it":true,"avellino.it":true,"ba.it":true,"balsan.it":true,"bari.it":true,"barletta-trani-andria.it":true,"barlettatraniandria.it":true,"belluno.it":true,"benevento.it":true,"bergamo.it":true,"bg.it":true,"bi.it":true,"biella.it":true,"bl.it":true,"bn.it":true,"bo.it":true,"bologna.it":true,"bolzano.it":true,"bozen.it":true,"br.it":true,"brescia.it":true,"brindisi.it":true,"bs.it":true,"bt.it":true,"bz.it":true,"ca.it":true,"cagliari.it":true,"caltanissetta.it":true,"campidano-medio.it":true,"campidanomedio.it":true,"campobasso.it":true,"carbonia-iglesias.it":true,"carboniaiglesias.it":true,"carrara-massa.it":true,"carraramassa.it":true,"caserta.it":true,"catania.it":true,"catanzaro.it":true,"cb.it":true,"ce.it":true,"cesena-forli.it":true,"cesenaforli.it":true,"ch.it":true,"chieti.it":true,"ci.it":true,"cl.it":true,"cn.it":true,"co.it":true,"como.it":true,"cosenza.it":true,"cr.it":true,"cremona.it":true,"crotone.it":true,"cs.it":true,"ct.it":true,"cuneo.it":true,"cz.it":true,"dell-ogliastra.it":true,"dellogliastra.it":true,"en.it":true,"enna.it":true,"fc.it":true,"fe.it":true,"fermo.it":true,"ferrara.it":true,"fg.it":true,"fi.it":true,"firenze.it":true,"florence.it":true,"fm.it":true,"foggia.it":true,"forli-cesena.it":true,"forlicesena.it":true,"fr.it":true,"frosinone.it":true,"ge.it":true,"genoa.it":true,"genova.it":true,"go.it":true,"gorizia.it":true,"gr.it":true,"grosseto.it":true,"iglesias-carbonia.it":true,"iglesiascarbonia.it":true,"im.it":true,"imperia.it":true,"is.it":true,"isernia.it":true,"kr.it":true,"la-spezia.it":true,"laquila.it":true,"laspezia.it":true,"latina.it":true,"lc.it":true,"le.it":true,"lecce.it":true,"lecco.it":true,"li.it":true,"livorno.it":true,"lo.it":true,"lodi.it":true,"lt.it":true,"lu.it":true,"lucca.it":true,"macerata.it":true,"mantova.it":true,"massa-carrara.it":true,"massacarrara.it":true,"matera.it":true,"mb.it":true,"mc.it":true,"me.it":true,"medio-campidano.it":true,"mediocampidano.it":true,"messina.it":true,"mi.it":true,"milan.it":true,"milano.it":true,"mn.it":true,"mo.it":true,"modena.it":true,"monza-brianza.it":true,"monza-e-della-brianza.it":true,"monza.it":true,"monzabrianza.it":true,"monzaebrianza.it":true,"monzaedellabrianza.it":true,"ms.it":true,"mt.it":true,"na.it":true,"naples.it":true,"napoli.it":true,"no.it":true,"novara.it":true,"nu.it":true,"nuoro.it":true,"og.it":true,"ogliastra.it":true,"olbia-tempio.it":true,"olbiatempio.it":true,"or.it":true,"oristano.it":true,"ot.it":true,"pa.it":true,"padova.it":true,"padua.it":true,"palermo.it":true,"parma.it":true,"pavia.it":true,"pc.it":true,"pd.it":true,"pe.it":true,"perugia.it":true,"pesaro-urbino.it":true,"pesarourbino.it":true,"pescara.it":true,"pg.it":true,"pi.it":true,"piacenza.it":true,"pisa.it":true,"pistoia.it":true,"pn.it":true,"po.it":true,"pordenone.it":true,"potenza.it":true,"pr.it":true,"prato.it":true,"pt.it":true,"pu.it":true,"pv.it":true,"pz.it":true,"ra.it":true,"ragusa.it":true,"ravenna.it":true,"rc.it":true,"re.it":true,"reggio-calabria.it":true,"reggio-emilia.it":true,"reggiocalabria.it":true,"reggioemilia.it":true,"rg.it":true,"ri.it":true,"rieti.it":true,"rimini.it":true,"rm.it":true,"rn.it":true,"ro.it":true,"roma.it":true,"rome.it":true,"rovigo.it":true,"sa.it":true,"salerno.it":true,"sassari.it":true,"savona.it":true,"si.it":true,"siena.it":true,"siracusa.it":true,"so.it":true,"sondrio.it":true,"sp.it":true,"sr.it":true,"ss.it":true,"suedtirol.it":true,"sv.it":true,"ta.it":true,"taranto.it":true,"te.it":true,"tempio-olbia.it":true,"tempioolbia.it":true,"teramo.it":true,"terni.it":true,"tn.it":true,"to.it":true,"torino.it":true,"tp.it":true,"tr.it":true,"trani-andria-barletta.it":true,"trani-barletta-andria.it":true,"traniandriabarletta.it":true,"tranibarlettaandria.it":true,"trapani.it":true,"trentino.it":true,"trento.it":true,"treviso.it":true,"trieste.it":true,"ts.it":true,"turin.it":true,"tv.it":true,"ud.it":true,"udine.it":true,"urbino-pesaro.it":true,"urbinopesaro.it":true,"va.it":true,"varese.it":true,"vb.it":true,"vc.it":true,"ve.it":true,"venezia.it":true,"venice.it":true,"verbania.it":true,"vercelli.it":true,"verona.it":true,"vi.it":true,"vibo-valentia.it":true,"vibovalentia.it":true,"vicenza.it":true,"viterbo.it":true,"vr.it":true,"vs.it":true,"vt.it":true,"vv.it":true,"je":true,"co.je":true,"net.je":true,"org.je":true,"*.jm":true,"jo":true,"com.jo":true,"org.jo":true,"net.jo":true,"edu.jo":true,"sch.jo":true,"gov.jo":true,"mil.jo":true,"name.jo":true,"jobs":true,"jp":true,"ac.jp":true,"ad.jp":true,"co.jp":true,"ed.jp":true,"go.jp":true,"gr.jp":true,"lg.jp":true,"ne.jp":true,"or.jp":true,"aichi.jp":true,"akita.jp":true,"aomori.jp":true,"chiba.jp":true,"ehime.jp":true,"fukui.jp":true,"fukuoka.jp":true,"fukushima.jp":true,"gifu.jp":true,"gunma.jp":true,"hiroshima.jp":true,"hokkaido.jp":true,"hyogo.jp":true,"ibaraki.jp":true,"ishikawa.jp":true,"iwate.jp":true,"kagawa.jp":true,"kagoshima.jp":true,"kanagawa.jp":true,"kochi.jp":true,"kumamoto.jp":true,"kyoto.jp":true,"mie.jp":true,"miyagi.jp":true,"miyazaki.jp":true,"nagano.jp":true,"nagasaki.jp":true,"nara.jp":true,"niigata.jp":true,"oita.jp":true,"okayama.jp":true,"okinawa.jp":true,"osaka.jp":true,"saga.jp":true,"saitama.jp":true,"shiga.jp":true,"shimane.jp":true,"shizuoka.jp":true,"tochigi.jp":true,"tokushima.jp":true,"tokyo.jp":true,"tottori.jp":true,"toyama.jp":true,"wakayama.jp":true,"yamagata.jp":true,"yamaguchi.jp":true,"yamanashi.jp":true,"xn--4pvxs.jp":true,"xn--vgu402c.jp":true,"xn--c3s14m.jp":true,"xn--f6qx53a.jp":true,"xn--8pvr4u.jp":true,"xn--uist22h.jp":true,"xn--djrs72d6uy.jp":true,"xn--mkru45i.jp":true,"xn--0trq7p7nn.jp":true,"xn--8ltr62k.jp":true,"xn--2m4a15e.jp":true,"xn--efvn9s.jp":true,"xn--32vp30h.jp":true,"xn--4it797k.jp":true,"xn--1lqs71d.jp":true,"xn--5rtp49c.jp":true,"xn--5js045d.jp":true,"xn--ehqz56n.jp":true,"xn--1lqs03n.jp":true,"xn--qqqt11m.jp":true,"xn--kbrq7o.jp":true,"xn--pssu33l.jp":true,"xn--ntsq17g.jp":true,"xn--uisz3g.jp":true,"xn--6btw5a.jp":true,"xn--1ctwo.jp":true,"xn--6orx2r.jp":true,"xn--rht61e.jp":true,"xn--rht27z.jp":true,"xn--djty4k.jp":true,"xn--nit225k.jp":true,"xn--rht3d.jp":true,"xn--klty5x.jp":true,"xn--kltx9a.jp":true,"xn--kltp7d.jp":true,"xn--uuwu58a.jp":true,"xn--zbx025d.jp":true,"xn--ntso0iqx3a.jp":true,"xn--elqq16h.jp":true,"xn--4it168d.jp":true,"xn--klt787d.jp":true,"xn--rny31h.jp":true,"xn--7t0a264c.jp":true,"xn--5rtq34k.jp":true,"xn--k7yn95e.jp":true,"xn--tor131o.jp":true,"xn--d5qv7z876c.jp":true,"*.kawasaki.jp":true,"*.kitakyushu.jp":true,"*.kobe.jp":true,"*.nagoya.jp":true,"*.sapporo.jp":true,"*.sendai.jp":true,"*.yokohama.jp":true,"city.kawasaki.jp":false,"city.kitakyushu.jp":false,"city.kobe.jp":false,"city.nagoya.jp":false,"city.sapporo.jp":false,"city.sendai.jp":false,"city.yokohama.jp":false,"aisai.aichi.jp":true,"ama.aichi.jp":true,"anjo.aichi.jp":true,"asuke.aichi.jp":true,"chiryu.aichi.jp":true,"chita.aichi.jp":true,"fuso.aichi.jp":true,"gamagori.aichi.jp":true,"handa.aichi.jp":true,"hazu.aichi.jp":true,"hekinan.aichi.jp":true,"higashiura.aichi.jp":true,"ichinomiya.aichi.jp":true,"inazawa.aichi.jp":true,"inuyama.aichi.jp":true,"isshiki.aichi.jp":true,"iwakura.aichi.jp":true,"kanie.aichi.jp":true,"kariya.aichi.jp":true,"kasugai.aichi.jp":true,"kira.aichi.jp":true,"kiyosu.aichi.jp":true,"komaki.aichi.jp":true,"konan.aichi.jp":true,"kota.aichi.jp":true,"mihama.aichi.jp":true,"miyoshi.aichi.jp":true,"nishio.aichi.jp":true,"nisshin.aichi.jp":true,"obu.aichi.jp":true,"oguchi.aichi.jp":true,"oharu.aichi.jp":true,"okazaki.aichi.jp":true,"owariasahi.aichi.jp":true,"seto.aichi.jp":true,"shikatsu.aichi.jp":true,"shinshiro.aichi.jp":true,"shitara.aichi.jp":true,"tahara.aichi.jp":true,"takahama.aichi.jp":true,"tobishima.aichi.jp":true,"toei.aichi.jp":true,"togo.aichi.jp":true,"tokai.aichi.jp":true,"tokoname.aichi.jp":true,"toyoake.aichi.jp":true,"toyohashi.aichi.jp":true,"toyokawa.aichi.jp":true,"toyone.aichi.jp":true,"toyota.aichi.jp":true,"tsushima.aichi.jp":true,"yatomi.aichi.jp":true,"akita.akita.jp":true,"daisen.akita.jp":true,"fujisato.akita.jp":true,"gojome.akita.jp":true,"hachirogata.akita.jp":true,"happou.akita.jp":true,"higashinaruse.akita.jp":true,"honjo.akita.jp":true,"honjyo.akita.jp":true,"ikawa.akita.jp":true,"kamikoani.akita.jp":true,"kamioka.akita.jp":true,"katagami.akita.jp":true,"kazuno.akita.jp":true,"kitaakita.akita.jp":true,"kosaka.akita.jp":true,"kyowa.akita.jp":true,"misato.akita.jp":true,"mitane.akita.jp":true,"moriyoshi.akita.jp":true,"nikaho.akita.jp":true,"noshiro.akita.jp":true,"odate.akita.jp":true,"oga.akita.jp":true,"ogata.akita.jp":true,"semboku.akita.jp":true,"yokote.akita.jp":true,"yurihonjo.akita.jp":true,"aomori.aomori.jp":true,"gonohe.aomori.jp":true,"hachinohe.aomori.jp":true,"hashikami.aomori.jp":true,"hiranai.aomori.jp":true,"hirosaki.aomori.jp":true,"itayanagi.aomori.jp":true,"kuroishi.aomori.jp":true,"misawa.aomori.jp":true,"mutsu.aomori.jp":true,"nakadomari.aomori.jp":true,"noheji.aomori.jp":true,"oirase.aomori.jp":true,"owani.aomori.jp":true,"rokunohe.aomori.jp":true,"sannohe.aomori.jp":true,"shichinohe.aomori.jp":true,"shingo.aomori.jp":true,"takko.aomori.jp":true,"towada.aomori.jp":true,"tsugaru.aomori.jp":true,"tsuruta.aomori.jp":true,"abiko.chiba.jp":true,"asahi.chiba.jp":true,"chonan.chiba.jp":true,"chosei.chiba.jp":true,"choshi.chiba.jp":true,"chuo.chiba.jp":true,"funabashi.chiba.jp":true,"futtsu.chiba.jp":true,"hanamigawa.chiba.jp":true,"ichihara.chiba.jp":true,"ichikawa.chiba.jp":true,"ichinomiya.chiba.jp":true,"inzai.chiba.jp":true,"isumi.chiba.jp":true,"kamagaya.chiba.jp":true,"kamogawa.chiba.jp":true,"kashiwa.chiba.jp":true,"katori.chiba.jp":true,"katsuura.chiba.jp":true,"kimitsu.chiba.jp":true,"kisarazu.chiba.jp":true,"kozaki.chiba.jp":true,"kujukuri.chiba.jp":true,"kyonan.chiba.jp":true,"matsudo.chiba.jp":true,"midori.chiba.jp":true,"mihama.chiba.jp":true,"minamiboso.chiba.jp":true,"mobara.chiba.jp":true,"mutsuzawa.chiba.jp":true,"nagara.chiba.jp":true,"nagareyama.chiba.jp":true,"narashino.chiba.jp":true,"narita.chiba.jp":true,"noda.chiba.jp":true,"oamishirasato.chiba.jp":true,"omigawa.chiba.jp":true,"onjuku.chiba.jp":true,"otaki.chiba.jp":true,"sakae.chiba.jp":true,"sakura.chiba.jp":true,"shimofusa.chiba.jp":true,"shirako.chiba.jp":true,"shiroi.chiba.jp":true,"shisui.chiba.jp":true,"sodegaura.chiba.jp":true,"sosa.chiba.jp":true,"tako.chiba.jp":true,"tateyama.chiba.jp":true,"togane.chiba.jp":true,"tohnosho.chiba.jp":true,"tomisato.chiba.jp":true,"urayasu.chiba.jp":true,"yachimata.chiba.jp":true,"yachiyo.chiba.jp":true,"yokaichiba.chiba.jp":true,"yokoshibahikari.chiba.jp":true,"yotsukaido.chiba.jp":true,"ainan.ehime.jp":true,"honai.ehime.jp":true,"ikata.ehime.jp":true,"imabari.ehime.jp":true,"iyo.ehime.jp":true,"kamijima.ehime.jp":true,"kihoku.ehime.jp":true,"kumakogen.ehime.jp":true,"masaki.ehime.jp":true,"matsuno.ehime.jp":true,"matsuyama.ehime.jp":true,"namikata.ehime.jp":true,"niihama.ehime.jp":true,"ozu.ehime.jp":true,"saijo.ehime.jp":true,"seiyo.ehime.jp":true,"shikokuchuo.ehime.jp":true,"tobe.ehime.jp":true,"toon.ehime.jp":true,"uchiko.ehime.jp":true,"uwajima.ehime.jp":true,"yawatahama.ehime.jp":true,"echizen.fukui.jp":true,"eiheiji.fukui.jp":true,"fukui.fukui.jp":true,"ikeda.fukui.jp":true,"katsuyama.fukui.jp":true,"mihama.fukui.jp":true,"minamiechizen.fukui.jp":true,"obama.fukui.jp":true,"ohi.fukui.jp":true,"ono.fukui.jp":true,"sabae.fukui.jp":true,"sakai.fukui.jp":true,"takahama.fukui.jp":true,"tsuruga.fukui.jp":true,"wakasa.fukui.jp":true,"ashiya.fukuoka.jp":true,"buzen.fukuoka.jp":true,"chikugo.fukuoka.jp":true,"chikuho.fukuoka.jp":true,"chikujo.fukuoka.jp":true,"chikushino.fukuoka.jp":true,"chikuzen.fukuoka.jp":true,"chuo.fukuoka.jp":true,"dazaifu.fukuoka.jp":true,"fukuchi.fukuoka.jp":true,"hakata.fukuoka.jp":true,"higashi.fukuoka.jp":true,"hirokawa.fukuoka.jp":true,"hisayama.fukuoka.jp":true,"iizuka.fukuoka.jp":true,"inatsuki.fukuoka.jp":true,"kaho.fukuoka.jp":true,"kasuga.fukuoka.jp":true,"kasuya.fukuoka.jp":true,"kawara.fukuoka.jp":true,"keisen.fukuoka.jp":true,"koga.fukuoka.jp":true,"kurate.fukuoka.jp":true,"kurogi.fukuoka.jp":true,"kurume.fukuoka.jp":true,"minami.fukuoka.jp":true,"miyako.fukuoka.jp":true,"miyama.fukuoka.jp":true,"miyawaka.fukuoka.jp":true,"mizumaki.fukuoka.jp":true,"munakata.fukuoka.jp":true,"nakagawa.fukuoka.jp":true,"nakama.fukuoka.jp":true,"nishi.fukuoka.jp":true,"nogata.fukuoka.jp":true,"ogori.fukuoka.jp":true,"okagaki.fukuoka.jp":true,"okawa.fukuoka.jp":true,"oki.fukuoka.jp":true,"omuta.fukuoka.jp":true,"onga.fukuoka.jp":true,"onojo.fukuoka.jp":true,"oto.fukuoka.jp":true,"saigawa.fukuoka.jp":true,"sasaguri.fukuoka.jp":true,"shingu.fukuoka.jp":true,"shinyoshitomi.fukuoka.jp":true,"shonai.fukuoka.jp":true,"soeda.fukuoka.jp":true,"sue.fukuoka.jp":true,"tachiarai.fukuoka.jp":true,"tagawa.fukuoka.jp":true,"takata.fukuoka.jp":true,"toho.fukuoka.jp":true,"toyotsu.fukuoka.jp":true,"tsuiki.fukuoka.jp":true,"ukiha.fukuoka.jp":true,"umi.fukuoka.jp":true,"usui.fukuoka.jp":true,"yamada.fukuoka.jp":true,"yame.fukuoka.jp":true,"yanagawa.fukuoka.jp":true,"yukuhashi.fukuoka.jp":true,"aizubange.fukushima.jp":true,"aizumisato.fukushima.jp":true,"aizuwakamatsu.fukushima.jp":true,"asakawa.fukushima.jp":true,"bandai.fukushima.jp":true,"date.fukushima.jp":true,"fukushima.fukushima.jp":true,"furudono.fukushima.jp":true,"futaba.fukushima.jp":true,"hanawa.fukushima.jp":true,"higashi.fukushima.jp":true,"hirata.fukushima.jp":true,"hirono.fukushima.jp":true,"iitate.fukushima.jp":true,"inawashiro.fukushima.jp":true,"ishikawa.fukushima.jp":true,"iwaki.fukushima.jp":true,"izumizaki.fukushima.jp":true,"kagamiishi.fukushima.jp":true,"kaneyama.fukushima.jp":true,"kawamata.fukushima.jp":true,"kitakata.fukushima.jp":true,"kitashiobara.fukushima.jp":true,"koori.fukushima.jp":true,"koriyama.fukushima.jp":true,"kunimi.fukushima.jp":true,"miharu.fukushima.jp":true,"mishima.fukushima.jp":true,"namie.fukushima.jp":true,"nango.fukushima.jp":true,"nishiaizu.fukushima.jp":true,"nishigo.fukushima.jp":true,"okuma.fukushima.jp":true,"omotego.fukushima.jp":true,"ono.fukushima.jp":true,"otama.fukushima.jp":true,"samegawa.fukushima.jp":true,"shimogo.fukushima.jp":true,"shirakawa.fukushima.jp":true,"showa.fukushima.jp":true,"soma.fukushima.jp":true,"sukagawa.fukushima.jp":true,"taishin.fukushima.jp":true,"tamakawa.fukushima.jp":true,"tanagura.fukushima.jp":true,"tenei.fukushima.jp":true,"yabuki.fukushima.jp":true,"yamato.fukushima.jp":true,"yamatsuri.fukushima.jp":true,"yanaizu.fukushima.jp":true,"yugawa.fukushima.jp":true,"anpachi.gifu.jp":true,"ena.gifu.jp":true,"gifu.gifu.jp":true,"ginan.gifu.jp":true,"godo.gifu.jp":true,"gujo.gifu.jp":true,"hashima.gifu.jp":true,"hichiso.gifu.jp":true,"hida.gifu.jp":true,"higashishirakawa.gifu.jp":true,"ibigawa.gifu.jp":true,"ikeda.gifu.jp":true,"kakamigahara.gifu.jp":true,"kani.gifu.jp":true,"kasahara.gifu.jp":true,"kasamatsu.gifu.jp":true,"kawaue.gifu.jp":true,"kitagata.gifu.jp":true,"mino.gifu.jp":true,"minokamo.gifu.jp":true,"mitake.gifu.jp":true,"mizunami.gifu.jp":true,"motosu.gifu.jp":true,"nakatsugawa.gifu.jp":true,"ogaki.gifu.jp":true,"sakahogi.gifu.jp":true,"seki.gifu.jp":true,"sekigahara.gifu.jp":true,"shirakawa.gifu.jp":true,"tajimi.gifu.jp":true,"takayama.gifu.jp":true,"tarui.gifu.jp":true,"toki.gifu.jp":true,"tomika.gifu.jp":true,"wanouchi.gifu.jp":true,"yamagata.gifu.jp":true,"yaotsu.gifu.jp":true,"yoro.gifu.jp":true,"annaka.gunma.jp":true,"chiyoda.gunma.jp":true,"fujioka.gunma.jp":true,"higashiagatsuma.gunma.jp":true,"isesaki.gunma.jp":true,"itakura.gunma.jp":true,"kanna.gunma.jp":true,"kanra.gunma.jp":true,"katashina.gunma.jp":true,"kawaba.gunma.jp":true,"kiryu.gunma.jp":true,"kusatsu.gunma.jp":true,"maebashi.gunma.jp":true,"meiwa.gunma.jp":true,"midori.gunma.jp":true,"minakami.gunma.jp":true,"naganohara.gunma.jp":true,"nakanojo.gunma.jp":true,"nanmoku.gunma.jp":true,"numata.gunma.jp":true,"oizumi.gunma.jp":true,"ora.gunma.jp":true,"ota.gunma.jp":true,"shibukawa.gunma.jp":true,"shimonita.gunma.jp":true,"shinto.gunma.jp":true,"showa.gunma.jp":true,"takasaki.gunma.jp":true,"takayama.gunma.jp":true,"tamamura.gunma.jp":true,"tatebayashi.gunma.jp":true,"tomioka.gunma.jp":true,"tsukiyono.gunma.jp":true,"tsumagoi.gunma.jp":true,"ueno.gunma.jp":true,"yoshioka.gunma.jp":true,"asaminami.hiroshima.jp":true,"daiwa.hiroshima.jp":true,"etajima.hiroshima.jp":true,"fuchu.hiroshima.jp":true,"fukuyama.hiroshima.jp":true,"hatsukaichi.hiroshima.jp":true,"higashihiroshima.hiroshima.jp":true,"hongo.hiroshima.jp":true,"jinsekikogen.hiroshima.jp":true,"kaita.hiroshima.jp":true,"kui.hiroshima.jp":true,"kumano.hiroshima.jp":true,"kure.hiroshima.jp":true,"mihara.hiroshima.jp":true,"miyoshi.hiroshima.jp":true,"naka.hiroshima.jp":true,"onomichi.hiroshima.jp":true,"osakikamijima.hiroshima.jp":true,"otake.hiroshima.jp":true,"saka.hiroshima.jp":true,"sera.hiroshima.jp":true,"seranishi.hiroshima.jp":true,"shinichi.hiroshima.jp":true,"shobara.hiroshima.jp":true,"takehara.hiroshima.jp":true,"abashiri.hokkaido.jp":true,"abira.hokkaido.jp":true,"aibetsu.hokkaido.jp":true,"akabira.hokkaido.jp":true,"akkeshi.hokkaido.jp":true,"asahikawa.hokkaido.jp":true,"ashibetsu.hokkaido.jp":true,"ashoro.hokkaido.jp":true,"assabu.hokkaido.jp":true,"atsuma.hokkaido.jp":true,"bibai.hokkaido.jp":true,"biei.hokkaido.jp":true,"bifuka.hokkaido.jp":true,"bihoro.hokkaido.jp":true,"biratori.hokkaido.jp":true,"chippubetsu.hokkaido.jp":true,"chitose.hokkaido.jp":true,"date.hokkaido.jp":true,"ebetsu.hokkaido.jp":true,"embetsu.hokkaido.jp":true,"eniwa.hokkaido.jp":true,"erimo.hokkaido.jp":true,"esan.hokkaido.jp":true,"esashi.hokkaido.jp":true,"fukagawa.hokkaido.jp":true,"fukushima.hokkaido.jp":true,"furano.hokkaido.jp":true,"furubira.hokkaido.jp":true,"haboro.hokkaido.jp":true,"hakodate.hokkaido.jp":true,"hamatonbetsu.hokkaido.jp":true,"hidaka.hokkaido.jp":true,"higashikagura.hokkaido.jp":true,"higashikawa.hokkaido.jp":true,"hiroo.hokkaido.jp":true,"hokuryu.hokkaido.jp":true,"hokuto.hokkaido.jp":true,"honbetsu.hokkaido.jp":true,"horokanai.hokkaido.jp":true,"horonobe.hokkaido.jp":true,"ikeda.hokkaido.jp":true,"imakane.hokkaido.jp":true,"ishikari.hokkaido.jp":true,"iwamizawa.hokkaido.jp":true,"iwanai.hokkaido.jp":true,"kamifurano.hokkaido.jp":true,"kamikawa.hokkaido.jp":true,"kamishihoro.hokkaido.jp":true,"kamisunagawa.hokkaido.jp":true,"kamoenai.hokkaido.jp":true,"kayabe.hokkaido.jp":true,"kembuchi.hokkaido.jp":true,"kikonai.hokkaido.jp":true,"kimobetsu.hokkaido.jp":true,"kitahiroshima.hokkaido.jp":true,"kitami.hokkaido.jp":true,"kiyosato.hokkaido.jp":true,"koshimizu.hokkaido.jp":true,"kunneppu.hokkaido.jp":true,"kuriyama.hokkaido.jp":true,"kuromatsunai.hokkaido.jp":true,"kushiro.hokkaido.jp":true,"kutchan.hokkaido.jp":true,"kyowa.hokkaido.jp":true,"mashike.hokkaido.jp":true,"matsumae.hokkaido.jp":true,"mikasa.hokkaido.jp":true,"minamifurano.hokkaido.jp":true,"mombetsu.hokkaido.jp":true,"moseushi.hokkaido.jp":true,"mukawa.hokkaido.jp":true,"muroran.hokkaido.jp":true,"naie.hokkaido.jp":true,"nakagawa.hokkaido.jp":true,"nakasatsunai.hokkaido.jp":true,"nakatombetsu.hokkaido.jp":true,"nanae.hokkaido.jp":true,"nanporo.hokkaido.jp":true,"nayoro.hokkaido.jp":true,"nemuro.hokkaido.jp":true,"niikappu.hokkaido.jp":true,"niki.hokkaido.jp":true,"nishiokoppe.hokkaido.jp":true,"noboribetsu.hokkaido.jp":true,"numata.hokkaido.jp":true,"obihiro.hokkaido.jp":true,"obira.hokkaido.jp":true,"oketo.hokkaido.jp":true,"okoppe.hokkaido.jp":true,"otaru.hokkaido.jp":true,"otobe.hokkaido.jp":true,"otofuke.hokkaido.jp":true,"otoineppu.hokkaido.jp":true,"oumu.hokkaido.jp":true,"ozora.hokkaido.jp":true,"pippu.hokkaido.jp":true,"rankoshi.hokkaido.jp":true,"rebun.hokkaido.jp":true,"rikubetsu.hokkaido.jp":true,"rishiri.hokkaido.jp":true,"rishirifuji.hokkaido.jp":true,"saroma.hokkaido.jp":true,"sarufutsu.hokkaido.jp":true,"shakotan.hokkaido.jp":true,"shari.hokkaido.jp":true,"shibecha.hokkaido.jp":true,"shibetsu.hokkaido.jp":true,"shikabe.hokkaido.jp":true,"shikaoi.hokkaido.jp":true,"shimamaki.hokkaido.jp":true,"shimizu.hokkaido.jp":true,"shimokawa.hokkaido.jp":true,"shinshinotsu.hokkaido.jp":true,"shintoku.hokkaido.jp":true,"shiranuka.hokkaido.jp":true,"shiraoi.hokkaido.jp":true,"shiriuchi.hokkaido.jp":true,"sobetsu.hokkaido.jp":true,"sunagawa.hokkaido.jp":true,"taiki.hokkaido.jp":true,"takasu.hokkaido.jp":true,"takikawa.hokkaido.jp":true,"takinoue.hokkaido.jp":true,"teshikaga.hokkaido.jp":true,"tobetsu.hokkaido.jp":true,"tohma.hokkaido.jp":true,"tomakomai.hokkaido.jp":true,"tomari.hokkaido.jp":true,"toya.hokkaido.jp":true,"toyako.hokkaido.jp":true,"toyotomi.hokkaido.jp":true,"toyoura.hokkaido.jp":true,"tsubetsu.hokkaido.jp":true,"tsukigata.hokkaido.jp":true,"urakawa.hokkaido.jp":true,"urausu.hokkaido.jp":true,"uryu.hokkaido.jp":true,"utashinai.hokkaido.jp":true,"wakkanai.hokkaido.jp":true,"wassamu.hokkaido.jp":true,"yakumo.hokkaido.jp":true,"yoichi.hokkaido.jp":true,"aioi.hyogo.jp":true,"akashi.hyogo.jp":true,"ako.hyogo.jp":true,"amagasaki.hyogo.jp":true,"aogaki.hyogo.jp":true,"asago.hyogo.jp":true,"ashiya.hyogo.jp":true,"awaji.hyogo.jp":true,"fukusaki.hyogo.jp":true,"goshiki.hyogo.jp":true,"harima.hyogo.jp":true,"himeji.hyogo.jp":true,"ichikawa.hyogo.jp":true,"inagawa.hyogo.jp":true,"itami.hyogo.jp":true,"kakogawa.hyogo.jp":true,"kamigori.hyogo.jp":true,"kamikawa.hyogo.jp":true,"kasai.hyogo.jp":true,"kasuga.hyogo.jp":true,"kawanishi.hyogo.jp":true,"miki.hyogo.jp":true,"minamiawaji.hyogo.jp":true,"nishinomiya.hyogo.jp":true,"nishiwaki.hyogo.jp":true,"ono.hyogo.jp":true,"sanda.hyogo.jp":true,"sannan.hyogo.jp":true,"sasayama.hyogo.jp":true,"sayo.hyogo.jp":true,"shingu.hyogo.jp":true,"shinonsen.hyogo.jp":true,"shiso.hyogo.jp":true,"sumoto.hyogo.jp":true,"taishi.hyogo.jp":true,"taka.hyogo.jp":true,"takarazuka.hyogo.jp":true,"takasago.hyogo.jp":true,"takino.hyogo.jp":true,"tamba.hyogo.jp":true,"tatsuno.hyogo.jp":true,"toyooka.hyogo.jp":true,"yabu.hyogo.jp":true,"yashiro.hyogo.jp":true,"yoka.hyogo.jp":true,"yokawa.hyogo.jp":true,"ami.ibaraki.jp":true,"asahi.ibaraki.jp":true,"bando.ibaraki.jp":true,"chikusei.ibaraki.jp":true,"daigo.ibaraki.jp":true,"fujishiro.ibaraki.jp":true,"hitachi.ibaraki.jp":true,"hitachinaka.ibaraki.jp":true,"hitachiomiya.ibaraki.jp":true,"hitachiota.ibaraki.jp":true,"ibaraki.ibaraki.jp":true,"ina.ibaraki.jp":true,"inashiki.ibaraki.jp":true,"itako.ibaraki.jp":true,"iwama.ibaraki.jp":true,"joso.ibaraki.jp":true,"kamisu.ibaraki.jp":true,"kasama.ibaraki.jp":true,"kashima.ibaraki.jp":true,"kasumigaura.ibaraki.jp":true,"koga.ibaraki.jp":true,"miho.ibaraki.jp":true,"mito.ibaraki.jp":true,"moriya.ibaraki.jp":true,"naka.ibaraki.jp":true,"namegata.ibaraki.jp":true,"oarai.ibaraki.jp":true,"ogawa.ibaraki.jp":true,"omitama.ibaraki.jp":true,"ryugasaki.ibaraki.jp":true,"sakai.ibaraki.jp":true,"sakuragawa.ibaraki.jp":true,"shimodate.ibaraki.jp":true,"shimotsuma.ibaraki.jp":true,"shirosato.ibaraki.jp":true,"sowa.ibaraki.jp":true,"suifu.ibaraki.jp":true,"takahagi.ibaraki.jp":true,"tamatsukuri.ibaraki.jp":true,"tokai.ibaraki.jp":true,"tomobe.ibaraki.jp":true,"tone.ibaraki.jp":true,"toride.ibaraki.jp":true,"tsuchiura.ibaraki.jp":true,"tsukuba.ibaraki.jp":true,"uchihara.ibaraki.jp":true,"ushiku.ibaraki.jp":true,"yachiyo.ibaraki.jp":true,"yamagata.ibaraki.jp":true,"yawara.ibaraki.jp":true,"yuki.ibaraki.jp":true,"anamizu.ishikawa.jp":true,"hakui.ishikawa.jp":true,"hakusan.ishikawa.jp":true,"kaga.ishikawa.jp":true,"kahoku.ishikawa.jp":true,"kanazawa.ishikawa.jp":true,"kawakita.ishikawa.jp":true,"komatsu.ishikawa.jp":true,"nakanoto.ishikawa.jp":true,"nanao.ishikawa.jp":true,"nomi.ishikawa.jp":true,"nonoichi.ishikawa.jp":true,"noto.ishikawa.jp":true,"shika.ishikawa.jp":true,"suzu.ishikawa.jp":true,"tsubata.ishikawa.jp":true,"tsurugi.ishikawa.jp":true,"uchinada.ishikawa.jp":true,"wajima.ishikawa.jp":true,"fudai.iwate.jp":true,"fujisawa.iwate.jp":true,"hanamaki.iwate.jp":true,"hiraizumi.iwate.jp":true,"hirono.iwate.jp":true,"ichinohe.iwate.jp":true,"ichinoseki.iwate.jp":true,"iwaizumi.iwate.jp":true,"iwate.iwate.jp":true,"joboji.iwate.jp":true,"kamaishi.iwate.jp":true,"kanegasaki.iwate.jp":true,"karumai.iwate.jp":true,"kawai.iwate.jp":true,"kitakami.iwate.jp":true,"kuji.iwate.jp":true,"kunohe.iwate.jp":true,"kuzumaki.iwate.jp":true,"miyako.iwate.jp":true,"mizusawa.iwate.jp":true,"morioka.iwate.jp":true,"ninohe.iwate.jp":true,"noda.iwate.jp":true,"ofunato.iwate.jp":true,"oshu.iwate.jp":true,"otsuchi.iwate.jp":true,"rikuzentakata.iwate.jp":true,"shiwa.iwate.jp":true,"shizukuishi.iwate.jp":true,"sumita.iwate.jp":true,"tanohata.iwate.jp":true,"tono.iwate.jp":true,"yahaba.iwate.jp":true,"yamada.iwate.jp":true,"ayagawa.kagawa.jp":true,"higashikagawa.kagawa.jp":true,"kanonji.kagawa.jp":true,"kotohira.kagawa.jp":true,"manno.kagawa.jp":true,"marugame.kagawa.jp":true,"mitoyo.kagawa.jp":true,"naoshima.kagawa.jp":true,"sanuki.kagawa.jp":true,"tadotsu.kagawa.jp":true,"takamatsu.kagawa.jp":true,"tonosho.kagawa.jp":true,"uchinomi.kagawa.jp":true,"utazu.kagawa.jp":true,"zentsuji.kagawa.jp":true,"akune.kagoshima.jp":true,"amami.kagoshima.jp":true,"hioki.kagoshima.jp":true,"isa.kagoshima.jp":true,"isen.kagoshima.jp":true,"izumi.kagoshima.jp":true,"kagoshima.kagoshima.jp":true,"kanoya.kagoshima.jp":true,"kawanabe.kagoshima.jp":true,"kinko.kagoshima.jp":true,"kouyama.kagoshima.jp":true,"makurazaki.kagoshima.jp":true,"matsumoto.kagoshima.jp":true,"minamitane.kagoshima.jp":true,"nakatane.kagoshima.jp":true,"nishinoomote.kagoshima.jp":true,"satsumasendai.kagoshima.jp":true,"soo.kagoshima.jp":true,"tarumizu.kagoshima.jp":true,"yusui.kagoshima.jp":true,"aikawa.kanagawa.jp":true,"atsugi.kanagawa.jp":true,"ayase.kanagawa.jp":true,"chigasaki.kanagawa.jp":true,"ebina.kanagawa.jp":true,"fujisawa.kanagawa.jp":true,"hadano.kanagawa.jp":true,"hakone.kanagawa.jp":true,"hiratsuka.kanagawa.jp":true,"isehara.kanagawa.jp":true,"kaisei.kanagawa.jp":true,"kamakura.kanagawa.jp":true,"kiyokawa.kanagawa.jp":true,"matsuda.kanagawa.jp":true,"minamiashigara.kanagawa.jp":true,"miura.kanagawa.jp":true,"nakai.kanagawa.jp":true,"ninomiya.kanagawa.jp":true,"odawara.kanagawa.jp":true,"oi.kanagawa.jp":true,"oiso.kanagawa.jp":true,"sagamihara.kanagawa.jp":true,"samukawa.kanagawa.jp":true,"tsukui.kanagawa.jp":true,"yamakita.kanagawa.jp":true,"yamato.kanagawa.jp":true,"yokosuka.kanagawa.jp":true,"yugawara.kanagawa.jp":true,"zama.kanagawa.jp":true,"zushi.kanagawa.jp":true,"aki.kochi.jp":true,"geisei.kochi.jp":true,"hidaka.kochi.jp":true,"higashitsuno.kochi.jp":true,"ino.kochi.jp":true,"kagami.kochi.jp":true,"kami.kochi.jp":true,"kitagawa.kochi.jp":true,"kochi.kochi.jp":true,"mihara.kochi.jp":true,"motoyama.kochi.jp":true,"muroto.kochi.jp":true,"nahari.kochi.jp":true,"nakamura.kochi.jp":true,"nankoku.kochi.jp":true,"nishitosa.kochi.jp":true,"niyodogawa.kochi.jp":true,"ochi.kochi.jp":true,"okawa.kochi.jp":true,"otoyo.kochi.jp":true,"otsuki.kochi.jp":true,"sakawa.kochi.jp":true,"sukumo.kochi.jp":true,"susaki.kochi.jp":true,"tosa.kochi.jp":true,"tosashimizu.kochi.jp":true,"toyo.kochi.jp":true,"tsuno.kochi.jp":true,"umaji.kochi.jp":true,"yasuda.kochi.jp":true,"yusuhara.kochi.jp":true,"amakusa.kumamoto.jp":true,"arao.kumamoto.jp":true,"aso.kumamoto.jp":true,"choyo.kumamoto.jp":true,"gyokuto.kumamoto.jp":true,"hitoyoshi.kumamoto.jp":true,"kamiamakusa.kumamoto.jp":true,"kashima.kumamoto.jp":true,"kikuchi.kumamoto.jp":true,"kosa.kumamoto.jp":true,"kumamoto.kumamoto.jp":true,"mashiki.kumamoto.jp":true,"mifune.kumamoto.jp":true,"minamata.kumamoto.jp":true,"minamioguni.kumamoto.jp":true,"nagasu.kumamoto.jp":true,"nishihara.kumamoto.jp":true,"oguni.kumamoto.jp":true,"ozu.kumamoto.jp":true,"sumoto.kumamoto.jp":true,"takamori.kumamoto.jp":true,"uki.kumamoto.jp":true,"uto.kumamoto.jp":true,"yamaga.kumamoto.jp":true,"yamato.kumamoto.jp":true,"yatsushiro.kumamoto.jp":true,"ayabe.kyoto.jp":true,"fukuchiyama.kyoto.jp":true,"higashiyama.kyoto.jp":true,"ide.kyoto.jp":true,"ine.kyoto.jp":true,"joyo.kyoto.jp":true,"kameoka.kyoto.jp":true,"kamo.kyoto.jp":true,"kita.kyoto.jp":true,"kizu.kyoto.jp":true,"kumiyama.kyoto.jp":true,"kyotamba.kyoto.jp":true,"kyotanabe.kyoto.jp":true,"kyotango.kyoto.jp":true,"maizuru.kyoto.jp":true,"minami.kyoto.jp":true,"minamiyamashiro.kyoto.jp":true,"miyazu.kyoto.jp":true,"muko.kyoto.jp":true,"nagaokakyo.kyoto.jp":true,"nakagyo.kyoto.jp":true,"nantan.kyoto.jp":true,"oyamazaki.kyoto.jp":true,"sakyo.kyoto.jp":true,"seika.kyoto.jp":true,"tanabe.kyoto.jp":true,"uji.kyoto.jp":true,"ujitawara.kyoto.jp":true,"wazuka.kyoto.jp":true,"yamashina.kyoto.jp":true,"yawata.kyoto.jp":true,"asahi.mie.jp":true,"inabe.mie.jp":true,"ise.mie.jp":true,"kameyama.mie.jp":true,"kawagoe.mie.jp":true,"kiho.mie.jp":true,"kisosaki.mie.jp":true,"kiwa.mie.jp":true,"komono.mie.jp":true,"kumano.mie.jp":true,"kuwana.mie.jp":true,"matsusaka.mie.jp":true,"meiwa.mie.jp":true,"mihama.mie.jp":true,"minamiise.mie.jp":true,"misugi.mie.jp":true,"miyama.mie.jp":true,"nabari.mie.jp":true,"shima.mie.jp":true,"suzuka.mie.jp":true,"tado.mie.jp":true,"taiki.mie.jp":true,"taki.mie.jp":true,"tamaki.mie.jp":true,"toba.mie.jp":true,"tsu.mie.jp":true,"udono.mie.jp":true,"ureshino.mie.jp":true,"watarai.mie.jp":true,"yokkaichi.mie.jp":true,"furukawa.miyagi.jp":true,"higashimatsushima.miyagi.jp":true,"ishinomaki.miyagi.jp":true,"iwanuma.miyagi.jp":true,"kakuda.miyagi.jp":true,"kami.miyagi.jp":true,"kawasaki.miyagi.jp":true,"kesennuma.miyagi.jp":true,"marumori.miyagi.jp":true,"matsushima.miyagi.jp":true,"minamisanriku.miyagi.jp":true,"misato.miyagi.jp":true,"murata.miyagi.jp":true,"natori.miyagi.jp":true,"ogawara.miyagi.jp":true,"ohira.miyagi.jp":true,"onagawa.miyagi.jp":true,"osaki.miyagi.jp":true,"rifu.miyagi.jp":true,"semine.miyagi.jp":true,"shibata.miyagi.jp":true,"shichikashuku.miyagi.jp":true,"shikama.miyagi.jp":true,"shiogama.miyagi.jp":true,"shiroishi.miyagi.jp":true,"tagajo.miyagi.jp":true,"taiwa.miyagi.jp":true,"tome.miyagi.jp":true,"tomiya.miyagi.jp":true,"wakuya.miyagi.jp":true,"watari.miyagi.jp":true,"yamamoto.miyagi.jp":true,"zao.miyagi.jp":true,"aya.miyazaki.jp":true,"ebino.miyazaki.jp":true,"gokase.miyazaki.jp":true,"hyuga.miyazaki.jp":true,"kadogawa.miyazaki.jp":true,"kawaminami.miyazaki.jp":true,"kijo.miyazaki.jp":true,"kitagawa.miyazaki.jp":true,"kitakata.miyazaki.jp":true,"kitaura.miyazaki.jp":true,"kobayashi.miyazaki.jp":true,"kunitomi.miyazaki.jp":true,"kushima.miyazaki.jp":true,"mimata.miyazaki.jp":true,"miyakonojo.miyazaki.jp":true,"miyazaki.miyazaki.jp":true,"morotsuka.miyazaki.jp":true,"nichinan.miyazaki.jp":true,"nishimera.miyazaki.jp":true,"nobeoka.miyazaki.jp":true,"saito.miyazaki.jp":true,"shiiba.miyazaki.jp":true,"shintomi.miyazaki.jp":true,"takaharu.miyazaki.jp":true,"takanabe.miyazaki.jp":true,"takazaki.miyazaki.jp":true,"tsuno.miyazaki.jp":true,"achi.nagano.jp":true,"agematsu.nagano.jp":true,"anan.nagano.jp":true,"aoki.nagano.jp":true,"asahi.nagano.jp":true,"azumino.nagano.jp":true,"chikuhoku.nagano.jp":true,"chikuma.nagano.jp":true,"chino.nagano.jp":true,"fujimi.nagano.jp":true,"hakuba.nagano.jp":true,"hara.nagano.jp":true,"hiraya.nagano.jp":true,"iida.nagano.jp":true,"iijima.nagano.jp":true,"iiyama.nagano.jp":true,"iizuna.nagano.jp":true,"ikeda.nagano.jp":true,"ikusaka.nagano.jp":true,"ina.nagano.jp":true,"karuizawa.nagano.jp":true,"kawakami.nagano.jp":true,"kiso.nagano.jp":true,"kisofukushima.nagano.jp":true,"kitaaiki.nagano.jp":true,"komagane.nagano.jp":true,"komoro.nagano.jp":true,"matsukawa.nagano.jp":true,"matsumoto.nagano.jp":true,"miasa.nagano.jp":true,"minamiaiki.nagano.jp":true,"minamimaki.nagano.jp":true,"minamiminowa.nagano.jp":true,"minowa.nagano.jp":true,"miyada.nagano.jp":true,"miyota.nagano.jp":true,"mochizuki.nagano.jp":true,"nagano.nagano.jp":true,"nagawa.nagano.jp":true,"nagiso.nagano.jp":true,"nakagawa.nagano.jp":true,"nakano.nagano.jp":true,"nozawaonsen.nagano.jp":true,"obuse.nagano.jp":true,"ogawa.nagano.jp":true,"okaya.nagano.jp":true,"omachi.nagano.jp":true,"omi.nagano.jp":true,"ookuwa.nagano.jp":true,"ooshika.nagano.jp":true,"otaki.nagano.jp":true,"otari.nagano.jp":true,"sakae.nagano.jp":true,"sakaki.nagano.jp":true,"saku.nagano.jp":true,"sakuho.nagano.jp":true,"shimosuwa.nagano.jp":true,"shinanomachi.nagano.jp":true,"shiojiri.nagano.jp":true,"suwa.nagano.jp":true,"suzaka.nagano.jp":true,"takagi.nagano.jp":true,"takamori.nagano.jp":true,"takayama.nagano.jp":true,"tateshina.nagano.jp":true,"tatsuno.nagano.jp":true,"togakushi.nagano.jp":true,"togura.nagano.jp":true,"tomi.nagano.jp":true,"ueda.nagano.jp":true,"wada.nagano.jp":true,"yamagata.nagano.jp":true,"yamanouchi.nagano.jp":true,"yasaka.nagano.jp":true,"yasuoka.nagano.jp":true,"chijiwa.nagasaki.jp":true,"futsu.nagasaki.jp":true,"goto.nagasaki.jp":true,"hasami.nagasaki.jp":true,"hirado.nagasaki.jp":true,"iki.nagasaki.jp":true,"isahaya.nagasaki.jp":true,"kawatana.nagasaki.jp":true,"kuchinotsu.nagasaki.jp":true,"matsuura.nagasaki.jp":true,"nagasaki.nagasaki.jp":true,"obama.nagasaki.jp":true,"omura.nagasaki.jp":true,"oseto.nagasaki.jp":true,"saikai.nagasaki.jp":true,"sasebo.nagasaki.jp":true,"seihi.nagasaki.jp":true,"shimabara.nagasaki.jp":true,"shinkamigoto.nagasaki.jp":true,"togitsu.nagasaki.jp":true,"tsushima.nagasaki.jp":true,"unzen.nagasaki.jp":true,"ando.nara.jp":true,"gose.nara.jp":true,"heguri.nara.jp":true,"higashiyoshino.nara.jp":true,"ikaruga.nara.jp":true,"ikoma.nara.jp":true,"kamikitayama.nara.jp":true,"kanmaki.nara.jp":true,"kashiba.nara.jp":true,"kashihara.nara.jp":true,"katsuragi.nara.jp":true,"kawai.nara.jp":true,"kawakami.nara.jp":true,"kawanishi.nara.jp":true,"koryo.nara.jp":true,"kurotaki.nara.jp":true,"mitsue.nara.jp":true,"miyake.nara.jp":true,"nara.nara.jp":true,"nosegawa.nara.jp":true,"oji.nara.jp":true,"ouda.nara.jp":true,"oyodo.nara.jp":true,"sakurai.nara.jp":true,"sango.nara.jp":true,"shimoichi.nara.jp":true,"shimokitayama.nara.jp":true,"shinjo.nara.jp":true,"soni.nara.jp":true,"takatori.nara.jp":true,"tawaramoto.nara.jp":true,"tenkawa.nara.jp":true,"tenri.nara.jp":true,"uda.nara.jp":true,"yamatokoriyama.nara.jp":true,"yamatotakada.nara.jp":true,"yamazoe.nara.jp":true,"yoshino.nara.jp":true,"aga.niigata.jp":true,"agano.niigata.jp":true,"gosen.niigata.jp":true,"itoigawa.niigata.jp":true,"izumozaki.niigata.jp":true,"joetsu.niigata.jp":true,"kamo.niigata.jp":true,"kariwa.niigata.jp":true,"kashiwazaki.niigata.jp":true,"minamiuonuma.niigata.jp":true,"mitsuke.niigata.jp":true,"muika.niigata.jp":true,"murakami.niigata.jp":true,"myoko.niigata.jp":true,"nagaoka.niigata.jp":true,"niigata.niigata.jp":true,"ojiya.niigata.jp":true,"omi.niigata.jp":true,"sado.niigata.jp":true,"sanjo.niigata.jp":true,"seiro.niigata.jp":true,"seirou.niigata.jp":true,"sekikawa.niigata.jp":true,"shibata.niigata.jp":true,"tagami.niigata.jp":true,"tainai.niigata.jp":true,"tochio.niigata.jp":true,"tokamachi.niigata.jp":true,"tsubame.niigata.jp":true,"tsunan.niigata.jp":true,"uonuma.niigata.jp":true,"yahiko.niigata.jp":true,"yoita.niigata.jp":true,"yuzawa.niigata.jp":true,"beppu.oita.jp":true,"bungoono.oita.jp":true,"bungotakada.oita.jp":true,"hasama.oita.jp":true,"hiji.oita.jp":true,"himeshima.oita.jp":true,"hita.oita.jp":true,"kamitsue.oita.jp":true,"kokonoe.oita.jp":true,"kuju.oita.jp":true,"kunisaki.oita.jp":true,"kusu.oita.jp":true,"oita.oita.jp":true,"saiki.oita.jp":true,"taketa.oita.jp":true,"tsukumi.oita.jp":true,"usa.oita.jp":true,"usuki.oita.jp":true,"yufu.oita.jp":true,"akaiwa.okayama.jp":true,"asakuchi.okayama.jp":true,"bizen.okayama.jp":true,"hayashima.okayama.jp":true,"ibara.okayama.jp":true,"kagamino.okayama.jp":true,"kasaoka.okayama.jp":true,"kibichuo.okayama.jp":true,"kumenan.okayama.jp":true,"kurashiki.okayama.jp":true,"maniwa.okayama.jp":true,"misaki.okayama.jp":true,"nagi.okayama.jp":true,"niimi.okayama.jp":true,"nishiawakura.okayama.jp":true,"okayama.okayama.jp":true,"satosho.okayama.jp":true,"setouchi.okayama.jp":true,"shinjo.okayama.jp":true,"shoo.okayama.jp":true,"soja.okayama.jp":true,"takahashi.okayama.jp":true,"tamano.okayama.jp":true,"tsuyama.okayama.jp":true,"wake.okayama.jp":true,"yakage.okayama.jp":true,"aguni.okinawa.jp":true,"ginowan.okinawa.jp":true,"ginoza.okinawa.jp":true,"gushikami.okinawa.jp":true,"haebaru.okinawa.jp":true,"higashi.okinawa.jp":true,"hirara.okinawa.jp":true,"iheya.okinawa.jp":true,"ishigaki.okinawa.jp":true,"ishikawa.okinawa.jp":true,"itoman.okinawa.jp":true,"izena.okinawa.jp":true,"kadena.okinawa.jp":true,"kin.okinawa.jp":true,"kitadaito.okinawa.jp":true,"kitanakagusuku.okinawa.jp":true,"kumejima.okinawa.jp":true,"kunigami.okinawa.jp":true,"minamidaito.okinawa.jp":true,"motobu.okinawa.jp":true,"nago.okinawa.jp":true,"naha.okinawa.jp":true,"nakagusuku.okinawa.jp":true,"nakijin.okinawa.jp":true,"nanjo.okinawa.jp":true,"nishihara.okinawa.jp":true,"ogimi.okinawa.jp":true,"okinawa.okinawa.jp":true,"onna.okinawa.jp":true,"shimoji.okinawa.jp":true,"taketomi.okinawa.jp":true,"tarama.okinawa.jp":true,"tokashiki.okinawa.jp":true,"tomigusuku.okinawa.jp":true,"tonaki.okinawa.jp":true,"urasoe.okinawa.jp":true,"uruma.okinawa.jp":true,"yaese.okinawa.jp":true,"yomitan.okinawa.jp":true,"yonabaru.okinawa.jp":true,"yonaguni.okinawa.jp":true,"zamami.okinawa.jp":true,"abeno.osaka.jp":true,"chihayaakasaka.osaka.jp":true,"chuo.osaka.jp":true,"daito.osaka.jp":true,"fujiidera.osaka.jp":true,"habikino.osaka.jp":true,"hannan.osaka.jp":true,"higashiosaka.osaka.jp":true,"higashisumiyoshi.osaka.jp":true,"higashiyodogawa.osaka.jp":true,"hirakata.osaka.jp":true,"ibaraki.osaka.jp":true,"ikeda.osaka.jp":true,"izumi.osaka.jp":true,"izumiotsu.osaka.jp":true,"izumisano.osaka.jp":true,"kadoma.osaka.jp":true,"kaizuka.osaka.jp":true,"kanan.osaka.jp":true,"kashiwara.osaka.jp":true,"katano.osaka.jp":true,"kawachinagano.osaka.jp":true,"kishiwada.osaka.jp":true,"kita.osaka.jp":true,"kumatori.osaka.jp":true,"matsubara.osaka.jp":true,"minato.osaka.jp":true,"minoh.osaka.jp":true,"misaki.osaka.jp":true,"moriguchi.osaka.jp":true,"neyagawa.osaka.jp":true,"nishi.osaka.jp":true,"nose.osaka.jp":true,"osakasayama.osaka.jp":true,"sakai.osaka.jp":true,"sayama.osaka.jp":true,"sennan.osaka.jp":true,"settsu.osaka.jp":true,"shijonawate.osaka.jp":true,"shimamoto.osaka.jp":true,"suita.osaka.jp":true,"tadaoka.osaka.jp":true,"taishi.osaka.jp":true,"tajiri.osaka.jp":true,"takaishi.osaka.jp":true,"takatsuki.osaka.jp":true,"tondabayashi.osaka.jp":true,"toyonaka.osaka.jp":true,"toyono.osaka.jp":true,"yao.osaka.jp":true,"ariake.saga.jp":true,"arita.saga.jp":true,"fukudomi.saga.jp":true,"genkai.saga.jp":true,"hamatama.saga.jp":true,"hizen.saga.jp":true,"imari.saga.jp":true,"kamimine.saga.jp":true,"kanzaki.saga.jp":true,"karatsu.saga.jp":true,"kashima.saga.jp":true,"kitagata.saga.jp":true,"kitahata.saga.jp":true,"kiyama.saga.jp":true,"kouhoku.saga.jp":true,"kyuragi.saga.jp":true,"nishiarita.saga.jp":true,"ogi.saga.jp":true,"omachi.saga.jp":true,"ouchi.saga.jp":true,"saga.saga.jp":true,"shiroishi.saga.jp":true,"taku.saga.jp":true,"tara.saga.jp":true,"tosu.saga.jp":true,"yoshinogari.saga.jp":true,"arakawa.saitama.jp":true,"asaka.saitama.jp":true,"chichibu.saitama.jp":true,"fujimi.saitama.jp":true,"fujimino.saitama.jp":true,"fukaya.saitama.jp":true,"hanno.saitama.jp":true,"hanyu.saitama.jp":true,"hasuda.saitama.jp":true,"hatogaya.saitama.jp":true,"hatoyama.saitama.jp":true,"hidaka.saitama.jp":true,"higashichichibu.saitama.jp":true,"higashimatsuyama.saitama.jp":true,"honjo.saitama.jp":true,"ina.saitama.jp":true,"iruma.saitama.jp":true,"iwatsuki.saitama.jp":true,"kamiizumi.saitama.jp":true,"kamikawa.saitama.jp":true,"kamisato.saitama.jp":true,"kasukabe.saitama.jp":true,"kawagoe.saitama.jp":true,"kawaguchi.saitama.jp":true,"kawajima.saitama.jp":true,"kazo.saitama.jp":true,"kitamoto.saitama.jp":true,"koshigaya.saitama.jp":true,"kounosu.saitama.jp":true,"kuki.saitama.jp":true,"kumagaya.saitama.jp":true,"matsubushi.saitama.jp":true,"minano.saitama.jp":true,"misato.saitama.jp":true,"miyashiro.saitama.jp":true,"miyoshi.saitama.jp":true,"moroyama.saitama.jp":true,"nagatoro.saitama.jp":true,"namegawa.saitama.jp":true,"niiza.saitama.jp":true,"ogano.saitama.jp":true,"ogawa.saitama.jp":true,"ogose.saitama.jp":true,"okegawa.saitama.jp":true,"omiya.saitama.jp":true,"otaki.saitama.jp":true,"ranzan.saitama.jp":true,"ryokami.saitama.jp":true,"saitama.saitama.jp":true,"sakado.saitama.jp":true,"satte.saitama.jp":true,"sayama.saitama.jp":true,"shiki.saitama.jp":true,"shiraoka.saitama.jp":true,"soka.saitama.jp":true,"sugito.saitama.jp":true,"toda.saitama.jp":true,"tokigawa.saitama.jp":true,"tokorozawa.saitama.jp":true,"tsurugashima.saitama.jp":true,"urawa.saitama.jp":true,"warabi.saitama.jp":true,"yashio.saitama.jp":true,"yokoze.saitama.jp":true,"yono.saitama.jp":true,"yorii.saitama.jp":true,"yoshida.saitama.jp":true,"yoshikawa.saitama.jp":true,"yoshimi.saitama.jp":true,"aisho.shiga.jp":true,"gamo.shiga.jp":true,"higashiomi.shiga.jp":true,"hikone.shiga.jp":true,"koka.shiga.jp":true,"konan.shiga.jp":true,"kosei.shiga.jp":true,"koto.shiga.jp":true,"kusatsu.shiga.jp":true,"maibara.shiga.jp":true,"moriyama.shiga.jp":true,"nagahama.shiga.jp":true,"nishiazai.shiga.jp":true,"notogawa.shiga.jp":true,"omihachiman.shiga.jp":true,"otsu.shiga.jp":true,"ritto.shiga.jp":true,"ryuoh.shiga.jp":true,"takashima.shiga.jp":true,"takatsuki.shiga.jp":true,"torahime.shiga.jp":true,"toyosato.shiga.jp":true,"yasu.shiga.jp":true,"akagi.shimane.jp":true,"ama.shimane.jp":true,"gotsu.shimane.jp":true,"hamada.shimane.jp":true,"higashiizumo.shimane.jp":true,"hikawa.shimane.jp":true,"hikimi.shimane.jp":true,"izumo.shimane.jp":true,"kakinoki.shimane.jp":true,"masuda.shimane.jp":true,"matsue.shimane.jp":true,"misato.shimane.jp":true,"nishinoshima.shimane.jp":true,"ohda.shimane.jp":true,"okinoshima.shimane.jp":true,"okuizumo.shimane.jp":true,"shimane.shimane.jp":true,"tamayu.shimane.jp":true,"tsuwano.shimane.jp":true,"unnan.shimane.jp":true,"yakumo.shimane.jp":true,"yasugi.shimane.jp":true,"yatsuka.shimane.jp":true,"arai.shizuoka.jp":true,"atami.shizuoka.jp":true,"fuji.shizuoka.jp":true,"fujieda.shizuoka.jp":true,"fujikawa.shizuoka.jp":true,"fujinomiya.shizuoka.jp":true,"fukuroi.shizuoka.jp":true,"gotemba.shizuoka.jp":true,"haibara.shizuoka.jp":true,"hamamatsu.shizuoka.jp":true,"higashiizu.shizuoka.jp":true,"ito.shizuoka.jp":true,"iwata.shizuoka.jp":true,"izu.shizuoka.jp":true,"izunokuni.shizuoka.jp":true,"kakegawa.shizuoka.jp":true,"kannami.shizuoka.jp":true,"kawanehon.shizuoka.jp":true,"kawazu.shizuoka.jp":true,"kikugawa.shizuoka.jp":true,"kosai.shizuoka.jp":true,"makinohara.shizuoka.jp":true,"matsuzaki.shizuoka.jp":true,"minamiizu.shizuoka.jp":true,"mishima.shizuoka.jp":true,"morimachi.shizuoka.jp":true,"nishiizu.shizuoka.jp":true,"numazu.shizuoka.jp":true,"omaezaki.shizuoka.jp":true,"shimada.shizuoka.jp":true,"shimizu.shizuoka.jp":true,"shimoda.shizuoka.jp":true,"shizuoka.shizuoka.jp":true,"susono.shizuoka.jp":true,"yaizu.shizuoka.jp":true,"yoshida.shizuoka.jp":true,"ashikaga.tochigi.jp":true,"bato.tochigi.jp":true,"haga.tochigi.jp":true,"ichikai.tochigi.jp":true,"iwafune.tochigi.jp":true,"kaminokawa.tochigi.jp":true,"kanuma.tochigi.jp":true,"karasuyama.tochigi.jp":true,"kuroiso.tochigi.jp":true,"mashiko.tochigi.jp":true,"mibu.tochigi.jp":true,"moka.tochigi.jp":true,"motegi.tochigi.jp":true,"nasu.tochigi.jp":true,"nasushiobara.tochigi.jp":true,"nikko.tochigi.jp":true,"nishikata.tochigi.jp":true,"nogi.tochigi.jp":true,"ohira.tochigi.jp":true,"ohtawara.tochigi.jp":true,"oyama.tochigi.jp":true,"sakura.tochigi.jp":true,"sano.tochigi.jp":true,"shimotsuke.tochigi.jp":true,"shioya.tochigi.jp":true,"takanezawa.tochigi.jp":true,"tochigi.tochigi.jp":true,"tsuga.tochigi.jp":true,"ujiie.tochigi.jp":true,"utsunomiya.tochigi.jp":true,"yaita.tochigi.jp":true,"aizumi.tokushima.jp":true,"anan.tokushima.jp":true,"ichiba.tokushima.jp":true,"itano.tokushima.jp":true,"kainan.tokushima.jp":true,"komatsushima.tokushima.jp":true,"matsushige.tokushima.jp":true,"mima.tokushima.jp":true,"minami.tokushima.jp":true,"miyoshi.tokushima.jp":true,"mugi.tokushima.jp":true,"nakagawa.tokushima.jp":true,"naruto.tokushima.jp":true,"sanagochi.tokushima.jp":true,"shishikui.tokushima.jp":true,"tokushima.tokushima.jp":true,"wajiki.tokushima.jp":true,"adachi.tokyo.jp":true,"akiruno.tokyo.jp":true,"akishima.tokyo.jp":true,"aogashima.tokyo.jp":true,"arakawa.tokyo.jp":true,"bunkyo.tokyo.jp":true,"chiyoda.tokyo.jp":true,"chofu.tokyo.jp":true,"chuo.tokyo.jp":true,"edogawa.tokyo.jp":true,"fuchu.tokyo.jp":true,"fussa.tokyo.jp":true,"hachijo.tokyo.jp":true,"hachioji.tokyo.jp":true,"hamura.tokyo.jp":true,"higashikurume.tokyo.jp":true,"higashimurayama.tokyo.jp":true,"higashiyamato.tokyo.jp":true,"hino.tokyo.jp":true,"hinode.tokyo.jp":true,"hinohara.tokyo.jp":true,"inagi.tokyo.jp":true,"itabashi.tokyo.jp":true,"katsushika.tokyo.jp":true,"kita.tokyo.jp":true,"kiyose.tokyo.jp":true,"kodaira.tokyo.jp":true,"koganei.tokyo.jp":true,"kokubunji.tokyo.jp":true,"komae.tokyo.jp":true,"koto.tokyo.jp":true,"kouzushima.tokyo.jp":true,"kunitachi.tokyo.jp":true,"machida.tokyo.jp":true,"meguro.tokyo.jp":true,"minato.tokyo.jp":true,"mitaka.tokyo.jp":true,"mizuho.tokyo.jp":true,"musashimurayama.tokyo.jp":true,"musashino.tokyo.jp":true,"nakano.tokyo.jp":true,"nerima.tokyo.jp":true,"ogasawara.tokyo.jp":true,"okutama.tokyo.jp":true,"ome.tokyo.jp":true,"oshima.tokyo.jp":true,"ota.tokyo.jp":true,"setagaya.tokyo.jp":true,"shibuya.tokyo.jp":true,"shinagawa.tokyo.jp":true,"shinjuku.tokyo.jp":true,"suginami.tokyo.jp":true,"sumida.tokyo.jp":true,"tachikawa.tokyo.jp":true,"taito.tokyo.jp":true,"tama.tokyo.jp":true,"toshima.tokyo.jp":true,"chizu.tottori.jp":true,"hino.tottori.jp":true,"kawahara.tottori.jp":true,"koge.tottori.jp":true,"kotoura.tottori.jp":true,"misasa.tottori.jp":true,"nanbu.tottori.jp":true,"nichinan.tottori.jp":true,"sakaiminato.tottori.jp":true,"tottori.tottori.jp":true,"wakasa.tottori.jp":true,"yazu.tottori.jp":true,"yonago.tottori.jp":true,"asahi.toyama.jp":true,"fuchu.toyama.jp":true,"fukumitsu.toyama.jp":true,"funahashi.toyama.jp":true,"himi.toyama.jp":true,"imizu.toyama.jp":true,"inami.toyama.jp":true,"johana.toyama.jp":true,"kamiichi.toyama.jp":true,"kurobe.toyama.jp":true,"nakaniikawa.toyama.jp":true,"namerikawa.toyama.jp":true,"nanto.toyama.jp":true,"nyuzen.toyama.jp":true,"oyabe.toyama.jp":true,"taira.toyama.jp":true,"takaoka.toyama.jp":true,"tateyama.toyama.jp":true,"toga.toyama.jp":true,"tonami.toyama.jp":true,"toyama.toyama.jp":true,"unazuki.toyama.jp":true,"uozu.toyama.jp":true,"yamada.toyama.jp":true,"arida.wakayama.jp":true,"aridagawa.wakayama.jp":true,"gobo.wakayama.jp":true,"hashimoto.wakayama.jp":true,"hidaka.wakayama.jp":true,"hirogawa.wakayama.jp":true,"inami.wakayama.jp":true,"iwade.wakayama.jp":true,"kainan.wakayama.jp":true,"kamitonda.wakayama.jp":true,"katsuragi.wakayama.jp":true,"kimino.wakayama.jp":true,"kinokawa.wakayama.jp":true,"kitayama.wakayama.jp":true,"koya.wakayama.jp":true,"koza.wakayama.jp":true,"kozagawa.wakayama.jp":true,"kudoyama.wakayama.jp":true,"kushimoto.wakayama.jp":true,"mihama.wakayama.jp":true,"misato.wakayama.jp":true,"nachikatsuura.wakayama.jp":true,"shingu.wakayama.jp":true,"shirahama.wakayama.jp":true,"taiji.wakayama.jp":true,"tanabe.wakayama.jp":true,"wakayama.wakayama.jp":true,"yuasa.wakayama.jp":true,"yura.wakayama.jp":true,"asahi.yamagata.jp":true,"funagata.yamagata.jp":true,"higashine.yamagata.jp":true,"iide.yamagata.jp":true,"kahoku.yamagata.jp":true,"kaminoyama.yamagata.jp":true,"kaneyama.yamagata.jp":true,"kawanishi.yamagata.jp":true,"mamurogawa.yamagata.jp":true,"mikawa.yamagata.jp":true,"murayama.yamagata.jp":true,"nagai.yamagata.jp":true,"nakayama.yamagata.jp":true,"nanyo.yamagata.jp":true,"nishikawa.yamagata.jp":true,"obanazawa.yamagata.jp":true,"oe.yamagata.jp":true,"oguni.yamagata.jp":true,"ohkura.yamagata.jp":true,"oishida.yamagata.jp":true,"sagae.yamagata.jp":true,"sakata.yamagata.jp":true,"sakegawa.yamagata.jp":true,"shinjo.yamagata.jp":true,"shirataka.yamagata.jp":true,"shonai.yamagata.jp":true,"takahata.yamagata.jp":true,"tendo.yamagata.jp":true,"tozawa.yamagata.jp":true,"tsuruoka.yamagata.jp":true,"yamagata.yamagata.jp":true,"yamanobe.yamagata.jp":true,"yonezawa.yamagata.jp":true,"yuza.yamagata.jp":true,"abu.yamaguchi.jp":true,"hagi.yamaguchi.jp":true,"hikari.yamaguchi.jp":true,"hofu.yamaguchi.jp":true,"iwakuni.yamaguchi.jp":true,"kudamatsu.yamaguchi.jp":true,"mitou.yamaguchi.jp":true,"nagato.yamaguchi.jp":true,"oshima.yamaguchi.jp":true,"shimonoseki.yamaguchi.jp":true,"shunan.yamaguchi.jp":true,"tabuse.yamaguchi.jp":true,"tokuyama.yamaguchi.jp":true,"toyota.yamaguchi.jp":true,"ube.yamaguchi.jp":true,"yuu.yamaguchi.jp":true,"chuo.yamanashi.jp":true,"doshi.yamanashi.jp":true,"fuefuki.yamanashi.jp":true,"fujikawa.yamanashi.jp":true,"fujikawaguchiko.yamanashi.jp":true,"fujiyoshida.yamanashi.jp":true,"hayakawa.yamanashi.jp":true,"hokuto.yamanashi.jp":true,"ichikawamisato.yamanashi.jp":true,"kai.yamanashi.jp":true,"kofu.yamanashi.jp":true,"koshu.yamanashi.jp":true,"kosuge.yamanashi.jp":true,"minami-alps.yamanashi.jp":true,"minobu.yamanashi.jp":true,"nakamichi.yamanashi.jp":true,"nanbu.yamanashi.jp":true,"narusawa.yamanashi.jp":true,"nirasaki.yamanashi.jp":true,"nishikatsura.yamanashi.jp":true,"oshino.yamanashi.jp":true,"otsuki.yamanashi.jp":true,"showa.yamanashi.jp":true,"tabayama.yamanashi.jp":true,"tsuru.yamanashi.jp":true,"uenohara.yamanashi.jp":true,"yamanakako.yamanashi.jp":true,"yamanashi.yamanashi.jp":true,"*.ke":true,"kg":true,"org.kg":true,"net.kg":true,"com.kg":true,"edu.kg":true,"gov.kg":true,"mil.kg":true,"*.kh":true,"ki":true,"edu.ki":true,"biz.ki":true,"net.ki":true,"org.ki":true,"gov.ki":true,"info.ki":true,"com.ki":true,"km":true,"org.km":true,"nom.km":true,"gov.km":true,"prd.km":true,"tm.km":true,"edu.km":true,"mil.km":true,"ass.km":true,"com.km":true,"coop.km":true,"asso.km":true,"presse.km":true,"medecin.km":true,"notaires.km":true,"pharmaciens.km":true,"veterinaire.km":true,"gouv.km":true,"kn":true,"net.kn":true,"org.kn":true,"edu.kn":true,"gov.kn":true,"kp":true,"com.kp":true,"edu.kp":true,"gov.kp":true,"org.kp":true,"rep.kp":true,"tra.kp":true,"kr":true,"ac.kr":true,"co.kr":true,"es.kr":true,"go.kr":true,"hs.kr":true,"kg.kr":true,"mil.kr":true,"ms.kr":true,"ne.kr":true,"or.kr":true,"pe.kr":true,"re.kr":true,"sc.kr":true,"busan.kr":true,"chungbuk.kr":true,"chungnam.kr":true,"daegu.kr":true,"daejeon.kr":true,"gangwon.kr":true,"gwangju.kr":true,"gyeongbuk.kr":true,"gyeonggi.kr":true,"gyeongnam.kr":true,"incheon.kr":true,"jeju.kr":true,"jeonbuk.kr":true,"jeonnam.kr":true,"seoul.kr":true,"ulsan.kr":true,"*.kw":true,"ky":true,"edu.ky":true,"gov.ky":true,"com.ky":true,"org.ky":true,"net.ky":true,"kz":true,"org.kz":true,"edu.kz":true,"net.kz":true,"gov.kz":true,"mil.kz":true,"com.kz":true,"la":true,"int.la":true,"net.la":true,"info.la":true,"edu.la":true,"gov.la":true,"per.la":true,"com.la":true,"org.la":true,"lb":true,"com.lb":true,"edu.lb":true,"gov.lb":true,"net.lb":true,"org.lb":true,"lc":true,"com.lc":true,"net.lc":true,"co.lc":true,"org.lc":true,"edu.lc":true,"gov.lc":true,"li":true,"lk":true,"gov.lk":true,"sch.lk":true,"net.lk":true,"int.lk":true,"com.lk":true,"org.lk":true,"edu.lk":true,"ngo.lk":true,"soc.lk":true,"web.lk":true,"ltd.lk":true,"assn.lk":true,"grp.lk":true,"hotel.lk":true,"ac.lk":true,"lr":true,"com.lr":true,"edu.lr":true,"gov.lr":true,"org.lr":true,"net.lr":true,"ls":true,"co.ls":true,"org.ls":true,"lt":true,"gov.lt":true,"lu":true,"lv":true,"com.lv":true,"edu.lv":true,"gov.lv":true,"org.lv":true,"mil.lv":true,"id.lv":true,"net.lv":true,"asn.lv":true,"conf.lv":true,"ly":true,"com.ly":true,"net.ly":true,"gov.ly":true,"plc.ly":true,"edu.ly":true,"sch.ly":true,"med.ly":true,"org.ly":true,"id.ly":true,"ma":true,"co.ma":true,"net.ma":true,"gov.ma":true,"org.ma":true,"ac.ma":true,"press.ma":true,"mc":true,"tm.mc":true,"asso.mc":true,"md":true,"me":true,"co.me":true,"net.me":true,"org.me":true,"edu.me":true,"ac.me":true,"gov.me":true,"its.me":true,"priv.me":true,"mg":true,"org.mg":true,"nom.mg":true,"gov.mg":true,"prd.mg":true,"tm.mg":true,"edu.mg":true,"mil.mg":true,"com.mg":true,"co.mg":true,"mh":true,"mil":true,"mk":true,"com.mk":true,"org.mk":true,"net.mk":true,"edu.mk":true,"gov.mk":true,"inf.mk":true,"name.mk":true,"ml":true,"com.ml":true,"edu.ml":true,"gouv.ml":true,"gov.ml":true,"net.ml":true,"org.ml":true,"presse.ml":true,"*.mm":true,"mn":true,"gov.mn":true,"edu.mn":true,"org.mn":true,"mo":true,"com.mo":true,"net.mo":true,"org.mo":true,"edu.mo":true,"gov.mo":true,"mobi":true,"mp":true,"mq":true,"mr":true,"gov.mr":true,"ms":true,"com.ms":true,"edu.ms":true,"gov.ms":true,"net.ms":true,"org.ms":true,"mt":true,"com.mt":true,"edu.mt":true,"net.mt":true,"org.mt":true,"mu":true,"com.mu":true,"net.mu":true,"org.mu":true,"gov.mu":true,"ac.mu":true,"co.mu":true,"or.mu":true,"museum":true,"academy.museum":true,"agriculture.museum":true,"air.museum":true,"airguard.museum":true,"alabama.museum":true,"alaska.museum":true,"amber.museum":true,"ambulance.museum":true,"american.museum":true,"americana.museum":true,"americanantiques.museum":true,"americanart.museum":true,"amsterdam.museum":true,"and.museum":true,"annefrank.museum":true,"anthro.museum":true,"anthropology.museum":true,"antiques.museum":true,"aquarium.museum":true,"arboretum.museum":true,"archaeological.museum":true,"archaeology.museum":true,"architecture.museum":true,"art.museum":true,"artanddesign.museum":true,"artcenter.museum":true,"artdeco.museum":true,"arteducation.museum":true,"artgallery.museum":true,"arts.museum":true,"artsandcrafts.museum":true,"asmatart.museum":true,"assassination.museum":true,"assisi.museum":true,"association.museum":true,"astronomy.museum":true,"atlanta.museum":true,"austin.museum":true,"australia.museum":true,"automotive.museum":true,"aviation.museum":true,"axis.museum":true,"badajoz.museum":true,"baghdad.museum":true,"bahn.museum":true,"bale.museum":true,"baltimore.museum":true,"barcelona.museum":true,"baseball.museum":true,"basel.museum":true,"baths.museum":true,"bauern.museum":true,"beauxarts.museum":true,"beeldengeluid.museum":true,"bellevue.museum":true,"bergbau.museum":true,"berkeley.museum":true,"berlin.museum":true,"bern.museum":true,"bible.museum":true,"bilbao.museum":true,"bill.museum":true,"birdart.museum":true,"birthplace.museum":true,"bonn.museum":true,"boston.museum":true,"botanical.museum":true,"botanicalgarden.museum":true,"botanicgarden.museum":true,"botany.museum":true,"brandywinevalley.museum":true,"brasil.museum":true,"bristol.museum":true,"british.museum":true,"britishcolumbia.museum":true,"broadcast.museum":true,"brunel.museum":true,"brussel.museum":true,"brussels.museum":true,"bruxelles.museum":true,"building.museum":true,"burghof.museum":true,"bus.museum":true,"bushey.museum":true,"cadaques.museum":true,"california.museum":true,"cambridge.museum":true,"can.museum":true,"canada.museum":true,"capebreton.museum":true,"carrier.museum":true,"cartoonart.museum":true,"casadelamoneda.museum":true,"castle.museum":true,"castres.museum":true,"celtic.museum":true,"center.museum":true,"chattanooga.museum":true,"cheltenham.museum":true,"chesapeakebay.museum":true,"chicago.museum":true,"children.museum":true,"childrens.museum":true,"childrensgarden.museum":true,"chiropractic.museum":true,"chocolate.museum":true,"christiansburg.museum":true,"cincinnati.museum":true,"cinema.museum":true,"circus.museum":true,"civilisation.museum":true,"civilization.museum":true,"civilwar.museum":true,"clinton.museum":true,"clock.museum":true,"coal.museum":true,"coastaldefence.museum":true,"cody.museum":true,"coldwar.museum":true,"collection.museum":true,"colonialwilliamsburg.museum":true,"coloradoplateau.museum":true,"columbia.museum":true,"columbus.museum":true,"communication.museum":true,"communications.museum":true,"community.museum":true,"computer.museum":true,"computerhistory.museum":true,"xn--comunicaes-v6a2o.museum":true,"contemporary.museum":true,"contemporaryart.museum":true,"convent.museum":true,"copenhagen.museum":true,"corporation.museum":true,"xn--correios-e-telecomunicaes-ghc29a.museum":true,"corvette.museum":true,"costume.museum":true,"countryestate.museum":true,"county.museum":true,"crafts.museum":true,"cranbrook.museum":true,"creation.museum":true,"cultural.museum":true,"culturalcenter.museum":true,"culture.museum":true,"cyber.museum":true,"cymru.museum":true,"dali.museum":true,"dallas.museum":true,"database.museum":true,"ddr.museum":true,"decorativearts.museum":true,"delaware.museum":true,"delmenhorst.museum":true,"denmark.museum":true,"depot.museum":true,"design.museum":true,"detroit.museum":true,"dinosaur.museum":true,"discovery.museum":true,"dolls.museum":true,"donostia.museum":true,"durham.museum":true,"eastafrica.museum":true,"eastcoast.museum":true,"education.museum":true,"educational.museum":true,"egyptian.museum":true,"eisenbahn.museum":true,"elburg.museum":true,"elvendrell.museum":true,"embroidery.museum":true,"encyclopedic.museum":true,"england.museum":true,"entomology.museum":true,"environment.museum":true,"environmentalconservation.museum":true,"epilepsy.museum":true,"essex.museum":true,"estate.museum":true,"ethnology.museum":true,"exeter.museum":true,"exhibition.museum":true,"family.museum":true,"farm.museum":true,"farmequipment.museum":true,"farmers.museum":true,"farmstead.museum":true,"field.museum":true,"figueres.museum":true,"filatelia.museum":true,"film.museum":true,"fineart.museum":true,"finearts.museum":true,"finland.museum":true,"flanders.museum":true,"florida.museum":true,"force.museum":true,"fortmissoula.museum":true,"fortworth.museum":true,"foundation.museum":true,"francaise.museum":true,"frankfurt.museum":true,"franziskaner.museum":true,"freemasonry.museum":true,"freiburg.museum":true,"fribourg.museum":true,"frog.museum":true,"fundacio.museum":true,"furniture.museum":true,"gallery.museum":true,"garden.museum":true,"gateway.museum":true,"geelvinck.museum":true,"gemological.museum":true,"geology.museum":true,"georgia.museum":true,"giessen.museum":true,"glas.museum":true,"glass.museum":true,"gorge.museum":true,"grandrapids.museum":true,"graz.museum":true,"guernsey.museum":true,"halloffame.museum":true,"hamburg.museum":true,"handson.museum":true,"harvestcelebration.museum":true,"hawaii.museum":true,"health.museum":true,"heimatunduhren.museum":true,"hellas.museum":true,"helsinki.museum":true,"hembygdsforbund.museum":true,"heritage.museum":true,"histoire.museum":true,"historical.museum":true,"historicalsociety.museum":true,"historichouses.museum":true,"historisch.museum":true,"historisches.museum":true,"history.museum":true,"historyofscience.museum":true,"horology.museum":true,"house.museum":true,"humanities.museum":true,"illustration.museum":true,"imageandsound.museum":true,"indian.museum":true,"indiana.museum":true,"indianapolis.museum":true,"indianmarket.museum":true,"intelligence.museum":true,"interactive.museum":true,"iraq.museum":true,"iron.museum":true,"isleofman.museum":true,"jamison.museum":true,"jefferson.museum":true,"jerusalem.museum":true,"jewelry.museum":true,"jewish.museum":true,"jewishart.museum":true,"jfk.museum":true,"journalism.museum":true,"judaica.museum":true,"judygarland.museum":true,"juedisches.museum":true,"juif.museum":true,"karate.museum":true,"karikatur.museum":true,"kids.museum":true,"koebenhavn.museum":true,"koeln.museum":true,"kunst.museum":true,"kunstsammlung.museum":true,"kunstunddesign.museum":true,"labor.museum":true,"labour.museum":true,"lajolla.museum":true,"lancashire.museum":true,"landes.museum":true,"lans.museum":true,"xn--lns-qla.museum":true,"larsson.museum":true,"lewismiller.museum":true,"lincoln.museum":true,"linz.museum":true,"living.museum":true,"livinghistory.museum":true,"localhistory.museum":true,"london.museum":true,"losangeles.museum":true,"louvre.museum":true,"loyalist.museum":true,"lucerne.museum":true,"luxembourg.museum":true,"luzern.museum":true,"mad.museum":true,"madrid.museum":true,"mallorca.museum":true,"manchester.museum":true,"mansion.museum":true,"mansions.museum":true,"manx.museum":true,"marburg.museum":true,"maritime.museum":true,"maritimo.museum":true,"maryland.museum":true,"marylhurst.museum":true,"media.museum":true,"medical.museum":true,"medizinhistorisches.museum":true,"meeres.museum":true,"memorial.museum":true,"mesaverde.museum":true,"michigan.museum":true,"midatlantic.museum":true,"military.museum":true,"mill.museum":true,"miners.museum":true,"mining.museum":true,"minnesota.museum":true,"missile.museum":true,"missoula.museum":true,"modern.museum":true,"moma.museum":true,"money.museum":true,"monmouth.museum":true,"monticello.museum":true,"montreal.museum":true,"moscow.museum":true,"motorcycle.museum":true,"muenchen.museum":true,"muenster.museum":true,"mulhouse.museum":true,"muncie.museum":true,"museet.museum":true,"museumcenter.museum":true,"museumvereniging.museum":true,"music.museum":true,"national.museum":true,"nationalfirearms.museum":true,"nationalheritage.museum":true,"nativeamerican.museum":true,"naturalhistory.museum":true,"naturalhistorymuseum.museum":true,"naturalsciences.museum":true,"nature.museum":true,"naturhistorisches.museum":true,"natuurwetenschappen.museum":true,"naumburg.museum":true,"naval.museum":true,"nebraska.museum":true,"neues.museum":true,"newhampshire.museum":true,"newjersey.museum":true,"newmexico.museum":true,"newport.museum":true,"newspaper.museum":true,"newyork.museum":true,"niepce.museum":true,"norfolk.museum":true,"north.museum":true,"nrw.museum":true,"nuernberg.museum":true,"nuremberg.museum":true,"nyc.museum":true,"nyny.museum":true,"oceanographic.museum":true,"oceanographique.museum":true,"omaha.museum":true,"online.museum":true,"ontario.museum":true,"openair.museum":true,"oregon.museum":true,"oregontrail.museum":true,"otago.museum":true,"oxford.museum":true,"pacific.museum":true,"paderborn.museum":true,"palace.museum":true,"paleo.museum":true,"palmsprings.museum":true,"panama.museum":true,"paris.museum":true,"pasadena.museum":true,"pharmacy.museum":true,"philadelphia.museum":true,"philadelphiaarea.museum":true,"philately.museum":true,"phoenix.museum":true,"photography.museum":true,"pilots.museum":true,"pittsburgh.museum":true,"planetarium.museum":true,"plantation.museum":true,"plants.museum":true,"plaza.museum":true,"portal.museum":true,"portland.museum":true,"portlligat.museum":true,"posts-and-telecommunications.museum":true,"preservation.museum":true,"presidio.museum":true,"press.museum":true,"project.museum":true,"public.museum":true,"pubol.museum":true,"quebec.museum":true,"railroad.museum":true,"railway.museum":true,"research.museum":true,"resistance.museum":true,"riodejaneiro.museum":true,"rochester.museum":true,"rockart.museum":true,"roma.museum":true,"russia.museum":true,"saintlouis.museum":true,"salem.museum":true,"salvadordali.museum":true,"salzburg.museum":true,"sandiego.museum":true,"sanfrancisco.museum":true,"santabarbara.museum":true,"santacruz.museum":true,"santafe.museum":true,"saskatchewan.museum":true,"satx.museum":true,"savannahga.museum":true,"schlesisches.museum":true,"schoenbrunn.museum":true,"schokoladen.museum":true,"school.museum":true,"schweiz.museum":true,"science.museum":true,"scienceandhistory.museum":true,"scienceandindustry.museum":true,"sciencecenter.museum":true,"sciencecenters.museum":true,"science-fiction.museum":true,"sciencehistory.museum":true,"sciences.museum":true,"sciencesnaturelles.museum":true,"scotland.museum":true,"seaport.museum":true,"settlement.museum":true,"settlers.museum":true,"shell.museum":true,"sherbrooke.museum":true,"sibenik.museum":true,"silk.museum":true,"ski.museum":true,"skole.museum":true,"society.museum":true,"sologne.museum":true,"soundandvision.museum":true,"southcarolina.museum":true,"southwest.museum":true,"space.museum":true,"spy.museum":true,"square.museum":true,"stadt.museum":true,"stalbans.museum":true,"starnberg.museum":true,"state.museum":true,"stateofdelaware.museum":true,"station.museum":true,"steam.museum":true,"steiermark.museum":true,"stjohn.museum":true,"stockholm.museum":true,"stpetersburg.museum":true,"stuttgart.museum":true,"suisse.museum":true,"surgeonshall.museum":true,"surrey.museum":true,"svizzera.museum":true,"sweden.museum":true,"sydney.museum":true,"tank.museum":true,"tcm.museum":true,"technology.museum":true,"telekommunikation.museum":true,"television.museum":true,"texas.museum":true,"textile.museum":true,"theater.museum":true,"time.museum":true,"timekeeping.museum":true,"topology.museum":true,"torino.museum":true,"touch.museum":true,"town.museum":true,"transport.museum":true,"tree.museum":true,"trolley.museum":true,"trust.museum":true,"trustee.museum":true,"uhren.museum":true,"ulm.museum":true,"undersea.museum":true,"university.museum":true,"usa.museum":true,"usantiques.museum":true,"usarts.museum":true,"uscountryestate.museum":true,"usculture.museum":true,"usdecorativearts.museum":true,"usgarden.museum":true,"ushistory.museum":true,"ushuaia.museum":true,"uslivinghistory.museum":true,"utah.museum":true,"uvic.museum":true,"valley.museum":true,"vantaa.museum":true,"versailles.museum":true,"viking.museum":true,"village.museum":true,"virginia.museum":true,"virtual.museum":true,"virtuel.museum":true,"vlaanderen.museum":true,"volkenkunde.museum":true,"wales.museum":true,"wallonie.museum":true,"war.museum":true,"washingtondc.museum":true,"watchandclock.museum":true,"watch-and-clock.museum":true,"western.museum":true,"westfalen.museum":true,"whaling.museum":true,"wildlife.museum":true,"williamsburg.museum":true,"windmill.museum":true,"workshop.museum":true,"york.museum":true,"yorkshire.museum":true,"yosemite.museum":true,"youth.museum":true,"zoological.museum":true,"zoology.museum":true,"xn--9dbhblg6di.museum":true,"xn--h1aegh.museum":true,"mv":true,"aero.mv":true,"biz.mv":true,"com.mv":true,"coop.mv":true,"edu.mv":true,"gov.mv":true,"info.mv":true,"int.mv":true,"mil.mv":true,"museum.mv":true,"name.mv":true,"net.mv":true,"org.mv":true,"pro.mv":true,"mw":true,"ac.mw":true,"biz.mw":true,"co.mw":true,"com.mw":true,"coop.mw":true,"edu.mw":true,"gov.mw":true,"int.mw":true,"museum.mw":true,"net.mw":true,"org.mw":true,"mx":true,"com.mx":true,"org.mx":true,"gob.mx":true,"edu.mx":true,"net.mx":true,"my":true,"com.my":true,"net.my":true,"org.my":true,"gov.my":true,"edu.my":true,"mil.my":true,"name.my":true,"*.mz":true,"teledata.mz":false,"na":true,"info.na":true,"pro.na":true,"name.na":true,"school.na":true,"or.na":true,"dr.na":true,"us.na":true,"mx.na":true,"ca.na":true,"in.na":true,"cc.na":true,"tv.na":true,"ws.na":true,"mobi.na":true,"co.na":true,"com.na":true,"org.na":true,"name":true,"nc":true,"asso.nc":true,"ne":true,"net":true,"nf":true,"com.nf":true,"net.nf":true,"per.nf":true,"rec.nf":true,"web.nf":true,"arts.nf":true,"firm.nf":true,"info.nf":true,"other.nf":true,"store.nf":true,"ng":true,"com.ng":true,"edu.ng":true,"name.ng":true,"net.ng":true,"org.ng":true,"sch.ng":true,"gov.ng":true,"mil.ng":true,"mobi.ng":true,"*.ni":true,"nl":true,"bv.nl":true,"no":true,"fhs.no":true,"vgs.no":true,"fylkesbibl.no":true,"folkebibl.no":true,"museum.no":true,"idrett.no":true,"priv.no":true,"mil.no":true,"stat.no":true,"dep.no":true,"kommune.no":true,"herad.no":true,"aa.no":true,"ah.no":true,"bu.no":true,"fm.no":true,"hl.no":true,"hm.no":true,"jan-mayen.no":true,"mr.no":true,"nl.no":true,"nt.no":true,"of.no":true,"ol.no":true,"oslo.no":true,"rl.no":true,"sf.no":true,"st.no":true,"svalbard.no":true,"tm.no":true,"tr.no":true,"va.no":true,"vf.no":true,"gs.aa.no":true,"gs.ah.no":true,"gs.bu.no":true,"gs.fm.no":true,"gs.hl.no":true,"gs.hm.no":true,"gs.jan-mayen.no":true,"gs.mr.no":true,"gs.nl.no":true,"gs.nt.no":true,"gs.of.no":true,"gs.ol.no":true,"gs.oslo.no":true,"gs.rl.no":true,"gs.sf.no":true,"gs.st.no":true,"gs.svalbard.no":true,"gs.tm.no":true,"gs.tr.no":true,"gs.va.no":true,"gs.vf.no":true,"akrehamn.no":true,"xn--krehamn-dxa.no":true,"algard.no":true,"xn--lgrd-poac.no":true,"arna.no":true,"brumunddal.no":true,"bryne.no":true,"bronnoysund.no":true,"xn--brnnysund-m8ac.no":true,"drobak.no":true,"xn--drbak-wua.no":true,"egersund.no":true,"fetsund.no":true,"floro.no":true,"xn--flor-jra.no":true,"fredrikstad.no":true,"hokksund.no":true,"honefoss.no":true,"xn--hnefoss-q1a.no":true,"jessheim.no":true,"jorpeland.no":true,"xn--jrpeland-54a.no":true,"kirkenes.no":true,"kopervik.no":true,"krokstadelva.no":true,"langevag.no":true,"xn--langevg-jxa.no":true,"leirvik.no":true,"mjondalen.no":true,"xn--mjndalen-64a.no":true,"mo-i-rana.no":true,"mosjoen.no":true,"xn--mosjen-eya.no":true,"nesoddtangen.no":true,"orkanger.no":true,"osoyro.no":true,"xn--osyro-wua.no":true,"raholt.no":true,"xn--rholt-mra.no":true,"sandnessjoen.no":true,"xn--sandnessjen-ogb.no":true,"skedsmokorset.no":true,"slattum.no":true,"spjelkavik.no":true,"stathelle.no":true,"stavern.no":true,"stjordalshalsen.no":true,"xn--stjrdalshalsen-sqb.no":true,"tananger.no":true,"tranby.no":true,"vossevangen.no":true,"afjord.no":true,"xn--fjord-lra.no":true,"agdenes.no":true,"al.no":true,"xn--l-1fa.no":true,"alesund.no":true,"xn--lesund-hua.no":true,"alstahaug.no":true,"alta.no":true,"xn--lt-liac.no":true,"alaheadju.no":true,"xn--laheadju-7ya.no":true,"alvdal.no":true,"amli.no":true,"xn--mli-tla.no":true,"amot.no":true,"xn--mot-tla.no":true,"andebu.no":true,"andoy.no":true,"xn--andy-ira.no":true,"andasuolo.no":true,"ardal.no":true,"xn--rdal-poa.no":true,"aremark.no":true,"arendal.no":true,"xn--s-1fa.no":true,"aseral.no":true,"xn--seral-lra.no":true,"asker.no":true,"askim.no":true,"askvoll.no":true,"askoy.no":true,"xn--asky-ira.no":true,"asnes.no":true,"xn--snes-poa.no":true,"audnedaln.no":true,"aukra.no":true,"aure.no":true,"aurland.no":true,"aurskog-holand.no":true,"xn--aurskog-hland-jnb.no":true,"austevoll.no":true,"austrheim.no":true,"averoy.no":true,"xn--avery-yua.no":true,"balestrand.no":true,"ballangen.no":true,"balat.no":true,"xn--blt-elab.no":true,"balsfjord.no":true,"bahccavuotna.no":true,"xn--bhccavuotna-k7a.no":true,"bamble.no":true,"bardu.no":true,"beardu.no":true,"beiarn.no":true,"bajddar.no":true,"xn--bjddar-pta.no":true,"baidar.no":true,"xn--bidr-5nac.no":true,"berg.no":true,"bergen.no":true,"berlevag.no":true,"xn--berlevg-jxa.no":true,"bearalvahki.no":true,"xn--bearalvhki-y4a.no":true,"bindal.no":true,"birkenes.no":true,"bjarkoy.no":true,"xn--bjarky-fya.no":true,"bjerkreim.no":true,"bjugn.no":true,"bodo.no":true,"xn--bod-2na.no":true,"badaddja.no":true,"xn--bdddj-mrabd.no":true,"budejju.no":true,"bokn.no":true,"bremanger.no":true,"bronnoy.no":true,"xn--brnny-wuac.no":true,"bygland.no":true,"bykle.no":true,"barum.no":true,"xn--brum-voa.no":true,"bo.telemark.no":true,"xn--b-5ga.telemark.no":true,"bo.nordland.no":true,"xn--b-5ga.nordland.no":true,"bievat.no":true,"xn--bievt-0qa.no":true,"bomlo.no":true,"xn--bmlo-gra.no":true,"batsfjord.no":true,"xn--btsfjord-9za.no":true,"bahcavuotna.no":true,"xn--bhcavuotna-s4a.no":true,"dovre.no":true,"drammen.no":true,"drangedal.no":true,"dyroy.no":true,"xn--dyry-ira.no":true,"donna.no":true,"xn--dnna-gra.no":true,"eid.no":true,"eidfjord.no":true,"eidsberg.no":true,"eidskog.no":true,"eidsvoll.no":true,"eigersund.no":true,"elverum.no":true,"enebakk.no":true,"engerdal.no":true,"etne.no":true,"etnedal.no":true,"evenes.no":true,"evenassi.no":true,"xn--eveni-0qa01ga.no":true,"evje-og-hornnes.no":true,"farsund.no":true,"fauske.no":true,"fuossko.no":true,"fuoisku.no":true,"fedje.no":true,"fet.no":true,"finnoy.no":true,"xn--finny-yua.no":true,"fitjar.no":true,"fjaler.no":true,"fjell.no":true,"flakstad.no":true,"flatanger.no":true,"flekkefjord.no":true,"flesberg.no":true,"flora.no":true,"fla.no":true,"xn--fl-zia.no":true,"folldal.no":true,"forsand.no":true,"fosnes.no":true,"frei.no":true,"frogn.no":true,"froland.no":true,"frosta.no":true,"frana.no":true,"xn--frna-woa.no":true,"froya.no":true,"xn--frya-hra.no":true,"fusa.no":true,"fyresdal.no":true,"forde.no":true,"xn--frde-gra.no":true,"gamvik.no":true,"gangaviika.no":true,"xn--ggaviika-8ya47h.no":true,"gaular.no":true,"gausdal.no":true,"gildeskal.no":true,"xn--gildeskl-g0a.no":true,"giske.no":true,"gjemnes.no":true,"gjerdrum.no":true,"gjerstad.no":true,"gjesdal.no":true,"gjovik.no":true,"xn--gjvik-wua.no":true,"gloppen.no":true,"gol.no":true,"gran.no":true,"grane.no":true,"granvin.no":true,"gratangen.no":true,"grimstad.no":true,"grong.no":true,"kraanghke.no":true,"xn--kranghke-b0a.no":true,"grue.no":true,"gulen.no":true,"hadsel.no":true,"halden.no":true,"halsa.no":true,"hamar.no":true,"hamaroy.no":true,"habmer.no":true,"xn--hbmer-xqa.no":true,"hapmir.no":true,"xn--hpmir-xqa.no":true,"hammerfest.no":true,"hammarfeasta.no":true,"xn--hmmrfeasta-s4ac.no":true,"haram.no":true,"hareid.no":true,"harstad.no":true,"hasvik.no":true,"aknoluokta.no":true,"xn--koluokta-7ya57h.no":true,"hattfjelldal.no":true,"aarborte.no":true,"haugesund.no":true,"hemne.no":true,"hemnes.no":true,"hemsedal.no":true,"heroy.more-og-romsdal.no":true,"xn--hery-ira.xn--mre-og-romsdal-qqb.no":true,"heroy.nordland.no":true,"xn--hery-ira.nordland.no":true,"hitra.no":true,"hjartdal.no":true,"hjelmeland.no":true,"hobol.no":true,"xn--hobl-ira.no":true,"hof.no":true,"hol.no":true,"hole.no":true,"holmestrand.no":true,"holtalen.no":true,"xn--holtlen-hxa.no":true,"hornindal.no":true,"horten.no":true,"hurdal.no":true,"hurum.no":true,"hvaler.no":true,"hyllestad.no":true,"hagebostad.no":true,"xn--hgebostad-g3a.no":true,"hoyanger.no":true,"xn--hyanger-q1a.no":true,"hoylandet.no":true,"xn--hylandet-54a.no":true,"ha.no":true,"xn--h-2fa.no":true,"ibestad.no":true,"inderoy.no":true,"xn--indery-fya.no":true,"iveland.no":true,"jevnaker.no":true,"jondal.no":true,"jolster.no":true,"xn--jlster-bya.no":true,"karasjok.no":true,"karasjohka.no":true,"xn--krjohka-hwab49j.no":true,"karlsoy.no":true,"galsa.no":true,"xn--gls-elac.no":true,"karmoy.no":true,"xn--karmy-yua.no":true,"kautokeino.no":true,"guovdageaidnu.no":true,"klepp.no":true,"klabu.no":true,"xn--klbu-woa.no":true,"kongsberg.no":true,"kongsvinger.no":true,"kragero.no":true,"xn--krager-gya.no":true,"kristiansand.no":true,"kristiansund.no":true,"krodsherad.no":true,"xn--krdsherad-m8a.no":true,"kvalsund.no":true,"rahkkeravju.no":true,"xn--rhkkervju-01af.no":true,"kvam.no":true,"kvinesdal.no":true,"kvinnherad.no":true,"kviteseid.no":true,"kvitsoy.no":true,"xn--kvitsy-fya.no":true,"kvafjord.no":true,"xn--kvfjord-nxa.no":true,"giehtavuoatna.no":true,"kvanangen.no":true,"xn--kvnangen-k0a.no":true,"navuotna.no":true,"xn--nvuotna-hwa.no":true,"kafjord.no":true,"xn--kfjord-iua.no":true,"gaivuotna.no":true,"xn--givuotna-8ya.no":true,"larvik.no":true,"lavangen.no":true,"lavagis.no":true,"loabat.no":true,"xn--loabt-0qa.no":true,"lebesby.no":true,"davvesiida.no":true,"leikanger.no":true,"leirfjord.no":true,"leka.no":true,"leksvik.no":true,"lenvik.no":true,"leangaviika.no":true,"xn--leagaviika-52b.no":true,"lesja.no":true,"levanger.no":true,"lier.no":true,"lierne.no":true,"lillehammer.no":true,"lillesand.no":true,"lindesnes.no":true,"lindas.no":true,"xn--linds-pra.no":true,"lom.no":true,"loppa.no":true,"lahppi.no":true,"xn--lhppi-xqa.no":true,"lund.no":true,"lunner.no":true,"luroy.no":true,"xn--lury-ira.no":true,"luster.no":true,"lyngdal.no":true,"lyngen.no":true,"ivgu.no":true,"lardal.no":true,"lerdal.no":true,"xn--lrdal-sra.no":true,"lodingen.no":true,"xn--ldingen-q1a.no":true,"lorenskog.no":true,"xn--lrenskog-54a.no":true,"loten.no":true,"xn--lten-gra.no":true,"malvik.no":true,"masoy.no":true,"xn--msy-ula0h.no":true,"muosat.no":true,"xn--muost-0qa.no":true,"mandal.no":true,"marker.no":true,"marnardal.no":true,"masfjorden.no":true,"meland.no":true,"meldal.no":true,"melhus.no":true,"meloy.no":true,"xn--mely-ira.no":true,"meraker.no":true,"xn--merker-kua.no":true,"moareke.no":true,"xn--moreke-jua.no":true,"midsund.no":true,"midtre-gauldal.no":true,"modalen.no":true,"modum.no":true,"molde.no":true,"moskenes.no":true,"moss.no":true,"mosvik.no":true,"malselv.no":true,"xn--mlselv-iua.no":true,"malatvuopmi.no":true,"xn--mlatvuopmi-s4a.no":true,"namdalseid.no":true,"aejrie.no":true,"namsos.no":true,"namsskogan.no":true,"naamesjevuemie.no":true,"xn--nmesjevuemie-tcba.no":true,"laakesvuemie.no":true,"nannestad.no":true,"narvik.no":true,"narviika.no":true,"naustdal.no":true,"nedre-eiker.no":true,"nes.akershus.no":true,"nes.buskerud.no":true,"nesna.no":true,"nesodden.no":true,"nesseby.no":true,"unjarga.no":true,"xn--unjrga-rta.no":true,"nesset.no":true,"nissedal.no":true,"nittedal.no":true,"nord-aurdal.no":true,"nord-fron.no":true,"nord-odal.no":true,"norddal.no":true,"nordkapp.no":true,"davvenjarga.no":true,"xn--davvenjrga-y4a.no":true,"nordre-land.no":true,"nordreisa.no":true,"raisa.no":true,"xn--risa-5na.no":true,"nore-og-uvdal.no":true,"notodden.no":true,"naroy.no":true,"xn--nry-yla5g.no":true,"notteroy.no":true,"xn--nttery-byae.no":true,"odda.no":true,"oksnes.no":true,"xn--ksnes-uua.no":true,"oppdal.no":true,"oppegard.no":true,"xn--oppegrd-ixa.no":true,"orkdal.no":true,"orland.no":true,"xn--rland-uua.no":true,"orskog.no":true,"xn--rskog-uua.no":true,"orsta.no":true,"xn--rsta-fra.no":true,"os.hedmark.no":true,"os.hordaland.no":true,"osen.no":true,"osteroy.no":true,"xn--ostery-fya.no":true,"ostre-toten.no":true,"xn--stre-toten-zcb.no":true,"overhalla.no":true,"ovre-eiker.no":true,"xn--vre-eiker-k8a.no":true,"oyer.no":true,"xn--yer-zna.no":true,"oygarden.no":true,"xn--ygarden-p1a.no":true,"oystre-slidre.no":true,"xn--ystre-slidre-ujb.no":true,"porsanger.no":true,"porsangu.no":true,"xn--porsgu-sta26f.no":true,"porsgrunn.no":true,"radoy.no":true,"xn--rady-ira.no":true,"rakkestad.no":true,"rana.no":true,"ruovat.no":true,"randaberg.no":true,"rauma.no":true,"rendalen.no":true,"rennebu.no":true,"rennesoy.no":true,"xn--rennesy-v1a.no":true,"rindal.no":true,"ringebu.no":true,"ringerike.no":true,"ringsaker.no":true,"rissa.no":true,"risor.no":true,"xn--risr-ira.no":true,"roan.no":true,"rollag.no":true,"rygge.no":true,"ralingen.no":true,"xn--rlingen-mxa.no":true,"rodoy.no":true,"xn--rdy-0nab.no":true,"romskog.no":true,"xn--rmskog-bya.no":true,"roros.no":true,"xn--rros-gra.no":true,"rost.no":true,"xn--rst-0na.no":true,"royken.no":true,"xn--ryken-vua.no":true,"royrvik.no":true,"xn--ryrvik-bya.no":true,"rade.no":true,"xn--rde-ula.no":true,"salangen.no":true,"siellak.no":true,"saltdal.no":true,"salat.no":true,"xn--slt-elab.no":true,"xn--slat-5na.no":true,"samnanger.no":true,"sande.more-og-romsdal.no":true,"sande.xn--mre-og-romsdal-qqb.no":true,"sande.vestfold.no":true,"sandefjord.no":true,"sandnes.no":true,"sandoy.no":true,"xn--sandy-yua.no":true,"sarpsborg.no":true,"sauda.no":true,"sauherad.no":true,"sel.no":true,"selbu.no":true,"selje.no":true,"seljord.no":true,"sigdal.no":true,"siljan.no":true,"sirdal.no":true,"skaun.no":true,"skedsmo.no":true,"ski.no":true,"skien.no":true,"skiptvet.no":true,"skjervoy.no":true,"xn--skjervy-v1a.no":true,"skierva.no":true,"xn--skierv-uta.no":true,"skjak.no":true,"xn--skjk-soa.no":true,"skodje.no":true,"skanland.no":true,"xn--sknland-fxa.no":true,"skanit.no":true,"xn--sknit-yqa.no":true,"smola.no":true,"xn--smla-hra.no":true,"snillfjord.no":true,"snasa.no":true,"xn--snsa-roa.no":true,"snoasa.no":true,"snaase.no":true,"xn--snase-nra.no":true,"sogndal.no":true,"sokndal.no":true,"sola.no":true,"solund.no":true,"songdalen.no":true,"sortland.no":true,"spydeberg.no":true,"stange.no":true,"stavanger.no":true,"steigen.no":true,"steinkjer.no":true,"stjordal.no":true,"xn--stjrdal-s1a.no":true,"stokke.no":true,"stor-elvdal.no":true,"stord.no":true,"stordal.no":true,"storfjord.no":true,"omasvuotna.no":true,"strand.no":true,"stranda.no":true,"stryn.no":true,"sula.no":true,"suldal.no":true,"sund.no":true,"sunndal.no":true,"surnadal.no":true,"sveio.no":true,"svelvik.no":true,"sykkylven.no":true,"sogne.no":true,"xn--sgne-gra.no":true,"somna.no":true,"xn--smna-gra.no":true,"sondre-land.no":true,"xn--sndre-land-0cb.no":true,"sor-aurdal.no":true,"xn--sr-aurdal-l8a.no":true,"sor-fron.no":true,"xn--sr-fron-q1a.no":true,"sor-odal.no":true,"xn--sr-odal-q1a.no":true,"sor-varanger.no":true,"xn--sr-varanger-ggb.no":true,"matta-varjjat.no":true,"xn--mtta-vrjjat-k7af.no":true,"sorfold.no":true,"xn--srfold-bya.no":true,"sorreisa.no":true,"xn--srreisa-q1a.no":true,"sorum.no":true,"xn--srum-gra.no":true,"tana.no":true,"deatnu.no":true,"time.no":true,"tingvoll.no":true,"tinn.no":true,"tjeldsund.no":true,"dielddanuorri.no":true,"tjome.no":true,"xn--tjme-hra.no":true,"tokke.no":true,"tolga.no":true,"torsken.no":true,"tranoy.no":true,"xn--trany-yua.no":true,"tromso.no":true,"xn--troms-zua.no":true,"tromsa.no":true,"romsa.no":true,"trondheim.no":true,"troandin.no":true,"trysil.no":true,"trana.no":true,"xn--trna-woa.no":true,"trogstad.no":true,"xn--trgstad-r1a.no":true,"tvedestrand.no":true,"tydal.no":true,"tynset.no":true,"tysfjord.no":true,"divtasvuodna.no":true,"divttasvuotna.no":true,"tysnes.no":true,"tysvar.no":true,"xn--tysvr-vra.no":true,"tonsberg.no":true,"xn--tnsberg-q1a.no":true,"ullensaker.no":true,"ullensvang.no":true,"ulvik.no":true,"utsira.no":true,"vadso.no":true,"xn--vads-jra.no":true,"cahcesuolo.no":true,"xn--hcesuolo-7ya35b.no":true,"vaksdal.no":true,"valle.no":true,"vang.no":true,"vanylven.no":true,"vardo.no":true,"xn--vard-jra.no":true,"varggat.no":true,"xn--vrggt-xqad.no":true,"vefsn.no":true,"vaapste.no":true,"vega.no":true,"vegarshei.no":true,"xn--vegrshei-c0a.no":true,"vennesla.no":true,"verdal.no":true,"verran.no":true,"vestby.no":true,"vestnes.no":true,"vestre-slidre.no":true,"vestre-toten.no":true,"vestvagoy.no":true,"xn--vestvgy-ixa6o.no":true,"vevelstad.no":true,"vik.no":true,"vikna.no":true,"vindafjord.no":true,"volda.no":true,"voss.no":true,"varoy.no":true,"xn--vry-yla5g.no":true,"vagan.no":true,"xn--vgan-qoa.no":true,"voagat.no":true,"vagsoy.no":true,"xn--vgsy-qoa0j.no":true,"vaga.no":true,"xn--vg-yiab.no":true,"valer.ostfold.no":true,"xn--vler-qoa.xn--stfold-9xa.no":true,"valer.hedmark.no":true,"xn--vler-qoa.hedmark.no":true,"*.np":true,"nr":true,"biz.nr":true,"info.nr":true,"gov.nr":true,"edu.nr":true,"org.nr":true,"net.nr":true,"com.nr":true,"nu":true,"nz":true,"ac.nz":true,"co.nz":true,"cri.nz":true,"geek.nz":true,"gen.nz":true,"govt.nz":true,"health.nz":true,"iwi.nz":true,"kiwi.nz":true,"maori.nz":true,"mil.nz":true,"xn--mori-qsa.nz":true,"net.nz":true,"org.nz":true,"parliament.nz":true,"school.nz":true,"om":true,"co.om":true,"com.om":true,"edu.om":true,"gov.om":true,"med.om":true,"museum.om":true,"net.om":true,"org.om":true,"pro.om":true,"org":true,"pa":true,"ac.pa":true,"gob.pa":true,"com.pa":true,"org.pa":true,"sld.pa":true,"edu.pa":true,"net.pa":true,"ing.pa":true,"abo.pa":true,"med.pa":true,"nom.pa":true,"pe":true,"edu.pe":true,"gob.pe":true,"nom.pe":true,"mil.pe":true,"org.pe":true,"com.pe":true,"net.pe":true,"pf":true,"com.pf":true,"org.pf":true,"edu.pf":true,"*.pg":true,"ph":true,"com.ph":true,"net.ph":true,"org.ph":true,"gov.ph":true,"edu.ph":true,"ngo.ph":true,"mil.ph":true,"i.ph":true,"pk":true,"com.pk":true,"net.pk":true,"edu.pk":true,"org.pk":true,"fam.pk":true,"biz.pk":true,"web.pk":true,"gov.pk":true,"gob.pk":true,"gok.pk":true,"gon.pk":true,"gop.pk":true,"gos.pk":true,"info.pk":true,"pl":true,"com.pl":true,"net.pl":true,"org.pl":true,"aid.pl":true,"agro.pl":true,"atm.pl":true,"auto.pl":true,"biz.pl":true,"edu.pl":true,"gmina.pl":true,"gsm.pl":true,"info.pl":true,"mail.pl":true,"miasta.pl":true,"media.pl":true,"mil.pl":true,"nieruchomosci.pl":true,"nom.pl":true,"pc.pl":true,"powiat.pl":true,"priv.pl":true,"realestate.pl":true,"rel.pl":true,"sex.pl":true,"shop.pl":true,"sklep.pl":true,"sos.pl":true,"szkola.pl":true,"targi.pl":true,"tm.pl":true,"tourism.pl":true,"travel.pl":true,"turystyka.pl":true,"gov.pl":true,"ap.gov.pl":true,"ic.gov.pl":true,"is.gov.pl":true,"us.gov.pl":true,"kmpsp.gov.pl":true,"kppsp.gov.pl":true,"kwpsp.gov.pl":true,"psp.gov.pl":true,"wskr.gov.pl":true,"kwp.gov.pl":true,"mw.gov.pl":true,"ug.gov.pl":true,"um.gov.pl":true,"umig.gov.pl":true,"ugim.gov.pl":true,"upow.gov.pl":true,"uw.gov.pl":true,"starostwo.gov.pl":true,"pa.gov.pl":true,"po.gov.pl":true,"psse.gov.pl":true,"pup.gov.pl":true,"rzgw.gov.pl":true,"sa.gov.pl":true,"so.gov.pl":true,"sr.gov.pl":true,"wsa.gov.pl":true,"sko.gov.pl":true,"uzs.gov.pl":true,"wiih.gov.pl":true,"winb.gov.pl":true,"pinb.gov.pl":true,"wios.gov.pl":true,"witd.gov.pl":true,"wzmiuw.gov.pl":true,"piw.gov.pl":true,"wiw.gov.pl":true,"griw.gov.pl":true,"wif.gov.pl":true,"oum.gov.pl":true,"sdn.gov.pl":true,"zp.gov.pl":true,"uppo.gov.pl":true,"mup.gov.pl":true,"wuoz.gov.pl":true,"konsulat.gov.pl":true,"oirm.gov.pl":true,"augustow.pl":true,"babia-gora.pl":true,"bedzin.pl":true,"beskidy.pl":true,"bialowieza.pl":true,"bialystok.pl":true,"bielawa.pl":true,"bieszczady.pl":true,"boleslawiec.pl":true,"bydgoszcz.pl":true,"bytom.pl":true,"cieszyn.pl":true,"czeladz.pl":true,"czest.pl":true,"dlugoleka.pl":true,"elblag.pl":true,"elk.pl":true,"glogow.pl":true,"gniezno.pl":true,"gorlice.pl":true,"grajewo.pl":true,"ilawa.pl":true,"jaworzno.pl":true,"jelenia-gora.pl":true,"jgora.pl":true,"kalisz.pl":true,"kazimierz-dolny.pl":true,"karpacz.pl":true,"kartuzy.pl":true,"kaszuby.pl":true,"katowice.pl":true,"kepno.pl":true,"ketrzyn.pl":true,"klodzko.pl":true,"kobierzyce.pl":true,"kolobrzeg.pl":true,"konin.pl":true,"konskowola.pl":true,"kutno.pl":true,"lapy.pl":true,"lebork.pl":true,"legnica.pl":true,"lezajsk.pl":true,"limanowa.pl":true,"lomza.pl":true,"lowicz.pl":true,"lubin.pl":true,"lukow.pl":true,"malbork.pl":true,"malopolska.pl":true,"mazowsze.pl":true,"mazury.pl":true,"mielec.pl":true,"mielno.pl":true,"mragowo.pl":true,"naklo.pl":true,"nowaruda.pl":true,"nysa.pl":true,"olawa.pl":true,"olecko.pl":true,"olkusz.pl":true,"olsztyn.pl":true,"opoczno.pl":true,"opole.pl":true,"ostroda.pl":true,"ostroleka.pl":true,"ostrowiec.pl":true,"ostrowwlkp.pl":true,"pila.pl":true,"pisz.pl":true,"podhale.pl":true,"podlasie.pl":true,"polkowice.pl":true,"pomorze.pl":true,"pomorskie.pl":true,"prochowice.pl":true,"pruszkow.pl":true,"przeworsk.pl":true,"pulawy.pl":true,"radom.pl":true,"rawa-maz.pl":true,"rybnik.pl":true,"rzeszow.pl":true,"sanok.pl":true,"sejny.pl":true,"slask.pl":true,"slupsk.pl":true,"sosnowiec.pl":true,"stalowa-wola.pl":true,"skoczow.pl":true,"starachowice.pl":true,"stargard.pl":true,"suwalki.pl":true,"swidnica.pl":true,"swiebodzin.pl":true,"swinoujscie.pl":true,"szczecin.pl":true,"szczytno.pl":true,"tarnobrzeg.pl":true,"tgory.pl":true,"turek.pl":true,"tychy.pl":true,"ustka.pl":true,"walbrzych.pl":true,"warmia.pl":true,"warszawa.pl":true,"waw.pl":true,"wegrow.pl":true,"wielun.pl":true,"wlocl.pl":true,"wloclawek.pl":true,"wodzislaw.pl":true,"wolomin.pl":true,"wroclaw.pl":true,"zachpomor.pl":true,"zagan.pl":true,"zarow.pl":true,"zgora.pl":true,"zgorzelec.pl":true,"pm":true,"pn":true,"gov.pn":true,"co.pn":true,"org.pn":true,"edu.pn":true,"net.pn":true,"post":true,"pr":true,"com.pr":true,"net.pr":true,"org.pr":true,"gov.pr":true,"edu.pr":true,"isla.pr":true,"pro.pr":true,"biz.pr":true,"info.pr":true,"name.pr":true,"est.pr":true,"prof.pr":true,"ac.pr":true,"pro":true,"aca.pro":true,"bar.pro":true,"cpa.pro":true,"jur.pro":true,"law.pro":true,"med.pro":true,"eng.pro":true,"ps":true,"edu.ps":true,"gov.ps":true,"sec.ps":true,"plo.ps":true,"com.ps":true,"org.ps":true,"net.ps":true,"pt":true,"net.pt":true,"gov.pt":true,"org.pt":true,"edu.pt":true,"int.pt":true,"publ.pt":true,"com.pt":true,"nome.pt":true,"pw":true,"co.pw":true,"ne.pw":true,"or.pw":true,"ed.pw":true,"go.pw":true,"belau.pw":true,"py":true,"com.py":true,"coop.py":true,"edu.py":true,"gov.py":true,"mil.py":true,"net.py":true,"org.py":true,"qa":true,"com.qa":true,"edu.qa":true,"gov.qa":true,"mil.qa":true,"name.qa":true,"net.qa":true,"org.qa":true,"sch.qa":true,"re":true,"com.re":true,"asso.re":true,"nom.re":true,"ro":true,"com.ro":true,"org.ro":true,"tm.ro":true,"nt.ro":true,"nom.ro":true,"info.ro":true,"rec.ro":true,"arts.ro":true,"firm.ro":true,"store.ro":true,"www.ro":true,"rs":true,"co.rs":true,"org.rs":true,"edu.rs":true,"ac.rs":true,"gov.rs":true,"in.rs":true,"ru":true,"ac.ru":true,"com.ru":true,"edu.ru":true,"int.ru":true,"net.ru":true,"org.ru":true,"pp.ru":true,"adygeya.ru":true,"altai.ru":true,"amur.ru":true,"arkhangelsk.ru":true,"astrakhan.ru":true,"bashkiria.ru":true,"belgorod.ru":true,"bir.ru":true,"bryansk.ru":true,"buryatia.ru":true,"cbg.ru":true,"chel.ru":true,"chelyabinsk.ru":true,"chita.ru":true,"chukotka.ru":true,"chuvashia.ru":true,"dagestan.ru":true,"dudinka.ru":true,"e-burg.ru":true,"grozny.ru":true,"irkutsk.ru":true,"ivanovo.ru":true,"izhevsk.ru":true,"jar.ru":true,"joshkar-ola.ru":true,"kalmykia.ru":true,"kaluga.ru":true,"kamchatka.ru":true,"karelia.ru":true,"kazan.ru":true,"kchr.ru":true,"kemerovo.ru":true,"khabarovsk.ru":true,"khakassia.ru":true,"khv.ru":true,"kirov.ru":true,"koenig.ru":true,"komi.ru":true,"kostroma.ru":true,"krasnoyarsk.ru":true,"kuban.ru":true,"kurgan.ru":true,"kursk.ru":true,"lipetsk.ru":true,"magadan.ru":true,"mari.ru":true,"mari-el.ru":true,"marine.ru":true,"mordovia.ru":true,"msk.ru":true,"murmansk.ru":true,"nalchik.ru":true,"nnov.ru":true,"nov.ru":true,"novosibirsk.ru":true,"nsk.ru":true,"omsk.ru":true,"orenburg.ru":true,"oryol.ru":true,"palana.ru":true,"penza.ru":true,"perm.ru":true,"ptz.ru":true,"rnd.ru":true,"ryazan.ru":true,"sakhalin.ru":true,"samara.ru":true,"saratov.ru":true,"simbirsk.ru":true,"smolensk.ru":true,"spb.ru":true,"stavropol.ru":true,"stv.ru":true,"surgut.ru":true,"tambov.ru":true,"tatarstan.ru":true,"tom.ru":true,"tomsk.ru":true,"tsaritsyn.ru":true,"tsk.ru":true,"tula.ru":true,"tuva.ru":true,"tver.ru":true,"tyumen.ru":true,"udm.ru":true,"udmurtia.ru":true,"ulan-ude.ru":true,"vladikavkaz.ru":true,"vladimir.ru":true,"vladivostok.ru":true,"volgograd.ru":true,"vologda.ru":true,"voronezh.ru":true,"vrn.ru":true,"vyatka.ru":true,"yakutia.ru":true,"yamal.ru":true,"yaroslavl.ru":true,"yekaterinburg.ru":true,"yuzhno-sakhalinsk.ru":true,"amursk.ru":true,"baikal.ru":true,"cmw.ru":true,"fareast.ru":true,"jamal.ru":true,"kms.ru":true,"k-uralsk.ru":true,"kustanai.ru":true,"kuzbass.ru":true,"magnitka.ru":true,"mytis.ru":true,"nakhodka.ru":true,"nkz.ru":true,"norilsk.ru":true,"oskol.ru":true,"pyatigorsk.ru":true,"rubtsovsk.ru":true,"snz.ru":true,"syzran.ru":true,"vdonsk.ru":true,"zgrad.ru":true,"gov.ru":true,"mil.ru":true,"test.ru":true,"rw":true,"gov.rw":true,"net.rw":true,"edu.rw":true,"ac.rw":true,"com.rw":true,"co.rw":true,"int.rw":true,"mil.rw":true,"gouv.rw":true,"sa":true,"com.sa":true,"net.sa":true,"org.sa":true,"gov.sa":true,"med.sa":true,"pub.sa":true,"edu.sa":true,"sch.sa":true,"sb":true,"com.sb":true,"edu.sb":true,"gov.sb":true,"net.sb":true,"org.sb":true,"sc":true,"com.sc":true,"gov.sc":true,"net.sc":true,"org.sc":true,"edu.sc":true,"sd":true,"com.sd":true,"net.sd":true,"org.sd":true,"edu.sd":true,"med.sd":true,"tv.sd":true,"gov.sd":true,"info.sd":true,"se":true,"a.se":true,"ac.se":true,"b.se":true,"bd.se":true,"brand.se":true,"c.se":true,"d.se":true,"e.se":true,"f.se":true,"fh.se":true,"fhsk.se":true,"fhv.se":true,"g.se":true,"h.se":true,"i.se":true,"k.se":true,"komforb.se":true,"kommunalforbund.se":true,"komvux.se":true,"l.se":true,"lanbib.se":true,"m.se":true,"n.se":true,"naturbruksgymn.se":true,"o.se":true,"org.se":true,"p.se":true,"parti.se":true,"pp.se":true,"press.se":true,"r.se":true,"s.se":true,"t.se":true,"tm.se":true,"u.se":true,"w.se":true,"x.se":true,"y.se":true,"z.se":true,"sg":true,"com.sg":true,"net.sg":true,"org.sg":true,"gov.sg":true,"edu.sg":true,"per.sg":true,"sh":true,"com.sh":true,"net.sh":true,"gov.sh":true,"org.sh":true,"mil.sh":true,"si":true,"sj":true,"sk":true,"sl":true,"com.sl":true,"net.sl":true,"edu.sl":true,"gov.sl":true,"org.sl":true,"sm":true,"sn":true,"art.sn":true,"com.sn":true,"edu.sn":true,"gouv.sn":true,"org.sn":true,"perso.sn":true,"univ.sn":true,"so":true,"com.so":true,"net.so":true,"org.so":true,"sr":true,"st":true,"co.st":true,"com.st":true,"consulado.st":true,"edu.st":true,"embaixada.st":true,"gov.st":true,"mil.st":true,"net.st":true,"org.st":true,"principe.st":true,"saotome.st":true,"store.st":true,"su":true,"adygeya.su":true,"arkhangelsk.su":true,"balashov.su":true,"bashkiria.su":true,"bryansk.su":true,"dagestan.su":true,"grozny.su":true,"ivanovo.su":true,"kalmykia.su":true,"kaluga.su":true,"karelia.su":true,"khakassia.su":true,"krasnodar.su":true,"kurgan.su":true,"lenug.su":true,"mordovia.su":true,"msk.su":true,"murmansk.su":true,"nalchik.su":true,"nov.su":true,"obninsk.su":true,"penza.su":true,"pokrovsk.su":true,"sochi.su":true,"spb.su":true,"togliatti.su":true,"troitsk.su":true,"tula.su":true,"tuva.su":true,"vladikavkaz.su":true,"vladimir.su":true,"vologda.su":true,"sv":true,"com.sv":true,"edu.sv":true,"gob.sv":true,"org.sv":true,"red.sv":true,"sx":true,"gov.sx":true,"sy":true,"edu.sy":true,"gov.sy":true,"net.sy":true,"mil.sy":true,"com.sy":true,"org.sy":true,"sz":true,"co.sz":true,"ac.sz":true,"org.sz":true,"tc":true,"td":true,"tel":true,"tf":true,"tg":true,"th":true,"ac.th":true,"co.th":true,"go.th":true,"in.th":true,"mi.th":true,"net.th":true,"or.th":true,"tj":true,"ac.tj":true,"biz.tj":true,"co.tj":true,"com.tj":true,"edu.tj":true,"go.tj":true,"gov.tj":true,"int.tj":true,"mil.tj":true,"name.tj":true,"net.tj":true,"nic.tj":true,"org.tj":true,"test.tj":true,"web.tj":true,"tk":true,"tl":true,"gov.tl":true,"tm":true,"com.tm":true,"co.tm":true,"org.tm":true,"net.tm":true,"nom.tm":true,"gov.tm":true,"mil.tm":true,"edu.tm":true,"tn":true,"com.tn":true,"ens.tn":true,"fin.tn":true,"gov.tn":true,"ind.tn":true,"intl.tn":true,"nat.tn":true,"net.tn":true,"org.tn":true,"info.tn":true,"perso.tn":true,"tourism.tn":true,"edunet.tn":true,"rnrt.tn":true,"rns.tn":true,"rnu.tn":true,"mincom.tn":true,"agrinet.tn":true,"defense.tn":true,"turen.tn":true,"to":true,"com.to":true,"gov.to":true,"net.to":true,"org.to":true,"edu.to":true,"mil.to":true,"tp":true,"tr":true,"com.tr":true,"info.tr":true,"biz.tr":true,"net.tr":true,"org.tr":true,"web.tr":true,"gen.tr":true,"tv.tr":true,"av.tr":true,"dr.tr":true,"bbs.tr":true,"name.tr":true,"tel.tr":true,"gov.tr":true,"bel.tr":true,"pol.tr":true,"mil.tr":true,"k12.tr":true,"edu.tr":true,"kep.tr":true,"nc.tr":true,"gov.nc.tr":true,"travel":true,"tt":true,"co.tt":true,"com.tt":true,"org.tt":true,"net.tt":true,"biz.tt":true,"info.tt":true,"pro.tt":true,"int.tt":true,"coop.tt":true,"jobs.tt":true,"mobi.tt":true,"travel.tt":true,"museum.tt":true,"aero.tt":true,"name.tt":true,"gov.tt":true,"edu.tt":true,"tv":true,"tw":true,"edu.tw":true,"gov.tw":true,"mil.tw":true,"com.tw":true,"net.tw":true,"org.tw":true,"idv.tw":true,"game.tw":true,"ebiz.tw":true,"club.tw":true,"xn--zf0ao64a.tw":true,"xn--uc0atv.tw":true,"xn--czrw28b.tw":true,"tz":true,"ac.tz":true,"co.tz":true,"go.tz":true,"hotel.tz":true,"info.tz":true,"me.tz":true,"mil.tz":true,"mobi.tz":true,"ne.tz":true,"or.tz":true,"sc.tz":true,"tv.tz":true,"ua":true,"com.ua":true,"edu.ua":true,"gov.ua":true,"in.ua":true,"net.ua":true,"org.ua":true,"cherkassy.ua":true,"cherkasy.ua":true,"chernigov.ua":true,"chernihiv.ua":true,"chernivtsi.ua":true,"chernovtsy.ua":true,"ck.ua":true,"cn.ua":true,"cr.ua":true,"crimea.ua":true,"cv.ua":true,"dn.ua":true,"dnepropetrovsk.ua":true,"dnipropetrovsk.ua":true,"dominic.ua":true,"donetsk.ua":true,"dp.ua":true,"if.ua":true,"ivano-frankivsk.ua":true,"kh.ua":true,"kharkiv.ua":true,"kharkov.ua":true,"kherson.ua":true,"khmelnitskiy.ua":true,"khmelnytskyi.ua":true,"kiev.ua":true,"kirovograd.ua":true,"km.ua":true,"kr.ua":true,"krym.ua":true,"ks.ua":true,"kv.ua":true,"kyiv.ua":true,"lg.ua":true,"lt.ua":true,"lugansk.ua":true,"lutsk.ua":true,"lv.ua":true,"lviv.ua":true,"mk.ua":true,"mykolaiv.ua":true,"nikolaev.ua":true,"od.ua":true,"odesa.ua":true,"odessa.ua":true,"pl.ua":true,"poltava.ua":true,"rivne.ua":true,"rovno.ua":true,"rv.ua":true,"sb.ua":true,"sebastopol.ua":true,"sevastopol.ua":true,"sm.ua":true,"sumy.ua":true,"te.ua":true,"ternopil.ua":true,"uz.ua":true,"uzhgorod.ua":true,"vinnica.ua":true,"vinnytsia.ua":true,"vn.ua":true,"volyn.ua":true,"yalta.ua":true,"zaporizhzhe.ua":true,"zaporizhzhia.ua":true,"zhitomir.ua":true,"zhytomyr.ua":true,"zp.ua":true,"zt.ua":true,"ug":true,"co.ug":true,"or.ug":true,"ac.ug":true,"sc.ug":true,"go.ug":true,"ne.ug":true,"com.ug":true,"org.ug":true,"uk":true,"ac.uk":true,"co.uk":true,"gov.uk":true,"ltd.uk":true,"me.uk":true,"net.uk":true,"nhs.uk":true,"org.uk":true,"plc.uk":true,"police.uk":true,"*.sch.uk":true,"us":true,"dni.us":true,"fed.us":true,"isa.us":true,"kids.us":true,"nsn.us":true,"ak.us":true,"al.us":true,"ar.us":true,"as.us":true,"az.us":true,"ca.us":true,"co.us":true,"ct.us":true,"dc.us":true,"de.us":true,"fl.us":true,"ga.us":true,"gu.us":true,"hi.us":true,"ia.us":true,"id.us":true,"il.us":true,"in.us":true,"ks.us":true,"ky.us":true,"la.us":true,"ma.us":true,"md.us":true,"me.us":true,"mi.us":true,"mn.us":true,"mo.us":true,"ms.us":true,"mt.us":true,"nc.us":true,"nd.us":true,"ne.us":true,"nh.us":true,"nj.us":true,"nm.us":true,"nv.us":true,"ny.us":true,"oh.us":true,"ok.us":true,"or.us":true,"pa.us":true,"pr.us":true,"ri.us":true,"sc.us":true,"sd.us":true,"tn.us":true,"tx.us":true,"ut.us":true,"vi.us":true,"vt.us":true,"va.us":true,"wa.us":true,"wi.us":true,"wv.us":true,"wy.us":true,"k12.ak.us":true,"k12.al.us":true,"k12.ar.us":true,"k12.as.us":true,"k12.az.us":true,"k12.ca.us":true,"k12.co.us":true,"k12.ct.us":true,"k12.dc.us":true,"k12.de.us":true,"k12.fl.us":true,"k12.ga.us":true,"k12.gu.us":true,"k12.ia.us":true,"k12.id.us":true,"k12.il.us":true,"k12.in.us":true,"k12.ks.us":true,"k12.ky.us":true,"k12.la.us":true,"k12.ma.us":true,"k12.md.us":true,"k12.me.us":true,"k12.mi.us":true,"k12.mn.us":true,"k12.mo.us":true,"k12.ms.us":true,"k12.mt.us":true,"k12.nc.us":true,"k12.ne.us":true,"k12.nh.us":true,"k12.nj.us":true,"k12.nm.us":true,"k12.nv.us":true,"k12.ny.us":true,"k12.oh.us":true,"k12.ok.us":true,"k12.or.us":true,"k12.pa.us":true,"k12.pr.us":true,"k12.ri.us":true,"k12.sc.us":true,"k12.tn.us":true,"k12.tx.us":true,"k12.ut.us":true,"k12.vi.us":true,"k12.vt.us":true,"k12.va.us":true,"k12.wa.us":true,"k12.wi.us":true,"k12.wy.us":true,"cc.ak.us":true,"cc.al.us":true,"cc.ar.us":true,"cc.as.us":true,"cc.az.us":true,"cc.ca.us":true,"cc.co.us":true,"cc.ct.us":true,"cc.dc.us":true,"cc.de.us":true,"cc.fl.us":true,"cc.ga.us":true,"cc.gu.us":true,"cc.hi.us":true,"cc.ia.us":true,"cc.id.us":true,"cc.il.us":true,"cc.in.us":true,"cc.ks.us":true,"cc.ky.us":true,"cc.la.us":true,"cc.ma.us":true,"cc.md.us":true,"cc.me.us":true,"cc.mi.us":true,"cc.mn.us":true,"cc.mo.us":true,"cc.ms.us":true,"cc.mt.us":true,"cc.nc.us":true,"cc.nd.us":true,"cc.ne.us":true,"cc.nh.us":true,"cc.nj.us":true,"cc.nm.us":true,"cc.nv.us":true,"cc.ny.us":true,"cc.oh.us":true,"cc.ok.us":true,"cc.or.us":true,"cc.pa.us":true,"cc.pr.us":true,"cc.ri.us":true,"cc.sc.us":true,"cc.sd.us":true,"cc.tn.us":true,"cc.tx.us":true,"cc.ut.us":true,"cc.vi.us":true,"cc.vt.us":true,"cc.va.us":true,"cc.wa.us":true,"cc.wi.us":true,"cc.wv.us":true,"cc.wy.us":true,"lib.ak.us":true,"lib.al.us":true,"lib.ar.us":true,"lib.as.us":true,"lib.az.us":true,"lib.ca.us":true,"lib.co.us":true,"lib.ct.us":true,"lib.dc.us":true,"lib.de.us":true,"lib.fl.us":true,"lib.ga.us":true,"lib.gu.us":true,"lib.hi.us":true,"lib.ia.us":true,"lib.id.us":true,"lib.il.us":true,"lib.in.us":true,"lib.ks.us":true,"lib.ky.us":true,"lib.la.us":true,"lib.ma.us":true,"lib.md.us":true,"lib.me.us":true,"lib.mi.us":true,"lib.mn.us":true,"lib.mo.us":true,"lib.ms.us":true,"lib.mt.us":true,"lib.nc.us":true,"lib.nd.us":true,"lib.ne.us":true,"lib.nh.us":true,"lib.nj.us":true,"lib.nm.us":true,"lib.nv.us":true,"lib.ny.us":true,"lib.oh.us":true,"lib.ok.us":true,"lib.or.us":true,"lib.pa.us":true,"lib.pr.us":true,"lib.ri.us":true,"lib.sc.us":true,"lib.sd.us":true,"lib.tn.us":true,"lib.tx.us":true,"lib.ut.us":true,"lib.vi.us":true,"lib.vt.us":true,"lib.va.us":true,"lib.wa.us":true,"lib.wi.us":true,"lib.wy.us":true,"pvt.k12.ma.us":true,"chtr.k12.ma.us":true,"paroch.k12.ma.us":true,"uy":true,"com.uy":true,"edu.uy":true,"gub.uy":true,"mil.uy":true,"net.uy":true,"org.uy":true,"uz":true,"co.uz":true,"com.uz":true,"net.uz":true,"org.uz":true,"va":true,"vc":true,"com.vc":true,"net.vc":true,"org.vc":true,"gov.vc":true,"mil.vc":true,"edu.vc":true,"ve":true,"arts.ve":true,"co.ve":true,"com.ve":true,"e12.ve":true,"edu.ve":true,"firm.ve":true,"gob.ve":true,"gov.ve":true,"info.ve":true,"int.ve":true,"mil.ve":true,"net.ve":true,"org.ve":true,"rec.ve":true,"store.ve":true,"tec.ve":true,"web.ve":true,"vg":true,"vi":true,"co.vi":true,"com.vi":true,"k12.vi":true,"net.vi":true,"org.vi":true,"vn":true,"com.vn":true,"net.vn":true,"org.vn":true,"edu.vn":true,"gov.vn":true,"int.vn":true,"ac.vn":true,"biz.vn":true,"info.vn":true,"name.vn":true,"pro.vn":true,"health.vn":true,"vu":true,"com.vu":true,"edu.vu":true,"net.vu":true,"org.vu":true,"wf":true,"ws":true,"com.ws":true,"net.ws":true,"org.ws":true,"gov.ws":true,"edu.ws":true,"yt":true,"xn--mgbaam7a8h":true,"xn--y9a3aq":true,"xn--54b7fta0cc":true,"xn--90ais":true,"xn--fiqs8s":true,"xn--fiqz9s":true,"xn--lgbbat1ad8j":true,"xn--wgbh1c":true,"xn--node":true,"xn--qxam":true,"xn--j6w193g":true,"xn--h2brj9c":true,"xn--mgbbh1a71e":true,"xn--fpcrj9c3d":true,"xn--gecrj9c":true,"xn--s9brj9c":true,"xn--45brj9c":true,"xn--xkc2dl3a5ee0h":true,"xn--mgba3a4f16a":true,"xn--mgba3a4fra":true,"xn--mgbtx2b":true,"xn--mgbayh7gpa":true,"xn--3e0b707e":true,"xn--80ao21a":true,"xn--fzc2c9e2c":true,"xn--xkc2al3hye2a":true,"xn--mgbc0a9azcg":true,"xn--d1alf":true,"xn--l1acc":true,"xn--mix891f":true,"xn--mix082f":true,"xn--mgbx4cd0ab":true,"xn--mgb9awbf":true,"xn--mgbai9azgqp6j":true,"xn--mgbai9a5eva00b":true,"xn--ygbi2ammx":true,"xn--90a3ac":true,"xn--o1ac.xn--90a3ac":true,"xn--c1avg.xn--90a3ac":true,"xn--90azh.xn--90a3ac":true,"xn--d1at.xn--90a3ac":true,"xn--o1ach.xn--90a3ac":true,"xn--80au.xn--90a3ac":true,"xn--p1ai":true,"xn--wgbl6a":true,"xn--mgberp4a5d4ar":true,"xn--mgberp4a5d4a87g":true,"xn--mgbqly7c0a67fbc":true,"xn--mgbqly7cvafr":true,"xn--mgbpl2fh":true,"xn--yfro4i67o":true,"xn--clchc0ea0b2g2a9gcd":true,"xn--ogbpf8fl":true,"xn--mgbtf8fl":true,"xn--o3cw4h":true,"xn--pgbs0dh":true,"xn--kpry57d":true,"xn--kprw13d":true,"xn--nnx388a":true,"xn--j1amh":true,"xn--mgb2ddes":true,"xxx":true,"*.ye":true,"ac.za":true,"agrica.za":true,"alt.za":true,"co.za":true,"edu.za":true,"gov.za":true,"grondar.za":true,"law.za":true,"mil.za":true,"net.za":true,"ngo.za":true,"nis.za":true,"nom.za":true,"org.za":true,"school.za":true,"tm.za":true,"web.za":true,"*.zm":true,"*.zw":true,"aaa":true,"aarp":true,"abarth":true,"abb":true,"abbott":true,"abbvie":true,"abc":true,"able":true,"abogado":true,"abudhabi":true,"academy":true,"accenture":true,"accountant":true,"accountants":true,"aco":true,"active":true,"actor":true,"adac":true,"ads":true,"adult":true,"aeg":true,"aetna":true,"afamilycompany":true,"afl":true,"africa":true,"africamagic":true,"agakhan":true,"agency":true,"aig":true,"aigo":true,"airbus":true,"airforce":true,"airtel":true,"akdn":true,"alfaromeo":true,"alibaba":true,"alipay":true,"allfinanz":true,"allstate":true,"ally":true,"alsace":true,"alstom":true,"americanexpress":true,"americanfamily":true,"amex":true,"amfam":true,"amica":true,"amsterdam":true,"analytics":true,"android":true,"anquan":true,"anz":true,"aol":true,"apartments":true,"app":true,"apple":true,"aquarelle":true,"aramco":true,"archi":true,"army":true,"arte":true,"asda":true,"associates":true,"athleta":true,"attorney":true,"auction":true,"audi":true,"audible":true,"audio":true,"auspost":true,"author":true,"auto":true,"autos":true,"avianca":true,"aws":true,"axa":true,"azure":true,"baby":true,"baidu":true,"banamex":true,"bananarepublic":true,"band":true,"bank":true,"bar":true,"barcelona":true,"barclaycard":true,"barclays":true,"barefoot":true,"bargains":true,"basketball":true,"bauhaus":true,"bayern":true,"bbc":true,"bbt":true,"bbva":true,"bcg":true,"bcn":true,"beats":true,"beer":true,"bentley":true,"berlin":true,"best":true,"bestbuy":true,"bet":true,"bharti":true,"bible":true,"bid":true,"bike":true,"bing":true,"bingo":true,"bio":true,"black":true,"blackfriday":true,"blanco":true,"blockbuster":true,"blog":true,"bloomberg":true,"blue":true,"bms":true,"bmw":true,"bnl":true,"bnpparibas":true,"boats":true,"boehringer":true,"bofa":true,"bom":true,"bond":true,"boo":true,"book":true,"booking":true,"boots":true,"bosch":true,"bostik":true,"bot":true,"boutique":true,"bradesco":true,"bridgestone":true,"broadway":true,"broker":true,"brother":true,"brussels":true,"budapest":true,"bugatti":true,"build":true,"builders":true,"business":true,"buy":true,"buzz":true,"bzh":true,"cab":true,"cafe":true,"cal":true,"call":true,"calvinklein":true,"camera":true,"camp":true,"cancerresearch":true,"canon":true,"capetown":true,"capital":true,"capitalone":true,"car":true,"caravan":true,"cards":true,"care":true,"career":true,"careers":true,"cars":true,"cartier":true,"casa":true,"case":true,"caseih":true,"cash":true,"casino":true,"catering":true,"cba":true,"cbn":true,"cbre":true,"cbs":true,"ceb":true,"center":true,"ceo":true,"cern":true,"cfa":true,"cfd":true,"chanel":true,"channel":true,"chase":true,"chat":true,"cheap":true,"chintai":true,"chloe":true,"christmas":true,"chrome":true,"chrysler":true,"church":true,"cipriani":true,"circle":true,"cisco":true,"citadel":true,"citi":true,"citic":true,"city":true,"cityeats":true,"claims":true,"cleaning":true,"click":true,"clinic":true,"clothing":true,"cloud":true,"club":true,"clubmed":true,"coach":true,"codes":true,"coffee":true,"college":true,"cologne":true,"comcast":true,"commbank":true,"community":true,"company":true,"computer":true,"comsec":true,"condos":true,"construction":true,"consulting":true,"contact":true,"contractors":true,"cooking":true,"cookingchannel":true,"cool":true,"corsica":true,"country":true,"coupon":true,"coupons":true,"courses":true,"credit":true,"creditcard":true,"creditunion":true,"cricket":true,"crown":true,"crs":true,"cruises":true,"csc":true,"cuisinella":true,"cymru":true,"cyou":true,"dabur":true,"dad":true,"dance":true,"date":true,"dating":true,"datsun":true,"day":true,"dclk":true,"dds":true,"deal":true,"dealer":true,"deals":true,"degree":true,"delivery":true,"dell":true,"deloitte":true,"delta":true,"democrat":true,"dental":true,"dentist":true,"desi":true,"design":true,"dev":true,"dhl":true,"diamonds":true,"diet":true,"digital":true,"direct":true,"directory":true,"discount":true,"discover":true,"dish":true,"dnp":true,"docs":true,"dodge":true,"dog":true,"doha":true,"domains":true,"doosan":true,"dot":true,"download":true,"drive":true,"dstv":true,"dtv":true,"dubai":true,"duck":true,"dunlop":true,"duns":true,"dupont":true,"durban":true,"dvag":true,"dwg":true,"earth":true,"eat":true,"edeka":true,"education":true,"email":true,"emerck":true,"emerson":true,"energy":true,"engineer":true,"engineering":true,"enterprises":true,"epost":true,"epson":true,"equipment":true,"ericsson":true,"erni":true,"esq":true,"estate":true,"esurance":true,"etisalat":true,"eurovision":true,"eus":true,"events":true,"everbank":true,"exchange":true,"expert":true,"exposed":true,"express":true,"extraspace":true,"fage":true,"fail":true,"fairwinds":true,"faith":true,"family":true,"fan":true,"fans":true,"farm":true,"farmers":true,"fashion":true,"fast":true,"fedex":true,"feedback":true,"ferrari":true,"ferrero":true,"fiat":true,"fidelity":true,"fido":true,"film":true,"final":true,"finance":true,"financial":true,"fire":true,"firestone":true,"firmdale":true,"fish":true,"fishing":true,"fit":true,"fitness":true,"flickr":true,"flights":true,"flir":true,"florist":true,"flowers":true,"flsmidth":true,"fly":true,"foo":true,"foodnetwork":true,"football":true,"ford":true,"forex":true,"forsale":true,"forum":true,"foundation":true,"fox":true,"fresenius":true,"frl":true,"frogans":true,"frontdoor":true,"frontier":true,"ftr":true,"fujitsu":true,"fujixerox":true,"fund":true,"furniture":true,"futbol":true,"fyi":true,"gal":true,"gallery":true,"gallo":true,"gallup":true,"game":true,"games":true,"gap":true,"garden":true,"gbiz":true,"gdn":true,"gea":true,"gent":true,"genting":true,"george":true,"ggee":true,"gift":true,"gifts":true,"gives":true,"giving":true,"glade":true,"glass":true,"gle":true,"global":true,"globo":true,"gmail":true,"gmo":true,"gmx":true,"godaddy":true,"gold":true,"goldpoint":true,"golf":true,"goo":true,"goodhands":true,"goodyear":true,"goog":true,"google":true,"gop":true,"got":true,"gotv":true,"grainger":true,"graphics":true,"gratis":true,"green":true,"gripe":true,"group":true,"guardian":true,"gucci":true,"guge":true,"guide":true,"guitars":true,"guru":true,"hamburg":true,"hangout":true,"haus":true,"hbo":true,"hdfc":true,"hdfcbank":true,"health":true,"healthcare":true,"help":true,"helsinki":true,"here":true,"hermes":true,"hgtv":true,"hiphop":true,"hisamitsu":true,"hitachi":true,"hiv":true,"hkt":true,"hockey":true,"holdings":true,"holiday":true,"homedepot":true,"homegoods":true,"homes":true,"homesense":true,"honda":true,"honeywell":true,"horse":true,"host":true,"hosting":true,"hot":true,"hoteles":true,"hotmail":true,"house":true,"how":true,"hsbc":true,"htc":true,"hughes":true,"hyatt":true,"hyundai":true,"ibm":true,"icbc":true,"ice":true,"icu":true,"ieee":true,"ifm":true,"iinet":true,"ikano":true,"imamat":true,"imdb":true,"immo":true,"immobilien":true,"industries":true,"infiniti":true,"ing":true,"ink":true,"institute":true,"insurance":true,"insure":true,"intel":true,"international":true,"intuit":true,"investments":true,"ipiranga":true,"irish":true,"iselect":true,"ismaili":true,"ist":true,"istanbul":true,"itau":true,"itv":true,"iveco":true,"iwc":true,"jaguar":true,"java":true,"jcb":true,"jcp":true,"jeep":true,"jetzt":true,"jewelry":true,"jio":true,"jlc":true,"jll":true,"jmp":true,"jnj":true,"joburg":true,"jot":true,"joy":true,"jpmorgan":true,"jprs":true,"juegos":true,"juniper":true,"kaufen":true,"kddi":true,"kerryhotels":true,"kerrylogistics":true,"kerryproperties":true,"kfh":true,"kia":true,"kim":true,"kinder":true,"kindle":true,"kitchen":true,"kiwi":true,"koeln":true,"komatsu":true,"kosher":true,"kpmg":true,"kpn":true,"krd":true,"kred":true,"kuokgroup":true,"kyknet":true,"kyoto":true,"lacaixa":true,"ladbrokes":true,"lamborghini":true,"lancaster":true,"lancia":true,"lancome":true,"land":true,"landrover":true,"lanxess":true,"lasalle":true,"lat":true,"latino":true,"latrobe":true,"law":true,"lawyer":true,"lds":true,"lease":true,"leclerc":true,"lefrak":true,"legal":true,"lego":true,"lexus":true,"lgbt":true,"liaison":true,"lidl":true,"life":true,"lifeinsurance":true,"lifestyle":true,"lighting":true,"like":true,"lilly":true,"limited":true,"limo":true,"lincoln":true,"linde":true,"link":true,"lipsy":true,"live":true,"living":true,"lixil":true,"loan":true,"loans":true,"locker":true,"locus":true,"loft":true,"lol":true,"london":true,"lotte":true,"lotto":true,"love":true,"lpl":true,"lplfinancial":true,"ltd":true,"ltda":true,"lundbeck":true,"lupin":true,"luxe":true,"luxury":true,"macys":true,"madrid":true,"maif":true,"maison":true,"makeup":true,"man":true,"management":true,"mango":true,"market":true,"marketing":true,"markets":true,"marriott":true,"marshalls":true,"maserati":true,"mattel":true,"mba":true,"mcd":true,"mcdonalds":true,"mckinsey":true,"med":true,"media":true,"meet":true,"melbourne":true,"meme":true,"memorial":true,"men":true,"menu":true,"meo":true,"metlife":true,"miami":true,"microsoft":true,"mini":true,"mint":true,"mit":true,"mitsubishi":true,"mlb":true,"mls":true,"mma":true,"mnet":true,"mobily":true,"moda":true,"moe":true,"moi":true,"mom":true,"monash":true,"money":true,"monster":true,"montblanc":true,"mopar":true,"mormon":true,"mortgage":true,"moscow":true,"moto":true,"motorcycles":true,"mov":true,"movie":true,"movistar":true,"msd":true,"mtn":true,"mtpc":true,"mtr":true,"multichoice":true,"mutual":true,"mutuelle":true,"mzansimagic":true,"nab":true,"nadex":true,"nagoya":true,"naspers":true,"nationwide":true,"natura":true,"navy":true,"nba":true,"nec":true,"netbank":true,"netflix":true,"network":true,"neustar":true,"new":true,"newholland":true,"news":true,"next":true,"nextdirect":true,"nexus":true,"nfl":true,"ngo":true,"nhk":true,"nico":true,"nike":true,"nikon":true,"ninja":true,"nissan":true,"nokia":true,"northwesternmutual":true,"norton":true,"now":true,"nowruz":true,"nowtv":true,"nra":true,"nrw":true,"ntt":true,"nyc":true,"obi":true,"observer":true,"off":true,"office":true,"okinawa":true,"olayan":true,"olayangroup":true,"oldnavy":true,"ollo":true,"omega":true,"one":true,"ong":true,"onl":true,"online":true,"onyourside":true,"ooo":true,"open":true,"oracle":true,"orange":true,"organic":true,"orientexpress":true,"osaka":true,"otsuka":true,"ott":true,"ovh":true,"page":true,"pamperedchef":true,"panasonic":true,"panerai":true,"paris":true,"pars":true,"partners":true,"parts":true,"party":true,"passagens":true,"pay":true,"payu":true,"pccw":true,"pet":true,"pfizer":true,"pharmacy":true,"philips":true,"photo":true,"photography":true,"photos":true,"physio":true,"piaget":true,"pics":true,"pictet":true,"pictures":true,"pid":true,"pin":true,"ping":true,"pink":true,"pioneer":true,"pizza":true,"place":true,"play":true,"playstation":true,"plumbing":true,"plus":true,"pnc":true,"pohl":true,"poker":true,"politie":true,"porn":true,"pramerica":true,"praxi":true,"press":true,"prime":true,"prod":true,"productions":true,"prof":true,"progressive":true,"promo":true,"properties":true,"property":true,"protection":true,"pru":true,"prudential":true,"pub":true,"qpon":true,"quebec":true,"quest":true,"qvc":true,"racing":true,"raid":true,"read":true,"realestate":true,"realtor":true,"realty":true,"recipes":true,"red":true,"redstone":true,"redumbrella":true,"rehab":true,"reise":true,"reisen":true,"reit":true,"reliance":true,"ren":true,"rent":true,"rentals":true,"repair":true,"report":true,"republican":true,"rest":true,"restaurant":true,"review":true,"reviews":true,"rexroth":true,"rich":true,"richardli":true,"ricoh":true,"rightathome":true,"ril":true,"rio":true,"rip":true,"rocher":true,"rocks":true,"rodeo":true,"rogers":true,"room":true,"rsvp":true,"ruhr":true,"run":true,"rwe":true,"ryukyu":true,"saarland":true,"safe":true,"safety":true,"sakura":true,"sale":true,"salon":true,"samsclub":true,"samsung":true,"sandvik":true,"sandvikcoromant":true,"sanofi":true,"sap":true,"sapo":true,"sarl":true,"sas":true,"save":true,"saxo":true,"sbi":true,"sbs":true,"sca":true,"scb":true,"schaeffler":true,"schmidt":true,"scholarships":true,"school":true,"schule":true,"schwarz":true,"science":true,"scjohnson":true,"scor":true,"scot":true,"seat":true,"secure":true,"security":true,"seek":true,"sener":true,"services":true,"ses":true,"seven":true,"sew":true,"sex":true,"sexy":true,"sfr":true,"shangrila":true,"sharp":true,"shaw":true,"shell":true,"shia":true,"shiksha":true,"shoes":true,"shouji":true,"show":true,"showtime":true,"shriram":true,"silk":true,"sina":true,"singles":true,"site":true,"ski":true,"skin":true,"sky":true,"skype":true,"sling":true,"smart":true,"smile":true,"sncf":true,"soccer":true,"social":true,"softbank":true,"software":true,"sohu":true,"solar":true,"solutions":true,"song":true,"sony":true,"soy":true,"space":true,"spiegel":true,"spot":true,"spreadbetting":true,"srl":true,"srt":true,"stada":true,"staples":true,"star":true,"starhub":true,"statebank":true,"statefarm":true,"statoil":true,"stc":true,"stcgroup":true,"stockholm":true,"storage":true,"store":true,"studio":true,"study":true,"style":true,"sucks":true,"supersport":true,"supplies":true,"supply":true,"support":true,"surf":true,"surgery":true,"suzuki":true,"swatch":true,"swiftcover":true,"swiss":true,"sydney":true,"symantec":true,"systems":true,"tab":true,"taipei":true,"talk":true,"taobao":true,"target":true,"tatamotors":true,"tatar":true,"tattoo":true,"tax":true,"taxi":true,"tci":true,"tdk":true,"team":true,"tech":true,"technology":true,"telecity":true,"telefonica":true,"temasek":true,"tennis":true,"teva":true,"thd":true,"theater":true,"theatre":true,"theguardian":true,"tiaa":true,"tickets":true,"tienda":true,"tiffany":true,"tips":true,"tires":true,"tirol":true,"tjmaxx":true,"tjx":true,"tkmaxx":true,"tmall":true,"today":true,"tokyo":true,"tools":true,"top":true,"toray":true,"toshiba":true,"total":true,"tours":true,"town":true,"toyota":true,"toys":true,"trade":true,"trading":true,"training":true,"travelchannel":true,"travelers":true,"travelersinsurance":true,"trust":true,"trv":true,"tube":true,"tui":true,"tunes":true,"tushu":true,"tvs":true,"ubank":true,"ubs":true,"uconnect":true,"university":true,"uno":true,"uol":true,"ups":true,"vacations":true,"vana":true,"vanguard":true,"vegas":true,"ventures":true,"verisign":true,"versicherung":true,"vet":true,"viajes":true,"video":true,"vig":true,"viking":true,"villas":true,"vin":true,"vip":true,"virgin":true,"visa":true,"vision":true,"vista":true,"vistaprint":true,"viva":true,"vivo":true,"vlaanderen":true,"vodka":true,"volkswagen":true,"vote":true,"voting":true,"voto":true,"voyage":true,"vuelos":true,"wales":true,"walmart":true,"walter":true,"wang":true,"wanggou":true,"warman":true,"watch":true,"watches":true,"weather":true,"weatherchannel":true,"webcam":true,"weber":true,"website":true,"wed":true,"wedding":true,"weibo":true,"weir":true,"whoswho":true,"wien":true,"wiki":true,"williamhill":true,"win":true,"windows":true,"wine":true,"winners":true,"wme":true,"wolterskluwer":true,"woodside":true,"work":true,"works":true,"world":true,"wtc":true,"wtf":true,"xbox":true,"xerox":true,"xfinity":true,"xihuan":true,"xin":true,"xn--11b4c3d":true,"xn--1ck2e1b":true,"xn--1qqw23a":true,"xn--30rr7y":true,"xn--3bst00m":true,"xn--3ds443g":true,"xn--3oq18vl8pn36a":true,"xn--3pxu8k":true,"xn--42c2d9a":true,"xn--45q11c":true,"xn--4gbrim":true,"xn--4gq48lf9j":true,"xn--55qw42g":true,"xn--55qx5d":true,"xn--5su34j936bgsg":true,"xn--5tzm5g":true,"xn--6frz82g":true,"xn--6qq986b3xl":true,"xn--80adxhks":true,"xn--80asehdb":true,"xn--80aswg":true,"xn--8y0a063a":true,"xn--9dbq2a":true,"xn--9et52u":true,"xn--9krt00a":true,"xn--b4w605ferd":true,"xn--bck1b9a5dre4c":true,"xn--c1avg":true,"xn--c2br7g":true,"xn--cck2b3b":true,"xn--cg4bki":true,"xn--czr694b":true,"xn--czrs0t":true,"xn--czru2d":true,"xn--d1acj3b":true,"xn--eckvdtc9d":true,"xn--efvy88h":true,"xn--estv75g":true,"xn--fct429k":true,"xn--fhbei":true,"xn--fiq228c5hs":true,"xn--fiq64b":true,"xn--fjq720a":true,"xn--flw351e":true,"xn--fzys8d69uvgm":true,"xn--g2xx48c":true,"xn--gckr3f0f":true,"xn--hxt814e":true,"xn--i1b6b1a6a2e":true,"xn--imr513n":true,"xn--io0a7i":true,"xn--j1aef":true,"xn--jlq61u9w7b":true,"xn--jvr189m":true,"xn--kcrx77d1x4a":true,"xn--kpu716f":true,"xn--kput3i":true,"xn--mgba3a3ejt":true,"xn--mgba7c0bbn0a":true,"xn--mgbaakc7dvf":true,"xn--mgbab2bd":true,"xn--mgbb9fbpob":true,"xn--mgbca7dzdo":true,"xn--mgbt3dhd":true,"xn--mk1bu44c":true,"xn--mxtq1m":true,"xn--ngbc5azd":true,"xn--ngbe9e0a":true,"xn--nqv7f":true,"xn--nqv7fs00ema":true,"xn--nyqy26a":true,"xn--p1acf":true,"xn--pbt977c":true,"xn--pssy2u":true,"xn--q9jyb4c":true,"xn--qcka1pmc":true,"xn--rhqv96g":true,"xn--rovu88b":true,"xn--ses554g":true,"xn--t60b56a":true,"xn--tckwe":true,"xn--unup4y":true,"xn--vermgensberater-ctb":true,"xn--vermgensberatung-pwb":true,"xn--vhquv":true,"xn--vuq861b":true,"xn--w4r85el8fhu5dnra":true,"xn--w4rs40l":true,"xn--xhq521b":true,"xn--zfr164b":true,"xperia":true,"xyz":true,"yachts":true,"yahoo":true,"yamaxun":true,"yandex":true,"yodobashi":true,"yoga":true,"yokohama":true,"you":true,"youtube":true,"yun":true,"zappos":true,"zara":true,"zero":true,"zip":true,"zippo":true,"zone":true,"zuerich":true,"cloudfront.net":true,"ap-northeast-1.compute.amazonaws.com":true,"ap-southeast-1.compute.amazonaws.com":true,"ap-southeast-2.compute.amazonaws.com":true,"cn-north-1.compute.amazonaws.cn":true,"compute.amazonaws.cn":true,"compute.amazonaws.com":true,"compute-1.amazonaws.com":true,"eu-west-1.compute.amazonaws.com":true,"eu-central-1.compute.amazonaws.com":true,"sa-east-1.compute.amazonaws.com":true,"us-east-1.amazonaws.com":true,"us-gov-west-1.compute.amazonaws.com":true,"us-west-1.compute.amazonaws.com":true,"us-west-2.compute.amazonaws.com":true,"z-1.compute-1.amazonaws.com":true,"z-2.compute-1.amazonaws.com":true,"elasticbeanstalk.com":true,"elb.amazonaws.com":true,"s3.amazonaws.com":true,"s3-ap-northeast-1.amazonaws.com":true,"s3-ap-southeast-1.amazonaws.com":true,"s3-ap-southeast-2.amazonaws.com":true,"s3-external-1.amazonaws.com":true,"s3-external-2.amazonaws.com":true,"s3-fips-us-gov-west-1.amazonaws.com":true,"s3-eu-central-1.amazonaws.com":true,"s3-eu-west-1.amazonaws.com":true,"s3-sa-east-1.amazonaws.com":true,"s3-us-gov-west-1.amazonaws.com":true,"s3-us-west-1.amazonaws.com":true,"s3-us-west-2.amazonaws.com":true,"s3.cn-north-1.amazonaws.com.cn":true,"s3.eu-central-1.amazonaws.com":true,"betainabox.com":true,"ae.org":true,"ar.com":true,"br.com":true,"cn.com":true,"com.de":true,"com.se":true,"de.com":true,"eu.com":true,"gb.com":true,"gb.net":true,"hu.com":true,"hu.net":true,"jp.net":true,"jpn.com":true,"kr.com":true,"mex.com":true,"no.com":true,"qc.com":true,"ru.com":true,"sa.com":true,"se.com":true,"se.net":true,"uk.com":true,"uk.net":true,"us.com":true,"uy.com":true,"za.bz":true,"za.com":true,"africa.com":true,"gr.com":true,"in.net":true,"us.org":true,"co.com":true,"c.la":true,"cloudcontrolled.com":true,"cloudcontrolapp.com":true,"co.ca":true,"c.cdn77.org":true,"cdn77-ssl.net":true,"r.cdn77.net":true,"rsc.cdn77.org":true,"ssl.origin.cdn77-secure.org":true,"co.nl":true,"co.no":true,"*.platform.sh":true,"cupcake.is":true,"dreamhosters.com":true,"duckdns.org":true,"dyndns-at-home.com":true,"dyndns-at-work.com":true,"dyndns-blog.com":true,"dyndns-free.com":true,"dyndns-home.com":true,"dyndns-ip.com":true,"dyndns-mail.com":true,"dyndns-office.com":true,"dyndns-pics.com":true,"dyndns-remote.com":true,"dyndns-server.com":true,"dyndns-web.com":true,"dyndns-wiki.com":true,"dyndns-work.com":true,"dyndns.biz":true,"dyndns.info":true,"dyndns.org":true,"dyndns.tv":true,"at-band-camp.net":true,"ath.cx":true,"barrel-of-knowledge.info":true,"barrell-of-knowledge.info":true,"better-than.tv":true,"blogdns.com":true,"blogdns.net":true,"blogdns.org":true,"blogsite.org":true,"boldlygoingnowhere.org":true,"broke-it.net":true,"buyshouses.net":true,"cechire.com":true,"dnsalias.com":true,"dnsalias.net":true,"dnsalias.org":true,"dnsdojo.com":true,"dnsdojo.net":true,"dnsdojo.org":true,"does-it.net":true,"doesntexist.com":true,"doesntexist.org":true,"dontexist.com":true,"dontexist.net":true,"dontexist.org":true,"doomdns.com":true,"doomdns.org":true,"dvrdns.org":true,"dyn-o-saur.com":true,"dynalias.com":true,"dynalias.net":true,"dynalias.org":true,"dynathome.net":true,"dyndns.ws":true,"endofinternet.net":true,"endofinternet.org":true,"endoftheinternet.org":true,"est-a-la-maison.com":true,"est-a-la-masion.com":true,"est-le-patron.com":true,"est-mon-blogueur.com":true,"for-better.biz":true,"for-more.biz":true,"for-our.info":true,"for-some.biz":true,"for-the.biz":true,"forgot.her.name":true,"forgot.his.name":true,"from-ak.com":true,"from-al.com":true,"from-ar.com":true,"from-az.net":true,"from-ca.com":true,"from-co.net":true,"from-ct.com":true,"from-dc.com":true,"from-de.com":true,"from-fl.com":true,"from-ga.com":true,"from-hi.com":true,"from-ia.com":true,"from-id.com":true,"from-il.com":true,"from-in.com":true,"from-ks.com":true,"from-ky.com":true,"from-la.net":true,"from-ma.com":true,"from-md.com":true,"from-me.org":true,"from-mi.com":true,"from-mn.com":true,"from-mo.com":true,"from-ms.com":true,"from-mt.com":true,"from-nc.com":true,"from-nd.com":true,"from-ne.com":true,"from-nh.com":true,"from-nj.com":true,"from-nm.com":true,"from-nv.com":true,"from-ny.net":true,"from-oh.com":true,"from-ok.com":true,"from-or.com":true,"from-pa.com":true,"from-pr.com":true,"from-ri.com":true,"from-sc.com":true,"from-sd.com":true,"from-tn.com":true,"from-tx.com":true,"from-ut.com":true,"from-va.com":true,"from-vt.com":true,"from-wa.com":true,"from-wi.com":true,"from-wv.com":true,"from-wy.com":true,"ftpaccess.cc":true,"fuettertdasnetz.de":true,"game-host.org":true,"game-server.cc":true,"getmyip.com":true,"gets-it.net":true,"go.dyndns.org":true,"gotdns.com":true,"gotdns.org":true,"groks-the.info":true,"groks-this.info":true,"ham-radio-op.net":true,"here-for-more.info":true,"hobby-site.com":true,"hobby-site.org":true,"home.dyndns.org":true,"homedns.org":true,"homeftp.net":true,"homeftp.org":true,"homeip.net":true,"homelinux.com":true,"homelinux.net":true,"homelinux.org":true,"homeunix.com":true,"homeunix.net":true,"homeunix.org":true,"iamallama.com":true,"in-the-band.net":true,"is-a-anarchist.com":true,"is-a-blogger.com":true,"is-a-bookkeeper.com":true,"is-a-bruinsfan.org":true,"is-a-bulls-fan.com":true,"is-a-candidate.org":true,"is-a-caterer.com":true,"is-a-celticsfan.org":true,"is-a-chef.com":true,"is-a-chef.net":true,"is-a-chef.org":true,"is-a-conservative.com":true,"is-a-cpa.com":true,"is-a-cubicle-slave.com":true,"is-a-democrat.com":true,"is-a-designer.com":true,"is-a-doctor.com":true,"is-a-financialadvisor.com":true,"is-a-geek.com":true,"is-a-geek.net":true,"is-a-geek.org":true,"is-a-green.com":true,"is-a-guru.com":true,"is-a-hard-worker.com":true,"is-a-hunter.com":true,"is-a-knight.org":true,"is-a-landscaper.com":true,"is-a-lawyer.com":true,"is-a-liberal.com":true,"is-a-libertarian.com":true,"is-a-linux-user.org":true,"is-a-llama.com":true,"is-a-musician.com":true,"is-a-nascarfan.com":true,"is-a-nurse.com":true,"is-a-painter.com":true,"is-a-patsfan.org":true,"is-a-personaltrainer.com":true,"is-a-photographer.com":true,"is-a-player.com":true,"is-a-republican.com":true,"is-a-rockstar.com":true,"is-a-socialist.com":true,"is-a-soxfan.org":true,"is-a-student.com":true,"is-a-teacher.com":true,"is-a-techie.com":true,"is-a-therapist.com":true,"is-an-accountant.com":true,"is-an-actor.com":true,"is-an-actress.com":true,"is-an-anarchist.com":true,"is-an-artist.com":true,"is-an-engineer.com":true,"is-an-entertainer.com":true,"is-by.us":true,"is-certified.com":true,"is-found.org":true,"is-gone.com":true,"is-into-anime.com":true,"is-into-cars.com":true,"is-into-cartoons.com":true,"is-into-games.com":true,"is-leet.com":true,"is-lost.org":true,"is-not-certified.com":true,"is-saved.org":true,"is-slick.com":true,"is-uberleet.com":true,"is-very-bad.org":true,"is-very-evil.org":true,"is-very-good.org":true,"is-very-nice.org":true,"is-very-sweet.org":true,"is-with-theband.com":true,"isa-geek.com":true,"isa-geek.net":true,"isa-geek.org":true,"isa-hockeynut.com":true,"issmarterthanyou.com":true,"isteingeek.de":true,"istmein.de":true,"kicks-ass.net":true,"kicks-ass.org":true,"knowsitall.info":true,"land-4-sale.us":true,"lebtimnetz.de":true,"leitungsen.de":true,"likes-pie.com":true,"likescandy.com":true,"merseine.nu":true,"mine.nu":true,"misconfused.org":true,"mypets.ws":true,"myphotos.cc":true,"neat-url.com":true,"office-on-the.net":true,"on-the-web.tv":true,"podzone.net":true,"podzone.org":true,"readmyblog.org":true,"saves-the-whales.com":true,"scrapper-site.net":true,"scrapping.cc":true,"selfip.biz":true,"selfip.com":true,"selfip.info":true,"selfip.net":true,"selfip.org":true,"sells-for-less.com":true,"sells-for-u.com":true,"sells-it.net":true,"sellsyourhome.org":true,"servebbs.com":true,"servebbs.net":true,"servebbs.org":true,"serveftp.net":true,"serveftp.org":true,"servegame.org":true,"shacknet.nu":true,"simple-url.com":true,"space-to-rent.com":true,"stuff-4-sale.org":true,"stuff-4-sale.us":true,"teaches-yoga.com":true,"thruhere.net":true,"traeumtgerade.de":true,"webhop.biz":true,"webhop.info":true,"webhop.net":true,"webhop.org":true,"worse-than.tv":true,"writesthisblog.com":true,"eu.org":true,"al.eu.org":true,"asso.eu.org":true,"at.eu.org":true,"au.eu.org":true,"be.eu.org":true,"bg.eu.org":true,"ca.eu.org":true,"cd.eu.org":true,"ch.eu.org":true,"cn.eu.org":true,"cy.eu.org":true,"cz.eu.org":true,"de.eu.org":true,"dk.eu.org":true,"edu.eu.org":true,"ee.eu.org":true,"es.eu.org":true,"fi.eu.org":true,"fr.eu.org":true,"gr.eu.org":true,"hr.eu.org":true,"hu.eu.org":true,"ie.eu.org":true,"il.eu.org":true,"in.eu.org":true,"int.eu.org":true,"is.eu.org":true,"it.eu.org":true,"jp.eu.org":true,"kr.eu.org":true,"lt.eu.org":true,"lu.eu.org":true,"lv.eu.org":true,"mc.eu.org":true,"me.eu.org":true,"mk.eu.org":true,"mt.eu.org":true,"my.eu.org":true,"net.eu.org":true,"ng.eu.org":true,"nl.eu.org":true,"no.eu.org":true,"nz.eu.org":true,"paris.eu.org":true,"pl.eu.org":true,"pt.eu.org":true,"q-a.eu.org":true,"ro.eu.org":true,"ru.eu.org":true,"se.eu.org":true,"si.eu.org":true,"sk.eu.org":true,"tr.eu.org":true,"uk.eu.org":true,"us.eu.org":true,"a.ssl.fastly.net":true,"b.ssl.fastly.net":true,"global.ssl.fastly.net":true,"a.prod.fastly.net":true,"global.prod.fastly.net":true,"firebaseapp.com":true,"flynnhub.com":true,"service.gov.uk":true,"github.io":true,"githubusercontent.com":true,"ro.com":true,"appspot.com":true,"blogspot.ae":true,"blogspot.al":true,"blogspot.am":true,"blogspot.ba":true,"blogspot.be":true,"blogspot.bg":true,"blogspot.bj":true,"blogspot.ca":true,"blogspot.cf":true,"blogspot.ch":true,"blogspot.cl":true,"blogspot.co.at":true,"blogspot.co.id":true,"blogspot.co.il":true,"blogspot.co.ke":true,"blogspot.co.nz":true,"blogspot.co.uk":true,"blogspot.co.za":true,"blogspot.com":true,"blogspot.com.ar":true,"blogspot.com.au":true,"blogspot.com.br":true,"blogspot.com.by":true,"blogspot.com.co":true,"blogspot.com.cy":true,"blogspot.com.ee":true,"blogspot.com.eg":true,"blogspot.com.es":true,"blogspot.com.mt":true,"blogspot.com.ng":true,"blogspot.com.tr":true,"blogspot.com.uy":true,"blogspot.cv":true,"blogspot.cz":true,"blogspot.de":true,"blogspot.dk":true,"blogspot.fi":true,"blogspot.fr":true,"blogspot.gr":true,"blogspot.hk":true,"blogspot.hr":true,"blogspot.hu":true,"blogspot.ie":true,"blogspot.in":true,"blogspot.is":true,"blogspot.it":true,"blogspot.jp":true,"blogspot.kr":true,"blogspot.li":true,"blogspot.lt":true,"blogspot.lu":true,"blogspot.md":true,"blogspot.mk":true,"blogspot.mr":true,"blogspot.mx":true,"blogspot.my":true,"blogspot.nl":true,"blogspot.no":true,"blogspot.pe":true,"blogspot.pt":true,"blogspot.qa":true,"blogspot.re":true,"blogspot.ro":true,"blogspot.rs":true,"blogspot.ru":true,"blogspot.se":true,"blogspot.sg":true,"blogspot.si":true,"blogspot.sk":true,"blogspot.sn":true,"blogspot.td":true,"blogspot.tw":true,"blogspot.ug":true,"blogspot.vn":true,"codespot.com":true,"googleapis.com":true,"googlecode.com":true,"pagespeedmobilizer.com":true,"withgoogle.com":true,"withyoutube.com":true,"herokuapp.com":true,"herokussl.com":true,"iki.fi":true,"biz.at":true,"info.at":true,"co.pl":true,"azurewebsites.net":true,"azure-mobile.net":true,"cloudapp.net":true,"bmoattachments.org":true,"4u.com":true,"nfshost.com":true,"nyc.mn":true,"nid.io":true,"operaunite.com":true,"outsystemscloud.com":true,"art.pl":true,"gliwice.pl":true,"krakow.pl":true,"poznan.pl":true,"wroc.pl":true,"zakopane.pl":true,"pantheon.io":true,"gotpantheon.com":true,"priv.at":true,"qa2.com":true,"rhcloud.com":true,"sandcats.io":true,"biz.ua":true,"co.ua":true,"pp.ua":true,"sinaapp.com":true,"vipsinaapp.com":true,"1kapp.com":true,"gda.pl":true,"gdansk.pl":true,"gdynia.pl":true,"med.pl":true,"sopot.pl":true,"hk.com":true,"hk.org":true,"ltd.hk":true,"inc.hk":true,"yolasite.com":true,"za.net":true,"za.org":true}); - -// END of automatically generated file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/lib/store.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/lib/store.js deleted file mode 100644 index bce52925..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/lib/store.js +++ /dev/null @@ -1,71 +0,0 @@ -/*! - * Copyright (c) 2015, Salesforce.com, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. 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. - * - * 3. Neither the name of Salesforce.com 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 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. - */ -'use strict'; -/*jshint unused:false */ - -function Store() { -} -exports.Store = Store; - -// Stores may be synchronous, but are still required to use a -// Continuation-Passing Style API. The CookieJar itself will expose a "*Sync" -// API that converts from synchronous-callbacks to imperative style. -Store.prototype.synchronous = false; - -Store.prototype.findCookie = function(domain, path, key, cb) { - throw new Error('findCookie is not implemented'); -}; - -Store.prototype.findCookies = function(domain, path, cb) { - throw new Error('findCookies is not implemented'); -}; - -Store.prototype.putCookie = function(cookie, cb) { - throw new Error('putCookie is not implemented'); -}; - -Store.prototype.updateCookie = function(oldCookie, newCookie, cb) { - // recommended default implementation: - // return this.putCookie(newCookie, cb); - throw new Error('updateCookie is not implemented'); -}; - -Store.prototype.removeCookie = function(domain, path, key, cb) { - throw new Error('removeCookie is not implemented'); -}; - -Store.prototype.removeCookies = function(domain, path, cb) { - throw new Error('removeCookies is not implemented'); -}; - -Store.prototype.getAllCookies = function(cb) { - throw new Error('getAllCookies is not implemented (therefore jar cannot be serialized)'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt deleted file mode 100644 index a41e0a7e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Mathias Bynens - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/README.md deleted file mode 100644 index 7ad7d1fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/README.md +++ /dev/null @@ -1,176 +0,0 @@ -# Punycode.js [![Build status](https://travis-ci.org/bestiejs/punycode.js.svg?branch=master)](https://travis-ci.org/bestiejs/punycode.js) [![Code coverage status](http://img.shields.io/coveralls/bestiejs/punycode.js/master.svg)](https://coveralls.io/r/bestiejs/punycode.js) [![Dependency status](https://gemnasium.com/bestiejs/punycode.js.svg)](https://gemnasium.com/bestiejs/punycode.js) - -A robust Punycode converter that fully complies to [RFC 3492](https://tools.ietf.org/html/rfc3492) and [RFC 5891](https://tools.ietf.org/html/rfc5891), and works on nearly all JavaScript platforms. - -This JavaScript library is the result of comparing, optimizing and documenting different open-source implementations of the Punycode algorithm: - -* [The C example code from RFC 3492](https://tools.ietf.org/html/rfc3492#appendix-C) -* [`punycode.c` by _Markus W. Scherer_ (IBM)](http://opensource.apple.com/source/ICU/ICU-400.42/icuSources/common/punycode.c) -* [`punycode.c` by _Ben Noordhuis_](https://github.com/bnoordhuis/punycode/blob/master/punycode.c) -* [JavaScript implementation by _some_](http://stackoverflow.com/questions/183485/can-anyone-recommend-a-good-free-javascript-for-punycode-to-unicode-conversion/301287#301287) -* [`punycode.js` by _Ben Noordhuis_](https://github.com/joyent/node/blob/426298c8c1c0d5b5224ac3658c41e7c2a3fe9377/lib/punycode.js) (note: [not fully compliant](https://github.com/joyent/node/issues/2072)) - -This project is [bundled](https://github.com/joyent/node/blob/master/lib/punycode.js) with [Node.js v0.6.2+](https://github.com/joyent/node/compare/975f1930b1...61e796decc) and [io.js v1.0.0+](https://github.com/iojs/io.js/blob/v1.x/lib/punycode.js). - -## Installation - -Via [npm](https://www.npmjs.com/) (only required for Node.js releases older than v0.6.2): - -```bash -npm install punycode -``` - -Via [Bower](http://bower.io/): - -```bash -bower install punycode -``` - -Via [Component](https://github.com/component/component): - -```bash -component install bestiejs/punycode.js -``` - -In a browser: - -```html - -``` - -In [Node.js](https://nodejs.org/), [io.js](https://iojs.org/), [Narwhal](http://narwhaljs.org/), and [RingoJS](http://ringojs.org/): - -```js -var punycode = require('punycode'); -``` - -In [Rhino](http://www.mozilla.org/rhino/): - -```js -load('punycode.js'); -``` - -Using an AMD loader like [RequireJS](http://requirejs.org/): - -```js -require( - { - 'paths': { - 'punycode': 'path/to/punycode' - } - }, - ['punycode'], - function(punycode) { - console.log(punycode); - } -); -``` - -## API - -### `punycode.decode(string)` - -Converts a Punycode string of ASCII symbols to a string of Unicode symbols. - -```js -// decode domain name parts -punycode.decode('maana-pta'); // 'mañana' -punycode.decode('--dqo34k'); // '☃-⌘' -``` - -### `punycode.encode(string)` - -Converts a string of Unicode symbols to a Punycode string of ASCII symbols. - -```js -// encode domain name parts -punycode.encode('mañana'); // 'maana-pta' -punycode.encode('☃-⌘'); // '--dqo34k' -``` - -### `punycode.toUnicode(input)` - -Converts a Punycode string representing a domain name or an email address to Unicode. Only the Punycoded parts of the input will be converted, i.e. it doesn’t matter if you call it on a string that has already been converted to Unicode. - -```js -// decode domain names -punycode.toUnicode('xn--maana-pta.com'); -// → 'mañana.com' -punycode.toUnicode('xn----dqo34k.com'); -// → '☃-⌘.com' - -// decode email addresses -punycode.toUnicode('джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq'); -// → 'джумла@джpумлатест.bрфa' -``` - -### `punycode.toASCII(input)` - -Converts a lowercased Unicode string representing a domain name or an email address to Punycode. Only the non-ASCII parts of the input will be converted, i.e. it doesn’t matter if you call it with a domain that’s already in ASCII. - -```js -// encode domain names -punycode.toASCII('mañana.com'); -// → 'xn--maana-pta.com' -punycode.toASCII('☃-⌘.com'); -// → 'xn----dqo34k.com' - -// encode email addresses -punycode.toASCII('джумла@джpумлатест.bрфa'); -// → 'джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq' -``` - -### `punycode.ucs2` - -#### `punycode.ucs2.decode(string)` - -Creates an array containing the numeric code point values of each Unicode symbol in the string. While [JavaScript uses UCS-2 internally](https://mathiasbynens.be/notes/javascript-encoding), this function will convert a pair of surrogate halves (each of which UCS-2 exposes as separate characters) into a single code point, matching UTF-16. - -```js -punycode.ucs2.decode('abc'); -// → [0x61, 0x62, 0x63] -// surrogate pair for U+1D306 TETRAGRAM FOR CENTRE: -punycode.ucs2.decode('\uD834\uDF06'); -// → [0x1D306] -``` - -#### `punycode.ucs2.encode(codePoints)` - -Creates a string based on an array of numeric code point values. - -```js -punycode.ucs2.encode([0x61, 0x62, 0x63]); -// → 'abc' -punycode.ucs2.encode([0x1D306]); -// → '\uD834\uDF06' -``` - -### `punycode.version` - -A string representing the current Punycode.js version number. - -## Unit tests & code coverage - -After cloning this repository, run `npm install --dev` to install the dependencies needed for Punycode.js development and testing. You may want to install Istanbul _globally_ using `npm install istanbul -g`. - -Once that’s done, you can run the unit tests in Node using `npm test` or `node tests/tests.js`. To run the tests in Rhino, Ringo, Narwhal, PhantomJS, and web browsers as well, use `grunt test`. - -To generate the code coverage report, use `grunt cover`. - -Feel free to fork if you see possible improvements! - -## Author - -| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | -|---| -| [Mathias Bynens](https://mathiasbynens.be/) | - -## Contributors - -| [![twitter/jdalton](https://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](https://twitter.com/jdalton "Follow @jdalton on Twitter") | -|---| -| [John-David Dalton](http://allyoucanleet.com/) | - -## License - -Punycode.js is available under the [MIT](https://mths.be/mit) license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json deleted file mode 100644 index 0d659a2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "name": "punycode", - "version": "1.4.1", - "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", - "homepage": "https://mths.be/punycode", - "main": "punycode.js", - "keywords": [ - "punycode", - "unicode", - "idn", - "idna", - "dns", - "url", - "domain" - ], - "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "contributors": [ - { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - { - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/bestiejs/punycode.js.git" - }, - "bugs": { - "url": "https://github.com/bestiejs/punycode.js/issues" - }, - "files": [ - "LICENSE-MIT.txt", - "punycode.js" - ], - "scripts": { - "test": "node tests/tests.js" - }, - "devDependencies": { - "coveralls": "^2.11.4", - "grunt": "^0.4.5", - "grunt-contrib-uglify": "^0.11.0", - "grunt-shell": "^1.1.2", - "istanbul": "^0.4.1", - "qunit-extras": "^1.4.4", - "qunitjs": "~1.11.0", - "requirejs": "^2.1.22" - }, - "jspm": { - "map": { - "./punycode.js": { - "node": "@node/punycode" - } - } - }, - "gitHead": "0fbadd6e81f3a0ce06c38998040d6db6bdfbc5c9", - "_id": "punycode@1.4.1", - "_shasum": "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e", - "_from": "punycode@>=1.4.1 <2.0.0", - "_npmVersion": "3.8.2", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "mathias", - "email": "mathias@qiwi.be" - }, - "maintainers": [ - { - "name": "mathias", - "email": "mathias@qiwi.be" - }, - { - "name": "reconbot", - "email": "wizard@roborooter.com" - } - ], - "dist": { - "shasum": "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e", - "tarball": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/punycode-1.4.1.tgz_1458437236261_0.07678767060860991" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js deleted file mode 100644 index 2c87f6cc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js +++ /dev/null @@ -1,533 +0,0 @@ -/*! https://mths.be/punycode v1.4.1 by @mathias */ -;(function(root) { - - /** Detect free variables */ - var freeExports = typeof exports == 'object' && exports && - !exports.nodeType && exports; - var freeModule = typeof module == 'object' && module && - !module.nodeType && module; - var freeGlobal = typeof global == 'object' && global; - if ( - freeGlobal.global === freeGlobal || - freeGlobal.window === freeGlobal || - freeGlobal.self === freeGlobal - ) { - root = freeGlobal; - } - - /** - * The `punycode` object. - * @name punycode - * @type Object - */ - var punycode, - - /** Highest positive signed 32-bit float value */ - maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 - - /** Bootstring parameters */ - base = 36, - tMin = 1, - tMax = 26, - skew = 38, - damp = 700, - initialBias = 72, - initialN = 128, // 0x80 - delimiter = '-', // '\x2D' - - /** Regular expressions */ - regexPunycode = /^xn--/, - regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars - regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators - - /** Error messages */ - errors = { - 'overflow': 'Overflow: input needs wider integers to process', - 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', - 'invalid-input': 'Invalid input' - }, - - /** Convenience shortcuts */ - baseMinusTMin = base - tMin, - floor = Math.floor, - stringFromCharCode = String.fromCharCode, - - /** Temporary variable */ - key; - - /*--------------------------------------------------------------------------*/ - - /** - * A generic error utility function. - * @private - * @param {String} type The error type. - * @returns {Error} Throws a `RangeError` with the applicable error message. - */ - function error(type) { - throw new RangeError(errors[type]); - } - - /** - * A generic `Array#map` utility function. - * @private - * @param {Array} array The array to iterate over. - * @param {Function} callback The function that gets called for every array - * item. - * @returns {Array} A new array of values returned by the callback function. - */ - function map(array, fn) { - var length = array.length; - var result = []; - while (length--) { - result[length] = fn(array[length]); - } - return result; - } - - /** - * A simple `Array#map`-like wrapper to work with domain name strings or email - * addresses. - * @private - * @param {String} domain The domain name or email address. - * @param {Function} callback The function that gets called for every - * character. - * @returns {Array} A new string of characters returned by the callback - * function. - */ - function mapDomain(string, fn) { - var parts = string.split('@'); - var result = ''; - if (parts.length > 1) { - // In email addresses, only the domain name should be punycoded. Leave - // the local part (i.e. everything up to `@`) intact. - result = parts[0] + '@'; - string = parts[1]; - } - // Avoid `split(regex)` for IE8 compatibility. See #17. - string = string.replace(regexSeparators, '\x2E'); - var labels = string.split('.'); - var encoded = map(labels, fn).join('.'); - return result + encoded; - } - - /** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - * @see `punycode.ucs2.encode` - * @see - * @memberOf punycode.ucs2 - * @name decode - * @param {String} string The Unicode input string (UCS-2). - * @returns {Array} The new array of code points. - */ - function ucs2decode(string) { - var output = [], - counter = 0, - length = string.length, - value, - extra; - while (counter < length) { - value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // high surrogate, and there is a next character - extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // low surrogate - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // unmatched surrogate; only append this code unit, in case the next - // code unit is the high surrogate of a surrogate pair - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; - } - - /** - * Creates a string based on an array of numeric code points. - * @see `punycode.ucs2.decode` - * @memberOf punycode.ucs2 - * @name encode - * @param {Array} codePoints The array of numeric code points. - * @returns {String} The new Unicode string (UCS-2). - */ - function ucs2encode(array) { - return map(array, function(value) { - var output = ''; - if (value > 0xFFFF) { - value -= 0x10000; - output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); - value = 0xDC00 | value & 0x3FF; - } - output += stringFromCharCode(value); - return output; - }).join(''); - } - - /** - * Converts a basic code point into a digit/integer. - * @see `digitToBasic()` - * @private - * @param {Number} codePoint The basic numeric code point value. - * @returns {Number} The numeric value of a basic code point (for use in - * representing integers) in the range `0` to `base - 1`, or `base` if - * the code point does not represent a value. - */ - function basicToDigit(codePoint) { - if (codePoint - 48 < 10) { - return codePoint - 22; - } - if (codePoint - 65 < 26) { - return codePoint - 65; - } - if (codePoint - 97 < 26) { - return codePoint - 97; - } - return base; - } - - /** - * Converts a digit/integer into a basic code point. - * @see `basicToDigit()` - * @private - * @param {Number} digit The numeric value of a basic code point. - * @returns {Number} The basic code point whose value (when used for - * representing integers) is `digit`, which needs to be in the range - * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is - * used; else, the lowercase form is used. The behavior is undefined - * if `flag` is non-zero and `digit` has no uppercase form. - */ - function digitToBasic(digit, flag) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); - } - - /** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - * @private - */ - function adapt(delta, numPoints, firstTime) { - var k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); - } - - /** - * Converts a Punycode string of ASCII-only symbols to a string of Unicode - * symbols. - * @memberOf punycode - * @param {String} input The Punycode string of ASCII-only symbols. - * @returns {String} The resulting string of Unicode symbols. - */ - function decode(input) { - // Don't use UCS-2 - var output = [], - inputLength = input.length, - out, - i = 0, - n = initialN, - bias = initialBias, - basic, - j, - index, - oldi, - w, - k, - digit, - t, - /** Cached calculation results */ - baseMinusT; - - // Handle the basic code points: let `basic` be the number of input code - // points before the last delimiter, or `0` if there is none, then copy - // the first basic code points to the output. - - basic = input.lastIndexOf(delimiter); - if (basic < 0) { - basic = 0; - } - - for (j = 0; j < basic; ++j) { - // if it's not a basic code point - if (input.charCodeAt(j) >= 0x80) { - error('not-basic'); - } - output.push(input.charCodeAt(j)); - } - - // Main decoding loop: start just after the last delimiter if any basic code - // points were copied; start at the beginning otherwise. - - for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { - - // `index` is the index of the next character to be consumed. - // Decode a generalized variable-length integer into `delta`, - // which gets added to `i`. The overflow checking is easier - // if we increase `i` as we go, then subtract off its starting - // value at the end to obtain `delta`. - for (oldi = i, w = 1, k = base; /* no condition */; k += base) { - - if (index >= inputLength) { - error('invalid-input'); - } - - digit = basicToDigit(input.charCodeAt(index++)); - - if (digit >= base || digit > floor((maxInt - i) / w)) { - error('overflow'); - } - - i += digit * w; - t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - - if (digit < t) { - break; - } - - baseMinusT = base - t; - if (w > floor(maxInt / baseMinusT)) { - error('overflow'); - } - - w *= baseMinusT; - - } - - out = output.length + 1; - bias = adapt(i - oldi, out, oldi == 0); - - // `i` was supposed to wrap around from `out` to `0`, - // incrementing `n` each time, so we'll fix that now: - if (floor(i / out) > maxInt - n) { - error('overflow'); - } - - n += floor(i / out); - i %= out; - - // Insert `n` at position `i` of the output - output.splice(i++, 0, n); - - } - - return ucs2encode(output); - } - - /** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - * @memberOf punycode - * @param {String} input The string of Unicode symbols. - * @returns {String} The resulting Punycode string of ASCII-only symbols. - */ - function encode(input) { - var n, - delta, - handledCPCount, - basicLength, - bias, - j, - m, - q, - k, - t, - currentValue, - output = [], - /** `inputLength` will hold the number of code points in `input`. */ - inputLength, - /** Cached calculation results */ - handledCPCountPlusOne, - baseMinusT, - qMinusT; - - // Convert the input in UCS-2 to Unicode - input = ucs2decode(input); - - // Cache the length - inputLength = input.length; - - // Initialize the state - n = initialN; - delta = 0; - bias = initialBias; - - // Handle the basic code points - for (j = 0; j < inputLength; ++j) { - currentValue = input[j]; - if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); - } - } - - handledCPCount = basicLength = output.length; - - // `handledCPCount` is the number of code points that have been handled; - // `basicLength` is the number of basic code points. - - // Finish the basic string - if it is not empty - with a delimiter - if (basicLength) { - output.push(delimiter); - } - - // Main encoding loop: - while (handledCPCount < inputLength) { - - // All non-basic code points < n have been handled already. Find the next - // larger one: - for (m = maxInt, j = 0; j < inputLength; ++j) { - currentValue = input[j]; - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - - // Increase `delta` enough to advance the decoder's state to , - // but guard against overflow - handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - error('overflow'); - } - - delta += (m - n) * handledCPCountPlusOne; - n = m; - - for (j = 0; j < inputLength; ++j) { - currentValue = input[j]; - - if (currentValue < n && ++delta > maxInt) { - error('overflow'); - } - - if (currentValue == n) { - // Represent delta as a generalized variable-length integer - for (q = delta, k = base; /* no condition */; k += base) { - t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - if (q < t) { - break; - } - qMinusT = q - t; - baseMinusT = base - t; - output.push( - stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) - ); - q = floor(qMinusT / baseMinusT); - } - - output.push(stringFromCharCode(digitToBasic(q, 0))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - - ++delta; - ++n; - - } - return output.join(''); - } - - /** - * Converts a Punycode string representing a domain name or an email address - * to Unicode. Only the Punycoded parts of the input will be converted, i.e. - * it doesn't matter if you call it on a string that has already been - * converted to Unicode. - * @memberOf punycode - * @param {String} input The Punycoded domain name or email address to - * convert to Unicode. - * @returns {String} The Unicode representation of the given Punycode - * string. - */ - function toUnicode(input) { - return mapDomain(input, function(string) { - return regexPunycode.test(string) - ? decode(string.slice(4).toLowerCase()) - : string; - }); - } - - /** - * Converts a Unicode string representing a domain name or an email address to - * Punycode. Only the non-ASCII parts of the domain name will be converted, - * i.e. it doesn't matter if you call it with a domain that's already in - * ASCII. - * @memberOf punycode - * @param {String} input The domain name or email address to convert, as a - * Unicode string. - * @returns {String} The Punycode representation of the given domain name or - * email address. - */ - function toASCII(input) { - return mapDomain(input, function(string) { - return regexNonASCII.test(string) - ? 'xn--' + encode(string) - : string; - }); - } - - /*--------------------------------------------------------------------------*/ - - /** Define the public API */ - punycode = { - /** - * A string representing the current Punycode.js version number. - * @memberOf punycode - * @type String - */ - 'version': '1.4.1', - /** - * An object of methods to convert from JavaScript's internal character - * representation (UCS-2) to Unicode code points, and back. - * @see - * @memberOf punycode - * @type Object - */ - 'ucs2': { - 'decode': ucs2decode, - 'encode': ucs2encode - }, - 'decode': decode, - 'encode': encode, - 'toASCII': toASCII, - 'toUnicode': toUnicode - }; - - /** Expose `punycode` */ - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if ( - typeof define == 'function' && - typeof define.amd == 'object' && - define.amd - ) { - define('punycode', function() { - return punycode; - }); - } else if (freeExports && freeModule) { - if (module.exports == freeExports) { - // in Node.js, io.js, or RingoJS v0.8.0+ - freeModule.exports = punycode; - } else { - // in Narwhal or RingoJS v0.7.0- - for (key in punycode) { - punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); - } - } - } else { - // in Rhino or a web browser - root.punycode = punycode; - } - -}(this)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/package.json deleted file mode 100644 index 682538b4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tough-cookie/package.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "author": { - "name": "Jeremy Stashewsky", - "email": "jstashewsky@salesforce.com" - }, - "contributors": [ - { - "name": "Alexander Savin" - }, - { - "name": "Ian Livingstone" - }, - { - "name": "Ivan Nikulin" - }, - { - "name": "Lalit Kapoor" - }, - { - "name": "Sam Thompson" - }, - { - "name": "Sebastian Mayr" - } - ], - "license": "BSD-3-Clause", - "name": "tough-cookie", - "description": "RFC6265 Cookies and Cookie Jar for node.js", - "keywords": [ - "HTTP", - "cookie", - "cookies", - "set-cookie", - "cookiejar", - "jar", - "RFC6265", - "RFC2965" - ], - "version": "2.3.2", - "homepage": "https://github.com/salesforce/tough-cookie", - "repository": { - "type": "git", - "url": "git://github.com/salesforce/tough-cookie.git" - }, - "bugs": { - "url": "https://github.com/salesforce/tough-cookie/issues" - }, - "main": "./lib/cookie", - "files": [ - "lib" - ], - "scripts": { - "suffixup": "curl -o public_suffix_list.dat https://publicsuffix.org/list/public_suffix_list.dat && ./generate-pubsuffix.js", - "test": "vows test/*_test.js" - }, - "engines": { - "node": ">=0.8" - }, - "devDependencies": { - "async": "^1.4.2", - "string.prototype.repeat": "^0.2.0", - "vows": "^0.8.1" - }, - "dependencies": { - "punycode": "^1.4.1" - }, - "gitHead": "2610df5dc8ef7373a483d509006e5887572a4076", - "_id": "tough-cookie@2.3.2", - "_shasum": "f081f76e4c85720e6c37a5faced737150d84072a", - "_from": "tough-cookie@>=2.3.0 <2.4.0", - "_npmVersion": "3.10.8", - "_nodeVersion": "7.0.0", - "_npmUser": { - "name": "jstash", - "email": "jstash@gmail.com" - }, - "dist": { - "shasum": "f081f76e4c85720e6c37a5faced737150d84072a", - "tarball": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz" - }, - "maintainers": [ - { - "name": "awaterma", - "email": "awaterma@awaterma.net" - }, - { - "name": "jstash", - "email": "jstash@gmail.com" - }, - { - "name": "nexxy", - "email": "emily@contactvibe.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/tough-cookie-2.3.2.tgz_1477415232912_0.6133609430398792" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/LICENSE deleted file mode 100644 index a4a9aee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/README.md deleted file mode 100644 index bb533d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/README.md +++ /dev/null @@ -1,4 +0,0 @@ -tunnel-agent -============ - -HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/index.js deleted file mode 100644 index 68013ac1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/index.js +++ /dev/null @@ -1,243 +0,0 @@ -'use strict' - -var net = require('net') - , tls = require('tls') - , http = require('http') - , https = require('https') - , events = require('events') - , assert = require('assert') - , util = require('util') - ; - -exports.httpOverHttp = httpOverHttp -exports.httpsOverHttp = httpsOverHttp -exports.httpOverHttps = httpOverHttps -exports.httpsOverHttps = httpsOverHttps - - -function httpOverHttp(options) { - var agent = new TunnelingAgent(options) - agent.request = http.request - return agent -} - -function httpsOverHttp(options) { - var agent = new TunnelingAgent(options) - agent.request = http.request - agent.createSocket = createSecureSocket - agent.defaultPort = 443 - return agent -} - -function httpOverHttps(options) { - var agent = new TunnelingAgent(options) - agent.request = https.request - return agent -} - -function httpsOverHttps(options) { - var agent = new TunnelingAgent(options) - agent.request = https.request - agent.createSocket = createSecureSocket - agent.defaultPort = 443 - return agent -} - - -function TunnelingAgent(options) { - var self = this - self.options = options || {} - self.proxyOptions = self.options.proxy || {} - self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets - self.requests = [] - self.sockets = [] - - self.on('free', function onFree(socket, host, port) { - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i] - if (pending.host === host && pending.port === port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1) - pending.request.onSocket(socket) - return - } - } - socket.destroy() - self.removeSocket(socket) - }) -} -util.inherits(TunnelingAgent, events.EventEmitter) - -TunnelingAgent.prototype.addRequest = function addRequest(req, options) { - var self = this - - // Legacy API: addRequest(req, host, port, path) - if (typeof options === 'string') { - options = { - host: options, - port: arguments[2], - path: arguments[3] - }; - } - - if (self.sockets.length >= this.maxSockets) { - // We are over limit so we'll add it to the queue. - self.requests.push({host: options.host, port: options.port, request: req}) - return - } - - // If we are under maxSockets create a new one. - self.createConnection({host: options.host, port: options.port, request: req}) -} - -TunnelingAgent.prototype.createConnection = function createConnection(pending) { - var self = this - - self.createSocket(pending, function(socket) { - socket.on('free', onFree) - socket.on('close', onCloseOrRemove) - socket.on('agentRemove', onCloseOrRemove) - pending.request.onSocket(socket) - - function onFree() { - self.emit('free', socket, pending.host, pending.port) - } - - function onCloseOrRemove(err) { - self.removeSocket(socket) - socket.removeListener('free', onFree) - socket.removeListener('close', onCloseOrRemove) - socket.removeListener('agentRemove', onCloseOrRemove) - } - }) -} - -TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { - var self = this - var placeholder = {} - self.sockets.push(placeholder) - - var connectOptions = mergeOptions({}, self.proxyOptions, - { method: 'CONNECT' - , path: options.host + ':' + options.port - , agent: false - } - ) - if (connectOptions.proxyAuth) { - connectOptions.headers = connectOptions.headers || {} - connectOptions.headers['Proxy-Authorization'] = 'Basic ' + - new Buffer(connectOptions.proxyAuth).toString('base64') - } - - debug('making CONNECT request') - var connectReq = self.request(connectOptions) - connectReq.useChunkedEncodingByDefault = false // for v0.6 - connectReq.once('response', onResponse) // for v0.6 - connectReq.once('upgrade', onUpgrade) // for v0.6 - connectReq.once('connect', onConnect) // for v0.7 or later - connectReq.once('error', onError) - connectReq.end() - - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true - } - - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head) - }) - } - - function onConnect(res, socket, head) { - connectReq.removeAllListeners() - socket.removeAllListeners() - - if (res.statusCode === 200) { - assert.equal(head.length, 0) - debug('tunneling connection has established') - self.sockets[self.sockets.indexOf(placeholder)] = socket - cb(socket) - } else { - debug('tunneling socket could not be established, statusCode=%d', res.statusCode) - var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode) - error.code = 'ECONNRESET' - options.request.emit('error', error) - self.removeSocket(placeholder) - } - } - - function onError(cause) { - connectReq.removeAllListeners() - - debug('tunneling socket could not be established, cause=%s\n', cause.message, cause.stack) - var error = new Error('tunneling socket could not be established, ' + 'cause=' + cause.message) - error.code = 'ECONNRESET' - options.request.emit('error', error) - self.removeSocket(placeholder) - } -} - -TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { - var pos = this.sockets.indexOf(socket) - if (pos === -1) return - - this.sockets.splice(pos, 1) - - var pending = this.requests.shift() - if (pending) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createConnection(pending) - } -} - -function createSecureSocket(options, cb) { - var self = this - TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, mergeOptions({}, self.options, - { servername: options.host - , socket: socket - } - )) - self.sockets[self.sockets.indexOf(socket)] = secureSocket - cb(secureSocket) - }) -} - - -function mergeOptions(target) { - for (var i = 1, len = arguments.length; i < len; ++i) { - var overrides = arguments[i] - if (typeof overrides === 'object') { - var keys = Object.keys(overrides) - for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { - var k = keys[j] - if (overrides[k] !== undefined) { - target[k] = overrides[k] - } - } - } - } - return target -} - - -var debug -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = function() { - var args = Array.prototype.slice.call(arguments) - if (typeof args[0] === 'string') { - args[0] = 'TUNNEL: ' + args[0] - } else { - args.unshift('TUNNEL:') - } - console.error.apply(console, args) - } -} else { - debug = function() {} -} -exports.debug = debug // for test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/package.json deleted file mode 100644 index 6677690f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/node_modules/tunnel-agent/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com", - "url": "http://www.futurealoof.com" - }, - "name": "tunnel-agent", - "license": "Apache-2.0", - "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.", - "version": "0.4.3", - "repository": { - "url": "git+https://github.com/mikeal/tunnel-agent.git" - }, - "main": "index.js", - "files": [ - "index.js" - ], - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" - }, - "gitHead": "e72d830f5ed388a2a71d37ce062c38e3fb34bdde", - "bugs": { - "url": "https://github.com/mikeal/tunnel-agent/issues" - }, - "homepage": "https://github.com/mikeal/tunnel-agent#readme", - "_id": "tunnel-agent@0.4.3", - "scripts": {}, - "_shasum": "6373db76909fe570e08d73583365ed828a74eeeb", - "_from": "tunnel-agent@>=0.4.1 <0.5.0", - "_npmVersion": "2.15.3", - "_nodeVersion": "5.9.0", - "_npmUser": { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - }, - "dist": { - "shasum": "6373db76909fe570e08d73583365ed828a74eeeb", - "tarball": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz" - }, - "maintainers": [ - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - { - "name": "nylen", - "email": "jnylen@gmail.com" - }, - { - "name": "fredkschott", - "email": "fkschott@gmail.com" - }, - { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/tunnel-agent-0.4.3.tgz_1462396470295_0.23639482469297945" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/package.json deleted file mode 100644 index c2beeae0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/package.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "name": "request", - "description": "Simplified HTTP request client.", - "tags": [ - "http", - "simple", - "util", - "utility" - ], - "version": "2.78.0", - "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/request/request.git" - }, - "bugs": { - "url": "http://github.com/request/request/issues" - }, - "license": "Apache-2.0", - "engines": { - "node": ">= 4" - }, - "main": "index.js", - "dependencies": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.11.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~2.0.6", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "node-uuid": "~1.4.7", - "oauth-sign": "~0.8.1", - "qs": "~6.3.0", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "~0.4.1" - }, - "scripts": { - "test": "npm run lint && npm run test-ci && npm run test-browser", - "test-ci": "taper tests/test-*.js", - "test-cov": "istanbul cover tape tests/test-*.js", - "test-browser": "node tests/browser/start.js", - "lint": "eslint lib/ *.js tests/ && echo Lint passed." - }, - "devDependencies": { - "bluebird": "^3.2.1", - "browserify": "^13.0.1", - "browserify-istanbul": "^2.0.0", - "buffer-equal": "^1.0.0", - "codecov": "^1.0.1", - "coveralls": "^2.11.4", - "eslint": "^2.5.3", - "function-bind": "^1.0.2", - "istanbul": "^0.4.0", - "karma": "^1.1.1", - "karma-browserify": "^5.0.1", - "karma-cli": "^1.0.0", - "karma-coverage": "^1.0.0", - "karma-phantomjs-launcher": "^1.0.0", - "karma-tap": "^3.0.1", - "phantomjs-prebuilt": "^2.1.3", - "rimraf": "^2.2.8", - "server-destroy": "^1.0.1", - "tape": "^4.6.0", - "taper": "^0.4.0" - }, - "greenkeeper": { - "ignore": [ - "eslint", - "hawk", - "har-validator" - ] - }, - "gitHead": "d4a68e9b64979f388c204f5d957e366878262340", - "homepage": "https://github.com/request/request#readme", - "_id": "request@2.78.0", - "_shasum": "e1c8dec346e1c81923b24acdb337f11decabe9cc", - "_from": "request@>=2.47.0 <3.0.0", - "_npmVersion": "2.15.9", - "_nodeVersion": "6.5.0", - "_npmUser": { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - }, - "dist": { - "shasum": "e1c8dec346e1c81923b24acdb337f11decabe9cc", - "tarball": "https://registry.npmjs.org/request/-/request-2.78.0.tgz" - }, - "maintainers": [ - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - { - "name": "nylen", - "email": "jnylen@gmail.com" - }, - { - "name": "fredkschott", - "email": "fkschott@gmail.com" - }, - { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/request-2.78.0.tgz_1478180284881_0.7387848466169089" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/request/-/request-2.78.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/request.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/request.js deleted file mode 100644 index 9528b566..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/request/request.js +++ /dev/null @@ -1,1471 +0,0 @@ -'use strict' - -var http = require('http') - , https = require('https') - , url = require('url') - , util = require('util') - , stream = require('stream') - , zlib = require('zlib') - , hawk = require('hawk') - , aws2 = require('aws-sign2') - , aws4 = require('aws4') - , httpSignature = require('http-signature') - , mime = require('mime-types') - , stringstream = require('stringstream') - , caseless = require('caseless') - , ForeverAgent = require('forever-agent') - , FormData = require('form-data') - , extend = require('extend') - , isstream = require('isstream') - , isTypedArray = require('is-typedarray').strict - , helpers = require('./lib/helpers') - , cookies = require('./lib/cookies') - , getProxyFromURI = require('./lib/getProxyFromURI') - , Querystring = require('./lib/querystring').Querystring - , Har = require('./lib/har').Har - , Auth = require('./lib/auth').Auth - , OAuth = require('./lib/oauth').OAuth - , Multipart = require('./lib/multipart').Multipart - , Redirect = require('./lib/redirect').Redirect - , Tunnel = require('./lib/tunnel').Tunnel - -var safeStringify = helpers.safeStringify - , isReadStream = helpers.isReadStream - , toBase64 = helpers.toBase64 - , defer = helpers.defer - , copy = helpers.copy - , version = helpers.version - , globalCookieJar = cookies.jar() - - -var globalPool = {} - -function filterForNonReserved(reserved, options) { - // Filter out properties that are not reserved. - // Reserved values are passed in at call site. - - var object = {} - for (var i in options) { - var notReserved = (reserved.indexOf(i) === -1) - if (notReserved) { - object[i] = options[i] - } - } - return object -} - -function filterOutReservedFunctions(reserved, options) { - // Filter out properties that are functions and are reserved. - // Reserved values are passed in at call site. - - var object = {} - for (var i in options) { - var isReserved = !(reserved.indexOf(i) === -1) - var isFunction = (typeof options[i] === 'function') - if (!(isReserved && isFunction)) { - object[i] = options[i] - } - } - return object - -} - -// Return a simpler request object to allow serialization -function requestToJSON() { - var self = this - return { - uri: self.uri, - method: self.method, - headers: self.headers - } -} - -// Return a simpler response object to allow serialization -function responseToJSON() { - var self = this - return { - statusCode: self.statusCode, - body: self.body, - headers: self.headers, - request: requestToJSON.call(self.request) - } -} - -function Request (options) { - // if given the method property in options, set property explicitMethod to true - - // extend the Request instance with any non-reserved properties - // remove any reserved functions from the options object - // set Request instance to be readable and writable - // call init - - var self = this - - // start with HAR, then override with additional options - if (options.har) { - self._har = new Har(self) - options = self._har.options(options) - } - - stream.Stream.call(self) - var reserved = Object.keys(Request.prototype) - var nonReserved = filterForNonReserved(reserved, options) - - extend(self, nonReserved) - options = filterOutReservedFunctions(reserved, options) - - self.readable = true - self.writable = true - if (options.method) { - self.explicitMethod = true - } - self._qs = new Querystring(self) - self._auth = new Auth(self) - self._oauth = new OAuth(self) - self._multipart = new Multipart(self) - self._redirect = new Redirect(self) - self._tunnel = new Tunnel(self) - self.init(options) -} - -util.inherits(Request, stream.Stream) - -// Debugging -Request.debug = process.env.NODE_DEBUG && /\brequest\b/.test(process.env.NODE_DEBUG) -function debug() { - if (Request.debug) { - console.error('REQUEST %s', util.format.apply(util, arguments)) - } -} -Request.prototype.debug = debug - -Request.prototype.init = function (options) { - // init() contains all the code to setup the request object. - // the actual outgoing request is not started until start() is called - // this function is called from both the constructor and on redirect. - var self = this - if (!options) { - options = {} - } - self.headers = self.headers ? copy(self.headers) : {} - - // Delete headers with value undefined since they break - // ClientRequest.OutgoingMessage.setHeader in node 0.12 - for (var headerName in self.headers) { - if (typeof self.headers[headerName] === 'undefined') { - delete self.headers[headerName] - } - } - - caseless.httpify(self, self.headers) - - if (!self.method) { - self.method = options.method || 'GET' - } - if (!self.localAddress) { - self.localAddress = options.localAddress - } - - self._qs.init(options) - - debug(options) - if (!self.pool && self.pool !== false) { - self.pool = globalPool - } - self.dests = self.dests || [] - self.__isRequestRequest = true - - // Protect against double callback - if (!self._callback && self.callback) { - self._callback = self.callback - self.callback = function () { - if (self._callbackCalled) { - return // Print a warning maybe? - } - self._callbackCalled = true - self._callback.apply(self, arguments) - } - self.on('error', self.callback.bind()) - self.on('complete', self.callback.bind(self, null)) - } - - // People use this property instead all the time, so support it - if (!self.uri && self.url) { - self.uri = self.url - delete self.url - } - - // If there's a baseUrl, then use it as the base URL (i.e. uri must be - // specified as a relative path and is appended to baseUrl). - if (self.baseUrl) { - if (typeof self.baseUrl !== 'string') { - return self.emit('error', new Error('options.baseUrl must be a string')) - } - - if (typeof self.uri !== 'string') { - return self.emit('error', new Error('options.uri must be a string when using options.baseUrl')) - } - - if (self.uri.indexOf('//') === 0 || self.uri.indexOf('://') !== -1) { - return self.emit('error', new Error('options.uri must be a path when using options.baseUrl')) - } - - // Handle all cases to make sure that there's only one slash between - // baseUrl and uri. - var baseUrlEndsWithSlash = self.baseUrl.lastIndexOf('/') === self.baseUrl.length - 1 - var uriStartsWithSlash = self.uri.indexOf('/') === 0 - - if (baseUrlEndsWithSlash && uriStartsWithSlash) { - self.uri = self.baseUrl + self.uri.slice(1) - } else if (baseUrlEndsWithSlash || uriStartsWithSlash) { - self.uri = self.baseUrl + self.uri - } else if (self.uri === '') { - self.uri = self.baseUrl - } else { - self.uri = self.baseUrl + '/' + self.uri - } - delete self.baseUrl - } - - // A URI is needed by this point, emit error if we haven't been able to get one - if (!self.uri) { - return self.emit('error', new Error('options.uri is a required argument')) - } - - // If a string URI/URL was given, parse it into a URL object - if (typeof self.uri === 'string') { - self.uri = url.parse(self.uri) - } - - // Some URL objects are not from a URL parsed string and need href added - if (!self.uri.href) { - self.uri.href = url.format(self.uri) - } - - // DEPRECATED: Warning for users of the old Unix Sockets URL Scheme - if (self.uri.protocol === 'unix:') { - return self.emit('error', new Error('`unix://` URL scheme is no longer supported. Please use the format `http://unix:SOCKET:PATH`')) - } - - // Support Unix Sockets - if (self.uri.host === 'unix') { - self.enableUnixSocket() - } - - if (self.strictSSL === false) { - self.rejectUnauthorized = false - } - - if (!self.uri.pathname) {self.uri.pathname = '/'} - - if (!(self.uri.host || (self.uri.hostname && self.uri.port)) && !self.uri.isUnix) { - // Invalid URI: it may generate lot of bad errors, like 'TypeError: Cannot call method `indexOf` of undefined' in CookieJar - // Detect and reject it as soon as possible - var faultyUri = url.format(self.uri) - var message = 'Invalid URI "' + faultyUri + '"' - if (Object.keys(options).length === 0) { - // No option ? This can be the sign of a redirect - // As this is a case where the user cannot do anything (they didn't call request directly with this URL) - // they should be warned that it can be caused by a redirection (can save some hair) - message += '. This can be caused by a crappy redirection.' - } - // This error was fatal - self.abort() - return self.emit('error', new Error(message)) - } - - if (!self.hasOwnProperty('proxy')) { - self.proxy = getProxyFromURI(self.uri) - } - - self.tunnel = self._tunnel.isEnabled() - if (self.proxy) { - self._tunnel.setup(options) - } - - self._redirect.onRequest(options) - - self.setHost = false - if (!self.hasHeader('host')) { - var hostHeaderName = self.originalHostHeaderName || 'host' - self.setHeader(hostHeaderName, self.uri.hostname) - if (self.uri.port) { - if ( !(self.uri.port === 80 && self.uri.protocol === 'http:') && - !(self.uri.port === 443 && self.uri.protocol === 'https:') ) { - self.setHeader(hostHeaderName, self.getHeader('host') + (':' + self.uri.port) ) - } - } - self.setHost = true - } - - self.jar(self._jar || options.jar) - - if (!self.uri.port) { - if (self.uri.protocol === 'http:') {self.uri.port = 80} - else if (self.uri.protocol === 'https:') {self.uri.port = 443} - } - - if (self.proxy && !self.tunnel) { - self.port = self.proxy.port - self.host = self.proxy.hostname - } else { - self.port = self.uri.port - self.host = self.uri.hostname - } - - if (options.form) { - self.form(options.form) - } - - if (options.formData) { - var formData = options.formData - var requestForm = self.form() - var appendFormValue = function (key, value) { - if (value && value.hasOwnProperty('value') && value.hasOwnProperty('options')) { - requestForm.append(key, value.value, value.options) - } else { - requestForm.append(key, value) - } - } - for (var formKey in formData) { - if (formData.hasOwnProperty(formKey)) { - var formValue = formData[formKey] - if (formValue instanceof Array) { - for (var j = 0; j < formValue.length; j++) { - appendFormValue(formKey, formValue[j]) - } - } else { - appendFormValue(formKey, formValue) - } - } - } - } - - if (options.qs) { - self.qs(options.qs) - } - - if (self.uri.path) { - self.path = self.uri.path - } else { - self.path = self.uri.pathname + (self.uri.search || '') - } - - if (self.path.length === 0) { - self.path = '/' - } - - // Auth must happen last in case signing is dependent on other headers - if (options.aws) { - self.aws(options.aws) - } - - if (options.hawk) { - self.hawk(options.hawk) - } - - if (options.httpSignature) { - self.httpSignature(options.httpSignature) - } - - if (options.auth) { - if (Object.prototype.hasOwnProperty.call(options.auth, 'username')) { - options.auth.user = options.auth.username - } - if (Object.prototype.hasOwnProperty.call(options.auth, 'password')) { - options.auth.pass = options.auth.password - } - - self.auth( - options.auth.user, - options.auth.pass, - options.auth.sendImmediately, - options.auth.bearer - ) - } - - if (self.gzip && !self.hasHeader('accept-encoding')) { - self.setHeader('accept-encoding', 'gzip, deflate') - } - - if (self.uri.auth && !self.hasHeader('authorization')) { - var uriAuthPieces = self.uri.auth.split(':').map(function(item) {return self._qs.unescape(item)}) - self.auth(uriAuthPieces[0], uriAuthPieces.slice(1).join(':'), true) - } - - if (!self.tunnel && self.proxy && self.proxy.auth && !self.hasHeader('proxy-authorization')) { - var proxyAuthPieces = self.proxy.auth.split(':').map(function(item) {return self._qs.unescape(item)}) - var authHeader = 'Basic ' + toBase64(proxyAuthPieces.join(':')) - self.setHeader('proxy-authorization', authHeader) - } - - if (self.proxy && !self.tunnel) { - self.path = (self.uri.protocol + '//' + self.uri.host + self.path) - } - - if (options.json) { - self.json(options.json) - } - if (options.multipart) { - self.multipart(options.multipart) - } - - if (options.time) { - self.timing = true - self.elapsedTime = self.elapsedTime || 0 - } - - function setContentLength () { - if (isTypedArray(self.body)) { - self.body = new Buffer(self.body) - } - - if (!self.hasHeader('content-length')) { - var length - if (typeof self.body === 'string') { - length = Buffer.byteLength(self.body) - } - else if (Array.isArray(self.body)) { - length = self.body.reduce(function (a, b) {return a + b.length}, 0) - } - else { - length = self.body.length - } - - if (length) { - self.setHeader('content-length', length) - } else { - self.emit('error', new Error('Argument error, options.body.')) - } - } - } - if (self.body && !isstream(self.body)) { - setContentLength() - } - - if (options.oauth) { - self.oauth(options.oauth) - } else if (self._oauth.params && self.hasHeader('authorization')) { - self.oauth(self._oauth.params) - } - - var protocol = self.proxy && !self.tunnel ? self.proxy.protocol : self.uri.protocol - , defaultModules = {'http:':http, 'https:':https} - , httpModules = self.httpModules || {} - - self.httpModule = httpModules[protocol] || defaultModules[protocol] - - if (!self.httpModule) { - return self.emit('error', new Error('Invalid protocol: ' + protocol)) - } - - if (options.ca) { - self.ca = options.ca - } - - if (!self.agent) { - if (options.agentOptions) { - self.agentOptions = options.agentOptions - } - - if (options.agentClass) { - self.agentClass = options.agentClass - } else if (options.forever) { - var v = version() - // use ForeverAgent in node 0.10- only - if (v.major === 0 && v.minor <= 10) { - self.agentClass = protocol === 'http:' ? ForeverAgent : ForeverAgent.SSL - } else { - self.agentClass = self.httpModule.Agent - self.agentOptions = self.agentOptions || {} - self.agentOptions.keepAlive = true - } - } else { - self.agentClass = self.httpModule.Agent - } - } - - if (self.pool === false) { - self.agent = false - } else { - self.agent = self.agent || self.getNewAgent() - } - - self.on('pipe', function (src) { - if (self.ntick && self._started) { - self.emit('error', new Error('You cannot pipe to this stream after the outbound request has started.')) - } - self.src = src - if (isReadStream(src)) { - if (!self.hasHeader('content-type')) { - self.setHeader('content-type', mime.lookup(src.path)) - } - } else { - if (src.headers) { - for (var i in src.headers) { - if (!self.hasHeader(i)) { - self.setHeader(i, src.headers[i]) - } - } - } - if (self._json && !self.hasHeader('content-type')) { - self.setHeader('content-type', 'application/json') - } - if (src.method && !self.explicitMethod) { - self.method = src.method - } - } - - // self.on('pipe', function () { - // console.error('You have already piped to this stream. Pipeing twice is likely to break the request.') - // }) - }) - - defer(function () { - if (self._aborted) { - return - } - - var end = function () { - if (self._form) { - if (!self._auth.hasAuth) { - self._form.pipe(self) - } - else if (self._auth.hasAuth && self._auth.sentAuth) { - self._form.pipe(self) - } - } - if (self._multipart && self._multipart.chunked) { - self._multipart.body.pipe(self) - } - if (self.body) { - if (isstream(self.body)) { - self.body.pipe(self) - } else { - setContentLength() - if (Array.isArray(self.body)) { - self.body.forEach(function (part) { - self.write(part) - }) - } else { - self.write(self.body) - } - self.end() - } - } else if (self.requestBodyStream) { - console.warn('options.requestBodyStream is deprecated, please pass the request object to stream.pipe.') - self.requestBodyStream.pipe(self) - } else if (!self.src) { - if (self._auth.hasAuth && !self._auth.sentAuth) { - self.end() - return - } - if (self.method !== 'GET' && typeof self.method !== 'undefined') { - self.setHeader('content-length', 0) - } - self.end() - } - } - - if (self._form && !self.hasHeader('content-length')) { - // Before ending the request, we had to compute the length of the whole form, asyncly - self.setHeader(self._form.getHeaders(), true) - self._form.getLength(function (err, length) { - if (!err && !isNaN(length)) { - self.setHeader('content-length', length) - } - end() - }) - } else { - end() - } - - self.ntick = true - }) - -} - -Request.prototype.getNewAgent = function () { - var self = this - var Agent = self.agentClass - var options = {} - if (self.agentOptions) { - for (var i in self.agentOptions) { - options[i] = self.agentOptions[i] - } - } - if (self.ca) { - options.ca = self.ca - } - if (self.ciphers) { - options.ciphers = self.ciphers - } - if (self.secureProtocol) { - options.secureProtocol = self.secureProtocol - } - if (self.secureOptions) { - options.secureOptions = self.secureOptions - } - if (typeof self.rejectUnauthorized !== 'undefined') { - options.rejectUnauthorized = self.rejectUnauthorized - } - - if (self.cert && self.key) { - options.key = self.key - options.cert = self.cert - } - - if (self.pfx) { - options.pfx = self.pfx - } - - if (self.passphrase) { - options.passphrase = self.passphrase - } - - var poolKey = '' - - // different types of agents are in different pools - if (Agent !== self.httpModule.Agent) { - poolKey += Agent.name - } - - // ca option is only relevant if proxy or destination are https - var proxy = self.proxy - if (typeof proxy === 'string') { - proxy = url.parse(proxy) - } - var isHttps = (proxy && proxy.protocol === 'https:') || this.uri.protocol === 'https:' - - if (isHttps) { - if (options.ca) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.ca - } - - if (typeof options.rejectUnauthorized !== 'undefined') { - if (poolKey) { - poolKey += ':' - } - poolKey += options.rejectUnauthorized - } - - if (options.cert) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.cert.toString('ascii') + options.key.toString('ascii') - } - - if (options.pfx) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.pfx.toString('ascii') - } - - if (options.ciphers) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.ciphers - } - - if (options.secureProtocol) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.secureProtocol - } - - if (options.secureOptions) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.secureOptions - } - } - - if (self.pool === globalPool && !poolKey && Object.keys(options).length === 0 && self.httpModule.globalAgent) { - // not doing anything special. Use the globalAgent - return self.httpModule.globalAgent - } - - // we're using a stored agent. Make sure it's protocol-specific - poolKey = self.uri.protocol + poolKey - - // generate a new agent for this setting if none yet exists - if (!self.pool[poolKey]) { - self.pool[poolKey] = new Agent(options) - // properly set maxSockets on new agents - if (self.pool.maxSockets) { - self.pool[poolKey].maxSockets = self.pool.maxSockets - } - } - - return self.pool[poolKey] -} - -Request.prototype.start = function () { - // start() is called once we are ready to send the outgoing HTTP request. - // this is usually called on the first write(), end() or on nextTick() - var self = this - - if (self._aborted) { - return - } - - self._started = true - self.method = self.method || 'GET' - self.href = self.uri.href - - if (self.src && self.src.stat && self.src.stat.size && !self.hasHeader('content-length')) { - self.setHeader('content-length', self.src.stat.size) - } - if (self._aws) { - self.aws(self._aws, true) - } - - // We have a method named auth, which is completely different from the http.request - // auth option. If we don't remove it, we're gonna have a bad time. - var reqOptions = copy(self) - delete reqOptions.auth - - debug('make request', self.uri.href) - - // node v6.8.0 now supports a `timeout` value in `http.request()`, but we - // should delete it for now since we handle timeouts manually for better - // consistency with node versions before v6.8.0 - delete reqOptions.timeout - - try { - self.req = self.httpModule.request(reqOptions) - } catch (err) { - self.emit('error', err) - return - } - - if (self.timing) { - self.startTime = new Date().getTime() - } - - var timeout - if (self.timeout && !self.timeoutTimer) { - if (self.timeout < 0) { - timeout = 0 - } else if (typeof self.timeout === 'number' && isFinite(self.timeout)) { - timeout = self.timeout - } - } - - self.req.on('response', self.onRequestResponse.bind(self)) - self.req.on('error', self.onRequestError.bind(self)) - self.req.on('drain', function() { - self.emit('drain') - }) - self.req.on('socket', function(socket) { - var setReqTimeout = function() { - // This timeout sets the amount of time to wait *between* bytes sent - // from the server once connected. - // - // In particular, it's useful for erroring if the server fails to send - // data halfway through streaming a response. - self.req.setTimeout(timeout, function () { - if (self.req) { - self.abort() - var e = new Error('ESOCKETTIMEDOUT') - e.code = 'ESOCKETTIMEDOUT' - e.connect = false - self.emit('error', e) - } - }) - } - // `._connecting` was the old property which was made public in node v6.1.0 - var isConnecting = socket._connecting || socket.connecting - if (timeout !== undefined) { - // Only start the connection timer if we're actually connecting a new - // socket, otherwise if we're already connected (because this is a - // keep-alive connection) do not bother. This is important since we won't - // get a 'connect' event for an already connected socket. - if (isConnecting) { - var onReqSockConnect = function() { - socket.removeListener('connect', onReqSockConnect) - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null - setReqTimeout() - } - - socket.on('connect', onReqSockConnect) - - self.req.on('error', function(err) { - socket.removeListener('connect', onReqSockConnect) - }) - - // Set a timeout in memory - this block will throw if the server takes more - // than `timeout` to write the HTTP status and headers (corresponding to - // the on('response') event on the client). NB: this measures wall-clock - // time, not the time between bytes sent by the server. - self.timeoutTimer = setTimeout(function () { - socket.removeListener('connect', onReqSockConnect) - self.abort() - var e = new Error('ETIMEDOUT') - e.code = 'ETIMEDOUT' - e.connect = true - self.emit('error', e) - }, timeout) - } else { - // We're already connected - setReqTimeout() - } - } - self.emit('socket', socket) - }) - - self.emit('request', self.req) -} - -Request.prototype.onRequestError = function (error) { - var self = this - if (self._aborted) { - return - } - if (self.req && self.req._reusedSocket && error.code === 'ECONNRESET' - && self.agent.addRequestNoreuse) { - self.agent = { addRequest: self.agent.addRequestNoreuse.bind(self.agent) } - self.start() - self.req.end() - return - } - if (self.timeout && self.timeoutTimer) { - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null - } - self.emit('error', error) -} - -Request.prototype.onRequestResponse = function (response) { - var self = this - debug('onRequestResponse', self.uri.href, response.statusCode, response.headers) - response.on('end', function() { - if (self.timing) { - self.elapsedTime += (new Date().getTime() - self.startTime) - debug('elapsed time', self.elapsedTime) - response.elapsedTime = self.elapsedTime - } - debug('response end', self.uri.href, response.statusCode, response.headers) - }) - - if (self._aborted) { - debug('aborted', self.uri.href) - response.resume() - return - } - - self.response = response - response.request = self - response.toJSON = responseToJSON - - // XXX This is different on 0.10, because SSL is strict by default - if (self.httpModule === https && - self.strictSSL && (!response.hasOwnProperty('socket') || - !response.socket.authorized)) { - debug('strict ssl error', self.uri.href) - var sslErr = response.hasOwnProperty('socket') ? response.socket.authorizationError : self.uri.href + ' does not support SSL' - self.emit('error', new Error('SSL Error: ' + sslErr)) - return - } - - // Save the original host before any redirect (if it changes, we need to - // remove any authorization headers). Also remember the case of the header - // name because lots of broken servers expect Host instead of host and we - // want the caller to be able to specify this. - self.originalHost = self.getHeader('host') - if (!self.originalHostHeaderName) { - self.originalHostHeaderName = self.hasHeader('host') - } - if (self.setHost) { - self.removeHeader('host') - } - if (self.timeout && self.timeoutTimer) { - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null - } - - var targetCookieJar = (self._jar && self._jar.setCookie) ? self._jar : globalCookieJar - var addCookie = function (cookie) { - //set the cookie if it's domain in the href's domain. - try { - targetCookieJar.setCookie(cookie, self.uri.href, {ignoreError: true}) - } catch (e) { - self.emit('error', e) - } - } - - response.caseless = caseless(response.headers) - - if (response.caseless.has('set-cookie') && (!self._disableCookies)) { - var headerName = response.caseless.has('set-cookie') - if (Array.isArray(response.headers[headerName])) { - response.headers[headerName].forEach(addCookie) - } else { - addCookie(response.headers[headerName]) - } - } - - if (self._redirect.onResponse(response)) { - return // Ignore the rest of the response - } else { - // Be a good stream and emit end when the response is finished. - // Hack to emit end on close because of a core bug that never fires end - response.on('close', function () { - if (!self._ended) { - self.response.emit('end') - } - }) - - response.once('end', function () { - self._ended = true - }) - - var noBody = function (code) { - return ( - self.method === 'HEAD' - // Informational - || (code >= 100 && code < 200) - // No Content - || code === 204 - // Not Modified - || code === 304 - ) - } - - var responseContent - if (self.gzip && !noBody(response.statusCode)) { - var contentEncoding = response.headers['content-encoding'] || 'identity' - contentEncoding = contentEncoding.trim().toLowerCase() - - if (contentEncoding === 'gzip') { - responseContent = zlib.createGunzip() - response.pipe(responseContent) - } else if (contentEncoding === 'deflate') { - responseContent = zlib.createInflate() - response.pipe(responseContent) - } else { - // Since previous versions didn't check for Content-Encoding header, - // ignore any invalid values to preserve backwards-compatibility - if (contentEncoding !== 'identity') { - debug('ignoring unrecognized Content-Encoding ' + contentEncoding) - } - responseContent = response - } - } else { - responseContent = response - } - - if (self.encoding) { - if (self.dests.length !== 0) { - console.error('Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.') - } else if (responseContent.setEncoding) { - responseContent.setEncoding(self.encoding) - } else { - // Should only occur on node pre-v0.9.4 (joyent/node@9b5abe5) with - // zlib streams. - // If/When support for 0.9.4 is dropped, this should be unnecessary. - responseContent = responseContent.pipe(stringstream(self.encoding)) - } - } - - if (self._paused) { - responseContent.pause() - } - - self.responseContent = responseContent - - self.emit('response', response) - - self.dests.forEach(function (dest) { - self.pipeDest(dest) - }) - - responseContent.on('data', function (chunk) { - if (self.timing && !self.responseStarted) { - self.responseStartTime = (new Date()).getTime() - response.responseStartTime = self.responseStartTime - } - self._destdata = true - self.emit('data', chunk) - }) - responseContent.once('end', function (chunk) { - self.emit('end', chunk) - }) - responseContent.on('error', function (error) { - self.emit('error', error) - }) - responseContent.on('close', function () {self.emit('close')}) - - if (self.callback) { - self.readResponseBody(response) - } - //if no callback - else { - self.on('end', function () { - if (self._aborted) { - debug('aborted', self.uri.href) - return - } - self.emit('complete', response) - }) - } - } - debug('finish init function', self.uri.href) -} - -Request.prototype.readResponseBody = function (response) { - var self = this - debug('reading response\'s body') - var buffers = [] - , bufferLength = 0 - , strings = [] - - self.on('data', function (chunk) { - if (!Buffer.isBuffer(chunk)) { - strings.push(chunk) - } else if (chunk.length) { - bufferLength += chunk.length - buffers.push(chunk) - } - }) - self.on('end', function () { - debug('end event', self.uri.href) - if (self._aborted) { - debug('aborted', self.uri.href) - // `buffer` is defined in the parent scope and used in a closure it exists for the life of the request. - // This can lead to leaky behavior if the user retains a reference to the request object. - buffers = [] - bufferLength = 0 - return - } - - if (bufferLength) { - debug('has body', self.uri.href, bufferLength) - response.body = Buffer.concat(buffers, bufferLength) - if (self.encoding !== null) { - response.body = response.body.toString(self.encoding) - } - // `buffer` is defined in the parent scope and used in a closure it exists for the life of the Request. - // This can lead to leaky behavior if the user retains a reference to the request object. - buffers = [] - bufferLength = 0 - } else if (strings.length) { - // The UTF8 BOM [0xEF,0xBB,0xBF] is converted to [0xFE,0xFF] in the JS UTC16/UCS2 representation. - // Strip this value out when the encoding is set to 'utf8', as upstream consumers won't expect it and it breaks JSON.parse(). - if (self.encoding === 'utf8' && strings[0].length > 0 && strings[0][0] === '\uFEFF') { - strings[0] = strings[0].substring(1) - } - response.body = strings.join('') - } - - if (self._json) { - try { - response.body = JSON.parse(response.body, self._jsonReviver) - } catch (e) { - debug('invalid JSON received', self.uri.href) - } - } - debug('emitting complete', self.uri.href) - if (typeof response.body === 'undefined' && !self._json) { - response.body = self.encoding === null ? new Buffer(0) : '' - } - self.emit('complete', response, response.body) - }) -} - -Request.prototype.abort = function () { - var self = this - self._aborted = true - - if (self.req) { - self.req.abort() - } - else if (self.response) { - self.response.destroy() - } - - self.emit('abort') -} - -Request.prototype.pipeDest = function (dest) { - var self = this - var response = self.response - // Called after the response is received - if (dest.headers && !dest.headersSent) { - if (response.caseless.has('content-type')) { - var ctname = response.caseless.has('content-type') - if (dest.setHeader) { - dest.setHeader(ctname, response.headers[ctname]) - } - else { - dest.headers[ctname] = response.headers[ctname] - } - } - - if (response.caseless.has('content-length')) { - var clname = response.caseless.has('content-length') - if (dest.setHeader) { - dest.setHeader(clname, response.headers[clname]) - } else { - dest.headers[clname] = response.headers[clname] - } - } - } - if (dest.setHeader && !dest.headersSent) { - for (var i in response.headers) { - // If the response content is being decoded, the Content-Encoding header - // of the response doesn't represent the piped content, so don't pass it. - if (!self.gzip || i !== 'content-encoding') { - dest.setHeader(i, response.headers[i]) - } - } - dest.statusCode = response.statusCode - } - if (self.pipefilter) { - self.pipefilter(response, dest) - } -} - -Request.prototype.qs = function (q, clobber) { - var self = this - var base - if (!clobber && self.uri.query) { - base = self._qs.parse(self.uri.query) - } else { - base = {} - } - - for (var i in q) { - base[i] = q[i] - } - - var qs = self._qs.stringify(base) - - if (qs === '') { - return self - } - - self.uri = url.parse(self.uri.href.split('?')[0] + '?' + qs) - self.url = self.uri - self.path = self.uri.path - - if (self.uri.host === 'unix') { - self.enableUnixSocket() - } - - return self -} -Request.prototype.form = function (form) { - var self = this - if (form) { - if (!/^application\/x-www-form-urlencoded\b/.test(self.getHeader('content-type'))) { - self.setHeader('content-type', 'application/x-www-form-urlencoded') - } - self.body = (typeof form === 'string') - ? self._qs.rfc3986(form.toString('utf8')) - : self._qs.stringify(form).toString('utf8') - return self - } - // create form-data object - self._form = new FormData() - self._form.on('error', function(err) { - err.message = 'form-data: ' + err.message - self.emit('error', err) - self.abort() - }) - return self._form -} -Request.prototype.multipart = function (multipart) { - var self = this - - self._multipart.onRequest(multipart) - - if (!self._multipart.chunked) { - self.body = self._multipart.body - } - - return self -} -Request.prototype.json = function (val) { - var self = this - - if (!self.hasHeader('accept')) { - self.setHeader('accept', 'application/json') - } - - if (typeof self.jsonReplacer === 'function') { - self._jsonReplacer = self.jsonReplacer - } - - self._json = true - if (typeof val === 'boolean') { - if (self.body !== undefined) { - if (!/^application\/x-www-form-urlencoded\b/.test(self.getHeader('content-type'))) { - self.body = safeStringify(self.body, self._jsonReplacer) - } else { - self.body = self._qs.rfc3986(self.body) - } - if (!self.hasHeader('content-type')) { - self.setHeader('content-type', 'application/json') - } - } - } else { - self.body = safeStringify(val, self._jsonReplacer) - if (!self.hasHeader('content-type')) { - self.setHeader('content-type', 'application/json') - } - } - - if (typeof self.jsonReviver === 'function') { - self._jsonReviver = self.jsonReviver - } - - return self -} -Request.prototype.getHeader = function (name, headers) { - var self = this - var result, re, match - if (!headers) { - headers = self.headers - } - Object.keys(headers).forEach(function (key) { - if (key.length !== name.length) { - return - } - re = new RegExp(name, 'i') - match = key.match(re) - if (match) { - result = headers[key] - } - }) - return result -} -Request.prototype.enableUnixSocket = function () { - // Get the socket & request paths from the URL - var unixParts = this.uri.path.split(':') - , host = unixParts[0] - , path = unixParts[1] - // Apply unix properties to request - this.socketPath = host - this.uri.pathname = path - this.uri.path = path - this.uri.host = host - this.uri.hostname = host - this.uri.isUnix = true -} - - -Request.prototype.auth = function (user, pass, sendImmediately, bearer) { - var self = this - - self._auth.onRequest(user, pass, sendImmediately, bearer) - - return self -} -Request.prototype.aws = function (opts, now) { - var self = this - - if (!now) { - self._aws = opts - return self - } - - if (opts.sign_version == 4 || opts.sign_version == '4') { - // use aws4 - var options = { - host: self.uri.host, - path: self.uri.path, - method: self.method, - headers: { - 'content-type': self.getHeader('content-type') || '' - }, - body: self.body - } - var signRes = aws4.sign(options, { - accessKeyId: opts.key, - secretAccessKey: opts.secret - }) - self.setHeader('authorization', signRes.headers.Authorization) - self.setHeader('x-amz-date', signRes.headers['X-Amz-Date']) - } - else { - // default: use aws-sign2 - var date = new Date() - self.setHeader('date', date.toUTCString()) - var auth = - { key: opts.key - , secret: opts.secret - , verb: self.method.toUpperCase() - , date: date - , contentType: self.getHeader('content-type') || '' - , md5: self.getHeader('content-md5') || '' - , amazonHeaders: aws2.canonicalizeHeaders(self.headers) - } - var path = self.uri.path - if (opts.bucket && path) { - auth.resource = '/' + opts.bucket + path - } else if (opts.bucket && !path) { - auth.resource = '/' + opts.bucket - } else if (!opts.bucket && path) { - auth.resource = path - } else if (!opts.bucket && !path) { - auth.resource = '/' - } - auth.resource = aws2.canonicalizeResource(auth.resource) - self.setHeader('authorization', aws2.authorization(auth)) - } - - return self -} -Request.prototype.httpSignature = function (opts) { - var self = this - httpSignature.signRequest({ - getHeader: function(header) { - return self.getHeader(header, self.headers) - }, - setHeader: function(header, value) { - self.setHeader(header, value) - }, - method: self.method, - path: self.path - }, opts) - debug('httpSignature authorization', self.getHeader('authorization')) - - return self -} -Request.prototype.hawk = function (opts) { - var self = this - self.setHeader('Authorization', hawk.client.header(self.uri, self.method, opts).field) -} -Request.prototype.oauth = function (_oauth) { - var self = this - - self._oauth.onRequest(_oauth) - - return self -} - -Request.prototype.jar = function (jar) { - var self = this - var cookies - - if (self._redirect.redirectsFollowed === 0) { - self.originalCookieHeader = self.getHeader('cookie') - } - - if (!jar) { - // disable cookies - cookies = false - self._disableCookies = true - } else { - var targetCookieJar = (jar && jar.getCookieString) ? jar : globalCookieJar - var urihref = self.uri.href - //fetch cookie in the Specified host - if (targetCookieJar) { - cookies = targetCookieJar.getCookieString(urihref) - } - } - - //if need cookie and cookie is not empty - if (cookies && cookies.length) { - if (self.originalCookieHeader) { - // Don't overwrite existing Cookie header - self.setHeader('cookie', self.originalCookieHeader + '; ' + cookies) - } else { - self.setHeader('cookie', cookies) - } - } - self._jar = jar - return self -} - - -// Stream API -Request.prototype.pipe = function (dest, opts) { - var self = this - - if (self.response) { - if (self._destdata) { - self.emit('error', new Error('You cannot pipe after data has been emitted from the response.')) - } else if (self._ended) { - self.emit('error', new Error('You cannot pipe after the response has been ended.')) - } else { - stream.Stream.prototype.pipe.call(self, dest, opts) - self.pipeDest(dest) - return dest - } - } else { - self.dests.push(dest) - stream.Stream.prototype.pipe.call(self, dest, opts) - return dest - } -} -Request.prototype.write = function () { - var self = this - if (self._aborted) {return} - - if (!self._started) { - self.start() - } - if (self.req) { - return self.req.write.apply(self.req, arguments) - } -} -Request.prototype.end = function (chunk) { - var self = this - if (self._aborted) {return} - - if (chunk) { - self.write(chunk) - } - if (!self._started) { - self.start() - } - if (self.req) { - self.req.end() - } -} -Request.prototype.pause = function () { - var self = this - if (!self.responseContent) { - self._paused = true - } else { - self.responseContent.pause.apply(self.responseContent, arguments) - } -} -Request.prototype.resume = function () { - var self = this - if (!self.responseContent) { - self._paused = false - } else { - self.responseContent.resume.apply(self.responseContent, arguments) - } -} -Request.prototype.destroy = function () { - var self = this - if (!self._ended) { - self.end() - } else if (self.response) { - self.response.destroy() - } -} - -Request.defaultProxyHeaderWhiteList = - Tunnel.defaultProxyHeaderWhiteList.slice() - -Request.defaultProxyHeaderExclusiveList = - Tunnel.defaultProxyHeaderExclusiveList.slice() - -// Exports - -Request.prototype.toJSON = requestToJSON -module.exports = Request diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/.npmignore deleted file mode 100644 index e7726a07..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -/node_modules/* -npm-debug.log diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/License deleted file mode 100644 index 0b58de37..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/License +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2011: -Tim Koschützki (tim@debuggable.com) -Felix Geisendörfer (felix@debuggable.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/Makefile deleted file mode 100644 index eee21a99..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -SHELL := /bin/bash - -test: - @node test/runner.js - -release-major: test - npm version major -m "Release %s" - git push - npm publish - -release-minor: test - npm version minor -m "Release %s" - git push - npm publish - -release-patch: test - npm version patch -m "Release %s" - git push - npm publish - -.PHONY: test - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/README.md deleted file mode 100644 index 09d9c8a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/README.md +++ /dev/null @@ -1,195 +0,0 @@ -# retry - -Abstraction for exponential and custom retry strategies for failed operations. - -## Installation - - npm install retry - -## Current Status - -This module has been tested and is ready to be used. - -## Tutorial - -The example below will retry a potentially failing `dns.resolve` operation -`10` times using an exponential backoff strategy. With the default settings, this -means the last attempt is made after `17 minutes and 3 seconds`. - -``` javascript -var dns = require('dns'); -var retry = require('retry'); - -function faultTolerantResolve(address, cb) { - var operation = retry.operation(); - - operation.attempt(function(currentAttempt) { - dns.resolve(address, function(err, addresses) { - if (operation.retry(err)) { - return; - } - - cb(err ? operation.mainError() : null, addresses); - }); - }); -} - -faultTolerantResolve('nodejs.org', function(err, addresses) { - console.log(err, addresses); -}); -``` - -Of course you can also configure the factors that go into the exponential -backoff. See the API documentation below for all available settings. -currentAttempt is an int representing the number of attempts so far. - -``` javascript -var operation = retry.operation({ - retries: 5, - factor: 3, - minTimeout: 1 * 1000, - maxTimeout: 60 * 1000, - randomize: true, -}); -``` - -## API - -### retry.operation([options]) - -Creates a new `RetryOperation` object. See the `retry.timeouts()` function -below for available `options`. - -### retry.timeouts([options]) - -Returns an array of timeouts. All time `options` and return values are in -milliseconds. If `options` is an array, a copy of that array is returned. - -`options` is a JS object that can contain any of the following keys: - -* `retries`: The maximum amount of times to retry the operation. Default is `10`. -* `factor`: The exponential factor to use. Default is `2`. -* `minTimeout`: The number of milliseconds before starting the first retry. Default is `1000`. -* `maxTimeout`: The maximum number of milliseconds between two retries. Default is `Infinity`. -* `randomize`: Randomizes the timeouts by multiplying with a factor between `1` to `2`. Default is `false`. - -The formula used to calculate the individual timeouts is: - -``` -var Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout); -``` - -Have a look at [this article][article] for a better explanation of approach. - -If you want to tune your `factor` / `times` settings to attempt the last retry -after a certain amount of time, you can use wolfram alpha. For example in order -to tune for `10` attempts in `5 minutes`, you can use this equation: - -![screenshot](https://github.com/tim-kos/node-retry/raw/master/equation.gif) - -Explaining the various values from left to right: - -* `k = 0 ... 9`: The `retries` value (10) -* `1000`: The `minTimeout` value in ms (1000) -* `x^k`: No need to change this, `x` will be your resulting factor -* `5 * 60 * 1000`: The desired total amount of time for retrying in ms (5 minutes) - -To make this a little easier for you, use wolfram alpha to do the calculations: - - - -[article]: http://dthain.blogspot.com/2009/02/exponential-backoff-in-distributed.html - -### retry.createTimeout(attempt, opts) - -Returns a new `timeout` (integer in milliseconds) based on the given parameters. - -`attempt` is an integer representing for which retry the timeout should be calculated. If your retry operation was executed 4 times you had one attempt and 3 retries. If you then want to calculate a new timeout, you should set `attempt` to 4 (attempts are zero-indexed). - -`opts` can include `factor`, `minTimeout`, `randomize` (boolean) and `maxTimeout`. They are documented above. - -`retry.createTimeout()` is used internally by `retry.timeouts()` and is public for you to be able to create your own timeouts for reinserting an item, see [issue #13](https://github.com/tim-kos/node-retry/issues/13). - -### retry.wrap(obj, [options], [methodNames]) - -Wrap all functions of the `obj` with retry. Optionally you can pass operation options and -an array of method names which need to be wrapped. - -``` -retry.wrap(obj) - -retry.wrap(obj, ['method1', 'method2']); - -retry.wrap(obj, {retries: 3}); - -retry.wrap(obj, {retries: 3}, ['method1', 'method2']); -``` -The `options` object can take any options that the usual call to `retry.operation` can take. - -### new RetryOperation(timeouts) - -Creates a new `RetryOperation` where `timeouts` is an array where each value is -a timeout given in milliseconds. - -#### retryOperation.errors() - -Returns an array of all errors that have been passed to -`retryOperation.retry()` so far. - -#### retryOperation.mainError() - -A reference to the error object that occured most frequently. Errors are -compared using the `error.message` property. - -If multiple error messages occured the same amount of time, the last error -object with that message is returned. - -If no errors occured so far, the value is `null`. - -#### retryOperation.attempt(fn, timeoutOps) - -Defines the function `fn` that is to be retried and executes it for the first -time right away. The `fn` function can receive an optional `currentAttempt` callback that represents the number of attempts to execute `fn` so far. - -Optionally defines `timeoutOps` which is an object having a property `timeout` in miliseconds and a property `cb` callback function. -Whenever your retry operation takes longer than `timeout` to execute, the timeout callback function `cb` is called. - - -#### retryOperation.try(fn) - -This is an alias for `retryOperation.attempt(fn)`. This is deprecated. - -#### retryOperation.start(fn) - -This is an alias for `retryOperation.attempt(fn)`. This is deprecated. - -#### retryOperation.retry(error) - -Returns `false` when no `error` value is given, or the maximum amount of retries -has been reached. - -Otherwise it returns `true`, and retries the operation after the timeout for -the current attempt number. - -#### retryOperation.attempts() - -Returns an int representing the number of attempts it took to call `fn` before it was successful. - -## License - -retry is licensed under the MIT license. - - -#Changelog - -0.7.0 Some bugfixes and made retry.createTimeout() public. Fixed issues [#10](https://github.com/tim-kos/node-retry/issues/10), [#12](https://github.com/tim-kos/node-retry/issues/12), and [#13](https://github.com/tim-kos/node-retry/issues/13). - -0.6.0 Introduced optional timeOps parameter for the attempt() function which is an object having a property timeout in miliseconds and a property cb callback function. Whenever your retry operation takes longer than timeout to execute, the timeout callback function cb is called. - -0.5.0 Some minor refactorings. - -0.4.0 Changed retryOperation.try() to retryOperation.attempt(). Deprecated the aliases start() and try() for it. - -0.3.0 Added retryOperation.start() which is an alias for retryOperation.try(). - -0.2.0 Added attempts() function and parameter to retryOperation.try() representing the number of attempts it took to call fn(). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/equation.gif b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/equation.gif deleted file mode 100644 index 97107237..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/equation.gif and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/example/dns.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/example/dns.js deleted file mode 100644 index d6351e9d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/example/dns.js +++ /dev/null @@ -1,31 +0,0 @@ -var dns = require('dns'); -var retry = require('../lib/retry'); - -function faultTolerantResolve(address, cb) { - var opts = { - retries: 2, - factor: 2, - minTimeout: 1 * 1000, - maxTimeout: 2 * 1000, - randomize: true - }; - var operation = retry.operation(opts); - - operation.attempt(function(currentAttempt) { - dns.resolve(address, function(err, addresses) { - if (operation.retry(err)) { - return; - } - - cb(operation.mainError(), operation.errors(), addresses); - }); - }); -} - -faultTolerantResolve('nodejs.org', function(err, errors, addresses) { - console.warn('err:'); - console.log(err); - - console.warn('addresses:'); - console.log(addresses); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/index.js deleted file mode 100644 index ee62f3a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/retry'); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/lib/retry.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/lib/retry.js deleted file mode 100644 index 94685652..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/lib/retry.js +++ /dev/null @@ -1,94 +0,0 @@ -var RetryOperation = require('./retry_operation'); - -exports.operation = function(options) { - var retryForever = false; - if (options && options.forever === true) retryForever = true; - var timeouts = exports.timeouts(options); - return new RetryOperation(timeouts, retryForever); -}; - -exports.timeouts = function(options) { - if (options instanceof Array) { - return [].concat(options); - } - - var opts = { - retries: 10, - factor: 2, - minTimeout: 1 * 1000, - maxTimeout: Infinity, - randomize: false - }; - for (var key in options) { - opts[key] = options[key]; - } - - if (opts.minTimeout > opts.maxTimeout) { - throw new Error('minTimeout is greater than maxTimeout'); - } - - var timeouts = []; - for (var i = 0; i < opts.retries; i++) { - timeouts.push(this.createTimeout(i, opts)); - } - - // sort the array numerically ascending - timeouts.sort(function(a,b) { - return a - b; - }); - - return timeouts; -}; - -exports.createTimeout = function(attempt, opts) { - var random = (opts.randomize) - ? (Math.random() + 1) - : 1; - - var timeout = Math.round(random * opts.minTimeout * Math.pow(opts.factor, attempt)); - timeout = Math.min(timeout, opts.maxTimeout); - - return timeout; -}; - -exports.wrap = function(obj, options, methods) { - if (options instanceof Array) { - methods = options; - options = null; - } - - if (!methods) { - methods = []; - for (var key in obj) { - if (typeof obj[key] === 'function') { - methods.push(key); - } - } - } - - for (var i = 0; i < methods.length; i++) { - var method = methods[i]; - var original = obj[method]; - - obj[method] = function retryWrapper() { - var op = exports.operation(options); - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - - args.push(function(err) { - if (op.retry(err)) { - return; - } - if (err) { - arguments[0] = op.mainError(); - } - callback.apply(this, arguments); - }); - - op.attempt(function() { - original.apply(obj, args); - }); - }; - obj[method].options = options; - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js deleted file mode 100644 index 52b89554..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js +++ /dev/null @@ -1,120 +0,0 @@ -function RetryOperation(timeouts, retryForever) { - this._timeouts = timeouts; - this._fn = null; - this._errors = []; - this._attempts = 1; - this._operationTimeout = null; - this._operationTimeoutCb = null; - this._timeout = null; - - if (!!retryForever) { - this._cachedTimeouts = this._timeouts.slice(0); - } -} -module.exports = RetryOperation; - -RetryOperation.prototype.retry = function(err) { - if (this._timeout) { - clearTimeout(this._timeout); - } - - if (!err) { - return false; - } - - this._errors.push(err); - - var timeout = this._timeouts.shift(); - if (timeout === undefined) { - if (this._cachedTimeouts) { - // retry forever, only keep last error - this._errors.splice(this._errors.length - 1, this._errors.length); - this._timeouts = this._cachedTimeouts.slice(0); - timeout = this._timeouts.shift(); - } else { - return false; - } - } - - var self = this; - setTimeout(function() { - self._attempts++; - - if (self._operationTimeoutCb) { - self._timeout = setTimeout(function() { - self._operationTimeoutCb(self._attempts); - }, self._operationTimeout); - } - - self._fn(self._attempts); - }, timeout); - - return true; -}; - -RetryOperation.prototype.attempt = function(fn, timeoutOps) { - this._fn = fn; - - if (timeoutOps) { - if (timeoutOps.timeout) { - this._operationTimeout = timeoutOps.timeout; - } - if (timeoutOps.cb) { - this._operationTimeoutCb = timeoutOps.cb; - } - } - - var self = this; - if (this._operationTimeoutCb) { - this._timeout = setTimeout(function() { - self._operationTimeoutCb(); - }, self._operationTimeout); - } - - this._fn(this._attempts); -}; - -RetryOperation.prototype.try = function(fn) { - console.log('Using RetryOperation.try() is deprecated'); - this.attempt(fn); -}; - -RetryOperation.prototype.start = function(fn) { - console.log('Using RetryOperation.start() is deprecated'); - this.attempt(fn); -}; - -RetryOperation.prototype.start = RetryOperation.prototype.try; - -RetryOperation.prototype.errors = function() { - return this._errors; -}; - -RetryOperation.prototype.attempts = function() { - return this._attempts; -}; - -RetryOperation.prototype.mainError = function() { - if (this._errors.length === 0) { - return null; - } - - var counts = {}; - var mainError = null; - var mainErrorCount = 0; - - for (var i = 0; i < this._errors.length; i++) { - var error = this._errors[i]; - var message = error.message; - var count = (counts[message] || 0) + 1; - - counts[message] = count; - - if (count >= mainErrorCount) { - mainError = error; - mainErrorCount = count; - } - } - - return mainError; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/package.json deleted file mode 100644 index 058aefb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "author": { - "name": "Tim Koschützki", - "email": "tim@debuggable.com", - "url": "http://debuggable.com/" - }, - "name": "retry", - "description": "Abstraction for exponential and custom retry strategies for failed operations.", - "license": "MIT", - "version": "0.8.0", - "homepage": "https://github.com/tim-kos/node-retry", - "repository": { - "type": "git", - "url": "git://github.com/tim-kos/node-retry.git" - }, - "directories": { - "lib": "./lib" - }, - "main": "index", - "engines": { - "node": "*" - }, - "dependencies": {}, - "devDependencies": { - "fake": "0.2.0", - "far": "0.0.1" - }, - "gitHead": "9446e803d6a41ae08732a4a215ae5bf1ff1ccfdd", - "bugs": { - "url": "https://github.com/tim-kos/node-retry/issues" - }, - "_id": "retry@0.8.0", - "scripts": {}, - "_shasum": "2367628dc0edb247b1eab649dc53ac8628ac2d5f", - "_from": "retry@>=0.8.0 <0.9.0", - "_npmVersion": "2.1.7", - "_nodeVersion": "0.10.33", - "_npmUser": { - "name": "tim-kos", - "email": "tim@debuggable.com" - }, - "maintainers": [ - { - "name": "tim-kos", - "email": "tim@debuggable.com" - } - ], - "dist": { - "shasum": "2367628dc0edb247b1eab649dc53ac8628ac2d5f", - "tarball": "https://registry.npmjs.org/retry/-/retry-0.8.0.tgz" - }, - "_resolved": "https://registry.npmjs.org/retry/-/retry-0.8.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/common.js deleted file mode 100644 index 22472069..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/common.js +++ /dev/null @@ -1,10 +0,0 @@ -var common = module.exports; -var path = require('path'); - -var rootDir = path.join(__dirname, '..'); -common.dir = { - lib: rootDir + '/lib' -}; - -common.assert = require('assert'); -common.fake = require('fake'); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js deleted file mode 100644 index cecfa3b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js +++ /dev/null @@ -1,106 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var retry = require(common.dir.lib + '/retry'); - -(function testErrors() { - var operation = retry.operation(); - - var error = new Error('some error'); - var error2 = new Error('some other error'); - operation._errors.push(error); - operation._errors.push(error2); - - assert.deepEqual(operation.errors(), [error, error2]); -})(); - -(function testMainErrorReturnsMostFrequentError() { - var operation = retry.operation(); - var error = new Error('some error'); - var error2 = new Error('some other error'); - - operation._errors.push(error); - operation._errors.push(error2); - operation._errors.push(error); - - assert.strictEqual(operation.mainError(), error); -})(); - -(function testMainErrorReturnsLastErrorOnEqualCount() { - var operation = retry.operation(); - var error = new Error('some error'); - var error2 = new Error('some other error'); - - operation._errors.push(error); - operation._errors.push(error2); - - assert.strictEqual(operation.mainError(), error2); -})(); - -(function testAttempt() { - var operation = retry.operation(); - var fn = new Function(); - - var timeoutOpts = { - timeout: 1, - cb: function() {} - }; - operation.attempt(fn, timeoutOpts); - - assert.strictEqual(fn, operation._fn); - assert.strictEqual(timeoutOpts.timeout, operation._operationTimeout); - assert.strictEqual(timeoutOpts.cb, operation._operationTimeoutCb); -})(); - -(function testRetry() { - var times = 3; - var error = new Error('some error'); - var operation = retry.operation([1, 2, 3]); - var attempts = 0; - - var finalCallback = fake.callback('finalCallback'); - fake.expectAnytime(finalCallback); - - var fn = function() { - operation.attempt(function(currentAttempt) { - attempts++; - assert.equal(currentAttempt, attempts); - if (operation.retry(error)) { - return; - } - - assert.strictEqual(attempts, 4); - assert.strictEqual(operation.attempts(), attempts); - assert.strictEqual(operation.mainError(), error); - finalCallback(); - }); - }; - - fn(); -})(); - -(function testRetryForever() { - var error = new Error('some error'); - var operation = retry.operation({ retries: 3, forever: true }); - var attempts = 0; - - var finalCallback = fake.callback('finalCallback'); - fake.expectAnytime(finalCallback); - - var fn = function() { - operation.attempt(function(currentAttempt) { - attempts++; - assert.equal(currentAttempt, attempts); - if (attempts !== 6 && operation.retry(error)) { - return; - } - - assert.strictEqual(attempts, 6); - assert.strictEqual(operation.attempts(), attempts); - assert.strictEqual(operation.mainError(), error); - finalCallback(); - }); - }; - - fn(); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-wrap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-wrap.js deleted file mode 100644 index 7ca8bc7e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-wrap.js +++ /dev/null @@ -1,77 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var retry = require(common.dir.lib + '/retry'); - -function getLib() { - return { - fn1: function() {}, - fn2: function() {}, - fn3: function() {} - }; -} - -(function wrapAll() { - var lib = getLib(); - retry.wrap(lib); - assert.equal(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); -}()); - -(function wrapAllPassOptions() { - var lib = getLib(); - retry.wrap(lib, {retries: 2}); - assert.equal(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); - assert.equal(lib.fn1.options.retries, 2); - assert.equal(lib.fn2.options.retries, 2); - assert.equal(lib.fn3.options.retries, 2); -}()); - -(function wrapDefined() { - var lib = getLib(); - retry.wrap(lib, ['fn2', 'fn3']); - assert.notEqual(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); -}()); - -(function wrapDefinedAndPassOptions() { - var lib = getLib(); - retry.wrap(lib, {retries: 2}, ['fn2', 'fn3']); - assert.notEqual(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); - assert.equal(lib.fn2.options.retries, 2); - assert.equal(lib.fn3.options.retries, 2); -}()); - -(function runWrappedWithoutError() { - var callbackCalled; - var lib = {method: function(a, b, callback) { - assert.equal(a, 1); - assert.equal(b, 2); - assert.equal(typeof callback, 'function'); - callback(); - }}; - retry.wrap(lib); - lib.method(1, 2, function() { - callbackCalled = true; - }); - assert.ok(callbackCalled); -}()); - -(function runWrappedWithError() { - var callbackCalled; - var lib = {method: function(callback) { - callback(new Error('Some error')); - }}; - retry.wrap(lib, {retries: 1}); - lib.method(function(err) { - callbackCalled = true; - assert.ok(err instanceof Error); - }); - assert.ok(!callbackCalled); -}()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js deleted file mode 100644 index 7206b0fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js +++ /dev/null @@ -1,69 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var retry = require(common.dir.lib + '/retry'); - -(function testDefaultValues() { - var timeouts = retry.timeouts(); - - assert.equal(timeouts.length, 10); - assert.equal(timeouts[0], 1000); - assert.equal(timeouts[1], 2000); - assert.equal(timeouts[2], 4000); -})(); - -(function testDefaultValuesWithRandomize() { - var minTimeout = 5000; - var timeouts = retry.timeouts({ - minTimeout: minTimeout, - randomize: true - }); - - assert.equal(timeouts.length, 10); - assert.ok(timeouts[0] > minTimeout); - assert.ok(timeouts[1] > timeouts[0]); - assert.ok(timeouts[2] > timeouts[1]); -})(); - -(function testPassedTimeoutsAreUsed() { - var timeoutsArray = [1000, 2000, 3000]; - var timeouts = retry.timeouts(timeoutsArray); - assert.deepEqual(timeouts, timeoutsArray); - assert.notStrictEqual(timeouts, timeoutsArray); -})(); - -(function testTimeoutsAreWithinBoundaries() { - var minTimeout = 1000; - var maxTimeout = 10000; - var timeouts = retry.timeouts({ - minTimeout: minTimeout, - maxTimeout: maxTimeout - }); - for (var i = 0; i < timeouts; i++) { - assert.ok(timeouts[i] >= minTimeout); - assert.ok(timeouts[i] <= maxTimeout); - } -})(); - -(function testTimeoutsAreIncremental() { - var timeouts = retry.timeouts(); - var lastTimeout = timeouts[0]; - for (var i = 0; i < timeouts; i++) { - assert.ok(timeouts[i] > lastTimeout); - lastTimeout = timeouts[i]; - } -})(); - -(function testTimeoutsAreIncrementalForFactorsLessThanOne() { - var timeouts = retry.timeouts({ - retries: 3, - factor: 0.5 - }); - - var expected = [250, 500, 1000]; - assert.deepEqual(expected, timeouts); -})(); - -(function testRetries() { - var timeouts = retry.timeouts({retries: 2}); - assert.strictEqual(timeouts.length, 2); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/runner.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/runner.js deleted file mode 100644 index e0ee2f57..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/retry/test/runner.js +++ /dev/null @@ -1,5 +0,0 @@ -var far = require('far').create(); - -far.add(__dirname); -far.include(/\/test-.*\.js$/); -far.execute(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/LICENSE deleted file mode 100644 index 05eeeb88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/README.md deleted file mode 100644 index 59ad738b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/README.md +++ /dev/null @@ -1,143 +0,0 @@ -# Controlling Flow: callbacks are easy - -## What's actually hard? - -- Doing a bunch of things in a specific order. -- Knowing when stuff is done. -- Handling failures. -- Breaking up functionality into parts (avoid nested inline callbacks) - - -## Common Mistakes - -- Abandoning convention and consistency. -- Putting all callbacks inline. -- Using libraries without grokking them. -- Trying to make async code look sync. - -## Define Conventions - -- Two kinds of functions: *actors* take action, *callbacks* get results. -- Essentially the continuation pattern. Resulting code *looks* similar - to fibers, but is *much* simpler to implement. -- Node works this way in the lowlevel APIs already, and it's very flexible. - -## Callbacks - -- Simple responders -- Must always be prepared to handle errors, that's why it's the first argument. -- Often inline anonymous, but not always. -- Can trap and call other callbacks with modified data, or pass errors upwards. - -## Actors - -- Last argument is a callback. -- If any error occurs, and can't be handled, pass it to the callback and return. -- Must not throw. Return value ignored. -- return x ==> return cb(null, x) -- throw er ==> return cb(er) - -```javascript -// return true if a path is either -// a symlink or a directory. -function isLinkOrDir (path, cb) { - fs.lstat(path, function (er, s) { - if (er) return cb(er) - return cb(null, s.isDirectory() || s.isSymbolicLink()) - }) -} -``` - -# asyncMap - -## Usecases - -- I have a list of 10 files, and need to read all of them, and then continue when they're all done. -- I have a dozen URLs, and need to fetch them all, and then continue when they're all done. -- I have 4 connected users, and need to send a message to all of them, and then continue when that's done. -- I have a list of n things, and I need to dosomething with all of them, in parallel, and get the results once they're all complete. - - -## Solution - -```javascript -var asyncMap = require("slide").asyncMap -function writeFiles (files, what, cb) { - asyncMap(files, function (f, cb) { - fs.writeFile(f, what, cb) - }, cb) -} -writeFiles([my, file, list], "foo", cb) -``` - -# chain - -## Usecases - -- I have to do a bunch of things, in order. Get db credentials out of a file, - read the data from the db, write that data to another file. -- If anything fails, do not continue. -- I still have to provide an array of functions, which is a lot of boilerplate, - and a pita if your functions take args like - -```javascript -function (cb) { - blah(a, b, c, cb) -} -``` - -- Results are discarded, which is a bit lame. -- No way to branch. - -## Solution - -- reduces boilerplate by converting an array of [fn, args] to an actor - that takes no arguments (except cb) -- A bit like Function#bind, but tailored for our use-case. -- bindActor(obj, "method", a, b, c) -- bindActor(fn, a, b, c) -- bindActor(obj, fn, a, b, c) -- branching, skipping over falsey arguments - -```javascript -chain([ - doThing && [thing, a, b, c] -, isFoo && [doFoo, "foo"] -, subChain && [chain, [one, two]] -], cb) -``` - -- tracking results: results are stored in an optional array passed as argument, - last result is always in results[results.length - 1]. -- treat chain.first and chain.last as placeholders for the first/last - result up until that point. - - -## Non-trivial example - -- Read number files in a directory -- Add the results together -- Ping a web service with the result -- Write the response to a file -- Delete the number files - -```javascript -var chain = require("slide").chain -function myProgram (cb) { - var res = [], last = chain.last, first = chain.first - chain([ - [fs, "readdir", "the-directory"] - , [readFiles, "the-directory", last] - , [sum, last] - , [ping, "POST", "example.com", 80, "/foo", last] - , [fs, "writeFile", "result.txt", last] - , [rmFiles, "./the-directory", first] - ], res, cb) -} -``` - -# Conclusion: Convention Profits - -- Consistent API from top to bottom. -- Sneak in at any point to inject functionality. Testable, reusable, ... -- When ruby and python users whine, you can smile condescendingly. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/index.js deleted file mode 100644 index 0a9277f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports=require("./lib/slide") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/async-map-ordered.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/async-map-ordered.js deleted file mode 100644 index 5cca79a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/async-map-ordered.js +++ /dev/null @@ -1,65 +0,0 @@ - -throw new Error("TODO: Not yet implemented.") - -/* -usage: - -Like asyncMap, but only can take a single cb, and guarantees -the order of the results. -*/ - -module.exports = asyncMapOrdered - -function asyncMapOrdered (list, fn, cb_) { - if (typeof cb_ !== "function") throw new Error( - "No callback provided to asyncMapOrdered") - - if (typeof fn !== "function") throw new Error( - "No map function provided to asyncMapOrdered") - - if (list === undefined || list === null) return cb_(null, []) - if (!Array.isArray(list)) list = [list] - if (!list.length) return cb_(null, []) - - var errState = null - , l = list.length - , a = l - , res = [] - , resCount = 0 - , maxArgLen = 0 - - function cb (index) { return function () { - if (errState) return - var er = arguments[0] - var argLen = arguments.length - maxArgLen = Math.max(maxArgLen, argLen) - res[index] = argLen === 1 ? [er] : Array.apply(null, arguments) - - // see if any new things have been added. - if (list.length > l) { - var newList = list.slice(l) - a += (list.length - l) - var oldLen = l - l = list.length - process.nextTick(function () { - newList.forEach(function (ar, i) { fn(ar, cb(i + oldLen)) }) - }) - } - - if (er || --a === 0) { - errState = er - cb_.apply(null, [errState].concat(flip(res, resCount, maxArgLen))) - } - }} - // expect the supplied cb function to be called - // "n" times for each thing in the array. - list.forEach(function (ar) { - steps.forEach(function (fn, i) { fn(ar, cb(i)) }) - }) -} - -function flip (res, resCount, argLen) { - var flat = [] - // res = [[er, x, y], [er, x1, y1], [er, x2, y2, z2]] - // return [[x, x1, x2], [y, y1, y2], [undefined, undefined, z2]] - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/async-map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/async-map.js deleted file mode 100644 index ccf345f3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/async-map.js +++ /dev/null @@ -1,54 +0,0 @@ - -/* -usage: - -// do something to a list of things -asyncMap(myListOfStuff, function (thing, cb) { doSomething(thing.foo, cb) }, cb) -// do more than one thing to each item -asyncMap(list, fooFn, barFn, cb) - -*/ - -module.exports = asyncMap - -function asyncMap () { - var steps = Array.prototype.slice.call(arguments) - , list = steps.shift() || [] - , cb_ = steps.pop() - if (typeof cb_ !== "function") throw new Error( - "No callback provided to asyncMap") - if (!list) return cb_(null, []) - if (!Array.isArray(list)) list = [list] - var n = steps.length - , data = [] // 2d array - , errState = null - , l = list.length - , a = l * n - if (!a) return cb_(null, []) - function cb (er) { - if (er && !errState) errState = er - - var argLen = arguments.length - for (var i = 1; i < argLen; i ++) if (arguments[i] !== undefined) { - data[i - 1] = (data[i - 1] || []).concat(arguments[i]) - } - // see if any new things have been added. - if (list.length > l) { - var newList = list.slice(l) - a += (list.length - l) * n - l = list.length - process.nextTick(function () { - newList.forEach(function (ar) { - steps.forEach(function (fn) { fn(ar, cb) }) - }) - }) - } - - if (--a === 0) cb_.apply(null, [errState].concat(data)) - } - // expect the supplied cb function to be called - // "n" times for each thing in the array. - list.forEach(function (ar) { - steps.forEach(function (fn) { fn(ar, cb) }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/bind-actor.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/bind-actor.js deleted file mode 100644 index 6a370727..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/bind-actor.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = bindActor -function bindActor () { - var args = - Array.prototype.slice.call - (arguments) // jswtf. - , obj = null - , fn - if (typeof args[0] === "object") { - obj = args.shift() - fn = args.shift() - if (typeof fn === "string") - fn = obj[ fn ] - } else fn = args.shift() - return function (cb) { - fn.apply(obj, args.concat(cb)) } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/chain.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/chain.js deleted file mode 100644 index 17b37114..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/chain.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = chain -var bindActor = require("./bind-actor.js") -chain.first = {} ; chain.last = {} -function chain (things, cb) { - var res = [] - ;(function LOOP (i, len) { - if (i >= len) return cb(null,res) - if (Array.isArray(things[i])) - things[i] = bindActor.apply(null, - things[i].map(function(i){ - return (i===chain.first) ? res[0] - : (i===chain.last) - ? res[res.length - 1] : i })) - if (!things[i]) return LOOP(i + 1, len) - things[i](function (er, data) { - if (er) return cb(er, res) - if (data !== undefined) res = res.concat(data) - LOOP(i + 1, len) - }) - })(0, things.length) } diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/slide.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/slide.js deleted file mode 100644 index 6e9ec232..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/lib/slide.js +++ /dev/null @@ -1,3 +0,0 @@ -exports.asyncMap = require("./async-map") -exports.bindActor = require("./bind-actor") -exports.chain = require("./chain") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/package.json deleted file mode 100644 index 05bfcb3d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/node_modules/slide/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "slide", - "version": "1.1.6", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "contributors": [ - { - "name": "S. Sriram", - "email": "ssriram@gmail.com", - "url": "http://www.565labs.com" - } - ], - "description": "A flow control lib small enough to fit on in a slide presentation. Derived live at Oak.JS", - "main": "./lib/slide.js", - "dependencies": {}, - "devDependencies": {}, - "engines": { - "node": "*" - }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/slide-flow-control.git" - }, - "license": "ISC", - "gitHead": "8345e51ee41e35825abc1a40750ea11462f57028", - "bugs": { - "url": "https://github.com/isaacs/slide-flow-control/issues" - }, - "homepage": "https://github.com/isaacs/slide-flow-control", - "_id": "slide@1.1.6", - "scripts": {}, - "_shasum": "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707", - "_from": "slide@>=1.1.3 <2.0.0", - "_npmVersion": "2.0.0-beta.3", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "dist": { - "shasum": "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707", - "tarball": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/package.json deleted file mode 100644 index e1cd2f0b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "npm-registry-client", - "description": "Client for the npm registry", - "version": "7.1.2", - "repository": { - "url": "git+https://github.com/npm/npm-registry-client.git" - }, - "main": "index.js", - "scripts": { - "test": "standard && tap test/*.js" - }, - "dependencies": { - "chownr": "^1.0.1", - "concat-stream": "^1.4.6", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "normalize-package-data": "~1.0.1 || ^2.0.0", - "npm-package-arg": "^3.0.0 || ^4.0.0", - "once": "^1.3.0", - "request": "^2.47.0", - "retry": "^0.8.0", - "rimraf": "2", - "semver": "2 >=2.2.1 || 3.x || 4 || 5", - "slide": "^1.1.3", - "npmlog": "~2.0.0 || ~3.1.0" - }, - "devDependencies": { - "negotiator": "^0.4.9", - "nock": "^0.56.0", - "readable-stream": "^2.0.2", - "standard": "^4.0.0", - "tap": "^1.2.0" - }, - "optionalDependencies": { - "npmlog": "~2.0.0 || ~3.1.0" - }, - "license": "ISC", - "gitHead": "0b595c4769f314a12661d537a328cf4e5658a00f", - "bugs": { - "url": "https://github.com/npm/npm-registry-client/issues" - }, - "homepage": "https://github.com/npm/npm-registry-client#readme", - "_id": "npm-registry-client@7.1.2", - "_shasum": "ddf243a2bd149d35172fe680aff40dfa20054bc3", - "_from": "npm-registry-client@>=7.1.0 <7.2.0", - "_npmVersion": "3.9.2", - "_nodeVersion": "4.4.0", - "_npmUser": { - "name": "iarna", - "email": "me@re-becca.org" - }, - "dist": { - "shasum": "ddf243a2bd149d35172fe680aff40dfa20054bc3", - "tarball": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.1.2.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/npm-registry-client-7.1.2.tgz_1466040796551_0.645394338760525" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.1.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/00-setup.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/00-setup.js deleted file mode 100644 index 747768fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/00-setup.js +++ /dev/null @@ -1,10 +0,0 @@ -var tap = require('tap') -var rimraf = require('rimraf') - -tap.test('setup', function (t) { - rimraf(__dirname + '/fixtures/cache', function (er) { - if (er) throw er - t.pass('cache cleaned') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/access.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/access.js deleted file mode 100644 index 78b00017..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/access.js +++ /dev/null @@ -1,370 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'http://localhost:1337' -var PARAMS = { - auth: { token: 'foo' }, - scope: 'myorg', - team: 'myteam', - package: '@foo/bar', - permissions: 'read-write' -} -var UNSCOPED = { - auth: { token: 'foo' }, - scope: 'myorg', - team: 'myteam', - package: 'bar', - permissions: 'read-write' -} - -var commands = [ - 'public', 'restricted', 'grant', 'revoke', 'ls-packages', 'ls-collaborators' -] - -test('access public', function (t) { - server.expect('POST', '/-/package/%40foo%2Fbar/access', function (req, res) { - t.equal(req.method, 'POST') - onJsonReq(req, function (json) { - t.deepEqual(json, { access: 'public' }) - res.statusCode = 200 - res.json({ accessChanged: true }) - }) - }) - var params = Object.create(PARAMS) - params.package = '@foo/bar' - client.access('public', URI, params, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('access restricted', function (t) { - server.expect('POST', '/-/package/%40foo%2Fbar/access', function (req, res) { - t.equal(req.method, 'POST') - onJsonReq(req, function (json) { - t.deepEqual(json, { access: 'restricted' }) - res.statusCode = 200 - res.json({ accessChanged: true }) - }) - }) - client.access('restricted', URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('access grant basic', function (t) { - server.expect('PUT', '/-/team/myorg/myteam/package', function (req, res) { - t.equal(req.method, 'PUT') - onJsonReq(req, function (json) { - t.deepEqual(json, { - permissions: PARAMS.permissions, - package: PARAMS.package - }) - res.statusCode = 201 - res.json({ accessChanged: true }) - }) - }) - client.access('grant', URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('access grant basic unscoped', function (t) { - server.expect('PUT', '/-/team/myorg/myteam/package', function (req, res) { - t.equal(req.method, 'PUT') - onJsonReq(req, function (json) { - t.deepEqual(json, { - permissions: UNSCOPED.permissions, - package: UNSCOPED.package - }) - res.statusCode = 201 - res.json({ accessChanged: true }) - }) - }) - client.access('grant', URI, UNSCOPED, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('access revoke basic', function (t) { - server.expect('DELETE', '/-/team/myorg/myteam/package', function (req, res) { - t.equal(req.method, 'DELETE') - onJsonReq(req, function (json) { - t.deepEqual(json, { - package: PARAMS.package - }) - res.statusCode = 200 - res.json({ accessChanged: true }) - }) - }) - client.access('revoke', URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('access revoke basic unscoped', function (t) { - server.expect('DELETE', '/-/team/myorg/myteam/package', function (req, res) { - t.equal(req.method, 'DELETE') - onJsonReq(req, function (json) { - t.deepEqual(json, { - package: UNSCOPED.package - }) - res.statusCode = 200 - res.json({ accessChanged: true }) - }) - }) - client.access('revoke', URI, UNSCOPED, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('ls-packages on team', function (t) { - var serverPackages = { - '@foo/bar': 'write', - '@foo/util': 'read' - } - var clientPackages = { - '@foo/bar': 'read-write', - '@foo/util': 'read-only' - } - var uri = '/-/team/myorg/myteam/package?format=cli' - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverPackages) - }) - client.access('ls-packages', URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientPackages) - t.end() - }) -}) - -test('ls-packages on org', function (t) { - var serverPackages = { - '@foo/bar': 'write', - '@foo/util': 'read' - } - var clientPackages = { - '@foo/bar': 'read-write', - '@foo/util': 'read-only' - } - var uri = '/-/org/myorg/package?format=cli' - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverPackages) - }) - var params = Object.create(PARAMS) - params.team = null - client.access('ls-packages', URI, params, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientPackages) - t.end() - }) -}) - -test('ls-packages on user', function (t) { - var serverPackages = { - '@foo/bar': 'write', - '@foo/util': 'read' - } - var clientPackages = { - '@foo/bar': 'read-write', - '@foo/util': 'read-only' - } - var firstUri = '/-/org/myorg/package?format=cli' - server.expect('GET', firstUri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 404 - res.json({error: 'not found'}) - }) - var secondUri = '/-/user/myorg/package?format=cli' - server.expect('GET', secondUri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverPackages) - }) - var params = Object.create(PARAMS) - params.team = null - client.access('ls-packages', URI, params, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientPackages) - t.end() - }) -}) - -test('ls-collaborators', function (t) { - var serverCollaborators = { - 'myorg:myteam': 'write', - 'myorg:anotherteam': 'read' - } - var clientCollaborators = { - 'myorg:myteam': 'read-write', - 'myorg:anotherteam': 'read-only' - } - var uri = '/-/package/%40foo%2Fbar/collaborators?format=cli' - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverCollaborators) - }) - client.access('ls-collaborators', URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientCollaborators) - t.end() - }) -}) - -test('ls-collaborators w/scope', function (t) { - var serverCollaborators = { - 'myorg:myteam': 'write', - 'myorg:anotherteam': 'read' - } - var clientCollaborators = { - 'myorg:myteam': 'read-write', - 'myorg:anotherteam': 'read-only' - } - var uri = '/-/package/%40foo%2Fbar/collaborators?format=cli&user=zkat' - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverCollaborators) - }) - var params = Object.create(PARAMS) - params.user = 'zkat' - client.access('ls-collaborators', URI, params, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientCollaborators) - t.end() - }) -}) - -test('ls-collaborators w/o scope', function (t) { - var serverCollaborators = { - 'myorg:myteam': 'write', - 'myorg:anotherteam': 'read' - } - var clientCollaborators = { - 'myorg:myteam': 'read-write', - 'myorg:anotherteam': 'read-only' - } - var uri = '/-/package/bar/collaborators?format=cli&user=zkat' - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverCollaborators) - }) - var params = Object.create(UNSCOPED) - params.user = 'zkat' - client.access('ls-collaborators', URI, params, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientCollaborators) - t.end() - }) -}) - -test('access command base validation', function (t) { - t.throws(function () { - client.access(undefined, URI, PARAMS, nop) - }, 'command is required') - t.throws(function () { - client.access('whoops', URI, PARAMS, nop) - }, 'command must be a valid subcommand') - commands.forEach(function (cmd) { - t.throws(function () { - client.access(cmd, undefined, PARAMS, nop) - }, 'registry URI is required') - t.throws(function () { - client.access(cmd, URI, undefined, nop) - }, 'params is required') - t.throws(function () { - client.access(cmd, URI, '', nop) - }, 'params must be an object') - t.throws(function () { - client.access(cmd, URI, {scope: 'o', team: 't'}, nop) - }, 'auth is required') - t.throws(function () { - client.access(cmd, URI, {auth: 5, scope: 'o', team: 't'}, nop) - }, 'auth must be an object') - t.throws(function () { - client.access(cmd, URI, PARAMS, {}) - }, 'callback must be a function') - t.throws(function () { - client.access(cmd, URI, PARAMS, undefined) - }, 'callback is required') - if (contains([ - 'public', 'restricted' - ], cmd)) { - t.throws(function () { - var params = Object.create(PARAMS) - params.package = null - client.access(cmd, URI, params, nop) - }, 'package is required') - t.throws(function () { - var params = Object.create(PARAMS) - params.package = 'underscore' - client.access(cmd, URI, params, nop) - }, 'only scoped packages are allowed') - } - if (contains(['grant', 'revoke', 'ls-packages'], cmd)) { - t.throws(function () { - var params = Object.create(PARAMS) - params.scope = null - client.access(cmd, URI, params, nop) - }, 'scope is required') - } - if (contains(['grant', 'revoke'], cmd)) { - t.throws(function () { - var params = Object.create(PARAMS) - params.team = null - client.access(cmd, URI, params, nop) - }, 'team is required') - } - if (cmd === 'grant') { - t.throws(function () { - var params = Object.create(PARAMS) - params.permissions = null - client.access(cmd, URI, params, nop) - }, 'permissions are required') - t.throws(function () { - var params = Object.create(PARAMS) - params.permissions = 'idkwhat' - client.access(cmd, URI, params, nop) - }, 'permissions must be either read-only or read-write') - } - }) - t.end() -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) - -function onJsonReq (req, cb) { - var buffer = '' - req.setEncoding('utf8') - req.on('data', function (data) { buffer += data }) - req.on('end', function () { cb(buffer ? JSON.parse(buffer) : undefined) }) -} - -function contains (arr, item) { - return arr.indexOf(item) !== -1 -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/adduser-new.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/adduser-new.js deleted file mode 100644 index a834841d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/adduser-new.js +++ /dev/null @@ -1,58 +0,0 @@ -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var password = '%1234@asdf%' -var username = 'username' -var email = 'i@izs.me' -var userdata = { - name: username, - email: email, - _id: 'org.couchdb.user:username', - type: 'user', - roles: [], - date: '2012-06-07T04:11:21.591Z' -} - -var SD = require('string_decoder').StringDecoder -var decoder = new SD() - -tap.test('create new user account', function (t) { - var auth = { - username: username, - password: password, - email: email - } - var params = { auth: auth } - - server.expect('/registry/_design/app/_rewrite/-/user/org.couchdb.user:username', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.on('data', function (d) { - b += decoder.write(d) - }) - - req.on('end', function () { - var o = JSON.parse(b) - userdata.password = password - userdata.date = o.date - t.deepEqual(o, userdata) - - res.statusCode = 201 - res.json(auth) - }) - }) - - client.adduser( - 'http://localhost:1337/registry/_design/app/_rewrite', - params, - function (er, data) { - if (er) throw er - t.deepEqual(data, auth, 'received expected auth data') - server.close() - t.end() - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/adduser-update.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/adduser-update.js deleted file mode 100644 index 03d5f468..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/adduser-update.js +++ /dev/null @@ -1,68 +0,0 @@ -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var password = '%1234@asdf%' -var username = 'username' -var email = 'i@izs.me' -var userdata = { - name: username, - email: email, - _id: 'org.couchdb.user:username', - type: 'user', - roles: [], - date: '2012-06-07T04:11:21.591Z' } -var SD = require('string_decoder').StringDecoder -var decoder = new SD() - -tap.test('update a user acct', function (t) { - var auth = { - username: username, - password: password, - email: email - } - var params = { auth: auth } - - server.expect('PUT', '/-/user/org.couchdb.user:username', function (req, res) { - t.equal(req.method, 'PUT') - res.statusCode = 409 - res.json({error: 'conflict'}) - }) - - server.expect('GET', '/-/user/org.couchdb.user:username?write=true', function (req, res) { - t.equal(req.method, 'GET') - res.json(userdata) - }) - - server.expect('PUT', '/-/user/org.couchdb.user:username/-rev/' + userdata._rev, function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.on('data', function (d) { - b += decoder.write(d) - }) - - req.on('end', function () { - var o = JSON.parse(b) - userdata.password = password - userdata.date = o.date - t.deepEqual(o, userdata) - - res.statusCode = 201 - res.json(auth) - }) - }) - - client.adduser( - 'http://localhost:1337/', - params, - function (er, data) { - if (er) throw er - t.deepEqual(data, auth, 'got expected auth data') - server.close() - t.end() - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/adduser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/adduser.js deleted file mode 100644 index 10816ebf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/adduser.js +++ /dev/null @@ -1,162 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var USERNAME = 'username' -var PASSWORD = 'password' -var EMAIL = 'n@p.m' -var AUTH = { - auth: { - username: USERNAME, - password: PASSWORD, - email: EMAIL - } -} - -test('adduser call contract', function (t) { - t.throws(function () { - client.adduser(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.adduser([], AUTH, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.adduser(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.adduser(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.adduser(URI, AUTH, undefined) - }, 'requires callback') - - t.throws(function () { - client.adduser(URI, AUTH, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - auth: { - password: PASSWORD, - email: EMAIL - } - } - client.adduser(URI, params, nop) - }, - { name: 'AssertionError', message: 'must include username in auth' }, - 'auth must include username' - ) - - t.throws( - function () { - var params = { - auth: { - username: USERNAME, - email: EMAIL - } - } - client.adduser(URI, params, nop) - }, - { name: 'AssertionError', message: 'must include password in auth' }, - 'auth must include password' - ) - - t.throws( - function () { - var params = { - auth: { - username: USERNAME, - password: PASSWORD - } - } - client.adduser(URI, params, nop) - }, - { name: 'AssertionError', message: 'must include email in auth' }, - 'auth must include email' - ) - - t.test('username missing', function (t) { - var params = { - auth: { - username: '', - password: PASSWORD, - email: EMAIL - } - } - client.adduser(URI, params, function (err) { - t.equal(err && err.message, 'No username supplied.', 'username must not be empty') - t.end() - }) - }) - - t.test('password missing', function (t) { - var params = { - auth: { - username: USERNAME, - password: '', - email: EMAIL - } - } - client.adduser(URI, params, function (err) { - t.equal( - err && err.message, - 'No password supplied.', - 'password must not be empty' - ) - t.end() - }) - }) - - t.test('email missing', function (t) { - var params = { - auth: { - username: USERNAME, - password: PASSWORD, - email: '' - } - } - client.adduser(URI, params, function (err) { - t.equal( - err && err.message, - 'No email address supplied.', - 'email must not be empty' - ) - t.end() - }) - }) - - t.test('email malformed', function (t) { - var params = { - auth: { - username: USERNAME, - password: PASSWORD, - email: 'lolbutts' - } - } - client.adduser(URI, params, function (err) { - t.equal( - err && err.message, - 'Please use a real email address.', - 'email must look like email' - ) - t.end() - }) - }) - - t.end() -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/config-defaults.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/config-defaults.js deleted file mode 100644 index a432da85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/config-defaults.js +++ /dev/null @@ -1,42 +0,0 @@ -var test = require('tap').test - -require('./lib/server.js').close() -var common = require('./lib/common.js') - -test('config defaults', function (t) { - var client = common.freshClient() - - var proxy = client.config.proxy - t.notOk(proxy.http, 'no default value for HTTP proxy') - t.notOk(proxy.https, 'no default value for HTTPS proxy') - t.notOk(proxy.localAddress, 'no default value for local address') - - var ssl = client.config.ssl - t.notOk(ssl.ca, 'no default value for SSL certificate authority bundle') - t.notOk(ssl.certificate, 'no default value for SSL client certificate') - t.notOk(ssl.key, 'no default value for SSL client certificate key') - t.equal(ssl.strict, true, 'SSL is strict by default') - - var retry = client.config.retry - t.equal(retry.retries, 2, 'default retry count is 2') - t.equal(retry.factor, 10, 'default retry factor is 10') - t.equal(retry.minTimeout, 10000, 'retry minimum timeout is 10000 (10 seconds)') - t.equal(retry.maxTimeout, 60000, 'retry maximum timeout is 60000 (60 seconds)') - - t.equal(client.config.userAgent, 'node/' + process.version, 'default userAgent') - t.ok(client.log.info, "there's a default logger") - t.equal(client.config.defaultTag, 'latest', 'default tag is "latest"') - t.notOk(client.config.couchToken, 'no couchToken by default') - t.notOk(client.config.sessionToken, 'no sessionToken by default') - - t.end() -}) - -test('missing HTTPS proxy defaults to HTTP proxy', function (t) { - var client = common.freshClient({ proxy: { http: 'http://proxy.npm:8088/' }}) - - t.equal(client.config.proxy.http, 'http://proxy.npm:8088/', 'HTTP proxy set') - t.equal(client.config.proxy.http, client.config.proxy.https, 'HTTP === HTTPS') - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/config-override.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/config-override.js deleted file mode 100644 index 026cb199..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/config-override.js +++ /dev/null @@ -1,57 +0,0 @@ -var test = require('tap').test - -require('./lib/server.js').close() -var common = require('./lib/common.js') -var config = { - proxy: { - http: 'http://proxy.npm:8088/', - https: 'https://proxy.npm:8043/', - localAddress: 'localhost.localdomain' - }, - ssl: { - ca: 'not including a PEM', - certificate: 'still not including a PEM', - key: 'nope', - strict: false - }, - retry: { - count: 1, - factor: 9001, - minTimeout: -1, - maxTimeout: Infinity - }, - userAgent: 'npm-awesome/4 (Mozilla 5.0)', - log: { fake: function () {} }, - defaultTag: 'next', - couchToken: { object: true }, - sessionToken: 'hamchunx' -} - -test('config defaults', function (t) { - var client = common.freshClient(config) - - var proxy = client.config.proxy - t.equal(proxy.http, 'http://proxy.npm:8088/') - t.equal(proxy.https, 'https://proxy.npm:8043/') - t.equal(proxy.localAddress, 'localhost.localdomain') - - var ssl = client.config.ssl - t.equal(ssl.ca, 'not including a PEM') - t.equal(ssl.certificate, 'still not including a PEM') - t.equal(ssl.key, 'nope') - t.equal(ssl.strict, false) - - var retry = client.config.retry - t.equal(retry.count, 1) - t.equal(retry.factor, 9001) - t.equal(retry.minTimeout, -1) - t.equal(retry.maxTimeout, Infinity) - - t.equal(client.config.userAgent, 'npm-awesome/4 (Mozilla 5.0)') - t.ok(client.log.fake) - t.equal(client.config.defaultTag, 'next') - t.ok(client.config.couchToken.object) - t.equal(client.config.sessionToken, 'hamchunx') - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/deprecate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/deprecate.js deleted file mode 100644 index 4407d7c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/deprecate.js +++ /dev/null @@ -1,216 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var cache = require('./fixtures/underscore/cache.json') - -var client = common.freshClient() - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var VERSION = '1.3.2' -var MESSAGE = 'uhhh' -var TOKEN = 'lolbutts' -var AUTH = { - token: TOKEN -} -var PARAMS = { - version: VERSION, - message: MESSAGE, - auth: AUTH -} - -test('deprecate call contract', function (t) { - t.throws(function () { - client.deprecate(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.deprecate([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.deprecate(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.deprecate(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.deprecate(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.deprecate(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - message: MESSAGE, - auth: AUTH - } - client.deprecate(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass version to deprecate' }, - 'params must include version to deprecate' - ) - - t.throws( - function () { - var params = { - version: VERSION, - auth: AUTH - } - client.deprecate(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass message to deprecate' }, - 'params must include deprecation message' - ) - - t.throws( - function () { - var params = { - version: VERSION, - message: MESSAGE - } - client.deprecate(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to deprecate' }, - 'params must include auth' - ) - - t.test('malformed semver in deprecation', function (t) { - var params = { - version: '-9001', - message: MESSAGE, - auth: AUTH - } - client.deprecate(URI, params, function (err) { - t.equal( - err && err.message, - 'invalid version range: -9001', - 'got expected semver validation failure' - ) - t.end() - }) - }) - - t.end() -}) - -test('deprecate a package', function (t) { - server.expect('GET', '/underscore?write=true', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('PUT', '/underscore', function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - - var undeprecated = [ - '1.0.3', '1.0.4', '1.1.0', '1.1.1', '1.1.2', '1.1.3', '1.1.4', '1.1.5', '1.1.6', - '1.1.7', '1.2.0', '1.2.1', '1.2.2', '1.2.3', '1.2.4', '1.3.0', '1.3.1', '1.3.3' - ] - for (var i = 0; i < undeprecated.length; i++) { - var current = undeprecated[i] - t.notEqual( - updated.versions[current].deprecated, - MESSAGE, - current + ' not deprecated' - ) - } - - t.equal( - updated.versions[VERSION].deprecated, - MESSAGE, - VERSION + ' deprecated' - ) - res.statusCode = 201 - res.json({ deprecated: true }) - }) - }) - - client.deprecate( - common.registry + '/underscore', - PARAMS, - function (er, data) { - t.ifError(er) - t.ok(data.deprecated, 'was deprecated') - - t.end() - } - ) -}) - -test('deprecate a scoped package', function (t) { - server.expect('GET', '/@test%2funderscore?write=true', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('PUT', '/@test%2funderscore', function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - - var undeprecated = [ - '1.0.3', '1.0.4', '1.1.0', '1.1.1', '1.1.2', '1.1.3', '1.1.4', '1.1.5', '1.1.6', - '1.1.7', '1.2.0', '1.2.1', '1.2.2', '1.2.3', '1.2.4', '1.3.0', '1.3.1', '1.3.3' - ] - for (var i = 0; i < undeprecated.length; i++) { - var current = undeprecated[i] - t.notEqual( - updated.versions[current].deprecated, - MESSAGE, - current + ' not deprecated' - ) - } - - t.equal( - updated.versions[VERSION].deprecated, - MESSAGE, - VERSION + ' deprecated' - ) - res.statusCode = 201 - res.json({ deprecated: true }) - }) - }) - - client.deprecate( - common.registry + '/@test%2funderscore', - PARAMS, - function (er, data) { - t.ifError(er) - t.ok(data.deprecated, 'was deprecated') - - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - t.ok(true) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-add.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-add.js deleted file mode 100644 index 00f43b0f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-add.js +++ /dev/null @@ -1,142 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var BASE_URL = 'http://localhost:1337/' -var URI = '/-/package/underscore/dist-tags/test' -var TOKEN = 'foo' -var AUTH = { - token: TOKEN -} -var PACKAGE = 'underscore' -var DIST_TAG = 'test' -var VERSION = '3.1.3' -var PARAMS = { - 'package': PACKAGE, - distTag: DIST_TAG, - version: VERSION, - auth: AUTH -} - -test('distTags.add call contract', function (t) { - t.throws(function () { - client.distTags.add(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.distTags.add([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.distTags.add(BASE_URL, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.distTags.add(BASE_URL, '', nop) - }, 'params must be object') - - t.throws(function () { - client.distTags.add(BASE_URL, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.distTags.add(BASE_URL, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - distTag: DIST_TAG, - version: VERSION, - auth: AUTH - } - client.distTags.add(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package name to distTags.add' - }, - 'distTags.add must include package name' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - version: VERSION, - auth: AUTH - } - client.distTags.add(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package distTag name to distTags.add' - }, - 'distTags.add must include dist-tag' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - distTag: DIST_TAG, - auth: AUTH - } - client.distTags.add(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass version to be mapped to distTag to distTags.add' - }, - 'distTags.add must include version' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - distTag: DIST_TAG, - version: VERSION - } - client.distTags.add(BASE_URL, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to distTags.add' }, - 'distTags.add must include auth' - ) - - t.end() -}) - -test('add a new dist-tag to a package', function (t) { - server.expect('PUT', URI, function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - t.doesNotThrow(function () { - var parsed = JSON.parse(b) - t.deepEqual(parsed, VERSION) - - res.statusCode = 200 - res.json({ test: VERSION }) - }, 'got valid JSON from client') - }) - }) - - client.distTags.add(BASE_URL, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.test, 'dist-tag added') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-fetch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-fetch.js deleted file mode 100644 index cde338cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-fetch.js +++ /dev/null @@ -1,99 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var BASE_URL = 'http://localhost:1337/' -var URI = '/-/package/underscore/dist-tags' -var TOKEN = 'foo' -var AUTH = { - token: TOKEN -} -var PACKAGE = 'underscore' -var PARAMS = { - 'package': PACKAGE, - auth: AUTH -} - -test('distTags.fetch call contract', function (t) { - t.throws(function () { - client.distTags.fetch(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.distTags.fetch([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.distTags.fetch(BASE_URL, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.distTags.fetch(BASE_URL, '', nop) - }, 'params must be object') - - t.throws(function () { - client.distTags.fetch(BASE_URL, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.distTags.fetch(BASE_URL, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - auth: AUTH - } - client.distTags.fetch(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package name to distTags.fetch' - }, - 'distTags.fetch must include package name' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE - } - client.distTags.fetch(BASE_URL, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to distTags.fetch' }, - 'distTags.fetch must include auth' - ) - - t.end() -}) - -test('fetch dist-tags for a package', function (t) { - server.expect('GET', URI, function (req, res) { - t.equal(req.method, 'GET') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - t.notOk(b, 'no request body') - - res.statusCode = 200 - res.json({ a: '1.0.0', b: '2.0.0', _etag: 'xxx' }) - }) - }) - - client.distTags.fetch(BASE_URL, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, { a: '1.0.0', b: '2.0.0' }, 'etag filtered from response') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-rm.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-rm.js deleted file mode 100644 index 2076eb93..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-rm.js +++ /dev/null @@ -1,118 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var BASE_URL = 'http://localhost:1337/' -var URI = '/-/package/underscore/dist-tags/test' -var TOKEN = 'foo' -var AUTH = { - token: TOKEN -} -var PACKAGE = 'underscore' -var DIST_TAG = 'test' -var PARAMS = { - 'package': PACKAGE, - distTag: DIST_TAG, - auth: AUTH -} - -test('distTags.rm call contract', function (t) { - t.throws(function () { - client.distTags.rm(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.distTags.rm([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.distTags.rm(BASE_URL, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.distTags.rm(BASE_URL, '', nop) - }, 'params must be object') - - t.throws(function () { - client.distTags.rm(BASE_URL, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.distTags.rm(BASE_URL, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - distTag: DIST_TAG, - auth: AUTH - } - client.distTags.rm(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package name to distTags.rm' - }, - 'distTags.rm must include package name' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - auth: AUTH - } - client.distTags.rm(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package distTag name to distTags.rm' - }, - 'distTags.rm must include dist-tag' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - distTag: DIST_TAG - } - client.distTags.rm(BASE_URL, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to distTags.rm' }, - 'distTags.rm must include auth' - ) - - t.end() -}) - -test('remove a dist-tag from a package', function (t) { - server.expect('DELETE', URI, function (req, res) { - t.equal(req.method, 'DELETE') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - t.notOk(b, 'got no message body') - - res.statusCode = 200 - res.json({}) - }) - }) - - client.distTags.rm(BASE_URL, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.notOk(data.test, 'dist-tag removed') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-set.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-set.js deleted file mode 100644 index cb595f6d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-set.js +++ /dev/null @@ -1,122 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var BASE_URL = 'http://localhost:1337/' -var URI = '/-/package/underscore/dist-tags' -var TOKEN = 'foo' -var AUTH = { - token: TOKEN -} -var PACKAGE = 'underscore' -var DIST_TAGS = { - 'a': '8.0.8', - 'b': '3.0.3' -} -var PARAMS = { - 'package': PACKAGE, - distTags: DIST_TAGS, - auth: AUTH -} - -test('distTags.set call contract', function (t) { - t.throws(function () { - client.distTags.set(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.distTags.set([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.distTags.set(BASE_URL, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.distTags.set(BASE_URL, '', nop) - }, 'params must be object') - - t.throws(function () { - client.distTags.set(BASE_URL, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.distTags.set(BASE_URL, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - distTags: DIST_TAGS, - auth: AUTH - } - client.distTags.set(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package name to distTags.set' - }, - 'distTags.set must include package name' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - auth: AUTH - } - client.distTags.set(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass distTags map to distTags.set' - }, - 'distTags.set must include dist-tags' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - distTags: DIST_TAGS - } - client.distTags.set(BASE_URL, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to distTags.set' }, - 'distTags.set must include auth' - ) - - t.end() -}) - -test('set dist-tags for a package', function (t) { - server.expect('PUT', URI, function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var d = JSON.parse(b) - t.deepEqual(d, DIST_TAGS, 'got back tags') - - res.statusCode = 200 - res.json(DIST_TAGS) - }) - }) - - client.distTags.set(BASE_URL, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.a && data.b, 'dist-tags set') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-update.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-update.js deleted file mode 100644 index 37508fc0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/dist-tags-update.js +++ /dev/null @@ -1,113 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var BASE_URL = 'http://localhost:1337/' -var URI = '/-/package/underscore/dist-tags' -var TOKEN = 'foo' -var AUTH = { - token: TOKEN -} -var PACKAGE = 'underscore' -var DIST_TAGS = { - 'a': '8.0.8', - 'b': '3.0.3' -} -var PARAMS = { - 'package': PACKAGE, - distTags: DIST_TAGS, - auth: AUTH -} - -test('distTags.update call contract', function (t) { - t.throws(function () { - client.distTags.update(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.distTags.update([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.distTags.update(BASE_URL, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.distTags.update(BASE_URL, '', nop) - }, 'params must be object') - - t.throws(function () { - client.distTags.update(BASE_URL, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.distTags.update(BASE_URL, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { distTags: DIST_TAGS, auth: AUTH } - client.distTags.update(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package name to distTags.update' - }, - 'distTags.update must include package name' - ) - - t.throws( - function () { - var params = { 'package': PACKAGE, auth: AUTH } - client.distTags.update(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass distTags map to distTags.update' - }, - 'distTags.update must include dist-tags' - ) - - t.throws( - function () { - var params = { 'package': PACKAGE, distTags: DIST_TAGS } - client.distTags.update(BASE_URL, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to distTags.update' }, - 'distTags.update must include auth' - ) - - t.end() -}) - -test('update dist-tags for a package', function (t) { - server.expect('POST', URI, function (req, res) { - t.equal(req.method, 'POST') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var d = JSON.parse(b) - t.deepEqual(d, DIST_TAGS, 'got back tags') - - res.statusCode = 200 - res.json(DIST_TAGS) - }) - }) - - client.distTags.update(BASE_URL, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.a && data.b, 'dist-tags set') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-404.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-404.js deleted file mode 100644 index fa400cd5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-404.js +++ /dev/null @@ -1,35 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream - -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test('fetch with a 404 response', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(404) - - createReadStream(tgz).pipe(res) - }) - - var client = common.freshClient() - var defaulted = {} - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - defaulted, - function (err, res) { - t.equal( - err.message, - 'fetch failed with status code 404', - 'got expected error message' - ) - server.close() - t.end() - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-408.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-408.js deleted file mode 100644 index 422376ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-408.js +++ /dev/null @@ -1,54 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var tap = require('tap') -var cat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test('fetch with retry on timeout', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(408) - res.end() - }) - - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(200, { - 'content-type': 'application/x-tar', - 'content-encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var client = common.freshClient() - var defaulted = {} - client.config.retry.minTimeout = 100 - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - defaulted, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = cat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-503.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-503.js deleted file mode 100644 index 6dff1155..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-503.js +++ /dev/null @@ -1,54 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var tap = require('tap') -var cat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test('fetch with retry on server error', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(503) - res.end() - }) - - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(200, { - 'content-type': 'application/x-tar', - 'content-encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var client = common.freshClient() - var defaulted = {} - client.config.retry.minTimeout = 100 - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - defaulted, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = cat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-authed.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-authed.js deleted file mode 100644 index d516deb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-authed.js +++ /dev/null @@ -1,58 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var tap = require('tap') -var cat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test('basic fetch with scoped always-auth enabled', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - t.equal( - req.headers.authorization, - 'Basic dXNlcm5hbWU6JTEyMzRAYXNkZiU=', - 'got expected auth header' - ) - - res.writeHead(200, { - 'content-type': 'application/x-tar', - 'content-encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'i@izs.me', - alwaysAuth: true - } - - var client = common.freshClient() - var authed = { auth: auth } - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - authed, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = cat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-basic.js deleted file mode 100644 index 31ad17ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-basic.js +++ /dev/null @@ -1,93 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var test = require('tap').test -var concat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var USERNAME = 'username' -var PASSWORD = 'hi' -var EMAIL = 'n@p.m' -var HEADERS = { - 'npm-custom': 'lolbutts' -} -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - headers: HEADERS, - auth: AUTH -} - -test('fetch call contract', function (t) { - t.throws(function () { - client.get(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.get([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.get(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.get(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.get(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.get(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.end() -}) - -test('basic fetch', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(200, { - 'content-type': 'application/x-tar', - 'content-encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var defaulted = {} - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - defaulted, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = concat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-github-api-json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-github-api-json.js deleted file mode 100644 index 688c91d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-github-api-json.js +++ /dev/null @@ -1,68 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var tap = require('tap') -var cat = require('concat-stream') -var Negotiator = require('negotiator') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test("fetch accepts github api's json", function (t) { - server.expect('/underscore/-/underscore-1.3.3', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - var negotiator = new Negotiator(req) - - // fetching a tarball from `api.github.com` returns a 415 error if json is - // not accepted - if (negotiator.mediaTypes().indexOf('application/vnd.github+json') === -1) { - res.writeHead(415, { - 'Content-Type': 'application/json' - }) - } else { - res.writeHead(302, { - 'Content-Type': 'text/html', - 'Location': '/underscore/-/underscore-1.3.3.tgz' - }) - } - - res.end() - }) - - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(200, { - 'Content-Type': 'application/x-tar', - 'Content-Encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var client = common.freshClient() - var defaulted = {} - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3', - defaulted, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = cat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-not-authed.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-not-authed.js deleted file mode 100644 index 6a397cc5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fetch-not-authed.js +++ /dev/null @@ -1,54 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var tap = require('tap') -var cat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test('basic fetch with scoped always-auth disabled', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - t.notOk(req.headers.authorization, 'received no auth header') - - res.writeHead(200, { - 'content-type': 'application/x-tar', - 'content-encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'i@izs.me', - alwaysAuth: false - } - - var client = common.freshClient() - var authed = { auth: auth } - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - authed, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = cat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/@npm/npm-registry-client/cache.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/@npm/npm-registry-client/cache.json deleted file mode 100644 index 4561db50..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/@npm/npm-registry-client/cache.json +++ /dev/null @@ -1 +0,0 @@ -{"_id":"@npm%2fnpm-registry-client","_rev":"213-0a1049cf56172b7d9a1184742c6477b9","name":"@npm/npm-registry-client","description":"Client for the npm registry","dist-tags":{"latest":"2.0.4","v2.0":"2.0.3"},"versions":{"0.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.1","_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"693a08f6d2faea22bbd2bf412508a63d3e6229a7","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.1.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.2","_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"b48c0ec5563c6a6fdc253454fc56d2c60c5a26f4","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.2.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.3","_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"ccc0254c2d59e3ea9b9050e2b16edef78df1a1e8","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.3.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.4","_engineSupported":true,"_npmVersion":"1.1.25","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"faabd25ef477521c74ac21e0f4cf3a2f66d18fb3","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.4.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_id":"@npm%2fnpm-registry-client@0.0.5","dist":{"shasum":"85219810c9d89ae8d28ea766e7cf74efbd9f1e52","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.5.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"The code that npm uses to talk to the registry","version":"0.0.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_id":"@npm%2fnpm-registry-client@0.0.6","dist":{"shasum":"cc6533b3b41df65e6e9db2601fbbf1a509a7e94c","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.6.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.7":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"The code that npm uses to talk to the registry","version":"0.0.7","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_id":"@npm%2fnpm-registry-client@0.0.7","dist":{"shasum":"0cee1d1c61f1c8e483774fe1f7bbb81c4f394a3a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.7.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.8":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.8","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.8","dist":{"shasum":"1b7411c3f7310ec2a96b055b00e7ca606e47bd07","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.8.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.9":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.9","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.9","dist":{"shasum":"6d5bfde431559ac9e2e52a7db85f5839b874f022","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.9.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.10":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.10","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.10","dist":{"shasum":"0c8b6a4615bce82aa6cc04a0d1f7dc89921f7a38","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.10.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.11":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.11","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.11","dist":{"shasum":"afab40be5bed1faa946d8e1827844698f2ec1db7","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.11.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.0","dist":{"shasum":"1077d6bbb5e432450239dc6622a59474953ffbea","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.0.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.1","dist":{"shasum":"759765361d09b715270f59cf50f10908e4e9c5fc","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.1.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.2","dist":{"shasum":"541ce93abb3d35f5c325545c718dd3bbeaaa9ff0","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.2.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.3","dist":{"shasum":"e9a40d7031e8f809af5fd85aa9aac979e17efc97","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.3.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.4","dist":{"shasum":"b211485b046191a1085362376530316f0cab0420","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.4.tgz"},"_npmVersion":"1.1.48","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.0","dist":{"shasum":"6508a4b4d96f31057d5200ca5779531bafd2b840","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.0.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.1","dist":{"shasum":"1bc8c4576c368cd88253d8a52daf40c55b89bb1a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.1.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.5","dist":{"shasum":"2f55d675dfb977403b1ad0d96874c1d30e8058d7","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.5.tgz"},"_npmVersion":"1.1.51","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.6","dist":{"shasum":"f05df6695360360ad220e6e13a6a7bace7165fbe","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.6.tgz"},"_npmVersion":"1.1.56","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.7":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.7","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.7","dist":{"shasum":"867bad8854cae82ed89ee3b7f1d391af59491671","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.7.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.8":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.8","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.8","dist":{"shasum":"ef194cdb70f1ea03a576cff2c97392fa96e36563","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.8.tgz"},"_npmVersion":"1.1.62","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.9":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.9","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.9","dist":{"shasum":"3cec10431dfed1594adaf99c50f482ee56ecf9e4","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.9.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.10":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.10","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.10","dist":{"shasum":"1e69726dae0944e78562fd77243f839c6a2ced1e","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.10.tgz"},"_npmVersion":"1.1.64","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.11":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.11","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.11","dist":{"shasum":"d92f33c297eb1bbd57fd597c3d8f5f7e9340a0b5","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.11.tgz"},"_npmVersion":"1.1.70","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.12":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.12","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.12","dist":{"shasum":"3bfb6fc0e4b131d665580cd1481c341fe521bfd3","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.12.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.13":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.13","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.13","dist":{"shasum":"e03f2a4340065511b7184a3e2862cd5d459ef027","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.13.tgz"},"_from":".","_npmVersion":"1.2.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.14":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.14","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.14","dist":{"shasum":"186874a7790417a340d582b1cd4a7c338087ee12","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.14.tgz"},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.15":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.15","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.15","dist":{"shasum":"f71f32b7185855f1f8b7a5ef49e49d2357c2c552","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.15.tgz"},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.16":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.16","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.16","dist":{"shasum":"3331323b5050fc5afdf77c3a35913c16f3e43964","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.16.tgz"},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.17":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.17","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.17","dist":{"shasum":"1df2bbecac6751f5d9600fb43722aef96d956773","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.17.tgz"},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.18":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.18","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.18","dist":{"shasum":"198c8d15ed9b1ed546faf6e431eb63a6b18193ad","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.18.tgz"},"_from":".","_npmVersion":"1.2.13","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.19":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.19","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.16","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.19","dist":{"shasum":"106da826f0d2007f6e081f2b68fb6f26fa951b20","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.19.tgz"},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.20":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.20","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.16","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.20","dist":{"shasum":"3fff194331e26660be2cf8ebf45ddf7d36add5f6","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.20.tgz"},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.21":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.21","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.16","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.21","dist":{"shasum":"d85dd32525f193925c46ff9eb0e0f529dfd1b254","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.21.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.22":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.22","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.20.0","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.22","dist":{"shasum":"caa22ff40a1ccd632a660b8b80c333c8f92d5a17","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.22.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.23":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.23","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.23","dist":{"shasum":"a320ab2b1d048b4f7b88e40bd86974ca322b4c24","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.23.tgz"},"_from":".","_npmVersion":"1.2.19","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.24":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.24","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.24","dist":{"shasum":"e12f644338619319ee7f233363a1714a87f3c72d","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.24.tgz"},"_from":".","_npmVersion":"1.2.22","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.25":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.25","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~2.0.5","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.25","dist":{"shasum":"c2caeb1dcf937d6fcc4a187765d401f5e2f54027","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.25.tgz"},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.26":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.26","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~2.0.5","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.26","dist":{"shasum":"4c5a2b3de946e383032f10fa497d0c15ee5f4c60","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.26.tgz"},"_from":".","_npmVersion":"1.3.1","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.27":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.27","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~2.0.0","semver":"~2.0.5","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.27","dist":{"shasum":"8f338189d32769267886a07ad7b7fd2267446adf","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.27.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.28":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.28","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"~2.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.28","dist":{"shasum":"959141fc0180d7b1ad089e87015a8a2142a8bffc","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.28.tgz"},"_from":".","_npmVersion":"1.3.6","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.29":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.29","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.2.29","dist":{"shasum":"66ff2766f0c61d41e8a6139d3692d8833002c686","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.29.tgz"},"_from":".","_npmVersion":"1.3.12","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.30":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.30","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.2.30","dist":{"shasum":"f01cae5c51aa0a1c5dc2516cbad3ebde068d3eaa","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.30.tgz"},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.31":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.31","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.2.31","dist":{"shasum":"24a23e24e43246677cb485f8391829e9536563d4","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.31.tgz"},"_from":".","_npmVersion":"1.3.17","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.0","dist":{"shasum":"66eab02a69be67f232ac14023eddfb8308c2eccd","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.0.tgz"},"_from":".","_npmVersion":"1.3.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.1","dist":{"shasum":"16dba07cc304442edcece378218672d0a1258ef8","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.1.tgz"},"_from":".","_npmVersion":"1.3.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.2","dist":{"shasum":"ea3060bd0a87fb1d97b87433b50f38f7272b1686","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.2.tgz"},"_from":".","_npmVersion":"1.3.20","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.3","dist":{"shasum":"da08bb681fb24aa5c988ca71f8c10f27f09daf4a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.3.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.4","dist":{"shasum":"25d771771590b1ca39277aea4506af234c5f4342","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.4.tgz"},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.5","dist":{"shasum":"98ba1ac851a3939a3fb9917c28fa8da522dc635f","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.5.tgz"},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.6","dist":{"shasum":"c48a2a03643769acc49672860f7920ec6bffac6e","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.6.tgz"},"_from":".","_npmVersion":"1.3.26","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.0","dist":{"shasum":"30d0c178b7f2e54183a6a3fc9fe4071eb10290bf","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.0.tgz"},"_from":".","_npmVersion":"1.3.26","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.1","dist":{"shasum":"9c49b3e44558e2072158fb085be8a083c5f83537","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.1.tgz"},"_from":".","_npmVersion":"1.4.0","_npmUser":{"name":"npm-www","email":"npm@npmjs.com"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.2","dist":{"shasum":"d9568a9413bee14951201ce73f3b3992ec6658c0","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.2.tgz"},"_from":".","_npmVersion":"1.4.1","_npmUser":{"name":"npm-www","email":"npm@npmjs.com"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.3","dist":{"shasum":"aa188fc5067158e991a57f4697c54994108f5389","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.3.tgz"},"_from":".","_npmVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.4","dist":{"shasum":"f9dbc383a49069d8c7f67755a3ff6e424aff584f","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.4.tgz"},"_from":".","_npmVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.5","dist":{"shasum":"7d6fdca46139470715f9477ddb5ad3e770d4de7b","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.5.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.6","_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"657f69a79543fc4cc264c3b2de958bd15f7140fe","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.6.tgz"},"directories":{}},"0.4.7":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.7","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.7","dist":{"shasum":"f4369b59890da7882527eb7c427dd95d43707afb","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.7.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.8":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.8","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.8","_shasum":"a6685a161033101be6064b7af887ab440e8695d0","_from":".","_npmVersion":"1.4.8","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"a6685a161033101be6064b7af887ab440e8695d0","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.8.tgz"},"directories":{}},"0.4.9":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.9","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.9","_shasum":"304d3d4726a58e33d8cc965afdc9ed70b996580c","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"304d3d4726a58e33d8cc965afdc9ed70b996580c","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.9.tgz"},"directories":{}},"0.4.10":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.10","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.10","_shasum":"ab7bf1be3ba07d769eaf74dee3c9347e02283116","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"ab7bf1be3ba07d769eaf74dee3c9347e02283116","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.10.tgz"},"directories":{}},"0.4.11":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.11","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"2 >=2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.11","_shasum":"032e9b6b050ed052ee9441841a945a184ea6bc33","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"032e9b6b050ed052ee9441841a945a184ea6bc33","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.11.tgz"},"directories":{}},"0.4.12":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.12","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"2 >=2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.12","_shasum":"34303422f6a3da93ca3a387a2650d707c8595b99","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"34303422f6a3da93ca3a387a2650d707c8595b99","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.12.tgz"},"directories":{}},"1.0.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"1.0.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"~2.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@1.0.0","_shasum":"2a6f9dfdce5f8ebf4b9af4dbfd738384d25014e5","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"2a6f9dfdce5f8ebf4b9af4dbfd738384d25014e5","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-1.0.0.tgz"},"directories":{}},"1.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"1.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"~2.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"98b1278c230cf6c159f189e2f8c69daffa727ab8","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@1.0.1","_shasum":"c5f6a87d285f2005a35d3f67d9c724bce551b0f1","_from":".","_npmVersion":"1.4.13","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"c5f6a87d285f2005a35d3f67d9c724bce551b0f1","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-1.0.1.tgz"},"directories":{}},"2.0.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"~2.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"47a98069b6a34e751cbd5b84ce92858cae5abe70","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.0","_shasum":"88810dac2d534c0df1d905c79e723392fcfc791a","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"88810dac2d534c0df1d905c79e723392fcfc791a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.0.tgz"},"directories":{}},"2.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"123e40131f83f7265f66ecd2a558cce44a3aea86","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.1","_shasum":"611c7cb7c8f7ff22be2ebc6398423b5de10db0e2","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"611c7cb7c8f7ff22be2ebc6398423b5de10db0e2","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.1.tgz"},"directories":{}},"2.0.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"6ecc311c9dd4890f2d9b6bae60447070a3321e12","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.2","_shasum":"a82b000354c7f830114fb18444764bc477d5740f","_from":".","_npmVersion":"1.4.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"a82b000354c7f830114fb18444764bc477d5740f","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.2.tgz"},"directories":{}},"3.0.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"6bb1aec1e85fa82ee075bd997d6fb9f2dbb7f643","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.0","_shasum":"4febc5cdb274e9fa06bc3008910e3fa1ec007994","_from":".","_npmVersion":"1.5.0-pre","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"4febc5cdb274e9fa06bc3008910e3fa1ec007994","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.0.tgz"},"directories":{}},"3.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"fe8382dde609ea1e3580fcdc5bc3d0bba119cfc6","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.1","_shasum":"5f3ee362ce5c237cfb798fce22c77875fc1a63c2","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"5f3ee362ce5c237cfb798fce22c77875fc1a63c2","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.1.tgz"},"directories":{}},"2.0.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"2578fb9a807d77417554ba235ba8fac39405e832","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.3","_shasum":"93dad3d9a162c99404badb71739c622c0f3b9a72","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"93dad3d9a162c99404badb71739c622c0f3b9a72","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.3.tgz"},"directories":{}},"3.0.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"15343019160ace0b9874cf0ec186b3425dbc7301","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.2","_shasum":"5dd0910157ce55f4286a1871d39f9a2128cd3c99","_from":".","_npmVersion":"1.5.0-alpha-2","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"5dd0910157ce55f4286a1871d39f9a2128cd3c99","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.2.tgz"},"directories":{}},"3.0.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1 || 3.x","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"b18a780d1185f27c06c27812147b83aba0d4a2f5","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.3","_shasum":"2377dc1cf69b4d374b3a95fb7feba8c804d8cb30","_from":".","_npmVersion":"2.0.0-alpha-5","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"2377dc1cf69b4d374b3a95fb7feba8c804d8cb30","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.3.tgz"},"directories":{}},"3.0.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.5.0","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1 || 3.x","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"54900fe4b2eb5b99ee6dfe173f145732fdfae80e","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.4","_shasum":"d4a177d1f25615cfaef9b6844fa366ffbf5f578a","_from":".","_npmVersion":"2.0.0-alpha-5","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"d4a177d1f25615cfaef9b6844fa366ffbf5f578a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.4.tgz"},"directories":{}},"3.0.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"0.5","normalize-package-data":"0.4","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"2","semver":"2 >=2.2.1 || 3.x","slide":"^1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"635db1654346bc86473df7b39626601425f46177","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.5","_shasum":"cdabaefa399b81ac8a86a48718aefd80e7b19ff3","_from":".","_npmVersion":"2.0.0-alpha-5","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"cdabaefa399b81ac8a86a48718aefd80e7b19ff3","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.5.tgz"},"directories":{}},"3.0.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"^0.5.0","normalize-package-data":"0.4","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"2","semver":"2 >=2.2.1 || 3.x","slide":"^1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"ISC","gitHead":"eba30fadd724ed5cad1aec95ac3ee907a59b7317","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.6","_shasum":"14a17d9a60ed2a80b04edcbc596dbce0d96540ee","_from":".","_npmVersion":"1.4.22","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"14a17d9a60ed2a80b04edcbc596dbce0d96540ee","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.6.tgz"},"directories":{}},"2.0.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"^0.5.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"ISC","gitHead":"a10f621d9cdc813b9d3092a14b661f65bfa6d40d","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.4","_shasum":"528e08900d7655c12096d1637d1c3a7a5b451019","_from":".","_npmVersion":"1.4.22","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"528e08900d7655c12096d1637d1c3a7a5b451019","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.4.tgz"},"directories":{}}},"readme":"# npm-registry-client\u000a\u000aThe code that npm uses to talk to the registry.\u000a\u000aIt handles all the caching and HTTP calls.\u000a\u000a## Usage\u000a\u000a```javascript\u000avar RegClient = require('npm-registry-client')\u000avar client = new RegClient(config)\u000avar uri = \"npm://registry.npmjs.org/npm\"\u000avar options = {timeout: 1000}\u000a\u000aclient.get(uri, options, function (error, data, raw, res) {\u000a // error is an error if there was a problem.\u000a // data is the parsed data object\u000a // raw is the json string\u000a // res is the response from couch\u000a})\u000a```\u000a\u000a# Registry URLs\u000a\u000aThe registry calls take either a full URL pointing to a resource in the\u000aregistry, or a base URL for the registry as a whole (for the base URL, any path\u000awill be ignored). In addition to `http` and `https`, `npm` URLs are allowed.\u000a`npm` URLs are `https` URLs with the additional restrictions that they will\u000aalways include authorization credentials, and the response is always registry\u000ametadata (and not tarballs or other attachments).\u000a\u000a# Configuration\u000a\u000aThis program is designed to work with\u000a[npmconf](https://npmjs.org/package/npmconf), but you can also pass in\u000aa plain-jane object with the appropriate configs, and it'll shim it\u000afor you. Any configuration thingie that has get/set/del methods will\u000aalso be accepted.\u000a\u000a* `cache` **Required** {String} Path to the cache folder\u000a* `always-auth` {Boolean} Auth even for GET requests.\u000a* `auth` {String} A base64-encoded `username:password`\u000a* `email` {String} User's email address\u000a* `tag` {String} The default tag to use when publishing new packages.\u000a Default = `\"latest\"`\u000a* `ca` {String} Cerficate signing authority certificates to trust.\u000a* `cert` {String} Client certificate (PEM encoded). Enable access\u000a to servers that require client certificates\u000a* `key` {String} Private key (PEM encoded) for client certificate 'cert'\u000a* `strict-ssl` {Boolean} Whether or not to be strict with SSL\u000a certificates. Default = `true`\u000a* `user-agent` {String} User agent header to send. Default =\u000a `\"node/{process.version} {process.platform} {process.arch}\"`\u000a* `log` {Object} The logger to use. Defaults to `require(\"npmlog\")` if\u000a that works, otherwise logs are disabled.\u000a* `fetch-retries` {Number} Number of times to retry on GET failures.\u000a Default=2\u000a* `fetch-retry-factor` {Number} `factor` setting for `node-retry`. Default=10\u000a* `fetch-retry-mintimeout` {Number} `minTimeout` setting for `node-retry`.\u000a Default=10000 (10 seconds)\u000a* `fetch-retry-maxtimeout` {Number} `maxTimeout` setting for `node-retry`.\u000a Default=60000 (60 seconds)\u000a* `proxy` {URL} The url to proxy requests through.\u000a* `https-proxy` {URL} The url to proxy https requests through.\u000a Defaults to be the same as `proxy` if unset.\u000a* `_auth` {String} The base64-encoded authorization header.\u000a* `username` `_password` {String} Username/password to use to generate\u000a `_auth` if not supplied.\u000a* `_token` {Object} A token for use with\u000a [couch-login](https://npmjs.org/package/couch-login)\u000a\u000a# client.request(method, uri, options, cb)\u000a\u000a* `method` {String} HTTP method\u000a* `uri` {String} URI pointing to the resource to request\u000a* `options` {Object} Object containing optional per-request properties.\u000a * `what` {Stream | Buffer | String | Object} The request body. Objects\u000a that are not Buffers or Streams are encoded as JSON.\u000a * `etag` {String} The cached ETag\u000a * `follow` {Boolean} Follow 302/301 responses (defaults to true)\u000a* `cb` {Function}\u000a * `error` {Error | null}\u000a * `data` {Object} the parsed data object\u000a * `raw` {String} the json\u000a * `res` {Response Object} response from couch\u000a\u000aMake a request to the registry. All the other methods are wrappers around\u000a`request`.\u000a\u000a# client.adduser(base, username, password, email, cb)\u000a\u000a* `base` {String} Base registry URL\u000a* `username` {String}\u000a* `password` {String}\u000a* `email` {String}\u000a* `cb` {Function}\u000a\u000aAdd a user account to the registry, or verify the credentials.\u000a\u000a# client.deprecate(uri, version, message, cb)\u000a\u000a* `uri` {String} Full registry URI for the deprecated package\u000a* `version` {String} Semver version range\u000a* `message` {String} The message to use as a deprecation warning\u000a* `cb` {Function}\u000a\u000aDeprecate a version of a package in the registry.\u000a\u000a# client.bugs(uri, cb)\u000a\u000a* `uri` {String} Full registry URI for the package\u000a* `cb` {Function}\u000a\u000aGet the url for bugs of a package\u000a\u000a# client.get(uri, options, cb)\u000a\u000a* `uri` {String} The complete registry URI to fetch\u000a* `options` {Object} Object containing optional per-request properties.\u000a * `timeout` {Number} Duration before the request times out.\u000a * `follow` {Boolean} Follow 302/301 responses (defaults to true)\u000a * `staleOk` {Boolean} If there's cached data available, then return that\u000a to the callback quickly, and update the cache the background.\u000a\u000aFetches data from the registry via a GET request, saving it in the cache folder\u000awith the ETag.\u000a\u000a# client.publish(uri, data, tarball, cb)\u000a\u000a* `uri` {String} The registry URI to publish to\u000a* `data` {Object} Package data\u000a* `tarball` {String | Stream} Filename or stream of the package tarball\u000a* `cb` {Function}\u000a\u000aPublish a package to the registry.\u000a\u000aNote that this does not create the tarball from a folder. However, it can\u000aaccept a gzipped tar stream or a filename to a tarball.\u000a\u000a# client.star(uri, starred, cb)\u000a\u000a* `uri` {String} The complete registry URI to star\u000a* `starred` {Boolean} True to star the package, false to unstar it.\u000a* `cb` {Function}\u000a\u000aStar or unstar a package.\u000a\u000aNote that the user does not have to be the package owner to star or unstar a\u000apackage, though other writes do require that the user be the package owner.\u000a\u000a# client.stars(base, username, cb)\u000a\u000a* `base` {String} The base URL for the registry\u000a* `username` {String} Name of user to fetch starred packages for.\u000a* `cb` {Function}\u000a\u000aView your own or another user's starred packages.\u000a\u000a# client.tag(uri, version, tag, cb)\u000a\u000a* `uri` {String} The complete registry URI to tag\u000a* `version` {String} Version to tag\u000a* `tag` {String} Tag name to apply\u000a* `cb` {Function}\u000a\u000aMark a version in the `dist-tags` hash, so that `pkg@tag` will fetch the\u000aspecified version.\u000a\u000a# client.unpublish(uri, [ver], cb)\u000a\u000a* `uri` {String} The complete registry URI to unpublish\u000a* `ver` {String} version to unpublish. Leave blank to unpublish all\u000a versions.\u000a* `cb` {Function}\u000a\u000aRemove a version of a package (or all versions) from the registry. When the\u000alast version us unpublished, the entire document is removed from the database.\u000a\u000a# client.upload(uri, file, [etag], [nofollow], cb)\u000a\u000a* `uri` {String} The complete registry URI to upload to\u000a* `file` {String | Stream} Either the filename or a readable stream\u000a* `etag` {String} Cache ETag\u000a* `nofollow` {Boolean} Do not follow 301/302 responses\u000a* `cb` {Function}\u000a\u000aUpload an attachment. Mostly used by `client.publish()`.\u000a","maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"time":{"modified":"2014-07-31T21:59:52.896Z","created":"2012-06-07T04:43:36.581Z","0.0.1":"2012-06-07T04:43:38.123Z","0.0.2":"2012-06-07T05:35:05.937Z","0.0.3":"2012-06-09T00:55:25.861Z","0.0.4":"2012-06-11T03:53:26.548Z","0.0.5":"2012-06-11T23:48:11.235Z","0.0.6":"2012-06-17T06:23:27.320Z","0.0.7":"2012-06-18T19:19:38.315Z","0.0.8":"2012-06-28T20:40:20.563Z","0.0.9":"2012-07-10T03:28:04.651Z","0.0.10":"2012-07-11T17:03:45.151Z","0.0.11":"2012-07-17T14:06:37.489Z","0.1.0":"2012-07-23T18:17:38.007Z","0.1.1":"2012-07-23T21:21:28.196Z","0.1.2":"2012-07-24T06:14:12.831Z","0.1.3":"2012-08-07T02:02:20.564Z","0.1.4":"2012-08-15T03:04:52.822Z","0.1.5":"2012-08-17T21:59:33.310Z","0.2.0":"2012-08-17T22:00:18.081Z","0.2.1":"2012-08-17T22:07:28.827Z","0.2.2":"2012-08-17T22:37:24.352Z","0.2.3":"2012-08-19T19:16:44.808Z","0.2.4":"2012-08-19T19:18:51.792Z","0.2.5":"2012-08-20T16:54:50.794Z","0.2.6":"2012-08-22T00:25:04.766Z","0.2.7":"2012-08-27T19:07:34.829Z","0.2.8":"2012-10-02T19:53:50.661Z","0.2.9":"2012-10-03T22:09:50.766Z","0.2.10":"2012-10-25T14:55:54.216Z","0.2.11":"2012-12-21T16:26:38.094Z","0.2.12":"2013-01-18T22:22:41.668Z","0.2.13":"2013-02-06T00:16:35.939Z","0.2.14":"2013-02-10T02:44:02.764Z","0.2.15":"2013-02-11T19:18:55.678Z","0.2.16":"2013-02-15T17:09:03.249Z","0.2.17":"2013-02-16T03:47:13.898Z","0.2.18":"2013-03-06T22:09:23.536Z","0.2.19":"2013-03-20T06:27:39.128Z","0.2.20":"2013-03-28T00:43:07.558Z","0.2.21":"2013-04-29T15:46:54.094Z","0.2.22":"2013-04-29T15:51:02.178Z","0.2.23":"2013-05-11T00:28:14.198Z","0.2.24":"2013-05-24T21:27:50.693Z","0.2.25":"2013-06-20T15:36:46.277Z","0.2.26":"2013-07-06T17:12:54.670Z","0.2.27":"2013-07-11T07:14:45.740Z","0.2.28":"2013-08-02T20:27:41.732Z","0.2.29":"2013-10-28T18:23:24.477Z","0.2.30":"2013-11-18T23:12:00.540Z","0.2.31":"2013-12-16T08:36:43.044Z","0.3.0":"2013-12-17T07:03:10.699Z","0.3.1":"2013-12-17T16:53:27.867Z","0.3.2":"2013-12-17T22:25:14.882Z","0.3.3":"2013-12-21T16:07:06.773Z","0.3.4":"2014-01-29T15:24:05.163Z","0.3.5":"2014-01-31T01:53:19.656Z","0.3.6":"2014-02-07T00:17:21.362Z","0.4.0":"2014-02-13T01:17:18.973Z","0.4.1":"2014-02-13T23:47:37.892Z","0.4.2":"2014-02-14T00:29:13.086Z","0.4.3":"2014-02-16T03:40:54.640Z","0.4.4":"2014-02-16T03:41:48.856Z","0.4.5":"2014-03-12T05:09:17.474Z","0.4.6":"2014-03-29T19:44:15.041Z","0.4.7":"2014-04-02T19:41:07.149Z","0.4.8":"2014-05-01T22:24:54.980Z","0.4.9":"2014-05-12T21:52:55.127Z","0.4.10":"2014-05-13T16:44:29.801Z","0.4.11":"2014-05-13T20:33:04.738Z","0.4.12":"2014-05-14T06:14:22.842Z","1.0.0":"2014-05-14T23:04:37.188Z","1.0.1":"2014-06-03T00:55:54.448Z","2.0.0":"2014-06-06T04:23:46.579Z","2.0.1":"2014-06-06T06:25:14.419Z","2.0.2":"2014-06-14T00:33:10.205Z","3.0.0":"2014-07-02T00:30:29.154Z","3.0.1":"2014-07-14T23:29:05.057Z","2.0.3":"2014-07-15T00:09:36.043Z","3.0.2":"2014-07-17T06:30:02.659Z","3.0.3":"2014-07-23T21:20:42.406Z","3.0.4":"2014-07-25T00:27:26.007Z","3.0.5":"2014-07-25T00:28:48.007Z","3.0.6":"2014-07-31T21:57:49.043Z","2.0.4":"2014-07-31T21:59:52.896Z"},"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"repository":{"url":"git://github.com/isaacs/npm-registry-client"},"users":{"fgribreau":true,"fengmk2":true},"readmeFilename":"README.md","homepage":"https://github.com/isaacs/npm-registry-client","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"license":"ISC","_attachments":{}} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/cache.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/cache.json deleted file mode 100644 index 01da3002..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/cache.json +++ /dev/null @@ -1 +0,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"},"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"},"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://documentcloud.github.com/underscore/\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n","maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/package.tgz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/package.tgz deleted file mode 100644 index 19da9baa..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/package.tgz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/underscore/cache.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/underscore/cache.json deleted file mode 100644 index d899f119..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/fixtures/underscore/cache.json +++ /dev/null @@ -1 +0,0 @@ -{"_id":"underscore","_rev":"72-47f2986bfd8e8b55068b204588bbf484","name":"underscore","description":"JavaScript's functional programming helper library.","dist-tags":{"latest":"1.3.3","stable":"1.3.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"},"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"},"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"},"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"},"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"},"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"},"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"},"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://documentcloud.github.com/underscore/\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n","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"},"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://documentcloud.github.com/underscore/\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n","maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}}},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"time":{"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"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"users":{"vesln":true,"mvolkmann":true,"lancehunt":true,"mikl":true,"linus":true,"vasc":true,"bat":true,"dmalam":true,"mbrevoort":true,"danielr":true,"rsimoes":true,"thlorenz":true}} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/get-403.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/get-403.js deleted file mode 100644 index 004de207..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/get-403.js +++ /dev/null @@ -1,30 +0,0 @@ -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -tap.test('get returns 403', function (t) { - server.expect('/underscore', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(403) - res.end(JSON.stringify({ - error: 'get that cat out of the toilet that\'s gross omg' - })) - }) - - var client = common.freshClient() - client.get( - 'http://localhost:1337/underscore', - {}, - function (er) { - t.ok(er, 'failed as expected') - - t.equal(er.statusCode, 403, 'status code was attached to error as expected') - t.equal(er.code, 'E403', 'error code was formatted as expected') - - server.close() - t.end() - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/get-basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/get-basic.js deleted file mode 100644 index 031309c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/get-basic.js +++ /dev/null @@ -1,85 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var us = require('./fixtures/underscore/1.3.3/cache.json') -var usroot = require('./fixtures/underscore/cache.json') - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var TIMEOUT = 3600 -var FOLLOW = false -var STALE_OK = true -var TOKEN = 'lolbutts' -var AUTH = { - token: TOKEN -} -var PARAMS = { - timeout: TIMEOUT, - follow: FOLLOW, - staleOk: STALE_OK, - auth: AUTH -} - -test('get call contract', function (t) { - t.throws(function () { - client.get(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.get([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.get(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.get(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.get(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.get(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.end() -}) - -test('basic request', function (t) { - server.expect('/underscore/1.3.3', function (req, res) { - res.json(us) - }) - - server.expect('/underscore', function (req, res) { - res.json(usroot) - }) - - server.expect('/@bigco%2funderscore', function (req, res) { - res.json(usroot) - }) - - t.plan(3) - client.get('http://localhost:1337/underscore/1.3.3', PARAMS, function (er, data) { - t.deepEqual(data, us) - }) - - client.get('http://localhost:1337/underscore', PARAMS, function (er, data) { - t.deepEqual(data, usroot) - }) - - client.get('http://localhost:1337/@bigco%2funderscore', PARAMS, function (er, data) { - t.deepEqual(data, usroot) - }) -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/get-error-403.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/get-error-403.js deleted file mode 100644 index 73ef4361..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/get-error-403.js +++ /dev/null @@ -1,34 +0,0 @@ -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -tap.test('get fails with 403', function (t) { - server.expect('/habanero', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(403) - res.end('{"error":"get that cat out of the toilet that\'s gross omg"}') - }) - - var client = common.freshClient() - client.config.retry.minTimeout = 100 - client.get( - 'http://localhost:1337/habanero', - {}, - function (er) { - t.ok(er, 'failed as expected') - - t.equal(er.statusCode, 403, 'status code was attached as expected') - t.equal(er.code, 'E403', 'error code was formatted as expected') - t.equal( - er.message, - 'get that cat out of the toilet that\'s gross omg : habanero', - 'got error message' - ) - - server.close() - t.end() - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/initialize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/initialize.js deleted file mode 100644 index 3856b67b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/initialize.js +++ /dev/null @@ -1,125 +0,0 @@ -var test = require('tap').test -var url = require('url') - -// var server = require('./lib/server.js') -var Client = require('../') - -test('defaulted initialization', function (t) { - var client = new Client() - var options = client.initialize( - 'http://localhost:1337/', - 'GET', - 'application/json', - {} - ) - - t.equal(options.url, 'http://localhost:1337/', 'URLs match') - t.equal(options.method, 'GET', 'methods match') - t.equal(options.proxy, undefined, "proxy won't overwrite environment") - t.equal(options.localAddress, undefined, 'localAddress has no default value') - t.equal(options.strictSSL, true, 'SSL is strict by default') - - t.equal(options.headers.accept, 'application/json', 'accept header set') - t.equal( - options.headers.version, - require('../package.json').version, - 'npm-registry-client version is present in headers' - ) - t.ok(options.headers['npm-session'], 'request ID generated') - t.ok(options.headers['user-agent'], 'user-agent preset') - - var HttpAgent = require('http').Agent - t.ok(options.agent instanceof HttpAgent, 'got an HTTP agent for an HTTP URL') - t.equal(options.agent.maxSockets, 50, 'maxSockets set to a reasonable default') - - t.end() -}) - -test('intializing with maxSockets set works for http', function (t) { - var client = new Client({ maxSockets: Infinity }) - var options = client.initialize( - url.parse('http://localhost:1337/'), - 'GET', - 'application/json', - {} - ) - - var HttpAgent = require('http').Agent - t.ok(options.agent instanceof HttpAgent, 'got an HTTP agent for an HTTP URL') - t.equal(options.agent.maxSockets, Infinity, 'request uses configured value for maxSockets') - - t.end() -}) - -test('intializing with maxSockets set works for https', function (t) { - var client = new Client({ maxSockets: Infinity }) - var options = client.initialize( - url.parse('https://localhost:1337/'), - 'GET', - 'application/json', - {} - ) - - var HttpsAgent = require('https').Agent - t.ok(options.agent instanceof HttpsAgent, 'got an HTTPS agent for an HTTPS URL') - t.equal(options.agent.maxSockets, Infinity, 'request uses configured value for maxSockets') - - t.end() -}) - -test('referer set on client', function (t) { - var client = new Client() - client.refer = 'xtestx' - var options = client.initialize( - 'http://localhost:1337/', - 'GET', - 'application/json', - {} - ) - - t.equal(options.headers.referer, 'xtestx', 'referer header set') - - t.end() -}) - -test('initializing with proxy explicitly disabled', function (t) { - var client = new Client({ proxy: { http: false }}) - var options = client.initialize( - 'http://localhost:1337/', - 'GET', - 'application/json', - {} - ) - t.ok('proxy' in options, 'proxy overridden by explicitly setting to false') - t.equal(options.proxy, null, 'request will override proxy when empty proxy passed in') - t.end() -}) - -test('initializing with proxy undefined', function (t) { - var client = new Client({ proxy: { http: undefined }}) - var options = client.initialize( - 'http://localhost:1337/', - 'GET', - 'application/json', - {} - ) - t.notOk('proxy' in options, 'proxy can be read from env.PROXY by request') - t.end() -}) - -test('initializing with a certificate should map down to the https agent', function (t) { - var certificate = '-----BEGIN CERTIFICATE----- TEST\nTEST -----END CERTIFICATE-----\n' - var client = new Client({ - ssl: { - certificate: certificate - } - }) - var options = client.initialize( - { protocol: 'https:' }, - 'GET', - 'application/json', - {} - ) - t.equal(options.agent.options.cert, certificate, 'certificate will be saved properly on agent') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/lib/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/lib/common.js deleted file mode 100644 index 78e543f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/lib/common.js +++ /dev/null @@ -1,23 +0,0 @@ -var server = require('./server.js') -var RC = require('../../') -var REGISTRY = 'http://localhost:' + server.port - -// cheesy hackaround for test deps (read: nock) that rely on setImmediate -if (!global.setImmediate || !require('timers').setImmediate) { - require('timers').setImmediate = global.setImmediate = function () { - var args = [arguments[0], 0].concat([].slice.call(arguments, 1)) - setTimeout.apply(this, args) - } -} - -module.exports = { - port: server.port, - registry: REGISTRY, - freshClient: function freshClient (config) { - var client = new RC(config) - server.log = client.log - client.log.level = 'silent' - - return client - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/lib/server.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/lib/server.js deleted file mode 100644 index 06bebdc1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/lib/server.js +++ /dev/null @@ -1,60 +0,0 @@ -// a fake registry server. - -var http = require('http') -var server = http.createServer(handler) -var port = server.port = process.env.PORT || 1337 -var assert = require('assert') -server.listen(port) - -module.exports = server - -server._expect = {} - -function handler (req, res) { - req.connection.setTimeout(1000) - - // If we got authorization, make sure it's the right password. - if (req.headers.authorization && req.headers.authorization.match(/^Basic/)) { - var auth = req.headers.authorization.replace(/^Basic /, '') - auth = new Buffer(auth, 'base64').toString('utf8') - assert.equal(auth, 'username:%1234@asdf%') - } - - var u = '* ' + req.url - var mu = req.method + ' ' + req.url - - var k = server._expect[mu] ? mu : server._expect[u] ? u : null - if (!k) throw Error('unexpected request: ' + req.method + ' ' + req.url) - - var fn = server._expect[k].shift() - if (!fn) throw Error('unexpected request: ' + req.method + ' ' + req.url) - - this.log.info('fake-registry', Object.keys(server._expect).map(function (k) { - return [k, server._expect[k].length] - }).reduce(function (acc, kv) { - acc[kv[0]] = kv[1] - return acc - }, {})) - - res.json = json - fn(req, res) -} - -function json (o) { - this.setHeader('content-type', 'application/json') - this.end(JSON.stringify(o)) -} - -// this log is meanto to be overridden -server.log = require('npmlog') - -server.expect = function (method, u, fn) { - if (typeof u === 'function') { - fn = u - u = method - method = '*' - } - u = method + ' ' + u - server._expect[u] = server._expect[u] || [] - server._expect[u].push(fn) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/logout.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/logout.js deleted file mode 100644 index 7836d805..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/logout.js +++ /dev/null @@ -1,74 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'http://localhost:1337/rewrite' -var TOKEN = 'b00b00feed' -var PARAMS = { - auth: { - token: TOKEN - } -} - -test('logout call contract', function (t) { - t.throws(function () { - client.logout(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.logout([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.logout(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.logout(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.logout(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.logout(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - auth: {} - } - client.logout(URI, params, nop) - }, - { name: 'AssertionError', message: 'can only log out for token auth' }, - 'auth must include token' - ) - - t.end() -}) - -test('log out from a token-based registry', function (t) { - server.expect('DELETE', '/-/user/token/' + TOKEN, function (req, res) { - t.equal(req.method, 'DELETE') - t.equal(req.headers.authorization, 'Bearer ' + TOKEN, 'request is authed') - - res.json({message: 'ok'}) - }) - - client.logout(URI, PARAMS, function (er) { - t.ifError(er, 'no errors') - - t.end() - }) -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/ping.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/ping.js deleted file mode 100644 index 1b30b905..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/ping.js +++ /dev/null @@ -1,76 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var TOKEN = 'not-bad-meaning-bad-but-bad-meaning-wombat' -var AUTH = { token: TOKEN } -var PARAMS = { auth: AUTH } -var DEP_USER = 'username' -var HOST = 'localhost' - -test('ping call contract', function (t) { - t.throws(function () { - client.ping(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.ping([], AUTH, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.ping(common.registry, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.ping(common.registry, '', nop) - }, 'params must be object') - - t.throws(function () { - client.ping(common.registry, AUTH, undefined) - }, 'requires callback') - - t.throws(function () { - client.ping(common.registry, AUTH, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = {} - client.ping(common.registry, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to ping' }, - 'must pass auth to ping' - ) - - t.end() -}) - -test('ping', function (t) { - server.expect('GET', '/-/ping?write=true', function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json({ - ok: true, - host: HOST, - peer: HOST, - username: DEP_USER - }) - }) - - client.ping(common.registry, PARAMS, function (error, found) { - t.ifError(error, 'no errors') - var wanted = { - ok: true, - host: HOST, - peer: HOST, - username: DEP_USER - } - t.same(found, wanted) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-again-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-again-scoped.js deleted file mode 100644 index 611a852c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-again-scoped.js +++ /dev/null @@ -1,91 +0,0 @@ -var tap = require('tap') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'i@izs.me', - alwaysAuth: true -} - -var client = common.freshClient() - -tap.test('publish again', function (t) { - // not really a tarball, but doesn't matter - var bodyPath = require.resolve('../package.json') - var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath) - var pkg = require('../package.json') - var lastTime = null - - server.expect('/@npm%2fnpm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = lastTime = JSON.parse(b) - t.equal(o._id, '@npm/npm-registry-client') - t.equal(o['dist-tags'].latest, pkg.version) - t.has(o.versions[pkg.version], pkg) - t.same(o.maintainers, [ { name: 'username', email: 'i@izs.me' } ]) - var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd.toString('base64')) - res.statusCode = 409 - res.json({reason: 'must supply latest _rev to update existing package'}) - }) - }) - - server.expect('/@npm%2fnpm-registry-client?write=true', function (req, res) { - t.equal(req.method, 'GET') - t.ok(lastTime) - for (var i in lastTime.versions) { - var v = lastTime.versions[i] - delete lastTime.versions[i] - lastTime.versions['0.0.2'] = v - lastTime['dist-tags'] = { latest: '0.0.2' } - } - lastTime._rev = 'asdf' - res.json(lastTime) - }) - - server.expect('/@npm%2fnpm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - t.ok(lastTime) - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._rev, 'asdf') - t.deepEqual(o.versions['0.0.2'], o.versions[pkg.version]) - res.statusCode = 201 - res.json({created: true}) - }) - }) - - pkg.name = '@npm/npm-registry-client' - - var params = { - metadata: pkg, - access: 'restricted', - body: tarball, - auth: auth - } - client.publish('http://localhost:1337/', params, function (er, data) { - if (er) throw er - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-again.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-again.js deleted file mode 100644 index 4a895205..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-again.js +++ /dev/null @@ -1,89 +0,0 @@ -var tap = require('tap') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'i@izs.me', - alwaysAuth: true -} - -var client = common.freshClient() - -tap.test('publish again', function (t) { - // not really a tarball, but doesn't matter - var bodyPath = require.resolve('../package.json') - var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath) - var pkg = require('../package.json') - var lastTime = null - - server.expect('/npm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = lastTime = JSON.parse(b) - t.equal(o._id, 'npm-registry-client') - t.equal(o['dist-tags'].latest, pkg.version) - t.has(o.versions[pkg.version], pkg) - t.same(o.maintainers, [ { name: 'username', email: 'i@izs.me' } ]) - var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd.toString('base64')) - res.statusCode = 409 - res.json({reason: 'must supply latest _rev to update existing package'}) - }) - }) - - server.expect('/npm-registry-client?write=true', function (req, res) { - t.equal(req.method, 'GET') - t.ok(lastTime) - for (var i in lastTime.versions) { - var v = lastTime.versions[i] - delete lastTime.versions[i] - lastTime.versions['0.0.2'] = v - lastTime['dist-tags'] = { latest: '0.0.2' } - } - lastTime._rev = 'asdf' - res.json(lastTime) - }) - - server.expect('/npm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - t.ok(lastTime) - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._rev, 'asdf') - t.deepEqual(o.versions['0.0.2'], o.versions[pkg.version]) - res.statusCode = 201 - res.json({created: true}) - }) - }) - - var params = { - metadata: pkg, - access: 'public', - body: tarball, - auth: auth - } - client.publish('http://localhost:1337/', params, function (er, data) { - if (er) throw er - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-failed-no-message.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-failed-no-message.js deleted file mode 100644 index d2641e85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-failed-no-message.js +++ /dev/null @@ -1,44 +0,0 @@ -var createReadStream = require('fs').createReadStream - -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var config = { retry: { retries: 0 } } -var client = common.freshClient(config) - -var URI = 'http://localhost:1337/' -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var METADATA = require('../package.json') -var ACCESS = 'public' -// not really a tarball, but doesn't matter -var BODY_PATH = require.resolve('../package.json') -var BODY = createReadStream(BODY_PATH) -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - metadata: METADATA, - access: ACCESS, - body: BODY, - auth: AUTH -} - -test('publish with a 500 response but no message', function (t) { - server.expect('/npm-registry-client', function (req, res) { - res.statusCode = 500 - res.json({ success: false }) - }) - - client.publish(URI, PARAMS, function (er, data) { - t.ok(er, 'got expected error') - t.notOk(data, 'no payload on failure') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-mixcase-name.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-mixcase-name.js deleted file mode 100644 index 5f2c44e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-mixcase-name.js +++ /dev/null @@ -1,92 +0,0 @@ -var tap = require('tap') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'i@izs.me', - alwaysAuth: true -} - -var client = common.freshClient() - -tap.test('publish mixcase name', function (t) { - // not really a tarball, but doesn't matter - var bodyPath = require.resolve('../package.json') - var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath) - var pkg = require('../package.json') - var lastTime = null - - // change to mixed case name - pkg.name = 'npm-Registry-Client' - - server.expect('/npm-Registry-Client', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = lastTime = JSON.parse(b) - t.equal(o._id, 'npm-Registry-Client') - t.equal(o['dist-tags'].latest, pkg.version) - t.has(o.versions[pkg.version], pkg) - t.same(o.maintainers, [ { name: 'username', email: 'i@izs.me' } ]) - var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd.toString('base64')) - res.statusCode = 409 - res.json({reason: 'must supply latest _rev to update existing package'}) - }) - }) - - server.expect('/npm-Registry-Client?write=true', function (req, res) { - t.equal(req.method, 'GET') - t.ok(lastTime) - for (var i in lastTime.versions) { - var v = lastTime.versions[i] - delete lastTime.versions[i] - lastTime.versions['0.0.2'] = v - lastTime['dist-tags'] = { latest: '0.0.2' } - } - lastTime._rev = 'asdf' - res.json(lastTime) - }) - - server.expect('/npm-Registry-Client', function (req, res) { - t.equal(req.method, 'PUT') - t.ok(lastTime) - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._rev, 'asdf') - t.deepEqual(o.versions['0.0.2'], o.versions[pkg.version]) - res.statusCode = 201 - res.json({created: true}) - }) - }) - - var params = { - metadata: pkg, - access: 'public', - body: tarball, - auth: auth - } - client.publish('http://localhost:1337/', params, function (er, data) { - if (er) throw er - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-new-mixcase-name.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-new-mixcase-name.js deleted file mode 100644 index e3e8ed23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-new-mixcase-name.js +++ /dev/null @@ -1,73 +0,0 @@ -var test = require('tap').test -var crypto = require('crypto') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var URI = 'http://localhost:1337/' -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var METADATA = require('../package.json') -var ACCESS = 'public' -// not really a tarball, but doesn't matter -var BODY_PATH = require.resolve('../package.json') -var BODY = fs.createReadStream(BODY_PATH) -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - metadata: METADATA, - access: ACCESS, - body: BODY, - auth: AUTH -} - -test('publish-new-mixcase-name', function (t) { - var pd = fs.readFileSync(BODY_PATH) - - // change to mixed-case name - METADATA.name = 'npm-Registry-Client' - - server.expect('/npm-Registry-Client', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._id, 'npm-Registry-Client') - t.equal(o['dist-tags'].latest, METADATA.version) - t.equal(o.access, ACCESS) - t.has(o.versions[METADATA.version], METADATA) - t.same(o.maintainers, [{ name: 'username', email: 'i@izs.me' }]) - t.same(o.maintainers, o.versions[METADATA.version].maintainers) - - var att = o._attachments[METADATA.name + '-' + METADATA.version + '.tgz'] - t.same(att.data, pd.toString('base64')) - - var hash = crypto.createHash('sha1').update(pd).digest('hex') - t.equal(o.versions[METADATA.version].dist.shasum, hash) - - res.statusCode = 403 - res.json({error: 'Name must be lower-case'}) - }) - }) - - client.publish(URI, PARAMS, function (er, data, json, res) { - t.assert(er instanceof Error) // expect error - - // TODO: need a test that ensures useful error message - // t.similar(data.error, /must be lower-case/) - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-scoped-auth-token.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-scoped-auth-token.js deleted file mode 100644 index a9c5768e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-scoped-auth-token.js +++ /dev/null @@ -1,57 +0,0 @@ -var tap = require('tap') -var crypto = require('crypto') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var auth = { token: 'of-glad-tidings' } - -var client = common.freshClient() - -tap.test('publish', function (t) { - // not really a tarball, but doesn't matter - var bodyPath = require.resolve('../package.json') - var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath) - var pkg = require('../package.json') - pkg.name = '@npm/npm-registry-client' - - server.expect('/@npm%2fnpm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - t.equal(req.headers.authorization, 'Bearer of-glad-tidings') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._id, '@npm/npm-registry-client') - t.equal(o['dist-tags'].latest, pkg.version) - t.has(o.versions[pkg.version], pkg) - t.same(o.maintainers, o.versions[pkg.version].maintainers) - var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd.toString('base64')) - var hash = crypto.createHash('sha1').update(pd).digest('hex') - t.equal(o.versions[pkg.version].dist.shasum, hash) - res.statusCode = 201 - res.json({ created: true }) - }) - }) - - var params = { - metadata: pkg, - access: 'restricted', - body: tarball, - auth: auth - } - client.publish(common.registry, params, function (er, data) { - if (er) throw er - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-scoped.js deleted file mode 100644 index 347364ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish-scoped.js +++ /dev/null @@ -1,64 +0,0 @@ -var tap = require('tap') -var crypto = require('crypto') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'ogd@aoaioxxysz.net' -} - -var client = common.freshClient() - -var _auth = new Buffer('username:%1234@asdf%').toString('base64') - -tap.test('publish', function (t) { - // not really a tarball, but doesn't matter - var bodyPath = require.resolve('../package.json') - var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath) - var pkg = require('../package.json') - pkg.name = '@npm/npm-registry-client' - - server.expect('/@npm%2fnpm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - t.equal(req.headers.authorization, 'Basic ' + _auth) - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._id, '@npm/npm-registry-client') - t.equal(o['dist-tags'].latest, pkg.version) - t.has(o.versions[pkg.version], pkg) - t.same(o.maintainers, [ { name: 'username', email: 'ogd@aoaioxxysz.net' } ]) - t.same(o.maintainers, o.versions[pkg.version].maintainers) - var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd.toString('base64')) - var hash = crypto.createHash('sha1').update(pd).digest('hex') - t.equal(o.versions[pkg.version].dist.shasum, hash) - res.statusCode = 201 - res.json({ created: true }) - }) - }) - - var params = { - metadata: pkg, - access: 'restricted', - body: tarball, - auth: auth - } - client.publish(common.registry, params, function (er, data) { - if (er) throw er - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish.js deleted file mode 100644 index 07c8bb46..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/publish.js +++ /dev/null @@ -1,204 +0,0 @@ -var test = require('tap').test -var crypto = require('crypto') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'http://localhost:1337/' -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var METADATA = require('../package.json') -var ACCESS = 'public' -// not really a tarball, but doesn't matter -var BODY_PATH = require.resolve('../package.json') -var BODY = fs.createReadStream(BODY_PATH) -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - metadata: METADATA, - access: ACCESS, - body: BODY, - auth: AUTH -} - -test('publish call contract', function (t) { - t.throws(function () { - client.publish(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.publish([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.publish(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.publish(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.publish(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.publish(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - access: ACCESS, - body: BODY, - auth: AUTH - } - client.publish(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass package metadata to publish' }, - 'params must include metadata for package' - ) - - t.throws( - function () { - var params = { - metadata: METADATA, - access: ACCESS, - auth: AUTH - } - client.publish(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass package body to publish' }, - 'params must include body of package to publish' - ) - - t.throws( - function () { - var params = { - metadata: METADATA, - access: ACCESS, - body: BODY - } - client.publish(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to publish' }, - 'params must include auth' - ) - - t.throws( - function () { - var params = { - metadata: -1, - access: ACCESS, - body: BODY, - auth: AUTH - } - client.publish(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass package metadata to publish' }, - 'metadata must be object' - ) - - t.throws( - function () { - var params = { - metadata: METADATA, - access: 'hamchunx', - body: BODY, - auth: AUTH - } - client.publish(URI, params, nop) - }, - { - name: 'AssertionError', - message: "if present, access level must be either 'public' or 'restricted'" - }, - "access level must be 'public' or 'restricted'" - ) - - t.throws( - function () { - var params = { - metadata: METADATA, - access: ACCESS, - body: -1, - auth: AUTH - } - client.publish(URI, params, nop) - }, - { - name: 'AssertionError', - message: 'package body passed to publish must be a stream' - }, - 'body must be a Stream' - ) - - t.test('malformed semver in publish', function (t) { - var metadata = JSON.parse(JSON.stringify(METADATA)) - metadata.version = '%!@#$' - var params = { - metadata: metadata, - access: ACCESS, - message: BODY, - auth: AUTH - } - client.publish(URI, params, function (err) { - t.equal( - err && err.message, - 'invalid semver: %!@#$', - 'got expected semver validation failure' - ) - t.end() - }) - }) - - t.end() -}) - -test('publish', function (t) { - var pd = fs.readFileSync(BODY_PATH) - - server.expect('/npm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._id, 'npm-registry-client') - t.equal(o['dist-tags'].latest, METADATA.version) - t.equal(o.access, ACCESS) - t.has(o.versions[METADATA.version], METADATA) - t.same(o.maintainers, [{ name: 'username', email: 'i@izs.me' }]) - t.same(o.maintainers, o.versions[METADATA.version].maintainers) - - var att = o._attachments[METADATA.name + '-' + METADATA.version + '.tgz'] - t.same(att.data, pd.toString('base64')) - - var hash = crypto.createHash('sha1').update(pd).digest('hex') - t.equal(o.versions[METADATA.version].dist.shasum, hash) - - res.statusCode = 201 - res.json({ created: true }) - }) - }) - - client.publish(URI, PARAMS, function (er, data) { - if (er) throw er - - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/redirects.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/redirects.js deleted file mode 100644 index 2da56576..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/redirects.js +++ /dev/null @@ -1,56 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var pkg = { - _id: 'some-package@1.2.3', - name: 'some-package', - version: '1.2.3' -} - -test('basic request', function (t) { - // Expect one request for { follow : false } - server.expect('/-/some-package/1.2.3', function (req, res) { - res.writeHead(301, { - 'Location': '/some-package/1.2.3' - }) - res.end('Redirecting') - }) - - // Expect 2 requests for { follow : true } - server.expect('/-/some-package/1.2.3', function (req, res) { - res.writeHead(301, { - 'Location': '/some-package/1.2.3' - }) - res.end('Redirecting') - }) - - server.expect('/some-package/1.2.3', function (req, res) { - res.json(pkg) - }) - - t.plan(2) - - client.get( - 'http://localhost:1337/-/some-package/1.2.3', - { follow: false }, - function (er) { - t.ok(er, 'Error must be set') - } - ) - - client.get( - 'http://localhost:1337/-/some-package/1.2.3', - { follow: true }, - function (er, data) { - t.deepEqual(data, pkg) - } - ) -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/request-gzip-content.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/request-gzip-content.js deleted file mode 100644 index 5e25214f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/request-gzip-content.js +++ /dev/null @@ -1,61 +0,0 @@ -var zlib = require('zlib') -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient({ - retry: { - count: 1, - minTimeout: 10, - maxTimeout: 100 - } -}) - -var TEST_URL = common.registry + '/some-package-gzip/1.2.3' - -var pkg = { - _id: 'some-package-gzip@1.2.3', - name: 'some-package-gzip', - version: '1.2.3' -} - -zlib.gzip(JSON.stringify(pkg), function (err, pkgGzip) { - test('request gzip package content', function (t) { - t.ifError(err, 'example package compressed') - - server.expect('GET', '/some-package-gzip/1.2.3', function (req, res) { - res.statusCode = 200 - res.setHeader('Content-Encoding', 'gzip') - res.setHeader('Content-Type', 'application/json') - res.end(pkgGzip) - }) - - client.get(TEST_URL, {}, function (er, data) { - if (er) throw er - t.deepEqual(data, pkg, 'some-package-gzip version 1.2.3') - t.end() - }) - }) - - test('request wrong gzip package content', function (t) { - // will retry 3 times - for (var i = 0; i < 3; i++) { - server.expect('GET', '/some-package-gzip/1.2.3', function (req, res) { - res.statusCode = 200 - res.setHeader('Content-Encoding', 'gzip') - res.setHeader('Content-Type', 'application/json') - res.end(new Buffer('wrong gzip content')) - }) - } - - client.get(TEST_URL, {}, function (er) { - t.ok(er, 'ungzip error') - t.end() - }) - }) - - test('cleanup', function (t) { - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/request.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/request.js deleted file mode 100644 index ed02f197..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/request.js +++ /dev/null @@ -1,317 +0,0 @@ -var Readable = require('readable-stream').Readable -var inherits = require('util').inherits - -var test = require('tap').test -var concat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function OneA () { - Readable.call(this) - this.push('A') - this.push(null) -} -inherits(OneA, Readable) - -function nop () {} - -var URI = 'http://localhost:1337/' -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { auth: AUTH } - -test('request call contract', function (t) { - t.throws( - function () { - client.request(undefined, PARAMS, nop) - }, - { name: 'AssertionError', message: 'must pass uri to request' }, - 'requires a URI' - ) - - t.throws( - function () { - client.request([], PARAMS, nop) - }, - { name: 'AssertionError', message: 'must pass uri to request' }, - 'requires URI to be a string' - ) - - t.throws( - function () { - client.request(URI, undefined, nop) - }, - { name: 'AssertionError', message: 'must pass params to request' }, - 'requires params object' - ) - - t.throws( - function () { - client.request(URI, '', nop) - }, - { name: 'AssertionError', message: 'must pass params to request' }, - 'params must be object' - ) - - t.throws( - function () { - client.request(URI, PARAMS, undefined) - }, - { name: 'AssertionError', message: 'must pass callback to request' }, - 'requires callback' - ) - - t.throws( - function () { - client.request(URI, PARAMS, 'callback') - }, - { name: 'AssertionError', message: 'must pass callback to request' }, - 'callback must be function' - ) - - t.end() -}) - -test('run request through its paces', function (t) { - t.plan(34) - - server.expect('/request-defaults', function (req, res) { - t.equal(req.method, 'GET', 'uses GET by default') - - req.pipe(concat(function (d) { - t.notOk(d.toString('utf7'), 'no data included in request') - - res.statusCode = 200 - res.json({ fetched: 'defaults' }) - })) - }) - - server.expect('/last-modified', function (req, res) { - t.equal(req.headers['if-modified-since'], 'test-last-modified', - 'got test if-modified-since') - - res.statusCode = 200 - res.json({ fetched: 'last-modified' }) - }) - - server.expect('/etag', function (req, res) { - t.equal(req.headers['if-none-match'], 'test-etag', 'got test etag') - - res.statusCode = 200 - res.json({ fetched: 'etag' }) - }) - - server.expect('POST', '/etag-post', function (req, res) { - t.equal(req.headers['if-match'], 'post-etag', 'got test post etag') - - res.statusCode = 200 - res.json({ posted: 'etag' }) - }) - - server.expect('PUT', '/body-stream', function (req, res) { - req.pipe(concat(function (d) { - t.equal(d.toString('utf8'), 'A', 'streamed expected data') - - res.statusCode = 200 - res.json({ put: 'stream' }) - })) - }) - - server.expect('PUT', '/body-buffer', function (req, res) { - req.pipe(concat(function (d) { - t.equal(d.toString('utf8'), 'hi', 'streamed expected data') - - res.statusCode = 200 - res.json({ put: 'buffer' }) - })) - }) - - server.expect('PUT', '/body-string', function (req, res) { - req.pipe(concat(function (d) { - t.equal(d.toString('utf8'), 'erp', 'streamed expected data') - - res.statusCode = 200 - res.json({ put: 'string' }) - })) - }) - - server.expect('PUT', '/body-object', function (req, res) { - req.pipe(concat(function (d) { - t.equal(d.toString('utf8'), '["tricky"]', 'streamed expected data') - - res.statusCode = 200 - res.json({ put: 'object' }) - })) - }) - - server.expect('GET', '/body-error-string', function (req, res) { - req.pipe(concat(function () { - res.statusCode = 200 - res.json({ error: 'not really an error', reason: 'unknown' }) - })) - }) - - server.expect('GET', '/body-error-object', function (req, res) { - req.pipe(concat(function () { - res.statusCode = 200 - res.json({ error: {} }) - })) - }) - - server.expect('GET', '/@scoped%2Fpackage-failing', function (req, res) { - req.pipe(concat(function () { - res.statusCode = 402 - res.json({ error: 'payment required' }) - })) - }) - - server.expect('GET', '/not-found-no-body', function (req, res) { - req.pipe(concat(function () { - res.statusCode = 404 - res.end() - })) - }) - - var defaults = {} - client.request( - common.registry + '/request-defaults', - defaults, - function (er, data, raw, response) { - t.ifError(er, 'call worked') - t.deepEquals(data, { fetched: 'defaults' }, 'confirmed defaults work') - t.equal(response.headers.connection, 'keep-alive', 'keep-alive set') - } - ) - - var lastModified = { lastModified: 'test-last-modified' } - client.request(common.registry + '/last-modified', lastModified, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { fetched: 'last-modified' }, 'last-modified request sent') - }) - - var etagged = { etag: 'test-etag' } - client.request(common.registry + '/etag', etagged, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { fetched: 'etag' }, 'etag request sent') - }) - - var postEtagged = { - method: 'post', - etag: 'post-etag' - } - client.request(common.registry + '/etag-post', postEtagged, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { posted: 'etag' }, 'POST etag request sent') - }) - - var putStream = { - method: 'PUT', - body: new OneA(), - auth: AUTH - } - client.request(common.registry + '/body-stream', putStream, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { put: 'stream' }, 'PUT request with stream sent') - }) - - var putBuffer = { - method: 'PUT', - body: new Buffer('hi'), - auth: AUTH - } - client.request(common.registry + '/body-buffer', putBuffer, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { put: 'buffer' }, 'PUT request with buffer sent') - }) - - var putString = { - method: 'PUT', - body: 'erp', - auth: AUTH - } - client.request(common.registry + '/body-string', putString, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { put: 'string' }, 'PUT request with string sent') - }) - - var putObject = { - method: 'PUT', - body: { toJSON: function () { return ['tricky'] } }, - auth: AUTH - } - client.request(common.registry + '/body-object', putObject, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { put: 'object' }, 'PUT request with object sent') - }) - - client.request(common.registry + '/body-error-string', defaults, function (er) { - t.equal( - er && er.message, - 'not really an error unknown: body-error-string', - 'call worked' - ) - }) - - client.request(common.registry + '/body-error-object', defaults, function (er) { - t.ifError(er, 'call worked') - }) - - client.request(common.registry + '/@scoped%2Fpackage-failing', defaults, function (er) { - t.equals(er.message, 'payment required : @scoped/package-failing') - }) - - client.request(common.registry + '/not-found-no-body', defaults, function (er) { - t.equals(er.message, '404 Not Found') - t.equals(er.statusCode, 404, 'got back 404 as .statusCode') - t.equals(er.code, 'E404', 'got back expected string code') - t.notOk(er.pkgid, "no package name returned when there's no body on response") - t.ok(typeof er !== 'string', "Error shouldn't be returned as string.") - }) -}) - -test('outputs notice if npm-notice header is set', function (t) { - var client = common.freshClient({ - log: { - error: noop, - warn: function (prefix, msg) { - warnings.push(msg) - }, - info: noop, - verbose: noop, - silly: noop, - http: noop, - pause: noop, - resume: noop - } - }) - var message = 'notice me!' - var warnings = [] - - function noop () {} - - server.expect('GET', '/npm-notice', function (req, res) { - req.pipe(concat(function () { - res.statusCode = 200 - res.setHeader('npm-notice', message) - res.end() - })) - }) - - client.request(common.registry + '/npm-notice', {}, function (er) { - t.notEqual(warnings.indexOf(message), -1, 'notice not printed') - t.end() - }) -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/retries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/retries.js deleted file mode 100644 index a75cbf7e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/retries.js +++ /dev/null @@ -1,52 +0,0 @@ -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient({ - retry: { - retries: 6, - minTimeout: 10, - maxTimeout: 100 - } -}) - -var pkg = { - _id: 'some-package@1.2.3', - name: 'some-package', - version: '1.2.3' -} - -tap.test('create new user account', function (t) { - // first time, return a 408 - server.expect('GET', '/some-package/1.2.3', function (req, res) { - res.statusCode = 408 - res.end('Timeout') - }) - // then, slam the door in their face - server.expect('GET', '/some-package/1.2.3', function (req, res) { - res.destroy() - }) - // then, blame someone else - server.expect('GET', '/some-package/1.2.3', function (req, res) { - res.statusCode = 502 - res.end('Gateway Timeout') - }) - // 'No one's home right now, come back later' - server.expect('GET', '/some-package/1.2.3', function (req, res) { - res.statusCode = 503 - res.setHeader('retry-after', '10') - res.end('Come back later') - }) - // finally, you may enter. - server.expect('GET', '/some-package/1.2.3', function (req, res) { - res.statusCode = 200 - res.json(pkg) - }) - - client.get('http://localhost:1337/some-package/1.2.3', {}, function (er, data) { - if (er) throw er - t.deepEqual(data, pkg) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/star.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/star.js deleted file mode 100644 index e9e60266..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/star.js +++ /dev/null @@ -1,176 +0,0 @@ -var test = require('tap').test -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() -var cache = require('./fixtures/underscore/cache.json') -var nock = require('nock') - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var STARRED = true -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - starred: STARRED, - auth: AUTH -} - -test('star call contract', function (t) { - t.throws(function () { - client.star(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.star([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.star(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.star(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.star(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.star(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { starred: STARRED } - client.star(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to star' }, - 'params must include auth' - ) - - t.end() -}) - -test('star a package', function (t) { - server.expect('GET', '/underscore?write=true', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('PUT', '/underscore', function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - - var already = [ - 'vesln', 'mvolkmann', 'lancehunt', 'mikl', 'linus', 'vasc', 'bat', - 'dmalam', 'mbrevoort', 'danielr', 'rsimoes', 'thlorenz' - ] - for (var i = 0; i < already.length; i++) { - var current = already[i] - t.ok( - updated.users[current], - current + ' still likes this package' - ) - } - t.ok(updated.users[USERNAME], 'user is in the starred list') - - res.statusCode = 201 - res.json({ starred: true }) - }) - }) - - var params = { starred: STARRED, auth: AUTH } - - client.star('http://localhost:1337/underscore', params, function (er, data) { - t.ifError(er, 'no errors') - t.ok(data.starred, 'was starred') - - t.end() - }) -}) - -test('if password auth, only sets authorization on put', function (t) { - var starGet = nock('http://localhost:1010') - .get('/underscore?write=true') - .reply(200, {}) - - var starPut = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Basic ' + new Buffer(AUTH.username + ':' + - AUTH.password).toString('base64') - } - }) - .put('/underscore') - .reply(200) - - var params = { starred: STARRED, auth: AUTH } - - client.star('http://localhost:1010/underscore', params, function (er) { - t.ifError(er, 'starred without issues') - starGet.done() - starPut.done() - t.end() - }) -}) - -test('if token auth, sets bearer on get and put', function (t) { - var starGet = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Bearer foo' - } - }) - .get('/underscore?write=true') - .reply(200, {}) - - var getUser = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Bearer foo' - } - }) - .get('/-/whoami') - .reply(200, { username: 'bcoe' }) - - var starPut = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Bearer foo' - } - }) - .put('/underscore') - .reply(200) - - var params = { - starred: STARRED, - auth: { - token: 'foo' - } - } - client.star('http://localhost:1010/underscore', params, function (er) { - t.ifError(er, 'starred without error') - starGet.done() - starPut.done() - getUser.done() - t.end() - }) -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/stars.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/stars.js deleted file mode 100644 index a5e713c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/stars.js +++ /dev/null @@ -1,81 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var USERNAME = 'sample' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - username: USERNAME, - auth: AUTH -} -var USERS = [ - 'benjamincoe', - 'seldo', - 'ceejbot' -] - -test('stars call contract', function (t) { - t.throws(function () { - client.stars(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.stars([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.stars(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.stars(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.stars(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.stars(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.test('no username anywhere', function (t) { - var params = {} - client.stars(URI, params, function (err) { - t.equal( - err && err.message, - 'must pass either username or auth to stars', - 'username must not be empty') - t.end() - }) - }) - - t.end() -}) - -test('get the stars for a package', function (t) { - server.expect('GET', '/-/_view/starredByUser?key=%22sample%22', function (req, res) { - t.equal(req.method, 'GET') - - res.json(USERS) - }) - - client.stars('http://localhost:1337/', PARAMS, function (er, info) { - t.ifError(er, 'no errors') - t.deepEqual(info, USERS, 'got the list of users') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/tag.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/tag.js deleted file mode 100644 index e10490ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/tag.js +++ /dev/null @@ -1,108 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'http://localhost:1337/underscore' -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var VERSION = '1.3.2' -var TAG = 'not-lodash' -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - tag: TAG, - version: VERSION, - auth: AUTH -} - -test('tag call contract', function (t) { - t.throws(function () { - client.tag(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.tag([], AUTH, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.tag(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.tag(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.tag(URI, AUTH, undefined) - }, 'requires callback') - - t.throws(function () { - client.tag(URI, AUTH, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { tag: TAG, auth: AUTH } - client.tag(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass version to tag' }, - 'tag must include version' - ) - - t.throws( - function () { - var params = { version: VERSION, auth: AUTH } - client.tag(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass tag name to tag' }, - 'tag must include name' - ) - - t.throws( - function () { - var params = { version: VERSION, tag: TAG } - client.tag(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to tag' }, - 'params must include auth' - ) - - t.end() -}) - -test('tag a package', function (t) { - server.expect('PUT', '/underscore/not-lodash', function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - - t.deepEqual(updated, '1.3.2') - - res.statusCode = 201 - res.json({ tagged: true }) - }) - }) - - client.tag(URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.tagged, 'was tagged') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/team.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/team.js deleted file mode 100644 index ffbd18fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/team.js +++ /dev/null @@ -1,215 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'http://localhost:1337' -var PARAMS = { - auth: { - token: 'foo' - }, - scope: 'myorg', - team: 'myteam' -} - -var commands = ['create', 'destroy', 'add', 'rm', 'ls'] - -test('team create basic', function (t) { - var teamData = { - name: PARAMS.team, - scope_id: 1234, - created: '2015-07-23T18:07:49.959Z', - updated: '2015-07-23T18:07:49.959Z', - deleted: null - } - server.expect('PUT', '/-/org/myorg/team', function (req, res) { - t.equal(req.method, 'PUT') - onJsonReq(req, function (json) { - t.same(json, { name: PARAMS.team }) - res.statusCode = 200 - res.json(teamData) - }) - }) - client.team('create', URI, PARAMS, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, teamData) - t.end() - }) -}) - -test('team destroy', function (t) { - var teamData = { - name: 'myteam', - scope_id: 1234, - created: '2015-07-23T18:07:49.959Z', - updated: '2015-07-23T18:07:49.959Z', - deleted: '2015-07-23T18:27:27.178Z' - } - server.expect('DELETE', '/-/team/myorg/myteam', function (req, res) { - t.equal(req.method, 'DELETE') - onJsonReq(req, function (json) { - t.same(json, undefined) - res.statusCode = 200 - res.json(teamData) - }) - }) - client.team('destroy', URI, PARAMS, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, teamData) - t.end() - }) -}) - -test('team add basic', function (t) { - var params = Object.create(PARAMS) - params.user = 'zkat' - server.expect('PUT', '/-/team/myorg/myteam/user', function (req, res) { - t.equal(req.method, 'PUT') - onJsonReq(req, function (json) { - t.same(json, { user: params.user }) - res.statusCode = 200 - res.json(undefined) - }) - }) - client.team('add', URI, params, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, undefined) - t.end() - }) -}) - -test('team add user not in org', function (t) { - var params = Object.create(PARAMS) - params.user = 'zkat' - var errMsg = 'user is already in team' - server.expect('PUT', '/-/team/myorg/myteam/user', function (req, res) { - t.equal(req.method, 'PUT') - res.statusCode = 400 - res.json({ - error: errMsg - }) - }) - client.team('add', URI, params, function (err, data) { - t.equal(err.message, errMsg + ' : ' + '-/team/myorg/myteam/user') - t.same(data, {error: errMsg}) - t.end() - }) -}) - -test('team rm basic', function (t) { - var params = Object.create(PARAMS) - params.user = 'bcoe' - server.expect('DELETE', '/-/team/myorg/myteam/user', function (req, res) { - t.equal(req.method, 'DELETE') - onJsonReq(req, function (json) { - t.same(json, params) - res.statusCode = 200 - res.json(undefined) - }) - }) - client.team('rm', URI, params, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, undefined) - t.end() - }) -}) - -test('team ls (on org)', function (t) { - var params = Object.create(PARAMS) - params.team = null - var teams = ['myorg:team1', 'myorg:team2', 'myorg:team3'] - server.expect('GET', '/-/org/myorg/team?format=cli', function (req, res) { - t.equal(req.method, 'GET') - onJsonReq(req, function (json) { - t.same(json, undefined) - res.statusCode = 200 - res.json(teams) - }) - }) - client.team('ls', URI, params, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, teams) - t.end() - }) -}) - -test('team ls (on team)', function (t) { - var uri = '/-/team/myorg/myteam/user?format=cli' - var users = ['zkat', 'bcoe'] - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - onJsonReq(req, function (json) { - t.same(json, undefined) - res.statusCode = 200 - res.json(users) - }) - }) - client.team('ls', URI, PARAMS, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, users) - t.end() - }) -}) - -// test('team edit', function (t) { -// server.expect('PUT', '/-/org/myorg/team', function (req, res) { -// t.equal(req.method, 'PUT') -// res.statusCode = 201 -// res.json({}) -// }) -// client.team('create', URI, PARAMS, function (err, data) { -// t.ifError(err, 'no errors') -// t.end() -// }) -// }) - -test('team command base validation', function (t) { - t.throws(function () { - client.team(undefined, URI, PARAMS, nop) - }, 'command is required') - commands.forEach(function (cmd) { - t.throws(function () { - client.team(cmd, undefined, PARAMS, nop) - }, 'registry URI is required') - t.throws(function () { - client.team(cmd, URI, undefined, nop) - }, 'params is required') - t.throws(function () { - client.team(cmd, URI, {scope: 'o', team: 't'}, nop) - }, 'auth is required') - t.throws(function () { - client.team(cmd, URI, {auth: {token: 'f'}, team: 't'}, nop) - }, 'scope is required') - t.throws(function () { - client.team(cmd, URI, PARAMS, {}) - }, 'callback must be a function') - if (cmd !== 'ls') { - t.throws(function () { - client.team( - cmd, URI, {auth: {token: 'f'}, scope: 'o'}, nop) - }, 'team name is required') - } - if (cmd === 'add' || cmd === 'rm') { - t.throws(function () { - client.team( - cmd, URI, PARAMS, nop) - }, 'user is required') - } - }) - t.end() -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) - -function onJsonReq (req, cb) { - var buffer = '' - req.setEncoding('utf8') - req.on('data', function (data) { buffer += data }) - req.on('end', function () { cb(buffer ? JSON.parse(buffer) : undefined) }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/unpublish-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/unpublish-scoped.js deleted file mode 100644 index 26d4ac7b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/unpublish-scoped.js +++ /dev/null @@ -1,68 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var cache = require('./fixtures/@npm/npm-registry-client/cache.json') - -var REV = '/-rev/213-0a1049cf56172b7d9a1184742c6477b9' -var PACKAGE = '/@npm%2fnpm-registry-client' -var URI = common.registry + PACKAGE -var TOKEN = 'of-glad-tidings' -var VERSION = '3.0.6' -var AUTH = { - token: TOKEN -} -var PARAMS = { - version: VERSION, - auth: AUTH -} - -test('unpublish a package', function (t) { - server.expect('GET', '/@npm%2fnpm-registry-client?write=true', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('PUT', '/@npm%2fnpm-registry-client' + REV, function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf-8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - t.notOk(updated.versions[VERSION]) - }) - - res.json(cache) - }) - - server.expect('GET', PACKAGE, function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect( - 'DELETE', - PACKAGE + '/-' + PACKAGE + '-' + VERSION + '.tgz' + REV, - function (req, res) { - t.equal(req.method, 'DELETE') - - res.json({ unpublished: true }) - } - ) - - client.unpublish(URI, PARAMS, function (er) { - t.ifError(er, 'no errors') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/unpublish.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/unpublish.js deleted file mode 100644 index 8a114c89..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/unpublish.js +++ /dev/null @@ -1,104 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var cache = require('./fixtures/underscore/cache.json') - -function nop () {} - -var REV = '/-rev/72-47f2986bfd8e8b55068b204588bbf484' -var URI = 'http://localhost:1337/underscore' -var TOKEN = 'of-glad-tidings' -var VERSION = '1.3.2' -var AUTH = { - token: TOKEN -} -var PARAMS = { - version: VERSION, - auth: AUTH -} - -test('unpublish call contract', function (t) { - t.throws(function () { - client.unpublish(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.unpublish([], AUTH, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.unpublish(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.unpublish(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.unpublish(URI, AUTH, undefined) - }, 'requires callback') - - t.throws(function () { - client.unpublish(URI, AUTH, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - version: VERSION - } - client.unpublish(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to unpublish' }, - 'must pass auth to unpublish' - ) - - t.end() -}) - -test('unpublish a package', function (t) { - server.expect('GET', '/underscore?write=true', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('PUT', '/underscore' + REV, function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf-8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - t.notOk(updated.versions[VERSION]) - }) - - res.json(cache) - }) - - server.expect('GET', '/underscore', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('DELETE', '/underscore/-/underscore-1.3.2.tgz' + REV, function (req, res) { - t.equal(req.method, 'DELETE') - - res.json({ unpublished: true }) - }) - - client.unpublish(URI, PARAMS, function (error) { - t.ifError(error, 'no errors') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/whoami.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/whoami.js deleted file mode 100644 index 80979ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/whoami.js +++ /dev/null @@ -1,70 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var WHOIAM = 'wombat' -var TOKEN = 'not-bad-meaning-bad-but-bad-meaning-wombat' -var AUTH = { token: TOKEN } -var PARAMS = { auth: AUTH } - -test('whoami call contract', function (t) { - t.throws(function () { - client.whoami(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.whoami([], AUTH, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.whoami(common.registry, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.whoami(common.registry, '', nop) - }, 'params must be object') - - t.throws(function () { - client.whoami(common.registry, AUTH, undefined) - }, 'requires callback') - - t.throws(function () { - client.whoami(common.registry, AUTH, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = {} - client.whoami(common.registry, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to whoami' }, - 'must pass auth to whoami' - ) - - t.end() -}) - -test('whoami', function (t) { - server.expect('GET', '/-/whoami', function (req, res) { - t.equal(req.method, 'GET') - // only available for token-based auth for now - t.equal( - req.headers.authorization, - 'Bearer not-bad-meaning-bad-but-bad-meaning-wombat' - ) - - res.json({ username: WHOIAM }) - }) - - client.whoami(common.registry, PARAMS, function (error, wombat) { - t.ifError(error, 'no errors') - t.equal(wombat, WHOIAM, 'im a wombat') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/zz-cleanup.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/zz-cleanup.js deleted file mode 100644 index 35253c7a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm-registry-client/test/zz-cleanup.js +++ /dev/null @@ -1,10 +0,0 @@ -var tap = require('tap') -var rimraf = require('rimraf') - -tap.test('teardown', function (t) { - rimraf(__dirname + '/fixtures/cache', function (er) { - if (er) throw er - t.pass('cache cleaned') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.mailmap b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.mailmap deleted file mode 100644 index 06eb16cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.mailmap +++ /dev/null @@ -1,63 +0,0 @@ -Alex K. Wolfe -Andrew Bradley -Andrew Lunny -Arlo Breault -Ashley Williams -Ashley Williams -Benjamin Coe -Benjamin Coe -Brian White -Cedric Nelson -Charlie Robbins -Dalmais Maxence -Danila Gerasimov -Dave Galbraith -David Beitey -Domenic Denicola -Einar Otto Stangvik -Erik Wienhold -Evan Lucas -Evan Lucas -Faiq Raza -Forbes Lindesay -Forrest L Norvell -Gabriel Barros -Geoff Flarity -Ifeanyi Oraelosi -Isaac Z. Schlueter -Isaac Z. Schlueter isaacs -Jake Verbaten -James Sanders -James Treworgy -Jason Smith -Jonas Weber -Julien Meddah -Kevin Lorenz -Kris Windham -Lin Clark -Luke Arduini -Maciej Małecki -Martin Ek -Max Goodman -Maxim Bogushevich -Maximilian Antoni -Michael Hayes -Nicolas Morel -Olivier Melcher -Ra'Shaun Stovall -Rebecca Turner -Rebecca Turner -Ryan Emery -Sam Mikes -Stephanie Snopek -Takaya Kobayashi -Thomas Reggi -Timo Weiß -Tony -Trent Mick -Visnu Pitiyanuvath -Will Elwood -Wout Mertens -Yeonghoon Park -Zeke Sikelianos -Zoujie Wzj diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.npmignore deleted file mode 100644 index 93398c04..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.npmignore +++ /dev/null @@ -1,32 +0,0 @@ -*.swp -.*.swp -npm-debug.log -/test/bin -/test/output.log -/test/packages/*/node_modules -/test/packages/npm-test-depends-on-spark/which-spark.log -/test/packages/test-package/random-data.txt -/test/root -/test/npm_cache -node_modules/marked -node_modules/ronn -node_modules/tap -node_modules/.bin -node_modules/npm-registry-mock -/npmrc -/release/ - -# don't need these in the npm package. -html/*.png - -# don't ignore .npmignore files -# these are used in some tests. -!.npmignore - -/npm-*.tgz - -*.pyc - -/test/tap/builtin-config - -.nyc_output diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.tern-project b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.tern-project deleted file mode 100644 index fca32888..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.tern-project +++ /dev/null @@ -1,12 +0,0 @@ -{ - "ecmaVersion": 6, - "libs": [], - "plugins": { - "complete_strings": {}, - "node": {}, - "lint": {}, - "doc_comment": { - "fullDocs": true - } - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.travis.yml deleted file mode 100644 index 69cb956a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -language: node_js -node_js: - - "6" - - "4" - - "5" - - "0.12" - - "0.10" - - "0.8" -env: - - DEPLOY_VERSION=testing -before_install: - - "npm config set spin false" - - "node . install -g ." - - "mkdir -p /var/run/couchdb" -sudo: false -script: "npm test" -notifications: - slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/AUTHORS b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/AUTHORS deleted file mode 100644 index 2a5322b1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/AUTHORS +++ /dev/null @@ -1,406 +0,0 @@ -# Authors sorted by whether or not they're me -Isaac Z. Schlueter -Steve Steiner -Mikeal Rogers -Aaron Blohowiak -Martyn Smith -Charlie Robbins -Francisco Treacy -Cliffano Subagio -Christian Eager -Dav Glass -Alex K. Wolfe -James Sanders -Reid Burke -Arlo Breault -Timo Derstappen -Bart Teeuwisse -Ben Noordhuis -Tor Valamo -Whyme.Lyu <5longluna@gmail.com> -Olivier Melcher -Tomaž Muraus -Evan Meagher -Orlando Vazquez -Kai Chen -George Miroshnykov -Geoff Flarity -Max Goodman -Pete Kruckenberg -Laurie Harper -Chris Wong -Scott Bronson -Federico Romero -Visnu Pitiyanuvath -Irakli Gozalishvili -Mark Cahill -Tony -Iain Sproat -Trent Mick -Felix Geisendörfer -Jameson Little -Conny Brunnkvist -Will Elwood -Dean Landolt -Oleg Efimov -Martin Cooper -Jann Horn -Andrew Bradley -Maciej Małecki -Stephen Sugden -Michael Budde -Jason Smith -Gautham Pai -David Trejo -Paul Vorbach -George Ornbo -Tim Oxley -Tyler Green -Dave Pacheco -Danila Gerasimov -Rod Vagg -Christian Howe -Andrew Lunny -Henrik Hodne -Adam Blackburn -Kris Windham -Jens Grunert -Joost-Wim Boekesteijn -Dalmais Maxence -Marcus Ekwall -Aaron Stacy -Phillip Howell -Domenic Denicola -James Halliday -Jeremy Cantrell -Ribettes -Don Park -Einar Otto Stangvik -Kei Son -Nicolas Morel -Mark Dube -Nathan Rajlich -Maxim Bogushevich -Meaglin -Ben Evans -Nathan Zadoks -Brian White -Jed Schmidt -Ian Livingstone -Patrick Pfeiffer -Paul Miller -Ryan Emery -Carl Lange -Jan Lehnardt -Stuart P. Bentley -Johan Sköld -Stuart Knightley -Niggler -Paolo Fragomeni -Jaakko Manninen -Luke Arduini -Larz Conwell -Marcel Klehr -Robert Kowalski -Forbes Lindesay -Vaz Allen -Jake Verbaten -Schabse Laks -Florian Margaine -Johan Nordberg -Ian Babrou -Di Wu -Mathias Bynens -Matt McClure -Matt Lunn -Alexey Kreschuk -elisee -Robert Gieseke -François Frisch -Trevor Burnham -Alan Shaw -TJ Holowaychuk -Nicholas Kinsey -Paulo Cesar -Elan Shanker -Jon Spencer -Jason Diamond -Maximilian Antoni -Thom Blake -Jess Martin -Spain Train -Alex Rodionov -Matt Colyer -Evan You -bitspill -Gabriel Falkenberg -Alexej Yaroshevich -Quim Calpe -Steve Mason -Wil Moore III -Sergey Belov -Tom Huang -CamilleM -Sébastien Santoro -Evan Lucas -Quinn Slack -Alex Kocharin -Daniel Santiago -Denis Gladkikh -Andrew Horton -Zeke Sikelianos -Dylan Greene -Franck Cuny -Yeonghoon Park -Rafael de Oleza -Mikola Lysenko -Yazhong Liu -Neil Gentleman -Kris Kowal -Alex Gorbatchev -Shawn Wildermuth -Wesley de Souza -yoyoyogi -J. Tangelder -Jean Lauliac -Andrey Kislyuk -Thorsten Lorenz -Julian Gruber -Benjamin Coe -Alex Ford -Matt Hickford -Sean McGivern -C J Silverio -Robin Tweedie -Miroslav Bajtoš -David Glasser -Gianluca Casati -Forrest L Norvell -Karsten Tinnefeld -Bryan Burgers -David Beitey -Evan You -Zach Pomerantz -Chris Williams -sudodoki -Mick Thompson -Felix Rabe -Michael Hayes -Chris Dickinson -Bradley Meck -GeJ -Andrew Terris -Michael Nisi -fengmk2 -Adam Meadows -Chulki Lee -不四 -dead_horse -Kenan Yildirim -Laurie Voss -Rebecca Turner -Hunter Loftis -Peter Richardson -Jussi Kalliokoski -Filip Weiss -Timo Weiß -Christopher Hiller -Jérémy Lal -Anders Janmyr -Chris Meyers -Ludwig Magnusson -Wout Mertens -Nick Santos -Terin Stock -Faiq Raza -Thomas Torp -Sam Mikes -Mat Tyndall -Tauren Mills -Ron Martinez -Kazuhito Hokamura -Tristan Davies -David Volm -Lin Clark -Ben Page -Jeff Jo -martinvd -Mark J. Titorenko -Oddur Sigurdsson -Eric Mill -Gabriel Barros -KevinSheedy -Aleksey Smolenchuk -Ed Morley -Blaine Bublitz -Andrey Fedorov -Daijiro Wachi -Luc Thevenard -Aria Stewart -Charlie Rudolph -Vladimir Rutsky -Isaac Murchie -Marcin Wosinek -David Marr -Bryan English -Anthony Zotti -Karl Horky -Jordan Harband -Guðlaugur Stefán Egilsson -Helge Skogly Holm -Peter A. Shevtsov -Alain Kalker -Bryant Williams -Jonas Weber -Tim Whidden -Andreas -Karolis Narkevicius -Adrian Lynch -Richard Littauer -Oli Evans -Matt Brennan -Jeff Barczewski -Danny Fritz -Takaya Kobayashi -Ra'Shaun Stovall -Julien Meddah -Michiel Sikma -Jakob Krigovsky -Charmander <~@charmander.me> -Erik Wienhold -James Butler -Kevin Kragenbrink -Arnaud Rinquin -Mike MacCana -Antti Mattila -laiso -Matt Zorn -Kyle Mitchell -Jeremiah Senkpiel -Michael Klein -Simen Bekkhus -Victor -thefourtheye -Clay Carpenter -bangbang93 -Nick Malaguti -Cedric Nelson -Kat Marchán -Andrew -Eduardo Pinho -Rachel Hutchison -Ryan Temple -Eugene Sharygin -James Talmage -jane arc -Joseph Dykstra -Andrew Crites -Joshua Egan -Carlos Alberto -Thomas Cort -Thaddee Tyl -Steve Klabnik -Andrew Murray -Stephan Bönnemann -Kyle M. Tarplee -Derek Peterson -Greg Whiteley -murgatroid99 -Marcin Cieslak -João Reis -Matthew Hasbach -Jon Hall -Anna Henningsen -James Treworgy -James Hartig -Stephanie Snopek -Kent C. Dodds -Aaron Krause -Daniel K O'Leary -fscherwi -Thomas Reggi -Thomas Michael McTiernan -Jason Kurian -Sebastiaan Deckers -lady3bean -Tomi Carr -Juan Caicedo -Ashley Williams -Andrew Marcinkevičius -Jorrit Schippers -Alex Lukin -Aria Stewart -Tiago Rodrigues -Tim -Nick Williams -Louis Larry -Ben Gotow -Jakub Gieryluk -Kevin Lorenz -Martin von Gagern -Eymen Gunay -Martin Ek -Rafał Pocztarski -Mark Reeder -Chris Rebert -Scott Addie -Jeff McMahan -Tim Krins -Hal Henke -Julian Simioni -Jimb Esser -Alexis Campailla -Chris Chua -Beau Gunderson -Dave Galbraith -s100 -Sergey Simonchik -Vanja Radovanović -Jonathan Persson -Vedat Mahir YILMAZ -Samuel Reed -Rafał Legiędź -Jan Schär -Xcat Liu -harryh -Prayag Verma -Neil Kistner -Zoujie Wzj -Ryan Hendrickson -Arturo Coronel -Hutson Betts -Lewis Cowper -Adam Byrne -Ifeanyi Oraelosi -Robert Ludwig -Chris Warren -Scott Plumlee -Daniel Pedersen -rhgb -doug.wade -Zac -GriffinSchneider -Andres Kalle -thefourtheye -Yael -Yann Odeyer -James Monger -Thomas Hallock -Paul Irish -Paul O'Leary McCann -Francis Gulotta -Felix Rieseberg -Glen Mailer -Federico Brigante -Steve Mao -Anna Henningsen -Rachel Evans -Sam Minnee -Zirak -Daniel Lupu -Gianluca Casati -André Herculano -Wyatt Preul -Myles Borins -Elliot Lee -Dmitry Kirilyuk diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/CHANGELOG.md deleted file mode 100644 index ae6dbbd4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/CHANGELOG.md +++ /dev/null @@ -1,3994 +0,0 @@ -### v3.9.6 (2016-06-02): - -#### SMALL OUTPUT TWEAK - -* [`0bdc9d1`](https://github.com/npm/npm/commit/0bdc9d13b73df07e63a58470ea001fda490e5869) - [#12879](https://github.com/npm/npm/pull/12879) - The usage output for npm commands was somehow under the impression that - the singular form of `aliases` is `aliase`. This has been corrected to show - `alias` instead. - ([@intelliot](https://github.com/intelliot)) - -#### DOC UPDATES - -* [`f771b49`](https://github.com/npm/npm/commit/f771b49f5d65bbef540c231fbfcca71cacdce4db) - [#12933](https://github.com/npm/npm/pull/12933) - Add `config.gypi` to list of files that are always ignored in the - `package.json` manpage. - ([@Jokero](https://github.com/Jokero)) - -#### DEPENDENCY UPDATES - -* [`61c1d9c`](https://github.com/npm/npm/commit/61c1d9cd4b2296bd41d55a5c58e35ca5f028b9bc) - [#12926](https://github.com/npm/npm/pull/12926) - Removed unused dependency `lodash.isarray`. - ([@mmalecki](https://github.com/mmalecki)) -* [`168ed28`](https://github.com/npm/npm/commit/168ed2834b2c6db8bb39f81baadc0bf275807328) - [#12926](https://github.com/npm/npm/pull/12926) - Removed unused dependency `lodash.keys`. - ([@mmalecki](https://github.com/mmalecki)) - -### v3.9.5 (2016-05-27): - -Just a quick point release. We had an issue where I (Kat) included the -`.nyc_output/` directory in `npm@3.9.3` and `npm@3.9.4`. The issue got reported -right after that second release -([`#12873`](https://github.com/npm/npm/issues/12873)), and now there's this -small point release that's there to fix the issue sooner. - -* [`f96aea0`](https://github.com/npm/npm/commit/f96aea085be981cdb59bd09f16da40717426f981) - [#12878](https://github.com/npm/npm/pull/12878) - Ignore `.nyc_output` to avoid an accidental publish or commit filled with - code coverage data. - ([@TheAlphaNerd](https://github.com/TheAlphaNerd)) - -### v3.9.4 (2016-05-26): - -Hey all! It's that time again! - -This week continues our current `big-bug` squashing push, although there's none -that are ready to release quite yet -- we're working on it! - -It's also worth noting that we're entering the main part of conference season, -so you can probably expect a bit of a dev slowdown as a lot of us wombats attend -or speak at the various conferences. Remember [npm.camp](npm.camp) is happening -in 2 months and the lineup is looking pretty great! Tickets are still on sale. -Come hang out with us! WOO FUN! 🎉😸 - -#### BUGFIX - -* [`cac0038`](https://github.com/npm/npm/commit/cac0038868b18295f9f299e762e20034f32a3e11) - [#12845](https://github.com/npm/npm/pull/12845) - Progress bar during tarball packing now prints `pack:packagename` instead of - `pack:[object Object]`. - ([@iarna](https://github.com/iarna)) - -#### DOC UPDATES - -* [`0b81622`](https://github.com/npm/npm/commit/0b816225c743c9203db5d92fb4dd3a9293833298) - [#12840](https://github.com/npm/npm/pull/12840) - Remove sexualized language from comment in code. - ([@geek](https://github.com/geek)) -* [`d6dff24`](https://github.com/npm/npm/commit/d6dff2481cb587c392f22afb893ac3136371a64c) - [#12802](https://github.com/npm/npm/pull/12802) - Small grammar fix in `cli/npm.md`. - ([@andresilveira](https://github.com/andresilveira)) -* [`cb38e0f`](https://github.com/npm/npm/commit/cb38e0fff82a6c1c110026b95b07a8c32e27ec01) - [#12782](https://github.com/npm/npm/pull/12782) - Documents that `NOTICE` files started getting included after - [npm/fstream-npm#17](https://github.com/npm/fstream-npm/pull/17). - ([@SimenB](https://github.com/SimenB)) -* [`70a3ae4`](https://github.com/npm/npm/commit/70a3ae4d4ec76b3ec51f00bf5261f1147829f9fe) - [#12776](https://github.com/npm/npm/pull/12776) - `npm run-script` used to have a `` argument that allowed you to target - specific packages' scripts. This was removed as one of the breaking changes - for `npm@2`. - This patch removes a mention of that argument, which really doesn't exist - anymore. - ([@fibo](https://github.com/fibo)) - -#### DEP UPDATES - -* [`4a4470d`](https://github.com/npm/npm/commit/4a4470ddd1d9b0b62cb94f3bff5ab6b8e6db527a) - `aproba@1.0.3` - ([@iarna](https://github.com/iarna)) - -#### TEST IMPROVEMENTS - -So it turns out, `t.comment` in `tap` is actually pretty nice! -There's also a couple other test improvements by Rebecca landing here. - -* [`9fd04dd`](https://github.com/npm/npm/commit/9fd04dd6be493465d7ac5f14dd9328e66069c1bf) - [#12851](https://github.com/npm/npm/pull/12851) - Rewrite `shrinkwrap-prod-dependency-also` test to use `common.npm` - ([@iarna](https://github.com/iarna)) -* [`3bc4a8e`](https://github.com/npm/npm/commit/3bc4a8ee58cb0e0adc84b4f135330f2b1e20d992) - [#12851](https://github.com/npm/npm/pull/12851) - Clean up `rm-linked` test. - ([@iarna](https://github.com/iarna)) -* [`bf7f7f2`](https://github.com/npm/npm/commit/bf7f7f273a794f7573bbbc84b1c216fdcd9e0ef9) - [#12851](https://github.com/npm/npm/pull/12851) - Clean up `outdated-symlink` test. - ([@iarna](https://github.com/iarna)) -* [`ca0baa4`](https://github.com/npm/npm/commit/ca0baa4dac85b1df4e26ef0c73d39314ca6858ca) - [#12851](https://github.com/npm/npm/pull/12851) - Improve diagnostics for `shrinkwrap-scoped-auth` test. - ([@iarna](https://github.com/iarna)) -* [`fbec9fd`](https://github.com/npm/npm/commit/fbec9fd5bb0abce589120d14c1f2b03b58cecce1) - [#12851](https://github.com/npm/npm/pull/12851) - Rewrite `shrinkwrap-dev-dependency` test to use `common.npm`. - ([@iarna](https://github.com/iarna)) - -### v3.9.3 (2016-05-19): - -This week continues our `big-bug` squashing adventure! Things are churning along -nicely, and we've gotten a lot of fantastic contributions from the community. -Please keep it up! - -A quick note on last week's release: We had a small `npm shrinkwrap`-related -crasher in `npm@3.9.1`, so once this release goes out, `v3.9.2` is going to be -`npm@latest`. Please update if you ended up in with that previous version! - -Remember we have a weekly team meeting, and you can [suggest agenda items in the -GitHub issue](https://github.com/npm/npm/issues/12761). Keep an eye out for the -`#npmweekly` tag on Twitter, too, and join the conversation! We'll do our best -to address questions y'all send us. ✌ - -#### FIXES - -* [`42d71be`](https://github.com/npm/npm/commit/42d71be2cec674dd9e860ad414f53184f667620d) - [#12685](https://github.com/npm/npm/pull/12685) - When using `npm ls ` without a semver specifier, `npm ls` would skip - any packages in your tree that matched by name, but had a prerelease version - in their `package.json`. This patch fixes it so `npm ls` does a simple name - match unless you use the `npm ls @` format. - ([@zkat](https://github.com/zkat)) -* [`c698ae6`](https://github.com/npm/npm/commit/c698ae666afc92fbc0fcba3c082cfa9b34a4420d) - [#12685](https://github.com/npm/npm/pull/12685) - Added some tests for more basic `npm ls` functionality. - ([@zkat](https://github.com/zkat)) - -### NOTABLE DEPENDENCY UPDATES - -* [`3a6fe23`](https://github.com/npm/npm/commit/3a6fe2373c45e80a1f28aaf176d552f6f97cf131) - [npm/fstream-npm#17](https://github.com/npm/fstream-npm/pull/17) - `fstream-npm@1.1.0`: - `fstream-npm` always includes NOTICE files now. - ([@kemitchell](https://github.com/kemitchell)) -* [`df04e05`](https://github.com/npm/npm/commit/df04e05af1f257a1903372e1baf334c0969fbdbd) - [#10013](https://github.com/npm/npm/issues/10013) - `read-package-tree@5.1.4`: - Fixes an issue where `npm install` would fail if your `node_modules` was - symlinked. - ([@iarna](https://github.com/iarna)) -* [`584676f`](https://github.com/npm/npm/commit/584676f85eaebcb9d6c4d70d2ad320be8a8d6a74) - [npm/init-package-json#62](https://github.com/npm/init-package-json/pull/62) - `init-package-json@1.9.4`: - Stop using `package` for a variable, which defeats some bundlers and linters. - ([@adius](https://github.com/adius)) -* [`935a7e3`](https://github.com/npm/npm/commit/935a7e359535e13924934811b77924cbad82619a) - `readable-stream@2.1.3`: - Node 6 build and buffer-related updates. - ([@calvinmetcalf](https://github.com/calvinmetcalf)) - -#### OTHER DEPENDENCY UPDATES - -* [`4c4609e`](https://github.com/npm/npm/commit/4c4609ea49e77303f9d72af6757620e6b3a9a6a9) - `inflight@1.0.5` - ([@zkat](https://github.com/zkat)) -* [`7a3030d`](https://github.com/npm/npm/commit/7a3030d3d44ea2136425f72950ba22e6efd441d9) - `hosted-git-info@2.1.5` - ([@zkat](https://github.com/zkat)) -* [`5ed4b58`](https://github.com/npm/npm/commit/5ed4b58409eeb134bca1c96252682fd7600d9906) - `which@1.2.9` - ([@isaacs](https://github.com/isaacs)) - -### v3.9.2 (2016-05-17) - -This is a quick patch release. The previous release, 3.9.1, introduced a -bug where npm would crash given a combination of specific package tree on -disk and a shrinkwrap. - -* [`cde367f`](https://github.com/npm/npm/commit/cde367fbb6eebc5db68a44b12a5c7bea158d70db) - [#12724](https://github.com/npm/npm/issues/12724) - Fix crasher when inflating shrinkwraps with packages on disk that were - installed by older npm versions. - ([@iarna](https://github.com/iarna)) - -### v3.9.1 (2016-05-12) - -HI all! We have bug fixes to a couple of the hairy corners of `npm`, in the -form of shrinkwraps and bundled dependencies. Plus some documentation improvements -and our lodash deps bot a bump. - -This is our first week really focused on getting the -[big bugs](https://github.com/npm/npm/issues?q=is%3Aopen+is%3Aissue+label:big-bug) -list down. Our work from this week will be landing next week, and I can't -wait to tell you about that! (It's about symlinks!) - -#### SHRINKWRAP FIX - -* [`b894413`](https://github.com/npm/npm/commit/b8944139a935680c4a267468bb2d3c3082b5609f) - [#12372](https://github.com/npm/npm/issues/12372) - Changing a nested dependency in an `npm-shrinkwrap.json` and then running `npm install` - would not get up the updated package. This corrects that. - ([@misterbyrne](https://github.com/misterbyrne)) - -#### BUNDLED DEPENDENCIES FIX - -* [`d0c6d19`](https://github.com/npm/npm/commit/d0c6d194471be8ce3e7b41b744b24f63dd1a3f6f) - [#12476](https://github.com/npm/npm/pull/12476) - Protects against a crasher when a bundled dep is missing a package.json. - ([@dflupu](https://github.com/dflupu)) - -#### DOCS IMPROVEMENTS - -* [`6699aa5`](https://github.com/npm/npm/commit/6699aa53c0a729cfc921ac1d8107c320e5a5ac95) - [#12585](https://github.com/npm/npm/pull/12585) - Document that engineStrict is quite gone. Not "deprecated" so much as "extirpated". - ([@othiym23](https://github.com/othiym23)) -* [`7a41a84`](https://github.com/npm/npm/commit/7a41a84b655be3204d2e80848278a510e42c80e7) - [#12636](https://github.com/npm/npm/pull/12636) - Improve `npm-scripts` documentation regarding when `node-gyp` is used. - ([@reconbot](https://github.com/reconbot)) -* [`4c4b4ba`](https://github.com/npm/npm/commit/4c4b4badf09b9b50cdca85314429a0111bb35cb1) - [#12586](https://github.com/npm/npm/pull/12586) - Correct `package.json` documentation as to when `node-gyp rebuild` called. - This now matches https://docs.npmjs.com/misc/scripts#default-values - ([@reconbot](https://github.com/reconbot)) - -#### DEPENDENCY UPDATES - -* [`cfa797f`](https://github.com/npm/npm/commit/cfa797fedd34696d45b61e3ae0398407afece880) - `lodash._baseuniq@4.6.0` - ([@jdalton](https://github.com/jdalton)) -* [`ab6f180`](https://github.com/npm/npm/commit/ab6f1801971b513f9294b4b8902034ab402af02d) - `lodash.keys@4.0.7` - ([@jdalton](https://github.com/jdalton)) -* [`4b8d8b6`](https://github.com/npm/npm/commit/4b8d8b63e760a8aa03e8bffa974495dfafbfcb06) - `lodash.union@4.4.0` - ([@jdalton](https://github.com/jdalton)) -* [`46099d3`](https://github.com/npm/npm/commit/46099d34542760098e5d13c7468a405a724ca407) - `lodash.uniq@4.3.0` - ([@jdalton](https://github.com/jdalton)) -* [`fff89c6`](https://github.com/npm/npm/commit/fff89c6826c86e9e789adcc9c398385539306042) - `lodash.without@4.2.0` - ([@jdalton](https://github.com/jdalton)) - -### v3.9.0 (2016-05-05) - -Wow! This is a big release week! We've completed the fixes that let the -test suite pass on Windows, plus more general bug fixes we found while -fixing things on Windows. Plus a warning to help folks work around a common -footgun. PLUS an improvement to how npm works with long cache timeouts. - -#### INFINITE CACHE A LITTLE BETTER - -* [`111ae3e`](https://github.com/npm/npm/commit/111ae3ec366ece7ebcf5988f5bc2a7cd70737dfe) - [#8581](https://github.com/npm/npm/issues/8581) - When a package is fetched from the cache which cannot satisfy the version - requirements, an attempt to fetch it from the network is made. This is - helpful for folks using high values for `--cache-min` who are willing to - accept possibly not-the-most-recent modules in return for less network - traffic. - ([@Zirak](https://github.com/Zirak)) - -#### WARNING: FOOTGUN - -* [`60b9a05`](https://github.com/npm/npm/commit/60b9a051aa46b8892fe63b3681839a6fd6642bfd) - [#12475](https://github.com/npm/npm/pull/12475) - Options can only start with ASCII dashes. Ordinarily this isn't a problem - but many web documentation tools "helpfully" convert `--` into an emdash - (–), or `-` into an endash (–). If you copy and paste from this documentation - your commands won't work the way you expect. This adds a warning that tries - to be a little more descriptive about why your command is failing. - ([@iarna](https://github.com/iarna)) - -#### WINDOWS CI - -We have [Windows CI](https://ci.appveyor.com/project/npm/npm) setup now! We still have to -tweak it a little bit around paths to the git binaries, but it's otherwise ready! - -* [`bb5d6cb`](https://github.com/npm/npm/commit/bb5d6cbf46b2609243d3b384caadd196e665a797) - [#11444](https://github.com/npm/npm/pull/11444) - Add AppVeyor to CI matrix. - ([@othiym23](https://github.com/othiym23)) - -#### COVERAGE DATA - -Not only do our tests produce coverage reports after they run now, we also -automatically [update Coveralls](https://coveralls.io/github/npm/npm) with -results from [Travis CI](travis-ci.org/npm/npm) runs. - -* [`044cbab`](https://github.com/npm/npm/commit/044cbab0d49adeeb0d9310c64fee6c9759cc7428) - [#11444](https://github.com/npm/npm/pull/11444) - Enable coverage reporting for every test run. - ([@othiym23](https://github.com/othiym23)) - -#### EVERYONE BUGS - -* [`37c6a51`](https://github.com/npm/npm/commit/37c6a51c71b0feec8f639b3199a8a9172e58deec) - [#12150](https://github.com/npm/npm/pull/12150) - Ensure that 'npm cache ls' outputs real filenames. Previously it would - sometimes double up the package name in the path it printed. - ([@isaacs](https://github.com/isaacs)) -* [`d3ce0b2`](https://github.com/npm/npm/commit/d3ce0b253eb519375071aee29db4ee129dbcdf5c) - [#11444](https://github.com/npm/npm/pull/11444) - Fix unbuilding bins for scoped modules. - ([@iarna](https://github.com/iarna)) -* [`e928a30`](https://github.com/npm/npm/commit/e928a30947477a09245f54e9381f46b97bee32d5) - [#11444](https://github.com/npm/npm/pull/11444) - Make handling of local modules (eg `npm install /path/to/my/module`) more - consistent when saved to a `package.json`. There were bugs previously where - it wouldn't consistently resolve relative paths in the same way. - ([@iarna](https://github.com/iarna)) -* [`b820ed4`](https://github.com/npm/npm/commit/b820ed4fc04e21577fa66f7c9482b5ab002e7985) - [#11444](https://github.com/npm/npm/pull/11444) - Under certain circumstances the paths produced for linking, either - relative or absolute, would end up basing off the wrong virtual cwd. - This resulted in failures for `npm link` in this situations. - ([@iarna](https://github.com/iarna)) - -#### WINDOWS BUGS - -* [`7380425`](https://github.com/npm/npm/commit/7380425d810fb8bfc69405a9cbbdec19978a7bee) - [#11444](https://github.com/npm/npm/pull/11444) - Scoped module names were not being correctly inferred from the path on Windows. - ([@zkat](https://github.com/zkat)) -* [`91fc24f`](https://github.com/npm/npm/commit/91fc24f2763c2e0591093099ffc866c735f27fde) - [#11444](https://github.com/npm/npm/pull/11444) - Explore with a command to run didn't work properly in Windows– it would pop open a new - cmd window and leave it there. - ([@iarna](https://github.com/iarna)) - -#### WINDOWS REFACTORING - -* [`f07e643`](https://github.com/npm/npm/commit/f07e6430d4ca02f811138f6140a8bad927607a1f) - [#11444](https://github.com/npm/npm/pull/11444) - Move exec path escaping out to its own function. This turns out to be - tricky to get right because how you escape commands to run on Windows via - cmd is different then how you escape them at other times. Specifically, - you HAVE to quote each directory segment that has a quote in it, that is: - `C:\"Program Files"\MyApp\MyApp.exe` By contrast, if that were an argument - to a command being run, you CAN'T DO quote it that way, instead you have - to wrap the entire path in quotes, like so: `"C:\Program - Files\MyApp\MyApp.exe"`. - ([@iarna](https://github.com/iarna)) -* [`2e01d29`](https://github.com/npm/npm/commit/2e01d299f8244134b1aa040cab1b59c72c9df4da) - [#11444](https://github.com/npm/npm/pull/11444) - Create a single function for detecting if we're running on Windows (and - using a Windows shell like cmd) and use this instead of doing it one-off - all over the place. - ([@iarna](https://github.com/iarna)) - -#### FIX WINDOWS TESTS - -As I said before, our tests are passing on Windows! 🎉 - -* [`ef0dd74`](https://github.com/npm/npm/commit/ef0dd74583be25c72343ed07d1127e4d0cc02df9) - [#11444](https://github.com/npm/npm/pull/11444) - The fruits of many weeks of labor, fix our tests to pass on Windows. - ([@zkat](https://github.com/zkat)) - ([@iarna](https://github.com/iarna)) - -#### DEPENDENCY UPDATES - -* [`8fccda8`](https://github.com/npm/npm/commit/8fccda8587209659c469ab55c608b0e2d7533530) - [#11444](https://github.com/npm/npm/pull/11444) - `normalize-git-url@3.0.2`: - Fix file URLs on Windows. - ([@zkat](https://github.com/zkat)) -* [`f53a154`](https://github.com/npm/npm/commit/f53a154df8e0696623e6a71f33e0a7c11a7555aa) - `readable-stream@2.1.2`: - When readable-stream is disabled, reuse result of `require('stream')` - instead of calling it every time. - ([@calvinmetcalf](https://github.com/calvinmetcalf)) -* [`02841cf`](https://github.com/npm/npm/commit/02841cfb81d6ba86f691ab43d9bbdac29aec27e7) - [#11444](https://github.com/npm/npm/pull/11444) - `realize-package-specifier@3.0.2`: - Resolve local package paths relative to package root, not cwd. - ([@zkat](https://github.com/zkat)) - ([@iarna](https://github.com/iarna)) -* [`247c1c5`](https://github.com/npm/npm/commit/247c1c5ae08c882c9232ca605731039168bae6ed) - [#11444](https://github.com/npm/npm/pull/11444) - `npm-package-arg@4.1.1`: - Fix Windows file URIs with leading slashes. - ([@zkat](https://github.com/zkat)) -* [`365c72b`](https://github.com/npm/npm/commit/365c72bc3ecd9e45f9649725dd635d5625219d8c) - `which@1.2.8` - ([@isaacs](https://github.com/isaacs)) -* [`e568caa`](https://github.com/npm/npm/commit/e568caabb8390a924ce1cfa51fc914ee6c1637a2) - `graceful-fs@4.1.4` - ([@isaacs](https://github.com/isaacs)) -* [`304b974`](https://github.com/npm/npm/commit/304b97434959a58f84383bcccc0357c51a4eb39a) - [#11444](https://github.com/npm/npm/pull/11444) - `standard@6.0.8` - ([@feross](https://github.com/feross)) - -### v3.8.9 (2016-04-28) - -Our biggest news this week is that we got the -[Windows test suite passing](https://github.com/npm/npm/pull/11444)! -It'll take a little longer to get it passing in our -[Windows CI](https://ci.appveyor.com/project/npm/npm/) but that's coming -soon too. - -That means we'll be shifting gears away from tests to fixing -[Big Bugs™](https://github.com/npm/npm/issues?q=is%3Aopen+is%3Aissue+label%3Abig-bug) again. -Join us at our [team meeting](https://github.com/npm/npm/issues/12517) next -Tuesday to learn more about that. - -#### BUG FIXES AND REFACTORING - -* [`60da618`](https://github.com/npm/npm/commit/60da61862885fa904afba7d121860b4282a5b0df) - [#12347](https://github.com/npm/npm/issues/12347) - Fix a bug that could result in shrinkwraps missing the `resolved` field, which is - necessary in producing a fully reproducible build. - ([@sminnee](https://github.com/sminnee)) -* [`8597ba4`](https://github.com/npm/npm/commit/8597ba432e91245a1000953b612eb01308178bad) - [#12009](https://github.com/npm/npm/issues/12009) - Fix a bug in `npm view versions` that resulted in bad output if you - didn't also pass in `--json`. - ([@watilde](https://github.com/watilde)) -* [`20125f1`](https://github.com/npm/npm/commit/20125f19b96fd05af63f8c0bd243ffb25780279a) - [`a53feac`](https://github.com/npm/npm/commit/a53feac2647f7dc4245f1700dfbdd1aba8745672) - [`6cfbae4`](https://github.com/npm/npm/commit/6cfbae403abc3cf690565b09569f71cdd41a8372) - [#12485](https://github.com/npm/npm/pull/12485) - Refactor how the help summaries for commands are produced, such that we only have - one list of command aliases. - ([@watilde](https://github.com/watilde)) -* [`2ae210c`](https://github.com/npm/npm/commit/2ae210c76ab6fd15fcf15dc1808b01ca0b94fc9e) - `read-package-json@2.0.4`: - Fix a crash we discovered while fixing up the Windows test suite where if - you had a file in your `node_modules` it would cause a crash on Windows - (but not MacOS/Linux). - - This makes the error code you get on Windows match that from MacOS/Linux - if you try to read a `package.json` from a path that includes a file, not - a folder. - ([@zkat](https://github.com/zkat)) - -### v3.8.8 (2016-04-21) - -Hi all! Long time no see! We've been heads-down working through getting -[our test suite passing on Windows](https://github.com/npm/npm/pull/11444). -Did you know that we have -[Windows CI](https://ci.appveyor.com/project/npm/npm) now running over at -Appveyor? In the meantime, we've got a bunch of dependency updates, some -nice documentation improvements and error messages when your `package.json` -contains invalid JSON. (Yeah, I thought we did that last one before too!) - -#### BAD JSON IS BAD - -* [`769e620`](https://github.com/npm/npm/commit/769e6200722d8060b6769e47354032c51cfa85a1) - [#12406](https://github.com/npm/npm/pull/12406) - Failing to parse the top level `package.json` should be an error. - ([@watilde](https://github.com/watilde)) - -#### DOCUMENTATION - -* [`7d64301`](https://github.com/npm/npm/commit/7d643018af5051c920cc73f17bfe32b7ff86e108) - [#12415](https://github.com/npm/npm/pull/12415) - Clarify that when configuring client-side certificates for authenticating - to non-npm registries that `cert` and `key` are not filesystem paths and should - actually include the certificate and key data. - ([@rvedotrc](https://github.com/rvedotrc)) -* [`f8539b8`](https://github.com/npm/npm/commit/f8539b8c986e81771ccc8ced7e716718423d3187) - [#12324](https://github.com/npm/npm/pull/12324) - Describe how `npm run` sets `NODE` and `PATH` in more detail. - Note that `npm run` changes `PATH` to include the current node - interpreter’s directory. - ([@addaleax](https://github.com/addaleax)) -* [`2b57606`](https://github.com/npm/npm/commit/2b57606852a2c2a03e4c4b7dcda85b807619c2cf) - [#11461](https://github.com/npm/npm/pull/11461) - Clarify the documentation for the package.json homepage field. - ([@stevemao](https://github.com/stevemao)) - -#### TESTS - -* [`b5a0fbb`](https://github.com/npm/npm/commit/b5a0fbb9e1a2c4fb003dd748264571aa6e3c9e70) - [#12329](https://github.com/npm/npm/pull/12329) - Fix progress config testing to ignore local user configs. - Previously, _any_ local setting would cause the tests to fail as - they were trying to test what the default values for the progress - bar would be in different environments and any explicit setting - overrides those defaults. - ([@iarna](https://github.com/iarna)) -* [`3d195bc`](https://github.com/npm/npm/commit/3d195bc0a72b40df02a5c56e4f3be44152e8222b) - The lifecycle-signal test could crash on v0.8 due to its use of `Number.parseInt`, which - isn't available in that version of node. Fortunately `global.parseInt` _is_, so - we just use that instead. - ([@iarna](https://github.com/iarna)) - -#### DEPENDENCY UPDATES - -* [`05a28e3`](https://github.com/npm/npm/commit/05a28e38586082ac4bbf26ee6f863cc8d07054d6) - `npm-package-arg@4.1.1`: - Under some circumstances `file://` URLs on Windows were not handled correctly. - - Also, stop converting local module/tarballs into full paths in this - module. We do already do that in `realize-package-specifier`, which is - more appropriate as it knows what package we're installing relative to. - ([@zkat](https://github.com/zkat)) -* [`ada2e93`](https://github.com/npm/npm/commit/ada2e93e8b276000150a9aa93fff69ec366e03d6) - `realize-package-specifier@3.0.3`: - Require the new `npm-package-arg`, plus fix a case where specifiers that were - maybe a tag, maybe a local filename were resolved differently than those that were - definitely a local filename. - ([@zkat](https://github.com/zkat)) ([@iarna](https://github.com/iarna)) -* [`adc515b`](https://github.com/npm/npm/commit/adc515b22775871386cd62390079fb4bf8e1714a) - `fs-vacuum@1.2.9`: - A fix for AIX where a non-empty directory can cause `fs.rmDir` to fail with `EEXIST` instead of `ENOTEMPTY` - and three new tests - ([@richardlau](https://github.com/richardlau)) - - Code cleanup, CI & dependency updates. - ([@othiym23](https://github.com/othiym23)) -* [`ef53a46`](https://github.com/npm/npm/commit/ef53a46906ce872a4541b605dd42a563cc26e614) - `tap@5.7.1` - ([@isaacs](https://github.com/isaacs)) -* [`df1f2e4`](https://github.com/npm/npm/commit/df1f2e4838b4d7ea2ea2321a95ae868c0ec0a520) - `request@2.72.0`: - Fix crashes when response headers indicate gzipped content but the body is - empty. - Add support for the deflate content encoding. - ([@simov](https://github.com/simov)) -* [`776c599`](https://github.com/npm/npm/commit/776c599b204632aca9d29fd92ea5c4f099fdea9f) - `readable-stream@2.1.0`: - Adds READABLE_STREAM env var that, if set to `disable`, will make - `readable-stream` use the local native node streams instead. - ([@calvinmetcalf](https://github.com/calvinmetcalf)) -* [`10d6d55`](https://github.com/npm/npm/commit/10d6d5547354fcf50e930c7932ba4d63c0b6009c) - `normalize-git-url@3.0.2`: - Add support `git+file://` type URLs. - ([@zkat](https://github.com/zkat)) -* [`75017ae`](https://github.com/npm/npm/commit/75017aeecec69a1efd546df908aa5befc4467f36) - `lodash.union@4.3.0` - ([@jdalton](https://github.com/jdalton)) - -### v3.8.7 (2016-04-07) - -#### IMPROVED DIAGNOSTICS - -* [`38cf79f`](https://github.com/npm/npm/commit/38cf79ffa564ef5cb6677b476e06d0e45351592a) - [#12083](https://github.com/npm/npm/pull/12083) - If you `ignore-scripts` to disable lifecycles, this makes npm report when it skips running - a script. - ([@bfred-it](https://github.com/bfred-it)) - -#### IMPROVE AUTO-INCLUDES - -* [`c615182`](https://github.com/npm/npm/commit/c615182c8b47e418338eb1317b99bb66987cda54) - [#11995](https://github.com/npm/npm/pull/11995) - There were bugs where modules whose names matched the special files that npm always - includes would be included, for example, the `history` package was always included. - - With `npm@3` such extraneously bundled modules would not be ordinarily - used, as things in `node_modules` in packages are ignored entirely if the - package isn't marked as bundling modules. - - Because of this `npm@3` behavior, the `files-and-ignores` test failed to catch this as - it was testing _install output_ not what got packed. That has also been fixed. - ([@glenjamin](https://github.com/glenjamin)) - -#### DOCUMENTATION UPDATES - -* [`823d9df`](https://github.com/npm/npm/commit/823d9dfa91d7086a26620f007aee4e3cd77b6153) - [#12107](https://github.com/npm/npm/pull/12107) - In the command summary for `adduser` mention that `login` is an alias. - ([@gnerkus](https://github.com/gnerkus)) -* [`7aaf47e`](https://github.com/npm/npm/commit/7aaf47e124c45dde72c961638b770ee535fb2776) - [#12244](https://github.com/npm/npm/pull/12244) - Update the README to suggest npm@3 for Windows users. Also add a reference to - [Microsoft's npm upgrade tool](https://github.com/felixrieseberg/npm-windows-upgrade). - ([@felixrieseberg](https://github.com/felixrieseberg)) - -#### DEPENDENCY UPDATES - -* [`486bbc0`](https://github.com/npm/npm/commit/486bbc0e1b101f847e890e6f1925dc8cb253cf3e) - `request@2.70.0` - ([@simov](https://github.com/simov)) -* [`b1aff34`](https://github.com/npm/npm/commit/b1aff346fc41f13e3306b437e1831942aacf2f54) - `lodash.keys@4.0.6` - ([@jdalton](https://github.com/jdalton)) - -### v3.8.6 (2016-03-31) - -Heeeeeey y'all. - -Kat here! Rebecca's been schmoozing with folks at [Microsoft -Build](https://build.microsoft.com/), so I'm doing the `npm@3` release this -week. - -Speaking of Build, it looks like Microsoft is doing some bash thing. This might -be really good news for our Windows users once it rolls around. We're keeping an -eye out and feeling hopeful. 🙆 - -As far as the release goes: We're really happy to be getting more and more -community contributions! Keep it up! We really appreciate folks trying to help -us, and we'll do our best to help point you in the right direction. Even things -like documentation are a huge help. And remember -- you get socks for it, too! - -#### FIXES - -* [`f8fb4d8`](https://github.com/npm/npm/commit/f8fb4d83923810eb78d075bd200a9376c64c3e3a) - [#12079](https://github.com/npm/npm/pull/12079) - Back in `npm@3.2.2` we included [a patch that made it so `npm install pkg` was - basically `npm install pkg@latest` instead of - `pkg@*`](https://github.com/npm/npm/pull/9170) - This is probably what most users expected, but it also ended up [breaking `npm - deprecate`](https://github.com/npm/npm/pull/9170) when no version was provided - for a package. In that case, we were using `*` to mean "deprecate all - versions" and relying on the `pkg` -> `pkg@*` conversion. - This patch fixes `npm deprecate pkg` to work as it used to by special casing - that particular command's behavior. - ([@polm](https://github.com/polm)) -* [`458f773`](https://github.com/npm/npm/commit/458f7734f3376aba0b6ff16d34a25892f7717e40) - [#12146](https://github.com/npm/npm/pull/12146) - Adds `make doc-clean` to `prepublish` script, to clear out previously built - docs before publishing a new npm version - ([@watilde](https://github.com/watilde)) -* [`f0d1521`](https://github.com/npm/npm/commit/f0d1521038e956b2197673f36c464684293ce99d) - [#12146](https://github.com/npm/npm/pull/12146) - Adds `doc-clean` phony target to `make publish`. - ([@watilde](https://github.com/watilde)) - -#### DOC UPDATES - -* [`ea92ffc`](https://github.com/npm/npm/commit/ea92ffc9dd2a063896353fc52c104e85ec061360) - [#12147](https://github.com/npm/npm/pull/12147) - Document that the current behavior of `engines` is just to warn if the node - platform is incompatible. - ([@reconbot](https://github.com/reconbot)) -* [`cd1ba44`](https://github.com/npm/npm/commit/cd1ba4423b3ca889c741141b95b0d9472b9f71ea) - [#12143](https://github.com/npm/npm/pull/12143) - Remove `npm faq` command, since the [FAQ was - removed](https://github.com/npm/npm/pull/10547). - ([@watilde](https://github.com/watilde)) -* [`50a12cb`](https://github.com/npm/npm/commit/50a12cb1f5f158af78d6962ad20ff0a98bc18f18) - [#12143](https://github.com/npm/npm/pull/12143) - Remove references to the FAQ from the docs, since [it was - removed](https://github.com/npm/npm/pull/10547). - ([@watilde](https://github.com/watilde)) -* [`60051c2`](https://github.com/npm/npm/commit/60051c25e2ab80c667137dfcd04b242eea25980e) - [#12093](https://github.com/npm/npm/pull/12093) - Update `bugs` url in `package.json` to use the `https` URL for Github. - ([@watilde](https://github.com/watilde)) -* [`af30c37`](https://github.com/npm/npm/commit/af30c374ef22ed1a1c71b14fced7c4b8350e4e82) - [#12075](https://github.com/npm/npm/pull/12075) - Add the `--ignore-scripts` flag to the `npm install` docs. - ([@paulirish](https://github.com/paulirish)) -* [`632b214`](https://github.com/npm/npm/commit/632b214b2f2450e844410792e5947e46844612ff) - [#12063](https://github.com/npm/npm/pull/12063) - Various minor fixes to the html docs homepage. - ([@watilde](https://github.com/watilde)) - -#### DEP BUMPS - -* [`3da0171`](https://github.com/npm/npm/commit/3da01716a0e41d6b5adee2b4fc70fcaf08c0eb24) - `lodash.without@4.1.2` - ([@jdalton](https://github.com/jdalton)) -* [`69ccf6d`](https://github.com/npm/npm/commit/69ccf6dd4caf95cd0628054307487cae1885acd0) - `lodash.uniq@4.2.1` - ([@jdalton](https://github.com/jdalton)) -* [`b50c41a`](https://github.com/npm/npm/commit/b50c41a9930dc5353a23c5ae2ff87bb99e11d482) - `lodash.union@4.2.1` - ([@jdalton](https://github.com/jdalton)) -* [`59c1ad7`](https://github.com/npm/npm/commit/59c1ad7b6f243d07618ed5703bd11d787732fc57) - `lodash.clonedeep@4.3.2` - ([@jdalton](https://github.com/jdalton)) -* [`2b4f797`](https://github.com/npm/npm/commit/2b4f797dba8e7a1376c8335b7223e82d02cd8243) - `lodash._baseuniq@4.5.1` - ([@jdalton](https://github.com/jdalton)) - -### v3.8.5 (2016-03-24) - -Like my esteemed colleague [@zkat](https://github.com/zkat) said in this -week's [LTS release notes](https://github.com/npm/npm/releases/tag/v2.15.2), -this week is another small release but we are continuing to work on our -[Windows efforts](https://github.com/npm/npm/pull/11444). - -You may also be interested in reading the [LTS process and -policy](https://github.com/npm/npm/wiki/LTS) that -[@othiym23](https://github.com/othiym23) put together recently. If you have any -feedback, we would love to hear. - -#### DOCTOR IT HURTS WHEN LINK TO MY LINK - -Well then, don't do that. - -* [`0d4a0b1`](https://github.com/npm/npm/commit/0d4a0b1) - [#11442](https://github.com/npm/npm/pull/11442) - Fail if the user asks us to make a link from a module back on to itself. - ([@antialias](https://github.com/antialias)) - -#### ERR MODULE LIST TOO LONG - -* [`b271ed2`](https://github.com/npm/npm/commit/b271ed2) - [#11983](https://github.com/npm/npm/issues/11983) - Exit early if no arguments were provided to search instead of trying to display all the modules, - running out of memory, and then crashing. - ([@SimenB](https://github.com/SimenB)) - -#### ELIMINATE UNUSED MODULE - -* [`b8c7cd7`](https://github.com/npm/npm/commit/b8c7cd7) - [#12000](https://github.com/npm/npm/pull/12000) - Stop depending on [`async-some`](https://npmjs.com/package/async-some) as it's no - longer used in npm. - ([@watilde](https://github.com/watilde)) - -#### DOCUMENTATION IMPROVEMENTS - -* [`fdd6b28`](https://github.com/npm/npm/commit/fdd6b28) - [#11884](https://github.com/npm/npm/pull/11884) - Include `node_modules` in the list of files and directories that npm won't - include in packages ordinarily. (Modules listed in `bundledDependencies` and things - that those modules rely on, ARE included of course.) - ([@Jameskmonger](https://github.com/Jameskmonger)) -* [`aac15eb`](https://github.com/npm/npm/commit/aac15eb) - [#12006](https://github.com/npm/npm/pull/12006) - Fix typo in npm-orgs documentation, where teams docs went to access docs and vice versa. - ([@yaelz](https://github.com/yaelz)) - -#### FEWER NETWORK TESTS - -* [`3e41360`](https://github.com/npm/npm/commit/3e41360) - [#11987](https://github.com/npm/npm/pull/11987) - Fix test that was inappropriately hitting the network - ([@yodeyer](https://github.com/yodeyer)) - -### v3.8.4 (2016-03-24) - -Was erroneously released with just a changelog typo correction and was -otherwise the same as 3.8.3. - -### v3.8.3 (2016-03-17): - -#### SECURITY ADVISORY: BEARER TOKEN DISCLOSURE - -This release includes [the fix for a -vulnerability](https://github.com/npm/npm/commit/f67ecad59e99a03e5aad8e93cd1a086ae087cb29) -that could cause the unintentional leakage of bearer tokens. - -Here are details on this vulnerability and how it affects you. - -##### DETAILS - -Since 2014, npm’s registry has used HTTP bearer tokens to authenticate requests -from the npm’s command-line interface. A design flaw meant that the CLI was -sending these bearer tokens with _every_ request made by logged-in users, -regardless of the destination of their request. (The bearers only should have -been included for requests made against a registry or registries used for the -current install.) - -An attacker could exploit this flaw by setting up an HTTP server that could -collect authentication information, then use this authentication information to -impersonate the users whose tokens they collected. This impersonation would -allow them to do anything the compromised users could do, including publishing -new versions of packages. - -With the fixes we’ve released, the CLI will only send bearer tokens with -requests made against a registry. - -##### THINK YOU'RE AT RISK? REGENERATE YOUR TOKENS - -If you believe that your bearer token may have been leaked, [invalidate your -current npm bearer tokens](https://www.npmjs.com/settings/tokens) and rerun -`npm login` to generate new tokens. Keep in mind that this may cause continuous -integration builds in services like Travis to break, in which case you’ll need -to update the tokens in your CI server’s configuration. - -##### WILL THIS BREAK MY CURRENT SETUP? - -Maybe. - -npm’s CLI team believes that the fix won’t break any existing registry setups. -Due to the large number of registry software suites out in the wild, though, -it’s possible our change will be breaking in some cases. - -If so, please [file an issue](https://github.com/npm/npm/issues/new) describing -the software you’re using and how it broke. Our team will work with you to -mitigate the breakage. - -##### CREDIT & THANKS - -Thanks to Mitar, Will White & the team at Mapbox, Max Motovilov, and James -Taylor for reporting this vulnerability to npm. - -#### PERFORMANCE IMPROVEMENTS - -The updated [`are-we-there-yet`](https://npmjs.com/package/are-we-there-yet) -changes how it tracks how complete things are to be much more efficient. -The summary is that `are-we-there-yet` was refactored to remove an expensive -tree walk. - -The result for you should be faster installs when working with very large trees. - -Previously `are-we-there-yet` computed this when you asked by passing the request down -its tree of progress indicators, totaling up the results. In doing so, it had to walk the -entire tree of progress indicators. - -By contrast, `are-we-there-yet` now updates a running total when a change -is made, bubbling that up the tree from whatever branch made progress. This -bubbling was already going on so there was nearly no cost associated with taking advantage of it. - -* [`32f2bd0`](https://github.com/npm/npm/commit/32f2bd0e26116db253e619d67c4feae1de3ad2c2) - `npmlog@2.0.3`: - Bring in substantial performance improvements from `are-we-there-yet`. - ([@iarna](https://github.com/iarna)) - -#### DUCT TAPE FOR BUGS - -* [`473d324`](https://github.com/npm/npm/commit/473d3244a8ddfd6b260d0aa0d395b119d595bf97) - [#11947](https://github.com/npm/npm/pull/11947) - Guard against bugs that could cause the installer to crash with errors like: - - ``` - TypeError: Cannot read property 'target' of null - ``` - - This doesn't fix the bugs, but it does at least make the installer less - likely to explode. - ([@thefourtheye](https://github.com/thefourtheye)) - -#### DOC FIXES - -* [`ffa428a`](https://github.com/npm/npm/commit/ffa428a4eee482aa620819bc8df994a76fad7b0c) - [#11880](https://github.com/npm/npm/pull/11880) - Fix typo in `npm install` documentation. - ([@watilde](https://github.com/watilde)) - -#### DEPENDENCY UPDATES - -* [`7537fe1`](https://github.com/npm/npm/commit/7537fe1748c27e6f1144b279b256cd3376d5c41c) - `sorted-object@2.0.0`: - Create objects with `{}` instead of `Object.create(null)` to make the results - strictly equal to what, say, parsed JSON would provide. - ([@domenic](https://github.com/domenic)) -* [`8defb0f`](https://github.com/npm/npm/commit/8defb0f7b3ebdbe15c9ef5036052c10eda7e3161) - `readable-stream@2.0.6`: - Fix sync write issue on 0.10. - ([@calvinmetcalf](https://github.com/calvinmetcalf)) - -#### TEST FIXES FOR THE SELF TESTS - -* [`c3edeab`](https://github.com/npm/npm/commit/c3edeabece4400308264e7cf4bc4448bd2729f55) - [#11912](https://github.com/npm/npm/pull/11912) - Change the self installation test to do its work in `/tmp`. - Previously this was installing into a temp subdir in `test/tap`, which - wouldn't catch the case where a module was installed in the local - `node_modules` folder but not in dependencies, as node would look up - the tree and use the copy from the version of npm being tested. - ([@iarna](https://github.com/iarna)) - -### v3.8.2 (2016-03-10): - -#### HAVING TROUBLE INSTALLING C MODULES ON ANDROID? - -This release includes an updated `node-gyp` with fixes for Android. - -* [`634ecba`](https://github.com/npm/npm/commit/634ecba320fb5a3287e8b7debfd8b931827b9e19) - `node-gyp@3.3.1`: - Fix bug in builds for Android. - ([@bnoordhuis](https://github.com/bnoordhuis)) - -#### NPM LOGOUT CLEANS UP BETTER - -* [`460ed21`](https://github.com/npm/npm/commit/460ed217876ac78d21477c288f1c06563fb770b4) - [#10529](https://github.com/npm/npm/issues/10529) - If you ran `npm logout` with a scope, while we did invalidate your auth - token, we weren't removing the auth token from your config file. This patch causes - the auth token to be removed. - ([@wyze](https://github.com/wyze)) - -#### HELP MORE HELPFUL - -* [`d1d0233`](https://github.com/npm/npm/commit/d1d02335d297da2734b538de44d8967bdcd354cf) - [#11003](https://github.com/npm/npm/issues/11003) - Update help to only show command names and their shortcuts. Previously - some typo corrections were shown, along with various alternate - spellings. - ([@watilde](https://github.com/watilde)) -* [`47928cd`](https://github.com/npm/npm/commit/47928cd6264e1d6d0ef67435b71c66d01bea664a) - [#11003](https://github.com/npm/npm/issues/11003) - Remove "verison" typo from the help listing. - ([@doug-wade](https://github.com/doug-wade)) - -#### MORE COMPLETE CONFIG LISTINGS - -* [`cf5fd40`](https://github.com/npm/npm/commit/cf5fd401494d96325d74a8bb8c326aa0045a714c) - [#11472](https://github.com/npm/npm/issues/11472) - Make `npm config list` include the per-project `.npmrc` in the output. - ([@mjomble](https://github.com/mjomble)) - -#### DEPTH LIMITED PARSEABLE DEP LISTINGS - -* [`611070f`](https://github.com/npm/npm/commit/611070f0f7a1e185c75cadae46179194084b398f) - [#11495](https://github.com/npm/npm/issues/11495) - Made `npm ls --parseable` honor the `--depth=#` option. - ([@zacdoe](https://github.com/zacdoe)) - -#### PROGRESS FOR THE (NON) UNICODE REVOLUTION - -* [`ff90382`](https://github.com/npm/npm/commit/ff9038227a1976b5e936442716d9877f43c6c9b4) - [#11781](https://github.com/npm/npm/issues/11781) - Make the progress bars honor the unicode option. - ([@watilde](https://github.com/watilde)) - -#### `npm view --json`, NOW ACTUALLY JSON - -* [`24ab70a`](https://github.com/npm/npm/commit/24ab70a4ccfeaa005b80252da313bb589510668e) - [#11808](https://github.com/npm/npm/issues/11808) - Make `npm view` produce valid JSON when requested with `--json`. - Previously `npm view` produced some sort of weird hybrid output, with multiple - JSON docs. - ([@doug-wade](https://github.com/doug-wade)) - -#### DOCUMENTATION CHANGES - -* [`6fb0499`](https://github.com/npm/npm/commit/6fb0499bea868fdc637656d210c94f051481ecd4) - [#11726](https://github.com/npm/npm/issues/11726) - Previously we patched the `npm update` docs to suggest using `--depth - Infinity` instead of `--depth 9999`, but that was a mistake. We forgot - that `npm outdated` (on which `npm update` is built) has a special - case where it treats `Infinity` as `0`. This reverts that patch. - ([@GriffinSchneider](https://github.com/GriffinSchneider)) -* [`f0bf684`](https://github.com/npm/npm/commit/f0bf684a87ea5eea03432a17f38678fed4960d43) - [#11748](https://github.com/npm/npm/pull/11748) - Document all of the various aliases for commands in the documentation - for those commands. - ([@watilde](https://github.com/watilde)) -* [`fe04443`](https://github.com/npm/npm/commit/fe04443d8988e2e41bd4047078e06a26d05d380d) - [#10968](https://github.com/npm/npm/issues/10968) - The `npm-scope` document notes that scopes have been available on the - public registry for a while. This adds that you'll need `npm@2` or later - to use them. - ([@doug-wade](https://github.com/doug-wade)) -* [`3db37a5`](https://github.com/npm/npm/commit/3db37a52b2b2e3193ef250ad2cf96dfd2def2777) - [#11820](https://github.com/npm/npm/pull/11820) - The command `npm link` should be linking package from local folder to - global, and `npm link package-name` should be from global to local. The - description in the documentation was reversed and this fixes that. - ([@rhgb](https://github.com/rhgb)) - -#### GLOB FOR THE GLOB THRONE - -* [`be55882`](https://github.com/npm/npm/commit/be55882dc4ee5ce0777b4badc9141dab5bf5be4d) - `glob@7.0.3`: - Fix a race condition and some windows edge cases. - ([@isaacs](https://github.com/isaacs)) - -### v3.8.1 (2016-03-03): - -This week the install summary got better, killing your npm process now -also kills the scripts it was running and a rarely used search flag got -documented. - -Our improvements on the test suite on Windows are beginning to pick up -steam, you can follow along by -[watching the PR](https://github.com/npm/npm/pull/11444). - -#### BETTER INSTALL SUMMARIES - -* [`e40d457`](https://github.com/npm/npm/commit/e40d4572cc98db06757df5b8bb6b7dbd0546d3d7) - [#11699](https://github.com/npm/npm/issues/11699) - Ensure that flags like `--production` passed to install don't result in - the summary at the end being incorrectly filtered. That summary is - produced by the same code as `npm ls` and therefore responds to flags - the same way it does. This is undesirable when it's an install summary, - however, as we don't want it to filter anything. - - This fixes an issue where `npm install --production ` would - result in npm exiting with an error code. The `--production` flag would - make `npm ls` filter out `` as it wasn't saved to the - `package.json` and thus wasn't a production dependency. The install - report is limited to show just the modules installed, so with that - filtered out nothing is available. With nothing available `npm ls` - would set `npm` to exit with an error code. - ([@ixalon](https://github.com/ixalon)) -* [`99337b4`](https://github.com/npm/npm/commit/99337b469163a4b211b9c6ff1aa9712ae0d601d2) - [#11600](https://github.com/npm/npm/pull/11600) - Make the report of installed modules really only show those modules - that were installed. Previously it selected which modules from your - tree to display based on `name@version` which worked great when your - tree was deduped but would list things it hadn't touched when there - were duplicates. - ([@iarna](https://github.com/iarna)) - -#### SCRIPTS BETTER FOLLOW THE LEADER - -* [`5454347`](https://github.com/npm/npm/commit/545434766eb3681d3f40b745f9f3187ed63f310a) - [#10868](https://github.com/npm/npm/pull/10868) - When running a lifecycle script, say through `npm start`, killing npm - wouldn't forward that on to the children. It does now. - ([@daniel-pedersen](https://github.com/daniel-pedersen)) - -#### SEARCHING SPECIFIC REGISTRIES - -* [`6020447`](https://github.com/npm/npm/commit/60204479f76458a9864aa530cda2b3333f95c2b0) - [#11490](https://github.com/npm/npm/pull/11490) - Add docs for using the `--registry` flag with search. - ([@plumlee](https://github.com/plumlee)) - -#### LODASH UPDATES - -* [`bb14204`](https://github.com/npm/npm/commit/bb14204183dad620a6650452a26cdc64111f8136) - `lodash.without@4.1.1` - ([@jdalton](https://github.com/jdalton)) -* [`0089059`](https://github.com/npm/npm/commit/0089059c562aee9ad0398e55d2c12c68a6150e79) - `lodash.keys@4.0.5` - ([@jdalton](https://github.com/jdalton)) -* [`6ee1de4`](https://github.com/npm/npm/commit/6ee1de4474d9683a1f7023067d440780eeb10311) - `lodash.clonedeep@4.3.1` - ([@jdalton](https://github.com/jdalton)) - -### v3.8.0 (2016-02-25): - -This week brings a quality of life improvement for some Windows users, and -an important knob to be tuned for folks experiencing network problems. - -#### LIMIT CONCURRENT REQUESTS - -We've long known that `npm`'s tendency to try to request all your -dependencies simultaneously upset some network hardware (particular, -consumer grade routers & proxies of all sorts). One of the reasons that we're -planning to write our own npm specific version of `request` is to be able to -more easily control this sort of thing. - -But fortunately, you don't have to wait for that. -[@misterbyrne](https://github.com/misterbyrne) took a look at our existing -code and realized it could be added painlessly TODAY. The new default -maximum is `50`, instead of `Infinity`. If you're having network issues you -can try setting that value down to something lower (if you do, please let us -know... the default is subject to tuning). - -* [`910f9ac`](https://github.com/npm/npm/commit/910f9accf398466b8497952bee9f566ab50ade8c) - [`f7be667`](https://github.com/npm/npm/commit/f7be667548a132ec190ac9d60a31885a7b4fe2b3) - Add a new config option, `maxsockets` and `npm-registry-client@7.1.0` to - take advantage of it. - ([@misterbyrne](https://github.com/misterbyrne)) - -#### WINDOWS GIT BASH - -We think it's pretty keen too, we were making it really hard to actually -upgrade if you were using it. NO MORE! - -* [`d60351c`](https://github.com/npm/npm/commit/d60351ccae87d71a5f5eac73e3085c6290b52a69) - [#11524](https://github.com/npm/npm/issues/11524) - Prefer locally installed npm in Git Bash -- previous behavior was to use - the global one. This was done previously for other shells, but not for Git - Bash. - ([@destroyerofbuilds](https://github.com/destroyerofbuilds)) - -#### DOCUMENTATION IMPROVEMENTS - -* [`b63de3c`](https://github.com/npm/npm/commit/b63de3c97c4c27078944249a4d5bbe1c502c23bc) - [#11636](https://github.com/npm/npm/issues/11636) - Document `--save-bundle` option in main install page. - ([@datyayu](https://github.com/datyayu)) -* [`3d26453`](https://github.com/npm/npm/commit/3d264532d6d9df60420e985334aebb53c668d32b) - [#11644](https://github.com/npm/npm/pull/11644) - Add `directories.test` to the `package.json` documentation. - ([@lewiscowper](https://github.com/lewiscowper)) -* [`b64d124`](https://github.com/npm/npm/commit/b64d12432fdad344199b678d700306340d3607eb) - [#11441](https://github.com/npm/npm/pull/11441) - Add a link in documentation to the contribution guidelines. - ([@watilde](https://github.com/watilde)) -* [`82fc548`](https://github.com/npm/npm/commit/82fc548b0e2abbdc4f7968c20b118c30cca79a24) - [#11441](https://github.com/npm/npm/pull/11441/commits) - Remove mentions of the long defunct Google group. - ([@watilde](https://github.com/watilde)) -* [`c6ad091`](https://github.com/npm/npm/commit/c6ad09131af2e2766d6034257a8fcaa294184121) - [#11474](https://github.com/npm/npm/pull/11474) - Correct invalid JSON in npm-update docs. - ([@robludwig](https://github.com/robludwig)) -* [`4906c90`](https://github.com/npm/npm/commit/4906c90ed2668adf59ebee759c7ebb811aa46e57) - Expand on the documentation for `bundlededDependencies`, explaining what they are - and when you might want to use them. - ([@gnerkus](https://github.com/gnerkus)) - -#### DEPENDENCY UPDATES - -* [`93cdc25`](https://github.com/npm/npm/commit/93cdc25432b71cbc9c25c54ae316770e18f4b01e) - `strip-ansi@3.0.1`: - Non-user visible tests & maintainer doc updates. - ([@jbnicolai](https://github.com/jbnicolai)) -* [`3b2ccef`](https://github.com/npm/npm/commit/3b2ccef30dc2038b99ba93cd1404a1d01dac8790) - `lodash.keys@4.0.4` - ([@jdalton](https://github.com/jdalton)) -* [`30e9eb9`](https://github.com/npm/npm/commit/30e9eb97397a8f85081d328ea9aa54c2a7852613) - `lodash._baseuniq@4.5.0` - ([@jdalton](https://github.com/jdalton)) - - -### v3.7.5 (2016-02-22): - -A quick fixup release because when I updated glob, I missed the subdep copies of itself -that it installed deeper in the tree. =/ - -This only effected people trying to update to `3.7.4` from `npm@2` or `npm@1`. Updates from -`npm@3` worked fine (as it fixes up the missing subdeps during installation). - -#### OH MY GLOB - -* [`63fa704`](https://github.com/npm/npm/commit/63fa7044569127e6e29510dc499a865189806076) - [#11633](https://github.com/npm/npm/issues/11633) - When updating the top level `npm` to `glob@7`, the subdeps that - still depended on `glob@6` got new versions installed but they - weren't added to the commit. This adds them back in. - ([@iarna](https://github.com/iarna)) - -### v3.7.4 (2016-02-18): - -I'm ([@iarna](https://github.com/iarna)) back from vacation in the frozen -wastes of Maine! This release sees a couple of bug fixes, some -documentation updates, a bunch of dependency updates and improvements to our -test suite. - -#### FIXES FOR `update`, FIXES FOR `ls` - -* [`53cdb96`](https://github.com/npm/npm/commit/53cdb96634fc329378b4ea4e767ba9987986a76e) - [#11362](https://github.com/npm/npm/issues/11362) - Make `npm update` stop trying to update linked packages. - ([@rhendric](https://github.com/rhendric)) -* [`8d90d25`](https://github.com/npm/npm/commit/8d90d25b3da086843ce43911329c9572bd109078) - [#11559](https://github.com/npm/npm/issues/11559) - Only list runtime dependencies when doing `npm ls --production`. - ([@yibn2008](https://github.com/yibn2008)) - -#### @wyze, DOCUMENTATION HERO OF THE PEOPLE, GETS THEIR OWN HEADER - -* [`b78b301`](https://github.com/npm/npm/commit/b78b30171038ab737eff0b070281277e35af25b4) - [#11416](https://github.com/npm/npm/pull/11416) - Logout docs were using a section copy-pasted from the adduser docs. - ([@wyze](https://github.com/wyze)) -* [`649e28f`](https://github.com/npm/npm/commit/649e28f50aa323e75202eeedb824434535a0a4a0) - [#11414](https://github.com/npm/npm/pull/11414) - Add colon for consistency. - ([@wyze](https://github.com/wyze)) - -#### WHITTLING AWAY AT PATH LENGTHS - -So for all of you who don't know -- Node.js does, in fact, support long Windows -paths. Unfortunately, depending on the tool and the Windows version, a lot of -external tooling does not. This means, for example, that some (all?) versions of -Windows Explorer *can literally never delete npm from their system entirely -because of deeply-nested npm dependencies*. Which is pretty gnarly. - -Incidentally, if you run into that in particularly, you can use -[rimraf](npm.im/rimraf) to remove such files 💁. - -The latest victim of this issue was the Node.js CI setup for testing on Windows, -which uses some tooling or another that croaks on the usual path length limit -for that OS: 255 characters. - -This isn't ordinarily an issue with `npm@3` as it produces mostly flat -trees, but you may be surprised to learn that `npm`'s own distribution isn't -flat, due to needing to be compatible with `npm@1.2`, which ships with -`node@0.8`! - -We've taken another baby step towards alleviating this in this release by -updating a couple of dependencies that were preventing `npmlog` from deduping, -and then doing a dedupe on that and `gauge`. Hopefully it helps. - -* [`f3c32bc`](https://github.com/npm/npm/commit/f3c32bc3127301741d2fa3a26be6f5f127a35908) - [#11528](https://github.com/npm/npm/pull/11528) - `node-gyp@3.3.0`: - Update to a more recent version that uses a version of npmlog compatible - with npm itself. Also adds: AIX support, new `gyp`, `--cafile` command - line option, and allows configuration of Node.js and io.js mirrors. - ([@rvagg](https://github.com/rvagg)) - -#### INTERNAL TEST IMPROVEMENTS - -The `npm` core team's time recently has been sunk into `npm`'s many years of -tech debt. Specifically, we've been working on improving the test suite. -This isn't user visible, but in future should mean a more stable, easier to -contribute to `npm`. Ordinarily we don't report these kinds of changes in -the change log, but I thought I might share this week as this chunk is -bigger than usual. - -* [`07f020a`](https://github.com/npm/npm/commit/07f020a09e94ae393c67526985444e128ef6f83c) - [#11292](https://github.com/npm/npm/pull/11292) - `tacks@1.0.9`: - Add a package that provides a tool to generate fixtures from folders and, relatedly, - a module that an create and tear down filesystem fixtures easily. - ([@iarna](https://github.com/iarna)) -* [`0837346`](https://github.com/npm/npm/commit/083734631f9b11b17c08bca8ba8cb736a7b1e3fb) - [#11292](https://github.com/npm/npm/pull/11292) - Remove all the relatively cryptic legacy tests and creates new tap tests - that check the same functionality. The *legacy* tests were tests that - were originally a shell script that was ported to javascript early in - `npm`'s history. - ([@iarna](https://github.com/iarna)) - ([@zkat](https://github.com/zkat)) -* [`5a701e7`](https://github.com/npm/npm/commit/5a701e71a0130787fb98450f9de92117b4ef88e1) - [#11292](https://github.com/npm/npm/pull/11292) - Test that we don't leak auth info into the environment. - ([@zkat](https://github.com/zkat)) -* [`502d7d0`](https://github.com/npm/npm/commit/502d7d0628f08b09d8d13538ebccc63de8b3edf5) - [#11292](https://github.com/npm/npm/pull/11292) - Test that env vars properly passed into scripts. - ([@zkat](https://github.com/zkat)) -* [`420f267`](https://github.com/npm/npm/commit/420f2672ee8c909f18bee10b1fc7d4ad91cf328b) - [#11292](https://github.com/npm/npm/pull/11292) - Test that npm's distribution binary is complete and can be installed and used. - ([@iarna](https://github.com/iarna)) -* [`b7e99be`](https://github.com/npm/npm/commit/b7e99be1b1086f2d6098c653c1e20791269c9177) - [#11292](https://github.com/npm/npm/pull/11292) - Test that the `package.json` `files` section and `.npmignore` do what - they're supposed to. - ([@zkat](https://github.com/zkat)) - -#### DEPENDENCY UPDATES - -* [`4611098`](https://github.com/npm/npm/commit/4611098fd8c65d61a0645deb05bf38c81300ffca) - `rimraf@2.5.2`: - Use `glob@7.0.0`. - ([@isaacs](https://github.com/isaacs)) -* [`41b2772`](https://github.com/npm/npm/commit/41b2772cb83627f3b5b926cf81e150e7148cb124) - `glob@7.0.0`: - Raise error if `options.cwd` is specified, and not a directory. - ([@isaacs](https://github.com/isaacs)) -* [`c14e74a`](https://github.com/npm/npm/commit/c14e74ab5d17c764f3aa37123a9632fa965f8760) - `gauge@1.2.7`: Update to newer lodash versions, for a smaller tree. - ([@iarna](https://github.com/iarna)) -* [`d629363`](https://github.com/npm/npm/commit/d6293630ddc25bfa26d19b6be4fd2685976d7358) - `lodash.without@4.1.0` - ([@jdalton](https://github.com/jdalton)) -* [`3ea4c80`](https://github.com/npm/npm/commit/3ea4c8049ca8df9f64426b1db8a29b9579950134) - `lodash.uniq@4.2.0` - ([@jdalton](https://github.com/jdalton)) -* [`8ddcc8d`](https://github.com/npm/npm/commit/8ddcc8deb554660a3f7f474fae9758c967d94552) - `lodash.union@4.2.0` - ([@jdalton](https://github.com/jdalton)) -* [`2b656a6`](https://github.com/npm/npm/commit/2b656a672d351f32ee2af24dcee528356dcd64f4) - `lodash.keys@4.0.3` - ([@jdalton](https://github.com/jdalton)) -* [`ac171f8`](https://github.com/npm/npm/commit/ac171f8f0318a7dd3c515f3b83502dfa9e87adb8) - `lodash.isarguments@3.0.7` - ([@jdalton](https://github.com/jdalton)) -* [`bcccd90`](https://github.com/npm/npm/commit/bcccd9057b75d800c799ab15f00924f700415d3e) - `lodash.clonedeep@4.3.0` - ([@jdalton](https://github.com/jdalton)) -* [`8165bca`](https://github.com/npm/npm/commit/8165bca537d86305a3d08f080f86223a26615aa8) - `lodash._baseuniq@4.4.0` - ([@jdalton](https://github.com/jdalton)) - -### v3.7.3 (2016-02-11): - -Hey all! We've got a pretty small release this week -- just documentation -updates and a couple of dependencies. This release also includes a particular -dependency upgrade that makes it so we're exclusively using the latest version -of `graceful-fs`, which'll make it so things keep working with future Node.js -releases. - -A certain internal Node.js API was deprecated and slated for future removal from -Node Core. This API was critical for versions of `graceful-fs@<4`, before a -different approach was used to achieve similar ends. By upgrading this library, -and making sure all our dependencies are also updated, we've ensured npm will -continue to work once the API is finally removed. Older versions of npm, on the -other hand, will simply not work on future versions of Node.js. - -#### DEPENDENCY UPGRADES - -* [`29536f4`](https://github.com/npm/npm/commit/29536f42da6c06091c9acbc8952f72daa8a9412c) - `cmd-shim@2.0.2`: - Final straggler using `graceful-fs@<4`. - ([@ForbesLindesay](https://github.com/ForbesLindesay)) -* [`5f59e74`](https://github.com/npm/npm/commit/5f59e748ef4c066756bb204a452cecd0543c7a2f) - `lodash.uniq@4.1.0` - ([@jdalton](https://github.com/jdalton)) -* [`987cabe`](https://github.com/npm/npm/commit/987cabe8a18abcb5a685685958bf74c7258a979c) - `lodash.union@4.1.0` - ([@jdalton](https://github.com/jdalton)) -* [`5c641f0`](https://github.com/npm/npm/commit/5c641f05fdc153c6bb06a89c46fe2a345ce413db) - `lodash.clonedeep@4.1.0` - ([@jdalton](https://github.com/jdalton)) - -#### EVERYONE GETTING SOCKS LIKE IT'S OPRAH'S SHOW - -* [`9ea5658`](https://github.com/npm/npm/commit/9ea56582ca4d0991dbed44f992c88f08a643cb4b) - [#11410](https://github.com/npm/npm/pull/11410) - Fixed a small spelling error in `npm-config.md`. - ([@pra85](https://github.com/pra85)) -* [`2a11e56`](https://github.com/npm/npm/commit/2a11e562a14bce18b6ddca6c20d17f97b6a8ec2f) - [#11403](https://github.com/npm/npm/pull/11403) - Removes `--depth Infinity` warning from documentation -- this operation should - actually be totally safe as of `npm@3`. (The warning remains for `npm@2`.) - ([@Aourin](https://github.com/Aourin)) -* [`42a4727`](https://github.com/npm/npm/commit/42a4727bfb1e21c890b8e2babda55e06ac2bda29) - [#11391](https://github.com/npm/npm/pull/11391) - Fixed versions of `shrinkwrap.json` in examples in documentation for `npm - shrinkwrap`, which did not quite match up. - ([@xcatliu](https://github.com/xcatliu)) - -### v3.7.2 (2016-02-04): - -This week, the CLI team has been busy working on rewriting tests to support -getting coverage reports going and running all of our tests on Windows. -Meanwhile, we've got a bunch of dependency updates and one or two other -things. - -#### TESTS WENT INTO HIDING - -Last week we took a patch from [@substack](https://github.com/substack) to -stop the installer from reordering arrays in an installed module's -`package.json`... but somehow I dropped the test when I was rebasing. - -* [`21b9271`](https://github.com/npm/npm/commit/21b927182514a0ff6d9f34480bfc39f72e3e9f8c) - [#10063](https://github.com/npm/npm/issues/10063) - Restore test that verifies that we don't re-order arrays in a module's - `package.json` on install. - ([@substack](https://github.com/substack)) - -#### DOCUMENTATION FIXES - -* [`c67521d`](https://github.com/npm/npm/commit/c67521dc6c1e41d39d02c74105e41442851d23bb) - [#11348](https://github.com/npm/npm/pull/11348) - Improve the documentation around which files are ALWAYS included in published packages - and which are ALWAYS excluded. - ([@jscissr](https://github.com/jscissr)) -* [`7ef6793`](https://github.com/npm/npm/commit/7ef6793cd191cc8d88340f7e1ce9c9e3d6f0b2f4) - [#11348](https://github.com/npm/npm/pull/11348) - The release date on the 3.7.0 changelog entry was wrong. I honestly don't - know how I keep doing this. =D - ([@rafek](https://github.com/rafek)) - -#### DEPENDENCY UPDATES - -* [`8a3c80c`](https://github.com/npm/npm/commit/8a3c80c4fd3d82fe937f30bc7cbd3dee51a8a893) - `graceful-fs@4.1.3`: - Fix a bug where close wasn't getting made graceful. - ([@isaacs](https://github.com/isaacs)) - -`lodash` saw updates across most of its modules this week with browser -campatibility fixes that don't really impact us. - -* [`2df342b`](https://github.com/npm/npm/commit/2df342bf30efa99b98016acc8a5dc03e00b58b9c) - `lodash.without@4.0.2` - ([@jdalton](https://github.com/jdalton)) -* [`86aa91d`](https://github.com/npm/npm/commit/86aa91dce60f6b6a92bb3ba2bf6e6be1f6afc750) - `lodash.uniq@4.0.2` - ([@jdalton](https://github.com/jdalton)) -* [`0a94bf6`](https://github.com/npm/npm/commit/0a94bf6af0ebd38d080f92257e0cd9bae40b31ff) - `lodash.union@4.0.2` - ([@jdalton](https://github.com/jdalton)) -* [`b4c9582`](https://github.com/npm/npm/commit/b4c9582b4ef5991f3d155e0c6142ed1c631860af) - `lodash.isarguments@3.0.6` - ([@jdalton](https://github.com/jdalton)) -* [`efe766c`](https://github.com/npm/npm/commit/efe766c63c0948a4ae4c0d12f2b834629ab86e92) - `lodash.keys@4.0.2`: Minor code cleanup and the above. - ([@jdalton](https://github.com/jdalton)) -* [`36abb24`](https://github.com/npm/npm/commit/36abb24ef31017adbf325e7f833d5d4b0f03f5d4) - `lodash.clonedeep@4.0.4`: - Add support for cloning prototype objects and the above. - ([@jdalton](https://github.com/jdalton)) - -### v3.7.1 (2016-02-01): - -Super quick Monday patch on last week's release. - -If you ever wondered why we release things to the `npm@next` tag for a week -before promoting them to `npm@latest`, this is it! - -#### RELEASE TRAIN VINDICATED (again) - -* [`adcaf04`](adcaf047811dcc475ab1984fc93fe34540fc03d7) - [#11349](https://github.com/npm/npm/issues/11349) - Revert last weeks change to use JSON clone instead of `lodash.cloneDeep`. - ([@iarna](https://github.com/iarna)) - -### v3.7.0 (2016-01-29): - -Hi all! This week brings us some important performance improvements, -support for git submodules(!) and a bunch of bug fixes. - -#### PERFORMANCE - -`gauge`, the module responsible for drawing `npm`'s progress bars, had an -embarrassing bug in its debounce implementation that resulted in it, on many -systems, actually being _slower_ than if it hadn't been debouncing. This was -due to it destroying and then creating a timer object any time it got an -update while waiting on its minimum update period to elapse. This only was -a measurable slowdown when sending thousands of updates a second, but -unfortunately parts of `npm`'s logging do exactly that. This has been patched -to eliminate that churn, and our testing shows the progress bar as being -eliminated as a source of slow down. - -Meanwhile, `are-we-there-yet` is the module that tracks just how complete -our big asynchronous install process is. [@STRML](https://github.com/STRML) -spent some time auditing its source and made a few smaller performance -improvements to it. Most impactful was eliminating a bizarre bit of code -that was both binding to AND closing over the current object. I don't have -any explanation for how that crept in. =D - -* [`c680fa9`](https://github.com/npm/npm/commit/c680fa9f8135759eb5512f4b86e47fa265733f79) - `npmlog@2.0.2`: New `are-we-there-yet` with performance patches from - [@STRML](https://github.com/STRML). New `gauge` with timer churn - performance patch. - ([@iarna](https://github.com/iarna)) - -We were also using `lodash`'s `cloneDeep` on `package.json` data which is -definitely overkill, seeing as `package.json` data has all the restrictions -of being `json`. The fix for this is just swapping that out for something -that does a pair of `JSON.stringify`/`JSON.parse`, which is distinctly more -speedy. - -* [`1d1ea7e`](https://github.com/npm/npm/commit/1d1ea7eeb958034878eb6573149aeecc686888d3) - [#11306](https://github.com/npm/npm/pull/11306) - Use JSON clone instead of `lodash.cloneDeep`. - ([@STRML](https://github.com/STRML)) - -#### NEW FEATURE: GIT SUBMODULE SUPPORT - -Long, long requested– the referenced issue is from 2011– we're finally -getting rudimentary git submodule support. - -* [`39dea9c`](https://github.com/npm/npm/commit/39dea9ca4216c6ea628f5ca47d2b34a4b251a1ed) - [#1876](https://github.com/npm/npm/issues/1876) - Add support for git submodules in git remotes. This is a fairly simple - approach, which does not leverage the git caching mechanism to cache - submodules. It also doesn't provide a means to disable automatic - initialization, e.g. via a setting in the `.gitmodules` file. - ([@gagern](https://github.com/gagern)) - -#### ROBUSTNESS - -* [`5dec02a`](https://github.com/npm/npm/commit/5dec02a3d0e82202c021e27aff9d006283fdc25a) - [#10347](https://github.com/npm/npm/issues/10347) - There is an obscure feature that lets you monkey-patch npm when it starts - up. If the module being required with this feature failed, it would - previously just make `npm` error out– this reduces that to a warning. - ([@evanlucas](https://github.com/evanlucas)) - -#### BUG FIXES - -* [`9ab8b8d`](https://github.com/npm/npm/commit/9ab8b8d047792612ae7f9a6079745d51d5283a53) - [#10820](https://github.com/npm/npm/issues/10820) - Fix a bug with `npm ls` where if you asked for ONLY production dependencies in output - it would exclude dependencies that were BOTH production AND development dependencies. - ([@davidvgalbraith](https://github.com/davidvgalbraith)) -* [`6803fed`](https://github.com/npm/npm/commit/6803fedadb8f9b36cd85f7338ecf75d1d183c833) - [#8982](https://github.com/npm/npm/issues/8982) - Fix a bug where, under some circumstances, if you had a path that - contained the name of a package being installed somewhere in it, `npm` - would incorrectly refuse to run lifecycle scripts. - ([@elvanja](https://github.com/elvanja)) -* [`3eae40b`](https://github.com/npm/npm/commit/3eae40b7a681aa067dfe4fea8c9a76da5b508b48) - [#9253](https://github.com/npm/npm/issues/9253) - Fix a bug where, when running lifecycle scripts, if the Node.js binary you ran - `npm` with wasn't in your `PATH`, `npm` wouldn't use it to run your scripts. - ([@segrey](https://github.com/segrey)) -* [`61daa6a`](https://github.com/npm/npm/commit/61daa6ae8cbc041d3a0d8a6f8f268b47dd8176eb) - [#11014](https://github.com/npm/npm/issues/11014) - Fix a bug where running `rimraf node_modules/` followed by `npm - rm --save ` would fail. `npm` now correctly removes the module - from your `package.json` even though it doesn't exist on disk. - ([@davidvgalbraith](https://github.com/davidvgalbraith)) -* [`a605586`](https://github.com/npm/npm/commit/a605586df134ee97c95f89c4b4bd6bc73f7aa439) - [#9679](https://github.com/npm/npm/issues/9679) - Fix a bug where `npm install --save git+https://…` would save a `https://` - url to your `package.json` which was a problem because `npm` wouldn't then - know that it was a git repo. - ([@gagern](https://github.com/gagern)) -* [`bbdc700`](https://github.com/npm/npm/commit/bbdc70024467c365cc4e06b8410947c04b6f145b) - [#10063](https://github.com/npm/npm/issues/10063) - Fix a bug where `npm` would change the order of array properties in the - `package.json` files of dependencies. `npm` adds a bunch of stuff to - `package.json` files in your `node_modules` folder for debugging and - bookkeeping purposes. As a part of this process it sorts the object to - reduce file churn when it does updates. This fixes a bug where the arrays - in the object were also getting sorted. This wasn't a problem for - properties that `npm` itself maintains, but _is_ a problem for properties - used by other packages. - ([@substack](https://github.com/substack)) - -#### DOCS IMPROVEMENTS - -* [`2609a29`](https://github.com/npm/npm/commit/2609a2950704f577ac888668e81ba514568fab44) - [#11273](https://github.com/npm/npm/pull/11273) - Include an example of viewing package version history in the `npm view` documentation. - ([@vedatmahir](https://github.com/vedatmahir)) -* [`719ea9c`](https://github.com/npm/npm/commit/719ea9c45a5c3233f3afde043b89824aad2df0a7) - [#11272](https://github.com/npm/npm/pull/11272) - Fix typographical issue in `npm update` documentation. - ([@jonathanp](https://github.com/jonathanp)) -* [`cb9df5a`](https://github.com/npm/npm/commit/cb9df5a37091e06071d8704b629e7ebaa41c37fe) - [#11215](https://github.com/npm/npm/pull/11215) - Do not call `SEE LICENSE IN ` an _SPDX expression_, as it's not. - ([@kemitchell](https://github.com/kemitchell)) -* [`f427934`](https://github.com/npm/npm/commit/f4279346c368da4bca09385f773e8eed1d389e5e) - [#11196](https://github.com/npm/npm/pull/11196) - Correct the `package.json` examples in the `npm update` documentation to actually be - valid JSON and not just JavaScript object literals. - ([@s100](https://github.com/s100)) - -#### DEPENDENCY UPDATES - -* [`a7b2407`](https://github.com/npm/npm/commit/a7b24074cb59a1ab17c0d8eff1498047e6a123e5) - `retry@0.9.0`: New features and interface agnostic refactoring. - ([@tim-kos](https://github.com/tim-kos)) -* [`220fc77`](https://github.com/npm/npm/commit/220fc7702ae3e5d601dfefd3e95c14e9b32327de) - `request@2.69.0`: - A bunch of small bug fixes and module updates. - ([@simov](https://github.com/simov)) -* [`9e5c84f`](https://github.com/npm/npm/commit/9e5c84f1903748897e54f8ff099729ff744eab0f) - `which@1.2.4`: - Update `isexe` and fix bug in `pathExt`, in which files without extensions - would sometimes be preferred to files with extensions on Windows, even though - those without extensions aren't executable. - `pathExt` is a list of extensions that are considered executable (exe, cmd, - bat, com on Windows). - ([@isaacs](https://github.com/isaacs)) -* [`375b9c4`](https://github.com/npm/npm/commit/375b9c42fe0c6de47ac2f92527354b2ea79b7968) - `rimraf@2.5.1`: Minor doc formatting fixes. - ([@isaacs](https://github.com/isaacs)) -* [`ef1971e`](https://github.com/npm/npm/commit/ef1971e6270c2bc72e6392b51a8b84f52708f7e7) - `lodash.clonedeep@4.0.2`: - Misc minor code cleanup. No functional changes. - ([@jdalton](https://github.com/jdalton)) - -### v3.6.0 (2016-01-20): - -Hi all! This is a bigger release, in part 'cause we didn't have one last -week. The most important thing you need to know is that when `npm@3.6.0` replaces -`npm@3.5.4` as `next`, `npm@3.5.4` WILL NOT be moved on to `latest`. This is due to -a packaging error that tickles bugs in some earlier releases and makes upgrades to it -from those versions break the install. - -#### NEW FEATURES‼ - -* [`ff504d4`](https://github.com/npm/npm/commit/ff504d449ea1fa996cbb02c8078964643c51e5f6) - [#8752](https://github.com/npm/npm/issues/8752) - In `npm outdated`, report symlinked packages as having a wanted & latest - version of `linked`. - ([@halhenke](https://github.com/halhenke)) -* [`f44d8c9`](https://github.com/npm/npm/commit/f44d8c9a3940f7041f8136f8754a54b13f1f9d60) - [#10775](https://github.com/npm/npm/issues/10775) - Add a success message to `adduser` / `login`. - ([@ekmartin](https://github.com/ekmartin)) -* [`3109303`](https://github.com/npm/npm/commit/310930395c9bf1577cf085b9742210bfc71bb019) - [#10043](https://github.com/npm/npm/pull/10043) - Warn if you try to use `npm run x` if you don't have a `node_modules` folder, since - whatever you're trying to do _probably_ won't work. - ([@timkrins](https://github.com/timkrins)) - -* [`9ed2849`](https://github.com/npm/npm/commit/9ed2849cd7e8cc97111dca42a940905284afe55d) - [`e9f1ad8`](https://github.com/npm/npm/commit/e9f1ad88ce58ecd111811e11afa52ac19fc8696e) - [`f10d300`](https://github.com/npm/npm/commit/f10d300e5effa7a5756c8d461eef284c283a41d1) - [`8b593d8`](https://github.com/npm/npm/commit/8b593d8d187d6ac85d2a59cbe647afb5516c1b94) - [#10717](https://github.com/npm/npm/pull/10717) - `npm version` can now take a `from-git` argument, which instructs `npm` to read the - version from git and update your `package.json` to what it finds. This is in contrast - to its normal use where `npm` _tells_ git about your new version. - ([@ekmartin](https://github.com/ekmartin)) - -#### 3.5.4 WAS NOT SO GREAT - -The `npm@3.5.4` package was missing some dependencies. Specifically, `glob` -and `has-unicode` had major release updates which meant that subdeps that -relied on older major versions couldn't use the npm supplied versions any -more, and so they needed their own copies. - -This went undetected because the actions necessary to run the tests (which -check for this sort of thing) resolved the missing modules. - -Further, it didn't have symptoms when upgrading from _most_ versions of npm. -Unfortunately, some versions had bugs that were tickled by this and resulted -in broken upgrades, most notably, `npm@3.3.12`, the version that's been in -Node.js 5. - -* [`1d3325c`](https://github.com/npm/npm/commit/1d3325c040621a4792db80fb232f4994b9d5c5f2) - [`02611c6`](https://github.com/npm/npm/commit/02611c673a4d2bbe8fcef8d48407768da31c90d2) - [`39d5fea`](https://github.com/npm/npm/commit/39d5feadefdde38d75a18f23343bc6ec37153638) - [`7d0e830`](https://github.com/npm/npm/commit/7d0e830f26c73b9d9277b29949227ba9cca27fd9) - [#11129](https://github.com/npm/npm/pull/11129) - Update the underlying dependencies to allow use for the new versions of - `glob` and `has-unicode`. - ([@iarna](https://github.com/iarna)) - -#### WHEN MISSING PATHS ARE OK - -* [`bb638fa`](https://github.com/npm/npm/commit/bb638fa4f48d24d2c9935861d5d751c5621eea49) - [#11212](https://github.com/npm/npm/pull/11212) - When trying to determine if a file was controlled by npm before going to - remove it, we check to see if it is inside any of a list of paths that npm - considers to be under its control. Not all of those paths always exist - (and that's ok!) Previously we were calling it a failure to match if ANY - of them didn't exist. We now only do so if NONE of them exist. If some - do, then we do our usual checks on them. - - This showed up as an error where you would see something like: - ``` - npm warn gentlyRm not removing /path/to/thing as it wasn't installed by /path/to/other/thing - ``` - But it totally was installed by it. - ([@iarna](https://github.com/iarna)) - -#### BETTER NODE PRE-RELEASE SUPPORT - -Historically, if you used a pre-release version of Node.js, you would get -dozens and dozens of warnings when EVERY engine check failed across all of -your modules, because `>= 0.10.0` doesn't match prereleases. - -You might find this stream of redundent warnings undesirable. I do. - -We've moved this into a SINGLE warning you'll get about using a pre-release -version of Node.js and now suppress those other warnings. - -* [`6952f79`](https://github.com/npm/npm/commit/6952f7981e451a2d599a4f513573af208bdfe103) - [#11212](https://github.com/npm/npm/pull/11212) - Engine check warnings are now issued along with any other warnings about - your tree, instead of emitting in the middle of your install (and then - disappearing behind the giant tree of stuff installed). - ([@iarna](https://github.com/iarna)) -* [`ee2ebe9`](https://github.com/npm/npm/commit/ee2ebe96fb3d105787835b72085bbd2eee66a629) - [#11212](https://github.com/npm/npm/pull/11212) - Suppress engine verification warnings about pre-release versions of Node.js. - ([@iarna](https://github.com/iarna)) -* [`135b7e0`](https://github.com/npm/npm/commit/135b7e078311e8b4e2c8e2b662eed9ba6c2e2537) - [#11212](https://github.com/npm/npm/pull/11212) - Explicitly warn, in only one place, if you are using a pre-release version - of Node.js. - ([@iarna](https://github.com/iarna)) - -#### BUG FIXES - -* [`ea331c8`](https://github.com/npm/npm/commit/ea331c82157c65f7643cd4b49fd24031c84bf601) - [#10938](https://github.com/npm/npm/issues/10938) - When removing a package, sometimes the `node_modules/.bin` wouldn't be - cleaned up entirely. This would result in package folders that contained - only a `node_modules/.bin` directory. In turn, this would result in `npm - ls` and other tools complaining about these broken directories. - To fix this, the `unbuild` step now explicitly deletes the - `node_modules/.bin` folder as its final step. - ([@chrisirhc](https://github.com/chrisirhc)) -* [`00720db`](https://github.com/npm/npm/commit/00720db2c326cf8f968c662444a4575ae8c3020a) - [#11158](https://github.com/npm/npm/pull/11158) - On Windows, the `node-gyp` wrapper would fail if your path to `node-gyp` - contained spaces. This fixes that problem by quoting use of that path. - ([@orangemocha](https://github.com/orangemocha)) -* [`69ac933`](https://github.com/npm/npm/commit/69ac9333506752bf2e5af70b3b3e03c6181de3e7) - [#11142](https://github.com/npm/npm/pull/11142) - Fix a race condition when making directories in the cache, which could - lead to `ENOENT` failures. - ([@Jimbly](https://github.com/Jimbly)) -* [`e982858`](https://github.com/npm/npm/commit/e982858d9bed65cede9cbb12df9216a4bb9e6fc9) - [#9696](https://github.com/npm/npm/issues/9696) - When replacing the `package.json` in the cache you sometimes see `EPERM` errors on - Windows that you wouldn't on Unix-like operating systems. This ignores those errors - and allows Windows to continue. Longer term, we'll be adding something to retry - these errors, but ultimately fail if there really is an ongoing permissions issue. - ([@orangemocha](https://github.com/orangemocha)) - -#### DOC CHANGES - -* [`3666081`](https://github.com/npm/npm/commit/3666081abd02184ba97a7cdb6ae238085d640b4b) - [#11188](https://github.com/npm/npm/pull/11188) - Add brief description to publish documentation of what's included in - published tarballs. - ([@beaugunderson](https://github.com/beaugunderson)) -* [`b463e34`](https://github.com/npm/npm/commit/b463e3424b296cfc4bd384fc8bfe0e2329649164) - [#11150](https://github.com/npm/npm/pull/11150) - In npm update docs, advise use of `--depth Infinity` instead of `--depth - 9999`. - ([@halhenke](https://github.com/halhenke)) -* [`382e71a`](https://github.com/npm/npm/commit/382e71a7ee5d1ca3dba55c1e753d529eb8ae6895) - [#11128](https://github.com/npm/npm/pull/11128) - In the `package.json` docs, make the reference to the "Local Paths" section - a link to it as well. - ([@orangejulius](https://github.com/orangejulius)) -* [`5277e7f`](https://github.com/npm/npm/commit/5277e7f236e8cb40d7f4a1054506f2d3d159716e) - [#11090](https://github.com/npm/npm/pull/11090) - Fix the 3.5.4 release date in CHANGELOG.md. - ([@ashleygwilliams](https://github.com/ashleygwilliams)) -* [`e6d238a`](https://github.com/npm/npm/commit/e6d238a3d90beeb0af23fa75a9b5e50671d6e4c5) - [#11130](https://github.com/npm/npm/pull/11130) - Eliminate the "using npm programmatically" section from the README. The - documentation for this was removed a while ago and is unsupported. - ([@ljharb](https://github.com/ljharb)) - -#### DEPENDENCY UPDATES - -* [`b0dde5c`](https://github.com/npm/npm/commit/b0dde5c3407b58d78969d3da01af2629fcba1c73) - `config-chain@1.1.10`: Update tests for most recent version of `ini`. - ([@dominictarr](https://github.com/dominictarr)) -* [`c62f414`](https://github.com/npm/npm/commit/c62f414534971761a48ce3cbc3e25214fb09e494) - `glob@6.0.4`: Eliminated use of `util._extend`. - ([@isaacs](https://github.com/isaacs)) -* [`98a6779`](https://github.com/npm/npm/commit/98a67797978ed7ce534e16b705d3a2a9ca0e6cc1) - `lodash.clonedeep@4.0.1`: Bug fixes, including the non-linear performance - that was biting npm a while back. - ([@jdalton](https://github.com/jdalton)) -* [`0e8c4ce`](https://github.com/npm/npm/commit/0e8c4cebddaefbf5eca0abaad512db266c6722c9) - `lodash.without@4.0.1` - ([@jdalton](https://github.com/jdalton)) -* [`1fd19f5`](https://github.com/npm/npm/commit/1fd19f57a3551d7d30a6b8a9ce967ef50e0ff0ba) - `lodash.uniq@4.0.1` - ([@jdalton](https://github.com/jdalton)) -* [`b7486c5`](https://github.com/npm/npm/commit/b7486c550f3391f733d1e1907652be95fddf4368) - `lodash.union@4.0.1` - ([@jdalton](https://github.com/jdalton)) -* [`54bb591`](https://github.com/npm/npm/commit/54bb5911e18f8fb86eb94159f34b13f0c0aa2e30) - `lodash.keys@4.0.0` - ([@jdalton](https://github.com/jdalton)) -* [`26f7a7a`](https://github.com/npm/npm/commit/26f7a7aaae0575a85deba2241ee69b433dd1ba98) - `lodash.isarray@4.0.0` - ([@jdalton](https://github.com/jdalton)) -* [`ed38bd3`](https://github.com/npm/npm/commit/ed38bd3baf544dfc0630fd321d279f137700bd4d) - `lodash.isarguments@3.0.5` - ([@jdalton](https://github.com/jdalton)) - -### v3.5.4 (2016-01-07): - -I hope you all had fantastic winter holidays, if it's winter where you are -and if there are holidays‼ We went a few weeks without releases because -staff was taking time away from work here and there. A new year has come -and we're back now, and refreshed and ready to dig in! - -This week brings us a bunch of documentation improvements and some module -updates. The core team's focus continues to be on improving tests, -particularly with Windows, so there's not too much to call out here. - -#### DOCUMENTATION IMPROVEMENTS - -* [`6b0031e`](https://github.com/npm/npm/commit/6b0031e28c0b10fb2622fdadde41f5cd294348e8) - [#11044](https://github.com/npm/npm/pull/11044) - Correct documentation regarding the defaults for the `color` config option. - ([@scottaddie](https://github.com/scottaddie)) -* [`c6ce69e`](https://github.com/npm/npm/commit/c6ce69eaed7f17b5f1876ac13ecfae3d14a72f24) - [#10990](https://github.com/npm/npm/pull/10990) - Drop mentions in documentation of `process.installPrefix`, as it hasn't - been a thing since Node.js 0.6 and we don't support that. - ([@jeffmcmahan](https://github.com/jeffmcmahan)) -* [`dee92d1`](https://github.com/npm/npm/commit/dee92d1f78608a10becf57aae86d5d495f2272bd) - [#11037](https://github.com/npm/npm/pull/11037) - Clarify the documentation on the max length of the `name` property in - `package.json` files. - ([@scottaddie](https://github.com/scottaddie)) -* [`4b9d7bb`](https://github.com/npm/npm/commit/4b9d7bb1a4fc3f1edcf563379abfd2273af10881) - [#10787](https://github.com/npm/npm/pull/10787) - Make the formatting in the documentation for `npm dist-tag` more - consistent with other docs. - ([@cvrebert](https://github.com/cvrebert)) -* [`7f77a80`](https://github.com/npm/npm/commit/7f77a80d561ee4b2b8c0aba1226fe89dfe339bcd) - [#10787](https://github.com/npm/npm/pull/10787) - Add documentation to the `npm dist-tag` docs that explains in greater - detail how `latest` is different than other tags. Further, improve the - documentation with better examples. Add a discussion of common practice - for using dist tags to manage alpha's and beta's. - ([@cvrebert](https://github.com/cvrebert)) -* [`6db58dd`](https://github.com/npm/npm/commit/6db58dd0d7719c4675a239d43164edc066842b14) - [`2ee6371`](https://github.com/npm/npm/commit/2ee6371911bd3a4d566c5d7bc8734facc60cb27c) - [#10788](https://github.com/npm/npm/pull/10788) - [#10789](https://github.com/npm/npm/pull/10789) - Improve documentation cross referencing. - ([@cvrebert](https://github.com/cvrebert)) -* [`7ba629a`](https://github.com/npm/npm/commit/7ba629a2ad3eaf736529e053b533cabe3a0d7123) - [#10790](https://github.com/npm/npm/pull/10790) - Document more clearly that `npm install foo` means `npm install - foo@latest`. - ([@cvrebert](https://github.com/cvrebert)) - -#### A FEW MODULE UPDATES - -* [`fc2e8d5`](https://github.com/npm/npm/commit/fc2e8d58a91728cb06936eea686efaa4fdec3f06) - `glob@6.0.3`: Remove deprecated features and fix a bunch of bugs. - ([@isaacs](https://github.com/isaacs)) -* [`5b820c4`](https://github.com/npm/npm/commit/5b820c4e17c907fa8c23771c0cd8e74dd5fdaa51) - `has-unicode@2.0.0`: Change the default on Windows to be false, as - international Windows installs often install to non-unicode codepages and - there's no way to detect this short of a system call or a call to a - command line program. - ([@iarna](https://github.com/iarna)) -* [`238fe84`](https://github.com/npm/npm/commit/238fe84ac61297f1d71701d80368afaa40463305) - `which@1.2.1`: Fixed bugs with uid/gid checks and with quoted Windows PATH - parts. - ([@isaacs](https://github.com/isaacs)) -* [`5e510e1`](https://github.com/npm/npm/commit/5e510e13d022a22d58742b126482d3b38a14cc83) - `rimraf@2.5.0`: Add ability to disable glob support / pass in options. - ([@isaacs](https://github.com/isaacs)) -* [`7558215`](https://github.com/npm/npm/commit/755821569466b7be0883f4b0573eeb83c24109eb) - `readable-stream@2.0.5`: Minor performance improvements. - ([@calvinmetcalf](https://github.com/calvinmetcalf)) -* [`64e8499`](https://github.com/npm/npm/commit/64e84992c812a73d590be443c09a6977d0ae9040) - `fs-write-stream-atomic@1.0.8`: Rewrite to use modern streams even on 0.8 - plus a bunch of tests. - ([@iarna](https://github.com/iarna)) -* [`74d92a0`](https://github.com/npm/npm/commit/74d92a08d72ce3603244de4bb3e3706d2b928cef) - `columnify@1.5.4`: Some bug fixes around large inputs. - ([@timoxley](https://github.com/timoxley)) - -#### FIX NPM'S TESTS ON 0.8 - -This doesn't impact you as a user of npm, and ordinarily that means we -wouldn't call it out here, but if you've ever wanted to contribute, having -that green travis badge makes it a lot easier to do so with confidence! - -* [`b14cdbb`](https://github.com/npm/npm/commit/b14cdbb6002b04bfbefaff70cc45810c20d5a366) - [#10872](https://github.com/npm/npm/pull/10872) - Rewrite tests using nock to use other alternatives. - ([@zkat](https://github.com/zkat)) -* [`59ed01a`](https://github.com/npm/npm/commit/59ed01a8ea7960b1467aed52164fc36a03c77770) - [#10872](https://github.com/npm/npm/pull/10872) - Work around Node.js 0.8 http back-pressure bug. - - 0.8 http streams have a bug, where if they're paused with data in their - buffers when the socket closes, they call `end` before emptying those - buffers, which results in the entire pipeline ending and thus the point - that applied backpressure never being able to trigger a `resume`. - - We work around this by piping into a pass through stream that has - unlimited buffering. The pass through stream is from readable-stream and - is thus a current streams3 implementation that is free of these bugs even - on 0.8. - ([@iarna](https://github.com/iarna)) - -### v3.5.3 (2015-12-10): - -Did you know that Bob Ross reached the rank of master sergeant in the US Air -Force before becoming perhaps the most soothing painter of all time? - -#### TWO HAPPY LITTLE BUG FIXES - -* [`71c9590`](https://github.com/npm/npm/commit/71c9590be61b6a7b7fa8b6dc19baa588cda26a27) - [#10505](https://github.com/npm/npm/issues/10505) `npm ls --json --depth=0` - now respects the depth parameter, when it is zero and when it is not zero. - ([@MarkReeder](https://github.com/MarkReeder)) -* [`954fa67`](https://github.com/npm/npm/commit/954fa67f1ca3739992abd244e217a0aaf8465660) - [#9099](https://github.com/npm/npm/issues/9099) I had always thought you - could run `npm version` from subdirectories in your project, which is great, - because now you can. I guess I was just ahead of my time. - ([@ekmartin](https://github.com/ekmartin)) - -#### NOW PAINT IN SOME NICE DOCS CHANGES - -* [`b88c37c`](https://github.com/npm/npm/commit/b88c37c1cced40e9e41402cc54a5efc3c33cd13e) - [#10546](https://github.com/npm/npm/issues/10546) Goodbye, FAQ! You were - cheeky and fun until you weren't! Don't worry: npm still loves everyone, - especially you! ([@ashleygwilliams](https://github.com/ashleygwilliams)) -* [`2d3afe9`](https://github.com/npm/npm/commit/2d3afe9644ba69681a36721e79c45d27def71939) - [#10570](https://github.com/npm/npm/issues/10570) Update documentation URLs - to be HTTPS everywhere sensible. No HTTP shall be spared! - ([@rsp](https://github.com/rsp)) -* [`6abd0e0`](https://github.com/npm/npm/commit/6abd0e0626d0f642ce0dae0e128ced80433f15a1) - [#10650](https://github.com/npm/npm/issues/10650) Correctly note that there - are two lifecycle scripts run by an install phase in an example, instead of - three. ([@eymengunay](https://github.com/eymengunay)) -* [`a5e8df5`](https://github.com/npm/npm/commit/a5e8df53b8d6d75398cb6a55a44dcf374b0f1661) - [#10687](https://github.com/npm/npm/issues/10687) `npm outdated`'s output can - be a little puzzling sometimes. I've attempted to make it clearer, with some - examples, of what's going on with "wanted" and "latest" in more cases. - ([@othiym23](https://github.com/othiym23)) -* [`8f52833`](https://github.com/npm/npm/commit/8f52833f5d15c4f94467234607d40e75198af1aa) - [#10700](https://github.com/npm/npm/issues/10700) Hey, do you remember when - `search.npmjs.org` was a thing? I think I do? The last time I used it was in - like 2012, and it's gone now, so remove it from the docs. - ([@gagern](https://github.com/gagern)) -* [`b6a53b8`](https://github.com/npm/npm/commit/b6a53b889c948053dcbf6d7aab9ad1cd4226dc32) - [npm/docs#477](https://github.com/npm/docs/issues/477) Continue to airbrush - the CLI API docs out of history. ([@verpixelt](https://github.com/verpixelt)) -* [`b835b72`](https://github.com/npm/npm/commit/b835b72d1dd23b0a17321a85d8d395322d18005d) - `semver@5.1.0`: Include BNF for SemVer expression grammar (which is also now - included in `npm help semver`). ([@isaacs](https://github.com/isaacs)) - -#### LAND YOUR DEPENDENCY UPGRADES IN PAIRS SO EVERYONE HAS A FRIEND - -* [`95e99fa`](https://github.com/npm/npm/commit/95e99faadcdc85a16210dd79c0e7d83add1b9f3e) - `request@2.67.0` ([@simov](https://github.com/simov)) -* [`b49199a`](https://github.com/npm/npm/commit/b49199ac96dfb1afe5719286621a318576dd69ae) - [isaacs/rimraf#89](https://github.com/isaacs/rimraf/pull/89) `rimraf@2.4.4` - ([@zerok](https://github.com/zerok)) -* [`6632418`](https://github.com/npm/npm/commit/66324189a734a1665e1b78a06ba44089d9c3a11c) - [npm/nopt#51](https://github.com/npm/nopt/pull/51) `nopt@3.0.6` - ([@wbecker](https://github.com/wbecker)) -* [`f0a3b3e`](https://github.com/npm/npm/commit/f0a3b3e0dbbdaf11ec55dccd59cc21bfa05f9240) - [isaacs/once#7](https://github.com/isaacs/once/pull/7) `once@1.3.3` - ([@floatdrop](https://github.com/floatdrop)) - -### v3.5.2 (2015-12-03): - -Weeeelcome to another npm release! The short version is that we fixed -some `ENOENT` and some modules that resulted in modules going missing. We -also eliminated the use of MD5 in our code base to help folks using -Node.js in FIPS mode. And we fixed a bad URL in our license file. - -#### FIX URL IN LICENSE - -The license incorrectly identified the registry URL as -`registry.npmjs.com` and this has been corrected to `registry.npmjs.org`. - -* [`cb6d81b`](https://github.com/npm/npm/commit/cb6d81bd611f68c6126a90127a9dfe5604d46c8c) - [#10685](https://github.com/npm/npm/pull/10685) - Fix npm public registry URL in notices. - ([@kemitchell](https://github.com/kemitchell)) - -#### ENOENT? MORE LIKE ENOMOREBUGS - -The headliner this week was uncovered by the fixes to bundled dependency -handling over the past few releases. What had been a frustratingly -intermittent and hard to reproduce bug became something that happened -every time in Travis. This fixes another whole bunch of errors where you -would, while running an install have it crash with an `ENOENT` on -`rename`, or the install would finish but some modules would be -mysteriously missing and you'd have to install a second time. - -What's going on was a bit involved, so bear with me: - -`npm@3` generates a list of actions to take against the tree on disk. -With the exception of lifecycle scripts, it expects these all to be able -to act independently without interfering with each other. - -This means, for instance, that one should be able to upgrade `b` in -`a→b→c` without having npm reinstall `c`. - -That works fine by the way. - -But it also means that the move action should be able to move `b` in -`a→b→c@1.0.1` to `a→d→b→c@1.0.2` without moving or removing `c@1.0.1` and -while leaving `c@1.0.2` in place if it was already installed. - -That is, the `move` action moves an individual node, replacing itself -with an empty spot if it had children. This is not, as it might first -appear, something where you move an entire branch to another location on -the tree. - -When moving `b` we already took care to leave `c@1.0.1` in place so that -other moves (or removes) could handle it, but we were stomping on the -destination and so `c@1.0.2` was being removed. - -* [`f4385d8`](https://github.com/npm/npm/commit/f4385d8e7678349e75c80fae8a1f8f366f197937) - [#10655](https://github.com/npm/npm/pull/10655) - Preserve destination `node_modules` when moving. - ([@iarna](https://github.com/iarna)) - -There was also a bug with `remove` where it was pruning the entire tree -at the remove point, prior to running moves and adds. - -This was fine most of the time, but if we were moving one of the deps out -from inside it, kaboom. - -* [`19c626d`](https://github.com/npm/npm/commit/19c626d69888f0cdc6e960254b3fdf523ec4b52c) - [#10655](https://github.com/npm/npm/pull/10655) - Get rid of the remove commit phase– we could have it prune _just_ the - module being removed, but that isn't gaining us anything. - ([@iarna](https://github.com/iarna)) - -After all that, we shouldn't be upgrading the `add` of a bundled package -to a `move`. Moves save us from having to extract the package, but with a -bundled dependency it's included in another package already so that -doesn't gain us anything. - -* [`641a93b`](https://github.com/npm/npm/commit/641a93bd66a6aa4edf2d6167344b50d1a2afb593) - [#10655](https://github.com/npm/npm/pull/10655) - Don't convert adds to moves with bundled deps. - ([@iarna](https://github.com/iarna)) - -While I was in there, I also took some time to improve diagnostics to -make this sort of thing easier to track down in the future: - -* [`a04ec04`](https://github.com/npm/npm/commit/a04ec04804e562b511cd31afe89c8ba94aa37ff2) - [#10655](https://github.com/npm/ npm/pull/10655) - Wrap rename so errors have stack traces. - ([@iarna](https://github.com/iarna)) -* [`8ea142f`](https://github.com/npm/npm/commit/8ea142f896a2764290ca5472442b27b047ab7a1a) - [#10655](https://github.com/npm/npm/pull/10655) - Add silly logging so function is debuggable - ([@iarna](https://github.com/iarna)) - -#### NO MORE MD5 - -We updated modules that had been using MD5 for non-security purposes. -While this is perfectly safe, if you compile Node in FIPS-compliance mode -it will explode if you try to use MD5. We've replaced MD5 with Murmur, -which conveys our intent better and is faster to boot. - -* [`f068b26`](https://github.com/npm/npm/commit/f068b2661a8d0269c184867e003cd08cb6c56cf2) - [#10629](https://github.com/npm/npm/issues/10629) - `unique-filename@1.1.0` - ([@iarna](https://github.com/iarna)) -* [`dba1b24`](https://github.com/npm/npm/commit/dba1b2402aaa2beceec798d3bd22d00650e01069) - [#10629](https://github.com/npm/npm/issues/10629) - `write-file-atomic@1.1.4` - ([@othiym23](https://github.com/othiym23)) -* [`8347a30`](https://github.com/npm/npm/commit/8347a308ef0d2cf0f58f96bba3635af642ec611f) - [#10629](https://github.com/npm/npm/issues/10629) - `fs-write-stream-atomic@1.0.5` - ([@othiym23](https://github.com/othiym23)) - -#### DEPENDENCY UPDATES - -* [`9e2a2bb`](https://github.com/npm/npm/commit/9e2a2bb5bc71a0ab3b3637e8eec212aa22d5c99f) - [nodejs/node-gyp#831](https://github.com/nodejs/node-gyp/pull/831) - `node-gyp@3.2.1`: - Improved \*BSD support. - ([@bnoordhuis](https://github.com/bnoordhuis)) - -### v3.5.1 (2015-11-25): - -#### THE npm CLI !== THE npm REGISTRY !== npm, INC. - -npm-the-CLI is licensed under the terms of the [Artistic License -2.0](https://github.com/npm/npm/blob/8d79c1a39dae908f27eaa37ff6b23515d505ef29/LICENSE), -which is a liberal open-source license that allows you to take this code and do -pretty much whatever you like with it (that is, of course, not legal language, -and if you're doing anything with npm that leaves you in doubt about your legal -rights, please seek the review of qualified counsel, which is to say, not -members of the CLI team, none of whom have passed the bar, to my knowledge). At -the same time the primary registry the CLI uses when looking up and downloading -packages is a commercial service run by npm, Inc., and it has its own [Terms of -Use](https://www.npmjs.com/policies/terms). - -Aside from clarifying the terms of use (and trying to make sure they're more -widely known), the only recent changes to npm's licenses have been making the -split between the CLI and registry clearer. You are still free to do whatever -you like with the CLI's source, and you are free to view, download, and publish -packages to and from `registry.npmjs.org`, but now the existing terms under -which you can do so are more clearly documented. Aside from the two commits -below, see also [the release notes for -`npm@3.4.1`](https://github.com/npm/npm/releases/tag/v3.4.1), which is where -the split between the CLI's code and the terms of use for the registry was -first made more clear. - -* [`35a5dd5`](https://github.com/npm/npm/commit/35a5dd5abbfeec4f98a2b4534ec4ef5d16760581) - [#10532](https://github.com/npm/npm/issues/10532) Clarify that - `registry.npmjs.org` is the default, but that you're free to use the npm CLI - with whatever registry you wish. ([@kemitchell](https://github.com/kemitchell)) -* [`fa6b013`](https://github.com/npm/npm/commit/fa6b0136a0e4a19d8979b2013622e5ff3f0446f8) - [#10532](https://github.com/npm/npm/issues/10532) Having semi-duplicate - release information in `README.md` was confusing and potentially inaccurate, - so remove it. ([@kemitchell](https://github.com/kemitchell)) - -#### EASE UP ON WINDOWS BASH USERS - -It turns out that a fair number of us use bash on Windows (through MINGW or -bundled with Git, plz – Cygwin is still a bridge too far, for both npm and -Node.js). [@jakub-g](https://github.com/jakub-g) did us all a favor and relaxed -the check for npm completion to support MINGW bash. Thanks, Jakub! - -* [`09498e4`](https://github.com/npm/npm/commit/09498e45c5c9e683f092ab1372670f81db4762b6) - [#10156](https://github.com/npm/npm/issues/10156) completion: enable on - Windows in git bash ([@jakub-g](https://github.com/jakub-g)) - -#### THE ONGOING SAGA OF BUNDLED DEPENDENCIES - -`npm@3.5.0` fixed up a serious issue with how `npm@3.4.1` (and potentially -`npm@3.4.0` and `npm@3.3.12`) handled the case in which dependencies bundled -into a package tarball are handled improperly when one or more of their own -dependencies are older than what's latest on the registry. Unfortunately, in -fixing that (quite severe) regression (see [`npm@3.5.0`'s release notes' for -details](https://github.com/npm/npm/releases/tag/v3.5.0)), we introduced a new -(small, and fortunately cosmetic) issue where npm superfluously warns you about -bundled dependencies being stale. We have now fixed that, and hope that we -haven't introduced any _other_ regressions in the process. :D - -* [`20824a7`](https://github.com/npm/npm/commit/20824a75bf7639fb0951a588e3c017a370ae6ec2) - [#10501](https://github.com/npm/npm/issues/10501) Only warn about replacing - bundled dependencies when actually doing so. ([@iarna](https://github.com/iarna)) - -#### MAKE NODE-GYP A LITTLE BLUER - -* [`1d14d88`](https://github.com/npm/npm/commit/1d14d882c3b5af0a7fee46e8e0e343d07e4c38cb) - `node-gyp@3.2.0`: Support AIX, use `which` to find Python, updated to a newer - version of `gyp`, and more! ([@bnoordhuis](https://github.com/bnoordhuis)) - -#### A BOUNTEOUS THANKSGIVING CORNUCOPIA OF DOC TWEAKS - -These are great! Keep them coming! Sorry for letting them pile up so deep, -everybody. Also, a belated Thanksgiving to our Canadian friends, and a happy -Thanksgiving to all our friends in the USA. - -* [`4659f1c`](https://github.com/npm/npm/commit/4659f1c5ad617c46a5e89b48abf0b1c4e6f04307) - [#10244](https://github.com/npm/npm/issues/10244) In `npm@3`, `npm dedupe` - doesn't take any arguments, so update documentation to reflect that. - ([@bengotow](https://github.com/bengotow)) -* [`625a7ee`](https://github.com/npm/npm/commit/625a7ee6b4391e90cb28a95f20a73fd794e1eebe) - [#10250](https://github.com/npm/npm/issues/10250) Correct order of `org:team` - in `npm team` documentation. ([@louislarry](https://github.com/louislarry)) -* [`bea7f87`](https://github.com/npm/npm/commit/bea7f87399d784e3a6d3393afcca658a61a40d77) - [#10371](https://github.com/npm/npm/issues/10371) Remove broken / duplicate - link to tag. ([@WickyNilliams](https://github.com/WickyNilliams)) -* [`0a25e29`](https://github.com/npm/npm/commit/0a25e2956e9ddd4065d6bd929559321afc512fde) - [#10419](https://github.com/npm/npm/issues/10419) Remove references to - nonexistent `npm-rm(1)` documentation. ([@KenanY](https://github.com/KenanY)) -* [`19b94e1`](https://github.com/npm/npm/commit/19b94e1e6781fe2f98ada0a3f49a1bda25e3e32d) - [#10474](https://github.com/npm/npm/issues/10474) Clarify that install finds - dependencies in `package.json`. ([@sleekweasel](https://github.com/sleekweasel)) -* [`b25efc8`](https://github.com/npm/npm/commit/b25efc88067c843ffdda86ea0f50f95d136a638e) - [#9948](https://github.com/npm/npm/issues/9948) Encourage users to file an - issue, rather than emailing authors. ([@trodrigues](https://github.com/trodrigues)) -* [`24f4ced`](https://github.com/npm/npm/commit/24f4cedc83b10061f26362bf2f005ab935e0cbfe) - [#10497](https://github.com/npm/npm/issues/10497) Clarify what a package is - slightly. ([@aredridel](https://github.com/aredridel)) -* [`e8168d4`](https://github.com/npm/npm/commit/e8168d40caae00b2914ea09dbe4bd1b09ba3dcd5) - [#10539](https://github.com/npm/npm/issues/10539) Remove an extra, spuriously - capitalized letter. ([@alexlukin-softgrad](https://github.com/alexlukin-softgrad)) - -### v3.5.0 (2015-11-19): - -#### TEEN ORCS AT THE GATES - -This week heralds the general release of the primary npm registry's [new -support for private packages for -organizations](http://blog.npmjs.org/post/133542170540/private-packages-for-organizations). -For many potential users, it's the missing piece needed to make it easy for you -to move your organization's private work onto npm. And now it's here! The -functionality to support it has been in place in the CLI for a while now, -thanks to [@zkat](https://github.com/zkat)'s hard work. - -During our final testing before the release, our ace support team member -[@snopeks](https://github.com/snopeks) noticed that there had been some drift -between the CLI team's implementation and what npm was actually preparing to -ship. In the interests of everyone having a smooth experience with this -_extremely useful_ new feature, we quickly made a few changes to square up the -CLI and the web site experiences. - -* [`d7fb92d`](https://github.com/npm/npm/commit/d7fb92d1c53ba5196ad6dd2101a06792a4c0412b) - [#9327](https://github.com/npm/npm/issues/9327) `npm access` no longer has - problems when run in a directory that doesn't contain a `package.json`. - ([@othiym23](https://github.com/othiym23)) -* [`17df3b5`](https://github.com/npm/npm/commit/17df3b5d5dffb2e9c223b9cfa2d5fd78c39492a4) - [npm/npm-registry-client#126](https://github.com/npm/npm-registry-client/issues/126) - `npm-registry-client@7.0.8`: Allow the CLI to grant, revoke, and list - permissions on unscoped (public) packages on the primary registry. - ([@othiym23](https://github.com/othiym23)) - -#### NON-OPTIONAL INSTALLS, DEFINITELY NON-OPTIONAL - -* [`180263b`](https://github.com/npm/npm/commit/180263b) - [#10465](https://github.com/npm/npm/pull/10465) - When a non-optional dep fails, we check to see if it's only required by - ONLY optional dependencies. If it is, we make it fail all the deps in - that chain (and roll them back). If it isn't then we give an error. - - We do this by walking up through all of our ancestors until we either hit an - optional dependency or the top of the tree. If we hit the top, we know to - give the error. - - If you installed a module by hand but didn't `--save` it, your module - won't have the top of the tree as an anscestor and so this code was - failing to abort the install with an error - - This updates the logic so that hitting the top OR a module that was - requested by the user will trigger the error message. - ([@iarna](https://github.com/iarna)) - -* [`b726a0e`](https://github.com/npm/npm/commit/b726a0e) - [#9204](https://github.com/npm/npm/issues/9204) - Ideally we would like warnings about your install to come AFTER the - output from your compile steps or the giant tree of installed modules. - - To that end, we've moved warnings about failed optional deps to the show - after your install completes. - ([@iarna](https://github.com/iarna)) - -#### OVERRIDING BUNDLING - -* [`aed71fb`](https://github.com/npm/npm/commit/aed71fb) - [#10482](https://github.com/npm/npm/issues/10482) - We've been in our bundled modules code a lot lately, and our last go at - this introduced a new bug, where if you had a module `a` that bundled - a module `b`, which in turn required `c`, and the version of `c` that - got bundled wasn't compatible with `b`'s `package.json`, we would then - install a compatible version of `c`, but also erase `b` at the same time. - - This fixes that. It also reworks our bundled module support to be much - closer to being in line with how we handle non-bundled modules and we're - hopeful this will reduce any future errors around them. The new structure - is hopefully much easier to reason about anyway. - ([@iarna](https://github.com/iarna)) - -#### A BRIEF NOTE ON NPM'S BACKWARDS COMPATIBILITY - -We don't often have much to say about the changes we make to our internal -testing and tooling, but I'm going to take this opportunity to reiterate that -npm tries hard to maintain compatibility with a wide variety of Node versions. -As this change shows, we want to ensure that npm works the same across: - -* Node.js 0.8 -* Node.js 0.10 -* Node.js 0.12 -* the latest io.js release -* Node.js 4 LTS -* Node.js 5 - -Contributors who send us pull requests often notice that it's very rare that -our tests pass across all of those versions (ironically, almost entirely due to -the packages we use for testing instead of any issues within npm itself). We're -currently beginning an effort, lasting the rest of 2015, to clean up our test -suite, and not only get it passing on all of the above versions of Node.js, but -working solidly on Windows as well. This is a compounding form of technical -debt that we're finally paying down, and our hope is that cleaning up the tests -will produce a more robust CLI that's a lot easier to write patches for. - -* [`791ec6b`](https://github.com/npm/npm/commit/791ec6b1bac0d1df59f5ebb4ccd16a29a5dc73f0) - [#10233](https://github.com/npm/npm/issues/10233) Update Node.js versions - that Travis uses to test npm. ([@iarna](https://github.com/iarna)) - -#### 0.8 + npm <1.4 COMPATIBLE? SURE WHY NOT - -Hey, you found the feature we added! - -* [`231c58a`](https://github.com/npm/npm/commit/231c58a) - [#10337](https://github.com/npm/npm/pull/10337) - Add two new flags, first `--legacy-bundling` which installs your - dependencies such that if you bundle those dependencies, npm versions - prior to `1.4` can still install them. This eliminates all automatic - deduping. - - Second, `--global-style` which will install modules in your `node_modules` - folder with the same layout as global modules. Only your direct - dependencies will show in `node_modules` and everything they depend on - will be flattened in their `node_modules` folders. This obviously will - elminate some deduping. - ([@iarna](https://github.com/iarna)) - -#### TYPOS IN THE LICENSE, OH MY - -* [`8d79c1a`](https://github.com/npm/npm/commit/8d79c1a39dae908f27eaa37ff6b23515d505ef29) - [#10478](https://github.com/npm/npm/issues/10478) Correct two typos in npm's - LICENSE. ([@jorrit](https://github.com/jorrit)) - -### v3.4.1 (2015-11-12): - -#### ASK FOR NOTHING, GET LATEST - -When you run `npm install foo`, you probably expect that you'll get the -`latest` version of `foo`, whatever that is. And good news! That's what -this change makes it do. - -We _think_ this is what everyone wants, but if this causes problems for -you, we want to know! If it proves problematic for people we will consider -reverting it (preferrably before this becomes `npm@latest`). - -Previously, when you ran `npm install foo` we would act as if you typed -`npm install foo@*`. Now, like any range-type specifier, in addition to -matching the range, it would also have to be `<=` the value of the -`latest` dist-tag. Further, it would exclude prerelease versions from the -list of versions considered for a match. - -This worked as expected most of the time, unless your `latest` was a -prerelease version, in which case that version wouldn't be used, to -everyone's surprise. Worse, if all your versions were prerelease versions -it would just refuse to install anything. (We fixed that in -[`npm@3.2.2`](https://github.com/npm/npm/releases/tag/v3.2.2) with -[`e4a38080`](https://github.com/npm/npm/commit/e4a38080).) - -* [`1e834c2`](https://github.com/npm/npm/commit/1e834c2) - [#10189](https://github.com/npm/npm/issues/10189) - `npm-package-arg@4.1.0` Change the default version from `*` to `latest`. - ([@zkat](https://github.com/zkat)) - -#### BUGS - -* [`bec4a84`](https://github.com/npm/npm/commit/bec4a84) - [#10338](https://github.com/npm/npm/pull/10338) - Failed installs could result in more rollback (removal of just installed - packages) than we intended. This bug was first introduced by - [`83975520`](https://github.com/npm/npm/commit/83975520). - ([@iarna](https://github.com/iarna)) -* [`06c732f`](https://github.com/npm/npm/commit/06c732f) - [#10338](https://github.com/npm/npm/pull/10338) - Updating a module could result in the module stealing some of its - dependencies from the top level, potentially breaking other modules or - resulting in many redundent installations. This bug was first introduced - by [`971fd47a`](https://github.com/npm/npm/commit/971fd47a). - ([@iarna](https://github.com/iarna)) -* [`5653366`](https://github.com/npm/npm/commit/5653366) - [#9980](https://github.com/npm/npm/issues/9980) - npm, when removing a module, would refuse to remove the symlinked - binaries if the module itself was symlinked as well. npm goes to some - effort to ensure that it doesn't remove things that aren't is, and this - code was being too conservative. This code has been rewritten to be - easier to follow and to be unit-testable. - ([@iarna](https://github.com/iarna)) - -#### LICENSE CLARIFICATION - -* [`80acf20`](https://github.com/npm/npm/commit/80acf20) - [#10326](https://github.com/npm/npm/pull/10326) - Update npm's licensing to more completely cover all of the various - things that are npm. - ([@kemitchell](https://github.com/kemitchell)) - -#### CLOSER TO GREEN TRAVIS - -* [`fc12da9`](https://github.com/npm/npm/commit/fc12da9) - [#10232](https://github.com/npm/npm/pull/10232) - `nock@1.9.0` - Downgrade nock to a version that doesn't depend on streams2 in core so - that more of our tests can pass in 0.8. - ([@iarna](https://github.com/iarna)) - -### v3.4.0 (2015-11-05): - -#### A NEW FEATURE - -This was a group effort, with [@isaacs](https://github.com/isaacs) -dropping the implementation in back in August. Then, a few days ago, -[@ashleygwilliams](https://github.com/ashleygwilliams) wrote up docs and -just today [@othiym23](https://github.com/othiym23) wrote a test. - -It's a handy shortcut to update a dependency and then make sure tests -still pass. - -This new command: - -``` -npm install-test x -``` - -is the equivalent of running: - -``` -npm install x && npm test -``` - -* [`1ac3e08`](https://github.com/npm/npm/commit/1ac3e08) - [`bcb04f6`](https://github.com/npm/npm/commit/bcb04f6) - [`b6c17dd`](https://github.com/npm/npm/commit/b6c17dd) - [#9443](https://github.com/npm/npm/pull/9443) - Add `npm install-test` command, alias `npm it`. - ([@isaacs](https://github.com/isaacs), - [@ashleygwilliams](https://github.com/ashleygwilliams), - [@othiym23](https://github.com/othiym23)) - -#### BUG FIXES VIA DEPENDENCY UPDATES - -* [`31c0080`](https://github.com/npm/npm/commit/31c0080) - [#8640](https://github.com/npm/npm/issues/8640) - [npm/normalize-package-data#69](https://github.com/npm/normalize-package-data/pull/69) - `normalize-package-data@2.3.5`: - Fix a bug where if you didn't specify the name of a scoped module's - binary, it would install it such that it was impossible to call it. - ([@iarna](https://github.com/iarna)) -* [`02b37bc`](https://github.com/npm/npm/commit/02b37bc) - [npm/fstream-npm#14](https://github.com/npm/fstream-npm/pull/14) - `fstream-npm@1.0.7`: - Only filter `config.gypi` when it's in the build directory. - ([@mscdex](https://github.com/mscdex)) -* [`accb9d2`](https://github.com/npm/npm/commit/accb9d2) - [npm/fstream-npm#15](https://github.com/npm/fstream-npm/pull/15) - `fstream-npm@1.0.6`: - Stop including directories that happened to have names matching whitelisted - npm files in npm module tarballs. The most common cause was that if you had - a README directory then everything in it would be included if wanted it - or not. - ([@taion](https://github.com/taion)) - -#### DOCUMENTATION FIXES - -* [`7cf6366`](https://github.com/npm/npm/commit/7cf6366) - [#10036](https://github.com/npm/npm/pull/10036) - Fix typo / over-abbreviation. - ([@ifdattic](https://github.com/ifdattic)) -* [`d0ad8f4`](https://github.com/npm/npm/commit/d0ad8f4) - [#10176](https://github.com/npm/npm/pull/10176) - Fix broken link, scopes => scope. - ([@ashleygwilliams](https://github.com/ashleygwilliams)) -* [`d623783`](https://github.com/npm/npm/commit/d623783) - [#9460](https://github.com/npm/npm/issue/9460) - Specifying the default command run by "npm start" and the - fact that you can pass it arguments. - ([@JuanCaicedo](https://github.com/JuanCaicedo)) - -#### DEPENDENCY UPDATES FOR THEIR OWN SAKE - -* [`0a4c29e`](https://github.com/npm/npm/commit/0a4c29e) - [npm/npmlog#19](https://github.com/npm/npmlog/pull/19) - `npmlog@2.0.0`: Make it possible to emit log messages with `error` as the - prefix. - ([@bengl](https://github.com/bengl)) -* [`9463ce9`](https://github.com/npm/npm/commit/9463ce9) - `read-package-json@2.0.2`: - Minor cleanups. - ([@KenanY](https://github.com/KenanY)) - -### v3.3.12 (2015-11-02): - -Hi, a little hot-fix release for a bug introduced in 3.3.11. The ENOENT fix -last week ([`f0e2088`](https://github.com/npm/npm/commit/f0e2088)) broke -upgrades of modules that have bundled dependencies (like `npm`, augh!) - -* [`aedf7cf`](https://github.com/npm/npm/commit/aedf7cf) - [#10192](//github.com/npm/npm/pull/10192) - If a bundled module is going to be replacing a module that's currently on - disk (for instance, when you upgrade a module that includes bundled - dependencies) we want to select the version from the bundle in preference - over the one that was there previously. - ([@iarna](https://github.com/iarna)) - -### v3.3.11 (2015-10-29): - -This is a dependency update week, so that means no PRs from our lovely -users. Look for those next week. As it happens, the dependencies updated -were just devdeps, so nothing for you all to worry about. - -But the bug fixes, oh geez, I tracked down some really long standing stuff -this week!! The headliner is those intermittent `ENOENT` errors that no one -could reproduce consistently? I think they're nailed! But also pretty -important, the bug where `hapi` would install w/ a dep missing? Squashed! - -#### EEEEEEENOENT - -* [`f0e2088`](https://github.com/npm/npm/commit/f0e2088) - [#10026](https://github.com/npm/npm/issues/10026) - Eliminate some, if not many, of the `ENOENT` errors `npm@3` has seen over - the past few months. This was happening when npm would, in its own mind, - correct a bundled dependency, due to a `package.json` specifying an - incompatible version. Then, when npm extracted the bundled version, what - was on disk didn't match its mind and… well, when it tried to act on what - was in its mind, we got an `ENOENT` because it didn't actually exist on - disk. - ([@iarna](https://github.com/iarna)) - -#### PARTIAL SHRINKWRAPS, NO LONGER A BAD DAY - -* [`712fd9c`](https://github.com/npm/npm/commit/712fd9c) - [#10153](https://github.com/npm/npm/pull/10153) - Imagine that you have a module, let's call it `fun-time`, and it depends - on two dependencies, `need-fun@1` and `need-time`. Further, `need-time` - requires `need-fun@2`. So after install the logical tree will look like - this: - - ``` - fun-time - ├── need-fun@1 - └── need-time - └── need-fun@2 - ``` - - Now, the `fun-time` author also distributes a shrinkwrap, but it only includes - the `need-fun@1` in it. - - Resolving dependencies would look something like this: - - 1. Require `need-fun@1`: Use version from shrinkwrap (ignoring version) - 2. Require `need-time`: User version in package.json - 1. Require `need-fun@2`: Use version from shrinkwrap, which oh hey, is - already installed at the top level, so no further action is needed. - - Which results in this tree: - - ``` - fun-time - ├── need-fun@1 - └── need-time - ``` - - We're ignoring the version check on things specified in the shrinkwrap - so that you can override the version that will be installed. This is - because you may want to use a different version than is specified - by your dependencies' dependencies' `package.json` files. - - To fix this, we now only allow overrides of a dependency version when - that dependency is a child (in the tree) of the thing that requires it. - This means that when we're looking for `need-fun@2` we'll see `need-fun@1` - and reject it because, although it's from a shrinkwrap, it's parent is - `fun-time` and the package doing the requiring is `need-time`. - - ([@iarna](https://github.com/iarna)) - -#### STRING `package.bin` AND NON-NPMJS REGISTRIES - -* [`3de1463`](https://github.com/npm/npm/commit/3de1463) - [#9187](https://github.com/npm/npm/issues/9187) - If you were using a module with the `bin` field in your `package.json` set - to a string on a non-npmjs registry then npm would crash, due to the our - expectation that the `bin` field would be an object. We now pass all - `package.json` data through a routine that normalizes the format, - including the `bin` field. (This is the same routine that your - `package.json` is passed through when read off of disk or sent to the - registry for publication.) Doing this also ensures that older modules on - npm's own registry will be treated exactly the same as new ones. (In the - past we weren't always super careful about scrubbing `package.json` data - on publish. And even when we were, those rules have subtly changed over - time.) - ([@iarna](https://github.com/iarna)) - -### v3.3.10 (2015-10-22): - -Hey you all! Welcome to a busy bug fix and PR week. We've got changes -to how `npm install` replaces dependencies during updates, improvements -to shrinkwrap behavior, and all sorts of doc updates. - -In other news, `npm@3` landed in node master in preparation for `node@5` -with [`41923c0`](https://github.com/nodejs/node/commit/41923c0). - -#### UPDATED DEPS NOW MAKE MORE SENSE - -* [`971fd47`](https://github.com/npm/npm/commit/971fd47) - [#9929](https://github.com/npm/npm/pull/9929) - Make the tree more consistent by doing updates in place. This means - that trees after a dependency version update will more often look - the same as after a fresh install. - ([@iarna](https://github.com/iarna)) - -#### SHRINKWRAP + DEV DEPS NOW RESPECTED - -* [`eb28a8c`](https://github.com/npm/npm/commit/eb28a8c) - [#9647](https://github.com/npm/npm/issues/9647) - If a shrinkwrap already has dev deps, don't throw them away when - someone later runs `npm install --save`. - ([@iarna](https://github.com/iarna)) - -#### FANTASTIC DOCUMENTATION UPDATES - -* [`291162c`](https://github.com/npm/npm/commit/291162c) - [#10021](https://github.com/npm/npm/pull/10021) - Improve wording in the FAQ to be more empathetic and less jokey. - ([@TaMe3971](https://github.com/TaMe3971)) -* [`9a28c54`](https://github.com/npm/npm/commit/9a28c54) - [#10020](https://github.com/npm/npm/pull/10020) - Document the command to see the list of config defaults in the section - on config defaults. - ([@lady3bean](https://github.com/lady3bean)) -* [`8770b0a`](https://github.com/npm/npm/commit/8770b0a) - [#7600](https://github.com/npm/npm/issues/7600) - Add shortcuts to all command documentation. - ([@RichardLitt](https://github.com/RichardLitt)) -* [`e9b7d0d`](https://github.com/npm/npm/commit/e9b7d0d) - [#9950](https://github.com/npm/npm/pull/9950) - On errors that can be caused by outdated node & npm, suggest updating - as a part of the error message. - ([@ForbesLindesay](https://github.com/ForbesLindesay)) - -#### NEW STANDARD HAS ALWAYS BEEN STANDARD - -* [`40c1b0f`](https://github.com/npm/npm/commit/40c1b0f) - [#9954](https://github.com/npm/npm/pull/9954) - Update to `standard@5` and reformat the source to work with it. - ([@cbas](https://github.com/cbas)) - -### v3.3.9 (2015-10-15): - -This week sees a few small changes ready to land: - -#### TRAVIS NODE 0.8 BUILDS REJOICE - -* [`25a234b`](https://github.com/npm/npm/commit/25a234b) - [#9668](https://github.com/npm/npm/issues/9668) - Install `npm@3`'s bundled dependencies with `npm@2`, so that the ancient npm - that ships with node 0.8 can install `npm@3` directly. - ([@othiym23](https://github.com/othiym23)) - -#### SMALL ERROR MESSAGE IMPROVEMENT - -* [`a332f61`](https://github.com/npm/npm/commit/a332f61) - [#9927](https://github.com/npm/npm/pull/9927) - Update error messages where we report a list of versions that you could - have installed to show this as a comma separated list instead of as JSON. - ([@iarna](https://github.com/iarna)) - -#### DEPENDENCY UPDATES - -* [`4cd74b0`](https://github.com/npm/npm/commit/4cd74b0) - `nock@2.15.0` - ([@pgte](https://github.com/pgte)) -* [`9360976`](https://github.com/npm/npm/commit/9360976) - `tap@2.1.1` - ([@isaacs](https://github.com/isaacs)) -* [`1ead0a4`](https://github.com/npm/npm/commit/1ead0a4) - `which@1.2.0` - ([@isaacs](https://github.com/isaacs)) -* [`759f88a`](https://github.com/npm/npm/commit/759f88a) - `has-unicode@1.0.1` - ([@iarna](https://github.com/iarna)) - -### v3.3.8 (2015-10-12): - -This is a small update release, we're reverting -[`22a3af0`](https://github.com/npm/npm/commit/22a3af0) from last week's -release, as it is resulting in crashes. We'll revisit this PR during this -week. - -* [`ddde1d5`](https://github.com/npm/npm/commit/ddde1d5) - Revert "lifecycle: Swap out custom logic with add-to-path module" - ([@iarna](https://github.com/iarna)) - -### v3.3.7 (2015-10-08): - -So, as Kat mentioned in last week's 2.x release, we're now swapping weeks -between accepting PRs and doing dependency updates, in an effort to keep -release management work from taking over our lives. This week is a PR week, -so we've got a bunch of goodies for you. - -Relatedly, this week means 3.3.6 is now `latest` and it is WAY faster than -previous 3.x releases. Give it or this a look! - -#### OPTIONAL DEPS, MORE OPTIONAL - -* [`2289234`](https://github.com/npm/npm/commit/2289234) - [#9643](https://github.com/npm/npm/issues/9643) - [#9664](https://github.com/npm/npm/issues/9664) - `npm@3` was triggering `npm@2`'s build mechanics when it was linking bin files - into the tree. This was originally intended to trigger rebuilds of - bundled modules, but `npm@3`'s flat module structure confused it. This - caused two seemingly unrelated issues. First, failing optional - dependencies could under some circumstances (if they were built during - this phase) trigger a full build failure. And second, rebuilds were being - triggered of already installed modules, again, in some circumstances. - Both of these are fixed by disabling the `npm@2` mechanics and adding a - special rebuild phase for the initial installation of bundled modules. - ([@iarna](https://github.com/iarna)) - -#### BAD NAME, NO CRASH - -* [`b78fec9`](https://github.com/npm/npm/commit/b78fec9) - [#9766](https://github.com/npm/npm/issues/9766) - Refactor all attempts to read the module name or package name to go via a - single function, with appropriate guards unusual circumstances where they - aren't where we expect them. This ultimately will ensure we don't see any - more recurrences of the `localeCompare` error and related crashers. - ([@iarna](https://github.com/iarna)) - -#### MISCELLANEOUS BUG FIXES - -* [`22a3af0`](https://github.com/npm/npm/commit/22a3af0) - [#9553](https://github.com/npm/npm/pull/9553) - Factor the lifecycle code to manage paths out into its own module and use that. - ([@kentcdodds](https://github.com/kentcdodds)) -* [`6a29fe3`](https://github.com/npm/npm/commit/6a29fe3) - [#9677](https://github.com/npm/npm/pull/9677) - Start testing our stuff in node 4 on travis - ([@fscherwi](https://github.com/fscherwi)) -* [`508c6a4`](https://github.com/npm/npm/commit/508c6a4) - [#9669](https://github.com/npm/npm/issues/9669) - Make `recalculateMetadata` more resilient to unexpectedly bogus dependency specifiers. - ([@tmct](https://github.com/tmct)) -* [`3c44763`](https://github.com/npm/npm/commit/3c44763) - [#9643](https://github.com/npm/npm/issues/9463) - Update `install --only` to ignore the `NODE_ENV` var and _just_ use the only - value, if specified. - ([@watilde](https://github.com/watilde)) -* [`87336c3`](https://github.com/npm/npm/commit/87336c3) - [#9879](https://github.com/npm/npm/pull/9879) - `npm@3`'s shrinkwrap was refusing to shrinkwrap if an optional dependency - was missing– patch it to allow this. - ([@mantoni](https://github.com/mantoni)) - -#### DOCUMENTATION UPDATES - -* [`82659fd`](https://github.com/npm/npm/commit/82659fd) - [#9208](https://github.com/npm/npm/issues/9208) - Correct the npm style guide around quote usage - ([@aaroncrows](https://github.com/aaroncrows)) -* [`a69c83a`](https://github.com/npm/npm/commit/a69c83a) - [#9645](https://github.com/npm/npm/pull/9645) - Fix spelling error in README - ([@dkoleary88](https://github.com/dkoleary88)) -* [`f2cf054`](https://github.com/npm/npm/commit/f2cf054) - [#9714](https://github.com/npm/npm/pull/9714) - Fix typos in our documentation - ([@reggi](https://github.com/reggi)) -* [`7224bef`](https://github.com/npm/npm/commit/7224bef) - [#9759](https://github.com/npm/npm/pull/9759) - Fix typo in npm-team docs - ([@zkat](https://github.com/zkat)) -* [`7e6e007`](https://github.com/npm/npm/commit/7e6e007) - [#9820](https://github.com/npm/npm/pull/9820) - Correct documentation as to `binding.gyp` - ([@KenanY](https://github.com/KenanY)) - -### v3.3.6 (2015-09-30): - -I have the most exciting news for you this week. YOU HAVE NO IDEA. Well, -ok, maybe you do if you follow my twitter. - -Performance just got 5 bazillion times better (under some circumstances, -ymmv, etc). So– my test scenario is our very own website. In `npm@2`, on my -macbook running `npm ls` takes about 5 seconds. Personally it's more than -I'd like, but it's entire workable. In `npm@3` it has been taking _50_ seconds, -which is appalling. But after doing some work on Monday isolating the performance -issues I've been able to reduce `npm@3`'s run time back down to 5 seconds. - -Other scenarios were even worse, there was one that until now in `npm@3` that -took almost 6 minutes, and has been reduced to 14 seconds. - -* [`7bc0d4c`](https://github.com/npm/npm/commit/7bc0d4c) - [`cf42217`](https://github.com/npm/npm/commit/cf42217) - [#8826](https://github.com/npm/npm/issues/8826) - Stop using deepclone on super big datastructures. Avoid cloning - all-together even when that means mutating things, when possible. - Otherwise use a custom written tree-copying function that understands - the underlying datastructure well enough to only copy what we absolutely - need to. - ([@iarna](https://github.com/iarna)) - -In other news, look for us this Friday and Saturday at the amazing -[Open Source and Feelings](https://osfeels.com) conference, where something like a -third of the company will be attending. - -#### And finally a dependency update - -* [`a6a4437`](https://github.com/npm/npm/commit/a6a4437) - `glob@5.0.15` - ([@isaacs](https://github.com/isaacs)) - -#### And some subdep updates - -* [`cc5e6a0`](https://github.com/npm/npm/commit/cc5e6a0) - `hoek@2.16.3` - ([@nlf](https://github.com/nlf)) -* [`912a516`](https://github.com/npm/npm/commit/912a516) - `boom@2.9.0` - ([@arb](https://github.com/arb)) -* [`63944e9`](https://github.com/npm/npm/commit/63944e9) - `bluebird@2.10.1` - ([@petkaantonov](https://github.com/petkaantonov)) -* [`ef16003`](https://github.com/npm/npm/commit/ef16003) - `mime-types@2.1.7` & `mime-db@1.19.0` - ([@dougwilson](https://github.com/dougwilson)) -* [`2b8c0dd`](https://github.com/npm/npm/commit/2b8c0dd) - `request@2.64.0` - ([@simov](https://github.com/simov)) -* [`8139124`](https://github.com/npm/npm/commit/8139124) - `brace-expansion@1.1.1` - ([@juliangruber](https://github.com/juliangruber)) - -### v3.3.5 (2015-09-24): - -Some of you all may not be aware, but npm is ALSO a company. I tell you this -'cause npm-the-company had an all-staff get together this week, flying in -our remote folks from around the world. That was great, but it also -basically eliminated normal work on Monday and Tuesday. - -Still, we've got a couple of really important bug fixes this week. Plus a -lil bit from the [now LTS 2.x branch](https://github.com/npm/npm/releases/tag/v2.14.6). - -#### ATTENTION WINDOWS USERS - -If you previously updated to npm 3 and you try to update again, you may get -an error messaging telling you that npm won't install npm into itself. Until you -are at 3.3.5 or greater, you can get around this with `npm install -f -g npm`. - -* [`bef06f5`](https://github.com/npm/npm/commit/bef06f5) - [#9741](https://github.com/npm/npm/pull/9741) Uh... so... er... it - seems that since `npm@3.2.0` on Windows with a default configuration, it's - been impossible to update npm. Well, that's not actually true, there's a - work around (see above), but it shouldn't be complaining in the first - place. - ([@iarna](https://github.com/iarna)) - -#### STACK OVERFLOWS ON PUBLISH - -* [`330b496`](https://github.com/npm/npm/commit/330b496) - [#9667](https://github.com/npm/npm/pull/9667) - We were keeping track of metadata about your project while packing the - tree in a way that resulted in this data being written to packed tar files - headers. When this metadata included cycles, it resulted in the the tar - file entering an infinite recursive loop and eventually crashing with a - stack overflow. - - I've patched this by keeping track of your metadata by closing over the - variables in question instead, and I've further restricted gathering and - tracking the metadata to times when it's actually needed. (Which is only - if you need bundled modules.) - ([@iarna](https://github.com/iarna)) - -#### LESS CRASHY ERROR MESSAGES ON BAD PACKAGES - -* [`829921f`](https://github.com/npm/npm/commit/829921f) - [#9741](https://github.com/npm/npm/pull/9741) - Packages with invalid names or versions were crashing the installer. These - are now captured and warned as was originally intended. - ([@iarna](https://github.com/iarna)) - -#### ONE DEPENDENCY UPDATE - -* [`963295c`](https://github.com/npm/npm/commit/963295c) - `npm-install-checks@2.0.1` - ([@iarna](https://github.com/iarna)) - -#### AND ONE SUBDEPENDENCY - -* [`448737d`](https://github.com/npm/npm/commit/448737d) - `request@2.63.0` - ([@simov](https://github.com/simov)) - -### v3.3.4 (2015-09-17): - -This is a relatively quiet release, bringing a few bug fixes and -some module updates, plus via the -[2.14.5 release](https://github.com/npm/npm/releases/tag/v2.14.5) -some forward compatibility fixes with versions of Node that -aren't yet released. - -#### NO BETA NOTICE THIS TIME!! - -But, EXCITING NEWS FRIENDS, this week marks the exit of `npm@3` -from beta. This means that the week of this release, -[v3.3.3](https://github.com/npm/npm/releases/tag/v3.3.3) will -become `latest` and this version (v3.3.4) will become `next`!! - -#### CRUFT FOR THE CRUFT GODS - -What I call "cruft", by which I mean, files sitting around in -your `node_modules` folder, will no longer produce warnings in -`npm ls` nor during `npm install`. This brings `npm@3`'s behavior -in line with `npm@2`. - -* [`a127801`](https://github.com/npm/npm/commit/a127801) - [#9285](https://github.com/npm/npm/pull/9586) - Stop warning about cruft in module directories. - ([@iarna](https://github.com/iarna)) - -#### BETTER ERROR MESSAGE - -* [`95ee92c`](https://github.com/npm/npm/commit/95ee92c) - [#9433](https://github.com/npm/npm/issues/9433) - Give better error messages for invalid URLs in the dependecy - list. - ([@jamietre](https://github.com/jamietre)) - -#### MODULE UPDATES - -* [`ebb92ca`](https://github.com/npm/npm/commit/ebb92ca) - `retry@0.8.0` ([@tim-kos](https://github.com/tim-kos)) -* [`55f1285`](https://github.com/npm/npm/commit/55f1285) - `normalize-package-data@2.3.4` ([@zkat](https://github.com/zkat)) -* [`6d4ebff`](https://github.com/npm/npm/commit/6d4ebff) - `sha@2.0.1` ([@ForbesLindesay](https://github.com/ForbesLindesay)) -* [`09a9c7a`](https://github.com/npm/npm/commit/09a9c7a) - `semver@5.0.3` ([@isaacs](https://github.com/isaacs)) -* [`745000f`](https://github.com/npm/npm/commit/745000f) - `node-gyp@3.0.3` ([@rvagg](https://github.com/rvagg)) - -#### SUB DEP MODULE UPDATES - -* [`578ca25`](https://github.com/npm/npm/commit/578ca25) - `request@2.62.0` ([@simov](https://github.com/simov)) -* [`1d8996e`](https://github.com/npm/npm/commit/1d8996e) - `jju@1.2.1` ([@rlidwka](https://github.com/rlidwka)) -* [`6da1ba4`](https://github.com/npm/npm/commit/6da1ba4) - `hoek@2.16.2` ([@nlf](https://github.com/nlf)) - -### v3.3.3 (2015-09-10): - -This short week brought us brings us a few small bug fixes, a -doc change and a whole lotta dependency updates. - -Plus, as usual, this includes a forward port of everything in -[`npm@2.14.4`](https://github.com/npm/npm/releases/tag/v2.14.4). - -#### BETA BUT NOT FOREVER - -**_THIS IS BETA SOFTWARE_**. `npm@3` will remain in beta until -we're confident that it's stable and have assessed the effect of -the breaking changes on the community. During that time we will -still be doing `npm@2` releases, with `npm@2` tagged as `latest` -and `next`. We'll _also_ be publishing new releases of `npm@3` -as `npm@v3.x-next` and `npm@v3.x-latest` alongside those -versions until we're ready to switch everyone over to `npm@3`. -We need your help to find and fix its remaining bugs. It's a -significant rewrite, so we are _sure_ there still significant -bugs remaining. So do us a solid and deploy it in non-critical -CI environments and for day-to-day use, but maybe don't use it -for production maintenance or frontline continuous deployment -just yet. - -#### REMOVE INSTALLED BINARIES ON WINDOWS - -So waaaay back at the start of August, I fixed a bug with -[#9198](https://github.com/npm/npm/pull/9198). That fix made it -so that if you had two modules installed that both installed the -same binary (eg `gulp` & `gulp-cli`), that removing one wouldn't -remove the binary if it was owned by the other. - -It did this by doing some hocus-pocus that, turns out, was -Unix-specific, so on Windows it just threw up its hands and -stopped removing installed binaries at all. Not great. - -So today we're fixing that– it let us maintain the same safety -that we added in #9198, but ALSO works with Windows. - -* [`25fbaed`](https://github.com/npm/npm/commit/25fbaed) - [#9394](https://github.com/npm/npm/issues/9394) - Treat cmd-shims the same way we treat symlinks - ([@iarna](https://github.com/iarna)) - -#### API DOCUMENTATION HAS BEEN SACRIFICED THE API GOD - -The documentation of the internal APIs of npm is going away, -because it would lead people into thinking they should integrate -with npm by using it. Please don't do that! In the future, we'd -like to give you a suite of stand alone modules that provide -better, more stand alone APIs for your applications to build on. -But for now, call the npm binary with `process.exec` or -`process.spawn` instead. - -* [`2fb60bf`](https://github.com/npm/npm/commit/2fb60bf) - Remove misleading API documentation - ([@othiym23](https://github.com/othiym23)) - -#### ALLOW `npm link` ON WINDOWS W/ PRERELEASE VERSIONS OF NODE - -We never meant to have this be a restriction in the first place -and it was only just discovered with the recent node 4.0.0 -release candidate. - -* [`6665e54`](https://github.com/npm/npm/commit/6665e54) - [#9505](https://github.com/npm/npm/pull/9505) - Allow npm link to run on Windows with prerelease versions of - node - ([@jon-hall](https://github.com/jon-hall)) - -#### graceful-fs update - -We're updating all of npm's deps to use the most recent -`graceful-fs`. This turns out to be important for future not yet -released versions of node, because older versions monkey-patch -`fs` in ways that will break in the future. Plus it ALSO makes -use of `process.binding` which is an internal API that npm -definitely shouldn't have been using. We're not done yet, but -this is the bulk of them. - -* [`e7bc98e`](https://github.com/npm/npm/commit/e7bc98e) - `write-file-atomic@1.1.3` - ([@iarna](https://github.com/iarna)) -* [`7417600`](https://github.com/npm/npm/commit/7417600) - `tar@2.2.1` - ([@zkat](https://github.com/zkat)) -* [`e4e9d40`](https://github.com/npm/npm/commit/e4e9d40) - `read-package-json@2.0.1` - ([@zkat](https://github.com/zkat)) -* [`481611d`](https://github.com/npm/npm/commit/481611d) - `read-installed@4.0.3` - ([@zkat](https://github.com/zkat)) -* [`0dabbda`](https://github.com/npm/npm/commit/0dabbda) - `npm-registry-client@7.0.4` - ([@zkat](https://github.com/zkat)) -* [`c075a91`](https://github.com/npm/npm/commit/c075a91) - `fstream@1.0.8` - ([@zkat](https://github.com/zkat)) -* [`2e4341a`](https://github.com/npm/npm/commit/2e4341a) - `fs-write-stream-atomic@1.0.4` - ([@zkat](https://github.com/zkat)) -* [`18ad16e`](https://github.com/npm/npm/commit/18ad16e) - `fs-vacuum@1.2.7` - ([@zkat](https://github.com/zkat)) - -#### DEPENDENCY UPDATES - -* [`9d6666b`](https://github.com/npm/npm/commit/9d6666b) - `node-gyp@3.0.1` - ([@rvagg](https://github.com/rvagg)) -* [`349c4df`](https://github.com/npm/npm/commit/349c4df) - `retry@0.7.0` - ([@tim-kos](https://github.com/tim-kos)) -* [`f507551`](https://github.com/npm/npm/commit/f507551) - `which@1.1.2` - ([@isaacs](https://github.com/isaacs)) -* [`e5b6743`](https://github.com/npm/npm/commit/e5b6743) - `nopt@3.0.4` - ([@zkat](https://github.com/zkat)) - -#### THE DEPENDENCIES OF OUR DEPENDENCIES ARE OUR DEPENDENCIES UPDATES - -* [`316382d`](https://github.com/npm/npm/commit/316382d) - `mime-types@2.1.6` & `mime-db@1.18.0` -* [`64b741e`](https://github.com/npm/npm/commit/64b741e) - `spdx-correct@1.0.1` -* [`fff62ac`](https://github.com/npm/npm/commit/fff62ac) - `process-nextick-args@1.0.3` -* [`9d6488c`](https://github.com/npm/npm/commit/9d6488c) - `cryptiles@2.0.5` -* [`1912012`](https://github.com/npm/npm/commit/1912012) - `bluebird@2.10.0` -* [`4d09402`](https://github.com/npm/npm/commit/4d09402) - `readdir-scoped-modules@1.0.2` - -### v3.3.2 (2015-09-04): - -#### PLEASE HOLD FOR THE NEXT AVAILABLE MAINTAINER - -This is a tiny little maintenance release, both to update dependencies and to -keep `npm@3` up to date with changes made to `npm@2`. -[@othiym23](https://github.com/othiym23) is putting out this release (again) as -his esteemed colleague [@iarna](https://github.com/iarna) finishes relocating -herself, her family, and her sizable anime collection all the way across North -America. It contains [all the goodies in -`npm@2.14.3`](https://github.com/npm/npm/releases/tag/v2.14.3) and one other -dependency update. - -#### BETA WARNINGS FOR FUN AND PROFIT - -**_THIS IS BETA SOFTWARE_**. `npm@3` will remain in beta until we're -confident that it's stable and have assessed the effect of the breaking -changes on the community. During that time we will still be doing `npm@2` -releases, with `npm@2` tagged as `latest` and `next`. We'll _also_ be -publishing new releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` -alongside those versions until we're ready to switch everyone over to -`npm@3`. We need your help to find and fix its remaining bugs. It's a -significant rewrite, so we are _sure_ there still significant bugs -remaining. So do us a solid and deploy it in non-critical CI environments -and for day-to-day use, but maybe don't use it for production maintenance or -frontline continuous deployment just yet. - -That said, it's getting there! It will be leaving beta very soon! - -#### ONE OTHER DEPENDENCY UPDATE - -* [`bb5de34`](https://github.com/npm/npm/commit/bb5de3493531228df0bd3f0742d5493c826be6dd) - `is-my-json-valid@2.12.2`: Upgrade to a new, modernized version of - `json-pointer`. ([@mafintosh](https://github.com/mafintosh)) - -### v3.3.1 (2015-08-27): - -Hi all, this `npm@3` update brings you another round of bug fixes. The -headliner here is that `npm update` works again. We're running down the -clock on blocker 3.x issues! Shortly after that hits zero we'll be -promoting 3.x to latest!! - -And of course, we have changes that were brought forward from 2.x. Check out -the release notes for -[2.14.1](https://github.com/npm/npm/releases/tag/v2.14.1) and -[2.14.2](https://github.com/npm/npm/releases/tag/v2.14.2). - -#### BETA WARNINGS FOR FUN AND PROFIT - -**_THIS IS BETA SOFTWARE_**. `npm@3` will remain in beta until we're -confident that it's stable and have assessed the effect of the breaking -changes on the community. During that time we will still be doing `npm@2` -releases, with `npm@2` tagged as `latest` and `next`. We'll _also_ be -publishing new releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` -alongside those versions until we're ready to switch everyone over to -`npm@3`. We need your help to find and fix its remaining bugs. It's a -significant rewrite, so we are _sure_ there still significant bugs -remaining. So do us a solid and deploy it in non-critical CI environments -and for day-to-day use, but maybe don't use it for production maintenance or -frontline continuous deployment just yet. - -#### NPM UPDATE, NOW AGAIN YOUR FRIEND - -* [`f130a00`](https://github.com/npm/npm/commit/f130a00) - [#9095](https://github.com/npm/npm/issues/9095) - `npm update` once again works! Previously, after selecting packages - to update, it would then pick the wrong location to run the install - from. ([@iarna](https://github.com/iarna)) - -#### MORE VERBOSING FOR YOUR VERBOSE LIFECYCLES - -* [`d088b7d`](https://github.com/npm/npm/commit/d088b7d) - [#9227](https://github.com/npm/npm/pull/9227) - Add some additional logging at the verbose and silly levels - when running lifecycle scripts. Hopefully this will make - debugging issues with them a bit easier! - ([@saper](https://github.com/saper)) - -#### AND SOME OTHER BUG FIXES… - -* [`f4a5784`](https://github.com/npm/npm/commit/f4a5784) - [#9308](https://github.com/npm/npm/issues/9308) - Make fetching metadata for local modules faster! This ALSO means - that doing things like running `npm repo` won't build your - module and maybe run `prepublish`. - ([@iarna](https://github.com/iarna)) - -* [`4468c92`](https://github.com/npm/npm/commit/4468c92) - [#9205](https://github.com/npm/npm/issues/9205) - Fix a bug where local modules would sometimes not resolve relative - links using the correct base path. - ([@iarna](https://github.com/iarna)) - -* [`d395a6b`](https://github.com/npm/npm/commit/d395a6b) - [#8995](https://github.com/npm/npm/issues/8995) - Certain combinations of packages could result in different install orders for their - initial installation than for reinstalls run on the same folder. - ([@iarna](https://github.com/iarna)) - -* [`d119ea6`](https://github.com/npm/npm/commit/d119ea6) - [#9113](https://github.com/npm/npm/issues/9113) - Make extraneous packages _always_ up in `npm ls`. Previously, if an - extraneous package had a dependency that depended back on the original - package this would result in the package not showing up in `ls`. - ([@iarna](https://github.com/iarna)) - -* [`02420dc`](https://github.com/npm/npm/commit/02420dc) - [#9113](https://github.com/npm/npm/issues/9113) - Stop warning about missing top level package.json files. Errors in said - files will still be reported. - ([@iarna](https://github.com/iarna)) - -#### SOME DEP UPDATES - -* [`1ed1364`](https://github.com/npm/npm/commit/1ed1364) `rimraf@2.4.3` - ([@isaacs](https://github.com/isaacs)) Added EPERM to delay/retry loop -* [`e7b8315`](https://github.com/npm/npm/commit/e7b8315) `read@1.0.7` - Smaller distribution package, better metadata - ([@isaacs](https://github.com/isaacs)) - -#### SOME DEPS OF DEPS UPDATES - -* [`b273bcc`](https://github.com/npm/npm/commit/b273bcc) `mime-types@2.1.5` -* [`df6e225`](https://github.com/npm/npm/commit/df6e225) `mime-db@1.17.0` -* [`785f2ad`](https://github.com/npm/npm/commit/785f2ad) `is-my-json-valid@2.12.1` -* [`88170dd`](https://github.com/npm/npm/commit/88170dd) `form-data@1.0.0-rc3` -* [`af5357b`](https://github.com/npm/npm/commit/af5357b) `request@2.61.0` -* [`337f96a`](https://github.com/npm/npm/commit/337f96a) `chalk@1.1.1` -* [`3dfd74d`](https://github.com/npm/npm/commit/3dfd74d) `async@1.4.2` - -### v3.3.0 (2015-08-13): - -This is a pretty EXCITING week. But I may be a little excitable– or -possibly sleep deprived, it's sometimes hard to tell them apart. =D So -[Kat](https://github.com/zkat) really went the extra mile this week and got -the client side support for teams and orgs out in this week's 2.x release. -You can't use that just yet, 'cause we have to turn on some server side -stuff too, but this way it'll be there for you all the moment we do! Check -out the details over in the [2.14.0 release -notes](https://github.com/npm/npm/releases/tag/v2.14.0)! - -But we over here in 3.x ALSO got a new feature this week, check out the new -`--only` and `--also` flags for better control over when dev and production -dependencies are used by various npm commands. - -That, and some important bug fixes round out this week. Enjoy everyone! - -#### NEVER SHALL NOT BETA THE BETA - -**_THIS IS BETA SOFTWARE_**. EXCITING NEW BETA WARNING!!! Ok, I fibbed, -EXACTLY THE SAME BETA WARNINGS: `npm@3` will remain in beta until we're -confident that it's stable and have assessed the effect of the breaking -changes on the community. During that time we will still be doing `npm@2` -releases, with `npm@2` tagged as `latest` and `next`. We'll _also_ be -publishing new releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` -alongside those versions until we're ready to switch everyone over to -`npm@3`. We need your help to find and fix its remaining bugs. It's a -significant rewrite, so we are _sure_ there still significant bugs -remaining. So do us a solid and deploy it in non-critical CI environments -and for day-to-day use, but maybe don't use it for production maintenance or -frontline continuous deployment just yet. - -#### ONLY ALSO DEV - -Hey we've got a SUPER cool new feature for you all, thanks to the fantastic -work of [@davglass](https://github.com/davglass) and -[@bengl](https://github.com/bengl) we have `--only=prod`, -`--only=dev`, `--also=prod` and `--also=dev` options. These apply in -various ways to: `npm install`, `npm ls`, `npm outdated` and `npm update`. - -So for instance: - -``` -npm install --only=dev -``` - -Only installs dev dependencies. By contrast: - -``` -npm install --only=prod -``` - -Will only install prod dependencies and is very similar to `--production` -but differs in that it doesn't set the environment variables that -`--production` does. - -The related new flag, `--also` is most useful with things like: - -``` -npm shrinkwrap --also=dev -``` - -As shrinkwraps don't include dev deps by default. This replaces passing in -`--dev` in that scenario. - -And that leads into the fact that this deprecates `--dev` as its semantics -across commands were inconsistent and confusing. - -* [`3ab1eea`](https://github.com/npm/npm/commit/3ab1eea) - [#9024](https://github.com/npm/npm/pull/9024) - Add support for `--only`, `--also` and deprecate `--dev` - ([@bengl](https://github.com/bengl)) - -#### DON'T TOUCH! THAT'S NOT YOUR BIN - -* [`b31812e`](https://github.com/npm/npm/commit/b31812e) - [#8996](https://github.com/npm/npm/pull/8996) - When removing a module that has bin files, if one that we're going to - remove is a symlink to a DIFFERENT module, leave it alone. This only happens - when you have two modules that try to provide the same bin. - ([@iarna](https://github.com/iarna)) - -#### THERE'S AN END IN SIGHT - -* [`d2178a9`](https://github.com/npm/npm/commit/d2178a9) - [#9223](https://github.com/npm/npm/pull/9223) - Close a bunch of infinite loops that could show up with symlink cycles in your dependencies. - ([@iarna](https://github.com/iarna)) - -#### OOPS DIDN'T MEAN TO FIX THAT - -Well, not _just_ yet. This was scheduled for next week, but it snuck into -2.x this week. - -* [`139dd92`](https://github.com/npm/npm/commit/139dd92) - [#8716](https://github.com/npm/npm/pull/8716) - `npm init` will now only pick up the modules you install, not everything - else that got flattened with them. - ([@iarna](https://github.com/iarna)) - -### v3.2.2 (2015-08-08): - -Lot's of lovely bug fixes for `npm@3`. I'm also suuuuper excited that I -think we have a handle on stack explosions that effect a small portion of -our users. We also have some tantalizing clues as to where some low hanging -fruit may be for performance issues. - -And of course, in addition to the `npm@3` specific bug fixes, there are some -great one's coming in from `npm@2`! [@othiym23](https://github.com/othiym23) -put together that release this week– check out its -[release notes](https://github.com/npm/npm/releases/tag/v2.13.4) for the deets. - -#### AS ALWAYS STILL BETA - -**_THIS IS BETA SOFTWARE_**. Just like the airline safety announcements, -we're not taking this plane off till we finish telling you: `npm@3` will -remain in beta until we're confident that it's stable and have assessed the -effect of the breaking changes on the community. During that time we will -still be doing `npm@2` releases, with `npm@2` tagged as `latest` and `next`. -We'll _also_ be publishing new releases of `npm@3` as `npm@v3.x-next` and -`npm@v3.x-latest` alongside those versions until we're ready to switch -everyone over to `npm@3`. We need your help to find and fix its remaining -bugs. It's a significant rewrite, so we are _sure_ there still significant -bugs remaining. So do us a solid and deploy it in non-critical CI -environments and for day-to-day use, but maybe don't use it for production -maintenance or frontline continuous deployment just yet. - -#### BUG FIXES - -* [`a8c8a13`](https://github.com/npm/npm/commit/a8c8a13) - [#9050](https://github.com/npm/npm/issues/9050) - Resolve peer deps relative to the parent of the requirer - ([@iarna](http://github.com/iarna)) -* [`05f0226`](https://github.com/npm/npm/commit/05f0226) - [#9077](https://github.com/npm/npm/issues/9077) - Fix crash when saving `git+ssh` urls - ([@iarna](http://github.com/iarna)) -* [`e4a3808`](https://github.com/npm/npm/commit/e4a3808) - [#8951](https://github.com/npm/npm/issues/8951) - Extend our patch to allow `*` to match something when a package only has - prerelease versions to everything and not just the cache. - ([@iarna](http://github.com/iarna)) -* [`d135abf`](https://github.com/npm/npm/commit/d135abf) - [#8871](https://github.com/npm/npm/issues/8871) - Don't warn about a missing `package.json` or missing fields in the global - install directory. - ([@iarna](http://github.com/iarna)) - -#### DEP VERSION BUMPS - -* [`990ee4f`](https://github.com/npm/npm/commit/990ee4f) - `path-is-inside@1.0.1` ([@domenic](https://github.com/domenic)) -* [`1f71ec0`](https://github.com/npm/npm/commit/1f71ec0) - `lodash.clonedeep@3.0.2` ([@jdalton](https://github.com/jdalton)) -* [`a091354`](https://github.com/npm/npm/commit/a091354) - `marked@0.3.5` ([@chjj](https://github.com/chjj)) -* [`fc51f28`](https://github.com/npm/npm/commit/fc51f28) - `tap@1.3.2` ([@isaacs](https://github.com/isaacs)) -* [`3569ec0`](https://github.com/npm/npm/commit/3569ec0) - `nock@2.10.0` ([@pgte](https://github.com/pgte)) -* [`ad5f6fd`](https://github.com/npm/npm/commit/ad5f6fd) - `npm-registry-mock@1.0.1` ([@isaacs](https://github.com/isaacs)) - -### v3.2.1 (2015-07-31): - -#### AN EXTRA QUIET RELEASE - -A bunch of stuff got deferred for various reasons, which just means more -branches to land next week! - -Don't forget to check out [Kat's 2.x release](https://github.com/npm/npm/releases/tag/v2.13.4) for other quiet goodies. - -#### AS ALWAYS STILL BETA - -**_THIS IS BETA SOFTWARE_**. Yes, we're still reminding you of this. No, -you can't be excused. `npm@3` will remain in beta until we're confident -that it's stable and have assessed the effect of the breaking changes on the -community. During that time we will still be doing `npm@2` releases, with -`npm@2` tagged as `latest` and `next`. We'll _also_ be publishing new -releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` alongside those -versions until we're ready to switch everyone over to `npm@3`. We need your -help to find and fix its remaining bugs. It's a significant rewrite, so we -are _sure_ there still significant bugs remaining. So do us a solid and -deploy it in non-critical CI environments and for day-to-day use, but maybe -don't use it for production maintenance or frontline continuous deployment -just yet. - - -#### MAKING OUR TESTS TEST THE THING THEY TEST - -* [`6e53c3d`](https://github.com/npm/npm/commit/6e53c3d) - [#8985](https://github.com/npm/npm/pull/8985) - Many thanks to @bengl for noticing that one of our tests wasn't testing - what it claimed it was testing! ([@bengl](https://github.com/bengl)) - -#### MY PACKAGE.JSON WAS ALREADY IN THE RIGHT ORDER - -* [`eb2c7aa`](https://github.com/npm/npm/commit/d00d0f) - [#9068](https://github.com/npm/npm/pull/9079) - Stop sorting keys in the `package.json` that we haven't edited. Many - thanks to [@Qix-](https://github.com/Qix-) for bringing this up and - providing a first pass at a patch for this. - ([@iarna](https://github.com/iarna)) - -#### DEV DEP UPDATE - -* [`555f60c`](https://github.com/npm/npm/commit/555f60c) `marked@0.3.4` - -### v3.2.0 (2015-07-24): - -#### MORE CONFIG, BETTER WINDOWS AND A BUG FIX - -This is a smallish release with a new config option and some bug fixes. And -lots of module updates. - -#### BETA BETAS ON - -**_THIS IS BETA SOFTWARE_**. Yes, we're still reminding you of this. No, -you can't be excused. `npm@3` will remain in beta until we're confident -that it's stable and have assessed the effect of the breaking changes on the -community. During that time we will still be doing `npm@2` releases, with -`npm@2` tagged as `latest` and `next`. We'll _also_ be publishing new -releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` alongside those -versions until we're ready to switch everyone over to `npm@3`. We need your -help to find and fix its remaining bugs. It's a significant rewrite, so we -are _sure_ there still significant bugs remaining. So do us a solid and -deploy it in non-critical CI environments and for day-to-day use, but maybe -don't use it for production maintenance or frontline continuous deployment -just yet. - - -#### NEW CONFIGS, LESS PROGRESS - -* [`423d8f7`](https://github.com/npm/npm/commit/423d8f7) - [#8704](https://github.com/npm/npm/issues/8704) - Add the ability to disable the new progress bar with `--no-progress` - ([@iarna](https://github.com/iarna)) - -#### AND BUG FIXES - -* [`b3ee452`](https://github.com/npm/npm/commit/b3ee452) - [#9038](https://github.com/npm/npm/pull/9038) - We previously disabled the use of the new `fs.access` API on Windows, but - the bug we were seeing is fixed in `io.js@1.5.0` so we now use `fs.access` - if you're using that version or greater. - ([@iarna](https://github.com/iarna)) - -* [`b181fa3`](https://github.com/npm/npm/commit/b181fa3) - [#8921](https://github.com/npm/npm/issues/8921) - [#8637](https://github.com/npm/npm/issues/8637) - Rejigger how we validate modules for install. This allow is to fix - a problem where arch/os checking wasn't being done at all. - It also made it easy to add back in a check that declines to - install a module in itself unless you force it. - ([@iarna](https://github.com/iarna)) - -#### AND A WHOLE BUNCH OF SUBDEP VERSIONS - -These are all development dependencies and semver-compatible subdep -upgrades, so they should not have visible impact on users. - -* [`6b3f6d9`](https://github.com/npm/npm/commit/6b3f6d9) `standard@4.3.3` -* [`f4e22e5`](https://github.com/npm/npm/commit/f4e22e5) `readable-stream@2.0.2` (inside concat-stream) -* [`f130bfc`](https://github.com/npm/npm/commit/f130bfc) `minimatch@2.0.10` (inside node-gyp's copy of glob) -* [`36c6a0d`](https://github.com/npm/npm/commit/36c6a0d) `caseless@0.11.0` -* [`80df59c`](https://github.com/npm/npm/commit/80df59c) `chalk@1.1.0` -* [`ea935d9`](https://github.com/npm/npm/commit/ea935d9) `bluebird@2.9.34` -* [`3588a0c`](https://github.com/npm/npm/commit/3588a0c) `extend@3.0.0` -* [`c6a8450`](https://github.com/npm/npm/commit/c6a8450) `form-data@1.0.0-rc2` -* [`a04925b`](https://github.com/npm/npm/commit/a04925b) `har-validator@1.8.0` -* [`ee7c095`](https://github.com/npm/npm/commit/ee7c095) `has-ansi@2.0.0` -* [`944fc34`](https://github.com/npm/npm/commit/944fc34) `hawk@3.1.0` -* [`783dc7b`](https://github.com/npm/npm/commit/783dc7b) `lodash._basecallback@3.3.1` -* [`acef0fe`](https://github.com/npm/npm/commit/acef0fe) `lodash._baseclone@3.3.0` -* [`dfe959a`](https://github.com/npm/npm/commit/dfe959a) `lodash._basedifference@3.0.3` -* [`a03bc76`](https://github.com/npm/npm/commit/a03bc76) `lodash._baseflatten@3.1.4` -* [`8a07d50`](https://github.com/npm/npm/commit/8a07d50) `lodash._basetostring@3.0.1` -* [`7785e3f`](https://github.com/npm/npm/commit/7785e3f) `lodash._baseuniq@3.0.3` -* [`826fb35`](https://github.com/npm/npm/commit/826fb35) `lodash._createcache@3.1.2` -* [`76030b3`](https://github.com/npm/npm/commit/76030b3) `lodash._createpadding@3.6.1` -* [`1a49ec6`](https://github.com/npm/npm/commit/1a49ec6) `lodash._getnative@3.9.1` -* [`eebe47f`](https://github.com/npm/npm/commit/eebe47f) `lodash.isarguments@3.0.4` -* [`09994d4`](https://github.com/npm/npm/commit/09994d4) `lodash.isarray@3.0.4` -* [`b6f8dbf`](https://github.com/npm/npm/commit/b6f8dbf) `lodash.keys@3.1.2` -* [`c67dd6b`](https://github.com/npm/npm/commit/c67dd6b) `lodash.pad@3.1.1` -* [`4add042`](https://github.com/npm/npm/commit/4add042) `lodash.repeat@3.0.1` -* [`e04993c`](https://github.com/npm/npm/commit/e04993c) `lru-cache@2.6.5` -* [`2ed7da4`](https://github.com/npm/npm/commit/2ed7da4) `mime-db@1.15.0` -* [`ae08244`](https://github.com/npm/npm/commit/ae08244) `mime-types@2.1.3` -* [`e71410e`](https://github.com/npm/npm/commit/e71410e) `os-homedir@1.0.1` -* [`67c13e0`](https://github.com/npm/npm/commit/67c13e0) `process-nextick-args@1.0.2` -* [`12ee041`](https://github.com/npm/npm/commit/12ee041) `qs@4.0.0` -* [`15564a6`](https://github.com/npm/npm/commit/15564a6) `spdx-license-ids@1.0.2` -* [`8733bff`](https://github.com/npm/npm/commit/8733bff) `supports-color@2.0.0` -* [`230943c`](https://github.com/npm/npm/commit/230943c) `tunnel-agent@0.4.1` -* [`26a4653`](https://github.com/npm/npm/commit/26a4653) `ansi-styles@2.1.0` -* [`3d27081`](https://github.com/npm/npm/commit/3d27081) `bl@1.0.0` -* [`9efa110`](https://github.com/npm/npm/commit/9efa110) `async@1.4.0` - -#### MERGED FORWARD - -* As usual, we've ported all the `npm@2` goodies in this week's - [v2.13.3](https://github.com/npm/npm/releases/tag/v2.13.3) - release. - -### v3.1.3 (2015-07-17): - -Rebecca: So Kat, I hear this week's other release uses a dialog between us to -explain what changed? - -Kat: Well, you could say that… - -Rebecca: I would! This week I fixed more `npm@3` bugs! - -Kat: That sounds familiar. - -Rebecca: Eheheheh, well, before we look at those, a word from our sponsor… - -#### BETA IS AS BETA DOES - -**_THIS IS BETA SOFTWARE_**. Yes, we're still reminding you of this. No, -you can't be excused. `npm@3` will remain in beta until we're confident -that it's stable and have assessed the effect of the breaking changes on the -community. During that time we will still be doing `npm@2` releases, with -`npm@2` tagged as `latest` and `next`. We'll _also_ be publishing new -releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` alongside those -versions until we're ready to switch everyone over to `npm@3`. We need your -help to find and fix its remaining bugs. It's a significant rewrite, so we -are _sure_ there still significant bugs remaining. So do us a solid and -deploy it in non-critical CI environments and for day-to-day use, but maybe -don't use it for production maintenance or frontline continuous deployment -just yet. - -Rebecca: Ok, enough of the dialoguing, that's Kat's schtick. But do remember -kids, betas hide in dark hallways waiting to break your stuff, stuff like… - -#### SO MANY LINKS YOU COULD MAKE A CHAIN - -* [`6d69ec9`](https://github.com/npm/npm/6d69ec9) - [#8967](https://github.com/npm/npm/issues/8967) - Removing a module linked into your globals would result in having - all of its subdeps removed. Since the npm release process does - exactly this, it burned me -every- -single- -week-. =D - While we're here, we also removed extraneous warns that used to - spill out when you'd remove a symlink. - ([@iarna](https://github.com/iarna)) - -* [`fdb360f`](https://github.com/npm/npm/fdb360f) - [#8874](https://github.com/npm/npm/issues/8874) - Linking scoped modules was failing outright, but this fixes that - and updates our tests so we don't do it again. - ([@iarna](https://github.com/iarna)) - -#### WE'LL TRY NOT TO CRACK YOUR WINDOWS - -* [`9fafb18`](https://github.com/npm/npm/9fafb18) - [#8701](https://github.com/npm/npm/issues/8701) - `npm@3` introduced permissions checks that run before it actually tries to - do something. This saves you from having an install fail half way - through. We did this using the shiny new `fs.access` function available - in `node 0.12` and `io.js`, with fallback options for older nodes. Unfortunately - the way we implemented the fallback caused racey problems for Windows systems. - This fixes that by ensuring we only ever run any one check on a directory once. - BUT it turns out there are bugs in `fs.access` on Windows. So this ALSO just disables - the use of `fs.access` on Windows entirely until that settles out. - ([@iarna](https://github.com/iarna)) - -#### ZOOM ZOOM, DEP UPDATES - -* [`5656baa`](https://github.com/npm/npm/5656baa) - `gauge@1.2.2`: Better handle terminal resizes while printing the progress bar - ([@iarna](https://github.com/iarna)) - -#### MERGED FORWARD - -* Check out Kat's [super-fresh release notes for v2.13.2](https://github.com/npm/npm/releases/tag/v2.13.2) - and see all the changes we ported from `npm@2`. - -### v3.1.2 - -#### SO VERY BETA RELEASE - -So, `v3.1.1` managed to actually break installing local modules. And then -immediately after I drove to an island for the weekend. 😁 So let's get -this fixed outside the usual release train! - -Fortunately it didn't break installing _global_ modules and so you could -swap it out for another version at least. - -#### DISCLAIMER MEANS WHAT IT SAYS - -**_THIS IS BETA SOFTWARE_**. Yes, we're still reminding you of this. No, -you can't be excused. `npm@3` will remain in beta until we're confident -that it's stable and have assessed the effect of the breaking changes on the -community. During that time we will still be doing `npm@2` releases, with -`npm@2` tagged as `latest` and `next`. We'll _also_ be publishing new -releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` alongside those -versions until we're ready to switch everyone over to `npm@3`. We need your -help to find and fix its remaining bugs. It's a significant rewrite, so we -are _sure_ there still significant bugs remaining. So do us a solid and -deploy it in non-critical CI environments and for day-to-day use, but maybe -don't use it for production maintenance or frontline continuous deployment -just yet. - -#### THIS IS IT, THE REASON - -* [`f5e19df`](https://github.com/npm/npm/commit/f5e19df) - [#8893](https://github.com/npm/npm/issues/8893) - Fix crash when installing local modules introduced by the fix for - [#8608](https://github.com/npm/npm/issues/8608) - ([@iarna](https://github.com/iarna) - -### v3.1.1 - -#### RED EYE RELEASE - -Rebecca's up too late writing tests, so you can have `npm@3` bug fixes! Lots -of great new issues from you all! ❤️️ Keep it up! - -#### YUP STILL BETA, PLEASE PAY ATTENTION - -**_THIS IS BETA SOFTWARE_**. Yes, we're still reminding you of this. No, -you can't be excused. `npm@3` will remain in beta until we're confident -that it's stable and have assessed the effect of the breaking changes on the -community. During that time we will still be doing `npm@2` releases, with -`npm@2` tagged as `latest` and `next`. We'll _also_ be publishing new -releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` alongside those -versions until we're ready to switch everyone over to `npm@3`. We need your -help to find and fix its remaining bugs. It's a significant rewrite, so we -are _sure_ there still significant bugs remaining. So do us a solid and -deploy it in non-critical CI environments and for day-to-day use, but maybe -don't use it for production maintenance or frontline continuous deployment -just yet. - -#### BOOGS - -* [`9badfd6`](https://github.com/npm/npm/commit/9babfd63f19f2d80b2d2624e0963b0bdb0d76ef4) - [#8608](https://github.com/npm/npm/issues/8608) - Make global installs and uninstalls MUCH faster by only reading the directories of - modules referred to by arguments. - ([@iarna](https://github.com/iarna) -* [`075a5f0`](https://github.com/npm/npm/commit/075a5f046ab6837f489b08d44cb601e9fdb369b7) - [#8660](https://github.com/npm/npm/issues/8660) - Failed optional deps would still result in the optional deps own - dependencies being installed. We now find them and fail them out of the - tree. - ([@iarna](https://github.com/iarna) -* [`c9fbbb5`](https://github.com/npm/npm/commit/c9fbbb540083396ea58fd179d81131d959d8e049) - [#8863](https://github.com/npm/npm/issues/8863) - The "no compatible version found" error message was including only the - version requested, not the name of the package we wanted. Ooops! - ([@iarna](https://github.com/iarna) -* [`32e6bbd`](https://github.com/npm/npm/commit/32e6bbd21744dcbe8c0720ab53f60caa7f2a0588) - [#8806](https://github.com/npm/npm/issues/8806) - The "uninstall" lifecycle was being run after all of a module's dependencies has been - removed. This reverses that order-- this means "uninstall" lifecycles can make use - of the package's dependencies. - ([@iarna](https://github.com/iarna) - -#### MERGED FORWARD - -* Check out the [v2.13.1 release notes](https://github.com/npm/npm/releases/tag/v2.13.1) - and see all the changes we ported from `npm@2`. - -### v3.1.0 (2015-07-02): - -This has been a brief week of bug fixes, plus some fun stuff merged forward -from this weeks 2.x release. See the -[2.13.0 release notes](https://github.com/npm/npm/releases/tag/v2.13.0) -for details on that. - -You all have been AWESOME with -[all](https://github.com/npm/npm/milestones/3.x) -[the](https://github.com/npm/npm/milestones/3.2.0) -`npm@3` bug reports! Thank you and keep up the great work! - -#### NEW PLACE, SAME CODE - -Remember how last week we said `npm@3` would go to `3.0-next` and latest -tags? Yeaaah, no, please use `npm@v3.x-next` and `npm@v3.x-latest` going forward. - -I dunno why we said "suuure, we'll never do a feature release till we're out -of beta" when we're still forward porting `npm@2.x` features. `¯\_(ツ)_/¯` - -If you do accidentally use the old tag names, I'll be maintaining them -for a few releases, but they won't be around forever. - -#### YUP STILL BETA, PLEASE PAY ATTENTION - -**_THIS IS BETA SOFTWARE_**. `npm@3` will remain in beta until we're -confident that it's stable and have assessed the effect of the breaking -changes on the community. During that time we will still be doing `npm@2` -releases, with `npm@2` tagged as `latest` and `next`. We'll _also_ be -publishing new releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` -alongside those versions until we're ready to switch everyone over to -`npm@3`. We need your help to find and fix its remaining bugs. It's a -significant rewrite, so we are _sure_ there still significant bugs -remaining. So do us a solid and deploy it in non-critical CI environments -and for day-to-day use, but maybe don't use it for production maintenance -or frontline continuous deployment just yet. - -#### BUGS ON THE WINDOWS - - * [`0030ade`](https://github.com/npm/npm/commit/0030ade) - [#8685](https://github.com/npm/npm/issues/8685) - Windows would hang when trying to clone git repos - ([@euprogramador](https://github.com/npm/npm/pull/8777)) - * [`b259bcc`](https://github.com/npm/npm/commit/b259bcc) - [#8786](https://github.com/npm/npm/pull/8786) - Windows permissions checks would cause installations to fail under some - circumstances. We're disabling the checks entirely for this release. - I'm hoping to check back with this next week to get a Windows friendly - fix in. - ([@iarna](https://github.com/iarna)) - -#### SO MANY BUGS SQUASHED, JUST CALL US RAID - - * [`0848698`](https://github.com/npm/npm/commit/0848698) - [#8686](https://github.com/npm/npm/pull/8686) - Stop leaving progress bar cruft on the screen during publication - ([@ajcrites](https://github.com/ajcrites)) - * [`57c3cea`](https://github.com/npm/npm/commit/57c3cea) - [#8695](https://github.com/npm/npm/pull/8695) - Remote packages with shrinkwraps made npm cause node + iojs to explode - and catch fire. NO MORE. - ([@iarna](https://github.com/iarna)) - * [`2875ba3`](https://github.com/npm/npm/commit/2875ba3) - [#8723](https://github.com/npm/npm/pull/8723) - I uh, told you that engineStrict checking had gone away last week. - TURNS OUT I LIED. So this is making that actually be true. - ([@iarna](https://github.com/iarna)) - * [`28064e5`](https://github.com/npm/npm/commit/28064e5) - [#3358](https://github.com/npm/npm/issues/3358) - Consistently allow Unicode BOMs at the start of package.json files. - Previously this was allowed some of time, like when you were installing - modules, but not others, like running npm version or installing w/ - `--save`. - ([@iarna](https://github.com/iarna)) - * [`3cb6ad2`](https://github.com/npm/npm/commit/3cb6ad2) - [#8736](https://github.com/npm/npm/issues/8766) - `npm@3` wasn't running the "install" lifecycle in your current (toplevel) - module. This broke modules that relied on C compilation. BOO. - ([@iarna](https://github.com/iarna)) - * [`68da583`](https://github.com/npm/npm/commit/68da583) - [#8766](https://github.com/npm/npm/issues/8766) - To my great shame, `npm link package` wasn't working AT ALL if you - didn't have `package` already installed. - ([@iarna](https://github.com/iarna)) - * [`edd7448`](https://github.com/npm/npm/commit/edd7448) - `read-package-tree@5.0.0`: This update makes read-package-tree not explode - when there's bad data in your node_modules folder. `npm@2` silently - ignores this sort of thing. - ([@iarna](https://github.com/iarna)) - * [`0bb08c8`](https://github.com/npm/npm/commit/0bb08c8) - [#8778](https://github.com/npm/npm/pull/8778) - RELATEDLY, we now show any errors from your node_modules folder after - your installation completes as warnings. We're also reporting these in - `npm ls` now. - ([@iarna](https://github.com/iarna)) - * [`6c248ff`](https://github.com/npm/npm/commit/6c248ff) - [#8779](https://github.com/npm/npm/pull/8779) - Hey, you know how we used to complain if your `package.json` was - missing stuff? Well guess what, we are again. I know, I know, you can - thank me later. - ([@iarna](https://github.com/iarna)) - * [`d6f7c98`](https://github.com/npm/npm/commit/d6f7c98) - So, when we were rolling back after errors we had untested code that - tried to undo moves. Being untested it turns out it was very broken. - I've removed it until we have time to do this right. - ([@iarna](https://github.com/iarna)) - -#### NEW VERSION - -Just the one. Others came in via the 2.x release. Do check out its -changelog, immediately following this message. - - * [`4e602c5`](https://github.com/npm/npm/commit/4e602c5) `lodash@3.2.2` - -### v3.0.0 (2015-06-25): - -Wow, it's finally here! This has been a long time coming. We are all -delighted and proud to be getting this out into the world, and are looking -forward to working with the npm user community to get it production-ready -as quickly as possible. - -`npm@3` constitutes a nearly complete rewrite of npm's installer to be -easier to maintain, and to bring a bunch of valuable new features and -design improvements to you all. - -[@othiym23](https://github.com/othiym23) and -[@isaacs](https://github.com/isaacs) have been -[talking about the changes](http://blog.npmjs.org/post/91303926460/npm-cli-roadmap-a-periodic-update) -in this release for well over a year, and it's been the primary focus of -[@iarna](https://github.com/iarna) since she joined the team. - -Given that this is a near-total rewrite, all changes listed here are -[@iarna](https://github.com/iarna)'s work unless otherwise specified. - -#### NO, REALLY, READ THIS PARAGRAPH. IT'S THE IMPORTANT ONE. - -**_THIS IS BETA SOFTWARE_**. `npm@3` will remain in beta until we're -confident that it's stable and have assessed the effect of the breaking -changes on the community. During that time we will still be doing `npm@2` -releases, with `npm@2` tagged as `latest` and `next`. We'll _also_ be -publishing new releases of `npm@3` as `npm@3.0-next` and `npm@3.0-latest` -alongside those versions until we're ready to switch everyone over to -`npm@3`. We need your help to find and fix its remaining bugs. It's a -significant rewrite, so we are _sure_ there still significant bugs -remaining. So do us a solid and deploy it in non-critical CI environments -and for day-to-day use, but maybe don't use it for production maintenance -or frontline continuous deployment just yet. - -#### BREAKING CHANGES - -##### `peerDependencies` - -`grunt`, `gulp`, and `broccoli` plugin maintainers take note! You will be -affected by this change! - -* [#6930](https://github.com/npm/npm/issues/6930) - ([#6565](https://github.com/npm/npm/issues/6565)) - `peerDependencies` no longer cause _anything_ to be implicitly installed. - Instead, npm will now warn if a packages `peerDependencies` are missing, - but it's up to the consumer of the module (i.e. you) to ensure the peers - get installed / are included in `package.json` as direct `dependencies` - or `devDependencies` of your package. -* [#3803](https://github.com/npm/npm/issues/3803) - npm also no longer checks `peerDependencies` until after it has fully - resolved the tree. - -This shifts the responsibility for fulfilling peer dependencies from library -/ framework / plugin maintainers to application authors, and is intended to -get users out of the dependency hell caused by conflicting `peerDependency` -constraints. npm's job is to keep you _out_ of dependency hell, not put you -in it. - -##### `engineStrict` - -* [#6931](https://github.com/npm/npm/issues/6931) The rarely-used - `package.json` option `engineStrict` has been deprecated for several - months, producing warnings when it was used. Starting with `npm@3`, the - value of the field is ignored, and engine violations will only produce - warnings. If you, as a user, want strict `engines` field enforcement, - just run `npm config set engine-strict true`. - -As with the peer dependencies change, this is about shifting control from -module authors to application authors. It turns out `engineStrict` was very -difficult to understand even harder to use correctly, and more often than -not just made modules using it difficult to deploy. - -##### `npm view` - -* [`77f1aec`](https://github.com/npm/npm/commit/77f1aec) With `npm view` (aka - `npm info`), always return arrays for versions, maintainers, etc. Previously - npm would return a plain value if there was only one, and multiple values if - there were more. ([@KenanY](https://github.com/KenanY)) - -#### KNOWN BUGS - -Again, this is a _**BETA RELEASE**_, so not everything is working just yet. -Here are the issues that we already know about. If you run into something -that isn't on this list, -[let us know](https://github.com/npm/npm/issues/new)! - -* [#8575](https://github.com/npm/npm/issues/8575) - Circular deps will never be removed by the prune-on-uninstall code. -* [#8588](https://github.com/npm/npm/issues/8588) - Local deps where the dep name and the name in the package.json differ - don't result in an error. -* [#8637](https://github.com/npm/npm/issues/8637) - Modules can install themselves as direct dependencies. `npm@2` declined to - do this. -* [#8660](https://github.com/npm/npm/issues/8660) - Dependencies of failed optional dependencies aren't rolled back when the - optional dependency is, and then are reported as extraneous thereafter. - -#### NEW FEATURES - -##### The multi-stage installer! - -* [#5919](https://github.com/npm/npm/issues/5919) - Previously the installer had a set of steps it executed for each package - and it would immediately start executing them as soon as it decided to - act on a package. - - But now it executes each of those steps at the same time for all - packages, waiting for all of one stage to complete before moving on. This - eliminates many race conditions and makes the code easier to reason - about. - -This fixes, for instance: - -* [#6926](https://github.com/npm/npm/issues/6926) - ([#5001](https://github.com/npm/npm/issues/5001), - [#6170](https://github.com/npm/npm/issues/6170)) - `install` and `postinstall` lifecycle scripts now only execute `after` - all the module with the script's dependencies are installed. - -##### Install: it looks different! - -You'll now get a tree much like the one produced by `npm ls` that -highlights in orange the packages that were installed. Similarly, any -removed packages will have their names prefixed by a `-`. - -Also, `npm outdated` used to include the name of the module in the -`Location` field: - -``` -Package Current Wanted Latest Location -deep-equal MISSING 1.0.0 1.0.0 deep-equal -glob 4.5.3 4.5.3 5.0.10 rimraf > glob -``` - -Now it shows the module that required it as the final point in the -`Location` field: - -``` -Package Current Wanted Latest Location -deep-equal MISSING 1.0.0 1.0.0 npm -glob 4.5.3 4.5.3 5.0.10 npm > rimraf -``` - -Previously the `Location` field was telling you where the module was on -disk. Now it tells you what requires the module. When more than one thing -requires the module you'll see it listed once for each thing requiring it. - -##### Install: it works different! - -* [#6928](https://github.com/npm/npm/issues/6928) - ([#2931](https://github.com/npm/npm/issues/2931) - [#2950](https://github.com/npm/npm/issues/2950)) - `npm install` when you have an `npm-shrinkwrap.json` will ensure you have - the modules specified in it are installed in exactly the shape specified - no matter what you had when you started. -* [#6913](https://github.com/npm/npm/issues/6913) - ([#1341](https://github.com/npm/npm/issues/1341) - [#3124](https://github.com/npm/npm/issues/3124) - [#4956](https://github.com/npm/npm/issues/4956) - [#6349](https://github.com/npm/npm/issues/6349) - [#5465](https://github.com/npm/npm/issues/5465)) - `npm install` when some of your dependencies are missing sub-dependencies - will result in those sub-dependencies being installed. That is, `npm - install` now knows how to fix broken installs, most of the time. -* [#5465](https://github.com/npm/npm/issues/5465) - If you directly `npm install` a module that's already a subdep of - something else and your new version is incompatible, it will now install - the previous version nested in the things that need it. -* [`a2b50cf`](https://github.com/npm/npm/commit/a2b50cf) - [#5693](https://github.com/npm/npm/issues/5693) - When installing a new module, if it's mentioned in your - `npm-shrinkwrap.json` or your `package.json` use the version specifier - from there if you didn't specify one yourself. - -##### Flat, flat, flat! - -Your dependencies will now be installed *maximally flat*. Insofar as is -possible, all of your dependencies, and their dependencies, and THEIR -dependencies will be installed in your project's `node_modules` folder with no -nesting. You'll only see modules nested underneath one another when two (or -more) modules have conflicting dependencies. - -* [#3697](https://github.com/npm/npm/issues/3697) - This will hopefully eliminate most cases where Windows users ended up - with paths that were too long for Explorer and other standard tools to - deal with. -* [#6912](https://github.com/npm/npm/issues/6912) - ([#4761](https://github.com/npm/npm/issues/4761) - [#4037](https://github.com/npm/npm/issues/4037)) - This also means that your installs will be deduped from the start. -* [#5827](https://github.com/npm/npm/issues/5827) - This deduping even extends to git deps. -* [#6936](https://github.com/npm/npm/issues/6936) - ([#5698](https://github.com/npm/npm/issues/5698)) - Various commands are dedupe aware now. - -This has some implications for the behavior of other commands: - -* `npm uninstall` removes any dependencies of the module that you specified - that aren't required by any other module. Previously, it would only - remove those that happened to be installed under it, resulting in left - over cruft if you'd ever deduped. -* `npm ls` now shows you your dependency tree organized around what - requires what, rather than where those modules are on disk. -* [#6937](https://github.com/npm/npm/issues/6937) - `npm dedupe` now flattens the tree in addition to deduping. - -And bundling of dependencies when packing or publishing changes too: - -* [#2442](https://github.com/npm/npm/issues/2442) - bundledDependencies no longer requires that you specify deduped sub deps. - npm can now see that a dependency is required by something bundled and - automatically include it. To put that another way, bundledDependencies - should ONLY include things that you included in dependencies, - optionalDependencies or devDependencies. -* [#5437](https://github.com/npm/npm/issues/5437) - When bundling a dependency that's both a `devDependency` and the child of - a regular `dependency`, npm bundles the child dependency. - -As a demonstration of our confidence in our own work, npm's own -dependencies are now flattened, deduped, and bundled in the `npm@3` style. -This means that `npm@3` can't be packed or published by `npm@2`, which is -something to be aware of if you're hacking on npm. - -##### Shrinkwraps: they are a-changin'! - -First of all, they should be idempotent now -([#5779](https://github.com/npm/npm/issues/5779)). No more differences -because the first time you install (without `npm-shrinkwrap.json`) and the -second time (with `npm-shrinkwrap.json`). - -* [#6781](https://github.com/npm/npm/issues/6781) - Second, if you save your changes to `package.json` and you have - `npm-shrinkwrap.json`, then it will be updated as well. This applies to - all of the commands that update your tree: - * `npm install --save` - * `npm update --save` - * `npm dedupe --save` ([#6410](https://github.com/npm/npm/issues/6410)) - * `npm uninstall --save` -* [#4944](https://github.com/npm/npm/issues/4944) - ([#5161](https://github.com/npm/npm/issues/5161) - [#5448](https://github.com/npm/npm/issues/5448)) - Third, because `node_modules` folders are now deduped and flat, - shrinkwrap has to also be smart enough to handle this. - -And finally, enjoy this shrinkwrap bug fix: - -* [#3675](https://github.com/npm/npm/issues/3675) - When shrinkwrapping a dependency that's both a `devDependency` and the - child of a regular `dependency`, npm now correctly includes the child. - -##### The Age of Progress (Bars)! - -* [#6911](https://github.com/npm/npm/issues/6911) - ([#1257](https://github.com/npm/npm/issues/1257) - [#5340](https://github.com/npm/npm/issues/5340) - [#6420](https://github.com/npm/npm/issues/6420)) - The spinner is gone (yay? boo? will you miss it?), and in its place npm - has _progress bars_, so you actually have some sense of how long installs - will take. It's provided in Unicode and non-Unicode variants, and Unicode - support is automatically detected from your environment. - -#### TINY JEWELS - -The bottom is where we usually hide the less interesting bits of each -release, but each of these are small but incredibly useful bits of this -release, and very much worth checking out: - -* [`9ebe312`](https://github.com/npm/npm/commit/9ebe312) - Build system maintainers, rejoice: npm does a better job of cleaning up - after itself in your temporary folder. -* [#6942](https://github.com/npm/npm/issues/6942) - Check for permissions issues prior to actually trying to install - anything. -* Emit warnings at the end of the installation when possible, so that - they'll be on your screen when npm stops. -* [#3505](https://github.com/npm/npm/issues/3505) - `npm --dry-run`: You can now ask that npm only report what it _would have - done_ with the new `--dry-run` flag. This can be passed to any of the - commands that change your `node_modules` folder: `install`, `uninstall`, - `update` and `dedupe`. -* [`81b46fb`](https://github.com/npm/npm/commit/81b46fb) - npm now knows the correct URLs for `npm bugs` and `npm repo` for - repositories hosted on Bitbucket and GitLab, just like it does for GitHub - (and GitHub support now extends to projects hosted as gists as well as - traditional repositories). -* [`5be4008a`](https://github.com/npm/npm/commit/5be4008a09730cfa3891d9f145e4ec7f2accd144) - npm has been cleaned up to pass the [`standard`](http://npm.im/standard) - style checker. Forrest and Rebecca both feel this makes it easier to read - and understand the code, and should also make it easier for new - contributors to put merge-ready patches. - ([@othiym23](https://github.com/othiym23)) - -#### ZARRO BOOGS - -* [`6401643`](https://github.com/npm/npm/commit/6401643) - Make sure the global install directory exists before installing to it. - ([@thefourtheye](https://github.com/thefourtheye)) -* [#6158](https://github.com/npm/npm/issues/6158) - When we remove modules we do so inside-out running unbuild for each one. -* [`960a765`](https://github.com/npm/npm/commit/960a765) - The short usage information for each subcommand has been brought in sync - with the documentation. ([@smikes](https://github.com/smikes)) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/CONTRIBUTING.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/CONTRIBUTING.md deleted file mode 100644 index 73049a49..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/CONTRIBUTING.md +++ /dev/null @@ -1,12 +0,0 @@ -## Before you submit a new issue - -* Check if there's a simple solution in the - [Troubleshooting](https://github.com/npm/npm/wiki/Troubleshooting) - wiki. -* [Search for similar - issues](https://github.com/npm/npm/search?q=Similar%20issues&type=Issues). -* Ensure your new issue conforms to the [Contributing - Guidelines](https://github.com/npm/npm/wiki/Contributing-Guidelines). - -Participation in this open source project is subject to the [npm Code -of Conduct](http://www.npmjs.com/policies/conduct). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/LICENSE deleted file mode 100644 index 0b6c2287..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/LICENSE +++ /dev/null @@ -1,235 +0,0 @@ -The npm application -Copyright (c) npm, Inc. and Contributors -Licensed on the terms of The Artistic License 2.0 - -Node package dependencies of the npm application -Copyright (c) their respective copyright owners -Licensed on their respective license terms - -The npm public registry at https://registry.npmjs.org -and the npm website at https://www.npmjs.com -Operated by npm, Inc. -Use governed by terms published on https://www.npmjs.com - -"Node.js" -Trademark Joyent, Inc., https://joyent.com -Neither npm nor npm, Inc. are affiliated with Joyent, Inc. - -The Node.js application -Project of Node Foundation, https://nodejs.org - -The npm Logo -Copyright (c) Mathias Pettersson and Brian Hammond - -"Gubblebum Blocky" typeface -Copyright (c) Tjarda Koster, https://jelloween.deviantart.com -Used with permission - - --------- - - -The Artistic License 2.0 - -Copyright (c) 2000-2006, The Perl Foundation. - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -Preamble - -This license establishes the terms under which a given free software -Package may be copied, modified, distributed, and/or redistributed. -The intent is that the Copyright Holder maintains some artistic -control over the development of that Package while still keeping the -Package available as open source and free software. - -You are always permitted to make arrangements wholly outside of this -license directly with the Copyright Holder of a given Package. If the -terms of this license do not permit the full use that you propose to -make of the Package, you should contact the Copyright Holder and seek -a different licensing arrangement. - -Definitions - - "Copyright Holder" means the individual(s) or organization(s) - named in the copyright notice for the entire Package. - - "Contributor" means any party that has contributed code or other - material to the Package, in accordance with the Copyright Holder's - procedures. - - "You" and "your" means any person who would like to copy, - distribute, or modify the Package. - - "Package" means the collection of files distributed by the - Copyright Holder, and derivatives of that collection and/or of - those files. A given Package may consist of either the Standard - Version, or a Modified Version. - - "Distribute" means providing a copy of the Package or making it - accessible to anyone else, or in the case of a company or - organization, to others outside of your company or organization. - - "Distributor Fee" means any fee that you charge for Distributing - this Package or providing support for this Package to another - party. It does not mean licensing fees. - - "Standard Version" refers to the Package if it has not been - modified, or has been modified only in ways explicitly requested - by the Copyright Holder. - - "Modified Version" means the Package, if it has been changed, and - such changes were not explicitly requested by the Copyright - Holder. - - "Original License" means this Artistic License as Distributed with - the Standard Version of the Package, in its current version or as - it may be modified by The Perl Foundation in the future. - - "Source" form means the source code, documentation source, and - configuration files for the Package. - - "Compiled" form means the compiled bytecode, object code, binary, - or any other form resulting from mechanical transformation or - translation of the Source form. - - -Permission for Use and Modification Without Distribution - -(1) You are permitted to use the Standard Version and create and use -Modified Versions for any purpose without restriction, provided that -you do not Distribute the Modified Version. - - -Permissions for Redistribution of the Standard Version - -(2) You may Distribute verbatim copies of the Source form of the -Standard Version of this Package in any medium without restriction, -either gratis or for a Distributor Fee, provided that you duplicate -all of the original copyright notices and associated disclaimers. At -your discretion, such verbatim copies may or may not include a -Compiled form of the Package. - -(3) You may apply any bug fixes, portability changes, and other -modifications made available from the Copyright Holder. The resulting -Package will still be considered the Standard Version, and as such -will be subject to the Original License. - - -Distribution of Modified Versions of the Package as Source - -(4) You may Distribute your Modified Version as Source (either gratis -or for a Distributor Fee, and with or without a Compiled form of the -Modified Version) provided that you clearly document how it differs -from the Standard Version, including, but not limited to, documenting -any non-standard features, executables, or modules, and provided that -you do at least ONE of the following: - - (a) make the Modified Version available to the Copyright Holder - of the Standard Version, under the Original License, so that the - Copyright Holder may include your modifications in the Standard - Version. - - (b) ensure that installation of your Modified Version does not - prevent the user installing or running the Standard Version. In - addition, the Modified Version must bear a name that is different - from the name of the Standard Version. - - (c) allow anyone who receives a copy of the Modified Version to - make the Source form of the Modified Version available to others - under - - (i) the Original License or - - (ii) a license that permits the licensee to freely copy, - modify and redistribute the Modified Version using the same - licensing terms that apply to the copy that the licensee - received, and requires that the Source form of the Modified - Version, and of any works derived from it, be made freely - available in that license fees are prohibited but Distributor - Fees are allowed. - - -Distribution of Compiled Forms of the Standard Version -or Modified Versions without the Source - -(5) You may Distribute Compiled forms of the Standard Version without -the Source, provided that you include complete instructions on how to -get the Source of the Standard Version. Such instructions must be -valid at the time of your distribution. If these instructions, at any -time while you are carrying out such distribution, become invalid, you -must provide new instructions on demand or cease further distribution. -If you provide valid instructions or cease distribution within thirty -days after you become aware that the instructions are invalid, then -you do not forfeit any of your rights under this license. - -(6) You may Distribute a Modified Version in Compiled form without -the Source, provided that you comply with Section 4 with respect to -the Source of the Modified Version. - - -Aggregating or Linking the Package - -(7) You may aggregate the Package (either the Standard Version or -Modified Version) with other packages and Distribute the resulting -aggregation provided that you do not charge a licensing fee for the -Package. Distributor Fees are permitted, and licensing fees for other -components in the aggregation are permitted. The terms of this license -apply to the use and Distribution of the Standard or Modified Versions -as included in the aggregation. - -(8) You are permitted to link Modified and Standard Versions with -other works, to embed the Package in a larger work of your own, or to -build stand-alone binary or bytecode versions of applications that -include the Package, and Distribute the result without restriction, -provided the result does not expose a direct interface to the Package. - - -Items That are Not Considered Part of a Modified Version - -(9) Works (including, but not limited to, modules and scripts) that -merely extend or make use of the Package, do not, by themselves, cause -the Package to be a Modified Version. In addition, such works are not -considered parts of the Package itself, and are not subject to the -terms of this license. - - -General Provisions - -(10) Any use, modification, and distribution of the Standard or -Modified Versions is governed by this Artistic License. By using, -modifying or distributing the Package, you accept this license. Do not -use, modify, or distribute the Package, if you do not accept this -license. - -(11) If your Modified Version has been derived from a Modified -Version made by someone other than you, you are nevertheless required -to ensure that your Modified Version complies with the requirements of -this license. - -(12) This license does not grant you the right to use any trademark, -service mark, tradename, or logo of the Copyright Holder. - -(13) This license includes the non-exclusive, worldwide, -free-of-charge patent license to make, have made, use, offer to sell, -sell, import and otherwise transfer the Package with respect to any -patent claims licensable by the Copyright Holder that are necessarily -infringed by the Package. If you institute patent litigation -(including a cross-claim or counterclaim) against any party alleging -that the Package constitutes direct or contributory patent -infringement, then this Artistic License to you shall terminate on the -date that such litigation is filed. - -(14) Disclaimer of Warranty: -THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS -IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR -NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL -LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - --------- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/Makefile deleted file mode 100644 index 8466cfad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/Makefile +++ /dev/null @@ -1,182 +0,0 @@ -# vim: set softtabstop=2 shiftwidth=2: -SHELL = bash - -PUBLISHTAG = $(shell node scripts/publish-tag.js) -BRANCH = $(shell git rev-parse --abbrev-ref HEAD) - -markdowns = $(shell find doc -name '*.md' | grep -v 'index') README.md - -html_docdeps = html/dochead.html \ - html/docfoot.html \ - scripts/doc-build.sh \ - package.json - -cli_mandocs = $(shell find doc/cli -name '*.md' \ - |sed 's|.md|.1|g' \ - |sed 's|doc/cli/|man/man1/|g' ) \ - man/man1/npm-README.1 - -files_mandocs = $(shell find doc/files -name '*.md' \ - |sed 's|.md|.5|g' \ - |sed 's|doc/files/|man/man5/|g' ) \ - man/man5/npm-json.5 \ - man/man5/npm-global.5 - -misc_mandocs = $(shell find doc/misc -name '*.md' \ - |sed 's|.md|.7|g' \ - |sed 's|doc/misc/|man/man7/|g' ) \ - man/man7/npm-index.7 - -cli_htmldocs = $(shell find doc/cli -name '*.md' \ - |sed 's|.md|.html|g' \ - |sed 's|doc/cli/|html/doc/cli/|g' ) \ - html/doc/README.html - -files_htmldocs = $(shell find doc/files -name '*.md' \ - |sed 's|.md|.html|g' \ - |sed 's|doc/files/|html/doc/files/|g' ) \ - html/doc/files/npm-json.html \ - html/doc/files/npm-global.html - -misc_htmldocs = $(shell find doc/misc -name '*.md' \ - |sed 's|.md|.html|g' \ - |sed 's|doc/misc/|html/doc/misc/|g' ) \ - html/doc/index.html - -mandocs = $(cli_mandocs) $(files_mandocs) $(misc_mandocs) - -htmldocs = $(cli_htmldocs) $(files_htmldocs) $(misc_htmldocs) - -all: doc - -latest: - @echo "Installing latest published npm" - @echo "Use 'make install' or 'make link' to install the code" - @echo "in this folder that you're looking at right now." - node cli.js install -g -f npm ${NPMOPTS} - -install: all - node cli.js install -g -f ${NPMOPTS} - -# backwards compat -dev: install - -link: uninstall - node cli.js link -f - -clean: markedclean marked-manclean doc-clean uninstall - rm -rf npmrc - node cli.js cache clean - -uninstall: - node cli.js rm npm -g -f - -doc: $(mandocs) $(htmldocs) - -markedclean: - rm -rf node_modules/marked node_modules/.bin/marked .building_marked - -marked-manclean: - rm -rf node_modules/marked-man node_modules/.bin/marked-man .building_marked-man - -docclean: doc-clean -doc-clean: - rm -rf \ - .building_marked \ - .building_marked-man \ - html/doc \ - man - -# use `npm install marked-man` for this to work. -man/man1/npm-README.1: README.md scripts/doc-build.sh package.json - @[ -d man/man1 ] || mkdir -p man/man1 - scripts/doc-build.sh $< $@ - -man/man1/%.1: doc/cli/%.md scripts/doc-build.sh package.json - @[ -d man/man1 ] || mkdir -p man/man1 - scripts/doc-build.sh $< $@ - -man/man5/npm-json.5: man/man5/package.json.5 - cp $< $@ - -man/man5/npm-global.5: man/man5/npm-folders.5 - cp $< $@ - -man/man5/%.5: doc/files/%.md scripts/doc-build.sh package.json - @[ -d man/man5 ] || mkdir -p man/man5 - scripts/doc-build.sh $< $@ - -doc/misc/npm-index.md: scripts/index-build.js package.json - node scripts/index-build.js > $@ - -html/doc/index.html: doc/misc/npm-index.md $(html_docdeps) - @[ -d html/doc ] || mkdir -p html/doc - scripts/doc-build.sh $< $@ - -man/man7/%.7: doc/misc/%.md scripts/doc-build.sh package.json - @[ -d man/man7 ] || mkdir -p man/man7 - scripts/doc-build.sh $< $@ - -html/doc/README.html: README.md $(html_docdeps) - @[ -d html/doc ] || mkdir -p html/doc - scripts/doc-build.sh $< $@ - -html/doc/cli/%.html: doc/cli/%.md $(html_docdeps) - @[ -d html/doc/cli ] || mkdir -p html/doc/cli - scripts/doc-build.sh $< $@ - -html/doc/files/npm-json.html: html/doc/files/package.json.html - cp $< $@ - -html/doc/files/npm-global.html: html/doc/files/npm-folders.html - cp $< $@ - -html/doc/files/%.html: doc/files/%.md $(html_docdeps) - @[ -d html/doc/files ] || mkdir -p html/doc/files - scripts/doc-build.sh $< $@ - -html/doc/misc/%.html: doc/misc/%.md $(html_docdeps) - @[ -d html/doc/misc ] || mkdir -p html/doc/misc - scripts/doc-build.sh $< $@ - - -marked: node_modules/.bin/marked - -node_modules/.bin/marked: - node cli.js install marked --no-global - -marked-man: node_modules/.bin/marked-man - -node_modules/.bin/marked-man: - node cli.js install marked-man --no-global - -doc: man - -man: $(cli_docs) - -test: doc - node cli.js test - -tag: - npm tag npm@$(PUBLISHTAG) latest - -ls-ok: - node . ls >/dev/null - -gitclean: - git clean -fd - -publish: gitclean ls-ok link doc-clean doc - @git push origin :v$(shell npm -v) 2>&1 || true - git push origin $(BRANCH) &&\ - git push origin --tags &&\ - npm publish --tag=$(PUBLISHTAG) - -release: gitclean ls-ok markedclean marked-manclean doc-clean doc - node cli.js prune --production - @bash scripts/release.sh - -sandwich: - @[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || (echo "make it yourself" && exit 13) - -.PHONY: all latest install dev link doc clean uninstall test man doc-clean docclean release ls-ok realclean diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/README.md deleted file mode 100644 index a2e2481d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/README.md +++ /dev/null @@ -1,166 +0,0 @@ -npm(1) -- a JavaScript package manager -============================== -[![Build Status](https://img.shields.io/travis/npm/npm/master.svg)](https://travis-ci.org/npm/npm) -## SYNOPSIS - -This is just enough info to get you up and running. - -Much more info available via `npm help` once it's installed. - -## IMPORTANT - -**You need node v0.8 or higher to run this program.** - -To install an old **and unsupported** version of npm that works on node 0.3 -and prior, clone the git repo and dig through the old tags and branches. - -**npm is configured to use npm, Inc.'s public package registry at - by default.** - -You can configure npm to use any compatible registry you -like, and even run your own registry. Check out the [doc on -registries](https://docs.npmjs.com/misc/registry). - -Use of someone else's registry may be governed by terms of use. The -terms of use for the default public registry are available at -. - -## Super Easy Install - -npm is bundled with [node](http://nodejs.org/download/). - -### Windows Computers - -[Get the MSI](http://nodejs.org/download/). npm is in it. - -### Apple Macintosh Computers - -[Get the pkg](http://nodejs.org/download/). npm is in it. - -### Other Sorts of Unices - -Run `make install`. npm will be installed with node. - -If you want a more fancy pants install (a different version, customized -paths, etc.) then read on. - -## Fancy Install (Unix) - -There's a pretty robust install script at -. You can download that and run it. - -Here's an example using curl: - -```sh -curl -L https://www.npmjs.com/install.sh | sh -``` - -### Slightly Fancier - -You can set any npm configuration params with that script: - -```sh -npm_config_prefix=/some/path sh install.sh -``` - -Or, you can run it in uber-debuggery mode: - -```sh -npm_debug=1 sh install.sh -``` - -### Even Fancier - -Get the code with git. Use `make` to build the docs and do other stuff. -If you plan on hacking on npm, `make link` is your friend. - -If you've got the npm source code, you can also semi-permanently set -arbitrary config keys using the `./configure --key=val ...`, and then -run npm commands by doing `node cli.js `. (This is helpful -for testing, or running stuff without actually installing npm itself.) - -## Windows Install or Upgrade - -Many improvements for Windows users have been made in npm 3 - you will have a better -experience if you run a recent version of npm. To upgrade, either use [Microsoft's -upgrade tool](https://github.com/felixrieseberg/npm-windows-upgrade), -[download a new version of Node](http://nodejs.org/download/), -or follow the Windows upgrade instructions in the -[npm Troubleshooting Guide](https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows). - -If that's not fancy enough for you, then you can fetch the code with -git, and mess with it directly. - -## Installing on Cygwin - -No. - -## Uninstalling - -So sad to see you go. - -```sh -sudo npm uninstall npm -g -``` -Or, if that fails, - -```sh -sudo make uninstall -``` - -## More Severe Uninstalling - -Usually, the above instructions are sufficient. That will remove -npm, but leave behind anything you've installed. - -If you would like to remove all the packages that you have installed, -then you can use the `npm ls` command to find them, and then `npm rm` to -remove them. - -To remove cruft left behind by npm 0.x, you can use the included -`clean-old.sh` script file. You can run it conveniently like this: - -```sh -npm explore npm -g -- sh scripts/clean-old.sh -``` - -npm uses two configuration files, one for per-user configs, and another -for global (every-user) configs. You can view them by doing: - -```sh -npm config get userconfig # defaults to ~/.npmrc -npm config get globalconfig # defaults to /usr/local/etc/npmrc -``` - -Uninstalling npm does not remove configuration files by default. You -must remove them yourself manually if you want them gone. Note that -this means that future npm installs will not remember the settings that -you have chosen. - -## More Docs - -Check out the [docs](https://docs.npmjs.com/), - -You can use the `npm help` command to read any of them. - -If you're a developer, and you want to use npm to publish your program, -you should [read this](https://docs.npmjs.com/misc/developers) - -## BUGS - -When you find issues, please report them: - -* web: - - -Be sure to include *all* of the output from the npm command that didn't work -as expected. The `npm-debug.log` file is also helpful to provide. - -You can also look for isaacs in #node.js on irc://irc.freenode.net. He -will no doubt tell you to put the output in a gist or email. - -## SEE ALSO - -* npm(1) -* npm-help(1) -* npm-index(7) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/appveyor.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/appveyor.yml deleted file mode 100644 index 47d806df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/appveyor.yml +++ /dev/null @@ -1,36 +0,0 @@ -environment: - matrix: - # LTS is our most important target - - nodejs_version: "4" - # latest - - nodejs_version: "5" - # I like 0.10 better than 0.12 - - nodejs_version: "0.10" - - nodejs_version: "0.12" - # EOL summer 2016, most likely - - nodejs_version: "0.8" - COVERALLS_REPO_TOKEN: - secure: XdC0aySefK0HLh1GNk6aKrzZPbCfPQLyA4mYtFGEp4DrTuZA/iuCUS0LDqFYO8JQ -platform: - - x86 - - x64 -install: - - ps: Install-Product node $env:nodejs_version $env:platform - - npm config set spin false - - npm rebuild - - node . install -g . - - set "PATH=%APPDATA%\npm;C:\Program Files\Git\mingw64\libexec;%PATH%" - - npm install --loglevel=http -test_script: - - node --version - - npm --version - - npm test -notifications: -- provider: Slack - incoming_webhook: - secure: vXiG5AgpqxJsXZ0N0CTYDuVrX6RMjBybZKtOx6IbRxCyjgd+DAx6Z9/0XgYQjuof7QFJY3M/U6HxaREQVYbNVHA+C5N5dNALRbKzAC8QNbA= -# GO_FAST -matrix: - fast_finish: true -# we don't need the builds, we just need tests -build: off diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/node-gyp-bin/node-gyp b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/node-gyp-bin/node-gyp deleted file mode 100755 index 70efb6f3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/node-gyp-bin/node-gyp +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env sh -if [ "x$npm_config_node_gyp" = "x" ]; then - node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@" -else - "$npm_config_node_gyp" "$@" -fi diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/node-gyp-bin/node-gyp.cmd b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/node-gyp-bin/node-gyp.cmd deleted file mode 100755 index 083c9c58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/node-gyp-bin/node-gyp.cmd +++ /dev/null @@ -1,5 +0,0 @@ -if not defined npm_config_node_gyp ( - node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %* -) else ( - node "%npm_config_node_gyp%" %* -) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/npm b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/npm deleted file mode 100755 index 5acd6fb6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/npm +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix - -basedir=`dirname "$0"` - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -NODE_EXE="$basedir/node.exe" -if ! [ -x "$NODE_EXE" ]; then - NODE_EXE=node -fi - -NPM_CLI_JS="$basedir/node_modules/npm/bin/npm-cli.js" - -case `uname` in - *MINGW*) - NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` - NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js" - if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then - NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS" - fi - ;; - *CYGWIN*) - NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` - NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js" - if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then - NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS" - fi - ;; -esac - -"$NODE_EXE" "$NPM_CLI_JS" "$@" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/npm-cli.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/npm-cli.js deleted file mode 100755 index 55fa054d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/npm-cli.js +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env node -;(function () { // wrapper in case we're in module_context mode - // windows: running "npm blah" in this folder will invoke WSH, not node. - /*global WScript*/ - if (typeof WScript !== 'undefined') { - WScript.echo( - 'npm does not work when run\n' + - 'with the Windows Scripting Host\n\n' + - "'cd' to a different directory,\n" + - "or type 'npm.cmd ',\n" + - "or type 'node npm '." - ) - WScript.quit(1) - return - } - - process.title = 'npm' - - var log = require('npmlog') - log.pause() // will be unpaused when config is loaded. - - log.info('it worked if it ends with', 'ok') - - var path = require('path') - var npm = require('../lib/npm.js') - var npmconf = require('../lib/config/core.js') - var errorHandler = require('../lib/utils/error-handler.js') - - var configDefs = npmconf.defs - var shorthands = configDefs.shorthands - var types = configDefs.types - var nopt = require('nopt') - - // if npm is called as "npmg" or "npm_g", then - // run in global mode. - if (path.basename(process.argv[1]).slice(-1) === 'g') { - process.argv.splice(1, 1, 'npm', '-g') - } - - log.verbose('cli', process.argv) - - var conf = nopt(types, shorthands) - npm.argv = conf.argv.remain - if (npm.deref(npm.argv[0])) npm.command = npm.argv.shift() - else conf.usage = true - - if (conf.version) { - console.log(npm.version) - return - } - - if (conf.versions) { - npm.command = 'version' - conf.usage = false - npm.argv = [] - } - - log.info('using', 'npm@%s', npm.version) - log.info('using', 'node@%s', process.version) - - process.on('uncaughtException', errorHandler) - - if (conf.usage && npm.command !== 'help') { - npm.argv.unshift(npm.command) - npm.command = 'help' - } - - // now actually fire up npm and run the command. - // this is how to use npm programmatically: - conf._exit = true - npm.load(conf, function (er) { - if (er) return errorHandler(er) - npm.commands[npm.command](npm.argv, errorHandler) - }) -})() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/npm.cmd b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/npm.cmd deleted file mode 100644 index 880554dc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/npm.cmd +++ /dev/null @@ -1,19 +0,0 @@ -:: Created by npm, please don't edit manually. -@ECHO OFF - -SETLOCAL - -SET "NODE_EXE=%~dp0\node.exe" -IF NOT EXIST "%NODE_EXE%" ( - SET "NODE_EXE=node" -) - -SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js" -FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO ( - SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js" -) -IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" ( - SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%" -) - -"%NODE_EXE%" "%NPM_CLI_JS%" %* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/read-package-json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/read-package-json.js deleted file mode 100755 index 7e62a0bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/bin/read-package-json.js +++ /dev/null @@ -1,24 +0,0 @@ -var argv = process.argv -if (argv.length < 3) { - console.error('Usage: read-package.json [ ...]') - process.exit(1) -} - -var file = argv[2] -var readJson = require('read-package-json') - -readJson(file, function (er, data) { - if (er) throw er - if (argv.length === 3) { - console.log(data) - } else { - argv.slice(3).forEach(function (field) { - field = field.split('.') - var val = data - field.forEach(function (f) { - val = val[f] - }) - console.log(val) - }) - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/changelogs/CHANGELOG-1.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/changelogs/CHANGELOG-1.md deleted file mode 100644 index ea409c3d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/changelogs/CHANGELOG-1.md +++ /dev/null @@ -1,743 +0,0 @@ -### v1.4.29 (2015-10-29): - -#### THINGS ARE HAPPENING IN LTS LAND - -In a special one-off release as part of the [strategy to get a version of npm -into Node LTS that works with the current -registry](https://github.com/nodejs/LTS/issues/37), modify npm to print out -this deprecation banner literally every time npm is invoked to do anything: - -``` -npm WARN deprecated This version of npm lacks support for important features, -npm WARN deprecated such as scoped packages, offered by the primary npm -npm WARN deprecated registry. Consider upgrading to at least npm@2, if not the -npm WARN deprecated latest stable version. To upgrade to npm@2, run: -npm WARN deprecated -npm WARN deprecated npm -g install npm@latest-2 -npm WARN deprecated -npm WARN deprecated To upgrade to the latest stable version, run: -npm WARN deprecated -npm WARN deprecated npm -g install npm@latest -npm WARN deprecated -npm WARN deprecated (Depending on how Node.js was installed on your system, you -npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if -npm WARN deprecated on Windows, run them from an Administrator prompt.) -npm WARN deprecated -npm WARN deprecated If you're running the version of npm bundled with -npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS -npm WARN deprecated will be bundled with a version of npm@2, which has some small -npm WARN deprecated backwards-incompatible changes made to `npm run-script` and -npm WARN deprecated semver behavior. -``` - -The message basically tells the tale: Node 0.10 will finally be getting -`npm@2`, so those of you who haven't upgraded your build systems to deal with -its (relatively small) breaking changes should do so now. - -Also, this version doesn't even pretend that it can deal with scoped packages, -which, given the confusing behavior of older versions of `npm@1.4`, where it -would sometimes try to install packages from GitHub, is a distinct improvement. - -There is no good reason for you as an end user to upgrade to this version of -npm yourself. - -* [`709e9b4`](https://github.com/npm/npm/commit/709e9b44f5df9817a1c4babfbf26a2329bd265fb) - Print 20-line deprecation banner on all command invocations. - ([@othiym23](https://github.com/othiym23)) -* [`0c29d09`](https://github.com/npm/npm/commit/0c29d0906608e8e174bd30a7a245e19795326051) - Crash out immediately with an exhortation to upgrade on attempts to use - scoped packages. ([@othiym23](https://github.com/othiym23)) - -### v1.5.0-alpha-4 (2014-07-18): - -* fall back to `_auth` config as default auth when using default registry - ([@isaacs](https://github.com/isaacs)) -* support for 'init.version' for those who don't want to deal with semver 0.0.x - oddities ([@rvagg](https://github.com/rvagg)) -* [`be06213`](https://github.com/npm/npm/commit/be06213415f2d51a50d2c792b4cd0d3412a9a7b1) - remove residual support for `win` log level - ([@aterris](https://github.com/aterris)) - -### v1.5.0-alpha-3 (2014-07-17): - -* [`a3a85dd`](https://github.com/npm/npm/commit/a3a85dd004c9245a71ad2f0213bd1a9a90d64cd6) - `--save` scoped packages correctly ([@othiym23](https://github.com/othiym23)) -* [`18a3385`](https://github.com/npm/npm/commit/18a3385bcf8bfb8312239216afbffb7eec759150) - `npm-registry-client@3.0.2` ([@othiym23](https://github.com/othiym23)) -* [`375988b`](https://github.com/npm/npm/commit/375988b9bf5aa5170f06a790d624d31b1eb32c6d) - invalid package names are an early error for optional deps - ([@othiym23](https://github.com/othiym23)) -* consistently use `node-package-arg` instead of arbitrary package spec - splitting ([@othiym23](https://github.com/othiym23)) - -### v1.5.0-alpha-2 (2014-07-01): - -* [`54cf625`](https://github.com/npm/npm/commit/54cf62534e3331e3f454e609e44f0b944e819283) - fix handling for 301s in `npm-registry-client@3.0.1` - ([@Raynos](https://github.com/Raynos)) -* [`e410861`](https://github.com/npm/npm/commit/e410861c69a3799c1874614cb5b87af8124ff98d) - don't crash if no username set on `whoami` - ([@isaacs](https://github.com/isaacs)) -* [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406) - respect `--json` for output ([@isaacs](https://github.com/isaacs)) -* [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6) - outdated: Don't show headings if there's nothing to output - ([@isaacs](https://github.com/isaacs)) -* [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3) - outdated: Default to `latest` rather than `*` for unspecified deps - ([@isaacs](https://github.com/isaacs)) - -### v1.5.0-alpha-1 (2014-07-01): - -* [`eef4884`](https://github.com/npm/npm/commit/eef4884d6487ee029813e60a5f9c54e67925d9fa) - use the correct piece of the spec for GitHub shortcuts - ([@othiym23](https://github.com/othiym23)) - -### v1.5.0-alpha-0 (2014-07-01): - -* [`7f55057`](https://github.com/npm/npm/commit/7f55057807cfdd9ceaf6331968e666424f48116c) - install scoped packages ([#5239](https://github.com/npm/npm/issues/5239)) - ([@othiym23](https://github.com/othiym23)) -* [`0df7e16`](https://github.com/npm/npm/commit/0df7e16c0232d8f4d036ebf4ec3563215517caac) - publish scoped packages ([#5239](https://github.com/npm/npm/issues/5239)) - ([@othiym23](https://github.com/othiym23)) -* [`0689ba2`](https://github.com/npm/npm/commit/0689ba249b92b4c6279a26804c96af6f92b3a501) - support (and save) --scope=@s config - ([@othiym23](https://github.com/othiym23)) -* [`f34878f`](https://github.com/npm/npm/commit/f34878fc4cee29901e4daf7bace94be01e25cad7) - scope credentials to registry ([@othiym23](https://github.com/othiym23)) -* [`0ac7ca2`](https://github.com/npm/npm/commit/0ac7ca233f7a69751fe4386af6c4daa3ee9fc0da) - capture and store bearer tokens when sent by registry - ([@othiym23](https://github.com/othiym23)) -* [`63c3277`](https://github.com/npm/npm/commit/63c3277f089b2c4417e922826bdc313ac854cad6) - only delete files that are created by npm - ([@othiym23](https://github.com/othiym23)) -* [`4f54043`](https://github.com/npm/npm/commit/4f540437091d1cbca3915cd20c2da83c2a88bb8e) - `npm-package-arg@2.0.0` ([@othiym23](https://github.com/othiym23)) -* [`9e1460e`](https://github.com/npm/npm/commit/9e1460e6ac9433019758481ec031358f4af4cd44) - `read-package-json@1.2.3` ([@othiym23](https://github.com/othiym23)) -* [`719d8ad`](https://github.com/npm/npm/commit/719d8adb9082401f905ff4207ede494661f8a554) - `fs-vacuum@1.2.1` ([@othiym23](https://github.com/othiym23)) -* [`9ef8fe4`](https://github.com/npm/npm/commit/9ef8fe4d6ead3acb3e88c712000e2d3a9480ebec) - `async-some@1.0.0` ([@othiym23](https://github.com/othiym23)) -* [`a964f65`](https://github.com/npm/npm/commit/a964f65ab662107b62a4ca58535ce817e8cca331) - `npmconf@2.0.1` ([@othiym23](https://github.com/othiym23)) -* [`113765b`](https://github.com/npm/npm/commit/113765bfb7d3801917c1d9f124b8b3d942bec89a) - `npm-registry-client@3.0.0` ([@othiym23](https://github.com/othiym23)) - -### v1.4.28 (2014-09-12): - -* [`f4540b6`](https://github.com/npm/npm/commit/f4540b6537a87e653d7495a9ddcf72949fdd4d14) - [#6043](https://github.com/npm/npm/issues/6043) defer rollbacks until just - before the CLI exits ([@isaacs](https://github.com/isaacs)) -* [`1eabfd5`](https://github.com/npm/npm/commit/1eabfd5c03f33c2bd28823714ff02059eeee3899) - [#6043](https://github.com/npm/npm/issues/6043) `slide@1.1.6`: wait until all - callbacks have finished before proceeding - ([@othiym23](https://github.com/othiym23)) - -### v1.4.27 (2014-09-04): - -* [`4cf3c8f`](https://github.com/npm/npm/commit/4cf3c8fd78c9e2693a5f899f50c28f4823c88e2e) - [#6007](https://github.com/npm/npm/issues/6007) request@2.42.0: properly set - headers on proxy requests ([@isaacs](https://github.com/isaacs)) -* [`403cb52`](https://github.com/npm/npm/commit/403cb526be1472bb7545fa8e62d4976382cdbbe5) - [#6055](https://github.com/npm/npm/issues/6055) npmconf@1.1.8: restore - case-insensitivity of environmental config - ([@iarna](https://github.com/iarna)) - -### v1.4.26 (2014-08-28): - -* [`eceea95`](https://github.com/npm/npm/commit/eceea95c804fa15b18e91c52c0beb08d42a3e77d) - `github-url-from-git@1.4.0`: add support for git+https and git+ssh - ([@stefanbuck](https://github.com/stefanbuck)) -* [`e561758`](https://github.com/npm/npm/commit/e5617587e7d7ab686192391ce55357dbc7fed0a3) - `columnify@1.2.1` ([@othiym23](https://github.com/othiym23)) -* [`0c4fab3`](https://github.com/npm/npm/commit/0c4fab372ee76eab01dda83b6749429a8564902e) - `cmd-shim@2.0.0`: upgrade to graceful-fs 3 - ([@ForbesLindesay](https://github.com/ForbesLindesay)) -* [`2d69e4d`](https://github.com/npm/npm/commit/2d69e4d95777671958b5e08d3b2f5844109d73e4) - `github-url-from-username-repo@1.0.0`: accept slashes in branch names - ([@robertkowalski](https://github.com/robertkowalski)) -* [`81f9b2b`](https://github.com/npm/npm/commit/81f9b2bac9d34c223ea093281ba3c495f23f10d1) - ensure lifecycle spawn errors caught properly - ([@isaacs](https://github.com/isaacs)) -* [`bfaab8c`](https://github.com/npm/npm/commit/bfaab8c6e0942382a96b250634ded22454c36b5a) - `npm-registry-client@2.0.7`: properly encode % in passwords - ([@isaacs](https://github.com/isaacs)) -* [`91cfb58`](https://github.com/npm/npm/commit/91cfb58dda851377ec604782263519f01fd96ad8) - doc: Fix 'npm help index' ([@isaacs](https://github.com/isaacs)) - -### v1.4.25 (2014-08-21): - -* [`64c0ec2`](https://github.com/npm/npm/commit/64c0ec241ef5d83761ca8de54acb3c41b079956e) - `npm-registry-client@2.0.6`: Print the notification header returned by the - registry, and make sure status codes are printed without gratuitous quotes - around them. - ([@othiym23](https://github.com/othiym23)) -* [`a8ed12b`](https://github.com/npm/npm/commit/a8ed12b) `tar@1.0.1`: - Add test for removing an extract target immediately after unpacking. - ([@isaacs](https://github.com/isaacs)) -* [`70fd11d`](https://github.com/npm/npm/commit/70fd11d) - `lockfile@1.0.0`: Fix incorrect interaction between `wait`, `stale`, - and `retries` options. Part 2 of race condition leading to `ENOENT` - errors. - ([@isaacs](https://github.com/isaacs)) -* [`0072c4d`](https://github.com/npm/npm/commit/0072c4d) - `fstream@1.0.2`: Fix a double-finish call which can result in excess - FS operations after the `close` event. Part 2 of race condition - leading to `ENOENT` errors. - ([@isaacs](https://github.com/isaacs)) - -### v1.4.24 (2014-08-14): - -* [`9344bd9`](https://github.com/npm/npm/commit/9344bd9b2929b5c399a0e0e0b34d45bce7bc24bb) - doc: add new changelog ([@othiym23](https://github.com/othiym23)) -* [`4be76fd`](https://github.com/npm/npm/commit/4be76fd65e895883c337a99f275ccc8c801adda3) - doc: update version doc to include `pre-*` increment args - ([@isaacs](https://github.com/isaacs)) -* [`e4f2620`](https://github.com/npm/npm/commit/e4f262036080a282ad60e236a9aeebd39fde9fe4) - build: add `make tag` to tag current release as `latest` - ([@isaacs](https://github.com/isaacs)) -* [`ec2596a`](https://github.com/npm/npm/commit/ec2596a7cb626772780b25b0a94a7e547a812bd5) - build: publish with `--tag=v1.4-next` ([@isaacs](https://github.com/isaacs)) -* [`9ee55f8`](https://github.com/npm/npm/commit/9ee55f892b8b473032a43c59912c5684fd1b39e6) - build: add script to output `v1.4-next` publish tag - ([@isaacs](https://github.com/isaacs)) -* [`aecb56f`](https://github.com/npm/npm/commit/aecb56f95a84687ea46920a0b98aaa587fee1568) - build: remove outdated `docpublish` make target - ([@isaacs](https://github.com/isaacs)) -* [`b57a9b7`](https://github.com/npm/npm/commit/b57a9b7ccd13e6b38831ed63595c8ea5763da247) - build: remove unpublish step from `make publish` - ([@isaacs](https://github.com/isaacs)) -* [`2c6acb9`](https://github.com/npm/npm/commit/2c6acb96c71c16106965d5cd829b67195dd673c7) - install: rename `.gitignore` when unpacking foreign tarballs - ([@isaacs](https://github.com/isaacs)) -* [`22f3681`](https://github.com/npm/npm/commit/22f3681923e993a47fc1769ba735bfa3dd138082) - cache: detect non-gzipped tar files more reliably - ([@isaacs](https://github.com/isaacs)) - -### v1.4.23 (2014-07-31): - -* [`8dd11d1`](https://github.com/npm/npm/commit/8dd11d1) update several - dependencies to avoid using `semver`s starting with 0. - -### v1.4.22 (2014-07-31): - -* [`d9a9e84`](https://github.com/npm/npm/commit/d9a9e84) `read-package-json@1.2.4` - ([@isaacs](https://github.com/isaacs)) -* [`86f0340`](https://github.com/npm/npm/commit/86f0340) - `github-url-from-git@1.2.0` ([@isaacs](https://github.com/isaacs)) -* [`a94136a`](https://github.com/npm/npm/commit/a94136a) `fstream@0.1.29` - ([@isaacs](https://github.com/isaacs)) -* [`bb82d18`](https://github.com/npm/npm/commit/bb82d18) `glob@4.0.5` - ([@isaacs](https://github.com/isaacs)) -* [`5b6bcf4`](https://github.com/npm/npm/commit/5b6bcf4) `cmd-shim@1.1.2` - ([@isaacs](https://github.com/isaacs)) -* [`c2aa8b3`](https://github.com/npm/npm/commit/c2aa8b3) license: Cleaned up - legalese with actual lawyer ([@isaacs](https://github.com/isaacs)) -* [`63fe0ee`](https://github.com/npm/npm/commit/63fe0ee) `init-package-json@1.0.0` - ([@isaacs](https://github.com/isaacs)) - -### v1.4.21 (2014-07-14): - -* [`88f51aa`](https://github.com/npm/npm/commit/88f51aa27eb9a958d1fa7ec50fee5cfdedd05110) - fix handling for 301s in `npm-registry-client@2.0.3` - ([@Raynos](https://github.com/Raynos)) - -### v1.4.20 (2014-07-02): - -* [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406) - respect `--json` for output ([@isaacs](https://github.com/isaacs)) -* [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6) - outdated: Don't show headings if there's nothing to output - ([@isaacs](https://github.com/isaacs)) -* [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3) - outdated: Default to `latest` rather than `*` for unspecified deps - ([@isaacs](https://github.com/isaacs)) - -### v1.4.19 (2014-07-01): - -* [`f687433`](https://github.com/npm/npm/commit/f687433) relative URLS for - working non-root registry URLS ([@othiym23](https://github.com/othiym23)) -* [`bea190c`](https://github.com/npm/npm/commit/bea190c) - [#5591](https://github.com/npm/npm/issues/5591) bump nopt and npmconf - ([@isaacs](https://github.com/isaacs)) - -### v1.4.18 (2014-06-29): - -* Bump glob dependency from 4.0.2 to 4.0.3. It now uses graceful-fs when - available, increasing resilience to [various filesystem - errors](https://github.com/isaacs/node-graceful-fs#improvements-over-fs-module). - ([@isaacs](https://github.com/isaacs)) - -### v1.4.17 (2014-06-27): - -* replace escape codes with ansicolors - ([@othiym23](https://github.com/othiym23)) -* Allow to build all the docs OOTB. ([@GeJ](https://github.com/GeJ)) -* Use core.longpaths on win32 git - fixes - [#5525](https://github.com/npm/npm/issues/5525) ([@bmeck](https://github.com/bmeck)) -* `npmconf@1.1.2` ([@isaacs](https://github.com/isaacs)) -* Consolidate color sniffing in config/log loading process - ([@isaacs](https://github.com/isaacs)) -* add verbose log when project config file is ignored - ([@isaacs](https://github.com/isaacs)) -* npmconf: Float patch to remove 'scope' from config defs - ([@isaacs](https://github.com/isaacs)) -* doc: npm-explore can't handle a version - ([@robertkowalski](https://github.com/robertkowalski)) -* Add user-friendly errors for ENOSPC and EROFS. - ([@voodootikigod](https://github.com/voodootikigod)) -* bump tar and fstream deps ([@isaacs](https://github.com/isaacs)) -* Run the npm-registry-couchapp tests along with npm tests - ([@isaacs](https://github.com/isaacs)) - -### v1.2.8000 (2014-06-17): - -* Same as v1.4.16, but with the spinner disabled, and a version number that - starts with v1.2. - -### v1.4.16 (2014-06-17): - -* `npm-registry-client@2.0.2` ([@isaacs](https://github.com/isaacs)) -* `fstream@0.1.27` ([@isaacs](https://github.com/isaacs)) -* `sha@1.2.4` ([@isaacs](https://github.com/isaacs)) -* `rimraf@2.2.8` ([@isaacs](https://github.com/isaacs)) -* `npmlog@1.0.1` ([@isaacs](https://github.com/isaacs)) -* `npm-registry-client@2.0.1` ([@isaacs](https://github.com/isaacs)) -* removed redundant dependency ([@othiym23](https://github.com/othiym23)) -* `npmconf@1.0.5` ([@isaacs](https://github.com/isaacs)) -* Properly handle errors that can occur in the config-loading process - ([@isaacs](https://github.com/isaacs)) - -### v1.4.15 (2014-06-10): - -* cache: atomic de-race-ified package.json writing - ([@isaacs](https://github.com/isaacs)) -* `fstream@0.1.26` ([@isaacs](https://github.com/isaacs)) -* `graceful-fs@3.0.2` ([@isaacs](https://github.com/isaacs)) -* `osenv@0.1.0` ([@isaacs](https://github.com/isaacs)) -* Only spin the spinner when we're fetching stuff - ([@isaacs](https://github.com/isaacs)) -* Update `osenv@0.1.0` which removes ~/tmp as possible tmp-folder - ([@robertkowalski](https://github.com/robertkowalski)) -* `ini@1.2.1` ([@isaacs](https://github.com/isaacs)) -* `graceful-fs@3` ([@isaacs](https://github.com/isaacs)) -* Update glob and things depending on glob - ([@isaacs](https://github.com/isaacs)) -* github-url-from-username-repo and read-package-json updates - ([@isaacs](https://github.com/isaacs)) -* `editor@0.1.0` ([@isaacs](https://github.com/isaacs)) -* `columnify@1.1.0` ([@isaacs](https://github.com/isaacs)) -* bump ansi and associated deps ([@isaacs](https://github.com/isaacs)) - -### v1.4.14 (2014-06-05): - -* char-spinner: update to not bork windows - ([@isaacs](https://github.com/isaacs)) - -### v1.4.13 (2014-05-23): - -* Fix `npm install` on a tarball. - ([`ed3abf1`](https://github.com/npm/npm/commit/ed3abf1aa10000f0f687330e976d78d1955557f6), - [#5330](https://github.com/npm/npm/issues/5330), - [@othiym23](https://github.com/othiym23)) -* Fix an issue with the spinner on Node 0.8. - ([`9f00306`](https://github.com/npm/npm/commit/9f003067909440390198c0b8f92560d84da37762), - [@isaacs](https://github.com/isaacs)) -* Re-add `npm.commands.cache.clean` and `npm.commands.cache.read` APIs, and - document `npm.commands.cache.*` as npm-cache(3). - ([`e06799e`](https://github.com/npm/npm/commit/e06799e77e60c1fc51869619083a25e074d368b3), - [@isaacs](https://github.com/isaacs)) - -### v1.4.12 (2014-05-23): - -* remove normalize-package-data from top level, de-^-ify inflight dep - ([@isaacs](https://github.com/isaacs)) -* Always sort saved bundleDependencies ([@isaacs](https://github.com/isaacs)) -* add inflight to bundledDependencies - ([@othiym23](https://github.com/othiym23)) - -### v1.4.11 (2014-05-22): - -* fix `npm ls` labeling issue -* `node-gyp@0.13.1` -* default repository to https:// instead of git:// -* addLocalTarball: Remove extraneous unpack - ([@isaacs](https://github.com/isaacs)) -* Massive cache folder refactor ([@othiym23](https://github.com/othiym23) and - [@isaacs](https://github.com/isaacs)) -* Busy Spinner, no http noise ([@isaacs](https://github.com/isaacs)) -* Per-project .npmrc file support ([@isaacs](https://github.com/isaacs)) -* `npmconf@1.0.0`, Refactor config/uid/prefix loading process - ([@isaacs](https://github.com/isaacs)) -* Allow once-disallowed characters in passwords - ([@isaacs](https://github.com/isaacs)) -* Send npm version as 'version' header ([@isaacs](https://github.com/isaacs)) -* fix cygwin encoding issue (Karsten Tinnefeld) -* Allow non-github repositories with `npm repo` - ([@evanlucas](https://github.com/evanlucas)) -* Allow peer deps to be satisfied by grandparent -* Stop optional deps moving into deps on `update --save` - ([@timoxley](https://github.com/timoxley)) -* Ensure only matching deps update with `update --save*` - ([@timoxley](https://github.com/timoxley)) -* Add support for `prerelease`, `preminor`, `prepatch` to `npm version` - -### v1.4.10 (2014-05-05): - -* Don't set referer if already set -* fetch: Send referer and npm-session headers -* `run-script`: Support `--parseable` and `--json` -* list runnable scripts ([@evanlucas](https://github.com/evanlucas)) -* Use marked instead of ronn for html docs - -### v1.4.9 (2014-05-01): - -* Send referer header (with any potentially private stuff redacted) -* Fix critical typo bug in previous npm release - -### v1.4.8 (2014-05-01): - -* Check SHA before using files from cache -* adduser: allow change of the saved password -* Make `npm install` respect `config.unicode` -* Fix lifecycle to pass `Infinity` for config env value -* Don't return 0 exit code on invalid command -* cache: Handle 404s and other HTTP errors as errors -* Resolve ~ in path configs to env.HOME -* Include npm version in default user-agent conf -* npm init: Use ISC as default license, use save-prefix for deps -* Many test and doc fixes - -### v1.4.7 (2014-04-15): - -* Add `--save-prefix` option that can be used to override the default of `^` - when using `npm install --save` and its counterparts. - ([`64eefdf`](https://github.com/npm/npm/commit/64eefdfe26bb27db8dc90e3ab5d27a5ef18a4470), - [@thlorenz](https://github.com/thlorenz)) -* Allow `--silent` to silence the echoing of commands that occurs with `npm - run`. - ([`c95cf08`](https://github.com/npm/npm/commit/c95cf086e5b97dbb48ff95a72517b203a8f29eab), - [@Raynos](https://github.com/Raynos)) -* Some speed improvements to the cache, which should improve install times. - ([`cb94310`](https://github.com/npm/npm/commit/cb94310a6adb18cb7b881eacb8d67171eda8b744), - [`3b0870f`](https://github.com/npm/npm/commit/3b0870fb2f40358b3051abdab6be4319d196b99d), - [`120f5a9`](https://github.com/npm/npm/commit/120f5a93437bbbea9249801574a2f33e44e81c33), - [@isaacs](https://github.com/isaacs)) -* Improve ability to retry registry requests when a subset of the registry - servers are down. - ([`4a5257d`](https://github.com/npm/npm/commit/4a5257de3870ac3dafa39667379f19f6dcd6093e), - https://github.com/npm/npm-registry-client/commit/7686d02cb0b844626d6a401e58c0755ef3bc8432, - [@isaacs](https://github.com/isaacs)) -* Fix marking of peer dependencies as extraneous. - ([`779b164`](https://github.com/npm/npm/commit/779b1649764607b062c031c7e5c972151b4a1754), - https://github.com/npm/read-installed/commit/6680ba6ef235b1ca3273a00b70869798ad662ddc, - [@isaacs](https://github.com/isaacs)) -* Fix npm crashing when doing `npm shrinkwrap` in the presence of a - `package.json` with no dependencies. - ([`a9d9fa5`](https://github.com/npm/npm/commit/a9d9fa5ad3b8c925a589422b7be28d2735f320b0), - [@kislyuk](https://github.com/kislyuk)) -* Fix error when using `npm view` on packages that have no versions or have - been unpublished. - ([`94df2f5`](https://github.com/npm/npm/commit/94df2f56d684b35d1df043660180fc321b743dc8), - [@juliangruber](https://github.com/juliangruber); - [`2241a09`](https://github.com/npm/npm/commit/2241a09c843669c70633c399ce698cec3add40b3), - [@isaacs](https://github.com/isaacs)) - -### v1.4.6 (2014-03-19): - -* Fix extraneous package detection to work in more cases. - ([`f671286`](https://github.com/npm/npm/commit/f671286), npm/read-installed#20, - [@LaurentVB](https://github.com/LaurentVB)) - -### v1.4.5 (2014-03-18): - -* Sort dependencies in `package.json` when doing `npm install --save` and all - its variants. - ([`6fd6ff7`](https://github.com/npm/npm/commit/6fd6ff7e536ea6acd33037b1878d4eca1f931985), - [@domenic](https://github.com/domenic)) -* Add `--save-exact` option, usable alongside `--save` and its variants, which - will write the exact version number into `package.json` instead of the - appropriate semver-compatibility range. - ([`17f07df`](https://github.com/npm/npm/commit/17f07df8ad8e594304c2445bf7489cb53346f2c5), - [@timoxley](https://github.com/timoxley)) -* Accept gzipped content from the registry to speed up downloads and save - bandwidth. - ([`a3762de`](https://github.com/npm/npm/commit/a3762de843b842be8fa0ab57cdcd6b164f145942), - npm/npm-registry-client#40, [@fengmk2](https://github.com/fengmk2)) -* Fix `npm ls`'s `--depth` and `--log` options. - ([`1d29b17`](https://github.com/npm/npm/commit/1d29b17f5193d52a5c4faa412a95313dcf41ed91), - npm/read-installed#13, [@zertosh](https://github.com/zertosh)) -* Fix "Adding a cache directory to the cache will make the world implode" in - certain cases. - ([`9a4b2c4`](https://github.com/npm/npm/commit/9a4b2c4667c2b1e0054e3d5611ab86acb1760834), - domenic/path-is-inside#1, [@pmarques](https://github.com/pmarques)) -* Fix readmes not being uploaded in certain rare cases. - ([`527b72c`](https://github.com/npm/npm/commit/527b72cca6c55762b51e592c48a9f28cc7e2ff8b), - [@isaacs](https://github.com/isaacs)) - -### v1.4.4 (2014-02-20): - -* Add `npm t` as an alias for `npm test` (which is itself an alias for `npm run - test`, or even `npm run-script test`). We like making running your tests - easy. ([`14e650b`](https://github.com/npm/npm/commit/14e650bce0bfebba10094c961ac104a61417a5de), [@isaacs](https://github.com/isaacs)) - -### v1.4.3 (2014-02-16): - -* Add back `npm prune --production`, which was removed in 1.3.24. - ([`acc4d02`](https://github.com/npm/npm/commit/acc4d023c57d07704b20a0955e4bf10ee91bdc83), - [@davglass](https://github.com/davglass)) -* Default `npm install --save` and its counterparts to use the `^` version - specifier, instead of `~`. - ([`0a3151c`](https://github.com/npm/npm/commit/0a3151c9cbeb50c1c65895685c2eabdc7e2608dc), - [@mikolalysenko](https://github.com/mikolalysenko)) -* Make `npm shrinkwrap` output dependencies in a sorted order, so that diffs - between shrinkwrap files should be saner now. - ([`059b2bf`](https://github.com/npm/npm/commit/059b2bfd06ae775205a37257dca80142596a0113), - [@Raynos](https://github.com/Raynos)) -* Fix `npm dedupe` not correctly respecting dependency constraints. - ([`86028e9`](https://github.com/npm/npm/commit/86028e9fd8524d5e520ce01ba2ebab5a030103fc), - [@rafeca](https://github.com/rafeca)) -* Fix `npm ls` giving spurious warnings when you used `"latest"` as a version - specifier. - (https://github.com/npm/read-installed/commit/d2956400e0386931c926e0f30c334840e0938f14, - [@bajtos](https://github.com/bajtos)) -* Fixed a bug where using `npm link` on packages without a `name` value could - cause npm to delete itself. - ([`401a642`](https://github.com/npm/npm/commit/401a64286aa6665a94d1d2f13604f7014c5fce87), - [@isaacs](https://github.com/isaacs)) -* Fixed `npm install ./pkg@1.2.3` to actually install the directory at - `pkg@1.2.3`; before it would try to find version `1.2.3` of the package - `./pkg` in the npm registry. - ([`46d8768`](https://github.com/npm/npm/commit/46d876821d1dd94c050d5ebc86444bed12c56739), - [@rlidwka](https://github.com/rlidwka); see also - [`f851b79`](https://github.com/npm/npm/commit/f851b79a71d9a5f5125aa85877c94faaf91bea5f)) -* Fix `npm outdated` to respect the `color` configuration option. - ([`d4f6f3f`](https://github.com/npm/npm/commit/d4f6f3ff83bd14fb60d3ac6392cb8eb6b1c55ce1), - [@timoxley](https://github.com/timoxley)) -* Fix `npm outdated --parseable`. - ([`9575a23`](https://github.com/npm/npm/commit/9575a23f955ce3e75b509c89504ef0bd707c8cf6), - [@yhpark](https://github.com/yhpark)) -* Fix a lockfile-related errors when using certain Git URLs. - ([`164b97e`](https://github.com/npm/npm/commit/164b97e6089f64e686db7a9a24016f245effc37f), - [@nigelzor](https://github.com/nigelzor)) - -### v1.4.2 (2014-02-13): - -* Fixed an issue related to mid-publish GET requests made against the registry. - (https://github.com/npm/npm-registry-client/commit/acbec48372bc1816c67c9e7cbf814cf50437ff93, - [@isaacs](https://github.com/isaacs)) - -### v1.4.1 (2014-02-13): - -* Fix `npm shrinkwrap` forgetting to shrinkwrap dependencies that were also - development dependencies. - ([`9c575c5`](https://github.com/npm/npm/commit/9c575c56efa9b0c8b0d4a17cb9c1de3833004bcd), - [@diwu1989](https://github.com/diwu1989)) -* Fixed publishing of pre-existing packages with uppercase characters in their - name. - (https://github.com/npm/npm-registry-client/commit/9345d3b6c3d8510dd5c4418f27ee1fce59acebad, - [@isaacs](https://github.com/isaacs)) - -### v1.4.0 (2014-02-12): - -* Remove `npm publish --force`. See - https://github.com/npm/npmjs.org/issues/148. - ([@isaacs](https://github.com/isaacs), - npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a) -* Other changes to the registry client related to saved configs and couch - logins. ([@isaacs](https://github.com/isaacs); - npm/npm-registry-client@25e2b019a1588155e5f87d035c27e79963b75951, - npm/npm-registry-client@9e41e9101b68036e0f078398785f618575f3cdde, - npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a) -* Show an error to the user when doing `npm update` and the `package.json` - specifies a version that does not exist. - ([@evanlucas](https://github.com/evanlucas), - [`027a33a`](https://github.com/npm/npm/commit/027a33a5c594124cc1d82ddec5aee2c18bc8dc32)) -* Fix some issues with cache ownership in certain installation configurations. - ([@outcoldman](https://github.com/outcoldman), - [`a132690`](https://github.com/npm/npm/commit/a132690a2876cda5dcd1e4ca751f21dfcb11cb9e)) -* Fix issues where GitHub shorthand dependencies `user/repo` were not always - treated the same as full Git URLs. - ([@robertkowalski](https://github.com/robertkowalski), - https://github.com/meryn/normalize-package-data/commit/005d0b637aec1895117fcb4e3b49185eebf9e240) - -### v1.3.26 (2014-02-02): - -* Fixes and updates to publishing code - ([`735427a`](https://github.com/npm/npm/commit/735427a69ba4fe92aafa2d88f202aaa42920a9e2) - and - [`c0ac832`](https://github.com/npm/npm/commit/c0ac83224d49aa62e55577f8f27d53bbfd640dc5), - [@isaacs](https://github.com/isaacs)) -* Fix `npm bugs` with no arguments. - ([`b99d465`](https://github.com/npm/npm/commit/b99d465221ac03bca30976cbf4d62ca80ab34091), - [@Hoops](https://github.com/Hoops)) - -### v1.3.25 (2014-01-25): - -* Remove gubblebum blocky font from documentation headers. - ([`6940c9a`](https://github.com/npm/npm/commit/6940c9a100160056dc6be8f54a7ad7fa8ceda7e2), - [@isaacs](https://github.com/isaacs)) - -### v1.3.24 (2014-01-19): - -* Make the search output prettier, with nice truncated columns, and a `--long` - option to create wrapping columns. - ([`20439b2`](https://github.com/npm/npm/commit/20439b2) and - [`3a6942d`](https://github.com/npm/npm/commit/3a6942d), - [@timoxley](https://github.com/timoxley)) -* Support multiple packagenames in `npm docs`. - ([`823010b`](https://github.com/npm/npm/commit/823010b), - [@timoxley](https://github.com/timoxley)) -* Fix the `npm adduser` bug regarding "Error: default value must be string or - number" again. ([`b9b4248`](https://github.com/npm/npm/commit/b9b4248), - [@isaacs](https://github.com/isaacs)) -* Fix `scripts` entries containing whitespaces on Windows. - ([`80282ed`](https://github.com/npm/npm/commit/80282ed), - [@robertkowalski](https://github.com/robertkowalski)) -* Fix `npm update` for Git URLs that have credentials in them - ([`93fc364`](https://github.com/npm/npm/commit/93fc364), - [@danielsantiago](https://github.com/danielsantiago)) -* Fix `npm install` overwriting `npm link`-ed dependencies when they are tagged - Git dependencies. ([`af9bbd9`](https://github.com/npm/npm/commit/af9bbd9), - [@evanlucas](https://github.com/evanlucas)) -* Remove `npm prune --production` since it buggily removed some dependencies - that were necessary for production; see - [#4509](https://github.com/npm/npm/issues/4509). Hopefully it can make its - triumphant return, one day. - ([`1101b6a`](https://github.com/npm/npm/commit/1101b6a), - [@isaacs](https://github.com/isaacs)) - -Dependency updates: -* [`909cccf`](https://github.com/npm/npm/commit/909cccf) `read-package-json@1.1.6` -* [`a3891b6`](https://github.com/npm/npm/commit/a3891b6) `rimraf@2.2.6` -* [`ac6efbc`](https://github.com/npm/npm/commit/ac6efbc) `sha@1.2.3` -* [`dd30038`](https://github.com/npm/npm/commit/dd30038) `node-gyp@0.12.2` -* [`c8c3ebe`](https://github.com/npm/npm/commit/c8c3ebe) `npm-registry-client@0.3.3` -* [`4315286`](https://github.com/npm/npm/commit/4315286) `npmconf@0.1.12` - -### v1.3.23 (2014-01-03): - -* Properly handle installations that contained a certain class of circular - dependencies. - ([`5dc93e8`](https://github.com/npm/npm/commit/5dc93e8c82604c45b6067b1acf1c768e0bfce754), - [@substack](https://github.com/substack)) - -### v1.3.22 (2013-12-25): - -* Fix a critical bug in `npm adduser` that would manifest in the error message - "Error: default value must be string or number." - ([`fba4bd2`](https://github.com/npm/npm/commit/fba4bd24bc2ab00ccfeda2043aa53af7d75ef7ce), - [@isaacs](https://github.com/isaacs)) -* Allow `npm bugs` in the current directory to open the current package's bugs - URL. - ([`d04cf64`](https://github.com/npm/npm/commit/d04cf6483932c693452f3f778c2fa90f6153a4af), - [@evanlucas](https://github.com/evanlucas)) -* Several fixes to various error messages to include more useful or updated - information. - ([`1e6f2a7`](https://github.com/npm/npm/commit/1e6f2a72ca058335f9f5e7ca22d01e1a8bb0f9f7), - [`ff46366`](https://github.com/npm/npm/commit/ff46366bd40ff0ef33c7bac8400bc912c56201d1), - [`8b4bb48`](https://github.com/npm/npm/commit/8b4bb4815d80a3612186dc5549d698e7b988eb03); - [@rlidwka](https://github.com/rlidwka), - [@evanlucas](https://github.com/evanlucas)) - -### v1.3.21 (2013-12-17): - -* Fix a critical bug that prevented publishing due to incorrect hash - calculation. - ([`4ca4a2c`](https://github.com/npm/npm-registry-client/commit/4ca4a2c6333144299428be6b572e2691aa59852e), - [@dominictarr](https://github.com/dominictarr)) - -### v1.3.20 (2013-12-17): - -* Fixes a critical bug in v1.3.19. Thankfully, due to that bug, no one could - install npm v1.3.19 :) - -### v1.3.19 (2013-12-16): - -* Adds atomic PUTs for publishing packages, which should result in far fewer - requests and less room for replication errors on the server-side. - -### v1.3.18 (2013-12-16): - -* Added an `--ignore-scripts` option, which will prevent `package.json` scripts - from being run. Most notably, this will work on `npm install`, so e.g. `npm - install --ignore-scripts` will not run preinstall and prepublish scripts. - ([`d7e67bf`](https://github.com/npm/npm/commit/d7e67bf0d94b085652ec1c87d595afa6f650a8f6), - [@sqs](https://github.com/sqs)) -* Fixed a bug introduced in 1.3.16 that would manifest with certain cache - configurations, by causing spurious errors saying "Adding a cache directory - to the cache will make the world implode." - ([`966373f`](https://github.com/npm/npm/commit/966373fad8d741637f9744882bde9f6e94000865), - [@domenic](https://github.com/domenic)) -* Re-fixed the multiple download of URL dependencies, whose fix was reverted in - 1.3.17. - ([`a362c3f`](https://github.com/npm/npm/commit/a362c3f1919987419ed8a37c8defa19d2e6697b0), - [@spmason](https://github.com/spmason)) - -### v1.3.17 (2013-12-11): - -* This release reverts - [`644c2ff`](https://github.com/npm/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7), - which avoided re-downloading URL and shinkwrap dependencies when doing `npm - install`. You can see the in-depth reasoning in - [`d8c907e`](https://github.com/npm/npm/commit/d8c907edc2019b75cff0f53467e34e0ffd7e5fba); - the problem was, that the patch changed the behavior of `npm install -f` to - reinstall all dependencies. -* A new version of the no-re-downloading fix has been submitted as - [#4303](https://github.com/npm/npm/issues/4303) and will hopefully be - included in the next release. - -### v1.3.16 (2013-12-11): - -* Git URL dependencies are now updated on `npm install`, fixing a two-year old - bug - ([`5829ecf`](https://github.com/npm/npm/commit/5829ecf032b392d2133bd351f53d3c644961396b), - [@robertkowalski](https://github.com/robertkowalski)). Additional progress on - reducing the resulting Git-related I/O is tracked as - [#4191](https://github.com/npm/npm/issues/4191), but for now, this will be a - big improvement. -* Added a `--json` mode to `npm outdated` to give a parseable output. - ([`0b6c9b7`](https://github.com/npm/npm/commit/0b6c9b7c8c5579f4d7d37a0c24d9b7a12ccbe5fe), - [@yyx990803](https://github.com/yyx990803)) -* Made `npm outdated` much prettier and more useful. It now outputs a - color-coded and easy-to-read table. - ([`fd3017f`](https://github.com/npm/npm/commit/fd3017fc3e9d42acf6394a5285122edb4dc16106), - [@quimcalpe](https://github.com/quimcalpe)) -* Added the `--depth` option to `npm outdated`, so that e.g. you can do `npm - outdated --depth=0` to show only top-level outdated dependencies. - ([`1d184ef`](https://github.com/npm/npm/commit/1d184ef3f4b4bc309d38e9128732e3e6fb46d49c), - [@yyx990803](https://github.com/yyx990803)) -* Added a `--no-git-tag-version` option to `npm version`, for doing the usual - job of `npm version` minus the Git tagging. This could be useful if you need - to increase the version in other related files before actually adding the - tag. - ([`59ca984`](https://github.com/npm/npm/commit/59ca9841ba4f4b2f11b8e72533f385c77ae9f8bd), - [@evanlucas](https://github.com/evanlucas)) -* Made `npm repo` and `npm docs` work without any arguments, adding them to the - list of npm commands that work on the package in the current directory when - invoked without arguments. - ([`bf9048e`](https://github.com/npm/npm/commit/bf9048e2fa16d43fbc4b328d162b0a194ca484e8), - [@robertkowalski](https://github.com/robertkowalski); - [`07600d0`](https://github.com/npm/npm/commit/07600d006c652507cb04ac0dae9780e35073dd67), - [@wilmoore](https://github.com/wilmoore)). There are a few other commands we - still want to implement this for; see - [#4204](https://github.com/npm/npm/issues/4204). -* Pass through the `GIT_SSL_NO_VERIFY` environment variable to Git, if it is - set; we currently do this with a few other environment variables, but we - missed that one. - ([`c625de9`](https://github.com/npm/npm/commit/c625de91770df24c189c77d2e4bc821f2265efa8), - [@arikon](https://github.com/arikon)) -* Fixed `npm dedupe` on Windows due to incorrect path separators being used - ([`7677de4`](https://github.com/npm/npm/commit/7677de4583100bc39407093ecc6bc13715bf8161), - [@mcolyer](https://github.com/mcolyer)). -* Fixed the `npm help` command when multiple words were searched for; it - previously gave a `ReferenceError`. - ([`6a28dd1`](https://github.com/npm/npm/commit/6a28dd147c6957a93db12b1081c6e0da44fe5e3c), - [@dereckson](https://github.com/dereckson)) -* Stopped re-downloading URL and shrinkwrap dependencies, as demonstrated in - [#3463](https://github.com/npm/npm/issues/3463) - ([`644c2ff`](https://github.com/isaacs/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7), - [@spmason](https://github.com/spmason)). You can use the `--force` option to - force re-download and installation of all dependencies. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/changelogs/CHANGELOG-2.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/changelogs/CHANGELOG-2.md deleted file mode 100644 index 48fe5033..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/changelogs/CHANGELOG-2.md +++ /dev/null @@ -1,4665 +0,0 @@ -### v2.15.2 (2016-03-24): - -It's always nice to see new contributors. 💚 - -This week sees another small release, but we're still chugging along on our -[Windows efforts](https://github.com/npm/npm/pull/11444). - -There's also some small process changes to our LTS process relatively recently -that you might wanna know about! 💁 - -For one, the `2.x` branch was removed in favor of just `lts`. If you're making -PRs exclusively against npm's LTS, please use that name from now on. `2.x` was -deleted. - -Also, [@othiym23](https://github.com/othiym23) put some time into [writing down -our LTS process and policy](https://github.com/npm/npm/wiki/LTS). Check it out -and ping us if you have questions or comments about it! - -In general, we're trying to make sure all our policy and such for our -contributors is written down, and we hope it makes it easier in general for -y'all. Forrest is also working on a shiny new Contributor's Guide right now, but -we'll link to that in the (near?) future, when it's ready to roll out. - -#### TESTS - -* [`1d0e468`](https://github.com/npm/npm/commit/1d0e468c06c7b8e2b95b7fe874a3399a16d9db74) - [#11931](https://github.com/npm/npm/pull/11931) - Removes a bunch of old, disabled tests that have just been sitting around, - doing nothing. - ([@othiym23](https://github.com/othiym23)) -* [`7ae8aa1`](https://github.com/npm/npm/commit/7ae8aa1d9dc47761024f6756114205db3fb2c80b) - [#11987](https://github.com/npm/npm/pull/11987) - There was a failure in the `outdated-symlink` test caused by using the default - registry instead of the mock registry tests. - ([@yodeyer](https://github.com/yodeyer)) - -#### DOCS - -* [`b2649fb`](https://github.com/npm/npm/commit/b2649fb360f239aadef1ab51a580cbf4fdf29722) - [#12006](https://github.com/npm/npm/pull/12006) - Access was Team and Team was Access, but someone from the community rolled - around and corrected it for us. Thanks a bunch! - ([@yaelz](https://github.com/yaelz)) - -### v2.15.1 (2016-03-17): - -#### SECURITY ADVISORY: BEARER TOKEN DISCLOSURE - -This release includes [the fix for a -vulnerability](https://github.com/npm/npm/commit/fea8cc92cee02c720b58f95f14d315507ccad401) -that could cause the unintentional leakage of bearer tokens. - -Here are details on this vulnerability and how it affects you. - -##### DETAILS - -Since 2014, npm’s registry has used HTTP bearer tokens to authenticate requests -from the npm’s command-line interface. A design flaw meant that the CLI was -sending these bearer tokens with _every_ request made by logged-in users, -regardless of the destination of their request. (The bearers only should have -been included for requests made against a registry or registries used for the -current install.) - -An attacker could exploit this flaw by setting up an HTTP server that could -collect authentication information, then use this authentication information to -impersonate the users whose tokens they collected. This impersonation would -allow them to do anything the compromised users could do, including publishing -new versions of packages. - -With the fixes we’ve released, the CLI will only send bearer tokens with -requests made against a registry. - -##### THINK YOU'RE AT RISK? REGENERATE YOUR TOKENS - -If you believe that your bearer token may have been leaked, [invalidate your -current npm bearer tokens](https://www.npmjs.com/settings/tokens) and rerun -`npm login` to generate new tokens. Keep in mind that this may cause continuous -integration builds in services like Travis to break, in which case you’ll need -to update the tokens in your CI server’s configuration. - -##### WILL THIS BREAK MY CURRENT SETUP? - -Maybe. - -npm’s CLI team believes that the fix won’t break any existing registry setups. -Due to the large number of registry software suites out in the wild, though, -it’s possible our change will be breaking in some cases. - -If so, please [file an issue](https://github.com/npm/npm/issues/new) describing -the software you’re using and how it broke. Our team will work with you to -mitigate the breakage. - -##### CREDIT & THANKS - -Thanks to Mitar, Will White & the team at Mapbox, Max Motovilov, and James -Taylor for reporting this vulnerability to npm. - -### BACK TO YOUR REGULARLY SCHEDULED PROGRAMMING - -Aside from that, it's another one of those releases again! Docs and tests, it -turns out, have a pretty easy time getting into LTS releases, and boring is -exactly how LTS should be. 💁 - -#### DOCS - -* [`981c89c`](https://github.com/npm/npm/commit/981c89c8e398ca22ab6bf466123b25728ef6f543) - [#11820](https://github.com/npm/npm/pull/11820) - The basic explanation for how `npm link` works was a bit confusing, and - somewhat incorrect. It should be clearer now. - ([@rhgb](https://github.com/rhgb)) -* [`35b2b45`](https://github.com/npm/npm/commit/35b2b45f181dcbfb297f53b577dc1f26efcf3aba) - [#11787](https://github.com/npm/npm/pull/11787) - The `verison` alias for `npm version` no longer shows up in the command list - when you do `npm -h`. - ([@doug-wade](https://github.com/doug-wade)) -* [`1c9d00f`](https://github.com/npm/npm/commit/1c9d00f788298a81a8a7293d7dcf430f01bdd7fd) - [#11786](https://github.com/npm/npm/pull/11786) - Add a comment to the `npm-scope.md` docs about `npm@>=2` being required in - order to use scoped packaged. - ([@doug-wade](https://github.com/doug-wade)) -* [`7d64fb1`](https://github.com/npm/npm/commit/7d64fb1452d360aa736f31c85d6776ce570b2365) - [#11762](https://github.com/npm/npm/pull/11762) - Roll back patch that previously advised people to use `--depth Infinity` - instead of `--depth 9999`. Just keep using `--depth 9999`. - ([@GriffinSchneider](https://github.com/GriffinSchneider)) - -#### TESTS - -* [`98a9ee4`](https://github.com/npm/npm/commit/98a9ee4773f83994b8eb63c0ff75a9283408ba1a) - [#11912](https://github.com/npm/npm/pull/11912) - Did you know npm can install itself? `npm install -g npm` is the way to - upgrade! Turns out that one of the tests that verified this functionality got - rewritten as part of our recent push for better tests, and in the process - omitted a detail about *how* the test ran. We're testing that corner case - again, now, by moving the install folder to `/tmp`, where the original legacy - test ran. - ([@iarna](https://github.com/iarna)) - -### v2.15.0 (2016-03-10): - -#### WHY IS THIS SEMVER-MINOR I THOUGHT THIS WAS LTS - -A brief note about LTS this week! - -npm, as you may know if you're using this `2.x` branch, has an LTS process for -releases. We also try and play nice with [Node.js' own LTS release -process](https://github.com/nodejs/LTS#lts-plan). That means we generally try to -avoid things like minor version bumps on our `2.x` branch (which is also tagged -`lts` in the `dist-tag`s). - -That said, we had a minor-bump update recently for `npm@3.8.0` which added a -`maxsockets` option to allow users to configure the number of concurrent sockets -that npm would keep open at a time -- a setting that has the potential to help a -bunch for people with fussy routers or internet connections that aren't very -happy with Node.js applications' usual concurrency storm. This change was done -to `npm-registry-client`, which we don't have a parallel LTS-tracking branch -for. - -After talking it over, we ended up deciding that this was a reasonable enough -addition to LTS, even though it's *technically* a `semver-minor` bump, taking -into account both its potential for bugfixing (specially on `2.x`!) and the -general hassle it would be to maintain another branch for `npm-registry-client`. - - -* [`6dd61e7`](https://github.com/npm/npm/commit/6dd61e781c145480dc255a3e6a748729868443fd) - Expose `maxsockets` config setting from new `npm-registry-client`. - ([@misterbyrne](https://github.com/misterbyrne)) -* [`8a021c3`](https://github.com/npm/npm/commit/8a021c35184e665bd1f3f70ae2f478af812ab614) - `npm-registry-client@7.1.0`: - Adds support for configuring the max number of concurrent sockets, defaulting - to `50`. - ([@iarna](https://github.com/iarna)) - -#### DOC PATCH IS HERE TOO - -* [`0ae9f74`](https://github.com/npm/npm/commit/0ae9f740001a1bdf5920bc464cf9e284d5d139f0) - [#11748](https://github.com/npm/npm/pull/11748) - Add command aliases as a separate section in documentation for npm - subcommands. - ([@watilde](https://github.com/watilde)) - -#### DEP UPDATES - -* [`bfc3888`](https://github.com/npm/npm/commit/bfc38887f832f701c16b7ee410c4e0220a90399f) - `strip-ansi@3.0.1` - ([@jbnicolai](https://github.com/jbnicolai)) -* [`d5f4d51`](https://github.com/npm/npm/commit/d5f4d51a1b7ea78d7431c7ed4fed30200b2622f8) - `node-gyp@3.3.1`: Fixes Android generator - ([@bnoordhuis](https://github.com/bnoordhuis)) -* [`4119df8`](https://github.com/npm/npm/commit/4119df8aecd2ae57b0492ad8c9a480d900833008) - `glob@7.0.3`: Some path-related fixes for Windows. - ([@isaacs](https://github.com/isaacs)) - -### v2.14.22 (2016-03-03): - -This week is all documentation improvements. In case you hadn't noticed, we -*love* doc patches. We love them so much, we give socks away if you submit -documentation PRs! - -These folks are all getting socks if they ask for them. The socks are -super-sweet. Do you have yours yet? 👣 - -* [`3f3c7d0`](https://github.com/npm/npm/commit/3f3c7d080f052a5db91ff6091f8b1b13f26b53d6) - [#11441](https://github.com/npm/npm/pull/11441) - Add a link to the [Contribution - Guidelines](https://github.com/npm/npm/wiki/Contributing-Guidelines) to the - main npm docs. - ([@watilde](https://github.com/watilde)) -* [`9f87bb1`](https://github.com/npm/npm/commit/9f87bb1934acb33b678c17b7827165b17c071a82) - [#11441](https://github.com/npm/npm/pull/11441) - Remove Google Group email from npm docs about contributing. - ([@watilde](https://github.com/watilde)) -* [`93eaab3`](https://github.com/npm/npm/commit/93eaab3ee5ad16c7d90d1a4b38a95403fcf3f0f6) - [#11474](https://github.com/npm/npm/pull/11474) - Fix an invalid JSON error overlooked in - [#11196](https://github.com/npm/npm/pull/11196). - ([@robludwig](https://github.com/robludwig)) -* [`a407ca2`](https://github.com/npm/npm/commit/a407ca2bcf6a05117e55cf2ab69376e09094995e) - [#11483](https://github.com/npm/npm/pull/11483) - Add more details and an example to the documentation for bundledDependencies. - ([@gnerkus](https://github.com/gnerkus)) -* [`2c851a2`](https://github.com/npm/npm/commit/2c851a231afd874baa77c42ea5ba539c454ac79c) - [#11490](https://github.com/npm/npm/pull/11490) - Document the `--registry` flag for `npm search`. - ([@plumlee](https://github.com/plumlee)) - -### v2.14.21 (2016-02-25): - -Good news, everyone! There's a new LTS release with a few shinies here and there! - -#### USE THIS ONE INSTEAD - -We had some cases where the versions of npm and node used in some scripting situations were different than the ideal, or what folks actually expected. These should be particularly helpful to our Windows friends! <3 - -* [`02813c5`](https://github.com/npm/npm/commit/02813c55782a9def23f7f1e614edc38c6c88aed3) [#9253](https://github.com/npm/npm/issues/9253) Fix a bug where, when running lifecycle scripts, if the Node.js binary you ran `npm` with wasn't in your `PATH`, `npm` wouldn't use it to run your scripts. ([@segrey](https://github.com/segrey) and [@narqo](https://github.com/narqo)) -* [`a985dd5`](https://github.com/npm/npm/commit/a985dd50e06ee51ba5544577f977c7440c227ba2) [#11526](https://github.com/npm/npm/pull/11526) Prefer locally installed npm in Git Bash -- previous behavior was to use the global one. This was done previously for other shells, but not for Git Bash. ([@destroyerofbuilds](https://github.com/destroyerofbuilds)) - -#### SOCKS FOR THE SOCK GOD - -* [`f961092`](https://github.com/npm/npm/commit/f9610920079d8b88ae464b30007a92c594bd85a8) - [#11636.](https://github.com/npm/npm/issues/11636.) - Document the `--save-bundle` option for `npm install`. - ([@datyayu](https://github.com/datyayu)) -* [`7c908b6`](https://github.com/npm/npm/commit/7c908b618f7123f0a3b860c71eb779e33df35964) - [#11644](https://github.com/npm/npm/pull/11644) - Add documentation for the `test` directory for packages. - ([@lewiscowper](https://github.com/lewiscowper)) - -#### INTERNAL TEST IMPROVEMENTS - -The npm CLI team's time recently has been sunk into npm's many years of tech debt. Specifically, we've been working on improving the test suite. This isn't user visible, but in future should mean a more stable, easier to contribute to npm. Ordinarily we don't report these kinds of changes in the change log, but I thought I might share this week as this chunk is bigger than usual. - -These patches were previously released for `npm@3`, and then ported back to `npm@2` LTS. - -* [`437c537`](https://github.com/npm/npm/commit/437c537e2be5923c6d2c2753154564ba13db8fd9) [#11613](https://github.com/npm/npm/pull/11613) Fix up one of the tests after rebasing the legacy test rewrite to `npm@2`. ([@zkat](https://github.com/zkat)) -* [`55abd0c`](https://github.com/npm/npm/commit/55abd0cc20e87a144d33ce2d459f65e7506da576) [#11613](https://github.com/npm/npm/pull/11613) Test that the `package.json` `files` section and `.npmignore` do what they're supposed to. ([@zkat](https://github.com/zkat)) -* [`a2b99b6`](https://github.com/npm/npm/commit/a2b99b6273ada14b2121ebc0acb7933e630edd9d) [#11613](https://github.com/npm/npm/pull/11613) Test that npm's distribution binary is complete and can be installed and used. ([@iarna](https://github.com/iarna)) -* [`8a8c36c`](https://github.com/npm/npm/commit/8a8c36ce51166006022e5c5d4f8655bbc458d651) [#11613](https://github.com/npm/npm/pull/11613) Test that environment variables are properly passed into scripts. - ([@iarna](https://github.com/zkat)) -* [`a95b550`](https://github.com/npm/npm/commit/a95b5507616bd51e83d7eab5f2337b1aff6480b1) [#11613](https://github.com/npm/npm/pull/11613) Test that we don't leak auth info into the environment. ([@iarna](https://github.com/iarna)) -* [`a1c1c52`](https://github.com/npm/npm/commit/a1c1c52efeab24f6dba154d054f85d9efc833486) [#11613](https://github.com/npm/npm/pull/11613) Remove all the relatively cryptic legacy tests and creates new tap tests that check the same functionality. The *legacy* tests were tests that were originally a shell script that was ported to javascript early in `npm`'s history. ([@iarna](https:\\github.com/iarna) and [@zkat](https://github.com/zkat)) -* [`9d89581`](https://github.com/npm/npm/commit/9d895811d3ee70c2e672f3d8fa06574495b5b488) [#11613](https://github.com/npm/npm/pull/11613) `tacks@1.0.9`: Add a package that provides a tool to generate fixtures from folders and, relatedly, a module that an create and tear down filesystem fixtures easily. ([@iarna](https://github.com/iarna)) - -### v2.14.20 (2016-02-18): - -Hope y'all are having a nice week! As usual, it's a fairly limited release. The -most notable thing is some dependency updates that might help the Node.js CI -setup for Windows run a little better, even if we have some work to do on that -path length things, still. - -#### WHITTLING AWAY AT PATH LENGTHS - -So for all of you who don't know -- Node.js does, in fact, support long Windows -paths. Unfortunately, depending on the tool and the Windows version, a lot of -external tooling does not. This means, for example, that some (all?) versions of -Windows Explorer *can literally never delete npm from their system entirely -because of deeply-nested npm dependencies*. Which is pretty gnarly. - -Incidentally, if you run into that in particularly, you can use -[rimraf](npm.im/rimraf) to remove such files 💁. - -The latest victim of this issue was the Node.js CI setup for testing on Windows, -which uses some tooling or another that croaks on the usual path length limit -for that OS: 255 characters. - -This issue, of course, is largely not a problem as of `npm@3`, with its flat -trees, but it still occasionally and viciously bites LTS. - -We've taken another baby step towards alleviating this in this release by -updating a couple of dependencies that were preventing `npmlog` from deduping, -and then doing a dedupe on that and `gauge`. Hopefully it helps. - -* [`4199551`](https://github.com/npm/npm/commit/41995517e617674710748ab6d262670c96124393) - [#11528](https://github.com/npm/npm/pull/11528) - `npm-install-checks@1.0.7`: Just updates the version of npmlog so we can - dedupe it better. - ([@zkat](https://github.com/zkat)) -* [`14d72c7`](https://github.com/npm/npm/commit/14d72c756b89e2d167eb52c1849263dbddcb9f35) - [#11552](https://github.com/npm/npm/pull/11552) - [#11528](https://github.com/npm/npm/pull/11528) - `node-gyp@3.3.0`: AIX support, new `gyp`, update `npmlog` (for the dedupe), - adds `--cafile` command line option, and allows configuration of Node.js and - io.js mirrors. - ([@rvagg](https://github.com/rvagg)) -* [`0453cb9`](https://github.com/npm/npm/commit/0453cb94b33520eb723b7072cd2654b1d0142533) - [#11528](https://github.com/npm/npm/pull/11528) - Do a `dedupe` on `gauge` to flatten our dependencies a bit more. - ([@zkat](https://github.com/zkat)) - -#### OTHER DEP STUFF - -* [`686c0b3`](https://github.com/npm/npm/commit/686c0b37ec3a7b65f9b3849e1099805e5221c408) - `rimraf@2.5.2`: Just updates to glob@7. - ([@isaacs](https://github.com/isaacs)) - -#### @wyze, DOCUMENTATION HERO OF THE PEOPLE, GETS THEIR OWN HEADER - -* [`7232948`](https://github.com/npm/npm/commit/72329484c775376cb40d5b348f453eaaf2f0b821) - [#11416](https://github.com/npm/npm/pull/11416) - Logout docs were using a section copy-pasted from the adduser docs. - ([@wyze](https://github.com/wyze)) -* [`922b33a`](https://github.com/npm/npm/commit/922b33aba4362e1e90f42e9348f061a1cc73eafb) - [#11414](https://github.com/npm/npm/pull/11414) - Add colon for consistency. - ([@wyze](https://github.com/wyze)) - -### v2.14.19 (2016-02-11): - -Really tiny micro-release this week! The main thing to note is a dependency -update that means we no longer have `graceful-fs@3` in our dependency tree. This -has some implications for being able to run on future Node.js releases, so -better to get this out the door. 😁 - -#### DEPS - -* [`a556e0f`](https://github.com/npm/npm/commit/a556e0f9dcb5d7b44224ba9c16c9d0dc6c8d2532) - `cmd-shim@2.0.2`: Final straggler using `graceful-fs@<4`. - ([@ForbesLindesay](https://github.com/ForbesLindesay)) - -#### DOCS - -* [`69a2d59`](https://github.com/npm/npm/commit/69a2d599bf0cba674ee268483e9bd5c14333b89f) - [#11391](https://github.com/npm/npm/pull/11391) - Fixed versions of `shrinkwrap.json` in examples in documentation for `npm - shrinkwrap`, which did not quite match up. - ([@xcatliu](https://github.com/xcatliu)) - -### v2.14.18 (2016-02-04): - -Clearly our docs are perfect after all those wonderful PRs, 'cause this week's -gonna be all about dependency updates. Note: There is a small security-related -fix included here! - -#### SECURITY-RELATED DEPENDENCY UPDATE - -* [`5c095ef`](https://github.com/npm/npm/commit/5c095eff8dc006980d4d083f2007e4dacff23be3) - [#11341](https://github.com/npm/npm/pull/11341) - `request@2.69.0`: Includes security-related dependency updates involving - `hawk` and `is-my-json-valid` - ([@remy](https://github.com/remy) and [@simov](https://github.com/simov)) - -#### OTHER DEPENDENCY UPDATES - -* [`f9c2668`](https://github.com/npm/npm/commit/f9c2668ca3e6e2602d91250ce61280e5e12d0a00) - `which@1.2.4` - ([@isaacs](https://github.com/isaacs)) -* [`2907c43`](https://github.com/npm/npm/commit/2907c43ad4ef87e5f730c2576f680d6837fcbad0) - `spdx-license-ids@1.2.0` - ([@shinnn](https://github.com/shinnn)) -* [`7734069`](https://github.com/npm/npm/commit/773406960bf7f4a87b2ecb6ebf593c62d0e9f95d) - `rimraf@2.5.1` - ([@isaacs](https://github.com/isaacs)) -* [`f4b39a7`](https://github.com/npm/npm/commit/f4b39a7dd5e1335d92aa22c46d99abb33f271b8b) - `retry@0.9.0` - ([@tim-kos](https://github.com/tim-kos)) -* [`ded1e7a`](https://github.com/npm/npm/commit/ded1e7a1c9c7bec29bb7c30a8f85546670e75b56) - Nest `retry@0.8.0` inside `npm-registry-client` to prevent invalid - dependency issue until the latter gets a dependency update. - ([@zkat](https://github.com/zkat)) -* [`ab9f867`](https://github.com/npm/npm/commit/ab9f8679f9687f91ad03adaab6211a897aeebbae) - `read-package-json@2.0.3` - ([@iarna](https://github.com/iarna)) -* [`b638c41`](https://github.com/npm/npm/commit/b638c41607bb936b9eaaceba2aeeda1d34e3a9b2) - `npmlog@2.0.2` - ([@iarna](https://github.com/iarna)) -* [`49f34af`](https://github.com/npm/npm/commit/49f34af463a674359269025d8438feb6a7c69960) - `init-package-json@1.9.3` - ([@iarna](https://github.com/iarna)) -* [`2305dab`](https://github.com/npm/npm/commit/2305dab4e7bff09bb7686cec653cf1e663dbf15d) - `graceful-fs@4.1.3`: Fixed `.close()` not being patched. - ([@isaacs](https://github.com/isaacs)) -* [`18496d9`](https://github.com/npm/npm/commit/18496d9a0fff94e3652655998e8333056aa52b15) - `fs-write-stream-atomic@1.0.8` - ([@iarna](https://github.com/iarna)) -* [`6637bc7`](https://github.com/npm/npm/commit/6637bc7a0e194d82554cd7c91e1794018fef5943) - `config-chain@1.1.10` - ([@dominictarr](https://github.com/dominictarr)) -* [`4222bad`](https://github.com/npm/npm/commit/4222badffed9e9edacea6a8a96a99a164d376158) - `columnify@1.5.4` - ([@timoxley](https://github.com/timoxley)) -* [`df9016f`](https://github.com/npm/npm/commit/df9016f327a2a9ce492ebc75b882b03069438e13) - `ansi@0.3.1`: Added a license file. - ([@TooTallNate](https://github.com/TooTallNate)) - -### v2.14.17 (2016-01-28): - -Another week, another small LTS release! - -#### BETTER ERROR REPORTING YAY - -So as it turns out, when stuff goes wrong, it's actually nice to give people a -better clue rather than just say "oh well 😏". - -* [`5b8ccb9`](https://github.com/npm/npm/commit/5b8ccb91cf11b4edb463609cd4ed1dee84ed4db0) - [#11289](https://github.com/npm/npm/pull/11289) - There is an obscure feature that lets you monkey-patch npm when it starts up. - If the module being required with this feature failed, it would previous just - make npm error out– this reduces that to a warning. - ([@evanlucas](https://github.com/evanlucas)) -* [`556e42a`](https://github.com/npm/npm/commit/556e42ac6bab078722ddc1dc6cce4428d001133b) - [#11300](https://github.com/npm/npm/pull/11300) - Report symlinked packages as 'linked' in the output for `npm outdated`. - ([@halhenke](https://github.com/halhenke)) -* [`3842317`](https://github.com/npm/npm/commit/3842317583e0ea2eca78e39aa03f5bc06ba21de7) - [#11290](https://github.com/npm/npm/pull/11290) - Suppress warnings about pre-release node versions. This should get node's CI - passing on non-Windows platforms without needing to modify the node version to - get rid of the pre-release suffix. - ([@iarna](https://github.com/iarna)) - -#### EVERYONE WANTS THOSE NPM SOCKS, GEEZE - -Did you know that you can get npm socks for contributing to our docs? I bet -these people do, and now so do you! - -* [`dcde451`](https://github.com/npm/npm/commit/dcde451cb85a6ca08acc6ef45782c652f1d8fc89) - [#11232](https://github.com/npm/npm/pull/11232) - Update automatically included/excluded packages in `package.json`. - ([@jscissr](https://github.com/jscissr)) -* [`e3f8d5b`](https://github.com/npm/npm/commit/e3f8d5be5ac5ec1d72db42f7abf50cc4a8c5935c) - [#11273](https://github.com/npm/npm/pull/11273) - Add an example for `npm view versions`. - ([@vedatmahir](https://github.com/vedatmahir)) -* [`6a06ef2`](https://github.com/npm/npm/commit/6a06ef2252748089f0013de951f2d06160b90306) - [#11272](https://github.com/npm/npm/pull/11272) - Fix a typo in `npm-update.md`. - ([@jonathanp](https://github.com/jonathanp)) -* [`2515ff1`](https://github.com/npm/npm/commit/2515ff1de28f0b261fb25c79a66bd762a65961c4) - [#11215](https://github.com/npm/npm/pull/11215) - Correct small thinko in docs for SPDX expressions. - ([@kemitchell](https://github.com/kemitchell)) -* [`70f897b`](https://github.com/npm/npm/commit/70f897b03da9a5d5d4fd34614e9ee40e6f9e9653) - [#11196](https://github.com/npm/npm/pull/11196) - Make JSON snippets valid JSON in `npm update` docs. - ([@s100](https://github.com/s100)) - -### v2.14.16 (2016-01-21): - -Good to see you all again! It's been a while since we had an LTS release, and -the team continues to work hard to both get the issue tracker under control, and -get our test suite to be awesome and reliable. - -This is also the first LTS release of this year. - -We're gonna have an interesting time -- most of our focus this year will be -around stability and maintainability of the CLI, so you might actually end up -seeing a number of updates even over here, just for the sake of making sure -we're stable, that bugs get fixed, and tests have proper coverage. - -What better way to start this effort, then, than getting Travis tests green, fix -a few things here and there, and tweak a bunch of documentation? 😁 - -#### FIX ALL THE BUGS AND TWEAK ALL THE THINGS - -* [`24b13fb`](https://github.com/npm/npm/commit/24b13fbc57d34db1d5b0a37bcca122c00deba978) - [#11158](https://github.com/npm/npm/pull/11158) - Fix custom node-gyp env var quoting on Windows. - ([@orangemocha](https://github.com/orangemocha)) -* [`e2503f2`](https://github.com/npm/npm/commit/e2503f2be40157b05a9c500ec3b5d16090ffee50) - [#11142](https://github.com/npm/npm/pull/11142) - Fix race condition with `correctMkdir` in the cache directory. - ([@Jimbly](https://github.com/Jimbly)) - -* [`5c0e4c4`](https://github.com/npm/npm/commit/5c0e4c45a29d774ab729e86044377d4e5e424252) - [#10940](https://github.com/npm/npm/pull/10940) - Ignore failures replacing `package.json`. writeFileAtomic is not atomic in - Windows, it fails if the file is being accessed concurrently. - ([@orangemocha](https://github.com/orangemocha)) -* [`2c44d8d`](https://github.com/npm/npm/commit/2c44d8dc8c267d5e054d0175ce2f4750f0986463) - [#10903](https://github.com/npm/npm/pull/10903) - Add tests for `npm adduser --scope`. - ([@ekmartin](https://github.com/ekmartin)) -* [`4cb25d0`](https://github.com/npm/npm/commit/4cb25d0fed5c7792dfd1aec891380ecc1f8a5761) - [#10903](https://github.com/npm/npm/pull/10903) - Add a message informing users when they have been successfully logged in. - ([@ekmartin](https://github.com/ekmartin)) -* [`fe3ec6d`](https://github.com/npm/npm/commit/fe3ec6d6658262054c0c19c55373c21e84ab9f17) - [#10628](https://github.com/npm/npm/pull/10628) - Tell users how to open an issue with a package that has errored. - ([@trodrigues](https://github.com/trodrigues)) - -#### DOCS DOCS DOCS - -We got a TON of lovely documentation patches, too! Thanks all for submitting! - -* [`22482a1`](https://github.com/npm/npm/commit/22482a1f22079d72c3f8ca55c2f0c153bdd024c0) - [#11188](https://github.com/npm/npm/pull/11188) - Briefly explain what's included when you publish. - ([@beaugunderson](https://github.com/beaugunderson)) -* [`fa47724`](https://github.com/npm/npm/commit/fa4772438df0c66a19309dd1c1a3ce43cbee5461) - [#11150](https://github.com/npm/npm/pull/11150) - Advise use of `--depth Infinity` instead of `--depth 9999` in `npm update`. - ([@halhenke](https://github.com/halhenke)) -* [`248ddfe`](https://github.com/npm/npm/commit/248ddfe8f7ddd3318e14bf61de41cab4a638c8a3) - [#11130](https://github.com/npm/npm/pull/11130) - Nuke "using npm programmatically" section from README. The programmatic npm - API is unsupported, and is not guaranteed not to break in non-major versions. - Removing this section so newcomers aren't encouraged to discover or use it. - ([@ljharb](https://github.com/ljharb)) -* [`ae9c452`](https://github.com/npm/npm/commit/ae9c4521222d60ab4a69c19fee5e361c62f41fae) - [#11128](https://github.com/npm/npm/pull/11128) - Add link to local paths section indocs for `package.json`. - ([@orangejulius](https://github.com/orangejulius)) -* [`663a8c6`](https://github.com/npm/npm/commit/663a8c6b4b1647f9b86c15ef32e30023edc8c060) - [#11044](https://github.com/npm/npm/pull/11044) - Update default value documentation for the color option in npm's config. - ([@scottaddie](https://github.com/scottaddie)) -* [`5c1dda0`](https://github.com/npm/npm/commit/5c1dda0d3a18b2954872dba33fbc696ff0700ffe) - [#11037](https://github.com/npm/npm/pull/11037) - Correct the name property max length constraint verbiage. - ([@scottaddie](https://github.com/scottaddie)) -* [`8288365`](https://github.com/npm/npm/commit/8288365d08e97fa3a5b0d31703c015a8be49e07f) - [#10990](https://github.com/npm/npm/pull/10990) - Update folder docs to reflect that process.installPrefix was removed as of - 0.8.x. - ([@jeffmcmahan](https://github.com/jeffmcmahan)) -* [`61d63fa`](https://github.com/npm/npm/commit/61d63fa22c4f09742180c2de460a4ffb6c32738e) - [#10790](https://github.com/npm/npm/pull/10790) - Clarify that `npm install foo` is the same as `npm install foo@latest` now. - ([@cvrebert](https://github.com/cvrebert)) -* [`442c920`](https://github.com/npm/npm/commit/442c9207f375354c91d36df8711ba2d33e1c97f3) - [#10789](https://github.com/npm/npm/pull/10789) - Link over to `npm-dist-tag(1)` in `npm install` docs when they talk about the - `pkg@` syntax. - ([@cvrebert](https://github.com/cvrebert)) -* [`dca7a5e`](https://github.com/npm/npm/commit/dca7a5e2be3bfa306a870a123707d35c732406c0) - [#10788](https://github.com/npm/npm/pull/10788) - Link to tag docs in docs for `npm publish --tag`. - ([@cvrebert](https://github.com/cvrebert)) -* [`a72904e`](https://github.com/npm/npm/commit/a72904e8d4ab1d43ae8150fbe3f6468b0cbb1efd) - [#10787](https://github.com/npm/npm/pull/10787) - Explain why the `latest` tag matters. - ([@cvrebert](https://github.com/cvrebert)) -* [`9d0697a`](https://github.com/npm/npm/commit/9d0697a534046df7efda32170014041bbc1f4e7d) - [#10785](https://github.com/npm/npm/pull/10785) - Replace some quite marks in `npm dist-tag` docs for the sake of consistency. - ([@cvrebert](https://github.com/cvrebert)) - -#### I REALLY LIKE GREEN. CAN YOU TELL? - -So Travis is all green now on `npm@2`, thanks to the removal of nock and a few -other test suite tweaks. This is a fantastic step towards making sure we can all -have confidence in our test suite! 🎉 - -* [`64995be`](https://github.com/npm/npm/commit/64995be6d874356b15c136f9867302d805dfe1e9) [`75ab216`](https://github.com/npm/npm/commit/75ab2164cf79e28ac7f7ebe714f3c5aee99c6626) [`a9f6fe9`](https://github.com/npm/npm/commit/a9f6fe9dc558f17c4a7b9eb83329ac080f7df4b7) [`649c193`](https://github.com/npm/npm/commit/649c193adadf714c2819837f9372a29d724a5ec0) [`94cb05e`](https://github.com/npm/npm/commit/94cb05eaa9e5ad6675cf15c4ac0a44fbdde05900) [`6541690`](https://github.com/npm/npm/commit/65416907008061ac5a5f66b1630a57776803b526) [`255be6f`](https://github.com/npm/npm/commit/255be6f5bca9e3d216f3a5cbdf6714c6c9fcf132) [`9e84fa4`](https://github.com/npm/npm/commit/9e84fa43c49d04cf86ca1678e2a61412f5559cb9) [`8a587b0`](https://github.com/npm/npm/commit/8a587b0c1696ae7302891fa6355fc3e8670e00d3) [`bf812a5`](https://github.com/npm/npm/commit/bf812a54e497a573493346399798aa0b9373ac24) - [#10903](https://github.com/npm/npm/pull/10903) - Get rid of nock from tests, and get Travis green. - ([@zkat](https://github.com/zkat) and [@iarna](https://github.com/iarna)) -* [`70a5310`](https://github.com/npm/npm/commit/70a5310712c6666e753ca8f3bfff4a780ec6292d) - `npm-registry-couchapp@2.6.12`: - Better 0.8 compatibility, and ability to run in travis docker stuff. This - means the test suite should run a lot faster, too! - ([@iarna](https://github.com/iarna)) -* [`28fae39`](https://github.com/npm/npm/commit/28fae399212eda5554e6c0ffd8c9591144ab7b9d) - Get rid of sudo, for Travis! - ([@zkat](https://github.com/zkat)) - -### v2.14.15 (2015-12-10): - -Did you know that Bob Ross reached the rank of master sergeant in the US Air -Force before becoming perhaps the most soothing painter of all time? - -#### TWO HAPPY LITTLE BUG FIXES - -* [`f482664`](https://github.com/npm/npm/commit/f4826645dc6b5c0f05c5f9187efb28c1a293554f) - [#10505](https://github.com/npm/npm/issues/10505) `npm ls --json --depth=0` - now respects the depth parameter, when it is zero and when it is not zero. - ([@MarkReeder](https://github.com/MarkReeder)) -* [`529fa1f`](https://github.com/npm/npm/commit/529fa1ff2c6432a773af99a1c5209c0865f7a19c) - [#9099](https://github.com/npm/npm/issues/9099) I had always thought you - could run `npm version` from subdirectories in your project, which is great, - because now you can. I guess I was just ahead of my time. - ([@ekmartin](https://github.com/ekmartin)) - -#### NOW PAINT IN SOME NICE DOCS CHANGES - -* [`1fc7f2b`](https://github.com/npm/npm/commit/1fc7f2b523ea760e08adb9b861b28e3ba450e565) - [#10546](https://github.com/npm/npm/issues/10546) Goodbye, FAQ! You were - cheeky and fun until you weren't! Don't worry: npm still loves everyone, - especially you! ([@ashleygwilliams](https://github.com/ashleygwilliams)) -* [`7fe6950`](https://github.com/npm/npm/commit/7fe6950b44d241bb4d90857a44d89d750af1e2b3) - [#10570](https://github.com/npm/npm/issues/10570) Update documentation URLs - to be HTTPS everywhere sensible. No HTTP shall be spared! - ([@rsp](https://github.com/rsp)) -* [`96ebb90`](https://github.com/npm/npm/commit/96ebb902439e4f6f37f8beffb589769146fecf24) - [#10650](https://github.com/npm/npm/issues/10650) Correctly note that there - are two lifecycle scripts run by an install phase in an example, instead of - three. ([@eymengunay](https://github.com/eymengunay)) -* [`5196893`](https://github.com/npm/npm/commit/5196893a7496f68a514b83641ff6b72f14d664dd) - [#10687](https://github.com/npm/npm/issues/10687) `npm outdated`'s output can - be a little puzzling sometimes. I've attempted to make it clearer, with some - examples, of what's going on with "wanted" and "latest" in more cases. - ([@othiym23](https://github.com/othiym23)) -* [`8e6712d`](https://github.com/npm/npm/commit/8e6712d4ee128858cab36c77723e35bddbb977ba) - [#10700](https://github.com/npm/npm/issues/10700) Hey, do you remember when - `search.npmjs.org` was a thing? I think I do? The last time I used it was in - like 2012, and it's gone now, so remove it from the docs. - ([@gagern](https://github.com/gagern)) -* [`27d2612`](https://github.com/npm/npm/commit/27d2612b3f5aa88b12c943d04e162ce4c3a350ae) - `semver@5.1.0`: Include BNF for SemVer expression grammar (which is also now - included in `npm help semver`). ([@isaacs](https://github.com/isaacs)) - -#### LAND YOUR DEPENDENCY UPGRADES IN PAIRS SO EVERYONE HAS A FRIEND - -* [`fc6c3c5`](https://github.com/npm/npm/commit/fc6c3c53a31e9e11c2616fcd378202e5b80bf286) - `request@2.67.0` ([@simov](https://github.com/simov)) -* [`07013fd`](https://github.com/npm/npm/commit/07013fd0fd55a2eb31fb9334631ee5d0dd5c41bb) - [isaacs/rimraf#89](https://github.com/isaacs/rimraf/pull/89) `rimraf@2.4.4` - ([@zerok](https://github.com/zerok)) -* [`bc149be`](https://github.com/npm/npm/commit/bc149bef871f0f00639509898cece531af3aa8b3) - [isaacs/once#7](https://github.com/isaacs/once/pull/7) `once@1.3.3` - ([@floatdrop](https://github.com/floatdrop)) -* [`ac598d3`](https://github.com/npm/npm/commit/ac598d36e1ad207bc0d8a7eadfd84b26146aec1f) - `lru-cache@3.2.0` ([@isaacs](https://github.com/isaacs)) -* [`1b915ce`](https://github.com/npm/npm/commit/1b915ce1e0787ccb6d8aa235d002d66565f2175d) - `npm-registry-client@7.0.9` ([@othiym23](https://github.com/othiym23)) -* [`df7dd78`](https://github.com/npm/npm/commit/df7dd78b8fe3cc58202996fa6c994fc55419bfa5) - `tap@2.3.1` ([@isaacs](https://github.com/isaacs)) - -### v2.14.14 (2015-12-03): - -#### FIX URL IN LICENSE - -The license incorrectly identified the registry URL as `registry.npmjs.com` and -this has been corrected to `registry.npmjs.org`. - -* [`6051a69`](https://github.com/npm/npm/commit/6051a69b1adc80f5f200077067e831643f655bd4) - [#10685](https://github.com/npm/npm/pull/10685) - Fix npm public registry URL in notices. - ([@kemitchell](https://github.com/kemitchell)) - -#### NO MORE MD5 - -We updated modules that had been using MD5 for non-security purposes. While -this is perfectly safe, if you compile Node in FIPS-compliance mode it will -explode if you try to use MD5. We've replaced MD5 with Murmur, which conveys -our intent better and is faster to boot. - -* [`30b5994`](https://github.com/npm/npm/commit/30b599496a9762482e1cef945a378e3a534fd366) - [#10629](https://github.com/npm/npm/issues/10629) - `write-file-atomic@1.1.4` - ([@othiym23](https://github.com/othiym23)) -* [`68c63ff`](https://github.com/npm/npm/commit/68c63ff1279d3d5ea7b2c970ab5562a8e0536f27) - [#10629](https://github.com/npm/npm/issues/10629) - `fs-write-stream-atomic@1.0.5` - ([@othiym23](https://github.com/othiym23)) - -#### DEPENDENCY UPDATES - -* [`e48e5a9`](https://github.com/npm/npm/commit/e48e5a90b4dcf76124b7e9ea3b295c1383e7f0c8) - [nodejs/node-gyp#831](https://github.com/nodejs/node-gyp/pull/831) - `node-gyp@3.2.1`: Improved \*BSD support. - ([@bnoordhuis](https://github.com/bnoordhuis)) - -### v2.14.13 (2015-11-25): - -#### THE npm CLI !== THE npm REGISTRY !== npm, INC. - -npm-the-CLI is licensed under the terms of the [Artistic License -2.0](https://github.com/npm/npm/blob/8d79c1a39dae908f27eaa37ff6b23515d505ef29/LICENSE), -which is a liberal open-source license that allows you to take this code and do -pretty much whatever you like with it (that is, of course, not legal language, -and if you're doing anything with npm that leaves you in doubt about your legal -rights, please seek the review of qualified counsel, which is to say, not -members of the CLI team, none of whom have passed the bar, to my knowledge). At -the same time the primary registry the CLI uses when looking up and downloading -packages is a commercial service run by npm, Inc., and it has its own [Terms of -Use](https://www.npmjs.com/policies/terms). - -Aside from clarifying the terms of use (and trying to make sure they're more -widely known), the only recent changes to npm's licenses have been making the -split between the CLI and registry clearer. You are still free to do whatever -you like with the CLI's source, and you are free to view, download, and publish -packages to and from `registry.npmjs.org`, but now the existing terms under -which you can do so are more clearly documented. Aside from the two commits -below, see also [the release notes for -`npm@2.14.11`](https://github.com/npm/npm/releases/tag/v2.14.11), which is where -the split between the CLI's code and the terms of use for the registry was -first made more clear. - -* [`1f3e936`](https://github.com/npm/npm/commit/1f3e936aab6840667948ef281e0c3621df365131) - [#10532](https://github.com/npm/npm/issues/10532) Clarify that - `registry.npmjs.org` is the default, but that you're free to use the npm CLI - with whatever registry you wish. ([@kemitchell](https://github.com/kemitchell)) -* [`6733539`](https://github.com/npm/npm/commit/6733539eeb9b32a5f2d1a6aa797987e2252fa760) - [#10532](https://github.com/npm/npm/issues/10532) Having semi-duplicate - release information in `README.md` was confusing and potentially inaccurate, - so remove it. ([@kemitchell](https://github.com/kemitchell)) - -#### EASE UP ON WINDOWS BASH USERS - -It turns out that a fair number of us use bash on Windows (through MINGW or -bundled with Git, plz – Cygwin is still a bridge too far, for both npm and -Node.js). [@jakub-g](https://github.com/jakub-g) did us all a favor and relaxed -the check for npm completion to support MINGW bash. Thanks, Jakub! - -* [`460cc09`](https://github.com/npm/npm/commit/460cc0950fd6a005c4e5c4f85af807814209b2bb) - [#10156](https://github.com/npm/npm/issues/10156) completion: enable on - Windows in git bash ([@jakub-g](https://github.com/jakub-g)) - -#### MAKE NODE-GYP A LITTLE BLUER - -* [`333e118`](https://github.com/npm/npm/commit/333e1181082842c21edc62f0ce515928424dff1f) - `node-gyp@3.2.0`: Support AIX, use `which` to find Python, updated to a newer - version of `gyp`, and more! ([@bnoordhuis](https://github.com/bnoordhuis)) - -#### WE LIKE SPDX AND ALL BUT IT'S NOT ACTUALLY A DIRECT DEP, SORRY - -* [`1f4b4bb`](https://github.com/npm/npm/commit/1f4b4bbdf8758281beecb7eaf75d05a6c4a77c15) - Removed `spdx` as a direct npm dependency, since we don't actually need it at - that level, and updated subdeps for `validate-npm-package-license` - ([@othiym23](https://github.com/othiym23)) - -#### A BOUNTEOUS THANKSGIVING CORNUCOPIA OF DOC TWEAKS - -These are great! Keep them coming! Sorry for letting them pile up so deep, -everybody. Also, a belated Thanksgiving to our Canadian friends, and a happy -Thanksgiving to all our friends in the USA. - -* [`6101f44`](https://github.com/npm/npm/commit/6101f44737645d9379c3396fae81bbc4d94e1f7e) - [#10250](https://github.com/npm/npm/issues/10250) Correct order of `org:team` - in `npm team` documentation. ([@louislarry](https://github.com/louislarry)) -* [`e8769f9`](https://github.com/npm/npm/commit/e8769f9807b91582c15ef130733e2e72b6c7bda4) - [#10371](https://github.com/npm/npm/issues/10371) Remove broken / duplicate - link to tag. ([@WickyNilliams](https://github.com/WickyNilliams)) -* [`1ae2dbe`](https://github.com/npm/npm/commit/1ae2dbe759feb80d8634569221ec6ee2c6d1d1ff) - [#10419](https://github.com/npm/npm/issues/10419) Remove references to - nonexistent `npm-rm(1)` documentation. ([@KenanY](https://github.com/KenanY)) -* [`777a271`](https://github.com/npm/npm/commit/777a271830a42d4ee62540a89f764a6e7d62de19) - [#10474](https://github.com/npm/npm/issues/10474) Clarify that install finds - dependencies in `package.json`. ([@sleekweasel](https://github.com/sleekweasel)) -* [`dcf4b5c`](https://github.com/npm/npm/commit/dcf4b5cbece1b0ef55ab7665d9acacc0b6b7cd6e) - [#10497](https://github.com/npm/npm/issues/10497) Clarify what a package is - slightly. ([@aredridel](https://github.com/aredridel)) -* [`447b3d6`](https://github.com/npm/npm/commit/447b3d669b2b6c483b8203754ac0a002c67bf015) - [#10539](https://github.com/npm/npm/issues/10539) Remove an extra, spuriously - capitalized letter. ([@alexlukin-softgrad](https://github.com/alexlukin-softgrad)) - -### v2.14.12 (2015-11-19): - -#### TEEN ORCS AT THE GATES - -This week heralds the general release of the primary npm registry's [new -support for private packages for -organizations](http://blog.npmjs.org/post/133542170540/private-packages-for-organizations). -For many potential users, it's the missing piece needed to make it easy for you -to move your organization's private work onto npm. And now it's here! The -functionality to support it has been in place in the CLI for a while now, -thanks to [@zkat](https://github.com/zkat)'s hard work. - -During our final testing before the release, our ace support team member -[@snopeks](https://github.com/snopeks) noticed that there had been some drift -between the CLI team's implementation and what npm was actually preparing to -ship. In the interests of everyone having a smooth experience with this -_extremely useful_ new feature, we quickly made a few changes to square up the -CLI and the web site experiences. - -* [`0e8b15e`](https://github.com/npm/npm/commit/0e8b15e9fbc89e31bd00e573b648846beddfb835) - [#9327](https://github.com/npm/npm/issues/9327) `npm access` no longer has - problems when run in a directory that doesn't contain a `package.json`. - ([@othiym23](https://github.com/othiym23)) -* [`c4e939c`](https://github.com/npm/npm/commit/c4e939c1d493601d25dcb88e6ffcca73076fd3fd) - [npm/npm-registry-client#126](https://github.com/npm/npm-registry-client/issues/126) - `npm-registry-client@7.0.8`: Allow the CLI to grant, revoke, and list - permissions on unscoped (public) packages on the primary registry. - ([@othiym23](https://github.com/othiym23)) - -#### A BRIEF NOTE ON NPM'S BACKWARDS COMPATIBILITY - -We don't often have much to say about the changes we make to our internal -testing and tooling, but I'm going to take this opportunity to reiterate that -npm tries hard to maintain compatibility with a wide variety of Node versions. -As this change shows, we want to ensure that npm works the same across: - -* Node.js 0.8 -* Node.js 0.10 -* Node.js 0.12 -* the latest io.js release -* Node.js 4 LTS -* Node.js 5 - -Contributors who send us pull requests often notice that it's very rare that -our tests pass across all of those versions (ironically, almost entirely due to -the packages we use for testing instead of any issues within npm itself). We're -currently beginning an effort, lasting the rest of 2015, to clean up our test -suite, and not only get it passing on all of the above versions of Node.js, but -working solidly on Windows as well. This is a compounding form of technical -debt that we're finally paying down, and our hope is that cleaning up the tests -will produce a more robust CLI that's a lot easier to write patches for. - -* [`d743620`](https://github.com/npm/npm/commit/d743620a0005213a65d25de771661b4d48a09717) - [#10233](https://github.com/npm/npm/issues/10233) Update Node.js versions - that Travis uses to test npm. ([@iarna](https://github.com/iarna)) - -#### TYPOS IN THE LICENSE, OH MY - -* [`58ac241`](https://github.com/npm/npm/commit/58ac241f556b2c202a8ee33321965e2540361ca7) - [#10478](https://github.com/npm/npm/issues/10478) Correct two typos in npm's - LICENSE. ([@jorrit](https://github.com/jorrit)) - -### v2.14.11 (2015-11-12): - -#### ASK FOR NOTHING, GET LATEST - -When you run `npm install foo`, you probably expect that you'll get the -`latest` version of `foo`, whatever that is. And good news! That's what this -change makes it do. - -We _think_ this is what everyone wants, but if this causes problems for you, we -want to know! If it proves problematic for people we will consider reverting it -(preferrably before this becomes `npm@latest`). - -Previously, when you ran `npm install foo` we would act as if you typed `npm -install foo@*`. Now, like any range-type specifier, in addition to matching the -range, it would also have to be `<=` the value of the `latest` dist-tag. -Further, it would exclude prerelease versions from the list of versions -considered for a match. - -This worked as expected most of the time, unless your `latest` was a prerelease -version, in which case that version wouldn't be used, to everyone's surprise. - -* [`6f0a646`](https://github.com/npm/npm/commit/6f0a646cd865b24fe3ff25365bf5421780e63e01) - [#10189](https://github.com/npm/npm/issues/10189) `npm-package-arg@4.1.0`: - Change the default version from `*` to `latest`. - ([@zkat](https://github.com/zkat)) - -#### LICENSE CLARIFICATION - -* [`54a9046`](https://github.com/npm/npm/commit/54a90461f068ea89baa5d70248cdf1581897936d) - [#10326](https://github.com/npm/npm/issues/10326) Clarify what-all is covered - by npm's license and point to the registry's terms of use. - ([@kemitchell](https://github.com/kemitchell)) - -#### CLOSER TO GREEN TRAVIS - -* [`28efd3d`](https://github.com/npm/npm/commit/28efd3d7dfb2fa3755076ae706ea4d38c6ee6900) - [#10232](https://github.com/npm/npm/issues/10232) `nock@1.9.0`: Downgrade - nock to a version that doesn't depend on streams2 in core so that more of our - tests can pass in 0.8. ([@iarna](https://github.com/iarna)) - -#### A BUG FIX - -* [`eacac8f`](https://github.com/npm/npm/commit/eacac8f05014d15217c3d8264d0b00a72eafe2d2) - [#9965](https://github.com/npm/npm/issues/9965) Fix a corrupt `package.json` - file introduced by a merge conflict in - [`022691a`](https://github.com/npm/npm/commit/022691a). - ([@waynebloss](https://github.com/waynebloss)) - -#### A DEPENDENCY UPGRADE - -* [`ea7d8e0`](https://github.com/npm/npm/commit/ea7d8e00a67a3d5877ed72c9728909c848468a9b) - [npm/nopt#51](https://github.com/npm/nopt/pull/51) `nopt@3.0.6`: Allow - types checked to be validated by passed-in name in addition to the JS name of - the type / class. ([@wbecker](https://github.com/wbecker)) - -### v2.14.10 (2015-11-05): - -There's nothing in here that that isn't in the `npm@3.4.0` release notes, but -all of the commit shasums have been adjusted to be correct. Enjoy! - -#### BUG FIXES VIA DEPENDENCY UPDATES - -* [`204c558`](https://github.com/npm/npm/commit/204c558c06637a753c0b41d0cf19f564a1ac3715) - [#8640](https://github.com/npm/npm/issues/8640) - [npm/normalize-package-data#69](https://github.com/npm/normalize-package-data/pull/69) - `normalize-package-data@2.3.5`: Fix a bug where if you didn't specify the - name of a scoped module's binary, it would install it such that it was - impossible to call it. ([@iarna](https://github.com/iarna)) -* [`bbdf4ee`](https://github.com/npm/npm/commit/bbdf4ee0a3cd12be6a2ace255b67d573a72f1f8f) - [npm/fstream-npm#14](https://github.com/npm/fstream-npm/pull/14) - `fstream-npm@1.0.7`: Only filter `config.gypi` when it's in the build - directory. ([@mscdex](https://github.com/mscdex)) -* [`d82ff81`](https://github.com/npm/npm/commit/d82ff81403e906931fac701775723626dcb443b3) - [npm/fstream-npm#15](https://github.com/npm/fstream-npm/pull/15) - `fstream-npm@1.0.6`: Stop including directories that happened to have names - matching whitelisted npm files in npm module tarballs. The most common cause - was that if you had a README directory then everything in it would be - included if wanted it or not. ([@taion](https://github.com/taion)) - -#### DOCUMENTATION FIXES - -* [`16361d1`](https://github.com/npm/npm/commit/16361d122f2ff6d1a4729c66153b7c24c698fd19) - [#10036](https://github.com/npm/npm/pull/10036) Fix typo / over-abbreviation. - ([@ifdattic](https://github.com/ifdattic)) -* [`d1343dd`](https://github.com/npm/npm/commit/d1343dda42f113dc322f95687f5a8c7d71a97c35) - [#10176](https://github.com/npm/npm/pull/10176) Fix broken link, scopes => - scope. ([@ashleygwilliams](https://github.com/ashleygwilliams)) -* [`110663d`](https://github.com/npm/npm/commit/110663d000a3908a4853393d9abae481700cf4dc) - [#9460](https://github.com/npm/npm/issue/9460) Specifying the default command - run by "npm start" and the fact that you can pass it arguments. - ([@JuanCaicedo](https://github.com/JuanCaicedo)) - -#### DEPENDENCY UPDATES FOR THEIR OWN SAKE - -* [`7476d2d`](https://github.com/npm/npm/commit/7476d2d31552a41671c425aa7fcc2844e0381008) - [npm/npmlog#19](https://github.com/npm/npmlog/pull/19) - `npmlog@2.0.0`: Make it possible to emit log messages with `error` as the - prefix. - ([@bengl](https://github.com/bengl)) -* [`6ca7888`](https://github.com/npm/npm/commit/6ca7888862cfe8bf802dc7c66632c102acd94cf5) - `read-package-json@2.0.2`: Minor cleanups. - ([@KenanY](https://github.com/KenanY)) - -### v2.14.9 (2015-10-29): - -There's still life in `npm@2`, but for now, enjoy these dependency upgrades! -Also, [@othiym23](https://github.com/othiym23) says hi! _waves_ -[@zkat](https://github.com/zkat) has her hands full, and -[@iarna](https://github.com/iarna)'s handling `npm@3`, so I'm dealing with -`npm@2` and the totally nonexistent weird bridge `npm@1.4` LTS release that may -or may not be happening this week. - -#### CAN'T STOP WON'T STOP UPDATING THOSE DEPENDENCIES - -* [`f52f0cb`](https://github.com/npm/npm/commit/f52f0cb51526314197e9d67619feebbd82a397b7) - [#10150](https://github.com/npm/npm/issues/10150) `chmodr@1.0.2`: Use - `fs.lstat()` to check if an entry is a directory, making `chmodr()` work - properly with NFS mounts on Windows. ([@sheerun](https://github.com/sheerun)) -* [`f7011d7`](https://github.com/npm/npm/commit/f7011d7b3b1d9148a6cd8f7b8359d6fe3269a912) - [#10150](https://github.com/npm/npm/issues/10150) `which@1.2.0`: Additional - command-line parameters, which is nice but not used by npm. - ([@isaacs](https://github.com/isaacs)) -* [`ebcc0d8`](https://github.com/npm/npm/commit/ebcc0d8629388da0b849bbbad590382cd7268f51) - [#10150](https://github.com/npm/npm/issues/10150) `minimatch@3.0.0`: Don't - package browser version. ([@isaacs](https://github.com/isaacs)) -* [`8c98dce`](https://github.com/npm/npm/commit/8c98dce5ffe242bafbe92b849e73e8de1803e256) - [#10150](https://github.com/npm/npm/issues/10150) `fstream-ignore@1.0.3`: - Upgrade to use `minimatch@3` (for deduping purposes). - ([@othiym23](https://github.com/othiym23)) -* [`db9ef33`](https://github.com/npm/npm/commit/db9ef337c253ecf21c921055bf8742e10d1cb3bb) - [#10150](https://github.com/npm/npm/issues/10150) `request@2.65.0`: - Dependency upgrades and a few bug fixes, mostly related to cookie handling. - ([@simov](https://github.com/simov)) - -#### DEVDEPENDENCIES TOO, I GUESS, IT'S COOL - -* [`dfbf621`](https://github.com/npm/npm/commit/dfbf621afa09c46991249b4f9a995d1823ea7ede) - [#10150](https://github.com/npm/npm/issues/10150) `tap@2.2.0`: Better - handling of test order handling (including some test fixes for npm). - ([@isaacs](https://github.com/isaacs)) -* [`cf5ad5a`](https://github.com/npm/npm/commit/cf5ad5a8c88bfd72e30ef8a8d1d3c5508e0b3c23) - [#10150](https://github.com/npm/npm/issues/10150) `nock@2.16.0`: More - expectations, documentation, and bug fixes. - ([@pgte](https://github.com/pgte)) - -### v2.14.8 (2015-10-08): - -#### SLOWLY RECOVERING FROM FEELINGS - -OS&F is definitely my favorite convention I've gone to. Y'all should check it -out next year! Rebecca and Kat are back, although Forrest is out at -[&yet conf](http://andyetconf.com/). - -This week sees another tiny LTS release with non-code-related patches -- just -CI/release things. - -Meanwhile, have you heard? `npm@3` is much faster now! Go upgrade with `npm -install -g npm@latest` and give it a whirl if you haven't already! - -#### IF YOU CHANGE CASING ON A FILE, YOU ARE NOT MY FRIEND - -Seriously. I love me some case-sensitive filesystems, but a lot of us have to -deal with `git` and its funky support for case normalizing systems. Have mercy -and just don't bother if all you're changing is casing, please? Otherwise, I -have to do this little dance to prevent horrible conflicts. - -* [`c3a7b61`](https://github.com/npm/npm/commit/c3a7b619786650a45653c8b55b8741fc7bb5cfda) - [#9804](https://github.com/npm/npm/pulls/9804) Remove the readme file with - weird casing. - ([@zkat](https://github.com/zkat)) -* [`f3f619e`](https://github.com/npm/npm/commit/f3f619e06e4be1378dbf286f897b50e9c69c9557) - [#9804](https://github.com/npm/npm/pulls/9804) Add the readme file back in, - with desired casing. - ([@zkat](https://github.com/zkat)) - -#### IDK. OUR CI DOESN'T EVEN FULLY WORK YET BUT SURE - -Either way, it's nice to make sure we're running stuff on the latest Node. `4.2` -is getting released very soon, though (this week?), and that'll be the first -official LTS release! - -* [`bd0b9ab`](https://github.com/npm/npm/commit/bd0b9ab6e60a31448794bbd88f94672572c3cb55) - [#9827](https://github.com/npm/npm/pulls/9827) Add node `4.0` and `4.1` to - TravisCI - ([@JaKXz](https://github.com/JaKXz)) - -### v2.14.7 (2015-10-01): - -#### MORE RELEASE STAGGERING?! - -Hi all, and greetings from [Open Source & Feelings](http://osfeels.com)! - -So we're switching gears a little with how we handle our weekly releases: from -now on, we're going to stagger release weeks between dependency bumps and -regular patches. So, this week, aside from a doc change, we'll be doing only -version bumps. Expect actual patches next week! - -#### TOTALLY FOLLOWING THE RULES ALREADY - -So I snuck this in, because it's our own [@snopeks](https://github.com/snopeks)' -first contribution to the main `npm` repo. She's been helping with building -support documents for Orgs, and contributed her general intro guide to the new -feature so you can read it with `npm help orgs` right in your terminal! - -* [`8324ea0`](https://github.com/npm/npm/commit/8324ea023ace4e08b6b8959ad199e2457af9f9cf) - [#9761](https://github.com/npm/npm/pull/9761) Added general user guide for - Orgs. - ([@snopeks](https://github.com/snopeks)) - -#### JUST. ONE. MORE. - -* [`9a502ca`](https://github.com/npm/npm/commit/9a502ca96e2d43ec75a8f684c9ca33af7e910f0a) - Use unique package name in tests to work around weird test-state-based - failures. - ([@iarna](https://github.com/iarna)) - -#### OKAY ACTUALLY THE THING I WAS SUPPOSED TO DO - -Anyway -- here's your version bump! :) - -* [`4aeb94c`](https://github.com/npm/npm/commit/4aeb94c9f0df3f41802cf2e0397a998f3b527c25) - `request@2.64.0`: No longer defaulting to `application/json` for `json` - requests. Also some minor doc and packaging patches. - ([@simov](https://github.com/simov)) - `minimatch@3.0.0`: No longer packaging browser modules. - ([@isaacs](https://github.com/isaacs)) -* [`a18b213`](https://github.com/npm/npm/commit/a18b213e6945a8f5faf882927829ac95f844e2aa) - `glob@5.0.15`: Upgraded `minimatch` dependency. - ([@isaacs](https://github.com/isaacs)) -* [`9eb64d4`](https://github.com/npm/npm/commit/9eb64e44509519ca9d788502edb2eba4cea5c86b) - `nock@2.13.0` - ([@pgte](https://github.com/pgte)) - -### v2.14.6 (2015-09-24): - -#### `¯\_(ツ)_/¯` - -Since `2.x` is LTS now, you can expect a slowdown in overall release sizes. On -top of that, we had our all-company-npm-internal-conf thing on Monday and -Tuesday so there wasn't really time to do much at all. - -Still, we're bringing you a couple of tiny little changes this week! - -* [`7b7da13`](https://github.com/npm/npm/commit/7b7da13c6cdf5eae53c20d5c69afc4c16e6f715d) - [#9471](https://github.com/npm/npm/pull/9471) When the port for a tarball is - different than the registry it's in, but the hostname is the same, the - protocol is now allowed to change, too. - ([@fastest963](https://github.com/fastest963)) -* [`6643ada`](https://github.com/npm/npm/commit/6643adaf9f37f08893e3ad28b797c55a36b2a152) - `request@2.63.0`: Use `application/json` as the default content type when - making `json` requests. - ([@simov](https://github.com/simov)) - -### v2.14.5 (2015-09-17): - -#### NPM IS DEAD. LONG LIVE NPM - -That's right folks. As of this week, `npm@next` is `npm@3`, which means it'll be -`npm@latest` next week! There's some really great shiny new things over there, -and you should really take a look. - -Many kudos to [@iarna](https://github.com/iarna) for her hard work on `npm@3`! - -Don't worry, we'll keep `2.x` around for a while (as LTS), but you won't see -many, if any, new features on this end. From now on, we're going to use -`latest-2` and `next-2` as the dist tags for the `npm@2` branch. - -#### OKAY THAT'S FINE CAN I DEPRECATE THINGS NOW? - -Yes! Specially if you're using scoped packages. Apparently, deprecating them -never worked, but that should be better now. :) - -* [`eca7b24`](https://github.com/npm/npm/commit/eca7b24de9a0090da02a93a69726f5e70ab80543) - [#9558](https://github.com/npm/npm/issues/9558) Add tests for npm deprecate. - ([@zkat](https://github.com/zkat)) -* [`648fe16`](https://github.com/npm/npm/commit/648fe16157ef0db22395ae056d1dd4b4c1605bf4) - [#9558](https://github.com/npm/npm/issues/9558) `npm-registry-client@7.0.7`: - Fixes `npm deprecate` so you can actually deprecate scoped modules now (it - never worked). - ([@zkat](https://github.com/zkat)) - -#### WTF IS `node-waf` - -idk. Some old thing. We don't talk about it anymore. - -* [`cf1b39f`](https://github.com/npm/npm/commit/cf1b39fc95a9ffad7fba4c2fee705c53b19d1d16) - [#9584](https://github.com/npm/npm/issues/9584) Fix ancient references to - `node-waf` in the docs to refer to the `node-gyp` version of things. - ([@KenanY](https://github.com/KenanY)) - -#### THE `graceful-fs` AND `node-gyp` SAGA CONTINUES - -Last week had some sweeping `graceful-fs` upgrades, and this takes care of one -of the stragglers, as well as bumping `node-gyp`. `node@4` users might be -excited about this, or even `node@<4` users who previously had to cherry-pick a -bunch of patches to get the latest npm working. - -* [`e07354f`](https://github.com/npm/npm/commit/e07354f3ff3a6be568fe950f1f825897f72912d8) - `sha@2.0.1`: Upgraded graceful-fs! - ([@ForbesLindesay](https://github.com/ForbesLindesay)) -* [`83cb6ee`](https://github.com/npm/npm/commit/83cb6ee4045b85e565e9678ca1878877e1dc75bd) - `node-gyp@3.0.3` - ([@rvagg](https://github.com/rvagg)) - -#### DEPS! DEPS! MORE DEPS! OK STOP DEPS - -* [`0d60888`](https://github.com/npm/npm/commit/0d608889615a1cb63f5f852337e955053f201aeb) - `normalize-package-data@2.3.4`: Use an external package to check for built-in - node modules. - ([@sindresorhus](https://github.com/sindresorhus)) -* [`79b4dac`](https://github.com/npm/npm/commit/79b4dac11f1c2d8ad5489fc3104734e1c10d4793) - `retry@0.8.0` - ([@tim-kos](https://github.com/tim-kos)) -* [`c164941`](https://github.com/npm/npm/commit/c164941d3c792904d5b126a4fd36eefbe0699f52) - `request@2.62.0`: node 4 added to build targets. Option initialization issues - fixed. - ([@simov](https://github.com/simov)) -* [`0fd878a`](https://github.com/npm/npm/commit/0fd878a44d5ae303325808d1f00df4dce7549d50) - `lru-cache@2.7.0`: Cache serialization support and fixes a cache length bug. - ([@isaacs](https://github.com/isaacs)) -* [`6a7a114`](https://github.com/npm/npm/commit/6a7a114a45b4699995d6e09164fdfd0fa1274591) - `nock@2.12.0` - ([@pgte](https://github.com/pgte)) -* [`6b25e6d`](https://github.com/npm/npm/commit/6b25e6d2235c11f4444104db4545cb42a0267666) - `semver@5.0.3`: Removed uglify-js dead code. - ([@isaacs](https://github.com/isaacs)) - -### v2.14.4 (2015-09-10): - -#### THE GREAT NODEv4 SAGA - -So [Node 4 is out now](https://nodejs.org/en/blog/release/v4.0.0/) and that's -going to involve a number of things over in npm land. Most importantly, it's the -last major release that will include the `2.x` branch of npm. That also means -that `2.x` is going to go into LTS mode in the coming weeks -- once `npm@3` -becomes our official `latest` release. You can most likely expect Node 5 to -include `npm@3` by default, whenever that happens. We'll go into more detail -about LTS at that point, as well, so keep your eyes peeled for announcements! - -#### NODE IS DEAD. LONG LIVE NODE! - -Node 4 being released means that a few things that used to be floating patches -are finally making it right into npm proper. This week, we've got two such -updates, both to dependencies: - -* [`505d9e4`](https://github.com/npm/npm/commit/505d9e40c13b8b0bb3f70ee9886f7b73ba569407) - `node-gyp@3.0.1`: Support for node nightlies and compilation for both node and - io.js without extra patching - ([@rvagg](https://github.com/rvagg)) - -[@thefourtheye](https://github.com/thefourtheye) was kind enough to submit a -*bunch* of PRs to npm's dependencies updating them to `graceful-fs@4.1.2`, which -mainly makes it so we're no longer monkey-patching `fs`. The following are all -updates related to this: - -* [`10cb189`](https://github.com/npm/npm/commit/10cb189c773fef804214018d57509cc7a943184b) - `write-file-atomic@1.1.3` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`edfb80b`](https://github.com/npm/npm/commit/edfb80b39f8cfce9a993f139eb98248001198e09) - `tar@2.2.1` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`aa6e1ee`](https://github.com/npm/npm/commit/aa6e1eede7d71fa69d7256afdfbaa3406bc39a5b) - `read-package-json@2.0.1` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`18971a3`](https://github.com/npm/npm/commit/18971a361635ed3958ecd39b63930ae1e56f8612) - `read-installed@4.0.3` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`a4cba71`](https://github.com/npm/npm/commit/a4cba71bd2532236fda7385bf55e8790cafd4f0a) - `fstream@1.0.8` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`70a38e2`](https://github.com/npm/npm/commit/70a38e29418951ac61ab6cf269d188074fe8ac3a) - `fs-write-stream-atomic@1.0.4` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`9cbd20f`](https://github.com/npm/npm/commit/9cbd20f691e37960e4ba12d401abd1069657cb47) - `fs-vacuum@1.2.7` - ([@thefourtheye](https://github.com/thefourtheye)) - -#### OTHER PATCHES - -* [`c4dd521`](https://github.com/npm/npm/commit/c4dd5213b2f3283ea0392845e5f78cac4573529e) - [#9506](https://github.com/npm/npm/issues/9506) Make `npm link` work on - Windows when using node pre-release/RC releases. - ([@jon-hall](https://github.com/jon-hall)) -* [`b6bc29c`](https://github.com/npm/npm/commit/b6bc29c1401b3d6b570c09cbef1866bdb0436b59) - [#9544](https://github.com/npm/npm/issues/9549) `process.binding` is being - deprecated, so our only direct usage has been removed. - ([@ChALkeR](https://github.com/ChALkeR)) - -#### MORE DEPENDENCIES! - -* [`d940594`](https://github.com/npm/npm/commit/d940594e479a7f012b6dd6952e8ef985ba2a6216) - `tap@1.4.1` - ([@isaacs](https://github.com/isaacs)) -* [`ee38486`](https://github.com/npm/npm/commit/ee3848669331fd98879a3175789d963543f67ce3) - `which@1.1.2`: Added tests for Windows-related dead code that was previously - helping a silent failure happen. Travis stuff, too. - ([@isaacs](https://github.com/isaacs)) - -#### DOC UPDATES - -* [`475daf5`](https://github.com/npm/npm/commit/475daf54ad07777938d1d7ee1a3e576961e84510) - [#9492](https://github.com/npm/npm/issues/9492) Clarify how `.npmignore` and - `.gitignore` are found and used by npm. - ([@addaleax](https://github.com/addaleax)) -* [`b2c391d`](https://github.com/npm/npm/commit/b2c391d7833249626a6d7650363a83bcc778717a) - `nopt@3.0.4`: Minor clarifications to docs about how array and errors work. - ([@zkat](https://github.com/zkat)) - -### v2.14.3 (2015-09-03): - -#### TEAMS AND ORGS STILL BETA. CLI CODE STILL SOLID. - -Our closed beta for Teens and Orcs is happening! The web team is hard at work -making sure everything looks pretty and usable and such. Once we fix things -stemming from that beta, you can expect the feature to be available publicly. -Some time after that, it'll even be available for free for FOSS orgs. It'll Be -Done When It's Done™. - -#### OH GOOD, I CAN ACTUALLY UPSTREAM NOW - -Looks like last week's release foiled our own test suite when trying to upstream -it to Node! Just a friendly reminder that no, `.npmrc` is no longer included -then you pack/release a package! [@othiym23](https://github.com/othiym23) and -[@isaacs](https://github.com/isaacs) managed to suss the really strange test -failures resulting from that, and we've patched it in this release. - -* [`01a3428`](https://github.com/npm/npm/commit/01a3428534b754dca89a56fd1e49f55cb22f6f25) - [#9476](https://github.com/npm/npm/issues/9476) test: Recreate missing - `.npmrc` files when missing so downstream packagers can run tests on packed - npm. - ([@othiym23](https://github.com/othiym23)) - -#### TALKING ABOUT THE CHANGELOG IN THE CHANGELOG IS LIKE, POMO OR SOMETHING - -* [`c1e7a83`](https://github.com/npm/npm/commit/c1e7a83c0ae7aadf01aecc57cf8a0ae2009d4da8) - [#9431](https://github.com/npm/npm/issues/9431) CHANGELOG: clarify - windows-related nature of patch - ([@saper](https://github.com/saper)) - -#### devDependencies UPDATED - -No actual dep updates this week, but we're bumping a couple of devDeps: - -* [`8454835`](https://github.com/npm/npm/commit/84548351bfd63e3e305d195abbcad24c6b7c3e8e) - `tap@1.4.0`: Add `t.contains()` as alias to `t.match()` - ([@isaacs](https://github.com/isaacs)) -* [`13d2216`](https://github.com/npm/npm/commit/13d22161bcdeb6e1ed095d5ba2f77e6abfffa5eb) - `deep-equal@1.0.1`: Make `null == undefined` in non-strict mode - ([@isaacs](https://github.com/isaacs)) - -### v2.14.2 (2015-08-27): - -#### GETTING THAT PESKY `preferGlobal` WARNING RIGHT - -So apparently the `preferGlobal` option hasn't quite been warning correctly for -some time. But now it should be all better! tl;dr: if you try and install a -dependency with `preferGlobal: true`, and it's _not already_ in your -`package.json`, you'll get a warning that the author would really rather you -install it with `--global`. This should prevent Windows PowerShell from thinking -npm has failed just because of a benign warning. - -* [`bbb25f3`](https://github.com/npm/npm/commit/bbb25f30d582f8979168c79233a9f8f840974f90) - [#8841](https://github.com/npm/npm/issues/8841) - [#9409](https://github.com/npm/npm/issues/9409) The `preferGlobal` - warning shouldn't happen if the dependency being installed is listed in - `devDependencies`. ([@saper](https://github.com/saper)) -* [`222fcec`](https://github.com/npm/npm/commit/222fcec85ccd30d35899e5037079fb14625af4e2) - [#9409](https://github.com/npm/npm/issues/9409) `preferGlobal` now prints a - warning when there are no dependencies for the current package. - ([@zkat](https://github.com/zkat)) -* [`5cfed6d`](https://github.com/npm/npm/commit/5cfed6d7a1a5f2731688cfc8293b5e43a6355393) - [#9409](https://github.com/npm/npm/issues/9409) Verify that - `preferGlobal` is warning as expected (when a `preferGlobal` dependency is - installed, but isn't listed in either `dependencies` or `devDependencies`). - ([@zkat](https://github.com/zkat)) - -#### BUMP +1 - -* [`eeafce2`](https://github.com/npm/npm/commit/eeafce2d06883c0f51bf403415b6bc5f2647eba3) - `validate-npm-package-license@3.0.1`: Include additional metadata in parsed license object, - useful for license checkers. ([@kemitchell](https://github.com/kemitchell)) -* [`1502a28`](https://github.com/npm/npm/commit/1502a285f84aa548806b3eafc8889e6288e810f3) - `normalise-package-data@2.3.2`: Updated to use `validate-npm-package-license@3.0.1`. - ([@othiym23](https://github.com/othiym23)) -* [`cbde823`](https://github.com/npm/npm/commit/cbde8233436bf0ea62a4740869b4990322c20659) - `init-package-json@1.9.1`: Add a `silent` option to suppress output on writing the - generated `package.json`. Also, updated to use `validate-npm-package-license@3.0.1`. - ([@zkat](https://github.com/zkat)) -* [`08fda46`](https://github.com/npm/npm/commit/08fda465452b4d77f1ced8050ee3a35a77fc30a5) - `tar@2.2.0`: Minor improvements. ([@othiym23](https://github.com/othiym23)) -* [`dc2f20b`](https://github.com/npm/npm/commit/dc2f20b53fff77203139c863b48da0e959df2ac9) - `rimraf@2.4.3`: `EPERM` now triggers a delay / retry loop (since Windows throws - this when things still hold a handle). ([@isaacs](https://github.com/isaacs)) -* [`e8acb27`](https://github.com/npm/npm/commit/e8acb273aa67ee0394d0431650e1b2a7d09c8554) - `read@1.0.7`: Fix licensing ambiguity. ([@isaacs](https://github.com/isaacs)) - -#### OTHER STUFF THAT'S RELEVANT - -* [`73a1ee0`](https://github.com/npm/npm/commit/73a1ee0be90fa1928521b63f28bef83b8ffab61d) - [#9386](https://github.com/npm/npm/issues/9386) Include additional unignorable files in - documentation. - ([@mjhasbach](https://github.com/mjhasbach)) -* [`0313e40`](https://github.com/npm/npm/commit/0313e40ee0f757fce8861be590ad668c23d7be53) - [#9396](https://github.com/npm/npm/issues/9396) Improve the `EISDIR` error - message returned by npm's error-handling code to give users a better hint of - what's most likely going on. Usually, error reports with this error code are - about people trying to install things without a `package.json`. - ([@KenanY](https://github.com/KenanY)) -* [`2677457`](https://github.com/npm/npm/commit/26774579c739c5951351e58263cf4d6ea3d66ec8) - [#9360](https://github.com/npm/npm/issues/9360) Make it easier to run - only _some_ of npm tests with lifecycle scripts via `npm tap test/tap/testname.js`. - ([@iarna](https://github.com/iarna)) - -### v2.14.1 (2015-08-20): - -#### SECURITY FIX - -There are patches for two information leaks of moderate severity in `npm@2.14.1`: - -1. In some cases, npm was leaking sensitive credential information into the - child environment when running package and lifecycle scripts. This could - lead to packages being published with files (most notably `config.gypi`, a - file created by `node-gyp` that is a cache of environmental information - regenerated on every run) containing the bearer tokens used to authenticate - users to the registry. Users with affected packages have been notified (and - the affected tokens invalidated), and now npm has been modified to not - upload files that could contain this information, as well as scrubbing the - sensitive information out of the environment passed to child scripts. -2. Per-package `.npmrc` files are used by some maintainers as a way to scope - those packages to a specific registry and its credentials. This is a - reasonable use case, but by default `.npmrc` was packed into packages, - leaking those credentials. npm will no longer include `.npmrc` when packing - tarballs. - -If you maintain packages and believe you may be affected by either -of the above scenarios (especially if you've received a security -notification from npm recently), please upgrade to `npm@2.14.1` as -soon as possible. If you believe you may have inadvertently leaked -your credentials, upgrade to `npm@2.14.1` on the affected machine, -and run `npm logout` and then `npm login`. Your access tokens will be -invalidated, which will eliminate any risk posed by tokens inadvertently -included in published packages. We apologize for the inconvenience this -causes, as well as the oversight that led to the existence of this issue -in the first place. - -Huge thanks to [@ChALkeR](https://github.com/ChALkeR) for bringing these -issues to our attention, and for helping us identify affected packages -and maintainers. Thanks also to the Node.js security working group for -their coördination with the team in our response to this issue. We -appreciate everybody's patience and understanding tremendously. - -* [`b9474a8`](https://github.com/npm/npm/commit/b9474a843ca55b7c5fac6da33989e8eb39aff8b1) - `fstream-npm@1.0.5`: Stop publishing build cruft (`config.gypi`) and per-project - `.npmrc` files to keep local configuration out of published packages. - ([@othiym23](https://github.com/othiym23)) -* [`13c286d`](https://github.com/npm/npm/commit/13c286dbdc3fa8fec4cb79fc4d1ee505c8a41b2e) - [#9348](https://github.com/npm/npm/issues/9348) Filter "private" - (underscore-prefixed, even when scoped to a registry) configuration values - out of child environments. ([@othiym23](https://github.com/othiym23)) - -#### BETTER WINDOWS INTEGRATION, ONE STEP AT A TIME - -* [`e40e71f`](https://github.com/npm/npm/commit/e40e71f2f838a8a42392f44e3eeec04e323ab743) - [#6412](https://github.com/npm/npm/issues/6412) Improve the search strategy - used by the npm shims for Windows to prioritize your own local npm installs. - npm has really needed this tweak for a long time, so hammer on it and let us - know if you run into issues, but with luck it will Just Work. - ([@joaocgreis](https://github.com/joaocgreis)) -* [`204ebbb`](https://github.com/npm/npm/commit/204ebbb3e0cab696a429a878ceeb4a7e78ec2b94) - [#8751](https://github.com/npm/npm/issues/8751) - [#7333](https://github.com/npm/npm/issues/7333) Keep [autorun - scripts](https://technet.microsoft.com/en-us/sysinternals/bb963902.aspx) from - interfering with npm package and lifecycle script execution on Windows by - adding `/d` and `/s` when invoking `cmd.exe`. - ([@saper](https://github.com/saper)) - -#### IT SEEMED LIKE AN IDEA AT THE TIME - -* [`286f3d9`](https://github.com/npm/npm/commit/286f3d97103812f0fd84b70352addbe899e258f9) - [#9201](https://github.com/npm/npm/pull/9201) For a while npm was building - HTML partials for use on [`docs.npmjs.com`](https://docs.npmjs.com), but we - weren't actually using them. Stop building them, which makes running the full - test suite and installation process around a third faster. - ([@isaacs](https://github.com/isaacs)) - -#### A SINGLE LONELY DEPENDENCY UPGRADE - -* [`b343b95`](https://github.com/npm/npm/commit/b343b956ef777e321e4251ddc96ec6d80827d9e2) - `request@2.61.0`: Bug fixes and keep-alive tweaks. - ([@simov](https://github.com/simov)) - -### v2.14.0 (2015-08-13): - -#### IT'S HERE! KINDA! - -This release adds support for teens and orcs (err, teams and organizations) to -the npm CLI! Note that the web site and registry-side features of this are -still not ready for public consumption. - -A beta should be starting in the next couple of weeks, and the features -themselves will become public once all that's done. Keep an eye out for more -news! - -All of these changes were done under [`#9011`](https://github.com/npm/npm/pull/9011): - -* [`6424170`](https://github.com/npm/npm/commit/6424170fc17c666a6efc090370ec691e0cab1792) - Added new `npm team` command and subcommands. - ([@zkat](https://github.com/zkat)) -* [`52220d1`](https://github.com/npm/npm/commit/52220d146d474ec29b683bd99c06f75cbd46a9f4) - Added documentation for new `npm team` command. - ([@zkat](https://github.com/zkat)) -* [`4e66830`](https://github.com/npm/npm/commit/4e668304850d02df8eb27a779fda76fe5de645e7) - Updated `npm access` to support teams and organizations. - ([@zkat](https://github.com/zkat)) -* [`ea3eb87`](https://github.com/npm/npm/commit/ea3eb8733d9fa09ce34106b1b19fb1a8f95844a5) - Gussied up docs for `npm access` with new commands. - ([@zkat](https://github.com/zkat)) -* [`6e0b431`](https://github.com/npm/npm/commit/6e0b431c1de5e329c86e57d097aa88ebfedea864) - Fix up `npm whoami` to make the underlying API usable elsewhere. - ([@zkat](https://github.com/zkat)) -* [`f29c931`](https://github.com/npm/npm/commit/f29c931012ce5ccd69c29d83548f27e443bf7e62) - `npm-registry-client@7.0.1`: Upgrade `npm-registry-client` API to support - `team` and `access` calls against the registry. - ([@zkat](https://github.com/zkat)) - -#### A FEW EXTRA VERSION BUMPS - -* [`c977e12`](https://github.com/npm/npm/commit/c977e12cbfa50c2f52fc807f5cc19ba1cc1b39bf) - `init-package-json@1.8.0`: Checks for some `npm@3` metadata. - ([@iarna](https://github.com/iarna)) -* [`5c8c9e5`](https://github.com/npm/npm/commit/5c8c9e5ae177ba7d0d298cfa42f3fc7f0271e4ec) - `columnify@1.5.2`: Updated some dependencies. - ([@timoxley](https://github.com/timoxley)) -* [`5d56742`](https://github.com/npm/npm/commit/5d567425768b75aeab402c817a53d8b2bc60d8de) - `chownr@1.0.1`: Tests, docs, and minor style nits. - ([@isaacs](https://github.com/isaacs)) - -#### ALSO A DOC FIX - -* [`846fcc7`](https://github.com/npm/npm/commit/846fcc79b86984b109a97366b0422f995a45f8bf) - [`#9200`](https://github.com/npm/npm/pull/9200) Remove single quotes - around semver range, thus making it valid semver. - ([@KenanY](https://github.com/KenanY)) - -### v2.13.5 (2015-08-07): - -This is another quiet week for the `npm@2` release. -[@zkat](https://github.com/zkat) has been working hard on polishing the CLI -bits of the registry's new feature to support direct management of teams and -organizations, and [@iarna](https://github.com/iarna) continues to work through -the list of issues blocking the general release of `npm@3`, which is looking -more and more solid all the time. - -[@othiym23](https://github.com/othiym23) and [@zkat](https://github.com/zkat) -have also been at this week's Node.js / io.js [collaborator -summit](https://github.com/nodejs/summit/tree/master), both as facilitators and -participants. This is a valuable opportunity to get some face time with other -contributors and to work through a bunch of important discussions, but it does -leave us feeling kind of sleepy. Running meetings is hard! - -What does that leave for this release? A few of the more tricky bug fixes that -have been sitting around for a little while now, and a couple dependency -upgrades. Nothing too fancy, but most of these were contributed by developers -like _you_, which we think is swell. Thanks! - -#### BUG FIXES - -* [`d7271b8`](https://github.com/npm/npm/commit/d7271b8226712479cdd339bf85faf7e394923e0d) - [#4530](https://github.com/npm/npm/issues/4530) The bash completion script - for npm no longer alters global completion behavior around word breaks. - ([@whitty](https://github.com/whitty)) -* [`c9ce294`](https://github.com/npm/npm/commit/c9ce29415a0a8fc610690b6e9d91b64d6e36cfcc) - [#7198](https://github.com/npm/npm/issues/7198) When setting up dependencies - to be shared via `npm link `, only run the lifecycle scripts during - the original link, not when running `npm link ` or `npm install - --link` against them. ([@murgatroid99](https://github.com/murgatroid99)) -* [`422da66`](https://github.com/npm/npm/commit/422da664bd3ce71313da447f170507faf5aac46a) - [#9108](https://github.com/npm/npm/issues/9108) Clear up minor confusion - around wording in `bundledDependencies` section of `package.json` docs. - ([@derekpeterson](https://github.com/derekpeterson)) -* [`6b42d99`](https://github.com/npm/npm/commit/6b42d99460885e715772d3487b1c548d2bc8a738) - [#9146](https://github.com/npm/npm/issues/9146) Include scripts that run for - `preversion`, `version`, and `postversion` in the section for lifecycle - scripts rather than the generic `npm run-script` output. - ([@othiym23](https://github.com/othiym23)) - -#### NOPE, NOT DONE WITH DEPENDENCY UPDATES - -* [`91a48bb`](https://github.com/npm/npm/commit/91a48bb5ef5a990781c86f8b69b8a32cf4fac2d9) - `chmodr@1.0.1`: Ignore symbolic links when recursively changing mode, just - like the Unix command. ([@isaacs](https://github.com/isaacs)) -* [`4bbc86e`](https://github.com/npm/npm/commit/4bbc86e3825e2eee9a8758ba26bdea0cb6a2581e) - `nock@2.10.0` ([@pgte](https://github.com/pgte)) - -### v2.13.4 (2015-07-30): - -#### JULY ENDS ON A FAIRLY QUIET NOTE - -Hey everyone! I hope you've had a great week. We're having a fairly small -release this week while we wrap up Teams and Orgs (or, as we've taken to calling -it internally, _Teens and Orcs_). - -In other exciting news, a bunch of us are gonna be at the [Node.js Collaborator -Summit](https://github.com/nodejs/summit/issues/1), and you can also find us at -[wafflejs](https://wafflejs.com/) on Wednesday. Hopefully we'll be seeing some -of you there. :) - -#### THE PATCH!!! - -So here it is. The patch. Hope it helps. (Thanks, -[@ktarplee](https://github.com/ktarplee)!) - -* [`2e58c48`](https://github.com/npm/npm/commit/2e58c4819e3cafe4ae23ab7f4a520fe09258cfd7) - [#9033](https://github.com/npm/npm/pull/9033) `npm version` now works on git - submodules - ([@ktarplee](https://github.com/ktarplee)) - -#### OH AND THERE'S A DEV DEPENDENCIES UPDATE - -Hooray. - -* [`d204683`](https://github.com/npm/npm/commit/d2046839d471322e61e3ceb0f00e78e5c481f967) - `nock@2.9.1` - ([@pgte](https://github.com/pgte)) - -### v2.13.3 (2015-07-23): - -#### I'M SAVING THE GOOD JOKES FOR MORE INTERESTING RELEASES - -It's pretty hard to outdo last week's release buuuuut~ I promise I'll have a -treat when we release our shiny new **Teams and Organizations** feature! :D -(Coming Soon™). It'll be a real *gem*. - -That means it's a pretty low-key release this week. We got some nice -documentation tweaks, a few bugfixes, and other such things, though! - -Oh, and a _bunch of version bumps_. Thanks, `semver`! - -#### IT'S THE LITTLE THINGS THAT MATTER - -* [`2fac6ae`](https://github.com/npm/npm/commit/2fac6aeffefba2934c3db395b525d931599c34d8) - [#9012](https://github.com/npm/npm/issues/9012) A convenience for releases -- - using the globally-installed npm before now was causing minor annoyances, so - we just use the exact same npm we're releasing to build the new release. - ([@zkat](https://github.com/zkat)) - -#### WHAT DOES THIS BUTTON DO? - -There's a couple of doc updates! The last one might be interesting. - -* [`4cd3205`](https://github.com/npm/npm/commit/4cd32050c0f89b7f1ae486354fa2c35eea302ba5) - [#9002](https://github.com/npm/npm/issues/9002) Updated docs to list the - various files that npm automatically includes and excludes, regardless of - settings. - ([@SimenB](https://github.com/SimenB)) -* [`cf09e75`](https://github.com/npm/npm/commit/cf09e754931739af32647d667b671e72a4c79081) - [#9022](https://github.com/npm/npm/issues/9022) Document the `"access"` field - in `"publishConfig"`. Did you know you don't need to use `--access=public` - when publishing scoped packages?! Just put it in your `package.json`! - Go refresh yourself on scopes packages by [checking our docs](https://docs.npmjs.com/getting-started/scoped-packages) on them. - ([@boennemann](https://github.com/boennemann)) -* [`bfd73da`](https://github.com/npm/npm/commit/bfd73da33349cc2afb8278953b2ae16ea95023de) - [#9013](https://github.com/npm/npm/issues/9013) fixed typo in changelog - ([@radarhere](https://github.com/radarhere)) - -#### THE SEMVER MAJOR VERSION APOCALYPSE IS UPON US - -Basically, `semver` is up to `@5`, and that meant we needed to go in an update a -bunch of our dependencies manually. `node-gyp` is still pending update, since -it's not ours, though! - -* [`9232e58`](https://github.com/npm/npm/commit/9232e58d54c032c23716ef976023d36a42bfdcc9) - [#8972](https://github.com/npm/npm/issues/8972) `init-package-json@1.7.1` - ([@othiym23](https://github.com/othiym23)) -* [`ba44f6b`](https://github.com/npm/npm/commit/ba44f6b4201a4faee025341b123e372d8f45b6d9) - [#8972](https://github.com/npm/npm/issues/8972) `normalize-package-data@2.3.1` - ([@othiym23](https://github.com/othiym23)) -* [`3901d3c`](https://github.com/npm/npm/commit/3901d3cf191880bb4420b1d6b8aedbcd8fc26cdf) - [#8972](https://github.com/npm/npm/issues/8972) `npm-install-checks@1.0.6` - ([@othiym23](https://github.com/othiym23)) -* [`ffcc7dd`](https://github.com/npm/npm/commit/ffcc7dd12f8bb94ff0f64c465c57e460b3f24a24) - [#8972](https://github.com/npm/npm/issues/8972) `npm-package-arg@4.0.2` - ([@othiym23](https://github.com/othiym23)) -* [`7128f9e`](https://github.com/npm/npm/commit/7128f9ec10c0c8482087511b716dbddb54249626) - [#8972](https://github.com/npm/npm/issues/8972) `npm-registry-client@6.5.1` - ([@othiym23](https://github.com/othiym23)) -* [`af28911`](https://github.com/npm/npm/commit/af28911ecd54a844f848c6ae41887097d6aa2f3b) - [#8972](https://github.com/npm/npm/issues/8972) `read-installed@4.0.2` - ([@othiym23](https://github.com/othiym23)) -* [`3cc817a`](https://github.com/npm/npm/commit/3cc817a0f34f698b580ff6ff02308700efc54f7c) - [#8972](https://github.com/npm/npm/issues/8972) node-gyp needs its own version - of semver - ([@othiym23](https://github.com/othiym23)) -* [`f98eccc`](https://github.com/npm/npm/commit/f98eccc6e3a6699ca0aa9ecbad93a3b995583871) - [#8972](https://github.com/npm/npm/issues/8972) `semver@5.0.1`: Stop including - browser builds. - ([@isaacs](https://github.com/isaacs)) - -#### \*BUMP\* - -And some other version bumps for good measure. - -* [`254ecfb`](https://github.com/npm/npm/commit/254ecfb04f026c2fd16427db01a53600c1892c8b) - [#8990](https://github.com/npm/npm/issues/8990) `marked-man@0.1.5`: Fixes an - issue with documentation rendering where backticks in 2nd-level headers would - break rendering (?!?!) - ([@steveklabnik](https://github.com/steveklabnik)) -* [`79efd79`](https://github.com/npm/npm/commit/79efd79ac216da8cee8636fb2ed926b0196a4eb6) - `minimatch@2.0.10`: A pattern like `'*.!(x).!(y)'` should not match a name - like `'a.xyz.yab'`. - ([@isaacs](https://github.com/isaacs)) -* [`39c7dc9`](https://github.com/npm/npm/commit/39c7dc9a4e17cd35a5ed882ba671821c9a900f9e) - `request@2.60.0`: A few bug fixes and doc updates. - ([@simov](https://github.com/simov)) -* [`72d3c3a`](https://github.com/npm/npm/commit/72d3c3a9e1e461608aa21b14c01a650333330da9) - `rimraf@2.4.2`: Minor doc and dep updates - ([@isaacs](https://github.com/isaacs)) -* [`7513035`](https://github.com/npm/npm/commit/75130356a06f5f4fbec3786aac9f9f0b36dfe010) - `nock@2.9.1` - ([@pgte](https://github.com/pgte)) -* [`3d9aa82`](https://github.com/npm/npm/commit/3d9aa82260f0643a32c13d0c1ed16f644b6fd4ab) - Fixes this thing where Kat decided to save `nock` as a regular dependency ;) - ([@othiym23](https://github.com/othiym23)) - -### v2.13.2 (2015-07-16): - -#### HOLD ON TO YOUR TENTACLES... IT'S NPM RELEASE TIME! - -Kat: Hooray! Full team again, and we've got a pretty small patch release this -week, about everyone's favorite recurring issue: git URLs! - -Rebecca: No Way! Again? - -Kat: The ride never ends! In the meantime, there's some fun, exciting work in -the background to get orgs and teams out the door. Keep an eye out for news. :) - -Rebecca: And make sure to keep an eye out for patches for the super-fresh -`npm@3`! - -#### LET'S GIT INKY - -Rebecca: So what's this about another git URL issue? - -Kat: Welp, I apparently broke backwards-compatibility on what are actually -invalid `git+https` URLs! So I'm making it work, but we're gonna deprecate URLs -that look like `git+https://user@host:path/is/here`. - -Rebecca: What should we use instead?! - -Kat: Just do me a solid and use `git+ssh://user@host:path/here` or -`git+https://user@host/absolute/https/path` instead! - -* [`769f06e`](https://github.com/npm/npm/commit/769f06e5455d7a9fc738379de2e05868df0dab6f) - Updated tests for `getResolved` so the URLs are run through - `normalize-git-url`. - ([@zkat](https://github.com/zkat)) -* [`edbae68`](https://github.com/npm/npm/commit/edbae685bf48971e878ced373d6825fc1891ee47) - [#8881](https://github.com/npm/npm/issues/8881) Added tests to verify that `git+https:` URLs are handled compatibly. - ([@zkat](https://github.com/zkat)) - -#### NEWS FLASH! DOCUMENTATION IMPROVEMENTS! - -* [`bad4e014`](https://github.com/npm/npm/commit/bad4e0143cc95754a682f1da543b2b4e196e924b) - [#8924](https://github.com/npm/npm/pull/8924) Make sure documented default - values in `lib/cache.js` properly correspond to current code. - ([@watilde](https://github.com/watilde)) -* [`e7a11fd`](https://github.com/npm/npm/commit/e7a11fdf70e333cdfe3dac94a1a30907adb76d59) - [#8036](https://github.com/npm/npm/issues/8036) Clarify the documentation for - `.npmrc` to clarify that it's not read at the project level when doing global - installs. - ([@espadrine](https://github.com/espadrine)) - -#### STAY FRESH~ - -Kat: That's it for npm core changes! - -Rebecca: Great! Let's look at the fresh new dependencies, then! - -Kat: See you all next week! - -Both: Stay Freeesh~ - -(some cat form of Forrest can be seen snoring in the corner) - -* [`bfa1f45`](https://github.com/npm/npm/bfa1f45ee760d05039557d2245b7e3df9fda8def) - `normalize-git-url@3.0.1`: Fixes url normalization such that `git+https:` - accepts scp syntax, but get converted into absolute-path `https:` URLs. Also - fixes scp syntax so you can have absolute paths after the `:` - (`git@myhost.org:/some/absolute/place.git`) - ([@zkat](https://github.com/zkat)) -* [`6f757d2`](https://github.com/npm/npm/6f757d22b53f91da0bebec6b5d16c1f4dbe130b4) - `glob@5.0.15`: Better handling of ENOTSUP - ([@isaacs](https://github.com/isaacs)) -* [`0920819`](https://github.com/npm/npm/09208197fb8b0c6d5dbf6bd7f59970cf366de989) - `node-gyp@2.0.2`: Fixes an issue with long paths on Win32 - ([@TooTallNate](https://github.com/TooTallNate)) - -### v2.13.1 (2015-07-09): - -#### KAUAI WAS NICE. I MISS IT. - -But Forrest's still kinda on vacation, and not just mentally, because he's -hanging out with the fine meatbags at CascadiaFest. Enjoy this small bug -release. - -#### MAKE OURSELVES HAPPY - -* [`40981f2`](https://github.com/npm/npm/commit/40981f2e0c9c12bb003ccf188169afd1d201f5af) - [#8862](https://github.com/npm/npm/issues/8862) Make the lifecycle's safety - check work with scoped packages. ([@tcort](https://github.com/tcort)) -* [`5125856`](https://github.com/npm/npm/commit/512585622481dbbda9a0306932468d59efaff658) - [#8855](https://github.com/npm/npm/issues/8855) Make dependency versions of - `"*"` match `"latest"` when all versions are prerelease. - ([@iarna](https://github.com/iarna)) -* [`22fdc1d`](https://github.com/npm/npm/commit/22fdc1d52602ba7098af978c75fca8f7d1060141) - Visually emphasize the correct way to write lifecycle scripts. - ([@josh-egan](https://github.com/josh-egan)) - -#### MAKE TRAVIS HAPPY - -* [`413c3ac`](https://github.com/npm/npm/commit/413c3ac2ab2437f3011c6ca0d1630109ec14e604) - Use npm's `2.x` branch for testing its `2.x` branch. - ([@iarna](https://github.com/iarna)) -* [`7602f64`](https://github.com/npm/npm/commit/7602f64826f7a465d9f3a20bd87a376d992607e6) - Don't prompt for GnuPG passphrase in version lifecycle tests. - ([@othiym23](https://github.com/othiym23)) - -#### MAKE `npm outdated` HAPPY - -* [`d338668`](https://github.com/npm/npm/commit/d338668601d1ebe5247a26237106e80ea8cd7f48) - [#8796](https://github.com/npm/npm/issues/8796) `fstream-npm@1.0.4`: When packing the - package tarball, npm no longer crashes for packages with certain combinations of - `.npmignore` entries, `.gitignore` entries, and lifecycle scripts. - ([@iarna](https://github.com/iarna)) -* [`dbe7c9c`](https://github.com/npm/npm/commit/dbe7c9c74734be870d16dd61b9e7f746123011f6) - `nock@2.7.0`: Add matching based on query strings. - ([@othiym23](https://github.com/othiym23)) - -There are new versions of `strip-ansi` and `ansi-regex`, but npm only uses them -indirectly, so we pushed them down into their dependencies where they can get -updated at their own pace. - -* [`06b6ca5`](https://github.com/npm/npm/commit/06b6ca5b5333025f10c8d901628859bd4678e027) - undeduplicate `ansi-regex` ([@othiym23](https://github.com/othiym23)) -* [`b168e33`](https://github.com/npm/npm/commit/b168e33ad46faf47020a45f72ba8cec8c644bdb9) - undeduplicate `strip-ansi` ([@othiym23](https://github.com/othiym23)) - -### v2.13.0 (2015-07-02): - -#### FORREST IS OUT! LET'S SNEAK IN ALL THE THINGS! - -Well, not _everything_. Just a couple of goodies, like the new `npm ping` -command, and the ability to add files to the commits created by `npm version` -with the new version hooks. There's also a couple of bugfixes in `npm` itself -and some of its dependencies. Here we go! - -#### YES HELLO THIS IS NPM REGISTRY SORRY NO DOG HERE - -Yes, that's right! We now have a dedicated `npm ping` command. It's super simple -and super easy. You ping. We tell you whether you pinged right by saying hello -right back. This should help out folks dealing with things like proxy issues or -other registry-access debugging issues. Give it a shot! - -This addresses [#5750](https://github.com/npm/npm/issues/5750), and will help -with the `npm doctor` stuff described in -[#6756](https://github.com/npm/npm/issues/6756). - -* [`f1f7a85`](https://github.com/npm/npm/commit/f1f7a85) - Add ping command to CLI - ([@michaelnisi](https://github.com/michaelnisi)) -* [`8cec629`](https://github.com/npm/npm/commit/8cec629) - Add ping command to npm-registry-client - ([@michaelnisi](https://github.com/michaelnisi)) -* [`0c0c92d`](https://github.com/npm/npm/0c0c92d) - Fixed ping command issues (added docs, tests, fixed minor bugs, etc) - ([@zkat](https://github.com/zkat)) - -#### I'VE WANTED THIS FOR `version` SINCE LIKE LITERALLY FOREVER AND A DAY - -Seriously! This patch lets you add files to the `version` commit before it's -made, So you can add additional metadata files, more automated changes to -`package.json`, or even generate `CHANGELOG.md` automatically pre-commit if -you're into that sort of thing. I'm so happy this is there I can't even. Do you -have other fun usecases for this? Tell -[npmbot (@npmjs)](http://twitter.com/npmjs) about it! - -* [`582f170`](https://github.com/npm/npm/commit/582f170) - [#8620](https://github.com/npm/npm/issues/8620) version: Allow scripts to add - files to the commit. - ([@jamestalmage](https://github.com/jamestalmage)) - -#### ALL YOUR FILE DESCRIPTORS ARE BELONG TO US - -We've had problems in the past with things like `EMFILE` errors popping up when -trying to install packages with a bunch of dependencies. Isaac patched up -[`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to handle this case -better, so we should be seeing fewer of those. - -* [`022691a`](https://github.com/npm/npm/commit/022691a) - `graceful-fs@4.1.2`: Updated so we can monkey patch globally. - ([@isaacs](https://github.com/isaacs)) -* [`c9fb0fd`](https://github.com/npm/npm/commit/c9fb0fd) - Globally monkey-patch graceful-fs. This should fix some errors when installing - packages with lots of dependencies. - ([@isaacs](https://github.com/isaacs)) - -#### READ THE FINE DOCS. THEY'VE IMPROVED - -* [`5587d0d`](https://github.com/npm/npm/commit/5587d0d) - Nice clarification for `directories.bin` - ([@ujane](https://github.com/ujane)) -* [`20673c7`](https://github.com/npm/npm/commit/20673c7) - Hey, Windows folks! Check out - [`nvm-windows`](https://github.com/coreybutler/nvm-windows) - ([@ArtskydJ](https://github.com/ArtskydJ)) - -#### MORE NUMBERS! MORE VALUE! - -* [`5afa2d5`](https://github.com/npm/npm/commit/5afa2d5) - `validate-npm-package-name@2.2.2`: Documented package name rules in README - ([@zeusdeux](https://github.com/zeusdeux)) -* [`021f4d9`](https://github.com/npm/npm/commit/021f4d9) - `rimraf@2.4.1`: [#74](https://github.com/isaacs/rimraf/issues/74) Use async - function for bin (to better handle Window's `EBUSY`) - ([@isaacs](https://github.com/isaacs)) -* [`5223432`](https://github.com/npm/npm/commit/5223432) - `osenv@0.1.3`: Use `os.homedir()` polyfill for more reliable output. io.js - added the function and the polyfill does a better job than the prior solution. - ([@sindresorhus](https://github.com/sindresorhus)) -* [`8ebbc90`](https://github.com/npm/npm/commit/8ebbc90) - `npm-cache-filename@1.0.2`: Make sure different git references get different - cache folders. This should prevent `foo/bar#v1.0` and `foo/bar#master` from - sharing the same cache folder. - ([@tomekwi](https://github.com/tomekwi)) -* [`367b854`](https://github.com/npm/npm/commit/367b854) - `lru-cache@2.6.5`: Minor test/typo changes - ([@isaacs](https://github.com/isaacs)) -* [`9fcae61`](https://github.com/npm/npm/commit/9fcae61) - `glob@5.0.13`: Tiny doc change + stop firing 'match' events for ignored items. - ([@isaacs](https://github.com/isaacs)) - -#### OH AND ONE MORE THING - -* [`7827249`](https://github.com/npm/npm/commit/7827249) - `PeerDependencies` errors now include the package version. - ([@NickHeiner](https://github.com/NickHeiner)) - -### v2.12.1 (2015-06-25): - -#### HEY WHERE DID EVERYBODY GO - -I keep [hearing some commotion](https://github.com/npm/npm/releases/tag/v3.0.0). -Is there something going on? Like, a party or something? Anyway, here's a small -release with at least two significant bug fixes, at least one of which some of -you have been waiting for for quite a while. - -#### REMEMBER WHEN I SAID "REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS?"? - -`npm@2.12.0` has a change that introduces a fix for a permissions problem -whereby the `_locks` directory in the cache directory can up being owned by -root. The fix in 2.12.0 takes care of that problem, but introduces a new -problem for Windows users where npm tries to call `process.getuid()`, which -doesn't exist on Windows. It was easy enough to fix (but more or less -impossible to test, thanks to all the external dependencies involved with -permissions and platforms and whatnot), but as a result, Windows users might -want to skip `npm@2.12.0` and go straight to `npm@2.12.1`. Sorry about that! - -* [`7e5da23`](https://github.com/npm/npm/commit/7e5da238ee869201fdb9027c27b79b0f76b440a8) - When using the new, "fixed" cache directory creator, be extra-careful to not - call `process.getuid()` on platforms that lack it. - ([@othiym23](https://github.com/othiym23)) - -#### WHEW! ALL DONE FIXING GIT FOREVER! - -New npm CLI team hero [@zkat](https://github.com/zkat) has finally (FINALLY) -fixed the regression somebody (hi!) introduced a couple months ago whereby git -URLs of the format `git+ssh://user@githost.com:org/repo.git` suddenly stopped -working, and also started being saved (and cached) incorrectly. I am 100% sure -there are absolutely no more bugs in the git caching code at all ever. Mm hm. -Yep. Pretty sure. Maybe. Hmm... I hope. - -*Sighs audibly.* - -[Let us know](http://github.com/npm/npm/issues/new) if we broke something else -with this fix. - -* [`94ca4a7`](https://github.com/npm/npm/commit/94ca4a711619ba8e40ce3d20bc42b13cdb7611b7) - [#8031](https://github.com/npm/npm/issues/8031) Even though - `git+ssh://user@githost.com:org/repo.git` isn't a URL, treat it like one for - the purposes of npm. ([@zkat](https://github.com/zkat)) -* [`e7f56e5`](https://github.com/npm/npm/commit/e7f56e5a97fcf1c52d5c5bee71303b0126129815) - [#8031](https://github.com/npm/npm/issues/8031) `normalize-git-url@2.0.0`: - Handle git URLs (and URL-like remote refs) in a manner consistent with npm's - docs. ([@zkat](https://github.com/zkat)) - -#### YEP, THERE ARE STILL DEPENDENCY UPGRADES - -* [`679bf47`](https://github.com/npm/npm/commit/679bf4745ac2cfbb01c9ce273e189807fd04fa33) - [#40](http://github.com/npm/read-installed/issues/40) `read-installed@4.0.1`: - Handle prerelease versions in top-level dependencies not in `package.json` - without marking those packages as invalid. - ([@benjamn](https://github.com/benjamn)) -* [`3a67410`](https://github.com/npm/npm/commit/3a6741068c9119174c920496778aeee870ebdac0) - `tap@1.3.1` ([@isaacs](https://github.com/isaacs)) -* [`151904a`](https://github.com/npm/npm/commit/151904af39dc24567f8c98529a2a64a4dbcc960a) - `nopt@3.0.3` ([@isaacs](https://github.com/isaacs)) - -### v2.12.0 (2015-06-18): - -#### REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS? - -About [a million people](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+EACCES+_locks) -have filed issues related to having a tough time using npm after they've run -npm once or twice with sudo. "Don't worry about it!" I said. "We've fixed all -those permissions problems ages ago! Use this one weird trick and you'll never -have to deal with this again!" - -Well, uh, if you run npm with root the first time you run npm on a machine, it -turns out that the directory npm uses to store lockfiles ends up being owned by -the wrong user (almost always root), and that can, well, it can cause problems -sometimes. By which I mean every time you run npm without being root it'll barf -with `EACCES` errors. Whoops! - -This is an obnoxious regression, and to prevent it from recurring, we've made -it so that the cache, cached git remotes, and the lockfile directories are all -created and maintained using the same utilty module, which not only creates the -relevant paths with the correct permissions, but will fix the permissions on -those directories (if it can) when it notices that they're broken. An `npm -install` run as root ought to be sufficient to fix things up (and if that -doesn't work, first tell us about it, and then run `sudo chown -R $(whoami) -$HOME/.npm`) - -Also, I apologize for inadvertently gaslighting any of you by claiming this bug -wasn't actually a bug. I do think we've got this permanently dealt with now, -but I'll be paying extra-close attention to permissions issues related to the -cache for a while. - -* [`85d1a53`](https://github.com/npm/npm/commit/85d1a53d7b5e0fc04823187e522ae3711ede61fa) - Set permissions on lock directory to the owner of the process. - ([@othiym23](https://github.com/othiym23)) - -#### I WENT TO NODECONF AND ALL I GOT WAS THIS LOUSY SPDX T-SHIRT - -That's not literally true. We spent very little time discussing SPDX, -[@kemitchell](https://github.com/kemitchell) is a champ, and I had a lot of fun -playing drum & bass to a mostly empty Boogie Barn and only ended up with one -moderately severe cold for my pains. Another winner of a NodeConf! (I would -probably wear a SPDX T-shirt if somebody gave me one, though.) - -A bunch of us did have a spirited discussion of the basics of open-source -intellectual property, and the convergence of me, -[@kemitchell](https://github.com/kemitchell), and -[@jandrieu](https://github.com/jandrieu) in one place allowed us to hammmer out -a small but significant issue that had been bedeviling early adopters of the -new SPDX expression syntax in `package.json` license fields: how to deal with -packages that are left without a license on purpose. - -Refer to [the docs](https://github.com/npm/npm/blob/16a3dd545b10f8a2464e2037506ce39124739b41/doc/files/package.json.md#license) -for the specifics, but the short version is that instead of using -`LicenseRef-LICENSE` for proprietary licenses, you can now use either -`UNLICENSED` if you want to make it clear that you don't _want_ your software -to be licensed (and want npm to stop warning you about this), or `SEE LICENSE -IN ` if there's a license with custom text you want to use. At some -point in the near term, we'll be updating npm to verify that the mentioned -file actually exists, but for now you're all on the honor system. - -* [`4827fc7`](https://github.com/npm/npm/commit/4827fc784117c17f35dd9b51b21d1eff6094f661) - [#8557](https://github.com/npm/npm/issues/8557) - `normalize-package-data@2.2.1`: Allow `UNLICENSED` and `SEE LICENSE IN - ` in "license" field of `package.json`. - ([@kemitchell](https://github.com/kemitchell)) -* [`16a3dd5`](https://github.com/npm/npm/commit/16a3dd545b10f8a2464e2037506ce39124739b41) - [#8557](https://github.com/npm/npm/issues/8557) Document the new accepted - values for the "license" field. - ([@kemitchell](https://github.com/kemitchell)) -* [`8155311`](https://github.com/npm/npm/commit/81553119350deaf199e79e38e35b52a5c8ad206c) - [#8557](https://github.com/npm/npm/issues/8557) `init-package-json@1.7.0`: - Support new "license" field values at init time. - ([@kemitchell](https://github.com/kemitchell)) - -#### SMALLISH BUG FIXES - -* [`9d8cac9`](https://github.com/npm/npm/commit/9d8cac94a258db648a2b1069b1c8c6529c79d013) - [#8548](https://github.com/npm/npm/issues/8548) Remove extraneous newline - from `npm view` output, making it easier to use in shell scripts. - ([@eush77](https://github.com/eush77)) -* [`765fd4b`](https://github.com/npm/npm/commit/765fd4bfca8ea3e2a4a399765b17eec40a3d893d) - [#8521](https://github.com/npm/npm/issues/8521) When checking for outdated - packages, or updating packages, raise an error when the registry is - unreachable instead of silently "succeeding". - ([@ryantemple](https://github.com/ryantemple)) - -#### SMALLERISH DOCUMENTATION TWEAKS - -* [`5018335`](https://github.com/npm/npm/commit/5018335ce1754a9f771954ecbc1a93acde9b8c0a) - [#8365](https://github.com/npm/npm/issues/8365) Add details about which git - environment variables are whitelisted by npm. - ([@nmalaguti](https://github.com/nmalaguti)) -* [`bed9edd`](https://github.com/npm/npm/commit/bed9edddfdcc6d22a80feab33b53e4ef9172ec72) - [#8554](https://github.com/npm/npm/issues/8554) Fix typo in version docs. - ([@rainyday](https://github.com/rainyday)) - -#### WELL, I GUESS THERE ARE MORE DEPENDENCY UPGRADES - -* [`7ce2f06`](https://github.com/npm/npm/commit/7ce2f06f6f34d469b1d2e248084d4f3fef10c05e) - `request@2.58.0`: Refactor tunneling logic, and use `extend` instead of - abusing `util._extend`. ([@simov](https://github.com/simov)) -* [`e6c6195`](https://github.com/npm/npm/commit/e6c61954aad42e20eec49745615c7640b2026a6c) - `nock@2.6.0`: Refined interception behavior. - ([@pgte](https://github.com/pgte)) -* [`9583cc3`](https://github.com/npm/npm/commit/9583cc3cb192c2fced006927cfba7cd37b588605) - `fstream-npm@1.0.3`: Ensure that `main` entry in `package.json` is always - included in the bundled package tarball. - ([@coderhaoxin](https://github.com/coderhaoxin)) -* [`df89493`](https://github.com/npm/npm/commit/df894930f2716adac28740b29b2e863170919990) - `fstream@1.0.7` ([@isaacs](https://github.com/isaacs)) -* [`9744049`](https://github.com/npm/npm/commit/974404934758124aa8ae5b54f7d5257c3bd6b588) - `dezalgo@1.0.3`: `dezalgo` should be usable in the browser, and can be now - that `asap` has been upgraded to be browserifiable. - ([@mvayngrib](https://github.com/mvayngrib)) - -### v2.11.3 (2015-06-11): - -This was a very quiet week. This release was done by -[@iarna](https://github.com/iarna), while the rest of the team hangs out at -NodeConf Adventure! - -#### TESTS IN 0.8 FAIL LESS - -* [`5b3b3c2`](https://github.com/npm/npm/commit/5b3b3c2) - [#8491](//github.com/npm/npm/pull/8491) - Updates a test to use only 0.8 compatible features - ([@watilde](https://github.com/watilde)) - -#### THE TREADMILL OF UPDATES NEVER CEASES - -* [`9f439da`](https://github.com/npm/npm/commit/9f439da) - `spdx@0.4.1`: License range updates - ([@kemitchell](https://github.com/kemitchell)) -* [`2dd055b`](https://github.com/npm/npm/commit/2dd055b) - `normalize-package-data@2.2.1`: Fixes a crashing bug when the package.json - `scripts` property is not an object. - ([@iarna](https://github.com/iarna)) -* [`e02e85d`](https://github.com/npm/npm/commit/e02e85d) - `osenv@0.1.2`: Switches to using the `os-tmpdir` module instead of - `os.tmpdir()` for greate consistency in behavior between node versions. - ([@iarna](https://github.com/iarna)) -* [`a6f0265`](https://github.com/npm/npm/commit/a6f0265) - `ini@1.3.4` ([@isaacs](https://github.com/isaacs)) -* [`7395977`](https://github.com/npm/npm/commit/7395977) - `rimraf@2.4.0` ([@isaacs](https://github.com/isaacs)) - -### v2.11.2 (2015-06-04): - -Another small release this week, brought to you by the latest addition to the -CLI team, [@zkat](https://github.com/zkat) (Hi, all!) - -Mostly small documentation tweaks and version updates. Oh! And `npm outdated` -is actually sorted now. Rejoice! - -It's gonna be a while before we get another palindromic version number. Enjoy it -while it lasts. :3 - -#### QUALITY OF LIFE HAS NEVER BEEN BETTER - -* [`31aada4`](https://github.com/npm/npm/commit/31aada4ccc369c0903ff7f233f464955d12c6fe2) - [#8401](https://github.com/npm/npm/issues/8401) `npm outdated` output is just - that much nicer to consume now, due to sorting by name. - ([@watilde](https://github.com/watilde)) -* [`458a919`](https://github.com/npm/npm/commit/458a91925d8b20c5e672ba71a86745aad654abaf) - [#8469](https://github.com/npm/npm/pull/8469) Explicitly set `cwd` for - `preversion`, `version`, and `postversion` scripts. This makes the scripts - findable relative to the root dir. - ([@alexkwolfe](https://github.com/alexkwolfe)) -* [`55d6d71`](https://github.com/npm/npm/commit/55d6d71562e979e745c9db88861cc39f99b9f3ec) - Ensure package name and version are included in display during `npm version` - lifecycle execution. Gets rid of those little `undefined`s in the console. - ([@othiym23](https://github.com/othiym23)) - -#### WORDS HAVE NEVER BEEN QUITE THIS READABLE - -* [`3901e49`](https://github.com/npm/npm/commit/3901e4974c800e7f9fba4a5b2ff88da1126d5ef8) - [#8462](https://github.com/npm/npm/pull/8462) English apparently requires - correspondence between indefinite articles and attached nouns. - ([@Enet4](https://github.com/Enet4)) -* [`5a744e4`](https://github.com/npm/npm/commit/5a744e4b143ef7b2f50c80a1d96fdae4204d452b) - [#8421](https://github.com/npm/npm/pull/8421) The effect of `npm prune`'s - `--production` flag and how to use it have been documented a bit better. - ([@foiseworth](https://github.com/foiseworth)) -* [`eada625`](https://github.com/npm/npm/commit/eada625993485f0a2c5324b06f02bfa0a95ce4bc) - We've updated our `.mailmap` and `AUTHORS` files to make sure credit is given - where credit is due. ([@othiym23](https://github.com/othiym23)) - -#### VERSION NUMBERS HAVE NEVER BEEN BIGGER - -* [`c929fd1`](https://github.com/npm/npm/commit/c929fd1d0604b5878ed05706447e078d3e41f5b3) - `readable-stream@1.1.13`: Manually deduped `v1.1.13` (streams3) to make - deduping more reliable on `npm@<3`. ([@othiym23](https://github.com/othiym23)) -* [`a9b4b78`](https://github.com/npm/npm/commit/a9b4b78dcc85571fd1cdd737903f7f37a5e6a755) - `request@2.57.0`: Replace dependency on IncomingMessage's `.client` with - `.socket` as the former was deprecated in io.js 2.2.0. - ([@othiym23](https://github.com/othiym23)) -* [`4b5e557`](https://github.com/npm/npm/commit/4b5e557a23cdefd521ad154111e3d4dcc81f1cdb) - `abbrev@1.0.7`: Better testing, with coverage. - ([@othiym23](https://github.com/othiym23)) -* [`561affe`](https://github.com/npm/npm/commit/561affee21df9bbea5a47298f2452f533be8f359) - `semver@4.3.6`: .npmignore added for less cruft, and better testing, with coverage. - ([@othiym23](https://github.com/othiym23)) -* [`60aef3c`](https://github.com/npm/npm/commit/60aef3cf5d84d757752db3eb8ede2cb385469e7b) - `graceful-fs@3.0.8`: io.js fixes. - ([@zkat](https://github.com/zkat)) -* [`f8bd453`](https://github.com/npm/npm/commit/f8bd453b1a1c46ba7666cb166595e8a011eae443) - `config-chain@1.1.9`: Added MIT license to package.json - ([@zkat](https://github.com/zkat)) - -### v2.11.1 (2015-05-28): - -This release brought to you from poolside at the Omni Amelia Island Resort and -JSConf 2015, which is why it's so tiny. - -#### CONFERENCE WIFI CAN'T STOP THESE BUG FIXES - -* [`cf109a6`](https://github.com/npm/npm/commit/cf109a682f38a059a994da953d5c1b4aaece5e2f) - [#8381](https://github.com/npm/npm/issues/8381) Documented a subtle gotcha - with `.npmrc`, which is that it needs to have its permissions set such that - only the owner can read or write the file. - ([@colakong](https://github.com/colakong)) -* [`180da67`](https://github.com/npm/npm/commit/180da67c9fa53103d625e2f031626c2453c7ebcd) - [#8365](https://github.com/npm/npm/issues/8365) Git 2.3 adds support for - `GIT_SSH_COMMAND`, which allows you to pass an explicit git command (with, - for example, a specific identity passed in on the command line). - ([@nmalaguti](https://github.com/nmalaguti)) - -#### MY (VIRGIN) PINA COLADA IS GETTING LOW, BETTER UPGRADE THESE DEPENDENCIES - -* [`b72de41`](https://github.com/npm/npm/commit/b72de41c5cc9f0c46d3fa8f062c75bd273641474) - `node-gyp@2.0.0`: Use a newer version of `gyp`, and generally improve support - for Visual Studios and Windows. - ([@TooTallNate](https://github.com/TooTallNate)) -* [`8edbe21`](https://github.com/npm/npm/commit/8edbe210af41e8f248f5bb92c72de92f54fda3b1) - `node-gyp@2.0.1`: Don't crash when Python's version doesn't parse as valid - semver. ([@TooTallNate](https://github.com/TooTallNate)) -* [`ba0e0a8`](https://github.com/npm/npm/commit/ba0e0a845a4f29717aba566b416a27d1a22f5d08) - `glob@5.0.10`: Add coverage to tests. ([@isaacs](https://github.com/isaacs)) -* [`7333701`](https://github.com/npm/npm/commit/7333701b5d4f01673f37d64992c63c4e15864d6d) - `request@2.56.0`: Bug fixes and dependency upgrades. - ([@simov](https://github.com/simov)) - -### v2.11.0 (2015-05-21): - -For the first time in a very long time, we've added new events to the life -cycle used by `npm run-script`. Since running `npm version (major|minor|patch)` -is typically the last thing many developers do before publishing their updated -packages, it makes sense to add life cycle hooks to run tests or otherwise -preflight the package before doing a full publish. Thanks, as always, to the -indefatigable [@watilde](https://github.com/watilde) for yet another great -usability improvement for npm! - -#### FEATURELETS - -* [`b07f7c7`](https://github.com/npm/npm/commit/b07f7c7c1e5021730b3c320f1b3a46e70f8a21ff) - [#7906](https://github.com/npm/npm/issues/7906) - Add new [`scripts`](https://github.com/npm/npm/blob/master/doc/misc/npm-scripts.md) to - allow you to run scripts before and after - the [`npm version`](https://github.com/npm/npm/blob/master/doc/cli/npm-version.md) - command has run. This makes it easy to, for instance, require that your - test suite passes before bumping the version by just adding `"preversion": - "npm test"` to the scripts section of your `package.json`. - ([@watilde](https://github.com/watilde)) -* [`8a46136`](https://github.com/npm/npm/commit/8a46136f42e416cbadb533bcf89d73d681ed421d) - [#8185](https://github.com/npm/npm/issues/8185) - When we get a "not found" error from the registry, we'll now check to see - if the package name you specified is invalid and if so, give you a better - error message. ([@thefourtheye](https://github.com/thefourtheye)) - -#### BUG FIXES - -* [`9bcf573`](https://github.com/npm/npm/commit/9bcf5730bd0316f210dafea898afe9103849cea9) - [#8324](https://github.com/npm/npm/pull/8324) On Windows, when you've configured a - custom `node-gyp`, run it with node itself instead of using the default open action (which - is almost never what you want). ([@bangbang93](https://github.com/bangbang93)) -* [`1da9b04`](https://github.com/npm/npm/commit/1da9b0411d3416c7fca17d08cbbcfca7ae86e92d) - [#7195](https://github.com/npm/npm/issues/7195) - [#7260](https://github.com/npm/npm/issues/7260) `npm-registry-client@6.4.0`: - (Re-)allow publication of existing mixed-case packages (part 1). - ([@smikes](https://github.com/smikes)) -* [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646) - [#7195](https://github.com/npm/npm/issues/7195) - [#7260](https://github.com/npm/npm/issues/7260) - `normalize-package-data@2.2.0`: (Re-)allow publication of existing mixed-case - packages (part 2). ([@smikes](https://github.com/smikes)) - -#### DOCUMENTATION IMPROVEMENTS - -* [`f62ee05`](https://github.com/npm/npm/commit/f62ee05333b141539a8e851c620dd2e82ff06860) - [#8314](https://github.com/npm/npm/issues/8314) Update the README to warn - folks away from using the CLI's internal API. For the love of glob, just use a - child process to run the CLI! ([@claycarpenter](https://github.com/claycarpenter)) -* [`1093921`](https://github.com/npm/npm/commit/1093921c04db41ab46db24a170a634a4b2acd8d9) - [#8279](https://github.com/npm/npm/pull/8279) - Update the documentation to note that, yes, you can publish scoped packages to the - public registry now! ([@mantoni](https://github.com/mantoni)) -* [`f87cde5`](https://github.com/npm/npm/commit/f87cde5234a760d3e515ffdaacaed6f5b71dbf44) - [#8292](https://github.com/npm/npm/pull/8292) - Fix typo in an example and grammar in the description in - the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md). - ([@vshih](https://github.com/vshih)) -* [`d3526ce`](https://github.com/npm/npm/commit/d3526ceb09a0c29fdb7d4124536ae09057d033e7) - Improve the formatting in - the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md). - ([@othiym23](https://github.com/othiym23)) -* [`19fe6d2`](https://github.com/npm/npm/commit/19fe6d20883e28956ff916fe4dae42d73ee6195b) - [#8311](https://github.com/npm/npm/pull/8311) - Update [README.md](https://github.com/npm/npm#readme) to use syntax highlighting in - its code samples and bits of shell scripts. ([@SimenB](https://github.com/SimenB)) - -#### DEPENDENCY UPDATES! ALWAYS AND FOREVER! - -* [`fc52160`](https://github.com/npm/npm/commit/fc52160d0223226fffe4166f42fdfd3b899b3c1e) - [#4700](https://github.com/npm/npm/issues/4700) [#5044](https://github.com/npm/npm/issues/5044) - `init-package-json@1.6.0`: Make entering an invalid version while running `npm init` give - you an immediate error and prompt you to correct it. ([@watilde](https://github.com/watilde)) -* [`738853e`](https://github.com/npm/npm/commit/738853eb1f55636476a2a410c2c04732eec9d51e) - [#7763](https://github.com/npm/npm/issues/7763) `fs-write-stream-atomic@1.0.3`: Fix a bug - where errors would not propagate, making error messages unhelpful. - ([@iarna](https://github.com/iarna)) -* [`6d74a2d`](https://github.com/npm/npm/commit/6d74a2d2ac7f92750cf6a2cfafae1af23b569098) - `npm-package-arg@4.0.1`: Fix tests on windows ([@Bacra](https://github.com)) and with - more recent `hosted-git-info`. ([@iarna](https://github.com/iarna)) -* [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd) - `hosted-git-info@2.1.4`: Correct spelling in its documentation. - ([@iarna](https://github.com/iarna)) -* [`d7956ca`](https://github.com/npm/npm/commit/d7956ca17c057d5383ff0d3fc5cf6ac2940b034d) - `glob@5.0.7`: Fix a bug where unusual error conditions could make - further use of the module fail. ([@isaacs](https://github.com/isaacs)) -* [`44f7d74`](https://github.com/npm/npm/commit/44f7d74c5d3181d37da7ea7949c86b344153f8d9) - `tap@1.1.0`: Update to the most recent tap to get a whole host of bug - fixes and integration with [coveralls](https://coveralls.io/). - ([@isaacs](https://github.com/isaacs)) -* [`c21e8a8`](https://github.com/npm/npm/commit/c21e8a8d94bcf0ad79dc583ddc53f8366d4813b3) - `nock@2.2.0` ([@othiym23](https://github.com/othiym23)) - -#### LICENSE FILES FOR THE LICENSE GOD - -* Add missing ISC license file to package ([@kasicka](https://github.com/kasicka)): - * [`aa9908c`](https://github.com/npm/npm/commit/aa9908c20017729673b9d410b77f9a16b7aae8a4) `realize-package-specifier@3.0.1` - * [`23a3b1a`](https://github.com/npm/npm/commit/23a3b1a726b9176c70ce0ccf3cd9d25c54429bdf) `fs-vacuum@1.2.6` - * [`8e04bba`](https://github.com/npm/npm/commit/8e04bba830d4353d84751d21803cd127c96153a7) `dezalgo@1.0.2` - * [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd) `hosted-git-info@2.1.4` - * [`6a54917`](https://github.com/npm/npm/commit/6a54917fbd4df995495a95d4b548defd44b77c93) `write-file-atomic@1.1.2` - * [`971f92c`](https://github.com/npm/npm/commit/971f92c4a4e5514217d1e4db45d1ccf71a60ff19) `async-some@1.0.2` - * [`67b50b7`](https://github.com/npm/npm/commit/67b50b7667a42bb3340a660eb2e617e1a554d2d4) `normalize-git-url@1.0.1` - -#### SPDX LICENSE UPDATES - -* Switch license to - [BSD-2-Clause](http://spdx.org/licenses/BSD-2-Clause.html#licenseText) from - plain "BSD" ([@isaacs](https://github.com/isaacs)): - * [`efdb733`](https://github.com/npm/npm/commit/efdb73332eeedcad4c609796929070b62abb37ab) `npm-user-validate@0.1.2` - * [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646) `normalize-package-data@2.2.0` -* Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from - [BSD](http://spdx.org/licenses/BSD-2-Clause.html#licenseText) - ([@isaacs](https://github.com/isaacs)): - * [`c300956`](https://github.com/npm/npm/commit/c3009565a964f0ead4ac4ab234b1a458e2365f17) `block-stream@0.0.8` - * [`1de1253`](https://github.com/npm/npm/commit/1de125355765fecd31e682ed0ff9d2edbeac0bb0) `lockfile@1.0.1` - * [`0d5698a`](https://github.com/npm/npm/commit/0d5698ab132e376c7aec93ae357c274932116220) `osenv@0.1.1` - * [`2e84921`](https://github.com/npm/npm/commit/2e84921474e1ffb18de9fce4616e73171fa8046d) `abbrev@1.0.6` - * [`872fac9`](https://github.com/npm/npm/commit/872fac9d10c11607e4d0348c08a683b84e64d30b) `chmodr@0.1.1` - * [`01eb7f6`](https://github.com/npm/npm/commit/01eb7f60acba584346ad8aae846657899f3b6887) `chownr@0.0.2` - * [`294336f`](https://github.com/npm/npm/commit/294336f0f31c7b9fe31a50075ed750db6db134d1) `read@1.0.6` - * [`ebdf6a1`](https://github.com/npm/npm/commit/ebdf6a14d17962cdb7128402c53b452f91d44ca7) `graceful-fs@3.0.7` -* Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from - [MIT](http://spdx.org/licenses/MIT.html#licenseText) - ([@isaacs](https://github.com/isaacs)): - * [`e5d237f`](https://github.com/npm/npm/commit/e5d237fc0f436dd2a89437ebf8a9632a2e35ccbe) `nopt@3.0.2` - * [`79fef14`](https://github.com/npm/npm/commit/79fef1421b78f044980f0d1bf0e97039b6992710) `rimraf@2.3.4` - * [`22527da`](https://github.com/npm/npm/commit/22527da4816e7c2746cdc0317c5fb4a85152d554) `minimatch@2.0.8` - * [`882ac87`](https://github.com/npm/npm/commit/882ac87a6c4123ca985d7ad4394ea5085e5b0ef5) `lru-cache@2.6.4` - * [`9d9d015`](https://github.com/npm/npm/commit/9d9d015a2e972f68664dda54fbb204db28b21ede) `npmlog@1.2.1` - -### v2.10.1 (2015-05-14): - -#### BUG FIXES & DOCUMENTATION TWEAKS - -* [`dc77520`](https://github.com/npm/npm/commit/dc7752013ffce13a3d3f13e518a0052c22fc1158) - When getting back a 404 from a request to a private registry that uses a - registry path that extends past the root - (`http://registry.enterprise.co/path/to/registry`), display the name of the - nonexistent package, rather than the first element in the registry API path. - Sorry, Artifactory users! ([@hayes](https://github.com/hayes)) -* [`f70dea9`](https://github.com/npm/npm/commit/f70dea9b4766f6eaa55012c3e8087e9cb04fd4ce) - Make clearer that `--registry` can be used on a per-publish basis to push a - package to a non-default registry. ([@mischkl](https://github.com/mischkl)) -* [`a3e26f5`](https://github.com/npm/npm/commit/a3e26f5b4465991a941a325468ab7725670d2a94) - Did you know that GitHub shortcuts can have commit-ishes included - (`org/repo#branch`)? They can! ([@iarna](https://github.com/iarna)) -* [`0e2c091`](https://github.com/npm/npm/commit/0e2c091a539b61fdc60423b6bbaaf30c24e4b1b8) - Some errors from `readPackage` were being swallowed, potentially leading to - invalid package trees on disk. ([@smikes](https://github.com/smikes)) - -#### DEPENDENCY UPDATES! STILL! MORE! AGAIN! - -* [`0b901ad`](https://github.com/npm/npm/commit/0b901ad0811d84dda6ca0755a9adc8d47825edd0) - `lru-cache@2.6.3`: Removed some cruft from the published package. - ([@isaacs](https://github.com/isaacs)) -* [`d713e0b`](https://github.com/npm/npm/commit/d713e0b14930c563e3fdb6ac6323bae2a8924652) - `mkdirp@0.5.1`: Made compliant with `standard`, dropped support for Node 0.6, - added (Travis) support for Node 0.12 and io.js. - ([@isaacs](https://github.com/isaacs)) -* [`a2d6578`](https://github.com/npm/npm/commit/a2d6578b6554c5c9d48fe2006751759f4da57520) - `glob@1.0.3`: Updated to use `tap@1`. ([@isaacs](https://github.com/isaacs)) -* [`64cd1a5`](https://github.com/npm/npm/commit/64cd1a570aaa5f24ccba190948ec9456297c97f5) - `fstream@ 1.0.6`: Made compliant with [`standard`](http://npm.im/standard) - (done by [@othiym23](https://github.com/othiym23), and then debugged and - fixed by [@iarna](https://github.com/iarna)), and license changed to ISC. - ([@othiym23](https://github.com/othiym23) / - [@iarna](https://github.com/iarna)) -* [`b527a7c`](https://github.com/npm/npm/commit/b527a7c2ba3c4002f443dd2c536ff4ff41a38b86) - `which@1.1.1`: Callers can pass in their own `PATH` instead of relying on - `process.env`. ([@isaacs](https://github.com/isaacs)) - -### v2.10.0 (2015-05-8): - -#### THE IMPLICATIONS ARE MORE PROFOUND THAN THEY APPEAR - -If you've done much development in The Enterprise®™, you know that keeping -track of software licenses is far more important than one might expect / hope / -fear. Tracking licenses is a hassle, and while many (if not most) of us have -(reluctantly) gotten around to setting a license to use by default with all our -new projects (even if it's just WTFPL), that's about as far as most of us think -about it. In big enterprise shops, ensuring that projects don't inadvertently -use software with unacceptably encumbered licenses is serious business, and -developers spend a surprising (and appalling) amount of time ensuring that -licensing is covered by writing automated checkers and other license auditing -tools. - -The Linux Foundation has been working on a machine-parseable syntax for license -expressions in the form of [SPDX](https://spdx.org/), an appropriately -enterprisey acronym. IP attorney and JavaScript culture hero [Kyle -Mitchell](http://kemitchell.com/) has put a considerable amount of effort into -bringing SPDX to JavaScript and Node. He's written -[`spdx.js`](https://github.com/kemitchell/spdx.js), a JavaScript SPDX -expression parser, and has integrated it into npm in a few different ways. - -For you as a user of npm, this means: - -* npm now has proper support for dual licensing in `package.json`, due to - SPDX's compound expression syntax. Run `npm help package.json` for details. -* npm will warn you if the `package.json` for your project is either missing a - `"license"` field, or if the value of that field isn't a valid SPDX - expression (pro tip: `"BSD"` becomes `"BSD-2-Clause"` in SPDX (unless you - really want one of its variants); `"MIT"` and `"ISC"` are fine as-is; the - [full list](https://github.com/shinnn/spdx-license-ids/blob/master/spdx-license-ids.json) - is its own package). -* `npm init` now demands that you use a valid SPDX expression when using it - interactively (pro tip: I mostly use `npm init -y`, having previously run - `npm config set init.license=MIT` / `npm config set init.author.email=foo` / - `npm config set init.author.name=me`). -* The documentation for `package.json` has been updated to tell you how to use - the `"license"` field properly with SPDX. - -In general, this shouldn't be a big deal for anybody other than people trying -to run their own automated license validators, but in the long run, if -everybody switches to this format, many people's lives will be made much -simpler. I think this is an important improvement for npm and am very thankful -to Kyle for taking the lead on this. Also, even if you think all of this is -completely stupid, just [choose a license](http://en.wikipedia.org/wiki/License-free_software) -anyway. Future you will thank past you someday, unless you are -[djb](http://cr.yp.to/), in which case you are djb, and more power to you. - -* [`8669f7d`](https://github.com/npm/npm/commit/8669f7d88c472ccdd60e140106ac43cca636a648) - [#8179](https://github.com/npm/npm/issues/8179) Document how to use SPDX in - `license` stanzas in `package.json`, including how to migrate from old busted - license declaration arrays to fancy new compound-license clauses. - ([@kemitchell](https://github.com/kemitchell)) -* [`98ad98c`](https://github.com/npm/npm/commit/98ad98cb11f3d3ba29a488ef1ab050b066d9c7f6) - [#8197](https://github.com/npm/npm/issues/8197) `init-package-json@1.5.0` - Ensure that packages bootstrapped with `npm init` use an SPDX-compliant - license expression. ([@kemitchell](https://github.com/kemitchell)) -* [`2ad3905`](https://github.com/npm/npm/commit/2ad3905e9139b0be2b22accf707b814469de813e) - [#8197](https://github.com/npm/npm/issues/8197) - `normalize-package-data@2.1.0`: Warn when a package is missing a license - declaration, or using a license expression that isn't valid SPDX. - ([@kemitchell](https://github.com/kemitchell)) -* [`127bb73`](https://github.com/npm/npm/commit/127bb73ccccc59a1267851c702d8ebd3f3a97e81) - [#8197](https://github.com/npm/npm/issues/8197) `tar@2.1.1`: Switch from - `BSD` to `ISC` for license, where the latter is valid SPDX. - ([@othiym23](https://github.com/othiym23)) -* [`e9a933a`](https://github.com/npm/npm/commit/e9a933a9148180d9d799f99f4154f5110ff2cace) - [#8197](https://github.com/npm/npm/issues/8197) `once@1.3.2`: Switch from - `BSD` to `ISC` for license, where the latter is valid SPDX. - ([@othiym23](https://github.com/othiym23)) -* [`412401f`](https://github.com/npm/npm/commit/412401fb6a19b18f3e02d97a24d4dafed650c186) - [#8197](https://github.com/npm/npm/issues/8197) `semver@4.3.4`: Switch from - `BSD` to `ISC` for license, where the latter is valid SPDX. - ([@othiym23](https://github.com/othiym23)) - -As a corollary to the previous changes, I've put some work into making `npm -install` spew out fewer pointless warnings about missing values in transitive -dependencies. From now on, npm will only warn you about missing READMEs, -license fields, and the like for top-level projects (including packages you -directly install into your application, but we may relax that eventually). - -Practically _nobody_ liked having those warnings displayed for child -dependencies, for the simple reason that there was very little that anybody -could _do_ about those warnings, unless they happened to be the maintainers of -those dependencies themselves. Since many, many projects don't have -SPDX-compliant licenses, the number of warnings reached a level where they ran -the risk of turning into a block of visual noise that developers (read: me, and -probably you) would ignore forever. - -So I fixed it. If you still want to see the messages about child dependencies, -they're still there, but have been pushed down a logging level to `info`. You -can display them by running `npm install -d` or `npm install --loglevel=info`. - -* [`eb18245`](https://github.com/npm/npm/commit/eb18245f55fb4cd62a36867744bcd1b7be0a33e2) - Only warn on normalization errors for top-level dependencies. Transitive - dependency validation warnings are logged at `info` level. - ([@othiym23](https://github.com/othiym23)) - -#### BUG FIXES - -* [`e40e809`](https://github.com/npm/npm/commit/e40e8095d2bc9fa4eb8f01aa22067e0068fa8a54) - `tap@1.0.1`: TAP: The Next Generation. Fix up many tests to they work - properly with the new major version of `node-tap`. Look at all the colors! - ([@isaacs](https://github.com/isaacs)) -* [`f9314e9`](https://github.com/npm/npm/commit/f9314e97d26532c0ef2b03e98f3ed300b7cd5026) - `nock@1.9.0`: Minor tweaks and bug fixes. ([@pgte](https://github.com/pgte)) -* [`45c2b1a`](https://github.com/npm/npm/commit/45c2b1aaa051733fa352074994ae6e569fd51e8b) - [#8187](https://github.com/npm/npm/issues/8187) `npm ls` wasn't properly - recognizing dependencies installed from GitHub repositories as git - dependencies, and so wasn't displaying them as such. - ([@zornme](https://github.com/zornme)) -* [`1ab57c3`](https://github.com/npm/npm/commit/1ab57c38116c0403965c92bf60121f0f251433e4) - In some cases, `npm help` was using something that looked like a regular - expression where a glob pattern should be used, and vice versa. - ([@isaacs](https://github.com/isaacs)) - -### v2.9.1 (2015-04-30): - -#### WOW! MORE GIT FIXES! YOU LOVE THOSE! - -The first item below is actually a pretty big deal, as it fixes (with a -one-word change and a much, much longer test case (thanks again, -[@iarna](https://github.com/iarna))) a regression that's been around for months -now. If you're depending on multiple branches of a single git dependency in a -single project, you probably want to check out `npm@2.9.1` and verify that -things (again?) work correctly in your project. - -* [`178a6ad`](https://github.com/npm/npm/commit/178a6ad540215820d16217465a5f220d8c95a313) - [#7202](https://github.com/npm/npm/issues/7202) When caching git - dependencies, do so by the whole URL, including the branch name, so that if a - single application depends on multiple branches from the same repository (in - practice, multiple version tags), every install is of the correct version, - instead of reusing whichever branch the caching process happened to check out - first. ([@iarna](https://github.com/iarna)) -* [`63b79cc`](https://github.com/npm/npm/commit/63b79ccde092a9cb3b1f34abe43e1d2ba69c0dbf) - [#8084](https://github.com/npm/npm/issues/8084) Ensure that Bitbucket, - GitHub, and Gitlab dependencies are installed the same way as non-hosted git - dependencies, fixing `npm install --link`. - ([@laiso](https://github.com/laiso)) - -#### DOCUMENTATION FIXES AND TWEAKS - -These changes may seem simple and small (except Lin's fix to the package name -restrictions, which was more an egregious oversight on our part), but cleaner -documentation makes npm significantly more pleasant to use. I really appreciate -all the typo fixes, clarifications, and formatting tweaks people send us, and -am delighted that we get so many of these pull requests. Thanks, everybody! - -* [`ca478dc`](https://github.com/npm/npm/commit/ca478dcaa29b8f07cd6fe515a3c4518166819291) - [#8137](https://github.com/npm/npm/issues/8137) Somehow, we had failed to - clearly document the full restrictions on package names. - [@linclark](https://github.com/linclark) has now fixed that, although we will - take with us to our graves the reasons why the maximum package name length is 214 - characters (well, OK, it was that that was the longest name in the registry - when we decided to put a cap on the name length). - ([@linclark](https://github.com/linclark)) -* [`b574076`](https://github.com/npm/npm/commit/b5740767c320c1eff3576a8d63952534a0fbb936) - [#8079](https://github.com/npm/npm/issues/8079) Make the `npm shrinkwrap` - documentation use code formatting for examples consistently. It would be - great to do this for more commands HINT HINT. - ([@RichardLitt](https://github.com/RichardLitt)) -* [`1ff636e`](https://github.com/npm/npm/commit/1ff636e2db3852a53e38c866fed7eafdacd307fc) - [#8105](https://github.com/npm/npm/issues/8105) Document that the global - `npmrc` goes in `$PREFIX/etc/npmrc`, instead of `$PREFIX/npmrc`. - ([@anttti](https://github.com/anttti)) -* [`c3f2f7c`](https://github.com/npm/npm/commit/c3f2f7c299342e1c1eccc55a976a63c607f51621) - [#8127](https://github.com/npm/npm/issues/8127) Document how to use `npm run - build` directly (hint: it's different from `npm build`!). - ([@mikemaccana](https://github.com/mikemaccana)) -* [`873e467`](https://github.com/npm/npm/commit/873e46757e1986761b15353f94580a071adcb383) - [#8069](https://github.com/npm/npm/issues/8069) Take the old, dead npm - mailing list address out of `package.json`. It seems that people don't have - much trouble figuring out how to report errors to npm. - ([@robertkowalski](https://github.com/robertkowalski)) - -#### ENROBUSTIFICATIONMENT - -* [`5abfc9c`](https://github.com/npm/npm/commit/5abfc9c9017da714e47a3aece750836b4f9af6a9) - [#7973](https://github.com/npm/npm/issues/7973) `npm run-script` completion - will only suggest run scripts, instead of including dependencies. If for some - reason you still wanted it to suggest dependencies, let us know. - ([@mantoni](https://github.com/mantoni)) -* [`4b564f0`](https://github.com/npm/npm/commit/4b564f0ce979dc74c09604f4d46fd25a2ee63804) - [#8081](https://github.com/npm/npm/issues/8081) Use `osenv` to parse the - environment's `PATH` in a platform-neutral way. - ([@watilde](https://github.com/watilde)) -* [`a4b6238`](https://github.com/npm/npm/commit/a4b62387b41848818973eeed056fd5c6570274f3) - [#8094](https://github.com/npm/npm/issues/8094) When we refactored the - configuration code to split out checking for IPv4 local addresses, we - inadvertently completely broke it by failing to return the values. In - addition, just the call to `os.getInterfaces()` could throw on systems where - querying the network configuration requires elevated privileges (e.g. Amazon - Lambda). Add the return, and trap errors so they don't cause npm to explode. - Thanks to [@mhart](https://github.com/mhart) for bringing this to our - attention! ([@othiym23](https://github.com/othiym23)) - -#### DEPENDENCY UPDATES WAIT FOR NO SOPHONT - -* [`000cd8b`](https://github.com/npm/npm/commit/000cd8b52104942ac3404f0ad0651d82f573da37) - `rimraf@2.3.3`: More informative assertions on argument validation failure. - ([@isaacs](https://github.com/isaacs)) -* [`530a2e3`](https://github.com/npm/npm/commit/530a2e369128270f3e098f0e9be061533003b0eb) - `lru-cache@2.6.2`: Revert to old key access-time behavior, as it was correct - all along. ([@isaacs](https://github.com/isaacs)) -* [`d88958c`](https://github.com/npm/npm/commit/d88958ca02ce81b027b9919aec539d0145875a59) - `minimatch@2.0.7`: Feature detection and test improvements. - ([@isaacs](https://github.com/isaacs)) -* [`3fa39e4`](https://github.com/npm/npm/commit/3fa39e4d492609d5d045033896dcd99f7b875329) - `nock@1.7.1` ([@pgte](https://github.com/pgte)) - -### v2.9.0 (2015-04-23): - -This week was kind of a breather to concentrate on fixing up the tests on the -`multi-stage` branch, and not mess with git issues for a little while. -Unfortunately, There are now enough severe git issues that we'll probably have -to spend another couple weeks tackling them. In the meantime, enjoy these two -small features. They're just enough to qualify for a semver-minor bump: - -#### NANOFEATURES - -* [`2799322`](https://github.com/npm/npm/commit/279932298ce5b589c5eea9439ac40b88b99c6a4a) - [#7426](https://github.com/npm/npm/issues/7426) Include local modules in `npm - outdated` and `npm update`. ([@ArnaudRinquin](https://github.com/ArnaudRinquin)) -* [`2114862`](https://github.com/npm/npm/commit/21148620fa03a582f4ec436bb16bd472664f2737) - [#8014](https://github.com/npm/npm/issues/8014) The prefix used before the - version on version tags is now configurable via `tag-version-prefix`. Be - careful with this one and read the docs before using it. - ([@kkragenbrink](https://github.com/kkragenbrink)) - -#### OTHER MINOR TWEAKS - -* [`18ce0ec`](https://github.com/npm/npm/commit/18ce0ecd2d94ad3af01e997f1396515892dd363c) - [#3032](https://github.com/npm/npm/issues/3032) `npm unpublish` will now use - the registry set in `package.json`, just like `npm publish`. This only - applies, for now, when unpublishing the entire package, as unpublishing a - single version requires the name be included on the command line and - therefore doesn't read from `package.json`. ([@watilde](https://github.com/watilde)) -* [`9ad2100`](https://github.com/npm/npm/commit/9ad210042242e51d52b2a8b633d8e59248f5faa4) - [#8008](https://github.com/npm/npm/issues/8008) Once again, when considering - what to install on `npm install`, include `devDependencies`. - ([@smikes](https://github.com/smikes)) -* [`5466260`](https://github.com/npm/npm/commit/546626059909dca1906454e820ca4e315c1795bd) - [#8003](https://github.com/npm/npm/issues/8003) Clarify the documentation - around scopes to make it easier to understand how they support private - packages. ([@smikes](https://github.com/smikes)) - -#### DEPENDENCIES WILL NOT STOP UNTIL YOU ARE VERY SLEEPY - -* [`faf65a7`](https://github.com/npm/npm/commit/faf65a7bbb2fad13216f64ed8f1243bafe743f97) - `init-package-json@1.4.2`: If there are multiple validation errors and - warnings, ensure they all get displayed (includes a rad new way of testing - `init-package-json` contributed by - [@michaelnisi](https://github.com/michaelnisi)). - ([@MisumiRize](https://github.com/MisumiRize)) -* [`7f10f38`](https://github.com/npm/npm/commit/7f10f38d29a8423d7cde8103fa7b64ac728da1e0) - `editor@1.0.0`: `1.0.0` is literally more than `0.1.0` (no change aside from - version number). ([@substack](https://github.com/substack)) -* [`4979af3`](https://github.com/npm/npm/commit/4979af3fcae5a3962383b7fdad3162381e62eefe) - [#6805](https://github.com/npm/npm/issues/6805) `npm-registry-client@6.3.3`: - Decode scoped package names sent by the registry so they look nicer. - ([@mmalecki](https://github.com/mmalecki)) - -### v2.8.4 (2015-04-16): - -This is the fourth release of npm this week, so it's mostly just landing a few -small outstanding PRs on dependencies and some tiny documentation tweaks. -`npm@2.8.3` is where the real action is. - -* [`ee2bd77`](https://github.com/npm/npm/commit/ee2bd77f3c64d38735d1d31028224a5c40422a9b) - [#7983](https://github.com/npm/npm/issues/7983) `tar@2.1.0`: Better error - reporting in corrupted tar files, and add support for the `fromBase` flag - (rescued from the dustbin of history by - [@deanmarano](https://github.com/deanmarano)). - ([@othiym23](https://github.com/othiym23)) -* [`d8eee6c`](https://github.com/npm/npm/commit/d8eee6cf9d2ff7aca68dfaed2de76824a3e0d9af) - `init-package-json@1.4.1`: Add support for a default author, and only add - scope to a package name once. ([@othiym23](https://github.com/othiym23)) -* [`4fc5d98`](https://github.com/npm/npm/commit/4fc5d98b785f601c60d4dc0a2c8674f0cccf6262) - `lru-cache@2.6.1`: Small tweaks to cache value aging and entry counting that - are irrelevant to npm. ([@isaacs](https://github.com/isaacs)) -* [`1fe5840`](https://github.com/npm/npm/commit/1fe584089f5bef133de5518aa26eaf6064be2bf7) - [#7946](https://github.com/npm/npm/issues/7946) Make `npm init` text - friendlier. ([@sandfox](https://github.com/sandfox)) - -### v2.8.3 (2015-04-15): - -#### TWO SMALL GIT TWEAKS - -This is the last of a set of releases intended to ensure npm's git support is -robust enough that we can stop working on it for a while. These fixes are -small, but prevent a common crasher and clear up one of the more confusing -error messages coming out of npm when working with repositories hosted on git. - -* [`387f889`](https://github.com/npm/npm/commit/387f889c0e8fb617d9cc9a42ed0a3ec49424ab5d) - [#7961](https://github.com/npm/npm/issues/7961) Ensure that hosted git SSH - URLs always have a valid protocol when stored in `resolved` fields in - `npm-shrinkwrap.json`. ([@othiym23](https://github.com/othiym23)) -* [`394c2f5`](https://github.com/npm/npm/commit/394c2f5a1227232c0baf42fbba1402aafe0d6ffb) - Switch the order in which hosted Git providers are checked to `git:`, - `git+https:`, then `git+ssh:` (from `git:`, `git+ssh:`, then `git+https:`) in - an effort to go from most to least likely to succeed, to make for less - confusing error message. ([@othiym23](https://github.com/othiym23)) - -### v2.8.2 (2015-04-14): - -#### PEACE IN OUR TIME - -npm has been having an issue with CouchDB's web server since the release -of io.js and Node.js 0.12.0 that has consumed a huge amount of my time -to little visible effect. Sam Mikes picked up the thread from me, and -after a [_lot_ of effort](https://github.com/npm/npm/issues/7699#issuecomment-93091111) -figured out that ultimately there are probably a couple problems with -the new HTTP Agent keep-alive handling in new versions of Node. In -addition, `npm-registry-client` was gratuitously sending a body along -with a GET request which was triggering the bugs. Sam removed about 10 bytes from -one file in `npm-registry-client`, and this problem, which has been bugging us for months, -completely went away. - -In conclusion, Sam Mikes is great, and anybody using a private registry -hosted on CouchDB should thank him for his hard work. Also, thanks to -the community at large for pitching in on this bug, which has been -around for months now. - -* [`431c3bf`](https://github.com/npm/npm/commit/431c3bf6cdec50f9f0c735f478cb2f3f337d3313) - [#7699](https://github.com/npm/npm/issues/7699) `npm-registry-client@6.3.2`: - Don't send body with HTTP GET requests when logging in. - ([@smikes](https://github.com/smikes)) - -### v2.8.1 (2015-04-12): - -#### CORRECTION: NPM'S GIT INTEGRATION IS DOING OKAY - -A [helpful bug report](https://github.com/npm/npm/issues/7872#issuecomment-91809553) -led to another round of changes to -[`hosted-git-info`](https://github.com/npm/hosted-git-info/commit/827163c74531b69985d1ede7abced4861e7b0cd4), -some additional test-writing, and a bunch of hands-on testing against actual -private repositories. While the complexity of npm's git dependency handling is -nearly fractal (because npm is very complex, and git is even more complex), -it's feeling way more solid than it has for a while. We think this is a -substantial improvement over what we had before, so give `npm@2.8.1` a shot if -you have particularly complex git use cases and -[let us know](https://github.com/npm/npm/issues/new) how it goes. - -(NOTE: These changes mostly affect cloning and saving references to packages -hosted in git repositories, and don't address some known issues with things -like lifecycle scripts not being run on npm dependencies. Work continues on -other issues that affect parity between git and npm registry packages.) - -* [`66377c6`](https://github.com/npm/npm/commit/66377c6ece2cf4d53d9a618b7d9824e1452bc293) - [#7872](https://github.com/npm/npm/issues/7872) `hosted-git-info@2.1.2`: Pass - through credentials embedded in SSH and HTTPs git URLs. - ([@othiym23](https://github.com/othiym23)) -* [`15efe12`](https://github.com/npm/npm/commit/15efe124753257728a0ddc64074fa5a4b9c2eb30) - [#7872](https://github.com/npm/npm/issues/7872) Use the new version of - `hosted-git-info` to pass along credentials embedded in git URLs. Test it. - Test it a lot. ([@othiym23](https://github.com/othiym23)) - -#### SCOPED DEPENDENCIES AND PEER DEPENDENCIES: NOT QUITE REESE'S - -Big thanks to [@ewie](https://github.com/ewie) for identifying an issue with -how npm was handling `peerDependencies` that were implicitly installed from the -`package.json` files of scoped dependencies. This -[will be a moot point](https://github.com/npm/npm/issues/6565#issuecomment-74971689) -with the release of `npm@3`, but until then, it's important that -`peerDependency` auto-installation work as expected. - -* [`b027319`](https://github.com/npm/npm/commit/b0273190c71eba14395ddfdd1d9f7ba625297523) - [#7920](https://github.com/npm/npm/issues/7920) Scoped packages with - `peerDependencies` were installing the `peerDependencies` into the wrong - directory. ([@ewie](https://github.com/ewie)) -* [`649e31a`](https://github.com/npm/npm/commit/649e31ae4fd02568bae5dc6b4ea783431ce3d63e) - [#7920](https://github.com/npm/npm/issues/7920) Test `peerDependency` - installs involving scoped packages using `npm-package-arg` instead of simple - path tests, for consistency. ([@othiym23](https://github.com/othiym23)) - -#### MAKING IT EASIER TO WRITE NPM TESTS, VERSION 0.0.1 - -[@iarna](https://github.com/iarna) and I -([@othiym23](https://github.com/othiym23)) have been discussing a -[candidate plan](https://github.com/npm/npm/wiki/rewriting-npm's-tests:-a-plan-maybe) -for improving npm's test suite, with the goal of making it easier for new -contributors to get involved with npm by reducing the learning curve -necessary to be able to write good tests for proposed changes. This is the -first substantial piece of that effort. Here's what the commit message for -[`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf) -had to say about this work: - -> It's too difficult for npm contributors to figure out what the conventional -> style is for tests. Part of the problem is that the documentation in -> CONTRIBUTING.md is inadequate, but another important factor is that the tests -> themselves are written in a variety of styles. One of the most notable -> examples of this is the fact that many tests use fixture directories to store -> precooked test scenarios and package.json files. -> -> This had some negative consequences: -> -> * tests weren't idempotent -> * subtle dependencies between tests existed -> * new tests get written in this deprecated style because it's not -> obvious that the style is out of favor -> * it's hard to figure out why a lot of those directories existed, -> because they served a variety of purposes, so it was difficult to -> tell when it was safe to remove them -> -> All in all, the fixture directories were a major source of technical debt, and -> cleaning them up, while time-consuming, makes the whole test suite much more -> approachable, and makes it more likely that new tests written by outside -> contributors will follow a conventional style. To support that, all of the -> tests touched by this changed were cleaned up to pass the `standard` style -> checker. - -And here's a little extra context from a comment I left on [#7929](https://github.com/npm/npm/issues/7929): - -> One of the other things that encouraged me was looking at this -> [presentation on technical debt](http://www.slideshare.net/nnja/pycon-2015-technical-debt-the-monster-in-your-closet) -> from Pycon 2015, especially slide 53, which I interpreted in terms of -> difficulty getting new contributors to submit patches to an OSS project like -> npm. npm has a long ways to go, but I feel good about this change. - -* [`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf) - [#7929](https://github.com/npm/npm/issues/7929) Eliminate fixture directories - from `test/tap`, leaving each test self-contained. - ([@othiym23](https://github.com/othiym23)) -* [`4928d30`](https://github.com/npm/npm/commit/4928d30140821c63e03fffed73f8d88ebdc43710) - [#7929](https://github.com/npm/npm/issues/7929) Move fixture files from - `test/tap/*` to `test/fixtures`. ([@othiym23](https://github.com/othiym23)) -* [`e925deb`](https://github.com/npm/npm/commit/e925debca91092a814c1a00933babc3a8cf975be) - [#7929](https://github.com/npm/npm/issues/7929) Tweak the run scripts to stop - slaughtering the CPU on doc rebuild. - ([@othiym23](https://github.com/othiym23)) -* [`65bf7cf`](https://github.com/npm/npm/commit/65bf7cffaf91c426b676c47529eee796f8b8b75c) - [#7923](https://github.com/npm/npm/issues/7923) Use an alias of scripts and - run-scripts in `npm run test-all` ([@watilde](https://github.com/watilde)) -* [`756a3fb`](https://github.com/npm/npm/commit/756a3fbb852a2469afe706635ed88d22c37743e5) - [#7923](https://github.com/npm/npm/issues/7923) Sync timeout time of `npm - run-script test-all` to be the same as `test` and `tap` scripts. - ([@watilde](https://github.com/watilde)) -* [`8299b5f`](https://github.com/npm/npm/commit/8299b5fb6373354a7fbaab6f333863758812ae90) - Set a timeout for tap tests for `npm run-script test-all`. - ([@othiym23](https://github.com/othiym23)) - -#### THE EVER-BEATING DRUM OF DEPENDENCY UPDATES - -* [`d90d0b9`](https://github.com/npm/npm/commit/d90d0b992acbf62fd5d68debf9d1dbd6cfa20804) - [#7924](https://github.com/npm/npm/issues/7924) Remove `child-process-close`, - as it was included for Node 0.6 compatibility, and npm no longer supports - 0.6. ([@robertkowalski](https://github.com/robertkowalski)) -* [`16427c1`](https://github.com/npm/npm/commit/16427c1f3ea3d71ee753c62eb4c2663c7b32b84f) - `lru-cache@2.5.2`: More accurate updating of expiry times when `maxAge` is - set. ([@isaacs](https://github.com/isaacs)) -* [`03cce83`](https://github.com/npm/npm/commit/03cce83b64344a9e0fe036dce214f4d68cfcc9e7) - `nock@1.6.0`: Mocked network error handling. - ([@pgte](https://github.com/pgte)) -* [`f93b1f0`](https://github.com/npm/npm/commit/f93b1f0b7eb5d1b8a7967e837bbd756db1091d00) - `glob@5.0.5`: Use `path-is-absolute` polyfill, allowing newer Node.js and - io.js versions to use `path.isAbsolute()`. - ([@sindresorhus](https://github.com/sindresorhus)) -* [`a70d694`](https://github.com/npm/npm/commit/a70d69495a6e96997e64855d9e749d943ee6d64f) - `request@2.55.0`: Bug fixes and simplification. - ([@simov](https://github.com/simov)) -* [`2aecc6f`](https://github.com/npm/npm/commit/2aecc6f4083526feeb14615b4e5484edc66175b5) - `columnify@1.5.1`: Switch to using babel from 6to5. - ([@timoxley](https://github.com/timoxley)) - -### v2.8.0 (2015-04-09): - -#### WE WILL NEVER BE DONE FIXING NPM'S GIT SUPPORT - -If you look at [the last release's release -notes](https://github.com/npm/npm/blob/master/CHANGELOG.md#git-mean-git-tuff-git-all-the-way-away-from-my-stuff), -you will note that they confidently assert that it's perfectly OK to force all -GitHub URLs through the same `git:` -> `git+ssh:` fallback flow for cloning. It -turns out that many users depend on `git+https:` URLs in their build -environments because they use GitHub auth tokens instead of SSH keys. Also, in -some cases you just want to be able to explicitly say how a given dependency -should be cloned from GitHub. - -Because of the way we resolved the inconsistency in GitHub shorthand handling -[before](https://github.com/npm/npm/blob/master/CHANGELOG.md#bug-fixes-1), this -turned out to be difficult to work around. So instead of hacking around it, we -completely redid how git is handled within npm and its attendant packages. -Again. This time, we changed things so that `normalize-package-data` and -`read-package-json` leave more of the git logic to npm itself, which makes -handling shorthand syntax consistently much easier, and also allows users to -resume using explicit, fully-qualified git URLs without npm messing with them. - -Here's a summary of what's changed: - -* Instead of converting the GitHub shorthand syntax to a `git+ssh:`, `git:`, or - `git+https:` URL and saving that, save the shorthand itself to - `package.json`. -* If presented with shortcuts, try cloning via the git protocol, SSH, and HTTPS - (in that order). -* No longer prompt for credentials -- it didn't work right with the spinner, - and wasn't guaranteed to work anyway. We may experiment with doing this a - better way in the future. Users can override this by setting `GIT_ASKPASS` in - their environment if they want to experiment with interactive cloning, but - should also set `--no-spin` on the npm command line (or run `npm config set - spin=false`). -* **EXPERIMENTAL FEATURE**: Add support for `github:`, `gist:`, `bitbucket:`, - and `gitlab:` shorthand prefixes. GitHub shortcuts will continue to be - normalized to `org/repo` instead of being saved as `github:org/repo`, but - `gitlab:`, `gist:`, and `bitbucket:` prefixes will be used on the command - line and from `package.json`. BE CAREFUL WITH THIS. `package.json` files - published with the new shorthand syntax can _only_ be read by `npm@2.8.0` and - later, and this feature is mostly meant for playing around with it. If you - want to save git dependencies in a form that older versions of npm can read, - use `--save-exact`, which will save the git URL and resolved commit hash of - the head of the branch in a manner similar to the way that `--save-exact` - pins versions for registry dependencies. This is documented (so check `npm - help install` for details), but we're not going to make a lot of noise about - it until it has a chance to bake in a little more. - -It is [@othiym23](https://github.com/othiym23)'s sincere hope that this will -resolve all of the inconsistencies users were seeing with GitHub and git-hosted -packages, but given the level of change here, that may just be a fond wish. -Extra testing of this change is requested. - -* [`6b0f588`](https://github.com/npm/npm/commit/6b0f58877f37df9904490ffbaaad33862bd36dce) - [#7867](https://github.com/npm/npm/issues/7867) Use git shorthand and git - URLs as presented by user. Support new `hosted-git-info` shortcut syntax. - Save shorthand in `package.json`. Try cloning via `git:`, `git+ssh:`, and - `git+https:`, in that order, when supported by the underlying hosting - provider. ([@othiym23](https://github.com/othiym23)) -* [`75d4267`](https://github.com/npm/npm/commit/75d426787869d54ca7400408f562f971b34649ef) - [#7867](https://github.com/npm/npm/issues/7867) Document new GitHub, GitHub - gist, Bitbucket, and GitLab shorthand syntax. - ([@othiym23](https://github.com/othiym23)) -* [`7d92c75`](https://github.com/npm/npm/commit/7d92c7592998d90ec883fa989ca74f04ec1b93de) - [#7867](https://github.com/npm/npm/issues/7867) When `--save-exact` is used - with git shorthand or URLs, save the fully-resolved URL, with branch name - resolved to the exact hash for the commit checked out. - ([@othiym23](https://github.com/othiym23)) -* [`9220e59`](https://github.com/npm/npm/commit/9220e59f8def8c82c6d331a39ba29ad4c44e3a9b) - [#7867](https://github.com/npm/npm/issues/7867) Ensure that non-prefixed and - non-normalized GitHub shortcuts are saved to `package.json`. - ([@othiym23](https://github.com/othiym23)) -* [`dd398e9`](https://github.com/npm/npm/commit/dd398e98a8eba27eeba84378200da3d078fdf980) - [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.1`: - Ensure that `gist:` shorthand survives being round-tripped through - `package.json`. ([@othiym23](https://github.com/othiym23)) -* [`33d1420`](https://github.com/npm/npm/commit/33d1420bf2f629332fceb2ac7e174e63ac48f96a) - [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.0`: Add - support for auth embedded directly in git URLs. - ([@othiym23](https://github.com/othiym23)) -* [`23a1d5a`](https://github.com/npm/npm/commit/23a1d5a540e8db27f5cd0245de7c3694e2bddad1) - [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.0.2`: Make - it possible to determine in which form a hosted git URL was passed. - ([@iarna](https://github.com/iarna)) -* [`eaf75ac`](https://github.com/npm/npm/commit/eaf75acb718611ad5cfb360084ec86938d9c66c5) - [#7867](https://github.com/npm/npm/issues/7867) - `normalize-package-data@2.0.0`: Normalize GitHub specifiers so they pass - through shortcut syntax and preserve explicit URLs. - ([@iarna](https://github.com/iarna)) -* [`95e0535`](https://github.com/npm/npm/commit/95e0535e365e0aca49c634dd2061a0369b0475f1) - [#7867](https://github.com/npm/npm/issues/7867) `npm-package-arg@4.0.0`: Add - git URL and shortcut to hosted git spec and use `hosted-git-info@2.0.2`. - ([@iarna](https://github.com/iarna)) -* [`a808926`](https://github.com/npm/npm/commit/a8089268d5f3d57f42dbaba02ff6437da5121191) - [#7867](https://github.com/npm/npm/issues/7867) - `realize-package-specifier@3.0.0`: Use `npm-package-arg@4.0.0` and test - shortcut specifier behavior. ([@iarna](https://github.com/iarna)) -* [`6dd1e03`](https://github.com/npm/npm/commit/6dd1e039bddf8cf5383343f91d84bc5d78acd083) - [#7867](https://github.com/npm/npm/issues/7867) `init-package-json@1.4.0`: - Allow dependency on `read-package-json@2.0.0`. - ([@iarna](https://github.com/iarna)) -* [`63254bb`](https://github.com/npm/npm/commit/63254bb6358f66752aca6aa1a275271b3ae03f7c) - [#7867](https://github.com/npm/npm/issues/7867) `read-installed@4.0.0`: Use - `read-package-json@2.0.0`. ([@iarna](https://github.com/iarna)) -* [`254b887`](https://github.com/npm/npm/commit/254b8871f5a173bb464cc5b0ace460c7878b8097) - [#7867](https://github.com/npm/npm/issues/7867) `read-package-json@2.0.0`: - Use `normalize-package-data@2.0.0`. ([@iarna](https://github.com/iarna)) -* [`0b9f8be`](https://github.com/npm/npm/commit/0b9f8be62fe5252abe54d49e36a696f4816c2eca) - [#7867](https://github.com/npm/npm/issues/7867) `npm-registry-client@6.3.0`: - Mark compatibility with `normalize-package-data@2.0.0` and - `npm-package-arg@4.0.0`. ([@iarna](https://github.com/iarna)) -* [`f40ecaa`](https://github.com/npm/npm/commit/f40ecaad68f77abc50eb6f5b224e31dec3d250fc) - [#7867](https://github.com/npm/npm/issues/7867) Extract a common method to - use when cloning git repos for testing. - ([@othiym23](https://github.com/othiym23)) - -#### TEST FIXES FOR NODE 0.8 - -npm continues to [get closer](https://github.com/npm/npm/issues/7842) to being -completely green on Travis for Node 0.8. - -* [`26d36e9`](https://github.com/npm/npm/commit/26d36e9cf0eca69fe1863d2ea536c28555b9e8de) - [#7842](https://github.com/npm/npm/issues/7842) When spawning child - processes, map exit code 127 to ENOENT so Node 0.8 handles child process - failures the same as later versions. - ([@SonicHedgehog](https://github.com/SonicHedgehog)) -* [`54cd895`](https://github.com/npm/npm/commit/54cd8956ea783f96749e46597d8c2cb9397c5d5f) - [#7842](https://github.com/npm/npm/issues/7842) Node 0.8 requires -e with -p - when evaluating snippets; fix test. - ([@SonicHedgehog](https://github.com/SonicHedgehog)) - -#### SMALL FIX AND DOC TWEAK - -* [`20e9003`](https://github.com/npm/npm/commit/20e90031b847e9f7c7168f3dad8b1e526f9a2586) - `tar@2.0.1`: Fix regression where relative symbolic links within an - extraction root that pointed within an extraction root would get normalized - to absolute symbolic links. ([@isaacs](https://github.com/isaacs)) -* [`2ef8898`](https://github.com/npm/npm/commit/2ef88989c41bee1578570bb2172c90ede129dbd1) - [#7879](https://github.com/npm/npm/issues/7879) Better document that `npm - publish --tag=foo` will not set `latest` to that version. - ([@linclark](https://github.com/linclark)) - -### v2.7.6 (2015-04-02): - -#### GIT MEAN, GIT TUFF, GIT ALL THE WAY AWAY FROM MY STUFF - -Part of the reason that we're reluctant to take patches to how npm deals with -git dependencies is that every time we touch the git support, something breaks. -The last few releases are a case in point. `npm@2.7.4` completely broke -installing private modules from GitHub, and `npm@2.7.5` fixed them at the cost -of logging a misleading error message that caused many people to believe that -their dependencies hadn't been successfully installed when they actually had -been. - -This all started from a desire to ensure that GitHub shortcut syntax is being -handled correctly. The correct behavior is for npm to try to clone all -dependencies on GitHub (whether they're specified with the GitHub -`organization/repository` shortcut syntax or not) via the plain `git:` protocol -first, and to fall back to using `git+ssh:` if `git:` doesn't work. Previously, -sometimes npm would use `git:` and `git+ssh:` in some cases (most notably when -using GitHub shortcut syntax on the command line), and use `git+https:` in -others (when the GitHub shortcut syntax was present in `package.json`). This -led to subtle and hard-to-understand inconsistencies, and we're glad that as of -`npm@2.7.6`, we've finally gotten things to where they were before we started, -only slightly more consistent overall. - -We are now going to go back to our policy of being extremely reluctant to touch -the code that handles Git dependencies. - -* [`b747593`](https://github.com/npm/npm/commit/b7475936f473f029e6a027ba1b16277523747d0b) - [#7630](https://github.com/npm/npm/issues/7630) Don't automatically log all - git failures as errors. `maybeGithub` needs to be able to fail without - logging to support its fallback logic. - ([@othiym23](https://github.com/othiym23)) -* [`cd67a0d`](https://github.com/npm/npm/commit/cd67a0db07891d20871822696c26692c8a84866a) - [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote - URL, handle failures gracefully (without assuming standard output exists). - ([@othiym23](https://github.com/othiym23)) -* [`637c7d1`](https://github.com/npm/npm/commit/637c7d1411fe07f409cf91f2e65fd70685cb253c) - [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote - URL, handle failures gracefully (without assuming standard _error_ exists). - ([@othiym23](https://github.com/othiym23)) - -#### OTHER SIGNIFICANT FIXES - -* [`78005eb`](https://github.com/npm/npm/commit/78005ebb6f4103c20f077669c3929b7ea46a4c0d) - [#7743](https://github.com/npm/npm/issues/7743) Always quote arguments passed - to `npm run-script`. This allows build systems and the like to safely escape - glob patterns passed as arguments to `run-scripts` with `npm run-script - - - -
          - -

          npm

          a JavaScript package manager

          -

          Build Status

          -

          SYNOPSIS

          -

          This is just enough info to get you up and running.

          -

          Much more info available via npm help once it's installed.

          -

          IMPORTANT

          -

          You need node v0.8 or higher to run this program.

          -

          To install an old and unsupported version of npm that works on node 0.3 -and prior, clone the git repo and dig through the old tags and branches.

          -

          npm is configured to use npm, Inc.'s public package registry at -https://registry.npmjs.org by default.

          -

          You can configure npm to use any compatible registry you -like, and even run your own registry. Check out the doc on -registries.

          -

          Use of someone else's registry may be governed by terms of use. The -terms of use for the default public registry are available at -https://www.npmjs.com.

          -

          Super Easy Install

          -

          npm is bundled with node.

          -

          Windows Computers

          -

          Get the MSI. npm is in it.

          -

          Apple Macintosh Computers

          -

          Get the pkg. npm is in it.

          -

          Other Sorts of Unices

          -

          Run make install. npm will be installed with node.

          -

          If you want a more fancy pants install (a different version, customized -paths, etc.) then read on.

          -

          Fancy Install (Unix)

          -

          There's a pretty robust install script at -https://www.npmjs.com/install.sh. You can download that and run it.

          -

          Here's an example using curl:

          -
          curl -L https://www.npmjs.com/install.sh | sh
          -
          -

          Slightly Fancier

          -

          You can set any npm configuration params with that script:

          -
          npm_config_prefix=/some/path sh install.sh
          -
          -

          Or, you can run it in uber-debuggery mode:

          -
          npm_debug=1 sh install.sh
          -
          -

          Even Fancier

          -

          Get the code with git. Use make to build the docs and do other stuff. -If you plan on hacking on npm, make link is your friend.

          -

          If you've got the npm source code, you can also semi-permanently set -arbitrary config keys using the ./configure --key=val ..., and then -run npm commands by doing node cli.js <cmd> <args>. (This is helpful -for testing, or running stuff without actually installing npm itself.)

          -

          Windows Install or Upgrade

          -

          Many improvements for Windows users have been made in npm 3 - you will have a better -experience if you run a recent version of npm. To upgrade, either use Microsoft's -upgrade tool, -download a new version of Node, -or follow the Windows upgrade instructions in the -npm Troubleshooting Guide.

          -

          If that's not fancy enough for you, then you can fetch the code with -git, and mess with it directly.

          -

          Installing on Cygwin

          -

          No.

          -

          Uninstalling

          -

          So sad to see you go.

          -
          sudo npm uninstall npm -g
          -
          -

          Or, if that fails,

          -
          sudo make uninstall
          -
          -

          More Severe Uninstalling

          -

          Usually, the above instructions are sufficient. That will remove -npm, but leave behind anything you've installed.

          -

          If you would like to remove all the packages that you have installed, -then you can use the npm ls command to find them, and then npm rm to -remove them.

          -

          To remove cruft left behind by npm 0.x, you can use the included -clean-old.sh script file. You can run it conveniently like this:

          -
          npm explore npm -g -- sh scripts/clean-old.sh
          -
          -

          npm uses two configuration files, one for per-user configs, and another -for global (every-user) configs. You can view them by doing:

          -
          npm config get userconfig   # defaults to ~/.npmrc
          -npm config get globalconfig # defaults to /usr/local/etc/npmrc
          -
          -

          Uninstalling npm does not remove configuration files by default. You -must remove them yourself manually if you want them gone. Note that -this means that future npm installs will not remember the settings that -you have chosen.

          -

          More Docs

          -

          Check out the docs,

          -

          You can use the npm help command to read any of them.

          -

          If you're a developer, and you want to use npm to publish your program, -you should read this

          -

          BUGS

          -

          When you find issues, please report them:

          - -

          Be sure to include all of the output from the npm command that didn't work -as expected. The npm-debug.log file is also helpful to provide.

          -

          You can also look for isaacs in #node.js on irc://irc.freenode.net. He -will no doubt tell you to put the output in a gist or email.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-access.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-access.html deleted file mode 100644 index 9f78791e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-access.html +++ /dev/null @@ -1,88 +0,0 @@ - - - npm-access - - - - - - -
          - -

          npm-access

          Set access level on published packages

          -

          SYNOPSIS

          -
          npm access public [<package>]
          -npm access restricted [<package>]
          -
          -npm access grant <read-only|read-write> <scope:team> [<package>]
          -npm access revoke <scope:team> [<package>]
          -
          -npm access ls-packages [<user>|<scope>|<scope:team>]
          -npm access ls-collaborators [<package> [<user>]]
          -npm access edit [<package>]
          -

          DESCRIPTION

          -

          Used to set access controls on private packages.

          -

          For all of the subcommands, npm access will perform actions on the packages -in the current working directory if no package name is passed to the -subcommand.

          -
            -
          • public / restricted: -Set a package to be either publicly accessible or restricted.

            -
          • -
          • grant / revoke: -Add or remove the ability of users and teams to have read-only or read-write -access to a package.

            -
          • -
          • ls-packages:

            -

            Show all of the packages a user or a team is able to access, along with the -access level, except for read-only public packages (it won't print the whole -registry listing)

            -
          • -
          • ls-collaborators: -Show all of the access privileges for a package. Will only show permissions -for packages to which you have at least read access. If <user> is passed in, -the list is filtered only to teams that user happens to belong to.

            -
          • -
          • edit: -Set the access privileges for a package at once using $EDITOR.

            -
          • -
          -

          DETAILS

          -

          npm access always operates directly on the current registry, configurable -from the command line using --registry=<registry url>.

          -

          Unscoped packages are always public.

          -

          Scoped packages default to restricted, but you can either publish them as -public using npm publish --access=public, or set their access as public using -npm access public after the initial publish.

          -

          You must have privileges to set the access of a package:

          -
            -
          • You are an owner of an unscoped or scoped package.
          • -
          • You are a member of the team that owns a scope.
          • -
          • You have been given read-write privileges for a package, either as a member -of a team or directly as an owner.
          • -
          -

          If your account is not paid, then attempts to publish scoped packages will fail -with an HTTP 402 status code (logically enough), unless you use ---access=public.

          -

          Management of teams and team memberships is done with the npm team command.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-adduser.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-adduser.html deleted file mode 100644 index 7415e5ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-adduser.html +++ /dev/null @@ -1,76 +0,0 @@ - - - npm-adduser - - - - - - -
          - -

          npm-adduser

          Add a registry user account

          -

          SYNOPSIS

          -
          npm adduser [--registry=url] [--scope=@orgname] [--always-auth]
          -
          -aliases: login, add-user
          -

          DESCRIPTION

          -

          Create or verify a user named <username> in the specified registry, and -save the credentials to the .npmrc file. If no registry is specified, -the default registry will be used (see npm-config(7)).

          -

          The username, password, and email are read in from prompts.

          -

          To reset your password, go to https://www.npmjs.com/forgot

          -

          To change your email address, go to https://www.npmjs.com/email-edit

          -

          You may use this command multiple times with the same user account to -authorize on a new machine. When authenticating on a new machine, -the username, password and email address must all match with -your existing record.

          -

          npm login is an alias to adduser and behaves exactly the same way.

          -

          CONFIGURATION

          -

          registry

          -

          Default: https://registry.npmjs.org/

          -

          The base URL of the npm package registry. If scope is also specified, -this registry will only be used for packages with that scope. See npm-scope(7).

          -

          scope

          -

          Default: none

          -

          If specified, the user and login credentials given will be associated -with the specified scope. See npm-scope(7). You can use both at the same time, -e.g.

          -
          npm adduser --registry=http://myregistry.example.com --scope=@myco
          -

          This will set a registry for the given scope and login or create a user for -that registry at the same time.

          -

          always-auth

          -

          Default: false

          -

          If specified, save configuration indicating that all requests to the given -registry should include authorization information. Useful for private -registries. Can be used with --registry and / or --scope, e.g.

          -
          npm adduser --registry=http://private-registry.example.com --always-auth
          -

          This will ensure that all requests to that registry (including for tarballs) -include an authorization header. This setting may be necessary for use with -private registries where metadata and package tarballs are stored on hosts with -different hostnames. See always-auth in npm-config(7) for more details on -always-auth. Registry-specific configuration of always-auth takes precedence -over any global configuration.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-bin.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-bin.html deleted file mode 100644 index 7326833c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-bin.html +++ /dev/null @@ -1,39 +0,0 @@ - - - npm-bin - - - - - - -
          - -

          npm-bin

          Display npm bin folder

          -

          SYNOPSIS

          -
          npm bin [-g|--global]
          -

          DESCRIPTION

          -

          Print the folder where npm will install executables.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-bugs.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-bugs.html deleted file mode 100644 index 2916ff1b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-bugs.html +++ /dev/null @@ -1,59 +0,0 @@ - - - npm-bugs - - - - - - -
          - -

          npm-bugs

          Bugs for a package in a web browser maybe

          -

          SYNOPSIS

          -
          npm bugs [<pkgname>]
          -
          -aliases: issues
          -

          DESCRIPTION

          -

          This command tries to guess at the likely location of a package's -bug tracker URL, and then tries to open it using the --browser -config param. If no package name is provided, it will search for -a package.json in the current folder and use the name property.

          -

          CONFIGURATION

          -

          browser

          -
            -
          • Default: OS X: "open", Windows: "start", Others: "xdg-open"
          • -
          • Type: String
          • -
          -

          The browser that is called by the npm bugs command to open websites.

          -

          registry

          - -

          The base URL of the npm package registry.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-build.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-build.html deleted file mode 100644 index b0da7bf2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-build.html +++ /dev/null @@ -1,44 +0,0 @@ - - - npm-build - - - - - - -
          - -

          npm-build

          Build a package

          -

          SYNOPSIS

          -
          npm build [<package-folder>]
          -
            -
          • <package-folder>: -A folder containing a package.json file in its root.
          • -
          -

          DESCRIPTION

          -

          This is the plumbing command called by npm link and npm install.

          -

          It should generally be called during installation, but if you need to run it -directly, run:

          -
          npm run-script build
          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-bundle.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-bundle.html deleted file mode 100644 index 1331e8e9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-bundle.html +++ /dev/null @@ -1,35 +0,0 @@ - - - npm-bundle - - - - - - -
          - -

          npm-bundle

          REMOVED

          -

          DESCRIPTION

          -

          The npm bundle command has been removed in 1.0, for the simple reason -that it is no longer necessary, as the default behavior is now to -install packages into the local space.

          -

          Just use npm install now to do what npm bundle used to do.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-cache.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-cache.html deleted file mode 100644 index 0d6a4626..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-cache.html +++ /dev/null @@ -1,85 +0,0 @@ - - - npm-cache - - - - - - -
          - -

          npm-cache

          Manipulates packages cache

          -

          SYNOPSIS

          -
          npm cache add <tarball file>
          -npm cache add <folder>
          -npm cache add <tarball url>
          -npm cache add <name>@<version>
          -
          -npm cache ls [<path>]
          -
          -npm cache clean [<path>]
          -

          DESCRIPTION

          -

          Used to add, list, or clear the npm cache folder.

          -
            -
          • add: -Add the specified package to the local cache. This command is primarily -intended to be used internally by npm, but it can provide a way to -add data to the local installation cache explicitly.

            -
          • -
          • ls: -Show the data in the cache. Argument is a path to show in the cache -folder. Works a bit like the find program, but limited by the -depth config.

            -
          • -
          • clean: -Delete data out of the cache folder. If an argument is provided, then -it specifies a subpath to delete. If no argument is provided, then -the entire cache is cleared.

            -
          • -
          -

          DETAILS

          -

          npm stores cache data in the directory specified in npm config get cache. -For each package that is added to the cache, three pieces of information are -stored in {cache}/{name}/{version}:

          -
            -
          • .../package/package.json: -The package.json file, as npm sees it.
          • -
          • .../package.tgz: -The tarball for that version.
          • -
          -

          Additionally, whenever a registry request is made, a .cache.json file -is placed at the corresponding URI, to store the ETag and the requested -data. This is stored in {cache}/{hostname}/{path}/.cache.json.

          -

          Commands that make non-essential registry requests (such as search and -view, or the completion scripts) generally specify a minimum timeout. -If the .cache.json file is younger than the specified timeout, then -they do not make an HTTP request to the registry.

          -

          CONFIGURATION

          -

          cache

          -

          Default: ~/.npm on Posix, or %AppData%/npm-cache on Windows.

          -

          The root cache folder.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-completion.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-completion.html deleted file mode 100644 index 835b5d72..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-completion.html +++ /dev/null @@ -1,47 +0,0 @@ - - - npm-completion - - - - - - -
          - -

          npm-completion

          Tab Completion for npm

          -

          SYNOPSIS

          -
          source <(npm completion)
          -

          DESCRIPTION

          -

          Enables tab-completion in all npm commands.

          -

          The synopsis above -loads the completions into your current shell. Adding it to -your ~/.bashrc or ~/.zshrc will make the completions available -everywhere:

          -
          npm completion >> ~/.bashrc
          -npm completion >> ~/.zshrc
          -

          You may of course also pipe the output of npm completion to a file -such as /usr/local/etc/bash_completion.d/npm if you have a system -that will read that file for you.

          -

          When COMP_CWORD, COMP_LINE, and COMP_POINT are defined in the -environment, npm completion acts in "plumbing mode", and outputs -completions based on the arguments.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-config.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-config.html deleted file mode 100644 index 8360ad76..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-config.html +++ /dev/null @@ -1,71 +0,0 @@ - - - npm-config - - - - - - -
          - -

          npm-config

          Manage the npm configuration files

          -

          SYNOPSIS

          -
          npm config set <key> <value> [-g|--global]
          -npm config get <key>
          -npm config delete <key>
          -npm config list
          -npm config edit
          -npm get <key>
          -npm set <key> <value> [-g|--global]
          -
          -aliases: c
          -

          DESCRIPTION

          -

          npm gets its config settings from the command line, environment -variables, npmrc files, and in some cases, the package.json file.

          -

          See npmrc(5) for more information about the npmrc files.

          -

          See npm-config(7) for a more thorough discussion of the mechanisms -involved.

          -

          The npm config command can be used to update and edit the contents -of the user and global npmrc files.

          -

          Sub-commands

          -

          Config supports the following sub-commands:

          -

          set

          -
          npm config set key value
          -

          Sets the config key to the value.

          -

          If value is omitted, then it sets it to "true".

          -

          get

          -
          npm config get key
          -

          Echo the config value to stdout.

          -

          list

          -
          npm config list
          -

          Show all the config settings.

          -

          delete

          -
          npm config delete key
          -

          Deletes the key from all configuration files.

          -

          edit

          -
          npm config edit
          -

          Opens the config file in an editor. Use the --global flag to edit the -global config.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-dedupe.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-dedupe.html deleted file mode 100644 index fb924b7d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-dedupe.html +++ /dev/null @@ -1,65 +0,0 @@ - - - npm-dedupe - - - - - - -
          - -

          npm-dedupe

          Reduce duplication

          -

          SYNOPSIS

          -
          npm dedupe
          -npm ddp
          -
          -aliases: find-dupes, ddp
          -

          DESCRIPTION

          -

          Searches the local package tree and attempts to simplify the overall -structure by moving dependencies further up the tree, where they can -be more effectively shared by multiple dependent packages.

          -

          For example, consider this dependency graph:

          -
          a
          -+-- b <-- depends on c@1.0.x
          -|   `-- c@1.0.3
          -`-- d <-- depends on c@~1.0.9
          -    `-- c@1.0.10
          -

          In this case, npm-dedupe(1) will transform the tree to:

          -
          a
          -+-- b
          -+-- d
          -`-- c@1.0.10
          -

          Because of the hierarchical nature of node's module lookup, b and d -will both get their dependency met by the single c package at the root -level of the tree.

          -

          The deduplication algorithm walks the tree, moving each dependency as far -up in the tree as possible, even if duplicates are not found. This will -result in both a flat and deduplicated tree.

          -

          If a suitable version exists at the target location in the tree -already, then it will be left untouched, but the other duplicates will -be deleted.

          -

          Arguments are ignored. Dedupe always acts on the entire tree.

          -

          Modules

          -

          Note that this operation transforms the dependency tree, but will never -result in new modules being installed.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-deprecate.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-deprecate.html deleted file mode 100644 index afc9e224..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-deprecate.html +++ /dev/null @@ -1,42 +0,0 @@ - - - npm-deprecate - - - - - - -
          - -

          npm-deprecate

          Deprecate a version of a package

          -

          SYNOPSIS

          -
          npm deprecate <pkg>[@<version>] <message>
          -

          DESCRIPTION

          -

          This command will update the npm registry entry for a package, providing -a deprecation warning to all who attempt to install it.

          -

          It works on version ranges as well as specific versions, so you can do -something like this:

          -
          npm deprecate my-thing@"< 0.2.3" "critical bug fixed in v0.2.3"
          -

          Note that you must be the package owner to deprecate something. See the -owner and adduser help topics.

          -

          To un-deprecate a package, specify an empty string ("") for the message argument.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-dist-tag.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-dist-tag.html deleted file mode 100644 index 111a9565..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-dist-tag.html +++ /dev/null @@ -1,91 +0,0 @@ - - - npm-dist-tag - - - - - - -
          - -

          npm-dist-tag

          Modify package distribution tags

          -

          SYNOPSIS

          -
          npm dist-tag add <pkg>@<version> [<tag>]
          -npm dist-tag rm <pkg> <tag>
          -npm dist-tag ls [<pkg>]
          -
          -aliases: dist-tags
          -

          DESCRIPTION

          -

          Add, remove, and enumerate distribution tags on a package:

          -
            -
          • add: -Tags the specified version of the package with the specified tag, or the ---tag config if not specified.

            -
          • -
          • rm: -Clear a tag that is no longer in use from the package.

            -
          • -
          • ls: -Show all of the dist-tags for a package, defaulting to the package in -the current prefix.

            -
          • -
          -

          A tag can be used when installing packages as a reference to a version instead -of using a specific version number:

          -
          npm install <name>@<tag>
          -

          When installing dependencies, a preferred tagged version may be specified:

          -
          npm install --tag <tag>
          -

          This also applies to npm dedupe.

          -

          Publishing a package sets the latest tag to the published version unless the ---tag option is used. For example, npm publish --tag=beta.

          -

          By default, npm install <pkg> (without any @<version> or @<tag> -specifier) installs the latest tag.

          -

          PURPOSE

          -

          Tags can be used to provide an alias instead of version numbers.

          -

          For example, a project might choose to have multiple streams of development -and use a different tag for each stream, -e.g., stable, beta, dev, canary.

          -

          By default, the latest tag is used by npm to identify the current version of -a package, and npm install <pkg> (without any @<version> or @<tag> -specifier) installs the latest tag. Typically, projects only use the latest -tag for stable release versions, and use other tags for unstable versions such -as prereleases.

          -

          The next tag is used by some projects to identify the upcoming version.

          -

          By default, other than latest, no tag has any special significance to npm -itself.

          -

          CAVEATS

          -

          This command used to be known as npm tag, which only created new tags, and so -had a different syntax.

          -

          Tags must share a namespace with version numbers, because they are specified in -the same slot: npm install <pkg>@<version> vs npm install <pkg>@<tag>.

          -

          Tags that can be interpreted as valid semver ranges will be rejected. For -example, v1.4 cannot be used as a tag, because it is interpreted by semver as ->=1.4.0 <1.5.0. See https://github.com/npm/npm/issues/6082.

          -

          The simplest way to avoid semver problems with tags is to use tags that do not -begin with a number or the letter v.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-docs.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-docs.html deleted file mode 100644 index d94c9d31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-docs.html +++ /dev/null @@ -1,60 +0,0 @@ - - - npm-docs - - - - - - -
          - -

          npm-docs

          Docs for a package in a web browser maybe

          -

          SYNOPSIS

          -
          npm docs [<pkgname> [<pkgname> ...]]
          -npm docs .
          -npm home [<pkgname> [<pkgname> ...]]
          -npm home .
          -

          DESCRIPTION

          -

          This command tries to guess at the likely location of a package's -documentation URL, and then tries to open it using the --browser -config param. You can pass multiple package names at once. If no -package name is provided, it will search for a package.json in -the current folder and use the name property.

          -

          CONFIGURATION

          -

          browser

          -
            -
          • Default: OS X: "open", Windows: "start", Others: "xdg-open"
          • -
          • Type: String
          • -
          -

          The browser that is called by the npm docs command to open websites.

          -

          registry

          - -

          The base URL of the npm package registry.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-edit.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-edit.html deleted file mode 100644 index eb7f5909..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-edit.html +++ /dev/null @@ -1,53 +0,0 @@ - - - npm-edit - - - - - - -
          - -

          npm-edit

          Edit an installed package

          -

          SYNOPSIS

          -
          npm edit <pkg>[@<version>]
          -

          DESCRIPTION

          -

          Opens the package folder in the default editor (or whatever you've -configured as the npm editor config -- see npm-config(7).)

          -

          After it has been edited, the package is rebuilt so as to pick up any -changes in compiled packages.

          -

          For instance, you can do npm install connect to install connect -into your package, and then npm edit connect to make a few -changes to your locally installed copy.

          -

          CONFIGURATION

          -

          editor

          -
            -
          • Default: EDITOR environment variable if set, or "vi" on Posix, -or "notepad" on Windows.
          • -
          • Type: path
          • -
          -

          The command to run for npm edit or npm config edit.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-explore.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-explore.html deleted file mode 100644 index 47d3a8dd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-explore.html +++ /dev/null @@ -1,53 +0,0 @@ - - - npm-explore - - - - - - -
          - -

          npm-explore

          Browse an installed package

          -

          SYNOPSIS

          -
          npm explore <pkg> [ -- <cmd>]
          -

          DESCRIPTION

          -

          Spawn a subshell in the directory of the installed package specified.

          -

          If a command is specified, then it is run in the subshell, which then -immediately terminates.

          -

          This is particularly handy in the case of git submodules in the -node_modules folder:

          -
          npm explore some-dependency -- git pull origin master
          -

          Note that the package is not automatically rebuilt afterwards, so be -sure to use npm rebuild <pkg> if you make any changes.

          -

          CONFIGURATION

          -

          shell

          -
            -
          • Default: SHELL environment variable, or "bash" on Posix, or "cmd" on -Windows
          • -
          • Type: path
          • -
          -

          The shell to run for the npm explore command.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-help-search.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-help-search.html deleted file mode 100644 index 3f2f5fcb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-help-search.html +++ /dev/null @@ -1,49 +0,0 @@ - - - npm-help-search - - - - - - -
          - -

          npm-help-search

          Search npm help documentation

          -

          SYNOPSIS

          -
          npm help-search <text>
          -

          DESCRIPTION

          -

          This command will search the npm markdown documentation files for the -terms provided, and then list the results, sorted by relevance.

          -

          If only one result is found, then it will show that help topic.

          -

          If the argument to npm help is not a known help topic, then it will -call help-search. It is rarely if ever necessary to call this -command directly.

          -

          CONFIGURATION

          -

          long

          -
            -
          • Type: Boolean
          • -
          • Default: false
          • -
          -

          If true, the "long" flag will cause help-search to output context around -where the terms were found in the documentation.

          -

          If false, then help-search will just list out the help topics found.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-help.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-help.html deleted file mode 100644 index 0f281c1a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-help.html +++ /dev/null @@ -1,54 +0,0 @@ - - - npm-help - - - - - - -
          - -

          npm-help

          Get help on npm

          -

          SYNOPSIS

          -
          npm help <term> [<terms..>]
          -

          DESCRIPTION

          -

          If supplied a topic, then show the appropriate documentation page.

          -

          If the topic does not exist, or if multiple terms are provided, then run -the help-search command to find a match. Note that, if help-search -finds a single subject, then it will run help on that topic, so unique -matches are equivalent to specifying a topic name.

          -

          CONFIGURATION

          -

          viewer

          -
            -
          • Default: "man" on Posix, "browser" on Windows
          • -
          • Type: path
          • -
          -

          The program to use to view help content.

          -

          Set to "browser" to view html help content in the default web browser.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-init.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-init.html deleted file mode 100644 index 5bf7aff3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-init.html +++ /dev/null @@ -1,52 +0,0 @@ - - - npm-init - - - - - - -
          - -

          npm-init

          Interactively create a package.json file

          -

          SYNOPSIS

          -
          npm init [-f|--force|-y|--yes]
          -

          DESCRIPTION

          -

          This will ask you a bunch of questions, and then write a package.json for you.

          -

          It attempts to make reasonable guesses about what you want things to be set to, -and then writes a package.json file with the options you've selected.

          -

          If you already have a package.json file, it'll read that first, and default to -the options in there.

          -

          It is strictly additive, so it does not delete options from your package.json -without a really good reason to do so.

          -

          If you invoke it with -f, --force, -y, or --yes, it will use only -defaults and not prompt you for any options.

          -

          CONFIGURATION

          -

          scope

          -
            -
          • Default: none
          • -
          • Type: String
          • -
          -

          The scope under which the new module should be created.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-install-test.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-install-test.html deleted file mode 100644 index f72a949e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-install-test.html +++ /dev/null @@ -1,46 +0,0 @@ - - - npm-install-test - - - - - - -
          - -

          npm install-test

          Install package(s) and run tests

          -

          SYNOPSIS

          -
          npm install-test (with no args, in package dir)
          -npm install-test [<@scope>/]<name>
          -npm install-test [<@scope>/]<name>@<tag>
          -npm install-test [<@scope>/]<name>@<version>
          -npm install-test [<@scope>/]<name>@<version range>
          -npm install-test <tarball file>
          -npm install-test <tarball url>
          -npm install-test <folder>
          -
          -alias: npm it
          -common options: [--save|--save-dev|--save-optional] [--save-exact] [--dry-run]
          -

          DESCRIPTION

          -

          This command runs an npm install followed immediately by an npm test. It -takes exactly the same arguments as npm install.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-install.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-install.html deleted file mode 100644 index 2d62fd01..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-install.html +++ /dev/null @@ -1,316 +0,0 @@ - - - npm-install - - - - - - -
          - -

          npm-install

          Install a package

          -

          SYNOPSIS

          -
          npm install (with no args, in package dir)
          -npm install [<@scope>/]<name>
          -npm install [<@scope>/]<name>@<tag>
          -npm install [<@scope>/]<name>@<version>
          -npm install [<@scope>/]<name>@<version range>
          -npm install <tarball file>
          -npm install <tarball url>
          -npm install <folder>
          -
          -alias: npm i
          -common options: [-S|--save|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [-B|--save-bundle] [--dry-run]
          -

          DESCRIPTION

          -

          This command installs a package, and any packages that it depends on. If the -package has a shrinkwrap file, the installation of dependencies will be driven -by that. See npm-shrinkwrap(1).

          -

          A package is:

          -
            -
          • a) a folder containing a program described by a package.json(5) file
          • -
          • b) a gzipped tarball containing (a)
          • -
          • c) a url that resolves to (b)
          • -
          • d) a <name>@<version> that is published on the registry (see npm-registry(7)) with (c)
          • -
          • e) a <name>@<tag> (see npm-dist-tag(1)) that points to (d)
          • -
          • f) a <name> that has a "latest" tag satisfying (e)
          • -
          • g) a <git remote url> that resolves to (a)
          • -
          -

          Even if you never publish your package, you can still get a lot of -benefits of using npm if you just want to write a node program (a), and -perhaps if you also want to be able to easily install it elsewhere -after packing it up into a tarball (b).

          -
            -
          • npm install (in package directory, no arguments):

            -

            Install the dependencies in the local node_modules folder.

            -

            In global mode (ie, with -g or --global appended to the command), - it installs the current package context (ie, the current working - directory) as a global package.

            -

            By default, npm install will install all modules listed as dependencies - in package.json(5).

            -

            With the --production flag (or when the NODE_ENV environment variable - is set to production), npm will not install modules listed in - devDependencies.

            -
          • -
          • npm install <folder>:

            -

            Install a package that is sitting in a folder on the filesystem.

            -
          • -
          • npm install <tarball file>:

            -

            Install a package that is sitting on the filesystem. Note: if you just want - to link a dev directory into your npm root, you can do this more easily by - using npm link.

            -

            Example:

            -
                npm install ./package.tgz
            -
          • -
          • npm install <tarball url>:

            -

            Fetch the tarball url, and then install it. In order to distinguish between - this and other options, the argument must start with "http://" or "https://"

            -

            Example:

            -
                npm install https://github.com/indexzero/forever/tarball/v0.5.6
            -
          • -
          • npm install [<@scope>/]<name> [-S|--save|-D|--save-dev|-O|--save-optional]:

            -

            Do a <name>@<tag> install, where <tag> is the "tag" config. (See - npm-config(7). The config's default value is latest.)

            -

            In most cases, this will install the latest version - of the module published on npm.

            -

            Example:

            -
                npm install sax
            -

            npm install takes 3 exclusive, optional flags which save or update - the package version in your main package.json:

            -
              -
            • -S, --save: Package will appear in your dependencies.

              -
            • -
            • -D, --save-dev: Package will appear in your devDependencies.

              -
            • -
            • -O, --save-optional: Package will appear in your optionalDependencies.

              -

              When using any of the above options to save dependencies to your -package.json, there are two additional, optional flags:

              -
            • -
            • -E, --save-exact: Saved dependencies will be configured with an -exact version rather than using npm's default semver range -operator.

              -
            • -
            • -B, --save-bundle: Saved dependencies will also be added to your bundleDependencies list.

              -

              Further, if you have an npm-shrinkwrap.json then it will be updated as -well.

              -

              <scope> is optional. The package will be downloaded from the registry -associated with the specified scope. If no registry is associated with -the given scope the default registry is assumed. See npm-scope(7).

              -

              Note: if you do not include the @-symbol on your scope name, npm will -interpret this as a GitHub repository instead, see below. Scopes names -must also be followed by a slash.

              -

              Examples:

              -
              npm install sax --save
              -npm install githubname/reponame
              -npm install @myorg/privatepackage
              -npm install node-tap --save-dev
              -npm install dtrace-provider --save-optional
              -npm install readable-stream --save --save-exact
              -npm install ansi-regex --save --save-bundle
              -
            • -
            -
          • -
          -
          **Note**: If there is a file or folder named `<name>` in the current
          -working directory, then it will try to install that, and only try to
          -fetch the package by name if it is not valid.
          -
            -
          • npm install [<@scope>/]<name>@<tag>:

            -

            Install the version of the package that is referenced by the specified tag. - If the tag does not exist in the registry data for that package, then this - will fail.

            -

            Example:

            -
                npm install sax@latest
            -    npm install @myorg/mypackage@latest
            -
          • -
          • npm install [<@scope>/]<name>@<version>:

            -

            Install the specified version of the package. This will fail if the - version has not been published to the registry.

            -

            Example:

            -
                npm install sax@0.1.1
            -    npm install @myorg/privatepackage@1.5.0
            -
          • -
          • npm install [<@scope>/]<name>@<version range>:

            -

            Install a version of the package matching the specified version range. This - will follow the same rules for resolving dependencies described in package.json(5).

            -

            Note that most version ranges must be put in quotes so that your shell will - treat it as a single argument.

            -

            Example:

            -
                npm install sax@">=0.1.0 <0.2.0"
            -    npm install @myorg/privatepackage@">=0.1.0 <0.2.0"
            -
          • -
          • npm install <git remote url>:

            -

            Installs the package from the hosted git provider, cloning it with - git. First it tries via the https (git with github) and if that fails, via ssh.

            -
                <protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish>]
            -

            <protocol> is one of git, git+ssh, git+http, git+https, - or git+file. - If no <commit-ish> is specified, then master is used.

            -

            If the repository makes use of submodules, those submodules will - be cloned as well.

            -

            The following git environment variables are recognized by npm and will be added - to the environment when running git:

            -
              -
            • GIT_ASKPASS
            • -
            • GIT_PROXY_COMMAND
            • -
            • GIT_SSH
            • -
            • GIT_SSH_COMMAND
            • -
            • GIT_SSL_CAINFO
            • -
            • GIT_SSL_NO_VERIFY

              -

              See the git man page for details.

              -

              Examples:

              -
              npm install git+ssh://git@github.com:npm/npm.git#v1.0.27
              -npm install git+https://isaacs@github.com/npm/npm.git
              -npm install git://github.com/npm/npm.git#v1.0.27
              -GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://git@github.com:npm/npm.git
              -
            • -
            -
          • -
          • npm install <githubname>/<githubrepo>[#<commit-ish>]:

            -
          • -
          • npm install github:<githubname>/<githubrepo>[#<commit-ish>]:

            -

            Install the package at https://github.com/githubname/githubrepo by - attempting to clone it using git.

            -

            If you don't specify a commit-ish then master will be used.

            -

            Examples:

            -
                npm install mygithubuser/myproject
            -    npm install github:mygithubuser/myproject
            -
          • -
          • npm install gist:[<githubname>/]<gistID>[#<commit-ish>]:

            -

            Install the package at https://gist.github.com/gistID by attempting to - clone it using git. The GitHub username associated with the gist is - optional and will not be saved in package.json if -S or --save is used.

            -

            If you don't specify a commit-ish then master will be used.

            -

            Example:

            -
                npm install gist:101a11beef
            -
          • -
          • npm install bitbucket:<bitbucketname>/<bitbucketrepo>[#<commit-ish>]:

            -

            Install the package at https://bitbucket.org/bitbucketname/bitbucketrepo - by attempting to clone it using git.

            -

            If you don't specify a commit-ish then master will be used.

            -

            Example:

            -
                npm install bitbucket:mybitbucketuser/myproject
            -
          • -
          • npm install gitlab:<gitlabname>/<gitlabrepo>[#<commit-ish>]:

            -

            Install the package at https://gitlab.com/gitlabname/gitlabrepo - by attempting to clone it using git.

            -

            If you don't specify a commit-ish then master will be used.

            -

            Example:

            -
                npm install gitlab:mygitlabuser/myproject
            -
          • -
          -

          You may combine multiple arguments, and even multiple types of arguments. -For example:

          -
          npm install sax@">=0.1.0 <0.2.0" bench supervisor
          -

          The --tag argument will apply to all of the specified install targets. If a -tag with the given name exists, the tagged version is preferred over newer -versions.

          -

          The --dry-run argument will report in the usual way what the install would -have done without actually installing anything.

          -

          The -f or --force argument will force npm to fetch remote resources even if a -local copy exists on disk.

          -
          npm install sax --force
          -

          The -g or --global argument will cause npm to install the package globally -rather than locally. See npm-folders(5).

          -

          The --global-style argument will cause npm to install the package into -your local node_modules folder with the same layout it uses with the -global node_modules folder. Only your direct dependencies will show in -node_modules and everything they depend on will be flattened in their -node_modules folders. This obviously will eliminate some deduping.

          -

          The --ignore-scripts argument will cause npm to not execute any -scripts defined in the package.json. See npm-scripts(7).

          -

          The --legacy-bundling argument will cause npm to install the package such -that versions of npm prior to 1.4, such as the one included with node 0.8, -can install the package. This eliminates all automatic deduping.

          -

          The --link argument will cause npm to link global installs into the -local space in some cases.

          -

          The --no-bin-links argument will prevent npm from creating symlinks for -any binaries the package might contain.

          -

          The --no-optional argument will prevent optional dependencies from -being installed.

          -

          The --no-shrinkwrap argument, which will ignore an available -shrinkwrap file and use the package.json instead.

          -

          The --nodedir=/path/to/node/source argument will allow npm to find the -node source code so that npm can compile native modules.

          -

          The --only={prod[uction]|dev[elopment]} argument will cause either only -devDependencies or only non-devDependencies to be installed regardless of the NODE_ENV.

          -

          See npm-config(7). Many of the configuration params have some -effect on installation, since that's most of what npm does.

          -

          ALGORITHM

          -

          To install a package, npm uses the following algorithm:

          -
          load the existing node_modules tree from disk
          -clone the tree
          -fetch the package.json and assorted metadata and add it to the clone
          -walk the clone and add any missing dependencies
          -  dependencies will be added as close to the top as is possible
          -  without breaking any other modules
          -compare the original tree with the cloned tree and make a list of
          -actions to take to convert one to the other
          -execute all of the actions, deepest first
          -  kinds of actions are install, update, remove and move
          -

          For this package{dep} structure: A{B,C}, B{C}, C{D}, -this algorithm produces:

          -
          A
          -+-- B
          -+-- C
          -+-- D
          -

          That is, the dependency from B to C is satisfied by the fact that A -already caused C to be installed at a higher level. D is still installed -at the top level because nothing conflicts with it.

          -

          For A{B,C}, B{C,D@1}, C{D@2}, this algorithm produces:

          -
          A
          -+-- B
          -+-- C
          -   `-- D@2
          -+-- D@1
          -

          Because B's D@1 will be installed in the top level, C now has to install D@2 -privately for itself.

          -

          See npm-folders(5) for a more detailed description of the specific -folder structures that npm creates.

          -

          Limitations of npm's Install Algorithm

          -

          There are some very rare and pathological edge-cases where a cycle can -cause npm to try to install a never-ending tree of packages. Here is -the simplest case:

          -
          A -> B -> A' -> B' -> A -> B -> A' -> B' -> A -> ...
          -

          where A is some version of a package, and A' is a different version -of the same package. Because B depends on a different version of A -than the one that is already in the tree, it must install a separate -copy. The same is true of A', which must install B'. Because B' -depends on the original version of A, which has been overridden, the -cycle falls into infinite regress.

          -

          To avoid this situation, npm flat-out refuses to install any -name@version that is already present anywhere in the tree of package -folder ancestors. A more correct, but more complex, solution would be -to symlink the existing version into the new location. If this ever -affects a real use-case, it will be investigated.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-link.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-link.html deleted file mode 100644 index a75993aa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-link.html +++ /dev/null @@ -1,77 +0,0 @@ - - - npm-link - - - - - - -
          - -

          npm-link

          Symlink a package folder

          -

          SYNOPSIS

          -
          npm link (in package dir)
          -npm link [<@scope>/]<pkg>[@<version>]
          -
          -alias: npm ln
          -

          DESCRIPTION

          -

          Package linking is a two-step process.

          -

          First, npm link in a package folder will create a symlink in the global folder -{prefix}/lib/node_modules/<package> that links to the package where the npm -link command was executed. (see npm-config(7) for the value of prefix).

          -

          Next, in some other location, npm link package-name will create a -symbolic link from globally-installed package-name to node_modules/ -of the current folder.

          -

          Note that package-name is taken from package.json, -not from directory name.

          -

          The package name can be optionally prefixed with a scope. See npm-scope(7). -The scope must be preceded by an @-symbol and followed by a slash.

          -

          When creating tarballs for npm publish, the linked packages are -"snapshotted" to their current state by resolving the symbolic links.

          -

          This is handy for installing your own stuff, so that you can work on it and -test it iteratively without having to continually rebuild.

          -

          For example:

          -
          cd ~/projects/node-redis    # go into the package directory
          -npm link                    # creates global link
          -cd ~/projects/node-bloggy   # go into some other package directory.
          -npm link redis              # link-install the package
          -

          Now, any changes to ~/projects/node-redis will be reflected in -~/projects/node-bloggy/node_modules/node-redis/. Note that the link should -be to the package name, not the directory name for that package.

          -

          You may also shortcut the two steps in one. For example, to do the -above use-case in a shorter way:

          -
          cd ~/projects/node-bloggy  # go into the dir of your main project
          -npm link ../node-redis     # link the dir of your dependency
          -

          The second line is the equivalent of doing:

          -
          (cd ../node-redis; npm link)
          -npm link node-redis
          -

          That is, it first creates a global link, and then links the global -installation target into your project's node_modules folder.

          -

          If your linked package is scoped (see npm-scope(7)) your link command must -include that scope, e.g.

          -
          npm link @myorg/privatepackage
          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-logout.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-logout.html deleted file mode 100644 index fa478570..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-logout.html +++ /dev/null @@ -1,55 +0,0 @@ - - - npm-logout - - - - - - -
          - -

          npm-logout

          Log out of the registry

          -

          SYNOPSIS

          -
          npm logout [--registry=<url>] [--scope=<@scope>]
          -

          DESCRIPTION

          -

          When logged into a registry that supports token-based authentication, tell the -server to end this token's session. This will invalidate the token everywhere -you're using it, not just for the current environment.

          -

          When logged into a legacy registry that uses username and password authentication, this will -clear the credentials in your user configuration. In this case, it will only affect -the current environment.

          -

          If --scope is provided, this will find the credentials for the registry -connected to that scope, if set.

          -

          CONFIGURATION

          -

          registry

          -

          Default: https://registry.npmjs.org/

          -

          The base URL of the npm package registry. If scope is also specified, -it takes precedence.

          -

          scope

          -

          Default: none

          -

          If specified, you will be logged out of the specified scope. See npm-scope(7).

          -
          npm logout --scope=@myco
          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-ls.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-ls.html deleted file mode 100644 index f4f08d44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-ls.html +++ /dev/null @@ -1,108 +0,0 @@ - - - npm-ls - - - - - - -
          - -

          npm-ls

          List installed packages

          -

          SYNOPSIS

          -
          npm ls [[<@scope>/]<pkg> ...]
          -
          -aliases: list, la, ll
          -

          DESCRIPTION

          -

          This command will print to stdout all the versions of packages that are -installed, as well as their dependencies, in a tree-structure.

          -

          Positional arguments are name@version-range identifiers, which will -limit the results to only the paths to the packages named. Note that -nested packages will also show the paths to the specified packages. -For example, running npm ls promzard in npm's source tree will show:

          -
          npm@3.9.6 /path/to/npm
          -└─┬ init-package-json@0.0.4
          -  └── promzard@0.1.5
          -

          It will print out extraneous, missing, and invalid packages.

          -

          If a project specifies git urls for dependencies these are shown -in parentheses after the name@version to make it easier for users to -recognize potential forks of a project.

          -

          The tree shown is the logical dependency tree, based on package -dependencies, not the physical layout of your node_modules folder.

          -

          When run as ll or la, it shows extended information by default.

          -

          CONFIGURATION

          -

          json

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Show information in JSON format.

          -

          long

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Show extended information.

          -

          parseable

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Show parseable output instead of tree view.

          -

          global

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          List packages in the global install prefix instead of in the current -project.

          -

          depth

          -
            -
          • Type: Int
          • -
          -

          Max display depth of the dependency tree.

          -

          prod / production

          -
            -
          • Type: Boolean
          • -
          • Default: false
          • -
          -

          Display only the dependency tree for packages in dependencies.

          -

          dev

          -
            -
          • Type: Boolean
          • -
          • Default: false
          • -
          -

          Display only the dependency tree for packages in devDependencies.

          -

          only

          -
            -
          • Type: String
          • -
          -

          When "dev" or "development", is an alias to dev.

          -

          When "prod" or "production", is an alias to production.`

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-outdated.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-outdated.html deleted file mode 100644 index 3249f036..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-outdated.html +++ /dev/null @@ -1,120 +0,0 @@ - - - npm-outdated - - - - - - -
          - -

          npm-outdated

          Check for outdated packages

          -

          SYNOPSIS

          -
          npm outdated [[<@scope>/]<pkg> ...]
          -

          DESCRIPTION

          -

          This command will check the registry to see if any (or, specific) installed -packages are currently outdated.

          -

          In the output:

          -
            -
          • wanted is the maximum version of the package that satisfies the semver -range specified in package.json. If there's no available semver range (i.e. -you're running npm outdated --global, or the package isn't included in -package.json), then wanted shows the currently-installed version.
          • -
          • latest is the version of the package tagged as latest in the registry. -Running npm publish with no special configuration will publish the package -with a dist-tag of latest. This may or may not be the maximum version of -the package, or the most-recently published version of the package, depending -on how the package's developer manages the latest dist-tag(1).
          • -
          • location is where in the dependency tree the package is located. Note that -npm outdated defaults to a depth of 0, so unless you override that, you'll -always be seeing only top-level dependencies that are outdated.
          • -
          • package type (when using --long / -l) tells you whether this package is -a dependency or a devDependency. Packages not included in package.json -are always marked dependencies.
          • -
          -

          An example

          -
          $ npm outdated
          -Package      Current   Wanted   Latest  Location
          -glob          5.0.15   5.0.15    6.0.1  test-outdated-output
          -nothingness    0.0.3      git      git  test-outdated-output
          -npm            3.5.1    3.5.2    3.5.1  test-outdated-output
          -local-dev      0.0.3   linked   linked  test-outdated-output
          -once           1.3.2    1.3.3    1.3.3  test-outdated-output
          -

          With these dependencies:

          -
          {
          -  "glob": "^5.0.15",
          -  "nothingness": "github:othiym23/nothingness#master",
          -  "npm": "^3.5.1",
          -  "once": "^1.3.1"
          -}
          -
          -

          A few things to note:

          -
            -
          • glob requires ^5, which prevents npm from installing glob@6, which is -outside the semver range.
          • -
          • Git dependencies will always be reinstalled, because of how they're specified. -The installed committish might satisfy the dependency specifier (if it's -something immutable, like a commit SHA), or it might not, so npm outdated and -npm update have to fetch Git repos to check. This is why currently doing a -reinstall of a Git dependency always forces a new clone and install.
          • -
          • npm@3.5.2 is marked as "wanted", but "latest" is npm@3.5.1 because npm -uses dist-tags to manage its latest and next release channels. npm update -will install the newest version, but npm install npm (with no semver range) -will install whatever's tagged as latest.
          • -
          • once is just plain out of date. Reinstalling node_modules from scratch or -running npm update will bring it up to spec.
          • -
          -

          CONFIGURATION

          -

          json

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Show information in JSON format.

          -

          long

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Show extended information.

          -

          parseable

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Show parseable output instead of tree view.

          -

          global

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Check packages in the global install prefix instead of in the current -project.

          -

          depth

          -
            -
          • Default: 0
          • -
          • Type: Int
          • -
          -

          Max depth for checking dependency tree.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-owner.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-owner.html deleted file mode 100644 index db7a4c5e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-owner.html +++ /dev/null @@ -1,55 +0,0 @@ - - - npm-owner - - - - - - -
          - -

          npm-owner

          Manage package owners

          -

          SYNOPSIS

          -
          npm owner add <user> [<@scope>/]<pkg>
          -npm owner rm <user> [<@scope>/]<pkg>
          -npm owner ls [<@scope>/]<pkg>
          -
          -aliases: author
          -

          DESCRIPTION

          -

          Manage ownership of published packages.

          -
            -
          • ls: -List all the users who have access to modify a package and push new versions. -Handy when you need to know who to bug for help.
          • -
          • add: -Add a new user as a maintainer of a package. This user is enabled to modify -metadata, publish new versions, and add other owners.
          • -
          • rm: -Remove a user from the package owner list. This immediately revokes their -privileges.
          • -
          -

          Note that there is only one level of access. Either you can modify a package, -or you can't. Future versions may contain more fine-grained access levels, but -that is not implemented at this time.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-pack.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-pack.html deleted file mode 100644 index 46839b33..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-pack.html +++ /dev/null @@ -1,45 +0,0 @@ - - - npm-pack - - - - - - -
          - -

          npm-pack

          Create a tarball from a package

          -

          SYNOPSIS

          -
          npm pack [[<@scope>/]<pkg>...]
          -

          DESCRIPTION

          -

          For anything that's installable (that is, a package folder, tarball, -tarball url, name@tag, name@version, name, or scoped name), this -command will fetch it to the cache, and then copy the tarball to the -current working directory as <name>-<version>.tgz, and then write -the filenames out to stdout.

          -

          If the same package is specified multiple times, then the file will be -overwritten the second time.

          -

          If no arguments are supplied, then npm packs the current package folder.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-ping.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-ping.html deleted file mode 100644 index 4213bdfd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-ping.html +++ /dev/null @@ -1,36 +0,0 @@ - - - npm-ping - - - - - - -
          - -

          npm-ping

          Ping npm registry

          -

          SYNOPSIS

          -
          npm ping [--registry <registry>]
          -

          DESCRIPTION

          -

          Ping the configured or given npm registry and verify authentication.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-prefix.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-prefix.html deleted file mode 100644 index b7a2032a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-prefix.html +++ /dev/null @@ -1,42 +0,0 @@ - - - npm-prefix - - - - - - -
          - -

          npm-prefix

          Display prefix

          -

          SYNOPSIS

          -
          npm prefix [-g]
          -

          DESCRIPTION

          -

          Print the local prefix to standard out. This is the closest parent directory -to contain a package.json file unless -g is also specified.

          -

          If -g is specified, this will be the value of the global prefix. See -npm-config(7) for more detail.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-prune.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-prune.html deleted file mode 100644 index cb32a994..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-prune.html +++ /dev/null @@ -1,44 +0,0 @@ - - - npm-prune - - - - - - -
          - -

          npm-prune

          Remove extraneous packages

          -

          SYNOPSIS

          -
          npm prune [[<@scope>/]<pkg>...] [--production]
          -

          DESCRIPTION

          -

          This command removes "extraneous" packages. If a package name is -provided, then only packages matching one of the supplied names are -removed.

          -

          Extraneous packages are packages that are not listed on the parent -package's dependencies list.

          -

          If the --production flag is specified or the NODE_ENV environment -variable is set to production, this command will remove the packages -specified in your devDependencies. Setting --production=false will -negate NODE_ENV being set to production.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-publish.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-publish.html deleted file mode 100644 index c40cb9ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-publish.html +++ /dev/null @@ -1,76 +0,0 @@ - - - npm-publish - - - - - - -
          - -

          npm-publish

          Publish a package

          -

          SYNOPSIS

          -
          npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>]
          -
          -Publishes '.' if no argument supplied
          -Sets tag 'latest' if no --tag specified
          -

          DESCRIPTION

          -

          Publishes a package to the registry so that it can be installed by name. All -files in the package directory are included if no local .gitignore or -.npmignore file exists. If both files exist and a file is ignored by -.gitignore but not by .npmignore then it will be included. See -npm-developers(7) for full details on what's included in the published -package, as well as details on how the package is built.

          -

          By default npm will publish to the public registry. This can be overridden by -specifying a different default registry or using a npm-scope(7) in the name -(see package.json(5)).

          -
            -
          • <folder>: -A folder containing a package.json file

            -
          • -
          • <tarball>: -A url or file path to a gzipped tar archive containing a single folder -with a package.json file inside.

            -
          • -
          • [--tag <tag>] -Registers the published package with the given tag, such that npm install -<name>@<tag> will install this version. By default, npm publish updates -and npm install installs the latest tag. See npm-dist-tag(1) for -details about tags.

            -
          • -
          • [--access <public|restricted>] -Tells the registry whether this package should be published as public or -restricted. Only applies to scoped packages, which default to restricted. -If you don't have a paid account, you must publish with --access public -to publish scoped packages.

            -
          • -
          -

          Fails if the package name and version combination already exists in -the specified registry.

          -

          Once a package is published with a given name and version, that -specific name and version combination can never be used again, even if -it is removed with npm-unpublish(1).

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-rebuild.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-rebuild.html deleted file mode 100644 index 75229e6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-rebuild.html +++ /dev/null @@ -1,39 +0,0 @@ - - - npm-rebuild - - - - - - -
          - -

          npm-rebuild

          Rebuild a package

          -

          SYNOPSIS

          -
          npm rebuild [[<@scope>/<name>]...]
          -
          -alias: npm rb
          -

          DESCRIPTION

          -

          This command runs the npm build command on the matched folders. This is useful -when you install a new version of node, and must recompile all your C++ addons with -the new binary.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-repo.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-repo.html deleted file mode 100644 index 3bcc1712..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-repo.html +++ /dev/null @@ -1,45 +0,0 @@ - - - npm-repo - - - - - - -
          - -

          npm-repo

          Open package repository page in the browser

          -

          SYNOPSIS

          -
          npm repo [<pkg>]
          -

          DESCRIPTION

          -

          This command tries to guess at the likely location of a package's -repository URL, and then tries to open it using the --browser -config param. If no package name is provided, it will search for -a package.json in the current folder and use the name property.

          -

          CONFIGURATION

          -

          browser

          -
            -
          • Default: OS X: "open", Windows: "start", Others: "xdg-open"
          • -
          • Type: String
          • -
          -

          The browser that is called by the npm repo command to open websites.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-restart.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-restart.html deleted file mode 100644 index f68b2e70..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-restart.html +++ /dev/null @@ -1,57 +0,0 @@ - - - npm-restart - - - - - - -
          - -

          npm-restart

          Restart a package

          -

          SYNOPSIS

          -
          npm restart [-- <args>]
          -

          DESCRIPTION

          -

          This restarts a package.

          -

          This runs a package's "stop", "restart", and "start" scripts, and associated -pre- and post- scripts, in the order given below:

          -
            -
          1. prerestart
          2. -
          3. prestop
          4. -
          5. stop
          6. -
          7. poststop
          8. -
          9. restart
          10. -
          11. prestart
          12. -
          13. start
          14. -
          15. poststart
          16. -
          17. postrestart
          18. -
          -

          NOTE

          -

          Note that the "restart" script is run in addition to the "stop" -and "start" scripts, not instead of them.

          -

          This is the behavior as of npm major version 2. A change in this -behavior will be accompanied by an increase in major version number

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-root.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-root.html deleted file mode 100644 index 48eac44e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-root.html +++ /dev/null @@ -1,39 +0,0 @@ - - - npm-root - - - - - - -
          - -

          npm-root

          Display npm root

          -

          SYNOPSIS

          -
          npm root [-g]
          -

          DESCRIPTION

          -

          Print the effective node_modules folder to standard out.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-run-script.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-run-script.html deleted file mode 100644 index 747a8c82..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-run-script.html +++ /dev/null @@ -1,67 +0,0 @@ - - - npm-run-script - - - - - - -
          - -

          npm-run-script

          Run arbitrary package scripts

          -

          SYNOPSIS

          -
          npm run-script <command> [-- <args>...]
          -
          -alias: npm run
          -

          DESCRIPTION

          -

          This runs an arbitrary command from a package's "scripts" object. If no -"command" is provided, it will list the available scripts. run[-script] is -used by the test, start, restart, and stop commands, but can be called -directly, as well. When the scripts in the package are printed out, they're -separated into lifecycle (test, start, restart) and directly-run scripts.

          -

          As of npm@2.0.0, you can -use custom arguments when executing scripts. The special option -- is used by -getopt to delimit the end of the options. npm will pass -all the arguments after the -- directly to your script:

          -
          npm run test -- --grep="pattern"
          -

          The arguments will only be passed to the script specified after npm run -and not to any pre or post script.

          -

          The env script is a special built-in command that can be used to list -environment variables that will be available to the script at runtime. If an -"env" command is defined in your package it will take precedence over the -built-in.

          -

          In addition to the shell's pre-existing PATH, npm run adds -node_modules/.bin to the PATH provided to scripts. Any binaries provided by -locally-installed dependencies can be used without the node_modules/.bin -prefix. For example, if there is a devDependency on tap in your package, -you should write:

          -
          "scripts": {"test": "tap test/\*.js"}
          -

          instead of "scripts": {"test": "node_modules/.bin/tap test/\*.js"} to run your tests.

          -

          npm run sets the NODE environment variable to the node executable with -which npm is executed, and adds the directory within which it resides to the -PATH, too.

          -

          If you try to run a script without having a node_modules directory and it fails, -you will be given a warning to run npm install, just in case you've forgotten.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-search.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-search.html deleted file mode 100644 index 08c1687f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-search.html +++ /dev/null @@ -1,61 +0,0 @@ - - - npm-search - - - - - - -
          - -

          npm-search

          Search for packages

          -

          SYNOPSIS

          -
          npm search [-l|--long] [search terms ...]
          -
          -aliases: s, se, find
          -

          DESCRIPTION

          -

          Search the registry for packages matching the search terms.

          -

          If a term starts with /, then it's interpreted as a regular expression. -A trailing / will be ignored in this case. (Note that many regular -expression characters must be escaped or quoted in most shells.)

          -

          CONFIGURATION

          -

          long

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Display full package descriptions and other long text across multiple -lines. When disabled (default) search results are truncated to fit -neatly on a single line. Modules with extremely long names will -fall on multiple lines.

          -

          registry

          - -

          Search the specified registry for modules. If you have configured npm to point to a different default registry, -such as your internal private module repository, npm search will default to that registry when searching. -Pass a different registry url such as the default above in order to override this setting.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-shrinkwrap.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-shrinkwrap.html deleted file mode 100644 index 1ed27f0f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-shrinkwrap.html +++ /dev/null @@ -1,173 +0,0 @@ - - - npm-shrinkwrap - - - - - - -
          - -

          npm-shrinkwrap

          Lock down dependency versions

          -

          SYNOPSIS

          -
          npm shrinkwrap
          -

          DESCRIPTION

          -

          This command locks down the versions of a package's dependencies so -that you can control exactly which versions of each dependency will be -used when your package is installed. The package.json file is still -required if you want to use npm install.

          -

          By default, npm install recursively installs the target's -dependencies (as specified in package.json), choosing the latest -available version that satisfies the dependency's semver pattern. In -some situations, particularly when shipping software where each change -is tightly managed, it's desirable to fully specify each version of -each dependency recursively so that subsequent builds and deploys do -not inadvertently pick up newer versions of a dependency that satisfy -the semver pattern. Specifying specific semver patterns in each -dependency's package.json would facilitate this, but that's not always -possible or desirable, as when another author owns the npm package. -It's also possible to check dependencies directly into source control, -but that may be undesirable for other reasons.

          -

          As an example, consider package A:

          -
          {
          -  "name": "A",
          -  "version": "0.1.0",
          -  "dependencies": {
          -    "B": "<0.1.0"
          -  }
          -}
          -

          package B:

          -
          {
          -  "name": "B",
          -  "version": "0.0.1",
          -  "dependencies": {
          -    "C": "<0.1.0"
          -  }
          -}
          -

          and package C:

          -
          {
          -  "name": "C",
          -  "version": "0.0.1"
          -}
          -

          If these are the only versions of A, B, and C available in the -registry, then a normal npm install A will install:

          -
          A@0.1.0
          -`-- B@0.0.1
          -    `-- C@0.0.1
          -

          However, if B@0.0.2 is published, then a fresh npm install A will -install:

          -
          A@0.1.0
          -`-- B@0.0.2
          -    `-- C@0.0.1
          -

          assuming the new version did not modify B's dependencies. Of course, -the new version of B could include a new version of C and any number -of new dependencies. If such changes are undesirable, the author of A -could specify a dependency on B@0.0.1. However, if A's author and B's -author are not the same person, there's no way for A's author to say -that he or she does not want to pull in newly published versions of C -when B hasn't changed at all.

          -

          In this case, A's author can run

          -
          npm shrinkwrap
          -

          This generates npm-shrinkwrap.json, which will look something like this:

          -
          {
          -  "name": "A",
          -  "version": "0.1.0",
          -  "dependencies": {
          -    "B": {
          -      "version": "0.0.1",
          -      "from": "B@^0.0.1",
          -      "resolved": "https://registry.npmjs.org/B/-/B-0.0.1.tgz",
          -      "dependencies": {
          -        "C": {
          -          "version": "0.0.1",
          -          "from": "org/C#v0.0.1",
          -          "resolved": "git://github.com/org/C.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4"
          -        }
          -      }
          -    }
          -  }
          -}
          -

          The shrinkwrap command has locked down the dependencies based on what's -currently installed in node_modules. The installation behavior is changed to:

          -
            -
          1. The module tree described by the shrinkwrap is reproduced. This means -reproducing the structure described in the file, using the specific files -referenced in "resolved" if available, falling back to normal package -resolution using "version" if one isn't.

            -
          2. -
          3. The tree is walked and any missing dependencies are installed in the usual fashion.

            -
          4. -
          -

          Using shrinkwrapped packages

          -

          Using a shrinkwrapped package is no different than using any other -package: you can npm install it by hand, or add a dependency to your -package.json file and npm install it.

          -

          Building shrinkwrapped packages

          -

          To shrinkwrap an existing package:

          -
            -
          1. Run npm install in the package root to install the current -versions of all dependencies.
          2. -
          3. Validate that the package works as expected with these versions.
          4. -
          5. Run npm shrinkwrap, add npm-shrinkwrap.json to git, and publish -your package.
          6. -
          -

          To add or update a dependency in a shrinkwrapped package:

          -
            -
          1. Run npm install in the package root to install the current -versions of all dependencies.
          2. -
          3. Add or update dependencies. npm install --save each new or updated -package individually to update the package.json and the shrinkwrap. -Note that they must be explicitly named in order to be installed: running -npm install with no arguments will merely reproduce the existing -shrinkwrap.
          4. -
          5. Validate that the package works as expected with the new -dependencies.
          6. -
          7. Commit the new npm-shrinkwrap.json, and publish your package.
          8. -
          -

          You can use npm-outdated(1) to view dependencies with newer versions -available.

          -

          Other Notes

          -

          A shrinkwrap file must be consistent with the package's package.json -file. npm shrinkwrap will fail if required dependencies are not -already installed, since that would result in a shrinkwrap that -wouldn't actually work. Similarly, the command will fail if there are -extraneous packages (not referenced by package.json), since that would -indicate that package.json is not correct.

          -

          Since npm shrinkwrap is intended to lock down your dependencies for -production use, devDependencies will not be included unless you -explicitly set the --dev flag when you run npm shrinkwrap. If -installed devDependencies are excluded, then npm will print a -warning. If you want them to be installed with your module by -default, please consider adding them to dependencies instead.

          -

          If shrinkwrapped package A depends on shrinkwrapped package B, B's -shrinkwrap will not be used as part of the installation of A. However, -because A's shrinkwrap is constructed from a valid installation of B -and recursively specifies all dependencies, the contents of B's -shrinkwrap will implicitly be included in A's shrinkwrap.

          -

          Caveats

          -

          If you wish to lock down the specific bytes included in a package, for -example to have 100% confidence in being able to reproduce a -deployment or build, then you ought to check your dependencies into -source control, or pursue some other mechanism that can verify -contents rather than versions.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-star.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-star.html deleted file mode 100644 index 668b71b4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-star.html +++ /dev/null @@ -1,40 +0,0 @@ - - - npm-star - - - - - - -
          - -

          npm-star

          Mark your favorite packages

          -

          SYNOPSIS

          -
          npm star [<pkg>...]
          -npm unstar [<pkg>...]
          -

          DESCRIPTION

          -

          "Starring" a package means that you have some interest in it. It's -a vaguely positive way to show that you care.

          -

          "Unstarring" is the same thing, but in reverse.

          -

          It's a boolean thing. Starring repeatedly has no additional effect.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-stars.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-stars.html deleted file mode 100644 index d2e67c73..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-stars.html +++ /dev/null @@ -1,40 +0,0 @@ - - - npm-stars - - - - - - -
          - -

          npm-stars

          View packages marked as favorites

          -

          SYNOPSIS

          -
          npm stars [<user>]
          -

          DESCRIPTION

          -

          If you have starred a lot of neat things and want to find them again -quickly this command lets you do just that.

          -

          You may also want to see your friend's favorite packages, in this case -you will most certainly enjoy this command.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-start.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-start.html deleted file mode 100644 index 876384a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-start.html +++ /dev/null @@ -1,43 +0,0 @@ - - - npm-start - - - - - - -
          - -

          npm-start

          Start a package

          -

          SYNOPSIS

          -
          npm start [-- <args>]
          -

          DESCRIPTION

          -

          This runs an arbitrary command specified in the package's "start" property of -its "scripts" object. If no "start" property is specified on the -"scripts" object, it will run node server.js.

          -

          As of npm@2.0.0, you can -use custom arguments when executing scripts. Refer to npm-run-script(1) for -more details.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-stop.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-stop.html deleted file mode 100644 index 810a7b3a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-stop.html +++ /dev/null @@ -1,38 +0,0 @@ - - - npm-stop - - - - - - -
          - -

          npm-stop

          Stop a package

          -

          SYNOPSIS

          -
          npm stop [-- <args>]
          -

          DESCRIPTION

          -

          This runs a package's "stop" script, if one was provided.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-tag.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-tag.html deleted file mode 100644 index 24813814..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-tag.html +++ /dev/null @@ -1,67 +0,0 @@ - - - npm-tag - - - - - - -
          - -

          npm-tag

          Tag a published version

          -

          SYNOPSIS

          -
          [DEPRECATED] npm tag <name>@<version> [<tag>]
          -See `dist-tag`
          -

          DESCRIPTION

          -

          THIS COMMAND IS DEPRECATED. See npm-dist-tag(1) for details.

          -

          Tags the specified version of the package with the specified tag, or the ---tag config if not specified.

          -

          A tag can be used when installing packages as a reference to a version instead -of using a specific version number:

          -
          npm install <name>@<tag>
          -

          When installing dependencies, a preferred tagged version may be specified:

          -
          npm install --tag <tag>
          -

          This also applies to npm dedupe.

          -

          Publishing a package always sets the "latest" tag to the published version.

          -

          PURPOSE

          -

          Tags can be used to provide an alias instead of version numbers. For -example, npm currently uses the tag "next" to identify the upcoming -version, and the tag "latest" to identify the current version.

          -

          A project might choose to have multiple streams of development, e.g., -"stable", "canary".

          -

          CAVEATS

          -

          Tags must share a namespace with version numbers, because they are -specified in the same slot: npm install <pkg>@<version> vs npm -install <pkg>@<tag>.

          -

          Tags that can be interpreted as valid semver ranges will be -rejected. For example, v1.4 cannot be used as a tag, because it is -interpreted by semver as >=1.4.0 <1.5.0. See -https://github.com/npm/npm/issues/6082.

          -

          The simplest way to avoid semver problems with tags is to use tags -that do not begin with a number or the letter v.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-team.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-team.html deleted file mode 100644 index e1ca5331..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-team.html +++ /dev/null @@ -1,71 +0,0 @@ - - - npm-team - - - - - - -
          - -

          npm-team

          Manage organization teams and team memberships

          -

          SYNOPSIS

          -
          npm team create <scope:team>
          -npm team destroy <scope:team>
          -
          -npm team add <scope:team> <user>
          -npm team rm <scope:team> <user>
          -
          -npm team ls <scope>|<scope:team>
          -
          -npm team edit <scope:team>
          -

          DESCRIPTION

          -

          Used to manage teams in organizations, and change team memberships. Does not -handle permissions for packages.

          -

          Teams must always be fully qualified with the organization/scope they belong to -when operating on them, separated by a colon (:). That is, if you have a -developers team on a foo organization, you must always refer to that team as -foo:developers in these commands.

          -
            -
          • create / destroy: -Create a new team, or destroy an existing one.

            -
          • -
          • add / rm: -Add a user to an existing team, or remove a user from a team they belong to.

            -
          • -
          • ls: -If performed on an organization name, will return a list of existing teams -under that organization. If performed on a team, it will instead return a list -of all users belonging to that particular team.

            -
          • -
          -

          DETAILS

          -

          npm team always operates directly on the current registry, configurable from -the command line using --registry=<registry url>.

          -

          In order to create teams and manage team membership, you must be a team admin -under the given organization. Listing teams and team memberships may be done by -any member of the organizations.

          -

          Organization creation and management of team admins and organization members -is done through the website, not the npm CLI.

          -

          To use teams to manage permissions on packages belonging to your organization, -use the npm access command to grant or revoke the appropriate permissions.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-test.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-test.html deleted file mode 100644 index b16ea4aa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-test.html +++ /dev/null @@ -1,42 +0,0 @@ - - - npm-test - - - - - - -
          - -

          npm-test

          Test a package

          -

          SYNOPSIS

          -
            npm test [-- <args>]
          -
          -  aliases: t, tst
          -

          DESCRIPTION

          -

          This runs a package's "test" script, if one was provided.

          -

          To run tests as a condition of installation, set the npat config to -true.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-uninstall.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-uninstall.html deleted file mode 100644 index 3f8f0ca6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-uninstall.html +++ /dev/null @@ -1,64 +0,0 @@ - - - npm-uninstall - - - - - - -
          - -

          npm-uninstall

          Remove a package

          -

          SYNOPSIS

          -
          npm uninstall [<@scope>/]<pkg>[@<version>]... [-S|--save|-D|--save-dev|-O|--save-optional]
          -
          -aliases: remove, rm, r, un, unlink
          -

          DESCRIPTION

          -

          This uninstalls a package, completely removing everything npm installed -on its behalf.

          -

          Example:

          -
          npm uninstall sax
          -

          In global mode (ie, with -g or --global appended to the command), -it uninstalls the current package context as a global package.

          -

          npm uninstall takes 3 exclusive, optional flags which save or update -the package version in your main package.json:

          -
            -
          • -S, --save: Package will be removed from your dependencies.

            -
          • -
          • -D, --save-dev: Package will be removed from your devDependencies.

            -
          • -
          • -O, --save-optional: Package will be removed from your optionalDependencies.

            -
          • -
          -

          Further, if you have an npm-shrinkwrap.json then it will be updated as -well.

          -

          Scope is optional and follows the usual rules for npm-scope(7).

          -

          Examples:

          -
          npm uninstall sax --save
          -npm uninstall @myorg/privatepackage --save
          -npm uninstall node-tap --save-dev
          -npm uninstall dtrace-provider --save-optional
          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-unpublish.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-unpublish.html deleted file mode 100644 index 67beae60..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-unpublish.html +++ /dev/null @@ -1,51 +0,0 @@ - - - npm-unpublish - - - - - - -
          - -

          npm-unpublish

          Remove a package from the registry

          -

          SYNOPSIS

          -
          npm unpublish [<@scope>/]<pkg>[@<version>]
          -

          WARNING

          -

          It is generally considered bad behavior to remove versions of a library -that others are depending on!

          -

          Consider using the deprecate command -instead, if your intent is to encourage users to upgrade.

          -

          There is plenty of room on the registry.

          -

          DESCRIPTION

          -

          This removes a package version from the registry, deleting its -entry and removing the tarball.

          -

          If no version is specified, or if all versions are removed then -the root package entry is removed from the registry entirely.

          -

          Even if a package version is unpublished, that specific name and -version combination can never be reused. In order to publish the -package again, a new version number must be used.

          -

          The scope is optional and follows the usual rules for npm-scope(7).

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-update.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-update.html deleted file mode 100644 index b601fd47..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-update.html +++ /dev/null @@ -1,122 +0,0 @@ - - - npm-update - - - - - - -
          - -

          npm-update

          Update a package

          -

          SYNOPSIS

          -
          npm update [-g] [<pkg>...]
          -
          -aliases: up, upgrade
          -

          DESCRIPTION

          -

          This command will update all the packages listed to the latest version -(specified by the tag config), respecting semver.

          -

          It will also install missing packages. As with all commands that install -packages, the --dev flag will cause devDependencies to be processed -as well.

          -

          If the -g flag is specified, this command will update globally installed -packages.

          -

          If no package name is specified, all packages in the specified location (global -or local) will be updated.

          -

          As of npm@2.6.1, the npm update will only inspect top-level packages. -Prior versions of npm would also recursively inspect all dependencies. -To get the old behavior, use npm --depth 9999 update.

          -

          EXAMPLES

          -

          IMPORTANT VERSION NOTE: these examples assume npm@2.6.1 or later. For -older versions of npm, you must specify --depth 0 to get the behavior -described below.

          -

          For the examples below, assume that the current package is app and it depends -on dependencies, dep1 (dep2, .. etc.). The published versions of dep1 are:

          -
          {
          -  "dist-tags": { "latest": "1.2.2" },
          -  "versions": [
          -    "1.2.2",
          -    "1.2.1",
          -    "1.2.0",
          -    "1.1.2",
          -    "1.1.1",
          -    "1.0.0",
          -    "0.4.1",
          -    "0.4.0",
          -    "0.2.0"
          -  ]
          -}
          -

          Caret Dependencies

          -

          If app's package.json contains:

          -
          "dependencies": {
          -  "dep1": "^1.1.1"
          -}
          -

          Then npm update will install dep1@1.2.2, because 1.2.2 is latest and -1.2.2 satisfies ^1.1.1.

          -

          Tilde Dependencies

          -

          However, if app's package.json contains:

          -
          "dependencies": {
          -  "dep1": "~1.1.1"
          -}
          -

          In this case, running npm update will install dep1@1.1.2. Even though the latest -tag points to 1.2.2, this version does not satisfy ~1.1.1, which is equivalent -to >=1.1.1 <1.2.0. So the highest-sorting version that satisfies ~1.1.1 is used, -which is 1.1.2.

          -

          Caret Dependencies below 1.0.0

          -

          Suppose app has a caret dependency on a version below 1.0.0, for example:

          -
          "dependencies": {
          -  "dep1": "^0.2.0"
          -}
          -

          npm update will install dep1@0.2.0, because there are no other -versions which satisfy ^0.2.0.

          -

          If the dependence were on ^0.4.0:

          -
          "dependencies": {
          -  "dep1": "^0.4.0"
          -}
          -

          Then npm update will install dep1@0.4.1, because that is the highest-sorting -version that satisfies ^0.4.0 (>= 0.4.0 <0.5.0)

          -

          Recording Updates with --save

          -

          When you want to update a package and save the new version as -the minimum required dependency in package.json, you can use -npm update -S or npm update --save. For example if -package.json contains:

          -
          "dependencies": {
          -  "dep1": "^1.1.1"
          -}
          -

          Then npm update --save will install dep1@1.2.2 (i.e., latest), -and package.json will be modified:

          -
          "dependencies": {
          -  "dep1": "^1.2.2"
          -}
          -

          Note that npm will only write an updated version to package.json -if it installs a new package.

          -

          Updating Globally-Installed Packages

          -

          npm update -g will apply the update action to each globally installed -package that is outdated -- that is, has a version that is different from -latest.

          -

          NOTE: If a package has been upgraded to a version newer than latest, it will -be downgraded.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-version.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-version.html deleted file mode 100644 index 773b0d9a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-version.html +++ /dev/null @@ -1,104 +0,0 @@ - - - npm-version - - - - - - -
          - -

          npm-version

          Bump a package version

          -

          SYNOPSIS

          -
          npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]
          -
          -'npm [-v | --version]' to print npm version
          -'npm view <pkg> version' to view a package's published version
          -'npm ls' to inspect current package/dependency versions
          -

          DESCRIPTION

          -

          Run this in a package directory to bump the version and write the new -data back to package.json and, if present, npm-shrinkwrap.json.

          -

          The newversion argument should be a valid semver string, a -valid second argument to semver.inc (one of patch, minor, major, -prepatch, preminor, premajor, prerelease), or from-git. In the second case, -the existing version will be incremented by 1 in the specified field. -from-git will try to read the latest git tag, and use that as the new npm version.

          -

          If run in a git repo, it will also create a version commit and tag. -This behavior is controlled by git-tag-version (see below), and can -be disabled on the command line by running npm --no-git-tag-version version. -It will fail if the working directory is not clean, unless the -f or ---force flag is set.

          -

          If supplied with -m or --message config option, npm will -use it as a commit message when creating a version commit. If the -message config contains %s then that will be replaced with the -resulting version number. For example:

          -
          npm version patch -m "Upgrade to %s for reasons"
          -

          If the sign-git-tag config is set, then the tag will be signed using -the -s flag to git. Note that you must have a default GPG key set up -in your git config for this to work properly. For example:

          -
          $ npm config set sign-git-tag true
          -$ npm version patch
          -
          -You need a passphrase to unlock the secret key for
          -user: "isaacs (http://blog.izs.me/) <i@izs.me>"
          -2048-bit RSA key, ID 6C481CF6, created 2010-08-31
          -
          -Enter passphrase:
          -

          If preversion, version, or postversion are in the scripts property of -the package.json, they will be executed as part of running npm version.

          -

          The exact order of execution is as follows:

          -
            -
          1. Check to make sure the git working directory is clean before we get started. -Your scripts may add files to the commit in future steps. -This step is skipped if the --force flag is set.
          2. -
          3. Run the preversion script. These scripts have access to the old version in package.json. -A typical use would be running your full test suite before deploying. -Any files you want added to the commit should be explicitly added using git add.
          4. -
          5. Bump version in package.json as requested (patch, minor, major, etc).
          6. -
          7. Run the version script. These scripts have access to the new version in package.json -(so they can incorporate it into file headers in generated files for example). -Again, scripts should explicitly add generated files to the commit using git add.
          8. -
          9. Commit and tag.
          10. -
          11. Run the postversion script. Use it to clean up the file system or automatically push -the commit and/or tag.
          12. -
          -

          Take the following example:

          -
          "scripts": {
          -  "preversion": "npm test",
          -  "version": "npm run build && git add -A dist",
          -  "postversion": "git push && git push --tags && rm -rf build/temp"
          -}
          -

          This runs all your tests, and proceeds only if they pass. Then runs your build script, and -adds everything in the dist directory to the commit. After the commit, it pushes the new commit -and tag up to the server, and deletes the build/temp directory.

          -

          CONFIGURATION

          -

          git-tag-version

          -
            -
          • Default: true
          • -
          • Type: Boolean
          • -
          -

          Commit and tag the version change.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-view.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-view.html deleted file mode 100644 index 851ac490..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-view.html +++ /dev/null @@ -1,90 +0,0 @@ - - - npm-view - - - - - - -
          - -

          npm-view

          View registry info

          -

          SYNOPSIS

          -
          npm view [<@scope>/]<name>[@<version>] [<field>[.<subfield>]...]
          -
          -aliases: info, show, v
          -

          DESCRIPTION

          -

          This command shows data about a package and prints it to the stream -referenced by the outfd config, which defaults to stdout.

          -

          To show the package registry entry for the connect package, you can do -this:

          -
          npm view connect
          -

          The default version is "latest" if unspecified.

          -

          Field names can be specified after the package descriptor. -For example, to show the dependencies of the ronn package at version -0.3.5, you could do the following:

          -
          npm view ronn@0.3.5 dependencies
          -

          You can view child fields by separating them with a period. -To view the git repository URL for the latest version of npm, you could -do this:

          -
          npm view npm repository.url
          -

          This makes it easy to view information about a dependency with a bit of -shell scripting. For example, to view all the data about the version of -opts that ronn depends on, you can do this:

          -
          npm view opts@$(npm view ronn dependencies.opts)
          -

          For fields that are arrays, requesting a non-numeric field will return -all of the values from the objects in the list. For example, to get all -the contributor names for the "express" project, you can do this:

          -
          npm view express contributors.email
          -

          You may also use numeric indices in square braces to specifically select -an item in an array field. To just get the email address of the first -contributor in the list, you can do this:

          -
          npm view express contributors[0].email
          -

          Multiple fields may be specified, and will be printed one after another. -For example, to get all the contributor names and email addresses, you -can do this:

          -
          npm view express contributors.name contributors.email
          -

          "Person" fields are shown as a string if they would be shown as an -object. So, for example, this will show the list of npm contributors in -the shortened string format. (See package.json(5) for more on this.)

          -
          npm view npm contributors
          -

          If a version range is provided, then data will be printed for every -matching version of the package. This will show which version of jsdom -was required by each matching version of yui3:

          -
          npm view yui3@'>0.5.4' dependencies.jsdom
          -

          To show the connect package version history, you can do -this:

          -
          npm view connect versions
          -

          OUTPUT

          -

          If only a single string field for a single version is output, then it -will not be colorized or quoted, so as to enable piping the output to -another command. If the field is an object, it will be output as a JavaScript object literal.

          -

          If the --json flag is given, the outputted fields will be JSON.

          -

          If the version range matches multiple versions, than each printed value -will be prefixed with the version it applies to.

          -

          If multiple fields are requested, than each of them are prefixed with -the field name.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-whoami.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-whoami.html deleted file mode 100644 index b123fa2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm-whoami.html +++ /dev/null @@ -1,37 +0,0 @@ - - - npm-whoami - - - - - - -
          - -

          npm-whoami

          Display npm username

          -

          SYNOPSIS

          -
          npm whoami [--registry <registry>]
          -

          DESCRIPTION

          -

          Print the username config to standard output.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm.html deleted file mode 100644 index ed4a3a35..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/cli/npm.html +++ /dev/null @@ -1,154 +0,0 @@ - - - npm - - - - - - -
          - -

          npm

          javascript package manager

          -

          SYNOPSIS

          -
          npm <command> [args]
          -

          VERSION

          -

          3.9.6

          -

          DESCRIPTION

          -

          npm is the package manager for the Node JavaScript platform. It puts -modules in place so that node can find them, and manages dependency -conflicts intelligently.

          -

          It is extremely configurable to support a wide variety of use cases. -Most commonly, it is used to publish, discover, install, and develop node -programs.

          -

          Run npm help to get a list of available commands.

          -

          INTRODUCTION

          -

          You probably got npm because you want to install stuff.

          -

          Use npm install blerg to install the latest version of "blerg". Check out -npm-install(1) for more info. It can do a lot of stuff.

          -

          Use the npm search command to show everything that's available. -Use npm ls to show everything you've installed.

          -

          DEPENDENCIES

          -

          If a package references to another package with a git URL, npm depends -on a preinstalled git.

          -

          If one of the packages npm tries to install is a native node module and -requires compiling of C++ Code, npm will use -node-gyp for that task. -For a Unix system, node-gyp -needs Python, make and a buildchain like GCC. On Windows, -Python and Microsoft Visual Studio C++ are needed. Python 3 is -not supported by node-gyp. -For more information visit -the node-gyp repository and -the node-gyp Wiki.

          -

          DIRECTORIES

          -

          See npm-folders(5) to learn about where npm puts stuff.

          -

          In particular, npm has two modes of operation:

          -
            -
          • global mode:
            npm installs packages into the install prefix at -prefix/lib/node_modules and bins are installed in prefix/bin.
          • -
          • local mode:
            npm installs packages into the current project directory, which -defaults to the current working directory. Packages are installed to -./node_modules, and bins are installed to ./node_modules/.bin.
          • -
          -

          Local mode is the default. Use -g or --global on any command to -operate in global mode instead.

          -

          DEVELOPER USAGE

          -

          If you're using npm to develop and publish your code, check out the -following help topics:

          -
            -
          • json: -Make a package.json file. See package.json(5).
          • -
          • link: -For linking your current working code into Node's path, so that you -don't have to reinstall every time you make a change. Use -npm link to do this.
          • -
          • install: -It's a good idea to install things if you don't need the symbolic link. -Especially, installing other peoples code from the registry is done via -npm install
          • -
          • adduser: -Create an account or log in. Credentials are stored in the -user config file.
          • -
          • publish: -Use the npm publish command to upload your code to the registry.
          • -
          -

          CONFIGURATION

          -

          npm is extremely configurable. It reads its configuration options from -5 places.

          -
            -
          • Command line switches:
            Set a config with --key val. All keys take a value, even if they -are booleans (the config parser doesn't know what the options are at -the time of parsing.) If no value is provided, then the option is set -to boolean true.
          • -
          • Environment Variables:
            Set any config by prefixing the name in an environment variable with -npm_config_. For example, export npm_config_key=val.
          • -
          • User Configs:
            The file at $HOME/.npmrc is an ini-formatted list of configs. If -present, it is parsed. If the userconfig option is set in the cli -or env, then that will be used instead.
          • -
          • Global Configs:
            The file found at ../etc/npmrc (from the node executable, by default -this resolves to /usr/local/etc/npmrc) will be parsed if it is found. -If the globalconfig option is set in the cli, env, or user config, -then that file is parsed instead.
          • -
          • Defaults:
            npm's default configuration options are defined in -lib/utils/config-defs.js. These must not be changed.
          • -
          -

          See npm-config(7) for much much more information.

          -

          CONTRIBUTIONS

          -

          Patches welcome!

          -
            -
          • code: -Read through npm-coding-style(7) if you plan to submit code. -You don't have to agree with it, but you do have to follow it.
          • -
          • docs: -If you find an error in the documentation, edit the appropriate markdown -file in the "doc" folder. (Don't worry about generating the man page.)
          • -
          -

          Contributors are listed in npm's package.json file. You can view them -easily by doing npm view npm contributors.

          -

          If you would like to contribute, but don't know what to work on, read -the contributing guidelines and check the issues list.

          - -

          BUGS

          -

          When you find issues, please report them:

          - -

          Be sure to include all of the output from the npm command that didn't work -as expected. The npm-debug.log file is also helpful to provide.

          -

          You can also look for isaacs in #node.js on irc://irc.freenode.net. He -will no doubt tell you to put the output in a gist or email.

          -

          AUTHOR

          -

          Isaac Z. Schlueter :: -isaacs :: -@izs :: -i@izs.me

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npm-folders.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npm-folders.html deleted file mode 100644 index 5508f79e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npm-folders.html +++ /dev/null @@ -1,186 +0,0 @@ - - - npm-folders - - - - - - -
          - -

          npm-folders

          Folder Structures Used by npm

          -

          DESCRIPTION

          -

          npm puts various things on your computer. That's its job.

          -

          This document will tell you what it puts where.

          -

          tl;dr

          -
            -
          • Local install (default): puts stuff in ./node_modules of the current -package root.
          • -
          • Global install (with -g): puts stuff in /usr/local or wherever node -is installed.
          • -
          • Install it locally if you're going to require() it.
          • -
          • Install it globally if you're going to run it on the command line.
          • -
          • If you need both, then install it in both places, or use npm link.
          • -
          -

          prefix Configuration

          -

          The prefix config defaults to the location where node is installed. -On most systems, this is /usr/local. On windows, this is the exact -location of the node.exe binary. On Unix systems, it's one level up, -since node is typically installed at {prefix}/bin/node rather than -{prefix}/node.exe.

          -

          When the global flag is set, npm installs things into this prefix. -When it is not set, it uses the root of the current package, or the -current working directory if not in a package already.

          -

          Node Modules

          -

          Packages are dropped into the node_modules folder under the prefix. -When installing locally, this means that you can -require("packagename") to load its main module, or -require("packagename/lib/path/to/sub/module") to load other modules.

          -

          Global installs on Unix systems go to {prefix}/lib/node_modules. -Global installs on Windows go to {prefix}/node_modules (that is, no -lib folder.)

          -

          Scoped packages are installed the same way, except they are grouped together -in a sub-folder of the relevant node_modules folder with the name of that -scope prefix by the @ symbol, e.g. npm install @myorg/package would place -the package in {prefix}/node_modules/@myorg/package. See scope(7) for -more details.

          -

          If you wish to require() a package, then install it locally.

          -

          Executables

          -

          When in global mode, executables are linked into {prefix}/bin on Unix, -or directly into {prefix} on Windows.

          -

          When in local mode, executables are linked into -./node_modules/.bin so that they can be made available to scripts run -through npm. (For example, so that a test runner will be in the path -when you run npm test.)

          -

          Man Pages

          -

          When in global mode, man pages are linked into {prefix}/share/man.

          -

          When in local mode, man pages are not installed.

          -

          Man pages are not installed on Windows systems.

          -

          Cache

          -

          See npm-cache(1). Cache files are stored in ~/.npm on Posix, or -~/npm-cache on Windows.

          -

          This is controlled by the cache configuration param.

          -

          Temp Files

          -

          Temporary files are stored by default in the folder specified by the -tmp config, which defaults to the TMPDIR, TMP, or TEMP environment -variables, or /tmp on Unix and c:\windows\temp on Windows.

          -

          Temp files are given a unique folder under this root for each run of the -program, and are deleted upon successful exit.

          -

          More Information

          -

          When installing locally, npm first tries to find an appropriate -prefix folder. This is so that npm install foo@1.2.3 will install -to the sensible root of your package, even if you happen to have cded -into some other folder.

          -

          Starting at the $PWD, npm will walk up the folder tree checking for a -folder that contains either a package.json file, or a node_modules -folder. If such a thing is found, then that is treated as the effective -"current directory" for the purpose of running npm commands. (This -behavior is inspired by and similar to git's .git-folder seeking -logic when running git commands in a working dir.)

          -

          If no package root is found, then the current folder is used.

          -

          When you run npm install foo@1.2.3, then the package is loaded into -the cache, and then unpacked into ./node_modules/foo. Then, any of -foo's dependencies are similarly unpacked into -./node_modules/foo/node_modules/....

          -

          Any bin files are symlinked to ./node_modules/.bin/, so that they may -be found by npm scripts when necessary.

          -

          Global Installation

          -

          If the global configuration is set to true, then npm will -install packages "globally".

          -

          For global installation, packages are installed roughly the same way, -but using the folders described above.

          -

          Cycles, Conflicts, and Folder Parsimony

          -

          Cycles are handled using the property of node's module system that it -walks up the directories looking for node_modules folders. So, at every -stage, if a package is already installed in an ancestor node_modules -folder, then it is not installed at the current location.

          -

          Consider the case above, where foo -> bar -> baz. Imagine if, in -addition to that, baz depended on bar, so you'd have: -foo -> bar -> baz -> bar -> baz .... However, since the folder -structure is: foo/node_modules/bar/node_modules/baz, there's no need to -put another copy of bar into .../baz/node_modules, since when it calls -require("bar"), it will get the copy that is installed in -foo/node_modules/bar.

          -

          This shortcut is only used if the exact same -version would be installed in multiple nested node_modules folders. It -is still possible to have a/node_modules/b/node_modules/a if the two -"a" packages are different versions. However, without repeating the -exact same package multiple times, an infinite regress will always be -prevented.

          -

          Another optimization can be made by installing dependencies at the -highest level possible, below the localized "target" folder.

          -

          Example

          -

          Consider this dependency graph:

          -
          foo
          -+-- blerg@1.2.5
          -+-- bar@1.2.3
          -|   +-- blerg@1.x (latest=1.3.7)
          -|   +-- baz@2.x
          -|   |   `-- quux@3.x
          -|   |       `-- bar@1.2.3 (cycle)
          -|   `-- asdf@*
          -`-- baz@1.2.3
          -    `-- quux@3.x
          -        `-- bar
          -

          In this case, we might expect a folder structure like this:

          -
          foo
          -+-- node_modules
          -    +-- blerg (1.2.5) <---[A]
          -    +-- bar (1.2.3) <---[B]
          -    |   `-- node_modules
          -    |       +-- baz (2.0.2) <---[C]
          -    |       |   `-- node_modules
          -    |       |       `-- quux (3.2.0)
          -    |       `-- asdf (2.3.4)
          -    `-- baz (1.2.3) <---[D]
          -        `-- node_modules
          -            `-- quux (3.2.0) <---[E]
          -

          Since foo depends directly on bar@1.2.3 and baz@1.2.3, those are -installed in foo's node_modules folder.

          -

          Even though the latest copy of blerg is 1.3.7, foo has a specific -dependency on version 1.2.5. So, that gets installed at [A]. Since the -parent installation of blerg satisfies bar's dependency on blerg@1.x, -it does not install another copy under [B].

          -

          Bar [B] also has dependencies on baz and asdf, so those are installed in -bar's node_modules folder. Because it depends on baz@2.x, it cannot -re-use the baz@1.2.3 installed in the parent node_modules folder [D], -and must install its own copy [C].

          -

          Underneath bar, the baz -> quux -> bar dependency creates a cycle. -However, because bar is already in quux's ancestry [B], it does not -unpack another copy of bar into that folder.

          -

          Underneath foo -> baz [D], quux's [E] folder tree is empty, because its -dependency on bar is satisfied by the parent folder copy installed at [B].

          -

          For a graphical breakdown of what is installed where, use npm ls.

          -

          Publishing

          -

          Upon publishing, npm will look in the node_modules folder. If any of -the items there are not in the bundledDependencies array, then they will -not be included in the package tarball.

          -

          This allows a package maintainer to install all of their dependencies -(and dev dependencies) locally, but only re-publish those items that -cannot be found elsewhere. See package.json(5) for more information.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npm-global.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npm-global.html deleted file mode 100644 index 5508f79e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npm-global.html +++ /dev/null @@ -1,186 +0,0 @@ - - - npm-folders - - - - - - -
          - -

          npm-folders

          Folder Structures Used by npm

          -

          DESCRIPTION

          -

          npm puts various things on your computer. That's its job.

          -

          This document will tell you what it puts where.

          -

          tl;dr

          -
            -
          • Local install (default): puts stuff in ./node_modules of the current -package root.
          • -
          • Global install (with -g): puts stuff in /usr/local or wherever node -is installed.
          • -
          • Install it locally if you're going to require() it.
          • -
          • Install it globally if you're going to run it on the command line.
          • -
          • If you need both, then install it in both places, or use npm link.
          • -
          -

          prefix Configuration

          -

          The prefix config defaults to the location where node is installed. -On most systems, this is /usr/local. On windows, this is the exact -location of the node.exe binary. On Unix systems, it's one level up, -since node is typically installed at {prefix}/bin/node rather than -{prefix}/node.exe.

          -

          When the global flag is set, npm installs things into this prefix. -When it is not set, it uses the root of the current package, or the -current working directory if not in a package already.

          -

          Node Modules

          -

          Packages are dropped into the node_modules folder under the prefix. -When installing locally, this means that you can -require("packagename") to load its main module, or -require("packagename/lib/path/to/sub/module") to load other modules.

          -

          Global installs on Unix systems go to {prefix}/lib/node_modules. -Global installs on Windows go to {prefix}/node_modules (that is, no -lib folder.)

          -

          Scoped packages are installed the same way, except they are grouped together -in a sub-folder of the relevant node_modules folder with the name of that -scope prefix by the @ symbol, e.g. npm install @myorg/package would place -the package in {prefix}/node_modules/@myorg/package. See scope(7) for -more details.

          -

          If you wish to require() a package, then install it locally.

          -

          Executables

          -

          When in global mode, executables are linked into {prefix}/bin on Unix, -or directly into {prefix} on Windows.

          -

          When in local mode, executables are linked into -./node_modules/.bin so that they can be made available to scripts run -through npm. (For example, so that a test runner will be in the path -when you run npm test.)

          -

          Man Pages

          -

          When in global mode, man pages are linked into {prefix}/share/man.

          -

          When in local mode, man pages are not installed.

          -

          Man pages are not installed on Windows systems.

          -

          Cache

          -

          See npm-cache(1). Cache files are stored in ~/.npm on Posix, or -~/npm-cache on Windows.

          -

          This is controlled by the cache configuration param.

          -

          Temp Files

          -

          Temporary files are stored by default in the folder specified by the -tmp config, which defaults to the TMPDIR, TMP, or TEMP environment -variables, or /tmp on Unix and c:\windows\temp on Windows.

          -

          Temp files are given a unique folder under this root for each run of the -program, and are deleted upon successful exit.

          -

          More Information

          -

          When installing locally, npm first tries to find an appropriate -prefix folder. This is so that npm install foo@1.2.3 will install -to the sensible root of your package, even if you happen to have cded -into some other folder.

          -

          Starting at the $PWD, npm will walk up the folder tree checking for a -folder that contains either a package.json file, or a node_modules -folder. If such a thing is found, then that is treated as the effective -"current directory" for the purpose of running npm commands. (This -behavior is inspired by and similar to git's .git-folder seeking -logic when running git commands in a working dir.)

          -

          If no package root is found, then the current folder is used.

          -

          When you run npm install foo@1.2.3, then the package is loaded into -the cache, and then unpacked into ./node_modules/foo. Then, any of -foo's dependencies are similarly unpacked into -./node_modules/foo/node_modules/....

          -

          Any bin files are symlinked to ./node_modules/.bin/, so that they may -be found by npm scripts when necessary.

          -

          Global Installation

          -

          If the global configuration is set to true, then npm will -install packages "globally".

          -

          For global installation, packages are installed roughly the same way, -but using the folders described above.

          -

          Cycles, Conflicts, and Folder Parsimony

          -

          Cycles are handled using the property of node's module system that it -walks up the directories looking for node_modules folders. So, at every -stage, if a package is already installed in an ancestor node_modules -folder, then it is not installed at the current location.

          -

          Consider the case above, where foo -> bar -> baz. Imagine if, in -addition to that, baz depended on bar, so you'd have: -foo -> bar -> baz -> bar -> baz .... However, since the folder -structure is: foo/node_modules/bar/node_modules/baz, there's no need to -put another copy of bar into .../baz/node_modules, since when it calls -require("bar"), it will get the copy that is installed in -foo/node_modules/bar.

          -

          This shortcut is only used if the exact same -version would be installed in multiple nested node_modules folders. It -is still possible to have a/node_modules/b/node_modules/a if the two -"a" packages are different versions. However, without repeating the -exact same package multiple times, an infinite regress will always be -prevented.

          -

          Another optimization can be made by installing dependencies at the -highest level possible, below the localized "target" folder.

          -

          Example

          -

          Consider this dependency graph:

          -
          foo
          -+-- blerg@1.2.5
          -+-- bar@1.2.3
          -|   +-- blerg@1.x (latest=1.3.7)
          -|   +-- baz@2.x
          -|   |   `-- quux@3.x
          -|   |       `-- bar@1.2.3 (cycle)
          -|   `-- asdf@*
          -`-- baz@1.2.3
          -    `-- quux@3.x
          -        `-- bar
          -

          In this case, we might expect a folder structure like this:

          -
          foo
          -+-- node_modules
          -    +-- blerg (1.2.5) <---[A]
          -    +-- bar (1.2.3) <---[B]
          -    |   `-- node_modules
          -    |       +-- baz (2.0.2) <---[C]
          -    |       |   `-- node_modules
          -    |       |       `-- quux (3.2.0)
          -    |       `-- asdf (2.3.4)
          -    `-- baz (1.2.3) <---[D]
          -        `-- node_modules
          -            `-- quux (3.2.0) <---[E]
          -

          Since foo depends directly on bar@1.2.3 and baz@1.2.3, those are -installed in foo's node_modules folder.

          -

          Even though the latest copy of blerg is 1.3.7, foo has a specific -dependency on version 1.2.5. So, that gets installed at [A]. Since the -parent installation of blerg satisfies bar's dependency on blerg@1.x, -it does not install another copy under [B].

          -

          Bar [B] also has dependencies on baz and asdf, so those are installed in -bar's node_modules folder. Because it depends on baz@2.x, it cannot -re-use the baz@1.2.3 installed in the parent node_modules folder [D], -and must install its own copy [C].

          -

          Underneath bar, the baz -> quux -> bar dependency creates a cycle. -However, because bar is already in quux's ancestry [B], it does not -unpack another copy of bar into that folder.

          -

          Underneath foo -> baz [D], quux's [E] folder tree is empty, because its -dependency on bar is satisfied by the parent folder copy installed at [B].

          -

          For a graphical breakdown of what is installed where, use npm ls.

          -

          Publishing

          -

          Upon publishing, npm will look in the node_modules folder. If any of -the items there are not in the bundledDependencies array, then they will -not be included in the package tarball.

          -

          This allows a package maintainer to install all of their dependencies -(and dev dependencies) locally, but only re-publish those items that -cannot be found elsewhere. See package.json(5) for more information.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npm-json.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npm-json.html deleted file mode 100644 index d7334344..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npm-json.html +++ /dev/null @@ -1,585 +0,0 @@ - - - package.json - - - - - - -
          - -

          package.json

          Specifics of npm's package.json handling

          -

          DESCRIPTION

          -

          This document is all you need to know about what's required in your package.json -file. It must be actual JSON, not just a JavaScript object literal.

          -

          A lot of the behavior described in this document is affected by the config -settings described in npm-config(7).

          -

          name

          -

          The most important things in your package.json are the name and version fields. -Those are actually required, and your package won't install without -them. The name and version together form an identifier that is assumed -to be completely unique. Changes to the package should come along with -changes to the version.

          -

          The name is what your thing is called.

          -

          Some rules:

          -
            -
          • The name must be less than or equal to 214 characters. This includes the scope for -scoped packages.
          • -
          • The name can't start with a dot or an underscore.
          • -
          • New packages must not have uppercase letters in the name.
          • -
          • The name ends up being part of a URL, an argument on the command line, and a -folder name. Therefore, the name can't contain any non-URL-safe characters.
          • -
          -

          Some tips:

          -
            -
          • Don't use the same name as a core Node module.
          • -
          • Don't put "js" or "node" in the name. It's assumed that it's js, since you're -writing a package.json file, and you can specify the engine using the "engines" -field. (See below.)
          • -
          • The name will probably be passed as an argument to require(), so it should -be something short, but also reasonably descriptive.
          • -
          • You may want to check the npm registry to see if there's something by that name -already, before you get too attached to it. https://www.npmjs.com/
          • -
          -

          A name can be optionally prefixed by a scope, e.g. @myorg/mypackage. See -npm-scope(7) for more detail.

          -

          version

          -

          The most important things in your package.json are the name and version fields. -Those are actually required, and your package won't install without -them. The name and version together form an identifier that is assumed -to be completely unique. Changes to the package should come along with -changes to the version.

          -

          Version must be parseable by -node-semver, which is bundled -with npm as a dependency. (npm install semver to use it yourself.)

          -

          More on version numbers and ranges at semver(7).

          -

          description

          -

          Put a description in it. It's a string. This helps people discover your -package, as it's listed in npm search.

          -

          keywords

          -

          Put keywords in it. It's an array of strings. This helps people -discover your package as it's listed in npm search.

          -

          homepage

          -

          The url to the project homepage.

          -

          bugs

          -

          The url to your project's issue tracker and / or the email address to which -issues should be reported. These are helpful for people who encounter issues -with your package.

          -

          It should look like this:

          -
          { "url" : "https://github.com/owner/project/issues"
          -, "email" : "project@hostname.com"
          -}
          -

          You can specify either one or both values. If you want to provide only a url, -you can specify the value for "bugs" as a simple string instead of an object.

          -

          If a url is provided, it will be used by the npm bugs command.

          -

          license

          -

          You should specify a license for your package so that people know how they are -permitted to use it, and any restrictions you're placing on it.

          -

          If you're using a common license such as BSD-2-Clause or MIT, add a -current SPDX license identifier for the license you're using, like this:

          -
          { "license" : "BSD-3-Clause" }
          -

          You can check the full list of SPDX license IDs. -Ideally you should pick one that is -OSI approved.

          -

          If your package is licensed under multiple common licenses, use an SPDX license -expression syntax version 2.0 string, like this:

          -
          { "license" : "(ISC OR GPL-3.0)" }
          -

          If you are using a license that hasn't been assigned an SPDX identifier, or if -you are using a custom license, use a string value like this one:

          -
          { "license" : "SEE LICENSE IN <filename>" }
          -

          Then include a file named <filename> at the top level of the package.

          -

          Some old packages used license objects or a "licenses" property containing an -array of license objects:

          -
          // Not valid metadata
          -{ "license" :
          -  { "type" : "ISC"
          -  , "url" : "http://opensource.org/licenses/ISC"
          -  }
          -}
          -
          -// Not valid metadata
          -{ "licenses" :
          -  [
          -    { "type": "MIT"
          -    , "url": "http://www.opensource.org/licenses/mit-license.php"
          -    }
          -  , { "type": "Apache-2.0"
          -    , "url": "http://opensource.org/licenses/apache2.0.php"
          -    }
          -  ]
          -}
          -

          Those styles are now deprecated. Instead, use SPDX expressions, like this:

          -
          { "license": "ISC" }
          -
          -{ "license": "(MIT OR Apache-2.0)" }
          -

          Finally, if you do not wish to grant others the right to use a private or -unpublished package under any terms:

          -
          { "license": "UNLICENSED"}
          -

          Consider also setting "private": true to prevent accidental publication.

          -

          people fields: author, contributors

          -

          The "author" is one person. "contributors" is an array of people. A "person" -is an object with a "name" field and optionally "url" and "email", like this:

          -
          { "name" : "Barney Rubble"
          -, "email" : "b@rubble.com"
          -, "url" : "http://barnyrubble.tumblr.com/"
          -}
          -

          Or you can shorten that all into a single string, and npm will parse it for you:

          -
          "Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)"
          -

          Both email and url are optional either way.

          -

          npm also sets a top-level "maintainers" field with your npm user info.

          -

          files

          -

          The "files" field is an array of files to include in your project. If -you name a folder in the array, then it will also include the files -inside that folder. (Unless they would be ignored by another rule.)

          -

          You can also provide a ".npmignore" file in the root of your package or -in subdirectories, which will keep files from being included, even -if they would be picked up by the files array. The .npmignore file -works just like a .gitignore.

          -

          Certain files are always included, regardless of settings:

          -
            -
          • package.json
          • -
          • README
          • -
          • CHANGES / CHANGELOG / HISTORY
          • -
          • LICENSE / LICENCE
          • -
          • NOTICE
          • -
          • The file in the "main" field
          • -
          -

          README, CHANGES, LICENSE & NOTICE can have any case and extension.

          -

          Conversely, some files are always ignored:

          -
            -
          • .git
          • -
          • CVS
          • -
          • .svn
          • -
          • .hg
          • -
          • .lock-wscript
          • -
          • .wafpickle-N
          • -
          • .*.swp
          • -
          • .DS_Store
          • -
          • ._*
          • -
          • npm-debug.log
          • -
          • .npmrc
          • -
          • node_modules
          • -
          • config.gypi
          • -
          -

          main

          -

          The main field is a module ID that is the primary entry point to your program. -That is, if your package is named foo, and a user installs it, and then does -require("foo"), then your main module's exports object will be returned.

          -

          This should be a module ID relative to the root of your package folder.

          -

          For most modules, it makes the most sense to have a main script and often not -much else.

          -

          bin

          -

          A lot of packages have one or more executable files that they'd like to -install into the PATH. npm makes this pretty easy (in fact, it uses this -feature to install the "npm" executable.)

          -

          To use this, supply a bin field in your package.json which is a map of -command name to local file name. On install, npm will symlink that file into -prefix/bin for global installs, or ./node_modules/.bin/ for local -installs.

          -

          For example, myapp could have this:

          -
          { "bin" : { "myapp" : "./cli.js" } }
          -

          So, when you install myapp, it'll create a symlink from the cli.js script to -/usr/local/bin/myapp.

          -

          If you have a single executable, and its name should be the name -of the package, then you can just supply it as a string. For example:

          -
          { "name": "my-program"
          -, "version": "1.2.5"
          -, "bin": "./path/to/program" }
          -

          would be the same as this:

          -
          { "name": "my-program"
          -, "version": "1.2.5"
          -, "bin" : { "my-program" : "./path/to/program" } }
          -

          man

          -

          Specify either a single file or an array of filenames to put in place for the -man program to find.

          -

          If only a single file is provided, then it's installed such that it is the -result from man <pkgname>, regardless of its actual filename. For example:

          -
          { "name" : "foo"
          -, "version" : "1.2.3"
          -, "description" : "A packaged foo fooer for fooing foos"
          -, "main" : "foo.js"
          -, "man" : "./man/doc.1"
          -}
          -

          would link the ./man/doc.1 file in such that it is the target for man foo

          -

          If the filename doesn't start with the package name, then it's prefixed. -So, this:

          -
          { "name" : "foo"
          -, "version" : "1.2.3"
          -, "description" : "A packaged foo fooer for fooing foos"
          -, "main" : "foo.js"
          -, "man" : [ "./man/foo.1", "./man/bar.1" ]
          -}
          -

          will create files to do man foo and man foo-bar.

          -

          Man files must end with a number, and optionally a .gz suffix if they are -compressed. The number dictates which man section the file is installed into.

          -
          { "name" : "foo"
          -, "version" : "1.2.3"
          -, "description" : "A packaged foo fooer for fooing foos"
          -, "main" : "foo.js"
          -, "man" : [ "./man/foo.1", "./man/foo.2" ]
          -}
          -

          will create entries for man foo and man 2 foo

          -

          directories

          -

          The CommonJS Packages spec details a -few ways that you can indicate the structure of your package using a directories -object. If you look at npm's package.json, -you'll see that it has directories for doc, lib, and man.

          -

          In the future, this information may be used in other creative ways.

          -

          directories.lib

          -

          Tell people where the bulk of your library is. Nothing special is done -with the lib folder in any way, but it's useful meta info.

          -

          directories.bin

          -

          If you specify a bin directory in directories.bin, all the files in -that folder will be added.

          -

          Because of the way the bin directive works, specifying both a -bin path and setting directories.bin is an error. If you want to -specify individual files, use bin, and for all the files in an -existing bin directory, use directories.bin.

          -

          directories.man

          -

          A folder that is full of man pages. Sugar to generate a "man" array by -walking the folder.

          -

          directories.doc

          -

          Put markdown files in here. Eventually, these will be displayed nicely, -maybe, someday.

          -

          directories.example

          -

          Put example scripts in here. Someday, it might be exposed in some clever way.

          -

          directories.test

          -

          Put your tests in here. It is currently not exposed, but it might be in the -future.

          -

          repository

          -

          Specify the place where your code lives. This is helpful for people who -want to contribute. If the git repo is on GitHub, then the npm docs -command will be able to find you.

          -

          Do it like this:

          -
          "repository" :
          -  { "type" : "git"
          -  , "url" : "https://github.com/npm/npm.git"
          -  }
          -
          -"repository" :
          -  { "type" : "svn"
          -  , "url" : "https://v8.googlecode.com/svn/trunk/"
          -  }
          -

          The URL should be a publicly available (perhaps read-only) url that can be handed -directly to a VCS program without any modification. It should not be a url to an -html project page that you put in your browser. It's for computers.

          -

          For GitHub, GitHub gist, Bitbucket, or GitLab repositories you can use the same -shortcut syntax you use for npm install:

          -
          "repository": "npm/npm"
          -
          -"repository": "gist:11081aaa281"
          -
          -"repository": "bitbucket:example/repo"
          -
          -"repository": "gitlab:another/repo"
          -

          scripts

          -

          The "scripts" property is a dictionary containing script commands that are run -at various times in the lifecycle of your package. The key is the lifecycle -event, and the value is the command to run at that point.

          -

          See npm-scripts(7) to find out more about writing package scripts.

          -

          config

          -

          A "config" object can be used to set configuration parameters used in package -scripts that persist across upgrades. For instance, if a package had the -following:

          -
          { "name" : "foo"
          -, "config" : { "port" : "8080" } }
          -

          and then had a "start" command that then referenced the -npm_package_config_port environment variable, then the user could -override that by doing npm config set foo:port 8001.

          -

          See npm-config(7) and npm-scripts(7) for more on package -configs.

          -

          dependencies

          -

          Dependencies are specified in a simple object that maps a package name to a -version range. The version range is a string which has one or more -space-separated descriptors. Dependencies can also be identified with a -tarball or git URL.

          -

          Please do not put test harnesses or transpilers in your -dependencies object. See devDependencies, below.

          -

          See semver(7) for more details about specifying version ranges.

          -
            -
          • version Must match version exactly
          • -
          • >version Must be greater than version
          • -
          • >=version etc
          • -
          • <version
          • -
          • <=version
          • -
          • ~version "Approximately equivalent to version" See semver(7)
          • -
          • ^version "Compatible with version" See semver(7)
          • -
          • 1.2.x 1.2.0, 1.2.1, etc., but not 1.3.0
          • -
          • http://... See 'URLs as Dependencies' below
          • -
          • * Matches any version
          • -
          • "" (just an empty string) Same as *
          • -
          • version1 - version2 Same as >=version1 <=version2.
          • -
          • range1 || range2 Passes if either range1 or range2 are satisfied.
          • -
          • git... See 'Git URLs as Dependencies' below
          • -
          • user/repo See 'GitHub URLs' below
          • -
          • tag A specific version tagged and published as tag See npm-tag(1)
          • -
          • path/path/path See Local Paths below
          • -
          -

          For example, these are all valid:

          -
          { "dependencies" :
          -  { "foo" : "1.0.0 - 2.9999.9999"
          -  , "bar" : ">=1.0.2 <2.1.2"
          -  , "baz" : ">1.0.2 <=2.3.4"
          -  , "boo" : "2.0.1"
          -  , "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
          -  , "asd" : "http://asdf.com/asdf.tar.gz"
          -  , "til" : "~1.2"
          -  , "elf" : "~1.2.3"
          -  , "two" : "2.x"
          -  , "thr" : "3.3.x"
          -  , "lat" : "latest"
          -  , "dyl" : "file:../dyl"
          -  }
          -}
          -

          URLs as Dependencies

          -

          You may specify a tarball URL in place of a version range.

          -

          This tarball will be downloaded and installed locally to your package at -install time.

          -

          Git URLs as Dependencies

          -

          Git urls can be of the form:

          -
          git://github.com/user/project.git#commit-ish
          -git+ssh://user@hostname:project.git#commit-ish
          -git+ssh://user@hostname/project.git#commit-ish
          -git+http://user@hostname/project/blah.git#commit-ish
          -git+https://user@hostname/project/blah.git#commit-ish
          -

          The commit-ish can be any tag, sha, or branch which can be supplied as -an argument to git checkout. The default is master.

          -

          GitHub URLs

          -

          As of version 1.1.65, you can refer to GitHub urls as just "foo": -"user/foo-project". Just as with git URLs, a commit-ish suffix can be -included. For example:

          -
          {
          -  "name": "foo",
          -  "version": "0.0.0",
          -  "dependencies": {
          -    "express": "visionmedia/express",
          -    "mocha": "visionmedia/mocha#4727d357ea"
          -  }
          -}
          -

          Local Paths

          -

          As of version 2.0.0 you can provide a path to a local directory that contains a -package. Local paths can be saved using npm install -S or -npm install --save, using any of these forms:

          -
          ../foo/bar
          -~/foo/bar
          -./foo/bar
          -/foo/bar
          -

          in which case they will be normalized to a relative path and added to your -package.json. For example:

          -
          {
          -  "name": "baz",
          -  "dependencies": {
          -    "bar": "file:../foo/bar"
          -  }
          -}
          -

          This feature is helpful for local offline development and creating -tests that require npm installing where you don't want to hit an -external server, but should not be used when publishing packages -to the public registry.

          -

          devDependencies

          -

          If someone is planning on downloading and using your module in their -program, then they probably don't want or need to download and build -the external test or documentation framework that you use.

          -

          In this case, it's best to map these additional items in a devDependencies -object.

          -

          These things will be installed when doing npm link or npm install -from the root of a package, and can be managed like any other npm -configuration param. See npm-config(7) for more on the topic.

          -

          For build steps that are not platform-specific, such as compiling -CoffeeScript or other languages to JavaScript, use the prepublish -script to do this, and make the required package a devDependency.

          -

          For example:

          -
          { "name": "ethopia-waza",
          -  "description": "a delightfully fruity coffee varietal",
          -  "version": "1.2.3",
          -  "devDependencies": {
          -    "coffee-script": "~1.6.3"
          -  },
          -  "scripts": {
          -    "prepublish": "coffee -o lib/ -c src/waza.coffee"
          -  },
          -  "main": "lib/waza.js"
          -}
          -

          The prepublish script will be run before publishing, so that users -can consume the functionality without requiring them to compile it -themselves. In dev mode (ie, locally running npm install), it'll -run this script as well, so that you can test it easily.

          -

          peerDependencies

          -

          In some cases, you want to express the compatibility of your package with a -host tool or library, while not necessarily doing a require of this host. -This is usually referred to as a plugin. Notably, your module may be exposing -a specific interface, expected and specified by the host documentation.

          -

          For example:

          -
          {
          -  "name": "tea-latte",
          -  "version": "1.3.5",
          -  "peerDependencies": {
          -    "tea": "2.x"
          -  }
          -}
          -

          This ensures your package tea-latte can be installed along with the second -major version of the host package tea only. npm install tea-latte could -possibly yield the following dependency graph:

          -
          ├── tea-latte@1.3.5
          -└── tea@2.2.0
          -

          NOTE: npm versions 1 and 2 will automatically install peerDependencies if -they are not explicitly depended upon higher in the dependency tree. In the -next major version of npm (npm@3), this will no longer be the case. You will -receive a warning that the peerDependency is not installed instead. The -behavior in npms 1 & 2 was frequently confusing and could easily put you into -dependency hell, a situation that npm is designed to avoid as much as possible.

          -

          Trying to install another plugin with a conflicting requirement will cause an -error. For this reason, make sure your plugin requirement is as broad as -possible, and not to lock it down to specific patch versions.

          -

          Assuming the host complies with semver, only changes in -the host package's major version will break your plugin. Thus, if you've worked -with every 1.x version of the host package, use "^1.0" or "1.x" to express -this. If you depend on features introduced in 1.5.2, use ">= 1.5.2 < 2".

          -

          bundledDependencies

          -

          This defines an array of package names that will be bundled when publishing -the package.

          -

          In cases where you need to preserve npm packages locally or have them -available through a single file download, you can bundle the packages in a -tarball file by specifying the package names in the bundledDependencies -array and executing npm pack.

          -

          For example:

          -

          If we define a package.json like this:

          -
          {
          -  "name": "awesome-web-framework",
          -  "version": "1.0.0",
          -  "bundledDependencies": [
          -    'renderized', 'super-streams'
          -  ]
          -}
          -

          we can obtain awesome-web-framework-1.0.0.tgz file by running npm pack. -This file contains the dependencies renderized and super-streams which -can be installed in a new project by executing npm install -awesome-web-framework-1.0.0.tgz.

          -

          If this is spelled "bundleDependencies", then that is also honored.

          -

          optionalDependencies

          -

          If a dependency can be used, but you would like npm to proceed if it cannot be -found or fails to install, then you may put it in the optionalDependencies -object. This is a map of package name to version or url, just like the -dependencies object. The difference is that build failures do not cause -installation to fail.

          -

          It is still your program's responsibility to handle the lack of the -dependency. For example, something like this:

          -
          try {
          -  var foo = require('foo')
          -  var fooVersion = require('foo/package.json').version
          -} catch (er) {
          -  foo = null
          -}
          -if ( notGoodFooVersion(fooVersion) ) {
          -  foo = null
          -}
          -
          -// .. then later in your program ..
          -
          -if (foo) {
          -  foo.doFooThings()
          -}
          -

          Entries in optionalDependencies will override entries of the same name in -dependencies, so it's usually best to only put in one place.

          -

          engines

          -

          You can specify the version of node that your stuff works on:

          -
          { "engines" : { "node" : ">=0.10.3 <0.12" } }
          -

          And, like with dependencies, if you don't specify the version (or if you -specify "*" as the version), then any version of node will do.

          -

          If you specify an "engines" field, then npm will require that "node" be -somewhere on that list. If "engines" is omitted, then npm will just assume -that it works on node.

          -

          You can also use the "engines" field to specify which versions of npm -are capable of properly installing your program. For example:

          -
          { "engines" : { "npm" : "~1.0.20" } }
          -

          Unless the user has set the engine-strict config flag, this -field is advisory only will produce warnings when your package is installed as a dependency.

          -

          engineStrict

          -

          This feature was removed in npm 3.0.0

          -

          Prior to npm 3.0.0, this feature was used to treat this package as if the -user had set engine-strict. It is no longer used.

          -

          os

          -

          You can specify which operating systems your -module will run on:

          -
          "os" : [ "darwin", "linux" ]
          -

          You can also blacklist instead of whitelist operating systems, -just prepend the blacklisted os with a '!':

          -
          "os" : [ "!win32" ]
          -

          The host operating system is determined by process.platform

          -

          It is allowed to both blacklist, and whitelist, although there isn't any -good reason to do this.

          -

          cpu

          -

          If your code only runs on certain cpu architectures, -you can specify which ones.

          -
          "cpu" : [ "x64", "ia32" ]
          -

          Like the os option, you can also blacklist architectures:

          -
          "cpu" : [ "!arm", "!mips" ]
          -

          The host architecture is determined by process.arch

          -

          preferGlobal

          -

          If your package is primarily a command-line application that should be -installed globally, then set this value to true to provide a warning -if it is installed locally.

          -

          It doesn't actually prevent users from installing it locally, but it -does help prevent some confusion if it doesn't work as expected.

          -

          private

          -

          If you set "private": true in your package.json, then npm will refuse -to publish it.

          -

          This is a way to prevent accidental publication of private repositories. If -you would like to ensure that a given package is only ever published to a -specific registry (for example, an internal registry), then use the -publishConfig dictionary described below to override the registry config -param at publish-time.

          -

          publishConfig

          -

          This is a set of config values that will be used at publish-time. It's -especially handy if you want to set the tag, registry or access, so that -you can ensure that a given package is not tagged with "latest", published -to the global public registry or that a scoped module is private by default.

          -

          Any config values can be overridden, but of course only "tag", "registry" and -"access" probably matter for the purposes of publishing.

          -

          See npm-config(7) to see the list of config options that can be -overridden.

          -

          DEFAULT VALUES

          -

          npm will default some values based on package contents.

          -
            -
          • "scripts": {"start": "node server.js"}

            -

            If there is a server.js file in the root of your package, then npm -will default the start command to node server.js.

            -
          • -
          • "scripts":{"install": "node-gyp rebuild"}

            -

            If there is a binding.gyp file in the root of your package and you have not defined an install or preinstall script, npm will -default the install command to compile using node-gyp.

            -
          • -
          • "contributors": [...]

            -

            If there is an AUTHORS file in the root of your package, npm will -treat each line as a Name <email> (url) format, where email and url -are optional. Lines which start with a # or are blank, will be -ignored.

            -
          • -
          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npmrc.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npmrc.html deleted file mode 100644 index e0060913..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/npmrc.html +++ /dev/null @@ -1,87 +0,0 @@ - - - npmrc - - - - - - -
          - -

          npmrc

          The npm config files

          -

          DESCRIPTION

          -

          npm gets its config settings from the command line, environment -variables, and npmrc files.

          -

          The npm config command can be used to update and edit the contents -of the user and global npmrc files.

          -

          For a list of available configuration options, see npm-config(7).

          -

          FILES

          -

          The four relevant files are:

          -
            -
          • per-project config file (/path/to/my/project/.npmrc)
          • -
          • per-user config file (~/.npmrc)
          • -
          • global config file ($PREFIX/etc/npmrc)
          • -
          • npm builtin config file (/path/to/npm/npmrc)
          • -
          -

          All npm config files are an ini-formatted list of key = value -parameters. Environment variables can be replaced using -${VARIABLE_NAME}. For example:

          -
          prefix = ${HOME}/.npm-packages
          -

          Each of these files is loaded, and config options are resolved in -priority order. For example, a setting in the userconfig file would -override the setting in the globalconfig file.

          -

          Array values are specified by adding "[]" after the key name. For -example:

          -
          key[] = "first value"
          -key[] = "second value"
          -

          NOTE: Because local (per-project or per-user) .npmrc files can contain -sensitive credentials, they must be readable and writable only by your user -account (i.e. must have a mode of 0600), otherwise they will be ignored by -npm!

          -

          Per-project config file

          -

          When working locally in a project, a .npmrc file in the root of the -project (ie, a sibling of node_modules and package.json) will set -config values specific to this project.

          -

          Note that this only applies to the root of the project that you're -running npm in. It has no effect when your module is published. For -example, you can't publish a module that forces itself to install -globally, or in a different location.

          -

          Additionally, this file is not read in global mode, such as when running -npm install -g.

          -

          Per-user config file

          -

          $HOME/.npmrc (or the userconfig param, if set in the environment -or on the command line)

          -

          Global config file

          -

          $PREFIX/etc/npmrc (or the globalconfig param, if set above): -This file is an ini-file formatted list of key = value parameters. -Environment variables can be replaced as above.

          -

          Built-in config file

          -

          path/to/npm/itself/npmrc

          -

          This is an unchangeable "builtin" configuration file that npm keeps -consistent across updates. Set fields in here using the ./configure -script that comes with npm. This is primarily for distribution -maintainers to override default configs in a standard and consistent -manner.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/package.json.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/package.json.html deleted file mode 100644 index d7334344..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/files/package.json.html +++ /dev/null @@ -1,585 +0,0 @@ - - - package.json - - - - - - -
          - -

          package.json

          Specifics of npm's package.json handling

          -

          DESCRIPTION

          -

          This document is all you need to know about what's required in your package.json -file. It must be actual JSON, not just a JavaScript object literal.

          -

          A lot of the behavior described in this document is affected by the config -settings described in npm-config(7).

          -

          name

          -

          The most important things in your package.json are the name and version fields. -Those are actually required, and your package won't install without -them. The name and version together form an identifier that is assumed -to be completely unique. Changes to the package should come along with -changes to the version.

          -

          The name is what your thing is called.

          -

          Some rules:

          -
            -
          • The name must be less than or equal to 214 characters. This includes the scope for -scoped packages.
          • -
          • The name can't start with a dot or an underscore.
          • -
          • New packages must not have uppercase letters in the name.
          • -
          • The name ends up being part of a URL, an argument on the command line, and a -folder name. Therefore, the name can't contain any non-URL-safe characters.
          • -
          -

          Some tips:

          -
            -
          • Don't use the same name as a core Node module.
          • -
          • Don't put "js" or "node" in the name. It's assumed that it's js, since you're -writing a package.json file, and you can specify the engine using the "engines" -field. (See below.)
          • -
          • The name will probably be passed as an argument to require(), so it should -be something short, but also reasonably descriptive.
          • -
          • You may want to check the npm registry to see if there's something by that name -already, before you get too attached to it. https://www.npmjs.com/
          • -
          -

          A name can be optionally prefixed by a scope, e.g. @myorg/mypackage. See -npm-scope(7) for more detail.

          -

          version

          -

          The most important things in your package.json are the name and version fields. -Those are actually required, and your package won't install without -them. The name and version together form an identifier that is assumed -to be completely unique. Changes to the package should come along with -changes to the version.

          -

          Version must be parseable by -node-semver, which is bundled -with npm as a dependency. (npm install semver to use it yourself.)

          -

          More on version numbers and ranges at semver(7).

          -

          description

          -

          Put a description in it. It's a string. This helps people discover your -package, as it's listed in npm search.

          -

          keywords

          -

          Put keywords in it. It's an array of strings. This helps people -discover your package as it's listed in npm search.

          -

          homepage

          -

          The url to the project homepage.

          -

          bugs

          -

          The url to your project's issue tracker and / or the email address to which -issues should be reported. These are helpful for people who encounter issues -with your package.

          -

          It should look like this:

          -
          { "url" : "https://github.com/owner/project/issues"
          -, "email" : "project@hostname.com"
          -}
          -

          You can specify either one or both values. If you want to provide only a url, -you can specify the value for "bugs" as a simple string instead of an object.

          -

          If a url is provided, it will be used by the npm bugs command.

          -

          license

          -

          You should specify a license for your package so that people know how they are -permitted to use it, and any restrictions you're placing on it.

          -

          If you're using a common license such as BSD-2-Clause or MIT, add a -current SPDX license identifier for the license you're using, like this:

          -
          { "license" : "BSD-3-Clause" }
          -

          You can check the full list of SPDX license IDs. -Ideally you should pick one that is -OSI approved.

          -

          If your package is licensed under multiple common licenses, use an SPDX license -expression syntax version 2.0 string, like this:

          -
          { "license" : "(ISC OR GPL-3.0)" }
          -

          If you are using a license that hasn't been assigned an SPDX identifier, or if -you are using a custom license, use a string value like this one:

          -
          { "license" : "SEE LICENSE IN <filename>" }
          -

          Then include a file named <filename> at the top level of the package.

          -

          Some old packages used license objects or a "licenses" property containing an -array of license objects:

          -
          // Not valid metadata
          -{ "license" :
          -  { "type" : "ISC"
          -  , "url" : "http://opensource.org/licenses/ISC"
          -  }
          -}
          -
          -// Not valid metadata
          -{ "licenses" :
          -  [
          -    { "type": "MIT"
          -    , "url": "http://www.opensource.org/licenses/mit-license.php"
          -    }
          -  , { "type": "Apache-2.0"
          -    , "url": "http://opensource.org/licenses/apache2.0.php"
          -    }
          -  ]
          -}
          -

          Those styles are now deprecated. Instead, use SPDX expressions, like this:

          -
          { "license": "ISC" }
          -
          -{ "license": "(MIT OR Apache-2.0)" }
          -

          Finally, if you do not wish to grant others the right to use a private or -unpublished package under any terms:

          -
          { "license": "UNLICENSED"}
          -

          Consider also setting "private": true to prevent accidental publication.

          -

          people fields: author, contributors

          -

          The "author" is one person. "contributors" is an array of people. A "person" -is an object with a "name" field and optionally "url" and "email", like this:

          -
          { "name" : "Barney Rubble"
          -, "email" : "b@rubble.com"
          -, "url" : "http://barnyrubble.tumblr.com/"
          -}
          -

          Or you can shorten that all into a single string, and npm will parse it for you:

          -
          "Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)"
          -

          Both email and url are optional either way.

          -

          npm also sets a top-level "maintainers" field with your npm user info.

          -

          files

          -

          The "files" field is an array of files to include in your project. If -you name a folder in the array, then it will also include the files -inside that folder. (Unless they would be ignored by another rule.)

          -

          You can also provide a ".npmignore" file in the root of your package or -in subdirectories, which will keep files from being included, even -if they would be picked up by the files array. The .npmignore file -works just like a .gitignore.

          -

          Certain files are always included, regardless of settings:

          -
            -
          • package.json
          • -
          • README
          • -
          • CHANGES / CHANGELOG / HISTORY
          • -
          • LICENSE / LICENCE
          • -
          • NOTICE
          • -
          • The file in the "main" field
          • -
          -

          README, CHANGES, LICENSE & NOTICE can have any case and extension.

          -

          Conversely, some files are always ignored:

          -
            -
          • .git
          • -
          • CVS
          • -
          • .svn
          • -
          • .hg
          • -
          • .lock-wscript
          • -
          • .wafpickle-N
          • -
          • .*.swp
          • -
          • .DS_Store
          • -
          • ._*
          • -
          • npm-debug.log
          • -
          • .npmrc
          • -
          • node_modules
          • -
          • config.gypi
          • -
          -

          main

          -

          The main field is a module ID that is the primary entry point to your program. -That is, if your package is named foo, and a user installs it, and then does -require("foo"), then your main module's exports object will be returned.

          -

          This should be a module ID relative to the root of your package folder.

          -

          For most modules, it makes the most sense to have a main script and often not -much else.

          -

          bin

          -

          A lot of packages have one or more executable files that they'd like to -install into the PATH. npm makes this pretty easy (in fact, it uses this -feature to install the "npm" executable.)

          -

          To use this, supply a bin field in your package.json which is a map of -command name to local file name. On install, npm will symlink that file into -prefix/bin for global installs, or ./node_modules/.bin/ for local -installs.

          -

          For example, myapp could have this:

          -
          { "bin" : { "myapp" : "./cli.js" } }
          -

          So, when you install myapp, it'll create a symlink from the cli.js script to -/usr/local/bin/myapp.

          -

          If you have a single executable, and its name should be the name -of the package, then you can just supply it as a string. For example:

          -
          { "name": "my-program"
          -, "version": "1.2.5"
          -, "bin": "./path/to/program" }
          -

          would be the same as this:

          -
          { "name": "my-program"
          -, "version": "1.2.5"
          -, "bin" : { "my-program" : "./path/to/program" } }
          -

          man

          -

          Specify either a single file or an array of filenames to put in place for the -man program to find.

          -

          If only a single file is provided, then it's installed such that it is the -result from man <pkgname>, regardless of its actual filename. For example:

          -
          { "name" : "foo"
          -, "version" : "1.2.3"
          -, "description" : "A packaged foo fooer for fooing foos"
          -, "main" : "foo.js"
          -, "man" : "./man/doc.1"
          -}
          -

          would link the ./man/doc.1 file in such that it is the target for man foo

          -

          If the filename doesn't start with the package name, then it's prefixed. -So, this:

          -
          { "name" : "foo"
          -, "version" : "1.2.3"
          -, "description" : "A packaged foo fooer for fooing foos"
          -, "main" : "foo.js"
          -, "man" : [ "./man/foo.1", "./man/bar.1" ]
          -}
          -

          will create files to do man foo and man foo-bar.

          -

          Man files must end with a number, and optionally a .gz suffix if they are -compressed. The number dictates which man section the file is installed into.

          -
          { "name" : "foo"
          -, "version" : "1.2.3"
          -, "description" : "A packaged foo fooer for fooing foos"
          -, "main" : "foo.js"
          -, "man" : [ "./man/foo.1", "./man/foo.2" ]
          -}
          -

          will create entries for man foo and man 2 foo

          -

          directories

          -

          The CommonJS Packages spec details a -few ways that you can indicate the structure of your package using a directories -object. If you look at npm's package.json, -you'll see that it has directories for doc, lib, and man.

          -

          In the future, this information may be used in other creative ways.

          -

          directories.lib

          -

          Tell people where the bulk of your library is. Nothing special is done -with the lib folder in any way, but it's useful meta info.

          -

          directories.bin

          -

          If you specify a bin directory in directories.bin, all the files in -that folder will be added.

          -

          Because of the way the bin directive works, specifying both a -bin path and setting directories.bin is an error. If you want to -specify individual files, use bin, and for all the files in an -existing bin directory, use directories.bin.

          -

          directories.man

          -

          A folder that is full of man pages. Sugar to generate a "man" array by -walking the folder.

          -

          directories.doc

          -

          Put markdown files in here. Eventually, these will be displayed nicely, -maybe, someday.

          -

          directories.example

          -

          Put example scripts in here. Someday, it might be exposed in some clever way.

          -

          directories.test

          -

          Put your tests in here. It is currently not exposed, but it might be in the -future.

          -

          repository

          -

          Specify the place where your code lives. This is helpful for people who -want to contribute. If the git repo is on GitHub, then the npm docs -command will be able to find you.

          -

          Do it like this:

          -
          "repository" :
          -  { "type" : "git"
          -  , "url" : "https://github.com/npm/npm.git"
          -  }
          -
          -"repository" :
          -  { "type" : "svn"
          -  , "url" : "https://v8.googlecode.com/svn/trunk/"
          -  }
          -

          The URL should be a publicly available (perhaps read-only) url that can be handed -directly to a VCS program without any modification. It should not be a url to an -html project page that you put in your browser. It's for computers.

          -

          For GitHub, GitHub gist, Bitbucket, or GitLab repositories you can use the same -shortcut syntax you use for npm install:

          -
          "repository": "npm/npm"
          -
          -"repository": "gist:11081aaa281"
          -
          -"repository": "bitbucket:example/repo"
          -
          -"repository": "gitlab:another/repo"
          -

          scripts

          -

          The "scripts" property is a dictionary containing script commands that are run -at various times in the lifecycle of your package. The key is the lifecycle -event, and the value is the command to run at that point.

          -

          See npm-scripts(7) to find out more about writing package scripts.

          -

          config

          -

          A "config" object can be used to set configuration parameters used in package -scripts that persist across upgrades. For instance, if a package had the -following:

          -
          { "name" : "foo"
          -, "config" : { "port" : "8080" } }
          -

          and then had a "start" command that then referenced the -npm_package_config_port environment variable, then the user could -override that by doing npm config set foo:port 8001.

          -

          See npm-config(7) and npm-scripts(7) for more on package -configs.

          -

          dependencies

          -

          Dependencies are specified in a simple object that maps a package name to a -version range. The version range is a string which has one or more -space-separated descriptors. Dependencies can also be identified with a -tarball or git URL.

          -

          Please do not put test harnesses or transpilers in your -dependencies object. See devDependencies, below.

          -

          See semver(7) for more details about specifying version ranges.

          -
            -
          • version Must match version exactly
          • -
          • >version Must be greater than version
          • -
          • >=version etc
          • -
          • <version
          • -
          • <=version
          • -
          • ~version "Approximately equivalent to version" See semver(7)
          • -
          • ^version "Compatible with version" See semver(7)
          • -
          • 1.2.x 1.2.0, 1.2.1, etc., but not 1.3.0
          • -
          • http://... See 'URLs as Dependencies' below
          • -
          • * Matches any version
          • -
          • "" (just an empty string) Same as *
          • -
          • version1 - version2 Same as >=version1 <=version2.
          • -
          • range1 || range2 Passes if either range1 or range2 are satisfied.
          • -
          • git... See 'Git URLs as Dependencies' below
          • -
          • user/repo See 'GitHub URLs' below
          • -
          • tag A specific version tagged and published as tag See npm-tag(1)
          • -
          • path/path/path See Local Paths below
          • -
          -

          For example, these are all valid:

          -
          { "dependencies" :
          -  { "foo" : "1.0.0 - 2.9999.9999"
          -  , "bar" : ">=1.0.2 <2.1.2"
          -  , "baz" : ">1.0.2 <=2.3.4"
          -  , "boo" : "2.0.1"
          -  , "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
          -  , "asd" : "http://asdf.com/asdf.tar.gz"
          -  , "til" : "~1.2"
          -  , "elf" : "~1.2.3"
          -  , "two" : "2.x"
          -  , "thr" : "3.3.x"
          -  , "lat" : "latest"
          -  , "dyl" : "file:../dyl"
          -  }
          -}
          -

          URLs as Dependencies

          -

          You may specify a tarball URL in place of a version range.

          -

          This tarball will be downloaded and installed locally to your package at -install time.

          -

          Git URLs as Dependencies

          -

          Git urls can be of the form:

          -
          git://github.com/user/project.git#commit-ish
          -git+ssh://user@hostname:project.git#commit-ish
          -git+ssh://user@hostname/project.git#commit-ish
          -git+http://user@hostname/project/blah.git#commit-ish
          -git+https://user@hostname/project/blah.git#commit-ish
          -

          The commit-ish can be any tag, sha, or branch which can be supplied as -an argument to git checkout. The default is master.

          -

          GitHub URLs

          -

          As of version 1.1.65, you can refer to GitHub urls as just "foo": -"user/foo-project". Just as with git URLs, a commit-ish suffix can be -included. For example:

          -
          {
          -  "name": "foo",
          -  "version": "0.0.0",
          -  "dependencies": {
          -    "express": "visionmedia/express",
          -    "mocha": "visionmedia/mocha#4727d357ea"
          -  }
          -}
          -

          Local Paths

          -

          As of version 2.0.0 you can provide a path to a local directory that contains a -package. Local paths can be saved using npm install -S or -npm install --save, using any of these forms:

          -
          ../foo/bar
          -~/foo/bar
          -./foo/bar
          -/foo/bar
          -

          in which case they will be normalized to a relative path and added to your -package.json. For example:

          -
          {
          -  "name": "baz",
          -  "dependencies": {
          -    "bar": "file:../foo/bar"
          -  }
          -}
          -

          This feature is helpful for local offline development and creating -tests that require npm installing where you don't want to hit an -external server, but should not be used when publishing packages -to the public registry.

          -

          devDependencies

          -

          If someone is planning on downloading and using your module in their -program, then they probably don't want or need to download and build -the external test or documentation framework that you use.

          -

          In this case, it's best to map these additional items in a devDependencies -object.

          -

          These things will be installed when doing npm link or npm install -from the root of a package, and can be managed like any other npm -configuration param. See npm-config(7) for more on the topic.

          -

          For build steps that are not platform-specific, such as compiling -CoffeeScript or other languages to JavaScript, use the prepublish -script to do this, and make the required package a devDependency.

          -

          For example:

          -
          { "name": "ethopia-waza",
          -  "description": "a delightfully fruity coffee varietal",
          -  "version": "1.2.3",
          -  "devDependencies": {
          -    "coffee-script": "~1.6.3"
          -  },
          -  "scripts": {
          -    "prepublish": "coffee -o lib/ -c src/waza.coffee"
          -  },
          -  "main": "lib/waza.js"
          -}
          -

          The prepublish script will be run before publishing, so that users -can consume the functionality without requiring them to compile it -themselves. In dev mode (ie, locally running npm install), it'll -run this script as well, so that you can test it easily.

          -

          peerDependencies

          -

          In some cases, you want to express the compatibility of your package with a -host tool or library, while not necessarily doing a require of this host. -This is usually referred to as a plugin. Notably, your module may be exposing -a specific interface, expected and specified by the host documentation.

          -

          For example:

          -
          {
          -  "name": "tea-latte",
          -  "version": "1.3.5",
          -  "peerDependencies": {
          -    "tea": "2.x"
          -  }
          -}
          -

          This ensures your package tea-latte can be installed along with the second -major version of the host package tea only. npm install tea-latte could -possibly yield the following dependency graph:

          -
          ├── tea-latte@1.3.5
          -└── tea@2.2.0
          -

          NOTE: npm versions 1 and 2 will automatically install peerDependencies if -they are not explicitly depended upon higher in the dependency tree. In the -next major version of npm (npm@3), this will no longer be the case. You will -receive a warning that the peerDependency is not installed instead. The -behavior in npms 1 & 2 was frequently confusing and could easily put you into -dependency hell, a situation that npm is designed to avoid as much as possible.

          -

          Trying to install another plugin with a conflicting requirement will cause an -error. For this reason, make sure your plugin requirement is as broad as -possible, and not to lock it down to specific patch versions.

          -

          Assuming the host complies with semver, only changes in -the host package's major version will break your plugin. Thus, if you've worked -with every 1.x version of the host package, use "^1.0" or "1.x" to express -this. If you depend on features introduced in 1.5.2, use ">= 1.5.2 < 2".

          -

          bundledDependencies

          -

          This defines an array of package names that will be bundled when publishing -the package.

          -

          In cases where you need to preserve npm packages locally or have them -available through a single file download, you can bundle the packages in a -tarball file by specifying the package names in the bundledDependencies -array and executing npm pack.

          -

          For example:

          -

          If we define a package.json like this:

          -
          {
          -  "name": "awesome-web-framework",
          -  "version": "1.0.0",
          -  "bundledDependencies": [
          -    'renderized', 'super-streams'
          -  ]
          -}
          -

          we can obtain awesome-web-framework-1.0.0.tgz file by running npm pack. -This file contains the dependencies renderized and super-streams which -can be installed in a new project by executing npm install -awesome-web-framework-1.0.0.tgz.

          -

          If this is spelled "bundleDependencies", then that is also honored.

          -

          optionalDependencies

          -

          If a dependency can be used, but you would like npm to proceed if it cannot be -found or fails to install, then you may put it in the optionalDependencies -object. This is a map of package name to version or url, just like the -dependencies object. The difference is that build failures do not cause -installation to fail.

          -

          It is still your program's responsibility to handle the lack of the -dependency. For example, something like this:

          -
          try {
          -  var foo = require('foo')
          -  var fooVersion = require('foo/package.json').version
          -} catch (er) {
          -  foo = null
          -}
          -if ( notGoodFooVersion(fooVersion) ) {
          -  foo = null
          -}
          -
          -// .. then later in your program ..
          -
          -if (foo) {
          -  foo.doFooThings()
          -}
          -

          Entries in optionalDependencies will override entries of the same name in -dependencies, so it's usually best to only put in one place.

          -

          engines

          -

          You can specify the version of node that your stuff works on:

          -
          { "engines" : { "node" : ">=0.10.3 <0.12" } }
          -

          And, like with dependencies, if you don't specify the version (or if you -specify "*" as the version), then any version of node will do.

          -

          If you specify an "engines" field, then npm will require that "node" be -somewhere on that list. If "engines" is omitted, then npm will just assume -that it works on node.

          -

          You can also use the "engines" field to specify which versions of npm -are capable of properly installing your program. For example:

          -
          { "engines" : { "npm" : "~1.0.20" } }
          -

          Unless the user has set the engine-strict config flag, this -field is advisory only will produce warnings when your package is installed as a dependency.

          -

          engineStrict

          -

          This feature was removed in npm 3.0.0

          -

          Prior to npm 3.0.0, this feature was used to treat this package as if the -user had set engine-strict. It is no longer used.

          -

          os

          -

          You can specify which operating systems your -module will run on:

          -
          "os" : [ "darwin", "linux" ]
          -

          You can also blacklist instead of whitelist operating systems, -just prepend the blacklisted os with a '!':

          -
          "os" : [ "!win32" ]
          -

          The host operating system is determined by process.platform

          -

          It is allowed to both blacklist, and whitelist, although there isn't any -good reason to do this.

          -

          cpu

          -

          If your code only runs on certain cpu architectures, -you can specify which ones.

          -
          "cpu" : [ "x64", "ia32" ]
          -

          Like the os option, you can also blacklist architectures:

          -
          "cpu" : [ "!arm", "!mips" ]
          -

          The host architecture is determined by process.arch

          -

          preferGlobal

          -

          If your package is primarily a command-line application that should be -installed globally, then set this value to true to provide a warning -if it is installed locally.

          -

          It doesn't actually prevent users from installing it locally, but it -does help prevent some confusion if it doesn't work as expected.

          -

          private

          -

          If you set "private": true in your package.json, then npm will refuse -to publish it.

          -

          This is a way to prevent accidental publication of private repositories. If -you would like to ensure that a given package is only ever published to a -specific registry (for example, an internal registry), then use the -publishConfig dictionary described below to override the registry config -param at publish-time.

          -

          publishConfig

          -

          This is a set of config values that will be used at publish-time. It's -especially handy if you want to set the tag, registry or access, so that -you can ensure that a given package is not tagged with "latest", published -to the global public registry or that a scoped module is private by default.

          -

          Any config values can be overridden, but of course only "tag", "registry" and -"access" probably matter for the purposes of publishing.

          -

          See npm-config(7) to see the list of config options that can be -overridden.

          -

          DEFAULT VALUES

          -

          npm will default some values based on package contents.

          -
            -
          • "scripts": {"start": "node server.js"}

            -

            If there is a server.js file in the root of your package, then npm -will default the start command to node server.js.

            -
          • -
          • "scripts":{"install": "node-gyp rebuild"}

            -

            If there is a binding.gyp file in the root of your package and you have not defined an install or preinstall script, npm will -default the install command to compile using node-gyp.

            -
          • -
          • "contributors": [...]

            -

            If there is an AUTHORS file in the root of your package, npm will -treat each line as a Name <email> (url) format, where email and url -are optional. Lines which start with a # or are blank, will be -ignored.

            -
          • -
          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/index.html deleted file mode 100644 index 36a46923..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/index.html +++ /dev/null @@ -1,166 +0,0 @@ - - - npm-index - - - - - - -
          - -

          npm-index

          Index of all npm documentation

          -

          README

          -

          a JavaScript package manager

          -

          Command Line Documentation

          -

          Using npm on the command line

          -

          npm(1)

          -

          javascript package manager

          -

          npm-access(1)

          -

          Set access level on published packages

          -

          npm-adduser(1)

          -

          Add a registry user account

          -

          npm-bin(1)

          -

          Display npm bin folder

          -

          npm-bugs(1)

          -

          Bugs for a package in a web browser maybe

          -

          npm-build(1)

          -

          Build a package

          -

          npm-bundle(1)

          -

          REMOVED

          -

          npm-cache(1)

          -

          Manipulates packages cache

          -

          npm-completion(1)

          -

          Tab Completion for npm

          -

          npm-config(1)

          -

          Manage the npm configuration files

          -

          npm-dedupe(1)

          -

          Reduce duplication

          -

          npm-deprecate(1)

          -

          Deprecate a version of a package

          -

          npm-dist-tag(1)

          -

          Modify package distribution tags

          -

          npm-docs(1)

          -

          Docs for a package in a web browser maybe

          -

          npm-edit(1)

          -

          Edit an installed package

          -

          npm-explore(1)

          -

          Browse an installed package

          -

          npm-help-search(1)

          -

          Search npm help documentation

          -

          npm-help(1)

          -

          Get help on npm

          -

          npm-init(1)

          -

          Interactively create a package.json file

          -

          npm-install-test(1)

          -

          Install package(s) and run tests

          -

          npm-install(1)

          -

          Install a package

          - -

          Symlink a package folder

          -

          npm-logout(1)

          -

          Log out of the registry

          -

          npm-ls(1)

          -

          List installed packages

          -

          npm-outdated(1)

          -

          Check for outdated packages

          -

          npm-owner(1)

          -

          Manage package owners

          -

          npm-pack(1)

          -

          Create a tarball from a package

          -

          npm-ping(1)

          -

          Ping npm registry

          -

          npm-prefix(1)

          -

          Display prefix

          -

          npm-prune(1)

          -

          Remove extraneous packages

          -

          npm-publish(1)

          -

          Publish a package

          -

          npm-rebuild(1)

          -

          Rebuild a package

          -

          npm-repo(1)

          -

          Open package repository page in the browser

          -

          npm-restart(1)

          -

          Restart a package

          -

          npm-root(1)

          -

          Display npm root

          -

          npm-run-script(1)

          -

          Run arbitrary package scripts

          -

          npm-search(1)

          -

          Search for packages

          -

          npm-shrinkwrap(1)

          -

          Lock down dependency versions

          -

          npm-star(1)

          -

          Mark your favorite packages

          -

          npm-stars(1)

          -

          View packages marked as favorites

          -

          npm-start(1)

          -

          Start a package

          -

          npm-stop(1)

          -

          Stop a package

          -

          npm-tag(1)

          -

          Tag a published version

          -

          npm-team(1)

          -

          Manage organization teams and team memberships

          -

          npm-test(1)

          -

          Test a package

          -

          npm-uninstall(1)

          -

          Remove a package

          -

          npm-unpublish(1)

          -

          Remove a package from the registry

          -

          npm-update(1)

          -

          Update a package

          -

          npm-version(1)

          -

          Bump a package version

          -

          npm-view(1)

          -

          View registry info

          -

          npm-whoami(1)

          -

          Display npm username

          -

          API Documentation

          -

          Using npm in your Node programs

          -

          Files

          -

          File system structures npm uses

          -

          npm-folders(5)

          -

          Folder Structures Used by npm

          -

          npmrc(5)

          -

          The npm config files

          -

          package.json(5)

          -

          Specifics of npm's package.json handling

          -

          Misc

          -

          Various other bits and bobs

          -

          npm-coding-style(7)

          -

          npm's "funny" coding style

          -

          npm-config(7)

          -

          More than you probably want to know about npm configuration

          -

          npm-developers(7)

          -

          Developer Guide

          -

          npm-disputes(7)

          -

          Handling Module Name Disputes

          -

          npm-index(7)

          -

          Index of all npm documentation

          -

          npm-orgs(7)

          -

          Working with Teams & Orgs

          -

          npm-registry(7)

          -

          The JavaScript Package Registry

          -

          npm-scope(7)

          -

          Scoped packages

          -

          npm-scripts(7)

          -

          How npm handles the "scripts" field

          -

          removing-npm(7)

          -

          Cleaning the Slate

          -

          semver(7)

          -

          The semantic versioner for npm

          - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-coding-style.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-coding-style.html deleted file mode 100644 index 8e815a4a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-coding-style.html +++ /dev/null @@ -1,157 +0,0 @@ - - - npm-coding-style - - - - - - -
          - -

          npm-coding-style

          npm's "funny" coding style

          -

          DESCRIPTION

          -

          npm's coding style is a bit unconventional. It is not different for -difference's sake, but rather a carefully crafted style that is -designed to reduce visual clutter and make bugs more apparent.

          -

          If you want to contribute to npm (which is very encouraged), you should -make your code conform to npm's style.

          -

          Note: this concerns npm's code not the specific packages that you can download from the npm registry.

          -

          Line Length

          -

          Keep lines shorter than 80 characters. It's better for lines to be -too short than to be too long. Break up long lists, objects, and other -statements onto multiple lines.

          -

          Indentation

          -

          Two-spaces. Tabs are better, but they look like hell in web browsers -(and on GitHub), and node uses 2 spaces, so that's that.

          -

          Configure your editor appropriately.

          -

          Curly braces

          -

          Curly braces belong on the same line as the thing that necessitates them.

          -

          Bad:

          -
          function ()
          -{
          -

          Good:

          -
          function () {
          -

          If a block needs to wrap to the next line, use a curly brace. Don't -use it if it doesn't.

          -

          Bad:

          -
          if (foo) { bar() }
          -while (foo)
          -  bar()
          -

          Good:

          -
          if (foo) bar()
          -while (foo) {
          -  bar()
          -}
          -

          Semicolons

          -

          Don't use them except in four situations:

          -
            -
          • for (;;) loops. They're actually required.
          • -
          • null loops like: while (something) ; (But you'd better have a good -reason for doing that.)
          • -
          • case 'foo': doSomething(); break
          • -
          • In front of a leading ( or [ at the start of the line. -This prevents the expression from being interpreted -as a function call or property access, respectively.
          • -
          -

          Some examples of good semicolon usage:

          -
          ;(x || y).doSomething()
          -;[a, b, c].forEach(doSomething)
          -for (var i = 0; i < 10; i ++) {
          -  switch (state) {
          -    case 'begin': start(); continue
          -    case 'end': finish(); break
          -    default: throw new Error('unknown state')
          -  }
          -  end()
          -}
          -

          Note that starting lines with - and + also should be prefixed -with a semicolon, but this is much less common.

          -

          Comma First

          -

          If there is a list of things separated by commas, and it wraps -across multiple lines, put the comma at the start of the next -line, directly below the token that starts the list. Put the -final token in the list on a line by itself. For example:

          -
          var magicWords = [ 'abracadabra'
          -                 , 'gesundheit'
          -                 , 'ventrilo'
          -                 ]
          -  , spells = { 'fireball' : function () { setOnFire() }
          -             , 'water' : function () { putOut() }
          -             }
          -  , a = 1
          -  , b = 'abc'
          -  , etc
          -  , somethingElse
          -

          Quotes

          -

          Use single quotes for strings except to avoid escaping.

          -

          Bad:

          -
          var notOk = "Just double quotes"
          -

          Good:

          -
          var ok = 'String contains "double" quotes'
          -var alsoOk = "String contains 'single' quotes or apostrophe"
          -

          Whitespace

          -

          Put a single space in front of ( for anything other than a function call. -Also use a single space wherever it makes things more readable.

          -

          Don't leave trailing whitespace at the end of lines. Don't indent empty -lines. Don't use more spaces than are helpful.

          -

          Functions

          -

          Use named functions. They make stack traces a lot easier to read.

          -

          Callbacks, Sync/async Style

          -

          Use the asynchronous/non-blocking versions of things as much as possible. -It might make more sense for npm to use the synchronous fs APIs, but this -way, the fs and http and child process stuff all uses the same callback-passing -methodology.

          -

          The callback should always be the last argument in the list. Its first -argument is the Error or null.

          -

          Be very careful never to ever ever throw anything. It's worse than useless. -Just send the error message back as the first argument to the callback.

          -

          Errors

          -

          Always create a new Error object with your message. Don't just return a -string message to the callback. Stack traces are handy.

          -

          Logging

          -

          Logging is done using the npmlog -utility.

          -

          Please clean up logs when they are no longer helpful. In particular, -logging the same object over and over again is not helpful. Logs should -report what's happening so that it's easier to track down where a fault -occurs.

          -

          Use appropriate log levels. See npm-config(7) and search for -"loglevel".

          -

          Case, naming, etc.

          -

          Use lowerCamelCase for multiword identifiers when they refer to objects, -functions, methods, properties, or anything not specified in this section.

          -

          Use UpperCamelCase for class names (things that you'd pass to "new").

          -

          Use all-lower-hyphen-css-case for multiword filenames and config keys.

          -

          Use named functions. They make stack traces easier to follow.

          -

          Use CAPS_SNAKE_CASE for constants, things that should never change -and are rarely used.

          -

          Use a single uppercase letter for function names where the function -would normally be anonymous, but needs to call itself recursively. It -makes it clear that it's a "throwaway" function.

          -

          null, undefined, false, 0

          -

          Boolean variables and functions should always be either true or -false. Don't set it to 0 unless it's supposed to be a number.

          -

          When something is intentionally missing or removed, set it to null.

          -

          Don't set things to undefined. Reserve that value to mean "not yet -set to anything."

          -

          Boolean objects are verboten.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-config.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-config.html deleted file mode 100644 index 904c4cc6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-config.html +++ /dev/null @@ -1,866 +0,0 @@ - - - npm-config - - - - - - -
          - -

          npm-config

          More than you probably want to know about npm configuration

          -

          DESCRIPTION

          -

          npm gets its configuration values from the following sources, sorted by priority:

          -

          Command Line Flags

          -

          Putting --foo bar on the command line sets the foo configuration -parameter to "bar". A -- argument tells the cli parser to stop -reading flags. A --flag parameter that is at the end of the -command will be given the value of true.

          -

          Environment Variables

          -

          Any environment variables that start with npm_config_ will be -interpreted as a configuration parameter. For example, putting -npm_config_foo=bar in your environment will set the foo -configuration parameter to bar. Any environment configurations that -are not given a value will be given the value of true. Config -values are case-insensitive, so NPM_CONFIG_FOO=bar will work the -same.

          -

          npmrc Files

          -

          The four relevant files are:

          -
            -
          • per-project config file (/path/to/my/project/.npmrc)
          • -
          • per-user config file (~/.npmrc)
          • -
          • global config file ($PREFIX/etc/npmrc)
          • -
          • npm builtin config file (/path/to/npm/npmrc)
          • -
          -

          See npmrc(5) for more details.

          -

          Default Configs

          -

          Run npm config ls -l to see a set of configuration parameters that are -internal to npm, and are defaults if nothing else is specified.

          -

          Shorthands and Other CLI Niceties

          -

          The following shorthands are parsed on the command-line:

          -
            -
          • -v: --version
          • -
          • -h, -?, --help, -H: --usage
          • -
          • -s, --silent: --loglevel silent
          • -
          • -q, --quiet: --loglevel warn
          • -
          • -d: --loglevel info
          • -
          • -dd, --verbose: --loglevel verbose
          • -
          • -ddd: --loglevel silly
          • -
          • -g: --global
          • -
          • -C: --prefix
          • -
          • -l: --long
          • -
          • -m: --message
          • -
          • -p, --porcelain: --parseable
          • -
          • -reg: --registry
          • -
          • -f: --force
          • -
          • -desc: --description
          • -
          • -S: --save
          • -
          • -D: --save-dev
          • -
          • -O: --save-optional
          • -
          • -B: --save-bundle
          • -
          • -E: --save-exact
          • -
          • -y: --yes
          • -
          • -n: --yes false
          • -
          • ll and la commands: ls --long
          • -
          -

          If the specified configuration param resolves unambiguously to a known -configuration parameter, then it is expanded to that configuration -parameter. For example:

          -
          npm ls --par
          -# same as:
          -npm ls --parseable
          -

          If multiple single-character shorthands are strung together, and the -resulting combination is unambiguously not some other configuration -param, then it is expanded to its various component pieces. For -example:

          -
          npm ls -gpld
          -# same as:
          -npm ls --global --parseable --long --loglevel info
          -

          Per-Package Config Settings

          -

          When running scripts (see npm-scripts(7)) the package.json "config" -keys are overwritten in the environment if there is a config param of -<name>[@<version>]:<key>. For example, if the package.json has -this:

          -
          { "name" : "foo"
          -, "config" : { "port" : "8080" }
          -, "scripts" : { "start" : "node server.js" } }
          -

          and the server.js is this:

          -
          http.createServer(...).listen(process.env.npm_package_config_port)
          -

          then the user could change the behavior by doing:

          -
          npm config set foo:port 80
          -

          See package.json(5) for more information.

          -

          Config Settings

          -

          access

          -
            -
          • Default: restricted
          • -
          • Type: Access
          • -
          -

          When publishing scoped packages, the access level defaults to restricted. If -you want your scoped package to be publicly viewable (and installable) set ---access=public. The only valid values for access are public and -restricted. Unscoped packages always have an access level of public.

          -

          always-auth

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Force npm to always require authentication when accessing the registry, -even for GET requests.

          -

          also

          -
            -
          • Default: null
          • -
          • Type: String
          • -
          -

          When "dev" or "development" and running local npm shrinkwrap, -npm outdated, or npm update, is an alias for --dev.

          - -
            -
          • Default: true
          • -
          • Type: Boolean
          • -
          -

          Tells npm to create symlinks (or .cmd shims on Windows) for package -executables.

          -

          Set to false to have it not do this. This can be used to work around -the fact that some file systems don't support symlinks, even on -ostensibly Unix systems.

          -

          browser

          -
            -
          • Default: OS X: "open", Windows: "start", Others: "xdg-open"
          • -
          • Type: String
          • -
          -

          The browser that is called by the npm docs command to open websites.

          -

          ca

          -
            -
          • Default: The npm CA certificate
          • -
          • Type: String, Array or null
          • -
          -

          The Certificate Authority signing certificate that is trusted for SSL -connections to the registry. Values should be in PEM format with newlines -replaced by the string "\n". For example:

          -
          ca="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
          -

          Set to null to only allow "known" registrars, or to a specific CA cert -to trust only that specific signing authority.

          -

          Multiple CAs can be trusted by specifying an array of certificates:

          -
          ca[]="..."
          -ca[]="..."
          -

          See also the strict-ssl config.

          -

          cafile

          -
            -
          • Default: null
          • -
          • Type: path
          • -
          -

          A path to a file containing one or multiple Certificate Authority signing -certificates. Similar to the ca setting, but allows for multiple CA's, as -well as for the CA information to be stored in a file on disk.

          -

          cache

          -
            -
          • Default: Windows: %AppData%\npm-cache, Posix: ~/.npm
          • -
          • Type: path
          • -
          -

          The location of npm's cache directory. See npm-cache(1)

          -

          cache-lock-stale

          -
            -
          • Default: 60000 (1 minute)
          • -
          • Type: Number
          • -
          -

          The number of ms before cache folder lockfiles are considered stale.

          -

          cache-lock-retries

          -
            -
          • Default: 10
          • -
          • Type: Number
          • -
          -

          Number of times to retry to acquire a lock on cache folder lockfiles.

          -

          cache-lock-wait

          -
            -
          • Default: 10000 (10 seconds)
          • -
          • Type: Number
          • -
          -

          Number of ms to wait for cache lock files to expire.

          -

          cache-max

          -
            -
          • Default: Infinity
          • -
          • Type: Number
          • -
          -

          The maximum time (in seconds) to keep items in the registry cache before -re-checking against the registry.

          -

          Note that no purging is done unless the npm cache clean command is -explicitly used, and that only GET requests use the cache.

          -

          cache-min

          -
            -
          • Default: 10
          • -
          • Type: Number
          • -
          -

          The minimum time (in seconds) to keep items in the registry cache before -re-checking against the registry.

          -

          Note that no purging is done unless the npm cache clean command is -explicitly used, and that only GET requests use the cache.

          -

          cert

          -
            -
          • Default: null
          • -
          • Type: String
          • -
          -

          A client certificate to pass when accessing the registry. Values should be in -PEM format with newlines replaced by the string "\n". For example:

          -
          cert="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
          -

          It is not the path to a certificate file (and there is no "certfile" option).

          -

          color

          -
            -
          • Default: true
          • -
          • Type: Boolean or "always"
          • -
          -

          If false, never shows colors. If "always" then always shows colors. -If true, then only prints color codes for tty file descriptors.

          -

          depth

          -
            -
          • Default: Infinity
          • -
          • Type: Number
          • -
          -

          The depth to go when recursing directories for npm ls, -npm cache ls, and npm outdated.

          -

          For npm outdated, a setting of Infinity will be treated as 0 -since that gives more useful information. To show the outdated status -of all packages and dependents, use a large integer value, -e.g., npm outdated --depth 9999

          -

          description

          -
            -
          • Default: true
          • -
          • Type: Boolean
          • -
          -

          Show the description in npm search

          -

          dev

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Install dev-dependencies along with packages.

          -

          Note that dev-dependencies are also installed if the npat flag is -set.

          -

          dry-run

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Indicates that you don't want npm to make any changes and that it should -only report what it would have done. This can be passed into any of the -commands that modify your local installation, eg, install, update, -dedupe, uninstall. This is NOT currently honored by network related -commands, eg dist-tags, owner, publish, etc.

          -

          editor

          -
            -
          • Default: EDITOR environment variable if set, or "vi" on Posix, -or "notepad" on Windows.
          • -
          • Type: path
          • -
          -

          The command to run for npm edit or npm config edit.

          -

          engine-strict

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          If set to true, then npm will stubbornly refuse to install (or even -consider installing) any package that claims to not be compatible with -the current Node.js version.

          -

          force

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Makes various commands more forceful.

          -
            -
          • lifecycle script failure does not block progress.
          • -
          • publishing clobbers previously published versions.
          • -
          • skips cache when requesting from the registry.
          • -
          • prevents checks against clobbering non-npm files.
          • -
          -

          fetch-retries

          -
            -
          • Default: 2
          • -
          • Type: Number
          • -
          -

          The "retries" config for the retry module to use when fetching -packages from the registry.

          -

          fetch-retry-factor

          -
            -
          • Default: 10
          • -
          • Type: Number
          • -
          -

          The "factor" config for the retry module to use when fetching -packages.

          -

          fetch-retry-mintimeout

          -
            -
          • Default: 10000 (10 seconds)
          • -
          • Type: Number
          • -
          -

          The "minTimeout" config for the retry module to use when fetching -packages.

          -

          fetch-retry-maxtimeout

          -
            -
          • Default: 60000 (1 minute)
          • -
          • Type: Number
          • -
          -

          The "maxTimeout" config for the retry module to use when fetching -packages.

          -

          git

          -
            -
          • Default: "git"
          • -
          • Type: String
          • -
          -

          The command to use for git commands. If git is installed on the -computer, but is not in the PATH, then set this to the full path to -the git binary.

          -

          git-tag-version

          -
            -
          • Default: true
          • -
          • Type: Boolean
          • -
          -

          Tag the commit when using the npm version command.

          -

          global

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Operates in "global" mode, so that packages are installed into the -prefix folder instead of the current working directory. See -npm-folders(5) for more on the differences in behavior.

          -
            -
          • packages are installed into the {prefix}/lib/node_modules folder, instead of the -current working directory.
          • -
          • bin files are linked to {prefix}/bin
          • -
          • man pages are linked to {prefix}/share/man
          • -
          -

          globalconfig

          -
            -
          • Default: {prefix}/etc/npmrc
          • -
          • Type: path
          • -
          -

          The config file to read for global config options.

          -

          global-style

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Causes npm to install the package into your local node_modules folder with -the same layout it uses with the global node_modules folder. Only your -direct dependencies will show in node_modules and everything they depend -on will be flattened in their node_modules folders. This obviously will -eliminate some deduping. If used with legacy-bundling, legacy-bundling will be -preferred.

          -

          group

          -
            -
          • Default: GID of the current process
          • -
          • Type: String or Number
          • -
          -

          The group to use when running package scripts in global mode as the root -user.

          -

          heading

          -
            -
          • Default: "npm"
          • -
          • Type: String
          • -
          -

          The string that starts all the debugging log output.

          -

          https-proxy

          -
            -
          • Default: null
          • -
          • Type: url
          • -
          -

          A proxy to use for outgoing https requests. If the HTTPS_PROXY or -https_proxy or HTTP_PROXY or http_proxy environment variables are set, -proxy settings will be honored by the underlying request library.

          -

          if-present

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          If true, npm will not exit with an error code when run-script is invoked for -a script that isn't defined in the scripts section of package.json. This -option can be used when it's desirable to optionally run a script when it's -present and fail if the script fails. This is useful, for example, when running -scripts that may only apply for some builds in an otherwise generic CI setup.

          -

          ignore-scripts

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          If true, npm does not run scripts specified in package.json files.

          -

          init-module

          -
            -
          • Default: ~/.npm-init.js
          • -
          • Type: path
          • -
          -

          A module that will be loaded by the npm init command. See the -documentation for the -init-package-json module -for more information, or npm-init(1).

          -

          init-author-name

          -
            -
          • Default: ""
          • -
          • Type: String
          • -
          -

          The value npm init should use by default for the package author's name.

          -

          init-author-email

          -
            -
          • Default: ""
          • -
          • Type: String
          • -
          -

          The value npm init should use by default for the package author's email.

          -

          init-author-url

          -
            -
          • Default: ""
          • -
          • Type: String
          • -
          -

          The value npm init should use by default for the package author's homepage.

          -

          init-license

          -
            -
          • Default: "ISC"
          • -
          • Type: String
          • -
          -

          The value npm init should use by default for the package license.

          -

          init-version

          -
            -
          • Default: "1.0.0"
          • -
          • Type: semver
          • -
          -

          The value that npm init should use by default for the package -version number, if not already set in package.json.

          -

          json

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Whether or not to output JSON data, rather than the normal output.

          -

          This feature is currently experimental, and the output data structures -for many commands is either not implemented in JSON yet, or subject to -change. Only the output from npm ls --json is currently valid.

          -

          key

          -
            -
          • Default: null
          • -
          • Type: String
          • -
          -

          A client key to pass when accessing the registry. Values should be in PEM -format with newlines replaced by the string "\n". For example:

          -
          key="-----BEGIN PRIVATE KEY-----\nXXXX\nXXXX\n-----END PRIVATE KEY-----"
          -

          It is not the path to a key file (and there is no "keyfile" option).

          -

          legacy-bundling

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Causes npm to install the package such that versions of npm prior to 1.4, -such as the one included with node 0.8, can install the package. This -eliminates all automatic deduping. If used with global-style this option -will be preferred.

          - -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          If true, then local installs will link if there is a suitable globally -installed package.

          -

          Note that this means that local installs can cause things to be -installed into the global space at the same time. The link is only done -if one of the two conditions are met:

          -
            -
          • The package is not already installed globally, or
          • -
          • the globally installed version is identical to the version that is -being installed locally.
          • -
          -

          local-address

          -
            -
          • Default: undefined
          • -
          • Type: IP Address
          • -
          -

          The IP address of the local interface to use when making connections -to the npm registry. Must be IPv4 in versions of Node prior to 0.12.

          -

          loglevel

          -
            -
          • Default: "warn"
          • -
          • Type: String
          • -
          • Values: "silent", "error", "warn", "http", "info", "verbose", "silly"
          • -
          -

          What level of logs to report. On failure, all logs are written to -npm-debug.log in the current working directory.

          -

          Any logs of a higher level than the setting are shown. -The default is "warn", which shows warn and error output.

          -

          logstream

          -
            -
          • Default: process.stderr
          • -
          • Type: Stream
          • -
          -

          This is the stream that is passed to the -npmlog module at run time.

          -

          It cannot be set from the command line, but if you are using npm -programmatically, you may wish to send logs to somewhere other than -stderr.

          -

          If the color config is set to true, then this stream will receive -colored output if it is a TTY.

          -

          long

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Show extended information in npm ls and npm search.

          -

          maxsockets

          -
            -
          • Default: 50
          • -
          • Type: Number
          • -
          -

          The maximum number of connections to use per origin (protocol/host/port -combination). Passed to the http Agent used to make the request.

          -

          message

          -
            -
          • Default: "%s"
          • -
          • Type: String
          • -
          -

          Commit message which is used by npm version when creating version commit.

          -

          Any "%s" in the message will be replaced with the version number.

          -

          node-version

          -
            -
          • Default: process.version
          • -
          • Type: semver or false
          • -
          -

          The node version to use when checking a package's engines map.

          -

          npat

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Run tests on installation.

          -

          onload-script

          -
            -
          • Default: false
          • -
          • Type: path
          • -
          -

          A node module to require() when npm loads. Useful for programmatic -usage.

          -

          only

          -
            -
          • Default: null
          • -
          • Type: String
          • -
          -

          When "dev" or "development" and running local npm install without any -arguments, only devDependencies (and their dependencies) are installed.

          -

          When "dev" or "development" and running local npm ls, npm outdated, or -npm update, is an alias for --dev.

          -

          When "prod" or "production" and running local npm install without any -arguments, only non-devDependencies (and their dependencies) are -installed.

          -

          When "prod" or "production" and running local npm ls, npm outdated, or -npm update, is an alias for --production.

          -

          optional

          -
            -
          • Default: true
          • -
          • Type: Boolean
          • -
          -

          Attempt to install packages in the optionalDependencies object. Note -that if these packages fail to install, the overall installation -process is not aborted.

          -

          parseable

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Output parseable results from commands that write to -standard output.

          -

          prefix

          - -

          The location to install global items. If set on the command line, then -it forces non-global commands to run in the specified folder.

          -

          production

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Set to true to run in "production" mode.

          -
            -
          1. devDependencies are not installed at the topmost level when running -local npm install without any arguments.
          2. -
          3. Set the NODE_ENV="production" for lifecycle scripts.
          4. -
          -

          progress

          -
            -
          • Default: true
          • -
          • Type: Boolean
          • -
          -

          When set to true, npm will display a progress bar during time intensive -operations, if process.stderr is a TTY.

          -

          Set to false to suppress the progress bar.

          -

          proprietary-attribs

          -
            -
          • Default: true
          • -
          • Type: Boolean
          • -
          -

          Whether or not to include proprietary extended attributes in the -tarballs created by npm.

          -

          Unless you are expecting to unpack package tarballs with something other -than npm -- particularly a very outdated tar implementation -- leave -this as true.

          -

          proxy

          -
            -
          • Default: null
          • -
          • Type: url
          • -
          -

          A proxy to use for outgoing http requests. If the HTTP_PROXY or -http_proxy environment variables are set, proxy settings will be -honored by the underlying request library.

          -

          rebuild-bundle

          -
            -
          • Default: true
          • -
          • Type: Boolean
          • -
          -

          Rebuild bundled dependencies after installation.

          -

          registry

          - -

          The base URL of the npm package registry.

          -

          rollback

          -
            -
          • Default: true
          • -
          • Type: Boolean
          • -
          -

          Remove failed installs.

          -

          save

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Save installed packages to a package.json file as dependencies.

          -

          When used with the npm rm command, it removes it from the dependencies -object.

          -

          Only works if there is already a package.json file present.

          -

          save-bundle

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          If a package would be saved at install time by the use of --save, ---save-dev, or --save-optional, then also put it in the -bundleDependencies list.

          -

          When used with the npm rm command, it removes it from the -bundledDependencies list.

          -

          save-dev

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Save installed packages to a package.json file as devDependencies.

          -

          When used with the npm rm command, it removes it from the -devDependencies object.

          -

          Only works if there is already a package.json file present.

          -

          save-exact

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Dependencies saved to package.json using --save, --save-dev or ---save-optional will be configured with an exact version rather than -using npm's default semver range operator.

          -

          save-optional

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Save installed packages to a package.json file as -optionalDependencies.

          -

          When used with the npm rm command, it removes it from the -devDependencies object.

          -

          Only works if there is already a package.json file present.

          -

          save-prefix

          -
            -
          • Default: '^'
          • -
          • Type: String
          • -
          -

          Configure how versions of packages installed to a package.json file via ---save or --save-dev get prefixed.

          -

          For example if a package has version 1.2.3, by default its version is -set to ^1.2.3 which allows minor upgrades for that package, but after -npm config set save-prefix='~' it would be set to ~1.2.3 which only allows -patch upgrades.

          -

          scope

          -
            -
          • Default: ""
          • -
          • Type: String
          • -
          -

          Associate an operation with a scope for a scoped registry. Useful when logging -in to a private registry for the first time: -npm login --scope=@organization --registry=registry.organization.com, which -will cause @organization to be mapped to the registry for future installation -of packages specified according to the pattern @organization/package.

          -

          searchopts

          -
            -
          • Default: ""
          • -
          • Type: String
          • -
          -

          Space-separated options that are always passed to search.

          -

          searchexclude

          -
            -
          • Default: ""
          • -
          • Type: String
          • -
          -

          Space-separated options that limit the results from search.

          -

          searchsort

          -
            -
          • Default: "name"
          • -
          • Type: String
          • -
          • Values: "name", "-name", "date", "-date", "description", -"-description", "keywords", "-keywords"
          • -
          -

          Indication of which field to sort search results by. Prefix with a - -character to indicate reverse sort.

          -

          shell

          -
            -
          • Default: SHELL environment variable, or "bash" on Posix, or "cmd" on -Windows
          • -
          • Type: path
          • -
          -

          The shell to run for the npm explore command.

          -

          shrinkwrap

          -
            -
          • Default: true
          • -
          • Type: Boolean
          • -
          -

          If set to false, then ignore npm-shrinkwrap.json files when -installing.

          -

          sign-git-tag

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          If set to true, then the npm version command will tag the version -using -s to add a signature.

          -

          Note that git requires you to have set up GPG keys in your git configs -for this to work properly.

          -

          strict-ssl

          -
            -
          • Default: true
          • -
          • Type: Boolean
          • -
          -

          Whether or not to do SSL key validation when making requests to the -registry via https.

          -

          See also the ca config.

          -

          tag

          -
            -
          • Default: latest
          • -
          • Type: String
          • -
          -

          If you ask npm to install a package and don't tell it a specific version, then -it will install the specified tag.

          -

          Also the tag that is added to the package@version specified by the npm -tag command, if no explicit tag is given.

          -

          tag-version-prefix

          -
            -
          • Default: "v"
          • -
          • Type: String
          • -
          -

          If set, alters the prefix used when tagging a new version when performing a -version increment using npm-version. To remove the prefix altogether, set it -to the empty string: "".

          -

          Because other tools may rely on the convention that npm version tags look like -v1.0.0, only use this property if it is absolutely necessary. In -particular, use care when overriding this setting for public packages.

          -

          tmp

          -
            -
          • Default: TMPDIR environment variable, or "/tmp"
          • -
          • Type: path
          • -
          -

          Where to store temporary files and folders. All temp files are deleted -on success, but left behind on failure for forensic purposes.

          -

          unicode

          -
            -
          • Default: false on windows, true on mac/unix systems with a unicode locale
          • -
          • Type: Boolean
          • -
          -

          When set to true, npm uses unicode characters in the tree output. When -false, it uses ascii characters to draw trees.

          -

          unsafe-perm

          -
            -
          • Default: false if running as root, true otherwise
          • -
          • Type: Boolean
          • -
          -

          Set to true to suppress the UID/GID switching when running package -scripts. If set explicitly to false, then installing as a non-root user -will fail.

          -

          usage

          -
            -
          • Default: false
          • -
          • Type: Boolean
          • -
          -

          Set to show short usage output (like the -H output) -instead of complete help when doing npm-help(1).

          -

          user

          -
            -
          • Default: "nobody"
          • -
          • Type: String or Number
          • -
          -

          The UID to set to when running package scripts as root.

          -

          userconfig

          -
            -
          • Default: ~/.npmrc
          • -
          • Type: path
          • -
          -

          The location of user-level configuration settings.

          -

          umask

          -
            -
          • Default: 022
          • -
          • Type: Octal numeric string in range 0000..0777 (0..511)
          • -
          -

          The "umask" value to use when setting the file creation mode on files -and folders.

          -

          Folders and executables are given a mode which is 0777 masked against -this value. Other files are given a mode which is 0666 masked against -this value. Thus, the defaults are 0755 and 0644 respectively.

          -

          user-agent

          -
            -
          • Default: node/{process.version} {process.platform} {process.arch}
          • -
          • Type: String
          • -
          -

          Sets a User-Agent to the request header

          -

          version

          -
            -
          • Default: false
          • -
          • Type: boolean
          • -
          -

          If true, output the npm version and exit successfully.

          -

          Only relevant when specified explicitly on the command line.

          -

          versions

          -
            -
          • Default: false
          • -
          • Type: boolean
          • -
          -

          If true, output the npm version as well as node's process.versions map, and -exit successfully.

          -

          Only relevant when specified explicitly on the command line.

          -

          viewer

          -
            -
          • Default: "man" on Posix, "browser" on Windows
          • -
          • Type: path
          • -
          -

          The program to use to view help content.

          -

          Set to "browser" to view html help content in the default web browser.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-developers.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-developers.html deleted file mode 100644 index c31e2a0a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-developers.html +++ /dev/null @@ -1,198 +0,0 @@ - - - npm-developers - - - - - - -
          - -

          npm-developers

          Developer Guide

          -

          DESCRIPTION

          -

          So, you've decided to use npm to develop (and maybe publish/deploy) -your project.

          -

          Fantastic!

          -

          There are a few things that you need to do above the simple steps -that your users will do to install your program.

          -

          About These Documents

          -

          These are man pages. If you install npm, you should be able to -then do man npm-thing to get the documentation on a particular -topic, or npm help thing to see the same information.

          -

          What is a package

          -

          A package is:

          -
            -
          • a) a folder containing a program described by a package.json file
          • -
          • b) a gzipped tarball containing (a)
          • -
          • c) a url that resolves to (b)
          • -
          • d) a <name>@<version> that is published on the registry with (c)
          • -
          • e) a <name>@<tag> that points to (d)
          • -
          • f) a <name> that has a "latest" tag satisfying (e)
          • -
          • g) a git url that, when cloned, results in (a).
          • -
          -

          Even if you never publish your package, you can still get a lot of -benefits of using npm if you just want to write a node program (a), and -perhaps if you also want to be able to easily install it elsewhere -after packing it up into a tarball (b).

          -

          Git urls can be of the form:

          -
          git://github.com/user/project.git#commit-ish
          -git+ssh://user@hostname:project.git#commit-ish
          -git+http://user@hostname/project/blah.git#commit-ish
          -git+https://user@hostname/project/blah.git#commit-ish
          -

          The commit-ish can be any tag, sha, or branch which can be supplied as -an argument to git checkout. The default is master.

          -

          The package.json File

          -

          You need to have a package.json file in the root of your project to do -much of anything with npm. That is basically the whole interface.

          -

          See package.json(5) for details about what goes in that file. At the very -least, you need:

          -
            -
          • name: -This should be a string that identifies your project. Please do not -use the name to specify that it runs on node, or is in JavaScript. -You can use the "engines" field to explicitly state the versions of -node (or whatever else) that your program requires, and it's pretty -well assumed that it's javascript.

            -

            It does not necessarily need to match your github repository name.

            -

            So, node-foo and bar-js are bad names. foo or bar are better.

            -
          • -
          • version: -A semver-compatible version.

            -
          • -
          • engines: -Specify the versions of node (or whatever else) that your program -runs on. The node API changes a lot, and there may be bugs or new -functionality that you depend on. Be explicit.

            -
          • -
          • author: -Take some credit.

            -
          • -
          • scripts: -If you have a special compilation or installation script, then you -should put it in the scripts object. You should definitely have at -least a basic smoke-test command as the "scripts.test" field. -See npm-scripts(7).

            -
          • -
          • main: -If you have a single module that serves as the entry point to your -program (like what the "foo" package gives you at require("foo")), -then you need to specify that in the "main" field.

            -
          • -
          • directories: -This is an object mapping names to folders. The best ones to include are -"lib" and "doc", but if you use "man" to specify a folder full of man pages, -they'll get installed just like these ones.

            -
          • -
          -

          You can use npm init in the root of your package in order to get you -started with a pretty basic package.json file. See npm-init(1) for -more info.

          -

          Keeping files out of your package

          -

          Use a .npmignore file to keep stuff out of your package. If there's -no .npmignore file, but there is a .gitignore file, then npm will -ignore the stuff matched by the .gitignore file. If you want to -include something that is excluded by your .gitignore file, you can -create an empty .npmignore file to override it. Like git, npm looks -for .npmignore and .gitignore files in all subdirectories of your -package, not only the root directory.

          -

          .npmignore files follow the same pattern rules -as .gitignore files:

          -
            -
          • Blank lines or lines starting with # are ignored.
          • -
          • Standard glob patterns work.
          • -
          • You can end patterns with a forward slash / to specify a directory.
          • -
          • You can negate a pattern by starting it with an exclamation point !.
          • -
          -

          By default, the following paths and files are ignored, so there's no -need to add them to .npmignore explicitly:

          -
            -
          • .*.swp
          • -
          • ._*
          • -
          • .DS_Store
          • -
          • .git
          • -
          • .hg
          • -
          • .npmrc
          • -
          • .lock-wscript
          • -
          • .svn
          • -
          • .wafpickle-*
          • -
          • config.gypi
          • -
          • CVS
          • -
          • npm-debug.log
          • -
          -

          Additionally, everything in node_modules is ignored, except for -bundled dependencies. npm automatically handles this for you, so don't -bother adding node_modules to .npmignore.

          -

          The following paths and files are never ignored, so adding them to -.npmignore is pointless:

          -
            -
          • package.json
          • -
          • README (and its variants)
          • -
          • CHANGELOG (and its variants)
          • -
          • LICENSE / LICENCE
          • -
          - -

          npm link is designed to install a development package and see the -changes in real time without having to keep re-installing it. (You do -need to either re-link or npm rebuild -g to update compiled packages, -of course.)

          -

          More info at npm-link(1).

          -

          Before Publishing: Make Sure Your Package Installs and Works

          -

          This is important.

          -

          If you can not install it locally, you'll have -problems trying to publish it. Or, worse yet, you'll be able to -publish it, but you'll be publishing a broken or pointless package. -So don't do that.

          -

          In the root of your package, do this:

          -
          npm install . -g
          -

          That'll show you that it's working. If you'd rather just create a symlink -package that points to your working directory, then do this:

          -
          npm link
          -

          Use npm ls -g to see if it's there.

          -

          To test a local install, go into some other folder, and then do:

          -
          cd ../some-other-folder
          -npm install ../my-package
          -

          to install it locally into the node_modules folder in that other place.

          -

          Then go into the node-repl, and try using require("my-thing") to -bring in your module's main module.

          -

          Create a User Account

          -

          Create a user with the adduser command. It works like this:

          -
          npm adduser
          -

          and then follow the prompts.

          -

          This is documented better in npm-adduser(1).

          -

          Publish your package

          -

          This part's easy. In the root of your folder, do this:

          -
          npm publish
          -

          You can give publish a url to a tarball, or a filename of a tarball, -or a path to a folder.

          -

          Note that pretty much everything in that folder will be exposed -by default. So, if you have secret stuff in there, use a -.npmignore file to list out the globs to ignore, or publish -from a fresh checkout.

          -

          Brag about it

          -

          Send emails, write blogs, blab in IRC.

          -

          Tell the world how easy it is to install your program!

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-disputes.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-disputes.html deleted file mode 100644 index c5a35a99..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-disputes.html +++ /dev/null @@ -1,116 +0,0 @@ - - - npm-disputes - - - - - - -
          - -

          npm-disputes

          Handling Module Name Disputes

          -

          SYNOPSIS

          -
            -
          1. Get the author email with npm owner ls <pkgname>
          2. -
          3. Email the author, CC support@npmjs.com
          4. -
          5. After a few weeks, if there's no resolution, we'll sort it out.
          6. -
          -

          Don't squat on package names. Publish code or move out of the way.

          -

          DESCRIPTION

          -

          There sometimes arise cases where a user publishes a module, and then -later, some other user wants to use that name. Here are some common -ways that happens (each of these is based on actual events.)

          -
            -
          1. Joe writes a JavaScript module foo, which is not node-specific. -Joe doesn't use node at all. Bob wants to use foo in node, so he -wraps it in an npm module. Some time later, Joe starts using node, -and wants to take over management of his program.
          2. -
          3. Bob writes an npm module foo, and publishes it. Perhaps much -later, Joe finds a bug in foo, and fixes it. He sends a pull -request to Bob, but Bob doesn't have the time to deal with it, -because he has a new job and a new baby and is focused on his new -erlang project, and kind of not involved with node any more. Joe -would like to publish a new foo, but can't, because the name is -taken.
          4. -
          5. Bob writes a 10-line flow-control library, and calls it foo, and -publishes it to the npm registry. Being a simple little thing, it -never really has to be updated. Joe works for Foo Inc, the makers -of the critically acclaimed and widely-marketed foo JavaScript -toolkit framework. They publish it to npm as foojs, but people are -routinely confused when npm install foo is some different thing.
          6. -
          7. Bob writes a parser for the widely-known foo file format, because -he needs it for work. Then, he gets a new job, and never updates the -prototype. Later on, Joe writes a much more complete foo parser, -but can't publish, because Bob's foo is in the way.
          8. -
          -

          The validity of Joe's claim in each situation can be debated. However, -Joe's appropriate course of action in each case is the same.

          -
            -
          1. npm owner ls foo. This will tell Joe the email address of the -owner (Bob).
          2. -
          3. Joe emails Bob, explaining the situation as respectfully as -possible, and what he would like to do with the module name. He -adds the npm support staff support@npmjs.com to the CC list of -the email. Mention in the email that Bob can run npm owner add -joe foo to add Joe as an owner of the foo package.
          4. -
          5. After a reasonable amount of time, if Bob has not responded, or if -Bob and Joe can't come to any sort of resolution, email support -support@npmjs.com and we'll sort it out. ("Reasonable" is -usually at least 4 weeks, but extra time is allowed around common -holidays.)
          6. -
          -

          REASONING

          -

          In almost every case so far, the parties involved have been able to reach -an amicable resolution without any major intervention. Most people -really do want to be reasonable, and are probably not even aware that -they're in your way.

          -

          Module ecosystems are most vibrant and powerful when they are as -self-directed as possible. If an admin one day deletes something you -had worked on, then that is going to make most people quite upset, -regardless of the justification. When humans solve their problems by -talking to other humans with respect, everyone has the chance to end up -feeling good about the interaction.

          -

          EXCEPTIONS

          -

          Some things are not allowed, and will be removed without discussion if -they are brought to the attention of the npm registry admins, including -but not limited to:

          -
            -
          1. Malware (that is, a package designed to exploit or harm the machine on -which it is installed).
          2. -
          3. Violations of copyright or licenses (for example, cloning an -MIT-licensed program, and then removing or changing the copyright and -license statement).
          4. -
          5. Illegal content.
          6. -
          7. "Squatting" on a package name that you plan to use, but aren't -actually using. Sorry, I don't care how great the name is, or how -perfect a fit it is for the thing that someday might happen. If -someone wants to use it today, and you're just taking up space with -an empty tarball, you're going to be evicted.
          8. -
          9. Putting empty packages in the registry. Packages must have SOME -functionality. It can be silly, but it can't be nothing. (See -also: squatting.)
          10. -
          11. Doing weird things with the registry, like using it as your own -personal application database or otherwise putting non-packagey -things into it.
          12. -
          -

          If you see bad behavior like this, please report it right away.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-index.html deleted file mode 100644 index e2ffb942..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-index.html +++ /dev/null @@ -1,166 +0,0 @@ - - - npm-index - - - - - - -
          - -

          npm-index

          Index of all npm documentation

          -

          README

          -

          a JavaScript package manager

          -

          Command Line Documentation

          -

          Using npm on the command line

          -

          npm(1)

          -

          javascript package manager

          -

          npm-access(1)

          -

          Set access level on published packages

          -

          npm-adduser(1)

          -

          Add a registry user account

          -

          npm-bin(1)

          -

          Display npm bin folder

          -

          npm-bugs(1)

          -

          Bugs for a package in a web browser maybe

          -

          npm-build(1)

          -

          Build a package

          -

          npm-bundle(1)

          -

          REMOVED

          -

          npm-cache(1)

          -

          Manipulates packages cache

          -

          npm-completion(1)

          -

          Tab Completion for npm

          -

          npm-config(1)

          -

          Manage the npm configuration files

          -

          npm-dedupe(1)

          -

          Reduce duplication

          -

          npm-deprecate(1)

          -

          Deprecate a version of a package

          -

          npm-dist-tag(1)

          -

          Modify package distribution tags

          -

          npm-docs(1)

          -

          Docs for a package in a web browser maybe

          -

          npm-edit(1)

          -

          Edit an installed package

          -

          npm-explore(1)

          -

          Browse an installed package

          -

          npm-help-search(1)

          -

          Search npm help documentation

          -

          npm-help(1)

          -

          Get help on npm

          -

          npm-init(1)

          -

          Interactively create a package.json file

          -

          npm-install-test(1)

          -

          Install package(s) and run tests

          -

          npm-install(1)

          -

          Install a package

          - -

          Symlink a package folder

          -

          npm-logout(1)

          -

          Log out of the registry

          -

          npm-ls(1)

          -

          List installed packages

          -

          npm-outdated(1)

          -

          Check for outdated packages

          -

          npm-owner(1)

          -

          Manage package owners

          -

          npm-pack(1)

          -

          Create a tarball from a package

          -

          npm-ping(1)

          -

          Ping npm registry

          -

          npm-prefix(1)

          -

          Display prefix

          -

          npm-prune(1)

          -

          Remove extraneous packages

          -

          npm-publish(1)

          -

          Publish a package

          -

          npm-rebuild(1)

          -

          Rebuild a package

          -

          npm-repo(1)

          -

          Open package repository page in the browser

          -

          npm-restart(1)

          -

          Restart a package

          -

          npm-root(1)

          -

          Display npm root

          -

          npm-run-script(1)

          -

          Run arbitrary package scripts

          -

          npm-search(1)

          -

          Search for packages

          -

          npm-shrinkwrap(1)

          -

          Lock down dependency versions

          -

          npm-star(1)

          -

          Mark your favorite packages

          -

          npm-stars(1)

          -

          View packages marked as favorites

          -

          npm-start(1)

          -

          Start a package

          -

          npm-stop(1)

          -

          Stop a package

          -

          npm-tag(1)

          -

          Tag a published version

          -

          npm-team(1)

          -

          Manage organization teams and team memberships

          -

          npm-test(1)

          -

          Test a package

          -

          npm-uninstall(1)

          -

          Remove a package

          -

          npm-unpublish(1)

          -

          Remove a package from the registry

          -

          npm-update(1)

          -

          Update a package

          -

          npm-version(1)

          -

          Bump a package version

          -

          npm-view(1)

          -

          View registry info

          -

          npm-whoami(1)

          -

          Display npm username

          -

          API Documentation

          -

          Using npm in your Node programs

          -

          Files

          -

          File system structures npm uses

          -

          npm-folders(5)

          -

          Folder Structures Used by npm

          -

          npmrc(5)

          -

          The npm config files

          -

          package.json(5)

          -

          Specifics of npm's package.json handling

          -

          Misc

          -

          Various other bits and bobs

          -

          npm-coding-style(7)

          -

          npm's "funny" coding style

          -

          npm-config(7)

          -

          More than you probably want to know about npm configuration

          -

          npm-developers(7)

          -

          Developer Guide

          -

          npm-disputes(7)

          -

          Handling Module Name Disputes

          -

          npm-index(7)

          -

          Index of all npm documentation

          -

          npm-orgs(7)

          -

          Working with Teams & Orgs

          -

          npm-registry(7)

          -

          The JavaScript Package Registry

          -

          npm-scope(7)

          -

          Scoped packages

          -

          npm-scripts(7)

          -

          How npm handles the "scripts" field

          -

          removing-npm(7)

          -

          Cleaning the Slate

          -

          semver(7)

          -

          The semantic versioner for npm

          - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-orgs.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-orgs.html deleted file mode 100644 index 9333ef4c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-orgs.html +++ /dev/null @@ -1,90 +0,0 @@ - - - npm-orgs - - - - - - -
          - -

          npm-orgs

          Working with Teams & Orgs

          -

          DESCRIPTION

          -

          There are three levels of org users:

          -
            -
          1. Super admin, controls billing & adding people to the org.
          2. -
          3. Team admin, manages team membership & package access.
          4. -
          5. Developer, works on packages they are given access to.
          6. -
          -

          The super admin is the only person who can add users to the org because it impacts the monthly bill. The super admin will use the website to manage membership. Every org has a developers team that all users are automatically added to.

          -

          The team admin is the person who manages team creation, team membership, and package access for teams. The team admin grants package access to teams, not individuals.

          -

          The developer will be able to access packages based on the teams they are on. Access is either read-write or read-only.

          -

          There are two main commands:

          -
            -
          1. npm team see npm-team(1) for more details
          2. -
          3. npm access see npm-access(1) for more details
          4. -
          -

          Team Admins create teams

          -
            -
          • Check who you’ve added to your org:
          • -
          -
          npm team ls <org>:developers
          -
            -
          • Each org is automatically given a developers team, so you can see the whole list of team members in your org. This team automatically gets read-write access to all packages, but you can change that with the access command.

            -
          • -
          • Create a new team:

            -
          • -
          -
          npm team create <org:team>
          -
            -
          • Add members to that team:
          • -
          -
          npm team add <org:team> <user>
          -

          Publish a package and adjust package access

          -
            -
          • In package directory, run
          • -
          -
          npm init --scope=<org>
          -

          to scope it for your org & publish as usual

          -
            -
          • Grant access:
          • -
          -
          npm access grant <read-only|read-write> <org:team> [<package>]
          -
            -
          • Revoke access:
          • -
          -
          npm access revoke <org:team> [<package>]
          -

          Monitor your package access

          -
            -
          • See what org packages a team member can access:
          • -
          -
          npm access ls-packages <org> <user>
          -
            -
          • See packages available to a specific team:
          • -
          -
          npm access ls-packages <org:team>
          -
            -
          • Check which teams are collaborating on a package:
          • -
          -
          npm access ls-collaborators <pkg>
          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-registry.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-registry.html deleted file mode 100644 index 3a164bec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-registry.html +++ /dev/null @@ -1,74 +0,0 @@ - - - npm-registry - - - - - - -
          - -

          npm-registry

          The JavaScript Package Registry

          -

          DESCRIPTION

          -

          To resolve packages by name and version, npm talks to a registry website -that implements the CommonJS Package Registry specification for reading -package info.

          -

          Additionally, npm's package registry implementation supports several -write APIs as well, to allow for publishing packages and managing user -account information.

          -

          The official public npm registry is at https://registry.npmjs.org/. It -is powered by a CouchDB database, of which there is a public mirror at -https://skimdb.npmjs.com/registry. The code for the couchapp is -available at https://github.com/npm/npm-registry-couchapp.

          -

          The registry URL used is determined by the scope of the package (see -npm-scope(7)). If no scope is specified, the default registry is used, which is -supplied by the registry config parameter. See npm-config(1), -npmrc(5), and npm-config(7) for more on managing npm's configuration.

          -

          Can I run my own private registry?

          -

          Yes!

          -

          The easiest way is to replicate the couch database, and use the same (or -similar) design doc to implement the APIs.

          -

          If you set up continuous replication from the official CouchDB, and then -set your internal CouchDB as the registry config, then you'll be able -to read any published packages, in addition to your private ones, and by -default will only publish internally.

          -

          If you then want to publish a package for the whole world to see, you can -simply override the --registry option for that publish command.

          -

          I don't want my package published in the official registry. It's private.

          -

          Set "private": true in your package.json to prevent it from being -published at all, or -"publishConfig":{"registry":"http://my-internal-registry.local"} -to force it to be published only to your internal registry.

          -

          See package.json(5) for more info on what goes in the package.json file.

          -

          Will you replicate from my registry into the public one?

          -

          No. If you want things to be public, then publish them into the public -registry using npm. What little security there is would be for nought -otherwise.

          -

          Do I have to use couchdb to build a registry that npm can talk to?

          -

          No, but it's way easier. Basically, yes, you do, or you have to -effectively implement the entire CouchDB API anyway.

          -

          Is there a website or something to see package docs and such?

          -

          Yes, head over to https://npmjs.com/

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-scope.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-scope.html deleted file mode 100644 index 4b7a98b2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-scope.html +++ /dev/null @@ -1,95 +0,0 @@ - - - npm-scope - - - - - - -
          - -

          npm-scope

          Scoped packages

          -

          DESCRIPTION

          -

          All npm packages have a name. Some package names also have a scope. A scope -follows the usual rules for package names (url-safe characters, no leading dots -or underscores). When used in package names, preceded by an @-symbol and -followed by a slash, e.g.

          -
          @somescope/somepackagename
          -

          Scopes are a way of grouping related packages together, and also affect a few -things about the way npm treats the package.

          -

          Scoped packages are supported by the public npm registry. The npm -client is backwards-compatible with un-scoped registries, so it can be -used to work with scoped and un-scoped registries at the same time.

          -

          Installing scoped packages

          -

          Scoped packages are installed to a sub-folder of the regular installation -folder, e.g. if your other packages are installed in node_modules/packagename, -scoped modules will be in node_modules/@myorg/packagename. The scope folder -(@myorg) is simply the name of the scope preceded by an @-symbol, and can -contain any number of scoped packages.

          -

          A scoped package is installed by referencing it by name, preceded by an -@-symbol, in npm install:

          -
          npm install @myorg/mypackage
          -

          Or in package.json:

          -
          "dependencies": {
          -  "@myorg/mypackage": "^1.3.0"
          -}
          -

          Note that if the @-symbol is omitted in either case npm will instead attempt to -install from GitHub; see npm-install(1).

          -

          Requiring scoped packages

          -

          Because scoped packages are installed into a scope folder, you have to -include the name of the scope when requiring them in your code, e.g.

          -
          require('@myorg/mypackage')
          -

          There is nothing special about the way Node treats scope folders, this is -just specifying to require the module mypackage in the folder called @myorg.

          -

          Publishing scoped packages

          -

          Scoped packages can be published to any registry that supports them, including -the public npm registry.

          -

          (As of 2015-04-19, and with npm 2.0 or better, the public npm registry does support scoped packages)

          -

          If you wish, you may associate a scope with a registry; see below.

          -

          Publishing public scoped packages to the public npm registry

          -

          To publish a public scoped package, you must specify --access public with -the initial publication. This will publish the package and set access -to public as if you had run npm access public after publishing.

          -

          Publishing private scoped packages to the npm registry

          -

          To publish a private scoped package to the npm registry, you must have -an npm Private Modules -account.

          -

          You can then publish the module with npm publish or npm publish ---access restricted, and it will be present in the npm registry, with -restricted access. You can then change the access permissions, if -desired, with npm access or on the npmjs.com website.

          -

          Associating a scope with a registry

          -

          Scopes can be associated with a separate registry. This allows you to -seamlessly use a mix of packages from the public npm registry and one or more -private registries, such as npm Enterprise.

          -

          You can associate a scope with a registry at login, e.g.

          -
          npm login --registry=http://reg.example.com --scope=@myco
          -

          Scopes have a many-to-one relationship with registries: one registry can -host multiple scopes, but a scope only ever points to one registry.

          -

          You can also associate a scope with a registry using npm config:

          -
          npm config set @myco:registry http://reg.example.com
          -

          Once a scope is associated with a registry, any npm install for a package -with that scope will request packages from that registry instead. Any -npm publish for a package name that contains the scope will be published to -that registry instead.

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-scripts.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-scripts.html deleted file mode 100644 index 7bf03d87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/npm-scripts.html +++ /dev/null @@ -1,212 +0,0 @@ - - - npm-scripts - - - - - - -
          - -

          npm-scripts

          How npm handles the "scripts" field

          -

          DESCRIPTION

          -

          npm supports the "scripts" property of the package.json script, for the -following scripts:

          -
            -
          • prepublish: -Run BEFORE the package is published. (Also run on local npm -install without any arguments.)
          • -
          • publish, postpublish: -Run AFTER the package is published.
          • -
          • preinstall: -Run BEFORE the package is installed
          • -
          • install, postinstall: -Run AFTER the package is installed.
          • -
          • preuninstall, uninstall: -Run BEFORE the package is uninstalled.
          • -
          • postuninstall: -Run AFTER the package is uninstalled.
          • -
          • preversion, version: -Run BEFORE bump the package version.
          • -
          • postversion: -Run AFTER bump the package version.
          • -
          • pretest, test, posttest: -Run by the npm test command.
          • -
          • prestop, stop, poststop: -Run by the npm stop command.
          • -
          • prestart, start, poststart: -Run by the npm start command.
          • -
          • prerestart, restart, postrestart: -Run by the npm restart command. Note: npm restart will run the -stop and start scripts if no restart script is provided.
          • -
          -

          Additionally, arbitrary scripts can be executed by running npm -run-script <stage>. Pre and post commands with matching -names will be run for those as well (e.g. premyscript, myscript, -postmyscript).

          -

          COMMON USES

          -

          If you need to perform operations on your package before it is used, in a way -that is not dependent on the operating system or architecture of the -target system, use a prepublish script. This includes -tasks such as:

          -
            -
          • Compiling CoffeeScript source code into JavaScript.
          • -
          • Creating minified versions of JavaScript source code.
          • -
          • Fetching remote resources that your package will use.
          • -
          -

          The advantage of doing these things at prepublish time is that they can be done once, in a -single place, thus reducing complexity and variability. -Additionally, this means that:

          -
            -
          • You can depend on coffee-script as a devDependency, and thus -your users don't need to have it installed.
          • -
          • You don't need to include minifiers in your package, reducing -the size for your users.
          • -
          • You don't need to rely on your users having curl or wget or -other system tools on the target machines.
          • -
          -

          DEFAULT VALUES

          -

          npm will default some script values based on package contents.

          -
            -
          • "start": "node server.js":

            -

            If there is a server.js file in the root of your package, then npm -will default the start command to node server.js.

            -
          • -
          • "install": "node-gyp rebuild":

            -

            If there is a binding.gyp file in the root of your package and you -haven't defined your own install or preinstall scripts, npm will -default the install command to compile using node-gyp.

            -
          • -
          -

          USER

          -

          If npm was invoked with root privileges, then it will change the uid -to the user account or uid specified by the user config, which -defaults to nobody. Set the unsafe-perm flag to run scripts with -root privileges.

          -

          ENVIRONMENT

          -

          Package scripts run in an environment where many pieces of information -are made available regarding the setup of npm and the current state of -the process.

          -

          path

          -

          If you depend on modules that define executable scripts, like test -suites, then those executables will be added to the PATH for -executing the scripts. So, if your package.json has this:

          -
          { "name" : "foo"
          -, "dependencies" : { "bar" : "0.1.x" }
          -, "scripts": { "start" : "bar ./test" } }
          -

          then you could run npm start to execute the bar script, which is -exported into the node_modules/.bin directory on npm install.

          -

          package.json vars

          -

          The package.json fields are tacked onto the npm_package_ prefix. So, -for instance, if you had {"name":"foo", "version":"1.2.5"} in your -package.json file, then your package scripts would have the -npm_package_name environment variable set to "foo", and the -npm_package_version set to "1.2.5"

          -

          configuration

          -

          Configuration parameters are put in the environment with the -npm_config_ prefix. For instance, you can view the effective root -config by checking the npm_config_root environment variable.

          -

          Special: package.json "config" object

          -

          The package.json "config" keys are overwritten in the environment if -there is a config param of <name>[@<version>]:<key>. For example, -if the package.json has this:

          -
          { "name" : "foo"
          -, "config" : { "port" : "8080" }
          -, "scripts" : { "start" : "node server.js" } }
          -

          and the server.js is this:

          -
          http.createServer(...).listen(process.env.npm_package_config_port)
          -

          then the user could change the behavior by doing:

          -
          npm config set foo:port 80
          -

          current lifecycle event

          -

          Lastly, the npm_lifecycle_event environment variable is set to -whichever stage of the cycle is being executed. So, you could have a -single script used for different parts of the process which switches -based on what's currently happening.

          -

          Objects are flattened following this format, so if you had -{"scripts":{"install":"foo.js"}} in your package.json, then you'd -see this in the script:

          -
          process.env.npm_package_scripts_install === "foo.js"
          -

          EXAMPLES

          -

          For example, if your package.json contains this:

          -
          { "scripts" :
          -  { "install" : "scripts/install.js"
          -  , "postinstall" : "scripts/install.js"
          -  , "uninstall" : "scripts/uninstall.js"
          -  }
          -}
          -

          then scripts/install.js will be called for the install -and post-install stages of the lifecycle, and scripts/uninstall.js -will be called when the package is uninstalled. Since -scripts/install.js is running for two different phases, it would -be wise in this case to look at the npm_lifecycle_event environment -variable.

          -

          If you want to run a make command, you can do so. This works just -fine:

          -
          { "scripts" :
          -  { "preinstall" : "./configure"
          -  , "install" : "make && make install"
          -  , "test" : "make test"
          -  }
          -}
          -

          EXITING

          -

          Scripts are run by passing the line as a script argument to sh.

          -

          If the script exits with a code other than 0, then this will abort the -process.

          -

          Note that these script files don't have to be nodejs or even -javascript programs. They just have to be some kind of executable -file.

          -

          HOOK SCRIPTS

          -

          If you want to run a specific script at a specific lifecycle event for -ALL packages, then you can use a hook script.

          -

          Place an executable file at node_modules/.hooks/{eventname}, and -it'll get run for all packages when they are going through that point -in the package lifecycle for any packages installed in that root.

          -

          Hook scripts are run exactly the same way as package.json scripts. -That is, they are in a separate child process, with the env described -above.

          -

          BEST PRACTICES

          -
            -
          • Don't exit with a non-zero error code unless you really mean it. -Except for uninstall scripts, this will cause the npm action to -fail, and potentially be rolled back. If the failure is minor or -only will prevent some optional features, then it's better to just -print a warning and exit successfully.
          • -
          • Try not to use scripts to do what npm can do for you. Read through -package.json(5) to see all the things that you can specify and enable -by simply describing your package appropriately. In general, this -will lead to a more robust and consistent state.
          • -
          • Inspect the env to determine where to put things. For instance, if -the npm_config_binroot environment variable is set to /home/user/bin, then -don't try to install executables into /usr/local/bin. The user -probably set it up that way for a reason.
          • -
          • Don't prefix your script commands with "sudo". If root permissions -are required for some reason, then it'll fail with that error, and -the user will sudo the npm command in question.
          • -
          • Don't use install. Use a .gyp file for compilation, and prepublish -for anything else. You should almost never have to explicitly set a -preinstall or install script. If you are doing this, please consider if -there is another option. The only valid use of install or preinstall -scripts is for compilation which must be done on the target architecture.
          • -
          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/removing-npm.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/removing-npm.html deleted file mode 100644 index 14fc8fa2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/removing-npm.html +++ /dev/null @@ -1,61 +0,0 @@ - - - removing-npm - - - - - - -
          - -

          npm-removal

          Cleaning the Slate

          -

          SYNOPSIS

          -

          So sad to see you go.

          -
          sudo npm uninstall npm -g
          -

          Or, if that fails, get the npm source code, and do:

          -
          sudo make uninstall
          -

          More Severe Uninstalling

          -

          Usually, the above instructions are sufficient. That will remove -npm, but leave behind anything you've installed.

          -

          If that doesn't work, or if you require more drastic measures, -continue reading.

          -

          Note that this is only necessary for globally-installed packages. Local -installs are completely contained within a project's node_modules -folder. Delete that folder, and everything is gone (unless a package's -install script is particularly ill-behaved).

          -

          This assumes that you installed node and npm in the default place. If -you configured node with a different --prefix, or installed npm with a -different prefix setting, then adjust the paths accordingly, replacing -/usr/local with your install prefix.

          -

          To remove everything npm-related manually:

          -
          rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*
          -

          If you installed things with npm, then your best bet is to uninstall -them with npm first, and then install them again once you have a -proper install. This can help find any symlinks that are lying -around:

          -
          ls -laF /usr/local/{lib/node{,/.npm},bin,share/man} | grep npm
          -

          Prior to version 0.3, npm used shim files for executables and node -modules. To track those down, you can do the following:

          -
          find /usr/local/{lib/node,bin} -exec grep -l npm \{\} \; ;
          -

          (This is also in the README file.)

          -

          SEE ALSO

          - - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/semver.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/semver.html deleted file mode 100644 index 3f5e1774..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/doc/misc/semver.html +++ /dev/null @@ -1,306 +0,0 @@ - - - semver - - - - - - -
          - -

          semver

          The semantic versioner for npm

          -

          Usage

          -
          $ npm install semver
          -
          -semver.valid('1.2.3') // '1.2.3'
          -semver.valid('a.b.c') // null
          -semver.clean('  =v1.2.3   ') // '1.2.3'
          -semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true
          -semver.gt('1.2.3', '9.8.7') // false
          -semver.lt('1.2.3', '9.8.7') // true
          -

          As a command-line utility:

          -
          $ semver -h
          -
          -Usage: semver <version> [<version> [...]] [-r <range> | -i <inc> | --preid <identifier> | -l | -rv]
          -Test if version(s) satisfy the supplied range(s), and sort them.
          -
          -Multiple versions or ranges may be supplied, unless increment
          -option is specified.  In that case, only a single version may
          -be used, and it is incremented by the specified level
          -
          -Program exits successfully if any valid version satisfies
          -all supplied ranges, and prints all satisfying versions.
          -
          -If no versions are valid, or ranges are not satisfied,
          -then exits failure.
          -
          -Versions are printed in ascending order, so supplying
          -multiple versions to the utility will just sort them.
          -

          Versions

          -

          A "version" is described by the v2.0.0 specification found at -http://semver.org/.

          -

          A leading "=" or "v" character is stripped off and ignored.

          -

          Ranges

          -

          A version range is a set of comparators which specify versions -that satisfy the range.

          -

          A comparator is composed of an operator and a version. The set -of primitive operators is:

          -
            -
          • < Less than
          • -
          • <= Less than or equal to
          • -
          • > Greater than
          • -
          • >= Greater than or equal to
          • -
          • = Equal. If no operator is specified, then equality is assumed, -so this operator is optional, but MAY be included.
          • -
          -

          For example, the comparator >=1.2.7 would match the versions -1.2.7, 1.2.8, 2.5.3, and 1.3.9, but not the versions 1.2.6 -or 1.1.0.

          -

          Comparators can be joined by whitespace to form a comparator set, -which is satisfied by the intersection of all of the comparators -it includes.

          -

          A range is composed of one or more comparator sets, joined by ||. A -version matches a range if and only if every comparator in at least -one of the ||-separated comparator sets is satisfied by the version.

          -

          For example, the range >=1.2.7 <1.3.0 would match the versions -1.2.7, 1.2.8, and 1.2.99, but not the versions 1.2.6, 1.3.0, -or 1.1.0.

          -

          The range 1.2.7 || >=1.2.9 <2.0.0 would match the versions 1.2.7, -1.2.9, and 1.4.6, but not the versions 1.2.8 or 2.0.0.

          -

          Prerelease Tags

          -

          If a version has a prerelease tag (for example, 1.2.3-alpha.3) then -it will only be allowed to satisfy comparator sets if at least one -comparator with the same [major, minor, patch] tuple also has a -prerelease tag.

          -

          For example, the range >1.2.3-alpha.3 would be allowed to match the -version 1.2.3-alpha.7, but it would not be satisfied by -3.4.5-alpha.9, even though 3.4.5-alpha.9 is technically "greater -than" 1.2.3-alpha.3 according to the SemVer sort rules. The version -range only accepts prerelease tags on the 1.2.3 version. The -version 3.4.5 would satisfy the range, because it does not have a -prerelease flag, and 3.4.5 is greater than 1.2.3-alpha.7.

          -

          The purpose for this behavior is twofold. First, prerelease versions -frequently are updated very quickly, and contain many breaking changes -that are (by the author's design) not yet fit for public consumption. -Therefore, by default, they are excluded from range matching -semantics.

          -

          Second, a user who has opted into using a prerelease version has -clearly indicated the intent to use that specific set of -alpha/beta/rc versions. By including a prerelease tag in the range, -the user is indicating that they are aware of the risk. However, it -is still not appropriate to assume that they have opted into taking a -similar risk on the next set of prerelease versions.

          -

          Prerelease Identifiers

          -

          The method .inc takes an additional identifier string argument that -will append the value of the string as a prerelease identifier:

          -
          > semver.inc('1.2.3', 'prerelease', 'beta')
          -'1.2.4-beta.0'
          -
          -

          command-line example:

          -
          $ semver 1.2.3 -i prerelease --preid beta
          -1.2.4-beta.0
          -
          -

          Which then can be used to increment further:

          -
          $ semver 1.2.4-beta.0 -i prerelease
          -1.2.4-beta.1
          -
          -

          Advanced Range Syntax

          -

          Advanced range syntax desugars to primitive comparators in -deterministic ways.

          -

          Advanced ranges may be combined in the same way as primitive -comparators using white space or ||.

          -

          Hyphen Ranges X.Y.Z - A.B.C

          -

          Specifies an inclusive set.

          -
            -
          • 1.2.3 - 2.3.4 := >=1.2.3 <=2.3.4
          • -
          -

          If a partial version is provided as the first version in the inclusive -range, then the missing pieces are replaced with zeroes.

          -
            -
          • 1.2 - 2.3.4 := >=1.2.0 <=2.3.4
          • -
          -

          If a partial version is provided as the second version in the -inclusive range, then all versions that start with the supplied parts -of the tuple are accepted, but nothing that would be greater than the -provided tuple parts.

          -
            -
          • 1.2.3 - 2.3 := >=1.2.3 <2.4.0
          • -
          • 1.2.3 - 2 := >=1.2.3 <3.0.0
          • -
          -

          X-Ranges 1.2.x 1.X 1.2.* *

          -

          Any of X, x, or * may be used to "stand in" for one of the -numeric values in the [major, minor, patch] tuple.

          -
            -
          • * := >=0.0.0 (Any version satisfies)
          • -
          • 1.x := >=1.0.0 <2.0.0 (Matching major version)
          • -
          • 1.2.x := >=1.2.0 <1.3.0 (Matching major and minor versions)
          • -
          -

          A partial version range is treated as an X-Range, so the special -character is in fact optional.

          -
            -
          • "" (empty string) := * := >=0.0.0
          • -
          • 1 := 1.x.x := >=1.0.0 <2.0.0
          • -
          • 1.2 := 1.2.x := >=1.2.0 <1.3.0
          • -
          -

          Tilde Ranges ~1.2.3 ~1.2 ~1

          -

          Allows patch-level changes if a minor version is specified on the -comparator. Allows minor-level changes if not.

          -
            -
          • ~1.2.3 := >=1.2.3 <1.(2+1).0 := >=1.2.3 <1.3.0
          • -
          • ~1.2 := >=1.2.0 <1.(2+1).0 := >=1.2.0 <1.3.0 (Same as 1.2.x)
          • -
          • ~1 := >=1.0.0 <(1+1).0.0 := >=1.0.0 <2.0.0 (Same as 1.x)
          • -
          • ~0.2.3 := >=0.2.3 <0.(2+1).0 := >=0.2.3 <0.3.0
          • -
          • ~0.2 := >=0.2.0 <0.(2+1).0 := >=0.2.0 <0.3.0 (Same as 0.2.x)
          • -
          • ~0 := >=0.0.0 <(0+1).0.0 := >=0.0.0 <1.0.0 (Same as 0.x)
          • -
          • ~1.2.3-beta.2 := >=1.2.3-beta.2 <1.3.0 Note that prereleases in -the 1.2.3 version will be allowed, if they are greater than or -equal to beta.2. So, 1.2.3-beta.4 would be allowed, but -1.2.4-beta.2 would not, because it is a prerelease of a -different [major, minor, patch] tuple.
          • -
          -

          Caret Ranges ^1.2.3 ^0.2.5 ^0.0.4

          -

          Allows changes that do not modify the left-most non-zero digit in the -[major, minor, patch] tuple. In other words, this allows patch and -minor updates for versions 1.0.0 and above, patch updates for -versions 0.X >=0.1.0, and no updates for versions 0.0.X.

          -

          Many authors treat a 0.x version as if the x were the major -"breaking-change" indicator.

          -

          Caret ranges are ideal when an author may make breaking changes -between 0.2.4 and 0.3.0 releases, which is a common practice. -However, it presumes that there will not be breaking changes between -0.2.4 and 0.2.5. It allows for changes that are presumed to be -additive (but non-breaking), according to commonly observed practices.

          -
            -
          • ^1.2.3 := >=1.2.3 <2.0.0
          • -
          • ^0.2.3 := >=0.2.3 <0.3.0
          • -
          • ^0.0.3 := >=0.0.3 <0.0.4
          • -
          • ^1.2.3-beta.2 := >=1.2.3-beta.2 <2.0.0 Note that prereleases in -the 1.2.3 version will be allowed, if they are greater than or -equal to beta.2. So, 1.2.3-beta.4 would be allowed, but -1.2.4-beta.2 would not, because it is a prerelease of a -different [major, minor, patch] tuple.
          • -
          • ^0.0.3-beta := >=0.0.3-beta <0.0.4 Note that prereleases in the -0.0.3 version only will be allowed, if they are greater than or -equal to beta. So, 0.0.3-pr.2 would be allowed.
          • -
          -

          When parsing caret ranges, a missing patch value desugars to the -number 0, but will allow flexibility within that value, even if the -major and minor versions are both 0.

          -
            -
          • ^1.2.x := >=1.2.0 <2.0.0
          • -
          • ^0.0.x := >=0.0.0 <0.1.0
          • -
          • ^0.0 := >=0.0.0 <0.1.0
          • -
          -

          A missing minor and patch values will desugar to zero, but also -allow flexibility within those values, even if the major version is -zero.

          -
            -
          • ^1.x := >=1.0.0 <2.0.0
          • -
          • ^0.x := >=0.0.0 <1.0.0
          • -
          -

          Range Grammar

          -

          Putting all this together, here is a Backus-Naur grammar for ranges, -for the benefit of parser authors:

          -
          range-set  ::= range ( logical-or range ) *
          -logical-or ::= ( ' ' ) * '||' ( ' ' ) *
          -range      ::= hyphen | simple ( ' ' simple ) * | ''
          -hyphen     ::= partial ' - ' partial
          -simple     ::= primitive | partial | tilde | caret
          -primitive  ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial
          -partial    ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
          -xr         ::= 'x' | 'X' | '*' | nr
          -nr         ::= '0' | ['1'-'9']['0'-'9']+
          -tilde      ::= '~' partial
          -caret      ::= '^' partial
          -qualifier  ::= ( '-' pre )? ( '+' build )?
          -pre        ::= parts
          -build      ::= parts
          -parts      ::= part ( '.' part ) *
          -part       ::= nr | [-0-9A-Za-z]+
          -
          -

          Functions

          -

          All methods and classes take a final loose boolean argument that, if -true, will be more forgiving about not-quite-valid semver strings. -The resulting output will always be 100% strict, of course.

          -

          Strict-mode Comparators and Ranges will be strict about the SemVer -strings that they parse.

          -
            -
          • valid(v): Return the parsed version, or null if it's not valid.
          • -
          • inc(v, release): Return the version incremented by the release -type (major, premajor, minor, preminor, patch, -prepatch, or prerelease), or null if it's not valid
              -
            • premajor in one call will bump the version up to the next major -version and down to a prerelease of that major version. -preminor, and prepatch work the same way.
            • -
            • If called from a non-prerelease version, the prerelease will work the -same as prepatch. It increments the patch version, then makes a -prerelease. If the input version is already a prerelease it simply -increments it.
            • -
            -
          • -
          • major(v): Return the major version number.
          • -
          • minor(v): Return the minor version number.
          • -
          • patch(v): Return the patch version number.
          • -
          -

          Comparison

          -
            -
          • gt(v1, v2): v1 > v2
          • -
          • gte(v1, v2): v1 >= v2
          • -
          • lt(v1, v2): v1 < v2
          • -
          • lte(v1, v2): v1 <= v2
          • -
          • eq(v1, v2): v1 == v2 This is true if they're logically equivalent, -even if they're not the exact same string. You already know how to -compare strings.
          • -
          • neq(v1, v2): v1 != v2 The opposite of eq.
          • -
          • cmp(v1, comparator, v2): Pass in a comparison string, and it'll call -the corresponding function above. "===" and "!==" do simple -string comparison, but are included for completeness. Throws if an -invalid comparison string is provided.
          • -
          • compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if -v2 is greater. Sorts in ascending order if passed to Array.sort().
          • -
          • rcompare(v1, v2): The reverse of compare. Sorts an array of versions -in descending order when passed to Array.sort().
          • -
          • diff(v1, v2): Returns difference between two versions by the release type -(major, premajor, minor, preminor, patch, prepatch, or prerelease), -or null if the versions are the same.
          • -
          -

          Ranges

          -
            -
          • validRange(range): Return the valid range or null if it's not valid
          • -
          • satisfies(version, range): Return true if the version satisfies the -range.
          • -
          • maxSatisfying(versions, range): Return the highest version in the list -that satisfies the range, or null if none of them do.
          • -
          • gtr(version, range): Return true if version is greater than all the -versions possible in the range.
          • -
          • ltr(version, range): Return true if version is less than all the -versions possible in the range.
          • -
          • outside(version, range, hilo): Return true if the version is outside -the bounds of the range in either the high or low direction. The -hilo argument must be either the string '>' or '<'. (This is -the function called by gtr and ltr.)
          • -
          -

          Note that, since ranges may be non-contiguous, a version might not be -greater than a range, less than a range, or satisfy a range! For -example, the range 1.2 <1.2.9 || >2.0.0 would have a hole from 1.2.9 -until 2.0.0, so the version 1.2.10 would not be greater than the -range (because 2.0.1 satisfies, which is higher), nor less than the -range (since 1.2.8 satisfies, which is lower), and it also does not -satisfy the range.

          -

          If you want to know if a version satisfies or does not satisfy a -range, use the satisfies(version, range) function.

          - -
          - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/docfoot.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/docfoot.html deleted file mode 100644 index 11a67943..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/docfoot.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/dochead.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/dochead.html deleted file mode 100644 index e2f0e83d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/dochead.html +++ /dev/null @@ -1,11 +0,0 @@ - - - @NAME@ - - - - - - -
          - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/favicon.ico b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/favicon.ico deleted file mode 100644 index 9e0d4eef..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/favicon.ico and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/index.html deleted file mode 100644 index bb8681c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - npm - JavaScript Package Manager - -

          npm

          - -

          npm is a package manager for node. You can use it to install - and publish your node programs. It manages dependencies and does other cool stuff.

          - -

          Easy Zero Line Install

          - -

          Install Node.js
          -(npm comes with it.)

          - -

          Because a one-line install is one too many.

          - -

          Fancy Install

          - -
            -
          1. Get the code. -
          2. Do what the README - says to do. -
          - -

          There's a pretty thorough install script at -https://npmjs.org/install.sh

          - -

          For maximum security, make sure to thoroughly inspect every -program that you run on your computer!

          - -

          Other Cool Stuff

          - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/static/style.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/static/style.css deleted file mode 100644 index 7a7f6ea5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/static/style.css +++ /dev/null @@ -1,336 +0,0 @@ -/* reset */ -* { - margin:0; - padding:0; - border:none; - font-family:inherit; - font-size:inherit; - font-weight:inherit; -} -:target::before { - content:" >>> "; - position:absolute; - display:block; - opacity:0.5; - color:#f00; - margin:0 0 0 -2em; -} -abbr, acronym { - border-bottom:1px dotted #aaa; -} -kbd, code, pre { - font-family:monospace; - margin:0; - font-size:18px; - line-height:24px; - background:#eee; - outline:1px solid #ccc; -} -kbd code, kbd pre, kbd kbd, -pre code, pre pre, pre kbd, -code code, code pre, code kbd { outline: none } -.dollar::before { - content:"$ "; - display:inline; -} -p, ul, ol, dl, pre { - margin:30px 0; - line-height:30px; -} -hr { - margin:30px auto 29px; - width:66%; - height:1px; - background:#aaa; -} -pre { - display:block; -} -dd :first-child { - margin-top:0; -} - -body { - quotes:"“" "”" "‘" "’"; - width:666px; - margin:30px auto 120px; - font-family:Times New Roman, serif; - font-size:20px; - background:#fff; - line-height:30px; - color:#111; -} - -blockquote { - position:relative; - font-size:16px; - line-height:30px; - font-weight:bold; - width:85%; - margin:0 auto; -} -blockquote::before { - font-size:90px; - display:block; - position:absolute; - top:20px; - right:100%; - content:"“"; - padding-right:10px; - color:#ccc; -} -.source cite::before { - content:"— "; -} -.source { - padding-left:20%; - margin-top:30px; -} -.source cite span { - font-style:normal; -} -blockquote p { - margin-bottom:0; -} -.quote blockquote { - font-weight:normal; -} - -h1, h2, h3, h4, h5, h6, dt, #header { - font-family:serif; - font-size:20px; - font-weight:bold; -} -h2 { - background:#eee; -} -h1, h2 { - line-height:40px; -} - -i, em, cite { - font-style:italic; -} -b, strong { - font-weight:bold; -} -i, em, cite, b, strong, small { - line-height:28px; -} -small, .small, .small *, aside { - font-style:italic; - color:#669; - font-size:18px; -} -small a, .small a { - text-decoration:underline; -} -del { - text-decoration:line-through; -} -ins { - text-decoration:underline; -} -.alignright { display:block; float:right; margin-left:1em; } -.alignleft { display:block; float:left; margin-right:1em; } - -q:before, q q q:before, q q q q q:before, q q q q q q q:before { content:"“"; } -q q:before, q q q q:before, q q q q q q:before, q q q q q q q q:before { content:"‘"; } -q:after, q q q:after, q q q q q:after, q q q q q q q:after { content:"”"; } -q q:after, q q q q:after, q q q q q q:after, q q q q q q q q:after { content:"’"; } - -a { color:#00f; text-decoration:none; } -a:visited { color:#636; } -a:hover, a:active { color:#c00!important; text-decoration:underline; } - -h1 { - font-weight:bold; - background:#fff; -} -h1 a, h1 a:visited { - font-family:monospace; - font-size:60px; - color:#c00; - display:block; -} -h1 a:focus, h1 a:hover, h1 a:active { - color:#f00!important; - text-decoration:none; -} - -.navigation { - display:table; - width:100%; - margin:0 0 30px 0; - position:relative; -} -#nav-above { - margin-bottom:0; -} -.navigation .nav-previous { - display:table-cell; - text-align:left; - width:50%; -} -/* hang the » and « off into the margins */ -.navigation .nav-previous a:before, .navigation .nav-next a:after { - content: "«"; - display:block; - height:30px; - margin-bottom:-30px; - text-decoration:none; - margin-left:-15px; -} -.navigation .nav-next a:after { - content: "»"; - text-align:right; - margin-left:0; - margin-top:-30px; - margin-right:-15px; -} - - -.navigation .nav-next { - display:table-cell; - text-align:right; - width:50%; -} -.navigation a { - display:block; - width:100%; - height:100%; -} - -input, button, textarea { - border:0; - line-height:30px; -} -textarea { - height:300px; -} -input { - height:30px; - line-height:30px; -} -input.submit, input#submit, input.button, button, input[type=submit] { - cursor:hand; cursor:pointer; - outline:1px solid #ccc; -} - -#wrapper { - margin-bottom:90px; - position:relative; - z-index:1; - *zoom:1; - background:#fff; -} -#wrapper:after { - display:block; - content:"."; - visibility:hidden; - width:0; - height:0; - clear:both; -} - -.sidebar .xoxo > li { - float:left; - width:50%; -} -.sidebar li { - list-style:none; -} -.sidebar #elsewhere { - margin-left:-10%; - margin-right:-10%; -} -.sidebar #rss-links, .sidebar #twitter-feeds { - float:right; - clear:right; - width:20%; -} -.sidebar #comment { - clear:both; - float:none; - width:100%; -} -.sidebar #search { - clear:both; - float:none; - width:100%; -} -.sidebar #search h2 { - margin-left:40%; -} -.sidebar #search #s { - width:90%; - float:left; -} -.sidebar #search #searchsubmit { - width:10%; - float:right; -} -.sidebar * { - font-size:15px; - line-height:30px; -} - -#footer, #footer * { - text-align:center; - font-size:16px; - color:#ccc; - font-style:italic; - word-spacing:1em; - margin-top:0; -} - -#toc { - position:absolute; - top:0; - right:0; - padding:40px 0 40px 20px; - margin:0; - width:200px; - opacity:0.2; - z-index:-1; -} -#toc:hover { - opacity:1; - background:#fff; - z-index:999; -} -#toc ul { - padding:0; - margin:0; -} -#toc, #toc li { - list-style-type:none; - font-size:15px; - line-height:15px; -} -#toc li { - padding:0 0 0 10px; -} -#toc li a { - position:relative; - display:block; -} - -table#npmlogo { - line-height:10px; - width:180px; - margin:0 auto; -} - -@media print { - a[href] { - color:inherit; - } - a[href]:after { - white-space:nowrap; - content:" " attr(href); - } - a[href^=\#], .navigation { - display:none; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/static/toc.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/static/toc.js deleted file mode 100644 index 7551e47e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/html/static/toc.js +++ /dev/null @@ -1,29 +0,0 @@ -;(function () { - var wrapper = document.getElementById('wrapper') - var els = Array.prototype.slice.call(wrapper.getElementsByTagName('*'), 0) - .filter(function (el) { - return el.parentNode === wrapper && - el.tagName.match(/H[1-6]/) && - el.id - }) - var l = 2 - var toc = document.createElement('ul') - toc.innerHTML = els.map(function (el) { - var i = el.tagName.charAt(1) - var out = '' - while (i > l) { - out += '
            ' - l++ - } - while (i < l) { - out += '
          ' - l-- - } - out += '
        1. ' + - (el.innerText || el.text || el.innerHTML) + - '' - return out - }).join('\n') - toc.id = 'toc' - document.body.appendChild(toc) -})() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/access.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/access.js deleted file mode 100644 index 69527c2a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/access.js +++ /dev/null @@ -1,126 +0,0 @@ -'use strict' - -var resolve = require('path').resolve - -var readPackageJson = require('read-package-json') -var mapToRegistry = require('./utils/map-to-registry.js') -var npm = require('./npm.js') - -var whoami = require('./whoami') - -module.exports = access - -access.usage = - 'npm access public []\n' + - 'npm access restricted []\n' + - 'npm access grant []\n' + - 'npm access revoke []\n' + - 'npm access ls-packages [||]\n' + - 'npm access ls-collaborators [ []]\n' + - 'npm access edit []' - -access.subcommands = ['public', 'restricted', 'grant', 'revoke', - 'ls-packages', 'ls-collaborators', 'edit'] - -access.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv.length === 2) { - return cb(null, access.subcommands) - } - - switch (argv[2]) { - case 'grant': - if (argv.length === 3) { - return cb(null, ['read-only', 'read-write']) - } else { - return cb(null, []) - } - case 'public': - case 'restricted': - case 'ls-packages': - case 'ls-collaborators': - case 'edit': - return cb(null, []) - case 'revoke': - return cb(null, []) - default: - return cb(new Error(argv[2] + ' not recognized')) - } -} - -function access (args, cb) { - var cmd = args.shift() - var params - return parseParams(cmd, args, function (err, p) { - if (err) { return cb(err) } - params = p - return mapToRegistry(params.package, npm.config, invokeCmd) - }) - - function invokeCmd (err, uri, auth, base) { - if (err) { return cb(err) } - params.auth = auth - try { - return npm.registry.access(cmd, uri, params, function (err, data) { - !err && data && console.log(JSON.stringify(data, undefined, 2)) - cb(err, data) - }) - } catch (e) { - cb(e.message + '\n\nUsage:\n' + access.usage) - } - } -} - -function parseParams (cmd, args, cb) { - // mapToRegistry will complain if package is undefined, - // but it's not needed for ls-packages - var params = { 'package': '' } - if (cmd === 'grant') { - params.permissions = args.shift() - } - if (['grant', 'revoke', 'ls-packages'].indexOf(cmd) !== -1) { - var entity = (args.shift() || '').split(':') - params.scope = entity[0] - params.team = entity[1] - } - - if (cmd === 'ls-packages') { - if (!params.scope) { - whoami([], true, function (err, scope) { - params.scope = scope - cb(err, params) - }) - } else { - cb(null, params) - } - } else { - getPackage(args.shift(), function (err, pkg) { - if (err) return cb(err) - params.package = pkg - - if (cmd === 'ls-collaborators') params.user = args.shift() - cb(null, params) - }) - } -} - -function getPackage (name, cb) { - if (name && name.trim()) { - cb(null, name.trim()) - } else { - readPackageJson( - resolve(npm.prefix, 'package.json'), - function (err, data) { - if (err) { - if (err.code === 'ENOENT') { - cb(new Error('no package name passed to command and no package.json found')) - } else { - cb(err) - } - } else { - cb(null, data.name) - } - } - ) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/adduser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/adduser.js deleted file mode 100644 index 3a7425d4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/adduser.js +++ /dev/null @@ -1,179 +0,0 @@ -module.exports = adduser - -var log = require('npmlog') -var npm = require('./npm.js') -var read = require('read') -var userValidate = require('npm-user-validate') -var usage = require('./utils/usage') -var crypto - -try { - crypto = require('crypto') -} catch (ex) {} - -adduser.usage = usage( - 'adduser', - 'npm adduser [--registry=url] [--scope=@orgname] [--always-auth]' -) - -function adduser (args, cb) { - if (!crypto) { - return cb(new Error( - 'You must compile node with ssl support to use the adduser feature' - )) - } - - var creds = npm.config.getCredentialsByURI(npm.config.get('registry')) - var c = { - u: creds.username || '', - p: creds.password || '', - e: creds.email || '' - } - var u = {} - var fns = [readUsername, readPassword, readEmail, save] - - loop() - function loop (er) { - if (er) return cb(er) - var fn = fns.shift() - if (fn) return fn(c, u, loop) - cb() - } -} - -function readUsername (c, u, cb) { - var v = userValidate.username - read({prompt: 'Username: ', default: c.u || ''}, function (er, un) { - if (er) { - return cb(er.message === 'cancelled' ? er.message : er) - } - - // make sure it's valid. we have to do this here, because - // couchdb will only ever say "bad password" with a 401 when - // you try to PUT a _users record that the validate_doc_update - // rejects for *any* reason. - - if (!un) { - return readUsername(c, u, cb) - } - - var error = v(un) - if (error) { - log.warn(error.message) - return readUsername(c, u, cb) - } - - c.changed = c.u !== un - u.u = un - cb(er) - }) -} - -function readPassword (c, u, cb) { - var v = userValidate.pw - - var prompt - if (c.p && !c.changed) { - prompt = 'Password: (or leave unchanged) ' - } else { - prompt = 'Password: ' - } - - read({prompt: prompt, silent: true}, function (er, pw) { - if (er) { - return cb(er.message === 'cancelled' ? er.message : er) - } - - if (!c.changed && pw === '') { - // when the username was not changed, - // empty response means "use the old value" - pw = c.p - } - - if (!pw) { - return readPassword(c, u, cb) - } - - var error = v(pw) - if (error) { - log.warn(error.message) - return readPassword(c, u, cb) - } - - c.changed = c.changed || c.p !== pw - u.p = pw - cb(er) - }) -} - -function readEmail (c, u, cb) { - var v = userValidate.email - var r = { prompt: 'Email: (this IS public) ', default: c.e || '' } - read(r, function (er, em) { - if (er) { - return cb(er.message === 'cancelled' ? er.message : er) - } - - if (!em) { - return readEmail(c, u, cb) - } - - var error = v(em) - if (error) { - log.warn(error.message) - return readEmail(c, u, cb) - } - - u.e = em - cb(er) - }) -} - -function save (c, u, cb) { - // save existing configs, but yank off for this PUT - var uri = npm.config.get('registry') - var scope = npm.config.get('scope') - - // there may be a saved scope and no --registry (for login) - if (scope) { - if (scope.charAt(0) !== '@') scope = '@' + scope - - var scopedRegistry = npm.config.get(scope + ':registry') - var cliRegistry = npm.config.get('registry', 'cli') - if (scopedRegistry && !cliRegistry) uri = scopedRegistry - } - - var params = { - auth: { - username: u.u, - password: u.p, - email: u.e - } - } - npm.registry.adduser(uri, params, function (er, doc) { - if (er) return cb(er) - - // don't want this polluting the configuration - npm.config.del('_token', 'user') - - if (scope) npm.config.set(scope + ':registry', uri, 'user') - - if (doc && doc.token) { - npm.config.setCredentialsByURI(uri, { - token: doc.token - }) - } else { - npm.config.setCredentialsByURI(uri, { - username: u.u, - password: u.p, - email: u.e, - alwaysAuth: npm.config.get('always-auth') - }) - } - - log.info('adduser', 'Authorized user %s', u.u) - var scopeMessage = scope ? ' to scope ' + scope : '' - console.log('Logged in as %s%s on %s.', u.u, scopeMessage, uri) - npm.config.save('user', cb) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/bin.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/bin.js deleted file mode 100644 index 2e02617d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/bin.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = bin - -var npm = require('./npm.js') -var osenv = require('osenv') - -bin.usage = 'npm bin [--global]' - -function bin (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - var b = npm.bin - var PATH = osenv.path() - - if (!silent) console.log(b) - process.nextTick(cb.bind(this, null, b)) - - if (npm.config.get('global') && PATH.indexOf(b) === -1) { - npm.config.get('logstream').write('(not in PATH env variable)\n') - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/bugs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/bugs.js deleted file mode 100644 index 003ce7f8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/bugs.js +++ /dev/null @@ -1,32 +0,0 @@ -module.exports = bugs - -var npm = require('./npm.js') -var log = require('npmlog') -var opener = require('opener') -var fetchPackageMetadata = require('./fetch-package-metadata.js') -var usage = require('./utils/usage') - -bugs.usage = usage( - 'bugs', - 'npm bugs []' -) - -bugs.completion = function (opts, cb) { - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - cb() -} - -function bugs (args, cb) { - var n = args.length ? args[0] : '.' - fetchPackageMetadata(n, '.', function (er, d) { - if (er) return cb(er) - - var url = d.bugs && ((typeof d.bugs === 'string') ? d.bugs : d.bugs.url) - if (!url) { - url = 'https://www.npmjs.org/package/' + d.name - } - log.silly('bugs', 'url', url) - opener(url, { command: npm.config.get('browser') }, cb) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/build.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/build.js deleted file mode 100644 index e9da59a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/build.js +++ /dev/null @@ -1,268 +0,0 @@ -// npm build command - -// everything about the installation after the creation of -// the .npm/{name}/{version}/package folder. -// linking the modules into the npm.root, -// resolving dependencies, etc. - -// This runs AFTER install or link are completed. - -var npm = require('./npm.js') -var log = require('npmlog') -var chain = require('slide').chain -var fs = require('graceful-fs') -var path = require('path') -var lifecycle = require('./utils/lifecycle.js') -var readJson = require('read-package-json') -var link = require('./utils/link.js') -var linkIfExists = link.ifExists -var cmdShim = require('cmd-shim') -var cmdShimIfExists = cmdShim.ifExists -var asyncMap = require('slide').asyncMap -var ini = require('ini') -var writeFile = require('write-file-atomic') -var packageId = require('./utils/package-id.js') - -module.exports = build -build.usage = 'npm build []' - -build._didBuild = {} -build._noLC = {} -function build (args, global, didPre, didRB, cb) { - if (typeof cb !== 'function') { - cb = didRB - didRB = false - } - if (typeof cb !== 'function') { - cb = didPre - didPre = false - } - if (typeof cb !== 'function') { - cb = global - global = npm.config.get('global') - } - - // it'd be nice to asyncMap these, but actually, doing them - // in parallel generally munges up the output from node-waf - var builder = build_(global, didPre, didRB) - chain(args.map(function (arg) { - return function (cb) { - builder(arg, cb) - } - }), cb) -} - -function build_ (global, didPre, didRB) { - return function (folder, cb) { - folder = path.resolve(folder) - if (build._didBuild[folder]) log.info('build', 'already built', folder) - build._didBuild[folder] = true - log.info('build', folder) - readJson(path.resolve(folder, 'package.json'), function (er, pkg) { - if (er) return cb(er) - chain([ - !didPre && [lifecycle, pkg, 'preinstall', folder], - [linkStuff, pkg, folder, global, didRB], - [writeBuiltinConf, pkg, folder], - didPre !== build._noLC && [lifecycle, pkg, 'install', folder], - didPre !== build._noLC && [lifecycle, pkg, 'postinstall', folder], - didPre !== build._noLC && npm.config.get('npat') && [lifecycle, pkg, 'test', folder] - ], - cb) - }) - } -} - -var writeBuiltinConf = build.writeBuiltinConf = function (pkg, folder, cb) { - // the builtin config is "sticky". Any time npm installs - // itself globally, it puts its builtin config file there - var parent = path.dirname(folder) - var dir = npm.globalDir - - if (pkg.name !== 'npm' || - !npm.config.get('global') || - !npm.config.usingBuiltin || - dir !== parent) { - return cb() - } - - var data = ini.stringify(npm.config.sources.builtin.data) - writeFile(path.resolve(folder, 'npmrc'), data, cb) -} - -var linkStuff = build.linkStuff = function (pkg, folder, global, didRB, cb) { - // allow to opt out of linking binaries. - if (npm.config.get('bin-links') === false) return cb() - - // if it's global, and folder is in {prefix}/node_modules, - // then bins are in {prefix}/bin - // otherwise, then bins are in folder/../.bin - var parent = pkg.name && pkg.name[0] === '@' ? path.dirname(path.dirname(folder)) : path.dirname(folder) - var gnm = global && npm.globalDir - var gtop = parent === gnm - - log.info('linkStuff', packageId(pkg)) - log.silly('linkStuff', packageId(pkg), 'has', parent, 'as its parent node_modules') - if (global) log.silly('linkStuff', packageId(pkg), 'is part of a global install') - if (gnm) log.silly('linkStuff', packageId(pkg), 'is installed into a global node_modules') - if (gtop) log.silly('linkStuff', packageId(pkg), 'is installed into the top-level global node_modules') - - shouldWarn(pkg, folder, global, function () { - asyncMap( - [linkBins, linkMans, !didRB && rebuildBundles], - function (fn, cb) { - if (!fn) return cb() - log.verbose(fn.name, packageId(pkg)) - fn(pkg, folder, parent, gtop, cb) - }, - cb - ) - }) -} - -function shouldWarn (pkg, folder, global, cb) { - var parent = path.dirname(folder) - var top = parent === npm.dir - var cwd = npm.localPrefix - - readJson(path.resolve(cwd, 'package.json'), function (er, topPkg) { - if (er) return cb(er) - - var linkedPkg = path.basename(cwd) - var currentPkg = path.basename(folder) - - // current searched package is the linked package on first call - if (linkedPkg !== currentPkg) { - // don't generate a warning if it's listed in dependencies - if (Object.keys(topPkg.dependencies || {}) - .concat(Object.keys(topPkg.devDependencies || {})) - .indexOf(currentPkg) === -1) { - if (top && pkg.preferGlobal && !global) { - log.warn('prefer global', packageId(pkg) + ' should be installed with -g') - } - } - } - - cb() - }) -} - -function rebuildBundles (pkg, folder, parent, gtop, cb) { - if (!npm.config.get('rebuild-bundle')) return cb() - - var deps = Object.keys(pkg.dependencies || {}) - .concat(Object.keys(pkg.devDependencies || {})) - var bundles = pkg.bundleDependencies || pkg.bundledDependencies || [] - - fs.readdir(path.resolve(folder, 'node_modules'), function (er, files) { - // error means no bundles - if (er) return cb() - - log.verbose('rebuildBundles', files) - // don't asyncMap these, because otherwise build script output - // gets interleaved and is impossible to read - chain(files.filter(function (file) { - // rebuild if: - // not a .folder, like .bin or .hooks - return !file.match(/^[\._-]/) && - // not some old 0.x style bundle - file.indexOf('@') === -1 && - // either not a dep, or explicitly bundled - (deps.indexOf(file) === -1 || bundles.indexOf(file) !== -1) - }).map(function (file) { - file = path.resolve(folder, 'node_modules', file) - return function (cb) { - if (build._didBuild[file]) return cb() - log.verbose('rebuild bundle', file) - // if file is not a package dir, then don't do it. - fs.lstat(path.resolve(file, 'package.json'), function (er) { - if (er) return cb() - build_(false)(file, cb) - }) - } - }), cb) - }) -} - -function linkBins (pkg, folder, parent, gtop, cb) { - if (!pkg.bin || !gtop && path.basename(parent) !== 'node_modules') { - return cb() - } - var binRoot = gtop ? npm.globalBin - : path.resolve(parent, '.bin') - log.verbose('link bins', [pkg.bin, binRoot, gtop]) - - asyncMap(Object.keys(pkg.bin), function (b, cb) { - linkBin( - path.resolve(folder, pkg.bin[b]), - path.resolve(binRoot, b), - gtop && folder, - function (er) { - if (er) return cb(er) - // bins should always be executable. - // XXX skip chmod on windows? - var src = path.resolve(folder, pkg.bin[b]) - fs.chmod(src, npm.modes.exec, function (er) { - if (er && er.code === 'ENOENT' && npm.config.get('ignore-scripts')) { - return cb() - } - if (er || !gtop) return cb(er) - var dest = path.resolve(binRoot, b) - var out = npm.config.get('parseable') - ? dest + '::' + src + ':BINFILE' - : dest + ' -> ' + src - log.clearProgress() - console.log(out) - log.showProgress() - cb() - }) - } - ) - }, cb) -} - -function linkBin (from, to, gently, cb) { - if (process.platform !== 'win32') { - return linkIfExists(from, to, gently, cb) - } else { - return cmdShimIfExists(from, to, cb) - } -} - -function linkMans (pkg, folder, parent, gtop, cb) { - if (!pkg.man || !gtop || process.platform === 'win32') return cb() - - var manRoot = path.resolve(npm.config.get('prefix'), 'share', 'man') - log.verbose('linkMans', 'man files are', pkg.man, 'in', manRoot) - - // make sure that the mans are unique. - // otherwise, if there are dupes, it'll fail with EEXIST - var set = pkg.man.reduce(function (acc, man) { - acc[path.basename(man)] = man - return acc - }, {}) - pkg.man = pkg.man.filter(function (man) { - return set[path.basename(man)] === man - }) - - asyncMap(pkg.man, function (man, cb) { - if (typeof man !== 'string') return cb() - log.silly('linkMans', 'preparing to link', man) - var parseMan = man.match(/(.*\.([0-9]+)(\.gz)?)$/) - if (!parseMan) { - return cb(new Error( - man + ' is not a valid name for a man file. ' + - 'Man files must end with a number, ' + - 'and optionally a .gz suffix if they are compressed.' - )) - } - - var stem = parseMan[1] - var sxn = parseMan[2] - var bn = path.basename(stem) - var manSrc = path.resolve(folder, man) - var manDest = path.join(manRoot, 'man' + sxn, bn) - - linkIfExists(manSrc, manDest, gtop && folder, cb) - }, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache.js deleted file mode 100644 index 757ba6e7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache.js +++ /dev/null @@ -1,366 +0,0 @@ -// XXX lib/utils/tar.js and this file need to be rewritten. - -// URL-to-cache folder mapping: -// : -> ! -// @ -> _ -// http://registry.npmjs.org/foo/version -> cache/http!/... -// - -/* -fetching a URL: -1. Check for URL in inflight URLs. If present, add cb, and return. -2. Acquire lock at {cache}/{sha(url)}.lock - retries = {cache-lock-retries, def=10} - stale = {cache-lock-stale, def=60000} - wait = {cache-lock-wait, def=10000} -3. if lock can't be acquired, then fail -4. fetch url, clear lock, call cbs - -cache folders: -1. urls: http!/server.com/path/to/thing -2. c:\path\to\thing: file!/c!/path/to/thing -3. /path/to/thing: file!/path/to/thing -4. git@ private: git_github.com!npm/npm -5. git://public: git!/github.com/npm/npm -6. git+blah:// git-blah!/server.com/foo/bar - -adding a folder: -1. tar into tmp/random/package.tgz -2. untar into tmp/random/contents/package, stripping one dir piece -3. tar tmp/random/contents/package to cache/n/v/package.tgz -4. untar cache/n/v/package.tgz into cache/n/v/package -5. rm tmp/random - -Adding a url: -1. fetch to tmp/random/package.tgz -2. goto folder(2) - -adding a name@version: -1. registry.get(name/version) -2. if response isn't 304, add url(dist.tarball) - -adding a name@range: -1. registry.get(name) -2. Find a version that satisfies -3. add name@version - -adding a local tarball: -1. untar to tmp/random/{blah} -2. goto folder(2) - -adding a namespaced package: -1. lookup registry for @namespace -2. namespace_registry.get('name') -3. add url(namespace/latest.tarball) -*/ - -exports = module.exports = cache - -cache.unpack = unpack -cache.clean = clean -cache.read = read - -var npm = require('./npm.js') -var fs = require('graceful-fs') -var writeFileAtomic = require('write-file-atomic') -var assert = require('assert') -var rm = require('./utils/gently-rm.js') -var readJson = require('read-package-json') -var log = require('npmlog') -var path = require('path') -var asyncMap = require('slide').asyncMap -var tar = require('./utils/tar.js') -var fileCompletion = require('./utils/completion/file-completion.js') -var deprCheck = require('./utils/depr-check.js') -var addNamed = require('./cache/add-named.js') -var addLocal = require('./cache/add-local.js') -var addRemoteTarball = require('./cache/add-remote-tarball.js') -var addRemoteGit = require('./cache/add-remote-git.js') -var inflight = require('inflight') -var realizePackageSpecifier = require('realize-package-specifier') -var npa = require('npm-package-arg') -var getStat = require('./cache/get-stat.js') -var cachedPackageRoot = require('./cache/cached-package-root.js') -var mapToRegistry = require('./utils/map-to-registry.js') - -cache.usage = 'npm cache add ' + - '\nnpm cache add ' + - '\nnpm cache add ' + - '\nnpm cache add ' + - '\nnpm cache add @' + - '\nnpm cache ls []' + - '\nnpm cache clean [[@]]' - -cache.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv.length === 2) { - return cb(null, ['add', 'ls', 'clean']) - } - - switch (argv[2]) { - case 'clean': - case 'ls': - // cache and ls are easy, because the completion is - // what ls_ returns anyway. - // just get the partial words, minus the last path part - var p = path.dirname(opts.partialWords.slice(3).join('/')) - if (p === '.') p = '' - return ls_(p, 2, cb) - case 'add': - // Same semantics as install and publish. - return npm.commands.install.completion(opts, cb) - } -} - -function cache (args, cb) { - var cmd = args.shift() - switch (cmd) { - case 'rm': case 'clear': case 'clean': return clean(args, cb) - case 'list': case 'sl': case 'ls': return ls(args, cb) - case 'add': return add(args, npm.prefix, cb) - default: return cb('Usage: ' + cache.usage) - } -} - -// if the pkg and ver are in the cache, then -// just do a readJson and return. -// if they're not, then fetch them from the registry. -function read (name, ver, forceBypass, cb) { - assert(typeof name === 'string', 'must include name of module to install') - assert(typeof cb === 'function', 'must include callback') - - if (forceBypass === undefined || forceBypass === null) forceBypass = true - - var root = cachedPackageRoot({name: name, version: ver}) - function c (er, data) { - if (er) log.verbose('cache', 'addNamed error for', name + '@' + ver, er) - if (data) deprCheck(data) - - return cb(er, data) - } - - if (forceBypass && npm.config.get('force')) { - log.verbose('using force', 'skipping cache') - return addNamed(name, ver, null, c) - } - - readJson(path.join(root, 'package', 'package.json'), function (er, data) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - - if (data) { - if (!data.name) return cb(new Error('No name provided')) - if (!data.version) return cb(new Error('No version provided')) - } - - if (er) return addNamed(name, ver, null, c) - else c(er, data) - }) -} - -function normalize (args) { - var normalized = '' - if (args.length > 0) { - var a = npa(args[0]) - if (a.name) normalized = a.name - if (a.rawSpec) normalized = [normalized, a.rawSpec].join('/') - if (args.length > 1) normalized = [normalized].concat(args.slice(1)).join('/') - } - - if (normalized.substr(-1) === '/') { - normalized = normalized.substr(0, normalized.length - 1) - } - normalized = path.normalize(normalized) - log.silly('ls', 'normalized', normalized) - - return normalized -} - -// npm cache ls [] -function ls (args, cb) { - var prefix = npm.config.get('cache') - if (prefix.indexOf(process.env.HOME) === 0) { - prefix = '~' + prefix.substr(process.env.HOME.length) - } - ls_(normalize(args), npm.config.get('depth'), function (er, files) { - console.log(files.map(function (f) { - return path.join(prefix, f) - }).join('\n').trim()) - cb(er, files) - }) -} - -// Calls cb with list of cached pkgs matching show. -function ls_ (req, depth, cb) { - return fileCompletion(npm.cache, req, depth, cb) -} - -// npm cache clean [] -function clean (args, cb) { - assert(typeof cb === 'function', 'must include callback') - - if (!args) args = [] - - var f = path.join(npm.cache, normalize(args)) - if (f === npm.cache) { - fs.readdir(npm.cache, function (er, files) { - if (er) return cb() - asyncMap( - files.filter(function (f) { - return npm.config.get('force') || f !== '-' - }).map(function (f) { - return path.join(npm.cache, f) - }), - rm, - cb - ) - }) - } else { - rm(f, cb) - } -} - -// npm cache add -// npm cache add -// npm cache add -// npm cache add -cache.add = function (pkg, ver, where, scrub, cb) { - assert(typeof pkg === 'string', 'must include name of package to install') - assert(typeof cb === 'function', 'must include callback') - - if (scrub) { - return clean([], function (er) { - if (er) return cb(er) - add([pkg, ver], where, cb) - }) - } - return add([pkg, ver], where, cb) -} - -var adding = 0 -function add (args, where, cb) { - // this is hot code. almost everything passes through here. - // the args can be any of: - // ['url'] - // ['pkg', 'version'] - // ['pkg@version'] - // ['pkg', 'url'] - // This is tricky, because urls can contain @ - // Also, in some cases we get [name, null] rather - // that just a single argument. - - var usage = 'Usage:\n' + - ' npm cache add \n' + - ' npm cache add @\n' + - ' npm cache add \n' + - ' npm cache add \n' - var spec - - log.silly('cache add', 'args', args) - - if (args[1] === undefined) args[1] = null - - // at this point the args length must ==2 - if (args[1] !== null) { - spec = args[0] + '@' + args[1] - } else if (args.length === 2) { - spec = args[0] - } - - log.verbose('cache add', 'spec', spec) - - if (!spec) return cb(usage) - - adding++ - cb = afterAdd(cb) - - realizePackageSpecifier(spec, where, function (err, p) { - if (err) return cb(err) - - log.silly('cache add', 'parsed spec', p) - - switch (p.type) { - case 'local': - case 'directory': - addLocal(p, null, cb) - break - case 'remote': - // get auth, if possible - mapToRegistry(p.raw, npm.config, function (err, uri, auth) { - if (err) return cb(err) - - addRemoteTarball(p.spec, { name: p.name }, null, auth, cb) - }) - break - case 'git': - case 'hosted': - addRemoteGit(p.rawSpec, cb) - break - default: - if (p.name) return addNamed(p.name, p.spec, null, cb) - - cb(new Error("couldn't figure out how to install " + spec)) - } - }) -} - -function unpack (pkg, ver, unpackTarget, dMode, fMode, uid, gid, cb) { - if (typeof cb !== 'function') { - cb = gid - gid = null - } - if (typeof cb !== 'function') { - cb = uid - uid = null - } - if (typeof cb !== 'function') { - cb = fMode - fMode = null - } - if (typeof cb !== 'function') { - cb = dMode - dMode = null - } - - read(pkg, ver, false, function (er) { - if (er) { - log.error('unpack', 'Could not read data for %s', pkg + '@' + ver) - return cb(er) - } - npm.commands.unbuild([unpackTarget], true, function (er) { - if (er) return cb(er) - tar.unpack( - path.join(cachedPackageRoot({ name: pkg, version: ver }), 'package.tgz'), - unpackTarget, - dMode, fMode, - uid, gid, - cb - ) - }) - }) -} - -function afterAdd (cb) { - return function (er, data) { - adding-- - - if (er || !data || !data.name || !data.version) return cb(er, data) - log.silly('cache', 'afterAdd', data.name + '@' + data.version) - - // Save the resolved, shasum, etc. into the data so that the next - // time we load from this cached data, we have all the same info. - // Ignore if it fails. - var pj = path.join(cachedPackageRoot(data), 'package', 'package.json') - - var done = inflight(pj, cb) - if (!done) return log.verbose('afterAdd', pj, 'already in flight; not writing') - log.verbose('afterAdd', pj, 'not in flight; writing') - - getStat(function (er, cs) { - if (er) return done(er) - writeFileAtomic(pj, JSON.stringify(data), { chown: cs }, function (er) { - if (!er) log.verbose('afterAdd', pj, 'written') - return done(null, data) - }) - }) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-local-tarball.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-local-tarball.js deleted file mode 100644 index d0952b64..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-local-tarball.js +++ /dev/null @@ -1,175 +0,0 @@ -var mkdir = require('mkdirp') -var assert = require('assert') -var fs = require('graceful-fs') -var writeFileAtomic = require('write-file-atomic') -var path = require('path') -var sha = require('sha') -var npm = require('../npm.js') -var log = require('npmlog') -var tar = require('../utils/tar.js') -var pathIsInside = require('path-is-inside') -var getCacheStat = require('./get-stat.js') -var cachedPackageRoot = require('./cached-package-root.js') -var chownr = require('chownr') -var inflight = require('inflight') -var once = require('once') -var writeStreamAtomic = require('fs-write-stream-atomic') -var tempFilename = require('../utils/temp-filename.js') -var rimraf = require('rimraf') -var packageId = require('../utils/package-id.js') - -module.exports = addLocalTarball - -function addLocalTarball (p, pkgData, shasum, cb) { - assert(typeof p === 'string', 'must have path') - assert(typeof cb === 'function', 'must have callback') - - if (!pkgData) pkgData = {} - - // If we don't have a shasum yet, compute it. - if (!shasum) { - return sha.get(p, function (er, shasum) { - if (er) return cb(er) - log.silly('addLocalTarball', 'shasum (computed)', shasum) - addLocalTarball(p, pkgData, shasum, cb) - }) - } - - if (pathIsInside(p, npm.cache)) { - if (path.basename(p) !== 'package.tgz') { - return cb(new Error('Not a valid cache tarball name: ' + p)) - } - log.verbose('addLocalTarball', 'adding from inside cache', p) - return addPlacedTarball(p, pkgData, shasum, cb) - } - - addTmpTarball(p, pkgData, shasum, function (er, data) { - if (data) { - data._resolved = p - data._shasum = data._shasum || shasum - } - return cb(er, data) - }) -} - -function addPlacedTarball (p, pkgData, shasum, cb) { - assert(pkgData, 'should have package data by now') - assert(typeof cb === 'function', 'cb function required') - - getCacheStat(function (er, cs) { - if (er) return cb(er) - return addPlacedTarball_(p, pkgData, cs.uid, cs.gid, shasum, cb) - }) -} - -function addPlacedTarball_ (p, pkgData, uid, gid, resolvedSum, cb) { - var folder = path.join(cachedPackageRoot(pkgData), 'package') - - // First, make sure we have the shasum, if we don't already. - if (!resolvedSum) { - sha.get(p, function (er, shasum) { - if (er) return cb(er) - addPlacedTarball_(p, pkgData, uid, gid, shasum, cb) - }) - return - } - - mkdir(folder, function (er) { - if (er) return cb(er) - var pj = path.join(folder, 'package.json') - var json = JSON.stringify(pkgData, null, 2) - writeFileAtomic(pj, json, function (er) { - cb(er, pkgData) - }) - }) -} - -function addTmpTarball (tgz, pkgData, shasum, cb) { - assert(typeof cb === 'function', 'must have callback function') - assert(shasum, 'must have shasum by now') - - cb = inflight('addTmpTarball:' + tgz, cb) - if (!cb) return log.verbose('addTmpTarball', tgz, 'already in flight; not adding') - log.verbose('addTmpTarball', tgz, 'not in flight; adding') - - // we already have the package info, so just move into place - if (pkgData && pkgData.name && pkgData.version) { - log.verbose( - 'addTmpTarball', - 'already have metadata; skipping unpack for', - packageId(pkgData) - ) - return addTmpTarball_(tgz, pkgData, shasum, cb) - } - - // This is a tarball we probably downloaded from the internet. The shasum's - // already been checked, but we haven't ever had a peek inside, so we unpack - // it here just to make sure it is what it says it is. - // - // NOTE: we might not have any clue what we think it is, for example if the - // user just did `npm install ./foo.tgz` - - var target = tempFilename('unpack') - getCacheStat(function (er, cs) { - if (er) return cb(er) - - log.verbose('addTmpTarball', 'validating metadata from', tgz) - tar.unpack(tgz, target, null, null, cs.uid, cs.gid, function (unpackEr, data) { - // cleanup the extracted package and move on with the metadata - rimraf(target, function () { - if (unpackEr) return cb(unpackEr) - // check that this is what we expected. - if (!data.name) { - return cb(new Error('No name provided')) - } else if (pkgData.name && data.name !== pkgData.name) { - return cb(new Error('Invalid Package: expected ' + pkgData.name + - ' but found ' + data.name)) - } - - if (!data.version) { - return cb(new Error('No version provided')) - } else if (pkgData.version && data.version !== pkgData.version) { - return cb(new Error('Invalid Package: expected ' + - packageId(pkgData) + - ' but found ' + packageId(data))) - } - - addTmpTarball_(tgz, data, shasum, cb) - }) - }) - }) -} - -function addTmpTarball_ (tgz, data, shasum, cb) { - assert(typeof cb === 'function', 'must have callback function') - cb = once(cb) - - assert(data.name, 'should have package name by now') - assert(data.version, 'should have package version by now') - - var root = cachedPackageRoot(data) - var pkg = path.resolve(root, 'package') - var target = path.resolve(root, 'package.tgz') - getCacheStat(function (er, cs) { - if (er) return cb(er) - mkdir(pkg, function (er, created) { - // chown starting from the first dir created by mkdirp, - // or the root dir, if none had to be created, so that - // we know that we get all the children. - function chown () { - chownr(created || root, cs.uid, cs.gid, done) - } - - if (er) return cb(er) - var read = fs.createReadStream(tgz) - var write = writeStreamAtomic(target, { mode: npm.modes.file }) - var fin = cs.uid && cs.gid ? chown : done - read.on('error', cb).pipe(write).on('error', cb).on('close', fin) - }) - }) - - function done () { - data._shasum = data._shasum || shasum - cb(null, data) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-local.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-local.js deleted file mode 100644 index 075ca5fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-local.js +++ /dev/null @@ -1,132 +0,0 @@ -var assert = require('assert') -var path = require('path') -var mkdir = require('mkdirp') -var chownr = require('chownr') -var pathIsInside = require('path-is-inside') -var readJson = require('read-package-json') -var log = require('npmlog') -var npm = require('../npm.js') -var tar = require('../utils/tar.js') -var deprCheck = require('../utils/depr-check.js') -var getCacheStat = require('./get-stat.js') -var cachedPackageRoot = require('./cached-package-root.js') -var addLocalTarball = require('./add-local-tarball.js') -var sha = require('sha') -var inflight = require('inflight') -var lifecycle = require('../utils/lifecycle.js') -var iferr = require('iferr') - -module.exports = addLocal - -function addLocal (p, pkgData, cb_) { - assert(typeof p === 'object', 'must have spec info') - assert(typeof cb === 'function', 'must have callback') - - pkgData = pkgData || {} - - function cb (er, data) { - if (er) { - log.error('addLocal', 'Could not install %s', p.spec) - return cb_(er) - } - if (data && !data._fromHosted) { - data._from = path.relative(npm.prefix, p.spec) || '.' - var resolved = path.relative(npm.prefix, p.spec) - if (resolved) data._resolved = 'file:' + resolved - } - return cb_(er, data) - } - - if (p.type === 'directory') { - addLocalDirectory(p.spec, pkgData, null, cb) - } else { - addLocalTarball(p.spec, pkgData, null, cb) - } -} - -// At this point, if shasum is set, it's something that we've already -// read and checked. Just stashing it in the data at this point. -function addLocalDirectory (p, pkgData, shasum, cb) { - assert(pkgData, 'must pass package data') - assert(typeof cb === 'function', 'must have callback') - - // if it's a folder, then read the package.json, - // tar it to the proper place, and add the cache tar - if (pathIsInside(p, npm.cache)) { - return cb(new Error( - 'Adding a cache directory to the cache will make the world implode.' - )) - } - - readJson(path.join(p, 'package.json'), false, function (er, data) { - if (er) return cb(er) - - if (!data.name) { - return cb(new Error('No name provided in package.json')) - } else if (pkgData.name && pkgData.name !== data.name) { - return cb(new Error( - 'Invalid package: expected ' + pkgData.name + ' but found ' + data.name - )) - } - - if (!data.version) { - return cb(new Error('No version provided in package.json')) - } else if (pkgData.version && pkgData.version !== data.version) { - return cb(new Error( - 'Invalid package: expected ' + pkgData.name + '@' + pkgData.version + - ' but found ' + data.name + '@' + data.version - )) - } - - deprCheck(data) - - // pack to {cache}/name/ver/package.tgz - var root = cachedPackageRoot(data) - var tgz = path.resolve(root, 'package.tgz') - var pj = path.resolve(root, 'package/package.json') - - var wrapped = inflight(tgz, next) - if (!wrapped) return log.verbose('addLocalDirectory', tgz, 'already in flight; waiting') - log.verbose('addLocalDirectory', tgz, 'not in flight; packing') - - getCacheStat(function (er, cs) { - mkdir(path.dirname(pj), function (er, made) { - if (er) return cb(er) - var doPrePublish = !pathIsInside(p, npm.tmp) - if (doPrePublish) { - lifecycle(data, 'prepublish', p, iferr(cb, thenPack)) - } else { - thenPack() - } - function thenPack () { - tar.pack(tgz, p, data, function (er) { - if (er) { - log.error('addLocalDirectory', 'Could not pack', p, 'to', tgz) - return cb(er) - } - - if (!cs || isNaN(cs.uid) || isNaN(cs.gid)) wrapped() - - chownr(made || tgz, cs.uid, cs.gid, wrapped) - }) - } - }) - }) - - function next (er) { - if (er) return cb(er) - // if we have the shasum already, just add it - if (shasum) { - return addLocalTarball(tgz, data, shasum, cb) - } else { - sha.get(tgz, function (er, shasum) { - if (er) { - return cb(er) - } - data._shasum = shasum - return addLocalTarball(tgz, data, shasum, cb) - }) - } - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-named.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-named.js deleted file mode 100644 index f0e5e2c3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-named.js +++ /dev/null @@ -1,306 +0,0 @@ -var path = require('path') -var assert = require('assert') -var fs = require('graceful-fs') -var http = require('http') -var log = require('npmlog') -var semver = require('semver') -var readJson = require('read-package-json') -var url = require('url') -var npm = require('../npm.js') -var deprCheck = require('../utils/depr-check.js') -var inflight = require('inflight') -var addRemoteTarball = require('./add-remote-tarball.js') -var cachedPackageRoot = require('./cached-package-root.js') -var mapToRegistry = require('../utils/map-to-registry.js') -var pulseTillDone = require('../utils/pulse-till-done.js') -var packageId = require('../utils/package-id.js') - -module.exports = addNamed - -function getOnceFromRegistry (name, from, next, done) { - function fixName (err, data, json, resp) { - // this is only necessary until npm/npm-registry-client#80 is fixed - if (err && err.pkgid && err.pkgid !== name) { - err.message = err.message.replace( - new RegExp(': ' + err.pkgid.replace(/(\W)/g, '\\$1') + '$'), - ': ' + name - ) - err.pkgid = name - } - next(err, data, json, resp) - } - - mapToRegistry(name, npm.config, function (er, uri, auth) { - if (er) return done(er) - - var key = 'registry:' + uri - next = inflight(key, next) - if (!next) return log.verbose(from, key, 'already in flight; waiting') - else log.verbose(from, key, 'not in flight; fetching') - - npm.registry.get(uri, { auth: auth }, pulseTillDone('fetchRegistry', fixName)) - }) -} - -function addNamed (name, version, data, cb_) { - assert(typeof name === 'string', 'must have module name') - assert(typeof cb_ === 'function', 'must have callback') - - var key = name + '@' + version - log.silly('addNamed', key) - - function cb (er, data) { - if (data && !data._fromHosted) data._from = key - cb_(er, data) - } - - if (semver.valid(version, true)) { - log.verbose('addNamed', JSON.stringify(version), 'is a plain semver version for', name) - addNameVersion(name, version, data, cb) - } else if (semver.validRange(version, true)) { - log.verbose('addNamed', JSON.stringify(version), 'is a valid semver range for', name) - addNameRange(name, version, data, cb) - } else { - log.verbose('addNamed', JSON.stringify(version), 'is being treated as a dist-tag for', name) - addNameTag(name, version, data, cb) - } -} - -function addNameTag (name, tag, data, cb) { - log.info('addNameTag', [name, tag]) - var explicit = true - if (!tag) { - explicit = false - tag = npm.config.get('tag') - } - - getOnceFromRegistry(name, 'addNameTag', next, cb) - - function next (er, data, json, resp) { - if (!er) er = errorResponse(name, resp) - if (er) return cb(er) - - log.silly('addNameTag', 'next cb for', name, 'with tag', tag) - - engineFilter(data) - if (data['dist-tags'] && data['dist-tags'][tag] && - data.versions[data['dist-tags'][tag]]) { - var ver = data['dist-tags'][tag] - return addNamed(name, ver, data.versions[ver], cb) - } - if (!explicit && Object.keys(data.versions).length) { - return addNamed(name, '*', data, cb) - } - - er = installTargetsError(tag, data) - return cb(er) - } -} - -function engineFilter (data) { - var npmv = npm.version - var nodev = npm.config.get('node-version') - var strict = npm.config.get('engine-strict') - - if (!nodev || npm.config.get('force')) return data - - Object.keys(data.versions || {}).forEach(function (v) { - var eng = data.versions[v].engines - if (!eng) return - if (!strict) return - if (eng.node && !semver.satisfies(nodev, eng.node, true) || - eng.npm && !semver.satisfies(npmv, eng.npm, true)) { - delete data.versions[v] - } - }) -} - -function addNameVersion (name, v, data, cb) { - var ver = semver.valid(v, true) - if (!ver) return cb(new Error('Invalid version: ' + v)) - - var response - - if (data) { - response = null - return next() - } - - getOnceFromRegistry(name, 'addNameVersion', setData, cb) - - function setData (er, d, json, resp) { - if (!er) { - er = errorResponse(name, resp) - } - if (er) return cb(er) - data = d && d.versions[ver] - if (!data) { - er = new Error('version not found: ' + name + '@' + ver) - er.package = name - er.statusCode = 404 - return cb(er) - } - response = resp - next() - } - - function next () { - deprCheck(data) - var dist = data.dist - - if (!dist) return cb(new Error('No dist in ' + packageId(data) + ' package')) - - if (!dist.tarball) { - return cb(new Error( - 'No dist.tarball in ' + packageId(data) + ' package' - )) - } - - if ((response && response.statusCode !== 304) || npm.config.get('force')) { - return fetchit() - } - - // we got cached data, so let's see if we have a tarball. - var pkgroot = cachedPackageRoot({ name: name, version: ver }) - var pkgtgz = path.join(pkgroot, 'package.tgz') - var pkgjson = path.join(pkgroot, 'package', 'package.json') - fs.stat(pkgtgz, function (er) { - if (!er) { - readJson(pkgjson, function (er, data) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - - if (data) { - if (!data.name) return cb(new Error('No name provided')) - if (!data.version) return cb(new Error('No version provided')) - - // check the SHA of the package we have, to ensure it wasn't installed - // from somewhere other than the registry (eg, a fork) - if (data._shasum && dist.shasum && data._shasum !== dist.shasum) { - return fetchit() - } - } - - if (er) return fetchit() - else return cb(null, data) - }) - } else return fetchit() - }) - - function fetchit () { - mapToRegistry(name, npm.config, function (er, _, auth, ruri) { - if (er) return cb(er) - - // Use the same protocol as the registry. https registry --> https - // tarballs, but only if they're the same hostname, or else detached - // tarballs may not work. - var tb = url.parse(dist.tarball) - var rp = url.parse(ruri) - if (tb.hostname === rp.hostname && tb.protocol !== rp.protocol) { - tb.protocol = rp.protocol - // If a different port is associated with the other protocol - // we need to update that as well - if (rp.port !== tb.port) { - tb.port = rp.port - delete tb.host - } - delete tb.href - } - tb = url.format(tb) - - // Only add non-shasum'ed packages if --forced. Only ancient things - // would lack this for good reasons nowadays. - if (!dist.shasum && !npm.config.get('force')) { - return cb(new Error('package lacks shasum: ' + packageId(data))) - } - - addRemoteTarball(tb, data, dist.shasum, auth, cb) - }) - } - } -} - -function addNameRange (name, range, data, cb) { - range = semver.validRange(range, true) - if (range === null) { - return cb(new Error( - 'Invalid version range: ' + range - )) - } - - log.silly('addNameRange', { name: name, range: range, hasData: !!data }) - - if (data) return next() - - getOnceFromRegistry(name, 'addNameRange', setData, cb) - - function setData (er, d, json, resp) { - if (!er) { - er = errorResponse(name, resp) - } - if (er) return cb(er) - data = d - next() - } - - function next () { - log.silly( - 'addNameRange', - 'number 2', { name: name, range: range, hasData: !!data } - ) - engineFilter(data) - - log.silly('addNameRange', 'versions' - , [data.name, Object.keys(data.versions || {})]) - - // if the tagged version satisfies, then use that. - var tagged = data['dist-tags'][npm.config.get('tag')] - if (tagged && - data.versions[tagged] && - semver.satisfies(tagged, range, true)) { - return addNamed(name, tagged, data.versions[tagged], cb) - } - - // find the max satisfying version. - var versions = Object.keys(data.versions || {}) - var ms = semver.maxSatisfying(versions, range, true) - if (!ms) { - if (range === '*' && versions.length) { - return addNameTag(name, 'latest', data, cb) - } else { - return cb(installTargetsError(range, data)) - } - } - - // if we don't have a registry connection, try to see if - // there's a cached copy that will be ok. - addNamed(name, ms, data.versions[ms], cb) - } -} - -function installTargetsError (requested, data) { - var targets = Object.keys(data['dist-tags']).filter(function (f) { - return (data.versions || {}).hasOwnProperty(f) - }).concat(Object.keys(data.versions || {})) - - requested = data.name + (requested ? "@'" + requested + "'" : '') - - targets = targets.length - ? 'Valid install targets:\n' + targets.join(', ') + '\n' - : 'No valid targets found.\n' + - 'Perhaps not compatible with your version of node?' - - var er = new Error('No compatible version found: ' + requested + '\n' + targets) - er.code = 'ETARGET' - return er -} - -function errorResponse (name, response) { - var er - if (response.statusCode >= 400) { - er = new Error(http.STATUS_CODES[response.statusCode]) - er.statusCode = response.statusCode - er.code = 'E' + er.statusCode - er.pkgid = name - } - return er -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-remote-git.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-remote-git.js deleted file mode 100644 index d8f64a85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-remote-git.js +++ /dev/null @@ -1,495 +0,0 @@ -var assert = require('assert') -var fs = require('graceful-fs') -var path = require('path') -var url = require('url') - -var chownr = require('chownr') -var dezalgo = require('dezalgo') -var hostedFromURL = require('hosted-git-info').fromUrl -var inflight = require('inflight') -var log = require('npmlog') -var mkdir = require('mkdirp') -var normalizeGitUrl = require('normalize-git-url') -var npa = require('npm-package-arg') -var realizePackageSpecifier = require('realize-package-specifier') -var uniqueFilename = require('unique-filename') - -var addLocal = require('./add-local.js') -var correctMkdir = require('../utils/correct-mkdir.js') -var git = require('../utils/git.js') -var npm = require('../npm.js') -var rm = require('../utils/gently-rm.js') -var tempFilename = require('../utils/temp-filename.js') - -var remotes = path.resolve(npm.config.get('cache'), '_git-remotes') -var templates = path.join(remotes, '_templates') - -var VALID_VARIABLES = [ - 'GIT_ASKPASS', - 'GIT_PROXY_COMMAND', - 'GIT_SSH', - 'GIT_SSH_COMMAND', - 'GIT_SSL_CAINFO', - 'GIT_SSL_NO_VERIFY' -] - -module.exports = addRemoteGit -function addRemoteGit (uri, _cb) { - assert(typeof uri === 'string', 'must have git URL') - assert(typeof _cb === 'function', 'must have callback') - var cb = dezalgo(_cb) - - log.verbose('addRemoteGit', 'caching', uri) - - // the URL comes in exactly as it was passed on the command line, or as - // normalized by normalize-package-data / read-package-json / read-installed, - // so figure out what to do with it using hosted-git-info - var parsed = hostedFromURL(uri) - if (parsed) { - // normalize GitHub syntax to org/repo (for now) - var from - if (parsed.type === 'github' && parsed.getDefaultRepresentation() === 'shortcut') { - from = parsed.path() - } else { - from = parsed.toString() - } - - log.verbose('addRemoteGit', from, 'is a repository hosted by', parsed.type) - - // prefer explicit URLs to pushing everything through shortcuts - if (parsed.getDefaultRepresentation() !== 'shortcut') { - return tryClone(from, parsed.toString(), false, cb) - } - - // try git:, then git+ssh:, then git+https: before failing - tryGitProto(from, parsed, cb) - } else { - // verify that this is a Git URL before continuing - parsed = npa(uri) - if (parsed.type !== 'git') { - return cb(new Error(uri + 'is not a Git or GitHub URL')) - } - - tryClone(parsed.rawSpec, uri, false, cb) - } -} - -function tryGitProto (from, hostedInfo, cb) { - var gitURL = hostedInfo.git() - if (!gitURL) return tryHTTPS(from, hostedInfo, cb) - - log.silly('tryGitProto', 'attempting to clone', gitURL) - tryClone(from, gitURL, true, function (er) { - if (er) return tryHTTPS(from, hostedInfo, cb) - - cb.apply(this, arguments) - }) -} - -function tryHTTPS (from, hostedInfo, cb) { - var httpsURL = hostedInfo.https() - if (!httpsURL) { - return cb(new Error(from + ' can not be cloned via Git, SSH, or HTTPS')) - } - - log.silly('tryHTTPS', 'attempting to clone', httpsURL) - tryClone(from, httpsURL, true, function (er) { - if (er) return trySSH(from, hostedInfo, cb) - - cb.apply(this, arguments) - }) -} - -function trySSH (from, hostedInfo, cb) { - var sshURL = hostedInfo.ssh() - if (!sshURL) return tryHTTPS(from, hostedInfo, cb) - - log.silly('trySSH', 'attempting to clone', sshURL) - tryClone(from, sshURL, false, cb) -} - -function tryClone (from, combinedURL, silent, cb) { - log.silly('tryClone', 'cloning', from, 'via', combinedURL) - - var normalized = normalizeGitUrl(combinedURL) - var cloneURL = normalized.url - var treeish = normalized.branch - - // ensure that similarly-named remotes don't collide - var cachedRemote = uniqueFilename(remotes, combinedURL.replace(/[^a-zA-Z0-9]+/g, '-'), cloneURL) - var repoID = path.relative(remotes, cachedRemote) - cachedRemote = path.join(remotes, repoID) - - cb = inflight(repoID, cb) - if (!cb) { - return log.verbose('tryClone', repoID, 'already in flight; waiting') - } - log.verbose('tryClone', repoID, 'not in flight; caching') - - // initialize the remotes cache with the correct perms - getGitDir(function (er) { - if (er) return cb(er) - fs.stat(cachedRemote, function (er, s) { - if (er) return mirrorRemote(from, cloneURL, treeish, cachedRemote, silent, finish) - if (!s.isDirectory()) return resetRemote(from, cloneURL, treeish, cachedRemote, finish) - - validateExistingRemote(from, cloneURL, treeish, cachedRemote, finish) - }) - - // always set permissions on the cached remote - function finish (er, data) { - if (er) return cb(er, data) - addModeRecursive(cachedRemote, npm.modes.file, function (er) { - return cb(er, data) - }) - } - }) -} - -// don't try too hard to hold on to a remote -function resetRemote (from, cloneURL, treeish, cachedRemote, cb) { - log.info('resetRemote', 'resetting', cachedRemote, 'for', from) - rm(cachedRemote, function (er) { - if (er) return cb(er) - mirrorRemote(from, cloneURL, treeish, cachedRemote, false, cb) - }) -} - -// reuse a cached remote when possible, but nuke it if it's in an -// inconsistent state -function validateExistingRemote (from, cloneURL, treeish, cachedRemote, cb) { - git.whichAndExec( - ['config', '--get', 'remote.origin.url'], - { cwd: cachedRemote, env: gitEnv() }, - function (er, stdout, stderr) { - var originURL - if (stdout) { - originURL = stdout.trim() - log.silly('validateExistingRemote', from, 'remote.origin.url:', originURL) - } - - if (stderr) stderr = stderr.trim() - if (stderr || er) { - log.warn('addRemoteGit', from, 'resetting remote', cachedRemote, 'because of error:', stderr || er) - return resetRemote(from, cloneURL, treeish, cachedRemote, cb) - } else if (cloneURL !== originURL) { - log.warn( - 'addRemoteGit', - from, - 'pre-existing cached repo', cachedRemote, 'points to', originURL, 'and not', cloneURL - ) - return resetRemote(from, cloneURL, treeish, cachedRemote, cb) - } - - log.verbose('validateExistingRemote', from, 'is updating existing cached remote', cachedRemote) - updateRemote(from, cloneURL, treeish, cachedRemote, cb) - } - ) -} - -// make a complete bare mirror of the remote repo -// NOTE: npm uses a blank template directory to prevent weird inconsistencies -// https://github.com/npm/npm/issues/5867 -function mirrorRemote (from, cloneURL, treeish, cachedRemote, silent, cb) { - mkdir(cachedRemote, function (er) { - if (er) return cb(er) - - var args = [ - 'clone', - '--template=' + templates, - '--mirror', - cloneURL, cachedRemote - ] - git.whichAndExec( - ['clone', '--template=' + templates, '--mirror', cloneURL, cachedRemote], - { cwd: cachedRemote, env: gitEnv() }, - function (er, stdout, stderr) { - if (er) { - var combined = (stdout + '\n' + stderr).trim() - var command = 'git ' + args.join(' ') + ':' - if (silent) { - log.verbose(command, combined) - } else { - log.error(command, combined) - } - return cb(er) - } - log.verbose('mirrorRemote', from, 'git clone ' + cloneURL, stdout.trim()) - setPermissions(from, cloneURL, treeish, cachedRemote, cb) - } - ) - }) -} - -function setPermissions (from, cloneURL, treeish, cachedRemote, cb) { - if (process.platform === 'win32') { - log.verbose('setPermissions', from, 'skipping chownr on Windows') - resolveHead(from, cloneURL, treeish, cachedRemote, cb) - } else { - getGitDir(function (er, cs) { - if (er) { - log.error('setPermissions', from, 'could not get cache stat') - return cb(er) - } - - chownr(cachedRemote, cs.uid, cs.gid, function (er) { - if (er) { - log.error( - 'setPermissions', - 'Failed to change git repository ownership under npm cache for', - cachedRemote - ) - return cb(er) - } - - log.verbose('setPermissions', from, 'set permissions on', cachedRemote) - resolveHead(from, cloneURL, treeish, cachedRemote, cb) - }) - }) - } -} - -// always fetch the origin, even right after mirroring, because this way -// permissions will get set correctly -function updateRemote (from, cloneURL, treeish, cachedRemote, cb) { - git.whichAndExec( - ['fetch', '-a', 'origin'], - { cwd: cachedRemote, env: gitEnv() }, - function (er, stdout, stderr) { - if (er) { - var combined = (stdout + '\n' + stderr).trim() - log.error('git fetch -a origin (' + cloneURL + ')', combined) - return cb(er) - } - log.verbose('updateRemote', 'git fetch -a origin (' + cloneURL + ')', stdout.trim()) - - setPermissions(from, cloneURL, treeish, cachedRemote, cb) - } - ) -} - -// branches and tags are both symbolic labels that can be attached to different -// commits, so resolve the commit-ish to the current actual treeish the label -// corresponds to -// -// important for shrinkwrap -function resolveHead (from, cloneURL, treeish, cachedRemote, cb) { - log.verbose('resolveHead', from, 'original treeish:', treeish) - var args = ['rev-list', '-n1', treeish] - git.whichAndExec( - args, - { cwd: cachedRemote, env: gitEnv() }, - function (er, stdout, stderr) { - if (er) { - log.error('git ' + args.join(' ') + ':', stderr) - return cb(er) - } - - var resolvedTreeish = stdout.trim() - log.silly('resolveHead', from, 'resolved treeish:', resolvedTreeish) - - var resolvedURL = getResolved(cloneURL, resolvedTreeish) - if (!resolvedURL) { - return cb(new Error( - 'unable to clone ' + from + ' because git clone string ' + - cloneURL + ' is in a form npm can\'t handle' - )) - } - log.verbose('resolveHead', from, 'resolved Git URL:', resolvedURL) - - // generate a unique filename - var tmpdir = path.join(tempFilename('git-cache'), resolvedTreeish) - log.silly('resolveHead', 'Git working directory:', tmpdir) - - mkdir(tmpdir, function (er) { - if (er) return cb(er) - - cloneResolved(from, resolvedURL, resolvedTreeish, cachedRemote, tmpdir, cb) - }) - } - ) -} - -// make a clone from the mirrored cache so we have a temporary directory in -// which we can check out the resolved treeish -function cloneResolved (from, resolvedURL, resolvedTreeish, cachedRemote, tmpdir, cb) { - var args = ['clone', cachedRemote, tmpdir] - git.whichAndExec( - args, - { cwd: cachedRemote, env: gitEnv() }, - function (er, stdout, stderr) { - stdout = (stdout + '\n' + stderr).trim() - if (er) { - log.error('git ' + args.join(' ') + ':', stderr) - return cb(er) - } - log.verbose('cloneResolved', from, 'clone', stdout) - - checkoutTreeish(from, resolvedURL, resolvedTreeish, tmpdir, cb) - } - ) -} - -// there is no safe way to do a one-step clone to a treeish that isn't -// guaranteed to be a branch, so explicitly check out the treeish once it's -// cloned -function checkoutTreeish (from, resolvedURL, resolvedTreeish, tmpdir, cb) { - var args = ['checkout', resolvedTreeish] - git.whichAndExec( - args, - { cwd: tmpdir, env: gitEnv() }, - function (er, stdout, stderr) { - stdout = (stdout + '\n' + stderr).trim() - if (er) { - log.error('git ' + args.join(' ') + ':', stderr) - return cb(er) - } - log.verbose('checkoutTreeish', from, 'checkout', stdout) - - updateSubmodules(from, resolvedURL, tmpdir, cb) - } - ) -} - -function updateSubmodules (from, resolvedURL, tmpdir, cb) { - var args = ['submodule', '-q', 'update', '--init', '--recursive'] - git.whichAndExec( - args, - { cwd: tmpdir, env: gitEnv() }, - function (er, stdout, stderr) { - stdout = (stdout + '\n' + stderr).trim() - if (er) { - log.error('git ' + args.join(' ') + ':', stderr) - return cb(er) - } - log.verbose('updateSubmodules', from, 'submodule update', stdout) - - // convince addLocal that the checkout is a local dependency - realizePackageSpecifier(tmpdir, function (er, spec) { - if (er) { - log.error('addRemoteGit', 'Failed to map', tmpdir, 'to a package specifier') - return cb(er) - } - - // ensure pack logic is applied - // https://github.com/npm/npm/issues/6400 - addLocal(spec, null, function (er, data) { - if (data) { - if (npm.config.get('save-exact')) { - log.verbose('addRemoteGit', 'data._from:', resolvedURL, '(save-exact)') - data._from = resolvedURL - } else { - log.verbose('addRemoteGit', 'data._from:', from) - data._from = from - } - - log.verbose('addRemoteGit', 'data._resolved:', resolvedURL) - data._resolved = resolvedURL - } - - cb(er, data) - }) - }) - } - ) -} - -function getGitDir (cb) { - correctMkdir(remotes, function (er, stats) { - if (er) return cb(er) - - // We don't need global templates when cloning. Use an empty directory for - // the templates, creating it (and setting its permissions) if necessary. - mkdir(templates, function (er) { - if (er) return cb(er) - - // Ensure that both the template and remotes directories have the correct - // permissions. - fs.chown(templates, stats.uid, stats.gid, function (er) { - cb(er, stats) - }) - }) - }) -} - -var gitEnv_ -function gitEnv () { - // git responds to env vars in some weird ways in post-receive hooks - // so don't carry those along. - if (gitEnv_) return gitEnv_ - - // allow users to override npm's insistence on not prompting for - // passphrases, but default to just failing when credentials - // aren't available - gitEnv_ = { GIT_ASKPASS: 'echo' } - - for (var k in process.env) { - if (!~VALID_VARIABLES.indexOf(k) && k.match(/^GIT/)) continue - gitEnv_[k] = process.env[k] - } - return gitEnv_ -} - -addRemoteGit.getResolved = getResolved -function getResolved (uri, treeish) { - // normalize hosted-git-info clone URLs back into regular URLs - // this will only work on URLs that hosted-git-info recognizes - // https://github.com/npm/npm/issues/7961 - var rehydrated = hostedFromURL(uri) - if (rehydrated) uri = rehydrated.toString() - - var parsed = url.parse(uri) - - // Checks for known protocols: - // http:, https:, ssh:, and git:, with optional git+ prefix. - if (!parsed.protocol || - !parsed.protocol.match(/^(((git\+)?(https?|ssh|file))|git|file):$/)) { - uri = 'git+ssh://' + uri - } - - if (!/^git[+:]/.test(uri)) { - uri = 'git+' + uri - } - - // Not all URIs are actually URIs, so use regex for the treeish. - return uri.replace(/(?:#.*)?$/, '#' + treeish) -} - -// similar to chmodr except it add permissions rather than overwriting them -// adapted from https://github.com/isaacs/chmodr/blob/master/chmodr.js -function addModeRecursive (cachedRemote, mode, cb) { - fs.readdir(cachedRemote, function (er, children) { - // Any error other than ENOTDIR means it's not readable, or doesn't exist. - // Give up. - if (er && er.code !== 'ENOTDIR') return cb(er) - if (er || !children.length) return addMode(cachedRemote, mode, cb) - - var len = children.length - var errState = null - children.forEach(function (child) { - addModeRecursive(path.resolve(cachedRemote, child), mode, then) - }) - - function then (er) { - if (errState) return undefined - if (er) return cb(errState = er) - if (--len === 0) return addMode(cachedRemote, dirMode(mode), cb) - } - }) -} - -function addMode (cachedRemote, mode, cb) { - fs.stat(cachedRemote, function (er, stats) { - if (er) return cb(er) - mode = stats.mode | mode - fs.chmod(cachedRemote, mode, cb) - }) -} - -// taken from https://github.com/isaacs/chmodr/blob/master/chmodr.js -function dirMode (mode) { - if (mode & parseInt('0400', 8)) mode |= parseInt('0100', 8) - if (mode & parseInt('040', 8)) mode |= parseInt('010', 8) - if (mode & parseInt('04', 8)) mode |= parseInt('01', 8) - return mode -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-remote-tarball.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-remote-tarball.js deleted file mode 100644 index 90296c11..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/add-remote-tarball.js +++ /dev/null @@ -1,132 +0,0 @@ -var mkdir = require('mkdirp') -var assert = require('assert') -var log = require('npmlog') -var path = require('path') -var sha = require('sha') -var retry = require('retry') -var writeStreamAtomic = require('fs-write-stream-atomic') -var PassThrough = require('readable-stream').PassThrough -var npm = require('../npm.js') -var inflight = require('inflight') -var addLocalTarball = require('./add-local-tarball.js') -var cacheFile = require('npm-cache-filename') -var rimraf = require('rimraf') -var pulseTillDone = require('../utils/pulse-till-done.js') - -module.exports = addRemoteTarball - -function addRemoteTarball (u, pkgData, shasum, auth, cb_) { - assert(typeof u === 'string', 'must have module URL') - assert(typeof cb_ === 'function', 'must have callback') - - function cb (er, data) { - if (data) { - data._from = u - data._resolved = u - data._shasum = data._shasum || shasum - } - cb_(er, data) - } - - cb_ = inflight(u, cb_) - if (!cb_) return log.verbose('addRemoteTarball', u, 'already in flight; waiting') - log.verbose('addRemoteTarball', u, 'not in flight; adding') - - // XXX Fetch direct to cache location, store tarballs under - // ${cache}/registry.npmjs.org/pkg/-/pkg-1.2.3.tgz - var tmp = cacheFile(npm.tmp, u) - - function next (er, resp, shasum) { - if (er) return cb(er) - addLocalTarball(tmp, pkgData, shasum, cleanup) - } - function cleanup (er, data) { - if (er) return cb(er) - rimraf(tmp, function () { - cb(er, data) - }) - } - - log.verbose('addRemoteTarball', [u, shasum]) - mkdir(path.dirname(tmp), function (er) { - if (er) return cb(er) - addRemoteTarball_(u, tmp, shasum, auth, next) - }) -} - -function addRemoteTarball_ (u, tmp, shasum, auth, cb) { - // Tuned to spread 3 attempts over about a minute. - // See formula at . - var operation = retry.operation({ - retries: npm.config.get('fetch-retries'), - factor: npm.config.get('fetch-retry-factor'), - minTimeout: npm.config.get('fetch-retry-mintimeout'), - maxTimeout: npm.config.get('fetch-retry-maxtimeout') - }) - - operation.attempt(function (currentAttempt) { - log.info( - 'retry', - 'fetch attempt', currentAttempt, - 'at', (new Date()).toLocaleTimeString() - ) - fetchAndShaCheck(u, tmp, shasum, auth, function (er, response, shasum) { - // Only retry on 408, 5xx or no `response`. - var sc = response && response.statusCode - var statusRetry = !sc || (sc === 408 || sc >= 500) - if (er && statusRetry && operation.retry(er)) { - log.warn('retry', 'will retry, error on last attempt: ' + er) - return - } - cb(er, response, shasum) - }) - }) -} - -function fetchAndShaCheck (u, tmp, shasum, auth, cb) { - cb = pulseTillDone('fetchTarball', cb) - npm.registry.fetch(u, { auth: auth }, function (er, response) { - if (er) { - log.error('fetch failed', u) - return cb(er, response) - } - - var tarball = writeStreamAtomic(tmp, { mode: npm.modes.file }) - tarball.on('error', function (er) { - cb(er) - tarball.destroy() - }) - - tarball.on('finish', function () { - if (!shasum) { - // Well, we weren't given a shasum, so at least sha what we have - // in case we want to compare it to something else later - return sha.get(tmp, function (er, shasum) { - log.silly('fetchAndShaCheck', 'shasum', shasum) - cb(er, response, shasum) - }) - } - - // validate that the url we just downloaded matches the expected shasum. - log.silly('fetchAndShaCheck', 'shasum', shasum) - sha.check(tmp, shasum, function (er) { - if (er && er.message) { - // add original filename for better debuggability - er.message = er.message + '\n' + 'From: ' + u - } - return cb(er, response, shasum) - }) - }) - - // 0.8 http streams have a bug, where if they're paused with data in - // their buffers when the socket closes, they call `end` before emptying - // those buffers, which results in the entire pipeline ending and thus - // the point that applied backpressure never being able to trigger a - // `resume`. - // We work around this by piping into a pass through stream that has - // unlimited buffering. The pass through stream is from readable-stream - // and is thus a current streams3 implementation that is free of these - // bugs even on 0.8. - response.pipe(PassThrough({highWaterMark: Infinity})).pipe(tarball) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/cached-package-root.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/cached-package-root.js deleted file mode 100644 index b47fac6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/cached-package-root.js +++ /dev/null @@ -1,14 +0,0 @@ -var assert = require('assert') -var resolve = require('path').resolve - -var npm = require('../npm.js') - -module.exports = getCacheRoot - -function getCacheRoot (data) { - assert(data, 'must pass package metadata') - assert(data.name, 'package metadata must include name') - assert(data.version, 'package metadata must include version') - - return resolve(npm.cache, data.name, data.version) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/caching-client.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/caching-client.js deleted file mode 100644 index a6bcee37..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/caching-client.js +++ /dev/null @@ -1,219 +0,0 @@ -module.exports = CachingRegistryClient - -var path = require('path') -var fs = require('graceful-fs') -var url = require('url') -var assert = require('assert') -var inherits = require('util').inherits - -var RegistryClient = require('npm-registry-client') -var npm = require('../npm.js') -var log = require('npmlog') -var getCacheStat = require('./get-stat.js') -var cacheFile = require('npm-cache-filename') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var chownr = require('chownr') -var writeFile = require('write-file-atomic') -var parseJSON = require('../utils/parse-json') - -function CachingRegistryClient (config) { - RegistryClient.call(this, adaptConfig(config)) - - this._mapToCache = cacheFile(config.get('cache')) - - // swizzle in our custom cache invalidation logic - this._request = this.request - this.request = this._invalidatingRequest - this.get = get -} -inherits(CachingRegistryClient, RegistryClient) - -CachingRegistryClient.prototype._invalidatingRequest = function (uri, params, cb) { - var client = this - this._request(uri, params, function () { - var args = arguments - - var method = params.method - if (method !== 'HEAD' && method !== 'GET') { - var invalidated = client._mapToCache(uri) - // invalidate cache - // - // This is irrelevant for commands that do etag / last-modified caching, - // but ls and view also have a timed cache, so this keeps the user from - // thinking that it didn't work when it did. - // Note that failure is an acceptable option here, since the only - // result will be a stale cache for some helper commands. - log.verbose('request', 'invalidating', invalidated, 'on', method) - return rimraf(invalidated, function () { - cb.apply(undefined, args) - }) - } - - cb.apply(undefined, args) - }) -} - -function get (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to get') - assert(params && typeof params === 'object', 'must pass params to get') - assert(typeof cb === 'function', 'must pass callback to get') - - var parsed = url.parse(uri) - assert( - parsed.protocol === 'http:' || parsed.protocol === 'https:', - 'must have a URL that starts with http: or https:' - ) - - var cacheBase = cacheFile(npm.config.get('cache'))(uri) - var cachePath = path.join(cacheBase, '.cache.json') - - // If the GET is part of a write operation (PUT or DELETE), then - // skip past the cache entirely, but still save the results. - if (uri.match(/\?write=true$/)) { - log.verbose('get', 'GET as part of write; not caching result') - return get_.call(this, uri, cachePath, params, cb) - } - - if (params.skipCache) { - return get_.call(this, uri, cachePath, params, cb) - } - - var client = this - fs.stat(cachePath, function (er, stat) { - if (!er) { - fs.readFile(cachePath, function (er, data) { - data = parseJSON.noExceptions(data) - - params.stat = stat - params.data = data - - get_.call(client, uri, cachePath, params, cb) - }) - } else { - get_.call(client, uri, cachePath, params, cb) - } - }) -} - -function get_ (uri, cachePath, params, cb) { - var staleOk = params.staleOk === undefined ? false : params.staleOk - var timeout = params.timeout === undefined ? -1 : params.timeout - var data = params.data - var stat = params.stat - var etag - var lastModified - - timeout = Math.min(timeout, npm.config.get('cache-max') || 0) - timeout = Math.max(timeout, npm.config.get('cache-min') || -Infinity) - if (process.env.COMP_CWORD !== undefined && - process.env.COMP_LINE !== undefined && - process.env.COMP_POINT !== undefined) { - timeout = Math.max(timeout, 60000) - } - - if (data) { - if (data._etag) etag = data._etag - if (data._lastModified) lastModified = data._lastModified - - data._cached = true - - if (stat && timeout && timeout > 0) { - if ((Date.now() - stat.mtime.getTime()) / 1000 < timeout) { - log.verbose('get', uri, 'not expired, no request') - delete data._etag - delete data._lastModified - return cb(null, data, JSON.stringify(data), { statusCode: 304 }) - } - - if (staleOk) { - log.verbose('get', uri, 'staleOk, background update') - delete data._etag - delete data._lastModified - process.nextTick( - cb.bind(null, null, data, JSON.stringify(data), { statusCode: 304 }) - ) - cb = function () {} - } - } - } - - var options = { - etag: etag, - lastModified: lastModified, - follow: params.follow, - auth: params.auth - } - this.request(uri, options, function (er, remoteData, raw, response) { - // if we get an error talking to the registry, but we have it - // from the cache, then just pretend we got it. - if (er && cachePath && data && !data.error) { - er = null - response = { statusCode: 304 } - } - - if (response) { - log.silly('get', 'cb', [response.statusCode, response.headers]) - if (response.statusCode === 304 && (etag || lastModified)) { - remoteData = data - log.verbose(etag ? 'etag' : 'lastModified', uri + ' from cache') - } - } - - data = remoteData - if (!data) er = er || new Error('failed to fetch from registry: ' + uri) - - if (er) return cb(er, data, raw, response) - - saveToCache(cachePath, data, saved) - - // just give the write the old college try. if it fails, whatever. - function saved () { - delete data._etag - delete data._lastModified - cb(er, data, raw, response) - } - - function saveToCache (cachePath, data, saved) { - log.verbose('get', 'saving', data.name, 'to', cachePath) - getCacheStat(function (er, st) { - mkdirp(path.dirname(cachePath), function (er, made) { - if (er) return saved() - - writeFile(cachePath, JSON.stringify(data), function (er) { - if (er) return saved() - - chownr(made || cachePath, st.uid, st.gid, saved) - }) - }) - }) - } - }) -} - -function adaptConfig (config) { - return { - proxy: { - http: config.get('proxy'), - https: config.get('https-proxy'), - localAddress: config.get('local-address') - }, - ssl: { - certificate: config.get('cert'), - key: config.get('key'), - ca: config.get('ca'), - strict: config.get('strict-ssl') - }, - retry: { - retries: config.get('fetch-retries'), - factor: config.get('fetch-retry-factor'), - minTimeout: config.get('fetch-retry-mintimeout'), - maxTimeout: config.get('fetch-retry-maxtimeout') - }, - userAgent: config.get('user-agent'), - log: log, - defaultTag: config.get('tag'), - couchToken: config.get('_token'), - maxSockets: config.get('maxsockets') - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/get-stat.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/get-stat.js deleted file mode 100644 index 6ea797a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/get-stat.js +++ /dev/null @@ -1,6 +0,0 @@ -var npm = require('../npm.js') -var correctMkdir = require('../utils/correct-mkdir.js') - -module.exports = function getCacheStat (cb) { - correctMkdir(npm.cache, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/update-index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/update-index.js deleted file mode 100644 index a872b034..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/cache/update-index.js +++ /dev/null @@ -1,105 +0,0 @@ -module.exports = updateIndex - -var fs = require('graceful-fs') -var assert = require('assert') -var path = require('path') -var mkdir = require('mkdirp') -var chownr = require('chownr') -var npm = require('../npm.js') -var log = require('npmlog') -var cacheFile = require('npm-cache-filename') -var getCacheStat = require('./get-stat.js') -var mapToRegistry = require('../utils/map-to-registry.js') -var pulseTillDone = require('../utils/pulse-till-done.js') -var parseJSON = require('../utils/parse-json.js') - -/* /-/all is special. - * It uses timestamp-based caching and partial updates, - * because it is a monster. - */ -function updateIndex (staleness, cb) { - assert(typeof cb === 'function', 'must pass callback to updateIndex') - - mapToRegistry('-/all', npm.config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - timeout: staleness, - follow: true, - staleOk: true, - auth: auth - } - var cacheBase = cacheFile(npm.config.get('cache'))(uri) - var cachePath = path.join(cacheBase, '.cache.json') - log.info('updateIndex', cachePath) - - getCacheStat(function (er, st) { - if (er) return cb(er) - - mkdir(cacheBase, function (er, made) { - if (er) return cb(er) - - fs.readFile(cachePath, function (er, data) { - if (er) { - log.warn('', 'Building the local index for the first time, please be patient') - return updateIndex_(uri, params, {}, cachePath, cb) - } - - chownr(made || cachePath, st.uid, st.gid, function (er) { - if (er) return cb(er) - - data = parseJSON.noExceptions(data) - if (!data) { - fs.writeFile(cachePath, '{}', function (er) { - if (er) return cb(new Error('Broken cache.')) - - log.warn('', 'Building the local index for the first time, please be patient') - return updateIndex_(uri, params, {}, cachePath, cb) - }) - } - - var t = +data._updated || 0 - // use the cache and update in the background if it's not too old - if (Date.now() - t < 60000) { - cb(null, data) - cb = function () {} - } - - if (t === 0) { - log.warn('', 'Building the local index for the first time, please be patient') - } else { - log.verbose('updateIndex', 'Cached search data present with timestamp', t) - uri += '/since?stale=update_after&startkey=' + t - } - updateIndex_(uri, params, data, cachePath, cb) - }) - }) - }) - }) - }) -} - -function updateIndex_ (all, params, data, cachePath, cb) { - log.silly('update-index', 'fetching', all) - npm.registry.request(all, params, pulseTillDone('updateIndex', function (er, updates, _, res) { - if (er) return cb(er, data) - - var headers = res.headers - var updated = updates._updated || Date.parse(headers.date) - - Object.keys(updates).forEach(function (p) { data[p] = updates[p] }) - - data._updated = updated - getCacheStat(function (er, st) { - if (er) return cb(er) - - fs.writeFile(cachePath, JSON.stringify(data), function (er) { - delete data._updated - if (er) return cb(er) - chownr(cachePath, st.uid, st.gid, function (er) { - cb(er, data) - }) - }) - }) - })) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/completion.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/completion.js deleted file mode 100644 index 6f6cfd81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/completion.js +++ /dev/null @@ -1,247 +0,0 @@ -module.exports = completion - -completion.usage = 'source <(npm completion)' - -var npm = require('./npm.js') -var npmconf = require('./config/core.js') -var configDefs = npmconf.defs -var configTypes = configDefs.types -var shorthands = configDefs.shorthands -var nopt = require('nopt') -var configNames = Object.keys(configTypes) - .filter(function (e) { return e.charAt(0) !== '_' }) -var shorthandNames = Object.keys(shorthands) -var allConfs = configNames.concat(shorthandNames) -var once = require('once') -var isWindowsShell = require('./utils/is-windows-shell.js') - -completion.completion = function (opts, cb) { - if (opts.w > 3) return cb() - - var fs = require('graceful-fs') - var path = require('path') - var bashExists = null - var zshExists = null - fs.stat(path.resolve(process.env.HOME, '.bashrc'), function (er) { - bashExists = !er - next() - }) - fs.stat(path.resolve(process.env.HOME, '.zshrc'), function (er) { - zshExists = !er - next() - }) - function next () { - if (zshExists === null || bashExists === null) return - var out = [] - if (zshExists) out.push('~/.zshrc') - if (bashExists) out.push('~/.bashrc') - if (opts.w === 2) { - out = out.map(function (m) { - return ['>>', m] - }) - } - cb(null, out) - } -} - -function completion (args, cb) { - if (isWindowsShell) { - var e = new Error('npm completion supported only in MINGW / Git bash on Windows') - e.code = 'ENOTSUP' - e.errno = require('constants').ENOTSUP - return cb(e) - } - - // if the COMP_* isn't in the env, then just dump the script. - if (process.env.COMP_CWORD === undefined || - process.env.COMP_LINE === undefined || - process.env.COMP_POINT === undefined) { - return dumpScript(cb) - } - - console.error(process.env.COMP_CWORD) - console.error(process.env.COMP_LINE) - console.error(process.env.COMP_POINT) - - // get the partial line and partial word, - // if the point isn't at the end. - // ie, tabbing at: npm foo b|ar - var w = +process.env.COMP_CWORD - var words = args.map(unescape) - var word = words[w] - var line = process.env.COMP_LINE - var point = +process.env.COMP_POINT - var partialLine = line.substr(0, point) - var partialWords = words.slice(0, w) - - // figure out where in that last word the point is. - var partialWord = args[w] - var i = partialWord.length - while (partialWord.substr(0, i) !== partialLine.substr(-1 * i) && i > 0) { - i-- - } - partialWord = unescape(partialWord.substr(0, i)) - partialWords.push(partialWord) - - var opts = { - words: words, - w: w, - word: word, - line: line, - lineLength: line.length, - point: point, - partialLine: partialLine, - partialWords: partialWords, - partialWord: partialWord, - raw: args - } - - cb = wrapCb(cb, opts) - - console.error(opts) - - if (partialWords.slice(0, -1).indexOf('--') === -1) { - if (word.charAt(0) === '-') return configCompl(opts, cb) - if (words[w - 1] && - words[w - 1].charAt(0) === '-' && - !isFlag(words[w - 1])) { - // awaiting a value for a non-bool config. - // don't even try to do this for now - console.error('configValueCompl') - return configValueCompl(opts, cb) - } - } - - // try to find the npm command. - // it's the first thing after all the configs. - // take a little shortcut and use npm's arg parsing logic. - // don't have to worry about the last arg being implicitly - // boolean'ed, since the last block will catch that. - var parsed = opts.conf = - nopt(configTypes, shorthands, partialWords.slice(0, -1), 0) - // check if there's a command already. - console.error(parsed) - var cmd = parsed.argv.remain[1] - if (!cmd) return cmdCompl(opts, cb) - - Object.keys(parsed).forEach(function (k) { - npm.config.set(k, parsed[k]) - }) - - // at this point, if words[1] is some kind of npm command, - // then complete on it. - // otherwise, do nothing - cmd = npm.commands[cmd] - if (cmd && cmd.completion) return cmd.completion(opts, cb) - - // nothing to do. - cb() -} - -function dumpScript (cb) { - var fs = require('graceful-fs') - var path = require('path') - var p = path.resolve(__dirname, 'utils/completion.sh') - - // The Darwin patch below results in callbacks first for the write and then - // for the error handler, so make sure we only call our callback once. - cb = once(cb) - - fs.readFile(p, 'utf8', function (er, d) { - if (er) return cb(er) - d = d.replace(/^\#\!.*?\n/, '') - - process.stdout.write(d, function () { cb() }) - process.stdout.on('error', function (er) { - // Darwin is a pain sometimes. - // - // This is necessary because the "source" or "." program in - // bash on OS X closes its file argument before reading - // from it, meaning that you get exactly 1 write, which will - // work most of the time, and will always raise an EPIPE. - // - // Really, one should not be tossing away EPIPE errors, or any - // errors, so casually. But, without this, `. <(npm completion)` - // can never ever work on OS X. - if (er.errno === 'EPIPE') er = null - cb(er) - }) - }) -} - -function unescape (w) { - if (w.charAt(0) === '\'') return w.replace(/^'|'$/g, '') - else return w.replace(/\\ /g, ' ') -} - -function escape (w) { - if (!w.match(/\s+/)) return w - return '\'' + w + '\'' -} - -// The command should respond with an array. Loop over that, -// wrapping quotes around any that have spaces, and writing -// them to stdout. Use console.log, not the outfd config. -// If any of the items are arrays, then join them with a space. -// Ie, returning ['a', 'b c', ['d', 'e']] would allow it to expand -// to: 'a', 'b c', or 'd' 'e' -function wrapCb (cb, opts) { - return function (er, compls) { - if (!Array.isArray(compls)) compls = compls ? [compls] : [] - compls = compls.map(function (c) { - if (Array.isArray(c)) c = c.map(escape).join(' ') - else c = escape(c) - return c - }) - - if (opts.partialWord) { - compls = compls.filter(function (c) { - return c.indexOf(opts.partialWord) === 0 - }) - } - - console.error([er && er.stack, compls, opts.partialWord]) - if (er || compls.length === 0) return cb(er) - - console.log(compls.join('\n')) - cb() - } -} - -// the current word has a dash. Return the config names, -// with the same number of dashes as the current word has. -function configCompl (opts, cb) { - var word = opts.word - var split = word.match(/^(-+)((?:no-)*)(.*)$/) - var dashes = split[1] - var no = split[2] - var flags = configNames.filter(isFlag) - console.error(flags) - - return cb(null, allConfs.map(function (c) { - return dashes + c - }).concat(flags.map(function (f) { - return dashes + (no || 'no-') + f - }))) -} - -// expand with the valid values of various config values. -// not yet implemented. -function configValueCompl (opts, cb) { - console.error('configValue', opts) - return cb(null, []) -} - -// check if the thing is a flag or not. -function isFlag (word) { - // shorthands never take args. - var split = word.match(/^(-*)((?:no-)+)?(.*)$/) - var no = split[2] - var conf = split[3] - return no || configTypes[conf] === Boolean || shorthands[conf] -} - -// complete against the npm commands -function cmdCompl (opts, cb) { - return cb(null, npm.fullList) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config.js deleted file mode 100644 index 80958ec5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config.js +++ /dev/null @@ -1,303 +0,0 @@ -module.exports = config - -var log = require('npmlog') -var npm = require('./npm.js') -var npmconf = require('./config/core.js') -var fs = require('graceful-fs') -var writeFileAtomic = require('write-file-atomic') -var types = npmconf.defs.types -var ini = require('ini') -var editor = require('editor') -var os = require('os') -var umask = require('./utils/umask') -var usage = require('./utils/usage') - -config.usage = usage( - 'config', - 'npm config set ' + - '\nnpm config get []' + - '\nnpm config delete ' + - '\nnpm config list' + - '\nnpm config edit' + - '\nnpm set ' + - '\nnpm get []' -) -config.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv[1] !== 'config') argv.unshift('config') - if (argv.length === 2) { - var cmds = ['get', 'set', 'delete', 'ls', 'rm', 'edit'] - if (opts.partialWord !== 'l') cmds.push('list') - return cb(null, cmds) - } - - var action = argv[2] - switch (action) { - case 'set': - // todo: complete with valid values, if possible. - if (argv.length > 3) return cb(null, []) - // fallthrough - /*eslint no-fallthrough:0*/ - case 'get': - case 'delete': - case 'rm': - return cb(null, Object.keys(types)) - case 'edit': - case 'list': case 'ls': - return cb(null, []) - default: return cb(null, []) - } -} - -// npm config set key value -// npm config get key -// npm config list -function config (args, cb) { - var action = args.shift() - switch (action) { - case 'set': return set(args[0], args[1], cb) - case 'get': return get(args[0], cb) - case 'delete': case 'rm': case 'del': return del(args[0], cb) - case 'list': case 'ls': return list(cb) - case 'edit': return edit(cb) - default: return unknown(action, cb) - } -} - -function edit (cb) { - var e = npm.config.get('editor') - var which = npm.config.get('global') ? 'global' : 'user' - var f = npm.config.get(which + 'config') - if (!e) return cb(new Error('No EDITOR config or environ set.')) - npm.config.save(which, function (er) { - if (er) return cb(er) - fs.readFile(f, 'utf8', function (er, data) { - if (er) data = '' - data = [ - ';;;;', - '; npm ' + (npm.config.get('global') - ? 'globalconfig' : 'userconfig') + ' file', - '; this is a simple ini-formatted file', - '; lines that start with semi-colons are comments.', - '; read `npm help config` for help on the various options', - ';;;;', - '', - data - ].concat([ - ';;;;', - '; all options with default values', - ';;;;' - ]).concat(Object.keys(npmconf.defaults).reduce(function (arr, key) { - var obj = {} - obj[key] = npmconf.defaults[key] - if (key === 'logstream') return arr - return arr.concat( - ini.stringify(obj) - .replace(/\n$/m, '') - .replace(/^/g, '; ') - .replace(/\n/g, '\n; ') - .split('\n')) - }, [])) - .concat(['']) - .join(os.EOL) - writeFileAtomic( - f, - data, - function (er) { - if (er) return cb(er) - editor(f, { editor: e }, cb) - } - ) - }) - }) -} - -function del (key, cb) { - if (!key) return cb(new Error('no key provided')) - var where = npm.config.get('global') ? 'global' : 'user' - npm.config.del(key, where) - npm.config.save(where, cb) -} - -function set (key, val, cb) { - if (key === undefined) { - return unknown('', cb) - } - if (val === undefined) { - if (key.indexOf('=') !== -1) { - var k = key.split('=') - key = k.shift() - val = k.join('=') - } else { - val = '' - } - } - key = key.trim() - val = val.trim() - log.info('config', 'set %j %j', key, val) - var where = npm.config.get('global') ? 'global' : 'user' - if (key.match(/umask/)) val = umask.fromString(val) - npm.config.set(key, val, where) - npm.config.save(where, cb) -} - -function get (key, cb) { - if (!key) return list(cb) - if (!publicVar(key)) { - return cb(new Error('---sekretz---')) - } - var val = npm.config.get(key) - if (key.match(/umask/)) val = umask.toString(val) - console.log(val) - cb() -} - -function sort (a, b) { - return a > b ? 1 : -1 -} - -function publicVar (k) { - return !(k.charAt(0) === '_' || - k.indexOf(':_') !== -1 || - types[k] !== types[k]) -} - -function getKeys (data) { - return Object.keys(data).filter(publicVar).sort(sort) -} - -function list (cb) { - var msg = '' - var long = npm.config.get('long') - - var cli = npm.config.sources.cli.data - var cliKeys = getKeys(cli) - if (cliKeys.length) { - msg += '; cli configs\n' - cliKeys.forEach(function (k) { - if (cli[k] && typeof cli[k] === 'object') return - if (k === 'argv') return - msg += k + ' = ' + JSON.stringify(cli[k]) + '\n' - }) - msg += '\n' - } - - // env configs - var env = npm.config.sources.env.data - var envKeys = getKeys(env) - if (envKeys.length) { - msg += '; environment configs\n' - envKeys.forEach(function (k) { - if (env[k] !== npm.config.get(k)) { - if (!long) return - msg += '; ' + k + ' = ' + - JSON.stringify(env[k]) + ' (overridden)\n' - } else msg += k + ' = ' + JSON.stringify(env[k]) + '\n' - }) - msg += '\n' - } - - // project config file - var project = npm.config.sources.project - var pconf = project.data - var ppath = project.path - var pconfKeys = getKeys(pconf) - if (pconfKeys.length) { - msg += '; project config ' + ppath + '\n' - pconfKeys.forEach(function (k) { - var val = (k.charAt(0) === '_') - ? '---sekretz---' - : JSON.stringify(pconf[k]) - if (pconf[k] !== npm.config.get(k)) { - if (!long) return - msg += '; ' + k + ' = ' + val + ' (overridden)\n' - } else msg += k + ' = ' + val + '\n' - }) - msg += '\n' - } - - // user config file - var uconf = npm.config.sources.user.data - var uconfKeys = getKeys(uconf) - if (uconfKeys.length) { - msg += '; userconfig ' + npm.config.get('userconfig') + '\n' - uconfKeys.forEach(function (k) { - var val = (k.charAt(0) === '_') - ? '---sekretz---' - : JSON.stringify(uconf[k]) - if (uconf[k] !== npm.config.get(k)) { - if (!long) return - msg += '; ' + k + ' = ' + val + ' (overridden)\n' - } else msg += k + ' = ' + val + '\n' - }) - msg += '\n' - } - - // global config file - var gconf = npm.config.sources.global.data - var gconfKeys = getKeys(gconf) - if (gconfKeys.length) { - msg += '; globalconfig ' + npm.config.get('globalconfig') + '\n' - gconfKeys.forEach(function (k) { - var val = (k.charAt(0) === '_') - ? '---sekretz---' - : JSON.stringify(gconf[k]) - if (gconf[k] !== npm.config.get(k)) { - if (!long) return - msg += '; ' + k + ' = ' + val + ' (overridden)\n' - } else msg += k + ' = ' + val + '\n' - }) - msg += '\n' - } - - // builtin config file - var builtin = npm.config.sources.builtin || {} - if (builtin && builtin.data) { - var bconf = builtin.data - var bpath = builtin.path - var bconfKeys = getKeys(bconf) - if (bconfKeys.length) { - msg += '; builtin config ' + bpath + '\n' - bconfKeys.forEach(function (k) { - var val = (k.charAt(0) === '_') - ? '---sekretz---' - : JSON.stringify(bconf[k]) - if (bconf[k] !== npm.config.get(k)) { - if (!long) return - msg += '; ' + k + ' = ' + val + ' (overridden)\n' - } else msg += k + ' = ' + val + '\n' - }) - msg += '\n' - } - } - - // only show defaults if --long - if (!long) { - msg += '; node bin location = ' + process.execPath + '\n' + - '; cwd = ' + process.cwd() + '\n' + - '; HOME = ' + process.env.HOME + '\n' + - '; "npm config ls -l" to show all defaults.\n' - - console.log(msg) - return cb() - } - - var defaults = npmconf.defaults - var defKeys = getKeys(defaults) - msg += '; default values\n' - defKeys.forEach(function (k) { - if (defaults[k] && typeof defaults[k] === 'object') return - var val = JSON.stringify(defaults[k]) - if (defaults[k] !== npm.config.get(k)) { - msg += '; ' + k + ' = ' + val + ' (overridden)\n' - } else msg += k + ' = ' + val + '\n' - }) - msg += '\n' - - console.log(msg) - return cb() -} - -function unknown (action, cb) { - cb('Usage:\n' + config.usage) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/clear-credentials-by-uri.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/clear-credentials-by-uri.js deleted file mode 100644 index 13c35660..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/clear-credentials-by-uri.js +++ /dev/null @@ -1,16 +0,0 @@ -var assert = require('assert') - -var toNerfDart = require('./nerf-dart.js') - -module.exports = clearCredentialsByURI - -function clearCredentialsByURI (uri) { - assert(uri && typeof uri === 'string', 'registry URL is required') - - var nerfed = toNerfDart(uri) - - this.del(nerfed + ':_authToken', 'user') - this.del(nerfed + ':_password', 'user') - this.del(nerfed + ':username', 'user') - this.del(nerfed + ':email', 'user') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/cmd-list.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/cmd-list.js deleted file mode 100644 index 34ebeed4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/cmd-list.js +++ /dev/null @@ -1,115 +0,0 @@ -var extend = Object.assign || require('util')._extend - -// short names for common things -var shorthands = { - 'un': 'uninstall', - 'rb': 'rebuild', - 'list': 'ls', - 'ln': 'link', - 'i': 'install', - 'it': 'install-test', - 'up': 'update', - 'c': 'config', - 's': 'search', - 'se': 'search', - 'unstar': 'star', // same function - 'tst': 'test', - 't': 'test', - 'ddp': 'dedupe', - 'v': 'view', - 'run': 'run-script' -} - -var affordances = { - 'la': 'ls', - 'll': 'ls', - 'verison': 'version', - 'isntall': 'install', - 'dist-tags': 'dist-tag', - 'apihelp': 'help', - 'find-dupes': 'dedupe', - 'upgrade': 'update', - 'login': 'adduser', - 'add-user': 'adduser', - 'author': 'owner', - 'home': 'docs', - 'issues': 'bugs', - 'info': 'view', - 'show': 'view', - 'find': 'search', - 'unlink': 'uninstall', - 'remove': 'uninstall', - 'rm': 'uninstall', - 'r': 'uninstall' -} - -// these are filenames in . -var cmdList = [ - 'install', - 'install-test', - 'uninstall', - 'cache', - 'config', - 'set', - 'get', - 'update', - 'outdated', - 'prune', - 'pack', - 'dedupe', - - 'rebuild', - 'link', - - 'publish', - 'star', - 'stars', - 'tag', - 'adduser', - 'logout', - 'unpublish', - 'owner', - 'access', - 'team', - 'deprecate', - 'shrinkwrap', - - 'help', - 'help-search', - 'ls', - 'search', - 'view', - 'init', - 'version', - 'edit', - 'explore', - 'docs', - 'repo', - 'bugs', - 'root', - 'prefix', - 'bin', - 'whoami', - 'dist-tag', - 'ping', - - 'test', - 'stop', - 'start', - 'restart', - 'run-script', - 'completion' -] - -var plumbing = [ - 'build', - 'unbuild', - 'xmas', - 'substack', - 'visnup' -] -module.exports.aliases = extend(extend({}, shorthands), affordances) -module.exports.shorthands = shorthands -module.exports.affordances = affordances -module.exports.cmdList = cmdList -module.exports.plumbing = plumbing diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/core.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/core.js deleted file mode 100644 index b833b754..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/core.js +++ /dev/null @@ -1,432 +0,0 @@ -var CC = require('config-chain').ConfigChain -var inherits = require('inherits') -var configDefs = require('./defaults.js') -var types = configDefs.types -var once = require('once') -var fs = require('fs') -var path = require('path') -var nopt = require('nopt') -var ini = require('ini') -var Umask = configDefs.Umask -var mkdirp = require('mkdirp') -var umask = require('../utils/umask') -var isWindows = require('../utils/is-windows.js') - -exports.load = load -exports.Conf = Conf -exports.loaded = false -exports.rootConf = null -exports.usingBuiltin = false -exports.defs = configDefs - -Object.defineProperty(exports, 'defaults', { get: function () { - return configDefs.defaults -}, enumerable: true }) - -Object.defineProperty(exports, 'types', { get: function () { - return configDefs.types -}, enumerable: true }) - -exports.validate = validate - -var myUid = process.env.SUDO_UID !== undefined - ? process.env.SUDO_UID : (process.getuid && process.getuid()) -var myGid = process.env.SUDO_GID !== undefined - ? process.env.SUDO_GID : (process.getgid && process.getgid()) - -var loading = false -var loadCbs = [] -function load () { - var cli, builtin, cb - for (var i = 0; i < arguments.length; i++) { - switch (typeof arguments[i]) { - case 'string': builtin = arguments[i]; break - case 'object': cli = arguments[i]; break - case 'function': cb = arguments[i]; break - } - } - - if (!cb) cb = function () {} - - if (exports.loaded) { - var ret = exports.loaded - if (cli) { - ret = new Conf(ret) - ret.unshift(cli) - } - return process.nextTick(cb.bind(null, null, ret)) - } - - // either a fresh object, or a clone of the passed in obj - if (!cli) { - cli = {} - } else { - cli = Object.keys(cli).reduce(function (c, k) { - c[k] = cli[k] - return c - }, {}) - } - - loadCbs.push(cb) - if (loading) return - - loading = true - - cb = once(function (er, conf) { - if (!er) { - exports.loaded = conf - loading = false - } - loadCbs.forEach(function (fn) { - fn(er, conf) - }) - loadCbs.length = 0 - }) - - // check for a builtin if provided. - exports.usingBuiltin = !!builtin - var rc = exports.rootConf = new Conf() - if (builtin) { - rc.addFile(builtin, 'builtin') - } else { - rc.add({}, 'builtin') - } - - rc.on('load', function () { - load_(builtin, rc, cli, cb) - }) - rc.on('error', cb) -} - -function load_ (builtin, rc, cli, cb) { - var defaults = configDefs.defaults - var conf = new Conf(rc) - - conf.usingBuiltin = !!builtin - conf.add(cli, 'cli') - conf.addEnv() - - conf.loadPrefix(function (er) { - if (er) return cb(er) - - // If you're doing `npm --userconfig=~/foo.npmrc` then you'd expect - // that ~/.npmrc won't override the stuff in ~/foo.npmrc (or, indeed - // be used at all). - // - // However, if the cwd is ~, then ~/.npmrc is the home for the project - // config, and will override the userconfig. - // - // If you're not setting the userconfig explicitly, then it will be loaded - // twice, which is harmless but excessive. If you *are* setting the - // userconfig explicitly then it will override your explicit intent, and - // that IS harmful and unexpected. - // - // Solution: Do not load project config file that is the same as either - // the default or resolved userconfig value. npm will log a "verbose" - // message about this when it happens, but it is a rare enough edge case - // that we don't have to be super concerned about it. - var projectConf = path.resolve(conf.localPrefix, '.npmrc') - var defaultUserConfig = rc.get('userconfig') - var resolvedUserConfig = conf.get('userconfig') - if (!conf.get('global') && - projectConf !== defaultUserConfig && - projectConf !== resolvedUserConfig) { - conf.addFile(projectConf, 'project') - conf.once('load', afterPrefix) - } else { - conf.add({}, 'project') - afterPrefix() - } - }) - - function afterPrefix () { - conf.addFile(conf.get('userconfig'), 'user') - conf.once('error', cb) - conf.once('load', afterUser) - } - - function afterUser () { - // globalconfig and globalignorefile defaults - // need to respond to the 'prefix' setting up to this point. - // Eg, `npm config get globalconfig --prefix ~/local` should - // return `~/local/etc/npmrc` - // annoying humans and their expectations! - if (conf.get('prefix')) { - var etc = path.resolve(conf.get('prefix'), 'etc') - mkdirp(etc, function () { - defaults.globalconfig = path.resolve(etc, 'npmrc') - defaults.globalignorefile = path.resolve(etc, 'npmignore') - afterUserContinuation() - }) - } else { - afterUserContinuation() - } - } - - function afterUserContinuation () { - conf.addFile(conf.get('globalconfig'), 'global') - - // move the builtin into the conf stack now. - conf.root = defaults - conf.add(rc.shift(), 'builtin') - conf.once('load', function () { - conf.loadExtras(afterExtras) - }) - } - - function afterExtras (er) { - if (er) return cb(er) - - // warn about invalid bits. - validate(conf) - - var cafile = conf.get('cafile') - - if (cafile) { - return conf.loadCAFile(cafile, finalize) - } - - finalize() - } - - function finalize (er) { - if (er) { - return cb(er) - } - - exports.loaded = conf - cb(er, conf) - } -} - -// Basically the same as CC, but: -// 1. Always ini -// 2. Parses environment variable names in field values -// 3. Field values that start with ~/ are replaced with process.env.HOME -// 4. Can inherit from another Conf object, using it as the base. -inherits(Conf, CC) -function Conf (base) { - if (!(this instanceof Conf)) return new Conf(base) - - CC.apply(this) - - if (base) { - if (base instanceof Conf) { - this.root = base.list[0] || base.root - } else { - this.root = base - } - } else { - this.root = configDefs.defaults - } -} - -Conf.prototype.loadPrefix = require('./load-prefix.js') -Conf.prototype.loadCAFile = require('./load-cafile.js') -Conf.prototype.loadUid = require('./load-uid.js') -Conf.prototype.setUser = require('./set-user.js') -Conf.prototype.findPrefix = require('./find-prefix.js') -Conf.prototype.getCredentialsByURI = require('./get-credentials-by-uri.js') -Conf.prototype.setCredentialsByURI = require('./set-credentials-by-uri.js') -Conf.prototype.clearCredentialsByURI = require('./clear-credentials-by-uri.js') - -Conf.prototype.loadExtras = function (cb) { - this.setUser(function (er) { - if (er) return cb(er) - this.loadUid(function (er) { - if (er) return cb(er) - // Without prefix, nothing will ever work - mkdirp(this.prefix, cb) - }.bind(this)) - }.bind(this)) -} - -Conf.prototype.save = function (where, cb) { - var target = this.sources[where] - if (!target || !(target.path || target.source) || !target.data) { - var er - if (where !== 'builtin') er = new Error('bad save target: ' + where) - if (cb) { - process.nextTick(cb.bind(null, er)) - return this - } - return this.emit('error', er) - } - - if (target.source) { - var pref = target.prefix || '' - Object.keys(target.data).forEach(function (k) { - target.source[pref + k] = target.data[k] - }) - if (cb) process.nextTick(cb) - return this - } - - var data = ini.stringify(target.data) - - var then = function then (er) { - if (er) return done(er) - - fs.chmod(target.path, mode, done) - } - - var done = function done (er) { - if (er) { - if (cb) return cb(er) - else return this.emit('error', er) - } - this._saving -- - if (this._saving === 0) { - if (cb) cb() - this.emit('save') - } - } - - then = then.bind(this) - done = done.bind(this) - this._saving ++ - - var mode = where === 'user' ? '0600' : '0666' - if (!data.trim()) { - fs.unlink(target.path, function () { - // ignore the possible error (e.g. the file doesn't exist) - done(null) - }) - } else { - mkdirp(path.dirname(target.path), function (er) { - if (er) return then(er) - fs.writeFile(target.path, data, 'utf8', function (er) { - if (er) return then(er) - if (where === 'user' && myUid && myGid) { - fs.chown(target.path, +myUid, +myGid, then) - } else { - then() - } - }) - }) - } - - return this -} - -Conf.prototype.addFile = function (file, name) { - name = name || file - var marker = { __source__: name } - this.sources[name] = { path: file, type: 'ini' } - this.push(marker) - this._await() - fs.readFile(file, 'utf8', function (er, data) { - // just ignore missing files. - if (er) return this.add({}, marker) - - this.addString(data, file, 'ini', marker) - }.bind(this)) - return this -} - -// always ini files. -Conf.prototype.parse = function (content, file) { - return CC.prototype.parse.call(this, content, file, 'ini') -} - -Conf.prototype.add = function (data, marker) { - try { - Object.keys(data).forEach(function (k) { - data[k] = parseField(data[k], k) - }) - } catch (e) { - this.emit('error', e) - return this - } - return CC.prototype.add.call(this, data, marker) -} - -Conf.prototype.addEnv = function (env) { - env = env || process.env - var conf = {} - Object.keys(env) - .filter(function (k) { return k.match(/^npm_config_/i) }) - .forEach(function (k) { - if (!env[k]) return - - // leave first char untouched, even if - // it is a '_' - convert all other to '-' - var p = k.toLowerCase() - .replace(/^npm_config_/, '') - .replace(/(?!^)_/g, '-') - conf[p] = env[k] - }) - return CC.prototype.addEnv.call(this, '', conf, 'env') -} - -function parseField (f, k) { - if (typeof f !== 'string' && !(f instanceof String)) return f - - // type can be an array or single thing. - var typeList = [].concat(types[k]) - var isPath = typeList.indexOf(path) !== -1 - var isBool = typeList.indexOf(Boolean) !== -1 - var isString = typeList.indexOf(String) !== -1 - var isUmask = typeList.indexOf(Umask) !== -1 - var isNumber = typeList.indexOf(Number) !== -1 - - f = ('' + f).trim() - - if (f.match(/^".*"$/)) { - try { - f = JSON.parse(f) - } catch (e) { - throw new Error('Failed parsing JSON config key ' + k + ': ' + f) - } - } - - if (isBool && !isString && f === '') return true - - switch (f) { - case 'true': return true - case 'false': return false - case 'null': return null - case 'undefined': return undefined - } - - f = envReplace(f) - - if (isPath) { - var homePattern = isWindows ? /^~(\/|\\)/ : /^~\// - if (f.match(homePattern) && process.env.HOME) { - f = path.resolve(process.env.HOME, f.substr(2)) - } - f = path.resolve(f) - } - - if (isUmask) f = umask.fromString(f) - - if (isNumber && !isNaN(f)) f = +f - - return f -} - -function envReplace (f) { - if (typeof f !== 'string' || !f) return f - - // replace any ${ENV} values with the appropriate environ. - var envExpr = /(\\*)\$\{([^}]+)\}/g - return f.replace(envExpr, function (orig, esc, name) { - esc = esc.length && esc.length % 2 - if (esc) return orig - if (undefined === process.env[name]) { - throw new Error('Failed to replace env in config: ' + orig) - } - - return process.env[name] - }) -} - -function validate (cl) { - // warn about invalid configs at every level. - cl.list.forEach(function (conf) { - nopt.clean(conf, configDefs.types) - }) - - nopt.clean(cl.root, configDefs.types) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/defaults.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/defaults.js deleted file mode 100644 index e93c1e57..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/defaults.js +++ /dev/null @@ -1,391 +0,0 @@ -// defaults, types, and shorthands. - -var path = require('path') -var url = require('url') -var Stream = require('stream').Stream -var semver = require('semver') -var stableFamily = semver.parse(process.version) -var nopt = require('nopt') -var os = require('os') -var osenv = require('osenv') -var umask = require('../utils/umask') -var hasUnicode = require('has-unicode') - -var log -try { - log = require('npmlog') -} catch (er) { - var util = require('util') - log = { warn: function (m) { - console.warn(m + ' ' + util.format.apply(util, [].slice.call(arguments, 1))) - } } -} - -exports.Umask = Umask -function Umask () {} -function validateUmask (data, k, val) { - return umask.validate(data, k, val) -} - -function validateSemver (data, k, val) { - if (!semver.valid(val)) return false - data[k] = semver.valid(val) -} - -function validateStream (data, k, val) { - if (!(val instanceof Stream)) return false - data[k] = val -} - -nopt.typeDefs.semver = { type: semver, validate: validateSemver } -nopt.typeDefs.Stream = { type: Stream, validate: validateStream } -nopt.typeDefs.Umask = { type: Umask, validate: validateUmask } - -nopt.invalidHandler = function (k, val, type) { - log.warn('invalid config', k + '=' + JSON.stringify(val)) - - if (Array.isArray(type)) { - if (type.indexOf(url) !== -1) type = url - else if (type.indexOf(path) !== -1) type = path - } - - switch (type) { - case Umask: - log.warn('invalid config', 'Must be umask, octal number in range 0000..0777') - break - case url: - log.warn('invalid config', "Must be a full url with 'http://'") - break - case path: - log.warn('invalid config', 'Must be a valid filesystem path') - break - case Number: - log.warn('invalid config', 'Must be a numeric value') - break - case Stream: - log.warn('invalid config', 'Must be an instance of the Stream class') - break - } -} - -if (!stableFamily || (+stableFamily.minor % 2)) stableFamily = null -else stableFamily = stableFamily.major + '.' + stableFamily.minor - -var defaults - -var temp = osenv.tmpdir() -var home = osenv.home() - -var uidOrPid = process.getuid ? process.getuid() : process.pid - -if (home) process.env.HOME = home -else home = path.resolve(temp, 'npm-' + uidOrPid) - -var cacheExtra = process.platform === 'win32' ? 'npm-cache' : '.npm' -var cacheRoot = process.platform === 'win32' && process.env.APPDATA || home -var cache = path.resolve(cacheRoot, cacheExtra) - -var globalPrefix -Object.defineProperty(exports, 'defaults', {get: function () { - if (defaults) return defaults - - if (process.env.PREFIX) { - globalPrefix = process.env.PREFIX - } else if (process.platform === 'win32') { - // c:\node\node.exe --> prefix=c:\node\ - globalPrefix = path.dirname(process.execPath) - } else { - // /usr/local/bin/node --> prefix=/usr/local - globalPrefix = path.dirname(path.dirname(process.execPath)) - - // destdir only is respected on Unix - if (process.env.DESTDIR) { - globalPrefix = path.join(process.env.DESTDIR, globalPrefix) - } - } - - defaults = { - access: null, - 'always-auth': false, - also: null, - - 'bin-links': true, - browser: null, - - ca: null, - cafile: null, - - cache: cache, - - 'cache-lock-stale': 60000, - 'cache-lock-retries': 10, - 'cache-lock-wait': 10000, - - 'cache-max': Infinity, - 'cache-min': 10, - - cert: null, - - color: true, - depth: Infinity, - description: true, - dev: false, - 'dry-run': false, - editor: osenv.editor(), - 'engine-strict': false, - force: false, - - 'fetch-retries': 2, - 'fetch-retry-factor': 10, - 'fetch-retry-mintimeout': 10000, - 'fetch-retry-maxtimeout': 60000, - - git: 'git', - 'git-tag-version': true, - - global: false, - globalconfig: path.resolve(globalPrefix, 'etc', 'npmrc'), - 'global-style': false, - group: process.platform === 'win32' ? 0 - : process.env.SUDO_GID || (process.getgid && process.getgid()), - heading: 'npm', - 'if-present': false, - 'ignore-scripts': false, - 'init-module': path.resolve(home, '.npm-init.js'), - 'init-author-name': '', - 'init-author-email': '', - 'init-author-url': '', - 'init-version': '1.0.0', - 'init-license': 'ISC', - json: false, - key: null, - 'legacy-bundling': false, - link: false, - 'local-address': undefined, - loglevel: 'warn', - logstream: process.stderr, - long: false, - maxsockets: 50, - message: '%s', - 'node-version': process.version, - npat: false, - 'onload-script': false, - only: null, - optional: true, - parseable: false, - prefix: globalPrefix, - production: process.env.NODE_ENV === 'production', - 'progress': !process.env.TRAVIS && !process.env.CI, - 'proprietary-attribs': true, - proxy: null, - 'https-proxy': null, - 'user-agent': 'npm/{npm-version} ' + - 'node/{node-version} ' + - '{platform} ' + - '{arch}', - 'rebuild-bundle': true, - registry: 'https://registry.npmjs.org/', - rollback: true, - save: false, - 'save-bundle': false, - 'save-dev': false, - 'save-exact': false, - 'save-optional': false, - 'save-prefix': '^', - scope: '', - searchopts: '', - searchexclude: null, - searchsort: 'name', - shell: osenv.shell(), - shrinkwrap: true, - 'sign-git-tag': false, - 'strict-ssl': true, - tag: 'latest', - 'tag-version-prefix': 'v', - tmp: temp, - unicode: hasUnicode(), - 'unsafe-perm': process.platform === 'win32' || - process.platform === 'cygwin' || - !(process.getuid && process.setuid && - process.getgid && process.setgid) || - process.getuid() !== 0, - usage: false, - user: process.platform === 'win32' ? 0 : 'nobody', - userconfig: path.resolve(home, '.npmrc'), - umask: process.umask ? process.umask() : umask.fromString('022'), - version: false, - versions: false, - viewer: process.platform === 'win32' ? 'browser' : 'man', - - _exit: true - } - - return defaults -}}) - -exports.types = { - access: [null, 'restricted', 'public'], - 'always-auth': Boolean, - also: [null, 'dev', 'development'], - 'bin-links': Boolean, - browser: [null, String], - ca: [null, String, Array], - cafile: path, - cache: path, - 'cache-lock-stale': Number, - 'cache-lock-retries': Number, - 'cache-lock-wait': Number, - 'cache-max': Number, - 'cache-min': Number, - cert: [null, String], - color: ['always', Boolean], - depth: Number, - description: Boolean, - dev: Boolean, - 'dry-run': Boolean, - editor: String, - 'engine-strict': Boolean, - force: Boolean, - 'fetch-retries': Number, - 'fetch-retry-factor': Number, - 'fetch-retry-mintimeout': Number, - 'fetch-retry-maxtimeout': Number, - git: String, - 'git-tag-version': Boolean, - global: Boolean, - globalconfig: path, - 'global-style': Boolean, - group: [Number, String], - 'https-proxy': [null, url], - 'user-agent': String, - 'heading': String, - 'if-present': Boolean, - 'ignore-scripts': Boolean, - 'init-module': path, - 'init-author-name': String, - 'init-author-email': String, - 'init-author-url': ['', url], - 'init-license': String, - 'init-version': semver, - json: Boolean, - key: [null, String], - 'legacy-bundling': Boolean, - link: Boolean, - // local-address must be listed as an IP for a local network interface - // must be IPv4 due to node bug - 'local-address': getLocalAddresses(), - loglevel: ['silent', 'error', 'warn', 'http', 'info', 'verbose', 'silly'], - logstream: Stream, - long: Boolean, - maxsockets: Number, - message: String, - 'node-version': [null, semver], - npat: Boolean, - 'onload-script': [null, String], - only: [null, 'dev', 'development', 'prod', 'production'], - optional: Boolean, - parseable: Boolean, - prefix: path, - production: Boolean, - progress: Boolean, - 'proprietary-attribs': Boolean, - proxy: [null, false, url], // allow proxy to be disabled explicitly - 'rebuild-bundle': Boolean, - registry: [null, url], - rollback: Boolean, - save: Boolean, - 'save-bundle': Boolean, - 'save-dev': Boolean, - 'save-exact': Boolean, - 'save-optional': Boolean, - 'save-prefix': String, - scope: String, - searchopts: String, - searchexclude: [null, String], - searchsort: [ - 'name', '-name', - 'description', '-description', - 'author', '-author', - 'date', '-date', - 'keywords', '-keywords' - ], - shell: String, - shrinkwrap: Boolean, - 'sign-git-tag': Boolean, - 'strict-ssl': Boolean, - tag: String, - tmp: path, - unicode: Boolean, - 'unsafe-perm': Boolean, - usage: Boolean, - user: [Number, String], - userconfig: path, - umask: Umask, - version: Boolean, - 'tag-version-prefix': String, - versions: Boolean, - viewer: String, - _exit: Boolean -} - -function getLocalAddresses () { - var interfaces - // #8094: some environments require elevated permissions to enumerate - // interfaces, and synchronously throw EPERM when run without - // elevated privileges - try { - interfaces = os.networkInterfaces() - } catch (e) { - interfaces = {} - } - - return Object.keys(interfaces).map(function (nic) { - return interfaces[nic].filter(function (addr) { - return addr.family === 'IPv4' - }) - .map(function (addr) { - return addr.address - }) - }).reduce(function (curr, next) { - return curr.concat(next) - }, []).concat(undefined) -} - -exports.shorthands = { - s: ['--loglevel', 'silent'], - d: ['--loglevel', 'info'], - dd: ['--loglevel', 'verbose'], - ddd: ['--loglevel', 'silly'], - noreg: ['--no-registry'], - N: ['--no-registry'], - reg: ['--registry'], - 'no-reg': ['--no-registry'], - silent: ['--loglevel', 'silent'], - verbose: ['--loglevel', 'verbose'], - quiet: ['--loglevel', 'warn'], - q: ['--loglevel', 'warn'], - h: ['--usage'], - H: ['--usage'], - '?': ['--usage'], - help: ['--usage'], - v: ['--version'], - f: ['--force'], - gangster: ['--force'], - gangsta: ['--force'], - desc: ['--description'], - 'no-desc': ['--no-description'], - 'local': ['--no-global'], - l: ['--long'], - m: ['--message'], - p: ['--parseable'], - porcelain: ['--parseable'], - g: ['--global'], - S: ['--save'], - D: ['--save-dev'], - E: ['--save-exact'], - O: ['--save-optional'], - y: ['--yes'], - n: ['--no-yes'], - B: ['--save-bundle'], - C: ['--prefix'] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/find-prefix.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/find-prefix.js deleted file mode 100644 index 58f5cc80..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/find-prefix.js +++ /dev/null @@ -1,56 +0,0 @@ -// try to find the most reasonable prefix to use - -module.exports = findPrefix - -var fs = require('fs') -var path = require('path') - -function findPrefix (p, cb_) { - function cb (er, p) { - process.nextTick(function () { - cb_(er, p) - }) - } - - p = path.resolve(p) - // if there's no node_modules folder, then - // walk up until we hopefully find one. - // if none anywhere, then use cwd. - var walkedUp = false - while (path.basename(p) === 'node_modules') { - p = path.dirname(p) - walkedUp = true - } - if (walkedUp) return cb(null, p) - - findPrefix_(p, p, cb) -} - -function findPrefix_ (p, original, cb) { - if (p === '/' || - (process.platform === 'win32' && p.match(/^[a-zA-Z]:(\\|\/)?$/))) { - return cb(null, original) - } - fs.readdir(p, function (er, files) { - // an error right away is a bad sign. - // unless the prefix was simply a non - // existent directory. - if (er && p === original) { - if (er.code === 'ENOENT') return cb(null, original) - return cb(er) - } - - // walked up too high or something. - if (er) return cb(null, original) - - if (files.indexOf('node_modules') !== -1 || - files.indexOf('package.json') !== -1) { - return cb(null, p) - } - - var d = path.dirname(p) - if (d === p) return cb(null, original) - - return findPrefix_(d, original, cb) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/get-credentials-by-uri.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/get-credentials-by-uri.js deleted file mode 100644 index 19779c41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/get-credentials-by-uri.js +++ /dev/null @@ -1,74 +0,0 @@ -var assert = require('assert') - -var toNerfDart = require('./nerf-dart.js') - -module.exports = getCredentialsByURI - -function getCredentialsByURI (uri) { - assert(uri && typeof uri === 'string', 'registry URL is required') - var nerfed = toNerfDart(uri) - var defnerf = toNerfDart(this.get('registry')) - - // hidden class micro-optimization - var c = { - scope: nerfed, - token: undefined, - password: undefined, - username: undefined, - email: undefined, - auth: undefined, - alwaysAuth: undefined - } - - // used to override scope matching for tokens as well as legacy auth - if (this.get(nerfed + ':always-auth') !== undefined) { - var val = this.get(nerfed + ':always-auth') - c.alwaysAuth = val === 'false' ? false : !!val - } else if (this.get('always-auth') !== undefined) { - c.alwaysAuth = this.get('always-auth') - } - - if (this.get(nerfed + ':_authToken')) { - c.token = this.get(nerfed + ':_authToken') - // the bearer token is enough, don't confuse things - return c - } - - // Handle the old-style _auth= style for the default - // registry, if set. - // - // XXX(isaacs): Remove when npm 1.4 is no longer relevant - var authDef = this.get('_auth') - var userDef = this.get('username') - var passDef = this.get('_password') - if (authDef && !(userDef && passDef)) { - authDef = new Buffer(authDef, 'base64').toString() - authDef = authDef.split(':') - userDef = authDef.shift() - passDef = authDef.join(':') - } - - if (this.get(nerfed + ':_password')) { - c.password = new Buffer(this.get(nerfed + ':_password'), 'base64').toString('utf8') - } else if (nerfed === defnerf && passDef) { - c.password = passDef - } - - if (this.get(nerfed + ':username')) { - c.username = this.get(nerfed + ':username') - } else if (nerfed === defnerf && userDef) { - c.username = userDef - } - - if (this.get(nerfed + ':email')) { - c.email = this.get(nerfed + ':email') - } else if (this.get('email')) { - c.email = this.get('email') - } - - if (c.username && c.password) { - c.auth = new Buffer(c.username + ':' + c.password).toString('base64') - } - - return c -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/load-cafile.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/load-cafile.js deleted file mode 100644 index de8f6162..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/load-cafile.js +++ /dev/null @@ -1,32 +0,0 @@ -module.exports = loadCAFile - -var fs = require('fs') - -function loadCAFile (cafilePath, cb) { - if (!cafilePath) return process.nextTick(cb) - - fs.readFile(cafilePath, 'utf8', afterCARead.bind(this)) - - function afterCARead (er, cadata) { - if (er) { - // previous cafile no longer exists, so just continue on gracefully - if (er.code === 'ENOENT') return cb() - return cb(er) - } - - var delim = '-----END CERTIFICATE-----' - var output - - output = cadata - .split(delim) - .filter(function (xs) { - return !!xs.trim() - }) - .map(function (xs) { - return xs.trimLeft() + delim - }) - - this.set('ca', output) - cb(null) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/load-prefix.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/load-prefix.js deleted file mode 100644 index bb5d9f3b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/load-prefix.js +++ /dev/null @@ -1,51 +0,0 @@ -module.exports = loadPrefix - -var findPrefix = require('./find-prefix.js') -var path = require('path') - -function loadPrefix (cb) { - var cli = this.list[0] - - Object.defineProperty(this, 'prefix', - { - set: function (prefix) { - var g = this.get('global') - this[g ? 'globalPrefix' : 'localPrefix'] = prefix - }.bind(this), - get: function () { - var g = this.get('global') - return g ? this.globalPrefix : this.localPrefix - }.bind(this), - enumerable: true - }) - - Object.defineProperty(this, 'globalPrefix', - { - set: function (prefix) { - this.set('prefix', prefix) - }.bind(this), - get: function () { - return path.resolve(this.get('prefix')) - }.bind(this), - enumerable: true - }) - - var p - Object.defineProperty(this, 'localPrefix', - { set: function (prefix) { p = prefix }, - get: function () { return p }, - enumerable: true }) - - // try to guess at a good node_modules location. - // If we are *explicitly* given a prefix on the cli, then - // always use that. otherwise, infer local prefix from cwd. - if (Object.prototype.hasOwnProperty.call(cli, 'prefix')) { - p = path.resolve(cli.prefix) - process.nextTick(cb) - } else { - findPrefix(process.cwd(), function (er, found) { - p = found - cb(er) - }) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/load-uid.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/load-uid.js deleted file mode 100644 index 859eac74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/load-uid.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = loadUid - -var getUid = require('uid-number') - -// Call in the context of a npmconf object - -function loadUid (cb) { - // if we're not in unsafe-perm mode, then figure out who - // to run stuff as. Do this first, to support `npm update npm -g` - if (!this.get('unsafe-perm')) { - getUid(this.get('user'), this.get('group'), cb) - } else { - process.nextTick(cb) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/nerf-dart.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/nerf-dart.js deleted file mode 100644 index 8d2bdd26..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/nerf-dart.js +++ /dev/null @@ -1,23 +0,0 @@ -var url = require('url') - -module.exports = toNerfDart - -/** - * Maps a URL to an identifier. - * - * Name courtesy schiffertronix media LLC, a New Jersey corporation - * - * @param {String} uri The URL to be nerfed. - * - * @returns {String} A nerfed URL. - */ -function toNerfDart (uri) { - var parsed = url.parse(uri) - delete parsed.protocol - delete parsed.auth - delete parsed.query - delete parsed.search - delete parsed.hash - - return url.resolve(url.format(parsed), '.') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/set-credentials-by-uri.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/set-credentials-by-uri.js deleted file mode 100644 index 74211380..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/set-credentials-by-uri.js +++ /dev/null @@ -1,39 +0,0 @@ -var assert = require('assert') - -var toNerfDart = require('./nerf-dart.js') - -module.exports = setCredentialsByURI - -function setCredentialsByURI (uri, c) { - assert(uri && typeof uri === 'string', 'registry URL is required') - assert(c && typeof c === 'object', 'credentials are required') - - var nerfed = toNerfDart(uri) - - if (c.token) { - this.set(nerfed + ':_authToken', c.token, 'user') - this.del(nerfed + ':_password', 'user') - this.del(nerfed + ':username', 'user') - this.del(nerfed + ':email', 'user') - this.del(nerfed + ':always-auth', 'user') - } else if (c.username || c.password || c.email) { - assert(c.username, 'must include username') - assert(c.password, 'must include password') - assert(c.email, 'must include email address') - - this.del(nerfed + ':_authToken', 'user') - - var encoded = new Buffer(c.password, 'utf8').toString('base64') - this.set(nerfed + ':_password', encoded, 'user') - this.set(nerfed + ':username', c.username, 'user') - this.set(nerfed + ':email', c.email, 'user') - - if (c.alwaysAuth !== undefined) { - this.set(nerfed + ':always-auth', c.alwaysAuth, 'user') - } else { - this.del(nerfed + ':always-auth', 'user') - } - } else { - throw new Error('No credentials to set.') - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/set-user.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/set-user.js deleted file mode 100644 index 14cc21d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/config/set-user.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = setUser - -var assert = require('assert') -var path = require('path') -var fs = require('fs') -var mkdirp = require('mkdirp') - -function setUser (cb) { - var defaultConf = this.root - assert(defaultConf !== Object.prototype) - - // If global, leave it as-is. - // If not global, then set the user to the owner of the prefix folder. - // Just set the default, so it can be overridden. - if (this.get('global')) return cb() - if (process.env.SUDO_UID) { - defaultConf.user = +(process.env.SUDO_UID) - return cb() - } - - var prefix = path.resolve(this.get('prefix')) - mkdirp(prefix, function (er) { - if (er) return cb(er) - fs.stat(prefix, function (er, st) { - defaultConf.user = st && st.uid - return cb(er) - }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/dedupe.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/dedupe.js deleted file mode 100644 index b99a9a1f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/dedupe.js +++ /dev/null @@ -1,167 +0,0 @@ -var util = require('util') -var path = require('path') -var validate = require('aproba') -var without = require('lodash.without') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var npa = require('npm-package-arg') -var log = require('npmlog') -var npm = require('./npm.js') -var Installer = require('./install.js').Installer -var findRequirement = require('./install/deps.js').findRequirement -var earliestInstallable = require('./install/deps.js').earliestInstallable -var checkPermissions = require('./install/check-permissions.js') -var decomposeActions = require('./install/decompose-actions.js') -var loadExtraneous = require('./install/deps.js').loadExtraneous -var filterInvalidActions = require('./install/filter-invalid-actions.js') -var recalculateMetadata = require('./install/deps.js').recalculateMetadata -var sortActions = require('./install/diff-trees.js').sortActions -var moduleName = require('./utils/module-name.js') -var packageId = require('./utils/package-id.js') -var childPath = require('./utils/child-path.js') -var usage = require('./utils/usage') - -module.exports = dedupe -module.exports.Deduper = Deduper - -dedupe.usage = usage( - 'dedupe', - 'npm dedupe' -) - -function dedupe (args, cb) { - validate('AF', arguments) - // the /path/to/node_modules/.. - var where = path.resolve(npm.dir, '..') - var dryrun = false - if (npm.command.match(/^find/)) dryrun = true - if (npm.config.get('dry-run')) dryrun = true - - new Deduper(where, dryrun).run(cb) -} - -function Deduper (where, dryrun) { - validate('SB', arguments) - Installer.call(this, where, dryrun, []) - this.noPackageJsonOk = true - this.topLevelLifecycles = false -} -util.inherits(Deduper, Installer) - -Deduper.prototype.normalizeTree = function (log, cb) { - validate('OF', arguments) - log.silly('dedupe', 'normalizeTree') - // If we're looking globally only look at the one package we're operating on - if (npm.config.get('global')) { - var args = this.args - this.currentTree.children = this.currentTree.children.filter(function (child) { - return args.filter(function (arg) { return arg === moduleName(child) }).length - }) - } - Installer.prototype.normalizeTree.call(this, log, cb) -} - -Deduper.prototype.loadIdealTree = function (cb) { - validate('F', arguments) - log.silly('install', 'loadIdealTree') - - var self = this - chain([ - [this.newTracker(this.progress.loadIdealTree, 'cloneCurrentTree')], - [this, this.cloneCurrentTreeToIdealTree], - [this, this.finishTracker, 'cloneCurrentTree'], - - [this.newTracker(this.progress.loadIdealTree, 'loadAllDepsIntoIdealTree', 10)], - [ function (next) { - loadExtraneous(self.idealTree, self.progress.loadAllDepsIntoIdealTree, next) - } ], - [this, this.finishTracker, 'loadAllDepsIntoIdealTree'], - - [this, function (next) { recalculateMetadata(this.idealTree, log, next) }] - ], cb) -} - -Deduper.prototype.generateActionsToTake = function (cb) { - validate('F', arguments) - log.silly('dedupe', 'generateActionsToTake') - chain([ - [this.newTracker(log, 'hoist', 1)], - [hoistChildren, this.idealTree, this.differences], - [this, this.finishTracker, 'hoist'], - [this.newTracker(log, 'sort-actions', 1)], - [this, function (next) { - this.differences = sortActions(this.differences) - next() - }], - [this, this.finishTracker, 'sort-actions'], - [filterInvalidActions, this.where, this.differences], - [checkPermissions, this.differences], - [decomposeActions, this.differences, this.todo] - ], cb) -} - -function move (node, hoistTo, diff) { - node.parent.children = without(node.parent.children, node) - hoistTo.children.push(node) - node.fromPath = node.path - node.path = childPath(hoistTo.path, node) - node.parent = hoistTo - if (!diff.filter(function (action) { return action[0] === 'move' && action[1] === node }).length) { - diff.push(['move', node]) - } -} - -function moveRemainingChildren (node, diff) { - node.children.forEach(function (child) { - move(child, node, diff) - moveRemainingChildren(child, diff) - }) -} - -function remove (child, diff, done) { - remove_(child, diff, {}, done) -} - -function remove_ (child, diff, seen, done) { - if (seen[child.path]) return done() - seen[child.path] = true - diff.push(['remove', child]) - child.parent.children = without(child.parent.children, child) - asyncMap(child.children, function (child, next) { - remove_(child, diff, seen, next) - }, done) -} - -function hoistChildren (tree, diff, next) { - hoistChildren_(tree, diff, {}, next) -} - -function hoistChildren_ (tree, diff, seen, next) { - validate('OAOF', arguments) - if (seen[tree.path]) return next() - seen[tree.path] = true - asyncMap(tree.children, function (child, done) { - if (!tree.parent) return hoistChildren_(child, diff, seen, done) - var better = findRequirement(tree.parent, moduleName(child), child.package._requested || npa(packageId(child))) - if (better) { - return chain([ - [remove, child, diff], - [recalculateMetadata, tree, log] - ], done) - } - var hoistTo = earliestInstallable(tree, tree.parent, child.package) - if (hoistTo) { - move(child, hoistTo, diff) - chain([ - [recalculateMetadata, hoistTo, log], - [hoistChildren_, child, diff, seen], - [ function (next) { - moveRemainingChildren(child, diff) - next() - } ] - ], done) - } else { - done() - } - }, next) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/deprecate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/deprecate.js deleted file mode 100644 index dff61973..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/deprecate.js +++ /dev/null @@ -1,54 +0,0 @@ -var npm = require('./npm.js') -var mapToRegistry = require('./utils/map-to-registry.js') -var npa = require('npm-package-arg') - -module.exports = deprecate - -deprecate.usage = 'npm deprecate [@] ' - -deprecate.completion = function (opts, cb) { - // first, get a list of remote packages this user owns. - // once we have a user account, then don't complete anything. - if (opts.conf.argv.remain.length > 2) return cb() - // get the list of packages by user - var path = '/-/by-user/' - mapToRegistry(path, npm.config, function (er, uri, c) { - if (er) return cb(er) - - if (!(c && c.username)) return cb() - - var params = { - timeout: 60000, - auth: c - } - npm.registry.get(uri + c.username, params, function (er, list) { - if (er) return cb() - console.error(list) - return cb(null, list[c.username]) - }) - }) -} - -function deprecate (args, cb) { - var pkg = args[0] - var msg = args[1] - if (msg === undefined) return cb('Usage: ' + deprecate.usage) - - // fetch the data and make sure it exists. - var p = npa(pkg) - - // npa makes the default spec "latest", but for deprecation - // "*" is the appropriate default. - if (p.rawSpec === '') p.spec = '*' - - mapToRegistry(p.name, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - version: p.spec, - message: msg, - auth: auth - } - npm.registry.deprecate(uri, params, cb) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/dist-tag.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/dist-tag.js deleted file mode 100644 index 0e9d914d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/dist-tag.js +++ /dev/null @@ -1,157 +0,0 @@ -module.exports = distTag - -var log = require('npmlog') -var npa = require('npm-package-arg') -var semver = require('semver') - -var npm = require('./npm.js') -var mapToRegistry = require('./utils/map-to-registry.js') -var readLocalPkg = require('./utils/read-local-package.js') -var usage = require('./utils/usage') - -distTag.usage = usage( - 'dist-tag', - 'npm dist-tag add @ []' + - '\nnpm dist-tag rm ' + - '\nnpm dist-tag ls []' -) - -distTag.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv.length === 2) { - return cb(null, ['add', 'rm', 'ls']) - } - - switch (argv[2]) { - default: - return cb() - } -} - -function distTag (args, cb) { - var cmd = args.shift() - switch (cmd) { - case 'add': case 'a': case 'set': case 's': - return add(args[0], args[1], cb) - case 'rm': case 'r': case 'del': case 'd': case 'remove': - return remove(args[1], args[0], cb) - case 'ls': case 'l': case 'sl': case 'list': - return list(args[0], cb) - default: - return cb('Usage:\n' + distTag.usage) - } -} - -function add (spec, tag, cb) { - var thing = npa(spec || '') - var pkg = thing.name - var version = thing.rawSpec - var t = (tag || npm.config.get('tag')).trim() - - log.verbose('dist-tag add', t, 'to', pkg + '@' + version) - - if (!pkg || !version || !t) return cb('Usage:\n' + distTag.usage) - - if (semver.validRange(t)) { - var er = new Error('Tag name must not be a valid SemVer range: ' + t) - return cb(er) - } - - fetchTags(pkg, function (er, tags) { - if (er) return cb(er) - - if (tags[t] === version) { - log.warn('dist-tag add', t, 'is already set to version', version) - return cb() - } - tags[t] = version - - mapToRegistry(pkg, npm.config, function (er, uri, auth, base) { - var params = { - 'package': pkg, - distTag: t, - version: version, - auth: auth - } - - npm.registry.distTags.add(base, params, function (er) { - if (er) return cb(er) - - console.log('+' + t + ': ' + pkg + '@' + version) - cb() - }) - }) - }) -} - -function remove (tag, pkg, cb) { - log.verbose('dist-tag del', tag, 'from', pkg) - - fetchTags(pkg, function (er, tags) { - if (er) return cb(er) - - if (!tags[tag]) { - log.info('dist-tag del', tag, 'is not a dist-tag on', pkg) - return cb(new Error(tag + ' is not a dist-tag on ' + pkg)) - } - - var version = tags[tag] - delete tags[tag] - - mapToRegistry(pkg, npm.config, function (er, uri, auth, base) { - var params = { - 'package': pkg, - distTag: tag, - auth: auth - } - - npm.registry.distTags.rm(base, params, function (er) { - if (er) return cb(er) - - console.log('-' + tag + ': ' + pkg + '@' + version) - cb() - }) - }) - }) -} - -function list (pkg, cb) { - if (!pkg) { - return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(distTag.usage) - list(pkg, cb) - }) - } - - fetchTags(pkg, function (er, tags) { - if (er) { - log.error('dist-tag ls', "Couldn't get dist-tag data for", pkg) - return cb(er) - } - var msg = Object.keys(tags).map(function (k) { - return k + ': ' + tags[k] - }).sort().join('\n') - console.log(msg) - cb(er, tags) - }) -} - -function fetchTags (pkg, cb) { - mapToRegistry(pkg, npm.config, function (er, uri, auth, base) { - if (er) return cb(er) - - var params = { - 'package': pkg, - auth: auth - } - npm.registry.distTags.fetch(base, params, function (er, tags) { - if (er) return cb(er) - if (!tags || !Object.keys(tags).length) { - return cb(new Error('No dist-tags found for ' + pkg)) - } - - cb(null, tags) - }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/docs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/docs.js deleted file mode 100644 index 19dcce16..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/docs.js +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = docs - -var npm = require('./npm.js') -var opener = require('opener') -var log = require('npmlog') -var fetchPackageMetadata = require('./fetch-package-metadata.js') -var usage = require('./utils/usage') - -docs.usage = usage( - 'docs', - 'npm docs ' + - '\nnpm docs .' -) -docs.completion = function (opts, cb) { - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - cb() -} - -function docs (args, cb) { - if (!args || !args.length) args = ['.'] - var pending = args.length - log.silly('docs', args) - args.forEach(function (proj) { - getDoc(proj, function (err) { - if (err) { - return cb(err) - } - --pending || cb() - }) - }) -} - -function getDoc (project, cb) { - log.silly('getDoc', project) - fetchPackageMetadata(project, '.', function (er, d) { - if (er) return cb(er) - var url = d.homepage - if (!url) url = 'https://www.npmjs.org/package/' + d.name - return opener(url, {command: npm.config.get('browser')}, cb) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/edit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/edit.js deleted file mode 100644 index 155db6fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/edit.js +++ /dev/null @@ -1,34 +0,0 @@ -// npm edit -// open the package folder in the $EDITOR - -module.exports = edit -edit.usage = 'npm edit [@]' - -edit.completion = require('./utils/completion/installed-shallow.js') - -var npm = require('./npm.js') -var path = require('path') -var fs = require('graceful-fs') -var editor = require('editor') - -function edit (args, cb) { - var p = args[0] - if (args.length !== 1 || !p) return cb(edit.usage) - var e = npm.config.get('editor') - if (!e) { - return cb(new Error( - "No editor set. Set the 'editor' config, or $EDITOR environ." - )) - } - p = p.split('/') - .join('/node_modules/') - .replace(/(\/node_modules)+/, '/node_modules') - var f = path.resolve(npm.dir, p) - fs.lstat(f, function (er) { - if (er) return cb(er) - editor(f, { editor: e }, function (er) { - if (er) return cb(er) - npm.commands.rebuild(args, cb) - }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/explore.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/explore.js deleted file mode 100644 index 05b5220d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/explore.js +++ /dev/null @@ -1,58 +0,0 @@ -// npm explore [@] -// open a subshell to the package folder. - -module.exports = explore -explore.usage = 'npm explore [ -- ]' -explore.completion = require('./utils/completion/installed-shallow.js') - -var npm = require('./npm.js') -var spawn = require('./utils/spawn') -var path = require('path') -var fs = require('graceful-fs') -var isWindowsShell = require('./utils/is-windows-shell.js') -var escapeExecPath = require('./utils/escape-exec-path.js') -var escapeArg = require('./utils/escape-arg.js') - -function explore (args, cb) { - if (args.length < 1 || !args[0]) return cb(explore.usage) - var p = args.shift() - - var cwd = path.resolve(npm.dir, p) - var opts = {cwd: cwd, stdio: 'inherit'} - - var shellArgs = [] - if (args) { - if (isWindowsShell) { - var execCmd = escapeExecPath(args.shift()) - var execArgs = [execCmd].concat(args.map(escapeArg)) - opts.windowsVerbatimArguments = true - shellArgs = ['/d', '/s', '/c'].concat(execArgs) - } else { - shellArgs.unshift('-c') - shellArgs = ['-c', args.map(escapeArg).join(' ').trim()] - } - } - - var sh = npm.config.get('shell') - fs.stat(cwd, function (er, s) { - if (er || !s.isDirectory()) { - return cb(new Error( - "It doesn't look like " + p + ' is installed.' - )) - } - - if (!shellArgs.length) { - console.log( - '\nExploring ' + cwd + '\n' + - "Type 'exit' or ^D when finished\n" - ) - } - - var shell = spawn(sh, shellArgs, opts) - shell.on('close', function (er) { - // only fail if non-interactive. - if (!shellArgs.length) return cb() - cb(er) - }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/fetch-package-metadata.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/fetch-package-metadata.js deleted file mode 100644 index d4f02bb2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/fetch-package-metadata.js +++ /dev/null @@ -1,355 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var zlib = require('zlib') - -var log = require('npmlog') -var realizePackageSpecifier = require('realize-package-specifier') -var tar = require('tar') -var once = require('once') -var semver = require('semver') -var readPackageTree = require('read-package-tree') -var readPackageJson = require('read-package-json') -var iferr = require('iferr') -var rimraf = require('rimraf') -var clone = require('lodash.clonedeep') -var validate = require('aproba') -var unpipe = require('unpipe') -var normalizePackageData = require('normalize-package-data') - -var npm = require('./npm.js') -var mapToRegistry = require('./utils/map-to-registry.js') -var cache = require('./cache.js') -var cachedPackageRoot = require('./cache/cached-package-root.js') -var tempFilename = require('./utils/temp-filename.js') -var getCacheStat = require('./cache/get-stat.js') -var unpack = require('./utils/tar.js').unpack -var pulseTillDone = require('./utils/pulse-till-done.js') -var parseJSON = require('./utils/parse-json.js') - -function andLogAndFinish (spec, tracker, done) { - validate('SF', [spec, done]) - return function (er, pkg) { - if (er) { - log.silly('fetchPackageMetaData', 'error for ' + spec, er) - if (tracker) tracker.finish() - } - return done(er, pkg) - } -} - -module.exports = function fetchPackageMetadata (spec, where, tracker, done) { - if (!done) { - done = tracker || where - tracker = null - if (done === where) where = null - } - if (typeof spec === 'object') { - var dep = spec - spec = dep.raw - } - var logAndFinish = andLogAndFinish(spec, tracker, done) - if (!dep) { - log.silly('fetchPackageMetaData', spec) - return realizePackageSpecifier(spec, where, iferr(logAndFinish, function (dep) { - fetchPackageMetadata(dep, where, tracker, done) - })) - } - if (dep.type === 'version' || dep.type === 'range' || dep.type === 'tag') { - fetchNamedPackageData(dep, addRequestedAndFinish) - } else if (dep.type === 'directory') { - fetchDirectoryPackageData(dep, where, addRequestedAndFinish) - } else { - fetchOtherPackageData(spec, dep, where, addRequestedAndFinish) - } - function addRequestedAndFinish (er, pkg) { - if (pkg) annotateMetadata(pkg, dep, spec, where) - logAndFinish(er, pkg) - } -} - -var annotateMetadata = module.exports.annotateMetadata = function (pkg, requested, spec, where) { - validate('OOSS', arguments) - pkg._requested = requested - pkg._spec = spec - pkg._where = where - if (!pkg._args) pkg._args = [] - pkg._args.push([requested, where]) - // non-npm registries can and will return unnormalized data, plus - // even the npm registry may have package data normalized with older - // normalization rules. This ensures we get package data in a consistent, - // stable format. - try { - normalizePackageData(pkg) - } catch (ex) { - // don't care - } -} - -function fetchOtherPackageData (spec, dep, where, next) { - validate('SOSF', arguments) - log.silly('fetchOtherPackageData', spec) - cache.add(spec, null, where, false, iferr(next, function (pkg) { - var result = clone(pkg) - result._inCache = true - next(null, result) - })) -} - -function fetchDirectoryPackageData (dep, where, next) { - validate('OSF', arguments) - log.silly('fetchDirectoryPackageData', dep.name || dep.rawSpec) - readPackageJson(path.join(dep.spec, 'package.json'), false, next) -} - -var regCache = {} - -function fetchNamedPackageData (dep, next) { - validate('OF', arguments) - log.silly('fetchNamedPackageData', dep.name || dep.rawSpec) - mapToRegistry(dep.name || dep.rawSpec, npm.config, iferr(next, function (url, auth) { - if (regCache[url]) { - pickVersionFromRegistryDocument(clone(regCache[url])) - } else { - npm.registry.get(url, {auth: auth}, pulseTillDone('fetchMetadata', iferr(next, pickVersionFromRegistryDocument))) - } - function returnAndAddMetadata (pkg) { - pkg._from = dep.raw - pkg._resolved = pkg.dist.tarball - pkg._shasum = pkg.dist.shasum - - next(null, pkg) - } - function pickVersionFromRegistryDocument (pkg) { - if (!regCache[url]) regCache[url] = pkg - var versions = Object.keys(pkg.versions).sort(semver.rcompare) - - if (dep.type === 'tag') { - var tagVersion = pkg['dist-tags'][dep.spec] - if (pkg.versions[tagVersion]) return returnAndAddMetadata(pkg.versions[tagVersion]) - } else { - var latestVersion = pkg['dist-tags'][npm.config.get('tag')] || versions[0] - - // Find the the most recent version less than or equal - // to latestVersion that satisfies our spec - for (var ii = 0; ii < versions.length; ++ii) { - if (semver.gt(versions[ii], latestVersion)) continue - if (semver.satisfies(versions[ii], dep.spec)) { - return returnAndAddMetadata(pkg.versions[versions[ii]]) - } - } - - // Failing that, try finding the most recent version that matches - // our spec - for (var jj = 0; jj < versions.length; ++jj) { - if (semver.satisfies(versions[jj], dep.spec)) { - return returnAndAddMetadata(pkg.versions[versions[jj]]) - } - } - - // Failing THAT, if the range was '*' uses latestVersion - if (dep.spec === '*') { - return returnAndAddMetadata(pkg.versions[latestVersion]) - } - } - - // We didn't manage to find a compatible version - // If this package was requested from cache, force hitting the network - if (pkg._cached) { - log.silly('fetchNamedPackageData', 'No valid target from cache, forcing network') - return npm.registry.get(url, { - auth: auth, - skipCache: true - }, pulseTillDone('fetchMetadata', iferr(next, pickVersionFromRegistryDocument))) - } - - // And failing that, we error out - var targets = versions.length - ? 'Valid install targets:\n' + versions.join(', ') + '\n' - : 'No valid targets found.' - var er = new Error('No compatible version found: ' + - dep.raw + '\n' + targets) - return next(er) - } - })) -} - -function retryWithCached (pkg, asserter, next) { - if (!pkg._inCache) { - cache.add(pkg._spec, null, pkg._where, false, iferr(next, function (newpkg) { - Object.keys(newpkg).forEach(function (key) { - if (key[0] !== '_') return - pkg[key] = newpkg[key] - }) - pkg._inCache = true - return asserter(pkg, next) - })) - } - return !pkg._inCache -} - -module.exports.addShrinkwrap = function addShrinkwrap (pkg, next) { - validate('OF', arguments) - if (pkg._shrinkwrap !== undefined) return next(null, pkg) - if (retryWithCached(pkg, addShrinkwrap, next)) return - pkg._shrinkwrap = null - // FIXME: cache the shrinkwrap directly - var pkgname = pkg.name - var ver = pkg.version - var tarball = path.join(cachedPackageRoot({name: pkgname, version: ver}), 'package.tgz') - untarStream(tarball, function (er, untar) { - if (er) { - if (er.code === 'ENOTTARBALL') { - pkg._shrinkwrap = null - return next() - } else { - return next(er) - } - } - if (er) return next(er) - var foundShrinkwrap = false - untar.on('entry', function (entry) { - if (!/^(?:[^\/]+[\/])npm-shrinkwrap.json$/.test(entry.path)) return - log.silly('addShrinkwrap', 'Found shrinkwrap in ' + pkgname + ' ' + entry.path) - foundShrinkwrap = true - var shrinkwrap = '' - entry.on('data', function (chunk) { - shrinkwrap += chunk - }) - entry.on('end', function () { - untar.close() - log.silly('addShrinkwrap', 'Completed reading shrinkwrap in ' + pkgname) - try { - pkg._shrinkwrap = parseJSON(shrinkwrap) - } catch (ex) { - var er = new Error('Error parsing ' + pkgname + '@' + ver + "'s npm-shrinkwrap.json: " + ex.message) - er.type = 'ESHRINKWRAP' - return next(er) - } - next(null, pkg) - }) - entry.resume() - }) - untar.on('end', function () { - if (!foundShrinkwrap) { - pkg._shrinkwrap = null - next(null, pkg) - } - }) - }) -} - -module.exports.addBundled = function addBundled (pkg, next) { - validate('OF', arguments) - if (pkg._bundled !== undefined) return next(null, pkg) - if (!pkg.bundleDependencies) return next(null, pkg) - if (retryWithCached(pkg, addBundled, next)) return - pkg._bundled = null - var pkgname = pkg.name - var ver = pkg.version - var tarball = path.join(cachedPackageRoot({name: pkgname, version: ver}), 'package.tgz') - var target = tempFilename('unpack') - getCacheStat(iferr(next, function (cs) { - log.verbose('addBundled', 'extract', tarball) - unpack(tarball, target, null, null, cs.uid, cs.gid, iferr(next, function () { - log.silly('addBundled', 'read tarball') - readPackageTree(target, function (er, tree) { - log.silly('cleanup', 'remove extracted module') - rimraf(target, function () { - if (tree) { - pkg._bundled = tree.children - } - next(null, pkg) - }) - }) - })) - })) -} - -// FIXME: hasGzipHeader / hasTarHeader / untarStream duplicate a lot -// of code from lib/utils/tar.js– these should be brought together. - -function hasGzipHeader (c) { - return c[0] === 0x1F && c[1] === 0x8B && c[2] === 0x08 -} - -function hasTarHeader (c) { - return c[257] === 0x75 && // tar archives have 7573746172 at position - c[258] === 0x73 && // 257 and 003030 or 202000 at position 262 - c[259] === 0x74 && - c[260] === 0x61 && - c[261] === 0x72 && - - ((c[262] === 0x00 && - c[263] === 0x30 && - c[264] === 0x30) || - - (c[262] === 0x20 && - c[263] === 0x20 && - c[264] === 0x00)) -} - -function untarStream (tarball, cb) { - validate('SF', arguments) - cb = once(cb) - - var stream - var file = stream = fs.createReadStream(tarball) - var tounpipe = [file] - file.on('error', function (er) { - er = new Error('Error extracting ' + tarball + ' archive: ' + er.message) - er.code = 'EREADFILE' - cb(er) - }) - file.on('data', function OD (c) { - if (hasGzipHeader(c)) { - doGunzip() - } else if (hasTarHeader(c)) { - doUntar() - } else { - if (file.close) file.close() - if (file.destroy) file.destroy() - var er = new Error('Non-gzip/tarball ' + tarball) - er.code = 'ENOTTARBALL' - return cb(er) - } - file.removeListener('data', OD) - file.emit('data', c) - cb(null, stream) - }) - - function doGunzip () { - var gunzip = stream.pipe(zlib.createGunzip()) - gunzip.on('error', function (er) { - er = new Error('Error extracting ' + tarball + ' archive: ' + er.message) - er.code = 'EGUNZIP' - cb(er) - }) - tounpipe.push(gunzip) - stream = gunzip - doUntar() - } - - function doUntar () { - var untar = stream.pipe(tar.Parse()) - untar.on('error', function (er) { - er = new Error('Error extracting ' + tarball + ' archive: ' + er.message) - er.code = 'EUNTAR' - cb(er) - }) - tounpipe.push(untar) - stream = untar - addClose() - } - - function addClose () { - stream.close = function () { - tounpipe.forEach(function (stream) { - unpipe(stream) - }) - - if (file.close) file.close() - if (file.destroy) file.destroy() - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/fetch-package-metadata.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/fetch-package-metadata.md deleted file mode 100644 index 6a7d4fc5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/fetch-package-metadata.md +++ /dev/null @@ -1,37 +0,0 @@ -fetch-package-metadata ----------------------- - - var fetchPackageMetadata = require("npm/lib/fetch-package-metadata") - fetchPackageMetadata(spec, contextdir, callback) - -This will get package metadata (and if possible, ONLY package metadata) for -a specifer as passed to `npm install` et al, eg `npm@next` or `npm@^2.0.3` - -## fetchPackageMetadata(*spec*, *contextdir*, *tracker*, *callback*) - -* *spec* **string** | **object** -- The package specifier, can be anything npm can - understand (see [realize-package-specifier]), or it can be the result from - realize-package-specifier or npm-package-arg (for non-local deps). - -* *contextdir* **string** -- The directory from which relative paths to - local packages should be resolved. - -* *tracker* **object** -- **(optional)** An are-we-there-yet tracker group as - provided by `npm.log.newGroup()`. - -* *callback* **function (er, package)** -- Called when the package information - has been loaded. `package` is the object for of the `package.json` - matching the requested spec. In the case of named packages, it comes from - the registry and thus may not exactly match what's found in the associated - tarball. - -[realize-package-specifier]: (https://github.com/npm/realize-package-specifier) - -In the case of tarballs and git repos, it will use the cache to download -them in order to get the package metadata. For named packages, only the -metadata is downloaded (eg http://registry.npmjs.org/package). For local -directories, the package.json is read directly. For local tarballs, the -tarball is streamed in memory and just the package.json is extracted from -it. (Due to the nature of tars, having the package.json early in the file -will result in it being loaded faster– the extractor short-circuits the -uncompress/untar streams as best as it can.) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/get.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/get.js deleted file mode 100644 index 8dc805ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/get.js +++ /dev/null @@ -1,12 +0,0 @@ - -module.exports = get - -get.usage = 'npm get (See `npm config`)' - -var npm = require('./npm.js') - -get.completion = npm.commands.config.completion - -function get (args, cb) { - npm.commands.config(['get'].concat(args), cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/help-search.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/help-search.js deleted file mode 100644 index 8a138fee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/help-search.js +++ /dev/null @@ -1,211 +0,0 @@ - -module.exports = helpSearch - -var fs = require('graceful-fs') -var path = require('path') -var asyncMap = require('slide').asyncMap -var npm = require('./npm.js') -var glob = require('glob') -var color = require('ansicolors') - -helpSearch.usage = 'npm help-search ' - -function helpSearch (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - if (!args.length) return cb(helpSearch.usage) - - var docPath = path.resolve(__dirname, '..', 'doc') - return glob(docPath + '/*/*.md', function (er, files) { - if (er) return cb(er) - readFiles(files, function (er, data) { - if (er) return cb(er) - searchFiles(args, data, function (er, results) { - if (er) return cb(er) - formatResults(args, results, cb) - }) - }) - }) -} - -function readFiles (files, cb) { - var res = {} - asyncMap(files, function (file, cb) { - fs.readFile(file, 'utf8', function (er, data) { - res[file] = data - return cb(er) - }) - }, function (er) { - return cb(er, res) - }) -} - -function searchFiles (args, files, cb) { - var results = [] - Object.keys(files).forEach(function (file) { - var data = files[file] - - // skip if no matches at all - var match - for (var a = 0, l = args.length; a < l && !match; a++) { - match = data.toLowerCase().indexOf(args[a].toLowerCase()) !== -1 - } - if (!match) return - - var lines = data.split(/\n+/) - - // if a line has a search term, then skip it and the next line. - // if the next line has a search term, then skip all 3 - // otherwise, set the line to null. then remove the nulls. - l = lines.length - for (var i = 0; i < l; i++) { - var line = lines[i] - var nextLine = lines[i + 1] - var ll - - match = false - if (nextLine) { - for (a = 0, ll = args.length; a < ll && !match; a++) { - match = nextLine.toLowerCase() - .indexOf(args[a].toLowerCase()) !== -1 - } - if (match) { - // skip over the next line, and the line after it. - i += 2 - continue - } - } - - match = false - for (a = 0, ll = args.length; a < ll && !match; a++) { - match = line.toLowerCase().indexOf(args[a].toLowerCase()) !== -1 - } - if (match) { - // skip over the next line - i++ - continue - } - - lines[i] = null - } - - // now squish any string of nulls into a single null - lines = lines.reduce(function (l, r) { - if (!(r === null && l[l.length - 1] === null)) l.push(r) - return l - }, []) - - if (lines[lines.length - 1] === null) lines.pop() - if (lines[0] === null) lines.shift() - - // now see how many args were found at all. - var found = {} - var totalHits = 0 - lines.forEach(function (line) { - args.forEach(function (arg) { - var hit = (line || '').toLowerCase() - .split(arg.toLowerCase()).length - 1 - if (hit > 0) { - found[arg] = (found[arg] || 0) + hit - totalHits += hit - } - }) - }) - - var cmd = 'npm help ' - if (path.basename(path.dirname(file)) === 'api') { - cmd = 'npm apihelp ' - } - cmd += path.basename(file, '.md').replace(/^npm-/, '') - results.push({ - file: file, - cmd: cmd, - lines: lines, - found: Object.keys(found), - hits: found, - totalHits: totalHits - }) - }) - - // if only one result, then just show that help section. - if (results.length === 1) { - return npm.commands.help([results[0].file.replace(/\.md$/, '')], cb) - } - - if (results.length === 0) { - console.log('No results for ' + args.map(JSON.stringify).join(' ')) - return cb() - } - - // sort results by number of results found, then by number of hits - // then by number of matching lines - results = results.sort(function (a, b) { - return a.found.length > b.found.length ? -1 - : a.found.length < b.found.length ? 1 - : a.totalHits > b.totalHits ? -1 - : a.totalHits < b.totalHits ? 1 - : a.lines.length > b.lines.length ? -1 - : a.lines.length < b.lines.length ? 1 - : 0 - }) - - cb(null, results) -} - -function formatResults (args, results, cb) { - if (!results) return cb(null) - - var cols = Math.min(process.stdout.columns || Infinity, 80) + 1 - - var out = results.map(function (res) { - var out = res.cmd - var r = Object.keys(res.hits) - .map(function (k) { - return k + ':' + res.hits[k] - }).sort(function (a, b) { - return a > b ? 1 : -1 - }).join(' ') - - out += ((new Array(Math.max(1, cols - out.length - r.length))) - .join(' ')) + r - - if (!npm.config.get('long')) return out - - out = '\n\n' + out + '\n' + - (new Array(cols)).join('—') + '\n' + - res.lines.map(function (line, i) { - if (line === null || i > 3) return '' - for (var out = line, a = 0, l = args.length; a < l; a++) { - var finder = out.toLowerCase().split(args[a].toLowerCase()) - var newOut = '' - var p = 0 - - finder.forEach(function (f) { - newOut += out.substr(p, f.length) - - var hilit = out.substr(p + f.length, args[a].length) - if (npm.color) hilit = color.bgBlack(color.red(hilit)) - newOut += hilit - - p += f.length + args[a].length - }) - } - - return newOut - }).join('\n').trim() - return out - }).join('\n') - - if (results.length && !npm.config.get('long')) { - out = 'Top hits for ' + (args.map(JSON.stringify).join(' ')) + '\n' + - (new Array(cols)).join('—') + '\n' + - out + '\n' + - (new Array(cols)).join('—') + '\n' + - '(run with -l or --long to see more context)' - } - - console.log(out.trim()) - cb(null, results) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/help.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/help.js deleted file mode 100644 index cecc6e02..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/help.js +++ /dev/null @@ -1,240 +0,0 @@ - -module.exports = help - -help.completion = function (opts, cb) { - if (opts.conf.argv.remain.length > 2) return cb(null, []) - getSections(cb) -} - -var path = require('path') -var spawn = require('./utils/spawn') -var npm = require('./npm.js') -var log = require('npmlog') -var opener = require('opener') -var glob = require('glob') -var cmdList = require('./config/cmd-list').cmdList -var shorthands = require('./config/cmd-list').shorthands -var commands = cmdList.concat(Object.keys(shorthands)) - -function help (args, cb) { - var argv = npm.config.get('argv').cooked - - var argnum = 0 - if (args.length === 2 && ~~args[0]) { - argnum = ~~args.shift() - } - - // npm help foo bar baz: search topics - if (args.length > 1 && args[0]) { - return npm.commands['help-search'](args, argnum, cb) - } - - var section = npm.deref(args[0]) || args[0] - - // npm help : show basic usage - if (!section) { - var valid = argv[0] === 'help' ? 0 : 1 - return npmUsage(valid, cb) - } - - // npm -h: show command usage - if (npm.config.get('usage') && - npm.commands[section] && - npm.commands[section].usage) { - npm.config.set('loglevel', 'silent') - log.level = 'silent' - console.log(npm.commands[section].usage) - return cb() - } - - // npm apihelp
          : Prefer section 3 over section 1 - var apihelp = argv.length && argv[0].indexOf('api') !== -1 - var pref = apihelp ? [3, 1, 5, 7] : [1, 3, 5, 7] - if (argnum) { - pref = [ argnum ].concat(pref.filter(function (n) { - return n !== argnum - })) - } - - // npm help
          : Try to find the path - var manroot = path.resolve(__dirname, '..', 'man') - - // legacy - if (section === 'global') section = 'folders' - else if (section === 'json') section = 'package.json' - - // find either /section.n or /npm-section.n - // The glob is used in the glob. The regexp is used much - // further down. Globs and regexps are different - var compextglob = '.+(gz|bz2|lzma|[FYzZ]|xz)' - var compextre = '\\.(gz|bz2|lzma|[FYzZ]|xz)$' - var f = '+(npm-' + section + '|' + section + ').[0-9]?(' + compextglob + ')' - return glob(manroot + '/*/' + f, function (er, mans) { - if (er) return cb(er) - - if (!mans.length) return npm.commands['help-search'](args, cb) - - mans = mans.map(function (man) { - var ext = path.extname(man) - if (man.match(new RegExp(compextre))) man = path.basename(man, ext) - - return man - }) - - viewMan(pickMan(mans, pref), cb) - }) -} - -function pickMan (mans, pref_) { - var nre = /([0-9]+)$/ - var pref = {} - pref_.forEach(function (sect, i) { - pref[sect] = i - }) - mans = mans.sort(function (a, b) { - var an = a.match(nre)[1] - var bn = b.match(nre)[1] - return an === bn ? (a > b ? -1 : 1) - : pref[an] < pref[bn] ? -1 - : 1 - }) - return mans[0] -} - -function viewMan (man, cb) { - var nre = /([0-9]+)$/ - var num = man.match(nre)[1] - var section = path.basename(man, '.' + num) - - // at this point, we know that the specified man page exists - var manpath = path.join(__dirname, '..', 'man') - var env = {} - Object.keys(process.env).forEach(function (i) { - env[i] = process.env[i] - }) - env.MANPATH = manpath - var viewer = npm.config.get('viewer') - - var conf - switch (viewer) { - case 'woman': - var a = ['-e', '(woman-find-file \'' + man + '\')'] - conf = { env: env, stdio: 'inherit' } - var woman = spawn('emacsclient', a, conf) - woman.on('close', cb) - break - - case 'browser': - opener(htmlMan(man), { command: npm.config.get('browser') }, cb) - break - - default: - conf = { env: env, stdio: 'inherit' } - var manProcess = spawn('man', [num, section], conf) - manProcess.on('close', cb) - break - } -} - -function htmlMan (man) { - var sect = +man.match(/([0-9]+)$/)[1] - var f = path.basename(man).replace(/([0-9]+)$/, 'html') - switch (sect) { - case 1: - sect = 'cli' - break - case 3: - sect = 'api' - break - case 5: - sect = 'files' - break - case 7: - sect = 'misc' - break - default: - throw new Error('invalid man section: ' + sect) - } - return path.resolve(__dirname, '..', 'html', 'doc', sect, f) -} - -function npmUsage (valid, cb) { - npm.config.set('loglevel', 'silent') - log.level = 'silent' - console.log([ - '\nUsage: npm ', - '', - 'where is one of:', - npm.config.get('long') ? usages() - : ' ' + wrap(commands), - '', - 'npm -h quick help on ', - 'npm -l display full usage info', - 'npm help search for help on ', - 'npm help npm involved overview', - '', - 'Specify configs in the ini-formatted file:', - ' ' + npm.config.get('userconfig'), - 'or on the command line via: npm --key value', - 'Config info can be viewed via: npm help config', - '', - 'npm@' + npm.version + ' ' + path.dirname(__dirname) - ].join('\n')) - cb(valid) -} - -function usages () { - // return a string of : - var maxLen = 0 - return Object.keys(npm.commands).filter(function (c) { - return c === npm.deref(c) - }).reduce(function (set, c) { - set.push([c, npm.commands[c].usage || '']) - maxLen = Math.max(maxLen, c.length) - return set - }, []).map(function (item) { - var c = item[0] - var usage = item[1] - return '\n ' + - c + (new Array(maxLen - c.length + 2).join(' ')) + - (usage.split('\n').join('\n' + (new Array(maxLen + 6).join(' ')))) - }).join('\n') -} - -function wrap (arr) { - var out = [''] - var l = 0 - var line - - line = process.stdout.columns - if (!line) { - line = 60 - } else { - line = Math.min(60, Math.max(line - 16, 24)) - } - - arr.sort(function (a, b) { return a < b ? -1 : 1 }) - .forEach(function (c) { - if (out[l].length + c.length + 2 < line) { - out[l] += ', ' + c - } else { - out[l++] += ',' - out[l] = c - } - }) - return out.join('\n ').substr(2) -} - -function getSections (cb) { - var g = path.resolve(__dirname, '../man/man[0-9]/*.[0-9]') - glob(g, function (er, files) { - if (er) return cb(er) - - cb(null, Object.keys(files.reduce(function (acc, file) { - file = path.basename(file).replace(/\.[0-9]+$/, '') - file = file.replace(/^npm-/, '') - acc[file] = true - return acc - }, { help: true }))) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/init.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/init.js deleted file mode 100644 index e3eb3d40..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/init.js +++ /dev/null @@ -1,39 +0,0 @@ -// initialize a package.json file - -module.exports = init - -var log = require('npmlog') -var npm = require('./npm.js') -var initJson = require('init-package-json') - -init.usage = 'npm init [--force|-f|--yes|-y]' - -function init (args, cb) { - var dir = process.cwd() - log.pause() - var initFile = npm.config.get('init-module') - if (!initJson.yes(npm.config)) { - console.log([ - 'This utility will walk you through creating a package.json file.', - 'It only covers the most common items, and tries to guess sensible defaults.', - '', - 'See `npm help json` for definitive documentation on these fields', - 'and exactly what they do.', - '', - 'Use `npm install --save` afterwards to install a package and', - 'save it as a dependency in the package.json file.', - '', - 'Press ^C at any time to quit.' - ].join('\n')) - } - initJson(dir, initFile, npm.config, function (er, data) { - log.resume() - log.silly('package data', data) - if (er && er.message === 'canceled') { - log.warn('init', 'canceled') - return cb(null, data) - } - log.info('init', 'written successfully') - cb(er, data) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install-test.js deleted file mode 100644 index f66dfd40..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install-test.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict' - -// npm install-test -// Runs `npm install` and then runs `npm test` - -module.exports = installTest -var install = require('./install.js') -var test = require('./test.js') -var usage = require('./utils/usage') - -installTest.usage = usage( - 'install-test', - '\nnpm install-test [args]' + - '\nSame args as `npm install`' -) - -installTest.completion = install.completion - -function installTest (args, cb) { - install(args, function (er) { - if (er) { - return cb(er) - } - test([], cb) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install.js deleted file mode 100644 index 53153e14..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install.js +++ /dev/null @@ -1,735 +0,0 @@ -'use strict' -// npm install -// -// See doc/install.md for more description - -// Managing contexts... -// there's a lot of state associated with an "install" operation, including -// packages that are already installed, parent packages, current shrinkwrap, and -// so on. We maintain this state in a "context" object that gets passed around. -// every time we dive into a deeper node_modules folder, the "family" list that -// gets passed along uses the previous "family" list as its __proto__. Any -// "resolved precise dependency" things that aren't already on this object get -// added, and then that's passed to the next generation of installation. - -module.exports = install -module.exports.Installer = Installer - -var usage = require('./utils/usage') - -install.usage = usage( - 'install', - '\nnpm install (with no args, in package dir)' + - '\nnpm install [<@scope>/]' + - '\nnpm install [<@scope>/]@' + - '\nnpm install [<@scope>/]@' + - '\nnpm install [<@scope>/]@' + - '\nnpm install ' + - '\nnpm install ' + - '\nnpm install ' + - '\nnpm install ' + - '\nnpm install /', - '[--save|--save-dev|--save-optional] [--save-exact]' -) - -install.completion = function (opts, cb) { - validate('OF', arguments) - // install can complete to a folder with a package.json, or any package. - // if it has a slash, then it's gotta be a folder - // if it starts with https?://, then just give up, because it's a url - if (/^https?:\/\//.test(opts.partialWord)) { - // do not complete to URLs - return cb(null, []) - } - - if (/\//.test(opts.partialWord)) { - // Complete fully to folder if there is exactly one match and it - // is a folder containing a package.json file. If that is not the - // case we return 0 matches, which will trigger the default bash - // complete. - var lastSlashIdx = opts.partialWord.lastIndexOf('/') - var partialName = opts.partialWord.slice(lastSlashIdx + 1) - var partialPath = opts.partialWord.slice(0, lastSlashIdx) - if (partialPath === '') partialPath = '/' - - var annotatePackageDirMatch = function (sibling, cb) { - var fullPath = path.join(partialPath, sibling) - if (sibling.slice(0, partialName.length) !== partialName) { - return cb(null, null) // not name match - } - fs.readdir(fullPath, function (err, contents) { - if (err) return cb(null, { isPackage: false }) - - cb( - null, - { - fullPath: fullPath, - isPackage: contents.indexOf('package.json') !== -1 - } - ) - }) - } - - return fs.readdir(partialPath, function (err, siblings) { - if (err) return cb(null, []) // invalid dir: no matching - - asyncMap(siblings, annotatePackageDirMatch, function (err, matches) { - if (err) return cb(err) - - var cleaned = matches.filter(function (x) { return x !== null }) - if (cleaned.length !== 1) return cb(null, []) - if (!cleaned[0].isPackage) return cb(null, []) - - // Success - only one match and it is a package dir - return cb(null, [cleaned[0].fullPath]) - }) - }) - } - - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - cb() -} - -// system packages -var fs = require('fs') -var path = require('path') - -// dependencies -var log = require('npmlog') -var readPackageTree = require('read-package-tree') -var chain = require('slide').chain -var asyncMap = require('slide').asyncMap -var archy = require('archy') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var iferr = require('iferr') -var validate = require('aproba') - -// npm internal utils -var npm = require('./npm.js') -var locker = require('./utils/locker.js') -var lock = locker.lock -var unlock = locker.unlock -var ls = require('./ls.js') -var parseJSON = require('./utils/parse-json.js') - -// install specific libraries -var copyTree = require('./install/copy-tree.js') -var readShrinkwrap = require('./install/read-shrinkwrap.js') -var recalculateMetadata = require('./install/deps.js').recalculateMetadata -var loadDeps = require('./install/deps.js').loadDeps -var loadDevDeps = require('./install/deps.js').loadDevDeps -var getAllMetadata = require('./install/deps.js').getAllMetadata -var loadRequestedDeps = require('./install/deps.js').loadRequestedDeps -var loadExtraneous = require('./install/deps.js').loadExtraneous -var pruneTree = require('./install/prune-tree.js') -var diffTrees = require('./install/diff-trees.js') -var checkPermissions = require('./install/check-permissions.js') -var decomposeActions = require('./install/decompose-actions.js') -var filterInvalidActions = require('./install/filter-invalid-actions.js') -var validateTree = require('./install/validate-tree.js') -var validateArgs = require('./install/validate-args.js') -var saveRequested = require('./install/save.js').saveRequested -var getSaveType = require('./install/save.js').getSaveType -var doSerialActions = require('./install/actions.js').doSerial -var doReverseSerialActions = require('./install/actions.js').doReverseSerial -var doParallelActions = require('./install/actions.js').doParallel -var doOneAction = require('./install/actions.js').doOne -var packageId = require('./utils/package-id.js') -var moduleName = require('./utils/module-name.js') -var errorMessage = require('./utils/error-message.js') - -function unlockCB (lockPath, name, cb) { - validate('SSF', arguments) - return function (installEr) { - var args = arguments - try { - unlock(lockPath, name, reportErrorAndReturn) - } catch (unlockEx) { - process.nextTick(function () { - reportErrorAndReturn(unlockEx) - }) - } - function reportErrorAndReturn (unlockEr) { - if (installEr) { - if (unlockEr && unlockEr.code !== 'ENOTLOCKED') { - log.warn('unlock' + name, unlockEr) - } - return cb.apply(null, args) - } - if (unlockEr) return cb(unlockEr) - return cb.apply(null, args) - } - } -} - -function install (where, args, cb) { - if (!cb) { - cb = args - args = where - where = null - } - var globalTop = path.resolve(npm.globalDir, '..') - if (!where) { - where = npm.config.get('global') - ? globalTop - : npm.prefix - } - validate('SAF', [where, args, cb]) - // the /path/to/node_modules/.. - var dryrun = !!npm.config.get('dry-run') - - if (npm.config.get('dev')) { - log.warn('install', 'Usage of the `--dev` option is deprecated. Use `--only=dev` instead.') - } - - if (where === globalTop && !args.length) { - args = ['.'] - } - args = args.filter(function (a) { - return path.resolve(a) !== npm.prefix - }) - - new Installer(where, dryrun, args).run(cb) -} - -function Installer (where, dryrun, args) { - validate('SBA', arguments) - this.where = where - this.dryrun = dryrun - this.args = args - this.currentTree = null - this.idealTree = null - this.differences = [] - this.todo = [] - this.progress = {} - this.noPackageJsonOk = !!args.length - this.topLevelLifecycles = !args.length - this.npat = npm.config.get('npat') - this.dev = npm.config.get('dev') || (!/^prod(uction)?$/.test(npm.config.get('only')) && !npm.config.get('production')) || /^dev(elopment)?$/.test(npm.config.get('only')) - this.prod = !/^dev(elopment)?$/.test(npm.config.get('only')) - this.rollback = npm.config.get('rollback') - this.link = npm.config.get('link') - this.global = this.where === path.resolve(npm.globalDir, '..') -} -Installer.prototype = {} - -Installer.prototype.run = function (cb) { - validate('F', arguments) - - // FIXME: This is bad and I should feel bad. - // lib/install needs to have some way of sharing _limited_ - // state with the things it calls. Passing the object is too - // much. The global config is WAY too much. =( =( - // But not having this is gonna break linked modules in - // subtle stupid ways, and refactoring all this code isn't - // the right thing to do just yet. - if (this.global) { - var prevGlobal = npm.config.get('global') - npm.config.set('global', true) - var next = cb - cb = function () { - npm.config.set('global', prevGlobal) - next.apply(null, arguments) - } - } - - var installSteps = [] - var postInstallSteps = [] - installSteps.push( - [this.newTracker(log, 'loadCurrentTree', 4)], - [this, this.loadCurrentTree], - [this, this.finishTracker, 'loadCurrentTree'], - - [this.newTracker(log, 'loadIdealTree', 12)], - [this, this.loadIdealTree], - [this, this.finishTracker, 'loadIdealTree'], - - [this, this.debugTree, 'currentTree', 'currentTree'], - [this, this.debugTree, 'idealTree', 'idealTree'], - - [this.newTracker(log, 'generateActionsToTake')], - [this, this.generateActionsToTake], - [this, this.finishTracker, 'generateActionsToTake'], - - [this, this.debugActions, 'diffTrees', 'differences'], - [this, this.debugActions, 'decomposeActions', 'todo']) - if (!this.dryrun) { - installSteps.push( - [this.newTracker(log, 'executeActions', 8)], - [this, this.executeActions], - [this, this.finishTracker, 'executeActions']) - var node_modules = path.resolve(this.where, 'node_modules') - var staging = path.resolve(node_modules, '.staging') - postInstallSteps.push( - [this.newTracker(log, 'rollbackFailedOptional', 1)], - [this, this.rollbackFailedOptional, staging, this.todo], - [this, this.finishTracker, 'rollbackFailedOptional'], - [this, this.commit, staging, this.todo], - [this.newTracker(log, 'runTopLevelLifecycles', 2)], - [this, this.runTopLevelLifecycles], - [this, this.finishTracker, 'runTopLevelLifecycles']) - - if (getSaveType(this.args)) { - postInstallSteps.push( - [this, this.saveToDependencies]) - } - } - postInstallSteps.push( - [this, this.printInstalled]) - - var self = this - chain(installSteps, function (installEr) { - if (installEr) self.failing = true - chain(postInstallSteps, function (postInstallEr) { - if (self.idealTree) { - self.idealTree.warnings.forEach(function (warning) { - if (warning.code === 'EPACKAGEJSON' && self.global) return - if (warning.code === 'ENOTDIR') return - errorMessage(warning).summary.forEach(function (logline) { - log.warn.apply(log, logline) - }) - }) - } - if (installEr && postInstallEr) { - var msg = errorMessage(postInstallEr) - msg.summary.forEach(function (logline) { - log.warn.apply(log, logline) - }) - msg.detail.forEach(function (logline) { - log.verbose.apply(log, logline) - }) - } - cb(installEr || postInstallEr, self.getInstalledModules(), self.idealTree) - }) - }) -} - -Installer.prototype.loadArgMetadata = function (next) { - var self = this - getAllMetadata(this.args, this.currentTree, iferr(next, function (args) { - self.args = args - next() - })) -} - -Installer.prototype.newTracker = function (tracker, name, size) { - validate('OS', [tracker, name]) - if (size) validate('N', [size]) - this.progress[name] = tracker.newGroup(name, size) - var self = this - return function (next) { - self.progress[name].silly(name, 'Starting') - next() - } -} - -Installer.prototype.finishTracker = function (name, cb) { - validate('SF', arguments) - this.progress[name].silly(name, 'Finishing') - this.progress[name].finish() - cb() -} - -Installer.prototype.loadCurrentTree = function (cb) { - validate('F', arguments) - log.silly('install', 'loadCurrentTree') - var todo = [] - if (this.global) { - todo.push([this, this.readGlobalPackageData]) - } else { - todo.push([this, this.readLocalPackageData]) - } - todo.push( - [this, this.normalizeTree, log.newGroup('normalizeTree')]) - chain(todo, cb) -} - -Installer.prototype.loadIdealTree = function (cb) { - validate('F', arguments) - log.silly('install', 'loadIdealTree') - - chain([ - [this.newTracker(this.progress.loadIdealTree, 'cloneCurrentTree')], - [this, this.cloneCurrentTreeToIdealTree], - [this, this.finishTracker, 'cloneCurrentTree'], - - [this.newTracker(this.progress.loadIdealTree, 'loadShrinkwrap')], - [this, this.loadShrinkwrap], - [this, this.finishTracker, 'loadShrinkwrap'], - - [this.newTracker(this.progress.loadIdealTree, 'loadAllDepsIntoIdealTree', 10)], - [this, this.loadAllDepsIntoIdealTree], - [this, this.finishTracker, 'loadAllDepsIntoIdealTree'], - - [this, function (next) { recalculateMetadata(this.idealTree, log, next) }], - [this, this.debugTree, 'idealTree:prePrune', 'idealTree'], - [this, function (next) { next(pruneTree(this.idealTree)) }] - ], cb) -} - -Installer.prototype.loadAllDepsIntoIdealTree = function (cb) { - validate('F', arguments) - log.silly('install', 'loadAllDepsIntoIdealTree') - var saveDeps = getSaveType(this.args) - - var cg = this.progress.loadAllDepsIntoIdealTree - var installNewModules = !!this.args.length - var steps = [] - - if (installNewModules) { - steps.push([validateArgs, this.idealTree, this.args]) - steps.push([loadRequestedDeps, this.args, this.idealTree, saveDeps, cg.newGroup('loadRequestedDeps')]) - } else { - if (this.prod) { - steps.push( - [loadDeps, this.idealTree, cg.newGroup('loadDeps')]) - } - if (this.dev) { - steps.push( - [loadDevDeps, this.idealTree, cg.newGroup('loadDevDeps')]) - } - } - steps.push( - [loadExtraneous.andResolveDeps, this.idealTree, cg.newGroup('loadExtraneous')]) - chain(steps, cb) -} - -Installer.prototype.generateActionsToTake = function (cb) { - validate('F', arguments) - log.silly('install', 'generateActionsToTake') - var cg = this.progress.generateActionsToTake - chain([ - [validateTree, this.idealTree, cg.newGroup('validateTree')], - [diffTrees, this.currentTree, this.idealTree, this.differences, cg.newGroup('diffTrees')], - [this, this.computeLinked], - [filterInvalidActions, this.where, this.differences], - [checkPermissions, this.differences], - [decomposeActions, this.differences, this.todo] - ], cb) -} - -Installer.prototype.computeLinked = function (cb) { - validate('F', arguments) - if (!this.link || this.global) return cb() - var linkTodoList = [] - var self = this - asyncMap(this.differences, function (action, next) { - var cmd = action[0] - var pkg = action[1] - if (cmd !== 'add' && cmd !== 'update') return next() - var isReqByTop = pkg.package._requiredBy.filter(function (name) { return name === '/' }).length - var isReqByUser = pkg.package._requiredBy.filter(function (name) { return name === '#USER' }).length - var isExtraneous = pkg.package._requiredBy.length === 0 - if (!isReqByTop && !isReqByUser && !isExtraneous) return next() - isLinkable(pkg, function (install, link) { - if (install) linkTodoList.push(['global-install', pkg]) - if (link) linkTodoList.push(['global-link', pkg]) - if (install || link) { - pkg.parent.children = pkg.parent.children.filter(function (child) { return child !== pkg }) - } - next() - }) - }, function () { - if (linkTodoList.length === 0) return cb() - pruneTree(self.idealTree) - self.differences.length = 0 - Array.prototype.push.apply(self.differences, linkTodoList) - diffTrees(self.currentTree, self.idealTree, self.differences, log.newGroup('d2'), cb) - }) -} - -function isLinkable (pkg, cb) { - var globalPackage = path.resolve(npm.globalPrefix, 'lib', 'node_modules', moduleName(pkg)) - var globalPackageJson = path.resolve(globalPackage, 'package.json') - fs.stat(globalPackage, function (er) { - if (er) return cb(true, true) - fs.readFile(globalPackageJson, function (er, data) { - var json = parseJSON.noExceptions(data) - cb(false, json && json.version === pkg.package.version) - }) - }) -} - -Installer.prototype.executeActions = function (cb) { - validate('F', arguments) - log.silly('install', 'executeActions') - var todo = this.todo - var cg = this.progress.executeActions - - var node_modules = path.resolve(this.where, 'node_modules') - var staging = path.resolve(node_modules, '.staging') - var steps = [] - var trackLifecycle = cg.newGroup('lifecycle') - - cb = unlockCB(node_modules, '.staging', cb) - - steps.push( - [doSerialActions, 'global-install', staging, todo, trackLifecycle.newGroup('global-install')], - [doParallelActions, 'fetch', staging, todo, cg.newGroup('fetch', 10)], - [lock, node_modules, '.staging'], - [rimraf, staging], - [mkdirp, staging], - [doParallelActions, 'extract', staging, todo, cg.newGroup('extract', 10)], - [doParallelActions, 'preinstall', staging, todo, trackLifecycle.newGroup('preinstall')], - [doReverseSerialActions, 'remove', staging, todo, cg.newGroup('remove')], - [doSerialActions, 'move', staging, todo, cg.newGroup('move')], - [doSerialActions, 'finalize', staging, todo, cg.newGroup('finalize')], - [doSerialActions, 'build', staging, todo, trackLifecycle.newGroup('build')], - [doSerialActions, 'global-link', staging, todo, trackLifecycle.newGroup('global-link')], - [doParallelActions, 'update-linked', staging, todo, trackLifecycle.newGroup('update-linked')], - [doSerialActions, 'install', staging, todo, trackLifecycle.newGroup('install')], - [doSerialActions, 'postinstall', staging, todo, trackLifecycle.newGroup('postinstall')]) - if (this.npat) { - steps.push( - [doParallelActions, 'test', staging, todo, trackLifecycle.newGroup('npat')]) - } - - var self = this - chain(steps, function (er) { - if (!er || self.rollback) { - rimraf(staging, function () { cb(er) }) - } else { - cb(er) - } - }) -} - -Installer.prototype.rollbackFailedOptional = function (staging, actionsToRun, cb) { - if (!this.rollback) return cb() - var failed = actionsToRun.map(function (action) { - return action[1] - }).filter(function (pkg) { - return pkg.failed && pkg.rollback - }) - asyncMap(failed, function (pkg, next) { - asyncMap(pkg.rollback, function (rollback, done) { - rollback(staging, pkg, done) - }, next) - }, cb) -} - -Installer.prototype.commit = function (staging, actionsToRun, cb) { - var toCommit = actionsToRun.map(function (action) { return action[1] }).filter(function (pkg) { return !pkg.failed && pkg.commit }) - asyncMap(toCommit, function (pkg, next) { - asyncMap(pkg.commit, function (commit, done) { - commit(staging, pkg, done) - }, function () { - pkg.commit = [] - next.apply(null, arguments) - }) - }, cb) -} - -Installer.prototype.runTopLevelLifecycles = function (cb) { - validate('F', arguments) - if (this.failing) return cb() - log.silly('install', 'runTopLevelLifecycles') - var steps = [] - var trackLifecycle = this.progress.runTopLevelLifecycles - if (!this.topLevelLifecycles) { - trackLifecycle.finish() - return cb() - } - - steps.push( - [doOneAction, 'preinstall', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('preinstall:.')], - [doOneAction, 'build', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('build:.')], - [doOneAction, 'install', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('install:.')], - [doOneAction, 'postinstall', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('postinstall:.')]) - if (this.npat) { - steps.push( - [doOneAction, 'test', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('npat:.')]) - } - if (this.dev) { - steps.push( - [doOneAction, 'prepublish', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('prepublish')]) - } - chain(steps, cb) -} - -Installer.prototype.saveToDependencies = function (cb) { - validate('F', arguments) - if (this.failing) return cb() - log.silly('install', 'saveToDependencies') - saveRequested(this.args, this.idealTree, cb) -} - -Installer.prototype.readGlobalPackageData = function (cb) { - validate('F', arguments) - log.silly('install', 'readGlobalPackageData') - var self = this - this.loadArgMetadata(iferr(cb, function () { - mkdirp(self.where, iferr(cb, function () { - var pkgs = {} - self.args.forEach(function (pkg) { - pkgs[pkg.name] = true - }) - readPackageTree(self.where, function (ctx, kid) { return ctx.parent || pkgs[kid] }, iferr(cb, function (currentTree) { - self.currentTree = currentTree - return cb() - })) - })) - })) -} - -Installer.prototype.readLocalPackageData = function (cb) { - validate('F', arguments) - log.silly('install', 'readLocalPackageData') - var self = this - mkdirp(this.where, iferr(cb, function () { - readPackageTree(self.where, iferr(cb, function (currentTree) { - self.currentTree = currentTree - self.currentTree.warnings = [] - if (currentTree.error && currentTree.error.code === 'EJSONPARSE') { - return cb(currentTree.error) - } - if (!self.noPackageJsonOk && !currentTree.package) { - log.error('install', "Couldn't read dependencies") - var er = new Error("ENOENT, open '" + path.join(self.where, 'package.json') + "'") - er.code = 'ENOPACKAGEJSON' - er.errno = 34 - return cb(er) - } - if (!currentTree.package) currentTree.package = {} - self.loadArgMetadata(iferr(cb, function () { - if (currentTree.package._shrinkwrap) return cb() - fs.readFile(path.join(self.where, 'npm-shrinkwrap.json'), function (er, data) { - if (er) return cb() - try { - currentTree.package._shrinkwrap = parseJSON(data) - } catch (ex) { - return cb(ex) - } - return cb() - }) - })) - })) - })) -} - -Installer.prototype.cloneCurrentTreeToIdealTree = function (cb) { - validate('F', arguments) - log.silly('install', 'cloneCurrentTreeToIdealTree') - this.idealTree = copyTree(this.currentTree) - this.idealTree.warnings = [] - cb() -} - -Installer.prototype.loadShrinkwrap = function (cb) { - validate('F', arguments) - log.silly('install', 'loadShrinkwrap') - var installNewModules = !!this.args.length - if (installNewModules) { - readShrinkwrap(this.idealTree, cb) - } else { - readShrinkwrap.andInflate(this.idealTree, cb) - } -} - -Installer.prototype.normalizeTree = function (log, cb) { - validate('OF', arguments) - log.silly('install', 'normalizeTree') - recalculateMetadata(this.currentTree, log, iferr(cb, function (tree) { - tree.children.forEach(function (child) { - if (child.package._requiredBy.length === 0) { - child.package._requiredBy.push('#EXISTING') - } - }) - cb(null, tree) - })) -} - -Installer.prototype.getInstalledModules = function () { - return this.differences.filter(function (action) { - var mutation = action[0] - return (mutation === 'add' || mutation === 'update') - }).map(function (action) { - var child = action[1] - return [child.package._id, child.path] - }) -} - -Installer.prototype.printInstalled = function (cb) { - validate('F', arguments) - log.silly('install', 'printInstalled') - var self = this - log.clearProgress() - this.differences.forEach(function (action) { - var mutation = action[0] - var child = action[1] - var name = packageId(child) - var where = path.relative(self.where, child.path) - if (mutation === 'remove') { - console.log('- ' + name + ' ' + where) - } else if (mutation === 'move') { - var oldWhere = path.relative(self.where, child.fromPath) - console.log(name + ' ' + oldWhere + ' -> ' + where) - } - }) - var addedOrMoved = this.differences.filter(function (action) { - var mutation = action[0] - var child = action[1] - return !child.failed && (mutation === 'add' || mutation === 'update') - }).map(function (action) { - var child = action[1] - return child.path - }) - log.showProgress() - if (!addedOrMoved.length) return cb() - recalculateMetadata(this.idealTree, log, iferr(cb, function (tree) { - log.clearProgress() - // These options control both how installs happen AND how `ls` shows output. - // Something like `npm install --production` only installs production deps. - // By contrast `npm install --production foo` installs `foo` and the - // `production` option is ignored. But when it comes time for `ls` to show - // its output, it excludes the thing we just installed because that flag. - // The summary output we get should be unfiltered, showing everything - // installed, so we clear these options before calling `ls`. - npm.config.set('production', false) - npm.config.set('dev', false) - npm.config.set('only', '') - npm.config.set('also', '') - ls.fromTree(self.where, tree, addedOrMoved, false, function () { - log.showProgress() - cb() - }) - })) -} - -Installer.prototype.debugActions = function (name, actionListName, cb) { - validate('SSF', arguments) - var actionsToLog = this[actionListName] - log.silly(name, 'action count', actionsToLog.length) - actionsToLog.forEach(function (action) { - log.silly(name, action.map(function (value) { - return (value && value.package) ? packageId(value) : value - }).join(' ')) - }) - cb() -} - -// This takes an object and a property name instead of a value to allow us -// to define the arguments for use by chain before the property exists yet. -Installer.prototype.debugTree = function (name, treeName, cb) { - validate('SSF', arguments) - log.silly(name, this.prettify(this[treeName]).trim()) - cb() -} - -Installer.prototype.prettify = function (tree) { - validate('O', arguments) - var seen = {} - function byName (aa, bb) { - return packageId(aa).localeCompare(packageId(bb)) - } - function expandTree (tree) { - seen[tree.path] = true - return { - label: packageId(tree), - nodes: tree.children.filter(function (tree) { return !seen[tree.path] }).sort(byName).map(expandTree) - } - } - return archy(expandTree(tree), '', { unicode: npm.config.get('unicode') }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/access-error.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/access-error.js deleted file mode 100644 index ff94be98..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/access-error.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -module.exports = function (dir, er) { - if (!er) return - var accessEr = new Error("EACCES, access '" + dir + "'", -13) - accessEr.code = 'EACCES' - accessEr.path = dir - return accessEr -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/build.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/build.js deleted file mode 100644 index ffb870d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/build.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict' -var chain = require('slide').chain -var build = require('../../build.js') -var npm = require('../../npm.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('build', packageId(pkg)) - chain([ - [build.linkStuff, pkg.package, pkg.path, npm.config.get('global'), true], - [build.writeBuiltinConf, pkg.package, pkg.path] - ], next) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/extract.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/extract.js deleted file mode 100644 index 60aae036..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/extract.js +++ /dev/null @@ -1,89 +0,0 @@ -'use strict' -var path = require('path') -var iferr = require('iferr') -var asyncMap = require('slide').asyncMap -var fs = require('graceful-fs') -var rename = require('../../utils/rename.js') -var gentlyRm = require('../../utils/gently-rm.js') -var updatePackageJson = require('../update-package-json') -var npm = require('../../npm.js') -var moduleName = require('../../utils/module-name.js') -var packageId = require('../../utils/package-id.js') -var cache = require('../../cache.js') -var buildPath = require('../build-path.js') - -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('extract', packageId(pkg)) - var up = npm.config.get('unsafe-perm') - var user = up ? null : npm.config.get('user') - var group = up ? null : npm.config.get('group') - cache.unpack(pkg.package.name, pkg.package.version, buildpath, null, null, user, group, - andUpdatePackageJson(pkg, buildpath, andStageBundledChildren(pkg, buildpath, log, next))) -} - -function andUpdatePackageJson (pkg, buildpath, next) { - return iferr(next, function () { - updatePackageJson(pkg, buildpath, next) - }) -} - -function andStageBundledChildren (pkg, buildpath, log, next) { - var staging = path.resolve(buildpath, '..') - return iferr(next, function () { - for (var i = 0; i < pkg.children.length; ++i) { - var c = pkg.children[i] - if (!c.package.name) return next(c.error) - } - - asyncMap(pkg.children, andStageBundledModule(pkg, staging, buildpath), cleanupBundled) - }) - function cleanupBundled () { - gentlyRm(path.join(buildpath, 'node_modules'), next) - } -} - -function andStageBundledModule (bundler, staging, parentPath) { - return function (child, next) { - stageBundledModule(bundler, child, staging, parentPath, next) - } -} - -function getTree (pkg) { - while (pkg.parent) pkg = pkg.parent - return pkg -} - -function warn (pkg, code, msg) { - var tree = getTree(pkg) - var err = new Error(msg) - err.code = code - tree.warnings.push(err) -} - -function stageBundledModule (bundler, child, staging, parentPath, next) { - var stageFrom = path.join(parentPath, 'node_modules', child.package.name) - var stageTo = buildPath(staging, child) - - asyncMap(child.children, andStageBundledModule(bundler, staging, stageFrom), iferr(next, moveModule)) - - function moveModule () { - if (child.fromBundle) { - return rename(stageFrom, stageTo, iferr(next, updateMovedPackageJson)) - } else { - return fs.stat(stageFrom, function (notExists, exists) { - if (exists) { - warn(bundler, 'EBUNDLEOVERRIDE', 'In ' + packageId(bundler) + - ' replacing bundled version of ' + moduleName(child) + - ' with ' + packageId(child)) - return gentlyRm(stageFrom, next) - } else { - return next() - } - }) - } - } - - function updateMovedPackageJson () { - updatePackageJson(child, stageTo, next) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/fetch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/fetch.js deleted file mode 100644 index a706b196..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/fetch.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict' -// var cache = require('../../cache.js') -// var packageId = require('../../utils/package-id.js') -// var moduleName = require('../../utils/module-name.js') - -module.exports = function (top, buildpath, pkg, log, next) { - next() -/* -// FIXME: Unnecessary as long as we have to have the tarball to resolve all deps, which -// is progressively seeming to be likely for the indefinite future. -// ALSO fails for local deps specified with relative URLs outside of the top level. - - var name = moduleName(pkg) - var version - switch (pkg.package._requested.type) { - case 'version': - case 'range': - version = pkg.package.version - break - case 'hosted': - name = name + '@' + pkg.package._requested.spec - break - default: - name = pkg.package._requested.raw - } - log.silly('fetch', packageId(pkg)) - cache.add(name, version, top, false, next) -*/ -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/finalize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/finalize.js deleted file mode 100644 index ad278df2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/finalize.js +++ /dev/null @@ -1,92 +0,0 @@ -'use strict' -var path = require('path') -var rimraf = require('rimraf') -var fs = require('graceful-fs') -var mkdirp = require('mkdirp') -var asyncMap = require('slide').asyncMap -var rename = require('../../utils/rename.js') - -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('finalize', pkg.path) - - var delpath = path.join(path.dirname(pkg.path), '.' + path.basename(pkg.path) + '.DELETE') - - mkdirp(path.resolve(pkg.path, '..'), whenParentExists) - - function whenParentExists (mkdirEr) { - if (mkdirEr) return next(mkdirEr) - // We stat first, because we can't rely on ENOTEMPTY from Windows. - // Windows, by contrast, gives the generic EPERM of a folder already exists. - fs.lstat(pkg.path, destStatted) - } - - function destStatted (doesNotExist) { - if (doesNotExist) { - rename(buildpath, pkg.path, whenMoved) - } else { - moveAway() - } - } - - function whenMoved (renameEr) { - if (!renameEr) return next() - if (renameEr.code !== 'ENOTEMPTY') return next(renameEr) - moveAway() - } - - function moveAway () { - rename(pkg.path, delpath, whenOldMovedAway) - } - - function whenOldMovedAway (renameEr) { - if (renameEr) return next(renameEr) - rename(buildpath, pkg.path, whenConflictMoved) - } - - function whenConflictMoved (renameEr) { - // if we got an error we'll try to put back the original module back, - // succeed or fail though we want the original error that caused this - if (renameEr) return rename(delpath, pkg.path, function () { next(renameEr) }) - fs.readdir(path.join(delpath, 'node_modules'), makeTarget) - } - - function makeTarget (readdirEr, files) { - if (readdirEr) return cleanup() - if (!files.length) return cleanup() - mkdirp(path.join(pkg.path, 'node_modules'), function (mkdirEr) { moveModules(mkdirEr, files) }) - } - - function moveModules (mkdirEr, files) { - if (mkdirEr) return next(mkdirEr) - asyncMap(files, function (file, done) { - var from = path.join(delpath, 'node_modules', file) - var to = path.join(pkg.path, 'node_modules', file) - rename(from, to, done) - }, cleanup) - } - - function cleanup (moveEr) { - if (moveEr) return next(moveEr) - rimraf(delpath, afterCleanup) - } - - function afterCleanup (rimrafEr) { - if (rimrafEr) log.warn('finalize', rimrafEr) - next() - } -} - -module.exports.rollback = function (buildpath, pkg, next) { - var top = path.resolve(buildpath, '..') - rimraf(pkg.path, function () { - removeEmptyParents(pkg.path) - }) - function removeEmptyParents (pkgdir) { - if (path.relative(top, pkgdir)[0] === '.') return next() - fs.rmdir(pkgdir, function (er) { - // FIXME: Make sure windows does what we want here - if (er && er.code !== 'ENOENT') return next() - removeEmptyParents(path.resolve(pkgdir, '..')) - }) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/global-install.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/global-install.js deleted file mode 100644 index a2aa5940..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/global-install.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict' -var path = require('path') -var npm = require('../../npm.js') -var Installer = require('../../install.js').Installer -var packageId = require('../../utils/package-id.js') - -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('global-install', packageId(pkg)) - var globalRoot = path.resolve(npm.globalDir, '..') - npm.config.set('global', true) - var install = new Installer(globalRoot, false, [pkg.package.name + '@' + pkg.package._requested.spec]) - install.link = false - install.run(function () { - npm.config.set('global', false) - next.apply(null, arguments) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/global-link.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/global-link.js deleted file mode 100644 index daad48e9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/global-link.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var npm = require('../../npm.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('global-link', packageId(pkg)) - npm.link(pkg.package.name, next) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/install.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/install.js deleted file mode 100644 index f7b32955..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/install.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var lifecycle = require('../../utils/lifecycle.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('install', packageId(pkg), buildpath) - lifecycle(pkg.package, 'install', pkg.path, false, false, next) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/move.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/move.js deleted file mode 100644 index ee6bdb95..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/move.js +++ /dev/null @@ -1,98 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var chain = require('slide').chain -var iferr = require('iferr') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var rmStuff = require('../../unbuild.js').rmStuff -var lifecycle = require('../../utils/lifecycle.js') -var updatePackageJson = require('../update-package-json.js') -var rename = require('../../utils/rename.js') - -/* - Move a module from one point in the node_modules tree to another. - Do not disturb either the source or target location's node_modules - folders. -*/ - -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('move', pkg.fromPath, pkg.path) - chain([ - [lifecycle, pkg.package, 'preuninstall', pkg.fromPath, false, true], - [lifecycle, pkg.package, 'uninstall', pkg.fromPath, false, true], - [rmStuff, pkg.package, pkg.fromPath], - [lifecycle, pkg.package, 'postuninstall', pkg.fromPath, false, true], - [moveModuleOnly, pkg.fromPath, pkg.path, log], - [lifecycle, pkg.package, 'preinstall', pkg.path, false, true], - [removeEmptyParents, path.resolve(pkg.fromPath, '..')], - [updatePackageJson, pkg, pkg.path] - ], next) -} - -function removeEmptyParents (pkgdir, next) { - fs.rmdir(pkgdir, function (er) { - // FIXME: Make sure windows does what we want here - if (er && er.code !== 'ENOENT') return next() - removeEmptyParents(path.resolve(pkgdir, '..'), next) - }) -} - -function moveModuleOnly (from, to, log, done) { - var fromModules = path.join(from, 'node_modules') - var tempFromModules = from + '.node_modules' - var toModules = path.join(to, 'node_modules') - var tempToModules = to + '.node_modules' - - log.silly('move', 'move existing destination node_modules away', toModules) - - rename(toModules, tempToModules, removeDestination(done)) - - function removeDestination (next) { - return function (er) { - log.silly('move', 'remove existing destination', to) - if (er) { - rimraf(to, iferr(next, makeDestination(next))) - } else { - rimraf(to, iferr(next, makeDestination(iferr(next, moveToModulesBack(next))))) - } - } - } - - function moveToModulesBack (next) { - return function () { - log.silly('move', 'move existing destination node_modules back', toModules) - rename(tempToModules, toModules, iferr(done, next)) - } - } - - function makeDestination (next) { - return function () { - log.silly('move', 'make sure destination parent exists', path.resolve(to, '..')) - mkdirp(path.resolve(to, '..'), iferr(done, moveNodeModules(next))) - } - } - - function moveNodeModules (next) { - return function () { - log.silly('move', 'move source node_modules away', fromModules) - rename(fromModules, tempFromModules, iferr(doMove(next), doMove(moveNodeModulesBack(next)))) - } - } - - function doMove (next) { - return function () { - log.silly('move', 'move module dir to final dest', from, to) - rename(from, to, iferr(done, next)) - } - } - - function moveNodeModulesBack (next) { - return function () { - mkdirp(from, iferr(done, function () { - log.silly('move', 'put source node_modules back', fromModules) - rename(tempFromModules, fromModules, iferr(done, next)) - })) - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/postinstall.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/postinstall.js deleted file mode 100644 index 4ca4c8ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/postinstall.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var lifecycle = require('../../utils/lifecycle.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('postinstall', packageId(pkg), buildpath) - lifecycle(pkg.package, 'postinstall', pkg.path, false, false, next) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/preinstall.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/preinstall.js deleted file mode 100644 index abd76701..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/preinstall.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var lifecycle = require('../../utils/lifecycle.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('preinstall', packageId(pkg), buildpath) - lifecycle(pkg.package, 'preinstall', buildpath, false, false, next) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/prepublish.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/prepublish.js deleted file mode 100644 index b9a5a5d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/prepublish.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var lifecycle = require('../../utils/lifecycle.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('prepublish', packageId(pkg), buildpath) - lifecycle(pkg.package, 'prepublish', buildpath, false, false, next) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/remove.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/remove.js deleted file mode 100644 index 7b05a81b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/remove.js +++ /dev/null @@ -1,81 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('graceful-fs') -var rimraf = require('rimraf') -var asyncMap = require('slide').asyncMap -var mkdirp = require('mkdirp') -var npm = require('../../npm.js') -var andIgnoreErrors = require('../and-ignore-errors.js') -var rename = require('../../utils/rename.js') - -// This is weird because we want to remove the module but not it's node_modules folder -// allowing for this allows us to not worry about the order of operations -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('remove', pkg.path) - if (pkg.target) { - removeLink(pkg, next) - } else { - removeDir(pkg, log, next) - } -} - -function removeLink (pkg, next) { - npm.commands.unbuild(pkg.path, true, next) -} - -function removeDir (pkg, log, next) { - var modpath = path.join(path.dirname(pkg.path), '.' + path.basename(pkg.path) + '.MODULES') - - rename(path.join(pkg.path, 'node_modules'), modpath, unbuildPackage) - - function unbuildPackage (renameEr) { - npm.commands.unbuild(pkg.path, true, function () { - rimraf(pkg.path, renameEr ? andRemoveEmptyParents(pkg.path) : moveModulesBack) - }) - } - - function andRemoveEmptyParents (path) { - return function (er) { - if (er) return next(er) - removeEmptyParents(pkg.path) - } - } - - function moveModulesBack () { - fs.readdir(modpath, makeTarget) - } - - function makeTarget (readdirEr, files) { - if (readdirEr) return cleanup() - if (!files.length) return cleanup() - mkdirp(path.join(pkg.path, 'node_modules'), function (mkdirEr) { moveModules(mkdirEr, files) }) - } - - function moveModules (mkdirEr, files) { - if (mkdirEr) return next(mkdirEr) - asyncMap(files, function (file, done) { - var from = path.join(modpath, file) - var to = path.join(pkg.path, 'node_modules', file) - // we ignore errors here, because they can legitimately happen, for instance, - // bundled modules will be in both node_modules folders - rename(from, to, andIgnoreErrors(done)) - }, cleanup) - } - - function cleanup () { - rimraf(modpath, afterCleanup) - } - - function afterCleanup (rimrafEr) { - if (rimrafEr) log.warn('remove', rimrafEr) - removeEmptyParents(path.resolve(pkg.path, '..')) - } - - function removeEmptyParents (pkgdir) { - fs.rmdir(pkgdir, function (er) { - // FIXME: Make sure windows does what we want here - if (er && er.code !== 'ENOENT') return next() - removeEmptyParents(path.resolve(pkgdir, '..')) - }) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/test.js deleted file mode 100644 index ee315290..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/test.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var lifecycle = require('../../utils/lifecycle.js') -var packageId = require('../../utils/package-id.js') - -module.exports = function (top, buildpath, pkg, log, next) { - log.silly('test', packageId(pkg), buildpath) - lifecycle(pkg.package, 'test', buildpath, false, false, next) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/update-linked.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/update-linked.js deleted file mode 100644 index 46c4cdfa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/action/update-linked.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var path = require('path') - -module.exports = function (top, buildpath, pkg, log, next) { - log.warn('update-linked', path.relative(top, pkg.path), 'needs updating to', pkg.package.version, - 'from', pkg.oldPkg.package.version, "but we can't, as it's a symlink") - next() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/actions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/actions.js deleted file mode 100644 index 5d162f86..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/actions.js +++ /dev/null @@ -1,129 +0,0 @@ -'use strict' -var path = require('path') -var validate = require('aproba') -var chain = require('slide').chain -var asyncMap = require('slide').asyncMap -var log = require('npmlog') -var andFinishTracker = require('./and-finish-tracker.js') -var andAddParentToErrors = require('./and-add-parent-to-errors.js') -var failedDependency = require('./deps.js').failedDependency -var packageId = require('../utils/package-id.js') -var moduleName = require('../utils/module-name.js') -var buildPath = require('./build-path.js') - -var actions = {} - -actions.fetch = require('./action/fetch.js') -actions.extract = require('./action/extract.js') -actions.build = require('./action/build.js') -actions.test = require('./action/test.js') -actions.preinstall = require('./action/preinstall.js') -actions.install = require('./action/install.js') -actions.postinstall = require('./action/postinstall.js') -actions.prepublish = require('./action/prepublish.js') -actions.finalize = require('./action/finalize.js') -actions.remove = require('./action/remove.js') -actions.move = require('./action/move.js') -actions['update-linked'] = require('./action/update-linked.js') -actions['global-install'] = require('./action/global-install.js') -actions['global-link'] = require('./action/global-link.js') - -// FIXME: We wrap actions like three ways to sunday here. -// Rewrite this to only work one way. - -Object.keys(actions).forEach(function (actionName) { - var action = actions[actionName] - actions[actionName] = function (top, buildpath, pkg, log, next) { - validate('SSOOF', arguments) - // refuse to run actions for failed packages - if (pkg.failed) return next() - if (action.rollback) { - if (!pkg.rollback) pkg.rollback = [] - pkg.rollback.unshift(action.rollback) - } - if (action.commit) { - if (!pkg.commit) pkg.commit = [] - pkg.commit.push(action.commit) - } - return action(top, buildpath, pkg, log, andFinishTracker(log, andAddParentToErrors(pkg.parent, andHandleOptionalDepErrors(pkg, next)))) - } -}) - -function markAsFailed (pkg) { - pkg.failed = true - pkg.requires.forEach(function (req) { - req.requiredBy = req.requiredBy.filter(function (reqReqBy) { return reqReqBy !== pkg }) - if (req.requiredBy.length === 0 && !req.userRequired && !req.existing) { - markAsFailed(req) - } - }) -} - -function andHandleOptionalDepErrors (pkg, next) { - return function (er) { - if (!er) return next.apply(null, arguments) - markAsFailed(pkg) - var anyFatal = pkg.userRequired || !pkg.parent - for (var ii = 0; ii < pkg.requiredBy.length; ++ii) { - var parent = pkg.requiredBy[ii] - var isFatal = failedDependency(parent, pkg) - if (isFatal) anyFatal = true - } - if (anyFatal) return next.apply(null, arguments) - log.warn('install:' + packageId(pkg), er.message) - log.verbose('install:' + packageId(pkg), er.stack) - next() - } -} - -function prepareAction (staging, log) { - validate('SO', arguments) - return function (action) { - validate('SO', action) - var cmd = action[0] - var pkg = action[1] - if (!actions[cmd]) throw new Error('Unknown decomposed command "' + cmd + '" (is it new?)') - var top = path.resolve(staging, '../..') - var buildpath = buildPath(staging, pkg) - return [actions[cmd], top, buildpath, pkg, log.newGroup(cmd + ':' + moduleName(pkg))] - } -} - -exports.actions = actions - -function execAction (todo, done) { - validate('AF', arguments) - var cmd = todo.shift() - todo.push(done) - cmd.apply(null, todo) -} - -exports.doOne = function (cmd, staging, pkg, log, next) { - validate('SSOOF', arguments) - execAction(prepareAction(staging, log)([cmd, pkg]), next) -} - -exports.doSerial = function (type, staging, actionsToRun, log, next) { - validate('SSAOF', arguments) - actionsToRun = actionsToRun - .filter(function (value) { return value[0] === type }) - log.silly('doSerial', '%s %d', type, actionsToRun.length) - chain(actionsToRun.map(prepareAction(staging, log)), andFinishTracker(log, next)) -} - -exports.doReverseSerial = function (type, staging, actionsToRun, log, next) { - validate('SSAOF', arguments) - actionsToRun = actionsToRun - .filter(function (value) { return value[0] === type }) - .reverse() - log.silly('doReverseSerial', '%s %d', type, actionsToRun.length) - chain(actionsToRun.map(prepareAction(staging, log)), andFinishTracker(log, next)) -} - -exports.doParallel = function (type, staging, actionsToRun, log, next) { - validate('SSAOF', arguments) - actionsToRun = actionsToRun.filter(function (value) { return value[0] === type }) - log.silly('doParallel', type + ' ' + actionsToRun.length) - - asyncMap(actionsToRun.map(prepareAction(staging, log)), execAction, andFinishTracker(log, next)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/and-add-parent-to-errors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/and-add-parent-to-errors.js deleted file mode 100644 index 62a86bd4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/and-add-parent-to-errors.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict' -var validate = require('aproba') - -module.exports = function (parent, cb) { - validate('F', [cb]) - return function (er) { - if (!er) return cb.apply(null, arguments) - if (er instanceof Error && parent && parent.package && parent.package.name) { - er.parent = parent.package.name - } - cb(er) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/and-finish-tracker.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/and-finish-tracker.js deleted file mode 100644 index 2bab60dd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/and-finish-tracker.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict' -var validate = require('aproba') - -module.exports = function (tracker, cb) { - validate('OF', [tracker, cb]) - return function () { - tracker.finish() - cb.apply(null, arguments) - } -} - -module.exports.now = function (tracker, cb) { - validate('OF', [tracker, cb]) - tracker.finish() - cb.apply(null, Array.prototype.slice.call(arguments, 2)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/and-ignore-errors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/and-ignore-errors.js deleted file mode 100644 index cf46ad82..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/and-ignore-errors.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict' - -module.exports = function (cb) { - return function () { - var args = Array.prototype.slice.call(arguments, 1) - if (args.length) args.unshift(null) - return cb.apply(null, args) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/build-path.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/build-path.js deleted file mode 100644 index ebef544f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/build-path.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var uniqueFilename = require('unique-filename') -var moduleName = require('../utils/module-name.js') - -module.exports = buildPath -function buildPath (staging, pkg) { - return uniqueFilename(staging, moduleName(pkg), pkg.realpath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/check-permissions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/check-permissions.js deleted file mode 100644 index 7806fcff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/check-permissions.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict' -var path = require('path') -var log = require('npmlog') -var validate = require('aproba') -var uniq = require('lodash.uniq') -var asyncMap = require('slide').asyncMap -var npm = require('../npm.js') -var exists = require('./exists.js') -var writable = require('./writable.js') - -module.exports = function (actions, next) { - validate('AF', arguments) - var errors = [] - asyncMap(actions, function (action, done) { - var cmd = action[0] - var pkg = action[1] - switch (cmd) { - case 'add': - hasAnyWriteAccess(path.resolve(pkg.path, '..'), errors, done) - break - case 'update': - case 'remove': - hasWriteAccess(pkg.path, errors, andHasWriteAccess(path.resolve(pkg.path, '..'), errors, done)) - break - case 'move': - hasAnyWriteAccess(pkg.path, errors, andHasWriteAccess(path.resolve(pkg.fromPath, '..'), errors, done)) - break - default: - done() - } - }, function () { - if (!errors.length) return next() - uniq(errors.map(function (er) { return 'Missing write access to ' + er.path })).forEach(function (er) { - log.warn('checkPermissions', er) - }) - npm.config.get('force') ? next() : next(errors[0]) - }) -} - -function andHasWriteAccess (dir, errors, done) { - validate('SAF', arguments) - return function () { - hasWriteAccess(dir, errors, done) - } -} - -function hasAnyWriteAccess (dir, errors, done) { - validate('SAF', arguments) - findNearestDir() - function findNearestDir () { - var nextDir = path.resolve(dir, '..') - exists(dir, function (dirDoesntExist) { - if (!dirDoesntExist || nextDir === dir) { - return hasWriteAccess(dir, errors, done) - } else { - dir = nextDir - findNearestDir() - } - }) - } -} - -function hasWriteAccess (dir, errors, done) { - validate('SAF', arguments) - writable(dir, function (er) { - if (er) errors.push(er) - done() - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/copy-tree.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/copy-tree.js deleted file mode 100644 index 67a9c687..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/copy-tree.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict' - -module.exports = function (tree) { - return copyTree(tree, {}) -} - -function copyTree (tree, cache) { - if (cache[tree.path]) return cache[tree.path] - var newTree = cache[tree.path] = Object.create(tree) - copyModuleList(newTree, 'children', cache) - newTree.children.forEach(function (child) { - child.parent = newTree - }) - copyModuleList(newTree, 'requires', cache) - copyModuleList(newTree, 'requiredBy', cache) - return newTree -} - -function copyModuleList (tree, key, cache) { - var newList = [] - tree[key].forEach(function (child) { - newList.push(copyTree(child, cache)) - }) - tree[key] = newList -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/decompose-actions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/decompose-actions.js deleted file mode 100644 index d91c952f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/decompose-actions.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict' -var validate = require('aproba') -var asyncMap = require('slide').asyncMap -var npm = require('../npm.js') - -module.exports = function (differences, decomposed, next) { - validate('AAF', arguments) - asyncMap(differences, function (action, done) { - var cmd = action[0] - var pkg = action[1] - switch (cmd) { - case 'add': - case 'update': - addSteps(decomposed, pkg, done) - break - case 'move': - moveSteps(decomposed, pkg, done) - break - case 'remove': - case 'update-linked': - default: - defaultSteps(decomposed, cmd, pkg, done) - } - }, next) -} - -function addSteps (decomposed, pkg, done) { - if (!pkg.fromBundle) { - decomposed.push(['fetch', pkg]) - decomposed.push(['extract', pkg]) - decomposed.push(['test', pkg]) - } - if (!pkg.fromBundle || npm.config.get('rebuild-bundle')) { - decomposed.push(['preinstall', pkg]) - decomposed.push(['build', pkg]) - decomposed.push(['install', pkg]) - decomposed.push(['postinstall', pkg]) - } - decomposed.push(['finalize', pkg]) - done() -} - -function moveSteps (decomposed, pkg, done) { - decomposed.push(['move', pkg]) - decomposed.push(['build', pkg]) - decomposed.push(['install', pkg]) - decomposed.push(['postinstall', pkg]) - decomposed.push(['test', pkg]) - done() -} - -function defaultSteps (decomposed, cmd, pkg, done) { - decomposed.push([cmd, pkg]) - done() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/deps.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/deps.js deleted file mode 100644 index edc317f8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/deps.js +++ /dev/null @@ -1,631 +0,0 @@ -'use strict' -var assert = require('assert') -var path = require('path') -var url = require('url') -var semver = require('semver') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var union = require('lodash.union') -var iferr = require('iferr') -var npa = require('npm-package-arg') -var validate = require('aproba') -var realizePackageSpecifier = require('realize-package-specifier') -var dezalgo = require('dezalgo') -var fetchPackageMetadata = require('../fetch-package-metadata.js') -var andAddParentToErrors = require('./and-add-parent-to-errors.js') -var addShrinkwrap = require('../fetch-package-metadata.js').addShrinkwrap -var addBundled = require('../fetch-package-metadata.js').addBundled -var readShrinkwrap = require('./read-shrinkwrap.js') -var inflateShrinkwrap = require('./inflate-shrinkwrap.js') -var inflateBundled = require('./inflate-bundled.js') -var andFinishTracker = require('./and-finish-tracker.js') -var npm = require('../npm.js') -var flatName = require('./flatten-tree.js').flatName -var createChild = require('./node.js').create -var resetMetadata = require('./node.js').reset -var andIgnoreErrors = require('./and-ignore-errors.js') -var isInstallable = require('./validate-args.js').isInstallable -var packageId = require('../utils/package-id.js') -var moduleName = require('../utils/module-name.js') - -// The export functions in this module mutate a dependency tree, adding -// items to them. - -function isDep (tree, child, cb) { - var name = moduleName(child) - var prodVer = isProdDep(tree, name) - var devVer = isDevDep(tree, name) - - childDependencySpecifier(tree, name, prodVer, function (er, prodSpec) { - if (er) return cb(child.fromShrinkwrap) - var matches - if (prodSpec) matches = doesChildVersionMatch(child, prodSpec, tree) - if (matches) return cb(true, prodSpec) - if (devVer === prodVer) return cb(child.fromShrinkwrap) - childDependencySpecifier(tree, name, devVer, function (er, devSpec) { - if (er) return cb(child.fromShrinkwrap) - cb(doesChildVersionMatch(child, devSpec, tree) || child.fromShrinkwrap, null, devSpec) - }) - }) -} - -function isDevDep (tree, name, cb) { - var devDeps = tree.package.devDependencies || {} - return devDeps[name] -} - -function isProdDep (tree, name, cb) { - var deps = tree.package.dependencies || {} - return deps[name] -} - -var registryTypes = { range: true, version: true } - -function doesChildVersionMatch (child, requested, requestor) { - // we always consider deps provided by a shrinkwrap as "correct" or else - // we'll subvert them if they're intentionally "invalid" - if (child.parent === requestor && child.fromShrinkwrap) return true - // ranges of * ALWAYS count as a match, because when downloading we allow - // prereleases to match * if there are ONLY prereleases - if (requested.spec === '*') return true - - var childReq = child.package._requested - if (childReq) { - if (childReq.rawSpec === requested.rawSpec) return true - if (childReq.type === requested.type && childReq.spec === requested.spec) return true - } - if (!registryTypes[requested.type]) return requested.rawSpec === child.package._from - return semver.satisfies(child.package.version, requested.spec) -} - -exports.recalculateMetadata = function (tree, log, next) { - recalculateMetadata(tree, log, {}, next) -} - -function childDependencySpecifier (tree, name, spec, cb) { - if (!tree.resolved) tree.resolved = {} - if (!tree.resolved[name]) tree.resolved[name] = {} - if (tree.resolved[name][spec]) { - return process.nextTick(function () { - cb(null, tree.resolved[name][spec]) - }) - } - realizePackageSpecifier(name + '@' + spec, packageRelativePath(tree), function (er, req) { - if (er) return cb(er) - tree.resolved[name][spec] = req - cb(null, req) - }) -} - -function recalculateMetadata (tree, log, seen, next) { - validate('OOOF', arguments) - if (seen[tree.path]) return next() - seen[tree.path] = true - if (tree.parent == null) resetMetadata(tree) - function markDeps (spec, done) { - validate('SF', arguments) - var matched = spec.match(/^(@?[^@]+)@(.*)$/) - childDependencySpecifier(tree, matched[1], matched[2], function (er, req) { - if (er || !req.name) return done() - var child = findRequirement(tree, req.name, req) - if (child) { - resolveWithExistingModule(child, tree, log, andIgnoreErrors(done)) - } else if (tree.package.dependencies[req.name] != null) { - tree.missingDeps[req.name] = req.rawSpec - done() - } else if (tree.package.devDependencies[req.name] != null) { - tree.missingDevDeps[req.name] = req.rawSpec - done() - } else { - done() - } - }) - } - function specs (deps) { - return Object.keys(deps).map(function (depname) { return depname + '@' + deps[depname] }) - } - - // Ensure dependencies and dev dependencies are marked as required - var tomark = specs(tree.package.dependencies) - if (!tree.parent && (npm.config.get('dev') || !npm.config.get('production'))) { - tomark = union(tomark, specs(tree.package.devDependencies)) - } - // Ensure any children ONLY from a shrinkwrap are also included - var childrenOnlyInShrinkwrap = tree.children.filter(function (child) { - return child.fromShrinkwrap && - !tree.package.dependencies[child.package.name] && - !tree.package.devDependencies[child.package.name] - }) - var tomarkOnlyInShrinkwrap = childrenOnlyInShrinkwrap.map(function (child) { - return child.package._spec - }) - tomark = union(tomark, tomarkOnlyInShrinkwrap) - - // Don't bother trying to recalc children of failed deps - tree.children = tree.children.filter(function (child) { return !child.failed }) - - chain([ - [asyncMap, tomark, markDeps], - [asyncMap, tree.children, function (child, done) { recalculateMetadata(child, log, seen, done) }] - ], function () { - tree.userRequired = tree.package._requiredBy.some(function (req) { return req === '#USER' }) - tree.existing = tree.package._requiredBy.some(function (req) { return req === '#EXISTING' }) - tree.package._location = flatNameFromTree(tree) - next(null, tree) - }) -} - -function addRequiredDep (tree, child, cb) { - isDep(tree, child, function (childIsDep, childIsProdDep, childIsDevDep) { - if (!childIsDep) return cb(false) - var name = childIsProdDep ? flatNameFromTree(tree) : '#DEV:' + flatNameFromTree(tree) - replaceModuleName(child.package, '_requiredBy', name) - replaceModule(child, 'requiredBy', tree) - replaceModule(tree, 'requires', child) - cb(true) - }) -} - -exports._removeObsoleteDep = removeObsoleteDep -function removeObsoleteDep (child) { - if (child.removed) return - child.removed = true - var requires = child.requires || [] - requires.forEach(function (requirement) { - requirement.requiredBy = requirement.requiredBy.filter(function (reqBy) { return reqBy !== child }) - if (requirement.requiredBy.length === 0) removeObsoleteDep(requirement) - }) -} - -function matchingDep (tree, name) { - if (tree.package.dependencies && tree.package.dependencies[name]) return tree.package.dependencies[name] - if (tree.package.devDependencies && tree.package.devDependencies[name]) return tree.package.devDependencies[name] - return -} - -function packageRelativePath (tree) { - if (!tree) return '' - var requested = tree.package._requested || {} - var isLocal = requested.type === 'directory' || requested.type === 'local' - return isLocal ? requested.spec : tree.path -} - -function getShrinkwrap (tree, name) { - return tree.package._shrinkwrap && tree.package._shrinkwrap.dependencies && tree.package._shrinkwrap.dependencies[name] -} - -exports.getAllMetadata = function (args, tree, next) { - asyncMap(args, function (spec, done) { - if (tree && spec.lastIndexOf('@') <= 0) { - var sw = getShrinkwrap(tree, spec) - if (sw) { - // FIXME: This is duplicated in inflate-shrinkwrap and should be factoed - // into a shared function - spec = sw.resolved - ? spec + '@' + sw.resolved - : (sw.from && url.parse(sw.from).protocol) - ? spec + '@' + sw.from - : spec + '@' + sw.version - } else { - var version = matchingDep(tree, spec) - if (version != null) { - spec += '@' + version - } - } - } - fetchPackageMetadata(spec, packageRelativePath(tree), done) - }, next) -} - -// Add a list of args to tree's top level dependencies -exports.loadRequestedDeps = function (args, tree, saveToDependencies, log, next) { - validate('AOOF', [args, tree, log, next]) - asyncMap(args, function (pkg, done) { - var depLoaded = andAddParentToErrors(tree, done) - resolveWithNewModule(pkg, tree, log.newGroup('loadRequestedDeps'), iferr(depLoaded, function (child, tracker) { - validate('OO', arguments) - if (npm.config.get('global')) { - child.isGlobal = true - } - var childName = moduleName(child) - if (saveToDependencies) { - tree.package[saveToDependencies][childName] = - child.package._requested.rawSpec || child.package._requested.spec - } - if (saveToDependencies && saveToDependencies !== 'devDependencies') { - tree.package.dependencies[childName] = - child.package._requested.rawSpec || child.package._requested.spec - } - child.userRequired = true - child.save = saveToDependencies - - // For things the user asked to install, that aren't a dependency (or - // won't be when we're done), flag it as "depending" on the user - // themselves, so we don't remove it as a dep that no longer exists - addRequiredDep(tree, child, function (childIsDep) { - if (!childIsDep) { - replaceModuleName(child.package, '_requiredBy', '#USER') - } - depLoaded(null, child, tracker) - }) - })) - }, andForEachChild(loadDeps, andFinishTracker(log, next))) -} - -function moduleNameMatches (name) { - return function (child) { return moduleName(child) === name } -} - -function noModuleNameMatches (name) { - return function (child) { return moduleName(child) !== name } -} - -// while this implementation does not require async calling, doing so -// gives this a consistent interface with loadDeps et al -exports.removeDeps = function (args, tree, saveToDependencies, log, next) { - validate('AOOF', [args, tree, log, next]) - args.forEach(function (pkg) { - var pkgName = moduleName(pkg) - if (saveToDependencies) { - var toRemove = tree.children.filter(moduleNameMatches(pkgName)) - var pkgToRemove = toRemove[0] || createChild({package: {name: pkgName}}) - replaceModule(tree, 'removed', pkgToRemove) - pkgToRemove.save = saveToDependencies - } - tree.children = tree.children.filter(noModuleNameMatches(pkgName)) - }) - log.finish() - next() -} - -function andForEachChild (load, next) { - validate('F', [next]) - next = dezalgo(next) - return function (er, children, logs) { - // when children is empty, logs won't be passed in at all (asyncMap is weird) - // so shortcircuit before arg validation - if (!er && (!children || children.length === 0)) return next() - validate('EAA', arguments) - if (er) return next(er) - assert(children.length === logs.length) - var cmds = [] - for (var ii = 0; ii < children.length; ++ii) { - cmds.push([load, children[ii], logs[ii]]) - } - var sortedCmds = cmds.sort(function installOrder (aa, bb) { - return moduleName(aa[1]).localeCompare(moduleName(bb[1])) - }) - chain(sortedCmds, next) - } -} - -function isDepOptional (tree, name) { - if (!tree.package.optionalDependencies) return false - if (tree.package.optionalDependencies[name] != null) return true - return false -} - -var failedDependency = exports.failedDependency = function (tree, name_pkg) { - var name, pkg - if (typeof name_pkg === 'string') { - name = name_pkg - } else { - pkg = name_pkg - name = moduleName(pkg) - } - - tree.children = tree.children.filter(noModuleNameMatches(name)) - - if (isDepOptional(tree, name)) { - return false - } - - tree.failed = true - - if (!tree.parent) return true - - if (tree.userRequired) return true - - for (var ii = 0; ii < tree.requiredBy.length; ++ii) { - var requireParent = tree.requiredBy[ii] - if (failedDependency(requireParent, tree.package)) { - return true - } - } - return false -} - -function top (tree) { - if (tree.parent) return top(tree.parent) - return tree -} - -function treeWarn (tree, what, error) { - var topTree = top(tree) - if (!topTree.warnings) topTree.warnings = [] - error.optional = flatNameFromTree(tree) + '/' + what - topTree.warnings.push(error) -} - -function andHandleOptionalErrors (log, tree, name, done) { - validate('OOSF', arguments) - return function (er, child, childLog) { - if (!er) validate('OO', [child, childLog]) - if (!er) return done(er, child, childLog) - var isFatal = failedDependency(tree, name) - if (er && !isFatal) { - tree.children = tree.children.filter(noModuleNameMatches(name)) - treeWarn(tree, name, er) - return done() - } else { - return done(er, child, childLog) - } - } -} - -// Load any missing dependencies in the given tree -exports.loadDeps = loadDeps -function loadDeps (tree, log, next) { - validate('OOF', arguments) - if (tree.loaded || (tree.parent && tree.parent.failed)) return andFinishTracker.now(log, next) - if (tree.parent) tree.loaded = true - if (!tree.package.dependencies) tree.package.dependencies = {} - asyncMap(Object.keys(tree.package.dependencies), function (dep, done) { - var version = tree.package.dependencies[dep] - if (tree.package.optionalDependencies && - tree.package.optionalDependencies[dep] && - !npm.config.get('optional')) { - return done() - } - - addDependency(dep, version, tree, log.newGroup('loadDep:' + dep), andHandleOptionalErrors(log, tree, dep, done)) - }, andForEachChild(loadDeps, andFinishTracker(log, next))) -} - -// Load development dependencies into the given tree -exports.loadDevDeps = function (tree, log, next) { - validate('OOF', arguments) - if (!tree.package.devDependencies) return andFinishTracker.now(log, next) - asyncMap(Object.keys(tree.package.devDependencies), function (dep, done) { - // things defined as both dev dependencies and regular dependencies are treated - // as the former - if (tree.package.dependencies[dep]) return done() - - var logGroup = log.newGroup('loadDevDep:' + dep) - addDependency(dep, tree.package.devDependencies[dep], tree, logGroup, done) - }, andForEachChild(loadDeps, andFinishTracker(log, next))) -} - -exports.loadExtraneous = function loadExtraneous (tree, log, next) { - var seen = {} - function loadExtraneous (tree, log, next) { - validate('OOF', arguments) - if (seen[tree.path]) return next() - seen[tree.path] = true - asyncMap(tree.children.filter(function (child) { return !child.loaded }), function (child, done) { - resolveWithExistingModule(child, tree, log, done) - }, andForEachChild(loadExtraneous, andFinishTracker(log, next))) - } - loadExtraneous(tree, log, next) -} - -exports.loadExtraneous.andResolveDeps = function (tree, log, next) { - validate('OOF', arguments) - asyncMap(tree.children.filter(function (child) { return !child.loaded }), function (child, done) { - resolveWithExistingModule(child, tree, log, done) - }, andForEachChild(loadDeps, andFinishTracker(log, next))) -} - -function addDependency (name, versionSpec, tree, log, done) { - validate('SSOOF', arguments) - var next = andAddParentToErrors(tree, done) - childDependencySpecifier(tree, name, versionSpec, iferr(done, function (req) { - var child = findRequirement(tree, name, req) - if (child) { - resolveWithExistingModule(child, tree, log, iferr(next, function (child, log) { - if (child.package._shrinkwrap === undefined) { - readShrinkwrap.andInflate(child, function (er) { next(er, child, log) }) - } else { - next(null, child, log) - } - })) - } else { - resolveWithNewModule(req, tree, log, next) - } - })) -} - -function resolveWithExistingModule (child, tree, log, next) { - validate('OOOF', arguments) - addRequiredDep(tree, child, function () { - if (tree.parent && child.parent !== tree) updatePhantomChildren(tree.parent, child) - next(null, child, log) - }) -} - -var updatePhantomChildren = exports.updatePhantomChildren = function (current, child) { - validate('OO', arguments) - while (current && current !== child.parent) { - // FIXME: phantomChildren doesn't actually belong in the package.json - if (!current.package._phantomChildren) current.package._phantomChildren = {} - current.package._phantomChildren[moduleName(child)] = child.package.version - current = current.parent - } -} - -function flatNameFromTree (tree) { - validate('O', arguments) - if (!tree.parent) return '/' - var path = flatNameFromTree(tree.parent) - if (path !== '/') path += '/' - return flatName(path, tree) -} - -exports._replaceModuleName = replaceModuleName -function replaceModuleName (obj, key, name) { - validate('OSS', arguments) - obj[key] = union(obj[key] || [], [name]) -} - -exports._replaceModule = replaceModule -function replaceModule (obj, key, child) { - validate('OSO', arguments) - if (!obj[key]) obj[key] = [] - // we replace children with a new array object instead of mutating it - // because mutating it results in weird failure states. - // I would very much like to know _why_ this is. =/ - var children = [].concat(obj[key]) - var childName = moduleName(child) - for (var replaceAt = 0; replaceAt < children.length; ++replaceAt) { - if (moduleName(children[replaceAt]) === childName) break - } - var replacing = children.splice(replaceAt, 1, child) - obj[key] = children - return replacing[0] -} - -function resolveWithNewModule (pkg, tree, log, next) { - validate('OOOF', arguments) - if (pkg.type) { - return fetchPackageMetadata(pkg, packageRelativePath(tree), log.newItem('fetchMetadata'), iferr(next, function (pkg) { - resolveWithNewModule(pkg, tree, log, next) - })) - } - - if (!pkg._installable) { - log.silly('resolveWithNewModule', packageId(pkg), 'checking installable status') - return isInstallable(pkg, iferr(next, function () { - pkg._installable = true - resolveWithNewModule(pkg, tree, log, next) - })) - } - - if (!pkg._from) { - pkg._from = pkg._requested.name + '@' + pkg._requested.spec - } - addShrinkwrap(pkg, iferr(next, function () { - addBundled(pkg, iferr(next, function () { - var parent = earliestInstallable(tree, tree, pkg) || tree - var child = createChild({ - package: pkg, - parent: parent, - path: path.join(parent.path, 'node_modules', pkg.name), - realpath: path.resolve(parent.realpath, 'node_modules', pkg.name), - children: pkg._bundled || [], - isLink: tree.isLink - }) - - var replaced = replaceModule(parent, 'children', child) - if (replaced) removeObsoleteDep(replaced) - addRequiredDep(tree, child, function () { - pkg._location = flatNameFromTree(child) - - if (tree.parent && parent !== tree) updatePhantomChildren(tree.parent, child) - - if (pkg._bundled) { - inflateBundled(child, child.children) - } - - if (pkg._shrinkwrap && pkg._shrinkwrap.dependencies) { - return inflateShrinkwrap(child, pkg._shrinkwrap.dependencies, function (er) { - next(er, child, log) - }) - } - - next(null, child, log) - }) - })) - })) -} - -var validatePeerDeps = exports.validatePeerDeps = function (tree, onInvalid) { - if (!tree.package.peerDependencies) return - Object.keys(tree.package.peerDependencies).forEach(function (pkgname) { - var version = tree.package.peerDependencies[pkgname] - var match = findRequirement(tree.parent || tree, pkgname, npa(pkgname + '@' + version)) - if (!match) onInvalid(tree, pkgname, version) - }) -} - -exports.validateAllPeerDeps = function (tree, onInvalid) { - validateAllPeerDeps(tree, onInvalid, {}) -} - -function validateAllPeerDeps (tree, onInvalid, seen) { - validate('OFO', arguments) - if (seen[tree.path]) return - seen[tree.path] = true - validatePeerDeps(tree, onInvalid) - tree.children.forEach(function (child) { validateAllPeerDeps(child, onInvalid, seen) }) -} - -// Determine if a module requirement is already met by the tree at or above -// our current location in the tree. -var findRequirement = exports.findRequirement = function (tree, name, requested, requestor) { - validate('OSO', [tree, name, requested]) - if (!requestor) requestor = tree - var nameMatch = function (child) { - return moduleName(child) === name && child.parent && !child.removed - } - var versionMatch = function (child) { - return doesChildVersionMatch(child, requested, requestor) - } - if (nameMatch(tree)) { - // this *is* the module, but it doesn't match the version, so a - // new copy will have to be installed - return versionMatch(tree) ? tree : null - } - - var matches = tree.children.filter(nameMatch) - if (matches.length) { - matches = matches.filter(versionMatch) - // the module exists as a dependent, but the version doesn't match, so - // a new copy will have to be installed above here - if (matches.length) return matches[0] - return null - } - if (!tree.parent) return null - return findRequirement(tree.parent, name, requested, requestor) -} - -// Find the highest level in the tree that we can install this module in. -// If the module isn't installed above us yet, that'd be the very top. -// If it is, then it's the level below where its installed. -var earliestInstallable = exports.earliestInstallable = function (requiredBy, tree, pkg) { - validate('OOO', arguments) - - function undeletedModuleMatches (child) { - return !child.removed && moduleName(child) === pkg.name - } - if (tree.children.some(undeletedModuleMatches)) return null - - // If any of the children of this tree have conflicting - // binaries then we need to decline to install this package here. - var binaryMatches = typeof pkg.bin === 'object' && tree.children.some(function (child) { - if (child.removed) return false - if (typeof child.package.bin !== 'object') return false - return Object.keys(child.package.bin).some(function (bin) { - return pkg.bin[bin] - }) - }) - if (binaryMatches) return null - - // if this tree location requested the same module then we KNOW it - // isn't compatible because if it were findRequirement would have - // found that version. - var deps = tree.package.dependencies || {} - if (!tree.removed && requiredBy !== tree && deps[pkg.name]) { - return null - } - - // FIXME: phantomChildren doesn't actually belong in the package.json - if (tree.package._phantomChildren && tree.package._phantomChildren[pkg.name]) return null - - if (!tree.parent) return tree - if (tree.isGlobal) return tree - - if (npm.config.get('global-style') && !tree.parent.parent) return tree - if (npm.config.get('legacy-bundling')) return tree - - return (earliestInstallable(requiredBy, tree.parent, pkg) || tree) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/diff-trees.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/diff-trees.js deleted file mode 100644 index 80001246..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/diff-trees.js +++ /dev/null @@ -1,158 +0,0 @@ -'use strict' -var validate = require('aproba') -var npa = require('npm-package-arg') -var flattenTree = require('./flatten-tree.js') - -function nonRegistrySource (pkg) { - validate('O', arguments) - var requested = pkg._requested || (pkg._from && npa(pkg._from)) - if (!requested) return false - - if (requested.type === 'hosted') return true - if (requested.type === 'local') return true - return false -} - -function pkgAreEquiv (aa, bb) { - var aaSha = (aa.dist && aa.dist.shasum) || aa._shasum - var bbSha = (bb.dist && bb.dist.shasum) || bb._shasum - if (aaSha === bbSha) return true - if (aaSha || bbSha) return false - if (nonRegistrySource(aa) || nonRegistrySource(bb)) return false - if (aa.version === bb.version) return true - return false -} - -function getNameAndVersion (pkg) { - var versionspec = pkg._shasum - - if (!versionspec && nonRegistrySource(pkg)) { - if (pkg._requested) { - versionspec = pkg._requested.spec - } else if (pkg._from) { - versionspec = npa(pkg._from).spec - } - } - if (!versionspec) { - versionspec = pkg.version - } - return pkg.name + '@' + versionspec -} - -function pushAll (aa, bb) { - Array.prototype.push.apply(aa, bb) -} - -module.exports = function (oldTree, newTree, differences, log, next) { - validate('OOAOF', arguments) - pushAll(differences, sortActions(diffTrees(oldTree, newTree))) - log.finish() - next() -} - -function isLink (node) { - return node && node.isLink -} - -function requiredByAllLinked (node) { - if (!node.requiredBy.length) return false - return node.requiredBy.filter(isLink).length === node.requiredBy.length -} - -function isNotReqByTop (req) { - return req !== '/' && // '/' is the top level itself - req !== '#USER' && // #USER - req !== '#EXTRANEOUS' -} - -var sortActions = module.exports.sortActions = function (differences) { - var actions = {} - differences.forEach(function (action) { - var child = action[1] - actions[child.package._location] = action - }) - - var sorted = [] - var added = {} - - var sortedlocs = Object.keys(actions).sort(sortByLocation) - - // Do top level deps first, this stops the sorting by required order from - // unsorting these deps. - var toplocs = sortedlocs.filter(function (location) { - var mod = actions[location][1] - if (!mod.package._requiredBy) return true - // If the module is required by ANY non-top level package - // then we don't want to include this. - return !mod.package._requiredBy.some(isNotReqByTop) - }) - - toplocs.concat(sortedlocs).forEach(function (location) { - sortByDeps(actions[location]) - }) - - function sortByLocation (aa, bb) { - return bb.localeCompare(aa) - } - function sortByDeps (action) { - var mod = action[1] - if (added[mod.package._location]) return - added[mod.package._location] = action - mod.package._requiredBy.sort().forEach(function (location) { - if (actions[location]) sortByDeps(actions[location]) - }) - sorted.unshift(action) - } - - return sorted -} - -function diffTrees (oldTree, newTree) { - validate('OO', arguments) - var differences = [] - var flatOldTree = flattenTree(oldTree) - var flatNewTree = flattenTree(newTree) - var toRemove = {} - var toRemoveByNameAndVer = {} - // find differences - Object.keys(flatOldTree).forEach(function (flatname) { - if (flatNewTree[flatname]) return - var pkg = flatOldTree[flatname] - toRemove[flatname] = pkg - var namever = getNameAndVersion(pkg.package) - if (!toRemoveByNameAndVer[namever]) toRemoveByNameAndVer[namever] = [] - toRemoveByNameAndVer[namever].push(flatname) - }) - Object.keys(flatNewTree).forEach(function (path) { - var pkg = flatNewTree[path] - pkg.oldPkg = flatOldTree[path] - pkg.isInLink = (pkg.oldPkg && isLink(pkg.oldPkg.parent)) || - (pkg.parent && isLink(pkg.parent)) || - requiredByAllLinked(pkg) - if (pkg.oldPkg) { - if (!pkg.userRequired && pkgAreEquiv(pkg.oldPkg.package, pkg.package)) return - if (!pkg.isInLink && (isLink(pkg.oldPkg) || isLink(pkg))) { - differences.push(['update-linked', pkg]) - } else { - differences.push(['update', pkg]) - } - } else { - var vername = getNameAndVersion(pkg.package) - if (toRemoveByNameAndVer[vername] && toRemoveByNameAndVer[vername].length && !pkg.fromBundle) { - var flatname = toRemoveByNameAndVer[vername].shift() - pkg.fromPath = toRemove[flatname].path - differences.push(['move', pkg]) - delete toRemove[flatname] - } else { - differences.push(['add', pkg]) - } - } - }) - Object - .keys(toRemove) - .map(function (path) { return toRemove[path] }) - .forEach(function (pkg) { - differences.push(['remove', pkg]) - }) - return differences -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/exists.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/exists.js deleted file mode 100644 index 59100d63..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/exists.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict' -var fs = require('fs') -var inflight = require('inflight') -var accessError = require('./access-error.js') -var isFsAccessAvailable = require('./is-fs-access-available.js') - -if (isFsAccessAvailable) { - module.exports = fsAccessImplementation -} else { - module.exports = fsStatImplementation -} - -// exposed only for testing purposes -module.exports.fsAccessImplementation = fsAccessImplementation -module.exports.fsStatImplementation = fsStatImplementation - -function fsAccessImplementation (dir, done) { - done = inflight('exists:' + dir, done) - if (!done) return - fs.access(dir, fs.F_OK, done) -} - -function fsStatImplementation (dir, done) { - done = inflight('exists:' + dir, done) - if (!done) return - fs.stat(dir, function (er) { done(accessError(dir, er)) }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/filter-invalid-actions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/filter-invalid-actions.js deleted file mode 100644 index 2c5d430c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/filter-invalid-actions.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict' -var path = require('path') -var validate = require('aproba') -var log = require('npmlog') -var packageId = require('../utils/package-id.js') - -module.exports = function (top, differences, next) { - validate('SAF', arguments) - var action - var keep = [] - - differences.forEach(function (action) { - var cmd = action[0] - var pkg = action[1] - if (cmd === 'remove') { - pkg.removing = true - } - }) - - /*eslint no-cond-assign:0*/ - while (action = differences.shift()) { - var cmd = action[0] - var pkg = action[1] - if (pkg.isInLink || (pkg.parent && (pkg.parent.target || pkg.parent.isLink))) { - // we want to skip warning if this is a child of another module that we're removing - if (!pkg.parent.removing) { - log.warn('skippingAction', 'Module is inside a symlinked module: not running ' + - cmd + ' ' + packageId(pkg) + ' ' + path.relative(top, pkg.path)) - } - } else { - keep.push(action) - } - } - differences.push.apply(differences, keep) - next() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/flatten-tree.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/flatten-tree.js deleted file mode 100644 index 869685a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/flatten-tree.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict' -var validate = require('aproba') -var moduleName = require('../utils/module-name.js') - -module.exports = function (tree) { - validate('O', arguments) - var seen = {} - var flat = {} - var todo = [[tree, '/']] - while (todo.length) { - var next = todo.shift() - var pkg = next[0] - seen[pkg.path] = true - var path = next[1] - flat[path] = pkg - if (path !== '/') path += '/' - for (var ii = 0; ii < pkg.children.length; ++ii) { - var child = pkg.children[ii] - if (!seen[child.path]) { - todo.push([child, flatName(path, child)]) - } - } - } - return flat -} - -var flatName = module.exports.flatName = function (path, child) { - validate('SO', arguments) - return path + (moduleName(child) || 'TOP') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/inflate-bundled.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/inflate-bundled.js deleted file mode 100644 index c597e7a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/inflate-bundled.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict' -var validate = require('aproba') -var childPath = require('../utils/child-path.js') - -module.exports = function inflateBundled (parent, children) { - validate('OA', arguments) - children.forEach(function (child) { - child.fromBundle = true - child.parent = parent - child.path = childPath(parent.path, child) - child.realpath = childPath(parent.path, child) - child.isLink = child.isLink || parent.isLink || parent.target - inflateBundled(child, child.children) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/inflate-shrinkwrap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/inflate-shrinkwrap.js deleted file mode 100644 index b38181b9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/inflate-shrinkwrap.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict' -var url = require('url') -var asyncMap = require('slide').asyncMap -var validate = require('aproba') -var iferr = require('iferr') -var realizePackageSpecifier = require('realize-package-specifier') -var fetchPackageMetadata = require('../fetch-package-metadata.js') -var annotateMetadata = require('../fetch-package-metadata.js').annotateMetadata -var addShrinkwrap = require('../fetch-package-metadata.js').addShrinkwrap -var addBundled = require('../fetch-package-metadata.js').addBundled -var inflateBundled = require('./inflate-bundled.js') -var npm = require('../npm.js') -var createChild = require('./node.js').create -var moduleName = require('../utils/module-name.js') -var childPath = require('../utils/child-path.js') - -var inflateShrinkwrap = module.exports = function (tree, swdeps, finishInflating) { - validate('OOF', arguments) - if (!npm.config.get('shrinkwrap')) return finishInflating() - var onDisk = {} - tree.children.forEach(function (child) { onDisk[moduleName(child)] = child }) - tree.children = [] - asyncMap(Object.keys(swdeps), function (name, next) { - var sw = swdeps[name] - var spec = sw.resolved - ? name + '@' + sw.resolved - : (sw.from && url.parse(sw.from).protocol) - ? name + '@' + sw.from - : name + '@' + sw.version - var child = onDisk[name] - if (child && (child.fromShrinkwrap || - (sw.resolved && child.package._resolved === sw.resolved) || - (sw.from && url.parse(sw.from).protocol && child.package._from === sw.from) || - child.package.version === sw.version)) { - if (!child.fromShrinkwrap) child.fromShrinkwrap = spec - tree.children.push(child) - - return realizePackageSpecifier(spec, tree.path, iferr(next, function (requested) { - annotateMetadata(child.package, requested, spec, tree.path) - return inflateShrinkwrap(child, sw.dependencies || {}, next) - })) - } - fetchPackageMetadata(spec, tree.path, iferr(next, function (pkg) { - pkg._from = sw.from || spec - addShrinkwrap(pkg, iferr(next, function () { - addBundled(pkg, iferr(next, function () { - var child = createChild({ - package: pkg, - loaded: false, - parent: tree, - fromShrinkwrap: spec, - path: childPath(tree.path, pkg), - realpath: childPath(tree.realpath, pkg), - children: pkg._bundled || [] - }) - tree.children.push(child) - if (pkg._bundled) { - inflateBundled(child, child.children) - } - inflateShrinkwrap(child, sw.dependencies || {}, next) - })) - })) - })) - }, finishInflating) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/is-dev.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/is-dev.js deleted file mode 100644 index b1f2c4b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/is-dev.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' -var isDev = exports.isDev = function (node) { - return node.package._requiredBy.some(function (req) { return req === '#DEV:/' }) -} -exports.isOnlyDev = function (node) { - return node.package._requiredBy.length === 1 && isDev(node) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/is-extraneous.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/is-extraneous.js deleted file mode 100644 index cd4d9546..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/is-extraneous.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict' -var path = require('path') -var isDev = require('./is-dev.js').isDev -var npm = require('../npm.js') - -module.exports = function (tree) { - var pkg = tree.package - var requiredBy = pkg._requiredBy.filter(function (req) { return req[0] !== '#' }) - var isTopLevel = tree.parent == null - var isChildOfTop = !isTopLevel && tree.parent.parent == null - var isTopGlobal = isChildOfTop && tree.parent.path === path.resolve(npm.globalDir, '..') - var topHasNoPackageJson = isChildOfTop && tree.parent.error - return !isTopLevel && (!isChildOfTop || !topHasNoPackageJson) && !isTopGlobal && requiredBy.length === 0 && !isDev(tree) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/is-fs-access-available.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/is-fs-access-available.js deleted file mode 100644 index a7d2640d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/is-fs-access-available.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict' -var fs = require('fs') -var semver = require('semver') -var isWindows = process.platform === 'win32' - -// fs.access first introduced in node 0.12 / io.js -if (!fs.access) { - module.exports = false -} else if (!isWindows) { - // fs.access always works on non-Windows OSes - module.exports = true -} else { - // The Windows implementation of `fs.access` has a bug where it will - // sometimes return access errors all the time for directories, even - // when access is available. As all we actually test ARE directories, this - // is a bit of a problem. - // This was fixed in io.js version 1.5.0 - // As of 2015-07-20, it is still unfixed in node: - // https://github.com/joyent/node/issues/25657 - - module.exports = semver.gte(process.version, '1.5.0') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/mutate-into-logical-tree.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/mutate-into-logical-tree.js deleted file mode 100644 index 833aa94c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/mutate-into-logical-tree.js +++ /dev/null @@ -1,113 +0,0 @@ -'use strict' -var union = require('lodash.union') -var without = require('lodash.without') -var validate = require('aproba') -var flattenTree = require('./flatten-tree.js') -var isExtraneous = require('./is-extraneous.js') -var validateAllPeerDeps = require('./deps.js').validateAllPeerDeps -var packageId = require('../utils/package-id.js') -var moduleName = require('../utils/module-name.js') - -var mutateIntoLogicalTree = module.exports = function (tree) { - validate('O', arguments) - - validateAllPeerDeps(tree, function (tree, pkgname, version) { - if (!tree.missingPeers) tree.missingPeers = {} - tree.missingPeers[pkgname] = version - }) - - var flat = flattenTree(tree) - - function getNode (flatname) { - return flatname.substr(0, 5) === '#DEV:' - ? flat[flatname.substr(5)] - : flat[flatname] - } - - Object.keys(flat).sort().forEach(function (flatname) { - var node = flat[flatname] - var requiredBy = node.package._requiredBy || [] - var requiredByNames = requiredBy.filter(function (parentFlatname) { - var parentNode = getNode(parentFlatname) - if (!parentNode) return false - return parentNode.package.dependencies[moduleName(node)] || - (parentNode.package.devDependencies && parentNode.package.devDependencies[moduleName(node)]) - }) - requiredBy = requiredByNames.map(getNode) - - node.requiredBy = requiredBy - - if (!requiredBy.length) return - - if (node.parent) node.parent.children = without(node.parent.children, node) - - requiredBy.forEach(function (parentNode) { - parentNode.children = union(parentNode.children, [node]) - }) - if (node.package._requiredBy.some(function (nodename) { return nodename[0] === '#' })) { - tree.children = union(tree.children, [node]) - } - }) - return tree -} - -module.exports.asReadInstalled = function (tree) { - mutateIntoLogicalTree(tree) - return translateTree(tree) -} - -function translateTree (tree) { - return translateTree_(tree, {}) -} - -function translateTree_ (tree, seen) { - var pkg = tree.package - if (seen[tree.path]) return pkg - seen[tree.path] = pkg - if (pkg._dependencies) return pkg - pkg._dependencies = pkg.dependencies - pkg.dependencies = {} - tree.children.forEach(function (child) { - pkg.dependencies[moduleName(child)] = translateTree_(child, seen) - }) - Object.keys(tree.missingDeps).forEach(function (name) { - if (pkg.dependencies[name]) { - pkg.dependencies[name].invalid = true - pkg.dependencies[name].realName = name - pkg.dependencies[name].extraneous = false - } else { - pkg.dependencies[name] = { - requiredBy: tree.missingDeps[name], - missing: true, - optional: !!pkg.optionalDependencies[name] - } - } - }) - var checkForMissingPeers = (tree.parent ? [] : [tree]).concat(tree.children) - checkForMissingPeers.filter(function (child) { - return child.missingPeers - }).forEach(function (child) { - Object.keys(child.missingPeers).forEach(function (pkgname) { - var version = child.missingPeers[pkgname] - var peerPkg = pkg.dependencies[pkgname] - if (!peerPkg) { - peerPkg = pkg.dependencies[pkgname] = { - _id: pkgname + '@' + version, - name: pkgname, - version: version - } - } - if (!peerPkg.peerMissing) peerPkg.peerMissing = [] - peerPkg.peerMissing.push({ - requiredBy: packageId(child), - requires: pkgname + '@' + version - }) - }) - }) - pkg.path = tree.path - - pkg.error = tree.error - pkg.extraneous = isExtraneous(tree) - if (tree.target && tree.parent && !tree.parent.target) pkg.link = tree.realpath - return pkg -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/node.js deleted file mode 100644 index c76dc765..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/node.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict' - -var defaultTemplate = { - package: { - dependencies: {}, - devDependencies: {}, - optionalDependencies: {}, - _requiredBy: [], - _phantomChildren: {} - }, - loaded: false, - children: [], - requiredBy: [], - requires: [], - missingDeps: {}, - missingDevDeps: {}, - path: null, - realpath: null, - userRequired: false, - existing: false -} - -function isLink (node) { - return node && node.isLink -} - -var create = exports.create = function (node, template) { - if (!template) template = defaultTemplate - Object.keys(template).forEach(function (key) { - if (template[key] != null && typeof template[key] === 'object' && !(template[key] instanceof Array)) { - if (!node[key]) node[key] = {} - return create(node[key], template[key]) - } - if (node[key] != null) return - node[key] = template[key] - }) - if (isLink(node) || isLink(node.parent)) { - node.isLink = true - } - return node -} - -exports.reset = function (node) { - reset(node, {}) -} - -function reset (node, seen) { - if (seen[node.path]) return - seen[node.path] = true - var child = create(node) - child.package._requiredBy = child.package._requiredBy.filter(function (req) { - return req[0] === '#' - }) - child.requiredBy = [] - child.package._phantomChildren = {} - // FIXME: cleaning up after read-package-json's mess =( - if (child.package._id === '@') delete child.package._id - child.missingDeps = {} - child.children.forEach(function (child) { reset(child, seen) }) - if (!child.package.version) child.package.version = '' -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/prune-tree.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/prune-tree.js deleted file mode 100644 index eb3edf4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/prune-tree.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict' -var validate = require('aproba') -var flattenTree = require('./flatten-tree.js') - -function isNotPackage (mod) { - return function (parentMod) { return mod !== parentMod } -} - -module.exports = function pruneTree (tree) { - validate('O', arguments) - var flat = flattenTree(tree) - // we just do this repeatedly until there are no more orphaned packages - // which isn't as effecient as it could be on a REALLY big tree - // but we'll face that if it proves to be an issue - var removedPackage - do { - removedPackage = false - Object.keys(flat).forEach(function (flatname) { - var child = flat[flatname] - if (!child.parent) return - child.package._requiredBy = (child.package._requiredBy || []).filter(function (req) { - var isDev = req.substr(0, 4) === '#DEV' - if (req[0] === '#' && !isDev) return true - if (flat[req]) return true - if (!isDev) return false - var reqChildAsDevDep = flat[req.substr(5)] - return reqChildAsDevDep && !reqChildAsDevDep.parent - }) - if (!child.package._requiredBy.length) { - removedPackage = true - delete flat[flatname] - child.parent.children = child.parent.children.filter(isNotPackage(child)) - } - }) - } while (removedPackage) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/read-shrinkwrap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/read-shrinkwrap.js deleted file mode 100644 index 35180b68..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/read-shrinkwrap.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('graceful-fs') -var iferr = require('iferr') -var inflateShrinkwrap = require('./inflate-shrinkwrap.js') -var parseJSON = require('../utils/parse-json.js') - -var readShrinkwrap = module.exports = function (child, next) { - fs.readFile(path.join(child.path, 'npm-shrinkwrap.json'), function (er, data) { - if (er) { - child.package._shrinkwrap = null - return next() - } - try { - child.package._shrinkwrap = parseJSON(data) - } catch (ex) { - child.package._shrinkwrap = null - return next(ex) - } - return next() - }) -} - -module.exports.andInflate = function (child, next) { - readShrinkwrap(child, iferr(next, function () { - if (child.package._shrinkwrap) { - return inflateShrinkwrap(child, child.package._shrinkwrap.dependencies || {}, next) - } else { - return next() - } - })) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/save.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/save.js deleted file mode 100644 index acbe8c5b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/save.js +++ /dev/null @@ -1,221 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var url = require('url') -var writeFileAtomic = require('write-file-atomic') -var log = require('npmlog') -var semver = require('semver') -var iferr = require('iferr') -var validate = require('aproba') -var without = require('lodash.without') -var npm = require('../npm.js') -var deepSortObject = require('../utils/deep-sort-object.js') -var parseJSON = require('../utils/parse-json.js') -var moduleName = require('../utils/module-name.js') - -// if the -S|--save option is specified, then write installed packages -// as dependencies to a package.json file. - -exports.saveRequested = function (args, tree, andReturn) { - validate('AOF', arguments) - savePackageJson(args, tree, andWarnErrors(andSaveShrinkwrap(tree, andReturn))) -} - -function andSaveShrinkwrap (tree, andReturn) { - validate('OF', arguments) - return function (er) { - validate('E', arguments) - saveShrinkwrap(tree, andWarnErrors(andReturn)) - } -} - -function andWarnErrors (cb) { - validate('F', arguments) - return function (er) { - if (er) log.warn('saveError', er.message) - arguments[0] = null - cb.apply(null, arguments) - } -} - -function saveShrinkwrap (tree, next) { - validate('OF', arguments) - var saveTarget = path.resolve(tree.path, 'npm-shrinkwrap.json') - fs.stat(saveTarget, function (er, stat) { - if (er) return next() - var save = npm.config.get('save') - var saveDev = npm.config.get('save-dev') - var saveOptional = npm.config.get('save-optional') - - var shrinkwrap = tree.package._shrinkwrap || {dependencies: {}} - var hasDevOnlyDeps = tree.requires.filter(function (dep) { - var devReqs = dep.package._requiredBy.filter(function (name) { return name.substr(0, 4) === '#DEV' }) - return devReqs.length === dep.package._requiredBy.length - }).some(function (dep) { - return shrinkwrap.dependencies[dep.package.name] != null - }) - - if (!saveOptional && saveDev && !hasDevOnlyDeps) return next() - if (saveOptional || !save) return next() - - if (hasDevOnlyDeps) { - var dev = npm.config.get('dev') - npm.config.set('dev', true) - npm.commands.shrinkwrap([], true, function () { - npm.config.set('dev', dev) - next.apply(this, arguments) - }) - } else { - npm.commands.shrinkwrap([], true, next) - } - }) -} - -function savePackageJson (args, tree, next) { - validate('AOF', arguments) - var saveBundle = npm.config.get('save-bundle') - - // each item in the tree is a top-level thing that should be saved - // to the package.json file. - // The relevant tree shape is { : {what:} } - var saveTarget = path.resolve(tree.path, 'package.json') - // don't use readJson, because we don't want to do all the other - // tricky npm-specific stuff that's in there. - fs.readFile(saveTarget, iferr(next, function (packagejson) { - try { - packagejson = parseJSON(packagejson) - } catch (ex) { - return next(ex) - } - - // If we're saving bundled deps, normalize the key before we start - if (saveBundle) { - var bundle = packagejson.bundleDependencies || packagejson.bundledDependencies - delete packagejson.bundledDependencies - if (!Array.isArray(bundle)) bundle = [] - } - - var toSave = getThingsToSave(tree) - var toRemove = getThingsToRemove(args, tree) - var savingTo = {} - toSave.forEach(function (pkg) { savingTo[pkg.save] = true }) - toRemove.forEach(function (pkg) { savingTo[pkg.save] = true }) - - Object.keys(savingTo).forEach(function (save) { - if (!packagejson[save]) packagejson[save] = {} - }) - - log.verbose('saving', toSave) - toSave.forEach(function (pkg) { - packagejson[pkg.save][pkg.name] = pkg.spec - if (saveBundle) { - var ii = bundle.indexOf(pkg.name) - if (ii === -1) bundle.push(pkg.name) - } - }) - - toRemove.forEach(function (pkg) { - delete packagejson[pkg.save][pkg.name] - if (saveBundle) { - bundle = without(bundle, pkg.name) - } - }) - - Object.keys(savingTo).forEach(function (key) { - packagejson[key] = deepSortObject(packagejson[key]) - }) - if (saveBundle) { - packagejson.bundledDependencies = deepSortObject(bundle) - } - - var json = JSON.stringify(packagejson, null, 2) + '\n' - writeFileAtomic(saveTarget, json, next) - })) -} - -var getSaveType = exports.getSaveType = function (args) { - validate('A', arguments) - var nothingToSave = !args.length - var globalInstall = npm.config.get('global') - var noSaveFlags = !npm.config.get('save') && - !npm.config.get('save-dev') && - !npm.config.get('save-optional') - if (nothingToSave || globalInstall || noSaveFlags) return null - - if (npm.config.get('save-optional')) return 'optionalDependencies' - else if (npm.config.get('save-dev')) return 'devDependencies' - else return 'dependencies' -} - -function computeVersionSpec (child) { - validate('O', arguments) - var requested = child.package._requested - if (!requested || requested.type === 'tag') { - requested = { - type: 'version', - spec: child.package.version - } - } - if (requested.type === 'version' || requested.type === 'range') { - var version = child.package.version - var rangeDescriptor = '' - if (semver.valid(version, true) && - semver.gte(version, '0.1.0', true) && - !npm.config.get('save-exact')) { - rangeDescriptor = npm.config.get('save-prefix') - } - return rangeDescriptor + version - } else if (requested.type === 'directory' || requested.type === 'local') { - var relativePath = path.relative(child.parent.path, requested.spec) - if (/^[.][.]/.test(relativePath)) { - return url.format({ - protocol: 'file', - slashes: true, - pathname: requested.spec - }) - } else { - return url.format({ - protocol: 'file', - slashes: false, - pathname: relativePath - }) - } - } else if (requested.type === 'hosted') { - return requested.spec - } else { - return requested.rawSpec - } -} - -function getThingsToSave (tree) { - validate('O', arguments) - var toSave = tree.children.filter(function (child) { - return child.save - }).map(function (child) { - return { - name: moduleName(child), - spec: computeVersionSpec(child), - save: child.save - } - }) - return toSave -} - -function getThingsToRemove (args, tree) { - validate('AO', arguments) - if (!tree.removed) return [] - var toRemove = tree.removed.map(function (child) { - return { - name: moduleName(child), - save: child.save - } - }) - var saveType = getSaveType(args) - args.forEach(function (arg) { - toRemove.push({ - name: arg, - save: saveType - }) - }) - return toRemove -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/update-package-json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/update-package-json.js deleted file mode 100644 index 97b2f05b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/update-package-json.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict' -var path = require('path') -var writeFileAtomic = require('write-file-atomic') -var deepSortObject = require('../utils/deep-sort-object.js') - -module.exports = function (pkg, buildpath, next) { - // FIXME: This bundled dance is because we're sticking a big tree of bundled - // deps into the parsed package.json– it probably doesn't belong there =/ - // But the real reason we don't just dump it out is that it's the result - // of npm-read-tree, which produces circular data structures, due to the - // parent and children keys. - var bundled = pkg.package._bundled - delete pkg.package._bundled // FIXME - var packagejson = deepSortObject(pkg.package) - var data = JSON.stringify(packagejson, null, 2) + '\n' - pkg.package._bundled = bundled - writeFileAtomic(path.resolve(buildpath, 'package.json'), data, next) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/validate-args.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/validate-args.js deleted file mode 100644 index 02c0558e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/validate-args.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict' -var validate = require('aproba') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var npmInstallChecks = require('npm-install-checks') -var iferr = require('iferr') -var checkEngine = npmInstallChecks.checkEngine -var checkPlatform = npmInstallChecks.checkPlatform -var npm = require('../npm.js') - -module.exports = function (idealTree, args, next) { - validate('OAF', arguments) - var force = npm.config.get('force') - - asyncMap(args, function (pkg, done) { - chain([ - [checkSelf, idealTree, pkg, force], - [isInstallable, pkg] - ], done) - }, next) -} - -function getWarnings (pkg) { - while (pkg.parent) pkg = pkg.parent - if (!pkg.warnings) pkg.warnings = [] - return pkg.warnings -} - -var isInstallable = module.exports.isInstallable = function (pkg, next) { - var force = npm.config.get('force') - var nodeVersion = npm.config.get('node-version') - if (/-/.test(nodeVersion)) { - // for the purposes of validation, if the node version is a prerelease, - // strip that. We check and warn about this sceanrio over in validate-tree. - nodeVersion = nodeVersion.replace(/-.*/, '') - } - var strict = npm.config.get('engine-strict') - checkEngine(pkg, npm.version, nodeVersion, force, strict, iferr(next, thenWarnEngineIssues)) - function thenWarnEngineIssues (warn) { - if (warn) getWarnings(pkg).push(warn) - checkPlatform(pkg, force, next) - } -} - -function checkSelf (idealTree, pkg, force, next) { - if (idealTree.package && idealTree.package.name !== pkg.name) return next() - if (force) { - var warn = new Error("Wouldn't install " + pkg.name + ' as a dependency of itself, but being forced') - warn.code = 'ENOSELF' - idealTree.warnings.push(warn) - next() - } else { - var er = new Error('Refusing to install ' + pkg.name + ' as a dependency of itself') - er.code = 'ENOSELF' - next(er) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/validate-tree.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/validate-tree.js deleted file mode 100644 index e89cd6fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/validate-tree.js +++ /dev/null @@ -1,77 +0,0 @@ -'use strict' -var path = require('path') -var validate = require('aproba') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var npmInstallChecks = require('npm-install-checks') -var checkGit = npmInstallChecks.checkGit -var clone = require('lodash.clonedeep') -var normalizePackageData = require('normalize-package-data') -var npm = require('../npm.js') -var andFinishTracker = require('./and-finish-tracker.js') -var flattenTree = require('./flatten-tree.js') -var validateAllPeerDeps = require('./deps.js').validateAllPeerDeps -var packageId = require('../utils/package-id.js') - -module.exports = function (idealTree, log, next) { - validate('OOF', arguments) - var moduleMap = flattenTree(idealTree) - var modules = Object.keys(moduleMap).map(function (name) { return moduleMap[name] }) - - chain([ - [asyncMap, modules, function (mod, done) { - chain([ - mod.parent && !mod.isLink && [checkGit, mod.realpath], - [checkErrors, mod, idealTree] - ], done) - }], - [thenValidateAllPeerDeps, idealTree], - [thenCheckTop, idealTree] - ], andFinishTracker(log, next)) -} - -function checkErrors (mod, idealTree, next) { - if (mod.error && (mod.parent || path.resolve(npm.globalDir, '..') !== mod.path)) idealTree.warnings.push(mod.error) - next() -} - -function thenValidateAllPeerDeps (idealTree, next) { - validate('OF', arguments) - validateAllPeerDeps(idealTree, function (tree, pkgname, version) { - var warn = new Error(packageId(tree) + ' requires a peer of ' + pkgname + '@' + - version + ' but none was installed.') - warn.code = 'EPEERINVALID' - idealTree.warnings.push(warn) - }) - next() -} - -function thenCheckTop (idealTree, next) { - validate('OF', arguments) - if (idealTree.package.error) return next() - - // FIXME: when we replace read-package-json with something less magic, - // this should done elsewhere. - // As it is, the package has already been normalized and thus some - // errors are suppressed. - var pkg = clone(idealTree.package) - try { - normalizePackageData(pkg, function (warn) { - var warnObj = new Error(packageId(idealTree) + ' ' + warn) - warnObj.code = 'EPACKAGEJSON' - idealTree.warnings.push(warnObj) - }, false) - } catch (er) { - er.code = 'EPACKAGEJSON' - idealTree.warnings.push(er) - } - - var nodeVersion = npm.config.get('node-version') - if (/-/.test(nodeVersion)) { - // if this is a prerelease node… - var warnObj = new Error('You are using a pre-release version of node and things may not work as expected') - warnObj.code = 'ENODEPRE' - idealTree.warnings.push(warnObj) - } - next() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/writable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/writable.js deleted file mode 100644 index 199b48f5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/install/writable.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('fs') -var inflight = require('inflight') -var accessError = require('./access-error.js') -var andIgnoreErrors = require('./and-ignore-errors.js') -var isFsAccessAvailable = require('./is-fs-access-available.js') - -if (isFsAccessAvailable) { - module.exports = fsAccessImplementation -} else { - module.exports = fsOpenImplementation -} - -// exposed only for testing purposes -module.exports.fsAccessImplementation = fsAccessImplementation -module.exports.fsOpenImplementation = fsOpenImplementation - -function fsAccessImplementation (dir, done) { - done = inflight('writable:' + dir, done) - if (!done) return - fs.access(dir, fs.W_OK, done) -} - -function fsOpenImplementation (dir, done) { - done = inflight('writable:' + dir, done) - if (!done) return - var tmp = path.join(dir, '.npm.check.permissions') - fs.open(tmp, 'w', function (er, fd) { - if (er) return done(accessError(dir, er)) - fs.close(fd, function () { - fs.unlink(tmp, andIgnoreErrors(done)) - }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/link.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/link.js deleted file mode 100644 index 3624a16c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/link.js +++ /dev/null @@ -1,200 +0,0 @@ -// link with no args: symlink the folder to the global location -// link with package arg: symlink the global to the local - -var npm = require('./npm.js') -var symlink = require('./utils/link.js') -var fs = require('graceful-fs') -var log = require('npmlog') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var path = require('path') -var build = require('./build.js') -var npa = require('npm-package-arg') -var usage = require('./utils/usage') - -module.exports = link - -link.usage = usage( - 'link', - 'npm link (in package dir)' + - '\nnpm link [<@scope>/][@]' -) - -link.completion = function (opts, cb) { - var dir = npm.globalDir - fs.readdir(dir, function (er, files) { - cb(er, files.filter(function (f) { - return !f.match(/^[\._-]/) - })) - }) -} - -function link (args, cb) { - if (process.platform === 'win32') { - var semver = require('semver') - if (!semver.gte(process.version, '0.7.9')) { - var msg = 'npm link not supported on windows prior to node 0.7.9' - var e = new Error(msg) - e.code = 'ENOTSUP' - e.errno = require('constants').ENOTSUP - return cb(e) - } - } - - if (npm.config.get('global')) { - return cb(new Error( - 'link should never be --global.\n' + - 'Please re-run this command with --local' - )) - } - - if (args.length === 1 && args[0] === '.') args = [] - if (args.length) return linkInstall(args, cb) - linkPkg(npm.prefix, cb) -} - -function parentFolder (id, folder) { - if (id[0] === '@') { - return path.resolve(folder, '..', '..') - } else { - return path.resolve(folder, '..') - } -} - -function linkInstall (pkgs, cb) { - asyncMap(pkgs, function (pkg, cb) { - var t = path.resolve(npm.globalDir, '..') - var pp = path.resolve(npm.globalDir, pkg) - var rp = null - var target = path.resolve(npm.dir, pkg) - - function n (er, data) { - if (er) return cb(er, data) - // we want the ONE thing that was installed into the global dir - var installed = data.filter(function (info) { - var id = info[0] - var folder = info[1] - return parentFolder(id, folder) === npm.globalDir - }) - var id = installed[0][0] - pp = installed[0][1] - var what = npa(id) - pkg = what.name - target = path.resolve(npm.dir, pkg) - next() - } - - // if it's a folder, a random not-installed thing, or not a scoped package, - // then link or install it first - if (pkg[0] !== '@' && (pkg.indexOf('/') !== -1 || pkg.indexOf('\\') !== -1)) { - return fs.lstat(path.resolve(pkg), function (er, st) { - if (er || !st.isDirectory()) { - npm.commands.install(t, pkg, n) - } else { - rp = path.resolve(pkg) - linkPkg(rp, n) - } - }) - } - - fs.lstat(pp, function (er, st) { - if (er) { - rp = pp - return npm.commands.install(t, [pkg], n) - } else if (!st.isSymbolicLink()) { - rp = pp - next() - } else { - return fs.realpath(pp, function (er, real) { - if (er) log.warn('invalid symbolic link', pkg) - else rp = real - next() - }) - } - }) - - function next () { - if (npm.config.get('dry-run')) return resultPrinter(pkg, pp, target, rp, cb) - chain( - [ - [ function (cb) { - log.verbose('link', 'symlinking %s to %s', pp, target) - cb() - } ], - [symlink, pp, target], - // do not run any scripts - rp && [build, [target], npm.config.get('global'), build._noLC, true], - [resultPrinter, pkg, pp, target, rp] - ], - cb - ) - } - }, cb) -} - -function linkPkg (folder, cb_) { - var me = folder || npm.prefix - var readJson = require('read-package-json') - - log.verbose('linkPkg', folder) - - readJson(path.resolve(me, 'package.json'), function (er, d) { - function cb (er) { - return cb_(er, [[d && d._id, target, null, null]]) - } - if (er) return cb(er) - if (!d.name) { - er = new Error('Package must have a name field to be linked') - return cb(er) - } - if (npm.config.get('dry-run')) return resultPrinter(path.basename(me), me, target, cb) - var target = path.resolve(npm.globalDir, d.name) - symlink(me, target, false, true, function (er) { - if (er) return cb(er) - log.verbose('link', 'build target', target) - // also install missing dependencies. - npm.commands.install(me, [], function (er) { - if (er) return cb(er) - // build the global stuff. Don't run *any* scripts, because - // install command already will have done that. - build([target], true, build._noLC, true, function (er) { - if (er) return cb(er) - resultPrinter(path.basename(me), me, target, cb) - }) - }) - }) - }) -} - -function resultPrinter (pkg, src, dest, rp, cb) { - if (typeof cb !== 'function') { - cb = rp - rp = null - } - var where = dest - rp = (rp || '').trim() - src = (src || '').trim() - // XXX If --json is set, then look up the data from the package.json - if (npm.config.get('parseable')) { - return parseableOutput(dest, rp || src, cb) - } - if (rp === src) rp = null - log.clearProgress() - console.log(where + ' -> ' + src + (rp ? ' -> ' + rp : '')) - log.showProgress() - cb() -} - -function parseableOutput (dest, rp, cb) { - // XXX this should match ls --parseable and install --parseable - // look up the data from package.json, format it the same way. - // - // link is always effectively 'long', since it doesn't help much to - // *just* print the target folder. - // However, we don't actually ever read the version number, so - // the second field is always blank. - log.clearProgress() - console.log(dest + '::' + rp) - log.showProgress() - cb() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/logout.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/logout.js deleted file mode 100644 index a3287d42..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/logout.js +++ /dev/null @@ -1,43 +0,0 @@ -module.exports = logout - -var dezalgo = require('dezalgo') -var log = require('npmlog') - -var npm = require('./npm.js') -var mapToRegistry = require('./utils/map-to-registry.js') - -logout.usage = 'npm logout [--registry=] [--scope=<@scope>]' - -function afterLogout (normalized, cb) { - var scope = npm.config.get('scope') - - if (scope) npm.config.del(scope + ':registry') - - npm.config.clearCredentialsByURI(normalized) - npm.config.save('user', cb) -} - -function logout (args, cb) { - cb = dezalgo(cb) - - mapToRegistry('/', npm.config, function (err, uri, auth, normalized) { - if (err) return cb(err) - - if (auth.token) { - log.verbose('logout', 'clearing session token for', normalized) - npm.registry.logout(normalized, { auth: auth }, function (err) { - if (err) return cb(err) - - afterLogout(normalized, cb) - }) - } else if (auth.username || auth.password) { - log.verbose('logout', 'clearing user credentials for', normalized) - - afterLogout(normalized, cb) - } else { - cb(new Error( - 'Not logged in to', normalized + ',', "so can't log out." - )) - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/ls.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/ls.js deleted file mode 100644 index d2fe14fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/ls.js +++ /dev/null @@ -1,488 +0,0 @@ -// show the installed versions of packages -// -// --parseable creates output like this: -// ::: -// Flags are a :-separated list of zero or more indicators - -module.exports = exports = ls - -var path = require('path') -var url = require('url') -var readPackageTree = require('read-package-tree') -var log = require('npmlog') -var archy = require('archy') -var semver = require('semver') -var color = require('ansicolors') -var npa = require('npm-package-arg') -var iferr = require('iferr') -var npm = require('./npm.js') -var mutateIntoLogicalTree = require('./install/mutate-into-logical-tree.js') -var recalculateMetadata = require('./install/deps.js').recalculateMetadata -var packageId = require('./utils/package-id.js') -var usage = require('./utils/usage') - -ls.usage = usage( - 'ls', - 'npm ls [[<@scope>/] ...]' -) - -ls.completion = require('./utils/completion/installed-deep.js') - -function ls (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - var dir = path.resolve(npm.dir, '..') - readPackageTree(dir, andRecalculateMetadata(iferr(cb, function (physicalTree) { - lsFromTree(dir, physicalTree, args, silent, cb) - }))) -} - -function andRecalculateMetadata (next) { - return function (er, tree) { - recalculateMetadata(tree || {}, log, next) - } -} - -function inList (list, value) { - return list.indexOf(value) !== -1 -} - -var lsFromTree = ls.fromTree = function (dir, physicalTree, args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - // npm ls 'foo@~1.3' bar 'baz@<2' - if (!args) { - args = [] - } else { - args = args.map(function (a) { - var p = npa(a) - var name = p.name - // When version spec is missing, we'll skip using it when filtering. - // Otherwise, `semver.validRange` would return '*', which won't - // match prerelease versions. - var ver = (p.rawSpec && - (semver.validRange(p.rawSpec) || '')) - return [ name, ver, a ] - }) - } - - var data = mutateIntoLogicalTree.asReadInstalled(physicalTree) - - pruneNestedExtraneous(data) - filterByEnv(data) - var bfs = filterFound(bfsify(data), args) - var lite = getLite(bfs) - - if (silent) return cb(null, data, lite) - - var long = npm.config.get('long') - var json = npm.config.get('json') - var out - if (json) { - var seen = [] - var d = long ? bfs : lite - // the raw data can be circular - out = JSON.stringify(d, function (k, o) { - if (typeof o === 'object') { - if (inList(seen, o)) return '[Circular]' - seen.push(o) - } - return o - }, 2) - } else if (npm.config.get('parseable')) { - out = makeParseable(bfs, long, dir) - } else if (data) { - out = makeArchy(bfs, long, dir) - } - console.log(out) - - if (args.length && !data._found) process.exitCode = 1 - - var er - // if any errors were found, then complain and exit status 1 - if (lite.problems && lite.problems.length) { - er = lite.problems.join('\n') - } - cb(er, data, lite) -} - -function pruneNestedExtraneous (data, visited) { - visited = visited || [] - visited.push(data) - for (var i in data.dependencies) { - if (data.dependencies[i].extraneous) { - data.dependencies[i].dependencies = {} - } else if (visited.indexOf(data.dependencies[i]) === -1) { - pruneNestedExtraneous(data.dependencies[i], visited) - } - } -} - -function filterByEnv (data) { - var dev = npm.config.get('dev') || /^dev(elopment)?$/.test(npm.config.get('only')) - var production = npm.config.get('production') || /^prod(uction)?$/.test(npm.config.get('only')) - var dependencies = {} - var devKeys = Object.keys(data.devDependencies || []) - var prodKeys = Object.keys(data._dependencies || []) - Object.keys(data.dependencies).forEach(function (name) { - if (!dev && inList(devKeys, name) && data.dependencies[name].missing) { - return - } - - if ((dev && inList(devKeys, name)) || // only --dev - (production && inList(prodKeys, name)) || // only --production - (!dev && !production)) { // no --production|--dev|--only=xxx - dependencies[name] = data.dependencies[name] - } - }) - data.dependencies = dependencies -} - -function alphasort (a, b) { - a = a.toLowerCase() - b = b.toLowerCase() - return a > b ? 1 - : a < b ? -1 : 0 -} - -function isCruft (data) { - return data.extraneous && data.error && data.error.code === 'ENOTDIR' -} - -function getLite (data, noname, depth) { - var lite = {} - - if (isCruft(data)) return lite - - var maxDepth = npm.config.get('depth') - - if (typeof depth === 'undefined') depth = 0 - if (!noname && data.name) lite.name = data.name - if (data.version) lite.version = data.version - if (data.extraneous) { - lite.extraneous = true - lite.problems = lite.problems || [] - lite.problems.push('extraneous: ' + packageId(data) + ' ' + (data.path || '')) - } - - if (data.error && data.path !== path.resolve(npm.globalDir, '..') && - (data.error.code !== 'ENOENT' || noname)) { - lite.invalid = true - lite.problems = lite.problems || [] - var message = data.error.message - lite.problems.push('error in ' + data.path + ': ' + message) - } - - if (data._from) { - lite.from = data._from - } - - if (data._resolved) { - lite.resolved = data._resolved - } - - if (data.invalid) { - lite.invalid = true - lite.problems = lite.problems || [] - lite.problems.push('invalid: ' + - packageId(data) + - ' ' + (data.path || '')) - } - - if (data.peerInvalid) { - lite.peerInvalid = true - lite.problems = lite.problems || [] - lite.problems.push('peer dep not met: ' + - packageId(data) + - ' ' + (data.path || '')) - } - - var deps = (data.dependencies && Object.keys(data.dependencies)) || [] - if (deps.length) { - lite.dependencies = deps.map(function (d) { - var dep = data.dependencies[d] - if (dep.missing && !dep.optional) { - lite.problems = lite.problems || [] - var p - if (data.depth > maxDepth) { - p = 'max depth reached: ' - } else { - p = 'missing: ' - } - p += d + '@' + dep.requiredBy + - ', required by ' + - packageId(data) - lite.problems.push(p) - return [d, { required: dep.requiredBy, missing: true }] - } else if (dep.peerMissing) { - lite.problems = lite.problems || [] - dep.peerMissing.forEach(function (missing) { - var pdm = 'peer dep missing: ' + - missing.requires + - ', required by ' + - missing.requiredBy - lite.problems.push(pdm) - }) - return [d, { required: dep, peerMissing: true }] - } else if (npm.config.get('json')) { - if (depth === maxDepth) delete dep.dependencies - return [d, getLite(dep, true, depth + 1)] - } - return [d, getLite(dep, true)] - }).reduce(function (deps, d) { - if (d[1].problems) { - lite.problems = lite.problems || [] - lite.problems.push.apply(lite.problems, d[1].problems) - } - deps[d[0]] = d[1] - return deps - }, {}) - } - return lite -} - -function bfsify (root) { - // walk over the data, and turn it from this: - // +-- a - // | `-- b - // | `-- a (truncated) - // `--b (truncated) - // into this: - // +-- a - // `-- b - // which looks nicer - var queue = [root] - var seen = [root] - - while (queue.length) { - var current = queue.shift() - var deps = current.dependencies = current.dependencies || {} - Object.keys(deps).forEach(function (d) { - var dep = deps[d] - if (dep.missing) return - if (inList(seen, dep)) { - if (npm.config.get('parseable') || !npm.config.get('long')) { - delete deps[d] - return - } else { - dep = deps[d] = Object.create(dep) - dep.dependencies = {} - } - } - queue.push(dep) - seen.push(dep) - }) - } - - return root -} - -function filterFound (root, args) { - if (!args.length) return root - var deps = root.dependencies - if (deps) { - Object.keys(deps).forEach(function (depName) { - var dep = filterFound(deps[depName], args) - if (dep.peerMissing) return - - // see if this one itself matches - var found = false - for (var ii = 0; !found && ii < args.length; ii++) { - var argName = args[ii][0] - var argVersion = args[ii][1] - var argRaw = args[ii][2] - if (depName === argName && argVersion) { - found = semver.satisfies(dep.version, argVersion, true) - } else if (depName === argName) { - // If version is missing from arg, just do a name match. - found = true - } else if (dep.path === argRaw) { - found = true - } - } - // included explicitly - if (found) dep._found = true - // included because a child was included - if (dep._found && !root._found) root._found = 1 - // not included - if (!dep._found) delete deps[depName] - }) - } - if (!root._found) root._found = false - return root -} - -function makeArchy (data, long, dir) { - var out = makeArchy_(data, long, dir, 0) - return archy(out, '', { unicode: npm.config.get('unicode') }) -} - -function makeArchy_ (data, long, dir, depth, parent, d) { - if (data.missing) { - if (depth - 1 <= npm.config.get('depth')) { - // just missing - var unmet = 'UNMET ' + (data.optional ? 'OPTIONAL ' : '') + 'DEPENDENCY' - if (npm.color) { - if (data.optional) { - unmet = color.bgBlack(color.yellow(unmet)) - } else { - unmet = color.bgBlack(color.red(unmet)) - } - } - data = unmet + ' ' + d + '@' + data.requiredBy - } else { - data = d + '@' + data.requiredBy - } - return data - } - - var out = {} - // the top level is a bit special. - out.label = data._id || '' - if (data._found === true && data._id) { - if (npm.color) { - out.label = color.bgBlack(color.yellow(out.label.trim())) + ' ' - } else { - out.label = out.label.trim() + ' ' - } - } - if (data.link) out.label += ' -> ' + data.link - - if (data.invalid) { - if (data.realName !== data.name) out.label += ' (' + data.realName + ')' - var invalid = 'invalid' - if (npm.color) invalid = color.bgBlack(color.red(invalid)) - out.label += ' ' + invalid - } - - if (data.peerInvalid) { - var peerInvalid = 'peer invalid' - if (npm.color) peerInvalid = color.bgBlack(color.red(peerInvalid)) - out.label += ' ' + peerInvalid - } - - if (data.peerMissing) { - var peerMissing = 'UNMET PEER DEPENDENCY' - if (npm.color) peerMissing = color.bgBlack(color.red(peerMissing)) - out.label = peerMissing + ' ' + out.label - } - - if (data.extraneous && data.path !== dir) { - var extraneous = 'extraneous' - if (npm.color) extraneous = color.bgBlack(color.green(extraneous)) - out.label += ' ' + extraneous - } - - if (data.error && depth) { - var message = data.error.message - if (message.indexOf('\n')) message = message.slice(0, message.indexOf('\n')) - var error = 'error: ' + message - if (npm.color) error = color.bgRed(color.brightWhite(error)) - out.label += ' ' + error - } - - // add giturl to name@version - if (data._resolved) { - try { - var type = npa(data._resolved).type - var isGit = type === 'git' || type === 'hosted' - if (isGit) { - out.label += ' (' + data._resolved + ')' - } - } catch (ex) { - // npa threw an exception then it ain't git so whatev - } - } - - if (long) { - if (dir === data.path) out.label += '\n' + dir - out.label += '\n' + getExtras(data, dir) - } else if (dir === data.path) { - if (out.label) out.label += ' ' - out.label += dir - } - - // now all the children. - out.nodes = [] - if (depth <= npm.config.get('depth')) { - out.nodes = Object.keys(data.dependencies || {}) - .sort(alphasort).filter(function (d) { - return !isCruft(data.dependencies[d]) - }).map(function (d) { - return makeArchy_(data.dependencies[d], long, dir, depth + 1, data, d) - }) - } - - if (out.nodes.length === 0 && data.path === dir) { - out.nodes = ['(empty)'] - } - - return out -} - -function getExtras (data) { - var extras = [] - - if (data.description) extras.push(data.description) - if (data.repository) extras.push(data.repository.url) - if (data.homepage) extras.push(data.homepage) - if (data._from) { - var from = data._from - if (from.indexOf(data.name + '@') === 0) { - from = from.substr(data.name.length + 1) - } - var u = url.parse(from) - if (u.protocol) extras.push(from) - } - return extras.join('\n') -} - -function makeParseable (data, long, dir, depth, parent, d) { - depth = depth || 0 - if (depth > npm.config.get('depth')) return [ makeParseable_(data, long, dir, depth, parent, d) ] - return [ makeParseable_(data, long, dir, depth, parent, d) ] - .concat(Object.keys(data.dependencies || {}) - .sort(alphasort).map(function (d) { - return makeParseable(data.dependencies[d], long, dir, depth + 1, data, d) - })) - .filter(function (x) { return x }) - .join('\n') -} - -function makeParseable_ (data, long, dir, depth, parent, d) { - if (data.hasOwnProperty('_found') && data._found !== true) return '' - - if (data.missing) { - if (depth < npm.config.get('depth')) { - data = npm.config.get('long') - ? path.resolve(parent.path, 'node_modules', d) + - ':' + d + '@' + JSON.stringify(data.requiredBy) + ':INVALID:MISSING' - : '' - } else { - data = path.resolve(dir || '', 'node_modules', d || '') + - (npm.config.get('long') - ? ':' + d + '@' + JSON.stringify(data.requiredBy) + - ':' + // no realpath resolved - ':MAXDEPTH' - : '') - } - - return data - } - - if (!npm.config.get('long')) return data.path - - return data.path + - ':' + (data._id || '') + - ':' + (data.realPath !== data.path ? data.realPath : '') + - (data.extraneous ? ':EXTRANEOUS' : '') + - (data.error && data.path !== path.resolve(npm.globalDir, '..') ? ':ERROR' : '') + - (data.invalid ? ':INVALID' : '') + - (data.peerInvalid ? ':PEERINVALID' : '') + - (data.peerMissing ? ':PEERINVALID:MISSING' : '') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/npm.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/npm.js deleted file mode 100644 index 9d6cda38..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/npm.js +++ /dev/null @@ -1,402 +0,0 @@ -;(function () { - // windows: running 'npm blah' in this folder will invoke WSH, not node. - /*globals WScript*/ - if (typeof WScript !== 'undefined') { - WScript.echo( - 'npm does not work when run\n' + - 'with the Windows Scripting Host\n\n' + - '"cd" to a different directory,\n' + - 'or type "npm.cmd ",\n' + - 'or type "node npm ".' - ) - WScript.quit(1) - return - } - - var gfs = require('graceful-fs') - // Patch the global fs module here at the app level - var fs = gfs.gracefulify(require('fs')) - - var EventEmitter = require('events').EventEmitter - var npm = module.exports = new EventEmitter() - var npmconf = require('./config/core.js') - var log = require('npmlog') - - var path = require('path') - var abbrev = require('abbrev') - var which = require('which') - var CachingRegClient = require('./cache/caching-client.js') - var parseJSON = require('./utils/parse-json.js') - var aliases = require('./config/cmd-list').aliases - var cmdList = require('./config/cmd-list').cmdList - var plumbing = require('./config/cmd-list').plumbing - - npm.config = { - loaded: false, - get: function () { - throw new Error('npm.load() required') - }, - set: function () { - throw new Error('npm.load() required') - } - } - - npm.commands = {} - - npm.rollbacks = [] - - try { - // startup, ok to do this synchronously - var j = parseJSON(fs.readFileSync( - path.join(__dirname, '../package.json')) + '') - npm.version = j.version - } catch (ex) { - try { - log.info('error reading version', ex) - } catch (er) {} - npm.version = ex - } - - var commandCache = {} - var aliasNames = Object.keys(aliases) - - var littleGuys = [ 'isntall', 'verison' ] - var fullList = cmdList.concat(aliasNames).filter(function (c) { - return plumbing.indexOf(c) === -1 - }) - var abbrevs = abbrev(fullList) - - // we have our reasons - fullList = npm.fullList = fullList.filter(function (c) { - return littleGuys.indexOf(c) === -1 - }) - - Object.keys(abbrevs).concat(plumbing).forEach(function addCommand (c) { - Object.defineProperty(npm.commands, c, { get: function () { - if (!loaded) { - throw new Error( - 'Call npm.load(config, cb) before using this command.\n' + - 'See the README.md or cli.js for example usage.' - ) - } - var a = npm.deref(c) - if (c === 'la' || c === 'll') { - npm.config.set('long', true) - } - - npm.command = c - if (commandCache[a]) return commandCache[a] - - var cmd = require(path.join(__dirname, a + '.js')) - - commandCache[a] = function () { - var args = Array.prototype.slice.call(arguments, 0) - if (typeof args[args.length - 1] !== 'function') { - args.push(defaultCb) - } - if (args.length === 1) args.unshift([]) - - // Options are prefixed by a hyphen-minus (-, \u2d). - // Other dash-type chars look similar but are invalid. - Array(args[0]).forEach(function (arg) { - if (/^[\u2010-\u2015\u2212\uFE58\uFE63\uFF0D]/.test(arg)) { - log.error('arg', 'Argument starts with non-ascii dash, this is probably invalid:', arg) - } - }) - - npm.registry.version = npm.version - if (!npm.registry.refer) { - npm.registry.refer = [a].concat(args[0]).map(function (arg) { - // exclude anything that might be a URL, path, or private module - // Those things will always have a slash in them somewhere - if (arg && arg.match && arg.match(/\/|\\/)) { - return '[REDACTED]' - } else { - return arg - } - }).filter(function (arg) { - return arg && arg.match - }).join(' ') - } - - cmd.apply(npm, args) - } - - Object.keys(cmd).forEach(function (k) { - commandCache[a][k] = cmd[k] - }) - - return commandCache[a] - }, enumerable: fullList.indexOf(c) !== -1, configurable: true }) - - // make css-case commands callable via camelCase as well - if (c.match(/\-([a-z])/)) { - addCommand(c.replace(/\-([a-z])/g, function (a, b) { - return b.toUpperCase() - })) - } - }) - - function defaultCb (er, data) { - log.disableProgress() - if (er) console.error(er.stack || er.message) - else console.log(data) - } - - npm.deref = function (c) { - if (!c) return '' - if (c.match(/[A-Z]/)) { - c = c.replace(/([A-Z])/g, function (m) { - return '-' + m.toLowerCase() - }) - } - if (plumbing.indexOf(c) !== -1) return c - var a = abbrevs[c] - if (aliases[a]) a = aliases[a] - return a - } - - var loaded = false - var loading = false - var loadErr = null - var loadListeners = [] - - function loadCb (er) { - loadListeners.forEach(function (cb) { - process.nextTick(cb.bind(npm, er, npm)) - }) - loadListeners.length = 0 - } - - npm.load = function (cli, cb_) { - if (!cb_ && typeof cli === 'function') { - cb_ = cli - cli = {} - } - if (!cb_) cb_ = function () {} - if (!cli) cli = {} - loadListeners.push(cb_) - if (loaded || loadErr) return cb(loadErr) - if (loading) return - loading = true - var onload = true - - function cb (er) { - if (loadErr) return - loadErr = er - if (er) return cb_(er) - if (npm.config.get('force')) { - log.warn('using --force', 'I sure hope you know what you are doing.') - } - npm.config.loaded = true - loaded = true - loadCb(loadErr = er) - onload = onload && npm.config.get('onload-script') - if (onload) { - try { - require(onload) - } catch (err) { - log.warn('onload-script', 'failed to require onload script', onload) - log.warn('onload-script', err) - } - onload = false - } - } - - log.pause() - - load(npm, cli, cb) - } - - function load (npm, cli, cb) { - which(process.argv[0], function (er, node) { - if (!er && node.toUpperCase() !== process.execPath.toUpperCase()) { - log.verbose('node symlink', node) - process.execPath = node - process.installPrefix = path.resolve(node, '..', '..') - } - - // look up configs - var builtin = path.resolve(__dirname, '..', 'npmrc') - npmconf.load(cli, builtin, function (er, config) { - if (er === config) er = null - - npm.config = config - if (er) return cb(er) - - // if the 'project' config is not a filename, and we're - // not in global mode, then that means that it collided - // with either the default or effective userland config - if (!config.get('global') && - config.sources.project && - config.sources.project.type !== 'ini') { - log.verbose( - 'config', - 'Skipping project config: %s. (matches userconfig)', - config.localPrefix + '/.npmrc' - ) - } - - // Include npm-version and node-version in user-agent - var ua = config.get('user-agent') || '' - ua = ua.replace(/\{node-version\}/gi, process.version) - ua = ua.replace(/\{npm-version\}/gi, npm.version) - ua = ua.replace(/\{platform\}/gi, process.platform) - ua = ua.replace(/\{arch\}/gi, process.arch) - config.set('user-agent', ua) - - var color = config.get('color') - - log.level = config.get('loglevel') - log.heading = config.get('heading') || 'npm' - log.stream = config.get('logstream') - - switch (color) { - case 'always': - log.enableColor() - npm.color = true - break - case false: - log.disableColor() - npm.color = false - break - default: - var tty = require('tty') - if (process.stdout.isTTY) npm.color = true - else if (!tty.isatty) npm.color = true - else if (tty.isatty(1)) npm.color = true - else npm.color = false - break - } - - log.resume() - - if (config.get('progress')) { - log.enableProgress() - } else { - log.disableProgress() - } - - if (config.get('unicode')) { - log.enableUnicode() - } else { - log.disableUnicode() - } - - // at this point the configs are all set. - // go ahead and spin up the registry client. - npm.registry = new CachingRegClient(npm.config) - - var umask = npm.config.get('umask') - npm.modes = { - exec: parseInt('0777', 8) & (~umask), - file: parseInt('0666', 8) & (~umask), - umask: umask - } - - var gp = Object.getOwnPropertyDescriptor(config, 'globalPrefix') - Object.defineProperty(npm, 'globalPrefix', gp) - - var lp = Object.getOwnPropertyDescriptor(config, 'localPrefix') - Object.defineProperty(npm, 'localPrefix', lp) - - return cb(null, npm) - }) - }) - } - - Object.defineProperty(npm, 'prefix', - { - get: function () { - return npm.config.get('global') ? npm.globalPrefix : npm.localPrefix - }, - set: function (r) { - var k = npm.config.get('global') ? 'globalPrefix' : 'localPrefix' - npm[k] = r - return r - }, - enumerable: true - }) - - Object.defineProperty(npm, 'bin', - { - get: function () { - if (npm.config.get('global')) return npm.globalBin - return path.resolve(npm.root, '.bin') - }, - enumerable: true - }) - - Object.defineProperty(npm, 'globalBin', - { - get: function () { - var b = npm.globalPrefix - if (process.platform !== 'win32') b = path.resolve(b, 'bin') - return b - } - }) - - Object.defineProperty(npm, 'dir', - { - get: function () { - if (npm.config.get('global')) return npm.globalDir - return path.resolve(npm.prefix, 'node_modules') - }, - enumerable: true - }) - - Object.defineProperty(npm, 'globalDir', - { - get: function () { - return (process.platform !== 'win32') - ? path.resolve(npm.globalPrefix, 'lib', 'node_modules') - : path.resolve(npm.globalPrefix, 'node_modules') - }, - enumerable: true - }) - - Object.defineProperty(npm, 'root', - { get: function () { return npm.dir } }) - - Object.defineProperty(npm, 'cache', - { get: function () { return npm.config.get('cache') }, - set: function (r) { return npm.config.set('cache', r) }, - enumerable: true - }) - - var tmpFolder - var rand = require('crypto').randomBytes(4).toString('hex') - Object.defineProperty(npm, 'tmp', - { - get: function () { - if (!tmpFolder) tmpFolder = 'npm-' + process.pid + '-' + rand - return path.resolve(npm.config.get('tmp'), tmpFolder) - }, - enumerable: true - }) - - // the better to repl you with - Object.getOwnPropertyNames(npm.commands).forEach(function (n) { - if (npm.hasOwnProperty(n) || n === 'config') return - - Object.defineProperty(npm, n, { get: function () { - return function () { - var args = Array.prototype.slice.call(arguments, 0) - var cb = defaultCb - - if (args.length === 1 && Array.isArray(args[0])) { - args = args[0] - } - - if (typeof args[args.length - 1] === 'function') { - cb = args.pop() - } - npm.commands[n](args, cb) - } - }, enumerable: false, configurable: true }) - }) - - if (require.main === module) { - require('../bin/npm-cli.js') - } -})() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/outdated.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/outdated.js deleted file mode 100644 index 50bdb363..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/outdated.js +++ /dev/null @@ -1,429 +0,0 @@ -/* - -npm outdated [pkg] - -Does the following: - -1. check for a new version of pkg - -If no packages are specified, then run for all installed -packages. - ---parseable creates output like this: -::: - -*/ - -module.exports = outdated - -outdated.usage = 'npm outdated [[<@scope>/] ...]' - -outdated.completion = require('./utils/completion/installed-deep.js') - -var os = require('os') -var url = require('url') -var path = require('path') -var log = require('npmlog') -var readPackageTree = require('read-package-tree') -var readJson = require('read-package-json') -var asyncMap = require('slide').asyncMap -var color = require('ansicolors') -var styles = require('ansistyles') -var table = require('text-table') -var semver = require('semver') -var npa = require('npm-package-arg') -var mutateIntoLogicalTree = require('./install/mutate-into-logical-tree.js') -var cache = require('./cache.js') -var npm = require('./npm.js') -var long = npm.config.get('long') -var mapToRegistry = require('./utils/map-to-registry.js') -var isExtraneous = require('./install/is-extraneous.js') -var recalculateMetadata = require('./install/deps.js').recalculateMetadata -var moduleName = require('./utils/module-name.js') - -function uniqName (item) { - return item[0].path + '|' + item[1] + '|' + item[7] -} - -function uniq (list) { - var uniqed = [] - var seen = {} - list.forEach(function (item) { - var name = uniqName(item) - if (seen[name]) return - seen[name] = true - uniqed.push(item) - }) - return uniqed -} - -function andRecalculateMetadata (next) { - return function (er, tree) { - if (er) return next(er) - recalculateMetadata(tree, log, next) - } -} - -function outdated (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - var dir = path.resolve(npm.dir, '..') - - // default depth for `outdated` is 0 (cf. `ls`) - if (npm.config.get('depth') === Infinity) npm.config.set('depth', 0) - - readPackageTree(dir, andRecalculateMetadata(function (er, tree) { - mutateIntoLogicalTree(tree) - outdated_(args, '', tree, {}, 0, function (er, list) { - list = uniq(list || []).sort(function (aa, bb) { - return aa[0].path.localeCompare(bb[0].path) || - aa[1].localeCompare(bb[1]) - }) - if (er || silent || list.length === 0) return cb(er, list) - log.disableProgress() - if (npm.config.get('json')) { - console.log(makeJSON(list)) - } else if (npm.config.get('parseable')) { - console.log(makeParseable(list)) - } else { - var outList = list.map(makePretty) - var outHead = [ 'Package', - 'Current', - 'Wanted', - 'Latest', - 'Location' - ] - if (long) outHead.push('Package Type') - var outTable = [outHead].concat(outList) - - if (npm.color) { - outTable[0] = outTable[0].map(function (heading) { - return styles.underline(heading) - }) - } - - var tableOpts = { - align: ['l', 'r', 'r', 'r', 'l'], - stringLength: function (s) { return ansiTrim(s).length } - } - console.log(table(outTable, tableOpts)) - } - cb(null, list.map(function (item) { return [item[0].parent.path].concat(item.slice(1, 7)) })) - }) - })) -} - -// [[ dir, dep, has, want, latest, type ]] -function makePretty (p) { - var dep = p[0] - var depname = p[1] - var dir = dep.path - var has = p[2] - var want = p[3] - var latest = p[4] - var type = p[6] - var deppath = p[7] - - if (!npm.config.get('global')) { - dir = path.relative(process.cwd(), dir) - } - - var columns = [ depname, - has || 'MISSING', - want, - latest, - deppath - ] - if (long) columns[5] = type - - if (npm.color) { - columns[0] = color[has === want || want === 'linked' ? 'yellow' : 'red'](columns[0]) // dep - columns[2] = color.green(columns[2]) // want - columns[3] = color.magenta(columns[3]) // latest - columns[4] = color.brightBlack(columns[4]) // dir - if (long) columns[5] = color.brightBlack(columns[5]) // type - } - - return columns -} - -function ansiTrim (str) { - var r = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' + - '\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g') - return str.replace(r, '') -} - -function makeParseable (list) { - return list.map(function (p) { - var dep = p[0] - var depname = p[1] - var dir = dep.path - var has = p[2] - var want = p[3] - var latest = p[4] - var type = p[6] - - var out = [ - dir, - depname + '@' + want, - (has ? (depname + '@' + has) : 'MISSING'), - depname + '@' + latest - ] - if (long) out.push(type) - - return out.join(':') - }).join(os.EOL) -} - -function makeJSON (list) { - var out = {} - list.forEach(function (p) { - var dep = p[0] - var depname = p[1] - var dir = dep.path - var has = p[2] - var want = p[3] - var latest = p[4] - var type = p[6] - if (!npm.config.get('global')) { - dir = path.relative(process.cwd(), dir) - } - out[depname] = { current: has, - wanted: want, - latest: latest, - location: dir - } - if (long) out[depname].type = type - }) - return JSON.stringify(out, null, 2) -} - -function outdated_ (args, path, tree, parentHas, depth, cb) { - if (!tree.package) tree.package = {} - if (path && tree.package.name) path += ' > ' + tree.package.name - if (!path && tree.package.name) path = tree.package.name - if (depth > npm.config.get('depth')) { - return cb(null, []) - } - var types = {} - var pkg = tree.package - - var deps = tree.children.filter(function (child) { return !isExtraneous(child) }) || [] - - deps.forEach(function (dep) { - types[moduleName(dep)] = 'dependencies' - }) - - Object.keys(tree.missingDeps).forEach(function (name) { - deps.push({ - package: { name: name }, - path: tree.path, - parent: tree, - isMissing: true - }) - types[name] = 'dependencies' - }) - - // If we explicitly asked for dev deps OR we didn't ask for production deps - // AND we asked to save dev-deps OR we didn't ask to save anything that's NOT - // dev deps then… - // (All the save checking here is because this gets called from npm-update currently - // and that requires this logic around dev deps.) - // FIXME: Refactor npm update to not be in terms of outdated. - var dev = npm.config.get('dev') || /^dev(elopment)?$/.test(npm.config.get('also')) - var prod = npm.config.get('production') || /^prod(uction)?$/.test(npm.config.get('only')) - if ((dev || !prod) && - (npm.config.get('save-dev') || ( - !npm.config.get('save') && !npm.config.get('save-optional')))) { - Object.keys(tree.missingDevDeps).forEach(function (name) { - deps.push({ - package: { name: name }, - path: tree.path, - parent: tree, - isMissing: true - }) - if (!types[name]) { - types[name] = 'devDependencies' - } - }) - } - - if (npm.config.get('save-dev')) { - deps = deps.filter(function (dep) { return pkg.devDependencies[moduleName(dep)] }) - deps.forEach(function (dep) { - types[moduleName(dep)] = 'devDependencies' - }) - } else if (npm.config.get('save')) { - // remove optional dependencies from dependencies during --save. - deps = deps.filter(function (dep) { return !pkg.optionalDependencies[moduleName(dep)] }) - } else if (npm.config.get('save-optional')) { - deps = deps.filter(function (dep) { return pkg.optionalDependencies[moduleName(dep)] }) - deps.forEach(function (dep) { - types[moduleName(dep)] = 'optionalDependencies' - }) - } - var doUpdate = dev || ( - !prod && - !Object.keys(parentHas).length && - !npm.config.get('global') - ) - if (doUpdate) { - Object.keys(pkg.devDependencies).forEach(function (k) { - if (!(k in parentHas)) { - deps[k] = pkg.devDependencies[k] - types[k] = 'devDependencies' - } - }) - } - - var has = Object.create(parentHas) - tree.children.forEach(function (child) { - if (child.package.name && child.package.private) { - deps = deps.filter(function (dep) { return dep !== child }) - } - has[child.package.name] = { - version: child.package.version, - from: child.package._from - } - }) - - // now get what we should have, based on the dep. - // if has[dep] !== shouldHave[dep], then cb with the data - // otherwise dive into the folder - asyncMap(deps, function (dep, cb) { - var name = moduleName(dep) - var required = (tree.package.dependencies)[name] || - (tree.package.optionalDependencies)[name] || - (tree.package.devDependencies)[name] || - dep.package._requested && dep.package._requested.spec || - '*' - if (!long) return shouldUpdate(args, dep, name, has, required, depth, path, cb) - - shouldUpdate(args, dep, name, has, required, depth, path, cb, types[name]) - }, cb) -} - -function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, cb, type) { - // look up the most recent version. - // if that's what we already have, or if it's not on the args list, - // then dive into it. Otherwise, cb() with the data. - - // { version: , from: } - var curr = has[dep] - - function skip (er) { - // show user that no viable version can be found - if (er) return cb(er) - outdated_(args, - pkgpath, - tree, - has, - depth + 1, - cb) - } - - function doIt (wanted, latest) { - if (!long) { - return cb(null, [[tree, dep, curr && curr.version, wanted, latest, req, null, pkgpath]]) - } - cb(null, [[tree, dep, curr && curr.version, wanted, latest, req, type, pkgpath]]) - } - - if (args.length && args.indexOf(dep) === -1) return skip() - var parsed = npa(dep + '@' + req) - if (tree.isLink && (tree.parent !== null && tree.parent.parent === null)) { - return doIt('linked', 'linked') - } - if (parsed.type === 'git' || parsed.type === 'hosted') { - return doIt('git', 'git') - } - - // search for the latest package - mapToRegistry(dep, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, updateDeps) - }) - - function updateLocalDeps (latestRegistryVersion) { - readJson(path.resolve(parsed.spec, 'package.json'), function (er, localDependency) { - if (er) return cb() - - var wanted = localDependency.version - var latest = localDependency.version - - if (latestRegistryVersion) { - latest = latestRegistryVersion - if (semver.lt(wanted, latestRegistryVersion)) { - wanted = latestRegistryVersion - req = dep + '@' + latest - } - } - - if (curr.version !== wanted) { - doIt(wanted, latest) - } else { - skip() - } - }) - } - - function updateDeps (er, d) { - if (er) { - if (parsed.type !== 'local') return cb(er) - return updateLocalDeps() - } - - if (!d || !d['dist-tags'] || !d.versions) return cb() - var l = d.versions[d['dist-tags'].latest] - if (!l) return cb() - - var r = req - if (d['dist-tags'][req]) { - r = d['dist-tags'][req] - } - - if (semver.validRange(r, true)) { - // some kind of semver range. - // see if it's in the doc. - var vers = Object.keys(d.versions) - var v = semver.maxSatisfying(vers, r, true) - if (v) { - return onCacheAdd(null, d.versions[v]) - } - } - - // We didn't find the version in the doc. See if cache can find it. - cache.add(dep, req, null, false, onCacheAdd) - - function onCacheAdd (er, d) { - // if this fails, then it means we can't update this thing. - // it's probably a thing that isn't published. - if (er) { - if (er.code && er.code === 'ETARGET') { - // no viable version found - return skip(er) - } - return skip() - } - - // check that the url origin hasn't changed (#1727) and that - // there is no newer version available - var dFromUrl = d._from && url.parse(d._from).protocol - var cFromUrl = curr && curr.from && url.parse(curr.from).protocol - - if (!curr || - dFromUrl && cFromUrl && d._from !== curr.from || - d.version !== curr.version || - d.version !== l.version) { - if (parsed.type === 'local') return updateLocalDeps(l.version) - - doIt(d.version, l.version) - } else { - skip() - } - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/owner.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/owner.js deleted file mode 100644 index 2cc3eef3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/owner.js +++ /dev/null @@ -1,276 +0,0 @@ -module.exports = owner - -var npm = require('./npm.js') -var log = require('npmlog') -var mapToRegistry = require('./utils/map-to-registry.js') -var readLocalPkg = require('./utils/read-local-package.js') -var usage = require('./utils/usage') - -owner.usage = usage( - 'owner', - 'npm owner add [<@scope>/]' + - '\nnpm owner rm [<@scope>/]' + - '\nnpm owner ls [<@scope>/]' -) -owner.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv.length > 4) return cb() - if (argv.length <= 2) { - var subs = ['add', 'rm'] - if (opts.partialWord === 'l') subs.push('ls') - else subs.push('ls', 'list') - return cb(null, subs) - } - - npm.commands.whoami([], true, function (er, username) { - if (er) return cb() - - var un = encodeURIComponent(username) - var byUser, theUser - switch (argv[2]) { - case 'ls': - // FIXME: there used to be registry completion here, but it stopped - // making sense somewhere around 50,000 packages on the registry - return cb() - - case 'rm': - if (argv.length > 3) { - theUser = encodeURIComponent(argv[3]) - byUser = '-/by-user/' + theUser + '|' + un - return mapToRegistry(byUser, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - console.error(uri) - npm.registry.get(uri, { auth: auth }, function (er, d) { - if (er) return cb(er) - // return the intersection - return cb(null, d[theUser].filter(function (p) { - // kludge for server adminery. - return un === 'isaacs' || d[un].indexOf(p) === -1 - })) - }) - }) - } - // else fallthrough - /*eslint no-fallthrough:0*/ - case 'add': - if (argv.length > 3) { - theUser = encodeURIComponent(argv[3]) - byUser = '-/by-user/' + theUser + '|' + un - return mapToRegistry(byUser, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - console.error(uri) - npm.registry.get(uri, { auth: auth }, function (er, d) { - console.error(uri, er || d) - // return mine that they're not already on. - if (er) return cb(er) - var mine = d[un] || [] - var theirs = d[theUser] || [] - return cb(null, mine.filter(function (p) { - return theirs.indexOf(p) === -1 - })) - }) - }) - } - // just list all users who aren't me. - return mapToRegistry('-/users', npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, list) { - if (er) return cb() - return cb(null, Object.keys(list).filter(function (n) { - return n !== un - })) - }) - }) - - default: - return cb() - } - }) -} - -function owner (args, cb) { - var action = args.shift() - switch (action) { - case 'ls': case 'list': return ls(args[0], cb) - case 'add': return add(args[0], args[1], cb) - case 'rm': case 'remove': return rm(args[0], args[1], cb) - default: return unknown(action, cb) - } -} - -function ls (pkg, cb) { - if (!pkg) { - return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(owner.usage) - ls(pkg, cb) - }) - } - - mapToRegistry(pkg, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, data) { - var msg = '' - if (er) { - log.error('owner ls', "Couldn't get owner data", pkg) - return cb(er) - } - var owners = data.maintainers - if (!owners || !owners.length) { - msg = 'admin party!' - } else { - msg = owners.map(function (o) { - return o.name + ' <' + o.email + '>' - }).join('\n') - } - console.log(msg) - cb(er, owners) - }) - }) -} - -function add (user, pkg, cb) { - if (!user) return cb(owner.usage) - if (!pkg) { - return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(new Error(owner.usage)) - add(user, pkg, cb) - }) - } - - log.verbose('owner add', '%s to %s', user, pkg) - mutate(pkg, user, function (u, owners) { - if (!owners) owners = [] - for (var i = 0, l = owners.length; i < l; i++) { - var o = owners[i] - if (o.name === u.name) { - log.info( - 'owner add', - 'Already a package owner: ' + o.name + ' <' + o.email + '>' - ) - return false - } - } - owners.push(u) - return owners - }, cb) -} - -function rm (user, pkg, cb) { - if (!pkg) { - return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(new Error(owner.usage)) - rm(user, pkg, cb) - }) - } - - log.verbose('owner rm', '%s from %s', user, pkg) - mutate(pkg, user, function (u, owners) { - var found = false - var m = owners.filter(function (o) { - var match = (o.name === user) - found = found || match - return !match - }) - - if (!found) { - log.info('owner rm', 'Not a package owner: ' + user) - return false - } - - if (!m.length) { - return new Error( - 'Cannot remove all owners of a package. Add someone else first.' - ) - } - - return m - }, cb) -} - -function mutate (pkg, user, mutation, cb) { - if (user) { - var byUser = '-/user/org.couchdb.user:' + user - mapToRegistry(byUser, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, mutate_) - }) - } else { - mutate_(null, null) - } - - function mutate_ (er, u) { - if (!er && user && (!u || u.error)) { - er = new Error( - "Couldn't get user data for " + user + ': ' + JSON.stringify(u) - ) - } - - if (er) { - log.error('owner mutate', 'Error getting user data for %s', user) - return cb(er) - } - - if (u) u = { name: u.name, email: u.email } - mapToRegistry(pkg, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, data) { - if (er) { - log.error('owner mutate', 'Error getting package data for %s', pkg) - return cb(er) - } - - // save the number of maintainers before mutation so that we can figure - // out if maintainers were added or removed - var beforeMutation = data.maintainers.length - - var m = mutation(u, data.maintainers) - if (!m) return cb() // handled - if (m instanceof Error) return cb(m) // error - - data = { - _id: data._id, - _rev: data._rev, - maintainers: m - } - var dataPath = pkg.replace('/', '%2f') + '/-rev/' + data._rev - mapToRegistry(dataPath, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - method: 'PUT', - body: data, - auth: auth - } - npm.registry.request(uri, params, function (er, data) { - if (!er && data.error) { - er = new Error('Failed to update package metadata: ' + JSON.stringify(data)) - } - - if (er) { - log.error('owner mutate', 'Failed to update package metadata') - } else if (m.length > beforeMutation) { - console.log('+ %s (%s)', user, pkg) - } else if (m.length < beforeMutation) { - console.log('- %s (%s)', user, pkg) - } - - cb(er, data) - }) - }) - }) - }) - } -} - -function unknown (action, cb) { - cb('Usage: \n' + owner.usage) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/pack.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/pack.js deleted file mode 100644 index c98f5f20..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/pack.js +++ /dev/null @@ -1,72 +0,0 @@ -// npm pack -// Packs the specified package into a .tgz file, which can then -// be installed. - -module.exports = pack - -var install = require('./install.js') -var cache = require('./cache.js') -var fs = require('graceful-fs') -var chain = require('slide').chain -var path = require('path') -var cwd = process.cwd() -var writeStreamAtomic = require('fs-write-stream-atomic') -var cachedPackageRoot = require('./cache/cached-package-root.js') - -pack.usage = 'npm pack [[<@scope>/]...]' - -// if it can be installed, it can be packed. -pack.completion = install.completion - -function pack (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - if (args.length === 0) args = ['.'] - - chain( - args.map(function (arg) { return function (cb) { pack_(arg, cb) } }), - function (er, files) { - if (er || silent) return cb(er, files) - printFiles(files, cb) - } - ) -} - -function printFiles (files, cb) { - files = files.map(function (file) { - return path.relative(cwd, file) - }) - console.log(files.join('\n')) - cb() -} - -// add to cache, then cp to the cwd -function pack_ (pkg, cb) { - cache.add(pkg, null, null, false, function (er, data) { - if (er) return cb(er) - - // scoped packages get special treatment - var name = data.name - if (name[0] === '@') name = name.substr(1).replace(/\//g, '-') - var fname = name + '-' + data.version + '.tgz' - - var cached = path.join(cachedPackageRoot(data), 'package.tgz') - var from = fs.createReadStream(cached) - var to = writeStreamAtomic(fname) - var errState = null - - from.on('error', cb_) - to.on('error', cb_) - to.on('close', cb_) - from.pipe(to) - - function cb_ (er) { - if (errState) return - if (er) return cb(errState = er) - cb(null, fname) - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/ping.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/ping.js deleted file mode 100644 index 23b18bfb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/ping.js +++ /dev/null @@ -1,20 +0,0 @@ -var npm = require('./npm.js') - -module.exports = ping - -ping.usage = 'npm ping\nping registry' - -function ping (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - var registry = npm.config.get('registry') - if (!registry) return cb(new Error('no default registry set')) - var auth = npm.config.getCredentialsByURI(registry) - - npm.registry.ping(registry, {auth: auth}, function (er, pong) { - if (!silent) console.log(JSON.stringify(pong)) - cb(er, er ? null : pong) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/prefix.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/prefix.js deleted file mode 100644 index 42f61103..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/prefix.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = prefix - -var npm = require('./npm.js') - -prefix.usage = 'npm prefix [-g]' - -function prefix (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - if (!silent) console.log(npm.prefix) - process.nextTick(cb.bind(this, null, npm.prefix)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/prune.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/prune.js deleted file mode 100644 index 46373742..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/prune.js +++ /dev/null @@ -1,54 +0,0 @@ -// prune extraneous packages. - -module.exports = prune - -prune.usage = 'npm prune [[<@scope>/]...] [--production]' - -var readInstalled = require('read-installed') -var npm = require('./npm.js') -var path = require('path') -var readJson = require('read-package-json') -var log = require('npmlog') - -prune.completion = require('./utils/completion/installed-deep.js') - -function prune (args, cb) { - // check if is a valid package.json file - var jsonFile = path.resolve(npm.dir, '..', 'package.json') - readJson(jsonFile, log.warn, function (er) { - if (er) return cb(er) - next() - }) - - function next () { - var opt = { - depth: npm.config.get('depth'), - dev: !npm.config.get('production') || npm.config.get('dev') - } - readInstalled(npm.prefix, opt, function (er, data) { - if (er) return cb(er) - prune_(args, data, cb) - }) - } -} - -function prune_ (args, data, cb) { - npm.commands.unbuild(prunables(args, data, []), cb) -} - -function prunables (args, data, seen) { - var deps = data.dependencies || {} - return Object.keys(deps).map(function (d) { - if (typeof deps[d] !== 'object' || seen.indexOf(deps[d]) !== -1) return null - seen.push(deps[d]) - if (deps[d].extraneous && (args.length === 0 || args.indexOf(d) !== -1)) { - var extra = deps[d] - delete deps[d] - return extra.path - } - return prunables(args, deps[d], seen) - }).filter(function (d) { return d !== null }) - .reduce(function FLAT (l, r) { - return l.concat(Array.isArray(r) ? r.reduce(FLAT, []) : r) - }, []) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/publish.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/publish.js deleted file mode 100644 index 45de4f24..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/publish.js +++ /dev/null @@ -1,155 +0,0 @@ - -module.exports = publish - -var npm = require('./npm.js') -var log = require('npmlog') -var path = require('path') -var readJson = require('read-package-json') -var lifecycle = require('./utils/lifecycle.js') -var chain = require('slide').chain -var mapToRegistry = require('./utils/map-to-registry.js') -var cachedPackageRoot = require('./cache/cached-package-root.js') -var createReadStream = require('graceful-fs').createReadStream -var npa = require('npm-package-arg') -var semver = require('semver') -var getPublishConfig = require('./utils/get-publish-config.js') - -publish.usage = 'npm publish [|] [--tag ] [--access ]' + - "\n\nPublishes '.' if no argument supplied" + - '\n\nSets tag `latest` if no --tag specified' - -publish.completion = function (opts, cb) { - // publish can complete to a folder with a package.json - // or a tarball, or a tarball url. - // for now, not yet implemented. - return cb() -} - -function publish (args, isRetry, cb) { - if (typeof cb !== 'function') { - cb = isRetry - isRetry = false - } - if (args.length === 0) args = ['.'] - if (args.length !== 1) return cb(publish.usage) - - log.verbose('publish', args) - - var t = npm.config.get('tag').trim() - if (semver.validRange(t)) { - var er = new Error('Tag name must not be a valid SemVer range: ' + t) - return cb(er) - } - - var arg = args[0] - // if it's a local folder, then run the prepublish there, first. - readJson(path.resolve(arg, 'package.json'), function (er, data) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - - if (data) { - if (!data.name) return cb(new Error('No name provided')) - if (!data.version) return cb(new Error('No version provided')) - } - - // Error is OK. Could be publishing a URL or tarball, however, that means - // that we will not have automatically run the prepublish script, since - // that gets run when adding a folder to the cache. - if (er) return cacheAddPublish(arg, false, isRetry, cb) - else cacheAddPublish(arg, true, isRetry, cb) - }) -} - -// didPre in this case means that we already ran the prepublish script, -// and that the 'dir' is an actual directory, and not something silly -// like a tarball or name@version thing. -// That means that we can run publish/postpublish in the dir, rather than -// in the cache dir. -function cacheAddPublish (dir, didPre, isRetry, cb) { - npm.commands.cache.add(dir, null, null, false, function (er, data) { - if (er) return cb(er) - log.silly('publish', data) - var cachedir = path.resolve(cachedPackageRoot(data), 'package') - chain( - [ - !didPre && [lifecycle, data, 'prepublish', cachedir], - [publish_, dir, data, isRetry, cachedir], - [lifecycle, data, 'publish', didPre ? dir : cachedir], - [lifecycle, data, 'postpublish', didPre ? dir : cachedir] - ], - cb - ) - }) -} - -function publish_ (arg, data, isRetry, cachedir, cb) { - if (!data) return cb(new Error('no package.json file found')) - - var mappedConfig = getPublishConfig( - data.publishConfig, - npm.config, - npm.registry - ) - var config = mappedConfig.config - var registry = mappedConfig.client - - data._npmVersion = npm.version - data._nodeVersion = process.versions.node - - delete data.modules - if (data.private) { - return cb(new Error( - 'This package has been marked as private\n' + - "Remove the 'private' field from the package.json to publish it." - )) - } - - mapToRegistry(data.name, config, function (er, registryURI, auth, registryBase) { - if (er) return cb(er) - - var tarballPath = cachedir + '.tgz' - - // we just want the base registry URL in this case - log.verbose('publish', 'registryBase', registryBase) - log.silly('publish', 'uploading', tarballPath) - - data._npmUser = { - name: auth.username, - email: auth.email - } - - var params = { - metadata: data, - body: createReadStream(tarballPath), - auth: auth - } - - // registry-frontdoor cares about the access level, which is only - // configurable for scoped packages - if (config.get('access')) { - if (!npa(data.name).scope && config.get('access') === 'restricted') { - return cb(new Error("Can't restrict access to unscoped packages.")) - } - - params.access = config.get('access') - } - - log.showProgress('publish:' + data._id) - registry.publish(registryBase, params, function (er) { - if (er && er.code === 'EPUBLISHCONFLICT' && - npm.config.get('force') && !isRetry) { - log.warn('publish', 'Forced publish over ' + data._id) - return npm.commands.unpublish([data._id], function (er) { - // ignore errors. Use the force. Reach out with your feelings. - // but if it fails again, then report the first error. - publish([arg], er || true, cb) - }) - } - // report the unpublish error if this was a retry and unpublish failed - if (er && isRetry && isRetry !== true) return cb(isRetry) - if (er) return cb(er) - log.clearProgress() - console.log('+ ' + data._id) - cb() - }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/rebuild.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/rebuild.js deleted file mode 100644 index 29492c27..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/rebuild.js +++ /dev/null @@ -1,79 +0,0 @@ - -module.exports = rebuild - -var readInstalled = require('read-installed') -var semver = require('semver') -var log = require('npmlog') -var npm = require('./npm.js') -var npa = require('npm-package-arg') -var usage = require('./utils/usage') - -rebuild.usage = usage( - 'rebuild', - 'npm rebuild [[<@scope>/]...]' -) - -rebuild.completion = require('./utils/completion/installed-deep.js') - -function rebuild (args, cb) { - var opt = { depth: npm.config.get('depth'), dev: true } - readInstalled(npm.prefix, opt, function (er, data) { - log.info('readInstalled', typeof data) - if (er) return cb(er) - var set = filter(data, args) - var folders = Object.keys(set).filter(function (f) { - return f !== npm.prefix - }) - if (!folders.length) return cb() - log.silly('rebuild set', folders) - cleanBuild(folders, set, cb) - }) -} - -function cleanBuild (folders, set, cb) { - npm.commands.build(folders, function (er) { - if (er) return cb(er) - log.clearProgress() - console.log(folders.map(function (f) { - return set[f] + ' ' + f - }).join('\n')) - log.showProgress() - cb() - }) -} - -function filter (data, args, set, seen) { - if (!set) set = {} - if (!seen) seen = {} - if (set.hasOwnProperty(data.path)) return set - if (seen.hasOwnProperty(data.path)) return set - seen[data.path] = true - var pass - if (!args.length) pass = true // rebuild everything - else if (data.name && data._id) { - for (var i = 0, l = args.length; i < l; i++) { - var arg = args[i] - var nv = npa(arg) - var n = nv.name - var v = nv.rawSpec - if (n !== data.name) continue - if (!semver.satisfies(data.version, v, true)) continue - pass = true - break - } - } - if (pass && data._id) { - log.verbose('rebuild', 'path, id', [data.path, data._id]) - set[data.path] = data._id - } - // need to also dive through kids, always. - // since this isn't an install these won't get auto-built unless - // they're not dependencies. - Object.keys(data.dependencies || {}).forEach(function (d) { - // return - var dep = data.dependencies[d] - if (typeof dep === 'string') return - filter(dep, args, set, seen) - }) - return set -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/repo.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/repo.js deleted file mode 100644 index caaf422c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/repo.js +++ /dev/null @@ -1,51 +0,0 @@ -module.exports = repo - -repo.usage = 'npm repo []' - -var npm = require('./npm.js') -var opener = require('opener') -var hostedGitInfo = require('hosted-git-info') -var url_ = require('url') -var fetchPackageMetadata = require('./fetch-package-metadata.js') - -repo.completion = function (opts, cb) { - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - cb() -} - -function repo (args, cb) { - var n = args.length ? args[0] : '.' - fetchPackageMetadata(n, '.', function (er, d) { - if (er) return cb(er) - getUrlAndOpen(d, cb) - }) -} - -function getUrlAndOpen (d, cb) { - var r = d.repository - if (!r) return cb(new Error('no repository')) - // XXX remove this when npm@v1.3.10 from node 0.10 is deprecated - // from https://github.com/npm/npm-www/issues/418 - var info = hostedGitInfo.fromUrl(r.url) - var url = info ? info.browse() : unknownHostedUrl(r.url) - - if (!url) return cb(new Error('no repository: could not get url')) - - opener(url, { command: npm.config.get('browser') }, cb) -} - -function unknownHostedUrl (url) { - try { - var idx = url.indexOf('@') - if (idx !== -1) { - url = url.slice(idx + 1).replace(/:([^\d]+)/, '/$1') - } - url = url_.parse(url) - var protocol = url.protocol === 'https:' - ? 'https:' - : 'http:' - return protocol + '//' + (url.host || '') + - url.path.replace(/\.git$/, '') - } catch (e) {} -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/restart.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/restart.js deleted file mode 100644 index 601249fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/restart.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./utils/lifecycle.js').cmd('restart') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/root.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/root.js deleted file mode 100644 index 958361d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/root.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = root - -var npm = require('./npm.js') - -root.usage = 'npm root [-g]' - -function root (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - if (!silent) console.log(npm.dir) - process.nextTick(cb.bind(this, null, npm.dir)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/run-script.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/run-script.js deleted file mode 100644 index f9c6872a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/run-script.js +++ /dev/null @@ -1,180 +0,0 @@ -module.exports = runScript - -var lifecycle = require('./utils/lifecycle.js') -var npm = require('./npm.js') -var path = require('path') -var readJson = require('read-package-json') -var log = require('npmlog') -var chain = require('slide').chain -var usage = require('./utils/usage') - -runScript.usage = usage( - 'run-script', - 'npm run-script [-- ...]' -) - -runScript.completion = function (opts, cb) { - // see if there's already a package specified. - var argv = opts.conf.argv.remain - - if (argv.length >= 4) return cb() - - if (argv.length === 3) { - // either specified a script locally, in which case, done, - // or a package, in which case, complete against its scripts - var json = path.join(npm.localPrefix, 'package.json') - return readJson(json, function (er, d) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - if (er) d = {} - var scripts = Object.keys(d.scripts || {}) - console.error('local scripts', scripts) - if (scripts.indexOf(argv[2]) !== -1) return cb() - // ok, try to find out which package it was, then - var pref = npm.config.get('global') ? npm.config.get('prefix') - : npm.localPrefix - var pkgDir = path.resolve(pref, 'node_modules', argv[2], 'package.json') - readJson(pkgDir, function (er, d) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - if (er) d = {} - var scripts = Object.keys(d.scripts || {}) - return cb(null, scripts) - }) - }) - } - - readJson(path.join(npm.localPrefix, 'package.json'), function (er, d) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - d = d || {} - cb(null, Object.keys(d.scripts || {})) - }) -} - -function runScript (args, cb) { - if (!args.length) return list(cb) - - var pkgdir = npm.localPrefix - var cmd = args.shift() - - readJson(path.resolve(pkgdir, 'package.json'), function (er, d) { - if (er) return cb(er) - run(d, pkgdir, cmd, args, cb) - }) -} - -function list (cb) { - var json = path.join(npm.localPrefix, 'package.json') - var cmdList = [ - 'publish', - 'install', - 'uninstall', - 'test', - 'stop', - 'start', - 'restart', - 'version' - ].reduce(function (l, p) { - return l.concat(['pre' + p, p, 'post' + p]) - }, []) - return readJson(json, function (er, d) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - if (er) d = {} - var allScripts = Object.keys(d.scripts || {}) - var scripts = [] - var runScripts = [] - allScripts.forEach(function (script) { - if (cmdList.indexOf(script) !== -1) scripts.push(script) - else runScripts.push(script) - }) - - if (log.level === 'silent') { - return cb(null, allScripts) - } - - if (npm.config.get('json')) { - console.log(JSON.stringify(d.scripts || {}, null, 2)) - return cb(null, allScripts) - } - - if (npm.config.get('parseable')) { - allScripts.forEach(function (script) { - console.log(script + ':' + d.scripts[script]) - }) - return cb(null, allScripts) - } - - var s = '\n ' - var prefix = ' ' - if (scripts.length) { - console.log('Lifecycle scripts included in %s:', d.name) - } - scripts.forEach(function (script) { - console.log(prefix + script + s + d.scripts[script]) - }) - if (!scripts.length && runScripts.length) { - console.log('Scripts available in %s via `npm run-script`:', d.name) - } else if (runScripts.length) { - console.log('\navailable via `npm run-script`:') - } - runScripts.forEach(function (script) { - console.log(prefix + script + s + d.scripts[script]) - }) - return cb(null, allScripts) - }) -} - -function run (pkg, wd, cmd, args, cb) { - if (!pkg.scripts) pkg.scripts = {} - - var cmds - if (cmd === 'restart' && !pkg.scripts.restart) { - cmds = [ - 'prestop', 'stop', 'poststop', - 'restart', - 'prestart', 'start', 'poststart' - ] - } else { - if (!pkg.scripts[cmd]) { - if (cmd === 'test') { - pkg.scripts.test = 'echo \'Error: no test specified\'' - } else if (cmd === 'env') { - if (process.platform === 'win32') { - log.verbose('run-script using default platform env: SET (Windows)') - pkg.scripts[cmd] = 'SET' - } else { - log.verbose('run-script using default platform env: env (Unix)') - pkg.scripts[cmd] = 'env' - } - } else if (npm.config.get('if-present')) { - return cb(null) - } else { - return cb(new Error('missing script: ' + cmd)) - } - } - cmds = [cmd] - } - - if (!cmd.match(/^(pre|post)/)) { - cmds = ['pre' + cmd].concat(cmds).concat('post' + cmd) - } - - log.verbose('run-script', cmds) - chain(cmds.map(function (c) { - // pass cli arguments after -- to script. - if (pkg.scripts[c] && c === cmd) { - pkg.scripts[c] = pkg.scripts[c] + joinArgs(args) - } - - // when running scripts explicitly, assume that they're trusted. - return [lifecycle, pkg, c, wd, true] - }), cb) -} - -// join arguments after '--' and pass them to script, -// handle special characters such as ', ", ' '. -function joinArgs (args) { - var joinedArgs = '' - args.forEach(function (arg) { - joinedArgs += ' "' + arg.replace(/"/g, '\\"') + '"' - }) - return joinedArgs -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/search.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/search.js deleted file mode 100644 index d71102ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/search.js +++ /dev/null @@ -1,287 +0,0 @@ - -module.exports = exports = search - -var npm = require('./npm.js') -var columnify = require('columnify') -var updateIndex = require('./cache/update-index.js') -var usage = require('./utils/usage') - -search.usage = usage( - 'search', - 'npm search [--long] [search terms ...]' -) - -search.completion = function (opts, cb) { - var compl = {} - var partial = opts.partialWord - var ipartial = partial.toLowerCase() - var plen = partial.length - - // get the batch of data that matches so far. - // this is an example of using npm.commands.search programmatically - // to fetch data that has been filtered by a set of arguments. - search(opts.conf.argv.remain.slice(2), true, function (er, data) { - if (er) return cb(er) - Object.keys(data).forEach(function (name) { - data[name].words.split(' ').forEach(function (w) { - if (w.toLowerCase().indexOf(ipartial) === 0) { - compl[partial + w.substr(plen)] = true - } - }) - }) - cb(null, Object.keys(compl)) - }) -} - -function search (args, silent, staleness, cb) { - if (typeof cb !== 'function') { - cb = staleness - staleness = 600 - } - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - var searchopts = npm.config.get('searchopts') - var searchexclude = npm.config.get('searchexclude') - - if (typeof searchopts !== 'string') searchopts = '' - searchopts = searchopts.split(/\s+/) - var opts = searchopts.concat(args).map(function (s) { - return s.toLowerCase() - }).filter(function (s) { return s }) - - if (opts.length === 0) { - return cb(new Error('search must be called with arguments')) - } - - if (typeof searchexclude === 'string') { - searchexclude = searchexclude.split(/\s+/) - } else { - searchexclude = [] - } - searchexclude = searchexclude.map(function (s) { - return s.toLowerCase() - }) - - getFilteredData(staleness, opts, searchexclude, function (er, data) { - // now data is the list of data that we want to show. - // prettify and print it, and then provide the raw - // data to the cb. - if (er || silent) return cb(er, data) - console.log(prettify(data, args)) - cb(null, data) - }) -} - -function getFilteredData (staleness, args, notArgs, cb) { - updateIndex(staleness, function (er, data) { - if (er) return cb(er) - return cb(null, filter(data, args, notArgs)) - }) -} - -function filter (data, args, notArgs) { - // data={:{package data}} - return Object.keys(data).map(function (d) { - return data[d] - }).filter(function (d) { - return typeof d === 'object' - }).map(stripData).map(getWords).filter(function (data) { - return filterWords(data, args, notArgs) - }).reduce(function (l, r) { - l[r.name] = r - return l - }, {}) -} - -function stripData (data) { - return { - name: data.name, - description: npm.config.get('description') ? data.description : '', - maintainers: (data.maintainers || []).map(function (m) { - return '=' + m.name - }), - url: !Object.keys(data.versions || {}).length ? data.url : null, - keywords: data.keywords || [], - version: Object.keys(data.versions || {})[0] || [], - time: data.time && - data.time.modified && - (new Date(data.time.modified).toISOString() // remove time - .split('T').join(' ') - .replace(/:[0-9]{2}\.[0-9]{3}Z$/, '')) - .slice(0, -5) || - 'prehistoric' - } -} - -function getWords (data) { - data.words = [ data.name ] - .concat(data.description) - .concat(data.maintainers) - .concat(data.url && ('<' + data.url + '>')) - .concat(data.keywords) - .map(function (f) { return f && f.trim && f.trim() }) - .filter(function (f) { return f }) - .join(' ') - .toLowerCase() - return data -} - -function filterWords (data, args, notArgs) { - var words = data.words - for (var i = 0, l = args.length; i < l; i++) { - if (!match(words, args[i])) return false - } - for (i = 0, l = notArgs.length; i < l; i++) { - if (match(words, notArgs[i])) return false - } - return true -} - -function match (words, arg) { - if (arg.charAt(0) === '/') { - arg = arg.replace(/\/$/, '') - arg = new RegExp(arg.substr(1, arg.length - 1)) - return words.match(arg) - } - return words.indexOf(arg) !== -1 -} - -function prettify (data, args) { - var searchsort = (npm.config.get('searchsort') || 'NAME').toLowerCase() - var sortField = searchsort.replace(/^\-+/, '') - var searchRev = searchsort.charAt(0) === '-' - var truncate = !npm.config.get('long') - - if (Object.keys(data).length === 0) { - return 'No match found for ' + (args.map(JSON.stringify).join(' ')) - } - - var lines = Object.keys(data).map(function (d) { - // strip keyname - return data[d] - }).map(function (dat) { - dat.author = dat.maintainers - delete dat.maintainers - dat.date = dat.time - delete dat.time - return dat - }).map(function (dat) { - // split keywords on whitespace or , - if (typeof dat.keywords === 'string') { - dat.keywords = dat.keywords.split(/[,\s]+/) - } - if (Array.isArray(dat.keywords)) { - dat.keywords = dat.keywords.join(' ') - } - - // split author on whitespace or , - if (typeof dat.author === 'string') { - dat.author = dat.author.split(/[,\s]+/) - } - if (Array.isArray(dat.author)) { - dat.author = dat.author.join(' ') - } - return dat - }) - - lines.sort(function (a, b) { - var aa = a[sortField].toLowerCase() - var bb = b[sortField].toLowerCase() - return aa === bb ? 0 - : aa < bb ? -1 : 1 - }) - - if (searchRev) lines.reverse() - - var columns = npm.config.get('description') - ? ['name', 'description', 'author', 'date', 'version', 'keywords'] - : ['name', 'author', 'date', 'version', 'keywords'] - - var output = columnify( - lines, - { - include: columns, - truncate: truncate, - config: { - name: { maxWidth: 40, truncate: false, truncateMarker: '' }, - description: { maxWidth: 60 }, - author: { maxWidth: 20 }, - date: { maxWidth: 11 }, - version: { maxWidth: 11 }, - keywords: { maxWidth: Infinity } - } - } - ) - output = trimToMaxWidth(output) - output = highlightSearchTerms(output, args) - - return output -} - -var colors = [31, 33, 32, 36, 34, 35] -var cl = colors.length - -function addColorMarker (str, arg, i) { - var m = i % cl + 1 - var markStart = String.fromCharCode(m) - var markEnd = String.fromCharCode(0) - - if (arg.charAt(0) === '/') { - return str.replace( - new RegExp(arg.substr(1, arg.length - 2), 'gi'), - function (bit) { return markStart + bit + markEnd } - ) - } - - // just a normal string, do the split/map thing - var pieces = str.toLowerCase().split(arg.toLowerCase()) - var p = 0 - - return pieces.map(function (piece) { - piece = str.substr(p, piece.length) - var mark = markStart + - str.substr(p + piece.length, arg.length) + - markEnd - p += piece.length + arg.length - return piece + mark - }).join('') -} - -function colorize (line) { - for (var i = 0; i < cl; i++) { - var m = i + 1 - var color = npm.color ? '\u001B[' + colors[i] + 'm' : '' - line = line.split(String.fromCharCode(m)).join(color) - } - var uncolor = npm.color ? '\u001B[0m' : '' - return line.split('\u0000').join(uncolor) -} - -function getMaxWidth () { - var cols - try { - var tty = require('tty') - var stdout = process.stdout - cols = !tty.isatty(stdout.fd) ? Infinity : process.stdout.getWindowSize()[0] - cols = (cols === 0) ? Infinity : cols - } catch (ex) { cols = Infinity } - return cols -} - -function trimToMaxWidth (str) { - var maxWidth = getMaxWidth() - return str.split('\n').map(function (line) { - return line.slice(0, maxWidth) - }).join('\n') -} - -function highlightSearchTerms (str, terms) { - terms.forEach(function (arg, i) { - str = addColorMarker(str, arg, i) - }) - - return colorize(str).trim() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/set.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/set.js deleted file mode 100644 index b5e7376f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/set.js +++ /dev/null @@ -1,13 +0,0 @@ - -module.exports = set - -set.usage = 'npm set (See `npm config`)' - -var npm = require('./npm.js') - -set.completion = npm.commands.config.completion - -function set (args, cb) { - if (!args.length) return cb(set.usage) - npm.commands.config(['set'].concat(args), cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/shrinkwrap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/shrinkwrap.js deleted file mode 100644 index 9a6d8e76..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/shrinkwrap.js +++ /dev/null @@ -1,130 +0,0 @@ -// emit JSON describing versions of all packages currently installed (for later -// use with shrinkwrap install) - -module.exports = exports = shrinkwrap - -var path = require('path') -var log = require('npmlog') -var writeFileAtomic = require('write-file-atomic') -var iferr = require('iferr') -var readPackageTree = require('read-package-tree') -var validate = require('aproba') -var npm = require('./npm.js') -var recalculateMetadata = require('./install/deps.js').recalculateMetadata -var validatePeerDeps = require('./install/deps.js').validatePeerDeps -var isExtraneous = require('./install/is-extraneous.js') -var isOnlyDev = require('./install/is-dev.js').isOnlyDev -var packageId = require('./utils/package-id.js') -var moduleName = require('./utils/module-name.js') - -shrinkwrap.usage = 'npm shrinkwrap' - -function shrinkwrap (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - if (args.length) { - log.warn('shrinkwrap', "doesn't take positional args") - } - - var dir = path.resolve(npm.dir, '..') - npm.config.set('production', true) - readPackageTree(dir, andRecalculateMetadata(iferr(cb, function (tree) { - var pkginfo = treeToShrinkwrap(tree, !!npm.config.get('dev') || /^dev(elopment)?$/.test(npm.config.get('also'))) - shrinkwrap_(pkginfo, silent, cb) - }))) -} - -function andRecalculateMetadata (next) { - validate('F', arguments) - return function (er, tree) { - validate('EO', arguments) - if (er) return next(er) - recalculateMetadata(tree, log, next) - } -} - -function treeToShrinkwrap (tree, dev) { - validate('OB', arguments) - var pkginfo = {} - if (tree.package.name) pkginfo.name = tree.package.name - if (tree.package.version) pkginfo.version = tree.package.version - var problems = [] - if (tree.children.length) { - shrinkwrapDeps(dev, problems, pkginfo.dependencies = {}, tree) - } - if (problems.length) pkginfo.problems = problems - return pkginfo -} - -function shrinkwrapDeps (dev, problems, deps, tree, seen) { - validate('BAOO', [dev, problems, deps, tree]) - if (!seen) seen = {} - if (seen[tree.path]) return - seen[tree.path] = true - Object.keys(tree.missingDeps).forEach(function (name) { - var invalid = tree.children.filter(function (dep) { return moduleName(dep) === name })[0] - if (invalid) { - problems.push('invalid: have ' + invalid.package._id + ' (expected: ' + tree.missingDeps[name] + ') ' + invalid.path) - } else if (!tree.package.optionalDependencies || !tree.package.optionalDependencies[name]) { - var topname = packageId(tree) - problems.push('missing: ' + name + '@' + tree.package.dependencies[name] + - (topname ? ', required by ' + topname : '')) - } - }) - tree.children.sort(function (aa, bb) { return moduleName(aa).localeCompare(moduleName(bb)) }).forEach(function (child) { - if (!dev && isOnlyDev(child)) { - log.warn('shrinkwrap', 'Excluding devDependency: %s', packageId(child), child.parent.package.dependencies) - return - } - var pkginfo = deps[moduleName(child)] = {} - pkginfo.version = child.package.version - pkginfo.from = child.package._from - pkginfo.resolved = child.package._resolved - if (isExtraneous(child)) { - problems.push('extraneous: ' + child.package._id + ' ' + child.path) - } - validatePeerDeps(child, function (tree, pkgname, version) { - problems.push('peer invalid: ' + pkgname + '@' + version + - ', required by ' + child.package._id) - }) - if (child.children.length) { - shrinkwrapDeps(dev, problems, pkginfo.dependencies = {}, child, seen) - } - }) -} - -function shrinkwrap_ (pkginfo, silent, cb) { - if (pkginfo.problems) { - return cb(new Error('Problems were encountered\n' + - 'Please correct and try again.\n' + - pkginfo.problems.join('\n'))) - } - - save(pkginfo, silent, cb) -} - -function save (pkginfo, silent, cb) { - // copy the keys over in a well defined order - // because javascript objects serialize arbitrarily - var swdata - try { - swdata = JSON.stringify(pkginfo, null, 2) + '\n' - } catch (er) { - log.error('shrinkwrap', 'Error converting package info to json') - return cb(er) - } - - var file = path.resolve(npm.prefix, 'npm-shrinkwrap.json') - - writeFileAtomic(file, swdata, function (er) { - if (er) return cb(er) - if (silent) return cb(null, pkginfo) - log.clearProgress() - console.log('wrote npm-shrinkwrap.json') - log.showProgress() - cb(null, pkginfo) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/star.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/star.js deleted file mode 100644 index ce141688..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/star.js +++ /dev/null @@ -1,44 +0,0 @@ -module.exports = star - -var npm = require('./npm.js') -var log = require('npmlog') -var asyncMap = require('slide').asyncMap -var mapToRegistry = require('./utils/map-to-registry.js') -var usage = require('./utils/usage') - -star.usage = usage( - 'star', - 'npm star [...]\n' + - 'npm unstar [...]' -) - -star.completion = function (opts, cb) { - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - cb() -} - -function star (args, cb) { - if (!args.length) return cb(star.usage) - var s = npm.config.get('unicode') ? '\u2605 ' : '(*)' - var u = npm.config.get('unicode') ? '\u2606 ' : '( )' - var using = !(npm.command.match(/^un/)) - if (!using) s = u - asyncMap(args, function (pkg, cb) { - mapToRegistry(pkg, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - starred: using, - auth: auth - } - npm.registry.star(uri, params, function (er, data, raw, req) { - if (!er) { - console.log(s + ' ' + pkg) - log.verbose('star', data) - } - cb(er, data, raw, req) - }) - }) - }, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/stars.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/stars.js deleted file mode 100644 index 4ad8f02e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/stars.js +++ /dev/null @@ -1,46 +0,0 @@ -module.exports = stars - -stars.usage = 'npm stars []' - -var npm = require('./npm.js') -var log = require('npmlog') -var mapToRegistry = require('./utils/map-to-registry.js') - -function stars (args, cb) { - npm.commands.whoami([], true, function (er, username) { - var name = args.length === 1 ? args[0] : username - - if (er) { - if (er.code === 'ENEEDAUTH' && !name) { - var needAuth = new Error("'npm stars' on your own user account requires auth") - needAuth.code = 'ENEEDAUTH' - return cb(needAuth) - } - - if (er.code !== 'ENEEDAUTH') return cb(er) - } - - mapToRegistry('', npm.config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - username: name, - auth: auth - } - npm.registry.stars(uri, params, showstars) - }) - }) - - function showstars (er, data) { - if (er) return cb(er) - - if (data.rows.length === 0) { - log.warn('stars', 'user has not starred any packages.') - } else { - data.rows.forEach(function (a) { - console.log(a.value) - }) - } - cb() - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/start.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/start.js deleted file mode 100644 index 85d61e78..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/start.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./utils/lifecycle.js').cmd('start') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/stop.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/stop.js deleted file mode 100644 index e4d02ff2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/stop.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./utils/lifecycle.js').cmd('stop') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/substack.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/substack.js deleted file mode 100644 index c39a5dcc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/substack.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = substack -var npm = require('./npm.js') - -var isms = [ - '\u001b[32mbeep \u001b[35mboop\u001b[m', - 'Replace your configs with services', - 'SEPARATE ALL THE CONCERNS!', - 'MODULE ALL THE THINGS!', - '\\o/', - 'but first, burritos', - 'full time mad scientist here', - 'c/,,\\' -] - -function substack (args, cb) { - var i = Math.floor(Math.random() * isms.length) - console.log(isms[i]) - var c = args.shift() - if (c) npm.commands[c](args, cb) - else cb() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/tag.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/tag.js deleted file mode 100644 index 01db4d8e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/tag.js +++ /dev/null @@ -1,42 +0,0 @@ -// turns out tagging isn't very complicated -// all the smarts are in the couch. -module.exports = tag -tag.usage = '[DEPRECATED] npm tag @ []' + - '\nSee `dist-tag`' - -tag.completion = require('./unpublish.js').completion - -var npm = require('./npm.js') -var mapToRegistry = require('./utils/map-to-registry.js') -var npa = require('npm-package-arg') -var semver = require('semver') -var log = require('npmlog') - -function tag (args, cb) { - var thing = npa(args.shift() || '') - var project = thing.name - var version = thing.rawSpec - var t = args.shift() || npm.config.get('tag') - - t = t.trim() - - if (!project || !version || !t) return cb('Usage:\n' + tag.usage) - - if (semver.validRange(t)) { - var er = new Error('Tag name must not be a valid SemVer range: ' + t) - return cb(er) - } - - log.warn('tag', 'This command is deprecated. Use `npm dist-tag` instead.') - - mapToRegistry(project, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - version: version, - tag: t, - auth: auth - } - npm.registry.tag(uri, params, cb) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/team.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/team.js deleted file mode 100644 index 324d8df5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/team.js +++ /dev/null @@ -1,54 +0,0 @@ -var mapToRegistry = require('./utils/map-to-registry.js') -var npm = require('./npm') - -module.exports = team - -team.subcommands = ['create', 'destroy', 'add', 'rm', 'ls', 'edit'] - -team.usage = - 'npm team create \n' + - 'npm team destroy \n' + - 'npm team add \n' + - 'npm team rm \n' + - 'npm team ls |\n' + - 'npm team edit ' - -team.completion = function (opts, cb) { - var argv = opts.conf.argv.remain - if (argv.length === 2) { - return cb(null, team.subcommands) - } - switch (argv[2]) { - case 'ls': - case 'create': - case 'destroy': - case 'add': - case 'rm': - case 'edit': - return cb(null, []) - default: - return cb(new Error(argv[2] + ' not recognized')) - } -} - -function team (args, cb) { - // Entities are in the format : - var cmd = args.shift() - var entity = (args.shift() || '').split(':') - return mapToRegistry('/', npm.config, function (err, uri, auth) { - if (err) { return cb(err) } - try { - return npm.registry.team(cmd, uri, { - auth: auth, - scope: entity[0], - team: entity[1], - user: args.shift() - }, function (err, data) { - !err && data && console.log(JSON.stringify(data, undefined, 2)) - cb(err, data) - }) - } catch (e) { - cb(e.message + '\n\nUsage:\n' + team.usage) - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/test.js deleted file mode 100644 index cbc75821..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/test.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = test - -var testCmd = require('./utils/lifecycle.js').cmd('test') - -function test (args, cb) { - testCmd(args, function (er) { - if (!er) return cb() - if (er.code === 'ELIFECYCLE') { - return cb('Test failed. See above for more details.') - } - return cb(er) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/unbuild.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/unbuild.js deleted file mode 100644 index f5efb1ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/unbuild.js +++ /dev/null @@ -1,131 +0,0 @@ -module.exports = unbuild -module.exports.rmStuff = rmStuff -unbuild.usage = 'npm unbuild \n(this is plumbing)' - -var readJson = require('read-package-json') -var gentlyRm = require('./utils/gently-rm.js') -var npm = require('./npm.js') -var path = require('path') -var isInside = require('path-is-inside') -var lifecycle = require('./utils/lifecycle.js') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var log = require('npmlog') -var build = require('./build.js') - -// args is a list of folders. -// remove any bins/etc, and then delete the folder. -function unbuild (args, silent, cb) { - if (typeof silent === 'function') { - cb = silent - silent = false - } - asyncMap(args, unbuild_(silent), cb) -} - -function unbuild_ (silent) { - return function (folder, cb_) { - function cb (er) { - cb_(er, path.relative(npm.root, folder)) - } - folder = path.resolve(folder) - var base = isInside(folder, npm.prefix) ? npm.prefix : folder - delete build._didBuild[folder] - log.verbose('unbuild', folder.substr(npm.prefix.length + 1)) - readJson(path.resolve(folder, 'package.json'), function (er, pkg) { - // if no json, then just trash it, but no scripts or whatever. - if (er) return gentlyRm(folder, false, base, cb) - chain( - [ - [lifecycle, pkg, 'preuninstall', folder, false, true], - [lifecycle, pkg, 'uninstall', folder, false, true], - !silent && function (cb) { - log.clearProgress() - console.log('unbuild ' + pkg._id) - log.showProgress() - cb() - }, - [rmStuff, pkg, folder], - [lifecycle, pkg, 'postuninstall', folder, false, true], - [gentlyRm, folder, false, base] - ], - cb - ) - }) - } -} - -function rmStuff (pkg, folder, cb) { - // if it's global, and folder is in {prefix}/node_modules, - // then bins are in {prefix}/bin - // otherwise, then bins are in folder/../.bin - var parent = pkg.name[0] === '@' ? path.dirname(path.dirname(folder)) : path.dirname(folder) - var gnm = npm.dir - var top = gnm === parent - - log.verbose('unbuild rmStuff', pkg._id, 'from', gnm) - if (!top) log.verbose('unbuild rmStuff', 'in', parent) - asyncMap([rmBins, rmMans], function (fn, cb) { - fn(pkg, folder, parent, top, cb) - }, cb) -} - -function rmBins (pkg, folder, parent, top, cb) { - if (!pkg.bin) return cb() - var binRoot = top ? npm.bin : path.resolve(parent, '.bin') - asyncMap(Object.keys(pkg.bin), function (b, cb) { - if (process.platform === 'win32') { - chain([ [gentlyRm, path.resolve(binRoot, b) + '.cmd', true, folder], - [gentlyRm, path.resolve(binRoot, b), true, folder] ], cb) - } else { - gentlyRm(path.resolve(binRoot, b), true, folder, cb) - } - }, gentlyRmBinRoot) - - function gentlyRmBinRoot (err) { - if (err || top) return cb(err) - return gentlyRm(binRoot, true, parent, cb) - } -} - -function rmMans (pkg, folder, parent, top, cb) { - if (!pkg.man || - !top || - process.platform === 'win32' || - !npm.config.get('global')) { - return cb() - } - var manRoot = path.resolve(npm.config.get('prefix'), 'share', 'man') - log.verbose('rmMans', 'man files are', pkg.man, 'in', manRoot) - asyncMap(pkg.man, function (man, cb) { - if (Array.isArray(man)) { - man.forEach(rmMan) - } else { - rmMan(man) - } - - function rmMan (man) { - log.silly('rmMan', 'preparing to remove', man) - var parseMan = man.match(/(.*\.([0-9]+)(\.gz)?)$/) - if (!parseMan) { - log.error( - 'rmMan', man, 'is not a valid name for a man file.', - 'Man files must end with a number, ' + - 'and optionally a .gz suffix if they are compressed.' - ) - return cb() - } - - var stem = parseMan[1] - var sxn = parseMan[2] - var gz = parseMan[3] || '' - var bn = path.basename(stem) - var manDest = path.join( - manRoot, - 'man' + sxn, - (bn.indexOf(pkg.name) === 0 ? bn : pkg.name + '-' + bn) + '.' + sxn + gz - ) - gentlyRm(manDest, true, cb) - } - }, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/uninstall.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/uninstall.js deleted file mode 100644 index 9a05e669..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/uninstall.js +++ /dev/null @@ -1,76 +0,0 @@ -'use strict' -// remove a package. - -module.exports = uninstall -module.exports.Uninstaller = Uninstaller - -var util = require('util') -var path = require('path') -var validate = require('aproba') -var chain = require('slide').chain -var readJson = require('read-package-json') -var npm = require('./npm.js') -var Installer = require('./install.js').Installer -var getSaveType = require('./install/save.js').getSaveType -var removeDeps = require('./install/deps.js').removeDeps -var loadExtraneous = require('./install/deps.js').loadExtraneous -var log = require('npmlog') -var usage = require('./utils/usage') - -uninstall.usage = usage( - 'uninstall', - 'npm uninstall [<@scope>/][@]... [--save|--save-dev|--save-optional]' -) - -uninstall.completion = require('./utils/completion/installed-shallow.js') - -function uninstall (args, cb) { - validate('AF', arguments) - // the /path/to/node_modules/.. - var dryrun = !!npm.config.get('dry-run') - - if (args.length === 1 && args[0] === '.') args = [] - args = args.filter(function (a) { - return path.resolve(a) !== where - }) - - var where = npm.config.get('global') || !args.length - ? path.resolve(npm.globalDir, '..') - : npm.prefix - - if (args.length) { - new Uninstaller(where, dryrun, args).run(cb) - } else { - // remove this package from the global space, if it's installed there - readJson(path.resolve(npm.localPrefix, 'package.json'), function (er, pkg) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - if (er) return cb(uninstall.usage) - new Uninstaller(where, dryrun, [pkg.name]).run(cb) - }) - } -} - -function Uninstaller (where, dryrun, args) { - validate('SBA', arguments) - Installer.call(this, where, dryrun, args) -} -util.inherits(Uninstaller, Installer) - -Uninstaller.prototype.loadArgMetadata = function (next) { - this.args = this.args.map(function (arg) { return {name: arg} }) - next() -} - -Uninstaller.prototype.loadAllDepsIntoIdealTree = function (cb) { - validate('F', arguments) - log.silly('uninstall', 'loadAllDepsIntoIdealtree') - var saveDeps = getSaveType(this.args) - - var cg = this.progress.loadAllDepsIntoIdealTree - var steps = [] - - steps.push( - [removeDeps, this.args, this.idealTree, saveDeps, cg.newGroup('removeDeps')], - [loadExtraneous, this.idealTree, cg.newGroup('loadExtraneous')]) - chain(steps, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/unpublish.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/unpublish.js deleted file mode 100644 index 63f87b82..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/unpublish.js +++ /dev/null @@ -1,117 +0,0 @@ - -module.exports = unpublish - -var log = require('npmlog') -var npm = require('./npm.js') -var readJson = require('read-package-json') -var path = require('path') -var mapToRegistry = require('./utils/map-to-registry.js') -var npa = require('npm-package-arg') -var getPublishConfig = require('./utils/get-publish-config.js') - -unpublish.usage = 'npm unpublish [<@scope>/][@]' - -unpublish.completion = function (opts, cb) { - if (opts.conf.argv.remain.length >= 3) return cb() - npm.commands.whoami([], true, function (er, username) { - if (er) return cb() - - var un = encodeURIComponent(username) - if (!un) return cb() - var byUser = '-/by-user/' + un - mapToRegistry(byUser, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, pkgs) { - // do a bit of filtering at this point, so that we don't need - // to fetch versions for more than one thing, but also don't - // accidentally a whole project. - pkgs = pkgs[un] - if (!pkgs || !pkgs.length) return cb() - var pp = npa(opts.partialWord).name - pkgs = pkgs.filter(function (p) { - return p.indexOf(pp) === 0 - }) - if (pkgs.length > 1) return cb(null, pkgs) - mapToRegistry(pkgs[0], npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, d) { - if (er) return cb(er) - var vers = Object.keys(d.versions) - if (!vers.length) return cb(null, pkgs) - return cb(null, vers.map(function (v) { - return pkgs[0] + '@' + v - })) - }) - }) - }) - }) - }) -} - -function unpublish (args, cb) { - if (args.length > 1) return cb(unpublish.usage) - - var thing = args.length ? npa(args[0]) : {} - var project = thing.name - var version = thing.rawSpec - - log.silly('unpublish', 'args[0]', args[0]) - log.silly('unpublish', 'thing', thing) - if (!version && !npm.config.get('force')) { - return cb( - 'Refusing to delete entire project.\n' + - 'Run with --force to do this.\n' + - unpublish.usage - ) - } - - if (!project || path.resolve(project) === npm.localPrefix) { - // if there's a package.json in the current folder, then - // read the package name and version out of that. - var cwdJson = path.join(npm.localPrefix, 'package.json') - return readJson(cwdJson, function (er, data) { - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - if (er) return cb('Usage:\n' + unpublish.usage) - log.verbose('unpublish', data) - gotProject(data.name, data.version, data.publishConfig, cb) - }) - } - return gotProject(project, version, cb) -} - -function gotProject (project, version, publishConfig, cb_) { - if (typeof cb_ !== 'function') { - cb_ = publishConfig - publishConfig = null - } - - function cb (er) { - if (er) return cb_(er) - console.log('- ' + project + (version ? '@' + version : '')) - cb_() - } - - var mappedConfig = getPublishConfig(publishConfig, npm.config, npm.registry) - var config = mappedConfig.config - var registry = mappedConfig.client - - // remove from the cache first - npm.commands.cache(['clean', project, version], function (er) { - if (er) { - log.error('unpublish', 'Failed to clean cache') - return cb(er) - } - - mapToRegistry(project, config, function (er, uri, auth) { - if (er) return cb(er) - - var params = { - version: version, - auth: auth - } - registry.unpublish(uri, params, cb) - }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/update.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/update.js deleted file mode 100644 index 2c1d1e82..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/update.js +++ /dev/null @@ -1,64 +0,0 @@ -module.exports = update - -var url = require('url') -var log = require('npmlog') -var chain = require('slide').chain -var npm = require('./npm.js') -var Installer = require('./install.js').Installer -var usage = require('./utils/usage') - -update.usage = usage( - 'update', - 'npm update [-g] [...]' -) - -update.completion = npm.commands.outdated.completion - -function update (args, cb) { - var dryrun = false - if (npm.config.get('dry-run')) dryrun = true - - npm.commands.outdated(args, true, function (er, rawOutdated) { - if (er) return cb(er) - var outdated = rawOutdated.map(function (ww) { - return { - dep: ww[0], - depname: ww[1], - current: ww[2], - wanted: ww[3], - latest: ww[4], - req: ww[5], - what: ww[1] + '@' + ww[3] - } - }) - - var wanted = outdated.filter(function (ww) { - if (ww.current === ww.wanted && ww.wanted !== ww.latest) { - log.verbose( - 'outdated', - 'not updating', ww.depname, - "because it's currently at the maximum version that matches its specified semver range" - ) - } - return ww.current !== ww.wanted && ww.latest !== 'linked' - }) - if (wanted.length === 0) return cb() - - log.info('outdated', 'updating', wanted) - var toInstall = {} - wanted.forEach(function (ww) { - // use the initial installation method (repo, tar, git) for updating - if (url.parse(ww.req).protocol) ww.what = ww.req - - var where = ww.dep.parent && ww.dep.parent.path || ww.dep.path - if (toInstall[where]) { - toInstall[where].push(ww.what) - } else { - toInstall[where] = [ww.what] - } - }) - chain(Object.keys(toInstall).map(function (where) { - return [new Installer(where, dryrun, toInstall[where]), 'run'] - }), cb) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/child-path.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/child-path.js deleted file mode 100644 index 4594f432..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/child-path.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict' -var path = require('path') -var validate = require('aproba') -var moduleName = require('../utils/module-name.js') - -module.exports = childPath -function childPath (parentPath, child) { - validate('SO', arguments) - return path.join(parentPath, 'node_modules', moduleName(child)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion.sh deleted file mode 100755 index 25bef2c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -###-begin-npm-completion-### -# -# npm command completion script -# -# Installation: npm completion >> ~/.bashrc (or ~/.zshrc) -# Or, maybe: npm completion > /usr/local/etc/bash_completion.d/npm -# - -if type complete &>/dev/null; then - _npm_completion () { - local words cword - if type _get_comp_words_by_ref &>/dev/null; then - _get_comp_words_by_ref -n = -n @ -w words -i cword - else - cword="$COMP_CWORD" - words=("${COMP_WORDS[@]}") - fi - - local si="$IFS" - IFS=$'\n' COMPREPLY=($(COMP_CWORD="$cword" \ - COMP_LINE="$COMP_LINE" \ - COMP_POINT="$COMP_POINT" \ - npm completion -- "${words[@]}" \ - 2>/dev/null)) || return $? - IFS="$si" - } - complete -o default -F _npm_completion npm -elif type compdef &>/dev/null; then - _npm_completion() { - local si=$IFS - compadd -- $(COMP_CWORD=$((CURRENT-1)) \ - COMP_LINE=$BUFFER \ - COMP_POINT=0 \ - npm completion -- "${words[@]}" \ - 2>/dev/null) - IFS=$si - } - compdef _npm_completion npm -elif type compctl &>/dev/null; then - _npm_completion () { - local cword line point words si - read -Ac words - read -cn cword - let cword-=1 - read -l line - read -ln point - si="$IFS" - IFS=$'\n' reply=($(COMP_CWORD="$cword" \ - COMP_LINE="$line" \ - COMP_POINT="$point" \ - npm completion -- "${words[@]}" \ - 2>/dev/null)) || return $? - IFS="$si" - } - compctl -K _npm_completion npm -fi -###-end-npm-completion-### diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion/file-completion.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion/file-completion.js deleted file mode 100644 index e16b636a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion/file-completion.js +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = fileCompletion - -var mkdir = require('mkdirp') -var glob = require('glob') - -function fileCompletion (root, req, depth, cb) { - if (typeof cb !== 'function') { - cb = depth - depth = Infinity - } - mkdir(root, function (er) { - if (er) return cb(er) - - // can be either exactly the req, or a descendent - var pattern = root + '/{' + req + ',' + req + '/**/*}' - var opts = { mark: true, dot: true, maxDepth: depth } - glob(pattern, opts, function (er, files) { - if (er) return cb(er) - return cb(null, (files || []).map(function (f) { - return f.substr(root.length + 1).replace(/^\/|\/$/g, '') - })) - }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion/installed-deep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion/installed-deep.js deleted file mode 100644 index dc9bfbee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion/installed-deep.js +++ /dev/null @@ -1,52 +0,0 @@ -module.exports = installedDeep - -var npm = require('../../npm.js') -var readInstalled = require('read-installed') - -function installedDeep (opts, cb) { - var local - var global - var depth = npm.config.get('depth') - var opt = { depth: depth, dev: true } - - if (npm.config.get('global')) { - local = [] - next() - } else { - readInstalled(npm.prefix, opt, function (er, data) { - local = getNames(data || {}) - next() - }) - } - - readInstalled(npm.config.get('prefix'), opt, function (er, data) { - global = getNames(data || {}) - next() - }) - - function getNames_ (d, n) { - if (d.realName && n) { - if (n[d.realName]) return n - n[d.realName] = true - } - if (!n) n = {} - Object.keys(d.dependencies || {}).forEach(function (dep) { - getNames_(d.dependencies[dep], n) - }) - return n - } - function getNames (d) { - return Object.keys(getNames_(d)) - } - - function next () { - if (!local || !global) return - if (!npm.config.get('global')) { - global = global.map(function (g) { - return [g, '-g'] - }) - } - var names = local.concat(global) - return cb(null, names) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion/installed-shallow.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion/installed-shallow.js deleted file mode 100644 index bf692fed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/completion/installed-shallow.js +++ /dev/null @@ -1,87 +0,0 @@ - -module.exports = installedShallow - -var npm = require('../../npm.js') -var fs = require('graceful-fs') -var path = require('path') -var readJson = require('read-package-json') -var asyncMap = require('slide').asyncMap - -function installedShallow (opts, filter, cb) { - if (typeof cb !== 'function') { - cb = filter - filter = null - } - var conf = opts.conf - var args = conf.argv.remain - if (args.length > 3) return cb() - var local - var global - var localDir = npm.dir - var globalDir = npm.globalDir - if (npm.config.get('global')) { - local = [] - next() - } else { - fs.readdir(localDir, function (er, pkgs) { - local = (pkgs || []).filter(function (p) { - return p.charAt(0) !== '.' - }) - next() - }) - } - - fs.readdir(globalDir, function (er, pkgs) { - global = (pkgs || []).filter(function (p) { - return p.charAt(0) !== '.' - }) - next() - }) - function next () { - if (!local || !global) return - filterInstalled(local, global, filter, cb) - } -} - -function filterInstalled (local, global, filter, cb) { - var fl - var fg - - if (!filter) { - fl = local - fg = global - return next() - } - - asyncMap(local, function (p, cb) { - readJson(path.join(npm.dir, p, 'package.json'), function (er, d) { - if (!d || !filter(d)) return cb(null, []) - return cb(null, d.name) - }) - }, function (er, local) { - fl = local || [] - next() - }) - - var globalDir = npm.globalDir - asyncMap(global, function (p, cb) { - readJson(path.join(globalDir, p, 'package.json'), function (er, d) { - if (!d || !filter(d)) return cb(null, []) - return cb(null, d.name) - }) - }, function (er, global) { - fg = global || [] - next() - }) - - function next () { - if (!fg || !fl) return - if (!npm.config.get('global')) { - fg = fg.map(function (g) { - return [g, '-g'] - }) - } - console.error('filtered', fl, fg) - return cb(null, fl.concat(fg)) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/correct-mkdir.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/correct-mkdir.js deleted file mode 100644 index c0a31bdc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/correct-mkdir.js +++ /dev/null @@ -1,117 +0,0 @@ -var chownr = require('chownr') -var dezalgo = require('dezalgo') -var fs = require('graceful-fs') -var inflight = require('inflight') -var log = require('npmlog') -var mkdirp = require('mkdirp') - -// memoize the directories created by this step -var stats = {} -var effectiveOwner -module.exports = function correctMkdir (path, cb) { - cb = dezalgo(cb) - cb = inflight('correctMkdir:' + path, cb) - if (!cb) { - return log.verbose('correctMkdir', path, 'correctMkdir already in flight; waiting') - } else { - log.verbose('correctMkdir', path, 'correctMkdir not in flight; initializing') - } - - if (stats[path]) return cb(null, stats[path]) - - fs.stat(path, function (er, st) { - if (er) return makeDirectory(path, cb) - - if (!st.isDirectory()) { - log.error('correctMkdir', 'invalid dir %s', path) - return cb(er) - } - - var ownerStats = calculateOwner() - // there's always a chance the permissions could have been frobbed, so fix - if (st.uid !== ownerStats.uid) { - stats[path] = ownerStats - setPermissions(path, ownerStats, cb) - } else { - stats[path] = st - cb(null, stats[path]) - } - }) -} - -function calculateOwner () { - if (!effectiveOwner) { - effectiveOwner = { uid: 0, gid: 0 } - - if (process.getuid) effectiveOwner.uid = +process.getuid() - if (process.getgid) effectiveOwner.gid = +process.getgid() - - if (effectiveOwner.uid === 0) { - if (process.env.SUDO_UID) effectiveOwner.uid = +process.env.SUDO_UID - if (process.env.SUDO_GID) effectiveOwner.gid = +process.env.SUDO_GID - } - } - - return effectiveOwner -} - -function makeDirectory (path, cb) { - cb = inflight('makeDirectory:' + path, cb) - if (!cb) { - return log.verbose('makeDirectory', path, 'creation already in flight; waiting') - } else { - log.verbose('makeDirectory', path, 'creation not in flight; initializing') - } - - var owner = calculateOwner() - - if (!process.getuid) { - return mkdirp(path, function (er) { - log.verbose('makeCacheDir', 'UID & GID are irrelevant on', process.platform) - - stats[path] = owner - return cb(er, stats[path]) - }) - } - - if (owner.uid !== 0 || !process.env.HOME) { - log.silly( - 'makeDirectory', path, - 'uid:', owner.uid, - 'gid:', owner.gid - ) - stats[path] = owner - mkdirp(path, afterMkdir) - } else { - fs.stat(process.env.HOME, function (er, st) { - if (er) { - log.error('makeDirectory', 'homeless?') - return cb(er) - } - - log.silly( - 'makeDirectory', path, - 'uid:', st.uid, - 'gid:', st.gid - ) - stats[path] = st - mkdirp(path, afterMkdir) - }) - } - - function afterMkdir (er, made) { - if (er || !stats[path] || isNaN(stats[path].uid) || isNaN(stats[path].gid)) { - return cb(er, stats[path]) - } - - if (!made) return cb(er, stats[path]) - - setPermissions(made, stats[path], cb) - } -} - -function setPermissions (path, st, cb) { - chownr(path, st.uid, st.gid, function (er) { - return cb(er, st) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/deep-sort-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/deep-sort-object.js deleted file mode 100644 index a9971506..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/deep-sort-object.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict' -var sortedObject = require('sorted-object') - -module.exports = function deepSortObject (obj, sortBy) { - if (obj == null || typeof obj !== 'object') return obj - if (obj instanceof Array) { - return obj.map(function (x) { - return deepSortObject(x, sortBy) - }) - } - obj = sortedObject(obj) - Object.keys(obj).forEach(function (key) { - obj[key] = deepSortObject(obj[key], sortBy) - }) - return obj -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/depr-check.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/depr-check.js deleted file mode 100644 index 89cf4027..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/depr-check.js +++ /dev/null @@ -1,13 +0,0 @@ -var log = require('npmlog') - -var deprecated = {} -var deprWarned = {} -module.exports = function deprCheck (data) { - if (deprecated[data._id]) data.deprecated = deprecated[data._id] - if (data.deprecated) deprecated[data._id] = data.deprecated - else return - if (!deprWarned[data._id]) { - deprWarned[data._id] = true - log.warn('deprecated', '%s: %s', data._id, data.deprecated) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/error-handler.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/error-handler.js deleted file mode 100644 index 6eac7e95..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/error-handler.js +++ /dev/null @@ -1,207 +0,0 @@ - -module.exports = errorHandler - -var cbCalled = false -var log = require('npmlog') -var npm = require('../npm.js') -var rm = require('rimraf') -var itWorked = false -var path = require('path') -var wroteLogFile = false -var exitCode = 0 -var rollbacks = npm.rollbacks -var chain = require('slide').chain -var writeStreamAtomic = require('fs-write-stream-atomic') -var errorMessage = require('./error-message.js') - -process.on('exit', function (code) { - log.disableProgress() - if (!npm.config || !npm.config.loaded) return - if (code) itWorked = false - if (itWorked) log.info('ok') - else { - if (!cbCalled) { - log.error('', 'cb() never called!') - } - - if (wroteLogFile) { - // just a line break - if (log.levels[log.level] <= log.levels.error) console.error('') - - log.error( - '', - [ - 'Please include the following file with any support request:', - ' ' + path.resolve('npm-debug.log') - ].join('\n') - ) - wroteLogFile = false - } - if (code) { - log.error('code', code) - } - } - - var doExit = npm.config.get('_exit') - if (doExit) { - // actually exit. - if (exitCode === 0 && !itWorked) { - exitCode = 1 - } - if (exitCode !== 0) process.exit(exitCode) - } else { - itWorked = false // ready for next exit - } -}) - -function exit (code, noLog) { - exitCode = exitCode || process.exitCode || code - - var doExit = npm.config ? npm.config.get('_exit') : true - log.verbose('exit', [code, doExit]) - if (log.level === 'silent') noLog = true - - if (rollbacks.length) { - chain(rollbacks.map(function (f) { - return function (cb) { - npm.commands.unbuild([f], true, cb) - } - }), function (er) { - if (er) { - log.error('error rolling back', er) - if (!code) errorHandler(er) - else if (noLog) rm('npm-debug.log', reallyExit.bind(null, er)) - else writeLogFile(reallyExit.bind(this, er)) - } else { - if (!noLog && code) writeLogFile(reallyExit) - else rm('npm-debug.log', reallyExit) - } - }) - rollbacks.length = 0 - } else if (code && !noLog) { - writeLogFile(reallyExit) - } else { - rm('npm-debug.log', reallyExit) - } - - function reallyExit (er) { - if (er && !code) code = typeof er.errno === 'number' ? er.errno : 1 - - // truncate once it's been written. - log.record.length = 0 - - itWorked = !code - - // just emit a fake exit event. - // if we're really exiting, then let it exit on its own, so that - // in-process stuff can finish or clean up first. - if (!doExit) process.emit('exit', code) - } -} - -function errorHandler (er) { - log.disableProgress() - // console.error('errorHandler', er) - if (!npm.config || !npm.config.loaded) { - // logging won't work unless we pretend that it's ready - er = er || new Error('Exit prior to config file resolving.') - console.error(er.stack || er.message) - } - - if (cbCalled) { - er = er || new Error('Callback called more than once.') - } - - cbCalled = true - if (!er) return exit(0) - if (typeof er === 'string') { - log.error('', er) - return exit(1, true) - } else if (!(er instanceof Error)) { - log.error('weird error', er) - return exit(1, true) - } - - var m = er.code || er.message.match(/^(?:Error: )?(E[A-Z]+)/) - if (m && !er.code) { - er.code = m - } - - ;[ - 'type', - 'fstream_path', - 'fstream_unc_path', - 'fstream_type', - 'fstream_class', - 'fstream_finish_call', - 'fstream_linkpath', - 'stack', - 'fstream_stack', - 'statusCode', - 'pkgid' - ].forEach(function (k) { - var v = er[k] - if (!v) return - if (k === 'fstream_stack') v = v.join('\n') - log.verbose(k, v) - }) - - log.verbose('cwd', process.cwd()) - - var os = require('os') - // log.error('System', os.type() + ' ' + os.release()) - // log.error('command', process.argv.map(JSON.stringify).join(' ')) - // log.error('node -v', process.version) - // log.error('npm -v', npm.version) - log.error('', os.type() + ' ' + os.release()) - log.error('argv', process.argv.map(JSON.stringify).join(' ')) - log.error('node', process.version) - log.error('npm ', 'v' + npm.version) - - ;[ - 'file', - 'path', - 'code', - 'errno', - 'syscall' - ].forEach(function (k) { - var v = er[k] - if (v) log.error(k, v) - }) - - // just a line break - if (log.levels[log.level] <= log.levels.error) console.error('') - - var msg = errorMessage(er) - msg.summary.concat(msg.detail).forEach(function (errline) { - log.error.apply(log, errline) - }) - - exit(typeof er.errno === 'number' ? er.errno : 1) -} - -var writingLogFile = false -function writeLogFile (cb) { - if (writingLogFile) return cb() - writingLogFile = true - wroteLogFile = true - - var fstr = writeStreamAtomic('npm-debug.log') - var os = require('os') - var out = '' - - log.record.forEach(function (m) { - var pref = [m.id, m.level] - if (m.prefix) pref.push(m.prefix) - pref = pref.join(' ') - - m.message.trim().split(/\r?\n/).map(function (line) { - return (pref + ' ' + line).trim() - }).forEach(function (line) { - out += line + os.EOL - }) - }) - - fstr.end(out) - fstr.on('close', cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/error-message.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/error-message.js deleted file mode 100644 index fca92ee4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/error-message.js +++ /dev/null @@ -1,317 +0,0 @@ -'use strict' -var npm = require('../npm.js') -var util = require('util') -var nameValidator = require('validate-npm-package-name') - -module.exports = errorMessage - -function errorMessage (er) { - var short = [] - var detail = [] - if (er.optional) { - short.push(['optional', 'Skipping failed optional dependency ' + er.optional + ':']) - } - switch (er.code) { - case 'ECONNREFUSED': - short.push(['', er]) - detail.push([ - '', - [ - '\nIf you are behind a proxy, please make sure that the', - "'proxy' config is set properly. See: 'npm help config'" - ].join('\n') - ]) - break - - case 'EACCES': - case 'EPERM': - short.push(['', er]) - detail.push(['', ['\nPlease try running this command again as root/Administrator.' - ].join('\n')]) - break - - case 'ELIFECYCLE': - short.push(['', er.message]) - detail.push([ - '', - [ - '', - 'Failed at the ' + er.pkgid + ' ' + er.stage + " script '" + er.script + "'.", - 'Make sure you have the latest version of node.js and npm installed.', - 'If you do, this is most likely a problem with the ' + er.pkgname + ' package,', - 'not with npm itself.', - 'Tell the author that this fails on your system:', - ' ' + er.script, - 'You can get information on how to open an issue for this project with:', - ' npm bugs ' + er.pkgname, - 'Or if that isn\'t available, you can get their info via:', - ' npm owner ls ' + er.pkgname, - 'There is likely additional logging output above.' - ].join('\n')] - ) - break - - case 'ENOGIT': - short.push(['', er.message]) - detail.push([ - '', - [ - '', - 'Failed using git.', - 'This is most likely not a problem with npm itself.', - 'Please check if you have git installed and in your PATH.' - ].join('\n') - ]) - break - - case 'EJSONPARSE': - short.push(['', er.message]) - short.push(['', 'File: ' + er.file]) - detail.push([ - '', - [ - 'Failed to parse package.json data.', - 'package.json must be actual JSON, not just JavaScript.', - '', - 'This is not a bug in npm.', - 'Tell the package author to fix their package.json file.' - ].join('\n'), - 'JSON.parse' - ]) - break - - // TODO(isaacs) - // Add a special case here for E401 and E403 explaining auth issues? - - case 'E404': - // There's no need to have 404 in the message as well. - var msg = er.message.replace(/^404\s+/, '') - short.push(['404', msg]) - if (er.pkgid && er.pkgid !== '-') { - detail.push(['404', '']) - detail.push(['404', '', "'" + er.pkgid + "' is not in the npm registry."]) - - var valResult = nameValidator(er.pkgid) - - if (valResult.validForNewPackages) { - detail.push(['404', 'You should bug the author to publish it (or use the name yourself!)']) - } else { - detail.push(['404', 'Your package name is not valid, because', '']) - - var errorsArray = (valResult.errors || []).concat(valResult.warnings || []) - errorsArray.forEach(function (item, idx) { - detail.push(['404', ' ' + (idx + 1) + '. ' + item]) - }) - } - - if (er.parent) { - detail.push(['404', "It was specified as a dependency of '" + er.parent + "'"]) - } - detail.push(['404', '\nNote that you can also install from a']) - detail.push(['404', 'tarball, folder, http url, or git url.']) - } - break - - case 'EPUBLISHCONFLICT': - short.push(['publish fail', 'Cannot publish over existing version.']) - detail.push(['publish fail', "Update the 'version' field in package.json and try again."]) - detail.push(['publish fail', '']) - detail.push(['publish fail', 'To automatically increment version numbers, see:']) - detail.push(['publish fail', ' npm help version']) - break - - case 'EISGIT': - short.push(['git', er.message]) - short.push(['git', ' ' + er.path]) - detail.push([ - 'git', - [ - 'Refusing to remove it. Update manually,', - 'or move it out of the way first.' - ].join('\n') - ]) - break - - case 'ECYCLE': - short.push([ - 'cycle', - [ - er.message, - 'While installing: ' + er.pkgid - ].join('\n') - ]) - detail.push([ - 'cycle', - [ - 'Found a pathological dependency case that npm cannot solve.', - 'Please report this to the package author.' - ].join('\n') - ]) - break - - case 'EBADPLATFORM': - short.push([ - 'notsup', - [ - 'Not compatible with your operating system or architecture: ' + er.pkgid - ].join('\n') - ]) - detail.push([ - 'notsup', - [ - 'Valid OS: ' + (er.os.join ? er.os.join(',') : util.inspect(er.os)), - 'Valid Arch: ' + (er.cpu.join ? er.cpu.join(',') : util.inspect(er.cpu)), - 'Actual OS: ' + process.platform, - 'Actual Arch: ' + process.arch - ].join('\n') - ]) - break - - case 'EEXIST': - short.push(['', er.message]) - short.push(['', 'File exists: ' + er.path]) - detail.push(['', 'Move it away, and try again.']) - break - - case 'ENEEDAUTH': - short.push(['need auth', er.message]) - detail.push(['need auth', 'You need to authorize this machine using `npm adduser`']) - break - - case 'ECONNRESET': - case 'ENOTFOUND': - case 'ETIMEDOUT': - case 'EAI_FAIL': - short.push(['network', er.message]) - detail.push([ - 'network', - [ - 'This is most likely not a problem with npm itself', - 'and is related to network connectivity.', - 'In most cases you are behind a proxy or have bad network settings.', - '\nIf you are behind a proxy, please make sure that the', - "'proxy' config is set properly. See: 'npm help config'" - ].join('\n') - ]) - break - - case 'ENOPACKAGEJSON': - short.push(['package.json', er.message]) - detail.push([ - 'package.json', - [ - 'This is most likely not a problem with npm itself.', - "npm can't find a package.json file in your current directory." - ].join('\n') - ]) - break - - case 'ETARGET': - short.push(['notarget', er.message]) - msg = [ - 'This is most likely not a problem with npm itself.', - 'In most cases you or one of your dependencies are requesting', - "a package version that doesn't exist." - ] - if (er.parent) { - msg.push("\nIt was specified as a dependency of '" + er.parent + "'\n") - } - detail.push(['notarget', msg.join('\n')]) - break - - case 'ENOTSUP': - if (er.required) { - short.push(['notsup', er.message]) - short.push(['notsup', 'Not compatible with your version of node/npm: ' + er.pkgid]) - detail.push([ - 'notsup', - [ - 'Not compatible with your version of node/npm: ' + er.pkgid, - 'Required: ' + JSON.stringify(er.required), - 'Actual: ' + JSON.stringify({ - npm: npm.version, - node: npm.config.get('node-version') - }) - ].join('\n') - ]) - break - } // else passthrough - /*eslint no-fallthrough:0*/ - - case 'ENOSPC': - short.push(['nospc', er.message]) - detail.push([ - 'nospc', - [ - 'This is most likely not a problem with npm itself', - 'and is related to insufficient space on your system.' - ].join('\n') - ]) - break - - case 'EROFS': - short.push(['rofs', er.message]) - detail.push([ - 'rofs', - [ - 'This is most likely not a problem with npm itself', - 'and is related to the file system being read-only.', - '\nOften virtualized file systems, or other file systems', - "that don't support symlinks, give this error." - ].join('\n') - ]) - break - - case 'ENOENT': - short.push(['enoent', er.message]) - detail.push([ - 'enoent', - [ - er.message, - 'This is most likely not a problem with npm itself', - 'and is related to npm not being able to find a file.', - er.file ? "\nCheck if the file '" + er.file + "' is present." : '' - ].join('\n') - ]) - break - - case 'EMISSINGARG': - case 'EUNKNOWNTYPE': - case 'EINVALIDTYPE': - case 'ETOOMANYARGS': - short.push(['typeerror', er.stack]) - detail.push([ - 'typeerror', - [ - 'This is an error with npm itself. Please report this error at:', - ' ' - ].join('\n') - ]) - break - - case 'EISDIR': - short.push(['eisdir', er.message]) - detail.push([ - 'eisdir', - [ - 'This is most likely not a problem with npm itself', - 'and is related to npm not being able to find a package.json in', - 'a package you are trying to install.' - ].join('\n') - ]) - break - - default: - short.push(['', er.message || er]) - detail.push([ - '', - [ - '', - 'If you need help, you may report this error at:', - ' ' - ].join('\n') - ]) - break - } - return {summary: short, detail: detail} -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/escape-arg.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/escape-arg.js deleted file mode 100644 index d12ee5ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/escape-arg.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict' -var path = require('path') -var isWindowsShell = require('./is-windows-shell.js') - -/* -Escape the name of an executable suitable for passing to the system shell. - -Windows is easy, wrap in double quotes and you're done, as there's no -facility to create files with quotes in their names. - -Unix-likes are a little more complicated, wrap in single quotes and escape -any single quotes in the filename. -*/ - -module.exports = escapify - -function escapify (str) { - if (isWindowsShell) { - return '"' + path.normalize(str) + '"' - } else { - if (/[^-_.~/\w]/.test(str)) { - return "'" + str.replace(/'/g, "'\"'\"'") + "'" - } else { - return str - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/escape-exec-path.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/escape-exec-path.js deleted file mode 100644 index bf94886e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/escape-exec-path.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict' -var path = require('path') -var isWindowsShell = require('./is-windows-shell.js') - -/* -Escape the name of an executable suitable for passing to the system shell. - -Windows is easy, wrap in double quotes and you're done, as there's no -facility to create files with quotes in their names. - -Unix-likes are a little more complicated, wrap in single quotes and escape -any single quotes in the filename. -*/ - -module.exports = escapify - -function windowsQuotes (str) { - if (!/ /.test(str)) return str - return '"' + str + '"' -} - -function escapify (str) { - if (isWindowsShell) { - return path.normalize(str).split(/\\/).map(windowsQuotes).join('\\') - } else if (/[^-_.~/\w]/.test(str)) { - return "'" + str.replace(/'/g, "'\"'\"'") + "'" - } else { - return str - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/gently-rm.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/gently-rm.js deleted file mode 100644 index 634bf94f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/gently-rm.js +++ /dev/null @@ -1,297 +0,0 @@ -// only remove the thing if it's a symlink into a specific folder. This is -// a very common use-case of npm's, but not so common elsewhere. - -exports = module.exports = gentlyRm - -var resolve = require('path').resolve -var dirname = require('path').dirname -var normalize = require('path').normalize -var validate = require('aproba') -var log = require('npmlog') -var lstat = require('graceful-fs').lstat -var readlink = require('graceful-fs').readlink -var isInside = require('path-is-inside') -var vacuum = require('fs-vacuum') -var chain = require('slide').chain -var asyncMap = require('slide').asyncMap -var readCmdShim = require('read-cmd-shim') -var iferr = require('iferr') -var npm = require('../npm.js') - -function gentlyRm (target, gently, base, cb) { - if (!cb) { - cb = base - base = undefined - } - - if (!cb) { - cb = gently - gently = false - } - - log.silly( - 'gentlyRm', - target, - 'is being', gently ? 'gently removed' : 'purged', - base ? 'from base ' + base : '' - ) - - // never rm the root, prefix, or bin dirs - // - // globals included because of `npm link` -- as far as the package - // requesting the link is concerned, the linked package is always - // installed globally - var prefixes = [ - npm.prefix, - npm.globalPrefix, - npm.dir, - npm.root, - npm.globalDir, - npm.bin, - npm.globalBin - ] - - var targetPath = normalize(resolve(npm.prefix, target)) - if (prefixes.indexOf(targetPath) !== -1) { - log.verbose('gentlyRm', targetPath, "is part of npm and can't be removed") - return cb(new Error('May not delete: ' + targetPath)) - } - var options = { log: log.silly.bind(log, 'vacuum-fs') } - if (npm.config.get('force') || !gently) options.purge = true - if (base) options.base = normalize(resolve(npm.prefix, base)) - - if (!gently) { - log.verbose('gentlyRm', "don't care about contents; nuking", targetPath) - return vacuum(targetPath, options, cb) - } - - var parent = options.base = options.base || normalize(npm.prefix) - - // Do all the async work we'll need to do in order to tell if this is a - // safe operation - chain([ - [isEverInside, parent, prefixes], - [readLinkOrShim, targetPath], - [isEverInside, targetPath, prefixes], - [isEverInside, targetPath, [parent]] - ], function (er, results) { - if (er) { - if (er.code === 'ENOENT') return cb() - return cb(er) - } - var parentInfo = { - path: parent, - managed: results[0] - } - var targetInfo = { - path: targetPath, - symlink: results[1], - managed: results[2], - inParent: results[3] - } - - isSafeToRm(parentInfo, targetInfo, iferr(cb, thenRemove)) - - function thenRemove (toRemove, removeBase) { - if (!toRemove) return cb() - if (removeBase) options.base = removeBase - log.verbose('gentlyRm', options.purge ? 'Purging' : 'Vacuuming', - toRemove, 'up to', options.base) - return vacuum(toRemove, options, cb) - } - }) -} - -exports._isSafeToRm = isSafeToRm -function isSafeToRm (parent, target, cb) { - log.silly('gentlyRm', 'parent.path =', parent.path) - log.silly('gentlyRm', 'parent.managed =', - parent.managed && parent.managed.target + ' is in ' + parent.managed.path) - log.silly('gentlyRm', 'target.path = ', target.path) - log.silly('gentlyRm', 'target.symlink =', target.symlink) - log.silly('gentlyRm', 'target.managed =', - target.managed && target.managed.target + ' is in ' + target.managed.path) - log.silly('gentlyRm', 'target.inParent = ', target.inParent) - - // The parent directory or something it symlinks to must eventually be in - // a folder that npm maintains. - if (!parent.managed) { - log.verbose('gentlyRm', parent.path, - 'is not contained in any diretory npm is known to control or ' + - 'any place they link to') - return cb(clobberFail(target.path, 'containing path ' + parent.path + - " isn't under npm's control")) - } - - // The target or something it symlinks to must eventually be in the parent - // or something the parent symlinks to - if (target.inParent) { - var actualTarget = target.inParent.target - var targetsParent = target.inParent.path - // if the target.path was what we found in some version of parent, remove - // using that parent as the base - if (target.path === actualTarget) { - return cb(null, target.path, targetsParent) - } else { - // If something the target.path links to was what was found, just - // remove target.path in the location it was found. - return cb(null, target.path, dirname(target.path)) - } - } - - // If the target is in a managed directory and is in a symlink, but was - // not in our parent that usually means someone else installed a bin file - // with the same name as one of our bin files. - if (target.managed && target.symlink) { - log.warn('gentlyRm', 'not removing', target.path, - "as it wasn't installed by", parent.path) - return cb() - } - - if (target.symlink) { - return cb(clobberFail(target.path, target.symlink + - ' symlink target is not controlled by npm ' + parent.path)) - } else { - return cb(clobberFail(target.path, 'is outside ' + parent.path + - ' and not a link')) - } -} - -function clobberFail (target, msg) { - validate('SS', arguments) - var er = new Error('Refusing to delete ' + target + ': ' + msg) - er.code = 'EEXIST' - er.path = target - return er -} - -function isENOENT (err) { - return err && err.code === 'ENOENT' -} - -function notENOENT (err) { - return !isENOENT(err) -} - -function skipENOENT (cb) { - return function (err, value) { - if (isENOENT(err)) { - return cb(null, false) - } else { - return cb(err, value) - } - } -} - -function errorsToValues (fn) { - return function () { - var args = Array.prototype.slice.call(arguments) - var cb = args.pop() - args.push(function (err, value) { - if (err) { - return cb(null, err) - } else { - return cb(null, value) - } - }) - fn.apply(null, args) - } -} - -function isNotError (value) { - return !(value instanceof Error) -} - -exports._isEverInside = isEverInside -// return the first of path, where target (or anything it symlinks to) -// isInside the path (or anything it symlinks to) -function isEverInside (target, paths, cb) { - validate('SAF', arguments) - asyncMap(paths, errorsToValues(readAllLinks), iferr(cb, function (resolvedPaths) { - var errorFree = resolvedPaths.filter(isNotError) - if (errorFree.length === 0) { - var badErrors = resolvedPaths.filter(notENOENT) - if (badErrors.length === 0) { - return cb(null, false) - } else { - return cb(badErrors[0]) - } - } - readAllLinks(target, iferr(skipENOENT(cb), function (targets) { - cb(null, areAnyInsideAny(targets, errorFree)) - })) - })) -} - -exports._areAnyInsideAny = areAnyInsideAny -// Return the first path found that any target is inside -function areAnyInsideAny (targets, paths) { - validate('AA', arguments) - var toCheck = [] - paths.forEach(function (path) { - targets.forEach(function (target) { - toCheck.push([target, path]) - }) - }) - for (var ii = 0; ii < toCheck.length; ++ii) { - var target = toCheck[ii][0] - var path = toCheck[ii][1] - var inside = isInside(target, path) - if (!inside) log.silly('isEverInside', target, 'is not inside', path) - if (inside && path) return inside && path && {target: target, path: path} - } - return false -} - -exports._readAllLinks = readAllLinks -// resolves chains of symlinks of unlimited depth, returning a list of paths -// it's seen in the process when it hits either a symlink cycle or a -// non-symlink -function readAllLinks (path, cb) { - validate('SF', arguments) - var seen = {} - _readAllLinks(path) - - function _readAllLinks (path) { - if (seen[path]) return cb(null, Object.keys(seen)) - seen[path] = true - resolveSymlink(path, iferr(cb, _readAllLinks)) - } -} - -exports._resolveSymlink = resolveSymlink -var resolvedPaths = {} -function resolveSymlink (symlink, cb) { - validate('SF', arguments) - var cached = resolvedPaths[symlink] - if (cached) return cb(null, cached) - - readLinkOrShim(symlink, iferr(cb, function (symlinkTarget) { - if (symlinkTarget) { - resolvedPaths[symlink] = resolve(dirname(symlink), symlinkTarget) - } else { - resolvedPaths[symlink] = symlink - } - return cb(null, resolvedPaths[symlink]) - })) -} - -exports._readLinkOrShim = readLinkOrShim -function readLinkOrShim (path, cb) { - validate('SF', arguments) - lstat(path, iferr(cb, function (stat) { - if (stat.isSymbolicLink()) { - readlink(path, cb) - } else { - readCmdShim(path, function (er, source) { - if (!er) return cb(null, source) - // lstat wouldn't return an error on these, so we don't either. - if (er.code === 'ENOTASHIM' || er.code === 'EISDIR') { - return cb(null, null) - } else { - return cb(er) - } - }) - } - })) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/get-publish-config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/get-publish-config.js deleted file mode 100644 index dcbb7b9c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/get-publish-config.js +++ /dev/null @@ -1,25 +0,0 @@ -var Conf = require('../config/core.js').Conf -var CachingRegClient = require('../cache/caching-client.js') -var log = require('npmlog') - -module.exports = getPublishConfig - -function getPublishConfig (publishConfig, defaultConfig, defaultClient) { - var config = defaultConfig - var client = defaultClient - log.verbose('getPublishConfig', publishConfig) - if (publishConfig) { - config = new Conf(defaultConfig) - config.save = defaultConfig.save.bind(defaultConfig) - - // don't modify the actual publishConfig object, in case we have - // to set a login token or some other data. - config.unshift(Object.keys(publishConfig).reduce(function (s, k) { - s[k] = publishConfig[k] - return s - }, {})) - client = new CachingRegClient(config) - } - - return { config: config, client: client } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/git.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/git.js deleted file mode 100644 index dc021300..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/git.js +++ /dev/null @@ -1,46 +0,0 @@ -// handle some git configuration for windows - -exports.spawn = spawnGit -exports.chainableExec = chainableExec -exports.whichAndExec = whichAndExec - -var exec = require('child_process').execFile -var spawn = require('./spawn') -var npm = require('../npm.js') -var which = require('which') -var git = npm.config.get('git') -var assert = require('assert') -var log = require('npmlog') - -function prefixGitArgs () { - return process.platform === 'win32' ? ['-c', 'core.longpaths=true'] : [] -} - -function execGit (args, options, cb) { - log.info('git', args) - var fullArgs = prefixGitArgs().concat(args || []) - return exec(git, fullArgs, options, cb) -} - -function spawnGit (args, options) { - log.info('git', args) - return spawn(git, prefixGitArgs().concat(args || []), options) -} - -function chainableExec () { - var args = Array.prototype.slice.call(arguments) - return [execGit].concat(args) -} - -function whichAndExec (args, options, cb) { - assert.equal(typeof cb, 'function', 'no callback provided') - // check for git - which(git, function (err) { - if (err) { - err.code = 'ENOGIT' - return cb(err) - } - - execGit(args, options, cb) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/is-windows-bash.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/is-windows-bash.js deleted file mode 100644 index bc4ac7db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/is-windows-bash.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' -var isWindows = require('./is-windows.js') -module.exports = isWindows && /^MINGW(32|64)$/.test(process.env.MSYSTEM) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/is-windows-shell.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/is-windows-shell.js deleted file mode 100644 index 803bbaa4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/is-windows-shell.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict' -var isWindows = require('./is-windows.js') -var isWindowsBash = require('./is-windows-bash.js') -module.exports = isWindows && !isWindowsBash diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/is-windows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/is-windows.js deleted file mode 100644 index 8a991d54..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/is-windows.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict' -module.exports = process.platform === 'win32' diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/lifecycle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/lifecycle.js deleted file mode 100644 index fd1a59b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/lifecycle.js +++ /dev/null @@ -1,407 +0,0 @@ -exports = module.exports = lifecycle -exports.cmd = cmd -exports.makeEnv = makeEnv -exports._incorrectWorkingDirectory = _incorrectWorkingDirectory - -var log = require('npmlog') -var spawn = require('./spawn') -var npm = require('../npm.js') -var path = require('path') -var fs = require('graceful-fs') -var chain = require('slide').chain -var Stream = require('stream').Stream -var PATH = 'PATH' -var uidNumber = require('uid-number') -var umask = require('./umask') -var usage = require('./usage') - -// windows calls it's path 'Path' usually, but this is not guaranteed. -if (process.platform === 'win32') { - PATH = 'Path' - Object.keys(process.env).forEach(function (e) { - if (e.match(/^PATH$/i)) { - PATH = e - } - }) -} - -function logid (pkg, stage) { - return pkg._id + '~' + stage + ':' -} - -function lifecycle (pkg, stage, wd, unsafe, failOk, cb) { - if (typeof cb !== 'function') { - cb = failOk - failOk = false - } - if (typeof cb !== 'function') { - cb = unsafe - unsafe = false - } - if (typeof cb !== 'function') { - cb = wd - wd = null - } - - while (pkg && pkg._data) pkg = pkg._data - if (!pkg) return cb(new Error('Invalid package data')) - - log.info('lifecycle', logid(pkg, stage), pkg._id) - if (!pkg.scripts) pkg.scripts = {} - - if (npm.config.get('ignore-scripts')) { - log.info('lifecycle', logid(pkg, stage), 'ignored because ignore-scripts is set to true', pkg._id) - pkg.scripts = {} - } - - validWd(wd || path.resolve(npm.dir, pkg.name), function (er, wd) { - if (er) return cb(er) - - unsafe = unsafe || npm.config.get('unsafe-perm') - - if ((wd.indexOf(npm.dir) !== 0 || _incorrectWorkingDirectory(wd, pkg)) && - !unsafe && pkg.scripts[stage]) { - log.warn('lifecycle', logid(pkg, stage), 'cannot run in wd', - '%s %s (wd=%s)', pkg._id, pkg.scripts[stage], wd - ) - return cb() - } - - // set the env variables, then run scripts as a child process. - var env = makeEnv(pkg) - env.npm_lifecycle_event = stage - env.npm_node_execpath = env.NODE = env.NODE || process.execPath - env.npm_execpath = require.main.filename - - // 'nobody' typically doesn't have permission to write to /tmp - // even if it's never used, sh freaks out. - if (!npm.config.get('unsafe-perm')) env.TMPDIR = wd - - lifecycle_(pkg, stage, wd, env, unsafe, failOk, cb) - }) -} - -function _incorrectWorkingDirectory (wd, pkg) { - return wd.lastIndexOf(pkg.name) !== wd.length - pkg.name.length -} - -function lifecycle_ (pkg, stage, wd, env, unsafe, failOk, cb) { - var pathArr = [] - var p = wd.split('node_modules') - var acc = path.resolve(p.shift()) - - p.forEach(function (pp) { - pathArr.unshift(path.join(acc, 'node_modules', '.bin')) - acc = path.join(acc, 'node_modules', pp) - }) - pathArr.unshift(path.join(acc, 'node_modules', '.bin')) - - // we also unshift the bundled node-gyp-bin folder so that - // the bundled one will be used for installing things. - pathArr.unshift(path.join(__dirname, '..', '..', 'bin', 'node-gyp-bin')) - - // prefer current node interpreter in child scripts - pathArr.push(path.dirname(process.execPath)) - - if (env[PATH]) pathArr.push(env[PATH]) - env[PATH] = pathArr.join(process.platform === 'win32' ? ';' : ':') - - var packageLifecycle = pkg.scripts && pkg.scripts.hasOwnProperty(stage) - - if (packageLifecycle) { - // define this here so it's available to all scripts. - env.npm_lifecycle_script = pkg.scripts[stage] - } else { - log.silly('lifecycle', logid(pkg, stage), 'no script for ' + stage + ', continuing') - } - - function done (er) { - if (er) { - if (npm.config.get('force')) { - log.info('lifecycle', logid(pkg, stage), 'forced, continuing', er) - er = null - } else if (failOk) { - log.warn('lifecycle', logid(pkg, stage), 'continuing anyway', er.message) - er = null - } - } - cb(er) - } - - chain( - [ - packageLifecycle && [runPackageLifecycle, pkg, env, wd, unsafe], - [runHookLifecycle, pkg, env, wd, unsafe] - ], - done - ) -} - -function validWd (d, cb) { - fs.stat(d, function (er, st) { - if (er || !st.isDirectory()) { - var p = path.dirname(d) - if (p === d) { - return cb(new Error('Could not find suitable wd')) - } - return validWd(p, cb) - } - return cb(null, d) - }) -} - -function runPackageLifecycle (pkg, env, wd, unsafe, cb) { - // run package lifecycle scripts in the package root, or the nearest parent. - var stage = env.npm_lifecycle_event - var cmd = env.npm_lifecycle_script - - var note = '\n> ' + pkg._id + ' ' + stage + ' ' + wd + - '\n> ' + cmd + '\n' - runCmd(note, cmd, pkg, env, stage, wd, unsafe, cb) -} - -var running = false -var queue = [] -function dequeue () { - running = false - if (queue.length) { - var r = queue.shift() - runCmd.apply(null, r) - } -} - -function runCmd (note, cmd, pkg, env, stage, wd, unsafe, cb) { - if (running) { - queue.push([note, cmd, pkg, env, stage, wd, unsafe, cb]) - return - } - - running = true - log.pause() - var user = unsafe ? null : npm.config.get('user') - var group = unsafe ? null : npm.config.get('group') - - if (log.level !== 'silent') { - log.clearProgress() - console.log(note) - log.showProgress() - } - log.verbose('lifecycle', logid(pkg, stage), 'unsafe-perm in lifecycle', unsafe) - - if (process.platform === 'win32') { - unsafe = true - } - - if (unsafe) { - runCmd_(cmd, pkg, env, wd, stage, unsafe, 0, 0, cb) - } else { - uidNumber(user, group, function (er, uid, gid) { - runCmd_(cmd, pkg, env, wd, stage, unsafe, uid, gid, cb) - }) - } -} - -function runCmd_ (cmd, pkg, env, wd, stage, unsafe, uid, gid, cb_) { - function cb (er) { - cb_.apply(null, arguments) - log.resume() - process.nextTick(dequeue) - } - - var conf = { - cwd: wd, - env: env, - stdio: [ 0, 1, 2 ] - } - - if (!unsafe) { - conf.uid = uid ^ 0 - conf.gid = gid ^ 0 - } - - var sh = 'sh' - var shFlag = '-c' - - if (process.platform === 'win32') { - sh = process.env.comspec || 'cmd' - shFlag = '/d /s /c' - conf.windowsVerbatimArguments = true - } - - log.verbose('lifecycle', logid(pkg, stage), 'PATH:', env[PATH]) - log.verbose('lifecycle', logid(pkg, stage), 'CWD:', wd) - log.silly('lifecycle', logid(pkg, stage), 'Args:', [shFlag, cmd]) - - var progressEnabled = log.progressEnabled - if (progressEnabled) log.disableProgress() - var proc = spawn(sh, [shFlag, cmd], conf) - - proc.on('error', procError) - proc.on('close', function (code, signal) { - log.silly('lifecycle', logid(pkg, stage), 'Returned: code:', code, ' signal:', signal) - if (signal) { - process.kill(process.pid, signal) - } else if (code) { - var er = new Error('Exit status ' + code) - } - procError(er) - }) - process.once('SIGTERM', procKill) - - function procError (er) { - if (progressEnabled) log.enableProgress() - if (er) { - log.info('lifecycle', logid(pkg, stage), 'Failed to exec ' + stage + ' script') - er.message = pkg._id + ' ' + stage + ': `' + cmd + '`\n' + - er.message - if (er.code !== 'EPERM') { - er.code = 'ELIFECYCLE' - } - fs.stat(npm.dir, function (statError, d) { - if (statError && statError.code === 'ENOENT' && npm.dir.split(path.sep).slice(-1)[0] === 'node_modules') { - log.warn('', 'Local package.json exists, but node_modules missing, did you mean to install?') - } - }) - er.pkgid = pkg._id - er.stage = stage - er.script = cmd - er.pkgname = pkg.name - } - process.removeListener('SIGTERM', procKill) - return cb(er) - } - function procKill () { - proc.kill() - } -} - -function runHookLifecycle (pkg, env, wd, unsafe, cb) { - // check for a hook script, run if present. - var stage = env.npm_lifecycle_event - var hook = path.join(npm.dir, '.hooks', stage) - var cmd = hook - - fs.stat(hook, function (er) { - if (er) return cb() - var note = '\n> ' + pkg._id + ' ' + stage + ' ' + wd + - '\n> ' + cmd - runCmd(note, hook, pkg, env, stage, wd, unsafe, cb) - }) -} - -function makeEnv (data, prefix, env) { - prefix = prefix || 'npm_package_' - if (!env) { - env = {} - for (var i in process.env) { - if (!i.match(/^npm_/)) { - env[i] = process.env[i] - } - } - - // npat asks for tap output - if (npm.config.get('npat')) env.TAP = 1 - - // express and others respect the NODE_ENV value. - if (npm.config.get('production')) env.NODE_ENV = 'production' - } else if (!data.hasOwnProperty('_lifecycleEnv')) { - Object.defineProperty(data, '_lifecycleEnv', - { - value: env, - enumerable: false - } - ) - } - - for (i in data) { - if (i.charAt(0) !== '_') { - var envKey = (prefix + i).replace(/[^a-zA-Z0-9_]/g, '_') - if (i === 'readme') { - continue - } - if (data[i] && typeof data[i] === 'object') { - try { - // quick and dirty detection for cyclical structures - JSON.stringify(data[i]) - makeEnv(data[i], envKey + '_', env) - } catch (ex) { - // usually these are package objects. - // just get the path and basic details. - var d = data[i] - makeEnv( - { name: d.name, version: d.version, path: d.path }, - envKey + '_', - env - ) - } - } else { - env[envKey] = String(data[i]) - env[envKey] = env[envKey].indexOf('\n') !== -1 - ? JSON.stringify(env[envKey]) - : env[envKey] - } - } - } - - if (prefix !== 'npm_package_') return env - - prefix = 'npm_config_' - var pkgConfig = {} - var keys = npm.config.keys - var pkgVerConfig = {} - var namePref = data.name + ':' - var verPref = data.name + '@' + data.version + ':' - - keys.forEach(function (i) { - // in some rare cases (e.g. working with nerf darts), there are segmented - // "private" (underscore-prefixed) config names -- don't export - if (i.charAt(0) === '_' && i.indexOf('_' + namePref) !== 0 || i.match(/:_/)) { - return - } - var value = npm.config.get(i) - if (value instanceof Stream || Array.isArray(value)) return - if (i.match(/umask/)) value = umask.toString(value) - if (!value) value = '' - else if (typeof value === 'number') value = '' + value - else if (typeof value !== 'string') value = JSON.stringify(value) - - value = value.indexOf('\n') !== -1 - ? JSON.stringify(value) - : value - i = i.replace(/^_+/, '') - var k - if (i.indexOf(namePref) === 0) { - k = i.substr(namePref.length).replace(/[^a-zA-Z0-9_]/g, '_') - pkgConfig[k] = value - } else if (i.indexOf(verPref) === 0) { - k = i.substr(verPref.length).replace(/[^a-zA-Z0-9_]/g, '_') - pkgVerConfig[k] = value - } - var envKey = (prefix + i).replace(/[^a-zA-Z0-9_]/g, '_') - env[envKey] = value - }) - - prefix = 'npm_package_config_' - ;[pkgConfig, pkgVerConfig].forEach(function (conf) { - for (var i in conf) { - var envKey = (prefix + i) - env[envKey] = conf[i] - } - }) - - return env -} - -function cmd (stage) { - function CMD (args, cb) { - npm.commands['run-script']([stage].concat(args), cb) - } - CMD.usage = usage(stage, 'npm ' + stage + ' [-- ]') - var installedShallow = require('./completion/installed-shallow.js') - CMD.completion = function (opts, cb) { - installedShallow(opts, function (d) { - return d.scripts && d.scripts[stage] - }, cb) - } - return CMD -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/link.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/link.js deleted file mode 100644 index 605b7740..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/link.js +++ /dev/null @@ -1,73 +0,0 @@ -module.exports = link -link.ifExists = linkIfExists - -var fs = require('graceful-fs') -var chain = require('slide').chain -var mkdir = require('mkdirp') -var rm = require('./gently-rm.js') -var path = require('path') -var npm = require('../npm.js') - -function linkIfExists (from, to, gently, cb) { - fs.stat(from, function (er) { - if (er) return cb() - fs.readlink(to, function (er, fromOnDisk) { - // if the link already exists and matches what we would do, - // we don't need to do anything - if (!er) { - var toDir = path.dirname(to) - var absoluteFrom = path.resolve(toDir, from) - var absoluteFromOnDisk = path.resolve(toDir, fromOnDisk) - if (absoluteFrom === absoluteFromOnDisk) return cb() - } - link(from, to, gently, cb) - }) - }) -} - -function resolveIfSymlink (maybeSymlinkPath, cb) { - fs.lstat(maybeSymlinkPath, function (err, stat) { - if (err) return cb.apply(this, arguments) - if (!stat.isSymbolicLink()) return cb(null, maybeSymlinkPath) - fs.readlink(maybeSymlinkPath, cb) - }) -} - -function ensureFromIsNotSource (from, to, cb) { - resolveIfSymlink(from, function (err, fromDestination) { - if (err) return cb.apply(this, arguments) - if (path.resolve(path.dirname(from), fromDestination) === path.resolve(to)) { - return cb(new Error('Link target resolves to the same directory as link source: ' + to)) - } - cb.apply(this, arguments) - }) -} - -function link (from, to, gently, abs, cb) { - if (typeof cb !== 'function') { - cb = abs - abs = false - } - if (typeof cb !== 'function') { - cb = gently - gently = null - } - if (npm.config.get('force')) gently = false - - to = path.resolve(to) - var toDir = path.dirname(to) - var absTarget = path.resolve(toDir, from) - var relativeTarget = path.relative(toDir, absTarget) - var target = abs ? absTarget : relativeTarget - - chain( - [ - [ensureFromIsNotSource, absTarget, to], - [fs, 'stat', absTarget], - [rm, to, gently], - [mkdir, path.dirname(to)], - [fs, 'symlink', target, to, 'junction'] - ], - cb - ) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/locker.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/locker.js deleted file mode 100644 index 9cd8b2c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/locker.js +++ /dev/null @@ -1,73 +0,0 @@ -var crypto = require('crypto') -var resolve = require('path').resolve - -var lockfile = require('lockfile') -var log = require('npmlog') - -var npm = require('../npm.js') -var correctMkdir = require('../utils/correct-mkdir.js') - -var installLocks = {} - -function lockFileName (base, name) { - var c = name.replace(/[^a-zA-Z0-9]+/g, '-').replace(/^-+|-+$/g, '') - var p = resolve(base, name) - var h = crypto.createHash('sha1').update(p).digest('hex') - var l = resolve(npm.cache, '_locks') - - return resolve(l, c.substr(0, 24) + '-' + h.substr(0, 16) + '.lock') -} - -function lock (base, name, cb) { - var lockDir = resolve(npm.cache, '_locks') - correctMkdir(lockDir, function (er) { - if (er) return cb(er) - - var opts = { - stale: npm.config.get('cache-lock-stale'), - retries: npm.config.get('cache-lock-retries'), - wait: npm.config.get('cache-lock-wait') - } - var lf = lockFileName(base, name) - lockfile.lock(lf, opts, function (er) { - if (er) log.warn('locking', lf, 'failed', er) - - if (!er) { - log.verbose('lock', 'using', lf, 'for', resolve(base, name)) - installLocks[lf] = true - } - - cb(er) - }) - }) -} - -function unlock (base, name, cb) { - var lf = lockFileName(base, name) - var locked = installLocks[lf] - if (locked === false) { - return process.nextTick(cb) - } else if (locked === true) { - lockfile.unlock(lf, function (er) { - if (er) { - log.warn('unlocking', lf, 'failed', er) - } else { - installLocks[lf] = false - log.verbose('unlock', 'done using', lf, 'for', resolve(base, name)) - } - - cb(er) - }) - } else { - var notLocked = new Error( - 'Attempt to unlock ' + resolve(base, name) + ", which hasn't been locked" - ) - notLocked.code = 'ENOTLOCKED' - throw notLocked - } -} - -module.exports = { - lock: lock, - unlock: unlock -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/map-to-registry.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/map-to-registry.js deleted file mode 100644 index 9e7ce674..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/map-to-registry.js +++ /dev/null @@ -1,100 +0,0 @@ -var url = require('url') - -var log = require('npmlog') -var npa = require('npm-package-arg') - -module.exports = mapToRegistry - -function mapToRegistry (name, config, cb) { - log.silly('mapToRegistry', 'name', name) - var registry - - // the name itself takes precedence - var data = npa(name) - if (data.scope) { - // the name is definitely scoped, so escape now - name = name.replace('/', '%2f') - - log.silly('mapToRegistry', 'scope (from package name)', data.scope) - - registry = config.get(data.scope + ':registry') - if (!registry) { - log.verbose('mapToRegistry', 'no registry URL found in name for scope', data.scope) - } - } - - // ...then --scope=@scope or --scope=scope - var scope = config.get('scope') - if (!registry && scope) { - // I'm an enabler, sorry - if (scope.charAt(0) !== '@') scope = '@' + scope - - log.silly('mapToRegistry', 'scope (from config)', scope) - - registry = config.get(scope + ':registry') - if (!registry) { - log.verbose('mapToRegistry', 'no registry URL found in config for scope', scope) - } - } - - // ...and finally use the default registry - if (!registry) { - log.silly('mapToRegistry', 'using default registry') - registry = config.get('registry') - } - - log.silly('mapToRegistry', 'registry', registry) - - var auth = config.getCredentialsByURI(registry) - - // normalize registry URL so resolution doesn't drop a piece of registry URL - var normalized = registry.slice(-1) !== '/' ? registry + '/' : registry - var uri - log.silly('mapToRegistry', 'data', data) - if (data.type === 'remote') { - uri = data.spec - } else { - uri = url.resolve(normalized, name) - } - - log.silly('mapToRegistry', 'uri', uri) - - cb(null, uri, scopeAuth(uri, registry, auth), normalized) -} - -function scopeAuth (uri, registry, auth) { - var cleaned = { - scope: auth.scope, - email: auth.email, - alwaysAuth: auth.alwaysAuth, - token: undefined, - username: undefined, - password: undefined, - auth: undefined - } - - var requestHost - var registryHost - - if (auth.token || auth.auth || (auth.username && auth.password)) { - requestHost = url.parse(uri).hostname - registryHost = url.parse(registry).hostname - - if (requestHost === registryHost) { - cleaned.token = auth.token - cleaned.auth = auth.auth - cleaned.username = auth.username - cleaned.password = auth.password - } else if (auth.alwaysAuth) { - log.verbose('scopeAuth', 'alwaysAuth set for', registry) - cleaned.token = auth.token - cleaned.auth = auth.auth - cleaned.username = auth.username - cleaned.password = auth.password - } else { - log.silly('scopeAuth', uri, "doesn't share host with registry", registry) - } - } - - return cleaned -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/module-name.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/module-name.js deleted file mode 100644 index 649dfac0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/module-name.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict' -var path = require('path') -var validate = require('aproba') - -module.exports = moduleName -module.exports.test = {} - -module.exports.test.pathToPackageName = pathToPackageName -function pathToPackageName (dir) { - if (dir == null) return '' - if (dir === '') return '' - var name = path.relative(path.resolve(dir, '..'), dir) - var scoped = path.relative(path.resolve(dir, '../..'), dir) - if (scoped[0] === '@') return scoped.replace(/\\/g, '/') - return name -} - -module.exports.test.isNotEmpty = isNotEmpty -function isNotEmpty (str) { - return str != null && str !== '' -} - -var unknown = 0 -function moduleName (tree) { - validate('O', arguments) - var pkg = tree.package || tree - if (isNotEmpty(pkg.name)) return pkg.name - var pkgName = pathToPackageName(tree.path) - if (pkgName !== '') return pkgName - if (tree._invalidName != null) return tree._invalidName - tree._invalidName = '!invalid#' + (++unknown) - return tree._invalidName -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/package-id.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/package-id.js deleted file mode 100644 index 2c5e3314..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/package-id.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict' -var moduleName = require('./module-name.js') - -module.exports = function (tree) { - var pkg = tree.package || tree - // FIXME: Excluding the '@' here is cleaning up after the mess that - // read-package-json makes. =( - if (pkg._id && pkg._id !== '@') return pkg._id - var name = moduleName(tree) - if (pkg.version) { - return name + '@' + pkg.version - } else { - return name - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/parse-json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/parse-json.js deleted file mode 100644 index 5c0b959a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/parse-json.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict' -var parseJSON = module.exports = function (content) { - return JSON.parse(stripBOM(content)) -} - -parseJSON.noExceptions = function (content) { - try { - return parseJSON(content) - } catch (ex) { - return - } -} - -// from read-package-json -function stripBOM (content) { - content = content.toString() - // 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 -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/pulse-till-done.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/pulse-till-done.js deleted file mode 100644 index fc6450e0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/pulse-till-done.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict' -var validate = require('aproba') -var log = require('npmlog') - -var pulsers = 0 -var pulse - -module.exports = function (prefix, cb) { - validate('SF', [prefix, cb]) - if (!pulsers++) { - pulse = setInterval(function () { - log.gauge.pulse('network') - }, 250) - } - return function () { - if (!--pulsers) { - clearInterval(pulse) - } - cb.apply(null, arguments) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/read-local-package.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/read-local-package.js deleted file mode 100644 index 27ca7b4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/read-local-package.js +++ /dev/null @@ -1,12 +0,0 @@ -exports = module.exports = readLocalPkg - -var npm = require('../npm.js') -var readJson = require('read-package-json') - -function readLocalPkg (cb) { - if (npm.config.get('global')) return cb() - var path = require('path') - readJson(path.resolve(npm.prefix, 'package.json'), function (er, d) { - return cb(er, d && d.name) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/rename.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/rename.js deleted file mode 100644 index 8a444289..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/rename.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var SaveStack = require('./save-stack.js') - -module.exports = rename - -function rename (from, to, cb) { - var saved = new SaveStack(rename) - fs.rename(from, to, function (er) { - if (er) { - return cb(saved.completeWith(er)) - } else { - return cb() - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/save-stack.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/save-stack.js deleted file mode 100644 index 42c4aab5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/save-stack.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict' -var inherits = require('inherits') - -module.exports = SaveStack - -function SaveStack (fn) { - Error.call(this) - Error.captureStackTrace(this, fn || SaveStack) -} -inherits(SaveStack, Error) - -SaveStack.prototype.completeWith = function (er) { - this['__' + 'proto' + '__'] = er - this.stack = this.stack + '\n\n' + er.stack - return this -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/spawn.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/spawn.js deleted file mode 100644 index e389d83e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/spawn.js +++ /dev/null @@ -1,34 +0,0 @@ -module.exports = spawn - -var _spawn = require('child_process').spawn -var EventEmitter = require('events').EventEmitter - -function spawn (cmd, args, options) { - var raw = _spawn(cmd, args, options) - var cooked = new EventEmitter() - - raw.on('error', function (er) { - er.file = cmd - cooked.emit('error', er) - }).on('close', function (code, signal) { - // Create ENOENT error because Node.js v0.8 will not emit - // an `error` event if the command could not be found. - if (code === 127) { - var er = new Error('spawn ENOENT') - er.code = 'ENOENT' - er.errno = 'ENOENT' - er.syscall = 'spawn' - er.file = cmd - cooked.emit('error', er) - } else { - cooked.emit('close', code, signal) - } - }) - - cooked.stdin = raw.stdin - cooked.stdout = raw.stdout - cooked.stderr = raw.stderr - cooked.kill = function (sig) { return raw.kill(sig) } - - return cooked -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/tar.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/tar.js deleted file mode 100644 index 98f6e4ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/tar.js +++ /dev/null @@ -1,352 +0,0 @@ -// commands for packing and unpacking tarballs -// this file is used by lib/cache.js - -var fs = require('graceful-fs') -var path = require('path') -var writeFileAtomic = require('write-file-atomic') -var writeStreamAtomic = require('fs-write-stream-atomic') -var log = require('npmlog') -var uidNumber = require('uid-number') -var readJson = require('read-package-json') -var tar = require('tar') -var zlib = require('zlib') -var fstream = require('fstream') -var Packer = require('fstream-npm') -var iferr = require('iferr') -var inherits = require('inherits') -var npm = require('../npm.js') -var rm = require('./gently-rm.js') -var myUid = process.getuid && process.getuid() -var myGid = process.getgid && process.getgid() -var readPackageTree = require('read-package-tree') -var union = require('lodash.union') -var flattenTree = require('../install/flatten-tree.js') -var moduleName = require('./module-name.js') -var packageId = require('./package-id.js') - -if (process.env.SUDO_UID && myUid === 0) { - if (!isNaN(process.env.SUDO_UID)) myUid = +process.env.SUDO_UID - if (!isNaN(process.env.SUDO_GID)) myGid = +process.env.SUDO_GID -} - -exports.pack = pack -exports.unpack = unpack - -function pack (tarball, folder, pkg, cb) { - log.verbose('tar pack', [tarball, folder]) - - log.verbose('tarball', tarball) - log.verbose('folder', folder) - - readJson(path.join(folder, 'package.json'), function (er, pkg) { - if (er || !pkg.bundleDependencies) { - pack_(tarball, folder, null, null, pkg, cb) - } else { - // we require this at runtime due to load-order issues, because recursive - // requires fail if you replace the exports object, and we do, not in deps, but - // in a dep of it. - var recalculateMetadata = require('../install/deps.js').recalculateMetadata - - readPackageTree(folder, iferr(cb, function (tree) { - recalculateMetadata(tree, log.newGroup('pack:' + packageId(pkg)), iferr(cb, function () { - pack_(tarball, folder, tree, flattenTree(tree), pkg, cb) - })) - })) - } - }) -} - -function BundledPacker (props) { - Packer.call(this, props) -} -inherits(BundledPacker, Packer) - -function nameMatch (name) { return function (other) { return name === moduleName(other) } } - -function pack_ (tarball, folder, tree, flatTree, pkg, cb) { - function InstancePacker (props) { - BundledPacker.call(this, props) - } - inherits(InstancePacker, BundledPacker) - InstancePacker.prototype.isBundled = function (name) { - var bd = this.package && this.package.bundleDependencies - if (!bd) return false - - if (!Array.isArray(bd)) { - throw new Error(packageId(this) + '\'s `bundledDependencies` should ' + - 'be an array') - } - if (!tree) return false - - if (bd.indexOf(name) !== -1) return true - var pkg = tree.children.filter(nameMatch(name))[0] - if (!pkg) return false - var requiredBy = union([], pkg.package._requiredBy) - var seen = {} - while (requiredBy.length) { - var req = requiredBy.shift() - if (seen[req]) continue - seen[req] = true - var reqPkg = flatTree[req] - if (!reqPkg) continue - if (reqPkg.parent === tree && bd.indexOf(moduleName(reqPkg)) !== -1) { - return true - } - requiredBy = union(requiredBy, reqPkg.package._requiredBy) - } - return false - } - - new InstancePacker({ path: folder, type: 'Directory', isDirectory: true }) - .on('error', function (er) { - if (er) log.error('tar pack', 'Error reading ' + folder) - return cb(er) - }) - - // By default, npm includes some proprietary attributes in the - // package tarball. This is sane, and allowed by the spec. - // However, npm *itself* excludes these from its own package, - // so that it can be more easily bootstrapped using old and - // non-compliant tar implementations. - .pipe(tar.Pack({ noProprietary: !npm.config.get('proprietary-attribs') })) - .on('error', function (er) { - if (er) log.error('tar.pack', 'tar creation error', tarball) - cb(er) - }) - .pipe(zlib.Gzip()) - .on('error', function (er) { - if (er) log.error('tar.pack', 'gzip error ' + tarball) - cb(er) - }) - .pipe(writeStreamAtomic(tarball)) - .on('error', function (er) { - if (er) log.error('tar.pack', 'Could not write ' + tarball) - cb(er) - }) - .on('close', cb) -} - -function unpack (tarball, unpackTarget, dMode, fMode, uid, gid, cb) { - log.verbose('tar', 'unpack', tarball) - log.verbose('tar', 'unpacking to', unpackTarget) - if (typeof cb !== 'function') { - cb = gid - gid = null - } - if (typeof cb !== 'function') { - cb = uid - uid = null - } - if (typeof cb !== 'function') { - cb = fMode - fMode = npm.modes.file - } - if (typeof cb !== 'function') { - cb = dMode - dMode = npm.modes.exec - } - - uidNumber(uid, gid, function (er, uid, gid) { - if (er) return cb(er) - unpack_(tarball, unpackTarget, dMode, fMode, uid, gid, cb) - }) -} - -function unpack_ (tarball, unpackTarget, dMode, fMode, uid, gid, cb) { - rm(unpackTarget, function (er) { - if (er) return cb(er) - // gzip {tarball} --decompress --stdout \ - // | tar -mvxpf - --strip-components=1 -C {unpackTarget} - gunzTarPerm(tarball, unpackTarget, - dMode, fMode, - uid, gid, - function (er, folder) { - if (er) return cb(er) - readJson(path.resolve(folder, 'package.json'), cb) - }) - }) -} - -function gunzTarPerm (tarball, target, dMode, fMode, uid, gid, cb_) { - if (!dMode) dMode = npm.modes.exec - if (!fMode) fMode = npm.modes.file - log.silly('gunzTarPerm', 'modes', [dMode.toString(8), fMode.toString(8)]) - - var cbCalled = false - function cb (er) { - if (cbCalled) return - cbCalled = true - cb_(er, target) - } - - var fst = fs.createReadStream(tarball) - - fst.on('open', function (fd) { - fs.fstat(fd, function (er, st) { - if (er) return fst.emit('error', er) - if (st.size === 0) { - er = new Error('0-byte tarball\n' + - 'Please run `npm cache clean`') - fst.emit('error', er) - } - }) - }) - - // figure out who we're supposed to be, if we're not pretending - // to be a specific user. - if (npm.config.get('unsafe-perm') && process.platform !== 'win32') { - uid = myUid - gid = myGid - } - - function extractEntry (entry) { - log.silly('gunzTarPerm', 'extractEntry', entry.path) - // never create things that are user-unreadable, - // or dirs that are user-un-listable. Only leads to headaches. - var originalMode = entry.mode = entry.mode || entry.props.mode - entry.mode = entry.mode | (entry.type === 'Directory' ? dMode : fMode) - entry.mode = entry.mode & (~npm.modes.umask) - entry.props.mode = entry.mode - if (originalMode !== entry.mode) { - log.silly('gunzTarPerm', 'modified mode', - [entry.path, originalMode, entry.mode]) - } - - // if there's a specific owner uid/gid that we want, then set that - if (process.platform !== 'win32' && - typeof uid === 'number' && - typeof gid === 'number') { - entry.props.uid = entry.uid = uid - entry.props.gid = entry.gid = gid - } - } - - var extractOpts = { type: 'Directory', path: target, strip: 1 } - - if (process.platform !== 'win32' && - typeof uid === 'number' && - typeof gid === 'number') { - extractOpts.uid = uid - extractOpts.gid = gid - } - - var sawIgnores = {} - extractOpts.filter = function () { - // symbolic links are not allowed in packages. - if (this.type.match(/^.*Link$/)) { - log.warn('excluding symbolic link', - this.path.substr(target.length + 1) + - ' -> ' + this.linkpath) - return false - } - - // Note: This mirrors logic in the fs read operations that are - // employed during tarball creation, in the fstream-npm module. - // It is duplicated here to handle tarballs that are created - // using other means, such as system tar or git archive. - if (this.type === 'File') { - var base = path.basename(this.path) - if (base === '.npmignore') { - sawIgnores[ this.path ] = true - } else if (base === '.gitignore') { - var npmignore = this.path.replace(/\.gitignore$/, '.npmignore') - if (sawIgnores[npmignore]) { - // Skip this one, already seen. - return false - } else { - // Rename, may be clobbered later. - this.path = npmignore - this._path = npmignore - } - } - } - - return true - } - - fst - .on('error', function (er) { - if (er) log.error('tar.unpack', 'error reading ' + tarball) - cb(er) - }) - .on('data', function OD (c) { - // detect what it is. - // Then, depending on that, we'll figure out whether it's - // a single-file module, gzipped tarball, or naked tarball. - // gzipped files all start with 1f8b08 - if (c[0] === 0x1F && - c[1] === 0x8B && - c[2] === 0x08) { - fst - .pipe(zlib.Unzip()) - .on('error', function (er) { - if (er) log.error('tar.unpack', 'unzip error ' + tarball) - cb(er) - }) - .pipe(tar.Extract(extractOpts)) - .on('entry', extractEntry) - .on('error', function (er) { - if (er) log.error('tar.unpack', 'untar error ' + tarball) - cb(er) - }) - .on('close', cb) - } else if (hasTarHeader(c)) { - // naked tar - fst - .pipe(tar.Extract(extractOpts)) - .on('entry', extractEntry) - .on('error', function (er) { - if (er) log.error('tar.unpack', 'untar error ' + tarball) - cb(er) - }) - .on('close', cb) - } else { - // naked js file - var jsOpts = { path: path.resolve(target, 'index.js') } - - if (process.platform !== 'win32' && - typeof uid === 'number' && - typeof gid === 'number') { - jsOpts.uid = uid - jsOpts.gid = gid - } - - fst - .pipe(fstream.Writer(jsOpts)) - .on('error', function (er) { - if (er) log.error('tar.unpack', 'copy error ' + tarball) - cb(er) - }) - .on('close', function () { - var j = path.resolve(target, 'package.json') - readJson(j, function (er, d) { - if (er) { - log.error('not a package', tarball) - return cb(er) - } - writeFileAtomic(j, JSON.stringify(d) + '\n', cb) - }) - }) - } - - // now un-hook, and re-emit the chunk - fst.removeListener('data', OD) - fst.emit('data', c) - }) -} - -function hasTarHeader (c) { - return c[257] === 0x75 && // tar archives have 7573746172 at position - c[258] === 0x73 && // 257 and 003030 or 202000 at position 262 - c[259] === 0x74 && - c[260] === 0x61 && - c[261] === 0x72 && - - ((c[262] === 0x00 && - c[263] === 0x30 && - c[264] === 0x30) || - - (c[262] === 0x20 && - c[263] === 0x20 && - c[264] === 0x00)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/temp-filename.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/temp-filename.js deleted file mode 100644 index 6b8245e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/temp-filename.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' -var uniqueFilename = require('unique-filename') -var npm = require('../npm.js') - -module.exports = function (prefix) { - return uniqueFilename(npm.tmp, prefix) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/umask.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/umask.js deleted file mode 100644 index 2dde1bef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/umask.js +++ /dev/null @@ -1,17 +0,0 @@ -var umask = require('umask') -var npmlog = require('npmlog') -var _fromString = umask.fromString - -module.exports = umask - -// fromString with logging callback -umask.fromString = function (val) { - _fromString(val, function (err, result) { - if (err) { - npmlog.warn('invalid umask', err.message) - } - val = result - }) - - return val -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/usage.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/usage.js deleted file mode 100644 index ba069e64..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/usage.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict' -var aliases = require('../config/cmd-list').aliases - -module.exports = function usage (cmd, txt, opt) { - var post = Object.keys(aliases).reduce(function (p, c) { - var val = aliases[c] - if (val !== cmd) return p - return p.concat(c) - }, []) - - if (opt || post.length > 0) txt += '\n\n' - - if (post.length === 1) { - txt += 'alias: ' - txt += post.join(', ') - } else if (post.length > 1) { - txt += 'aliases: ' - txt += post.join(', ') - } - - if (opt) { - if (post.length > 0) txt += '\n' - txt += 'common options: ' + opt - } - - return txt -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/warn-deprecated.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/warn-deprecated.js deleted file mode 100644 index fe5c5ec8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/utils/warn-deprecated.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = warnDeprecated - -var log = require('npmlog') - -var deprecations = {} - -function warnDeprecated (type) { - return function warn (messages, instance) { - if (!instance) { - if (!deprecations[type]) { - deprecations[type] = {} - messages.forEach(function (m) { log.warn(type, m) }) - } - } else { - if (!deprecations[type]) deprecations[type] = {} - - if (!deprecations[type][instance]) { - deprecations[type][instance] = true - messages.forEach(function (m) { log.warn(type, m) }) - } - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/version.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/version.js deleted file mode 100644 index 448c7713..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/version.js +++ /dev/null @@ -1,288 +0,0 @@ -// npm version - -module.exports = version - -var semver = require('semver') -var path = require('path') -var fs = require('graceful-fs') -var writeFileAtomic = require('write-file-atomic') -var chain = require('slide').chain -var log = require('npmlog') -var npm = require('./npm.js') -var git = require('./utils/git.js') -var assert = require('assert') -var lifecycle = require('./utils/lifecycle.js') -var parseJSON = require('./utils/parse-json.js') - -version.usage = 'npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]' + - '\n(run in package dir)\n' + - "'npm -v' or 'npm --version' to print npm version " + - '(' + npm.version + ')\n' + - "'npm view version' to view a package's " + - 'published version\n' + - "'npm ls' to inspect current package/dependency versions" - -function version (args, silent, cb_) { - if (typeof cb_ !== 'function') { - cb_ = silent - silent = false - } - if (args.length > 1) return cb_(version.usage) - - readPackage(function (er, data) { - if (!args.length) return dump(data, cb_) - - if (er) { - log.error('version', 'No valid package.json found') - return cb_(er) - } - - if (args[0] === 'from-git') { - retrieveTagVersion(silent, data, cb_) - } else { - var newVersion = semver.valid(args[0]) - if (!newVersion) newVersion = semver.inc(data.version, args[0]) - if (!newVersion) return cb_(version.usage) - persistVersion(newVersion, silent, data, cb_) - } - }) -} - -function retrieveTagVersion (silent, data, cb_) { - chain([ - verifyGit, - parseLastGitTag - ], function (er, results) { - if (er) return cb_(er) - var localData = { - hasGit: true, - existingTag: true - } - - var version = results[results.length - 1] - persistVersion(version, silent, data, localData, cb_) - }) -} - -function parseLastGitTag (cb) { - var options = { env: process.env } - git.whichAndExec(['describe', '--abbrev=0'], options, function (er, stdout) { - if (er) { - if (er.message.indexOf('No names found') !== -1) return cb(new Error('No tags found')) - return cb(er) - } - - var tag = stdout.trim() - var prefix = npm.config.get('tag-version-prefix') - // Strip the prefix from the start of the tag: - if (tag.indexOf(prefix) === 0) tag = tag.slice(prefix.length) - var version = semver.valid(tag) - if (!version) return cb(new Error(tag + ' is not a valid version')) - cb(null, version) - }) -} - -function persistVersion (newVersion, silent, data, localData, cb_) { - if (typeof localData === 'function') { - cb_ = localData - localData = {} - } - - if (data.version === newVersion) return cb_(new Error('Version not changed')) - data.version = newVersion - var lifecycleData = Object.create(data) - lifecycleData._id = data.name + '@' + newVersion - - var where = npm.prefix - chain([ - !localData.hasGit && [checkGit, localData], - [lifecycle, lifecycleData, 'preversion', where], - [updatePackage, newVersion, silent], - [lifecycle, lifecycleData, 'version', where], - [commit, localData, newVersion], - [lifecycle, lifecycleData, 'postversion', where] - ], cb_) -} - -function readPackage (cb) { - var packagePath = path.join(npm.localPrefix, 'package.json') - fs.readFile(packagePath, function (er, data) { - if (er) return cb(new Error(er)) - if (data) data = data.toString() - try { - data = JSON.parse(data) - } catch (e) { - er = e - data = null - } - cb(er, data) - }) -} - -function updatePackage (newVersion, silent, cb_) { - function cb (er) { - if (!er && !silent) console.log('v' + newVersion) - cb_(er) - } - - readPackage(function (er, data) { - if (er) return cb(new Error(er)) - data.version = newVersion - write(data, 'package.json', cb) - }) -} - -function commit (localData, newVersion, cb) { - updateShrinkwrap(newVersion, function (er, hasShrinkwrap) { - if (er || !localData.hasGit) return cb(er) - localData.hasShrinkwrap = hasShrinkwrap - _commit(newVersion, localData, cb) - }) -} - -function updateShrinkwrap (newVersion, cb) { - fs.readFile(path.join(npm.localPrefix, 'npm-shrinkwrap.json'), function (er, data) { - if (er && er.code === 'ENOENT') return cb(null, false) - - try { - data = data.toString() - data = parseJSON(data) - } catch (er) { - log.error('version', 'Bad npm-shrinkwrap.json data') - return cb(er) - } - - data.version = newVersion - write(data, 'npm-shrinkwrap.json', function (er) { - if (er) { - log.error('version', 'Bad npm-shrinkwrap.json data') - return cb(er) - } - cb(null, true) - }) - }) -} - -function dump (data, cb) { - var v = {} - - if (data && data.name && data.version) v[data.name] = data.version - v.npm = npm.version - Object.keys(process.versions).sort().forEach(function (k) { - v[k] = process.versions[k] - }) - - if (npm.config.get('json')) v = JSON.stringify(v, null, 2) - - console.log(v) - cb() -} - -function statGitFolder (cb) { - fs.stat(path.join(npm.localPrefix, '.git'), cb) -} - -function callGitStatus (cb) { - git.whichAndExec( - [ 'status', '--porcelain' ], - { env: process.env }, - cb - ) -} - -function cleanStatusLines (stdout) { - var lines = stdout.trim().split('\n').filter(function (line) { - return line.trim() && !line.match(/^\?\? /) - }).map(function (line) { - return line.trim() - }) - - return lines -} - -function verifyGit (cb) { - function checkStatus (er) { - if (er) return cb(er) - callGitStatus(checkStdout) - } - - function checkStdout (er, stdout) { - if (er) return cb(er) - var lines = cleanStatusLines(stdout) - if (lines.length > 0) { - return cb(new Error( - 'Git working directory not clean.\n' + lines.join('\n') - )) - } - - cb() - } - - statGitFolder(checkStatus) -} - -function checkGit (localData, cb) { - statGitFolder(function (er) { - var doGit = !er && npm.config.get('git-tag-version') - if (!doGit) { - if (er) log.verbose('version', 'error checking for .git', er) - log.verbose('version', 'not tagging in git') - return cb(null, false) - } - - // check for git - callGitStatus(function (er, stdout) { - if (er && er.code === 'ENOGIT') { - log.warn( - 'version', - 'This is a Git checkout, but the git command was not found.', - 'npm could not create a Git tag for this release!' - ) - return cb(null, false) - } - - var lines = cleanStatusLines(stdout) - if (lines.length && !npm.config.get('force')) { - return cb(new Error( - 'Git working directory not clean.\n' + lines.join('\n') - )) - } - localData.hasGit = true - cb(null, true) - }) - }) -} - -function _commit (version, localData, cb) { - var packagePath = path.join(npm.localPrefix, 'package.json') - var options = { env: process.env } - var message = npm.config.get('message').replace(/%s/g, version) - var sign = npm.config.get('sign-git-tag') - var flag = sign ? '-sm' : '-am' - chain( - [ - git.chainableExec([ 'add', packagePath ], options), - localData.hasShrinkwrap && git.chainableExec([ 'add', 'npm-shrinkwrap.json' ], options), - git.chainableExec([ 'commit', '-m', message ], options), - !localData.existingTag && git.chainableExec([ - 'tag', - npm.config.get('tag-version-prefix') + version, - flag, - message - ], options) - ], - cb - ) -} - -function write (data, file, cb) { - assert(data && typeof data === 'object', 'must pass data to version write') - assert(typeof file === 'string', 'must pass filename to write to version write') - - log.verbose('version.write', 'data', data, 'to', file) - writeFileAtomic( - path.join(npm.localPrefix, file), - new Buffer(JSON.stringify(data, null, 2) + '\n'), - cb - ) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/view.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/view.js deleted file mode 100644 index 79c44042..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/view.js +++ /dev/null @@ -1,328 +0,0 @@ -// npm view [pkg [pkg ...]] -module.exports = view - -var npm = require('./npm.js') -var readJson = require('read-package-json') -var log = require('npmlog') -var util = require('util') -var semver = require('semver') -var mapToRegistry = require('./utils/map-to-registry.js') -var npa = require('npm-package-arg') -var path = require('path') -var usage = require('./utils/usage') - -view.usage = usage( - 'view', - 'npm view [<@scope>/][@] [[.subfield]...]' -) - -view.completion = function (opts, cb) { - if (opts.conf.argv.remain.length <= 2) { - // FIXME: there used to be registry completion here, but it stopped making - // sense somewhere around 50,000 packages on the registry - return cb() - } - // have the package, get the fields. - var tag = npm.config.get('tag') - mapToRegistry(opts.conf.argv.remain[2], npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, d) { - if (er) return cb(er) - var dv = d.versions[d['dist-tags'][tag]] - var fields = [] - d.versions = Object.keys(d.versions).sort(semver.compareLoose) - fields = getFields(d).concat(getFields(dv)) - cb(null, fields) - }) - }) - - function getFields (d, f, pref) { - f = f || [] - if (!d) return f - pref = pref || [] - Object.keys(d).forEach(function (k) { - if (k.charAt(0) === '_' || k.indexOf('.') !== -1) return - var p = pref.concat(k).join('.') - f.push(p) - if (Array.isArray(d[k])) { - d[k].forEach(function (val, i) { - var pi = p + '[' + i + ']' - if (val && typeof val === 'object') getFields(val, f, [p]) - else f.push(pi) - }) - return - } - if (typeof d[k] === 'object') getFields(d[k], f, [p]) - }) - return f - } -} - -function view (args, silent, cb) { - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - if (!args.length) args = ['.'] - - var pkg = args.shift() - var nv = npa(pkg) - var name = nv.name - var local = (name === '.' || !name) - - if (npm.config.get('global') && local) { - return cb(new Error('Cannot use view command in global mode.')) - } - - if (local) { - var dir = npm.prefix - readJson(path.resolve(dir, 'package.json'), function (er, d) { - d = d || {} - if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) - if (!d.name) return cb(new Error('Invalid package.json')) - - var p = d.name - nv = npa(p) - if (pkg && ~pkg.indexOf('@')) { - nv.rawSpec = pkg.split('@')[pkg.indexOf('@')] - } - - fetchAndRead(nv, args, silent, cb) - }) - } else { - fetchAndRead(nv, args, silent, cb) - } -} - -function fetchAndRead (nv, args, silent, cb) { - // get the data about this package - var name = nv.name - var version = nv.rawSpec || npm.config.get('tag') - - mapToRegistry(name, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, function (er, data) { - if (er) return cb(er) - if (data['dist-tags'] && data['dist-tags'].hasOwnProperty(version)) { - version = data['dist-tags'][version] - } - - if (data.time && data.time.unpublished) { - var u = data.time.unpublished - er = new Error('Unpublished by ' + u.name + ' on ' + u.time) - er.statusCode = 404 - er.code = 'E404' - er.pkgid = data._id - return cb(er, data) - } - - var results = [] - var error = null - var versions = data.versions || {} - data.versions = Object.keys(versions).sort(semver.compareLoose) - if (!args.length) args = [''] - - // remove readme unless we asked for it - if (args.indexOf('readme') === -1) { - delete data.readme - } - - Object.keys(versions).forEach(function (v) { - if (semver.satisfies(v, version, true)) { - args.forEach(function (args) { - // remove readme unless we asked for it - if (args.indexOf('readme') !== -1) { - delete versions[v].readme - } - results.push(showFields(data, versions[v], args)) - }) - } - }) - results = results.reduce(reducer, {}) - var retval = results - - if (args.length === 1 && args[0] === '') { - retval = cleanBlanks(retval) - log.silly('cleanup', retval) - } - - if (error || silent) cb(error, retval) - else printData(results, data._id, cb.bind(null, error, retval)) - }) - }) -} - -function cleanBlanks (obj) { - var clean = {} - Object.keys(obj).forEach(function (version) { - clean[version] = obj[version][''] - }) - return clean -} - -function reducer (l, r) { - if (r) { - Object.keys(r).forEach(function (v) { - l[v] = l[v] || {} - Object.keys(r[v]).forEach(function (t) { - l[v][t] = r[v][t] - }) - }) - } - - return l -} - -// return whatever was printed -function showFields (data, version, fields) { - var o = {} - ;[data, version].forEach(function (s) { - Object.keys(s).forEach(function (k) { - o[k] = s[k] - }) - }) - return search(o, fields.split('.'), version.version, fields) -} - -function search (data, fields, version, title) { - var field - var tail = fields - while (!field && fields.length) field = tail.shift() - fields = [field].concat(tail) - var o - if (!field && !tail.length) { - o = {} - o[version] = {} - o[version][title] = data - return o - } - var index = field.match(/(.+)\[([^\]]+)\]$/) - if (index) { - field = index[1] - index = index[2] - if (data.field && data.field.hasOwnProperty(index)) { - return search(data[field][index], tail, version, title) - } else { - field = field + '[' + index + ']' - } - } - if (Array.isArray(data)) { - if (data.length === 1) { - return search(data[0], fields, version, title) - } - var results = [] - data.forEach(function (data, i) { - var tl = title.length - var newt = title.substr(0, tl - fields.join('.').length - 1) + - '[' + i + ']' + [''].concat(fields).join('.') - results.push(search(data, fields.slice(), version, newt)) - }) - results = results.reduce(reducer, {}) - return results - } - if (!data.hasOwnProperty(field)) return undefined - data = data[field] - if (tail.length) { - if (typeof data === 'object') { - // there are more fields to deal with. - return search(data, tail, version, title) - } else { - return new Error('Not an object: ' + data) - } - } - o = {} - o[version] = {} - o[version][title] = data - return o -} - -function printData (data, name, cb) { - var versions = Object.keys(data) - var msg = '' - var msgJson = [] - var includeVersions = versions.length > 1 - var includeFields - - versions.forEach(function (v) { - var fields = Object.keys(data[v]) - includeFields = includeFields || (fields.length > 1) - if (npm.config.get('json')) msgJson.push({}) - fields.forEach(function (f) { - var d = cleanup(data[v][f]) - if (fields.length === 1 && npm.config.get('json')) { - msgJson[msgJson.length - 1][f] = d - } - if (includeVersions || includeFields || typeof d !== 'string') { - if (npm.config.get('json')) { - msgJson[msgJson.length - 1][f] = d - } else { - d = util.inspect(d, false, 5, npm.color) - } - } else if (typeof d === 'string' && npm.config.get('json')) { - d = JSON.stringify(d) - } - if (!npm.config.get('json')) { - if (f && includeFields) f += ' = ' - if (d.indexOf('\n') !== -1) d = ' \n' + d - msg += (includeVersions ? name + '@' + v + ' ' : '') + - (includeFields ? f : '') + d + '\n' - } - }) - }) - - if (msgJson.length && Object.keys(msgJson[0]).length === 1) { - var k = Object.keys(msgJson[0])[0] - msgJson = msgJson.map(function (m) { return m[k] }) - } - - if (!msg) { - msg = JSON.stringify(msgJson[0], null, 2) + '\n' - } else if (msgJson.length > 1) { - msg = JSON.stringify(msgJson, null, 2) + '\n' - } - - // preserve output symmetry by adding a whitespace-only line at the end if - // there's one at the beginning - if (/^\s*\n/.test(msg)) msg += '\n' - - // print directly to stdout to not unnecessarily add blank lines - process.stdout.write(msg) - - cb(null, data) -} -function cleanup (data) { - if (Array.isArray(data)) { - return data.map(cleanup) - } - if (!data || typeof data !== 'object') return data - - if (typeof data.versions === 'object' && - data.versions && - !Array.isArray(data.versions)) { - data.versions = Object.keys(data.versions || {}) - } - - var keys = Object.keys(data) - keys.forEach(function (d) { - if (d.charAt(0) === '_') delete data[d] - else if (typeof data[d] === 'object') data[d] = cleanup(data[d]) - }) - keys = Object.keys(data) - if (keys.length <= 3 && - data.name && - (keys.length === 1 || - keys.length === 3 && data.email && data.url || - keys.length === 2 && (data.email || data.url))) { - data = unparsePerson(data) - } - return data -} -function unparsePerson (d) { - if (typeof d === 'string') return d - return d.name + - (d.email ? ' <' + d.email + '>' : '') + - (d.url ? ' (' + d.url + ')' : '') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/visnup.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/visnup.js deleted file mode 100644 index b0352fd6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/visnup.js +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = visnup -var npm = require('./npm.js') - -var handsomeFace = [ - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 237, 236, 236, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 235, 233, 237, 235, 233, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 235, 233, 232, 235, 235, 234, 233, 236, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 237, 235, 232, 232, 234, 233, 233, 232, 232, 233, 232, 232, 235, 232, 233, 234, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 232, 232, 232, 239, 238, 235, 233, 232, 232, 232, 232, 232, 232, 232, 233, 235, 232, 233, 233, 232, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 234, 234, 232, 233, 234, 233, 234, 235, 233, 235, 60, 238, 238, 234, 234, 233, 234, 233, 238, 251, 246, 233, 233, 232, 0, 0, 0, 0, 0, 0], - [0, 0, 233, 233, 233, 232, 232, 239, 249, 251, 252, 231, 231, 188, 250, 254, 59, 60, 255, 231, 231, 231, 252, 235, 239, 235, 232, 233, 0, 0, 0, 0, 0, 0], - [0, 0, 232, 233, 232, 232, 232, 248, 231, 231, 231, 231, 231, 231, 231, 254, 238, 254, 231, 231, 231, 231, 231, 252, 233, 235, 237, 233, 234, 0, 0, 0, 0, 0], - [0, 0, 233, 232, 232, 232, 248, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 251, 233, 233, 233, 236, 233, 0, 0, 0, 0], - [232, 233, 233, 232, 232, 246, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 249, 233, 234, 234, 0, 0, 0, 0], - [232, 232, 232, 232, 233, 249, 231, 255, 255, 255, 255, 254, 109, 60, 239, 237, 238, 237, 235, 235, 235, 235, 236, 235, 235, 235, 234, 232, 232, 232, 232, 232, 233, 0], - [0, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233, 233, 235, 236, 238, 238, 235, 188, 254, 254, 145, 236, 252, 254, 254, 254, 254, 249, 236, 235, 232, 232, 233, 0], - [0, 0, 233, 237, 249, 239, 233, 252, 231, 231, 231, 231, 231, 231, 254, 235, 235, 254, 231, 231, 251, 235, 237, 231, 231, 231, 231, 7, 237, 235, 232, 233, 233, 0], - [0, 0, 0, 0, 233, 248, 239, 233, 231, 231, 231, 231, 254, 233, 233, 235, 254, 255, 231, 254, 237, 236, 254, 239, 235, 235, 233, 233, 232, 232, 233, 232, 0, 0], - [0, 0, 0, 232, 233, 246, 255, 255, 236, 236, 236, 236, 236, 255, 231, 231, 231, 231, 231, 231, 252, 234, 248, 231, 231, 231, 231, 248, 232, 232, 232, 0, 0, 0], - [0, 0, 0, 0, 235, 237, 7, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 255, 238, 235, 7, 231, 231, 231, 246, 232, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 235, 103, 188, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 252, 232, 238, 231, 231, 255, 244, 232, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 235, 236, 103, 146, 253, 255, 231, 231, 231, 231, 231, 253, 251, 250, 250, 250, 246, 232, 235, 152, 255, 146, 66, 233, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 233, 103, 146, 146, 146, 146, 254, 231, 231, 231, 109, 103, 146, 255, 188, 239, 240, 103, 255, 253, 103, 238, 234, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 232, 235, 109, 146, 146, 146, 146, 146, 252, 152, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 103, 235, 233, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 235, 235, 103, 146, 146, 146, 146, 146, 146, 188, 188, 188, 188, 188, 188, 152, 146, 146, 146, 66, 235, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 233, 235, 66, 146, 146, 146, 146, 152, 255, 146, 240, 239, 241, 109, 146, 146, 146, 103, 233, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 237, 109, 146, 146, 146, 146, 146, 254, 231, 231, 188, 146, 146, 146, 103, 233, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 237, 60, 103, 146, 146, 146, 146, 146, 103, 66, 60, 235, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 233, 236, 235, 237, 235, 237, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] -] - -function visnup (args, cb) { - handsomeFace.forEach(function (line) { - console.log(line.map(function (ch) { - return '\u001b[' + (ch ? '48;5;' + ch : ch) + 'm' - }).join(' ')) - }) - - var c = args.shift() - if (c) npm.commands[c](args, cb) - else cb() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/whoami.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/whoami.js deleted file mode 100644 index feb6fab9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/whoami.js +++ /dev/null @@ -1,46 +0,0 @@ -var npm = require('./npm.js') - -module.exports = whoami - -whoami.usage = 'npm whoami [--registry ]\n(just prints username according to given registry)' - -function whoami (args, silent, cb) { - // FIXME: need tighter checking on this, but is a breaking change - if (typeof cb !== 'function') { - cb = silent - silent = false - } - - var registry = npm.config.get('registry') - if (!registry) return cb(new Error('no default registry set')) - - var auth = npm.config.getCredentialsByURI(registry) - if (auth) { - if (auth.username) { - if (!silent) console.log(auth.username) - return process.nextTick(cb.bind(this, null, auth.username)) - } else if (auth.token) { - return npm.registry.whoami(registry, { auth: auth }, function (er, username) { - if (er) return cb(er) - if (!username) { - var needNewSession = new Error( - 'Your auth token is no longer valid. Please log in again.' - ) - needNewSession.code = 'ENEEDAUTH' - return cb(needNewSession) - } - - if (!silent) console.log(username) - cb(null, username) - }) - } - } - - // At this point, if they have a credentials object, it doesn't have a token - // or auth in it. Probably just the default registry. - var needAuth = new Error( - 'this command requires you to be logged in.' - ) - needAuth.code = 'ENEEDAUTH' - process.nextTick(cb.bind(this, needAuth)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/xmas.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/xmas.js deleted file mode 100644 index 25535533..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/lib/xmas.js +++ /dev/null @@ -1,59 +0,0 @@ -// happy xmas -var log = require('npmlog') - -module.exports = function (args, cb) { - var s = process.platform === 'win32' ? ' *' : ' \u2605' - var f = '\uFF0F' - var b = '\uFF3C' - var x = process.platform === 'win32' ? ' ' : '' - var o = [ - '\u0069', '\u0020', '\u0020', '\u0020', '\u0020', '\u0020', - '\u0020', '\u0020', '\u0020', '\u0020', '\u0020', '\u0020', - '\u0020', '\u2E1B', '\u2042', '\u2E2E', '&', '@', '\uFF61' - ] - var oc = [21, 33, 34, 35, 36, 37] - var l = '\u005e' - - function w (s) { process.stderr.write(s) } - - w('\n') - ;(function T (H) { - for (var i = 0; i < H; i++) w(' ') - w(x + '\u001b[33m' + s + '\n') - var M = H * 2 - 1 - for (var L = 1; L <= H; L++) { - var O = L * 2 - 2 - var S = (M - O) / 2 - for (i = 0; i < S; i++) w(' ') - w(x + '\u001b[32m' + f) - for (i = 0; i < O; i++) { - w( - '\u001b[' + oc[Math.floor(Math.random() * oc.length)] + 'm' + - o[Math.floor(Math.random() * o.length)] - ) - } - w(x + '\u001b[32m' + b + '\n') - } - w(' ') - for (i = 1; i < H; i++) w('\u001b[32m' + l) - w('| ' + x + ' |') - for (i = 1; i < H; i++) w('\u001b[32m' + l) - if (H > 10) { - w('\n ') - for (i = 1; i < H; i++) w(' ') - w('| ' + x + ' |') - for (i = 1; i < H; i++) w(' ') - } - })(20) - w('\n\n') - log.heading = '' - log.addLevel('npm', 100000, log.headingStyle) - log.npm('loves you', 'Happy Xmas, Noders!') - cb() -} -var dg = false -Object.defineProperty(module.exports, 'usage', {get: function () { - if (dg) module.exports([], function () {}) - dg = true - return ' ' -}}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/make.bat b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/make.bat deleted file mode 100644 index 7d71f0f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/make.bat +++ /dev/null @@ -1,3 +0,0 @@ -:: The tests run "make doc" in the prepublish script, -:: so this file gives windows something that'll exit -:: successfully, without having to install make. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-README.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-README.1 deleted file mode 100644 index 199a6d04..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-README.1 +++ /dev/null @@ -1,177 +0,0 @@ -.TH "NPM" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm\fR \- a JavaScript package manager -.P -Build Status \fIhttps://img\.shields\.io/travis/npm/npm/master\.svg\fR \fIhttps://travis\-ci\.org/npm/npm\fR -.SH SYNOPSIS -.P -This is just enough info to get you up and running\. -.P -Much more info available via \fBnpm help\fP once it's installed\. -.SH IMPORTANT -.P -\fBYou need node v0\.8 or higher to run this program\.\fR -.P -To install an old \fBand unsupported\fR version of npm that works on node 0\.3 -and prior, clone the git repo and dig through the old tags and branches\. -.P -\fBnpm is configured to use npm, Inc\.'s public package registry at -https://registry\.npmjs\.org by default\.\fR -.P -You can configure npm to use any compatible registry you -like, and even run your own registry\. Check out the doc on -registries \fIhttps://docs\.npmjs\.com/misc/registry\fR\|\. -.P -Use of someone else's registry may be governed by terms of use\. The -terms of use for the default public registry are available at -https://www\.npmjs\.com\|\. -.SH Super Easy Install -.P -npm is bundled with node \fIhttp://nodejs\.org/download/\fR\|\. -.SS Windows Computers -.P -Get the MSI \fIhttp://nodejs\.org/download/\fR\|\. npm is in it\. -.SS Apple Macintosh Computers -.P -Get the pkg \fIhttp://nodejs\.org/download/\fR\|\. npm is in it\. -.SS Other Sorts of Unices -.P -Run \fBmake install\fP\|\. npm will be installed with node\. -.P -If you want a more fancy pants install (a different version, customized -paths, etc\.) then read on\. -.SH Fancy Install (Unix) -.P -There's a pretty robust install script at -https://www\.npmjs\.com/install\.sh\|\. You can download that and run it\. -.P -Here's an example using curl: -.P -.RS 2 -.nf -curl \-L https://www\.npmjs\.com/install\.sh | sh -.fi -.RE -.SS Slightly Fancier -.P -You can set any npm configuration params with that script: -.P -.RS 2 -.nf -npm_config_prefix=/some/path sh install\.sh -.fi -.RE -.P -Or, you can run it in uber\-debuggery mode: -.P -.RS 2 -.nf -npm_debug=1 sh install\.sh -.fi -.RE -.SS Even Fancier -.P -Get the code with git\. Use \fBmake\fP to build the docs and do other stuff\. -If you plan on hacking on npm, \fBmake link\fP is your friend\. -.P -If you've got the npm source code, you can also semi\-permanently set -arbitrary config keys using the \fB\|\./configure \-\-key=val \.\.\.\fP, and then -run npm commands by doing \fBnode cli\.js \fP\|\. (This is helpful -for testing, or running stuff without actually installing npm itself\.) -.SH Windows Install or Upgrade -.P -Many improvements for Windows users have been made in npm 3 \- you will have a better -experience if you run a recent version of npm\. To upgrade, either use Microsoft's -upgrade tool \fIhttps://github\.com/felixrieseberg/npm\-windows\-upgrade\fR, -download a new version of Node \fIhttp://nodejs\.org/download/\fR, -or follow the Windows upgrade instructions in the -npm Troubleshooting Guide \fIhttps://github\.com/npm/npm/wiki/Troubleshooting#upgrading\-on\-windows\fR\|\. -.P -If that's not fancy enough for you, then you can fetch the code with -git, and mess with it directly\. -.SH Installing on Cygwin -.P -No\. -.SH Uninstalling -.P -So sad to see you go\. -.P -.RS 2 -.nf -sudo npm uninstall npm \-g -.fi -.RE -.P -Or, if that fails, -.P -.RS 2 -.nf -sudo make uninstall -.fi -.RE -.SH More Severe Uninstalling -.P -Usually, the above instructions are sufficient\. That will remove -npm, but leave behind anything you've installed\. -.P -If you would like to remove all the packages that you have installed, -then you can use the \fBnpm ls\fP command to find them, and then \fBnpm rm\fP to -remove them\. -.P -To remove cruft left behind by npm 0\.x, you can use the included -\fBclean\-old\.sh\fP script file\. You can run it conveniently like this: -.P -.RS 2 -.nf -npm explore npm \-g \-\- sh scripts/clean\-old\.sh -.fi -.RE -.P -npm uses two configuration files, one for per\-user configs, and another -for global (every\-user) configs\. You can view them by doing: -.P -.RS 2 -.nf -npm config get userconfig # defaults to ~/\.npmrc -npm config get globalconfig # defaults to /usr/local/etc/npmrc -.fi -.RE -.P -Uninstalling npm does not remove configuration files by default\. You -must remove them yourself manually if you want them gone\. Note that -this means that future npm installs will not remember the settings that -you have chosen\. -.SH More Docs -.P -Check out the docs \fIhttps://docs\.npmjs\.com/\fR, -.P -You can use the \fBnpm help\fP command to read any of them\. -.P -If you're a developer, and you want to use npm to publish your program, -you should read this \fIhttps://docs\.npmjs\.com/misc/developers\fR -.SH BUGS -.P -When you find issues, please report them: -.RS 0 -.IP \(bu 2 -web: -https://github\.com/npm/npm/issues - -.RE -.P -Be sure to include \fIall\fR of the output from the npm command that didn't work -as expected\. The \fBnpm\-debug\.log\fP file is also helpful to provide\. -.P -You can also look for isaacs in #node\.js on irc://irc\.freenode\.net\. He -will no doubt tell you to put the output in a gist or email\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help npm -.IP \(bu 2 -npm help help -.IP \(bu 2 -npm help 7 index - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-access.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-access.1 deleted file mode 100644 index 6cddb81d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-access.1 +++ /dev/null @@ -1,89 +0,0 @@ -.TH "NPM\-ACCESS" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-access\fR \- Set access level on published packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm access public [] -npm access restricted [] - -npm access grant [] -npm access revoke [] - -npm access ls\-packages [||] -npm access ls\-collaborators [ []] -npm access edit [] -.fi -.RE -.SH DESCRIPTION -.P -Used to set access controls on private packages\. -.P -For all of the subcommands, \fBnpm access\fP will perform actions on the packages -in the current working directory if no package name is passed to the -subcommand\. -.RS 0 -.IP \(bu 2 -public / restricted: -Set a package to be either publicly accessible or restricted\. -.IP \(bu 2 -grant / revoke: -Add or remove the ability of users and teams to have read\-only or read\-write -access to a package\. -.IP \(bu 2 -ls\-packages: -Show all of the packages a user or a team is able to access, along with the -access level, except for read\-only public packages (it won't print the whole -registry listing) -.IP \(bu 2 -ls\-collaborators: -Show all of the access privileges for a package\. Will only show permissions -for packages to which you have at least read access\. If \fB\fP is passed in, -the list is filtered only to teams \fIthat\fR user happens to belong to\. -.IP \(bu 2 -edit: -Set the access privileges for a package at once using \fB$EDITOR\fP\|\. - -.RE -.SH DETAILS -.P -\fBnpm access\fP always operates directly on the current registry, configurable -from the command line using \fB\-\-registry=\fP\|\. -.P -Unscoped packages are \fIalways public\fR\|\. -.P -Scoped packages \fIdefault to restricted\fR, but you can either publish them as -public using \fBnpm publish \-\-access=public\fP, or set their access as public using -\fBnpm access public\fP after the initial publish\. -.P -You must have privileges to set the access of a package: -.RS 0 -.IP \(bu 2 -You are an owner of an unscoped or scoped package\. -.IP \(bu 2 -You are a member of the team that owns a scope\. -.IP \(bu 2 -You have been given read\-write privileges for a package, either as a member -of a team or directly as an owner\. - -.RE -.P -If your account is not paid, then attempts to publish scoped packages will fail -with an HTTP 402 status code (logically enough), unless you use -\fB\-\-access=public\fP\|\. -.P -Management of teams and team memberships is done with the \fBnpm team\fP command\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help team -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 7 registry - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-adduser.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-adduser.1 deleted file mode 100644 index 3a22940b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-adduser.1 +++ /dev/null @@ -1,90 +0,0 @@ -.TH "NPM\-ADDUSER" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-adduser\fR \- Add a registry user account -.SH SYNOPSIS -.P -.RS 2 -.nf -npm adduser [\-\-registry=url] [\-\-scope=@orgname] [\-\-always\-auth] - -aliases: login, add\-user -.fi -.RE -.SH DESCRIPTION -.P -Create or verify a user named \fB\fP in the specified registry, and -save the credentials to the \fB\|\.npmrc\fP file\. If no registry is specified, -the default registry will be used (see npm help 7 \fBnpm\-config\fP)\. -.P -The username, password, and email are read in from prompts\. -.P -To reset your password, go to https://www\.npmjs\.com/forgot -.P -To change your email address, go to https://www\.npmjs\.com/email\-edit -.P -You may use this command multiple times with the same user account to -authorize on a new machine\. When authenticating on a new machine, -the username, password and email address must all match with -your existing record\. -.P -\fBnpm login\fP is an alias to \fBadduser\fP and behaves exactly the same way\. -.SH CONFIGURATION -.SS registry -.P -Default: https://registry\.npmjs\.org/ -.P -The base URL of the npm package registry\. If \fBscope\fP is also specified, -this registry will only be used for packages with that scope\. See npm help 7 \fBnpm\-scope\fP\|\. -.SS scope -.P -Default: none -.P -If specified, the user and login credentials given will be associated -with the specified scope\. See npm help 7 \fBnpm\-scope\fP\|\. You can use both at the same time, -e\.g\. -.P -.RS 2 -.nf -npm adduser \-\-registry=http://myregistry\.example\.com \-\-scope=@myco -.fi -.RE -.P -This will set a registry for the given scope and login or create a user for -that registry at the same time\. -.SS always\-auth -.P -Default: false -.P -If specified, save configuration indicating that all requests to the given -registry should include authorization information\. Useful for private -registries\. Can be used with \fB\-\-registry\fP and / or \fB\-\-scope\fP, e\.g\. -.P -.RS 2 -.nf -npm adduser \-\-registry=http://private\-registry\.example\.com \-\-always\-auth -.fi -.RE -.P -This will ensure that all requests to that registry (including for tarballs) -include an authorization header\. This setting may be necessary for use with -private registries where metadata and package tarballs are stored on hosts with -different hostnames\. See \fBalways\-auth\fP in npm help 7 \fBnpm\-config\fP for more details on -always\-auth\. Registry\-specific configuration of \fBalways\-auth\fP takes precedence -over any global configuration\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help owner -.IP \(bu 2 -npm help whoami - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-bin.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-bin.1 deleted file mode 100644 index c34af76a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-bin.1 +++ /dev/null @@ -1,30 +0,0 @@ -.TH "NPM\-BIN" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-bin\fR \- Display npm bin folder -.SH SYNOPSIS -.P -.RS 2 -.nf -npm bin [\-g|\-\-global] -.fi -.RE -.SH DESCRIPTION -.P -Print the folder where npm will install executables\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help prefix -.IP \(bu 2 -npm help root -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-bugs.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-bugs.1 deleted file mode 100644 index c348ba34..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-bugs.1 +++ /dev/null @@ -1,60 +0,0 @@ -.TH "NPM\-BUGS" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-bugs\fR \- Bugs for a package in a web browser maybe -.SH SYNOPSIS -.P -.RS 2 -.nf -npm bugs [] - -aliases: issues -.fi -.RE -.SH DESCRIPTION -.P -This command tries to guess at the likely location of a package's -bug tracker URL, and then tries to open it using the \fB\-\-browser\fP -config param\. If no package name is provided, it will search for -a \fBpackage\.json\fP in the current folder and use the \fBname\fP property\. -.SH CONFIGURATION -.SS browser -.RS 0 -.IP \(bu 2 -Default: OS X: \fB"open"\fP, Windows: \fB"start"\fP, Others: \fB"xdg\-open"\fP -.IP \(bu 2 -Type: String - -.RE -.P -The browser that is called by the \fBnpm bugs\fP command to open websites\. -.SS registry -.RS 0 -.IP \(bu 2 -Default: https://registry\.npmjs\.org/ -.IP \(bu 2 -Type: url - -.RE -.P -The base URL of the npm package registry\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help docs -.IP \(bu 2 -npm help view -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 5 package\.json - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-build.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-build.1 deleted file mode 100644 index 315daad2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-build.1 +++ /dev/null @@ -1,41 +0,0 @@ -.TH "NPM\-BUILD" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-build\fR \- Build a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm build [] -.fi -.RE -.RS 0 -.IP \(bu 2 -\fB\fP: -A folder containing a \fBpackage\.json\fP file in its root\. - -.RE -.SH DESCRIPTION -.P -This is the plumbing command called by \fBnpm link\fP and \fBnpm install\fP\|\. -.P -It should generally be called during installation, but if you need to run it -directly, run: -.P -.RS 2 -.nf -npm run\-script build -.fi -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help link -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help 5 package\.json - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-bundle.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-bundle.1 deleted file mode 100644 index 098b0d31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-bundle.1 +++ /dev/null @@ -1,17 +0,0 @@ -.TH "NPM\-BUNDLE" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-bundle\fR \- REMOVED -.SH DESCRIPTION -.P -The \fBnpm bundle\fP command has been removed in 1\.0, for the simple reason -that it is no longer necessary, as the default behavior is now to -install packages into the local space\. -.P -Just use \fBnpm install\fP now to do what \fBnpm bundle\fP used to do\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-cache.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-cache.1 deleted file mode 100644 index b325ea39..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-cache.1 +++ /dev/null @@ -1,86 +0,0 @@ -.TH "NPM\-CACHE" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-cache\fR \- Manipulates packages cache -.SH SYNOPSIS -.P -.RS 2 -.nf -npm cache add -npm cache add -npm cache add -npm cache add @ - -npm cache ls [] - -npm cache clean [] -.fi -.RE -.SH DESCRIPTION -.P -Used to add, list, or clear the npm cache folder\. -.RS 0 -.IP \(bu 2 -add: -Add the specified package to the local cache\. This command is primarily -intended to be used internally by npm, but it can provide a way to -add data to the local installation cache explicitly\. -.IP \(bu 2 -ls: -Show the data in the cache\. Argument is a path to show in the cache -folder\. Works a bit like the \fBfind\fP program, but limited by the -\fBdepth\fP config\. -.IP \(bu 2 -clean: -Delete data out of the cache folder\. If an argument is provided, then -it specifies a subpath to delete\. If no argument is provided, then -the entire cache is cleared\. - -.RE -.SH DETAILS -.P -npm stores cache data in the directory specified in \fBnpm config get cache\fP\|\. -For each package that is added to the cache, three pieces of information are -stored in \fB{cache}/{name}/{version}\fP: -.RS 0 -.IP \(bu 2 -\|\.\.\./package/package\.json: -The package\.json file, as npm sees it\. -.IP \(bu 2 -\|\.\.\./package\.tgz: -The tarball for that version\. - -.RE -.P -Additionally, whenever a registry request is made, a \fB\|\.cache\.json\fP file -is placed at the corresponding URI, to store the ETag and the requested -data\. This is stored in \fB{cache}/{hostname}/{path}/\.cache\.json\fP\|\. -.P -Commands that make non\-essential registry requests (such as \fBsearch\fP and -\fBview\fP, or the completion scripts) generally specify a minimum timeout\. -If the \fB\|\.cache\.json\fP file is younger than the specified timeout, then -they do not make an HTTP request to the registry\. -.SH CONFIGURATION -.SS cache -.P -Default: \fB~/\.npm\fP on Posix, or \fB%AppData%/npm\-cache\fP on Windows\. -.P -The root cache folder\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help pack - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-completion.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-completion.1 deleted file mode 100644 index 859abbc8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-completion.1 +++ /dev/null @@ -1,42 +0,0 @@ -.TH "NPM\-COMPLETION" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-completion\fR \- Tab Completion for npm -.SH SYNOPSIS -.P -.RS 2 -.nf -source <(npm completion) -.fi -.RE -.SH DESCRIPTION -.P -Enables tab\-completion in all npm commands\. -.P -The synopsis above -loads the completions into your current shell\. Adding it to -your ~/\.bashrc or ~/\.zshrc will make the completions available -everywhere: -.P -.RS 2 -.nf -npm completion >> ~/\.bashrc -npm completion >> ~/\.zshrc -.fi -.RE -.P -You may of course also pipe the output of npm completion to a file -such as \fB/usr/local/etc/bash_completion\.d/npm\fP if you have a system -that will read that file for you\. -.P -When \fBCOMP_CWORD\fP, \fBCOMP_LINE\fP, and \fBCOMP_POINT\fP are defined in the -environment, \fBnpm completion\fP acts in "plumbing mode", and outputs -completions based on the arguments\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 developers -.IP \(bu 2 -npm help npm - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-config.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-config.1 deleted file mode 100644 index bd4b143e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-config.1 +++ /dev/null @@ -1,96 +0,0 @@ -.TH "NPM\-CONFIG" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-config\fR \- Manage the npm configuration files -.SH SYNOPSIS -.P -.RS 2 -.nf -npm config set [\-g|\-\-global] -npm config get -npm config delete -npm config list -npm config edit -npm get -npm set [\-g|\-\-global] - -aliases: c -.fi -.RE -.SH DESCRIPTION -.P -npm gets its config settings from the command line, environment -variables, \fBnpmrc\fP files, and in some cases, the \fBpackage\.json\fP file\. -.P -See npm help 5 npmrc for more information about the npmrc files\. -.P -See npm help 7 \fBnpm\-config\fP for a more thorough discussion of the mechanisms -involved\. -.P -The \fBnpm config\fP command can be used to update and edit the contents -of the user and global npmrc files\. -.SH Sub\-commands -.P -Config supports the following sub\-commands: -.SS set -.P -.RS 2 -.nf -npm config set key value -.fi -.RE -.P -Sets the config key to the value\. -.P -If value is omitted, then it sets it to "true"\. -.SS get -.P -.RS 2 -.nf -npm config get key -.fi -.RE -.P -Echo the config value to stdout\. -.SS list -.P -.RS 2 -.nf -npm config list -.fi -.RE -.P -Show all the config settings\. -.SS delete -.P -.RS 2 -.nf -npm config delete key -.fi -.RE -.P -Deletes the key from all configuration files\. -.SS edit -.P -.RS 2 -.nf -npm config edit -.fi -.RE -.P -Opens the config file in an editor\. Use the \fB\-\-global\fP flag to edit the -global config\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help npm - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-dedupe.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-dedupe.1 deleted file mode 100644 index cfcea6b9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-dedupe.1 +++ /dev/null @@ -1,71 +0,0 @@ -.TH "NPM\-DEDUPE" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-dedupe\fR \- Reduce duplication -.SH SYNOPSIS -.P -.RS 2 -.nf -npm dedupe -npm ddp - -aliases: find\-dupes, ddp -.fi -.RE -.SH DESCRIPTION -.P -Searches the local package tree and attempts to simplify the overall -structure by moving dependencies further up the tree, where they can -be more effectively shared by multiple dependent packages\. -.P -For example, consider this dependency graph: -.P -.RS 2 -.nf -a -+\-\- b <\-\- depends on c@1\.0\.x -| `\-\- c@1\.0\.3 -`\-\- d <\-\- depends on c@~1\.0\.9 - `\-\- c@1\.0\.10 -.fi -.RE -.P -In this case, npm help \fBnpm\-dedupe\fP will transform the tree to: -.P -.RS 2 -.nf -a -+\-\- b -+\-\- d -`\-\- c@1\.0\.10 -.fi -.RE -.P -Because of the hierarchical nature of node's module lookup, b and d -will both get their dependency met by the single c package at the root -level of the tree\. -.P -The deduplication algorithm walks the tree, moving each dependency as far -up in the tree as possible, even if duplicates are not found\. This will -result in both a flat and deduplicated tree\. -.P -If a suitable version exists at the target location in the tree -already, then it will be left untouched, but the other duplicates will -be deleted\. -.P -Arguments are ignored\. Dedupe always acts on the entire tree\. -.P -Modules -.P -Note that this operation transforms the dependency tree, but will never -result in new modules being installed\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help ls -.IP \(bu 2 -npm help update -.IP \(bu 2 -npm help install - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-deprecate.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-deprecate.1 deleted file mode 100644 index 6a284403..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-deprecate.1 +++ /dev/null @@ -1,37 +0,0 @@ -.TH "NPM\-DEPRECATE" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-deprecate\fR \- Deprecate a version of a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm deprecate [@] -.fi -.RE -.SH DESCRIPTION -.P -This command will update the npm registry entry for a package, providing -a deprecation warning to all who attempt to install it\. -.P -It works on version ranges as well as specific versions, so you can do -something like this: -.P -.RS 2 -.nf -npm deprecate my\-thing@"< 0\.2\.3" "critical bug fixed in v0\.2\.3" -.fi -.RE -.P -Note that you must be the package owner to deprecate something\. See the -\fBowner\fP and \fBadduser\fP help topics\. -.P -To un\-deprecate a package, specify an empty string (\fB""\fP) for the \fBmessage\fP argument\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 registry - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-dist-tag.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-dist-tag.1 deleted file mode 100644 index 7c8fe79e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-dist-tag.1 +++ /dev/null @@ -1,109 +0,0 @@ -.TH "NPM\-DIST\-TAG" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-dist-tag\fR \- Modify package distribution tags -.SH SYNOPSIS -.P -.RS 2 -.nf -npm dist\-tag add @ [] -npm dist\-tag rm -npm dist\-tag ls [] - -aliases: dist\-tags -.fi -.RE -.SH DESCRIPTION -.P -Add, remove, and enumerate distribution tags on a package: -.RS 0 -.IP \(bu 2 -add: -Tags the specified version of the package with the specified tag, or the -\fB\-\-tag\fP config if not specified\. -.IP \(bu 2 -rm: -Clear a tag that is no longer in use from the package\. -.IP \(bu 2 -ls: -Show all of the dist\-tags for a package, defaulting to the package in -the current prefix\. - -.RE -.P -A tag can be used when installing packages as a reference to a version instead -of using a specific version number: -.P -.RS 2 -.nf -npm install @ -.fi -.RE -.P -When installing dependencies, a preferred tagged version may be specified: -.P -.RS 2 -.nf -npm install \-\-tag -.fi -.RE -.P -This also applies to \fBnpm dedupe\fP\|\. -.P -Publishing a package sets the \fBlatest\fP tag to the published version unless the -\fB\-\-tag\fP option is used\. For example, \fBnpm publish \-\-tag=beta\fP\|\. -.P -By default, \fBnpm install \fP (without any \fB@\fP or \fB@\fP -specifier) installs the \fBlatest\fP tag\. -.SH PURPOSE -.P -Tags can be used to provide an alias instead of version numbers\. -.P -For example, a project might choose to have multiple streams of development -and use a different tag for each stream, -e\.g\., \fBstable\fP, \fBbeta\fP, \fBdev\fP, \fBcanary\fP\|\. -.P -By default, the \fBlatest\fP tag is used by npm to identify the current version of -a package, and \fBnpm install \fP (without any \fB@\fP or \fB@\fP -specifier) installs the \fBlatest\fP tag\. Typically, projects only use the \fBlatest\fP -tag for stable release versions, and use other tags for unstable versions such -as prereleases\. -.P -The \fBnext\fP tag is used by some projects to identify the upcoming version\. -.P -By default, other than \fBlatest\fP, no tag has any special significance to npm -itself\. -.SH CAVEATS -.P -This command used to be known as \fBnpm tag\fP, which only created new tags, and so -had a different syntax\. -.P -Tags must share a namespace with version numbers, because they are specified in -the same slot: \fBnpm install @\fP vs \fBnpm install @\fP\|\. -.P -Tags that can be interpreted as valid semver ranges will be rejected\. For -example, \fBv1\.4\fP cannot be used as a tag, because it is interpreted by semver as -\fB>=1\.4\.0 <1\.5\.0\fP\|\. See https://github\.com/npm/npm/issues/6082\|\. -.P -The simplest way to avoid semver problems with tags is to use tags that do not -begin with a number or the letter \fBv\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help tag -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help dedupe -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-docs.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-docs.1 deleted file mode 100644 index 0a887f2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-docs.1 +++ /dev/null @@ -1,60 +0,0 @@ -.TH "NPM\-DOCS" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-docs\fR \- Docs for a package in a web browser maybe -.SH SYNOPSIS -.P -.RS 2 -.nf -npm docs [ [ \.\.\.]] -npm docs \. -npm home [ [ \.\.\.]] -npm home \. -.fi -.RE -.SH DESCRIPTION -.P -This command tries to guess at the likely location of a package's -documentation URL, and then tries to open it using the \fB\-\-browser\fP -config param\. You can pass multiple package names at once\. If no -package name is provided, it will search for a \fBpackage\.json\fP in -the current folder and use the \fBname\fP property\. -.SH CONFIGURATION -.SS browser -.RS 0 -.IP \(bu 2 -Default: OS X: \fB"open"\fP, Windows: \fB"start"\fP, Others: \fB"xdg\-open"\fP -.IP \(bu 2 -Type: String - -.RE -.P -The browser that is called by the \fBnpm docs\fP command to open websites\. -.SS registry -.RS 0 -.IP \(bu 2 -Default: https://registry\.npmjs\.org/ -.IP \(bu 2 -Type: url - -.RE -.P -The base URL of the npm package registry\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help view -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 5 package\.json - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-edit.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-edit.1 deleted file mode 100644 index 754fec8d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-edit.1 +++ /dev/null @@ -1,50 +0,0 @@ -.TH "NPM\-EDIT" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-edit\fR \- Edit an installed package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm edit [@] -.fi -.RE -.SH DESCRIPTION -.P -Opens the package folder in the default editor (or whatever you've -configured as the npm \fBeditor\fP config \-\- see npm help 7 \fBnpm\-config\fP\|\.) -.P -After it has been edited, the package is rebuilt so as to pick up any -changes in compiled packages\. -.P -For instance, you can do \fBnpm install connect\fP to install connect -into your package, and then \fBnpm edit connect\fP to make a few -changes to your locally installed copy\. -.SH CONFIGURATION -.SS editor -.RS 0 -.IP \(bu 2 -Default: \fBEDITOR\fP environment variable if set, or \fB"vi"\fP on Posix, -or \fB"notepad"\fP on Windows\. -.IP \(bu 2 -Type: path - -.RE -.P -The command to run for \fBnpm edit\fP or \fBnpm config edit\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help explore -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-explore.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-explore.1 deleted file mode 100644 index fc88e338..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-explore.1 +++ /dev/null @@ -1,55 +0,0 @@ -.TH "NPM\-EXPLORE" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-explore\fR \- Browse an installed package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm explore [ \-\- ] -.fi -.RE -.SH DESCRIPTION -.P -Spawn a subshell in the directory of the installed package specified\. -.P -If a command is specified, then it is run in the subshell, which then -immediately terminates\. -.P -This is particularly handy in the case of git submodules in the -\fBnode_modules\fP folder: -.P -.RS 2 -.nf -npm explore some\-dependency \-\- git pull origin master -.fi -.RE -.P -Note that the package is \fInot\fR automatically rebuilt afterwards, so be -sure to use \fBnpm rebuild \fP if you make any changes\. -.SH CONFIGURATION -.SS shell -.RS 0 -.IP \(bu 2 -Default: SHELL environment variable, or "bash" on Posix, or "cmd" on -Windows -.IP \(bu 2 -Type: path - -.RE -.P -The shell to run for the \fBnpm explore\fP command\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help edit -.IP \(bu 2 -npm help rebuild -.IP \(bu 2 -npm help build -.IP \(bu 2 -npm help install - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-help-search.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-help-search.1 deleted file mode 100644 index 1cf9884a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-help-search.1 +++ /dev/null @@ -1,43 +0,0 @@ -.TH "NPM\-HELP\-SEARCH" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-help-search\fR \- Search npm help documentation -.SH SYNOPSIS -.P -.RS 2 -.nf -npm help\-search -.fi -.RE -.SH DESCRIPTION -.P -This command will search the npm markdown documentation files for the -terms provided, and then list the results, sorted by relevance\. -.P -If only one result is found, then it will show that help topic\. -.P -If the argument to \fBnpm help\fP is not a known help topic, then it will -call \fBhelp\-search\fP\|\. It is rarely if ever necessary to call this -command directly\. -.SH CONFIGURATION -.SS long -.RS 0 -.IP \(bu 2 -Type: Boolean -.IP \(bu 2 -Default: false - -.RE -.P -If true, the "long" flag will cause help\-search to output context around -where the terms were found in the documentation\. -.P -If false, then help\-search will just list out the help topics found\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help npm -.IP \(bu 2 -npm help help - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-help.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-help.1 deleted file mode 100644 index 0c100cee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-help.1 +++ /dev/null @@ -1,54 +0,0 @@ -.TH "NPM\-HELP" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-help\fR \- Get help on npm -.SH SYNOPSIS -.P -.RS 2 -.nf -npm help [] -.fi -.RE -.SH DESCRIPTION -.P -If supplied a topic, then show the appropriate documentation page\. -.P -If the topic does not exist, or if multiple terms are provided, then run -the \fBhelp\-search\fP command to find a match\. Note that, if \fBhelp\-search\fP -finds a single subject, then it will run \fBhelp\fP on that topic, so unique -matches are equivalent to specifying a topic name\. -.SH CONFIGURATION -.SS viewer -.RS 0 -.IP \(bu 2 -Default: "man" on Posix, "browser" on Windows -.IP \(bu 2 -Type: path - -.RE -.P -The program to use to view help content\. -.P -Set to \fB"browser"\fP to view html help content in the default web browser\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help npm -.IP \(bu 2 -README -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help help\-search -.IP \(bu 2 -npm help 7 index - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-init.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-init.1 deleted file mode 100644 index 94955f53..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-init.1 +++ /dev/null @@ -1,49 +0,0 @@ -.TH "NPM\-INIT" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-init\fR \- Interactively create a package\.json file -.SH SYNOPSIS -.P -.RS 2 -.nf -npm init [\-f|\-\-force|\-y|\-\-yes] -.fi -.RE -.SH DESCRIPTION -.P -This will ask you a bunch of questions, and then write a package\.json for you\. -.P -It attempts to make reasonable guesses about what you want things to be set to, -and then writes a package\.json file with the options you've selected\. -.P -If you already have a package\.json file, it'll read that first, and default to -the options in there\. -.P -It is strictly additive, so it does not delete options from your package\.json -without a really good reason to do so\. -.P -If you invoke it with \fB\-f\fP, \fB\-\-force\fP, \fB\-y\fP, or \fB\-\-yes\fP, it will use only -defaults and not prompt you for any options\. -.SH CONFIGURATION -.SS scope -.RS 0 -.IP \(bu 2 -Default: none -.IP \(bu 2 -Type: String - -.RE -.P -The scope under which the new module should be created\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -https://github\.com/isaacs/init\-package\-json -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help version -.IP \(bu 2 -npm help 7 scope - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-install-test.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-install-test.1 deleted file mode 100644 index 6c764d1d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-install-test.1 +++ /dev/null @@ -1,33 +0,0 @@ -.TH "NPM" "" "June 2016" "" "" -.SH "NAME" -\fBnpm\fR -.SH SYNOPSIS -.P -.RS 2 -.nf -npm install\-test (with no args, in package dir) -npm install\-test [<@scope>/] -npm install\-test [<@scope>/]@ -npm install\-test [<@scope>/]@ -npm install\-test [<@scope>/]@ -npm install\-test -npm install\-test -npm install\-test - -alias: npm it -common options: [\-\-save|\-\-save\-dev|\-\-save\-optional] [\-\-save\-exact] [\-\-dry\-run] -.fi -.RE -.SH DESCRIPTION -.P -This command runs an \fBnpm install\fP followed immediately by an \fBnpm test\fP\|\. It -takes exactly the same arguments as \fBnpm install\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help test - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-install.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-install.1 deleted file mode 100644 index b617d603..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-install.1 +++ /dev/null @@ -1,458 +0,0 @@ -.TH "NPM\-INSTALL" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-install\fR \- Install a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm install (with no args, in package dir) -npm install [<@scope>/] -npm install [<@scope>/]@ -npm install [<@scope>/]@ -npm install [<@scope>/]@ -npm install -npm install -npm install - -alias: npm i -common options: [\-S|\-\-save|\-D|\-\-save\-dev|\-O|\-\-save\-optional] [\-E|\-\-save\-exact] [\-B|\-\-save\-bundle] [\-\-dry\-run] -.fi -.RE -.SH DESCRIPTION -.P -This command installs a package, and any packages that it depends on\. If the -package has a shrinkwrap file, the installation of dependencies will be driven -by that\. See npm help shrinkwrap\. -.P -A \fBpackage\fP is: -.RS 0 -.IP \(bu 2 -a) a folder containing a program described by a npm help 5 \fBpackage\.json\fP file -.IP \(bu 2 -b) a gzipped tarball containing (a) -.IP \(bu 2 -c) a url that resolves to (b) -.IP \(bu 2 -d) a \fB@\fP that is published on the registry (see npm help 7 \fBnpm\-registry\fP) with (c) -.IP \(bu 2 -e) a \fB@\fP (see npm help \fBnpm\-dist\-tag\fP) that points to (d) -.IP \(bu 2 -f) a \fB\fP that has a "latest" tag satisfying (e) -.IP \(bu 2 -g) a \fB\fP that resolves to (a) - -.RE -.P -Even if you never publish your package, you can still get a lot of -benefits of using npm if you just want to write a node program (a), and -perhaps if you also want to be able to easily install it elsewhere -after packing it up into a tarball (b)\. -.RS 0 -.IP \(bu 2 -\fBnpm install\fP (in package directory, no arguments): - Install the dependencies in the local node_modules folder\. - In global mode (ie, with \fB\-g\fP or \fB\-\-global\fP appended to the command), - it installs the current package context (ie, the current working - directory) as a global package\. - By default, \fBnpm install\fP will install all modules listed as dependencies - in npm help 5 \fBpackage\.json\fP\|\. - With the \fB\-\-production\fP flag (or when the \fBNODE_ENV\fP environment variable - is set to \fBproduction\fP), npm will not install modules listed in - \fBdevDependencies\fP\|\. -.IP \(bu 2 -\fBnpm install \fP: - Install a package that is sitting in a folder on the filesystem\. -.IP \(bu 2 -\fBnpm install \fP: - Install a package that is sitting on the filesystem\. Note: if you just want - to link a dev directory into your npm root, you can do this more easily by - using \fBnpm link\fP\|\. - Example: -.P -.RS 2 -.nf - npm install \./package\.tgz -.fi -.RE -.IP \(bu 2 -\fBnpm install \fP: - Fetch the tarball url, and then install it\. In order to distinguish between - this and other options, the argument must start with "http://" or "https://" - Example: -.P -.RS 2 -.nf - npm install https://github\.com/indexzero/forever/tarball/v0\.5\.6 -.fi -.RE -.IP \(bu 2 -\fBnpm install [<@scope>/] [\-S|\-\-save|\-D|\-\-save\-dev|\-O|\-\-save\-optional]\fP: - Do a \fB@\fP install, where \fB\fP is the "tag" config\. (See - npm help 7 \fBnpm\-config\fP\|\. The config's default value is \fBlatest\fP\|\.) - In most cases, this will install the latest version - of the module published on npm\. - Example: -.P -.RS 2 -.nf - npm install sax -.fi -.RE - \fBnpm install\fP takes 3 exclusive, optional flags which save or update - the package version in your main package\.json: -.RS 0 -.IP \(bu 2 -\fB\-S, \-\-save\fP: Package will appear in your \fBdependencies\fP\|\. -.IP \(bu 2 -\fB\-D, \-\-save\-dev\fP: Package will appear in your \fBdevDependencies\fP\|\. -.IP \(bu 2 -\fB\-O, \-\-save\-optional\fP: Package will appear in your \fBoptionalDependencies\fP\|\. -When using any of the above options to save dependencies to your -package\.json, there are two additional, optional flags: -.IP \(bu 2 -\fB\-E, \-\-save\-exact\fP: Saved dependencies will be configured with an -exact version rather than using npm's default semver range -operator\. -.IP \(bu 2 -\fB\-B, \-\-save\-bundle\fP: Saved dependencies will also be added to your \fBbundleDependencies\fP list\. -Further, if you have an \fBnpm\-shrinkwrap\.json\fP then it will be updated as -well\. -\fB\fP is optional\. The package will be downloaded from the registry -associated with the specified scope\. If no registry is associated with -the given scope the default registry is assumed\. See npm help 7 \fBnpm\-scope\fP\|\. -Note: if you do not include the @\-symbol on your scope name, npm will -interpret this as a GitHub repository instead, see below\. Scopes names -must also be followed by a slash\. -Examples: -.P -.RS 2 -.nf -npm install sax \-\-save -npm install githubname/reponame -npm install @myorg/privatepackage -npm install node\-tap \-\-save\-dev -npm install dtrace\-provider \-\-save\-optional -npm install readable\-stream \-\-save \-\-save\-exact -npm install ansi\-regex \-\-save \-\-save\-bundle -.fi -.RE - -.RE - -.RE -.P -.RS 2 -.nf -**Note**: If there is a file or folder named `` in the current -working directory, then it will try to install that, and only try to -fetch the package by name if it is not valid\. -.fi -.RE -.RS 0 -.IP \(bu 2 -\fBnpm install [<@scope>/]@\fP: - Install the version of the package that is referenced by the specified tag\. - If the tag does not exist in the registry data for that package, then this - will fail\. - Example: -.P -.RS 2 -.nf - npm install sax@latest - npm install @myorg/mypackage@latest -.fi -.RE -.IP \(bu 2 -\fBnpm install [<@scope>/]@\fP: - Install the specified version of the package\. This will fail if the - version has not been published to the registry\. - Example: -.P -.RS 2 -.nf - npm install sax@0\.1\.1 - npm install @myorg/privatepackage@1\.5\.0 -.fi -.RE -.IP \(bu 2 -\fBnpm install [<@scope>/]@\fP: - Install a version of the package matching the specified version range\. This - will follow the same rules for resolving dependencies described in npm help 5 \fBpackage\.json\fP\|\. - Note that most version ranges must be put in quotes so that your shell will - treat it as a single argument\. - Example: -.P -.RS 2 -.nf - npm install sax@">=0\.1\.0 <0\.2\.0" - npm install @myorg/privatepackage@">=0\.1\.0 <0\.2\.0" -.fi -.RE -.IP \(bu 2 -\fBnpm install \fP: - Installs the package from the hosted git provider, cloning it with - \fBgit\fP\|\. First it tries via the https (git with github) and if that fails, via ssh\. -.P -.RS 2 -.nf - ://[[:]@][:][:][/][#] -.fi -.RE - \fB\fP is one of \fBgit\fP, \fBgit+ssh\fP, \fBgit+http\fP, \fBgit+https\fP, - or \fBgit+file\fP\|\. - If no \fB\fP is specified, then \fBmaster\fP is used\. - If the repository makes use of submodules, those submodules will - be cloned as well\. - The following git environment variables are recognized by npm and will be added - to the environment when running git: -.RS 0 -.IP \(bu 2 -\fBGIT_ASKPASS\fP -.IP \(bu 2 -\fBGIT_PROXY_COMMAND\fP -.IP \(bu 2 -\fBGIT_SSH\fP -.IP \(bu 2 -\fBGIT_SSH_COMMAND\fP -.IP \(bu 2 -\fBGIT_SSL_CAINFO\fP -.IP \(bu 2 -\fBGIT_SSL_NO_VERIFY\fP -See the git man page for details\. -Examples: -.P -.RS 2 -.nf -npm install git+ssh://git@github\.com:npm/npm\.git#v1\.0\.27 -npm install git+https://isaacs@github\.com/npm/npm\.git -npm install git://github\.com/npm/npm\.git#v1\.0\.27 -GIT_SSH_COMMAND='ssh \-i ~/\.ssh/custom_ident' npm install git+ssh://git@github\.com:npm/npm\.git -.fi -.RE - -.RE -.IP \(bu 2 -\fBnpm install /[#]\fP: -.IP \(bu 2 -\fBnpm install github:/[#]\fP: - Install the package at \fBhttps://github\.com/githubname/githubrepo\fP by - attempting to clone it using \fBgit\fP\|\. - If you don't specify a \fIcommit\-ish\fR then \fBmaster\fP will be used\. - Examples: -.P -.RS 2 -.nf - npm install mygithubuser/myproject - npm install github:mygithubuser/myproject -.fi -.RE -.IP \(bu 2 -\fBnpm install gist:[/][#]\fP: - Install the package at \fBhttps://gist\.github\.com/gistID\fP by attempting to - clone it using \fBgit\fP\|\. The GitHub username associated with the gist is - optional and will not be saved in \fBpackage\.json\fP if \fB\-S\fP or \fB\-\-save\fP is used\. - If you don't specify a \fIcommit\-ish\fR then \fBmaster\fP will be used\. - Example: -.P -.RS 2 -.nf - npm install gist:101a11beef -.fi -.RE -.IP \(bu 2 -\fBnpm install bitbucket:/[#]\fP: - Install the package at \fBhttps://bitbucket\.org/bitbucketname/bitbucketrepo\fP - by attempting to clone it using \fBgit\fP\|\. - If you don't specify a \fIcommit\-ish\fR then \fBmaster\fP will be used\. - Example: -.P -.RS 2 -.nf - npm install bitbucket:mybitbucketuser/myproject -.fi -.RE -.IP \(bu 2 -\fBnpm install gitlab:/[#]\fP: - Install the package at \fBhttps://gitlab\.com/gitlabname/gitlabrepo\fP - by attempting to clone it using \fBgit\fP\|\. - If you don't specify a \fIcommit\-ish\fR then \fBmaster\fP will be used\. - Example: -.P -.RS 2 -.nf - npm install gitlab:mygitlabuser/myproject -.fi -.RE - -.RE -.P -You may combine multiple arguments, and even multiple types of arguments\. -For example: -.P -.RS 2 -.nf -npm install sax@">=0\.1\.0 <0\.2\.0" bench supervisor -.fi -.RE -.P -The \fB\-\-tag\fP argument will apply to all of the specified install targets\. If a -tag with the given name exists, the tagged version is preferred over newer -versions\. -.P -The \fB\-\-dry\-run\fP argument will report in the usual way what the install would -have done without actually installing anything\. -.P -The \fB\-f\fP or \fB\-\-force\fP argument will force npm to fetch remote resources even if a -local copy exists on disk\. -.P -.RS 2 -.nf -npm install sax \-\-force -.fi -.RE -.P -The \fB\-g\fP or \fB\-\-global\fP argument will cause npm to install the package globally -rather than locally\. See npm help 5 \fBnpm\-folders\fP\|\. -.P -The \fB\-\-global\-style\fP argument will cause npm to install the package into -your local \fBnode_modules\fP folder with the same layout it uses with the -global \fBnode_modules\fP folder\. Only your direct dependencies will show in -\fBnode_modules\fP and everything they depend on will be flattened in their -\fBnode_modules\fP folders\. This obviously will eliminate some deduping\. -.P -The \fB\-\-ignore\-scripts\fP argument will cause npm to not execute any -scripts defined in the package\.json\. See npm help 7 \fBnpm\-scripts\fP\|\. -.P -The \fB\-\-legacy\-bundling\fP argument will cause npm to install the package such -that versions of npm prior to 1\.4, such as the one included with node 0\.8, -can install the package\. This eliminates all automatic deduping\. -.P -The \fB\-\-link\fP argument will cause npm to link global installs into the -local space in some cases\. -.P -The \fB\-\-no\-bin\-links\fP argument will prevent npm from creating symlinks for -any binaries the package might contain\. -.P -The \fB\-\-no\-optional\fP argument will prevent optional dependencies from -being installed\. -.P -The \fB\-\-no\-shrinkwrap\fP argument, which will ignore an available -shrinkwrap file and use the package\.json instead\. -.P -The \fB\-\-nodedir=/path/to/node/source\fP argument will allow npm to find the -node source code so that npm can compile native modules\. -.P -The \fB\-\-only={prod[uction]|dev[elopment]}\fP argument will cause either only -\fBdevDependencies\fP or only non\-\fBdevDependencies\fP to be installed regardless of the \fBNODE_ENV\fP\|\. -.P -See npm help 7 \fBnpm\-config\fP\|\. Many of the configuration params have some -effect on installation, since that's most of what npm does\. -.SH ALGORITHM -.P -To install a package, npm uses the following algorithm: -.P -.RS 2 -.nf -load the existing node_modules tree from disk -clone the tree -fetch the package\.json and assorted metadata and add it to the clone -walk the clone and add any missing dependencies - dependencies will be added as close to the top as is possible - without breaking any other modules -compare the original tree with the cloned tree and make a list of -actions to take to convert one to the other -execute all of the actions, deepest first - kinds of actions are install, update, remove and move -.fi -.RE -.P -For this \fBpackage{dep}\fP structure: \fBA{B,C}, B{C}, C{D}\fP, -this algorithm produces: -.P -.RS 2 -.nf -A -+\-\- B -+\-\- C -+\-\- D -.fi -.RE -.P -That is, the dependency from B to C is satisfied by the fact that A -already caused C to be installed at a higher level\. D is still installed -at the top level because nothing conflicts with it\. -.P -For \fBA{B,C}, B{C,D@1}, C{D@2}\fP, this algorithm produces: -.P -.RS 2 -.nf -A -+\-\- B -+\-\- C - `\-\- D@2 -+\-\- D@1 -.fi -.RE -.P -Because B's D@1 will be installed in the top level, C now has to install D@2 -privately for itself\. -.P -See npm help 5 folders for a more detailed description of the specific -folder structures that npm creates\. -.SS Limitations of npm's Install Algorithm -.P -There are some very rare and pathological edge\-cases where a cycle can -cause npm to try to install a never\-ending tree of packages\. Here is -the simplest case: -.P -.RS 2 -.nf -A \-> B \-> A' \-> B' \-> A \-> B \-> A' \-> B' \-> A \-> \.\.\. -.fi -.RE -.P -where \fBA\fP is some version of a package, and \fBA'\fP is a different version -of the same package\. Because \fBB\fP depends on a different version of \fBA\fP -than the one that is already in the tree, it must install a separate -copy\. The same is true of \fBA'\fP, which must install \fBB'\fP\|\. Because \fBB'\fP -depends on the original version of \fBA\fP, which has been overridden, the -cycle falls into infinite regress\. -.P -To avoid this situation, npm flat\-out refuses to install any -\fBname@version\fP that is already present anywhere in the tree of package -folder ancestors\. A more correct, but more complex, solution would be -to symlink the existing version into the new location\. If this ever -affects a real use\-case, it will be investigated\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help update -.IP \(bu 2 -npm help link -.IP \(bu 2 -npm help rebuild -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help build -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help tag -.IP \(bu 2 -npm help uninstall -.IP \(bu 2 -npm help shrinkwrap -.IP \(bu 2 -npm help 5 package\.json - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-link.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-link.1 deleted file mode 100644 index 847f39dd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-link.1 +++ /dev/null @@ -1,101 +0,0 @@ -.TH "NPM\-LINK" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-link\fR \- Symlink a package folder -.SH SYNOPSIS -.P -.RS 2 -.nf -npm link (in package dir) -npm link [<@scope>/][@] - -alias: npm ln -.fi -.RE -.SH DESCRIPTION -.P -Package linking is a two\-step process\. -.P -First, \fBnpm link\fP in a package folder will create a symlink in the global folder -\fB{prefix}/lib/node_modules/\fP that links to the package where the \fBnpm -link\fP command was executed\. (see npm help 7 \fBnpm\-config\fP for the value of \fBprefix\fP)\. -.P -Next, in some other location, \fBnpm link package\-name\fP will create a -symbolic link from globally\-installed \fBpackage\-name\fP to \fBnode_modules/\fP -of the current folder\. -.P -Note that \fBpackage\-name\fP is taken from \fBpackage\.json\fP, -not from directory name\. -.P -The package name can be optionally prefixed with a scope\. See npm help 7 \fBnpm\-scope\fP\|\. -The scope must be preceded by an @\-symbol and followed by a slash\. -.P -When creating tarballs for \fBnpm publish\fP, the linked packages are -"snapshotted" to their current state by resolving the symbolic links\. -.P -This is handy for installing your own stuff, so that you can work on it and -test it iteratively without having to continually rebuild\. -.P -For example: -.P -.RS 2 -.nf -cd ~/projects/node\-redis # go into the package directory -npm link # creates global link -cd ~/projects/node\-bloggy # go into some other package directory\. -npm link redis # link\-install the package -.fi -.RE -.P -Now, any changes to ~/projects/node\-redis will be reflected in -~/projects/node\-bloggy/node_modules/node\-redis/\. Note that the link should -be to the package name, not the directory name for that package\. -.P -You may also shortcut the two steps in one\. For example, to do the -above use\-case in a shorter way: -.P -.RS 2 -.nf -cd ~/projects/node\-bloggy # go into the dir of your main project -npm link \.\./node\-redis # link the dir of your dependency -.fi -.RE -.P -The second line is the equivalent of doing: -.P -.RS 2 -.nf -(cd \.\./node\-redis; npm link) -npm link node\-redis -.fi -.RE -.P -That is, it first creates a global link, and then links the global -installation target into your project's \fBnode_modules\fP folder\. -.P -If your linked package is scoped (see npm help 7 \fBnpm\-scope\fP) your link command must -include that scope, e\.g\. -.P -.RS 2 -.nf -npm link @myorg/privatepackage -.fi -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 developers -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-logout.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-logout.1 deleted file mode 100644 index 2cc4416a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-logout.1 +++ /dev/null @@ -1,57 +0,0 @@ -.TH "NPM\-LOGOUT" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-logout\fR \- Log out of the registry -.SH SYNOPSIS -.P -.RS 2 -.nf -npm logout [\-\-registry=] [\-\-scope=<@scope>] -.fi -.RE -.SH DESCRIPTION -.P -When logged into a registry that supports token\-based authentication, tell the -server to end this token's session\. This will invalidate the token everywhere -you're using it, not just for the current environment\. -.P -When logged into a legacy registry that uses username and password authentication, this will -clear the credentials in your user configuration\. In this case, it will \fIonly\fR affect -the current environment\. -.P -If \fB\-\-scope\fP is provided, this will find the credentials for the registry -connected to that scope, if set\. -.SH CONFIGURATION -.SS registry -.P -Default: https://registry\.npmjs\.org/ -.P -The base URL of the npm package registry\. If \fBscope\fP is also specified, -it takes precedence\. -.SS scope -.P -Default: none -.P -If specified, you will be logged out of the specified scope\. See npm help 7 \fBnpm\-scope\fP\|\. -.P -.RS 2 -.nf -npm logout \-\-scope=@myco -.fi -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help adduser -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help whoami - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-ls.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-ls.1 deleted file mode 100644 index d8f924bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-ls.1 +++ /dev/null @@ -1,143 +0,0 @@ -.TH "NPM\-LS" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-ls\fR \- List installed packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm ls [[<@scope>/] \.\.\.] - -aliases: list, la, ll -.fi -.RE -.SH DESCRIPTION -.P -This command will print to stdout all the versions of packages that are -installed, as well as their dependencies, in a tree\-structure\. -.P -Positional arguments are \fBname@version\-range\fP identifiers, which will -limit the results to only the paths to the packages named\. Note that -nested packages will \fIalso\fR show the paths to the specified packages\. -For example, running \fBnpm ls promzard\fP in npm's source tree will show: -.P -.RS 2 -.nf -npm@3.9.6 /path/to/npm -└─┬ init\-package\-json@0\.0\.4 - └── promzard@0\.1\.5 -.fi -.RE -.P -It will print out extraneous, missing, and invalid packages\. -.P -If a project specifies git urls for dependencies these are shown -in parentheses after the name@version to make it easier for users to -recognize potential forks of a project\. -.P -The tree shown is the logical dependency tree, based on package -dependencies, not the physical layout of your node_modules folder\. -.P -When run as \fBll\fP or \fBla\fP, it shows extended information by default\. -.SH CONFIGURATION -.SS json -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show information in JSON format\. -.SS long -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show extended information\. -.SS parseable -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show parseable output instead of tree view\. -.SS global -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -List packages in the global install prefix instead of in the current -project\. -.SS depth -.RS 0 -.IP \(bu 2 -Type: Int - -.RE -.P -Max display depth of the dependency tree\. -.SS prod / production -.RS 0 -.IP \(bu 2 -Type: Boolean -.IP \(bu 2 -Default: false - -.RE -.P -Display only the dependency tree for packages in \fBdependencies\fP\|\. -.SS dev -.RS 0 -.IP \(bu 2 -Type: Boolean -.IP \(bu 2 -Default: false - -.RE -.P -Display only the dependency tree for packages in \fBdevDependencies\fP\|\. -.SS only -.RS 0 -.IP \(bu 2 -Type: String - -.RE -.P -When "dev" or "development", is an alias to \fBdev\fP\|\. -.P -When "prod" or "production", is an alias to \fBproduction\fP\|\.` -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help link -.IP \(bu 2 -npm help prune -.IP \(bu 2 -npm help outdated -.IP \(bu 2 -npm help update - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-outdated.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-outdated.1 deleted file mode 100644 index 85175129..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-outdated.1 +++ /dev/null @@ -1,151 +0,0 @@ -.TH "NPM\-OUTDATED" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-outdated\fR \- Check for outdated packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm outdated [[<@scope>/] \.\.\.] -.fi -.RE -.SH DESCRIPTION -.P -This command will check the registry to see if any (or, specific) installed -packages are currently outdated\. -.P -In the output: -.RS 0 -.IP \(bu 2 -\fBwanted\fP is the maximum version of the package that satisfies the semver -range specified in \fBpackage\.json\fP\|\. If there's no available semver range (i\.e\. -you're running \fBnpm outdated \-\-global\fP, or the package isn't included in -\fBpackage\.json\fP), then \fBwanted\fP shows the currently\-installed version\. -.IP \(bu 2 -\fBlatest\fP is the version of the package tagged as latest in the registry\. -Running \fBnpm publish\fP with no special configuration will publish the package -with a dist\-tag of \fBlatest\fP\|\. This may or may not be the maximum version of -the package, or the most\-recently published version of the package, depending -on how the package's developer manages the latest npm help dist\-tag\. -.IP \(bu 2 -\fBlocation\fP is where in the dependency tree the package is located\. Note that -\fBnpm outdated\fP defaults to a depth of 0, so unless you override that, you'll -always be seeing only top\-level dependencies that are outdated\. -.IP \(bu 2 -\fBpackage type\fP (when using \fB\-\-long\fP / \fB\-l\fP) tells you whether this package is -a \fBdependency\fP or a \fBdevDependency\fP\|\. Packages not included in \fBpackage\.json\fP -are always marked \fBdependencies\fP\|\. - -.RE -.SS An example -.P -.RS 2 -.nf -$ npm outdated -Package Current Wanted Latest Location -glob 5\.0\.15 5\.0\.15 6\.0\.1 test\-outdated\-output -nothingness 0\.0\.3 git git test\-outdated\-output -npm 3\.5\.1 3\.5\.2 3\.5\.1 test\-outdated\-output -local\-dev 0\.0\.3 linked linked test\-outdated\-output -once 1\.3\.2 1\.3\.3 1\.3\.3 test\-outdated\-output -.fi -.RE -.P -With these \fBdependencies\fP: -.P -.RS 2 -.nf -{ - "glob": "^5\.0\.15", - "nothingness": "github:othiym23/nothingness#master", - "npm": "^3\.5\.1", - "once": "^1\.3\.1" -} -.fi -.RE -.P -A few things to note: -.RS 0 -.IP \(bu 2 -\fBglob\fP requires \fB^5\fP, which prevents npm from installing \fBglob@6\fP, which is -outside the semver range\. -.IP \(bu 2 -Git dependencies will always be reinstalled, because of how they're specified\. -The installed committish might satisfy the dependency specifier (if it's -something immutable, like a commit SHA), or it might not, so \fBnpm outdated\fP and -\fBnpm update\fP have to fetch Git repos to check\. This is why currently doing a -reinstall of a Git dependency always forces a new clone and install\. -.IP \(bu 2 -\fBnpm@3\.5\.2\fP is marked as "wanted", but "latest" is \fBnpm@3\.5\.1\fP because npm -uses dist\-tags to manage its \fBlatest\fP and \fBnext\fP release channels\. \fBnpm update\fP -will install the \fInewest\fR version, but \fBnpm install npm\fP (with no semver range) -will install whatever's tagged as \fBlatest\fP\|\. -.IP \(bu 2 -\fBonce\fP is just plain out of date\. Reinstalling \fBnode_modules\fP from scratch or -running \fBnpm update\fP will bring it up to spec\. - -.RE -.SH CONFIGURATION -.SS json -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show information in JSON format\. -.SS long -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show extended information\. -.SS parseable -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show parseable output instead of tree view\. -.SS global -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Check packages in the global install prefix instead of in the current -project\. -.SS depth -.RS 0 -.IP \(bu 2 -Default: 0 -.IP \(bu 2 -Type: Int - -.RE -.P -Max depth for checking dependency tree\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help update -.IP \(bu 2 -npm help dist\-tag -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help 5 folders - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-owner.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-owner.1 deleted file mode 100644 index d5f259ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-owner.1 +++ /dev/null @@ -1,49 +0,0 @@ -.TH "NPM\-OWNER" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-owner\fR \- Manage package owners -.SH SYNOPSIS -.P -.RS 2 -.nf -npm owner add [<@scope>/] -npm owner rm [<@scope>/] -npm owner ls [<@scope>/] - -aliases: author -.fi -.RE -.SH DESCRIPTION -.P -Manage ownership of published packages\. -.RS 0 -.IP \(bu 2 -ls: -List all the users who have access to modify a package and push new versions\. -Handy when you need to know who to bug for help\. -.IP \(bu 2 -add: -Add a new user as a maintainer of a package\. This user is enabled to modify -metadata, publish new versions, and add other owners\. -.IP \(bu 2 -rm: -Remove a user from the package owner list\. This immediately revokes their -privileges\. - -.RE -.P -Note that there is only one level of access\. Either you can modify a package, -or you can't\. Future versions may contain more fine\-grained access levels, but -that is not implemented at this time\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help adduser -.IP \(bu 2 -npm help 7 disputes - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-pack.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-pack.1 deleted file mode 100644 index 494ceb01..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-pack.1 +++ /dev/null @@ -1,37 +0,0 @@ -.TH "NPM\-PACK" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-pack\fR \- Create a tarball from a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm pack [[<@scope>/]\.\.\.] -.fi -.RE -.SH DESCRIPTION -.P -For anything that's installable (that is, a package folder, tarball, -tarball url, name@tag, name@version, name, or scoped name), this -command will fetch it to the cache, and then copy the tarball to the -current working directory as \fB\-\.tgz\fP, and then write -the filenames out to stdout\. -.P -If the same package is specified multiple times, then the file will be -overwritten the second time\. -.P -If no arguments are supplied, then npm packs the current package folder\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help cache -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-ping.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-ping.1 deleted file mode 100644 index 3aee7d9c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-ping.1 +++ /dev/null @@ -1,24 +0,0 @@ -.TH "NPM\-PING" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-ping\fR \- Ping npm registry -.SH SYNOPSIS -.P -.RS 2 -.nf -npm ping [\-\-registry ] -.fi -.RE -.SH DESCRIPTION -.P -Ping the configured or given npm registry and verify authentication\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-prefix.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-prefix.1 deleted file mode 100644 index 10b3c6ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-prefix.1 +++ /dev/null @@ -1,34 +0,0 @@ -.TH "NPM\-PREFIX" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-prefix\fR \- Display prefix -.SH SYNOPSIS -.P -.RS 2 -.nf -npm prefix [\-g] -.fi -.RE -.SH DESCRIPTION -.P -Print the local prefix to standard out\. This is the closest parent directory -to contain a package\.json file unless \fB\-g\fP is also specified\. -.P -If \fB\-g\fP is specified, this will be the value of the global prefix\. See -npm help 7 \fBnpm\-config\fP for more detail\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help root -.IP \(bu 2 -npm help bin -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-prune.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-prune.1 deleted file mode 100644 index 19da451f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-prune.1 +++ /dev/null @@ -1,34 +0,0 @@ -.TH "NPM\-PRUNE" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-prune\fR \- Remove extraneous packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm prune [[<@scope>/]\.\.\.] [\-\-production] -.fi -.RE -.SH DESCRIPTION -.P -This command removes "extraneous" packages\. If a package name is -provided, then only packages matching one of the supplied names are -removed\. -.P -Extraneous packages are packages that are not listed on the parent -package's dependencies list\. -.P -If the \fB\-\-production\fP flag is specified or the \fBNODE_ENV\fP environment -variable is set to \fBproduction\fP, this command will remove the packages -specified in your \fBdevDependencies\fP\|\. Setting \fB\-\-production=false\fP will -negate \fBNODE_ENV\fP being set to \fBproduction\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help uninstall -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help ls - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-publish.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-publish.1 deleted file mode 100644 index cf77289b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-publish.1 +++ /dev/null @@ -1,71 +0,0 @@ -.TH "NPM\-PUBLISH" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-publish\fR \- Publish a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm publish [|] [\-\-tag ] [\-\-access ] - -Publishes '\.' if no argument supplied -Sets tag 'latest' if no \-\-tag specified -.fi -.RE -.SH DESCRIPTION -.P -Publishes a package to the registry so that it can be installed by name\. All -files in the package directory are included if no local \fB\|\.gitignore\fP or -\fB\|\.npmignore\fP file exists\. If both files exist and a file is ignored by -\fB\|\.gitignore\fP but not by \fB\|\.npmignore\fP then it will be included\. See -npm help 7 \fBnpm\-developers\fP for full details on what's included in the published -package, as well as details on how the package is built\. -.P -By default npm will publish to the public registry\. This can be overridden by -specifying a different default registry or using a npm help 7 \fBnpm\-scope\fP in the name -(see npm help 5 \fBpackage\.json\fP)\. -.RS 0 -.IP \(bu 2 -\fB\fP: -A folder containing a package\.json file -.IP \(bu 2 -\fB\fP: -A url or file path to a gzipped tar archive containing a single folder -with a package\.json file inside\. -.IP \(bu 2 -\fB[\-\-tag ]\fP -Registers the published package with the given tag, such that \fBnpm install -@\fP will install this version\. By default, \fBnpm publish\fP updates -and \fBnpm install\fP installs the \fBlatest\fP tag\. See npm help \fBnpm\-dist\-tag\fP for -details about tags\. -.IP \(bu 2 -\fB[\-\-access ]\fP -Tells the registry whether this package should be published as public or -restricted\. Only applies to scoped packages, which default to \fBrestricted\fP\|\. -If you don't have a paid account, you must publish with \fB\-\-access public\fP -to publish scoped packages\. - -.RE -.P -Fails if the package name and version combination already exists in -the specified registry\. -.P -Once a package is published with a given name and version, that -specific name and version combination can never be used again, even if -it is removed with npm help unpublish\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help 7 scope -.IP \(bu 2 -npm help adduser -.IP \(bu 2 -npm help owner -.IP \(bu 2 -npm help deprecate -.IP \(bu 2 -npm help tag - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-rebuild.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-rebuild.1 deleted file mode 100644 index 44dd89da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-rebuild.1 +++ /dev/null @@ -1,26 +0,0 @@ -.TH "NPM\-REBUILD" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-rebuild\fR \- Rebuild a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm rebuild [[<@scope>/]\.\.\.] - -alias: npm rb -.fi -.RE -.SH DESCRIPTION -.P -This command runs the \fBnpm build\fP command on the matched folders\. This is useful -when you install a new version of node, and must recompile all your C++ addons with -the new binary\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help build -.IP \(bu 2 -npm help install - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-repo.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-repo.1 deleted file mode 100644 index 6da71e6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-repo.1 +++ /dev/null @@ -1,36 +0,0 @@ -.TH "NPM\-REPO" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-repo\fR \- Open package repository page in the browser -.SH SYNOPSIS -.P -.RS 2 -.nf -npm repo [] -.fi -.RE -.SH DESCRIPTION -.P -This command tries to guess at the likely location of a package's -repository URL, and then tries to open it using the \fB\-\-browser\fP -config param\. If no package name is provided, it will search for -a \fBpackage\.json\fP in the current folder and use the \fBname\fP property\. -.SH CONFIGURATION -.SS browser -.RS 0 -.IP \(bu 2 -Default: OS X: \fB"open"\fP, Windows: \fB"start"\fP, Others: \fB"xdg\-open"\fP -.IP \(bu 2 -Type: String - -.RE -.P -The browser that is called by the \fBnpm repo\fP command to open websites\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help docs -.IP \(bu 2 -npm help config - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-restart.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-restart.1 deleted file mode 100644 index 10e662a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-restart.1 +++ /dev/null @@ -1,61 +0,0 @@ -.TH "NPM\-RESTART" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-restart\fR \- Restart a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm restart [\-\- ] -.fi -.RE -.SH DESCRIPTION -.P -This restarts a package\. -.P -This runs a package's "stop", "restart", and "start" scripts, and associated -pre\- and post\- scripts, in the order given below: -.RS 0 -.IP 1. 3 -prerestart -.IP 2. 3 -prestop -.IP 3. 3 -stop -.IP 4. 3 -poststop -.IP 5. 3 -restart -.IP 6. 3 -prestart -.IP 7. 3 -start -.IP 8. 3 -poststart -.IP 9. 3 -postrestart - -.RE -.SH NOTE -.P -Note that the "restart" script is run \fBin addition to\fR the "stop" -and "start" scripts, not instead of them\. -.P -This is the behavior as of \fBnpm\fP major version 2\. A change in this -behavior will be accompanied by an increase in major version number -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help test -.IP \(bu 2 -npm help start -.IP \(bu 2 -npm help stop -.IP \(bu 2 -npm apihelp restart - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-root.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-root.1 deleted file mode 100644 index 9b7d7ba6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-root.1 +++ /dev/null @@ -1,30 +0,0 @@ -.TH "NPM\-ROOT" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-root\fR \- Display npm root -.SH SYNOPSIS -.P -.RS 2 -.nf -npm root [\-g] -.fi -.RE -.SH DESCRIPTION -.P -Print the effective \fBnode_modules\fP folder to standard out\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help prefix -.IP \(bu 2 -npm help bin -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-run-script.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-run-script.1 deleted file mode 100644 index f2f6e5a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-run-script.1 +++ /dev/null @@ -1,74 +0,0 @@ -.TH "NPM\-RUN\-SCRIPT" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-run-script\fR \- Run arbitrary package scripts -.SH SYNOPSIS -.P -.RS 2 -.nf -npm run\-script [\-\- \.\.\.] - -alias: npm run -.fi -.RE -.SH DESCRIPTION -.P -This runs an arbitrary command from a package's \fB"scripts"\fP object\. If no -\fB"command"\fP is provided, it will list the available scripts\. \fBrun[\-script]\fP is -used by the test, start, restart, and stop commands, but can be called -directly, as well\. When the scripts in the package are printed out, they're -separated into lifecycle (test, start, restart) and directly\-run scripts\. -.P -As of \fBnpm@2\.0\.0\fP \fIhttp://blog\.npmjs\.org/post/98131109725/npm\-2\-0\-0\fR, you can -use custom arguments when executing scripts\. The special option \fB\-\-\fP is used by -getopt \fIhttp://goo\.gl/KxMmtG\fR to delimit the end of the options\. npm will pass -all the arguments after the \fB\-\-\fP directly to your script: -.P -.RS 2 -.nf -npm run test \-\- \-\-grep="pattern" -.fi -.RE -.P -The arguments will only be passed to the script specified after \fBnpm run\fP -and not to any pre or post script\. -.P -The \fBenv\fP script is a special built\-in command that can be used to list -environment variables that will be available to the script at runtime\. If an -"env" command is defined in your package it will take precedence over the -built\-in\. -.P -In addition to the shell's pre\-existing \fBPATH\fP, \fBnpm run\fP adds -\fBnode_modules/\.bin\fP to the \fBPATH\fP provided to scripts\. Any binaries provided by -locally\-installed dependencies can be used without the \fBnode_modules/\.bin\fP -prefix\. For example, if there is a \fBdevDependency\fP on \fBtap\fP in your package, -you should write: -.P -.RS 2 -.nf -"scripts": {"test": "tap test/\\*\.js"} -.fi -.RE -.P -instead of \fB"scripts": {"test": "node_modules/\.bin/tap test/\\*\.js"}\fP to run your tests\. -.P -\fBnpm run\fP sets the \fBNODE\fP environment variable to the \fBnode\fP executable with -which \fBnpm\fP is executed, and adds the directory within which it resides to the -\fBPATH\fP, too\. -.P -If you try to run a script without having a \fBnode_modules\fP directory and it fails, -you will be given a warning to run \fBnpm install\fP, just in case you've forgotten\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help test -.IP \(bu 2 -npm help start -.IP \(bu 2 -npm help restart -.IP \(bu 2 -npm help stop - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-search.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-search.1 deleted file mode 100644 index 62247cc3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-search.1 +++ /dev/null @@ -1,60 +0,0 @@ -.TH "NPM\-SEARCH" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-search\fR \- Search for packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm search [\-l|\-\-long] [search terms \.\.\.] - -aliases: s, se, find -.fi -.RE -.SH DESCRIPTION -.P -Search the registry for packages matching the search terms\. -.P -If a term starts with \fB/\fP, then it's interpreted as a regular expression\. -A trailing \fB/\fP will be ignored in this case\. (Note that many regular -expression characters must be escaped or quoted in most shells\.) -.SH CONFIGURATION -.SS long -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Display full package descriptions and other long text across multiple -lines\. When disabled (default) search results are truncated to fit -neatly on a single line\. Modules with extremely long names will -fall on multiple lines\. -.SS registry -.RS 0 -.IP \(bu 2 -Default: https://registry\.npmjs\.org/ -.IP \(bu 2 -Type : url - -.RE -.P -Search the specified registry for modules\. If you have configured npm to point to a different default registry, -such as your internal private module repository, \fBnpm search\fP will default to that registry when searching\. -Pass a different registry url such as the default above in order to override this setting\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help view - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-shrinkwrap.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-shrinkwrap.1 deleted file mode 100644 index f00ca28e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-shrinkwrap.1 +++ /dev/null @@ -1,224 +0,0 @@ -.TH "NPM\-SHRINKWRAP" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-shrinkwrap\fR \- Lock down dependency versions -.SH SYNOPSIS -.P -.RS 2 -.nf -npm shrinkwrap -.fi -.RE -.SH DESCRIPTION -.P -This command locks down the versions of a package's dependencies so -that you can control exactly which versions of each dependency will be -used when your package is installed\. The \fBpackage\.json\fP file is still -required if you want to use \fBnpm install\fP\|\. -.P -By default, \fBnpm install\fP recursively installs the target's -dependencies (as specified in \fBpackage\.json\fP), choosing the latest -available version that satisfies the dependency's semver pattern\. In -some situations, particularly when shipping software where each change -is tightly managed, it's desirable to fully specify each version of -each dependency recursively so that subsequent builds and deploys do -not inadvertently pick up newer versions of a dependency that satisfy -the semver pattern\. Specifying specific semver patterns in each -dependency's \fBpackage\.json\fP would facilitate this, but that's not always -possible or desirable, as when another author owns the npm package\. -It's also possible to check dependencies directly into source control, -but that may be undesirable for other reasons\. -.P -As an example, consider package A: -.P -.RS 2 -.nf -{ - "name": "A", - "version": "0\.1\.0", - "dependencies": { - "B": "<0\.1\.0" - } -} -.fi -.RE -.P -package B: -.P -.RS 2 -.nf -{ - "name": "B", - "version": "0\.0\.1", - "dependencies": { - "C": "<0\.1\.0" - } -} -.fi -.RE -.P -and package C: -.P -.RS 2 -.nf -{ - "name": "C", - "version": "0\.0\.1" -} -.fi -.RE -.P -If these are the only versions of A, B, and C available in the -registry, then a normal \fBnpm install A\fP will install: -.P -.RS 2 -.nf -A@0\.1\.0 -`\-\- B@0\.0\.1 - `\-\- C@0\.0\.1 -.fi -.RE -.P -However, if B@0\.0\.2 is published, then a fresh \fBnpm install A\fP will -install: -.P -.RS 2 -.nf -A@0\.1\.0 -`\-\- B@0\.0\.2 - `\-\- C@0\.0\.1 -.fi -.RE -.P -assuming the new version did not modify B's dependencies\. Of course, -the new version of B could include a new version of C and any number -of new dependencies\. If such changes are undesirable, the author of A -could specify a dependency on B@0\.0\.1\. However, if A's author and B's -author are not the same person, there's no way for A's author to say -that he or she does not want to pull in newly published versions of C -when B hasn't changed at all\. -.P -In this case, A's author can run -.P -.RS 2 -.nf -npm shrinkwrap -.fi -.RE -.P -This generates \fBnpm\-shrinkwrap\.json\fP, which will look something like this: -.P -.RS 2 -.nf -{ - "name": "A", - "version": "0\.1\.0", - "dependencies": { - "B": { - "version": "0\.0\.1", - "from": "B@^0\.0\.1", - "resolved": "https://registry\.npmjs\.org/B/\-/B\-0\.0\.1\.tgz", - "dependencies": { - "C": { - "version": "0\.0\.1", - "from": "org/C#v0\.0\.1", - "resolved": "git://github\.com/org/C\.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4" - } - } - } - } -} -.fi -.RE -.P -The shrinkwrap command has locked down the dependencies based on what's -currently installed in \fBnode_modules\fP\|\. The installation behavior is changed to: -.RS 0 -.IP 1. 3 -The module tree described by the shrinkwrap is reproduced\. This means -reproducing the structure described in the file, using the specific files -referenced in "resolved" if available, falling back to normal package -resolution using "version" if one isn't\. -.IP 2. 3 -The tree is walked and any missing dependencies are installed in the usual fashion\. - -.RE -.SS Using shrinkwrapped packages -.P -Using a shrinkwrapped package is no different than using any other -package: you can \fBnpm install\fP it by hand, or add a dependency to your -\fBpackage\.json\fP file and \fBnpm install\fP it\. -.SS Building shrinkwrapped packages -.P -To shrinkwrap an existing package: -.RS 0 -.IP 1. 3 -Run \fBnpm install\fP in the package root to install the current -versions of all dependencies\. -.IP 2. 3 -Validate that the package works as expected with these versions\. -.IP 3. 3 -Run \fBnpm shrinkwrap\fP, add \fBnpm\-shrinkwrap\.json\fP to git, and publish -your package\. - -.RE -.P -To add or update a dependency in a shrinkwrapped package: -.RS 0 -.IP 1. 3 -Run \fBnpm install\fP in the package root to install the current -versions of all dependencies\. -.IP 2. 3 -Add or update dependencies\. \fBnpm install \-\-save\fP each new or updated -package individually to update the \fBpackage\.json\fP and the shrinkwrap\. -Note that they must be explicitly named in order to be installed: running -\fBnpm install\fP with no arguments will merely reproduce the existing -shrinkwrap\. -.IP 3. 3 -Validate that the package works as expected with the new -dependencies\. -.IP 4. 3 -Commit the new \fBnpm\-shrinkwrap\.json\fP, and publish your package\. - -.RE -.P -You can use npm help outdated to view dependencies with newer versions -available\. -.SS Other Notes -.P -A shrinkwrap file must be consistent with the package's \fBpackage\.json\fP -file\. \fBnpm shrinkwrap\fP will fail if required dependencies are not -already installed, since that would result in a shrinkwrap that -wouldn't actually work\. Similarly, the command will fail if there are -extraneous packages (not referenced by \fBpackage\.json\fP), since that would -indicate that \fBpackage\.json\fP is not correct\. -.P -Since \fBnpm shrinkwrap\fP is intended to lock down your dependencies for -production use, \fBdevDependencies\fP will not be included unless you -explicitly set the \fB\-\-dev\fP flag when you run \fBnpm shrinkwrap\fP\|\. If -installed \fBdevDependencies\fP are excluded, then npm will print a -warning\. If you want them to be installed with your module by -default, please consider adding them to \fBdependencies\fP instead\. -.P -If shrinkwrapped package A depends on shrinkwrapped package B, B's -shrinkwrap will not be used as part of the installation of A\. However, -because A's shrinkwrap is constructed from a valid installation of B -and recursively specifies all dependencies, the contents of B's -shrinkwrap will implicitly be included in A's shrinkwrap\. -.SS Caveats -.P -If you wish to lock down the specific bytes included in a package, for -example to have 100% confidence in being able to reproduce a -deployment or build, then you ought to check your dependencies into -source control, or pursue some other mechanism that can verify -contents rather than versions\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help ls - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-star.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-star.1 deleted file mode 100644 index be6dc68d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-star.1 +++ /dev/null @@ -1,30 +0,0 @@ -.TH "NPM\-STAR" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-star\fR \- Mark your favorite packages -.SH SYNOPSIS -.P -.RS 2 -.nf -npm star [\.\.\.] -npm unstar [\.\.\.] -.fi -.RE -.SH DESCRIPTION -.P -"Starring" a package means that you have some interest in it\. It's -a vaguely positive way to show that you care\. -.P -"Unstarring" is the same thing, but in reverse\. -.P -It's a boolean thing\. Starring repeatedly has no additional effect\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help view -.IP \(bu 2 -npm help whoami -.IP \(bu 2 -npm help adduser - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-stars.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-stars.1 deleted file mode 100644 index faef97d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-stars.1 +++ /dev/null @@ -1,30 +0,0 @@ -.TH "NPM\-STARS" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-stars\fR \- View packages marked as favorites -.SH SYNOPSIS -.P -.RS 2 -.nf -npm stars [] -.fi -.RE -.SH DESCRIPTION -.P -If you have starred a lot of neat things and want to find them again -quickly this command lets you do just that\. -.P -You may also want to see your friend's favorite packages, in this case -you will most certainly enjoy this command\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help star -.IP \(bu 2 -npm help view -.IP \(bu 2 -npm help whoami -.IP \(bu 2 -npm help adduser - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-start.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-start.1 deleted file mode 100644 index cb09bea2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-start.1 +++ /dev/null @@ -1,34 +0,0 @@ -.TH "NPM\-START" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-start\fR \- Start a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm start [\-\- ] -.fi -.RE -.SH DESCRIPTION -.P -This runs an arbitrary command specified in the package's \fB"start"\fP property of -its \fB"scripts"\fP object\. If no \fB"start"\fP property is specified on the -\fB"scripts"\fP object, it will run \fBnode server\.js\fP\|\. -.P -As of \fBnpm@2\.0\.0\fP \fIhttp://blog\.npmjs\.org/post/98131109725/npm\-2\-0\-0\fR, you can -use custom arguments when executing scripts\. Refer to npm help run\-script for -more details\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help test -.IP \(bu 2 -npm help restart -.IP \(bu 2 -npm help stop - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-stop.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-stop.1 deleted file mode 100644 index 9fa9e8f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-stop.1 +++ /dev/null @@ -1,28 +0,0 @@ -.TH "NPM\-STOP" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-stop\fR \- Stop a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm stop [\-\- ] -.fi -.RE -.SH DESCRIPTION -.P -This runs a package's "stop" script, if one was provided\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help test -.IP \(bu 2 -npm help start -.IP \(bu 2 -npm help restart - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-tag.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-tag.1 deleted file mode 100644 index 7c4564d5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-tag.1 +++ /dev/null @@ -1,80 +0,0 @@ -.TH "NPM\-TAG" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-tag\fR \- Tag a published version -.SH SYNOPSIS -.P -.RS 2 -.nf -[DEPRECATED] npm tag @ [] -See `dist\-tag` -.fi -.RE -.SH DESCRIPTION -.P -THIS COMMAND IS DEPRECATED\. See npm help dist\-tag for details\. -.P -Tags the specified version of the package with the specified tag, or the -\fB\-\-tag\fP config if not specified\. -.P -A tag can be used when installing packages as a reference to a version instead -of using a specific version number: -.P -.RS 2 -.nf -npm install @ -.fi -.RE -.P -When installing dependencies, a preferred tagged version may be specified: -.P -.RS 2 -.nf -npm install \-\-tag -.fi -.RE -.P -This also applies to \fBnpm dedupe\fP\|\. -.P -Publishing a package always sets the "latest" tag to the published version\. -.SH PURPOSE -.P -Tags can be used to provide an alias instead of version numbers\. For -example, \fBnpm\fP currently uses the tag "next" to identify the upcoming -version, and the tag "latest" to identify the current version\. -.P -A project might choose to have multiple streams of development, e\.g\., -"stable", "canary"\. -.SH CAVEATS -.P -Tags must share a namespace with version numbers, because they are -specified in the same slot: \fBnpm install @\fP vs \fBnpm -install @\fP\|\. -.P -Tags that can be interpreted as valid semver ranges will be -rejected\. For example, \fBv1\.4\fP cannot be used as a tag, because it is -interpreted by semver as \fB>=1\.4\.0 <1\.5\.0\fP\|\. See -https://github\.com/npm/npm/issues/6082\|\. -.P -The simplest way to avoid semver problems with tags is to use tags -that do not begin with a number or the letter \fBv\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help dedupe -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm apihelp tag -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-team.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-team.1 deleted file mode 100644 index d0004763..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-team.1 +++ /dev/null @@ -1,64 +0,0 @@ -.TH "NPM\-TEAM" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-team\fR \- Manage organization teams and team memberships -.SH SYNOPSIS -.P -.RS 2 -.nf -npm team create -npm team destroy - -npm team add -npm team rm - -npm team ls | - -npm team edit -.fi -.RE -.SH DESCRIPTION -.P -Used to manage teams in organizations, and change team memberships\. Does not -handle permissions for packages\. -.P -Teams must always be fully qualified with the organization/scope they belong to -when operating on them, separated by a colon (\fB:\fP)\. That is, if you have a -\fBdevelopers\fP team on a \fBfoo\fP organization, you must always refer to that team as -\fBfoo:developers\fP in these commands\. -.RS 0 -.IP \(bu 2 -create / destroy: -Create a new team, or destroy an existing one\. -.IP \(bu 2 -add / rm: -Add a user to an existing team, or remove a user from a team they belong to\. -.IP \(bu 2 -ls: -If performed on an organization name, will return a list of existing teams -under that organization\. If performed on a team, it will instead return a list -of all users belonging to that particular team\. - -.RE -.SH DETAILS -.P -\fBnpm team\fP always operates directly on the current registry, configurable from -the command line using \fB\-\-registry=\fP\|\. -.P -In order to create teams and manage team membership, you must be a \fIteam admin\fR -under the given organization\. Listing teams and team memberships may be done by -any member of the organizations\. -.P -Organization creation and management of team admins and \fIorganization\fR members -is done through the website, not the npm CLI\. -.P -To use teams to manage permissions on packages belonging to your organization, -use the \fBnpm access\fP command to grant or revoke the appropriate permissions\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help access -.IP \(bu 2 -npm help 7 registry - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-test.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-test.1 deleted file mode 100644 index 18407f3f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-test.1 +++ /dev/null @@ -1,33 +0,0 @@ -.TH "NPM\-TEST" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-test\fR \- Test a package -.SH SYNOPSIS -.P -.RS 2 -.nf - npm test [\-\- ] - - aliases: t, tst -.fi -.RE -.SH DESCRIPTION -.P -This runs a package's "test" script, if one was provided\. -.P -To run tests as a condition of installation, set the \fBnpat\fP config to -true\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help start -.IP \(bu 2 -npm help restart -.IP \(bu 2 -npm help stop - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-uninstall.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-uninstall.1 deleted file mode 100644 index c248eaef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-uninstall.1 +++ /dev/null @@ -1,72 +0,0 @@ -.TH "NPM\-UNINSTALL" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-uninstall\fR \- Remove a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm uninstall [<@scope>/][@]\.\.\. [\-S|\-\-save|\-D|\-\-save\-dev|\-O|\-\-save\-optional] - -aliases: remove, rm, r, un, unlink -.fi -.RE -.SH DESCRIPTION -.P -This uninstalls a package, completely removing everything npm installed -on its behalf\. -.P -Example: -.P -.RS 2 -.nf -npm uninstall sax -.fi -.RE -.P -In global mode (ie, with \fB\-g\fP or \fB\-\-global\fP appended to the command), -it uninstalls the current package context as a global package\. -.P -\fBnpm uninstall\fP takes 3 exclusive, optional flags which save or update -the package version in your main package\.json: -.RS 0 -.IP \(bu 2 -\fB\-S, \-\-save\fP: Package will be removed from your \fBdependencies\fP\|\. -.IP \(bu 2 -\fB\-D, \-\-save\-dev\fP: Package will be removed from your \fBdevDependencies\fP\|\. -.IP \(bu 2 -\fB\-O, \-\-save\-optional\fP: Package will be removed from your \fBoptionalDependencies\fP\|\. - -.RE -.P -Further, if you have an \fBnpm\-shrinkwrap\.json\fP then it will be updated as -well\. -.P -Scope is optional and follows the usual rules for npm help 7 \fBnpm\-scope\fP\|\. -.P -Examples: -.P -.RS 2 -.nf -npm uninstall sax \-\-save -npm uninstall @myorg/privatepackage \-\-save -npm uninstall node\-tap \-\-save\-dev -npm uninstall dtrace\-provider \-\-save\-optional -.fi -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help prune -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-unpublish.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-unpublish.1 deleted file mode 100644 index 1d1a4777..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-unpublish.1 +++ /dev/null @@ -1,47 +0,0 @@ -.TH "NPM\-UNPUBLISH" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-unpublish\fR \- Remove a package from the registry -.SH SYNOPSIS -.P -.RS 2 -.nf -npm unpublish [<@scope>/][@] -.fi -.RE -.SH WARNING -.P -\fBIt is generally considered bad behavior to remove versions of a library -that others are depending on!\fR -.P -Consider using the \fBdeprecate\fP command -instead, if your intent is to encourage users to upgrade\. -.P -There is plenty of room on the registry\. -.SH DESCRIPTION -.P -This removes a package version from the registry, deleting its -entry and removing the tarball\. -.P -If no version is specified, or if all versions are removed then -the root package entry is removed from the registry entirely\. -.P -Even if a package version is unpublished, that specific name and -version combination can never be reused\. In order to publish the -package again, a new version number must be used\. -.P -The scope is optional and follows the usual rules for npm help 7 \fBnpm\-scope\fP\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help deprecate -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help adduser -.IP \(bu 2 -npm help owner - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-update.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-update.1 deleted file mode 100644 index 3c2ff59e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-update.1 +++ /dev/null @@ -1,167 +0,0 @@ -.TH "NPM\-UPDATE" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-update\fR \- Update a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm update [\-g] [\.\.\.] - -aliases: up, upgrade -.fi -.RE -.SH DESCRIPTION -.P -This command will update all the packages listed to the latest version -(specified by the \fBtag\fP config), respecting semver\. -.P -It will also install missing packages\. As with all commands that install -packages, the \fB\-\-dev\fP flag will cause \fBdevDependencies\fP to be processed -as well\. -.P -If the \fB\-g\fP flag is specified, this command will update globally installed -packages\. -.P -If no package name is specified, all packages in the specified location (global -or local) will be updated\. -.P -As of \fBnpm@2\.6\.1\fP, the \fBnpm update\fP will only inspect top\-level packages\. -Prior versions of \fBnpm\fP would also recursively inspect all dependencies\. -To get the old behavior, use \fBnpm \-\-depth 9999 update\fP\|\. -.SH EXAMPLES -.P -IMPORTANT VERSION NOTE: these examples assume \fBnpm@2\.6\.1\fP or later\. For -older versions of \fBnpm\fP, you must specify \fB\-\-depth 0\fP to get the behavior -described below\. -.P -For the examples below, assume that the current package is \fBapp\fP and it depends -on dependencies, \fBdep1\fP (\fBdep2\fP, \.\. etc\.)\. The published versions of \fBdep1\fP are: -.P -.RS 2 -.nf -{ - "dist\-tags": { "latest": "1\.2\.2" }, - "versions": [ - "1\.2\.2", - "1\.2\.1", - "1\.2\.0", - "1\.1\.2", - "1\.1\.1", - "1\.0\.0", - "0\.4\.1", - "0\.4\.0", - "0\.2\.0" - ] -} -.fi -.RE -.SS Caret Dependencies -.P -If \fBapp\fP\|'s \fBpackage\.json\fP contains: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "^1\.1\.1" -} -.fi -.RE -.P -Then \fBnpm update\fP will install \fBdep1@1\.2\.2\fP, because \fB1\.2\.2\fP is \fBlatest\fP and -\fB1\.2\.2\fP satisfies \fB^1\.1\.1\fP\|\. -.SS Tilde Dependencies -.P -However, if \fBapp\fP\|'s \fBpackage\.json\fP contains: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "~1\.1\.1" -} -.fi -.RE -.P -In this case, running \fBnpm update\fP will install \fBdep1@1\.1\.2\fP\|\. Even though the \fBlatest\fP -tag points to \fB1\.2\.2\fP, this version does not satisfy \fB~1\.1\.1\fP, which is equivalent -to \fB>=1\.1\.1 <1\.2\.0\fP\|\. So the highest\-sorting version that satisfies \fB~1\.1\.1\fP is used, -which is \fB1\.1\.2\fP\|\. -.SS Caret Dependencies below 1\.0\.0 -.P -Suppose \fBapp\fP has a caret dependency on a version below \fB1\.0\.0\fP, for example: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "^0\.2\.0" -} -.fi -.RE -.P -\fBnpm update\fP will install \fBdep1@0\.2\.0\fP, because there are no other -versions which satisfy \fB^0\.2\.0\fP\|\. -.P -If the dependence were on \fB^0\.4\.0\fP: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "^0\.4\.0" -} -.fi -.RE -.P -Then \fBnpm update\fP will install \fBdep1@0\.4\.1\fP, because that is the highest\-sorting -version that satisfies \fB^0\.4\.0\fP (\fB>= 0\.4\.0 <0\.5\.0\fP) -.SS Recording Updates with \fB\-\-save\fP -.P -When you want to update a package and save the new version as -the minimum required dependency in \fBpackage\.json\fP, you can use -\fBnpm update \-S\fP or \fBnpm update \-\-save\fP\|\. For example if -\fBpackage\.json\fP contains: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "^1\.1\.1" -} -.fi -.RE -.P -Then \fBnpm update \-\-save\fP will install \fBdep1@1\.2\.2\fP (i\.e\., \fBlatest\fP), -and \fBpackage\.json\fP will be modified: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "^1\.2\.2" -} -.fi -.RE -.P -Note that \fBnpm\fP will only write an updated version to \fBpackage\.json\fP -if it installs a new package\. -.SS Updating Globally\-Installed Packages -.P -\fBnpm update \-g\fP will apply the \fBupdate\fP action to each globally installed -package that is \fBoutdated\fP \-\- that is, has a version that is different from -\fBlatest\fP\|\. -.P -NOTE: If a package has been upgraded to a version newer than \fBlatest\fP, it will -be \fIdowngraded\fR\|\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help outdated -.IP \(bu 2 -npm help shrinkwrap -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help ls - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-version.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-version.1 deleted file mode 100644 index 2ddcabd6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-version.1 +++ /dev/null @@ -1,129 +0,0 @@ -.TH "NPM\-VERSION" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-version\fR \- Bump a package version -.SH SYNOPSIS -.P -.RS 2 -.nf -npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease | from\-git] - -\|'npm [\-v | \-\-version]' to print npm version -\|'npm view version' to view a package's published version -\|'npm ls' to inspect current package/dependency versions -.fi -.RE -.SH DESCRIPTION -.P -Run this in a package directory to bump the version and write the new -data back to \fBpackage\.json\fP and, if present, \fBnpm\-shrinkwrap\.json\fP\|\. -.P -The \fBnewversion\fP argument should be a valid semver string, a -valid second argument to semver\.inc \fIhttps://github\.com/npm/node\-semver#functions\fR (one of \fBpatch\fP, \fBminor\fP, \fBmajor\fP, -\fBprepatch\fP, \fBpreminor\fP, \fBpremajor\fP, \fBprerelease\fP), or \fBfrom\-git\fP\|\. In the second case, -the existing version will be incremented by 1 in the specified field\. -\fBfrom\-git\fP will try to read the latest git tag, and use that as the new npm version\. -.P -If run in a git repo, it will also create a version commit and tag\. -This behavior is controlled by \fBgit\-tag\-version\fP (see below), and can -be disabled on the command line by running \fBnpm \-\-no\-git\-tag\-version version\fP\|\. -It will fail if the working directory is not clean, unless the \fB\-f\fP or -\fB\-\-force\fP flag is set\. -.P -If supplied with \fB\-m\fP or \fB\-\-message\fP config option, npm will -use it as a commit message when creating a version commit\. If the -\fBmessage\fP config contains \fB%s\fP then that will be replaced with the -resulting version number\. For example: -.P -.RS 2 -.nf -npm version patch \-m "Upgrade to %s for reasons" -.fi -.RE -.P -If the \fBsign\-git\-tag\fP config is set, then the tag will be signed using -the \fB\-s\fP flag to git\. Note that you must have a default GPG key set up -in your git config for this to work properly\. For example: -.P -.RS 2 -.nf -$ npm config set sign\-git\-tag true -$ npm version patch - -You need a passphrase to unlock the secret key for -user: "isaacs (http://blog\.izs\.me/) " -2048\-bit RSA key, ID 6C481CF6, created 2010\-08\-31 - -Enter passphrase: -.fi -.RE -.P -If \fBpreversion\fP, \fBversion\fP, or \fBpostversion\fP are in the \fBscripts\fP property of -the package\.json, they will be executed as part of running \fBnpm version\fP\|\. -.P -The exact order of execution is as follows: -.RS 0 -.IP 1. 3 -Check to make sure the git working directory is clean before we get started\. -Your scripts may add files to the commit in future steps\. -This step is skipped if the \fB\-\-force\fP flag is set\. -.IP 2. 3 -Run the \fBpreversion\fP script\. These scripts have access to the old \fBversion\fP in package\.json\. -A typical use would be running your full test suite before deploying\. -Any files you want added to the commit should be explicitly added using \fBgit add\fP\|\. -.IP 3. 3 -Bump \fBversion\fP in \fBpackage\.json\fP as requested (\fBpatch\fP, \fBminor\fP, \fBmajor\fP, etc)\. -.IP 4. 3 -Run the \fBversion\fP script\. These scripts have access to the new \fBversion\fP in package\.json -(so they can incorporate it into file headers in generated files for example)\. -Again, scripts should explicitly add generated files to the commit using \fBgit add\fP\|\. -.IP 5. 3 -Commit and tag\. -.IP 6. 3 -Run the \fBpostversion\fP script\. Use it to clean up the file system or automatically push -the commit and/or tag\. - -.RE -.P -Take the following example: -.P -.RS 2 -.nf -"scripts": { - "preversion": "npm test", - "version": "npm run build && git add \-A dist", - "postversion": "git push && git push \-\-tags && rm \-rf build/temp" -} -.fi -.RE -.P -This runs all your tests, and proceeds only if they pass\. Then runs your \fBbuild\fP script, and -adds everything in the \fBdist\fP directory to the commit\. After the commit, it pushes the new commit -and tag up to the server, and deletes the \fBbuild/temp\fP directory\. -.SH CONFIGURATION -.SS git\-tag\-version -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Commit and tag the version change\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help init -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help 7 semver -.IP \(bu 2 -npm help 7 config - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-view.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-view.1 deleted file mode 100644 index a1261bd5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-view.1 +++ /dev/null @@ -1,146 +0,0 @@ -.TH "NPM\-VIEW" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-view\fR \- View registry info -.SH SYNOPSIS -.P -.RS 2 -.nf -npm view [<@scope>/][@] [[\.]\.\.\.] - -aliases: info, show, v -.fi -.RE -.SH DESCRIPTION -.P -This command shows data about a package and prints it to the stream -referenced by the \fBoutfd\fP config, which defaults to stdout\. -.P -To show the package registry entry for the \fBconnect\fP package, you can do -this: -.P -.RS 2 -.nf -npm view connect -.fi -.RE -.P -The default version is "latest" if unspecified\. -.P -Field names can be specified after the package descriptor\. -For example, to show the dependencies of the \fBronn\fP package at version -0\.3\.5, you could do the following: -.P -.RS 2 -.nf -npm view ronn@0\.3\.5 dependencies -.fi -.RE -.P -You can view child fields by separating them with a period\. -To view the git repository URL for the latest version of npm, you could -do this: -.P -.RS 2 -.nf -npm view npm repository\.url -.fi -.RE -.P -This makes it easy to view information about a dependency with a bit of -shell scripting\. For example, to view all the data about the version of -opts that ronn depends on, you can do this: -.P -.RS 2 -.nf -npm view opts@$(npm view ronn dependencies\.opts) -.fi -.RE -.P -For fields that are arrays, requesting a non\-numeric field will return -all of the values from the objects in the list\. For example, to get all -the contributor names for the "express" project, you can do this: -.P -.RS 2 -.nf -npm view express contributors\.email -.fi -.RE -.P -You may also use numeric indices in square braces to specifically select -an item in an array field\. To just get the email address of the first -contributor in the list, you can do this: -.P -.RS 2 -.nf -npm view express contributors[0]\.email -.fi -.RE -.P -Multiple fields may be specified, and will be printed one after another\. -For example, to get all the contributor names and email addresses, you -can do this: -.P -.RS 2 -.nf -npm view express contributors\.name contributors\.email -.fi -.RE -.P -"Person" fields are shown as a string if they would be shown as an -object\. So, for example, this will show the list of npm contributors in -the shortened string format\. (See npm help 5 \fBpackage\.json\fP for more on this\.) -.P -.RS 2 -.nf -npm view npm contributors -.fi -.RE -.P -If a version range is provided, then data will be printed for every -matching version of the package\. This will show which version of jsdom -was required by each matching version of yui3: -.P -.RS 2 -.nf -npm view yui3@'>0\.5\.4' dependencies\.jsdom -.fi -.RE -.P -To show the \fBconnect\fP package version history, you can do -this: -.P -.RS 2 -.nf -npm view connect versions -.fi -.RE -.SH OUTPUT -.P -If only a single string field for a single version is output, then it -will not be colorized or quoted, so as to enable piping the output to -another command\. If the field is an object, it will be output as a JavaScript object literal\. -.P -If the \-\-json flag is given, the outputted fields will be JSON\. -.P -If the version range matches multiple versions, than each printed value -will be prefixed with the version it applies to\. -.P -If multiple fields are requested, than each of them are prefixed with -the field name\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help search -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help docs - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-whoami.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-whoami.1 deleted file mode 100644 index 2fe942f8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm-whoami.1 +++ /dev/null @@ -1,26 +0,0 @@ -.TH "NPM\-WHOAMI" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-whoami\fR \- Display npm username -.SH SYNOPSIS -.P -.RS 2 -.nf -npm whoami [\-\-registry ] -.fi -.RE -.SH DESCRIPTION -.P -Print the \fBusername\fP config to standard output\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help adduser - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm.1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm.1 deleted file mode 100644 index 8e454a08..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man1/npm.1 +++ /dev/null @@ -1,205 +0,0 @@ -.TH "NPM" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm\fR \- javascript package manager -.SH SYNOPSIS -.P -.RS 2 -.nf -npm [args] -.fi -.RE -.SH VERSION -.P -3.9.6 -.SH DESCRIPTION -.P -npm is the package manager for the Node JavaScript platform\. It puts -modules in place so that node can find them, and manages dependency -conflicts intelligently\. -.P -It is extremely configurable to support a wide variety of use cases\. -Most commonly, it is used to publish, discover, install, and develop node -programs\. -.P -Run \fBnpm help\fP to get a list of available commands\. -.SH INTRODUCTION -.P -You probably got npm because you want to install stuff\. -.P -Use \fBnpm install blerg\fP to install the latest version of "blerg"\. Check out -npm help \fBnpm\-install\fP for more info\. It can do a lot of stuff\. -.P -Use the \fBnpm search\fP command to show everything that's available\. -Use \fBnpm ls\fP to show everything you've installed\. -.SH DEPENDENCIES -.P -If a package references to another package with a git URL, npm depends -on a preinstalled git\. -.P -If one of the packages npm tries to install is a native node module and -requires compiling of C++ Code, npm will use -node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR for that task\. -For a Unix system, node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR -needs Python, make and a buildchain like GCC\. On Windows, -Python and Microsoft Visual Studio C++ are needed\. Python 3 is -not supported by node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR\|\. -For more information visit -the node\-gyp repository \fIhttps://github\.com/TooTallNate/node\-gyp\fR and -the node\-gyp Wiki \fIhttps://github\.com/TooTallNate/node\-gyp/wiki\fR\|\. -.SH DIRECTORIES -.P -See npm help 5 \fBnpm\-folders\fP to learn about where npm puts stuff\. -.P -In particular, npm has two modes of operation: -.RS 0 -.IP \(bu 2 -global mode: -.br -npm installs packages into the install prefix at -\fBprefix/lib/node_modules\fP and bins are installed in \fBprefix/bin\fP\|\. -.IP \(bu 2 -local mode: -.br -npm installs packages into the current project directory, which -defaults to the current working directory\. Packages are installed to -\fB\|\./node_modules\fP, and bins are installed to \fB\|\./node_modules/\.bin\fP\|\. - -.RE -.P -Local mode is the default\. Use \fB\-g\fP or \fB\-\-global\fP on any command to -operate in global mode instead\. -.SH DEVELOPER USAGE -.P -If you're using npm to develop and publish your code, check out the -following help topics: -.RS 0 -.IP \(bu 2 -json: -Make a package\.json file\. See npm help 5 \fBpackage\.json\fP\|\. -.IP \(bu 2 -link: -For linking your current working code into Node's path, so that you -don't have to reinstall every time you make a change\. Use -\fBnpm link\fP to do this\. -.IP \(bu 2 -install: -It's a good idea to install things if you don't need the symbolic link\. -Especially, installing other peoples code from the registry is done via -\fBnpm install\fP -.IP \(bu 2 -adduser: -Create an account or log in\. Credentials are stored in the -user config file\. -.IP \(bu 2 -publish: -Use the \fBnpm publish\fP command to upload your code to the registry\. - -.RE -.SH CONFIGURATION -.P -npm is extremely configurable\. It reads its configuration options from -5 places\. -.RS 0 -.IP \(bu 2 -Command line switches: -.br -Set a config with \fB\-\-key val\fP\|\. All keys take a value, even if they -are booleans (the config parser doesn't know what the options are at -the time of parsing\.) If no value is provided, then the option is set -to boolean \fBtrue\fP\|\. -.IP \(bu 2 -Environment Variables: -.br -Set any config by prefixing the name in an environment variable with -\fBnpm_config_\fP\|\. For example, \fBexport npm_config_key=val\fP\|\. -.IP \(bu 2 -User Configs: -.br -The file at $HOME/\.npmrc is an ini\-formatted list of configs\. If -present, it is parsed\. If the \fBuserconfig\fP option is set in the cli -or env, then that will be used instead\. -.IP \(bu 2 -Global Configs: -.br -The file found at \.\./etc/npmrc (from the node executable, by default -this resolves to /usr/local/etc/npmrc) will be parsed if it is found\. -If the \fBglobalconfig\fP option is set in the cli, env, or user config, -then that file is parsed instead\. -.IP \(bu 2 -Defaults: -.br -npm's default configuration options are defined in -lib/utils/config\-defs\.js\. These must not be changed\. - -.RE -.P -See npm help 7 \fBnpm\-config\fP for much much more information\. -.SH CONTRIBUTIONS -.P -Patches welcome! -.RS 0 -.IP \(bu 2 -code: -Read through npm help 7 \fBnpm\-coding\-style\fP if you plan to submit code\. -You don't have to agree with it, but you do have to follow it\. -.IP \(bu 2 -docs: -If you find an error in the documentation, edit the appropriate markdown -file in the "doc" folder\. (Don't worry about generating the man page\.) - -.RE -.P -Contributors are listed in npm's \fBpackage\.json\fP file\. You can view them -easily by doing \fBnpm view npm contributors\fP\|\. -.P -If you would like to contribute, but don't know what to work on, read -the contributing guidelines and check the issues list\. -.RS 0 -.IP \(bu 2 -https://github\.com/npm/npm/wiki/Contributing\-Guidelines -.IP \(bu 2 -https://github\.com/npm/npm/issues - -.RE -.SH BUGS -.P -When you find issues, please report them: -.RS 0 -.IP \(bu 2 -web: -https://github\.com/npm/npm/issues - -.RE -.P -Be sure to include \fIall\fR of the output from the npm command that didn't work -as expected\. The \fBnpm\-debug\.log\fP file is also helpful to provide\. -.P -You can also look for isaacs in #node\.js on irc://irc\.freenode\.net\. He -will no doubt tell you to put the output in a gist or email\. -.SH AUTHOR -.P -Isaac Z\. Schlueter \fIhttp://blog\.izs\.me/\fR :: -isaacs \fIhttps://github\.com/isaacs/\fR :: -@izs \fIhttp://twitter\.com/izs\fR :: -i@izs\.me -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help help -.IP \(bu 2 -README -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 index - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npm-folders.5 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npm-folders.5 deleted file mode 100644 index e5d5002c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npm-folders.5 +++ /dev/null @@ -1,227 +0,0 @@ -.TH "NPM\-FOLDERS" "5" "June 2016" "" "" -.SH "NAME" -\fBnpm-folders\fR \- Folder Structures Used by npm -.SH DESCRIPTION -.P -npm puts various things on your computer\. That's its job\. -.P -This document will tell you what it puts where\. -.SS tl;dr -.RS 0 -.IP \(bu 2 -Local install (default): puts stuff in \fB\|\./node_modules\fP of the current -package root\. -.IP \(bu 2 -Global install (with \fB\-g\fP): puts stuff in /usr/local or wherever node -is installed\. -.IP \(bu 2 -Install it \fBlocally\fR if you're going to \fBrequire()\fP it\. -.IP \(bu 2 -Install it \fBglobally\fR if you're going to run it on the command line\. -.IP \(bu 2 -If you need both, then install it in both places, or use \fBnpm link\fP\|\. - -.RE -.SS prefix Configuration -.P -The \fBprefix\fP config defaults to the location where node is installed\. -On most systems, this is \fB/usr/local\fP\|\. On windows, this is the exact -location of the node\.exe binary\. On Unix systems, it's one level up, -since node is typically installed at \fB{prefix}/bin/node\fP rather than -\fB{prefix}/node\.exe\fP\|\. -.P -When the \fBglobal\fP flag is set, npm installs things into this prefix\. -When it is not set, it uses the root of the current package, or the -current working directory if not in a package already\. -.SS Node Modules -.P -Packages are dropped into the \fBnode_modules\fP folder under the \fBprefix\fP\|\. -When installing locally, this means that you can -\fBrequire("packagename")\fP to load its main module, or -\fBrequire("packagename/lib/path/to/sub/module")\fP to load other modules\. -.P -Global installs on Unix systems go to \fB{prefix}/lib/node_modules\fP\|\. -Global installs on Windows go to \fB{prefix}/node_modules\fP (that is, no -\fBlib\fP folder\.) -.P -Scoped packages are installed the same way, except they are grouped together -in a sub\-folder of the relevant \fBnode_modules\fP folder with the name of that -scope prefix by the @ symbol, e\.g\. \fBnpm install @myorg/package\fP would place -the package in \fB{prefix}/node_modules/@myorg/package\fP\|\. See npm help 7 \fBscope\fP for -more details\. -.P -If you wish to \fBrequire()\fP a package, then install it locally\. -.SS Executables -.P -When in global mode, executables are linked into \fB{prefix}/bin\fP on Unix, -or directly into \fB{prefix}\fP on Windows\. -.P -When in local mode, executables are linked into -\fB\|\./node_modules/\.bin\fP so that they can be made available to scripts run -through npm\. (For example, so that a test runner will be in the path -when you run \fBnpm test\fP\|\.) -.SS Man Pages -.P -When in global mode, man pages are linked into \fB{prefix}/share/man\fP\|\. -.P -When in local mode, man pages are not installed\. -.P -Man pages are not installed on Windows systems\. -.SS Cache -.P -See npm help \fBnpm\-cache\fP\|\. Cache files are stored in \fB~/\.npm\fP on Posix, or -\fB~/npm\-cache\fP on Windows\. -.P -This is controlled by the \fBcache\fP configuration param\. -.SS Temp Files -.P -Temporary files are stored by default in the folder specified by the -\fBtmp\fP config, which defaults to the TMPDIR, TMP, or TEMP environment -variables, or \fB/tmp\fP on Unix and \fBc:\\windows\\temp\fP on Windows\. -.P -Temp files are given a unique folder under this root for each run of the -program, and are deleted upon successful exit\. -.SH More Information -.P -When installing locally, npm first tries to find an appropriate -\fBprefix\fP folder\. This is so that \fBnpm install foo@1\.2\.3\fP will install -to the sensible root of your package, even if you happen to have \fBcd\fPed -into some other folder\. -.P -Starting at the $PWD, npm will walk up the folder tree checking for a -folder that contains either a \fBpackage\.json\fP file, or a \fBnode_modules\fP -folder\. If such a thing is found, then that is treated as the effective -"current directory" for the purpose of running npm commands\. (This -behavior is inspired by and similar to git's \.git\-folder seeking -logic when running git commands in a working dir\.) -.P -If no package root is found, then the current folder is used\. -.P -When you run \fBnpm install foo@1\.2\.3\fP, then the package is loaded into -the cache, and then unpacked into \fB\|\./node_modules/foo\fP\|\. Then, any of -foo's dependencies are similarly unpacked into -\fB\|\./node_modules/foo/node_modules/\.\.\.\fP\|\. -.P -Any bin files are symlinked to \fB\|\./node_modules/\.bin/\fP, so that they may -be found by npm scripts when necessary\. -.SS Global Installation -.P -If the \fBglobal\fP configuration is set to true, then npm will -install packages "globally"\. -.P -For global installation, packages are installed roughly the same way, -but using the folders described above\. -.SS Cycles, Conflicts, and Folder Parsimony -.P -Cycles are handled using the property of node's module system that it -walks up the directories looking for \fBnode_modules\fP folders\. So, at every -stage, if a package is already installed in an ancestor \fBnode_modules\fP -folder, then it is not installed at the current location\. -.P -Consider the case above, where \fBfoo \-> bar \-> baz\fP\|\. Imagine if, in -addition to that, baz depended on bar, so you'd have: -\fBfoo \-> bar \-> baz \-> bar \-> baz \.\.\.\fP\|\. However, since the folder -structure is: \fBfoo/node_modules/bar/node_modules/baz\fP, there's no need to -put another copy of bar into \fB\|\.\.\./baz/node_modules\fP, since when it calls -require("bar"), it will get the copy that is installed in -\fBfoo/node_modules/bar\fP\|\. -.P -This shortcut is only used if the exact same -version would be installed in multiple nested \fBnode_modules\fP folders\. It -is still possible to have \fBa/node_modules/b/node_modules/a\fP if the two -"a" packages are different versions\. However, without repeating the -exact same package multiple times, an infinite regress will always be -prevented\. -.P -Another optimization can be made by installing dependencies at the -highest level possible, below the localized "target" folder\. -.SS Example -.P -Consider this dependency graph: -.P -.RS 2 -.nf -foo -+\-\- blerg@1\.2\.5 -+\-\- bar@1\.2\.3 -| +\-\- blerg@1\.x (latest=1\.3\.7) -| +\-\- baz@2\.x -| | `\-\- quux@3\.x -| | `\-\- bar@1\.2\.3 (cycle) -| `\-\- asdf@* -`\-\- baz@1\.2\.3 - `\-\- quux@3\.x - `\-\- bar -.fi -.RE -.P -In this case, we might expect a folder structure like this: -.P -.RS 2 -.nf -foo -+\-\- node_modules - +\-\- blerg (1\.2\.5) <\-\-\-[A] - +\-\- bar (1\.2\.3) <\-\-\-[B] - | `\-\- node_modules - | +\-\- baz (2\.0\.2) <\-\-\-[C] - | | `\-\- node_modules - | | `\-\- quux (3\.2\.0) - | `\-\- asdf (2\.3\.4) - `\-\- baz (1\.2\.3) <\-\-\-[D] - `\-\- node_modules - `\-\- quux (3\.2\.0) <\-\-\-[E] -.fi -.RE -.P -Since foo depends directly on \fBbar@1\.2\.3\fP and \fBbaz@1\.2\.3\fP, those are -installed in foo's \fBnode_modules\fP folder\. -.P -Even though the latest copy of blerg is 1\.3\.7, foo has a specific -dependency on version 1\.2\.5\. So, that gets installed at [A]\. Since the -parent installation of blerg satisfies bar's dependency on \fBblerg@1\.x\fP, -it does not install another copy under [B]\. -.P -Bar [B] also has dependencies on baz and asdf, so those are installed in -bar's \fBnode_modules\fP folder\. Because it depends on \fBbaz@2\.x\fP, it cannot -re\-use the \fBbaz@1\.2\.3\fP installed in the parent \fBnode_modules\fP folder [D], -and must install its own copy [C]\. -.P -Underneath bar, the \fBbaz \-> quux \-> bar\fP dependency creates a cycle\. -However, because bar is already in quux's ancestry [B], it does not -unpack another copy of bar into that folder\. -.P -Underneath \fBfoo \-> baz\fP [D], quux's [E] folder tree is empty, because its -dependency on bar is satisfied by the parent folder copy installed at [B]\. -.P -For a graphical breakdown of what is installed where, use \fBnpm ls\fP\|\. -.SS Publishing -.P -Upon publishing, npm will look in the \fBnode_modules\fP folder\. If any of -the items there are not in the \fBbundledDependencies\fP array, then they will -not be included in the package tarball\. -.P -This allows a package maintainer to install all of their dependencies -(and dev dependencies) locally, but only re\-publish those items that -cannot be found elsewhere\. See npm help 5 \fBpackage\.json\fP for more information\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help pack -.IP \(bu 2 -npm help cache -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help publish - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npm-global.5 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npm-global.5 deleted file mode 100644 index e5d5002c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npm-global.5 +++ /dev/null @@ -1,227 +0,0 @@ -.TH "NPM\-FOLDERS" "5" "June 2016" "" "" -.SH "NAME" -\fBnpm-folders\fR \- Folder Structures Used by npm -.SH DESCRIPTION -.P -npm puts various things on your computer\. That's its job\. -.P -This document will tell you what it puts where\. -.SS tl;dr -.RS 0 -.IP \(bu 2 -Local install (default): puts stuff in \fB\|\./node_modules\fP of the current -package root\. -.IP \(bu 2 -Global install (with \fB\-g\fP): puts stuff in /usr/local or wherever node -is installed\. -.IP \(bu 2 -Install it \fBlocally\fR if you're going to \fBrequire()\fP it\. -.IP \(bu 2 -Install it \fBglobally\fR if you're going to run it on the command line\. -.IP \(bu 2 -If you need both, then install it in both places, or use \fBnpm link\fP\|\. - -.RE -.SS prefix Configuration -.P -The \fBprefix\fP config defaults to the location where node is installed\. -On most systems, this is \fB/usr/local\fP\|\. On windows, this is the exact -location of the node\.exe binary\. On Unix systems, it's one level up, -since node is typically installed at \fB{prefix}/bin/node\fP rather than -\fB{prefix}/node\.exe\fP\|\. -.P -When the \fBglobal\fP flag is set, npm installs things into this prefix\. -When it is not set, it uses the root of the current package, or the -current working directory if not in a package already\. -.SS Node Modules -.P -Packages are dropped into the \fBnode_modules\fP folder under the \fBprefix\fP\|\. -When installing locally, this means that you can -\fBrequire("packagename")\fP to load its main module, or -\fBrequire("packagename/lib/path/to/sub/module")\fP to load other modules\. -.P -Global installs on Unix systems go to \fB{prefix}/lib/node_modules\fP\|\. -Global installs on Windows go to \fB{prefix}/node_modules\fP (that is, no -\fBlib\fP folder\.) -.P -Scoped packages are installed the same way, except they are grouped together -in a sub\-folder of the relevant \fBnode_modules\fP folder with the name of that -scope prefix by the @ symbol, e\.g\. \fBnpm install @myorg/package\fP would place -the package in \fB{prefix}/node_modules/@myorg/package\fP\|\. See npm help 7 \fBscope\fP for -more details\. -.P -If you wish to \fBrequire()\fP a package, then install it locally\. -.SS Executables -.P -When in global mode, executables are linked into \fB{prefix}/bin\fP on Unix, -or directly into \fB{prefix}\fP on Windows\. -.P -When in local mode, executables are linked into -\fB\|\./node_modules/\.bin\fP so that they can be made available to scripts run -through npm\. (For example, so that a test runner will be in the path -when you run \fBnpm test\fP\|\.) -.SS Man Pages -.P -When in global mode, man pages are linked into \fB{prefix}/share/man\fP\|\. -.P -When in local mode, man pages are not installed\. -.P -Man pages are not installed on Windows systems\. -.SS Cache -.P -See npm help \fBnpm\-cache\fP\|\. Cache files are stored in \fB~/\.npm\fP on Posix, or -\fB~/npm\-cache\fP on Windows\. -.P -This is controlled by the \fBcache\fP configuration param\. -.SS Temp Files -.P -Temporary files are stored by default in the folder specified by the -\fBtmp\fP config, which defaults to the TMPDIR, TMP, or TEMP environment -variables, or \fB/tmp\fP on Unix and \fBc:\\windows\\temp\fP on Windows\. -.P -Temp files are given a unique folder under this root for each run of the -program, and are deleted upon successful exit\. -.SH More Information -.P -When installing locally, npm first tries to find an appropriate -\fBprefix\fP folder\. This is so that \fBnpm install foo@1\.2\.3\fP will install -to the sensible root of your package, even if you happen to have \fBcd\fPed -into some other folder\. -.P -Starting at the $PWD, npm will walk up the folder tree checking for a -folder that contains either a \fBpackage\.json\fP file, or a \fBnode_modules\fP -folder\. If such a thing is found, then that is treated as the effective -"current directory" for the purpose of running npm commands\. (This -behavior is inspired by and similar to git's \.git\-folder seeking -logic when running git commands in a working dir\.) -.P -If no package root is found, then the current folder is used\. -.P -When you run \fBnpm install foo@1\.2\.3\fP, then the package is loaded into -the cache, and then unpacked into \fB\|\./node_modules/foo\fP\|\. Then, any of -foo's dependencies are similarly unpacked into -\fB\|\./node_modules/foo/node_modules/\.\.\.\fP\|\. -.P -Any bin files are symlinked to \fB\|\./node_modules/\.bin/\fP, so that they may -be found by npm scripts when necessary\. -.SS Global Installation -.P -If the \fBglobal\fP configuration is set to true, then npm will -install packages "globally"\. -.P -For global installation, packages are installed roughly the same way, -but using the folders described above\. -.SS Cycles, Conflicts, and Folder Parsimony -.P -Cycles are handled using the property of node's module system that it -walks up the directories looking for \fBnode_modules\fP folders\. So, at every -stage, if a package is already installed in an ancestor \fBnode_modules\fP -folder, then it is not installed at the current location\. -.P -Consider the case above, where \fBfoo \-> bar \-> baz\fP\|\. Imagine if, in -addition to that, baz depended on bar, so you'd have: -\fBfoo \-> bar \-> baz \-> bar \-> baz \.\.\.\fP\|\. However, since the folder -structure is: \fBfoo/node_modules/bar/node_modules/baz\fP, there's no need to -put another copy of bar into \fB\|\.\.\./baz/node_modules\fP, since when it calls -require("bar"), it will get the copy that is installed in -\fBfoo/node_modules/bar\fP\|\. -.P -This shortcut is only used if the exact same -version would be installed in multiple nested \fBnode_modules\fP folders\. It -is still possible to have \fBa/node_modules/b/node_modules/a\fP if the two -"a" packages are different versions\. However, without repeating the -exact same package multiple times, an infinite regress will always be -prevented\. -.P -Another optimization can be made by installing dependencies at the -highest level possible, below the localized "target" folder\. -.SS Example -.P -Consider this dependency graph: -.P -.RS 2 -.nf -foo -+\-\- blerg@1\.2\.5 -+\-\- bar@1\.2\.3 -| +\-\- blerg@1\.x (latest=1\.3\.7) -| +\-\- baz@2\.x -| | `\-\- quux@3\.x -| | `\-\- bar@1\.2\.3 (cycle) -| `\-\- asdf@* -`\-\- baz@1\.2\.3 - `\-\- quux@3\.x - `\-\- bar -.fi -.RE -.P -In this case, we might expect a folder structure like this: -.P -.RS 2 -.nf -foo -+\-\- node_modules - +\-\- blerg (1\.2\.5) <\-\-\-[A] - +\-\- bar (1\.2\.3) <\-\-\-[B] - | `\-\- node_modules - | +\-\- baz (2\.0\.2) <\-\-\-[C] - | | `\-\- node_modules - | | `\-\- quux (3\.2\.0) - | `\-\- asdf (2\.3\.4) - `\-\- baz (1\.2\.3) <\-\-\-[D] - `\-\- node_modules - `\-\- quux (3\.2\.0) <\-\-\-[E] -.fi -.RE -.P -Since foo depends directly on \fBbar@1\.2\.3\fP and \fBbaz@1\.2\.3\fP, those are -installed in foo's \fBnode_modules\fP folder\. -.P -Even though the latest copy of blerg is 1\.3\.7, foo has a specific -dependency on version 1\.2\.5\. So, that gets installed at [A]\. Since the -parent installation of blerg satisfies bar's dependency on \fBblerg@1\.x\fP, -it does not install another copy under [B]\. -.P -Bar [B] also has dependencies on baz and asdf, so those are installed in -bar's \fBnode_modules\fP folder\. Because it depends on \fBbaz@2\.x\fP, it cannot -re\-use the \fBbaz@1\.2\.3\fP installed in the parent \fBnode_modules\fP folder [D], -and must install its own copy [C]\. -.P -Underneath bar, the \fBbaz \-> quux \-> bar\fP dependency creates a cycle\. -However, because bar is already in quux's ancestry [B], it does not -unpack another copy of bar into that folder\. -.P -Underneath \fBfoo \-> baz\fP [D], quux's [E] folder tree is empty, because its -dependency on bar is satisfied by the parent folder copy installed at [B]\. -.P -For a graphical breakdown of what is installed where, use \fBnpm ls\fP\|\. -.SS Publishing -.P -Upon publishing, npm will look in the \fBnode_modules\fP folder\. If any of -the items there are not in the \fBbundledDependencies\fP array, then they will -not be included in the package tarball\. -.P -This allows a package maintainer to install all of their dependencies -(and dev dependencies) locally, but only re\-publish those items that -cannot be found elsewhere\. See npm help 5 \fBpackage\.json\fP for more information\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help pack -.IP \(bu 2 -npm help cache -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help publish - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npm-json.5 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npm-json.5 deleted file mode 100644 index 1576cc83..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npm-json.5 +++ /dev/null @@ -1,918 +0,0 @@ -.TH "PACKAGE\.JSON" "5" "June 2016" "" "" -.SH "NAME" -\fBpackage.json\fR \- Specifics of npm's package\.json handling -.SH DESCRIPTION -.P -This document is all you need to know about what's required in your package\.json -file\. It must be actual JSON, not just a JavaScript object literal\. -.P -A lot of the behavior described in this document is affected by the config -settings described in npm help 7 \fBnpm\-config\fP\|\. -.SH name -.P -The \fImost\fR important things in your package\.json are the name and version fields\. -Those are actually required, and your package won't install without -them\. The name and version together form an identifier that is assumed -to be completely unique\. Changes to the package should come along with -changes to the version\. -.P -The name is what your thing is called\. -.P -Some rules: -.RS 0 -.IP \(bu 2 -The name must be less than or equal to 214 characters\. This includes the scope for -scoped packages\. -.IP \(bu 2 -The name can't start with a dot or an underscore\. -.IP \(bu 2 -New packages must not have uppercase letters in the name\. -.IP \(bu 2 -The name ends up being part of a URL, an argument on the command line, and a -folder name\. Therefore, the name can't contain any non\-URL\-safe characters\. - -.RE -.P -Some tips: -.RS 0 -.IP \(bu 2 -Don't use the same name as a core Node module\. -.IP \(bu 2 -Don't put "js" or "node" in the name\. It's assumed that it's js, since you're -writing a package\.json file, and you can specify the engine using the "engines" -field\. (See below\.) -.IP \(bu 2 -The name will probably be passed as an argument to require(), so it should -be something short, but also reasonably descriptive\. -.IP \(bu 2 -You may want to check the npm registry to see if there's something by that name -already, before you get too attached to it\. https://www\.npmjs\.com/ - -.RE -.P -A name can be optionally prefixed by a scope, e\.g\. \fB@myorg/mypackage\fP\|\. See -npm help 7 \fBnpm\-scope\fP for more detail\. -.SH version -.P -The \fImost\fR important things in your package\.json are the name and version fields\. -Those are actually required, and your package won't install without -them\. The name and version together form an identifier that is assumed -to be completely unique\. Changes to the package should come along with -changes to the version\. -.P -Version must be parseable by -node\-semver \fIhttps://github\.com/isaacs/node\-semver\fR, which is bundled -with npm as a dependency\. (\fBnpm install semver\fP to use it yourself\.) -.P -More on version numbers and ranges at npm help 7 semver\. -.SH description -.P -Put a description in it\. It's a string\. This helps people discover your -package, as it's listed in \fBnpm search\fP\|\. -.SH keywords -.P -Put keywords in it\. It's an array of strings\. This helps people -discover your package as it's listed in \fBnpm search\fP\|\. -.SH homepage -.P -The url to the project homepage\. -.SH bugs -.P -The url to your project's issue tracker and / or the email address to which -issues should be reported\. These are helpful for people who encounter issues -with your package\. -.P -It should look like this: -.P -.RS 2 -.nf -{ "url" : "https://github\.com/owner/project/issues" -, "email" : "project@hostname\.com" -} -.fi -.RE -.P -You can specify either one or both values\. If you want to provide only a url, -you can specify the value for "bugs" as a simple string instead of an object\. -.P -If a url is provided, it will be used by the \fBnpm bugs\fP command\. -.SH license -.P -You should specify a license for your package so that people know how they are -permitted to use it, and any restrictions you're placing on it\. -.P -If you're using a common license such as BSD\-2\-Clause or MIT, add a -current SPDX license identifier for the license you're using, like this: -.P -.RS 2 -.nf -{ "license" : "BSD\-3\-Clause" } -.fi -.RE -.P -You can check the full list of SPDX license IDs \fIhttps://spdx\.org/licenses/\fR\|\. -Ideally you should pick one that is -OSI \fIhttps://opensource\.org/licenses/alphabetical\fR approved\. -.P -If your package is licensed under multiple common licenses, use an SPDX license -expression syntax version 2\.0 string \fIhttps://npmjs\.com/package/spdx\fR, like this: -.P -.RS 2 -.nf -{ "license" : "(ISC OR GPL\-3\.0)" } -.fi -.RE -.P -If you are using a license that hasn't been assigned an SPDX identifier, or if -you are using a custom license, use a string value like this one: -.P -.RS 2 -.nf -{ "license" : "SEE LICENSE IN " } -.fi -.RE -.P -Then include a file named \fB\fP at the top level of the package\. -.P -Some old packages used license objects or a "licenses" property containing an -array of license objects: -.P -.RS 2 -.nf -// Not valid metadata -{ "license" : - { "type" : "ISC" - , "url" : "http://opensource\.org/licenses/ISC" - } -} - -// Not valid metadata -{ "licenses" : - [ - { "type": "MIT" - , "url": "http://www\.opensource\.org/licenses/mit\-license\.php" - } - , { "type": "Apache\-2\.0" - , "url": "http://opensource\.org/licenses/apache2\.0\.php" - } - ] -} -.fi -.RE -.P -Those styles are now deprecated\. Instead, use SPDX expressions, like this: -.P -.RS 2 -.nf -{ "license": "ISC" } - -{ "license": "(MIT OR Apache\-2\.0)" } -.fi -.RE -.P -Finally, if you do not wish to grant others the right to use a private or -unpublished package under any terms: -.P -.RS 2 -.nf -{ "license": "UNLICENSED"} -.fi -.RE -.P -Consider also setting \fB"private": true\fP to prevent accidental publication\. -.SH people fields: author, contributors -.P -The "author" is one person\. "contributors" is an array of people\. A "person" -is an object with a "name" field and optionally "url" and "email", like this: -.P -.RS 2 -.nf -{ "name" : "Barney Rubble" -, "email" : "b@rubble\.com" -, "url" : "http://barnyrubble\.tumblr\.com/" -} -.fi -.RE -.P -Or you can shorten that all into a single string, and npm will parse it for you: -.P -.RS 2 -.nf -"Barney Rubble (http://barnyrubble\.tumblr\.com/)" -.fi -.RE -.P -Both email and url are optional either way\. -.P -npm also sets a top\-level "maintainers" field with your npm user info\. -.SH files -.P -The "files" field is an array of files to include in your project\. If -you name a folder in the array, then it will also include the files -inside that folder\. (Unless they would be ignored by another rule\.) -.P -You can also provide a "\.npmignore" file in the root of your package or -in subdirectories, which will keep files from being included, even -if they would be picked up by the files array\. The \fB\|\.npmignore\fP file -works just like a \fB\|\.gitignore\fP\|\. -.P -Certain files are always included, regardless of settings: -.RS 0 -.IP \(bu 2 -\fBpackage\.json\fP -.IP \(bu 2 -\fBREADME\fP -.IP \(bu 2 -\fBCHANGES\fP / \fBCHANGELOG\fP / \fBHISTORY\fP -.IP \(bu 2 -\fBLICENSE\fP / \fBLICENCE\fP -.IP \(bu 2 -\fBNOTICE\fP -.IP \(bu 2 -The file in the "main" field - -.RE -.P -\fBREADME\fP, \fBCHANGES\fP, \fBLICENSE\fP & \fBNOTICE\fP can have any case and extension\. -.P -Conversely, some files are always ignored: -.RS 0 -.IP \(bu 2 -\fB\|\.git\fP -.IP \(bu 2 -\fBCVS\fP -.IP \(bu 2 -\fB\|\.svn\fP -.IP \(bu 2 -\fB\|\.hg\fP -.IP \(bu 2 -\fB\|\.lock\-wscript\fP -.IP \(bu 2 -\fB\|\.wafpickle\-N\fP -.IP \(bu 2 -\fB\|\.*\.swp\fP -.IP \(bu 2 -\fB\|\.DS_Store\fP -.IP \(bu 2 -\fB\|\._*\fP -.IP \(bu 2 -\fBnpm\-debug\.log\fP -.IP \(bu 2 -\fB\|\.npmrc\fP -.IP \(bu 2 -\fBnode_modules\fP -.IP \(bu 2 -\fBconfig\.gypi\fP - -.RE -.SH main -.P -The main field is a module ID that is the primary entry point to your program\. -That is, if your package is named \fBfoo\fP, and a user installs it, and then does -\fBrequire("foo")\fP, then your main module's exports object will be returned\. -.P -This should be a module ID relative to the root of your package folder\. -.P -For most modules, it makes the most sense to have a main script and often not -much else\. -.SH bin -.P -A lot of packages have one or more executable files that they'd like to -install into the PATH\. npm makes this pretty easy (in fact, it uses this -feature to install the "npm" executable\.) -.P -To use this, supply a \fBbin\fP field in your package\.json which is a map of -command name to local file name\. On install, npm will symlink that file into -\fBprefix/bin\fP for global installs, or \fB\|\./node_modules/\.bin/\fP for local -installs\. -.P -For example, myapp could have this: -.P -.RS 2 -.nf -{ "bin" : { "myapp" : "\./cli\.js" } } -.fi -.RE -.P -So, when you install myapp, it'll create a symlink from the \fBcli\.js\fP script to -\fB/usr/local/bin/myapp\fP\|\. -.P -If you have a single executable, and its name should be the name -of the package, then you can just supply it as a string\. For example: -.P -.RS 2 -.nf -{ "name": "my\-program" -, "version": "1\.2\.5" -, "bin": "\./path/to/program" } -.fi -.RE -.P -would be the same as this: -.P -.RS 2 -.nf -{ "name": "my\-program" -, "version": "1\.2\.5" -, "bin" : { "my\-program" : "\./path/to/program" } } -.fi -.RE -.SH man -.P -Specify either a single file or an array of filenames to put in place for the -\fBman\fP program to find\. -.P -If only a single file is provided, then it's installed such that it is the -result from \fBman \fP, regardless of its actual filename\. For example: -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : "\./man/doc\.1" -} -.fi -.RE -.P -would link the \fB\|\./man/doc\.1\fP file in such that it is the target for \fBman foo\fP -.P -If the filename doesn't start with the package name, then it's prefixed\. -So, this: -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : [ "\./man/foo\.1", "\./man/bar\.1" ] -} -.fi -.RE -.P -will create files to do \fBman foo\fP and \fBman foo\-bar\fP\|\. -.P -Man files must end with a number, and optionally a \fB\|\.gz\fP suffix if they are -compressed\. The number dictates which man section the file is installed into\. -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : [ "\./man/foo\.1", "\./man/foo\.2" ] -} -.fi -.RE -.P -will create entries for \fBman foo\fP and \fBman 2 foo\fP -.SH directories -.P -The CommonJS Packages \fIhttp://wiki\.commonjs\.org/wiki/Packages/1\.0\fR spec details a -few ways that you can indicate the structure of your package using a \fBdirectories\fP -object\. If you look at npm's package\.json \fIhttps://registry\.npmjs\.org/npm/latest\fR, -you'll see that it has directories for doc, lib, and man\. -.P -In the future, this information may be used in other creative ways\. -.SS directories\.lib -.P -Tell people where the bulk of your library is\. Nothing special is done -with the lib folder in any way, but it's useful meta info\. -.SS directories\.bin -.P -If you specify a \fBbin\fP directory in \fBdirectories\.bin\fP, all the files in -that folder will be added\. -.P -Because of the way the \fBbin\fP directive works, specifying both a -\fBbin\fP path and setting \fBdirectories\.bin\fP is an error\. If you want to -specify individual files, use \fBbin\fP, and for all the files in an -existing \fBbin\fP directory, use \fBdirectories\.bin\fP\|\. -.SS directories\.man -.P -A folder that is full of man pages\. Sugar to generate a "man" array by -walking the folder\. -.SS directories\.doc -.P -Put markdown files in here\. Eventually, these will be displayed nicely, -maybe, someday\. -.SS directories\.example -.P -Put example scripts in here\. Someday, it might be exposed in some clever way\. -.SS directories\.test -.P -Put your tests in here\. It is currently not exposed, but it might be in the -future\. -.SH repository -.P -Specify the place where your code lives\. This is helpful for people who -want to contribute\. If the git repo is on GitHub, then the \fBnpm docs\fP -command will be able to find you\. -.P -Do it like this: -.P -.RS 2 -.nf -"repository" : - { "type" : "git" - , "url" : "https://github\.com/npm/npm\.git" - } - -"repository" : - { "type" : "svn" - , "url" : "https://v8\.googlecode\.com/svn/trunk/" - } -.fi -.RE -.P -The URL should be a publicly available (perhaps read\-only) url that can be handed -directly to a VCS program without any modification\. It should not be a url to an -html project page that you put in your browser\. It's for computers\. -.P -For GitHub, GitHub gist, Bitbucket, or GitLab repositories you can use the same -shortcut syntax you use for \fBnpm install\fP: -.P -.RS 2 -.nf -"repository": "npm/npm" - -"repository": "gist:11081aaa281" - -"repository": "bitbucket:example/repo" - -"repository": "gitlab:another/repo" -.fi -.RE -.SH scripts -.P -The "scripts" property is a dictionary containing script commands that are run -at various times in the lifecycle of your package\. The key is the lifecycle -event, and the value is the command to run at that point\. -.P -See npm help 7 \fBnpm\-scripts\fP to find out more about writing package scripts\. -.SH config -.P -A "config" object can be used to set configuration parameters used in package -scripts that persist across upgrades\. For instance, if a package had the -following: -.P -.RS 2 -.nf -{ "name" : "foo" -, "config" : { "port" : "8080" } } -.fi -.RE -.P -and then had a "start" command that then referenced the -\fBnpm_package_config_port\fP environment variable, then the user could -override that by doing \fBnpm config set foo:port 8001\fP\|\. -.P -See npm help 7 \fBnpm\-config\fP and npm help 7 \fBnpm\-scripts\fP for more on package -configs\. -.SH dependencies -.P -Dependencies are specified in a simple object that maps a package name to a -version range\. The version range is a string which has one or more -space\-separated descriptors\. Dependencies can also be identified with a -tarball or git URL\. -.P -\fBPlease do not put test harnesses or transpilers in your -\fBdependencies\fP object\.\fR See \fBdevDependencies\fP, below\. -.P -See npm help 7 semver for more details about specifying version ranges\. -.RS 0 -.IP \(bu 2 -\fBversion\fP Must match \fBversion\fP exactly -.IP \(bu 2 -\fB>version\fP Must be greater than \fBversion\fP -.IP \(bu 2 -\fB>=version\fP etc -.IP \(bu 2 -\fB=version1 <=version2\fP\|\. -.IP \(bu 2 -\fBrange1 || range2\fP Passes if either range1 or range2 are satisfied\. -.IP \(bu 2 -\fBgit\.\.\.\fP See 'Git URLs as Dependencies' below -.IP \(bu 2 -\fBuser/repo\fP See 'GitHub URLs' below -.IP \(bu 2 -\fBtag\fP A specific version tagged and published as \fBtag\fP See npm help \fBnpm\-tag\fP -.IP \(bu 2 -\fBpath/path/path\fP See Local Paths \fI#local\-paths\fR below - -.RE -.P -For example, these are all valid: -.P -.RS 2 -.nf -{ "dependencies" : - { "foo" : "1\.0\.0 \- 2\.9999\.9999" - , "bar" : ">=1\.0\.2 <2\.1\.2" - , "baz" : ">1\.0\.2 <=2\.3\.4" - , "boo" : "2\.0\.1" - , "qux" : "<1\.0\.0 || >=2\.3\.1 <2\.4\.5 || >=2\.5\.2 <3\.0\.0" - , "asd" : "http://asdf\.com/asdf\.tar\.gz" - , "til" : "~1\.2" - , "elf" : "~1\.2\.3" - , "two" : "2\.x" - , "thr" : "3\.3\.x" - , "lat" : "latest" - , "dyl" : "file:\.\./dyl" - } -} -.fi -.RE -.SS URLs as Dependencies -.P -You may specify a tarball URL in place of a version range\. -.P -This tarball will be downloaded and installed locally to your package at -install time\. -.SS Git URLs as Dependencies -.P -Git urls can be of the form: -.P -.RS 2 -.nf -git://github\.com/user/project\.git#commit\-ish -git+ssh://user@hostname:project\.git#commit\-ish -git+ssh://user@hostname/project\.git#commit\-ish -git+http://user@hostname/project/blah\.git#commit\-ish -git+https://user@hostname/project/blah\.git#commit\-ish -.fi -.RE -.P -The \fBcommit\-ish\fP can be any tag, sha, or branch which can be supplied as -an argument to \fBgit checkout\fP\|\. The default is \fBmaster\fP\|\. -.SH GitHub URLs -.P -As of version 1\.1\.65, you can refer to GitHub urls as just "foo": -"user/foo\-project"\. Just as with git URLs, a \fBcommit\-ish\fP suffix can be -included\. For example: -.P -.RS 2 -.nf -{ - "name": "foo", - "version": "0\.0\.0", - "dependencies": { - "express": "visionmedia/express", - "mocha": "visionmedia/mocha#4727d357ea" - } -} -.fi -.RE -.SH Local Paths -.P -As of version 2\.0\.0 you can provide a path to a local directory that contains a -package\. Local paths can be saved using \fBnpm install \-S\fP or -\fBnpm install \-\-save\fP, using any of these forms: -.P -.RS 2 -.nf -\|\.\./foo/bar -~/foo/bar -\|\./foo/bar -/foo/bar -.fi -.RE -.P -in which case they will be normalized to a relative path and added to your -\fBpackage\.json\fP\|\. For example: -.P -.RS 2 -.nf -{ - "name": "baz", - "dependencies": { - "bar": "file:\.\./foo/bar" - } -} -.fi -.RE -.P -This feature is helpful for local offline development and creating -tests that require npm installing where you don't want to hit an -external server, but should not be used when publishing packages -to the public registry\. -.SH devDependencies -.P -If someone is planning on downloading and using your module in their -program, then they probably don't want or need to download and build -the external test or documentation framework that you use\. -.P -In this case, it's best to map these additional items in a \fBdevDependencies\fP -object\. -.P -These things will be installed when doing \fBnpm link\fP or \fBnpm install\fP -from the root of a package, and can be managed like any other npm -configuration param\. See npm help 7 \fBnpm\-config\fP for more on the topic\. -.P -For build steps that are not platform\-specific, such as compiling -CoffeeScript or other languages to JavaScript, use the \fBprepublish\fP -script to do this, and make the required package a devDependency\. -.P -For example: -.P -.RS 2 -.nf -{ "name": "ethopia\-waza", - "description": "a delightfully fruity coffee varietal", - "version": "1\.2\.3", - "devDependencies": { - "coffee\-script": "~1\.6\.3" - }, - "scripts": { - "prepublish": "coffee \-o lib/ \-c src/waza\.coffee" - }, - "main": "lib/waza\.js" -} -.fi -.RE -.P -The \fBprepublish\fP script will be run before publishing, so that users -can consume the functionality without requiring them to compile it -themselves\. In dev mode (ie, locally running \fBnpm install\fP), it'll -run this script as well, so that you can test it easily\. -.SH peerDependencies -.P -In some cases, you want to express the compatibility of your package with a -host tool or library, while not necessarily doing a \fBrequire\fP of this host\. -This is usually referred to as a \fIplugin\fR\|\. Notably, your module may be exposing -a specific interface, expected and specified by the host documentation\. -.P -For example: -.P -.RS 2 -.nf -{ - "name": "tea\-latte", - "version": "1\.3\.5", - "peerDependencies": { - "tea": "2\.x" - } -} -.fi -.RE -.P -This ensures your package \fBtea\-latte\fP can be installed \fIalong\fR with the second -major version of the host package \fBtea\fP only\. \fBnpm install tea\-latte\fP could -possibly yield the following dependency graph: -.P -.RS 2 -.nf -├── tea\-latte@1\.3\.5 -└── tea@2\.2\.0 -.fi -.RE -.P -\fBNOTE: npm versions 1 and 2 will automatically install \fBpeerDependencies\fP if -they are not explicitly depended upon higher in the dependency tree\. In the -next major version of npm (npm@3), this will no longer be the case\. You will -receive a warning that the peerDependency is not installed instead\.\fR The -behavior in npms 1 & 2 was frequently confusing and could easily put you into -dependency hell, a situation that npm is designed to avoid as much as possible\. -.P -Trying to install another plugin with a conflicting requirement will cause an -error\. For this reason, make sure your plugin requirement is as broad as -possible, and not to lock it down to specific patch versions\. -.P -Assuming the host complies with semver \fIhttp://semver\.org/\fR, only changes in -the host package's major version will break your plugin\. Thus, if you've worked -with every 1\.x version of the host package, use \fB"^1\.0"\fP or \fB"1\.x"\fP to express -this\. If you depend on features introduced in 1\.5\.2, use \fB">= 1\.5\.2 < 2"\fP\|\. -.SH bundledDependencies -.P -This defines an array of package names that will be bundled when publishing -the package\. -.P -In cases where you need to preserve npm packages locally or have them -available through a single file download, you can bundle the packages in a -tarball file by specifying the package names in the \fBbundledDependencies\fP -array and executing \fBnpm pack\fP\|\. -.P -For example: -.P -If we define a package\.json like this: -.P -.RS 2 -.nf -{ - "name": "awesome\-web\-framework", - "version": "1\.0\.0", - "bundledDependencies": [ - 'renderized', 'super\-streams' - ] -} -.fi -.RE -.P -we can obtain \fBawesome\-web\-framework\-1\.0\.0\.tgz\fP file by running \fBnpm pack\fP\|\. -This file contains the dependencies \fBrenderized\fP and \fBsuper\-streams\fP which -can be installed in a new project by executing \fBnpm install -awesome\-web\-framework\-1\.0\.0\.tgz\fP\|\. -.P -If this is spelled \fB"bundleDependencies"\fP, then that is also honored\. -.SH optionalDependencies -.P -If a dependency can be used, but you would like npm to proceed if it cannot be -found or fails to install, then you may put it in the \fBoptionalDependencies\fP -object\. This is a map of package name to version or url, just like the -\fBdependencies\fP object\. The difference is that build failures do not cause -installation to fail\. -.P -It is still your program's responsibility to handle the lack of the -dependency\. For example, something like this: -.P -.RS 2 -.nf -try { - var foo = require('foo') - var fooVersion = require('foo/package\.json')\.version -} catch (er) { - foo = null -} -if ( notGoodFooVersion(fooVersion) ) { - foo = null -} - -// \.\. then later in your program \.\. - -if (foo) { - foo\.doFooThings() -} -.fi -.RE -.P -Entries in \fBoptionalDependencies\fP will override entries of the same name in -\fBdependencies\fP, so it's usually best to only put in one place\. -.SH engines -.P -You can specify the version of node that your stuff works on: -.P -.RS 2 -.nf -{ "engines" : { "node" : ">=0\.10\.3 <0\.12" } } -.fi -.RE -.P -And, like with dependencies, if you don't specify the version (or if you -specify "*" as the version), then any version of node will do\. -.P -If you specify an "engines" field, then npm will require that "node" be -somewhere on that list\. If "engines" is omitted, then npm will just assume -that it works on node\. -.P -You can also use the "engines" field to specify which versions of npm -are capable of properly installing your program\. For example: -.P -.RS 2 -.nf -{ "engines" : { "npm" : "~1\.0\.20" } } -.fi -.RE -.P -Unless the user has set the \fBengine\-strict\fP config flag, this -field is advisory only will produce warnings when your package is installed as a dependency\. -.SH engineStrict -.P -\fBThis feature was removed in npm 3\.0\.0\fR -.P -Prior to npm 3\.0\.0, this feature was used to treat this package as if the -user had set \fBengine\-strict\fP\|\. It is no longer used\. -.SH os -.P -You can specify which operating systems your -module will run on: -.P -.RS 2 -.nf -"os" : [ "darwin", "linux" ] -.fi -.RE -.P -You can also blacklist instead of whitelist operating systems, -just prepend the blacklisted os with a '!': -.P -.RS 2 -.nf -"os" : [ "!win32" ] -.fi -.RE -.P -The host operating system is determined by \fBprocess\.platform\fP -.P -It is allowed to both blacklist, and whitelist, although there isn't any -good reason to do this\. -.SH cpu -.P -If your code only runs on certain cpu architectures, -you can specify which ones\. -.P -.RS 2 -.nf -"cpu" : [ "x64", "ia32" ] -.fi -.RE -.P -Like the \fBos\fP option, you can also blacklist architectures: -.P -.RS 2 -.nf -"cpu" : [ "!arm", "!mips" ] -.fi -.RE -.P -The host architecture is determined by \fBprocess\.arch\fP -.SH preferGlobal -.P -If your package is primarily a command\-line application that should be -installed globally, then set this value to \fBtrue\fP to provide a warning -if it is installed locally\. -.P -It doesn't actually prevent users from installing it locally, but it -does help prevent some confusion if it doesn't work as expected\. -.SH private -.P -If you set \fB"private": true\fP in your package\.json, then npm will refuse -to publish it\. -.P -This is a way to prevent accidental publication of private repositories\. If -you would like to ensure that a given package is only ever published to a -specific registry (for example, an internal registry), then use the -\fBpublishConfig\fP dictionary described below to override the \fBregistry\fP config -param at publish\-time\. -.SH publishConfig -.P -This is a set of config values that will be used at publish\-time\. It's -especially handy if you want to set the tag, registry or access, so that -you can ensure that a given package is not tagged with "latest", published -to the global public registry or that a scoped module is private by default\. -.P -Any config values can be overridden, but of course only "tag", "registry" and -"access" probably matter for the purposes of publishing\. -.P -See npm help 7 \fBnpm\-config\fP to see the list of config options that can be -overridden\. -.SH DEFAULT VALUES -.P -npm will default some values based on package contents\. -.RS 0 -.IP \(bu 2 -\fB"scripts": {"start": "node server\.js"}\fP -If there is a \fBserver\.js\fP file in the root of your package, then npm -will default the \fBstart\fP command to \fBnode server\.js\fP\|\. -.IP \(bu 2 -\fB"scripts":{"install": "node\-gyp rebuild"}\fP -If there is a \fBbinding\.gyp\fP file in the root of your package and you have not defined an \fBinstall\fP or \fBpreinstall\fP script, npm will -default the \fBinstall\fP command to compile using node\-gyp\. -.IP \(bu 2 -\fB"contributors": [\.\.\.]\fP -If there is an \fBAUTHORS\fP file in the root of your package, npm will -treat each line as a \fBName (url)\fP format, where email and url -are optional\. Lines which start with a \fB#\fP or are blank, will be -ignored\. - -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 semver -.IP \(bu 2 -npm help init -.IP \(bu 2 -npm help version -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help help -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help uninstall - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npmrc.5 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npmrc.5 deleted file mode 100644 index f70ee7da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/npmrc.5 +++ /dev/null @@ -1,101 +0,0 @@ -.TH "NPMRC" "5" "June 2016" "" "" -.SH "NAME" -\fBnpmrc\fR \- The npm config files -.SH DESCRIPTION -.P -npm gets its config settings from the command line, environment -variables, and \fBnpmrc\fP files\. -.P -The \fBnpm config\fP command can be used to update and edit the contents -of the user and global npmrc files\. -.P -For a list of available configuration options, see npm help 7 config\. -.SH FILES -.P -The four relevant files are: -.RS 0 -.IP \(bu 2 -per\-project config file (/path/to/my/project/\.npmrc) -.IP \(bu 2 -per\-user config file (~/\.npmrc) -.IP \(bu 2 -global config file ($PREFIX/etc/npmrc) -.IP \(bu 2 -npm builtin config file (/path/to/npm/npmrc) - -.RE -.P -All npm config files are an ini\-formatted list of \fBkey = value\fP -parameters\. Environment variables can be replaced using -\fB${VARIABLE_NAME}\fP\|\. For example: -.P -.RS 2 -.nf -prefix = ${HOME}/\.npm\-packages -.fi -.RE -.P -Each of these files is loaded, and config options are resolved in -priority order\. For example, a setting in the userconfig file would -override the setting in the globalconfig file\. -.P -Array values are specified by adding "[]" after the key name\. For -example: -.P -.RS 2 -.nf -key[] = "first value" -key[] = "second value" -.fi -.RE -.P -\fBNOTE:\fR Because local (per\-project or per\-user) \fB\|\.npmrc\fP files can contain -sensitive credentials, they must be readable and writable \fIonly\fR by your user -account (i\.e\. must have a mode of \fB0600\fP), otherwise they \fIwill be ignored by -npm!\fR -.SS Per\-project config file -.P -When working locally in a project, a \fB\|\.npmrc\fP file in the root of the -project (ie, a sibling of \fBnode_modules\fP and \fBpackage\.json\fP) will set -config values specific to this project\. -.P -Note that this only applies to the root of the project that you're -running npm in\. It has no effect when your module is published\. For -example, you can't publish a module that forces itself to install -globally, or in a different location\. -.P -Additionally, this file is not read in global mode, such as when running -\fBnpm install \-g\fP\|\. -.SS Per\-user config file -.P -\fB$HOME/\.npmrc\fP (or the \fBuserconfig\fP param, if set in the environment -or on the command line) -.SS Global config file -.P -\fB$PREFIX/etc/npmrc\fP (or the \fBglobalconfig\fP param, if set above): -This file is an ini\-file formatted list of \fBkey = value\fP parameters\. -Environment variables can be replaced as above\. -.SS Built\-in config file -.P -\fBpath/to/npm/itself/npmrc\fP -.P -This is an unchangeable "builtin" configuration file that npm keeps -consistent across updates\. Set fields in here using the \fB\|\./configure\fP -script that comes with npm\. This is primarily for distribution -maintainers to override default configs in a standard and consistent -manner\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help npm - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/package.json.5 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/package.json.5 deleted file mode 100644 index 1576cc83..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man5/package.json.5 +++ /dev/null @@ -1,918 +0,0 @@ -.TH "PACKAGE\.JSON" "5" "June 2016" "" "" -.SH "NAME" -\fBpackage.json\fR \- Specifics of npm's package\.json handling -.SH DESCRIPTION -.P -This document is all you need to know about what's required in your package\.json -file\. It must be actual JSON, not just a JavaScript object literal\. -.P -A lot of the behavior described in this document is affected by the config -settings described in npm help 7 \fBnpm\-config\fP\|\. -.SH name -.P -The \fImost\fR important things in your package\.json are the name and version fields\. -Those are actually required, and your package won't install without -them\. The name and version together form an identifier that is assumed -to be completely unique\. Changes to the package should come along with -changes to the version\. -.P -The name is what your thing is called\. -.P -Some rules: -.RS 0 -.IP \(bu 2 -The name must be less than or equal to 214 characters\. This includes the scope for -scoped packages\. -.IP \(bu 2 -The name can't start with a dot or an underscore\. -.IP \(bu 2 -New packages must not have uppercase letters in the name\. -.IP \(bu 2 -The name ends up being part of a URL, an argument on the command line, and a -folder name\. Therefore, the name can't contain any non\-URL\-safe characters\. - -.RE -.P -Some tips: -.RS 0 -.IP \(bu 2 -Don't use the same name as a core Node module\. -.IP \(bu 2 -Don't put "js" or "node" in the name\. It's assumed that it's js, since you're -writing a package\.json file, and you can specify the engine using the "engines" -field\. (See below\.) -.IP \(bu 2 -The name will probably be passed as an argument to require(), so it should -be something short, but also reasonably descriptive\. -.IP \(bu 2 -You may want to check the npm registry to see if there's something by that name -already, before you get too attached to it\. https://www\.npmjs\.com/ - -.RE -.P -A name can be optionally prefixed by a scope, e\.g\. \fB@myorg/mypackage\fP\|\. See -npm help 7 \fBnpm\-scope\fP for more detail\. -.SH version -.P -The \fImost\fR important things in your package\.json are the name and version fields\. -Those are actually required, and your package won't install without -them\. The name and version together form an identifier that is assumed -to be completely unique\. Changes to the package should come along with -changes to the version\. -.P -Version must be parseable by -node\-semver \fIhttps://github\.com/isaacs/node\-semver\fR, which is bundled -with npm as a dependency\. (\fBnpm install semver\fP to use it yourself\.) -.P -More on version numbers and ranges at npm help 7 semver\. -.SH description -.P -Put a description in it\. It's a string\. This helps people discover your -package, as it's listed in \fBnpm search\fP\|\. -.SH keywords -.P -Put keywords in it\. It's an array of strings\. This helps people -discover your package as it's listed in \fBnpm search\fP\|\. -.SH homepage -.P -The url to the project homepage\. -.SH bugs -.P -The url to your project's issue tracker and / or the email address to which -issues should be reported\. These are helpful for people who encounter issues -with your package\. -.P -It should look like this: -.P -.RS 2 -.nf -{ "url" : "https://github\.com/owner/project/issues" -, "email" : "project@hostname\.com" -} -.fi -.RE -.P -You can specify either one or both values\. If you want to provide only a url, -you can specify the value for "bugs" as a simple string instead of an object\. -.P -If a url is provided, it will be used by the \fBnpm bugs\fP command\. -.SH license -.P -You should specify a license for your package so that people know how they are -permitted to use it, and any restrictions you're placing on it\. -.P -If you're using a common license such as BSD\-2\-Clause or MIT, add a -current SPDX license identifier for the license you're using, like this: -.P -.RS 2 -.nf -{ "license" : "BSD\-3\-Clause" } -.fi -.RE -.P -You can check the full list of SPDX license IDs \fIhttps://spdx\.org/licenses/\fR\|\. -Ideally you should pick one that is -OSI \fIhttps://opensource\.org/licenses/alphabetical\fR approved\. -.P -If your package is licensed under multiple common licenses, use an SPDX license -expression syntax version 2\.0 string \fIhttps://npmjs\.com/package/spdx\fR, like this: -.P -.RS 2 -.nf -{ "license" : "(ISC OR GPL\-3\.0)" } -.fi -.RE -.P -If you are using a license that hasn't been assigned an SPDX identifier, or if -you are using a custom license, use a string value like this one: -.P -.RS 2 -.nf -{ "license" : "SEE LICENSE IN " } -.fi -.RE -.P -Then include a file named \fB\fP at the top level of the package\. -.P -Some old packages used license objects or a "licenses" property containing an -array of license objects: -.P -.RS 2 -.nf -// Not valid metadata -{ "license" : - { "type" : "ISC" - , "url" : "http://opensource\.org/licenses/ISC" - } -} - -// Not valid metadata -{ "licenses" : - [ - { "type": "MIT" - , "url": "http://www\.opensource\.org/licenses/mit\-license\.php" - } - , { "type": "Apache\-2\.0" - , "url": "http://opensource\.org/licenses/apache2\.0\.php" - } - ] -} -.fi -.RE -.P -Those styles are now deprecated\. Instead, use SPDX expressions, like this: -.P -.RS 2 -.nf -{ "license": "ISC" } - -{ "license": "(MIT OR Apache\-2\.0)" } -.fi -.RE -.P -Finally, if you do not wish to grant others the right to use a private or -unpublished package under any terms: -.P -.RS 2 -.nf -{ "license": "UNLICENSED"} -.fi -.RE -.P -Consider also setting \fB"private": true\fP to prevent accidental publication\. -.SH people fields: author, contributors -.P -The "author" is one person\. "contributors" is an array of people\. A "person" -is an object with a "name" field and optionally "url" and "email", like this: -.P -.RS 2 -.nf -{ "name" : "Barney Rubble" -, "email" : "b@rubble\.com" -, "url" : "http://barnyrubble\.tumblr\.com/" -} -.fi -.RE -.P -Or you can shorten that all into a single string, and npm will parse it for you: -.P -.RS 2 -.nf -"Barney Rubble (http://barnyrubble\.tumblr\.com/)" -.fi -.RE -.P -Both email and url are optional either way\. -.P -npm also sets a top\-level "maintainers" field with your npm user info\. -.SH files -.P -The "files" field is an array of files to include in your project\. If -you name a folder in the array, then it will also include the files -inside that folder\. (Unless they would be ignored by another rule\.) -.P -You can also provide a "\.npmignore" file in the root of your package or -in subdirectories, which will keep files from being included, even -if they would be picked up by the files array\. The \fB\|\.npmignore\fP file -works just like a \fB\|\.gitignore\fP\|\. -.P -Certain files are always included, regardless of settings: -.RS 0 -.IP \(bu 2 -\fBpackage\.json\fP -.IP \(bu 2 -\fBREADME\fP -.IP \(bu 2 -\fBCHANGES\fP / \fBCHANGELOG\fP / \fBHISTORY\fP -.IP \(bu 2 -\fBLICENSE\fP / \fBLICENCE\fP -.IP \(bu 2 -\fBNOTICE\fP -.IP \(bu 2 -The file in the "main" field - -.RE -.P -\fBREADME\fP, \fBCHANGES\fP, \fBLICENSE\fP & \fBNOTICE\fP can have any case and extension\. -.P -Conversely, some files are always ignored: -.RS 0 -.IP \(bu 2 -\fB\|\.git\fP -.IP \(bu 2 -\fBCVS\fP -.IP \(bu 2 -\fB\|\.svn\fP -.IP \(bu 2 -\fB\|\.hg\fP -.IP \(bu 2 -\fB\|\.lock\-wscript\fP -.IP \(bu 2 -\fB\|\.wafpickle\-N\fP -.IP \(bu 2 -\fB\|\.*\.swp\fP -.IP \(bu 2 -\fB\|\.DS_Store\fP -.IP \(bu 2 -\fB\|\._*\fP -.IP \(bu 2 -\fBnpm\-debug\.log\fP -.IP \(bu 2 -\fB\|\.npmrc\fP -.IP \(bu 2 -\fBnode_modules\fP -.IP \(bu 2 -\fBconfig\.gypi\fP - -.RE -.SH main -.P -The main field is a module ID that is the primary entry point to your program\. -That is, if your package is named \fBfoo\fP, and a user installs it, and then does -\fBrequire("foo")\fP, then your main module's exports object will be returned\. -.P -This should be a module ID relative to the root of your package folder\. -.P -For most modules, it makes the most sense to have a main script and often not -much else\. -.SH bin -.P -A lot of packages have one or more executable files that they'd like to -install into the PATH\. npm makes this pretty easy (in fact, it uses this -feature to install the "npm" executable\.) -.P -To use this, supply a \fBbin\fP field in your package\.json which is a map of -command name to local file name\. On install, npm will symlink that file into -\fBprefix/bin\fP for global installs, or \fB\|\./node_modules/\.bin/\fP for local -installs\. -.P -For example, myapp could have this: -.P -.RS 2 -.nf -{ "bin" : { "myapp" : "\./cli\.js" } } -.fi -.RE -.P -So, when you install myapp, it'll create a symlink from the \fBcli\.js\fP script to -\fB/usr/local/bin/myapp\fP\|\. -.P -If you have a single executable, and its name should be the name -of the package, then you can just supply it as a string\. For example: -.P -.RS 2 -.nf -{ "name": "my\-program" -, "version": "1\.2\.5" -, "bin": "\./path/to/program" } -.fi -.RE -.P -would be the same as this: -.P -.RS 2 -.nf -{ "name": "my\-program" -, "version": "1\.2\.5" -, "bin" : { "my\-program" : "\./path/to/program" } } -.fi -.RE -.SH man -.P -Specify either a single file or an array of filenames to put in place for the -\fBman\fP program to find\. -.P -If only a single file is provided, then it's installed such that it is the -result from \fBman \fP, regardless of its actual filename\. For example: -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : "\./man/doc\.1" -} -.fi -.RE -.P -would link the \fB\|\./man/doc\.1\fP file in such that it is the target for \fBman foo\fP -.P -If the filename doesn't start with the package name, then it's prefixed\. -So, this: -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : [ "\./man/foo\.1", "\./man/bar\.1" ] -} -.fi -.RE -.P -will create files to do \fBman foo\fP and \fBman foo\-bar\fP\|\. -.P -Man files must end with a number, and optionally a \fB\|\.gz\fP suffix if they are -compressed\. The number dictates which man section the file is installed into\. -.P -.RS 2 -.nf -{ "name" : "foo" -, "version" : "1\.2\.3" -, "description" : "A packaged foo fooer for fooing foos" -, "main" : "foo\.js" -, "man" : [ "\./man/foo\.1", "\./man/foo\.2" ] -} -.fi -.RE -.P -will create entries for \fBman foo\fP and \fBman 2 foo\fP -.SH directories -.P -The CommonJS Packages \fIhttp://wiki\.commonjs\.org/wiki/Packages/1\.0\fR spec details a -few ways that you can indicate the structure of your package using a \fBdirectories\fP -object\. If you look at npm's package\.json \fIhttps://registry\.npmjs\.org/npm/latest\fR, -you'll see that it has directories for doc, lib, and man\. -.P -In the future, this information may be used in other creative ways\. -.SS directories\.lib -.P -Tell people where the bulk of your library is\. Nothing special is done -with the lib folder in any way, but it's useful meta info\. -.SS directories\.bin -.P -If you specify a \fBbin\fP directory in \fBdirectories\.bin\fP, all the files in -that folder will be added\. -.P -Because of the way the \fBbin\fP directive works, specifying both a -\fBbin\fP path and setting \fBdirectories\.bin\fP is an error\. If you want to -specify individual files, use \fBbin\fP, and for all the files in an -existing \fBbin\fP directory, use \fBdirectories\.bin\fP\|\. -.SS directories\.man -.P -A folder that is full of man pages\. Sugar to generate a "man" array by -walking the folder\. -.SS directories\.doc -.P -Put markdown files in here\. Eventually, these will be displayed nicely, -maybe, someday\. -.SS directories\.example -.P -Put example scripts in here\. Someday, it might be exposed in some clever way\. -.SS directories\.test -.P -Put your tests in here\. It is currently not exposed, but it might be in the -future\. -.SH repository -.P -Specify the place where your code lives\. This is helpful for people who -want to contribute\. If the git repo is on GitHub, then the \fBnpm docs\fP -command will be able to find you\. -.P -Do it like this: -.P -.RS 2 -.nf -"repository" : - { "type" : "git" - , "url" : "https://github\.com/npm/npm\.git" - } - -"repository" : - { "type" : "svn" - , "url" : "https://v8\.googlecode\.com/svn/trunk/" - } -.fi -.RE -.P -The URL should be a publicly available (perhaps read\-only) url that can be handed -directly to a VCS program without any modification\. It should not be a url to an -html project page that you put in your browser\. It's for computers\. -.P -For GitHub, GitHub gist, Bitbucket, or GitLab repositories you can use the same -shortcut syntax you use for \fBnpm install\fP: -.P -.RS 2 -.nf -"repository": "npm/npm" - -"repository": "gist:11081aaa281" - -"repository": "bitbucket:example/repo" - -"repository": "gitlab:another/repo" -.fi -.RE -.SH scripts -.P -The "scripts" property is a dictionary containing script commands that are run -at various times in the lifecycle of your package\. The key is the lifecycle -event, and the value is the command to run at that point\. -.P -See npm help 7 \fBnpm\-scripts\fP to find out more about writing package scripts\. -.SH config -.P -A "config" object can be used to set configuration parameters used in package -scripts that persist across upgrades\. For instance, if a package had the -following: -.P -.RS 2 -.nf -{ "name" : "foo" -, "config" : { "port" : "8080" } } -.fi -.RE -.P -and then had a "start" command that then referenced the -\fBnpm_package_config_port\fP environment variable, then the user could -override that by doing \fBnpm config set foo:port 8001\fP\|\. -.P -See npm help 7 \fBnpm\-config\fP and npm help 7 \fBnpm\-scripts\fP for more on package -configs\. -.SH dependencies -.P -Dependencies are specified in a simple object that maps a package name to a -version range\. The version range is a string which has one or more -space\-separated descriptors\. Dependencies can also be identified with a -tarball or git URL\. -.P -\fBPlease do not put test harnesses or transpilers in your -\fBdependencies\fP object\.\fR See \fBdevDependencies\fP, below\. -.P -See npm help 7 semver for more details about specifying version ranges\. -.RS 0 -.IP \(bu 2 -\fBversion\fP Must match \fBversion\fP exactly -.IP \(bu 2 -\fB>version\fP Must be greater than \fBversion\fP -.IP \(bu 2 -\fB>=version\fP etc -.IP \(bu 2 -\fB=version1 <=version2\fP\|\. -.IP \(bu 2 -\fBrange1 || range2\fP Passes if either range1 or range2 are satisfied\. -.IP \(bu 2 -\fBgit\.\.\.\fP See 'Git URLs as Dependencies' below -.IP \(bu 2 -\fBuser/repo\fP See 'GitHub URLs' below -.IP \(bu 2 -\fBtag\fP A specific version tagged and published as \fBtag\fP See npm help \fBnpm\-tag\fP -.IP \(bu 2 -\fBpath/path/path\fP See Local Paths \fI#local\-paths\fR below - -.RE -.P -For example, these are all valid: -.P -.RS 2 -.nf -{ "dependencies" : - { "foo" : "1\.0\.0 \- 2\.9999\.9999" - , "bar" : ">=1\.0\.2 <2\.1\.2" - , "baz" : ">1\.0\.2 <=2\.3\.4" - , "boo" : "2\.0\.1" - , "qux" : "<1\.0\.0 || >=2\.3\.1 <2\.4\.5 || >=2\.5\.2 <3\.0\.0" - , "asd" : "http://asdf\.com/asdf\.tar\.gz" - , "til" : "~1\.2" - , "elf" : "~1\.2\.3" - , "two" : "2\.x" - , "thr" : "3\.3\.x" - , "lat" : "latest" - , "dyl" : "file:\.\./dyl" - } -} -.fi -.RE -.SS URLs as Dependencies -.P -You may specify a tarball URL in place of a version range\. -.P -This tarball will be downloaded and installed locally to your package at -install time\. -.SS Git URLs as Dependencies -.P -Git urls can be of the form: -.P -.RS 2 -.nf -git://github\.com/user/project\.git#commit\-ish -git+ssh://user@hostname:project\.git#commit\-ish -git+ssh://user@hostname/project\.git#commit\-ish -git+http://user@hostname/project/blah\.git#commit\-ish -git+https://user@hostname/project/blah\.git#commit\-ish -.fi -.RE -.P -The \fBcommit\-ish\fP can be any tag, sha, or branch which can be supplied as -an argument to \fBgit checkout\fP\|\. The default is \fBmaster\fP\|\. -.SH GitHub URLs -.P -As of version 1\.1\.65, you can refer to GitHub urls as just "foo": -"user/foo\-project"\. Just as with git URLs, a \fBcommit\-ish\fP suffix can be -included\. For example: -.P -.RS 2 -.nf -{ - "name": "foo", - "version": "0\.0\.0", - "dependencies": { - "express": "visionmedia/express", - "mocha": "visionmedia/mocha#4727d357ea" - } -} -.fi -.RE -.SH Local Paths -.P -As of version 2\.0\.0 you can provide a path to a local directory that contains a -package\. Local paths can be saved using \fBnpm install \-S\fP or -\fBnpm install \-\-save\fP, using any of these forms: -.P -.RS 2 -.nf -\|\.\./foo/bar -~/foo/bar -\|\./foo/bar -/foo/bar -.fi -.RE -.P -in which case they will be normalized to a relative path and added to your -\fBpackage\.json\fP\|\. For example: -.P -.RS 2 -.nf -{ - "name": "baz", - "dependencies": { - "bar": "file:\.\./foo/bar" - } -} -.fi -.RE -.P -This feature is helpful for local offline development and creating -tests that require npm installing where you don't want to hit an -external server, but should not be used when publishing packages -to the public registry\. -.SH devDependencies -.P -If someone is planning on downloading and using your module in their -program, then they probably don't want or need to download and build -the external test or documentation framework that you use\. -.P -In this case, it's best to map these additional items in a \fBdevDependencies\fP -object\. -.P -These things will be installed when doing \fBnpm link\fP or \fBnpm install\fP -from the root of a package, and can be managed like any other npm -configuration param\. See npm help 7 \fBnpm\-config\fP for more on the topic\. -.P -For build steps that are not platform\-specific, such as compiling -CoffeeScript or other languages to JavaScript, use the \fBprepublish\fP -script to do this, and make the required package a devDependency\. -.P -For example: -.P -.RS 2 -.nf -{ "name": "ethopia\-waza", - "description": "a delightfully fruity coffee varietal", - "version": "1\.2\.3", - "devDependencies": { - "coffee\-script": "~1\.6\.3" - }, - "scripts": { - "prepublish": "coffee \-o lib/ \-c src/waza\.coffee" - }, - "main": "lib/waza\.js" -} -.fi -.RE -.P -The \fBprepublish\fP script will be run before publishing, so that users -can consume the functionality without requiring them to compile it -themselves\. In dev mode (ie, locally running \fBnpm install\fP), it'll -run this script as well, so that you can test it easily\. -.SH peerDependencies -.P -In some cases, you want to express the compatibility of your package with a -host tool or library, while not necessarily doing a \fBrequire\fP of this host\. -This is usually referred to as a \fIplugin\fR\|\. Notably, your module may be exposing -a specific interface, expected and specified by the host documentation\. -.P -For example: -.P -.RS 2 -.nf -{ - "name": "tea\-latte", - "version": "1\.3\.5", - "peerDependencies": { - "tea": "2\.x" - } -} -.fi -.RE -.P -This ensures your package \fBtea\-latte\fP can be installed \fIalong\fR with the second -major version of the host package \fBtea\fP only\. \fBnpm install tea\-latte\fP could -possibly yield the following dependency graph: -.P -.RS 2 -.nf -├── tea\-latte@1\.3\.5 -└── tea@2\.2\.0 -.fi -.RE -.P -\fBNOTE: npm versions 1 and 2 will automatically install \fBpeerDependencies\fP if -they are not explicitly depended upon higher in the dependency tree\. In the -next major version of npm (npm@3), this will no longer be the case\. You will -receive a warning that the peerDependency is not installed instead\.\fR The -behavior in npms 1 & 2 was frequently confusing and could easily put you into -dependency hell, a situation that npm is designed to avoid as much as possible\. -.P -Trying to install another plugin with a conflicting requirement will cause an -error\. For this reason, make sure your plugin requirement is as broad as -possible, and not to lock it down to specific patch versions\. -.P -Assuming the host complies with semver \fIhttp://semver\.org/\fR, only changes in -the host package's major version will break your plugin\. Thus, if you've worked -with every 1\.x version of the host package, use \fB"^1\.0"\fP or \fB"1\.x"\fP to express -this\. If you depend on features introduced in 1\.5\.2, use \fB">= 1\.5\.2 < 2"\fP\|\. -.SH bundledDependencies -.P -This defines an array of package names that will be bundled when publishing -the package\. -.P -In cases where you need to preserve npm packages locally or have them -available through a single file download, you can bundle the packages in a -tarball file by specifying the package names in the \fBbundledDependencies\fP -array and executing \fBnpm pack\fP\|\. -.P -For example: -.P -If we define a package\.json like this: -.P -.RS 2 -.nf -{ - "name": "awesome\-web\-framework", - "version": "1\.0\.0", - "bundledDependencies": [ - 'renderized', 'super\-streams' - ] -} -.fi -.RE -.P -we can obtain \fBawesome\-web\-framework\-1\.0\.0\.tgz\fP file by running \fBnpm pack\fP\|\. -This file contains the dependencies \fBrenderized\fP and \fBsuper\-streams\fP which -can be installed in a new project by executing \fBnpm install -awesome\-web\-framework\-1\.0\.0\.tgz\fP\|\. -.P -If this is spelled \fB"bundleDependencies"\fP, then that is also honored\. -.SH optionalDependencies -.P -If a dependency can be used, but you would like npm to proceed if it cannot be -found or fails to install, then you may put it in the \fBoptionalDependencies\fP -object\. This is a map of package name to version or url, just like the -\fBdependencies\fP object\. The difference is that build failures do not cause -installation to fail\. -.P -It is still your program's responsibility to handle the lack of the -dependency\. For example, something like this: -.P -.RS 2 -.nf -try { - var foo = require('foo') - var fooVersion = require('foo/package\.json')\.version -} catch (er) { - foo = null -} -if ( notGoodFooVersion(fooVersion) ) { - foo = null -} - -// \.\. then later in your program \.\. - -if (foo) { - foo\.doFooThings() -} -.fi -.RE -.P -Entries in \fBoptionalDependencies\fP will override entries of the same name in -\fBdependencies\fP, so it's usually best to only put in one place\. -.SH engines -.P -You can specify the version of node that your stuff works on: -.P -.RS 2 -.nf -{ "engines" : { "node" : ">=0\.10\.3 <0\.12" } } -.fi -.RE -.P -And, like with dependencies, if you don't specify the version (or if you -specify "*" as the version), then any version of node will do\. -.P -If you specify an "engines" field, then npm will require that "node" be -somewhere on that list\. If "engines" is omitted, then npm will just assume -that it works on node\. -.P -You can also use the "engines" field to specify which versions of npm -are capable of properly installing your program\. For example: -.P -.RS 2 -.nf -{ "engines" : { "npm" : "~1\.0\.20" } } -.fi -.RE -.P -Unless the user has set the \fBengine\-strict\fP config flag, this -field is advisory only will produce warnings when your package is installed as a dependency\. -.SH engineStrict -.P -\fBThis feature was removed in npm 3\.0\.0\fR -.P -Prior to npm 3\.0\.0, this feature was used to treat this package as if the -user had set \fBengine\-strict\fP\|\. It is no longer used\. -.SH os -.P -You can specify which operating systems your -module will run on: -.P -.RS 2 -.nf -"os" : [ "darwin", "linux" ] -.fi -.RE -.P -You can also blacklist instead of whitelist operating systems, -just prepend the blacklisted os with a '!': -.P -.RS 2 -.nf -"os" : [ "!win32" ] -.fi -.RE -.P -The host operating system is determined by \fBprocess\.platform\fP -.P -It is allowed to both blacklist, and whitelist, although there isn't any -good reason to do this\. -.SH cpu -.P -If your code only runs on certain cpu architectures, -you can specify which ones\. -.P -.RS 2 -.nf -"cpu" : [ "x64", "ia32" ] -.fi -.RE -.P -Like the \fBos\fP option, you can also blacklist architectures: -.P -.RS 2 -.nf -"cpu" : [ "!arm", "!mips" ] -.fi -.RE -.P -The host architecture is determined by \fBprocess\.arch\fP -.SH preferGlobal -.P -If your package is primarily a command\-line application that should be -installed globally, then set this value to \fBtrue\fP to provide a warning -if it is installed locally\. -.P -It doesn't actually prevent users from installing it locally, but it -does help prevent some confusion if it doesn't work as expected\. -.SH private -.P -If you set \fB"private": true\fP in your package\.json, then npm will refuse -to publish it\. -.P -This is a way to prevent accidental publication of private repositories\. If -you would like to ensure that a given package is only ever published to a -specific registry (for example, an internal registry), then use the -\fBpublishConfig\fP dictionary described below to override the \fBregistry\fP config -param at publish\-time\. -.SH publishConfig -.P -This is a set of config values that will be used at publish\-time\. It's -especially handy if you want to set the tag, registry or access, so that -you can ensure that a given package is not tagged with "latest", published -to the global public registry or that a scoped module is private by default\. -.P -Any config values can be overridden, but of course only "tag", "registry" and -"access" probably matter for the purposes of publishing\. -.P -See npm help 7 \fBnpm\-config\fP to see the list of config options that can be -overridden\. -.SH DEFAULT VALUES -.P -npm will default some values based on package contents\. -.RS 0 -.IP \(bu 2 -\fB"scripts": {"start": "node server\.js"}\fP -If there is a \fBserver\.js\fP file in the root of your package, then npm -will default the \fBstart\fP command to \fBnode server\.js\fP\|\. -.IP \(bu 2 -\fB"scripts":{"install": "node\-gyp rebuild"}\fP -If there is a \fBbinding\.gyp\fP file in the root of your package and you have not defined an \fBinstall\fP or \fBpreinstall\fP script, npm will -default the \fBinstall\fP command to compile using node\-gyp\. -.IP \(bu 2 -\fB"contributors": [\.\.\.]\fP -If there is an \fBAUTHORS\fP file in the root of your package, npm will -treat each line as a \fBName (url)\fP format, where email and url -are optional\. Lines which start with a \fB#\fP or are blank, will be -ignored\. - -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 semver -.IP \(bu 2 -npm help init -.IP \(bu 2 -npm help version -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help help -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help uninstall - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-coding-style.7 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-coding-style.7 deleted file mode 100644 index 7fd20b52..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-coding-style.7 +++ /dev/null @@ -1,222 +0,0 @@ -.TH "NPM\-CODING\-STYLE" "7" "June 2016" "" "" -.SH "NAME" -\fBnpm-coding-style\fR \- npm's "funny" coding style -.SH DESCRIPTION -.P -npm's coding style is a bit unconventional\. It is not different for -difference's sake, but rather a carefully crafted style that is -designed to reduce visual clutter and make bugs more apparent\. -.P -If you want to contribute to npm (which is very encouraged), you should -make your code conform to npm's style\. -.P -Note: this concerns npm's code not the specific packages that you can download from the npm registry\. -.SH Line Length -.P -Keep lines shorter than 80 characters\. It's better for lines to be -too short than to be too long\. Break up long lists, objects, and other -statements onto multiple lines\. -.SH Indentation -.P -Two\-spaces\. Tabs are better, but they look like hell in web browsers -(and on GitHub), and node uses 2 spaces, so that's that\. -.P -Configure your editor appropriately\. -.SH Curly braces -.P -Curly braces belong on the same line as the thing that necessitates them\. -.P -Bad: -.P -.RS 2 -.nf -function () -{ -.fi -.RE -.P -Good: -.P -.RS 2 -.nf -function () { -.fi -.RE -.P -If a block needs to wrap to the next line, use a curly brace\. Don't -use it if it doesn't\. -.P -Bad: -.P -.RS 2 -.nf -if (foo) { bar() } -while (foo) - bar() -.fi -.RE -.P -Good: -.P -.RS 2 -.nf -if (foo) bar() -while (foo) { - bar() -} -.fi -.RE -.SH Semicolons -.P -Don't use them except in four situations: -.RS 0 -.IP \(bu 2 -\fBfor (;;)\fP loops\. They're actually required\. -.IP \(bu 2 -null loops like: \fBwhile (something) ;\fP (But you'd better have a good -reason for doing that\.) -.IP \(bu 2 -\fBcase 'foo': doSomething(); break\fP -.IP \(bu 2 -In front of a leading \fB(\fP or \fB[\fP at the start of the line\. -This prevents the expression from being interpreted -as a function call or property access, respectively\. - -.RE -.P -Some examples of good semicolon usage: -.P -.RS 2 -.nf -;(x || y)\.doSomething() -;[a, b, c]\.forEach(doSomething) -for (var i = 0; i < 10; i ++) { - switch (state) { - case 'begin': start(); continue - case 'end': finish(); break - default: throw new Error('unknown state') - } - end() -} -.fi -.RE -.P -Note that starting lines with \fB\-\fP and \fB+\fP also should be prefixed -with a semicolon, but this is much less common\. -.SH Comma First -.P -If there is a list of things separated by commas, and it wraps -across multiple lines, put the comma at the start of the next -line, directly below the token that starts the list\. Put the -final token in the list on a line by itself\. For example: -.P -.RS 2 -.nf -var magicWords = [ 'abracadabra' - , 'gesundheit' - , 'ventrilo' - ] - , spells = { 'fireball' : function () { setOnFire() } - , 'water' : function () { putOut() } - } - , a = 1 - , b = 'abc' - , etc - , somethingElse -.fi -.RE -.SH Quotes -.P -Use single quotes for strings except to avoid escaping\. -.P -Bad: -.P -.RS 2 -.nf -var notOk = "Just double quotes" -.fi -.RE -.P -Good: -.P -.RS 2 -.nf -var ok = 'String contains "double" quotes' -var alsoOk = "String contains 'single' quotes or apostrophe" -.fi -.RE -.SH Whitespace -.P -Put a single space in front of ( for anything other than a function call\. -Also use a single space wherever it makes things more readable\. -.P -Don't leave trailing whitespace at the end of lines\. Don't indent empty -lines\. Don't use more spaces than are helpful\. -.SH Functions -.P -Use named functions\. They make stack traces a lot easier to read\. -.SH Callbacks, Sync/async Style -.P -Use the asynchronous/non\-blocking versions of things as much as possible\. -It might make more sense for npm to use the synchronous fs APIs, but this -way, the fs and http and child process stuff all uses the same callback\-passing -methodology\. -.P -The callback should always be the last argument in the list\. Its first -argument is the Error or null\. -.P -Be very careful never to ever ever throw anything\. It's worse than useless\. -Just send the error message back as the first argument to the callback\. -.SH Errors -.P -Always create a new Error object with your message\. Don't just return a -string message to the callback\. Stack traces are handy\. -.SH Logging -.P -Logging is done using the npmlog \fIhttps://github\.com/npm/npmlog\fR -utility\. -.P -Please clean up logs when they are no longer helpful\. In particular, -logging the same object over and over again is not helpful\. Logs should -report what's happening so that it's easier to track down where a fault -occurs\. -.P -Use appropriate log levels\. See npm help 7 \fBnpm\-config\fP and search for -"loglevel"\. -.SH Case, naming, etc\. -.P -Use \fBlowerCamelCase\fP for multiword identifiers when they refer to objects, -functions, methods, properties, or anything not specified in this section\. -.P -Use \fBUpperCamelCase\fP for class names (things that you'd pass to "new")\. -.P -Use \fBall\-lower\-hyphen\-css\-case\fP for multiword filenames and config keys\. -.P -Use named functions\. They make stack traces easier to follow\. -.P -Use \fBCAPS_SNAKE_CASE\fP for constants, things that should never change -and are rarely used\. -.P -Use a single uppercase letter for function names where the function -would normally be anonymous, but needs to call itself recursively\. It -makes it clear that it's a "throwaway" function\. -.SH null, undefined, false, 0 -.P -Boolean variables and functions should always be either \fBtrue\fP or -\fBfalse\fP\|\. Don't set it to 0 unless it's supposed to be a number\. -.P -When something is intentionally missing or removed, set it to \fBnull\fP\|\. -.P -Don't set things to \fBundefined\fP\|\. Reserve that value to mean "not yet -set to anything\." -.P -Boolean objects are verboten\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 developers -.IP \(bu 2 -npm help npm - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-config.7 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-config.7 deleted file mode 100644 index 6153cd4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-config.7 +++ /dev/null @@ -1,1363 +0,0 @@ -.TH "NPM\-CONFIG" "7" "June 2016" "" "" -.SH "NAME" -\fBnpm-config\fR \- More than you probably want to know about npm configuration -.SH DESCRIPTION -.P -npm gets its configuration values from the following sources, sorted by priority: -.SS Command Line Flags -.P -Putting \fB\-\-foo bar\fP on the command line sets the \fBfoo\fP configuration -parameter to \fB"bar"\fP\|\. A \fB\-\-\fP argument tells the cli parser to stop -reading flags\. A \fB\-\-flag\fP parameter that is at the \fIend\fR of the -command will be given the value of \fBtrue\fP\|\. -.SS Environment Variables -.P -Any environment variables that start with \fBnpm_config_\fP will be -interpreted as a configuration parameter\. For example, putting -\fBnpm_config_foo=bar\fP in your environment will set the \fBfoo\fP -configuration parameter to \fBbar\fP\|\. Any environment configurations that -are not given a value will be given the value of \fBtrue\fP\|\. Config -values are case\-insensitive, so \fBNPM_CONFIG_FOO=bar\fP will work the -same\. -.SS npmrc Files -.P -The four relevant files are: -.RS 0 -.IP \(bu 2 -per\-project config file (/path/to/my/project/\.npmrc) -.IP \(bu 2 -per\-user config file (~/\.npmrc) -.IP \(bu 2 -global config file ($PREFIX/etc/npmrc) -.IP \(bu 2 -npm builtin config file (/path/to/npm/npmrc) - -.RE -.P -See npm help 5 npmrc for more details\. -.SS Default Configs -.P -Run \fBnpm config ls \-l\fP to see a set of configuration parameters that are -internal to npm, and are defaults if nothing else is specified\. -.SH Shorthands and Other CLI Niceties -.P -The following shorthands are parsed on the command\-line: -.RS 0 -.IP \(bu 2 -\fB\-v\fP: \fB\-\-version\fP -.IP \(bu 2 -\fB\-h\fP, \fB\-?\fP, \fB\-\-help\fP, \fB\-H\fP: \fB\-\-usage\fP -.IP \(bu 2 -\fB\-s\fP, \fB\-\-silent\fP: \fB\-\-loglevel silent\fP -.IP \(bu 2 -\fB\-q\fP, \fB\-\-quiet\fP: \fB\-\-loglevel warn\fP -.IP \(bu 2 -\fB\-d\fP: \fB\-\-loglevel info\fP -.IP \(bu 2 -\fB\-dd\fP, \fB\-\-verbose\fP: \fB\-\-loglevel verbose\fP -.IP \(bu 2 -\fB\-ddd\fP: \fB\-\-loglevel silly\fP -.IP \(bu 2 -\fB\-g\fP: \fB\-\-global\fP -.IP \(bu 2 -\fB\-C\fP: \fB\-\-prefix\fP -.IP \(bu 2 -\fB\-l\fP: \fB\-\-long\fP -.IP \(bu 2 -\fB\-m\fP: \fB\-\-message\fP -.IP \(bu 2 -\fB\-p\fP, \fB\-\-porcelain\fP: \fB\-\-parseable\fP -.IP \(bu 2 -\fB\-reg\fP: \fB\-\-registry\fP -.IP \(bu 2 -\fB\-f\fP: \fB\-\-force\fP -.IP \(bu 2 -\fB\-desc\fP: \fB\-\-description\fP -.IP \(bu 2 -\fB\-S\fP: \fB\-\-save\fP -.IP \(bu 2 -\fB\-D\fP: \fB\-\-save\-dev\fP -.IP \(bu 2 -\fB\-O\fP: \fB\-\-save\-optional\fP -.IP \(bu 2 -\fB\-B\fP: \fB\-\-save\-bundle\fP -.IP \(bu 2 -\fB\-E\fP: \fB\-\-save\-exact\fP -.IP \(bu 2 -\fB\-y\fP: \fB\-\-yes\fP -.IP \(bu 2 -\fB\-n\fP: \fB\-\-yes false\fP -.IP \(bu 2 -\fBll\fP and \fBla\fP commands: \fBls \-\-long\fP - -.RE -.P -If the specified configuration param resolves unambiguously to a known -configuration parameter, then it is expanded to that configuration -parameter\. For example: -.P -.RS 2 -.nf -npm ls \-\-par -# same as: -npm ls \-\-parseable -.fi -.RE -.P -If multiple single\-character shorthands are strung together, and the -resulting combination is unambiguously not some other configuration -param, then it is expanded to its various component pieces\. For -example: -.P -.RS 2 -.nf -npm ls \-gpld -# same as: -npm ls \-\-global \-\-parseable \-\-long \-\-loglevel info -.fi -.RE -.SH Per\-Package Config Settings -.P -When running scripts (see npm help 7 \fBnpm\-scripts\fP) the package\.json "config" -keys are overwritten in the environment if there is a config param of -\fB[@]:\fP\|\. For example, if the package\.json has -this: -.P -.RS 2 -.nf -{ "name" : "foo" -, "config" : { "port" : "8080" } -, "scripts" : { "start" : "node server\.js" } } -.fi -.RE -.P -and the server\.js is this: -.P -.RS 2 -.nf -http\.createServer(\.\.\.)\.listen(process\.env\.npm_package_config_port) -.fi -.RE -.P -then the user could change the behavior by doing: -.P -.RS 2 -.nf -npm config set foo:port 80 -.fi -.RE -.P -See npm help 5 package\.json for more information\. -.SH Config Settings -.SS access -.RS 0 -.IP \(bu 2 -Default: \fBrestricted\fP -.IP \(bu 2 -Type: Access - -.RE -.P -When publishing scoped packages, the access level defaults to \fBrestricted\fP\|\. If -you want your scoped package to be publicly viewable (and installable) set -\fB\-\-access=public\fP\|\. The only valid values for \fBaccess\fP are \fBpublic\fP and -\fBrestricted\fP\|\. Unscoped packages \fIalways\fR have an access level of \fBpublic\fP\|\. -.SS always\-auth -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Force npm to always require authentication when accessing the registry, -even for \fBGET\fP requests\. -.SS also -.RS 0 -.IP \(bu 2 -Default: null -.IP \(bu 2 -Type: String - -.RE -.P -When "dev" or "development" and running local \fBnpm shrinkwrap\fP, -\fBnpm outdated\fP, or \fBnpm update\fP, is an alias for \fB\-\-dev\fP\|\. -.SS bin\-links -.RS 0 -.IP \(bu 2 -Default: \fBtrue\fP -.IP \(bu 2 -Type: Boolean - -.RE -.P -Tells npm to create symlinks (or \fB\|\.cmd\fP shims on Windows) for package -executables\. -.P -Set to false to have it not do this\. This can be used to work around -the fact that some file systems don't support symlinks, even on -ostensibly Unix systems\. -.SS browser -.RS 0 -.IP \(bu 2 -Default: OS X: \fB"open"\fP, Windows: \fB"start"\fP, Others: \fB"xdg\-open"\fP -.IP \(bu 2 -Type: String - -.RE -.P -The browser that is called by the \fBnpm docs\fP command to open websites\. -.SS ca -.RS 0 -.IP \(bu 2 -Default: The npm CA certificate -.IP \(bu 2 -Type: String, Array or null - -.RE -.P -The Certificate Authority signing certificate that is trusted for SSL -connections to the registry\. Values should be in PEM format with newlines -replaced by the string "\\n"\. For example: -.P -.RS 2 -.nf -ca="\-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-\\nXXXX\\nXXXX\\n\-\-\-\-\-END CERTIFICATE\-\-\-\-\-" -.fi -.RE -.P -Set to \fBnull\fP to only allow "known" registrars, or to a specific CA cert -to trust only that specific signing authority\. -.P -Multiple CAs can be trusted by specifying an array of certificates: -.P -.RS 2 -.nf -ca[]="\.\.\." -ca[]="\.\.\." -.fi -.RE -.P -See also the \fBstrict\-ssl\fP config\. -.SS cafile -.RS 0 -.IP \(bu 2 -Default: \fBnull\fP -.IP \(bu 2 -Type: path - -.RE -.P -A path to a file containing one or multiple Certificate Authority signing -certificates\. Similar to the \fBca\fP setting, but allows for multiple CA's, as -well as for the CA information to be stored in a file on disk\. -.SS cache -.RS 0 -.IP \(bu 2 -Default: Windows: \fB%AppData%\\npm\-cache\fP, Posix: \fB~/\.npm\fP -.IP \(bu 2 -Type: path - -.RE -.P -The location of npm's cache directory\. See npm help \fBnpm\-cache\fP -.SS cache\-lock\-stale -.RS 0 -.IP \(bu 2 -Default: 60000 (1 minute) -.IP \(bu 2 -Type: Number - -.RE -.P -The number of ms before cache folder lockfiles are considered stale\. -.SS cache\-lock\-retries -.RS 0 -.IP \(bu 2 -Default: 10 -.IP \(bu 2 -Type: Number - -.RE -.P -Number of times to retry to acquire a lock on cache folder lockfiles\. -.SS cache\-lock\-wait -.RS 0 -.IP \(bu 2 -Default: 10000 (10 seconds) -.IP \(bu 2 -Type: Number - -.RE -.P -Number of ms to wait for cache lock files to expire\. -.SS cache\-max -.RS 0 -.IP \(bu 2 -Default: Infinity -.IP \(bu 2 -Type: Number - -.RE -.P -The maximum time (in seconds) to keep items in the registry cache before -re\-checking against the registry\. -.P -Note that no purging is done unless the \fBnpm cache clean\fP command is -explicitly used, and that only GET requests use the cache\. -.SS cache\-min -.RS 0 -.IP \(bu 2 -Default: 10 -.IP \(bu 2 -Type: Number - -.RE -.P -The minimum time (in seconds) to keep items in the registry cache before -re\-checking against the registry\. -.P -Note that no purging is done unless the \fBnpm cache clean\fP command is -explicitly used, and that only GET requests use the cache\. -.SS cert -.RS 0 -.IP \(bu 2 -Default: \fBnull\fP -.IP \(bu 2 -Type: String - -.RE -.P -A client certificate to pass when accessing the registry\. Values should be in -PEM format with newlines replaced by the string "\\n"\. For example: -.P -.RS 2 -.nf -cert="\-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-\\nXXXX\\nXXXX\\n\-\-\-\-\-END CERTIFICATE\-\-\-\-\-" -.fi -.RE -.P -It is \fInot\fR the path to a certificate file (and there is no "certfile" option)\. -.SS color -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean or \fB"always"\fP - -.RE -.P -If false, never shows colors\. If \fB"always"\fP then always shows colors\. -If true, then only prints color codes for tty file descriptors\. -.SS depth -.RS 0 -.IP \(bu 2 -Default: Infinity -.IP \(bu 2 -Type: Number - -.RE -.P -The depth to go when recursing directories for \fBnpm ls\fP, -\fBnpm cache ls\fP, and \fBnpm outdated\fP\|\. -.P -For \fBnpm outdated\fP, a setting of \fBInfinity\fP will be treated as \fB0\fP -since that gives more useful information\. To show the outdated status -of all packages and dependents, use a large integer value, -e\.g\., \fBnpm outdated \-\-depth 9999\fP -.SS description -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show the description in \fBnpm search\fP -.SS dev -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Install \fBdev\-dependencies\fP along with packages\. -.P -Note that \fBdev\-dependencies\fP are also installed if the \fBnpat\fP flag is -set\. -.SS dry\-run -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Indicates that you don't want npm to make any changes and that it should -only report what it would have done\. This can be passed into any of the -commands that modify your local installation, eg, \fBinstall\fP, \fBupdate\fP, -\fBdedupe\fP, \fBuninstall\fP\|\. This is NOT currently honored by network related -commands, eg \fBdist\-tags\fP, \fBowner\fP, \fBpublish\fP, etc\. -.SS editor -.RS 0 -.IP \(bu 2 -Default: \fBEDITOR\fP environment variable if set, or \fB"vi"\fP on Posix, -or \fB"notepad"\fP on Windows\. -.IP \(bu 2 -Type: path - -.RE -.P -The command to run for \fBnpm edit\fP or \fBnpm config edit\fP\|\. -.SS engine\-strict -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If set to true, then npm will stubbornly refuse to install (or even -consider installing) any package that claims to not be compatible with -the current Node\.js version\. -.SS force -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Makes various commands more forceful\. -.RS 0 -.IP \(bu 2 -lifecycle script failure does not block progress\. -.IP \(bu 2 -publishing clobbers previously published versions\. -.IP \(bu 2 -skips cache when requesting from the registry\. -.IP \(bu 2 -prevents checks against clobbering non\-npm files\. - -.RE -.SS fetch\-retries -.RS 0 -.IP \(bu 2 -Default: 2 -.IP \(bu 2 -Type: Number - -.RE -.P -The "retries" config for the \fBretry\fP module to use when fetching -packages from the registry\. -.SS fetch\-retry\-factor -.RS 0 -.IP \(bu 2 -Default: 10 -.IP \(bu 2 -Type: Number - -.RE -.P -The "factor" config for the \fBretry\fP module to use when fetching -packages\. -.SS fetch\-retry\-mintimeout -.RS 0 -.IP \(bu 2 -Default: 10000 (10 seconds) -.IP \(bu 2 -Type: Number - -.RE -.P -The "minTimeout" config for the \fBretry\fP module to use when fetching -packages\. -.SS fetch\-retry\-maxtimeout -.RS 0 -.IP \(bu 2 -Default: 60000 (1 minute) -.IP \(bu 2 -Type: Number - -.RE -.P -The "maxTimeout" config for the \fBretry\fP module to use when fetching -packages\. -.SS git -.RS 0 -.IP \(bu 2 -Default: \fB"git"\fP -.IP \(bu 2 -Type: String - -.RE -.P -The command to use for git commands\. If git is installed on the -computer, but is not in the \fBPATH\fP, then set this to the full path to -the git binary\. -.SS git\-tag\-version -.RS 0 -.IP \(bu 2 -Default: \fBtrue\fP -.IP \(bu 2 -Type: Boolean - -.RE -.P -Tag the commit when using the \fBnpm version\fP command\. -.SS global -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Operates in "global" mode, so that packages are installed into the -\fBprefix\fP folder instead of the current working directory\. See -npm help 5 \fBnpm\-folders\fP for more on the differences in behavior\. -.RS 0 -.IP \(bu 2 -packages are installed into the \fB{prefix}/lib/node_modules\fP folder, instead of the -current working directory\. -.IP \(bu 2 -bin files are linked to \fB{prefix}/bin\fP -.IP \(bu 2 -man pages are linked to \fB{prefix}/share/man\fP - -.RE -.SS globalconfig -.RS 0 -.IP \(bu 2 -Default: {prefix}/etc/npmrc -.IP \(bu 2 -Type: path - -.RE -.P -The config file to read for global config options\. -.SS global\-style -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Causes npm to install the package into your local \fBnode_modules\fP folder with -the same layout it uses with the global \fBnode_modules\fP folder\. Only your -direct dependencies will show in \fBnode_modules\fP and everything they depend -on will be flattened in their \fBnode_modules\fP folders\. This obviously will -eliminate some deduping\. If used with \fBlegacy\-bundling\fP, \fBlegacy\-bundling\fP will be -preferred\. -.SS group -.RS 0 -.IP \(bu 2 -Default: GID of the current process -.IP \(bu 2 -Type: String or Number - -.RE -.P -The group to use when running package scripts in global mode as the root -user\. -.SS heading -.RS 0 -.IP \(bu 2 -Default: \fB"npm"\fP -.IP \(bu 2 -Type: String - -.RE -.P -The string that starts all the debugging log output\. -.SS https\-proxy -.RS 0 -.IP \(bu 2 -Default: null -.IP \(bu 2 -Type: url - -.RE -.P -A proxy to use for outgoing https requests\. If the \fBHTTPS_PROXY\fP or -\fBhttps_proxy\fP or \fBHTTP_PROXY\fP or \fBhttp_proxy\fP environment variables are set, -proxy settings will be honored by the underlying \fBrequest\fP library\. -.SS if\-present -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If true, npm will not exit with an error code when \fBrun\-script\fP is invoked for -a script that isn't defined in the \fBscripts\fP section of \fBpackage\.json\fP\|\. This -option can be used when it's desirable to optionally run a script when it's -present and fail if the script fails\. This is useful, for example, when running -scripts that may only apply for some builds in an otherwise generic CI setup\. -.SS ignore\-scripts -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If true, npm does not run scripts specified in package\.json files\. -.SS init\-module -.RS 0 -.IP \(bu 2 -Default: ~/\.npm\-init\.js -.IP \(bu 2 -Type: path - -.RE -.P -A module that will be loaded by the \fBnpm init\fP command\. See the -documentation for the -init\-package\-json \fIhttps://github\.com/isaacs/init\-package\-json\fR module -for more information, or npm help init\. -.SS init\-author\-name -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -The value \fBnpm init\fP should use by default for the package author's name\. -.SS init\-author\-email -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -The value \fBnpm init\fP should use by default for the package author's email\. -.SS init\-author\-url -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -The value \fBnpm init\fP should use by default for the package author's homepage\. -.SS init\-license -.RS 0 -.IP \(bu 2 -Default: "ISC" -.IP \(bu 2 -Type: String - -.RE -.P -The value \fBnpm init\fP should use by default for the package license\. -.SS init\-version -.RS 0 -.IP \(bu 2 -Default: "1\.0\.0" -.IP \(bu 2 -Type: semver - -.RE -.P -The value that \fBnpm init\fP should use by default for the package -version number, if not already set in package\.json\. -.SS json -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Whether or not to output JSON data, rather than the normal output\. -.P -This feature is currently experimental, and the output data structures -for many commands is either not implemented in JSON yet, or subject to -change\. Only the output from \fBnpm ls \-\-json\fP is currently valid\. -.SS key -.RS 0 -.IP \(bu 2 -Default: \fBnull\fP -.IP \(bu 2 -Type: String - -.RE -.P -A client key to pass when accessing the registry\. Values should be in PEM -format with newlines replaced by the string "\\n"\. For example: -.P -.RS 2 -.nf -key="\-\-\-\-\-BEGIN PRIVATE KEY\-\-\-\-\-\\nXXXX\\nXXXX\\n\-\-\-\-\-END PRIVATE KEY\-\-\-\-\-" -.fi -.RE -.P -It is \fInot\fR the path to a key file (and there is no "keyfile" option)\. -.SS legacy\-bundling -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Causes npm to install the package such that versions of npm prior to 1\.4, -such as the one included with node 0\.8, can install the package\. This -eliminates all automatic deduping\. If used with \fBglobal\-style\fP this option -will be preferred\. -.SS link -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If true, then local installs will link if there is a suitable globally -installed package\. -.P -Note that this means that local installs can cause things to be -installed into the global space at the same time\. The link is only done -if one of the two conditions are met: -.RS 0 -.IP \(bu 2 -The package is not already installed globally, or -.IP \(bu 2 -the globally installed version is identical to the version that is -being installed locally\. - -.RE -.SS local\-address -.RS 0 -.IP \(bu 2 -Default: undefined -.IP \(bu 2 -Type: IP Address - -.RE -.P -The IP address of the local interface to use when making connections -to the npm registry\. Must be IPv4 in versions of Node prior to 0\.12\. -.SS loglevel -.RS 0 -.IP \(bu 2 -Default: "warn" -.IP \(bu 2 -Type: String -.IP \(bu 2 -Values: "silent", "error", "warn", "http", "info", "verbose", "silly" - -.RE -.P -What level of logs to report\. On failure, \fIall\fR logs are written to -\fBnpm\-debug\.log\fP in the current working directory\. -.P -Any logs of a higher level than the setting are shown\. -The default is "warn", which shows warn and error output\. -.SS logstream -.RS 0 -.IP \(bu 2 -Default: process\.stderr -.IP \(bu 2 -Type: Stream - -.RE -.P -This is the stream that is passed to the -npmlog \fIhttps://github\.com/npm/npmlog\fR module at run time\. -.P -It cannot be set from the command line, but if you are using npm -programmatically, you may wish to send logs to somewhere other than -stderr\. -.P -If the \fBcolor\fP config is set to true, then this stream will receive -colored output if it is a TTY\. -.SS long -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Show extended information in \fBnpm ls\fP and \fBnpm search\fP\|\. -.SS maxsockets -.RS 0 -.IP \(bu 2 -Default: 50 -.IP \(bu 2 -Type: Number - -.RE -.P -The maximum number of connections to use per origin (protocol/host/port -combination)\. Passed to the \fBhttp\fP \fBAgent\fP used to make the request\. -.SS message -.RS 0 -.IP \(bu 2 -Default: "%s" -.IP \(bu 2 -Type: String - -.RE -.P -Commit message which is used by \fBnpm version\fP when creating version commit\. -.P -Any "%s" in the message will be replaced with the version number\. -.SS node\-version -.RS 0 -.IP \(bu 2 -Default: process\.version -.IP \(bu 2 -Type: semver or false - -.RE -.P -The node version to use when checking a package's \fBengines\fP map\. -.SS npat -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Run tests on installation\. -.SS onload\-script -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: path - -.RE -.P -A node module to \fBrequire()\fP when npm loads\. Useful for programmatic -usage\. -.SS only -.RS 0 -.IP \(bu 2 -Default: null -.IP \(bu 2 -Type: String - -.RE -.P -When "dev" or "development" and running local \fBnpm install\fP without any -arguments, only devDependencies (and their dependencies) are installed\. -.P -When "dev" or "development" and running local \fBnpm ls\fP, \fBnpm outdated\fP, or -\fBnpm update\fP, is an alias for \fB\-\-dev\fP\|\. -.P -When "prod" or "production" and running local \fBnpm install\fP without any -arguments, only non\-devDependencies (and their dependencies) are -installed\. -.P -When "prod" or "production" and running local \fBnpm ls\fP, \fBnpm outdated\fP, or -\fBnpm update\fP, is an alias for \fB\-\-production\fP\|\. -.SS optional -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Attempt to install packages in the \fBoptionalDependencies\fP object\. Note -that if these packages fail to install, the overall installation -process is not aborted\. -.SS parseable -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Output parseable results from commands that write to -standard output\. -.SS prefix -.RS 0 -.IP \(bu 2 -Default: see npm help 5 folders -.IP \(bu 2 -Type: path - -.RE -.P -The location to install global items\. If set on the command line, then -it forces non\-global commands to run in the specified folder\. -.SS production -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Set to true to run in "production" mode\. -.RS 0 -.IP 1. 3 -devDependencies are not installed at the topmost level when running -local \fBnpm install\fP without any arguments\. -.IP 2. 3 -Set the NODE_ENV="production" for lifecycle scripts\. - -.RE -.SS progress -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -When set to \fBtrue\fP, npm will display a progress bar during time intensive -operations, if \fBprocess\.stderr\fP is a TTY\. -.P -Set to \fBfalse\fP to suppress the progress bar\. -.SS proprietary\-attribs -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Whether or not to include proprietary extended attributes in the -tarballs created by npm\. -.P -Unless you are expecting to unpack package tarballs with something other -than npm \-\- particularly a very outdated tar implementation \-\- leave -this as true\. -.SS proxy -.RS 0 -.IP \(bu 2 -Default: null -.IP \(bu 2 -Type: url - -.RE -.P -A proxy to use for outgoing http requests\. If the \fBHTTP_PROXY\fP or -\fBhttp_proxy\fP environment variables are set, proxy settings will be -honored by the underlying \fBrequest\fP library\. -.SS rebuild\-bundle -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Rebuild bundled dependencies after installation\. -.SS registry -.RS 0 -.IP \(bu 2 -Default: https://registry\.npmjs\.org/ -.IP \(bu 2 -Type: url - -.RE -.P -The base URL of the npm package registry\. -.SS rollback -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Remove failed installs\. -.SS save -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Save installed packages to a package\.json file as dependencies\. -.P -When used with the \fBnpm rm\fP command, it removes it from the \fBdependencies\fP -object\. -.P -Only works if there is already a package\.json file present\. -.SS save\-bundle -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If a package would be saved at install time by the use of \fB\-\-save\fP, -\fB\-\-save\-dev\fP, or \fB\-\-save\-optional\fP, then also put it in the -\fBbundleDependencies\fP list\. -.P -When used with the \fBnpm rm\fP command, it removes it from the -bundledDependencies list\. -.SS save\-dev -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Save installed packages to a package\.json file as \fBdevDependencies\fP\|\. -.P -When used with the \fBnpm rm\fP command, it removes it from the -\fBdevDependencies\fP object\. -.P -Only works if there is already a package\.json file present\. -.SS save\-exact -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Dependencies saved to package\.json using \fB\-\-save\fP, \fB\-\-save\-dev\fP or -\fB\-\-save\-optional\fP will be configured with an exact version rather than -using npm's default semver range operator\. -.SS save\-optional -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Save installed packages to a package\.json file as -optionalDependencies\. -.P -When used with the \fBnpm rm\fP command, it removes it from the -\fBdevDependencies\fP object\. -.P -Only works if there is already a package\.json file present\. -.SS save\-prefix -.RS 0 -.IP \(bu 2 -Default: '^' -.IP \(bu 2 -Type: String - -.RE -.P -Configure how versions of packages installed to a package\.json file via -\fB\-\-save\fP or \fB\-\-save\-dev\fP get prefixed\. -.P -For example if a package has version \fB1\.2\.3\fP, by default its version is -set to \fB^1\.2\.3\fP which allows minor upgrades for that package, but after -\fBnpm config set save\-prefix='~'\fP it would be set to \fB~1\.2\.3\fP which only allows -patch upgrades\. -.SS scope -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -Associate an operation with a scope for a scoped registry\. Useful when logging -in to a private registry for the first time: -\fBnpm login \-\-scope=@organization \-\-registry=registry\.organization\.com\fP, which -will cause \fB@organization\fP to be mapped to the registry for future installation -of packages specified according to the pattern \fB@organization/package\fP\|\. -.SS searchopts -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -Space\-separated options that are always passed to search\. -.SS searchexclude -.RS 0 -.IP \(bu 2 -Default: "" -.IP \(bu 2 -Type: String - -.RE -.P -Space\-separated options that limit the results from search\. -.SS searchsort -.RS 0 -.IP \(bu 2 -Default: "name" -.IP \(bu 2 -Type: String -.IP \(bu 2 -Values: "name", "\-name", "date", "\-date", "description", -"\-description", "keywords", "\-keywords" - -.RE -.P -Indication of which field to sort search results by\. Prefix with a \fB\-\fP -character to indicate reverse sort\. -.SS shell -.RS 0 -.IP \(bu 2 -Default: SHELL environment variable, or "bash" on Posix, or "cmd" on -Windows -.IP \(bu 2 -Type: path - -.RE -.P -The shell to run for the \fBnpm explore\fP command\. -.SS shrinkwrap -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -If set to false, then ignore \fBnpm\-shrinkwrap\.json\fP files when -installing\. -.SS sign\-git\-tag -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -If set to true, then the \fBnpm version\fP command will tag the version -using \fB\-s\fP to add a signature\. -.P -Note that git requires you to have set up GPG keys in your git configs -for this to work properly\. -.SS strict\-ssl -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean - -.RE -.P -Whether or not to do SSL key validation when making requests to the -registry via https\. -.P -See also the \fBca\fP config\. -.SS tag -.RS 0 -.IP \(bu 2 -Default: latest -.IP \(bu 2 -Type: String - -.RE -.P -If you ask npm to install a package and don't tell it a specific version, then -it will install the specified tag\. -.P -Also the tag that is added to the package@version specified by the \fBnpm -tag\fP command, if no explicit tag is given\. -.SS tag\-version\-prefix -.RS 0 -.IP \(bu 2 -Default: \fB"v"\fP -.IP \(bu 2 -Type: String - -.RE -.P -If set, alters the prefix used when tagging a new version when performing a -version increment using \fBnpm\-version\fP\|\. To remove the prefix altogether, set it -to the empty string: \fB""\fP\|\. -.P -Because other tools may rely on the convention that npm version tags look like -\fBv1\.0\.0\fP, \fIonly use this property if it is absolutely necessary\fR\|\. In -particular, use care when overriding this setting for public packages\. -.SS tmp -.RS 0 -.IP \(bu 2 -Default: TMPDIR environment variable, or "/tmp" -.IP \(bu 2 -Type: path - -.RE -.P -Where to store temporary files and folders\. All temp files are deleted -on success, but left behind on failure for forensic purposes\. -.SS unicode -.RS 0 -.IP \(bu 2 -Default: false on windows, true on mac/unix systems with a unicode locale -.IP \(bu 2 -Type: Boolean - -.RE -.P -When set to true, npm uses unicode characters in the tree output\. When -false, it uses ascii characters to draw trees\. -.SS unsafe\-perm -.RS 0 -.IP \(bu 2 -Default: false if running as root, true otherwise -.IP \(bu 2 -Type: Boolean - -.RE -.P -Set to true to suppress the UID/GID switching when running package -scripts\. If set explicitly to false, then installing as a non\-root user -will fail\. -.SS usage -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: Boolean - -.RE -.P -Set to show short usage output (like the \-H output) -instead of complete help when doing npm help \fBnpm\-help\fP\|\. -.SS user -.RS 0 -.IP \(bu 2 -Default: "nobody" -.IP \(bu 2 -Type: String or Number - -.RE -.P -The UID to set to when running package scripts as root\. -.SS userconfig -.RS 0 -.IP \(bu 2 -Default: ~/\.npmrc -.IP \(bu 2 -Type: path - -.RE -.P -The location of user\-level configuration settings\. -.SS umask -.RS 0 -.IP \(bu 2 -Default: 022 -.IP \(bu 2 -Type: Octal numeric string in range 0000\.\.0777 (0\.\.511) - -.RE -.P -The "umask" value to use when setting the file creation mode on files -and folders\. -.P -Folders and executables are given a mode which is \fB0777\fP masked against -this value\. Other files are given a mode which is \fB0666\fP masked against -this value\. Thus, the defaults are \fB0755\fP and \fB0644\fP respectively\. -.SS user\-agent -.RS 0 -.IP \(bu 2 -Default: node/{process\.version} {process\.platform} {process\.arch} -.IP \(bu 2 -Type: String - -.RE -.P -Sets a User\-Agent to the request header -.SS version -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: boolean - -.RE -.P -If true, output the npm version and exit successfully\. -.P -Only relevant when specified explicitly on the command line\. -.SS versions -.RS 0 -.IP \(bu 2 -Default: false -.IP \(bu 2 -Type: boolean - -.RE -.P -If true, output the npm version as well as node's \fBprocess\.versions\fP map, and -exit successfully\. -.P -Only relevant when specified explicitly on the command line\. -.SS viewer -.RS 0 -.IP \(bu 2 -Default: "man" on Posix, "browser" on Windows -.IP \(bu 2 -Type: path - -.RE -.P -The program to use to view help content\. -.P -Set to \fB"browser"\fP to view html help content in the default web browser\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help npm - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-developers.7 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-developers.7 deleted file mode 100644 index de6895f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-developers.7 +++ /dev/null @@ -1,280 +0,0 @@ -.TH "NPM\-DEVELOPERS" "7" "June 2016" "" "" -.SH "NAME" -\fBnpm-developers\fR \- Developer Guide -.SH DESCRIPTION -.P -So, you've decided to use npm to develop (and maybe publish/deploy) -your project\. -.P -Fantastic! -.P -There are a few things that you need to do above the simple steps -that your users will do to install your program\. -.SH About These Documents -.P -These are man pages\. If you install npm, you should be able to -then do \fBman npm\-thing\fP to get the documentation on a particular -topic, or \fBnpm help thing\fP to see the same information\. -.SH What is a \fBpackage\fP -.P -A package is: -.RS 0 -.IP \(bu 2 -a) a folder containing a program described by a package\.json file -.IP \(bu 2 -b) a gzipped tarball containing (a) -.IP \(bu 2 -c) a url that resolves to (b) -.IP \(bu 2 -d) a \fB@\fP that is published on the registry with (c) -.IP \(bu 2 -e) a \fB@\fP that points to (d) -.IP \(bu 2 -f) a \fB\fP that has a "latest" tag satisfying (e) -.IP \(bu 2 -g) a \fBgit\fP url that, when cloned, results in (a)\. - -.RE -.P -Even if you never publish your package, you can still get a lot of -benefits of using npm if you just want to write a node program (a), and -perhaps if you also want to be able to easily install it elsewhere -after packing it up into a tarball (b)\. -.P -Git urls can be of the form: -.P -.RS 2 -.nf -git://github\.com/user/project\.git#commit\-ish -git+ssh://user@hostname:project\.git#commit\-ish -git+http://user@hostname/project/blah\.git#commit\-ish -git+https://user@hostname/project/blah\.git#commit\-ish -.fi -.RE -.P -The \fBcommit\-ish\fP can be any tag, sha, or branch which can be supplied as -an argument to \fBgit checkout\fP\|\. The default is \fBmaster\fP\|\. -.SH The package\.json File -.P -You need to have a \fBpackage\.json\fP file in the root of your project to do -much of anything with npm\. That is basically the whole interface\. -.P -See npm help 5 \fBpackage\.json\fP for details about what goes in that file\. At the very -least, you need: -.RS 0 -.IP \(bu 2 -name: -This should be a string that identifies your project\. Please do not -use the name to specify that it runs on node, or is in JavaScript\. -You can use the "engines" field to explicitly state the versions of -node (or whatever else) that your program requires, and it's pretty -well assumed that it's javascript\. -It does not necessarily need to match your github repository name\. -So, \fBnode\-foo\fP and \fBbar\-js\fP are bad names\. \fBfoo\fP or \fBbar\fP are better\. -.IP \(bu 2 -version: -A semver\-compatible version\. -.IP \(bu 2 -engines: -Specify the versions of node (or whatever else) that your program -runs on\. The node API changes a lot, and there may be bugs or new -functionality that you depend on\. Be explicit\. -.IP \(bu 2 -author: -Take some credit\. -.IP \(bu 2 -scripts: -If you have a special compilation or installation script, then you -should put it in the \fBscripts\fP object\. You should definitely have at -least a basic smoke\-test command as the "scripts\.test" field\. -See npm help 7 scripts\. -.IP \(bu 2 -main: -If you have a single module that serves as the entry point to your -program (like what the "foo" package gives you at require("foo")), -then you need to specify that in the "main" field\. -.IP \(bu 2 -directories: -This is an object mapping names to folders\. The best ones to include are -"lib" and "doc", but if you use "man" to specify a folder full of man pages, -they'll get installed just like these ones\. - -.RE -.P -You can use \fBnpm init\fP in the root of your package in order to get you -started with a pretty basic package\.json file\. See npm help \fBnpm\-init\fP for -more info\. -.SH Keeping files \fIout\fR of your package -.P -Use a \fB\|\.npmignore\fP file to keep stuff out of your package\. If there's -no \fB\|\.npmignore\fP file, but there \fIis\fR a \fB\|\.gitignore\fP file, then npm will -ignore the stuff matched by the \fB\|\.gitignore\fP file\. If you \fIwant\fR to -include something that is excluded by your \fB\|\.gitignore\fP file, you can -create an empty \fB\|\.npmignore\fP file to override it\. Like \fBgit\fP, \fBnpm\fP looks -for \fB\|\.npmignore\fP and \fB\|\.gitignore\fP files in all subdirectories of your -package, not only the root directory\. -.P -\fB\|\.npmignore\fP files follow the same pattern rules \fIhttps://git\-scm\.com/book/en/v2/Git\-Basics\-Recording\-Changes\-to\-the\-Repository#Ignoring\-Files\fR -as \fB\|\.gitignore\fP files: -.RS 0 -.IP \(bu 2 -Blank lines or lines starting with \fB#\fP are ignored\. -.IP \(bu 2 -Standard glob patterns work\. -.IP \(bu 2 -You can end patterns with a forward slash \fB/\fP to specify a directory\. -.IP \(bu 2 -You can negate a pattern by starting it with an exclamation point \fB!\fP\|\. - -.RE -.P -By default, the following paths and files are ignored, so there's no -need to add them to \fB\|\.npmignore\fP explicitly: -.RS 0 -.IP \(bu 2 -\fB\|\.*\.swp\fP -.IP \(bu 2 -\fB\|\._*\fP -.IP \(bu 2 -\fB\|\.DS_Store\fP -.IP \(bu 2 -\fB\|\.git\fP -.IP \(bu 2 -\fB\|\.hg\fP -.IP \(bu 2 -\fB\|\.npmrc\fP -.IP \(bu 2 -\fB\|\.lock\-wscript\fP -.IP \(bu 2 -\fB\|\.svn\fP -.IP \(bu 2 -\fB\|\.wafpickle\-*\fP -.IP \(bu 2 -\fBconfig\.gypi\fP -.IP \(bu 2 -\fBCVS\fP -.IP \(bu 2 -\fBnpm\-debug\.log\fP - -.RE -.P -Additionally, everything in \fBnode_modules\fP is ignored, except for -bundled dependencies\. npm automatically handles this for you, so don't -bother adding \fBnode_modules\fP to \fB\|\.npmignore\fP\|\. -.P -The following paths and files are never ignored, so adding them to -\fB\|\.npmignore\fP is pointless: -.RS 0 -.IP \(bu 2 -\fBpackage\.json\fP -.IP \(bu 2 -\fBREADME\fP (and its variants) -.IP \(bu 2 -\fBCHANGELOG\fP (and its variants) -.IP \(bu 2 -\fBLICENSE\fP / \fBLICENCE\fP - -.RE -.SH Link Packages -.P -\fBnpm link\fP is designed to install a development package and see the -changes in real time without having to keep re\-installing it\. (You do -need to either re\-link or \fBnpm rebuild \-g\fP to update compiled packages, -of course\.) -.P -More info at npm help \fBnpm\-link\fP\|\. -.SH Before Publishing: Make Sure Your Package Installs and Works -.P -\fBThis is important\.\fR -.P -If you can not install it locally, you'll have -problems trying to publish it\. Or, worse yet, you'll be able to -publish it, but you'll be publishing a broken or pointless package\. -So don't do that\. -.P -In the root of your package, do this: -.P -.RS 2 -.nf -npm install \. \-g -.fi -.RE -.P -That'll show you that it's working\. If you'd rather just create a symlink -package that points to your working directory, then do this: -.P -.RS 2 -.nf -npm link -.fi -.RE -.P -Use \fBnpm ls \-g\fP to see if it's there\. -.P -To test a local install, go into some other folder, and then do: -.P -.RS 2 -.nf -cd \.\./some\-other\-folder -npm install \.\./my\-package -.fi -.RE -.P -to install it locally into the node_modules folder in that other place\. -.P -Then go into the node\-repl, and try using require("my\-thing") to -bring in your module's main module\. -.SH Create a User Account -.P -Create a user with the adduser command\. It works like this: -.P -.RS 2 -.nf -npm adduser -.fi -.RE -.P -and then follow the prompts\. -.P -This is documented better in npm help adduser\. -.SH Publish your package -.P -This part's easy\. In the root of your folder, do this: -.P -.RS 2 -.nf -npm publish -.fi -.RE -.P -You can give publish a url to a tarball, or a filename of a tarball, -or a path to a folder\. -.P -Note that pretty much \fBeverything in that folder will be exposed\fR -by default\. So, if you have secret stuff in there, use a -\fB\|\.npmignore\fP file to list out the globs to ignore, or publish -from a fresh checkout\. -.SH Brag about it -.P -Send emails, write blogs, blab in IRC\. -.P -Tell the world how easy it is to install your program! -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help npm -.IP \(bu 2 -npm help init -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help 7 scripts -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help adduser -.IP \(bu 2 -npm help 7 registry - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-disputes.7 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-disputes.7 deleted file mode 100644 index 4f6c315b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-disputes.7 +++ /dev/null @@ -1,124 +0,0 @@ -.TH "NPM\-DISPUTES" "7" "June 2016" "" "" -.SH "NAME" -\fBnpm-disputes\fR \- Handling Module Name Disputes -.SH SYNOPSIS -.RS 0 -.IP 1. 3 -Get the author email with \fBnpm owner ls \fP -.IP 2. 3 -Email the author, CC support@npmjs\.com -.IP 3. 3 -After a few weeks, if there's no resolution, we'll sort it out\. - -.RE -.P -Don't squat on package names\. Publish code or move out of the way\. -.SH DESCRIPTION -.P -There sometimes arise cases where a user publishes a module, and then -later, some other user wants to use that name\. Here are some common -ways that happens (each of these is based on actual events\.) -.RS 0 -.IP 1. 3 -Joe writes a JavaScript module \fBfoo\fP, which is not node\-specific\. -Joe doesn't use node at all\. Bob wants to use \fBfoo\fP in node, so he -wraps it in an npm module\. Some time later, Joe starts using node, -and wants to take over management of his program\. -.IP 2. 3 -Bob writes an npm module \fBfoo\fP, and publishes it\. Perhaps much -later, Joe finds a bug in \fBfoo\fP, and fixes it\. He sends a pull -request to Bob, but Bob doesn't have the time to deal with it, -because he has a new job and a new baby and is focused on his new -erlang project, and kind of not involved with node any more\. Joe -would like to publish a new \fBfoo\fP, but can't, because the name is -taken\. -.IP 3. 3 -Bob writes a 10\-line flow\-control library, and calls it \fBfoo\fP, and -publishes it to the npm registry\. Being a simple little thing, it -never really has to be updated\. Joe works for Foo Inc, the makers -of the critically acclaimed and widely\-marketed \fBfoo\fP JavaScript -toolkit framework\. They publish it to npm as \fBfoojs\fP, but people are -routinely confused when \fBnpm install foo\fP is some different thing\. -.IP 4. 3 -Bob writes a parser for the widely\-known \fBfoo\fP file format, because -he needs it for work\. Then, he gets a new job, and never updates the -prototype\. Later on, Joe writes a much more complete \fBfoo\fP parser, -but can't publish, because Bob's \fBfoo\fP is in the way\. - -.RE -.P -The validity of Joe's claim in each situation can be debated\. However, -Joe's appropriate course of action in each case is the same\. -.RS 0 -.IP 1. 3 -\fBnpm owner ls foo\fP\|\. This will tell Joe the email address of the -owner (Bob)\. -.IP 2. 3 -Joe emails Bob, explaining the situation \fBas respectfully as -possible\fR, and what he would like to do with the module name\. He -adds the npm support staff support@npmjs\.com to the CC list of -the email\. Mention in the email that Bob can run \fBnpm owner add -joe foo\fP to add Joe as an owner of the \fBfoo\fP package\. -.IP 3. 3 -After a reasonable amount of time, if Bob has not responded, or if -Bob and Joe can't come to any sort of resolution, email support -support@npmjs\.com and we'll sort it out\. ("Reasonable" is -usually at least 4 weeks, but extra time is allowed around common -holidays\.) - -.RE -.SH REASONING -.P -In almost every case so far, the parties involved have been able to reach -an amicable resolution without any major intervention\. Most people -really do want to be reasonable, and are probably not even aware that -they're in your way\. -.P -Module ecosystems are most vibrant and powerful when they are as -self\-directed as possible\. If an admin one day deletes something you -had worked on, then that is going to make most people quite upset, -regardless of the justification\. When humans solve their problems by -talking to other humans with respect, everyone has the chance to end up -feeling good about the interaction\. -.SH EXCEPTIONS -.P -Some things are not allowed, and will be removed without discussion if -they are brought to the attention of the npm registry admins, including -but not limited to: -.RS 0 -.IP 1. 3 -Malware (that is, a package designed to exploit or harm the machine on -which it is installed)\. -.IP 2. 3 -Violations of copyright or licenses (for example, cloning an -MIT\-licensed program, and then removing or changing the copyright and -license statement)\. -.IP 3. 3 -Illegal content\. -.IP 4. 3 -"Squatting" on a package name that you \fIplan\fR to use, but aren't -actually using\. Sorry, I don't care how great the name is, or how -perfect a fit it is for the thing that someday might happen\. If -someone wants to use it today, and you're just taking up space with -an empty tarball, you're going to be evicted\. -.IP 5. 3 -Putting empty packages in the registry\. Packages must have SOME -functionality\. It can be silly, but it can't be \fInothing\fR\|\. (See -also: squatting\.) -.IP 6. 3 -Doing weird things with the registry, like using it as your own -personal application database or otherwise putting non\-packagey -things into it\. - -.RE -.P -If you see bad behavior like this, please report it right away\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help 7 registry -.IP \(bu 2 -npm help owner - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-index.7 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-index.7 deleted file mode 100644 index 778666b9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-index.7 +++ /dev/null @@ -1,214 +0,0 @@ -.TH "NPM\-INDEX" "7" "June 2016" "" "" -.SH "NAME" -\fBnpm-index\fR \- Index of all npm documentation -.SS npm help README -.P -a JavaScript package manager -.SH Command Line Documentation -.P -Using npm on the command line -.SS npm help npm -.P -javascript package manager -.SS npm help access -.P -Set access level on published packages -.SS npm help adduser -.P -Add a registry user account -.SS npm help bin -.P -Display npm bin folder -.SS npm help bugs -.P -Bugs for a package in a web browser maybe -.SS npm help build -.P -Build a package -.SS npm help bundle -.P -REMOVED -.SS npm help cache -.P -Manipulates packages cache -.SS npm help completion -.P -Tab Completion for npm -.SS npm help config -.P -Manage the npm configuration files -.SS npm help dedupe -.P -Reduce duplication -.SS npm help deprecate -.P -Deprecate a version of a package -.SS npm help dist\-tag -.P -Modify package distribution tags -.SS npm help docs -.P -Docs for a package in a web browser maybe -.SS npm help edit -.P -Edit an installed package -.SS npm help explore -.P -Browse an installed package -.SS npm help help\-search -.P -Search npm help documentation -.SS npm help help -.P -Get help on npm -.SS npm help init -.P -Interactively create a package\.json file -.SS npm help install\-test -.P -Install package(s) and run tests -.SS npm help install -.P -Install a package -.SS npm help link -.P -Symlink a package folder -.SS npm help logout -.P -Log out of the registry -.SS npm help ls -.P -List installed packages -.SS npm help outdated -.P -Check for outdated packages -.SS npm help owner -.P -Manage package owners -.SS npm help pack -.P -Create a tarball from a package -.SS npm help ping -.P -Ping npm registry -.SS npm help prefix -.P -Display prefix -.SS npm help prune -.P -Remove extraneous packages -.SS npm help publish -.P -Publish a package -.SS npm help rebuild -.P -Rebuild a package -.SS npm help repo -.P -Open package repository page in the browser -.SS npm help restart -.P -Restart a package -.SS npm help root -.P -Display npm root -.SS npm help run\-script -.P -Run arbitrary package scripts -.SS npm help search -.P -Search for packages -.SS npm help shrinkwrap -.P -Lock down dependency versions -.SS npm help star -.P -Mark your favorite packages -.SS npm help stars -.P -View packages marked as favorites -.SS npm help start -.P -Start a package -.SS npm help stop -.P -Stop a package -.SS npm help tag -.P -Tag a published version -.SS npm help team -.P -Manage organization teams and team memberships -.SS npm help test -.P -Test a package -.SS npm help uninstall -.P -Remove a package -.SS npm help unpublish -.P -Remove a package from the registry -.SS npm help update -.P -Update a package -.SS npm help version -.P -Bump a package version -.SS npm help view -.P -View registry info -.SS npm help whoami -.P -Display npm username -.SH API Documentation -.P -Using npm in your Node programs -.SH Files -.P -File system structures npm uses -.SS npm help 5 folders -.P -Folder Structures Used by npm -.SS npm help 5 npmrc -.P -The npm config files -.SS npm help 5 package\.json -.P -Specifics of npm's package\.json handling -.SH Misc -.P -Various other bits and bobs -.SS npm help 7 coding\-style -.P -npm's "funny" coding style -.SS npm help 7 config -.P -More than you probably want to know about npm configuration -.SS npm help 7 developers -.P -Developer Guide -.SS npm help 7 disputes -.P -Handling Module Name Disputes -.SS npm help 7 index -.P -Index of all npm documentation -.SS npm help 7 orgs -.P -Working with Teams & Orgs -.SS npm help 7 registry -.P -The JavaScript Package Registry -.SS npm help 7 scope -.P -Scoped packages -.SS npm help 7 scripts -.P -How npm handles the "scripts" field -.SS npm help 7 removing\-npm -.P -Cleaning the Slate -.SS npm help 7 semver -.P -The semantic versioner for npm - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-orgs.7 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-orgs.7 deleted file mode 100644 index 470c67d7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-orgs.7 +++ /dev/null @@ -1,147 +0,0 @@ -.TH "NPM\-ORGS" "7" "June 2016" "" "" -.SH "NAME" -\fBnpm-orgs\fR \- Working with Teams & Orgs -.SH DESCRIPTION -.P -There are three levels of org users: -.RS 0 -.IP 1. 3 -Super admin, controls billing & adding people to the org\. -.IP 2. 3 -Team admin, manages team membership & package access\. -.IP 3. 3 -Developer, works on packages they are given access to\. - -.RE -.P -The super admin is the only person who can add users to the org because it impacts the monthly bill\. The super admin will use the website to manage membership\. Every org has a \fBdevelopers\fP team that all users are automatically added to\. -.P -The team admin is the person who manages team creation, team membership, and package access for teams\. The team admin grants package access to teams, not individuals\. -.P -The developer will be able to access packages based on the teams they are on\. Access is either read\-write or read\-only\. -.P -There are two main commands: -.RS 0 -.IP 1. 3 -\fBnpm team\fP see npm help team for more details -.IP 2. 3 -\fBnpm access\fP see npm help access for more details - -.RE -.SH Team Admins create teams -.RS 0 -.IP \(bu 2 -Check who you’ve added to your org: - -.RE -.P -.RS 2 -.nf -npm team ls :developers -.fi -.RE -.RS 0 -.IP \(bu 2 -Each org is automatically given a \fBdevelopers\fP team, so you can see the whole list of team members in your org\. This team automatically gets read\-write access to all packages, but you can change that with the \fBaccess\fP command\. -.IP \(bu 2 -Create a new team: - -.RE -.P -.RS 2 -.nf -npm team create -.fi -.RE -.RS 0 -.IP \(bu 2 -Add members to that team: - -.RE -.P -.RS 2 -.nf -npm team add -.fi -.RE -.SH Publish a package and adjust package access -.RS 0 -.IP \(bu 2 -In package directory, run - -.RE -.P -.RS 2 -.nf -npm init \-\-scope= -.fi -.RE -.P -to scope it for your org & publish as usual -.RS 0 -.IP \(bu 2 -Grant access: - -.RE -.P -.RS 2 -.nf -npm access grant [] -.fi -.RE -.RS 0 -.IP \(bu 2 -Revoke access: - -.RE -.P -.RS 2 -.nf -npm access revoke [] -.fi -.RE -.SH Monitor your package access -.RS 0 -.IP \(bu 2 -See what org packages a team member can access: - -.RE -.P -.RS 2 -.nf -npm access ls\-packages -.fi -.RE -.RS 0 -.IP \(bu 2 -See packages available to a specific team: - -.RE -.P -.RS 2 -.nf -npm access ls\-packages -.fi -.RE -.RS 0 -.IP \(bu 2 -Check which teams are collaborating on a package: - -.RE -.P -.RS 2 -.nf -npm access ls\-collaborators -.fi -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help team -.IP \(bu 2 -npm help access -.IP \(bu 2 -npm help 7 scope - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-registry.7 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-registry.7 deleted file mode 100644 index b3398f27..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-registry.7 +++ /dev/null @@ -1,71 +0,0 @@ -.TH "NPM\-REGISTRY" "7" "June 2016" "" "" -.SH "NAME" -\fBnpm-registry\fR \- The JavaScript Package Registry -.SH DESCRIPTION -.P -To resolve packages by name and version, npm talks to a registry website -that implements the CommonJS Package Registry specification for reading -package info\. -.P -Additionally, npm's package registry implementation supports several -write APIs as well, to allow for publishing packages and managing user -account information\. -.P -The official public npm registry is at https://registry\.npmjs\.org/\|\. It -is powered by a CouchDB database, of which there is a public mirror at -https://skimdb\.npmjs\.com/registry\|\. The code for the couchapp is -available at https://github\.com/npm/npm\-registry\-couchapp\|\. -.P -The registry URL used is determined by the scope of the package (see -npm help 7 \fBnpm\-scope\fP)\. If no scope is specified, the default registry is used, which is -supplied by the \fBregistry\fP config parameter\. See npm help \fBnpm\-config\fP, -npm help 5 \fBnpmrc\fP, and npm help 7 \fBnpm\-config\fP for more on managing npm's configuration\. -.SH Can I run my own private registry? -.P -Yes! -.P -The easiest way is to replicate the couch database, and use the same (or -similar) design doc to implement the APIs\. -.P -If you set up continuous replication from the official CouchDB, and then -set your internal CouchDB as the registry config, then you'll be able -to read any published packages, in addition to your private ones, and by -default will only publish internally\. -.P -If you then want to publish a package for the whole world to see, you can -simply override the \fB\-\-registry\fP option for that \fBpublish\fP command\. -.SH I don't want my package published in the official registry\. It's private\. -.P -Set \fB"private": true\fP in your package\.json to prevent it from being -published at all, or -\fB"publishConfig":{"registry":"http://my\-internal\-registry\.local"}\fP -to force it to be published only to your internal registry\. -.P -See npm help 5 \fBpackage\.json\fP for more info on what goes in the package\.json file\. -.SH Will you replicate from my registry into the public one? -.P -No\. If you want things to be public, then publish them into the public -registry using npm\. What little security there is would be for nought -otherwise\. -.SH Do I have to use couchdb to build a registry that npm can talk to? -.P -No, but it's way easier\. Basically, yes, you do, or you have to -effectively implement the entire CouchDB API anyway\. -.SH Is there a website or something to see package docs and such? -.P -Yes, head over to https://npmjs\.com/ -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc -.IP \(bu 2 -npm help 7 developers -.IP \(bu 2 -npm help 7 disputes - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-scope.7 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-scope.7 deleted file mode 100644 index 0adc8bd2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-scope.7 +++ /dev/null @@ -1,127 +0,0 @@ -.TH "NPM\-SCOPE" "7" "June 2016" "" "" -.SH "NAME" -\fBnpm-scope\fR \- Scoped packages -.SH DESCRIPTION -.P -All npm packages have a name\. Some package names also have a scope\. A scope -follows the usual rules for package names (url\-safe characters, no leading dots -or underscores)\. When used in package names, preceded by an @\-symbol and -followed by a slash, e\.g\. -.P -.RS 2 -.nf -@somescope/somepackagename -.fi -.RE -.P -Scopes are a way of grouping related packages together, and also affect a few -things about the way npm treats the package\. -.P -Scoped packages are supported by the public npm registry\. The npm -client is backwards\-compatible with un\-scoped registries, so it can be -used to work with scoped and un\-scoped registries at the same time\. -.SH Installing scoped packages -.P -Scoped packages are installed to a sub\-folder of the regular installation -folder, e\.g\. if your other packages are installed in \fBnode_modules/packagename\fP, -scoped modules will be in \fBnode_modules/@myorg/packagename\fP\|\. The scope folder -(\fB@myorg\fP) is simply the name of the scope preceded by an @\-symbol, and can -contain any number of scoped packages\. -.P -A scoped package is installed by referencing it by name, preceded by an -@\-symbol, in \fBnpm install\fP: -.P -.RS 2 -.nf -npm install @myorg/mypackage -.fi -.RE -.P -Or in \fBpackage\.json\fP: -.P -.RS 2 -.nf -"dependencies": { - "@myorg/mypackage": "^1\.3\.0" -} -.fi -.RE -.P -Note that if the @\-symbol is omitted in either case npm will instead attempt to -install from GitHub; see npm help \fBnpm\-install\fP\|\. -.SH Requiring scoped packages -.P -Because scoped packages are installed into a scope folder, you have to -include the name of the scope when requiring them in your code, e\.g\. -.P -.RS 2 -.nf -require('@myorg/mypackage') -.fi -.RE -.P -There is nothing special about the way Node treats scope folders, this is -just specifying to require the module \fBmypackage\fP in the folder called \fB@myorg\fP\|\. -.SH Publishing scoped packages -.P -Scoped packages can be published to any registry that supports them, including -the public npm registry\. -.P -(As of 2015\-04\-19, and with npm 2\.0 or better, the public npm registry \fBdoes\fR support scoped packages) -.P -If you wish, you may associate a scope with a registry; see below\. -.SS Publishing public scoped packages to the public npm registry -.P -To publish a public scoped package, you must specify \fB\-\-access public\fP with -the initial publication\. This will publish the package and set access -to \fBpublic\fP as if you had run \fBnpm access public\fP after publishing\. -.SS Publishing private scoped packages to the npm registry -.P -To publish a private scoped package to the npm registry, you must have -an npm Private Modules \fIhttps://www\.npmjs\.com/private\-modules\fR -account\. -.P -You can then publish the module with \fBnpm publish\fP or \fBnpm publish -\-\-access restricted\fP, and it will be present in the npm registry, with -restricted access\. You can then change the access permissions, if -desired, with \fBnpm access\fP or on the npmjs\.com website\. -.SH Associating a scope with a registry -.P -Scopes can be associated with a separate registry\. This allows you to -seamlessly use a mix of packages from the public npm registry and one or more -private registries, such as npm Enterprise\. -.P -You can associate a scope with a registry at login, e\.g\. -.P -.RS 2 -.nf -npm login \-\-registry=http://reg\.example\.com \-\-scope=@myco -.fi -.RE -.P -Scopes have a many\-to\-one relationship with registries: one registry can -host multiple scopes, but a scope only ever points to one registry\. -.P -You can also associate a scope with a registry using \fBnpm config\fP: -.P -.RS 2 -.nf -npm config set @myco:registry http://reg\.example\.com -.fi -.RE -.P -Once a scope is associated with a registry, any \fBnpm install\fP for a package -with that scope will request packages from that registry instead\. Any -\fBnpm publish\fP for a package name that contains the scope will be published to -that registry instead\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help publish -.IP \(bu 2 -npm help access - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-scripts.7 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-scripts.7 deleted file mode 100644 index 4e382cd9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/npm-scripts.7 +++ /dev/null @@ -1,283 +0,0 @@ -.TH "NPM\-SCRIPTS" "7" "June 2016" "" "" -.SH "NAME" -\fBnpm-scripts\fR \- How npm handles the "scripts" field -.SH DESCRIPTION -.P -npm supports the "scripts" property of the package\.json script, for the -following scripts: -.RS 0 -.IP \(bu 2 -prepublish: -Run BEFORE the package is published\. (Also run on local \fBnpm -install\fP without any arguments\.) -.IP \(bu 2 -publish, postpublish: -Run AFTER the package is published\. -.IP \(bu 2 -preinstall: -Run BEFORE the package is installed -.IP \(bu 2 -install, postinstall: -Run AFTER the package is installed\. -.IP \(bu 2 -preuninstall, uninstall: -Run BEFORE the package is uninstalled\. -.IP \(bu 2 -postuninstall: -Run AFTER the package is uninstalled\. -.IP \(bu 2 -preversion, version: -Run BEFORE bump the package version\. -.IP \(bu 2 -postversion: -Run AFTER bump the package version\. -.IP \(bu 2 -pretest, test, posttest: -Run by the \fBnpm test\fP command\. -.IP \(bu 2 -prestop, stop, poststop: -Run by the \fBnpm stop\fP command\. -.IP \(bu 2 -prestart, start, poststart: -Run by the \fBnpm start\fP command\. -.IP \(bu 2 -prerestart, restart, postrestart: -Run by the \fBnpm restart\fP command\. Note: \fBnpm restart\fP will run the -stop and start scripts if no \fBrestart\fP script is provided\. - -.RE -.P -Additionally, arbitrary scripts can be executed by running \fBnpm -run\-script \fP\|\. \fIPre\fR and \fIpost\fR commands with matching -names will be run for those as well (e\.g\. \fBpremyscript\fP, \fBmyscript\fP, -\fBpostmyscript\fP)\. -.SH COMMON USES -.P -If you need to perform operations on your package before it is used, in a way -that is not dependent on the operating system or architecture of the -target system, use a \fBprepublish\fP script\. This includes -tasks such as: -.RS 0 -.IP \(bu 2 -Compiling CoffeeScript source code into JavaScript\. -.IP \(bu 2 -Creating minified versions of JavaScript source code\. -.IP \(bu 2 -Fetching remote resources that your package will use\. - -.RE -.P -The advantage of doing these things at \fBprepublish\fP time is that they can be done once, in a -single place, thus reducing complexity and variability\. -Additionally, this means that: -.RS 0 -.IP \(bu 2 -You can depend on \fBcoffee\-script\fP as a \fBdevDependency\fP, and thus -your users don't need to have it installed\. -.IP \(bu 2 -You don't need to include minifiers in your package, reducing -the size for your users\. -.IP \(bu 2 -You don't need to rely on your users having \fBcurl\fP or \fBwget\fP or -other system tools on the target machines\. - -.RE -.SH DEFAULT VALUES -.P -npm will default some script values based on package contents\. -.RS 0 -.IP \(bu 2 -\fB"start": "node server\.js"\fP: -If there is a \fBserver\.js\fP file in the root of your package, then npm -will default the \fBstart\fP command to \fBnode server\.js\fP\|\. -.IP \(bu 2 -\fB"install": "node\-gyp rebuild"\fP: -If there is a \fBbinding\.gyp\fP file in the root of your package and you -haven't defined your own \fBinstall\fP or \fBpreinstall\fP scripts, npm will -default the \fBinstall\fP command to compile using node\-gyp\. - -.RE -.SH USER -.P -If npm was invoked with root privileges, then it will change the uid -to the user account or uid specified by the \fBuser\fP config, which -defaults to \fBnobody\fP\|\. Set the \fBunsafe\-perm\fP flag to run scripts with -root privileges\. -.SH ENVIRONMENT -.P -Package scripts run in an environment where many pieces of information -are made available regarding the setup of npm and the current state of -the process\. -.SS path -.P -If you depend on modules that define executable scripts, like test -suites, then those executables will be added to the \fBPATH\fP for -executing the scripts\. So, if your package\.json has this: -.P -.RS 2 -.nf -{ "name" : "foo" -, "dependencies" : { "bar" : "0\.1\.x" } -, "scripts": { "start" : "bar \./test" } } -.fi -.RE -.P -then you could run \fBnpm start\fP to execute the \fBbar\fP script, which is -exported into the \fBnode_modules/\.bin\fP directory on \fBnpm install\fP\|\. -.SS package\.json vars -.P -The package\.json fields are tacked onto the \fBnpm_package_\fP prefix\. So, -for instance, if you had \fB{"name":"foo", "version":"1\.2\.5"}\fP in your -package\.json file, then your package scripts would have the -\fBnpm_package_name\fP environment variable set to "foo", and the -\fBnpm_package_version\fP set to "1\.2\.5" -.SS configuration -.P -Configuration parameters are put in the environment with the -\fBnpm_config_\fP prefix\. For instance, you can view the effective \fBroot\fP -config by checking the \fBnpm_config_root\fP environment variable\. -.SS Special: package\.json "config" object -.P -The package\.json "config" keys are overwritten in the environment if -there is a config param of \fB[@]:\fP\|\. For example, -if the package\.json has this: -.P -.RS 2 -.nf -{ "name" : "foo" -, "config" : { "port" : "8080" } -, "scripts" : { "start" : "node server\.js" } } -.fi -.RE -.P -and the server\.js is this: -.P -.RS 2 -.nf -http\.createServer(\.\.\.)\.listen(process\.env\.npm_package_config_port) -.fi -.RE -.P -then the user could change the behavior by doing: -.P -.RS 2 -.nf -npm config set foo:port 80 -.fi -.RE -.SS current lifecycle event -.P -Lastly, the \fBnpm_lifecycle_event\fP environment variable is set to -whichever stage of the cycle is being executed\. So, you could have a -single script used for different parts of the process which switches -based on what's currently happening\. -.P -Objects are flattened following this format, so if you had -\fB{"scripts":{"install":"foo\.js"}}\fP in your package\.json, then you'd -see this in the script: -.P -.RS 2 -.nf -process\.env\.npm_package_scripts_install === "foo\.js" -.fi -.RE -.SH EXAMPLES -.P -For example, if your package\.json contains this: -.P -.RS 2 -.nf -{ "scripts" : - { "install" : "scripts/install\.js" - , "postinstall" : "scripts/install\.js" - , "uninstall" : "scripts/uninstall\.js" - } -} -.fi -.RE -.P -then \fBscripts/install\.js\fP will be called for the install -and post\-install stages of the lifecycle, and \fBscripts/uninstall\.js\fP -will be called when the package is uninstalled\. Since -\fBscripts/install\.js\fP is running for two different phases, it would -be wise in this case to look at the \fBnpm_lifecycle_event\fP environment -variable\. -.P -If you want to run a make command, you can do so\. This works just -fine: -.P -.RS 2 -.nf -{ "scripts" : - { "preinstall" : "\./configure" - , "install" : "make && make install" - , "test" : "make test" - } -} -.fi -.RE -.SH EXITING -.P -Scripts are run by passing the line as a script argument to \fBsh\fP\|\. -.P -If the script exits with a code other than 0, then this will abort the -process\. -.P -Note that these script files don't have to be nodejs or even -javascript programs\. They just have to be some kind of executable -file\. -.SH HOOK SCRIPTS -.P -If you want to run a specific script at a specific lifecycle event for -ALL packages, then you can use a hook script\. -.P -Place an executable file at \fBnode_modules/\.hooks/{eventname}\fP, and -it'll get run for all packages when they are going through that point -in the package lifecycle for any packages installed in that root\. -.P -Hook scripts are run exactly the same way as package\.json scripts\. -That is, they are in a separate child process, with the env described -above\. -.SH BEST PRACTICES -.RS 0 -.IP \(bu 2 -Don't exit with a non\-zero error code unless you \fIreally\fR mean it\. -Except for uninstall scripts, this will cause the npm action to -fail, and potentially be rolled back\. If the failure is minor or -only will prevent some optional features, then it's better to just -print a warning and exit successfully\. -.IP \(bu 2 -Try not to use scripts to do what npm can do for you\. Read through -npm help 5 \fBpackage\.json\fP to see all the things that you can specify and enable -by simply describing your package appropriately\. In general, this -will lead to a more robust and consistent state\. -.IP \(bu 2 -Inspect the env to determine where to put things\. For instance, if -the \fBnpm_config_binroot\fP environment variable is set to \fB/home/user/bin\fP, then -don't try to install executables into \fB/usr/local/bin\fP\|\. The user -probably set it up that way for a reason\. -.IP \(bu 2 -Don't prefix your script commands with "sudo"\. If root permissions -are required for some reason, then it'll fail with that error, and -the user will sudo the npm command in question\. -.IP \(bu 2 -Don't use \fBinstall\fP\|\. Use a \fB\|\.gyp\fP file for compilation, and \fBprepublish\fP -for anything else\. You should almost never have to explicitly set a -preinstall or install script\. If you are doing this, please consider if -there is another option\. The only valid use of \fBinstall\fP or \fBpreinstall\fP -scripts is for compilation which must be done on the target architecture\. - -.RE -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help run\-script -.IP \(bu 2 -npm help 5 package\.json -.IP \(bu 2 -npm help 7 developers -.IP \(bu 2 -npm help install - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/removing-npm.7 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/removing-npm.7 deleted file mode 100644 index 0df248fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/removing-npm.7 +++ /dev/null @@ -1,78 +0,0 @@ -.TH "NPM\-REMOVAL" "1" "June 2016" "" "" -.SH "NAME" -\fBnpm-removal\fR \- Cleaning the Slate -.SH SYNOPSIS -.P -So sad to see you go\. -.P -.RS 2 -.nf -sudo npm uninstall npm \-g -.fi -.RE -.P -Or, if that fails, get the npm source code, and do: -.P -.RS 2 -.nf -sudo make uninstall -.fi -.RE -.SH More Severe Uninstalling -.P -Usually, the above instructions are sufficient\. That will remove -npm, but leave behind anything you've installed\. -.P -If that doesn't work, or if you require more drastic measures, -continue reading\. -.P -Note that this is only necessary for globally\-installed packages\. Local -installs are completely contained within a project's \fBnode_modules\fP -folder\. Delete that folder, and everything is gone (unless a package's -install script is particularly ill\-behaved)\. -.P -This assumes that you installed node and npm in the default place\. If -you configured node with a different \fB\-\-prefix\fP, or installed npm with a -different prefix setting, then adjust the paths accordingly, replacing -\fB/usr/local\fP with your install prefix\. -.P -To remove everything npm\-related manually: -.P -.RS 2 -.nf -rm \-rf /usr/local/{lib/node{,/\.npm,_modules},bin,share/man}/npm* -.fi -.RE -.P -If you installed things \fIwith\fR npm, then your best bet is to uninstall -them with npm first, and then install them again once you have a -proper install\. This can help find any symlinks that are lying -around: -.P -.RS 2 -.nf -ls \-laF /usr/local/{lib/node{,/\.npm},bin,share/man} | grep npm -.fi -.RE -.P -Prior to version 0\.3, npm used shim files for executables and node -modules\. To track those down, you can do the following: -.P -.RS 2 -.nf -find /usr/local/{lib/node,bin} \-exec grep \-l npm \\{\\} \\; ; -.fi -.RE -.P -(This is also in the README file\.) -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -README -.IP \(bu 2 -npm help uninstall -.IP \(bu 2 -npm help prune - -.RE - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/semver.7 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/semver.7 deleted file mode 100644 index 8705628a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/man/man7/semver.7 +++ /dev/null @@ -1,414 +0,0 @@ -.TH "SEMVER" "7" "June 2016" "" "" -.SH "NAME" -\fBsemver\fR \- The semantic versioner for npm -.SH Usage -.P -.RS 2 -.nf -$ npm install semver - -semver\.valid('1\.2\.3') // '1\.2\.3' -semver\.valid('a\.b\.c') // null -semver\.clean(' =v1\.2\.3 ') // '1\.2\.3' -semver\.satisfies('1\.2\.3', '1\.x || >=2\.5\.0 || 5\.0\.0 \- 7\.2\.3') // true -semver\.gt('1\.2\.3', '9\.8\.7') // false -semver\.lt('1\.2\.3', '9\.8\.7') // true -.fi -.RE -.P -As a command\-line utility: -.P -.RS 2 -.nf -$ semver \-h - -Usage: semver [ [\.\.\.]] [\-r | \-i | \-\-preid | \-l | \-rv] -Test if version(s) satisfy the supplied range(s), and sort them\. - -Multiple versions or ranges may be supplied, unless increment -option is specified\. In that case, only a single version may -be used, and it is incremented by the specified level - -Program exits successfully if any valid version satisfies -all supplied ranges, and prints all satisfying versions\. - -If no versions are valid, or ranges are not satisfied, -then exits failure\. - -Versions are printed in ascending order, so supplying -multiple versions to the utility will just sort them\. -.fi -.RE -.SH Versions -.P -A "version" is described by the \fBv2\.0\.0\fP specification found at -http://semver\.org/\|\. -.P -A leading \fB"="\fP or \fB"v"\fP character is stripped off and ignored\. -.SH Ranges -.P -A \fBversion range\fP is a set of \fBcomparators\fP which specify versions -that satisfy the range\. -.P -A \fBcomparator\fP is composed of an \fBoperator\fP and a \fBversion\fP\|\. The set -of primitive \fBoperators\fP is: -.RS 0 -.IP \(bu 2 -\fB<\fP Less than -.IP \(bu 2 -\fB<=\fP Less than or equal to -.IP \(bu 2 -\fB>\fP Greater than -.IP \(bu 2 -\fB>=\fP Greater than or equal to -.IP \(bu 2 -\fB=\fP Equal\. If no operator is specified, then equality is assumed, -so this operator is optional, but MAY be included\. - -.RE -.P -For example, the comparator \fB>=1\.2\.7\fP would match the versions -\fB1\.2\.7\fP, \fB1\.2\.8\fP, \fB2\.5\.3\fP, and \fB1\.3\.9\fP, but not the versions \fB1\.2\.6\fP -or \fB1\.1\.0\fP\|\. -.P -Comparators can be joined by whitespace to form a \fBcomparator set\fP, -which is satisfied by the \fBintersection\fR of all of the comparators -it includes\. -.P -A range is composed of one or more comparator sets, joined by \fB||\fP\|\. A -version matches a range if and only if every comparator in at least -one of the \fB||\fP\-separated comparator sets is satisfied by the version\. -.P -For example, the range \fB>=1\.2\.7 <1\.3\.0\fP would match the versions -\fB1\.2\.7\fP, \fB1\.2\.8\fP, and \fB1\.2\.99\fP, but not the versions \fB1\.2\.6\fP, \fB1\.3\.0\fP, -or \fB1\.1\.0\fP\|\. -.P -The range \fB1\.2\.7 || >=1\.2\.9 <2\.0\.0\fP would match the versions \fB1\.2\.7\fP, -\fB1\.2\.9\fP, and \fB1\.4\.6\fP, but not the versions \fB1\.2\.8\fP or \fB2\.0\.0\fP\|\. -.SS Prerelease Tags -.P -If a version has a prerelease tag (for example, \fB1\.2\.3\-alpha\.3\fP) then -it will only be allowed to satisfy comparator sets if at least one -comparator with the same \fB[major, minor, patch]\fP tuple also has a -prerelease tag\. -.P -For example, the range \fB>1\.2\.3\-alpha\.3\fP would be allowed to match the -version \fB1\.2\.3\-alpha\.7\fP, but it would \fInot\fR be satisfied by -\fB3\.4\.5\-alpha\.9\fP, even though \fB3\.4\.5\-alpha\.9\fP is technically "greater -than" \fB1\.2\.3\-alpha\.3\fP according to the SemVer sort rules\. The version -range only accepts prerelease tags on the \fB1\.2\.3\fP version\. The -version \fB3\.4\.5\fP \fIwould\fR satisfy the range, because it does not have a -prerelease flag, and \fB3\.4\.5\fP is greater than \fB1\.2\.3\-alpha\.7\fP\|\. -.P -The purpose for this behavior is twofold\. First, prerelease versions -frequently are updated very quickly, and contain many breaking changes -that are (by the author's design) not yet fit for public consumption\. -Therefore, by default, they are excluded from range matching -semantics\. -.P -Second, a user who has opted into using a prerelease version has -clearly indicated the intent to use \fIthat specific\fR set of -alpha/beta/rc versions\. By including a prerelease tag in the range, -the user is indicating that they are aware of the risk\. However, it -is still not appropriate to assume that they have opted into taking a -similar risk on the \fInext\fR set of prerelease versions\. -.SS Prerelease Identifiers -.P -The method \fB\|\.inc\fP takes an additional \fBidentifier\fP string argument that -will append the value of the string as a prerelease identifier: -.P -.RS 2 -.nf -> semver\.inc('1\.2\.3', 'prerelease', 'beta') -\|'1\.2\.4\-beta\.0' -.fi -.RE -.P -command\-line example: -.P -.RS 2 -.nf -$ semver 1\.2\.3 \-i prerelease \-\-preid beta -1\.2\.4\-beta\.0 -.fi -.RE -.P -Which then can be used to increment further: -.P -.RS 2 -.nf -$ semver 1\.2\.4\-beta\.0 \-i prerelease -1\.2\.4\-beta\.1 -.fi -.RE -.SS Advanced Range Syntax -.P -Advanced range syntax desugars to primitive comparators in -deterministic ways\. -.P -Advanced ranges may be combined in the same way as primitive -comparators using white space or \fB||\fP\|\. -.SS Hyphen Ranges \fBX\.Y\.Z \- A\.B\.C\fP -.P -Specifies an inclusive set\. -.RS 0 -.IP \(bu 2 -\fB1\.2\.3 \- 2\.3\.4\fP := \fB>=1\.2\.3 <=2\.3\.4\fP - -.RE -.P -If a partial version is provided as the first version in the inclusive -range, then the missing pieces are replaced with zeroes\. -.RS 0 -.IP \(bu 2 -\fB1\.2 \- 2\.3\.4\fP := \fB>=1\.2\.0 <=2\.3\.4\fP - -.RE -.P -If a partial version is provided as the second version in the -inclusive range, then all versions that start with the supplied parts -of the tuple are accepted, but nothing that would be greater than the -provided tuple parts\. -.RS 0 -.IP \(bu 2 -\fB1\.2\.3 \- 2\.3\fP := \fB>=1\.2\.3 <2\.4\.0\fP -.IP \(bu 2 -\fB1\.2\.3 \- 2\fP := \fB>=1\.2\.3 <3\.0\.0\fP - -.RE -.SS X\-Ranges \fB1\.2\.x\fP \fB1\.X\fP \fB1\.2\.*\fP \fB*\fP -.P -Any of \fBX\fP, \fBx\fP, or \fB*\fP may be used to "stand in" for one of the -numeric values in the \fB[major, minor, patch]\fP tuple\. -.RS 0 -.IP \(bu 2 -\fB*\fP := \fB>=0\.0\.0\fP (Any version satisfies) -.IP \(bu 2 -\fB1\.x\fP := \fB>=1\.0\.0 <2\.0\.0\fP (Matching major version) -.IP \(bu 2 -\fB1\.2\.x\fP := \fB>=1\.2\.0 <1\.3\.0\fP (Matching major and minor versions) - -.RE -.P -A partial version range is treated as an X\-Range, so the special -character is in fact optional\. -.RS 0 -.IP \(bu 2 -\fB""\fP (empty string) := \fB*\fP := \fB>=0\.0\.0\fP -.IP \(bu 2 -\fB1\fP := \fB1\.x\.x\fP := \fB>=1\.0\.0 <2\.0\.0\fP -.IP \(bu 2 -\fB1\.2\fP := \fB1\.2\.x\fP := \fB>=1\.2\.0 <1\.3\.0\fP - -.RE -.SS Tilde Ranges \fB~1\.2\.3\fP \fB~1\.2\fP \fB~1\fP -.P -Allows patch\-level changes if a minor version is specified on the -comparator\. Allows minor\-level changes if not\. -.RS 0 -.IP \(bu 2 -\fB~1\.2\.3\fP := \fB>=1\.2\.3 <1\.(2+1)\.0\fP := \fB>=1\.2\.3 <1\.3\.0\fP -.IP \(bu 2 -\fB~1\.2\fP := \fB>=1\.2\.0 <1\.(2+1)\.0\fP := \fB>=1\.2\.0 <1\.3\.0\fP (Same as \fB1\.2\.x\fP) -.IP \(bu 2 -\fB~1\fP := \fB>=1\.0\.0 <(1+1)\.0\.0\fP := \fB>=1\.0\.0 <2\.0\.0\fP (Same as \fB1\.x\fP) -.IP \(bu 2 -\fB~0\.2\.3\fP := \fB>=0\.2\.3 <0\.(2+1)\.0\fP := \fB>=0\.2\.3 <0\.3\.0\fP -.IP \(bu 2 -\fB~0\.2\fP := \fB>=0\.2\.0 <0\.(2+1)\.0\fP := \fB>=0\.2\.0 <0\.3\.0\fP (Same as \fB0\.2\.x\fP) -.IP \(bu 2 -\fB~0\fP := \fB>=0\.0\.0 <(0+1)\.0\.0\fP := \fB>=0\.0\.0 <1\.0\.0\fP (Same as \fB0\.x\fP) -.IP \(bu 2 -\fB~1\.2\.3\-beta\.2\fP := \fB>=1\.2\.3\-beta\.2 <1\.3\.0\fP Note that prereleases in -the \fB1\.2\.3\fP version will be allowed, if they are greater than or -equal to \fBbeta\.2\fP\|\. So, \fB1\.2\.3\-beta\.4\fP would be allowed, but -\fB1\.2\.4\-beta\.2\fP would not, because it is a prerelease of a -different \fB[major, minor, patch]\fP tuple\. - -.RE -.SS Caret Ranges \fB^1\.2\.3\fP \fB^0\.2\.5\fP \fB^0\.0\.4\fP -.P -Allows changes that do not modify the left\-most non\-zero digit in the -\fB[major, minor, patch]\fP tuple\. In other words, this allows patch and -minor updates for versions \fB1\.0\.0\fP and above, patch updates for -versions \fB0\.X >=0\.1\.0\fP, and \fIno\fR updates for versions \fB0\.0\.X\fP\|\. -.P -Many authors treat a \fB0\.x\fP version as if the \fBx\fP were the major -"breaking\-change" indicator\. -.P -Caret ranges are ideal when an author may make breaking changes -between \fB0\.2\.4\fP and \fB0\.3\.0\fP releases, which is a common practice\. -However, it presumes that there will \fInot\fR be breaking changes between -\fB0\.2\.4\fP and \fB0\.2\.5\fP\|\. It allows for changes that are presumed to be -additive (but non\-breaking), according to commonly observed practices\. -.RS 0 -.IP \(bu 2 -\fB^1\.2\.3\fP := \fB>=1\.2\.3 <2\.0\.0\fP -.IP \(bu 2 -\fB^0\.2\.3\fP := \fB>=0\.2\.3 <0\.3\.0\fP -.IP \(bu 2 -\fB^0\.0\.3\fP := \fB>=0\.0\.3 <0\.0\.4\fP -.IP \(bu 2 -\fB^1\.2\.3\-beta\.2\fP := \fB>=1\.2\.3\-beta\.2 <2\.0\.0\fP Note that prereleases in -the \fB1\.2\.3\fP version will be allowed, if they are greater than or -equal to \fBbeta\.2\fP\|\. So, \fB1\.2\.3\-beta\.4\fP would be allowed, but -\fB1\.2\.4\-beta\.2\fP would not, because it is a prerelease of a -different \fB[major, minor, patch]\fP tuple\. -.IP \(bu 2 -\fB^0\.0\.3\-beta\fP := \fB>=0\.0\.3\-beta <0\.0\.4\fP Note that prereleases in the -\fB0\.0\.3\fP version \fIonly\fR will be allowed, if they are greater than or -equal to \fBbeta\fP\|\. So, \fB0\.0\.3\-pr\.2\fP would be allowed\. - -.RE -.P -When parsing caret ranges, a missing \fBpatch\fP value desugars to the -number \fB0\fP, but will allow flexibility within that value, even if the -major and minor versions are both \fB0\fP\|\. -.RS 0 -.IP \(bu 2 -\fB^1\.2\.x\fP := \fB>=1\.2\.0 <2\.0\.0\fP -.IP \(bu 2 -\fB^0\.0\.x\fP := \fB>=0\.0\.0 <0\.1\.0\fP -.IP \(bu 2 -\fB^0\.0\fP := \fB>=0\.0\.0 <0\.1\.0\fP - -.RE -.P -A missing \fBminor\fP and \fBpatch\fP values will desugar to zero, but also -allow flexibility within those values, even if the major version is -zero\. -.RS 0 -.IP \(bu 2 -\fB^1\.x\fP := \fB>=1\.0\.0 <2\.0\.0\fP -.IP \(bu 2 -\fB^0\.x\fP := \fB>=0\.0\.0 <1\.0\.0\fP - -.RE -.SS Range Grammar -.P -Putting all this together, here is a Backus\-Naur grammar for ranges, -for the benefit of parser authors: -.P -.RS 2 -.nf -range\-set ::= range ( logical\-or range ) * -logical\-or ::= ( ' ' ) * '||' ( ' ' ) * -range ::= hyphen | simple ( ' ' simple ) * | '' -hyphen ::= partial ' \- ' partial -simple ::= primitive | partial | tilde | caret -primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial -partial ::= xr ( '\.' xr ( '\.' xr qualifier ? )? )? -xr ::= 'x' | 'X' | '*' | nr -nr ::= '0' | ['1'\-'9']['0'\-'9']+ -tilde ::= '~' partial -caret ::= '^' partial -qualifier ::= ( '\-' pre )? ( '+' build )? -pre ::= parts -build ::= parts -parts ::= part ( '\.' part ) * -part ::= nr | [\-0\-9A\-Za\-z]+ -.fi -.RE -.SH Functions -.P -All methods and classes take a final \fBloose\fP boolean argument that, if -true, will be more forgiving about not\-quite\-valid semver strings\. -The resulting output will always be 100% strict, of course\. -.P -Strict\-mode Comparators and Ranges will be strict about the SemVer -strings that they parse\. -.RS 0 -.IP \(bu 2 -\fBvalid(v)\fP: Return the parsed version, or null if it's not valid\. -.IP \(bu 2 -\fBinc(v, release)\fP: Return the version incremented by the release -type (\fBmajor\fP, \fBpremajor\fP, \fBminor\fP, \fBpreminor\fP, \fBpatch\fP, -\fBprepatch\fP, or \fBprerelease\fP), or null if it's not valid -.RS 0 -.IP \(bu 2 -\fBpremajor\fP in one call will bump the version up to the next major -version and down to a prerelease of that major version\. -\fBpreminor\fP, and \fBprepatch\fP work the same way\. -.IP \(bu 2 -If called from a non\-prerelease version, the \fBprerelease\fP will work the -same as \fBprepatch\fP\|\. It increments the patch version, then makes a -prerelease\. If the input version is already a prerelease it simply -increments it\. - -.RE -.IP \(bu 2 -\fBmajor(v)\fP: Return the major version number\. -.IP \(bu 2 -\fBminor(v)\fP: Return the minor version number\. -.IP \(bu 2 -\fBpatch(v)\fP: Return the patch version number\. - -.RE -.SS Comparison -.RS 0 -.IP \(bu 2 -\fBgt(v1, v2)\fP: \fBv1 > v2\fP -.IP \(bu 2 -\fBgte(v1, v2)\fP: \fBv1 >= v2\fP -.IP \(bu 2 -\fBlt(v1, v2)\fP: \fBv1 < v2\fP -.IP \(bu 2 -\fBlte(v1, v2)\fP: \fBv1 <= v2\fP -.IP \(bu 2 -\fBeq(v1, v2)\fP: \fBv1 == v2\fP This is true if they're logically equivalent, -even if they're not the exact same string\. You already know how to -compare strings\. -.IP \(bu 2 -\fBneq(v1, v2)\fP: \fBv1 != v2\fP The opposite of \fBeq\fP\|\. -.IP \(bu 2 -\fBcmp(v1, comparator, v2)\fP: Pass in a comparison string, and it'll call -the corresponding function above\. \fB"==="\fP and \fB"!=="\fP do simple -string comparison, but are included for completeness\. Throws if an -invalid comparison string is provided\. -.IP \(bu 2 -\fBcompare(v1, v2)\fP: Return \fB0\fP if \fBv1 == v2\fP, or \fB1\fP if \fBv1\fP is greater, or \fB\-1\fP if -\fBv2\fP is greater\. Sorts in ascending order if passed to \fBArray\.sort()\fP\|\. -.IP \(bu 2 -\fBrcompare(v1, v2)\fP: The reverse of compare\. Sorts an array of versions -in descending order when passed to \fBArray\.sort()\fP\|\. -.IP \(bu 2 -\fBdiff(v1, v2)\fP: Returns difference between two versions by the release type -(\fBmajor\fP, \fBpremajor\fP, \fBminor\fP, \fBpreminor\fP, \fBpatch\fP, \fBprepatch\fP, or \fBprerelease\fP), -or null if the versions are the same\. - -.RE -.SS Ranges -.RS 0 -.IP \(bu 2 -\fBvalidRange(range)\fP: Return the valid range or null if it's not valid -.IP \(bu 2 -\fBsatisfies(version, range)\fP: Return true if the version satisfies the -range\. -.IP \(bu 2 -\fBmaxSatisfying(versions, range)\fP: Return the highest version in the list -that satisfies the range, or \fBnull\fP if none of them do\. -.IP \(bu 2 -\fBgtr(version, range)\fP: Return \fBtrue\fP if version is greater than all the -versions possible in the range\. -.IP \(bu 2 -\fBltr(version, range)\fP: Return \fBtrue\fP if version is less than all the -versions possible in the range\. -.IP \(bu 2 -\fBoutside(version, range, hilo)\fP: Return true if the version is outside -the bounds of the range in either the high or low direction\. The -\fBhilo\fP argument must be either the string \fB\|'>'\fP or \fB\|'<'\fP\|\. (This is -the function called by \fBgtr\fP and \fBltr\fP\|\.) - -.RE -.P -Note that, since ranges may be non\-contiguous, a version might not be -greater than a range, less than a range, \fIor\fR satisfy a range! For -example, the range \fB1\.2 <1\.2\.9 || >2\.0\.0\fP would have a hole from \fB1\.2\.9\fP -until \fB2\.0\.0\fP, so the version \fB1\.2\.10\fP would not be greater than the -range (because \fB2\.0\.1\fP satisfies, which is higher), nor less than the -range (since \fB1\.2\.8\fP satisfies, which is lower), and it also does not -satisfy the range\. -.P -If you want to know if a version satisfies or does not satisfy a -range, use the \fBsatisfies(version, range)\fP function\. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/mkdirp b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/mkdirp deleted file mode 120000 index 017896ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/mkdirp +++ /dev/null @@ -1 +0,0 @@ -../mkdirp/bin/cmd.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/node-gyp b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/node-gyp deleted file mode 120000 index 9b31a4fe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/node-gyp +++ /dev/null @@ -1 +0,0 @@ -../node-gyp/bin/node-gyp.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/nopt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/nopt deleted file mode 120000 index 6b6566ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/nopt +++ /dev/null @@ -1 +0,0 @@ -../nopt/bin/nopt.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/opener b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/opener deleted file mode 120000 index 120b591b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/opener +++ /dev/null @@ -1 +0,0 @@ -../opener/opener.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/rimraf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/rimraf deleted file mode 120000 index 4cd49a49..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/rimraf +++ /dev/null @@ -1 +0,0 @@ -../rimraf/bin.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/semver b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/semver deleted file mode 120000 index 317eb293..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/semver +++ /dev/null @@ -1 +0,0 @@ -../semver/bin/semver \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/which b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/which deleted file mode 120000 index f62471c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/.bin/which +++ /dev/null @@ -1 +0,0 @@ -../which/bin/which \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/.npmignore deleted file mode 100644 index 9d6cd2f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -.nyc_output -nyc_output -node_modules -coverage diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/.travis.yml deleted file mode 100644 index 991d04b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - '0.10' - - '0.12' - - 'iojs' diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/CONTRIBUTING.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/CONTRIBUTING.md deleted file mode 100644 index 2f302612..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/CONTRIBUTING.md +++ /dev/null @@ -1,3 +0,0 @@ - To get started, sign the - Contributor License Agreement. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/README.md deleted file mode 100644 index 99746fe6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# abbrev-js - -Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev). - -Usage: - - var abbrev = require("abbrev"); - abbrev("foo", "fool", "folding", "flop"); - - // returns: - { fl: 'flop' - , flo: 'flop' - , flop: 'flop' - , fol: 'folding' - , fold: 'folding' - , foldi: 'folding' - , foldin: 'folding' - , folding: 'folding' - , foo: 'foo' - , fool: 'fool' - } - -This is handy for command-line scripts, or other cases where you want to be able to accept shorthands. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/abbrev.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/abbrev.js deleted file mode 100644 index 69cfeac5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/abbrev.js +++ /dev/null @@ -1,62 +0,0 @@ - -module.exports = exports = abbrev.abbrev = abbrev - -abbrev.monkeyPatch = monkeyPatch - -function monkeyPatch () { - Object.defineProperty(Array.prototype, 'abbrev', { - value: function () { return abbrev(this) }, - enumerable: false, configurable: true, writable: true - }) - - Object.defineProperty(Object.prototype, 'abbrev', { - value: function () { return abbrev(Object.keys(this)) }, - enumerable: false, configurable: true, writable: true - }) -} - -function abbrev (list) { - if (arguments.length !== 1 || !Array.isArray(list)) { - list = Array.prototype.slice.call(arguments, 0) - } - for (var i = 0, l = list.length, args = [] ; i < l ; i ++) { - args[i] = typeof list[i] === "string" ? list[i] : String(list[i]) - } - - // sort them lexicographically, so that they're next to their nearest kin - args = args.sort(lexSort) - - // walk through each, seeing how much it has in common with the next and previous - var abbrevs = {} - , prev = "" - for (var i = 0, l = args.length ; i < l ; i ++) { - var current = args[i] - , next = args[i + 1] || "" - , nextMatches = true - , prevMatches = true - if (current === next) continue - for (var j = 0, cl = current.length ; j < cl ; j ++) { - var curChar = current.charAt(j) - nextMatches = nextMatches && curChar === next.charAt(j) - prevMatches = prevMatches && curChar === prev.charAt(j) - if (!nextMatches && !prevMatches) { - j ++ - break - } - } - prev = current - if (j === cl) { - abbrevs[current] = current - continue - } - for (var a = current.substr(0, j) ; j <= cl ; j ++) { - abbrevs[a] = current - a += current.charAt(j) - } - } - return abbrevs -} - -function lexSort (a, b) { - return a === b ? 0 : a > b ? 1 : -1 -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/package.json deleted file mode 100644 index d3e3a661..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "abbrev", - "version": "1.0.7", - "description": "Like ruby's abbrev module, but in js", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me" - }, - "main": "abbrev.js", - "scripts": { - "test": "tap test.js --cov" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/isaacs/abbrev-js.git" - }, - "license": "ISC", - "devDependencies": { - "tap": "^1.2.0" - }, - "readme": "# abbrev-js\n\nJust like [ruby's Abbrev](http://apidock.com/ruby/Abbrev).\n\nUsage:\n\n var abbrev = require(\"abbrev\");\n abbrev(\"foo\", \"fool\", \"folding\", \"flop\");\n \n // returns:\n { fl: 'flop'\n , flo: 'flop'\n , flop: 'flop'\n , fol: 'folding'\n , fold: 'folding'\n , foldi: 'folding'\n , foldin: 'folding'\n , folding: 'folding'\n , foo: 'foo'\n , fool: 'fool'\n }\n\nThis is handy for command-line scripts, or other cases where you want to be able to accept shorthands.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/isaacs/abbrev-js/issues" - }, - "homepage": "https://github.com/isaacs/abbrev-js#readme", - "_id": "abbrev@1.0.7", - "_shasum": "5b6035b2ee9d4fb5cf859f08a9be81b208491843", - "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz", - "_from": "abbrev@>=1.0.7 <1.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/test.js deleted file mode 100644 index eb30e421..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/abbrev/test.js +++ /dev/null @@ -1,47 +0,0 @@ -var abbrev = require('./abbrev.js') -var assert = require("assert") -var util = require("util") - -console.log("TAP version 13") -var count = 0 - -function test (list, expect) { - count++ - var actual = abbrev(list) - assert.deepEqual(actual, expect, - "abbrev("+util.inspect(list)+") === " + util.inspect(expect) + "\n"+ - "actual: "+util.inspect(actual)) - actual = abbrev.apply(exports, list) - assert.deepEqual(abbrev.apply(exports, list), expect, - "abbrev("+list.map(JSON.stringify).join(",")+") === " + util.inspect(expect) + "\n"+ - "actual: "+util.inspect(actual)) - console.log('ok - ' + list.join(' ')) -} - -test([ "ruby", "ruby", "rules", "rules", "rules" ], -{ rub: 'ruby' -, ruby: 'ruby' -, rul: 'rules' -, rule: 'rules' -, rules: 'rules' -}) -test(["fool", "foom", "pool", "pope"], -{ fool: 'fool' -, foom: 'foom' -, poo: 'pool' -, pool: 'pool' -, pop: 'pope' -, pope: 'pope' -}) -test(["a", "ab", "abc", "abcd", "abcde", "acde"], -{ a: 'a' -, ab: 'ab' -, abc: 'abc' -, abcd: 'abcd' -, abcde: 'abcde' -, ac: 'acde' -, acd: 'acde' -, acde: 'acde' -}) - -console.log("1..%d", count) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/index.js deleted file mode 100644 index 4906755b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -module.exports = function () { - return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/package.json deleted file mode 100644 index 36b92255..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "ansi-regex", - "version": "2.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/ansi-regex.git" - }, - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "maintainers": [ - { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - { - "name": "Joshua Appelman", - "email": "jappelman@xebia.com", - "url": "jbnicolai.com" - } - ], - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha test/test.js", - "view-supported": "node test/viewCodes.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "mocha": "*" - }, - "readme": "# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-regex)\n\n> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)\n\n\n## Install\n\n```\n$ npm install --save ansi-regex\n```\n\n\n## Usage\n\n```js\nvar ansiRegex = require('ansi-regex');\n\nansiRegex().test('\\u001b[4mcake\\u001b[0m');\n//=> true\n\nansiRegex().test('cake');\n//=> false\n\n'\\u001b[4mcake\\u001b[0m'.match(ansiRegex());\n//=> ['\\u001b[4m', '\\u001b[0m']\n```\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", - "readmeFilename": "readme.md", - "bugs": { - "url": "https://github.com/sindresorhus/ansi-regex/issues" - }, - "homepage": "https://github.com/sindresorhus/ansi-regex#readme", - "_id": "ansi-regex@2.0.0", - "_shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", - "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "_from": "ansi-regex@2.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/readme.md deleted file mode 100644 index 1a4894ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansi-regex/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-regex) - -> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) - - -## Install - -``` -$ npm install --save ansi-regex -``` - - -## Usage - -```js -var ansiRegex = require('ansi-regex'); - -ansiRegex().test('\u001b[4mcake\u001b[0m'); -//=> true - -ansiRegex().test('cake'); -//=> false - -'\u001b[4mcake\u001b[0m'.match(ansiRegex()); -//=> ['\u001b[4m', '\u001b[0m'] -``` - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/LICENSE deleted file mode 100644 index 41702c50..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2013 Thorsten Lorenz. -All rights reserved. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/README.md deleted file mode 100644 index f3e9d070..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# ansicolors [![build status](https://secure.travis-ci.org/thlorenz/ansicolors.png)](http://next.travis-ci.org/thlorenz/ansicolors) - -Functions that surround a string with ansicolor codes so it prints in color. - -In case you need styles, like `bold`, have a look at [ansistyles](https://github.com/thlorenz/ansistyles). - -## Installation - - npm install ansicolors - -## Usage - -```js -var colors = require('ansicolors'); - -// foreground colors -var redHerring = colors.red('herring'); -var blueMoon = colors.blue('moon'); -var brighBlueMoon = colors.brightBlue('moon'); - -console.log(redHerring); // this will print 'herring' in red -console.log(blueMoon); // this 'moon' in blue -console.log(brightBlueMoon); // I think you got the idea - -// background colors -console.log(colors.bgYellow('printed on yellow background')); -console.log(colors.bgBrightBlue('printed on bright blue background')); - -// mixing background and foreground colors -// below two lines have same result (order in which bg and fg are combined doesn't matter) -console.log(colors.bgYellow(colors.blue('printed on yellow background in blue'))); -console.log(colors.blue(colors.bgYellow('printed on yellow background in blue'))); -``` - -## Advanced API - -**ansicolors** allows you to access opening and closing escape sequences separately. - -```js -var colors = require('ansicolors'); - -function inspect(obj, depth) { - return require('util').inspect(obj, false, depth || 5, true); -} - -console.log('open blue', inspect(colors.open.blue)); -console.log('close bgBlack', inspect(colors.close.bgBlack)); - -// => open blue '\u001b[34m' -// close bgBlack '\u001b[49m' -``` - -## Tests - -Look at the [tests](https://github.com/thlorenz/ansicolors/blob/master/test/ansicolors.js) to see more examples and/or run them via: - - npm explore ansicolors && npm test - -## Alternatives - -**ansicolors** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, -I'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/ansicolors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/ansicolors.js deleted file mode 100644 index 16b2586f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/ansicolors.js +++ /dev/null @@ -1,65 +0,0 @@ -// ColorCodes explained: http://www.termsys.demon.co.uk/vtansi.htm -'use strict'; - -var colorNums = { - white : 37 - , black : 30 - , blue : 34 - , cyan : 36 - , green : 32 - , magenta : 35 - , red : 31 - , yellow : 33 - , brightBlack : 90 - , brightRed : 91 - , brightGreen : 92 - , brightYellow : 93 - , brightBlue : 94 - , brightMagenta : 95 - , brightCyan : 96 - , brightWhite : 97 - } - , backgroundColorNums = { - bgBlack : 40 - , bgRed : 41 - , bgGreen : 42 - , bgYellow : 43 - , bgBlue : 44 - , bgMagenta : 45 - , bgCyan : 46 - , bgWhite : 47 - , bgBrightBlack : 100 - , bgBrightRed : 101 - , bgBrightGreen : 102 - , bgBrightYellow : 103 - , bgBrightBlue : 104 - , bgBrightMagenta : 105 - , bgBrightCyan : 106 - , bgBrightWhite : 107 - } - , open = {} - , close = {} - , colors = {} - ; - -Object.keys(colorNums).forEach(function (k) { - var o = open[k] = '\u001b[' + colorNums[k] + 'm'; - var c = close[k] = '\u001b[39m'; - - colors[k] = function (s) { - return o + s + c; - }; -}); - -Object.keys(backgroundColorNums).forEach(function (k) { - var o = open[k] = '\u001b[' + backgroundColorNums[k] + 'm'; - var c = close[k] = '\u001b[49m'; - - colors[k] = function (s) { - return o + s + c; - }; -}); - -module.exports = colors; -colors.open = open; -colors.close = close; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/package.json deleted file mode 100644 index 6eef1fd1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "ansicolors", - "version": "0.3.2", - "description": "Functions that surround a string with ansicolor codes so it prints in color.", - "main": "ansicolors.js", - "scripts": { - "test": "node test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/ansicolors.git" - }, - "keywords": [ - "ansi", - "colors", - "highlight", - "string" - ], - "author": { - "name": "Thorsten Lorenz", - "email": "thlorenz@gmx.de", - "url": "thlorenz.com" - }, - "license": "MIT", - "readmeFilename": "README.md", - "gitHead": "858847ca28e8b360d9b70eee0592700fa2ab087d", - "readme": "# ansicolors [![build status](https://secure.travis-ci.org/thlorenz/ansicolors.png)](http://next.travis-ci.org/thlorenz/ansicolors)\n\nFunctions that surround a string with ansicolor codes so it prints in color.\n\nIn case you need styles, like `bold`, have a look at [ansistyles](https://github.com/thlorenz/ansistyles).\n\n## Installation\n\n npm install ansicolors\n\n## Usage\n\n```js\nvar colors = require('ansicolors');\n\n// foreground colors\nvar redHerring = colors.red('herring');\nvar blueMoon = colors.blue('moon');\nvar brighBlueMoon = colors.brightBlue('moon');\n\nconsole.log(redHerring); // this will print 'herring' in red\nconsole.log(blueMoon); // this 'moon' in blue\nconsole.log(brightBlueMoon); // I think you got the idea\n\n// background colors\nconsole.log(colors.bgYellow('printed on yellow background'));\nconsole.log(colors.bgBrightBlue('printed on bright blue background'));\n\n// mixing background and foreground colors\n// below two lines have same result (order in which bg and fg are combined doesn't matter)\nconsole.log(colors.bgYellow(colors.blue('printed on yellow background in blue')));\nconsole.log(colors.blue(colors.bgYellow('printed on yellow background in blue')));\n```\n\n## Advanced API\n\n**ansicolors** allows you to access opening and closing escape sequences separately.\n\n```js\nvar colors = require('ansicolors');\n\nfunction inspect(obj, depth) {\n return require('util').inspect(obj, false, depth || 5, true);\n}\n\nconsole.log('open blue', inspect(colors.open.blue));\nconsole.log('close bgBlack', inspect(colors.close.bgBlack));\n\n// => open blue '\\u001b[34m'\n// close bgBlack '\\u001b[49m'\n```\n\n## Tests\n\nLook at the [tests](https://github.com/thlorenz/ansicolors/blob/master/test/ansicolors.js) to see more examples and/or run them via: \n\n npm explore ansicolors && npm test\n\n## Alternatives\n\n**ansicolors** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, \nI'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js).\n", - "bugs": { - "url": "https://github.com/thlorenz/ansicolors/issues" - }, - "_id": "ansicolors@0.3.2", - "dist": { - "shasum": "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979", - "tarball": "http://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz" - }, - "_from": "ansicolors@>=0.3.2 <0.4.0", - "_npmVersion": "1.3.11", - "_npmUser": { - "name": "thlorenz", - "email": "thlorenz@gmx.de" - }, - "maintainers": [ - { - "name": "thlorenz", - "email": "thlorenz@gmx.de" - } - ], - "directories": {}, - "_shasum": "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979", - "_resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/test/ansicolors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/test/ansicolors.js deleted file mode 100644 index 49453930..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansicolors/test/ansicolors.js +++ /dev/null @@ -1,71 +0,0 @@ -'use strict'; - -var assert = require('assert') - , colors = require('..') - , open = colors.open - , close = colors.close - -console.log('Foreground colors ..'); - -assert.equal(colors.white('printed in white'), '\u001b[37mprinted in white\u001b[39m'); - -assert.equal(colors.black('printed in black'), '\u001b[30mprinted in black\u001b[39m'); -assert.equal(colors.brightBlack('printed in bright black'), '\u001b[90mprinted in bright black\u001b[39m'); - -assert.equal(colors.green('printed in green'), '\u001b[32mprinted in green\u001b[39m'); -assert.equal(colors.brightGreen('printed in bright green'), '\u001b[92mprinted in bright green\u001b[39m'); - -assert.equal(colors.red('printed in red'), '\u001b[31mprinted in red\u001b[39m'); -assert.equal(colors.brightRed('printed in bright red'), '\u001b[91mprinted in bright red\u001b[39m'); - -console.log('OK'); - -console.log('Background colors ..'); - -assert.equal( - colors.bgBlack('printed with black background') - , '\u001b[40mprinted with black background\u001b[49m' -); - -assert.equal( - colors.bgYellow('printed with yellow background') - , '\u001b[43mprinted with yellow background\u001b[49m' -); -assert.equal( - colors.bgBrightYellow('printed with bright yellow background') - , '\u001b[103mprinted with bright yellow background\u001b[49m' -); - -assert.equal( - colors.bgWhite('printed with white background') - , '\u001b[47mprinted with white background\u001b[49m' -); - -console.log('OK'); - -console.log('Mixing background and foreground colors ..'); - -assert.equal( - colors.blue(colors.bgYellow('printed in blue with yellow background')) - , '\u001b[34m\u001b[43mprinted in blue with yellow background\u001b[49m\u001b[39m' -); -assert.equal( - colors.bgYellow(colors.blue('printed in blue with yellow background again')) - , '\u001b[43m\u001b[34mprinted in blue with yellow background again\u001b[39m\u001b[49m' -); - -console.log('OK'); - -console.log('Open ...'); - -assert.equal(open.black, '\u001b[30m'); -assert.equal(open.bgYellow, '\u001b[43m'); - -console.log('OK'); - -console.log('Close ...'); - -assert.equal(close.black, '\u001b[39m'); -assert.equal(close.bgYellow, '\u001b[49m'); - -console.log('OK'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/LICENSE deleted file mode 100644 index 41702c50..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2013 Thorsten Lorenz. -All rights reserved. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/README.md deleted file mode 100644 index e39b8dfb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/README.md +++ /dev/null @@ -1,71 +0,0 @@ -# ansistyles [![build status](https://secure.travis-ci.org/thlorenz/ansistyles.png)](http://next.travis-ci.org/thlorenz/ansistyles) - -Functions that surround a string with ansistyle codes so it prints in style. - -In case you need colors, like `red`, have a look at [ansicolors](https://github.com/thlorenz/ansicolors). - -## Installation - - npm install ansistyles - -## Usage - -```js -var styles = require('ansistyles'); - -console.log(styles.bright('hello world')); // prints hello world in 'bright' white -console.log(styles.underline('hello world')); // prints hello world underlined -console.log(styles.inverse('hello world')); // prints hello world black on white -``` - -## Combining with ansicolors - -Get the ansicolors module: - - npm install ansicolors - -```js -var styles = require('ansistyles') - , colors = require('ansicolors'); - - console.log( - // prints hello world underlined in blue on a green background - colors.bgGreen(colors.blue(styles.underline('hello world'))) - ); -``` - -## Tests - -Look at the [tests](https://github.com/thlorenz/ansistyles/blob/master/test/ansistyles.js) to see more examples and/or run them via: - - npm explore ansistyles && npm test - -## More Styles - -As you can see from [here](https://github.com/thlorenz/ansistyles/blob/master/ansistyles.js#L4-L15), more styles are available, -but didn't have any effect on the terminals that I tested on Mac Lion and Ubuntu Linux. - -I included them for completeness, but didn't show them in the examples because they seem to have no effect. - -### reset - -A style reset function is also included, please note however that this is not nestable. - -Therefore the below only underlines `hell` only, but not `world`. - -```js -console.log(styles.underline('hell' + styles.reset('o') + ' world')); -``` - -It is essentially the same as: - -```js -console.log(styles.underline('hell') + styles.reset('') + 'o world'); -``` - - - -## Alternatives - -**ansistyles** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, -I'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/ansistyles.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/ansistyles.js deleted file mode 100644 index 5b8788c0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/ansistyles.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -/* - * Info: http://www.termsys.demon.co.uk/vtansi.htm#colors - * Following caveats - * bright - brightens the color (bold-blue is same as brigthtBlue) - * dim - nothing on Mac or Linux - * italic - nothing on Mac or Linux - * underline - underlines string - * blink - nothing on Mac or linux - * inverse - background becomes foreground and vice versa - * - * In summary, the only styles that work are: - * - bright, underline and inverse - * - the others are only included for completeness - */ - -var styleNums = { - reset : [0, 22] - , bright : [1, 22] - , dim : [2, 22] - , italic : [3, 23] - , underline : [4, 24] - , blink : [5, 25] - , inverse : [7, 27] - } - , styles = {} - ; - -Object.keys(styleNums).forEach(function (k) { - styles[k] = function (s) { - var open = styleNums[k][0] - , close = styleNums[k][1]; - return '\u001b[' + open + 'm' + s + '\u001b[' + close + 'm'; - }; -}); - -module.exports = styles; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/package.json deleted file mode 100644 index 12ddf0d4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "ansistyles", - "version": "0.1.3", - "description": "Functions that surround a string with ansistyle codes so it prints in style.", - "main": "ansistyles.js", - "scripts": { - "test": "node test/ansistyles.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/ansistyles.git" - }, - "keywords": [ - "ansi", - "style", - "terminal", - "console" - ], - "author": { - "name": "Thorsten Lorenz", - "email": "thlorenz@gmx.de", - "url": "thlorenz.com" - }, - "license": "MIT", - "readmeFilename": "README.md", - "gitHead": "27bf1bc65231bcc7fd109bf13b13601b51f8cd04", - "readme": "# ansistyles [![build status](https://secure.travis-ci.org/thlorenz/ansistyles.png)](http://next.travis-ci.org/thlorenz/ansistyles)\n\nFunctions that surround a string with ansistyle codes so it prints in style.\n\nIn case you need colors, like `red`, have a look at [ansicolors](https://github.com/thlorenz/ansicolors).\n\n## Installation\n\n npm install ansistyles\n\n## Usage\n\n```js\nvar styles = require('ansistyles');\n\nconsole.log(styles.bright('hello world')); // prints hello world in 'bright' white\nconsole.log(styles.underline('hello world')); // prints hello world underlined\nconsole.log(styles.inverse('hello world')); // prints hello world black on white\n```\n\n## Combining with ansicolors\n\nGet the ansicolors module:\n\n npm install ansicolors\n\n```js\nvar styles = require('ansistyles')\n , colors = require('ansicolors');\n\n console.log(\n // prints hello world underlined in blue on a green background\n colors.bgGreen(colors.blue(styles.underline('hello world'))) \n );\n```\n\n## Tests\n\nLook at the [tests](https://github.com/thlorenz/ansistyles/blob/master/test/ansistyles.js) to see more examples and/or run them via: \n\n npm explore ansistyles && npm test\n\n## More Styles\n\nAs you can see from [here](https://github.com/thlorenz/ansistyles/blob/master/ansistyles.js#L4-L15), more styles are available,\nbut didn't have any effect on the terminals that I tested on Mac Lion and Ubuntu Linux.\n\nI included them for completeness, but didn't show them in the examples because they seem to have no effect.\n\n### reset\n\nA style reset function is also included, please note however that this is not nestable.\n\nTherefore the below only underlines `hell` only, but not `world`.\n\n```js\nconsole.log(styles.underline('hell' + styles.reset('o') + ' world'));\n```\n\nIt is essentially the same as:\n\n```js\nconsole.log(styles.underline('hell') + styles.reset('') + 'o world');\n```\n\n\n\n## Alternatives\n\n**ansistyles** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, \nI'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js).\n", - "bugs": { - "url": "https://github.com/thlorenz/ansistyles/issues" - }, - "_id": "ansistyles@0.1.3", - "dist": { - "shasum": "5de60415bda071bb37127854c864f41b23254539", - "tarball": "http://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz" - }, - "_from": "ansistyles@>=0.1.3 <0.2.0", - "_npmVersion": "1.3.11", - "_npmUser": { - "name": "thlorenz", - "email": "thlorenz@gmx.de" - }, - "maintainers": [ - { - "name": "thlorenz", - "email": "thlorenz@gmx.de" - } - ], - "directories": {}, - "_shasum": "5de60415bda071bb37127854c864f41b23254539", - "_resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/test/ansistyles.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/test/ansistyles.js deleted file mode 100644 index f769bf80..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ansistyles/test/ansistyles.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -/*jshint asi: true */ -var assert = require('assert') - , styles = require('../') - -function inspect(obj, depth) { - console.log(require('util').inspect(obj, false, depth || 5, true)); -} - -assert.equal(styles.reset('reset'), '\u001b[0mreset\u001b[22m', 'reset') -assert.equal(styles.underline('underlined'), '\u001b[4munderlined\u001b[24m', 'underline') -assert.equal(styles.bright('bright'), '\u001b[1mbright\u001b[22m', 'bright') -assert.equal(styles.inverse('inversed'), '\u001b[7minversed\u001b[27m', 'inverse') - -console.log('OK'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/.npmignore deleted file mode 100644 index 24001896..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -*~ -node_modules -.#* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/LICENSE deleted file mode 100644 index f4be44d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/README.md deleted file mode 100644 index f4df1742..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/README.md +++ /dev/null @@ -1,55 +0,0 @@ -aproba -====== - -A rediculously light-weight function argument validator - -``` -var validate = require("aproba") - -function myfunc(a, b, c) { - // `a` must be a string, `b` a number, `c` a function - validate('SNF', arguments) // [a,b,c] is also valid -} - -myfunc('test', 23, function () {}) // ok -myfunc(123, 23, function () {}) // type error -myfunc('test', 23) // missing arg error -myfunc('test', 23, function () {}, true) // too many args error - -``` - -Valid types are: - -type | description ----- | ----------- -* | matches any type -A | Array.isArray OR an arguments object -S | typeof == string -N | typeof == number -F | typeof == function -O | typeof == object and not type A and not type E -B | typeof == boolean -E | instanceof Error OR null - -Validation failures throw one of three exception types, distinguished by a -`code` property of `EMISSINGARG`, `EINVALIDTYPE` or `ETOOMANYARGS`. - -If an error argument is found and is not null then the remaining arguments will not be validated. - -### Why this exists - -I wanted a very simple argument validator. It needed to do two things: - -1. Be more concise and easier to use than assertions - -2. Not encourage an infinite bikeshed of DSLs - -This is why types are specified by a single character and there's no such -thing as an optional argument. - -This is not intended to validate user data. This is specifically about -asserting the interface of your functions. - -If you need greater validation, I encourage you to write them by hand or -look elsewhere. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/index.js deleted file mode 100644 index 6d1c17ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/index.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict' - -var types = { - '*': ['any', function () { return true }], - A: ['array', function (thingy) { return (Array.isArray && Array.isArray(thingy)) || (typeof thingy === 'object' && thingy.hasOwnProperty('callee')) }], - S: ['string', function (thingy) { return typeof thingy === 'string' }], - N: ['number', function (thingy) { return typeof thingy === 'number' }], - F: ['function', function (thingy) { return typeof thingy === 'function' }], - O: ['object', function (thingy) { return typeof thingy === 'object' && !types.A[1](thingy) && !types.E[1](thingy) }], - B: ['boolean', function (thingy) { return typeof thingy === 'boolean' }], - E: ['error', function (thingy) { return thingy instanceof Error }] -} - -var validate = module.exports = function (schema, args) { - if (!schema) throw missingRequiredArg(0, 'schema') - if (!args) throw missingRequiredArg(1, 'args') - if (!types.S[1](schema)) throw invalidType(0, 'string', schema) - if (!types.A[1](args)) throw invalidType(1, 'array', args) - for (var ii = 0; ii < schema.length; ++ii) { - var type = schema[ii] - if (!types[type]) throw unknownType(ii, type) - var typeLabel = types[type][0] - var typeCheck = types[type][1] - if (type === 'E' && args[ii] == null) continue - if (args[ii] == null) throw missingRequiredArg(ii) - if (!typeCheck(args[ii])) throw invalidType(ii, typeLabel, args[ii]) - if (type === 'E') return - } - if (schema.length < args.length) throw tooManyArgs(schema.length, args.length) -} - -function missingRequiredArg (num) { - return newException('EMISSINGARG', 'Missing required argument #' + (num + 1)) -} - -function unknownType (num, type) { - return newException('EUNKNOWNTYPE', 'Unknown type ' + type + ' in argument #' + (num + 1)) -} - -function invalidType (num, expectedType, value) { - var valueType - Object.keys(types).forEach(function (typeCode) { - if (types[typeCode][1](value)) valueType = types[typeCode][0] - }) - return newException('EINVALIDTYPE', 'Argument #' + (num + 1) + ': Expected ' + - expectedType + ' but got ' + valueType) -} - -function tooManyArgs (expected, got) { - return newException('ETOOMANYARGS', 'Too many arguments, expected ' + expected + ' and got ' + got) -} - -function newException (code, msg) { - var e = new Error(msg) - e.code = code - Error.captureStackTrace(e, validate) - return e -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/package.json deleted file mode 100644 index 56452c40..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/package.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "_args": [ - [ - { - "name": "aproba", - "raw": "aproba@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "/Users/zkat/Documents/code/npm" - ] - ], - "_from": "aproba@latest", - "_id": "aproba@1.0.3", - "_inCache": true, - "_installable": true, - "_location": "/aproba", - "_nodeVersion": "4.4.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/aproba-1.0.3.tgz_1463784729571_0.7574592484161258" - }, - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "3.9.2", - "_phantomChildren": {}, - "_requested": { - "name": "aproba", - "raw": "aproba@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/aproba/-/aproba-1.0.3.tgz", - "_shasum": "7fb6da3a72c70249db63fd9b5c64b31af718a94f", - "_shrinkwrap": null, - "_spec": "aproba@latest", - "_where": "/Users/zkat/Documents/code/npm", - "author": { - "email": "me@re-becca.org", - "name": "Rebecca Turner" - }, - "bugs": { - "url": "https://github.com/iarna/aproba/issues" - }, - "dependencies": {}, - "description": "A rediculously light-weight argument validator", - "devDependencies": { - "standard": "^7.1.0", - "tap": "^5.7.1" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "7fb6da3a72c70249db63fd9b5c64b31af718a94f", - "tarball": "https://registry.npmjs.org/aproba/-/aproba-1.0.3.tgz" - }, - "gitHead": "20cc4fc6589bbf870c3ca7bb8b9cb203af9d96a5", - "homepage": "https://github.com/iarna/aproba", - "keywords": [ - "argument", - "validate" - ], - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "email": "me@re-becca.org", - "name": "iarna" - } - ], - "name": "aproba", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/iarna/aproba.git" - }, - "scripts": { - "test": "standard && tap test/*.js" - }, - "version": "1.0.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/test/index.js deleted file mode 100644 index b96fd421..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/aproba/test/index.js +++ /dev/null @@ -1,87 +0,0 @@ -'use strict' -var test = require('tap').test -var validate = require('../index.js') - -function thrown (t, code, msg, todo) { - validate('OSSF', arguments) - try { - todo() - t.fail(msg) - } catch (e) { - t.is(e.code, code, msg + e.message) - } -} - -function notThrown (t, msg, todo) { - validate('OSF', arguments) - try { - todo() - t.pass(msg) - } catch (e) { - t.fail(msg + '\n' + e.stack) - } -} - -test('general', function (t) { - t.plan(70) - var values = { - 'A': [], - 'S': 'test', - 'N': 123, - 'F': function () {}, - 'O': {}, - 'B': false, - 'E': new Error() - } - Object.keys(values).forEach(function (type) { - Object.keys(values).forEach(function (contraType) { - if (type === contraType) { - notThrown(t, type + ' matches ' + contraType, function () { - validate(type, [values[contraType]]) - }) - } else { - thrown(t, 'EINVALIDTYPE', type + ' does not match ' + contraType, function () { - validate(type, [values[contraType]]) - }) - } - }) - if (type === 'E') { - notThrown(t, 'null is ok for E', function () { - validate(type, [null]) - }) - } else { - thrown(t, 'EMISSINGARG', 'null not ok for ' + type, function () { - validate(type, [null]) - }) - } - }) - Object.keys(values).forEach(function (contraType) { - notThrown(t, '* matches ' + contraType, function () { - validate('*', [values[contraType]]) - }) - }) - thrown(t, 'EMISSINGARG', 'not enough args', function () { - validate('SNF', ['abc', 123]) - }) - thrown(t, 'ETOOMANYARGS', 'too many args', function () { - validate('SNF', ['abc', 123, function () {}, true]) - }) - notThrown(t, 'E matches null', function () { - validate('E', [null]) - }) - notThrown(t, 'E matches undefined', function () { - validate('E', [undefined]) - }) - notThrown(t, 'E w/ error requires nothing else', function () { - validate('ESN', [new Error(), 'foo']) - }) - thrown(t, 'EMISSINGARG', 'E w/o error works as usual', function () { - validate('ESN', [null, 'foo']) - }) - try { - validate('O', [[]]) - t.fail('object != array') - } catch (ex) { - t.match(ex.message, /Expected object but got array/, 'When reporting non-objects, uses aproba types') - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/.travis.yml deleted file mode 100644 index 895dbd36..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.8 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/README.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/README.markdown deleted file mode 100644 index ef7a5cf3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/README.markdown +++ /dev/null @@ -1,88 +0,0 @@ -# archy - -Render nested hierarchies `npm ls` style with unicode pipes. - -[![browser support](http://ci.testling.com/substack/node-archy.png)](http://ci.testling.com/substack/node-archy) - -[![build status](https://secure.travis-ci.org/substack/node-archy.png)](http://travis-ci.org/substack/node-archy) - -# example - -``` js -var archy = require('archy'); -var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party\ntime!' - ] - } - ] -}); -console.log(s); -``` - -output - -``` -beep -├── ity -└─┬ boop - ├─┬ o_O - │ ├─┬ oh - │ │ ├── hello - │ │ └── puny - │ └── human - └── party - time! -``` - -# methods - -var archy = require('archy') - -## archy(obj, prefix='', opts={}) - -Return a string representation of `obj` with unicode pipe characters like how -`npm ls` looks. - -`obj` should be a tree of nested objects with `'label'` and `'nodes'` fields. -`'label'` is a string of text to display at a node level and `'nodes'` is an -array of the descendents of the current node. - -If a node is a string, that string will be used as the `'label'` and an empty -array of `'nodes'` will be used. - -`prefix` gets prepended to all the lines and is used by the algorithm to -recursively update. - -If `'label'` has newlines they will be indented at the present indentation level -with the current prefix. - -To disable unicode results in favor of all-ansi output set `opts.unicode` to -`false`. - -# install - -With [npm](http://npmjs.org) do: - -``` -npm install archy -``` - -# license - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/examples/beep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/examples/beep.js deleted file mode 100644 index 9c070479..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/examples/beep.js +++ /dev/null @@ -1,24 +0,0 @@ -var archy = require('../'); -var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party\ntime!' - ] - } - ] -}); -console.log(s); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/examples/multi_line.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/examples/multi_line.js deleted file mode 100644 index 8afdfada..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/examples/multi_line.js +++ /dev/null @@ -1,25 +0,0 @@ -var archy = require('../'); - -var s = archy({ - label : 'beep\none\ntwo', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O\nwheee', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny\nmeat' ] - }, - 'creature' - ] - }, - 'party\ntime!' - ] - } - ] -}); -console.log(s); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/index.js deleted file mode 100644 index 869d64e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/index.js +++ /dev/null @@ -1,35 +0,0 @@ -module.exports = function archy (obj, prefix, opts) { - if (prefix === undefined) prefix = ''; - if (!opts) opts = {}; - var chr = function (s) { - var chars = { - '│' : '|', - '└' : '`', - '├' : '+', - '─' : '-', - '┬' : '-' - }; - return opts.unicode === false ? chars[s] : s; - }; - - if (typeof obj === 'string') obj = { label : obj }; - - var nodes = obj.nodes || []; - var lines = (obj.label || '').split('\n'); - var splitter = '\n' + prefix + (nodes.length ? chr('│') : ' ') + ' '; - - return prefix - + lines.join(splitter) + '\n' - + nodes.map(function (node, ix) { - var last = ix === nodes.length - 1; - var more = node.nodes && node.nodes.length; - var prefix_ = prefix + (last ? ' ' : chr('│')) + ' '; - - return prefix - + (last ? chr('└') : chr('├')) + chr('─') - + (more ? chr('┬') : chr('─')) + ' ' - + archy(node, prefix_, opts).slice(prefix.length + 2) - ; - }).join('') - ; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/package.json deleted file mode 100644 index d49bc877..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "archy", - "version": "1.0.0", - "description": "render nested hierarchies `npm ls` style with unicode pipes", - "main": "index.js", - "devDependencies": { - "tap": "~0.3.3", - "tape": "~0.1.1" - }, - "scripts": { - "test": "tap test" - }, - "testling": { - "files": "test/*.js", - "browsers": { - "iexplore": [ - "6.0", - "7.0", - "8.0", - "9.0" - ], - "chrome": [ - "20.0" - ], - "firefox": [ - "10.0", - "15.0" - ], - "safari": [ - "5.1" - ], - "opera": [ - "12.0" - ] - } - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/substack/node-archy.git" - }, - "keywords": [ - "hierarchy", - "npm ls", - "unicode", - "pretty", - "print" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "gitHead": "30223c16191e877bf027b15b12daf077b9b55b84", - "bugs": { - "url": "https://github.com/substack/node-archy/issues" - }, - "homepage": "https://github.com/substack/node-archy", - "_id": "archy@1.0.0", - "_shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", - "_from": "archy@>=1.0.0 <1.1.0", - "_npmVersion": "1.4.25", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "dist": { - "shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", - "tarball": "http://registry.npmjs.org/archy/-/archy-1.0.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/test/beep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/test/beep.js deleted file mode 100644 index 4ea74f9c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/test/beep.js +++ /dev/null @@ -1,40 +0,0 @@ -var test = require('tape'); -var archy = require('../'); - -test('beep', function (t) { - var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party!' - ] - } - ] - }); - t.equal(s, [ - 'beep', - '├── ity', - '└─┬ boop', - ' ├─┬ o_O', - ' │ ├─┬ oh', - ' │ │ ├── hello', - ' │ │ └── puny', - ' │ └── human', - ' └── party!', - '' - ].join('\n')); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/test/multi_line.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/test/multi_line.js deleted file mode 100644 index 2cf2154d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/test/multi_line.js +++ /dev/null @@ -1,45 +0,0 @@ -var test = require('tape'); -var archy = require('../'); - -test('multi-line', function (t) { - var s = archy({ - label : 'beep\none\ntwo', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O\nwheee', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny\nmeat' ] - }, - 'creature' - ] - }, - 'party\ntime!' - ] - } - ] - }); - t.equal(s, [ - 'beep', - '│ one', - '│ two', - '├── ity', - '└─┬ boop', - ' ├─┬ o_O', - ' │ │ wheee', - ' │ ├─┬ oh', - ' │ │ ├── hello', - ' │ │ └── puny', - ' │ │ meat', - ' │ └── creature', - ' └── party', - ' time!', - '' - ].join('\n')); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/test/non_unicode.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/test/non_unicode.js deleted file mode 100644 index 7204d332..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/archy/test/non_unicode.js +++ /dev/null @@ -1,40 +0,0 @@ -var test = require('tape'); -var archy = require('../'); - -test('beep', function (t) { - var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party!' - ] - } - ] - }, '', { unicode : false }); - t.equal(s, [ - 'beep', - '+-- ity', - '`-- boop', - ' +-- o_O', - ' | +-- oh', - ' | | +-- hello', - ' | | `-- puny', - ' | `-- human', - ' `-- party!', - '' - ].join('\n')); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/README.md deleted file mode 100644 index 70e9a54a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Like `chown -R`. - -Takes the same arguments as `fs.chown()` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/chownr.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/chownr.js deleted file mode 100644 index ecd7b452..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/chownr.js +++ /dev/null @@ -1,52 +0,0 @@ -module.exports = chownr -chownr.sync = chownrSync - -var fs = require("fs") -, path = require("path") - -function chownr (p, uid, gid, cb) { - fs.readdir(p, function (er, children) { - // any error other than ENOTDIR means it's not readable, or - // doesn't exist. give up. - if (er && er.code !== "ENOTDIR") return cb(er) - if (er || !children.length) return fs.chown(p, uid, gid, cb) - - var len = children.length - , errState = null - children.forEach(function (child) { - var pathChild = path.resolve(p, child); - fs.lstat(pathChild, function(er, stats) { - if (er) - return cb(er) - if (!stats.isSymbolicLink()) - chownr(pathChild, uid, gid, then) - else - then() - }) - }) - function then (er) { - if (errState) return - if (er) return cb(errState = er) - if (-- len === 0) return fs.chown(p, uid, gid, cb) - } - }) -} - -function chownrSync (p, uid, gid) { - var children - try { - children = fs.readdirSync(p) - } catch (er) { - if (er && er.code === "ENOTDIR") return fs.chownSync(p, uid, gid) - throw er - } - if (!children.length) return fs.chownSync(p, uid, gid) - - children.forEach(function (child) { - var pathChild = path.resolve(p, child) - var stats = fs.lstatSync(pathChild) - if (!stats.isSymbolicLink()) - chownrSync(pathChild, uid, gid) - }) - return fs.chownSync(p, uid, gid) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/package.json deleted file mode 100644 index 700666e4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/chownr/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "chownr", - "description": "like `chown -R`", - "version": "1.0.1", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/chownr.git" - }, - "main": "chownr.js", - "files": [ - "chownr.js" - ], - "devDependencies": { - "mkdirp": "0.3", - "rimraf": "", - "tap": "^1.2.0" - }, - "scripts": { - "test": "tap test/*.js" - }, - "license": "ISC", - "gitHead": "c6c43844e80d7c7045e737a72b9fbb1ba0579a26", - "bugs": { - "url": "https://github.com/isaacs/chownr/issues" - }, - "homepage": "https://github.com/isaacs/chownr#readme", - "_id": "chownr@1.0.1", - "_shasum": "e2a75042a9551908bebd25b8523d5f9769d79181", - "_from": "chownr@>=1.0.1 <1.1.0", - "_npmVersion": "3.2.2", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "e2a75042a9551908bebd25b8523d5f9769d79181", - "tarball": "http://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/.npmignore deleted file mode 100644 index 699b5d4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/.npmignore +++ /dev/null @@ -1,16 +0,0 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz - -pids -logs -results - -npm-debug.log - -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/.travis.yml deleted file mode 100644 index 2ca91f28..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.10" - - "0.8" \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/LICENSE deleted file mode 100644 index 0c44ae71..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) Isaac Z. Schlueter ("Author") -All rights reserved. - -The BSD License - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/README.md deleted file mode 100644 index ff6745f8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# cmd-shim - -The cmd-shim used in npm to create executable scripts on Windows, -since symlinks are not suitable for this purpose there. - -On Unix systems, you should use a symbolic link instead. - -[![Build Status](https://img.shields.io/travis/ForbesLindesay/cmd-shim/master.svg)](https://travis-ci.org/ForbesLindesay/cmd-shim) -[![Dependency Status](https://img.shields.io/david/ForbesLindesay/cmd-shim.svg)](https://david-dm.org/ForbesLindesay/cmd-shim) -[![NPM version](https://img.shields.io/npm/v/cmd-shim.svg)](https://www.npmjs.com/package/cmd-shim) - -## Installation - -``` -npm install cmd-shim -``` - -## API - -### cmdShim(from, to, cb) - -Create a cmd shim at `to` for the command line program at `from`. -e.g. - -```javascript -var cmdShim = require('cmd-shim'); -cmdShim(__dirname + '/cli.js', '/usr/bin/command-name', function (err) { - if (err) throw err; -}); -``` - -### cmdShim.ifExists(from, to, cb) - -The same as above, but will just continue if the file does not exist. -Source: - -```javascript -function cmdShimIfExists (from, to, cb) { - fs.stat(from, function (er) { - if (er) return cb() - cmdShim(from, to, cb) - }) -} -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/index.js deleted file mode 100644 index 9f22e103..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/index.js +++ /dev/null @@ -1,180 +0,0 @@ -// On windows, create a .cmd file. -// Read the #! in the file to see what it uses. The vast majority -// of the time, this will be either: -// "#!/usr/bin/env " -// or: -// "#! " -// -// Write a binroot/pkg.bin + ".cmd" file that has this line in it: -// @ %~dp0 %* - -module.exports = cmdShim -cmdShim.ifExists = cmdShimIfExists - -var fs = require("graceful-fs") - -var mkdir = require("mkdirp") - , path = require("path") - , shebangExpr = /^#\!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/ - -function cmdShimIfExists (from, to, cb) { - fs.stat(from, function (er) { - if (er) return cb() - cmdShim(from, to, cb) - }) -} - -// Try to unlink, but ignore errors. -// Any problems will surface later. -function rm (path, cb) { - fs.unlink(path, function(er) { - cb() - }) -} - -function cmdShim (from, to, cb) { - fs.stat(from, function (er, stat) { - if (er) - return cb(er) - - cmdShim_(from, to, cb) - }) -} - -function cmdShim_ (from, to, cb) { - var then = times(2, next, cb) - rm(to, then) - rm(to + ".cmd", then) - - function next(er) { - writeShim(from, to, cb) - } -} - -function writeShim (from, to, cb) { - // make a cmd file and a sh script - // First, check if the bin is a #! of some sort. - // If not, then assume it's something that'll be compiled, or some other - // sort of script, and just call it directly. - mkdir(path.dirname(to), function (er) { - if (er) - return cb(er) - fs.readFile(from, "utf8", function (er, data) { - if (er) return writeShim_(from, to, null, null, cb) - var firstLine = data.trim().split(/\r*\n/)[0] - , shebang = firstLine.match(shebangExpr) - if (!shebang) return writeShim_(from, to, null, null, cb) - var prog = shebang[1] - , args = shebang[2] || "" - return writeShim_(from, to, prog, args, cb) - }) - }) -} - -function writeShim_ (from, to, prog, args, cb) { - var shTarget = path.relative(path.dirname(to), from) - , target = shTarget.split("/").join("\\") - , longProg - , shProg = prog && prog.split("\\").join("/") - , shLongProg - shTarget = shTarget.split("\\").join("/") - args = args || "" - if (!prog) { - prog = "\"%~dp0\\" + target + "\"" - shProg = "\"$basedir/" + shTarget + "\"" - args = "" - target = "" - shTarget = "" - } else { - longProg = "\"%~dp0\\" + prog + ".exe\"" - shLongProg = "\"$basedir/" + prog + "\"" - target = "\"%~dp0\\" + target + "\"" - shTarget = "\"$basedir/" + shTarget + "\"" - } - - // @IF EXIST "%~dp0\node.exe" ( - // "%~dp0\node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %* - // ) ELSE ( - // SETLOCAL - // SET PATHEXT=%PATHEXT:;.JS;=;% - // node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %* - // ) - var cmd - if (longProg) { - cmd = "@IF EXIST " + longProg + " (\r\n" - + " " + longProg + " " + args + " " + target + " %*\r\n" - + ") ELSE (\r\n" - + " @SETLOCAL\r\n" - + " @SET PATHEXT=%PATHEXT:;.JS;=;%\r\n" - + " " + prog + " " + args + " " + target + " %*\r\n" - + ")" - } else { - cmd = "@" + prog + " " + args + " " + target + " %*\r\n" - } - - // #!/bin/sh - // basedir=`dirname "$0"` - // - // case `uname` in - // *CYGWIN*) basedir=`cygpath -w "$basedir"`;; - // esac - // - // if [ -x "$basedir/node.exe" ]; then - // "$basedir/node.exe" "$basedir/node_modules/npm/bin/npm-cli.js" "$@" - // ret=$? - // else - // node "$basedir/node_modules/npm/bin/npm-cli.js" "$@" - // ret=$? - // fi - // exit $ret - - var sh = "#!/bin/sh\n" - - if (shLongProg) { - sh = sh - + "basedir=$(dirname \"$(echo \"$0\" | sed -e 's,\\\\,/,g')\")\n" - + "\n" - + "case `uname` in\n" - + " *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;\n" - + "esac\n" - + "\n" - - sh = sh - + "if [ -x "+shLongProg+" ]; then\n" - + " " + shLongProg + " " + args + " " + shTarget + " \"$@\"\n" - + " ret=$?\n" - + "else \n" - + " " + shProg + " " + args + " " + shTarget + " \"$@\"\n" - + " ret=$?\n" - + "fi\n" - + "exit $ret\n" - } else { - sh = shProg + " " + args + " " + shTarget + " \"$@\"\n" - + "exit $?\n" - } - - var then = times(2, next, cb) - fs.writeFile(to + ".cmd", cmd, "utf8", then) - fs.writeFile(to, sh, "utf8", then) - function next () { - chmodShim(to, cb) - } -} - -function chmodShim (to, cb) { - var then = times(2, cb, cb) - fs.chmod(to, 0755, then) - fs.chmod(to + ".cmd", 0755, then) -} - -function times(n, ok, cb) { - var errState = null - return function(er) { - if (!errState) { - if (er) - cb(errState = er) - else if (--n === 0) - ok() - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/package.json deleted file mode 100644 index 1867f1db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_args": [ - [ - "cmd-shim@2.0.2", - "/Users/zkat/Documents/code/npm" - ] - ], - "_from": "cmd-shim@2.0.2", - "_id": "cmd-shim@2.0.2", - "_inCache": true, - "_installable": true, - "_location": "/cmd-shim", - "_nodeVersion": "1.6.2", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/cmd-shim-2.0.2.tgz_1455116566936_0.7582207734230906" - }, - "_npmUser": { - "email": "forbes@lindesay.co.uk", - "name": "forbeslindesay" - }, - "_npmVersion": "2.7.1", - "_phantomChildren": {}, - "_requested": { - "name": "cmd-shim", - "raw": "cmd-shim@2.0.2", - "rawSpec": "2.0.2", - "scope": null, - "spec": "2.0.2", - "type": "version" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", - "_shasum": "6fcbda99483a8fd15d7d30a196ca69d688a2efdb", - "_shrinkwrap": null, - "_spec": "cmd-shim@2.0.2", - "_where": "/Users/zkat/Documents/code/npm", - "bugs": { - "url": "https://github.com/ForbesLindesay/cmd-shim/issues" - }, - "dependencies": { - "graceful-fs": "^4.1.2", - "mkdirp": "~0.5.0" - }, - "description": "Used in npm for command line application support", - "devDependencies": { - "rimraf": "~2.2.8", - "tap": "~0.4.11" - }, - "directories": {}, - "dist": { - "shasum": "6fcbda99483a8fd15d7d30a196ca69d688a2efdb", - "tarball": "http://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz" - }, - "gitHead": "8492e2a92b5062bb02a9eec509e57eea94b110a7", - "homepage": "https://github.com/ForbesLindesay/cmd-shim", - "license": "BSD-2-Clause", - "maintainers": [ - { - "email": "forbes@lindesay.co.uk", - "name": "forbeslindesay" - } - ], - "name": "cmd-shim", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/ForbesLindesay/cmd-shim.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "2.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/test/00-setup.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/test/00-setup.js deleted file mode 100644 index 04ec2b25..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/test/00-setup.js +++ /dev/null @@ -1,34 +0,0 @@ -var test = require('tap').test -var mkdirp = require('mkdirp') -var fs = require('fs') -var path = require('path') -var fixtures = path.resolve(__dirname, 'fixtures') - -var froms = { - 'from.exe': 'exe', - 'from.env': '#!/usr/bin/env node\nconsole.log(/hi/)\n', - 'from.env.args': '#!/usr/bin/env node --expose_gc\ngc()\n', - 'from.sh': '#!/usr/bin/sh\necho hi\n', - 'from.sh.args': '#!/usr/bin/sh -x\necho hi\n' -} - -var cmdShim = require('../') - -test('create fixture', function (t) { - mkdirp(fixtures, function (er) { - if (er) - throw er - t.pass('made dir') - Object.keys(froms).forEach(function (f) { - t.test('write ' + f, function (t) { - fs.writeFile(path.resolve(fixtures, f), froms[f], function (er) { - if (er) - throw er - t.pass('wrote ' + f) - t.end() - }) - }) - }) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/test/basic.js deleted file mode 100755 index 09823158..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/test/basic.js +++ /dev/null @@ -1,175 +0,0 @@ -var test = require('tap').test -var mkdirp = require('mkdirp') -var fs = require('fs') -var path = require('path') -var fixtures = path.resolve(__dirname, 'fixtures') - -var cmdShim = require('../') - -test('no shebang', function (t) { - var from = path.resolve(fixtures, 'from.exe') - var to = path.resolve(fixtures, 'exe.shim') - cmdShim(from, to, function(er) { - if (er) - throw er - t.equal(fs.readFileSync(to, 'utf8'), - "\"$basedir/from.exe\" \"$@\"\nexit $?\n") - t.equal(fs.readFileSync(to + '.cmd', 'utf8'), - "@\"%~dp0\\from.exe\" %*\r\n") - t.end() - }) -}) - -test('env shebang', function (t) { - var from = path.resolve(fixtures, 'from.env') - var to = path.resolve(fixtures, 'env.shim') - cmdShim(from, to, function(er) { - if (er) - throw er - console.error('%j', fs.readFileSync(to, 'utf8')) - console.error('%j', fs.readFileSync(to + '.cmd', 'utf8')) - - t.equal(fs.readFileSync(to, 'utf8'), - "#!/bin/sh"+ - "\nbasedir=$(dirname \"$(echo \"$0\" | sed -e 's,\\\\,/,g')\")"+ - "\n"+ - "\ncase `uname` in"+ - "\n *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;"+ - "\nesac"+ - "\n"+ - "\nif [ -x \"$basedir/node\" ]; then"+ - "\n \"$basedir/node\" \"$basedir/from.env\" \"$@\""+ - "\n ret=$?"+ - "\nelse "+ - "\n node \"$basedir/from.env\" \"$@\""+ - "\n ret=$?"+ - "\nfi"+ - "\nexit $ret"+ - "\n") - t.equal(fs.readFileSync(to + '.cmd', 'utf8'), - "@IF EXIST \"%~dp0\\node.exe\" (\r"+ - "\n \"%~dp0\\node.exe\" \"%~dp0\\from.env\" %*\r"+ - "\n) ELSE (\r"+ - "\n @SETLOCAL\r"+ - "\n @SET PATHEXT=%PATHEXT:;.JS;=;%\r"+ - "\n node \"%~dp0\\from.env\" %*\r"+ - "\n)") - t.end() - }) -}) - -test('env shebang with args', function (t) { - var from = path.resolve(fixtures, 'from.env.args') - var to = path.resolve(fixtures, 'env.args.shim') - cmdShim(from, to, function(er) { - if (er) - throw er - console.error('%j', fs.readFileSync(to, 'utf8')) - console.error('%j', fs.readFileSync(to + '.cmd', 'utf8')) - - t.equal(fs.readFileSync(to, 'utf8'), - "#!/bin/sh"+ - "\nbasedir=$(dirname \"$(echo \"$0\" | sed -e 's,\\\\,/,g')\")"+ - "\n"+ - "\ncase `uname` in"+ - "\n *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;"+ - "\nesac"+ - "\n"+ - "\nif [ -x \"$basedir/node\" ]; then"+ - "\n \"$basedir/node\" --expose_gc \"$basedir/from.env.args\" \"$@\""+ - "\n ret=$?"+ - "\nelse "+ - "\n node --expose_gc \"$basedir/from.env.args\" \"$@\""+ - "\n ret=$?"+ - "\nfi"+ - "\nexit $ret"+ - "\n") - t.equal(fs.readFileSync(to + '.cmd', 'utf8'), - "@IF EXIST \"%~dp0\\node.exe\" (\r"+ - "\n \"%~dp0\\node.exe\" --expose_gc \"%~dp0\\from.env.args\" %*\r"+ - "\n) ELSE (\r"+ - "\n @SETLOCAL\r"+ - "\n @SET PATHEXT=%PATHEXT:;.JS;=;%\r"+ - "\n node --expose_gc \"%~dp0\\from.env.args\" %*\r"+ - "\n)") - t.end() - }) -}) - -test('explicit shebang', function (t) { - var from = path.resolve(fixtures, 'from.sh') - var to = path.resolve(fixtures, 'sh.shim') - cmdShim(from, to, function(er) { - if (er) - throw er - console.error('%j', fs.readFileSync(to, 'utf8')) - console.error('%j', fs.readFileSync(to + '.cmd', 'utf8')) - - t.equal(fs.readFileSync(to, 'utf8'), - "#!/bin/sh" + - "\nbasedir=$(dirname \"$(echo \"$0\" | sed -e 's,\\\\,/,g')\")" + - "\n" + - "\ncase `uname` in" + - "\n *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;" + - "\nesac" + - "\n" + - "\nif [ -x \"$basedir//usr/bin/sh\" ]; then" + - "\n \"$basedir//usr/bin/sh\" \"$basedir/from.sh\" \"$@\"" + - "\n ret=$?" + - "\nelse " + - "\n /usr/bin/sh \"$basedir/from.sh\" \"$@\"" + - "\n ret=$?" + - "\nfi" + - "\nexit $ret" + - "\n") - - t.equal(fs.readFileSync(to + '.cmd', 'utf8'), - "@IF EXIST \"%~dp0\\/usr/bin/sh.exe\" (\r" + - "\n \"%~dp0\\/usr/bin/sh.exe\" \"%~dp0\\from.sh\" %*\r" + - "\n) ELSE (\r" + - "\n @SETLOCAL\r"+ - "\n @SET PATHEXT=%PATHEXT:;.JS;=;%\r"+ - "\n /usr/bin/sh \"%~dp0\\from.sh\" %*\r" + - "\n)") - t.end() - }) -}) - -test('explicit shebang with args', function (t) { - var from = path.resolve(fixtures, 'from.sh.args') - var to = path.resolve(fixtures, 'sh.args.shim') - cmdShim(from, to, function(er) { - if (er) - throw er - console.error('%j', fs.readFileSync(to, 'utf8')) - console.error('%j', fs.readFileSync(to + '.cmd', 'utf8')) - - t.equal(fs.readFileSync(to, 'utf8'), - "#!/bin/sh" + - "\nbasedir=$(dirname \"$(echo \"$0\" | sed -e 's,\\\\,/,g')\")" + - "\n" + - "\ncase `uname` in" + - "\n *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;" + - "\nesac" + - "\n" + - "\nif [ -x \"$basedir//usr/bin/sh\" ]; then" + - "\n \"$basedir//usr/bin/sh\" -x \"$basedir/from.sh.args\" \"$@\"" + - "\n ret=$?" + - "\nelse " + - "\n /usr/bin/sh -x \"$basedir/from.sh.args\" \"$@\"" + - "\n ret=$?" + - "\nfi" + - "\nexit $ret" + - "\n") - - t.equal(fs.readFileSync(to + '.cmd', 'utf8'), - "@IF EXIST \"%~dp0\\/usr/bin/sh.exe\" (\r" + - "\n \"%~dp0\\/usr/bin/sh.exe\" -x \"%~dp0\\from.sh.args\" %*\r" + - "\n) ELSE (\r" + - "\n @SETLOCAL\r"+ - "\n @SET PATHEXT=%PATHEXT:;.JS;=;%\r"+ - "\n /usr/bin/sh -x \"%~dp0\\from.sh.args\" %*\r" + - "\n)") - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/test/zz-cleanup.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/test/zz-cleanup.js deleted file mode 100644 index 94250310..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/cmd-shim/test/zz-cleanup.js +++ /dev/null @@ -1,13 +0,0 @@ -var test = require('tap').test -var path = require('path') -var fixtures = path.resolve(__dirname, 'fixtures') -var rimraf = require('rimraf') - -test('cleanup', function(t) { - rimraf(fixtures, function(er) { - if (er) - throw er - t.pass('cleaned up') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/LICENSE deleted file mode 100644 index ed47678e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Tim Oxley - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/Makefile deleted file mode 100644 index 3a67c57a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/Makefile +++ /dev/null @@ -1,9 +0,0 @@ - -all: columnify.js - -prepublish: all - -columnify.js: index.js package.json - babel index.js > columnify.js - -.PHONY: all prepublish diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/Readme.md deleted file mode 100644 index 4a37928a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/Readme.md +++ /dev/null @@ -1,470 +0,0 @@ -# columnify - -[![NPM](https://nodei.co/npm/columnify.png?downloads=true&downloadRank=true&stars=true&chrome)](https://nodei.co/npm-dl/columnify/) -[![NPM](https://nodei.co/npm-dl/columnify.png?months=3&height=3&chrome)](https://nodei.co/npm/columnify/) - -[![Build Status](https://img.shields.io/travis/timoxley/columnify.svg?style=flat)](https://travis-ci.org/timoxley/columnify) -[![NPM Version](https://img.shields.io/npm/v/columnify.svg?style=flat)](https://npmjs.org/package/columnify) -[![License](http://img.shields.io/npm/l/columnify.svg?style=flat)](LICENSE) -[![Dependency Status](https://david-dm.org/timoxley/columnify.svg)](https://david-dm.org/timoxley/columnify) -[![devDependency Status](https://david-dm.org/timoxley/columnify/dev-status.svg)](https://david-dm.org/timoxley/columnify#info=devDependencies) - -Create text-based columns suitable for console output from objects or -arrays of objects. - -Columns are automatically resized to fit the content of the largest -cell. Each cell will be padded with spaces to fill the available space -and ensure column contents are left-aligned. - -Designed to [handle sensible wrapping in npm search results](https://github.com/isaacs/npm/pull/2328). - -`npm search` before & after integrating columnify: - -![npm-tidy-search](https://f.cloud.github.com/assets/43438/1848959/ae02ad04-76a1-11e3-8255-4781debffc26.gif) - -## Installation & Update - -``` -$ npm install --save columnify@latest -``` - -## Usage - -```javascript -var columnify = require('columnify') -var columns = columnify(data, options) -console.log(columns) -``` - -## Examples - -### Columnify Objects - -Objects are converted to a list of key/value pairs: - -```javascript -var data = { - "commander@0.6.1": 1, - "minimatch@0.2.14": 3, - "mkdirp@0.3.5": 2, - "sigmund@1.0.0": 3 -} - -console.log(columnify(data)) -``` -#### Output: -``` -KEY VALUE -commander@0.6.1 1 -minimatch@0.2.14 3 -mkdirp@0.3.5 2 -sigmund@1.0.0 3 -``` - -### Custom Column Names - -```javascript -var data = { - "commander@0.6.1": 1, - "minimatch@0.2.14": 3, - "mkdirp@0.3.5": 2, - "sigmund@1.0.0": 3 -} - -console.log(columnify(data, {columns: ['MODULE', 'COUNT']})) -``` -#### Output: -``` -MODULE COUNT -commander@0.6.1 1 -minimatch@0.2.14 3 -mkdirp@0.3.5 2 -sigmund@1.0.0 3 -``` - -### Columnify Arrays of Objects - -Column headings are extracted from the keys in supplied objects. - -```javascript -var columnify = require('columnify') - -var columns = columnify([{ - name: 'mod1', - version: '0.0.1' -}, { - name: 'module2', - version: '0.2.0' -}]) - -console.log(columns) -``` -#### Output: -``` -NAME VERSION -mod1 0.0.1 -module2 0.2.0 -``` - -### Filtering & Ordering Columns - -By default, all properties are converted into columns, whether or not -they exist on every object or not. - -To explicitly specify which columns to include, and in which order, -supply a "columns" or "include" array ("include" is just an alias). - -```javascript -var data = [{ - name: 'module1', - description: 'some description', - version: '0.0.1', -}, { - name: 'module2', - description: 'another description', - version: '0.2.0', -}] - -var columns = columnify(data, { - columns: ['name', 'version'] -}) - -console.log(columns) -``` - -#### Output: -``` -NAME VERSION -module1 0.0.1 -module2 0.2.0 -``` - -## Global and Per Column Options -You can set a number of options at a global level (ie. for all columns) or on a per column basis. - -Set options on a per column basis by using the `config` option to specify individual columns: - -```javascript -var columns = columnify(data, { - optionName: optionValue, - config: { - columnName: {optionName: optionValue}, - columnName: {optionName: optionValue}, - } -}) -``` - -### Maximum and Minimum Column Widths -As with all options, you can define the `maxWidth` and `minWidth` globally, or for specified columns. By default, wrapping will happen at word boundaries. Empty cells or those which do not fill the `minWidth` will be padded with spaces. - -```javascript -var columns = columnify([{ - name: 'mod1', - description: 'some description which happens to be far larger than the max', - version: '0.0.1', -}, { - name: 'module-two', - description: 'another description larger than the max', - version: '0.2.0', -}], { - minWidth: 20, - config: { - description: {maxWidth: 30} - } -}) - -console.log(columns) -``` - -#### Output: -``` -NAME DESCRIPTION VERSION -mod1 some description which happens 0.0.1 - to be far larger than the max -module-two another description larger 0.2.0 - than the max -``` - -#### Maximum Line Width - -You can set a hard maximum line width using the `maxLineWidth` option. -Beyond this value data is unceremoniously truncated with no truncation -marker. - -This can either be a number or 'auto' to set the value to the width of -stdout. - -Setting this value to 'auto' prevent TTY-imposed line-wrapping when -lines exceed the screen width. - -#### Truncating Column Cells Instead of Wrapping - -You can disable wrapping and instead truncate content at the maximum -column width by using the `truncate` option. Truncation respects word boundaries. A truncation marker, `…`, will appear next to the last word in any truncated line. - -```javascript -var columns = columnify(data, { - truncate: true, - config: { - description: { - maxWidth: 20 - } - } -}) - -console.log(columns) -``` -#### Output: -``` -NAME DESCRIPTION VERSION -mod1 some description… 0.0.1 -module-two another description… 0.2.0 -``` - - -### Align Right/Center -You can set the alignment of the column data by using the `align` option. - -```js -var data = { - "mocha@1.18.2": 1, - "commander@2.0.0": 1, - "debug@0.8.1": 1 -} - -columnify(data, {config: {value: {align: 'right'}}}) -``` - -#### Output: -``` -KEY VALUE -mocha@1.18.2 1 -commander@2.0.0 1 -debug@0.8.1 1 -``` - -`align: 'center'` works in a similar way. - - -### Padding Character - -Set a character to fill whitespace within columns with the `paddingChr` option. - -```js -var data = { - "shortKey": "veryVeryVeryVeryVeryLongVal", - "veryVeryVeryVeryVeryLongKey": "shortVal" -} - -columnify(data, { paddingChr: '.'}) -``` - -#### Output: -``` -KEY........................ VALUE...................... -shortKey................... veryVeryVeryVeryVeryLongVal -veryVeryVeryVeryVeryLongKey shortVal................... -``` - -### Preserve Existing Newlines - -By default, `columnify` sanitises text by replacing any occurance of 1 or more whitespace characters with a single space. - -`columnify` can be configured to respect existing new line characters using the `preserveNewLines` option. Note this will still collapse all other whitespace. - -```javascript -var data = [{ - name: "glob@3.2.9", - paths: [ - "node_modules/tap/node_modules/glob", - "node_modules/tape/node_modules/glob" - ].join('\n') -}, { - name: "nopt@2.2.1", - paths: [ - "node_modules/tap/node_modules/nopt" - ] -}, { - name: "runforcover@0.0.2", - paths: "node_modules/tap/node_modules/runforcover" -}] - -console.log(columnify(data, {preserveNewLines: true})) -``` -#### Output: -``` -NAME PATHS -glob@3.2.9 node_modules/tap/node_modules/glob - node_modules/tape/node_modules/glob -nopt@2.2.1 node_modules/tap/node_modules/nopt -runforcover@0.0.2 node_modules/tap/node_modules/runforcover -``` - -Compare this with output without `preserveNewLines`: - -```javascript -console.log(columnify(data, {preserveNewLines: false})) -// or just -console.log(columnify(data)) -``` - -``` -NAME PATHS -glob@3.2.9 node_modules/tap/node_modules/glob node_modules/tape/node_modules/glob -nopt@2.2.1 node_modules/tap/node_modules/nopt -runforcover@0.0.2 node_modules/tap/node_modules/runforcover -``` - -### Custom Truncation Marker - -You can change the truncation marker to something other than the default -`…` by using the `truncateMarker` option. - -```javascript -var columns = columnify(data, { - truncate: true, - truncateMarker: '>', - widths: { - description: { - maxWidth: 20 - } - } -}) - -console.log(columns) -``` -#### Output: -``` -NAME DESCRIPTION VERSION -mod1 some description> 0.0.1 -module-two another description> 0.2.0 -``` - -### Custom Column Splitter - -If your columns need some bling, you can split columns with custom -characters by using the `columnSplitter` option. - -```javascript -var columns = columnify(data, { - columnSplitter: ' | ' -}) - -console.log(columns) -``` -#### Output: -``` -NAME | DESCRIPTION | VERSION -mod1 | some description which happens to be far larger than the max | 0.0.1 -module-two | another description larger than the max | 0.2.0 -``` - -### Control Header Display - -Control whether column headers are displayed by using the `showHeaders` option. - -```javascript -var columns = columnify(data, { - showHeaders: false -}) -``` - -This also works well for hiding a single column header, like an `id` column: -```javascript -var columns = columnify(data, { - config: { - id: { showHeaders: false } - } -}) -``` - -### Transforming Column Data and Headers -If you need to modify the presentation of column content or heading content there are two useful options for doing that: `dataTransform` and `headerTransform`. Both of these take a function and need to return a valid string. - -```javascript -var columns = columnify([{ - name: 'mod1', - description: 'SOME DESCRIPTION TEXT.' -}, { - name: 'module-two', - description: 'SOME SLIGHTLY LONGER DESCRIPTION TEXT.' -}], { - dataTransform: function(data) { - return data.toLowerCase() - }, - config: { - name: { - headingTransform: function(heading) { - heading = "module " + heading - return "*" + heading.toUpperCase() + "*" - } - } - } -}) -``` -#### Output: -``` -*MODULE NAME* DESCRIPTION -mod1 some description text. -module-two some slightly longer description text. -``` - - -## Multibyte Character Support - -`columnify` uses [mycoboco/wcwidth.js](https://github.com/mycoboco/wcwidth.js) to calculate length of multibyte characters: - -```javascript -var data = [{ - name: 'module-one', - description: 'some description', - version: '0.0.1', -}, { - name: '这是一个很长的名字的模块', - description: '这真的是一个描述的内容这个描述很长', - version: "0.3.3" -}] - -console.log(columnify(data)) -``` - -#### Without multibyte handling: - -i.e. before columnify added this feature - -``` -NAME DESCRIPTION VERSION -module-one some description 0.0.1 -这是一个很长的名字的模块 这真的是一个描述的内容这个描述很长 0.3.3 -``` - -#### With multibyte handling: - -``` -NAME DESCRIPTION VERSION -module-one some description 0.0.1 -这是一个很长的名字的模块 这真的是一个描述的内容这个描述很长 0.3.3 -``` - -## Contributions - -``` - project : columnify - repo age : 1 year, 2 months - active : 32 days - commits : 120 - files : 54 - authors : - 90 Tim Oxley 75.0% - 8 Tim 6.7% - 7 Arjun Mehta 5.8% - 6 Dany 5.0% - 5 Wei Gao 4.2% - 2 Dany Shaanan 1.7% - 1 Seth Miller 0.8% - 1 Isaac Z. Schlueter 0.8% -``` - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/columnify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/columnify.js deleted file mode 100644 index 334d5509..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/columnify.js +++ /dev/null @@ -1,308 +0,0 @@ -"use strict"; - -var wcwidth = require('./width'); - -var _require = require('./utils'); - -var padRight = _require.padRight; -var padCenter = _require.padCenter; -var padLeft = _require.padLeft; -var splitIntoLines = _require.splitIntoLines; -var splitLongWords = _require.splitLongWords; -var truncateString = _require.truncateString; - -var DEFAULT_HEADING_TRANSFORM = function DEFAULT_HEADING_TRANSFORM(key) { - return key.toUpperCase(); -}; - -var DEFAULT_DATA_TRANSFORM = function DEFAULT_DATA_TRANSFORM(cell, column, index) { - return cell; -}; - -var DEFAULTS = Object.freeze({ - maxWidth: Infinity, - minWidth: 0, - columnSplitter: ' ', - truncate: false, - truncateMarker: '…', - preserveNewLines: false, - paddingChr: ' ', - showHeaders: true, - headingTransform: DEFAULT_HEADING_TRANSFORM, - dataTransform: DEFAULT_DATA_TRANSFORM -}); - -module.exports = function (items) { - var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; - - var columnConfigs = options.config || {}; - delete options.config; // remove config so doesn't appear on every column. - - var maxLineWidth = options.maxLineWidth || Infinity; - if (maxLineWidth === 'auto') maxLineWidth = process.stdout.columns || Infinity; - delete options.maxLineWidth; // this is a line control option, don't pass it to column - - // Option defaults inheritance: - // options.config[columnName] => options => DEFAULTS - options = mixin({}, DEFAULTS, options); - - options.config = options.config || Object.create(null); - - options.spacing = options.spacing || '\n'; // probably useless - options.preserveNewLines = !!options.preserveNewLines; - options.showHeaders = !!options.showHeaders; - options.columns = options.columns || options.include; // alias include/columns, prefer columns if supplied - var columnNames = options.columns || []; // optional user-supplied columns to include - - items = toArray(items, columnNames); - - // if not suppled column names, automatically determine columns from data keys - if (!columnNames.length) { - items.forEach(function (item) { - for (var columnName in item) { - if (columnNames.indexOf(columnName) === -1) columnNames.push(columnName); - } - }); - } - - // initialize column defaults (each column inherits from options.config) - var columns = columnNames.reduce(function (columns, columnName) { - var column = Object.create(options); - columns[columnName] = mixin(column, columnConfigs[columnName]); - return columns; - }, Object.create(null)); - - // sanitize column settings - columnNames.forEach(function (columnName) { - var column = columns[columnName]; - column.name = columnName; - column.maxWidth = Math.ceil(column.maxWidth); - column.minWidth = Math.ceil(column.minWidth); - column.truncate = !!column.truncate; - column.align = column.align || 'left'; - }); - - // sanitize data - items = items.map(function (item) { - var result = Object.create(null); - columnNames.forEach(function (columnName) { - // null/undefined -> '' - result[columnName] = item[columnName] != null ? item[columnName] : ''; - // toString everything - result[columnName] = '' + result[columnName]; - if (columns[columnName].preserveNewLines) { - // merge non-newline whitespace chars - result[columnName] = result[columnName].replace(/[^\S\n]/gmi, ' '); - } else { - // merge all whitespace chars - result[columnName] = result[columnName].replace(/\s/gmi, ' '); - } - }); - return result; - }); - - // transform data cells - columnNames.forEach(function (columnName) { - var column = columns[columnName]; - items = items.map(function (item, index) { - var col = Object.create(column); - item[columnName] = column.dataTransform(item[columnName], col, index); - - var changedKeys = Object.keys(col); - // disable default heading transform if we wrote to column.name - if (changedKeys.indexOf('name') !== -1) { - if (column.headingTransform !== DEFAULT_HEADING_TRANSFORM) return; - column.headingTransform = function (heading) { - return heading; - }; - } - changedKeys.forEach(function (key) { - return column[key] = col[key]; - }); - return item; - }); - }); - - // add headers - var headers = {}; - if (options.showHeaders) { - columnNames.forEach(function (columnName) { - var column = columns[columnName]; - - if (!column.showHeaders) { - headers[columnName] = ''; - return; - } - - headers[columnName] = column.headingTransform(column.name); - }); - items.unshift(headers); - } - // get actual max-width between min & max - // based on length of data in columns - columnNames.forEach(function (columnName) { - var column = columns[columnName]; - column.width = items.map(function (item) { - return item[columnName]; - }).reduce(function (min, cur) { - // if already at maxWidth don't bother testing - if (min >= column.maxWidth) return min; - return Math.max(min, Math.min(column.maxWidth, Math.max(column.minWidth, wcwidth(cur)))); - }, 0); - }); - - // split long words so they can break onto multiple lines - columnNames.forEach(function (columnName) { - var column = columns[columnName]; - items = items.map(function (item) { - item[columnName] = splitLongWords(item[columnName], column.width, column.truncateMarker); - return item; - }); - }); - - // wrap long lines. each item is now an array of lines. - columnNames.forEach(function (columnName) { - var column = columns[columnName]; - items = items.map(function (item, index) { - var cell = item[columnName]; - item[columnName] = splitIntoLines(cell, column.width); - - // if truncating required, only include first line + add truncation char - if (column.truncate && item[columnName].length > 1) { - item[columnName] = splitIntoLines(cell, column.width - wcwidth(column.truncateMarker)); - var firstLine = item[columnName][0]; - if (!endsWith(firstLine, column.truncateMarker)) item[columnName][0] += column.truncateMarker; - item[columnName] = item[columnName].slice(0, 1); - } - return item; - }); - }); - - // recalculate column widths from truncated output/lines - columnNames.forEach(function (columnName) { - var column = columns[columnName]; - column.width = items.map(function (item) { - return item[columnName].reduce(function (min, cur) { - if (min >= column.maxWidth) return min; - return Math.max(min, Math.min(column.maxWidth, Math.max(column.minWidth, wcwidth(cur)))); - }, 0); - }).reduce(function (min, cur) { - if (min >= column.maxWidth) return min; - return Math.max(min, Math.min(column.maxWidth, Math.max(column.minWidth, cur))); - }, 0); - }); - - var rows = createRows(items, columns, columnNames, options.paddingChr); // merge lines into rows - // conceive output - return rows.reduce(function (output, row) { - return output.concat(row.reduce(function (rowOut, line) { - return rowOut.concat(line.join(options.columnSplitter)); - }, [])); - }, []).map(function (line) { - return truncateString(line, maxLineWidth); - }).join(options.spacing); -}; - -/** - * Convert wrapped lines into rows with padded values. - * - * @param Array items data to process - * @param Array columns column width settings for wrapping - * @param Array columnNames column ordering - * @return Array items wrapped in arrays, corresponding to lines - */ - -function createRows(items, columns, columnNames, paddingChr) { - return items.map(function (item) { - var row = []; - var numLines = 0; - columnNames.forEach(function (columnName) { - numLines = Math.max(numLines, item[columnName].length); - }); - // combine matching lines of each rows - - var _loop = function _loop(i) { - row[i] = row[i] || []; - columnNames.forEach(function (columnName) { - var column = columns[columnName]; - var val = item[columnName][i] || ''; // || '' ensures empty columns get padded - if (column.align === 'right') row[i].push(padLeft(val, column.width, paddingChr));else if (column.align === 'center' || column.align === 'centre') row[i].push(padCenter(val, column.width, paddingChr));else row[i].push(padRight(val, column.width, paddingChr)); - }); - }; - - for (var i = 0; i < numLines; i++) { - _loop(i); - } - return row; - }); -} - -/** - * Object.assign - * - * @return Object Object with properties mixed in. - */ - -function mixin() { - var _Object; - - if (Object.assign) return (_Object = Object).assign.apply(_Object, arguments); - return ObjectAssign.apply(undefined, arguments); -} - -function ObjectAssign(target, firstSource) { - "use strict"; - - if (target === undefined || target === null) throw new TypeError("Cannot convert first argument to object"); - - var to = Object(target); - - var hasPendingException = false; - var pendingException; - - for (var i = 1; i < arguments.length; i++) { - var nextSource = arguments[i]; - if (nextSource === undefined || nextSource === null) continue; - - var keysArray = Object.keys(Object(nextSource)); - for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) { - var nextKey = keysArray[nextIndex]; - try { - var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); - if (desc !== undefined && desc.enumerable) to[nextKey] = nextSource[nextKey]; - } catch (e) { - if (!hasPendingException) { - hasPendingException = true; - pendingException = e; - } - } - } - - if (hasPendingException) throw pendingException; - } - return to; -} - -/** - * Adapted from String.prototype.endsWith polyfill. - */ - -function endsWith(target, searchString, position) { - position = position || target.length; - position = position - searchString.length; - var lastIndex = target.lastIndexOf(searchString); - return lastIndex !== -1 && lastIndex === position; -} - -function toArray(items, columnNames) { - if (Array.isArray(items)) return items; - var rows = []; - for (var key in items) { - var item = {}; - item[columnNames[0] || 'key'] = key; - item[columnNames[1] || 'value'] = items[key]; - rows.push(item); - } - return rows; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/index.js deleted file mode 100644 index 221269b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/index.js +++ /dev/null @@ -1,297 +0,0 @@ -"use strict" - -const wcwidth = require('./width') -const { - padRight, - padCenter, - padLeft, - splitIntoLines, - splitLongWords, - truncateString -} = require('./utils') - -const DEFAULT_HEADING_TRANSFORM = key => key.toUpperCase() - -const DEFAULT_DATA_TRANSFORM = (cell, column, index) => cell - -const DEFAULTS = Object.freeze({ - maxWidth: Infinity, - minWidth: 0, - columnSplitter: ' ', - truncate: false, - truncateMarker: '…', - preserveNewLines: false, - paddingChr: ' ', - showHeaders: true, - headingTransform: DEFAULT_HEADING_TRANSFORM, - dataTransform: DEFAULT_DATA_TRANSFORM -}) - -module.exports = function(items, options = {}) { - - let columnConfigs = options.config || {} - delete options.config // remove config so doesn't appear on every column. - - let maxLineWidth = options.maxLineWidth || Infinity - if (maxLineWidth === 'auto') maxLineWidth = process.stdout.columns || Infinity - delete options.maxLineWidth // this is a line control option, don't pass it to column - - // Option defaults inheritance: - // options.config[columnName] => options => DEFAULTS - options = mixin({}, DEFAULTS, options) - - options.config = options.config || Object.create(null) - - options.spacing = options.spacing || '\n' // probably useless - options.preserveNewLines = !!options.preserveNewLines - options.showHeaders = !!options.showHeaders; - options.columns = options.columns || options.include // alias include/columns, prefer columns if supplied - let columnNames = options.columns || [] // optional user-supplied columns to include - - items = toArray(items, columnNames) - - // if not suppled column names, automatically determine columns from data keys - if (!columnNames.length) { - items.forEach(function(item) { - for (let columnName in item) { - if (columnNames.indexOf(columnName) === -1) columnNames.push(columnName) - } - }) - } - - // initialize column defaults (each column inherits from options.config) - let columns = columnNames.reduce((columns, columnName) => { - let column = Object.create(options) - columns[columnName] = mixin(column, columnConfigs[columnName]) - return columns - }, Object.create(null)) - - // sanitize column settings - columnNames.forEach(columnName => { - let column = columns[columnName] - column.name = columnName - column.maxWidth = Math.ceil(column.maxWidth) - column.minWidth = Math.ceil(column.minWidth) - column.truncate = !!column.truncate - column.align = column.align || 'left' - }) - - // sanitize data - items = items.map(item => { - let result = Object.create(null) - columnNames.forEach(columnName => { - // null/undefined -> '' - result[columnName] = item[columnName] != null ? item[columnName] : '' - // toString everything - result[columnName] = '' + result[columnName] - if (columns[columnName].preserveNewLines) { - // merge non-newline whitespace chars - result[columnName] = result[columnName].replace(/[^\S\n]/gmi, ' ') - } else { - // merge all whitespace chars - result[columnName] = result[columnName].replace(/\s/gmi, ' ') - } - }) - return result - }) - - // transform data cells - columnNames.forEach(columnName => { - let column = columns[columnName] - items = items.map((item, index) => { - let col = Object.create(column) - item[columnName] = column.dataTransform(item[columnName], col, index) - - let changedKeys = Object.keys(col) - // disable default heading transform if we wrote to column.name - if (changedKeys.indexOf('name') !== -1) { - if (column.headingTransform !== DEFAULT_HEADING_TRANSFORM) return - column.headingTransform = heading => heading - } - changedKeys.forEach(key => column[key] = col[key]) - return item - }) - }) - - // add headers - let headers = {} - if(options.showHeaders) { - columnNames.forEach(columnName => { - let column = columns[columnName] - - if(!column.showHeaders){ - headers[columnName] = ''; - return; - } - - headers[columnName] = column.headingTransform(column.name) - }) - items.unshift(headers) - } - // get actual max-width between min & max - // based on length of data in columns - columnNames.forEach(columnName => { - let column = columns[columnName] - column.width = items - .map(item => item[columnName]) - .reduce((min, cur) => { - // if already at maxWidth don't bother testing - if (min >= column.maxWidth) return min - return Math.max(min, Math.min(column.maxWidth, Math.max(column.minWidth, wcwidth(cur)))) - }, 0) - }) - - // split long words so they can break onto multiple lines - columnNames.forEach(columnName => { - let column = columns[columnName] - items = items.map(item => { - item[columnName] = splitLongWords(item[columnName], column.width, column.truncateMarker) - return item - }) - }) - - // wrap long lines. each item is now an array of lines. - columnNames.forEach(columnName => { - let column = columns[columnName] - items = items.map((item, index) => { - let cell = item[columnName] - item[columnName] = splitIntoLines(cell, column.width) - - // if truncating required, only include first line + add truncation char - if (column.truncate && item[columnName].length > 1) { - item[columnName] = splitIntoLines(cell, column.width - wcwidth(column.truncateMarker)) - let firstLine = item[columnName][0] - if (!endsWith(firstLine, column.truncateMarker)) item[columnName][0] += column.truncateMarker - item[columnName] = item[columnName].slice(0, 1) - } - return item - }) - }) - - // recalculate column widths from truncated output/lines - columnNames.forEach(columnName => { - let column = columns[columnName] - column.width = items.map(item => { - return item[columnName].reduce((min, cur) => { - if (min >= column.maxWidth) return min - return Math.max(min, Math.min(column.maxWidth, Math.max(column.minWidth, wcwidth(cur)))) - }, 0) - }).reduce((min, cur) => { - if (min >= column.maxWidth) return min - return Math.max(min, Math.min(column.maxWidth, Math.max(column.minWidth, cur))) - }, 0) - }) - - - let rows = createRows(items, columns, columnNames, options.paddingChr) // merge lines into rows - // conceive output - return rows.reduce((output, row) => { - return output.concat(row.reduce((rowOut, line) => { - return rowOut.concat(line.join(options.columnSplitter)) - }, [])) - }, []) - .map(line => truncateString(line, maxLineWidth)) - .join(options.spacing) -} - -/** - * Convert wrapped lines into rows with padded values. - * - * @param Array items data to process - * @param Array columns column width settings for wrapping - * @param Array columnNames column ordering - * @return Array items wrapped in arrays, corresponding to lines - */ - -function createRows(items, columns, columnNames, paddingChr) { - return items.map(item => { - let row = [] - let numLines = 0 - columnNames.forEach(columnName => { - numLines = Math.max(numLines, item[columnName].length) - }) - // combine matching lines of each rows - for (let i = 0; i < numLines; i++) { - row[i] = row[i] || [] - columnNames.forEach(columnName => { - let column = columns[columnName] - let val = item[columnName][i] || '' // || '' ensures empty columns get padded - if (column.align === 'right') row[i].push(padLeft(val, column.width, paddingChr)) - else if (column.align === 'center' || column.align === 'centre') row[i].push(padCenter(val, column.width, paddingChr)) - else row[i].push(padRight(val, column.width, paddingChr)) - }) - } - return row - }) -} - -/** - * Object.assign - * - * @return Object Object with properties mixed in. - */ - -function mixin(...args) { - if (Object.assign) return Object.assign(...args) - return ObjectAssign(...args) -} - -function ObjectAssign(target, firstSource) { - "use strict"; - if (target === undefined || target === null) - throw new TypeError("Cannot convert first argument to object"); - - var to = Object(target); - - var hasPendingException = false; - var pendingException; - - for (var i = 1; i < arguments.length; i++) { - var nextSource = arguments[i]; - if (nextSource === undefined || nextSource === null) - continue; - - var keysArray = Object.keys(Object(nextSource)); - for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) { - var nextKey = keysArray[nextIndex]; - try { - var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); - if (desc !== undefined && desc.enumerable) - to[nextKey] = nextSource[nextKey]; - } catch (e) { - if (!hasPendingException) { - hasPendingException = true; - pendingException = e; - } - } - } - - if (hasPendingException) - throw pendingException; - } - return to; -} - -/** - * Adapted from String.prototype.endsWith polyfill. - */ - -function endsWith(target, searchString, position) { - position = position || target.length; - position = position - searchString.length; - let lastIndex = target.lastIndexOf(searchString); - return lastIndex !== -1 && lastIndex === position; -} - - -function toArray(items, columnNames) { - if (Array.isArray(items)) return items - let rows = [] - for (let key in items) { - let item = {} - item[columnNames[0] || 'key'] = key - item[columnNames[1] || 'value'] = items[key] - rows.push(item) - } - return rows -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/LICENSE deleted file mode 100644 index 313ef1e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/LICENSE +++ /dev/null @@ -1,30 +0,0 @@ -wcwidth.js: JavaScript Portng of Markus Kuhn's wcwidth() Implementation -======================================================================= - -Copyright (C) 2012 by Jun Woong. - -This package is a JavaScript porting of `wcwidth()` implementation -[by Markus Kuhn](http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c). - -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. - - -THIS SOFTWARE IS PROVIDED ``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 AUTHOR -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/Readme.md deleted file mode 100644 index 0649a319..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/Readme.md +++ /dev/null @@ -1,33 +0,0 @@ -# wcwidth - -Determine columns needed for a fixed-size wide-character string - ----- - -wcwidth is a simple JavaScript port of [wcwidth](http://man7.org/linux/man-pages/man3/wcswidth.3.html) implemented in C by Markus Kuhn. - -JavaScript port [originally](https://github.com/mycoboco/wcwidth.js) written by Woong Jun (http://code.woong.org/) - -## Example - -```js -'한'.length // => 1 -wcwidth('한'); // => 2 - -'한글'.length // => 2 -wcwidth('한글'); // => 4 -``` - -`wcwidth()` and its string version, `wcswidth()` are defined by IEEE Std -1002.1-2001, a.k.a. POSIX.1-2001, and return the number of columns used -to represent the given wide character and string. - -Markus's implementation assumes the wide character given to those -functions to be encoded in ISO 10646, which is almost true for -JavaScript's characters. - -[Further explaination here](docs) - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/combining.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/combining.js deleted file mode 100644 index dac9789d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/combining.js +++ /dev/null @@ -1,50 +0,0 @@ -module.exports = [ - [ 0x0300, 0x036F ], [ 0x0483, 0x0486 ], [ 0x0488, 0x0489 ], - [ 0x0591, 0x05BD ], [ 0x05BF, 0x05BF ], [ 0x05C1, 0x05C2 ], - [ 0x05C4, 0x05C5 ], [ 0x05C7, 0x05C7 ], [ 0x0600, 0x0603 ], - [ 0x0610, 0x0615 ], [ 0x064B, 0x065E ], [ 0x0670, 0x0670 ], - [ 0x06D6, 0x06E4 ], [ 0x06E7, 0x06E8 ], [ 0x06EA, 0x06ED ], - [ 0x070F, 0x070F ], [ 0x0711, 0x0711 ], [ 0x0730, 0x074A ], - [ 0x07A6, 0x07B0 ], [ 0x07EB, 0x07F3 ], [ 0x0901, 0x0902 ], - [ 0x093C, 0x093C ], [ 0x0941, 0x0948 ], [ 0x094D, 0x094D ], - [ 0x0951, 0x0954 ], [ 0x0962, 0x0963 ], [ 0x0981, 0x0981 ], - [ 0x09BC, 0x09BC ], [ 0x09C1, 0x09C4 ], [ 0x09CD, 0x09CD ], - [ 0x09E2, 0x09E3 ], [ 0x0A01, 0x0A02 ], [ 0x0A3C, 0x0A3C ], - [ 0x0A41, 0x0A42 ], [ 0x0A47, 0x0A48 ], [ 0x0A4B, 0x0A4D ], - [ 0x0A70, 0x0A71 ], [ 0x0A81, 0x0A82 ], [ 0x0ABC, 0x0ABC ], - [ 0x0AC1, 0x0AC5 ], [ 0x0AC7, 0x0AC8 ], [ 0x0ACD, 0x0ACD ], - [ 0x0AE2, 0x0AE3 ], [ 0x0B01, 0x0B01 ], [ 0x0B3C, 0x0B3C ], - [ 0x0B3F, 0x0B3F ], [ 0x0B41, 0x0B43 ], [ 0x0B4D, 0x0B4D ], - [ 0x0B56, 0x0B56 ], [ 0x0B82, 0x0B82 ], [ 0x0BC0, 0x0BC0 ], - [ 0x0BCD, 0x0BCD ], [ 0x0C3E, 0x0C40 ], [ 0x0C46, 0x0C48 ], - [ 0x0C4A, 0x0C4D ], [ 0x0C55, 0x0C56 ], [ 0x0CBC, 0x0CBC ], - [ 0x0CBF, 0x0CBF ], [ 0x0CC6, 0x0CC6 ], [ 0x0CCC, 0x0CCD ], - [ 0x0CE2, 0x0CE3 ], [ 0x0D41, 0x0D43 ], [ 0x0D4D, 0x0D4D ], - [ 0x0DCA, 0x0DCA ], [ 0x0DD2, 0x0DD4 ], [ 0x0DD6, 0x0DD6 ], - [ 0x0E31, 0x0E31 ], [ 0x0E34, 0x0E3A ], [ 0x0E47, 0x0E4E ], - [ 0x0EB1, 0x0EB1 ], [ 0x0EB4, 0x0EB9 ], [ 0x0EBB, 0x0EBC ], - [ 0x0EC8, 0x0ECD ], [ 0x0F18, 0x0F19 ], [ 0x0F35, 0x0F35 ], - [ 0x0F37, 0x0F37 ], [ 0x0F39, 0x0F39 ], [ 0x0F71, 0x0F7E ], - [ 0x0F80, 0x0F84 ], [ 0x0F86, 0x0F87 ], [ 0x0F90, 0x0F97 ], - [ 0x0F99, 0x0FBC ], [ 0x0FC6, 0x0FC6 ], [ 0x102D, 0x1030 ], - [ 0x1032, 0x1032 ], [ 0x1036, 0x1037 ], [ 0x1039, 0x1039 ], - [ 0x1058, 0x1059 ], [ 0x1160, 0x11FF ], [ 0x135F, 0x135F ], - [ 0x1712, 0x1714 ], [ 0x1732, 0x1734 ], [ 0x1752, 0x1753 ], - [ 0x1772, 0x1773 ], [ 0x17B4, 0x17B5 ], [ 0x17B7, 0x17BD ], - [ 0x17C6, 0x17C6 ], [ 0x17C9, 0x17D3 ], [ 0x17DD, 0x17DD ], - [ 0x180B, 0x180D ], [ 0x18A9, 0x18A9 ], [ 0x1920, 0x1922 ], - [ 0x1927, 0x1928 ], [ 0x1932, 0x1932 ], [ 0x1939, 0x193B ], - [ 0x1A17, 0x1A18 ], [ 0x1B00, 0x1B03 ], [ 0x1B34, 0x1B34 ], - [ 0x1B36, 0x1B3A ], [ 0x1B3C, 0x1B3C ], [ 0x1B42, 0x1B42 ], - [ 0x1B6B, 0x1B73 ], [ 0x1DC0, 0x1DCA ], [ 0x1DFE, 0x1DFF ], - [ 0x200B, 0x200F ], [ 0x202A, 0x202E ], [ 0x2060, 0x2063 ], - [ 0x206A, 0x206F ], [ 0x20D0, 0x20EF ], [ 0x302A, 0x302F ], - [ 0x3099, 0x309A ], [ 0xA806, 0xA806 ], [ 0xA80B, 0xA80B ], - [ 0xA825, 0xA826 ], [ 0xFB1E, 0xFB1E ], [ 0xFE00, 0xFE0F ], - [ 0xFE20, 0xFE23 ], [ 0xFEFF, 0xFEFF ], [ 0xFFF9, 0xFFFB ], - [ 0x10A01, 0x10A03 ], [ 0x10A05, 0x10A06 ], [ 0x10A0C, 0x10A0F ], - [ 0x10A38, 0x10A3A ], [ 0x10A3F, 0x10A3F ], [ 0x1D167, 0x1D169 ], - [ 0x1D173, 0x1D182 ], [ 0x1D185, 0x1D18B ], [ 0x1D1AA, 0x1D1AD ], - [ 0x1D242, 0x1D244 ], [ 0xE0001, 0xE0001 ], [ 0xE0020, 0xE007F ], - [ 0xE0100, 0xE01EF ] -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/docs/index.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/docs/index.md deleted file mode 100644 index 5c5126d0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/docs/index.md +++ /dev/null @@ -1,65 +0,0 @@ -### Javascript porting of Markus Kuhn's wcwidth() implementation - -The following explanation comes from the original C implementation: - -This is an implementation of wcwidth() and wcswidth() (defined in -IEEE Std 1002.1-2001) for Unicode. - -http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html -http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html - -In fixed-width output devices, Latin characters all occupy a single -"cell" position of equal width, whereas ideographic CJK characters -occupy two such cells. Interoperability between terminal-line -applications and (teletype-style) character terminals using the -UTF-8 encoding requires agreement on which character should advance -the cursor by how many cell positions. No established formal -standards exist at present on which Unicode character shall occupy -how many cell positions on character terminals. These routines are -a first attempt of defining such behavior based on simple rules -applied to data provided by the Unicode Consortium. - -For some graphical characters, the Unicode standard explicitly -defines a character-cell width via the definition of the East Asian -FullWidth (F), Wide (W), Half-width (H), and Narrow (Na) classes. -In all these cases, there is no ambiguity about which width a -terminal shall use. For characters in the East Asian Ambiguous (A) -class, the width choice depends purely on a preference of backward -compatibility with either historic CJK or Western practice. -Choosing single-width for these characters is easy to justify as -the appropriate long-term solution, as the CJK practice of -displaying these characters as double-width comes from historic -implementation simplicity (8-bit encoded characters were displayed -single-width and 16-bit ones double-width, even for Greek, -Cyrillic, etc.) and not any typographic considerations. - -Much less clear is the choice of width for the Not East Asian -(Neutral) class. Existing practice does not dictate a width for any -of these characters. It would nevertheless make sense -typographically to allocate two character cells to characters such -as for instance EM SPACE or VOLUME INTEGRAL, which cannot be -represented adequately with a single-width glyph. The following -routines at present merely assign a single-cell width to all -neutral characters, in the interest of simplicity. This is not -entirely satisfactory and should be reconsidered before -establishing a formal standard in this area. At the moment, the -decision which Not East Asian (Neutral) characters should be -represented by double-width glyphs cannot yet be answered by -applying a simple rule from the Unicode database content. Setting -up a proper standard for the behavior of UTF-8 character terminals -will require a careful analysis not only of each Unicode character, -but also of each presentation form, something the author of these -routines has avoided to do so far. - -http://www.unicode.org/unicode/reports/tr11/ - -Markus Kuhn -- 2007-05-26 (Unicode 5.0) - -Permission to use, copy, modify, and distribute this software -for any purpose and without fee is hereby granted. The author -disclaims all warranties with regard to this software. - -Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/index.js deleted file mode 100644 index 48cbb602..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/index.js +++ /dev/null @@ -1,99 +0,0 @@ -"use strict" - -var defaults = require('defaults') -var combining = require('./combining') - -var DEFAULTS = { - nul: 0, - control: 0 -} - -module.exports = function wcwidth(str) { - return wcswidth(str, DEFAULTS) -} - -module.exports.config = function(opts) { - opts = defaults(opts || {}, DEFAULTS) - return function wcwidth(str) { - return wcswidth(str, opts) - } -} - -/* - * The following functions define the column width of an ISO 10646 - * character as follows: - * - The null character (U+0000) has a column width of 0. - * - Other C0/C1 control characters and DEL will lead to a return value - * of -1. - * - Non-spacing and enclosing combining characters (general category - * code Mn or Me in the - * Unicode database) have a column width of 0. - * - SOFT HYPHEN (U+00AD) has a column width of 1. - * - Other format characters (general category code Cf in the Unicode - * database) and ZERO WIDTH - * SPACE (U+200B) have a column width of 0. - * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF) - * have a column width of 0. - * - Spacing characters in the East Asian Wide (W) or East Asian - * Full-width (F) category as - * defined in Unicode Technical Report #11 have a column width of 2. - * - All remaining characters (including all printable ISO 8859-1 and - * WGL4 characters, Unicode control characters, etc.) have a column - * width of 1. - * This implementation assumes that characters are encoded in ISO 10646. -*/ - -function wcswidth(str, opts) { - if (typeof str !== 'string') return wcwidth(str, opts) - - var s = 0 - for (var i = 0; i < str.length; i++) { - var n = wcwidth(str.charCodeAt(i), opts) - if (n < 0) return -1 - s += n - } - - return s -} - -function wcwidth(ucs, opts) { - // test for 8-bit control characters - if (ucs === 0) return opts.nul - if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) return opts.control - - // binary search in table of non-spacing characters - if (bisearch(ucs)) return 0 - - // if we arrive here, ucs is not a combining or C0/C1 control character - return 1 + - (ucs >= 0x1100 && - (ucs <= 0x115f || // Hangul Jamo init. consonants - ucs == 0x2329 || ucs == 0x232a || - (ucs >= 0x2e80 && ucs <= 0xa4cf && - ucs != 0x303f) || // CJK ... Yi - (ucs >= 0xac00 && ucs <= 0xd7a3) || // Hangul Syllables - (ucs >= 0xf900 && ucs <= 0xfaff) || // CJK Compatibility Ideographs - (ucs >= 0xfe10 && ucs <= 0xfe19) || // Vertical forms - (ucs >= 0xfe30 && ucs <= 0xfe6f) || // CJK Compatibility Forms - (ucs >= 0xff00 && ucs <= 0xff60) || // Fullwidth Forms - (ucs >= 0xffe0 && ucs <= 0xffe6) || - (ucs >= 0x20000 && ucs <= 0x2fffd) || - (ucs >= 0x30000 && ucs <= 0x3fffd))); -} - -function bisearch(ucs) { - var min = 0 - var max = combining.length - 1 - var mid - - if (ucs < combining[0][0] || ucs > combining[max][1]) return false - - while (max >= min) { - mid = Math.floor((min + max) / 2) - if (ucs > combining[mid][1]) min = mid + 1 - else if (ucs < combining[mid][0]) max = mid - 1 - else return true - } - - return false -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE deleted file mode 100644 index d88b0720..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Elijah Insua - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md deleted file mode 100644 index 1a4a2ea9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# defaults - -A simple one level options merge utility - -## install - -`npm install defaults` - -## use - -```javascript - -var defaults = require('defaults'); - -var handle = function(options, fn) { - options = defaults(options, { - timeout: 100 - }); - - setTimeout(function() { - fn(options); - }, options.timeout); -} - -handle({ timeout: 1000 }, function() { - // we're here 1000 ms later -}); - -handle({ timeout: 10000 }, function() { - // we're here 10s later -}); - -``` - -## summary - -this module exports a function that takes 2 arguments: `options` and `defaults`. When called, it overrides all of `undefined` properties in `options` with the clones of properties defined in `defaults` - -Sidecases: if called with a falsy `options` value, options will be initialized to a new object before being merged onto. - -## license - -[MIT](LICENSE) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js deleted file mode 100644 index cb7d75c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js +++ /dev/null @@ -1,13 +0,0 @@ -var clone = require('clone'); - -module.exports = function(options, defaults) { - options = options || {}; - - Object.keys(defaults).forEach(function(key) { - if (typeof options[key] === 'undefined') { - options[key] = clone(defaults[key]); - } - }); - - return options; -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore deleted file mode 100644 index c2658d7d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml deleted file mode 100644 index 20fd86b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - 0.10 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE deleted file mode 100644 index cc3c87bc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Copyright © 2011-2015 Paul Vorbach - -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, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md deleted file mode 100644 index 0b6cecae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md +++ /dev/null @@ -1,126 +0,0 @@ -# clone - -[![build status](https://secure.travis-ci.org/pvorb/node-clone.png)](http://travis-ci.org/pvorb/node-clone) - -[![info badge](https://nodei.co/npm/clone.png?downloads=true&downloadRank=true&stars=true)](http://npm-stat.com/charts.html?package=clone) - -offers foolproof _deep cloning_ of objects, arrays, numbers, strings etc. in JavaScript. - - -## Installation - - npm install clone - -(It also works with browserify, ender or standalone.) - - -## Example - -~~~ javascript -var clone = require('clone'); - -var a, b; - -a = { foo: { bar: 'baz' } }; // initial value of a - -b = clone(a); // clone a -> b -a.foo.bar = 'foo'; // change a - -console.log(a); // show a -console.log(b); // show b -~~~ - -This will print: - -~~~ javascript -{ foo: { bar: 'foo' } } -{ foo: { bar: 'baz' } } -~~~ - -**clone** masters cloning simple objects (even with custom prototype), arrays, -Date objects, and RegExp objects. Everything is cloned recursively, so that you -can clone dates in arrays in objects, for example. - - -## API - -`clone(val, circular, depth)` - - * `val` -- the value that you want to clone, any type allowed - * `circular` -- boolean - - Call `clone` with `circular` set to `false` if you are certain that `obj` - contains no circular references. This will give better performance if needed. - There is no error if `undefined` or `null` is passed as `obj`. - * `depth` -- depth to which the object is to be cloned (optional, - defaults to infinity) - -`clone.clonePrototype(obj)` - - * `obj` -- the object that you want to clone - -Does a prototype clone as -[described by Oran Looney](http://oranlooney.com/functional-javascript/). - - -## Circular References - -~~~ javascript -var a, b; - -a = { hello: 'world' }; - -a.myself = a; -b = clone(a); - -console.log(b); -~~~ - -This will print: - -~~~ javascript -{ hello: "world", myself: [Circular] } -~~~ - -So, `b.myself` points to `b`, not `a`. Neat! - - -## Test - - npm test - - -## Caveat - -Some special objects like a socket or `process.stdout`/`stderr` are known to not -be cloneable. If you find other objects that cannot be cloned, please [open an -issue](https://github.com/pvorb/node-clone/issues/new). - - -## Bugs and Issues - -If you encounter any bugs or issues, feel free to [open an issue at -github](https://github.com/pvorb/node-clone/issues) or send me an email to -. I also always like to hear from you, if you’re using my code. - -## License - -Copyright © 2011-2015 [Paul Vorbach](http://paul.vorba.ch/) and -[contributors](https://github.com/pvorb/node-clone/graphs/contributors). - -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, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js deleted file mode 100644 index 62637592..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js +++ /dev/null @@ -1,160 +0,0 @@ -var clone = (function() { -'use strict'; - -/** - * Clones (copies) an Object using deep copying. - * - * This function supports circular references by default, but if you are certain - * there are no circular references in your object, you can save some CPU time - * by calling clone(obj, false). - * - * Caution: if `circular` is false and `parent` contains circular references, - * your program may enter an infinite loop and crash. - * - * @param `parent` - the object to be cloned - * @param `circular` - set to true if the object to be cloned may contain - * circular references. (optional - true by default) - * @param `depth` - set to a number if the object is only to be cloned to - * a particular depth. (optional - defaults to Infinity) - * @param `prototype` - sets the prototype to be used when cloning an object. - * (optional - defaults to parent prototype). -*/ -function clone(parent, circular, depth, prototype) { - var filter; - if (typeof circular === 'object') { - depth = circular.depth; - prototype = circular.prototype; - filter = circular.filter; - circular = circular.circular - } - // maintain two arrays for circular references, where corresponding parents - // and children have the same index - var allParents = []; - var allChildren = []; - - var useBuffer = typeof Buffer != 'undefined'; - - if (typeof circular == 'undefined') - circular = true; - - if (typeof depth == 'undefined') - depth = Infinity; - - // recurse this function so we don't reset allParents and allChildren - function _clone(parent, depth) { - // cloning null always returns null - if (parent === null) - return null; - - if (depth == 0) - return parent; - - var child; - var proto; - if (typeof parent != 'object') { - return parent; - } - - if (clone.__isArray(parent)) { - child = []; - } else if (clone.__isRegExp(parent)) { - child = new RegExp(parent.source, __getRegExpFlags(parent)); - if (parent.lastIndex) child.lastIndex = parent.lastIndex; - } else if (clone.__isDate(parent)) { - child = new Date(parent.getTime()); - } else if (useBuffer && Buffer.isBuffer(parent)) { - child = new Buffer(parent.length); - parent.copy(child); - return child; - } else { - if (typeof prototype == 'undefined') { - proto = Object.getPrototypeOf(parent); - child = Object.create(proto); - } - else { - child = Object.create(prototype); - proto = prototype; - } - } - - if (circular) { - var index = allParents.indexOf(parent); - - if (index != -1) { - return allChildren[index]; - } - allParents.push(parent); - allChildren.push(child); - } - - for (var i in parent) { - var attrs; - if (proto) { - attrs = Object.getOwnPropertyDescriptor(proto, i); - } - - if (attrs && attrs.set == null) { - continue; - } - child[i] = _clone(parent[i], depth - 1); - } - - return child; - } - - return _clone(parent, depth); -} - -/** - * Simple flat clone using prototype, accepts only objects, usefull for property - * override on FLAT configuration object (no nested props). - * - * USE WITH CAUTION! This may not behave as you wish if you do not know how this - * works. - */ -clone.clonePrototype = function clonePrototype(parent) { - if (parent === null) - return null; - - var c = function () {}; - c.prototype = parent; - return new c(); -}; - -// private utility functions - -function __objToStr(o) { - return Object.prototype.toString.call(o); -}; -clone.__objToStr = __objToStr; - -function __isDate(o) { - return typeof o === 'object' && __objToStr(o) === '[object Date]'; -}; -clone.__isDate = __isDate; - -function __isArray(o) { - return typeof o === 'object' && __objToStr(o) === '[object Array]'; -}; -clone.__isArray = __isArray; - -function __isRegExp(o) { - return typeof o === 'object' && __objToStr(o) === '[object RegExp]'; -}; -clone.__isRegExp = __isRegExp; - -function __getRegExpFlags(re) { - var flags = ''; - if (re.global) flags += 'g'; - if (re.ignoreCase) flags += 'i'; - if (re.multiline) flags += 'm'; - return flags; -}; -clone.__getRegExpFlags = __getRegExpFlags; - -return clone; -})(); - -if (typeof module === 'object' && module.exports) { - module.exports = clone; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json deleted file mode 100644 index d401747f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "name": "clone", - "description": "deep cloning of objects and arrays", - "tags": [ - "clone", - "object", - "array", - "function", - "date" - ], - "version": "1.0.2", - "repository": { - "type": "git", - "url": "git://github.com/pvorb/node-clone.git" - }, - "bugs": { - "url": "https://github.com/pvorb/node-clone/issues" - }, - "main": "clone.js", - "author": { - "name": "Paul Vorbach", - "email": "paul@vorba.ch", - "url": "http://paul.vorba.ch/" - }, - "contributors": [ - { - "name": "Blake Miner", - "email": "miner.blake@gmail.com", - "url": "http://www.blakeminer.com/" - }, - { - "name": "Tian You", - "email": "axqd001@gmail.com", - "url": "http://blog.axqd.net/" - }, - { - "name": "George Stagas", - "email": "gstagas@gmail.com", - "url": "http://stagas.com/" - }, - { - "name": "Tobiasz Cudnik", - "email": "tobiasz.cudnik@gmail.com", - "url": "https://github.com/TobiaszCudnik" - }, - { - "name": "Pavel Lang", - "email": "langpavel@phpskelet.org", - "url": "https://github.com/langpavel" - }, - { - "name": "Dan MacTough", - "url": "http://yabfog.com/" - }, - { - "name": "w1nk", - "url": "https://github.com/w1nk" - }, - { - "name": "Hugh Kennedy", - "url": "http://twitter.com/hughskennedy" - }, - { - "name": "Dustin Diaz", - "url": "http://dustindiaz.com" - }, - { - "name": "Ilya Shaisultanov", - "url": "https://github.com/diversario" - }, - { - "name": "Nathan MacInnes", - "email": "nathan@macinn.es", - "url": "http://macinn.es/" - }, - { - "name": "Benjamin E. Coe", - "email": "ben@npmjs.com", - "url": "https://twitter.com/benjamincoe" - }, - { - "name": "Nathan Zadoks", - "url": "https://github.com/nathan7" - }, - { - "name": "Róbert Oroszi", - "email": "robert+gh@oroszi.net", - "url": "https://github.com/oroce" - }, - { - "name": "Aurélio A. Heckert", - "url": "http://softwarelivre.org/aurium" - }, - { - "name": "Guy Ellis", - "url": "http://www.guyellisrocks.com/" - } - ], - "license": "MIT", - "engines": { - "node": ">=0.8" - }, - "dependencies": {}, - "devDependencies": { - "nodeunit": "~0.9.0" - }, - "optionalDependencies": {}, - "scripts": { - "test": "nodeunit test.js" - }, - "readme": "# clone\n\n[![build status](https://secure.travis-ci.org/pvorb/node-clone.png)](http://travis-ci.org/pvorb/node-clone)\n\n[![info badge](https://nodei.co/npm/clone.png?downloads=true&downloadRank=true&stars=true)](http://npm-stat.com/charts.html?package=clone)\n\noffers foolproof _deep cloning_ of objects, arrays, numbers, strings etc. in JavaScript.\n\n\n## Installation\n\n npm install clone\n\n(It also works with browserify, ender or standalone.)\n\n\n## Example\n\n~~~ javascript\nvar clone = require('clone');\n\nvar a, b;\n\na = { foo: { bar: 'baz' } }; // initial value of a\n\nb = clone(a); // clone a -> b\na.foo.bar = 'foo'; // change a\n\nconsole.log(a); // show a\nconsole.log(b); // show b\n~~~\n\nThis will print:\n\n~~~ javascript\n{ foo: { bar: 'foo' } }\n{ foo: { bar: 'baz' } }\n~~~\n\n**clone** masters cloning simple objects (even with custom prototype), arrays,\nDate objects, and RegExp objects. Everything is cloned recursively, so that you\ncan clone dates in arrays in objects, for example.\n\n\n## API\n\n`clone(val, circular, depth)`\n\n * `val` -- the value that you want to clone, any type allowed\n * `circular` -- boolean\n\n Call `clone` with `circular` set to `false` if you are certain that `obj`\n contains no circular references. This will give better performance if needed.\n There is no error if `undefined` or `null` is passed as `obj`.\n * `depth` -- depth to which the object is to be cloned (optional,\n defaults to infinity)\n\n`clone.clonePrototype(obj)`\n\n * `obj` -- the object that you want to clone\n\nDoes a prototype clone as\n[described by Oran Looney](http://oranlooney.com/functional-javascript/).\n\n\n## Circular References\n\n~~~ javascript\nvar a, b;\n\na = { hello: 'world' };\n\na.myself = a;\nb = clone(a);\n\nconsole.log(b);\n~~~\n\nThis will print:\n\n~~~ javascript\n{ hello: \"world\", myself: [Circular] }\n~~~\n\nSo, `b.myself` points to `b`, not `a`. Neat!\n\n\n## Test\n\n npm test\n\n\n## Caveat\n\nSome special objects like a socket or `process.stdout`/`stderr` are known to not\nbe cloneable. If you find other objects that cannot be cloned, please [open an\nissue](https://github.com/pvorb/node-clone/issues/new).\n\n\n## Bugs and Issues\n\nIf you encounter any bugs or issues, feel free to [open an issue at\ngithub](https://github.com/pvorb/node-clone/issues) or send me an email to\n. I also always like to hear from you, if you’re using my code.\n\n## License\n\nCopyright © 2011-2015 [Paul Vorbach](http://paul.vorba.ch/) and\n[contributors](https://github.com/pvorb/node-clone/graphs/contributors).\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the “Software”), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", - "readmeFilename": "README.md", - "homepage": "https://github.com/pvorb/node-clone#readme", - "_id": "clone@1.0.2", - "_shasum": "260b7a99ebb1edfe247538175f783243cb19d149", - "_resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "_from": "clone@>=1.0.2 <2.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test-apart-ctx.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test-apart-ctx.html deleted file mode 100644 index 4d532bb7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test-apart-ctx.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - Clone Test-Suite (Browser) - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.html deleted file mode 100644 index a9557025..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - Clone Test-Suite (Browser) - - - - - -

          Clone Test-Suite (Browser)

          - Tests started: ; - Tests finished: . -
            - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js deleted file mode 100644 index e8b65b3f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js +++ /dev/null @@ -1,372 +0,0 @@ -var clone = require('./'); - -function inspect(obj) { - seen = []; - return JSON.stringify(obj, function (key, val) { - if (val != null && typeof val == "object") { - if (seen.indexOf(val) >= 0) { - return '[cyclic]'; - } - - seen.push(val); - } - - return val; - }); -} - -// Creates a new VM in node, or an iframe in a browser in order to run the -// script -function apartContext(context, script, callback) { - var vm = require('vm'); - - if (vm) { - var ctx = vm.createContext({ ctx: context }); - callback(vm.runInContext(script, ctx)); - } else if (document && document.createElement) { - var iframe = document.createElement('iframe'); - iframe.style.display = 'none'; - document.body.appendChild(iframe); - - var myCtxId = 'tmpCtx' + Math.random(); - - window[myCtxId] = context; - iframe.src = 'test-apart-ctx.html?' + myCtxId + '&' + encodeURIComponent(script); - iframe.onload = function() { - try { - callback(iframe.contentWindow.results); - } catch (e) { - throw e; - } - }; - } else { - console.log('WARNING: cannot create an apart context.'); - } -} - -exports["clone string"] = function (test) { - test.expect(2); // how many tests? - - var a = "foo"; - test.strictEqual(clone(a), a); - a = ""; - test.strictEqual(clone(a), a); - - test.done(); -}; - -exports["clone number"] = function (test) { - test.expect(5); // how many tests? - - var a = 0; - test.strictEqual(clone(a), a); - a = 1; - test.strictEqual(clone(a), a); - a = -1000; - test.strictEqual(clone(a), a); - a = 3.1415927; - test.strictEqual(clone(a), a); - a = -3.1415927; - test.strictEqual(clone(a), a); - - test.done(); -}; - -exports["clone date"] = function (test) { - test.expect(3); // how many tests? - - var a = new Date; - var c = clone(a); - test.ok(!!a.getUTCDate && !!a.toUTCString); - test.ok(!!c.getUTCDate && !!c.toUTCString); - test.equal(a.getTime(), c.getTime()); - - test.done(); -}; - -exports["clone object"] = function (test) { - test.expect(1); // how many tests? - - var a = { foo: { bar: "baz" } }; - var b = clone(a); - - test.deepEqual(b, a); - - test.done(); -}; - -exports["clone array"] = function (test) { - test.expect(2); // how many tests? - - var a = [ - { foo: "bar" }, - "baz" - ]; - var b = clone(a); - - test.ok(b instanceof Array); - test.deepEqual(b, a); - - test.done(); -}; - -exports["clone buffer"] = function (test) { - if (typeof Buffer == 'undefined') { - return test.done(); - } - - test.expect(1); - - var a = new Buffer("this is a test buffer"); - var b = clone(a); - - // no underscore equal since it has no concept of Buffers - test.deepEqual(b, a); - test.done(); -}; - -exports["clone regexp"] = function (test) { - test.expect(5); - - var a = /abc123/gi; - var b = clone(a); - test.deepEqual(b, a); - - var c = /a/g; - test.ok(c.lastIndex === 0); - - c.exec('123a456a'); - test.ok(c.lastIndex === 4); - - var d = clone(c); - test.ok(d.global); - test.ok(d.lastIndex === 4); - - test.done(); -}; - -exports["clone object containing array"] = function (test) { - test.expect(1); // how many tests? - - var a = { - arr1: [ { a: '1234', b: '2345' } ], - arr2: [ { c: '345', d: '456' } ] - }; - - var b = clone(a); - - test.deepEqual(b, a); - - test.done(); -}; - -exports["clone object with circular reference"] = function (test) { - test.expect(8); // how many tests? - - var c = [1, "foo", {'hello': 'bar'}, function () {}, false, [2]]; - var b = [c, 2, 3, 4]; - - var a = {'b': b, 'c': c}; - a.loop = a; - a.loop2 = a; - c.loop = c; - c.aloop = a; - - var aCopy = clone(a); - test.ok(a != aCopy); - test.ok(a.c != aCopy.c); - test.ok(aCopy.c == aCopy.b[0]); - test.ok(aCopy.c.loop.loop.aloop == aCopy); - test.ok(aCopy.c[0] == a.c[0]); - - test.ok(eq(a, aCopy)); - aCopy.c[0] = 2; - test.ok(!eq(a, aCopy)); - aCopy.c = "2"; - test.ok(!eq(a, aCopy)); - - function eq(x, y) { - return inspect(x) === inspect(y); - } - - test.done(); -}; - -exports['clone prototype'] = function (test) { - test.expect(3); // how many tests? - - var a = { - a: "aaa", - x: 123, - y: 45.65 - }; - var b = clone.clonePrototype(a); - - test.strictEqual(b.a, a.a); - test.strictEqual(b.x, a.x); - test.strictEqual(b.y, a.y); - - test.done(); -}; - -exports['clone within an apart context'] = function (test) { - var results = apartContext({ clone: clone }, - "results = ctx.clone({ a: [1, 2, 3], d: new Date(), r: /^foo$/ig })", - function (results) { - test.ok(results.a.constructor.toString() === Array.toString()); - test.ok(results.d.constructor.toString() === Date.toString()); - test.ok(results.r.constructor.toString() === RegExp.toString()); - test.done(); - }); -}; - -exports['clone object with no constructor'] = function (test) { - test.expect(3); - - var n = null; - - var a = { foo: 'bar' }; - a.__proto__ = n; - test.ok(typeof a === 'object'); - test.ok(typeof a !== null); - - var b = clone(a); - test.ok(a.foo, b.foo); - - test.done(); -}; - -exports['clone object with depth argument'] = function (test) { - test.expect(6); - - var a = { - foo: { - bar : { - baz : 'qux' - } - } - }; - - var b = clone(a, false, 1); - test.deepEqual(b, a); - test.notEqual(b, a); - test.strictEqual(b.foo, a.foo); - - b = clone(a, true, 2); - test.deepEqual(b, a); - test.notEqual(b.foo, a.foo); - test.strictEqual(b.foo.bar, a.foo.bar); - - test.done(); -}; - -exports['maintain prototype chain in clones'] = function (test) { - test.expect(1); - - function T() {} - - var a = new T(); - var b = clone(a); - test.strictEqual(Object.getPrototypeOf(a), Object.getPrototypeOf(b)); - - test.done(); -}; - -exports['parent prototype is overriden with prototype provided'] = function (test) { - test.expect(1); - - function T() {} - - var a = new T(); - var b = clone(a, true, Infinity, null); - test.strictEqual(b.__defineSetter__, undefined); - - test.done(); -}; - -exports['clone object with null children'] = function (test) { - test.expect(1); - var a = { - foo: { - bar: null, - baz: { - qux: false - } - } - }; - - var b = clone(a); - - test.deepEqual(b, a); - test.done(); -}; - -exports['clone instance with getter'] = function (test) { - test.expect(1); - function Ctor() {}; - Object.defineProperty(Ctor.prototype, 'prop', { - configurable: true, - enumerable: true, - get: function() { - return 'value'; - } - }); - - var a = new Ctor(); - var b = clone(a); - - test.strictEqual(b.prop, 'value'); - test.done(); -}; - -exports['get RegExp flags'] = function (test) { - test.strictEqual(clone.__getRegExpFlags(/a/), '' ); - test.strictEqual(clone.__getRegExpFlags(/a/i), 'i' ); - test.strictEqual(clone.__getRegExpFlags(/a/g), 'g' ); - test.strictEqual(clone.__getRegExpFlags(/a/gi), 'gi'); - test.strictEqual(clone.__getRegExpFlags(/a/m), 'm' ); - - test.done(); -}; - -exports["recognize Array object"] = function (test) { - var results = apartContext(null, "results = [1, 2, 3]", function(alien) { - var local = [4, 5, 6]; - test.ok(clone.__isArray(alien)); // recognize in other context. - test.ok(clone.__isArray(local)); // recognize in local context. - test.ok(!clone.__isDate(alien)); - test.ok(!clone.__isDate(local)); - test.ok(!clone.__isRegExp(alien)); - test.ok(!clone.__isRegExp(local)); - test.done(); - }); -}; - -exports["recognize Date object"] = function (test) { - var results = apartContext(null, "results = new Date()", function(alien) { - var local = new Date(); - - test.ok(clone.__isDate(alien)); // recognize in other context. - test.ok(clone.__isDate(local)); // recognize in local context. - test.ok(!clone.__isArray(alien)); - test.ok(!clone.__isArray(local)); - test.ok(!clone.__isRegExp(alien)); - test.ok(!clone.__isRegExp(local)); - - test.done(); - }); -}; - -exports["recognize RegExp object"] = function (test) { - var results = apartContext(null, "results = /foo/", function(alien) { - var local = /bar/; - - test.ok(clone.__isRegExp(alien)); // recognize in other context. - test.ok(clone.__isRegExp(local)); // recognize in local context. - test.ok(!clone.__isArray(alien)); - test.ok(!clone.__isArray(local)); - test.ok(!clone.__isDate(alien)); - test.ok(!clone.__isDate(local)); - test.done(); - }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json deleted file mode 100644 index ef519786..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "defaults", - "version": "1.0.3", - "description": "merge single level defaults over a config object", - "main": "index.js", - "scripts": { - "test": "node test.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/tmpvar/defaults.git" - }, - "keywords": [ - "config", - "defaults" - ], - "author": { - "name": "Elijah Insua", - "email": "tmpvar@gmail.com" - }, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "devDependencies": { - "tap": "^2.0.0" - }, - "gitHead": "8831ec32a5f999bfae1a8c9bf32880971ed7c6f2", - "bugs": { - "url": "https://github.com/tmpvar/defaults/issues" - }, - "homepage": "https://github.com/tmpvar/defaults#readme", - "_id": "defaults@1.0.3", - "_shasum": "c656051e9817d9ff08ed881477f3fe4019f3ef7d", - "_from": "defaults@>=1.0.0 <2.0.0", - "_npmVersion": "2.14.4", - "_nodeVersion": "4.1.1", - "_npmUser": { - "name": "tmpvar", - "email": "tmpvar@gmail.com" - }, - "dist": { - "shasum": "c656051e9817d9ff08ed881477f3fe4019f3ef7d", - "tarball": "http://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" - }, - "maintainers": [ - { - "name": "tmpvar", - "email": "tmpvar@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js deleted file mode 100644 index 60e0ffba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js +++ /dev/null @@ -1,34 +0,0 @@ -var defaults = require('./'), - test = require('tap').test; - -test("ensure options is an object", function(t) { - var options = defaults(false, { a : true }); - t.ok(options.a); - t.end() -}); - -test("ensure defaults override keys", function(t) { - var result = defaults({}, { a: false, b: true }); - t.ok(result.b, 'b merges over undefined'); - t.equal(result.a, false, 'a merges over undefined'); - t.end(); -}); - -test("ensure defined keys are not overwritten", function(t) { - var result = defaults({ b: false }, { a: false, b: true }); - t.equal(result.b, false, 'b not merged'); - t.equal(result.a, false, 'a merges over undefined'); - t.end(); -}); - -test("ensure defaults clone nested objects", function(t) { - var d = { a: [1,2,3], b: { hello : 'world' } }; - var result = defaults({}, d); - t.equal(result.a.length, 3, 'objects should be clones'); - t.ok(result.a !== d.a, 'objects should be clones'); - - t.equal(Object.keys(result.b).length, 1, 'objects should be clones'); - t.ok(result.b !== d.b, 'objects should be clones'); - t.end(); -}); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/package.json deleted file mode 100644 index 49fc6f04..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "wcwidth", - "version": "1.0.0", - "description": "Port of C's wcwidth() and wcswidth()", - "author": { - "name": "Tim Oxley" - }, - "contributors": [ - { - "name": "Woong Jun", - "email": "woong.jun@gmail.com", - "url": "http://code.woong.org/" - } - ], - "main": "index.js", - "dependencies": { - "defaults": "^1.0.0" - }, - "devDependencies": { - "tape": "^2.13.4" - }, - "license": "MIT", - "keywords": [ - "wide character", - "wc", - "wide character string", - "wcs", - "terminal", - "width", - "wcwidth", - "wcswidth" - ], - "directories": { - "doc": "docs", - "test": "test" - }, - "scripts": { - "test": "tape test/*.js" - }, - "gitHead": "5bc3aafd45c89f233c27b9479c18a23ca91ba660", - "_id": "wcwidth@1.0.0", - "_shasum": "02d059ff7a8fc741e0f6b5da1e69b2b40daeca6f", - "_from": "wcwidth@>=1.0.0 <2.0.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "timoxley", - "email": "secoif@gmail.com" - }, - "maintainers": [ - { - "name": "timoxley", - "email": "secoif@gmail.com" - } - ], - "dist": { - "shasum": "02d059ff7a8fc741e0f6b5da1e69b2b40daeca6f", - "tarball": "http://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz" - }, - "_resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/test/index.js deleted file mode 100644 index 5180599a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/node_modules/wcwidth/test/index.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict" - -var wcwidth = require('../') -var test = require('tape') - -test('handles regular strings', function(t) { - t.strictEqual(wcwidth('abc'), 3) - t.end() -}) - -test('handles multibyte strings', function(t) { - t.strictEqual(wcwidth('字的模块'), 8) - t.end() -}) - -test('handles multibyte characters mixed with regular characters', function(t) { - t.strictEqual(wcwidth('abc 字的模块'), 12) - t.end() -}) - -test('ignores control characters e.g. \\n', function(t) { - t.strictEqual(wcwidth('abc\n字的模块\ndef'), 14) - t.end() -}) - -test('ignores bad input', function(t) { - t.strictEqual(wcwidth(''), 0) - t.strictEqual(wcwidth(3), 0) - t.strictEqual(wcwidth({}), 0) - t.strictEqual(wcwidth([]), 0) - t.strictEqual(wcwidth(), 0) - t.end() -}) - -test('ignores nul (charcode 0)', function(t) { - t.strictEqual(wcwidth(String.fromCharCode(0)), 0) - t.end() -}) - -test('ignores nul mixed with chars', function(t) { - t.strictEqual(wcwidth('a' + String.fromCharCode(0) + '\n字的'), 5) - t.end() -}) - -test('can have custom value for nul', function(t) { - t.strictEqual(wcwidth.config({ - nul: 10 - })(String.fromCharCode(0) + 'a字的'), 15) - t.end() -}) - -test('can have custom control char value', function(t) { - t.strictEqual(wcwidth.config({ - control: 1 - })('abc\n字的模块\ndef'), 16) - t.end() -}) - -test('negative custom control chars == -1', function(t) { - t.strictEqual(wcwidth.config({ - control: -1 - })('abc\n字的模块\ndef'), -1) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/package.json deleted file mode 100644 index a661b6e3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/package.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "_args": [ - [ - "columnify@1.5.4", - "/Users/rebecca/code/npm" - ] - ], - "_from": "columnify@1.5.4", - "_id": "columnify@1.5.4", - "_inCache": true, - "_installable": true, - "_location": "/columnify", - "_nodeVersion": "4.2.3", - "_npmUser": { - "email": "secoif@gmail.com", - "name": "timoxley" - }, - "_npmVersion": "2.14.7", - "_phantomChildren": {}, - "_requested": { - "name": "columnify", - "raw": "columnify@1.5.4", - "rawSpec": "1.5.4", - "scope": null, - "spec": "1.5.4", - "type": "version" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "_shasum": "4737ddf1c7b69a8a7c340570782e947eec8e78bb", - "_shrinkwrap": null, - "_spec": "columnify@1.5.4", - "_where": "/Users/rebecca/code/npm", - "author": { - "name": "Tim Oxley" - }, - "babel": { - "presets": [ - "es2015" - ] - }, - "bugs": { - "url": "https://github.com/timoxley/columnify/issues" - }, - "dependencies": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" - }, - "description": "Render data in text columns. Supports in-column text-wrap.", - "devDependencies": { - "babel": "^6.3.26", - "babel-cli": "^6.3.17", - "babel-preset-es2015": "^6.3.13", - "chalk": "^1.1.1", - "tap-spec": "^4.1.1", - "tape": "^4.4.0" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "4737ddf1c7b69a8a7c340570782e947eec8e78bb", - "tarball": "http://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz" - }, - "gitHead": "b5373b3d6344bf59e1ab63c912c188c34bce5889", - "homepage": "https://github.com/timoxley/columnify", - "keywords": [ - "ansi", - "column", - "console", - "table", - "terminal", - "text", - "wrap" - ], - "license": "MIT", - "main": "columnify.js", - "maintainers": [ - { - "name": "timoxley", - "email": "secoif@gmail.com" - } - ], - "name": "columnify", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/timoxley/columnify.git" - }, - "scripts": { - "bench": "npm test && node bench", - "prepublish": "make prepublish", - "pretest": "npm prune", - "test": "make prepublish && tape test/*.js | tap-spec" - }, - "version": "1.5.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/utils.js deleted file mode 100644 index df3e6cc4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/utils.js +++ /dev/null @@ -1,193 +0,0 @@ -"use strict" - -var wcwidth = require('./width') - -/** - * repeat string `str` up to total length of `len` - * - * @param String str string to repeat - * @param Number len total length of output string - */ - -function repeatString(str, len) { - return Array.apply(null, {length: len + 1}).join(str).slice(0, len) -} - -/** - * Pad `str` up to total length `max` with `chr`. - * If `str` is longer than `max`, padRight will return `str` unaltered. - * - * @param String str string to pad - * @param Number max total length of output string - * @param String chr optional. Character to pad with. default: ' ' - * @return String padded str - */ - -function padRight(str, max, chr) { - str = str != null ? str : '' - str = String(str) - var length = max - wcwidth(str) - if (length <= 0) return str - return str + repeatString(chr || ' ', length) -} - -/** - * Pad `str` up to total length `max` with `chr`. - * If `str` is longer than `max`, padCenter will return `str` unaltered. - * - * @param String str string to pad - * @param Number max total length of output string - * @param String chr optional. Character to pad with. default: ' ' - * @return String padded str - */ - -function padCenter(str, max, chr) { - str = str != null ? str : '' - str = String(str) - var length = max - wcwidth(str) - if (length <= 0) return str - var lengthLeft = Math.floor(length/2) - var lengthRight = length - lengthLeft - return repeatString(chr || ' ', lengthLeft) + str + repeatString(chr || ' ', lengthRight) -} - -/** - * Pad `str` up to total length `max` with `chr`, on the left. - * If `str` is longer than `max`, padRight will return `str` unaltered. - * - * @param String str string to pad - * @param Number max total length of output string - * @param String chr optional. Character to pad with. default: ' ' - * @return String padded str - */ - -function padLeft(str, max, chr) { - str = str != null ? str : '' - str = String(str) - var length = max - wcwidth(str) - if (length <= 0) return str - return repeatString(chr || ' ', length) + str -} - -/** - * Split a String `str` into lines of maxiumum length `max`. - * Splits on word boundaries. Preserves existing new lines. - * - * @param String str string to split - * @param Number max length of each line - * @return Array Array containing lines. - */ - -function splitIntoLines(str, max) { - function _splitIntoLines(str, max) { - return str.trim().split(' ').reduce(function(lines, word) { - var line = lines[lines.length - 1] - if (line && wcwidth(line.join(' ')) + wcwidth(word) < max) { - lines[lines.length - 1].push(word) // add to line - } - else lines.push([word]) // new line - return lines - }, []).map(function(l) { - return l.join(' ') - }) - } - return str.split('\n').map(function(str) { - return _splitIntoLines(str, max) - }).reduce(function(lines, line) { - return lines.concat(line) - }, []) -} - -/** - * Add spaces and `truncationChar` between words of - * `str` which are longer than `max`. - * - * @param String str string to split - * @param Number max length of each line - * @param Number truncationChar character to append to split words - * @return String - */ - -function splitLongWords(str, max, truncationChar) { - str = str.trim() - var result = [] - var words = str.split(' ') - var remainder = '' - - var truncationWidth = wcwidth(truncationChar) - - while (remainder || words.length) { - if (remainder) { - var word = remainder - remainder = '' - } else { - var word = words.shift() - } - - if (wcwidth(word) > max) { - // slice is based on length no wcwidth - var i = 0 - var wwidth = 0 - var limit = max - truncationWidth - while (i < word.length) { - var w = wcwidth(word.charAt(i)) - if (w + wwidth > limit) { - break - } - wwidth += w - ++i - } - - remainder = word.slice(i) // get remainder - // save remainder for next loop - - word = word.slice(0, i) // grab truncated word - word += truncationChar // add trailing … or whatever - } - result.push(word) - } - - return result.join(' ') -} - - -/** - * Truncate `str` into total width `max` - * If `str` is shorter than `max`, will return `str` unaltered. - * - * @param String str string to truncated - * @param Number max total wcwidth of output string - * @return String truncated str - */ - -function truncateString(str, max) { - - str = str != null ? str : '' - str = String(str) - - if(max == Infinity) return str - - var i = 0 - var wwidth = 0 - while (i < str.length) { - var w = wcwidth(str.charAt(i)) - if(w + wwidth > max) - break - wwidth += w - ++i - } - return str.slice(0, i) -} - - - -/** - * Exports - */ - -module.exports.padRight = padRight -module.exports.padCenter = padCenter -module.exports.padLeft = padLeft -module.exports.splitIntoLines = splitIntoLines -module.exports.splitLongWords = splitLongWords -module.exports.truncateString = truncateString diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/width.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/width.js deleted file mode 100644 index a9f5333b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/columnify/width.js +++ /dev/null @@ -1,6 +0,0 @@ -var stripAnsi = require('strip-ansi') -var wcwidth = require('wcwidth') - -module.exports = function(str) { - return wcwidth(stripAnsi(str)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/.npmignore deleted file mode 100644 index 13abef4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -node_modules/* -npm_debug.log diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/LICENCE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/LICENCE deleted file mode 100644 index 171dd970..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/LICENCE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2011 Dominic Tarr - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/index.js deleted file mode 100755 index 0ef3a91f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/index.js +++ /dev/null @@ -1,282 +0,0 @@ -var ProtoList = require('proto-list') - , path = require('path') - , fs = require('fs') - , ini = require('ini') - , EE = require('events').EventEmitter - , url = require('url') - , http = require('http') - -var exports = module.exports = function () { - var args = [].slice.call(arguments) - , conf = new ConfigChain() - - while(args.length) { - var a = args.shift() - if(a) conf.push - ( 'string' === typeof a - ? json(a) - : a ) - } - - return conf -} - -//recursively find a file... - -var find = exports.find = function () { - var rel = path.join.apply(null, [].slice.call(arguments)) - - function find(start, rel) { - var file = path.join(start, rel) - try { - fs.statSync(file) - return file - } catch (err) { - if(path.dirname(start) !== start) // root - return find(path.dirname(start), rel) - } - } - return find(__dirname, rel) -} - -var parse = exports.parse = function (content, file, type) { - content = '' + content - // if we don't know what it is, try json and fall back to ini - // if we know what it is, then it must be that. - if (!type) { - try { return JSON.parse(content) } - catch (er) { return ini.parse(content) } - } else if (type === 'json') { - if (this.emit) { - try { return JSON.parse(content) } - catch (er) { this.emit('error', er) } - } else { - return JSON.parse(content) - } - } else { - return ini.parse(content) - } -} - -var json = exports.json = function () { - var args = [].slice.call(arguments).filter(function (arg) { return arg != null }) - var file = path.join.apply(null, args) - var content - try { - content = fs.readFileSync(file,'utf-8') - } catch (err) { - return - } - return parse(content, file, 'json') -} - -var env = exports.env = function (prefix, env) { - env = env || process.env - var obj = {} - var l = prefix.length - for(var k in env) { - if(k.indexOf(prefix) === 0) - obj[k.substring(l)] = env[k] - } - - return obj -} - -exports.ConfigChain = ConfigChain -function ConfigChain () { - EE.apply(this) - ProtoList.apply(this, arguments) - this._awaiting = 0 - this._saving = 0 - this.sources = {} -} - -// multi-inheritance-ish -var extras = { - constructor: { value: ConfigChain } -} -Object.keys(EE.prototype).forEach(function (k) { - extras[k] = Object.getOwnPropertyDescriptor(EE.prototype, k) -}) -ConfigChain.prototype = Object.create(ProtoList.prototype, extras) - -ConfigChain.prototype.del = function (key, where) { - // if not specified where, then delete from the whole chain, scorched - // earth style - if (where) { - var target = this.sources[where] - target = target && target.data - if (!target) { - return this.emit('error', new Error('not found '+where)) - } - delete target[key] - } else { - for (var i = 0, l = this.list.length; i < l; i ++) { - delete this.list[i][key] - } - } - return this -} - -ConfigChain.prototype.set = function (key, value, where) { - var target - - if (where) { - target = this.sources[where] - target = target && target.data - if (!target) { - return this.emit('error', new Error('not found '+where)) - } - } else { - target = this.list[0] - if (!target) { - return this.emit('error', new Error('cannot set, no confs!')) - } - } - target[key] = value - return this -} - -ConfigChain.prototype.get = function (key, where) { - if (where) { - where = this.sources[where] - if (where) where = where.data - if (where && Object.hasOwnProperty.call(where, key)) return where[key] - return undefined - } - return this.list[0][key] -} - -ConfigChain.prototype.save = function (where, type, cb) { - if (typeof type === 'function') cb = type, type = null - var target = this.sources[where] - if (!target || !(target.path || target.source) || !target.data) { - // TODO: maybe save() to a url target could be a PUT or something? - // would be easy to swap out with a reddis type thing, too - return this.emit('error', new Error('bad save target: '+where)) - } - - if (target.source) { - var pref = target.prefix || '' - Object.keys(target.data).forEach(function (k) { - target.source[pref + k] = target.data[k] - }) - return this - } - - var type = type || target.type - var data = target.data - if (target.type === 'json') { - data = JSON.stringify(data) - } else { - data = ini.stringify(data) - } - - this._saving ++ - fs.writeFile(target.path, data, 'utf8', function (er) { - this._saving -- - if (er) { - if (cb) return cb(er) - else return this.emit('error', er) - } - if (this._saving === 0) { - if (cb) cb() - this.emit('save') - } - }.bind(this)) - return this -} - -ConfigChain.prototype.addFile = function (file, type, name) { - name = name || file - var marker = {__source__:name} - this.sources[name] = { path: file, type: type } - this.push(marker) - this._await() - fs.readFile(file, 'utf8', function (er, data) { - if (er) this.emit('error', er) - this.addString(data, file, type, marker) - }.bind(this)) - return this -} - -ConfigChain.prototype.addEnv = function (prefix, env, name) { - name = name || 'env' - var data = exports.env(prefix, env) - this.sources[name] = { data: data, source: env, prefix: prefix } - return this.add(data, name) -} - -ConfigChain.prototype.addUrl = function (req, type, name) { - this._await() - var href = url.format(req) - name = name || href - var marker = {__source__:name} - this.sources[name] = { href: href, type: type } - this.push(marker) - http.request(req, function (res) { - var c = [] - var ct = res.headers['content-type'] - if (!type) { - type = ct.indexOf('json') !== -1 ? 'json' - : ct.indexOf('ini') !== -1 ? 'ini' - : href.match(/\.json$/) ? 'json' - : href.match(/\.ini$/) ? 'ini' - : null - marker.type = type - } - - res.on('data', c.push.bind(c)) - .on('end', function () { - this.addString(Buffer.concat(c), href, type, marker) - }.bind(this)) - .on('error', this.emit.bind(this, 'error')) - - }.bind(this)) - .on('error', this.emit.bind(this, 'error')) - .end() - - return this -} - -ConfigChain.prototype.addString = function (data, file, type, marker) { - data = this.parse(data, file, type) - this.add(data, marker) - return this -} - -ConfigChain.prototype.add = function (data, marker) { - if (marker && typeof marker === 'object') { - var i = this.list.indexOf(marker) - if (i === -1) { - return this.emit('error', new Error('bad marker')) - } - this.splice(i, 1, data) - marker = marker.__source__ - this.sources[marker] = this.sources[marker] || {} - this.sources[marker].data = data - // we were waiting for this. maybe emit 'load' - this._resolve() - } else { - if (typeof marker === 'string') { - this.sources[marker] = this.sources[marker] || {} - this.sources[marker].data = data - } - // trigger the load event if nothing was already going to do so. - this._await() - this.push(data) - process.nextTick(this._resolve.bind(this)) - } - return this -} - -ConfigChain.prototype.parse = exports.parse - -ConfigChain.prototype._await = function () { - this._awaiting++ -} - -ConfigChain.prototype._resolve = function () { - this._awaiting-- - if (this._awaiting === 0) this.emit('load', this) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/README.md deleted file mode 100644 index 43cfa358..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/README.md +++ /dev/null @@ -1,3 +0,0 @@ -A list of objects, bound by their prototype chain. - -Used in npm's config stuff. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/package.json deleted file mode 100644 index 1a0d0a8c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "proto-list", - "version": "1.2.4", - "description": "A utility for managing a prototype chain", - "main": "./proto-list.js", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/proto-list.git" - }, - "license": "ISC", - "devDependencies": { - "tap": "0" - }, - "readme": "A list of objects, bound by their prototype chain.\n\nUsed in npm's config stuff.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/isaacs/proto-list/issues" - }, - "homepage": "https://github.com/isaacs/proto-list#readme", - "_id": "proto-list@1.2.4", - "_shasum": "212d5bfe1318306a420f6402b8e26ff39647a849", - "_resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "_from": "proto-list@>=1.2.1 <1.3.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js deleted file mode 100644 index b55c25c0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js +++ /dev/null @@ -1,88 +0,0 @@ - -module.exports = ProtoList - -function setProto(obj, proto) { - if (typeof Object.setPrototypeOf === "function") - return Object.setPrototypeOf(obj, proto) - else - obj.__proto__ = proto -} - -function ProtoList () { - this.list = [] - var root = null - Object.defineProperty(this, 'root', { - get: function () { return root }, - set: function (r) { - root = r - if (this.list.length) { - setProto(this.list[this.list.length - 1], r) - } - }, - enumerable: true, - configurable: true - }) -} - -ProtoList.prototype = - { get length () { return this.list.length } - , get keys () { - var k = [] - for (var i in this.list[0]) k.push(i) - return k - } - , get snapshot () { - var o = {} - this.keys.forEach(function (k) { o[k] = this.get(k) }, this) - return o - } - , get store () { - return this.list[0] - } - , push : function (obj) { - if (typeof obj !== "object") obj = {valueOf:obj} - if (this.list.length >= 1) { - setProto(this.list[this.list.length - 1], obj) - } - setProto(obj, this.root) - return this.list.push(obj) - } - , pop : function () { - if (this.list.length >= 2) { - setProto(this.list[this.list.length - 2], this.root) - } - return this.list.pop() - } - , unshift : function (obj) { - setProto(obj, this.list[0] || this.root) - return this.list.unshift(obj) - } - , shift : function () { - if (this.list.length === 1) { - setProto(this.list[0], this.root) - } - return this.list.shift() - } - , get : function (key) { - return this.list[0][key] - } - , set : function (key, val, save) { - if (!this.length) this.push({}) - if (save && this.list[0].hasOwnProperty(key)) this.push({}) - return this.list[0][key] = val - } - , forEach : function (fn, thisp) { - for (var key in this.list[0]) fn.call(thisp, key, this.list[0][key]) - } - , slice : function () { - return this.list.slice.apply(this.list, arguments) - } - , splice : function () { - // handle injections - var ret = this.list.splice.apply(this.list, arguments) - for (var i = 0, l = this.list.length; i < l; i++) { - setProto(this.list[i], this.list[i + 1] || this.root) - } - return ret - } - } diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js deleted file mode 100644 index 5cd66bef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js +++ /dev/null @@ -1,61 +0,0 @@ -var tap = require("tap") - , test = tap.test - , ProtoList = require("../proto-list.js") - -tap.plan(1) - -tap.test("protoList tests", function (t) { - var p = new ProtoList - p.push({foo:"bar"}) - p.push({}) - p.set("foo", "baz") - t.equal(p.get("foo"), "baz") - - var p = new ProtoList - p.push({foo:"bar"}) - p.set("foo", "baz") - t.equal(p.get("foo"), "baz") - t.equal(p.length, 1) - p.pop() - t.equal(p.length, 0) - p.set("foo", "asdf") - t.equal(p.length, 1) - t.equal(p.get("foo"), "asdf") - p.push({bar:"baz"}) - t.equal(p.length, 2) - t.equal(p.get("foo"), "asdf") - p.shift() - t.equal(p.length, 1) - t.equal(p.get("foo"), undefined) - - - p.unshift({foo:"blo", bar:"rab"}) - p.unshift({foo:"boo"}) - t.equal(p.length, 3) - t.equal(p.get("foo"), "boo") - t.equal(p.get("bar"), "rab") - - var ret = p.splice(1, 1, {bar:"bar"}) - t.same(ret, [{foo:"blo", bar:"rab"}]) - t.equal(p.get("bar"), "bar") - - // should not inherit default object properties - t.equal(p.get('hasOwnProperty'), undefined) - - // unless we give it those. - p.root = {} - t.equal(p.get('hasOwnProperty'), {}.hasOwnProperty) - - p.root = {default:'monkey'} - t.equal(p.get('default'), 'monkey') - - p.push({red:'blue'}) - p.push({red:'blue'}) - p.push({red:'blue'}) - while (p.length) { - t.equal(p.get('default'), 'monkey') - p.shift() - } - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/package.json deleted file mode 100644 index f7d3e531..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_args": [ - [ - "config-chain@1.1.10", - "/Users/rebecca/code/npm" - ] - ], - "_from": "config-chain@1.1.10", - "_id": "config-chain@1.1.10", - "_inCache": true, - "_installable": true, - "_location": "/config-chain", - "_nodeVersion": "5.3.0", - "_npmUser": { - "email": "dominic.tarr@gmail.com", - "name": "dominictarr" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "config-chain", - "raw": "config-chain@1.1.10", - "rawSpec": "1.1.10", - "scope": null, - "spec": "1.1.10", - "type": "version" - }, - "_requiredBy": [ - "/", - "/standard/standard-format/esformatter-jsx/js-beautify" - ], - "_resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.10.tgz", - "_shasum": "7fc383de0fcc84d711cb465bd176579cad612346", - "_shrinkwrap": null, - "_spec": "config-chain@1.1.10", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "dominic.tarr@gmail.com", - "name": "Dominic Tarr", - "url": "http://dominictarr.com" - }, - "bugs": { - "url": "https://github.com/dominictarr/config-chain/issues" - }, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - }, - "description": "HANDLE CONFIGURATION ONCE AND FOR ALL", - "devDependencies": { - "tap": "0.3.0" - }, - "directories": {}, - "dist": { - "shasum": "7fc383de0fcc84d711cb465bd176579cad612346", - "tarball": "http://registry.npmjs.org/config-chain/-/config-chain-1.1.10.tgz" - }, - "gitHead": "0b6db3e14b9cdbe31460292bc4caf3983f977816", - "homepage": "http://github.com/dominictarr/config-chain", - "licenses": [ - { - "type": "MIT", - "url": "https://raw.githubusercontent.com/dominictarr/config-chain/master/LICENCE" - } - ], - "maintainers": [ - { - "name": "dominictarr", - "email": "dominic.tarr@gmail.com" - }, - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "name": "config-chain", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/dominictarr/config-chain.git" - }, - "scripts": { - "test": "tap test/" - }, - "version": "1.1.10" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/readme.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/readme.markdown deleted file mode 100644 index c83a4306..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/readme.markdown +++ /dev/null @@ -1,228 +0,0 @@ -#config-chain - -USE THIS MODULE TO LOAD ALL YOUR CONFIGURATIONS - -``` js - - //npm install config-chain - - var cc = require('config-chain') - , opts = require('optimist').argv //ALWAYS USE OPTIMIST FOR COMMAND LINE OPTIONS. - , env = opts.env || process.env.YOUR_APP_ENV || 'dev' //SET YOUR ENV LIKE THIS. - - // EACH ARG TO CONFIGURATOR IS LOADED INTO CONFIGURATION CHAIN - // EARLIER ITEMS OVERIDE LATER ITEMS - // PUTS COMMAND LINE OPTS FIRST, AND DEFAULTS LAST! - - //strings are interpereted as filenames. - //will be loaded synchronously - - var conf = - cc( - //OVERRIDE SETTINGS WITH COMMAND LINE OPTS - opts, - - //ENV VARS IF PREFIXED WITH 'myApp_' - - cc.env('myApp_'), //myApp_foo = 'like this' - - //FILE NAMED BY ENV - path.join(__dirname, 'config.' + env + '.json'), - - //IF `env` is PRODUCTION - env === 'prod' - ? path.join(__dirname, 'special.json') //load a special file - : null //NULL IS IGNORED! - - //SUBDIR FOR ENV CONFIG - path.join(__dirname, 'config', env, 'config.json'), - - //SEARCH PARENT DIRECTORIES FROM CURRENT DIR FOR FILE - cc.find('config.json'), - - //PUT DEFAULTS LAST - { - host: 'localhost' - port: 8000 - }) - - var host = conf.get('host') - - // or - - var host = conf.store.host - -``` - -FINALLY, EASY FLEXIBLE CONFIGURATIONS! - -##see also: [proto-list](https://github.com/isaacs/proto-list/) - -WHATS THAT YOU SAY? - -YOU WANT A "CLASS" SO THAT YOU CAN DO CRAYCRAY JQUERY CRAPS? - -EXTEND WITH YOUR OWN FUNCTIONALTY!? - -## CONFIGCHAIN LIVES TO SERVE ONLY YOU! - -```javascript -var cc = require('config-chain') - -// all the stuff you did before -var config = cc({ - some: 'object' - }, - cc.find('config.json'), - cc.env('myApp_') - ) - // CONFIGS AS A SERVICE, aka "CaaS", aka EVERY DEVOPS DREAM OMG! - .addUrl('http://configurator:1234/my-configs') - // ASYNC FTW! - .addFile('/path/to/file.json') - - // OBJECTS ARE OK TOO, they're SYNC but they still ORDER RIGHT - // BECAUSE PROMISES ARE USED BUT NO, NOT *THOSE* PROMISES, JUST - // ACTUAL PROMISES LIKE YOU MAKE TO YOUR MOM, KEPT OUT OF LOVE - .add({ another: 'object' }) - - // DIE A THOUSAND DEATHS IF THIS EVER HAPPENS!! - .on('error', function (er) { - // IF ONLY THERE WAS SOMETHIGN HARDER THAN THROW - // MY SORROW COULD BE ADEQUATELY EXPRESSED. /o\ - throw er - }) - - // THROW A PARTY IN YOUR FACE WHEN ITS ALL LOADED!! - .on('load', function (config) { - console.awesome('HOLY SHIT!') - }) -``` - -# BORING API DOCS - -## cc(...args) - -MAKE A CHAIN AND ADD ALL THE ARGS. - -If the arg is a STRING, then it shall be a JSON FILENAME. - -SYNC I/O! - -RETURN THE CHAIN! - -## cc.json(...args) - -Join the args INTO A JSON FILENAME! - -SYNC I/O! - -## cc.find(relativePath) - -SEEK the RELATIVE PATH by climbing the TREE OF DIRECTORIES. - -RETURN THE FOUND PATH! - -SYNC I/O! - -## cc.parse(content, file, type) - -Parse the content string, and guess the type from either the -specified type or the filename. - -RETURN THE RESULTING OBJECT! - -NO I/O! - -## cc.env(prefix, env=process.env) - -Get all the keys on the provided env object (or process.env) which are -prefixed by the specified prefix, and put the values on a new object. - -RETURN THE RESULTING OBJECT! - -NO I/O! - -## cc.ConfigChain() - -The ConfigChain class for CRAY CRAY JQUERY STYLE METHOD CHAINING! - -One of these is returned by the main exported function, as well. - -It inherits (prototypically) from -[ProtoList](https://github.com/isaacs/proto-list/), and also inherits -(parasitically) from -[EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter) - -It has all the methods from both, and except where noted, they are -unchanged. - -### LET IT BE KNOWN THAT chain IS AN INSTANCE OF ConfigChain. - -## chain.sources - -A list of all the places where it got stuff. The keys are the names -passed to addFile or addUrl etc, and the value is an object with some -info about the data source. - -## chain.addFile(filename, type, [name=filename]) - -Filename is the name of the file. Name is an arbitrary string to be -used later if you desire. Type is either 'ini' or 'json', and will -try to guess intelligently if omitted. - -Loaded files can be saved later. - -## chain.addUrl(url, type, [name=url]) - -Same as the filename thing, but with a url. - -Can't be saved later. - -## chain.addEnv(prefix, env, [name='env']) - -Add all the keys from the env object that start with the prefix. - -## chain.addString(data, file, type, [name]) - -Parse the string and add it to the set. (Mainly used internally.) - -## chain.add(object, [name]) - -Add the object to the set. - -## chain.root {Object} - -The root from which all the other config objects in the set descend -prototypically. - -Put your defaults here. - -## chain.set(key, value, name) - -Set the key to the value on the named config object. If name is -unset, then set it on the first config object in the set. (That is, -the one with the highest priority, which was added first.) - -## chain.get(key, [name]) - -Get the key from the named config object explicitly, or from the -resolved configs if not specified. - -## chain.save(name, type) - -Write the named config object back to its origin. - -Currently only supported for env and file config types. - -For files, encode the data according to the type. - -## chain.on('save', function () {}) - -When one or more files are saved, emits `save` event when they're all -saved. - -## chain.on('load', function (chain) {}) - -When the config chain has loaded all the specified files and urls and -such, the 'load' event fires. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/broken.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/broken.js deleted file mode 100644 index 101a3e4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/broken.js +++ /dev/null @@ -1,10 +0,0 @@ - - -var cc = require('..') -var assert = require('assert') - - -//throw on invalid json -assert.throws(function () { - cc(__dirname + '/broken.json') -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/broken.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/broken.json deleted file mode 100644 index 2107ac18..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/broken.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "config-chain", - "version": "0.3.0", - "description": "HANDLE CONFIGURATION ONCE AND FOR ALL", - "homepage": "http://github.com/dominictarr/config-chain", - "repository": { - "type": "git", - "url": "https://github.com/dominictarr/config-chain.git" - } - //missing , and then this comment. this json is intensionally invalid - "dependencies": { - "proto-list": "1", - "ini": "~1.0.2" - }, - "bundleDependencies": ["ini"], - "REM": "REMEMBER TO REMOVE BUNDLING WHEN/IF ISAACS MERGES ini#7", - "author": "Dominic Tarr (http://dominictarr.com)", - "scripts": { - "test": "node test/find-file.js && node test/ini.js && node test/env.js" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/chain-class.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/chain-class.js deleted file mode 100644 index bbc0d4cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/chain-class.js +++ /dev/null @@ -1,100 +0,0 @@ -var test = require('tap').test -var CC = require('../index.js').ConfigChain - -var env = { foo_blaz : 'blzaa', foo_env : 'myenv' } -var jsonObj = { blaz: 'json', json: true } -var iniObj = { 'x.y.z': 'xyz', blaz: 'ini' } - -var fs = require('fs') -var ini = require('ini') - -fs.writeFileSync('/tmp/config-chain-class.json', JSON.stringify(jsonObj)) -fs.writeFileSync('/tmp/config-chain-class.ini', ini.stringify(iniObj)) - -var http = require('http') -var reqs = 0 -http.createServer(function (q, s) { - if (++reqs === 2) this.close() - if (q.url === '/json') { - // make sure that the requests come back from the server - // out of order. they should still be ordered properly - // in the resulting config object set. - setTimeout(function () { - s.setHeader('content-type', 'application/json') - s.end(JSON.stringify({ - blaz: 'http', - http: true, - json: true - })) - }, 200) - } else { - s.setHeader('content-type', 'application/ini') - s.end(ini.stringify({ - blaz: 'http', - http: true, - ini: true, - json: false - })) - } -}).listen(1337) - -test('basic class test', function (t) { - var cc = new CC() - var expectlist = - [ { blaz: 'json', json: true }, - { 'x.y.z': 'xyz', blaz: 'ini' }, - { blaz: 'blzaa', env: 'myenv' }, - { blaz: 'http', http: true, json: true }, - { blaz: 'http', http: true, ini: true, json: false } ] - - cc.addFile('/tmp/config-chain-class.json') - .addFile('/tmp/config-chain-class.ini') - .addEnv('foo_', env) - .addUrl('http://localhost:1337/json') - .addUrl('http://localhost:1337/ini') - .on('load', function () { - t.same(cc.list, expectlist) - t.same(cc.snapshot, { blaz: 'json', - json: true, - 'x.y.z': 'xyz', - env: 'myenv', - http: true, - ini: true }) - - cc.del('blaz', '/tmp/config-chain-class.json') - t.same(cc.snapshot, { blaz: 'ini', - json: true, - 'x.y.z': 'xyz', - env: 'myenv', - http: true, - ini: true }) - cc.del('blaz') - t.same(cc.snapshot, { json: true, - 'x.y.z': 'xyz', - env: 'myenv', - http: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { 'x.y.z': 'xyz', - env: 'myenv', - http: true, - json: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { env: 'myenv', - http: true, - json: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { http: true, - json: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { http: true, - ini: true, - json: false }) - cc.shift() - t.same(cc.snapshot, {}) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/env.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/env.js deleted file mode 100644 index fb718f32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/env.js +++ /dev/null @@ -1,10 +0,0 @@ -var cc = require('..') -var assert = require('assert') - -assert.deepEqual({ - hello: true -}, cc.env('test_', { - 'test_hello': true, - 'ignore_this': 4, - 'ignore_test_this_too': [] -})) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/find-file.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/find-file.js deleted file mode 100644 index 23cde52e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/find-file.js +++ /dev/null @@ -1,13 +0,0 @@ - -var fs = require('fs') - , assert = require('assert') - , objx = { - rand: Math.random() - } - -fs.writeFileSync('/tmp/random-test-config.json', JSON.stringify(objx)) - -var cc = require('../') -var path = cc.find('tmp/random-test-config.json') - -assert.equal(path, '/tmp/random-test-config.json') \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/get.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/get.js deleted file mode 100644 index d6fd79f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/get.js +++ /dev/null @@ -1,15 +0,0 @@ -var cc = require("../"); - -var chain = cc() - , name = "forFun"; - -chain - .add({ - __sample:"for fun only" - }, name) - .on("load", function() { - //It throw exception here - console.log(chain.get("__sample", name)); - //But if I drop the name param, it run normally and return as expected: "for fun only" - //console.log(chain.get("__sample")); - }); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/ignore-unfound-file.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/ignore-unfound-file.js deleted file mode 100644 index d742b82b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/ignore-unfound-file.js +++ /dev/null @@ -1,5 +0,0 @@ - -var cc = require('..') - -//should not throw -cc(__dirname, 'non_existing_file') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/ini.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/ini.js deleted file mode 100644 index 5572a6ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/ini.js +++ /dev/null @@ -1,18 +0,0 @@ - - -var cc =require('..') -var INI = require('ini') -var assert = require('assert') - -function test(obj) { - - var _json, _ini - var json = cc.parse (_json = JSON.stringify(obj)) - var ini = cc.parse (_ini = INI.stringify(obj)) -console.log(_ini, _json) - assert.deepEqual(json, ini) -} - - -test({hello: true}) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/save.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/save.js deleted file mode 100644 index bc97bbd3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/config-chain/test/save.js +++ /dev/null @@ -1,59 +0,0 @@ -var CC = require('../index.js').ConfigChain -var test = require('tap').test - -var f1 = '/tmp/f1.ini' -var f2 = '/tmp/f2.json' - -var ini = require('ini') - -var f1data = {foo: {bar: 'baz'}, bloo: 'jaus'} -var f2data = {oof: {rab: 'zab'}, oolb: 'suaj'} - -var fs = require('fs') - -fs.writeFileSync(f1, ini.stringify(f1data), 'utf8') -fs.writeFileSync(f2, JSON.stringify(f2data), 'utf8') - -test('test saving and loading ini files', function (t) { - new CC() - .add({grelb:'blerg'}, 'opt') - .addFile(f1, 'ini', 'inifile') - .addFile(f2, 'json', 'jsonfile') - .on('load', function (cc) { - - t.same(cc.snapshot, { grelb: 'blerg', - bloo: 'jaus', - foo: { bar: 'baz' }, - oof: { rab: 'zab' }, - oolb: 'suaj' }) - - t.same(cc.list, [ { grelb: 'blerg' }, - { bloo: 'jaus', foo: { bar: 'baz' } }, - { oof: { rab: 'zab' }, oolb: 'suaj' } ]) - - cc.set('grelb', 'brelg', 'opt') - .set('foo', 'zoo', 'inifile') - .set('oof', 'ooz', 'jsonfile') - .save('inifile') - .save('jsonfile') - .on('save', function () { - t.equal(fs.readFileSync(f1, 'utf8'), - "bloo=jaus\nfoo=zoo\n") - t.equal(fs.readFileSync(f2, 'utf8'), - "{\"oof\":\"ooz\",\"oolb\":\"suaj\"}") - - t.same(cc.snapshot, { grelb: 'brelg', - bloo: 'jaus', - foo: 'zoo', - oof: 'ooz', - oolb: 'suaj' }) - - t.same(cc.list, [ { grelb: 'brelg' }, - { bloo: 'jaus', foo: 'zoo' }, - { oof: 'ooz', oolb: 'suaj' } ]) - - t.pass('ok') - t.end() - }) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/LICENSE deleted file mode 100644 index a3187cc1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright Joyent, Inc. and other Node contributors. All rights reserved. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/README.md deleted file mode 100644 index dc6fccec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# debuglog - backport of util.debuglog() from node v0.11 - -To facilitate using the `util.debuglog()` function that will be available when -node v0.12 is released now, this is a copy extracted from the source. - -## require('debuglog') - -Return `util.debuglog`, if it exists, otherwise it will return an internal copy -of the implementation from node v0.11. - -## debuglog(section) - -* `section` {String} The section of the program to be debugged -* Returns: {Function} The logging function - -This is used to create a function which conditionally writes to stderr -based on the existence of a `NODE_DEBUG` environment variable. If the -`section` name appears in that environment variable, then the returned -function will be similar to `console.error()`. If not, then the -returned function is a no-op. - -For example: - -```javascript -var debuglog = util.debuglog('foo'); - -var bar = 123; -debuglog('hello from foo [%d]', bar); -``` - -If this program is run with `NODE_DEBUG=foo` in the environment, then -it will output something like: - - FOO 3245: hello from foo [123] - -where `3245` is the process id. If it is not run with that -environment variable set, then it will not print anything. - -You may separate multiple `NODE_DEBUG` environment variables with a -comma. For example, `NODE_DEBUG=fs,net,tls`. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/debuglog.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/debuglog.js deleted file mode 100644 index 748fd72a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/debuglog.js +++ /dev/null @@ -1,22 +0,0 @@ -var util = require('util'); - -module.exports = (util && util.debuglog) || debuglog; - -var debugs = {}; -var debugEnviron = process.env.NODE_DEBUG || ''; - -function debuglog(set) { - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = util.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/package.json deleted file mode 100644 index b192d407..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/debuglog/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "debuglog", - "version": "1.0.1", - "description": "backport of util.debuglog from node v0.11", - "license": "MIT", - "main": "debuglog.js", - "repository": { - "type": "git", - "url": "git+https://github.com/sam-github/node-debuglog.git" - }, - "author": { - "name": "Sam Roberts", - "email": "sam@strongloop.com" - }, - "engines": { - "node": "*" - }, - "browser": { - "util": false - }, - "bugs": { - "url": "https://github.com/sam-github/node-debuglog/issues" - }, - "homepage": "https://github.com/sam-github/node-debuglog", - "_id": "debuglog@1.0.1", - "dist": { - "shasum": "aa24ffb9ac3df9a2351837cfb2d279360cd78492", - "tarball": "http://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz" - }, - "_from": "debuglog@1.0.1", - "_npmVersion": "1.4.3", - "_npmUser": { - "name": "octet", - "email": "sam@strongloop.com" - }, - "maintainers": [ - { - "name": "octet", - "email": "sam@strongloop.com" - } - ], - "directories": {}, - "_shasum": "aa24ffb9ac3df9a2351837cfb2d279360cd78492", - "_resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/.travis.yml deleted file mode 100644 index e1bcee1a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: node_js -before_script: npm install -g npm@latest -node_js: - - '0.8' - - '0.10' - - '0.12' - - 'iojs' diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/README.md deleted file mode 100644 index bdfc8ba8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# dezalgo - -Contain async insanity so that the dark pony lord doesn't eat souls - -See [this blog -post](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony). - -## USAGE - -Pass a callback to `dezalgo` and it will ensure that it is *always* -called in a future tick, and never in this tick. - -```javascript -var dz = require('dezalgo') - -var cache = {} -function maybeSync(arg, cb) { - cb = dz(cb) - - // this will actually defer to nextTick - if (cache[arg]) cb(null, cache[arg]) - - fs.readFile(arg, function (er, data) { - // since this is *already* defered, it will call immediately - if (er) cb(er) - cb(null, cache[arg] = data) - }) -} -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/dezalgo.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/dezalgo.js deleted file mode 100644 index 04fd3ba7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/dezalgo.js +++ /dev/null @@ -1,22 +0,0 @@ -var wrappy = require('wrappy') -module.exports = wrappy(dezalgo) - -var asap = require('asap') - -function dezalgo (cb) { - var sync = true - asap(function () { - sync = false - }) - - return function zalgoSafe() { - var args = arguments - var me = this - if (sync) - asap(function() { - cb.apply(me, args) - }) - else - cb.apply(me, args) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/CHANGES.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/CHANGES.md deleted file mode 100644 index e9ffa462..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/CHANGES.md +++ /dev/null @@ -1,64 +0,0 @@ - -## 2.0.3 - -Version 2.0.3 fixes a bug when adjusting the capacity of the task queue. - -## 2.0.1-2.02 - -Version 2.0.1 fixes a bug in the way redirects were expressed that affected the -function of Browserify, but which Mr would tolerate. - -## 2.0.0 - -Version 2 of ASAP is a full rewrite with a few salient changes. -First, the ASAP source is CommonJS only and designed with [Browserify][] and -[Browserify-compatible][Mr] module loaders in mind. - -[Browserify]: https://github.com/substack/node-browserify -[Mr]: https://github.com/montagejs/mr - -The new version has been refactored in two dimensions. -Support for Node.js and browsers have been separated, using Browserify -redirects and ASAP has been divided into two modules. -The "raw" layer depends on the tasks to catch thrown exceptions and unravel -Node.js domains. - -The full implementation of ASAP is loadable as `require("asap")` in both Node.js -and browsers. - -The raw layer that lacks exception handling overhead is loadable as -`require("asap/raw")`. -The interface is the same for both layers. - -Tasks are no longer required to be functions, but can rather be any object that -implements `task.call()`. -With this feature you can recycle task objects to avoid garbage collector churn -and avoid closures in general. - -The implementation has been rigorously documented so that our successors can -understand the scope of the problem that this module solves and all of its -nuances, ensuring that the next generation of implementations know what details -are essential. - -- [asap.js](https://github.com/kriskowal/asap/blob/master/asap.js) -- [raw.js](https://github.com/kriskowal/asap/blob/master/raw.js) -- [browser-asap.js](https://github.com/kriskowal/asap/blob/master/browser-asap.js) -- [browser-raw.js](https://github.com/kriskowal/asap/blob/master/browser-raw.js) - -The new version has also been rigorously tested across a broad spectrum of -browsers, in both the window and worker context. -The following charts capture the browser test results for the most recent -release. -The first chart shows test results for ASAP running in the main window context. -The second chart shows test results for ASAP running in a web worker context. -Test results are inconclusive (grey) on browsers that do not support web -workers. -These data are captured automatically by [Continuous -Integration][]. - -![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg) - -![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg) - -[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md deleted file mode 100644 index ba18c613..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright 2009–2014 Contributors. All rights reserved. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/README.md deleted file mode 100644 index 452fd8c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/README.md +++ /dev/null @@ -1,237 +0,0 @@ -# ASAP - -[![Build Status](https://travis-ci.org/kriskowal/asap.png?branch=master)](https://travis-ci.org/kriskowal/asap) - -Promise and asynchronous observer libraries, as well as hand-rolled callback -programs and libraries, often need a mechanism to postpone the execution of a -callback until the next available event. -(See [Designing API’s for Asynchrony][Zalgo].) -The `asap` function executes a task **as soon as possible** but not before it -returns, waiting only for the completion of the current event and previously -scheduled tasks. - -```javascript -asap(function () { - // ... -}); -``` - -[Zalgo]: http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony - -This CommonJS package provides an `asap` module that exports a function that -executes a task function *as soon as possible*. - -ASAP strives to schedule events to occur before yielding for IO, reflow, -or redrawing. -Each event receives an independent stack, with only platform code in parent -frames and the events run in the order they are scheduled. - -ASAP provides a fast event queue that will execute tasks until it is -empty before yielding to the JavaScript engine's underlying event-loop. -When a task gets added to a previously empty event queue, ASAP schedules a flush -event, preferring for that event to occur before the JavaScript engine has an -opportunity to perform IO tasks or rendering, thus making the first task and -subsequent tasks semantically indistinguishable. -ASAP uses a variety of techniques to preserve this invariant on different -versions of browsers and Node.js. - -By design, ASAP prevents input events from being handled until the task -queue is empty. -If the process is busy enough, this may cause incoming connection requests to be -dropped, and may cause existing connections to inform the sender to reduce the -transmission rate or stall. -ASAP allows this on the theory that, if there is enough work to do, there is no -sense in looking for trouble. -As a consequence, ASAP can interfere with smooth animation. -If your task should be tied to the rendering loop, consider using -`requestAnimationFrame` instead. -A long sequence of tasks can also effect the long running script dialog. -If this is a problem, you may be able to use ASAP’s cousin `setImmediate` to -break long processes into shorter intervals and periodically allow the browser -to breathe. -`setImmediate` will yield for IO, reflow, and repaint events. -It also returns a handler and can be canceled. -For a `setImmediate` shim, consider [YuzuJS setImmediate][setImmediate]. - -[setImmediate]: https://github.com/YuzuJS/setImmediate - -Take care. -ASAP can sustain infinite recursive calls without warning. -It will not halt from a stack overflow, and it will not consume unbounded -memory. -This is behaviorally equivalent to an infinite loop. -Just as with infinite loops, you can monitor a Node.js process for this behavior -with a heart-beat signal. -As with infinite loops, a very small amount of caution goes a long way to -avoiding problems. - -```javascript -function loop() { - asap(loop); -} -loop(); -``` - -In browsers, if a task throws an exception, it will not interrupt the flushing -of high-priority tasks. -The exception will be postponed to a later, low-priority event to avoid -slow-downs. -In Node.js, if a task throws an exception, ASAP will resume flushing only if—and -only after—the error is handled by `domain.on("error")` or -`process.on("uncaughtException")`. - -## Raw ASAP - -Checking for exceptions comes at a cost. -The package also provides an `asap/raw` module that exports the underlying -implementation which is faster but stalls if a task throws an exception. -This internal version of the ASAP function does not check for errors. -If a task does throw an error, it will stall the event queue unless you manually -call `rawAsap.requestFlush()` before throwing the error, or any time after. - -In Node.js, `asap/raw` also runs all tasks outside any domain. -If you need a task to be bound to your domain, you will have to do it manually. - -```js -if (process.domain) { - task = process.domain.bind(task); -} -rawAsap(task); -``` - -## Tasks - -A task may be any object that implements `call()`. -A function will suffice, but closures tend not to be reusable and can cause -garbage collector churn. -Both `asap` and `rawAsap` accept task objects to give you the option of -recycling task objects or using higher callable object abstractions. -See the `asap` source for an illustration. - - -## Compatibility - -ASAP is tested on Node.js v0.10 and in a broad spectrum of web browsers. -The following charts capture the browser test results for the most recent -release. -The first chart shows test results for ASAP running in the main window context. -The second chart shows test results for ASAP running in a web worker context. -Test results are inconclusive (grey) on browsers that do not support web -workers. -These data are captured automatically by [Continuous -Integration][]. - -[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md - -![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg) - -![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg) - -## Caveats - -When a task is added to an empty event queue, it is not always possible to -guarantee that the task queue will begin flushing immediately after the current -event. -However, once the task queue begins flushing, it will not yield until the queue -is empty, even if the queue grows while executing tasks. - -The following browsers allow the use of [DOM mutation observers][] to access -the HTML [microtask queue][], and thus begin flushing ASAP's task queue -immediately at the end of the current event loop turn, before any rendering or -IO: - -[microtask queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#microtask-queue -[DOM mutation observers]: http://dom.spec.whatwg.org/#mutation-observers - -- Android 4–4.3 -- Chrome 26–34 -- Firefox 14–29 -- Internet Explorer 11 -- iPad Safari 6–7.1 -- iPhone Safari 7–7.1 -- Safari 6–7 - -In the absense of mutation observers, there are a few browsers, and situations -like web workers in some of the above browsers, where [message channels][] -would be a useful way to avoid falling back to timers. -Message channels give direct access to the HTML [task queue][], so the ASAP -task queue would flush after any already queued rendering and IO tasks, but -without having the minimum delay imposed by timers. -However, among these browsers, Internet Explorer 10 and Safari do not reliably -dispatch messages, so they are not worth the trouble to implement. - -[message channels]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#message-channels -[task queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#concept-task - -- Internet Explorer 10 -- Safair 5.0-1 -- Opera 11-12 - -In the absense of mutation observers, these browsers and the following browsers -all fall back to using `setTimeout` and `setInterval` to ensure that a `flush` -occurs. -The implementation uses both and cancels whatever handler loses the race, since -`setTimeout` tends to occasionally skip tasks in unisolated circumstances. -Timers generally delay the flushing of ASAP's task queue for four milliseconds. - -- Firefox 3–13 -- Internet Explorer 6–10 -- iPad Safari 4.3 -- Lynx 2.8.7 - - -## Heritage - -ASAP has been factored out of the [Q][] asynchronous promise library. -It originally had a naïve implementation in terms of `setTimeout`, but -[Malte Ubl][NonBlocking] provided an insight that `postMessage` might be -useful for creating a high-priority, no-delay event dispatch hack. -Since then, Internet Explorer proposed and implemented `setImmediate`. -Robert Katić began contributing to Q by measuring the performance of -the internal implementation of `asap`, paying particular attention to -error recovery. -Domenic, Robert, and Kris Kowal collectively settled on the current strategy of -unrolling the high-priority event queue internally regardless of what strategy -we used to dispatch the potentially lower-priority flush event. -Domenic went on to make ASAP cooperate with Node.js domains. - -[Q]: https://github.com/kriskowal/q -[NonBlocking]: http://www.nonblocking.io/2011/06/windownexttick.html - -For further reading, Nicholas Zakas provided a thorough article on [The -Case for setImmediate][NCZ]. - -[NCZ]: http://www.nczonline.net/blog/2013/07/09/the-case-for-setimmediate/ - -Ember’s RSVP promise implementation later [adopted][RSVP ASAP] the name ASAP but -further developed the implentation. -Particularly, The `MessagePort` implementation was abandoned due to interaction -[problems with Mobile Internet Explorer][IE Problems] in favor of an -implementation backed on the newer and more reliable DOM `MutationObserver` -interface. -These changes were back-ported into this library. - -[IE Problems]: https://github.com/cujojs/when/issues/197 -[RSVP ASAP]: https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js - -In addition, ASAP factored into `asap` and `asap/raw`, such that `asap` remained -exception-safe, but `asap/raw` provided a tight kernel that could be used for -tasks that guaranteed that they would not throw exceptions. -This core is useful for promise implementations that capture thrown errors in -rejected promises and do not need a second safety net. -At the same time, the exception handling in `asap` was factored into separate -implementations for Node.js and browsers, using the the [Browserify][Browser -Config] `browser` property in `package.json` to instruct browser module loaders -and bundlers, including [Browserify][], [Mr][], and [Mop][], to use the -browser-only implementation. - -[Browser Config]: https://gist.github.com/defunctzombie/4339901 -[Browserify]: https://github.com/substack/node-browserify -[Mr]: https://github.com/montagejs/mr -[Mop]: https://github.com/montagejs/mop - -## License - -Copyright 2009-2014 by Contributors -MIT License (enclosed) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/asap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/asap.js deleted file mode 100644 index f04fcd58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/asap.js +++ /dev/null @@ -1,65 +0,0 @@ -"use strict"; - -var rawAsap = require("./raw"); -var freeTasks = []; - -/** - * Calls a task as soon as possible after returning, in its own event, with - * priority over IO events. An exception thrown in a task can be handled by - * `process.on("uncaughtException") or `domain.on("error")`, but will otherwise - * crash the process. If the error is handled, all subsequent tasks will - * resume. - * - * @param {{call}} task A callable object, typically a function that takes no - * arguments. - */ -module.exports = asap; -function asap(task) { - var rawTask; - if (freeTasks.length) { - rawTask = freeTasks.pop(); - } else { - rawTask = new RawTask(); - } - rawTask.task = task; - rawTask.domain = process.domain; - rawAsap(rawTask); -} - -function RawTask() { - this.task = null; - this.domain = null; -} - -RawTask.prototype.call = function () { - if (this.domain) { - this.domain.enter(); - } - var threw = true; - try { - this.task.call(); - threw = false; - // If the task throws an exception (presumably) Node.js restores the - // domain stack for the next event. - if (this.domain) { - this.domain.exit(); - } - } finally { - // We use try/finally and a threw flag to avoid messing up stack traces - // when we catch and release errors. - if (threw) { - // In Node.js, uncaught exceptions are considered fatal errors. - // Re-throw them to interrupt flushing! - // Ensure that flushing continues if an uncaught exception is - // suppressed listening process.on("uncaughtException") or - // domain.on("error"). - rawAsap.requestFlush(); - } - // If the task threw an error, we do not want to exit the domain here. - // Exiting the domain would prevent the domain from catching the error. - this.task = null; - this.domain = null; - freeTasks.push(this); - } -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js deleted file mode 100644 index 805c9824..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; - -// rawAsap provides everything we need except exception management. -var rawAsap = require("./raw"); -// RawTasks are recycled to reduce GC churn. -var freeTasks = []; -// We queue errors to ensure they are thrown in right order (FIFO). -// Array-as-queue is good enough here, since we are just dealing with exceptions. -var pendingErrors = []; -var requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError); - -function throwFirstError() { - if (pendingErrors.length) { - throw pendingErrors.shift(); - } -} - -/** - * Calls a task as soon as possible after returning, in its own event, with priority - * over other events like animation, reflow, and repaint. An error thrown from an - * event will not interrupt, nor even substantially slow down the processing of - * other events, but will be rather postponed to a lower priority event. - * @param {{call}} task A callable object, typically a function that takes no - * arguments. - */ -module.exports = asap; -function asap(task) { - var rawTask; - if (freeTasks.length) { - rawTask = freeTasks.pop(); - } else { - rawTask = new RawTask(); - } - rawTask.task = task; - rawAsap(rawTask); -} - -// We wrap tasks with recyclable task objects. A task object implements -// `call`, just like a function. -function RawTask() { - this.task = null; -} - -// The sole purpose of wrapping the task is to catch the exception and recycle -// the task object after its single use. -RawTask.prototype.call = function () { - try { - this.task.call(); - } catch (error) { - if (asap.onerror) { - // This hook exists purely for testing purposes. - // Its name will be periodically randomized to break any code that - // depends on its existence. - asap.onerror(error); - } else { - // In a web browser, exceptions are not fatal. However, to avoid - // slowing down the queue of pending tasks, we rethrow the error in a - // lower priority turn. - pendingErrors.push(error); - requestErrorThrow(); - } - } finally { - this.task = null; - freeTasks[freeTasks.length] = this; - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js deleted file mode 100644 index 1cfd7729..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js +++ /dev/null @@ -1,220 +0,0 @@ -"use strict"; - -// Use the fastest means possible to execute a task in its own turn, with -// priority over other events including IO, animation, reflow, and redraw -// events in browsers. -// -// An exception thrown by a task will permanently interrupt the processing of -// subsequent tasks. The higher level `asap` function ensures that if an -// exception is thrown by a task, that the task queue will continue flushing as -// soon as possible, but if you use `rawAsap` directly, you are responsible to -// either ensure that no exceptions are thrown from your task, or to manually -// call `rawAsap.requestFlush` if an exception is thrown. -module.exports = rawAsap; -function rawAsap(task) { - if (!queue.length) { - requestFlush(); - flushing = true; - } - // Equivalent to push, but avoids a function call. - queue[queue.length] = task; -} - -var queue = []; -// Once a flush has been requested, no further calls to `requestFlush` are -// necessary until the next `flush` completes. -var flushing = false; -// `requestFlush` is an implementation-specific method that attempts to kick -// off a `flush` event as quickly as possible. `flush` will attempt to exhaust -// the event queue before yielding to the browser's own event loop. -var requestFlush; -// The position of the next task to execute in the task queue. This is -// preserved between calls to `flush` so that it can be resumed if -// a task throws an exception. -var index = 0; -// If a task schedules additional tasks recursively, the task queue can grow -// unbounded. To prevent memory exhaustion, the task queue will periodically -// truncate already-completed tasks. -var capacity = 1024; - -// The flush function processes all tasks that have been scheduled with -// `rawAsap` unless and until one of those tasks throws an exception. -// If a task throws an exception, `flush` ensures that its state will remain -// consistent and will resume where it left off when called again. -// However, `flush` does not make any arrangements to be called again if an -// exception is thrown. -function flush() { - while (index < queue.length) { - var currentIndex = index; - // Advance the index before calling the task. This ensures that we will - // begin flushing on the next task the task throws an error. - index = index + 1; - queue[currentIndex].call(); - // Prevent leaking memory for long chains of recursive calls to `asap`. - // If we call `asap` within tasks scheduled by `asap`, the queue will - // grow, but to avoid an O(n) walk for every task we execute, we don't - // shift tasks off the queue after they have been executed. - // Instead, we periodically shift 1024 tasks off the queue. - if (index > capacity) { - // Manually shift all values starting at the index back to the - // beginning of the queue. - for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { - queue[scan] = queue[scan + index]; - } - queue.length -= index; - index = 0; - } - } - queue.length = 0; - index = 0; - flushing = false; -} - -// `requestFlush` is implemented using a strategy based on data collected from -// every available SauceLabs Selenium web driver worker at time of writing. -// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593 - -// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that -// have WebKitMutationObserver but not un-prefixed MutationObserver. -// Must use `global` instead of `window` to work in both frames and web -// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop. -var BrowserMutationObserver = global.MutationObserver || global.WebKitMutationObserver; - -// MutationObservers are desirable because they have high priority and work -// reliably everywhere they are implemented. -// They are implemented in all modern browsers. -// -// - Android 4-4.3 -// - Chrome 26-34 -// - Firefox 14-29 -// - Internet Explorer 11 -// - iPad Safari 6-7.1 -// - iPhone Safari 7-7.1 -// - Safari 6-7 -if (typeof BrowserMutationObserver === "function") { - requestFlush = makeRequestCallFromMutationObserver(flush); - -// MessageChannels are desirable because they give direct access to the HTML -// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera -// 11-12, and in web workers in many engines. -// Although message channels yield to any queued rendering and IO tasks, they -// would be better than imposing the 4ms delay of timers. -// However, they do not work reliably in Internet Explorer or Safari. - -// Internet Explorer 10 is the only browser that has setImmediate but does -// not have MutationObservers. -// Although setImmediate yields to the browser's renderer, it would be -// preferrable to falling back to setTimeout since it does not have -// the minimum 4ms penalty. -// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and -// Desktop to a lesser extent) that renders both setImmediate and -// MessageChannel useless for the purposes of ASAP. -// https://github.com/kriskowal/q/issues/396 - -// Timers are implemented universally. -// We fall back to timers in workers in most engines, and in foreground -// contexts in the following browsers. -// However, note that even this simple case requires nuances to operate in a -// broad spectrum of browsers. -// -// - Firefox 3-13 -// - Internet Explorer 6-9 -// - iPad Safari 4.3 -// - Lynx 2.8.7 -} else { - requestFlush = makeRequestCallFromTimer(flush); -} - -// `requestFlush` requests that the high priority event queue be flushed as -// soon as possible. -// This is useful to prevent an error thrown in a task from stalling the event -// queue if the exception handled by Node.js’s -// `process.on("uncaughtException")` or by a domain. -rawAsap.requestFlush = requestFlush; - -// To request a high priority event, we induce a mutation observer by toggling -// the text of a text node between "1" and "-1". -function makeRequestCallFromMutationObserver(callback) { - var toggle = 1; - var observer = new BrowserMutationObserver(callback); - var node = document.createTextNode(""); - observer.observe(node, {characterData: true}); - return function requestCall() { - toggle = -toggle; - node.data = toggle; - }; -} - -// The message channel technique was discovered by Malte Ubl and was the -// original foundation for this library. -// http://www.nonblocking.io/2011/06/windownexttick.html - -// Safari 6.0.5 (at least) intermittently fails to create message ports on a -// page's first load. Thankfully, this version of Safari supports -// MutationObservers, so we don't need to fall back in that case. - -// function makeRequestCallFromMessageChannel(callback) { -// var channel = new MessageChannel(); -// channel.port1.onmessage = callback; -// return function requestCall() { -// channel.port2.postMessage(0); -// }; -// } - -// For reasons explained above, we are also unable to use `setImmediate` -// under any circumstances. -// Even if we were, there is another bug in Internet Explorer 10. -// It is not sufficient to assign `setImmediate` to `requestFlush` because -// `setImmediate` must be called *by name* and therefore must be wrapped in a -// closure. -// Never forget. - -// function makeRequestCallFromSetImmediate(callback) { -// return function requestCall() { -// setImmediate(callback); -// }; -// } - -// Safari 6.0 has a problem where timers will get lost while the user is -// scrolling. This problem does not impact ASAP because Safari 6.0 supports -// mutation observers, so that implementation is used instead. -// However, if we ever elect to use timers in Safari, the prevalent work-around -// is to add a scroll event listener that calls for a flush. - -// `setTimeout` does not call the passed callback if the delay is less than -// approximately 7 in web workers in Firefox 8 through 18, and sometimes not -// even then. - -function makeRequestCallFromTimer(callback) { - return function requestCall() { - // We dispatch a timeout with a specified delay of 0 for engines that - // can reliably accommodate that request. This will usually be snapped - // to a 4 milisecond delay, but once we're flushing, there's no delay - // between events. - var timeoutHandle = setTimeout(handleTimer, 0); - // However, since this timer gets frequently dropped in Firefox - // workers, we enlist an interval handle that will try to fire - // an event 20 times per second until it succeeds. - var intervalHandle = setInterval(handleTimer, 50); - - function handleTimer() { - // Whichever timer succeeds will cancel both timers and - // execute the callback. - clearTimeout(timeoutHandle); - clearInterval(intervalHandle); - callback(); - } - }; -} - -// This is for `asap.js` only. -// Its name will be periodically randomized to break any code that depends on -// its existence. -rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer; - -// ASAP was originally a nextTick shim included in Q. This was factored out -// into this ASAP package. It was later adapted to RSVP which made further -// amendments. These decisions, particularly to marginalize MessageChannel and -// to capture the MutationObserver implementation in a closure, were integrated -// back into ASAP proper. -// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/package.json deleted file mode 100644 index ba54d711..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "asap", - "version": "2.0.3", - "description": "High-priority task queue for Node.js and browsers", - "keywords": [ - "event", - "task", - "queue" - ], - "license": { - "type": "MIT", - "url": "https://github.com/kriskowal/asap/raw/master/LICENSE.md" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/kriskowal/asap.git" - }, - "main": "./asap.js", - "browser": { - "./asap.js": "./browser-asap.js", - "./raw.js": "./browser-raw.js", - "./test/domain.js": "./test/browser-domain.js" - }, - "files": [ - "raw.js", - "asap.js", - "browser-raw.js", - "browser-asap.js" - ], - "scripts": { - "test": "npm run lint && npm run test-node", - "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker", - "test-node": "node test/asap-test.js", - "test-publish": "node scripts/publish-bundle.js test/asap-test.js | pbcopy", - "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener", - "test-saucelabs": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-spot-configurations.json", - "test-saucelabs-all": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-all-configurations.json", - "test-saucelabs-worker": "node scripts/saucelabs-worker-test.js scripts/saucelabs-spot-configurations.json", - "test-saucelabs-worker-all": "node scripts/saucelabs-worker-test.js scripts/saucelabs-all-configurations.json", - "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)" - }, - "devDependencies": { - "events": "^1.0.1", - "jshint": "^2.5.1", - "knox": "^0.8.10", - "mr": "^2.0.5", - "opener": "^1.3.0", - "q": "^2.0.3", - "q-io": "^2.0.3", - "saucelabs": "^0.1.1", - "wd": "^0.2.21", - "weak-map": "^1.0.5" - }, - "readme": "# ASAP\n\n[![Build Status](https://travis-ci.org/kriskowal/asap.png?branch=master)](https://travis-ci.org/kriskowal/asap)\n\nPromise and asynchronous observer libraries, as well as hand-rolled callback\nprograms and libraries, often need a mechanism to postpone the execution of a\ncallback until the next available event.\n(See [Designing API’s for Asynchrony][Zalgo].)\nThe `asap` function executes a task **as soon as possible** but not before it\nreturns, waiting only for the completion of the current event and previously\nscheduled tasks.\n\n```javascript\nasap(function () {\n // ...\n});\n```\n\n[Zalgo]: http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony\n\nThis CommonJS package provides an `asap` module that exports a function that\nexecutes a task function *as soon as possible*.\n\nASAP strives to schedule events to occur before yielding for IO, reflow,\nor redrawing.\nEach event receives an independent stack, with only platform code in parent\nframes and the events run in the order they are scheduled.\n\nASAP provides a fast event queue that will execute tasks until it is\nempty before yielding to the JavaScript engine's underlying event-loop.\nWhen a task gets added to a previously empty event queue, ASAP schedules a flush\nevent, preferring for that event to occur before the JavaScript engine has an\nopportunity to perform IO tasks or rendering, thus making the first task and\nsubsequent tasks semantically indistinguishable.\nASAP uses a variety of techniques to preserve this invariant on different\nversions of browsers and Node.js.\n\nBy design, ASAP prevents input events from being handled until the task\nqueue is empty.\nIf the process is busy enough, this may cause incoming connection requests to be\ndropped, and may cause existing connections to inform the sender to reduce the\ntransmission rate or stall.\nASAP allows this on the theory that, if there is enough work to do, there is no\nsense in looking for trouble.\nAs a consequence, ASAP can interfere with smooth animation.\nIf your task should be tied to the rendering loop, consider using\n`requestAnimationFrame` instead.\nA long sequence of tasks can also effect the long running script dialog.\nIf this is a problem, you may be able to use ASAP’s cousin `setImmediate` to\nbreak long processes into shorter intervals and periodically allow the browser\nto breathe.\n`setImmediate` will yield for IO, reflow, and repaint events.\nIt also returns a handler and can be canceled.\nFor a `setImmediate` shim, consider [YuzuJS setImmediate][setImmediate].\n\n[setImmediate]: https://github.com/YuzuJS/setImmediate\n\nTake care.\nASAP can sustain infinite recursive calls without warning.\nIt will not halt from a stack overflow, and it will not consume unbounded\nmemory.\nThis is behaviorally equivalent to an infinite loop.\nJust as with infinite loops, you can monitor a Node.js process for this behavior\nwith a heart-beat signal.\nAs with infinite loops, a very small amount of caution goes a long way to\navoiding problems.\n\n```javascript\nfunction loop() {\n asap(loop);\n}\nloop();\n```\n\nIn browsers, if a task throws an exception, it will not interrupt the flushing\nof high-priority tasks.\nThe exception will be postponed to a later, low-priority event to avoid\nslow-downs.\nIn Node.js, if a task throws an exception, ASAP will resume flushing only if—and\nonly after—the error is handled by `domain.on(\"error\")` or\n`process.on(\"uncaughtException\")`.\n\n## Raw ASAP\n\nChecking for exceptions comes at a cost.\nThe package also provides an `asap/raw` module that exports the underlying\nimplementation which is faster but stalls if a task throws an exception.\nThis internal version of the ASAP function does not check for errors.\nIf a task does throw an error, it will stall the event queue unless you manually\ncall `rawAsap.requestFlush()` before throwing the error, or any time after.\n\nIn Node.js, `asap/raw` also runs all tasks outside any domain.\nIf you need a task to be bound to your domain, you will have to do it manually.\n\n```js\nif (process.domain) {\n task = process.domain.bind(task);\n}\nrawAsap(task);\n```\n\n## Tasks\n\nA task may be any object that implements `call()`.\nA function will suffice, but closures tend not to be reusable and can cause\ngarbage collector churn.\nBoth `asap` and `rawAsap` accept task objects to give you the option of\nrecycling task objects or using higher callable object abstractions.\nSee the `asap` source for an illustration.\n\n\n## Compatibility\n\nASAP is tested on Node.js v0.10 and in a broad spectrum of web browsers.\nThe following charts capture the browser test results for the most recent\nrelease.\nThe first chart shows test results for ASAP running in the main window context.\nThe second chart shows test results for ASAP running in a web worker context.\nTest results are inconclusive (grey) on browsers that do not support web\nworkers.\nThese data are captured automatically by [Continuous\nIntegration][].\n\n[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md\n\n![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg)\n\n![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg)\n\n## Caveats\n\nWhen a task is added to an empty event queue, it is not always possible to\nguarantee that the task queue will begin flushing immediately after the current\nevent.\nHowever, once the task queue begins flushing, it will not yield until the queue\nis empty, even if the queue grows while executing tasks.\n\nThe following browsers allow the use of [DOM mutation observers][] to access\nthe HTML [microtask queue][], and thus begin flushing ASAP's task queue\nimmediately at the end of the current event loop turn, before any rendering or\nIO:\n\n[microtask queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#microtask-queue\n[DOM mutation observers]: http://dom.spec.whatwg.org/#mutation-observers\n\n- Android 4–4.3\n- Chrome 26–34\n- Firefox 14–29\n- Internet Explorer 11\n- iPad Safari 6–7.1\n- iPhone Safari 7–7.1\n- Safari 6–7\n\nIn the absense of mutation observers, there are a few browsers, and situations\nlike web workers in some of the above browsers, where [message channels][]\nwould be a useful way to avoid falling back to timers.\nMessage channels give direct access to the HTML [task queue][], so the ASAP\ntask queue would flush after any already queued rendering and IO tasks, but\nwithout having the minimum delay imposed by timers.\nHowever, among these browsers, Internet Explorer 10 and Safari do not reliably\ndispatch messages, so they are not worth the trouble to implement.\n\n[message channels]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#message-channels\n[task queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#concept-task\n\n- Internet Explorer 10\n- Safair 5.0-1\n- Opera 11-12\n\nIn the absense of mutation observers, these browsers and the following browsers\nall fall back to using `setTimeout` and `setInterval` to ensure that a `flush`\noccurs.\nThe implementation uses both and cancels whatever handler loses the race, since\n`setTimeout` tends to occasionally skip tasks in unisolated circumstances.\nTimers generally delay the flushing of ASAP's task queue for four milliseconds.\n\n- Firefox 3–13\n- Internet Explorer 6–10\n- iPad Safari 4.3\n- Lynx 2.8.7\n\n\n## Heritage\n\nASAP has been factored out of the [Q][] asynchronous promise library.\nIt originally had a naïve implementation in terms of `setTimeout`, but\n[Malte Ubl][NonBlocking] provided an insight that `postMessage` might be\nuseful for creating a high-priority, no-delay event dispatch hack.\nSince then, Internet Explorer proposed and implemented `setImmediate`.\nRobert Katić began contributing to Q by measuring the performance of\nthe internal implementation of `asap`, paying particular attention to\nerror recovery.\nDomenic, Robert, and Kris Kowal collectively settled on the current strategy of\nunrolling the high-priority event queue internally regardless of what strategy\nwe used to dispatch the potentially lower-priority flush event.\nDomenic went on to make ASAP cooperate with Node.js domains.\n\n[Q]: https://github.com/kriskowal/q\n[NonBlocking]: http://www.nonblocking.io/2011/06/windownexttick.html\n\nFor further reading, Nicholas Zakas provided a thorough article on [The\nCase for setImmediate][NCZ].\n\n[NCZ]: http://www.nczonline.net/blog/2013/07/09/the-case-for-setimmediate/\n\nEmber’s RSVP promise implementation later [adopted][RSVP ASAP] the name ASAP but\nfurther developed the implentation.\nParticularly, The `MessagePort` implementation was abandoned due to interaction\n[problems with Mobile Internet Explorer][IE Problems] in favor of an\nimplementation backed on the newer and more reliable DOM `MutationObserver`\ninterface.\nThese changes were back-ported into this library.\n\n[IE Problems]: https://github.com/cujojs/when/issues/197\n[RSVP ASAP]: https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\nIn addition, ASAP factored into `asap` and `asap/raw`, such that `asap` remained\nexception-safe, but `asap/raw` provided a tight kernel that could be used for\ntasks that guaranteed that they would not throw exceptions.\nThis core is useful for promise implementations that capture thrown errors in\nrejected promises and do not need a second safety net.\nAt the same time, the exception handling in `asap` was factored into separate\nimplementations for Node.js and browsers, using the the [Browserify][Browser\nConfig] `browser` property in `package.json` to instruct browser module loaders\nand bundlers, including [Browserify][], [Mr][], and [Mop][], to use the\nbrowser-only implementation.\n\n[Browser Config]: https://gist.github.com/defunctzombie/4339901\n[Browserify]: https://github.com/substack/node-browserify\n[Mr]: https://github.com/montagejs/mr\n[Mop]: https://github.com/montagejs/mop\n\n## License\n\nCopyright 2009-2014 by Contributors\nMIT License (enclosed)\n\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/kriskowal/asap/issues" - }, - "homepage": "https://github.com/kriskowal/asap#readme", - "_id": "asap@2.0.3", - "_shasum": "1fc1d1564ee11620dfca6d67029850913f9f4679", - "_resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz", - "_from": "asap@>=2.0.0 <3.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/raw.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/raw.js deleted file mode 100644 index ae3b8923..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/node_modules/asap/raw.js +++ /dev/null @@ -1,101 +0,0 @@ -"use strict"; - -var domain; // The domain module is executed on demand -var hasSetImmediate = typeof setImmediate === "function"; - -// Use the fastest means possible to execute a task in its own turn, with -// priority over other events including network IO events in Node.js. -// -// An exception thrown by a task will permanently interrupt the processing of -// subsequent tasks. The higher level `asap` function ensures that if an -// exception is thrown by a task, that the task queue will continue flushing as -// soon as possible, but if you use `rawAsap` directly, you are responsible to -// either ensure that no exceptions are thrown from your task, or to manually -// call `rawAsap.requestFlush` if an exception is thrown. -module.exports = rawAsap; -function rawAsap(task) { - if (!queue.length) { - requestFlush(); - flushing = true; - } - // Avoids a function call - queue[queue.length] = task; -} - -var queue = []; -// Once a flush has been requested, no further calls to `requestFlush` are -// necessary until the next `flush` completes. -var flushing = false; -// The position of the next task to execute in the task queue. This is -// preserved between calls to `flush` so that it can be resumed if -// a task throws an exception. -var index = 0; -// If a task schedules additional tasks recursively, the task queue can grow -// unbounded. To prevent memory excaustion, the task queue will periodically -// truncate already-completed tasks. -var capacity = 1024; - -// The flush function processes all tasks that have been scheduled with -// `rawAsap` unless and until one of those tasks throws an exception. -// If a task throws an exception, `flush` ensures that its state will remain -// consistent and will resume where it left off when called again. -// However, `flush` does not make any arrangements to be called again if an -// exception is thrown. -function flush() { - while (index < queue.length) { - var currentIndex = index; - // Advance the index before calling the task. This ensures that we will - // begin flushing on the next task the task throws an error. - index = index + 1; - queue[currentIndex].call(); - // Prevent leaking memory for long chains of recursive calls to `asap`. - // If we call `asap` within tasks scheduled by `asap`, the queue will - // grow, but to avoid an O(n) walk for every task we execute, we don't - // shift tasks off the queue after they have been executed. - // Instead, we periodically shift 1024 tasks off the queue. - if (index > capacity) { - // Manually shift all values starting at the index back to the - // beginning of the queue. - for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { - queue[scan] = queue[scan + index]; - } - queue.length -= index; - index = 0; - } - } - queue.length = 0; - index = 0; - flushing = false; -} - -rawAsap.requestFlush = requestFlush; -function requestFlush() { - // Ensure flushing is not bound to any domain. - // It is not sufficient to exit the domain, because domains exist on a stack. - // To execute code outside of any domain, the following dance is necessary. - var parentDomain = process.domain; - if (parentDomain) { - if (!domain) { - // Lazy execute the domain module. - // Only employed if the user elects to use domains. - domain = require("domain"); - } - domain.active = process.domain = null; - } - - // `setImmediate` is slower that `process.nextTick`, but `process.nextTick` - // cannot handle recursion. - // `requestFlush` will only be called recursively from `asap.js`, to resume - // flushing after an error is thrown into a domain. - // Conveniently, `setImmediate` was introduced in the same version - // `process.nextTick` started throwing recursion errors. - if (flushing && hasSetImmediate) { - setImmediate(flush); - } else { - process.nextTick(flush); - } - - if (parentDomain) { - domain.active = process.domain = parentDomain; - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/package.json deleted file mode 100644 index ea2b1a6d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "dezalgo", - "version": "1.0.3", - "description": "Contain async insanity so that the dark pony lord doesn't eat souls", - "main": "dezalgo.js", - "directories": { - "test": "test" - }, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - }, - "devDependencies": { - "tap": "^1.2.0" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/dezalgo.git" - }, - "keywords": [ - "async", - "zalgo", - "the dark pony", - "he comes", - "asynchrony of all holy and good", - "T̯̪ͅo̯͖̹ ̻̮̖̲͢i̥̖n̢͈͇̝͍v͏͉ok̭̬̝ͅe̞͍̩̫͍̩͝ ̩̮̖̟͇͉́t͔͔͎̗h͏̗̟e̘͉̰̦̠̞͓ ͕h͉̟͎̪̠̱͠ḭ̮̩v̺͉͇̩e̵͖-̺̪m͍i̜n̪̲̲̲̮d̷ ̢r̠̼̯̹̦̦͘ͅe͓̳͓̙p̺̗̫͙͘ͅr͔̰͜e̴͓̞s͉̩̩͟ͅe͏̣n͚͇̗̭̺͍tì͙̣n͏̖̥̗͎̰̪g̞͓̭̱̯̫̕ ̣̱͜ͅc̦̰̰̠̮͎͙̀hao̺̜̻͍͙ͅs͉͓̘.͎̼̺̼͕̹͘", - "̠̞̱̰I͖͇̝̻n̦̰͍̰̟v̤̺̫̳̭̼̗͘ò̹̟̩̩͚k̢̥̠͍͉̦̬i̖͓͔̮̱̻͘n̶̳͙̫͎g̖̯̣̲̪͉ ̞͎̗͕͚ͅt̲͕̘̺̯̗̦h̘̦̲̜̻e̳͎͉̬͙ ̴̞̪̲̥f̜̯͓͓̭̭͢e̱̘͔̮e̜̤l̺̱͖̯͓͙͈͢i̵̦̬͉͔̫͚͕n͉g̨͖̙̙̹̹̟̤ ͉̪o̞̠͍̪̰͙ͅf̬̲̺ ͔͕̲͕͕̲̕c̙͉h̝͔̩̙̕ͅa̲͖̻̗̹o̥̼̫s̝̖̜̝͚̫̟.̺͚ ̸̱̲W̶̥̣͖̦i͏̤̬̱̳̣ͅt͉h̗̪̪ ̷̱͚̹̪ǫ͕̗̣̳̦͎u̼̦͔̥̮̕ţ͖͎̻͔͉ ̴͎̩òr̹̰̖͉͈͝d̷̲̦̖͓e̲͓̠r", - "̧͚̜͓̰̭̭Ṯ̫̹̜̮̟̮͝h͚̘̩̘̖̰́e ̥̘͓͉͔͙̼N̟̜̣̘͔̪e̞̞̤͢z̰̖̘͇p̠͟e̺̱̣͍͙̝ṛ̘̬͔̙͇̠d͝ḭ̯̱̥̗̩a̛ͅn͏̦ ̷̥hi̥v̖̳̹͉̮̱͝e̹̪̘̖̰̟-̴͙͓͚̜̻mi̗̺̻͙̺ͅn̪̯͈d ͏̘͓̫̳ͅơ̹͔̳̖̣͓f͈̹̘ ͕ͅc̗̤̠̜̮̥̥h̡͍̩̭̫͚̱a̤͉̤͔͜os͕̤̼͍̲̀ͅ.̡̱ ̦Za̯̱̗̭͍̣͚l̗͉̰̤g͏̣̭̬̗̲͖ͅo̶̭̩̳̟͈.̪̦̰̳", - "H̴̱̦̗̬̣͓̺e̮ ͉̠̰̞͎̖͟ẁh̛̺̯ͅo̖̫͡ ̢Ẁa̡̗i̸t͖̣͉̀ş͔̯̩ ̤̦̮͇̞̦̲B͎̭͇̦̼e̢hin͏͙̟̪d̴̰͓̻̣̮͕ͅ T͖̮̕h͖e̘̺̰̙͘ ̥Ẁ̦͔̻͚a̞͖̪͉l̪̠̻̰̣̠l̲͎͞", - "Z̘͍̼͎̣͔͝Ą̲̜̱̱̹̤͇L̶̝̰̭͔G͍̖͍O̫͜ͅ!̼̤ͅ", - "H̝̪̜͓̀̌̂̒E̢̙̠̣ ̴̳͇̥̟̠͍̐C̹̓̑̐̆͝Ó̶̭͓̚M̬̼Ĕ̖̤͔͔̟̹̽̿̊ͥ̍ͫS̻̰̦̻̖̘̱̒ͪ͌̅͟" - ], - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/dezalgo/issues" - }, - "homepage": "https://github.com/npm/dezalgo", - "readme": "# dezalgo\n\nContain async insanity so that the dark pony lord doesn't eat souls\n\nSee [this blog\npost](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony).\n\n## USAGE\n\nPass a callback to `dezalgo` and it will ensure that it is *always*\ncalled in a future tick, and never in this tick.\n\n```javascript\nvar dz = require('dezalgo')\n\nvar cache = {}\nfunction maybeSync(arg, cb) {\n cb = dz(cb)\n\n // this will actually defer to nextTick\n if (cache[arg]) cb(null, cache[arg])\n\n fs.readFile(arg, function (er, data) {\n // since this is *already* defered, it will call immediately\n if (er) cb(er)\n cb(null, cache[arg] = data)\n })\n}\n```\n", - "readmeFilename": "README.md", - "gitHead": "d4d3f3f6f47b1a326194d5281349c83dde258458", - "_id": "dezalgo@1.0.3", - "_shasum": "7f742de066fc748bc8db820569dddce49bf0d456", - "_from": "dezalgo@>=1.0.3 <1.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/test/basic.js deleted file mode 100644 index da09e724..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/dezalgo/test/basic.js +++ /dev/null @@ -1,29 +0,0 @@ -var test = require('tap').test -var dz = require('../dezalgo.js') - -test('the dark pony', function(t) { - - var n = 0 - function foo(i, cb) { - cb = dz(cb) - if (++n % 2) cb(true, i) - else process.nextTick(cb.bind(null, false, i)) - } - - var called = 0 - var order = [0, 2, 4, 6, 8, 1, 3, 5, 7, 9] - var o = 0 - for (var i = 0; i < 10; i++) { - foo(i, function(cached, i) { - t.equal(i, order[o++]) - t.equal(i % 2, cached ? 0 : 1) - called++ - }) - t.equal(called, 0) - } - - setTimeout(function() { - t.equal(called, 10) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/LICENSE deleted file mode 100644 index 8b856bc4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright 2013 James Halliday (mail@substack.net) - -This project is free software released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/README.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/README.markdown deleted file mode 100644 index c1121cad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/README.markdown +++ /dev/null @@ -1,54 +0,0 @@ -editor -====== - -Launch $EDITOR in your program. - -example -======= - -``` js -var editor = require('editor'); -editor('beep.json', function (code, sig) { - console.log('finished editing with code ' + code); -}); -``` - -*** - -``` -$ node edit.js -``` - -![editor](http://substack.net/images/screenshots/editor.png) - -``` -finished editing with code 0 -``` - -methods -======= - -``` js -var editor = require('editor') -``` - -editor(file, opts={}, cb) -------------------------- - -Launch the `$EDITOR` (or `opts.editor`) for `file`. - -When the editor exits, `cb(code, sig)` fires. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install editor -``` - -license -======= - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/example/beep.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/example/beep.json deleted file mode 100644 index ac07d2da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/example/beep.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "a" : 3, - "b" : 4, - "c" : 5 -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/example/edit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/example/edit.js deleted file mode 100644 index ee117287..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/example/edit.js +++ /dev/null @@ -1,4 +0,0 @@ -var editor = require('../'); -editor(__dirname + '/beep.json', function (code, sig) { - console.log('finished editing with code ' + code); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/index.js deleted file mode 100644 index 3774edbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/index.js +++ /dev/null @@ -1,20 +0,0 @@ -var spawn = require('child_process').spawn; - -module.exports = function (file, opts, cb) { - if (typeof opts === 'function') { - cb = opts; - opts = {}; - } - if (!opts) opts = {}; - - var ed = /^win/.test(process.platform) ? 'notepad' : 'vim'; - var editor = opts.editor || process.env.VISUAL || process.env.EDITOR || ed; - var args = editor.split(/\s+/); - var bin = args.shift(); - - var ps = spawn(bin, args.concat([ file ]), { stdio: 'inherit' }); - - ps.on('exit', function (code, sig) { - if (typeof cb === 'function') cb(code, sig) - }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/package.json deleted file mode 100644 index 48c09bff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/editor/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "editor", - "version": "1.0.0", - "description": "launch $EDITOR in your program", - "main": "index.js", - "directories": { - "example": "example", - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "~0.4.4" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/node-editor.git" - }, - "homepage": "https://github.com/substack/node-editor", - "keywords": [ - "text", - "edit", - "shell" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "engine": { - "node": ">=0.6" - }, - "gitHead": "15200af2c417c65a4df153f39f32143dcd476375", - "bugs": { - "url": "https://github.com/substack/node-editor/issues" - }, - "_id": "editor@1.0.0", - "_shasum": "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742", - "_from": "editor@>=1.0.0 <1.1.0", - "_npmVersion": "2.7.5", - "_nodeVersion": "1.6.3", - "_npmUser": { - "name": "substack", - "email": "substack@gmail.com" - }, - "dist": { - "shasum": "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742", - "tarball": "http://registry.npmjs.org/editor/-/editor-1.0.0.tgz" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "_resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/.eslintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/.eslintrc deleted file mode 100644 index 5c39c67e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/.eslintrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "env" : { - "node" : true - }, - "rules" : { - "curly" : 0, - "no-lonely-if" : 1, - "no-mixed-requires" : 0, - "no-underscore-dangle" : 0, - "no-unused-vars" : [2, {"vars" : "all", "args" : "after-used"}], - "no-use-before-define" : [2, "nofunc"], - "quotes" : [1, "double", "avoid-escape"], - "semi" : [2, "never"], - "space-after-keywords" : 1, - "space-infix-ops" : 0, - "strict" : 0 - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/.travis.yml deleted file mode 100644 index 2325eae0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -language: node_js -node_js: - - "5" - - "4" - - iojs - - "0.12" - - "0.10" - - "0.8" -sudo: false -script: "npm test" -before_install: - - "npm -g install npm" -notifications: - slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/LICENSE deleted file mode 100644 index d07fa974..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2015, Forrest L Norvell - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/README.md deleted file mode 100644 index df31243d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# fs-vacuum - -Remove the empty branches of a directory tree, optionally up to (but not -including) a specified base directory. Optionally nukes the leaf directory. - -## Usage - -```javascript -var logger = require("npmlog"); -var vacuum = require("fs-vacuum"); - -var options = { - base : "/path/to/my/tree/root", - purge : true, - log : logger.silly.bind(logger, "myCleanup") -}; - -/* Assuming there are no other files or directories in "out", "to", or "my", - * the final path will just be "/path/to/my/tree/root". - */ -vacuum("/path/to/my/tree/root/out/to/my/files", function (error) { - if (error) console.error("Unable to cleanly vacuum:", error.message); -}); -``` -# vacuum(directory, options, callback) - -* `directory` {String} Leaf node to remove. **Must be a directory, symlink, or file.** -* `options` {Object} - * `base` {String} No directories at or above this level of the filesystem will be removed. - * `purge` {Boolean} If set, nuke the whole leaf directory, including its contents. - * `log` {Function} A logging function that takes `npmlog`-compatible argument lists. -* `callback` {Function} Function to call once vacuuming is complete. - * `error` {Error} What went wrong along the way, if anything. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/package.json deleted file mode 100644 index 7567a84f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "_args": [ - [ - "fs-vacuum@", - "/Users/rebecca/code/npm" - ] - ], - "_from": "fs-vacuum@latest", - "_id": "fs-vacuum@1.2.9", - "_inCache": true, - "_installable": true, - "_location": "/fs-vacuum", - "_nodeVersion": "5.10.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/fs-vacuum-1.2.9.tgz_1461273179969_0.39465441973879933" - }, - "_npmUser": { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - "_npmVersion": "3.8.7", - "_phantomChildren": {}, - "_requested": { - "name": "fs-vacuum", - "raw": "fs-vacuum@", - "rawSpec": "", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.9.tgz", - "_shasum": "4f90193ab8ea02890995bcd4e804659a5d366b2d", - "_shrinkwrap": null, - "_spec": "fs-vacuum@", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "ogd@aoaioxxysz.net", - "name": "Forrest L Norvell" - }, - "bugs": { - "url": "https://github.com/npm/fs-vacuum/issues" - }, - "dependencies": { - "graceful-fs": "^4.1.2", - "path-is-inside": "^1.0.1", - "rimraf": "^2.5.2" - }, - "description": "recursively remove empty directories -- to a point", - "devDependencies": { - "errno": "~0.1.0", - "mkdirp": "^0.5.1", - "require-inject": "~1.3.0", - "standard": "^6.0.8", - "tap": "^5.7.1", - "tmp": "0.0.28" - }, - "directories": {}, - "dist": { - "shasum": "4f90193ab8ea02890995bcd4e804659a5d366b2d", - "tarball": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.9.tgz" - }, - "gitHead": "acff37c635731a0169367acb32338d9d4e7d615c", - "homepage": "https://github.com/npm/fs-vacuum", - "keywords": [ - "rm", - "rimraf", - "clean" - ], - "license": "ISC", - "main": "vacuum.js", - "maintainers": [ - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "fs-vacuum", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/fs-vacuum.git" - }, - "scripts": { - "test": "standard && tap test/*.js" - }, - "version": "1.2.9" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/arguments.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/arguments.js deleted file mode 100644 index 17ff2ee5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/arguments.js +++ /dev/null @@ -1,24 +0,0 @@ -var test = require('tap').test - -var vacuum = require('../vacuum.js') - -test('vacuum throws on missing parameters', function (t) { - t.throws(vacuum, 'called with no parameters') - t.throws(function () { vacuum('directory', {}) }, 'called with no callback') - - t.end() -}) - -test('vacuum throws on incorrect types ("Forrest is pedantic" section)', function (t) { - t.throws(function () { - vacuum({}, {}, function () {}) - }, 'called with path parameter of incorrect type') - t.throws(function () { - vacuum('directory', 'directory', function () {}) - }, 'called with options of wrong type') - t.throws(function () { - vacuum('directory', {}, 'whoops') - }, "called with callback that isn't callable") - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/base-leaf-mismatch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/base-leaf-mismatch.js deleted file mode 100644 index 1a6c5356..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/base-leaf-mismatch.js +++ /dev/null @@ -1,16 +0,0 @@ -var test = require('tap').test - -var vacuum = require('../vacuum.js') - -test('vacuum errors when base is set and path is not under it', function (t) { - vacuum('/a/made/up/path', {base: '/root/elsewhere'}, function (er) { - t.ok(er, 'got an error') - t.equal( - er.message, - '/a/made/up/path is not a child of /root/elsewhere', - 'got the expected error message' - ) - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-file-no-purge.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-file-no-purge.js deleted file mode 100644 index 819adcdc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-file-no-purge.js +++ /dev/null @@ -1,78 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var writeFile = require('graceful-fs').writeFile -var readdirSync = require('graceful-fs').readdirSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var PARTIAL_PATH = path.join(SHORT_PATH, 'that', 'ends', 'at', 'a') -var FULL_PATH = path.join(PARTIAL_PATH, 'file') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, partialPath, fullPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - writeFile(fullPath, new Buffer('hi'), function (er) { - t.ifError(er, 'made file') - - t.end() - }) - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(fullPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 6, 'got 5 removal & 1 finish message') - t.equal(messages[5], 'finished vacuuming up to ' + testBase) - - var stat - var verifyPath = fullPath - - function verify () { stat = statSync(verifyPath) } - - // handle the file separately - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isFile(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - - for (var i = 0; i < 4; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - var files = readdirSync(testBase) - t.equal(files.length, 0, 'nothing left in base directory') - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-link-no-purge.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-link-no-purge.js deleted file mode 100644 index 833d970d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-link-no-purge.js +++ /dev/null @@ -1,78 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var symlinkSync = require('graceful-fs').symlinkSync -var readdirSync = require('graceful-fs').readdirSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var TARGET_PATH = path.join('target-link', 'in', 'the', 'middle') -var PARTIAL_PATH = path.join(SHORT_PATH, 'with', 'a') -var FULL_PATH = path.join(PARTIAL_PATH, 'link') -var EXPANDO_PATH = path.join(SHORT_PATH, 'with', 'a', 'link', 'in', 'the', 'middle') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, targetPath, partialPath, fullPath, expandoPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - targetPath = path.resolve(tmpdir, TARGET_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - expandoPath = path.resolve(tmpdir, EXPANDO_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - mkdirp(targetPath, function (er) { - t.ifError(er, 'made target path') - - symlinkSync(path.join(tmpdir, 'target-link'), fullPath) - - t.end() - }) - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(expandoPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 7, 'got 6 removal & 1 finish message') - t.equal(messages[6], 'finished vacuuming up to ' + testBase) - - var stat - var verifyPath = expandoPath - function verify () { stat = statSync(verifyPath) } - - for (var i = 0; i < 6; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - var files = readdirSync(testBase) - t.equal(files.length, 0, 'nothing left in base directory') - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-no-purge.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-no-purge.js deleted file mode 100644 index 03c17923..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-no-purge.js +++ /dev/null @@ -1,61 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var LONG_PATH = path.join(SHORT_PATH, 'of', 'a', 'certain', 'length') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testPath, testBase -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - testPath = path.resolve(tmpdir, LONG_PATH) - - mkdirp(testPath, function (er) { - t.ifError(er, 'made test path') - - t.end() - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(testPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 5, 'got 4 removal & 1 finish message') - t.equal(messages[4], 'finished vacuuming up to ' + testBase) - - var stat - var verifyPath = testPath - function verify () { stat = statSync(verifyPath) } - - for (var i = 0; i < 4; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-with-link-purge.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-with-link-purge.js deleted file mode 100644 index 990b69d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-with-link-purge.js +++ /dev/null @@ -1,78 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var writeFileSync = require('graceful-fs').writeFileSync -var symlinkSync = require('graceful-fs').symlinkSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var TARGET_PATH = 'link-target' -var FIRST_FILE = path.join(TARGET_PATH, 'monsieurs') -var SECOND_FILE = path.join(TARGET_PATH, 'mesdames') -var PARTIAL_PATH = path.join(SHORT_PATH, 'with', 'a', 'definite') -var FULL_PATH = path.join(PARTIAL_PATH, 'target') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, partialPath, fullPath, targetPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - targetPath = path.resolve(tmpdir, TARGET_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - mkdirp(targetPath, function (er) { - t.ifError(er, 'made target path') - - writeFileSync(path.resolve(tmpdir, FIRST_FILE), new Buffer("c'est vraiment joli")) - writeFileSync(path.resolve(tmpdir, SECOND_FILE), new Buffer('oui oui')) - symlinkSync(targetPath, fullPath) - - t.end() - }) - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(fullPath, {purge: true, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 5, 'got 4 removal & 1 finish message') - t.equal(messages[0], 'purging ' + fullPath) - t.equal(messages[4], 'finished vacuuming up to ' + testBase) - - var stat - var verifyPath = fullPath - function verify () { stat = statSync(verifyPath) } - - for (var i = 0; i < 4; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-with-purge.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-with-purge.js deleted file mode 100644 index d3ab0c2b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/no-entries-with-purge.js +++ /dev/null @@ -1,67 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var writeFileSync = require('graceful-fs').writeFileSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var LONG_PATH = path.join(SHORT_PATH, 'of', 'a', 'certain', 'kind') -var FIRST_FILE = path.join(LONG_PATH, 'monsieurs') -var SECOND_FILE = path.join(LONG_PATH, 'mesdames') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testPath, testBase -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - testPath = path.resolve(tmpdir, LONG_PATH) - - mkdirp(testPath, function (er) { - t.ifError(er, 'made test path') - - writeFileSync(path.resolve(tmpdir, FIRST_FILE), new Buffer("c'est vraiment joli")) - writeFileSync(path.resolve(tmpdir, SECOND_FILE), new Buffer('oui oui')) - t.end() - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(testPath, {purge: true, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 5, 'got 4 removal & 1 finish message') - t.equal(messages[0], 'purging ' + testPath) - t.equal(messages[4], 'finished vacuuming up to ' + testBase) - - var stat - var verifyPath = testPath - function verify () { stat = statSync(verifyPath) } - - for (var i = 0; i < 4; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/other-directories-no-purge.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/other-directories-no-purge.js deleted file mode 100644 index b18f7eb2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/other-directories-no-purge.js +++ /dev/null @@ -1,76 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var statSync = require('graceful-fs').statSync -var mkdtemp = require('tmp').dir -var mkdirp = require('mkdirp') - -var vacuum = require('../vacuum.js') - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var REMOVE_PATH = path.join(SHORT_PATH, 'of', 'a', 'certain', 'length') -var OTHER_PATH = path.join(SHORT_PATH, 'of', 'no', 'qualities') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, testPath, otherPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - testPath = path.resolve(tmpdir, REMOVE_PATH) - otherPath = path.resolve(tmpdir, OTHER_PATH) - - mkdirp(testPath, function (er) { - t.ifError(er, 'made test path') - - mkdirp(otherPath, function (er) { - t.ifError(er, 'made other path') - - t.end() - }) - }) - }) -}) - -test('remove up to a point', function (t) { - vacuum(testPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 4, 'got 3 removal & 1 finish message') - t.equal( - messages[3], 'quitting because other entries in ' + testBase + '/of', - 'got expected final message' - ) - - var stat - var verifyPath = testPath - function verify () { stat = statSync(verifyPath) } - - for (var i = 0; i < 3; i++) { - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isDirectory(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(otherPath) - }, otherPath + ' can be statted') - t.ok(stat && stat.isDirectory(), otherPath + ' is still a directory') - - var intersection = path.join(testBase, 'of') - t.doesNotThrow(function () { - stat = statSync(intersection) - }, intersection + ' can be statted') - t.ok(stat && stat.isDirectory(), intersection + ' is still a directory') - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/racy-entries-eexist.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/racy-entries-eexist.js deleted file mode 100644 index d467e996..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/racy-entries-eexist.js +++ /dev/null @@ -1,119 +0,0 @@ -var path = require('path') - -var test = require('tap').test - -var readdir = require('graceful-fs').readdir -var readdirSync = require('graceful-fs').readdirSync -var rmdir = require('graceful-fs').rmdir -var statSync = require('graceful-fs').statSync -var writeFile = require('graceful-fs').writeFile -var mkdirp = require('mkdirp') -var mkdtemp = require('tmp').dir -var tmpFile = require('tmp').file -var EEXIST = require('errno').code.EEXIST -var ENOTEMPTY = require('errno').code.ENOTEMPTY - -var requireInject = require('require-inject') -var vacuum = requireInject('../vacuum.js', { - 'graceful-fs': { - 'lstat': require('graceful-fs').lstat, - 'readdir': function (dir, cb) { - readdir(dir, function (err, files) { - // Simulate racy removal by creating a file after vacuum - // thinks the directory is empty - if (dir === partialPath && files.length === 0) { - tmpFile({dir: dir}, function (err, path, fd) { - if (err) throw err - cb(err, files) - }) - } else { - cb(err, files) - } - }) - }, - 'rmdir': function (dir, cb) { - rmdir(dir, function (err) { - // Force EEXIST error from rmdir if the directory is non-empty - var mockErr = EEXIST - if (err) { - if (err.code === ENOTEMPTY.code) { - err.code = err.errno = mockErr.code - err.message = mockErr.code + ': ' + mockErr.description + ', ' + err.syscall + ' \'' + dir + '\'' - } - } - cb(err) - }) - }, - 'unlink': require('graceful-fs').unlink - } -}) - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var PARTIAL_PATH = path.join(SHORT_PATH, 'that', 'ends', 'at', 'a') -var FULL_PATH = path.join(PARTIAL_PATH, 'file') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, partialPath, fullPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - writeFile(fullPath, new Buffer('hi'), function (er) { - t.ifError(er, 'made file') - - t.end() - }) - }) - }) -}) - -test('racy removal should quit gracefully', function (t) { - vacuum(fullPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 3, 'got 2 removal & 1 quit message') - t.equal(messages[2], 'quitting because new (racy) entries in ' + partialPath) - - var stat - var verifyPath = fullPath - - function verify () { stat = statSync(verifyPath) } - - // handle the file separately - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isFile(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - - for (var i = 0; i < 4; i++) { - t.doesNotThrow(function () { - stat = statSync(verifyPath) - }, verifyPath + ' can be statted') - t.ok(stat && stat.isDirectory(), verifyPath + ' is still a directory') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - var files = readdirSync(testBase) - t.equal(files.length, 1, 'base directory untouched') - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/racy-entries-enotempty.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/racy-entries-enotempty.js deleted file mode 100644 index decc3807..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/racy-entries-enotempty.js +++ /dev/null @@ -1,119 +0,0 @@ -var path = require('path') - -var test = require('tap').test - -var readdir = require('graceful-fs').readdir -var readdirSync = require('graceful-fs').readdirSync -var rmdir = require('graceful-fs').rmdir -var statSync = require('graceful-fs').statSync -var writeFile = require('graceful-fs').writeFile -var mkdirp = require('mkdirp') -var mkdtemp = require('tmp').dir -var tmpFile = require('tmp').file -var EEXIST = require('errno').code.EEXIST -var ENOTEMPTY = require('errno').code.ENOTEMPTY - -var requireInject = require('require-inject') -var vacuum = requireInject('../vacuum.js', { - 'graceful-fs': { - 'lstat': require('graceful-fs').lstat, - 'readdir': function (dir, cb) { - readdir(dir, function (err, files) { - // Simulate racy removal by creating a file after vacuum - // thinks the directory is empty - if (dir === partialPath && files.length === 0) { - tmpFile({dir: dir}, function (err, path, fd) { - if (err) throw err - cb(err, files) - }) - } else { - cb(err, files) - } - }) - }, - 'rmdir': function (dir, cb) { - rmdir(dir, function (err) { - // Force ENOTEMPTY error from rmdir if the directory is non-empty - var mockErr = ENOTEMPTY - if (err) { - if (err.code === EEXIST.code) { - err.code = err.errno = mockErr.code - err.message = mockErr.code + ': ' + mockErr.description + ', ' + err.syscall + ' \'' + dir + '\'' - } - } - cb(err) - }) - }, - 'unlink': require('graceful-fs').unlink - } -}) - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var PARTIAL_PATH = path.join(SHORT_PATH, 'that', 'ends', 'at', 'a') -var FULL_PATH = path.join(PARTIAL_PATH, 'file') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, partialPath, fullPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - writeFile(fullPath, new Buffer('hi'), function (er) { - t.ifError(er, 'made file') - - t.end() - }) - }) - }) -}) - -test('racy removal should quit gracefully', function (t) { - vacuum(fullPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 3, 'got 2 removal & 1 quit message') - t.equal(messages[2], 'quitting because new (racy) entries in ' + partialPath) - - var stat - var verifyPath = fullPath - - function verify () { stat = statSync(verifyPath) } - - // handle the file separately - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isFile(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - - for (var i = 0; i < 4; i++) { - t.doesNotThrow(function () { - stat = statSync(verifyPath) - }, verifyPath + ' can be statted') - t.ok(stat && stat.isDirectory(), verifyPath + ' is still a directory') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - var files = readdirSync(testBase) - t.equal(files.length, 1, 'base directory untouched') - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/racy-entries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/racy-entries.js deleted file mode 100644 index c0ed5324..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/test/racy-entries.js +++ /dev/null @@ -1,104 +0,0 @@ -var path = require('path') - -var test = require('tap').test - -var readdir = require('graceful-fs').readdir -var readdirSync = require('graceful-fs').readdirSync -var statSync = require('graceful-fs').statSync -var writeFile = require('graceful-fs').writeFile -var mkdirp = require('mkdirp') -var mkdtemp = require('tmp').dir -var tmpFile = require('tmp').file - -var requireInject = require('require-inject') -var vacuum = requireInject('../vacuum.js', { - 'graceful-fs': { - 'lstat': require('graceful-fs').lstat, - 'readdir': function (dir, cb) { - readdir(dir, function (err, files) { - // Simulate racy removal by creating a file after vacuum - // thinks the directory is empty - if (dir === partialPath && files.length === 0) { - tmpFile({dir: dir}, function (err, path, fd) { - if (err) throw err - cb(err, files) - }) - } else { - cb(err, files) - } - }) - }, - 'rmdir': require('graceful-fs').rmdir, - 'unlink': require('graceful-fs').unlink - } -}) - -// CONSTANTS -var TEMP_OPTIONS = { - unsafeCleanup: true, - mode: '0700' -} -var SHORT_PATH = path.join('i', 'am', 'a', 'path') -var PARTIAL_PATH = path.join(SHORT_PATH, 'that', 'ends', 'at', 'a') -var FULL_PATH = path.join(PARTIAL_PATH, 'file') - -var messages = [] -function log () { messages.push(Array.prototype.slice.call(arguments).join(' ')) } - -var testBase, partialPath, fullPath -test('xXx setup xXx', function (t) { - mkdtemp(TEMP_OPTIONS, function (er, tmpdir) { - t.ifError(er, 'temp directory exists') - - testBase = path.resolve(tmpdir, SHORT_PATH) - partialPath = path.resolve(tmpdir, PARTIAL_PATH) - fullPath = path.resolve(tmpdir, FULL_PATH) - - mkdirp(partialPath, function (er) { - t.ifError(er, 'made test path') - - writeFile(fullPath, new Buffer('hi'), function (er) { - t.ifError(er, 'made file') - - t.end() - }) - }) - }) -}) - -test('racy removal should quit gracefully', function (t) { - vacuum(fullPath, {purge: false, base: testBase, log: log}, function (er) { - t.ifError(er, 'cleaned up to base') - - t.equal(messages.length, 3, 'got 2 removal & 1 quit message') - t.equal(messages[2], 'quitting because new (racy) entries in ' + partialPath) - - var stat - var verifyPath = fullPath - - function verify () { stat = statSync(verifyPath) } - - // handle the file separately - t.throws(verify, verifyPath + ' cannot be statted') - t.notOk(stat && stat.isFile(), verifyPath + ' is totally gone') - verifyPath = path.dirname(verifyPath) - - for (var i = 0; i < 4; i++) { - t.doesNotThrow(function () { - stat = statSync(verifyPath) - }, verifyPath + ' can be statted') - t.ok(stat && stat.isDirectory(), verifyPath + ' is still a directory') - verifyPath = path.dirname(verifyPath) - } - - t.doesNotThrow(function () { - stat = statSync(testBase) - }, testBase + ' can be statted') - t.ok(stat && stat.isDirectory(), testBase + ' is still a directory') - - var files = readdirSync(testBase) - t.equal(files.length, 1, 'base directory untouched') - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/vacuum.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/vacuum.js deleted file mode 100644 index 1fb674da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-vacuum/vacuum.js +++ /dev/null @@ -1,112 +0,0 @@ -var assert = require('assert') -var dirname = require('path').dirname -var resolve = require('path').resolve -var isInside = require('path-is-inside') - -var rimraf = require('rimraf') -var lstat = require('graceful-fs').lstat -var readdir = require('graceful-fs').readdir -var rmdir = require('graceful-fs').rmdir -var unlink = require('graceful-fs').unlink - -module.exports = vacuum - -function vacuum (leaf, options, cb) { - assert(typeof leaf === 'string', 'must pass in path to remove') - assert(typeof cb === 'function', 'must pass in callback') - - if (!options) options = {} - assert(typeof options === 'object', 'options must be an object') - - var log = options.log ? options.log : function () {} - - leaf = leaf && resolve(leaf) - var base = options.base && resolve(options.base) - if (base && !isInside(leaf, base)) { - return cb(new Error(leaf + ' is not a child of ' + base)) - } - - lstat(leaf, function (error, stat) { - if (error) { - if (error.code === 'ENOENT') return cb(null) - - log(error.stack) - return cb(error) - } - - if (!(stat && (stat.isDirectory() || stat.isSymbolicLink() || stat.isFile()))) { - log(leaf, 'is not a directory, file, or link') - return cb(new Error(leaf + ' is not a directory, file, or link')) - } - - if (options.purge) { - log('purging', leaf) - rimraf(leaf, function (error) { - if (error) return cb(error) - - next(dirname(leaf)) - }) - } else if (!stat.isDirectory()) { - log('removing', leaf) - unlink(leaf, function (error) { - if (error) return cb(error) - - next(dirname(leaf)) - }) - } else { - next(leaf) - } - }) - - function next (branch) { - branch = branch && resolve(branch) - // either we've reached the base or we've reached the root - if ((base && branch === base) || branch === dirname(branch)) { - log('finished vacuuming up to', branch) - return cb(null) - } - - readdir(branch, function (error, files) { - if (error) { - if (error.code === 'ENOENT') return cb(null) - - log('unable to check directory', branch, 'due to', error.message) - return cb(error) - } - - if (files.length > 0) { - log('quitting because other entries in', branch) - return cb(null) - } - - log('removing', branch) - lstat(branch, function (error, stat) { - if (error) { - if (error.code === 'ENOENT') return cb(null) - - log('unable to lstat', branch, 'due to', error.message) - return cb(error) - } - - var remove = stat.isDirectory() ? rmdir : unlink - remove(branch, function (error) { - if (error) { - if (error.code === 'ENOENT') { - log('quitting because lost the race to remove', branch) - return cb(null) - } - if (error.code === 'ENOTEMPTY' || error.code === 'EEXIST') { - log('quitting because new (racy) entries in', branch) - return cb(null) - } - - log('unable to remove', branch, 'due to', error.message) - return cb(error) - } - - next(dirname(branch)) - }) - }) - }) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/.npmignore deleted file mode 100644 index 2f24c57c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/ -coverage/ -.nyc_output/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/.travis.yml deleted file mode 100644 index 68946625..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: node_js -sudo: false -before_install: - - "npm -g install npm" -node_js: - - "0.8" - - "0.10" - - "0.12" - - "iojs" - - "4" - - "5" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/README.md deleted file mode 100644 index 9a15d056..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# fs-write-stream-atomic - -Like `fs.createWriteStream(...)`, but atomic. - -Writes to a tmp file and does an atomic `fs.rename` to move it into -place when it's done. - -First rule of debugging: **It's always a race condition.** - -## USAGE - -```javascript -var fsWriteStreamAtomic = require('fs-write-stream-atomic') -// options are optional. -var write = fsWriteStreamAtomic('output.txt', options) -var read = fs.createReadStream('input.txt') -read.pipe(write) - -// When the write stream emits a 'finish' or 'close' event, -// you can be sure that it is moved into place, and contains -// all the bytes that were written to it, even if something else -// was writing to `output.txt` at the same time. -``` - -### `fsWriteStreamAtomic(filename, [options])` - -* `filename` {String} The file we want to write to -* `options` {Object} - * `chown` {Object} User and group to set ownership after write - * `uid` {Number} - * `gid` {Number} - * `encoding` {String} default = 'utf8' - * `mode` {Number} default = `0666` - * `flags` {String} default = `'w'` - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/index.js deleted file mode 100644 index 59b50db6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/index.js +++ /dev/null @@ -1,124 +0,0 @@ -var fs = require('graceful-fs') -var Writable = require('readable-stream').Writable -var util = require('util') -var MurmurHash3 = require('imurmurhash') -var iferr = require('iferr') - -function murmurhex () { - var hash = MurmurHash3('') - for (var ii = 0; ii < arguments.length; ++ii) { - hash.hash(hash + arguments[ii]) - } - return hash.result() -} - -var invocations = 0 -function getTmpname (filename) { - return filename + '.' + murmurhex(__filename, process.pid, ++invocations) -} - -var setImmediate = global.setImmediate || setTimeout - -module.exports = WriteStreamAtomic - -// Requirements: -// 1. Write everything written to the stream to a temp file. -// 2. If there are no errors: -// a. moves the temp file into its final destination -// b. emits `finish` & `closed` ONLY after the file is -// fully flushed and renamed. -// 3. If there's an error, removes the temp file. - -util.inherits(WriteStreamAtomic, Writable) -function WriteStreamAtomic (path, options) { - if (!(this instanceof WriteStreamAtomic)) { - return new WriteStreamAtomic(path, options) - } - Writable.call(this, options) - - this.__atomicTarget = path - this.__atomicTmp = getTmpname(path) - - this.__atomicChown = options && options.chown - - this.__atomicClosed = false - - this.__atomicStream = fs.WriteStream(this.__atomicTmp, options) - - this.__atomicStream.once('open', handleOpen(this)) - this.__atomicStream.once('close', handleClose(this)) - this.__atomicStream.once('error', handleError(this)) -} - -// We have to suppress default finish emitting, because ordinarily it -// would happen as soon as `end` is called on us and all of the -// data has been written to our target stream. So we suppress -// finish from being emitted here, and only emit it after our -// target stream is closed and we've moved everything around. -WriteStreamAtomic.prototype.emit = function (event) { - if (event === 'finish') return this.__atomicStream.end() - return Writable.prototype.emit.apply(this, arguments) -} - -WriteStreamAtomic.prototype._write = function (buffer, encoding, cb) { - var flushed = this.__atomicStream.write(buffer, encoding) - if (flushed) return cb() - this.__atomicStream.once('drain', cb) -} - -function handleOpen (writeStream) { - return function (fd) { - writeStream.emit('open', fd) - } -} - -function handleClose (writeStream) { - return function () { - if (writeStream.__atomicClosed) return - writeStream.__atomicClosed = true - if (writeStream.__atomicChown) { - var uid = writeStream.__atomicChown.uid - var gid = writeStream.__atomicChown.gid - return fs.chown(writeStream.__atomicTmp, uid, gid, iferr(cleanup, moveIntoPlace)) - } else { - moveIntoPlace() - } - } - function cleanup (err) { - fs.unlink(writeStream.__atomicTmp, function () { - writeStream.emit('error', err) - writeStream.emit('close') - }) - } - function moveIntoPlace () { - fs.rename(writeStream.__atomicTmp, writeStream.__atomicTarget, iferr(cleanup, end)) - } - function end () { - // We have to use our parent class directly because we suppress `finish` - // events fired via our own emit method. - Writable.prototype.emit.call(writeStream, 'finish') - - // Delay the close to provide the same temporal separation a physical - // file operation would have– that is, the close event is emitted only - // after the async close operation completes. - setImmediate(function () { - writeStream.emit('close') - }) - } -} - -function handleError (writeStream) { - return function (er) { - cleanupSync() - writeStream.emit('error', er) - writeStream.__atomicClosed = true - writeStream.emit('close') - } - function cleanupSync () { - try { - fs.unlinkSync(writeStream.__atomicTmp) - } finally { - return - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/package.json deleted file mode 100644 index e65fa32c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/package.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "_args": [ - [ - "fs-write-stream-atomic@1.0.8", - "/Users/rebecca/code/npm" - ] - ], - "_from": "fs-write-stream-atomic@1.0.8", - "_id": "fs-write-stream-atomic@1.0.8", - "_inCache": true, - "_installable": true, - "_location": "/fs-write-stream-atomic", - "_nodeVersion": "4.2.2", - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "3.5.2", - "_phantomChildren": {}, - "_requested": { - "name": "fs-write-stream-atomic", - "raw": "fs-write-stream-atomic@1.0.8", - "rawSpec": "1.0.8", - "scope": null, - "spec": "1.0.8", - "type": "version" - }, - "_requiredBy": [ - "/" - ], - "_shasum": "e49aaddf288f87d46ff9e882f216a13abc40778b", - "_shrinkwrap": null, - "_spec": "fs-write-stream-atomic@1.0.8", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/npm/fs-write-stream-atomic/issues" - }, - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - }, - "description": "Like `fs.createWriteStream(...)`, but atomic.", - "devDependencies": { - "rimraf": "^2.4.4", - "standard": "^5.4.1", - "tap": "^2.3.1" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "e49aaddf288f87d46ff9e882f216a13abc40778b", - "tarball": "http://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.8.tgz" - }, - "gitHead": "b55824ee4de7f1ca23784929d68b1b8f5edbf4a4", - "homepage": "https://github.com/npm/fs-write-stream-atomic", - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "isaacs", - "email": "i@izs.me" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "name": "fs-write-stream-atomic", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/fs-write-stream-atomic.git" - }, - "scripts": { - "test": "standard && tap --coverage test/*.js" - }, - "version": "1.0.8" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/basic.js deleted file mode 100644 index d0205e15..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/basic.js +++ /dev/null @@ -1,97 +0,0 @@ -var fs = require('graceful-fs') -var test = require('tap').test -var path = require('path') -var writeStream = require('../index.js') - -var rename = fs.rename -fs.rename = function (from, to, cb) { - setTimeout(function () { - rename(from, to, cb) - }, 100) -} - -test('basic', function (t) { - // open 10 write streams to the same file. - // then write to each of them, and to the target - // and verify at the end that each of them does their thing - var target = path.resolve(__dirname, 'test.txt') - var n = 10 - - // We run all of our assertions twice: - // once for finish, once for close - // There are 6 assertions, two fixed, plus 4 lines in the file. - t.plan(n * 2 * 6) - - var streams = [] - for (var i = 0; i < n; i++) { - var s = writeStream(target) - s.on('finish', verifier('finish', i)) - s.on('close', verifier('close', i)) - streams.push(s) - } - - function verifier (ev, num) { - return function () { - if (ev === 'close') { - t.equal(this.__emittedFinish, true, num + '. closed only after finish') - } else { - this.__emittedFinish = true - t.equal(ev, 'finish', num + '. finished') - } - - // make sure that one of the atomic streams won. - var res = fs.readFileSync(target, 'utf8') - var lines = res.trim().split(/\n/) - lines.forEach(function (line, lineno) { - var first = lines[0].match(/\d+$/)[0] - var cur = line.match(/\d+$/)[0] - t.equal(cur, first, num + '. line ' + lineno + ' matches') - }) - - var resExpr = /^first write \d+\nsecond write \d+\nthird write \d+\nfinal write \d+\n$/ - t.similar(res, resExpr, num + '. content matches') - } - } - - // now write something to each stream. - streams.forEach(function (stream, i) { - stream.write('first write ' + i + '\n') - }) - - // wait a sec for those writes to go out. - setTimeout(function () { - // write something else to the target. - fs.writeFileSync(target, 'brutality!\n') - - // write some more stuff. - streams.forEach(function (stream, i) { - stream.write('second write ' + i + '\n') - }) - - setTimeout(function () { - // Oops! Deleted the file! - fs.unlinkSync(target) - - // write some more stuff. - streams.forEach(function (stream, i) { - stream.write('third write ' + i + '\n') - }) - - setTimeout(function () { - fs.writeFileSync(target, 'brutality TWO!\n') - streams.forEach(function (stream, i) { - stream.end('final write ' + i + '\n') - }) - }, 50) - }, 50) - }, 50) -}) - -test('cleanup', function (t) { - fs.readdirSync(__dirname).filter(function (f) { - return f.match(/^test.txt/) - }).forEach(function (file) { - fs.unlinkSync(path.resolve(__dirname, file)) - }) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/chown.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/chown.js deleted file mode 100644 index 1733cf27..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/chown.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var writeStream = require('../index.js') - -var target = path.resolve(__dirname, 'test-chown') - -test('chown works', function (t) { - t.plan(1) - var stream = writeStream(target, {chown: {uid: process.getuid(), gid: process.getgid()}}) - var hadError = false - stream.on('error', function (er) { - hadError = true - console.log('#', er) - }) - stream.on('close', function () { - t.is(hadError, false, 'no errors before close') - }) - stream.end() -}) - -test('chown fails', function (t) { - t.plan(1) - fs.chown = function (file, uid, gid, cb) { - cb(new Error('TEST BREAK')) - } - var stream = writeStream(target, {chown: {uid: process.getuid(), gid: process.getgid()}}) - var hadError = false - stream.on('error', function (er) { - hadError = true - console.log('#', er) - }) - stream.on('close', function () { - t.is(hadError, true, 'error before close') - }) - stream.end() -}) - -test('cleanup', function (t) { - rimraf.sync(target) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/rename-fail.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/rename-fail.js deleted file mode 100644 index 7e27f0bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/rename-fail.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var writeStream = require('../index.js') - -var target = path.resolve(__dirname, 'test-rename') - -test('rename fails', function (t) { - t.plan(1) - fs.rename = function (src, dest, cb) { - cb(new Error('TEST BREAK')) - } - var stream = writeStream(target) - var hadError = false - stream.on('error', function (er) { - hadError = true - console.log('#', er) - }) - stream.on('close', function () { - t.is(hadError, true, 'error before close') - }) - stream.end() -}) - -test('cleanup', function (t) { - rimraf.sync(target) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/slow-close.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/slow-close.js deleted file mode 100644 index 9840a6ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/slow-close.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var writeStream = require('../index.js') - -var target = path.resolve(__dirname, 'test-chown') - -test('slow close', function (t) { - t.plan(2) - // The goal here is to simulate the "file close" step happening so slowly - // that the whole close/rename process could finish before the file is - // actually closed (and thus buffers truely flushed to the OS). In - // previous versions of this module, this would result in the module - // emitting finish & close before the file was fully written and in - // turn, could break other layers that tried to read the new file. - var realEmit = fs.WriteStream.prototype.emit - var reallyClosed = false - fs.WriteStream.prototype.emit = function (event) { - if (event !== 'close') return realEmit.apply(this, arguments) - setTimeout(function () { - reallyClosed = true - realEmit.call(this, 'close') - }.bind(this), 200) - } - var stream = writeStream(target) - stream.on('finish', function () { - t.is(reallyClosed, true, "didn't finish before target was closed") - }) - stream.on('close', function () { - t.is(reallyClosed, true, "didn't close before target was closed") - }) - stream.end() -}) - -test('cleanup', function (t) { - rimraf.sync(target) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/toolong.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/toolong.js deleted file mode 100644 index f146cc55..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fs-write-stream-atomic/test/toolong.js +++ /dev/null @@ -1,29 +0,0 @@ -var path = require('path') -var test = require('tap').test -var writeStream = require('../index.js') - -function repeat (times, string) { - var output = '' - for (var ii = 0; ii < times; ++ii) { - output += string - } - return output -} - -var target = path.resolve(__dirname, repeat(1000, 'test')) - -test('name too long', function (t) { - t.plan(2) - var stream = writeStream(target) - var hadError = false - stream.on('error', function (er) { - if (!hadError) { - t.is(er.code, 'ENAMETOOLONG', target.length + ' character name results in ENAMETOOLONG') - hadError = true - } - }) - stream.on('close', function () { - t.ok(hadError, 'got error before close') - }) - stream.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/.npmignore deleted file mode 100644 index c02f40ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -# ignore the output junk from the example scripts -example/output -node_modules/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/.travis.yml deleted file mode 100644 index 3637c003..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: node_js -sudo: false -node_js: - - "5" - - "4" - - iojs - - "0.12" - - "0.10" - - "0.8" -before_install: - - "npm config set spin false" - - "npm install -g npm" -script: "npm test" -notifications: - slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/README.md deleted file mode 100644 index 2c01e907..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# fstream-npm - -This is an fstream DirReader class that will read a directory and filter -things according to the semantics of what goes in an npm package. - -For example: - -```javascript -// This will print out all the files that would be included -// by 'npm publish' or 'npm install' of this directory. - -var FN = require("fstream-npm") -FN({ path: "./" }) - .on("child", function (e) { - console.error(e.path.substr(e.root.path.length + 1)) - }) -``` - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/bundle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/bundle.js deleted file mode 100644 index 159e4f7b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/bundle.js +++ /dev/null @@ -1,13 +0,0 @@ -// this example will bundle every dependency -var P = require("../") -P({ path: "./" }) - .on("package", bundleIt) - .on("entry", function (e) { - console.error(e.constructor.name, e.path.substr(e.root.dirname.length + 1)) - e.on("package", bundleIt) - }) - -function bundleIt (p) { - p.bundleDependencies = Object.keys(p.dependencies || {}) -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/dir-tar.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/dir-tar.js deleted file mode 100644 index 393c796b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/dir-tar.js +++ /dev/null @@ -1,19 +0,0 @@ -// this will show what ends up in the fstream-npm package -var P = require('fstream').DirReader -var tar = require('tar') -function f (entry) { - return entry.basename !== '.git' -} - -new P({ path: './', type: 'Directory', Directory: true, filter: f }) - .on('package', function (p) { - console.error('package', p) - }) - .on('ignoreFile', function (e) { - console.error('ignoreFile', e) - }) - .on('entry', function (e) { - console.error(e.constructor.name, e.path.substr(e.root.path.length + 1)) - }) - .pipe(tar.Pack()) - .pipe(process.stdout) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/dir.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/dir.js deleted file mode 100644 index e524a3bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/dir.js +++ /dev/null @@ -1,25 +0,0 @@ -// this will show what ends up in the fstream-npm package -var P = require('../') -var DW = require('fstream').DirWriter - -var target = new DW({ Directory: true, type: 'Directory', - path: __dirname + '/output'}) - -function f (entry) { - return entry.basename !== '.git' -} - -P({ path: './', type: 'Directory', isDirectory: true, filter: f }) - .on('package', function (p) { - console.error('package', p) - }) - .on('ignoreFile', function (e) { - console.error('ignoreFile', e) - }) - .on('entry', function (e) { - console.error(e.constructor.name, e.path) - }) - .pipe(target) - .on('end', function () { - console.error('ended') - }) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/example.js deleted file mode 100644 index 2c933c44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/example.js +++ /dev/null @@ -1,12 +0,0 @@ -// this will show what ends up in the fstream-npm package -var P = require('../') -P({ path: './' }) - .on('package', function (p) { - console.error('package', p) - }) - .on('ignoreFile', function (e) { - console.error('ignoreFile', e) - }) - .on('entry', function (e) { - console.error(e.constructor.name, e.path.substr(e.root.dirname.length + 1)) - }) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/ig-tar.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/ig-tar.js deleted file mode 100644 index 7a5b61fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/ig-tar.js +++ /dev/null @@ -1,19 +0,0 @@ -// this will show what ends up in the fstream-npm package -var P = require('fstream-ignore') -var tar = require('tar') -function f (entry) { - return entry.basename !== '.git' -} - -new P({ path: './', type: 'Directory', Directory: true, filter: f }) - .on('package', function (p) { - console.error('package', p) - }) - .on('ignoreFile', function (e) { - console.error('ignoreFile', e) - }) - .on('entry', function (e) { - console.error(e.constructor.name, e.path.substr(e.root.path.length + 1)) - }) - .pipe(tar.Pack()) - .pipe(process.stdout) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/tar.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/tar.js deleted file mode 100644 index b7f7e5f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/example/tar.js +++ /dev/null @@ -1,25 +0,0 @@ -// this will show what ends up in the fstream-npm package -var P = require('../') -var tar = require('tar') -function f () { - return true -} -// function f (entry) { -// return entry.basename !== ".git" -// } - -new P({ path: './', type: 'Directory', isDirectory: true, filter: f }) - .on('package', function (p) { - console.error('package', p) - }) - .on('ignoreFile', function (e) { - console.error('ignoreFile', e) - }) - .on('entry', function (e) { - console.error(e.constructor.name, e.path) - }) - .on('end', function () { - console.error('ended') - }) - .pipe(tar.Pack()) - .pipe(process.stdout) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/fstream-npm.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/fstream-npm.js deleted file mode 100644 index c3b93214..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/fstream-npm.js +++ /dev/null @@ -1,346 +0,0 @@ -var Ignore = require('fstream-ignore') -var inherits = require('inherits') -var path = require('path') -var fs = require('fs') - -module.exports = Packer - -inherits(Packer, Ignore) - -function Packer (props) { - if (!(this instanceof Packer)) { - return new Packer(props) - } - - if (typeof props === 'string') { - props = { path: props } - } - - props.ignoreFiles = props.ignoreFiles || [ '.npmignore', - '.gitignore', - 'package.json' ] - - Ignore.call(this, props) - - this.bundled = props.bundled - this.bundleLinks = props.bundleLinks - this.package = props.package - - // only do the magic bundling stuff for the node_modules folder that - // lives right next to a package.json file. - this.bundleMagic = this.parent && - this.parent.packageRoot && - this.basename === 'node_modules' - - // in a node_modules folder, resolve symbolic links to - // bundled dependencies when creating the package. - props.follow = this.follow = this.bundleMagic - // console.error("follow?", this.path, props.follow) - - if (this === this.root || - this.parent && - this.parent.bundleMagic && - this.basename.charAt(0) !== '.') { - this.readBundledLinks() - } - - this.on('entryStat', function (entry, props) { - // files should *always* get into tarballs - // in a user-writable state, even if they're - // being installed from some wackey vm-mounted - // read-only filesystem. - entry.mode = props.mode = props.mode | parseInt('0200', 8) - }) -} - -Packer.prototype.readBundledLinks = function () { - if (this._paused) { - this.once('resume', this.addIgnoreFiles) - return - } - - this.pause() - fs.readdir(this.path + '/node_modules', function (er, list) { - // no harm if there's no bundle - var l = list && list.length - if (er || l === 0) return this.resume() - - var errState = null - var then = function then (er) { - if (errState) return - if (er) { - errState = er - return this.resume() - } - if (--l === 0) return this.resume() - }.bind(this) - - list.forEach(function (pkg) { - if (pkg.charAt(0) === '.') return then() - var pd = this.path + '/node_modules/' + pkg - fs.realpath(pd, function (er, rp) { - if (er) return then() - this.bundleLinks = this.bundleLinks || {} - this.bundleLinks[pkg] = rp - then() - }.bind(this)) - }, this) - }.bind(this)) -} - -Packer.prototype.applyIgnores = function (entry, partial, entryObj) { - if (!entryObj || entryObj.type !== 'Directory') { - // package.json files can never be ignored. - if (entry === 'package.json') return true - - // readme files should never be ignored. - if (entry.match(/^readme(\.[^\.]*)$/i)) return true - - // license files should never be ignored. - if (entry.match(/^(license|licence)(\.[^\.]*)?$/i)) return true - - // copyright notice files should never be ignored. - if (entry.match(/^(notice)(\.[^\.]*)?$/i)) return true - - // changelogs should never be ignored. - if (entry.match(/^(changes|changelog|history)(\.[^\.]*)?$/i)) return true - } - - // special rules. see below. - if (entry === 'node_modules' && this.packageRoot) return true - - // package.json main file should never be ignored. - var mainFile = this.package && this.package.main - if (mainFile && path.resolve(this.path, entry) === path.resolve(this.path, mainFile)) return true - - // some files are *never* allowed under any circumstances - // (VCS folders, native build cruft, npm cruft, regular cruft) - if (entry === '.git' || - entry === 'CVS' || - entry === '.svn' || - entry === '.hg' || - entry === '.lock-wscript' || - entry.match(/^\.wafpickle-[0-9]+$/) || - (this.parent && this.parent.packageRoot && this.basename === 'build' && - entry === 'config.gypi') || - entry === 'npm-debug.log' || - entry === '.npmrc' || - entry.match(/^\..*\.swp$/) || - entry === '.DS_Store' || - entry.match(/^\._/) - ) { - return false - } - - // in a node_modules folder, we only include bundled dependencies - // also, prevent packages in node_modules from being affected - // by rules set in the containing package, so that - // bundles don't get busted. - // Also, once in a bundle, everything is installed as-is - // To prevent infinite cycles in the case of cyclic deps that are - // linked with npm link, even in a bundle, deps are only bundled - // if they're not already present at a higher level. - if (this.bundleMagic) { - // bubbling up. stop here and allow anything the bundled pkg allows - if (entry.indexOf('/') !== -1) return true - - // never include the .bin. It's typically full of platform-specific - // stuff like symlinks and .cmd files anyway. - if (entry === '.bin') return false - - // the package root. - var p = this.parent - // the package before this one. - var pp = p && p.parent - - // if this entry has already been bundled, and is a symlink, - // and it is the *same* symlink as this one, then exclude it. - if (pp && pp.bundleLinks && this.bundleLinks && - pp.bundleLinks[entry] && - pp.bundleLinks[entry] === this.bundleLinks[entry]) { - return false - } - - // since it's *not* a symbolic link, if we're *already* in a bundle, - // then we should include everything. - if (pp && pp.package && pp.basename === 'node_modules') { - return true - } - - // only include it at this point if it's a bundleDependency - var bd = this.package && this.package.bundleDependencies - - if (bd && !Array.isArray(bd)) { - throw new Error(this.package.name + '\'s `bundledDependencies` should ' + - 'be an array') - } - - var shouldBundle = bd && bd.indexOf(entry) !== -1 - // if we're not going to bundle it, then it doesn't count as a bundleLink - // if (this.bundleLinks && !shouldBundle) delete this.bundleLinks[entry] - return shouldBundle - } - // if (this.bundled) return true - - return Ignore.prototype.applyIgnores.call(this, entry, partial, entryObj) -} - -Packer.prototype.addIgnoreFiles = function () { - var entries = this.entries - // if there's a .npmignore, then we do *not* want to - // read the .gitignore. - if (entries.indexOf('.npmignore') !== -1) { - var i = entries.indexOf('.gitignore') - if (i !== -1) { - entries.splice(i, 1) - } - } - - this.entries = entries - - Ignore.prototype.addIgnoreFiles.call(this) -} - -Packer.prototype.readRules = function (buf, e) { - if (e !== 'package.json') { - return Ignore.prototype.readRules.call(this, buf, e) - } - - buf = buf.toString().trim() - - if (buf.length === 0) return [] - - try { - var p = this.package = JSON.parse(buf) - } catch (er) { - // just pretend it's a normal old file, not magic at all. - return [] - } - - if (this === this.root) { - this.bundleLinks = this.bundleLinks || {} - this.bundleLinks[p.name] = this._path - } - - this.packageRoot = true - this.emit('package', p) - - // make bundle deps predictable - if (p.bundledDependencies && !p.bundleDependencies) { - p.bundleDependencies = p.bundledDependencies - delete p.bundledDependencies - } - - if (!p.files || !Array.isArray(p.files)) return [] - - // ignore everything except what's in the files array. - return ['*'].concat(p.files.map(function (f) { - return '!' + f - })).concat(p.files.map(function (f) { - return '!' + f.replace(/\/+$/, '') + '/**' - })) -} - -Packer.prototype.getChildProps = function (stat) { - var props = Ignore.prototype.getChildProps.call(this, stat) - - props.package = this.package - - props.bundled = this.bundled && this.bundled.slice(0) - props.bundleLinks = this.bundleLinks && - Object.create(this.bundleLinks) - - // Directories have to be read as Packers - // otherwise fstream.Reader will create a DirReader instead. - if (stat.isDirectory()) { - props.type = this.constructor - } - - // only follow symbolic links directly in the node_modules folder. - props.follow = false - return props -} - -var order = [ - 'package.json', - '.npmignore', - '.gitignore', - /^README(\.md)?$/, - 'LICENCE', - 'LICENSE', - /\.js$/ -] - -Packer.prototype.sort = function (a, b) { - for (var i = 0, l = order.length; i < l; i++) { - var o = order[i] - if (typeof o === 'string') { - if (a === o) return -1 - if (b === o) return 1 - } else { - if (a.match(o)) return -1 - if (b.match(o)) return 1 - } - } - - // deps go in the back - if (a === 'node_modules') return 1 - if (b === 'node_modules') return -1 - - return Ignore.prototype.sort.call(this, a, b) -} - -Packer.prototype.emitEntry = function (entry) { - if (this._paused) { - this.once('resume', this.emitEntry.bind(this, entry)) - return - } - - // if there is a .gitignore, then we're going to - // rename it to .npmignore in the output. - if (entry.basename === '.gitignore') { - entry.basename = '.npmignore' - entry.path = path.resolve(entry.dirname, entry.basename) - } - - // all *.gyp files are renamed to binding.gyp for node-gyp - // but only when they are in the same folder as a package.json file. - if (entry.basename.match(/\.gyp$/) && - this.entries.indexOf('package.json') !== -1) { - entry.basename = 'binding.gyp' - entry.path = path.resolve(entry.dirname, entry.basename) - } - - // skip over symbolic links - if (entry.type === 'SymbolicLink') { - entry.abort() - return - } - - if (entry.type !== 'Directory') { - // make it so that the folder in the tarball is named "package" - var h = path.dirname((entry.root || entry).path) - var t = entry.path.substr(h.length + 1).replace(/^[^\/\\]+/, 'package') - var p = h + '/' + t - - entry.path = p - entry.dirname = path.dirname(p) - return Ignore.prototype.emitEntry.call(this, entry) - } - - // we don't want empty directories to show up in package - // tarballs. - // don't emit entry events for dirs, but still walk through - // and read them. This means that we need to proxy up their - // entry events so that those entries won't be missed, since - // .pipe() doesn't do anythign special with "child" events, on - // with "entry" events. - var me = this - entry.on('entry', function (e) { - if (e.parent === entry) { - e.parent = me - me.emit('entry', e) - } - }) - entry.on('package', this.emit.bind(this, 'package')) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/README.md deleted file mode 100644 index 31170fea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# fstream-ignore - -A fstream DirReader that filters out files that match globs in `.ignore` -files throughout the tree, like how git ignores files based on a -`.gitignore` file. - -Here's an example: - -```javascript -var Ignore = require("fstream-ignore") -Ignore({ path: __dirname - , ignoreFiles: [".ignore", ".gitignore"] - }) - .on("child", function (c) { - console.error(c.path.substr(c.root.path.length + 1)) - }) - .pipe(tar.Pack()) - .pipe(fs.createWriteStream("foo.tar")) -``` - -This will tar up the files in __dirname into `foo.tar`, ignoring -anything matched by the globs in any .iginore or .gitignore file. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/ignore.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/ignore.js deleted file mode 100644 index 212fc7bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/ignore.js +++ /dev/null @@ -1,275 +0,0 @@ -// Essentially, this is a fstream.DirReader class, but with a -// bit of special logic to read the specified sort of ignore files, -// and a filter that prevents it from picking up anything excluded -// by those files. - -var Minimatch = require("minimatch").Minimatch -, fstream = require("fstream") -, DirReader = fstream.DirReader -, inherits = require("inherits") -, path = require("path") -, fs = require("fs") - -module.exports = IgnoreReader - -inherits(IgnoreReader, DirReader) - -function IgnoreReader (props) { - if (!(this instanceof IgnoreReader)) { - return new IgnoreReader(props) - } - - // must be a Directory type - if (typeof props === "string") { - props = { path: path.resolve(props) } - } - - props.type = "Directory" - props.Directory = true - - if (!props.ignoreFiles) props.ignoreFiles = [".ignore"] - this.ignoreFiles = props.ignoreFiles - - this.ignoreRules = null - - // ensure that .ignore files always show up at the top of the list - // that way, they can be read before proceeding to handle other - // entries in that same folder - if (props.sort) { - this._sort = props.sort === "alpha" ? alphasort : props.sort - props.sort = null - } - - this.on("entries", function () { - // if there are any ignore files in the list, then - // pause and add them. - // then, filter the list based on our ignoreRules - - var hasIg = this.entries.some(this.isIgnoreFile, this) - - if (!hasIg) return this.filterEntries() - - this.addIgnoreFiles() - }) - - // we filter entries before we know what they are. - // however, directories have to be re-tested against - // rules with a "/" appended, because "a/b/" will only - // match if "a/b" is a dir, and not otherwise. - this.on("_entryStat", function (entry, props) { - var t = entry.basename - if (!this.applyIgnores(entry.basename, - entry.type === "Directory", - entry)) { - entry.abort() - } - }.bind(this)) - - DirReader.call(this, props) -} - - -IgnoreReader.prototype.addIgnoreFiles = function () { - if (this._paused) { - this.once("resume", this.addIgnoreFiles) - return - } - if (this._ignoreFilesAdded) return - this._ignoreFilesAdded = true - - var newIg = this.entries.filter(this.isIgnoreFile, this) - , count = newIg.length - , errState = null - - if (!count) return - - this.pause() - - var then = function (er) { - if (errState) return - if (er) return this.emit("error", errState = er) - if (-- count === 0) { - this.filterEntries() - this.resume() - } else { - this.addIgnoreFile(newIg[newIg.length - count], then) - } - }.bind(this) - - this.addIgnoreFile(newIg[0], then) -} - - -IgnoreReader.prototype.isIgnoreFile = function (e) { - return e !== "." && - e !== ".." && - -1 !== this.ignoreFiles.indexOf(e) -} - - -IgnoreReader.prototype.getChildProps = function (stat) { - var props = DirReader.prototype.getChildProps.call(this, stat) - props.ignoreFiles = this.ignoreFiles - - // Directories have to be read as IgnoreReaders - // otherwise fstream.Reader will create a DirReader instead. - if (stat.isDirectory()) { - props.type = this.constructor - } - return props -} - - -IgnoreReader.prototype.addIgnoreFile = function (e, cb) { - // read the file, and then call addIgnoreRules - // if there's an error, then tell the cb about it. - - var ig = path.resolve(this.path, e) - fs.readFile(ig, function (er, data) { - if (er) return cb(er) - - this.emit("ignoreFile", e, data) - var rules = this.readRules(data, e) - this.addIgnoreRules(rules, e) - cb() - }.bind(this)) -} - - -IgnoreReader.prototype.readRules = function (buf, e) { - return buf.toString().split(/\r?\n/) -} - - -// Override this to do fancier things, like read the -// "files" array from a package.json file or something. -IgnoreReader.prototype.addIgnoreRules = function (set, e) { - // filter out anything obvious - set = set.filter(function (s) { - s = s.trim() - return s && !s.match(/^#/) - }) - - // no rules to add! - if (!set.length) return - - // now get a minimatch object for each one of these. - // Note that we need to allow dot files by default, and - // not switch the meaning of their exclusion - var mmopt = { matchBase: true, dot: true, flipNegate: true } - , mm = set.map(function (s) { - var m = new Minimatch(s, mmopt) - m.ignoreFile = e - return m - }) - - if (!this.ignoreRules) this.ignoreRules = [] - this.ignoreRules.push.apply(this.ignoreRules, mm) -} - - -IgnoreReader.prototype.filterEntries = function () { - // this exclusion is at the point where we know the list of - // entries in the dir, but don't know what they are. since - // some of them *might* be directories, we have to run the - // match in dir-mode as well, so that we'll pick up partials - // of files that will be included later. Anything included - // at this point will be checked again later once we know - // what it is. - this.entries = this.entries.filter(function (entry) { - // at this point, we don't know if it's a dir or not. - return this.applyIgnores(entry) || this.applyIgnores(entry, true) - }, this) -} - - -IgnoreReader.prototype.applyIgnores = function (entry, partial, obj) { - var included = true - - // this = /a/b/c - // entry = d - // parent /a/b sees c/d - if (this.parent && this.parent.applyIgnores) { - var pt = this.basename + "/" + entry - included = this.parent.applyIgnores(pt, partial) - } - - // Negated Rules - // Since we're *ignoring* things here, negating means that a file - // is re-included, if it would have been excluded by a previous - // rule. So, negated rules are only relevant if the file - // has been excluded. - // - // Similarly, if a file has been excluded, then there's no point - // trying it against rules that have already been applied - // - // We're using the "flipnegate" flag here, which tells minimatch - // to set the "negate" for our information, but still report - // whether the core pattern was a hit or a miss. - - if (!this.ignoreRules) { - return included - } - - this.ignoreRules.forEach(function (rule) { - // negation means inclusion - if (rule.negate && included || - !rule.negate && !included) { - // unnecessary - return - } - - // first, match against /foo/bar - var match = rule.match("/" + entry) - - if (!match) { - // try with the leading / trimmed off the test - // eg: foo/bar instead of /foo/bar - match = rule.match(entry) - } - - // if the entry is a directory, then it will match - // with a trailing slash. eg: /foo/bar/ or foo/bar/ - if (!match && partial) { - match = rule.match("/" + entry + "/") || - rule.match(entry + "/") - } - - // When including a file with a negated rule, it's - // relevant if a directory partially matches, since - // it may then match a file within it. - // Eg, if you ignore /a, but !/a/b/c - if (!match && rule.negate && partial) { - match = rule.match("/" + entry, true) || - rule.match(entry, true) - } - - if (match) { - included = rule.negate - } - }, this) - - return included -} - - -IgnoreReader.prototype.sort = function (a, b) { - var aig = this.ignoreFiles.indexOf(a) !== -1 - , big = this.ignoreFiles.indexOf(b) !== -1 - - if (aig && !big) return -1 - if (big && !aig) return 1 - return this._sort(a, b) -} - -IgnoreReader.prototype._sort = function (a, b) { - return 0 -} - -function alphasort (a, b) { - return a === b ? 0 - : a.toLowerCase() > b.toLowerCase() ? 1 - : a.toLowerCase() < b.toLowerCase() ? -1 - : a > b ? 1 - : -1 -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/README.md deleted file mode 100644 index d458bc2e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/README.md +++ /dev/null @@ -1,216 +0,0 @@ -# minimatch - -A minimal matching utility. - -[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch) - - -This is the matching library used internally by npm. - -It works by converting glob expressions into JavaScript `RegExp` -objects. - -## Usage - -```javascript -var minimatch = require("minimatch") - -minimatch("bar.foo", "*.foo") // true! -minimatch("bar.foo", "*.bar") // false! -minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy! -``` - -## Features - -Supports these glob features: - -* Brace Expansion -* Extended glob matching -* "Globstar" `**` matching - -See: - -* `man sh` -* `man bash` -* `man 3 fnmatch` -* `man 5 gitignore` - -## Minimatch Class - -Create a minimatch object by instanting the `minimatch.Minimatch` class. - -```javascript -var Minimatch = require("minimatch").Minimatch -var mm = new Minimatch(pattern, options) -``` - -### Properties - -* `pattern` The original pattern the minimatch object represents. -* `options` The options supplied to the constructor. -* `set` A 2-dimensional array of regexp or string expressions. - Each row in the - array corresponds to a brace-expanded pattern. Each item in the row - corresponds to a single path-part. For example, the pattern - `{a,b/c}/d` would expand to a set of patterns like: - - [ [ a, d ] - , [ b, c, d ] ] - - If a portion of the pattern doesn't have any "magic" in it - (that is, it's something like `"foo"` rather than `fo*o?`), then it - will be left as a string rather than converted to a regular - expression. - -* `regexp` Created by the `makeRe` method. A single regular expression - expressing the entire pattern. This is useful in cases where you wish - to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled. -* `negate` True if the pattern is negated. -* `comment` True if the pattern is a comment. -* `empty` True if the pattern is `""`. - -### Methods - -* `makeRe` Generate the `regexp` member if necessary, and return it. - Will return `false` if the pattern is invalid. -* `match(fname)` Return true if the filename matches the pattern, or - false otherwise. -* `matchOne(fileArray, patternArray, partial)` Take a `/`-split - filename, and match it against a single row in the `regExpSet`. This - method is mainly for internal use, but is exposed so that it can be - used by a glob-walker that needs to avoid excessive filesystem calls. - -All other methods are internal, and will be called as necessary. - -## Functions - -The top-level exported function has a `cache` property, which is an LRU -cache set to store 100 items. So, calling these methods repeatedly -with the same pattern and options will use the same Minimatch object, -saving the cost of parsing it multiple times. - -### minimatch(path, pattern, options) - -Main export. Tests a path against the pattern using the options. - -```javascript -var isJS = minimatch(file, "*.js", { matchBase: true }) -``` - -### minimatch.filter(pattern, options) - -Returns a function that tests its -supplied argument, suitable for use with `Array.filter`. Example: - -```javascript -var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true})) -``` - -### minimatch.match(list, pattern, options) - -Match against the list of -files, in the style of fnmatch or glob. If nothing is matched, and -options.nonull is set, then return a list containing the pattern itself. - -```javascript -var javascripts = minimatch.match(fileList, "*.js", {matchBase: true})) -``` - -### minimatch.makeRe(pattern, options) - -Make a regular expression object from the pattern. - -## Options - -All options are `false` by default. - -### debug - -Dump a ton of stuff to stderr. - -### nobrace - -Do not expand `{a,b}` and `{1..3}` brace sets. - -### noglobstar - -Disable `**` matching against multiple folder names. - -### dot - -Allow patterns to match filenames starting with a period, even if -the pattern does not explicitly have a period in that spot. - -Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot` -is set. - -### noext - -Disable "extglob" style patterns like `+(a|b)`. - -### nocase - -Perform a case-insensitive match. - -### nonull - -When a match is not found by `minimatch.match`, return a list containing -the pattern itself if this option is set. When not set, an empty list -is returned if there are no matches. - -### matchBase - -If set, then patterns without slashes will be matched -against the basename of the path if it contains slashes. For example, -`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. - -### nocomment - -Suppress the behavior of treating `#` at the start of a pattern as a -comment. - -### nonegate - -Suppress the behavior of treating a leading `!` character as negation. - -### flipNegate - -Returns from negate expressions the same as if they were not negated. -(Ie, true on a hit, false on a miss.) - - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between minimatch and other -implementations, and are intentional. - -If the pattern starts with a `!` character, then it is negated. Set the -`nonegate` flag to suppress this behavior, and treat leading `!` -characters normally. This is perhaps relevant if you wish to start the -pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` -characters at the start of a pattern will negate the pattern multiple -times. - -If a pattern starts with `#`, then it is treated as a comment, and -will not match anything. Use `\#` to match a literal `#` at the -start of a line, or set the `nocomment` flag to suppress this behavior. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.1, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then minimatch.match returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/minimatch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/minimatch.js deleted file mode 100644 index ec4c05c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/minimatch.js +++ /dev/null @@ -1,912 +0,0 @@ -module.exports = minimatch -minimatch.Minimatch = Minimatch - -var path = { sep: '/' } -try { - path = require('path') -} catch (er) {} - -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} -var expand = require('brace-expansion') - -// any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]' - -// * => any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } - - // "" only matches "" - if (pattern.trim() === '') return p === '' - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } - - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') - } - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function () {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new Error('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var plType - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - plType = stateChar - patternListStack.push({ - type: plType, - start: i - 1, - reStart: re.length - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - re += ')' - var pl = patternListStack.pop() - plType = pl.type - // negation is (?:(?!js)[^/]*) - // The others are (?:) - switch (plType) { - case '!': - negativeLists.push(pl) - re += ')[^/]*?)' - pl.reEnd = re.length - break - case '?': - case '+': - case '*': - re += plType - break - case '@': break // the default anyway - } - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + 3) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - var regExp = new RegExp('^' + re + '$', flags) - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/.npmignore deleted file mode 100644 index 353546af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -test -.gitignore -.travis.yml diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/README.md deleted file mode 100644 index 17939297..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/example.js deleted file mode 100644 index 60ecfc74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/example.js +++ /dev/null @@ -1,8 +0,0 @@ -var expand = require('./'); - -console.log(expand('http://any.org/archive{1996..1999}/vol{1..4}/part{a,b,c}.html')); -console.log(expand('http://www.numericals.com/file{1..100..10}.txt')); -console.log(expand('http://www.letters.com/file{a..z..2}.txt')); -console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}')); -console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}')); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/index.js deleted file mode 100644 index 932718f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,191 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = /^(.*,)+(.+)?$/.test(m.body); - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore deleted file mode 100644 index ae5d8c36..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -test -.gitignore -.travis.yml -Makefile -example.js diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md deleted file mode 100644 index d6880b2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[ , ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js deleted file mode 100644 index 4670f7f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +++ /dev/null @@ -1,58 +0,0 @@ -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i < str.length && i >= 0 && ! result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json deleted file mode 100644 index 9322bb20..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "_args": [ - [ - { - "name": "balanced-match", - "raw": "balanced-match@^0.4.1", - "rawSpec": "^0.4.1", - "scope": null, - "spec": ">=0.4.1 <0.5.0", - "type": "range" - }, - "/Users/zkat/Documents/code/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion" - ] - ], - "_from": "balanced-match@>=0.4.1 <0.5.0", - "_id": "balanced-match@0.4.1", - "_inCache": true, - "_installable": true, - "_location": "/fstream-npm/fstream-ignore/minimatch/brace-expansion/balanced-match", - "_nodeVersion": "6.0.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/balanced-match-0.4.1.tgz_1462129663650_0.39764496590942144" - }, - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.8.6", - "_phantomChildren": {}, - "_requested": { - "name": "balanced-match", - "raw": "balanced-match@^0.4.1", - "rawSpec": "^0.4.1", - "scope": null, - "spec": ">=0.4.1 <0.5.0", - "type": "range" - }, - "_requiredBy": [ - "/fstream-npm/fstream-ignore/minimatch/brace-expansion" - ], - "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz", - "_shasum": "19053e2e0748eadb379da6c09d455cf5e1039335", - "_shrinkwrap": null, - "_spec": "balanced-match@^0.4.1", - "_where": "/Users/zkat/Documents/code/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/balanced-match/issues" - }, - "dependencies": {}, - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "devDependencies": { - "tape": "~4.5.0" - }, - "directories": {}, - "dist": { - "shasum": "19053e2e0748eadb379da6c09d455cf5e1039335", - "tarball": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz" - }, - "gitHead": "7004b289baaaab6a832f4901735e29d37cc2a863", - "homepage": "https://github.com/juliangruber/balanced-match", - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - } - ], - "name": "balanced-match", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "scripts": { - "test": "make test" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test/*.js" - }, - "version": "0.4.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml deleted file mode 100644 index f1d0f13c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +++ /dev/null @@ -1,62 +0,0 @@ -concat-map -========== - -Concatenative mapdashery. - -[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) - -[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) - -example -======= - -``` js -var concatMap = require('concat-map'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); -``` - -*** - -``` -[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] -``` - -methods -======= - -``` js -var concatMap = require('concat-map') -``` - -concatMap(xs, fn) ------------------ - -Return an array of concatenated elements by calling `fn(x, i)` for each element -`x` and each index `i` in the array `xs`. - -When `fn(x, i)` returns an array, its result will be concatenated with the -result array. If `fn(x, i)` returns anything else, that value will be pushed -onto the end of the result array. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install concat-map -``` - -license -======= - -MIT - -notes -===== - -This module was written while sitting high above the ground in a tree. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js deleted file mode 100644 index 33656217..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js deleted file mode 100644 index b29a7812..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json deleted file mode 100644 index b5161380..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "concat-map", - "description": "concatenative mapdashery", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-concat-map.git" - }, - "main": "index.js", - "keywords": [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "directories": { - "example": "example", - "test": "test" - }, - "scripts": { - "test": "tape test/*.js" - }, - "devDependencies": { - "tape": "~2.4.0" - }, - "license": "MIT", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "testling": { - "files": "test/*.js", - "browsers": { - "ie": [ - 6, - 7, - 8, - 9 - ], - "ff": [ - 3.5, - 10, - 15 - ], - "chrome": [ - 10, - 22 - ], - "safari": [ - 5.1 - ], - "opera": [ - 12 - ] - } - }, - "bugs": { - "url": "https://github.com/substack/node-concat-map/issues" - }, - "homepage": "https://github.com/substack/node-concat-map", - "_id": "concat-map@0.0.1", - "dist": { - "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "tarball": "http://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "_from": "concat-map@0.0.1", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd7022..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/package.json deleted file mode 100644 index 0a28e3de..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "_args": [ - [ - { - "name": "brace-expansion", - "raw": "brace-expansion@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/zkat/Documents/code/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch" - ] - ], - "_from": "brace-expansion@>=1.0.0 <2.0.0", - "_id": "brace-expansion@1.1.4", - "_inCache": true, - "_installable": true, - "_location": "/fstream-npm/fstream-ignore/minimatch/brace-expansion", - "_nodeVersion": "6.0.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/brace-expansion-1.1.4.tgz_1462130058897_0.14984136167913675" - }, - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.8.6", - "_phantomChildren": {}, - "_requested": { - "name": "brace-expansion", - "raw": "brace-expansion@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/fstream-npm/fstream-ignore/minimatch" - ], - "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz", - "_shasum": "464a204c77f482c085c2a36c456bbfbafb67a127", - "_shrinkwrap": null, - "_spec": "brace-expansion@^1.0.0", - "_where": "/Users/zkat/Documents/code/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/brace-expansion/issues" - }, - "dependencies": { - "balanced-match": "^0.4.1", - "concat-map": "0.0.1" - }, - "description": "Brace expansion as known from sh/bash", - "devDependencies": { - "tape": "4.5.1" - }, - "directories": {}, - "dist": { - "shasum": "464a204c77f482c085c2a36c456bbfbafb67a127", - "tarball": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz" - }, - "gitHead": "1660b75d0bf03b022e7888b576cd5a4080692c1d", - "homepage": "https://github.com/juliangruber/brace-expansion", - "keywords": [], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - } - ], - "name": "brace-expansion", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "scripts": { - "gentest": "bash test/generate.sh", - "test": "tape test/*.js" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test/*.js" - }, - "version": "1.1.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/package.json deleted file mode 100644 index 51abf989..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "name": "minimatch", - "description": "a glob matcher in javascript", - "version": "3.0.0", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" - }, - "main": "minimatch.js", - "scripts": { - "posttest": "standard minimatch.js test/*.js", - "test": "tap test/*.js" - }, - "engines": { - "node": "*" - }, - "dependencies": { - "brace-expansion": "^1.0.0" - }, - "devDependencies": { - "standard": "^3.7.2", - "tap": "^1.2.0" - }, - "license": "ISC", - "files": [ - "minimatch.js" - ], - "gitHead": "270dbea567f0af6918cb18103e98c612aa717a20", - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" - }, - "homepage": "https://github.com/isaacs/minimatch#readme", - "_id": "minimatch@3.0.0", - "_shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83", - "_from": "minimatch@>=3.0.0 <4.0.0", - "_npmVersion": "3.3.2", - "_nodeVersion": "4.0.0", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83", - "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/package.json deleted file mode 100644 index e17a1887..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/package.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "_args": [ - [ - { - "name": "fstream-ignore", - "raw": "fstream-ignore@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/zkat/Documents/code/npm/node_modules/fstream-npm" - ] - ], - "_from": "fstream-ignore@>=1.0.0 <2.0.0", - "_id": "fstream-ignore@1.0.5", - "_inCache": true, - "_installable": true, - "_location": "/fstream-npm/fstream-ignore", - "_nodeVersion": "5.10.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/fstream-ignore-1.0.5.tgz_1463518095640_0.10221575922332704" - }, - "_npmUser": { - "email": "kat@sykosomatic.org", - "name": "zkat" - }, - "_npmVersion": "3.9.1", - "_phantomChildren": {}, - "_requested": { - "name": "fstream-ignore", - "raw": "fstream-ignore@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/fstream-npm" - ], - "_resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "_shasum": "9c31dae34767018fe1d249b24dada67d092da105", - "_shrinkwrap": null, - "_spec": "fstream-ignore@^1.0.0", - "_where": "/Users/zkat/Documents/code/npm/node_modules/fstream-npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/fstream-ignore/issues" - }, - "dependencies": { - "fstream": "^1.0.0", - "inherits": "2", - "minimatch": "^3.0.0" - }, - "description": "A thing for ignoring files based on globs", - "devDependencies": { - "mkdirp": "", - "rimraf": "", - "tap": "^5.7.1" - }, - "directories": {}, - "dist": { - "shasum": "9c31dae34767018fe1d249b24dada67d092da105", - "tarball": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz" - }, - "files": [ - "ignore.js" - ], - "gitHead": "1438a1a2c25fee71327c36c86de787a14a53ffd4", - "homepage": "https://github.com/isaacs/fstream-ignore#readme", - "license": "ISC", - "main": "ignore.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "fstream-ignore", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/fstream-ignore.git" - }, - "scripts": { - "test": "tap test/*.js --cov" - }, - "version": "1.0.5" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/package.json deleted file mode 100644 index 0eddd8be..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/package.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "_args": [ - [ - { - "name": "fstream-npm", - "raw": "fstream-npm@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "/Users/zkat/Documents/code/npm" - ] - ], - "_from": "fstream-npm@latest", - "_id": "fstream-npm@1.1.0", - "_inCache": true, - "_installable": true, - "_location": "/fstream-npm", - "_nodeVersion": "5.10.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/fstream-npm-1.1.0.tgz_1463528747313_0.84859543829225" - }, - "_npmUser": { - "email": "kat@sykosomatic.org", - "name": "zkat" - }, - "_npmVersion": "3.9.1", - "_phantomChildren": { - "fstream": "1.0.9", - "inherits": "2.0.1" - }, - "_requested": { - "name": "fstream-npm", - "raw": "fstream-npm@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/fstream-npm/-/fstream-npm-1.1.0.tgz", - "_shasum": "80e09743485eaa70d57e89d1ff8fafa366cdefea", - "_shrinkwrap": null, - "_spec": "fstream-npm@latest", - "_where": "/Users/zkat/Documents/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/npm/fstream-npm/issues" - }, - "dependencies": { - "fstream-ignore": "^1.0.0", - "inherits": "2" - }, - "description": "fstream class for creating npm packages", - "devDependencies": { - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.4.2", - "standard": "^4.3.1", - "tap": "^1.3.2" - }, - "directories": {}, - "dist": { - "shasum": "80e09743485eaa70d57e89d1ff8fafa366cdefea", - "tarball": "https://registry.npmjs.org/fstream-npm/-/fstream-npm-1.1.0.tgz" - }, - "gitHead": "7df2e946714506f287b0a8125dc05566b840d4b0", - "homepage": "https://github.com/npm/fstream-npm#readme", - "license": "ISC", - "main": "./fstream-npm.js", - "maintainers": [ - { - "email": "me@re-becca.org", - "name": "iarna" - }, - { - "email": "i@izs.me", - "name": "isaacs" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "fstream-npm", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/fstream-npm.git" - }, - "scripts": { - "test": "standard && tap test/*.js" - }, - "version": "1.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/test/ignores.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/test/ignores.js deleted file mode 100644 index ac94251f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream-npm/test/ignores.js +++ /dev/null @@ -1,132 +0,0 @@ -var fs = require('graceful-fs') -var join = require('path').join - -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var Packer = require('..') - -var pkg = join(__dirname, 'test-package') - -var elfJS = function () {/* -module.exports = function () { - console.log("i'm a elf") -} -*/}.toString().split('\n').slice(1, -1).join() - -var json = { - 'name': 'test-package', - 'version': '3.1.4', - 'main': 'elf.js' -} - -test('setup', function (t) { - setup() - t.end() -}) - -var included = [ - 'package.json', - 'elf.js', - join('deps', 'foo', 'config', 'config.gypi') -] - -test('follows npm package ignoring rules', function (t) { - var subject = new Packer({ path: pkg, type: 'Directory', isDirectory: true }) - var filenames = [] - subject.on('entry', function (entry) { - t.equal(entry.type, 'File', 'only files in this package') - - // include relative path in filename - var filename = entry._path.slice(entry.root._path.length + 1) - - filenames.push(filename) - }) - // need to do this so fstream doesn't explode when files are removed from - // under it - subject.on('end', function () { - // ensure we get *exactly* the results we expect by comparing in both - // directions - filenames.forEach(function (filename) { - t.ok( - included.indexOf(filename) > -1, - filename + ' is included' - ) - }) - included.forEach(function (filename) { - t.ok( - filenames.indexOf(filename) > -1, - filename + ' is not included' - ) - }) - t.end() - }) -}) - -test('cleanup', function (t) { - // rimraf.sync chokes here for some reason - rimraf(pkg, function () { t.end() }) -}) - -function setup () { - rimraf.sync(pkg) - mkdirp.sync(pkg) - fs.writeFileSync( - join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - fs.writeFileSync( - join(pkg, 'elf.js'), - elfJS - ) - - fs.writeFileSync( - join(pkg, '.npmrc'), - 'packaged=false' - ) - - fs.writeFileSync( - join(pkg, '.npmignore'), - '.npmignore\ndummy\npackage.json' - ) - - fs.writeFileSync( - join(pkg, 'dummy'), - 'foo' - ) - - var buildDir = join(pkg, 'build') - mkdirp.sync(buildDir) - fs.writeFileSync( - join(buildDir, 'config.gypi'), - "i_wont_be_included_by_fstream='with any luck'" - ) - - var depscfg = join(pkg, 'deps', 'foo', 'config') - mkdirp.sync(depscfg) - fs.writeFileSync( - join(depscfg, 'config.gypi'), - "i_will_be_included_by_fstream='with any luck'" - ) - - fs.writeFileSync( - join(buildDir, 'npm-debug.log'), - '0 lol\n' - ) - - var gitDir = join(pkg, '.git') - mkdirp.sync(gitDir) - fs.writeFileSync( - join(gitDir, 'gitstub'), - "won't fool git, also won't be included by fstream" - ) - - var historyDir = join(pkg, 'node_modules/history') - mkdirp.sync(historyDir) - fs.writeFileSync( - join(historyDir, 'README.md'), - "please don't include me" - ) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/.npmignore deleted file mode 100644 index 494272a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -.*.swp -node_modules/ -examples/deep-copy/ -examples/path/ -examples/filter-copy/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/.travis.yml deleted file mode 100644 index a092c82b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: node_js -node_js: - - iojs - - 0.12 - - 0.10 - - 0.8 -before_install: - - "npm config set spin false" - - "npm install -g npm/npm" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/README.md deleted file mode 100644 index 9d8cb77e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/README.md +++ /dev/null @@ -1,76 +0,0 @@ -Like FS streams, but with stat on them, and supporting directories and -symbolic links, as well as normal files. Also, you can use this to set -the stats on a file, even if you don't change its contents, or to create -a symlink, etc. - -So, for example, you can "write" a directory, and it'll call `mkdir`. You -can specify a uid and gid, and it'll call `chown`. You can specify a -`mtime` and `atime`, and it'll call `utimes`. You can call it a symlink -and provide a `linkpath` and it'll call `symlink`. - -Note that it won't automatically resolve symbolic links. So, if you -call `fstream.Reader('/some/symlink')` then you'll get an object -that stats and then ends immediately (since it has no data). To follow -symbolic links, do this: `fstream.Reader({path:'/some/symlink', follow: -true })`. - -There are various checks to make sure that the bytes emitted are the -same as the intended size, if the size is set. - -## Examples - -```javascript -fstream - .Writer({ path: "path/to/file" - , mode: 0755 - , size: 6 - }) - .write("hello\n") - .end() -``` - -This will create the directories if they're missing, and then write -`hello\n` into the file, chmod it to 0755, and assert that 6 bytes have -been written when it's done. - -```javascript -fstream - .Writer({ path: "path/to/file" - , mode: 0755 - , size: 6 - , flags: "a" - }) - .write("hello\n") - .end() -``` - -You can pass flags in, if you want to append to a file. - -```javascript -fstream - .Writer({ path: "path/to/symlink" - , linkpath: "./file" - , SymbolicLink: true - , mode: "0755" // octal strings supported - }) - .end() -``` - -If isSymbolicLink is a function, it'll be called, and if it returns -true, then it'll treat it as a symlink. If it's not a function, then -any truish value will make a symlink, or you can set `type: -'SymbolicLink'`, which does the same thing. - -Note that the linkpath is relative to the symbolic link location, not -the parent dir or cwd. - -```javascript -fstream - .Reader("path/to/dir") - .pipe(fstream.Writer("path/to/other/dir")) -``` - -This will do like `cp -Rp path/to/dir path/to/other/dir`. If the other -dir exists and isn't a directory, then it'll emit an error. It'll also -set the uid, gid, mode, etc. to be identical. In this way, it's more -like `rsync -a` than simply a copy. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/filter-pipe.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/filter-pipe.js deleted file mode 100644 index 83dadef8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/filter-pipe.js +++ /dev/null @@ -1,134 +0,0 @@ -var fstream = require('../fstream.js') -var path = require('path') - -var r = fstream.Reader({ - path: path.dirname(__dirname), - filter: function () { - return !this.basename.match(/^\./) && - !this.basename.match(/^node_modules$/) && - !this.basename.match(/^deep-copy$/) && - !this.basename.match(/^filter-copy$/) - } -}) - -// this writer will only write directories -var w = fstream.Writer({ - path: path.resolve(__dirname, 'filter-copy'), - type: 'Directory', - filter: function () { - return this.type === 'Directory' - } -}) - -var indent = '' - -r.on('entry', appears) -r.on('ready', function () { - console.error('ready to begin!', r.path) -}) - -function appears (entry) { - console.error(indent + 'a %s appears!', entry.type, entry.basename, typeof entry.basename) - if (foggy) { - console.error('FOGGY!') - var p = entry - do { - console.error(p.depth, p.path, p._paused) - p = p.parent - } while (p) - - throw new Error('\u001b[mshould not have entries while foggy') - } - indent += '\t' - entry.on('data', missile(entry)) - entry.on('end', runaway(entry)) - entry.on('entry', appears) -} - -var foggy -function missile (entry) { - function liftFog (who) { - if (!foggy) return - if (who) { - console.error('%s breaks the spell!', who && who.path) - } else { - console.error('the spell expires!') - } - console.error('\u001b[mthe fog lifts!\n') - clearTimeout(foggy) - foggy = null - if (entry._paused) entry.resume() - } - - if (entry.type === 'Directory') { - var ended = false - entry.once('end', function () { ended = true }) - return function (c) { - // throw in some pathological pause()/resume() behavior - // just for extra fun. - process.nextTick(function () { - if (!foggy && !ended) { // && Math.random() < 0.3) { - console.error(indent + '%s casts a spell', entry.basename) - console.error('\na slowing fog comes over the battlefield...\n\u001b[32m') - entry.pause() - entry.once('resume', liftFog) - foggy = setTimeout(liftFog, 1000) - } - }) - } - } - - return function (c) { - var e = Math.random() < 0.5 - console.error(indent + '%s %s for %d damage!', - entry.basename, - e ? 'is struck' : 'fires a chunk', - c.length) - } -} - -function runaway (entry) { - return function () { - var e = Math.random() < 0.5 - console.error(indent + '%s %s', - entry.basename, - e ? 'turns to flee' : 'is vanquished!') - indent = indent.slice(0, -1) - } -} - -w.on('entry', attacks) -// w.on('ready', function () { attacks(w) }) -function attacks (entry) { - console.error(indent + '%s %s!', entry.basename, - entry.type === 'Directory' ? 'calls for backup' : 'attacks') - entry.on('entry', attacks) -} - -var ended = false -var i = 1 -r.on('end', function () { - if (foggy) clearTimeout(foggy) - console.error("\u001b[mIT'S OVER!!") - console.error('A WINNAR IS YOU!') - - console.log('ok ' + (i++) + ' A WINNAR IS YOU') - ended = true - // now go through and verify that everything in there is a dir. - var p = path.resolve(__dirname, 'filter-copy') - var checker = fstream.Reader({ path: p }) - checker.checker = true - checker.on('child', function (e) { - var ok = e.type === 'Directory' - console.log((ok ? '' : 'not ') + 'ok ' + (i++) + - ' should be a dir: ' + - e.path.substr(checker.path.length + 1)) - }) -}) - -process.on('exit', function () { - console.log((ended ? '' : 'not ') + 'ok ' + (i) + ' ended') - console.log('1..' + i) -}) - -r.pipe(w) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/pipe.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/pipe.js deleted file mode 100644 index 3de42ef3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/pipe.js +++ /dev/null @@ -1,118 +0,0 @@ -var fstream = require('../fstream.js') -var path = require('path') - -var r = fstream.Reader({ - path: path.dirname(__dirname), - filter: function () { - return !this.basename.match(/^\./) && - !this.basename.match(/^node_modules$/) && - !this.basename.match(/^deep-copy$/) - } -}) - -var w = fstream.Writer({ - path: path.resolve(__dirname, 'deep-copy'), - type: 'Directory' -}) - -var indent = '' - -r.on('entry', appears) -r.on('ready', function () { - console.error('ready to begin!', r.path) -}) - -function appears (entry) { - console.error(indent + 'a %s appears!', entry.type, entry.basename, typeof entry.basename, entry) - if (foggy) { - console.error('FOGGY!') - var p = entry - do { - console.error(p.depth, p.path, p._paused) - p = p.parent - } while (p) - - throw new Error('\u001b[mshould not have entries while foggy') - } - indent += '\t' - entry.on('data', missile(entry)) - entry.on('end', runaway(entry)) - entry.on('entry', appears) -} - -var foggy -function missile (entry) { - function liftFog (who) { - if (!foggy) return - if (who) { - console.error('%s breaks the spell!', who && who.path) - } else { - console.error('the spell expires!') - } - console.error('\u001b[mthe fog lifts!\n') - clearTimeout(foggy) - foggy = null - if (entry._paused) entry.resume() - } - - if (entry.type === 'Directory') { - var ended = false - entry.once('end', function () { ended = true }) - return function (c) { - // throw in some pathological pause()/resume() behavior - // just for extra fun. - process.nextTick(function () { - if (!foggy && !ended) { // && Math.random() < 0.3) { - console.error(indent + '%s casts a spell', entry.basename) - console.error('\na slowing fog comes over the battlefield...\n\u001b[32m') - entry.pause() - entry.once('resume', liftFog) - foggy = setTimeout(liftFog, 10) - } - }) - } - } - - return function (c) { - var e = Math.random() < 0.5 - console.error(indent + '%s %s for %d damage!', - entry.basename, - e ? 'is struck' : 'fires a chunk', - c.length) - } -} - -function runaway (entry) { - return function () { - var e = Math.random() < 0.5 - console.error(indent + '%s %s', - entry.basename, - e ? 'turns to flee' : 'is vanquished!') - indent = indent.slice(0, -1) - } -} - -w.on('entry', attacks) -// w.on('ready', function () { attacks(w) }) -function attacks (entry) { - console.error(indent + '%s %s!', entry.basename, - entry.type === 'Directory' ? 'calls for backup' : 'attacks') - entry.on('entry', attacks) -} - -var ended = false -r.on('end', function () { - if (foggy) clearTimeout(foggy) - console.error("\u001b[mIT'S OVER!!") - console.error('A WINNAR IS YOU!') - - console.log('ok 1 A WINNAR IS YOU') - ended = true -}) - -process.on('exit', function () { - console.log((ended ? '' : 'not ') + 'ok 2 ended') - console.log('1..2') -}) - -r.pipe(w) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/reader.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/reader.js deleted file mode 100644 index 19affbe7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/reader.js +++ /dev/null @@ -1,68 +0,0 @@ -var fstream = require('../fstream.js') -var tap = require('tap') -var fs = require('fs') -var path = require('path') -var dir = path.dirname(__dirname) - -tap.test('reader test', function (t) { - var children = -1 - var gotReady = false - var ended = false - - var r = fstream.Reader({ - path: dir, - filter: function () { - // return this.parent === r - return this.parent === r || this === r - } - }) - - r.on('ready', function () { - gotReady = true - children = fs.readdirSync(dir).length - console.error('Setting expected children to ' + children) - t.equal(r.type, 'Directory', 'should be a directory') - }) - - r.on('entry', function (entry) { - children-- - if (!gotReady) { - t.fail('children before ready!') - } - t.equal(entry.dirname, r.path, 'basename is parent dir') - }) - - r.on('error', function (er) { - t.fail(er) - t.end() - process.exit(1) - }) - - r.on('end', function () { - t.equal(children, 0, 'should have seen all children') - ended = true - }) - - var closed = false - r.on('close', function () { - t.ok(ended, 'saw end before close') - t.notOk(closed, 'close should only happen once') - closed = true - t.end() - }) -}) - -tap.test('reader error test', function (t) { - // assumes non-root on a *nix system - var r = fstream.Reader({ path: '/etc/shadow' }) - - r.once('error', function (er) { - t.ok(true) - t.end() - }) - - r.on('end', function () { - t.fail('reader ended without error') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/symlink-write.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/symlink-write.js deleted file mode 100644 index 19e81eea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/examples/symlink-write.js +++ /dev/null @@ -1,27 +0,0 @@ -var fstream = require('../fstream.js') -var notOpen = false -process.chdir(__dirname) - -fstream - .Writer({ - path: 'path/to/symlink', - linkpath: './file', - isSymbolicLink: true, - mode: '0755' // octal strings supported - }) - .on('close', function () { - notOpen = true - var fs = require('fs') - var s = fs.lstatSync('path/to/symlink') - var isSym = s.isSymbolicLink() - console.log((isSym ? '' : 'not ') + 'ok 1 should be symlink') - var t = fs.readlinkSync('path/to/symlink') - var isTarget = t === './file' - console.log((isTarget ? '' : 'not ') + 'ok 2 should link to ./file') - }) - .end() - -process.on('exit', function () { - console.log((notOpen ? '' : 'not ') + 'ok 3 should be closed') - console.log('1..3') -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/fstream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/fstream.js deleted file mode 100644 index c0eb3bea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/fstream.js +++ /dev/null @@ -1,35 +0,0 @@ -exports.Abstract = require('./lib/abstract.js') -exports.Reader = require('./lib/reader.js') -exports.Writer = require('./lib/writer.js') - -exports.File = { - Reader: require('./lib/file-reader.js'), - Writer: require('./lib/file-writer.js') -} - -exports.Dir = { - Reader: require('./lib/dir-reader.js'), - Writer: require('./lib/dir-writer.js') -} - -exports.Link = { - Reader: require('./lib/link-reader.js'), - Writer: require('./lib/link-writer.js') -} - -exports.Proxy = { - Reader: require('./lib/proxy-reader.js'), - Writer: require('./lib/proxy-writer.js') -} - -exports.Reader.Dir = exports.DirReader = exports.Dir.Reader -exports.Reader.File = exports.FileReader = exports.File.Reader -exports.Reader.Link = exports.LinkReader = exports.Link.Reader -exports.Reader.Proxy = exports.ProxyReader = exports.Proxy.Reader - -exports.Writer.Dir = exports.DirWriter = exports.Dir.Writer -exports.Writer.File = exports.FileWriter = exports.File.Writer -exports.Writer.Link = exports.LinkWriter = exports.Link.Writer -exports.Writer.Proxy = exports.ProxyWriter = exports.Proxy.Writer - -exports.collect = require('./lib/collect.js') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/abstract.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/abstract.js deleted file mode 100644 index 97c120e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/abstract.js +++ /dev/null @@ -1,85 +0,0 @@ -// the parent class for all fstreams. - -module.exports = Abstract - -var Stream = require('stream').Stream -var inherits = require('inherits') - -function Abstract () { - Stream.call(this) -} - -inherits(Abstract, Stream) - -Abstract.prototype.on = function (ev, fn) { - if (ev === 'ready' && this.ready) { - process.nextTick(fn.bind(this)) - } else { - Stream.prototype.on.call(this, ev, fn) - } - return this -} - -Abstract.prototype.abort = function () { - this._aborted = true - this.emit('abort') -} - -Abstract.prototype.destroy = function () {} - -Abstract.prototype.warn = function (msg, code) { - var self = this - var er = decorate(msg, code, self) - if (!self.listeners('warn')) { - console.error('%s %s\n' + - 'path = %s\n' + - 'syscall = %s\n' + - 'fstream_type = %s\n' + - 'fstream_path = %s\n' + - 'fstream_unc_path = %s\n' + - 'fstream_class = %s\n' + - 'fstream_stack =\n%s\n', - code || 'UNKNOWN', - er.stack, - er.path, - er.syscall, - er.fstream_type, - er.fstream_path, - er.fstream_unc_path, - er.fstream_class, - er.fstream_stack.join('\n')) - } else { - self.emit('warn', er) - } -} - -Abstract.prototype.info = function (msg, code) { - this.emit('info', msg, code) -} - -Abstract.prototype.error = function (msg, code, th) { - var er = decorate(msg, code, this) - if (th) throw er - else this.emit('error', er) -} - -function decorate (er, code, self) { - if (!(er instanceof Error)) er = new Error(er) - er.code = er.code || code - er.path = er.path || self.path - er.fstream_type = er.fstream_type || self.type - er.fstream_path = er.fstream_path || self.path - if (self._path !== self.path) { - er.fstream_unc_path = er.fstream_unc_path || self._path - } - if (self.linkpath) { - er.fstream_linkpath = er.fstream_linkpath || self.linkpath - } - er.fstream_class = er.fstream_class || self.constructor.name - er.fstream_stack = er.fstream_stack || - new Error().stack.split(/\n/).slice(3).map(function (s) { - return s.replace(/^ {4}at /, '') - }) - - return er -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/collect.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/collect.js deleted file mode 100644 index 6245e6ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/collect.js +++ /dev/null @@ -1,68 +0,0 @@ -module.exports = collect - -function collect (stream) { - if (stream._collected) return - - stream._collected = true - stream.pause() - - stream.on('data', save) - stream.on('end', save) - var buf = [] - function save (b) { - if (typeof b === 'string') b = new Buffer(b) - if (Buffer.isBuffer(b) && !b.length) return - buf.push(b) - } - - stream.on('entry', saveEntry) - var entryBuffer = [] - function saveEntry (e) { - collect(e) - entryBuffer.push(e) - } - - stream.on('proxy', proxyPause) - function proxyPause (p) { - p.pause() - } - - // replace the pipe method with a new version that will - // unlock the buffered stuff. if you just call .pipe() - // without a destination, then it'll re-play the events. - stream.pipe = (function (orig) { - return function (dest) { - // console.error(' === open the pipes', dest && dest.path) - - // let the entries flow through one at a time. - // Once they're all done, then we can resume completely. - var e = 0 - ;(function unblockEntry () { - var entry = entryBuffer[e++] - // console.error(" ==== unblock entry", entry && entry.path) - if (!entry) return resume() - entry.on('end', unblockEntry) - if (dest) dest.add(entry) - else stream.emit('entry', entry) - })() - - function resume () { - stream.removeListener('entry', saveEntry) - stream.removeListener('data', save) - stream.removeListener('end', save) - - stream.pipe = orig - if (dest) stream.pipe(dest) - - buf.forEach(function (b) { - if (b) stream.emit('data', b) - else stream.emit('end') - }) - - stream.resume() - } - - return dest - } - })(stream.pipe) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/dir-reader.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/dir-reader.js deleted file mode 100644 index 820cdc85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/dir-reader.js +++ /dev/null @@ -1,252 +0,0 @@ -// A thing that emits "entry" events with Reader objects -// Pausing it causes it to stop emitting entry events, and also -// pauses the current entry if there is one. - -module.exports = DirReader - -var fs = require('graceful-fs') -var inherits = require('inherits') -var path = require('path') -var Reader = require('./reader.js') -var assert = require('assert').ok - -inherits(DirReader, Reader) - -function DirReader (props) { - var self = this - if (!(self instanceof DirReader)) { - throw new Error('DirReader must be called as constructor.') - } - - // should already be established as a Directory type - if (props.type !== 'Directory' || !props.Directory) { - throw new Error('Non-directory type ' + props.type) - } - - self.entries = null - self._index = -1 - self._paused = false - self._length = -1 - - if (props.sort) { - this.sort = props.sort - } - - Reader.call(this, props) -} - -DirReader.prototype._getEntries = function () { - var self = this - - // race condition. might pause() before calling _getEntries, - // and then resume, and try to get them a second time. - if (self._gotEntries) return - self._gotEntries = true - - fs.readdir(self._path, function (er, entries) { - if (er) return self.error(er) - - self.entries = entries - - self.emit('entries', entries) - if (self._paused) self.once('resume', processEntries) - else processEntries() - - function processEntries () { - self._length = self.entries.length - if (typeof self.sort === 'function') { - self.entries = self.entries.sort(self.sort.bind(self)) - } - self._read() - } - }) -} - -// start walking the dir, and emit an "entry" event for each one. -DirReader.prototype._read = function () { - var self = this - - if (!self.entries) return self._getEntries() - - if (self._paused || self._currentEntry || self._aborted) { - // console.error('DR paused=%j, current=%j, aborted=%j', self._paused, !!self._currentEntry, self._aborted) - return - } - - self._index++ - if (self._index >= self.entries.length) { - if (!self._ended) { - self._ended = true - self.emit('end') - self.emit('close') - } - return - } - - // ok, handle this one, then. - - // save creating a proxy, by stat'ing the thing now. - var p = path.resolve(self._path, self.entries[self._index]) - assert(p !== self._path) - assert(self.entries[self._index]) - - // set this to prevent trying to _read() again in the stat time. - self._currentEntry = p - fs[ self.props.follow ? 'stat' : 'lstat' ](p, function (er, stat) { - if (er) return self.error(er) - - var who = self._proxy || self - - stat.path = p - stat.basename = path.basename(p) - stat.dirname = path.dirname(p) - var childProps = self.getChildProps.call(who, stat) - childProps.path = p - childProps.basename = path.basename(p) - childProps.dirname = path.dirname(p) - - var entry = Reader(childProps, stat) - - // console.error("DR Entry", p, stat.size) - - self._currentEntry = entry - - // "entry" events are for direct entries in a specific dir. - // "child" events are for any and all children at all levels. - // This nomenclature is not completely final. - - entry.on('pause', function (who) { - if (!self._paused && !entry._disowned) { - self.pause(who) - } - }) - - entry.on('resume', function (who) { - if (self._paused && !entry._disowned) { - self.resume(who) - } - }) - - entry.on('stat', function (props) { - self.emit('_entryStat', entry, props) - if (entry._aborted) return - if (entry._paused) { - entry.once('resume', function () { - self.emit('entryStat', entry, props) - }) - } else self.emit('entryStat', entry, props) - }) - - entry.on('ready', function EMITCHILD () { - // console.error("DR emit child", entry._path) - if (self._paused) { - // console.error(" DR emit child - try again later") - // pause the child, and emit the "entry" event once we drain. - // console.error("DR pausing child entry") - entry.pause(self) - return self.once('resume', EMITCHILD) - } - - // skip over sockets. they can't be piped around properly, - // so there's really no sense even acknowledging them. - // if someone really wants to see them, they can listen to - // the "socket" events. - if (entry.type === 'Socket') { - self.emit('socket', entry) - } else { - self.emitEntry(entry) - } - }) - - var ended = false - entry.on('close', onend) - entry.on('disown', onend) - function onend () { - if (ended) return - ended = true - self.emit('childEnd', entry) - self.emit('entryEnd', entry) - self._currentEntry = null - if (!self._paused) { - self._read() - } - } - - // XXX Remove this. Works in node as of 0.6.2 or so. - // Long filenames should not break stuff. - entry.on('error', function (er) { - if (entry._swallowErrors) { - self.warn(er) - entry.emit('end') - entry.emit('close') - } else { - self.emit('error', er) - } - }) - - // proxy up some events. - ;[ - 'child', - 'childEnd', - 'warn' - ].forEach(function (ev) { - entry.on(ev, self.emit.bind(self, ev)) - }) - }) -} - -DirReader.prototype.disown = function (entry) { - entry.emit('beforeDisown') - entry._disowned = true - entry.parent = entry.root = null - if (entry === this._currentEntry) { - this._currentEntry = null - } - entry.emit('disown') -} - -DirReader.prototype.getChildProps = function () { - return { - depth: this.depth + 1, - root: this.root || this, - parent: this, - follow: this.follow, - filter: this.filter, - sort: this.props.sort, - hardlinks: this.props.hardlinks - } -} - -DirReader.prototype.pause = function (who) { - var self = this - if (self._paused) return - who = who || self - self._paused = true - if (self._currentEntry && self._currentEntry.pause) { - self._currentEntry.pause(who) - } - self.emit('pause', who) -} - -DirReader.prototype.resume = function (who) { - var self = this - if (!self._paused) return - who = who || self - - self._paused = false - // console.error('DR Emit Resume', self._path) - self.emit('resume', who) - if (self._paused) { - // console.error('DR Re-paused', self._path) - return - } - - if (self._currentEntry) { - if (self._currentEntry.resume) self._currentEntry.resume(who) - } else self._read() -} - -DirReader.prototype.emitEntry = function (entry) { - this.emit('entry', entry) - this.emit('child', entry) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/dir-writer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/dir-writer.js deleted file mode 100644 index ec50dca9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/dir-writer.js +++ /dev/null @@ -1,174 +0,0 @@ -// It is expected that, when .add() returns false, the consumer -// of the DirWriter will pause until a "drain" event occurs. Note -// that this is *almost always going to be the case*, unless the -// thing being written is some sort of unsupported type, and thus -// skipped over. - -module.exports = DirWriter - -var Writer = require('./writer.js') -var inherits = require('inherits') -var mkdir = require('mkdirp') -var path = require('path') -var collect = require('./collect.js') - -inherits(DirWriter, Writer) - -function DirWriter (props) { - var self = this - if (!(self instanceof DirWriter)) { - self.error('DirWriter must be called as constructor.', null, true) - } - - // should already be established as a Directory type - if (props.type !== 'Directory' || !props.Directory) { - self.error('Non-directory type ' + props.type + ' ' + - JSON.stringify(props), null, true) - } - - Writer.call(this, props) -} - -DirWriter.prototype._create = function () { - var self = this - mkdir(self._path, Writer.dirmode, function (er) { - if (er) return self.error(er) - // ready to start getting entries! - self.ready = true - self.emit('ready') - self._process() - }) -} - -// a DirWriter has an add(entry) method, but its .write() doesn't -// do anything. Why a no-op rather than a throw? Because this -// leaves open the door for writing directory metadata for -// gnu/solaris style dumpdirs. -DirWriter.prototype.write = function () { - return true -} - -DirWriter.prototype.end = function () { - this._ended = true - this._process() -} - -DirWriter.prototype.add = function (entry) { - var self = this - - // console.error('\tadd', entry._path, '->', self._path) - collect(entry) - if (!self.ready || self._currentEntry) { - self._buffer.push(entry) - return false - } - - // create a new writer, and pipe the incoming entry into it. - if (self._ended) { - return self.error('add after end') - } - - self._buffer.push(entry) - self._process() - - return this._buffer.length === 0 -} - -DirWriter.prototype._process = function () { - var self = this - - // console.error('DW Process p=%j', self._processing, self.basename) - - if (self._processing) return - - var entry = self._buffer.shift() - if (!entry) { - // console.error("DW Drain") - self.emit('drain') - if (self._ended) self._finish() - return - } - - self._processing = true - // console.error("DW Entry", entry._path) - - self.emit('entry', entry) - - // ok, add this entry - // - // don't allow recursive copying - var p = entry - var pp - do { - pp = p._path || p.path - if (pp === self.root._path || pp === self._path || - (pp && pp.indexOf(self._path) === 0)) { - // console.error('DW Exit (recursive)', entry.basename, self._path) - self._processing = false - if (entry._collected) entry.pipe() - return self._process() - } - p = p.parent - } while (p) - - // console.error("DW not recursive") - - // chop off the entry's root dir, replace with ours - var props = { - parent: self, - root: self.root || self, - type: entry.type, - depth: self.depth + 1 - } - - pp = entry._path || entry.path || entry.props.path - if (entry.parent) { - pp = pp.substr(entry.parent._path.length + 1) - } - // get rid of any ../../ shenanigans - props.path = path.join(self.path, path.join('/', pp)) - - // if i have a filter, the child should inherit it. - props.filter = self.filter - - // all the rest of the stuff, copy over from the source. - Object.keys(entry.props).forEach(function (k) { - if (!props.hasOwnProperty(k)) { - props[k] = entry.props[k] - } - }) - - // not sure at this point what kind of writer this is. - var child = self._currentChild = new Writer(props) - child.on('ready', function () { - // console.error("DW Child Ready", child.type, child._path) - // console.error(" resuming", entry._path) - entry.pipe(child) - entry.resume() - }) - - // XXX Make this work in node. - // Long filenames should not break stuff. - child.on('error', function (er) { - if (child._swallowErrors) { - self.warn(er) - child.emit('end') - child.emit('close') - } else { - self.emit('error', er) - } - }) - - // we fire _end internally *after* end, so that we don't move on - // until any "end" listeners have had their chance to do stuff. - child.on('close', onend) - var ended = false - function onend () { - if (ended) return - ended = true - // console.error("* DW Child end", child.basename) - self._currentChild = null - self._processing = false - self._process() - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/file-reader.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/file-reader.js deleted file mode 100644 index baa01f4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/file-reader.js +++ /dev/null @@ -1,150 +0,0 @@ -// Basically just a wrapper around an fs.ReadStream - -module.exports = FileReader - -var fs = require('graceful-fs') -var inherits = require('inherits') -var Reader = require('./reader.js') -var EOF = {EOF: true} -var CLOSE = {CLOSE: true} - -inherits(FileReader, Reader) - -function FileReader (props) { - // console.error(" FR create", props.path, props.size, new Error().stack) - var self = this - if (!(self instanceof FileReader)) { - throw new Error('FileReader must be called as constructor.') - } - - // should already be established as a File type - // XXX Todo: preserve hardlinks by tracking dev+inode+nlink, - // with a HardLinkReader class. - if (!((props.type === 'Link' && props.Link) || - (props.type === 'File' && props.File))) { - throw new Error('Non-file type ' + props.type) - } - - self._buffer = [] - self._bytesEmitted = 0 - Reader.call(self, props) -} - -FileReader.prototype._getStream = function () { - var self = this - var stream = self._stream = fs.createReadStream(self._path, self.props) - - if (self.props.blksize) { - stream.bufferSize = self.props.blksize - } - - stream.on('open', self.emit.bind(self, 'open')) - - stream.on('data', function (c) { - // console.error('\t\t%d %s', c.length, self.basename) - self._bytesEmitted += c.length - // no point saving empty chunks - if (!c.length) { - return - } else if (self._paused || self._buffer.length) { - self._buffer.push(c) - self._read() - } else self.emit('data', c) - }) - - stream.on('end', function () { - if (self._paused || self._buffer.length) { - // console.error('FR Buffering End', self._path) - self._buffer.push(EOF) - self._read() - } else { - self.emit('end') - } - - if (self._bytesEmitted !== self.props.size) { - self.error("Didn't get expected byte count\n" + - 'expect: ' + self.props.size + '\n' + - 'actual: ' + self._bytesEmitted) - } - }) - - stream.on('close', function () { - if (self._paused || self._buffer.length) { - // console.error('FR Buffering Close', self._path) - self._buffer.push(CLOSE) - self._read() - } else { - // console.error('FR close 1', self._path) - self.emit('close') - } - }) - - stream.on('error', function (e) { - self.emit('error', e) - }) - - self._read() -} - -FileReader.prototype._read = function () { - var self = this - // console.error('FR _read', self._path) - if (self._paused) { - // console.error('FR _read paused', self._path) - return - } - - if (!self._stream) { - // console.error('FR _getStream calling', self._path) - return self._getStream() - } - - // clear out the buffer, if there is one. - if (self._buffer.length) { - // console.error('FR _read has buffer', self._buffer.length, self._path) - var buf = self._buffer - for (var i = 0, l = buf.length; i < l; i++) { - var c = buf[i] - if (c === EOF) { - // console.error('FR Read emitting buffered end', self._path) - self.emit('end') - } else if (c === CLOSE) { - // console.error('FR Read emitting buffered close', self._path) - self.emit('close') - } else { - // console.error('FR Read emitting buffered data', self._path) - self.emit('data', c) - } - - if (self._paused) { - // console.error('FR Read Re-pausing at '+i, self._path) - self._buffer = buf.slice(i) - return - } - } - self._buffer.length = 0 - } -// console.error("FR _read done") -// that's about all there is to it. -} - -FileReader.prototype.pause = function (who) { - var self = this - // console.error('FR Pause', self._path) - if (self._paused) return - who = who || self - self._paused = true - if (self._stream) self._stream.pause() - self.emit('pause', who) -} - -FileReader.prototype.resume = function (who) { - var self = this - // console.error('FR Resume', self._path) - if (!self._paused) return - who = who || self - self.emit('resume', who) - self._paused = false - if (self._stream) self._stream.resume() - self._read() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/file-writer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/file-writer.js deleted file mode 100644 index 4c803d8d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/file-writer.js +++ /dev/null @@ -1,107 +0,0 @@ -module.exports = FileWriter - -var fs = require('graceful-fs') -var Writer = require('./writer.js') -var inherits = require('inherits') -var EOF = {} - -inherits(FileWriter, Writer) - -function FileWriter (props) { - var self = this - if (!(self instanceof FileWriter)) { - throw new Error('FileWriter must be called as constructor.') - } - - // should already be established as a File type - if (props.type !== 'File' || !props.File) { - throw new Error('Non-file type ' + props.type) - } - - self._buffer = [] - self._bytesWritten = 0 - - Writer.call(this, props) -} - -FileWriter.prototype._create = function () { - var self = this - if (self._stream) return - - var so = {} - if (self.props.flags) so.flags = self.props.flags - so.mode = Writer.filemode - if (self._old && self._old.blksize) so.bufferSize = self._old.blksize - - self._stream = fs.createWriteStream(self._path, so) - - self._stream.on('open', function () { - // console.error("FW open", self._buffer, self._path) - self.ready = true - self._buffer.forEach(function (c) { - if (c === EOF) self._stream.end() - else self._stream.write(c) - }) - self.emit('ready') - // give this a kick just in case it needs it. - self.emit('drain') - }) - - self._stream.on('error', function (er) { self.emit('error', er) }) - - self._stream.on('drain', function () { self.emit('drain') }) - - self._stream.on('close', function () { - // console.error('\n\nFW Stream Close', self._path, self.size) - self._finish() - }) -} - -FileWriter.prototype.write = function (c) { - var self = this - - self._bytesWritten += c.length - - if (!self.ready) { - if (!Buffer.isBuffer(c) && typeof c !== 'string') { - throw new Error('invalid write data') - } - self._buffer.push(c) - return false - } - - var ret = self._stream.write(c) - // console.error('\t-- fw wrote, _stream says', ret, self._stream._queue.length) - - // allow 2 buffered writes, because otherwise there's just too - // much stop and go bs. - if (ret === false && self._stream._queue) { - return self._stream._queue.length <= 2 - } else { - return ret - } -} - -FileWriter.prototype.end = function (c) { - var self = this - - if (c) self.write(c) - - if (!self.ready) { - self._buffer.push(EOF) - return false - } - - return self._stream.end() -} - -FileWriter.prototype._finish = function () { - var self = this - if (typeof self.size === 'number' && self._bytesWritten !== self.size) { - self.error( - 'Did not get expected byte count.\n' + - 'expect: ' + self.size + '\n' + - 'actual: ' + self._bytesWritten) - } - Writer.prototype._finish.call(self) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/get-type.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/get-type.js deleted file mode 100644 index 19f6a657..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/get-type.js +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = getType - -function getType (st) { - var types = [ - 'Directory', - 'File', - 'SymbolicLink', - 'Link', // special for hardlinks from tarballs - 'BlockDevice', - 'CharacterDevice', - 'FIFO', - 'Socket' - ] - var type - - if (st.type && types.indexOf(st.type) !== -1) { - st[st.type] = true - return st.type - } - - for (var i = 0, l = types.length; i < l; i++) { - type = types[i] - var is = st[type] || st['is' + type] - if (typeof is === 'function') is = is.call(st) - if (is) { - st[type] = true - st.type = type - return type - } - } - - return null -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/link-reader.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/link-reader.js deleted file mode 100644 index fb4cc67a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/link-reader.js +++ /dev/null @@ -1,53 +0,0 @@ -// Basically just a wrapper around an fs.readlink -// -// XXX: Enhance this to support the Link type, by keeping -// a lookup table of {:}, so that hardlinks -// can be preserved in tarballs. - -module.exports = LinkReader - -var fs = require('graceful-fs') -var inherits = require('inherits') -var Reader = require('./reader.js') - -inherits(LinkReader, Reader) - -function LinkReader (props) { - var self = this - if (!(self instanceof LinkReader)) { - throw new Error('LinkReader must be called as constructor.') - } - - if (!((props.type === 'Link' && props.Link) || - (props.type === 'SymbolicLink' && props.SymbolicLink))) { - throw new Error('Non-link type ' + props.type) - } - - Reader.call(self, props) -} - -// When piping a LinkReader into a LinkWriter, we have to -// already have the linkpath property set, so that has to -// happen *before* the "ready" event, which means we need to -// override the _stat method. -LinkReader.prototype._stat = function (currentStat) { - var self = this - fs.readlink(self._path, function (er, linkpath) { - if (er) return self.error(er) - self.linkpath = self.props.linkpath = linkpath - self.emit('linkpath', linkpath) - Reader.prototype._stat.call(self, currentStat) - }) -} - -LinkReader.prototype._read = function () { - var self = this - if (self._paused) return - // basically just a no-op, since we got all the info we need - // from the _stat method - if (!self._ended) { - self.emit('end') - self.emit('close') - self._ended = true - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/link-writer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/link-writer.js deleted file mode 100644 index af542840..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/link-writer.js +++ /dev/null @@ -1,95 +0,0 @@ -module.exports = LinkWriter - -var fs = require('graceful-fs') -var Writer = require('./writer.js') -var inherits = require('inherits') -var path = require('path') -var rimraf = require('rimraf') - -inherits(LinkWriter, Writer) - -function LinkWriter (props) { - var self = this - if (!(self instanceof LinkWriter)) { - throw new Error('LinkWriter must be called as constructor.') - } - - // should already be established as a Link type - if (!((props.type === 'Link' && props.Link) || - (props.type === 'SymbolicLink' && props.SymbolicLink))) { - throw new Error('Non-link type ' + props.type) - } - - if (props.linkpath === '') props.linkpath = '.' - if (!props.linkpath) { - self.error('Need linkpath property to create ' + props.type) - } - - Writer.call(this, props) -} - -LinkWriter.prototype._create = function () { - // console.error(" LW _create") - var self = this - var hard = self.type === 'Link' || process.platform === 'win32' - var link = hard ? 'link' : 'symlink' - var lp = hard ? path.resolve(self.dirname, self.linkpath) : self.linkpath - - // can only change the link path by clobbering - // For hard links, let's just assume that's always the case, since - // there's no good way to read them if we don't already know. - if (hard) return clobber(self, lp, link) - - fs.readlink(self._path, function (er, p) { - // only skip creation if it's exactly the same link - if (p && p === lp) return finish(self) - clobber(self, lp, link) - }) -} - -function clobber (self, lp, link) { - rimraf(self._path, function (er) { - if (er) return self.error(er) - create(self, lp, link) - }) -} - -function create (self, lp, link) { - fs[link](lp, self._path, function (er) { - // if this is a hard link, and we're in the process of writing out a - // directory, it's very possible that the thing we're linking to - // doesn't exist yet (especially if it was intended as a symlink), - // so swallow ENOENT errors here and just soldier in. - // Additionally, an EPERM or EACCES can happen on win32 if it's trying - // to make a link to a directory. Again, just skip it. - // A better solution would be to have fs.symlink be supported on - // windows in some nice fashion. - if (er) { - if ((er.code === 'ENOENT' || - er.code === 'EACCES' || - er.code === 'EPERM') && process.platform === 'win32') { - self.ready = true - self.emit('ready') - self.emit('end') - self.emit('close') - self.end = self._finish = function () {} - } else return self.error(er) - } - finish(self) - }) -} - -function finish (self) { - self.ready = true - self.emit('ready') - if (self._ended && !self._finished) self._finish() -} - -LinkWriter.prototype.end = function () { - // console.error("LW finish in end") - this._ended = true - if (this.ready) { - this._finished = true - this._finish() - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/proxy-reader.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/proxy-reader.js deleted file mode 100644 index 4f431c9d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/proxy-reader.js +++ /dev/null @@ -1,95 +0,0 @@ -// A reader for when we don't yet know what kind of thing -// the thing is. - -module.exports = ProxyReader - -var Reader = require('./reader.js') -var getType = require('./get-type.js') -var inherits = require('inherits') -var fs = require('graceful-fs') - -inherits(ProxyReader, Reader) - -function ProxyReader (props) { - var self = this - if (!(self instanceof ProxyReader)) { - throw new Error('ProxyReader must be called as constructor.') - } - - self.props = props - self._buffer = [] - self.ready = false - - Reader.call(self, props) -} - -ProxyReader.prototype._stat = function () { - var self = this - var props = self.props - // stat the thing to see what the proxy should be. - var stat = props.follow ? 'stat' : 'lstat' - - fs[stat](props.path, function (er, current) { - var type - if (er || !current) { - type = 'File' - } else { - type = getType(current) - } - - props[type] = true - props.type = self.type = type - - self._old = current - self._addProxy(Reader(props, current)) - }) -} - -ProxyReader.prototype._addProxy = function (proxy) { - var self = this - if (self._proxyTarget) { - return self.error('proxy already set') - } - - self._proxyTarget = proxy - proxy._proxy = self - - ;[ - 'error', - 'data', - 'end', - 'close', - 'linkpath', - 'entry', - 'entryEnd', - 'child', - 'childEnd', - 'warn', - 'stat' - ].forEach(function (ev) { - // console.error('~~ proxy event', ev, self.path) - proxy.on(ev, self.emit.bind(self, ev)) - }) - - self.emit('proxy', proxy) - - proxy.on('ready', function () { - // console.error("~~ proxy is ready!", self.path) - self.ready = true - self.emit('ready') - }) - - var calls = self._buffer - self._buffer.length = 0 - calls.forEach(function (c) { - proxy[c[0]].apply(proxy, c[1]) - }) -} - -ProxyReader.prototype.pause = function () { - return this._proxyTarget ? this._proxyTarget.pause() : false -} - -ProxyReader.prototype.resume = function () { - return this._proxyTarget ? this._proxyTarget.resume() : false -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/proxy-writer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/proxy-writer.js deleted file mode 100644 index a6544621..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/proxy-writer.js +++ /dev/null @@ -1,111 +0,0 @@ -// A writer for when we don't know what kind of thing -// the thing is. That is, it's not explicitly set, -// so we're going to make it whatever the thing already -// is, or "File" -// -// Until then, collect all events. - -module.exports = ProxyWriter - -var Writer = require('./writer.js') -var getType = require('./get-type.js') -var inherits = require('inherits') -var collect = require('./collect.js') -var fs = require('fs') - -inherits(ProxyWriter, Writer) - -function ProxyWriter (props) { - var self = this - if (!(self instanceof ProxyWriter)) { - throw new Error('ProxyWriter must be called as constructor.') - } - - self.props = props - self._needDrain = false - - Writer.call(self, props) -} - -ProxyWriter.prototype._stat = function () { - var self = this - var props = self.props - // stat the thing to see what the proxy should be. - var stat = props.follow ? 'stat' : 'lstat' - - fs[stat](props.path, function (er, current) { - var type - if (er || !current) { - type = 'File' - } else { - type = getType(current) - } - - props[type] = true - props.type = self.type = type - - self._old = current - self._addProxy(Writer(props, current)) - }) -} - -ProxyWriter.prototype._addProxy = function (proxy) { - // console.error("~~ set proxy", this.path) - var self = this - if (self._proxy) { - return self.error('proxy already set') - } - - self._proxy = proxy - ;[ - 'ready', - 'error', - 'close', - 'pipe', - 'drain', - 'warn' - ].forEach(function (ev) { - proxy.on(ev, self.emit.bind(self, ev)) - }) - - self.emit('proxy', proxy) - - var calls = self._buffer - calls.forEach(function (c) { - // console.error("~~ ~~ proxy buffered call", c[0], c[1]) - proxy[c[0]].apply(proxy, c[1]) - }) - self._buffer.length = 0 - if (self._needsDrain) self.emit('drain') -} - -ProxyWriter.prototype.add = function (entry) { - // console.error("~~ proxy add") - collect(entry) - - if (!this._proxy) { - this._buffer.push(['add', [entry]]) - this._needDrain = true - return false - } - return this._proxy.add(entry) -} - -ProxyWriter.prototype.write = function (c) { - // console.error('~~ proxy write') - if (!this._proxy) { - this._buffer.push(['write', [c]]) - this._needDrain = true - return false - } - return this._proxy.write(c) -} - -ProxyWriter.prototype.end = function (c) { - // console.error('~~ proxy end') - if (!this._proxy) { - this._buffer.push(['end', [c]]) - return false - } - return this._proxy.end(c) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/reader.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/reader.js deleted file mode 100644 index 876021f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/reader.js +++ /dev/null @@ -1,255 +0,0 @@ -module.exports = Reader - -var fs = require('graceful-fs') -var Stream = require('stream').Stream -var inherits = require('inherits') -var path = require('path') -var getType = require('./get-type.js') -var hardLinks = Reader.hardLinks = {} -var Abstract = require('./abstract.js') - -// Must do this *before* loading the child classes -inherits(Reader, Abstract) - -var LinkReader = require('./link-reader.js') - -function Reader (props, currentStat) { - var self = this - if (!(self instanceof Reader)) return new Reader(props, currentStat) - - if (typeof props === 'string') { - props = { path: props } - } - - if (!props.path) { - self.error('Must provide a path', null, true) - } - - // polymorphism. - // call fstream.Reader(dir) to get a DirReader object, etc. - // Note that, unlike in the Writer case, ProxyReader is going - // to be the *normal* state of affairs, since we rarely know - // the type of a file prior to reading it. - - var type - var ClassType - - if (props.type && typeof props.type === 'function') { - type = props.type - ClassType = type - } else { - type = getType(props) - ClassType = Reader - } - - if (currentStat && !type) { - type = getType(currentStat) - props[type] = true - props.type = type - } - - switch (type) { - case 'Directory': - ClassType = require('./dir-reader.js') - break - - case 'Link': - // XXX hard links are just files. - // However, it would be good to keep track of files' dev+inode - // and nlink values, and create a HardLinkReader that emits - // a linkpath value of the original copy, so that the tar - // writer can preserve them. - // ClassType = HardLinkReader - // break - - case 'File': - ClassType = require('./file-reader.js') - break - - case 'SymbolicLink': - ClassType = LinkReader - break - - case 'Socket': - ClassType = require('./socket-reader.js') - break - - case null: - ClassType = require('./proxy-reader.js') - break - } - - if (!(self instanceof ClassType)) { - return new ClassType(props) - } - - Abstract.call(self) - - self.readable = true - self.writable = false - - self.type = type - self.props = props - self.depth = props.depth = props.depth || 0 - self.parent = props.parent || null - self.root = props.root || (props.parent && props.parent.root) || self - - self._path = self.path = path.resolve(props.path) - if (process.platform === 'win32') { - self.path = self._path = self.path.replace(/\?/g, '_') - if (self._path.length >= 260) { - // how DOES one create files on the moon? - // if the path has spaces in it, then UNC will fail. - self._swallowErrors = true - // if (self._path.indexOf(" ") === -1) { - self._path = '\\\\?\\' + self.path.replace(/\//g, '\\') - // } - } - } - self.basename = props.basename = path.basename(self.path) - self.dirname = props.dirname = path.dirname(self.path) - - // these have served their purpose, and are now just noisy clutter - props.parent = props.root = null - - // console.error("\n\n\n%s setting size to", props.path, props.size) - self.size = props.size - self.filter = typeof props.filter === 'function' ? props.filter : null - if (props.sort === 'alpha') props.sort = alphasort - - // start the ball rolling. - // this will stat the thing, and then call self._read() - // to start reading whatever it is. - // console.error("calling stat", props.path, currentStat) - self._stat(currentStat) -} - -function alphasort (a, b) { - return a === b ? 0 - : a.toLowerCase() > b.toLowerCase() ? 1 - : a.toLowerCase() < b.toLowerCase() ? -1 - : a > b ? 1 - : -1 -} - -Reader.prototype._stat = function (currentStat) { - var self = this - var props = self.props - var stat = props.follow ? 'stat' : 'lstat' - // console.error("Reader._stat", self._path, currentStat) - if (currentStat) process.nextTick(statCb.bind(null, null, currentStat)) - else fs[stat](self._path, statCb) - - function statCb (er, props_) { - // console.error("Reader._stat, statCb", self._path, props_, props_.nlink) - if (er) return self.error(er) - - Object.keys(props_).forEach(function (k) { - props[k] = props_[k] - }) - - // if it's not the expected size, then abort here. - if (undefined !== self.size && props.size !== self.size) { - return self.error('incorrect size') - } - self.size = props.size - - var type = getType(props) - var handleHardlinks = props.hardlinks !== false - - // special little thing for handling hardlinks. - if (handleHardlinks && type !== 'Directory' && props.nlink && props.nlink > 1) { - var k = props.dev + ':' + props.ino - // console.error("Reader has nlink", self._path, k) - if (hardLinks[k] === self._path || !hardLinks[k]) { - hardLinks[k] = self._path - } else { - // switch into hardlink mode. - type = self.type = self.props.type = 'Link' - self.Link = self.props.Link = true - self.linkpath = self.props.linkpath = hardLinks[k] - // console.error("Hardlink detected, switching mode", self._path, self.linkpath) - // Setting __proto__ would arguably be the "correct" - // approach here, but that just seems too wrong. - self._stat = self._read = LinkReader.prototype._read - } - } - - if (self.type && self.type !== type) { - self.error('Unexpected type: ' + type) - } - - // if the filter doesn't pass, then just skip over this one. - // still have to emit end so that dir-walking can move on. - if (self.filter) { - var who = self._proxy || self - // special handling for ProxyReaders - if (!self.filter.call(who, who, props)) { - if (!self._disowned) { - self.abort() - self.emit('end') - self.emit('close') - } - return - } - } - - // last chance to abort or disown before the flow starts! - var events = ['_stat', 'stat', 'ready'] - var e = 0 - ;(function go () { - if (self._aborted) { - self.emit('end') - self.emit('close') - return - } - - if (self._paused && self.type !== 'Directory') { - self.once('resume', go) - return - } - - var ev = events[e++] - if (!ev) { - return self._read() - } - self.emit(ev, props) - go() - })() - } -} - -Reader.prototype.pipe = function (dest) { - var self = this - if (typeof dest.add === 'function') { - // piping to a multi-compatible, and we've got directory entries. - self.on('entry', function (entry) { - var ret = dest.add(entry) - if (ret === false) { - self.pause() - } - }) - } - - // console.error("R Pipe apply Stream Pipe") - return Stream.prototype.pipe.apply(this, arguments) -} - -Reader.prototype.pause = function (who) { - this._paused = true - who = who || this - this.emit('pause', who) - if (this._stream) this._stream.pause(who) -} - -Reader.prototype.resume = function (who) { - this._paused = false - who = who || this - this.emit('resume', who) - if (this._stream) this._stream.resume(who) - this._read() -} - -Reader.prototype._read = function () { - this.error('Cannot read unknown type: ' + this.type) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/socket-reader.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/socket-reader.js deleted file mode 100644 index e0456ba8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/socket-reader.js +++ /dev/null @@ -1,36 +0,0 @@ -// Just get the stats, and then don't do anything. -// You can't really "read" from a socket. You "connect" to it. -// Mostly, this is here so that reading a dir with a socket in it -// doesn't blow up. - -module.exports = SocketReader - -var inherits = require('inherits') -var Reader = require('./reader.js') - -inherits(SocketReader, Reader) - -function SocketReader (props) { - var self = this - if (!(self instanceof SocketReader)) { - throw new Error('SocketReader must be called as constructor.') - } - - if (!(props.type === 'Socket' && props.Socket)) { - throw new Error('Non-socket type ' + props.type) - } - - Reader.call(self, props) -} - -SocketReader.prototype._read = function () { - var self = this - if (self._paused) return - // basically just a no-op, since we got all the info we have - // from the _stat method - if (!self._ended) { - self.emit('end') - self.emit('close') - self._ended = true - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/writer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/writer.js deleted file mode 100644 index ca3396b5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/lib/writer.js +++ /dev/null @@ -1,390 +0,0 @@ -module.exports = Writer - -var fs = require('graceful-fs') -var inherits = require('inherits') -var rimraf = require('rimraf') -var mkdir = require('mkdirp') -var path = require('path') -var umask = process.platform === 'win32' ? 0 : process.umask() -var getType = require('./get-type.js') -var Abstract = require('./abstract.js') - -// Must do this *before* loading the child classes -inherits(Writer, Abstract) - -Writer.dirmode = parseInt('0777', 8) & (~umask) -Writer.filemode = parseInt('0666', 8) & (~umask) - -var DirWriter = require('./dir-writer.js') -var LinkWriter = require('./link-writer.js') -var FileWriter = require('./file-writer.js') -var ProxyWriter = require('./proxy-writer.js') - -// props is the desired state. current is optionally the current stat, -// provided here so that subclasses can avoid statting the target -// more than necessary. -function Writer (props, current) { - var self = this - - if (typeof props === 'string') { - props = { path: props } - } - - if (!props.path) self.error('Must provide a path', null, true) - - // polymorphism. - // call fstream.Writer(dir) to get a DirWriter object, etc. - var type = getType(props) - var ClassType = Writer - - switch (type) { - case 'Directory': - ClassType = DirWriter - break - case 'File': - ClassType = FileWriter - break - case 'Link': - case 'SymbolicLink': - ClassType = LinkWriter - break - case null: - default: - // Don't know yet what type to create, so we wrap in a proxy. - ClassType = ProxyWriter - break - } - - if (!(self instanceof ClassType)) return new ClassType(props) - - // now get down to business. - - Abstract.call(self) - - // props is what we want to set. - // set some convenience properties as well. - self.type = props.type - self.props = props - self.depth = props.depth || 0 - self.clobber = props.clobber === false ? props.clobber : true - self.parent = props.parent || null - self.root = props.root || (props.parent && props.parent.root) || self - - self._path = self.path = path.resolve(props.path) - if (process.platform === 'win32') { - self.path = self._path = self.path.replace(/\?/g, '_') - if (self._path.length >= 260) { - self._swallowErrors = true - self._path = '\\\\?\\' + self.path.replace(/\//g, '\\') - } - } - self.basename = path.basename(props.path) - self.dirname = path.dirname(props.path) - self.linkpath = props.linkpath || null - - props.parent = props.root = null - - // console.error("\n\n\n%s setting size to", props.path, props.size) - self.size = props.size - - if (typeof props.mode === 'string') { - props.mode = parseInt(props.mode, 8) - } - - self.readable = false - self.writable = true - - // buffer until ready, or while handling another entry - self._buffer = [] - self.ready = false - - self.filter = typeof props.filter === 'function' ? props.filter : null - - // start the ball rolling. - // this checks what's there already, and then calls - // self._create() to call the impl-specific creation stuff. - self._stat(current) -} - -// Calling this means that it's something we can't create. -// Just assert that it's already there, otherwise raise a warning. -Writer.prototype._create = function () { - var self = this - fs[self.props.follow ? 'stat' : 'lstat'](self._path, function (er) { - if (er) { - return self.warn('Cannot create ' + self._path + '\n' + - 'Unsupported type: ' + self.type, 'ENOTSUP') - } - self._finish() - }) -} - -Writer.prototype._stat = function (current) { - var self = this - var props = self.props - var stat = props.follow ? 'stat' : 'lstat' - var who = self._proxy || self - - if (current) statCb(null, current) - else fs[stat](self._path, statCb) - - function statCb (er, current) { - if (self.filter && !self.filter.call(who, who, current)) { - self._aborted = true - self.emit('end') - self.emit('close') - return - } - - // if it's not there, great. We'll just create it. - // if it is there, then we'll need to change whatever differs - if (er || !current) { - return create(self) - } - - self._old = current - var currentType = getType(current) - - // if it's a type change, then we need to clobber or error. - // if it's not a type change, then let the impl take care of it. - if (currentType !== self.type) { - return rimraf(self._path, function (er) { - if (er) return self.error(er) - self._old = null - create(self) - }) - } - - // otherwise, just handle in the app-specific way - // this creates a fs.WriteStream, or mkdir's, or whatever - create(self) - } -} - -function create (self) { - // console.error("W create", self._path, Writer.dirmode) - - // XXX Need to clobber non-dirs that are in the way, - // unless { clobber: false } in the props. - mkdir(path.dirname(self._path), Writer.dirmode, function (er, made) { - // console.error("W created", path.dirname(self._path), er) - if (er) return self.error(er) - - // later on, we have to set the mode and owner for these - self._madeDir = made - return self._create() - }) -} - -function endChmod (self, want, current, path, cb) { - var wantMode = want.mode - var chmod = want.follow || self.type !== 'SymbolicLink' - ? 'chmod' : 'lchmod' - - if (!fs[chmod]) return cb() - if (typeof wantMode !== 'number') return cb() - - var curMode = current.mode & parseInt('0777', 8) - wantMode = wantMode & parseInt('0777', 8) - if (wantMode === curMode) return cb() - - fs[chmod](path, wantMode, cb) -} - -function endChown (self, want, current, path, cb) { - // Don't even try it unless root. Too easy to EPERM. - if (process.platform === 'win32') return cb() - if (!process.getuid || process.getuid() !== 0) return cb() - if (typeof want.uid !== 'number' && - typeof want.gid !== 'number') return cb() - - if (current.uid === want.uid && - current.gid === want.gid) return cb() - - var chown = (self.props.follow || self.type !== 'SymbolicLink') - ? 'chown' : 'lchown' - if (!fs[chown]) return cb() - - if (typeof want.uid !== 'number') want.uid = current.uid - if (typeof want.gid !== 'number') want.gid = current.gid - - fs[chown](path, want.uid, want.gid, cb) -} - -function endUtimes (self, want, current, path, cb) { - if (!fs.utimes || process.platform === 'win32') return cb() - - var utimes = (want.follow || self.type !== 'SymbolicLink') - ? 'utimes' : 'lutimes' - - if (utimes === 'lutimes' && !fs[utimes]) { - utimes = 'utimes' - } - - if (!fs[utimes]) return cb() - - var curA = current.atime - var curM = current.mtime - var meA = want.atime - var meM = want.mtime - - if (meA === undefined) meA = curA - if (meM === undefined) meM = curM - - if (!isDate(meA)) meA = new Date(meA) - if (!isDate(meM)) meA = new Date(meM) - - if (meA.getTime() === curA.getTime() && - meM.getTime() === curM.getTime()) return cb() - - fs[utimes](path, meA, meM, cb) -} - -// XXX This function is beastly. Break it up! -Writer.prototype._finish = function () { - var self = this - - if (self._finishing) return - self._finishing = true - - // console.error(" W Finish", self._path, self.size) - - // set up all the things. - // At this point, we're already done writing whatever we've gotta write, - // adding files to the dir, etc. - var todo = 0 - var errState = null - var done = false - - if (self._old) { - // the times will almost *certainly* have changed. - // adds the utimes syscall, but remove another stat. - self._old.atime = new Date(0) - self._old.mtime = new Date(0) - // console.error(" W Finish Stale Stat", self._path, self.size) - setProps(self._old) - } else { - var stat = self.props.follow ? 'stat' : 'lstat' - // console.error(" W Finish Stating", self._path, self.size) - fs[stat](self._path, function (er, current) { - // console.error(" W Finish Stated", self._path, self.size, current) - if (er) { - // if we're in the process of writing out a - // directory, it's very possible that the thing we're linking to - // doesn't exist yet (especially if it was intended as a symlink), - // so swallow ENOENT errors here and just soldier on. - if (er.code === 'ENOENT' && - (self.type === 'Link' || self.type === 'SymbolicLink') && - process.platform === 'win32') { - self.ready = true - self.emit('ready') - self.emit('end') - self.emit('close') - self.end = self._finish = function () {} - return - } else return self.error(er) - } - setProps(self._old = current) - }) - } - - return - - function setProps (current) { - todo += 3 - endChmod(self, self.props, current, self._path, next('chmod')) - endChown(self, self.props, current, self._path, next('chown')) - endUtimes(self, self.props, current, self._path, next('utimes')) - } - - function next (what) { - return function (er) { - // console.error(" W Finish", what, todo) - if (errState) return - if (er) { - er.fstream_finish_call = what - return self.error(errState = er) - } - if (--todo > 0) return - if (done) return - done = true - - // we may still need to set the mode/etc. on some parent dirs - // that were created previously. delay end/close until then. - if (!self._madeDir) return end() - else endMadeDir(self, self._path, end) - - function end (er) { - if (er) { - er.fstream_finish_call = 'setupMadeDir' - return self.error(er) - } - // all the props have been set, so we're completely done. - self.emit('end') - self.emit('close') - } - } - } -} - -function endMadeDir (self, p, cb) { - var made = self._madeDir - // everything *between* made and path.dirname(self._path) - // needs to be set up. Note that this may just be one dir. - var d = path.dirname(p) - - endMadeDir_(self, d, function (er) { - if (er) return cb(er) - if (d === made) { - return cb() - } - endMadeDir(self, d, cb) - }) -} - -function endMadeDir_ (self, p, cb) { - var dirProps = {} - Object.keys(self.props).forEach(function (k) { - dirProps[k] = self.props[k] - - // only make non-readable dirs if explicitly requested. - if (k === 'mode' && self.type !== 'Directory') { - dirProps[k] = dirProps[k] | parseInt('0111', 8) - } - }) - - var todo = 3 - var errState = null - fs.stat(p, function (er, current) { - if (er) return cb(errState = er) - endChmod(self, dirProps, current, p, next) - endChown(self, dirProps, current, p, next) - endUtimes(self, dirProps, current, p, next) - }) - - function next (er) { - if (errState) return - if (er) return cb(errState = er) - if (--todo === 0) return cb() - } -} - -Writer.prototype.pipe = function () { - this.error("Can't pipe from writable stream") -} - -Writer.prototype.add = function () { - this.error("Can't add to non-Directory type") -} - -Writer.prototype.write = function () { - return true -} - -function objectToString (d) { - return Object.prototype.toString.call(d) -} - -function isDate (d) { - return typeof d === 'object' && objectToString(d) === '[object Date]' -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/package.json deleted file mode 100644 index dd1f45fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/fstream/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "fstream", - "description": "Advanced file system stream things", - "version": "1.0.8", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/fstream.git" - }, - "main": "fstream.js", - "engines": { - "node": ">=0.6" - }, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "devDependencies": { - "standard": "^4.0.0", - "tap": "^1.2.0" - }, - "scripts": { - "test": "standard && tap examples/*.js" - }, - "license": "ISC", - "gitHead": "d9f81146c50e687f1df04c1a0e7e4c173eb3dae2", - "bugs": { - "url": "https://github.com/isaacs/fstream/issues" - }, - "homepage": "https://github.com/isaacs/fstream#readme", - "_id": "fstream@1.0.8", - "_shasum": "7e8d7a73abb3647ef36e4b8a15ca801dba03d038", - "_from": "fstream@>=1.0.8 <1.1.0", - "_npmVersion": "2.14.3", - "_nodeVersion": "2.2.2", - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" - }, - "dist": { - "shasum": "7e8d7a73abb3647ef36e4b8a15ca801dba03d038", - "tarball": "http://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz" - }, - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/README.md deleted file mode 100644 index 9dd9384f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/README.md +++ /dev/null @@ -1,365 +0,0 @@ -# Glob - -Match files using the patterns the shell uses, like stars and stuff. - -[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master) - -This is a glob implementation in JavaScript. It uses the `minimatch` -library to do its matching. - -![](oh-my-glob.gif) - -## Usage - -Install with npm - -``` -npm i glob -``` - -```javascript -var glob = require("glob") - -// options is optional -glob("**/*.js", options, function (er, files) { - // files is an array of filenames. - // If the `nonull` option is set, and nothing - // was found, then files is ["**/*.js"] - // er is an error object or null. -}) -``` - -## Glob Primer - -"Globs" are the patterns you type when you do stuff like `ls *.js` on -the command line, or put `build/*` in a `.gitignore` file. - -Before parsing the path part patterns, braced sections are expanded -into a set. Braced sections start with `{` and end with `}`, with any -number of comma-delimited sections within. Braced sections may contain -slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`. - -The following characters have special magic meaning when used in a -path portion: - -* `*` Matches 0 or more characters in a single path portion -* `?` Matches 1 character -* `[...]` Matches a range of characters, similar to a RegExp range. - If the first character of the range is `!` or `^` then it matches - any character not in the range. -* `!(pattern|pattern|pattern)` Matches anything that does not match - any of the patterns provided. -* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the - patterns provided. -* `+(pattern|pattern|pattern)` Matches one or more occurrences of the - patterns provided. -* `*(a|b|c)` Matches zero or more occurrences of the patterns provided -* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns - provided -* `**` If a "globstar" is alone in a path portion, then it matches - zero or more directories and subdirectories searching for matches. - It does not crawl symlinked directories. - -### Dots - -If a file or directory path portion has a `.` as the first character, -then it will not match any glob pattern unless that pattern's -corresponding path part also has a `.` as its first character. - -For example, the pattern `a/.*/c` would match the file at `a/.b/c`. -However the pattern `a/*/c` would not, because `*` does not start with -a dot character. - -You can make glob treat dots as normal characters by setting -`dot:true` in the options. - -### Basename Matching - -If you set `matchBase:true` in the options, and the pattern has no -slashes in it, then it will seek for any file anywhere in the tree -with a matching basename. For example, `*.js` would match -`test/simple/basic.js`. - -### Empty Sets - -If no matching files are found, then an empty array is returned. This -differs from the shell, where the pattern itself is returned. For -example: - - $ echo a*s*d*f - a*s*d*f - -To get the bash-style behavior, set the `nonull:true` in the options. - -### See Also: - -* `man sh` -* `man bash` (Search for "Pattern Matching") -* `man 3 fnmatch` -* `man 5 gitignore` -* [minimatch documentation](https://github.com/isaacs/minimatch) - -## glob.hasMagic(pattern, [options]) - -Returns `true` if there are any special characters in the pattern, and -`false` otherwise. - -Note that the options affect the results. If `noext:true` is set in -the options object, then `+(a|b)` will not be considered a magic -pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}` -then that is considered magical, unless `nobrace:true` is set in the -options. - -## glob(pattern, [options], cb) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* `cb` `{Function}` - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Perform an asynchronous glob search. - -## glob.sync(pattern, [options]) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* return: `{Array}` filenames found matching the pattern - -Perform a synchronous glob search. - -## Class: glob.Glob - -Create a Glob object by instantiating the `glob.Glob` class. - -```javascript -var Glob = require("glob").Glob -var mg = new Glob(pattern, options, cb) -``` - -It's an EventEmitter, and starts walking the filesystem to find matches -immediately. - -### new glob.Glob(pattern, [options], [cb]) - -* `pattern` `{String}` pattern to search for -* `options` `{Object}` -* `cb` `{Function}` Called when an error occurs, or matches are found - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Note that if the `sync` flag is set in the options, then matches will -be immediately available on the `g.found` member. - -### Properties - -* `minimatch` The minimatch object that the glob uses. -* `options` The options object passed in. -* `aborted` Boolean which is set to true when calling `abort()`. There - is no way at this time to continue a glob search after aborting, but - you can re-use the statCache to avoid having to duplicate syscalls. -* `cache` Convenience object. Each field has the following possible - values: - * `false` - Path does not exist - * `true` - Path exists - * `'FILE'` - Path exists, and is not a directory - * `'DIR'` - Path exists, and is a directory - * `[file, entries, ...]` - Path exists, is a directory, and the - array value is the results of `fs.readdir` -* `statCache` Cache of `fs.stat` results, to prevent statting the same - path multiple times. -* `symlinks` A record of which paths are symbolic links, which is - relevant in resolving `**` patterns. -* `realpathCache` An optional object which is passed to `fs.realpath` - to minimize unnecessary syscalls. It is stored on the instantiated - Glob object, and may be re-used. - -### Events - -* `end` When the matching is finished, this is emitted with all the - matches found. If the `nonull` option is set, and no match was found, - then the `matches` list contains the original pattern. The matches - are sorted, unless the `nosort` flag is set. -* `match` Every time a match is found, this is emitted with the specific - thing that matched. It is not deduplicated or resolved to a realpath. -* `error` Emitted when an unexpected error is encountered, or whenever - any fs error occurs if `options.strict` is set. -* `abort` When `abort()` is called, this event is raised. - -### Methods - -* `pause` Temporarily stop the search -* `resume` Resume the search -* `abort` Stop the search forever - -### Options - -All the options that can be passed to Minimatch can also be passed to -Glob to change pattern matching behavior. Also, some have been added, -or have glob-specific ramifications. - -All options are false by default, unless otherwise noted. - -All options are added to the Glob object, as well. - -If you are running many `glob` operations, you can pass a Glob object -as the `options` argument to a subsequent operation to shortcut some -`stat` and `readdir` calls. At the very least, you may pass in shared -`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that -parallel glob operations will be sped up by sharing information about -the filesystem. - -* `cwd` The current working directory in which to search. Defaults - to `process.cwd()`. -* `root` The place where patterns starting with `/` will be mounted - onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix - systems, and `C:\` or some such on Windows.) -* `dot` Include `.dot` files in normal matches and `globstar` matches. - Note that an explicit dot in a portion of the pattern will always - match dot files. -* `nomount` By default, a pattern starting with a forward-slash will be - "mounted" onto the root setting, so that a valid filesystem path is - returned. Set this flag to disable that behavior. -* `mark` Add a `/` character to directory matches. Note that this - requires additional stat calls. -* `nosort` Don't sort the results. -* `stat` Set to true to stat *all* results. This reduces performance - somewhat, and is completely unnecessary, unless `readdir` is presumed - to be an untrustworthy indicator of file existence. -* `silent` When an unusual error is encountered when attempting to - read a directory, a warning will be printed to stderr. Set the - `silent` option to true to suppress these warnings. -* `strict` When an unusual error is encountered when attempting to - read a directory, the process will just continue on in search of - other matches. Set the `strict` option to raise an error in these - cases. -* `cache` See `cache` property above. Pass in a previously generated - cache object to save some fs calls. -* `statCache` A cache of results of filesystem information, to prevent - unnecessary stat calls. While it should not normally be necessary - to set this, you may pass the statCache from one glob() call to the - options object of another, if you know that the filesystem will not - change between calls. (See "Race Conditions" below.) -* `symlinks` A cache of known symbolic links. You may pass in a - previously generated `symlinks` object to save `lstat` calls when - resolving `**` matches. -* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead. -* `nounique` In some cases, brace-expanded patterns can result in the - same file showing up multiple times in the result set. By default, - this implementation prevents duplicates in the result set. Set this - flag to disable that behavior. -* `nonull` Set to never return an empty set, instead returning a set - containing the pattern itself. This is the default in glob(3). -* `debug` Set to enable debug logging in minimatch and glob. -* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets. -* `noglobstar` Do not match `**` against multiple filenames. (Ie, - treat it as a normal `*` instead.) -* `noext` Do not match `+(a|b)` "extglob" patterns. -* `nocase` Perform a case-insensitive match. Note: on - case-insensitive filesystems, non-magic patterns will match by - default, since `stat` and `readdir` will not raise errors. -* `matchBase` Perform a basename-only match if the pattern does not - contain any slash characters. That is, `*.js` would be treated as - equivalent to `**/*.js`, matching all js files in all directories. -* `nodir` Do not match directories, only files. (Note: to match - *only* directories, simply put a `/` at the end of the pattern.) -* `ignore` Add a pattern or an array of glob patterns to exclude matches. - Note: `ignore` patterns are *always* in `dot:true` mode, regardless - of any other settings. -* `follow` Follow symlinked directories when expanding `**` patterns. - Note that this can result in a lot of duplicate references in the - presence of cyclic links. -* `realpath` Set to true to call `fs.realpath` on all of the results. - In the case of a symlink that cannot be resolved, the full absolute - path to the matched entry is returned (though it will usually be a - broken symlink) - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between node-glob and other -implementations, and are intentional. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.3, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -Note that symlinked directories are not crawled as part of a `**`, -though their contents may match against subsequent portions of the -pattern. This prevents infinite loops and duplicates and the like. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then glob returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. - -### Comments and Negation - -Previously, this module let you mark a pattern as a "comment" if it -started with a `#` character, or a "negated" pattern if it started -with a `!` character. - -These options were deprecated in version 5, and removed in version 6. - -To specify things that should not match, use the `ignore` option. - -## Windows - -**Please only use forward-slashes in glob expressions.** - -Though windows uses either `/` or `\` as its path separator, only `/` -characters are used by this glob implementation. You must use -forward-slashes **only** in glob expressions. Back-slashes will always -be interpreted as escape characters, not path separators. - -Results from absolute patterns such as `/foo/*` are mounted onto the -root setting using `path.join`. On windows, this will by default result -in `/foo/*` matching `C:\foo\bar.txt`. - -## Race Conditions - -Glob searching, by its very nature, is susceptible to race conditions, -since it relies on directory walking and such. - -As a result, it is possible that a file that exists when glob looks for -it may have been deleted or modified by the time it returns the result. - -As part of its internal implementation, this program caches all stat -and readdir calls that it makes, in order to cut down on system -overhead. However, this also makes it even more susceptible to races, -especially if the cache or statCache objects are reused between glob -calls. - -Users are thus advised not to use a glob result as a guarantee of -filesystem state in the face of rapid changes. For the vast majority -of operations, this is never a problem. - -## Contributing - -Any change to behavior (including bugfixes) must come with a test. - -Patches that fail tests or reduce performance will be rejected. - -``` -# to run tests -npm test - -# to re-generate test fixtures -npm run test-regen - -# to benchmark against bash/zsh -npm run bench - -# to profile javascript -npm run prof -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/changelog.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/changelog.md deleted file mode 100644 index 41636771..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/changelog.md +++ /dev/null @@ -1,67 +0,0 @@ -## 7.0 - -- Raise error if `options.cwd` is specified, and not a directory - -## 6.0 - -- Remove comment and negation pattern support -- Ignore patterns are always in `dot:true` mode - -## 5.0 - -- Deprecate comment and negation patterns -- Fix regression in `mark` and `nodir` options from making all cache - keys absolute path. -- Abort if `fs.readdir` returns an error that's unexpected -- Don't emit `match` events for ignored items -- Treat ENOTSUP like ENOTDIR in readdir - -## 4.5 - -- Add `options.follow` to always follow directory symlinks in globstar -- Add `options.realpath` to call `fs.realpath` on all results -- Always cache based on absolute path - -## 4.4 - -- Add `options.ignore` -- Fix handling of broken symlinks - -## 4.3 - -- Bump minimatch to 2.x -- Pass all tests on Windows - -## 4.2 - -- Add `glob.hasMagic` function -- Add `options.nodir` flag - -## 4.1 - -- Refactor sync and async implementations for performance -- Throw if callback provided to sync glob function -- Treat symbolic links in globstar results the same as Bash 4.3 - -## 4.0 - -- Use `^` for dependency versions (bumped major because this breaks - older npm versions) -- Ensure callbacks are only ever called once -- switch to ISC license - -## 3.x - -- Rewrite in JavaScript -- Add support for setting root, cwd, and windows support -- Cache many fs calls -- Add globstar support -- emit match events - -## 2.x - -- Use `glob.h` and `fnmatch.h` from NetBSD - -## 1.x - -- `glob.h` static binding. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/common.js deleted file mode 100644 index 58dc41e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/common.js +++ /dev/null @@ -1,235 +0,0 @@ -exports.alphasort = alphasort -exports.alphasorti = alphasorti -exports.setopts = setopts -exports.ownProp = ownProp -exports.makeAbs = makeAbs -exports.finish = finish -exports.mark = mark -exports.isIgnored = isIgnored -exports.childrenIgnored = childrenIgnored - -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} - -var path = require("path") -var minimatch = require("minimatch") -var isAbsolute = require("path-is-absolute") -var Minimatch = minimatch.Minimatch - -function alphasorti (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()) -} - -function alphasort (a, b) { - return a.localeCompare(b) -} - -function setupIgnores (self, options) { - self.ignore = options.ignore || [] - - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore] - - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap) - } -} - -// ignore patterns are always in dot:true mode. -function ignoreMap (pattern) { - var gmatcher = null - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, '') - gmatcher = new Minimatch(gpattern, { dot: true }) - } - - return { - matcher: new Minimatch(pattern, { dot: true }), - gmatcher: gmatcher - } -} - -function setopts (self, pattern, options) { - if (!options) - options = {} - - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") - } - pattern = "**/" + pattern - } - - self.silent = !!options.silent - self.pattern = pattern - self.strict = options.strict !== false - self.realpath = !!options.realpath - self.realpathCache = options.realpathCache || Object.create(null) - self.follow = !!options.follow - self.dot = !!options.dot - self.mark = !!options.mark - self.nodir = !!options.nodir - if (self.nodir) - self.mark = true - self.sync = !!options.sync - self.nounique = !!options.nounique - self.nonull = !!options.nonull - self.nosort = !!options.nosort - self.nocase = !!options.nocase - self.stat = !!options.stat - self.noprocess = !!options.noprocess - - self.maxLength = options.maxLength || Infinity - self.cache = options.cache || Object.create(null) - self.statCache = options.statCache || Object.create(null) - self.symlinks = options.symlinks || Object.create(null) - - setupIgnores(self, options) - - self.changedCwd = false - var cwd = process.cwd() - if (!ownProp(options, "cwd")) - self.cwd = cwd - else { - self.cwd = path.resolve(options.cwd) - self.changedCwd = self.cwd !== cwd - } - - self.root = options.root || path.resolve(self.cwd, "/") - self.root = path.resolve(self.root) - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/") - - self.cwdAbs = makeAbs(self, self.cwd) - self.nomount = !!options.nomount - - // disable comments and negation in Minimatch. - // Note that they are not supported in Glob itself anyway. - options.nonegate = true - options.nocomment = true - - self.minimatch = new Minimatch(pattern, options) - self.options = self.minimatch.options -} - -function finish (self) { - var nou = self.nounique - var all = nou ? [] : Object.create(null) - - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i] - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i] - if (nou) - all.push(literal) - else - all[literal] = true - } - } else { - // had matches - var m = Object.keys(matches) - if (nou) - all.push.apply(all, m) - else - m.forEach(function (m) { - all[m] = true - }) - } - } - - if (!nou) - all = Object.keys(all) - - if (!self.nosort) - all = all.sort(self.nocase ? alphasorti : alphasort) - - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]) - } - if (self.nodir) { - all = all.filter(function (e) { - var notDir = !(/\/$/.test(e)) - var c = self.cache[e] || self.cache[makeAbs(self, e)] - if (notDir && c) - notDir = c !== 'DIR' && !Array.isArray(c) - return notDir - }) - } - } - - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }) - - self.found = all -} - -function mark (self, p) { - var abs = makeAbs(self, p) - var c = self.cache[abs] - var m = p - if (c) { - var isDir = c === 'DIR' || Array.isArray(c) - var slash = p.slice(-1) === '/' - - if (isDir && !slash) - m += '/' - else if (!isDir && slash) - m = m.slice(0, -1) - - if (m !== p) { - var mabs = makeAbs(self, m) - self.statCache[mabs] = self.statCache[abs] - self.cache[mabs] = self.cache[abs] - } - } - - return m -} - -// lotta situps... -function makeAbs (self, f) { - var abs = f - if (f.charAt(0) === '/') { - abs = path.join(self.root, f) - } else if (isAbsolute(f) || f === '') { - abs = f - } else if (self.changedCwd) { - abs = path.resolve(self.cwd, f) - } else { - abs = path.resolve(f) - } - - if (process.platform === 'win32') - abs = abs.replace(/\\/g, '/') - - return abs -} - - -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/glob.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/glob.js deleted file mode 100644 index 4dba04ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/glob.js +++ /dev/null @@ -1,782 +0,0 @@ -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. - -module.exports = glob - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var inherits = require('inherits') -var EE = require('events').EventEmitter -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var globSync = require('./sync.js') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var inflight = require('inflight') -var util = require('util') -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -var once = require('once') - -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {} - if (!options) options = {} - - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return globSync(pattern, options) - } - - return new Glob(pattern, options, cb) -} - -glob.sync = globSync -var GlobSync = glob.GlobSync = globSync.GlobSync - -// old api surface -glob.glob = glob - -function extend (origin, add) { - if (add === null || typeof add !== 'object') { - return origin - } - - var keys = Object.keys(add) - var i = keys.length - while (i--) { - origin[keys[i]] = add[keys[i]] - } - return origin -} - -glob.hasMagic = function (pattern, options_) { - var options = extend({}, options_) - options.noprocess = true - - var g = new Glob(pattern, options) - var set = g.minimatch.set - if (set.length > 1) - return true - - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } - - return false -} - -glob.Glob = Glob -inherits(Glob, EE) -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync(pattern, options) - } - - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) - - setopts(this, pattern, options) - this._didRealPath = false - - // process each pattern in the minimatch set - var n = this.minimatch.set.length - - // The matches are stored as {: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n) - - if (typeof cb === 'function') { - cb = once(cb) - this.on('error', cb) - this.on('end', function (matches) { - cb(null, matches) - }) - } - - var self = this - var n = this.minimatch.set.length - this._processing = 0 - this.matches = new Array(n) - - this._emitQueue = [] - this._processQueue = [] - this.paused = false - - if (this.noprocess) - return this - - if (n === 0) - return done() - - var sync = true - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done) - } - sync = false - - function done () { - --self._processing - if (self._processing <= 0) { - if (sync) { - process.nextTick(function () { - self._finish() - }) - } else { - self._finish() - } - } - } -} - -Glob.prototype._finish = function () { - assert(this instanceof Glob) - if (this.aborted) - return - - if (this.realpath && !this._didRealpath) - return this._realpath() - - common.finish(this) - this.emit('end', this.found) -} - -Glob.prototype._realpath = function () { - if (this._didRealpath) - return - - this._didRealpath = true - - var n = this.matches.length - if (n === 0) - return this._finish() - - var self = this - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next) - - function next () { - if (--n === 0) - self._finish() - } -} - -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index] - if (!matchset) - return cb() - - var found = Object.keys(matchset) - var self = this - var n = found.length - - if (n === 0) - return cb() - - var set = this.matches[index] = Object.create(null) - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p) - fs.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true - else if (er.syscall === 'stat') - set[p] = true - else - self.emit('error', er) // srsly wtf right here - - if (--n === 0) { - self.matches[index] = set - cb() - } - }) - }) -} - -Glob.prototype._mark = function (p) { - return common.mark(this, p) -} - -Glob.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -Glob.prototype.abort = function () { - this.aborted = true - this.emit('abort') -} - -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true - this.emit('pause') - } -} - -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume') - this.paused = false - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0) - this._emitQueue.length = 0 - for (var i = 0; i < eq.length; i ++) { - var e = eq[i] - this._emitMatch(e[0], e[1]) - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0) - this._processQueue.length = 0 - for (var i = 0; i < pq.length; i ++) { - var p = pq[i] - this._processing-- - this._process(p[0], p[1], p[2], p[3]) - } - } - } -} - -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert(this instanceof Glob) - assert(typeof cb === 'function') - - if (this.aborted) - return - - this._processing++ - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]) - return - } - - //console.error('PROCESS %d', this._processing, pattern) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // see if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip _processing - if (childrenIgnored(this, read)) - return cb() - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) -} - -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return cb() - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - this._process([e].concat(remain), index, inGlobStar, cb) - } - cb() -} - -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return - - if (this.matches[index][e]) - return - - if (isIgnored(this, e)) - return - - if (this.paused) { - this._emitQueue.push([index, e]) - return - } - - var abs = this._makeAbs(e) - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - if (this.mark) - e = this._mark(e) - - this.matches[index][e] = true - - var st = this.statCache[abs] - if (st) - this.emit('stat', e, st) - - this.emit('match', e) -} - -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return - - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) - - var lstatkey = 'lstat\0' + abs - var self = this - var lstatcb = inflight(lstatkey, lstatcb_) - - if (lstatcb) - fs.lstat(abs, lstatcb) - - function lstatcb_ (er, lstat) { - if (er) - return cb() - - var isSym = lstat.isSymbolicLink() - self.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) { - self.cache[abs] = 'FILE' - cb() - } else - self._readdir(abs, false, cb) - } -} - -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return - - cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) - if (!cb) - return - - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return cb() - - if (Array.isArray(c)) - return cb(null, c) - } - - var self = this - fs.readdir(abs, readdirCb(this, abs, cb)) -} - -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb) - else - self._readdirEntries(abs, entries, cb) - } -} - -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return - - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - return cb(null, entries) -} - -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return - - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f) - this.cache[abs] = 'FILE' - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd) - error.path = this.cwd - error.code = er.code - this.emit('error', error) - this.abort() - } - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) { - this.emit('error', er) - // If the error is handled, then we abort - // if not, we threw out of here - this.abort() - } - if (!this.silent) - console.error('glob error', er) - break - } - - return cb() -} - -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - - -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb) - - var isSym = this.symlinks[abs] - var len = entries.length - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true, cb) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true, cb) - } - - cb() -} - -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb) - }) -} -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { - - //console.error('ps2', prefix, exists) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) - cb() -} - -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return cb() - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) - - if (needDir && c === 'FILE') - return cb() - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE' - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } - - var self = this - var statcb = inflight('stat\0' + abs, lstatcb_) - if (statcb) - fs.lstat(abs, statcb) - - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return fs.stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb) - else - self._stat2(f, abs, er, stat, cb) - }) - } else { - self._stat2(f, abs, er, lstat, cb) - } - } -} - -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er) { - this.statCache[abs] = false - return cb() - } - - var needDir = f.slice(-1) === '/' - this.statCache[abs] = stat - - if (abs.slice(-1) === '/' && !stat.isDirectory()) - return cb(null, false, stat) - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return cb() - - return cb(null, c, stat) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/README.md deleted file mode 100644 index d458bc2e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/README.md +++ /dev/null @@ -1,216 +0,0 @@ -# minimatch - -A minimal matching utility. - -[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch) - - -This is the matching library used internally by npm. - -It works by converting glob expressions into JavaScript `RegExp` -objects. - -## Usage - -```javascript -var minimatch = require("minimatch") - -minimatch("bar.foo", "*.foo") // true! -minimatch("bar.foo", "*.bar") // false! -minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy! -``` - -## Features - -Supports these glob features: - -* Brace Expansion -* Extended glob matching -* "Globstar" `**` matching - -See: - -* `man sh` -* `man bash` -* `man 3 fnmatch` -* `man 5 gitignore` - -## Minimatch Class - -Create a minimatch object by instanting the `minimatch.Minimatch` class. - -```javascript -var Minimatch = require("minimatch").Minimatch -var mm = new Minimatch(pattern, options) -``` - -### Properties - -* `pattern` The original pattern the minimatch object represents. -* `options` The options supplied to the constructor. -* `set` A 2-dimensional array of regexp or string expressions. - Each row in the - array corresponds to a brace-expanded pattern. Each item in the row - corresponds to a single path-part. For example, the pattern - `{a,b/c}/d` would expand to a set of patterns like: - - [ [ a, d ] - , [ b, c, d ] ] - - If a portion of the pattern doesn't have any "magic" in it - (that is, it's something like `"foo"` rather than `fo*o?`), then it - will be left as a string rather than converted to a regular - expression. - -* `regexp` Created by the `makeRe` method. A single regular expression - expressing the entire pattern. This is useful in cases where you wish - to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled. -* `negate` True if the pattern is negated. -* `comment` True if the pattern is a comment. -* `empty` True if the pattern is `""`. - -### Methods - -* `makeRe` Generate the `regexp` member if necessary, and return it. - Will return `false` if the pattern is invalid. -* `match(fname)` Return true if the filename matches the pattern, or - false otherwise. -* `matchOne(fileArray, patternArray, partial)` Take a `/`-split - filename, and match it against a single row in the `regExpSet`. This - method is mainly for internal use, but is exposed so that it can be - used by a glob-walker that needs to avoid excessive filesystem calls. - -All other methods are internal, and will be called as necessary. - -## Functions - -The top-level exported function has a `cache` property, which is an LRU -cache set to store 100 items. So, calling these methods repeatedly -with the same pattern and options will use the same Minimatch object, -saving the cost of parsing it multiple times. - -### minimatch(path, pattern, options) - -Main export. Tests a path against the pattern using the options. - -```javascript -var isJS = minimatch(file, "*.js", { matchBase: true }) -``` - -### minimatch.filter(pattern, options) - -Returns a function that tests its -supplied argument, suitable for use with `Array.filter`. Example: - -```javascript -var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true})) -``` - -### minimatch.match(list, pattern, options) - -Match against the list of -files, in the style of fnmatch or glob. If nothing is matched, and -options.nonull is set, then return a list containing the pattern itself. - -```javascript -var javascripts = minimatch.match(fileList, "*.js", {matchBase: true})) -``` - -### minimatch.makeRe(pattern, options) - -Make a regular expression object from the pattern. - -## Options - -All options are `false` by default. - -### debug - -Dump a ton of stuff to stderr. - -### nobrace - -Do not expand `{a,b}` and `{1..3}` brace sets. - -### noglobstar - -Disable `**` matching against multiple folder names. - -### dot - -Allow patterns to match filenames starting with a period, even if -the pattern does not explicitly have a period in that spot. - -Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot` -is set. - -### noext - -Disable "extglob" style patterns like `+(a|b)`. - -### nocase - -Perform a case-insensitive match. - -### nonull - -When a match is not found by `minimatch.match`, return a list containing -the pattern itself if this option is set. When not set, an empty list -is returned if there are no matches. - -### matchBase - -If set, then patterns without slashes will be matched -against the basename of the path if it contains slashes. For example, -`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. - -### nocomment - -Suppress the behavior of treating `#` at the start of a pattern as a -comment. - -### nonegate - -Suppress the behavior of treating a leading `!` character as negation. - -### flipNegate - -Returns from negate expressions the same as if they were not negated. -(Ie, true on a hit, false on a miss.) - - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between minimatch and other -implementations, and are intentional. - -If the pattern starts with a `!` character, then it is negated. Set the -`nonegate` flag to suppress this behavior, and treat leading `!` -characters normally. This is perhaps relevant if you wish to start the -pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` -characters at the start of a pattern will negate the pattern multiple -times. - -If a pattern starts with `#`, then it is treated as a comment, and -will not match anything. Use `\#` to match a literal `#` at the -start of a line, or set the `nocomment` flag to suppress this behavior. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.1, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then minimatch.match returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/minimatch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/minimatch.js deleted file mode 100644 index ec4c05c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/minimatch.js +++ /dev/null @@ -1,912 +0,0 @@ -module.exports = minimatch -minimatch.Minimatch = Minimatch - -var path = { sep: '/' } -try { - path = require('path') -} catch (er) {} - -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} -var expand = require('brace-expansion') - -// any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]' - -// * => any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } - - // "" only matches "" - if (pattern.trim() === '') return p === '' - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } - - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') - } - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function () {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new Error('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var plType - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - plType = stateChar - patternListStack.push({ - type: plType, - start: i - 1, - reStart: re.length - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - re += ')' - var pl = patternListStack.pop() - plType = pl.type - // negation is (?:(?!js)[^/]*) - // The others are (?:) - switch (plType) { - case '!': - negativeLists.push(pl) - re += ')[^/]*?)' - pl.reEnd = re.length - break - case '?': - case '+': - case '*': - re += plType - break - case '@': break // the default anyway - } - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + 3) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - var regExp = new RegExp('^' + re + '$', flags) - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore deleted file mode 100644 index 353546af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -test -.gitignore -.travis.yml diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md deleted file mode 100644 index 17939297..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js deleted file mode 100644 index 60ecfc74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +++ /dev/null @@ -1,8 +0,0 @@ -var expand = require('./'); - -console.log(expand('http://any.org/archive{1996..1999}/vol{1..4}/part{a,b,c}.html')); -console.log(expand('http://www.numericals.com/file{1..100..10}.txt')); -console.log(expand('http://www.letters.com/file{a..z..2}.txt')); -console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}')); -console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}')); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js deleted file mode 100644 index 932718f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,191 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = /^(.*,)+(.+)?$/.test(m.body); - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore deleted file mode 100644 index fd4f2b06..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -.DS_Store diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml deleted file mode 100644 index 6e5919de..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile deleted file mode 100644 index fa5da71a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -test: - @node_modules/.bin/tape test/*.js - -.PHONY: test - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md deleted file mode 100644 index 421f3aa5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +++ /dev/null @@ -1,89 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[ , ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js deleted file mode 100644 index c02ad348..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +++ /dev/null @@ -1,5 +0,0 @@ -var balanced = require('./'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js deleted file mode 100644 index 75f3d71c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +++ /dev/null @@ -1,50 +0,0 @@ -module.exports = balanced; -function balanced(a, b, str) { - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i < str.length && i >= 0 && ! result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json deleted file mode 100644 index 5de119ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "_args": [ - [ - "balanced-match@^0.3.0", - "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion" - ] - ], - "_from": "balanced-match@>=0.3.0 <0.4.0", - "_id": "balanced-match@0.3.0", - "_inCache": true, - "_installable": true, - "_location": "/glob/minimatch/brace-expansion/balanced-match", - "_nodeVersion": "4.2.1", - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "2.14.7", - "_phantomChildren": {}, - "_requested": { - "name": "balanced-match", - "raw": "balanced-match@^0.3.0", - "rawSpec": "^0.3.0", - "scope": null, - "spec": ">=0.3.0 <0.4.0", - "type": "range" - }, - "_requiredBy": [ - "/glob/minimatch/brace-expansion" - ], - "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz", - "_shasum": "a91cdd1ebef1a86659e70ff4def01625fc2d6756", - "_shrinkwrap": null, - "_spec": "balanced-match@^0.3.0", - "_where": "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/balanced-match/issues" - }, - "dependencies": {}, - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "devDependencies": { - "tape": "~4.2.2" - }, - "directories": {}, - "dist": { - "shasum": "a91cdd1ebef1a86659e70ff4def01625fc2d6756", - "tarball": "http://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" - }, - "gitHead": "a7114b0986554787e90b7ac595a043ca75ea77e5", - "homepage": "https://github.com/juliangruber/balanced-match", - "keywords": [ - "balanced", - "match", - "parse", - "regexp", - "test" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "name": "balanced-match", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "scripts": { - "test": "make test" - }, - "testling": { - "browsers": [ - "android-browser/4.2..latest", - "chrome/25..latest", - "chrome/canary", - "firefox/20..latest", - "firefox/nightly", - "ie/8..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "opera/12..latest", - "opera/next", - "safari/5.1..latest" - ], - "files": "test/*.js" - }, - "version": "0.3.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js deleted file mode 100644 index f5e98e3f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +++ /dev/null @@ -1,84 +0,0 @@ -var test = require('tape'); -var balanced = require('..'); - -test('balanced', function(t) { - t.deepEqual(balanced('{', '}', 'pre{in{nest}}post'), { - start: 3, - end: 12, - pre: 'pre', - body: 'in{nest}', - post: 'post' - }); - t.deepEqual(balanced('{', '}', '{{{{{{{{{in}post'), { - start: 8, - end: 11, - pre: '{{{{{{{{', - body: 'in', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre{body{in}post'), { - start: 8, - end: 11, - pre: 'pre{body', - body: 'in', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre}{in{nest}}post'), { - start: 4, - end: 13, - pre: 'pre}', - body: 'in{nest}', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre{body}between{body2}post'), { - start: 3, - end: 8, - pre: 'pre', - body: 'body', - post: 'between{body2}post' - }); - t.notOk(balanced('{', '}', 'nope'), 'should be notOk'); - t.deepEqual(balanced('', '', 'preinnestpost'), { - start: 3, - end: 19, - pre: 'pre', - body: 'innest', - post: 'post' - }); - t.deepEqual(balanced('', '', 'preinnestpost'), { - start: 7, - end: 23, - pre: 'pre', - body: 'innest', - post: 'post' - }); - t.deepEqual(balanced('{{', '}}', 'pre{{{in}}}post'), { - start: 3, - end: 9, - pre: 'pre', - body: '{in}', - post: 'post' - }); - t.deepEqual(balanced('{{{', '}}', 'pre{{{in}}}post'), { - start: 3, - end: 8, - pre: 'pre', - body: 'in', - post: '}post' - }); - t.deepEqual(balanced('{', '}', 'pre{{first}in{second}post'), { - start: 4, - end: 10, - pre: 'pre{', - body: 'first', - post: 'in{second}post' - }); - t.deepEqual(balanced('', 'prepost'), { - start: 3, - end: 4, - pre: 'pre', - body: '', - post: 'post' - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml deleted file mode 100644 index f1d0f13c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +++ /dev/null @@ -1,62 +0,0 @@ -concat-map -========== - -Concatenative mapdashery. - -[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) - -[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) - -example -======= - -``` js -var concatMap = require('concat-map'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); -``` - -*** - -``` -[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] -``` - -methods -======= - -``` js -var concatMap = require('concat-map') -``` - -concatMap(xs, fn) ------------------ - -Return an array of concatenated elements by calling `fn(x, i)` for each element -`x` and each index `i` in the array `xs`. - -When `fn(x, i)` returns an array, its result will be concatenated with the -result array. If `fn(x, i)` returns anything else, that value will be pushed -onto the end of the result array. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install concat-map -``` - -license -======= - -MIT - -notes -===== - -This module was written while sitting high above the ground in a tree. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js deleted file mode 100644 index 33656217..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js deleted file mode 100644 index b29a7812..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json deleted file mode 100644 index 386ed516..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "concat-map", - "description": "concatenative mapdashery", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-concat-map.git" - }, - "main": "index.js", - "keywords": [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "directories": { - "example": "example", - "test": "test" - }, - "scripts": { - "test": "tape test/*.js" - }, - "devDependencies": { - "tape": "~2.4.0" - }, - "license": "MIT", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "testling": { - "files": "test/*.js", - "browsers": { - "ie": [ - 6, - 7, - 8, - 9 - ], - "ff": [ - 3.5, - 10, - 15 - ], - "chrome": [ - 10, - 22 - ], - "safari": [ - 5.1 - ], - "opera": [ - 12 - ] - } - }, - "bugs": { - "url": "https://github.com/substack/node-concat-map/issues" - }, - "homepage": "https://github.com/substack/node-concat-map", - "_id": "concat-map@0.0.1", - "dist": { - "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "tarball": "http://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "_from": "concat-map@0.0.1", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd7022..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json deleted file mode 100644 index 2917f0ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "_args": [ - [ - "brace-expansion@^1.0.0", - "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch" - ] - ], - "_from": "brace-expansion@>=1.0.0 <2.0.0", - "_id": "brace-expansion@1.1.3", - "_inCache": true, - "_installable": true, - "_location": "/glob/minimatch/brace-expansion", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/brace-expansion-1.1.3.tgz_1455216688668_0.948847763473168" - }, - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "brace-expansion", - "raw": "brace-expansion@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/glob/minimatch" - ], - "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", - "_shasum": "46bff50115d47fc9ab89854abb87d98078a10991", - "_shrinkwrap": null, - "_spec": "brace-expansion@^1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/brace-expansion/issues" - }, - "dependencies": { - "balanced-match": "^0.3.0", - "concat-map": "0.0.1" - }, - "description": "Brace expansion as known from sh/bash", - "devDependencies": { - "tape": "4.4.0" - }, - "directories": {}, - "dist": { - "shasum": "46bff50115d47fc9ab89854abb87d98078a10991", - "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz" - }, - "gitHead": "f0da1bb668e655f67b6b2d660c6e1c19e2a6f231", - "homepage": "https://github.com/juliangruber/brace-expansion", - "keywords": [], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - } - ], - "name": "brace-expansion", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "scripts": { - "gentest": "bash test/generate.sh", - "test": "tape test/*.js" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test/*.js" - }, - "version": "1.1.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/package.json deleted file mode 100644 index 4944eb0b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/minimatch/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "name": "minimatch", - "description": "a glob matcher in javascript", - "version": "3.0.0", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" - }, - "main": "minimatch.js", - "scripts": { - "posttest": "standard minimatch.js test/*.js", - "test": "tap test/*.js" - }, - "engines": { - "node": "*" - }, - "dependencies": { - "brace-expansion": "^1.0.0" - }, - "devDependencies": { - "standard": "^3.7.2", - "tap": "^1.2.0" - }, - "license": "ISC", - "files": [ - "minimatch.js" - ], - "gitHead": "270dbea567f0af6918cb18103e98c612aa717a20", - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" - }, - "homepage": "https://github.com/isaacs/minimatch#readme", - "_id": "minimatch@3.0.0", - "_shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83", - "_from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "_npmVersion": "3.3.2", - "_nodeVersion": "4.0.0", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83", - "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/index.js deleted file mode 100644 index 19f103f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/index.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -function posix(path) { - return path.charAt(0) === '/'; -}; - -function win32(path) { - // https://github.com/joyent/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; - var result = splitDeviceRe.exec(path); - var device = result[1] || ''; - var isUnc = !!device && device.charAt(1) !== ':'; - - // UNC paths are always absolute - return !!result[2] || isUnc; -}; - -module.exports = process.platform === 'win32' ? win32 : posix; -module.exports.posix = posix; -module.exports.win32 = win32; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/package.json deleted file mode 100644 index bf60d74d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "path-is-absolute", - "version": "1.0.0", - "description": "Node.js 0.12 path.isAbsolute() ponyfill", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/path-is-absolute.git" - }, - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "node test.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "path", - "paths", - "file", - "dir", - "absolute", - "isabsolute", - "is-absolute", - "built-in", - "util", - "utils", - "core", - "ponyfill", - "polyfill", - "shim", - "is", - "detect", - "check" - ], - "readme": "# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute)\n\n> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) ponyfill\n\n> Ponyfill: A polyfill that doesn't overwrite the native method\n\n\n## Install\n\n```\n$ npm install --save path-is-absolute\n```\n\n\n## Usage\n\n```js\nvar pathIsAbsolute = require('path-is-absolute');\n\n// Linux\npathIsAbsolute('/home/foo');\n//=> true\n\n// Windows\npathIsAbsolute('C:/Users/');\n//=> true\n\n// Any OS\npathIsAbsolute.posix('/home/foo');\n//=> true\n```\n\n\n## API\n\nSee the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path).\n\n### pathIsAbsolute(path)\n\n### pathIsAbsolute.posix(path)\n\nThe Posix specific version.\n\n### pathIsAbsolute.win32(path)\n\nThe Windows specific version.\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", - "readmeFilename": "readme.md", - "bugs": { - "url": "https://github.com/sindresorhus/path-is-absolute/issues" - }, - "homepage": "https://github.com/sindresorhus/path-is-absolute#readme", - "_id": "path-is-absolute@1.0.0", - "_shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912", - "_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", - "_from": "path-is-absolute@>=1.0.0 <2.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/readme.md deleted file mode 100644 index cdf94f43..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/readme.md +++ /dev/null @@ -1,51 +0,0 @@ -# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute) - -> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) ponyfill - -> Ponyfill: A polyfill that doesn't overwrite the native method - - -## Install - -``` -$ npm install --save path-is-absolute -``` - - -## Usage - -```js -var pathIsAbsolute = require('path-is-absolute'); - -// Linux -pathIsAbsolute('/home/foo'); -//=> true - -// Windows -pathIsAbsolute('C:/Users/'); -//=> true - -// Any OS -pathIsAbsolute.posix('/home/foo'); -//=> true -``` - - -## API - -See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path). - -### pathIsAbsolute(path) - -### pathIsAbsolute.posix(path) - -The Posix specific version. - -### pathIsAbsolute.win32(path) - -The Windows specific version. - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/package.json deleted file mode 100644 index cf191d21..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/package.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "_args": [ - [ - "glob@7.0.3", - "/Users/rebecca/code/npm" - ] - ], - "_from": "glob@7.0.3", - "_id": "glob@7.0.3", - "_inCache": true, - "_installable": true, - "_location": "/glob", - "_nodeVersion": "5.6.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/glob-7.0.3.tgz_1457166529288_0.7840580905321985" - }, - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.7.3", - "_phantomChildren": {}, - "_requested": { - "name": "glob", - "raw": "glob@7.0.3", - "rawSpec": "7.0.3", - "scope": null, - "spec": "7.0.3", - "type": "version" - }, - "_requiredBy": [ - "/", - "/rimraf", - "/tap" - ], - "_resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz", - "_shasum": "0aa235931a4a96ac13d60ffac2fb877bd6ed4f58", - "_shrinkwrap": null, - "_spec": "glob@7.0.3", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/node-glob/issues" - }, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "description": "a little globber", - "devDependencies": { - "mkdirp": "0", - "rimraf": "^2.2.8", - "tap": "^5.7.0", - "tick": "0.0.6" - }, - "directories": {}, - "dist": { - "shasum": "0aa235931a4a96ac13d60ffac2fb877bd6ed4f58", - "tarball": "http://registry.npmjs.org/glob/-/glob-7.0.3.tgz" - }, - "engines": { - "node": "*" - }, - "files": [ - "glob.js", - "sync.js", - "common.js" - ], - "gitHead": "2fc2278ab857c7df117213a2fb431de090be6353", - "homepage": "https://github.com/isaacs/node-glob#readme", - "license": "ISC", - "main": "glob.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "glob", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" - }, - "scripts": { - "bench": "bash benchmark.sh", - "benchclean": "node benchclean.js", - "prepublish": "npm run benchclean", - "prof": "bash prof.sh && cat profile.txt", - "profclean": "rm -f v8.log profile.txt", - "test": "tap test/*.js --cov", - "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" - }, - "version": "7.0.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/sync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/sync.js deleted file mode 100644 index 301577ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/glob/sync.js +++ /dev/null @@ -1,467 +0,0 @@ -module.exports = globSync -globSync.GlobSync = GlobSync - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var Glob = require('./glob.js').Glob -var util = require('util') -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var childrenIgnored = common.childrenIgnored - -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - return new GlobSync(pattern, options).found -} - -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts(this, pattern, options) - - if (this.noprocess) - return this - - var n = this.minimatch.set.length - this.matches = new Array(n) - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false) - } - this._finish() -} - -GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) - if (this.realpath) { - var self = this - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null) - for (var p in matchset) { - try { - p = self._makeAbs(p) - var real = fs.realpathSync(p, self.realpathCache) - set[real] = true - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true - else - throw er - } - } - }) - } - common.finish(this) -} - - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // See if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip processing - if (childrenIgnored(this, read)) - return - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar) -} - - -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar) - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this.matches[index][e] = true - } - // This was the last one, and no stats were needed - return - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) - newPattern = [prefix, e] - else - newPattern = [e] - this._process(newPattern.concat(remain), index, inGlobStar) - } -} - - -GlobSync.prototype._emitMatch = function (index, e) { - var abs = this._makeAbs(e) - if (this.mark) - e = this._mark(e) - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[this._makeAbs(e)] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - if (this.stat) - this._stat(e) -} - - -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) - - var entries - var lstat - var stat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - // lstat failed, doesn't exist - return null - } - - var isSym = lstat.isSymbolicLink() - this.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) - this.cache[abs] = 'FILE' - else - entries = this._readdir(abs, false) - - return entries -} - -GlobSync.prototype._readdir = function (abs, inGlobStar) { - var entries - - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return null - - if (Array.isArray(c)) - return c - } - - try { - return this._readdirEntries(abs, fs.readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er) - return null - } -} - -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - - // mark and cache dir-ness - return entries -} - -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f) - this.cache[abs] = 'FILE' - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd) - error.path = this.cwd - error.code = er.code - throw error - } - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) - throw er - if (!this.silent) - console.error('glob error', er) - break - } -} - -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - - var entries = this._readdir(abs, inGlobStar) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false) - - var len = entries.length - var isSym = this.symlinks[abs] - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true) - } -} - -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this.matches[index][prefix] = true -} - -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return false - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c - - if (needDir && c === 'FILE') - return false - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (!stat) { - var lstat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - return false - } - - if (lstat.isSymbolicLink()) { - try { - stat = fs.statSync(abs) - } catch (er) { - stat = lstat - } - } else { - stat = lstat - } - } - - this.statCache[abs] = stat - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return false - - return c -} - -GlobSync.prototype._mark = function (p) { - return common.mark(this, p) -} - -GlobSync.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/LICENSE deleted file mode 100644 index 9d2c8036..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/README.md deleted file mode 100644 index d0dcd492..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# graceful-fs - -graceful-fs functions as a drop-in replacement for the fs module, -making various improvements. - -The improvements are meant to normalize behavior across different -platforms and environments, and to make filesystem access more -resilient to errors. - -## Improvements over [fs module](http://api.nodejs.org/fs.html) - -* Queues up `open` and `readdir` calls, and retries them once - something closes if there is an EMFILE error from too many file - descriptors. -* fixes `lchmod` for Node versions prior to 0.6.2. -* implements `fs.lutimes` if possible. Otherwise it becomes a noop. -* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or - `lchown` if the user isn't root. -* makes `lchmod` and `lchown` become noops, if not available. -* retries reading a file if `read` results in EAGAIN error. - -On Windows, it retries renaming a file for up to one second if `EACCESS` -or `EPERM` error occurs, likely because antivirus software has locked -the directory. - -## USAGE - -```javascript -// use just like fs -var fs = require('graceful-fs') - -// now go and do stuff with it... -fs.readFileSync('some-file-or-whatever') -``` - -## Global Patching - -If you want to patch the global fs module (or any other fs-like -module) you can do this: - -```javascript -// Make sure to read the caveat below. -var realFs = require('fs') -var gracefulFs = require('graceful-fs') -gracefulFs.gracefulify(realFs) -``` - -This should only ever be done at the top-level application layer, in -order to delay on EMFILE errors from any fs-using dependencies. You -should **not** do this in a library, because it can cause unexpected -delays in other parts of the program. - -## Changes - -This module is fairly stable at this point, and used by a lot of -things. That being said, because it implements a subtle behavior -change in a core part of the node API, even modest changes can be -extremely breaking, and the versioning is thus biased towards -bumping the major when in doubt. - -The main change between major versions has been switching between -providing a fully-patched `fs` module vs monkey-patching the node core -builtin, and the approach by which a non-monkey-patched `fs` was -created. - -The goal is to trade `EMFILE` errors for slower fs operations. So, if -you try to open a zillion files, rather than crashing, `open` -operations will be queued up and wait for something else to `close`. - -There are advantages to each approach. Monkey-patching the fs means -that no `EMFILE` errors can possibly occur anywhere in your -application, because everything is using the same core `fs` module, -which is patched. However, it can also obviously cause undesirable -side-effects, especially if the module is loaded multiple times. - -Implementing a separate-but-identical patched `fs` module is more -surgical (and doesn't run the risk of patching multiple times), but -also imposes the challenge of keeping in sync with the core module. - -The current approach loads the `fs` module, and then creates a -lookalike object that has all the same methods, except a few that are -patched. It is safe to use in all versions of Node from 0.8 through -7.0. - -### v4 - -* Do not monkey-patch the fs module. This module may now be used as a - drop-in dep, and users can opt into monkey-patching the fs builtin - if their app requires it. - -### v3 - -* Monkey-patch fs, because the eval approach no longer works on recent - node. -* fixed possible type-error throw if rename fails on windows -* verify that we *never* get EMFILE errors -* Ignore ENOSYS from chmod/chown -* clarify that graceful-fs must be used as a drop-in - -### v2.1.0 - -* Use eval rather than monkey-patching fs. -* readdir: Always sort the results -* win32: requeue a file if error has an OK status - -### v2.0 - -* A return to monkey patching -* wrap process.cwd - -### v1.1 - -* wrap readFile -* Wrap fs.writeFile. -* readdir protection -* Don't clobber the fs builtin -* Handle fs.read EAGAIN errors by trying again -* Expose the curOpen counter -* No-op lchown/lchmod if not implemented -* fs.rename patch only for win32 -* Patch fs.rename to handle AV software on Windows -* Close #4 Chown should not fail on einval or eperm if non-root -* Fix isaacs/fstream#1 Only wrap fs one time -* Fix #3 Start at 1024 max files, then back off on EMFILE -* lutimes that doens't blow up on Linux -* A full on-rewrite using a queue instead of just swallowing the EMFILE error -* Wrap Read/Write streams as well - -### 1.0 - -* Update engines for node 0.6 -* Be lstat-graceful on Windows -* first diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/fs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/fs.js deleted file mode 100644 index 8ad4a383..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/fs.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict' - -var fs = require('fs') - -module.exports = clone(fs) - -function clone (obj) { - if (obj === null || typeof obj !== 'object') - return obj - - if (obj instanceof Object) - var copy = { __proto__: obj.__proto__ } - else - var copy = Object.create(null) - - Object.getOwnPropertyNames(obj).forEach(function (key) { - Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) - }) - - return copy -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/graceful-fs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/graceful-fs.js deleted file mode 100644 index 9bf803e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/graceful-fs.js +++ /dev/null @@ -1,253 +0,0 @@ -var fs = require('fs') -var polyfills = require('./polyfills.js') -var legacy = require('./legacy-streams.js') -var queue = [] - -var util = require('util') - -function noop () {} - -var debug = noop -if (util.debuglog) - debug = util.debuglog('gfs4') -else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) - debug = function() { - var m = util.format.apply(util, arguments) - m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ') - console.error(m) - } - -if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { - process.on('exit', function() { - debug(queue) - require('assert').equal(queue.length, 0) - }) -} - -module.exports = patch(require('./fs.js')) -if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH) { - module.exports = patch(fs) -} - -// Always patch fs.close/closeSync, because we want to -// retry() whenever a close happens *anywhere* in the program. -// This is essential when multiple graceful-fs instances are -// in play at the same time. -module.exports.close = -fs.close = (function (fs$close) { return function (fd, cb) { - return fs$close.call(fs, fd, function (err) { - if (!err) - retry() - - if (typeof cb === 'function') - cb.apply(this, arguments) - }) -}})(fs.close) - -module.exports.closeSync = -fs.closeSync = (function (fs$closeSync) { return function (fd) { - // Note that graceful-fs also retries when fs.closeSync() fails. - // Looks like a bug to me, although it's probably a harmless one. - var rval = fs$closeSync.apply(fs, arguments) - retry() - return rval -}})(fs.closeSync) - -function patch (fs) { - // Everything that references the open() function needs to be in here - polyfills(fs) - fs.gracefulify = patch - fs.FileReadStream = ReadStream; // Legacy name. - fs.FileWriteStream = WriteStream; // Legacy name. - fs.createReadStream = createReadStream - fs.createWriteStream = createWriteStream - var fs$readFile = fs.readFile - fs.readFile = readFile - function readFile (path, options, cb) { - if (typeof options === 'function') - cb = options, options = null - - return go$readFile(path, options, cb) - - function go$readFile (path, options, cb) { - return fs$readFile(path, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$readFile, [path, options, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) - } - } - - var fs$writeFile = fs.writeFile - fs.writeFile = writeFile - function writeFile (path, data, options, cb) { - if (typeof options === 'function') - cb = options, options = null - - return go$writeFile(path, data, options, cb) - - function go$writeFile (path, data, options, cb) { - return fs$writeFile(path, data, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$writeFile, [path, data, options, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) - } - } - - var fs$appendFile = fs.appendFile - if (fs$appendFile) - fs.appendFile = appendFile - function appendFile (path, data, options, cb) { - if (typeof options === 'function') - cb = options, options = null - - return go$appendFile(path, data, options, cb) - - function go$appendFile (path, data, options, cb) { - return fs$appendFile(path, data, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$appendFile, [path, data, options, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) - } - } - - var fs$readdir = fs.readdir - fs.readdir = readdir - function readdir (path, cb) { - return go$readdir(path, cb) - - function go$readdir () { - return fs$readdir(path, function (err, files) { - if (files && files.sort) - files.sort(); // Backwards compatibility with graceful-fs. - - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$readdir, [path, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) - } - } - - - if (process.version.substr(0, 4) === 'v0.8') { - var legStreams = legacy(fs) - ReadStream = legStreams.ReadStream - WriteStream = legStreams.WriteStream - } - - var fs$ReadStream = fs.ReadStream - ReadStream.prototype = Object.create(fs$ReadStream.prototype) - ReadStream.prototype.open = ReadStream$open - - var fs$WriteStream = fs.WriteStream - WriteStream.prototype = Object.create(fs$WriteStream.prototype) - WriteStream.prototype.open = WriteStream$open - - fs.ReadStream = ReadStream - fs.WriteStream = WriteStream - - function ReadStream (path, options) { - if (this instanceof ReadStream) - return fs$ReadStream.apply(this, arguments), this - else - return ReadStream.apply(Object.create(ReadStream.prototype), arguments) - } - - function ReadStream$open () { - var that = this - open(that.path, that.flags, that.mode, function (err, fd) { - if (err) { - if (that.autoClose) - that.destroy() - - that.emit('error', err) - } else { - that.fd = fd - that.emit('open', fd) - that.read() - } - }) - } - - function WriteStream (path, options) { - if (this instanceof WriteStream) - return fs$WriteStream.apply(this, arguments), this - else - return WriteStream.apply(Object.create(WriteStream.prototype), arguments) - } - - function WriteStream$open () { - var that = this - open(that.path, that.flags, that.mode, function (err, fd) { - if (err) { - that.destroy() - that.emit('error', err) - } else { - that.fd = fd - that.emit('open', fd) - } - }) - } - - function createReadStream (path, options) { - return new ReadStream(path, options) - } - - function createWriteStream (path, options) { - return new WriteStream(path, options) - } - - var fs$open = fs.open - fs.open = open - function open (path, flags, mode, cb) { - if (typeof mode === 'function') - cb = mode, mode = null - - return go$open(path, flags, mode, cb) - - function go$open (path, flags, mode, cb) { - return fs$open(path, flags, mode, function (err, fd) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$open, [path, flags, mode, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) - } - } - - return fs -} - -function enqueue (elem) { - debug('ENQUEUE', elem[0].name, elem[1]) - queue.push(elem) -} - -function retry () { - var elem = queue.shift() - if (elem) { - debug('RETRY', elem[0].name, elem[1]) - elem[0].apply(null, elem[1]) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/legacy-streams.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/legacy-streams.js deleted file mode 100644 index d617b50f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/legacy-streams.js +++ /dev/null @@ -1,118 +0,0 @@ -var Stream = require('stream').Stream - -module.exports = legacy - -function legacy (fs) { - return { - ReadStream: ReadStream, - WriteStream: WriteStream - } - - function ReadStream (path, options) { - if (!(this instanceof ReadStream)) return new ReadStream(path, options); - - Stream.call(this); - - var self = this; - - this.path = path; - this.fd = null; - this.readable = true; - this.paused = false; - - this.flags = 'r'; - this.mode = 438; /*=0666*/ - this.bufferSize = 64 * 1024; - - options = options || {}; - - // Mixin options into this - var keys = Object.keys(options); - for (var index = 0, length = keys.length; index < length; index++) { - var key = keys[index]; - this[key] = options[key]; - } - - if (this.encoding) this.setEncoding(this.encoding); - - if (this.start !== undefined) { - if ('number' !== typeof this.start) { - throw TypeError('start must be a Number'); - } - if (this.end === undefined) { - this.end = Infinity; - } else if ('number' !== typeof this.end) { - throw TypeError('end must be a Number'); - } - - if (this.start > this.end) { - throw new Error('start must be <= end'); - } - - this.pos = this.start; - } - - if (this.fd !== null) { - process.nextTick(function() { - self._read(); - }); - return; - } - - fs.open(this.path, this.flags, this.mode, function (err, fd) { - if (err) { - self.emit('error', err); - self.readable = false; - return; - } - - self.fd = fd; - self.emit('open', fd); - self._read(); - }) - } - - function WriteStream (path, options) { - if (!(this instanceof WriteStream)) return new WriteStream(path, options); - - Stream.call(this); - - this.path = path; - this.fd = null; - this.writable = true; - - this.flags = 'w'; - this.encoding = 'binary'; - this.mode = 438; /*=0666*/ - this.bytesWritten = 0; - - options = options || {}; - - // Mixin options into this - var keys = Object.keys(options); - for (var index = 0, length = keys.length; index < length; index++) { - var key = keys[index]; - this[key] = options[key]; - } - - if (this.start !== undefined) { - if ('number' !== typeof this.start) { - throw TypeError('start must be a Number'); - } - if (this.start < 0) { - throw new Error('start must be >= zero'); - } - - this.pos = this.start; - } - - this.busy = false; - this._queue = []; - - if (this.fd === null) { - this._open = fs.open; - this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); - this.flush(); - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/package.json deleted file mode 100644 index cca5d89f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/package.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "_args": [ - [ - "graceful-fs@~4.1.3", - "/Users/rebecca/code/npm" - ] - ], - "_from": "graceful-fs@>=4.1.3 <4.2.0", - "_id": "graceful-fs@4.1.4", - "_inCache": true, - "_installable": true, - "_location": "/graceful-fs", - "_nodeVersion": "5.6.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/graceful-fs-4.1.4.tgz_1462474854900_0.9423982477746904" - }, - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.8.9", - "_phantomChildren": {}, - "_requested": { - "name": "graceful-fs", - "raw": "graceful-fs@~4.1.3", - "rawSpec": "~4.1.3", - "scope": null, - "spec": ">=4.1.3 <4.2.0", - "type": "range" - }, - "_requiredBy": [ - "/", - "/cmd-shim", - "/fs-vacuum", - "/fs-write-stream-atomic", - "/fstream", - "/node-gyp", - "/npm-registry-client", - "/read-cmd-shim", - "/read-installed", - "/read-package-json", - "/readdir-scoped-modules", - "/sha", - "/standard/eslint/file-entry-cache/flat-cache", - "/standard/eslint/file-entry-cache/flat-cache/read-json-sync", - "/tacks", - "/tap/nyc/read-pkg/load-json-file", - "/tap/nyc/read-pkg/path-type", - "/write-file-atomic" - ], - "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz", - "_shasum": "ef089d2880f033b011823ce5c8fae798da775dbd", - "_shrinkwrap": null, - "_spec": "graceful-fs@~4.1.3", - "_where": "/Users/rebecca/code/npm", - "bugs": { - "url": "https://github.com/isaacs/node-graceful-fs/issues" - }, - "dependencies": {}, - "description": "A drop-in replacement for fs, making various improvements.", - "devDependencies": { - "mkdirp": "^0.5.0", - "rimraf": "^2.2.8", - "tap": "^5.4.2" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "ef089d2880f033b011823ce5c8fae798da775dbd", - "tarball": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz" - }, - "engines": { - "node": ">=0.4.0" - }, - "files": [ - "fs.js", - "graceful-fs.js", - "legacy-streams.js", - "polyfills.js" - ], - "gitHead": "fe8f05ccc2779d1dfa6db6173f3ed64f1e9aa72c", - "homepage": "https://github.com/isaacs/node-graceful-fs#readme", - "keywords": [ - "fs", - "module", - "reading", - "retry", - "retries", - "queue", - "error", - "errors", - "handling", - "EMFILE", - "EAGAIN", - "EINVAL", - "EPERM", - "EACCESS" - ], - "license": "ISC", - "main": "graceful-fs.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "graceful-fs", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/node-graceful-fs.git" - }, - "scripts": { - "test": "node test.js | tap -" - }, - "version": "4.1.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/polyfills.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/polyfills.js deleted file mode 100644 index 5e4f4804..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/graceful-fs/polyfills.js +++ /dev/null @@ -1,252 +0,0 @@ -var fs = require('./fs.js') -var constants = require('constants') - -var origCwd = process.cwd -var cwd = null -process.cwd = function() { - if (!cwd) - cwd = origCwd.call(process) - return cwd -} -try { - process.cwd() -} catch (er) {} - -var chdir = process.chdir -process.chdir = function(d) { - cwd = null - chdir.call(process, d) -} - -module.exports = patch - -function patch (fs) { - // (re-)implement some things that are known busted or missing. - - // lchmod, broken prior to 0.6.2 - // back-port the fix here. - if (constants.hasOwnProperty('O_SYMLINK') && - process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { - patchLchmod(fs) - } - - // lutimes implementation, or no-op - if (!fs.lutimes) { - patchLutimes(fs) - } - - // https://github.com/isaacs/node-graceful-fs/issues/4 - // Chown should not fail on einval or eperm if non-root. - // It should not fail on enosys ever, as this just indicates - // that a fs doesn't support the intended operation. - - fs.chown = chownFix(fs.chown) - fs.fchown = chownFix(fs.fchown) - fs.lchown = chownFix(fs.lchown) - - fs.chmod = chownFix(fs.chmod) - fs.fchmod = chownFix(fs.fchmod) - fs.lchmod = chownFix(fs.lchmod) - - fs.chownSync = chownFixSync(fs.chownSync) - fs.fchownSync = chownFixSync(fs.fchownSync) - fs.lchownSync = chownFixSync(fs.lchownSync) - - fs.chmodSync = chownFix(fs.chmodSync) - fs.fchmodSync = chownFix(fs.fchmodSync) - fs.lchmodSync = chownFix(fs.lchmodSync) - - // if lchmod/lchown do not exist, then make them no-ops - if (!fs.lchmod) { - fs.lchmod = function (path, mode, cb) { - process.nextTick(cb) - } - fs.lchmodSync = function () {} - } - if (!fs.lchown) { - fs.lchown = function (path, uid, gid, cb) { - process.nextTick(cb) - } - fs.lchownSync = function () {} - } - - // on Windows, A/V software can lock the directory, causing this - // to fail with an EACCES or EPERM if the directory contains newly - // created files. Try again on failure, for up to 1 second. - if (process.platform === "win32") { - fs.rename = (function (fs$rename) { return function (from, to, cb) { - var start = Date.now() - fs$rename(from, to, function CB (er) { - if (er - && (er.code === "EACCES" || er.code === "EPERM") - && Date.now() - start < 1000) { - return fs$rename(from, to, CB) - } - if (cb) cb(er) - }) - }})(fs.rename) - } - - // if read() returns EAGAIN, then just try it again. - fs.read = (function (fs$read) { return function (fd, buffer, offset, length, position, callback_) { - var callback - if (callback_ && typeof callback_ === 'function') { - var eagCounter = 0 - callback = function (er, _, __) { - if (er && er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - return fs$read.call(fs, fd, buffer, offset, length, position, callback) - } - callback_.apply(this, arguments) - } - } - return fs$read.call(fs, fd, buffer, offset, length, position, callback) - }})(fs.read) - - fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) { - var eagCounter = 0 - while (true) { - try { - return fs$readSync.call(fs, fd, buffer, offset, length, position) - } catch (er) { - if (er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - continue - } - throw er - } - } - }})(fs.readSync) -} - -function patchLchmod (fs) { - fs.lchmod = function (path, mode, callback) { - callback = callback || noop - fs.open( path - , constants.O_WRONLY | constants.O_SYMLINK - , mode - , function (err, fd) { - if (err) { - callback(err) - return - } - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - fs.fchmod(fd, mode, function (err) { - fs.close(fd, function(err2) { - callback(err || err2) - }) - }) - }) - } - - fs.lchmodSync = function (path, mode) { - var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) - - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - var threw = true - var ret - try { - ret = fs.fchmodSync(fd, mode) - threw = false - } finally { - if (threw) { - try { - fs.closeSync(fd) - } catch (er) {} - } else { - fs.closeSync(fd) - } - } - return ret - } -} - -function patchLutimes (fs) { - if (constants.hasOwnProperty("O_SYMLINK")) { - fs.lutimes = function (path, at, mt, cb) { - fs.open(path, constants.O_SYMLINK, function (er, fd) { - cb = cb || noop - if (er) return cb(er) - fs.futimes(fd, at, mt, function (er) { - fs.close(fd, function (er2) { - return cb(er || er2) - }) - }) - }) - } - - fs.lutimesSync = function (path, at, mt) { - var fd = fs.openSync(path, constants.O_SYMLINK) - var ret - var threw = true - try { - ret = fs.futimesSync(fd, at, mt) - threw = false - } finally { - if (threw) { - try { - fs.closeSync(fd) - } catch (er) {} - } else { - fs.closeSync(fd) - } - } - return ret - } - - } else { - fs.lutimes = function (_a, _b, _c, cb) { process.nextTick(cb) } - fs.lutimesSync = function () {} - } -} - -function chownFix (orig) { - if (!orig) return orig - return function (target, uid, gid, cb) { - return orig.call(fs, target, uid, gid, function (er, res) { - if (chownErOk(er)) er = null - cb(er, res) - }) - } -} - -function chownFixSync (orig) { - if (!orig) return orig - return function (target, uid, gid) { - try { - return orig.call(fs, target, uid, gid) - } catch (er) { - if (!chownErOk(er)) throw er - } - } -} - -// ENOSYS means that the fs doesn't support the op. Just ignore -// that, because it doesn't matter. -// -// if there's no getuid, or if getuid() is something other -// than 0, and the error is EINVAL or EPERM, then just ignore -// it. -// -// This specific case is a silent failure in cp, install, tar, -// and most other unix tools that manage permissions. -// -// When running as root, or if other types of errors are -// encountered, then it's strict. -function chownErOk (er) { - if (!er) - return true - - if (er.code === "ENOSYS") - return true - - var nonroot = !process.getuid || process.getuid() !== 0 - if (nonroot) { - if (er.code === "EINVAL" || er.code === "EPERM") - return true - } - - return false -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/.npmignore deleted file mode 100644 index 7e17cf19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/.npmignore +++ /dev/null @@ -1,32 +0,0 @@ -# Logs -logs -*.log - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directory -# Commenting this out is preferred by some people, see -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- -node_modules - -# Users Environment Variables -.lock-wscript - -# Editor temp files -*~ -.#* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/LICENSE deleted file mode 100644 index d42e25e9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 2014, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/README.md deleted file mode 100644 index 5a03e599..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/README.md +++ /dev/null @@ -1,43 +0,0 @@ -has-unicode -=========== - -Try to guess if your terminal supports unicode - -```javascript -var hasUnicode = require("has-unicode") - -if (hasUnicode()) { - // the terminal probably has unicode support -} -``` -```javascript -var hasUnicode = require("has-unicode").tryHarder -hasUnicode(function(unicodeSupported) { - if (unicodeSupported) { - // the terminal probably has unicode support - } -}) -``` - -## Detecting Unicode - -What we actually detect is UTF-8 support, as that's what Node itself supports. -If you have a UTF-16 locale then you won't be detected as unicode capable. - -### Windows - -Since at least Windows 7, `cmd` and `powershell` have been unicode capable, -but unfortunately even then it's not guaranteed. In many localizations it -still uses legacy code pages and there's no facility short of running -programs or linking C++ that will let us detect this. As such, we -report any Windows installation as NOT unicode capable, and recommend -that you encourage your users to override this via config. - -### Unix Like Operating Systems - -We look at the environment variables `LC_ALL`, `LC_CTYPE`, and `LANG` in -that order. For `LC_ALL` and `LANG`, it looks for `.UTF-8` in the value. -For `LC_CTYPE` it looks to see if the value is `UTF-8`. This is sufficient -for most POSIX systems. While locale data can be put in `/etc/locale.conf` -as well, AFAIK it's always copied into the environment. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/index.js deleted file mode 100644 index 9bf537b1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/index.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict" -var os = require("os") - -var hasUnicode = module.exports = function () { - // Recent Win32 platforms (>XP) CAN support unicode in the console but - // don't have to, and in non-english locales often use traditional local - // code pages. There's no way, short of windows system calls or execing - // the chcp command line program to figure this out. As such, we default - // this to false and encourage your users to override it via config if - // appropriate. - if (os.type() == "Windows_NT") { return false } - - var isUTF8 = /[.]UTF-8/ - if (isUTF8.test(process.env.LC_ALL) - || process.env.LC_CTYPE == 'UTF-8' - || isUTF8.test(process.env.LANG)) { - return true - } - - return false -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/package.json deleted file mode 100644 index 924e3b7a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "_args": [ - [ - "has-unicode@2.0.0", - "/Users/rebecca/code/npm" - ] - ], - "_from": "has-unicode@2.0.0", - "_id": "has-unicode@2.0.0", - "_inCache": true, - "_installable": true, - "_location": "/has-unicode", - "_nodeVersion": "4.2.2", - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "2.14.7", - "_phantomChildren": {}, - "_requested": { - "name": "has-unicode", - "raw": "has-unicode@2.0.0", - "rawSpec": "2.0.0", - "scope": null, - "spec": "2.0.0", - "type": "version" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "file:../has-unicode", - "_shasum": "a3cd96c307ba41d559c5a2ee408c12a11c4c2ec3", - "_shrinkwrap": null, - "_spec": "has-unicode@2.0.0", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "me@re-becca.org", - "name": "Rebecca Turner" - }, - "bugs": { - "url": "https://github.com/iarna/has-unicode/issues" - }, - "dependencies": {}, - "description": "Try to guess if your terminal supports unicode", - "devDependencies": { - "require-inject": "^1.3.0", - "tap": "^2.3.1" - }, - "directories": {}, - "dist": { - "shasum": "a3cd96c307ba41d559c5a2ee408c12a11c4c2ec3", - "tarball": "http://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz" - }, - "gitHead": "fdd5de141a5564bdb5bc991d951209da40f6a598", - "homepage": "https://github.com/iarna/has-unicode", - "keywords": [ - "terminal", - "unicode" - ], - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - } - ], - "name": "has-unicode", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/iarna/has-unicode.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "2.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/test/index.js deleted file mode 100644 index cbdfda33..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/has-unicode/test/index.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict" -var test = require("tap").test -var requireInject = require("require-inject") - -test("Windows", function (t) { - t.plan(1) - var hasUnicode = requireInject("../index.js", { - os: { type: function () { return "Windows_NT" } } - }) - t.is(hasUnicode(), false, "Windows is assumed NOT to be unicode aware") -}) -test("Unix Env", function (t) { - t.plan(3) - var hasUnicode = requireInject("../index.js", { - os: { type: function () { return "Linux" } }, - child_process: { exec: function (cmd,cb) { cb(new Error("not available")) } } - }) - process.env.LANG = "en_US.UTF-8" - process.env.LC_ALL = null - t.is(hasUnicode(), true, "Linux with a UTF8 language") - process.env.LANG = null - process.env.LC_ALL = "en_US.UTF-8" - t.is(hasUnicode(), true, "Linux with UTF8 locale") - process.env.LC_ALL = null - t.is(hasUnicode(), false, "Linux without UTF8 language or locale") -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/.npmignore deleted file mode 100644 index efab07fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -test -.travis.yml diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/LICENSE deleted file mode 100644 index 45055763..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/README.md deleted file mode 100644 index 1db47dd6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# hosted-git-info - -This will let you identify and transform various git hosts URLs between -protocols. It also can tell you what the URL is for the raw path for -particular file for direct access without git. - -## Usage - -```javascript -var hostedGitInfo = require("hosted-git-info") -var info = hostedGitInfo.fromUrl("git@github.com:npm/hosted-git-info.git") -/* info looks like: -{ - type: "github", - domain: "github.com", - user: "npm", - project: "hosted-git-info" -} -*/ -``` - -If the URL can't be matched with a git host, `null` will be returned. We -can match git, ssh and https urls. Additionally, we can match ssh connect -strings (`git@github.com:npm/hosted-git-info`) and shortcuts (eg, -`github:npm/hosted-git-info`). Github specifically, is detected in the case -of a third, unprefixed, form: `npm/hosted-git-info`. - -If it does match, the returned object has properties of: - -* info.type -- The short name of the service -* info.domain -- The domain for git protocol use -* info.user -- The name of the user/org on the git host -* info.project -- The name of the project on the git host - -And methods of: - -* info.file(path) - -Given the path of a file relative to the repository, returns a URL for -directly fetching it from the githost. If no committish was set then -`master` will be used as the default. - -For example `hostedGitInfo.fromUrl("git@github.com:npm/hosted-git-info.git#v1.0.0").file("package.json")` -would return `https://raw.githubusercontent.com/npm/hosted-git-info/v1.0.0/package.json` - -* info.shortcut() - -eg, `github:npm/hosted-git-info` - -* info.browse() - -eg, `https://github.com/npm/hosted-git-info/tree/v1.2.0` - -* info.bugs() - -eg, `https://github.com/npm/hosted-git-info/issues` - -* info.docs() - -eg, `https://github.com/npm/hosted-git-info/tree/v1.2.0#readme` - -* info.https() - -eg, `git+https://github.com/npm/hosted-git-info.git` - -* info.sshurl() - -eg, `git+ssh://git@github.com/npm/hosted-git-info.git` - -* info.ssh() - -eg, `git@github.com:npm/hosted-git-info.git` - -* info.path() - -eg, `npm/hosted-git-info` - -* info.getDefaultRepresentation() - -Returns the default output type. The default output type is based on the -string you passed in to be parsed - -* info.toString() - -Uses the getDefaultRepresentation to call one of the other methods to get a URL for -this resource. As such `hostedGitInfo.fromUrl(url).toString()` will give -you a normalized version of the URL that still uses the same protocol. - -Shortcuts will still be returned as shortcuts, but the special case github -form of `org/project` will be normalized to `github:org/project`. - -SSH connect strings will be normalized into `git+ssh` URLs. - - -## Supported hosts - -Currently this supports Github, Bitbucket and Gitlab. Pull requests for -additional hosts welcome. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/git-host-info.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/git-host-info.js deleted file mode 100644 index 22343335..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/git-host-info.js +++ /dev/null @@ -1,64 +0,0 @@ -'use strict' - -var gitHosts = module.exports = { - github: { - // First two are insecure and generally shouldn't be used any more, but - // they are still supported. - 'protocols': [ 'git', 'http', 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'github.com', - 'treepath': 'tree', - 'filetemplate': 'https://{auth@}raw.githubusercontent.com/{user}/{project}/{committish}/{path}', - 'bugstemplate': 'https://{domain}/{user}/{project}/issues', - 'gittemplate': 'git://{auth@}{domain}/{user}/{project}.git{#committish}' - }, - bitbucket: { - 'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'bitbucket.org', - 'treepath': 'src' - }, - gitlab: { - 'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'gitlab.com', - 'treepath': 'tree', - 'docstemplate': 'https://{domain}/{user}/{project}{/tree/committish}#README', - 'bugstemplate': 'https://{domain}/{user}/{project}/issues' - }, - gist: { - 'protocols': [ 'git', 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'gist.github.com', - 'pathmatch': /^[/](?:([^/]+)[/])?([a-z0-9]+)(?:[.]git)?$/, - 'filetemplate': 'https://gist.githubusercontent.com/{user}/{project}/raw{/committish}/{path}', - 'bugstemplate': 'https://{domain}/{project}', - 'gittemplate': 'git://{domain}/{project}.git{#committish}', - 'sshtemplate': 'git@{domain}:/{project}.git{#committish}', - 'sshurltemplate': 'git+ssh://git@{domain}/{project}.git{#committish}', - 'browsetemplate': 'https://{domain}/{project}{/committish}', - 'docstemplate': 'https://{domain}/{project}{/committish}', - 'httpstemplate': 'git+https://{domain}/{project}.git{#committish}', - 'shortcuttemplate': '{type}:{project}{#committish}', - 'pathtemplate': '{project}{#committish}' - } -} - -var gitHostDefaults = { - 'sshtemplate': 'git@{domain}:{user}/{project}.git{#committish}', - 'sshurltemplate': 'git+ssh://git@{domain}/{user}/{project}.git{#committish}', - 'browsetemplate': 'https://{domain}/{user}/{project}{/tree/committish}', - 'docstemplate': 'https://{domain}/{user}/{project}{/tree/committish}#readme', - 'httpstemplate': 'git+https://{auth@}{domain}/{user}/{project}.git{#committish}', - 'filetemplate': 'https://{domain}/{user}/{project}/raw/{committish}/{path}', - 'shortcuttemplate': '{type}:{user}/{project}{#committish}', - 'pathtemplate': '{user}/{project}{#committish}', - 'pathmatch': /^[/]([^/]+)[/]([^/]+?)(?:[.]git)?$/ -} - -Object.keys(gitHosts).forEach(function (name) { - Object.keys(gitHostDefaults).forEach(function (key) { - if (gitHosts[name][key]) return - gitHosts[name][key] = gitHostDefaults[key] - }) - gitHosts[name].protocols_re = RegExp('^(' + - gitHosts[name].protocols.map(function (protocol) { - return protocol.replace(/([\\+*{}()\[\]$^|])/g, '\\$1') - }).join('|') + '):$') -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/git-host.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/git-host.js deleted file mode 100644 index ea31380a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/git-host.js +++ /dev/null @@ -1,96 +0,0 @@ -'use strict' -var gitHosts = require('./git-host-info.js') - -var GitHost = module.exports = function (type, user, auth, project, committish, defaultRepresentation) { - var gitHostInfo = this - gitHostInfo.type = type - Object.keys(gitHosts[type]).forEach(function (key) { - gitHostInfo[key] = gitHosts[type][key] - }) - gitHostInfo.user = user - gitHostInfo.auth = auth - gitHostInfo.project = project - gitHostInfo.committish = committish - gitHostInfo.default = defaultRepresentation -} -GitHost.prototype = {} - -GitHost.prototype.hash = function () { - return this.committish ? '#' + this.committish : '' -} - -GitHost.prototype._fill = function (template, vars) { - if (!template) return - if (!vars) vars = {} - var self = this - Object.keys(this).forEach(function (key) { - if (self[key] != null && vars[key] == null) vars[key] = self[key] - }) - var rawAuth = vars.auth - var rawComittish = vars.committish - Object.keys(vars).forEach(function (key) { - vars[key] = encodeURIComponent(vars[key]) - }) - vars['auth@'] = rawAuth ? rawAuth + '@' : '' - vars['#committish'] = rawComittish ? '#' + rawComittish : '' - vars['/tree/committish'] = vars.committish - ? '/' + vars.treepath + '/' + vars.committish - : '' - vars['/committish'] = vars.committish ? '/' + vars.committish : '' - vars.committish = vars.committish || 'master' - var res = template - Object.keys(vars).forEach(function (key) { - res = res.replace(new RegExp('[{]' + key + '[}]', 'g'), vars[key]) - }) - return res -} - -GitHost.prototype.ssh = function () { - return this._fill(this.sshtemplate) -} - -GitHost.prototype.sshurl = function () { - return this._fill(this.sshurltemplate) -} - -GitHost.prototype.browse = function () { - return this._fill(this.browsetemplate) -} - -GitHost.prototype.docs = function () { - return this._fill(this.docstemplate) -} - -GitHost.prototype.bugs = function () { - return this._fill(this.bugstemplate) -} - -GitHost.prototype.https = function () { - return this._fill(this.httpstemplate) -} - -GitHost.prototype.git = function () { - return this._fill(this.gittemplate) -} - -GitHost.prototype.shortcut = function () { - return this._fill(this.shortcuttemplate) -} - -GitHost.prototype.path = function () { - return this._fill(this.pathtemplate) -} - -GitHost.prototype.file = function (P) { - return this._fill(this.filetemplate, { - path: P.replace(/^[/]+/g, '') - }) -} - -GitHost.prototype.getDefaultRepresentation = function () { - return this.default -} - -GitHost.prototype.toString = function () { - return (this[this.default] || this.sshurl).call(this) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/index.js deleted file mode 100644 index 453ce87d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/index.js +++ /dev/null @@ -1,103 +0,0 @@ -'use strict' -var url = require('url') -var gitHosts = require('./git-host-info.js') -var GitHost = module.exports = require('./git-host.js') - -var protocolToRepresentationMap = { - 'git+ssh': 'sshurl', - 'git+https': 'https', - 'ssh': 'sshurl', - 'git': 'git' -} - -function protocolToRepresentation (protocol) { - if (protocol.substr(-1) === ':') protocol = protocol.slice(0, -1) - return protocolToRepresentationMap[protocol] || protocol -} - -var authProtocols = { - 'git:': true, - 'https:': true, - 'git+https:': true, - 'http:': true, - 'git+http:': true -} - -module.exports.fromUrl = function (giturl) { - if (giturl == null || giturl === '') return - var url = fixupUnqualifiedGist( - isGitHubShorthand(giturl) ? 'github:' + giturl : giturl - ) - var parsed = parseGitUrl(url) - var matches = Object.keys(gitHosts).map(function (gitHostName) { - var gitHostInfo = gitHosts[gitHostName] - var auth = null - if (parsed.auth && authProtocols[parsed.protocol]) { - auth = decodeURIComponent(parsed.auth) - } - var committish = parsed.hash ? decodeURIComponent(parsed.hash.substr(1)) : null - var user = null - var project = null - var defaultRepresentation = null - if (parsed.protocol === gitHostName + ':') { - user = decodeURIComponent(parsed.host) - project = parsed.path && decodeURIComponent(parsed.path.replace(/^[/](.*?)(?:[.]git)?$/, '$1')) - defaultRepresentation = 'shortcut' - } else { - if (parsed.host !== gitHostInfo.domain) return - if (!gitHostInfo.protocols_re.test(parsed.protocol)) return - var pathmatch = gitHostInfo.pathmatch - var matched = parsed.path.match(pathmatch) - if (!matched) return - if (matched[1] != null) user = decodeURIComponent(matched[1]) - if (matched[2] != null) project = decodeURIComponent(matched[2]) - defaultRepresentation = protocolToRepresentation(parsed.protocol) - } - return new GitHost(gitHostName, user, auth, project, committish, defaultRepresentation) - }).filter(function (gitHostInfo) { return gitHostInfo }) - if (matches.length !== 1) return - return matches[0] -} - -function isGitHubShorthand (arg) { - // Note: This does not fully test the git ref format. - // See https://www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html - // - // The only way to do this properly would be to shell out to - // git-check-ref-format, and as this is a fast sync function, - // we don't want to do that. Just let git fail if it turns - // out that the commit-ish is invalid. - // GH usernames cannot start with . or - - return /^[^:@%/\s.-][^:@%/\s]*[/][^:@\s/%]+(?:#.*)?$/.test(arg) -} - -function fixupUnqualifiedGist (giturl) { - // necessary for round-tripping gists - var parsed = url.parse(giturl) - if (parsed.protocol === 'gist:' && parsed.host && !parsed.path) { - return parsed.protocol + '/' + parsed.host - } else { - return giturl - } -} - -function parseGitUrl (giturl) { - if (typeof giturl !== 'string') giturl = '' + giturl - var matched = giturl.match(/^([^@]+)@([^:]+):[/]?((?:[^/]+[/])?[^/]+?)(?:[.]git)?(#.*)?$/) - if (!matched) return url.parse(giturl) - return { - protocol: 'git+ssh:', - slashes: true, - auth: matched[1], - host: matched[2], - port: null, - hostname: matched[2], - hash: matched[4], - search: null, - query: null, - pathname: '/' + matched[3], - path: '/' + matched[3], - href: 'git+ssh://' + matched[1] + '@' + matched[2] + - '/' + matched[3] + (matched[4] || '') - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/package.json deleted file mode 100644 index 7c847551..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/hosted-git-info/package.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "_args": [ - [ - { - "name": "hosted-git-info", - "raw": "hosted-git-info@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "/Users/zkat/Documents/code/npm" - ] - ], - "_from": "hosted-git-info@latest", - "_id": "hosted-git-info@2.1.5", - "_inCache": true, - "_installable": true, - "_location": "/hosted-git-info", - "_nodeVersion": "5.10.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/hosted-git-info-2.1.5.tgz_1463518889246_0.20443619322031736" - }, - "_npmUser": { - "email": "kat@sykosomatic.org", - "name": "zkat" - }, - "_npmVersion": "3.9.1", - "_phantomChildren": {}, - "_requested": { - "name": "hosted-git-info", - "raw": "hosted-git-info@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/", - "/normalize-package-data", - "/npm-package-arg" - ], - "_resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", - "_shasum": "0ba81d90da2e25ab34a332e6ec77936e1598118b", - "_shrinkwrap": null, - "_spec": "hosted-git-info@latest", - "_where": "/Users/zkat/Documents/code/npm", - "author": { - "email": "me@re-becca.org", - "name": "Rebecca Turner", - "url": "http://re-becca.org" - }, - "bugs": { - "url": "https://github.com/npm/hosted-git-info/issues" - }, - "dependencies": {}, - "description": "Provides metadata and conversions from repository urls for Github, Bitbucket and Gitlab", - "devDependencies": { - "standard": "^3.3.2", - "tap": "^0.4.13" - }, - "directories": {}, - "dist": { - "shasum": "0ba81d90da2e25ab34a332e6ec77936e1598118b", - "tarball": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz" - }, - "gitHead": "4e6bb323a97a57c18e6b4b891527e26154d04fbe", - "homepage": "https://github.com/npm/hosted-git-info", - "keywords": [ - "git", - "github", - "bitbucket", - "gitlab" - ], - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "email": "me@re-becca.org", - "name": "iarna" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "hosted-git-info", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/hosted-git-info.git" - }, - "scripts": { - "test": "standard && tap test/*.js" - }, - "version": "2.1.5" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/LICENSE deleted file mode 100644 index 19d5f4bc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Nadav Ivgi - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/README.md deleted file mode 100644 index 0940763f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# iferr - -Higher-order functions for easier error handling. - -`if (err) return cb(err);` be gone! - -## Install -```bash -npm install iferr -``` - -## Use - -### JavaScript example -```js -var iferr = require('iferr'); - -function get_friends_count(id, cb) { - User.load_user(id, iferr(cb, function(user) { - user.load_friends(iferr(cb, function(friends) { - cb(null, friends.length); - })); - })); -} -``` - -### CoffeeScript example -```coffee -iferr = require 'iferr' - -get_friends_count = (id, cb) -> - User.load_user id, iferr cb, (user) -> - user.load_friends iferr cb, (friends) -> - cb null, friends.length -``` - -(TODO: document tiferr, throwerr and printerr) - -## License -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/index.coffee b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/index.coffee deleted file mode 100644 index da6d0071..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/index.coffee +++ /dev/null @@ -1,24 +0,0 @@ -# Delegates to `succ` on sucecss or to `fail` on error -# ex: Thing.load 123, iferr cb, (thing) -> ... -iferr = (fail, succ) -> (err, a...) -> - if err? then fail err - else succ? a... - -# Like iferr, but also catches errors thrown from `succ` and passes to `fail` -tiferr = (fail, succ) -> iferr fail, (a...) -> - try succ a... - catch err then fail err - -# Delegate to the success function on success, or throw the error otherwise -# ex: Thing.load 123, throwerr (thing) -> ... -throwerr = iferr.bind null, (err) -> throw err - -# Prints errors when one is passed, or does nothing otherwise -# ex: thing.save printerr -printerr = iferr (err) -> console.error err.stack or err - -module.exports = exports = iferr -exports.iferr = iferr -exports.tiferr = tiferr -exports.throwerr = throwerr -exports.printerr = printerr diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/index.js deleted file mode 100644 index 78fce3d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/index.js +++ /dev/null @@ -1,49 +0,0 @@ -// Generated by CoffeeScript 1.7.1 -(function() { - var exports, iferr, printerr, throwerr, tiferr, - __slice = [].slice; - - iferr = function(fail, succ) { - return function() { - var a, err; - err = arguments[0], a = 2 <= arguments.length ? __slice.call(arguments, 1) : []; - if (err != null) { - return fail(err); - } else { - return typeof succ === "function" ? succ.apply(null, a) : void 0; - } - }; - }; - - tiferr = function(fail, succ) { - return iferr(fail, function() { - var a, err; - a = 1 <= arguments.length ? __slice.call(arguments, 0) : []; - try { - return succ.apply(null, a); - } catch (_error) { - err = _error; - return fail(err); - } - }); - }; - - throwerr = iferr.bind(null, function(err) { - throw err; - }); - - printerr = iferr(function(err) { - return console.error(err.stack || err); - }); - - module.exports = exports = iferr; - - exports.iferr = iferr; - - exports.tiferr = tiferr; - - exports.throwerr = throwerr; - - exports.printerr = printerr; - -}).call(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/package.json deleted file mode 100644 index 9017857c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "iferr", - "version": "0.1.5", - "description": "Higher-order functions for easier error handling", - "main": "index.js", - "scripts": { - "test": "mocha", - "prepublish": "coffee -c index.coffee" - }, - "repository": { - "type": "git", - "url": "https://github.com/shesek/iferr" - }, - "keywords": [ - "error", - "errors" - ], - "author": { - "name": "Nadav Ivgi" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/shesek/iferr/issues" - }, - "homepage": "https://github.com/shesek/iferr", - "devDependencies": { - "coffee-script": "^1.7.1", - "mocha": "^1.18.2" - }, - "_id": "iferr@0.1.5", - "dist": { - "shasum": "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501", - "tarball": "http://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" - }, - "_from": "iferr@>=0.1.5 <0.2.0", - "_npmVersion": "1.4.4", - "_npmUser": { - "name": "nadav", - "email": "npm@shesek.info" - }, - "maintainers": [ - { - "name": "nadav", - "email": "npm@shesek.info" - } - ], - "directories": {}, - "_shasum": "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501", - "_resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/test/index.coffee b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/test/index.coffee deleted file mode 100644 index be0bc56f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/test/index.coffee +++ /dev/null @@ -1,42 +0,0 @@ -{ iferr, tiferr, throwerr } = require '../index.coffee' -{ equal: eq, throws } = require 'assert' - -invoke_fail = (cb) -> cb new Error 'callback error' -invoke_succ = (cb) -> cb null -throw_error = -> throw new Error 'thrown' - -describe 'iferr', -> - it 'calls the error callback on errors', (done) -> - invoke_fail iferr( - (err) -> - eq err.message, 'callback error' - do done - -> - done new Error 'shouldn\'t call the success callback' - ) - - it 'calls the success callback on success', (done) -> - invoke_succ iferr( - -> done new Error 'shouldn\'t call the error callback' - done - ) - -describe 'tiferr', -> - it 'catches errors in the success callback', (done) -> - invoke_succ tiferr( - (err) -> - eq err.message, 'thrown' - do done - throw_error - ) - -describe 'throwerr', -> - it 'throws errors passed to the callback', (done)-> - try invoke_fail throwerr -> - done 'shouldn\'t call the success callback' - catch err - eq err.message, 'callback error' - do done - - it 'delegates to the success callback otherwise', (done) -> - invoke_succ throwerr done diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/test/mocha.opts b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/test/mocha.opts deleted file mode 100644 index 019defcf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/iferr/test/mocha.opts +++ /dev/null @@ -1,2 +0,0 @@ ---compilers coffee:coffee-script/register ---reporter spec diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/README.md deleted file mode 100644 index f35b20a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/README.md +++ /dev/null @@ -1,122 +0,0 @@ -iMurmurHash.js -============== - -An incremental implementation of the MurmurHash3 (32-bit) hashing algorithm for JavaScript based on [Gary Court's implementation](https://github.com/garycourt/murmurhash-js) with [kazuyukitanimura's modifications](https://github.com/kazuyukitanimura/murmurhash-js). - -This version works significantly faster than the non-incremental version if you need to hash many small strings into a single hash, since string concatenation (to build the single string to pass the non-incremental version) is fairly costly. In one case tested, using the incremental version was about 50% faster than concatenating 5-10 strings and then hashing. - -Installation ------------- - -To use iMurmurHash in the browser, [download the latest version](https://raw.github.com/jensyt/imurmurhash-js/master/imurmurhash.min.js) and include it as a script on your site. - -```html - - -``` - ---- - -To use iMurmurHash in Node.js, install the module using NPM: - -```bash -npm install imurmurhash -``` - -Then simply include it in your scripts: - -```javascript -MurmurHash3 = require('imurmurhash'); -``` - -Quick Example -------------- - -```javascript -// Create the initial hash -var hashState = MurmurHash3('string'); - -// Incrementally add text -hashState.hash('more strings'); -hashState.hash('even more strings'); - -// All calls can be chained if desired -hashState.hash('and').hash('some').hash('more'); - -// Get a result -hashState.result(); -// returns 0xe4ccfe6b -``` - -Functions ---------- - -### MurmurHash3 ([string], [seed]) -Get a hash state object, optionally initialized with the given _string_ and _seed_. _Seed_ must be a positive integer if provided. Calling this function without the `new` keyword will return a cached state object that has been reset. This is safe to use as long as the object is only used from a single thread and no other hashes are created while operating on this one. If this constraint cannot be met, you can use `new` to create a new state object. For example: - -```javascript -// Use the cached object, calling the function again will return the same -// object (but reset, so the current state would be lost) -hashState = MurmurHash3(); -... - -// Create a new object that can be safely used however you wish. Calling the -// function again will simply return a new state object, and no state loss -// will occur, at the cost of creating more objects. -hashState = new MurmurHash3(); -``` - -Both methods can be mixed however you like if you have different use cases. - ---- - -### MurmurHash3.prototype.hash (string) -Incrementally add _string_ to the hash. This can be called as many times as you want for the hash state object, including after a call to `result()`. Returns `this` so calls can be chained. - ---- - -### MurmurHash3.prototype.result () -Get the result of the hash as a 32-bit positive integer. This performs the tail and finalizer portions of the algorithm, but does not store the result in the state object. This means that it is perfectly safe to get results and then continue adding strings via `hash`. - -```javascript -// Do the whole string at once -MurmurHash3('this is a test string').result(); -// 0x70529328 - -// Do part of the string, get a result, then the other part -var m = MurmurHash3('this is a'); -m.result(); -// 0xbfc4f834 -m.hash(' test string').result(); -// 0x70529328 (same as above) -``` - ---- - -### MurmurHash3.prototype.reset ([seed]) -Reset the state object for reuse, optionally using the given _seed_ (defaults to 0 like the constructor). Returns `this` so calls can be chained. - ---- - -License (MIT) -------------- -Copyright (c) 2013 Gary Court, Jens Taylor - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/imurmurhash.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/imurmurhash.js deleted file mode 100644 index e63146a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/imurmurhash.js +++ /dev/null @@ -1,138 +0,0 @@ -/** - * @preserve - * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) - * - * @author Jens Taylor - * @see http://github.com/homebrewing/brauhaus-diff - * @author Gary Court - * @see http://github.com/garycourt/murmurhash-js - * @author Austin Appleby - * @see http://sites.google.com/site/murmurhash/ - */ -(function(){ - var cache; - - // Call this function without `new` to use the cached object (good for - // single-threaded environments), or with `new` to create a new object. - // - // @param {string} key A UTF-16 or ASCII string - // @param {number} seed An optional positive integer - // @return {object} A MurmurHash3 object for incremental hashing - function MurmurHash3(key, seed) { - var m = this instanceof MurmurHash3 ? this : cache; - m.reset(seed) - if (typeof key === 'string' && key.length > 0) { - m.hash(key); - } - - if (m !== this) { - return m; - } - }; - - // Incrementally add a string to this hash - // - // @param {string} key A UTF-16 or ASCII string - // @return {object} this - MurmurHash3.prototype.hash = function(key) { - var h1, k1, i, top, len; - - len = key.length; - this.len += len; - - k1 = this.k1; - i = 0; - switch (this.rem) { - case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0; - case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0; - case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0; - case 3: - k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0; - k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0; - } - - this.rem = (len + this.rem) & 3; // & 3 is same as % 4 - len -= this.rem; - if (len > 0) { - h1 = this.h1; - while (1) { - k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; - k1 = (k1 << 15) | (k1 >>> 17); - k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; - - h1 ^= k1; - h1 = (h1 << 13) | (h1 >>> 19); - h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff; - - if (i >= len) { - break; - } - - k1 = ((key.charCodeAt(i++) & 0xffff)) ^ - ((key.charCodeAt(i++) & 0xffff) << 8) ^ - ((key.charCodeAt(i++) & 0xffff) << 16); - top = key.charCodeAt(i++); - k1 ^= ((top & 0xff) << 24) ^ - ((top & 0xff00) >> 8); - } - - k1 = 0; - switch (this.rem) { - case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16; - case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8; - case 1: k1 ^= (key.charCodeAt(i) & 0xffff); - } - - this.h1 = h1; - } - - this.k1 = k1; - return this; - }; - - // Get the result of this hash - // - // @return {number} The 32-bit hash - MurmurHash3.prototype.result = function() { - var k1, h1; - - k1 = this.k1; - h1 = this.h1; - - if (k1 > 0) { - k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; - k1 = (k1 << 15) | (k1 >>> 17); - k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; - h1 ^= k1; - } - - h1 ^= this.len; - - h1 ^= h1 >>> 16; - h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff; - h1 ^= h1 >>> 13; - h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff; - h1 ^= h1 >>> 16; - - return h1 >>> 0; - }; - - // Reset the hash object for reuse - // - // @param {number} seed An optional positive integer - MurmurHash3.prototype.reset = function(seed) { - this.h1 = typeof seed === 'number' ? seed : 0; - this.rem = this.k1 = this.len = 0; - return this; - }; - - // A cached object to use. This can be safely used if you're in a single- - // threaded environment, otherwise you need to create new hashes to use. - cache = new MurmurHash3(); - - if (typeof(module) != 'undefined') { - module.exports = MurmurHash3; - } else { - this.MurmurHash3 = MurmurHash3; - } -}()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/imurmurhash.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/imurmurhash.min.js deleted file mode 100644 index dc0ee88d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/imurmurhash.min.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * @preserve - * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) - * - * @author Jens Taylor - * @see http://github.com/homebrewing/brauhaus-diff - * @author Gary Court - * @see http://github.com/garycourt/murmurhash-js - * @author Austin Appleby - * @see http://sites.google.com/site/murmurhash/ - */ -!function(){function t(h,r){var s=this instanceof t?this:e;return s.reset(r),"string"==typeof h&&h.length>0&&s.hash(h),s!==this?s:void 0}var e;t.prototype.hash=function(t){var e,h,r,s,i;switch(i=t.length,this.len+=i,h=this.k1,r=0,this.rem){case 0:h^=i>r?65535&t.charCodeAt(r++):0;case 1:h^=i>r?(65535&t.charCodeAt(r++))<<8:0;case 2:h^=i>r?(65535&t.charCodeAt(r++))<<16:0;case 3:h^=i>r?(255&t.charCodeAt(r))<<24:0,h^=i>r?(65280&t.charCodeAt(r++))>>8:0}if(this.rem=3&i+this.rem,i-=this.rem,i>0){for(e=this.h1;;){if(h=4294967295&11601*h+3432906752*(65535&h),h=h<<15|h>>>17,h=4294967295&13715*h+461832192*(65535&h),e^=h,e=e<<13|e>>>19,e=4294967295&5*e+3864292196,r>=i)break;h=65535&t.charCodeAt(r++)^(65535&t.charCodeAt(r++))<<8^(65535&t.charCodeAt(r++))<<16,s=t.charCodeAt(r++),h^=(255&s)<<24^(65280&s)>>8}switch(h=0,this.rem){case 3:h^=(65535&t.charCodeAt(r+2))<<16;case 2:h^=(65535&t.charCodeAt(r+1))<<8;case 1:h^=65535&t.charCodeAt(r)}this.h1=e}return this.k1=h,this},t.prototype.result=function(){var t,e;return t=this.k1,e=this.h1,t>0&&(t=4294967295&11601*t+3432906752*(65535&t),t=t<<15|t>>>17,t=4294967295&13715*t+461832192*(65535&t),e^=t),e^=this.len,e^=e>>>16,e=4294967295&51819*e+2246770688*(65535&e),e^=e>>>13,e=4294967295&44597*e+3266445312*(65535&e),e^=e>>>16,e>>>0},t.prototype.reset=function(t){return this.h1="number"==typeof t?t:0,this.rem=this.k1=this.len=0,this},e=new t,"undefined"!=typeof module?module.exports=t:this.MurmurHash3=t}(); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/package.json deleted file mode 100644 index a8d0b174..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/imurmurhash/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "_args": [ - [ - "imurmurhash@^0.1.4", - "/Users/ogd/Documents/projects/npm/npm/node_modules/fs-write-stream-atomic" - ] - ], - "_from": "imurmurhash@>=0.1.4 <0.2.0", - "_id": "imurmurhash@0.1.4", - "_inCache": true, - "_installable": true, - "_location": "/imurmurhash", - "_npmUser": { - "email": "jensyt@gmail.com", - "name": "jensyt" - }, - "_npmVersion": "1.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "imurmurhash", - "raw": "imurmurhash@^0.1.4", - "rawSpec": "^0.1.4", - "scope": null, - "spec": ">=0.1.4 <0.2.0", - "type": "range" - }, - "_requiredBy": [ - "/fs-write-stream-atomic" - ], - "_resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "_shasum": "9218b9b2b928a238b13dc4fb6b6d576f231453ea", - "_shrinkwrap": null, - "_spec": "imurmurhash@^0.1.4", - "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/fs-write-stream-atomic", - "author": { - "email": "jensyt@gmail.com", - "name": "Jens Taylor", - "url": "https://github.com/homebrewing" - }, - "bugs": { - "url": "https://github.com/jensyt/imurmurhash-js/issues" - }, - "dependencies": {}, - "description": "An incremental implementation of MurmurHash3", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "9218b9b2b928a238b13dc4fb6b6d576f231453ea", - "tarball": "http://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - }, - "engines": { - "node": ">=0.8.19" - }, - "files": [ - "README.md", - "imurmurhash.js", - "imurmurhash.min.js", - "package.json" - ], - "homepage": "https://github.com/jensyt/imurmurhash-js", - "keywords": [ - "hash", - "incremental", - "murmur", - "murmurhash", - "murmurhash3" - ], - "license": "MIT", - "main": "imurmurhash.js", - "maintainers": [ - { - "name": "jensyt", - "email": "jensyt@gmail.com" - } - ], - "name": "imurmurhash", - "optionalDependencies": {}, - "readme": "iMurmurHash.js\n==============\n\nAn incremental implementation of the MurmurHash3 (32-bit) hashing algorithm for JavaScript based on [Gary Court's implementation](https://github.com/garycourt/murmurhash-js) with [kazuyukitanimura's modifications](https://github.com/kazuyukitanimura/murmurhash-js).\n\nThis version works significantly faster than the non-incremental version if you need to hash many small strings into a single hash, since string concatenation (to build the single string to pass the non-incremental version) is fairly costly. In one case tested, using the incremental version was about 50% faster than concatenating 5-10 strings and then hashing.\n\nInstallation\n------------\n\nTo use iMurmurHash in the browser, [download the latest version](https://raw.github.com/jensyt/imurmurhash-js/master/imurmurhash.min.js) and include it as a script on your site.\n\n```html\n\n\n```\n\n---\n\nTo use iMurmurHash in Node.js, install the module using NPM:\n\n```bash\nnpm install imurmurhash\n```\n\nThen simply include it in your scripts:\n\n```javascript\nMurmurHash3 = require('imurmurhash');\n```\n\nQuick Example\n-------------\n\n```javascript\n// Create the initial hash\nvar hashState = MurmurHash3('string');\n\n// Incrementally add text\nhashState.hash('more strings');\nhashState.hash('even more strings');\n\n// All calls can be chained if desired\nhashState.hash('and').hash('some').hash('more');\n\n// Get a result\nhashState.result();\n// returns 0xe4ccfe6b\n```\n\nFunctions\n---------\n\n### MurmurHash3 ([string], [seed])\nGet a hash state object, optionally initialized with the given _string_ and _seed_. _Seed_ must be a positive integer if provided. Calling this function without the `new` keyword will return a cached state object that has been reset. This is safe to use as long as the object is only used from a single thread and no other hashes are created while operating on this one. If this constraint cannot be met, you can use `new` to create a new state object. For example:\n\n```javascript\n// Use the cached object, calling the function again will return the same\n// object (but reset, so the current state would be lost)\nhashState = MurmurHash3();\n...\n\n// Create a new object that can be safely used however you wish. Calling the\n// function again will simply return a new state object, and no state loss\n// will occur, at the cost of creating more objects.\nhashState = new MurmurHash3();\n```\n\nBoth methods can be mixed however you like if you have different use cases.\n\n---\n\n### MurmurHash3.prototype.hash (string)\nIncrementally add _string_ to the hash. This can be called as many times as you want for the hash state object, including after a call to `result()`. Returns `this` so calls can be chained.\n\n---\n\n### MurmurHash3.prototype.result ()\nGet the result of the hash as a 32-bit positive integer. This performs the tail and finalizer portions of the algorithm, but does not store the result in the state object. This means that it is perfectly safe to get results and then continue adding strings via `hash`.\n\n```javascript\n// Do the whole string at once\nMurmurHash3('this is a test string').result();\n// 0x70529328\n\n// Do part of the string, get a result, then the other part\nvar m = MurmurHash3('this is a');\nm.result();\n// 0xbfc4f834\nm.hash(' test string').result();\n// 0x70529328 (same as above)\n```\n\n---\n\n### MurmurHash3.prototype.reset ([seed])\nReset the state object for reuse, optionally using the given _seed_ (defaults to 0 like the constructor). Returns `this` so calls can be chained.\n\n---\n\nLicense (MIT)\n-------------\nCopyright (c) 2013 Gary Court, Jens Taylor\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", - "readmeFilename": "README.md", - "repository": { - "type": "git", - "url": "git+https://github.com/jensyt/imurmurhash-js.git" - }, - "version": "0.1.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/LICENSE deleted file mode 100644 index 05eeeb88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/README.md deleted file mode 100644 index 6dc89291..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# inflight - -Add callbacks to requests in flight to avoid async duplication - -## USAGE - -```javascript -var inflight = require('inflight') - -// some request that does some stuff -function req(key, callback) { - // key is any random string. like a url or filename or whatever. - // - // will return either a falsey value, indicating that the - // request for this key is already in flight, or a new callback - // which when called will call all callbacks passed to inflightk - // with the same key - callback = inflight(key, callback) - - // If we got a falsey value back, then there's already a req going - if (!callback) return - - // this is where you'd fetch the url or whatever - // callback is also once()-ified, so it can safely be assigned - // to multiple events etc. First call wins. - setTimeout(function() { - callback(null, key) - }, 100) -} - -// only assigns a single setTimeout -// when it dings, all cbs get called -req('foo', cb1) -req('foo', cb2) -req('foo', cb3) -req('foo', cb4) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/inflight.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/inflight.js deleted file mode 100644 index 8bc96cbd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/inflight.js +++ /dev/null @@ -1,44 +0,0 @@ -var wrappy = require('wrappy') -var reqs = Object.create(null) -var once = require('once') - -module.exports = wrappy(inflight) - -function inflight (key, cb) { - if (reqs[key]) { - reqs[key].push(cb) - return null - } else { - reqs[key] = [cb] - return makeres(key) - } -} - -function makeres (key) { - return once(function RES () { - var cbs = reqs[key] - var len = cbs.length - var args = slice(arguments) - for (var i = 0; i < len; i++) { - cbs[i].apply(null, args) - } - if (cbs.length > len) { - // added more in the interim. - // de-zalgo, just in case, but don't call again. - cbs.splice(0, len) - process.nextTick(function () { - RES.apply(null, args) - }) - } else { - delete reqs[key] - } - }) -} - -function slice (args) { - var length = args.length - var array = [] - - for (var i = 0; i < length; i++) array[i] = args[i] - return array -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/package.json deleted file mode 100644 index e8ff9561..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inflight/package.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "_args": [ - [ - { - "name": "inflight", - "raw": "inflight@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "/Users/zkat/Documents/code/npm" - ] - ], - "_from": "inflight@latest", - "_id": "inflight@1.0.5", - "_inCache": true, - "_installable": true, - "_location": "/inflight", - "_nodeVersion": "5.10.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/inflight-1.0.5.tgz_1463529611443_0.00041943578980863094" - }, - "_npmUser": { - "email": "kat@sykosomatic.org", - "name": "zkat" - }, - "_npmVersion": "3.9.1", - "_phantomChildren": {}, - "_requested": { - "name": "inflight", - "raw": "inflight@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/", - "/glob", - "/init-package-json/glob", - "/node-gyp/glob", - "/read-package-json/glob", - "/standard/eslint/glob", - "/standard/standard-engine/deglob/glob", - "/tap/nyc/glob", - "/tap/nyc/istanbul/fileset/glob", - "/tap/tap-mocha-reporter/glob" - ], - "_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz", - "_shasum": "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a", - "_shrinkwrap": null, - "_spec": "inflight@latest", - "_where": "/Users/zkat/Documents/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/inflight/issues" - }, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - }, - "description": "Add callbacks to requests in flight to avoid async duplication", - "devDependencies": { - "tap": "^1.2.0" - }, - "directories": {}, - "dist": { - "shasum": "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a", - "tarball": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz" - }, - "files": [ - "inflight.js" - ], - "gitHead": "559e37b4f6327fca797fe8d7fe8ed6d9cae08821", - "homepage": "https://github.com/isaacs/inflight", - "license": "ISC", - "main": "inflight.js", - "maintainers": [ - { - "email": "me@re-becca.org", - "name": "iarna" - }, - { - "email": "i@izs.me", - "name": "isaacs" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "inflight", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/inflight.git" - }, - "scripts": { - "test": "tap test.js" - }, - "version": "1.0.5" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/LICENSE deleted file mode 100644 index dea3013d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/README.md deleted file mode 100644 index b1c56658..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/README.md +++ /dev/null @@ -1,42 +0,0 @@ -Browser-friendly inheritance fully compatible with standard node.js -[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). - -This package exports standard `inherits` from node.js `util` module in -node environment, but also provides alternative browser-friendly -implementation through [browser -field](https://gist.github.com/shtylman/4339901). Alternative -implementation is a literal copy of standard one located in standalone -module to avoid requiring of `util`. It also has a shim for old -browsers with no `Object.create` support. - -While keeping you sure you are using standard `inherits` -implementation in node.js environment, it allows bundlers such as -[browserify](https://github.com/substack/node-browserify) to not -include full `util` package to your client code if all you need is -just `inherits` function. It worth, because browser shim for `util` -package is large and `inherits` is often the single function you need -from it. - -It's recommended to use this package instead of -`require('util').inherits` for any code that has chances to be used -not only in node.js but in browser too. - -## usage - -```js -var inherits = require('inherits'); -// then use exactly as the standard one -``` - -## note on version ~1.0 - -Version ~1.0 had completely different motivation and is not compatible -neither with 2.0 nor with standard node.js `inherits`. - -If you are using version ~1.0 and planning to switch to ~2.0, be -careful: - -* new version uses `super_` instead of `super` for referencing - superclass -* new version overwrites current prototype while old one preserves any - existing fields on it diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/inherits.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/inherits.js deleted file mode 100644 index 29f5e24f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/inherits.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('util').inherits diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/inherits_browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/inherits_browser.js deleted file mode 100644 index c1e78a75..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/inherits_browser.js +++ /dev/null @@ -1,23 +0,0 @@ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/package.json deleted file mode 100644 index 933382a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "inherits", - "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.1", - "keywords": [ - "inheritance", - "class", - "klass", - "oop", - "object-oriented", - "inherits", - "browser", - "browserify" - ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/inherits.git" - }, - "license": "ISC", - "scripts": { - "test": "node test" - }, - "readme": "Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom it.\n\nIt's recommended to use this package instead of\n`require('util').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require('inherits');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n superclass\n* new version overwrites current prototype while old one preserves any\n existing fields on it\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/isaacs/inherits/issues" - }, - "homepage": "https://github.com/isaacs/inherits#readme", - "_id": "inherits@2.0.1", - "_shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1", - "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "_from": "inherits@>=2.0.1 <2.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/test.js deleted file mode 100644 index fc53012d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/inherits/test.js +++ /dev/null @@ -1,25 +0,0 @@ -var inherits = require('./inherits.js') -var assert = require('assert') - -function test(c) { - assert(c.constructor === Child) - assert(c.constructor.super_ === Parent) - assert(Object.getPrototypeOf(c) === Child.prototype) - assert(Object.getPrototypeOf(Object.getPrototypeOf(c)) === Parent.prototype) - assert(c instanceof Child) - assert(c instanceof Parent) -} - -function Child() { - Parent.call(this) - test(this) -} - -function Parent() {} - -inherits(Child, Parent) - -var c = new Child -test(c) - -console.log('ok') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/README.md deleted file mode 100644 index 33df2582..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/README.md +++ /dev/null @@ -1,102 +0,0 @@ -An ini format parser and serializer for node. - -Sections are treated as nested objects. Items before the first -heading are saved on the object directly. - -## Usage - -Consider an ini-file `config.ini` that looks like this: - - ; this comment is being ignored - scope = global - - [database] - user = dbuser - password = dbpassword - database = use_this_database - - [paths.default] - datadir = /var/lib/data - array[] = first value - array[] = second value - array[] = third value - -You can read, manipulate and write the ini-file like so: - - var fs = require('fs') - , ini = require('ini') - - var config = ini.parse(fs.readFileSync('./config.ini', 'utf-8')) - - config.scope = 'local' - config.database.database = 'use_another_database' - config.paths.default.tmpdir = '/tmp' - delete config.paths.default.datadir - config.paths.default.array.push('fourth value') - - fs.writeFileSync('./config_modified.ini', ini.stringify(config, { section: 'section' })) - -This will result in a file called `config_modified.ini` being written -to the filesystem with the following content: - - [section] - scope=local - [section.database] - user=dbuser - password=dbpassword - database=use_another_database - [section.paths.default] - tmpdir=/tmp - array[]=first value - array[]=second value - array[]=third value - array[]=fourth value - - -## API - -### decode(inistring) - -Decode the ini-style formatted `inistring` into a nested object. - -### parse(inistring) - -Alias for `decode(inistring)` - -### encode(object, [options]) - -Encode the object `object` into an ini-style formatted string. If the -optional parameter `section` is given, then all top-level properties -of the object are put into this section and the `section`-string is -prepended to all sub-sections, see the usage example above. - -The `options` object may contain the following: - -* `section` A string which will be the first `section` in the encoded - ini data. Defaults to none. -* `whitespace` Boolean to specify whether to put whitespace around the - `=` character. By default, whitespace is omitted, to be friendly to - some persnickety old parsers that don't tolerate it well. But some - find that it's more human-readable and pretty with the whitespace. - -For backwards compatibility reasons, if a `string` options is passed -in, then it is assumed to be the `section` value. - -### stringify(object, [options]) - -Alias for `encode(object, [options])` - -### safe(val) - -Escapes the string `val` such that it is safe to be used as a key or -value in an ini-file. Basically escapes quotes. For example - - ini.safe('"unsafe string"') - -would result in - - "\"unsafe string\"" - -### unsafe(val) - -Unescapes the string `val` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/ini.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/ini.js deleted file mode 100644 index ddf5bd9c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/ini.js +++ /dev/null @@ -1,190 +0,0 @@ - -exports.parse = exports.decode = decode -exports.stringify = exports.encode = encode - -exports.safe = safe -exports.unsafe = unsafe - -var eol = process.platform === "win32" ? "\r\n" : "\n" - -function encode (obj, opt) { - var children = [] - , out = "" - - if (typeof opt === "string") { - opt = { - section: opt, - whitespace: false - } - } else { - opt = opt || {} - opt.whitespace = opt.whitespace === true - } - - var separator = opt.whitespace ? " = " : "=" - - Object.keys(obj).forEach(function (k, _, __) { - var val = obj[k] - if (val && Array.isArray(val)) { - val.forEach(function(item) { - out += safe(k + "[]") + separator + safe(item) + "\n" - }) - } - else if (val && typeof val === "object") { - children.push(k) - } else { - out += safe(k) + separator + safe(val) + eol - } - }) - - if (opt.section && out.length) { - out = "[" + safe(opt.section) + "]" + eol + out - } - - children.forEach(function (k, _, __) { - var nk = dotSplit(k).join('\\.') - var section = (opt.section ? opt.section + "." : "") + nk - var child = encode(obj[k], { - section: section, - whitespace: opt.whitespace - }) - if (out.length && child.length) { - out += eol - } - out += child - }) - - return out -} - -function dotSplit (str) { - return str.replace(/\1/g, '\u0002LITERAL\\1LITERAL\u0002') - .replace(/\\\./g, '\u0001') - .split(/\./).map(function (part) { - return part.replace(/\1/g, '\\.') - .replace(/\2LITERAL\\1LITERAL\2/g, '\u0001') - }) -} - -function decode (str) { - var out = {} - , p = out - , section = null - , state = "START" - // section |key = value - , re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i - , lines = str.split(/[\r\n]+/g) - , section = null - - lines.forEach(function (line, _, __) { - if (!line || line.match(/^\s*[;#]/)) return - var match = line.match(re) - if (!match) return - if (match[1] !== undefined) { - section = unsafe(match[1]) - p = out[section] = out[section] || {} - return - } - var key = unsafe(match[2]) - , value = match[3] ? unsafe((match[4] || "")) : true - switch (value) { - case 'true': - case 'false': - case 'null': value = JSON.parse(value) - } - - // Convert keys with '[]' suffix to an array - if (key.length > 2 && key.slice(-2) === "[]") { - key = key.substring(0, key.length - 2) - if (!p[key]) { - p[key] = [] - } - else if (!Array.isArray(p[key])) { - p[key] = [p[key]] - } - } - - // safeguard against resetting a previously defined - // array by accidentally forgetting the brackets - if (Array.isArray(p[key])) { - p[key].push(value) - } - else { - p[key] = value - } - }) - - // {a:{y:1},"a.b":{x:2}} --> {a:{y:1,b:{x:2}}} - // use a filter to return the keys that have to be deleted. - Object.keys(out).filter(function (k, _, __) { - if (!out[k] || typeof out[k] !== "object" || Array.isArray(out[k])) return false - // see if the parent section is also an object. - // if so, add it to that, and mark this one for deletion - var parts = dotSplit(k) - , p = out - , l = parts.pop() - , nl = l.replace(/\\\./g, '.') - parts.forEach(function (part, _, __) { - if (!p[part] || typeof p[part] !== "object") p[part] = {} - p = p[part] - }) - if (p === out && nl === l) return false - p[nl] = out[k] - return true - }).forEach(function (del, _, __) { - delete out[del] - }) - - return out -} - -function isQuoted (val) { - return (val.charAt(0) === "\"" && val.slice(-1) === "\"") - || (val.charAt(0) === "'" && val.slice(-1) === "'") -} - -function safe (val) { - return ( typeof val !== "string" - || val.match(/[=\r\n]/) - || val.match(/^\[/) - || (val.length > 1 - && isQuoted(val)) - || val !== val.trim() ) - ? JSON.stringify(val) - : val.replace(/;/g, '\\;').replace(/#/g, "\\#") -} - -function unsafe (val, doUnesc) { - val = (val || "").trim() - if (isQuoted(val)) { - // remove the single quotes before calling JSON.parse - if (val.charAt(0) === "'") { - val = val.substr(1, val.length - 2); - } - try { val = JSON.parse(val) } catch (_) {} - } else { - // walk the val to find the first not-escaped ; character - var esc = false - var unesc = ""; - for (var i = 0, l = val.length; i < l; i++) { - var c = val.charAt(i) - if (esc) { - if ("\\;#".indexOf(c) !== -1) - unesc += c - else - unesc += "\\" + c - esc = false - } else if (";#".indexOf(c) !== -1) { - break - } else if (c === "\\") { - esc = true - } else { - unesc += c - } - } - if (esc) - unesc += "\\" - return unesc - } - return val -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/package.json deleted file mode 100644 index 7ea6710a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/ini/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "ini", - "description": "An ini encoder/decoder for node", - "version": "1.3.4", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/ini.git" - }, - "main": "ini.js", - "scripts": { - "test": "tap test/*.js" - }, - "engines": { - "node": "*" - }, - "dependencies": {}, - "devDependencies": { - "tap": "^1.2.0" - }, - "license": "ISC", - "files": [ - "ini.js" - ], - "readme": "An ini format parser and serializer for node.\n\nSections are treated as nested objects. Items before the first\nheading are saved on the object directly.\n\n## Usage\n\nConsider an ini-file `config.ini` that looks like this:\n\n ; this comment is being ignored\n scope = global\n\n [database]\n user = dbuser\n password = dbpassword\n database = use_this_database\n\n [paths.default]\n datadir = /var/lib/data\n array[] = first value\n array[] = second value\n array[] = third value\n\nYou can read, manipulate and write the ini-file like so:\n\n var fs = require('fs')\n , ini = require('ini')\n\n var config = ini.parse(fs.readFileSync('./config.ini', 'utf-8'))\n\n config.scope = 'local'\n config.database.database = 'use_another_database'\n config.paths.default.tmpdir = '/tmp'\n delete config.paths.default.datadir\n config.paths.default.array.push('fourth value')\n\n fs.writeFileSync('./config_modified.ini', ini.stringify(config, { section: 'section' }))\n\nThis will result in a file called `config_modified.ini` being written\nto the filesystem with the following content:\n\n [section]\n scope=local\n [section.database]\n user=dbuser\n password=dbpassword\n database=use_another_database\n [section.paths.default]\n tmpdir=/tmp\n array[]=first value\n array[]=second value\n array[]=third value\n array[]=fourth value\n\n\n## API\n\n### decode(inistring)\n\nDecode the ini-style formatted `inistring` into a nested object.\n\n### parse(inistring)\n\nAlias for `decode(inistring)`\n\n### encode(object, [options])\n\nEncode the object `object` into an ini-style formatted string. If the\noptional parameter `section` is given, then all top-level properties\nof the object are put into this section and the `section`-string is\nprepended to all sub-sections, see the usage example above.\n\nThe `options` object may contain the following:\n\n* `section` A string which will be the first `section` in the encoded\n ini data. Defaults to none.\n* `whitespace` Boolean to specify whether to put whitespace around the\n `=` character. By default, whitespace is omitted, to be friendly to\n some persnickety old parsers that don't tolerate it well. But some\n find that it's more human-readable and pretty with the whitespace.\n\nFor backwards compatibility reasons, if a `string` options is passed\nin, then it is assumed to be the `section` value.\n\n### stringify(object, [options])\n\nAlias for `encode(object, [options])`\n\n### safe(val)\n\nEscapes the string `val` such that it is safe to be used as a key or\nvalue in an ini-file. Basically escapes quotes. For example\n\n ini.safe('\"unsafe string\"')\n\nwould result in\n\n \"\\\"unsafe string\\\"\"\n\n### unsafe(val)\n\nUnescapes the string `val`\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/isaacs/ini/issues" - }, - "homepage": "https://github.com/isaacs/ini#readme", - "_id": "ini@1.3.4", - "_shasum": "0537cb79daf59b59a1a517dff706c86ec039162e", - "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "_from": "ini@>=1.3.4 <1.4.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/.npmignore deleted file mode 100644 index 44a3be18..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -.eslintrc diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/.travis.yml deleted file mode 100644 index 991d04b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - '0.10' - - '0.12' - - 'iojs' diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/LICENSE deleted file mode 100644 index 05eeeb88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/README.md deleted file mode 100644 index bd64c123..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# init-package-json - -A node module to get your node module started. - -[![Build Status](https://secure.travis-ci.org/npm/init-package-json.svg)](http://travis-ci.org/npm/init-package-json) - -## Usage - -```javascript -var init = require('init-package-json') -var path = require('path') - -// a path to a promzard module. In the event that this file is -// not found, one will be provided for you. -var initFile = path.resolve(process.env.HOME, '.npm-init') - -// the dir where we're doin stuff. -var dir = process.cwd() - -// extra stuff that gets put into the PromZard module's context. -// In npm, this is the resolved config object. Exposed as 'config' -// Optional. -var configData = { some: 'extra stuff' } - -// Any existing stuff from the package.json file is also exposed in the -// PromZard module as the `package` object. There will also be free -// vars for: -// * `filename` path to the package.json file -// * `basename` the tip of the package dir -// * `dirname` the parent of the package dir - -init(dir, initFile, configData, function (er, data) { - // the data's already been written to {dir}/package.json - // now you can do stuff with it -}) -``` - -Or from the command line: - -``` -$ npm-init -``` - -See [PromZard](https://github.com/npm/promzard) for details about -what can go in the config file. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/default-input.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/default-input.js deleted file mode 100644 index 59f8fec6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/default-input.js +++ /dev/null @@ -1,238 +0,0 @@ -var fs = require('fs') -var glob = require('glob') -var path = require('path') -var validateLicense = require('validate-npm-package-license') -var validateName = require('validate-npm-package-name') -var npa = require('npm-package-arg') -var semver = require('semver') - -// more popular packages should go here, maybe? -function isTestPkg (p) { - return !!p.match(/^(expresso|mocha|tap|coffee-script|coco|streamline)$/) -} - -function niceName (n) { - return n.replace(/^node-|[.-]js$/g, '').toLowerCase() -} - -function readDeps (test) { return function (cb) { - fs.readdir('node_modules', function (er, dir) { - if (er) return cb() - var deps = {} - var n = dir.length - if (n === 0) return cb(null, deps) - dir.forEach(function (d) { - if (d.match(/^\./)) return next() - if (test !== isTestPkg(d)) - return next() - - var dp = path.join(dirname, 'node_modules', d, 'package.json') - fs.readFile(dp, 'utf8', function (er, p) { - if (er) return next() - try { p = JSON.parse(p) } - catch (e) { return next() } - if (!p.version) return next() - if (p._requiredBy) { - if (!p._requiredBy.some(function (req) { return req === '#USER' })) return next() - } - deps[d] = config.get('save-exact') ? p.version : config.get('save-prefix') + p.version - return next() - }) - }) - function next () { - if (--n === 0) return cb(null, deps) - } - }) -}} - -var name = package.name || basename -var spec = npa(name) -var scope = config.get('scope') -if (scope) { - if (scope.charAt(0) !== '@') scope = '@' + scope - if (spec.scope) { - name = scope + '/' + spec.name.split('/')[1] - } else { - name = scope + '/' + name - } -} -exports.name = yes ? name : prompt('name', name, function (data) { - var its = validateName(data) - if (its.validForNewPackages) return data - var errors = (its.errors || []).concat(its.warnings || []) - var er = new Error('Sorry, ' + errors.join(' and ') + '.') - er.notValid = true - return er -}) - -var version = package.version || - config.get('init.version') || - config.get('init-version') || - '1.0.0' -exports.version = yes ? - version : - prompt('version', version, function (version) { - if (semver.valid(version)) return version - var er = new Error('Invalid version: "' + version + '"') - er.notValid = true - return er - }) - -if (!package.description) { - exports.description = yes ? '' : prompt('description') -} - -if (!package.main) { - exports.main = function (cb) { - fs.readdir(dirname, function (er, f) { - if (er) f = [] - - f = f.filter(function (f) { - return f.match(/\.js$/) - }) - - if (f.indexOf('index.js') !== -1) - f = 'index.js' - else if (f.indexOf('main.js') !== -1) - f = 'main.js' - else if (f.indexOf(basename + '.js') !== -1) - f = basename + '.js' - else - f = f[0] - - var index = f || 'index.js' - return cb(null, yes ? index : prompt('entry point', index)) - }) - } -} - -if (!package.bin) { - exports.bin = function (cb) { - fs.readdir(path.resolve(dirname, 'bin'), function (er, d) { - // no bins - if (er) return cb() - // just take the first js file we find there, or nada - return cb(null, d.filter(function (f) { - return f.match(/\.js$/) - })[0]) - }) - } -} - -exports.directories = function (cb) { - fs.readdir(dirname, function (er, dirs) { - if (er) return cb(er) - var res = {} - dirs.forEach(function (d) { - switch (d) { - case 'example': case 'examples': return res.example = d - case 'test': case 'tests': return res.test = d - case 'doc': case 'docs': return res.doc = d - case 'man': return res.man = d - } - }) - if (Object.keys(res).length === 0) res = undefined - return cb(null, res) - }) -} - -if (!package.dependencies) { - exports.dependencies = readDeps(false) -} - -if (!package.devDependencies) { - exports.devDependencies = readDeps(true) -} - -// MUST have a test script! -var s = package.scripts || {} -var notest = 'echo "Error: no test specified" && exit 1' -if (!package.scripts) { - exports.scripts = function (cb) { - fs.readdir(path.join(dirname, 'node_modules'), function (er, d) { - setupScripts(d || [], cb) - }) - } -} -function setupScripts (d, cb) { - // check to see what framework is in use, if any - function tx (test) { - return test || notest - } - if (!s.test || s.test === notest) { - var commands = { - 'tap':'tap test/*.js' - , 'expresso':'expresso test' - , 'mocha':'mocha' - } - var command - Object.keys(commands).forEach(function (k) { - if (d.indexOf(k) !== -1) command = commands[k] - }) - var ps = 'test command' - if (yes) { - s.test = command || notest - } else { - s.test = command ? prompt(ps, command, tx) : prompt(ps, tx) - } - } - return cb(null, s) -} - -if (!package.repository) { - exports.repository = function (cb) { - fs.readFile('.git/config', 'utf8', function (er, gconf) { - if (er || !gconf) { - return cb(null, yes ? '' : prompt('git repository')) - } - gconf = gconf.split(/\r?\n/) - var i = gconf.indexOf('[remote "origin"]') - if (i !== -1) { - var u = gconf[i + 1] - if (!u.match(/^\s*url =/)) u = gconf[i + 2] - if (!u.match(/^\s*url =/)) u = null - else u = u.replace(/^\s*url = /, '') - } - if (u && u.match(/^git@github.com:/)) - u = u.replace(/^git@github.com:/, 'https://github.com/') - - return cb(null, yes ? u : prompt('git repository', u)) - }) - } -} - -if (!package.keywords) { - exports.keywords = yes ? '' : prompt('keywords', function (s) { - if (!s) return undefined - if (Array.isArray(s)) s = s.join(' ') - if (typeof s !== 'string') return s - return s.split(/[\s,]+/) - }) -} - -if (!package.author) { - exports.author = config.get('init.author.name') || - config.get('init-author-name') - ? { - "name" : config.get('init.author.name') || - config.get('init-author-name'), - "email" : config.get('init.author.email') || - config.get('init-author-email'), - "url" : config.get('init.author.url') || - config.get('init-author-url') - } - : yes ? '' : prompt('author') -} - -var license = package.license || - config.get('init.license') || - config.get('init-license') || - 'ISC' -exports.license = yes ? license : prompt('license', license, function (data) { - var its = validateLicense(data) - if (its.validForNewPackages) return data - var errors = (its.errors || []).concat(its.warnings || []) - var er = new Error('Sorry, ' + errors.join(' and ') + '.') - er.notValid = true - return er -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/example-basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/example-basic.js deleted file mode 100644 index 0d13bda0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/example-basic.js +++ /dev/null @@ -1,7 +0,0 @@ -var init = require('../init-package-json.js') -var dir = process.cwd() -var initFile = require.resolve('./init/basic-init.js') - -init(dir, initFile, function (err, data) { - if (!err) console.log('written successfully') -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/example-default.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/example-default.js deleted file mode 100644 index 29a81990..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/example-default.js +++ /dev/null @@ -1,6 +0,0 @@ -var init = require('../init-package-json.js') -var dir = process.cwd() - -init(dir, 'file that does not exist', function (err, data) { - if (!err) console.log('written successfully') -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/example-npm.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/example-npm.js deleted file mode 100644 index 292da6a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/example-npm.js +++ /dev/null @@ -1,11 +0,0 @@ -var init = require('../init-package-json.js') -var dir = process.cwd() -var npm = require('npm') - -npm.load(function (er, npm) { - if (er) throw er - init(dir, npm.config.get('init-module'), npm.config, function (er, data) { - if (er) throw er - console.log('written successfully') - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/init/basic-init.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/init/basic-init.js deleted file mode 100644 index c8615cc1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/example/init/basic-init.js +++ /dev/null @@ -1 +0,0 @@ -exports.flavor = prompt("what's your favorite flavor of ice cream buddy?", "I LIKE THEM ALL") \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/init-package-json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/init-package-json.js deleted file mode 100644 index 7dc4b0a3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/init-package-json.js +++ /dev/null @@ -1,151 +0,0 @@ - -module.exports = init -module.exports.yes = yes - -var PZ = require('promzard').PromZard -var path = require('path') -var def = require.resolve('./default-input.js') - -var fs = require('fs') -var semver = require('semver') -var read = require('read') - -// to validate the data object at the end as a worthwhile package -// and assign default values for things. -// readJson.extras(file, data, cb) -var readJson = require('read-package-json') - -function yes (conf) { - return !!( - conf.get('yes') || conf.get('y') || - conf.get('force') || conf.get('f') - ) -} - -function init (dir, input, config, cb) { - if (typeof config === 'function') - cb = config, config = {} - - // accept either a plain-jane object, or a config object - // with a "get" method. - if (typeof config.get !== 'function') { - var data = config - config = { - get: function (k) { - return data[k] - }, - toJSON: function () { - return data - } - } - } - - var packageFile = path.resolve(dir, 'package.json') - input = path.resolve(input) - var pkg - var ctx = { yes: yes(config) } - - var es = readJson.extraSet - readJson.extraSet = es.filter(function (fn) { - return fn.name !== 'authors' && fn.name !== 'mans' - }) - readJson(packageFile, function (er, d) { - readJson.extraSet = es - - if (er) pkg = {} - else pkg = d - - ctx.filename = packageFile - ctx.dirname = path.dirname(packageFile) - ctx.basename = path.basename(ctx.dirname) - if (!pkg.version || !semver.valid(pkg.version)) - delete pkg.version - - ctx.package = pkg - ctx.config = config || {} - - // make sure that the input is valid. - // if not, use the default - var pz = new PZ(input, ctx) - pz.backupFile = def - pz.on('error', cb) - pz.on('data', function (data) { - Object.keys(data).forEach(function (k) { - if (data[k] !== undefined && data[k] !== null) pkg[k] = data[k] - }) - - // only do a few of these. - // no need for mans or contributors if they're in the files - var es = readJson.extraSet - readJson.extraSet = es.filter(function (fn) { - return fn.name !== 'authors' && fn.name !== 'mans' - }) - readJson.extras(packageFile, pkg, function (er, pkg) { - readJson.extraSet = es - if (er) return cb(er, pkg) - pkg = unParsePeople(pkg) - // no need for the readme now. - delete pkg.readme - delete pkg.readmeFilename - - // really don't want to have this lying around in the file - delete pkg._id - - // ditto - delete pkg.gitHead - - // if the repo is empty, remove it. - if (!pkg.repository) - delete pkg.repository - - // readJson filters out empty descriptions, but init-package-json - // traditionally leaves them alone - if (!pkg.description) - pkg.description = data.description - - var d = JSON.stringify(pkg, null, 2) + '\n' - function write (yes) { - fs.writeFile(packageFile, d, 'utf8', function (er) { - if (!er && yes && !config.get('silent')) { - console.log('Wrote to %s:\n\n%s\n', packageFile, d) - } - return cb(er, pkg) - }) - } - if (ctx.yes) { - return write(true) - } - console.log('About to write to %s:\n\n%s\n', packageFile, d) - read({prompt:'Is this ok? ', default: 'yes'}, function (er, ok) { - if (!ok || ok.toLowerCase().charAt(0) !== 'y') { - console.log('Aborted.') - } else { - return write() - } - }) - }) - }) - }) - -} - -// turn the objects into somewhat more humane strings. -function unParsePeople (data) { - if (data.author) data.author = unParsePerson(data.author) - ;["maintainers", "contributors"].forEach(function (set) { - if (!Array.isArray(data[set])) return; - data[set] = data[set].map(unParsePerson) - }) - return data -} - -function unParsePerson (person) { - if (typeof person === "string") return person - var name = person.name || "" - var u = person.url || person.web - var url = u ? (" ("+u+")") : "" - var e = person.email || person.mail - var email = e ? (" <"+e+">") : "" - return name+email+url -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/README.md deleted file mode 100644 index 6960483b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/README.md +++ /dev/null @@ -1,359 +0,0 @@ -# Glob - -Match files using the patterns the shell uses, like stars and stuff. - -[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master) - -This is a glob implementation in JavaScript. It uses the `minimatch` -library to do its matching. - -![](oh-my-glob.gif) - -## Usage - -```javascript -var glob = require("glob") - -// options is optional -glob("**/*.js", options, function (er, files) { - // files is an array of filenames. - // If the `nonull` option is set, and nothing - // was found, then files is ["**/*.js"] - // er is an error object or null. -}) -``` - -## Glob Primer - -"Globs" are the patterns you type when you do stuff like `ls *.js` on -the command line, or put `build/*` in a `.gitignore` file. - -Before parsing the path part patterns, braced sections are expanded -into a set. Braced sections start with `{` and end with `}`, with any -number of comma-delimited sections within. Braced sections may contain -slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`. - -The following characters have special magic meaning when used in a -path portion: - -* `*` Matches 0 or more characters in a single path portion -* `?` Matches 1 character -* `[...]` Matches a range of characters, similar to a RegExp range. - If the first character of the range is `!` or `^` then it matches - any character not in the range. -* `!(pattern|pattern|pattern)` Matches anything that does not match - any of the patterns provided. -* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the - patterns provided. -* `+(pattern|pattern|pattern)` Matches one or more occurrences of the - patterns provided. -* `*(a|b|c)` Matches zero or more occurrences of the patterns provided -* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns - provided -* `**` If a "globstar" is alone in a path portion, then it matches - zero or more directories and subdirectories searching for matches. - It does not crawl symlinked directories. - -### Dots - -If a file or directory path portion has a `.` as the first character, -then it will not match any glob pattern unless that pattern's -corresponding path part also has a `.` as its first character. - -For example, the pattern `a/.*/c` would match the file at `a/.b/c`. -However the pattern `a/*/c` would not, because `*` does not start with -a dot character. - -You can make glob treat dots as normal characters by setting -`dot:true` in the options. - -### Basename Matching - -If you set `matchBase:true` in the options, and the pattern has no -slashes in it, then it will seek for any file anywhere in the tree -with a matching basename. For example, `*.js` would match -`test/simple/basic.js`. - -### Empty Sets - -If no matching files are found, then an empty array is returned. This -differs from the shell, where the pattern itself is returned. For -example: - - $ echo a*s*d*f - a*s*d*f - -To get the bash-style behavior, set the `nonull:true` in the options. - -### See Also: - -* `man sh` -* `man bash` (Search for "Pattern Matching") -* `man 3 fnmatch` -* `man 5 gitignore` -* [minimatch documentation](https://github.com/isaacs/minimatch) - -## glob.hasMagic(pattern, [options]) - -Returns `true` if there are any special characters in the pattern, and -`false` otherwise. - -Note that the options affect the results. If `noext:true` is set in -the options object, then `+(a|b)` will not be considered a magic -pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}` -then that is considered magical, unless `nobrace:true` is set in the -options. - -## glob(pattern, [options], cb) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* `cb` `{Function}` - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Perform an asynchronous glob search. - -## glob.sync(pattern, [options]) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* return: `{Array}` filenames found matching the pattern - -Perform a synchronous glob search. - -## Class: glob.Glob - -Create a Glob object by instantiating the `glob.Glob` class. - -```javascript -var Glob = require("glob").Glob -var mg = new Glob(pattern, options, cb) -``` - -It's an EventEmitter, and starts walking the filesystem to find matches -immediately. - -### new glob.Glob(pattern, [options], [cb]) - -* `pattern` `{String}` pattern to search for -* `options` `{Object}` -* `cb` `{Function}` Called when an error occurs, or matches are found - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Note that if the `sync` flag is set in the options, then matches will -be immediately available on the `g.found` member. - -### Properties - -* `minimatch` The minimatch object that the glob uses. -* `options` The options object passed in. -* `aborted` Boolean which is set to true when calling `abort()`. There - is no way at this time to continue a glob search after aborting, but - you can re-use the statCache to avoid having to duplicate syscalls. -* `cache` Convenience object. Each field has the following possible - values: - * `false` - Path does not exist - * `true` - Path exists - * `'FILE'` - Path exists, and is not a directory - * `'DIR'` - Path exists, and is a directory - * `[file, entries, ...]` - Path exists, is a directory, and the - array value is the results of `fs.readdir` -* `statCache` Cache of `fs.stat` results, to prevent statting the same - path multiple times. -* `symlinks` A record of which paths are symbolic links, which is - relevant in resolving `**` patterns. -* `realpathCache` An optional object which is passed to `fs.realpath` - to minimize unnecessary syscalls. It is stored on the instantiated - Glob object, and may be re-used. - -### Events - -* `end` When the matching is finished, this is emitted with all the - matches found. If the `nonull` option is set, and no match was found, - then the `matches` list contains the original pattern. The matches - are sorted, unless the `nosort` flag is set. -* `match` Every time a match is found, this is emitted with the specific - thing that matched. It is not deduplicated or resolved to a realpath. -* `error` Emitted when an unexpected error is encountered, or whenever - any fs error occurs if `options.strict` is set. -* `abort` When `abort()` is called, this event is raised. - -### Methods - -* `pause` Temporarily stop the search -* `resume` Resume the search -* `abort` Stop the search forever - -### Options - -All the options that can be passed to Minimatch can also be passed to -Glob to change pattern matching behavior. Also, some have been added, -or have glob-specific ramifications. - -All options are false by default, unless otherwise noted. - -All options are added to the Glob object, as well. - -If you are running many `glob` operations, you can pass a Glob object -as the `options` argument to a subsequent operation to shortcut some -`stat` and `readdir` calls. At the very least, you may pass in shared -`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that -parallel glob operations will be sped up by sharing information about -the filesystem. - -* `cwd` The current working directory in which to search. Defaults - to `process.cwd()`. -* `root` The place where patterns starting with `/` will be mounted - onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix - systems, and `C:\` or some such on Windows.) -* `dot` Include `.dot` files in normal matches and `globstar` matches. - Note that an explicit dot in a portion of the pattern will always - match dot files. -* `nomount` By default, a pattern starting with a forward-slash will be - "mounted" onto the root setting, so that a valid filesystem path is - returned. Set this flag to disable that behavior. -* `mark` Add a `/` character to directory matches. Note that this - requires additional stat calls. -* `nosort` Don't sort the results. -* `stat` Set to true to stat *all* results. This reduces performance - somewhat, and is completely unnecessary, unless `readdir` is presumed - to be an untrustworthy indicator of file existence. -* `silent` When an unusual error is encountered when attempting to - read a directory, a warning will be printed to stderr. Set the - `silent` option to true to suppress these warnings. -* `strict` When an unusual error is encountered when attempting to - read a directory, the process will just continue on in search of - other matches. Set the `strict` option to raise an error in these - cases. -* `cache` See `cache` property above. Pass in a previously generated - cache object to save some fs calls. -* `statCache` A cache of results of filesystem information, to prevent - unnecessary stat calls. While it should not normally be necessary - to set this, you may pass the statCache from one glob() call to the - options object of another, if you know that the filesystem will not - change between calls. (See "Race Conditions" below.) -* `symlinks` A cache of known symbolic links. You may pass in a - previously generated `symlinks` object to save `lstat` calls when - resolving `**` matches. -* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead. -* `nounique` In some cases, brace-expanded patterns can result in the - same file showing up multiple times in the result set. By default, - this implementation prevents duplicates in the result set. Set this - flag to disable that behavior. -* `nonull` Set to never return an empty set, instead returning a set - containing the pattern itself. This is the default in glob(3). -* `debug` Set to enable debug logging in minimatch and glob. -* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets. -* `noglobstar` Do not match `**` against multiple filenames. (Ie, - treat it as a normal `*` instead.) -* `noext` Do not match `+(a|b)` "extglob" patterns. -* `nocase` Perform a case-insensitive match. Note: on - case-insensitive filesystems, non-magic patterns will match by - default, since `stat` and `readdir` will not raise errors. -* `matchBase` Perform a basename-only match if the pattern does not - contain any slash characters. That is, `*.js` would be treated as - equivalent to `**/*.js`, matching all js files in all directories. -* `nodir` Do not match directories, only files. (Note: to match - *only* directories, simply put a `/` at the end of the pattern.) -* `ignore` Add a pattern or an array of glob patterns to exclude matches. - Note: `ignore` patterns are *always* in `dot:true` mode, regardless - of any other settings. -* `follow` Follow symlinked directories when expanding `**` patterns. - Note that this can result in a lot of duplicate references in the - presence of cyclic links. -* `realpath` Set to true to call `fs.realpath` on all of the results. - In the case of a symlink that cannot be resolved, the full absolute - path to the matched entry is returned (though it will usually be a - broken symlink) - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between node-glob and other -implementations, and are intentional. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.3, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -Note that symlinked directories are not crawled as part of a `**`, -though their contents may match against subsequent portions of the -pattern. This prevents infinite loops and duplicates and the like. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then glob returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. - -### Comments and Negation - -Previously, this module let you mark a pattern as a "comment" if it -started with a `#` character, or a "negated" pattern if it started -with a `!` character. - -These options were deprecated in version 5, and removed in version 6. - -To specify things that should not match, use the `ignore` option. - -## Windows - -**Please only use forward-slashes in glob expressions.** - -Though windows uses either `/` or `\` as its path separator, only `/` -characters are used by this glob implementation. You must use -forward-slashes **only** in glob expressions. Back-slashes will always -be interpreted as escape characters, not path separators. - -Results from absolute patterns such as `/foo/*` are mounted onto the -root setting using `path.join`. On windows, this will by default result -in `/foo/*` matching `C:\foo\bar.txt`. - -## Race Conditions - -Glob searching, by its very nature, is susceptible to race conditions, -since it relies on directory walking and such. - -As a result, it is possible that a file that exists when glob looks for -it may have been deleted or modified by the time it returns the result. - -As part of its internal implementation, this program caches all stat -and readdir calls that it makes, in order to cut down on system -overhead. However, this also makes it even more susceptible to races, -especially if the cache or statCache objects are reused between glob -calls. - -Users are thus advised not to use a glob result as a guarantee of -filesystem state in the face of rapid changes. For the vast majority -of operations, this is never a problem. - -## Contributing - -Any change to behavior (including bugfixes) must come with a test. - -Patches that fail tests or reduce performance will be rejected. - -``` -# to run tests -npm test - -# to re-generate test fixtures -npm run test-regen - -# to benchmark against bash/zsh -npm run bench - -# to profile javascript -npm run prof -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/common.js deleted file mode 100644 index c9127eb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/common.js +++ /dev/null @@ -1,226 +0,0 @@ -exports.alphasort = alphasort -exports.alphasorti = alphasorti -exports.setopts = setopts -exports.ownProp = ownProp -exports.makeAbs = makeAbs -exports.finish = finish -exports.mark = mark -exports.isIgnored = isIgnored -exports.childrenIgnored = childrenIgnored - -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} - -var path = require("path") -var minimatch = require("minimatch") -var isAbsolute = require("path-is-absolute") -var Minimatch = minimatch.Minimatch - -function alphasorti (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()) -} - -function alphasort (a, b) { - return a.localeCompare(b) -} - -function setupIgnores (self, options) { - self.ignore = options.ignore || [] - - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore] - - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap) - } -} - -// ignore patterns are always in dot:true mode. -function ignoreMap (pattern) { - var gmatcher = null - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, '') - gmatcher = new Minimatch(gpattern, { dot: true }) - } - - return { - matcher: new Minimatch(pattern, { dot: true }), - gmatcher: gmatcher - } -} - -function setopts (self, pattern, options) { - if (!options) - options = {} - - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") - } - pattern = "**/" + pattern - } - - self.silent = !!options.silent - self.pattern = pattern - self.strict = options.strict !== false - self.realpath = !!options.realpath - self.realpathCache = options.realpathCache || Object.create(null) - self.follow = !!options.follow - self.dot = !!options.dot - self.mark = !!options.mark - self.nodir = !!options.nodir - if (self.nodir) - self.mark = true - self.sync = !!options.sync - self.nounique = !!options.nounique - self.nonull = !!options.nonull - self.nosort = !!options.nosort - self.nocase = !!options.nocase - self.stat = !!options.stat - self.noprocess = !!options.noprocess - - self.maxLength = options.maxLength || Infinity - self.cache = options.cache || Object.create(null) - self.statCache = options.statCache || Object.create(null) - self.symlinks = options.symlinks || Object.create(null) - - setupIgnores(self, options) - - self.changedCwd = false - var cwd = process.cwd() - if (!ownProp(options, "cwd")) - self.cwd = cwd - else { - self.cwd = options.cwd - self.changedCwd = path.resolve(options.cwd) !== cwd - } - - self.root = options.root || path.resolve(self.cwd, "/") - self.root = path.resolve(self.root) - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/") - - self.nomount = !!options.nomount - - // disable comments and negation in Minimatch. - // Note that they are not supported in Glob itself anyway. - options.nonegate = true - options.nocomment = true - - self.minimatch = new Minimatch(pattern, options) - self.options = self.minimatch.options -} - -function finish (self) { - var nou = self.nounique - var all = nou ? [] : Object.create(null) - - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i] - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i] - if (nou) - all.push(literal) - else - all[literal] = true - } - } else { - // had matches - var m = Object.keys(matches) - if (nou) - all.push.apply(all, m) - else - m.forEach(function (m) { - all[m] = true - }) - } - } - - if (!nou) - all = Object.keys(all) - - if (!self.nosort) - all = all.sort(self.nocase ? alphasorti : alphasort) - - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]) - } - if (self.nodir) { - all = all.filter(function (e) { - return !(/\/$/.test(e)) - }) - } - } - - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }) - - self.found = all -} - -function mark (self, p) { - var abs = makeAbs(self, p) - var c = self.cache[abs] - var m = p - if (c) { - var isDir = c === 'DIR' || Array.isArray(c) - var slash = p.slice(-1) === '/' - - if (isDir && !slash) - m += '/' - else if (!isDir && slash) - m = m.slice(0, -1) - - if (m !== p) { - var mabs = makeAbs(self, m) - self.statCache[mabs] = self.statCache[abs] - self.cache[mabs] = self.cache[abs] - } - } - - return m -} - -// lotta situps... -function makeAbs (self, f) { - var abs = f - if (f.charAt(0) === '/') { - abs = path.join(self.root, f) - } else if (isAbsolute(f) || f === '') { - abs = f - } else if (self.changedCwd) { - abs = path.resolve(self.cwd, f) - } else { - abs = path.resolve(f) - } - return abs -} - - -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/glob.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/glob.js deleted file mode 100644 index a62da27e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/glob.js +++ /dev/null @@ -1,765 +0,0 @@ -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. - -module.exports = glob - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var inherits = require('inherits') -var EE = require('events').EventEmitter -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var globSync = require('./sync.js') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var inflight = require('inflight') -var util = require('util') -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -var once = require('once') - -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {} - if (!options) options = {} - - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return globSync(pattern, options) - } - - return new Glob(pattern, options, cb) -} - -glob.sync = globSync -var GlobSync = glob.GlobSync = globSync.GlobSync - -// old api surface -glob.glob = glob - -function extend (origin, add) { - if (add === null || typeof add !== 'object') { - return origin - } - - var keys = Object.keys(add) - var i = keys.length - while (i--) { - origin[keys[i]] = add[keys[i]] - } - return origin -} - -glob.hasMagic = function (pattern, options_) { - var options = extend({}, options_) - options.noprocess = true - - var g = new Glob(pattern, options) - var set = g.minimatch.set - if (set.length > 1) - return true - - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } - - return false -} - -glob.Glob = Glob -inherits(Glob, EE) -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync(pattern, options) - } - - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) - - setopts(this, pattern, options) - this._didRealPath = false - - // process each pattern in the minimatch set - var n = this.minimatch.set.length - - // The matches are stored as {: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n) - - if (typeof cb === 'function') { - cb = once(cb) - this.on('error', cb) - this.on('end', function (matches) { - cb(null, matches) - }) - } - - var self = this - var n = this.minimatch.set.length - this._processing = 0 - this.matches = new Array(n) - - this._emitQueue = [] - this._processQueue = [] - this.paused = false - - if (this.noprocess) - return this - - if (n === 0) - return done() - - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done) - } - - function done () { - --self._processing - if (self._processing <= 0) - self._finish() - } -} - -Glob.prototype._finish = function () { - assert(this instanceof Glob) - if (this.aborted) - return - - if (this.realpath && !this._didRealpath) - return this._realpath() - - common.finish(this) - this.emit('end', this.found) -} - -Glob.prototype._realpath = function () { - if (this._didRealpath) - return - - this._didRealpath = true - - var n = this.matches.length - if (n === 0) - return this._finish() - - var self = this - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next) - - function next () { - if (--n === 0) - self._finish() - } -} - -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index] - if (!matchset) - return cb() - - var found = Object.keys(matchset) - var self = this - var n = found.length - - if (n === 0) - return cb() - - var set = this.matches[index] = Object.create(null) - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p) - fs.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true - else if (er.syscall === 'stat') - set[p] = true - else - self.emit('error', er) // srsly wtf right here - - if (--n === 0) { - self.matches[index] = set - cb() - } - }) - }) -} - -Glob.prototype._mark = function (p) { - return common.mark(this, p) -} - -Glob.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -Glob.prototype.abort = function () { - this.aborted = true - this.emit('abort') -} - -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true - this.emit('pause') - } -} - -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume') - this.paused = false - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0) - this._emitQueue.length = 0 - for (var i = 0; i < eq.length; i ++) { - var e = eq[i] - this._emitMatch(e[0], e[1]) - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0) - this._processQueue.length = 0 - for (var i = 0; i < pq.length; i ++) { - var p = pq[i] - this._processing-- - this._process(p[0], p[1], p[2], p[3]) - } - } - } -} - -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert(this instanceof Glob) - assert(typeof cb === 'function') - - if (this.aborted) - return - - this._processing++ - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]) - return - } - - //console.error('PROCESS %d', this._processing, pattern) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // see if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip _processing - if (childrenIgnored(this, read)) - return cb() - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) -} - -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return cb() - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - this._process([e].concat(remain), index, inGlobStar, cb) - } - cb() -} - -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return - - if (this.matches[index][e]) - return - - if (isIgnored(this, e)) - return - - if (this.paused) { - this._emitQueue.push([index, e]) - return - } - - var abs = this._makeAbs(e) - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - if (this.mark) - e = this._mark(e) - - this.matches[index][e] = true - - var st = this.statCache[abs] - if (st) - this.emit('stat', e, st) - - this.emit('match', e) -} - -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return - - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) - - var lstatkey = 'lstat\0' + abs - var self = this - var lstatcb = inflight(lstatkey, lstatcb_) - - if (lstatcb) - fs.lstat(abs, lstatcb) - - function lstatcb_ (er, lstat) { - if (er) - return cb() - - var isSym = lstat.isSymbolicLink() - self.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) { - self.cache[abs] = 'FILE' - cb() - } else - self._readdir(abs, false, cb) - } -} - -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return - - cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) - if (!cb) - return - - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return cb() - - if (Array.isArray(c)) - return cb(null, c) - } - - var self = this - fs.readdir(abs, readdirCb(this, abs, cb)) -} - -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb) - else - self._readdirEntries(abs, entries, cb) - } -} - -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return - - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - return cb(null, entries) -} - -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return - - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) { - this.emit('error', er) - // If the error is handled, then we abort - // if not, we threw out of here - this.abort() - } - if (!this.silent) - console.error('glob error', er) - break - } - - return cb() -} - -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - - -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb) - - var isSym = this.symlinks[abs] - var len = entries.length - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true, cb) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true, cb) - } - - cb() -} - -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb) - }) -} -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { - - //console.error('ps2', prefix, exists) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) - cb() -} - -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return cb() - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) - - if (needDir && c === 'FILE') - return cb() - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE' - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } - - var self = this - var statcb = inflight('stat\0' + abs, lstatcb_) - if (statcb) - fs.lstat(abs, statcb) - - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return fs.stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb) - else - self._stat2(f, abs, er, stat, cb) - }) - } else { - self._stat2(f, abs, er, lstat, cb) - } - } -} - -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er) { - this.statCache[abs] = false - return cb() - } - - var needDir = f.slice(-1) === '/' - this.statCache[abs] = stat - - if (abs.slice(-1) === '/' && !stat.isDirectory()) - return cb(null, false, stat) - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return cb() - - return cb(null, c, stat) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/README.md deleted file mode 100644 index d458bc2e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/README.md +++ /dev/null @@ -1,216 +0,0 @@ -# minimatch - -A minimal matching utility. - -[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch) - - -This is the matching library used internally by npm. - -It works by converting glob expressions into JavaScript `RegExp` -objects. - -## Usage - -```javascript -var minimatch = require("minimatch") - -minimatch("bar.foo", "*.foo") // true! -minimatch("bar.foo", "*.bar") // false! -minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy! -``` - -## Features - -Supports these glob features: - -* Brace Expansion -* Extended glob matching -* "Globstar" `**` matching - -See: - -* `man sh` -* `man bash` -* `man 3 fnmatch` -* `man 5 gitignore` - -## Minimatch Class - -Create a minimatch object by instanting the `minimatch.Minimatch` class. - -```javascript -var Minimatch = require("minimatch").Minimatch -var mm = new Minimatch(pattern, options) -``` - -### Properties - -* `pattern` The original pattern the minimatch object represents. -* `options` The options supplied to the constructor. -* `set` A 2-dimensional array of regexp or string expressions. - Each row in the - array corresponds to a brace-expanded pattern. Each item in the row - corresponds to a single path-part. For example, the pattern - `{a,b/c}/d` would expand to a set of patterns like: - - [ [ a, d ] - , [ b, c, d ] ] - - If a portion of the pattern doesn't have any "magic" in it - (that is, it's something like `"foo"` rather than `fo*o?`), then it - will be left as a string rather than converted to a regular - expression. - -* `regexp` Created by the `makeRe` method. A single regular expression - expressing the entire pattern. This is useful in cases where you wish - to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled. -* `negate` True if the pattern is negated. -* `comment` True if the pattern is a comment. -* `empty` True if the pattern is `""`. - -### Methods - -* `makeRe` Generate the `regexp` member if necessary, and return it. - Will return `false` if the pattern is invalid. -* `match(fname)` Return true if the filename matches the pattern, or - false otherwise. -* `matchOne(fileArray, patternArray, partial)` Take a `/`-split - filename, and match it against a single row in the `regExpSet`. This - method is mainly for internal use, but is exposed so that it can be - used by a glob-walker that needs to avoid excessive filesystem calls. - -All other methods are internal, and will be called as necessary. - -## Functions - -The top-level exported function has a `cache` property, which is an LRU -cache set to store 100 items. So, calling these methods repeatedly -with the same pattern and options will use the same Minimatch object, -saving the cost of parsing it multiple times. - -### minimatch(path, pattern, options) - -Main export. Tests a path against the pattern using the options. - -```javascript -var isJS = minimatch(file, "*.js", { matchBase: true }) -``` - -### minimatch.filter(pattern, options) - -Returns a function that tests its -supplied argument, suitable for use with `Array.filter`. Example: - -```javascript -var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true})) -``` - -### minimatch.match(list, pattern, options) - -Match against the list of -files, in the style of fnmatch or glob. If nothing is matched, and -options.nonull is set, then return a list containing the pattern itself. - -```javascript -var javascripts = minimatch.match(fileList, "*.js", {matchBase: true})) -``` - -### minimatch.makeRe(pattern, options) - -Make a regular expression object from the pattern. - -## Options - -All options are `false` by default. - -### debug - -Dump a ton of stuff to stderr. - -### nobrace - -Do not expand `{a,b}` and `{1..3}` brace sets. - -### noglobstar - -Disable `**` matching against multiple folder names. - -### dot - -Allow patterns to match filenames starting with a period, even if -the pattern does not explicitly have a period in that spot. - -Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot` -is set. - -### noext - -Disable "extglob" style patterns like `+(a|b)`. - -### nocase - -Perform a case-insensitive match. - -### nonull - -When a match is not found by `minimatch.match`, return a list containing -the pattern itself if this option is set. When not set, an empty list -is returned if there are no matches. - -### matchBase - -If set, then patterns without slashes will be matched -against the basename of the path if it contains slashes. For example, -`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. - -### nocomment - -Suppress the behavior of treating `#` at the start of a pattern as a -comment. - -### nonegate - -Suppress the behavior of treating a leading `!` character as negation. - -### flipNegate - -Returns from negate expressions the same as if they were not negated. -(Ie, true on a hit, false on a miss.) - - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between minimatch and other -implementations, and are intentional. - -If the pattern starts with a `!` character, then it is negated. Set the -`nonegate` flag to suppress this behavior, and treat leading `!` -characters normally. This is perhaps relevant if you wish to start the -pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` -characters at the start of a pattern will negate the pattern multiple -times. - -If a pattern starts with `#`, then it is treated as a comment, and -will not match anything. Use `\#` to match a literal `#` at the -start of a line, or set the `nocomment` flag to suppress this behavior. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.1, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then minimatch.match returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/minimatch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/minimatch.js deleted file mode 100644 index ec4c05c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/minimatch.js +++ /dev/null @@ -1,912 +0,0 @@ -module.exports = minimatch -minimatch.Minimatch = Minimatch - -var path = { sep: '/' } -try { - path = require('path') -} catch (er) {} - -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} -var expand = require('brace-expansion') - -// any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]' - -// * => any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } - - // "" only matches "" - if (pattern.trim() === '') return p === '' - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } - - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') - } - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function () {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new Error('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var plType - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - plType = stateChar - patternListStack.push({ - type: plType, - start: i - 1, - reStart: re.length - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - re += ')' - var pl = patternListStack.pop() - plType = pl.type - // negation is (?:(?!js)[^/]*) - // The others are (?:) - switch (plType) { - case '!': - negativeLists.push(pl) - re += ')[^/]*?)' - pl.reEnd = re.length - break - case '?': - case '+': - case '*': - re += plType - break - case '@': break // the default anyway - } - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + 3) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - var regExp = new RegExp('^' + re + '$', flags) - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore deleted file mode 100644 index 353546af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -test -.gitignore -.travis.yml diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md deleted file mode 100644 index 17939297..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js deleted file mode 100644 index 60ecfc74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +++ /dev/null @@ -1,8 +0,0 @@ -var expand = require('./'); - -console.log(expand('http://any.org/archive{1996..1999}/vol{1..4}/part{a,b,c}.html')); -console.log(expand('http://www.numericals.com/file{1..100..10}.txt')); -console.log(expand('http://www.letters.com/file{a..z..2}.txt')); -console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}')); -console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}')); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js deleted file mode 100644 index 932718f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,191 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = /^(.*,)+(.+)?$/.test(m.body); - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore deleted file mode 100644 index ae5d8c36..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -test -.gitignore -.travis.yml -Makefile -example.js diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md deleted file mode 100644 index d6880b2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[ , ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js deleted file mode 100644 index 4670f7f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +++ /dev/null @@ -1,58 +0,0 @@ -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i < str.length && i >= 0 && ! result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json deleted file mode 100644 index 306b73b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "_args": [ - [ - { - "name": "balanced-match", - "raw": "balanced-match@^0.4.1", - "rawSpec": "^0.4.1", - "scope": null, - "spec": ">=0.4.1 <0.5.0", - "type": "range" - }, - "/Users/zkat/Documents/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion" - ] - ], - "_from": "balanced-match@>=0.4.1 <0.5.0", - "_id": "balanced-match@0.4.1", - "_inCache": true, - "_installable": true, - "_location": "/init-package-json/glob/minimatch/brace-expansion/balanced-match", - "_nodeVersion": "6.0.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/balanced-match-0.4.1.tgz_1462129663650_0.39764496590942144" - }, - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.8.6", - "_phantomChildren": {}, - "_requested": { - "name": "balanced-match", - "raw": "balanced-match@^0.4.1", - "rawSpec": "^0.4.1", - "scope": null, - "spec": ">=0.4.1 <0.5.0", - "type": "range" - }, - "_requiredBy": [ - "/init-package-json/glob/minimatch/brace-expansion" - ], - "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz", - "_shasum": "19053e2e0748eadb379da6c09d455cf5e1039335", - "_shrinkwrap": null, - "_spec": "balanced-match@^0.4.1", - "_where": "/Users/zkat/Documents/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/balanced-match/issues" - }, - "dependencies": {}, - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "devDependencies": { - "tape": "~4.5.0" - }, - "directories": {}, - "dist": { - "shasum": "19053e2e0748eadb379da6c09d455cf5e1039335", - "tarball": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz" - }, - "gitHead": "7004b289baaaab6a832f4901735e29d37cc2a863", - "homepage": "https://github.com/juliangruber/balanced-match", - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - } - ], - "name": "balanced-match", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "scripts": { - "test": "make test" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test/*.js" - }, - "version": "0.4.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml deleted file mode 100644 index f1d0f13c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +++ /dev/null @@ -1,62 +0,0 @@ -concat-map -========== - -Concatenative mapdashery. - -[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) - -[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) - -example -======= - -``` js -var concatMap = require('concat-map'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); -``` - -*** - -``` -[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] -``` - -methods -======= - -``` js -var concatMap = require('concat-map') -``` - -concatMap(xs, fn) ------------------ - -Return an array of concatenated elements by calling `fn(x, i)` for each element -`x` and each index `i` in the array `xs`. - -When `fn(x, i)` returns an array, its result will be concatenated with the -result array. If `fn(x, i)` returns anything else, that value will be pushed -onto the end of the result array. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install concat-map -``` - -license -======= - -MIT - -notes -===== - -This module was written while sitting high above the ground in a tree. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js deleted file mode 100644 index 33656217..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js deleted file mode 100644 index b29a7812..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json deleted file mode 100644 index 9b6c5008..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "_args": [ - [ - "concat-map@0.0.1", - "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion" - ], - [ - "concat-map@0.0.1", - "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion" - ] - ], - "_from": "concat-map@0.0.1", - "_id": "concat-map@0.0.1", - "_inCache": true, - "_installable": true, - "_location": "/init-package-json/glob/minimatch/brace-expansion/concat-map", - "_npmUser": { - "email": "mail@substack.net", - "name": "substack" - }, - "_npmVersion": "1.3.21", - "_phantomChildren": {}, - "_requested": { - "name": "concat-map", - "raw": "concat-map@0.0.1", - "rawSpec": "0.0.1", - "scope": null, - "spec": "0.0.1", - "type": "version" - }, - "_requiredBy": [ - "/init-package-json/glob/minimatch/brace-expansion" - ], - "_shrinkwrap": null, - "_spec": "concat-map@0.0.1", - "_where": "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion", - "author": { - "email": "mail@substack.net", - "name": "James Halliday", - "url": "http://substack.net" - }, - "bugs": { - "url": "https://github.com/substack/node-concat-map/issues" - }, - "dependencies": {}, - "description": "concatenative mapdashery", - "devDependencies": { - "tape": "~2.4.0" - }, - "directories": { - "example": "example", - "test": "test" - }, - "dist": { - "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "tarball": "http://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "homepage": "https://github.com/substack/node-concat-map", - "keywords": [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "mail@substack.net", - "name": "substack" - } - ], - "name": "concat-map", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-concat-map.git" - }, - "scripts": { - "test": "tape test/*.js" - }, - "testling": { - "browsers": { - "chrome": [ - 10, - 22 - ], - "ff": [ - 3.5, - 10, - 15 - ], - "ie": [ - 6, - 7, - 8, - 9 - ], - "opera": [ - 12 - ], - "safari": [ - 5.1 - ] - }, - "files": "test/*.js" - }, - "version": "0.0.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd7022..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json deleted file mode 100644 index ad188114..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "_args": [ - [ - { - "name": "brace-expansion", - "raw": "brace-expansion@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/zkat/Documents/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch" - ] - ], - "_from": "brace-expansion@>=1.0.0 <2.0.0", - "_id": "brace-expansion@1.1.4", - "_inCache": true, - "_installable": true, - "_location": "/init-package-json/glob/minimatch/brace-expansion", - "_nodeVersion": "6.0.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/brace-expansion-1.1.4.tgz_1462130058897_0.14984136167913675" - }, - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.8.6", - "_phantomChildren": {}, - "_requested": { - "name": "brace-expansion", - "raw": "brace-expansion@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/init-package-json/glob/minimatch" - ], - "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz", - "_shasum": "464a204c77f482c085c2a36c456bbfbafb67a127", - "_shrinkwrap": null, - "_spec": "brace-expansion@^1.0.0", - "_where": "/Users/zkat/Documents/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/brace-expansion/issues" - }, - "dependencies": { - "balanced-match": "^0.4.1", - "concat-map": "0.0.1" - }, - "description": "Brace expansion as known from sh/bash", - "devDependencies": { - "tape": "4.5.1" - }, - "directories": {}, - "dist": { - "shasum": "464a204c77f482c085c2a36c456bbfbafb67a127", - "tarball": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz" - }, - "gitHead": "1660b75d0bf03b022e7888b576cd5a4080692c1d", - "homepage": "https://github.com/juliangruber/brace-expansion", - "keywords": [], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - } - ], - "name": "brace-expansion", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "scripts": { - "gentest": "bash test/generate.sh", - "test": "tape test/*.js" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test/*.js" - }, - "version": "1.1.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/package.json deleted file mode 100644 index ded42917..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_args": [ - [ - "minimatch@2 || 3", - "/Users/rebecca/code/npm/node_modules/glob" - ], - [ - "minimatch@2 || 3", - "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob" - ] - ], - "_from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "_id": "minimatch@3.0.0", - "_inCache": true, - "_installable": true, - "_location": "/init-package-json/glob/minimatch", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "minimatch", - "raw": "minimatch@2 || 3", - "rawSpec": "2 || 3", - "scope": null, - "spec": ">=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "type": "range" - }, - "_requiredBy": [ - "/init-package-json/glob" - ], - "_shrinkwrap": null, - "_spec": "minimatch@2 || 3", - "_where": "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me" - }, - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" - }, - "dependencies": { - "brace-expansion": "^1.0.0" - }, - "description": "a glob matcher in javascript", - "devDependencies": { - "standard": "^3.7.2", - "tap": "^1.2.0" - }, - "directories": {}, - "dist": { - "shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83", - "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz" - }, - "engines": { - "node": "*" - }, - "files": [ - "minimatch.js" - ], - "gitHead": "270dbea567f0af6918cb18103e98c612aa717a20", - "homepage": "https://github.com/isaacs/minimatch#readme", - "license": "ISC", - "main": "minimatch.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "minimatch", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" - }, - "scripts": { - "posttest": "standard minimatch.js test/*.js", - "test": "tap test/*.js" - }, - "version": "3.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/index.js deleted file mode 100644 index 19f103f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/index.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -function posix(path) { - return path.charAt(0) === '/'; -}; - -function win32(path) { - // https://github.com/joyent/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; - var result = splitDeviceRe.exec(path); - var device = result[1] || ''; - var isUnc = !!device && device.charAt(1) !== ':'; - - // UNC paths are always absolute - return !!result[2] || isUnc; -}; - -module.exports = process.platform === 'win32' ? win32 : posix; -module.exports.posix = posix; -module.exports.win32 = win32; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/package.json deleted file mode 100644 index 3fc29597..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "_args": [ - [ - "path-is-absolute@^1.0.0", - "/Users/rebecca/code/npm/node_modules/glob" - ], - [ - "path-is-absolute@^1.0.0", - "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob" - ] - ], - "_from": "path-is-absolute@>=1.0.0 <2.0.0", - "_id": "path-is-absolute@1.0.0", - "_inCache": true, - "_installable": true, - "_location": "/init-package-json/glob/path-is-absolute", - "_nodeVersion": "0.12.0", - "_npmUser": { - "email": "sindresorhus@gmail.com", - "name": "sindresorhus" - }, - "_npmVersion": "2.5.1", - "_phantomChildren": {}, - "_requested": { - "name": "path-is-absolute", - "raw": "path-is-absolute@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/init-package-json/glob" - ], - "_shrinkwrap": null, - "_spec": "path-is-absolute@^1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob", - "author": { - "email": "sindresorhus@gmail.com", - "name": "Sindre Sorhus", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/path-is-absolute/issues" - }, - "dependencies": {}, - "description": "Node.js 0.12 path.isAbsolute() ponyfill", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912", - "tarball": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "gitHead": "7a76a0c9f2263192beedbe0a820e4d0baee5b7a1", - "homepage": "https://github.com/sindresorhus/path-is-absolute", - "keywords": [ - "path", - "paths", - "file", - "dir", - "absolute", - "isabsolute", - "is-absolute", - "built-in", - "util", - "utils", - "core", - "ponyfill", - "polyfill", - "shim", - "is", - "detect", - "check" - ], - "license": "MIT", - "maintainers": [ - { - "email": "sindresorhus@gmail.com", - "name": "sindresorhus" - } - ], - "name": "path-is-absolute", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/path-is-absolute.git" - }, - "scripts": { - "test": "node test.js" - }, - "version": "1.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md deleted file mode 100644 index cdf94f43..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md +++ /dev/null @@ -1,51 +0,0 @@ -# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute) - -> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) ponyfill - -> Ponyfill: A polyfill that doesn't overwrite the native method - - -## Install - -``` -$ npm install --save path-is-absolute -``` - - -## Usage - -```js -var pathIsAbsolute = require('path-is-absolute'); - -// Linux -pathIsAbsolute('/home/foo'); -//=> true - -// Windows -pathIsAbsolute('C:/Users/'); -//=> true - -// Any OS -pathIsAbsolute.posix('/home/foo'); -//=> true -``` - - -## API - -See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path). - -### pathIsAbsolute(path) - -### pathIsAbsolute.posix(path) - -The Posix specific version. - -### pathIsAbsolute.win32(path) - -The Windows specific version. - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/package.json deleted file mode 100644 index 1ce30a9b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "_args": [ - [ - "glob@^6.0.0", - "/Users/rebecca/code/npm/node_modules/init-package-json" - ] - ], - "_from": "glob@>=6.0.0 <7.0.0", - "_id": "glob@6.0.4", - "_inCache": true, - "_installable": true, - "_location": "/init-package-json/glob", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "2.14.15", - "_phantomChildren": {}, - "_requested": { - "name": "glob", - "raw": "glob@^6.0.0", - "rawSpec": "^6.0.0", - "scope": null, - "spec": ">=6.0.0 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/init-package-json" - ], - "_resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "_shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22", - "_shrinkwrap": null, - "_spec": "glob@^6.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/init-package-json", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/node-glob/issues" - }, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "description": "a little globber", - "devDependencies": { - "mkdirp": "0", - "rimraf": "^2.2.8", - "tap": "^5.0.0", - "tick": "0.0.6" - }, - "directories": {}, - "dist": { - "shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22", - "tarball": "http://registry.npmjs.org/glob/-/glob-6.0.4.tgz" - }, - "engines": { - "node": "*" - }, - "files": [ - "glob.js", - "sync.js", - "common.js" - ], - "gitHead": "3bd419c538737e56fda7e21c21ff52ca0c198df6", - "homepage": "https://github.com/isaacs/node-glob#readme", - "license": "ISC", - "main": "glob.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "glob", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" - }, - "scripts": { - "bench": "bash benchmark.sh", - "benchclean": "node benchclean.js", - "prepublish": "npm run benchclean", - "prof": "bash prof.sh && cat profile.txt", - "profclean": "rm -f v8.log profile.txt", - "test": "tap test/*.js --cov", - "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" - }, - "version": "6.0.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/sync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/sync.js deleted file mode 100644 index 09883d2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/glob/sync.js +++ /dev/null @@ -1,460 +0,0 @@ -module.exports = globSync -globSync.GlobSync = GlobSync - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var Glob = require('./glob.js').Glob -var util = require('util') -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var childrenIgnored = common.childrenIgnored - -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - return new GlobSync(pattern, options).found -} - -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts(this, pattern, options) - - if (this.noprocess) - return this - - var n = this.minimatch.set.length - this.matches = new Array(n) - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false) - } - this._finish() -} - -GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) - if (this.realpath) { - var self = this - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null) - for (var p in matchset) { - try { - p = self._makeAbs(p) - var real = fs.realpathSync(p, self.realpathCache) - set[real] = true - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true - else - throw er - } - } - }) - } - common.finish(this) -} - - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // See if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip processing - if (childrenIgnored(this, read)) - return - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar) -} - - -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar) - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this.matches[index][e] = true - } - // This was the last one, and no stats were needed - return - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) - newPattern = [prefix, e] - else - newPattern = [e] - this._process(newPattern.concat(remain), index, inGlobStar) - } -} - - -GlobSync.prototype._emitMatch = function (index, e) { - var abs = this._makeAbs(e) - if (this.mark) - e = this._mark(e) - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[this._makeAbs(e)] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - if (this.stat) - this._stat(e) -} - - -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) - - var entries - var lstat - var stat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - // lstat failed, doesn't exist - return null - } - - var isSym = lstat.isSymbolicLink() - this.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) - this.cache[abs] = 'FILE' - else - entries = this._readdir(abs, false) - - return entries -} - -GlobSync.prototype._readdir = function (abs, inGlobStar) { - var entries - - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return null - - if (Array.isArray(c)) - return c - } - - try { - return this._readdirEntries(abs, fs.readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er) - return null - } -} - -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - - // mark and cache dir-ness - return entries -} - -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) - throw er - if (!this.silent) - console.error('glob error', er) - break - } -} - -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - - var entries = this._readdir(abs, inGlobStar) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false) - - var len = entries.length - var isSym = this.symlinks[abs] - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true) - } -} - -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this.matches[index][prefix] = true -} - -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return false - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c - - if (needDir && c === 'FILE') - return false - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (!stat) { - var lstat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - return false - } - - if (lstat.isSymbolicLink()) { - try { - stat = fs.statSync(abs) - } catch (er) { - stat = lstat - } - } else { - stat = lstat - } - } - - this.statCache[abs] = stat - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return false - - return c -} - -GlobSync.prototype._mark = function (p) { - return common.mark(this, p) -} - -GlobSync.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/.npmignore deleted file mode 100644 index 15a1789a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/.npmignore +++ /dev/null @@ -1 +0,0 @@ -example/npm-init/package.json diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/LICENSE deleted file mode 100644 index 05eeeb88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/README.md deleted file mode 100644 index 93c0418a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# promzard - -A prompting wizard for building files from specialized PromZard modules. -Used by `npm init`. - -A reimplementation of @SubStack's -[prompter](https://github.com/substack/node-prompter), which does not -use AST traversal. - -From another point of view, it's a reimplementation of -[@Marak](https://github.com/marak)'s -[wizard](https://github.com/Marak/wizard) which doesn't use schemas. - -The goal is a nice drop-in enhancement for `npm init`. - -## Usage - -```javascript -var promzard = require('promzard') -promzard(inputFile, optionalContextAdditions, function (er, data) { - // .. you know what you doing .. -}) -``` - -In the `inputFile` you can have something like this: - -```javascript -var fs = require('fs') -module.exports = { - "greeting": prompt("Who shall you greet?", "world", function (who) { - return "Hello, " + who - }), - "filename": __filename, - "directory": function (cb) { - fs.readdir(__dirname, cb) - } -} -``` - -When run, promzard will display the prompts and resolve the async -functions in order, and then either give you an error, or the resolved -data, ready to be dropped into a JSON file or some other place. - - -### promzard(inputFile, ctx, callback) - -The inputFile is just a node module. You can require() things, set -module.exports, etc. Whatever that module exports is the result, and it -is walked over to call any functions as described below. - -The only caveat is that you must give PromZard the full absolute path -to the module (you can get this via Node's `require.resolve`.) Also, -the `prompt` function is injected into the context object, so watch out. - -Whatever you put in that `ctx` will of course also be available in the -module. You can get quite fancy with this, passing in existing configs -and so on. - -### Class: promzard.PromZard(file, ctx) - -Just like the `promzard` function, but the EventEmitter that makes it -all happen. Emits either a `data` event with the data, or a `error` -event if it blows up. - -If `error` is emitted, then `data` never will be. - -### prompt(...) - -In the promzard input module, you can call the `prompt` function. -This prompts the user to input some data. The arguments are interpreted -based on type: - -1. `string` The first string encountered is the prompt. The second is - the default value. -2. `function` A transformer function which receives the data and returns - something else. More than meets the eye. -3. `object` The `prompt` member is the prompt, the `default` member is - the default value, and the `transform` is the transformer. - -Whatever the final value is, that's what will be put on the resulting -object. - -### Functions - -If there are any functions on the promzard input module's exports, then -promzard will call each of them with a callback. This way, your module -can do asynchronous actions if necessary to validate or ascertain -whatever needs verification. - -The functions are called in the context of the ctx object, and are given -a single argument, which is a callback that should be called with either -an error, or the result to assign to that spot. - -In the async function, you can also call prompt() and return the result -of the prompt in the callback. - -For example, this works fine in a promzard module: - -``` -exports.asyncPrompt = function (cb) { - fs.stat(someFile, function (er, st) { - // if there's an error, no prompt, just error - // otherwise prompt and use the actual file size as the default - cb(er, prompt('file size', st.size)) - }) -} -``` - -You can also return other async functions in the async function -callback. Though that's a bit silly, it could be a handy way to reuse -functionality in some cases. - -### Sync vs Async - -The `prompt()` function is not synchronous, though it appears that way. -It just returns a token that is swapped out when the data object is -walked over asynchronously later, and returns a token. - -For that reason, prompt() calls whose results don't end up on the data -object are never shown to the user. For example, this will only prompt -once: - -``` -exports.promptThreeTimes = prompt('prompt me once', 'shame on you') -exports.promptThreeTimes = prompt('prompt me twice', 'um....') -exports.promptThreeTimes = prompt('you cant prompt me again') -``` - -### Isn't this exactly the sort of 'looks sync' that you said was bad about other libraries? - -Yeah, sorta. I wouldn't use promzard for anything more complicated than -a wizard that spits out prompts to set up a config file or something. -Maybe there are other use cases I haven't considered. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js deleted file mode 100644 index 828f9d1d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js +++ /dev/null @@ -1,12 +0,0 @@ -var pz = require('../promzard') - -var path = require('path') -var file = path.resolve(__dirname, 'substack-input.js') -var buf = require('fs').readFileSync(file) -var ctx = { basename: path.basename(path.dirname(file)) } - -pz.fromBuffer(buf, ctx, function (er, res) { - if (er) - throw er - console.error(JSON.stringify(res, null, 2)) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/index.js deleted file mode 100644 index 435131f3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/index.js +++ /dev/null @@ -1,11 +0,0 @@ -var pz = require('../promzard') - -var path = require('path') -var file = path.resolve(__dirname, 'substack-input.js') -var ctx = { basename: path.basename(path.dirname(file)) } - -pz(file, ctx, function (er, res) { - if (er) - throw er - console.error(JSON.stringify(res, null, 2)) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md deleted file mode 100644 index 46e5592c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# npm-init - -An initter you init wit, innit? - -## More stuff here - -Blerp derp herp lerg borgle pop munch efemerate baz foo a gandt synergy -jorka chatt slurm. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js deleted file mode 100644 index ba7781b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js +++ /dev/null @@ -1,191 +0,0 @@ -var fs = require('fs') -var path = require('path'); - -module.exports = { - "name" : prompt('name', - typeof name === 'undefined' - ? basename.replace(/^node-|[.-]js$/g, ''): name), - "version" : prompt('version', typeof version !== "undefined" - ? version : '0.0.0'), - "description" : (function () { - if (typeof description !== 'undefined' && description) { - return description - } - var value; - try { - var src = fs.readFileSync('README.md', 'utf8'); - value = src.split('\n').filter(function (line) { - return /\s+/.test(line) - && line.trim() !== basename.replace(/^node-/, '') - && !line.trim().match(/^#/) - ; - })[0] - .trim() - .replace(/^./, function (c) { return c.toLowerCase() }) - .replace(/\.$/, '') - ; - } - catch (e) { - try { - // Wouldn't it be nice if that file mattered? - var d = fs.readFileSync('.git/description', 'utf8') - } catch (e) {} - if (d.trim() && !value) value = d - } - return prompt('description', value); - })(), - "main" : (function () { - var f - try { - f = fs.readdirSync(dirname).filter(function (f) { - return f.match(/\.js$/) - }) - if (f.indexOf('index.js') !== -1) - f = 'index.js' - else if (f.indexOf('main.js') !== -1) - f = 'main.js' - else if (f.indexOf(basename + '.js') !== -1) - f = basename + '.js' - else - f = f[0] - } catch (e) {} - - return prompt('entry point', f || 'index.js') - })(), - "bin" : function (cb) { - fs.readdir(dirname + '/bin', function (er, d) { - // no bins - if (er) return cb() - // just take the first js file we find there, or nada - return cb(null, d.filter(function (f) { - return f.match(/\.js$/) - })[0]) - }) - }, - "directories" : function (cb) { - fs.readdir('.', function (er, dirs) { - if (er) return cb(er) - var res = {} - dirs.forEach(function (d) { - switch (d) { - case 'example': case 'examples': return res.example = d - case 'test': case 'tests': return res.test = d - case 'doc': case 'docs': return res.doc = d - case 'man': return res.man = d - } - }) - if (Object.keys(res).length === 0) res = undefined - return cb(null, res) - }) - }, - "dependencies" : typeof dependencies !== 'undefined' ? dependencies - : function (cb) { - fs.readdir('node_modules', function (er, dir) { - if (er) return cb() - var deps = {} - var n = dir.length - dir.forEach(function (d) { - if (d.match(/^\./)) return next() - if (d.match(/^(expresso|mocha|tap|coffee-script|coco|streamline)$/)) - return next() - fs.readFile('node_modules/' + d + '/package.json', function (er, p) { - if (er) return next() - try { p = JSON.parse(p) } catch (e) { return next() } - if (!p.version) return next() - deps[d] = '~' + p.version - return next() - }) - }) - function next () { - if (--n === 0) return cb(null, deps) - } - }) - }, - "devDependencies" : typeof devDependencies !== 'undefined' ? devDependencies - : function (cb) { - // same as dependencies but for dev deps - fs.readdir('node_modules', function (er, dir) { - if (er) return cb() - var deps = {} - var n = dir.length - dir.forEach(function (d) { - if (d.match(/^\./)) return next() - if (!d.match(/^(expresso|mocha|tap|coffee-script|coco|streamline)$/)) - return next() - fs.readFile('node_modules/' + d + '/package.json', function (er, p) { - if (er) return next() - try { p = JSON.parse(p) } catch (e) { return next() } - if (!p.version) return next() - deps[d] = '~' + p.version - return next() - }) - }) - function next () { - if (--n === 0) return cb(null, deps) - } - }) - }, - "scripts" : (function () { - // check to see what framework is in use, if any - try { var d = fs.readdirSync('node_modules') } - catch (e) { d = [] } - var s = typeof scripts === 'undefined' ? {} : scripts - - if (d.indexOf('coffee-script') !== -1) - s.prepublish = prompt('build command', - s.prepublish || 'coffee src/*.coffee -o lib') - - var notest = 'echo "Error: no test specified" && exit 1' - function tx (test) { - return test || notest - } - - if (!s.test || s.test === notest) { - if (d.indexOf('tap') !== -1) - s.test = prompt('test command', 'tap test/*.js', tx) - else if (d.indexOf('expresso') !== -1) - s.test = prompt('test command', 'expresso test', tx) - else if (d.indexOf('mocha') !== -1) - s.test = prompt('test command', 'mocha', tx) - else - s.test = prompt('test command', tx) - } - - return s - - })(), - - "repository" : (function () { - try { var gconf = fs.readFileSync('.git/config') } - catch (e) { gconf = null } - if (gconf) { - gconf = gconf.split(/\r?\n/) - var i = gconf.indexOf('[remote "origin"]') - if (i !== -1) { - var u = gconf[i + 1] - if (!u.match(/^\s*url =/)) u = gconf[i + 2] - if (!u.match(/^\s*url =/)) u = null - else u = u.replace(/^\s*url = /, '') - } - if (u && u.match(/^git@github.com:/)) - u = u.replace(/^git@github.com:/, 'git://github.com/') - } - - return prompt('git repository', u) - })(), - - "keywords" : prompt(function (s) { - if (!s) return undefined - if (Array.isArray(s)) s = s.join(' ') - if (typeof s !== 'string') return s - return s.split(/[\s,]+/) - }), - "author" : config['init.author.name'] - ? { - "name" : config['init.author.name'], - "email" : config['init.author.email'], - "url" : config['init.author.url'] - } - : undefined, - "license" : prompt('license', 'BSD') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js deleted file mode 100644 index 09484cd1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js +++ /dev/null @@ -1,37 +0,0 @@ -var PZ = require('../../promzard').PromZard -var path = require('path') -var input = path.resolve(__dirname, 'init-input.js') - -var fs = require('fs') -var package = path.resolve(__dirname, 'package.json') -var pkg - -fs.readFile(package, 'utf8', function (er, d) { - if (er) ctx = {} - try { ctx = JSON.parse(d); pkg = JSON.parse(d) } - catch (e) { ctx = {} } - - ctx.dirname = path.dirname(package) - ctx.basename = path.basename(ctx.dirname) - if (!ctx.version) ctx.version = undefined - - // this should be replaced with the npm conf object - ctx.config = {} - - console.error('ctx=', ctx) - - var pz = new PZ(input, ctx) - - pz.on('data', function (data) { - console.error('pz data', data) - if (!pkg) pkg = {} - Object.keys(data).forEach(function (k) { - if (data[k] !== undefined && data[k] !== null) pkg[k] = data[k] - }) - console.error('package data %s', JSON.stringify(data, null, 2)) - fs.writeFile(package, JSON.stringify(pkg, null, 2), function (er) { - if (er) throw er - console.log('ok') - }) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json deleted file mode 100644 index 89c6d1fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "npm-init", - "version": "0.0.0", - "description": "an initter you init wit, innit?", - "main": "index.js", - "scripts": { - "test": "asdf" - }, - "license": "BSD" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js deleted file mode 100644 index bf7aedb8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js +++ /dev/null @@ -1,61 +0,0 @@ -module.exports = { - "name" : basename.replace(/^node-/, ''), - "version" : "0.0.0", - "description" : (function (cb) { - var fs = require('fs'); - var value; - try { - var src = fs.readFileSync('README.markdown', 'utf8'); - value = src.split('\n').filter(function (line) { - return /\s+/.test(line) - && line.trim() !== basename.replace(/^node-/, '') - ; - })[0] - .trim() - .replace(/^./, function (c) { return c.toLowerCase() }) - .replace(/\.$/, '') - ; - } - catch (e) {} - - return prompt('description', value); - })(), - "main" : prompt('entry point', 'index.js'), - "bin" : function (cb) { - var path = require('path'); - var fs = require('fs'); - var exists = fs.exists || path.exists; - exists('bin/cmd.js', function (ex) { - var bin - if (ex) { - var bin = {} - bin[basename.replace(/^node-/, '')] = 'bin/cmd.js' - } - cb(null, bin); - }); - }, - "directories" : { - "example" : "example", - "test" : "test" - }, - "dependencies" : {}, - "devDependencies" : { - "tap" : "~0.2.5" - }, - "scripts" : { - "test" : "tap test/*.js" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/substack/" + basename + ".git" - }, - "homepage" : "https://github.com/substack/" + basename, - "keywords" : prompt(function (s) { return s.split(/\s+/) }), - "author" : { - "name" : "James Halliday", - "email" : "mail@substack.net", - "url" : "http://substack.net" - }, - "license" : "MIT", - "engine" : { "node" : ">=0.6" } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/package.json deleted file mode 100644 index 1407e97b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "promzard", - "description": "prompting wizardly", - "version": "0.3.0", - "repository": { - "url": "git://github.com/isaacs/promzard.git" - }, - "dependencies": { - "read": "1" - }, - "devDependencies": { - "tap": "~0.2.5" - }, - "main": "promzard.js", - "scripts": { - "test": "tap test/*.js" - }, - "license": "ISC", - "gitHead": "780ead051299aa28be2584199ab6fa503a32d354", - "bugs": { - "url": "https://github.com/isaacs/promzard/issues" - }, - "homepage": "https://github.com/isaacs/promzard", - "_id": "promzard@0.3.0", - "_shasum": "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee", - "_from": "promzard@>=0.3.0 <0.4.0", - "_npmVersion": "2.7.1", - "_nodeVersion": "1.4.2", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "dist": { - "shasum": "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee", - "tarball": "http://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/promzard.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/promzard.js deleted file mode 100644 index da1abca9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/promzard.js +++ /dev/null @@ -1,238 +0,0 @@ -module.exports = promzard -promzard.PromZard = PromZard - -var fs = require('fs') -var vm = require('vm') -var util = require('util') -var files = {} -var crypto = require('crypto') -var EventEmitter = require('events').EventEmitter -var read = require('read') - -var Module = require('module').Module -var path = require('path') - -function promzard (file, ctx, cb) { - if (typeof ctx === 'function') cb = ctx, ctx = null; - if (!ctx) ctx = {}; - var pz = new PromZard(file, ctx) - pz.on('error', cb) - pz.on('data', function (data) { - cb(null, data) - }) -} -promzard.fromBuffer = function (buf, ctx, cb) { - var filename = 0 - do { - filename = '\0' + Math.random(); - } while (files[filename]) - files[filename] = buf - var ret = promzard(filename, ctx, cb) - delete files[filename] - return ret -} - -function PromZard (file, ctx) { - if (!(this instanceof PromZard)) - return new PromZard(file, ctx) - EventEmitter.call(this) - this.file = file - this.ctx = ctx - this.unique = crypto.randomBytes(8).toString('hex') - this.load() -} - -PromZard.prototype = Object.create( - EventEmitter.prototype, - { constructor: { - value: PromZard, - readable: true, - configurable: true, - writable: true, - enumerable: false } } ) - -PromZard.prototype.load = function () { - if (files[this.file]) - return this.loaded() - - fs.readFile(this.file, 'utf8', function (er, d) { - if (er && this.backupFile) { - this.file = this.backupFile - delete this.backupFile - return this.load() - } - if (er) - return this.emit('error', this.error = er) - files[this.file] = d - this.loaded() - }.bind(this)) -} - -PromZard.prototype.loaded = function () { - this.ctx.prompt = this.makePrompt() - this.ctx.__filename = this.file - this.ctx.__dirname = path.dirname(this.file) - this.ctx.__basename = path.basename(this.file) - var mod = this.ctx.module = this.makeModule() - this.ctx.require = function (path) { - return mod.require(path) - } - this.ctx.require.resolve = function(path) { - return Module._resolveFilename(path, mod); - } - this.ctx.exports = mod.exports - - this.script = this.wrap(files[this.file]) - var fn = vm.runInThisContext(this.script, this.file) - var args = Object.keys(this.ctx).map(function (k) { - return this.ctx[k] - }.bind(this)) - try { var res = fn.apply(this.ctx, args) } - catch (er) { this.emit('error', er) } - if (res && - typeof res === 'object' && - exports === mod.exports && - Object.keys(exports).length === 1) { - this.result = res - } else { - this.result = mod.exports - } - this.walk() -} - -PromZard.prototype.makeModule = function () { - var mod = new Module(this.file, module) - mod.loaded = true - mod.filename = this.file - mod.id = this.file - mod.paths = Module._nodeModulePaths(path.dirname(this.file)) - return mod -} - -PromZard.prototype.wrap = function (body) { - var s = '(function( %s ) { %s\n })' - var args = Object.keys(this.ctx).join(', ') - return util.format(s, args, body) -} - -PromZard.prototype.makePrompt = function () { - this.prompts = [] - return prompt.bind(this) - function prompt () { - var p, d, t - for (var i = 0; i < arguments.length; i++) { - var a = arguments[i] - if (typeof a === 'string' && p) - d = a - else if (typeof a === 'string') - p = a - else if (typeof a === 'function') - t = a - else if (a && typeof a === 'object') { - p = a.prompt || p - d = a.default || d - t = a.transform || t - } - } - - try { return this.unique + '-' + this.prompts.length } - finally { this.prompts.push([p, d, t]) } - } -} - -PromZard.prototype.walk = function (o, cb) { - o = o || this.result - cb = cb || function (er, res) { - if (er) - return this.emit('error', this.error = er) - this.result = res - return this.emit('data', res) - } - cb = cb.bind(this) - var keys = Object.keys(o) - var i = 0 - var len = keys.length - - L.call(this) - function L () { - if (this.error) - return - while (i < len) { - var k = keys[i] - var v = o[k] - i++ - - if (v && typeof v === 'object') { - return this.walk(v, function (er, res) { - if (er) return cb(er) - o[k] = res - L.call(this) - }.bind(this)) - } else if (v && - typeof v === 'string' && - v.indexOf(this.unique) === 0) { - var n = +v.substr(this.unique.length + 1) - var prompt = this.prompts[n] - if (isNaN(n) || !prompt) - continue - - // default to the key - if (undefined === prompt[0]) - prompt[0] = k - - // default to the ctx value, if there is one - if (undefined === prompt[1]) - prompt[1] = this.ctx[k] - - return this.prompt(prompt, function (er, res) { - if (er) { - if (!er.notValid) { - return this.emit('error', this.error = er); - } - console.log(er.message) - i -- - return L.call(this) - } - o[k] = res - L.call(this) - }.bind(this)) - } else if (typeof v === 'function') { - try { return v.call(this.ctx, function (er, res) { - if (er) - return this.emit('error', this.error = er) - o[k] = res - // back up so that we process this one again. - // this is because it might return a prompt() call in the cb. - i -- - L.call(this) - }.bind(this)) } - catch (er) { this.emit('error', er) } - } - } - // made it to the end of the loop, maybe - if (i >= len) - return cb(null, o) - } -} - -PromZard.prototype.prompt = function (pdt, cb) { - var prompt = pdt[0] - var def = pdt[1] - var tx = pdt[2] - - if (tx) { - cb = function (cb) { return function (er, data) { - try { - var res = tx(data) - if (!er && res instanceof Error && !!res.notValid) { - return cb(res, null) - } - return cb(er, res) - } - catch (er) { this.emit('error', er) } - }}(cb).bind(this) - } - - read({ prompt: prompt + ':' , default: def }, cb) -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/basic.js deleted file mode 100644 index ad1c92df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/basic.js +++ /dev/null @@ -1,91 +0,0 @@ -var tap = require('tap') -var pz = require('../promzard.js') -var spawn = require('child_process').spawn - -tap.test('run the example', function (t) { - - var example = require.resolve('../example/index.js') - var node = process.execPath - - var expect = { - "name": "example", - "version": "0.0.0", - "description": "testing description", - "main": "test-entry.js", - "directories": { - "example": "example", - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "~0.2.5" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/example.git" - }, - "homepage": "https://github.com/substack/example", - "keywords": [ - "fugazi", - "function", - "waiting", - "room" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "engine": { - "node": ">=0.6" - } - } - - console.error('%s %s', node, example) - var c = spawn(node, [example], { customFds: [-1,-1,-1] }) - var output = '' - c.stdout.on('data', function (d) { - output += d - respond() - }) - - var actual = '' - c.stderr.on('data', function (d) { - actual += d - }) - - function respond () { - console.error('respond', output) - if (output.match(/description: $/)) { - c.stdin.write('testing description\n') - return - } - if (output.match(/entry point: \(index\.js\) $/)) { - c.stdin.write('test-entry.js\n') - return - } - if (output.match(/keywords: $/)) { - c.stdin.write('fugazi function waiting room\n') - // "read" module is weird on node >= 0.10 when not a TTY - // requires explicit ending for reasons. - // could dig in, but really just wanna make tests pass, whatever. - c.stdin.end() - return - } - } - - c.on('exit', function () { - console.error('exit event') - }) - - c.on('close', function () { - console.error('actual', actual) - actual = JSON.parse(actual) - t.deepEqual(actual, expect) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js deleted file mode 100644 index e1d240e2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js +++ /dev/null @@ -1,84 +0,0 @@ -var tap = require('tap') -var pz = require('../promzard.js') -var spawn = require('child_process').spawn - -tap.test('run the example using a buffer', function (t) { - - var example = require.resolve('../example/buffer.js') - var node = process.execPath - - var expect = { - "name": "example", - "version": "0.0.0", - "description": "testing description", - "main": "test-entry.js", - "directories": { - "example": "example", - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "~0.2.5" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/example.git" - }, - "homepage": "https://github.com/substack/example", - "keywords": [ - "fugazi", - "function", - "waiting", - "room" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "engine": { - "node": ">=0.6" - } - } - - var c = spawn(node, [example], { customFds: [-1,-1,-1] }) - var output = '' - c.stdout.on('data', function (d) { - output += d - respond() - }) - - var actual = '' - c.stderr.on('data', function (d) { - actual += d - }) - - function respond () { - if (output.match(/description: $/)) { - c.stdin.write('testing description\n') - return - } - if (output.match(/entry point: \(index\.js\) $/)) { - c.stdin.write('test-entry.js\n') - return - } - if (output.match(/keywords: $/)) { - c.stdin.write('fugazi function waiting room\n') - // "read" module is weird on node >= 0.10 when not a TTY - // requires explicit ending for reasons. - // could dig in, but really just wanna make tests pass, whatever. - c.stdin.end() - return - } - } - - c.on('close', function () { - actual = JSON.parse(actual) - t.deepEqual(actual, expect) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input deleted file mode 100644 index 061cbfe1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input +++ /dev/null @@ -1,5 +0,0 @@ -exports.a = 1 + 2 -exports.b = prompt('To be or not to be?', '!2b') -exports.c = {} -exports.c.x = prompt() -exports.c.y = tmpdir + "/y/file.txt" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js deleted file mode 100644 index c17993a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js +++ /dev/null @@ -1,48 +0,0 @@ -var test = require('tap').test; -var promzard = require('../'); - -if (process.argv[2] === 'child') { - return child() -} - -test('exports', function (t) { - t.plan(1); - - var spawn = require('child_process').spawn - var child = spawn(process.execPath, [__filename, 'child']) - - var output = '' - child.stderr.on('data', function (c) { - output += c - }) - - setTimeout(function () { - child.stdin.write('\n'); - }, 100) - setTimeout(function () { - child.stdin.end('55\n'); - }, 200) - - child.on('close', function () { - console.error('output=%j', output) - output = JSON.parse(output) - t.same({ - a : 3, - b : '!2b', - c : { - x : 55, - y : '/tmp/y/file.txt', - } - }, output); - t.end() - }) -}); - -function child () { - var ctx = { tmpdir : '/tmp' } - var file = __dirname + '/exports.input'; - - promzard(file, ctx, function (err, output) { - console.error(JSON.stringify(output)) - }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input deleted file mode 100644 index ed6c3f1c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input +++ /dev/null @@ -1,18 +0,0 @@ -var fs = require('fs') - -module.exports = { - "a": 1 + 2, - "b": prompt('To be or not to be?', '!2b', function (s) { - return s.toUpperCase() + '...' - }), - "c": { - "x": prompt(function (x) { return x * 100 }), - "y": tmpdir + "/y/file.txt" - }, - a_function: function (cb) { - fs.readFile(__filename, 'utf8', cb) - }, - asyncPrompt: function (cb) { - return cb(null, prompt('a prompt at any other time would smell as sweet')) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js deleted file mode 100644 index 899ebedb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js +++ /dev/null @@ -1,56 +0,0 @@ -var test = require('tap').test; -var promzard = require('../'); -var fs = require('fs') -var file = __dirname + '/fn.input'; - -var expect = { - a : 3, - b : '!2B...', - c : { - x : 5500, - y : '/tmp/y/file.txt', - } -} -expect.a_function = fs.readFileSync(file, 'utf8') -expect.asyncPrompt = 'async prompt' - -if (process.argv[2] === 'child') { - return child() -} - -test('prompt callback param', function (t) { - t.plan(1); - - var spawn = require('child_process').spawn - var child = spawn(process.execPath, [__filename, 'child']) - - var output = '' - child.stderr.on('data', function (c) { - output += c - }) - - child.on('close', function () { - console.error('output=%j', output) - output = JSON.parse(output) - t.same(output, expect); - t.end() - }) - - setTimeout(function () { - child.stdin.write('\n') - }, 100) - setTimeout(function () { - child.stdin.write('55\n') - }, 150) - setTimeout(function () { - child.stdin.end('async prompt\n') - }, 200) -}) - -function child () { - var ctx = { tmpdir : '/tmp' } - var file = __dirname + '/fn.input'; - promzard(file, ctx, function (err, output) { - console.error(JSON.stringify(output)) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input deleted file mode 100644 index e49def64..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - "a": 1 + 2, - "b": prompt('To be or not to be?', '!2b'), - "c": { - "x": prompt(), - "y": tmpdir + "/y/file.txt" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js deleted file mode 100644 index 034a8647..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js +++ /dev/null @@ -1,30 +0,0 @@ -var test = require('tap').test; -var promzard = require('../'); - -test('simple', function (t) { - t.plan(1); - - var ctx = { tmpdir : '/tmp' } - var file = __dirname + '/simple.input'; - promzard(file, ctx, function (err, output) { - t.same( - { - a : 3, - b : '!2b', - c : { - x : 55, - y : '/tmp/y/file.txt', - } - }, - output - ); - }); - - setTimeout(function () { - process.stdin.emit('data', '\n'); - }, 100); - - setTimeout(function () { - process.stdin.emit('data', '55\n'); - }, 200); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/validate.input b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/validate.input deleted file mode 100644 index 839c0652..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/validate.input +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - "name": prompt("name", function (data) { - if (data === 'cool') return data - var er = new Error('not cool') - er.notValid = true - return er - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js deleted file mode 100644 index a1206814..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js +++ /dev/null @@ -1,20 +0,0 @@ - -var promzard = require('../') -var test = require('tap').test - -test('validate', function (t) { - t.plan(2) - var ctx = { tmpdir : '/tmp' } - var file = __dirname + '/validate.input' - promzard(file, ctx, function (er, found) { - t.ok(!er) - var wanted = { name: 'cool' } - t.same(found, wanted) - }) - setTimeout(function () { - process.stdin.emit('data', 'not cool\n') - }, 100) - setTimeout(function () { - process.stdin.emit('data', 'cool\n') - }, 200) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/package.json deleted file mode 100644 index fbca584d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/package.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "_args": [ - [ - { - "name": "init-package-json", - "raw": "init-package-json@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "/Users/zkat/Documents/code/npm" - ] - ], - "_from": "init-package-json@latest", - "_id": "init-package-json@1.9.4", - "_inCache": true, - "_installable": true, - "_location": "/init-package-json", - "_nodeVersion": "5.10.1", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/init-package-json-1.9.4.tgz_1463610982259_0.011722659226506948" - }, - "_npmUser": { - "email": "kat@sykosomatic.org", - "name": "zkat" - }, - "_npmVersion": "3.9.1", - "_phantomChildren": { - "inflight": "1.0.5", - "inherits": "2.0.1", - "once": "1.3.3", - "read": "1.0.7" - }, - "_requested": { - "name": "init-package-json", - "raw": "init-package-json@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz", - "_shasum": "b4053d0b40f0cf842a41966937cb3dc0f534e856", - "_shrinkwrap": null, - "_spec": "init-package-json@latest", - "_where": "/Users/zkat/Documents/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/npm/init-package-json/issues" - }, - "dependencies": { - "glob": "^6.0.0", - "npm-package-arg": "^4.0.0", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "1 || 2", - "semver": "2.x || 3.x || 4 || 5", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^2.0.1" - }, - "description": "A node module to get your node module started", - "devDependencies": { - "npm": "^2", - "rimraf": "^2.1.4", - "tap": "^1.2.0" - }, - "directories": {}, - "dist": { - "shasum": "b4053d0b40f0cf842a41966937cb3dc0f534e856", - "tarball": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz" - }, - "gitHead": "3c34250fa58507056a94f3940ee2a28540f83592", - "homepage": "https://github.com/npm/init-package-json#readme", - "keywords": [ - "init", - "package.json", - "package", - "helper", - "wizard", - "wizerd", - "prompt", - "start" - ], - "license": "ISC", - "main": "init-package-json.js", - "maintainers": [ - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "me@re-becca.org", - "name": "iarna" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "init-package-json", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/init-package-json.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.9.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/basic.input b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/basic.input deleted file mode 100644 index ca309e92..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/basic.input +++ /dev/null @@ -1,15 +0,0 @@ -var assert = require('assert') - -exports.name = prompt('name', package.name || basename) -exports.version = '1.2.5' -exports.description = prompt('description', package.description) -exports.author = 'npmbot (http://npm.im)' -exports.scripts = package.scripts || {} -exports.scripts.test = 'make test' -exports.main = package.main || 'main.js' -exports.config = JSON.parse(JSON.stringify(config)) -try {delete exports.config.config}catch(e){} -try {delete exports.package.config}catch(e){} -try {delete exports.package.package}catch(e){} -try {delete exports.config.package}catch(e){} -exports.package = JSON.parse(JSON.stringify(package)) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/basic.js deleted file mode 100644 index d67e0c3b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/basic.js +++ /dev/null @@ -1,35 +0,0 @@ -var common = require('./lib/common') -var init = require('../') -var path = require('path') -var rimraf = require('rimraf') -var test = require('tap').test - -test('the basics', function (t) { - var i = path.join(__dirname, 'basic.input') - rimraf.sync(__dirname + '/package.json') - init(__dirname, i, { foo: 'bar' }, function (er, data) { - if (er) throw er - var expect = { - name: 'the-name', - version: '1.2.5', - description: 'description', - author: 'npmbot (http://npm.im)', - scripts: { test: 'make test' }, - main: 'main.js', - config: { foo: 'bar' }, - package: {} - } - console.log('') - t.same(data, expect) - t.end() - }) - common.drive([ - 'the-name\n', - 'description\n', - 'yes\n' - ]) -}) - -test('teardown', function (t) { - rimraf(__dirname + '/package.json', t.end.bind(t)) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/lib/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/lib/common.js deleted file mode 100644 index de45089f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/lib/common.js +++ /dev/null @@ -1,24 +0,0 @@ -module.exports.drive = drive - -var semver = require('semver') - -function drive (input) { - var stdin = process.stdin - function emit (chunk, ms) { - setTimeout(function () { - stdin.emit('data', chunk) - }, ms) - } - if (semver.gte(process.versions.node, '0.11.0')) { - input.forEach(function (chunk) { - stdin.push(chunk) - }) - } else { - stdin.once('readable', function () { - var ms = 0 - input.forEach(function (chunk) { - emit(chunk, ms += 50) - }) - }) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/license.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/license.js deleted file mode 100644 index 8d8ae93d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/license.js +++ /dev/null @@ -1,41 +0,0 @@ -var test = require('tap').test -var init = require('../') -var rimraf = require('rimraf') -var common = require('./lib/common') - -test('license', function (t) { - init(__dirname, '', {}, function (er, data) { - if (er) - throw er - - var wanted = { - name: 'the-name', - version: '1.0.0', - description: '', - scripts: { test: 'echo "Error: no test specified" && exit 1' }, - license: 'Apache-2.0', - author: '', - main: 'basic.js' - } - console.log('') - t.has(data, wanted) - t.end() - }) - common.drive([ - 'the-name\n', - '\n', - '\n', - '\n', - '\n', - '\n', - '\n', - '\n', - 'Apache\n', - 'Apache-2.0\n', - 'yes\n' - ]) -}) - -test('teardown', function (t) { - rimraf(__dirname + '/package.json', t.end.bind(t)) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/name-spaces.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/name-spaces.js deleted file mode 100644 index a395afb9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/name-spaces.js +++ /dev/null @@ -1,41 +0,0 @@ -var test = require('tap').test -var init = require('../') -var rimraf = require('rimraf') -var common = require('./lib/common') - -test('spaces', function (t) { - rimraf.sync(__dirname + '/package.json') - init(__dirname, '', {}, function (er, data) { - if (er) - throw er - var wanted = { - name: 'the-name', - version: '1.0.0', - description: '', - scripts: { test: 'echo "Error: no test specified" && exit 1' }, - license: 'ISC', - author: '', - main: 'basic.js' - } - console.log('') - t.has(data, wanted) - t.end() - }) - common.drive([ - 'the name\n', - 'the-name\n', - '\n', - '\n', - '\n', - '\n', - '\n', - '\n', - '\n', - '\n', - 'yes\n' - ]) -}) - -test('teardown', function (t) { - rimraf(__dirname + '/package.json', t.end.bind(t)) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/name-uppercase.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/name-uppercase.js deleted file mode 100644 index d1623260..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/name-uppercase.js +++ /dev/null @@ -1,41 +0,0 @@ -var test = require('tap').test -var init = require('../') -var rimraf = require('rimraf') -var common = require('./lib/common') - -test('uppercase', function (t) { - init(__dirname, '', {}, function (er, data) { - if (er) - throw er - - var wanted = { - name: 'the-name', - version: '1.0.0', - description: '', - scripts: { test: 'echo "Error: no test specified" && exit 1' }, - license: 'ISC', - author: '', - main: 'basic.js' - } - console.log('') - t.has(data, wanted) - t.end() - }) - common.drive([ - 'THE-NAME\n', - 'the-name\n', - '\n', - '\n', - '\n', - '\n', - '\n', - '\n', - '\n', - '\n', - 'yes\n' - ]) -}) - -test('teardown', function (t) { - rimraf(__dirname + '/package.json', t.end.bind(t)) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/npm-defaults.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/npm-defaults.js deleted file mode 100644 index 292b9623..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/npm-defaults.js +++ /dev/null @@ -1,109 +0,0 @@ -var test = require('tap').test -var rimraf = require('rimraf') -var resolve = require('path').resolve - -var npm = require('npm') -var init = require('../') - -var EXPECTED = { - name: 'test', - version: '3.1.4', - description: '', - main: 'basic.js', - scripts: { - test: 'echo "Error: no test specified" && exit 1' - }, - keywords: [], - author: 'npmbot (http://npm.im/)', - license: 'WTFPL' -} - -test('npm configuration values pulled from environment', function (t) { - /*eslint camelcase:0 */ - process.env.npm_config_yes = 'yes' - - process.env.npm_config_init_author_name = 'npmbot' - process.env.npm_config_init_author_email = 'n@p.m' - process.env.npm_config_init_author_url = 'http://npm.im' - - process.env.npm_config_init_license = EXPECTED.license - process.env.npm_config_init_version = EXPECTED.version - - npm.load({}, function (err) { - t.ifError(err, 'npm loaded successfully') - - // clear out dotted names from test environment - npm.config.del('init.author.name') - npm.config.del('init.author.email') - npm.config.del('init.author.url') - // the following have npm defaults, and need to be explicitly overridden - npm.config.set('init.license', '') - npm.config.set('init.version', '') - - process.chdir(resolve(__dirname)) - init(__dirname, __dirname, npm.config, function (er, data) { - t.ifError(err, 'init ran successfully') - - t.same(data, EXPECTED, 'got the package data from the environment') - t.end() - }) - }) -}) - -test('npm configuration values pulled from dotted config', function (t) { - /*eslint camelcase:0 */ - var config = { - yes: 'yes', - - 'init.author.name': 'npmbot', - 'init.author.email': 'n@p.m', - 'init.author.url': 'http://npm.im', - - 'init.license': EXPECTED.license, - 'init.version': EXPECTED.version - } - - npm.load(config, function (err) { - t.ifError(err, 'npm loaded successfully') - - process.chdir(resolve(__dirname)) - init(__dirname, __dirname, npm.config, function (er, data) { - t.ifError(err, 'init ran successfully') - - t.same(data, EXPECTED, 'got the package data from the config') - t.end() - }) - }) -}) - -test('npm configuration values pulled from dashed config', function (t) { - /*eslint camelcase:0 */ - var config = { - yes: 'yes', - - 'init-author-name': 'npmbot', - 'init-author-email': 'n@p.m', - 'init-author-url': 'http://npm.im', - - 'init-license': EXPECTED.license, - 'init-version': EXPECTED.version - } - - npm.load(config, function (err) { - t.ifError(err, 'npm loaded successfully') - - process.chdir(resolve(__dirname)) - init(__dirname, __dirname, npm.config, function (er, data) { - t.ifError(err, 'init ran successfully') - - t.same(data, EXPECTED, 'got the package data from the config') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - rimraf.sync(resolve(__dirname, 'package.json')) - t.pass('cleaned up') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/scope-in-config-existing-name.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/scope-in-config-existing-name.js deleted file mode 100644 index 39dc90f4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/scope-in-config-existing-name.js +++ /dev/null @@ -1,30 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var rimraf = require('rimraf') -var tap = require('tap') - -var init = require('../') - -var json = { - name: '@already/scoped', - version: '1.0.0' -} - -tap.test('with existing package.json', function (t) { - fs.writeFileSync(path.join(__dirname, 'package.json'), JSON.stringify(json, null, 2)) - console.log(fs.readFileSync(path.join(__dirname, 'package.json'), 'utf8')) - console.error('wrote json', json) - init(__dirname, __dirname, { yes: 'yes', scope: '@still' }, function (er, data) { - if (er) throw er - - console.log('') - t.equal(data.name, '@still/scoped', 'new scope is added, basic name is kept') - t.end() - }) -}) - -tap.test('teardown', function (t) { - rimraf.sync(path.join(__dirname, 'package.json')) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/scope-in-config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/scope-in-config.js deleted file mode 100644 index 32bba16e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/scope-in-config.js +++ /dev/null @@ -1,33 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var rimraf = require('rimraf') -var tap = require('tap') - -var init = require('../') - -var EXPECT = { - name: '@scoped/test', - version: '1.0.0', - description: '', - author: '', - scripts: { test: 'echo \"Error: no test specified\" && exit 1' }, - main: 'basic.js', - keywords: [], - license: 'ISC' -} - -tap.test('--yes with scope', function (t) { - init(__dirname, __dirname, { yes: 'yes', scope: '@scoped' }, function (er, data) { - if (er) throw er - - console.log('') - t.has(data, EXPECT) - t.end() - }) -}) - -tap.test('teardown', function (t) { - rimraf.sync(path.join(__dirname, 'package.json')) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/scope.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/scope.js deleted file mode 100644 index 4fa06492..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/scope.js +++ /dev/null @@ -1,39 +0,0 @@ -var tap = require('tap') -var init = require('../') -var rimraf = require('rimraf') - -var EXPECT = { - name: '@foo/test', - version: '1.2.5', - description: 'description', - author: 'npmbot (http://npm.im)', - scripts: { test: 'make test' }, - main: 'main.js', - config: { scope: '@foo' }, - package: {} -} - -tap.test('the scope', function (t) { - var i = __dirname + '/basic.input' - var dir = __dirname - init(dir, i, {scope: '@foo'}, function (er, data) { - if (er) throw er - - console.log('') - t.has(data, EXPECT) - t.end() - }) - setTimeout(function () { - process.stdin.emit('data', '@foo/test\n') - }, 50) - setTimeout(function () { - process.stdin.emit('data', 'description\n') - }, 100) - setTimeout(function () { - process.stdin.emit('data', 'yes\n') - }, 150) -}) - -tap.test('teardown', function (t) { - rimraf(__dirname + '/package.json', t.end.bind(t)) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/silent.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/silent.js deleted file mode 100644 index 49370205..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/silent.js +++ /dev/null @@ -1,23 +0,0 @@ -var tap = require('tap') -var init = require('../') -var rimraf = require('rimraf') - -var log = console.log -var logged = false -console.log = function () { - logged = true -} - -tap.test('silent: true', function (t) { - init(__dirname, __dirname, {yes: 'yes', silent: true}, function (er, data) { - if (er) throw er - - t.false(logged, 'did not print anything') - t.end() - }) -}) - -tap.test('teardown', function (t) { - console.log = log - rimraf(__dirname + '/package.json', t.end.bind(t)) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/yes-defaults.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/yes-defaults.js deleted file mode 100644 index f7cae28c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/init-package-json/test/yes-defaults.js +++ /dev/null @@ -1,27 +0,0 @@ -var tap = require('tap') -var init = require('../') -var rimraf = require('rimraf') - -var EXPECT = { - name: 'test', - version: '1.0.0', - description: '', - author: '', - scripts: { test: 'echo "Error: no test specified" && exit 1' }, - main: 'basic.js', - keywords: [], - license: 'ISC' -} - -tap.test('--yes defaults', function (t) { - init(__dirname, __dirname, {yes: 'yes'}, function (er, data) { - if (er) throw er - - t.has(data, EXPECT, 'used the default data') - t.end() - }) -}) - -tap.test('teardown', function (t) { - rimraf(__dirname + '/package.json', t.end.bind(t)) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/README.md deleted file mode 100644 index 3960194f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# lockfile - -A very polite lock file utility, which endeavors to not litter, and to -wait patiently for others. - -## Usage - -```javascript -var lockFile = require('lockfile') - -// opts is optional, and defaults to {} -lockFile.lock('some-file.lock', opts, function (er) { - // if the er happens, then it failed to acquire a lock. - // if there was not an error, then the file was created, - // and won't be deleted until we unlock it. - - // do my stuff, free of interruptions - // then, some time later, do: - lockFile.unlock('some-file.lock', function (er) { - // er means that an error happened, and is probably bad. - }) -}) -``` - -## Methods - -Sync methods return the value/throw the error, others don't. Standard -node fs stuff. - -All known locks are removed when the process exits. Of course, it's -possible for certain types of failures to cause this to fail, but a best -effort is made to not be a litterbug. - -### lockFile.lock(path, [opts], cb) - -Acquire a file lock on the specified path - -### lockFile.lockSync(path, [opts]) - -Acquire a file lock on the specified path - -### lockFile.unlock(path, cb) - -Close and unlink the lockfile. - -### lockFile.unlockSync(path) - -Close and unlink the lockfile. - -### lockFile.check(path, [opts], cb) - -Check if the lockfile is locked and not stale. - -Callback is called with `cb(error, isLocked)`. - -### lockFile.checkSync(path, [opts]) - -Check if the lockfile is locked and not stale. - -Returns boolean. - -## Options - -### opts.wait - -A number of milliseconds to wait for locks to expire before giving up. -Only used by lockFile.lock. Poll for `opts.wait` ms. If the lock is -not cleared by the time the wait expires, then it returns with the -original error. - -### opts.pollPeriod - -When using `opts.wait`, this is the period in ms in which it polls to -check if the lock has expired. Defaults to `100`. - -### opts.stale - -A number of milliseconds before locks are considered to have expired. - -### opts.retries - -Used by lock and lockSync. Retry `n` number of times before giving up. - -### opts.retryWait - -Used by lock. Wait `n` milliseconds before retrying. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/lockfile.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/lockfile.js deleted file mode 100644 index 0c2c6f59..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/lockfile.js +++ /dev/null @@ -1,311 +0,0 @@ -var fs = require('fs') - -var wx = 'wx' -if (process.version.match(/^v0\.[0-6]/)) { - var c = require('constants') - wx = c.O_TRUNC | c.O_CREAT | c.O_WRONLY | c.O_EXCL -} - -var os = require('os') -exports.filetime = 'ctime' -if (os.platform() == "win32") { - exports.filetime = 'mtime' -} - -var debug -var util = require('util') -if (util.debuglog) - debug = util.debuglog('LOCKFILE') -else if (/\blockfile\b/i.test(process.env.NODE_DEBUG)) - debug = function() { - var msg = util.format.apply(util, arguments) - console.error('LOCKFILE %d %s', process.pid, msg) - } -else - debug = function() {} - -var locks = {} - -function hasOwnProperty (obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop) -} - -process.on('exit', function () { - debug('exit listener') - // cleanup - Object.keys(locks).forEach(exports.unlockSync) -}) - -// XXX https://github.com/joyent/node/issues/3555 -// Remove when node 0.8 is deprecated. -if (/^v0\.[0-8]\./.test(process.version)) { - debug('uncaughtException, version = %s', process.version) - process.on('uncaughtException', function H (er) { - debug('uncaughtException') - var l = process.listeners('uncaughtException').filter(function (h) { - return h !== H - }) - if (!l.length) { - // cleanup - try { Object.keys(locks).forEach(exports.unlockSync) } catch (e) {} - process.removeListener('uncaughtException', H) - throw er - } - }) -} - -exports.unlock = function (path, cb) { - debug('unlock', path) - // best-effort. unlocking an already-unlocked lock is a noop - delete locks[path] - fs.unlink(path, function (unlinkEr) { cb() }) -} - -exports.unlockSync = function (path) { - debug('unlockSync', path) - // best-effort. unlocking an already-unlocked lock is a noop - try { fs.unlinkSync(path) } catch (er) {} - delete locks[path] -} - - -// if the file can be opened in readonly mode, then it's there. -// if the error is something other than ENOENT, then it's not. -exports.check = function (path, opts, cb) { - if (typeof opts === 'function') cb = opts, opts = {} - debug('check', path, opts) - fs.open(path, 'r', function (er, fd) { - if (er) { - if (er.code !== 'ENOENT') return cb(er) - return cb(null, false) - } - - if (!opts.stale) { - return fs.close(fd, function (er) { - return cb(er, true) - }) - } - - fs.fstat(fd, function (er, st) { - if (er) return fs.close(fd, function (er2) { - return cb(er) - }) - - fs.close(fd, function (er) { - var age = Date.now() - st[exports.filetime].getTime() - return cb(er, age <= opts.stale) - }) - }) - }) -} - -exports.checkSync = function (path, opts) { - opts = opts || {} - debug('checkSync', path, opts) - if (opts.wait) { - throw new Error('opts.wait not supported sync for obvious reasons') - } - - try { - var fd = fs.openSync(path, 'r') - } catch (er) { - if (er.code !== 'ENOENT') throw er - return false - } - - if (!opts.stale) { - try { fs.closeSync(fd) } catch (er) {} - return true - } - - // file exists. however, might be stale - if (opts.stale) { - try { - var st = fs.fstatSync(fd) - } finally { - fs.closeSync(fd) - } - var age = Date.now() - st[exports.filetime].getTime() - return (age <= opts.stale) - } -} - - - -var req = 1 -exports.lock = function (path, opts, cb) { - if (typeof opts === 'function') cb = opts, opts = {} - opts.req = opts.req || req++ - debug('lock', path, opts) - opts.start = opts.start || Date.now() - - if (typeof opts.retries === 'number' && opts.retries > 0) { - debug('has retries', opts.retries) - var retries = opts.retries - opts.retries = 0 - cb = (function (orig) { return function cb (er, fd) { - debug('retry-mutated callback') - retries -= 1 - if (!er || retries < 0) return orig(er, fd) - - debug('lock retry', path, opts) - - if (opts.retryWait) setTimeout(retry, opts.retryWait) - else retry() - - function retry () { - opts.start = Date.now() - debug('retrying', opts.start) - exports.lock(path, opts, cb) - } - }})(cb) - } - - // try to engage the lock. - // if this succeeds, then we're in business. - fs.open(path, wx, function (er, fd) { - if (!er) { - debug('locked', path, fd) - locks[path] = fd - return fs.close(fd, function () { - return cb() - }) - } - - // something other than "currently locked" - // maybe eperm or something. - if (er.code !== 'EEXIST') return cb(er) - - // someone's got this one. see if it's valid. - if (!opts.stale) return notStale(er, path, opts, cb) - - return maybeStale(er, path, opts, false, cb) - }) -} - - -// Staleness checking algorithm -// 1. acquire $lock, fail -// 2. stat $lock, find that it is stale -// 3. acquire $lock.STALE -// 4. stat $lock, assert that it is still stale -// 5. unlink $lock -// 6. link $lock.STALE $lock -// 7. unlink $lock.STALE -// On any failure, clean up whatever we've done, and raise the error. -function maybeStale (originalEr, path, opts, hasStaleLock, cb) { - fs.stat(path, function (statEr, st) { - if (statEr) { - if (statEr.code === 'ENOENT') { - // expired already! - opts.stale = false - debug('lock stale enoent retry', path, opts) - exports.lock(path, opts, cb) - return - } - return cb(statEr) - } - - var age = Date.now() - st[exports.filetime].getTime() - if (age <= opts.stale) return notStale(originalEr, path, opts, cb) - - debug('lock stale', path, opts) - if (hasStaleLock) { - exports.unlock(path, function (er) { - if (er) return cb(er) - debug('lock stale retry', path, opts) - fs.link(path + '.STALE', path, function (er) { - fs.unlink(path + '.STALE', function () { - // best effort. if the unlink fails, oh well. - cb(er) - }) - }) - }) - } else { - debug('acquire .STALE file lock', opts) - exports.lock(path + '.STALE', opts, function (er) { - if (er) return cb(er) - maybeStale(originalEr, path, opts, true, cb) - }) - } - }) -} - -function notStale (er, path, opts, cb) { - debug('notStale', path, opts) - - // if we can't wait, then just call it a failure - if (typeof opts.wait !== 'number' || opts.wait <= 0) - return cb(er) - - // poll for some ms for the lock to clear - var now = Date.now() - var start = opts.start || now - var end = start + opts.wait - - if (end <= now) - return cb(er) - - debug('now=%d, wait until %d (delta=%d)', start, end, end-start) - var wait = Math.min(end - start, opts.pollPeriod || 100) - var timer = setTimeout(poll, wait) - - function poll () { - debug('notStale, polling', path, opts) - exports.lock(path, opts, cb) - } -} - -exports.lockSync = function (path, opts) { - opts = opts || {} - opts.req = opts.req || req++ - debug('lockSync', path, opts) - if (opts.wait || opts.retryWait) { - throw new Error('opts.wait not supported sync for obvious reasons') - } - - try { - var fd = fs.openSync(path, wx) - locks[path] = fd - try { fs.closeSync(fd) } catch (er) {} - debug('locked sync!', path, fd) - return - } catch (er) { - if (er.code !== 'EEXIST') return retryThrow(path, opts, er) - - if (opts.stale) { - var st = fs.statSync(path) - var ct = st[exports.filetime].getTime() - if (!(ct % 1000) && (opts.stale % 1000)) { - // probably don't have subsecond resolution. - // round up the staleness indicator. - // Yes, this will be wrong 1/1000 times on platforms - // with subsecond stat precision, but that's acceptable - // in exchange for not mistakenly removing locks on - // most other systems. - opts.stale = 1000 * Math.ceil(opts.stale / 1000) - } - var age = Date.now() - ct - if (age > opts.stale) { - debug('lockSync stale', path, opts, age) - exports.unlockSync(path) - return exports.lockSync(path, opts) - } - } - - // failed to lock! - debug('failed to lock', path, opts, er) - return retryThrow(path, opts, er) - } -} - -function retryThrow (path, opts, er) { - if (typeof opts.retries === 'number' && opts.retries > 0) { - var newRT = opts.retries - 1 - debug('retryThrow', path, opts, newRT) - opts.retries = newRT - return exports.lockSync(path, opts) - } - throw er -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/package.json deleted file mode 100644 index dcb230e2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "lockfile", - "version": "1.0.1", - "main": "lockfile.js", - "directories": { - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "~0.2.5", - "touch": "0" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/lockfile.git" - }, - "keywords": [ - "lockfile", - "lock", - "file", - "fs", - "O_EXCL" - ], - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "description": "A very polite lock file utility, which endeavors to not litter, and to wait patiently for others.", - "gitHead": "9d338ed8e3e3a166955d051f6b5fb6bb1e563ca8", - "bugs": { - "url": "https://github.com/isaacs/lockfile/issues" - }, - "homepage": "https://github.com/isaacs/lockfile#readme", - "_id": "lockfile@1.0.1", - "_shasum": "9d353ecfe3f54d150bb57f89d51746935a39c4f5", - "_from": "lockfile@>=1.0.1 <1.1.0", - "_npmVersion": "2.10.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "9d353ecfe3f54d150bb57f89d51746935a39c4f5", - "tarball": "http://registry.npmjs.org/lockfile/-/lockfile-1.0.1.tgz" - }, - "maintainers": [ - { - "name": "trevorburnham", - "email": "trevorburnham@gmail.com" - }, - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "_resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/basic.js deleted file mode 100644 index bc66cc35..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/basic.js +++ /dev/null @@ -1,292 +0,0 @@ -var test = require('tap').test -var lockFile = require('../lockfile.js') -var path = require('path') -var fs = require('fs') -var touch = require('touch') - -// On Unix systems, it uses ctime by default for staleness checks, since it's -// the most reliable. However, because this test artificially sets some locks -// to an earlier time to simulate staleness, we use mtime here. -lockFile.filetime = 'mtime' - -test('setup', function (t) { - try { lockFile.unlockSync('basic-lock') } catch (er) {} - try { lockFile.unlockSync('sync-lock') } catch (er) {} - try { lockFile.unlockSync('never-forget') } catch (er) {} - try { lockFile.unlockSync('stale-lock') } catch (er) {} - try { lockFile.unlockSync('watch-lock') } catch (er) {} - try { lockFile.unlockSync('retry-lock') } catch (er) {} - try { lockFile.unlockSync('contentious-lock') } catch (er) {} - try { lockFile.unlockSync('stale-wait-lock') } catch (er) {} - try { lockFile.unlockSync('stale-windows-lock') } catch (er) {} - t.end() -}) - -test('lock contention', function (t) { - var gotlocks = 0; - var N = 200 - var delay = 10 - // allow for some time for each lock acquisition and release. - // note that raising N higher will mean that the overhead - // increases, because we're creating more and more watchers. - // irl, you should never have several hundred contenders for a - // single lock, so this situation is somewhat pathological. - var overhead = 200 - var wait = N * overhead + delay - - // first make it locked, so that everyone has to wait - lockFile.lock('contentious-lock', function(er, lock) { - t.ifError(er, 'acquiring starter') - if (er) throw er; - t.pass('acquired starter lock') - setTimeout(function() { - lockFile.unlock('contentious-lock', function (er) { - t.ifError(er, 'unlocking starter') - if (er) throw er - t.pass('unlocked starter') - }) - }, delay) - }) - - for (var i=0; i < N; i++) - lockFile.lock('contentious-lock', { wait: wait }, function(er, lock) { - if (er) throw er; - lockFile.unlock('contentious-lock', function(er) { - if (er) throw er - gotlocks++ - t.pass('locked and unlocked #' + gotlocks) - if (gotlocks === N) { - t.pass('got all locks') - t.end() - } - }) - }) -}) - -test('basic test', function (t) { - lockFile.check('basic-lock', function (er, locked) { - if (er) throw er - t.notOk(locked) - lockFile.lock('basic-lock', function (er) { - if (er) throw er - lockFile.lock('basic-lock', function (er) { - t.ok(er) - lockFile.check('basic-lock', function (er, locked) { - if (er) throw er - t.ok(locked) - lockFile.unlock('basic-lock', function (er) { - if (er) throw er - lockFile.check('basic-lock', function (er, locked) { - if (er) throw er - t.notOk(locked) - t.end() - }) - }) - }) - }) - }) - }) -}) - -test('sync test', function (t) { - var locked - locked = lockFile.checkSync('sync-lock') - t.notOk(locked) - lockFile.lockSync('sync-lock') - locked = lockFile.checkSync('sync-lock') - t.ok(locked) - lockFile.unlockSync('sync-lock') - locked = lockFile.checkSync('sync-lock') - t.notOk(locked) - t.end() -}) - -test('exit cleanup test', function (t) { - var child = require.resolve('./fixtures/child.js') - var node = process.execPath - var spawn = require('child_process').spawn - spawn(node, [child]).on('exit', function () { - setTimeout(function () { - var locked = lockFile.checkSync('never-forget') - t.notOk(locked) - t.end() - }, 100) - }) -}) - -test('error exit cleanup test', function (t) { - var child = require.resolve('./fixtures/bad-child.js') - var node = process.execPath - var spawn = require('child_process').spawn - spawn(node, [child]).on('exit', function () { - setTimeout(function () { - var locked = lockFile.checkSync('never-forget') - t.notOk(locked) - t.end() - }, 100) - }) -}) - - -test('staleness test', function (t) { - lockFile.lock('stale-lock', function (er) { - if (er) throw er - - // simulate 2s old - touch.sync('stale-lock', { time: new Date(Date.now() - 2000) }) - - var opts = { stale: 1 } - lockFile.check('stale-lock', opts, function (er, locked) { - if (er) throw er - t.notOk(locked) - lockFile.lock('stale-lock', opts, function (er) { - if (er) throw er - lockFile.unlock('stale-lock', function (er) { - if (er) throw er - t.end() - }) - }) - }) - }) -}) - -test('staleness sync test', function (t) { - var opts = { stale: 1 } - lockFile.lockSync('stale-lock') - // simulate 2s old - touch.sync('stale-lock', { time: new Date(Date.now() - 2000) }) - var locked - locked = lockFile.checkSync('stale-lock', opts) - t.notOk(locked) - lockFile.lockSync('stale-lock', opts) - lockFile.unlockSync('stale-lock') - t.end() -}) - -test('retries', function (t) { - // next 5 opens will fail. - var opens = 5 - fs._open = fs.open - fs.open = function (path, mode, cb) { - if (--opens === 0) { - fs.open = fs._open - return fs.open(path, mode, cb) - } - var er = new Error('bogus') - // to be, or not to be, that is the question. - er.code = opens % 2 ? 'EEXIST' : 'ENOENT' - process.nextTick(cb.bind(null, er)) - } - - lockFile.lock('retry-lock', { retries: opens }, function (er) { - if (er) throw er - t.equal(opens, 0) - lockFile.unlockSync('retry-lock') - t.end() - }) -}) - -test('retryWait', function (t) { - // next 5 opens will fail. - var opens = 5 - fs._open = fs.open - fs.open = function (path, mode, cb) { - if (--opens === 0) { - fs.open = fs._open - return fs.open(path, mode, cb) - } - var er = new Error('bogus') - // to be, or not to be, that is the question. - er.code = opens % 2 ? 'EEXIST' : 'ENOENT' - process.nextTick(cb.bind(null, er)) - } - - var opts = { retries: opens, retryWait: 100 } - lockFile.lock('retry-lock', opts, function (er) { - if (er) throw er - t.equal(opens, 0) - lockFile.unlockSync('retry-lock') - t.end() - }) -}) - -test('retry sync', function (t) { - // next 5 opens will fail. - var opens = 5 - fs._openSync = fs.openSync - fs.openSync = function (path, mode) { - if (--opens === 0) { - fs.openSync = fs._openSync - return fs.openSync(path, mode) - } - var er = new Error('bogus') - // to be, or not to be, that is the question. - er.code = opens % 2 ? 'EEXIST' : 'ENOENT' - throw er - } - - var opts = { retries: opens } - lockFile.lockSync('retry-lock', opts) - t.equal(opens, 0) - lockFile.unlockSync('retry-lock') - t.end() -}) - -test('wait and stale together', function (t) { - // first locker. - var interval - lockFile.lock('stale-wait-lock', function(er) { - // keep refreshing the lock, so we keep it forever - interval = setInterval(function() { - touch.sync('stale-wait-lock') - }, 10) - - // try to get another lock. this must fail! - var opt = { stale: 1000, wait: 2000, pollInterval: 1000 } - lockFile.lock('stale-wait-lock', opt, function (er) { - if (!er) - t.fail('got second lock? that unpossible!') - else - t.pass('second lock failed, as i have foreseen it') - clearInterval(interval) - t.end() - }) - }) -}) - - -test('stale windows file tunneling test', function (t) { - // for windows only - // nt file system tunneling feature will make file creation time not updated - var opts = { stale: 1000 } - lockFile.lockSync('stale-windows-lock') - touch.sync('stale-windows-lock', { time: new Date(Date.now() - 3000) }) - - var locked - lockFile.unlockSync('stale-windows-lock') - lockFile.lockSync('stale-windows-lock', opts) - locked = lockFile.checkSync('stale-windows-lock', opts) - t.ok(locked, "should be locked and not stale") - lockFile.lock('stale-windows-lock', opts, function (er) { - if (!er) - t.fail('got second lock? impossible, windows file tunneling problem!') - else - t.pass('second lock failed, windows file tunneling problem fixed') - t.end() - }) -}) - - -test('cleanup', function (t) { - try { lockFile.unlockSync('basic-lock') } catch (er) {} - try { lockFile.unlockSync('sync-lock') } catch (er) {} - try { lockFile.unlockSync('never-forget') } catch (er) {} - try { lockFile.unlockSync('stale-lock') } catch (er) {} - try { lockFile.unlockSync('watch-lock') } catch (er) {} - try { lockFile.unlockSync('retry-lock') } catch (er) {} - try { lockFile.unlockSync('contentious-lock') } catch (er) {} - try { lockFile.unlockSync('stale-wait-lock') } catch (er) {} - try { lockFile.unlockSync('stale-windows-lock') } catch (er) {} - t.end() -}) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/fixtures/bad-child.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/fixtures/bad-child.js deleted file mode 100644 index e6530454..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/fixtures/bad-child.js +++ /dev/null @@ -1,5 +0,0 @@ -var lockFile = require('../../lockfile.js') - -lockFile.lockSync('never-forget') - -throw new Error('waaaaaaaaa') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/fixtures/child.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/fixtures/child.js deleted file mode 100644 index 5b61d6c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/fixtures/child.js +++ /dev/null @@ -1,3 +0,0 @@ -var lockFile = require('../../lockfile.js') - -lockFile.lock('never-forget', function () {}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/retry-time.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/retry-time.js deleted file mode 100644 index 160bc137..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/retry-time.js +++ /dev/null @@ -1,62 +0,0 @@ -// In these tests, we do the following: -// try for 200ms (rt=2) -// wait for 300ms -// try for 200ms (rt=1) -// wait for 300ms -// try for 200ms (rt=0) -// fail after 1200 -// Actual time will be more like 1220-ish for setTimeout irregularity -// But it should NOT be as slow as 2000. - -var lockFile = require('../') -var touch = require('touch') -var test = require('tap').test -var fs = require('fs') - -var RETRYWAIT = 100 -var WAIT = 100 -var RETRIES = 2 -var EXPECTTIME = (RETRYWAIT * RETRIES) + (WAIT * (RETRIES + 1)) -var TOOLONG = EXPECTTIME * 1.1 - -test('setup', function (t) { - touch.sync('file.lock') - t.end() -}) - -var pollPeriods = [10, 100, 10000] -pollPeriods.forEach(function (pp) { - test('retry+wait, poll=' + pp, function (t) { - var ended = false - var timer = setTimeout(function() { - t.fail('taking too long!') - ended = true - t.end() - }, 2000) - timer.unref() - - var start = Date.now() - lockFile.lock('file.lock', { - wait: WAIT, - retries: RETRIES, - retryWait: RETRYWAIT, - pollPeriod: pp - }, function (er) { - if (ended) return - var time = Date.now() - start - console.error('t=%d', time) - t.ok(time >= EXPECTTIME, 'should take at least ' + EXPECTTIME) - t.ok(time < TOOLONG, 'should take less than ' + TOOLONG) - clearTimeout(timer) - t.end() - }) - }) -}) - -test('cleanup', function (t) { - fs.unlinkSync('file.lock') - t.end() - setTimeout(function() { - process.exit(1) - }, 500).unref() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/stale-contention.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/stale-contention.js deleted file mode 100644 index 85cbf92e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lockfile/test/stale-contention.js +++ /dev/null @@ -1,85 +0,0 @@ -var fs = require('fs') -var lockFile = require('../') -var test = require('tap').test -var path = require('path') -var lock = path.resolve(__dirname, 'stale.lock') -var touch = require('touch') -var spawn = require('child_process').spawn -var node = process.execPath - -// We're using a lockfile with an artificially old date, -// so make it use that instead of ctime. -// Probably you should never do this in production! -lockFile.filetime = 'mtime' - -if (process.argv[2] === 'child') { - return child() -} - -function child () { - // Make fs.stat take 100ms to return its data - // This is important because, in a test scenario where - // we're statting the same exact file rapid-fire like this, - // it'll end up being cached by the FS, and never trigger - // the race condition we're trying to expose. - fs.stat = function (stat) { return function () { - var args = [].slice.call(arguments) - var cb = args.pop() - stat.apply(fs, args.concat(function(er, st) { - setTimeout(function () { - cb(er, st) - }, 100) - })) - }}(fs.stat) - - lockFile.lock(lock, { stale: 100000 }, function (er) { - if (er && er.code !== 'EEXIST') - throw er - else if (er) - process.exit(17) - else - setTimeout(function(){}, 500) - }) -} - -test('create stale file', function (t) { - try { fs.unlinkSync(lock) } catch (er) {} - touch.sync(lock, { time: '1979-07-01T19:10:00.000Z' }) - t.end() -}) - -test('contenders', function (t) { - var n = 10 - var fails = 0 - var wins = 0 - var args = [ __filename, 'child' ] - var opt = { stdio: [0, "pipe", 2] } - for (var i = 0; i < n; i++) { - spawn(node, args, opt).on('close', then) - } - - function then (code) { - if (code === 17) { - fails ++ - } else if (code) { - t.fail("unexpected failure", code) - fails ++ - } else { - wins ++ - } - if (fails + wins === n) { - done() - } - } - - function done () { - t.equal(wins, 1, "should have 1 lock winner") - t.equal(fails, n - 1, "all others should lose") - t.end() - } -}) - -test('remove stale file', function (t) { - try { fs.unlinkSync(lock) } catch (er) {} - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/LICENSE.txt deleted file mode 100644 index 17764328..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright 2012-2015 The Dojo Foundation -Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/README.md deleted file mode 100644 index ddcc79d5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# lodash._baseindexof v3.1.0 - -The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseIndexOf` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. - -## Installation - -Using npm: - -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._baseindexof -``` - -In Node.js/io.js: - -```js -var baseIndexOf = require('lodash._baseindexof'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/3.1.0-npm-packages/lodash._baseindexof) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/index.js deleted file mode 100644 index e5da7914..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/index.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * lodash 3.1.0 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.2 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** - * The base implementation of `_.indexOf` without support for binary searches. - * - * @private - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function baseIndexOf(array, value, fromIndex) { - if (value !== value) { - return indexOfNaN(array, fromIndex); - } - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; -} - -/** - * Gets the index at which the first occurrence of `NaN` is found in `array`. - * If `fromRight` is provided elements of `array` are iterated from right to left. - * - * @private - * @param {Array} array The array to search. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched `NaN`, else `-1`. - */ -function indexOfNaN(array, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 0 : -1); - - while ((fromRight ? index-- : ++index < length)) { - var other = array[index]; - if (other !== other) { - return index; - } - } - return -1; -} - -module.exports = baseIndexOf; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/package.json deleted file mode 100644 index e95728db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseindexof/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "lodash._baseindexof", - "version": "3.1.0", - "description": "The modern build of lodash’s internal `baseIndexOf` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "author": { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - "contributors": [ - { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - { - "name": "Benjamin Tan", - "email": "demoneaux@gmail.com", - "url": "https://d10.github.io/" - }, - { - "name": "Blaine Bublitz", - "email": "blaine@iceddev.com", - "url": "http://www.iceddev.com/" - }, - { - "name": "Kit Cambridge", - "email": "github@kitcambridge.be", - "url": "http://kitcambridge.be/" - }, - { - "name": "Mathias Bynens", - "email": "mathias@qiwi.be", - "url": "https://mathiasbynens.be/" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "readme": "# lodash._baseindexof v3.1.0\n\nThe [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseIndexOf` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.\n\n## Installation\n\nUsing npm:\n\n```bash\n$ {sudo -H} npm i -g npm\n$ npm i --save lodash._baseindexof\n```\n\nIn Node.js/io.js:\n\n```js\nvar baseIndexOf = require('lodash._baseindexof');\n```\n\nSee the [package source](https://github.com/lodash/lodash/blob/3.1.0-npm-packages/lodash._baseindexof) for more details.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "_id": "lodash._baseindexof@3.1.0", - "_shasum": "fe52b53a1c6761e42618d654e4a25789ed61822c", - "_resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "_from": "lodash._baseindexof@3.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/LICENSE deleted file mode 100644 index e0c69d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/LICENSE +++ /dev/null @@ -1,47 +0,0 @@ -Copyright jQuery Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/README.md deleted file mode 100644 index c18dbb6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash._baseuniq v4.6.0 - -The internal [lodash](https://lodash.com/) function `baseUniq` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._baseuniq -``` - -In Node.js: -```js -var baseUniq = require('lodash._baseuniq'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/4.6.0-npm-packages/lodash._baseuniq) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/index.js deleted file mode 100644 index 8f3094f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/index.js +++ /dev/null @@ -1,801 +0,0 @@ -/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ -var createSet = require('lodash._createset'), - root = require('lodash._root'); - -/** Used as the size to enable large array optimizations. */ -var LARGE_ARRAY_SIZE = 200; - -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). - */ -var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - -/** Used to detect host constructors (Safari). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; - -/** - * A specialized version of `_.includes` for arrays without support for - * specifying an index to search from. - * - * @private - * @param {Array} array The array to search. - * @param {*} target The value to search for. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ -function arrayIncludes(array, value) { - return !!array.length && baseIndexOf(array, value, 0) > -1; -} - -/** - * This function is like `arrayIncludes` except that it accepts a comparator. - * - * @private - * @param {Array} array The array to search. - * @param {*} target The value to search for. - * @param {Function} comparator The comparator invoked per element. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ -function arrayIncludesWith(array, value, comparator) { - var index = -1, - length = array.length; - - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - return false; -} - -/** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function baseIndexOf(array, value, fromIndex) { - if (value !== value) { - return indexOfNaN(array, fromIndex); - } - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; -} - -/** - * Checks if a cache value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function cacheHas(cache, key) { - return cache.has(key); -} - -/** - * Gets the index at which the first occurrence of `NaN` is found in `array`. - * - * @private - * @param {Array} array The array to search. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched `NaN`, else `-1`. - */ -function indexOfNaN(array, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 0 : -1); - - while ((fromRight ? index-- : ++index < length)) { - var other = array[index]; - if (other !== other) { - return index; - } - } - return -1; -} - -/** - * Checks if `value` is a host object in IE < 9. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a host object, else `false`. - */ -function isHostObject(value) { - // Many host objects are `Object` objects that can coerce to strings - // despite having improperly defined `toString` methods. - var result = false; - if (value != null && typeof value.toString != 'function') { - try { - result = !!(value + ''); - } catch (e) {} - } - return result; -} - -/** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ -function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; -} - -/** Used for built-in method references. */ -var arrayProto = Array.prototype, - objectProto = Object.prototype; - -/** Used to resolve the decompiled source of functions. */ -var funcToString = Function.prototype.toString; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); - -/** Built-in value references. */ -var splice = arrayProto.splice; - -/* Built-in method references that are verified to be native. */ -var Map = getNative(root, 'Map'), - nativeCreate = getNative(Object, 'create'); - -/** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function Hash(entries) { - var index = -1, - length = entries ? entries.length : 0; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} - -/** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ -function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; -} - -/** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function hashDelete(key) { - return this.has(key) && delete this.__data__[key]; -} - -/** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined; -} - -/** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function hashHas(key) { - var data = this.__data__; - return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key); -} - -/** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ -function hashSet(key, value) { - var data = this.__data__; - data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; - return this; -} - -// Add methods to `Hash`. -Hash.prototype.clear = hashClear; -Hash.prototype['delete'] = hashDelete; -Hash.prototype.get = hashGet; -Hash.prototype.has = hashHas; -Hash.prototype.set = hashSet; - -/** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function ListCache(entries) { - var index = -1, - length = entries ? entries.length : 0; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} - -/** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ -function listCacheClear() { - this.__data__ = []; -} - -/** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - return true; -} - -/** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - return index < 0 ? undefined : data[index][1]; -} - -/** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; -} - -/** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ -function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; -} - -// Add methods to `ListCache`. -ListCache.prototype.clear = listCacheClear; -ListCache.prototype['delete'] = listCacheDelete; -ListCache.prototype.get = listCacheGet; -ListCache.prototype.has = listCacheHas; -ListCache.prototype.set = listCacheSet; - -/** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function MapCache(entries) { - var index = -1, - length = entries ? entries.length : 0; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} - -/** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ -function mapCacheClear() { - this.__data__ = { - 'hash': new Hash, - 'map': new (Map || ListCache), - 'string': new Hash - }; -} - -/** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function mapCacheDelete(key) { - return getMapData(this, key)['delete'](key); -} - -/** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function mapCacheGet(key) { - return getMapData(this, key).get(key); -} - -/** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function mapCacheHas(key) { - return getMapData(this, key).has(key); -} - -/** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ -function mapCacheSet(key, value) { - getMapData(this, key).set(key, value); - return this; -} - -// Add methods to `MapCache`. -MapCache.prototype.clear = mapCacheClear; -MapCache.prototype['delete'] = mapCacheDelete; -MapCache.prototype.get = mapCacheGet; -MapCache.prototype.has = mapCacheHas; -MapCache.prototype.set = mapCacheSet; - -/** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ -function SetCache(values) { - var index = -1, - length = values ? values.length : 0; - - this.__data__ = new MapCache; - while (++index < length) { - this.add(values[index]); - } -} - -/** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. - */ -function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; -} - -/** - * Checks if `value` is in the array cache. - * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. - */ -function setCacheHas(value) { - return this.__data__.has(value); -} - -// Add methods to `SetCache`. -SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; -SetCache.prototype.has = setCacheHas; - -/** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to search. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; -} - -/** - * The base implementation of `_.uniqBy` without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ -function baseUniq(array, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - length = array.length, - isCommon = true, - result = [], - seen = result; - - if (comparator) { - isCommon = false; - includes = arrayIncludesWith; - } - else if (length >= LARGE_ARRAY_SIZE) { - var set = iteratee ? null : createSet(array); - if (set) { - return setToArray(set); - } - isCommon = false; - includes = cacheHas; - seen = new SetCache; - } - else { - seen = iteratee ? [] : result; - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee) { - seen.push(computed); - } - result.push(value); - } - else if (!includes(seen, computed, comparator)) { - if (seen !== result) { - seen.push(computed); - } - result.push(value); - } - } - return result; -} - -/** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ -function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; -} - -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = object[key]; - return isNative(value) ? value : undefined; -} - -/** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ -function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); -} - -/** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to process. - * @returns {string} Returns the source code. - */ -function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; -} - -/** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'user': 'fred' }; - * var other = { 'user': 'fred' }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ -function eq(value, other) { - return value === other || (value !== value && other !== other); -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ -function isNative(value) { - if (!isObject(value)) { - return false; - } - var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); -} - -module.exports = baseUniq; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/LICENSE deleted file mode 100644 index e0c69d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/LICENSE +++ /dev/null @@ -1,47 +0,0 @@ -Copyright jQuery Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/README.md deleted file mode 100644 index 6486d7e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash._createset v4.0.3 - -The internal [lodash](https://lodash.com/) function `createSet` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._createset -``` - -In Node.js: -```js -var createSet = require('lodash._createset'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/4.0.3-npm-packages/lodash._createset) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/index.js deleted file mode 100644 index 9cadd2ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/index.js +++ /dev/null @@ -1,280 +0,0 @@ -/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). - */ -var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - -/** Used to detect host constructors (Safari). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; - -/** Used to determine if values are of the language type `Object`. */ -var objectTypes = { - 'function': true, - 'object': true -}; - -/** Detect free variable `exports`. */ -var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) - ? exports - : undefined; - -/** Detect free variable `module`. */ -var freeModule = (objectTypes[typeof module] && module && !module.nodeType) - ? module - : undefined; - -/** Detect free variable `global` from Node.js. */ -var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global); - -/** Detect free variable `self`. */ -var freeSelf = checkGlobal(objectTypes[typeof self] && self); - -/** Detect free variable `window`. */ -var freeWindow = checkGlobal(objectTypes[typeof window] && window); - -/** Detect `this` as the global object. */ -var thisGlobal = checkGlobal(objectTypes[typeof this] && this); - -/** - * Used as a reference to the global object. - * - * The `this` value is used if it's the global object to avoid Greasemonkey's - * restricted `window` object, otherwise the `window` object is used. - */ -var root = freeGlobal || - ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || - freeSelf || thisGlobal || Function('return this')(); - -/** - * Checks if `value` is a global object. - * - * @private - * @param {*} value The value to check. - * @returns {null|Object} Returns `value` if it's a global object, else `null`. - */ -function checkGlobal(value) { - return (value && value.Object === Object) ? value : null; -} - -/** - * Checks if `value` is a host object in IE < 9. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a host object, else `false`. - */ -function isHostObject(value) { - // Many host objects are `Object` objects that can coerce to strings - // despite having improperly defined `toString` methods. - var result = false; - if (value != null && typeof value.toString != 'function') { - try { - result = !!(value + ''); - } catch (e) {} - } - return result; -} - -/** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ -function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; -} - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** Used to resolve the decompiled source of functions. */ -var funcToString = Function.prototype.toString; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); - -/* Built-in method references that are verified to be native. */ -var Set = getNative(root, 'Set'); - -/** - * Creates a set of `values`. - * - * @private - * @param {Array} values The values to add to the set. - * @returns {Object} Returns the new set. - */ -var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { - return new Set(values); -}; - -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = object[key]; - return isNative(value) ? value : undefined; -} - -/** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to process. - * @returns {string} Returns the source code. - */ -function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ -function isNative(value) { - if (!isObject(value)) { - return false; - } - var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); -} - -/** - * A no-operation function that returns `undefined` regardless of the - * arguments it receives. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Util - * @example - * - * var object = { 'user': 'fred' }; - * - * _.noop(object) === undefined; - * // => true - */ -function noop() { - // No operation performed. -} - -module.exports = createSet; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json deleted file mode 100644 index 6b6bebb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "_args": [ - [ - "lodash._createset@~4.0.0", - "/Users/rebecca/code/npm/node_modules/lodash._baseuniq" - ] - ], - "_from": "lodash._createset@>=4.0.0 <4.1.0", - "_id": "lodash._createset@4.0.3", - "_inCache": true, - "_installable": true, - "_location": "/lodash._baseuniq/lodash._createset", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/lodash._createset-4.0.3.tgz_1463062044214_0.7864094290416688" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.15.5", - "_phantomChildren": {}, - "_requested": { - "name": "lodash._createset", - "raw": "lodash._createset@~4.0.0", - "rawSpec": "~4.0.0", - "scope": null, - "spec": ">=4.0.0 <4.1.0", - "type": "range" - }, - "_requiredBy": [ - "/lodash._baseuniq" - ], - "_resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", - "_shasum": "0f4659fbb09d75194fa9e2b88a6644d363c9fe26", - "_shrinkwrap": null, - "_spec": "lodash._createset@~4.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseuniq", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": {}, - "description": "The internal lodash function `createSet` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "0f4659fbb09d75194fa9e2b88a6644d363c9fe26", - "tarball": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "phated" - } - ], - "name": "lodash._createset", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.0.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/README.md deleted file mode 100644 index 0329abf2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash._root v3.0.1 - -The internal [lodash](https://lodash.com/) function `root` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._root -``` - -In Node.js: -```js -var root = require('lodash._root'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash._root) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/index.js deleted file mode 100644 index 2d8ba0af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * lodash 3.0.1 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** Used to determine if values are of the language type `Object`. */ -var objectTypes = { - 'function': true, - 'object': true -}; - -/** Detect free variable `exports`. */ -var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) - ? exports - : undefined; - -/** Detect free variable `module`. */ -var freeModule = (objectTypes[typeof module] && module && !module.nodeType) - ? module - : undefined; - -/** Detect free variable `global` from Node.js. */ -var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global); - -/** Detect free variable `self`. */ -var freeSelf = checkGlobal(objectTypes[typeof self] && self); - -/** Detect free variable `window`. */ -var freeWindow = checkGlobal(objectTypes[typeof window] && window); - -/** Detect `this` as the global object. */ -var thisGlobal = checkGlobal(objectTypes[typeof this] && this); - -/** - * Used as a reference to the global object. - * - * The `this` value is used if it's the global object to avoid Greasemonkey's - * restricted `window` object, otherwise the `window` object is used. - */ -var root = freeGlobal || - ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || - freeSelf || thisGlobal || Function('return this')(); - -/** - * Checks if `value` is a global object. - * - * @private - * @param {*} value The value to check. - * @returns {null|Object} Returns `value` if it's a global object, else `null`. - */ -function checkGlobal(value) { - return (value && value.Object === Object) ? value : null; -} - -module.exports = root; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/package.json deleted file mode 100644 index 561321ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/package.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "_args": [ - [ - "lodash._root@~3.0.0", - "/Users/rebecca/code/npm/node_modules/lodash._baseuniq" - ] - ], - "_from": "lodash._root@>=3.0.0 <3.1.0", - "_id": "lodash._root@3.0.1", - "_inCache": true, - "_installable": true, - "_location": "/lodash._baseuniq/lodash._root", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/lodash._root-3.0.1.tgz_1455615057559_0.24128212919458747" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.18", - "_phantomChildren": {}, - "_requested": { - "name": "lodash._root", - "raw": "lodash._root@~3.0.0", - "rawSpec": "~3.0.0", - "scope": null, - "spec": ">=3.0.0 <3.1.0", - "type": "range" - }, - "_requiredBy": [ - "/lodash._baseuniq" - ], - "_resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "_shasum": "fba1c4524c19ee9a5f8136b4609f017cf4ded692", - "_shrinkwrap": null, - "_spec": "lodash._root@~3.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseuniq", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine@iceddev.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": {}, - "description": "The internal lodash function `root` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "fba1c4524c19ee9a5f8136b4609f017cf4ded692", - "tarball": "http://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "phated" - } - ], - "name": "lodash._root", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "3.0.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/package.json deleted file mode 100644 index f2561633..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._baseuniq/package.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "_args": [ - [ - "lodash._baseuniq@latest", - "/Users/rebecca/code/npm" - ] - ], - "_from": "lodash._baseuniq@latest", - "_id": "lodash._baseuniq@4.6.0", - "_inCache": true, - "_installable": true, - "_location": "/lodash._baseuniq", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/lodash._baseuniq-4.6.0.tgz_1463062037853_0.04403974884189665" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.15.5", - "_phantomChildren": {}, - "_requested": { - "name": "lodash._baseuniq", - "raw": "lodash._baseuniq@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", - "_shasum": "0ebb44e456814af7905c6212fa2c9b2d51b841e8", - "_shrinkwrap": null, - "_spec": "lodash._baseuniq@latest", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash._createset": "~4.0.0", - "lodash._root": "~3.0.0" - }, - "description": "The internal lodash function `baseUniq` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "0ebb44e456814af7905c6212fa2c9b2d51b841e8", - "tarball": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash._baseuniq", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.6.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/LICENSE.txt deleted file mode 100644 index 9cd87e5d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright 2012-2015 The Dojo Foundation -Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/README.md deleted file mode 100644 index d287f26d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# lodash._bindcallback v3.0.1 - -The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `bindCallback` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. - -## Installation - -Using npm: - -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._bindcallback -``` - -In Node.js/io.js: - -```js -var bindCallback = require('lodash._bindcallback'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash._bindcallback) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/index.js deleted file mode 100644 index ef6811d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/index.js +++ /dev/null @@ -1,65 +0,0 @@ -/** - * lodash 3.0.1 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** - * A specialized version of `baseCallback` which only supports `this` binding - * and specifying the number of arguments to provide to `func`. - * - * @private - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {number} [argCount] The number of arguments to provide to `func`. - * @returns {Function} Returns the callback. - */ -function bindCallback(func, thisArg, argCount) { - if (typeof func != 'function') { - return identity; - } - if (thisArg === undefined) { - return func; - } - switch (argCount) { - case 1: return function(value) { - return func.call(thisArg, value); - }; - case 3: return function(value, index, collection) { - return func.call(thisArg, value, index, collection); - }; - case 4: return function(accumulator, value, index, collection) { - return func.call(thisArg, accumulator, value, index, collection); - }; - case 5: return function(value, other, key, object, source) { - return func.call(thisArg, value, other, key, object, source); - }; - } - return function() { - return func.apply(thisArg, arguments); - }; -} - -/** - * This method returns the first argument provided to it. - * - * @static - * @memberOf _ - * @category Utility - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'user': 'fred' }; - * - * _.identity(object) === object; - * // => true - */ -function identity(value) { - return value; -} - -module.exports = bindCallback; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/package.json deleted file mode 100644 index 551b321e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._bindcallback/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "lodash._bindcallback", - "version": "3.0.1", - "description": "The modern build of lodash’s internal `bindCallback` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "author": { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - "contributors": [ - { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - { - "name": "Benjamin Tan", - "email": "demoneaux@gmail.com", - "url": "https://d10.github.io/" - }, - { - "name": "Blaine Bublitz", - "email": "blaine@iceddev.com", - "url": "http://www.iceddev.com/" - }, - { - "name": "Kit Cambridge", - "email": "github@kitcambridge.be", - "url": "http://kitcambridge.be/" - }, - { - "name": "Mathias Bynens", - "email": "mathias@qiwi.be", - "url": "https://mathiasbynens.be/" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "readme": "# lodash._bindcallback v3.0.1\n\nThe [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `bindCallback` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.\n\n## Installation\n\nUsing npm:\n\n```bash\n$ {sudo -H} npm i -g npm\n$ npm i --save lodash._bindcallback\n```\n\nIn Node.js/io.js:\n\n```js\nvar bindCallback = require('lodash._bindcallback');\n```\n\nSee the [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash._bindcallback) for more details.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "_id": "lodash._bindcallback@3.0.1", - "_shasum": "e531c27644cf8b57a99e17ed95b35c748789392e", - "_resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "_from": "lodash._bindcallback@3.0.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/LICENSE.txt deleted file mode 100644 index 9cd87e5d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright 2012-2015 The Dojo Foundation -Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/README.md deleted file mode 100644 index 69d2b62b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# lodash._cacheindexof v3.0.2 - -The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `cacheIndexOf` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. - -## Installation - -Using npm: - -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._cacheindexof -``` - -In Node.js/io.js: - -```js -var cacheIndexOf = require('lodash._cacheindexof'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/3.0.2-npm-packages/lodash._cacheindexof) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/index.js deleted file mode 100644 index bc1d5afc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/index.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * lodash 3.0.2 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** - * Checks if `value` is in `cache` mimicking the return signature of - * `_.indexOf` by returning `0` if the value is found, else `-1`. - * - * @private - * @param {Object} cache The cache to search. - * @param {*} value The value to search for. - * @returns {number} Returns `0` if `value` is found, else `-1`. - */ -function cacheIndexOf(cache, value) { - var data = cache.data, - result = (typeof value == 'string' || isObject(value)) ? data.set.has(value) : data.hash[value]; - - return result ? 0 : -1; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ -function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -module.exports = cacheIndexOf; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/package.json deleted file mode 100644 index c46ba3bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._cacheindexof/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "lodash._cacheindexof", - "version": "3.0.2", - "description": "The modern build of lodash’s internal `cacheIndexOf` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "author": { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - "contributors": [ - { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - { - "name": "Benjamin Tan", - "email": "demoneaux@gmail.com", - "url": "https://d10.github.io/" - }, - { - "name": "Blaine Bublitz", - "email": "blaine@iceddev.com", - "url": "http://www.iceddev.com/" - }, - { - "name": "Kit Cambridge", - "email": "github@kitcambridge.be", - "url": "http://kitcambridge.be/" - }, - { - "name": "Mathias Bynens", - "email": "mathias@qiwi.be", - "url": "https://mathiasbynens.be/" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "readme": "# lodash._cacheindexof v3.0.2\n\nThe [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `cacheIndexOf` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.\n\n## Installation\n\nUsing npm:\n\n```bash\n$ {sudo -H} npm i -g npm\n$ npm i --save lodash._cacheindexof\n```\n\nIn Node.js/io.js:\n\n```js\nvar cacheIndexOf = require('lodash._cacheindexof');\n```\n\nSee the [package source](https://github.com/lodash/lodash/blob/3.0.2-npm-packages/lodash._cacheindexof) for more details.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "_id": "lodash._cacheindexof@3.0.2", - "_shasum": "3dc69ac82498d2ee5e3ce56091bafd2adc7bde92", - "_resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", - "_from": "lodash._cacheindexof@3.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/LICENSE deleted file mode 100644 index 9cd87e5d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright 2012-2015 The Dojo Foundation -Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/README.md deleted file mode 100644 index 0ee4834d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# lodash._createcache v3.1.2 - -The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `createCache` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. - -## Installation - -Using npm: - -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._createcache -``` - -In Node.js/io.js: - -```js -var createCache = require('lodash._createcache'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/3.1.2-npm-packages/lodash._createcache) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/index.js deleted file mode 100644 index 6cf391c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/index.js +++ /dev/null @@ -1,91 +0,0 @@ -/** - * lodash 3.1.2 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -var getNative = require('lodash._getnative'); - -/** Native method references. */ -var Set = getNative(global, 'Set'); - -/* Native method references for those with the same name as other `lodash` methods. */ -var nativeCreate = getNative(Object, 'create'); - -/** - * - * Creates a cache object to store unique values. - * - * @private - * @param {Array} [values] The values to cache. - */ -function SetCache(values) { - var length = values ? values.length : 0; - - this.data = { 'hash': nativeCreate(null), 'set': new Set }; - while (length--) { - this.push(values[length]); - } -} - -/** - * Adds `value` to the cache. - * - * @private - * @name push - * @memberOf SetCache - * @param {*} value The value to cache. - */ -function cachePush(value) { - var data = this.data; - if (typeof value == 'string' || isObject(value)) { - data.set.add(value); - } else { - data.hash[value] = true; - } -} - -/** - * Creates a `Set` cache object to optimize linear searches of large arrays. - * - * @private - * @param {Array} [values] The values to cache. - * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`. - */ -function createCache(values) { - return (nativeCreate && Set) ? new SetCache(values) : null; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ -function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -// Add functions to the `Set` cache. -SetCache.prototype.push = cachePush; - -module.exports = createCache; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/package.json deleted file mode 100644 index 844c9c04..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._createcache/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "lodash._createcache", - "version": "3.1.2", - "description": "The modern build of lodash’s internal `createCache` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "author": { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - "contributors": [ - { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - { - "name": "Benjamin Tan", - "email": "demoneaux@gmail.com", - "url": "https://d10.github.io/" - }, - { - "name": "Blaine Bublitz", - "email": "blaine@iceddev.com", - "url": "http://www.iceddev.com/" - }, - { - "name": "Kit Cambridge", - "email": "github@kitcambridge.be", - "url": "http://kitcambridge.be/" - }, - { - "name": "Mathias Bynens", - "email": "mathias@qiwi.be", - "url": "https://mathiasbynens.be/" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "dependencies": { - "lodash._getnative": "^3.0.0" - }, - "readme": "# lodash._createcache v3.1.2\n\nThe [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `createCache` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.\n\n## Installation\n\nUsing npm:\n\n```bash\n$ {sudo -H} npm i -g npm\n$ npm i --save lodash._createcache\n```\n\nIn Node.js/io.js:\n\n```js\nvar createCache = require('lodash._createcache');\n```\n\nSee the [package source](https://github.com/lodash/lodash/blob/3.1.2-npm-packages/lodash._createcache) for more details.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "_id": "lodash._createcache@3.1.2", - "_shasum": "56d6a064017625e79ebca6b8018e17440bdcf093", - "_resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", - "_from": "lodash._createcache@3.1.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/LICENSE deleted file mode 100644 index 9cd87e5d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright 2012-2015 The Dojo Foundation -Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/README.md deleted file mode 100644 index 7835cec0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# lodash._getnative v3.9.1 - -The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `getNative` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. - -## Installation - -Using npm: - -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._getnative -``` - -In Node.js/io.js: - -```js -var getNative = require('lodash._getnative'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/3.9.1-npm-packages/lodash._getnative) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/index.js deleted file mode 100644 index a32063d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/index.js +++ /dev/null @@ -1,137 +0,0 @@ -/** - * lodash 3.9.1 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** `Object#toString` result references. */ -var funcTag = '[object Function]'; - -/** Used to detect host constructors (Safari > 5). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; - -/** - * Checks if `value` is object-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -/** Used for native method references. */ -var objectProto = Object.prototype; - -/** Used to resolve the decompiled source of functions. */ -var fnToString = Function.prototype.toString; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objToString = objectProto.toString; - -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); - -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = object == null ? undefined : object[key]; - return isNative(value) ? value : undefined; -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in older versions of Chrome and Safari which return 'function' for regexes - // and Safari 8 equivalents which return 'object' for typed array constructors. - return isObject(value) && objToString.call(value) == funcTag; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ -function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ -function isNative(value) { - if (value == null) { - return false; - } - if (isFunction(value)) { - return reIsNative.test(fnToString.call(value)); - } - return isObjectLike(value) && reIsHostCtor.test(value); -} - -module.exports = getNative; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/package.json deleted file mode 100644 index 455383d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash._getnative/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "lodash._getnative", - "version": "3.9.1", - "description": "The modern build of lodash’s internal `getNative` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "author": { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - "contributors": [ - { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - { - "name": "Benjamin Tan", - "email": "demoneaux@gmail.com", - "url": "https://d10.github.io/" - }, - { - "name": "Blaine Bublitz", - "email": "blaine@iceddev.com", - "url": "http://www.iceddev.com/" - }, - { - "name": "Kit Cambridge", - "email": "github@kitcambridge.be", - "url": "http://kitcambridge.be/" - }, - { - "name": "Mathias Bynens", - "email": "mathias@qiwi.be", - "url": "https://mathiasbynens.be/" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "readme": "# lodash._getnative v3.9.1\n\nThe [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `getNative` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.\n\n## Installation\n\nUsing npm:\n\n```bash\n$ {sudo -H} npm i -g npm\n$ npm i --save lodash._getnative\n```\n\nIn Node.js/io.js:\n\n```js\nvar getNative = require('lodash._getnative');\n```\n\nSee the [package source](https://github.com/lodash/lodash/blob/3.9.1-npm-packages/lodash._getnative) for more details.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "_id": "lodash._getnative@3.9.1", - "_shasum": "570bc7dede46d61cdcde687d65d3eecbaa3aaff5", - "_resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "_from": "lodash._getnative@3.9.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/README.md deleted file mode 100644 index 1287ee1c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.clonedeep v4.3.2 - -The [lodash](https://lodash.com/) method `_.cloneDeep` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.clonedeep -``` - -In Node.js: -```js -var cloneDeep = require('lodash.clonedeep'); -``` - -See the [documentation](https://lodash.com/docs#cloneDeep) or [package source](https://github.com/lodash/lodash/blob/4.3.2-npm-packages/lodash.clonedeep) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/index.js deleted file mode 100644 index 88794c2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/index.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * lodash 4.3.2 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -var baseClone = require('lodash._baseclone'); - -/** - * This method is like `_.clone` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to recursively clone. - * @returns {*} Returns the deep cloned value. - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var deep = _.cloneDeep(objects); - * console.log(deep[0] === objects[0]); - * // => false - */ -function cloneDeep(value) { - return baseClone(value, true, true); -} - -module.exports = cloneDeep; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/README.md deleted file mode 100644 index 7c997274..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash._baseclone v4.5.3 - -The internal [lodash](https://lodash.com/) function `baseClone` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._baseclone -``` - -In Node.js: -```js -var baseClone = require('lodash._baseclone'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/4.5.3-npm-packages/lodash._baseclone) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/index.js deleted file mode 100644 index 47817507..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/index.js +++ /dev/null @@ -1,1644 +0,0 @@ -/** - * lodash 4.5.3 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** Used as the size to enable large array optimizations. */ -var LARGE_ARRAY_SIZE = 200; - -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; - -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** `Object#toString` result references. */ -var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - mapTag = '[object Map]', - numberTag = '[object Number]', - objectTag = '[object Object]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]', - weakMapTag = '[object WeakMap]'; - -var arrayBufferTag = '[object ArrayBuffer]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - -/** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */ -var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - -/** Used to match `RegExp` flags from their coerced string values. */ -var reFlags = /\w*$/; - -/** Used to detect host constructors (Safari > 5). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; - -/** Used to detect unsigned integer values. */ -var reIsUint = /^(?:0|[1-9]\d*)$/; - -/** Used to identify `toStringTag` values supported by `_.clone`. */ -var cloneableTags = {}; -cloneableTags[argsTag] = cloneableTags[arrayTag] = -cloneableTags[arrayBufferTag] = cloneableTags[boolTag] = -cloneableTags[dateTag] = cloneableTags[float32Tag] = -cloneableTags[float64Tag] = cloneableTags[int8Tag] = -cloneableTags[int16Tag] = cloneableTags[int32Tag] = -cloneableTags[mapTag] = cloneableTags[numberTag] = -cloneableTags[objectTag] = cloneableTags[regexpTag] = -cloneableTags[setTag] = cloneableTags[stringTag] = -cloneableTags[symbolTag] = cloneableTags[uint8Tag] = -cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = -cloneableTags[uint32Tag] = true; -cloneableTags[errorTag] = cloneableTags[funcTag] = -cloneableTags[weakMapTag] = false; - -/** Used to determine if values are of the language type `Object`. */ -var objectTypes = { - 'function': true, - 'object': true -}; - -/** Detect free variable `exports`. */ -var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) - ? exports - : undefined; - -/** Detect free variable `module`. */ -var freeModule = (objectTypes[typeof module] && module && !module.nodeType) - ? module - : undefined; - -/** Detect the popular CommonJS extension `module.exports`. */ -var moduleExports = (freeModule && freeModule.exports === freeExports) - ? freeExports - : undefined; - -/** Detect free variable `global` from Node.js. */ -var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global); - -/** Detect free variable `self`. */ -var freeSelf = checkGlobal(objectTypes[typeof self] && self); - -/** Detect free variable `window`. */ -var freeWindow = checkGlobal(objectTypes[typeof window] && window); - -/** Detect `this` as the global object. */ -var thisGlobal = checkGlobal(objectTypes[typeof this] && this); - -/** - * Used as a reference to the global object. - * - * The `this` value is used if it's the global object to avoid Greasemonkey's - * restricted `window` object, otherwise the `window` object is used. - */ -var root = freeGlobal || - ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || - freeSelf || thisGlobal || Function('return this')(); - -/** - * Adds the key-value `pair` to `map`. - * - * @private - * @param {Object} map The map to modify. - * @param {Array} pair The key-value pair to add. - * @returns {Object} Returns `map`. - */ -function addMapEntry(map, pair) { - // Don't return `Map#set` because it doesn't return the map instance in IE 11. - map.set(pair[0], pair[1]); - return map; -} - -/** - * Adds `value` to `set`. - * - * @private - * @param {Object} set The set to modify. - * @param {*} value The value to add. - * @returns {Object} Returns `set`. - */ -function addSetEntry(set, value) { - set.add(value); - return set; -} - -/** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ -function arrayEach(array, iteratee) { - var index = -1, - length = array.length; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; -} - -/** - * A specialized version of `_.reduce` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the first element of `array` as the initial value. - * @returns {*} Returns the accumulated value. - */ -function arrayReduce(array, iteratee, accumulator, initAccum) { - var index = -1, - length = array.length; - - if (initAccum && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; -} - -/** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ -function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); - } - return result; -} - -/** - * Checks if `value` is a global object. - * - * @private - * @param {*} value The value to check. - * @returns {null|Object} Returns `value` if it's a global object, else `null`. - */ -function checkGlobal(value) { - return (value && value.Object === Object) ? value : null; -} - -/** - * Checks if `value` is a host object in IE < 9. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a host object, else `false`. - */ -function isHostObject(value) { - // Many host objects are `Object` objects that can coerce to strings - // despite having improperly defined `toString` methods. - var result = false; - if (value != null && typeof value.toString != 'function') { - try { - result = !!(value + ''); - } catch (e) {} - } - return result; -} - -/** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ -function isIndex(value, length) { - value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; - length = length == null ? MAX_SAFE_INTEGER : length; - return value > -1 && value % 1 == 0 && value < length; -} - -/** - * Converts `map` to an array. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the converted array. - */ -function mapToArray(map) { - var index = -1, - result = Array(map.size); - - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; -} - -/** - * Converts `set` to an array. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the converted array. - */ -function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; -} - -/** Used for built-in method references. */ -var arrayProto = Array.prototype, - objectProto = Object.prototype; - -/** Used to resolve the decompiled source of functions. */ -var funcToString = Function.prototype.toString; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); - -/** Built-in value references. */ -var Buffer = moduleExports ? root.Buffer : undefined, - Symbol = root.Symbol, - Uint8Array = root.Uint8Array, - getPrototypeOf = Object.getPrototypeOf, - getOwnPropertySymbols = Object.getOwnPropertySymbols, - objectCreate = Object.create, - propertyIsEnumerable = objectProto.propertyIsEnumerable, - splice = arrayProto.splice; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeKeys = Object.keys; - -/* Built-in method references that are verified to be native. */ -var Map = getNative(root, 'Map'), - Set = getNative(root, 'Set'), - WeakMap = getNative(root, 'WeakMap'), - nativeCreate = getNative(Object, 'create'); - -/** Used to detect maps, sets, and weakmaps. */ -var mapCtorString = Map ? funcToString.call(Map) : '', - setCtorString = Set ? funcToString.call(Set) : '', - weakMapCtorString = WeakMap ? funcToString.call(WeakMap) : ''; - -/** Used to convert symbols to primitives and strings. */ -var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; - -/** - * Creates an hash object. - * - * @private - * @constructor - * @returns {Object} Returns the new hash object. - */ -function Hash() {} - -/** - * Removes `key` and its value from the hash. - * - * @private - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function hashDelete(hash, key) { - return hashHas(hash, key) && delete hash[key]; -} - -/** - * Gets the hash value for `key`. - * - * @private - * @param {Object} hash The hash to query. - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function hashGet(hash, key) { - if (nativeCreate) { - var result = hash[key]; - return result === HASH_UNDEFINED ? undefined : result; - } - return hasOwnProperty.call(hash, key) ? hash[key] : undefined; -} - -/** - * Checks if a hash value for `key` exists. - * - * @private - * @param {Object} hash The hash to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function hashHas(hash, key) { - return nativeCreate ? hash[key] !== undefined : hasOwnProperty.call(hash, key); -} - -/** - * Sets the hash `key` to `value`. - * - * @private - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - */ -function hashSet(hash, key, value) { - hash[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; -} - -/** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ -function MapCache(values) { - var index = -1, - length = values ? values.length : 0; - - this.clear(); - while (++index < length) { - var entry = values[index]; - this.set(entry[0], entry[1]); - } -} - -/** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ -function mapClear() { - this.__data__ = { - 'hash': new Hash, - 'map': Map ? new Map : [], - 'string': new Hash - }; -} - -/** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function mapDelete(key) { - var data = this.__data__; - if (isKeyable(key)) { - return hashDelete(typeof key == 'string' ? data.string : data.hash, key); - } - return Map ? data.map['delete'](key) : assocDelete(data.map, key); -} - -/** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function mapGet(key) { - var data = this.__data__; - if (isKeyable(key)) { - return hashGet(typeof key == 'string' ? data.string : data.hash, key); - } - return Map ? data.map.get(key) : assocGet(data.map, key); -} - -/** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function mapHas(key) { - var data = this.__data__; - if (isKeyable(key)) { - return hashHas(typeof key == 'string' ? data.string : data.hash, key); - } - return Map ? data.map.has(key) : assocHas(data.map, key); -} - -/** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache object. - */ -function mapSet(key, value) { - var data = this.__data__; - if (isKeyable(key)) { - hashSet(typeof key == 'string' ? data.string : data.hash, key, value); - } else if (Map) { - data.map.set(key, value); - } else { - assocSet(data.map, key, value); - } - return this; -} - -/** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ -function Stack(values) { - var index = -1, - length = values ? values.length : 0; - - this.clear(); - while (++index < length) { - var entry = values[index]; - this.set(entry[0], entry[1]); - } -} - -/** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ -function stackClear() { - this.__data__ = { 'array': [], 'map': null }; -} - -/** - * Removes `key` and its value from the stack. - * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function stackDelete(key) { - var data = this.__data__, - array = data.array; - - return array ? assocDelete(array, key) : data.map['delete'](key); -} - -/** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function stackGet(key) { - var data = this.__data__, - array = data.array; - - return array ? assocGet(array, key) : data.map.get(key); -} - -/** - * Checks if a stack value for `key` exists. - * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function stackHas(key) { - var data = this.__data__, - array = data.array; - - return array ? assocHas(array, key) : data.map.has(key); -} - -/** - * Sets the stack `key` to `value`. - * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache object. - */ -function stackSet(key, value) { - var data = this.__data__, - array = data.array; - - if (array) { - if (array.length < (LARGE_ARRAY_SIZE - 1)) { - assocSet(array, key, value); - } else { - data.array = null; - data.map = new MapCache(array); - } - } - var map = data.map; - if (map) { - map.set(key, value); - } - return this; -} - -/** - * Removes `key` and its value from the associative array. - * - * @private - * @param {Array} array The array to query. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function assocDelete(array, key) { - var index = assocIndexOf(array, key); - if (index < 0) { - return false; - } - var lastIndex = array.length - 1; - if (index == lastIndex) { - array.pop(); - } else { - splice.call(array, index, 1); - } - return true; -} - -/** - * Gets the associative array value for `key`. - * - * @private - * @param {Array} array The array to query. - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function assocGet(array, key) { - var index = assocIndexOf(array, key); - return index < 0 ? undefined : array[index][1]; -} - -/** - * Checks if an associative array value for `key` exists. - * - * @private - * @param {Array} array The array to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function assocHas(array, key) { - return assocIndexOf(array, key) > -1; -} - -/** - * Gets the index at which the first occurrence of `key` is found in `array` - * of key-value pairs. - * - * @private - * @param {Array} array The array to search. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; -} - -/** - * Sets the associative array `key` to `value`. - * - * @private - * @param {Array} array The array to modify. - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - */ -function assocSet(array, key, value) { - var index = assocIndexOf(array, key); - if (index < 0) { - array.push([key, value]); - } else { - array[index][1] = value; - } -} - -/** - * Assigns `value` to `key` of `object` if the existing value is not equivalent - * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ -function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || - (value === undefined && !(key in object))) { - object[key] = value; - } -} - -/** - * The base implementation of `_.assign` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ -function baseAssign(object, source) { - return object && copyObject(source, keys(source), object); -} - -/** - * The base implementation of `_.clone` and `_.cloneDeep` which tracks - * traversed objects. - * - * @private - * @param {*} value The value to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @param {boolean} [isFull] Specify a clone including symbols. - * @param {Function} [customizer] The function to customize cloning. - * @param {string} [key] The key of `value`. - * @param {Object} [object] The parent object of `value`. - * @param {Object} [stack] Tracks traversed objects and their clone counterparts. - * @returns {*} Returns the cloned value. - */ -function baseClone(value, isDeep, isFull, customizer, key, object, stack) { - var result; - if (customizer) { - result = object ? customizer(value, key, object, stack) : customizer(value); - } - if (result !== undefined) { - return result; - } - if (!isObject(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result = initCloneArray(value); - if (!isDeep) { - return copyArray(value, result); - } - } else { - var tag = getTag(value), - isFunc = tag == funcTag || tag == genTag; - - if (isBuffer(value)) { - return cloneBuffer(value, isDeep); - } - if (tag == objectTag || tag == argsTag || (isFunc && !object)) { - if (isHostObject(value)) { - return object ? value : {}; - } - result = initCloneObject(isFunc ? {} : value); - if (!isDeep) { - result = baseAssign(result, value); - return isFull ? copySymbols(value, result) : result; - } - } else { - if (!cloneableTags[tag]) { - return object ? value : {}; - } - result = initCloneByTag(value, tag, isDeep); - } - } - // Check for circular references and return its corresponding clone. - stack || (stack = new Stack); - var stacked = stack.get(value); - if (stacked) { - return stacked; - } - stack.set(value, result); - - // Recursively populate clone (susceptible to call stack limits). - (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) { - assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack)); - }); - return (isFull && !isArr) ? copySymbols(value, result) : result; -} - -/** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} prototype The object to inherit from. - * @returns {Object} Returns the new object. - */ -function baseCreate(proto) { - return isObject(proto) ? objectCreate(proto) : {}; -} - -/** - * The base implementation of `baseForIn` and `baseForOwn` which iterates - * over `object` properties returned by `keysFunc` invoking `iteratee` for - * each property. Iteratee functions may exit iteration early by explicitly - * returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ -var baseFor = createBaseFor(); - -/** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ -function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); -} - -/** - * The base implementation of `_.has` without support for deep paths. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ -function baseHas(object, key) { - // Avoid a bug in IE 10-11 where objects with a [[Prototype]] of `null`, - // that are composed entirely of index properties, return `false` for - // `hasOwnProperty` checks of them. - return hasOwnProperty.call(object, key) || - (typeof object == 'object' && key in object && getPrototypeOf(object) === null); -} - -/** - * The base implementation of `_.keys` which doesn't skip the constructor - * property of prototypes or treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ -function baseKeys(object) { - return nativeKeys(Object(object)); -} - -/** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new function. - */ -function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; -} - -/** - * Creates a clone of `buffer`. - * - * @private - * @param {Buffer} buffer The buffer to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Buffer} Returns the cloned buffer. - */ -function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); - } - var result = new buffer.constructor(buffer.length); - buffer.copy(result); - return result; -} - -/** - * Creates a clone of `arrayBuffer`. - * - * @private - * @param {ArrayBuffer} arrayBuffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. - */ -function cloneArrayBuffer(arrayBuffer) { - var result = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array(result).set(new Uint8Array(arrayBuffer)); - return result; -} - -/** - * Creates a clone of `map`. - * - * @private - * @param {Object} map The map to clone. - * @returns {Object} Returns the cloned map. - */ -function cloneMap(map) { - return arrayReduce(mapToArray(map), addMapEntry, new map.constructor); -} - -/** - * Creates a clone of `regexp`. - * - * @private - * @param {Object} regexp The regexp to clone. - * @returns {Object} Returns the cloned regexp. - */ -function cloneRegExp(regexp) { - var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result.lastIndex = regexp.lastIndex; - return result; -} - -/** - * Creates a clone of `set`. - * - * @private - * @param {Object} set The set to clone. - * @returns {Object} Returns the cloned set. - */ -function cloneSet(set) { - return arrayReduce(setToArray(set), addSetEntry, new set.constructor); -} - -/** - * Creates a clone of the `symbol` object. - * - * @private - * @param {Object} symbol The symbol object to clone. - * @returns {Object} Returns the cloned symbol object. - */ -function cloneSymbol(symbol) { - return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; -} - -/** - * Creates a clone of `typedArray`. - * - * @private - * @param {Object} typedArray The typed array to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned typed array. - */ -function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); -} - -/** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ -function copyArray(source, array) { - var index = -1, - length = source.length; - - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; -} - -/** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property names to copy. - * @param {Object} [object={}] The object to copy properties to. - * @returns {Object} Returns `object`. - */ -function copyObject(source, props, object) { - return copyObjectWith(source, props, object); -} - -/** - * This function is like `copyObject` except that it accepts a function to - * customize copied values. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property names to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. - * @returns {Object} Returns `object`. - */ -function copyObjectWith(source, props, object, customizer) { - object || (object = {}); - - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - - var newValue = customizer - ? customizer(object[key], source[key], key, object, source) - : source[key]; - - assignValue(object, key, newValue); - } - return object; -} - -/** - * Copies own symbol properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ -function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); -} - -/** - * Creates a base function for methods like `_.forIn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ -function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; - - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; -} - -/** - * Gets the "length" property value of `object`. - * - * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) - * that affects Safari on at least iOS 8.1-8.3 ARM64. - * - * @private - * @param {Object} object The object to query. - * @returns {*} Returns the "length" value. - */ -var getLength = baseProperty('length'); - -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = object[key]; - return isNative(value) ? value : undefined; -} - -/** - * Creates an array of the own symbol properties of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ -var getSymbols = getOwnPropertySymbols || function() { - return []; -}; - -/** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ -function getTag(value) { - return objectToString.call(value); -} - -// Fallback for IE 11 providing `toStringTag` values for maps, sets, and weakmaps. -if ((Map && getTag(new Map) != mapTag) || - (Set && getTag(new Set) != setTag) || - (WeakMap && getTag(new WeakMap) != weakMapTag)) { - getTag = function(value) { - var result = objectToString.call(value), - Ctor = result == objectTag ? value.constructor : null, - ctorString = typeof Ctor == 'function' ? funcToString.call(Ctor) : ''; - - if (ctorString) { - switch (ctorString) { - case mapCtorString: return mapTag; - case setCtorString: return setTag; - case weakMapCtorString: return weakMapTag; - } - } - return result; - }; -} - -/** - * Initializes an array clone. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the initialized clone. - */ -function initCloneArray(array) { - var length = array.length, - result = array.constructor(length); - - // Add properties assigned by `RegExp#exec`. - if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { - result.index = array.index; - result.input = array.input; - } - return result; -} - -/** - * Initializes an object clone. - * - * @private - * @param {Object} object The object to clone. - * @returns {Object} Returns the initialized clone. - */ -function initCloneObject(object) { - return (typeof object.constructor == 'function' && !isPrototype(object)) - ? baseCreate(getPrototypeOf(object)) - : {}; -} - -/** - * Initializes an object clone based on its `toStringTag`. - * - * **Note:** This function only supports cloning values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to clone. - * @param {string} tag The `toStringTag` of the object to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the initialized clone. - */ -function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer(object); - - case boolTag: - case dateTag: - return new Ctor(+object); - - case float32Tag: case float64Tag: - case int8Tag: case int16Tag: case int32Tag: - case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: - return cloneTypedArray(object, isDeep); - - case mapTag: - return cloneMap(object); - - case numberTag: - case stringTag: - return new Ctor(object); - - case regexpTag: - return cloneRegExp(object); - - case setTag: - return cloneSet(object); - - case symbolTag: - return cloneSymbol(object); - } -} - -/** - * Creates an array of index keys for `object` values of arrays, - * `arguments` objects, and strings, otherwise `null` is returned. - * - * @private - * @param {Object} object The object to query. - * @returns {Array|null} Returns index keys, else `null`. - */ -function indexKeys(object) { - var length = object ? object.length : undefined; - if (isLength(length) && - (isArray(object) || isString(object) || isArguments(object))) { - return baseTimes(length, String); - } - return null; -} - -/** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ -function isKeyable(value) { - var type = typeof value; - return type == 'number' || type == 'boolean' || - (type == 'string' && value != '__proto__') || value == null; -} - -/** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ -function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; - - return value === proto; -} - -/** - * Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'user': 'fred' }; - * var other = { 'user': 'fred' }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ -function eq(value, other) { - return value === other || (value !== value && other !== other); -} - -/** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ -function isArguments(value) { - // Safari 8.1 incorrectly makes `arguments.callee` enumerable in strict mode. - return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && - (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); -} - -/** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @type {Function} - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ -var isArray = Array.isArray; - -/** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ -function isArrayLike(value) { - return value != null && isLength(getLength(value)) && !isFunction(value); -} - -/** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ -function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); -} - -/** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ -var isBuffer = !Buffer ? constant(false) : function(value) { - return value instanceof Buffer; -}; - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is loosely based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ -function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -/** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ -function isNative(value) { - if (value == null) { - return false; - } - if (isFunction(value)) { - return reIsNative.test(funcToString.call(value)); - } - return isObjectLike(value) && - (isHostObject(value) ? reIsNative : reIsHostCtor).test(value); -} - -/** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ -function isString(value) { - return typeof value == 'string' || - (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag); -} - -/** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) - * for more details. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ -function keys(object) { - var isProto = isPrototype(object); - if (!(isProto || isArrayLike(object))) { - return baseKeys(object); - } - var indexes = indexKeys(object), - skipIndexes = !!indexes, - result = indexes || [], - length = result.length; - - for (var key in object) { - if (baseHas(object, key) && - !(skipIndexes && (key == 'length' || isIndex(key, length))) && - !(isProto && key == 'constructor')) { - result.push(key); - } - } - return result; -} - -/** - * Creates a function that returns `value`. - * - * @static - * @memberOf _ - * @category Util - * @param {*} value The value to return from the new function. - * @returns {Function} Returns the new function. - * @example - * - * var object = { 'user': 'fred' }; - * var getter = _.constant(object); - * - * getter() === object; - * // => true - */ -function constant(value) { - return function() { - return value; - }; -} - -// Avoid inheriting from `Object.prototype` when possible. -Hash.prototype = nativeCreate ? nativeCreate(null) : objectProto; - -// Add functions to the `MapCache`. -MapCache.prototype.clear = mapClear; -MapCache.prototype['delete'] = mapDelete; -MapCache.prototype.get = mapGet; -MapCache.prototype.has = mapHas; -MapCache.prototype.set = mapSet; - -// Add functions to the `Stack` cache. -Stack.prototype.clear = stackClear; -Stack.prototype['delete'] = stackDelete; -Stack.prototype.get = stackGet; -Stack.prototype.has = stackHas; -Stack.prototype.set = stackSet; - -module.exports = baseClone; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/package.json deleted file mode 100644 index 64c0ac7a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/package.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "_args": [ - [ - "lodash._baseclone@^4.0.0", - "/Users/rebecca/code/npm/node_modules/lodash.clonedeep" - ] - ], - "_from": "lodash._baseclone@>=4.0.0 <5.0.0", - "_id": "lodash._baseclone@4.5.3", - "_inCache": true, - "_installable": true, - "_location": "/lodash.clonedeep/lodash._baseclone", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/lodash._baseclone-4.5.3.tgz_1456902628287_0.513930449495092" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.17", - "_phantomChildren": {}, - "_requested": { - "name": "lodash._baseclone", - "raw": "lodash._baseclone@^4.0.0", - "rawSpec": "^4.0.0", - "scope": null, - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/lodash.clonedeep" - ], - "_resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.3.tgz", - "_shasum": "c3f6df594c44c16012f9ecd59e58d5f70d3d72e2", - "_shrinkwrap": null, - "_spec": "lodash._baseclone@^4.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/lodash.clonedeep", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": {}, - "description": "The internal lodash function `baseClone` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "c3f6df594c44c16012f9ecd59e58d5f70d3d72e2", - "tarball": "http://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.3.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash._baseclone", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.5.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/package.json deleted file mode 100644 index 9da20a94..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.clonedeep/package.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "_args": [ - [ - "lodash.clonedeep@4.3.2", - "/Users/zkat/Documents/code/npm" - ] - ], - "_from": "lodash.clonedeep@4.3.2", - "_id": "lodash.clonedeep@4.3.2", - "_inCache": true, - "_installable": true, - "_location": "/lodash.clonedeep", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/lodash.clonedeep-4.3.2.tgz_1459310662712_0.4621682942379266" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.15.1", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.clonedeep", - "raw": "lodash.clonedeep@4.3.2", - "rawSpec": "4.3.2", - "scope": null, - "spec": "4.3.2", - "type": "version" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.3.2.tgz", - "_shasum": "d0112c02c76b5223833aebc6a4b6e334f0d057de", - "_shrinkwrap": null, - "_spec": "lodash.clonedeep@4.3.2", - "_where": "/Users/zkat/Documents/code/npm", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash._baseclone": "~4.5.0" - }, - "description": "The lodash method `_.cloneDeep` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "d0112c02c76b5223833aebc6a4b6e334f0d057de", - "tarball": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.3.2.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "clonedeep" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash.clonedeep", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.3.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/LICENSE.txt deleted file mode 100644 index 9cd87e5d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright 2012-2015 The Dojo Foundation -Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/README.md deleted file mode 100644 index 80e47a4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# lodash.restparam v3.6.1 - -The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.restParam` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. - -## Installation - -Using npm: - -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.restparam -``` - -In Node.js/io.js: - -```js -var restParam = require('lodash.restparam'); -``` - -See the [documentation](https://lodash.com/docs#restParam) or [package source](https://github.com/lodash/lodash/blob/3.6.1-npm-packages/lodash.restparam) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/index.js deleted file mode 100644 index 932f47ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/index.js +++ /dev/null @@ -1,67 +0,0 @@ -/** - * lodash 3.6.1 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** Used as the `TypeError` message for "Functions" methods. */ -var FUNC_ERROR_TEXT = 'Expected a function'; - -/* Native method references for those with the same name as other `lodash` methods. */ -var nativeMax = Math.max; - -/** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as an array. - * - * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters). - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.restParam(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ -function restParam(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - rest = Array(length); - - while (++index < length) { - rest[index] = args[start + index]; - } - switch (start) { - case 0: return func.call(this, rest); - case 1: return func.call(this, args[0], rest); - case 2: return func.call(this, args[0], args[1], rest); - } - var otherArgs = Array(start + 1); - index = -1; - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = rest; - return func.apply(this, otherArgs); - }; -} - -module.exports = restParam; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/package.json deleted file mode 100644 index f3a9247f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.restparam/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "lodash.restparam", - "version": "3.6.1", - "description": "The modern build of lodash’s `_.restParam` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "keywords": [ - "lodash", - "lodash-modularized", - "stdlib", - "util" - ], - "author": { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - "contributors": [ - { - "name": "John-David Dalton", - "email": "john.david.dalton@gmail.com", - "url": "http://allyoucanleet.com/" - }, - { - "name": "Benjamin Tan", - "email": "demoneaux@gmail.com", - "url": "https://d10.github.io/" - }, - { - "name": "Blaine Bublitz", - "email": "blaine@iceddev.com", - "url": "http://www.iceddev.com/" - }, - { - "name": "Kit Cambridge", - "email": "github@kitcambridge.be", - "url": "http://kitcambridge.be/" - }, - { - "name": "Mathias Bynens", - "email": "mathias@qiwi.be", - "url": "https://mathiasbynens.be/" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "readme": "# lodash.restparam v3.6.1\n\nThe [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.restParam` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.\n\n## Installation\n\nUsing npm:\n\n```bash\n$ {sudo -H} npm i -g npm\n$ npm i --save lodash.restparam\n```\n\nIn Node.js/io.js:\n\n```js\nvar restParam = require('lodash.restparam');\n```\n\nSee the [documentation](https://lodash.com/docs#restParam) or [package source](https://github.com/lodash/lodash/blob/3.6.1-npm-packages/lodash.restparam) for more details.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "_id": "lodash.restparam@3.6.1", - "_shasum": "936a4e309ef330a7645ed4145986c85ae5b20805", - "_resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "_from": "lodash.restparam@3.6.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/LICENSE deleted file mode 100644 index e0c69d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/LICENSE +++ /dev/null @@ -1,47 +0,0 @@ -Copyright jQuery Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/README.md deleted file mode 100644 index 5a4fb54a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.union v4.4.0 - -The [lodash](https://lodash.com/) method `_.union` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.union -``` - -In Node.js: -```js -var union = require('lodash.union'); -``` - -See the [documentation](https://lodash.com/docs#union) or [package source](https://github.com/lodash/lodash/blob/4.4.0-npm-packages/lodash.union) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/index.js deleted file mode 100644 index 5aa425b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/index.js +++ /dev/null @@ -1,250 +0,0 @@ -/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ -var baseFlatten = require('lodash._baseflatten'), - baseUniq = require('lodash._baseuniq'), - rest = require('lodash.rest'); - -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ -function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; -} - -/** - * Gets the "length" property value of `object`. - * - * **Note:** This function is used to avoid a - * [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects - * Safari on at least iOS 8.1-8.3 ARM64. - * - * @private - * @param {Object} object The object to query. - * @returns {*} Returns the "length" value. - */ -var getLength = baseProperty('length'); - -/** - * Creates an array of unique values, in order, from all given arrays using - * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.union([2, 1], [4, 2], [1, 2]); - * // => [2, 1, 4] - */ -var union = rest(function(arrays) { - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); -}); - -/** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ -function isArrayLike(value) { - return value != null && isLength(getLength(value)) && !isFunction(value); -} - -/** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ -function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, - * else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ -function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -module.exports = union; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/LICENSE deleted file mode 100644 index e0c69d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/LICENSE +++ /dev/null @@ -1,47 +0,0 @@ -Copyright jQuery Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/README.md deleted file mode 100644 index 2c839ab7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash._baseflatten v4.2.1 - -The internal [lodash](https://lodash.com/) function `baseFlatten` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._baseflatten -``` - -In Node.js: -```js -var baseFlatten = require('lodash._baseflatten'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/4.2.1-npm-packages/lodash._baseflatten) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/index.js deleted file mode 100644 index de0df103..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/index.js +++ /dev/null @@ -1,349 +0,0 @@ -/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ - -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** `Object#toString` result references. */ -var argsTag = '[object Arguments]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ -function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; - } - return array; -} - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** Built-in value references. */ -var propertyIsEnumerable = objectProto.propertyIsEnumerable; - -/** - * The base implementation of `_.flatten` with support for restricting flattening. - * - * @private - * @param {Array} array The array to flatten. - * @param {number} depth The maximum recursion depth. - * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. - * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ -function baseFlatten(array, depth, predicate, isStrict, result) { - var index = -1, - length = array.length; - - predicate || (predicate = isFlattenable); - result || (result = []); - - while (++index < length) { - var value = array[index]; - if (depth > 0 && predicate(value)) { - if (depth > 1) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, depth - 1, predicate, isStrict, result); - } else { - arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } - return result; -} - -/** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ -function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; -} - -/** - * Gets the "length" property value of `object`. - * - * **Note:** This function is used to avoid a - * [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects - * Safari on at least iOS 8.1-8.3 ARM64. - * - * @private - * @param {Object} object The object to query. - * @returns {*} Returns the "length" value. - */ -var getLength = baseProperty('length'); - -/** - * Checks if `value` is a flattenable `arguments` object or array. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. - */ -function isFlattenable(value) { - return isArray(value) || isArguments(value); -} - -/** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ -function isArguments(value) { - // Safari 8.1 incorrectly makes `arguments.callee` enumerable in strict mode. - return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && - (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); -} - -/** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @type {Function} - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ -var isArray = Array.isArray; - -/** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ -function isArrayLike(value) { - return value != null && isLength(getLength(value)) && !isFunction(value); -} - -/** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ -function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, - * else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ -function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -module.exports = baseFlatten; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/package.json deleted file mode 100644 index cd710c8b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/package.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "_args": [ - [ - "lodash._baseflatten@~4.2.0", - "/Users/rebecca/code/npm/node_modules/lodash.union" - ] - ], - "_from": "lodash._baseflatten@>=4.2.0 <4.3.0", - "_id": "lodash._baseflatten@4.2.1", - "_inCache": true, - "_installable": true, - "_location": "/lodash.union/lodash._baseflatten", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/lodash._baseflatten-4.2.1.tgz_1463062009548_0.7446099303197116" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.15.5", - "_phantomChildren": {}, - "_requested": { - "name": "lodash._baseflatten", - "raw": "lodash._baseflatten@~4.2.0", - "rawSpec": "~4.2.0", - "scope": null, - "spec": ">=4.2.0 <4.3.0", - "type": "range" - }, - "_requiredBy": [ - "/lodash.union" - ], - "_resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-4.2.1.tgz", - "_shasum": "54acad5e6ef53532a5b8269c0ad725470cfd9208", - "_shrinkwrap": null, - "_spec": "lodash._baseflatten@~4.2.0", - "_where": "/Users/rebecca/code/npm/node_modules/lodash.union", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": {}, - "description": "The internal lodash function `baseFlatten` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "54acad5e6ef53532a5b8269c0ad725470cfd9208", - "tarball": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-4.2.1.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash._baseflatten", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.2.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/LICENSE deleted file mode 100644 index e0c69d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/LICENSE +++ /dev/null @@ -1,47 +0,0 @@ -Copyright jQuery Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/README.md deleted file mode 100644 index 5342ca44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.rest v4.0.3 - -The [lodash](https://lodash.com/) method `_.rest` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.rest -``` - -In Node.js: -```js -var rest = require('lodash.rest'); -``` - -See the [documentation](https://lodash.com/docs#rest) or [package source](https://github.com/lodash/lodash/blob/4.0.3-npm-packages/lodash.rest) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/index.js deleted file mode 100644 index 23157864..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/index.js +++ /dev/null @@ -1,345 +0,0 @@ -/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ - -/** Used as the `TypeError` message for "Functions" methods. */ -var FUNC_ERROR_TEXT = 'Expected a function'; - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - symbolTag = '[object Symbol]'; - -/** Used to match leading and trailing whitespace. */ -var reTrim = /^\s+|\s+$/g; - -/** Used to detect bad signed hexadecimal string values. */ -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - -/** Used to detect binary string values. */ -var reIsBinary = /^0b[01]+$/i; - -/** Used to detect octal string values. */ -var reIsOctal = /^0o[0-7]+$/i; - -/** Built-in method references without a dependency on `root`. */ -var freeParseInt = parseInt; - -/** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ -function apply(func, thisArg, args) { - var length = args.length; - switch (length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); -} - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeMax = Math.max; - -/** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as - * an array. - * - * **Note:** This method is based on the - * [rest parameter](https://mdn.io/rest_parameters). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.rest(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ -function rest(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = nativeMax(start === undefined ? (func.length - 1) : toInteger(start), 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - switch (start) { - case 0: return func.call(this, array); - case 1: return func.call(this, args[0], array); - case 2: return func.call(this, args[0], args[1], array); - } - var otherArgs = Array(start + 1); - index = -1; - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = array; - return apply(func, this, otherArgs); - }; -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -/** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ -function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && objectToString.call(value) == symbolTag); -} - -/** - * Converts `value` to a finite number. - * - * @static - * @memberOf _ - * @since 4.12.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted number. - * @example - * - * _.toFinite(3.2); - * // => 3.2 - * - * _.toFinite(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toFinite(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toFinite('3.2'); - * // => 3.2 - */ -function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - return value === value ? value : 0; -} - -/** - * Converts `value` to an integer. - * - * **Note:** This function is loosely based on - * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3.2); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3.2'); - * // => 3 - */ -function toInteger(value) { - var result = toFinite(value), - remainder = result % 1; - - return result === result ? (remainder ? result - remainder : result) : 0; -} - -/** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ -function toNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = isFunction(value.valueOf) ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); -} - -module.exports = rest; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/package.json deleted file mode 100644 index 416db6c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/node_modules/lodash.rest/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_args": [ - [ - "lodash.rest@^4.0.0", - "/Users/rebecca/code/npm/node_modules/lodash.union" - ] - ], - "_from": "lodash.rest@>=4.0.0 <5.0.0", - "_id": "lodash.rest@4.0.3", - "_inCache": true, - "_installable": true, - "_location": "/lodash.union/lodash.rest", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/lodash.rest-4.0.3.tgz_1463062507321_0.6458017621189356" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.15.5", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.rest", - "raw": "lodash.rest@^4.0.0", - "rawSpec": "^4.0.0", - "scope": null, - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/lodash.union" - ], - "_resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.3.tgz", - "_shasum": "4c1c32c40028087250fabf70d42e0151548f48c5", - "_shrinkwrap": null, - "_spec": "lodash.rest@^4.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/lodash.union", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": {}, - "description": "The lodash method `_.rest` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "4c1c32c40028087250fabf70d42e0151548f48c5", - "tarball": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.3.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "rest" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash.rest", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.0.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/package.json deleted file mode 100644 index 4e89c1da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.union/package.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "_args": [ - [ - "lodash.union@latest", - "/Users/rebecca/code/npm" - ] - ], - "_from": "lodash.union@latest", - "_id": "lodash.union@4.4.0", - "_inCache": true, - "_installable": true, - "_location": "/lodash.union", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/lodash.union-4.4.0.tgz_1463062655004_0.2674572637770325" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.15.5", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.union", - "raw": "lodash.union@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.4.0.tgz", - "_shasum": "22be23b4c84b49d0436e573949ad1d4a48c7fa38", - "_shrinkwrap": null, - "_spec": "lodash.union@latest", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash._baseflatten": "~4.2.0", - "lodash._baseuniq": "~4.6.0", - "lodash.rest": "^4.0.0" - }, - "description": "The lodash method `_.union` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "22be23b4c84b49d0436e573949ad1d4a48c7fa38", - "tarball": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.4.0.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "union" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash.union", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.4.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/LICENSE deleted file mode 100644 index e0c69d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/LICENSE +++ /dev/null @@ -1,47 +0,0 @@ -Copyright jQuery Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/README.md deleted file mode 100644 index f1d83df5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.uniq v4.3.0 - -The [lodash](https://lodash.com/) method `_.uniq` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.uniq -``` - -In Node.js: -```js -var uniq = require('lodash.uniq'); -``` - -See the [documentation](https://lodash.com/docs#uniq) or [package source](https://github.com/lodash/lodash/blob/4.3.0-npm-packages/lodash.uniq) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/index.js deleted file mode 100644 index d1a25d80..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/index.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ -var baseUniq = require('lodash._baseuniq'); - -/** - * Creates a duplicate-free version of an array, using - * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons, in which only the first occurrence of each - * element is kept. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniq([2, 1, 2]); - * // => [2, 1] - */ -function uniq(array) { - return (array && array.length) - ? baseUniq(array) - : []; -} - -module.exports = uniq; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/package.json deleted file mode 100644 index 4ee8486f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.uniq/package.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "_args": [ - [ - "lodash.uniq@latest", - "/Users/rebecca/code/npm" - ] - ], - "_from": "lodash.uniq@latest", - "_id": "lodash.uniq@4.3.0", - "_inCache": true, - "_installable": true, - "_location": "/lodash.uniq", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/lodash.uniq-4.3.0.tgz_1463062659727_0.9107886834535748" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.15.5", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.uniq", - "raw": "lodash.uniq@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.3.0.tgz", - "_shasum": "dcad810876841447d8f3ec662323c86a6d938227", - "_shrinkwrap": null, - "_spec": "lodash.uniq@latest", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash._baseuniq": "~4.6.0" - }, - "description": "The lodash method `_.uniq` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "dcad810876841447d8f3ec662323c86a6d938227", - "tarball": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.3.0.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "uniq" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash.uniq", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.3.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/LICENSE deleted file mode 100644 index e0c69d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/LICENSE +++ /dev/null @@ -1,47 +0,0 @@ -Copyright jQuery Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/README.md deleted file mode 100644 index dd02c51c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.without v4.2.0 - -The [lodash](https://lodash.com/) method `_.without` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.without -``` - -In Node.js: -```js -var without = require('lodash.without'); -``` - -See the [documentation](https://lodash.com/docs#without) or [package source](https://github.com/lodash/lodash/blob/4.2.0-npm-packages/lodash.without) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/index.js deleted file mode 100644 index 7c695410..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/index.js +++ /dev/null @@ -1,253 +0,0 @@ -/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ -var baseDifference = require('lodash._basedifference'), - rest = require('lodash.rest'); - -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ -function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; -} - -/** - * Gets the "length" property value of `object`. - * - * **Note:** This function is used to avoid a - * [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects - * Safari on at least iOS 8.1-8.3 ARM64. - * - * @private - * @param {Object} object The object to query. - * @returns {*} Returns the "length" value. - */ -var getLength = baseProperty('length'); - -/** - * Creates an array excluding all given values using - * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...*} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.difference, _.xor - * @example - * - * _.without([1, 2, 1, 3], 1, 2); - * // => [3] - */ -var without = rest(function(array, values) { - return isArrayLikeObject(array) - ? baseDifference(array, values) - : []; -}); - -/** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ -function isArrayLike(value) { - return value != null && isLength(getLength(value)) && !isFunction(value); -} - -/** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ -function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, - * else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ -function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -module.exports = without; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/LICENSE deleted file mode 100644 index e0c69d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/LICENSE +++ /dev/null @@ -1,47 +0,0 @@ -Copyright jQuery Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/README.md deleted file mode 100644 index 7426607e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash._basedifference v4.5.0 - -The internal [lodash](https://lodash.com/) function `baseDifference` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._basedifference -``` - -In Node.js: -```js -var baseDifference = require('lodash._basedifference'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash._basedifference) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/index.js deleted file mode 100644 index 39b916c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/index.js +++ /dev/null @@ -1,811 +0,0 @@ -/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ -var root = require('lodash._root'); - -/** Used as the size to enable large array optimizations. */ -var LARGE_ARRAY_SIZE = 200; - -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). - */ -var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - -/** Used to detect host constructors (Safari). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; - -/** - * A specialized version of `_.includes` for arrays without support for - * specifying an index to search from. - * - * @private - * @param {Array} array The array to search. - * @param {*} target The value to search for. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ -function arrayIncludes(array, value) { - return !!array.length && baseIndexOf(array, value, 0) > -1; -} - -/** - * This function is like `arrayIncludes` except that it accepts a comparator. - * - * @private - * @param {Array} array The array to search. - * @param {*} target The value to search for. - * @param {Function} comparator The comparator invoked per element. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ -function arrayIncludesWith(array, value, comparator) { - var index = -1, - length = array.length; - - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - return false; -} - -/** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ -function arrayMap(array, iteratee) { - var index = -1, - length = array.length, - result = Array(length); - - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; -} - -/** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function baseIndexOf(array, value, fromIndex) { - if (value !== value) { - return indexOfNaN(array, fromIndex); - } - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; -} - -/** - * The base implementation of `_.unary` without support for storing wrapper metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ -function baseUnary(func) { - return function(value) { - return func(value); - }; -} - -/** - * Checks if a cache value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function cacheHas(cache, key) { - return cache.has(key); -} - -/** - * Gets the index at which the first occurrence of `NaN` is found in `array`. - * - * @private - * @param {Array} array The array to search. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched `NaN`, else `-1`. - */ -function indexOfNaN(array, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 0 : -1); - - while ((fromRight ? index-- : ++index < length)) { - var other = array[index]; - if (other !== other) { - return index; - } - } - return -1; -} - -/** - * Checks if `value` is a host object in IE < 9. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a host object, else `false`. - */ -function isHostObject(value) { - // Many host objects are `Object` objects that can coerce to strings - // despite having improperly defined `toString` methods. - var result = false; - if (value != null && typeof value.toString != 'function') { - try { - result = !!(value + ''); - } catch (e) {} - } - return result; -} - -/** Used for built-in method references. */ -var arrayProto = Array.prototype, - objectProto = Object.prototype; - -/** Used to resolve the decompiled source of functions. */ -var funcToString = Function.prototype.toString; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); - -/** Built-in value references. */ -var splice = arrayProto.splice; - -/* Built-in method references that are verified to be native. */ -var Map = getNative(root, 'Map'), - nativeCreate = getNative(Object, 'create'); - -/** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function Hash(entries) { - var index = -1, - length = entries ? entries.length : 0; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} - -/** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ -function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; -} - -/** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function hashDelete(key) { - return this.has(key) && delete this.__data__[key]; -} - -/** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined; -} - -/** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function hashHas(key) { - var data = this.__data__; - return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key); -} - -/** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ -function hashSet(key, value) { - var data = this.__data__; - data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; - return this; -} - -// Add methods to `Hash`. -Hash.prototype.clear = hashClear; -Hash.prototype['delete'] = hashDelete; -Hash.prototype.get = hashGet; -Hash.prototype.has = hashHas; -Hash.prototype.set = hashSet; - -/** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function ListCache(entries) { - var index = -1, - length = entries ? entries.length : 0; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} - -/** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ -function listCacheClear() { - this.__data__ = []; -} - -/** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - return true; -} - -/** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - return index < 0 ? undefined : data[index][1]; -} - -/** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; -} - -/** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ -function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; -} - -// Add methods to `ListCache`. -ListCache.prototype.clear = listCacheClear; -ListCache.prototype['delete'] = listCacheDelete; -ListCache.prototype.get = listCacheGet; -ListCache.prototype.has = listCacheHas; -ListCache.prototype.set = listCacheSet; - -/** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function MapCache(entries) { - var index = -1, - length = entries ? entries.length : 0; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} - -/** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ -function mapCacheClear() { - this.__data__ = { - 'hash': new Hash, - 'map': new (Map || ListCache), - 'string': new Hash - }; -} - -/** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function mapCacheDelete(key) { - return getMapData(this, key)['delete'](key); -} - -/** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function mapCacheGet(key) { - return getMapData(this, key).get(key); -} - -/** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function mapCacheHas(key) { - return getMapData(this, key).has(key); -} - -/** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ -function mapCacheSet(key, value) { - getMapData(this, key).set(key, value); - return this; -} - -// Add methods to `MapCache`. -MapCache.prototype.clear = mapCacheClear; -MapCache.prototype['delete'] = mapCacheDelete; -MapCache.prototype.get = mapCacheGet; -MapCache.prototype.has = mapCacheHas; -MapCache.prototype.set = mapCacheSet; - -/** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ -function SetCache(values) { - var index = -1, - length = values ? values.length : 0; - - this.__data__ = new MapCache; - while (++index < length) { - this.add(values[index]); - } -} - -/** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. - */ -function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; -} - -/** - * Checks if `value` is in the array cache. - * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. - */ -function setCacheHas(value) { - return this.__data__.has(value); -} - -// Add methods to `SetCache`. -SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; -SetCache.prototype.has = setCacheHas; - -/** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to search. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; -} - -/** - * The base implementation of methods like `_.difference` without support - * for excluding multiple arrays or iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Array} values The values to exclude. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - */ -function baseDifference(array, values, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - isCommon = true, - length = array.length, - result = [], - valuesLength = values.length; - - if (!length) { - return result; - } - if (iteratee) { - values = arrayMap(values, baseUnary(iteratee)); - } - if (comparator) { - includes = arrayIncludesWith; - isCommon = false; - } - else if (values.length >= LARGE_ARRAY_SIZE) { - includes = cacheHas; - isCommon = false; - values = new SetCache(values); - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values[valuesIndex] === computed) { - continue outer; - } - } - result.push(value); - } - else if (!includes(values, computed, comparator)) { - result.push(value); - } - } - return result; -} - -/** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ -function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; -} - -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = object[key]; - return isNative(value) ? value : undefined; -} - -/** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ -function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); -} - -/** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to process. - * @returns {string} Returns the source code. - */ -function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; -} - -/** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'user': 'fred' }; - * var other = { 'user': 'fred' }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ -function eq(value, other) { - return value === other || (value !== value && other !== other); -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ -function isNative(value) { - if (!isObject(value)) { - return false; - } - var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); -} - -module.exports = baseDifference; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/README.md deleted file mode 100644 index 0329abf2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash._root v3.0.1 - -The internal [lodash](https://lodash.com/) function `root` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash._root -``` - -In Node.js: -```js -var root = require('lodash._root'); -``` - -See the [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash._root) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/index.js deleted file mode 100644 index 2d8ba0af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * lodash 3.0.1 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** Used to determine if values are of the language type `Object`. */ -var objectTypes = { - 'function': true, - 'object': true -}; - -/** Detect free variable `exports`. */ -var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) - ? exports - : undefined; - -/** Detect free variable `module`. */ -var freeModule = (objectTypes[typeof module] && module && !module.nodeType) - ? module - : undefined; - -/** Detect free variable `global` from Node.js. */ -var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global); - -/** Detect free variable `self`. */ -var freeSelf = checkGlobal(objectTypes[typeof self] && self); - -/** Detect free variable `window`. */ -var freeWindow = checkGlobal(objectTypes[typeof window] && window); - -/** Detect `this` as the global object. */ -var thisGlobal = checkGlobal(objectTypes[typeof this] && this); - -/** - * Used as a reference to the global object. - * - * The `this` value is used if it's the global object to avoid Greasemonkey's - * restricted `window` object, otherwise the `window` object is used. - */ -var root = freeGlobal || - ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || - freeSelf || thisGlobal || Function('return this')(); - -/** - * Checks if `value` is a global object. - * - * @private - * @param {*} value The value to check. - * @returns {null|Object} Returns `value` if it's a global object, else `null`. - */ -function checkGlobal(value) { - return (value && value.Object === Object) ? value : null; -} - -module.exports = root; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/package.json deleted file mode 100644 index 5d911a87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._root/package.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "_args": [ - [ - "lodash._root@~3.0.0", - "/Users/rebecca/code/npm/node_modules/lodash.without/node_modules/lodash._basedifference" - ] - ], - "_from": "lodash._root@>=3.0.0 <3.1.0", - "_id": "lodash._root@3.0.1", - "_inCache": true, - "_installable": true, - "_location": "/lodash.without/lodash._basedifference/lodash._root", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/lodash._root-3.0.1.tgz_1455615057559_0.24128212919458747" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.18", - "_phantomChildren": {}, - "_requested": { - "name": "lodash._root", - "raw": "lodash._root@~3.0.0", - "rawSpec": "~3.0.0", - "scope": null, - "spec": ">=3.0.0 <3.1.0", - "type": "range" - }, - "_requiredBy": [ - "/lodash.without/lodash._basedifference" - ], - "_resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "_shasum": "fba1c4524c19ee9a5f8136b4609f017cf4ded692", - "_shrinkwrap": null, - "_spec": "lodash._root@~3.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/lodash.without/node_modules/lodash._basedifference", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine@iceddev.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": {}, - "description": "The internal lodash function `root` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "fba1c4524c19ee9a5f8136b4609f017cf4ded692", - "tarball": "http://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "phated" - } - ], - "name": "lodash._root", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "3.0.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/package.json deleted file mode 100644 index 59b01900..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash._basedifference/package.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "_args": [ - [ - "lodash._basedifference@~4.5.0", - "/Users/rebecca/code/npm/node_modules/lodash.without" - ] - ], - "_from": "lodash._basedifference@>=4.5.0 <4.6.0", - "_id": "lodash._basedifference@4.5.0", - "_inCache": true, - "_installable": true, - "_location": "/lodash.without/lodash._basedifference", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/lodash._basedifference-4.5.0.tgz_1463061998825_0.9310404139105231" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.15.5", - "_phantomChildren": {}, - "_requested": { - "name": "lodash._basedifference", - "raw": "lodash._basedifference@~4.5.0", - "rawSpec": "~4.5.0", - "scope": null, - "spec": ">=4.5.0 <4.6.0", - "type": "range" - }, - "_requiredBy": [ - "/lodash.without" - ], - "_resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-4.5.0.tgz", - "_shasum": "56ea7d601367bfa46cd7de115dc3daeb18837938", - "_shrinkwrap": null, - "_spec": "lodash._basedifference@~4.5.0", - "_where": "/Users/rebecca/code/npm/node_modules/lodash.without", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash._root": "~3.0.0" - }, - "description": "The internal lodash function `baseDifference` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "56ea7d601367bfa46cd7de115dc3daeb18837938", - "tarball": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-4.5.0.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash._basedifference", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.5.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/LICENSE deleted file mode 100644 index e0c69d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/LICENSE +++ /dev/null @@ -1,47 +0,0 @@ -Copyright jQuery Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/README.md deleted file mode 100644 index 5342ca44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.rest v4.0.3 - -The [lodash](https://lodash.com/) method `_.rest` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.rest -``` - -In Node.js: -```js -var rest = require('lodash.rest'); -``` - -See the [documentation](https://lodash.com/docs#rest) or [package source](https://github.com/lodash/lodash/blob/4.0.3-npm-packages/lodash.rest) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/index.js deleted file mode 100644 index 23157864..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/index.js +++ /dev/null @@ -1,345 +0,0 @@ -/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ - -/** Used as the `TypeError` message for "Functions" methods. */ -var FUNC_ERROR_TEXT = 'Expected a function'; - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - symbolTag = '[object Symbol]'; - -/** Used to match leading and trailing whitespace. */ -var reTrim = /^\s+|\s+$/g; - -/** Used to detect bad signed hexadecimal string values. */ -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - -/** Used to detect binary string values. */ -var reIsBinary = /^0b[01]+$/i; - -/** Used to detect octal string values. */ -var reIsOctal = /^0o[0-7]+$/i; - -/** Built-in method references without a dependency on `root`. */ -var freeParseInt = parseInt; - -/** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ -function apply(func, thisArg, args) { - var length = args.length; - switch (length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); -} - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeMax = Math.max; - -/** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as - * an array. - * - * **Note:** This method is based on the - * [rest parameter](https://mdn.io/rest_parameters). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.rest(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ -function rest(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = nativeMax(start === undefined ? (func.length - 1) : toInteger(start), 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - switch (start) { - case 0: return func.call(this, array); - case 1: return func.call(this, args[0], array); - case 2: return func.call(this, args[0], args[1], array); - } - var otherArgs = Array(start + 1); - index = -1; - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = array; - return apply(func, this, otherArgs); - }; -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -/** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ -function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && objectToString.call(value) == symbolTag); -} - -/** - * Converts `value` to a finite number. - * - * @static - * @memberOf _ - * @since 4.12.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted number. - * @example - * - * _.toFinite(3.2); - * // => 3.2 - * - * _.toFinite(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toFinite(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toFinite('3.2'); - * // => 3.2 - */ -function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - return value === value ? value : 0; -} - -/** - * Converts `value` to an integer. - * - * **Note:** This function is loosely based on - * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3.2); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3.2'); - * // => 3 - */ -function toInteger(value) { - var result = toFinite(value), - remainder = result % 1; - - return result === result ? (remainder ? result - remainder : result) : 0; -} - -/** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ -function toNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = isFunction(value.valueOf) ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); -} - -module.exports = rest; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/package.json deleted file mode 100644 index 3564a655..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/node_modules/lodash.rest/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_args": [ - [ - "lodash.rest@^4.0.0", - "/Users/rebecca/code/npm/node_modules/lodash.without" - ] - ], - "_from": "lodash.rest@>=4.0.0 <5.0.0", - "_id": "lodash.rest@4.0.3", - "_inCache": true, - "_installable": true, - "_location": "/lodash.without/lodash.rest", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/lodash.rest-4.0.3.tgz_1463062507321_0.6458017621189356" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.15.5", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.rest", - "raw": "lodash.rest@^4.0.0", - "rawSpec": "^4.0.0", - "scope": null, - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/lodash.without" - ], - "_resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.3.tgz", - "_shasum": "4c1c32c40028087250fabf70d42e0151548f48c5", - "_shrinkwrap": null, - "_spec": "lodash.rest@^4.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/lodash.without", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": {}, - "description": "The lodash method `_.rest` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "4c1c32c40028087250fabf70d42e0151548f48c5", - "tarball": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.3.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "rest" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash.rest", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.0.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/package.json deleted file mode 100644 index 0aac3a5c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/lodash.without/package.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "_args": [ - [ - "lodash.without@latest", - "/Users/rebecca/code/npm" - ] - ], - "_from": "lodash.without@latest", - "_id": "lodash.without@4.2.0", - "_inCache": true, - "_installable": true, - "_location": "/lodash.without", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/lodash.without-4.2.0.tgz_1463062688060_0.9002856267616153" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.15.5", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.without", - "raw": "lodash.without@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.2.0.tgz", - "_shasum": "f89ec9a8ee2d7ec14f8a9cad72a3f5ee12c5a4a6", - "_shrinkwrap": null, - "_spec": "lodash.without@latest", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash._basedifference": "~4.5.0", - "lodash.rest": "^4.0.0" - }, - "description": "The lodash method `_.without` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "f89ec9a8ee2d7ec14f8a9cad72a3f5ee12c5a4a6", - "tarball": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.2.0.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "without" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash.without", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.2.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/.travis.yml deleted file mode 100644 index 74c57bf1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.12" - - "iojs" -before_install: - - npm install -g npm@~1.4.6 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/LICENSE deleted file mode 100644 index 432d1aeb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright 2010 James Halliday (mail@substack.net) - -This project is free software released under the MIT/X11 license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/README.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/README.markdown deleted file mode 100644 index 3cc13153..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/README.markdown +++ /dev/null @@ -1,100 +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, opts, cb) - -Create a new directory and any necessary subdirectories at `dir` with octal -permission string `opts.mode`. If `opts` is a non-object, it will be treated as -the `opts.mode`. - -If `opts.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. - -You can optionally pass in an alternate `fs` implementation by passing in -`opts.fs`. Your implementation should have `opts.fs.mkdir(path, mode, cb)` and -`opts.fs.stat(path, cb)`. - -## mkdirp.sync(dir, opts) - -Synchronously create a new directory and any necessary subdirectories at `dir` -with octal permission string `opts.mode`. If `opts` is a non-object, it will be -treated as the `opts.mode`. - -If `opts.mode` isn't specified, it defaults to `0777 & (~process.umask())`. - -Returns the first directory that had to be created, if any. - -You can optionally pass in an alternate `fs` implementation by passing in -`opts.fs`. Your implementation should have `opts.fs.mkdirSync(path, mode)` and -`opts.fs.statSync(path)`. - -# usage - -This package also ships with a `mkdirp` command. - -``` -usage: mkdirp [DIR1,DIR2..] {OPTIONS} - - Create each supplied directory including any necessary parent directories that - don't yet exist. - - If the directory already exists, do nothing. - -OPTIONS are: - - -m, --mode If a directory needs to be created, set the mode as an octal - permission string. - -``` - -# install - -With [npm](http://npmjs.org) do: - -``` -npm install mkdirp -``` - -to get the library, or - -``` -npm install -g mkdirp -``` - -to get the command. - -# license - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/bin/cmd.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/bin/cmd.js deleted file mode 100755 index d95de15a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/bin/cmd.js +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env node - -var mkdirp = require('../'); -var minimist = require('minimist'); -var fs = require('fs'); - -var argv = minimist(process.argv.slice(2), { - alias: { m: 'mode', h: 'help' }, - string: [ 'mode' ] -}); -if (argv.help) { - fs.createReadStream(__dirname + '/usage.txt').pipe(process.stdout); - return; -} - -var paths = argv._.slice(); -var mode = argv.mode ? parseInt(argv.mode, 8) : undefined; - -(function next () { - if (paths.length === 0) return; - var p = paths.shift(); - - if (mode === undefined) mkdirp(p, cb) - else mkdirp(p, mode, cb) - - function cb (err) { - if (err) { - console.error(err.message); - process.exit(1); - } - else next(); - } -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/bin/usage.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/bin/usage.txt deleted file mode 100644 index f952aa2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/bin/usage.txt +++ /dev/null @@ -1,12 +0,0 @@ -usage: mkdirp [DIR1,DIR2..] {OPTIONS} - - Create each supplied directory including any necessary parent directories that - don't yet exist. - - If the directory already exists, do nothing. - -OPTIONS are: - - -m, --mode If a directory needs to be created, set the mode as an octal - permission string. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/examples/pow.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/examples/pow.js deleted file mode 100644 index e6924212..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/examples/pow.js +++ /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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/index.js deleted file mode 100644 index 6ce241b5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/index.js +++ /dev/null @@ -1,98 +0,0 @@ -var path = require('path'); -var fs = require('fs'); -var _0777 = parseInt('0777', 8); - -module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; - -function mkdirP (p, opts, f, made) { - if (typeof opts === 'function') { - f = opts; - opts = {}; - } - else if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; - - var cb = f || function () {}; - p = path.resolve(p); - - xfs.mkdir(p, mode, function (er) { - if (!er) { - made = made || p; - return cb(null, made); - } - switch (er.code) { - case 'ENOENT': - mkdirP(path.dirname(p), opts, function (er, made) { - if (er) cb(er, made); - else mkdirP(p, opts, 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: - xfs.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, opts, made) { - if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; - - p = path.resolve(p); - - try { - xfs.mkdirSync(p, mode); - made = made || p; - } - catch (err0) { - switch (err0.code) { - case 'ENOENT' : - made = sync(path.dirname(p), opts, made); - sync(p, opts, 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 = xfs.statSync(p); - } - catch (err1) { - throw err0; - } - if (!stat.isDirectory()) throw err0; - break; - } - } - - return made; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml deleted file mode 100644 index cc4dba29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js deleted file mode 100644 index abff3e8e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js +++ /dev/null @@ -1,2 +0,0 @@ -var argv = require('../')(process.argv.slice(2)); -console.dir(argv); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/index.js deleted file mode 100644 index 584f551a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/index.js +++ /dev/null @@ -1,187 +0,0 @@ -module.exports = function (args, opts) { - if (!opts) opts = {}; - - var flags = { bools : {}, strings : {} }; - - [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { - flags.bools[key] = true; - }); - - [].concat(opts.string).filter(Boolean).forEach(function (key) { - flags.strings[key] = true; - }); - - var aliases = {}; - Object.keys(opts.alias || {}).forEach(function (key) { - aliases[key] = [].concat(opts.alias[key]); - aliases[key].forEach(function (x) { - aliases[x] = [key].concat(aliases[key].filter(function (y) { - return x !== y; - })); - }); - }); - - var defaults = opts['default'] || {}; - - var argv = { _ : [] }; - Object.keys(flags.bools).forEach(function (key) { - setArg(key, defaults[key] === undefined ? false : defaults[key]); - }); - - var notFlags = []; - - if (args.indexOf('--') !== -1) { - notFlags = args.slice(args.indexOf('--')+1); - args = args.slice(0, args.indexOf('--')); - } - - function setArg (key, val) { - var value = !flags.strings[key] && isNumber(val) - ? Number(val) : val - ; - setKey(argv, key.split('.'), value); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), value); - }); - } - - for (var i = 0; i < args.length; i++) { - var arg = args[i]; - - if (/^--.+=/.test(arg)) { - // Using [\s\S] instead of . because js doesn't support the - // 'dotall' regex modifier. See: - // http://stackoverflow.com/a/1068308/13216 - var m = arg.match(/^--([^=]+)=([\s\S]*)$/); - setArg(m[1], m[2]); - } - else if (/^--no-.+/.test(arg)) { - var key = arg.match(/^--no-(.+)/)[1]; - setArg(key, false); - } - else if (/^--.+/.test(arg)) { - var key = arg.match(/^--(.+)/)[1]; - var next = args[i + 1]; - if (next !== undefined && !/^-/.test(next) - && !flags.bools[key] - && (aliases[key] ? !flags.bools[aliases[key]] : true)) { - setArg(key, next); - i++; - } - else if (/^(true|false)$/.test(next)) { - setArg(key, next === 'true'); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true); - } - } - else if (/^-[^-]+/.test(arg)) { - var letters = arg.slice(1,-1).split(''); - - var broken = false; - for (var j = 0; j < letters.length; j++) { - var next = arg.slice(j+2); - - if (next === '-') { - setArg(letters[j], next) - continue; - } - - if (/[A-Za-z]/.test(letters[j]) - && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { - setArg(letters[j], next); - broken = true; - break; - } - - if (letters[j+1] && letters[j+1].match(/\W/)) { - setArg(letters[j], arg.slice(j+2)); - broken = true; - break; - } - else { - setArg(letters[j], flags.strings[letters[j]] ? '' : true); - } - } - - var key = arg.slice(-1)[0]; - if (!broken && key !== '-') { - if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1]) - && !flags.bools[key] - && (aliases[key] ? !flags.bools[aliases[key]] : true)) { - setArg(key, args[i+1]); - i++; - } - else if (args[i+1] && /true|false/.test(args[i+1])) { - setArg(key, args[i+1] === 'true'); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true); - } - } - } - else { - argv._.push( - flags.strings['_'] || !isNumber(arg) ? arg : Number(arg) - ); - } - } - - Object.keys(defaults).forEach(function (key) { - if (!hasKey(argv, key.split('.'))) { - setKey(argv, key.split('.'), defaults[key]); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), defaults[key]); - }); - } - }); - - notFlags.forEach(function(key) { - argv._.push(key); - }); - - return argv; -}; - -function hasKey (obj, keys) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - o = (o[key] || {}); - }); - - var key = keys[keys.length - 1]; - return key in o; -} - -function setKey (obj, keys, value) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - if (o[key] === undefined) o[key] = {}; - o = o[key]; - }); - - var key = keys[keys.length - 1]; - if (o[key] === undefined || typeof o[key] === 'boolean') { - o[key] = value; - } - else if (Array.isArray(o[key])) { - o[key].push(value); - } - else { - o[key] = [ o[key], value ]; - } -} - -function isNumber (x) { - if (typeof x === 'number') return true; - if (/^0x[0-9a-f]+$/i.test(x)) return true; - return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); -} - -function longest (xs) { - return Math.max.apply(null, xs.map(function (x) { return x.length })); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/package.json deleted file mode 100644 index ca6e58da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "minimist", - "version": "0.0.8", - "description": "parse argument options", - "main": "index.js", - "devDependencies": { - "tape": "~1.0.4", - "tap": "~0.4.0" - }, - "scripts": { - "test": "tap test/*.js" - }, - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/6..latest", - "ff/5", - "firefox/latest", - "chrome/10", - "chrome/latest", - "safari/5.1", - "safari/latest", - "opera/12" - ] - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/minimist.git" - }, - "homepage": "https://github.com/substack/minimist", - "keywords": [ - "argv", - "getopt", - "parser", - "optimist" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "readme": "# minimist\n\nparse argument options\n\nThis module is the guts of optimist's argument parser without all the\nfanciful decoration.\n\n[![browser support](https://ci.testling.com/substack/minimist.png)](http://ci.testling.com/substack/minimist)\n\n[![build status](https://secure.travis-ci.org/substack/minimist.png)](http://travis-ci.org/substack/minimist)\n\n# example\n\n``` js\nvar argv = require('minimist')(process.argv.slice(2));\nconsole.dir(argv);\n```\n\n```\n$ node example/parse.js -a beep -b boop\n{ _: [], a: 'beep', b: 'boop' }\n```\n\n```\n$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz\n{ _: [ 'foo', 'bar', 'baz' ],\n x: 3,\n y: 4,\n n: 5,\n a: true,\n b: true,\n c: true,\n beep: 'boop' }\n```\n\n# methods\n\n``` js\nvar parseArgs = require('minimist')\n```\n\n## var argv = parseArgs(args, opts={})\n\nReturn an argument object `argv` populated with the array arguments from `args`.\n\n`argv._` contains all the arguments that didn't have an option associated with\nthem.\n\nNumeric-looking arguments will be returned as numbers unless `opts.string` or\n`opts.boolean` is set for that argument name.\n\nAny arguments after `'--'` will not be parsed and will end up in `argv._`.\n\noptions can be:\n\n* `opts.string` - a string or array of strings argument names to always treat as\nstrings\n* `opts.boolean` - a string or array of strings to always treat as booleans\n* `opts.alias` - an object mapping string names to strings or arrays of string\nargument names to use as aliases\n* `opts.default` - an object mapping string argument names to default values\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install minimist\n```\n\n# license\n\nMIT\n", - "readmeFilename": "readme.markdown", - "bugs": { - "url": "https://github.com/substack/minimist/issues" - }, - "_id": "minimist@0.0.8", - "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", - "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "_from": "minimist@0.0.8" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown deleted file mode 100644 index c2563532..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown +++ /dev/null @@ -1,73 +0,0 @@ -# minimist - -parse argument options - -This module is the guts of optimist's argument parser without all the -fanciful decoration. - -[![browser support](https://ci.testling.com/substack/minimist.png)](http://ci.testling.com/substack/minimist) - -[![build status](https://secure.travis-ci.org/substack/minimist.png)](http://travis-ci.org/substack/minimist) - -# example - -``` js -var argv = require('minimist')(process.argv.slice(2)); -console.dir(argv); -``` - -``` -$ node example/parse.js -a beep -b boop -{ _: [], a: 'beep', b: 'boop' } -``` - -``` -$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz -{ _: [ 'foo', 'bar', 'baz' ], - x: 3, - y: 4, - n: 5, - a: true, - b: true, - c: true, - beep: 'boop' } -``` - -# methods - -``` js -var parseArgs = require('minimist') -``` - -## var argv = parseArgs(args, opts={}) - -Return an argument object `argv` populated with the array arguments from `args`. - -`argv._` contains all the arguments that didn't have an option associated with -them. - -Numeric-looking arguments will be returned as numbers unless `opts.string` or -`opts.boolean` is set for that argument name. - -Any arguments after `'--'` will not be parsed and will end up in `argv._`. - -options can be: - -* `opts.string` - a string or array of strings argument names to always treat as -strings -* `opts.boolean` - a string or array of strings to always treat as booleans -* `opts.alias` - an object mapping string names to strings or arrays of string -argument names to use as aliases -* `opts.default` - an object mapping string argument names to default values - -# install - -With [npm](https://npmjs.org) do: - -``` -npm install minimist -``` - -# license - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js deleted file mode 100644 index 8b034b99..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js +++ /dev/null @@ -1,24 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('-', function (t) { - t.plan(5); - t.deepEqual(parse([ '-n', '-' ]), { n: '-', _: [] }); - t.deepEqual(parse([ '-' ]), { _: [ '-' ] }); - t.deepEqual(parse([ '-f-' ]), { f: '-', _: [] }); - t.deepEqual( - parse([ '-b', '-' ], { boolean: 'b' }), - { b: true, _: [ '-' ] } - ); - t.deepEqual( - parse([ '-s', '-' ], { string: 's' }), - { s: '-', _: [] } - ); -}); - -test('-a -- b', function (t) { - t.plan(3); - t.deepEqual(parse([ '-a', '--', 'b' ]), { a: true, _: [ 'b' ] }); - t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); - t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js deleted file mode 100644 index f0041ee4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js +++ /dev/null @@ -1,20 +0,0 @@ -var test = require('tape'); -var parse = require('../'); - -test('boolean default true', function (t) { - var argv = parse([], { - boolean: 'sometrue', - default: { sometrue: true } - }); - t.equal(argv.sometrue, true); - t.end(); -}); - -test('boolean default false', function (t) { - var argv = parse([], { - boolean: 'somefalse', - default: { somefalse: false } - }); - t.equal(argv.somefalse, false); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js deleted file mode 100644 index ef0ae349..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js +++ /dev/null @@ -1,16 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('dotted alias', function (t) { - var argv = parse(['--a.b', '22'], {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); - t.equal(argv.a.b, 22); - t.equal(argv.aa.bb, 22); - t.end(); -}); - -test('dotted default', function (t) { - var argv = parse('', {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); - t.equal(argv.a.b, 11); - t.equal(argv.aa.bb, 11); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/long.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/long.js deleted file mode 100644 index 5d3a1e09..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/long.js +++ /dev/null @@ -1,31 +0,0 @@ -var test = require('tape'); -var parse = require('../'); - -test('long opts', function (t) { - t.deepEqual( - parse([ '--bool' ]), - { bool : true, _ : [] }, - 'long boolean' - ); - t.deepEqual( - parse([ '--pow', 'xixxle' ]), - { pow : 'xixxle', _ : [] }, - 'long capture sp' - ); - t.deepEqual( - parse([ '--pow=xixxle' ]), - { pow : 'xixxle', _ : [] }, - 'long capture eq' - ); - t.deepEqual( - parse([ '--host', 'localhost', '--port', '555' ]), - { host : 'localhost', port : 555, _ : [] }, - 'long captures sp' - ); - t.deepEqual( - parse([ '--host=localhost', '--port=555' ]), - { host : 'localhost', port : 555, _ : [] }, - 'long captures eq' - ); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js deleted file mode 100644 index 8a906466..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js +++ /dev/null @@ -1,318 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('parse args', function (t) { - t.deepEqual( - parse([ '--no-moo' ]), - { moo : false, _ : [] }, - 'no' - ); - t.deepEqual( - parse([ '-v', 'a', '-v', 'b', '-v', 'c' ]), - { v : ['a','b','c'], _ : [] }, - 'multi' - ); - t.end(); -}); - -test('comprehensive', function (t) { - t.deepEqual( - parse([ - '--name=meowmers', 'bare', '-cats', 'woo', - '-h', 'awesome', '--multi=quux', - '--key', 'value', - '-b', '--bool', '--no-meep', '--multi=baz', - '--', '--not-a-flag', 'eek' - ]), - { - c : true, - a : true, - t : true, - s : 'woo', - h : 'awesome', - b : true, - bool : true, - key : 'value', - multi : [ 'quux', 'baz' ], - meep : false, - name : 'meowmers', - _ : [ 'bare', '--not-a-flag', 'eek' ] - } - ); - t.end(); -}); - -test('nums', function (t) { - var argv = parse([ - '-x', '1234', - '-y', '5.67', - '-z', '1e7', - '-w', '10f', - '--hex', '0xdeadbeef', - '789' - ]); - t.deepEqual(argv, { - x : 1234, - y : 5.67, - z : 1e7, - w : '10f', - hex : 0xdeadbeef, - _ : [ 789 ] - }); - t.deepEqual(typeof argv.x, 'number'); - t.deepEqual(typeof argv.y, 'number'); - t.deepEqual(typeof argv.z, 'number'); - t.deepEqual(typeof argv.w, 'string'); - t.deepEqual(typeof argv.hex, 'number'); - t.deepEqual(typeof argv._[0], 'number'); - t.end(); -}); - -test('flag boolean', function (t) { - var argv = parse([ '-t', 'moo' ], { boolean: 't' }); - t.deepEqual(argv, { t : true, _ : [ 'moo' ] }); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); -}); - -test('flag boolean value', function (t) { - var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], { - boolean: [ 't', 'verbose' ], - default: { verbose: true } - }); - - t.deepEqual(argv, { - verbose: false, - t: true, - _: ['moo'] - }); - - t.deepEqual(typeof argv.verbose, 'boolean'); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); -}); - -test('flag boolean default false', function (t) { - var argv = parse(['moo'], { - boolean: ['t', 'verbose'], - default: { verbose: false, t: false } - }); - - t.deepEqual(argv, { - verbose: false, - t: false, - _: ['moo'] - }); - - t.deepEqual(typeof argv.verbose, 'boolean'); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); - -}); - -test('boolean groups', function (t) { - var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], { - boolean: ['x','y','z'] - }); - - t.deepEqual(argv, { - x : true, - y : false, - z : true, - _ : [ 'one', 'two', 'three' ] - }); - - t.deepEqual(typeof argv.x, 'boolean'); - t.deepEqual(typeof argv.y, 'boolean'); - t.deepEqual(typeof argv.z, 'boolean'); - t.end(); -}); - -test('newlines in params' , function (t) { - var args = parse([ '-s', "X\nX" ]) - t.deepEqual(args, { _ : [], s : "X\nX" }); - - // reproduce in bash: - // VALUE="new - // line" - // node program.js --s="$VALUE" - args = parse([ "--s=X\nX" ]) - t.deepEqual(args, { _ : [], s : "X\nX" }); - t.end(); -}); - -test('strings' , function (t) { - var s = parse([ '-s', '0001234' ], { string: 's' }).s; - t.equal(s, '0001234'); - t.equal(typeof s, 'string'); - - var x = parse([ '-x', '56' ], { string: 'x' }).x; - t.equal(x, '56'); - t.equal(typeof x, 'string'); - t.end(); -}); - -test('stringArgs', function (t) { - var s = parse([ ' ', ' ' ], { string: '_' })._; - t.same(s.length, 2); - t.same(typeof s[0], 'string'); - t.same(s[0], ' '); - t.same(typeof s[1], 'string'); - t.same(s[1], ' '); - t.end(); -}); - -test('empty strings', function(t) { - var s = parse([ '-s' ], { string: 's' }).s; - t.equal(s, ''); - t.equal(typeof s, 'string'); - - var str = parse([ '--str' ], { string: 'str' }).str; - t.equal(str, ''); - t.equal(typeof str, 'string'); - - var letters = parse([ '-art' ], { - string: [ 'a', 't' ] - }); - - t.equal(letters.a, ''); - t.equal(letters.r, true); - t.equal(letters.t, ''); - - t.end(); -}); - - -test('slashBreak', function (t) { - t.same( - parse([ '-I/foo/bar/baz' ]), - { I : '/foo/bar/baz', _ : [] } - ); - t.same( - parse([ '-xyz/foo/bar/baz' ]), - { x : true, y : true, z : '/foo/bar/baz', _ : [] } - ); - t.end(); -}); - -test('alias', function (t) { - var argv = parse([ '-f', '11', '--zoom', '55' ], { - alias: { z: 'zoom' } - }); - t.equal(argv.zoom, 55); - t.equal(argv.z, argv.zoom); - t.equal(argv.f, 11); - t.end(); -}); - -test('multiAlias', function (t) { - var argv = parse([ '-f', '11', '--zoom', '55' ], { - alias: { z: [ 'zm', 'zoom' ] } - }); - t.equal(argv.zoom, 55); - t.equal(argv.z, argv.zoom); - t.equal(argv.z, argv.zm); - t.equal(argv.f, 11); - t.end(); -}); - -test('nested dotted objects', function (t) { - var argv = parse([ - '--foo.bar', '3', '--foo.baz', '4', - '--foo.quux.quibble', '5', '--foo.quux.o_O', - '--beep.boop' - ]); - - t.same(argv.foo, { - bar : 3, - baz : 4, - quux : { - quibble : 5, - o_O : true - } - }); - t.same(argv.beep, { boop : true }); - t.end(); -}); - -test('boolean and alias with chainable api', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - herp: { alias: 'h', boolean: true } - }; - var aliasedArgv = parse(aliased, { - boolean: 'herp', - alias: { h: 'herp' } - }); - var propertyArgv = parse(regular, { - boolean: 'herp', - alias: { h: 'herp' } - }); - var expected = { - herp: true, - h: true, - '_': [ 'derp' ] - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -test('boolean and alias with options hash', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - alias: { 'h': 'herp' }, - boolean: 'herp' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var expected = { - herp: true, - h: true, - '_': [ 'derp' ] - }; - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -test('boolean and alias using explicit true', function (t) { - var aliased = [ '-h', 'true' ]; - var regular = [ '--herp', 'true' ]; - var opts = { - alias: { h: 'herp' }, - boolean: 'h' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var expected = { - herp: true, - h: true, - '_': [ ] - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -// regression, see https://github.com/substack/node-optimist/issues/71 -test('boolean and --x=true', function(t) { - var parsed = parse(['--boool', '--other=true'], { - boolean: 'boool' - }); - - t.same(parsed.boool, true); - t.same(parsed.other, 'true'); - - parsed = parse(['--boool', '--other=false'], { - boolean: 'boool' - }); - - t.same(parsed.boool, true); - t.same(parsed.other, 'false'); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js deleted file mode 100644 index 21851b03..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js +++ /dev/null @@ -1,9 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('parse with modifier functions' , function (t) { - t.plan(1); - - var argv = parse([ '-b', '123' ], { boolean: 'b' }); - t.deepEqual(argv, { b: true, _: ['123'] }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/short.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/short.js deleted file mode 100644 index d513a1c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/short.js +++ /dev/null @@ -1,67 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('numeric short args', function (t) { - t.plan(2); - t.deepEqual(parse([ '-n123' ]), { n: 123, _: [] }); - t.deepEqual( - parse([ '-123', '456' ]), - { 1: true, 2: true, 3: 456, _: [] } - ); -}); - -test('short', function (t) { - t.deepEqual( - parse([ '-b' ]), - { b : true, _ : [] }, - 'short boolean' - ); - t.deepEqual( - parse([ 'foo', 'bar', 'baz' ]), - { _ : [ 'foo', 'bar', 'baz' ] }, - 'bare' - ); - t.deepEqual( - parse([ '-cats' ]), - { c : true, a : true, t : true, s : true, _ : [] }, - 'group' - ); - t.deepEqual( - parse([ '-cats', 'meow' ]), - { c : true, a : true, t : true, s : 'meow', _ : [] }, - 'short group next' - ); - t.deepEqual( - parse([ '-h', 'localhost' ]), - { h : 'localhost', _ : [] }, - 'short capture' - ); - t.deepEqual( - parse([ '-h', 'localhost', '-p', '555' ]), - { h : 'localhost', p : 555, _ : [] }, - 'short captures' - ); - t.end(); -}); - -test('mixed short bool and capture', function (t) { - t.same( - parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), - { - f : true, p : 555, h : 'localhost', - _ : [ 'script.js' ] - } - ); - t.end(); -}); - -test('short and long', function (t) { - t.deepEqual( - parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), - { - f : true, p : 555, h : 'localhost', - _ : [ 'script.js' ] - } - ); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js deleted file mode 100644 index 8a52a58c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js +++ /dev/null @@ -1,8 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('whitespace should be whitespace' , function (t) { - t.plan(1); - var x = parse([ '-x', '\t' ]).x; - t.equal(x, '\t'); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/package.json deleted file mode 100644 index 8f46140d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "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", - "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", - "bugs": { - "url": "https://github.com/substack/node-mkdirp/issues" - }, - "homepage": "https://github.com/substack/node-mkdirp#readme", - "_id": "mkdirp@0.5.1", - "_shasum": "30057438eac6cf7f8c4767f38648d6697d75c903", - "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "_from": "mkdirp@>=0.5.1 <0.6.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/chmod.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/chmod.js deleted file mode 100644 index 6a404b93..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/chmod.js +++ /dev/null @@ -1,41 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); -var _0744 = parseInt('0744', 8); - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/clobber.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/clobber.js deleted file mode 100644 index 2433b9ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/clobber.js +++ /dev/null @@ -1,38 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; -var _0755 = parseInt('0755', 8); - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/mkdirp.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/mkdirp.js deleted file mode 100644 index eaa8921c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/mkdirp.js +++ /dev/null @@ -1,28 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('woo', function (t) { - t.plan(5); - 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) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }) - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/opts_fs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/opts_fs.js deleted file mode 100644 index 97186b62..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/opts_fs.js +++ /dev/null @@ -1,29 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var test = require('tap').test; -var mockfs = require('mock-fs'); -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('opts.fs', function (t) { - t.plan(5); - - 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 = '/beep/boop/' + [x,y,z].join('/'); - var xfs = mockfs.fs(); - - mkdirp(file, { fs: xfs, mode: _0755 }, function (err) { - t.ifError(err); - xfs.exists(file, function (ex) { - t.ok(ex, 'created file'); - xfs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/opts_fs_sync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/opts_fs_sync.js deleted file mode 100644 index 6c370aa6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/opts_fs_sync.js +++ /dev/null @@ -1,27 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var test = require('tap').test; -var mockfs = require('mock-fs'); -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('opts.fs sync', 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 = '/beep/boop/' + [x,y,z].join('/'); - var xfs = mockfs.fs(); - - mkdirp.sync(file, { fs: xfs, mode: _0755 }); - xfs.exists(file, function (ex) { - t.ok(ex, 'created file'); - xfs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/perm.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/perm.js deleted file mode 100644 index fbce44b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/perm.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('async perm', function (t) { - t.plan(5); - var file = '/tmp/' + (Math.random() * (1<<30)).toString(16); - - mkdirp(file, _0755, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }) - }); -}); - -test('async root perm', function (t) { - mkdirp('/tmp', _0755, function (err) { - if (err) t.fail(err); - t.end(); - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/perm_sync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/perm_sync.js deleted file mode 100644 index 398229fe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/perm_sync.js +++ /dev/null @@ -1,36 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('sync perm', function (t) { - t.plan(4); - var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json'; - - mkdirp.sync(file, _0755); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); - -test('sync root perm', function (t) { - t.plan(3); - - var file = '/tmp'; - mkdirp.sync(file, _0755); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/race.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/race.js deleted file mode 100644 index b0b9e183..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/race.js +++ /dev/null @@ -1,37 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('race', function (t) { - t.plan(10); - 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); - - mk(file); - - function mk (file, cb) { - mkdirp(file, _0755, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }) - }); - } -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/rel.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/rel.js deleted file mode 100644 index 4ddb3427..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/rel.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('rel', function (t) { - t.plan(5); - 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) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - process.chdir(cwd); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }) - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/return.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/return.js deleted file mode 100644 index bce68e56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/return.js +++ /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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/return_sync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/return_sync.js deleted file mode 100644 index 7c222d35..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/return_sync.js +++ /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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/root.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/root.js deleted file mode 100644 index 9e7d079d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/root.js +++ /dev/null @@ -1,19 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; -var _0755 = parseInt('0755', 8); - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/sync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/sync.js deleted file mode 100644 index 8c8dc938..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/sync.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('sync', 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('/'); - - try { - mkdirp.sync(file, _0755); - } catch (err) { - t.fail(err); - return t.end(); - } - - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/umask.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/umask.js deleted file mode 100644 index 2033c63a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/umask.js +++ /dev/null @@ -1,28 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('implicit mode from umask', function (t) { - t.plan(5); - 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) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0777 & (~process.umask())); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }) - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/umask_sync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/umask_sync.js deleted file mode 100644 index 11a76147..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/mkdirp/test/umask_sync.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('umask sync modes', 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('/'); - - try { - mkdirp.sync(file); - } catch (err) { - t.fail(err); - return t.end(); - } - - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, (_0777 & (~process.umask()))); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/.jshintrc deleted file mode 100644 index 52475ba2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/.jshintrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "asi": true, - "laxcomma": true, - "es5": true, - "node": true, - "strict": false -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/.npmignore deleted file mode 100644 index 67484920..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -gyp/test -node_modules -test/.node-gyp diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/0001-gyp-always-install-into-PRODUCT_DIR.patch b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/0001-gyp-always-install-into-PRODUCT_DIR.patch deleted file mode 100644 index 694913f5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/0001-gyp-always-install-into-PRODUCT_DIR.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 9b5e8dc426ada891d67d27b09acc73122ab46849 Mon Sep 17 00:00:00 2001 -From: Nathan Rajlich -Date: Wed, 14 Nov 2012 16:48:52 -0800 -Subject: [PATCH 1/3] gyp: always install into $PRODUCT_DIR - ---- - gyp/pylib/gyp/generator/make.py | 12 +++++++----- - 1 file changed, 7 insertions(+), 5 deletions(-) - -diff --git a/gyp/pylib/gyp/generator/make.py b/gyp/pylib/gyp/generator/make.py -index b88a433..9b3e4e3 100644 ---- a/gyp/pylib/gyp/generator/make.py -+++ b/gyp/pylib/gyp/generator/make.py -@@ -1888,11 +1888,13 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD - """Returns the location of the final output for an installable target.""" - # Xcode puts shared_library results into PRODUCT_DIR, and some gyp files - # rely on this. Emulate this behavior for mac. -- if (self.type == 'shared_library' and -- (self.flavor != 'mac' or self.toolset != 'target')): -- # Install all shared libs into a common directory (per toolset) for -- # convenient access with LD_LIBRARY_PATH. -- return '$(builddir)/lib.%s/%s' % (self.toolset, self.alias) -+ -+ # XXX(TooTallNate): disabling this code since we don't want this behavior... -+ #if (self.type == 'shared_library' and -+ # (self.flavor != 'mac' or self.toolset != 'target')): -+ # # Install all shared libs into a common directory (per toolset) for -+ # # convenient access with LD_LIBRARY_PATH. -+ # return '$(builddir)/lib.%s/%s' % (self.toolset, self.alias) - return '$(builddir)/' + self.alias - - --- -2.3.2 (Apple Git-55) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/0002-gyp-apply-https-codereview.chromium.org-11361103.patch b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/0002-gyp-apply-https-codereview.chromium.org-11361103.patch deleted file mode 100644 index d1c5cac7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/0002-gyp-apply-https-codereview.chromium.org-11361103.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 511840e82116662aa825088fb8a52a9f799f7767 Mon Sep 17 00:00:00 2001 -From: Nathan Rajlich -Date: Wed, 14 Nov 2012 16:54:04 -0800 -Subject: [PATCH 2/3] gyp: apply https://codereview.chromium.org/11361103/ - ---- - gyp/pylib/gyp/generator/msvs.py | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/gyp/pylib/gyp/generator/msvs.py b/gyp/pylib/gyp/generator/msvs.py -index d8e0872..c59aea1 100644 ---- a/gyp/pylib/gyp/generator/msvs.py -+++ b/gyp/pylib/gyp/generator/msvs.py -@@ -2720,6 +2720,9 @@ def _GetMSBuildAttributes(spec, config, build_file): - product_name = spec.get('product_name', '$(ProjectName)') - target_name = prefix + product_name - msbuild_attributes['TargetName'] = target_name -+ if 'TargetExt' not in msbuild_attributes and 'product_extension' in spec: -+ ext = spec.get('product_extension') -+ msbuild_attributes['TargetExt'] = '.' + ext - - if spec.get('msvs_external_builder'): - external_out_dir = spec.get('msvs_external_builder_out_dir', '.') -@@ -2773,6 +2776,9 @@ def _GetMSBuildConfigurationGlobalProperties(spec, configurations, build_file): - attributes['OutputDirectory']) - _AddConditionalProperty(properties, condition, 'TargetName', - attributes['TargetName']) -+ if 'TargetExt' in attributes: -+ _AddConditionalProperty(properties, condition, 'TargetExt', -+ attributes['TargetExt']) - - if attributes.get('TargetPath'): - _AddConditionalProperty(properties, condition, 'TargetPath', --- -2.3.2 (Apple Git-55) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/0003-gyp-don-t-use-links-at-all-just-copy-the-files-inste.patch b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/0003-gyp-don-t-use-links-at-all-just-copy-the-files-inste.patch deleted file mode 100644 index 673a3ddd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/0003-gyp-don-t-use-links-at-all-just-copy-the-files-inste.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0cd9f08a6d4f4be6643001b6c3b5ad40e094bdcc Mon Sep 17 00:00:00 2001 -From: Nathan Zadoks -Date: Tue, 2 Jul 2013 11:07:16 -0700 -Subject: [PATCH 3/3] gyp: don't use links at all, just copy the files instead - ---- - gyp/pylib/gyp/generator/make.py | 2 +- - gyp/pylib/gyp/generator/ninja.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/gyp/pylib/gyp/generator/make.py b/gyp/pylib/gyp/generator/make.py -index 9b3e4e3..b3f8a2b 100644 ---- a/gyp/pylib/gyp/generator/make.py -+++ b/gyp/pylib/gyp/generator/make.py -@@ -372,7 +372,7 @@ cmd_touch = touch $@ - - quiet_cmd_copy = COPY $@ - # send stderr to /dev/null to ignore messages when linking directories. --cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@") -+cmd_copy = rm -rf "$@" && cp -af "$<" "$@" - - %(link_commands)s - """ -diff --git a/gyp/pylib/gyp/generator/ninja.py b/gyp/pylib/gyp/generator/ninja.py -index 7461814..c2951a4 100644 ---- a/gyp/pylib/gyp/generator/ninja.py -+++ b/gyp/pylib/gyp/generator/ninja.py -@@ -2020,7 +2020,7 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, - master_ninja.rule( - 'copy', - description='COPY $in $out', -- command='ln -f $in $out 2>/dev/null || (rm -rf $out && cp -af $in $out)') -+ command='rm -rf $out && cp -af $in $out') - master_ninja.newline() - - all_targets = set() --- -2.3.2 (Apple Git-55) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/CHANGELOG.md deleted file mode 100644 index 63fb25ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/CHANGELOG.md +++ /dev/null @@ -1,57 +0,0 @@ -v3.3.0 2016-02-16 - -* [[`818d854a4d`](https://github.com/nodejs/node-gyp/commit/818d854a4d)] - Introduce NODEJS_ORG_MIRROR and IOJS_ORG_MIRROR (Rod Vagg) [#878](https://github.com/nodejs/node-gyp/pull/878) -* [[`d1e4cc4b62`](https://github.com/nodejs/node-gyp/commit/d1e4cc4b62)] - **(SEMVER-MINOR)** Download headers tarball for ~0.12.10 || ~0.10.42 (Rod Vagg) [#877](https://github.com/nodejs/node-gyp/pull/877) -* [[`6e28ad1bea`](https://github.com/nodejs/node-gyp/commit/6e28ad1bea)] - Allow for npmlog@2.x (Rebecca Turner) [#861](https://github.com/nodejs/node-gyp/pull/861) -* [[`07371e5812`](https://github.com/nodejs/node-gyp/commit/07371e5812)] - Use -fPIC for NetBSD. (Marcin Cieślak) [#856](https://github.com/nodejs/node-gyp/pull/856) -* [[`8c4b0ffa50`](https://github.com/nodejs/node-gyp/commit/8c4b0ffa50)] - **(SEMVER-MINOR)** Add --cafile command line option. (Ben Noordhuis) [#837](https://github.com/nodejs/node-gyp/pull/837) -* [[`b3ad43498e`](https://github.com/nodejs/node-gyp/commit/b3ad43498e)] - **(SEMVER-MINOR)** Make download() function testable. (Ben Noordhuis) [#837](https://github.com/nodejs/node-gyp/pull/837) - -v3.2.1 2015-12-03 - -* [[`ab89b477c4`](https://github.com/nodejs/node-gyp/commit/ab89b477c4)] - Upgrade gyp to b3cef02. (Ben Noordhuis) [#831](https://github.com/nodejs/node-gyp/pull/831) -* [[`90078ecb17`](https://github.com/nodejs/node-gyp/commit/90078ecb17)] - Define WIN32_LEAN_AND_MEAN conditionally. (Ben Noordhuis) [#824](https://github.com/nodejs/node-gyp/pull/824) - -v3.2.0 2015-11-25 - -* [[`268f1ca4c7`](https://github.com/nodejs/node-gyp/commit/268f1ca4c7)] - Use result of `which` when searching for python. (Refael Ackermann) [#668](https://github.com/nodejs/node-gyp/pull/668) -* [[`817ed9bd78`](https://github.com/nodejs/node-gyp/commit/817ed9bd78)] - Add test for python executable search logic. (Ben Noordhuis) [#756](https://github.com/nodejs/node-gyp/pull/756) -* [[`0e2dfda1f3`](https://github.com/nodejs/node-gyp/commit/0e2dfda1f3)] - Fix test/test-options when run through `npm test`. (Ben Noordhuis) [#755](https://github.com/nodejs/node-gyp/pull/755) -* [[`9bfa0876b4`](https://github.com/nodejs/node-gyp/commit/9bfa0876b4)] - Add support for AIX (Michael Dawson) [#753](https://github.com/nodejs/node-gyp/pull/753) -* [[`a8d441a0a2`](https://github.com/nodejs/node-gyp/commit/a8d441a0a2)] - Update README for Windows 10 support. (Jason Williams) [#766](https://github.com/nodejs/node-gyp/pull/766) -* [[`d1d6015276`](https://github.com/nodejs/node-gyp/commit/d1d6015276)] - Update broken links and switch to HTTPS. (andrew morton) - -v3.1.0 2015-11-14 - -* [[`9049241f91`](https://github.com/nodejs/node-gyp/commit/9049241f91)] - **gyp**: don't use links at all, just copy the files instead (Nathan Zadoks) -* [[`8ef90348d1`](https://github.com/nodejs/node-gyp/commit/8ef90348d1)] - **gyp**: apply https://codereview.chromium.org/11361103/ (Nathan Rajlich) -* [[`a2ed0df84e`](https://github.com/nodejs/node-gyp/commit/a2ed0df84e)] - **gyp**: always install into $PRODUCT_DIR (Nathan Rajlich) -* [[`cc8b2fa83e`](https://github.com/nodejs/node-gyp/commit/cc8b2fa83e)] - Update gyp to b3cef02. (Imran Iqbal) [#781](https://github.com/nodejs/node-gyp/pull/781) -* [[`f5d86eb84e`](https://github.com/nodejs/node-gyp/commit/f5d86eb84e)] - Update to tar@2.0.0. (Edgar Muentes) [#797](https://github.com/nodejs/node-gyp/pull/797) -* [[`2ac7de02c4`](https://github.com/nodejs/node-gyp/commit/2ac7de02c4)] - Fix infinite loop with zero-length options. (Ben Noordhuis) [#745](https://github.com/nodejs/node-gyp/pull/745) -* [[`101bed639b`](https://github.com/nodejs/node-gyp/commit/101bed639b)] - This platform value came from debian package, and now the value (Jérémy Lal) [#738](https://github.com/nodejs/node-gyp/pull/738) - -v3.0.3 2015-09-14 - -* [[`ad827cda30`](https://github.com/nodejs/node-gyp/commit/ad827cda30)] - tarballUrl global and && when checking for iojs (Lars-Magnus Skog) [#729](https://github.com/nodejs/node-gyp/pull/729) - -v3.0.2 2015-09-12 - -* [[`6e8c3bf3c6`](https://github.com/nodejs/node-gyp/commit/6e8c3bf3c6)] - add back support for passing additional cmdline args (Rod Vagg) [#723](https://github.com/nodejs/node-gyp/pull/723) -* [[`ff82f2f3b9`](https://github.com/nodejs/node-gyp/commit/ff82f2f3b9)] - fixed broken link in docs to Visual Studio 2013 download (simon-p-r) [#722](https://github.com/nodejs/node-gyp/pull/722) - -v3.0.1 2015-09-08 - -* [[`846337e36b`](https://github.com/nodejs/node-gyp/commit/846337e36b)] - normalise versions for target == this comparison (Rod Vagg) [#716](https://github.com/nodejs/node-gyp/pull/716) - -v3.0.0 2015-09-08 - -* [[`9720d0373c`](https://github.com/nodejs/node-gyp/commit/9720d0373c)] - remove node_modules from tree (Rod Vagg) [#711](https://github.com/nodejs/node-gyp/pull/711) -* [[`6dcf220db7`](https://github.com/nodejs/node-gyp/commit/6dcf220db7)] - test version major directly, don't use semver.satisfies() (Rod Vagg) [#711](https://github.com/nodejs/node-gyp/pull/711) -* [[`938dd18d1c`](https://github.com/nodejs/node-gyp/commit/938dd18d1c)] - refactor for clarity, fix dist-url, add env var dist-url functionality (Rod Vagg) [#711](https://github.com/nodejs/node-gyp/pull/711) -* [[`9e9df66a06`](https://github.com/nodejs/node-gyp/commit/9e9df66a06)] - use process.release, make aware of io.js & node v4 differences (Rod Vagg) [#711](https://github.com/nodejs/node-gyp/pull/711) -* [[`1ea7ed01f4`](https://github.com/nodejs/node-gyp/commit/1ea7ed01f4)] - **deps**: update graceful-fs dependency to the latest (Sakthipriyan Vairamani) [#714](https://github.com/nodejs/node-gyp/pull/714) -* [[`0fbc387b35`](https://github.com/nodejs/node-gyp/commit/0fbc387b35)] - Update repository URLs. (Ben Noordhuis) [#715](https://github.com/nodejs/node-gyp/pull/715) -* [[`bbedb8868b`](https://github.com/nodejs/node-gyp/commit/bbedb8868b)] - **(SEMVER-MAJOR)** **win**: enable delay-load hook by default (Jeremiah Senkpiel) [#708](https://github.com/nodejs/node-gyp/pull/708) -* [[`85ed107565`](https://github.com/nodejs/node-gyp/commit/85ed107565)] - Merge pull request #664 from othiym23/othiym23/allow-semver-5 (Nathan Rajlich) -* [[`0c720d234c`](https://github.com/nodejs/node-gyp/commit/0c720d234c)] - allow semver@5 (Forrest L Norvell) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/History.md deleted file mode 100644 index 8768081e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/History.md +++ /dev/null @@ -1,41 +0,0 @@ - -2.0.2 / 2015-07-14 -================== - - * Use HTTPS for dist url (#656, @SonicHedgehog) - * Merge pull request #648 from nevosegal/master - * Merge pull request #650 from magic890/patch-1 - * Updated Installation section on README - * Updated link to gyp user documentation - * Fix download error message spelling (#643, @tomxtobin) - * Merge pull request #637 from lygstate/master - * Set NODE_GYP_DIR for addon.gypi to setting absolute path for - src/win_delay_load_hook.c, and fixes of the long relative path issue on Win32. - Fixes #636 (#637, @lygstate). - -2.0.1 / 2015-05-28 -================== - - * configure: try/catch the semver range.test() call - * README: update for visual studio 2013 (#510, @samccone) - -2.0.0 / 2015-05-24 -================== - - * configure: check for python2 executable by default, fallback to python - * configure: don't clobber existing $PYTHONPATH - * configure: use "path-array" for PYTHONPATH - * gyp: fix for non-acsii userprofile name on Windows - * gyp: always install into $PRODUCT_DIR - * gyp: apply https://codereview.chromium.org/11361103/ - * gyp: don't use links at all, just copy the files instead - * gyp: update gyp to e1c8fcf7 - * Updated README.md with updated Windows build info - * Show URL when a download fails - * package: add a "license" field - * move HMODULE m declaration to top - * Only add "-undefined dynamic_lookup" to loadable_module targets - * win: optionally allow node.exe/iojs.exe to be renamed - * Avoid downloading shasums if using tarPath - * Add target name preprocessor define: `NODE_GYP_MODULE_NAME` - * Show better error message in case of bad network settings diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/LICENSE deleted file mode 100644 index 2ea4dc5e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012 Nathan Rajlich - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/README.md deleted file mode 100644 index dec739f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/README.md +++ /dev/null @@ -1,199 +0,0 @@ -node-gyp -========= -### Node.js native addon build tool - -`node-gyp` is a cross-platform command-line tool written in Node.js for compiling -native addon modules for Node.js. It bundles the [gyp](https://code.google.com/p/gyp/) -project used by the Chromium team and takes away the pain of dealing with the -various differences in build platforms. It is the replacement to the `node-waf` -program which is removed for node `v0.8`. If you have a native addon for node that -still has a `wscript` file, then you should definitely add a `binding.gyp` file -to support the latest versions of node. - -Multiple target versions of node are supported (i.e. `0.8`, `0.9`, `0.10`, ..., `1.0`, -etc.), regardless of what version of node is actually installed on your system -(`node-gyp` downloads the necessary development files for the target version). - -#### Features: - - * Easy to use, consistent interface - * Same commands to build your module on every platform - * Supports multiple target versions of Node - - -Installation ------------- - -You can install with `npm`: - -``` bash -$ npm install -g node-gyp -``` - -You will also need to install: - - * On Unix: - * `python` (`v2.7` recommended, `v3.x.x` is __*not*__ supported) - * `make` - * A proper C/C++ compiler toolchain, like [GCC](https://gcc.gnu.org) - * On Mac OS X: - * `python` (`v2.7` recommended, `v3.x.x` is __*not*__ supported) (already installed on Mac OS X) - * [Xcode](https://developer.apple.com/xcode/download/) - * You also need to install the `Command Line Tools` via Xcode. You can find this under the menu `Xcode -> Preferences -> Downloads` - * This step will install `gcc` and the related toolchain containing `make` - * On Windows: - * Python ([`v2.7.10`][python-v2.7.10] recommended, `v3.x.x` is __*not*__ supported) - * Make sure that you have a PYTHON environment variable, and it is set to drive:\path\to\python.exe not to a folder - * Windows XP/Vista/7: - * Microsoft Visual Studio C++ 2013 ([Express][msvc2013] version works well) - * If the install fails, try uninstalling any C++ 2010 x64&x86 Redistributable that you have installed first - * If you get errors that the 64-bit compilers are not installed you may also need the [compiler update for the Windows SDK 7.1] - * Windows 7/8: - * Microsoft Visual Studio C++ 2013 for Windows Desktop ([Express][msvc2013] version works well) - * Windows 10: - * Install the latest version of npm (3.3.6 at the time of writing) - * Install Python 2.7 from https://www.python.org/download/releases/2.7/ and make sure its on the System Path - * Install Visual Studio Community 2015 Edition. (Custom Install, Select Visual C++ during the installation) - * Set the environment variable GYP_MSVS_VERSION=2015 - * Run the command prompt as Administrator - * $ npm install (--msvs_version=2015) <-- Shouldn't be needed if you have set GYP_MSVS_VERSION env - * If the above steps have not worked or you are unsure please visit http://www.serverpals.com/blog/building-using-node-gyp-with-visual-studio-express-2015-on-windows-10-pro-x64 for a full walkthrough - * All Windows Versions - * For 64-bit builds of node and native modules you will _**also**_ need the [Windows 7 64-bit SDK][win7sdk] - * You may need to run one of the following commands if your build complains about WindowsSDKDir not being set, and you are sure you have already installed the SDK: - -``` -call "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\Setenv.cmd" /Release /x86 -call "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\Setenv.cmd" /Release /x64 -``` - -If you have multiple Python versions installed, you can identify which Python -version `node-gyp` uses by setting the '--python' variable: - -``` bash -$ node-gyp --python /path/to/python2.7 -``` - -If `node-gyp` is called by way of `npm` *and* you have multiple versions of -Python installed, then you can set `npm`'s 'python' config key to the appropriate -value: - -``` bash -$ npm config set python /path/to/executable/python2.7 -``` - -Note that OS X is just a flavour of Unix and so needs `python`, `make`, and C/C++. -An easy way to obtain these is to install XCode from Apple, -and then use it to install the command line tools (under Preferences -> Downloads). - -How to Use ----------- - -To compile your native addon, first go to its root directory: - -``` bash -$ cd my_node_addon -``` - -The next step is to generate the appropriate project build files for the current -platform. Use `configure` for that: - -``` bash -$ node-gyp configure -``` - -__Note__: The `configure` step looks for the `binding.gyp` file in the current -directory to process. See below for instructions on creating the `binding.gyp` file. - -Now you will have either a `Makefile` (on Unix platforms) or a `vcxproj` file -(on Windows) in the `build/` directory. Next invoke the `build` command: - -``` bash -$ node-gyp build -``` - -Now you have your compiled `.node` bindings file! The compiled bindings end up -in `build/Debug/` or `build/Release/`, depending on the build mode. At this point -you can require the `.node` file with Node and run your tests! - -__Note:__ To create a _Debug_ build of the bindings file, pass the `--debug` (or -`-d`) switch when running either the `configure`, `build` or `rebuild` command. - - -The "binding.gyp" file ----------------------- - -Previously when node had `node-waf` you had to write a `wscript` file. The -replacement for that is the `binding.gyp` file, which describes the configuration -to build your module in a JSON-like format. This file gets placed in the root of -your package, alongside the `package.json` file. - -A barebones `gyp` file appropriate for building a node addon looks like: - -``` python -{ - "targets": [ - { - "target_name": "binding", - "sources": [ "src/binding.cc" ] - } - ] -} -``` - -Some additional resources for addons and writing `gyp` files: - - * ["Going Native" a nodeschool.io tutorial](http://nodeschool.io/#goingnative) - * ["Hello World" node addon example](https://github.com/nodejs/node/tree/master/test/addons/hello-world) - * [gyp user documentation](https://gyp.gsrc.io/docs/UserDocumentation.md) - * [gyp input format reference](https://gyp.gsrc.io/docs/InputFormatReference.md) - * [*"binding.gyp" files out in the wild* wiki page](https://github.com/nodejs/node-gyp/wiki/%22binding.gyp%22-files-out-in-the-wild) - - -Commands --------- - -`node-gyp` responds to the following commands: - -| **Command** | **Description** -|:--------------|:--------------------------------------------------------------- -| `build` | Invokes `make`/`msbuild.exe` and builds the native addon -| `clean` | Removes the `build` directory if it exists -| `configure` | Generates project build files for the current platform -| `rebuild` | Runs `clean`, `configure` and `build` all in a row -| `install` | Installs node development header files for the given version -| `list` | Lists the currently installed node development file versions -| `remove` | Removes the node development header files for the given version - - -License -------- - -(The MIT License) - -Copyright (c) 2012 Nathan Rajlich <nathan@tootallnate.net> - -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. - - -[python-v2.7.10]: https://www.python.org/downloads/release/python-2710/ -[msvc2013]: https://www.microsoft.com/en-gb/download/details.aspx?id=44914 -[win7sdk]: https://www.microsoft.com/en-us/download/details.aspx?id=8279 -[compiler update for the Windows SDK 7.1]: https://www.microsoft.com/en-us/download/details.aspx?id=4422 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/addon.gypi b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/addon.gypi deleted file mode 100644 index 552e4748..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/addon.gypi +++ /dev/null @@ -1,108 +0,0 @@ -{ - 'target_defaults': { - 'type': 'loadable_module', - 'win_delay_load_hook': 'true', - 'product_prefix': '', - - 'include_dirs': [ - '<(node_root_dir)/include/node', - '<(node_root_dir)/src', - '<(node_root_dir)/deps/uv/include', - '<(node_root_dir)/deps/v8/include' - ], - 'defines': [ - 'NODE_GYP_MODULE_NAME=>(_target_name)' - ], - - 'target_conditions': [ - ['_type=="loadable_module"', { - 'product_extension': 'node', - 'defines': [ - 'BUILDING_NODE_EXTENSION' - ], - 'xcode_settings': { - 'OTHER_LDFLAGS': [ - '-undefined dynamic_lookup' - ], - }, - }], - - ['_type=="static_library"', { - # set to `1` to *disable* the -T thin archive 'ld' flag. - # older linkers don't support this flag. - 'standalone_static_library': '<(standalone_static_library)' - }], - - ['_win_delay_load_hook=="true"', { - # If the addon specifies `'win_delay_load_hook': 'true'` in its - # binding.gyp, link a delay-load hook into the DLL. This hook ensures - # that the addon will work regardless of whether the node/iojs binary - # is named node.exe, iojs.exe, or something else. - 'conditions': [ - [ 'OS=="win"', { - 'sources': [ - '<(node_gyp_dir)/src/win_delay_load_hook.c', - ], - 'msvs_settings': { - 'VCLinkerTool': { - 'DelayLoadDLLs': [ 'iojs.exe', 'node.exe' ], - # Don't print a linker warning when no imports from either .exe - # are used. - 'AdditionalOptions': [ '/ignore:4199' ], - }, - }, - }], - ], - }], - ], - - 'conditions': [ - [ 'OS=="mac"', { - 'defines': [ - '_DARWIN_USE_64_BIT_INODE=1' - ], - 'xcode_settings': { - 'DYLIB_INSTALL_NAME_BASE': '@rpath' - }, - }], - [ 'OS=="aix"', { - 'ldflags': [ - '-Wl,-bimport:<(node_exp_file)' - ], - }], - [ 'OS=="win"', { - 'libraries': [ - '-lkernel32.lib', - '-luser32.lib', - '-lgdi32.lib', - '-lwinspool.lib', - '-lcomdlg32.lib', - '-ladvapi32.lib', - '-lshell32.lib', - '-lole32.lib', - '-loleaut32.lib', - '-luuid.lib', - '-lodbc32.lib', - '-lDelayImp.lib', - '-l"<(node_root_dir)/$(ConfigurationName)/<(node_lib_file)"' - ], - 'msvs_disabled_warnings': [ - # warning C4251: 'node::ObjectWrap::handle_' : class 'v8::Persistent' - # needs to have dll-interface to be used by - # clients of class 'node::ObjectWrap' - 4251 - ], - }, { - # OS!="win" - 'defines': [ - '_LARGEFILE_SOURCE', - '_FILE_OFFSET_BITS=64' - ], - }], - [ 'OS in "freebsd openbsd netbsd solaris" or \ - (OS=="linux" and target_arch!="ia32")', { - 'cflags': [ '-fPIC' ], - }] - ] - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js deleted file mode 100755 index e44e7387..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/env node - -/** - * Set the title. - */ - -process.title = 'node-gyp' - -/** - * Module dependencies. - */ - -var gyp = require('../') -var log = require('npmlog') - -/** - * Process and execute the selected commands. - */ - -var prog = gyp() -var completed = false -prog.parseArgv(process.argv) - -if (prog.todo.length === 0) { - if (~process.argv.indexOf('-v') || ~process.argv.indexOf('--version')) { - console.log('v%s', prog.version) - } else { - console.log('%s', prog.usage()) - } - return process.exit(0) -} - -log.info('it worked if it ends with', 'ok') -log.verbose('cli', process.argv) -log.info('using', 'node-gyp@%s', prog.version) -log.info('using', 'node@%s | %s | %s', process.versions.node, process.platform, process.arch) - - -/** - * Change dir if -C/--directory was passed. - */ - -var dir = prog.opts.directory -if (dir) { - var fs = require('fs') - try { - var stat = fs.statSync(dir) - if (stat.isDirectory()) { - log.info('chdir', dir) - process.chdir(dir) - } else { - log.warn('chdir', dir + ' is not a directory') - } - } catch (e) { - if (e.code === 'ENOENT') { - log.warn('chdir', dir + ' is not a directory') - } else { - log.warn('chdir', 'error during chdir() "%s"', e.message) - } - } -} - -function run () { - var command = prog.todo.shift() - if (!command) { - // done! - completed = true - log.info('ok') - return - } - - prog.commands[command.name](command.args, function (err) { - if (err) { - log.error(command.name + ' error') - log.error('stack', err.stack) - errorMessage() - log.error('not ok') - return process.exit(1) - } - if (command.name == 'list') { - var versions = arguments[1] - if (versions.length > 0) { - versions.forEach(function (version) { - console.log(version) - }) - } else { - console.log('No node development files installed. Use `node-gyp install` to install a version.') - } - } else if (arguments.length >= 2) { - console.log.apply(console, [].slice.call(arguments, 1)) - } - - // now run the next command in the queue - process.nextTick(run) - }) -} - -process.on('exit', function (code) { - if (!completed && !code) { - log.error('Completion callback never invoked!') - issueMessage() - process.exit(6) - } -}) - -process.on('uncaughtException', function (err) { - log.error('UNCAUGHT EXCEPTION') - log.error('stack', err.stack) - issueMessage() - process.exit(7) -}) - -function errorMessage () { - // copied from npm's lib/util/error-handler.js - var os = require('os') - log.error('System', os.type() + ' ' + os.release()) - log.error('command', process.argv - .map(JSON.stringify).join(' ')) - log.error('cwd', process.cwd()) - log.error('node -v', process.version) - log.error('node-gyp -v', 'v' + prog.package.version) -} - -function issueMessage () { - errorMessage() - log.error('', [ 'This is a bug in `node-gyp`.' - , 'Try to update node-gyp and file an Issue if it does not help:' - , ' ' - ].join('\n')) -} - -// start running the given commands! -run() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/.npmignore deleted file mode 100644 index 0d20b648..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/.npmignore +++ /dev/null @@ -1 +0,0 @@ -*.pyc diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/AUTHORS b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/AUTHORS deleted file mode 100644 index fecf84a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/AUTHORS +++ /dev/null @@ -1,12 +0,0 @@ -# Names should be added to this file like so: -# Name or Organization - -Google Inc. -Bloomberg Finance L.P. -Yandex LLC - -Steven Knight -Ryan Norton -David J. Sankel -Eric N. Vander Weele -Tom Freudenberg diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/DEPS b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/DEPS deleted file mode 100644 index 2e1120f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/DEPS +++ /dev/null @@ -1,24 +0,0 @@ -# DEPS file for gclient use in buildbot execution of gyp tests. -# -# (You don't need to use gclient for normal GYP development work.) - -vars = { - "chrome_trunk": "http://src.chromium.org/svn/trunk", - "googlecode_url": "http://%s.googlecode.com/svn", -} - -deps = { -} - -deps_os = { - "win": { - "third_party/cygwin": - Var("chrome_trunk") + "/deps/third_party/cygwin@66844", - - "third_party/python_26": - Var("chrome_trunk") + "/tools/third_party/python_26@89111", - - "src/third_party/pefile": - (Var("googlecode_url") % "pefile") + "/trunk@63", - }, -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/LICENSE deleted file mode 100644 index ab6b011a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 Google Inc. 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. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/OWNERS b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/OWNERS deleted file mode 100644 index 72e8ffc0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/OWNERS +++ /dev/null @@ -1 +0,0 @@ -* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/PRESUBMIT.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/PRESUBMIT.py deleted file mode 100644 index dde02538..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/PRESUBMIT.py +++ /dev/null @@ -1,137 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - - -"""Top-level presubmit script for GYP. - -See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts -for more details about the presubmit API built into gcl. -""" - - -PYLINT_BLACKLIST = [ - # TODO: fix me. - # From SCons, not done in google style. - 'test/lib/TestCmd.py', - 'test/lib/TestCommon.py', - 'test/lib/TestGyp.py', -] - - -PYLINT_DISABLED_WARNINGS = [ - # TODO: fix me. - # Many tests include modules they don't use. - 'W0611', - # Possible unbalanced tuple unpacking with sequence. - 'W0632', - # Attempting to unpack a non-sequence. - 'W0633', - # Include order doesn't properly include local files? - 'F0401', - # Some use of built-in names. - 'W0622', - # Some unused variables. - 'W0612', - # Operator not preceded/followed by space. - 'C0323', - 'C0322', - # Unnecessary semicolon. - 'W0301', - # Unused argument. - 'W0613', - # String has no effect (docstring in wrong place). - 'W0105', - # map/filter on lambda could be replaced by comprehension. - 'W0110', - # Use of eval. - 'W0123', - # Comma not followed by space. - 'C0324', - # Access to a protected member. - 'W0212', - # Bad indent. - 'W0311', - # Line too long. - 'C0301', - # Undefined variable. - 'E0602', - # Not exception type specified. - 'W0702', - # No member of that name. - 'E1101', - # Dangerous default {}. - 'W0102', - # Cyclic import. - 'R0401', - # Others, too many to sort. - 'W0201', 'W0232', 'E1103', 'W0621', 'W0108', 'W0223', 'W0231', - 'R0201', 'E0101', 'C0321', - # ************* Module copy - # W0104:427,12:_test.odict.__setitem__: Statement seems to have no effect - 'W0104', -] - - -def CheckChangeOnUpload(input_api, output_api): - report = [] - report.extend(input_api.canned_checks.PanProjectChecks( - input_api, output_api)) - return report - - -def CheckChangeOnCommit(input_api, output_api): - report = [] - - # Accept any year number from 2009 to the current year. - current_year = int(input_api.time.strftime('%Y')) - allowed_years = (str(s) for s in reversed(xrange(2009, current_year + 1))) - years_re = '(' + '|'.join(allowed_years) + ')' - - # The (c) is deprecated, but tolerate it until it's removed from all files. - license = ( - r'.*? Copyright (\(c\) )?%(year)s Google Inc\. All rights reserved\.\n' - r'.*? Use of this source code is governed by a BSD-style license that ' - r'can be\n' - r'.*? found in the LICENSE file\.\n' - ) % { - 'year': years_re, - } - - report.extend(input_api.canned_checks.PanProjectChecks( - input_api, output_api, license_header=license)) - report.extend(input_api.canned_checks.CheckTreeIsOpen( - input_api, output_api, - 'http://gyp-status.appspot.com/status', - 'http://gyp-status.appspot.com/current')) - - import os - import sys - old_sys_path = sys.path - try: - sys.path = ['pylib', 'test/lib'] + sys.path - blacklist = PYLINT_BLACKLIST - if sys.platform == 'win32': - blacklist = [os.path.normpath(x).replace('\\', '\\\\') - for x in PYLINT_BLACKLIST] - report.extend(input_api.canned_checks.RunPylint( - input_api, - output_api, - black_list=blacklist, - disabled_warnings=PYLINT_DISABLED_WARNINGS)) - finally: - sys.path = old_sys_path - return report - - -TRYBOTS = [ - 'linux_try', - 'mac_try', - 'win_try', -] - - -def GetPreferredTryMasters(_, change): - return { - 'client.gyp': { t: set(['defaulttests']) for t in TRYBOTS }, - } diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/aosp_manifest.xml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/aosp_manifest.xml deleted file mode 100644 index bd73b303..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/aosp_manifest.xml +++ /dev/null @@ -1,466 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/buildbot_run.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/buildbot_run.py deleted file mode 100755 index 9a2b71f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/buildbot_run.py +++ /dev/null @@ -1,136 +0,0 @@ -#!/usr/bin/env python -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Argument-less script to select what to run on the buildbots.""" - -import os -import shutil -import subprocess -import sys - - -BUILDBOT_DIR = os.path.dirname(os.path.abspath(__file__)) -TRUNK_DIR = os.path.dirname(BUILDBOT_DIR) -ROOT_DIR = os.path.dirname(TRUNK_DIR) -CMAKE_DIR = os.path.join(ROOT_DIR, 'cmake') -CMAKE_BIN_DIR = os.path.join(CMAKE_DIR, 'bin') -OUT_DIR = os.path.join(TRUNK_DIR, 'out') - - -def CallSubProcess(*args, **kwargs): - """Wrapper around subprocess.call which treats errors as build exceptions.""" - with open(os.devnull) as devnull_fd: - retcode = subprocess.call(stdin=devnull_fd, *args, **kwargs) - if retcode != 0: - print '@@@STEP_EXCEPTION@@@' - sys.exit(1) - - -def PrepareCmake(): - """Build CMake 2.8.8 since the version in Precise is 2.8.7.""" - if os.environ['BUILDBOT_CLOBBER'] == '1': - print '@@@BUILD_STEP Clobber CMake checkout@@@' - shutil.rmtree(CMAKE_DIR) - - # We always build CMake 2.8.8, so no need to do anything - # if the directory already exists. - if os.path.isdir(CMAKE_DIR): - return - - print '@@@BUILD_STEP Initialize CMake checkout@@@' - os.mkdir(CMAKE_DIR) - - print '@@@BUILD_STEP Sync CMake@@@' - CallSubProcess( - ['git', 'clone', - '--depth', '1', - '--single-branch', - '--branch', 'v2.8.8', - '--', - 'git://cmake.org/cmake.git', - CMAKE_DIR], - cwd=CMAKE_DIR) - - print '@@@BUILD_STEP Build CMake@@@' - CallSubProcess( - ['/bin/bash', 'bootstrap', '--prefix=%s' % CMAKE_DIR], - cwd=CMAKE_DIR) - - CallSubProcess( ['make', 'cmake'], cwd=CMAKE_DIR) - - -def GypTestFormat(title, format=None, msvs_version=None, tests=[]): - """Run the gyp tests for a given format, emitting annotator tags. - - See annotator docs at: - https://sites.google.com/a/chromium.org/dev/developers/testing/chromium-build-infrastructure/buildbot-annotations - Args: - format: gyp format to test. - Returns: - 0 for sucesss, 1 for failure. - """ - if not format: - format = title - - print '@@@BUILD_STEP ' + title + '@@@' - sys.stdout.flush() - env = os.environ.copy() - if msvs_version: - env['GYP_MSVS_VERSION'] = msvs_version - command = ' '.join( - [sys.executable, 'gyp/gyptest.py', - '--all', - '--passed', - '--format', format, - '--path', CMAKE_BIN_DIR, - '--chdir', 'gyp'] + tests) - retcode = subprocess.call(command, cwd=ROOT_DIR, env=env, shell=True) - if retcode: - # Emit failure tag, and keep going. - print '@@@STEP_FAILURE@@@' - return 1 - return 0 - - -def GypBuild(): - # Dump out/ directory. - print '@@@BUILD_STEP cleanup@@@' - print 'Removing %s...' % OUT_DIR - shutil.rmtree(OUT_DIR, ignore_errors=True) - print 'Done.' - - retcode = 0 - if sys.platform.startswith('linux'): - retcode += GypTestFormat('ninja') - retcode += GypTestFormat('make') - PrepareCmake() - retcode += GypTestFormat('cmake') - elif sys.platform == 'darwin': - retcode += GypTestFormat('ninja') - retcode += GypTestFormat('xcode') - retcode += GypTestFormat('make') - elif sys.platform == 'win32': - retcode += GypTestFormat('ninja') - if os.environ['BUILDBOT_BUILDERNAME'] == 'gyp-win64': - retcode += GypTestFormat('msvs-ninja-2013', format='msvs-ninja', - msvs_version='2013', - tests=[ - r'test\generator-output\gyptest-actions.py', - r'test\generator-output\gyptest-relocate.py', - r'test\generator-output\gyptest-rules.py']) - retcode += GypTestFormat('msvs-2013', format='msvs', msvs_version='2013') - else: - raise Exception('Unknown platform') - if retcode: - # TODO(bradnelson): once the annotator supports a postscript (section for - # after the build proper that could be used for cumulative failures), - # use that instead of this. This isolates the final return value so - # that it isn't misattributed to the last stage. - print '@@@BUILD_STEP failures@@@' - sys.exit(retcode) - - -if __name__ == '__main__': - GypBuild() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/OWNERS b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/OWNERS deleted file mode 100644 index b269c198..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/OWNERS +++ /dev/null @@ -1,6 +0,0 @@ -set noparent -bradnelson@chromium.org -bradnelson@google.com -iannucci@chromium.org -scottmg@chromium.org -thakis@chromium.org diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/README b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/README deleted file mode 100644 index 94284978..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/README +++ /dev/null @@ -1,3 +0,0 @@ -cq_config.json describes the trybots that must pass in order -to land a change through the commit queue. -Comments are here as the file is strictly JSON. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/cq_config.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/cq_config.json deleted file mode 100644 index 656c21e5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/buildbot/commit_queue/cq_config.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "trybots": { - "launched": { - "tryserver.nacl": { - "gyp-presubmit": ["defaulttests"], - "gyp-linux": ["defaulttests"], - "gyp-mac": ["defaulttests"], - "gyp-win32": ["defaulttests"], - "gyp-win64": ["defaulttests"] - } - }, - "triggered": { - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/codereview.settings b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/codereview.settings deleted file mode 100644 index faf37f11..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/codereview.settings +++ /dev/null @@ -1,10 +0,0 @@ -# This file is used by gcl to get repository specific information. -CODE_REVIEW_SERVER: codereview.chromium.org -CC_LIST: gyp-developer@googlegroups.com -VIEW_VC: https://chromium.googlesource.com/external/gyp/+/ -TRY_ON_UPLOAD: False -TRYSERVER_PROJECT: gyp -TRYSERVER_PATCHLEVEL: 1 -TRYSERVER_ROOT: gyp -TRYSERVER_SVN_URL: svn://svn.chromium.org/chrome-try/try-nacl -PROJECT: gyp diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc deleted file mode 100644 index 8bca5108..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2013 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file is used to generate an empty .pdb -- with a 4KB pagesize -- that is -// then used during the final link for modules that have large PDBs. Otherwise, -// the linker will generate a pdb with a page size of 1KB, which imposes a limit -// of 1GB on the .pdb. By generating an initial empty .pdb with the compiler -// (rather than the linker), this limit is avoided. With this in place PDBs may -// grow to 2GB. -// -// This file is referenced by the msvs_large_pdb mechanism in MSVSUtil.py. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyp b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyp deleted file mode 100755 index 1b8b9bdf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyp +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# Copyright 2013 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -set -e -base=$(dirname "$0") -exec python "${base}/gyp_main.py" "$@" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyp.bat b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyp.bat deleted file mode 100755 index ad797c30..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyp.bat +++ /dev/null @@ -1,5 +0,0 @@ -@rem Copyright (c) 2009 Google Inc. All rights reserved. -@rem Use of this source code is governed by a BSD-style license that can be -@rem found in the LICENSE file. - -@python "%~dp0gyp_main.py" %* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py deleted file mode 100755 index 25a6eba9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2009 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import os -import sys - -# Make sure we're using the version of pylib in this repo, not one installed -# elsewhere on the system. -sys.path.insert(0, os.path.join(os.path.dirname(sys.argv[0]), 'pylib')) -import gyp - -if __name__ == '__main__': - sys.exit(gyp.script_main()) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyptest.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyptest.py deleted file mode 100755 index 8e4fc47d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/gyptest.py +++ /dev/null @@ -1,274 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -__doc__ = """ -gyptest.py -- test runner for GYP tests. -""" - -import os -import optparse -import subprocess -import sys - -class CommandRunner(object): - """ - Executor class for commands, including "commands" implemented by - Python functions. - """ - verbose = True - active = True - - def __init__(self, dictionary={}): - self.subst_dictionary(dictionary) - - def subst_dictionary(self, dictionary): - self._subst_dictionary = dictionary - - def subst(self, string, dictionary=None): - """ - Substitutes (via the format operator) the values in the specified - dictionary into the specified command. - - The command can be an (action, string) tuple. In all cases, we - perform substitution on strings and don't worry if something isn't - a string. (It's probably a Python function to be executed.) - """ - if dictionary is None: - dictionary = self._subst_dictionary - if dictionary: - try: - string = string % dictionary - except TypeError: - pass - return string - - def display(self, command, stdout=None, stderr=None): - if not self.verbose: - return - if type(command) == type(()): - func = command[0] - args = command[1:] - s = '%s(%s)' % (func.__name__, ', '.join(map(repr, args))) - if type(command) == type([]): - # TODO: quote arguments containing spaces - # TODO: handle meta characters? - s = ' '.join(command) - else: - s = self.subst(command) - if not s.endswith('\n'): - s += '\n' - sys.stdout.write(s) - sys.stdout.flush() - - def execute(self, command, stdout=None, stderr=None): - """ - Executes a single command. - """ - if not self.active: - return 0 - if type(command) == type(''): - command = self.subst(command) - cmdargs = shlex.split(command) - if cmdargs[0] == 'cd': - command = (os.chdir,) + tuple(cmdargs[1:]) - if type(command) == type(()): - func = command[0] - args = command[1:] - return func(*args) - else: - if stdout is sys.stdout: - # Same as passing sys.stdout, except python2.4 doesn't fail on it. - subout = None - else: - # Open pipe for anything else so Popen works on python2.4. - subout = subprocess.PIPE - if stderr is sys.stderr: - # Same as passing sys.stderr, except python2.4 doesn't fail on it. - suberr = None - elif stderr is None: - # Merge with stdout if stderr isn't specified. - suberr = subprocess.STDOUT - else: - # Open pipe for anything else so Popen works on python2.4. - suberr = subprocess.PIPE - p = subprocess.Popen(command, - shell=(sys.platform == 'win32'), - stdout=subout, - stderr=suberr) - p.wait() - if stdout is None: - self.stdout = p.stdout.read() - elif stdout is not sys.stdout: - stdout.write(p.stdout.read()) - if stderr not in (None, sys.stderr): - stderr.write(p.stderr.read()) - return p.returncode - - def run(self, command, display=None, stdout=None, stderr=None): - """ - Runs a single command, displaying it first. - """ - if display is None: - display = command - self.display(display) - return self.execute(command, stdout, stderr) - - -class Unbuffered(object): - def __init__(self, fp): - self.fp = fp - def write(self, arg): - self.fp.write(arg) - self.fp.flush() - def __getattr__(self, attr): - return getattr(self.fp, attr) - -sys.stdout = Unbuffered(sys.stdout) -sys.stderr = Unbuffered(sys.stderr) - - -def is_test_name(f): - return f.startswith('gyptest') and f.endswith('.py') - - -def find_all_gyptest_files(directory): - result = [] - for root, dirs, files in os.walk(directory): - if '.svn' in dirs: - dirs.remove('.svn') - result.extend([ os.path.join(root, f) for f in files if is_test_name(f) ]) - result.sort() - return result - - -def main(argv=None): - if argv is None: - argv = sys.argv - - usage = "gyptest.py [-ahlnq] [-f formats] [test ...]" - parser = optparse.OptionParser(usage=usage) - parser.add_option("-a", "--all", action="store_true", - help="run all tests") - parser.add_option("-C", "--chdir", action="store", default=None, - help="chdir to the specified directory") - parser.add_option("-f", "--format", action="store", default='', - help="run tests with the specified formats") - parser.add_option("-G", '--gyp_option', action="append", default=[], - help="Add -G options to the gyp command line") - parser.add_option("-l", "--list", action="store_true", - help="list available tests and exit") - parser.add_option("-n", "--no-exec", action="store_true", - help="no execute, just print the command line") - parser.add_option("--passed", action="store_true", - help="report passed tests") - parser.add_option("--path", action="append", default=[], - help="additional $PATH directory") - parser.add_option("-q", "--quiet", action="store_true", - help="quiet, don't print test command lines") - opts, args = parser.parse_args(argv[1:]) - - if opts.chdir: - os.chdir(opts.chdir) - - if opts.path: - extra_path = [os.path.abspath(p) for p in opts.path] - extra_path = os.pathsep.join(extra_path) - os.environ['PATH'] = extra_path + os.pathsep + os.environ['PATH'] - - if not args: - if not opts.all: - sys.stderr.write('Specify -a to get all tests.\n') - return 1 - args = ['test'] - - tests = [] - for arg in args: - if os.path.isdir(arg): - tests.extend(find_all_gyptest_files(os.path.normpath(arg))) - else: - if not is_test_name(os.path.basename(arg)): - print >>sys.stderr, arg, 'is not a valid gyp test name.' - sys.exit(1) - tests.append(arg) - - if opts.list: - for test in tests: - print test - sys.exit(0) - - CommandRunner.verbose = not opts.quiet - CommandRunner.active = not opts.no_exec - cr = CommandRunner() - - os.environ['PYTHONPATH'] = os.path.abspath('test/lib') - if not opts.quiet: - sys.stdout.write('PYTHONPATH=%s\n' % os.environ['PYTHONPATH']) - - passed = [] - failed = [] - no_result = [] - - if opts.format: - format_list = opts.format.split(',') - else: - # TODO: not duplicate this mapping from pylib/gyp/__init__.py - format_list = { - 'aix5': ['make'], - 'freebsd7': ['make'], - 'freebsd8': ['make'], - 'openbsd5': ['make'], - 'cygwin': ['msvs'], - 'win32': ['msvs', 'ninja'], - 'linux2': ['make', 'ninja'], - 'linux3': ['make', 'ninja'], - 'darwin': ['make', 'ninja', 'xcode', 'xcode-ninja'], - }[sys.platform] - - for format in format_list: - os.environ['TESTGYP_FORMAT'] = format - if not opts.quiet: - sys.stdout.write('TESTGYP_FORMAT=%s\n' % format) - - gyp_options = [] - for option in opts.gyp_option: - gyp_options += ['-G', option] - if gyp_options and not opts.quiet: - sys.stdout.write('Extra Gyp options: %s\n' % gyp_options) - - for test in tests: - status = cr.run([sys.executable, test] + gyp_options, - stdout=sys.stdout, - stderr=sys.stderr) - if status == 2: - no_result.append(test) - elif status: - failed.append(test) - else: - passed.append(test) - - if not opts.quiet: - def report(description, tests): - if tests: - if len(tests) == 1: - sys.stdout.write("\n%s the following test:\n" % description) - else: - fmt = "\n%s the following %d tests:\n" - sys.stdout.write(fmt % (description, len(tests))) - sys.stdout.write("\t" + "\n\t".join(tests) + "\n") - - if opts.passed: - report("Passed", passed) - report("Failed", failed) - report("No result from", no_result) - - if failed: - return 1 - else: - return 0 - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py deleted file mode 100644 index 593f0e5b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +++ /dev/null @@ -1,340 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""New implementation of Visual Studio project generation.""" - -import os -import random - -import gyp.common - -# hashlib is supplied as of Python 2.5 as the replacement interface for md5 -# and other secure hashes. In 2.6, md5 is deprecated. Import hashlib if -# available, avoiding a deprecation warning under 2.6. Import md5 otherwise, -# preserving 2.4 compatibility. -try: - import hashlib - _new_md5 = hashlib.md5 -except ImportError: - import md5 - _new_md5 = md5.new - - -# Initialize random number generator -random.seed() - -# GUIDs for project types -ENTRY_TYPE_GUIDS = { - 'project': '{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}', - 'folder': '{2150E333-8FDC-42A3-9474-1A3956D46DE8}', -} - -#------------------------------------------------------------------------------ -# Helper functions - - -def MakeGuid(name, seed='msvs_new'): - """Returns a GUID for the specified target name. - - Args: - name: Target name. - seed: Seed for MD5 hash. - Returns: - A GUID-line string calculated from the name and seed. - - This generates something which looks like a GUID, but depends only on the - name and seed. This means the same name/seed will always generate the same - GUID, so that projects and solutions which refer to each other can explicitly - determine the GUID to refer to explicitly. It also means that the GUID will - not change when the project for a target is rebuilt. - """ - # Calculate a MD5 signature for the seed and name. - d = _new_md5(str(seed) + str(name)).hexdigest().upper() - # Convert most of the signature to GUID form (discard the rest) - guid = ('{' + d[:8] + '-' + d[8:12] + '-' + d[12:16] + '-' + d[16:20] - + '-' + d[20:32] + '}') - return guid - -#------------------------------------------------------------------------------ - - -class MSVSSolutionEntry(object): - def __cmp__(self, other): - # Sort by name then guid (so things are in order on vs2008). - return cmp((self.name, self.get_guid()), (other.name, other.get_guid())) - - -class MSVSFolder(MSVSSolutionEntry): - """Folder in a Visual Studio project or solution.""" - - def __init__(self, path, name = None, entries = None, - guid = None, items = None): - """Initializes the folder. - - Args: - path: Full path to the folder. - name: Name of the folder. - entries: List of folder entries to nest inside this folder. May contain - Folder or Project objects. May be None, if the folder is empty. - guid: GUID to use for folder, if not None. - items: List of solution items to include in the folder project. May be - None, if the folder does not directly contain items. - """ - if name: - self.name = name - else: - # Use last layer. - self.name = os.path.basename(path) - - self.path = path - self.guid = guid - - # Copy passed lists (or set to empty lists) - self.entries = sorted(list(entries or [])) - self.items = list(items or []) - - self.entry_type_guid = ENTRY_TYPE_GUIDS['folder'] - - def get_guid(self): - if self.guid is None: - # Use consistent guids for folders (so things don't regenerate). - self.guid = MakeGuid(self.path, seed='msvs_folder') - return self.guid - - -#------------------------------------------------------------------------------ - - -class MSVSProject(MSVSSolutionEntry): - """Visual Studio project.""" - - def __init__(self, path, name = None, dependencies = None, guid = None, - spec = None, build_file = None, config_platform_overrides = None, - fixpath_prefix = None): - """Initializes the project. - - Args: - path: Absolute path to the project file. - name: Name of project. If None, the name will be the same as the base - name of the project file. - dependencies: List of other Project objects this project is dependent - upon, if not None. - guid: GUID to use for project, if not None. - spec: Dictionary specifying how to build this project. - build_file: Filename of the .gyp file that the vcproj file comes from. - config_platform_overrides: optional dict of configuration platforms to - used in place of the default for this target. - fixpath_prefix: the path used to adjust the behavior of _fixpath - """ - self.path = path - self.guid = guid - self.spec = spec - self.build_file = build_file - # Use project filename if name not specified - self.name = name or os.path.splitext(os.path.basename(path))[0] - - # Copy passed lists (or set to empty lists) - self.dependencies = list(dependencies or []) - - self.entry_type_guid = ENTRY_TYPE_GUIDS['project'] - - if config_platform_overrides: - self.config_platform_overrides = config_platform_overrides - else: - self.config_platform_overrides = {} - self.fixpath_prefix = fixpath_prefix - self.msbuild_toolset = None - - def set_dependencies(self, dependencies): - self.dependencies = list(dependencies or []) - - def get_guid(self): - if self.guid is None: - # Set GUID from path - # TODO(rspangler): This is fragile. - # 1. We can't just use the project filename sans path, since there could - # be multiple projects with the same base name (for example, - # foo/unittest.vcproj and bar/unittest.vcproj). - # 2. The path needs to be relative to $SOURCE_ROOT, so that the project - # GUID is the same whether it's included from base/base.sln or - # foo/bar/baz/baz.sln. - # 3. The GUID needs to be the same each time this builder is invoked, so - # that we don't need to rebuild the solution when the project changes. - # 4. We should be able to handle pre-built project files by reading the - # GUID from the files. - self.guid = MakeGuid(self.name) - return self.guid - - def set_msbuild_toolset(self, msbuild_toolset): - self.msbuild_toolset = msbuild_toolset - -#------------------------------------------------------------------------------ - - -class MSVSSolution(object): - """Visual Studio solution.""" - - def __init__(self, path, version, entries=None, variants=None, - websiteProperties=True): - """Initializes the solution. - - Args: - path: Path to solution file. - version: Format version to emit. - entries: List of entries in solution. May contain Folder or Project - objects. May be None, if the folder is empty. - variants: List of build variant strings. If none, a default list will - be used. - websiteProperties: Flag to decide if the website properties section - is generated. - """ - self.path = path - self.websiteProperties = websiteProperties - self.version = version - - # Copy passed lists (or set to empty lists) - self.entries = list(entries or []) - - if variants: - # Copy passed list - self.variants = variants[:] - else: - # Use default - self.variants = ['Debug|Win32', 'Release|Win32'] - # TODO(rspangler): Need to be able to handle a mapping of solution config - # to project config. Should we be able to handle variants being a dict, - # or add a separate variant_map variable? If it's a dict, we can't - # guarantee the order of variants since dict keys aren't ordered. - - - # TODO(rspangler): Automatically write to disk for now; should delay until - # node-evaluation time. - self.Write() - - - def Write(self, writer=gyp.common.WriteOnDiff): - """Writes the solution file to disk. - - Raises: - IndexError: An entry appears multiple times. - """ - # Walk the entry tree and collect all the folders and projects. - all_entries = set() - entries_to_check = self.entries[:] - while entries_to_check: - e = entries_to_check.pop(0) - - # If this entry has been visited, nothing to do. - if e in all_entries: - continue - - all_entries.add(e) - - # If this is a folder, check its entries too. - if isinstance(e, MSVSFolder): - entries_to_check += e.entries - - all_entries = sorted(all_entries) - - # Open file and print header - f = writer(self.path) - f.write('Microsoft Visual Studio Solution File, ' - 'Format Version %s\r\n' % self.version.SolutionVersion()) - f.write('# %s\r\n' % self.version.Description()) - - # Project entries - sln_root = os.path.split(self.path)[0] - for e in all_entries: - relative_path = gyp.common.RelativePath(e.path, sln_root) - # msbuild does not accept an empty folder_name. - # use '.' in case relative_path is empty. - folder_name = relative_path.replace('/', '\\') or '.' - f.write('Project("%s") = "%s", "%s", "%s"\r\n' % ( - e.entry_type_guid, # Entry type GUID - e.name, # Folder name - folder_name, # Folder name (again) - e.get_guid(), # Entry GUID - )) - - # TODO(rspangler): Need a way to configure this stuff - if self.websiteProperties: - f.write('\tProjectSection(WebsiteProperties) = preProject\r\n' - '\t\tDebug.AspNetCompiler.Debug = "True"\r\n' - '\t\tRelease.AspNetCompiler.Debug = "False"\r\n' - '\tEndProjectSection\r\n') - - if isinstance(e, MSVSFolder): - if e.items: - f.write('\tProjectSection(SolutionItems) = preProject\r\n') - for i in e.items: - f.write('\t\t%s = %s\r\n' % (i, i)) - f.write('\tEndProjectSection\r\n') - - if isinstance(e, MSVSProject): - if e.dependencies: - f.write('\tProjectSection(ProjectDependencies) = postProject\r\n') - for d in e.dependencies: - f.write('\t\t%s = %s\r\n' % (d.get_guid(), d.get_guid())) - f.write('\tEndProjectSection\r\n') - - f.write('EndProject\r\n') - - # Global section - f.write('Global\r\n') - - # Configurations (variants) - f.write('\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n') - for v in self.variants: - f.write('\t\t%s = %s\r\n' % (v, v)) - f.write('\tEndGlobalSection\r\n') - - # Sort config guids for easier diffing of solution changes. - config_guids = [] - config_guids_overrides = {} - for e in all_entries: - if isinstance(e, MSVSProject): - config_guids.append(e.get_guid()) - config_guids_overrides[e.get_guid()] = e.config_platform_overrides - config_guids.sort() - - f.write('\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n') - for g in config_guids: - for v in self.variants: - nv = config_guids_overrides[g].get(v, v) - # Pick which project configuration to build for this solution - # configuration. - f.write('\t\t%s.%s.ActiveCfg = %s\r\n' % ( - g, # Project GUID - v, # Solution build configuration - nv, # Project build config for that solution config - )) - - # Enable project in this solution configuration. - f.write('\t\t%s.%s.Build.0 = %s\r\n' % ( - g, # Project GUID - v, # Solution build configuration - nv, # Project build config for that solution config - )) - f.write('\tEndGlobalSection\r\n') - - # TODO(rspangler): Should be able to configure this stuff too (though I've - # never seen this be any different) - f.write('\tGlobalSection(SolutionProperties) = preSolution\r\n') - f.write('\t\tHideSolutionNode = FALSE\r\n') - f.write('\tEndGlobalSection\r\n') - - # Folder mappings - # Omit this section if there are no folders - if any([e.entries for e in all_entries if isinstance(e, MSVSFolder)]): - f.write('\tGlobalSection(NestedProjects) = preSolution\r\n') - for e in all_entries: - if not isinstance(e, MSVSFolder): - continue # Does not apply to projects, only folders - for subentry in e.entries: - f.write('\t\t%s = %s\r\n' % (subentry.get_guid(), e.get_guid())) - f.write('\tEndGlobalSection\r\n') - - f.write('EndGlobal\r\n') - - f.close() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py deleted file mode 100644 index db1ceede..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +++ /dev/null @@ -1,208 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Visual Studio project reader/writer.""" - -import gyp.common -import gyp.easy_xml as easy_xml - -#------------------------------------------------------------------------------ - - -class Tool(object): - """Visual Studio tool.""" - - def __init__(self, name, attrs=None): - """Initializes the tool. - - Args: - name: Tool name. - attrs: Dict of tool attributes; may be None. - """ - self._attrs = attrs or {} - self._attrs['Name'] = name - - def _GetSpecification(self): - """Creates an element for the tool. - - Returns: - A new xml.dom.Element for the tool. - """ - return ['Tool', self._attrs] - -class Filter(object): - """Visual Studio filter - that is, a virtual folder.""" - - def __init__(self, name, contents=None): - """Initializes the folder. - - Args: - name: Filter (folder) name. - contents: List of filenames and/or Filter objects contained. - """ - self.name = name - self.contents = list(contents or []) - - -#------------------------------------------------------------------------------ - - -class Writer(object): - """Visual Studio XML project writer.""" - - def __init__(self, project_path, version, name, guid=None, platforms=None): - """Initializes the project. - - Args: - project_path: Path to the project file. - version: Format version to emit. - name: Name of the project. - guid: GUID to use for project, if not None. - platforms: Array of string, the supported platforms. If null, ['Win32'] - """ - self.project_path = project_path - self.version = version - self.name = name - self.guid = guid - - # Default to Win32 for platforms. - if not platforms: - platforms = ['Win32'] - - # Initialize the specifications of the various sections. - self.platform_section = ['Platforms'] - for platform in platforms: - self.platform_section.append(['Platform', {'Name': platform}]) - self.tool_files_section = ['ToolFiles'] - self.configurations_section = ['Configurations'] - self.files_section = ['Files'] - - # Keep a dict keyed on filename to speed up access. - self.files_dict = dict() - - def AddToolFile(self, path): - """Adds a tool file to the project. - - Args: - path: Relative path from project to tool file. - """ - self.tool_files_section.append(['ToolFile', {'RelativePath': path}]) - - def _GetSpecForConfiguration(self, config_type, config_name, attrs, tools): - """Returns the specification for a configuration. - - Args: - config_type: Type of configuration node. - config_name: Configuration name. - attrs: Dict of configuration attributes; may be None. - tools: List of tools (strings or Tool objects); may be None. - Returns: - """ - # Handle defaults - if not attrs: - attrs = {} - if not tools: - tools = [] - - # Add configuration node and its attributes - node_attrs = attrs.copy() - node_attrs['Name'] = config_name - specification = [config_type, node_attrs] - - # Add tool nodes and their attributes - if tools: - for t in tools: - if isinstance(t, Tool): - specification.append(t._GetSpecification()) - else: - specification.append(Tool(t)._GetSpecification()) - return specification - - - def AddConfig(self, name, attrs=None, tools=None): - """Adds a configuration to the project. - - Args: - name: Configuration name. - attrs: Dict of configuration attributes; may be None. - tools: List of tools (strings or Tool objects); may be None. - """ - spec = self._GetSpecForConfiguration('Configuration', name, attrs, tools) - self.configurations_section.append(spec) - - def _AddFilesToNode(self, parent, files): - """Adds files and/or filters to the parent node. - - Args: - parent: Destination node - files: A list of Filter objects and/or relative paths to files. - - Will call itself recursively, if the files list contains Filter objects. - """ - for f in files: - if isinstance(f, Filter): - node = ['Filter', {'Name': f.name}] - self._AddFilesToNode(node, f.contents) - else: - node = ['File', {'RelativePath': f}] - self.files_dict[f] = node - parent.append(node) - - def AddFiles(self, files): - """Adds files to the project. - - Args: - files: A list of Filter objects and/or relative paths to files. - - This makes a copy of the file/filter tree at the time of this call. If you - later add files to a Filter object which was passed into a previous call - to AddFiles(), it will not be reflected in this project. - """ - self._AddFilesToNode(self.files_section, files) - # TODO(rspangler) This also doesn't handle adding files to an existing - # filter. That is, it doesn't merge the trees. - - def AddFileConfig(self, path, config, attrs=None, tools=None): - """Adds a configuration to a file. - - Args: - path: Relative path to the file. - config: Name of configuration to add. - attrs: Dict of configuration attributes; may be None. - tools: List of tools (strings or Tool objects); may be None. - - Raises: - ValueError: Relative path does not match any file added via AddFiles(). - """ - # Find the file node with the right relative path - parent = self.files_dict.get(path) - if not parent: - raise ValueError('AddFileConfig: file "%s" not in project.' % path) - - # Add the config to the file node - spec = self._GetSpecForConfiguration('FileConfiguration', config, attrs, - tools) - parent.append(spec) - - def WriteIfChanged(self): - """Writes the project file.""" - # First create XML content definition - content = [ - 'VisualStudioProject', - {'ProjectType': 'Visual C++', - 'Version': self.version.ProjectVersion(), - 'Name': self.name, - 'ProjectGUID': self.guid, - 'RootNamespace': self.name, - 'Keyword': 'Win32Proj' - }, - self.platform_section, - self.tool_files_section, - self.configurations_section, - ['References'], # empty section - self.files_section, - ['Globals'] # empty section - ] - easy_xml.WriteXmlIfChanged(content, self.project_path, - encoding="Windows-1252") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py deleted file mode 100644 index 4985756b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +++ /dev/null @@ -1,1096 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -r"""Code to validate and convert settings of the Microsoft build tools. - -This file contains code to validate and convert settings of the Microsoft -build tools. The function ConvertToMSBuildSettings(), ValidateMSVSSettings(), -and ValidateMSBuildSettings() are the entry points. - -This file was created by comparing the projects created by Visual Studio 2008 -and Visual Studio 2010 for all available settings through the user interface. -The MSBuild schemas were also considered. They are typically found in the -MSBuild install directory, e.g. c:\Program Files (x86)\MSBuild -""" - -import sys -import re - -# Dictionaries of settings validators. The key is the tool name, the value is -# a dictionary mapping setting names to validation functions. -_msvs_validators = {} -_msbuild_validators = {} - - -# A dictionary of settings converters. The key is the tool name, the value is -# a dictionary mapping setting names to conversion functions. -_msvs_to_msbuild_converters = {} - - -# Tool name mapping from MSVS to MSBuild. -_msbuild_name_of_tool = {} - - -class _Tool(object): - """Represents a tool used by MSVS or MSBuild. - - Attributes: - msvs_name: The name of the tool in MSVS. - msbuild_name: The name of the tool in MSBuild. - """ - - def __init__(self, msvs_name, msbuild_name): - self.msvs_name = msvs_name - self.msbuild_name = msbuild_name - - -def _AddTool(tool): - """Adds a tool to the four dictionaries used to process settings. - - This only defines the tool. Each setting also needs to be added. - - Args: - tool: The _Tool object to be added. - """ - _msvs_validators[tool.msvs_name] = {} - _msbuild_validators[tool.msbuild_name] = {} - _msvs_to_msbuild_converters[tool.msvs_name] = {} - _msbuild_name_of_tool[tool.msvs_name] = tool.msbuild_name - - -def _GetMSBuildToolSettings(msbuild_settings, tool): - """Returns an MSBuild tool dictionary. Creates it if needed.""" - return msbuild_settings.setdefault(tool.msbuild_name, {}) - - -class _Type(object): - """Type of settings (Base class).""" - - def ValidateMSVS(self, value): - """Verifies that the value is legal for MSVS. - - Args: - value: the value to check for this type. - - Raises: - ValueError if value is not valid for MSVS. - """ - - def ValidateMSBuild(self, value): - """Verifies that the value is legal for MSBuild. - - Args: - value: the value to check for this type. - - Raises: - ValueError if value is not valid for MSBuild. - """ - - def ConvertToMSBuild(self, value): - """Returns the MSBuild equivalent of the MSVS value given. - - Args: - value: the MSVS value to convert. - - Returns: - the MSBuild equivalent. - - Raises: - ValueError if value is not valid. - """ - return value - - -class _String(_Type): - """A setting that's just a string.""" - - def ValidateMSVS(self, value): - if not isinstance(value, basestring): - raise ValueError('expected string; got %r' % value) - - def ValidateMSBuild(self, value): - if not isinstance(value, basestring): - raise ValueError('expected string; got %r' % value) - - def ConvertToMSBuild(self, value): - # Convert the macros - return ConvertVCMacrosToMSBuild(value) - - -class _StringList(_Type): - """A settings that's a list of strings.""" - - def ValidateMSVS(self, value): - if not isinstance(value, basestring) and not isinstance(value, list): - raise ValueError('expected string list; got %r' % value) - - def ValidateMSBuild(self, value): - if not isinstance(value, basestring) and not isinstance(value, list): - raise ValueError('expected string list; got %r' % value) - - def ConvertToMSBuild(self, value): - # Convert the macros - if isinstance(value, list): - return [ConvertVCMacrosToMSBuild(i) for i in value] - else: - return ConvertVCMacrosToMSBuild(value) - - -class _Boolean(_Type): - """Boolean settings, can have the values 'false' or 'true'.""" - - def _Validate(self, value): - if value != 'true' and value != 'false': - raise ValueError('expected bool; got %r' % value) - - def ValidateMSVS(self, value): - self._Validate(value) - - def ValidateMSBuild(self, value): - self._Validate(value) - - def ConvertToMSBuild(self, value): - self._Validate(value) - return value - - -class _Integer(_Type): - """Integer settings.""" - - def __init__(self, msbuild_base=10): - _Type.__init__(self) - self._msbuild_base = msbuild_base - - def ValidateMSVS(self, value): - # Try to convert, this will raise ValueError if invalid. - self.ConvertToMSBuild(value) - - def ValidateMSBuild(self, value): - # Try to convert, this will raise ValueError if invalid. - int(value, self._msbuild_base) - - def ConvertToMSBuild(self, value): - msbuild_format = (self._msbuild_base == 10) and '%d' or '0x%04x' - return msbuild_format % int(value) - - -class _Enumeration(_Type): - """Type of settings that is an enumeration. - - In MSVS, the values are indexes like '0', '1', and '2'. - MSBuild uses text labels that are more representative, like 'Win32'. - - Constructor args: - label_list: an array of MSBuild labels that correspond to the MSVS index. - In the rare cases where MSVS has skipped an index value, None is - used in the array to indicate the unused spot. - new: an array of labels that are new to MSBuild. - """ - - def __init__(self, label_list, new=None): - _Type.__init__(self) - self._label_list = label_list - self._msbuild_values = set(value for value in label_list - if value is not None) - if new is not None: - self._msbuild_values.update(new) - - def ValidateMSVS(self, value): - # Try to convert. It will raise an exception if not valid. - self.ConvertToMSBuild(value) - - def ValidateMSBuild(self, value): - if value not in self._msbuild_values: - raise ValueError('unrecognized enumerated value %s' % value) - - def ConvertToMSBuild(self, value): - index = int(value) - if index < 0 or index >= len(self._label_list): - raise ValueError('index value (%d) not in expected range [0, %d)' % - (index, len(self._label_list))) - label = self._label_list[index] - if label is None: - raise ValueError('converted value for %s not specified.' % value) - return label - - -# Instantiate the various generic types. -_boolean = _Boolean() -_integer = _Integer() -# For now, we don't do any special validation on these types: -_string = _String() -_file_name = _String() -_folder_name = _String() -_file_list = _StringList() -_folder_list = _StringList() -_string_list = _StringList() -# Some boolean settings went from numerical values to boolean. The -# mapping is 0: default, 1: false, 2: true. -_newly_boolean = _Enumeration(['', 'false', 'true']) - - -def _Same(tool, name, setting_type): - """Defines a setting that has the same name in MSVS and MSBuild. - - Args: - tool: a dictionary that gives the names of the tool for MSVS and MSBuild. - name: the name of the setting. - setting_type: the type of this setting. - """ - _Renamed(tool, name, name, setting_type) - - -def _Renamed(tool, msvs_name, msbuild_name, setting_type): - """Defines a setting for which the name has changed. - - Args: - tool: a dictionary that gives the names of the tool for MSVS and MSBuild. - msvs_name: the name of the MSVS setting. - msbuild_name: the name of the MSBuild setting. - setting_type: the type of this setting. - """ - - def _Translate(value, msbuild_settings): - msbuild_tool_settings = _GetMSBuildToolSettings(msbuild_settings, tool) - msbuild_tool_settings[msbuild_name] = setting_type.ConvertToMSBuild(value) - - _msvs_validators[tool.msvs_name][msvs_name] = setting_type.ValidateMSVS - _msbuild_validators[tool.msbuild_name][msbuild_name] = ( - setting_type.ValidateMSBuild) - _msvs_to_msbuild_converters[tool.msvs_name][msvs_name] = _Translate - - -def _Moved(tool, settings_name, msbuild_tool_name, setting_type): - _MovedAndRenamed(tool, settings_name, msbuild_tool_name, settings_name, - setting_type) - - -def _MovedAndRenamed(tool, msvs_settings_name, msbuild_tool_name, - msbuild_settings_name, setting_type): - """Defines a setting that may have moved to a new section. - - Args: - tool: a dictionary that gives the names of the tool for MSVS and MSBuild. - msvs_settings_name: the MSVS name of the setting. - msbuild_tool_name: the name of the MSBuild tool to place the setting under. - msbuild_settings_name: the MSBuild name of the setting. - setting_type: the type of this setting. - """ - - def _Translate(value, msbuild_settings): - tool_settings = msbuild_settings.setdefault(msbuild_tool_name, {}) - tool_settings[msbuild_settings_name] = setting_type.ConvertToMSBuild(value) - - _msvs_validators[tool.msvs_name][msvs_settings_name] = ( - setting_type.ValidateMSVS) - validator = setting_type.ValidateMSBuild - _msbuild_validators[msbuild_tool_name][msbuild_settings_name] = validator - _msvs_to_msbuild_converters[tool.msvs_name][msvs_settings_name] = _Translate - - -def _MSVSOnly(tool, name, setting_type): - """Defines a setting that is only found in MSVS. - - Args: - tool: a dictionary that gives the names of the tool for MSVS and MSBuild. - name: the name of the setting. - setting_type: the type of this setting. - """ - - def _Translate(unused_value, unused_msbuild_settings): - # Since this is for MSVS only settings, no translation will happen. - pass - - _msvs_validators[tool.msvs_name][name] = setting_type.ValidateMSVS - _msvs_to_msbuild_converters[tool.msvs_name][name] = _Translate - - -def _MSBuildOnly(tool, name, setting_type): - """Defines a setting that is only found in MSBuild. - - Args: - tool: a dictionary that gives the names of the tool for MSVS and MSBuild. - name: the name of the setting. - setting_type: the type of this setting. - """ - - def _Translate(value, msbuild_settings): - # Let msbuild-only properties get translated as-is from msvs_settings. - tool_settings = msbuild_settings.setdefault(tool.msbuild_name, {}) - tool_settings[name] = value - - _msbuild_validators[tool.msbuild_name][name] = setting_type.ValidateMSBuild - _msvs_to_msbuild_converters[tool.msvs_name][name] = _Translate - - -def _ConvertedToAdditionalOption(tool, msvs_name, flag): - """Defines a setting that's handled via a command line option in MSBuild. - - Args: - tool: a dictionary that gives the names of the tool for MSVS and MSBuild. - msvs_name: the name of the MSVS setting that if 'true' becomes a flag - flag: the flag to insert at the end of the AdditionalOptions - """ - - def _Translate(value, msbuild_settings): - if value == 'true': - tool_settings = _GetMSBuildToolSettings(msbuild_settings, tool) - if 'AdditionalOptions' in tool_settings: - new_flags = '%s %s' % (tool_settings['AdditionalOptions'], flag) - else: - new_flags = flag - tool_settings['AdditionalOptions'] = new_flags - _msvs_validators[tool.msvs_name][msvs_name] = _boolean.ValidateMSVS - _msvs_to_msbuild_converters[tool.msvs_name][msvs_name] = _Translate - - -def _CustomGeneratePreprocessedFile(tool, msvs_name): - def _Translate(value, msbuild_settings): - tool_settings = _GetMSBuildToolSettings(msbuild_settings, tool) - if value == '0': - tool_settings['PreprocessToFile'] = 'false' - tool_settings['PreprocessSuppressLineNumbers'] = 'false' - elif value == '1': # /P - tool_settings['PreprocessToFile'] = 'true' - tool_settings['PreprocessSuppressLineNumbers'] = 'false' - elif value == '2': # /EP /P - tool_settings['PreprocessToFile'] = 'true' - tool_settings['PreprocessSuppressLineNumbers'] = 'true' - else: - raise ValueError('value must be one of [0, 1, 2]; got %s' % value) - # Create a bogus validator that looks for '0', '1', or '2' - msvs_validator = _Enumeration(['a', 'b', 'c']).ValidateMSVS - _msvs_validators[tool.msvs_name][msvs_name] = msvs_validator - msbuild_validator = _boolean.ValidateMSBuild - msbuild_tool_validators = _msbuild_validators[tool.msbuild_name] - msbuild_tool_validators['PreprocessToFile'] = msbuild_validator - msbuild_tool_validators['PreprocessSuppressLineNumbers'] = msbuild_validator - _msvs_to_msbuild_converters[tool.msvs_name][msvs_name] = _Translate - - -fix_vc_macro_slashes_regex_list = ('IntDir', 'OutDir') -fix_vc_macro_slashes_regex = re.compile( - r'(\$\((?:%s)\))(?:[\\/]+)' % "|".join(fix_vc_macro_slashes_regex_list) -) - -# Regular expression to detect keys that were generated by exclusion lists -_EXCLUDED_SUFFIX_RE = re.compile('^(.*)_excluded$') - - -def _ValidateExclusionSetting(setting, settings, error_msg, stderr=sys.stderr): - """Verify that 'setting' is valid if it is generated from an exclusion list. - - If the setting appears to be generated from an exclusion list, the root name - is checked. - - Args: - setting: A string that is the setting name to validate - settings: A dictionary where the keys are valid settings - error_msg: The message to emit in the event of error - stderr: The stream receiving the error messages. - """ - # This may be unrecognized because it's an exclusion list. If the - # setting name has the _excluded suffix, then check the root name. - unrecognized = True - m = re.match(_EXCLUDED_SUFFIX_RE, setting) - if m: - root_setting = m.group(1) - unrecognized = root_setting not in settings - - if unrecognized: - # We don't know this setting. Give a warning. - print >> stderr, error_msg - - -def FixVCMacroSlashes(s): - """Replace macros which have excessive following slashes. - - These macros are known to have a built-in trailing slash. Furthermore, many - scripts hiccup on processing paths with extra slashes in the middle. - - This list is probably not exhaustive. Add as needed. - """ - if '$' in s: - s = fix_vc_macro_slashes_regex.sub(r'\1', s) - return s - - -def ConvertVCMacrosToMSBuild(s): - """Convert the the MSVS macros found in the string to the MSBuild equivalent. - - This list is probably not exhaustive. Add as needed. - """ - if '$' in s: - replace_map = { - '$(ConfigurationName)': '$(Configuration)', - '$(InputDir)': '%(RelativeDir)', - '$(InputExt)': '%(Extension)', - '$(InputFileName)': '%(Filename)%(Extension)', - '$(InputName)': '%(Filename)', - '$(InputPath)': '%(Identity)', - '$(ParentName)': '$(ProjectFileName)', - '$(PlatformName)': '$(Platform)', - '$(SafeInputName)': '%(Filename)', - } - for old, new in replace_map.iteritems(): - s = s.replace(old, new) - s = FixVCMacroSlashes(s) - return s - - -def ConvertToMSBuildSettings(msvs_settings, stderr=sys.stderr): - """Converts MSVS settings (VS2008 and earlier) to MSBuild settings (VS2010+). - - Args: - msvs_settings: A dictionary. The key is the tool name. The values are - themselves dictionaries of settings and their values. - stderr: The stream receiving the error messages. - - Returns: - A dictionary of MSBuild settings. The key is either the MSBuild tool name - or the empty string (for the global settings). The values are themselves - dictionaries of settings and their values. - """ - msbuild_settings = {} - for msvs_tool_name, msvs_tool_settings in msvs_settings.iteritems(): - if msvs_tool_name in _msvs_to_msbuild_converters: - msvs_tool = _msvs_to_msbuild_converters[msvs_tool_name] - for msvs_setting, msvs_value in msvs_tool_settings.iteritems(): - if msvs_setting in msvs_tool: - # Invoke the translation function. - try: - msvs_tool[msvs_setting](msvs_value, msbuild_settings) - except ValueError, e: - print >> stderr, ('Warning: while converting %s/%s to MSBuild, ' - '%s' % (msvs_tool_name, msvs_setting, e)) - else: - _ValidateExclusionSetting(msvs_setting, - msvs_tool, - ('Warning: unrecognized setting %s/%s ' - 'while converting to MSBuild.' % - (msvs_tool_name, msvs_setting)), - stderr) - else: - print >> stderr, ('Warning: unrecognized tool %s while converting to ' - 'MSBuild.' % msvs_tool_name) - return msbuild_settings - - -def ValidateMSVSSettings(settings, stderr=sys.stderr): - """Validates that the names of the settings are valid for MSVS. - - Args: - settings: A dictionary. The key is the tool name. The values are - themselves dictionaries of settings and their values. - stderr: The stream receiving the error messages. - """ - _ValidateSettings(_msvs_validators, settings, stderr) - - -def ValidateMSBuildSettings(settings, stderr=sys.stderr): - """Validates that the names of the settings are valid for MSBuild. - - Args: - settings: A dictionary. The key is the tool name. The values are - themselves dictionaries of settings and their values. - stderr: The stream receiving the error messages. - """ - _ValidateSettings(_msbuild_validators, settings, stderr) - - -def _ValidateSettings(validators, settings, stderr): - """Validates that the settings are valid for MSBuild or MSVS. - - We currently only validate the names of the settings, not their values. - - Args: - validators: A dictionary of tools and their validators. - settings: A dictionary. The key is the tool name. The values are - themselves dictionaries of settings and their values. - stderr: The stream receiving the error messages. - """ - for tool_name in settings: - if tool_name in validators: - tool_validators = validators[tool_name] - for setting, value in settings[tool_name].iteritems(): - if setting in tool_validators: - try: - tool_validators[setting](value) - except ValueError, e: - print >> stderr, ('Warning: for %s/%s, %s' % - (tool_name, setting, e)) - else: - _ValidateExclusionSetting(setting, - tool_validators, - ('Warning: unrecognized setting %s/%s' % - (tool_name, setting)), - stderr) - - else: - print >> stderr, ('Warning: unrecognized tool %s' % tool_name) - - -# MSVS and MBuild names of the tools. -_compile = _Tool('VCCLCompilerTool', 'ClCompile') -_link = _Tool('VCLinkerTool', 'Link') -_midl = _Tool('VCMIDLTool', 'Midl') -_rc = _Tool('VCResourceCompilerTool', 'ResourceCompile') -_lib = _Tool('VCLibrarianTool', 'Lib') -_manifest = _Tool('VCManifestTool', 'Manifest') -_masm = _Tool('MASM', 'MASM') - - -_AddTool(_compile) -_AddTool(_link) -_AddTool(_midl) -_AddTool(_rc) -_AddTool(_lib) -_AddTool(_manifest) -_AddTool(_masm) -# Add sections only found in the MSBuild settings. -_msbuild_validators[''] = {} -_msbuild_validators['ProjectReference'] = {} -_msbuild_validators['ManifestResourceCompile'] = {} - -# Descriptions of the compiler options, i.e. VCCLCompilerTool in MSVS and -# ClCompile in MSBuild. -# See "c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\1033\cl.xml" for -# the schema of the MSBuild ClCompile settings. - -# Options that have the same name in MSVS and MSBuild -_Same(_compile, 'AdditionalIncludeDirectories', _folder_list) # /I -_Same(_compile, 'AdditionalOptions', _string_list) -_Same(_compile, 'AdditionalUsingDirectories', _folder_list) # /AI -_Same(_compile, 'AssemblerListingLocation', _file_name) # /Fa -_Same(_compile, 'BrowseInformationFile', _file_name) -_Same(_compile, 'BufferSecurityCheck', _boolean) # /GS -_Same(_compile, 'DisableLanguageExtensions', _boolean) # /Za -_Same(_compile, 'DisableSpecificWarnings', _string_list) # /wd -_Same(_compile, 'EnableFiberSafeOptimizations', _boolean) # /GT -_Same(_compile, 'EnablePREfast', _boolean) # /analyze Visible='false' -_Same(_compile, 'ExpandAttributedSource', _boolean) # /Fx -_Same(_compile, 'FloatingPointExceptions', _boolean) # /fp:except -_Same(_compile, 'ForceConformanceInForLoopScope', _boolean) # /Zc:forScope -_Same(_compile, 'ForcedIncludeFiles', _file_list) # /FI -_Same(_compile, 'ForcedUsingFiles', _file_list) # /FU -_Same(_compile, 'GenerateXMLDocumentationFiles', _boolean) # /doc -_Same(_compile, 'IgnoreStandardIncludePath', _boolean) # /X -_Same(_compile, 'MinimalRebuild', _boolean) # /Gm -_Same(_compile, 'OmitDefaultLibName', _boolean) # /Zl -_Same(_compile, 'OmitFramePointers', _boolean) # /Oy -_Same(_compile, 'PreprocessorDefinitions', _string_list) # /D -_Same(_compile, 'ProgramDataBaseFileName', _file_name) # /Fd -_Same(_compile, 'RuntimeTypeInfo', _boolean) # /GR -_Same(_compile, 'ShowIncludes', _boolean) # /showIncludes -_Same(_compile, 'SmallerTypeCheck', _boolean) # /RTCc -_Same(_compile, 'StringPooling', _boolean) # /GF -_Same(_compile, 'SuppressStartupBanner', _boolean) # /nologo -_Same(_compile, 'TreatWChar_tAsBuiltInType', _boolean) # /Zc:wchar_t -_Same(_compile, 'UndefineAllPreprocessorDefinitions', _boolean) # /u -_Same(_compile, 'UndefinePreprocessorDefinitions', _string_list) # /U -_Same(_compile, 'UseFullPaths', _boolean) # /FC -_Same(_compile, 'WholeProgramOptimization', _boolean) # /GL -_Same(_compile, 'XMLDocumentationFileName', _file_name) - -_Same(_compile, 'AssemblerOutput', - _Enumeration(['NoListing', - 'AssemblyCode', # /FA - 'All', # /FAcs - 'AssemblyAndMachineCode', # /FAc - 'AssemblyAndSourceCode'])) # /FAs -_Same(_compile, 'BasicRuntimeChecks', - _Enumeration(['Default', - 'StackFrameRuntimeCheck', # /RTCs - 'UninitializedLocalUsageCheck', # /RTCu - 'EnableFastChecks'])) # /RTC1 -_Same(_compile, 'BrowseInformation', - _Enumeration(['false', - 'true', # /FR - 'true'])) # /Fr -_Same(_compile, 'CallingConvention', - _Enumeration(['Cdecl', # /Gd - 'FastCall', # /Gr - 'StdCall', # /Gz - 'VectorCall'])) # /Gv -_Same(_compile, 'CompileAs', - _Enumeration(['Default', - 'CompileAsC', # /TC - 'CompileAsCpp'])) # /TP -_Same(_compile, 'DebugInformationFormat', - _Enumeration(['', # Disabled - 'OldStyle', # /Z7 - None, - 'ProgramDatabase', # /Zi - 'EditAndContinue'])) # /ZI -_Same(_compile, 'EnableEnhancedInstructionSet', - _Enumeration(['NotSet', - 'StreamingSIMDExtensions', # /arch:SSE - 'StreamingSIMDExtensions2', # /arch:SSE2 - 'AdvancedVectorExtensions', # /arch:AVX (vs2012+) - 'NoExtensions', # /arch:IA32 (vs2012+) - # This one only exists in the new msbuild format. - 'AdvancedVectorExtensions2', # /arch:AVX2 (vs2013r2+) - ])) -_Same(_compile, 'ErrorReporting', - _Enumeration(['None', # /errorReport:none - 'Prompt', # /errorReport:prompt - 'Queue'], # /errorReport:queue - new=['Send'])) # /errorReport:send" -_Same(_compile, 'ExceptionHandling', - _Enumeration(['false', - 'Sync', # /EHsc - 'Async'], # /EHa - new=['SyncCThrow'])) # /EHs -_Same(_compile, 'FavorSizeOrSpeed', - _Enumeration(['Neither', - 'Speed', # /Ot - 'Size'])) # /Os -_Same(_compile, 'FloatingPointModel', - _Enumeration(['Precise', # /fp:precise - 'Strict', # /fp:strict - 'Fast'])) # /fp:fast -_Same(_compile, 'InlineFunctionExpansion', - _Enumeration(['Default', - 'OnlyExplicitInline', # /Ob1 - 'AnySuitable'], # /Ob2 - new=['Disabled'])) # /Ob0 -_Same(_compile, 'Optimization', - _Enumeration(['Disabled', # /Od - 'MinSpace', # /O1 - 'MaxSpeed', # /O2 - 'Full'])) # /Ox -_Same(_compile, 'RuntimeLibrary', - _Enumeration(['MultiThreaded', # /MT - 'MultiThreadedDebug', # /MTd - 'MultiThreadedDLL', # /MD - 'MultiThreadedDebugDLL'])) # /MDd -_Same(_compile, 'StructMemberAlignment', - _Enumeration(['Default', - '1Byte', # /Zp1 - '2Bytes', # /Zp2 - '4Bytes', # /Zp4 - '8Bytes', # /Zp8 - '16Bytes'])) # /Zp16 -_Same(_compile, 'WarningLevel', - _Enumeration(['TurnOffAllWarnings', # /W0 - 'Level1', # /W1 - 'Level2', # /W2 - 'Level3', # /W3 - 'Level4'], # /W4 - new=['EnableAllWarnings'])) # /Wall - -# Options found in MSVS that have been renamed in MSBuild. -_Renamed(_compile, 'EnableFunctionLevelLinking', 'FunctionLevelLinking', - _boolean) # /Gy -_Renamed(_compile, 'EnableIntrinsicFunctions', 'IntrinsicFunctions', - _boolean) # /Oi -_Renamed(_compile, 'KeepComments', 'PreprocessKeepComments', _boolean) # /C -_Renamed(_compile, 'ObjectFile', 'ObjectFileName', _file_name) # /Fo -_Renamed(_compile, 'OpenMP', 'OpenMPSupport', _boolean) # /openmp -_Renamed(_compile, 'PrecompiledHeaderThrough', 'PrecompiledHeaderFile', - _file_name) # Used with /Yc and /Yu -_Renamed(_compile, 'PrecompiledHeaderFile', 'PrecompiledHeaderOutputFile', - _file_name) # /Fp -_Renamed(_compile, 'UsePrecompiledHeader', 'PrecompiledHeader', - _Enumeration(['NotUsing', # VS recognized '' for this value too. - 'Create', # /Yc - 'Use'])) # /Yu -_Renamed(_compile, 'WarnAsError', 'TreatWarningAsError', _boolean) # /WX - -_ConvertedToAdditionalOption(_compile, 'DefaultCharIsUnsigned', '/J') - -# MSVS options not found in MSBuild. -_MSVSOnly(_compile, 'Detect64BitPortabilityProblems', _boolean) -_MSVSOnly(_compile, 'UseUnicodeResponseFiles', _boolean) - -# MSBuild options not found in MSVS. -_MSBuildOnly(_compile, 'BuildingInIDE', _boolean) -_MSBuildOnly(_compile, 'CompileAsManaged', - _Enumeration([], new=['false', - 'true'])) # /clr -_MSBuildOnly(_compile, 'CreateHotpatchableImage', _boolean) # /hotpatch -_MSBuildOnly(_compile, 'MultiProcessorCompilation', _boolean) # /MP -_MSBuildOnly(_compile, 'PreprocessOutputPath', _string) # /Fi -_MSBuildOnly(_compile, 'ProcessorNumber', _integer) # the number of processors -_MSBuildOnly(_compile, 'TrackerLogDirectory', _folder_name) -_MSBuildOnly(_compile, 'TreatSpecificWarningsAsErrors', _string_list) # /we -_MSBuildOnly(_compile, 'UseUnicodeForAssemblerListing', _boolean) # /FAu - -# Defines a setting that needs very customized processing -_CustomGeneratePreprocessedFile(_compile, 'GeneratePreprocessedFile') - - -# Directives for converting MSVS VCLinkerTool to MSBuild Link. -# See "c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\1033\link.xml" for -# the schema of the MSBuild Link settings. - -# Options that have the same name in MSVS and MSBuild -_Same(_link, 'AdditionalDependencies', _file_list) -_Same(_link, 'AdditionalLibraryDirectories', _folder_list) # /LIBPATH -# /MANIFESTDEPENDENCY: -_Same(_link, 'AdditionalManifestDependencies', _file_list) -_Same(_link, 'AdditionalOptions', _string_list) -_Same(_link, 'AddModuleNamesToAssembly', _file_list) # /ASSEMBLYMODULE -_Same(_link, 'AllowIsolation', _boolean) # /ALLOWISOLATION -_Same(_link, 'AssemblyLinkResource', _file_list) # /ASSEMBLYLINKRESOURCE -_Same(_link, 'BaseAddress', _string) # /BASE -_Same(_link, 'CLRUnmanagedCodeCheck', _boolean) # /CLRUNMANAGEDCODECHECK -_Same(_link, 'DelayLoadDLLs', _file_list) # /DELAYLOAD -_Same(_link, 'DelaySign', _boolean) # /DELAYSIGN -_Same(_link, 'EmbedManagedResourceFile', _file_list) # /ASSEMBLYRESOURCE -_Same(_link, 'EnableUAC', _boolean) # /MANIFESTUAC -_Same(_link, 'EntryPointSymbol', _string) # /ENTRY -_Same(_link, 'ForceSymbolReferences', _file_list) # /INCLUDE -_Same(_link, 'FunctionOrder', _file_name) # /ORDER -_Same(_link, 'GenerateDebugInformation', _boolean) # /DEBUG -_Same(_link, 'GenerateMapFile', _boolean) # /MAP -_Same(_link, 'HeapCommitSize', _string) -_Same(_link, 'HeapReserveSize', _string) # /HEAP -_Same(_link, 'IgnoreAllDefaultLibraries', _boolean) # /NODEFAULTLIB -_Same(_link, 'IgnoreEmbeddedIDL', _boolean) # /IGNOREIDL -_Same(_link, 'ImportLibrary', _file_name) # /IMPLIB -_Same(_link, 'KeyContainer', _file_name) # /KEYCONTAINER -_Same(_link, 'KeyFile', _file_name) # /KEYFILE -_Same(_link, 'ManifestFile', _file_name) # /ManifestFile -_Same(_link, 'MapExports', _boolean) # /MAPINFO:EXPORTS -_Same(_link, 'MapFileName', _file_name) -_Same(_link, 'MergedIDLBaseFileName', _file_name) # /IDLOUT -_Same(_link, 'MergeSections', _string) # /MERGE -_Same(_link, 'MidlCommandFile', _file_name) # /MIDL -_Same(_link, 'ModuleDefinitionFile', _file_name) # /DEF -_Same(_link, 'OutputFile', _file_name) # /OUT -_Same(_link, 'PerUserRedirection', _boolean) -_Same(_link, 'Profile', _boolean) # /PROFILE -_Same(_link, 'ProfileGuidedDatabase', _file_name) # /PGD -_Same(_link, 'ProgramDatabaseFile', _file_name) # /PDB -_Same(_link, 'RegisterOutput', _boolean) -_Same(_link, 'SetChecksum', _boolean) # /RELEASE -_Same(_link, 'StackCommitSize', _string) -_Same(_link, 'StackReserveSize', _string) # /STACK -_Same(_link, 'StripPrivateSymbols', _file_name) # /PDBSTRIPPED -_Same(_link, 'SupportUnloadOfDelayLoadedDLL', _boolean) # /DELAY:UNLOAD -_Same(_link, 'SuppressStartupBanner', _boolean) # /NOLOGO -_Same(_link, 'SwapRunFromCD', _boolean) # /SWAPRUN:CD -_Same(_link, 'TurnOffAssemblyGeneration', _boolean) # /NOASSEMBLY -_Same(_link, 'TypeLibraryFile', _file_name) # /TLBOUT -_Same(_link, 'TypeLibraryResourceID', _integer) # /TLBID -_Same(_link, 'UACUIAccess', _boolean) # /uiAccess='true' -_Same(_link, 'Version', _string) # /VERSION - -_Same(_link, 'EnableCOMDATFolding', _newly_boolean) # /OPT:ICF -_Same(_link, 'FixedBaseAddress', _newly_boolean) # /FIXED -_Same(_link, 'LargeAddressAware', _newly_boolean) # /LARGEADDRESSAWARE -_Same(_link, 'OptimizeReferences', _newly_boolean) # /OPT:REF -_Same(_link, 'RandomizedBaseAddress', _newly_boolean) # /DYNAMICBASE -_Same(_link, 'TerminalServerAware', _newly_boolean) # /TSAWARE - -_subsystem_enumeration = _Enumeration( - ['NotSet', - 'Console', # /SUBSYSTEM:CONSOLE - 'Windows', # /SUBSYSTEM:WINDOWS - 'Native', # /SUBSYSTEM:NATIVE - 'EFI Application', # /SUBSYSTEM:EFI_APPLICATION - 'EFI Boot Service Driver', # /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER - 'EFI ROM', # /SUBSYSTEM:EFI_ROM - 'EFI Runtime', # /SUBSYSTEM:EFI_RUNTIME_DRIVER - 'WindowsCE'], # /SUBSYSTEM:WINDOWSCE - new=['POSIX']) # /SUBSYSTEM:POSIX - -_target_machine_enumeration = _Enumeration( - ['NotSet', - 'MachineX86', # /MACHINE:X86 - None, - 'MachineARM', # /MACHINE:ARM - 'MachineEBC', # /MACHINE:EBC - 'MachineIA64', # /MACHINE:IA64 - None, - 'MachineMIPS', # /MACHINE:MIPS - 'MachineMIPS16', # /MACHINE:MIPS16 - 'MachineMIPSFPU', # /MACHINE:MIPSFPU - 'MachineMIPSFPU16', # /MACHINE:MIPSFPU16 - None, - None, - None, - 'MachineSH4', # /MACHINE:SH4 - None, - 'MachineTHUMB', # /MACHINE:THUMB - 'MachineX64']) # /MACHINE:X64 - -_Same(_link, 'AssemblyDebug', - _Enumeration(['', - 'true', # /ASSEMBLYDEBUG - 'false'])) # /ASSEMBLYDEBUG:DISABLE -_Same(_link, 'CLRImageType', - _Enumeration(['Default', - 'ForceIJWImage', # /CLRIMAGETYPE:IJW - 'ForcePureILImage', # /Switch="CLRIMAGETYPE:PURE - 'ForceSafeILImage'])) # /Switch="CLRIMAGETYPE:SAFE -_Same(_link, 'CLRThreadAttribute', - _Enumeration(['DefaultThreadingAttribute', # /CLRTHREADATTRIBUTE:NONE - 'MTAThreadingAttribute', # /CLRTHREADATTRIBUTE:MTA - 'STAThreadingAttribute'])) # /CLRTHREADATTRIBUTE:STA -_Same(_link, 'DataExecutionPrevention', - _Enumeration(['', - 'false', # /NXCOMPAT:NO - 'true'])) # /NXCOMPAT -_Same(_link, 'Driver', - _Enumeration(['NotSet', - 'Driver', # /Driver - 'UpOnly', # /DRIVER:UPONLY - 'WDM'])) # /DRIVER:WDM -_Same(_link, 'LinkTimeCodeGeneration', - _Enumeration(['Default', - 'UseLinkTimeCodeGeneration', # /LTCG - 'PGInstrument', # /LTCG:PGInstrument - 'PGOptimization', # /LTCG:PGOptimize - 'PGUpdate'])) # /LTCG:PGUpdate -_Same(_link, 'ShowProgress', - _Enumeration(['NotSet', - 'LinkVerbose', # /VERBOSE - 'LinkVerboseLib'], # /VERBOSE:Lib - new=['LinkVerboseICF', # /VERBOSE:ICF - 'LinkVerboseREF', # /VERBOSE:REF - 'LinkVerboseSAFESEH', # /VERBOSE:SAFESEH - 'LinkVerboseCLR'])) # /VERBOSE:CLR -_Same(_link, 'SubSystem', _subsystem_enumeration) -_Same(_link, 'TargetMachine', _target_machine_enumeration) -_Same(_link, 'UACExecutionLevel', - _Enumeration(['AsInvoker', # /level='asInvoker' - 'HighestAvailable', # /level='highestAvailable' - 'RequireAdministrator'])) # /level='requireAdministrator' -_Same(_link, 'MinimumRequiredVersion', _string) -_Same(_link, 'TreatLinkerWarningAsErrors', _boolean) # /WX - - -# Options found in MSVS that have been renamed in MSBuild. -_Renamed(_link, 'ErrorReporting', 'LinkErrorReporting', - _Enumeration(['NoErrorReport', # /ERRORREPORT:NONE - 'PromptImmediately', # /ERRORREPORT:PROMPT - 'QueueForNextLogin'], # /ERRORREPORT:QUEUE - new=['SendErrorReport'])) # /ERRORREPORT:SEND -_Renamed(_link, 'IgnoreDefaultLibraryNames', 'IgnoreSpecificDefaultLibraries', - _file_list) # /NODEFAULTLIB -_Renamed(_link, 'ResourceOnlyDLL', 'NoEntryPoint', _boolean) # /NOENTRY -_Renamed(_link, 'SwapRunFromNet', 'SwapRunFromNET', _boolean) # /SWAPRUN:NET - -_Moved(_link, 'GenerateManifest', '', _boolean) -_Moved(_link, 'IgnoreImportLibrary', '', _boolean) -_Moved(_link, 'LinkIncremental', '', _newly_boolean) -_Moved(_link, 'LinkLibraryDependencies', 'ProjectReference', _boolean) -_Moved(_link, 'UseLibraryDependencyInputs', 'ProjectReference', _boolean) - -# MSVS options not found in MSBuild. -_MSVSOnly(_link, 'OptimizeForWindows98', _newly_boolean) -_MSVSOnly(_link, 'UseUnicodeResponseFiles', _boolean) - -# MSBuild options not found in MSVS. -_MSBuildOnly(_link, 'BuildingInIDE', _boolean) -_MSBuildOnly(_link, 'ImageHasSafeExceptionHandlers', _boolean) # /SAFESEH -_MSBuildOnly(_link, 'LinkDLL', _boolean) # /DLL Visible='false' -_MSBuildOnly(_link, 'LinkStatus', _boolean) # /LTCG:STATUS -_MSBuildOnly(_link, 'PreventDllBinding', _boolean) # /ALLOWBIND -_MSBuildOnly(_link, 'SupportNobindOfDelayLoadedDLL', _boolean) # /DELAY:NOBIND -_MSBuildOnly(_link, 'TrackerLogDirectory', _folder_name) -_MSBuildOnly(_link, 'MSDOSStubFileName', _file_name) # /STUB Visible='false' -_MSBuildOnly(_link, 'SectionAlignment', _integer) # /ALIGN -_MSBuildOnly(_link, 'SpecifySectionAttributes', _string) # /SECTION -_MSBuildOnly(_link, 'ForceFileOutput', - _Enumeration([], new=['Enabled', # /FORCE - # /FORCE:MULTIPLE - 'MultiplyDefinedSymbolOnly', - 'UndefinedSymbolOnly'])) # /FORCE:UNRESOLVED -_MSBuildOnly(_link, 'CreateHotPatchableImage', - _Enumeration([], new=['Enabled', # /FUNCTIONPADMIN - 'X86Image', # /FUNCTIONPADMIN:5 - 'X64Image', # /FUNCTIONPADMIN:6 - 'ItaniumImage'])) # /FUNCTIONPADMIN:16 -_MSBuildOnly(_link, 'CLRSupportLastError', - _Enumeration([], new=['Enabled', # /CLRSupportLastError - 'Disabled', # /CLRSupportLastError:NO - # /CLRSupportLastError:SYSTEMDLL - 'SystemDlls'])) - - -# Directives for converting VCResourceCompilerTool to ResourceCompile. -# See "c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\1033\rc.xml" for -# the schema of the MSBuild ResourceCompile settings. - -_Same(_rc, 'AdditionalOptions', _string_list) -_Same(_rc, 'AdditionalIncludeDirectories', _folder_list) # /I -_Same(_rc, 'Culture', _Integer(msbuild_base=16)) -_Same(_rc, 'IgnoreStandardIncludePath', _boolean) # /X -_Same(_rc, 'PreprocessorDefinitions', _string_list) # /D -_Same(_rc, 'ResourceOutputFileName', _string) # /fo -_Same(_rc, 'ShowProgress', _boolean) # /v -# There is no UI in VisualStudio 2008 to set the following properties. -# However they are found in CL and other tools. Include them here for -# completeness, as they are very likely to have the same usage pattern. -_Same(_rc, 'SuppressStartupBanner', _boolean) # /nologo -_Same(_rc, 'UndefinePreprocessorDefinitions', _string_list) # /u - -# MSBuild options not found in MSVS. -_MSBuildOnly(_rc, 'NullTerminateStrings', _boolean) # /n -_MSBuildOnly(_rc, 'TrackerLogDirectory', _folder_name) - - -# Directives for converting VCMIDLTool to Midl. -# See "c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\1033\midl.xml" for -# the schema of the MSBuild Midl settings. - -_Same(_midl, 'AdditionalIncludeDirectories', _folder_list) # /I -_Same(_midl, 'AdditionalOptions', _string_list) -_Same(_midl, 'CPreprocessOptions', _string) # /cpp_opt -_Same(_midl, 'ErrorCheckAllocations', _boolean) # /error allocation -_Same(_midl, 'ErrorCheckBounds', _boolean) # /error bounds_check -_Same(_midl, 'ErrorCheckEnumRange', _boolean) # /error enum -_Same(_midl, 'ErrorCheckRefPointers', _boolean) # /error ref -_Same(_midl, 'ErrorCheckStubData', _boolean) # /error stub_data -_Same(_midl, 'GenerateStublessProxies', _boolean) # /Oicf -_Same(_midl, 'GenerateTypeLibrary', _boolean) -_Same(_midl, 'HeaderFileName', _file_name) # /h -_Same(_midl, 'IgnoreStandardIncludePath', _boolean) # /no_def_idir -_Same(_midl, 'InterfaceIdentifierFileName', _file_name) # /iid -_Same(_midl, 'MkTypLibCompatible', _boolean) # /mktyplib203 -_Same(_midl, 'OutputDirectory', _string) # /out -_Same(_midl, 'PreprocessorDefinitions', _string_list) # /D -_Same(_midl, 'ProxyFileName', _file_name) # /proxy -_Same(_midl, 'RedirectOutputAndErrors', _file_name) # /o -_Same(_midl, 'SuppressStartupBanner', _boolean) # /nologo -_Same(_midl, 'TypeLibraryName', _file_name) # /tlb -_Same(_midl, 'UndefinePreprocessorDefinitions', _string_list) # /U -_Same(_midl, 'WarnAsError', _boolean) # /WX - -_Same(_midl, 'DefaultCharType', - _Enumeration(['Unsigned', # /char unsigned - 'Signed', # /char signed - 'Ascii'])) # /char ascii7 -_Same(_midl, 'TargetEnvironment', - _Enumeration(['NotSet', - 'Win32', # /env win32 - 'Itanium', # /env ia64 - 'X64'])) # /env x64 -_Same(_midl, 'EnableErrorChecks', - _Enumeration(['EnableCustom', - 'None', # /error none - 'All'])) # /error all -_Same(_midl, 'StructMemberAlignment', - _Enumeration(['NotSet', - '1', # Zp1 - '2', # Zp2 - '4', # Zp4 - '8'])) # Zp8 -_Same(_midl, 'WarningLevel', - _Enumeration(['0', # /W0 - '1', # /W1 - '2', # /W2 - '3', # /W3 - '4'])) # /W4 - -_Renamed(_midl, 'DLLDataFileName', 'DllDataFileName', _file_name) # /dlldata -_Renamed(_midl, 'ValidateParameters', 'ValidateAllParameters', - _boolean) # /robust - -# MSBuild options not found in MSVS. -_MSBuildOnly(_midl, 'ApplicationConfigurationMode', _boolean) # /app_config -_MSBuildOnly(_midl, 'ClientStubFile', _file_name) # /cstub -_MSBuildOnly(_midl, 'GenerateClientFiles', - _Enumeration([], new=['Stub', # /client stub - 'None'])) # /client none -_MSBuildOnly(_midl, 'GenerateServerFiles', - _Enumeration([], new=['Stub', # /client stub - 'None'])) # /client none -_MSBuildOnly(_midl, 'LocaleID', _integer) # /lcid DECIMAL -_MSBuildOnly(_midl, 'ServerStubFile', _file_name) # /sstub -_MSBuildOnly(_midl, 'SuppressCompilerWarnings', _boolean) # /no_warn -_MSBuildOnly(_midl, 'TrackerLogDirectory', _folder_name) -_MSBuildOnly(_midl, 'TypeLibFormat', - _Enumeration([], new=['NewFormat', # /newtlb - 'OldFormat'])) # /oldtlb - - -# Directives for converting VCLibrarianTool to Lib. -# See "c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\1033\lib.xml" for -# the schema of the MSBuild Lib settings. - -_Same(_lib, 'AdditionalDependencies', _file_list) -_Same(_lib, 'AdditionalLibraryDirectories', _folder_list) # /LIBPATH -_Same(_lib, 'AdditionalOptions', _string_list) -_Same(_lib, 'ExportNamedFunctions', _string_list) # /EXPORT -_Same(_lib, 'ForceSymbolReferences', _string) # /INCLUDE -_Same(_lib, 'IgnoreAllDefaultLibraries', _boolean) # /NODEFAULTLIB -_Same(_lib, 'IgnoreSpecificDefaultLibraries', _file_list) # /NODEFAULTLIB -_Same(_lib, 'ModuleDefinitionFile', _file_name) # /DEF -_Same(_lib, 'OutputFile', _file_name) # /OUT -_Same(_lib, 'SuppressStartupBanner', _boolean) # /NOLOGO -_Same(_lib, 'UseUnicodeResponseFiles', _boolean) -_Same(_lib, 'LinkTimeCodeGeneration', _boolean) # /LTCG -_Same(_lib, 'TargetMachine', _target_machine_enumeration) - -# TODO(jeanluc) _link defines the same value that gets moved to -# ProjectReference. We may want to validate that they are consistent. -_Moved(_lib, 'LinkLibraryDependencies', 'ProjectReference', _boolean) - -_MSBuildOnly(_lib, 'DisplayLibrary', _string) # /LIST Visible='false' -_MSBuildOnly(_lib, 'ErrorReporting', - _Enumeration([], new=['PromptImmediately', # /ERRORREPORT:PROMPT - 'QueueForNextLogin', # /ERRORREPORT:QUEUE - 'SendErrorReport', # /ERRORREPORT:SEND - 'NoErrorReport'])) # /ERRORREPORT:NONE -_MSBuildOnly(_lib, 'MinimumRequiredVersion', _string) -_MSBuildOnly(_lib, 'Name', _file_name) # /NAME -_MSBuildOnly(_lib, 'RemoveObjects', _file_list) # /REMOVE -_MSBuildOnly(_lib, 'SubSystem', _subsystem_enumeration) -_MSBuildOnly(_lib, 'TrackerLogDirectory', _folder_name) -_MSBuildOnly(_lib, 'TreatLibWarningAsErrors', _boolean) # /WX -_MSBuildOnly(_lib, 'Verbose', _boolean) - - -# Directives for converting VCManifestTool to Mt. -# See "c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\1033\mt.xml" for -# the schema of the MSBuild Lib settings. - -# Options that have the same name in MSVS and MSBuild -_Same(_manifest, 'AdditionalManifestFiles', _file_list) # /manifest -_Same(_manifest, 'AdditionalOptions', _string_list) -_Same(_manifest, 'AssemblyIdentity', _string) # /identity: -_Same(_manifest, 'ComponentFileName', _file_name) # /dll -_Same(_manifest, 'GenerateCatalogFiles', _boolean) # /makecdfs -_Same(_manifest, 'InputResourceManifests', _string) # /inputresource -_Same(_manifest, 'OutputManifestFile', _file_name) # /out -_Same(_manifest, 'RegistrarScriptFile', _file_name) # /rgs -_Same(_manifest, 'ReplacementsFile', _file_name) # /replacements -_Same(_manifest, 'SuppressStartupBanner', _boolean) # /nologo -_Same(_manifest, 'TypeLibraryFile', _file_name) # /tlb: -_Same(_manifest, 'UpdateFileHashes', _boolean) # /hashupdate -_Same(_manifest, 'UpdateFileHashesSearchPath', _file_name) -_Same(_manifest, 'VerboseOutput', _boolean) # /verbose - -# Options that have moved location. -_MovedAndRenamed(_manifest, 'ManifestResourceFile', - 'ManifestResourceCompile', - 'ResourceOutputFileName', - _file_name) -_Moved(_manifest, 'EmbedManifest', '', _boolean) - -# MSVS options not found in MSBuild. -_MSVSOnly(_manifest, 'DependencyInformationFile', _file_name) -_MSVSOnly(_manifest, 'UseFAT32Workaround', _boolean) -_MSVSOnly(_manifest, 'UseUnicodeResponseFiles', _boolean) - -# MSBuild options not found in MSVS. -_MSBuildOnly(_manifest, 'EnableDPIAwareness', _boolean) -_MSBuildOnly(_manifest, 'GenerateCategoryTags', _boolean) # /category -_MSBuildOnly(_manifest, 'ManifestFromManagedAssembly', - _file_name) # /managedassemblyname -_MSBuildOnly(_manifest, 'OutputResourceManifests', _string) # /outputresource -_MSBuildOnly(_manifest, 'SuppressDependencyElement', _boolean) # /nodependency -_MSBuildOnly(_manifest, 'TrackerLogDirectory', _folder_name) - - -# Directives for MASM. -# See "$(VCTargetsPath)\BuildCustomizations\masm.xml" for the schema of the -# MSBuild MASM settings. - -# Options that have the same name in MSVS and MSBuild. -_Same(_masm, 'UseSafeExceptionHandlers', _boolean) # /safeseh diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py deleted file mode 100755 index bf6ea6b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +++ /dev/null @@ -1,1483 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Unit tests for the MSVSSettings.py file.""" - -import StringIO -import unittest -import gyp.MSVSSettings as MSVSSettings - - -class TestSequenceFunctions(unittest.TestCase): - - def setUp(self): - self.stderr = StringIO.StringIO() - - def _ExpectedWarnings(self, expected): - """Compares recorded lines to expected warnings.""" - self.stderr.seek(0) - actual = self.stderr.read().split('\n') - actual = [line for line in actual if line] - self.assertEqual(sorted(expected), sorted(actual)) - - def testValidateMSVSSettings_tool_names(self): - """Tests that only MSVS tool names are allowed.""" - MSVSSettings.ValidateMSVSSettings( - {'VCCLCompilerTool': {}, - 'VCLinkerTool': {}, - 'VCMIDLTool': {}, - 'foo': {}, - 'VCResourceCompilerTool': {}, - 'VCLibrarianTool': {}, - 'VCManifestTool': {}, - 'ClCompile': {}}, - self.stderr) - self._ExpectedWarnings([ - 'Warning: unrecognized tool foo', - 'Warning: unrecognized tool ClCompile']) - - def testValidateMSVSSettings_settings(self): - """Tests that for invalid MSVS settings.""" - MSVSSettings.ValidateMSVSSettings( - {'VCCLCompilerTool': { - 'AdditionalIncludeDirectories': 'folder1;folder2', - 'AdditionalOptions': ['string1', 'string2'], - 'AdditionalUsingDirectories': 'folder1;folder2', - 'AssemblerListingLocation': 'a_file_name', - 'AssemblerOutput': '0', - 'BasicRuntimeChecks': '5', - 'BrowseInformation': 'fdkslj', - 'BrowseInformationFile': 'a_file_name', - 'BufferSecurityCheck': 'true', - 'CallingConvention': '-1', - 'CompileAs': '1', - 'DebugInformationFormat': '2', - 'DefaultCharIsUnsigned': 'true', - 'Detect64BitPortabilityProblems': 'true', - 'DisableLanguageExtensions': 'true', - 'DisableSpecificWarnings': 'string1;string2', - 'EnableEnhancedInstructionSet': '1', - 'EnableFiberSafeOptimizations': 'true', - 'EnableFunctionLevelLinking': 'true', - 'EnableIntrinsicFunctions': 'true', - 'EnablePREfast': 'true', - 'Enableprefast': 'bogus', - 'ErrorReporting': '1', - 'ExceptionHandling': '1', - 'ExpandAttributedSource': 'true', - 'FavorSizeOrSpeed': '1', - 'FloatingPointExceptions': 'true', - 'FloatingPointModel': '1', - 'ForceConformanceInForLoopScope': 'true', - 'ForcedIncludeFiles': 'file1;file2', - 'ForcedUsingFiles': 'file1;file2', - 'GeneratePreprocessedFile': '1', - 'GenerateXMLDocumentationFiles': 'true', - 'IgnoreStandardIncludePath': 'true', - 'InlineFunctionExpansion': '1', - 'KeepComments': 'true', - 'MinimalRebuild': 'true', - 'ObjectFile': 'a_file_name', - 'OmitDefaultLibName': 'true', - 'OmitFramePointers': 'true', - 'OpenMP': 'true', - 'Optimization': '1', - 'PrecompiledHeaderFile': 'a_file_name', - 'PrecompiledHeaderThrough': 'a_file_name', - 'PreprocessorDefinitions': 'string1;string2', - 'ProgramDataBaseFileName': 'a_file_name', - 'RuntimeLibrary': '1', - 'RuntimeTypeInfo': 'true', - 'ShowIncludes': 'true', - 'SmallerTypeCheck': 'true', - 'StringPooling': 'true', - 'StructMemberAlignment': '1', - 'SuppressStartupBanner': 'true', - 'TreatWChar_tAsBuiltInType': 'true', - 'UndefineAllPreprocessorDefinitions': 'true', - 'UndefinePreprocessorDefinitions': 'string1;string2', - 'UseFullPaths': 'true', - 'UsePrecompiledHeader': '1', - 'UseUnicodeResponseFiles': 'true', - 'WarnAsError': 'true', - 'WarningLevel': '1', - 'WholeProgramOptimization': 'true', - 'XMLDocumentationFileName': 'a_file_name', - 'ZZXYZ': 'bogus'}, - 'VCLinkerTool': { - 'AdditionalDependencies': 'file1;file2', - 'AdditionalDependencies_excluded': 'file3', - 'AdditionalLibraryDirectories': 'folder1;folder2', - 'AdditionalManifestDependencies': 'file1;file2', - 'AdditionalOptions': 'a string1', - 'AddModuleNamesToAssembly': 'file1;file2', - 'AllowIsolation': 'true', - 'AssemblyDebug': '2', - 'AssemblyLinkResource': 'file1;file2', - 'BaseAddress': 'a string1', - 'CLRImageType': '2', - 'CLRThreadAttribute': '2', - 'CLRUnmanagedCodeCheck': 'true', - 'DataExecutionPrevention': '2', - 'DelayLoadDLLs': 'file1;file2', - 'DelaySign': 'true', - 'Driver': '2', - 'EmbedManagedResourceFile': 'file1;file2', - 'EnableCOMDATFolding': '2', - 'EnableUAC': 'true', - 'EntryPointSymbol': 'a string1', - 'ErrorReporting': '2', - 'FixedBaseAddress': '2', - 'ForceSymbolReferences': 'file1;file2', - 'FunctionOrder': 'a_file_name', - 'GenerateDebugInformation': 'true', - 'GenerateManifest': 'true', - 'GenerateMapFile': 'true', - 'HeapCommitSize': 'a string1', - 'HeapReserveSize': 'a string1', - 'IgnoreAllDefaultLibraries': 'true', - 'IgnoreDefaultLibraryNames': 'file1;file2', - 'IgnoreEmbeddedIDL': 'true', - 'IgnoreImportLibrary': 'true', - 'ImportLibrary': 'a_file_name', - 'KeyContainer': 'a_file_name', - 'KeyFile': 'a_file_name', - 'LargeAddressAware': '2', - 'LinkIncremental': '2', - 'LinkLibraryDependencies': 'true', - 'LinkTimeCodeGeneration': '2', - 'ManifestFile': 'a_file_name', - 'MapExports': 'true', - 'MapFileName': 'a_file_name', - 'MergedIDLBaseFileName': 'a_file_name', - 'MergeSections': 'a string1', - 'MidlCommandFile': 'a_file_name', - 'ModuleDefinitionFile': 'a_file_name', - 'OptimizeForWindows98': '1', - 'OptimizeReferences': '2', - 'OutputFile': 'a_file_name', - 'PerUserRedirection': 'true', - 'Profile': 'true', - 'ProfileGuidedDatabase': 'a_file_name', - 'ProgramDatabaseFile': 'a_file_name', - 'RandomizedBaseAddress': '2', - 'RegisterOutput': 'true', - 'ResourceOnlyDLL': 'true', - 'SetChecksum': 'true', - 'ShowProgress': '2', - 'StackCommitSize': 'a string1', - 'StackReserveSize': 'a string1', - 'StripPrivateSymbols': 'a_file_name', - 'SubSystem': '2', - 'SupportUnloadOfDelayLoadedDLL': 'true', - 'SuppressStartupBanner': 'true', - 'SwapRunFromCD': 'true', - 'SwapRunFromNet': 'true', - 'TargetMachine': '2', - 'TerminalServerAware': '2', - 'TurnOffAssemblyGeneration': 'true', - 'TypeLibraryFile': 'a_file_name', - 'TypeLibraryResourceID': '33', - 'UACExecutionLevel': '2', - 'UACUIAccess': 'true', - 'UseLibraryDependencyInputs': 'true', - 'UseUnicodeResponseFiles': 'true', - 'Version': 'a string1'}, - 'VCMIDLTool': { - 'AdditionalIncludeDirectories': 'folder1;folder2', - 'AdditionalOptions': 'a string1', - 'CPreprocessOptions': 'a string1', - 'DefaultCharType': '1', - 'DLLDataFileName': 'a_file_name', - 'EnableErrorChecks': '1', - 'ErrorCheckAllocations': 'true', - 'ErrorCheckBounds': 'true', - 'ErrorCheckEnumRange': 'true', - 'ErrorCheckRefPointers': 'true', - 'ErrorCheckStubData': 'true', - 'GenerateStublessProxies': 'true', - 'GenerateTypeLibrary': 'true', - 'HeaderFileName': 'a_file_name', - 'IgnoreStandardIncludePath': 'true', - 'InterfaceIdentifierFileName': 'a_file_name', - 'MkTypLibCompatible': 'true', - 'notgood': 'bogus', - 'OutputDirectory': 'a string1', - 'PreprocessorDefinitions': 'string1;string2', - 'ProxyFileName': 'a_file_name', - 'RedirectOutputAndErrors': 'a_file_name', - 'StructMemberAlignment': '1', - 'SuppressStartupBanner': 'true', - 'TargetEnvironment': '1', - 'TypeLibraryName': 'a_file_name', - 'UndefinePreprocessorDefinitions': 'string1;string2', - 'ValidateParameters': 'true', - 'WarnAsError': 'true', - 'WarningLevel': '1'}, - 'VCResourceCompilerTool': { - 'AdditionalOptions': 'a string1', - 'AdditionalIncludeDirectories': 'folder1;folder2', - 'Culture': '1003', - 'IgnoreStandardIncludePath': 'true', - 'notgood2': 'bogus', - 'PreprocessorDefinitions': 'string1;string2', - 'ResourceOutputFileName': 'a string1', - 'ShowProgress': 'true', - 'SuppressStartupBanner': 'true', - 'UndefinePreprocessorDefinitions': 'string1;string2'}, - 'VCLibrarianTool': { - 'AdditionalDependencies': 'file1;file2', - 'AdditionalLibraryDirectories': 'folder1;folder2', - 'AdditionalOptions': 'a string1', - 'ExportNamedFunctions': 'string1;string2', - 'ForceSymbolReferences': 'a string1', - 'IgnoreAllDefaultLibraries': 'true', - 'IgnoreSpecificDefaultLibraries': 'file1;file2', - 'LinkLibraryDependencies': 'true', - 'ModuleDefinitionFile': 'a_file_name', - 'OutputFile': 'a_file_name', - 'SuppressStartupBanner': 'true', - 'UseUnicodeResponseFiles': 'true'}, - 'VCManifestTool': { - 'AdditionalManifestFiles': 'file1;file2', - 'AdditionalOptions': 'a string1', - 'AssemblyIdentity': 'a string1', - 'ComponentFileName': 'a_file_name', - 'DependencyInformationFile': 'a_file_name', - 'GenerateCatalogFiles': 'true', - 'InputResourceManifests': 'a string1', - 'ManifestResourceFile': 'a_file_name', - 'OutputManifestFile': 'a_file_name', - 'RegistrarScriptFile': 'a_file_name', - 'ReplacementsFile': 'a_file_name', - 'SuppressStartupBanner': 'true', - 'TypeLibraryFile': 'a_file_name', - 'UpdateFileHashes': 'truel', - 'UpdateFileHashesSearchPath': 'a_file_name', - 'UseFAT32Workaround': 'true', - 'UseUnicodeResponseFiles': 'true', - 'VerboseOutput': 'true'}}, - self.stderr) - self._ExpectedWarnings([ - 'Warning: for VCCLCompilerTool/BasicRuntimeChecks, ' - 'index value (5) not in expected range [0, 4)', - 'Warning: for VCCLCompilerTool/BrowseInformation, ' - "invalid literal for int() with base 10: 'fdkslj'", - 'Warning: for VCCLCompilerTool/CallingConvention, ' - 'index value (-1) not in expected range [0, 4)', - 'Warning: for VCCLCompilerTool/DebugInformationFormat, ' - 'converted value for 2 not specified.', - 'Warning: unrecognized setting VCCLCompilerTool/Enableprefast', - 'Warning: unrecognized setting VCCLCompilerTool/ZZXYZ', - 'Warning: for VCLinkerTool/TargetMachine, ' - 'converted value for 2 not specified.', - 'Warning: unrecognized setting VCMIDLTool/notgood', - 'Warning: unrecognized setting VCResourceCompilerTool/notgood2', - 'Warning: for VCManifestTool/UpdateFileHashes, ' - "expected bool; got 'truel'" - '']) - - def testValidateMSBuildSettings_settings(self): - """Tests that for invalid MSBuild settings.""" - MSVSSettings.ValidateMSBuildSettings( - {'ClCompile': { - 'AdditionalIncludeDirectories': 'folder1;folder2', - 'AdditionalOptions': ['string1', 'string2'], - 'AdditionalUsingDirectories': 'folder1;folder2', - 'AssemblerListingLocation': 'a_file_name', - 'AssemblerOutput': 'NoListing', - 'BasicRuntimeChecks': 'StackFrameRuntimeCheck', - 'BrowseInformation': 'false', - 'BrowseInformationFile': 'a_file_name', - 'BufferSecurityCheck': 'true', - 'BuildingInIDE': 'true', - 'CallingConvention': 'Cdecl', - 'CompileAs': 'CompileAsC', - 'CompileAsManaged': 'true', - 'CreateHotpatchableImage': 'true', - 'DebugInformationFormat': 'ProgramDatabase', - 'DisableLanguageExtensions': 'true', - 'DisableSpecificWarnings': 'string1;string2', - 'EnableEnhancedInstructionSet': 'StreamingSIMDExtensions', - 'EnableFiberSafeOptimizations': 'true', - 'EnablePREfast': 'true', - 'Enableprefast': 'bogus', - 'ErrorReporting': 'Prompt', - 'ExceptionHandling': 'SyncCThrow', - 'ExpandAttributedSource': 'true', - 'FavorSizeOrSpeed': 'Neither', - 'FloatingPointExceptions': 'true', - 'FloatingPointModel': 'Precise', - 'ForceConformanceInForLoopScope': 'true', - 'ForcedIncludeFiles': 'file1;file2', - 'ForcedUsingFiles': 'file1;file2', - 'FunctionLevelLinking': 'false', - 'GenerateXMLDocumentationFiles': 'true', - 'IgnoreStandardIncludePath': 'true', - 'InlineFunctionExpansion': 'OnlyExplicitInline', - 'IntrinsicFunctions': 'false', - 'MinimalRebuild': 'true', - 'MultiProcessorCompilation': 'true', - 'ObjectFileName': 'a_file_name', - 'OmitDefaultLibName': 'true', - 'OmitFramePointers': 'true', - 'OpenMPSupport': 'true', - 'Optimization': 'Disabled', - 'PrecompiledHeader': 'NotUsing', - 'PrecompiledHeaderFile': 'a_file_name', - 'PrecompiledHeaderOutputFile': 'a_file_name', - 'PreprocessKeepComments': 'true', - 'PreprocessorDefinitions': 'string1;string2', - 'PreprocessOutputPath': 'a string1', - 'PreprocessSuppressLineNumbers': 'false', - 'PreprocessToFile': 'false', - 'ProcessorNumber': '33', - 'ProgramDataBaseFileName': 'a_file_name', - 'RuntimeLibrary': 'MultiThreaded', - 'RuntimeTypeInfo': 'true', - 'ShowIncludes': 'true', - 'SmallerTypeCheck': 'true', - 'StringPooling': 'true', - 'StructMemberAlignment': '1Byte', - 'SuppressStartupBanner': 'true', - 'TrackerLogDirectory': 'a_folder', - 'TreatSpecificWarningsAsErrors': 'string1;string2', - 'TreatWarningAsError': 'true', - 'TreatWChar_tAsBuiltInType': 'true', - 'UndefineAllPreprocessorDefinitions': 'true', - 'UndefinePreprocessorDefinitions': 'string1;string2', - 'UseFullPaths': 'true', - 'UseUnicodeForAssemblerListing': 'true', - 'WarningLevel': 'TurnOffAllWarnings', - 'WholeProgramOptimization': 'true', - 'XMLDocumentationFileName': 'a_file_name', - 'ZZXYZ': 'bogus'}, - 'Link': { - 'AdditionalDependencies': 'file1;file2', - 'AdditionalLibraryDirectories': 'folder1;folder2', - 'AdditionalManifestDependencies': 'file1;file2', - 'AdditionalOptions': 'a string1', - 'AddModuleNamesToAssembly': 'file1;file2', - 'AllowIsolation': 'true', - 'AssemblyDebug': '', - 'AssemblyLinkResource': 'file1;file2', - 'BaseAddress': 'a string1', - 'BuildingInIDE': 'true', - 'CLRImageType': 'ForceIJWImage', - 'CLRSupportLastError': 'Enabled', - 'CLRThreadAttribute': 'MTAThreadingAttribute', - 'CLRUnmanagedCodeCheck': 'true', - 'CreateHotPatchableImage': 'X86Image', - 'DataExecutionPrevention': 'false', - 'DelayLoadDLLs': 'file1;file2', - 'DelaySign': 'true', - 'Driver': 'NotSet', - 'EmbedManagedResourceFile': 'file1;file2', - 'EnableCOMDATFolding': 'false', - 'EnableUAC': 'true', - 'EntryPointSymbol': 'a string1', - 'FixedBaseAddress': 'false', - 'ForceFileOutput': 'Enabled', - 'ForceSymbolReferences': 'file1;file2', - 'FunctionOrder': 'a_file_name', - 'GenerateDebugInformation': 'true', - 'GenerateMapFile': 'true', - 'HeapCommitSize': 'a string1', - 'HeapReserveSize': 'a string1', - 'IgnoreAllDefaultLibraries': 'true', - 'IgnoreEmbeddedIDL': 'true', - 'IgnoreSpecificDefaultLibraries': 'a_file_list', - 'ImageHasSafeExceptionHandlers': 'true', - 'ImportLibrary': 'a_file_name', - 'KeyContainer': 'a_file_name', - 'KeyFile': 'a_file_name', - 'LargeAddressAware': 'false', - 'LinkDLL': 'true', - 'LinkErrorReporting': 'SendErrorReport', - 'LinkStatus': 'true', - 'LinkTimeCodeGeneration': 'UseLinkTimeCodeGeneration', - 'ManifestFile': 'a_file_name', - 'MapExports': 'true', - 'MapFileName': 'a_file_name', - 'MergedIDLBaseFileName': 'a_file_name', - 'MergeSections': 'a string1', - 'MidlCommandFile': 'a_file_name', - 'MinimumRequiredVersion': 'a string1', - 'ModuleDefinitionFile': 'a_file_name', - 'MSDOSStubFileName': 'a_file_name', - 'NoEntryPoint': 'true', - 'OptimizeReferences': 'false', - 'OutputFile': 'a_file_name', - 'PerUserRedirection': 'true', - 'PreventDllBinding': 'true', - 'Profile': 'true', - 'ProfileGuidedDatabase': 'a_file_name', - 'ProgramDatabaseFile': 'a_file_name', - 'RandomizedBaseAddress': 'false', - 'RegisterOutput': 'true', - 'SectionAlignment': '33', - 'SetChecksum': 'true', - 'ShowProgress': 'LinkVerboseREF', - 'SpecifySectionAttributes': 'a string1', - 'StackCommitSize': 'a string1', - 'StackReserveSize': 'a string1', - 'StripPrivateSymbols': 'a_file_name', - 'SubSystem': 'Console', - 'SupportNobindOfDelayLoadedDLL': 'true', - 'SupportUnloadOfDelayLoadedDLL': 'true', - 'SuppressStartupBanner': 'true', - 'SwapRunFromCD': 'true', - 'SwapRunFromNET': 'true', - 'TargetMachine': 'MachineX86', - 'TerminalServerAware': 'false', - 'TrackerLogDirectory': 'a_folder', - 'TreatLinkerWarningAsErrors': 'true', - 'TurnOffAssemblyGeneration': 'true', - 'TypeLibraryFile': 'a_file_name', - 'TypeLibraryResourceID': '33', - 'UACExecutionLevel': 'AsInvoker', - 'UACUIAccess': 'true', - 'Version': 'a string1'}, - 'ResourceCompile': { - 'AdditionalIncludeDirectories': 'folder1;folder2', - 'AdditionalOptions': 'a string1', - 'Culture': '0x236', - 'IgnoreStandardIncludePath': 'true', - 'NullTerminateStrings': 'true', - 'PreprocessorDefinitions': 'string1;string2', - 'ResourceOutputFileName': 'a string1', - 'ShowProgress': 'true', - 'SuppressStartupBanner': 'true', - 'TrackerLogDirectory': 'a_folder', - 'UndefinePreprocessorDefinitions': 'string1;string2'}, - 'Midl': { - 'AdditionalIncludeDirectories': 'folder1;folder2', - 'AdditionalOptions': 'a string1', - 'ApplicationConfigurationMode': 'true', - 'ClientStubFile': 'a_file_name', - 'CPreprocessOptions': 'a string1', - 'DefaultCharType': 'Signed', - 'DllDataFileName': 'a_file_name', - 'EnableErrorChecks': 'EnableCustom', - 'ErrorCheckAllocations': 'true', - 'ErrorCheckBounds': 'true', - 'ErrorCheckEnumRange': 'true', - 'ErrorCheckRefPointers': 'true', - 'ErrorCheckStubData': 'true', - 'GenerateClientFiles': 'Stub', - 'GenerateServerFiles': 'None', - 'GenerateStublessProxies': 'true', - 'GenerateTypeLibrary': 'true', - 'HeaderFileName': 'a_file_name', - 'IgnoreStandardIncludePath': 'true', - 'InterfaceIdentifierFileName': 'a_file_name', - 'LocaleID': '33', - 'MkTypLibCompatible': 'true', - 'OutputDirectory': 'a string1', - 'PreprocessorDefinitions': 'string1;string2', - 'ProxyFileName': 'a_file_name', - 'RedirectOutputAndErrors': 'a_file_name', - 'ServerStubFile': 'a_file_name', - 'StructMemberAlignment': 'NotSet', - 'SuppressCompilerWarnings': 'true', - 'SuppressStartupBanner': 'true', - 'TargetEnvironment': 'Itanium', - 'TrackerLogDirectory': 'a_folder', - 'TypeLibFormat': 'NewFormat', - 'TypeLibraryName': 'a_file_name', - 'UndefinePreprocessorDefinitions': 'string1;string2', - 'ValidateAllParameters': 'true', - 'WarnAsError': 'true', - 'WarningLevel': '1'}, - 'Lib': { - 'AdditionalDependencies': 'file1;file2', - 'AdditionalLibraryDirectories': 'folder1;folder2', - 'AdditionalOptions': 'a string1', - 'DisplayLibrary': 'a string1', - 'ErrorReporting': 'PromptImmediately', - 'ExportNamedFunctions': 'string1;string2', - 'ForceSymbolReferences': 'a string1', - 'IgnoreAllDefaultLibraries': 'true', - 'IgnoreSpecificDefaultLibraries': 'file1;file2', - 'LinkTimeCodeGeneration': 'true', - 'MinimumRequiredVersion': 'a string1', - 'ModuleDefinitionFile': 'a_file_name', - 'Name': 'a_file_name', - 'OutputFile': 'a_file_name', - 'RemoveObjects': 'file1;file2', - 'SubSystem': 'Console', - 'SuppressStartupBanner': 'true', - 'TargetMachine': 'MachineX86i', - 'TrackerLogDirectory': 'a_folder', - 'TreatLibWarningAsErrors': 'true', - 'UseUnicodeResponseFiles': 'true', - 'Verbose': 'true'}, - 'Manifest': { - 'AdditionalManifestFiles': 'file1;file2', - 'AdditionalOptions': 'a string1', - 'AssemblyIdentity': 'a string1', - 'ComponentFileName': 'a_file_name', - 'EnableDPIAwareness': 'fal', - 'GenerateCatalogFiles': 'truel', - 'GenerateCategoryTags': 'true', - 'InputResourceManifests': 'a string1', - 'ManifestFromManagedAssembly': 'a_file_name', - 'notgood3': 'bogus', - 'OutputManifestFile': 'a_file_name', - 'OutputResourceManifests': 'a string1', - 'RegistrarScriptFile': 'a_file_name', - 'ReplacementsFile': 'a_file_name', - 'SuppressDependencyElement': 'true', - 'SuppressStartupBanner': 'true', - 'TrackerLogDirectory': 'a_folder', - 'TypeLibraryFile': 'a_file_name', - 'UpdateFileHashes': 'true', - 'UpdateFileHashesSearchPath': 'a_file_name', - 'VerboseOutput': 'true'}, - 'ProjectReference': { - 'LinkLibraryDependencies': 'true', - 'UseLibraryDependencyInputs': 'true'}, - 'ManifestResourceCompile': { - 'ResourceOutputFileName': 'a_file_name'}, - '': { - 'EmbedManifest': 'true', - 'GenerateManifest': 'true', - 'IgnoreImportLibrary': 'true', - 'LinkIncremental': 'false'}}, - self.stderr) - self._ExpectedWarnings([ - 'Warning: unrecognized setting ClCompile/Enableprefast', - 'Warning: unrecognized setting ClCompile/ZZXYZ', - 'Warning: unrecognized setting Manifest/notgood3', - 'Warning: for Manifest/GenerateCatalogFiles, ' - "expected bool; got 'truel'", - 'Warning: for Lib/TargetMachine, unrecognized enumerated value ' - 'MachineX86i', - "Warning: for Manifest/EnableDPIAwareness, expected bool; got 'fal'"]) - - def testConvertToMSBuildSettings_empty(self): - """Tests an empty conversion.""" - msvs_settings = {} - expected_msbuild_settings = {} - actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings( - msvs_settings, - self.stderr) - self.assertEqual(expected_msbuild_settings, actual_msbuild_settings) - self._ExpectedWarnings([]) - - def testConvertToMSBuildSettings_minimal(self): - """Tests a minimal conversion.""" - msvs_settings = { - 'VCCLCompilerTool': { - 'AdditionalIncludeDirectories': 'dir1', - 'AdditionalOptions': '/foo', - 'BasicRuntimeChecks': '0', - }, - 'VCLinkerTool': { - 'LinkTimeCodeGeneration': '1', - 'ErrorReporting': '1', - 'DataExecutionPrevention': '2', - }, - } - expected_msbuild_settings = { - 'ClCompile': { - 'AdditionalIncludeDirectories': 'dir1', - 'AdditionalOptions': '/foo', - 'BasicRuntimeChecks': 'Default', - }, - 'Link': { - 'LinkTimeCodeGeneration': 'UseLinkTimeCodeGeneration', - 'LinkErrorReporting': 'PromptImmediately', - 'DataExecutionPrevention': 'true', - }, - } - actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings( - msvs_settings, - self.stderr) - self.assertEqual(expected_msbuild_settings, actual_msbuild_settings) - self._ExpectedWarnings([]) - - def testConvertToMSBuildSettings_warnings(self): - """Tests conversion that generates warnings.""" - msvs_settings = { - 'VCCLCompilerTool': { - 'AdditionalIncludeDirectories': '1', - 'AdditionalOptions': '2', - # These are incorrect values: - 'BasicRuntimeChecks': '12', - 'BrowseInformation': '21', - 'UsePrecompiledHeader': '13', - 'GeneratePreprocessedFile': '14'}, - 'VCLinkerTool': { - # These are incorrect values: - 'Driver': '10', - 'LinkTimeCodeGeneration': '31', - 'ErrorReporting': '21', - 'FixedBaseAddress': '6'}, - 'VCResourceCompilerTool': { - # Custom - 'Culture': '1003'}} - expected_msbuild_settings = { - 'ClCompile': { - 'AdditionalIncludeDirectories': '1', - 'AdditionalOptions': '2'}, - 'Link': {}, - 'ResourceCompile': { - # Custom - 'Culture': '0x03eb'}} - actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings( - msvs_settings, - self.stderr) - self.assertEqual(expected_msbuild_settings, actual_msbuild_settings) - self._ExpectedWarnings([ - 'Warning: while converting VCCLCompilerTool/BasicRuntimeChecks to ' - 'MSBuild, index value (12) not in expected range [0, 4)', - 'Warning: while converting VCCLCompilerTool/BrowseInformation to ' - 'MSBuild, index value (21) not in expected range [0, 3)', - 'Warning: while converting VCCLCompilerTool/UsePrecompiledHeader to ' - 'MSBuild, index value (13) not in expected range [0, 3)', - 'Warning: while converting VCCLCompilerTool/GeneratePreprocessedFile to ' - 'MSBuild, value must be one of [0, 1, 2]; got 14', - - 'Warning: while converting VCLinkerTool/Driver to ' - 'MSBuild, index value (10) not in expected range [0, 4)', - 'Warning: while converting VCLinkerTool/LinkTimeCodeGeneration to ' - 'MSBuild, index value (31) not in expected range [0, 5)', - 'Warning: while converting VCLinkerTool/ErrorReporting to ' - 'MSBuild, index value (21) not in expected range [0, 3)', - 'Warning: while converting VCLinkerTool/FixedBaseAddress to ' - 'MSBuild, index value (6) not in expected range [0, 3)', - ]) - - def testConvertToMSBuildSettings_full_synthetic(self): - """Tests conversion of all the MSBuild settings.""" - msvs_settings = { - 'VCCLCompilerTool': { - 'AdditionalIncludeDirectories': 'folder1;folder2;folder3', - 'AdditionalOptions': 'a_string', - 'AdditionalUsingDirectories': 'folder1;folder2;folder3', - 'AssemblerListingLocation': 'a_file_name', - 'AssemblerOutput': '0', - 'BasicRuntimeChecks': '1', - 'BrowseInformation': '2', - 'BrowseInformationFile': 'a_file_name', - 'BufferSecurityCheck': 'true', - 'CallingConvention': '0', - 'CompileAs': '1', - 'DebugInformationFormat': '4', - 'DefaultCharIsUnsigned': 'true', - 'Detect64BitPortabilityProblems': 'true', - 'DisableLanguageExtensions': 'true', - 'DisableSpecificWarnings': 'd1;d2;d3', - 'EnableEnhancedInstructionSet': '0', - 'EnableFiberSafeOptimizations': 'true', - 'EnableFunctionLevelLinking': 'true', - 'EnableIntrinsicFunctions': 'true', - 'EnablePREfast': 'true', - 'ErrorReporting': '1', - 'ExceptionHandling': '2', - 'ExpandAttributedSource': 'true', - 'FavorSizeOrSpeed': '0', - 'FloatingPointExceptions': 'true', - 'FloatingPointModel': '1', - 'ForceConformanceInForLoopScope': 'true', - 'ForcedIncludeFiles': 'file1;file2;file3', - 'ForcedUsingFiles': 'file1;file2;file3', - 'GeneratePreprocessedFile': '1', - 'GenerateXMLDocumentationFiles': 'true', - 'IgnoreStandardIncludePath': 'true', - 'InlineFunctionExpansion': '2', - 'KeepComments': 'true', - 'MinimalRebuild': 'true', - 'ObjectFile': 'a_file_name', - 'OmitDefaultLibName': 'true', - 'OmitFramePointers': 'true', - 'OpenMP': 'true', - 'Optimization': '3', - 'PrecompiledHeaderFile': 'a_file_name', - 'PrecompiledHeaderThrough': 'a_file_name', - 'PreprocessorDefinitions': 'd1;d2;d3', - 'ProgramDataBaseFileName': 'a_file_name', - 'RuntimeLibrary': '0', - 'RuntimeTypeInfo': 'true', - 'ShowIncludes': 'true', - 'SmallerTypeCheck': 'true', - 'StringPooling': 'true', - 'StructMemberAlignment': '1', - 'SuppressStartupBanner': 'true', - 'TreatWChar_tAsBuiltInType': 'true', - 'UndefineAllPreprocessorDefinitions': 'true', - 'UndefinePreprocessorDefinitions': 'd1;d2;d3', - 'UseFullPaths': 'true', - 'UsePrecompiledHeader': '1', - 'UseUnicodeResponseFiles': 'true', - 'WarnAsError': 'true', - 'WarningLevel': '2', - 'WholeProgramOptimization': 'true', - 'XMLDocumentationFileName': 'a_file_name'}, - 'VCLinkerTool': { - 'AdditionalDependencies': 'file1;file2;file3', - 'AdditionalLibraryDirectories': 'folder1;folder2;folder3', - 'AdditionalLibraryDirectories_excluded': 'folder1;folder2;folder3', - 'AdditionalManifestDependencies': 'file1;file2;file3', - 'AdditionalOptions': 'a_string', - 'AddModuleNamesToAssembly': 'file1;file2;file3', - 'AllowIsolation': 'true', - 'AssemblyDebug': '0', - 'AssemblyLinkResource': 'file1;file2;file3', - 'BaseAddress': 'a_string', - 'CLRImageType': '1', - 'CLRThreadAttribute': '2', - 'CLRUnmanagedCodeCheck': 'true', - 'DataExecutionPrevention': '0', - 'DelayLoadDLLs': 'file1;file2;file3', - 'DelaySign': 'true', - 'Driver': '1', - 'EmbedManagedResourceFile': 'file1;file2;file3', - 'EnableCOMDATFolding': '0', - 'EnableUAC': 'true', - 'EntryPointSymbol': 'a_string', - 'ErrorReporting': '0', - 'FixedBaseAddress': '1', - 'ForceSymbolReferences': 'file1;file2;file3', - 'FunctionOrder': 'a_file_name', - 'GenerateDebugInformation': 'true', - 'GenerateManifest': 'true', - 'GenerateMapFile': 'true', - 'HeapCommitSize': 'a_string', - 'HeapReserveSize': 'a_string', - 'IgnoreAllDefaultLibraries': 'true', - 'IgnoreDefaultLibraryNames': 'file1;file2;file3', - 'IgnoreEmbeddedIDL': 'true', - 'IgnoreImportLibrary': 'true', - 'ImportLibrary': 'a_file_name', - 'KeyContainer': 'a_file_name', - 'KeyFile': 'a_file_name', - 'LargeAddressAware': '2', - 'LinkIncremental': '1', - 'LinkLibraryDependencies': 'true', - 'LinkTimeCodeGeneration': '2', - 'ManifestFile': 'a_file_name', - 'MapExports': 'true', - 'MapFileName': 'a_file_name', - 'MergedIDLBaseFileName': 'a_file_name', - 'MergeSections': 'a_string', - 'MidlCommandFile': 'a_file_name', - 'ModuleDefinitionFile': 'a_file_name', - 'OptimizeForWindows98': '1', - 'OptimizeReferences': '0', - 'OutputFile': 'a_file_name', - 'PerUserRedirection': 'true', - 'Profile': 'true', - 'ProfileGuidedDatabase': 'a_file_name', - 'ProgramDatabaseFile': 'a_file_name', - 'RandomizedBaseAddress': '1', - 'RegisterOutput': 'true', - 'ResourceOnlyDLL': 'true', - 'SetChecksum': 'true', - 'ShowProgress': '0', - 'StackCommitSize': 'a_string', - 'StackReserveSize': 'a_string', - 'StripPrivateSymbols': 'a_file_name', - 'SubSystem': '2', - 'SupportUnloadOfDelayLoadedDLL': 'true', - 'SuppressStartupBanner': 'true', - 'SwapRunFromCD': 'true', - 'SwapRunFromNet': 'true', - 'TargetMachine': '3', - 'TerminalServerAware': '2', - 'TurnOffAssemblyGeneration': 'true', - 'TypeLibraryFile': 'a_file_name', - 'TypeLibraryResourceID': '33', - 'UACExecutionLevel': '1', - 'UACUIAccess': 'true', - 'UseLibraryDependencyInputs': 'false', - 'UseUnicodeResponseFiles': 'true', - 'Version': 'a_string'}, - 'VCResourceCompilerTool': { - 'AdditionalIncludeDirectories': 'folder1;folder2;folder3', - 'AdditionalOptions': 'a_string', - 'Culture': '1003', - 'IgnoreStandardIncludePath': 'true', - 'PreprocessorDefinitions': 'd1;d2;d3', - 'ResourceOutputFileName': 'a_string', - 'ShowProgress': 'true', - 'SuppressStartupBanner': 'true', - 'UndefinePreprocessorDefinitions': 'd1;d2;d3'}, - 'VCMIDLTool': { - 'AdditionalIncludeDirectories': 'folder1;folder2;folder3', - 'AdditionalOptions': 'a_string', - 'CPreprocessOptions': 'a_string', - 'DefaultCharType': '0', - 'DLLDataFileName': 'a_file_name', - 'EnableErrorChecks': '2', - 'ErrorCheckAllocations': 'true', - 'ErrorCheckBounds': 'true', - 'ErrorCheckEnumRange': 'true', - 'ErrorCheckRefPointers': 'true', - 'ErrorCheckStubData': 'true', - 'GenerateStublessProxies': 'true', - 'GenerateTypeLibrary': 'true', - 'HeaderFileName': 'a_file_name', - 'IgnoreStandardIncludePath': 'true', - 'InterfaceIdentifierFileName': 'a_file_name', - 'MkTypLibCompatible': 'true', - 'OutputDirectory': 'a_string', - 'PreprocessorDefinitions': 'd1;d2;d3', - 'ProxyFileName': 'a_file_name', - 'RedirectOutputAndErrors': 'a_file_name', - 'StructMemberAlignment': '3', - 'SuppressStartupBanner': 'true', - 'TargetEnvironment': '1', - 'TypeLibraryName': 'a_file_name', - 'UndefinePreprocessorDefinitions': 'd1;d2;d3', - 'ValidateParameters': 'true', - 'WarnAsError': 'true', - 'WarningLevel': '4'}, - 'VCLibrarianTool': { - 'AdditionalDependencies': 'file1;file2;file3', - 'AdditionalLibraryDirectories': 'folder1;folder2;folder3', - 'AdditionalLibraryDirectories_excluded': 'folder1;folder2;folder3', - 'AdditionalOptions': 'a_string', - 'ExportNamedFunctions': 'd1;d2;d3', - 'ForceSymbolReferences': 'a_string', - 'IgnoreAllDefaultLibraries': 'true', - 'IgnoreSpecificDefaultLibraries': 'file1;file2;file3', - 'LinkLibraryDependencies': 'true', - 'ModuleDefinitionFile': 'a_file_name', - 'OutputFile': 'a_file_name', - 'SuppressStartupBanner': 'true', - 'UseUnicodeResponseFiles': 'true'}, - 'VCManifestTool': { - 'AdditionalManifestFiles': 'file1;file2;file3', - 'AdditionalOptions': 'a_string', - 'AssemblyIdentity': 'a_string', - 'ComponentFileName': 'a_file_name', - 'DependencyInformationFile': 'a_file_name', - 'EmbedManifest': 'true', - 'GenerateCatalogFiles': 'true', - 'InputResourceManifests': 'a_string', - 'ManifestResourceFile': 'my_name', - 'OutputManifestFile': 'a_file_name', - 'RegistrarScriptFile': 'a_file_name', - 'ReplacementsFile': 'a_file_name', - 'SuppressStartupBanner': 'true', - 'TypeLibraryFile': 'a_file_name', - 'UpdateFileHashes': 'true', - 'UpdateFileHashesSearchPath': 'a_file_name', - 'UseFAT32Workaround': 'true', - 'UseUnicodeResponseFiles': 'true', - 'VerboseOutput': 'true'}} - expected_msbuild_settings = { - 'ClCompile': { - 'AdditionalIncludeDirectories': 'folder1;folder2;folder3', - 'AdditionalOptions': 'a_string /J', - 'AdditionalUsingDirectories': 'folder1;folder2;folder3', - 'AssemblerListingLocation': 'a_file_name', - 'AssemblerOutput': 'NoListing', - 'BasicRuntimeChecks': 'StackFrameRuntimeCheck', - 'BrowseInformation': 'true', - 'BrowseInformationFile': 'a_file_name', - 'BufferSecurityCheck': 'true', - 'CallingConvention': 'Cdecl', - 'CompileAs': 'CompileAsC', - 'DebugInformationFormat': 'EditAndContinue', - 'DisableLanguageExtensions': 'true', - 'DisableSpecificWarnings': 'd1;d2;d3', - 'EnableEnhancedInstructionSet': 'NotSet', - 'EnableFiberSafeOptimizations': 'true', - 'EnablePREfast': 'true', - 'ErrorReporting': 'Prompt', - 'ExceptionHandling': 'Async', - 'ExpandAttributedSource': 'true', - 'FavorSizeOrSpeed': 'Neither', - 'FloatingPointExceptions': 'true', - 'FloatingPointModel': 'Strict', - 'ForceConformanceInForLoopScope': 'true', - 'ForcedIncludeFiles': 'file1;file2;file3', - 'ForcedUsingFiles': 'file1;file2;file3', - 'FunctionLevelLinking': 'true', - 'GenerateXMLDocumentationFiles': 'true', - 'IgnoreStandardIncludePath': 'true', - 'InlineFunctionExpansion': 'AnySuitable', - 'IntrinsicFunctions': 'true', - 'MinimalRebuild': 'true', - 'ObjectFileName': 'a_file_name', - 'OmitDefaultLibName': 'true', - 'OmitFramePointers': 'true', - 'OpenMPSupport': 'true', - 'Optimization': 'Full', - 'PrecompiledHeader': 'Create', - 'PrecompiledHeaderFile': 'a_file_name', - 'PrecompiledHeaderOutputFile': 'a_file_name', - 'PreprocessKeepComments': 'true', - 'PreprocessorDefinitions': 'd1;d2;d3', - 'PreprocessSuppressLineNumbers': 'false', - 'PreprocessToFile': 'true', - 'ProgramDataBaseFileName': 'a_file_name', - 'RuntimeLibrary': 'MultiThreaded', - 'RuntimeTypeInfo': 'true', - 'ShowIncludes': 'true', - 'SmallerTypeCheck': 'true', - 'StringPooling': 'true', - 'StructMemberAlignment': '1Byte', - 'SuppressStartupBanner': 'true', - 'TreatWarningAsError': 'true', - 'TreatWChar_tAsBuiltInType': 'true', - 'UndefineAllPreprocessorDefinitions': 'true', - 'UndefinePreprocessorDefinitions': 'd1;d2;d3', - 'UseFullPaths': 'true', - 'WarningLevel': 'Level2', - 'WholeProgramOptimization': 'true', - 'XMLDocumentationFileName': 'a_file_name'}, - 'Link': { - 'AdditionalDependencies': 'file1;file2;file3', - 'AdditionalLibraryDirectories': 'folder1;folder2;folder3', - 'AdditionalManifestDependencies': 'file1;file2;file3', - 'AdditionalOptions': 'a_string', - 'AddModuleNamesToAssembly': 'file1;file2;file3', - 'AllowIsolation': 'true', - 'AssemblyDebug': '', - 'AssemblyLinkResource': 'file1;file2;file3', - 'BaseAddress': 'a_string', - 'CLRImageType': 'ForceIJWImage', - 'CLRThreadAttribute': 'STAThreadingAttribute', - 'CLRUnmanagedCodeCheck': 'true', - 'DataExecutionPrevention': '', - 'DelayLoadDLLs': 'file1;file2;file3', - 'DelaySign': 'true', - 'Driver': 'Driver', - 'EmbedManagedResourceFile': 'file1;file2;file3', - 'EnableCOMDATFolding': '', - 'EnableUAC': 'true', - 'EntryPointSymbol': 'a_string', - 'FixedBaseAddress': 'false', - 'ForceSymbolReferences': 'file1;file2;file3', - 'FunctionOrder': 'a_file_name', - 'GenerateDebugInformation': 'true', - 'GenerateMapFile': 'true', - 'HeapCommitSize': 'a_string', - 'HeapReserveSize': 'a_string', - 'IgnoreAllDefaultLibraries': 'true', - 'IgnoreEmbeddedIDL': 'true', - 'IgnoreSpecificDefaultLibraries': 'file1;file2;file3', - 'ImportLibrary': 'a_file_name', - 'KeyContainer': 'a_file_name', - 'KeyFile': 'a_file_name', - 'LargeAddressAware': 'true', - 'LinkErrorReporting': 'NoErrorReport', - 'LinkTimeCodeGeneration': 'PGInstrument', - 'ManifestFile': 'a_file_name', - 'MapExports': 'true', - 'MapFileName': 'a_file_name', - 'MergedIDLBaseFileName': 'a_file_name', - 'MergeSections': 'a_string', - 'MidlCommandFile': 'a_file_name', - 'ModuleDefinitionFile': 'a_file_name', - 'NoEntryPoint': 'true', - 'OptimizeReferences': '', - 'OutputFile': 'a_file_name', - 'PerUserRedirection': 'true', - 'Profile': 'true', - 'ProfileGuidedDatabase': 'a_file_name', - 'ProgramDatabaseFile': 'a_file_name', - 'RandomizedBaseAddress': 'false', - 'RegisterOutput': 'true', - 'SetChecksum': 'true', - 'ShowProgress': 'NotSet', - 'StackCommitSize': 'a_string', - 'StackReserveSize': 'a_string', - 'StripPrivateSymbols': 'a_file_name', - 'SubSystem': 'Windows', - 'SupportUnloadOfDelayLoadedDLL': 'true', - 'SuppressStartupBanner': 'true', - 'SwapRunFromCD': 'true', - 'SwapRunFromNET': 'true', - 'TargetMachine': 'MachineARM', - 'TerminalServerAware': 'true', - 'TurnOffAssemblyGeneration': 'true', - 'TypeLibraryFile': 'a_file_name', - 'TypeLibraryResourceID': '33', - 'UACExecutionLevel': 'HighestAvailable', - 'UACUIAccess': 'true', - 'Version': 'a_string'}, - 'ResourceCompile': { - 'AdditionalIncludeDirectories': 'folder1;folder2;folder3', - 'AdditionalOptions': 'a_string', - 'Culture': '0x03eb', - 'IgnoreStandardIncludePath': 'true', - 'PreprocessorDefinitions': 'd1;d2;d3', - 'ResourceOutputFileName': 'a_string', - 'ShowProgress': 'true', - 'SuppressStartupBanner': 'true', - 'UndefinePreprocessorDefinitions': 'd1;d2;d3'}, - 'Midl': { - 'AdditionalIncludeDirectories': 'folder1;folder2;folder3', - 'AdditionalOptions': 'a_string', - 'CPreprocessOptions': 'a_string', - 'DefaultCharType': 'Unsigned', - 'DllDataFileName': 'a_file_name', - 'EnableErrorChecks': 'All', - 'ErrorCheckAllocations': 'true', - 'ErrorCheckBounds': 'true', - 'ErrorCheckEnumRange': 'true', - 'ErrorCheckRefPointers': 'true', - 'ErrorCheckStubData': 'true', - 'GenerateStublessProxies': 'true', - 'GenerateTypeLibrary': 'true', - 'HeaderFileName': 'a_file_name', - 'IgnoreStandardIncludePath': 'true', - 'InterfaceIdentifierFileName': 'a_file_name', - 'MkTypLibCompatible': 'true', - 'OutputDirectory': 'a_string', - 'PreprocessorDefinitions': 'd1;d2;d3', - 'ProxyFileName': 'a_file_name', - 'RedirectOutputAndErrors': 'a_file_name', - 'StructMemberAlignment': '4', - 'SuppressStartupBanner': 'true', - 'TargetEnvironment': 'Win32', - 'TypeLibraryName': 'a_file_name', - 'UndefinePreprocessorDefinitions': 'd1;d2;d3', - 'ValidateAllParameters': 'true', - 'WarnAsError': 'true', - 'WarningLevel': '4'}, - 'Lib': { - 'AdditionalDependencies': 'file1;file2;file3', - 'AdditionalLibraryDirectories': 'folder1;folder2;folder3', - 'AdditionalOptions': 'a_string', - 'ExportNamedFunctions': 'd1;d2;d3', - 'ForceSymbolReferences': 'a_string', - 'IgnoreAllDefaultLibraries': 'true', - 'IgnoreSpecificDefaultLibraries': 'file1;file2;file3', - 'ModuleDefinitionFile': 'a_file_name', - 'OutputFile': 'a_file_name', - 'SuppressStartupBanner': 'true', - 'UseUnicodeResponseFiles': 'true'}, - 'Manifest': { - 'AdditionalManifestFiles': 'file1;file2;file3', - 'AdditionalOptions': 'a_string', - 'AssemblyIdentity': 'a_string', - 'ComponentFileName': 'a_file_name', - 'GenerateCatalogFiles': 'true', - 'InputResourceManifests': 'a_string', - 'OutputManifestFile': 'a_file_name', - 'RegistrarScriptFile': 'a_file_name', - 'ReplacementsFile': 'a_file_name', - 'SuppressStartupBanner': 'true', - 'TypeLibraryFile': 'a_file_name', - 'UpdateFileHashes': 'true', - 'UpdateFileHashesSearchPath': 'a_file_name', - 'VerboseOutput': 'true'}, - 'ManifestResourceCompile': { - 'ResourceOutputFileName': 'my_name'}, - 'ProjectReference': { - 'LinkLibraryDependencies': 'true', - 'UseLibraryDependencyInputs': 'false'}, - '': { - 'EmbedManifest': 'true', - 'GenerateManifest': 'true', - 'IgnoreImportLibrary': 'true', - 'LinkIncremental': 'false'}} - actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings( - msvs_settings, - self.stderr) - self.assertEqual(expected_msbuild_settings, actual_msbuild_settings) - self._ExpectedWarnings([]) - - def testConvertToMSBuildSettings_actual(self): - """Tests the conversion of an actual project. - - A VS2008 project with most of the options defined was created through the - VS2008 IDE. It was then converted to VS2010. The tool settings found in - the .vcproj and .vcxproj files were converted to the two dictionaries - msvs_settings and expected_msbuild_settings. - - Note that for many settings, the VS2010 converter adds macros like - %(AdditionalIncludeDirectories) to make sure than inherited values are - included. Since the Gyp projects we generate do not use inheritance, - we removed these macros. They were: - ClCompile: - AdditionalIncludeDirectories: ';%(AdditionalIncludeDirectories)' - AdditionalOptions: ' %(AdditionalOptions)' - AdditionalUsingDirectories: ';%(AdditionalUsingDirectories)' - DisableSpecificWarnings: ';%(DisableSpecificWarnings)', - ForcedIncludeFiles: ';%(ForcedIncludeFiles)', - ForcedUsingFiles: ';%(ForcedUsingFiles)', - PreprocessorDefinitions: ';%(PreprocessorDefinitions)', - UndefinePreprocessorDefinitions: - ';%(UndefinePreprocessorDefinitions)', - Link: - AdditionalDependencies: ';%(AdditionalDependencies)', - AdditionalLibraryDirectories: ';%(AdditionalLibraryDirectories)', - AdditionalManifestDependencies: - ';%(AdditionalManifestDependencies)', - AdditionalOptions: ' %(AdditionalOptions)', - AddModuleNamesToAssembly: ';%(AddModuleNamesToAssembly)', - AssemblyLinkResource: ';%(AssemblyLinkResource)', - DelayLoadDLLs: ';%(DelayLoadDLLs)', - EmbedManagedResourceFile: ';%(EmbedManagedResourceFile)', - ForceSymbolReferences: ';%(ForceSymbolReferences)', - IgnoreSpecificDefaultLibraries: - ';%(IgnoreSpecificDefaultLibraries)', - ResourceCompile: - AdditionalIncludeDirectories: ';%(AdditionalIncludeDirectories)', - AdditionalOptions: ' %(AdditionalOptions)', - PreprocessorDefinitions: ';%(PreprocessorDefinitions)', - Manifest: - AdditionalManifestFiles: ';%(AdditionalManifestFiles)', - AdditionalOptions: ' %(AdditionalOptions)', - InputResourceManifests: ';%(InputResourceManifests)', - """ - msvs_settings = { - 'VCCLCompilerTool': { - 'AdditionalIncludeDirectories': 'dir1', - 'AdditionalOptions': '/more', - 'AdditionalUsingDirectories': 'test', - 'AssemblerListingLocation': '$(IntDir)\\a', - 'AssemblerOutput': '1', - 'BasicRuntimeChecks': '3', - 'BrowseInformation': '1', - 'BrowseInformationFile': '$(IntDir)\\e', - 'BufferSecurityCheck': 'false', - 'CallingConvention': '1', - 'CompileAs': '1', - 'DebugInformationFormat': '4', - 'DefaultCharIsUnsigned': 'true', - 'Detect64BitPortabilityProblems': 'true', - 'DisableLanguageExtensions': 'true', - 'DisableSpecificWarnings': 'abc', - 'EnableEnhancedInstructionSet': '1', - 'EnableFiberSafeOptimizations': 'true', - 'EnableFunctionLevelLinking': 'true', - 'EnableIntrinsicFunctions': 'true', - 'EnablePREfast': 'true', - 'ErrorReporting': '2', - 'ExceptionHandling': '2', - 'ExpandAttributedSource': 'true', - 'FavorSizeOrSpeed': '2', - 'FloatingPointExceptions': 'true', - 'FloatingPointModel': '1', - 'ForceConformanceInForLoopScope': 'false', - 'ForcedIncludeFiles': 'def', - 'ForcedUsingFiles': 'ge', - 'GeneratePreprocessedFile': '2', - 'GenerateXMLDocumentationFiles': 'true', - 'IgnoreStandardIncludePath': 'true', - 'InlineFunctionExpansion': '1', - 'KeepComments': 'true', - 'MinimalRebuild': 'true', - 'ObjectFile': '$(IntDir)\\b', - 'OmitDefaultLibName': 'true', - 'OmitFramePointers': 'true', - 'OpenMP': 'true', - 'Optimization': '3', - 'PrecompiledHeaderFile': '$(IntDir)\\$(TargetName).pche', - 'PrecompiledHeaderThrough': 'StdAfx.hd', - 'PreprocessorDefinitions': 'WIN32;_DEBUG;_CONSOLE', - 'ProgramDataBaseFileName': '$(IntDir)\\vc90b.pdb', - 'RuntimeLibrary': '3', - 'RuntimeTypeInfo': 'false', - 'ShowIncludes': 'true', - 'SmallerTypeCheck': 'true', - 'StringPooling': 'true', - 'StructMemberAlignment': '3', - 'SuppressStartupBanner': 'false', - 'TreatWChar_tAsBuiltInType': 'false', - 'UndefineAllPreprocessorDefinitions': 'true', - 'UndefinePreprocessorDefinitions': 'wer', - 'UseFullPaths': 'true', - 'UsePrecompiledHeader': '0', - 'UseUnicodeResponseFiles': 'false', - 'WarnAsError': 'true', - 'WarningLevel': '3', - 'WholeProgramOptimization': 'true', - 'XMLDocumentationFileName': '$(IntDir)\\c'}, - 'VCLinkerTool': { - 'AdditionalDependencies': 'zx', - 'AdditionalLibraryDirectories': 'asd', - 'AdditionalManifestDependencies': 's2', - 'AdditionalOptions': '/mor2', - 'AddModuleNamesToAssembly': 'd1', - 'AllowIsolation': 'false', - 'AssemblyDebug': '1', - 'AssemblyLinkResource': 'd5', - 'BaseAddress': '23423', - 'CLRImageType': '3', - 'CLRThreadAttribute': '1', - 'CLRUnmanagedCodeCheck': 'true', - 'DataExecutionPrevention': '0', - 'DelayLoadDLLs': 'd4', - 'DelaySign': 'true', - 'Driver': '2', - 'EmbedManagedResourceFile': 'd2', - 'EnableCOMDATFolding': '1', - 'EnableUAC': 'false', - 'EntryPointSymbol': 'f5', - 'ErrorReporting': '2', - 'FixedBaseAddress': '1', - 'ForceSymbolReferences': 'd3', - 'FunctionOrder': 'fssdfsd', - 'GenerateDebugInformation': 'true', - 'GenerateManifest': 'false', - 'GenerateMapFile': 'true', - 'HeapCommitSize': '13', - 'HeapReserveSize': '12', - 'IgnoreAllDefaultLibraries': 'true', - 'IgnoreDefaultLibraryNames': 'flob;flok', - 'IgnoreEmbeddedIDL': 'true', - 'IgnoreImportLibrary': 'true', - 'ImportLibrary': 'f4', - 'KeyContainer': 'f7', - 'KeyFile': 'f6', - 'LargeAddressAware': '2', - 'LinkIncremental': '0', - 'LinkLibraryDependencies': 'false', - 'LinkTimeCodeGeneration': '1', - 'ManifestFile': - '$(IntDir)\\$(TargetFileName).2intermediate.manifest', - 'MapExports': 'true', - 'MapFileName': 'd5', - 'MergedIDLBaseFileName': 'f2', - 'MergeSections': 'f5', - 'MidlCommandFile': 'f1', - 'ModuleDefinitionFile': 'sdsd', - 'OptimizeForWindows98': '2', - 'OptimizeReferences': '2', - 'OutputFile': '$(OutDir)\\$(ProjectName)2.exe', - 'PerUserRedirection': 'true', - 'Profile': 'true', - 'ProfileGuidedDatabase': '$(TargetDir)$(TargetName).pgdd', - 'ProgramDatabaseFile': 'Flob.pdb', - 'RandomizedBaseAddress': '1', - 'RegisterOutput': 'true', - 'ResourceOnlyDLL': 'true', - 'SetChecksum': 'false', - 'ShowProgress': '1', - 'StackCommitSize': '15', - 'StackReserveSize': '14', - 'StripPrivateSymbols': 'd3', - 'SubSystem': '1', - 'SupportUnloadOfDelayLoadedDLL': 'true', - 'SuppressStartupBanner': 'false', - 'SwapRunFromCD': 'true', - 'SwapRunFromNet': 'true', - 'TargetMachine': '1', - 'TerminalServerAware': '1', - 'TurnOffAssemblyGeneration': 'true', - 'TypeLibraryFile': 'f3', - 'TypeLibraryResourceID': '12', - 'UACExecutionLevel': '2', - 'UACUIAccess': 'true', - 'UseLibraryDependencyInputs': 'true', - 'UseUnicodeResponseFiles': 'false', - 'Version': '333'}, - 'VCResourceCompilerTool': { - 'AdditionalIncludeDirectories': 'f3', - 'AdditionalOptions': '/more3', - 'Culture': '3084', - 'IgnoreStandardIncludePath': 'true', - 'PreprocessorDefinitions': '_UNICODE;UNICODE2', - 'ResourceOutputFileName': '$(IntDir)/$(InputName)3.res', - 'ShowProgress': 'true'}, - 'VCManifestTool': { - 'AdditionalManifestFiles': 'sfsdfsd', - 'AdditionalOptions': 'afdsdafsd', - 'AssemblyIdentity': 'sddfdsadfsa', - 'ComponentFileName': 'fsdfds', - 'DependencyInformationFile': '$(IntDir)\\mt.depdfd', - 'EmbedManifest': 'false', - 'GenerateCatalogFiles': 'true', - 'InputResourceManifests': 'asfsfdafs', - 'ManifestResourceFile': - '$(IntDir)\\$(TargetFileName).embed.manifest.resfdsf', - 'OutputManifestFile': '$(TargetPath).manifestdfs', - 'RegistrarScriptFile': 'sdfsfd', - 'ReplacementsFile': 'sdffsd', - 'SuppressStartupBanner': 'false', - 'TypeLibraryFile': 'sfsd', - 'UpdateFileHashes': 'true', - 'UpdateFileHashesSearchPath': 'sfsd', - 'UseFAT32Workaround': 'true', - 'UseUnicodeResponseFiles': 'false', - 'VerboseOutput': 'true'}} - expected_msbuild_settings = { - 'ClCompile': { - 'AdditionalIncludeDirectories': 'dir1', - 'AdditionalOptions': '/more /J', - 'AdditionalUsingDirectories': 'test', - 'AssemblerListingLocation': '$(IntDir)a', - 'AssemblerOutput': 'AssemblyCode', - 'BasicRuntimeChecks': 'EnableFastChecks', - 'BrowseInformation': 'true', - 'BrowseInformationFile': '$(IntDir)e', - 'BufferSecurityCheck': 'false', - 'CallingConvention': 'FastCall', - 'CompileAs': 'CompileAsC', - 'DebugInformationFormat': 'EditAndContinue', - 'DisableLanguageExtensions': 'true', - 'DisableSpecificWarnings': 'abc', - 'EnableEnhancedInstructionSet': 'StreamingSIMDExtensions', - 'EnableFiberSafeOptimizations': 'true', - 'EnablePREfast': 'true', - 'ErrorReporting': 'Queue', - 'ExceptionHandling': 'Async', - 'ExpandAttributedSource': 'true', - 'FavorSizeOrSpeed': 'Size', - 'FloatingPointExceptions': 'true', - 'FloatingPointModel': 'Strict', - 'ForceConformanceInForLoopScope': 'false', - 'ForcedIncludeFiles': 'def', - 'ForcedUsingFiles': 'ge', - 'FunctionLevelLinking': 'true', - 'GenerateXMLDocumentationFiles': 'true', - 'IgnoreStandardIncludePath': 'true', - 'InlineFunctionExpansion': 'OnlyExplicitInline', - 'IntrinsicFunctions': 'true', - 'MinimalRebuild': 'true', - 'ObjectFileName': '$(IntDir)b', - 'OmitDefaultLibName': 'true', - 'OmitFramePointers': 'true', - 'OpenMPSupport': 'true', - 'Optimization': 'Full', - 'PrecompiledHeader': 'NotUsing', # Actual conversion gives '' - 'PrecompiledHeaderFile': 'StdAfx.hd', - 'PrecompiledHeaderOutputFile': '$(IntDir)$(TargetName).pche', - 'PreprocessKeepComments': 'true', - 'PreprocessorDefinitions': 'WIN32;_DEBUG;_CONSOLE', - 'PreprocessSuppressLineNumbers': 'true', - 'PreprocessToFile': 'true', - 'ProgramDataBaseFileName': '$(IntDir)vc90b.pdb', - 'RuntimeLibrary': 'MultiThreadedDebugDLL', - 'RuntimeTypeInfo': 'false', - 'ShowIncludes': 'true', - 'SmallerTypeCheck': 'true', - 'StringPooling': 'true', - 'StructMemberAlignment': '4Bytes', - 'SuppressStartupBanner': 'false', - 'TreatWarningAsError': 'true', - 'TreatWChar_tAsBuiltInType': 'false', - 'UndefineAllPreprocessorDefinitions': 'true', - 'UndefinePreprocessorDefinitions': 'wer', - 'UseFullPaths': 'true', - 'WarningLevel': 'Level3', - 'WholeProgramOptimization': 'true', - 'XMLDocumentationFileName': '$(IntDir)c'}, - 'Link': { - 'AdditionalDependencies': 'zx', - 'AdditionalLibraryDirectories': 'asd', - 'AdditionalManifestDependencies': 's2', - 'AdditionalOptions': '/mor2', - 'AddModuleNamesToAssembly': 'd1', - 'AllowIsolation': 'false', - 'AssemblyDebug': 'true', - 'AssemblyLinkResource': 'd5', - 'BaseAddress': '23423', - 'CLRImageType': 'ForceSafeILImage', - 'CLRThreadAttribute': 'MTAThreadingAttribute', - 'CLRUnmanagedCodeCheck': 'true', - 'DataExecutionPrevention': '', - 'DelayLoadDLLs': 'd4', - 'DelaySign': 'true', - 'Driver': 'UpOnly', - 'EmbedManagedResourceFile': 'd2', - 'EnableCOMDATFolding': 'false', - 'EnableUAC': 'false', - 'EntryPointSymbol': 'f5', - 'FixedBaseAddress': 'false', - 'ForceSymbolReferences': 'd3', - 'FunctionOrder': 'fssdfsd', - 'GenerateDebugInformation': 'true', - 'GenerateMapFile': 'true', - 'HeapCommitSize': '13', - 'HeapReserveSize': '12', - 'IgnoreAllDefaultLibraries': 'true', - 'IgnoreEmbeddedIDL': 'true', - 'IgnoreSpecificDefaultLibraries': 'flob;flok', - 'ImportLibrary': 'f4', - 'KeyContainer': 'f7', - 'KeyFile': 'f6', - 'LargeAddressAware': 'true', - 'LinkErrorReporting': 'QueueForNextLogin', - 'LinkTimeCodeGeneration': 'UseLinkTimeCodeGeneration', - 'ManifestFile': '$(IntDir)$(TargetFileName).2intermediate.manifest', - 'MapExports': 'true', - 'MapFileName': 'd5', - 'MergedIDLBaseFileName': 'f2', - 'MergeSections': 'f5', - 'MidlCommandFile': 'f1', - 'ModuleDefinitionFile': 'sdsd', - 'NoEntryPoint': 'true', - 'OptimizeReferences': 'true', - 'OutputFile': '$(OutDir)$(ProjectName)2.exe', - 'PerUserRedirection': 'true', - 'Profile': 'true', - 'ProfileGuidedDatabase': '$(TargetDir)$(TargetName).pgdd', - 'ProgramDatabaseFile': 'Flob.pdb', - 'RandomizedBaseAddress': 'false', - 'RegisterOutput': 'true', - 'SetChecksum': 'false', - 'ShowProgress': 'LinkVerbose', - 'StackCommitSize': '15', - 'StackReserveSize': '14', - 'StripPrivateSymbols': 'd3', - 'SubSystem': 'Console', - 'SupportUnloadOfDelayLoadedDLL': 'true', - 'SuppressStartupBanner': 'false', - 'SwapRunFromCD': 'true', - 'SwapRunFromNET': 'true', - 'TargetMachine': 'MachineX86', - 'TerminalServerAware': 'false', - 'TurnOffAssemblyGeneration': 'true', - 'TypeLibraryFile': 'f3', - 'TypeLibraryResourceID': '12', - 'UACExecutionLevel': 'RequireAdministrator', - 'UACUIAccess': 'true', - 'Version': '333'}, - 'ResourceCompile': { - 'AdditionalIncludeDirectories': 'f3', - 'AdditionalOptions': '/more3', - 'Culture': '0x0c0c', - 'IgnoreStandardIncludePath': 'true', - 'PreprocessorDefinitions': '_UNICODE;UNICODE2', - 'ResourceOutputFileName': '$(IntDir)%(Filename)3.res', - 'ShowProgress': 'true'}, - 'Manifest': { - 'AdditionalManifestFiles': 'sfsdfsd', - 'AdditionalOptions': 'afdsdafsd', - 'AssemblyIdentity': 'sddfdsadfsa', - 'ComponentFileName': 'fsdfds', - 'GenerateCatalogFiles': 'true', - 'InputResourceManifests': 'asfsfdafs', - 'OutputManifestFile': '$(TargetPath).manifestdfs', - 'RegistrarScriptFile': 'sdfsfd', - 'ReplacementsFile': 'sdffsd', - 'SuppressStartupBanner': 'false', - 'TypeLibraryFile': 'sfsd', - 'UpdateFileHashes': 'true', - 'UpdateFileHashesSearchPath': 'sfsd', - 'VerboseOutput': 'true'}, - 'ProjectReference': { - 'LinkLibraryDependencies': 'false', - 'UseLibraryDependencyInputs': 'true'}, - '': { - 'EmbedManifest': 'false', - 'GenerateManifest': 'false', - 'IgnoreImportLibrary': 'true', - 'LinkIncremental': '' - }, - 'ManifestResourceCompile': { - 'ResourceOutputFileName': - '$(IntDir)$(TargetFileName).embed.manifest.resfdsf'} - } - actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings( - msvs_settings, - self.stderr) - self.assertEqual(expected_msbuild_settings, actual_msbuild_settings) - self._ExpectedWarnings([]) - - -if __name__ == '__main__': - unittest.main() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py deleted file mode 100644 index 74e529a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Visual Studio project reader/writer.""" - -import gyp.common -import gyp.easy_xml as easy_xml - - -class Writer(object): - """Visual Studio XML tool file writer.""" - - def __init__(self, tool_file_path, name): - """Initializes the tool file. - - Args: - tool_file_path: Path to the tool file. - name: Name of the tool file. - """ - self.tool_file_path = tool_file_path - self.name = name - self.rules_section = ['Rules'] - - def AddCustomBuildRule(self, name, cmd, description, - additional_dependencies, - outputs, extensions): - """Adds a rule to the tool file. - - Args: - name: Name of the rule. - description: Description of the rule. - cmd: Command line of the rule. - additional_dependencies: other files which may trigger the rule. - outputs: outputs of the rule. - extensions: extensions handled by the rule. - """ - rule = ['CustomBuildRule', - {'Name': name, - 'ExecutionDescription': description, - 'CommandLine': cmd, - 'Outputs': ';'.join(outputs), - 'FileExtensions': ';'.join(extensions), - 'AdditionalDependencies': - ';'.join(additional_dependencies) - }] - self.rules_section.append(rule) - - def WriteIfChanged(self): - """Writes the tool file.""" - content = ['VisualStudioToolFile', - {'Version': '8.00', - 'Name': self.name - }, - self.rules_section - ] - easy_xml.WriteXmlIfChanged(content, self.tool_file_path, - encoding="Windows-1252") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py deleted file mode 100644 index 6c07e9a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Visual Studio user preferences file writer.""" - -import os -import re -import socket # for gethostname - -import gyp.common -import gyp.easy_xml as easy_xml - - -#------------------------------------------------------------------------------ - -def _FindCommandInPath(command): - """If there are no slashes in the command given, this function - searches the PATH env to find the given command, and converts it - to an absolute path. We have to do this because MSVS is looking - for an actual file to launch a debugger on, not just a command - line. Note that this happens at GYP time, so anything needing to - be built needs to have a full path.""" - if '/' in command or '\\' in command: - # If the command already has path elements (either relative or - # absolute), then assume it is constructed properly. - return command - else: - # Search through the path list and find an existing file that - # we can access. - paths = os.environ.get('PATH','').split(os.pathsep) - for path in paths: - item = os.path.join(path, command) - if os.path.isfile(item) and os.access(item, os.X_OK): - return item - return command - -def _QuoteWin32CommandLineArgs(args): - new_args = [] - for arg in args: - # Replace all double-quotes with double-double-quotes to escape - # them for cmd shell, and then quote the whole thing if there - # are any. - if arg.find('"') != -1: - arg = '""'.join(arg.split('"')) - arg = '"%s"' % arg - - # Otherwise, if there are any spaces, quote the whole arg. - elif re.search(r'[ \t\n]', arg): - arg = '"%s"' % arg - new_args.append(arg) - return new_args - -class Writer(object): - """Visual Studio XML user user file writer.""" - - def __init__(self, user_file_path, version, name): - """Initializes the user file. - - Args: - user_file_path: Path to the user file. - version: Version info. - name: Name of the user file. - """ - self.user_file_path = user_file_path - self.version = version - self.name = name - self.configurations = {} - - def AddConfig(self, name): - """Adds a configuration to the project. - - Args: - name: Configuration name. - """ - self.configurations[name] = ['Configuration', {'Name': name}] - - def AddDebugSettings(self, config_name, command, environment = {}, - working_directory=""): - """Adds a DebugSettings node to the user file for a particular config. - - Args: - command: command line to run. First element in the list is the - executable. All elements of the command will be quoted if - necessary. - working_directory: other files which may trigger the rule. (optional) - """ - command = _QuoteWin32CommandLineArgs(command) - - abs_command = _FindCommandInPath(command[0]) - - if environment and isinstance(environment, dict): - env_list = ['%s="%s"' % (key, val) - for (key,val) in environment.iteritems()] - environment = ' '.join(env_list) - else: - environment = '' - - n_cmd = ['DebugSettings', - {'Command': abs_command, - 'WorkingDirectory': working_directory, - 'CommandArguments': " ".join(command[1:]), - 'RemoteMachine': socket.gethostname(), - 'Environment': environment, - 'EnvironmentMerge': 'true', - # Currently these are all "dummy" values that we're just setting - # in the default manner that MSVS does it. We could use some of - # these to add additional capabilities, I suppose, but they might - # not have parity with other platforms then. - 'Attach': 'false', - 'DebuggerType': '3', # 'auto' debugger - 'Remote': '1', - 'RemoteCommand': '', - 'HttpUrl': '', - 'PDBPath': '', - 'SQLDebugging': '', - 'DebuggerFlavor': '0', - 'MPIRunCommand': '', - 'MPIRunArguments': '', - 'MPIRunWorkingDirectory': '', - 'ApplicationCommand': '', - 'ApplicationArguments': '', - 'ShimCommand': '', - 'MPIAcceptMode': '', - 'MPIAcceptFilter': '' - }] - - # Find the config, and add it if it doesn't exist. - if config_name not in self.configurations: - self.AddConfig(config_name) - - # Add the DebugSettings onto the appropriate config. - self.configurations[config_name].append(n_cmd) - - def WriteIfChanged(self): - """Writes the user file.""" - configs = ['Configurations'] - for config, spec in sorted(self.configurations.iteritems()): - configs.append(spec) - - content = ['VisualStudioUserFile', - {'Version': self.version.ProjectVersion(), - 'Name': self.name - }, - configs] - easy_xml.WriteXmlIfChanged(content, self.user_file_path, - encoding="Windows-1252") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py deleted file mode 100644 index 0b32e911..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +++ /dev/null @@ -1,270 +0,0 @@ -# Copyright (c) 2013 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Utility functions shared amongst the Windows generators.""" - -import copy -import os - - -# A dictionary mapping supported target types to extensions. -TARGET_TYPE_EXT = { - 'executable': 'exe', - 'loadable_module': 'dll', - 'shared_library': 'dll', - 'static_library': 'lib', -} - - -def _GetLargePdbShimCcPath(): - """Returns the path of the large_pdb_shim.cc file.""" - this_dir = os.path.abspath(os.path.dirname(__file__)) - src_dir = os.path.abspath(os.path.join(this_dir, '..', '..')) - win_data_dir = os.path.join(src_dir, 'data', 'win') - large_pdb_shim_cc = os.path.join(win_data_dir, 'large-pdb-shim.cc') - return large_pdb_shim_cc - - -def _DeepCopySomeKeys(in_dict, keys): - """Performs a partial deep-copy on |in_dict|, only copying the keys in |keys|. - - Arguments: - in_dict: The dictionary to copy. - keys: The keys to be copied. If a key is in this list and doesn't exist in - |in_dict| this is not an error. - Returns: - The partially deep-copied dictionary. - """ - d = {} - for key in keys: - if key not in in_dict: - continue - d[key] = copy.deepcopy(in_dict[key]) - return d - - -def _SuffixName(name, suffix): - """Add a suffix to the end of a target. - - Arguments: - name: name of the target (foo#target) - suffix: the suffix to be added - Returns: - Target name with suffix added (foo_suffix#target) - """ - parts = name.rsplit('#', 1) - parts[0] = '%s_%s' % (parts[0], suffix) - return '#'.join(parts) - - -def _ShardName(name, number): - """Add a shard number to the end of a target. - - Arguments: - name: name of the target (foo#target) - number: shard number - Returns: - Target name with shard added (foo_1#target) - """ - return _SuffixName(name, str(number)) - - -def ShardTargets(target_list, target_dicts): - """Shard some targets apart to work around the linkers limits. - - Arguments: - target_list: List of target pairs: 'base/base.gyp:base'. - target_dicts: Dict of target properties keyed on target pair. - Returns: - Tuple of the new sharded versions of the inputs. - """ - # Gather the targets to shard, and how many pieces. - targets_to_shard = {} - for t in target_dicts: - shards = int(target_dicts[t].get('msvs_shard', 0)) - if shards: - targets_to_shard[t] = shards - # Shard target_list. - new_target_list = [] - for t in target_list: - if t in targets_to_shard: - for i in range(targets_to_shard[t]): - new_target_list.append(_ShardName(t, i)) - else: - new_target_list.append(t) - # Shard target_dict. - new_target_dicts = {} - for t in target_dicts: - if t in targets_to_shard: - for i in range(targets_to_shard[t]): - name = _ShardName(t, i) - new_target_dicts[name] = copy.copy(target_dicts[t]) - new_target_dicts[name]['target_name'] = _ShardName( - new_target_dicts[name]['target_name'], i) - sources = new_target_dicts[name].get('sources', []) - new_sources = [] - for pos in range(i, len(sources), targets_to_shard[t]): - new_sources.append(sources[pos]) - new_target_dicts[name]['sources'] = new_sources - else: - new_target_dicts[t] = target_dicts[t] - # Shard dependencies. - for t in new_target_dicts: - for deptype in ('dependencies', 'dependencies_original'): - dependencies = copy.copy(new_target_dicts[t].get(deptype, [])) - new_dependencies = [] - for d in dependencies: - if d in targets_to_shard: - for i in range(targets_to_shard[d]): - new_dependencies.append(_ShardName(d, i)) - else: - new_dependencies.append(d) - new_target_dicts[t][deptype] = new_dependencies - - return (new_target_list, new_target_dicts) - - -def _GetPdbPath(target_dict, config_name, vars): - """Returns the path to the PDB file that will be generated by a given - configuration. - - The lookup proceeds as follows: - - Look for an explicit path in the VCLinkerTool configuration block. - - Look for an 'msvs_large_pdb_path' variable. - - Use '<(PRODUCT_DIR)/<(product_name).(exe|dll).pdb' if 'product_name' is - specified. - - Use '<(PRODUCT_DIR)/<(target_name).(exe|dll).pdb'. - - Arguments: - target_dict: The target dictionary to be searched. - config_name: The name of the configuration of interest. - vars: A dictionary of common GYP variables with generator-specific values. - Returns: - The path of the corresponding PDB file. - """ - config = target_dict['configurations'][config_name] - msvs = config.setdefault('msvs_settings', {}) - - linker = msvs.get('VCLinkerTool', {}) - - pdb_path = linker.get('ProgramDatabaseFile') - if pdb_path: - return pdb_path - - variables = target_dict.get('variables', {}) - pdb_path = variables.get('msvs_large_pdb_path', None) - if pdb_path: - return pdb_path - - - pdb_base = target_dict.get('product_name', target_dict['target_name']) - pdb_base = '%s.%s.pdb' % (pdb_base, TARGET_TYPE_EXT[target_dict['type']]) - pdb_path = vars['PRODUCT_DIR'] + '/' + pdb_base - - return pdb_path - - -def InsertLargePdbShims(target_list, target_dicts, vars): - """Insert a shim target that forces the linker to use 4KB pagesize PDBs. - - This is a workaround for targets with PDBs greater than 1GB in size, the - limit for the 1KB pagesize PDBs created by the linker by default. - - Arguments: - target_list: List of target pairs: 'base/base.gyp:base'. - target_dicts: Dict of target properties keyed on target pair. - vars: A dictionary of common GYP variables with generator-specific values. - Returns: - Tuple of the shimmed version of the inputs. - """ - # Determine which targets need shimming. - targets_to_shim = [] - for t in target_dicts: - target_dict = target_dicts[t] - - # We only want to shim targets that have msvs_large_pdb enabled. - if not int(target_dict.get('msvs_large_pdb', 0)): - continue - # This is intended for executable, shared_library and loadable_module - # targets where every configuration is set up to produce a PDB output. - # If any of these conditions is not true then the shim logic will fail - # below. - targets_to_shim.append(t) - - large_pdb_shim_cc = _GetLargePdbShimCcPath() - - for t in targets_to_shim: - target_dict = target_dicts[t] - target_name = target_dict.get('target_name') - - base_dict = _DeepCopySomeKeys(target_dict, - ['configurations', 'default_configuration', 'toolset']) - - # This is the dict for copying the source file (part of the GYP tree) - # to the intermediate directory of the project. This is necessary because - # we can't always build a relative path to the shim source file (on Windows - # GYP and the project may be on different drives), and Ninja hates absolute - # paths (it ends up generating the .obj and .obj.d alongside the source - # file, polluting GYPs tree). - copy_suffix = 'large_pdb_copy' - copy_target_name = target_name + '_' + copy_suffix - full_copy_target_name = _SuffixName(t, copy_suffix) - shim_cc_basename = os.path.basename(large_pdb_shim_cc) - shim_cc_dir = vars['SHARED_INTERMEDIATE_DIR'] + '/' + copy_target_name - shim_cc_path = shim_cc_dir + '/' + shim_cc_basename - copy_dict = copy.deepcopy(base_dict) - copy_dict['target_name'] = copy_target_name - copy_dict['type'] = 'none' - copy_dict['sources'] = [ large_pdb_shim_cc ] - copy_dict['copies'] = [{ - 'destination': shim_cc_dir, - 'files': [ large_pdb_shim_cc ] - }] - - # This is the dict for the PDB generating shim target. It depends on the - # copy target. - shim_suffix = 'large_pdb_shim' - shim_target_name = target_name + '_' + shim_suffix - full_shim_target_name = _SuffixName(t, shim_suffix) - shim_dict = copy.deepcopy(base_dict) - shim_dict['target_name'] = shim_target_name - shim_dict['type'] = 'static_library' - shim_dict['sources'] = [ shim_cc_path ] - shim_dict['dependencies'] = [ full_copy_target_name ] - - # Set up the shim to output its PDB to the same location as the final linker - # target. - for config_name, config in shim_dict.get('configurations').iteritems(): - pdb_path = _GetPdbPath(target_dict, config_name, vars) - - # A few keys that we don't want to propagate. - for key in ['msvs_precompiled_header', 'msvs_precompiled_source', 'test']: - config.pop(key, None) - - msvs = config.setdefault('msvs_settings', {}) - - # Update the compiler directives in the shim target. - compiler = msvs.setdefault('VCCLCompilerTool', {}) - compiler['DebugInformationFormat'] = '3' - compiler['ProgramDataBaseFileName'] = pdb_path - - # Set the explicit PDB path in the appropriate configuration of the - # original target. - config = target_dict['configurations'][config_name] - msvs = config.setdefault('msvs_settings', {}) - linker = msvs.setdefault('VCLinkerTool', {}) - linker['GenerateDebugInformation'] = 'true' - linker['ProgramDatabaseFile'] = pdb_path - - # Add the new targets. They must go to the beginning of the list so that - # the dependency generation works as expected in ninja. - target_list.insert(0, full_copy_target_name) - target_list.insert(0, full_shim_target_name) - target_dicts[full_copy_target_name] = copy_dict - target_dicts[full_shim_target_name] = shim_dict - - # Update the original target to depend on the shim target. - target_dict.setdefault('dependencies', []).append(full_shim_target_name) - - return (target_list, target_dicts) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py deleted file mode 100644 index d9bfa684..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +++ /dev/null @@ -1,443 +0,0 @@ -# Copyright (c) 2013 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Handle version information related to Visual Stuio.""" - -import errno -import os -import re -import subprocess -import sys -import gyp -import glob - - -class VisualStudioVersion(object): - """Information regarding a version of Visual Studio.""" - - def __init__(self, short_name, description, - solution_version, project_version, flat_sln, uses_vcxproj, - path, sdk_based, default_toolset=None): - self.short_name = short_name - self.description = description - self.solution_version = solution_version - self.project_version = project_version - self.flat_sln = flat_sln - self.uses_vcxproj = uses_vcxproj - self.path = path - self.sdk_based = sdk_based - self.default_toolset = default_toolset - - def ShortName(self): - return self.short_name - - def Description(self): - """Get the full description of the version.""" - return self.description - - def SolutionVersion(self): - """Get the version number of the sln files.""" - return self.solution_version - - def ProjectVersion(self): - """Get the version number of the vcproj or vcxproj files.""" - return self.project_version - - def FlatSolution(self): - return self.flat_sln - - def UsesVcxproj(self): - """Returns true if this version uses a vcxproj file.""" - return self.uses_vcxproj - - def ProjectExtension(self): - """Returns the file extension for the project.""" - return self.uses_vcxproj and '.vcxproj' or '.vcproj' - - def Path(self): - """Returns the path to Visual Studio installation.""" - return self.path - - def ToolPath(self, tool): - """Returns the path to a given compiler tool. """ - return os.path.normpath(os.path.join(self.path, "VC/bin", tool)) - - def DefaultToolset(self): - """Returns the msbuild toolset version that will be used in the absence - of a user override.""" - return self.default_toolset - - def SetupScript(self, target_arch): - """Returns a command (with arguments) to be used to set up the - environment.""" - # Check if we are running in the SDK command line environment and use - # the setup script from the SDK if so. |target_arch| should be either - # 'x86' or 'x64'. - assert target_arch in ('x86', 'x64') - sdk_dir = os.environ.get('WindowsSDKDir') - if self.sdk_based and sdk_dir: - return [os.path.normpath(os.path.join(sdk_dir, 'Bin/SetEnv.Cmd')), - '/' + target_arch] - else: - # We don't use VC/vcvarsall.bat for x86 because vcvarsall calls - # vcvars32, which it can only find if VS??COMNTOOLS is set, which it - # isn't always. - if target_arch == 'x86': - if self.short_name >= '2013' and self.short_name[-1] != 'e' and ( - os.environ.get('PROCESSOR_ARCHITECTURE') == 'AMD64' or - os.environ.get('PROCESSOR_ARCHITEW6432') == 'AMD64'): - # VS2013 and later, non-Express have a x64-x86 cross that we want - # to prefer. - return [os.path.normpath( - os.path.join(self.path, 'VC/vcvarsall.bat')), 'amd64_x86'] - # Otherwise, the standard x86 compiler. - return [os.path.normpath( - os.path.join(self.path, 'Common7/Tools/vsvars32.bat'))] - else: - assert target_arch == 'x64' - arg = 'x86_amd64' - # Use the 64-on-64 compiler if we're not using an express - # edition and we're running on a 64bit OS. - if self.short_name[-1] != 'e' and ( - os.environ.get('PROCESSOR_ARCHITECTURE') == 'AMD64' or - os.environ.get('PROCESSOR_ARCHITEW6432') == 'AMD64'): - arg = 'amd64' - return [os.path.normpath( - os.path.join(self.path, 'VC/vcvarsall.bat')), arg] - - -def _RegistryQueryBase(sysdir, key, value): - """Use reg.exe to read a particular key. - - While ideally we might use the win32 module, we would like gyp to be - python neutral, so for instance cygwin python lacks this module. - - Arguments: - sysdir: The system subdirectory to attempt to launch reg.exe from. - key: The registry key to read from. - value: The particular value to read. - Return: - stdout from reg.exe, or None for failure. - """ - # Skip if not on Windows or Python Win32 setup issue - if sys.platform not in ('win32', 'cygwin'): - return None - # Setup params to pass to and attempt to launch reg.exe - cmd = [os.path.join(os.environ.get('WINDIR', ''), sysdir, 'reg.exe'), - 'query', key] - if value: - cmd.extend(['/v', value]) - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - # Obtain the stdout from reg.exe, reading to the end so p.returncode is valid - # Note that the error text may be in [1] in some cases - text = p.communicate()[0] - # Check return code from reg.exe; officially 0==success and 1==error - if p.returncode: - return None - return text - - -def _RegistryQuery(key, value=None): - r"""Use reg.exe to read a particular key through _RegistryQueryBase. - - First tries to launch from %WinDir%\Sysnative to avoid WoW64 redirection. If - that fails, it falls back to System32. Sysnative is available on Vista and - up and available on Windows Server 2003 and XP through KB patch 942589. Note - that Sysnative will always fail if using 64-bit python due to it being a - virtual directory and System32 will work correctly in the first place. - - KB 942589 - http://support.microsoft.com/kb/942589/en-us. - - Arguments: - key: The registry key. - value: The particular registry value to read (optional). - Return: - stdout from reg.exe, or None for failure. - """ - text = None - try: - text = _RegistryQueryBase('Sysnative', key, value) - except OSError, e: - if e.errno == errno.ENOENT: - text = _RegistryQueryBase('System32', key, value) - else: - raise - return text - - -def _RegistryGetValueUsingWinReg(key, value): - """Use the _winreg module to obtain the value of a registry key. - - Args: - key: The registry key. - value: The particular registry value to read. - Return: - contents of the registry key's value, or None on failure. Throws - ImportError if _winreg is unavailable. - """ - import _winreg - try: - root, subkey = key.split('\\', 1) - assert root == 'HKLM' # Only need HKLM for now. - with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, subkey) as hkey: - return _winreg.QueryValueEx(hkey, value)[0] - except WindowsError: - return None - - -def _RegistryGetValue(key, value): - """Use _winreg or reg.exe to obtain the value of a registry key. - - Using _winreg is preferable because it solves an issue on some corporate - environments where access to reg.exe is locked down. However, we still need - to fallback to reg.exe for the case where the _winreg module is not available - (for example in cygwin python). - - Args: - key: The registry key. - value: The particular registry value to read. - Return: - contents of the registry key's value, or None on failure. - """ - try: - return _RegistryGetValueUsingWinReg(key, value) - except ImportError: - pass - - # Fallback to reg.exe if we fail to import _winreg. - text = _RegistryQuery(key, value) - if not text: - return None - # Extract value. - match = re.search(r'REG_\w+\s+([^\r]+)\r\n', text) - if not match: - return None - return match.group(1) - - -def _CreateVersion(name, path, sdk_based=False): - """Sets up MSVS project generation. - - Setup is based off the GYP_MSVS_VERSION environment variable or whatever is - autodetected if GYP_MSVS_VERSION is not explicitly specified. If a version is - passed in that doesn't match a value in versions python will throw a error. - """ - if path: - path = os.path.normpath(path) - versions = { - '2015': VisualStudioVersion('2015', - 'Visual Studio 2015', - solution_version='12.00', - project_version='14.0', - flat_sln=False, - uses_vcxproj=True, - path=path, - sdk_based=sdk_based, - default_toolset='v140'), - '2013': VisualStudioVersion('2013', - 'Visual Studio 2013', - solution_version='13.00', - project_version='12.0', - flat_sln=False, - uses_vcxproj=True, - path=path, - sdk_based=sdk_based, - default_toolset='v120'), - '2013e': VisualStudioVersion('2013e', - 'Visual Studio 2013', - solution_version='13.00', - project_version='12.0', - flat_sln=True, - uses_vcxproj=True, - path=path, - sdk_based=sdk_based, - default_toolset='v120'), - '2012': VisualStudioVersion('2012', - 'Visual Studio 2012', - solution_version='12.00', - project_version='4.0', - flat_sln=False, - uses_vcxproj=True, - path=path, - sdk_based=sdk_based, - default_toolset='v110'), - '2012e': VisualStudioVersion('2012e', - 'Visual Studio 2012', - solution_version='12.00', - project_version='4.0', - flat_sln=True, - uses_vcxproj=True, - path=path, - sdk_based=sdk_based, - default_toolset='v110'), - '2010': VisualStudioVersion('2010', - 'Visual Studio 2010', - solution_version='11.00', - project_version='4.0', - flat_sln=False, - uses_vcxproj=True, - path=path, - sdk_based=sdk_based), - '2010e': VisualStudioVersion('2010e', - 'Visual C++ Express 2010', - solution_version='11.00', - project_version='4.0', - flat_sln=True, - uses_vcxproj=True, - path=path, - sdk_based=sdk_based), - '2008': VisualStudioVersion('2008', - 'Visual Studio 2008', - solution_version='10.00', - project_version='9.00', - flat_sln=False, - uses_vcxproj=False, - path=path, - sdk_based=sdk_based), - '2008e': VisualStudioVersion('2008e', - 'Visual Studio 2008', - solution_version='10.00', - project_version='9.00', - flat_sln=True, - uses_vcxproj=False, - path=path, - sdk_based=sdk_based), - '2005': VisualStudioVersion('2005', - 'Visual Studio 2005', - solution_version='9.00', - project_version='8.00', - flat_sln=False, - uses_vcxproj=False, - path=path, - sdk_based=sdk_based), - '2005e': VisualStudioVersion('2005e', - 'Visual Studio 2005', - solution_version='9.00', - project_version='8.00', - flat_sln=True, - uses_vcxproj=False, - path=path, - sdk_based=sdk_based), - } - return versions[str(name)] - - -def _ConvertToCygpath(path): - """Convert to cygwin path if we are using cygwin.""" - if sys.platform == 'cygwin': - p = subprocess.Popen(['cygpath', path], stdout=subprocess.PIPE) - path = p.communicate()[0].strip() - return path - - -def _DetectVisualStudioVersions(versions_to_check, force_express): - """Collect the list of installed visual studio versions. - - Returns: - A list of visual studio versions installed in descending order of - usage preference. - Base this on the registry and a quick check if devenv.exe exists. - Only versions 8-10 are considered. - Possibilities are: - 2005(e) - Visual Studio 2005 (8) - 2008(e) - Visual Studio 2008 (9) - 2010(e) - Visual Studio 2010 (10) - 2012(e) - Visual Studio 2012 (11) - 2013(e) - Visual Studio 2013 (12) - 2015 - Visual Studio 2015 (14) - Where (e) is e for express editions of MSVS and blank otherwise. - """ - version_to_year = { - '8.0': '2005', - '9.0': '2008', - '10.0': '2010', - '11.0': '2012', - '12.0': '2013', - '14.0': '2015', - } - versions = [] - for version in versions_to_check: - # Old method of searching for which VS version is installed - # We don't use the 2010-encouraged-way because we also want to get the - # path to the binaries, which it doesn't offer. - keys = [r'HKLM\Software\Microsoft\VisualStudio\%s' % version, - r'HKLM\Software\Wow6432Node\Microsoft\VisualStudio\%s' % version, - r'HKLM\Software\Microsoft\VCExpress\%s' % version, - r'HKLM\Software\Wow6432Node\Microsoft\VCExpress\%s' % version] - for index in range(len(keys)): - path = _RegistryGetValue(keys[index], 'InstallDir') - if not path: - continue - path = _ConvertToCygpath(path) - # Check for full. - full_path = os.path.join(path, 'devenv.exe') - express_path = os.path.join(path, '*express.exe') - if not force_express and os.path.exists(full_path): - # Add this one. - versions.append(_CreateVersion(version_to_year[version], - os.path.join(path, '..', '..'))) - # Check for express. - elif glob.glob(express_path): - # Add this one. - versions.append(_CreateVersion(version_to_year[version] + 'e', - os.path.join(path, '..', '..'))) - - # The old method above does not work when only SDK is installed. - keys = [r'HKLM\Software\Microsoft\VisualStudio\SxS\VC7', - r'HKLM\Software\Wow6432Node\Microsoft\VisualStudio\SxS\VC7'] - for index in range(len(keys)): - path = _RegistryGetValue(keys[index], version) - if not path: - continue - path = _ConvertToCygpath(path) - if version != '14.0': # There is no Express edition for 2015. - versions.append(_CreateVersion(version_to_year[version] + 'e', - os.path.join(path, '..'), sdk_based=True)) - - return versions - - -def SelectVisualStudioVersion(version='auto', allow_fallback=True): - """Select which version of Visual Studio projects to generate. - - Arguments: - version: Hook to allow caller to force a particular version (vs auto). - Returns: - An object representing a visual studio project format version. - """ - # In auto mode, check environment variable for override. - if version == 'auto': - version = os.environ.get('GYP_MSVS_VERSION', 'auto') - version_map = { - 'auto': ('14.0', '12.0', '10.0', '9.0', '8.0', '11.0'), - '2005': ('8.0',), - '2005e': ('8.0',), - '2008': ('9.0',), - '2008e': ('9.0',), - '2010': ('10.0',), - '2010e': ('10.0',), - '2012': ('11.0',), - '2012e': ('11.0',), - '2013': ('12.0',), - '2013e': ('12.0',), - '2015': ('14.0',), - } - override_path = os.environ.get('GYP_MSVS_OVERRIDE_PATH') - if override_path: - msvs_version = os.environ.get('GYP_MSVS_VERSION') - if not msvs_version: - raise ValueError('GYP_MSVS_OVERRIDE_PATH requires GYP_MSVS_VERSION to be ' - 'set to a particular version (e.g. 2010e).') - return _CreateVersion(msvs_version, override_path, sdk_based=True) - version = str(version) - versions = _DetectVisualStudioVersions(version_map[version], 'e' in version) - if not versions: - if not allow_fallback: - raise ValueError('Could not locate Visual Studio installation.') - if version == 'auto': - # Default to 2005 if we couldn't find anything - return _CreateVersion('2005', None) - else: - return _CreateVersion(version, None) - return versions[0] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py deleted file mode 100755 index 668f38b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +++ /dev/null @@ -1,548 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import copy -import gyp.input -import optparse -import os.path -import re -import shlex -import sys -import traceback -from gyp.common import GypError - -# Default debug modes for GYP -debug = {} - -# List of "official" debug modes, but you can use anything you like. -DEBUG_GENERAL = 'general' -DEBUG_VARIABLES = 'variables' -DEBUG_INCLUDES = 'includes' - - -def DebugOutput(mode, message, *args): - if 'all' in gyp.debug or mode in gyp.debug: - ctx = ('unknown', 0, 'unknown') - try: - f = traceback.extract_stack(limit=2) - if f: - ctx = f[0][:3] - except: - pass - if args: - message %= args - print '%s:%s:%d:%s %s' % (mode.upper(), os.path.basename(ctx[0]), - ctx[1], ctx[2], message) - -def FindBuildFiles(): - extension = '.gyp' - files = os.listdir(os.getcwd()) - build_files = [] - for file in files: - if file.endswith(extension): - build_files.append(file) - return build_files - - -def Load(build_files, format, default_variables={}, - includes=[], depth='.', params=None, check=False, - circular_check=True, duplicate_basename_check=True): - """ - Loads one or more specified build files. - default_variables and includes will be copied before use. - Returns the generator for the specified format and the - data returned by loading the specified build files. - """ - if params is None: - params = {} - - if '-' in format: - format, params['flavor'] = format.split('-', 1) - - default_variables = copy.copy(default_variables) - - # Default variables provided by this program and its modules should be - # named WITH_CAPITAL_LETTERS to provide a distinct "best practice" namespace, - # avoiding collisions with user and automatic variables. - default_variables['GENERATOR'] = format - default_variables['GENERATOR_FLAVOR'] = params.get('flavor', '') - - # Format can be a custom python file, or by default the name of a module - # within gyp.generator. - if format.endswith('.py'): - generator_name = os.path.splitext(format)[0] - path, generator_name = os.path.split(generator_name) - - # Make sure the path to the custom generator is in sys.path - # Don't worry about removing it once we are done. Keeping the path - # to each generator that is used in sys.path is likely harmless and - # arguably a good idea. - path = os.path.abspath(path) - if path not in sys.path: - sys.path.insert(0, path) - else: - generator_name = 'gyp.generator.' + format - - # These parameters are passed in order (as opposed to by key) - # because ActivePython cannot handle key parameters to __import__. - generator = __import__(generator_name, globals(), locals(), generator_name) - for (key, val) in generator.generator_default_variables.items(): - default_variables.setdefault(key, val) - - # Give the generator the opportunity to set additional variables based on - # the params it will receive in the output phase. - if getattr(generator, 'CalculateVariables', None): - generator.CalculateVariables(default_variables, params) - - # Give the generator the opportunity to set generator_input_info based on - # the params it will receive in the output phase. - if getattr(generator, 'CalculateGeneratorInputInfo', None): - generator.CalculateGeneratorInputInfo(params) - - # Fetch the generator specific info that gets fed to input, we use getattr - # so we can default things and the generators only have to provide what - # they need. - generator_input_info = { - 'non_configuration_keys': - getattr(generator, 'generator_additional_non_configuration_keys', []), - 'path_sections': - getattr(generator, 'generator_additional_path_sections', []), - 'extra_sources_for_rules': - getattr(generator, 'generator_extra_sources_for_rules', []), - 'generator_supports_multiple_toolsets': - getattr(generator, 'generator_supports_multiple_toolsets', False), - 'generator_wants_static_library_dependencies_adjusted': - getattr(generator, - 'generator_wants_static_library_dependencies_adjusted', True), - 'generator_wants_sorted_dependencies': - getattr(generator, 'generator_wants_sorted_dependencies', False), - 'generator_filelist_paths': - getattr(generator, 'generator_filelist_paths', None), - } - - # Process the input specific to this generator. - result = gyp.input.Load(build_files, default_variables, includes[:], - depth, generator_input_info, check, circular_check, - duplicate_basename_check, - params['parallel'], params['root_targets']) - return [generator] + result - -def NameValueListToDict(name_value_list): - """ - Takes an array of strings of the form 'NAME=VALUE' and creates a dictionary - of the pairs. If a string is simply NAME, then the value in the dictionary - is set to True. If VALUE can be converted to an integer, it is. - """ - result = { } - for item in name_value_list: - tokens = item.split('=', 1) - if len(tokens) == 2: - # If we can make it an int, use that, otherwise, use the string. - try: - token_value = int(tokens[1]) - except ValueError: - token_value = tokens[1] - # Set the variable to the supplied value. - result[tokens[0]] = token_value - else: - # No value supplied, treat it as a boolean and set it. - result[tokens[0]] = True - return result - -def ShlexEnv(env_name): - flags = os.environ.get(env_name, []) - if flags: - flags = shlex.split(flags) - return flags - -def FormatOpt(opt, value): - if opt.startswith('--'): - return '%s=%s' % (opt, value) - return opt + value - -def RegenerateAppendFlag(flag, values, predicate, env_name, options): - """Regenerate a list of command line flags, for an option of action='append'. - - The |env_name|, if given, is checked in the environment and used to generate - an initial list of options, then the options that were specified on the - command line (given in |values|) are appended. This matches the handling of - environment variables and command line flags where command line flags override - the environment, while not requiring the environment to be set when the flags - are used again. - """ - flags = [] - if options.use_environment and env_name: - for flag_value in ShlexEnv(env_name): - value = FormatOpt(flag, predicate(flag_value)) - if value in flags: - flags.remove(value) - flags.append(value) - if values: - for flag_value in values: - flags.append(FormatOpt(flag, predicate(flag_value))) - return flags - -def RegenerateFlags(options): - """Given a parsed options object, and taking the environment variables into - account, returns a list of flags that should regenerate an equivalent options - object (even in the absence of the environment variables.) - - Any path options will be normalized relative to depth. - - The format flag is not included, as it is assumed the calling generator will - set that as appropriate. - """ - def FixPath(path): - path = gyp.common.FixIfRelativePath(path, options.depth) - if not path: - return os.path.curdir - return path - - def Noop(value): - return value - - # We always want to ignore the environment when regenerating, to avoid - # duplicate or changed flags in the environment at the time of regeneration. - flags = ['--ignore-environment'] - for name, metadata in options._regeneration_metadata.iteritems(): - opt = metadata['opt'] - value = getattr(options, name) - value_predicate = metadata['type'] == 'path' and FixPath or Noop - action = metadata['action'] - env_name = metadata['env_name'] - if action == 'append': - flags.extend(RegenerateAppendFlag(opt, value, value_predicate, - env_name, options)) - elif action in ('store', None): # None is a synonym for 'store'. - if value: - flags.append(FormatOpt(opt, value_predicate(value))) - elif options.use_environment and env_name and os.environ.get(env_name): - flags.append(FormatOpt(opt, value_predicate(os.environ.get(env_name)))) - elif action in ('store_true', 'store_false'): - if ((action == 'store_true' and value) or - (action == 'store_false' and not value)): - flags.append(opt) - elif options.use_environment and env_name: - print >>sys.stderr, ('Warning: environment regeneration unimplemented ' - 'for %s flag %r env_name %r' % (action, opt, - env_name)) - else: - print >>sys.stderr, ('Warning: regeneration unimplemented for action %r ' - 'flag %r' % (action, opt)) - - return flags - -class RegeneratableOptionParser(optparse.OptionParser): - def __init__(self): - self.__regeneratable_options = {} - optparse.OptionParser.__init__(self) - - def add_option(self, *args, **kw): - """Add an option to the parser. - - This accepts the same arguments as OptionParser.add_option, plus the - following: - regenerate: can be set to False to prevent this option from being included - in regeneration. - env_name: name of environment variable that additional values for this - option come from. - type: adds type='path', to tell the regenerator that the values of - this option need to be made relative to options.depth - """ - env_name = kw.pop('env_name', None) - if 'dest' in kw and kw.pop('regenerate', True): - dest = kw['dest'] - - # The path type is needed for regenerating, for optparse we can just treat - # it as a string. - type = kw.get('type') - if type == 'path': - kw['type'] = 'string' - - self.__regeneratable_options[dest] = { - 'action': kw.get('action'), - 'type': type, - 'env_name': env_name, - 'opt': args[0], - } - - optparse.OptionParser.add_option(self, *args, **kw) - - def parse_args(self, *args): - values, args = optparse.OptionParser.parse_args(self, *args) - values._regeneration_metadata = self.__regeneratable_options - return values, args - -def gyp_main(args): - my_name = os.path.basename(sys.argv[0]) - - parser = RegeneratableOptionParser() - usage = 'usage: %s [options ...] [build_file ...]' - parser.set_usage(usage.replace('%s', '%prog')) - parser.add_option('--build', dest='configs', action='append', - help='configuration for build after project generation') - parser.add_option('--check', dest='check', action='store_true', - help='check format of gyp files') - parser.add_option('--config-dir', dest='config_dir', action='store', - env_name='GYP_CONFIG_DIR', default=None, - help='The location for configuration files like ' - 'include.gypi.') - parser.add_option('-d', '--debug', dest='debug', metavar='DEBUGMODE', - action='append', default=[], help='turn on a debugging ' - 'mode for debugging GYP. Supported modes are "variables", ' - '"includes" and "general" or "all" for all of them.') - parser.add_option('-D', dest='defines', action='append', metavar='VAR=VAL', - env_name='GYP_DEFINES', - help='sets variable VAR to value VAL') - parser.add_option('--depth', dest='depth', metavar='PATH', type='path', - help='set DEPTH gyp variable to a relative path to PATH') - parser.add_option('-f', '--format', dest='formats', action='append', - env_name='GYP_GENERATORS', regenerate=False, - help='output formats to generate') - parser.add_option('-G', dest='generator_flags', action='append', default=[], - metavar='FLAG=VAL', env_name='GYP_GENERATOR_FLAGS', - help='sets generator flag FLAG to VAL') - parser.add_option('--generator-output', dest='generator_output', - action='store', default=None, metavar='DIR', type='path', - env_name='GYP_GENERATOR_OUTPUT', - help='puts generated build files under DIR') - parser.add_option('--ignore-environment', dest='use_environment', - action='store_false', default=True, regenerate=False, - help='do not read options from environment variables') - parser.add_option('-I', '--include', dest='includes', action='append', - metavar='INCLUDE', type='path', - help='files to include in all loaded .gyp files') - # --no-circular-check disables the check for circular relationships between - # .gyp files. These relationships should not exist, but they've only been - # observed to be harmful with the Xcode generator. Chromium's .gyp files - # currently have some circular relationships on non-Mac platforms, so this - # option allows the strict behavior to be used on Macs and the lenient - # behavior to be used elsewhere. - # TODO(mark): Remove this option when http://crbug.com/35878 is fixed. - parser.add_option('--no-circular-check', dest='circular_check', - action='store_false', default=True, regenerate=False, - help="don't check for circular relationships between files") - # --no-duplicate-basename-check disables the check for duplicate basenames - # in a static_library/shared_library project. Visual C++ 2008 generator - # doesn't support this configuration. Libtool on Mac also generates warnings - # when duplicate basenames are passed into Make generator on Mac. - # TODO(yukawa): Remove this option when these legacy generators are - # deprecated. - parser.add_option('--no-duplicate-basename-check', - dest='duplicate_basename_check', action='store_false', - default=True, regenerate=False, - help="don't check for duplicate basenames") - parser.add_option('--no-parallel', action='store_true', default=False, - help='Disable multiprocessing') - parser.add_option('-S', '--suffix', dest='suffix', default='', - help='suffix to add to generated files') - parser.add_option('--toplevel-dir', dest='toplevel_dir', action='store', - default=None, metavar='DIR', type='path', - help='directory to use as the root of the source tree') - parser.add_option('-R', '--root-target', dest='root_targets', - action='append', metavar='TARGET', - help='include only TARGET and its deep dependencies') - - options, build_files_arg = parser.parse_args(args) - build_files = build_files_arg - - # Set up the configuration directory (defaults to ~/.gyp) - if not options.config_dir: - home = None - home_dot_gyp = None - if options.use_environment: - home_dot_gyp = os.environ.get('GYP_CONFIG_DIR', None) - if home_dot_gyp: - home_dot_gyp = os.path.expanduser(home_dot_gyp) - - if not home_dot_gyp: - home_vars = ['HOME'] - if sys.platform in ('cygwin', 'win32'): - home_vars.append('USERPROFILE') - for home_var in home_vars: - home = os.getenv(home_var) - if home != None: - home_dot_gyp = os.path.join(home, '.gyp') - if not os.path.exists(home_dot_gyp): - home_dot_gyp = None - else: - break - else: - home_dot_gyp = os.path.expanduser(options.config_dir) - - if home_dot_gyp and not os.path.exists(home_dot_gyp): - home_dot_gyp = None - - if not options.formats: - # If no format was given on the command line, then check the env variable. - generate_formats = [] - if options.use_environment: - generate_formats = os.environ.get('GYP_GENERATORS', []) - if generate_formats: - generate_formats = re.split(r'[\s,]', generate_formats) - if generate_formats: - options.formats = generate_formats - else: - # Nothing in the variable, default based on platform. - if sys.platform == 'darwin': - options.formats = ['xcode'] - elif sys.platform in ('win32', 'cygwin'): - options.formats = ['msvs'] - else: - options.formats = ['make'] - - if not options.generator_output and options.use_environment: - g_o = os.environ.get('GYP_GENERATOR_OUTPUT') - if g_o: - options.generator_output = g_o - - options.parallel = not options.no_parallel - - for mode in options.debug: - gyp.debug[mode] = 1 - - # Do an extra check to avoid work when we're not debugging. - if DEBUG_GENERAL in gyp.debug: - DebugOutput(DEBUG_GENERAL, 'running with these options:') - for option, value in sorted(options.__dict__.items()): - if option[0] == '_': - continue - if isinstance(value, basestring): - DebugOutput(DEBUG_GENERAL, " %s: '%s'", option, value) - else: - DebugOutput(DEBUG_GENERAL, " %s: %s", option, value) - - if not build_files: - build_files = FindBuildFiles() - if not build_files: - raise GypError((usage + '\n\n%s: error: no build_file') % - (my_name, my_name)) - - # TODO(mark): Chromium-specific hack! - # For Chromium, the gyp "depth" variable should always be a relative path - # to Chromium's top-level "src" directory. If no depth variable was set - # on the command line, try to find a "src" directory by looking at the - # absolute path to each build file's directory. The first "src" component - # found will be treated as though it were the path used for --depth. - if not options.depth: - for build_file in build_files: - build_file_dir = os.path.abspath(os.path.dirname(build_file)) - build_file_dir_components = build_file_dir.split(os.path.sep) - components_len = len(build_file_dir_components) - for index in xrange(components_len - 1, -1, -1): - if build_file_dir_components[index] == 'src': - options.depth = os.path.sep.join(build_file_dir_components) - break - del build_file_dir_components[index] - - # If the inner loop found something, break without advancing to another - # build file. - if options.depth: - break - - if not options.depth: - raise GypError('Could not automatically locate src directory. This is' - 'a temporary Chromium feature that will be removed. Use' - '--depth as a workaround.') - - # If toplevel-dir is not set, we assume that depth is the root of our source - # tree. - if not options.toplevel_dir: - options.toplevel_dir = options.depth - - # -D on the command line sets variable defaults - D isn't just for define, - # it's for default. Perhaps there should be a way to force (-F?) a - # variable's value so that it can't be overridden by anything else. - cmdline_default_variables = {} - defines = [] - if options.use_environment: - defines += ShlexEnv('GYP_DEFINES') - if options.defines: - defines += options.defines - cmdline_default_variables = NameValueListToDict(defines) - if DEBUG_GENERAL in gyp.debug: - DebugOutput(DEBUG_GENERAL, - "cmdline_default_variables: %s", cmdline_default_variables) - - # Set up includes. - includes = [] - - # If ~/.gyp/include.gypi exists, it'll be forcibly included into every - # .gyp file that's loaded, before anything else is included. - if home_dot_gyp != None: - default_include = os.path.join(home_dot_gyp, 'include.gypi') - if os.path.exists(default_include): - print 'Using overrides found in ' + default_include - includes.append(default_include) - - # Command-line --include files come after the default include. - if options.includes: - includes.extend(options.includes) - - # Generator flags should be prefixed with the target generator since they - # are global across all generator runs. - gen_flags = [] - if options.use_environment: - gen_flags += ShlexEnv('GYP_GENERATOR_FLAGS') - if options.generator_flags: - gen_flags += options.generator_flags - generator_flags = NameValueListToDict(gen_flags) - if DEBUG_GENERAL in gyp.debug.keys(): - DebugOutput(DEBUG_GENERAL, "generator_flags: %s", generator_flags) - - # Generate all requested formats (use a set in case we got one format request - # twice) - for format in set(options.formats): - params = {'options': options, - 'build_files': build_files, - 'generator_flags': generator_flags, - 'cwd': os.getcwd(), - 'build_files_arg': build_files_arg, - 'gyp_binary': sys.argv[0], - 'home_dot_gyp': home_dot_gyp, - 'parallel': options.parallel, - 'root_targets': options.root_targets, - 'target_arch': cmdline_default_variables.get('target_arch', '')} - - # Start with the default variables from the command line. - [generator, flat_list, targets, data] = Load( - build_files, format, cmdline_default_variables, includes, options.depth, - params, options.check, options.circular_check, - options.duplicate_basename_check) - - # TODO(mark): Pass |data| for now because the generator needs a list of - # build files that came in. In the future, maybe it should just accept - # a list, and not the whole data dict. - # NOTE: flat_list is the flattened dependency graph specifying the order - # that targets may be built. Build systems that operate serially or that - # need to have dependencies defined before dependents reference them should - # generate targets in the order specified in flat_list. - generator.GenerateOutput(flat_list, targets, data, params) - - if options.configs: - valid_configs = targets[flat_list[0]]['configurations'].keys() - for conf in options.configs: - if conf not in valid_configs: - raise GypError('Invalid config specified via --build: %s' % conf) - generator.PerformBuild(data, options.configs, params) - - # Done - return 0 - - -def main(args): - try: - return gyp_main(args) - except GypError, e: - sys.stderr.write("gyp: %s\n" % e) - return 1 - -# NOTE: setuptools generated console_scripts calls function with no arguments -def script_main(): - return main(sys.argv[1:]) - -if __name__ == '__main__': - sys.exit(script_main()) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py deleted file mode 100644 index 256e3f3a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py +++ /dev/null @@ -1,608 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -from __future__ import with_statement - -import collections -import errno -import filecmp -import os.path -import re -import tempfile -import sys - - -# A minimal memoizing decorator. It'll blow up if the args aren't immutable, -# among other "problems". -class memoize(object): - def __init__(self, func): - self.func = func - self.cache = {} - def __call__(self, *args): - try: - return self.cache[args] - except KeyError: - result = self.func(*args) - self.cache[args] = result - return result - - -class GypError(Exception): - """Error class representing an error, which is to be presented - to the user. The main entry point will catch and display this. - """ - pass - - -def ExceptionAppend(e, msg): - """Append a message to the given exception's message.""" - if not e.args: - e.args = (msg,) - elif len(e.args) == 1: - e.args = (str(e.args[0]) + ' ' + msg,) - else: - e.args = (str(e.args[0]) + ' ' + msg,) + e.args[1:] - - -def FindQualifiedTargets(target, qualified_list): - """ - Given a list of qualified targets, return the qualified targets for the - specified |target|. - """ - return [t for t in qualified_list if ParseQualifiedTarget(t)[1] == target] - - -def ParseQualifiedTarget(target): - # Splits a qualified target into a build file, target name and toolset. - - # NOTE: rsplit is used to disambiguate the Windows drive letter separator. - target_split = target.rsplit(':', 1) - if len(target_split) == 2: - [build_file, target] = target_split - else: - build_file = None - - target_split = target.rsplit('#', 1) - if len(target_split) == 2: - [target, toolset] = target_split - else: - toolset = None - - return [build_file, target, toolset] - - -def ResolveTarget(build_file, target, toolset): - # This function resolves a target into a canonical form: - # - a fully defined build file, either absolute or relative to the current - # directory - # - a target name - # - a toolset - # - # build_file is the file relative to which 'target' is defined. - # target is the qualified target. - # toolset is the default toolset for that target. - [parsed_build_file, target, parsed_toolset] = ParseQualifiedTarget(target) - - if parsed_build_file: - if build_file: - # If a relative path, parsed_build_file is relative to the directory - # containing build_file. If build_file is not in the current directory, - # parsed_build_file is not a usable path as-is. Resolve it by - # interpreting it as relative to build_file. If parsed_build_file is - # absolute, it is usable as a path regardless of the current directory, - # and os.path.join will return it as-is. - build_file = os.path.normpath(os.path.join(os.path.dirname(build_file), - parsed_build_file)) - # Further (to handle cases like ../cwd), make it relative to cwd) - if not os.path.isabs(build_file): - build_file = RelativePath(build_file, '.') - else: - build_file = parsed_build_file - - if parsed_toolset: - toolset = parsed_toolset - - return [build_file, target, toolset] - - -def BuildFile(fully_qualified_target): - # Extracts the build file from the fully qualified target. - return ParseQualifiedTarget(fully_qualified_target)[0] - - -def GetEnvironFallback(var_list, default): - """Look up a key in the environment, with fallback to secondary keys - and finally falling back to a default value.""" - for var in var_list: - if var in os.environ: - return os.environ[var] - return default - - -def QualifiedTarget(build_file, target, toolset): - # "Qualified" means the file that a target was defined in and the target - # name, separated by a colon, suffixed by a # and the toolset name: - # /path/to/file.gyp:target_name#toolset - fully_qualified = build_file + ':' + target - if toolset: - fully_qualified = fully_qualified + '#' + toolset - return fully_qualified - - -@memoize -def RelativePath(path, relative_to, follow_path_symlink=True): - # Assuming both |path| and |relative_to| are relative to the current - # directory, returns a relative path that identifies path relative to - # relative_to. - # If |follow_symlink_path| is true (default) and |path| is a symlink, then - # this method returns a path to the real file represented by |path|. If it is - # false, this method returns a path to the symlink. If |path| is not a - # symlink, this option has no effect. - - # Convert to normalized (and therefore absolute paths). - if follow_path_symlink: - path = os.path.realpath(path) - else: - path = os.path.abspath(path) - relative_to = os.path.realpath(relative_to) - - # On Windows, we can't create a relative path to a different drive, so just - # use the absolute path. - if sys.platform == 'win32': - if (os.path.splitdrive(path)[0].lower() != - os.path.splitdrive(relative_to)[0].lower()): - return path - - # Split the paths into components. - path_split = path.split(os.path.sep) - relative_to_split = relative_to.split(os.path.sep) - - # Determine how much of the prefix the two paths share. - prefix_len = len(os.path.commonprefix([path_split, relative_to_split])) - - # Put enough ".." components to back up out of relative_to to the common - # prefix, and then append the part of path_split after the common prefix. - relative_split = [os.path.pardir] * (len(relative_to_split) - prefix_len) + \ - path_split[prefix_len:] - - if len(relative_split) == 0: - # The paths were the same. - return '' - - # Turn it back into a string and we're done. - return os.path.join(*relative_split) - - -@memoize -def InvertRelativePath(path, toplevel_dir=None): - """Given a path like foo/bar that is relative to toplevel_dir, return - the inverse relative path back to the toplevel_dir. - - E.g. os.path.normpath(os.path.join(path, InvertRelativePath(path))) - should always produce the empty string, unless the path contains symlinks. - """ - if not path: - return path - toplevel_dir = '.' if toplevel_dir is None else toplevel_dir - return RelativePath(toplevel_dir, os.path.join(toplevel_dir, path)) - - -def FixIfRelativePath(path, relative_to): - # Like RelativePath but returns |path| unchanged if it is absolute. - if os.path.isabs(path): - return path - return RelativePath(path, relative_to) - - -def UnrelativePath(path, relative_to): - # Assuming that |relative_to| is relative to the current directory, and |path| - # is a path relative to the dirname of |relative_to|, returns a path that - # identifies |path| relative to the current directory. - rel_dir = os.path.dirname(relative_to) - return os.path.normpath(os.path.join(rel_dir, path)) - - -# re objects used by EncodePOSIXShellArgument. See IEEE 1003.1 XCU.2.2 at -# http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_02 -# and the documentation for various shells. - -# _quote is a pattern that should match any argument that needs to be quoted -# with double-quotes by EncodePOSIXShellArgument. It matches the following -# characters appearing anywhere in an argument: -# \t, \n, space parameter separators -# # comments -# $ expansions (quoted to always expand within one argument) -# % called out by IEEE 1003.1 XCU.2.2 -# & job control -# ' quoting -# (, ) subshell execution -# *, ?, [ pathname expansion -# ; command delimiter -# <, >, | redirection -# = assignment -# {, } brace expansion (bash) -# ~ tilde expansion -# It also matches the empty string, because "" (or '') is the only way to -# represent an empty string literal argument to a POSIX shell. -# -# This does not match the characters in _escape, because those need to be -# backslash-escaped regardless of whether they appear in a double-quoted -# string. -_quote = re.compile('[\t\n #$%&\'()*;<=>?[{|}~]|^$') - -# _escape is a pattern that should match any character that needs to be -# escaped with a backslash, whether or not the argument matched the _quote -# pattern. _escape is used with re.sub to backslash anything in _escape's -# first match group, hence the (parentheses) in the regular expression. -# -# _escape matches the following characters appearing anywhere in an argument: -# " to prevent POSIX shells from interpreting this character for quoting -# \ to prevent POSIX shells from interpreting this character for escaping -# ` to prevent POSIX shells from interpreting this character for command -# substitution -# Missing from this list is $, because the desired behavior of -# EncodePOSIXShellArgument is to permit parameter (variable) expansion. -# -# Also missing from this list is !, which bash will interpret as the history -# expansion character when history is enabled. bash does not enable history -# by default in non-interactive shells, so this is not thought to be a problem. -# ! was omitted from this list because bash interprets "\!" as a literal string -# including the backslash character (avoiding history expansion but retaining -# the backslash), which would not be correct for argument encoding. Handling -# this case properly would also be problematic because bash allows the history -# character to be changed with the histchars shell variable. Fortunately, -# as history is not enabled in non-interactive shells and -# EncodePOSIXShellArgument is only expected to encode for non-interactive -# shells, there is no room for error here by ignoring !. -_escape = re.compile(r'(["\\`])') - -def EncodePOSIXShellArgument(argument): - """Encodes |argument| suitably for consumption by POSIX shells. - - argument may be quoted and escaped as necessary to ensure that POSIX shells - treat the returned value as a literal representing the argument passed to - this function. Parameter (variable) expansions beginning with $ are allowed - to remain intact without escaping the $, to allow the argument to contain - references to variables to be expanded by the shell. - """ - - if not isinstance(argument, str): - argument = str(argument) - - if _quote.search(argument): - quote = '"' - else: - quote = '' - - encoded = quote + re.sub(_escape, r'\\\1', argument) + quote - - return encoded - - -def EncodePOSIXShellList(list): - """Encodes |list| suitably for consumption by POSIX shells. - - Returns EncodePOSIXShellArgument for each item in list, and joins them - together using the space character as an argument separator. - """ - - encoded_arguments = [] - for argument in list: - encoded_arguments.append(EncodePOSIXShellArgument(argument)) - return ' '.join(encoded_arguments) - - -def DeepDependencyTargets(target_dicts, roots): - """Returns the recursive list of target dependencies.""" - dependencies = set() - pending = set(roots) - while pending: - # Pluck out one. - r = pending.pop() - # Skip if visited already. - if r in dependencies: - continue - # Add it. - dependencies.add(r) - # Add its children. - spec = target_dicts[r] - pending.update(set(spec.get('dependencies', []))) - pending.update(set(spec.get('dependencies_original', []))) - return list(dependencies - set(roots)) - - -def BuildFileTargets(target_list, build_file): - """From a target_list, returns the subset from the specified build_file. - """ - return [p for p in target_list if BuildFile(p) == build_file] - - -def AllTargets(target_list, target_dicts, build_file): - """Returns all targets (direct and dependencies) for the specified build_file. - """ - bftargets = BuildFileTargets(target_list, build_file) - deptargets = DeepDependencyTargets(target_dicts, bftargets) - return bftargets + deptargets - - -def WriteOnDiff(filename): - """Write to a file only if the new contents differ. - - Arguments: - filename: name of the file to potentially write to. - Returns: - A file like object which will write to temporary file and only overwrite - the target if it differs (on close). - """ - - class Writer(object): - """Wrapper around file which only covers the target if it differs.""" - def __init__(self): - # Pick temporary file. - tmp_fd, self.tmp_path = tempfile.mkstemp( - suffix='.tmp', - prefix=os.path.split(filename)[1] + '.gyp.', - dir=os.path.split(filename)[0]) - try: - self.tmp_file = os.fdopen(tmp_fd, 'wb') - except Exception: - # Don't leave turds behind. - os.unlink(self.tmp_path) - raise - - def __getattr__(self, attrname): - # Delegate everything else to self.tmp_file - return getattr(self.tmp_file, attrname) - - def close(self): - try: - # Close tmp file. - self.tmp_file.close() - # Determine if different. - same = False - try: - same = filecmp.cmp(self.tmp_path, filename, False) - except OSError, e: - if e.errno != errno.ENOENT: - raise - - if same: - # The new file is identical to the old one, just get rid of the new - # one. - os.unlink(self.tmp_path) - else: - # The new file is different from the old one, or there is no old one. - # Rename the new file to the permanent name. - # - # tempfile.mkstemp uses an overly restrictive mode, resulting in a - # file that can only be read by the owner, regardless of the umask. - # There's no reason to not respect the umask here, which means that - # an extra hoop is required to fetch it and reset the new file's mode. - # - # No way to get the umask without setting a new one? Set a safe one - # and then set it back to the old value. - umask = os.umask(077) - os.umask(umask) - os.chmod(self.tmp_path, 0666 & ~umask) - if sys.platform == 'win32' and os.path.exists(filename): - # NOTE: on windows (but not cygwin) rename will not replace an - # existing file, so it must be preceded with a remove. Sadly there - # is no way to make the switch atomic. - os.remove(filename) - os.rename(self.tmp_path, filename) - except Exception: - # Don't leave turds behind. - os.unlink(self.tmp_path) - raise - - return Writer() - - -def EnsureDirExists(path): - """Make sure the directory for |path| exists.""" - try: - os.makedirs(os.path.dirname(path)) - except OSError: - pass - - -def GetFlavor(params): - """Returns |params.flavor| if it's set, the system's default flavor else.""" - flavors = { - 'cygwin': 'win', - 'win32': 'win', - 'darwin': 'mac', - } - - if 'flavor' in params: - return params['flavor'] - if sys.platform in flavors: - return flavors[sys.platform] - if sys.platform.startswith('sunos'): - return 'solaris' - if sys.platform.startswith('freebsd'): - return 'freebsd' - if sys.platform.startswith('openbsd'): - return 'openbsd' - if sys.platform.startswith('netbsd'): - return 'netbsd' - if sys.platform.startswith('aix'): - return 'aix' - - return 'linux' - - -def CopyTool(flavor, out_path): - """Finds (flock|mac|win)_tool.gyp in the gyp directory and copies it - to |out_path|.""" - # aix and solaris just need flock emulation. mac and win use more complicated - # support scripts. - prefix = { - 'aix': 'flock', - 'solaris': 'flock', - 'mac': 'mac', - 'win': 'win' - }.get(flavor, None) - if not prefix: - return - - # Slurp input file. - source_path = os.path.join( - os.path.dirname(os.path.abspath(__file__)), '%s_tool.py' % prefix) - with open(source_path) as source_file: - source = source_file.readlines() - - # Add header and write it out. - tool_path = os.path.join(out_path, 'gyp-%s-tool' % prefix) - with open(tool_path, 'w') as tool_file: - tool_file.write( - ''.join([source[0], '# Generated by gyp. Do not edit.\n'] + source[1:])) - - # Make file executable. - os.chmod(tool_path, 0755) - - -# From Alex Martelli, -# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52560 -# ASPN: Python Cookbook: Remove duplicates from a sequence -# First comment, dated 2001/10/13. -# (Also in the printed Python Cookbook.) - -def uniquer(seq, idfun=None): - if idfun is None: - idfun = lambda x: x - seen = {} - result = [] - for item in seq: - marker = idfun(item) - if marker in seen: continue - seen[marker] = 1 - result.append(item) - return result - - -# Based on http://code.activestate.com/recipes/576694/. -class OrderedSet(collections.MutableSet): - def __init__(self, iterable=None): - self.end = end = [] - end += [None, end, end] # sentinel node for doubly linked list - self.map = {} # key --> [key, prev, next] - if iterable is not None: - self |= iterable - - def __len__(self): - return len(self.map) - - def __contains__(self, key): - return key in self.map - - def add(self, key): - if key not in self.map: - end = self.end - curr = end[1] - curr[2] = end[1] = self.map[key] = [key, curr, end] - - def discard(self, key): - if key in self.map: - key, prev_item, next_item = self.map.pop(key) - prev_item[2] = next_item - next_item[1] = prev_item - - def __iter__(self): - end = self.end - curr = end[2] - while curr is not end: - yield curr[0] - curr = curr[2] - - def __reversed__(self): - end = self.end - curr = end[1] - while curr is not end: - yield curr[0] - curr = curr[1] - - # The second argument is an addition that causes a pylint warning. - def pop(self, last=True): # pylint: disable=W0221 - if not self: - raise KeyError('set is empty') - key = self.end[1][0] if last else self.end[2][0] - self.discard(key) - return key - - def __repr__(self): - if not self: - return '%s()' % (self.__class__.__name__,) - return '%s(%r)' % (self.__class__.__name__, list(self)) - - def __eq__(self, other): - if isinstance(other, OrderedSet): - return len(self) == len(other) and list(self) == list(other) - return set(self) == set(other) - - # Extensions to the recipe. - def update(self, iterable): - for i in iterable: - if i not in self: - self.add(i) - - -class CycleError(Exception): - """An exception raised when an unexpected cycle is detected.""" - def __init__(self, nodes): - self.nodes = nodes - def __str__(self): - return 'CycleError: cycle involving: ' + str(self.nodes) - - -def TopologicallySorted(graph, get_edges): - r"""Topologically sort based on a user provided edge definition. - - Args: - graph: A list of node names. - get_edges: A function mapping from node name to a hashable collection - of node names which this node has outgoing edges to. - Returns: - A list containing all of the node in graph in topological order. - It is assumed that calling get_edges once for each node and caching is - cheaper than repeatedly calling get_edges. - Raises: - CycleError in the event of a cycle. - Example: - graph = {'a': '$(b) $(c)', 'b': 'hi', 'c': '$(b)'} - def GetEdges(node): - return re.findall(r'\$\(([^))]\)', graph[node]) - print TopologicallySorted(graph.keys(), GetEdges) - ==> - ['a', 'c', b'] - """ - get_edges = memoize(get_edges) - visited = set() - visiting = set() - ordered_nodes = [] - def Visit(node): - if node in visiting: - raise CycleError(visiting) - if node in visited: - return - visited.add(node) - visiting.add(node) - for neighbor in get_edges(node): - Visit(neighbor) - visiting.remove(node) - ordered_nodes.insert(0, node) - for node in sorted(graph): - Visit(node) - return ordered_nodes - -def CrossCompileRequested(): - # TODO: figure out how to not build extra host objects in the - # non-cross-compile case when this is enabled, and enable unconditionally. - return (os.environ.get('GYP_CROSSCOMPILE') or - os.environ.get('AR_host') or - os.environ.get('CC_host') or - os.environ.get('CXX_host') or - os.environ.get('AR_target') or - os.environ.get('CC_target') or - os.environ.get('CXX_target')) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py deleted file mode 100755 index ad6f9a14..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Unit tests for the common.py file.""" - -import gyp.common -import unittest -import sys - - -class TestTopologicallySorted(unittest.TestCase): - def test_Valid(self): - """Test that sorting works on a valid graph with one possible order.""" - graph = { - 'a': ['b', 'c'], - 'b': [], - 'c': ['d'], - 'd': ['b'], - } - def GetEdge(node): - return tuple(graph[node]) - self.assertEqual( - gyp.common.TopologicallySorted(graph.keys(), GetEdge), - ['a', 'c', 'd', 'b']) - - def test_Cycle(self): - """Test that an exception is thrown on a cyclic graph.""" - graph = { - 'a': ['b'], - 'b': ['c'], - 'c': ['d'], - 'd': ['a'], - } - def GetEdge(node): - return tuple(graph[node]) - self.assertRaises( - gyp.common.CycleError, gyp.common.TopologicallySorted, - graph.keys(), GetEdge) - - -class TestGetFlavor(unittest.TestCase): - """Test that gyp.common.GetFlavor works as intended""" - original_platform = '' - - def setUp(self): - self.original_platform = sys.platform - - def tearDown(self): - sys.platform = self.original_platform - - def assertFlavor(self, expected, argument, param): - sys.platform = argument - self.assertEqual(expected, gyp.common.GetFlavor(param)) - - def test_platform_default(self): - self.assertFlavor('freebsd', 'freebsd9' , {}) - self.assertFlavor('freebsd', 'freebsd10', {}) - self.assertFlavor('openbsd', 'openbsd5' , {}) - self.assertFlavor('solaris', 'sunos5' , {}); - self.assertFlavor('solaris', 'sunos' , {}); - self.assertFlavor('linux' , 'linux2' , {}); - self.assertFlavor('linux' , 'linux3' , {}); - - def test_param(self): - self.assertFlavor('foobar', 'linux2' , {'flavor': 'foobar'}) - - -if __name__ == '__main__': - unittest.main() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py deleted file mode 100644 index 2b0bb60c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +++ /dev/null @@ -1,162 +0,0 @@ -# Copyright (c) 2011 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import re -import os - - -def XmlToString(content, encoding='utf-8', pretty=False): - """ Writes the XML content to disk, touching the file only if it has changed. - - Visual Studio files have a lot of pre-defined structures. This function makes - it easy to represent these structures as Python data structures, instead of - having to create a lot of function calls. - - Each XML element of the content is represented as a list composed of: - 1. The name of the element, a string, - 2. The attributes of the element, a dictionary (optional), and - 3+. The content of the element, if any. Strings are simple text nodes and - lists are child elements. - - Example 1: - - becomes - ['test'] - - Example 2: - - This is - it! - - - becomes - ['myelement', {'a':'value1', 'b':'value2'}, - ['childtype', 'This is'], - ['childtype', 'it!'], - ] - - Args: - content: The structured content to be converted. - encoding: The encoding to report on the first XML line. - pretty: True if we want pretty printing with indents and new lines. - - Returns: - The XML content as a string. - """ - # We create a huge list of all the elements of the file. - xml_parts = ['' % encoding] - if pretty: - xml_parts.append('\n') - _ConstructContentList(xml_parts, content, pretty) - - # Convert it to a string - return ''.join(xml_parts) - - -def _ConstructContentList(xml_parts, specification, pretty, level=0): - """ Appends the XML parts corresponding to the specification. - - Args: - xml_parts: A list of XML parts to be appended to. - specification: The specification of the element. See EasyXml docs. - pretty: True if we want pretty printing with indents and new lines. - level: Indentation level. - """ - # The first item in a specification is the name of the element. - if pretty: - indentation = ' ' * level - new_line = '\n' - else: - indentation = '' - new_line = '' - name = specification[0] - if not isinstance(name, str): - raise Exception('The first item of an EasyXml specification should be ' - 'a string. Specification was ' + str(specification)) - xml_parts.append(indentation + '<' + name) - - # Optionally in second position is a dictionary of the attributes. - rest = specification[1:] - if rest and isinstance(rest[0], dict): - for at, val in sorted(rest[0].iteritems()): - xml_parts.append(' %s="%s"' % (at, _XmlEscape(val, attr=True))) - rest = rest[1:] - if rest: - xml_parts.append('>') - all_strings = reduce(lambda x, y: x and isinstance(y, str), rest, True) - multi_line = not all_strings - if multi_line and new_line: - xml_parts.append(new_line) - for child_spec in rest: - # If it's a string, append a text node. - # Otherwise recurse over that child definition - if isinstance(child_spec, str): - xml_parts.append(_XmlEscape(child_spec)) - else: - _ConstructContentList(xml_parts, child_spec, pretty, level + 1) - if multi_line and indentation: - xml_parts.append(indentation) - xml_parts.append('%s' % (name, new_line)) - else: - xml_parts.append('/>%s' % new_line) - - -def WriteXmlIfChanged(content, path, encoding='utf-8', pretty=False, - win32=False): - """ Writes the XML content to disk, touching the file only if it has changed. - - Args: - content: The structured content to be written. - path: Location of the file. - encoding: The encoding to report on the first line of the XML file. - pretty: True if we want pretty printing with indents and new lines. - """ - xml_string = XmlToString(content, encoding, pretty) - if win32 and os.linesep != '\r\n': - xml_string = xml_string.replace('\n', '\r\n') - - try: - xml_string = xml_string.encode(encoding) - except Exception: - xml_string = unicode(xml_string, 'latin-1').encode(encoding) - - # Get the old content - try: - f = open(path, 'r') - existing = f.read() - f.close() - except: - existing = None - - # It has changed, write it - if existing != xml_string: - f = open(path, 'w') - f.write(xml_string) - f.close() - - -_xml_escape_map = { - '"': '"', - "'": ''', - '<': '<', - '>': '>', - '&': '&', - '\n': ' ', - '\r': ' ', -} - - -_xml_escape_re = re.compile( - "(%s)" % "|".join(map(re.escape, _xml_escape_map.keys()))) - - -def _XmlEscape(value, attr=False): - """ Escape a string for inclusion in XML.""" - def replace(match): - m = match.string[match.start() : match.end()] - # don't replace single quotes in attrs - if attr and m == "'": - return m - return _xml_escape_map[m] - return _xml_escape_re.sub(replace, value) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py deleted file mode 100755 index df643549..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2011 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -""" Unit tests for the easy_xml.py file. """ - -import gyp.easy_xml as easy_xml -import unittest -import StringIO - - -class TestSequenceFunctions(unittest.TestCase): - - def setUp(self): - self.stderr = StringIO.StringIO() - - def test_EasyXml_simple(self): - self.assertEqual( - easy_xml.XmlToString(['test']), - '') - - self.assertEqual( - easy_xml.XmlToString(['test'], encoding='Windows-1252'), - '') - - def test_EasyXml_simple_with_attributes(self): - self.assertEqual( - easy_xml.XmlToString(['test2', {'a': 'value1', 'b': 'value2'}]), - '') - - def test_EasyXml_escaping(self): - original = '\'"\r&\nfoo' - converted = '<test>\'" & foo' - converted_apos = converted.replace("'", ''') - self.assertEqual( - easy_xml.XmlToString(['test3', {'a': original}, original]), - '%s' % - (converted, converted_apos)) - - def test_EasyXml_pretty(self): - self.assertEqual( - easy_xml.XmlToString( - ['test3', - ['GrandParent', - ['Parent1', - ['Child'] - ], - ['Parent2'] - ] - ], - pretty=True), - '\n' - '\n' - ' \n' - ' \n' - ' \n' - ' \n' - ' \n' - ' \n' - '\n') - - - def test_EasyXml_complex(self): - # We want to create: - target = ( - '' - '' - '' - '{D2250C20-3A94-4FB9-AF73-11BC5B73884B}' - 'Win32Proj' - 'automated_ui_tests' - '' - '' - '' - 'Application' - 'Unicode' - '' - '') - - xml = easy_xml.XmlToString( - ['Project', - ['PropertyGroup', {'Label': 'Globals'}, - ['ProjectGuid', '{D2250C20-3A94-4FB9-AF73-11BC5B73884B}'], - ['Keyword', 'Win32Proj'], - ['RootNamespace', 'automated_ui_tests'] - ], - ['Import', {'Project': '$(VCTargetsPath)\\Microsoft.Cpp.props'}], - ['PropertyGroup', - {'Condition': "'$(Configuration)|$(Platform)'=='Debug|Win32'", - 'Label': 'Configuration'}, - ['ConfigurationType', 'Application'], - ['CharacterSet', 'Unicode'] - ] - ]) - self.assertEqual(xml, target) - - -if __name__ == '__main__': - unittest.main() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py deleted file mode 100755 index b38d8660..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env python -# Copyright (c) 2011 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""These functions are executed via gyp-flock-tool when using the Makefile -generator. Used on systems that don't have a built-in flock.""" - -import fcntl -import os -import struct -import subprocess -import sys - - -def main(args): - executor = FlockTool() - executor.Dispatch(args) - - -class FlockTool(object): - """This class emulates the 'flock' command.""" - def Dispatch(self, args): - """Dispatches a string command to a method.""" - if len(args) < 1: - raise Exception("Not enough arguments") - - method = "Exec%s" % self._CommandifyName(args[0]) - getattr(self, method)(*args[1:]) - - def _CommandifyName(self, name_string): - """Transforms a tool name like copy-info-plist to CopyInfoPlist""" - return name_string.title().replace('-', '') - - def ExecFlock(self, lockfile, *cmd_list): - """Emulates the most basic behavior of Linux's flock(1).""" - # Rely on exception handling to report errors. - # Note that the stock python on SunOS has a bug - # where fcntl.flock(fd, LOCK_EX) always fails - # with EBADF, that's why we use this F_SETLK - # hack instead. - fd = os.open(lockfile, os.O_WRONLY|os.O_NOCTTY|os.O_CREAT, 0666) - if sys.platform.startswith('aix'): - # Python on AIX is compiled with LARGEFILE support, which changes the - # struct size. - op = struct.pack('hhIllqq', fcntl.F_WRLCK, 0, 0, 0, 0, 0, 0) - else: - op = struct.pack('hhllhhl', fcntl.F_WRLCK, 0, 0, 0, 0, 0, 0) - fcntl.fcntl(fd, fcntl.F_SETLK, op) - return subprocess.call(cmd_list) - - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py deleted file mode 100644 index 921c1a6b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +++ /dev/null @@ -1,741 +0,0 @@ -# Copyright (c) 2014 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -""" -This script is intended for use as a GYP_GENERATOR. It takes as input (by way of -the generator flag config_path) the path of a json file that dictates the files -and targets to search for. The following keys are supported: -files: list of paths (relative) of the files to search for. -test_targets: unqualified target names to search for. Any target in this list -that depends upon a file in |files| is output regardless of the type of target -or chain of dependencies. -additional_compile_targets: Unqualified targets to search for in addition to -test_targets. Targets in the combined list that depend upon a file in |files| -are not necessarily output. For example, if the target is of type none then the -target is not output (but one of the descendants of the target will be). - -The following is output: -error: only supplied if there is an error. -compile_targets: minimal set of targets that directly or indirectly (for - targets of type none) depend on the files in |files| and is one of the - supplied targets or a target that one of the supplied targets depends on. - The expectation is this set of targets is passed into a build step. This list - always contains the output of test_targets as well. -test_targets: set of targets from the supplied |test_targets| that either - directly or indirectly depend upon a file in |files|. This list if useful - if additional processing needs to be done for certain targets after the - build, such as running tests. -status: outputs one of three values: none of the supplied files were found, - one of the include files changed so that it should be assumed everything - changed (in this case test_targets and compile_targets are not output) or at - least one file was found. -invalid_targets: list of supplied targets that were not found. - -Example: -Consider a graph like the following: - A D - / \ -B C -A depends upon both B and C, A is of type none and B and C are executables. -D is an executable, has no dependencies and nothing depends on it. -If |additional_compile_targets| = ["A"], |test_targets| = ["B", "C"] and -files = ["b.cc", "d.cc"] (B depends upon b.cc and D depends upon d.cc), then -the following is output: -|compile_targets| = ["B"] B must built as it depends upon the changed file b.cc -and the supplied target A depends upon it. A is not output as a build_target -as it is of type none with no rules and actions. -|test_targets| = ["B"] B directly depends upon the change file b.cc. - -Even though the file d.cc, which D depends upon, has changed D is not output -as it was not supplied by way of |additional_compile_targets| or |test_targets|. - -If the generator flag analyzer_output_path is specified, output is written -there. Otherwise output is written to stdout. - -In Gyp the "all" target is shorthand for the root targets in the files passed -to gyp. For example, if file "a.gyp" contains targets "a1" and -"a2", and file "b.gyp" contains targets "b1" and "b2" and "a2" has a dependency -on "b2" and gyp is supplied "a.gyp" then "all" consists of "a1" and "a2". -Notice that "b1" and "b2" are not in the "all" target as "b.gyp" was not -directly supplied to gyp. OTOH if both "a.gyp" and "b.gyp" are supplied to gyp -then the "all" target includes "b1" and "b2". -""" - -import gyp.common -import gyp.ninja_syntax as ninja_syntax -import json -import os -import posixpath -import sys - -debug = False - -found_dependency_string = 'Found dependency' -no_dependency_string = 'No dependencies' -# Status when it should be assumed that everything has changed. -all_changed_string = 'Found dependency (all)' - -# MatchStatus is used indicate if and how a target depends upon the supplied -# sources. -# The target's sources contain one of the supplied paths. -MATCH_STATUS_MATCHES = 1 -# The target has a dependency on another target that contains one of the -# supplied paths. -MATCH_STATUS_MATCHES_BY_DEPENDENCY = 2 -# The target's sources weren't in the supplied paths and none of the target's -# dependencies depend upon a target that matched. -MATCH_STATUS_DOESNT_MATCH = 3 -# The target doesn't contain the source, but the dependent targets have not yet -# been visited to determine a more specific status yet. -MATCH_STATUS_TBD = 4 - -generator_supports_multiple_toolsets = gyp.common.CrossCompileRequested() - -generator_wants_static_library_dependencies_adjusted = False - -generator_default_variables = { -} -for dirname in ['INTERMEDIATE_DIR', 'SHARED_INTERMEDIATE_DIR', 'PRODUCT_DIR', - 'LIB_DIR', 'SHARED_LIB_DIR']: - generator_default_variables[dirname] = '!!!' - -for unused in ['RULE_INPUT_PATH', 'RULE_INPUT_ROOT', 'RULE_INPUT_NAME', - 'RULE_INPUT_DIRNAME', 'RULE_INPUT_EXT', - 'EXECUTABLE_PREFIX', 'EXECUTABLE_SUFFIX', - 'STATIC_LIB_PREFIX', 'STATIC_LIB_SUFFIX', - 'SHARED_LIB_PREFIX', 'SHARED_LIB_SUFFIX', - 'CONFIGURATION_NAME']: - generator_default_variables[unused] = '' - - -def _ToGypPath(path): - """Converts a path to the format used by gyp.""" - if os.sep == '\\' and os.altsep == '/': - return path.replace('\\', '/') - return path - - -def _ResolveParent(path, base_path_components): - """Resolves |path|, which starts with at least one '../'. Returns an empty - string if the path shouldn't be considered. See _AddSources() for a - description of |base_path_components|.""" - depth = 0 - while path.startswith('../'): - depth += 1 - path = path[3:] - # Relative includes may go outside the source tree. For example, an action may - # have inputs in /usr/include, which are not in the source tree. - if depth > len(base_path_components): - return '' - if depth == len(base_path_components): - return path - return '/'.join(base_path_components[0:len(base_path_components) - depth]) + \ - '/' + path - - -def _AddSources(sources, base_path, base_path_components, result): - """Extracts valid sources from |sources| and adds them to |result|. Each - source file is relative to |base_path|, but may contain '..'. To make - resolving '..' easier |base_path_components| contains each of the - directories in |base_path|. Additionally each source may contain variables. - Such sources are ignored as it is assumed dependencies on them are expressed - and tracked in some other means.""" - # NOTE: gyp paths are always posix style. - for source in sources: - if not len(source) or source.startswith('!!!') or source.startswith('$'): - continue - # variable expansion may lead to //. - org_source = source - source = source[0] + source[1:].replace('//', '/') - if source.startswith('../'): - source = _ResolveParent(source, base_path_components) - if len(source): - result.append(source) - continue - result.append(base_path + source) - if debug: - print 'AddSource', org_source, result[len(result) - 1] - - -def _ExtractSourcesFromAction(action, base_path, base_path_components, - results): - if 'inputs' in action: - _AddSources(action['inputs'], base_path, base_path_components, results) - - -def _ToLocalPath(toplevel_dir, path): - """Converts |path| to a path relative to |toplevel_dir|.""" - if path == toplevel_dir: - return '' - if path.startswith(toplevel_dir + '/'): - return path[len(toplevel_dir) + len('/'):] - return path - - -def _ExtractSources(target, target_dict, toplevel_dir): - # |target| is either absolute or relative and in the format of the OS. Gyp - # source paths are always posix. Convert |target| to a posix path relative to - # |toplevel_dir_|. This is done to make it easy to build source paths. - base_path = posixpath.dirname(_ToLocalPath(toplevel_dir, _ToGypPath(target))) - base_path_components = base_path.split('/') - - # Add a trailing '/' so that _AddSources() can easily build paths. - if len(base_path): - base_path += '/' - - if debug: - print 'ExtractSources', target, base_path - - results = [] - if 'sources' in target_dict: - _AddSources(target_dict['sources'], base_path, base_path_components, - results) - # Include the inputs from any actions. Any changes to these affect the - # resulting output. - if 'actions' in target_dict: - for action in target_dict['actions']: - _ExtractSourcesFromAction(action, base_path, base_path_components, - results) - if 'rules' in target_dict: - for rule in target_dict['rules']: - _ExtractSourcesFromAction(rule, base_path, base_path_components, results) - - return results - - -class Target(object): - """Holds information about a particular target: - deps: set of Targets this Target depends upon. This is not recursive, only the - direct dependent Targets. - match_status: one of the MatchStatus values. - back_deps: set of Targets that have a dependency on this Target. - visited: used during iteration to indicate whether we've visited this target. - This is used for two iterations, once in building the set of Targets and - again in _GetBuildTargets(). - name: fully qualified name of the target. - requires_build: True if the target type is such that it needs to be built. - See _DoesTargetTypeRequireBuild for details. - added_to_compile_targets: used when determining if the target was added to the - set of targets that needs to be built. - in_roots: true if this target is a descendant of one of the root nodes. - is_executable: true if the type of target is executable. - is_static_library: true if the type of target is static_library. - is_or_has_linked_ancestor: true if the target does a link (eg executable), or - if there is a target in back_deps that does a link.""" - def __init__(self, name): - self.deps = set() - self.match_status = MATCH_STATUS_TBD - self.back_deps = set() - self.name = name - # TODO(sky): I don't like hanging this off Target. This state is specific - # to certain functions and should be isolated there. - self.visited = False - self.requires_build = False - self.added_to_compile_targets = False - self.in_roots = False - self.is_executable = False - self.is_static_library = False - self.is_or_has_linked_ancestor = False - - -class Config(object): - """Details what we're looking for - files: set of files to search for - targets: see file description for details.""" - def __init__(self): - self.files = [] - self.targets = set() - self.additional_compile_target_names = set() - self.test_target_names = set() - - def Init(self, params): - """Initializes Config. This is a separate method as it raises an exception - if there is a parse error.""" - generator_flags = params.get('generator_flags', {}) - config_path = generator_flags.get('config_path', None) - if not config_path: - return - try: - f = open(config_path, 'r') - config = json.load(f) - f.close() - except IOError: - raise Exception('Unable to open file ' + config_path) - except ValueError as e: - raise Exception('Unable to parse config file ' + config_path + str(e)) - if not isinstance(config, dict): - raise Exception('config_path must be a JSON file containing a dictionary') - self.files = config.get('files', []) - self.additional_compile_target_names = set( - config.get('additional_compile_targets', [])) - self.test_target_names = set(config.get('test_targets', [])) - - -def _WasBuildFileModified(build_file, data, files, toplevel_dir): - """Returns true if the build file |build_file| is either in |files| or - one of the files included by |build_file| is in |files|. |toplevel_dir| is - the root of the source tree.""" - if _ToLocalPath(toplevel_dir, _ToGypPath(build_file)) in files: - if debug: - print 'gyp file modified', build_file - return True - - # First element of included_files is the file itself. - if len(data[build_file]['included_files']) <= 1: - return False - - for include_file in data[build_file]['included_files'][1:]: - # |included_files| are relative to the directory of the |build_file|. - rel_include_file = \ - _ToGypPath(gyp.common.UnrelativePath(include_file, build_file)) - if _ToLocalPath(toplevel_dir, rel_include_file) in files: - if debug: - print 'included gyp file modified, gyp_file=', build_file, \ - 'included file=', rel_include_file - return True - return False - - -def _GetOrCreateTargetByName(targets, target_name): - """Creates or returns the Target at targets[target_name]. If there is no - Target for |target_name| one is created. Returns a tuple of whether a new - Target was created and the Target.""" - if target_name in targets: - return False, targets[target_name] - target = Target(target_name) - targets[target_name] = target - return True, target - - -def _DoesTargetTypeRequireBuild(target_dict): - """Returns true if the target type is such that it needs to be built.""" - # If a 'none' target has rules or actions we assume it requires a build. - return bool(target_dict['type'] != 'none' or - target_dict.get('actions') or target_dict.get('rules')) - - -def _GenerateTargets(data, target_list, target_dicts, toplevel_dir, files, - build_files): - """Returns a tuple of the following: - . A dictionary mapping from fully qualified name to Target. - . A list of the targets that have a source file in |files|. - . Targets that constitute the 'all' target. See description at top of file - for details on the 'all' target. - This sets the |match_status| of the targets that contain any of the source - files in |files| to MATCH_STATUS_MATCHES. - |toplevel_dir| is the root of the source tree.""" - # Maps from target name to Target. - name_to_target = {} - - # Targets that matched. - matching_targets = [] - - # Queue of targets to visit. - targets_to_visit = target_list[:] - - # Maps from build file to a boolean indicating whether the build file is in - # |files|. - build_file_in_files = {} - - # Root targets across all files. - roots = set() - - # Set of Targets in |build_files|. - build_file_targets = set() - - while len(targets_to_visit) > 0: - target_name = targets_to_visit.pop() - created_target, target = _GetOrCreateTargetByName(name_to_target, - target_name) - if created_target: - roots.add(target) - elif target.visited: - continue - - target.visited = True - target.requires_build = _DoesTargetTypeRequireBuild( - target_dicts[target_name]) - target_type = target_dicts[target_name]['type'] - target.is_executable = target_type == 'executable' - target.is_static_library = target_type == 'static_library' - target.is_or_has_linked_ancestor = (target_type == 'executable' or - target_type == 'shared_library') - - build_file = gyp.common.ParseQualifiedTarget(target_name)[0] - if not build_file in build_file_in_files: - build_file_in_files[build_file] = \ - _WasBuildFileModified(build_file, data, files, toplevel_dir) - - if build_file in build_files: - build_file_targets.add(target) - - # If a build file (or any of its included files) is modified we assume all - # targets in the file are modified. - if build_file_in_files[build_file]: - print 'matching target from modified build file', target_name - target.match_status = MATCH_STATUS_MATCHES - matching_targets.append(target) - else: - sources = _ExtractSources(target_name, target_dicts[target_name], - toplevel_dir) - for source in sources: - if _ToGypPath(os.path.normpath(source)) in files: - print 'target', target_name, 'matches', source - target.match_status = MATCH_STATUS_MATCHES - matching_targets.append(target) - break - - # Add dependencies to visit as well as updating back pointers for deps. - for dep in target_dicts[target_name].get('dependencies', []): - targets_to_visit.append(dep) - - created_dep_target, dep_target = _GetOrCreateTargetByName(name_to_target, - dep) - if not created_dep_target: - roots.discard(dep_target) - - target.deps.add(dep_target) - dep_target.back_deps.add(target) - - return name_to_target, matching_targets, roots & build_file_targets - - -def _GetUnqualifiedToTargetMapping(all_targets, to_find): - """Returns a tuple of the following: - . mapping (dictionary) from unqualified name to Target for all the - Targets in |to_find|. - . any target names not found. If this is empty all targets were found.""" - result = {} - if not to_find: - return {}, [] - to_find = set(to_find) - for target_name in all_targets.keys(): - extracted = gyp.common.ParseQualifiedTarget(target_name) - if len(extracted) > 1 and extracted[1] in to_find: - to_find.remove(extracted[1]) - result[extracted[1]] = all_targets[target_name] - if not to_find: - return result, [] - return result, [x for x in to_find] - - -def _DoesTargetDependOnMatchingTargets(target): - """Returns true if |target| or any of its dependencies is one of the - targets containing the files supplied as input to analyzer. This updates - |matches| of the Targets as it recurses. - target: the Target to look for.""" - if target.match_status == MATCH_STATUS_DOESNT_MATCH: - return False - if target.match_status == MATCH_STATUS_MATCHES or \ - target.match_status == MATCH_STATUS_MATCHES_BY_DEPENDENCY: - return True - for dep in target.deps: - if _DoesTargetDependOnMatchingTargets(dep): - target.match_status = MATCH_STATUS_MATCHES_BY_DEPENDENCY - print '\t', target.name, 'matches by dep', dep.name - return True - target.match_status = MATCH_STATUS_DOESNT_MATCH - return False - - -def _GetTargetsDependingOnMatchingTargets(possible_targets): - """Returns the list of Targets in |possible_targets| that depend (either - directly on indirectly) on at least one of the targets containing the files - supplied as input to analyzer. - possible_targets: targets to search from.""" - found = [] - print 'Targets that matched by dependency:' - for target in possible_targets: - if _DoesTargetDependOnMatchingTargets(target): - found.append(target) - return found - - -def _AddCompileTargets(target, roots, add_if_no_ancestor, result): - """Recurses through all targets that depend on |target|, adding all targets - that need to be built (and are in |roots|) to |result|. - roots: set of root targets. - add_if_no_ancestor: If true and there are no ancestors of |target| then add - |target| to |result|. |target| must still be in |roots|. - result: targets that need to be built are added here.""" - if target.visited: - return - - target.visited = True - target.in_roots = target in roots - - for back_dep_target in target.back_deps: - _AddCompileTargets(back_dep_target, roots, False, result) - target.added_to_compile_targets |= back_dep_target.added_to_compile_targets - target.in_roots |= back_dep_target.in_roots - target.is_or_has_linked_ancestor |= ( - back_dep_target.is_or_has_linked_ancestor) - - # Always add 'executable' targets. Even though they may be built by other - # targets that depend upon them it makes detection of what is going to be - # built easier. - # And always add static_libraries that have no dependencies on them from - # linkables. This is necessary as the other dependencies on them may be - # static libraries themselves, which are not compile time dependencies. - if target.in_roots and \ - (target.is_executable or - (not target.added_to_compile_targets and - (add_if_no_ancestor or target.requires_build)) or - (target.is_static_library and add_if_no_ancestor and - not target.is_or_has_linked_ancestor)): - print '\t\tadding to compile targets', target.name, 'executable', \ - target.is_executable, 'added_to_compile_targets', \ - target.added_to_compile_targets, 'add_if_no_ancestor', \ - add_if_no_ancestor, 'requires_build', target.requires_build, \ - 'is_static_library', target.is_static_library, \ - 'is_or_has_linked_ancestor', target.is_or_has_linked_ancestor - result.add(target) - target.added_to_compile_targets = True - - -def _GetCompileTargets(matching_targets, supplied_targets): - """Returns the set of Targets that require a build. - matching_targets: targets that changed and need to be built. - supplied_targets: set of targets supplied to analyzer to search from.""" - result = set() - for target in matching_targets: - print 'finding compile targets for match', target.name - _AddCompileTargets(target, supplied_targets, True, result) - return result - - -def _WriteOutput(params, **values): - """Writes the output, either to stdout or a file is specified.""" - if 'error' in values: - print 'Error:', values['error'] - if 'status' in values: - print values['status'] - if 'targets' in values: - values['targets'].sort() - print 'Supplied targets that depend on changed files:' - for target in values['targets']: - print '\t', target - if 'invalid_targets' in values: - values['invalid_targets'].sort() - print 'The following targets were not found:' - for target in values['invalid_targets']: - print '\t', target - if 'build_targets' in values: - values['build_targets'].sort() - print 'Targets that require a build:' - for target in values['build_targets']: - print '\t', target - if 'compile_targets' in values: - values['compile_targets'].sort() - print 'Targets that need to be built:' - for target in values['compile_targets']: - print '\t', target - if 'test_targets' in values: - values['test_targets'].sort() - print 'Test targets:' - for target in values['test_targets']: - print '\t', target - - output_path = params.get('generator_flags', {}).get( - 'analyzer_output_path', None) - if not output_path: - print json.dumps(values) - return - try: - f = open(output_path, 'w') - f.write(json.dumps(values) + '\n') - f.close() - except IOError as e: - print 'Error writing to output file', output_path, str(e) - - -def _WasGypIncludeFileModified(params, files): - """Returns true if one of the files in |files| is in the set of included - files.""" - if params['options'].includes: - for include in params['options'].includes: - if _ToGypPath(os.path.normpath(include)) in files: - print 'Include file modified, assuming all changed', include - return True - return False - - -def _NamesNotIn(names, mapping): - """Returns a list of the values in |names| that are not in |mapping|.""" - return [name for name in names if name not in mapping] - - -def _LookupTargets(names, mapping): - """Returns a list of the mapping[name] for each value in |names| that is in - |mapping|.""" - return [mapping[name] for name in names if name in mapping] - - -def CalculateVariables(default_variables, params): - """Calculate additional variables for use in the build (called by gyp).""" - flavor = gyp.common.GetFlavor(params) - if flavor == 'mac': - default_variables.setdefault('OS', 'mac') - elif flavor == 'win': - default_variables.setdefault('OS', 'win') - # Copy additional generator configuration data from VS, which is shared - # by the Windows Ninja generator. - import gyp.generator.msvs as msvs_generator - generator_additional_non_configuration_keys = getattr(msvs_generator, - 'generator_additional_non_configuration_keys', []) - generator_additional_path_sections = getattr(msvs_generator, - 'generator_additional_path_sections', []) - - gyp.msvs_emulation.CalculateCommonVariables(default_variables, params) - else: - operating_system = flavor - if flavor == 'android': - operating_system = 'linux' # Keep this legacy behavior for now. - default_variables.setdefault('OS', operating_system) - - -class TargetCalculator(object): - """Calculates the matching test_targets and matching compile_targets.""" - def __init__(self, files, additional_compile_target_names, test_target_names, - data, target_list, target_dicts, toplevel_dir, build_files): - self._additional_compile_target_names = set(additional_compile_target_names) - self._test_target_names = set(test_target_names) - self._name_to_target, self._changed_targets, self._root_targets = ( - _GenerateTargets(data, target_list, target_dicts, toplevel_dir, - frozenset(files), build_files)) - self._unqualified_mapping, self.invalid_targets = ( - _GetUnqualifiedToTargetMapping(self._name_to_target, - self._supplied_target_names_no_all())) - - def _supplied_target_names(self): - return self._additional_compile_target_names | self._test_target_names - - def _supplied_target_names_no_all(self): - """Returns the supplied test targets without 'all'.""" - result = self._supplied_target_names(); - result.discard('all') - return result - - def is_build_impacted(self): - """Returns true if the supplied files impact the build at all.""" - return self._changed_targets - - def find_matching_test_target_names(self): - """Returns the set of output test targets.""" - assert self.is_build_impacted() - # Find the test targets first. 'all' is special cased to mean all the - # root targets. To deal with all the supplied |test_targets| are expanded - # to include the root targets during lookup. If any of the root targets - # match, we remove it and replace it with 'all'. - test_target_names_no_all = set(self._test_target_names) - test_target_names_no_all.discard('all') - test_targets_no_all = _LookupTargets(test_target_names_no_all, - self._unqualified_mapping) - test_target_names_contains_all = 'all' in self._test_target_names - if test_target_names_contains_all: - test_targets = [x for x in (set(test_targets_no_all) | - set(self._root_targets))] - else: - test_targets = [x for x in test_targets_no_all] - print 'supplied test_targets' - for target_name in self._test_target_names: - print '\t', target_name - print 'found test_targets' - for target in test_targets: - print '\t', target.name - print 'searching for matching test targets' - matching_test_targets = _GetTargetsDependingOnMatchingTargets(test_targets) - matching_test_targets_contains_all = (test_target_names_contains_all and - set(matching_test_targets) & - set(self._root_targets)) - if matching_test_targets_contains_all: - # Remove any of the targets for all that were not explicitly supplied, - # 'all' is subsequentely added to the matching names below. - matching_test_targets = [x for x in (set(matching_test_targets) & - set(test_targets_no_all))] - print 'matched test_targets' - for target in matching_test_targets: - print '\t', target.name - matching_target_names = [gyp.common.ParseQualifiedTarget(target.name)[1] - for target in matching_test_targets] - if matching_test_targets_contains_all: - matching_target_names.append('all') - print '\tall' - return matching_target_names - - def find_matching_compile_target_names(self): - """Returns the set of output compile targets.""" - assert self.is_build_impacted(); - # Compile targets are found by searching up from changed targets. - # Reset the visited status for _GetBuildTargets. - for target in self._name_to_target.itervalues(): - target.visited = False - - supplied_targets = _LookupTargets(self._supplied_target_names_no_all(), - self._unqualified_mapping) - if 'all' in self._supplied_target_names(): - supplied_targets = [x for x in (set(supplied_targets) | - set(self._root_targets))] - print 'Supplied test_targets & compile_targets' - for target in supplied_targets: - print '\t', target.name - print 'Finding compile targets' - compile_targets = _GetCompileTargets(self._changed_targets, - supplied_targets) - return [gyp.common.ParseQualifiedTarget(target.name)[1] - for target in compile_targets] - - -def GenerateOutput(target_list, target_dicts, data, params): - """Called by gyp as the final stage. Outputs results.""" - config = Config() - try: - config.Init(params) - - if not config.files: - raise Exception('Must specify files to analyze via config_path generator ' - 'flag') - - toplevel_dir = _ToGypPath(os.path.abspath(params['options'].toplevel_dir)) - if debug: - print 'toplevel_dir', toplevel_dir - - if _WasGypIncludeFileModified(params, config.files): - result_dict = { 'status': all_changed_string, - 'test_targets': list(config.test_target_names), - 'compile_targets': list( - config.additional_compile_target_names | - config.test_target_names) } - _WriteOutput(params, **result_dict) - return - - calculator = TargetCalculator(config.files, - config.additional_compile_target_names, - config.test_target_names, data, - target_list, target_dicts, toplevel_dir, - params['build_files']) - if not calculator.is_build_impacted(): - result_dict = { 'status': no_dependency_string, - 'test_targets': [], - 'compile_targets': [] } - if calculator.invalid_targets: - result_dict['invalid_targets'] = calculator.invalid_targets - _WriteOutput(params, **result_dict) - return - - test_target_names = calculator.find_matching_test_target_names() - compile_target_names = calculator.find_matching_compile_target_names() - found_at_least_one_target = compile_target_names or test_target_names - result_dict = { 'test_targets': test_target_names, - 'status': found_dependency_string if - found_at_least_one_target else no_dependency_string, - 'compile_targets': list( - set(compile_target_names) | - set(test_target_names)) } - if calculator.invalid_targets: - result_dict['invalid_targets'] = calculator.invalid_targets - _WriteOutput(params, **result_dict) - - except Exception as e: - _WriteOutput(params, error=str(e)) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py deleted file mode 100644 index bb9eb5f4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +++ /dev/null @@ -1,1094 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# Notes: -# -# This generates makefiles suitable for inclusion into the Android build system -# via an Android.mk file. It is based on make.py, the standard makefile -# generator. -# -# The code below generates a separate .mk file for each target, but -# all are sourced by the top-level GypAndroid.mk. This means that all -# variables in .mk-files clobber one another, and furthermore that any -# variables set potentially clash with other Android build system variables. -# Try to avoid setting global variables where possible. - -import gyp -import gyp.common -import gyp.generator.make as make # Reuse global functions from make backend. -import os -import re -import subprocess - -generator_default_variables = { - 'OS': 'android', - 'EXECUTABLE_PREFIX': '', - 'EXECUTABLE_SUFFIX': '', - 'STATIC_LIB_PREFIX': 'lib', - 'SHARED_LIB_PREFIX': 'lib', - 'STATIC_LIB_SUFFIX': '.a', - 'SHARED_LIB_SUFFIX': '.so', - 'INTERMEDIATE_DIR': '$(gyp_intermediate_dir)', - 'SHARED_INTERMEDIATE_DIR': '$(gyp_shared_intermediate_dir)', - 'PRODUCT_DIR': '$(gyp_shared_intermediate_dir)', - 'SHARED_LIB_DIR': '$(builddir)/lib.$(TOOLSET)', - 'LIB_DIR': '$(obj).$(TOOLSET)', - 'RULE_INPUT_ROOT': '%(INPUT_ROOT)s', # This gets expanded by Python. - 'RULE_INPUT_DIRNAME': '%(INPUT_DIRNAME)s', # This gets expanded by Python. - 'RULE_INPUT_PATH': '$(RULE_SOURCES)', - 'RULE_INPUT_EXT': '$(suffix $<)', - 'RULE_INPUT_NAME': '$(notdir $<)', - 'CONFIGURATION_NAME': '$(GYP_CONFIGURATION)', -} - -# Make supports multiple toolsets -generator_supports_multiple_toolsets = True - - -# Generator-specific gyp specs. -generator_additional_non_configuration_keys = [ - # Boolean to declare that this target does not want its name mangled. - 'android_unmangled_name', - # Map of android build system variables to set. - 'aosp_build_settings', -] -generator_additional_path_sections = [] -generator_extra_sources_for_rules = [] - - -ALL_MODULES_FOOTER = """\ -# "gyp_all_modules" is a concatenation of the "gyp_all_modules" targets from -# all the included sub-makefiles. This is just here to clarify. -gyp_all_modules: -""" - -header = """\ -# This file is generated by gyp; do not edit. - -""" - -# Map gyp target types to Android module classes. -MODULE_CLASSES = { - 'static_library': 'STATIC_LIBRARIES', - 'shared_library': 'SHARED_LIBRARIES', - 'executable': 'EXECUTABLES', -} - - -def IsCPPExtension(ext): - return make.COMPILABLE_EXTENSIONS.get(ext) == 'cxx' - - -def Sourceify(path): - """Convert a path to its source directory form. The Android backend does not - support options.generator_output, so this function is a noop.""" - return path - - -# Map from qualified target to path to output. -# For Android, the target of these maps is a tuple ('static', 'modulename'), -# ('dynamic', 'modulename'), or ('path', 'some/path') instead of a string, -# since we link by module. -target_outputs = {} -# Map from qualified target to any linkable output. A subset -# of target_outputs. E.g. when mybinary depends on liba, we want to -# include liba in the linker line; when otherbinary depends on -# mybinary, we just want to build mybinary first. -target_link_deps = {} - - -class AndroidMkWriter(object): - """AndroidMkWriter packages up the writing of one target-specific Android.mk. - - Its only real entry point is Write(), and is mostly used for namespacing. - """ - - def __init__(self, android_top_dir): - self.android_top_dir = android_top_dir - - def Write(self, qualified_target, relative_target, base_path, output_filename, - spec, configs, part_of_all, write_alias_target, sdk_version): - """The main entry point: writes a .mk file for a single target. - - Arguments: - qualified_target: target we're generating - relative_target: qualified target name relative to the root - base_path: path relative to source root we're building in, used to resolve - target-relative paths - output_filename: output .mk file name to write - spec, configs: gyp info - part_of_all: flag indicating this target is part of 'all' - write_alias_target: flag indicating whether to create short aliases for - this target - sdk_version: what to emit for LOCAL_SDK_VERSION in output - """ - gyp.common.EnsureDirExists(output_filename) - - self.fp = open(output_filename, 'w') - - self.fp.write(header) - - self.qualified_target = qualified_target - self.relative_target = relative_target - self.path = base_path - self.target = spec['target_name'] - self.type = spec['type'] - self.toolset = spec['toolset'] - - deps, link_deps = self.ComputeDeps(spec) - - # Some of the generation below can add extra output, sources, or - # link dependencies. All of the out params of the functions that - # follow use names like extra_foo. - extra_outputs = [] - extra_sources = [] - - self.android_class = MODULE_CLASSES.get(self.type, 'GYP') - self.android_module = self.ComputeAndroidModule(spec) - (self.android_stem, self.android_suffix) = self.ComputeOutputParts(spec) - self.output = self.output_binary = self.ComputeOutput(spec) - - # Standard header. - self.WriteLn('include $(CLEAR_VARS)\n') - - # Module class and name. - self.WriteLn('LOCAL_MODULE_CLASS := ' + self.android_class) - self.WriteLn('LOCAL_MODULE := ' + self.android_module) - # Only emit LOCAL_MODULE_STEM if it's different to LOCAL_MODULE. - # The library module classes fail if the stem is set. ComputeOutputParts - # makes sure that stem == modulename in these cases. - if self.android_stem != self.android_module: - self.WriteLn('LOCAL_MODULE_STEM := ' + self.android_stem) - self.WriteLn('LOCAL_MODULE_SUFFIX := ' + self.android_suffix) - if self.toolset == 'host': - self.WriteLn('LOCAL_IS_HOST_MODULE := true') - self.WriteLn('LOCAL_MULTILIB := $(GYP_HOST_MULTILIB)') - elif sdk_version > 0: - self.WriteLn('LOCAL_MODULE_TARGET_ARCH := ' - '$(TARGET_$(GYP_VAR_PREFIX)ARCH)') - self.WriteLn('LOCAL_SDK_VERSION := %s' % sdk_version) - - # Grab output directories; needed for Actions and Rules. - if self.toolset == 'host': - self.WriteLn('gyp_intermediate_dir := ' - '$(call local-intermediates-dir,,$(GYP_HOST_VAR_PREFIX))') - else: - self.WriteLn('gyp_intermediate_dir := ' - '$(call local-intermediates-dir,,$(GYP_VAR_PREFIX))') - self.WriteLn('gyp_shared_intermediate_dir := ' - '$(call intermediates-dir-for,GYP,shared,,,$(GYP_VAR_PREFIX))') - self.WriteLn() - - # List files this target depends on so that actions/rules/copies/sources - # can depend on the list. - # TODO: doesn't pull in things through transitive link deps; needed? - target_dependencies = [x[1] for x in deps if x[0] == 'path'] - self.WriteLn('# Make sure our deps are built first.') - self.WriteList(target_dependencies, 'GYP_TARGET_DEPENDENCIES', - local_pathify=True) - - # Actions must come first, since they can generate more OBJs for use below. - if 'actions' in spec: - self.WriteActions(spec['actions'], extra_sources, extra_outputs) - - # Rules must be early like actions. - if 'rules' in spec: - self.WriteRules(spec['rules'], extra_sources, extra_outputs) - - if 'copies' in spec: - self.WriteCopies(spec['copies'], extra_outputs) - - # GYP generated outputs. - self.WriteList(extra_outputs, 'GYP_GENERATED_OUTPUTS', local_pathify=True) - - # Set LOCAL_ADDITIONAL_DEPENDENCIES so that Android's build rules depend - # on both our dependency targets and our generated files. - self.WriteLn('# Make sure our deps and generated files are built first.') - self.WriteLn('LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) ' - '$(GYP_GENERATED_OUTPUTS)') - self.WriteLn() - - # Sources. - if spec.get('sources', []) or extra_sources: - self.WriteSources(spec, configs, extra_sources) - - self.WriteTarget(spec, configs, deps, link_deps, part_of_all, - write_alias_target) - - # Update global list of target outputs, used in dependency tracking. - target_outputs[qualified_target] = ('path', self.output_binary) - - # Update global list of link dependencies. - if self.type == 'static_library': - target_link_deps[qualified_target] = ('static', self.android_module) - elif self.type == 'shared_library': - target_link_deps[qualified_target] = ('shared', self.android_module) - - self.fp.close() - return self.android_module - - - def WriteActions(self, actions, extra_sources, extra_outputs): - """Write Makefile code for any 'actions' from the gyp input. - - extra_sources: a list that will be filled in with newly generated source - files, if any - extra_outputs: a list that will be filled in with any outputs of these - actions (used to make other pieces dependent on these - actions) - """ - for action in actions: - name = make.StringToMakefileVariable('%s_%s' % (self.relative_target, - action['action_name'])) - self.WriteLn('### Rules for action "%s":' % action['action_name']) - inputs = action['inputs'] - outputs = action['outputs'] - - # Build up a list of outputs. - # Collect the output dirs we'll need. - dirs = set() - for out in outputs: - if not out.startswith('$'): - print ('WARNING: Action for target "%s" writes output to local path ' - '"%s".' % (self.target, out)) - dir = os.path.split(out)[0] - if dir: - dirs.add(dir) - if int(action.get('process_outputs_as_sources', False)): - extra_sources += outputs - - # Prepare the actual command. - command = gyp.common.EncodePOSIXShellList(action['action']) - if 'message' in action: - quiet_cmd = 'Gyp action: %s ($@)' % action['message'] - else: - quiet_cmd = 'Gyp action: %s ($@)' % name - if len(dirs) > 0: - command = 'mkdir -p %s' % ' '.join(dirs) + '; ' + command - - cd_action = 'cd $(gyp_local_path)/%s; ' % self.path - command = cd_action + command - - # The makefile rules are all relative to the top dir, but the gyp actions - # are defined relative to their containing dir. This replaces the gyp_* - # variables for the action rule with an absolute version so that the - # output goes in the right place. - # Only write the gyp_* rules for the "primary" output (:1); - # it's superfluous for the "extra outputs", and this avoids accidentally - # writing duplicate dummy rules for those outputs. - main_output = make.QuoteSpaces(self.LocalPathify(outputs[0])) - self.WriteLn('%s: gyp_local_path := $(LOCAL_PATH)' % main_output) - self.WriteLn('%s: gyp_var_prefix := $(GYP_VAR_PREFIX)' % main_output) - self.WriteLn('%s: gyp_intermediate_dir := ' - '$(abspath $(gyp_intermediate_dir))' % main_output) - self.WriteLn('%s: gyp_shared_intermediate_dir := ' - '$(abspath $(gyp_shared_intermediate_dir))' % main_output) - - # Android's envsetup.sh adds a number of directories to the path including - # the built host binary directory. This causes actions/rules invoked by - # gyp to sometimes use these instead of system versions, e.g. bison. - # The built host binaries may not be suitable, and can cause errors. - # So, we remove them from the PATH using the ANDROID_BUILD_PATHS variable - # set by envsetup. - self.WriteLn('%s: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))' - % main_output) - - # Don't allow spaces in input/output filenames, but make an exception for - # filenames which start with '$(' since it's okay for there to be spaces - # inside of make function/macro invocations. - for input in inputs: - if not input.startswith('$(') and ' ' in input: - raise gyp.common.GypError( - 'Action input filename "%s" in target %s contains a space' % - (input, self.target)) - for output in outputs: - if not output.startswith('$(') and ' ' in output: - raise gyp.common.GypError( - 'Action output filename "%s" in target %s contains a space' % - (output, self.target)) - - self.WriteLn('%s: %s $(GYP_TARGET_DEPENDENCIES)' % - (main_output, ' '.join(map(self.LocalPathify, inputs)))) - self.WriteLn('\t@echo "%s"' % quiet_cmd) - self.WriteLn('\t$(hide)%s\n' % command) - for output in outputs[1:]: - # Make each output depend on the main output, with an empty command - # to force make to notice that the mtime has changed. - self.WriteLn('%s: %s ;' % (self.LocalPathify(output), main_output)) - - extra_outputs += outputs - self.WriteLn() - - self.WriteLn() - - - def WriteRules(self, rules, extra_sources, extra_outputs): - """Write Makefile code for any 'rules' from the gyp input. - - extra_sources: a list that will be filled in with newly generated source - files, if any - extra_outputs: a list that will be filled in with any outputs of these - rules (used to make other pieces dependent on these rules) - """ - if len(rules) == 0: - return - - for rule in rules: - if len(rule.get('rule_sources', [])) == 0: - continue - name = make.StringToMakefileVariable('%s_%s' % (self.relative_target, - rule['rule_name'])) - self.WriteLn('\n### Generated for rule "%s":' % name) - self.WriteLn('# "%s":' % rule) - - inputs = rule.get('inputs') - for rule_source in rule.get('rule_sources', []): - (rule_source_dirname, rule_source_basename) = os.path.split(rule_source) - (rule_source_root, rule_source_ext) = \ - os.path.splitext(rule_source_basename) - - outputs = [self.ExpandInputRoot(out, rule_source_root, - rule_source_dirname) - for out in rule['outputs']] - - dirs = set() - for out in outputs: - if not out.startswith('$'): - print ('WARNING: Rule for target %s writes output to local path %s' - % (self.target, out)) - dir = os.path.dirname(out) - if dir: - dirs.add(dir) - extra_outputs += outputs - if int(rule.get('process_outputs_as_sources', False)): - extra_sources.extend(outputs) - - components = [] - for component in rule['action']: - component = self.ExpandInputRoot(component, rule_source_root, - rule_source_dirname) - if '$(RULE_SOURCES)' in component: - component = component.replace('$(RULE_SOURCES)', - rule_source) - components.append(component) - - command = gyp.common.EncodePOSIXShellList(components) - cd_action = 'cd $(gyp_local_path)/%s; ' % self.path - command = cd_action + command - if dirs: - command = 'mkdir -p %s' % ' '.join(dirs) + '; ' + command - - # We set up a rule to build the first output, and then set up - # a rule for each additional output to depend on the first. - outputs = map(self.LocalPathify, outputs) - main_output = outputs[0] - self.WriteLn('%s: gyp_local_path := $(LOCAL_PATH)' % main_output) - self.WriteLn('%s: gyp_var_prefix := $(GYP_VAR_PREFIX)' % main_output) - self.WriteLn('%s: gyp_intermediate_dir := ' - '$(abspath $(gyp_intermediate_dir))' % main_output) - self.WriteLn('%s: gyp_shared_intermediate_dir := ' - '$(abspath $(gyp_shared_intermediate_dir))' % main_output) - - # See explanation in WriteActions. - self.WriteLn('%s: export PATH := ' - '$(subst $(ANDROID_BUILD_PATHS),,$(PATH))' % main_output) - - main_output_deps = self.LocalPathify(rule_source) - if inputs: - main_output_deps += ' ' - main_output_deps += ' '.join([self.LocalPathify(f) for f in inputs]) - - self.WriteLn('%s: %s $(GYP_TARGET_DEPENDENCIES)' % - (main_output, main_output_deps)) - self.WriteLn('\t%s\n' % command) - for output in outputs[1:]: - # Make each output depend on the main output, with an empty command - # to force make to notice that the mtime has changed. - self.WriteLn('%s: %s ;' % (output, main_output)) - self.WriteLn() - - self.WriteLn() - - - def WriteCopies(self, copies, extra_outputs): - """Write Makefile code for any 'copies' from the gyp input. - - extra_outputs: a list that will be filled in with any outputs of this action - (used to make other pieces dependent on this action) - """ - self.WriteLn('### Generated for copy rule.') - - variable = make.StringToMakefileVariable(self.relative_target + '_copies') - outputs = [] - for copy in copies: - for path in copy['files']: - # The Android build system does not allow generation of files into the - # source tree. The destination should start with a variable, which will - # typically be $(gyp_intermediate_dir) or - # $(gyp_shared_intermediate_dir). Note that we can't use an assertion - # because some of the gyp tests depend on this. - if not copy['destination'].startswith('$'): - print ('WARNING: Copy rule for target %s writes output to ' - 'local path %s' % (self.target, copy['destination'])) - - # LocalPathify() calls normpath, stripping trailing slashes. - path = Sourceify(self.LocalPathify(path)) - filename = os.path.split(path)[1] - output = Sourceify(self.LocalPathify(os.path.join(copy['destination'], - filename))) - - self.WriteLn('%s: %s $(GYP_TARGET_DEPENDENCIES) | $(ACP)' % - (output, path)) - self.WriteLn('\t@echo Copying: $@') - self.WriteLn('\t$(hide) mkdir -p $(dir $@)') - self.WriteLn('\t$(hide) $(ACP) -rpf $< $@') - self.WriteLn() - outputs.append(output) - self.WriteLn('%s = %s' % (variable, - ' '.join(map(make.QuoteSpaces, outputs)))) - extra_outputs.append('$(%s)' % variable) - self.WriteLn() - - - def WriteSourceFlags(self, spec, configs): - """Write out the flags and include paths used to compile source files for - the current target. - - Args: - spec, configs: input from gyp. - """ - for configname, config in sorted(configs.iteritems()): - extracted_includes = [] - - self.WriteLn('\n# Flags passed to both C and C++ files.') - cflags, includes_from_cflags = self.ExtractIncludesFromCFlags( - config.get('cflags', []) + config.get('cflags_c', [])) - extracted_includes.extend(includes_from_cflags) - self.WriteList(cflags, 'MY_CFLAGS_%s' % configname) - - self.WriteList(config.get('defines'), 'MY_DEFS_%s' % configname, - prefix='-D', quoter=make.EscapeCppDefine) - - self.WriteLn('\n# Include paths placed before CFLAGS/CPPFLAGS') - includes = list(config.get('include_dirs', [])) - includes.extend(extracted_includes) - includes = map(Sourceify, map(self.LocalPathify, includes)) - includes = self.NormalizeIncludePaths(includes) - self.WriteList(includes, 'LOCAL_C_INCLUDES_%s' % configname) - - self.WriteLn('\n# Flags passed to only C++ (and not C) files.') - self.WriteList(config.get('cflags_cc'), 'LOCAL_CPPFLAGS_%s' % configname) - - self.WriteLn('\nLOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) ' - '$(MY_DEFS_$(GYP_CONFIGURATION))') - # Undefine ANDROID for host modules - # TODO: the source code should not use macro ANDROID to tell if it's host - # or target module. - if self.toolset == 'host': - self.WriteLn('# Undefine ANDROID for host modules') - self.WriteLn('LOCAL_CFLAGS += -UANDROID') - self.WriteLn('LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) ' - '$(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))') - self.WriteLn('LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))') - # Android uses separate flags for assembly file invocations, but gyp expects - # the same CFLAGS to be applied: - self.WriteLn('LOCAL_ASFLAGS := $(LOCAL_CFLAGS)') - - - def WriteSources(self, spec, configs, extra_sources): - """Write Makefile code for any 'sources' from the gyp input. - These are source files necessary to build the current target. - We need to handle shared_intermediate directory source files as - a special case by copying them to the intermediate directory and - treating them as a genereated sources. Otherwise the Android build - rules won't pick them up. - - Args: - spec, configs: input from gyp. - extra_sources: Sources generated from Actions or Rules. - """ - sources = filter(make.Compilable, spec.get('sources', [])) - generated_not_sources = [x for x in extra_sources if not make.Compilable(x)] - extra_sources = filter(make.Compilable, extra_sources) - - # Determine and output the C++ extension used by these sources. - # We simply find the first C++ file and use that extension. - all_sources = sources + extra_sources - local_cpp_extension = '.cpp' - for source in all_sources: - (root, ext) = os.path.splitext(source) - if IsCPPExtension(ext): - local_cpp_extension = ext - break - if local_cpp_extension != '.cpp': - self.WriteLn('LOCAL_CPP_EXTENSION := %s' % local_cpp_extension) - - # We need to move any non-generated sources that are coming from the - # shared intermediate directory out of LOCAL_SRC_FILES and put them - # into LOCAL_GENERATED_SOURCES. We also need to move over any C++ files - # that don't match our local_cpp_extension, since Android will only - # generate Makefile rules for a single LOCAL_CPP_EXTENSION. - local_files = [] - for source in sources: - (root, ext) = os.path.splitext(source) - if '$(gyp_shared_intermediate_dir)' in source: - extra_sources.append(source) - elif '$(gyp_intermediate_dir)' in source: - extra_sources.append(source) - elif IsCPPExtension(ext) and ext != local_cpp_extension: - extra_sources.append(source) - else: - local_files.append(os.path.normpath(os.path.join(self.path, source))) - - # For any generated source, if it is coming from the shared intermediate - # directory then we add a Make rule to copy them to the local intermediate - # directory first. This is because the Android LOCAL_GENERATED_SOURCES - # must be in the local module intermediate directory for the compile rules - # to work properly. If the file has the wrong C++ extension, then we add - # a rule to copy that to intermediates and use the new version. - final_generated_sources = [] - # If a source file gets copied, we still need to add the orginal source - # directory as header search path, for GCC searches headers in the - # directory that contains the source file by default. - origin_src_dirs = [] - for source in extra_sources: - local_file = source - if not '$(gyp_intermediate_dir)/' in local_file: - basename = os.path.basename(local_file) - local_file = '$(gyp_intermediate_dir)/' + basename - (root, ext) = os.path.splitext(local_file) - if IsCPPExtension(ext) and ext != local_cpp_extension: - local_file = root + local_cpp_extension - if local_file != source: - self.WriteLn('%s: %s' % (local_file, self.LocalPathify(source))) - self.WriteLn('\tmkdir -p $(@D); cp $< $@') - origin_src_dirs.append(os.path.dirname(source)) - final_generated_sources.append(local_file) - - # We add back in all of the non-compilable stuff to make sure that the - # make rules have dependencies on them. - final_generated_sources.extend(generated_not_sources) - self.WriteList(final_generated_sources, 'LOCAL_GENERATED_SOURCES') - - origin_src_dirs = gyp.common.uniquer(origin_src_dirs) - origin_src_dirs = map(Sourceify, map(self.LocalPathify, origin_src_dirs)) - self.WriteList(origin_src_dirs, 'GYP_COPIED_SOURCE_ORIGIN_DIRS') - - self.WriteList(local_files, 'LOCAL_SRC_FILES') - - # Write out the flags used to compile the source; this must be done last - # so that GYP_COPIED_SOURCE_ORIGIN_DIRS can be used as an include path. - self.WriteSourceFlags(spec, configs) - - - def ComputeAndroidModule(self, spec): - """Return the Android module name used for a gyp spec. - - We use the complete qualified target name to avoid collisions between - duplicate targets in different directories. We also add a suffix to - distinguish gyp-generated module names. - """ - - if int(spec.get('android_unmangled_name', 0)): - assert self.type != 'shared_library' or self.target.startswith('lib') - return self.target - - if self.type == 'shared_library': - # For reasons of convention, the Android build system requires that all - # shared library modules are named 'libfoo' when generating -l flags. - prefix = 'lib_' - else: - prefix = '' - - if spec['toolset'] == 'host': - suffix = '_$(TARGET_$(GYP_VAR_PREFIX)ARCH)_host_gyp' - else: - suffix = '_gyp' - - if self.path: - middle = make.StringToMakefileVariable('%s_%s' % (self.path, self.target)) - else: - middle = make.StringToMakefileVariable(self.target) - - return ''.join([prefix, middle, suffix]) - - - def ComputeOutputParts(self, spec): - """Return the 'output basename' of a gyp spec, split into filename + ext. - - Android libraries must be named the same thing as their module name, - otherwise the linker can't find them, so product_name and so on must be - ignored if we are building a library, and the "lib" prepending is - not done for Android. - """ - assert self.type != 'loadable_module' # TODO: not supported? - - target = spec['target_name'] - target_prefix = '' - target_ext = '' - if self.type == 'static_library': - target = self.ComputeAndroidModule(spec) - target_ext = '.a' - elif self.type == 'shared_library': - target = self.ComputeAndroidModule(spec) - target_ext = '.so' - elif self.type == 'none': - target_ext = '.stamp' - elif self.type != 'executable': - print ("ERROR: What output file should be generated?", - "type", self.type, "target", target) - - if self.type != 'static_library' and self.type != 'shared_library': - target_prefix = spec.get('product_prefix', target_prefix) - target = spec.get('product_name', target) - product_ext = spec.get('product_extension') - if product_ext: - target_ext = '.' + product_ext - - target_stem = target_prefix + target - return (target_stem, target_ext) - - - def ComputeOutputBasename(self, spec): - """Return the 'output basename' of a gyp spec. - - E.g., the loadable module 'foobar' in directory 'baz' will produce - 'libfoobar.so' - """ - return ''.join(self.ComputeOutputParts(spec)) - - - def ComputeOutput(self, spec): - """Return the 'output' (full output path) of a gyp spec. - - E.g., the loadable module 'foobar' in directory 'baz' will produce - '$(obj)/baz/libfoobar.so' - """ - if self.type == 'executable': - # We install host executables into shared_intermediate_dir so they can be - # run by gyp rules that refer to PRODUCT_DIR. - path = '$(gyp_shared_intermediate_dir)' - elif self.type == 'shared_library': - if self.toolset == 'host': - path = '$($(GYP_HOST_VAR_PREFIX)HOST_OUT_INTERMEDIATE_LIBRARIES)' - else: - path = '$($(GYP_VAR_PREFIX)TARGET_OUT_INTERMEDIATE_LIBRARIES)' - else: - # Other targets just get built into their intermediate dir. - if self.toolset == 'host': - path = ('$(call intermediates-dir-for,%s,%s,true,,' - '$(GYP_HOST_VAR_PREFIX))' % (self.android_class, - self.android_module)) - else: - path = ('$(call intermediates-dir-for,%s,%s,,,$(GYP_VAR_PREFIX))' - % (self.android_class, self.android_module)) - - assert spec.get('product_dir') is None # TODO: not supported? - return os.path.join(path, self.ComputeOutputBasename(spec)) - - def NormalizeIncludePaths(self, include_paths): - """ Normalize include_paths. - Convert absolute paths to relative to the Android top directory. - - Args: - include_paths: A list of unprocessed include paths. - Returns: - A list of normalized include paths. - """ - normalized = [] - for path in include_paths: - if path[0] == '/': - path = gyp.common.RelativePath(path, self.android_top_dir) - normalized.append(path) - return normalized - - def ExtractIncludesFromCFlags(self, cflags): - """Extract includes "-I..." out from cflags - - Args: - cflags: A list of compiler flags, which may be mixed with "-I.." - Returns: - A tuple of lists: (clean_clfags, include_paths). "-I.." is trimmed. - """ - clean_cflags = [] - include_paths = [] - for flag in cflags: - if flag.startswith('-I'): - include_paths.append(flag[2:]) - else: - clean_cflags.append(flag) - - return (clean_cflags, include_paths) - - def FilterLibraries(self, libraries): - """Filter the 'libraries' key to separate things that shouldn't be ldflags. - - Library entries that look like filenames should be converted to android - module names instead of being passed to the linker as flags. - - Args: - libraries: the value of spec.get('libraries') - Returns: - A tuple (static_lib_modules, dynamic_lib_modules, ldflags) - """ - static_lib_modules = [] - dynamic_lib_modules = [] - ldflags = [] - for libs in libraries: - # Libs can have multiple words. - for lib in libs.split(): - # Filter the system libraries, which are added by default by the Android - # build system. - if (lib == '-lc' or lib == '-lstdc++' or lib == '-lm' or - lib.endswith('libgcc.a')): - continue - match = re.search(r'([^/]+)\.a$', lib) - if match: - static_lib_modules.append(match.group(1)) - continue - match = re.search(r'([^/]+)\.so$', lib) - if match: - dynamic_lib_modules.append(match.group(1)) - continue - if lib.startswith('-l'): - ldflags.append(lib) - return (static_lib_modules, dynamic_lib_modules, ldflags) - - - def ComputeDeps(self, spec): - """Compute the dependencies of a gyp spec. - - Returns a tuple (deps, link_deps), where each is a list of - filenames that will need to be put in front of make for either - building (deps) or linking (link_deps). - """ - deps = [] - link_deps = [] - if 'dependencies' in spec: - deps.extend([target_outputs[dep] for dep in spec['dependencies'] - if target_outputs[dep]]) - for dep in spec['dependencies']: - if dep in target_link_deps: - link_deps.append(target_link_deps[dep]) - deps.extend(link_deps) - return (gyp.common.uniquer(deps), gyp.common.uniquer(link_deps)) - - - def WriteTargetFlags(self, spec, configs, link_deps): - """Write Makefile code to specify the link flags and library dependencies. - - spec, configs: input from gyp. - link_deps: link dependency list; see ComputeDeps() - """ - # Libraries (i.e. -lfoo) - # These must be included even for static libraries as some of them provide - # implicit include paths through the build system. - libraries = gyp.common.uniquer(spec.get('libraries', [])) - static_libs, dynamic_libs, ldflags_libs = self.FilterLibraries(libraries) - - if self.type != 'static_library': - for configname, config in sorted(configs.iteritems()): - ldflags = list(config.get('ldflags', [])) - self.WriteLn('') - self.WriteList(ldflags, 'LOCAL_LDFLAGS_%s' % configname) - self.WriteList(ldflags_libs, 'LOCAL_GYP_LIBS') - self.WriteLn('LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION)) ' - '$(LOCAL_GYP_LIBS)') - - # Link dependencies (i.e. other gyp targets this target depends on) - # These need not be included for static libraries as within the gyp build - # we do not use the implicit include path mechanism. - if self.type != 'static_library': - static_link_deps = [x[1] for x in link_deps if x[0] == 'static'] - shared_link_deps = [x[1] for x in link_deps if x[0] == 'shared'] - else: - static_link_deps = [] - shared_link_deps = [] - - # Only write the lists if they are non-empty. - if static_libs or static_link_deps: - self.WriteLn('') - self.WriteList(static_libs + static_link_deps, - 'LOCAL_STATIC_LIBRARIES') - self.WriteLn('# Enable grouping to fix circular references') - self.WriteLn('LOCAL_GROUP_STATIC_LIBRARIES := true') - if dynamic_libs or shared_link_deps: - self.WriteLn('') - self.WriteList(dynamic_libs + shared_link_deps, - 'LOCAL_SHARED_LIBRARIES') - - - def WriteTarget(self, spec, configs, deps, link_deps, part_of_all, - write_alias_target): - """Write Makefile code to produce the final target of the gyp spec. - - spec, configs: input from gyp. - deps, link_deps: dependency lists; see ComputeDeps() - part_of_all: flag indicating this target is part of 'all' - write_alias_target: flag indicating whether to create short aliases for this - target - """ - self.WriteLn('### Rules for final target.') - - if self.type != 'none': - self.WriteTargetFlags(spec, configs, link_deps) - - settings = spec.get('aosp_build_settings', {}) - if settings: - self.WriteLn('### Set directly by aosp_build_settings.') - for k, v in settings.iteritems(): - if isinstance(v, list): - self.WriteList(v, k) - else: - self.WriteLn('%s := %s' % (k, make.QuoteIfNecessary(v))) - self.WriteLn('') - - # Add to the set of targets which represent the gyp 'all' target. We use the - # name 'gyp_all_modules' as the Android build system doesn't allow the use - # of the Make target 'all' and because 'all_modules' is the equivalent of - # the Make target 'all' on Android. - if part_of_all and write_alias_target: - self.WriteLn('# Add target alias to "gyp_all_modules" target.') - self.WriteLn('.PHONY: gyp_all_modules') - self.WriteLn('gyp_all_modules: %s' % self.android_module) - self.WriteLn('') - - # Add an alias from the gyp target name to the Android module name. This - # simplifies manual builds of the target, and is required by the test - # framework. - if self.target != self.android_module and write_alias_target: - self.WriteLn('# Alias gyp target name.') - self.WriteLn('.PHONY: %s' % self.target) - self.WriteLn('%s: %s' % (self.target, self.android_module)) - self.WriteLn('') - - # Add the command to trigger build of the target type depending - # on the toolset. Ex: BUILD_STATIC_LIBRARY vs. BUILD_HOST_STATIC_LIBRARY - # NOTE: This has to come last! - modifier = '' - if self.toolset == 'host': - modifier = 'HOST_' - if self.type == 'static_library': - self.WriteLn('include $(BUILD_%sSTATIC_LIBRARY)' % modifier) - elif self.type == 'shared_library': - self.WriteLn('LOCAL_PRELINK_MODULE := false') - self.WriteLn('include $(BUILD_%sSHARED_LIBRARY)' % modifier) - elif self.type == 'executable': - # Executables are for build and test purposes only, so they're installed - # to a directory that doesn't get included in the system image. - self.WriteLn('LOCAL_MODULE_PATH := $(gyp_shared_intermediate_dir)') - self.WriteLn('include $(BUILD_%sEXECUTABLE)' % modifier) - else: - self.WriteLn('LOCAL_MODULE_PATH := $(PRODUCT_OUT)/gyp_stamp') - self.WriteLn('LOCAL_UNINSTALLABLE_MODULE := true') - if self.toolset == 'target': - self.WriteLn('LOCAL_2ND_ARCH_VAR_PREFIX := $(GYP_VAR_PREFIX)') - else: - self.WriteLn('LOCAL_2ND_ARCH_VAR_PREFIX := $(GYP_HOST_VAR_PREFIX)') - self.WriteLn() - self.WriteLn('include $(BUILD_SYSTEM)/base_rules.mk') - self.WriteLn() - self.WriteLn('$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES)') - self.WriteLn('\t$(hide) echo "Gyp timestamp: $@"') - self.WriteLn('\t$(hide) mkdir -p $(dir $@)') - self.WriteLn('\t$(hide) touch $@') - self.WriteLn() - self.WriteLn('LOCAL_2ND_ARCH_VAR_PREFIX :=') - - - def WriteList(self, value_list, variable=None, prefix='', - quoter=make.QuoteIfNecessary, local_pathify=False): - """Write a variable definition that is a list of values. - - E.g. WriteList(['a','b'], 'foo', prefix='blah') writes out - foo = blaha blahb - but in a pretty-printed style. - """ - values = '' - if value_list: - value_list = [quoter(prefix + l) for l in value_list] - if local_pathify: - value_list = [self.LocalPathify(l) for l in value_list] - values = ' \\\n\t' + ' \\\n\t'.join(value_list) - self.fp.write('%s :=%s\n\n' % (variable, values)) - - - def WriteLn(self, text=''): - self.fp.write(text + '\n') - - - def LocalPathify(self, path): - """Convert a subdirectory-relative path into a normalized path which starts - with the make variable $(LOCAL_PATH) (i.e. the top of the project tree). - Absolute paths, or paths that contain variables, are just normalized.""" - if '$(' in path or os.path.isabs(path): - # path is not a file in the project tree in this case, but calling - # normpath is still important for trimming trailing slashes. - return os.path.normpath(path) - local_path = os.path.join('$(LOCAL_PATH)', self.path, path) - local_path = os.path.normpath(local_path) - # Check that normalizing the path didn't ../ itself out of $(LOCAL_PATH) - # - i.e. that the resulting path is still inside the project tree. The - # path may legitimately have ended up containing just $(LOCAL_PATH), though, - # so we don't look for a slash. - assert local_path.startswith('$(LOCAL_PATH)'), ( - 'Path %s attempts to escape from gyp path %s !)' % (path, self.path)) - return local_path - - - def ExpandInputRoot(self, template, expansion, dirname): - if '%(INPUT_ROOT)s' not in template and '%(INPUT_DIRNAME)s' not in template: - return template - path = template % { - 'INPUT_ROOT': expansion, - 'INPUT_DIRNAME': dirname, - } - return os.path.normpath(path) - - -def PerformBuild(data, configurations, params): - # The android backend only supports the default configuration. - options = params['options'] - makefile = os.path.abspath(os.path.join(options.toplevel_dir, - 'GypAndroid.mk')) - env = dict(os.environ) - env['ONE_SHOT_MAKEFILE'] = makefile - arguments = ['make', '-C', os.environ['ANDROID_BUILD_TOP'], 'gyp_all_modules'] - print 'Building: %s' % arguments - subprocess.check_call(arguments, env=env) - - -def GenerateOutput(target_list, target_dicts, data, params): - options = params['options'] - generator_flags = params.get('generator_flags', {}) - builddir_name = generator_flags.get('output_dir', 'out') - limit_to_target_all = generator_flags.get('limit_to_target_all', False) - write_alias_targets = generator_flags.get('write_alias_targets', True) - sdk_version = generator_flags.get('aosp_sdk_version', 0) - android_top_dir = os.environ.get('ANDROID_BUILD_TOP') - assert android_top_dir, '$ANDROID_BUILD_TOP not set; you need to run lunch.' - - def CalculateMakefilePath(build_file, base_name): - """Determine where to write a Makefile for a given gyp file.""" - # Paths in gyp files are relative to the .gyp file, but we want - # paths relative to the source root for the master makefile. Grab - # the path of the .gyp file as the base to relativize against. - # E.g. "foo/bar" when we're constructing targets for "foo/bar/baz.gyp". - base_path = gyp.common.RelativePath(os.path.dirname(build_file), - options.depth) - # We write the file in the base_path directory. - output_file = os.path.join(options.depth, base_path, base_name) - assert not options.generator_output, ( - 'The Android backend does not support options.generator_output.') - base_path = gyp.common.RelativePath(os.path.dirname(build_file), - options.toplevel_dir) - return base_path, output_file - - # TODO: search for the first non-'Default' target. This can go - # away when we add verification that all targets have the - # necessary configurations. - default_configuration = None - toolsets = set([target_dicts[target]['toolset'] for target in target_list]) - for target in target_list: - spec = target_dicts[target] - if spec['default_configuration'] != 'Default': - default_configuration = spec['default_configuration'] - break - if not default_configuration: - default_configuration = 'Default' - - srcdir = '.' - makefile_name = 'GypAndroid' + options.suffix + '.mk' - makefile_path = os.path.join(options.toplevel_dir, makefile_name) - assert not options.generator_output, ( - 'The Android backend does not support options.generator_output.') - gyp.common.EnsureDirExists(makefile_path) - root_makefile = open(makefile_path, 'w') - - root_makefile.write(header) - - # We set LOCAL_PATH just once, here, to the top of the project tree. This - # allows all the other paths we use to be relative to the Android.mk file, - # as the Android build system expects. - root_makefile.write('\nLOCAL_PATH := $(call my-dir)\n') - - # Find the list of targets that derive from the gyp file(s) being built. - needed_targets = set() - for build_file in params['build_files']: - for target in gyp.common.AllTargets(target_list, target_dicts, build_file): - needed_targets.add(target) - - build_files = set() - include_list = set() - android_modules = {} - for qualified_target in target_list: - build_file, target, toolset = gyp.common.ParseQualifiedTarget( - qualified_target) - relative_build_file = gyp.common.RelativePath(build_file, - options.toplevel_dir) - build_files.add(relative_build_file) - included_files = data[build_file]['included_files'] - for included_file in included_files: - # The included_files entries are relative to the dir of the build file - # that included them, so we have to undo that and then make them relative - # to the root dir. - relative_include_file = gyp.common.RelativePath( - gyp.common.UnrelativePath(included_file, build_file), - options.toplevel_dir) - abs_include_file = os.path.abspath(relative_include_file) - # If the include file is from the ~/.gyp dir, we should use absolute path - # so that relocating the src dir doesn't break the path. - if (params['home_dot_gyp'] and - abs_include_file.startswith(params['home_dot_gyp'])): - build_files.add(abs_include_file) - else: - build_files.add(relative_include_file) - - base_path, output_file = CalculateMakefilePath(build_file, - target + '.' + toolset + options.suffix + '.mk') - - spec = target_dicts[qualified_target] - configs = spec['configurations'] - - part_of_all = qualified_target in needed_targets - if limit_to_target_all and not part_of_all: - continue - - relative_target = gyp.common.QualifiedTarget(relative_build_file, target, - toolset) - writer = AndroidMkWriter(android_top_dir) - android_module = writer.Write(qualified_target, relative_target, base_path, - output_file, spec, configs, - part_of_all=part_of_all, - write_alias_target=write_alias_targets, - sdk_version=sdk_version) - if android_module in android_modules: - print ('ERROR: Android module names must be unique. The following ' - 'targets both generate Android module name %s.\n %s\n %s' % - (android_module, android_modules[android_module], - qualified_target)) - return - android_modules[android_module] = qualified_target - - # Our root_makefile lives at the source root. Compute the relative path - # from there to the output_file for including. - mkfile_rel_path = gyp.common.RelativePath(output_file, - os.path.dirname(makefile_path)) - include_list.add(mkfile_rel_path) - - root_makefile.write('GYP_CONFIGURATION ?= %s\n' % default_configuration) - root_makefile.write('GYP_VAR_PREFIX ?=\n') - root_makefile.write('GYP_HOST_VAR_PREFIX ?=\n') - root_makefile.write('GYP_HOST_MULTILIB ?=\n') - - # Write out the sorted list of includes. - root_makefile.write('\n') - for include_file in sorted(include_list): - root_makefile.write('include $(LOCAL_PATH)/' + include_file + '\n') - root_makefile.write('\n') - - if write_alias_targets: - root_makefile.write(ALL_MODULES_FOOTER) - - root_makefile.close() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py deleted file mode 100644 index 17f5e639..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +++ /dev/null @@ -1,1221 +0,0 @@ -# Copyright (c) 2013 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""cmake output module - -This module is under development and should be considered experimental. - -This module produces cmake (2.8.8+) input as its output. One CMakeLists.txt is -created for each configuration. - -This module's original purpose was to support editing in IDEs like KDevelop -which use CMake for project management. It is also possible to use CMake to -generate projects for other IDEs such as eclipse cdt and code::blocks. QtCreator -will convert the CMakeLists.txt to a code::blocks cbp for the editor to read, -but build using CMake. As a result QtCreator editor is unaware of compiler -defines. The generated CMakeLists.txt can also be used to build on Linux. There -is currently no support for building on platforms other than Linux. - -The generated CMakeLists.txt should properly compile all projects. However, -there is a mismatch between gyp and cmake with regard to linking. All attempts -are made to work around this, but CMake sometimes sees -Wl,--start-group as a -library and incorrectly repeats it. As a result the output of this generator -should not be relied on for building. - -When using with kdevelop, use version 4.4+. Previous versions of kdevelop will -not be able to find the header file directories described in the generated -CMakeLists.txt file. -""" - -import multiprocessing -import os -import signal -import string -import subprocess -import gyp.common - -generator_default_variables = { - 'EXECUTABLE_PREFIX': '', - 'EXECUTABLE_SUFFIX': '', - 'STATIC_LIB_PREFIX': 'lib', - 'STATIC_LIB_SUFFIX': '.a', - 'SHARED_LIB_PREFIX': 'lib', - 'SHARED_LIB_SUFFIX': '.so', - 'SHARED_LIB_DIR': '${builddir}/lib.${TOOLSET}', - 'LIB_DIR': '${obj}.${TOOLSET}', - 'INTERMEDIATE_DIR': '${obj}.${TOOLSET}/${TARGET}/geni', - 'SHARED_INTERMEDIATE_DIR': '${obj}/gen', - 'PRODUCT_DIR': '${builddir}', - 'RULE_INPUT_PATH': '${RULE_INPUT_PATH}', - 'RULE_INPUT_DIRNAME': '${RULE_INPUT_DIRNAME}', - 'RULE_INPUT_NAME': '${RULE_INPUT_NAME}', - 'RULE_INPUT_ROOT': '${RULE_INPUT_ROOT}', - 'RULE_INPUT_EXT': '${RULE_INPUT_EXT}', - 'CONFIGURATION_NAME': '${configuration}', -} - -FULL_PATH_VARS = ('${CMAKE_CURRENT_LIST_DIR}', '${builddir}', '${obj}') - -generator_supports_multiple_toolsets = True -generator_wants_static_library_dependencies_adjusted = True - -COMPILABLE_EXTENSIONS = { - '.c': 'cc', - '.cc': 'cxx', - '.cpp': 'cxx', - '.cxx': 'cxx', - '.s': 's', # cc - '.S': 's', # cc -} - - -def RemovePrefix(a, prefix): - """Returns 'a' without 'prefix' if it starts with 'prefix'.""" - return a[len(prefix):] if a.startswith(prefix) else a - - -def CalculateVariables(default_variables, params): - """Calculate additional variables for use in the build (called by gyp).""" - default_variables.setdefault('OS', gyp.common.GetFlavor(params)) - - -def Compilable(filename): - """Return true if the file is compilable (should be in OBJS).""" - return any(filename.endswith(e) for e in COMPILABLE_EXTENSIONS) - - -def Linkable(filename): - """Return true if the file is linkable (should be on the link line).""" - return filename.endswith('.o') - - -def NormjoinPathForceCMakeSource(base_path, rel_path): - """Resolves rel_path against base_path and returns the result. - - If rel_path is an absolute path it is returned unchanged. - Otherwise it is resolved against base_path and normalized. - If the result is a relative path, it is forced to be relative to the - CMakeLists.txt. - """ - if os.path.isabs(rel_path): - return rel_path - if any([rel_path.startswith(var) for var in FULL_PATH_VARS]): - return rel_path - # TODO: do we need to check base_path for absolute variables as well? - return os.path.join('${CMAKE_CURRENT_LIST_DIR}', - os.path.normpath(os.path.join(base_path, rel_path))) - - -def NormjoinPath(base_path, rel_path): - """Resolves rel_path against base_path and returns the result. - TODO: what is this really used for? - If rel_path begins with '$' it is returned unchanged. - Otherwise it is resolved against base_path if relative, then normalized. - """ - if rel_path.startswith('$') and not rel_path.startswith('${configuration}'): - return rel_path - return os.path.normpath(os.path.join(base_path, rel_path)) - - -def CMakeStringEscape(a): - """Escapes the string 'a' for use inside a CMake string. - - This means escaping - '\' otherwise it may be seen as modifying the next character - '"' otherwise it will end the string - ';' otherwise the string becomes a list - - The following do not need to be escaped - '#' when the lexer is in string state, this does not start a comment - - The following are yet unknown - '$' generator variables (like ${obj}) must not be escaped, - but text $ should be escaped - what is wanted is to know which $ come from generator variables - """ - return a.replace('\\', '\\\\').replace(';', '\\;').replace('"', '\\"') - - -def SetFileProperty(output, source_name, property_name, values, sep): - """Given a set of source file, sets the given property on them.""" - output.write('set_source_files_properties(') - output.write(source_name) - output.write(' PROPERTIES ') - output.write(property_name) - output.write(' "') - for value in values: - output.write(CMakeStringEscape(value)) - output.write(sep) - output.write('")\n') - - -def SetFilesProperty(output, variable, property_name, values, sep): - """Given a set of source files, sets the given property on them.""" - output.write('set_source_files_properties(') - WriteVariable(output, variable) - output.write(' PROPERTIES ') - output.write(property_name) - output.write(' "') - for value in values: - output.write(CMakeStringEscape(value)) - output.write(sep) - output.write('")\n') - - -def SetTargetProperty(output, target_name, property_name, values, sep=''): - """Given a target, sets the given property.""" - output.write('set_target_properties(') - output.write(target_name) - output.write(' PROPERTIES ') - output.write(property_name) - output.write(' "') - for value in values: - output.write(CMakeStringEscape(value)) - output.write(sep) - output.write('")\n') - - -def SetVariable(output, variable_name, value): - """Sets a CMake variable.""" - output.write('set(') - output.write(variable_name) - output.write(' "') - output.write(CMakeStringEscape(value)) - output.write('")\n') - - -def SetVariableList(output, variable_name, values): - """Sets a CMake variable to a list.""" - if not values: - return SetVariable(output, variable_name, "") - if len(values) == 1: - return SetVariable(output, variable_name, values[0]) - output.write('list(APPEND ') - output.write(variable_name) - output.write('\n "') - output.write('"\n "'.join([CMakeStringEscape(value) for value in values])) - output.write('")\n') - - -def UnsetVariable(output, variable_name): - """Unsets a CMake variable.""" - output.write('unset(') - output.write(variable_name) - output.write(')\n') - - -def WriteVariable(output, variable_name, prepend=None): - if prepend: - output.write(prepend) - output.write('${') - output.write(variable_name) - output.write('}') - - -class CMakeTargetType(object): - def __init__(self, command, modifier, property_modifier): - self.command = command - self.modifier = modifier - self.property_modifier = property_modifier - - -cmake_target_type_from_gyp_target_type = { - 'executable': CMakeTargetType('add_executable', None, 'RUNTIME'), - 'static_library': CMakeTargetType('add_library', 'STATIC', 'ARCHIVE'), - 'shared_library': CMakeTargetType('add_library', 'SHARED', 'LIBRARY'), - 'loadable_module': CMakeTargetType('add_library', 'MODULE', 'LIBRARY'), - 'none': CMakeTargetType('add_custom_target', 'SOURCES', None), -} - - -def StringToCMakeTargetName(a): - """Converts the given string 'a' to a valid CMake target name. - - All invalid characters are replaced by '_'. - Invalid for cmake: ' ', '/', '(', ')', '"' - Invalid for make: ':' - Invalid for unknown reasons but cause failures: '.' - """ - return a.translate(string.maketrans(' /():."', '_______')) - - -def WriteActions(target_name, actions, extra_sources, extra_deps, - path_to_gyp, output): - """Write CMake for the 'actions' in the target. - - Args: - target_name: the name of the CMake target being generated. - actions: the Gyp 'actions' dict for this target. - extra_sources: [(, )] to append with generated source files. - extra_deps: [] to append with generated targets. - path_to_gyp: relative path from CMakeLists.txt being generated to - the Gyp file in which the target being generated is defined. - """ - for action in actions: - action_name = StringToCMakeTargetName(action['action_name']) - action_target_name = '%s__%s' % (target_name, action_name) - - inputs = action['inputs'] - inputs_name = action_target_name + '__input' - SetVariableList(output, inputs_name, - [NormjoinPathForceCMakeSource(path_to_gyp, dep) for dep in inputs]) - - outputs = action['outputs'] - cmake_outputs = [NormjoinPathForceCMakeSource(path_to_gyp, out) - for out in outputs] - outputs_name = action_target_name + '__output' - SetVariableList(output, outputs_name, cmake_outputs) - - # Build up a list of outputs. - # Collect the output dirs we'll need. - dirs = set(dir for dir in (os.path.dirname(o) for o in outputs) if dir) - - if int(action.get('process_outputs_as_sources', False)): - extra_sources.extend(zip(cmake_outputs, outputs)) - - # add_custom_command - output.write('add_custom_command(OUTPUT ') - WriteVariable(output, outputs_name) - output.write('\n') - - if len(dirs) > 0: - for directory in dirs: - output.write(' COMMAND ${CMAKE_COMMAND} -E make_directory ') - output.write(directory) - output.write('\n') - - output.write(' COMMAND ') - output.write(gyp.common.EncodePOSIXShellList(action['action'])) - output.write('\n') - - output.write(' DEPENDS ') - WriteVariable(output, inputs_name) - output.write('\n') - - output.write(' WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/') - output.write(path_to_gyp) - output.write('\n') - - output.write(' COMMENT ') - if 'message' in action: - output.write(action['message']) - else: - output.write(action_target_name) - output.write('\n') - - output.write(' VERBATIM\n') - output.write(')\n') - - # add_custom_target - output.write('add_custom_target(') - output.write(action_target_name) - output.write('\n DEPENDS ') - WriteVariable(output, outputs_name) - output.write('\n SOURCES ') - WriteVariable(output, inputs_name) - output.write('\n)\n') - - extra_deps.append(action_target_name) - - -def NormjoinRulePathForceCMakeSource(base_path, rel_path, rule_source): - if rel_path.startswith(("${RULE_INPUT_PATH}","${RULE_INPUT_DIRNAME}")): - if any([rule_source.startswith(var) for var in FULL_PATH_VARS]): - return rel_path - return NormjoinPathForceCMakeSource(base_path, rel_path) - - -def WriteRules(target_name, rules, extra_sources, extra_deps, - path_to_gyp, output): - """Write CMake for the 'rules' in the target. - - Args: - target_name: the name of the CMake target being generated. - actions: the Gyp 'actions' dict for this target. - extra_sources: [(, )] to append with generated source files. - extra_deps: [] to append with generated targets. - path_to_gyp: relative path from CMakeLists.txt being generated to - the Gyp file in which the target being generated is defined. - """ - for rule in rules: - rule_name = StringToCMakeTargetName(target_name + '__' + rule['rule_name']) - - inputs = rule.get('inputs', []) - inputs_name = rule_name + '__input' - SetVariableList(output, inputs_name, - [NormjoinPathForceCMakeSource(path_to_gyp, dep) for dep in inputs]) - outputs = rule['outputs'] - var_outputs = [] - - for count, rule_source in enumerate(rule.get('rule_sources', [])): - action_name = rule_name + '_' + str(count) - - rule_source_dirname, rule_source_basename = os.path.split(rule_source) - rule_source_root, rule_source_ext = os.path.splitext(rule_source_basename) - - SetVariable(output, 'RULE_INPUT_PATH', rule_source) - SetVariable(output, 'RULE_INPUT_DIRNAME', rule_source_dirname) - SetVariable(output, 'RULE_INPUT_NAME', rule_source_basename) - SetVariable(output, 'RULE_INPUT_ROOT', rule_source_root) - SetVariable(output, 'RULE_INPUT_EXT', rule_source_ext) - - # Build up a list of outputs. - # Collect the output dirs we'll need. - dirs = set(dir for dir in (os.path.dirname(o) for o in outputs) if dir) - - # Create variables for the output, as 'local' variable will be unset. - these_outputs = [] - for output_index, out in enumerate(outputs): - output_name = action_name + '_' + str(output_index) - SetVariable(output, output_name, - NormjoinRulePathForceCMakeSource(path_to_gyp, out, - rule_source)) - if int(rule.get('process_outputs_as_sources', False)): - extra_sources.append(('${' + output_name + '}', out)) - these_outputs.append('${' + output_name + '}') - var_outputs.append('${' + output_name + '}') - - # add_custom_command - output.write('add_custom_command(OUTPUT\n') - for out in these_outputs: - output.write(' ') - output.write(out) - output.write('\n') - - for directory in dirs: - output.write(' COMMAND ${CMAKE_COMMAND} -E make_directory ') - output.write(directory) - output.write('\n') - - output.write(' COMMAND ') - output.write(gyp.common.EncodePOSIXShellList(rule['action'])) - output.write('\n') - - output.write(' DEPENDS ') - WriteVariable(output, inputs_name) - output.write(' ') - output.write(NormjoinPath(path_to_gyp, rule_source)) - output.write('\n') - - # CMAKE_CURRENT_LIST_DIR is where the CMakeLists.txt lives. - # The cwd is the current build directory. - output.write(' WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/') - output.write(path_to_gyp) - output.write('\n') - - output.write(' COMMENT ') - if 'message' in rule: - output.write(rule['message']) - else: - output.write(action_name) - output.write('\n') - - output.write(' VERBATIM\n') - output.write(')\n') - - UnsetVariable(output, 'RULE_INPUT_PATH') - UnsetVariable(output, 'RULE_INPUT_DIRNAME') - UnsetVariable(output, 'RULE_INPUT_NAME') - UnsetVariable(output, 'RULE_INPUT_ROOT') - UnsetVariable(output, 'RULE_INPUT_EXT') - - # add_custom_target - output.write('add_custom_target(') - output.write(rule_name) - output.write(' DEPENDS\n') - for out in var_outputs: - output.write(' ') - output.write(out) - output.write('\n') - output.write('SOURCES ') - WriteVariable(output, inputs_name) - output.write('\n') - for rule_source in rule.get('rule_sources', []): - output.write(' ') - output.write(NormjoinPath(path_to_gyp, rule_source)) - output.write('\n') - output.write(')\n') - - extra_deps.append(rule_name) - - -def WriteCopies(target_name, copies, extra_deps, path_to_gyp, output): - """Write CMake for the 'copies' in the target. - - Args: - target_name: the name of the CMake target being generated. - actions: the Gyp 'actions' dict for this target. - extra_deps: [] to append with generated targets. - path_to_gyp: relative path from CMakeLists.txt being generated to - the Gyp file in which the target being generated is defined. - """ - copy_name = target_name + '__copies' - - # CMake gets upset with custom targets with OUTPUT which specify no output. - have_copies = any(copy['files'] for copy in copies) - if not have_copies: - output.write('add_custom_target(') - output.write(copy_name) - output.write(')\n') - extra_deps.append(copy_name) - return - - class Copy(object): - def __init__(self, ext, command): - self.cmake_inputs = [] - self.cmake_outputs = [] - self.gyp_inputs = [] - self.gyp_outputs = [] - self.ext = ext - self.inputs_name = None - self.outputs_name = None - self.command = command - - file_copy = Copy('', 'copy') - dir_copy = Copy('_dirs', 'copy_directory') - - for copy in copies: - files = copy['files'] - destination = copy['destination'] - for src in files: - path = os.path.normpath(src) - basename = os.path.split(path)[1] - dst = os.path.join(destination, basename) - - copy = file_copy if os.path.basename(src) else dir_copy - - copy.cmake_inputs.append(NormjoinPathForceCMakeSource(path_to_gyp, src)) - copy.cmake_outputs.append(NormjoinPathForceCMakeSource(path_to_gyp, dst)) - copy.gyp_inputs.append(src) - copy.gyp_outputs.append(dst) - - for copy in (file_copy, dir_copy): - if copy.cmake_inputs: - copy.inputs_name = copy_name + '__input' + copy.ext - SetVariableList(output, copy.inputs_name, copy.cmake_inputs) - - copy.outputs_name = copy_name + '__output' + copy.ext - SetVariableList(output, copy.outputs_name, copy.cmake_outputs) - - # add_custom_command - output.write('add_custom_command(\n') - - output.write('OUTPUT') - for copy in (file_copy, dir_copy): - if copy.outputs_name: - WriteVariable(output, copy.outputs_name, ' ') - output.write('\n') - - for copy in (file_copy, dir_copy): - for src, dst in zip(copy.gyp_inputs, copy.gyp_outputs): - # 'cmake -E copy src dst' will create the 'dst' directory if needed. - output.write('COMMAND ${CMAKE_COMMAND} -E %s ' % copy.command) - output.write(src) - output.write(' ') - output.write(dst) - output.write("\n") - - output.write('DEPENDS') - for copy in (file_copy, dir_copy): - if copy.inputs_name: - WriteVariable(output, copy.inputs_name, ' ') - output.write('\n') - - output.write('WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/') - output.write(path_to_gyp) - output.write('\n') - - output.write('COMMENT Copying for ') - output.write(target_name) - output.write('\n') - - output.write('VERBATIM\n') - output.write(')\n') - - # add_custom_target - output.write('add_custom_target(') - output.write(copy_name) - output.write('\n DEPENDS') - for copy in (file_copy, dir_copy): - if copy.outputs_name: - WriteVariable(output, copy.outputs_name, ' ') - output.write('\n SOURCES') - if file_copy.inputs_name: - WriteVariable(output, file_copy.inputs_name, ' ') - output.write('\n)\n') - - extra_deps.append(copy_name) - - -def CreateCMakeTargetBaseName(qualified_target): - """This is the name we would like the target to have.""" - _, gyp_target_name, gyp_target_toolset = ( - gyp.common.ParseQualifiedTarget(qualified_target)) - cmake_target_base_name = gyp_target_name - if gyp_target_toolset and gyp_target_toolset != 'target': - cmake_target_base_name += '_' + gyp_target_toolset - return StringToCMakeTargetName(cmake_target_base_name) - - -def CreateCMakeTargetFullName(qualified_target): - """An unambiguous name for the target.""" - gyp_file, gyp_target_name, gyp_target_toolset = ( - gyp.common.ParseQualifiedTarget(qualified_target)) - cmake_target_full_name = gyp_file + ':' + gyp_target_name - if gyp_target_toolset and gyp_target_toolset != 'target': - cmake_target_full_name += '_' + gyp_target_toolset - return StringToCMakeTargetName(cmake_target_full_name) - - -class CMakeNamer(object): - """Converts Gyp target names into CMake target names. - - CMake requires that target names be globally unique. One way to ensure - this is to fully qualify the names of the targets. Unfortunatly, this - ends up with all targets looking like "chrome_chrome_gyp_chrome" instead - of just "chrome". If this generator were only interested in building, it - would be possible to fully qualify all target names, then create - unqualified target names which depend on all qualified targets which - should have had that name. This is more or less what the 'make' generator - does with aliases. However, one goal of this generator is to create CMake - files for use with IDEs, and fully qualified names are not as user - friendly. - - Since target name collision is rare, we do the above only when required. - - Toolset variants are always qualified from the base, as this is required for - building. However, it also makes sense for an IDE, as it is possible for - defines to be different. - """ - def __init__(self, target_list): - self.cmake_target_base_names_conficting = set() - - cmake_target_base_names_seen = set() - for qualified_target in target_list: - cmake_target_base_name = CreateCMakeTargetBaseName(qualified_target) - - if cmake_target_base_name not in cmake_target_base_names_seen: - cmake_target_base_names_seen.add(cmake_target_base_name) - else: - self.cmake_target_base_names_conficting.add(cmake_target_base_name) - - def CreateCMakeTargetName(self, qualified_target): - base_name = CreateCMakeTargetBaseName(qualified_target) - if base_name in self.cmake_target_base_names_conficting: - return CreateCMakeTargetFullName(qualified_target) - return base_name - - -def WriteTarget(namer, qualified_target, target_dicts, build_dir, config_to_use, - options, generator_flags, all_qualified_targets, output): - - # The make generator does this always. - # TODO: It would be nice to be able to tell CMake all dependencies. - circular_libs = generator_flags.get('circular', True) - - if not generator_flags.get('standalone', False): - output.write('\n#') - output.write(qualified_target) - output.write('\n') - - gyp_file, _, _ = gyp.common.ParseQualifiedTarget(qualified_target) - rel_gyp_file = gyp.common.RelativePath(gyp_file, options.toplevel_dir) - rel_gyp_dir = os.path.dirname(rel_gyp_file) - - # Relative path from build dir to top dir. - build_to_top = gyp.common.InvertRelativePath(build_dir, options.toplevel_dir) - # Relative path from build dir to gyp dir. - build_to_gyp = os.path.join(build_to_top, rel_gyp_dir) - - path_from_cmakelists_to_gyp = build_to_gyp - - spec = target_dicts.get(qualified_target, {}) - config = spec.get('configurations', {}).get(config_to_use, {}) - - target_name = spec.get('target_name', '') - target_type = spec.get('type', '') - target_toolset = spec.get('toolset') - - cmake_target_type = cmake_target_type_from_gyp_target_type.get(target_type) - if cmake_target_type is None: - print ('Target %s has unknown target type %s, skipping.' % - ( target_name, target_type ) ) - return - - SetVariable(output, 'TARGET', target_name) - SetVariable(output, 'TOOLSET', target_toolset) - - cmake_target_name = namer.CreateCMakeTargetName(qualified_target) - - extra_sources = [] - extra_deps = [] - - # Actions must come first, since they can generate more OBJs for use below. - if 'actions' in spec: - WriteActions(cmake_target_name, spec['actions'], extra_sources, extra_deps, - path_from_cmakelists_to_gyp, output) - - # Rules must be early like actions. - if 'rules' in spec: - WriteRules(cmake_target_name, spec['rules'], extra_sources, extra_deps, - path_from_cmakelists_to_gyp, output) - - # Copies - if 'copies' in spec: - WriteCopies(cmake_target_name, spec['copies'], extra_deps, - path_from_cmakelists_to_gyp, output) - - # Target and sources - srcs = spec.get('sources', []) - - # Gyp separates the sheep from the goats based on file extensions. - # A full separation is done here because of flag handing (see below). - s_sources = [] - c_sources = [] - cxx_sources = [] - linkable_sources = [] - other_sources = [] - for src in srcs: - _, ext = os.path.splitext(src) - src_type = COMPILABLE_EXTENSIONS.get(ext, None) - src_norm_path = NormjoinPath(path_from_cmakelists_to_gyp, src); - - if src_type == 's': - s_sources.append(src_norm_path) - elif src_type == 'cc': - c_sources.append(src_norm_path) - elif src_type == 'cxx': - cxx_sources.append(src_norm_path) - elif Linkable(ext): - linkable_sources.append(src_norm_path) - else: - other_sources.append(src_norm_path) - - for extra_source in extra_sources: - src, real_source = extra_source - _, ext = os.path.splitext(real_source) - src_type = COMPILABLE_EXTENSIONS.get(ext, None) - - if src_type == 's': - s_sources.append(src) - elif src_type == 'cc': - c_sources.append(src) - elif src_type == 'cxx': - cxx_sources.append(src) - elif Linkable(ext): - linkable_sources.append(src) - else: - other_sources.append(src) - - s_sources_name = None - if s_sources: - s_sources_name = cmake_target_name + '__asm_srcs' - SetVariableList(output, s_sources_name, s_sources) - - c_sources_name = None - if c_sources: - c_sources_name = cmake_target_name + '__c_srcs' - SetVariableList(output, c_sources_name, c_sources) - - cxx_sources_name = None - if cxx_sources: - cxx_sources_name = cmake_target_name + '__cxx_srcs' - SetVariableList(output, cxx_sources_name, cxx_sources) - - linkable_sources_name = None - if linkable_sources: - linkable_sources_name = cmake_target_name + '__linkable_srcs' - SetVariableList(output, linkable_sources_name, linkable_sources) - - other_sources_name = None - if other_sources: - other_sources_name = cmake_target_name + '__other_srcs' - SetVariableList(output, other_sources_name, other_sources) - - # CMake gets upset when executable targets provide no sources. - # http://www.cmake.org/pipermail/cmake/2010-July/038461.html - dummy_sources_name = None - has_sources = (s_sources_name or - c_sources_name or - cxx_sources_name or - linkable_sources_name or - other_sources_name) - if target_type == 'executable' and not has_sources: - dummy_sources_name = cmake_target_name + '__dummy_srcs' - SetVariable(output, dummy_sources_name, - "${obj}.${TOOLSET}/${TARGET}/genc/dummy.c") - output.write('if(NOT EXISTS "') - WriteVariable(output, dummy_sources_name) - output.write('")\n') - output.write(' file(WRITE "') - WriteVariable(output, dummy_sources_name) - output.write('" "")\n') - output.write("endif()\n") - - - # CMake is opposed to setting linker directories and considers the practice - # of setting linker directories dangerous. Instead, it favors the use of - # find_library and passing absolute paths to target_link_libraries. - # However, CMake does provide the command link_directories, which adds - # link directories to targets defined after it is called. - # As a result, link_directories must come before the target definition. - # CMake unfortunately has no means of removing entries from LINK_DIRECTORIES. - library_dirs = config.get('library_dirs') - if library_dirs is not None: - output.write('link_directories(') - for library_dir in library_dirs: - output.write(' ') - output.write(NormjoinPath(path_from_cmakelists_to_gyp, library_dir)) - output.write('\n') - output.write(')\n') - - output.write(cmake_target_type.command) - output.write('(') - output.write(cmake_target_name) - - if cmake_target_type.modifier is not None: - output.write(' ') - output.write(cmake_target_type.modifier) - - if s_sources_name: - WriteVariable(output, s_sources_name, ' ') - if c_sources_name: - WriteVariable(output, c_sources_name, ' ') - if cxx_sources_name: - WriteVariable(output, cxx_sources_name, ' ') - if linkable_sources_name: - WriteVariable(output, linkable_sources_name, ' ') - if other_sources_name: - WriteVariable(output, other_sources_name, ' ') - if dummy_sources_name: - WriteVariable(output, dummy_sources_name, ' ') - - output.write(')\n') - - # Let CMake know if the 'all' target should depend on this target. - exclude_from_all = ('TRUE' if qualified_target not in all_qualified_targets - else 'FALSE') - SetTargetProperty(output, cmake_target_name, - 'EXCLUDE_FROM_ALL', exclude_from_all) - for extra_target_name in extra_deps: - SetTargetProperty(output, extra_target_name, - 'EXCLUDE_FROM_ALL', exclude_from_all) - - # Output name and location. - if target_type != 'none': - # Link as 'C' if there are no other files - if not c_sources and not cxx_sources: - SetTargetProperty(output, cmake_target_name, 'LINKER_LANGUAGE', ['C']) - - # Mark uncompiled sources as uncompiled. - if other_sources_name: - output.write('set_source_files_properties(') - WriteVariable(output, other_sources_name, '') - output.write(' PROPERTIES HEADER_FILE_ONLY "TRUE")\n') - - # Mark object sources as linkable. - if linkable_sources_name: - output.write('set_source_files_properties(') - WriteVariable(output, other_sources_name, '') - output.write(' PROPERTIES EXTERNAL_OBJECT "TRUE")\n') - - # Output directory - target_output_directory = spec.get('product_dir') - if target_output_directory is None: - if target_type in ('executable', 'loadable_module'): - target_output_directory = generator_default_variables['PRODUCT_DIR'] - elif target_type == 'shared_library': - target_output_directory = '${builddir}/lib.${TOOLSET}' - elif spec.get('standalone_static_library', False): - target_output_directory = generator_default_variables['PRODUCT_DIR'] - else: - base_path = gyp.common.RelativePath(os.path.dirname(gyp_file), - options.toplevel_dir) - target_output_directory = '${obj}.${TOOLSET}' - target_output_directory = ( - os.path.join(target_output_directory, base_path)) - - cmake_target_output_directory = NormjoinPathForceCMakeSource( - path_from_cmakelists_to_gyp, - target_output_directory) - SetTargetProperty(output, - cmake_target_name, - cmake_target_type.property_modifier + '_OUTPUT_DIRECTORY', - cmake_target_output_directory) - - # Output name - default_product_prefix = '' - default_product_name = target_name - default_product_ext = '' - if target_type == 'static_library': - static_library_prefix = generator_default_variables['STATIC_LIB_PREFIX'] - default_product_name = RemovePrefix(default_product_name, - static_library_prefix) - default_product_prefix = static_library_prefix - default_product_ext = generator_default_variables['STATIC_LIB_SUFFIX'] - - elif target_type in ('loadable_module', 'shared_library'): - shared_library_prefix = generator_default_variables['SHARED_LIB_PREFIX'] - default_product_name = RemovePrefix(default_product_name, - shared_library_prefix) - default_product_prefix = shared_library_prefix - default_product_ext = generator_default_variables['SHARED_LIB_SUFFIX'] - - elif target_type != 'executable': - print ('ERROR: What output file should be generated?', - 'type', target_type, 'target', target_name) - - product_prefix = spec.get('product_prefix', default_product_prefix) - product_name = spec.get('product_name', default_product_name) - product_ext = spec.get('product_extension') - if product_ext: - product_ext = '.' + product_ext - else: - product_ext = default_product_ext - - SetTargetProperty(output, cmake_target_name, 'PREFIX', product_prefix) - SetTargetProperty(output, cmake_target_name, - cmake_target_type.property_modifier + '_OUTPUT_NAME', - product_name) - SetTargetProperty(output, cmake_target_name, 'SUFFIX', product_ext) - - # Make the output of this target referenceable as a source. - cmake_target_output_basename = product_prefix + product_name + product_ext - cmake_target_output = os.path.join(cmake_target_output_directory, - cmake_target_output_basename) - SetFileProperty(output, cmake_target_output, 'GENERATED', ['TRUE'], '') - - # Includes - includes = config.get('include_dirs') - if includes: - # This (target include directories) is what requires CMake 2.8.8 - includes_name = cmake_target_name + '__include_dirs' - SetVariableList(output, includes_name, - [NormjoinPathForceCMakeSource(path_from_cmakelists_to_gyp, include) - for include in includes]) - output.write('set_property(TARGET ') - output.write(cmake_target_name) - output.write(' APPEND PROPERTY INCLUDE_DIRECTORIES ') - WriteVariable(output, includes_name, '') - output.write(')\n') - - # Defines - defines = config.get('defines') - if defines is not None: - SetTargetProperty(output, - cmake_target_name, - 'COMPILE_DEFINITIONS', - defines, - ';') - - # Compile Flags - http://www.cmake.org/Bug/view.php?id=6493 - # CMake currently does not have target C and CXX flags. - # So, instead of doing... - - # cflags_c = config.get('cflags_c') - # if cflags_c is not None: - # SetTargetProperty(output, cmake_target_name, - # 'C_COMPILE_FLAGS', cflags_c, ' ') - - # cflags_cc = config.get('cflags_cc') - # if cflags_cc is not None: - # SetTargetProperty(output, cmake_target_name, - # 'CXX_COMPILE_FLAGS', cflags_cc, ' ') - - # Instead we must... - cflags = config.get('cflags', []) - cflags_c = config.get('cflags_c', []) - cflags_cxx = config.get('cflags_cc', []) - if (not cflags_c or not c_sources) and (not cflags_cxx or not cxx_sources): - SetTargetProperty(output, cmake_target_name, 'COMPILE_FLAGS', cflags, ' ') - - elif c_sources and not (s_sources or cxx_sources): - flags = [] - flags.extend(cflags) - flags.extend(cflags_c) - SetTargetProperty(output, cmake_target_name, 'COMPILE_FLAGS', flags, ' ') - - elif cxx_sources and not (s_sources or c_sources): - flags = [] - flags.extend(cflags) - flags.extend(cflags_cxx) - SetTargetProperty(output, cmake_target_name, 'COMPILE_FLAGS', flags, ' ') - - else: - # TODO: This is broken, one cannot generally set properties on files, - # as other targets may require different properties on the same files. - if s_sources and cflags: - SetFilesProperty(output, s_sources_name, 'COMPILE_FLAGS', cflags, ' ') - - if c_sources and (cflags or cflags_c): - flags = [] - flags.extend(cflags) - flags.extend(cflags_c) - SetFilesProperty(output, c_sources_name, 'COMPILE_FLAGS', flags, ' ') - - if cxx_sources and (cflags or cflags_cxx): - flags = [] - flags.extend(cflags) - flags.extend(cflags_cxx) - SetFilesProperty(output, cxx_sources_name, 'COMPILE_FLAGS', flags, ' ') - - # Linker flags - ldflags = config.get('ldflags') - if ldflags is not None: - SetTargetProperty(output, cmake_target_name, 'LINK_FLAGS', ldflags, ' ') - - # Note on Dependencies and Libraries: - # CMake wants to handle link order, resolving the link line up front. - # Gyp does not retain or enforce specifying enough information to do so. - # So do as other gyp generators and use --start-group and --end-group. - # Give CMake as little information as possible so that it doesn't mess it up. - - # Dependencies - rawDeps = spec.get('dependencies', []) - - static_deps = [] - shared_deps = [] - other_deps = [] - for rawDep in rawDeps: - dep_cmake_name = namer.CreateCMakeTargetName(rawDep) - dep_spec = target_dicts.get(rawDep, {}) - dep_target_type = dep_spec.get('type', None) - - if dep_target_type == 'static_library': - static_deps.append(dep_cmake_name) - elif dep_target_type == 'shared_library': - shared_deps.append(dep_cmake_name) - else: - other_deps.append(dep_cmake_name) - - # ensure all external dependencies are complete before internal dependencies - # extra_deps currently only depend on their own deps, so otherwise run early - if static_deps or shared_deps or other_deps: - for extra_dep in extra_deps: - output.write('add_dependencies(') - output.write(extra_dep) - output.write('\n') - for deps in (static_deps, shared_deps, other_deps): - for dep in gyp.common.uniquer(deps): - output.write(' ') - output.write(dep) - output.write('\n') - output.write(')\n') - - linkable = target_type in ('executable', 'loadable_module', 'shared_library') - other_deps.extend(extra_deps) - if other_deps or (not linkable and (static_deps or shared_deps)): - output.write('add_dependencies(') - output.write(cmake_target_name) - output.write('\n') - for dep in gyp.common.uniquer(other_deps): - output.write(' ') - output.write(dep) - output.write('\n') - if not linkable: - for deps in (static_deps, shared_deps): - for lib_dep in gyp.common.uniquer(deps): - output.write(' ') - output.write(lib_dep) - output.write('\n') - output.write(')\n') - - # Libraries - if linkable: - external_libs = [lib for lib in spec.get('libraries', []) if len(lib) > 0] - if external_libs or static_deps or shared_deps: - output.write('target_link_libraries(') - output.write(cmake_target_name) - output.write('\n') - if static_deps: - write_group = circular_libs and len(static_deps) > 1 - if write_group: - output.write('-Wl,--start-group\n') - for dep in gyp.common.uniquer(static_deps): - output.write(' ') - output.write(dep) - output.write('\n') - if write_group: - output.write('-Wl,--end-group\n') - if shared_deps: - for dep in gyp.common.uniquer(shared_deps): - output.write(' ') - output.write(dep) - output.write('\n') - if external_libs: - for lib in gyp.common.uniquer(external_libs): - output.write(' ') - output.write(lib) - output.write('\n') - - output.write(')\n') - - UnsetVariable(output, 'TOOLSET') - UnsetVariable(output, 'TARGET') - - -def GenerateOutputForConfig(target_list, target_dicts, data, - params, config_to_use): - options = params['options'] - generator_flags = params['generator_flags'] - - # generator_dir: relative path from pwd to where make puts build files. - # Makes migrating from make to cmake easier, cmake doesn't put anything here. - # Each Gyp configuration creates a different CMakeLists.txt file - # to avoid incompatibilities between Gyp and CMake configurations. - generator_dir = os.path.relpath(options.generator_output or '.') - - # output_dir: relative path from generator_dir to the build directory. - output_dir = generator_flags.get('output_dir', 'out') - - # build_dir: relative path from source root to our output files. - # e.g. "out/Debug" - build_dir = os.path.normpath(os.path.join(generator_dir, - output_dir, - config_to_use)) - - toplevel_build = os.path.join(options.toplevel_dir, build_dir) - - output_file = os.path.join(toplevel_build, 'CMakeLists.txt') - gyp.common.EnsureDirExists(output_file) - - output = open(output_file, 'w') - output.write('cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)\n') - output.write('cmake_policy(VERSION 2.8.8)\n') - - gyp_file, project_target, _ = gyp.common.ParseQualifiedTarget(target_list[-1]) - output.write('project(') - output.write(project_target) - output.write(')\n') - - SetVariable(output, 'configuration', config_to_use) - - ar = None - cc = None - cxx = None - - make_global_settings = data[gyp_file].get('make_global_settings', []) - build_to_top = gyp.common.InvertRelativePath(build_dir, - options.toplevel_dir) - for key, value in make_global_settings: - if key == 'AR': - ar = os.path.join(build_to_top, value) - if key == 'CC': - cc = os.path.join(build_to_top, value) - if key == 'CXX': - cxx = os.path.join(build_to_top, value) - - ar = gyp.common.GetEnvironFallback(['AR_target', 'AR'], ar) - cc = gyp.common.GetEnvironFallback(['CC_target', 'CC'], cc) - cxx = gyp.common.GetEnvironFallback(['CXX_target', 'CXX'], cxx) - - if ar: - SetVariable(output, 'CMAKE_AR', ar) - if cc: - SetVariable(output, 'CMAKE_C_COMPILER', cc) - if cxx: - SetVariable(output, 'CMAKE_CXX_COMPILER', cxx) - - # The following appears to be as-yet undocumented. - # http://public.kitware.com/Bug/view.php?id=8392 - output.write('enable_language(ASM)\n') - # ASM-ATT does not support .S files. - # output.write('enable_language(ASM-ATT)\n') - - if cc: - SetVariable(output, 'CMAKE_ASM_COMPILER', cc) - - SetVariable(output, 'builddir', '${CMAKE_CURRENT_BINARY_DIR}') - SetVariable(output, 'obj', '${builddir}/obj') - output.write('\n') - - # TODO: Undocumented/unsupported (the CMake Java generator depends on it). - # CMake by default names the object resulting from foo.c to be foo.c.o. - # Gyp traditionally names the object resulting from foo.c foo.o. - # This should be irrelevant, but some targets extract .o files from .a - # and depend on the name of the extracted .o files. - output.write('set(CMAKE_C_OUTPUT_EXTENSION_REPLACE 1)\n') - output.write('set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE 1)\n') - output.write('\n') - - # Force ninja to use rsp files. Otherwise link and ar lines can get too long, - # resulting in 'Argument list too long' errors. - output.write('set(CMAKE_NINJA_FORCE_RESPONSE_FILE 1)\n') - output.write('\n') - - namer = CMakeNamer(target_list) - - # The list of targets upon which the 'all' target should depend. - # CMake has it's own implicit 'all' target, one is not created explicitly. - all_qualified_targets = set() - for build_file in params['build_files']: - for qualified_target in gyp.common.AllTargets(target_list, - target_dicts, - os.path.normpath(build_file)): - all_qualified_targets.add(qualified_target) - - for qualified_target in target_list: - WriteTarget(namer, qualified_target, target_dicts, build_dir, config_to_use, - options, generator_flags, all_qualified_targets, output) - - output.close() - - -def PerformBuild(data, configurations, params): - options = params['options'] - generator_flags = params['generator_flags'] - - # generator_dir: relative path from pwd to where make puts build files. - # Makes migrating from make to cmake easier, cmake doesn't put anything here. - generator_dir = os.path.relpath(options.generator_output or '.') - - # output_dir: relative path from generator_dir to the build directory. - output_dir = generator_flags.get('output_dir', 'out') - - for config_name in configurations: - # build_dir: relative path from source root to our output files. - # e.g. "out/Debug" - build_dir = os.path.normpath(os.path.join(generator_dir, - output_dir, - config_name)) - arguments = ['cmake', '-G', 'Ninja'] - print 'Generating [%s]: %s' % (config_name, arguments) - subprocess.check_call(arguments, cwd=build_dir) - - arguments = ['ninja', '-C', build_dir] - print 'Building [%s]: %s' % (config_name, arguments) - subprocess.check_call(arguments) - - -def CallGenerateOutputForConfig(arglist): - # Ignore the interrupt signal so that the parent process catches it and - # kills all multiprocessing children. - signal.signal(signal.SIGINT, signal.SIG_IGN) - - target_list, target_dicts, data, params, config_name = arglist - GenerateOutputForConfig(target_list, target_dicts, data, params, config_name) - - -def GenerateOutput(target_list, target_dicts, data, params): - user_config = params.get('generator_flags', {}).get('config', None) - if user_config: - GenerateOutputForConfig(target_list, target_dicts, data, - params, user_config) - else: - config_names = target_dicts[target_list[0]]['configurations'].keys() - if params['parallel']: - try: - pool = multiprocessing.Pool(len(config_names)) - arglists = [] - for config_name in config_names: - arglists.append((target_list, target_dicts, data, - params, config_name)) - pool.map(CallGenerateOutputForConfig, arglists) - except KeyboardInterrupt, e: - pool.terminate() - raise e - else: - for config_name in config_names: - GenerateOutputForConfig(target_list, target_dicts, data, - params, config_name) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py deleted file mode 100644 index 160eafe2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import collections -import os -import gyp -import gyp.common -import gyp.msvs_emulation -import json -import sys - -generator_supports_multiple_toolsets = True - -generator_wants_static_library_dependencies_adjusted = False - -generator_filelist_paths = { -} - -generator_default_variables = { -} -for dirname in ['INTERMEDIATE_DIR', 'SHARED_INTERMEDIATE_DIR', 'PRODUCT_DIR', - 'LIB_DIR', 'SHARED_LIB_DIR']: - # Some gyp steps fail if these are empty(!). - generator_default_variables[dirname] = 'dir' -for unused in ['RULE_INPUT_PATH', 'RULE_INPUT_ROOT', 'RULE_INPUT_NAME', - 'RULE_INPUT_DIRNAME', 'RULE_INPUT_EXT', - 'EXECUTABLE_PREFIX', 'EXECUTABLE_SUFFIX', - 'STATIC_LIB_PREFIX', 'STATIC_LIB_SUFFIX', - 'SHARED_LIB_PREFIX', 'SHARED_LIB_SUFFIX', - 'CONFIGURATION_NAME']: - generator_default_variables[unused] = '' - - -def CalculateVariables(default_variables, params): - generator_flags = params.get('generator_flags', {}) - for key, val in generator_flags.items(): - default_variables.setdefault(key, val) - default_variables.setdefault('OS', gyp.common.GetFlavor(params)) - - flavor = gyp.common.GetFlavor(params) - if flavor =='win': - # Copy additional generator configuration data from VS, which is shared - # by the Windows Ninja generator. - import gyp.generator.msvs as msvs_generator - generator_additional_non_configuration_keys = getattr(msvs_generator, - 'generator_additional_non_configuration_keys', []) - generator_additional_path_sections = getattr(msvs_generator, - 'generator_additional_path_sections', []) - - gyp.msvs_emulation.CalculateCommonVariables(default_variables, params) - - -def CalculateGeneratorInputInfo(params): - """Calculate the generator specific info that gets fed to input (called by - gyp).""" - generator_flags = params.get('generator_flags', {}) - if generator_flags.get('adjust_static_libraries', False): - global generator_wants_static_library_dependencies_adjusted - generator_wants_static_library_dependencies_adjusted = True - - toplevel = params['options'].toplevel_dir - generator_dir = os.path.relpath(params['options'].generator_output or '.') - # output_dir: relative path from generator_dir to the build directory. - output_dir = generator_flags.get('output_dir', 'out') - qualified_out_dir = os.path.normpath(os.path.join( - toplevel, generator_dir, output_dir, 'gypfiles')) - global generator_filelist_paths - generator_filelist_paths = { - 'toplevel': toplevel, - 'qualified_out_dir': qualified_out_dir, - } - -def GenerateOutput(target_list, target_dicts, data, params): - # Map of target -> list of targets it depends on. - edges = {} - - # Queue of targets to visit. - targets_to_visit = target_list[:] - - while len(targets_to_visit) > 0: - target = targets_to_visit.pop() - if target in edges: - continue - edges[target] = [] - - for dep in target_dicts[target].get('dependencies', []): - edges[target].append(dep) - targets_to_visit.append(dep) - - try: - filepath = params['generator_flags']['output_dir'] - except KeyError: - filepath = '.' - filename = os.path.join(filepath, 'dump.json') - f = open(filename, 'w') - json.dump(edges, f) - f.close() - print 'Wrote json to %s.' % filename diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py deleted file mode 100644 index 3544347b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +++ /dev/null @@ -1,425 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""GYP backend that generates Eclipse CDT settings files. - -This backend DOES NOT generate Eclipse CDT projects. Instead, it generates XML -files that can be imported into an Eclipse CDT project. The XML file contains a -list of include paths and symbols (i.e. defines). - -Because a full .cproject definition is not created by this generator, it's not -possible to properly define the include dirs and symbols for each file -individually. Instead, one set of includes/symbols is generated for the entire -project. This works fairly well (and is a vast improvement in general), but may -still result in a few indexer issues here and there. - -This generator has no automated tests, so expect it to be broken. -""" - -from xml.sax.saxutils import escape -import os.path -import subprocess -import gyp -import gyp.common -import gyp.msvs_emulation -import shlex -import xml.etree.cElementTree as ET - -generator_wants_static_library_dependencies_adjusted = False - -generator_default_variables = { -} - -for dirname in ['INTERMEDIATE_DIR', 'PRODUCT_DIR', 'LIB_DIR', 'SHARED_LIB_DIR']: - # Some gyp steps fail if these are empty(!), so we convert them to variables - generator_default_variables[dirname] = '$' + dirname - -for unused in ['RULE_INPUT_PATH', 'RULE_INPUT_ROOT', 'RULE_INPUT_NAME', - 'RULE_INPUT_DIRNAME', 'RULE_INPUT_EXT', - 'EXECUTABLE_PREFIX', 'EXECUTABLE_SUFFIX', - 'STATIC_LIB_PREFIX', 'STATIC_LIB_SUFFIX', - 'SHARED_LIB_PREFIX', 'SHARED_LIB_SUFFIX', - 'CONFIGURATION_NAME']: - generator_default_variables[unused] = '' - -# Include dirs will occasionally use the SHARED_INTERMEDIATE_DIR variable as -# part of the path when dealing with generated headers. This value will be -# replaced dynamically for each configuration. -generator_default_variables['SHARED_INTERMEDIATE_DIR'] = \ - '$SHARED_INTERMEDIATE_DIR' - - -def CalculateVariables(default_variables, params): - generator_flags = params.get('generator_flags', {}) - for key, val in generator_flags.items(): - default_variables.setdefault(key, val) - flavor = gyp.common.GetFlavor(params) - default_variables.setdefault('OS', flavor) - if flavor == 'win': - # Copy additional generator configuration data from VS, which is shared - # by the Eclipse generator. - import gyp.generator.msvs as msvs_generator - generator_additional_non_configuration_keys = getattr(msvs_generator, - 'generator_additional_non_configuration_keys', []) - generator_additional_path_sections = getattr(msvs_generator, - 'generator_additional_path_sections', []) - - gyp.msvs_emulation.CalculateCommonVariables(default_variables, params) - - -def CalculateGeneratorInputInfo(params): - """Calculate the generator specific info that gets fed to input (called by - gyp).""" - generator_flags = params.get('generator_flags', {}) - if generator_flags.get('adjust_static_libraries', False): - global generator_wants_static_library_dependencies_adjusted - generator_wants_static_library_dependencies_adjusted = True - - -def GetAllIncludeDirectories(target_list, target_dicts, - shared_intermediate_dirs, config_name, params, - compiler_path): - """Calculate the set of include directories to be used. - - Returns: - A list including all the include_dir's specified for every target followed - by any include directories that were added as cflag compiler options. - """ - - gyp_includes_set = set() - compiler_includes_list = [] - - # Find compiler's default include dirs. - if compiler_path: - command = shlex.split(compiler_path) - command.extend(['-E', '-xc++', '-v', '-']) - proc = subprocess.Popen(args=command, stdin=subprocess.PIPE, - stdout=subprocess.PIPE, stderr=subprocess.PIPE) - output = proc.communicate()[1] - # Extract the list of include dirs from the output, which has this format: - # ... - # #include "..." search starts here: - # #include <...> search starts here: - # /usr/include/c++/4.6 - # /usr/local/include - # End of search list. - # ... - in_include_list = False - for line in output.splitlines(): - if line.startswith('#include'): - in_include_list = True - continue - if line.startswith('End of search list.'): - break - if in_include_list: - include_dir = line.strip() - if include_dir not in compiler_includes_list: - compiler_includes_list.append(include_dir) - - flavor = gyp.common.GetFlavor(params) - if flavor == 'win': - generator_flags = params.get('generator_flags', {}) - for target_name in target_list: - target = target_dicts[target_name] - if config_name in target['configurations']: - config = target['configurations'][config_name] - - # Look for any include dirs that were explicitly added via cflags. This - # may be done in gyp files to force certain includes to come at the end. - # TODO(jgreenwald): Change the gyp files to not abuse cflags for this, and - # remove this. - if flavor == 'win': - msvs_settings = gyp.msvs_emulation.MsvsSettings(target, generator_flags) - cflags = msvs_settings.GetCflags(config_name) - else: - cflags = config['cflags'] - for cflag in cflags: - if cflag.startswith('-I'): - include_dir = cflag[2:] - if include_dir not in compiler_includes_list: - compiler_includes_list.append(include_dir) - - # Find standard gyp include dirs. - if config.has_key('include_dirs'): - include_dirs = config['include_dirs'] - for shared_intermediate_dir in shared_intermediate_dirs: - for include_dir in include_dirs: - include_dir = include_dir.replace('$SHARED_INTERMEDIATE_DIR', - shared_intermediate_dir) - if not os.path.isabs(include_dir): - base_dir = os.path.dirname(target_name) - - include_dir = base_dir + '/' + include_dir - include_dir = os.path.abspath(include_dir) - - gyp_includes_set.add(include_dir) - - # Generate a list that has all the include dirs. - all_includes_list = list(gyp_includes_set) - all_includes_list.sort() - for compiler_include in compiler_includes_list: - if not compiler_include in gyp_includes_set: - all_includes_list.append(compiler_include) - - # All done. - return all_includes_list - - -def GetCompilerPath(target_list, data, options): - """Determine a command that can be used to invoke the compiler. - - Returns: - If this is a gyp project that has explicit make settings, try to determine - the compiler from that. Otherwise, see if a compiler was specified via the - CC_target environment variable. - """ - # First, see if the compiler is configured in make's settings. - build_file, _, _ = gyp.common.ParseQualifiedTarget(target_list[0]) - make_global_settings_dict = data[build_file].get('make_global_settings', {}) - for key, value in make_global_settings_dict: - if key in ['CC', 'CXX']: - return os.path.join(options.toplevel_dir, value) - - # Check to see if the compiler was specified as an environment variable. - for key in ['CC_target', 'CC', 'CXX']: - compiler = os.environ.get(key) - if compiler: - return compiler - - return 'gcc' - - -def GetAllDefines(target_list, target_dicts, data, config_name, params, - compiler_path): - """Calculate the defines for a project. - - Returns: - A dict that includes explict defines declared in gyp files along with all of - the default defines that the compiler uses. - """ - - # Get defines declared in the gyp files. - all_defines = {} - flavor = gyp.common.GetFlavor(params) - if flavor == 'win': - generator_flags = params.get('generator_flags', {}) - for target_name in target_list: - target = target_dicts[target_name] - - if flavor == 'win': - msvs_settings = gyp.msvs_emulation.MsvsSettings(target, generator_flags) - extra_defines = msvs_settings.GetComputedDefines(config_name) - else: - extra_defines = [] - if config_name in target['configurations']: - config = target['configurations'][config_name] - target_defines = config['defines'] - else: - target_defines = [] - for define in target_defines + extra_defines: - split_define = define.split('=', 1) - if len(split_define) == 1: - split_define.append('1') - if split_define[0].strip() in all_defines: - # Already defined - continue - all_defines[split_define[0].strip()] = split_define[1].strip() - # Get default compiler defines (if possible). - if flavor == 'win': - return all_defines # Default defines already processed in the loop above. - if compiler_path: - command = shlex.split(compiler_path) - command.extend(['-E', '-dM', '-']) - cpp_proc = subprocess.Popen(args=command, cwd='.', - stdin=subprocess.PIPE, stdout=subprocess.PIPE) - cpp_output = cpp_proc.communicate()[0] - cpp_lines = cpp_output.split('\n') - for cpp_line in cpp_lines: - if not cpp_line.strip(): - continue - cpp_line_parts = cpp_line.split(' ', 2) - key = cpp_line_parts[1] - if len(cpp_line_parts) >= 3: - val = cpp_line_parts[2] - else: - val = '1' - all_defines[key] = val - - return all_defines - - -def WriteIncludePaths(out, eclipse_langs, include_dirs): - """Write the includes section of a CDT settings export file.""" - - out.write('
            \n') - out.write(' \n') - for lang in eclipse_langs: - out.write(' \n' % lang) - for include_dir in include_dirs: - out.write(' %s\n' % - include_dir) - out.write(' \n') - out.write('
            \n') - - -def WriteMacros(out, eclipse_langs, defines): - """Write the macros section of a CDT settings export file.""" - - out.write('
            \n') - out.write(' \n') - for lang in eclipse_langs: - out.write(' \n' % lang) - for key in sorted(defines.iterkeys()): - out.write(' %s%s\n' % - (escape(key), escape(defines[key]))) - out.write(' \n') - out.write('
            \n') - - -def GenerateOutputForConfig(target_list, target_dicts, data, params, - config_name): - options = params['options'] - generator_flags = params.get('generator_flags', {}) - - # build_dir: relative path from source root to our output files. - # e.g. "out/Debug" - build_dir = os.path.join(generator_flags.get('output_dir', 'out'), - config_name) - - toplevel_build = os.path.join(options.toplevel_dir, build_dir) - # Ninja uses out/Debug/gen while make uses out/Debug/obj/gen as the - # SHARED_INTERMEDIATE_DIR. Include both possible locations. - shared_intermediate_dirs = [os.path.join(toplevel_build, 'obj', 'gen'), - os.path.join(toplevel_build, 'gen')] - - GenerateCdtSettingsFile(target_list, - target_dicts, - data, - params, - config_name, - os.path.join(toplevel_build, - 'eclipse-cdt-settings.xml'), - options, - shared_intermediate_dirs) - GenerateClasspathFile(target_list, - target_dicts, - options.toplevel_dir, - toplevel_build, - os.path.join(toplevel_build, - 'eclipse-classpath.xml')) - - -def GenerateCdtSettingsFile(target_list, target_dicts, data, params, - config_name, out_name, options, - shared_intermediate_dirs): - gyp.common.EnsureDirExists(out_name) - with open(out_name, 'w') as out: - out.write('\n') - out.write('\n') - - eclipse_langs = ['C++ Source File', 'C Source File', 'Assembly Source File', - 'GNU C++', 'GNU C', 'Assembly'] - compiler_path = GetCompilerPath(target_list, data, options) - include_dirs = GetAllIncludeDirectories(target_list, target_dicts, - shared_intermediate_dirs, - config_name, params, compiler_path) - WriteIncludePaths(out, eclipse_langs, include_dirs) - defines = GetAllDefines(target_list, target_dicts, data, config_name, - params, compiler_path) - WriteMacros(out, eclipse_langs, defines) - - out.write('\n') - - -def GenerateClasspathFile(target_list, target_dicts, toplevel_dir, - toplevel_build, out_name): - '''Generates a classpath file suitable for symbol navigation and code - completion of Java code (such as in Android projects) by finding all - .java and .jar files used as action inputs.''' - gyp.common.EnsureDirExists(out_name) - result = ET.Element('classpath') - - def AddElements(kind, paths): - # First, we need to normalize the paths so they are all relative to the - # toplevel dir. - rel_paths = set() - for path in paths: - if os.path.isabs(path): - rel_paths.add(os.path.relpath(path, toplevel_dir)) - else: - rel_paths.add(path) - - for path in sorted(rel_paths): - entry_element = ET.SubElement(result, 'classpathentry') - entry_element.set('kind', kind) - entry_element.set('path', path) - - AddElements('lib', GetJavaJars(target_list, target_dicts, toplevel_dir)) - AddElements('src', GetJavaSourceDirs(target_list, target_dicts, toplevel_dir)) - # Include the standard JRE container and a dummy out folder - AddElements('con', ['org.eclipse.jdt.launching.JRE_CONTAINER']) - # Include a dummy out folder so that Eclipse doesn't use the default /bin - # folder in the root of the project. - AddElements('output', [os.path.join(toplevel_build, '.eclipse-java-build')]) - - ET.ElementTree(result).write(out_name) - - -def GetJavaJars(target_list, target_dicts, toplevel_dir): - '''Generates a sequence of all .jars used as inputs.''' - for target_name in target_list: - target = target_dicts[target_name] - for action in target.get('actions', []): - for input_ in action['inputs']: - if os.path.splitext(input_)[1] == '.jar' and not input_.startswith('$'): - if os.path.isabs(input_): - yield input_ - else: - yield os.path.join(os.path.dirname(target_name), input_) - - -def GetJavaSourceDirs(target_list, target_dicts, toplevel_dir): - '''Generates a sequence of all likely java package root directories.''' - for target_name in target_list: - target = target_dicts[target_name] - for action in target.get('actions', []): - for input_ in action['inputs']: - if (os.path.splitext(input_)[1] == '.java' and - not input_.startswith('$')): - dir_ = os.path.dirname(os.path.join(os.path.dirname(target_name), - input_)) - # If there is a parent 'src' or 'java' folder, navigate up to it - - # these are canonical package root names in Chromium. This will - # break if 'src' or 'java' exists in the package structure. This - # could be further improved by inspecting the java file for the - # package name if this proves to be too fragile in practice. - parent_search = dir_ - while os.path.basename(parent_search) not in ['src', 'java']: - parent_search, _ = os.path.split(parent_search) - if not parent_search or parent_search == toplevel_dir: - # Didn't find a known root, just return the original path - yield dir_ - break - else: - yield parent_search - - -def GenerateOutput(target_list, target_dicts, data, params): - """Generate an XML settings file that can be imported into a CDT project.""" - - if params['options'].generator_output: - raise NotImplementedError("--generator_output not implemented for eclipse") - - user_config = params.get('generator_flags', {}).get('config', None) - if user_config: - GenerateOutputForConfig(target_list, target_dicts, data, params, - user_config) - else: - config_names = target_dicts[target_list[0]]['configurations'].keys() - for config_name in config_names: - GenerateOutputForConfig(target_list, target_dicts, data, params, - config_name) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py deleted file mode 100644 index 3efdb996..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright (c) 2011 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""gypd output module - -This module produces gyp input as its output. Output files are given the -.gypd extension to avoid overwriting the .gyp files that they are generated -from. Internal references to .gyp files (such as those found in -"dependencies" sections) are not adjusted to point to .gypd files instead; -unlike other paths, which are relative to the .gyp or .gypd file, such paths -are relative to the directory from which gyp was run to create the .gypd file. - -This generator module is intended to be a sample and a debugging aid, hence -the "d" for "debug" in .gypd. It is useful to inspect the results of the -various merges, expansions, and conditional evaluations performed by gyp -and to see a representation of what would be fed to a generator module. - -It's not advisable to rename .gypd files produced by this module to .gyp, -because they will have all merges, expansions, and evaluations already -performed and the relevant constructs not present in the output; paths to -dependencies may be wrong; and various sections that do not belong in .gyp -files such as such as "included_files" and "*_excluded" will be present. -Output will also be stripped of comments. This is not intended to be a -general-purpose gyp pretty-printer; for that, you probably just want to -run "pprint.pprint(eval(open('source.gyp').read()))", which will still strip -comments but won't do all of the other things done to this module's output. - -The specific formatting of the output generated by this module is subject -to change. -""" - - -import gyp.common -import errno -import os -import pprint - - -# These variables should just be spit back out as variable references. -_generator_identity_variables = [ - 'CONFIGURATION_NAME', - 'EXECUTABLE_PREFIX', - 'EXECUTABLE_SUFFIX', - 'INTERMEDIATE_DIR', - 'LIB_DIR', - 'PRODUCT_DIR', - 'RULE_INPUT_ROOT', - 'RULE_INPUT_DIRNAME', - 'RULE_INPUT_EXT', - 'RULE_INPUT_NAME', - 'RULE_INPUT_PATH', - 'SHARED_INTERMEDIATE_DIR', - 'SHARED_LIB_DIR', - 'SHARED_LIB_PREFIX', - 'SHARED_LIB_SUFFIX', - 'STATIC_LIB_PREFIX', - 'STATIC_LIB_SUFFIX', -] - -# gypd doesn't define a default value for OS like many other generator -# modules. Specify "-D OS=whatever" on the command line to provide a value. -generator_default_variables = { -} - -# gypd supports multiple toolsets -generator_supports_multiple_toolsets = True - -# TODO(mark): This always uses <, which isn't right. The input module should -# notify the generator to tell it which phase it is operating in, and this -# module should use < for the early phase and then switch to > for the late -# phase. Bonus points for carrying @ back into the output too. -for v in _generator_identity_variables: - generator_default_variables[v] = '<(%s)' % v - - -def GenerateOutput(target_list, target_dicts, data, params): - output_files = {} - for qualified_target in target_list: - [input_file, target] = \ - gyp.common.ParseQualifiedTarget(qualified_target)[0:2] - - if input_file[-4:] != '.gyp': - continue - input_file_stem = input_file[:-4] - output_file = input_file_stem + params['options'].suffix + '.gypd' - - if not output_file in output_files: - output_files[output_file] = input_file - - for output_file, input_file in output_files.iteritems(): - output = open(output_file, 'w') - pprint.pprint(data[input_file], output) - output.close() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py deleted file mode 100644 index bd405f43..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright (c) 2011 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""gypsh output module - -gypsh is a GYP shell. It's not really a generator per se. All it does is -fire up an interactive Python session with a few local variables set to the -variables passed to the generator. Like gypd, it's intended as a debugging -aid, to facilitate the exploration of .gyp structures after being processed -by the input module. - -The expected usage is "gyp -f gypsh -D OS=desired_os". -""" - - -import code -import sys - - -# All of this stuff about generator variables was lovingly ripped from gypd.py. -# That module has a much better description of what's going on and why. -_generator_identity_variables = [ - 'EXECUTABLE_PREFIX', - 'EXECUTABLE_SUFFIX', - 'INTERMEDIATE_DIR', - 'PRODUCT_DIR', - 'RULE_INPUT_ROOT', - 'RULE_INPUT_DIRNAME', - 'RULE_INPUT_EXT', - 'RULE_INPUT_NAME', - 'RULE_INPUT_PATH', - 'SHARED_INTERMEDIATE_DIR', -] - -generator_default_variables = { -} - -for v in _generator_identity_variables: - generator_default_variables[v] = '<(%s)' % v - - -def GenerateOutput(target_list, target_dicts, data, params): - locals = { - 'target_list': target_list, - 'target_dicts': target_dicts, - 'data': data, - } - - # Use a banner that looks like the stock Python one and like what - # code.interact uses by default, but tack on something to indicate what - # locals are available, and identify gypsh. - banner='Python %s on %s\nlocals.keys() = %s\ngypsh' % \ - (sys.version, sys.platform, repr(sorted(locals.keys()))) - - code.interact(banner, local=locals) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py deleted file mode 100644 index aefdac78..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +++ /dev/null @@ -1,2220 +0,0 @@ -# Copyright (c) 2013 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# Notes: -# -# This is all roughly based on the Makefile system used by the Linux -# kernel, but is a non-recursive make -- we put the entire dependency -# graph in front of make and let it figure it out. -# -# The code below generates a separate .mk file for each target, but -# all are sourced by the top-level Makefile. This means that all -# variables in .mk-files clobber one another. Be careful to use := -# where appropriate for immediate evaluation, and similarly to watch -# that you're not relying on a variable value to last beween different -# .mk files. -# -# TODOs: -# -# Global settings and utility functions are currently stuffed in the -# toplevel Makefile. It may make sense to generate some .mk files on -# the side to keep the the files readable. - -import os -import re -import sys -import subprocess -import gyp -import gyp.common -import gyp.xcode_emulation -from gyp.common import GetEnvironFallback -from gyp.common import GypError - -generator_default_variables = { - 'EXECUTABLE_PREFIX': '', - 'EXECUTABLE_SUFFIX': '', - 'STATIC_LIB_PREFIX': 'lib', - 'SHARED_LIB_PREFIX': 'lib', - 'STATIC_LIB_SUFFIX': '.a', - 'INTERMEDIATE_DIR': '$(obj).$(TOOLSET)/$(TARGET)/geni', - 'SHARED_INTERMEDIATE_DIR': '$(obj)/gen', - 'PRODUCT_DIR': '$(builddir)', - 'RULE_INPUT_ROOT': '%(INPUT_ROOT)s', # This gets expanded by Python. - 'RULE_INPUT_DIRNAME': '%(INPUT_DIRNAME)s', # This gets expanded by Python. - 'RULE_INPUT_PATH': '$(abspath $<)', - 'RULE_INPUT_EXT': '$(suffix $<)', - 'RULE_INPUT_NAME': '$(notdir $<)', - 'CONFIGURATION_NAME': '$(BUILDTYPE)', -} - -# Make supports multiple toolsets -generator_supports_multiple_toolsets = True - -# Request sorted dependencies in the order from dependents to dependencies. -generator_wants_sorted_dependencies = False - -# Placates pylint. -generator_additional_non_configuration_keys = [] -generator_additional_path_sections = [] -generator_extra_sources_for_rules = [] -generator_filelist_paths = None - - -def CalculateVariables(default_variables, params): - """Calculate additional variables for use in the build (called by gyp).""" - flavor = gyp.common.GetFlavor(params) - if flavor == 'mac': - default_variables.setdefault('OS', 'mac') - default_variables.setdefault('SHARED_LIB_SUFFIX', '.dylib') - default_variables.setdefault('SHARED_LIB_DIR', - generator_default_variables['PRODUCT_DIR']) - default_variables.setdefault('LIB_DIR', - generator_default_variables['PRODUCT_DIR']) - - # Copy additional generator configuration data from Xcode, which is shared - # by the Mac Make generator. - import gyp.generator.xcode as xcode_generator - global generator_additional_non_configuration_keys - generator_additional_non_configuration_keys = getattr(xcode_generator, - 'generator_additional_non_configuration_keys', []) - global generator_additional_path_sections - generator_additional_path_sections = getattr(xcode_generator, - 'generator_additional_path_sections', []) - global generator_extra_sources_for_rules - generator_extra_sources_for_rules = getattr(xcode_generator, - 'generator_extra_sources_for_rules', []) - COMPILABLE_EXTENSIONS.update({'.m': 'objc', '.mm' : 'objcxx'}) - else: - operating_system = flavor - if flavor == 'android': - operating_system = 'linux' # Keep this legacy behavior for now. - default_variables.setdefault('OS', operating_system) - default_variables.setdefault('SHARED_LIB_SUFFIX', '.so') - default_variables.setdefault('SHARED_LIB_DIR','$(builddir)/lib.$(TOOLSET)') - default_variables.setdefault('LIB_DIR', '$(obj).$(TOOLSET)') - - -def CalculateGeneratorInputInfo(params): - """Calculate the generator specific info that gets fed to input (called by - gyp).""" - generator_flags = params.get('generator_flags', {}) - android_ndk_version = generator_flags.get('android_ndk_version', None) - # Android NDK requires a strict link order. - if android_ndk_version: - global generator_wants_sorted_dependencies - generator_wants_sorted_dependencies = True - - output_dir = params['options'].generator_output or \ - params['options'].toplevel_dir - builddir_name = generator_flags.get('output_dir', 'out') - qualified_out_dir = os.path.normpath(os.path.join( - output_dir, builddir_name, 'gypfiles')) - - global generator_filelist_paths - generator_filelist_paths = { - 'toplevel': params['options'].toplevel_dir, - 'qualified_out_dir': qualified_out_dir, - } - - -# The .d checking code below uses these functions: -# wildcard, sort, foreach, shell, wordlist -# wildcard can handle spaces, the rest can't. -# Since I could find no way to make foreach work with spaces in filenames -# correctly, the .d files have spaces replaced with another character. The .d -# file for -# Chromium\ Framework.framework/foo -# is for example -# out/Release/.deps/out/Release/Chromium?Framework.framework/foo -# This is the replacement character. -SPACE_REPLACEMENT = '?' - - -LINK_COMMANDS_LINUX = """\ -quiet_cmd_alink = AR($(TOOLSET)) $@ -cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crs $@ $(filter %.o,$^) - -quiet_cmd_alink_thin = AR($(TOOLSET)) $@ -cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) - -# Due to circular dependencies between libraries :(, we wrap the -# special "figure out circular dependencies" flags around the entire -# input list during linking. -quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS) - -# We support two kinds of shared objects (.so): -# 1) shared_library, which is just bundling together many dependent libraries -# into a link line. -# 2) loadable_module, which is generating a module intended for dlopen(). -# -# They differ only slightly: -# In the former case, we want to package all dependent code into the .so. -# In the latter case, we want to package just the API exposed by the -# outermost module. -# This means shared_library uses --whole-archive, while loadable_module doesn't. -# (Note that --whole-archive is incompatible with the --start-group used in -# normal linking.) - -# Other shared-object link notes: -# - Set SONAME to the library filename so our binaries don't reference -# the local, absolute paths used on the link command-line. -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) - -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) -""" - -LINK_COMMANDS_MAC = """\ -quiet_cmd_alink = LIBTOOL-STATIC $@ -cmd_alink = rm -f $@ && ./gyp-mac-tool filter-libtool libtool $(GYP_LIBTOOLFLAGS) -static -o $@ $(filter %.o,$^) - -quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS) - -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS) - -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -bundle $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(filter-out FORCE_DO_CMD, $^) $(LIBS) -""" - -LINK_COMMANDS_ANDROID = """\ -quiet_cmd_alink = AR($(TOOLSET)) $@ -cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crs $@ $(filter %.o,$^) - -quiet_cmd_alink_thin = AR($(TOOLSET)) $@ -cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) - -# Due to circular dependencies between libraries :(, we wrap the -# special "figure out circular dependencies" flags around the entire -# input list during linking. -quiet_cmd_link = LINK($(TOOLSET)) $@ -quiet_cmd_link_host = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS) -cmd_link_host = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(LD_INPUTS) $(LIBS) - -# Other shared-object link notes: -# - Set SONAME to the library filename so our binaries don't reference -# the local, absolute paths used on the link command-line. -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) - -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) -quiet_cmd_solink_module_host = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module_host = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ $(filter-out FORCE_DO_CMD, $^) $(LIBS) -""" - - -LINK_COMMANDS_AIX = """\ -quiet_cmd_alink = AR($(TOOLSET)) $@ -cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) -X32_64 crs $@ $(filter %.o,$^) - -quiet_cmd_alink_thin = AR($(TOOLSET)) $@ -cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) -X32_64 crs $@ $(filter %.o,$^) - -quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(LD_INPUTS) $(LIBS) - -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(LD_INPUTS) $(LIBS) - -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(filter-out FORCE_DO_CMD, $^) $(LIBS) -""" - - -# Header of toplevel Makefile. -# This should go into the build tree, but it's easier to keep it here for now. -SHARED_HEADER = ("""\ -# We borrow heavily from the kernel build setup, though we are simpler since -# we don't have Kconfig tweaking settings on us. - -# The implicit make rules have it looking for RCS files, among other things. -# We instead explicitly write all the rules we care about. -# It's even quicker (saves ~200ms) to pass -r on the command line. -MAKEFLAGS=-r - -# The source directory tree. -srcdir := %(srcdir)s -abs_srcdir := $(abspath $(srcdir)) - -# The name of the builddir. -builddir_name ?= %(builddir)s - -# The V=1 flag on command line makes us verbosely print command lines. -ifdef V - quiet= -else - quiet=quiet_ -endif - -# Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= %(default_configuration)s - -# Directory all our build output goes into. -# Note that this must be two directories beneath src/ for unit tests to pass, -# as they reach into the src/ directory for data with relative paths. -builddir ?= $(builddir_name)/$(BUILDTYPE) -abs_builddir := $(abspath $(builddir)) -depsdir := $(builddir)/.deps - -# Object output directory. -obj := $(builddir)/obj -abs_obj := $(abspath $(obj)) - -# We build up a list of every single one of the targets so we can slurp in the -# generated dependency rule Makefiles in one pass. -all_deps := - -%(make_global_settings)s - -CC.target ?= %(CC.target)s -CFLAGS.target ?= $(CPPFLAGS) $(CFLAGS) -CXX.target ?= %(CXX.target)s -CXXFLAGS.target ?= $(CPPFLAGS) $(CXXFLAGS) -LINK.target ?= %(LINK.target)s -LDFLAGS.target ?= $(LDFLAGS) -AR.target ?= $(AR) - -# C++ apps need to be linked with g++. -LINK ?= $(CXX.target) - -# TODO(evan): move all cross-compilation logic to gyp-time so we don't need -# to replicate this environment fallback in make as well. -CC.host ?= %(CC.host)s -CFLAGS.host ?= $(CPPFLAGS_host) $(CFLAGS_host) -CXX.host ?= %(CXX.host)s -CXXFLAGS.host ?= $(CPPFLAGS_host) $(CXXFLAGS_host) -LINK.host ?= %(LINK.host)s -LDFLAGS.host ?= -AR.host ?= %(AR.host)s - -# Define a dir function that can handle spaces. -# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions -# "leading spaces cannot appear in the text of the first argument as written. -# These characters can be put into the argument value by variable substitution." -empty := -space := $(empty) $(empty) - -# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces -replace_spaces = $(subst $(space),""" + SPACE_REPLACEMENT + """,$1) -unreplace_spaces = $(subst """ + SPACE_REPLACEMENT + """,$(space),$1) -dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) - -# Flags to make gcc output dependency info. Note that you need to be -# careful here to use the flags that ccache and distcc can understand. -# We write to a dep file on the side first and then rename at the end -# so we can't end up with a broken dep file. -depfile = $(depsdir)/$(call replace_spaces,$@).d -DEPFLAGS = -MMD -MF $(depfile).raw - -# We have to fixup the deps output in a few ways. -# (1) the file output should mention the proper .o file. -# ccache or distcc lose the path to the target, so we convert a rule of -# the form: -# foobar.o: DEP1 DEP2 -# into -# path/to/foobar.o: DEP1 DEP2 -# (2) we want missing files not to cause us to fail to build. -# We want to rewrite -# foobar.o: DEP1 DEP2 \\ -# DEP3 -# to -# DEP1: -# DEP2: -# DEP3: -# so if the files are missing, they're just considered phony rules. -# We have to do some pretty insane escaping to get those backslashes -# and dollar signs past make, the shell, and sed at the same time. -# Doesn't work with spaces, but that's fine: .d files have spaces in -# their names replaced with other characters.""" -r""" -define fixup_dep -# The depfile may not exist if the input file didn't have any #includes. -touch $(depfile).raw -# Fixup path as in (1). -sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) -# Add extra rules as in (2). -# We remove slashes and replace spaces with new lines; -# remove blank lines; -# delete the first line and append a colon to the remaining lines. -sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ - grep -v '^$$' |\ - sed -e 1d -e 's|$$|:|' \ - >> $(depfile) -rm $(depfile).raw -endef -""" -""" -# Command definitions: -# - cmd_foo is the actual command to run; -# - quiet_cmd_foo is the brief-output summary of the command. - -quiet_cmd_cc = CC($(TOOLSET)) $@ -cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_cxx = CXX($(TOOLSET)) $@ -cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< -%(extra_commands)s -quiet_cmd_touch = TOUCH $@ -cmd_touch = touch $@ - -quiet_cmd_copy = COPY $@ -# send stderr to /dev/null to ignore messages when linking directories. -cmd_copy = rm -rf "$@" && cp %(copy_archive_args)s "$<" "$@" - -%(link_commands)s -""" - -r""" -# Define an escape_quotes function to escape single quotes. -# This allows us to handle quotes properly as long as we always use -# use single quotes and escape_quotes. -escape_quotes = $(subst ','\'',$(1)) -# This comment is here just to include a ' to unconfuse syntax highlighting. -# Define an escape_vars function to escape '$' variable syntax. -# This allows us to read/write command lines with shell variables (e.g. -# $LD_LIBRARY_PATH), without triggering make substitution. -escape_vars = $(subst $$,$$$$,$(1)) -# Helper that expands to a shell command to echo a string exactly as it is in -# make. This uses printf instead of echo because printf's behaviour with respect -# to escape sequences is more portable than echo's across different shells -# (e.g., dash, bash). -exact_echo = printf '%%s\n' '$(call escape_quotes,$(1))' -""" -""" -# Helper to compare the command we're about to run against the command -# we logged the last time we ran the command. Produces an empty -# string (false) when the commands match. -# Tricky point: Make has no string-equality test function. -# The kernel uses the following, but it seems like it would have false -# positives, where one string reordered its arguments. -# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \\ -# $(filter-out $(cmd_$@), $(cmd_$(1)))) -# We instead substitute each for the empty string into the other, and -# say they're equal if both substitutions produce the empty string. -# .d files contain """ + SPACE_REPLACEMENT + \ - """ instead of spaces, take that into account. -command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\\ - $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) - -# Helper that is non-empty when a prerequisite changes. -# Normally make does this implicitly, but we force rules to always run -# so we can check their command lines. -# $? -- new prerequisites -# $| -- order-only dependencies -prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) - -# Helper that executes all postbuilds until one fails. -define do_postbuilds - @E=0;\\ - for p in $(POSTBUILDS); do\\ - eval $$p;\\ - E=$$?;\\ - if [ $$E -ne 0 ]; then\\ - break;\\ - fi;\\ - done;\\ - if [ $$E -ne 0 ]; then\\ - rm -rf "$@";\\ - exit $$E;\\ - fi -endef - -# do_cmd: run a command via the above cmd_foo names, if necessary. -# Should always run for a given target to handle command-line changes. -# Second argument, if non-zero, makes it do asm/C/C++ dependency munging. -# Third argument, if non-zero, makes it do POSTBUILDS processing. -# Note: We intentionally do NOT call dirx for depfile, since it contains """ + \ - SPACE_REPLACEMENT + """ for -# spaces already and dirx strips the """ + SPACE_REPLACEMENT + \ - """ characters. -define do_cmd -$(if $(or $(command_changed),$(prereq_changed)), - @$(call exact_echo, $($(quiet)cmd_$(1))) - @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" - $(if $(findstring flock,$(word %(flock_index)d,$(cmd_$1))), - @$(cmd_$(1)) - @echo " $(quiet_cmd_$(1)): Finished", - @$(cmd_$(1)) - ) - @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) - @$(if $(2),$(fixup_dep)) - $(if $(and $(3), $(POSTBUILDS)), - $(call do_postbuilds) - ) -) -endef - -# Declare the "%(default_target)s" target first so it is the default, -# even though we don't have the deps yet. -.PHONY: %(default_target)s -%(default_target)s: - -# make looks for ways to re-generate included makefiles, but in our case, we -# don't have a direct way. Explicitly telling make that it has nothing to do -# for them makes it go faster. -%%.d: ; - -# Use FORCE_DO_CMD to force a target to run. Should be coupled with -# do_cmd. -.PHONY: FORCE_DO_CMD -FORCE_DO_CMD: - -""") - -SHARED_HEADER_MAC_COMMANDS = """ -quiet_cmd_objc = CXX($(TOOLSET)) $@ -cmd_objc = $(CC.$(TOOLSET)) $(GYP_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< - -quiet_cmd_objcxx = CXX($(TOOLSET)) $@ -cmd_objcxx = $(CXX.$(TOOLSET)) $(GYP_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< - -# Commands for precompiled header files. -quiet_cmd_pch_c = CXX($(TOOLSET)) $@ -cmd_pch_c = $(CC.$(TOOLSET)) $(GYP_PCH_CFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< -quiet_cmd_pch_cc = CXX($(TOOLSET)) $@ -cmd_pch_cc = $(CC.$(TOOLSET)) $(GYP_PCH_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< -quiet_cmd_pch_m = CXX($(TOOLSET)) $@ -cmd_pch_m = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< -quiet_cmd_pch_mm = CXX($(TOOLSET)) $@ -cmd_pch_mm = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< - -# gyp-mac-tool is written next to the root Makefile by gyp. -# Use $(4) for the command, since $(2) and $(3) are used as flag by do_cmd -# already. -quiet_cmd_mac_tool = MACTOOL $(4) $< -cmd_mac_tool = ./gyp-mac-tool $(4) $< "$@" - -quiet_cmd_mac_package_framework = PACKAGE FRAMEWORK $@ -cmd_mac_package_framework = ./gyp-mac-tool package-framework "$@" $(4) - -quiet_cmd_infoplist = INFOPLIST $@ -cmd_infoplist = $(CC.$(TOOLSET)) -E -P -Wno-trigraphs -x c $(INFOPLIST_DEFINES) "$<" -o "$@" -""" - - -def WriteRootHeaderSuffixRules(writer): - extensions = sorted(COMPILABLE_EXTENSIONS.keys(), key=str.lower) - - writer.write('# Suffix rules, putting all outputs into $(obj).\n') - for ext in extensions: - writer.write('$(obj).$(TOOLSET)/%%.o: $(srcdir)/%%%s FORCE_DO_CMD\n' % ext) - writer.write('\t@$(call do_cmd,%s,1)\n' % COMPILABLE_EXTENSIONS[ext]) - - writer.write('\n# Try building from generated source, too.\n') - for ext in extensions: - writer.write( - '$(obj).$(TOOLSET)/%%.o: $(obj).$(TOOLSET)/%%%s FORCE_DO_CMD\n' % ext) - writer.write('\t@$(call do_cmd,%s,1)\n' % COMPILABLE_EXTENSIONS[ext]) - writer.write('\n') - for ext in extensions: - writer.write('$(obj).$(TOOLSET)/%%.o: $(obj)/%%%s FORCE_DO_CMD\n' % ext) - writer.write('\t@$(call do_cmd,%s,1)\n' % COMPILABLE_EXTENSIONS[ext]) - writer.write('\n') - - -SHARED_HEADER_SUFFIX_RULES_COMMENT1 = ("""\ -# Suffix rules, putting all outputs into $(obj). -""") - - -SHARED_HEADER_SUFFIX_RULES_COMMENT2 = ("""\ -# Try building from generated source, too. -""") - - -SHARED_FOOTER = """\ -# "all" is a concatenation of the "all" targets from all the included -# sub-makefiles. This is just here to clarify. -all: - -# Add in dependency-tracking rules. $(all_deps) is the list of every single -# target in our tree. Only consider the ones with .d (dependency) info: -d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) -ifneq ($(d_files),) - include $(d_files) -endif -""" - -header = """\ -# This file is generated by gyp; do not edit. - -""" - -# Maps every compilable file extension to the do_cmd that compiles it. -COMPILABLE_EXTENSIONS = { - '.c': 'cc', - '.cc': 'cxx', - '.cpp': 'cxx', - '.cxx': 'cxx', - '.s': 'cc', - '.S': 'cc', -} - -def Compilable(filename): - """Return true if the file is compilable (should be in OBJS).""" - for res in (filename.endswith(e) for e in COMPILABLE_EXTENSIONS): - if res: - return True - return False - - -def Linkable(filename): - """Return true if the file is linkable (should be on the link line).""" - return filename.endswith('.o') - - -def Target(filename): - """Translate a compilable filename to its .o target.""" - return os.path.splitext(filename)[0] + '.o' - - -def EscapeShellArgument(s): - """Quotes an argument so that it will be interpreted literally by a POSIX - shell. Taken from - http://stackoverflow.com/questions/35817/whats-the-best-way-to-escape-ossystem-calls-in-python - """ - return "'" + s.replace("'", "'\\''") + "'" - - -def EscapeMakeVariableExpansion(s): - """Make has its own variable expansion syntax using $. We must escape it for - string to be interpreted literally.""" - return s.replace('$', '$$') - - -def EscapeCppDefine(s): - """Escapes a CPP define so that it will reach the compiler unaltered.""" - s = EscapeShellArgument(s) - s = EscapeMakeVariableExpansion(s) - # '#' characters must be escaped even embedded in a string, else Make will - # treat it as the start of a comment. - return s.replace('#', r'\#') - - -def QuoteIfNecessary(string): - """TODO: Should this ideally be replaced with one or more of the above - functions?""" - if '"' in string: - string = '"' + string.replace('"', '\\"') + '"' - return string - - -def StringToMakefileVariable(string): - """Convert a string to a value that is acceptable as a make variable name.""" - return re.sub('[^a-zA-Z0-9_]', '_', string) - - -srcdir_prefix = '' -def Sourceify(path): - """Convert a path to its source directory form.""" - if '$(' in path: - return path - if os.path.isabs(path): - return path - return srcdir_prefix + path - - -def QuoteSpaces(s, quote=r'\ '): - return s.replace(' ', quote) - - -# TODO: Avoid code duplication with _ValidateSourcesForMSVSProject in msvs.py. -def _ValidateSourcesForOSX(spec, all_sources): - """Makes sure if duplicate basenames are not specified in the source list. - - Arguments: - spec: The target dictionary containing the properties of the target. - """ - if spec.get('type', None) != 'static_library': - return - - basenames = {} - for source in all_sources: - name, ext = os.path.splitext(source) - is_compiled_file = ext in [ - '.c', '.cc', '.cpp', '.cxx', '.m', '.mm', '.s', '.S'] - if not is_compiled_file: - continue - basename = os.path.basename(name) # Don't include extension. - basenames.setdefault(basename, []).append(source) - - error = '' - for basename, files in basenames.iteritems(): - if len(files) > 1: - error += ' %s: %s\n' % (basename, ' '.join(files)) - - if error: - print('static library %s has several files with the same basename:\n' % - spec['target_name'] + error + 'libtool on OS X will generate' + - ' warnings for them.') - raise GypError('Duplicate basenames in sources section, see list above') - - -# Map from qualified target to path to output. -target_outputs = {} -# Map from qualified target to any linkable output. A subset -# of target_outputs. E.g. when mybinary depends on liba, we want to -# include liba in the linker line; when otherbinary depends on -# mybinary, we just want to build mybinary first. -target_link_deps = {} - - -class MakefileWriter(object): - """MakefileWriter packages up the writing of one target-specific foobar.mk. - - Its only real entry point is Write(), and is mostly used for namespacing. - """ - - def __init__(self, generator_flags, flavor): - self.generator_flags = generator_flags - self.flavor = flavor - - self.suffix_rules_srcdir = {} - self.suffix_rules_objdir1 = {} - self.suffix_rules_objdir2 = {} - - # Generate suffix rules for all compilable extensions. - for ext in COMPILABLE_EXTENSIONS.keys(): - # Suffix rules for source folder. - self.suffix_rules_srcdir.update({ext: ("""\ -$(obj).$(TOOLSET)/$(TARGET)/%%.o: $(srcdir)/%%%s FORCE_DO_CMD - @$(call do_cmd,%s,1) -""" % (ext, COMPILABLE_EXTENSIONS[ext]))}) - - # Suffix rules for generated source files. - self.suffix_rules_objdir1.update({ext: ("""\ -$(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj).$(TOOLSET)/%%%s FORCE_DO_CMD - @$(call do_cmd,%s,1) -""" % (ext, COMPILABLE_EXTENSIONS[ext]))}) - self.suffix_rules_objdir2.update({ext: ("""\ -$(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD - @$(call do_cmd,%s,1) -""" % (ext, COMPILABLE_EXTENSIONS[ext]))}) - - - def Write(self, qualified_target, base_path, output_filename, spec, configs, - part_of_all): - """The main entry point: writes a .mk file for a single target. - - Arguments: - qualified_target: target we're generating - base_path: path relative to source root we're building in, used to resolve - target-relative paths - output_filename: output .mk file name to write - spec, configs: gyp info - part_of_all: flag indicating this target is part of 'all' - """ - gyp.common.EnsureDirExists(output_filename) - - self.fp = open(output_filename, 'w') - - self.fp.write(header) - - self.qualified_target = qualified_target - self.path = base_path - self.target = spec['target_name'] - self.type = spec['type'] - self.toolset = spec['toolset'] - - self.is_mac_bundle = gyp.xcode_emulation.IsMacBundle(self.flavor, spec) - if self.flavor == 'mac': - self.xcode_settings = gyp.xcode_emulation.XcodeSettings(spec) - else: - self.xcode_settings = None - - deps, link_deps = self.ComputeDeps(spec) - - # Some of the generation below can add extra output, sources, or - # link dependencies. All of the out params of the functions that - # follow use names like extra_foo. - extra_outputs = [] - extra_sources = [] - extra_link_deps = [] - extra_mac_bundle_resources = [] - mac_bundle_deps = [] - - if self.is_mac_bundle: - self.output = self.ComputeMacBundleOutput(spec) - self.output_binary = self.ComputeMacBundleBinaryOutput(spec) - else: - self.output = self.output_binary = self.ComputeOutput(spec) - - self.is_standalone_static_library = bool( - spec.get('standalone_static_library', 0)) - self._INSTALLABLE_TARGETS = ('executable', 'loadable_module', - 'shared_library') - if (self.is_standalone_static_library or - self.type in self._INSTALLABLE_TARGETS): - self.alias = os.path.basename(self.output) - install_path = self._InstallableTargetInstallPath() - else: - self.alias = self.output - install_path = self.output - - self.WriteLn("TOOLSET := " + self.toolset) - self.WriteLn("TARGET := " + self.target) - - # Actions must come first, since they can generate more OBJs for use below. - if 'actions' in spec: - self.WriteActions(spec['actions'], extra_sources, extra_outputs, - extra_mac_bundle_resources, part_of_all) - - # Rules must be early like actions. - if 'rules' in spec: - self.WriteRules(spec['rules'], extra_sources, extra_outputs, - extra_mac_bundle_resources, part_of_all) - - if 'copies' in spec: - self.WriteCopies(spec['copies'], extra_outputs, part_of_all) - - # Bundle resources. - if self.is_mac_bundle: - all_mac_bundle_resources = ( - spec.get('mac_bundle_resources', []) + extra_mac_bundle_resources) - self.WriteMacBundleResources(all_mac_bundle_resources, mac_bundle_deps) - self.WriteMacInfoPlist(mac_bundle_deps) - - # Sources. - all_sources = spec.get('sources', []) + extra_sources - if all_sources: - if self.flavor == 'mac': - # libtool on OS X generates warnings for duplicate basenames in the same - # target. - _ValidateSourcesForOSX(spec, all_sources) - self.WriteSources( - configs, deps, all_sources, extra_outputs, - extra_link_deps, part_of_all, - gyp.xcode_emulation.MacPrefixHeader( - self.xcode_settings, lambda p: Sourceify(self.Absolutify(p)), - self.Pchify)) - sources = filter(Compilable, all_sources) - if sources: - self.WriteLn(SHARED_HEADER_SUFFIX_RULES_COMMENT1) - extensions = set([os.path.splitext(s)[1] for s in sources]) - for ext in extensions: - if ext in self.suffix_rules_srcdir: - self.WriteLn(self.suffix_rules_srcdir[ext]) - self.WriteLn(SHARED_HEADER_SUFFIX_RULES_COMMENT2) - for ext in extensions: - if ext in self.suffix_rules_objdir1: - self.WriteLn(self.suffix_rules_objdir1[ext]) - for ext in extensions: - if ext in self.suffix_rules_objdir2: - self.WriteLn(self.suffix_rules_objdir2[ext]) - self.WriteLn('# End of this set of suffix rules') - - # Add dependency from bundle to bundle binary. - if self.is_mac_bundle: - mac_bundle_deps.append(self.output_binary) - - self.WriteTarget(spec, configs, deps, extra_link_deps + link_deps, - mac_bundle_deps, extra_outputs, part_of_all) - - # Update global list of target outputs, used in dependency tracking. - target_outputs[qualified_target] = install_path - - # Update global list of link dependencies. - if self.type in ('static_library', 'shared_library'): - target_link_deps[qualified_target] = self.output_binary - - # Currently any versions have the same effect, but in future the behavior - # could be different. - if self.generator_flags.get('android_ndk_version', None): - self.WriteAndroidNdkModuleRule(self.target, all_sources, link_deps) - - self.fp.close() - - - def WriteSubMake(self, output_filename, makefile_path, targets, build_dir): - """Write a "sub-project" Makefile. - - This is a small, wrapper Makefile that calls the top-level Makefile to build - the targets from a single gyp file (i.e. a sub-project). - - Arguments: - output_filename: sub-project Makefile name to write - makefile_path: path to the top-level Makefile - targets: list of "all" targets for this sub-project - build_dir: build output directory, relative to the sub-project - """ - gyp.common.EnsureDirExists(output_filename) - self.fp = open(output_filename, 'w') - self.fp.write(header) - # For consistency with other builders, put sub-project build output in the - # sub-project dir (see test/subdirectory/gyptest-subdir-all.py). - self.WriteLn('export builddir_name ?= %s' % - os.path.join(os.path.dirname(output_filename), build_dir)) - self.WriteLn('.PHONY: all') - self.WriteLn('all:') - if makefile_path: - makefile_path = ' -C ' + makefile_path - self.WriteLn('\t$(MAKE)%s %s' % (makefile_path, ' '.join(targets))) - self.fp.close() - - - def WriteActions(self, actions, extra_sources, extra_outputs, - extra_mac_bundle_resources, part_of_all): - """Write Makefile code for any 'actions' from the gyp input. - - extra_sources: a list that will be filled in with newly generated source - files, if any - extra_outputs: a list that will be filled in with any outputs of these - actions (used to make other pieces dependent on these - actions) - part_of_all: flag indicating this target is part of 'all' - """ - env = self.GetSortedXcodeEnv() - for action in actions: - name = StringToMakefileVariable('%s_%s' % (self.qualified_target, - action['action_name'])) - self.WriteLn('### Rules for action "%s":' % action['action_name']) - inputs = action['inputs'] - outputs = action['outputs'] - - # Build up a list of outputs. - # Collect the output dirs we'll need. - dirs = set() - for out in outputs: - dir = os.path.split(out)[0] - if dir: - dirs.add(dir) - if int(action.get('process_outputs_as_sources', False)): - extra_sources += outputs - if int(action.get('process_outputs_as_mac_bundle_resources', False)): - extra_mac_bundle_resources += outputs - - # Write the actual command. - action_commands = action['action'] - if self.flavor == 'mac': - action_commands = [gyp.xcode_emulation.ExpandEnvVars(command, env) - for command in action_commands] - command = gyp.common.EncodePOSIXShellList(action_commands) - if 'message' in action: - self.WriteLn('quiet_cmd_%s = ACTION %s $@' % (name, action['message'])) - else: - self.WriteLn('quiet_cmd_%s = ACTION %s $@' % (name, name)) - if len(dirs) > 0: - command = 'mkdir -p %s' % ' '.join(dirs) + '; ' + command - - cd_action = 'cd %s; ' % Sourceify(self.path or '.') - - # command and cd_action get written to a toplevel variable called - # cmd_foo. Toplevel variables can't handle things that change per - # makefile like $(TARGET), so hardcode the target. - command = command.replace('$(TARGET)', self.target) - cd_action = cd_action.replace('$(TARGET)', self.target) - - # Set LD_LIBRARY_PATH in case the action runs an executable from this - # build which links to shared libs from this build. - # actions run on the host, so they should in theory only use host - # libraries, but until everything is made cross-compile safe, also use - # target libraries. - # TODO(piman): when everything is cross-compile safe, remove lib.target - self.WriteLn('cmd_%s = LD_LIBRARY_PATH=$(builddir)/lib.host:' - '$(builddir)/lib.target:$$LD_LIBRARY_PATH; ' - 'export LD_LIBRARY_PATH; ' - '%s%s' - % (name, cd_action, command)) - self.WriteLn() - outputs = map(self.Absolutify, outputs) - # The makefile rules are all relative to the top dir, but the gyp actions - # are defined relative to their containing dir. This replaces the obj - # variable for the action rule with an absolute version so that the output - # goes in the right place. - # Only write the 'obj' and 'builddir' rules for the "primary" output (:1); - # it's superfluous for the "extra outputs", and this avoids accidentally - # writing duplicate dummy rules for those outputs. - # Same for environment. - self.WriteLn("%s: obj := $(abs_obj)" % QuoteSpaces(outputs[0])) - self.WriteLn("%s: builddir := $(abs_builddir)" % QuoteSpaces(outputs[0])) - self.WriteSortedXcodeEnv(outputs[0], self.GetSortedXcodeEnv()) - - for input in inputs: - assert ' ' not in input, ( - "Spaces in action input filenames not supported (%s)" % input) - for output in outputs: - assert ' ' not in output, ( - "Spaces in action output filenames not supported (%s)" % output) - - # See the comment in WriteCopies about expanding env vars. - outputs = [gyp.xcode_emulation.ExpandEnvVars(o, env) for o in outputs] - inputs = [gyp.xcode_emulation.ExpandEnvVars(i, env) for i in inputs] - - self.WriteDoCmd(outputs, map(Sourceify, map(self.Absolutify, inputs)), - part_of_all=part_of_all, command=name) - - # Stuff the outputs in a variable so we can refer to them later. - outputs_variable = 'action_%s_outputs' % name - self.WriteLn('%s := %s' % (outputs_variable, ' '.join(outputs))) - extra_outputs.append('$(%s)' % outputs_variable) - self.WriteLn() - - self.WriteLn() - - - def WriteRules(self, rules, extra_sources, extra_outputs, - extra_mac_bundle_resources, part_of_all): - """Write Makefile code for any 'rules' from the gyp input. - - extra_sources: a list that will be filled in with newly generated source - files, if any - extra_outputs: a list that will be filled in with any outputs of these - rules (used to make other pieces dependent on these rules) - part_of_all: flag indicating this target is part of 'all' - """ - env = self.GetSortedXcodeEnv() - for rule in rules: - name = StringToMakefileVariable('%s_%s' % (self.qualified_target, - rule['rule_name'])) - count = 0 - self.WriteLn('### Generated for rule %s:' % name) - - all_outputs = [] - - for rule_source in rule.get('rule_sources', []): - dirs = set() - (rule_source_dirname, rule_source_basename) = os.path.split(rule_source) - (rule_source_root, rule_source_ext) = \ - os.path.splitext(rule_source_basename) - - outputs = [self.ExpandInputRoot(out, rule_source_root, - rule_source_dirname) - for out in rule['outputs']] - - for out in outputs: - dir = os.path.dirname(out) - if dir: - dirs.add(dir) - if int(rule.get('process_outputs_as_sources', False)): - extra_sources += outputs - if int(rule.get('process_outputs_as_mac_bundle_resources', False)): - extra_mac_bundle_resources += outputs - inputs = map(Sourceify, map(self.Absolutify, [rule_source] + - rule.get('inputs', []))) - actions = ['$(call do_cmd,%s_%d)' % (name, count)] - - if name == 'resources_grit': - # HACK: This is ugly. Grit intentionally doesn't touch the - # timestamp of its output file when the file doesn't change, - # which is fine in hash-based dependency systems like scons - # and forge, but not kosher in the make world. After some - # discussion, hacking around it here seems like the least - # amount of pain. - actions += ['@touch --no-create $@'] - - # See the comment in WriteCopies about expanding env vars. - outputs = [gyp.xcode_emulation.ExpandEnvVars(o, env) for o in outputs] - inputs = [gyp.xcode_emulation.ExpandEnvVars(i, env) for i in inputs] - - outputs = map(self.Absolutify, outputs) - all_outputs += outputs - # Only write the 'obj' and 'builddir' rules for the "primary" output - # (:1); it's superfluous for the "extra outputs", and this avoids - # accidentally writing duplicate dummy rules for those outputs. - self.WriteLn('%s: obj := $(abs_obj)' % outputs[0]) - self.WriteLn('%s: builddir := $(abs_builddir)' % outputs[0]) - self.WriteMakeRule(outputs, inputs, actions, - command="%s_%d" % (name, count)) - # Spaces in rule filenames are not supported, but rule variables have - # spaces in them (e.g. RULE_INPUT_PATH expands to '$(abspath $<)'). - # The spaces within the variables are valid, so remove the variables - # before checking. - variables_with_spaces = re.compile(r'\$\([^ ]* \$<\)') - for output in outputs: - output = re.sub(variables_with_spaces, '', output) - assert ' ' not in output, ( - "Spaces in rule filenames not yet supported (%s)" % output) - self.WriteLn('all_deps += %s' % ' '.join(outputs)) - - action = [self.ExpandInputRoot(ac, rule_source_root, - rule_source_dirname) - for ac in rule['action']] - mkdirs = '' - if len(dirs) > 0: - mkdirs = 'mkdir -p %s; ' % ' '.join(dirs) - cd_action = 'cd %s; ' % Sourceify(self.path or '.') - - # action, cd_action, and mkdirs get written to a toplevel variable - # called cmd_foo. Toplevel variables can't handle things that change - # per makefile like $(TARGET), so hardcode the target. - if self.flavor == 'mac': - action = [gyp.xcode_emulation.ExpandEnvVars(command, env) - for command in action] - action = gyp.common.EncodePOSIXShellList(action) - action = action.replace('$(TARGET)', self.target) - cd_action = cd_action.replace('$(TARGET)', self.target) - mkdirs = mkdirs.replace('$(TARGET)', self.target) - - # Set LD_LIBRARY_PATH in case the rule runs an executable from this - # build which links to shared libs from this build. - # rules run on the host, so they should in theory only use host - # libraries, but until everything is made cross-compile safe, also use - # target libraries. - # TODO(piman): when everything is cross-compile safe, remove lib.target - self.WriteLn( - "cmd_%(name)s_%(count)d = LD_LIBRARY_PATH=" - "$(builddir)/lib.host:$(builddir)/lib.target:$$LD_LIBRARY_PATH; " - "export LD_LIBRARY_PATH; " - "%(cd_action)s%(mkdirs)s%(action)s" % { - 'action': action, - 'cd_action': cd_action, - 'count': count, - 'mkdirs': mkdirs, - 'name': name, - }) - self.WriteLn( - 'quiet_cmd_%(name)s_%(count)d = RULE %(name)s_%(count)d $@' % { - 'count': count, - 'name': name, - }) - self.WriteLn() - count += 1 - - outputs_variable = 'rule_%s_outputs' % name - self.WriteList(all_outputs, outputs_variable) - extra_outputs.append('$(%s)' % outputs_variable) - - self.WriteLn('### Finished generating for rule: %s' % name) - self.WriteLn() - self.WriteLn('### Finished generating for all rules') - self.WriteLn('') - - - def WriteCopies(self, copies, extra_outputs, part_of_all): - """Write Makefile code for any 'copies' from the gyp input. - - extra_outputs: a list that will be filled in with any outputs of this action - (used to make other pieces dependent on this action) - part_of_all: flag indicating this target is part of 'all' - """ - self.WriteLn('### Generated for copy rule.') - - variable = StringToMakefileVariable(self.qualified_target + '_copies') - outputs = [] - for copy in copies: - for path in copy['files']: - # Absolutify() may call normpath, and will strip trailing slashes. - path = Sourceify(self.Absolutify(path)) - filename = os.path.split(path)[1] - output = Sourceify(self.Absolutify(os.path.join(copy['destination'], - filename))) - - # If the output path has variables in it, which happens in practice for - # 'copies', writing the environment as target-local doesn't work, - # because the variables are already needed for the target name. - # Copying the environment variables into global make variables doesn't - # work either, because then the .d files will potentially contain spaces - # after variable expansion, and .d file handling cannot handle spaces. - # As a workaround, manually expand variables at gyp time. Since 'copies' - # can't run scripts, there's no need to write the env then. - # WriteDoCmd() will escape spaces for .d files. - env = self.GetSortedXcodeEnv() - output = gyp.xcode_emulation.ExpandEnvVars(output, env) - path = gyp.xcode_emulation.ExpandEnvVars(path, env) - self.WriteDoCmd([output], [path], 'copy', part_of_all) - outputs.append(output) - self.WriteLn('%s = %s' % (variable, ' '.join(map(QuoteSpaces, outputs)))) - extra_outputs.append('$(%s)' % variable) - self.WriteLn() - - - def WriteMacBundleResources(self, resources, bundle_deps): - """Writes Makefile code for 'mac_bundle_resources'.""" - self.WriteLn('### Generated for mac_bundle_resources') - - for output, res in gyp.xcode_emulation.GetMacBundleResources( - generator_default_variables['PRODUCT_DIR'], self.xcode_settings, - map(Sourceify, map(self.Absolutify, resources))): - _, ext = os.path.splitext(output) - if ext != '.xcassets': - # Make does not supports '.xcassets' emulation. - self.WriteDoCmd([output], [res], 'mac_tool,,,copy-bundle-resource', - part_of_all=True) - bundle_deps.append(output) - - - def WriteMacInfoPlist(self, bundle_deps): - """Write Makefile code for bundle Info.plist files.""" - info_plist, out, defines, extra_env = gyp.xcode_emulation.GetMacInfoPlist( - generator_default_variables['PRODUCT_DIR'], self.xcode_settings, - lambda p: Sourceify(self.Absolutify(p))) - if not info_plist: - return - if defines: - # Create an intermediate file to store preprocessed results. - intermediate_plist = ('$(obj).$(TOOLSET)/$(TARGET)/' + - os.path.basename(info_plist)) - self.WriteList(defines, intermediate_plist + ': INFOPLIST_DEFINES', '-D', - quoter=EscapeCppDefine) - self.WriteMakeRule([intermediate_plist], [info_plist], - ['$(call do_cmd,infoplist)', - # "Convert" the plist so that any weird whitespace changes from the - # preprocessor do not affect the XML parser in mac_tool. - '@plutil -convert xml1 $@ $@']) - info_plist = intermediate_plist - # plists can contain envvars and substitute them into the file. - self.WriteSortedXcodeEnv( - out, self.GetSortedXcodeEnv(additional_settings=extra_env)) - self.WriteDoCmd([out], [info_plist], 'mac_tool,,,copy-info-plist', - part_of_all=True) - bundle_deps.append(out) - - - def WriteSources(self, configs, deps, sources, - extra_outputs, extra_link_deps, - part_of_all, precompiled_header): - """Write Makefile code for any 'sources' from the gyp input. - These are source files necessary to build the current target. - - configs, deps, sources: input from gyp. - extra_outputs: a list of extra outputs this action should be dependent on; - used to serialize action/rules before compilation - extra_link_deps: a list that will be filled in with any outputs of - compilation (to be used in link lines) - part_of_all: flag indicating this target is part of 'all' - """ - - # Write configuration-specific variables for CFLAGS, etc. - for configname in sorted(configs.keys()): - config = configs[configname] - self.WriteList(config.get('defines'), 'DEFS_%s' % configname, prefix='-D', - quoter=EscapeCppDefine) - - if self.flavor == 'mac': - cflags = self.xcode_settings.GetCflags(configname) - cflags_c = self.xcode_settings.GetCflagsC(configname) - cflags_cc = self.xcode_settings.GetCflagsCC(configname) - cflags_objc = self.xcode_settings.GetCflagsObjC(configname) - cflags_objcc = self.xcode_settings.GetCflagsObjCC(configname) - else: - cflags = config.get('cflags') - cflags_c = config.get('cflags_c') - cflags_cc = config.get('cflags_cc') - - self.WriteLn("# Flags passed to all source files."); - self.WriteList(cflags, 'CFLAGS_%s' % configname) - self.WriteLn("# Flags passed to only C files."); - self.WriteList(cflags_c, 'CFLAGS_C_%s' % configname) - self.WriteLn("# Flags passed to only C++ files."); - self.WriteList(cflags_cc, 'CFLAGS_CC_%s' % configname) - if self.flavor == 'mac': - self.WriteLn("# Flags passed to only ObjC files."); - self.WriteList(cflags_objc, 'CFLAGS_OBJC_%s' % configname) - self.WriteLn("# Flags passed to only ObjC++ files."); - self.WriteList(cflags_objcc, 'CFLAGS_OBJCC_%s' % configname) - includes = config.get('include_dirs') - if includes: - includes = map(Sourceify, map(self.Absolutify, includes)) - self.WriteList(includes, 'INCS_%s' % configname, prefix='-I') - - compilable = filter(Compilable, sources) - objs = map(self.Objectify, map(self.Absolutify, map(Target, compilable))) - self.WriteList(objs, 'OBJS') - - for obj in objs: - assert ' ' not in obj, ( - "Spaces in object filenames not supported (%s)" % obj) - self.WriteLn('# Add to the list of files we specially track ' - 'dependencies for.') - self.WriteLn('all_deps += $(OBJS)') - self.WriteLn() - - # Make sure our dependencies are built first. - if deps: - self.WriteMakeRule(['$(OBJS)'], deps, - comment = 'Make sure our dependencies are built ' - 'before any of us.', - order_only = True) - - # Make sure the actions and rules run first. - # If they generate any extra headers etc., the per-.o file dep tracking - # will catch the proper rebuilds, so order only is still ok here. - if extra_outputs: - self.WriteMakeRule(['$(OBJS)'], extra_outputs, - comment = 'Make sure our actions/rules run ' - 'before any of us.', - order_only = True) - - pchdeps = precompiled_header.GetObjDependencies(compilable, objs ) - if pchdeps: - self.WriteLn('# Dependencies from obj files to their precompiled headers') - for source, obj, gch in pchdeps: - self.WriteLn('%s: %s' % (obj, gch)) - self.WriteLn('# End precompiled header dependencies') - - if objs: - extra_link_deps.append('$(OBJS)') - self.WriteLn("""\ -# CFLAGS et al overrides must be target-local. -# See "Target-specific Variable Values" in the GNU Make manual.""") - self.WriteLn("$(OBJS): TOOLSET := $(TOOLSET)") - self.WriteLn("$(OBJS): GYP_CFLAGS := " - "$(DEFS_$(BUILDTYPE)) " - "$(INCS_$(BUILDTYPE)) " - "%s " % precompiled_header.GetInclude('c') + - "$(CFLAGS_$(BUILDTYPE)) " - "$(CFLAGS_C_$(BUILDTYPE))") - self.WriteLn("$(OBJS): GYP_CXXFLAGS := " - "$(DEFS_$(BUILDTYPE)) " - "$(INCS_$(BUILDTYPE)) " - "%s " % precompiled_header.GetInclude('cc') + - "$(CFLAGS_$(BUILDTYPE)) " - "$(CFLAGS_CC_$(BUILDTYPE))") - if self.flavor == 'mac': - self.WriteLn("$(OBJS): GYP_OBJCFLAGS := " - "$(DEFS_$(BUILDTYPE)) " - "$(INCS_$(BUILDTYPE)) " - "%s " % precompiled_header.GetInclude('m') + - "$(CFLAGS_$(BUILDTYPE)) " - "$(CFLAGS_C_$(BUILDTYPE)) " - "$(CFLAGS_OBJC_$(BUILDTYPE))") - self.WriteLn("$(OBJS): GYP_OBJCXXFLAGS := " - "$(DEFS_$(BUILDTYPE)) " - "$(INCS_$(BUILDTYPE)) " - "%s " % precompiled_header.GetInclude('mm') + - "$(CFLAGS_$(BUILDTYPE)) " - "$(CFLAGS_CC_$(BUILDTYPE)) " - "$(CFLAGS_OBJCC_$(BUILDTYPE))") - - self.WritePchTargets(precompiled_header.GetPchBuildCommands()) - - # If there are any object files in our input file list, link them into our - # output. - extra_link_deps += filter(Linkable, sources) - - self.WriteLn() - - def WritePchTargets(self, pch_commands): - """Writes make rules to compile prefix headers.""" - if not pch_commands: - return - - for gch, lang_flag, lang, input in pch_commands: - extra_flags = { - 'c': '$(CFLAGS_C_$(BUILDTYPE))', - 'cc': '$(CFLAGS_CC_$(BUILDTYPE))', - 'm': '$(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE))', - 'mm': '$(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE))', - }[lang] - var_name = { - 'c': 'GYP_PCH_CFLAGS', - 'cc': 'GYP_PCH_CXXFLAGS', - 'm': 'GYP_PCH_OBJCFLAGS', - 'mm': 'GYP_PCH_OBJCXXFLAGS', - }[lang] - self.WriteLn("%s: %s := %s " % (gch, var_name, lang_flag) + - "$(DEFS_$(BUILDTYPE)) " - "$(INCS_$(BUILDTYPE)) " - "$(CFLAGS_$(BUILDTYPE)) " + - extra_flags) - - self.WriteLn('%s: %s FORCE_DO_CMD' % (gch, input)) - self.WriteLn('\t@$(call do_cmd,pch_%s,1)' % lang) - self.WriteLn('') - assert ' ' not in gch, ( - "Spaces in gch filenames not supported (%s)" % gch) - self.WriteLn('all_deps += %s' % gch) - self.WriteLn('') - - - def ComputeOutputBasename(self, spec): - """Return the 'output basename' of a gyp spec. - - E.g., the loadable module 'foobar' in directory 'baz' will produce - 'libfoobar.so' - """ - assert not self.is_mac_bundle - - if self.flavor == 'mac' and self.type in ( - 'static_library', 'executable', 'shared_library', 'loadable_module'): - return self.xcode_settings.GetExecutablePath() - - target = spec['target_name'] - target_prefix = '' - target_ext = '' - if self.type == 'static_library': - if target[:3] == 'lib': - target = target[3:] - target_prefix = 'lib' - target_ext = '.a' - elif self.type in ('loadable_module', 'shared_library'): - if target[:3] == 'lib': - target = target[3:] - target_prefix = 'lib' - target_ext = '.so' - elif self.type == 'none': - target = '%s.stamp' % target - elif self.type != 'executable': - print ("ERROR: What output file should be generated?", - "type", self.type, "target", target) - - target_prefix = spec.get('product_prefix', target_prefix) - target = spec.get('product_name', target) - product_ext = spec.get('product_extension') - if product_ext: - target_ext = '.' + product_ext - - return target_prefix + target + target_ext - - - def _InstallImmediately(self): - return self.toolset == 'target' and self.flavor == 'mac' and self.type in ( - 'static_library', 'executable', 'shared_library', 'loadable_module') - - - def ComputeOutput(self, spec): - """Return the 'output' (full output path) of a gyp spec. - - E.g., the loadable module 'foobar' in directory 'baz' will produce - '$(obj)/baz/libfoobar.so' - """ - assert not self.is_mac_bundle - - path = os.path.join('$(obj).' + self.toolset, self.path) - if self.type == 'executable' or self._InstallImmediately(): - path = '$(builddir)' - path = spec.get('product_dir', path) - return os.path.join(path, self.ComputeOutputBasename(spec)) - - - def ComputeMacBundleOutput(self, spec): - """Return the 'output' (full output path) to a bundle output directory.""" - assert self.is_mac_bundle - path = generator_default_variables['PRODUCT_DIR'] - return os.path.join(path, self.xcode_settings.GetWrapperName()) - - - def ComputeMacBundleBinaryOutput(self, spec): - """Return the 'output' (full output path) to the binary in a bundle.""" - path = generator_default_variables['PRODUCT_DIR'] - return os.path.join(path, self.xcode_settings.GetExecutablePath()) - - - def ComputeDeps(self, spec): - """Compute the dependencies of a gyp spec. - - Returns a tuple (deps, link_deps), where each is a list of - filenames that will need to be put in front of make for either - building (deps) or linking (link_deps). - """ - deps = [] - link_deps = [] - if 'dependencies' in spec: - deps.extend([target_outputs[dep] for dep in spec['dependencies'] - if target_outputs[dep]]) - for dep in spec['dependencies']: - if dep in target_link_deps: - link_deps.append(target_link_deps[dep]) - deps.extend(link_deps) - # TODO: It seems we need to transitively link in libraries (e.g. -lfoo)? - # This hack makes it work: - # link_deps.extend(spec.get('libraries', [])) - return (gyp.common.uniquer(deps), gyp.common.uniquer(link_deps)) - - - def WriteDependencyOnExtraOutputs(self, target, extra_outputs): - self.WriteMakeRule([self.output_binary], extra_outputs, - comment = 'Build our special outputs first.', - order_only = True) - - - def WriteTarget(self, spec, configs, deps, link_deps, bundle_deps, - extra_outputs, part_of_all): - """Write Makefile code to produce the final target of the gyp spec. - - spec, configs: input from gyp. - deps, link_deps: dependency lists; see ComputeDeps() - extra_outputs: any extra outputs that our target should depend on - part_of_all: flag indicating this target is part of 'all' - """ - - self.WriteLn('### Rules for final target.') - - if extra_outputs: - self.WriteDependencyOnExtraOutputs(self.output_binary, extra_outputs) - self.WriteMakeRule(extra_outputs, deps, - comment=('Preserve order dependency of ' - 'special output on deps.'), - order_only = True) - - target_postbuilds = {} - if self.type != 'none': - for configname in sorted(configs.keys()): - config = configs[configname] - if self.flavor == 'mac': - ldflags = self.xcode_settings.GetLdflags(configname, - generator_default_variables['PRODUCT_DIR'], - lambda p: Sourceify(self.Absolutify(p))) - - # TARGET_POSTBUILDS_$(BUILDTYPE) is added to postbuilds later on. - gyp_to_build = gyp.common.InvertRelativePath(self.path) - target_postbuild = self.xcode_settings.AddImplicitPostbuilds( - configname, - QuoteSpaces(os.path.normpath(os.path.join(gyp_to_build, - self.output))), - QuoteSpaces(os.path.normpath(os.path.join(gyp_to_build, - self.output_binary)))) - if target_postbuild: - target_postbuilds[configname] = target_postbuild - else: - ldflags = config.get('ldflags', []) - # Compute an rpath for this output if needed. - if any(dep.endswith('.so') or '.so.' in dep for dep in deps): - # We want to get the literal string "$ORIGIN" into the link command, - # so we need lots of escaping. - ldflags.append(r'-Wl,-rpath=\$$ORIGIN/lib.%s/' % self.toolset) - ldflags.append(r'-Wl,-rpath-link=\$(builddir)/lib.%s/' % - self.toolset) - library_dirs = config.get('library_dirs', []) - ldflags += [('-L%s' % library_dir) for library_dir in library_dirs] - self.WriteList(ldflags, 'LDFLAGS_%s' % configname) - if self.flavor == 'mac': - self.WriteList(self.xcode_settings.GetLibtoolflags(configname), - 'LIBTOOLFLAGS_%s' % configname) - libraries = spec.get('libraries') - if libraries: - # Remove duplicate entries - libraries = gyp.common.uniquer(libraries) - if self.flavor == 'mac': - libraries = self.xcode_settings.AdjustLibraries(libraries) - self.WriteList(libraries, 'LIBS') - self.WriteLn('%s: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))' % - QuoteSpaces(self.output_binary)) - self.WriteLn('%s: LIBS := $(LIBS)' % QuoteSpaces(self.output_binary)) - - if self.flavor == 'mac': - self.WriteLn('%s: GYP_LIBTOOLFLAGS := $(LIBTOOLFLAGS_$(BUILDTYPE))' % - QuoteSpaces(self.output_binary)) - - # Postbuild actions. Like actions, but implicitly depend on the target's - # output. - postbuilds = [] - if self.flavor == 'mac': - if target_postbuilds: - postbuilds.append('$(TARGET_POSTBUILDS_$(BUILDTYPE))') - postbuilds.extend( - gyp.xcode_emulation.GetSpecPostbuildCommands(spec)) - - if postbuilds: - # Envvars may be referenced by TARGET_POSTBUILDS_$(BUILDTYPE), - # so we must output its definition first, since we declare variables - # using ":=". - self.WriteSortedXcodeEnv(self.output, self.GetSortedXcodePostbuildEnv()) - - for configname in target_postbuilds: - self.WriteLn('%s: TARGET_POSTBUILDS_%s := %s' % - (QuoteSpaces(self.output), - configname, - gyp.common.EncodePOSIXShellList(target_postbuilds[configname]))) - - # Postbuilds expect to be run in the gyp file's directory, so insert an - # implicit postbuild to cd to there. - postbuilds.insert(0, gyp.common.EncodePOSIXShellList(['cd', self.path])) - for i in xrange(len(postbuilds)): - if not postbuilds[i].startswith('$'): - postbuilds[i] = EscapeShellArgument(postbuilds[i]) - self.WriteLn('%s: builddir := $(abs_builddir)' % QuoteSpaces(self.output)) - self.WriteLn('%s: POSTBUILDS := %s' % ( - QuoteSpaces(self.output), ' '.join(postbuilds))) - - # A bundle directory depends on its dependencies such as bundle resources - # and bundle binary. When all dependencies have been built, the bundle - # needs to be packaged. - if self.is_mac_bundle: - # If the framework doesn't contain a binary, then nothing depends - # on the actions -- make the framework depend on them directly too. - self.WriteDependencyOnExtraOutputs(self.output, extra_outputs) - - # Bundle dependencies. Note that the code below adds actions to this - # target, so if you move these two lines, move the lines below as well. - self.WriteList(map(QuoteSpaces, bundle_deps), 'BUNDLE_DEPS') - self.WriteLn('%s: $(BUNDLE_DEPS)' % QuoteSpaces(self.output)) - - # After the framework is built, package it. Needs to happen before - # postbuilds, since postbuilds depend on this. - if self.type in ('shared_library', 'loadable_module'): - self.WriteLn('\t@$(call do_cmd,mac_package_framework,,,%s)' % - self.xcode_settings.GetFrameworkVersion()) - - # Bundle postbuilds can depend on the whole bundle, so run them after - # the bundle is packaged, not already after the bundle binary is done. - if postbuilds: - self.WriteLn('\t@$(call do_postbuilds)') - postbuilds = [] # Don't write postbuilds for target's output. - - # Needed by test/mac/gyptest-rebuild.py. - self.WriteLn('\t@true # No-op, used by tests') - - # Since this target depends on binary and resources which are in - # nested subfolders, the framework directory will be older than - # its dependencies usually. To prevent this rule from executing - # on every build (expensive, especially with postbuilds), expliclity - # update the time on the framework directory. - self.WriteLn('\t@touch -c %s' % QuoteSpaces(self.output)) - - if postbuilds: - assert not self.is_mac_bundle, ('Postbuilds for bundles should be done ' - 'on the bundle, not the binary (target \'%s\')' % self.target) - assert 'product_dir' not in spec, ('Postbuilds do not work with ' - 'custom product_dir') - - if self.type == 'executable': - self.WriteLn('%s: LD_INPUTS := %s' % ( - QuoteSpaces(self.output_binary), - ' '.join(map(QuoteSpaces, link_deps)))) - if self.toolset == 'host' and self.flavor == 'android': - self.WriteDoCmd([self.output_binary], link_deps, 'link_host', - part_of_all, postbuilds=postbuilds) - else: - self.WriteDoCmd([self.output_binary], link_deps, 'link', part_of_all, - postbuilds=postbuilds) - - elif self.type == 'static_library': - for link_dep in link_deps: - assert ' ' not in link_dep, ( - "Spaces in alink input filenames not supported (%s)" % link_dep) - if (self.flavor not in ('mac', 'openbsd', 'netbsd', 'win') and not - self.is_standalone_static_library): - self.WriteDoCmd([self.output_binary], link_deps, 'alink_thin', - part_of_all, postbuilds=postbuilds) - else: - self.WriteDoCmd([self.output_binary], link_deps, 'alink', part_of_all, - postbuilds=postbuilds) - elif self.type == 'shared_library': - self.WriteLn('%s: LD_INPUTS := %s' % ( - QuoteSpaces(self.output_binary), - ' '.join(map(QuoteSpaces, link_deps)))) - self.WriteDoCmd([self.output_binary], link_deps, 'solink', part_of_all, - postbuilds=postbuilds) - elif self.type == 'loadable_module': - for link_dep in link_deps: - assert ' ' not in link_dep, ( - "Spaces in module input filenames not supported (%s)" % link_dep) - if self.toolset == 'host' and self.flavor == 'android': - self.WriteDoCmd([self.output_binary], link_deps, 'solink_module_host', - part_of_all, postbuilds=postbuilds) - else: - self.WriteDoCmd( - [self.output_binary], link_deps, 'solink_module', part_of_all, - postbuilds=postbuilds) - elif self.type == 'none': - # Write a stamp line. - self.WriteDoCmd([self.output_binary], deps, 'touch', part_of_all, - postbuilds=postbuilds) - else: - print "WARNING: no output for", self.type, target - - # Add an alias for each target (if there are any outputs). - # Installable target aliases are created below. - if ((self.output and self.output != self.target) and - (self.type not in self._INSTALLABLE_TARGETS)): - self.WriteMakeRule([self.target], [self.output], - comment='Add target alias', phony = True) - if part_of_all: - self.WriteMakeRule(['all'], [self.target], - comment = 'Add target alias to "all" target.', - phony = True) - - # Add special-case rules for our installable targets. - # 1) They need to install to the build dir or "product" dir. - # 2) They get shortcuts for building (e.g. "make chrome"). - # 3) They are part of "make all". - if (self.type in self._INSTALLABLE_TARGETS or - self.is_standalone_static_library): - if self.type == 'shared_library': - file_desc = 'shared library' - elif self.type == 'static_library': - file_desc = 'static library' - else: - file_desc = 'executable' - install_path = self._InstallableTargetInstallPath() - installable_deps = [self.output] - if (self.flavor == 'mac' and not 'product_dir' in spec and - self.toolset == 'target'): - # On mac, products are created in install_path immediately. - assert install_path == self.output, '%s != %s' % ( - install_path, self.output) - - # Point the target alias to the final binary output. - self.WriteMakeRule([self.target], [install_path], - comment='Add target alias', phony = True) - if install_path != self.output: - assert not self.is_mac_bundle # See comment a few lines above. - self.WriteDoCmd([install_path], [self.output], 'copy', - comment = 'Copy this to the %s output path.' % - file_desc, part_of_all=part_of_all) - installable_deps.append(install_path) - if self.output != self.alias and self.alias != self.target: - self.WriteMakeRule([self.alias], installable_deps, - comment = 'Short alias for building this %s.' % - file_desc, phony = True) - if part_of_all: - self.WriteMakeRule(['all'], [install_path], - comment = 'Add %s to "all" target.' % file_desc, - phony = True) - - - def WriteList(self, value_list, variable=None, prefix='', - quoter=QuoteIfNecessary): - """Write a variable definition that is a list of values. - - E.g. WriteList(['a','b'], 'foo', prefix='blah') writes out - foo = blaha blahb - but in a pretty-printed style. - """ - values = '' - if value_list: - value_list = [quoter(prefix + l) for l in value_list] - values = ' \\\n\t' + ' \\\n\t'.join(value_list) - self.fp.write('%s :=%s\n\n' % (variable, values)) - - - def WriteDoCmd(self, outputs, inputs, command, part_of_all, comment=None, - postbuilds=False): - """Write a Makefile rule that uses do_cmd. - - This makes the outputs dependent on the command line that was run, - as well as support the V= make command line flag. - """ - suffix = '' - if postbuilds: - assert ',' not in command - suffix = ',,1' # Tell do_cmd to honor $POSTBUILDS - self.WriteMakeRule(outputs, inputs, - actions = ['$(call do_cmd,%s%s)' % (command, suffix)], - comment = comment, - command = command, - force = True) - # Add our outputs to the list of targets we read depfiles from. - # all_deps is only used for deps file reading, and for deps files we replace - # spaces with ? because escaping doesn't work with make's $(sort) and - # other functions. - outputs = [QuoteSpaces(o, SPACE_REPLACEMENT) for o in outputs] - self.WriteLn('all_deps += %s' % ' '.join(outputs)) - - - def WriteMakeRule(self, outputs, inputs, actions=None, comment=None, - order_only=False, force=False, phony=False, command=None): - """Write a Makefile rule, with some extra tricks. - - outputs: a list of outputs for the rule (note: this is not directly - supported by make; see comments below) - inputs: a list of inputs for the rule - actions: a list of shell commands to run for the rule - comment: a comment to put in the Makefile above the rule (also useful - for making this Python script's code self-documenting) - order_only: if true, makes the dependency order-only - force: if true, include FORCE_DO_CMD as an order-only dep - phony: if true, the rule does not actually generate the named output, the - output is just a name to run the rule - command: (optional) command name to generate unambiguous labels - """ - outputs = map(QuoteSpaces, outputs) - inputs = map(QuoteSpaces, inputs) - - if comment: - self.WriteLn('# ' + comment) - if phony: - self.WriteLn('.PHONY: ' + ' '.join(outputs)) - if actions: - self.WriteLn("%s: TOOLSET := $(TOOLSET)" % outputs[0]) - force_append = ' FORCE_DO_CMD' if force else '' - - if order_only: - # Order only rule: Just write a simple rule. - # TODO(evanm): just make order_only a list of deps instead of this hack. - self.WriteLn('%s: | %s%s' % - (' '.join(outputs), ' '.join(inputs), force_append)) - elif len(outputs) == 1: - # Regular rule, one output: Just write a simple rule. - self.WriteLn('%s: %s%s' % (outputs[0], ' '.join(inputs), force_append)) - else: - # Regular rule, more than one output: Multiple outputs are tricky in - # make. We will write three rules: - # - All outputs depend on an intermediate file. - # - Make .INTERMEDIATE depend on the intermediate. - # - The intermediate file depends on the inputs and executes the - # actual command. - # - The intermediate recipe will 'touch' the intermediate file. - # - The multi-output rule will have an do-nothing recipe. - intermediate = "%s.intermediate" % (command if command else self.target) - self.WriteLn('%s: %s' % (' '.join(outputs), intermediate)) - self.WriteLn('\t%s' % '@:'); - self.WriteLn('%s: %s' % ('.INTERMEDIATE', intermediate)) - self.WriteLn('%s: %s%s' % - (intermediate, ' '.join(inputs), force_append)) - actions.insert(0, '$(call do_cmd,touch)') - - if actions: - for action in actions: - self.WriteLn('\t%s' % action) - self.WriteLn() - - - def WriteAndroidNdkModuleRule(self, module_name, all_sources, link_deps): - """Write a set of LOCAL_XXX definitions for Android NDK. - - These variable definitions will be used by Android NDK but do nothing for - non-Android applications. - - Arguments: - module_name: Android NDK module name, which must be unique among all - module names. - all_sources: A list of source files (will be filtered by Compilable). - link_deps: A list of link dependencies, which must be sorted in - the order from dependencies to dependents. - """ - if self.type not in ('executable', 'shared_library', 'static_library'): - return - - self.WriteLn('# Variable definitions for Android applications') - self.WriteLn('include $(CLEAR_VARS)') - self.WriteLn('LOCAL_MODULE := ' + module_name) - self.WriteLn('LOCAL_CFLAGS := $(CFLAGS_$(BUILDTYPE)) ' - '$(DEFS_$(BUILDTYPE)) ' - # LOCAL_CFLAGS is applied to both of C and C++. There is - # no way to specify $(CFLAGS_C_$(BUILDTYPE)) only for C - # sources. - '$(CFLAGS_C_$(BUILDTYPE)) ' - # $(INCS_$(BUILDTYPE)) includes the prefix '-I' while - # LOCAL_C_INCLUDES does not expect it. So put it in - # LOCAL_CFLAGS. - '$(INCS_$(BUILDTYPE))') - # LOCAL_CXXFLAGS is obsolete and LOCAL_CPPFLAGS is preferred. - self.WriteLn('LOCAL_CPPFLAGS := $(CFLAGS_CC_$(BUILDTYPE))') - self.WriteLn('LOCAL_C_INCLUDES :=') - self.WriteLn('LOCAL_LDLIBS := $(LDFLAGS_$(BUILDTYPE)) $(LIBS)') - - # Detect the C++ extension. - cpp_ext = {'.cc': 0, '.cpp': 0, '.cxx': 0} - default_cpp_ext = '.cpp' - for filename in all_sources: - ext = os.path.splitext(filename)[1] - if ext in cpp_ext: - cpp_ext[ext] += 1 - if cpp_ext[ext] > cpp_ext[default_cpp_ext]: - default_cpp_ext = ext - self.WriteLn('LOCAL_CPP_EXTENSION := ' + default_cpp_ext) - - self.WriteList(map(self.Absolutify, filter(Compilable, all_sources)), - 'LOCAL_SRC_FILES') - - # Filter out those which do not match prefix and suffix and produce - # the resulting list without prefix and suffix. - def DepsToModules(deps, prefix, suffix): - modules = [] - for filepath in deps: - filename = os.path.basename(filepath) - if filename.startswith(prefix) and filename.endswith(suffix): - modules.append(filename[len(prefix):-len(suffix)]) - return modules - - # Retrieve the default value of 'SHARED_LIB_SUFFIX' - params = {'flavor': 'linux'} - default_variables = {} - CalculateVariables(default_variables, params) - - self.WriteList( - DepsToModules(link_deps, - generator_default_variables['SHARED_LIB_PREFIX'], - default_variables['SHARED_LIB_SUFFIX']), - 'LOCAL_SHARED_LIBRARIES') - self.WriteList( - DepsToModules(link_deps, - generator_default_variables['STATIC_LIB_PREFIX'], - generator_default_variables['STATIC_LIB_SUFFIX']), - 'LOCAL_STATIC_LIBRARIES') - - if self.type == 'executable': - self.WriteLn('include $(BUILD_EXECUTABLE)') - elif self.type == 'shared_library': - self.WriteLn('include $(BUILD_SHARED_LIBRARY)') - elif self.type == 'static_library': - self.WriteLn('include $(BUILD_STATIC_LIBRARY)') - self.WriteLn() - - - def WriteLn(self, text=''): - self.fp.write(text + '\n') - - - def GetSortedXcodeEnv(self, additional_settings=None): - return gyp.xcode_emulation.GetSortedXcodeEnv( - self.xcode_settings, "$(abs_builddir)", - os.path.join("$(abs_srcdir)", self.path), "$(BUILDTYPE)", - additional_settings) - - - def GetSortedXcodePostbuildEnv(self): - # CHROMIUM_STRIP_SAVE_FILE is a chromium-specific hack. - # TODO(thakis): It would be nice to have some general mechanism instead. - strip_save_file = self.xcode_settings.GetPerTargetSetting( - 'CHROMIUM_STRIP_SAVE_FILE', '') - # Even if strip_save_file is empty, explicitly write it. Else a postbuild - # might pick up an export from an earlier target. - return self.GetSortedXcodeEnv( - additional_settings={'CHROMIUM_STRIP_SAVE_FILE': strip_save_file}) - - - def WriteSortedXcodeEnv(self, target, env): - for k, v in env: - # For - # foo := a\ b - # the escaped space does the right thing. For - # export foo := a\ b - # it does not -- the backslash is written to the env as literal character. - # So don't escape spaces in |env[k]|. - self.WriteLn('%s: export %s := %s' % (QuoteSpaces(target), k, v)) - - - def Objectify(self, path): - """Convert a path to its output directory form.""" - if '$(' in path: - path = path.replace('$(obj)/', '$(obj).%s/$(TARGET)/' % self.toolset) - if not '$(obj)' in path: - path = '$(obj).%s/$(TARGET)/%s' % (self.toolset, path) - return path - - - def Pchify(self, path, lang): - """Convert a prefix header path to its output directory form.""" - path = self.Absolutify(path) - if '$(' in path: - path = path.replace('$(obj)/', '$(obj).%s/$(TARGET)/pch-%s' % - (self.toolset, lang)) - return path - return '$(obj).%s/$(TARGET)/pch-%s/%s' % (self.toolset, lang, path) - - - def Absolutify(self, path): - """Convert a subdirectory-relative path into a base-relative path. - Skips over paths that contain variables.""" - if '$(' in path: - # Don't call normpath in this case, as it might collapse the - # path too aggressively if it features '..'. However it's still - # important to strip trailing slashes. - return path.rstrip('/') - return os.path.normpath(os.path.join(self.path, path)) - - - def ExpandInputRoot(self, template, expansion, dirname): - if '%(INPUT_ROOT)s' not in template and '%(INPUT_DIRNAME)s' not in template: - return template - path = template % { - 'INPUT_ROOT': expansion, - 'INPUT_DIRNAME': dirname, - } - return path - - - def _InstallableTargetInstallPath(self): - """Returns the location of the final output for an installable target.""" - # Xcode puts shared_library results into PRODUCT_DIR, and some gyp files - # rely on this. Emulate this behavior for mac. - - # XXX(TooTallNate): disabling this code since we don't want this behavior... - #if (self.type == 'shared_library' and - # (self.flavor != 'mac' or self.toolset != 'target')): - # # Install all shared libs into a common directory (per toolset) for - # # convenient access with LD_LIBRARY_PATH. - # return '$(builddir)/lib.%s/%s' % (self.toolset, self.alias) - return '$(builddir)/' + self.alias - - -def WriteAutoRegenerationRule(params, root_makefile, makefile_name, - build_files): - """Write the target to regenerate the Makefile.""" - options = params['options'] - build_files_args = [gyp.common.RelativePath(filename, options.toplevel_dir) - for filename in params['build_files_arg']] - - gyp_binary = gyp.common.FixIfRelativePath(params['gyp_binary'], - options.toplevel_dir) - if not gyp_binary.startswith(os.sep): - gyp_binary = os.path.join('.', gyp_binary) - - root_makefile.write( - "quiet_cmd_regen_makefile = ACTION Regenerating $@\n" - "cmd_regen_makefile = cd $(srcdir); %(cmd)s\n" - "%(makefile_name)s: %(deps)s\n" - "\t$(call do_cmd,regen_makefile)\n\n" % { - 'makefile_name': makefile_name, - 'deps': ' '.join(map(Sourceify, build_files)), - 'cmd': gyp.common.EncodePOSIXShellList( - [gyp_binary, '-fmake'] + - gyp.RegenerateFlags(options) + - build_files_args)}) - - -def PerformBuild(data, configurations, params): - options = params['options'] - for config in configurations: - arguments = ['make'] - if options.toplevel_dir and options.toplevel_dir != '.': - arguments += '-C', options.toplevel_dir - arguments.append('BUILDTYPE=' + config) - print 'Building [%s]: %s' % (config, arguments) - subprocess.check_call(arguments) - - -def GenerateOutput(target_list, target_dicts, data, params): - options = params['options'] - flavor = gyp.common.GetFlavor(params) - generator_flags = params.get('generator_flags', {}) - builddir_name = generator_flags.get('output_dir', 'out') - android_ndk_version = generator_flags.get('android_ndk_version', None) - default_target = generator_flags.get('default_target', 'all') - - def CalculateMakefilePath(build_file, base_name): - """Determine where to write a Makefile for a given gyp file.""" - # Paths in gyp files are relative to the .gyp file, but we want - # paths relative to the source root for the master makefile. Grab - # the path of the .gyp file as the base to relativize against. - # E.g. "foo/bar" when we're constructing targets for "foo/bar/baz.gyp". - base_path = gyp.common.RelativePath(os.path.dirname(build_file), - options.depth) - # We write the file in the base_path directory. - output_file = os.path.join(options.depth, base_path, base_name) - if options.generator_output: - output_file = os.path.join( - options.depth, options.generator_output, base_path, base_name) - base_path = gyp.common.RelativePath(os.path.dirname(build_file), - options.toplevel_dir) - return base_path, output_file - - # TODO: search for the first non-'Default' target. This can go - # away when we add verification that all targets have the - # necessary configurations. - default_configuration = None - toolsets = set([target_dicts[target]['toolset'] for target in target_list]) - for target in target_list: - spec = target_dicts[target] - if spec['default_configuration'] != 'Default': - default_configuration = spec['default_configuration'] - break - if not default_configuration: - default_configuration = 'Default' - - srcdir = '.' - makefile_name = 'Makefile' + options.suffix - makefile_path = os.path.join(options.toplevel_dir, makefile_name) - if options.generator_output: - global srcdir_prefix - makefile_path = os.path.join( - options.toplevel_dir, options.generator_output, makefile_name) - srcdir = gyp.common.RelativePath(srcdir, options.generator_output) - srcdir_prefix = '$(srcdir)/' - - flock_command= 'flock' - copy_archive_arguments = '-af' - header_params = { - 'default_target': default_target, - 'builddir': builddir_name, - 'default_configuration': default_configuration, - 'flock': flock_command, - 'flock_index': 1, - 'link_commands': LINK_COMMANDS_LINUX, - 'extra_commands': '', - 'srcdir': srcdir, - 'copy_archive_args': copy_archive_arguments, - } - if flavor == 'mac': - flock_command = './gyp-mac-tool flock' - header_params.update({ - 'flock': flock_command, - 'flock_index': 2, - 'link_commands': LINK_COMMANDS_MAC, - 'extra_commands': SHARED_HEADER_MAC_COMMANDS, - }) - elif flavor == 'android': - header_params.update({ - 'link_commands': LINK_COMMANDS_ANDROID, - }) - elif flavor == 'solaris': - header_params.update({ - 'flock': './gyp-flock-tool flock', - 'flock_index': 2, - }) - elif flavor == 'freebsd': - # Note: OpenBSD has sysutils/flock. lockf seems to be FreeBSD specific. - header_params.update({ - 'flock': 'lockf', - }) - elif flavor == 'openbsd': - copy_archive_arguments = '-pPRf' - header_params.update({ - 'copy_archive_args': copy_archive_arguments, - }) - elif flavor == 'aix': - copy_archive_arguments = '-pPRf' - header_params.update({ - 'copy_archive_args': copy_archive_arguments, - 'link_commands': LINK_COMMANDS_AIX, - 'flock': './gyp-flock-tool flock', - 'flock_index': 2, - }) - - header_params.update({ - 'CC.target': GetEnvironFallback(('CC_target', 'CC'), '$(CC)'), - 'AR.target': GetEnvironFallback(('AR_target', 'AR'), '$(AR)'), - 'CXX.target': GetEnvironFallback(('CXX_target', 'CXX'), '$(CXX)'), - 'LINK.target': GetEnvironFallback(('LINK_target', 'LINK'), '$(LINK)'), - 'CC.host': GetEnvironFallback(('CC_host',), 'gcc'), - 'AR.host': GetEnvironFallback(('AR_host',), 'ar'), - 'CXX.host': GetEnvironFallback(('CXX_host',), 'g++'), - 'LINK.host': GetEnvironFallback(('LINK_host',), '$(CXX.host)'), - }) - - build_file, _, _ = gyp.common.ParseQualifiedTarget(target_list[0]) - make_global_settings_array = data[build_file].get('make_global_settings', []) - wrappers = {} - for key, value in make_global_settings_array: - if key.endswith('_wrapper'): - wrappers[key[:-len('_wrapper')]] = '$(abspath %s)' % value - make_global_settings = '' - for key, value in make_global_settings_array: - if re.match('.*_wrapper', key): - continue - if value[0] != '$': - value = '$(abspath %s)' % value - wrapper = wrappers.get(key) - if wrapper: - value = '%s %s' % (wrapper, value) - del wrappers[key] - if key in ('CC', 'CC.host', 'CXX', 'CXX.host'): - make_global_settings += ( - 'ifneq (,$(filter $(origin %s), undefined default))\n' % key) - # Let gyp-time envvars win over global settings. - env_key = key.replace('.', '_') # CC.host -> CC_host - if env_key in os.environ: - value = os.environ[env_key] - make_global_settings += ' %s = %s\n' % (key, value) - make_global_settings += 'endif\n' - else: - make_global_settings += '%s ?= %s\n' % (key, value) - # TODO(ukai): define cmd when only wrapper is specified in - # make_global_settings. - - header_params['make_global_settings'] = make_global_settings - - gyp.common.EnsureDirExists(makefile_path) - root_makefile = open(makefile_path, 'w') - root_makefile.write(SHARED_HEADER % header_params) - # Currently any versions have the same effect, but in future the behavior - # could be different. - if android_ndk_version: - root_makefile.write( - '# Define LOCAL_PATH for build of Android applications.\n' - 'LOCAL_PATH := $(call my-dir)\n' - '\n') - for toolset in toolsets: - root_makefile.write('TOOLSET := %s\n' % toolset) - WriteRootHeaderSuffixRules(root_makefile) - - # Put build-time support tools next to the root Makefile. - dest_path = os.path.dirname(makefile_path) - gyp.common.CopyTool(flavor, dest_path) - - # Find the list of targets that derive from the gyp file(s) being built. - needed_targets = set() - for build_file in params['build_files']: - for target in gyp.common.AllTargets(target_list, target_dicts, build_file): - needed_targets.add(target) - - build_files = set() - include_list = set() - for qualified_target in target_list: - build_file, target, toolset = gyp.common.ParseQualifiedTarget( - qualified_target) - - this_make_global_settings = data[build_file].get('make_global_settings', []) - assert make_global_settings_array == this_make_global_settings, ( - "make_global_settings needs to be the same for all targets. %s vs. %s" % - (this_make_global_settings, make_global_settings)) - - build_files.add(gyp.common.RelativePath(build_file, options.toplevel_dir)) - included_files = data[build_file]['included_files'] - for included_file in included_files: - # The included_files entries are relative to the dir of the build file - # that included them, so we have to undo that and then make them relative - # to the root dir. - relative_include_file = gyp.common.RelativePath( - gyp.common.UnrelativePath(included_file, build_file), - options.toplevel_dir) - abs_include_file = os.path.abspath(relative_include_file) - # If the include file is from the ~/.gyp dir, we should use absolute path - # so that relocating the src dir doesn't break the path. - if (params['home_dot_gyp'] and - abs_include_file.startswith(params['home_dot_gyp'])): - build_files.add(abs_include_file) - else: - build_files.add(relative_include_file) - - base_path, output_file = CalculateMakefilePath(build_file, - target + '.' + toolset + options.suffix + '.mk') - - spec = target_dicts[qualified_target] - configs = spec['configurations'] - - if flavor == 'mac': - gyp.xcode_emulation.MergeGlobalXcodeSettingsToSpec(data[build_file], spec) - - writer = MakefileWriter(generator_flags, flavor) - writer.Write(qualified_target, base_path, output_file, spec, configs, - part_of_all=qualified_target in needed_targets) - - # Our root_makefile lives at the source root. Compute the relative path - # from there to the output_file for including. - mkfile_rel_path = gyp.common.RelativePath(output_file, - os.path.dirname(makefile_path)) - include_list.add(mkfile_rel_path) - - # Write out per-gyp (sub-project) Makefiles. - depth_rel_path = gyp.common.RelativePath(options.depth, os.getcwd()) - for build_file in build_files: - # The paths in build_files were relativized above, so undo that before - # testing against the non-relativized items in target_list and before - # calculating the Makefile path. - build_file = os.path.join(depth_rel_path, build_file) - gyp_targets = [target_dicts[target]['target_name'] for target in target_list - if target.startswith(build_file) and - target in needed_targets] - # Only generate Makefiles for gyp files with targets. - if not gyp_targets: - continue - base_path, output_file = CalculateMakefilePath(build_file, - os.path.splitext(os.path.basename(build_file))[0] + '.Makefile') - makefile_rel_path = gyp.common.RelativePath(os.path.dirname(makefile_path), - os.path.dirname(output_file)) - writer.WriteSubMake(output_file, makefile_rel_path, gyp_targets, - builddir_name) - - - # Write out the sorted list of includes. - root_makefile.write('\n') - for include_file in sorted(include_list): - # We wrap each .mk include in an if statement so users can tell make to - # not load a file by setting NO_LOAD. The below make code says, only - # load the .mk file if the .mk filename doesn't start with a token in - # NO_LOAD. - root_makefile.write( - "ifeq ($(strip $(foreach prefix,$(NO_LOAD),\\\n" - " $(findstring $(join ^,$(prefix)),\\\n" - " $(join ^," + include_file + ")))),)\n") - root_makefile.write(" include " + include_file + "\n") - root_makefile.write("endif\n") - root_makefile.write('\n') - - if (not generator_flags.get('standalone') - and generator_flags.get('auto_regeneration', True)): - WriteAutoRegenerationRule(params, root_makefile, makefile_name, build_files) - - root_makefile.write(SHARED_FOOTER) - - root_makefile.close() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py deleted file mode 100644 index 2ecf964c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +++ /dev/null @@ -1,3459 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import copy -import ntpath -import os -import posixpath -import re -import subprocess -import sys - -import gyp.common -import gyp.easy_xml as easy_xml -import gyp.generator.ninja as ninja_generator -import gyp.MSVSNew as MSVSNew -import gyp.MSVSProject as MSVSProject -import gyp.MSVSSettings as MSVSSettings -import gyp.MSVSToolFile as MSVSToolFile -import gyp.MSVSUserFile as MSVSUserFile -import gyp.MSVSUtil as MSVSUtil -import gyp.MSVSVersion as MSVSVersion -from gyp.common import GypError -from gyp.common import OrderedSet - -# TODO: Remove once bots are on 2.7, http://crbug.com/241769 -def _import_OrderedDict(): - import collections - try: - return collections.OrderedDict - except AttributeError: - import gyp.ordered_dict - return gyp.ordered_dict.OrderedDict -OrderedDict = _import_OrderedDict() - - -# Regular expression for validating Visual Studio GUIDs. If the GUID -# contains lowercase hex letters, MSVS will be fine. However, -# IncrediBuild BuildConsole will parse the solution file, but then -# silently skip building the target causing hard to track down errors. -# Note that this only happens with the BuildConsole, and does not occur -# if IncrediBuild is executed from inside Visual Studio. This regex -# validates that the string looks like a GUID with all uppercase hex -# letters. -VALID_MSVS_GUID_CHARS = re.compile(r'^[A-F0-9\-]+$') - - -generator_default_variables = { - 'EXECUTABLE_PREFIX': '', - 'EXECUTABLE_SUFFIX': '.exe', - 'STATIC_LIB_PREFIX': '', - 'SHARED_LIB_PREFIX': '', - 'STATIC_LIB_SUFFIX': '.lib', - 'SHARED_LIB_SUFFIX': '.dll', - 'INTERMEDIATE_DIR': '$(IntDir)', - 'SHARED_INTERMEDIATE_DIR': '$(OutDir)obj/global_intermediate', - 'OS': 'win', - 'PRODUCT_DIR': '$(OutDir)', - 'LIB_DIR': '$(OutDir)lib', - 'RULE_INPUT_ROOT': '$(InputName)', - 'RULE_INPUT_DIRNAME': '$(InputDir)', - 'RULE_INPUT_EXT': '$(InputExt)', - 'RULE_INPUT_NAME': '$(InputFileName)', - 'RULE_INPUT_PATH': '$(InputPath)', - 'CONFIGURATION_NAME': '$(ConfigurationName)', -} - - -# The msvs specific sections that hold paths -generator_additional_path_sections = [ - 'msvs_cygwin_dirs', - 'msvs_props', -] - - -generator_additional_non_configuration_keys = [ - 'msvs_cygwin_dirs', - 'msvs_cygwin_shell', - 'msvs_large_pdb', - 'msvs_shard', - 'msvs_external_builder', - 'msvs_external_builder_out_dir', - 'msvs_external_builder_build_cmd', - 'msvs_external_builder_clean_cmd', - 'msvs_external_builder_clcompile_cmd', - 'msvs_enable_winrt', - 'msvs_requires_importlibrary', - 'msvs_enable_winphone', - 'msvs_application_type_revision', - 'msvs_target_platform_version', - 'msvs_target_platform_minversion', -] - - -# List of precompiled header related keys. -precomp_keys = [ - 'msvs_precompiled_header', - 'msvs_precompiled_source', -] - - -cached_username = None - - -cached_domain = None - - -# TODO(gspencer): Switch the os.environ calls to be -# win32api.GetDomainName() and win32api.GetUserName() once the -# python version in depot_tools has been updated to work on Vista -# 64-bit. -def _GetDomainAndUserName(): - if sys.platform not in ('win32', 'cygwin'): - return ('DOMAIN', 'USERNAME') - global cached_username - global cached_domain - if not cached_domain or not cached_username: - domain = os.environ.get('USERDOMAIN') - username = os.environ.get('USERNAME') - if not domain or not username: - call = subprocess.Popen(['net', 'config', 'Workstation'], - stdout=subprocess.PIPE) - config = call.communicate()[0] - username_re = re.compile(r'^User name\s+(\S+)', re.MULTILINE) - username_match = username_re.search(config) - if username_match: - username = username_match.group(1) - domain_re = re.compile(r'^Logon domain\s+(\S+)', re.MULTILINE) - domain_match = domain_re.search(config) - if domain_match: - domain = domain_match.group(1) - cached_domain = domain - cached_username = username - return (cached_domain, cached_username) - -fixpath_prefix = None - - -def _NormalizedSource(source): - """Normalize the path. - - But not if that gets rid of a variable, as this may expand to something - larger than one directory. - - Arguments: - source: The path to be normalize.d - - Returns: - The normalized path. - """ - normalized = os.path.normpath(source) - if source.count('$') == normalized.count('$'): - source = normalized - return source - - -def _FixPath(path): - """Convert paths to a form that will make sense in a vcproj file. - - Arguments: - path: The path to convert, may contain / etc. - Returns: - The path with all slashes made into backslashes. - """ - if fixpath_prefix and path and not os.path.isabs(path) and not path[0] == '$': - path = os.path.join(fixpath_prefix, path) - path = path.replace('/', '\\') - path = _NormalizedSource(path) - if path and path[-1] == '\\': - path = path[:-1] - return path - - -def _FixPaths(paths): - """Fix each of the paths of the list.""" - return [_FixPath(i) for i in paths] - - -def _ConvertSourcesToFilterHierarchy(sources, prefix=None, excluded=None, - list_excluded=True, msvs_version=None): - """Converts a list split source file paths into a vcproj folder hierarchy. - - Arguments: - sources: A list of source file paths split. - prefix: A list of source file path layers meant to apply to each of sources. - excluded: A set of excluded files. - msvs_version: A MSVSVersion object. - - Returns: - A hierarchy of filenames and MSVSProject.Filter objects that matches the - layout of the source tree. - For example: - _ConvertSourcesToFilterHierarchy([['a', 'bob1.c'], ['b', 'bob2.c']], - prefix=['joe']) - --> - [MSVSProject.Filter('a', contents=['joe\\a\\bob1.c']), - MSVSProject.Filter('b', contents=['joe\\b\\bob2.c'])] - """ - if not prefix: prefix = [] - result = [] - excluded_result = [] - folders = OrderedDict() - # Gather files into the final result, excluded, or folders. - for s in sources: - if len(s) == 1: - filename = _NormalizedSource('\\'.join(prefix + s)) - if filename in excluded: - excluded_result.append(filename) - else: - result.append(filename) - elif msvs_version and not msvs_version.UsesVcxproj(): - # For MSVS 2008 and earlier, we need to process all files before walking - # the sub folders. - if not folders.get(s[0]): - folders[s[0]] = [] - folders[s[0]].append(s[1:]) - else: - contents = _ConvertSourcesToFilterHierarchy([s[1:]], prefix + [s[0]], - excluded=excluded, - list_excluded=list_excluded, - msvs_version=msvs_version) - contents = MSVSProject.Filter(s[0], contents=contents) - result.append(contents) - # Add a folder for excluded files. - if excluded_result and list_excluded: - excluded_folder = MSVSProject.Filter('_excluded_files', - contents=excluded_result) - result.append(excluded_folder) - - if msvs_version and msvs_version.UsesVcxproj(): - return result - - # Populate all the folders. - for f in folders: - contents = _ConvertSourcesToFilterHierarchy(folders[f], prefix=prefix + [f], - excluded=excluded, - list_excluded=list_excluded, - msvs_version=msvs_version) - contents = MSVSProject.Filter(f, contents=contents) - result.append(contents) - return result - - -def _ToolAppend(tools, tool_name, setting, value, only_if_unset=False): - if not value: return - _ToolSetOrAppend(tools, tool_name, setting, value, only_if_unset) - - -def _ToolSetOrAppend(tools, tool_name, setting, value, only_if_unset=False): - # TODO(bradnelson): ugly hack, fix this more generally!!! - if 'Directories' in setting or 'Dependencies' in setting: - if type(value) == str: - value = value.replace('/', '\\') - else: - value = [i.replace('/', '\\') for i in value] - if not tools.get(tool_name): - tools[tool_name] = dict() - tool = tools[tool_name] - if tool.get(setting): - if only_if_unset: return - if type(tool[setting]) == list and type(value) == list: - tool[setting] += value - else: - raise TypeError( - 'Appending "%s" to a non-list setting "%s" for tool "%s" is ' - 'not allowed, previous value: %s' % ( - value, setting, tool_name, str(tool[setting]))) - else: - tool[setting] = value - - -def _ConfigPlatform(config_data): - return config_data.get('msvs_configuration_platform', 'Win32') - - -def _ConfigBaseName(config_name, platform_name): - if config_name.endswith('_' + platform_name): - return config_name[0:-len(platform_name) - 1] - else: - return config_name - - -def _ConfigFullName(config_name, config_data): - platform_name = _ConfigPlatform(config_data) - return '%s|%s' % (_ConfigBaseName(config_name, platform_name), platform_name) - - -def _BuildCommandLineForRuleRaw(spec, cmd, cygwin_shell, has_input_path, - quote_cmd, do_setup_env): - - if [x for x in cmd if '$(InputDir)' in x]: - input_dir_preamble = ( - 'set INPUTDIR=$(InputDir)\n' - 'if NOT DEFINED INPUTDIR set INPUTDIR=.\\\n' - 'set INPUTDIR=%INPUTDIR:~0,-1%\n' - ) - else: - input_dir_preamble = '' - - if cygwin_shell: - # Find path to cygwin. - cygwin_dir = _FixPath(spec.get('msvs_cygwin_dirs', ['.'])[0]) - # Prepare command. - direct_cmd = cmd - direct_cmd = [i.replace('$(IntDir)', - '`cygpath -m "${INTDIR}"`') for i in direct_cmd] - direct_cmd = [i.replace('$(OutDir)', - '`cygpath -m "${OUTDIR}"`') for i in direct_cmd] - direct_cmd = [i.replace('$(InputDir)', - '`cygpath -m "${INPUTDIR}"`') for i in direct_cmd] - if has_input_path: - direct_cmd = [i.replace('$(InputPath)', - '`cygpath -m "${INPUTPATH}"`') - for i in direct_cmd] - direct_cmd = ['\\"%s\\"' % i.replace('"', '\\\\\\"') for i in direct_cmd] - # direct_cmd = gyp.common.EncodePOSIXShellList(direct_cmd) - direct_cmd = ' '.join(direct_cmd) - # TODO(quote): regularize quoting path names throughout the module - cmd = '' - if do_setup_env: - cmd += 'call "$(ProjectDir)%(cygwin_dir)s\\setup_env.bat" && ' - cmd += 'set CYGWIN=nontsec&& ' - if direct_cmd.find('NUMBER_OF_PROCESSORS') >= 0: - cmd += 'set /a NUMBER_OF_PROCESSORS_PLUS_1=%%NUMBER_OF_PROCESSORS%%+1&& ' - if direct_cmd.find('INTDIR') >= 0: - cmd += 'set INTDIR=$(IntDir)&& ' - if direct_cmd.find('OUTDIR') >= 0: - cmd += 'set OUTDIR=$(OutDir)&& ' - if has_input_path and direct_cmd.find('INPUTPATH') >= 0: - cmd += 'set INPUTPATH=$(InputPath) && ' - cmd += 'bash -c "%(cmd)s"' - cmd = cmd % {'cygwin_dir': cygwin_dir, - 'cmd': direct_cmd} - return input_dir_preamble + cmd - else: - # Convert cat --> type to mimic unix. - if cmd[0] == 'cat': - command = ['type'] - else: - command = [cmd[0].replace('/', '\\')] - # Add call before command to ensure that commands can be tied together one - # after the other without aborting in Incredibuild, since IB makes a bat - # file out of the raw command string, and some commands (like python) are - # actually batch files themselves. - command.insert(0, 'call') - # Fix the paths - # TODO(quote): This is a really ugly heuristic, and will miss path fixing - # for arguments like "--arg=path" or "/opt:path". - # If the argument starts with a slash or dash, it's probably a command line - # switch - arguments = [i if (i[:1] in "/-") else _FixPath(i) for i in cmd[1:]] - arguments = [i.replace('$(InputDir)', '%INPUTDIR%') for i in arguments] - arguments = [MSVSSettings.FixVCMacroSlashes(i) for i in arguments] - if quote_cmd: - # Support a mode for using cmd directly. - # Convert any paths to native form (first element is used directly). - # TODO(quote): regularize quoting path names throughout the module - arguments = ['"%s"' % i for i in arguments] - # Collapse into a single command. - return input_dir_preamble + ' '.join(command + arguments) - - -def _BuildCommandLineForRule(spec, rule, has_input_path, do_setup_env): - # Currently this weird argument munging is used to duplicate the way a - # python script would need to be run as part of the chrome tree. - # Eventually we should add some sort of rule_default option to set this - # per project. For now the behavior chrome needs is the default. - mcs = rule.get('msvs_cygwin_shell') - if mcs is None: - mcs = int(spec.get('msvs_cygwin_shell', 1)) - elif isinstance(mcs, str): - mcs = int(mcs) - quote_cmd = int(rule.get('msvs_quote_cmd', 1)) - return _BuildCommandLineForRuleRaw(spec, rule['action'], mcs, has_input_path, - quote_cmd, do_setup_env=do_setup_env) - - -def _AddActionStep(actions_dict, inputs, outputs, description, command): - """Merge action into an existing list of actions. - - Care must be taken so that actions which have overlapping inputs either don't - get assigned to the same input, or get collapsed into one. - - Arguments: - actions_dict: dictionary keyed on input name, which maps to a list of - dicts describing the actions attached to that input file. - inputs: list of inputs - outputs: list of outputs - description: description of the action - command: command line to execute - """ - # Require there to be at least one input (call sites will ensure this). - assert inputs - - action = { - 'inputs': inputs, - 'outputs': outputs, - 'description': description, - 'command': command, - } - - # Pick where to stick this action. - # While less than optimal in terms of build time, attach them to the first - # input for now. - chosen_input = inputs[0] - - # Add it there. - if chosen_input not in actions_dict: - actions_dict[chosen_input] = [] - actions_dict[chosen_input].append(action) - - -def _AddCustomBuildToolForMSVS(p, spec, primary_input, - inputs, outputs, description, cmd): - """Add a custom build tool to execute something. - - Arguments: - p: the target project - spec: the target project dict - primary_input: input file to attach the build tool to - inputs: list of inputs - outputs: list of outputs - description: description of the action - cmd: command line to execute - """ - inputs = _FixPaths(inputs) - outputs = _FixPaths(outputs) - tool = MSVSProject.Tool( - 'VCCustomBuildTool', - {'Description': description, - 'AdditionalDependencies': ';'.join(inputs), - 'Outputs': ';'.join(outputs), - 'CommandLine': cmd, - }) - # Add to the properties of primary input for each config. - for config_name, c_data in spec['configurations'].iteritems(): - p.AddFileConfig(_FixPath(primary_input), - _ConfigFullName(config_name, c_data), tools=[tool]) - - -def _AddAccumulatedActionsToMSVS(p, spec, actions_dict): - """Add actions accumulated into an actions_dict, merging as needed. - - Arguments: - p: the target project - spec: the target project dict - actions_dict: dictionary keyed on input name, which maps to a list of - dicts describing the actions attached to that input file. - """ - for primary_input in actions_dict: - inputs = OrderedSet() - outputs = OrderedSet() - descriptions = [] - commands = [] - for action in actions_dict[primary_input]: - inputs.update(OrderedSet(action['inputs'])) - outputs.update(OrderedSet(action['outputs'])) - descriptions.append(action['description']) - commands.append(action['command']) - # Add the custom build step for one input file. - description = ', and also '.join(descriptions) - command = '\r\n'.join(commands) - _AddCustomBuildToolForMSVS(p, spec, - primary_input=primary_input, - inputs=inputs, - outputs=outputs, - description=description, - cmd=command) - - -def _RuleExpandPath(path, input_file): - """Given the input file to which a rule applied, string substitute a path. - - Arguments: - path: a path to string expand - input_file: the file to which the rule applied. - Returns: - The string substituted path. - """ - path = path.replace('$(InputName)', - os.path.splitext(os.path.split(input_file)[1])[0]) - path = path.replace('$(InputDir)', os.path.dirname(input_file)) - path = path.replace('$(InputExt)', - os.path.splitext(os.path.split(input_file)[1])[1]) - path = path.replace('$(InputFileName)', os.path.split(input_file)[1]) - path = path.replace('$(InputPath)', input_file) - return path - - -def _FindRuleTriggerFiles(rule, sources): - """Find the list of files which a particular rule applies to. - - Arguments: - rule: the rule in question - sources: the set of all known source files for this project - Returns: - The list of sources that trigger a particular rule. - """ - return rule.get('rule_sources', []) - - -def _RuleInputsAndOutputs(rule, trigger_file): - """Find the inputs and outputs generated by a rule. - - Arguments: - rule: the rule in question. - trigger_file: the main trigger for this rule. - Returns: - The pair of (inputs, outputs) involved in this rule. - """ - raw_inputs = _FixPaths(rule.get('inputs', [])) - raw_outputs = _FixPaths(rule.get('outputs', [])) - inputs = OrderedSet() - outputs = OrderedSet() - inputs.add(trigger_file) - for i in raw_inputs: - inputs.add(_RuleExpandPath(i, trigger_file)) - for o in raw_outputs: - outputs.add(_RuleExpandPath(o, trigger_file)) - return (inputs, outputs) - - -def _GenerateNativeRulesForMSVS(p, rules, output_dir, spec, options): - """Generate a native rules file. - - Arguments: - p: the target project - rules: the set of rules to include - output_dir: the directory in which the project/gyp resides - spec: the project dict - options: global generator options - """ - rules_filename = '%s%s.rules' % (spec['target_name'], - options.suffix) - rules_file = MSVSToolFile.Writer(os.path.join(output_dir, rules_filename), - spec['target_name']) - # Add each rule. - for r in rules: - rule_name = r['rule_name'] - rule_ext = r['extension'] - inputs = _FixPaths(r.get('inputs', [])) - outputs = _FixPaths(r.get('outputs', [])) - # Skip a rule with no action and no inputs. - if 'action' not in r and not r.get('rule_sources', []): - continue - cmd = _BuildCommandLineForRule(spec, r, has_input_path=True, - do_setup_env=True) - rules_file.AddCustomBuildRule(name=rule_name, - description=r.get('message', rule_name), - extensions=[rule_ext], - additional_dependencies=inputs, - outputs=outputs, - cmd=cmd) - # Write out rules file. - rules_file.WriteIfChanged() - - # Add rules file to project. - p.AddToolFile(rules_filename) - - -def _Cygwinify(path): - path = path.replace('$(OutDir)', '$(OutDirCygwin)') - path = path.replace('$(IntDir)', '$(IntDirCygwin)') - return path - - -def _GenerateExternalRules(rules, output_dir, spec, - sources, options, actions_to_add): - """Generate an external makefile to do a set of rules. - - Arguments: - rules: the list of rules to include - output_dir: path containing project and gyp files - spec: project specification data - sources: set of sources known - options: global generator options - actions_to_add: The list of actions we will add to. - """ - filename = '%s_rules%s.mk' % (spec['target_name'], options.suffix) - mk_file = gyp.common.WriteOnDiff(os.path.join(output_dir, filename)) - # Find cygwin style versions of some paths. - mk_file.write('OutDirCygwin:=$(shell cygpath -u "$(OutDir)")\n') - mk_file.write('IntDirCygwin:=$(shell cygpath -u "$(IntDir)")\n') - # Gather stuff needed to emit all: target. - all_inputs = OrderedSet() - all_outputs = OrderedSet() - all_output_dirs = OrderedSet() - first_outputs = [] - for rule in rules: - trigger_files = _FindRuleTriggerFiles(rule, sources) - for tf in trigger_files: - inputs, outputs = _RuleInputsAndOutputs(rule, tf) - all_inputs.update(OrderedSet(inputs)) - all_outputs.update(OrderedSet(outputs)) - # Only use one target from each rule as the dependency for - # 'all' so we don't try to build each rule multiple times. - first_outputs.append(list(outputs)[0]) - # Get the unique output directories for this rule. - output_dirs = [os.path.split(i)[0] for i in outputs] - for od in output_dirs: - all_output_dirs.add(od) - first_outputs_cyg = [_Cygwinify(i) for i in first_outputs] - # Write out all: target, including mkdir for each output directory. - mk_file.write('all: %s\n' % ' '.join(first_outputs_cyg)) - for od in all_output_dirs: - if od: - mk_file.write('\tmkdir -p `cygpath -u "%s"`\n' % od) - mk_file.write('\n') - # Define how each output is generated. - for rule in rules: - trigger_files = _FindRuleTriggerFiles(rule, sources) - for tf in trigger_files: - # Get all the inputs and outputs for this rule for this trigger file. - inputs, outputs = _RuleInputsAndOutputs(rule, tf) - inputs = [_Cygwinify(i) for i in inputs] - outputs = [_Cygwinify(i) for i in outputs] - # Prepare the command line for this rule. - cmd = [_RuleExpandPath(c, tf) for c in rule['action']] - cmd = ['"%s"' % i for i in cmd] - cmd = ' '.join(cmd) - # Add it to the makefile. - mk_file.write('%s: %s\n' % (' '.join(outputs), ' '.join(inputs))) - mk_file.write('\t%s\n\n' % cmd) - # Close up the file. - mk_file.close() - - # Add makefile to list of sources. - sources.add(filename) - # Add a build action to call makefile. - cmd = ['make', - 'OutDir=$(OutDir)', - 'IntDir=$(IntDir)', - '-j', '${NUMBER_OF_PROCESSORS_PLUS_1}', - '-f', filename] - cmd = _BuildCommandLineForRuleRaw(spec, cmd, True, False, True, True) - # Insert makefile as 0'th input, so it gets the action attached there, - # as this is easier to understand from in the IDE. - all_inputs = list(all_inputs) - all_inputs.insert(0, filename) - _AddActionStep(actions_to_add, - inputs=_FixPaths(all_inputs), - outputs=_FixPaths(all_outputs), - description='Running external rules for %s' % - spec['target_name'], - command=cmd) - - -def _EscapeEnvironmentVariableExpansion(s): - """Escapes % characters. - - Escapes any % characters so that Windows-style environment variable - expansions will leave them alone. - See http://connect.microsoft.com/VisualStudio/feedback/details/106127/cl-d-name-text-containing-percentage-characters-doesnt-compile - to understand why we have to do this. - - Args: - s: The string to be escaped. - - Returns: - The escaped string. - """ - s = s.replace('%', '%%') - return s - - -quote_replacer_regex = re.compile(r'(\\*)"') - - -def _EscapeCommandLineArgumentForMSVS(s): - """Escapes a Windows command-line argument. - - So that the Win32 CommandLineToArgv function will turn the escaped result back - into the original string. - See http://msdn.microsoft.com/en-us/library/17w5ykft.aspx - ("Parsing C++ Command-Line Arguments") to understand why we have to do - this. - - Args: - s: the string to be escaped. - Returns: - the escaped string. - """ - - def _Replace(match): - # For a literal quote, CommandLineToArgv requires an odd number of - # backslashes preceding it, and it produces half as many literal backslashes - # (rounded down). So we need to produce 2n+1 backslashes. - return 2 * match.group(1) + '\\"' - - # Escape all quotes so that they are interpreted literally. - s = quote_replacer_regex.sub(_Replace, s) - # Now add unescaped quotes so that any whitespace is interpreted literally. - s = '"' + s + '"' - return s - - -delimiters_replacer_regex = re.compile(r'(\\*)([,;]+)') - - -def _EscapeVCProjCommandLineArgListItem(s): - """Escapes command line arguments for MSVS. - - The VCProj format stores string lists in a single string using commas and - semi-colons as separators, which must be quoted if they are to be - interpreted literally. However, command-line arguments may already have - quotes, and the VCProj parser is ignorant of the backslash escaping - convention used by CommandLineToArgv, so the command-line quotes and the - VCProj quotes may not be the same quotes. So to store a general - command-line argument in a VCProj list, we need to parse the existing - quoting according to VCProj's convention and quote any delimiters that are - not already quoted by that convention. The quotes that we add will also be - seen by CommandLineToArgv, so if backslashes precede them then we also have - to escape those backslashes according to the CommandLineToArgv - convention. - - Args: - s: the string to be escaped. - Returns: - the escaped string. - """ - - def _Replace(match): - # For a non-literal quote, CommandLineToArgv requires an even number of - # backslashes preceding it, and it produces half as many literal - # backslashes. So we need to produce 2n backslashes. - return 2 * match.group(1) + '"' + match.group(2) + '"' - - segments = s.split('"') - # The unquoted segments are at the even-numbered indices. - for i in range(0, len(segments), 2): - segments[i] = delimiters_replacer_regex.sub(_Replace, segments[i]) - # Concatenate back into a single string - s = '"'.join(segments) - if len(segments) % 2 == 0: - # String ends while still quoted according to VCProj's convention. This - # means the delimiter and the next list item that follow this one in the - # .vcproj file will be misinterpreted as part of this item. There is nothing - # we can do about this. Adding an extra quote would correct the problem in - # the VCProj but cause the same problem on the final command-line. Moving - # the item to the end of the list does works, but that's only possible if - # there's only one such item. Let's just warn the user. - print >> sys.stderr, ('Warning: MSVS may misinterpret the odd number of ' + - 'quotes in ' + s) - return s - - -def _EscapeCppDefineForMSVS(s): - """Escapes a CPP define so that it will reach the compiler unaltered.""" - s = _EscapeEnvironmentVariableExpansion(s) - s = _EscapeCommandLineArgumentForMSVS(s) - s = _EscapeVCProjCommandLineArgListItem(s) - # cl.exe replaces literal # characters with = in preprocesor definitions for - # some reason. Octal-encode to work around that. - s = s.replace('#', '\\%03o' % ord('#')) - return s - - -quote_replacer_regex2 = re.compile(r'(\\+)"') - - -def _EscapeCommandLineArgumentForMSBuild(s): - """Escapes a Windows command-line argument for use by MSBuild.""" - - def _Replace(match): - return (len(match.group(1)) / 2 * 4) * '\\' + '\\"' - - # Escape all quotes so that they are interpreted literally. - s = quote_replacer_regex2.sub(_Replace, s) - return s - - -def _EscapeMSBuildSpecialCharacters(s): - escape_dictionary = { - '%': '%25', - '$': '%24', - '@': '%40', - "'": '%27', - ';': '%3B', - '?': '%3F', - '*': '%2A' - } - result = ''.join([escape_dictionary.get(c, c) for c in s]) - return result - - -def _EscapeCppDefineForMSBuild(s): - """Escapes a CPP define so that it will reach the compiler unaltered.""" - s = _EscapeEnvironmentVariableExpansion(s) - s = _EscapeCommandLineArgumentForMSBuild(s) - s = _EscapeMSBuildSpecialCharacters(s) - # cl.exe replaces literal # characters with = in preprocesor definitions for - # some reason. Octal-encode to work around that. - s = s.replace('#', '\\%03o' % ord('#')) - return s - - -def _GenerateRulesForMSVS(p, output_dir, options, spec, - sources, excluded_sources, - actions_to_add): - """Generate all the rules for a particular project. - - Arguments: - p: the project - output_dir: directory to emit rules to - options: global options passed to the generator - spec: the specification for this project - sources: the set of all known source files in this project - excluded_sources: the set of sources excluded from normal processing - actions_to_add: deferred list of actions to add in - """ - rules = spec.get('rules', []) - rules_native = [r for r in rules if not int(r.get('msvs_external_rule', 0))] - rules_external = [r for r in rules if int(r.get('msvs_external_rule', 0))] - - # Handle rules that use a native rules file. - if rules_native: - _GenerateNativeRulesForMSVS(p, rules_native, output_dir, spec, options) - - # Handle external rules (non-native rules). - if rules_external: - _GenerateExternalRules(rules_external, output_dir, spec, - sources, options, actions_to_add) - _AdjustSourcesForRules(rules, sources, excluded_sources, False) - - -def _AdjustSourcesForRules(rules, sources, excluded_sources, is_msbuild): - # Add outputs generated by each rule (if applicable). - for rule in rules: - # Add in the outputs from this rule. - trigger_files = _FindRuleTriggerFiles(rule, sources) - for trigger_file in trigger_files: - # Remove trigger_file from excluded_sources to let the rule be triggered - # (e.g. rule trigger ax_enums.idl is added to excluded_sources - # because it's also in an action's inputs in the same project) - excluded_sources.discard(_FixPath(trigger_file)) - # Done if not processing outputs as sources. - if int(rule.get('process_outputs_as_sources', False)): - inputs, outputs = _RuleInputsAndOutputs(rule, trigger_file) - inputs = OrderedSet(_FixPaths(inputs)) - outputs = OrderedSet(_FixPaths(outputs)) - inputs.remove(_FixPath(trigger_file)) - sources.update(inputs) - if not is_msbuild: - excluded_sources.update(inputs) - sources.update(outputs) - - -def _FilterActionsFromExcluded(excluded_sources, actions_to_add): - """Take inputs with actions attached out of the list of exclusions. - - Arguments: - excluded_sources: list of source files not to be built. - actions_to_add: dict of actions keyed on source file they're attached to. - Returns: - excluded_sources with files that have actions attached removed. - """ - must_keep = OrderedSet(_FixPaths(actions_to_add.keys())) - return [s for s in excluded_sources if s not in must_keep] - - -def _GetDefaultConfiguration(spec): - return spec['configurations'][spec['default_configuration']] - - -def _GetGuidOfProject(proj_path, spec): - """Get the guid for the project. - - Arguments: - proj_path: Path of the vcproj or vcxproj file to generate. - spec: The target dictionary containing the properties of the target. - Returns: - the guid. - Raises: - ValueError: if the specified GUID is invalid. - """ - # Pluck out the default configuration. - default_config = _GetDefaultConfiguration(spec) - # Decide the guid of the project. - guid = default_config.get('msvs_guid') - if guid: - if VALID_MSVS_GUID_CHARS.match(guid) is None: - raise ValueError('Invalid MSVS guid: "%s". Must match regex: "%s".' % - (guid, VALID_MSVS_GUID_CHARS.pattern)) - guid = '{%s}' % guid - guid = guid or MSVSNew.MakeGuid(proj_path) - return guid - - -def _GetMsbuildToolsetOfProject(proj_path, spec, version): - """Get the platform toolset for the project. - - Arguments: - proj_path: Path of the vcproj or vcxproj file to generate. - spec: The target dictionary containing the properties of the target. - version: The MSVSVersion object. - Returns: - the platform toolset string or None. - """ - # Pluck out the default configuration. - default_config = _GetDefaultConfiguration(spec) - toolset = default_config.get('msbuild_toolset') - if not toolset and version.DefaultToolset(): - toolset = version.DefaultToolset() - return toolset - - -def _GenerateProject(project, options, version, generator_flags): - """Generates a vcproj file. - - Arguments: - project: the MSVSProject object. - options: global generator options. - version: the MSVSVersion object. - generator_flags: dict of generator-specific flags. - Returns: - A list of source files that cannot be found on disk. - """ - default_config = _GetDefaultConfiguration(project.spec) - - # Skip emitting anything if told to with msvs_existing_vcproj option. - if default_config.get('msvs_existing_vcproj'): - return [] - - if version.UsesVcxproj(): - return _GenerateMSBuildProject(project, options, version, generator_flags) - else: - return _GenerateMSVSProject(project, options, version, generator_flags) - - -# TODO: Avoid code duplication with _ValidateSourcesForOSX in make.py. -def _ValidateSourcesForMSVSProject(spec, version): - """Makes sure if duplicate basenames are not specified in the source list. - - Arguments: - spec: The target dictionary containing the properties of the target. - version: The VisualStudioVersion object. - """ - # This validation should not be applied to MSVC2010 and later. - assert not version.UsesVcxproj() - - # TODO: Check if MSVC allows this for loadable_module targets. - if spec.get('type', None) not in ('static_library', 'shared_library'): - return - sources = spec.get('sources', []) - basenames = {} - for source in sources: - name, ext = os.path.splitext(source) - is_compiled_file = ext in [ - '.c', '.cc', '.cpp', '.cxx', '.m', '.mm', '.s', '.S'] - if not is_compiled_file: - continue - basename = os.path.basename(name) # Don't include extension. - basenames.setdefault(basename, []).append(source) - - error = '' - for basename, files in basenames.iteritems(): - if len(files) > 1: - error += ' %s: %s\n' % (basename, ' '.join(files)) - - if error: - print('static library %s has several files with the same basename:\n' % - spec['target_name'] + error + 'MSVC08 cannot handle that.') - raise GypError('Duplicate basenames in sources section, see list above') - - -def _GenerateMSVSProject(project, options, version, generator_flags): - """Generates a .vcproj file. It may create .rules and .user files too. - - Arguments: - project: The project object we will generate the file for. - options: Global options passed to the generator. - version: The VisualStudioVersion object. - generator_flags: dict of generator-specific flags. - """ - spec = project.spec - gyp.common.EnsureDirExists(project.path) - - platforms = _GetUniquePlatforms(spec) - p = MSVSProject.Writer(project.path, version, spec['target_name'], - project.guid, platforms) - - # Get directory project file is in. - project_dir = os.path.split(project.path)[0] - gyp_path = _NormalizedSource(project.build_file) - relative_path_of_gyp_file = gyp.common.RelativePath(gyp_path, project_dir) - - config_type = _GetMSVSConfigurationType(spec, project.build_file) - for config_name, config in spec['configurations'].iteritems(): - _AddConfigurationToMSVSProject(p, spec, config_type, config_name, config) - - # MSVC08 and prior version cannot handle duplicate basenames in the same - # target. - # TODO: Take excluded sources into consideration if possible. - _ValidateSourcesForMSVSProject(spec, version) - - # Prepare list of sources and excluded sources. - gyp_file = os.path.split(project.build_file)[1] - sources, excluded_sources = _PrepareListOfSources(spec, generator_flags, - gyp_file) - - # Add rules. - actions_to_add = {} - _GenerateRulesForMSVS(p, project_dir, options, spec, - sources, excluded_sources, - actions_to_add) - list_excluded = generator_flags.get('msvs_list_excluded_files', True) - sources, excluded_sources, excluded_idl = ( - _AdjustSourcesAndConvertToFilterHierarchy(spec, options, project_dir, - sources, excluded_sources, - list_excluded, version)) - - # Add in files. - missing_sources = _VerifySourcesExist(sources, project_dir) - p.AddFiles(sources) - - _AddToolFilesToMSVS(p, spec) - _HandlePreCompiledHeaders(p, sources, spec) - _AddActions(actions_to_add, spec, relative_path_of_gyp_file) - _AddCopies(actions_to_add, spec) - _WriteMSVSUserFile(project.path, version, spec) - - # NOTE: this stanza must appear after all actions have been decided. - # Don't excluded sources with actions attached, or they won't run. - excluded_sources = _FilterActionsFromExcluded( - excluded_sources, actions_to_add) - _ExcludeFilesFromBeingBuilt(p, spec, excluded_sources, excluded_idl, - list_excluded) - _AddAccumulatedActionsToMSVS(p, spec, actions_to_add) - - # Write it out. - p.WriteIfChanged() - - return missing_sources - - -def _GetUniquePlatforms(spec): - """Returns the list of unique platforms for this spec, e.g ['win32', ...]. - - Arguments: - spec: The target dictionary containing the properties of the target. - Returns: - The MSVSUserFile object created. - """ - # Gather list of unique platforms. - platforms = OrderedSet() - for configuration in spec['configurations']: - platforms.add(_ConfigPlatform(spec['configurations'][configuration])) - platforms = list(platforms) - return platforms - - -def _CreateMSVSUserFile(proj_path, version, spec): - """Generates a .user file for the user running this Gyp program. - - Arguments: - proj_path: The path of the project file being created. The .user file - shares the same path (with an appropriate suffix). - version: The VisualStudioVersion object. - spec: The target dictionary containing the properties of the target. - Returns: - The MSVSUserFile object created. - """ - (domain, username) = _GetDomainAndUserName() - vcuser_filename = '.'.join([proj_path, domain, username, 'user']) - user_file = MSVSUserFile.Writer(vcuser_filename, version, - spec['target_name']) - return user_file - - -def _GetMSVSConfigurationType(spec, build_file): - """Returns the configuration type for this project. - - It's a number defined by Microsoft. May raise an exception. - - Args: - spec: The target dictionary containing the properties of the target. - build_file: The path of the gyp file. - Returns: - An integer, the configuration type. - """ - try: - config_type = { - 'executable': '1', # .exe - 'shared_library': '2', # .dll - 'loadable_module': '2', # .dll - 'static_library': '4', # .lib - 'none': '10', # Utility type - }[spec['type']] - except KeyError: - if spec.get('type'): - raise GypError('Target type %s is not a valid target type for ' - 'target %s in %s.' % - (spec['type'], spec['target_name'], build_file)) - else: - raise GypError('Missing type field for target %s in %s.' % - (spec['target_name'], build_file)) - return config_type - - -def _AddConfigurationToMSVSProject(p, spec, config_type, config_name, config): - """Adds a configuration to the MSVS project. - - Many settings in a vcproj file are specific to a configuration. This - function the main part of the vcproj file that's configuration specific. - - Arguments: - p: The target project being generated. - spec: The target dictionary containing the properties of the target. - config_type: The configuration type, a number as defined by Microsoft. - config_name: The name of the configuration. - config: The dictionary that defines the special processing to be done - for this configuration. - """ - # Get the information for this configuration - include_dirs, midl_include_dirs, resource_include_dirs = \ - _GetIncludeDirs(config) - libraries = _GetLibraries(spec) - library_dirs = _GetLibraryDirs(config) - out_file, vc_tool, _ = _GetOutputFilePathAndTool(spec, msbuild=False) - defines = _GetDefines(config) - defines = [_EscapeCppDefineForMSVS(d) for d in defines] - disabled_warnings = _GetDisabledWarnings(config) - prebuild = config.get('msvs_prebuild') - postbuild = config.get('msvs_postbuild') - def_file = _GetModuleDefinition(spec) - precompiled_header = config.get('msvs_precompiled_header') - - # Prepare the list of tools as a dictionary. - tools = dict() - # Add in user specified msvs_settings. - msvs_settings = config.get('msvs_settings', {}) - MSVSSettings.ValidateMSVSSettings(msvs_settings) - - # Prevent default library inheritance from the environment. - _ToolAppend(tools, 'VCLinkerTool', 'AdditionalDependencies', ['$(NOINHERIT)']) - - for tool in msvs_settings: - settings = config['msvs_settings'][tool] - for setting in settings: - _ToolAppend(tools, tool, setting, settings[setting]) - # Add the information to the appropriate tool - _ToolAppend(tools, 'VCCLCompilerTool', - 'AdditionalIncludeDirectories', include_dirs) - _ToolAppend(tools, 'VCMIDLTool', - 'AdditionalIncludeDirectories', midl_include_dirs) - _ToolAppend(tools, 'VCResourceCompilerTool', - 'AdditionalIncludeDirectories', resource_include_dirs) - # Add in libraries. - _ToolAppend(tools, 'VCLinkerTool', 'AdditionalDependencies', libraries) - _ToolAppend(tools, 'VCLinkerTool', 'AdditionalLibraryDirectories', - library_dirs) - if out_file: - _ToolAppend(tools, vc_tool, 'OutputFile', out_file, only_if_unset=True) - # Add defines. - _ToolAppend(tools, 'VCCLCompilerTool', 'PreprocessorDefinitions', defines) - _ToolAppend(tools, 'VCResourceCompilerTool', 'PreprocessorDefinitions', - defines) - # Change program database directory to prevent collisions. - _ToolAppend(tools, 'VCCLCompilerTool', 'ProgramDataBaseFileName', - '$(IntDir)$(ProjectName)\\vc80.pdb', only_if_unset=True) - # Add disabled warnings. - _ToolAppend(tools, 'VCCLCompilerTool', - 'DisableSpecificWarnings', disabled_warnings) - # Add Pre-build. - _ToolAppend(tools, 'VCPreBuildEventTool', 'CommandLine', prebuild) - # Add Post-build. - _ToolAppend(tools, 'VCPostBuildEventTool', 'CommandLine', postbuild) - # Turn on precompiled headers if appropriate. - if precompiled_header: - precompiled_header = os.path.split(precompiled_header)[1] - _ToolAppend(tools, 'VCCLCompilerTool', 'UsePrecompiledHeader', '2') - _ToolAppend(tools, 'VCCLCompilerTool', - 'PrecompiledHeaderThrough', precompiled_header) - _ToolAppend(tools, 'VCCLCompilerTool', - 'ForcedIncludeFiles', precompiled_header) - # Loadable modules don't generate import libraries; - # tell dependent projects to not expect one. - if spec['type'] == 'loadable_module': - _ToolAppend(tools, 'VCLinkerTool', 'IgnoreImportLibrary', 'true') - # Set the module definition file if any. - if def_file: - _ToolAppend(tools, 'VCLinkerTool', 'ModuleDefinitionFile', def_file) - - _AddConfigurationToMSVS(p, spec, tools, config, config_type, config_name) - - -def _GetIncludeDirs(config): - """Returns the list of directories to be used for #include directives. - - Arguments: - config: The dictionary that defines the special processing to be done - for this configuration. - Returns: - The list of directory paths. - """ - # TODO(bradnelson): include_dirs should really be flexible enough not to - # require this sort of thing. - include_dirs = ( - config.get('include_dirs', []) + - config.get('msvs_system_include_dirs', [])) - midl_include_dirs = ( - config.get('midl_include_dirs', []) + - config.get('msvs_system_include_dirs', [])) - resource_include_dirs = config.get('resource_include_dirs', include_dirs) - include_dirs = _FixPaths(include_dirs) - midl_include_dirs = _FixPaths(midl_include_dirs) - resource_include_dirs = _FixPaths(resource_include_dirs) - return include_dirs, midl_include_dirs, resource_include_dirs - - -def _GetLibraryDirs(config): - """Returns the list of directories to be used for library search paths. - - Arguments: - config: The dictionary that defines the special processing to be done - for this configuration. - Returns: - The list of directory paths. - """ - - library_dirs = config.get('library_dirs', []) - library_dirs = _FixPaths(library_dirs) - return library_dirs - - -def _GetLibraries(spec): - """Returns the list of libraries for this configuration. - - Arguments: - spec: The target dictionary containing the properties of the target. - Returns: - The list of directory paths. - """ - libraries = spec.get('libraries', []) - # Strip out -l, as it is not used on windows (but is needed so we can pass - # in libraries that are assumed to be in the default library path). - # Also remove duplicate entries, leaving only the last duplicate, while - # preserving order. - found = OrderedSet() - unique_libraries_list = [] - for entry in reversed(libraries): - library = re.sub(r'^\-l', '', entry) - if not os.path.splitext(library)[1]: - library += '.lib' - if library not in found: - found.add(library) - unique_libraries_list.append(library) - unique_libraries_list.reverse() - return unique_libraries_list - - -def _GetOutputFilePathAndTool(spec, msbuild): - """Returns the path and tool to use for this target. - - Figures out the path of the file this spec will create and the name of - the VC tool that will create it. - - Arguments: - spec: The target dictionary containing the properties of the target. - Returns: - A triple of (file path, name of the vc tool, name of the msbuild tool) - """ - # Select a name for the output file. - out_file = '' - vc_tool = '' - msbuild_tool = '' - output_file_map = { - 'executable': ('VCLinkerTool', 'Link', '$(OutDir)', '.exe'), - 'shared_library': ('VCLinkerTool', 'Link', '$(OutDir)', '.dll'), - 'loadable_module': ('VCLinkerTool', 'Link', '$(OutDir)', '.dll'), - 'static_library': ('VCLibrarianTool', 'Lib', '$(OutDir)lib\\', '.lib'), - } - output_file_props = output_file_map.get(spec['type']) - if output_file_props and int(spec.get('msvs_auto_output_file', 1)): - vc_tool, msbuild_tool, out_dir, suffix = output_file_props - if spec.get('standalone_static_library', 0): - out_dir = '$(OutDir)' - out_dir = spec.get('product_dir', out_dir) - product_extension = spec.get('product_extension') - if product_extension: - suffix = '.' + product_extension - elif msbuild: - suffix = '$(TargetExt)' - prefix = spec.get('product_prefix', '') - product_name = spec.get('product_name', '$(ProjectName)') - out_file = ntpath.join(out_dir, prefix + product_name + suffix) - return out_file, vc_tool, msbuild_tool - - -def _GetOutputTargetExt(spec): - """Returns the extension for this target, including the dot - - If product_extension is specified, set target_extension to this to avoid - MSB8012, returns None otherwise. Ignores any target_extension settings in - the input files. - - Arguments: - spec: The target dictionary containing the properties of the target. - Returns: - A string with the extension, or None - """ - target_extension = spec.get('product_extension') - if target_extension: - return '.' + target_extension - return None - - -def _GetDefines(config): - """Returns the list of preprocessor definitions for this configuation. - - Arguments: - config: The dictionary that defines the special processing to be done - for this configuration. - Returns: - The list of preprocessor definitions. - """ - defines = [] - for d in config.get('defines', []): - if type(d) == list: - fd = '='.join([str(dpart) for dpart in d]) - else: - fd = str(d) - defines.append(fd) - return defines - - -def _GetDisabledWarnings(config): - return [str(i) for i in config.get('msvs_disabled_warnings', [])] - - -def _GetModuleDefinition(spec): - def_file = '' - if spec['type'] in ['shared_library', 'loadable_module', 'executable']: - def_files = [s for s in spec.get('sources', []) if s.endswith('.def')] - if len(def_files) == 1: - def_file = _FixPath(def_files[0]) - elif def_files: - raise ValueError( - 'Multiple module definition files in one target, target %s lists ' - 'multiple .def files: %s' % ( - spec['target_name'], ' '.join(def_files))) - return def_file - - -def _ConvertToolsToExpectedForm(tools): - """Convert tools to a form expected by Visual Studio. - - Arguments: - tools: A dictionary of settings; the tool name is the key. - Returns: - A list of Tool objects. - """ - tool_list = [] - for tool, settings in tools.iteritems(): - # Collapse settings with lists. - settings_fixed = {} - for setting, value in settings.iteritems(): - if type(value) == list: - if ((tool == 'VCLinkerTool' and - setting == 'AdditionalDependencies') or - setting == 'AdditionalOptions'): - settings_fixed[setting] = ' '.join(value) - else: - settings_fixed[setting] = ';'.join(value) - else: - settings_fixed[setting] = value - # Add in this tool. - tool_list.append(MSVSProject.Tool(tool, settings_fixed)) - return tool_list - - -def _AddConfigurationToMSVS(p, spec, tools, config, config_type, config_name): - """Add to the project file the configuration specified by config. - - Arguments: - p: The target project being generated. - spec: the target project dict. - tools: A dictionary of settings; the tool name is the key. - config: The dictionary that defines the special processing to be done - for this configuration. - config_type: The configuration type, a number as defined by Microsoft. - config_name: The name of the configuration. - """ - attributes = _GetMSVSAttributes(spec, config, config_type) - # Add in this configuration. - tool_list = _ConvertToolsToExpectedForm(tools) - p.AddConfig(_ConfigFullName(config_name, config), - attrs=attributes, tools=tool_list) - - -def _GetMSVSAttributes(spec, config, config_type): - # Prepare configuration attributes. - prepared_attrs = {} - source_attrs = config.get('msvs_configuration_attributes', {}) - for a in source_attrs: - prepared_attrs[a] = source_attrs[a] - # Add props files. - vsprops_dirs = config.get('msvs_props', []) - vsprops_dirs = _FixPaths(vsprops_dirs) - if vsprops_dirs: - prepared_attrs['InheritedPropertySheets'] = ';'.join(vsprops_dirs) - # Set configuration type. - prepared_attrs['ConfigurationType'] = config_type - output_dir = prepared_attrs.get('OutputDirectory', - '$(SolutionDir)$(ConfigurationName)') - prepared_attrs['OutputDirectory'] = _FixPath(output_dir) + '\\' - if 'IntermediateDirectory' not in prepared_attrs: - intermediate = '$(ConfigurationName)\\obj\\$(ProjectName)' - prepared_attrs['IntermediateDirectory'] = _FixPath(intermediate) + '\\' - else: - intermediate = _FixPath(prepared_attrs['IntermediateDirectory']) + '\\' - intermediate = MSVSSettings.FixVCMacroSlashes(intermediate) - prepared_attrs['IntermediateDirectory'] = intermediate - return prepared_attrs - - -def _AddNormalizedSources(sources_set, sources_array): - sources_set.update(_NormalizedSource(s) for s in sources_array) - - -def _PrepareListOfSources(spec, generator_flags, gyp_file): - """Prepare list of sources and excluded sources. - - Besides the sources specified directly in the spec, adds the gyp file so - that a change to it will cause a re-compile. Also adds appropriate sources - for actions and copies. Assumes later stage will un-exclude files which - have custom build steps attached. - - Arguments: - spec: The target dictionary containing the properties of the target. - gyp_file: The name of the gyp file. - Returns: - A pair of (list of sources, list of excluded sources). - The sources will be relative to the gyp file. - """ - sources = OrderedSet() - _AddNormalizedSources(sources, spec.get('sources', [])) - excluded_sources = OrderedSet() - # Add in the gyp file. - if not generator_flags.get('standalone'): - sources.add(gyp_file) - - # Add in 'action' inputs and outputs. - for a in spec.get('actions', []): - inputs = a['inputs'] - inputs = [_NormalizedSource(i) for i in inputs] - # Add all inputs to sources and excluded sources. - inputs = OrderedSet(inputs) - sources.update(inputs) - if not spec.get('msvs_external_builder'): - excluded_sources.update(inputs) - if int(a.get('process_outputs_as_sources', False)): - _AddNormalizedSources(sources, a.get('outputs', [])) - # Add in 'copies' inputs and outputs. - for cpy in spec.get('copies', []): - _AddNormalizedSources(sources, cpy.get('files', [])) - return (sources, excluded_sources) - - -def _AdjustSourcesAndConvertToFilterHierarchy( - spec, options, gyp_dir, sources, excluded_sources, list_excluded, version): - """Adjusts the list of sources and excluded sources. - - Also converts the sets to lists. - - Arguments: - spec: The target dictionary containing the properties of the target. - options: Global generator options. - gyp_dir: The path to the gyp file being processed. - sources: A set of sources to be included for this project. - excluded_sources: A set of sources to be excluded for this project. - version: A MSVSVersion object. - Returns: - A trio of (list of sources, list of excluded sources, - path of excluded IDL file) - """ - # Exclude excluded sources coming into the generator. - excluded_sources.update(OrderedSet(spec.get('sources_excluded', []))) - # Add excluded sources into sources for good measure. - sources.update(excluded_sources) - # Convert to proper windows form. - # NOTE: sources goes from being a set to a list here. - # NOTE: excluded_sources goes from being a set to a list here. - sources = _FixPaths(sources) - # Convert to proper windows form. - excluded_sources = _FixPaths(excluded_sources) - - excluded_idl = _IdlFilesHandledNonNatively(spec, sources) - - precompiled_related = _GetPrecompileRelatedFiles(spec) - # Find the excluded ones, minus the precompiled header related ones. - fully_excluded = [i for i in excluded_sources if i not in precompiled_related] - - # Convert to folders and the right slashes. - sources = [i.split('\\') for i in sources] - sources = _ConvertSourcesToFilterHierarchy(sources, excluded=fully_excluded, - list_excluded=list_excluded, - msvs_version=version) - - # Prune filters with a single child to flatten ugly directory structures - # such as ../../src/modules/module1 etc. - if version.UsesVcxproj(): - while all([isinstance(s, MSVSProject.Filter) for s in sources]) \ - and len(set([s.name for s in sources])) == 1: - assert all([len(s.contents) == 1 for s in sources]) - sources = [s.contents[0] for s in sources] - else: - while len(sources) == 1 and isinstance(sources[0], MSVSProject.Filter): - sources = sources[0].contents - - return sources, excluded_sources, excluded_idl - - -def _IdlFilesHandledNonNatively(spec, sources): - # If any non-native rules use 'idl' as an extension exclude idl files. - # Gather a list here to use later. - using_idl = False - for rule in spec.get('rules', []): - if rule['extension'] == 'idl' and int(rule.get('msvs_external_rule', 0)): - using_idl = True - break - if using_idl: - excluded_idl = [i for i in sources if i.endswith('.idl')] - else: - excluded_idl = [] - return excluded_idl - - -def _GetPrecompileRelatedFiles(spec): - # Gather a list of precompiled header related sources. - precompiled_related = [] - for _, config in spec['configurations'].iteritems(): - for k in precomp_keys: - f = config.get(k) - if f: - precompiled_related.append(_FixPath(f)) - return precompiled_related - - -def _ExcludeFilesFromBeingBuilt(p, spec, excluded_sources, excluded_idl, - list_excluded): - exclusions = _GetExcludedFilesFromBuild(spec, excluded_sources, excluded_idl) - for file_name, excluded_configs in exclusions.iteritems(): - if (not list_excluded and - len(excluded_configs) == len(spec['configurations'])): - # If we're not listing excluded files, then they won't appear in the - # project, so don't try to configure them to be excluded. - pass - else: - for config_name, config in excluded_configs: - p.AddFileConfig(file_name, _ConfigFullName(config_name, config), - {'ExcludedFromBuild': 'true'}) - - -def _GetExcludedFilesFromBuild(spec, excluded_sources, excluded_idl): - exclusions = {} - # Exclude excluded sources from being built. - for f in excluded_sources: - excluded_configs = [] - for config_name, config in spec['configurations'].iteritems(): - precomped = [_FixPath(config.get(i, '')) for i in precomp_keys] - # Don't do this for ones that are precompiled header related. - if f not in precomped: - excluded_configs.append((config_name, config)) - exclusions[f] = excluded_configs - # If any non-native rules use 'idl' as an extension exclude idl files. - # Exclude them now. - for f in excluded_idl: - excluded_configs = [] - for config_name, config in spec['configurations'].iteritems(): - excluded_configs.append((config_name, config)) - exclusions[f] = excluded_configs - return exclusions - - -def _AddToolFilesToMSVS(p, spec): - # Add in tool files (rules). - tool_files = OrderedSet() - for _, config in spec['configurations'].iteritems(): - for f in config.get('msvs_tool_files', []): - tool_files.add(f) - for f in tool_files: - p.AddToolFile(f) - - -def _HandlePreCompiledHeaders(p, sources, spec): - # Pre-compiled header source stubs need a different compiler flag - # (generate precompiled header) and any source file not of the same - # kind (i.e. C vs. C++) as the precompiled header source stub needs - # to have use of precompiled headers disabled. - extensions_excluded_from_precompile = [] - for config_name, config in spec['configurations'].iteritems(): - source = config.get('msvs_precompiled_source') - if source: - source = _FixPath(source) - # UsePrecompiledHeader=1 for if using precompiled headers. - tool = MSVSProject.Tool('VCCLCompilerTool', - {'UsePrecompiledHeader': '1'}) - p.AddFileConfig(source, _ConfigFullName(config_name, config), - {}, tools=[tool]) - basename, extension = os.path.splitext(source) - if extension == '.c': - extensions_excluded_from_precompile = ['.cc', '.cpp', '.cxx'] - else: - extensions_excluded_from_precompile = ['.c'] - def DisableForSourceTree(source_tree): - for source in source_tree: - if isinstance(source, MSVSProject.Filter): - DisableForSourceTree(source.contents) - else: - basename, extension = os.path.splitext(source) - if extension in extensions_excluded_from_precompile: - for config_name, config in spec['configurations'].iteritems(): - tool = MSVSProject.Tool('VCCLCompilerTool', - {'UsePrecompiledHeader': '0', - 'ForcedIncludeFiles': '$(NOINHERIT)'}) - p.AddFileConfig(_FixPath(source), - _ConfigFullName(config_name, config), - {}, tools=[tool]) - # Do nothing if there was no precompiled source. - if extensions_excluded_from_precompile: - DisableForSourceTree(sources) - - -def _AddActions(actions_to_add, spec, relative_path_of_gyp_file): - # Add actions. - actions = spec.get('actions', []) - # Don't setup_env every time. When all the actions are run together in one - # batch file in VS, the PATH will grow too long. - # Membership in this set means that the cygwin environment has been set up, - # and does not need to be set up again. - have_setup_env = set() - for a in actions: - # Attach actions to the gyp file if nothing else is there. - inputs = a.get('inputs') or [relative_path_of_gyp_file] - attached_to = inputs[0] - need_setup_env = attached_to not in have_setup_env - cmd = _BuildCommandLineForRule(spec, a, has_input_path=False, - do_setup_env=need_setup_env) - have_setup_env.add(attached_to) - # Add the action. - _AddActionStep(actions_to_add, - inputs=inputs, - outputs=a.get('outputs', []), - description=a.get('message', a['action_name']), - command=cmd) - - -def _WriteMSVSUserFile(project_path, version, spec): - # Add run_as and test targets. - if 'run_as' in spec: - run_as = spec['run_as'] - action = run_as.get('action', []) - environment = run_as.get('environment', []) - working_directory = run_as.get('working_directory', '.') - elif int(spec.get('test', 0)): - action = ['$(TargetPath)', '--gtest_print_time'] - environment = [] - working_directory = '.' - else: - return # Nothing to add - # Write out the user file. - user_file = _CreateMSVSUserFile(project_path, version, spec) - for config_name, c_data in spec['configurations'].iteritems(): - user_file.AddDebugSettings(_ConfigFullName(config_name, c_data), - action, environment, working_directory) - user_file.WriteIfChanged() - - -def _AddCopies(actions_to_add, spec): - copies = _GetCopies(spec) - for inputs, outputs, cmd, description in copies: - _AddActionStep(actions_to_add, inputs=inputs, outputs=outputs, - description=description, command=cmd) - - -def _GetCopies(spec): - copies = [] - # Add copies. - for cpy in spec.get('copies', []): - for src in cpy.get('files', []): - dst = os.path.join(cpy['destination'], os.path.basename(src)) - # _AddCustomBuildToolForMSVS() will call _FixPath() on the inputs and - # outputs, so do the same for our generated command line. - if src.endswith('/'): - src_bare = src[:-1] - base_dir = posixpath.split(src_bare)[0] - outer_dir = posixpath.split(src_bare)[1] - cmd = 'cd "%s" && xcopy /e /f /y "%s" "%s\\%s\\"' % ( - _FixPath(base_dir), outer_dir, _FixPath(dst), outer_dir) - copies.append(([src], ['dummy_copies', dst], cmd, - 'Copying %s to %s' % (src, dst))) - else: - cmd = 'mkdir "%s" 2>nul & set ERRORLEVEL=0 & copy /Y "%s" "%s"' % ( - _FixPath(cpy['destination']), _FixPath(src), _FixPath(dst)) - copies.append(([src], [dst], cmd, 'Copying %s to %s' % (src, dst))) - return copies - - -def _GetPathDict(root, path): - # |path| will eventually be empty (in the recursive calls) if it was initially - # relative; otherwise it will eventually end up as '\', 'D:\', etc. - if not path or path.endswith(os.sep): - return root - parent, folder = os.path.split(path) - parent_dict = _GetPathDict(root, parent) - if folder not in parent_dict: - parent_dict[folder] = dict() - return parent_dict[folder] - - -def _DictsToFolders(base_path, bucket, flat): - # Convert to folders recursively. - children = [] - for folder, contents in bucket.iteritems(): - if type(contents) == dict: - folder_children = _DictsToFolders(os.path.join(base_path, folder), - contents, flat) - if flat: - children += folder_children - else: - folder_children = MSVSNew.MSVSFolder(os.path.join(base_path, folder), - name='(' + folder + ')', - entries=folder_children) - children.append(folder_children) - else: - children.append(contents) - return children - - -def _CollapseSingles(parent, node): - # Recursively explorer the tree of dicts looking for projects which are - # the sole item in a folder which has the same name as the project. Bring - # such projects up one level. - if (type(node) == dict and - len(node) == 1 and - node.keys()[0] == parent + '.vcproj'): - return node[node.keys()[0]] - if type(node) != dict: - return node - for child in node: - node[child] = _CollapseSingles(child, node[child]) - return node - - -def _GatherSolutionFolders(sln_projects, project_objects, flat): - root = {} - # Convert into a tree of dicts on path. - for p in sln_projects: - gyp_file, target = gyp.common.ParseQualifiedTarget(p)[0:2] - gyp_dir = os.path.dirname(gyp_file) - path_dict = _GetPathDict(root, gyp_dir) - path_dict[target + '.vcproj'] = project_objects[p] - # Walk down from the top until we hit a folder that has more than one entry. - # In practice, this strips the top-level "src/" dir from the hierarchy in - # the solution. - while len(root) == 1 and type(root[root.keys()[0]]) == dict: - root = root[root.keys()[0]] - # Collapse singles. - root = _CollapseSingles('', root) - # Merge buckets until everything is a root entry. - return _DictsToFolders('', root, flat) - - -def _GetPathOfProject(qualified_target, spec, options, msvs_version): - default_config = _GetDefaultConfiguration(spec) - proj_filename = default_config.get('msvs_existing_vcproj') - if not proj_filename: - proj_filename = (spec['target_name'] + options.suffix + - msvs_version.ProjectExtension()) - - build_file = gyp.common.BuildFile(qualified_target) - proj_path = os.path.join(os.path.dirname(build_file), proj_filename) - fix_prefix = None - if options.generator_output: - project_dir_path = os.path.dirname(os.path.abspath(proj_path)) - proj_path = os.path.join(options.generator_output, proj_path) - fix_prefix = gyp.common.RelativePath(project_dir_path, - os.path.dirname(proj_path)) - return proj_path, fix_prefix - - -def _GetPlatformOverridesOfProject(spec): - # Prepare a dict indicating which project configurations are used for which - # solution configurations for this target. - config_platform_overrides = {} - for config_name, c in spec['configurations'].iteritems(): - config_fullname = _ConfigFullName(config_name, c) - platform = c.get('msvs_target_platform', _ConfigPlatform(c)) - fixed_config_fullname = '%s|%s' % ( - _ConfigBaseName(config_name, _ConfigPlatform(c)), platform) - config_platform_overrides[config_fullname] = fixed_config_fullname - return config_platform_overrides - - -def _CreateProjectObjects(target_list, target_dicts, options, msvs_version): - """Create a MSVSProject object for the targets found in target list. - - Arguments: - target_list: the list of targets to generate project objects for. - target_dicts: the dictionary of specifications. - options: global generator options. - msvs_version: the MSVSVersion object. - Returns: - A set of created projects, keyed by target. - """ - global fixpath_prefix - # Generate each project. - projects = {} - for qualified_target in target_list: - spec = target_dicts[qualified_target] - if spec['toolset'] != 'target': - raise GypError( - 'Multiple toolsets not supported in msvs build (target %s)' % - qualified_target) - proj_path, fixpath_prefix = _GetPathOfProject(qualified_target, spec, - options, msvs_version) - guid = _GetGuidOfProject(proj_path, spec) - overrides = _GetPlatformOverridesOfProject(spec) - build_file = gyp.common.BuildFile(qualified_target) - # Create object for this project. - obj = MSVSNew.MSVSProject( - proj_path, - name=spec['target_name'], - guid=guid, - spec=spec, - build_file=build_file, - config_platform_overrides=overrides, - fixpath_prefix=fixpath_prefix) - # Set project toolset if any (MS build only) - if msvs_version.UsesVcxproj(): - obj.set_msbuild_toolset( - _GetMsbuildToolsetOfProject(proj_path, spec, msvs_version)) - projects[qualified_target] = obj - # Set all the dependencies, but not if we are using an external builder like - # ninja - for project in projects.values(): - if not project.spec.get('msvs_external_builder'): - deps = project.spec.get('dependencies', []) - deps = [projects[d] for d in deps] - project.set_dependencies(deps) - return projects - - -def _InitNinjaFlavor(params, target_list, target_dicts): - """Initialize targets for the ninja flavor. - - This sets up the necessary variables in the targets to generate msvs projects - that use ninja as an external builder. The variables in the spec are only set - if they have not been set. This allows individual specs to override the - default values initialized here. - Arguments: - params: Params provided to the generator. - target_list: List of target pairs: 'base/base.gyp:base'. - target_dicts: Dict of target properties keyed on target pair. - """ - for qualified_target in target_list: - spec = target_dicts[qualified_target] - if spec.get('msvs_external_builder'): - # The spec explicitly defined an external builder, so don't change it. - continue - - path_to_ninja = spec.get('msvs_path_to_ninja', 'ninja.exe') - - spec['msvs_external_builder'] = 'ninja' - if not spec.get('msvs_external_builder_out_dir'): - gyp_file, _, _ = gyp.common.ParseQualifiedTarget(qualified_target) - gyp_dir = os.path.dirname(gyp_file) - configuration = '$(Configuration)' - if params.get('target_arch') == 'x64': - configuration += '_x64' - spec['msvs_external_builder_out_dir'] = os.path.join( - gyp.common.RelativePath(params['options'].toplevel_dir, gyp_dir), - ninja_generator.ComputeOutputDir(params), - configuration) - if not spec.get('msvs_external_builder_build_cmd'): - spec['msvs_external_builder_build_cmd'] = [ - path_to_ninja, - '-C', - '$(OutDir)', - '$(ProjectName)', - ] - if not spec.get('msvs_external_builder_clean_cmd'): - spec['msvs_external_builder_clean_cmd'] = [ - path_to_ninja, - '-C', - '$(OutDir)', - '-tclean', - '$(ProjectName)', - ] - - -def CalculateVariables(default_variables, params): - """Generated variables that require params to be known.""" - - generator_flags = params.get('generator_flags', {}) - - # Select project file format version (if unset, default to auto detecting). - msvs_version = MSVSVersion.SelectVisualStudioVersion( - generator_flags.get('msvs_version', 'auto')) - # Stash msvs_version for later (so we don't have to probe the system twice). - params['msvs_version'] = msvs_version - - # Set a variable so conditions can be based on msvs_version. - default_variables['MSVS_VERSION'] = msvs_version.ShortName() - - # To determine processor word size on Windows, in addition to checking - # PROCESSOR_ARCHITECTURE (which reflects the word size of the current - # process), it is also necessary to check PROCESSOR_ARCITEW6432 (which - # contains the actual word size of the system when running thru WOW64). - if (os.environ.get('PROCESSOR_ARCHITECTURE', '').find('64') >= 0 or - os.environ.get('PROCESSOR_ARCHITEW6432', '').find('64') >= 0): - default_variables['MSVS_OS_BITS'] = 64 - else: - default_variables['MSVS_OS_BITS'] = 32 - - if gyp.common.GetFlavor(params) == 'ninja': - default_variables['SHARED_INTERMEDIATE_DIR'] = '$(OutDir)gen' - - -def PerformBuild(data, configurations, params): - options = params['options'] - msvs_version = params['msvs_version'] - devenv = os.path.join(msvs_version.path, 'Common7', 'IDE', 'devenv.com') - - for build_file, build_file_dict in data.iteritems(): - (build_file_root, build_file_ext) = os.path.splitext(build_file) - if build_file_ext != '.gyp': - continue - sln_path = build_file_root + options.suffix + '.sln' - if options.generator_output: - sln_path = os.path.join(options.generator_output, sln_path) - - for config in configurations: - arguments = [devenv, sln_path, '/Build', config] - print 'Building [%s]: %s' % (config, arguments) - rtn = subprocess.check_call(arguments) - - -def GenerateOutput(target_list, target_dicts, data, params): - """Generate .sln and .vcproj files. - - This is the entry point for this generator. - Arguments: - target_list: List of target pairs: 'base/base.gyp:base'. - target_dicts: Dict of target properties keyed on target pair. - data: Dictionary containing per .gyp data. - """ - global fixpath_prefix - - options = params['options'] - - # Get the project file format version back out of where we stashed it in - # GeneratorCalculatedVariables. - msvs_version = params['msvs_version'] - - generator_flags = params.get('generator_flags', {}) - - # Optionally shard targets marked with 'msvs_shard': SHARD_COUNT. - (target_list, target_dicts) = MSVSUtil.ShardTargets(target_list, target_dicts) - - # Optionally use the large PDB workaround for targets marked with - # 'msvs_large_pdb': 1. - (target_list, target_dicts) = MSVSUtil.InsertLargePdbShims( - target_list, target_dicts, generator_default_variables) - - # Optionally configure each spec to use ninja as the external builder. - if params.get('flavor') == 'ninja': - _InitNinjaFlavor(params, target_list, target_dicts) - - # Prepare the set of configurations. - configs = set() - for qualified_target in target_list: - spec = target_dicts[qualified_target] - for config_name, config in spec['configurations'].iteritems(): - configs.add(_ConfigFullName(config_name, config)) - configs = list(configs) - - # Figure out all the projects that will be generated and their guids - project_objects = _CreateProjectObjects(target_list, target_dicts, options, - msvs_version) - - # Generate each project. - missing_sources = [] - for project in project_objects.values(): - fixpath_prefix = project.fixpath_prefix - missing_sources.extend(_GenerateProject(project, options, msvs_version, - generator_flags)) - fixpath_prefix = None - - for build_file in data: - # Validate build_file extension - if not build_file.endswith('.gyp'): - continue - sln_path = os.path.splitext(build_file)[0] + options.suffix + '.sln' - if options.generator_output: - sln_path = os.path.join(options.generator_output, sln_path) - # Get projects in the solution, and their dependents. - sln_projects = gyp.common.BuildFileTargets(target_list, build_file) - sln_projects += gyp.common.DeepDependencyTargets(target_dicts, sln_projects) - # Create folder hierarchy. - root_entries = _GatherSolutionFolders( - sln_projects, project_objects, flat=msvs_version.FlatSolution()) - # Create solution. - sln = MSVSNew.MSVSSolution(sln_path, - entries=root_entries, - variants=configs, - websiteProperties=False, - version=msvs_version) - sln.Write() - - if missing_sources: - error_message = "Missing input files:\n" + \ - '\n'.join(set(missing_sources)) - if generator_flags.get('msvs_error_on_missing_sources', False): - raise GypError(error_message) - else: - print >> sys.stdout, "Warning: " + error_message - - -def _GenerateMSBuildFiltersFile(filters_path, source_files, - rule_dependencies, extension_to_rule_name): - """Generate the filters file. - - This file is used by Visual Studio to organize the presentation of source - files into folders. - - Arguments: - filters_path: The path of the file to be created. - source_files: The hierarchical structure of all the sources. - extension_to_rule_name: A dictionary mapping file extensions to rules. - """ - filter_group = [] - source_group = [] - _AppendFiltersForMSBuild('', source_files, rule_dependencies, - extension_to_rule_name, filter_group, source_group) - if filter_group: - content = ['Project', - {'ToolsVersion': '4.0', - 'xmlns': 'http://schemas.microsoft.com/developer/msbuild/2003' - }, - ['ItemGroup'] + filter_group, - ['ItemGroup'] + source_group - ] - easy_xml.WriteXmlIfChanged(content, filters_path, pretty=True, win32=True) - elif os.path.exists(filters_path): - # We don't need this filter anymore. Delete the old filter file. - os.unlink(filters_path) - - -def _AppendFiltersForMSBuild(parent_filter_name, sources, rule_dependencies, - extension_to_rule_name, - filter_group, source_group): - """Creates the list of filters and sources to be added in the filter file. - - Args: - parent_filter_name: The name of the filter under which the sources are - found. - sources: The hierarchy of filters and sources to process. - extension_to_rule_name: A dictionary mapping file extensions to rules. - filter_group: The list to which filter entries will be appended. - source_group: The list to which source entries will be appeneded. - """ - for source in sources: - if isinstance(source, MSVSProject.Filter): - # We have a sub-filter. Create the name of that sub-filter. - if not parent_filter_name: - filter_name = source.name - else: - filter_name = '%s\\%s' % (parent_filter_name, source.name) - # Add the filter to the group. - filter_group.append( - ['Filter', {'Include': filter_name}, - ['UniqueIdentifier', MSVSNew.MakeGuid(source.name)]]) - # Recurse and add its dependents. - _AppendFiltersForMSBuild(filter_name, source.contents, - rule_dependencies, extension_to_rule_name, - filter_group, source_group) - else: - # It's a source. Create a source entry. - _, element = _MapFileToMsBuildSourceType(source, rule_dependencies, - extension_to_rule_name) - source_entry = [element, {'Include': source}] - # Specify the filter it is part of, if any. - if parent_filter_name: - source_entry.append(['Filter', parent_filter_name]) - source_group.append(source_entry) - - -def _MapFileToMsBuildSourceType(source, rule_dependencies, - extension_to_rule_name): - """Returns the group and element type of the source file. - - Arguments: - source: The source file name. - extension_to_rule_name: A dictionary mapping file extensions to rules. - - Returns: - A pair of (group this file should be part of, the label of element) - """ - _, ext = os.path.splitext(source) - if ext in extension_to_rule_name: - group = 'rule' - element = extension_to_rule_name[ext] - elif ext in ['.cc', '.cpp', '.c', '.cxx']: - group = 'compile' - element = 'ClCompile' - elif ext in ['.h', '.hxx']: - group = 'include' - element = 'ClInclude' - elif ext == '.rc': - group = 'resource' - element = 'ResourceCompile' - elif ext == '.asm': - group = 'masm' - element = 'MASM' - elif ext == '.idl': - group = 'midl' - element = 'Midl' - elif source in rule_dependencies: - group = 'rule_dependency' - element = 'CustomBuild' - else: - group = 'none' - element = 'None' - return (group, element) - - -def _GenerateRulesForMSBuild(output_dir, options, spec, - sources, excluded_sources, - props_files_of_rules, targets_files_of_rules, - actions_to_add, rule_dependencies, - extension_to_rule_name): - # MSBuild rules are implemented using three files: an XML file, a .targets - # file and a .props file. - # See http://blogs.msdn.com/b/vcblog/archive/2010/04/21/quick-help-on-vs2010-custom-build-rule.aspx - # for more details. - rules = spec.get('rules', []) - rules_native = [r for r in rules if not int(r.get('msvs_external_rule', 0))] - rules_external = [r for r in rules if int(r.get('msvs_external_rule', 0))] - - msbuild_rules = [] - for rule in rules_native: - # Skip a rule with no action and no inputs. - if 'action' not in rule and not rule.get('rule_sources', []): - continue - msbuild_rule = MSBuildRule(rule, spec) - msbuild_rules.append(msbuild_rule) - rule_dependencies.update(msbuild_rule.additional_dependencies.split(';')) - extension_to_rule_name[msbuild_rule.extension] = msbuild_rule.rule_name - if msbuild_rules: - base = spec['target_name'] + options.suffix - props_name = base + '.props' - targets_name = base + '.targets' - xml_name = base + '.xml' - - props_files_of_rules.add(props_name) - targets_files_of_rules.add(targets_name) - - props_path = os.path.join(output_dir, props_name) - targets_path = os.path.join(output_dir, targets_name) - xml_path = os.path.join(output_dir, xml_name) - - _GenerateMSBuildRulePropsFile(props_path, msbuild_rules) - _GenerateMSBuildRuleTargetsFile(targets_path, msbuild_rules) - _GenerateMSBuildRuleXmlFile(xml_path, msbuild_rules) - - if rules_external: - _GenerateExternalRules(rules_external, output_dir, spec, - sources, options, actions_to_add) - _AdjustSourcesForRules(rules, sources, excluded_sources, True) - - -class MSBuildRule(object): - """Used to store information used to generate an MSBuild rule. - - Attributes: - rule_name: The rule name, sanitized to use in XML. - target_name: The name of the target. - after_targets: The name of the AfterTargets element. - before_targets: The name of the BeforeTargets element. - depends_on: The name of the DependsOn element. - compute_output: The name of the ComputeOutput element. - dirs_to_make: The name of the DirsToMake element. - inputs: The name of the _inputs element. - tlog: The name of the _tlog element. - extension: The extension this rule applies to. - description: The message displayed when this rule is invoked. - additional_dependencies: A string listing additional dependencies. - outputs: The outputs of this rule. - command: The command used to run the rule. - """ - - def __init__(self, rule, spec): - self.display_name = rule['rule_name'] - # Assure that the rule name is only characters and numbers - self.rule_name = re.sub(r'\W', '_', self.display_name) - # Create the various element names, following the example set by the - # Visual Studio 2008 to 2010 conversion. I don't know if VS2010 - # is sensitive to the exact names. - self.target_name = '_' + self.rule_name - self.after_targets = self.rule_name + 'AfterTargets' - self.before_targets = self.rule_name + 'BeforeTargets' - self.depends_on = self.rule_name + 'DependsOn' - self.compute_output = 'Compute%sOutput' % self.rule_name - self.dirs_to_make = self.rule_name + 'DirsToMake' - self.inputs = self.rule_name + '_inputs' - self.tlog = self.rule_name + '_tlog' - self.extension = rule['extension'] - if not self.extension.startswith('.'): - self.extension = '.' + self.extension - - self.description = MSVSSettings.ConvertVCMacrosToMSBuild( - rule.get('message', self.rule_name)) - old_additional_dependencies = _FixPaths(rule.get('inputs', [])) - self.additional_dependencies = ( - ';'.join([MSVSSettings.ConvertVCMacrosToMSBuild(i) - for i in old_additional_dependencies])) - old_outputs = _FixPaths(rule.get('outputs', [])) - self.outputs = ';'.join([MSVSSettings.ConvertVCMacrosToMSBuild(i) - for i in old_outputs]) - old_command = _BuildCommandLineForRule(spec, rule, has_input_path=True, - do_setup_env=True) - self.command = MSVSSettings.ConvertVCMacrosToMSBuild(old_command) - - -def _GenerateMSBuildRulePropsFile(props_path, msbuild_rules): - """Generate the .props file.""" - content = ['Project', - {'xmlns': 'http://schemas.microsoft.com/developer/msbuild/2003'}] - for rule in msbuild_rules: - content.extend([ - ['PropertyGroup', - {'Condition': "'$(%s)' == '' and '$(%s)' == '' and " - "'$(ConfigurationType)' != 'Makefile'" % (rule.before_targets, - rule.after_targets) - }, - [rule.before_targets, 'Midl'], - [rule.after_targets, 'CustomBuild'], - ], - ['PropertyGroup', - [rule.depends_on, - {'Condition': "'$(ConfigurationType)' != 'Makefile'"}, - '_SelectedFiles;$(%s)' % rule.depends_on - ], - ], - ['ItemDefinitionGroup', - [rule.rule_name, - ['CommandLineTemplate', rule.command], - ['Outputs', rule.outputs], - ['ExecutionDescription', rule.description], - ['AdditionalDependencies', rule.additional_dependencies], - ], - ] - ]) - easy_xml.WriteXmlIfChanged(content, props_path, pretty=True, win32=True) - - -def _GenerateMSBuildRuleTargetsFile(targets_path, msbuild_rules): - """Generate the .targets file.""" - content = ['Project', - {'xmlns': 'http://schemas.microsoft.com/developer/msbuild/2003' - } - ] - item_group = [ - 'ItemGroup', - ['PropertyPageSchema', - {'Include': '$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml'} - ] - ] - for rule in msbuild_rules: - item_group.append( - ['AvailableItemName', - {'Include': rule.rule_name}, - ['Targets', rule.target_name], - ]) - content.append(item_group) - - for rule in msbuild_rules: - content.append( - ['UsingTask', - {'TaskName': rule.rule_name, - 'TaskFactory': 'XamlTaskFactory', - 'AssemblyName': 'Microsoft.Build.Tasks.v4.0' - }, - ['Task', '$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml'], - ]) - for rule in msbuild_rules: - rule_name = rule.rule_name - target_outputs = '%%(%s.Outputs)' % rule_name - target_inputs = ('%%(%s.Identity);%%(%s.AdditionalDependencies);' - '$(MSBuildProjectFile)') % (rule_name, rule_name) - rule_inputs = '%%(%s.Identity)' % rule_name - extension_condition = ("'%(Extension)'=='.obj' or " - "'%(Extension)'=='.res' or " - "'%(Extension)'=='.rsc' or " - "'%(Extension)'=='.lib'") - remove_section = [ - 'ItemGroup', - {'Condition': "'@(SelectedFiles)' != ''"}, - [rule_name, - {'Remove': '@(%s)' % rule_name, - 'Condition': "'%(Identity)' != '@(SelectedFiles)'" - } - ] - ] - inputs_section = [ - 'ItemGroup', - [rule.inputs, {'Include': '%%(%s.AdditionalDependencies)' % rule_name}] - ] - logging_section = [ - 'ItemGroup', - [rule.tlog, - {'Include': '%%(%s.Outputs)' % rule_name, - 'Condition': ("'%%(%s.Outputs)' != '' and " - "'%%(%s.ExcludedFromBuild)' != 'true'" % - (rule_name, rule_name)) - }, - ['Source', "@(%s, '|')" % rule_name], - ['Inputs', "@(%s -> '%%(Fullpath)', ';')" % rule.inputs], - ], - ] - message_section = [ - 'Message', - {'Importance': 'High', - 'Text': '%%(%s.ExecutionDescription)' % rule_name - } - ] - write_tlog_section = [ - 'WriteLinesToFile', - {'Condition': "'@(%s)' != '' and '%%(%s.ExcludedFromBuild)' != " - "'true'" % (rule.tlog, rule.tlog), - 'File': '$(IntDir)$(ProjectName).write.1.tlog', - 'Lines': "^%%(%s.Source);@(%s->'%%(Fullpath)')" % (rule.tlog, - rule.tlog) - } - ] - read_tlog_section = [ - 'WriteLinesToFile', - {'Condition': "'@(%s)' != '' and '%%(%s.ExcludedFromBuild)' != " - "'true'" % (rule.tlog, rule.tlog), - 'File': '$(IntDir)$(ProjectName).read.1.tlog', - 'Lines': "^%%(%s.Source);%%(%s.Inputs)" % (rule.tlog, rule.tlog) - } - ] - command_and_input_section = [ - rule_name, - {'Condition': "'@(%s)' != '' and '%%(%s.ExcludedFromBuild)' != " - "'true'" % (rule_name, rule_name), - 'EchoOff': 'true', - 'StandardOutputImportance': 'High', - 'StandardErrorImportance': 'High', - 'CommandLineTemplate': '%%(%s.CommandLineTemplate)' % rule_name, - 'AdditionalOptions': '%%(%s.AdditionalOptions)' % rule_name, - 'Inputs': rule_inputs - } - ] - content.extend([ - ['Target', - {'Name': rule.target_name, - 'BeforeTargets': '$(%s)' % rule.before_targets, - 'AfterTargets': '$(%s)' % rule.after_targets, - 'Condition': "'@(%s)' != ''" % rule_name, - 'DependsOnTargets': '$(%s);%s' % (rule.depends_on, - rule.compute_output), - 'Outputs': target_outputs, - 'Inputs': target_inputs - }, - remove_section, - inputs_section, - logging_section, - message_section, - write_tlog_section, - read_tlog_section, - command_and_input_section, - ], - ['PropertyGroup', - ['ComputeLinkInputsTargets', - '$(ComputeLinkInputsTargets);', - '%s;' % rule.compute_output - ], - ['ComputeLibInputsTargets', - '$(ComputeLibInputsTargets);', - '%s;' % rule.compute_output - ], - ], - ['Target', - {'Name': rule.compute_output, - 'Condition': "'@(%s)' != ''" % rule_name - }, - ['ItemGroup', - [rule.dirs_to_make, - {'Condition': "'@(%s)' != '' and " - "'%%(%s.ExcludedFromBuild)' != 'true'" % (rule_name, rule_name), - 'Include': '%%(%s.Outputs)' % rule_name - } - ], - ['Link', - {'Include': '%%(%s.Identity)' % rule.dirs_to_make, - 'Condition': extension_condition - } - ], - ['Lib', - {'Include': '%%(%s.Identity)' % rule.dirs_to_make, - 'Condition': extension_condition - } - ], - ['ImpLib', - {'Include': '%%(%s.Identity)' % rule.dirs_to_make, - 'Condition': extension_condition - } - ], - ], - ['MakeDir', - {'Directories': ("@(%s->'%%(RootDir)%%(Directory)')" % - rule.dirs_to_make) - } - ] - ], - ]) - easy_xml.WriteXmlIfChanged(content, targets_path, pretty=True, win32=True) - - -def _GenerateMSBuildRuleXmlFile(xml_path, msbuild_rules): - # Generate the .xml file - content = [ - 'ProjectSchemaDefinitions', - {'xmlns': ('clr-namespace:Microsoft.Build.Framework.XamlTypes;' - 'assembly=Microsoft.Build.Framework'), - 'xmlns:x': 'http://schemas.microsoft.com/winfx/2006/xaml', - 'xmlns:sys': 'clr-namespace:System;assembly=mscorlib', - 'xmlns:transformCallback': - 'Microsoft.Cpp.Dev10.ConvertPropertyCallback' - } - ] - for rule in msbuild_rules: - content.extend([ - ['Rule', - {'Name': rule.rule_name, - 'PageTemplate': 'tool', - 'DisplayName': rule.display_name, - 'Order': '200' - }, - ['Rule.DataSource', - ['DataSource', - {'Persistence': 'ProjectFile', - 'ItemType': rule.rule_name - } - ] - ], - ['Rule.Categories', - ['Category', - {'Name': 'General'}, - ['Category.DisplayName', - ['sys:String', 'General'], - ], - ], - ['Category', - {'Name': 'Command Line', - 'Subtype': 'CommandLine' - }, - ['Category.DisplayName', - ['sys:String', 'Command Line'], - ], - ], - ], - ['StringListProperty', - {'Name': 'Inputs', - 'Category': 'Command Line', - 'IsRequired': 'true', - 'Switch': ' ' - }, - ['StringListProperty.DataSource', - ['DataSource', - {'Persistence': 'ProjectFile', - 'ItemType': rule.rule_name, - 'SourceType': 'Item' - } - ] - ], - ], - ['StringProperty', - {'Name': 'CommandLineTemplate', - 'DisplayName': 'Command Line', - 'Visible': 'False', - 'IncludeInCommandLine': 'False' - } - ], - ['DynamicEnumProperty', - {'Name': rule.before_targets, - 'Category': 'General', - 'EnumProvider': 'Targets', - 'IncludeInCommandLine': 'False' - }, - ['DynamicEnumProperty.DisplayName', - ['sys:String', 'Execute Before'], - ], - ['DynamicEnumProperty.Description', - ['sys:String', 'Specifies the targets for the build customization' - ' to run before.' - ], - ], - ['DynamicEnumProperty.ProviderSettings', - ['NameValuePair', - {'Name': 'Exclude', - 'Value': '^%s|^Compute' % rule.before_targets - } - ] - ], - ['DynamicEnumProperty.DataSource', - ['DataSource', - {'Persistence': 'ProjectFile', - 'HasConfigurationCondition': 'true' - } - ] - ], - ], - ['DynamicEnumProperty', - {'Name': rule.after_targets, - 'Category': 'General', - 'EnumProvider': 'Targets', - 'IncludeInCommandLine': 'False' - }, - ['DynamicEnumProperty.DisplayName', - ['sys:String', 'Execute After'], - ], - ['DynamicEnumProperty.Description', - ['sys:String', ('Specifies the targets for the build customization' - ' to run after.') - ], - ], - ['DynamicEnumProperty.ProviderSettings', - ['NameValuePair', - {'Name': 'Exclude', - 'Value': '^%s|^Compute' % rule.after_targets - } - ] - ], - ['DynamicEnumProperty.DataSource', - ['DataSource', - {'Persistence': 'ProjectFile', - 'ItemType': '', - 'HasConfigurationCondition': 'true' - } - ] - ], - ], - ['StringListProperty', - {'Name': 'Outputs', - 'DisplayName': 'Outputs', - 'Visible': 'False', - 'IncludeInCommandLine': 'False' - } - ], - ['StringProperty', - {'Name': 'ExecutionDescription', - 'DisplayName': 'Execution Description', - 'Visible': 'False', - 'IncludeInCommandLine': 'False' - } - ], - ['StringListProperty', - {'Name': 'AdditionalDependencies', - 'DisplayName': 'Additional Dependencies', - 'IncludeInCommandLine': 'False', - 'Visible': 'false' - } - ], - ['StringProperty', - {'Subtype': 'AdditionalOptions', - 'Name': 'AdditionalOptions', - 'Category': 'Command Line' - }, - ['StringProperty.DisplayName', - ['sys:String', 'Additional Options'], - ], - ['StringProperty.Description', - ['sys:String', 'Additional Options'], - ], - ], - ], - ['ItemType', - {'Name': rule.rule_name, - 'DisplayName': rule.display_name - } - ], - ['FileExtension', - {'Name': '*' + rule.extension, - 'ContentType': rule.rule_name - } - ], - ['ContentType', - {'Name': rule.rule_name, - 'DisplayName': '', - 'ItemType': rule.rule_name - } - ] - ]) - easy_xml.WriteXmlIfChanged(content, xml_path, pretty=True, win32=True) - - -def _GetConfigurationAndPlatform(name, settings): - configuration = name.rsplit('_', 1)[0] - platform = settings.get('msvs_configuration_platform', 'Win32') - return (configuration, platform) - - -def _GetConfigurationCondition(name, settings): - return (r"'$(Configuration)|$(Platform)'=='%s|%s'" % - _GetConfigurationAndPlatform(name, settings)) - - -def _GetMSBuildProjectConfigurations(configurations): - group = ['ItemGroup', {'Label': 'ProjectConfigurations'}] - for (name, settings) in sorted(configurations.iteritems()): - configuration, platform = _GetConfigurationAndPlatform(name, settings) - designation = '%s|%s' % (configuration, platform) - group.append( - ['ProjectConfiguration', {'Include': designation}, - ['Configuration', configuration], - ['Platform', platform]]) - return [group] - - -def _GetMSBuildGlobalProperties(spec, guid, gyp_file_name): - namespace = os.path.splitext(gyp_file_name)[0] - properties = [ - ['PropertyGroup', {'Label': 'Globals'}, - ['ProjectGuid', guid], - ['Keyword', 'Win32Proj'], - ['RootNamespace', namespace], - ['IgnoreWarnCompileDuplicatedFilename', 'true'], - ] - ] - - if os.environ.get('PROCESSOR_ARCHITECTURE') == 'AMD64' or \ - os.environ.get('PROCESSOR_ARCHITEW6432') == 'AMD64': - properties[0].append(['PreferredToolArchitecture', 'x64']) - - if spec.get('msvs_enable_winrt'): - properties[0].append(['DefaultLanguage', 'en-US']) - properties[0].append(['AppContainerApplication', 'true']) - if spec.get('msvs_application_type_revision'): - app_type_revision = spec.get('msvs_application_type_revision') - properties[0].append(['ApplicationTypeRevision', app_type_revision]) - else: - properties[0].append(['ApplicationTypeRevision', '8.1']) - - if spec.get('msvs_target_platform_version'): - target_platform_version = spec.get('msvs_target_platform_version') - properties[0].append(['WindowsTargetPlatformVersion', - target_platform_version]) - if spec.get('msvs_target_platform_minversion'): - target_platform_minversion = spec.get('msvs_target_platform_minversion') - properties[0].append(['WindowsTargetPlatformMinVersion', - target_platform_minversion]) - else: - properties[0].append(['WindowsTargetPlatformMinVersion', - target_platform_version]) - if spec.get('msvs_enable_winphone'): - properties[0].append(['ApplicationType', 'Windows Phone']) - else: - properties[0].append(['ApplicationType', 'Windows Store']) - - return properties - -def _GetMSBuildConfigurationDetails(spec, build_file): - properties = {} - for name, settings in spec['configurations'].iteritems(): - msbuild_attributes = _GetMSBuildAttributes(spec, settings, build_file) - condition = _GetConfigurationCondition(name, settings) - character_set = msbuild_attributes.get('CharacterSet') - _AddConditionalProperty(properties, condition, 'ConfigurationType', - msbuild_attributes['ConfigurationType']) - if character_set: - if 'msvs_enable_winrt' not in spec : - _AddConditionalProperty(properties, condition, 'CharacterSet', - character_set) - return _GetMSBuildPropertyGroup(spec, 'Configuration', properties) - - -def _GetMSBuildLocalProperties(msbuild_toolset): - # Currently the only local property we support is PlatformToolset - properties = {} - if msbuild_toolset: - properties = [ - ['PropertyGroup', {'Label': 'Locals'}, - ['PlatformToolset', msbuild_toolset], - ] - ] - return properties - - -def _GetMSBuildPropertySheets(configurations): - user_props = r'$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props' - additional_props = {} - props_specified = False - for name, settings in sorted(configurations.iteritems()): - configuration = _GetConfigurationCondition(name, settings) - if settings.has_key('msbuild_props'): - additional_props[configuration] = _FixPaths(settings['msbuild_props']) - props_specified = True - else: - additional_props[configuration] = '' - - if not props_specified: - return [ - ['ImportGroup', - {'Label': 'PropertySheets'}, - ['Import', - {'Project': user_props, - 'Condition': "exists('%s')" % user_props, - 'Label': 'LocalAppDataPlatform' - } - ] - ] - ] - else: - sheets = [] - for condition, props in additional_props.iteritems(): - import_group = [ - 'ImportGroup', - {'Label': 'PropertySheets', - 'Condition': condition - }, - ['Import', - {'Project': user_props, - 'Condition': "exists('%s')" % user_props, - 'Label': 'LocalAppDataPlatform' - } - ] - ] - for props_file in props: - import_group.append(['Import', {'Project':props_file}]) - sheets.append(import_group) - return sheets - -def _ConvertMSVSBuildAttributes(spec, config, build_file): - config_type = _GetMSVSConfigurationType(spec, build_file) - msvs_attributes = _GetMSVSAttributes(spec, config, config_type) - msbuild_attributes = {} - for a in msvs_attributes: - if a in ['IntermediateDirectory', 'OutputDirectory']: - directory = MSVSSettings.ConvertVCMacrosToMSBuild(msvs_attributes[a]) - if not directory.endswith('\\'): - directory += '\\' - msbuild_attributes[a] = directory - elif a == 'CharacterSet': - msbuild_attributes[a] = _ConvertMSVSCharacterSet(msvs_attributes[a]) - elif a == 'ConfigurationType': - msbuild_attributes[a] = _ConvertMSVSConfigurationType(msvs_attributes[a]) - else: - print 'Warning: Do not know how to convert MSVS attribute ' + a - return msbuild_attributes - - -def _ConvertMSVSCharacterSet(char_set): - if char_set.isdigit(): - char_set = { - '0': 'MultiByte', - '1': 'Unicode', - '2': 'MultiByte', - }[char_set] - return char_set - - -def _ConvertMSVSConfigurationType(config_type): - if config_type.isdigit(): - config_type = { - '1': 'Application', - '2': 'DynamicLibrary', - '4': 'StaticLibrary', - '10': 'Utility' - }[config_type] - return config_type - - -def _GetMSBuildAttributes(spec, config, build_file): - if 'msbuild_configuration_attributes' not in config: - msbuild_attributes = _ConvertMSVSBuildAttributes(spec, config, build_file) - - else: - config_type = _GetMSVSConfigurationType(spec, build_file) - config_type = _ConvertMSVSConfigurationType(config_type) - msbuild_attributes = config.get('msbuild_configuration_attributes', {}) - msbuild_attributes.setdefault('ConfigurationType', config_type) - output_dir = msbuild_attributes.get('OutputDirectory', - '$(SolutionDir)$(Configuration)') - msbuild_attributes['OutputDirectory'] = _FixPath(output_dir) + '\\' - if 'IntermediateDirectory' not in msbuild_attributes: - intermediate = _FixPath('$(Configuration)') + '\\' - msbuild_attributes['IntermediateDirectory'] = intermediate - if 'CharacterSet' in msbuild_attributes: - msbuild_attributes['CharacterSet'] = _ConvertMSVSCharacterSet( - msbuild_attributes['CharacterSet']) - if 'TargetName' not in msbuild_attributes: - prefix = spec.get('product_prefix', '') - product_name = spec.get('product_name', '$(ProjectName)') - target_name = prefix + product_name - msbuild_attributes['TargetName'] = target_name - if 'TargetExt' not in msbuild_attributes and 'product_extension' in spec: - ext = spec.get('product_extension') - msbuild_attributes['TargetExt'] = '.' + ext - - if spec.get('msvs_external_builder'): - external_out_dir = spec.get('msvs_external_builder_out_dir', '.') - msbuild_attributes['OutputDirectory'] = _FixPath(external_out_dir) + '\\' - - # Make sure that 'TargetPath' matches 'Lib.OutputFile' or 'Link.OutputFile' - # (depending on the tool used) to avoid MSB8012 warning. - msbuild_tool_map = { - 'executable': 'Link', - 'shared_library': 'Link', - 'loadable_module': 'Link', - 'static_library': 'Lib', - } - msbuild_tool = msbuild_tool_map.get(spec['type']) - if msbuild_tool: - msbuild_settings = config['finalized_msbuild_settings'] - out_file = msbuild_settings[msbuild_tool].get('OutputFile') - if out_file: - msbuild_attributes['TargetPath'] = _FixPath(out_file) - target_ext = msbuild_settings[msbuild_tool].get('TargetExt') - if target_ext: - msbuild_attributes['TargetExt'] = target_ext - - return msbuild_attributes - - -def _GetMSBuildConfigurationGlobalProperties(spec, configurations, build_file): - # TODO(jeanluc) We could optimize out the following and do it only if - # there are actions. - # TODO(jeanluc) Handle the equivalent of setting 'CYGWIN=nontsec'. - new_paths = [] - cygwin_dirs = spec.get('msvs_cygwin_dirs', ['.'])[0] - if cygwin_dirs: - cyg_path = '$(MSBuildProjectDirectory)\\%s\\bin\\' % _FixPath(cygwin_dirs) - new_paths.append(cyg_path) - # TODO(jeanluc) Change the convention to have both a cygwin_dir and a - # python_dir. - python_path = cyg_path.replace('cygwin\\bin', 'python_26') - new_paths.append(python_path) - if new_paths: - new_paths = '$(ExecutablePath);' + ';'.join(new_paths) - - properties = {} - for (name, configuration) in sorted(configurations.iteritems()): - condition = _GetConfigurationCondition(name, configuration) - attributes = _GetMSBuildAttributes(spec, configuration, build_file) - msbuild_settings = configuration['finalized_msbuild_settings'] - _AddConditionalProperty(properties, condition, 'IntDir', - attributes['IntermediateDirectory']) - _AddConditionalProperty(properties, condition, 'OutDir', - attributes['OutputDirectory']) - _AddConditionalProperty(properties, condition, 'TargetName', - attributes['TargetName']) - if 'TargetExt' in attributes: - _AddConditionalProperty(properties, condition, 'TargetExt', - attributes['TargetExt']) - - if attributes.get('TargetPath'): - _AddConditionalProperty(properties, condition, 'TargetPath', - attributes['TargetPath']) - if attributes.get('TargetExt'): - _AddConditionalProperty(properties, condition, 'TargetExt', - attributes['TargetExt']) - - if new_paths: - _AddConditionalProperty(properties, condition, 'ExecutablePath', - new_paths) - tool_settings = msbuild_settings.get('', {}) - for name, value in sorted(tool_settings.iteritems()): - formatted_value = _GetValueFormattedForMSBuild('', name, value) - _AddConditionalProperty(properties, condition, name, formatted_value) - return _GetMSBuildPropertyGroup(spec, None, properties) - - -def _AddConditionalProperty(properties, condition, name, value): - """Adds a property / conditional value pair to a dictionary. - - Arguments: - properties: The dictionary to be modified. The key is the name of the - property. The value is itself a dictionary; its key is the value and - the value a list of condition for which this value is true. - condition: The condition under which the named property has the value. - name: The name of the property. - value: The value of the property. - """ - if name not in properties: - properties[name] = {} - values = properties[name] - if value not in values: - values[value] = [] - conditions = values[value] - conditions.append(condition) - - -# Regex for msvs variable references ( i.e. $(FOO) ). -MSVS_VARIABLE_REFERENCE = re.compile(r'\$\(([a-zA-Z_][a-zA-Z0-9_]*)\)') - - -def _GetMSBuildPropertyGroup(spec, label, properties): - """Returns a PropertyGroup definition for the specified properties. - - Arguments: - spec: The target project dict. - label: An optional label for the PropertyGroup. - properties: The dictionary to be converted. The key is the name of the - property. The value is itself a dictionary; its key is the value and - the value a list of condition for which this value is true. - """ - group = ['PropertyGroup'] - if label: - group.append({'Label': label}) - num_configurations = len(spec['configurations']) - def GetEdges(node): - # Use a definition of edges such that user_of_variable -> used_varible. - # This happens to be easier in this case, since a variable's - # definition contains all variables it references in a single string. - edges = set() - for value in sorted(properties[node].keys()): - # Add to edges all $(...) references to variables. - # - # Variable references that refer to names not in properties are excluded - # These can exist for instance to refer built in definitions like - # $(SolutionDir). - # - # Self references are ignored. Self reference is used in a few places to - # append to the default value. I.e. PATH=$(PATH);other_path - edges.update(set([v for v in MSVS_VARIABLE_REFERENCE.findall(value) - if v in properties and v != node])) - return edges - properties_ordered = gyp.common.TopologicallySorted( - properties.keys(), GetEdges) - # Walk properties in the reverse of a topological sort on - # user_of_variable -> used_variable as this ensures variables are - # defined before they are used. - # NOTE: reverse(topsort(DAG)) = topsort(reverse_edges(DAG)) - for name in reversed(properties_ordered): - values = properties[name] - for value, conditions in sorted(values.iteritems()): - if len(conditions) == num_configurations: - # If the value is the same all configurations, - # just add one unconditional entry. - group.append([name, value]) - else: - for condition in conditions: - group.append([name, {'Condition': condition}, value]) - return [group] - - -def _GetMSBuildToolSettingsSections(spec, configurations): - groups = [] - for (name, configuration) in sorted(configurations.iteritems()): - msbuild_settings = configuration['finalized_msbuild_settings'] - group = ['ItemDefinitionGroup', - {'Condition': _GetConfigurationCondition(name, configuration)} - ] - for tool_name, tool_settings in sorted(msbuild_settings.iteritems()): - # Skip the tool named '' which is a holder of global settings handled - # by _GetMSBuildConfigurationGlobalProperties. - if tool_name: - if tool_settings: - tool = [tool_name] - for name, value in sorted(tool_settings.iteritems()): - formatted_value = _GetValueFormattedForMSBuild(tool_name, name, - value) - tool.append([name, formatted_value]) - group.append(tool) - groups.append(group) - return groups - - -def _FinalizeMSBuildSettings(spec, configuration): - if 'msbuild_settings' in configuration: - converted = False - msbuild_settings = configuration['msbuild_settings'] - MSVSSettings.ValidateMSBuildSettings(msbuild_settings) - else: - converted = True - msvs_settings = configuration.get('msvs_settings', {}) - msbuild_settings = MSVSSettings.ConvertToMSBuildSettings(msvs_settings) - include_dirs, midl_include_dirs, resource_include_dirs = \ - _GetIncludeDirs(configuration) - libraries = _GetLibraries(spec) - library_dirs = _GetLibraryDirs(configuration) - out_file, _, msbuild_tool = _GetOutputFilePathAndTool(spec, msbuild=True) - target_ext = _GetOutputTargetExt(spec) - defines = _GetDefines(configuration) - if converted: - # Visual Studio 2010 has TR1 - defines = [d for d in defines if d != '_HAS_TR1=0'] - # Warn of ignored settings - ignored_settings = ['msvs_tool_files'] - for ignored_setting in ignored_settings: - value = configuration.get(ignored_setting) - if value: - print ('Warning: The automatic conversion to MSBuild does not handle ' - '%s. Ignoring setting of %s' % (ignored_setting, str(value))) - - defines = [_EscapeCppDefineForMSBuild(d) for d in defines] - disabled_warnings = _GetDisabledWarnings(configuration) - prebuild = configuration.get('msvs_prebuild') - postbuild = configuration.get('msvs_postbuild') - def_file = _GetModuleDefinition(spec) - precompiled_header = configuration.get('msvs_precompiled_header') - - # Add the information to the appropriate tool - # TODO(jeanluc) We could optimize and generate these settings only if - # the corresponding files are found, e.g. don't generate ResourceCompile - # if you don't have any resources. - _ToolAppend(msbuild_settings, 'ClCompile', - 'AdditionalIncludeDirectories', include_dirs) - _ToolAppend(msbuild_settings, 'Midl', - 'AdditionalIncludeDirectories', midl_include_dirs) - _ToolAppend(msbuild_settings, 'ResourceCompile', - 'AdditionalIncludeDirectories', resource_include_dirs) - # Add in libraries, note that even for empty libraries, we want this - # set, to prevent inheriting default libraries from the enviroment. - _ToolSetOrAppend(msbuild_settings, 'Link', 'AdditionalDependencies', - libraries) - _ToolAppend(msbuild_settings, 'Link', 'AdditionalLibraryDirectories', - library_dirs) - if out_file: - _ToolAppend(msbuild_settings, msbuild_tool, 'OutputFile', out_file, - only_if_unset=True) - if target_ext: - _ToolAppend(msbuild_settings, msbuild_tool, 'TargetExt', target_ext, - only_if_unset=True) - # Add defines. - _ToolAppend(msbuild_settings, 'ClCompile', - 'PreprocessorDefinitions', defines) - _ToolAppend(msbuild_settings, 'ResourceCompile', - 'PreprocessorDefinitions', defines) - # Add disabled warnings. - _ToolAppend(msbuild_settings, 'ClCompile', - 'DisableSpecificWarnings', disabled_warnings) - # Turn on precompiled headers if appropriate. - if precompiled_header: - precompiled_header = os.path.split(precompiled_header)[1] - _ToolAppend(msbuild_settings, 'ClCompile', 'PrecompiledHeader', 'Use') - _ToolAppend(msbuild_settings, 'ClCompile', - 'PrecompiledHeaderFile', precompiled_header) - _ToolAppend(msbuild_settings, 'ClCompile', - 'ForcedIncludeFiles', [precompiled_header]) - else: - _ToolAppend(msbuild_settings, 'ClCompile', 'PrecompiledHeader', 'NotUsing') - # Turn off WinRT compilation - _ToolAppend(msbuild_settings, 'ClCompile', 'CompileAsWinRT', 'false') - # Turn on import libraries if appropriate - if spec.get('msvs_requires_importlibrary'): - _ToolAppend(msbuild_settings, '', 'IgnoreImportLibrary', 'false') - # Loadable modules don't generate import libraries; - # tell dependent projects to not expect one. - if spec['type'] == 'loadable_module': - _ToolAppend(msbuild_settings, '', 'IgnoreImportLibrary', 'true') - # Set the module definition file if any. - if def_file: - _ToolAppend(msbuild_settings, 'Link', 'ModuleDefinitionFile', def_file) - configuration['finalized_msbuild_settings'] = msbuild_settings - if prebuild: - _ToolAppend(msbuild_settings, 'PreBuildEvent', 'Command', prebuild) - if postbuild: - _ToolAppend(msbuild_settings, 'PostBuildEvent', 'Command', postbuild) - - -def _GetValueFormattedForMSBuild(tool_name, name, value): - if type(value) == list: - # For some settings, VS2010 does not automatically extends the settings - # TODO(jeanluc) Is this what we want? - if name in ['AdditionalIncludeDirectories', - 'AdditionalLibraryDirectories', - 'AdditionalOptions', - 'DelayLoadDLLs', - 'DisableSpecificWarnings', - 'PreprocessorDefinitions']: - value.append('%%(%s)' % name) - # For most tools, entries in a list should be separated with ';' but some - # settings use a space. Check for those first. - exceptions = { - 'ClCompile': ['AdditionalOptions'], - 'Link': ['AdditionalOptions'], - 'Lib': ['AdditionalOptions']} - if tool_name in exceptions and name in exceptions[tool_name]: - char = ' ' - else: - char = ';' - formatted_value = char.join( - [MSVSSettings.ConvertVCMacrosToMSBuild(i) for i in value]) - else: - formatted_value = MSVSSettings.ConvertVCMacrosToMSBuild(value) - return formatted_value - - -def _VerifySourcesExist(sources, root_dir): - """Verifies that all source files exist on disk. - - Checks that all regular source files, i.e. not created at run time, - exist on disk. Missing files cause needless recompilation but no otherwise - visible errors. - - Arguments: - sources: A recursive list of Filter/file names. - root_dir: The root directory for the relative path names. - Returns: - A list of source files that cannot be found on disk. - """ - missing_sources = [] - for source in sources: - if isinstance(source, MSVSProject.Filter): - missing_sources.extend(_VerifySourcesExist(source.contents, root_dir)) - else: - if '$' not in source: - full_path = os.path.join(root_dir, source) - if not os.path.exists(full_path): - missing_sources.append(full_path) - return missing_sources - - -def _GetMSBuildSources(spec, sources, exclusions, rule_dependencies, - extension_to_rule_name, actions_spec, - sources_handled_by_action, list_excluded): - groups = ['none', 'masm', 'midl', 'include', 'compile', 'resource', 'rule', - 'rule_dependency'] - grouped_sources = {} - for g in groups: - grouped_sources[g] = [] - - _AddSources2(spec, sources, exclusions, grouped_sources, - rule_dependencies, extension_to_rule_name, - sources_handled_by_action, list_excluded) - sources = [] - for g in groups: - if grouped_sources[g]: - sources.append(['ItemGroup'] + grouped_sources[g]) - if actions_spec: - sources.append(['ItemGroup'] + actions_spec) - return sources - - -def _AddSources2(spec, sources, exclusions, grouped_sources, - rule_dependencies, extension_to_rule_name, - sources_handled_by_action, - list_excluded): - extensions_excluded_from_precompile = [] - for source in sources: - if isinstance(source, MSVSProject.Filter): - _AddSources2(spec, source.contents, exclusions, grouped_sources, - rule_dependencies, extension_to_rule_name, - sources_handled_by_action, - list_excluded) - else: - if not source in sources_handled_by_action: - detail = [] - excluded_configurations = exclusions.get(source, []) - if len(excluded_configurations) == len(spec['configurations']): - detail.append(['ExcludedFromBuild', 'true']) - else: - for config_name, configuration in sorted(excluded_configurations): - condition = _GetConfigurationCondition(config_name, configuration) - detail.append(['ExcludedFromBuild', - {'Condition': condition}, - 'true']) - # Add precompile if needed - for config_name, configuration in spec['configurations'].iteritems(): - precompiled_source = configuration.get('msvs_precompiled_source', '') - if precompiled_source != '': - precompiled_source = _FixPath(precompiled_source) - if not extensions_excluded_from_precompile: - # If the precompiled header is generated by a C source, we must - # not try to use it for C++ sources, and vice versa. - basename, extension = os.path.splitext(precompiled_source) - if extension == '.c': - extensions_excluded_from_precompile = ['.cc', '.cpp', '.cxx'] - else: - extensions_excluded_from_precompile = ['.c'] - - if precompiled_source == source: - condition = _GetConfigurationCondition(config_name, configuration) - detail.append(['PrecompiledHeader', - {'Condition': condition}, - 'Create' - ]) - else: - # Turn off precompiled header usage for source files of a - # different type than the file that generated the - # precompiled header. - for extension in extensions_excluded_from_precompile: - if source.endswith(extension): - detail.append(['PrecompiledHeader', '']) - detail.append(['ForcedIncludeFiles', '']) - - group, element = _MapFileToMsBuildSourceType(source, rule_dependencies, - extension_to_rule_name) - grouped_sources[group].append([element, {'Include': source}] + detail) - - -def _GetMSBuildProjectReferences(project): - references = [] - if project.dependencies: - group = ['ItemGroup'] - for dependency in project.dependencies: - guid = dependency.guid - project_dir = os.path.split(project.path)[0] - relative_path = gyp.common.RelativePath(dependency.path, project_dir) - project_ref = ['ProjectReference', - {'Include': relative_path}, - ['Project', guid], - ['ReferenceOutputAssembly', 'false'] - ] - for config in dependency.spec.get('configurations', {}).itervalues(): - # If it's disabled in any config, turn it off in the reference. - if config.get('msvs_2010_disable_uldi_when_referenced', 0): - project_ref.append(['UseLibraryDependencyInputs', 'false']) - break - group.append(project_ref) - references.append(group) - return references - - -def _GenerateMSBuildProject(project, options, version, generator_flags): - spec = project.spec - configurations = spec['configurations'] - project_dir, project_file_name = os.path.split(project.path) - gyp.common.EnsureDirExists(project.path) - # Prepare list of sources and excluded sources. - gyp_path = _NormalizedSource(project.build_file) - relative_path_of_gyp_file = gyp.common.RelativePath(gyp_path, project_dir) - - gyp_file = os.path.split(project.build_file)[1] - sources, excluded_sources = _PrepareListOfSources(spec, generator_flags, - gyp_file) - # Add rules. - actions_to_add = {} - props_files_of_rules = set() - targets_files_of_rules = set() - rule_dependencies = set() - extension_to_rule_name = {} - list_excluded = generator_flags.get('msvs_list_excluded_files', True) - - # Don't generate rules if we are using an external builder like ninja. - if not spec.get('msvs_external_builder'): - _GenerateRulesForMSBuild(project_dir, options, spec, - sources, excluded_sources, - props_files_of_rules, targets_files_of_rules, - actions_to_add, rule_dependencies, - extension_to_rule_name) - else: - rules = spec.get('rules', []) - _AdjustSourcesForRules(rules, sources, excluded_sources, True) - - sources, excluded_sources, excluded_idl = ( - _AdjustSourcesAndConvertToFilterHierarchy(spec, options, - project_dir, sources, - excluded_sources, - list_excluded, version)) - - # Don't add actions if we are using an external builder like ninja. - if not spec.get('msvs_external_builder'): - _AddActions(actions_to_add, spec, project.build_file) - _AddCopies(actions_to_add, spec) - - # NOTE: this stanza must appear after all actions have been decided. - # Don't excluded sources with actions attached, or they won't run. - excluded_sources = _FilterActionsFromExcluded( - excluded_sources, actions_to_add) - - exclusions = _GetExcludedFilesFromBuild(spec, excluded_sources, excluded_idl) - actions_spec, sources_handled_by_action = _GenerateActionsForMSBuild( - spec, actions_to_add) - - _GenerateMSBuildFiltersFile(project.path + '.filters', sources, - rule_dependencies, - extension_to_rule_name) - missing_sources = _VerifySourcesExist(sources, project_dir) - - for configuration in configurations.itervalues(): - _FinalizeMSBuildSettings(spec, configuration) - - # Add attributes to root element - - import_default_section = [ - ['Import', {'Project': r'$(VCTargetsPath)\Microsoft.Cpp.Default.props'}]] - import_cpp_props_section = [ - ['Import', {'Project': r'$(VCTargetsPath)\Microsoft.Cpp.props'}]] - import_cpp_targets_section = [ - ['Import', {'Project': r'$(VCTargetsPath)\Microsoft.Cpp.targets'}]] - import_masm_props_section = [ - ['Import', - {'Project': r'$(VCTargetsPath)\BuildCustomizations\masm.props'}]] - import_masm_targets_section = [ - ['Import', - {'Project': r'$(VCTargetsPath)\BuildCustomizations\masm.targets'}]] - macro_section = [['PropertyGroup', {'Label': 'UserMacros'}]] - - content = [ - 'Project', - {'xmlns': 'http://schemas.microsoft.com/developer/msbuild/2003', - 'ToolsVersion': version.ProjectVersion(), - 'DefaultTargets': 'Build' - }] - - content += _GetMSBuildProjectConfigurations(configurations) - content += _GetMSBuildGlobalProperties(spec, project.guid, project_file_name) - content += import_default_section - content += _GetMSBuildConfigurationDetails(spec, project.build_file) - if spec.get('msvs_enable_winphone'): - content += _GetMSBuildLocalProperties('v120_wp81') - else: - content += _GetMSBuildLocalProperties(project.msbuild_toolset) - content += import_cpp_props_section - content += import_masm_props_section - content += _GetMSBuildExtensions(props_files_of_rules) - content += _GetMSBuildPropertySheets(configurations) - content += macro_section - content += _GetMSBuildConfigurationGlobalProperties(spec, configurations, - project.build_file) - content += _GetMSBuildToolSettingsSections(spec, configurations) - content += _GetMSBuildSources( - spec, sources, exclusions, rule_dependencies, extension_to_rule_name, - actions_spec, sources_handled_by_action, list_excluded) - content += _GetMSBuildProjectReferences(project) - content += import_cpp_targets_section - content += import_masm_targets_section - content += _GetMSBuildExtensionTargets(targets_files_of_rules) - - if spec.get('msvs_external_builder'): - content += _GetMSBuildExternalBuilderTargets(spec) - - # TODO(jeanluc) File a bug to get rid of runas. We had in MSVS: - # has_run_as = _WriteMSVSUserFile(project.path, version, spec) - - easy_xml.WriteXmlIfChanged(content, project.path, pretty=True, win32=True) - - return missing_sources - - -def _GetMSBuildExternalBuilderTargets(spec): - """Return a list of MSBuild targets for external builders. - - The "Build" and "Clean" targets are always generated. If the spec contains - 'msvs_external_builder_clcompile_cmd', then the "ClCompile" target will also - be generated, to support building selected C/C++ files. - - Arguments: - spec: The gyp target spec. - Returns: - List of MSBuild 'Target' specs. - """ - build_cmd = _BuildCommandLineForRuleRaw( - spec, spec['msvs_external_builder_build_cmd'], - False, False, False, False) - build_target = ['Target', {'Name': 'Build'}] - build_target.append(['Exec', {'Command': build_cmd}]) - - clean_cmd = _BuildCommandLineForRuleRaw( - spec, spec['msvs_external_builder_clean_cmd'], - False, False, False, False) - clean_target = ['Target', {'Name': 'Clean'}] - clean_target.append(['Exec', {'Command': clean_cmd}]) - - targets = [build_target, clean_target] - - if spec.get('msvs_external_builder_clcompile_cmd'): - clcompile_cmd = _BuildCommandLineForRuleRaw( - spec, spec['msvs_external_builder_clcompile_cmd'], - False, False, False, False) - clcompile_target = ['Target', {'Name': 'ClCompile'}] - clcompile_target.append(['Exec', {'Command': clcompile_cmd}]) - targets.append(clcompile_target) - - return targets - - -def _GetMSBuildExtensions(props_files_of_rules): - extensions = ['ImportGroup', {'Label': 'ExtensionSettings'}] - for props_file in props_files_of_rules: - extensions.append(['Import', {'Project': props_file}]) - return [extensions] - - -def _GetMSBuildExtensionTargets(targets_files_of_rules): - targets_node = ['ImportGroup', {'Label': 'ExtensionTargets'}] - for targets_file in sorted(targets_files_of_rules): - targets_node.append(['Import', {'Project': targets_file}]) - return [targets_node] - - -def _GenerateActionsForMSBuild(spec, actions_to_add): - """Add actions accumulated into an actions_to_add, merging as needed. - - Arguments: - spec: the target project dict - actions_to_add: dictionary keyed on input name, which maps to a list of - dicts describing the actions attached to that input file. - - Returns: - A pair of (action specification, the sources handled by this action). - """ - sources_handled_by_action = OrderedSet() - actions_spec = [] - for primary_input, actions in actions_to_add.iteritems(): - inputs = OrderedSet() - outputs = OrderedSet() - descriptions = [] - commands = [] - for action in actions: - inputs.update(OrderedSet(action['inputs'])) - outputs.update(OrderedSet(action['outputs'])) - descriptions.append(action['description']) - cmd = action['command'] - # For most actions, add 'call' so that actions that invoke batch files - # return and continue executing. msbuild_use_call provides a way to - # disable this but I have not seen any adverse effect from doing that - # for everything. - if action.get('msbuild_use_call', True): - cmd = 'call ' + cmd - commands.append(cmd) - # Add the custom build action for one input file. - description = ', and also '.join(descriptions) - - # We can't join the commands simply with && because the command line will - # get too long. See also _AddActions: cygwin's setup_env mustn't be called - # for every invocation or the command that sets the PATH will grow too - # long. - command = '\r\n'.join([c + '\r\nif %errorlevel% neq 0 exit /b %errorlevel%' - for c in commands]) - _AddMSBuildAction(spec, - primary_input, - inputs, - outputs, - command, - description, - sources_handled_by_action, - actions_spec) - return actions_spec, sources_handled_by_action - - -def _AddMSBuildAction(spec, primary_input, inputs, outputs, cmd, description, - sources_handled_by_action, actions_spec): - command = MSVSSettings.ConvertVCMacrosToMSBuild(cmd) - primary_input = _FixPath(primary_input) - inputs_array = _FixPaths(inputs) - outputs_array = _FixPaths(outputs) - additional_inputs = ';'.join([i for i in inputs_array - if i != primary_input]) - outputs = ';'.join(outputs_array) - sources_handled_by_action.add(primary_input) - action_spec = ['CustomBuild', {'Include': primary_input}] - action_spec.extend( - # TODO(jeanluc) 'Document' for all or just if as_sources? - [['FileType', 'Document'], - ['Command', command], - ['Message', description], - ['Outputs', outputs] - ]) - if additional_inputs: - action_spec.append(['AdditionalInputs', additional_inputs]) - actions_spec.append(action_spec) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py deleted file mode 100755 index c0b021df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env python -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -""" Unit tests for the msvs.py file. """ - -import gyp.generator.msvs as msvs -import unittest -import StringIO - - -class TestSequenceFunctions(unittest.TestCase): - - def setUp(self): - self.stderr = StringIO.StringIO() - - def test_GetLibraries(self): - self.assertEqual( - msvs._GetLibraries({}), - []) - self.assertEqual( - msvs._GetLibraries({'libraries': []}), - []) - self.assertEqual( - msvs._GetLibraries({'other':'foo', 'libraries': ['a.lib']}), - ['a.lib']) - self.assertEqual( - msvs._GetLibraries({'libraries': ['-la']}), - ['a.lib']) - self.assertEqual( - msvs._GetLibraries({'libraries': ['a.lib', 'b.lib', 'c.lib', '-lb.lib', - '-lb.lib', 'd.lib', 'a.lib']}), - ['c.lib', 'b.lib', 'd.lib', 'a.lib']) - -if __name__ == '__main__': - unittest.main() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py deleted file mode 100644 index 841067ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +++ /dev/null @@ -1,2410 +0,0 @@ -# Copyright (c) 2013 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import collections -import copy -import hashlib -import json -import multiprocessing -import os.path -import re -import signal -import subprocess -import sys -import gyp -import gyp.common -from gyp.common import OrderedSet -import gyp.msvs_emulation -import gyp.MSVSUtil as MSVSUtil -import gyp.xcode_emulation -from cStringIO import StringIO - -from gyp.common import GetEnvironFallback -import gyp.ninja_syntax as ninja_syntax - -generator_default_variables = { - 'EXECUTABLE_PREFIX': '', - 'EXECUTABLE_SUFFIX': '', - 'STATIC_LIB_PREFIX': 'lib', - 'STATIC_LIB_SUFFIX': '.a', - 'SHARED_LIB_PREFIX': 'lib', - - # Gyp expects the following variables to be expandable by the build - # system to the appropriate locations. Ninja prefers paths to be - # known at gyp time. To resolve this, introduce special - # variables starting with $! and $| (which begin with a $ so gyp knows it - # should be treated specially, but is otherwise an invalid - # ninja/shell variable) that are passed to gyp here but expanded - # before writing out into the target .ninja files; see - # ExpandSpecial. - # $! is used for variables that represent a path and that can only appear at - # the start of a string, while $| is used for variables that can appear - # anywhere in a string. - 'INTERMEDIATE_DIR': '$!INTERMEDIATE_DIR', - 'SHARED_INTERMEDIATE_DIR': '$!PRODUCT_DIR/gen', - 'PRODUCT_DIR': '$!PRODUCT_DIR', - 'CONFIGURATION_NAME': '$|CONFIGURATION_NAME', - - # Special variables that may be used by gyp 'rule' targets. - # We generate definitions for these variables on the fly when processing a - # rule. - 'RULE_INPUT_ROOT': '${root}', - 'RULE_INPUT_DIRNAME': '${dirname}', - 'RULE_INPUT_PATH': '${source}', - 'RULE_INPUT_EXT': '${ext}', - 'RULE_INPUT_NAME': '${name}', -} - -# Placates pylint. -generator_additional_non_configuration_keys = [] -generator_additional_path_sections = [] -generator_extra_sources_for_rules = [] -generator_filelist_paths = None - -generator_supports_multiple_toolsets = gyp.common.CrossCompileRequested() - -def StripPrefix(arg, prefix): - if arg.startswith(prefix): - return arg[len(prefix):] - return arg - - -def QuoteShellArgument(arg, flavor): - """Quote a string such that it will be interpreted as a single argument - by the shell.""" - # Rather than attempting to enumerate the bad shell characters, just - # whitelist common OK ones and quote anything else. - if re.match(r'^[a-zA-Z0-9_=.\\/-]+$', arg): - return arg # No quoting necessary. - if flavor == 'win': - return gyp.msvs_emulation.QuoteForRspFile(arg) - return "'" + arg.replace("'", "'" + '"\'"' + "'") + "'" - - -def Define(d, flavor): - """Takes a preprocessor define and returns a -D parameter that's ninja- and - shell-escaped.""" - if flavor == 'win': - # cl.exe replaces literal # characters with = in preprocesor definitions for - # some reason. Octal-encode to work around that. - d = d.replace('#', '\\%03o' % ord('#')) - return QuoteShellArgument(ninja_syntax.escape('-D' + d), flavor) - - -def AddArch(output, arch): - """Adds an arch string to an output path.""" - output, extension = os.path.splitext(output) - return '%s.%s%s' % (output, arch, extension) - - -class Target(object): - """Target represents the paths used within a single gyp target. - - Conceptually, building a single target A is a series of steps: - - 1) actions/rules/copies generates source/resources/etc. - 2) compiles generates .o files - 3) link generates a binary (library/executable) - 4) bundle merges the above in a mac bundle - - (Any of these steps can be optional.) - - From a build ordering perspective, a dependent target B could just - depend on the last output of this series of steps. - - But some dependent commands sometimes need to reach inside the box. - For example, when linking B it needs to get the path to the static - library generated by A. - - This object stores those paths. To keep things simple, member - variables only store concrete paths to single files, while methods - compute derived values like "the last output of the target". - """ - def __init__(self, type): - # Gyp type ("static_library", etc.) of this target. - self.type = type - # File representing whether any input dependencies necessary for - # dependent actions have completed. - self.preaction_stamp = None - # File representing whether any input dependencies necessary for - # dependent compiles have completed. - self.precompile_stamp = None - # File representing the completion of actions/rules/copies, if any. - self.actions_stamp = None - # Path to the output of the link step, if any. - self.binary = None - # Path to the file representing the completion of building the bundle, - # if any. - self.bundle = None - # On Windows, incremental linking requires linking against all the .objs - # that compose a .lib (rather than the .lib itself). That list is stored - # here. In this case, we also need to save the compile_deps for the target, - # so that the the target that directly depends on the .objs can also depend - # on those. - self.component_objs = None - self.compile_deps = None - # Windows only. The import .lib is the output of a build step, but - # because dependents only link against the lib (not both the lib and the - # dll) we keep track of the import library here. - self.import_lib = None - - def Linkable(self): - """Return true if this is a target that can be linked against.""" - return self.type in ('static_library', 'shared_library') - - def UsesToc(self, flavor): - """Return true if the target should produce a restat rule based on a TOC - file.""" - # For bundles, the .TOC should be produced for the binary, not for - # FinalOutput(). But the naive approach would put the TOC file into the - # bundle, so don't do this for bundles for now. - if flavor == 'win' or self.bundle: - return False - return self.type in ('shared_library', 'loadable_module') - - def PreActionInput(self, flavor): - """Return the path, if any, that should be used as a dependency of - any dependent action step.""" - if self.UsesToc(flavor): - return self.FinalOutput() + '.TOC' - return self.FinalOutput() or self.preaction_stamp - - def PreCompileInput(self): - """Return the path, if any, that should be used as a dependency of - any dependent compile step.""" - return self.actions_stamp or self.precompile_stamp - - def FinalOutput(self): - """Return the last output of the target, which depends on all prior - steps.""" - return self.bundle or self.binary or self.actions_stamp - - -# A small discourse on paths as used within the Ninja build: -# All files we produce (both at gyp and at build time) appear in the -# build directory (e.g. out/Debug). -# -# Paths within a given .gyp file are always relative to the directory -# containing the .gyp file. Call these "gyp paths". This includes -# sources as well as the starting directory a given gyp rule/action -# expects to be run from. We call the path from the source root to -# the gyp file the "base directory" within the per-.gyp-file -# NinjaWriter code. -# -# All paths as written into the .ninja files are relative to the build -# directory. Call these paths "ninja paths". -# -# We translate between these two notions of paths with two helper -# functions: -# -# - GypPathToNinja translates a gyp path (i.e. relative to the .gyp file) -# into the equivalent ninja path. -# -# - GypPathToUniqueOutput translates a gyp path into a ninja path to write -# an output file; the result can be namespaced such that it is unique -# to the input file name as well as the output target name. - -class NinjaWriter(object): - def __init__(self, hash_for_rules, target_outputs, base_dir, build_dir, - output_file, toplevel_build, output_file_name, flavor, - toplevel_dir=None): - """ - base_dir: path from source root to directory containing this gyp file, - by gyp semantics, all input paths are relative to this - build_dir: path from source root to build output - toplevel_dir: path to the toplevel directory - """ - - self.hash_for_rules = hash_for_rules - self.target_outputs = target_outputs - self.base_dir = base_dir - self.build_dir = build_dir - self.ninja = ninja_syntax.Writer(output_file) - self.toplevel_build = toplevel_build - self.output_file_name = output_file_name - - self.flavor = flavor - self.abs_build_dir = None - if toplevel_dir is not None: - self.abs_build_dir = os.path.abspath(os.path.join(toplevel_dir, - build_dir)) - self.obj_ext = '.obj' if flavor == 'win' else '.o' - if flavor == 'win': - # See docstring of msvs_emulation.GenerateEnvironmentFiles(). - self.win_env = {} - for arch in ('x86', 'x64'): - self.win_env[arch] = 'environment.' + arch - - # Relative path from build output dir to base dir. - build_to_top = gyp.common.InvertRelativePath(build_dir, toplevel_dir) - self.build_to_base = os.path.join(build_to_top, base_dir) - # Relative path from base dir to build dir. - base_to_top = gyp.common.InvertRelativePath(base_dir, toplevel_dir) - self.base_to_build = os.path.join(base_to_top, build_dir) - - def ExpandSpecial(self, path, product_dir=None): - """Expand specials like $!PRODUCT_DIR in |path|. - - If |product_dir| is None, assumes the cwd is already the product - dir. Otherwise, |product_dir| is the relative path to the product - dir. - """ - - PRODUCT_DIR = '$!PRODUCT_DIR' - if PRODUCT_DIR in path: - if product_dir: - path = path.replace(PRODUCT_DIR, product_dir) - else: - path = path.replace(PRODUCT_DIR + '/', '') - path = path.replace(PRODUCT_DIR + '\\', '') - path = path.replace(PRODUCT_DIR, '.') - - INTERMEDIATE_DIR = '$!INTERMEDIATE_DIR' - if INTERMEDIATE_DIR in path: - int_dir = self.GypPathToUniqueOutput('gen') - # GypPathToUniqueOutput generates a path relative to the product dir, - # so insert product_dir in front if it is provided. - path = path.replace(INTERMEDIATE_DIR, - os.path.join(product_dir or '', int_dir)) - - CONFIGURATION_NAME = '$|CONFIGURATION_NAME' - path = path.replace(CONFIGURATION_NAME, self.config_name) - - return path - - def ExpandRuleVariables(self, path, root, dirname, source, ext, name): - if self.flavor == 'win': - path = self.msvs_settings.ConvertVSMacros( - path, config=self.config_name) - path = path.replace(generator_default_variables['RULE_INPUT_ROOT'], root) - path = path.replace(generator_default_variables['RULE_INPUT_DIRNAME'], - dirname) - path = path.replace(generator_default_variables['RULE_INPUT_PATH'], source) - path = path.replace(generator_default_variables['RULE_INPUT_EXT'], ext) - path = path.replace(generator_default_variables['RULE_INPUT_NAME'], name) - return path - - def GypPathToNinja(self, path, env=None): - """Translate a gyp path to a ninja path, optionally expanding environment - variable references in |path| with |env|. - - See the above discourse on path conversions.""" - if env: - if self.flavor == 'mac': - path = gyp.xcode_emulation.ExpandEnvVars(path, env) - elif self.flavor == 'win': - path = gyp.msvs_emulation.ExpandMacros(path, env) - if path.startswith('$!'): - expanded = self.ExpandSpecial(path) - if self.flavor == 'win': - expanded = os.path.normpath(expanded) - return expanded - if '$|' in path: - path = self.ExpandSpecial(path) - assert '$' not in path, path - return os.path.normpath(os.path.join(self.build_to_base, path)) - - def GypPathToUniqueOutput(self, path, qualified=True): - """Translate a gyp path to a ninja path for writing output. - - If qualified is True, qualify the resulting filename with the name - of the target. This is necessary when e.g. compiling the same - path twice for two separate output targets. - - See the above discourse on path conversions.""" - - path = self.ExpandSpecial(path) - assert not path.startswith('$'), path - - # Translate the path following this scheme: - # Input: foo/bar.gyp, target targ, references baz/out.o - # Output: obj/foo/baz/targ.out.o (if qualified) - # obj/foo/baz/out.o (otherwise) - # (and obj.host instead of obj for cross-compiles) - # - # Why this scheme and not some other one? - # 1) for a given input, you can compute all derived outputs by matching - # its path, even if the input is brought via a gyp file with '..'. - # 2) simple files like libraries and stamps have a simple filename. - - obj = 'obj' - if self.toolset != 'target': - obj += '.' + self.toolset - - path_dir, path_basename = os.path.split(path) - assert not os.path.isabs(path_dir), ( - "'%s' can not be absolute path (see crbug.com/462153)." % path_dir) - - if qualified: - path_basename = self.name + '.' + path_basename - return os.path.normpath(os.path.join(obj, self.base_dir, path_dir, - path_basename)) - - def WriteCollapsedDependencies(self, name, targets, order_only=None): - """Given a list of targets, return a path for a single file - representing the result of building all the targets or None. - - Uses a stamp file if necessary.""" - - assert targets == filter(None, targets), targets - if len(targets) == 0: - assert not order_only - return None - if len(targets) > 1 or order_only: - stamp = self.GypPathToUniqueOutput(name + '.stamp') - targets = self.ninja.build(stamp, 'stamp', targets, order_only=order_only) - self.ninja.newline() - return targets[0] - - def _SubninjaNameForArch(self, arch): - output_file_base = os.path.splitext(self.output_file_name)[0] - return '%s.%s.ninja' % (output_file_base, arch) - - def WriteSpec(self, spec, config_name, generator_flags): - """The main entry point for NinjaWriter: write the build rules for a spec. - - Returns a Target object, which represents the output paths for this spec. - Returns None if there are no outputs (e.g. a settings-only 'none' type - target).""" - - self.config_name = config_name - self.name = spec['target_name'] - self.toolset = spec['toolset'] - config = spec['configurations'][config_name] - self.target = Target(spec['type']) - self.is_standalone_static_library = bool( - spec.get('standalone_static_library', 0)) - # Track if this target contains any C++ files, to decide if gcc or g++ - # should be used for linking. - self.uses_cpp = False - - self.is_mac_bundle = gyp.xcode_emulation.IsMacBundle(self.flavor, spec) - self.xcode_settings = self.msvs_settings = None - if self.flavor == 'mac': - self.xcode_settings = gyp.xcode_emulation.XcodeSettings(spec) - if self.flavor == 'win': - self.msvs_settings = gyp.msvs_emulation.MsvsSettings(spec, - generator_flags) - arch = self.msvs_settings.GetArch(config_name) - self.ninja.variable('arch', self.win_env[arch]) - self.ninja.variable('cc', '$cl_' + arch) - self.ninja.variable('cxx', '$cl_' + arch) - self.ninja.variable('cc_host', '$cl_' + arch) - self.ninja.variable('cxx_host', '$cl_' + arch) - self.ninja.variable('asm', '$ml_' + arch) - - if self.flavor == 'mac': - self.archs = self.xcode_settings.GetActiveArchs(config_name) - if len(self.archs) > 1: - self.arch_subninjas = dict( - (arch, ninja_syntax.Writer( - OpenOutput(os.path.join(self.toplevel_build, - self._SubninjaNameForArch(arch)), - 'w'))) - for arch in self.archs) - - # Compute predepends for all rules. - # actions_depends is the dependencies this target depends on before running - # any of its action/rule/copy steps. - # compile_depends is the dependencies this target depends on before running - # any of its compile steps. - actions_depends = [] - compile_depends = [] - # TODO(evan): it is rather confusing which things are lists and which - # are strings. Fix these. - if 'dependencies' in spec: - for dep in spec['dependencies']: - if dep in self.target_outputs: - target = self.target_outputs[dep] - actions_depends.append(target.PreActionInput(self.flavor)) - compile_depends.append(target.PreCompileInput()) - actions_depends = filter(None, actions_depends) - compile_depends = filter(None, compile_depends) - actions_depends = self.WriteCollapsedDependencies('actions_depends', - actions_depends) - compile_depends = self.WriteCollapsedDependencies('compile_depends', - compile_depends) - self.target.preaction_stamp = actions_depends - self.target.precompile_stamp = compile_depends - - # Write out actions, rules, and copies. These must happen before we - # compile any sources, so compute a list of predependencies for sources - # while we do it. - extra_sources = [] - mac_bundle_depends = [] - self.target.actions_stamp = self.WriteActionsRulesCopies( - spec, extra_sources, actions_depends, mac_bundle_depends) - - # If we have actions/rules/copies, we depend directly on those, but - # otherwise we depend on dependent target's actions/rules/copies etc. - # We never need to explicitly depend on previous target's link steps, - # because no compile ever depends on them. - compile_depends_stamp = (self.target.actions_stamp or compile_depends) - - # Write out the compilation steps, if any. - link_deps = [] - sources = extra_sources + spec.get('sources', []) - if sources: - if self.flavor == 'mac' and len(self.archs) > 1: - # Write subninja file containing compile and link commands scoped to - # a single arch if a fat binary is being built. - for arch in self.archs: - self.ninja.subninja(self._SubninjaNameForArch(arch)) - - pch = None - if self.flavor == 'win': - gyp.msvs_emulation.VerifyMissingSources( - sources, self.abs_build_dir, generator_flags, self.GypPathToNinja) - pch = gyp.msvs_emulation.PrecompiledHeader( - self.msvs_settings, config_name, self.GypPathToNinja, - self.GypPathToUniqueOutput, self.obj_ext) - else: - pch = gyp.xcode_emulation.MacPrefixHeader( - self.xcode_settings, self.GypPathToNinja, - lambda path, lang: self.GypPathToUniqueOutput(path + '-' + lang)) - link_deps = self.WriteSources( - self.ninja, config_name, config, sources, compile_depends_stamp, pch, - spec) - # Some actions/rules output 'sources' that are already object files. - obj_outputs = [f for f in sources if f.endswith(self.obj_ext)] - if obj_outputs: - if self.flavor != 'mac' or len(self.archs) == 1: - link_deps += [self.GypPathToNinja(o) for o in obj_outputs] - else: - print "Warning: Actions/rules writing object files don't work with " \ - "multiarch targets, dropping. (target %s)" % spec['target_name'] - elif self.flavor == 'mac' and len(self.archs) > 1: - link_deps = collections.defaultdict(list) - - compile_deps = self.target.actions_stamp or actions_depends - if self.flavor == 'win' and self.target.type == 'static_library': - self.target.component_objs = link_deps - self.target.compile_deps = compile_deps - - # Write out a link step, if needed. - output = None - is_empty_bundle = not link_deps and not mac_bundle_depends - if link_deps or self.target.actions_stamp or actions_depends: - output = self.WriteTarget(spec, config_name, config, link_deps, - compile_deps) - if self.is_mac_bundle: - mac_bundle_depends.append(output) - - # Bundle all of the above together, if needed. - if self.is_mac_bundle: - output = self.WriteMacBundle(spec, mac_bundle_depends, is_empty_bundle) - - if not output: - return None - - assert self.target.FinalOutput(), output - return self.target - - def _WinIdlRule(self, source, prebuild, outputs): - """Handle the implicit VS .idl rule for one source file. Fills |outputs| - with files that are generated.""" - outdir, output, vars, flags = self.msvs_settings.GetIdlBuildData( - source, self.config_name) - outdir = self.GypPathToNinja(outdir) - def fix_path(path, rel=None): - path = os.path.join(outdir, path) - dirname, basename = os.path.split(source) - root, ext = os.path.splitext(basename) - path = self.ExpandRuleVariables( - path, root, dirname, source, ext, basename) - if rel: - path = os.path.relpath(path, rel) - return path - vars = [(name, fix_path(value, outdir)) for name, value in vars] - output = [fix_path(p) for p in output] - vars.append(('outdir', outdir)) - vars.append(('idlflags', flags)) - input = self.GypPathToNinja(source) - self.ninja.build(output, 'idl', input, - variables=vars, order_only=prebuild) - outputs.extend(output) - - def WriteWinIdlFiles(self, spec, prebuild): - """Writes rules to match MSVS's implicit idl handling.""" - assert self.flavor == 'win' - if self.msvs_settings.HasExplicitIdlRulesOrActions(spec): - return [] - outputs = [] - for source in filter(lambda x: x.endswith('.idl'), spec['sources']): - self._WinIdlRule(source, prebuild, outputs) - return outputs - - def WriteActionsRulesCopies(self, spec, extra_sources, prebuild, - mac_bundle_depends): - """Write out the Actions, Rules, and Copies steps. Return a path - representing the outputs of these steps.""" - outputs = [] - if self.is_mac_bundle: - mac_bundle_resources = spec.get('mac_bundle_resources', [])[:] - else: - mac_bundle_resources = [] - extra_mac_bundle_resources = [] - - if 'actions' in spec: - outputs += self.WriteActions(spec['actions'], extra_sources, prebuild, - extra_mac_bundle_resources) - if 'rules' in spec: - outputs += self.WriteRules(spec['rules'], extra_sources, prebuild, - mac_bundle_resources, - extra_mac_bundle_resources) - if 'copies' in spec: - outputs += self.WriteCopies(spec['copies'], prebuild, mac_bundle_depends) - - if 'sources' in spec and self.flavor == 'win': - outputs += self.WriteWinIdlFiles(spec, prebuild) - - stamp = self.WriteCollapsedDependencies('actions_rules_copies', outputs) - - if self.is_mac_bundle: - xcassets = self.WriteMacBundleResources( - extra_mac_bundle_resources + mac_bundle_resources, mac_bundle_depends) - partial_info_plist = self.WriteMacXCassets(xcassets, mac_bundle_depends) - self.WriteMacInfoPlist(partial_info_plist, mac_bundle_depends) - - return stamp - - def GenerateDescription(self, verb, message, fallback): - """Generate and return a description of a build step. - - |verb| is the short summary, e.g. ACTION or RULE. - |message| is a hand-written description, or None if not available. - |fallback| is the gyp-level name of the step, usable as a fallback. - """ - if self.toolset != 'target': - verb += '(%s)' % self.toolset - if message: - return '%s %s' % (verb, self.ExpandSpecial(message)) - else: - return '%s %s: %s' % (verb, self.name, fallback) - - def WriteActions(self, actions, extra_sources, prebuild, - extra_mac_bundle_resources): - # Actions cd into the base directory. - env = self.GetToolchainEnv() - all_outputs = [] - for action in actions: - # First write out a rule for the action. - name = '%s_%s' % (action['action_name'], self.hash_for_rules) - description = self.GenerateDescription('ACTION', - action.get('message', None), - name) - is_cygwin = (self.msvs_settings.IsRuleRunUnderCygwin(action) - if self.flavor == 'win' else False) - args = action['action'] - depfile = action.get('depfile', None) - if depfile: - depfile = self.ExpandSpecial(depfile, self.base_to_build) - pool = 'console' if int(action.get('ninja_use_console', 0)) else None - rule_name, _ = self.WriteNewNinjaRule(name, args, description, - is_cygwin, env, pool, - depfile=depfile) - - inputs = [self.GypPathToNinja(i, env) for i in action['inputs']] - if int(action.get('process_outputs_as_sources', False)): - extra_sources += action['outputs'] - if int(action.get('process_outputs_as_mac_bundle_resources', False)): - extra_mac_bundle_resources += action['outputs'] - outputs = [self.GypPathToNinja(o, env) for o in action['outputs']] - - # Then write out an edge using the rule. - self.ninja.build(outputs, rule_name, inputs, - order_only=prebuild) - all_outputs += outputs - - self.ninja.newline() - - return all_outputs - - def WriteRules(self, rules, extra_sources, prebuild, - mac_bundle_resources, extra_mac_bundle_resources): - env = self.GetToolchainEnv() - all_outputs = [] - for rule in rules: - # Skip a rule with no action and no inputs. - if 'action' not in rule and not rule.get('rule_sources', []): - continue - - # First write out a rule for the rule action. - name = '%s_%s' % (rule['rule_name'], self.hash_for_rules) - - args = rule['action'] - description = self.GenerateDescription( - 'RULE', - rule.get('message', None), - ('%s ' + generator_default_variables['RULE_INPUT_PATH']) % name) - is_cygwin = (self.msvs_settings.IsRuleRunUnderCygwin(rule) - if self.flavor == 'win' else False) - pool = 'console' if int(rule.get('ninja_use_console', 0)) else None - rule_name, args = self.WriteNewNinjaRule( - name, args, description, is_cygwin, env, pool) - - # TODO: if the command references the outputs directly, we should - # simplify it to just use $out. - - # Rules can potentially make use of some special variables which - # must vary per source file. - # Compute the list of variables we'll need to provide. - special_locals = ('source', 'root', 'dirname', 'ext', 'name') - needed_variables = set(['source']) - for argument in args: - for var in special_locals: - if '${%s}' % var in argument: - needed_variables.add(var) - - def cygwin_munge(path): - # pylint: disable=cell-var-from-loop - if is_cygwin: - return path.replace('\\', '/') - return path - - inputs = [self.GypPathToNinja(i, env) for i in rule.get('inputs', [])] - - # If there are n source files matching the rule, and m additional rule - # inputs, then adding 'inputs' to each build edge written below will - # write m * n inputs. Collapsing reduces this to m + n. - sources = rule.get('rule_sources', []) - num_inputs = len(inputs) - if prebuild: - num_inputs += 1 - if num_inputs > 2 and len(sources) > 2: - inputs = [self.WriteCollapsedDependencies( - rule['rule_name'], inputs, order_only=prebuild)] - prebuild = [] - - # For each source file, write an edge that generates all the outputs. - for source in sources: - source = os.path.normpath(source) - dirname, basename = os.path.split(source) - root, ext = os.path.splitext(basename) - - # Gather the list of inputs and outputs, expanding $vars if possible. - outputs = [self.ExpandRuleVariables(o, root, dirname, - source, ext, basename) - for o in rule['outputs']] - - if int(rule.get('process_outputs_as_sources', False)): - extra_sources += outputs - - was_mac_bundle_resource = source in mac_bundle_resources - if was_mac_bundle_resource or \ - int(rule.get('process_outputs_as_mac_bundle_resources', False)): - extra_mac_bundle_resources += outputs - # Note: This is n_resources * n_outputs_in_rule. Put to-be-removed - # items in a set and remove them all in a single pass if this becomes - # a performance issue. - if was_mac_bundle_resource: - mac_bundle_resources.remove(source) - - extra_bindings = [] - for var in needed_variables: - if var == 'root': - extra_bindings.append(('root', cygwin_munge(root))) - elif var == 'dirname': - # '$dirname' is a parameter to the rule action, which means - # it shouldn't be converted to a Ninja path. But we don't - # want $!PRODUCT_DIR in there either. - dirname_expanded = self.ExpandSpecial(dirname, self.base_to_build) - extra_bindings.append(('dirname', cygwin_munge(dirname_expanded))) - elif var == 'source': - # '$source' is a parameter to the rule action, which means - # it shouldn't be converted to a Ninja path. But we don't - # want $!PRODUCT_DIR in there either. - source_expanded = self.ExpandSpecial(source, self.base_to_build) - extra_bindings.append(('source', cygwin_munge(source_expanded))) - elif var == 'ext': - extra_bindings.append(('ext', ext)) - elif var == 'name': - extra_bindings.append(('name', cygwin_munge(basename))) - else: - assert var == None, repr(var) - - outputs = [self.GypPathToNinja(o, env) for o in outputs] - if self.flavor == 'win': - # WriteNewNinjaRule uses unique_name for creating an rsp file on win. - extra_bindings.append(('unique_name', - hashlib.md5(outputs[0]).hexdigest())) - self.ninja.build(outputs, rule_name, self.GypPathToNinja(source), - implicit=inputs, - order_only=prebuild, - variables=extra_bindings) - - all_outputs.extend(outputs) - - return all_outputs - - def WriteCopies(self, copies, prebuild, mac_bundle_depends): - outputs = [] - env = self.GetToolchainEnv() - for copy in copies: - for path in copy['files']: - # Normalize the path so trailing slashes don't confuse us. - path = os.path.normpath(path) - basename = os.path.split(path)[1] - src = self.GypPathToNinja(path, env) - dst = self.GypPathToNinja(os.path.join(copy['destination'], basename), - env) - outputs += self.ninja.build(dst, 'copy', src, order_only=prebuild) - if self.is_mac_bundle: - # gyp has mac_bundle_resources to copy things into a bundle's - # Resources folder, but there's no built-in way to copy files to other - # places in the bundle. Hence, some targets use copies for this. Check - # if this file is copied into the current bundle, and if so add it to - # the bundle depends so that dependent targets get rebuilt if the copy - # input changes. - if dst.startswith(self.xcode_settings.GetBundleContentsFolderPath()): - mac_bundle_depends.append(dst) - - return outputs - - def WriteMacBundleResources(self, resources, bundle_depends): - """Writes ninja edges for 'mac_bundle_resources'.""" - xcassets = [] - for output, res in gyp.xcode_emulation.GetMacBundleResources( - generator_default_variables['PRODUCT_DIR'], - self.xcode_settings, map(self.GypPathToNinja, resources)): - output = self.ExpandSpecial(output) - if os.path.splitext(output)[-1] != '.xcassets': - isBinary = self.xcode_settings.IsBinaryOutputFormat(self.config_name) - self.ninja.build(output, 'mac_tool', res, - variables=[('mactool_cmd', 'copy-bundle-resource'), \ - ('binary', isBinary)]) - bundle_depends.append(output) - else: - xcassets.append(res) - return xcassets - - def WriteMacXCassets(self, xcassets, bundle_depends): - """Writes ninja edges for 'mac_bundle_resources' .xcassets files. - - This add an invocation of 'actool' via the 'mac_tool.py' helper script. - It assumes that the assets catalogs define at least one imageset and - thus an Assets.car file will be generated in the application resources - directory. If this is not the case, then the build will probably be done - at each invocation of ninja.""" - if not xcassets: - return - - extra_arguments = {} - settings_to_arg = { - 'XCASSETS_APP_ICON': 'app-icon', - 'XCASSETS_LAUNCH_IMAGE': 'launch-image', - } - settings = self.xcode_settings.xcode_settings[self.config_name] - for settings_key, arg_name in settings_to_arg.iteritems(): - value = settings.get(settings_key) - if value: - extra_arguments[arg_name] = value - - partial_info_plist = None - if extra_arguments: - partial_info_plist = self.GypPathToUniqueOutput( - 'assetcatalog_generated_info.plist') - extra_arguments['output-partial-info-plist'] = partial_info_plist - - outputs = [] - outputs.append( - os.path.join( - self.xcode_settings.GetBundleResourceFolder(), - 'Assets.car')) - if partial_info_plist: - outputs.append(partial_info_plist) - - keys = QuoteShellArgument(json.dumps(extra_arguments), self.flavor) - extra_env = self.xcode_settings.GetPerTargetSettings() - env = self.GetSortedXcodeEnv(additional_settings=extra_env) - env = self.ComputeExportEnvString(env) - - bundle_depends.extend(self.ninja.build( - outputs, 'compile_xcassets', xcassets, - variables=[('env', env), ('keys', keys)])) - return partial_info_plist - - def WriteMacInfoPlist(self, partial_info_plist, bundle_depends): - """Write build rules for bundle Info.plist files.""" - info_plist, out, defines, extra_env = gyp.xcode_emulation.GetMacInfoPlist( - generator_default_variables['PRODUCT_DIR'], - self.xcode_settings, self.GypPathToNinja) - if not info_plist: - return - out = self.ExpandSpecial(out) - if defines: - # Create an intermediate file to store preprocessed results. - intermediate_plist = self.GypPathToUniqueOutput( - os.path.basename(info_plist)) - defines = ' '.join([Define(d, self.flavor) for d in defines]) - info_plist = self.ninja.build( - intermediate_plist, 'preprocess_infoplist', info_plist, - variables=[('defines',defines)]) - - env = self.GetSortedXcodeEnv(additional_settings=extra_env) - env = self.ComputeExportEnvString(env) - - if partial_info_plist: - intermediate_plist = self.GypPathToUniqueOutput('merged_info.plist') - info_plist = self.ninja.build( - intermediate_plist, 'merge_infoplist', - [partial_info_plist, info_plist]) - - keys = self.xcode_settings.GetExtraPlistItems(self.config_name) - keys = QuoteShellArgument(json.dumps(keys), self.flavor) - isBinary = self.xcode_settings.IsBinaryOutputFormat(self.config_name) - self.ninja.build(out, 'copy_infoplist', info_plist, - variables=[('env', env), ('keys', keys), - ('binary', isBinary)]) - bundle_depends.append(out) - - def WriteSources(self, ninja_file, config_name, config, sources, predepends, - precompiled_header, spec): - """Write build rules to compile all of |sources|.""" - if self.toolset == 'host': - self.ninja.variable('ar', '$ar_host') - self.ninja.variable('cc', '$cc_host') - self.ninja.variable('cxx', '$cxx_host') - self.ninja.variable('ld', '$ld_host') - self.ninja.variable('ldxx', '$ldxx_host') - self.ninja.variable('nm', '$nm_host') - self.ninja.variable('readelf', '$readelf_host') - - if self.flavor != 'mac' or len(self.archs) == 1: - return self.WriteSourcesForArch( - self.ninja, config_name, config, sources, predepends, - precompiled_header, spec) - else: - return dict((arch, self.WriteSourcesForArch( - self.arch_subninjas[arch], config_name, config, sources, predepends, - precompiled_header, spec, arch=arch)) - for arch in self.archs) - - def WriteSourcesForArch(self, ninja_file, config_name, config, sources, - predepends, precompiled_header, spec, arch=None): - """Write build rules to compile all of |sources|.""" - - extra_defines = [] - if self.flavor == 'mac': - cflags = self.xcode_settings.GetCflags(config_name, arch=arch) - cflags_c = self.xcode_settings.GetCflagsC(config_name) - cflags_cc = self.xcode_settings.GetCflagsCC(config_name) - cflags_objc = ['$cflags_c'] + \ - self.xcode_settings.GetCflagsObjC(config_name) - cflags_objcc = ['$cflags_cc'] + \ - self.xcode_settings.GetCflagsObjCC(config_name) - elif self.flavor == 'win': - asmflags = self.msvs_settings.GetAsmflags(config_name) - cflags = self.msvs_settings.GetCflags(config_name) - cflags_c = self.msvs_settings.GetCflagsC(config_name) - cflags_cc = self.msvs_settings.GetCflagsCC(config_name) - extra_defines = self.msvs_settings.GetComputedDefines(config_name) - # See comment at cc_command for why there's two .pdb files. - pdbpath_c = pdbpath_cc = self.msvs_settings.GetCompilerPdbName( - config_name, self.ExpandSpecial) - if not pdbpath_c: - obj = 'obj' - if self.toolset != 'target': - obj += '.' + self.toolset - pdbpath = os.path.normpath(os.path.join(obj, self.base_dir, self.name)) - pdbpath_c = pdbpath + '.c.pdb' - pdbpath_cc = pdbpath + '.cc.pdb' - self.WriteVariableList(ninja_file, 'pdbname_c', [pdbpath_c]) - self.WriteVariableList(ninja_file, 'pdbname_cc', [pdbpath_cc]) - self.WriteVariableList(ninja_file, 'pchprefix', [self.name]) - else: - cflags = config.get('cflags', []) - cflags_c = config.get('cflags_c', []) - cflags_cc = config.get('cflags_cc', []) - - # Respect environment variables related to build, but target-specific - # flags can still override them. - if self.toolset == 'target': - cflags_c = (os.environ.get('CPPFLAGS', '').split() + - os.environ.get('CFLAGS', '').split() + cflags_c) - cflags_cc = (os.environ.get('CPPFLAGS', '').split() + - os.environ.get('CXXFLAGS', '').split() + cflags_cc) - elif self.toolset == 'host': - cflags_c = (os.environ.get('CPPFLAGS_host', '').split() + - os.environ.get('CFLAGS_host', '').split() + cflags_c) - cflags_cc = (os.environ.get('CPPFLAGS_host', '').split() + - os.environ.get('CXXFLAGS_host', '').split() + cflags_cc) - - defines = config.get('defines', []) + extra_defines - self.WriteVariableList(ninja_file, 'defines', - [Define(d, self.flavor) for d in defines]) - if self.flavor == 'win': - self.WriteVariableList(ninja_file, 'asmflags', - map(self.ExpandSpecial, asmflags)) - self.WriteVariableList(ninja_file, 'rcflags', - [QuoteShellArgument(self.ExpandSpecial(f), self.flavor) - for f in self.msvs_settings.GetRcflags(config_name, - self.GypPathToNinja)]) - - include_dirs = config.get('include_dirs', []) - - env = self.GetToolchainEnv() - if self.flavor == 'win': - include_dirs = self.msvs_settings.AdjustIncludeDirs(include_dirs, - config_name) - self.WriteVariableList(ninja_file, 'includes', - [QuoteShellArgument('-I' + self.GypPathToNinja(i, env), self.flavor) - for i in include_dirs]) - - if self.flavor == 'win': - midl_include_dirs = config.get('midl_include_dirs', []) - midl_include_dirs = self.msvs_settings.AdjustMidlIncludeDirs( - midl_include_dirs, config_name) - self.WriteVariableList(ninja_file, 'midl_includes', - [QuoteShellArgument('-I' + self.GypPathToNinja(i, env), self.flavor) - for i in midl_include_dirs]) - - pch_commands = precompiled_header.GetPchBuildCommands(arch) - if self.flavor == 'mac': - # Most targets use no precompiled headers, so only write these if needed. - for ext, var in [('c', 'cflags_pch_c'), ('cc', 'cflags_pch_cc'), - ('m', 'cflags_pch_objc'), ('mm', 'cflags_pch_objcc')]: - include = precompiled_header.GetInclude(ext, arch) - if include: ninja_file.variable(var, include) - - arflags = config.get('arflags', []) - - self.WriteVariableList(ninja_file, 'cflags', - map(self.ExpandSpecial, cflags)) - self.WriteVariableList(ninja_file, 'cflags_c', - map(self.ExpandSpecial, cflags_c)) - self.WriteVariableList(ninja_file, 'cflags_cc', - map(self.ExpandSpecial, cflags_cc)) - if self.flavor == 'mac': - self.WriteVariableList(ninja_file, 'cflags_objc', - map(self.ExpandSpecial, cflags_objc)) - self.WriteVariableList(ninja_file, 'cflags_objcc', - map(self.ExpandSpecial, cflags_objcc)) - self.WriteVariableList(ninja_file, 'arflags', - map(self.ExpandSpecial, arflags)) - ninja_file.newline() - outputs = [] - has_rc_source = False - for source in sources: - filename, ext = os.path.splitext(source) - ext = ext[1:] - obj_ext = self.obj_ext - if ext in ('cc', 'cpp', 'cxx'): - command = 'cxx' - self.uses_cpp = True - elif ext == 'c' or (ext == 'S' and self.flavor != 'win'): - command = 'cc' - elif ext == 's' and self.flavor != 'win': # Doesn't generate .o.d files. - command = 'cc_s' - elif (self.flavor == 'win' and ext == 'asm' and - not self.msvs_settings.HasExplicitAsmRules(spec)): - command = 'asm' - # Add the _asm suffix as msvs is capable of handling .cc and - # .asm files of the same name without collision. - obj_ext = '_asm.obj' - elif self.flavor == 'mac' and ext == 'm': - command = 'objc' - elif self.flavor == 'mac' and ext == 'mm': - command = 'objcxx' - self.uses_cpp = True - elif self.flavor == 'win' and ext == 'rc': - command = 'rc' - obj_ext = '.res' - has_rc_source = True - else: - # Ignore unhandled extensions. - continue - input = self.GypPathToNinja(source) - output = self.GypPathToUniqueOutput(filename + obj_ext) - if arch is not None: - output = AddArch(output, arch) - implicit = precompiled_header.GetObjDependencies([input], [output], arch) - variables = [] - if self.flavor == 'win': - variables, output, implicit = precompiled_header.GetFlagsModifications( - input, output, implicit, command, cflags_c, cflags_cc, - self.ExpandSpecial) - ninja_file.build(output, command, input, - implicit=[gch for _, _, gch in implicit], - order_only=predepends, variables=variables) - outputs.append(output) - - if has_rc_source: - resource_include_dirs = config.get('resource_include_dirs', include_dirs) - self.WriteVariableList(ninja_file, 'resource_includes', - [QuoteShellArgument('-I' + self.GypPathToNinja(i, env), self.flavor) - for i in resource_include_dirs]) - - self.WritePchTargets(ninja_file, pch_commands) - - ninja_file.newline() - return outputs - - def WritePchTargets(self, ninja_file, pch_commands): - """Writes ninja rules to compile prefix headers.""" - if not pch_commands: - return - - for gch, lang_flag, lang, input in pch_commands: - var_name = { - 'c': 'cflags_pch_c', - 'cc': 'cflags_pch_cc', - 'm': 'cflags_pch_objc', - 'mm': 'cflags_pch_objcc', - }[lang] - - map = { 'c': 'cc', 'cc': 'cxx', 'm': 'objc', 'mm': 'objcxx', } - cmd = map.get(lang) - ninja_file.build(gch, cmd, input, variables=[(var_name, lang_flag)]) - - def WriteLink(self, spec, config_name, config, link_deps): - """Write out a link step. Fills out target.binary. """ - if self.flavor != 'mac' or len(self.archs) == 1: - return self.WriteLinkForArch( - self.ninja, spec, config_name, config, link_deps) - else: - output = self.ComputeOutput(spec) - inputs = [self.WriteLinkForArch(self.arch_subninjas[arch], spec, - config_name, config, link_deps[arch], - arch=arch) - for arch in self.archs] - extra_bindings = [] - build_output = output - if not self.is_mac_bundle: - self.AppendPostbuildVariable(extra_bindings, spec, output, output) - - # TODO(yyanagisawa): more work needed to fix: - # https://code.google.com/p/gyp/issues/detail?id=411 - if (spec['type'] in ('shared_library', 'loadable_module') and - not self.is_mac_bundle): - extra_bindings.append(('lib', output)) - self.ninja.build([output, output + '.TOC'], 'solipo', inputs, - variables=extra_bindings) - else: - self.ninja.build(build_output, 'lipo', inputs, variables=extra_bindings) - return output - - def WriteLinkForArch(self, ninja_file, spec, config_name, config, - link_deps, arch=None): - """Write out a link step. Fills out target.binary. """ - command = { - 'executable': 'link', - 'loadable_module': 'solink_module', - 'shared_library': 'solink', - }[spec['type']] - command_suffix = '' - - implicit_deps = set() - solibs = set() - order_deps = set() - - if 'dependencies' in spec: - # Two kinds of dependencies: - # - Linkable dependencies (like a .a or a .so): add them to the link line. - # - Non-linkable dependencies (like a rule that generates a file - # and writes a stamp file): add them to implicit_deps - extra_link_deps = set() - for dep in spec['dependencies']: - target = self.target_outputs.get(dep) - if not target: - continue - linkable = target.Linkable() - if linkable: - new_deps = [] - if (self.flavor == 'win' and - target.component_objs and - self.msvs_settings.IsUseLibraryDependencyInputs(config_name)): - new_deps = target.component_objs - if target.compile_deps: - order_deps.add(target.compile_deps) - elif self.flavor == 'win' and target.import_lib: - new_deps = [target.import_lib] - elif target.UsesToc(self.flavor): - solibs.add(target.binary) - implicit_deps.add(target.binary + '.TOC') - else: - new_deps = [target.binary] - for new_dep in new_deps: - if new_dep not in extra_link_deps: - extra_link_deps.add(new_dep) - link_deps.append(new_dep) - - final_output = target.FinalOutput() - if not linkable or final_output != target.binary: - implicit_deps.add(final_output) - - extra_bindings = [] - if self.uses_cpp and self.flavor != 'win': - extra_bindings.append(('ld', '$ldxx')) - - output = self.ComputeOutput(spec, arch) - if arch is None and not self.is_mac_bundle: - self.AppendPostbuildVariable(extra_bindings, spec, output, output) - - is_executable = spec['type'] == 'executable' - # The ldflags config key is not used on mac or win. On those platforms - # linker flags are set via xcode_settings and msvs_settings, respectively. - env_ldflags = os.environ.get('LDFLAGS', '').split() - if self.flavor == 'mac': - ldflags = self.xcode_settings.GetLdflags(config_name, - self.ExpandSpecial(generator_default_variables['PRODUCT_DIR']), - self.GypPathToNinja, arch) - ldflags = env_ldflags + ldflags - elif self.flavor == 'win': - manifest_base_name = self.GypPathToUniqueOutput( - self.ComputeOutputFileName(spec)) - ldflags, intermediate_manifest, manifest_files = \ - self.msvs_settings.GetLdflags(config_name, self.GypPathToNinja, - self.ExpandSpecial, manifest_base_name, - output, is_executable, - self.toplevel_build) - ldflags = env_ldflags + ldflags - self.WriteVariableList(ninja_file, 'manifests', manifest_files) - implicit_deps = implicit_deps.union(manifest_files) - if intermediate_manifest: - self.WriteVariableList( - ninja_file, 'intermediatemanifest', [intermediate_manifest]) - command_suffix = _GetWinLinkRuleNameSuffix( - self.msvs_settings.IsEmbedManifest(config_name)) - def_file = self.msvs_settings.GetDefFile(self.GypPathToNinja) - if def_file: - implicit_deps.add(def_file) - else: - # Respect environment variables related to build, but target-specific - # flags can still override them. - ldflags = env_ldflags + config.get('ldflags', []) - if is_executable and len(solibs): - rpath = 'lib/' - if self.toolset != 'target': - rpath += self.toolset - ldflags.append(r'-Wl,-rpath=\$$ORIGIN/%s' % rpath) - ldflags.append('-Wl,-rpath-link=%s' % rpath) - self.WriteVariableList(ninja_file, 'ldflags', - map(self.ExpandSpecial, ldflags)) - - library_dirs = config.get('library_dirs', []) - if self.flavor == 'win': - library_dirs = [self.msvs_settings.ConvertVSMacros(l, config_name) - for l in library_dirs] - library_dirs = ['/LIBPATH:' + QuoteShellArgument(self.GypPathToNinja(l), - self.flavor) - for l in library_dirs] - else: - library_dirs = [QuoteShellArgument('-L' + self.GypPathToNinja(l), - self.flavor) - for l in library_dirs] - - libraries = gyp.common.uniquer(map(self.ExpandSpecial, - spec.get('libraries', []))) - if self.flavor == 'mac': - libraries = self.xcode_settings.AdjustLibraries(libraries, config_name) - elif self.flavor == 'win': - libraries = self.msvs_settings.AdjustLibraries(libraries) - - self.WriteVariableList(ninja_file, 'libs', library_dirs + libraries) - - linked_binary = output - - if command in ('solink', 'solink_module'): - extra_bindings.append(('soname', os.path.split(output)[1])) - extra_bindings.append(('lib', - gyp.common.EncodePOSIXShellArgument(output))) - if self.flavor != 'win': - link_file_list = output - if self.is_mac_bundle: - # 'Dependency Framework.framework/Versions/A/Dependency Framework' -> - # 'Dependency Framework.framework.rsp' - link_file_list = self.xcode_settings.GetWrapperName() - if arch: - link_file_list += '.' + arch - link_file_list += '.rsp' - # If an rspfile contains spaces, ninja surrounds the filename with - # quotes around it and then passes it to open(), creating a file with - # quotes in its name (and when looking for the rsp file, the name - # makes it through bash which strips the quotes) :-/ - link_file_list = link_file_list.replace(' ', '_') - extra_bindings.append( - ('link_file_list', - gyp.common.EncodePOSIXShellArgument(link_file_list))) - if self.flavor == 'win': - extra_bindings.append(('binary', output)) - if ('/NOENTRY' not in ldflags and - not self.msvs_settings.GetNoImportLibrary(config_name)): - self.target.import_lib = output + '.lib' - extra_bindings.append(('implibflag', - '/IMPLIB:%s' % self.target.import_lib)) - pdbname = self.msvs_settings.GetPDBName( - config_name, self.ExpandSpecial, output + '.pdb') - output = [output, self.target.import_lib] - if pdbname: - output.append(pdbname) - elif not self.is_mac_bundle: - output = [output, output + '.TOC'] - else: - command = command + '_notoc' - elif self.flavor == 'win': - extra_bindings.append(('binary', output)) - pdbname = self.msvs_settings.GetPDBName( - config_name, self.ExpandSpecial, output + '.pdb') - if pdbname: - output = [output, pdbname] - - - if len(solibs): - extra_bindings.append(('solibs', gyp.common.EncodePOSIXShellList(solibs))) - - ninja_file.build(output, command + command_suffix, link_deps, - implicit=list(implicit_deps), - order_only=list(order_deps), - variables=extra_bindings) - return linked_binary - - def WriteTarget(self, spec, config_name, config, link_deps, compile_deps): - extra_link_deps = any(self.target_outputs.get(dep).Linkable() - for dep in spec.get('dependencies', []) - if dep in self.target_outputs) - if spec['type'] == 'none' or (not link_deps and not extra_link_deps): - # TODO(evan): don't call this function for 'none' target types, as - # it doesn't do anything, and we fake out a 'binary' with a stamp file. - self.target.binary = compile_deps - self.target.type = 'none' - elif spec['type'] == 'static_library': - self.target.binary = self.ComputeOutput(spec) - if (self.flavor not in ('mac', 'openbsd', 'netbsd', 'win') and not - self.is_standalone_static_library): - self.ninja.build(self.target.binary, 'alink_thin', link_deps, - order_only=compile_deps) - else: - variables = [] - if self.xcode_settings: - libtool_flags = self.xcode_settings.GetLibtoolflags(config_name) - if libtool_flags: - variables.append(('libtool_flags', libtool_flags)) - if self.msvs_settings: - libflags = self.msvs_settings.GetLibFlags(config_name, - self.GypPathToNinja) - variables.append(('libflags', libflags)) - - if self.flavor != 'mac' or len(self.archs) == 1: - self.AppendPostbuildVariable(variables, spec, - self.target.binary, self.target.binary) - self.ninja.build(self.target.binary, 'alink', link_deps, - order_only=compile_deps, variables=variables) - else: - inputs = [] - for arch in self.archs: - output = self.ComputeOutput(spec, arch) - self.arch_subninjas[arch].build(output, 'alink', link_deps[arch], - order_only=compile_deps, - variables=variables) - inputs.append(output) - # TODO: It's not clear if libtool_flags should be passed to the alink - # call that combines single-arch .a files into a fat .a file. - self.AppendPostbuildVariable(variables, spec, - self.target.binary, self.target.binary) - self.ninja.build(self.target.binary, 'alink', inputs, - # FIXME: test proving order_only=compile_deps isn't - # needed. - variables=variables) - else: - self.target.binary = self.WriteLink(spec, config_name, config, link_deps) - return self.target.binary - - def WriteMacBundle(self, spec, mac_bundle_depends, is_empty): - assert self.is_mac_bundle - package_framework = spec['type'] in ('shared_library', 'loadable_module') - output = self.ComputeMacBundleOutput() - if is_empty: - output += '.stamp' - variables = [] - self.AppendPostbuildVariable(variables, spec, output, self.target.binary, - is_command_start=not package_framework) - if package_framework and not is_empty: - variables.append(('version', self.xcode_settings.GetFrameworkVersion())) - self.ninja.build(output, 'package_framework', mac_bundle_depends, - variables=variables) - else: - self.ninja.build(output, 'stamp', mac_bundle_depends, - variables=variables) - self.target.bundle = output - return output - - def GetToolchainEnv(self, additional_settings=None): - """Returns the variables toolchain would set for build steps.""" - env = self.GetSortedXcodeEnv(additional_settings=additional_settings) - if self.flavor == 'win': - env = self.GetMsvsToolchainEnv( - additional_settings=additional_settings) - return env - - def GetMsvsToolchainEnv(self, additional_settings=None): - """Returns the variables Visual Studio would set for build steps.""" - return self.msvs_settings.GetVSMacroEnv('$!PRODUCT_DIR', - config=self.config_name) - - def GetSortedXcodeEnv(self, additional_settings=None): - """Returns the variables Xcode would set for build steps.""" - assert self.abs_build_dir - abs_build_dir = self.abs_build_dir - return gyp.xcode_emulation.GetSortedXcodeEnv( - self.xcode_settings, abs_build_dir, - os.path.join(abs_build_dir, self.build_to_base), self.config_name, - additional_settings) - - def GetSortedXcodePostbuildEnv(self): - """Returns the variables Xcode would set for postbuild steps.""" - postbuild_settings = {} - # CHROMIUM_STRIP_SAVE_FILE is a chromium-specific hack. - # TODO(thakis): It would be nice to have some general mechanism instead. - strip_save_file = self.xcode_settings.GetPerTargetSetting( - 'CHROMIUM_STRIP_SAVE_FILE') - if strip_save_file: - postbuild_settings['CHROMIUM_STRIP_SAVE_FILE'] = strip_save_file - return self.GetSortedXcodeEnv(additional_settings=postbuild_settings) - - def AppendPostbuildVariable(self, variables, spec, output, binary, - is_command_start=False): - """Adds a 'postbuild' variable if there is a postbuild for |output|.""" - postbuild = self.GetPostbuildCommand(spec, output, binary, is_command_start) - if postbuild: - variables.append(('postbuilds', postbuild)) - - def GetPostbuildCommand(self, spec, output, output_binary, is_command_start): - """Returns a shell command that runs all the postbuilds, and removes - |output| if any of them fails. If |is_command_start| is False, then the - returned string will start with ' && '.""" - if not self.xcode_settings or spec['type'] == 'none' or not output: - return '' - output = QuoteShellArgument(output, self.flavor) - postbuilds = gyp.xcode_emulation.GetSpecPostbuildCommands(spec, quiet=True) - if output_binary is not None: - postbuilds = self.xcode_settings.AddImplicitPostbuilds( - self.config_name, - os.path.normpath(os.path.join(self.base_to_build, output)), - QuoteShellArgument( - os.path.normpath(os.path.join(self.base_to_build, output_binary)), - self.flavor), - postbuilds, quiet=True) - - if not postbuilds: - return '' - # Postbuilds expect to be run in the gyp file's directory, so insert an - # implicit postbuild to cd to there. - postbuilds.insert(0, gyp.common.EncodePOSIXShellList( - ['cd', self.build_to_base])) - env = self.ComputeExportEnvString(self.GetSortedXcodePostbuildEnv()) - # G will be non-null if any postbuild fails. Run all postbuilds in a - # subshell. - commands = env + ' (' + \ - ' && '.join([ninja_syntax.escape(command) for command in postbuilds]) - command_string = (commands + '); G=$$?; ' - # Remove the final output if any postbuild failed. - '((exit $$G) || rm -rf %s) ' % output + '&& exit $$G)') - if is_command_start: - return '(' + command_string + ' && ' - else: - return '$ && (' + command_string - - def ComputeExportEnvString(self, env): - """Given an environment, returns a string looking like - 'export FOO=foo; export BAR="${FOO} bar;' - that exports |env| to the shell.""" - export_str = [] - for k, v in env: - export_str.append('export %s=%s;' % - (k, ninja_syntax.escape(gyp.common.EncodePOSIXShellArgument(v)))) - return ' '.join(export_str) - - def ComputeMacBundleOutput(self): - """Return the 'output' (full output path) to a bundle output directory.""" - assert self.is_mac_bundle - path = generator_default_variables['PRODUCT_DIR'] - return self.ExpandSpecial( - os.path.join(path, self.xcode_settings.GetWrapperName())) - - def ComputeOutputFileName(self, spec, type=None): - """Compute the filename of the final output for the current target.""" - if not type: - type = spec['type'] - - default_variables = copy.copy(generator_default_variables) - CalculateVariables(default_variables, {'flavor': self.flavor}) - - # Compute filename prefix: the product prefix, or a default for - # the product type. - DEFAULT_PREFIX = { - 'loadable_module': default_variables['SHARED_LIB_PREFIX'], - 'shared_library': default_variables['SHARED_LIB_PREFIX'], - 'static_library': default_variables['STATIC_LIB_PREFIX'], - 'executable': default_variables['EXECUTABLE_PREFIX'], - } - prefix = spec.get('product_prefix', DEFAULT_PREFIX.get(type, '')) - - # Compute filename extension: the product extension, or a default - # for the product type. - DEFAULT_EXTENSION = { - 'loadable_module': default_variables['SHARED_LIB_SUFFIX'], - 'shared_library': default_variables['SHARED_LIB_SUFFIX'], - 'static_library': default_variables['STATIC_LIB_SUFFIX'], - 'executable': default_variables['EXECUTABLE_SUFFIX'], - } - extension = spec.get('product_extension') - if extension: - extension = '.' + extension - else: - extension = DEFAULT_EXTENSION.get(type, '') - - if 'product_name' in spec: - # If we were given an explicit name, use that. - target = spec['product_name'] - else: - # Otherwise, derive a name from the target name. - target = spec['target_name'] - if prefix == 'lib': - # Snip out an extra 'lib' from libs if appropriate. - target = StripPrefix(target, 'lib') - - if type in ('static_library', 'loadable_module', 'shared_library', - 'executable'): - return '%s%s%s' % (prefix, target, extension) - elif type == 'none': - return '%s.stamp' % target - else: - raise Exception('Unhandled output type %s' % type) - - def ComputeOutput(self, spec, arch=None): - """Compute the path for the final output of the spec.""" - type = spec['type'] - - if self.flavor == 'win': - override = self.msvs_settings.GetOutputName(self.config_name, - self.ExpandSpecial) - if override: - return override - - if arch is None and self.flavor == 'mac' and type in ( - 'static_library', 'executable', 'shared_library', 'loadable_module'): - filename = self.xcode_settings.GetExecutablePath() - else: - filename = self.ComputeOutputFileName(spec, type) - - if arch is None and 'product_dir' in spec: - path = os.path.join(spec['product_dir'], filename) - return self.ExpandSpecial(path) - - # Some products go into the output root, libraries go into shared library - # dir, and everything else goes into the normal place. - type_in_output_root = ['executable', 'loadable_module'] - if self.flavor == 'mac' and self.toolset == 'target': - type_in_output_root += ['shared_library', 'static_library'] - elif self.flavor == 'win' and self.toolset == 'target': - type_in_output_root += ['shared_library'] - - if arch is not None: - # Make sure partial executables don't end up in a bundle or the regular - # output directory. - archdir = 'arch' - if self.toolset != 'target': - archdir = os.path.join('arch', '%s' % self.toolset) - return os.path.join(archdir, AddArch(filename, arch)) - elif type in type_in_output_root or self.is_standalone_static_library: - return filename - elif type == 'shared_library': - libdir = 'lib' - if self.toolset != 'target': - libdir = os.path.join('lib', '%s' % self.toolset) - return os.path.join(libdir, filename) - else: - return self.GypPathToUniqueOutput(filename, qualified=False) - - def WriteVariableList(self, ninja_file, var, values): - assert not isinstance(values, str) - if values is None: - values = [] - ninja_file.variable(var, ' '.join(values)) - - def WriteNewNinjaRule(self, name, args, description, is_cygwin, env, pool, - depfile=None): - """Write out a new ninja "rule" statement for a given command. - - Returns the name of the new rule, and a copy of |args| with variables - expanded.""" - - if self.flavor == 'win': - args = [self.msvs_settings.ConvertVSMacros( - arg, self.base_to_build, config=self.config_name) - for arg in args] - description = self.msvs_settings.ConvertVSMacros( - description, config=self.config_name) - elif self.flavor == 'mac': - # |env| is an empty list on non-mac. - args = [gyp.xcode_emulation.ExpandEnvVars(arg, env) for arg in args] - description = gyp.xcode_emulation.ExpandEnvVars(description, env) - - # TODO: we shouldn't need to qualify names; we do it because - # currently the ninja rule namespace is global, but it really - # should be scoped to the subninja. - rule_name = self.name - if self.toolset == 'target': - rule_name += '.' + self.toolset - rule_name += '.' + name - rule_name = re.sub('[^a-zA-Z0-9_]', '_', rule_name) - - # Remove variable references, but not if they refer to the magic rule - # variables. This is not quite right, as it also protects these for - # actions, not just for rules where they are valid. Good enough. - protect = [ '${root}', '${dirname}', '${source}', '${ext}', '${name}' ] - protect = '(?!' + '|'.join(map(re.escape, protect)) + ')' - description = re.sub(protect + r'\$', '_', description) - - # gyp dictates that commands are run from the base directory. - # cd into the directory before running, and adjust paths in - # the arguments to point to the proper locations. - rspfile = None - rspfile_content = None - args = [self.ExpandSpecial(arg, self.base_to_build) for arg in args] - if self.flavor == 'win': - rspfile = rule_name + '.$unique_name.rsp' - # The cygwin case handles this inside the bash sub-shell. - run_in = '' if is_cygwin else ' ' + self.build_to_base - if is_cygwin: - rspfile_content = self.msvs_settings.BuildCygwinBashCommandLine( - args, self.build_to_base) - else: - rspfile_content = gyp.msvs_emulation.EncodeRspFileList(args) - command = ('%s gyp-win-tool action-wrapper $arch ' % sys.executable + - rspfile + run_in) - else: - env = self.ComputeExportEnvString(env) - command = gyp.common.EncodePOSIXShellList(args) - command = 'cd %s; ' % self.build_to_base + env + command - - # GYP rules/actions express being no-ops by not touching their outputs. - # Avoid executing downstream dependencies in this case by specifying - # restat=1 to ninja. - self.ninja.rule(rule_name, command, description, depfile=depfile, - restat=True, pool=pool, - rspfile=rspfile, rspfile_content=rspfile_content) - self.ninja.newline() - - return rule_name, args - - -def CalculateVariables(default_variables, params): - """Calculate additional variables for use in the build (called by gyp).""" - global generator_additional_non_configuration_keys - global generator_additional_path_sections - flavor = gyp.common.GetFlavor(params) - if flavor == 'mac': - default_variables.setdefault('OS', 'mac') - default_variables.setdefault('SHARED_LIB_SUFFIX', '.dylib') - default_variables.setdefault('SHARED_LIB_DIR', - generator_default_variables['PRODUCT_DIR']) - default_variables.setdefault('LIB_DIR', - generator_default_variables['PRODUCT_DIR']) - - # Copy additional generator configuration data from Xcode, which is shared - # by the Mac Ninja generator. - import gyp.generator.xcode as xcode_generator - generator_additional_non_configuration_keys = getattr(xcode_generator, - 'generator_additional_non_configuration_keys', []) - generator_additional_path_sections = getattr(xcode_generator, - 'generator_additional_path_sections', []) - global generator_extra_sources_for_rules - generator_extra_sources_for_rules = getattr(xcode_generator, - 'generator_extra_sources_for_rules', []) - elif flavor == 'win': - exts = gyp.MSVSUtil.TARGET_TYPE_EXT - default_variables.setdefault('OS', 'win') - default_variables['EXECUTABLE_SUFFIX'] = '.' + exts['executable'] - default_variables['STATIC_LIB_PREFIX'] = '' - default_variables['STATIC_LIB_SUFFIX'] = '.' + exts['static_library'] - default_variables['SHARED_LIB_PREFIX'] = '' - default_variables['SHARED_LIB_SUFFIX'] = '.' + exts['shared_library'] - - # Copy additional generator configuration data from VS, which is shared - # by the Windows Ninja generator. - import gyp.generator.msvs as msvs_generator - generator_additional_non_configuration_keys = getattr(msvs_generator, - 'generator_additional_non_configuration_keys', []) - generator_additional_path_sections = getattr(msvs_generator, - 'generator_additional_path_sections', []) - - gyp.msvs_emulation.CalculateCommonVariables(default_variables, params) - else: - operating_system = flavor - if flavor == 'android': - operating_system = 'linux' # Keep this legacy behavior for now. - default_variables.setdefault('OS', operating_system) - default_variables.setdefault('SHARED_LIB_SUFFIX', '.so') - default_variables.setdefault('SHARED_LIB_DIR', - os.path.join('$!PRODUCT_DIR', 'lib')) - default_variables.setdefault('LIB_DIR', - os.path.join('$!PRODUCT_DIR', 'obj')) - -def ComputeOutputDir(params): - """Returns the path from the toplevel_dir to the build output directory.""" - # generator_dir: relative path from pwd to where make puts build files. - # Makes migrating from make to ninja easier, ninja doesn't put anything here. - generator_dir = os.path.relpath(params['options'].generator_output or '.') - - # output_dir: relative path from generator_dir to the build directory. - output_dir = params.get('generator_flags', {}).get('output_dir', 'out') - - # Relative path from source root to our output files. e.g. "out" - return os.path.normpath(os.path.join(generator_dir, output_dir)) - - -def CalculateGeneratorInputInfo(params): - """Called by __init__ to initialize generator values based on params.""" - # E.g. "out/gypfiles" - toplevel = params['options'].toplevel_dir - qualified_out_dir = os.path.normpath(os.path.join( - toplevel, ComputeOutputDir(params), 'gypfiles')) - - global generator_filelist_paths - generator_filelist_paths = { - 'toplevel': toplevel, - 'qualified_out_dir': qualified_out_dir, - } - - -def OpenOutput(path, mode='w'): - """Open |path| for writing, creating directories if necessary.""" - gyp.common.EnsureDirExists(path) - return open(path, mode) - - -def CommandWithWrapper(cmd, wrappers, prog): - wrapper = wrappers.get(cmd, '') - if wrapper: - return wrapper + ' ' + prog - return prog - - -def GetDefaultConcurrentLinks(): - """Returns a best-guess for a number of concurrent links.""" - pool_size = int(os.environ.get('GYP_LINK_CONCURRENCY', 0)) - if pool_size: - return pool_size - - if sys.platform in ('win32', 'cygwin'): - import ctypes - - class MEMORYSTATUSEX(ctypes.Structure): - _fields_ = [ - ("dwLength", ctypes.c_ulong), - ("dwMemoryLoad", ctypes.c_ulong), - ("ullTotalPhys", ctypes.c_ulonglong), - ("ullAvailPhys", ctypes.c_ulonglong), - ("ullTotalPageFile", ctypes.c_ulonglong), - ("ullAvailPageFile", ctypes.c_ulonglong), - ("ullTotalVirtual", ctypes.c_ulonglong), - ("ullAvailVirtual", ctypes.c_ulonglong), - ("sullAvailExtendedVirtual", ctypes.c_ulonglong), - ] - - stat = MEMORYSTATUSEX() - stat.dwLength = ctypes.sizeof(stat) - ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(stat)) - - # VS 2015 uses 20% more working set than VS 2013 and can consume all RAM - # on a 64 GB machine. - mem_limit = max(1, stat.ullTotalPhys / (5 * (2 ** 30))) # total / 5GB - hard_cap = max(1, int(os.environ.get('GYP_LINK_CONCURRENCY_MAX', 2**32))) - return min(mem_limit, hard_cap) - elif sys.platform.startswith('linux'): - if os.path.exists("/proc/meminfo"): - with open("/proc/meminfo") as meminfo: - memtotal_re = re.compile(r'^MemTotal:\s*(\d*)\s*kB') - for line in meminfo: - match = memtotal_re.match(line) - if not match: - continue - # Allow 8Gb per link on Linux because Gold is quite memory hungry - return max(1, int(match.group(1)) / (8 * (2 ** 20))) - return 1 - elif sys.platform == 'darwin': - try: - avail_bytes = int(subprocess.check_output(['sysctl', '-n', 'hw.memsize'])) - # A static library debug build of Chromium's unit_tests takes ~2.7GB, so - # 4GB per ld process allows for some more bloat. - return max(1, avail_bytes / (4 * (2 ** 30))) # total / 4GB - except: - return 1 - else: - # TODO(scottmg): Implement this for other platforms. - return 1 - - -def _GetWinLinkRuleNameSuffix(embed_manifest): - """Returns the suffix used to select an appropriate linking rule depending on - whether the manifest embedding is enabled.""" - return '_embed' if embed_manifest else '' - - -def _AddWinLinkRules(master_ninja, embed_manifest): - """Adds link rules for Windows platform to |master_ninja|.""" - def FullLinkCommand(ldcmd, out, binary_type): - resource_name = { - 'exe': '1', - 'dll': '2', - }[binary_type] - return '%(python)s gyp-win-tool link-with-manifests $arch %(embed)s ' \ - '%(out)s "%(ldcmd)s" %(resname)s $mt $rc "$intermediatemanifest" ' \ - '$manifests' % { - 'python': sys.executable, - 'out': out, - 'ldcmd': ldcmd, - 'resname': resource_name, - 'embed': embed_manifest } - rule_name_suffix = _GetWinLinkRuleNameSuffix(embed_manifest) - use_separate_mspdbsrv = ( - int(os.environ.get('GYP_USE_SEPARATE_MSPDBSRV', '0')) != 0) - dlldesc = 'LINK%s(DLL) $binary' % rule_name_suffix.upper() - dllcmd = ('%s gyp-win-tool link-wrapper $arch %s ' - '$ld /nologo $implibflag /DLL /OUT:$binary ' - '@$binary.rsp' % (sys.executable, use_separate_mspdbsrv)) - dllcmd = FullLinkCommand(dllcmd, '$binary', 'dll') - master_ninja.rule('solink' + rule_name_suffix, - description=dlldesc, command=dllcmd, - rspfile='$binary.rsp', - rspfile_content='$libs $in_newline $ldflags', - restat=True, - pool='link_pool') - master_ninja.rule('solink_module' + rule_name_suffix, - description=dlldesc, command=dllcmd, - rspfile='$binary.rsp', - rspfile_content='$libs $in_newline $ldflags', - restat=True, - pool='link_pool') - # Note that ldflags goes at the end so that it has the option of - # overriding default settings earlier in the command line. - exe_cmd = ('%s gyp-win-tool link-wrapper $arch %s ' - '$ld /nologo /OUT:$binary @$binary.rsp' % - (sys.executable, use_separate_mspdbsrv)) - exe_cmd = FullLinkCommand(exe_cmd, '$binary', 'exe') - master_ninja.rule('link' + rule_name_suffix, - description='LINK%s $binary' % rule_name_suffix.upper(), - command=exe_cmd, - rspfile='$binary.rsp', - rspfile_content='$in_newline $libs $ldflags', - pool='link_pool') - - -def GenerateOutputForConfig(target_list, target_dicts, data, params, - config_name): - options = params['options'] - flavor = gyp.common.GetFlavor(params) - generator_flags = params.get('generator_flags', {}) - - # build_dir: relative path from source root to our output files. - # e.g. "out/Debug" - build_dir = os.path.normpath( - os.path.join(ComputeOutputDir(params), config_name)) - - toplevel_build = os.path.join(options.toplevel_dir, build_dir) - - master_ninja_file = OpenOutput(os.path.join(toplevel_build, 'build.ninja')) - master_ninja = ninja_syntax.Writer(master_ninja_file, width=120) - - # Put build-time support tools in out/{config_name}. - gyp.common.CopyTool(flavor, toplevel_build) - - # Grab make settings for CC/CXX. - # The rules are - # - The priority from low to high is gcc/g++, the 'make_global_settings' in - # gyp, the environment variable. - # - If there is no 'make_global_settings' for CC.host/CXX.host or - # 'CC_host'/'CXX_host' enviroment variable, cc_host/cxx_host should be set - # to cc/cxx. - if flavor == 'win': - ar = 'lib.exe' - # cc and cxx must be set to the correct architecture by overriding with one - # of cl_x86 or cl_x64 below. - cc = 'UNSET' - cxx = 'UNSET' - ld = 'link.exe' - ld_host = '$ld' - else: - ar = 'ar' - cc = 'cc' - cxx = 'c++' - ld = '$cc' - ldxx = '$cxx' - ld_host = '$cc_host' - ldxx_host = '$cxx_host' - - ar_host = 'ar' - cc_host = None - cxx_host = None - cc_host_global_setting = None - cxx_host_global_setting = None - clang_cl = None - nm = 'nm' - nm_host = 'nm' - readelf = 'readelf' - readelf_host = 'readelf' - - build_file, _, _ = gyp.common.ParseQualifiedTarget(target_list[0]) - make_global_settings = data[build_file].get('make_global_settings', []) - build_to_root = gyp.common.InvertRelativePath(build_dir, - options.toplevel_dir) - wrappers = {} - for key, value in make_global_settings: - if key == 'AR': - ar = os.path.join(build_to_root, value) - if key == 'AR.host': - ar_host = os.path.join(build_to_root, value) - if key == 'CC': - cc = os.path.join(build_to_root, value) - if cc.endswith('clang-cl'): - clang_cl = cc - if key == 'CXX': - cxx = os.path.join(build_to_root, value) - if key == 'CC.host': - cc_host = os.path.join(build_to_root, value) - cc_host_global_setting = value - if key == 'CXX.host': - cxx_host = os.path.join(build_to_root, value) - cxx_host_global_setting = value - if key == 'LD': - ld = os.path.join(build_to_root, value) - if key == 'LD.host': - ld_host = os.path.join(build_to_root, value) - if key == 'NM': - nm = os.path.join(build_to_root, value) - if key == 'NM.host': - nm_host = os.path.join(build_to_root, value) - if key == 'READELF': - readelf = os.path.join(build_to_root, value) - if key == 'READELF.host': - readelf_host = os.path.join(build_to_root, value) - if key.endswith('_wrapper'): - wrappers[key[:-len('_wrapper')]] = os.path.join(build_to_root, value) - - # Support wrappers from environment variables too. - for key, value in os.environ.iteritems(): - if key.lower().endswith('_wrapper'): - key_prefix = key[:-len('_wrapper')] - key_prefix = re.sub(r'\.HOST$', '.host', key_prefix) - wrappers[key_prefix] = os.path.join(build_to_root, value) - - if flavor == 'win': - configs = [target_dicts[qualified_target]['configurations'][config_name] - for qualified_target in target_list] - shared_system_includes = None - if not generator_flags.get('ninja_use_custom_environment_files', 0): - shared_system_includes = \ - gyp.msvs_emulation.ExtractSharedMSVSSystemIncludes( - configs, generator_flags) - cl_paths = gyp.msvs_emulation.GenerateEnvironmentFiles( - toplevel_build, generator_flags, shared_system_includes, OpenOutput) - for arch, path in cl_paths.iteritems(): - if clang_cl: - # If we have selected clang-cl, use that instead. - path = clang_cl - command = CommandWithWrapper('CC', wrappers, - QuoteShellArgument(path, 'win')) - if clang_cl: - # Use clang-cl to cross-compile for x86 or x86_64. - command += (' -m32' if arch == 'x86' else ' -m64') - master_ninja.variable('cl_' + arch, command) - - cc = GetEnvironFallback(['CC_target', 'CC'], cc) - master_ninja.variable('cc', CommandWithWrapper('CC', wrappers, cc)) - cxx = GetEnvironFallback(['CXX_target', 'CXX'], cxx) - master_ninja.variable('cxx', CommandWithWrapper('CXX', wrappers, cxx)) - - if flavor == 'win': - master_ninja.variable('ld', ld) - master_ninja.variable('idl', 'midl.exe') - master_ninja.variable('ar', ar) - master_ninja.variable('rc', 'rc.exe') - master_ninja.variable('ml_x86', 'ml.exe') - master_ninja.variable('ml_x64', 'ml64.exe') - master_ninja.variable('mt', 'mt.exe') - else: - master_ninja.variable('ld', CommandWithWrapper('LINK', wrappers, ld)) - master_ninja.variable('ldxx', CommandWithWrapper('LINK', wrappers, ldxx)) - master_ninja.variable('ar', GetEnvironFallback(['AR_target', 'AR'], ar)) - if flavor != 'mac': - # Mac does not use readelf/nm for .TOC generation, so avoiding polluting - # the master ninja with extra unused variables. - master_ninja.variable( - 'nm', GetEnvironFallback(['NM_target', 'NM'], nm)) - master_ninja.variable( - 'readelf', GetEnvironFallback(['READELF_target', 'READELF'], readelf)) - - if generator_supports_multiple_toolsets: - if not cc_host: - cc_host = cc - if not cxx_host: - cxx_host = cxx - - master_ninja.variable('ar_host', GetEnvironFallback(['AR_host'], ar_host)) - master_ninja.variable('nm_host', GetEnvironFallback(['NM_host'], nm_host)) - master_ninja.variable('readelf_host', - GetEnvironFallback(['READELF_host'], readelf_host)) - cc_host = GetEnvironFallback(['CC_host'], cc_host) - cxx_host = GetEnvironFallback(['CXX_host'], cxx_host) - - # The environment variable could be used in 'make_global_settings', like - # ['CC.host', '$(CC)'] or ['CXX.host', '$(CXX)'], transform them here. - if '$(CC)' in cc_host and cc_host_global_setting: - cc_host = cc_host_global_setting.replace('$(CC)', cc) - if '$(CXX)' in cxx_host and cxx_host_global_setting: - cxx_host = cxx_host_global_setting.replace('$(CXX)', cxx) - master_ninja.variable('cc_host', - CommandWithWrapper('CC.host', wrappers, cc_host)) - master_ninja.variable('cxx_host', - CommandWithWrapper('CXX.host', wrappers, cxx_host)) - if flavor == 'win': - master_ninja.variable('ld_host', ld_host) - else: - master_ninja.variable('ld_host', CommandWithWrapper( - 'LINK', wrappers, ld_host)) - master_ninja.variable('ldxx_host', CommandWithWrapper( - 'LINK', wrappers, ldxx_host)) - - master_ninja.newline() - - master_ninja.pool('link_pool', depth=GetDefaultConcurrentLinks()) - master_ninja.newline() - - deps = 'msvc' if flavor == 'win' else 'gcc' - - if flavor != 'win': - master_ninja.rule( - 'cc', - description='CC $out', - command=('$cc -MMD -MF $out.d $defines $includes $cflags $cflags_c ' - '$cflags_pch_c -c $in -o $out'), - depfile='$out.d', - deps=deps) - master_ninja.rule( - 'cc_s', - description='CC $out', - command=('$cc $defines $includes $cflags $cflags_c ' - '$cflags_pch_c -c $in -o $out')) - master_ninja.rule( - 'cxx', - description='CXX $out', - command=('$cxx -MMD -MF $out.d $defines $includes $cflags $cflags_cc ' - '$cflags_pch_cc -c $in -o $out'), - depfile='$out.d', - deps=deps) - else: - # TODO(scottmg) Separate pdb names is a test to see if it works around - # http://crbug.com/142362. It seems there's a race between the creation of - # the .pdb by the precompiled header step for .cc and the compilation of - # .c files. This should be handled by mspdbsrv, but rarely errors out with - # c1xx : fatal error C1033: cannot open program database - # By making the rules target separate pdb files this might be avoided. - cc_command = ('ninja -t msvc -e $arch ' + - '-- ' - '$cc /nologo /showIncludes /FC ' - '@$out.rsp /c $in /Fo$out /Fd$pdbname_c ') - cxx_command = ('ninja -t msvc -e $arch ' + - '-- ' - '$cxx /nologo /showIncludes /FC ' - '@$out.rsp /c $in /Fo$out /Fd$pdbname_cc ') - master_ninja.rule( - 'cc', - description='CC $out', - command=cc_command, - rspfile='$out.rsp', - rspfile_content='$defines $includes $cflags $cflags_c', - deps=deps) - master_ninja.rule( - 'cxx', - description='CXX $out', - command=cxx_command, - rspfile='$out.rsp', - rspfile_content='$defines $includes $cflags $cflags_cc', - deps=deps) - master_ninja.rule( - 'idl', - description='IDL $in', - command=('%s gyp-win-tool midl-wrapper $arch $outdir ' - '$tlb $h $dlldata $iid $proxy $in ' - '$midl_includes $idlflags' % sys.executable)) - master_ninja.rule( - 'rc', - description='RC $in', - # Note: $in must be last otherwise rc.exe complains. - command=('%s gyp-win-tool rc-wrapper ' - '$arch $rc $defines $resource_includes $rcflags /fo$out $in' % - sys.executable)) - master_ninja.rule( - 'asm', - description='ASM $out', - command=('%s gyp-win-tool asm-wrapper ' - '$arch $asm $defines $includes $asmflags /c /Fo $out $in' % - sys.executable)) - - if flavor != 'mac' and flavor != 'win': - master_ninja.rule( - 'alink', - description='AR $out', - command='rm -f $out && $ar rcs $arflags $out $in') - master_ninja.rule( - 'alink_thin', - description='AR $out', - command='rm -f $out && $ar rcsT $arflags $out $in') - - # This allows targets that only need to depend on $lib's API to declare an - # order-only dependency on $lib.TOC and avoid relinking such downstream - # dependencies when $lib changes only in non-public ways. - # The resulting string leaves an uninterpolated %{suffix} which - # is used in the final substitution below. - mtime_preserving_solink_base = ( - 'if [ ! -e $lib -o ! -e $lib.TOC ]; then ' - '%(solink)s && %(extract_toc)s > $lib.TOC; else ' - '%(solink)s && %(extract_toc)s > $lib.tmp && ' - 'if ! cmp -s $lib.tmp $lib.TOC; then mv $lib.tmp $lib.TOC ; ' - 'fi; fi' - % { 'solink': - '$ld -shared $ldflags -o $lib -Wl,-soname=$soname %(suffix)s', - 'extract_toc': - ('{ $readelf -d $lib | grep SONAME ; ' - '$nm -gD -f p $lib | cut -f1-2 -d\' \'; }')}) - - master_ninja.rule( - 'solink', - description='SOLINK $lib', - restat=True, - command=mtime_preserving_solink_base % {'suffix': '@$link_file_list'}, - rspfile='$link_file_list', - rspfile_content= - '-Wl,--whole-archive $in $solibs -Wl,--no-whole-archive $libs', - pool='link_pool') - master_ninja.rule( - 'solink_module', - description='SOLINK(module) $lib', - restat=True, - command=mtime_preserving_solink_base % {'suffix': '@$link_file_list'}, - rspfile='$link_file_list', - rspfile_content='-Wl,--start-group $in -Wl,--end-group $solibs $libs', - pool='link_pool') - master_ninja.rule( - 'link', - description='LINK $out', - command=('$ld $ldflags -o $out ' - '-Wl,--start-group $in -Wl,--end-group $solibs $libs'), - pool='link_pool') - elif flavor == 'win': - master_ninja.rule( - 'alink', - description='LIB $out', - command=('%s gyp-win-tool link-wrapper $arch False ' - '$ar /nologo /ignore:4221 /OUT:$out @$out.rsp' % - sys.executable), - rspfile='$out.rsp', - rspfile_content='$in_newline $libflags') - _AddWinLinkRules(master_ninja, embed_manifest=True) - _AddWinLinkRules(master_ninja, embed_manifest=False) - else: - master_ninja.rule( - 'objc', - description='OBJC $out', - command=('$cc -MMD -MF $out.d $defines $includes $cflags $cflags_objc ' - '$cflags_pch_objc -c $in -o $out'), - depfile='$out.d', - deps=deps) - master_ninja.rule( - 'objcxx', - description='OBJCXX $out', - command=('$cxx -MMD -MF $out.d $defines $includes $cflags $cflags_objcc ' - '$cflags_pch_objcc -c $in -o $out'), - depfile='$out.d', - deps=deps) - master_ninja.rule( - 'alink', - description='LIBTOOL-STATIC $out, POSTBUILDS', - command='rm -f $out && ' - './gyp-mac-tool filter-libtool libtool $libtool_flags ' - '-static -o $out $in' - '$postbuilds') - master_ninja.rule( - 'lipo', - description='LIPO $out, POSTBUILDS', - command='rm -f $out && lipo -create $in -output $out$postbuilds') - master_ninja.rule( - 'solipo', - description='SOLIPO $out, POSTBUILDS', - command=( - 'rm -f $lib $lib.TOC && lipo -create $in -output $lib$postbuilds &&' - '%(extract_toc)s > $lib.TOC' - % { 'extract_toc': - '{ otool -l $lib | grep LC_ID_DYLIB -A 5; ' - 'nm -gP $lib | cut -f1-2 -d\' \' | grep -v U$$; true; }'})) - - - # Record the public interface of $lib in $lib.TOC. See the corresponding - # comment in the posix section above for details. - solink_base = '$ld %(type)s $ldflags -o $lib %(suffix)s' - mtime_preserving_solink_base = ( - 'if [ ! -e $lib -o ! -e $lib.TOC ] || ' - # Always force dependent targets to relink if this library - # reexports something. Handling this correctly would require - # recursive TOC dumping but this is rare in practice, so punt. - 'otool -l $lib | grep -q LC_REEXPORT_DYLIB ; then ' - '%(solink)s && %(extract_toc)s > $lib.TOC; ' - 'else ' - '%(solink)s && %(extract_toc)s > $lib.tmp && ' - 'if ! cmp -s $lib.tmp $lib.TOC; then ' - 'mv $lib.tmp $lib.TOC ; ' - 'fi; ' - 'fi' - % { 'solink': solink_base, - 'extract_toc': - '{ otool -l $lib | grep LC_ID_DYLIB -A 5; ' - 'nm -gP $lib | cut -f1-2 -d\' \' | grep -v U$$; true; }'}) - - - solink_suffix = '@$link_file_list$postbuilds' - master_ninja.rule( - 'solink', - description='SOLINK $lib, POSTBUILDS', - restat=True, - command=mtime_preserving_solink_base % {'suffix': solink_suffix, - 'type': '-shared'}, - rspfile='$link_file_list', - rspfile_content='$in $solibs $libs', - pool='link_pool') - master_ninja.rule( - 'solink_notoc', - description='SOLINK $lib, POSTBUILDS', - restat=True, - command=solink_base % {'suffix':solink_suffix, 'type': '-shared'}, - rspfile='$link_file_list', - rspfile_content='$in $solibs $libs', - pool='link_pool') - - master_ninja.rule( - 'solink_module', - description='SOLINK(module) $lib, POSTBUILDS', - restat=True, - command=mtime_preserving_solink_base % {'suffix': solink_suffix, - 'type': '-bundle'}, - rspfile='$link_file_list', - rspfile_content='$in $solibs $libs', - pool='link_pool') - master_ninja.rule( - 'solink_module_notoc', - description='SOLINK(module) $lib, POSTBUILDS', - restat=True, - command=solink_base % {'suffix': solink_suffix, 'type': '-bundle'}, - rspfile='$link_file_list', - rspfile_content='$in $solibs $libs', - pool='link_pool') - - master_ninja.rule( - 'link', - description='LINK $out, POSTBUILDS', - command=('$ld $ldflags -o $out ' - '$in $solibs $libs$postbuilds'), - pool='link_pool') - master_ninja.rule( - 'preprocess_infoplist', - description='PREPROCESS INFOPLIST $out', - command=('$cc -E -P -Wno-trigraphs -x c $defines $in -o $out && ' - 'plutil -convert xml1 $out $out')) - master_ninja.rule( - 'copy_infoplist', - description='COPY INFOPLIST $in', - command='$env ./gyp-mac-tool copy-info-plist $in $out $binary $keys') - master_ninja.rule( - 'merge_infoplist', - description='MERGE INFOPLISTS $in', - command='$env ./gyp-mac-tool merge-info-plist $out $in') - master_ninja.rule( - 'compile_xcassets', - description='COMPILE XCASSETS $in', - command='$env ./gyp-mac-tool compile-xcassets $keys $in') - master_ninja.rule( - 'mac_tool', - description='MACTOOL $mactool_cmd $in', - command='$env ./gyp-mac-tool $mactool_cmd $in $out $binary') - master_ninja.rule( - 'package_framework', - description='PACKAGE FRAMEWORK $out, POSTBUILDS', - command='./gyp-mac-tool package-framework $out $version$postbuilds ' - '&& touch $out') - if flavor == 'win': - master_ninja.rule( - 'stamp', - description='STAMP $out', - command='%s gyp-win-tool stamp $out' % sys.executable) - master_ninja.rule( - 'copy', - description='COPY $in $out', - command='%s gyp-win-tool recursive-mirror $in $out' % sys.executable) - else: - master_ninja.rule( - 'stamp', - description='STAMP $out', - command='${postbuilds}touch $out') - master_ninja.rule( - 'copy', - description='COPY $in $out', - command='rm -rf $out && cp -af $in $out') - master_ninja.newline() - - all_targets = set() - for build_file in params['build_files']: - for target in gyp.common.AllTargets(target_list, - target_dicts, - os.path.normpath(build_file)): - all_targets.add(target) - all_outputs = set() - - # target_outputs is a map from qualified target name to a Target object. - target_outputs = {} - # target_short_names is a map from target short name to a list of Target - # objects. - target_short_names = {} - - # short name of targets that were skipped because they didn't contain anything - # interesting. - # NOTE: there may be overlap between this an non_empty_target_names. - empty_target_names = set() - - # Set of non-empty short target names. - # NOTE: there may be overlap between this an empty_target_names. - non_empty_target_names = set() - - for qualified_target in target_list: - # qualified_target is like: third_party/icu/icu.gyp:icui18n#target - build_file, name, toolset = \ - gyp.common.ParseQualifiedTarget(qualified_target) - - this_make_global_settings = data[build_file].get('make_global_settings', []) - assert make_global_settings == this_make_global_settings, ( - "make_global_settings needs to be the same for all targets. %s vs. %s" % - (this_make_global_settings, make_global_settings)) - - spec = target_dicts[qualified_target] - if flavor == 'mac': - gyp.xcode_emulation.MergeGlobalXcodeSettingsToSpec(data[build_file], spec) - - # If build_file is a symlink, we must not follow it because there's a chance - # it could point to a path above toplevel_dir, and we cannot correctly deal - # with that case at the moment. - build_file = gyp.common.RelativePath(build_file, options.toplevel_dir, - False) - - qualified_target_for_hash = gyp.common.QualifiedTarget(build_file, name, - toolset) - hash_for_rules = hashlib.md5(qualified_target_for_hash).hexdigest() - - base_path = os.path.dirname(build_file) - obj = 'obj' - if toolset != 'target': - obj += '.' + toolset - output_file = os.path.join(obj, base_path, name + '.ninja') - - ninja_output = StringIO() - writer = NinjaWriter(hash_for_rules, target_outputs, base_path, build_dir, - ninja_output, - toplevel_build, output_file, - flavor, toplevel_dir=options.toplevel_dir) - - target = writer.WriteSpec(spec, config_name, generator_flags) - - if ninja_output.tell() > 0: - # Only create files for ninja files that actually have contents. - with OpenOutput(os.path.join(toplevel_build, output_file)) as ninja_file: - ninja_file.write(ninja_output.getvalue()) - ninja_output.close() - master_ninja.subninja(output_file) - - if target: - if name != target.FinalOutput() and spec['toolset'] == 'target': - target_short_names.setdefault(name, []).append(target) - target_outputs[qualified_target] = target - if qualified_target in all_targets: - all_outputs.add(target.FinalOutput()) - non_empty_target_names.add(name) - else: - empty_target_names.add(name) - - if target_short_names: - # Write a short name to build this target. This benefits both the - # "build chrome" case as well as the gyp tests, which expect to be - # able to run actions and build libraries by their short name. - master_ninja.newline() - master_ninja.comment('Short names for targets.') - for short_name in target_short_names: - master_ninja.build(short_name, 'phony', [x.FinalOutput() for x in - target_short_names[short_name]]) - - # Write phony targets for any empty targets that weren't written yet. As - # short names are not necessarily unique only do this for short names that - # haven't already been output for another target. - empty_target_names = empty_target_names - non_empty_target_names - if empty_target_names: - master_ninja.newline() - master_ninja.comment('Empty targets (output for completeness).') - for name in sorted(empty_target_names): - master_ninja.build(name, 'phony') - - if all_outputs: - master_ninja.newline() - master_ninja.build('all', 'phony', list(all_outputs)) - master_ninja.default(generator_flags.get('default_target', 'all')) - - master_ninja_file.close() - - -def PerformBuild(data, configurations, params): - options = params['options'] - for config in configurations: - builddir = os.path.join(options.toplevel_dir, 'out', config) - arguments = ['ninja', '-C', builddir] - print 'Building [%s]: %s' % (config, arguments) - subprocess.check_call(arguments) - - -def CallGenerateOutputForConfig(arglist): - # Ignore the interrupt signal so that the parent process catches it and - # kills all multiprocessing children. - signal.signal(signal.SIGINT, signal.SIG_IGN) - - (target_list, target_dicts, data, params, config_name) = arglist - GenerateOutputForConfig(target_list, target_dicts, data, params, config_name) - - -def GenerateOutput(target_list, target_dicts, data, params): - # Update target_dicts for iOS device builds. - target_dicts = gyp.xcode_emulation.CloneConfigurationForDeviceAndEmulator( - target_dicts) - - user_config = params.get('generator_flags', {}).get('config', None) - if gyp.common.GetFlavor(params) == 'win': - target_list, target_dicts = MSVSUtil.ShardTargets(target_list, target_dicts) - target_list, target_dicts = MSVSUtil.InsertLargePdbShims( - target_list, target_dicts, generator_default_variables) - - if user_config: - GenerateOutputForConfig(target_list, target_dicts, data, params, - user_config) - else: - config_names = target_dicts[target_list[0]]['configurations'].keys() - if params['parallel']: - try: - pool = multiprocessing.Pool(len(config_names)) - arglists = [] - for config_name in config_names: - arglists.append( - (target_list, target_dicts, data, params, config_name)) - pool.map(CallGenerateOutputForConfig, arglists) - except KeyboardInterrupt, e: - pool.terminate() - raise e - else: - for config_name in config_names: - GenerateOutputForConfig(target_list, target_dicts, data, params, - config_name) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py deleted file mode 100644 index 1767b2f4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -""" Unit tests for the ninja.py file. """ - -import gyp.generator.ninja as ninja -import unittest -import StringIO -import sys -import TestCommon - - -class TestPrefixesAndSuffixes(unittest.TestCase): - def test_BinaryNamesWindows(self): - # These cannot run on non-Windows as they require a VS installation to - # correctly handle variable expansion. - if sys.platform.startswith('win'): - writer = ninja.NinjaWriter('foo', 'wee', '.', '.', 'build.ninja', '.', - 'build.ninja', 'win') - spec = { 'target_name': 'wee' } - self.assertTrue(writer.ComputeOutputFileName(spec, 'executable'). - endswith('.exe')) - self.assertTrue(writer.ComputeOutputFileName(spec, 'shared_library'). - endswith('.dll')) - self.assertTrue(writer.ComputeOutputFileName(spec, 'static_library'). - endswith('.lib')) - - def test_BinaryNamesLinux(self): - writer = ninja.NinjaWriter('foo', 'wee', '.', '.', 'build.ninja', '.', - 'build.ninja', 'linux') - spec = { 'target_name': 'wee' } - self.assertTrue('.' not in writer.ComputeOutputFileName(spec, - 'executable')) - self.assertTrue(writer.ComputeOutputFileName(spec, 'shared_library'). - startswith('lib')) - self.assertTrue(writer.ComputeOutputFileName(spec, 'static_library'). - startswith('lib')) - self.assertTrue(writer.ComputeOutputFileName(spec, 'shared_library'). - endswith('.so')) - self.assertTrue(writer.ComputeOutputFileName(spec, 'static_library'). - endswith('.a')) - -if __name__ == '__main__': - unittest.main() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py deleted file mode 100644 index 0e3fb930..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +++ /dev/null @@ -1,1300 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import filecmp -import gyp.common -import gyp.xcodeproj_file -import gyp.xcode_ninja -import errno -import os -import sys -import posixpath -import re -import shutil -import subprocess -import tempfile - - -# Project files generated by this module will use _intermediate_var as a -# custom Xcode setting whose value is a DerivedSources-like directory that's -# project-specific and configuration-specific. The normal choice, -# DERIVED_FILE_DIR, is target-specific, which is thought to be too restrictive -# as it is likely that multiple targets within a single project file will want -# to access the same set of generated files. The other option, -# PROJECT_DERIVED_FILE_DIR, is unsuitable because while it is project-specific, -# it is not configuration-specific. INTERMEDIATE_DIR is defined as -# $(PROJECT_DERIVED_FILE_DIR)/$(CONFIGURATION). -_intermediate_var = 'INTERMEDIATE_DIR' - -# SHARED_INTERMEDIATE_DIR is the same, except that it is shared among all -# targets that share the same BUILT_PRODUCTS_DIR. -_shared_intermediate_var = 'SHARED_INTERMEDIATE_DIR' - -_library_search_paths_var = 'LIBRARY_SEARCH_PATHS' - -generator_default_variables = { - 'EXECUTABLE_PREFIX': '', - 'EXECUTABLE_SUFFIX': '', - 'STATIC_LIB_PREFIX': 'lib', - 'SHARED_LIB_PREFIX': 'lib', - 'STATIC_LIB_SUFFIX': '.a', - 'SHARED_LIB_SUFFIX': '.dylib', - # INTERMEDIATE_DIR is a place for targets to build up intermediate products. - # It is specific to each build environment. It is only guaranteed to exist - # and be constant within the context of a project, corresponding to a single - # input file. Some build environments may allow their intermediate directory - # to be shared on a wider scale, but this is not guaranteed. - 'INTERMEDIATE_DIR': '$(%s)' % _intermediate_var, - 'OS': 'mac', - 'PRODUCT_DIR': '$(BUILT_PRODUCTS_DIR)', - 'LIB_DIR': '$(BUILT_PRODUCTS_DIR)', - 'RULE_INPUT_ROOT': '$(INPUT_FILE_BASE)', - 'RULE_INPUT_EXT': '$(INPUT_FILE_SUFFIX)', - 'RULE_INPUT_NAME': '$(INPUT_FILE_NAME)', - 'RULE_INPUT_PATH': '$(INPUT_FILE_PATH)', - 'RULE_INPUT_DIRNAME': '$(INPUT_FILE_DIRNAME)', - 'SHARED_INTERMEDIATE_DIR': '$(%s)' % _shared_intermediate_var, - 'CONFIGURATION_NAME': '$(CONFIGURATION)', -} - -# The Xcode-specific sections that hold paths. -generator_additional_path_sections = [ - 'mac_bundle_resources', - 'mac_framework_headers', - 'mac_framework_private_headers', - # 'mac_framework_dirs', input already handles _dirs endings. -] - -# The Xcode-specific keys that exist on targets and aren't moved down to -# configurations. -generator_additional_non_configuration_keys = [ - 'ios_app_extension', - 'ios_watch_app', - 'ios_watchkit_extension', - 'mac_bundle', - 'mac_bundle_resources', - 'mac_framework_headers', - 'mac_framework_private_headers', - 'mac_xctest_bundle', - 'xcode_create_dependents_test_runner', -] - -# We want to let any rules apply to files that are resources also. -generator_extra_sources_for_rules = [ - 'mac_bundle_resources', - 'mac_framework_headers', - 'mac_framework_private_headers', -] - -generator_filelist_paths = None - -# Xcode's standard set of library directories, which don't need to be duplicated -# in LIBRARY_SEARCH_PATHS. This list is not exhaustive, but that's okay. -xcode_standard_library_dirs = frozenset([ - '$(SDKROOT)/usr/lib', - '$(SDKROOT)/usr/local/lib', -]) - -def CreateXCConfigurationList(configuration_names): - xccl = gyp.xcodeproj_file.XCConfigurationList({'buildConfigurations': []}) - if len(configuration_names) == 0: - configuration_names = ['Default'] - for configuration_name in configuration_names: - xcbc = gyp.xcodeproj_file.XCBuildConfiguration({ - 'name': configuration_name}) - xccl.AppendProperty('buildConfigurations', xcbc) - xccl.SetProperty('defaultConfigurationName', configuration_names[0]) - return xccl - - -class XcodeProject(object): - def __init__(self, gyp_path, path, build_file_dict): - self.gyp_path = gyp_path - self.path = path - self.project = gyp.xcodeproj_file.PBXProject(path=path) - projectDirPath = gyp.common.RelativePath( - os.path.dirname(os.path.abspath(self.gyp_path)), - os.path.dirname(path) or '.') - self.project.SetProperty('projectDirPath', projectDirPath) - self.project_file = \ - gyp.xcodeproj_file.XCProjectFile({'rootObject': self.project}) - self.build_file_dict = build_file_dict - - # TODO(mark): add destructor that cleans up self.path if created_dir is - # True and things didn't complete successfully. Or do something even - # better with "try"? - self.created_dir = False - try: - os.makedirs(self.path) - self.created_dir = True - except OSError, e: - if e.errno != errno.EEXIST: - raise - - def Finalize1(self, xcode_targets, serialize_all_tests): - # Collect a list of all of the build configuration names used by the - # various targets in the file. It is very heavily advised to keep each - # target in an entire project (even across multiple project files) using - # the same set of configuration names. - configurations = [] - for xct in self.project.GetProperty('targets'): - xccl = xct.GetProperty('buildConfigurationList') - xcbcs = xccl.GetProperty('buildConfigurations') - for xcbc in xcbcs: - name = xcbc.GetProperty('name') - if name not in configurations: - configurations.append(name) - - # Replace the XCConfigurationList attached to the PBXProject object with - # a new one specifying all of the configuration names used by the various - # targets. - try: - xccl = CreateXCConfigurationList(configurations) - self.project.SetProperty('buildConfigurationList', xccl) - except: - sys.stderr.write("Problem with gyp file %s\n" % self.gyp_path) - raise - - # The need for this setting is explained above where _intermediate_var is - # defined. The comments below about wanting to avoid project-wide build - # settings apply here too, but this needs to be set on a project-wide basis - # so that files relative to the _intermediate_var setting can be displayed - # properly in the Xcode UI. - # - # Note that for configuration-relative files such as anything relative to - # _intermediate_var, for the purposes of UI tree view display, Xcode will - # only resolve the configuration name once, when the project file is - # opened. If the active build configuration is changed, the project file - # must be closed and reopened if it is desired for the tree view to update. - # This is filed as Apple radar 6588391. - xccl.SetBuildSetting(_intermediate_var, - '$(PROJECT_DERIVED_FILE_DIR)/$(CONFIGURATION)') - xccl.SetBuildSetting(_shared_intermediate_var, - '$(SYMROOT)/DerivedSources/$(CONFIGURATION)') - - # Set user-specified project-wide build settings and config files. This - # is intended to be used very sparingly. Really, almost everything should - # go into target-specific build settings sections. The project-wide - # settings are only intended to be used in cases where Xcode attempts to - # resolve variable references in a project context as opposed to a target - # context, such as when resolving sourceTree references while building up - # the tree tree view for UI display. - # Any values set globally are applied to all configurations, then any - # per-configuration values are applied. - for xck, xcv in self.build_file_dict.get('xcode_settings', {}).iteritems(): - xccl.SetBuildSetting(xck, xcv) - if 'xcode_config_file' in self.build_file_dict: - config_ref = self.project.AddOrGetFileInRootGroup( - self.build_file_dict['xcode_config_file']) - xccl.SetBaseConfiguration(config_ref) - build_file_configurations = self.build_file_dict.get('configurations', {}) - if build_file_configurations: - for config_name in configurations: - build_file_configuration_named = \ - build_file_configurations.get(config_name, {}) - if build_file_configuration_named: - xcc = xccl.ConfigurationNamed(config_name) - for xck, xcv in build_file_configuration_named.get('xcode_settings', - {}).iteritems(): - xcc.SetBuildSetting(xck, xcv) - if 'xcode_config_file' in build_file_configuration_named: - config_ref = self.project.AddOrGetFileInRootGroup( - build_file_configurations[config_name]['xcode_config_file']) - xcc.SetBaseConfiguration(config_ref) - - # Sort the targets based on how they appeared in the input. - # TODO(mark): Like a lot of other things here, this assumes internal - # knowledge of PBXProject - in this case, of its "targets" property. - - # ordinary_targets are ordinary targets that are already in the project - # file. run_test_targets are the targets that run unittests and should be - # used for the Run All Tests target. support_targets are the action/rule - # targets used by GYP file targets, just kept for the assert check. - ordinary_targets = [] - run_test_targets = [] - support_targets = [] - - # targets is full list of targets in the project. - targets = [] - - # does the it define it's own "all"? - has_custom_all = False - - # targets_for_all is the list of ordinary_targets that should be listed - # in this project's "All" target. It includes each non_runtest_target - # that does not have suppress_wildcard set. - targets_for_all = [] - - for target in self.build_file_dict['targets']: - target_name = target['target_name'] - toolset = target['toolset'] - qualified_target = gyp.common.QualifiedTarget(self.gyp_path, target_name, - toolset) - xcode_target = xcode_targets[qualified_target] - # Make sure that the target being added to the sorted list is already in - # the unsorted list. - assert xcode_target in self.project._properties['targets'] - targets.append(xcode_target) - ordinary_targets.append(xcode_target) - if xcode_target.support_target: - support_targets.append(xcode_target.support_target) - targets.append(xcode_target.support_target) - - if not int(target.get('suppress_wildcard', False)): - targets_for_all.append(xcode_target) - - if target_name.lower() == 'all': - has_custom_all = True; - - # If this target has a 'run_as' attribute, add its target to the - # targets, and add it to the test targets. - if target.get('run_as'): - # Make a target to run something. It should have one - # dependency, the parent xcode target. - xccl = CreateXCConfigurationList(configurations) - run_target = gyp.xcodeproj_file.PBXAggregateTarget({ - 'name': 'Run ' + target_name, - 'productName': xcode_target.GetProperty('productName'), - 'buildConfigurationList': xccl, - }, - parent=self.project) - run_target.AddDependency(xcode_target) - - command = target['run_as'] - script = '' - if command.get('working_directory'): - script = script + 'cd "%s"\n' % \ - gyp.xcodeproj_file.ConvertVariablesToShellSyntax( - command.get('working_directory')) - - if command.get('environment'): - script = script + "\n".join( - ['export %s="%s"' % - (key, gyp.xcodeproj_file.ConvertVariablesToShellSyntax(val)) - for (key, val) in command.get('environment').iteritems()]) + "\n" - - # Some test end up using sockets, files on disk, etc. and can get - # confused if more then one test runs at a time. The generator - # flag 'xcode_serialize_all_test_runs' controls the forcing of all - # tests serially. It defaults to True. To get serial runs this - # little bit of python does the same as the linux flock utility to - # make sure only one runs at a time. - command_prefix = '' - if serialize_all_tests: - command_prefix = \ -"""python -c "import fcntl, subprocess, sys -file = open('$TMPDIR/GYP_serialize_test_runs', 'a') -fcntl.flock(file.fileno(), fcntl.LOCK_EX) -sys.exit(subprocess.call(sys.argv[1:]))" """ - - # If we were unable to exec for some reason, we want to exit - # with an error, and fixup variable references to be shell - # syntax instead of xcode syntax. - script = script + 'exec ' + command_prefix + '%s\nexit 1\n' % \ - gyp.xcodeproj_file.ConvertVariablesToShellSyntax( - gyp.common.EncodePOSIXShellList(command.get('action'))) - - ssbp = gyp.xcodeproj_file.PBXShellScriptBuildPhase({ - 'shellScript': script, - 'showEnvVarsInLog': 0, - }) - run_target.AppendProperty('buildPhases', ssbp) - - # Add the run target to the project file. - targets.append(run_target) - run_test_targets.append(run_target) - xcode_target.test_runner = run_target - - - # Make sure that the list of targets being replaced is the same length as - # the one replacing it, but allow for the added test runner targets. - assert len(self.project._properties['targets']) == \ - len(ordinary_targets) + len(support_targets) - - self.project._properties['targets'] = targets - - # Get rid of unnecessary levels of depth in groups like the Source group. - self.project.RootGroupsTakeOverOnlyChildren(True) - - # Sort the groups nicely. Do this after sorting the targets, because the - # Products group is sorted based on the order of the targets. - self.project.SortGroups() - - # Create an "All" target if there's more than one target in this project - # file and the project didn't define its own "All" target. Put a generated - # "All" target first so that people opening up the project for the first - # time will build everything by default. - if len(targets_for_all) > 1 and not has_custom_all: - xccl = CreateXCConfigurationList(configurations) - all_target = gyp.xcodeproj_file.PBXAggregateTarget( - { - 'buildConfigurationList': xccl, - 'name': 'All', - }, - parent=self.project) - - for target in targets_for_all: - all_target.AddDependency(target) - - # TODO(mark): This is evil because it relies on internal knowledge of - # PBXProject._properties. It's important to get the "All" target first, - # though. - self.project._properties['targets'].insert(0, all_target) - - # The same, but for run_test_targets. - if len(run_test_targets) > 1: - xccl = CreateXCConfigurationList(configurations) - run_all_tests_target = gyp.xcodeproj_file.PBXAggregateTarget( - { - 'buildConfigurationList': xccl, - 'name': 'Run All Tests', - }, - parent=self.project) - for run_test_target in run_test_targets: - run_all_tests_target.AddDependency(run_test_target) - - # Insert after the "All" target, which must exist if there is more than - # one run_test_target. - self.project._properties['targets'].insert(1, run_all_tests_target) - - def Finalize2(self, xcode_targets, xcode_target_to_target_dict): - # Finalize2 needs to happen in a separate step because the process of - # updating references to other projects depends on the ordering of targets - # within remote project files. Finalize1 is responsible for sorting duty, - # and once all project files are sorted, Finalize2 can come in and update - # these references. - - # To support making a "test runner" target that will run all the tests - # that are direct dependents of any given target, we look for - # xcode_create_dependents_test_runner being set on an Aggregate target, - # and generate a second target that will run the tests runners found under - # the marked target. - for bf_tgt in self.build_file_dict['targets']: - if int(bf_tgt.get('xcode_create_dependents_test_runner', 0)): - tgt_name = bf_tgt['target_name'] - toolset = bf_tgt['toolset'] - qualified_target = gyp.common.QualifiedTarget(self.gyp_path, - tgt_name, toolset) - xcode_target = xcode_targets[qualified_target] - if isinstance(xcode_target, gyp.xcodeproj_file.PBXAggregateTarget): - # Collect all the run test targets. - all_run_tests = [] - pbxtds = xcode_target.GetProperty('dependencies') - for pbxtd in pbxtds: - pbxcip = pbxtd.GetProperty('targetProxy') - dependency_xct = pbxcip.GetProperty('remoteGlobalIDString') - if hasattr(dependency_xct, 'test_runner'): - all_run_tests.append(dependency_xct.test_runner) - - # Directly depend on all the runners as they depend on the target - # that builds them. - if len(all_run_tests) > 0: - run_all_target = gyp.xcodeproj_file.PBXAggregateTarget({ - 'name': 'Run %s Tests' % tgt_name, - 'productName': tgt_name, - }, - parent=self.project) - for run_test_target in all_run_tests: - run_all_target.AddDependency(run_test_target) - - # Insert the test runner after the related target. - idx = self.project._properties['targets'].index(xcode_target) - self.project._properties['targets'].insert(idx + 1, run_all_target) - - # Update all references to other projects, to make sure that the lists of - # remote products are complete. Otherwise, Xcode will fill them in when - # it opens the project file, which will result in unnecessary diffs. - # TODO(mark): This is evil because it relies on internal knowledge of - # PBXProject._other_pbxprojects. - for other_pbxproject in self.project._other_pbxprojects.keys(): - self.project.AddOrGetProjectReference(other_pbxproject) - - self.project.SortRemoteProductReferences() - - # Give everything an ID. - self.project_file.ComputeIDs() - - # Make sure that no two objects in the project file have the same ID. If - # multiple objects wind up with the same ID, upon loading the file, Xcode - # will only recognize one object (the last one in the file?) and the - # results are unpredictable. - self.project_file.EnsureNoIDCollisions() - - def Write(self): - # Write the project file to a temporary location first. Xcode watches for - # changes to the project file and presents a UI sheet offering to reload - # the project when it does change. However, in some cases, especially when - # multiple projects are open or when Xcode is busy, things don't work so - # seamlessly. Sometimes, Xcode is able to detect that a project file has - # changed but can't unload it because something else is referencing it. - # To mitigate this problem, and to avoid even having Xcode present the UI - # sheet when an open project is rewritten for inconsequential changes, the - # project file is written to a temporary file in the xcodeproj directory - # first. The new temporary file is then compared to the existing project - # file, if any. If they differ, the new file replaces the old; otherwise, - # the new project file is simply deleted. Xcode properly detects a file - # being renamed over an open project file as a change and so it remains - # able to present the "project file changed" sheet under this system. - # Writing to a temporary file first also avoids the possible problem of - # Xcode rereading an incomplete project file. - (output_fd, new_pbxproj_path) = \ - tempfile.mkstemp(suffix='.tmp', prefix='project.pbxproj.gyp.', - dir=self.path) - - try: - output_file = os.fdopen(output_fd, 'wb') - - self.project_file.Print(output_file) - output_file.close() - - pbxproj_path = os.path.join(self.path, 'project.pbxproj') - - same = False - try: - same = filecmp.cmp(pbxproj_path, new_pbxproj_path, False) - except OSError, e: - if e.errno != errno.ENOENT: - raise - - if same: - # The new file is identical to the old one, just get rid of the new - # one. - os.unlink(new_pbxproj_path) - else: - # The new file is different from the old one, or there is no old one. - # Rename the new file to the permanent name. - # - # tempfile.mkstemp uses an overly restrictive mode, resulting in a - # file that can only be read by the owner, regardless of the umask. - # There's no reason to not respect the umask here, which means that - # an extra hoop is required to fetch it and reset the new file's mode. - # - # No way to get the umask without setting a new one? Set a safe one - # and then set it back to the old value. - umask = os.umask(077) - os.umask(umask) - - os.chmod(new_pbxproj_path, 0666 & ~umask) - os.rename(new_pbxproj_path, pbxproj_path) - - except Exception: - # Don't leave turds behind. In fact, if this code was responsible for - # creating the xcodeproj directory, get rid of that too. - os.unlink(new_pbxproj_path) - if self.created_dir: - shutil.rmtree(self.path, True) - raise - - -def AddSourceToTarget(source, type, pbxp, xct): - # TODO(mark): Perhaps source_extensions and library_extensions can be made a - # little bit fancier. - source_extensions = ['c', 'cc', 'cpp', 'cxx', 'm', 'mm', 's', 'swift'] - - # .o is conceptually more of a "source" than a "library," but Xcode thinks - # of "sources" as things to compile and "libraries" (or "frameworks") as - # things to link with. Adding an object file to an Xcode target's frameworks - # phase works properly. - library_extensions = ['a', 'dylib', 'framework', 'o'] - - basename = posixpath.basename(source) - (root, ext) = posixpath.splitext(basename) - if ext: - ext = ext[1:].lower() - - if ext in source_extensions and type != 'none': - xct.SourcesPhase().AddFile(source) - elif ext in library_extensions and type != 'none': - xct.FrameworksPhase().AddFile(source) - else: - # Files that aren't added to a sources or frameworks build phase can still - # go into the project file, just not as part of a build phase. - pbxp.AddOrGetFileInRootGroup(source) - - -def AddResourceToTarget(resource, pbxp, xct): - # TODO(mark): Combine with AddSourceToTarget above? Or just inline this call - # where it's used. - xct.ResourcesPhase().AddFile(resource) - - -def AddHeaderToTarget(header, pbxp, xct, is_public): - # TODO(mark): Combine with AddSourceToTarget above? Or just inline this call - # where it's used. - settings = '{ATTRIBUTES = (%s, ); }' % ('Private', 'Public')[is_public] - xct.HeadersPhase().AddFile(header, settings) - - -_xcode_variable_re = re.compile(r'(\$\((.*?)\))') -def ExpandXcodeVariables(string, expansions): - """Expands Xcode-style $(VARIABLES) in string per the expansions dict. - - In some rare cases, it is appropriate to expand Xcode variables when a - project file is generated. For any substring $(VAR) in string, if VAR is a - key in the expansions dict, $(VAR) will be replaced with expansions[VAR]. - Any $(VAR) substring in string for which VAR is not a key in the expansions - dict will remain in the returned string. - """ - - matches = _xcode_variable_re.findall(string) - if matches == None: - return string - - matches.reverse() - for match in matches: - (to_replace, variable) = match - if not variable in expansions: - continue - - replacement = expansions[variable] - string = re.sub(re.escape(to_replace), replacement, string) - - return string - - -_xcode_define_re = re.compile(r'([\\\"\' ])') -def EscapeXcodeDefine(s): - """We must escape the defines that we give to XCode so that it knows not to - split on spaces and to respect backslash and quote literals. However, we - must not quote the define, or Xcode will incorrectly intepret variables - especially $(inherited).""" - return re.sub(_xcode_define_re, r'\\\1', s) - - -def PerformBuild(data, configurations, params): - options = params['options'] - - for build_file, build_file_dict in data.iteritems(): - (build_file_root, build_file_ext) = os.path.splitext(build_file) - if build_file_ext != '.gyp': - continue - xcodeproj_path = build_file_root + options.suffix + '.xcodeproj' - if options.generator_output: - xcodeproj_path = os.path.join(options.generator_output, xcodeproj_path) - - for config in configurations: - arguments = ['xcodebuild', '-project', xcodeproj_path] - arguments += ['-configuration', config] - print "Building [%s]: %s" % (config, arguments) - subprocess.check_call(arguments) - - -def CalculateGeneratorInputInfo(params): - toplevel = params['options'].toplevel_dir - if params.get('flavor') == 'ninja': - generator_dir = os.path.relpath(params['options'].generator_output or '.') - output_dir = params.get('generator_flags', {}).get('output_dir', 'out') - output_dir = os.path.normpath(os.path.join(generator_dir, output_dir)) - qualified_out_dir = os.path.normpath(os.path.join( - toplevel, output_dir, 'gypfiles-xcode-ninja')) - else: - output_dir = os.path.normpath(os.path.join(toplevel, 'xcodebuild')) - qualified_out_dir = os.path.normpath(os.path.join( - toplevel, output_dir, 'gypfiles')) - - global generator_filelist_paths - generator_filelist_paths = { - 'toplevel': toplevel, - 'qualified_out_dir': qualified_out_dir, - } - - -def GenerateOutput(target_list, target_dicts, data, params): - # Optionally configure each spec to use ninja as the external builder. - ninja_wrapper = params.get('flavor') == 'ninja' - if ninja_wrapper: - (target_list, target_dicts, data) = \ - gyp.xcode_ninja.CreateWrapper(target_list, target_dicts, data, params) - - options = params['options'] - generator_flags = params.get('generator_flags', {}) - parallel_builds = generator_flags.get('xcode_parallel_builds', True) - serialize_all_tests = \ - generator_flags.get('xcode_serialize_all_test_runs', True) - upgrade_check_project_version = \ - generator_flags.get('xcode_upgrade_check_project_version', None) - - # Format upgrade_check_project_version with leading zeros as needed. - if upgrade_check_project_version: - upgrade_check_project_version = str(upgrade_check_project_version) - while len(upgrade_check_project_version) < 4: - upgrade_check_project_version = '0' + upgrade_check_project_version - - skip_excluded_files = \ - not generator_flags.get('xcode_list_excluded_files', True) - xcode_projects = {} - for build_file, build_file_dict in data.iteritems(): - (build_file_root, build_file_ext) = os.path.splitext(build_file) - if build_file_ext != '.gyp': - continue - xcodeproj_path = build_file_root + options.suffix + '.xcodeproj' - if options.generator_output: - xcodeproj_path = os.path.join(options.generator_output, xcodeproj_path) - xcp = XcodeProject(build_file, xcodeproj_path, build_file_dict) - xcode_projects[build_file] = xcp - pbxp = xcp.project - - # Set project-level attributes from multiple options - project_attributes = {}; - if parallel_builds: - project_attributes['BuildIndependentTargetsInParallel'] = 'YES' - if upgrade_check_project_version: - project_attributes['LastUpgradeCheck'] = upgrade_check_project_version - project_attributes['LastTestingUpgradeCheck'] = \ - upgrade_check_project_version - project_attributes['LastSwiftUpdateCheck'] = \ - upgrade_check_project_version - pbxp.SetProperty('attributes', project_attributes) - - # Add gyp/gypi files to project - if not generator_flags.get('standalone'): - main_group = pbxp.GetProperty('mainGroup') - build_group = gyp.xcodeproj_file.PBXGroup({'name': 'Build'}) - main_group.AppendChild(build_group) - for included_file in build_file_dict['included_files']: - build_group.AddOrGetFileByPath(included_file, False) - - xcode_targets = {} - xcode_target_to_target_dict = {} - for qualified_target in target_list: - [build_file, target_name, toolset] = \ - gyp.common.ParseQualifiedTarget(qualified_target) - - spec = target_dicts[qualified_target] - if spec['toolset'] != 'target': - raise Exception( - 'Multiple toolsets not supported in xcode build (target %s)' % - qualified_target) - configuration_names = [spec['default_configuration']] - for configuration_name in sorted(spec['configurations'].keys()): - if configuration_name not in configuration_names: - configuration_names.append(configuration_name) - xcp = xcode_projects[build_file] - pbxp = xcp.project - - # Set up the configurations for the target according to the list of names - # supplied. - xccl = CreateXCConfigurationList(configuration_names) - - # Create an XCTarget subclass object for the target. The type with - # "+bundle" appended will be used if the target has "mac_bundle" set. - # loadable_modules not in a mac_bundle are mapped to - # com.googlecode.gyp.xcode.bundle, a pseudo-type that xcode.py interprets - # to create a single-file mh_bundle. - _types = { - 'executable': 'com.apple.product-type.tool', - 'loadable_module': 'com.googlecode.gyp.xcode.bundle', - 'shared_library': 'com.apple.product-type.library.dynamic', - 'static_library': 'com.apple.product-type.library.static', - 'mac_kernel_extension': 'com.apple.product-type.kernel-extension', - 'executable+bundle': 'com.apple.product-type.application', - 'loadable_module+bundle': 'com.apple.product-type.bundle', - 'loadable_module+xctest': 'com.apple.product-type.bundle.unit-test', - 'shared_library+bundle': 'com.apple.product-type.framework', - 'executable+extension+bundle': 'com.apple.product-type.app-extension', - 'executable+watch+extension+bundle': - 'com.apple.product-type.watchkit-extension', - 'executable+watch+bundle': - 'com.apple.product-type.application.watchapp', - 'mac_kernel_extension+bundle': 'com.apple.product-type.kernel-extension', - } - - target_properties = { - 'buildConfigurationList': xccl, - 'name': target_name, - } - - type = spec['type'] - is_xctest = int(spec.get('mac_xctest_bundle', 0)) - is_bundle = int(spec.get('mac_bundle', 0)) or is_xctest - is_app_extension = int(spec.get('ios_app_extension', 0)) - is_watchkit_extension = int(spec.get('ios_watchkit_extension', 0)) - is_watch_app = int(spec.get('ios_watch_app', 0)) - if type != 'none': - type_bundle_key = type - if is_xctest: - type_bundle_key += '+xctest' - assert type == 'loadable_module', ( - 'mac_xctest_bundle targets must have type loadable_module ' - '(target %s)' % target_name) - elif is_app_extension: - assert is_bundle, ('ios_app_extension flag requires mac_bundle ' - '(target %s)' % target_name) - type_bundle_key += '+extension+bundle' - elif is_watchkit_extension: - assert is_bundle, ('ios_watchkit_extension flag requires mac_bundle ' - '(target %s)' % target_name) - type_bundle_key += '+watch+extension+bundle' - elif is_watch_app: - assert is_bundle, ('ios_watch_app flag requires mac_bundle ' - '(target %s)' % target_name) - type_bundle_key += '+watch+bundle' - elif is_bundle: - type_bundle_key += '+bundle' - - xctarget_type = gyp.xcodeproj_file.PBXNativeTarget - try: - target_properties['productType'] = _types[type_bundle_key] - except KeyError, e: - gyp.common.ExceptionAppend(e, "-- unknown product type while " - "writing target %s" % target_name) - raise - else: - xctarget_type = gyp.xcodeproj_file.PBXAggregateTarget - assert not is_bundle, ( - 'mac_bundle targets cannot have type none (target "%s")' % - target_name) - assert not is_xctest, ( - 'mac_xctest_bundle targets cannot have type none (target "%s")' % - target_name) - - target_product_name = spec.get('product_name') - if target_product_name is not None: - target_properties['productName'] = target_product_name - - xct = xctarget_type(target_properties, parent=pbxp, - force_outdir=spec.get('product_dir'), - force_prefix=spec.get('product_prefix'), - force_extension=spec.get('product_extension')) - pbxp.AppendProperty('targets', xct) - xcode_targets[qualified_target] = xct - xcode_target_to_target_dict[xct] = spec - - spec_actions = spec.get('actions', []) - spec_rules = spec.get('rules', []) - - # Xcode has some "issues" with checking dependencies for the "Compile - # sources" step with any source files/headers generated by actions/rules. - # To work around this, if a target is building anything directly (not - # type "none"), then a second target is used to run the GYP actions/rules - # and is made a dependency of this target. This way the work is done - # before the dependency checks for what should be recompiled. - support_xct = None - # The Xcode "issues" don't affect xcode-ninja builds, since the dependency - # logic all happens in ninja. Don't bother creating the extra targets in - # that case. - if type != 'none' and (spec_actions or spec_rules) and not ninja_wrapper: - support_xccl = CreateXCConfigurationList(configuration_names); - support_target_suffix = generator_flags.get( - 'support_target_suffix', ' Support') - support_target_properties = { - 'buildConfigurationList': support_xccl, - 'name': target_name + support_target_suffix, - } - if target_product_name: - support_target_properties['productName'] = \ - target_product_name + ' Support' - support_xct = \ - gyp.xcodeproj_file.PBXAggregateTarget(support_target_properties, - parent=pbxp) - pbxp.AppendProperty('targets', support_xct) - xct.AddDependency(support_xct) - # Hang the support target off the main target so it can be tested/found - # by the generator during Finalize. - xct.support_target = support_xct - - prebuild_index = 0 - - # Add custom shell script phases for "actions" sections. - for action in spec_actions: - # There's no need to write anything into the script to ensure that the - # output directories already exist, because Xcode will look at the - # declared outputs and automatically ensure that they exist for us. - - # Do we have a message to print when this action runs? - message = action.get('message') - if message: - message = 'echo note: ' + gyp.common.EncodePOSIXShellArgument(message) - else: - message = '' - - # Turn the list into a string that can be passed to a shell. - action_string = gyp.common.EncodePOSIXShellList(action['action']) - - # Convert Xcode-type variable references to sh-compatible environment - # variable references. - message_sh = gyp.xcodeproj_file.ConvertVariablesToShellSyntax(message) - action_string_sh = gyp.xcodeproj_file.ConvertVariablesToShellSyntax( - action_string) - - script = '' - # Include the optional message - if message_sh: - script += message_sh + '\n' - # Be sure the script runs in exec, and that if exec fails, the script - # exits signalling an error. - script += 'exec ' + action_string_sh + '\nexit 1\n' - ssbp = gyp.xcodeproj_file.PBXShellScriptBuildPhase({ - 'inputPaths': action['inputs'], - 'name': 'Action "' + action['action_name'] + '"', - 'outputPaths': action['outputs'], - 'shellScript': script, - 'showEnvVarsInLog': 0, - }) - - if support_xct: - support_xct.AppendProperty('buildPhases', ssbp) - else: - # TODO(mark): this assumes too much knowledge of the internals of - # xcodeproj_file; some of these smarts should move into xcodeproj_file - # itself. - xct._properties['buildPhases'].insert(prebuild_index, ssbp) - prebuild_index = prebuild_index + 1 - - # TODO(mark): Should verify that at most one of these is specified. - if int(action.get('process_outputs_as_sources', False)): - for output in action['outputs']: - AddSourceToTarget(output, type, pbxp, xct) - - if int(action.get('process_outputs_as_mac_bundle_resources', False)): - for output in action['outputs']: - AddResourceToTarget(output, pbxp, xct) - - # tgt_mac_bundle_resources holds the list of bundle resources so - # the rule processing can check against it. - if is_bundle: - tgt_mac_bundle_resources = spec.get('mac_bundle_resources', []) - else: - tgt_mac_bundle_resources = [] - - # Add custom shell script phases driving "make" for "rules" sections. - # - # Xcode's built-in rule support is almost powerful enough to use directly, - # but there are a few significant deficiencies that render them unusable. - # There are workarounds for some of its inadequacies, but in aggregate, - # the workarounds added complexity to the generator, and some workarounds - # actually require input files to be crafted more carefully than I'd like. - # Consequently, until Xcode rules are made more capable, "rules" input - # sections will be handled in Xcode output by shell script build phases - # performed prior to the compilation phase. - # - # The following problems with Xcode rules were found. The numbers are - # Apple radar IDs. I hope that these shortcomings are addressed, I really - # liked having the rules handled directly in Xcode during the period that - # I was prototyping this. - # - # 6588600 Xcode compiles custom script rule outputs too soon, compilation - # fails. This occurs when rule outputs from distinct inputs are - # interdependent. The only workaround is to put rules and their - # inputs in a separate target from the one that compiles the rule - # outputs. This requires input file cooperation and it means that - # process_outputs_as_sources is unusable. - # 6584932 Need to declare that custom rule outputs should be excluded from - # compilation. A possible workaround is to lie to Xcode about a - # rule's output, giving it a dummy file it doesn't know how to - # compile. The rule action script would need to touch the dummy. - # 6584839 I need a way to declare additional inputs to a custom rule. - # A possible workaround is a shell script phase prior to - # compilation that touches a rule's primary input files if any - # would-be additional inputs are newer than the output. Modifying - # the source tree - even just modification times - feels dirty. - # 6564240 Xcode "custom script" build rules always dump all environment - # variables. This is a low-prioroty problem and is not a - # show-stopper. - rules_by_ext = {} - for rule in spec_rules: - rules_by_ext[rule['extension']] = rule - - # First, some definitions: - # - # A "rule source" is a file that was listed in a target's "sources" - # list and will have a rule applied to it on the basis of matching the - # rule's "extensions" attribute. Rule sources are direct inputs to - # rules. - # - # Rule definitions may specify additional inputs in their "inputs" - # attribute. These additional inputs are used for dependency tracking - # purposes. - # - # A "concrete output" is a rule output with input-dependent variables - # resolved. For example, given a rule with: - # 'extension': 'ext', 'outputs': ['$(INPUT_FILE_BASE).cc'], - # if the target's "sources" list contained "one.ext" and "two.ext", - # the "concrete output" for rule input "two.ext" would be "two.cc". If - # a rule specifies multiple outputs, each input file that the rule is - # applied to will have the same number of concrete outputs. - # - # If any concrete outputs are outdated or missing relative to their - # corresponding rule_source or to any specified additional input, the - # rule action must be performed to generate the concrete outputs. - - # concrete_outputs_by_rule_source will have an item at the same index - # as the rule['rule_sources'] that it corresponds to. Each item is a - # list of all of the concrete outputs for the rule_source. - concrete_outputs_by_rule_source = [] - - # concrete_outputs_all is a flat list of all concrete outputs that this - # rule is able to produce, given the known set of input files - # (rule_sources) that apply to it. - concrete_outputs_all = [] - - # messages & actions are keyed by the same indices as rule['rule_sources'] - # and concrete_outputs_by_rule_source. They contain the message and - # action to perform after resolving input-dependent variables. The - # message is optional, in which case None is stored for each rule source. - messages = [] - actions = [] - - for rule_source in rule.get('rule_sources', []): - rule_source_dirname, rule_source_basename = \ - posixpath.split(rule_source) - (rule_source_root, rule_source_ext) = \ - posixpath.splitext(rule_source_basename) - - # These are the same variable names that Xcode uses for its own native - # rule support. Because Xcode's rule engine is not being used, they - # need to be expanded as they are written to the makefile. - rule_input_dict = { - 'INPUT_FILE_BASE': rule_source_root, - 'INPUT_FILE_SUFFIX': rule_source_ext, - 'INPUT_FILE_NAME': rule_source_basename, - 'INPUT_FILE_PATH': rule_source, - 'INPUT_FILE_DIRNAME': rule_source_dirname, - } - - concrete_outputs_for_this_rule_source = [] - for output in rule.get('outputs', []): - # Fortunately, Xcode and make both use $(VAR) format for their - # variables, so the expansion is the only transformation necessary. - # Any remaning $(VAR)-type variables in the string can be given - # directly to make, which will pick up the correct settings from - # what Xcode puts into the environment. - concrete_output = ExpandXcodeVariables(output, rule_input_dict) - concrete_outputs_for_this_rule_source.append(concrete_output) - - # Add all concrete outputs to the project. - pbxp.AddOrGetFileInRootGroup(concrete_output) - - concrete_outputs_by_rule_source.append( \ - concrete_outputs_for_this_rule_source) - concrete_outputs_all.extend(concrete_outputs_for_this_rule_source) - - # TODO(mark): Should verify that at most one of these is specified. - if int(rule.get('process_outputs_as_sources', False)): - for output in concrete_outputs_for_this_rule_source: - AddSourceToTarget(output, type, pbxp, xct) - - # If the file came from the mac_bundle_resources list or if the rule - # is marked to process outputs as bundle resource, do so. - was_mac_bundle_resource = rule_source in tgt_mac_bundle_resources - if was_mac_bundle_resource or \ - int(rule.get('process_outputs_as_mac_bundle_resources', False)): - for output in concrete_outputs_for_this_rule_source: - AddResourceToTarget(output, pbxp, xct) - - # Do we have a message to print when this rule runs? - message = rule.get('message') - if message: - message = gyp.common.EncodePOSIXShellArgument(message) - message = ExpandXcodeVariables(message, rule_input_dict) - messages.append(message) - - # Turn the list into a string that can be passed to a shell. - action_string = gyp.common.EncodePOSIXShellList(rule['action']) - - action = ExpandXcodeVariables(action_string, rule_input_dict) - actions.append(action) - - if len(concrete_outputs_all) > 0: - # TODO(mark): There's a possibilty for collision here. Consider - # target "t" rule "A_r" and target "t_A" rule "r". - makefile_name = '%s.make' % re.sub( - '[^a-zA-Z0-9_]', '_' , '%s_%s' % (target_name, rule['rule_name'])) - makefile_path = os.path.join(xcode_projects[build_file].path, - makefile_name) - # TODO(mark): try/close? Write to a temporary file and swap it only - # if it's got changes? - makefile = open(makefile_path, 'wb') - - # make will build the first target in the makefile by default. By - # convention, it's called "all". List all (or at least one) - # concrete output for each rule source as a prerequisite of the "all" - # target. - makefile.write('all: \\\n') - for concrete_output_index in \ - xrange(0, len(concrete_outputs_by_rule_source)): - # Only list the first (index [0]) concrete output of each input - # in the "all" target. Otherwise, a parallel make (-j > 1) would - # attempt to process each input multiple times simultaneously. - # Otherwise, "all" could just contain the entire list of - # concrete_outputs_all. - concrete_output = \ - concrete_outputs_by_rule_source[concrete_output_index][0] - if concrete_output_index == len(concrete_outputs_by_rule_source) - 1: - eol = '' - else: - eol = ' \\' - makefile.write(' %s%s\n' % (concrete_output, eol)) - - for (rule_source, concrete_outputs, message, action) in \ - zip(rule['rule_sources'], concrete_outputs_by_rule_source, - messages, actions): - makefile.write('\n') - - # Add a rule that declares it can build each concrete output of a - # rule source. Collect the names of the directories that are - # required. - concrete_output_dirs = [] - for concrete_output_index in xrange(0, len(concrete_outputs)): - concrete_output = concrete_outputs[concrete_output_index] - if concrete_output_index == 0: - bol = '' - else: - bol = ' ' - makefile.write('%s%s \\\n' % (bol, concrete_output)) - - concrete_output_dir = posixpath.dirname(concrete_output) - if (concrete_output_dir and - concrete_output_dir not in concrete_output_dirs): - concrete_output_dirs.append(concrete_output_dir) - - makefile.write(' : \\\n') - - # The prerequisites for this rule are the rule source itself and - # the set of additional rule inputs, if any. - prerequisites = [rule_source] - prerequisites.extend(rule.get('inputs', [])) - for prerequisite_index in xrange(0, len(prerequisites)): - prerequisite = prerequisites[prerequisite_index] - if prerequisite_index == len(prerequisites) - 1: - eol = '' - else: - eol = ' \\' - makefile.write(' %s%s\n' % (prerequisite, eol)) - - # Make sure that output directories exist before executing the rule - # action. - if len(concrete_output_dirs) > 0: - makefile.write('\t@mkdir -p "%s"\n' % - '" "'.join(concrete_output_dirs)) - - # The rule message and action have already had the necessary variable - # substitutions performed. - if message: - # Mark it with note: so Xcode picks it up in build output. - makefile.write('\t@echo note: %s\n' % message) - makefile.write('\t%s\n' % action) - - makefile.close() - - # It might be nice to ensure that needed output directories exist - # here rather than in each target in the Makefile, but that wouldn't - # work if there ever was a concrete output that had an input-dependent - # variable anywhere other than in the leaf position. - - # Don't declare any inputPaths or outputPaths. If they're present, - # Xcode will provide a slight optimization by only running the script - # phase if any output is missing or outdated relative to any input. - # Unfortunately, it will also assume that all outputs are touched by - # the script, and if the outputs serve as files in a compilation - # phase, they will be unconditionally rebuilt. Since make might not - # rebuild everything that could be declared here as an output, this - # extra compilation activity is unnecessary. With inputPaths and - # outputPaths not supplied, make will always be called, but it knows - # enough to not do anything when everything is up-to-date. - - # To help speed things up, pass -j COUNT to make so it does some work - # in parallel. Don't use ncpus because Xcode will build ncpus targets - # in parallel and if each target happens to have a rules step, there - # would be ncpus^2 things going. With a machine that has 2 quad-core - # Xeons, a build can quickly run out of processes based on - # scheduling/other tasks, and randomly failing builds are no good. - script = \ -"""JOB_COUNT="$(/usr/sbin/sysctl -n hw.ncpu)" -if [ "${JOB_COUNT}" -gt 4 ]; then - JOB_COUNT=4 -fi -exec xcrun make -f "${PROJECT_FILE_PATH}/%s" -j "${JOB_COUNT}" -exit 1 -""" % makefile_name - ssbp = gyp.xcodeproj_file.PBXShellScriptBuildPhase({ - 'name': 'Rule "' + rule['rule_name'] + '"', - 'shellScript': script, - 'showEnvVarsInLog': 0, - }) - - if support_xct: - support_xct.AppendProperty('buildPhases', ssbp) - else: - # TODO(mark): this assumes too much knowledge of the internals of - # xcodeproj_file; some of these smarts should move into xcodeproj_file - # itself. - xct._properties['buildPhases'].insert(prebuild_index, ssbp) - prebuild_index = prebuild_index + 1 - - # Extra rule inputs also go into the project file. Concrete outputs were - # already added when they were computed. - groups = ['inputs', 'inputs_excluded'] - if skip_excluded_files: - groups = [x for x in groups if not x.endswith('_excluded')] - for group in groups: - for item in rule.get(group, []): - pbxp.AddOrGetFileInRootGroup(item) - - # Add "sources". - for source in spec.get('sources', []): - (source_root, source_extension) = posixpath.splitext(source) - if source_extension[1:] not in rules_by_ext: - # AddSourceToTarget will add the file to a root group if it's not - # already there. - AddSourceToTarget(source, type, pbxp, xct) - else: - pbxp.AddOrGetFileInRootGroup(source) - - # Add "mac_bundle_resources" and "mac_framework_private_headers" if - # it's a bundle of any type. - if is_bundle: - for resource in tgt_mac_bundle_resources: - (resource_root, resource_extension) = posixpath.splitext(resource) - if resource_extension[1:] not in rules_by_ext: - AddResourceToTarget(resource, pbxp, xct) - else: - pbxp.AddOrGetFileInRootGroup(resource) - - for header in spec.get('mac_framework_private_headers', []): - AddHeaderToTarget(header, pbxp, xct, False) - - # Add "mac_framework_headers". These can be valid for both frameworks - # and static libraries. - if is_bundle or type == 'static_library': - for header in spec.get('mac_framework_headers', []): - AddHeaderToTarget(header, pbxp, xct, True) - - # Add "copies". - pbxcp_dict = {} - for copy_group in spec.get('copies', []): - dest = copy_group['destination'] - if dest[0] not in ('/', '$'): - # Relative paths are relative to $(SRCROOT). - dest = '$(SRCROOT)/' + dest - - code_sign = int(copy_group.get('xcode_code_sign', 0)) - settings = (None, '{ATTRIBUTES = (CodeSignOnCopy, ); }')[code_sign]; - - # Coalesce multiple "copies" sections in the same target with the same - # "destination" property into the same PBXCopyFilesBuildPhase, otherwise - # they'll wind up with ID collisions. - pbxcp = pbxcp_dict.get(dest, None) - if pbxcp is None: - pbxcp = gyp.xcodeproj_file.PBXCopyFilesBuildPhase({ - 'name': 'Copy to ' + copy_group['destination'] - }, - parent=xct) - pbxcp.SetDestination(dest) - - # TODO(mark): The usual comment about this knowing too much about - # gyp.xcodeproj_file internals applies. - xct._properties['buildPhases'].insert(prebuild_index, pbxcp) - - pbxcp_dict[dest] = pbxcp - - for file in copy_group['files']: - pbxcp.AddFile(file, settings) - - # Excluded files can also go into the project file. - if not skip_excluded_files: - for key in ['sources', 'mac_bundle_resources', 'mac_framework_headers', - 'mac_framework_private_headers']: - excluded_key = key + '_excluded' - for item in spec.get(excluded_key, []): - pbxp.AddOrGetFileInRootGroup(item) - - # So can "inputs" and "outputs" sections of "actions" groups. - groups = ['inputs', 'inputs_excluded', 'outputs', 'outputs_excluded'] - if skip_excluded_files: - groups = [x for x in groups if not x.endswith('_excluded')] - for action in spec.get('actions', []): - for group in groups: - for item in action.get(group, []): - # Exclude anything in BUILT_PRODUCTS_DIR. They're products, not - # sources. - if not item.startswith('$(BUILT_PRODUCTS_DIR)/'): - pbxp.AddOrGetFileInRootGroup(item) - - for postbuild in spec.get('postbuilds', []): - action_string_sh = gyp.common.EncodePOSIXShellList(postbuild['action']) - script = 'exec ' + action_string_sh + '\nexit 1\n' - - # Make the postbuild step depend on the output of ld or ar from this - # target. Apparently putting the script step after the link step isn't - # sufficient to ensure proper ordering in all cases. With an input - # declared but no outputs, the script step should run every time, as - # desired. - ssbp = gyp.xcodeproj_file.PBXShellScriptBuildPhase({ - 'inputPaths': ['$(BUILT_PRODUCTS_DIR)/$(EXECUTABLE_PATH)'], - 'name': 'Postbuild "' + postbuild['postbuild_name'] + '"', - 'shellScript': script, - 'showEnvVarsInLog': 0, - }) - xct.AppendProperty('buildPhases', ssbp) - - # Add dependencies before libraries, because adding a dependency may imply - # adding a library. It's preferable to keep dependencies listed first - # during a link phase so that they can override symbols that would - # otherwise be provided by libraries, which will usually include system - # libraries. On some systems, ld is finicky and even requires the - # libraries to be ordered in such a way that unresolved symbols in - # earlier-listed libraries may only be resolved by later-listed libraries. - # The Mac linker doesn't work that way, but other platforms do, and so - # their linker invocations need to be constructed in this way. There's - # no compelling reason for Xcode's linker invocations to differ. - - if 'dependencies' in spec: - for dependency in spec['dependencies']: - xct.AddDependency(xcode_targets[dependency]) - # The support project also gets the dependencies (in case they are - # needed for the actions/rules to work). - if support_xct: - support_xct.AddDependency(xcode_targets[dependency]) - - if 'libraries' in spec: - for library in spec['libraries']: - xct.FrameworksPhase().AddFile(library) - # Add the library's directory to LIBRARY_SEARCH_PATHS if necessary. - # I wish Xcode handled this automatically. - library_dir = posixpath.dirname(library) - if library_dir not in xcode_standard_library_dirs and ( - not xct.HasBuildSetting(_library_search_paths_var) or - library_dir not in xct.GetBuildSetting(_library_search_paths_var)): - xct.AppendBuildSetting(_library_search_paths_var, library_dir) - - for configuration_name in configuration_names: - configuration = spec['configurations'][configuration_name] - xcbc = xct.ConfigurationNamed(configuration_name) - for include_dir in configuration.get('mac_framework_dirs', []): - xcbc.AppendBuildSetting('FRAMEWORK_SEARCH_PATHS', include_dir) - for include_dir in configuration.get('include_dirs', []): - xcbc.AppendBuildSetting('HEADER_SEARCH_PATHS', include_dir) - for library_dir in configuration.get('library_dirs', []): - if library_dir not in xcode_standard_library_dirs and ( - not xcbc.HasBuildSetting(_library_search_paths_var) or - library_dir not in xcbc.GetBuildSetting(_library_search_paths_var)): - xcbc.AppendBuildSetting(_library_search_paths_var, library_dir) - - if 'defines' in configuration: - for define in configuration['defines']: - set_define = EscapeXcodeDefine(define) - xcbc.AppendBuildSetting('GCC_PREPROCESSOR_DEFINITIONS', set_define) - if 'xcode_settings' in configuration: - for xck, xcv in configuration['xcode_settings'].iteritems(): - xcbc.SetBuildSetting(xck, xcv) - if 'xcode_config_file' in configuration: - config_ref = pbxp.AddOrGetFileInRootGroup( - configuration['xcode_config_file']) - xcbc.SetBaseConfiguration(config_ref) - - build_files = [] - for build_file, build_file_dict in data.iteritems(): - if build_file.endswith('.gyp'): - build_files.append(build_file) - - for build_file in build_files: - xcode_projects[build_file].Finalize1(xcode_targets, serialize_all_tests) - - for build_file in build_files: - xcode_projects[build_file].Finalize2(xcode_targets, - xcode_target_to_target_dict) - - for build_file in build_files: - xcode_projects[build_file].Write() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py deleted file mode 100644 index 260324a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2013 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -""" Unit tests for the xcode.py file. """ - -import gyp.generator.xcode as xcode -import unittest -import sys - - -class TestEscapeXcodeDefine(unittest.TestCase): - if sys.platform == 'darwin': - def test_InheritedRemainsUnescaped(self): - self.assertEqual(xcode.EscapeXcodeDefine('$(inherited)'), '$(inherited)') - - def test_Escaping(self): - self.assertEqual(xcode.EscapeXcodeDefine('a b"c\\'), 'a\\ b\\"c\\\\') - -if __name__ == '__main__': - unittest.main() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py deleted file mode 100644 index 20178672..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py +++ /dev/null @@ -1,2894 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -from compiler.ast import Const -from compiler.ast import Dict -from compiler.ast import Discard -from compiler.ast import List -from compiler.ast import Module -from compiler.ast import Node -from compiler.ast import Stmt -import compiler -import gyp.common -import gyp.simple_copy -import multiprocessing -import optparse -import os.path -import re -import shlex -import signal -import subprocess -import sys -import threading -import time -import traceback -from gyp.common import GypError -from gyp.common import OrderedSet - - -# A list of types that are treated as linkable. -linkable_types = [ - 'executable', - 'shared_library', - 'loadable_module', - 'mac_kernel_extension', -] - -# A list of sections that contain links to other targets. -dependency_sections = ['dependencies', 'export_dependent_settings'] - -# base_path_sections is a list of sections defined by GYP that contain -# pathnames. The generators can provide more keys, the two lists are merged -# into path_sections, but you should call IsPathSection instead of using either -# list directly. -base_path_sections = [ - 'destination', - 'files', - 'include_dirs', - 'inputs', - 'libraries', - 'outputs', - 'sources', -] -path_sections = set() - -# These per-process dictionaries are used to cache build file data when loading -# in parallel mode. -per_process_data = {} -per_process_aux_data = {} - -def IsPathSection(section): - # If section ends in one of the '=+?!' characters, it's applied to a section - # without the trailing characters. '/' is notably absent from this list, - # because there's no way for a regular expression to be treated as a path. - while section and section[-1:] in '=+?!': - section = section[:-1] - - if section in path_sections: - return True - - # Sections mathing the regexp '_(dir|file|path)s?$' are also - # considered PathSections. Using manual string matching since that - # is much faster than the regexp and this can be called hundreds of - # thousands of times so micro performance matters. - if "_" in section: - tail = section[-6:] - if tail[-1] == 's': - tail = tail[:-1] - if tail[-5:] in ('_file', '_path'): - return True - return tail[-4:] == '_dir' - - return False - -# base_non_configuration_keys is a list of key names that belong in the target -# itself and should not be propagated into its configurations. It is merged -# with a list that can come from the generator to -# create non_configuration_keys. -base_non_configuration_keys = [ - # Sections that must exist inside targets and not configurations. - 'actions', - 'configurations', - 'copies', - 'default_configuration', - 'dependencies', - 'dependencies_original', - 'libraries', - 'postbuilds', - 'product_dir', - 'product_extension', - 'product_name', - 'product_prefix', - 'rules', - 'run_as', - 'sources', - 'standalone_static_library', - 'suppress_wildcard', - 'target_name', - 'toolset', - 'toolsets', - 'type', - - # Sections that can be found inside targets or configurations, but that - # should not be propagated from targets into their configurations. - 'variables', -] -non_configuration_keys = [] - -# Keys that do not belong inside a configuration dictionary. -invalid_configuration_keys = [ - 'actions', - 'all_dependent_settings', - 'configurations', - 'dependencies', - 'direct_dependent_settings', - 'libraries', - 'link_settings', - 'sources', - 'standalone_static_library', - 'target_name', - 'type', -] - -# Controls whether or not the generator supports multiple toolsets. -multiple_toolsets = False - -# Paths for converting filelist paths to output paths: { -# toplevel, -# qualified_output_dir, -# } -generator_filelist_paths = None - -def GetIncludedBuildFiles(build_file_path, aux_data, included=None): - """Return a list of all build files included into build_file_path. - - The returned list will contain build_file_path as well as all other files - that it included, either directly or indirectly. Note that the list may - contain files that were included into a conditional section that evaluated - to false and was not merged into build_file_path's dict. - - aux_data is a dict containing a key for each build file or included build - file. Those keys provide access to dicts whose "included" keys contain - lists of all other files included by the build file. - - included should be left at its default None value by external callers. It - is used for recursion. - - The returned list will not contain any duplicate entries. Each build file - in the list will be relative to the current directory. - """ - - if included == None: - included = [] - - if build_file_path in included: - return included - - included.append(build_file_path) - - for included_build_file in aux_data[build_file_path].get('included', []): - GetIncludedBuildFiles(included_build_file, aux_data, included) - - return included - - -def CheckedEval(file_contents): - """Return the eval of a gyp file. - - The gyp file is restricted to dictionaries and lists only, and - repeated keys are not allowed. - - Note that this is slower than eval() is. - """ - - ast = compiler.parse(file_contents) - assert isinstance(ast, Module) - c1 = ast.getChildren() - assert c1[0] is None - assert isinstance(c1[1], Stmt) - c2 = c1[1].getChildren() - assert isinstance(c2[0], Discard) - c3 = c2[0].getChildren() - assert len(c3) == 1 - return CheckNode(c3[0], []) - - -def CheckNode(node, keypath): - if isinstance(node, Dict): - c = node.getChildren() - dict = {} - for n in range(0, len(c), 2): - assert isinstance(c[n], Const) - key = c[n].getChildren()[0] - if key in dict: - raise GypError("Key '" + key + "' repeated at level " + - repr(len(keypath) + 1) + " with key path '" + - '.'.join(keypath) + "'") - kp = list(keypath) # Make a copy of the list for descending this node. - kp.append(key) - dict[key] = CheckNode(c[n + 1], kp) - return dict - elif isinstance(node, List): - c = node.getChildren() - children = [] - for index, child in enumerate(c): - kp = list(keypath) # Copy list. - kp.append(repr(index)) - children.append(CheckNode(child, kp)) - return children - elif isinstance(node, Const): - return node.getChildren()[0] - else: - raise TypeError("Unknown AST node at key path '" + '.'.join(keypath) + - "': " + repr(node)) - - -def LoadOneBuildFile(build_file_path, data, aux_data, includes, - is_target, check): - if build_file_path in data: - return data[build_file_path] - - if os.path.exists(build_file_path): - build_file_contents = open(build_file_path).read() - else: - raise GypError("%s not found (cwd: %s)" % (build_file_path, os.getcwd())) - - build_file_data = None - try: - if check: - build_file_data = CheckedEval(build_file_contents) - else: - build_file_data = eval(build_file_contents, {'__builtins__': None}, - None) - except SyntaxError, e: - e.filename = build_file_path - raise - except Exception, e: - gyp.common.ExceptionAppend(e, 'while reading ' + build_file_path) - raise - - if type(build_file_data) is not dict: - raise GypError("%s does not evaluate to a dictionary." % build_file_path) - - data[build_file_path] = build_file_data - aux_data[build_file_path] = {} - - # Scan for includes and merge them in. - if ('skip_includes' not in build_file_data or - not build_file_data['skip_includes']): - try: - if is_target: - LoadBuildFileIncludesIntoDict(build_file_data, build_file_path, data, - aux_data, includes, check) - else: - LoadBuildFileIncludesIntoDict(build_file_data, build_file_path, data, - aux_data, None, check) - except Exception, e: - gyp.common.ExceptionAppend(e, - 'while reading includes of ' + build_file_path) - raise - - return build_file_data - - -def LoadBuildFileIncludesIntoDict(subdict, subdict_path, data, aux_data, - includes, check): - includes_list = [] - if includes != None: - includes_list.extend(includes) - if 'includes' in subdict: - for include in subdict['includes']: - # "include" is specified relative to subdict_path, so compute the real - # path to include by appending the provided "include" to the directory - # in which subdict_path resides. - relative_include = \ - os.path.normpath(os.path.join(os.path.dirname(subdict_path), include)) - includes_list.append(relative_include) - # Unhook the includes list, it's no longer needed. - del subdict['includes'] - - # Merge in the included files. - for include in includes_list: - if not 'included' in aux_data[subdict_path]: - aux_data[subdict_path]['included'] = [] - aux_data[subdict_path]['included'].append(include) - - gyp.DebugOutput(gyp.DEBUG_INCLUDES, "Loading Included File: '%s'", include) - - MergeDicts(subdict, - LoadOneBuildFile(include, data, aux_data, None, False, check), - subdict_path, include) - - # Recurse into subdictionaries. - for k, v in subdict.iteritems(): - if type(v) is dict: - LoadBuildFileIncludesIntoDict(v, subdict_path, data, aux_data, - None, check) - elif type(v) is list: - LoadBuildFileIncludesIntoList(v, subdict_path, data, aux_data, - check) - - -# This recurses into lists so that it can look for dicts. -def LoadBuildFileIncludesIntoList(sublist, sublist_path, data, aux_data, check): - for item in sublist: - if type(item) is dict: - LoadBuildFileIncludesIntoDict(item, sublist_path, data, aux_data, - None, check) - elif type(item) is list: - LoadBuildFileIncludesIntoList(item, sublist_path, data, aux_data, check) - -# Processes toolsets in all the targets. This recurses into condition entries -# since they can contain toolsets as well. -def ProcessToolsetsInDict(data): - if 'targets' in data: - target_list = data['targets'] - new_target_list = [] - for target in target_list: - # If this target already has an explicit 'toolset', and no 'toolsets' - # list, don't modify it further. - if 'toolset' in target and 'toolsets' not in target: - new_target_list.append(target) - continue - if multiple_toolsets: - toolsets = target.get('toolsets', ['target']) - else: - toolsets = ['target'] - # Make sure this 'toolsets' definition is only processed once. - if 'toolsets' in target: - del target['toolsets'] - if len(toolsets) > 0: - # Optimization: only do copies if more than one toolset is specified. - for build in toolsets[1:]: - new_target = gyp.simple_copy.deepcopy(target) - new_target['toolset'] = build - new_target_list.append(new_target) - target['toolset'] = toolsets[0] - new_target_list.append(target) - data['targets'] = new_target_list - if 'conditions' in data: - for condition in data['conditions']: - if type(condition) is list: - for condition_dict in condition[1:]: - if type(condition_dict) is dict: - ProcessToolsetsInDict(condition_dict) - - -# TODO(mark): I don't love this name. It just means that it's going to load -# a build file that contains targets and is expected to provide a targets dict -# that contains the targets... -def LoadTargetBuildFile(build_file_path, data, aux_data, variables, includes, - depth, check, load_dependencies): - # If depth is set, predefine the DEPTH variable to be a relative path from - # this build file's directory to the directory identified by depth. - if depth: - # TODO(dglazkov) The backslash/forward-slash replacement at the end is a - # temporary measure. This should really be addressed by keeping all paths - # in POSIX until actual project generation. - d = gyp.common.RelativePath(depth, os.path.dirname(build_file_path)) - if d == '': - variables['DEPTH'] = '.' - else: - variables['DEPTH'] = d.replace('\\', '/') - - # The 'target_build_files' key is only set when loading target build files in - # the non-parallel code path, where LoadTargetBuildFile is called - # recursively. In the parallel code path, we don't need to check whether the - # |build_file_path| has already been loaded, because the 'scheduled' set in - # ParallelState guarantees that we never load the same |build_file_path| - # twice. - if 'target_build_files' in data: - if build_file_path in data['target_build_files']: - # Already loaded. - return False - data['target_build_files'].add(build_file_path) - - gyp.DebugOutput(gyp.DEBUG_INCLUDES, - "Loading Target Build File '%s'", build_file_path) - - build_file_data = LoadOneBuildFile(build_file_path, data, aux_data, - includes, True, check) - - # Store DEPTH for later use in generators. - build_file_data['_DEPTH'] = depth - - # Set up the included_files key indicating which .gyp files contributed to - # this target dict. - if 'included_files' in build_file_data: - raise GypError(build_file_path + ' must not contain included_files key') - - included = GetIncludedBuildFiles(build_file_path, aux_data) - build_file_data['included_files'] = [] - for included_file in included: - # included_file is relative to the current directory, but it needs to - # be made relative to build_file_path's directory. - included_relative = \ - gyp.common.RelativePath(included_file, - os.path.dirname(build_file_path)) - build_file_data['included_files'].append(included_relative) - - # Do a first round of toolsets expansion so that conditions can be defined - # per toolset. - ProcessToolsetsInDict(build_file_data) - - # Apply "pre"/"early" variable expansions and condition evaluations. - ProcessVariablesAndConditionsInDict( - build_file_data, PHASE_EARLY, variables, build_file_path) - - # Since some toolsets might have been defined conditionally, perform - # a second round of toolsets expansion now. - ProcessToolsetsInDict(build_file_data) - - # Look at each project's target_defaults dict, and merge settings into - # targets. - if 'target_defaults' in build_file_data: - if 'targets' not in build_file_data: - raise GypError("Unable to find targets in build file %s" % - build_file_path) - - index = 0 - while index < len(build_file_data['targets']): - # This procedure needs to give the impression that target_defaults is - # used as defaults, and the individual targets inherit from that. - # The individual targets need to be merged into the defaults. Make - # a deep copy of the defaults for each target, merge the target dict - # as found in the input file into that copy, and then hook up the - # copy with the target-specific data merged into it as the replacement - # target dict. - old_target_dict = build_file_data['targets'][index] - new_target_dict = gyp.simple_copy.deepcopy( - build_file_data['target_defaults']) - MergeDicts(new_target_dict, old_target_dict, - build_file_path, build_file_path) - build_file_data['targets'][index] = new_target_dict - index += 1 - - # No longer needed. - del build_file_data['target_defaults'] - - # Look for dependencies. This means that dependency resolution occurs - # after "pre" conditionals and variable expansion, but before "post" - - # in other words, you can't put a "dependencies" section inside a "post" - # conditional within a target. - - dependencies = [] - if 'targets' in build_file_data: - for target_dict in build_file_data['targets']: - if 'dependencies' not in target_dict: - continue - for dependency in target_dict['dependencies']: - dependencies.append( - gyp.common.ResolveTarget(build_file_path, dependency, None)[0]) - - if load_dependencies: - for dependency in dependencies: - try: - LoadTargetBuildFile(dependency, data, aux_data, variables, - includes, depth, check, load_dependencies) - except Exception, e: - gyp.common.ExceptionAppend( - e, 'while loading dependencies of %s' % build_file_path) - raise - else: - return (build_file_path, dependencies) - -def CallLoadTargetBuildFile(global_flags, - build_file_path, variables, - includes, depth, check, - generator_input_info): - """Wrapper around LoadTargetBuildFile for parallel processing. - - This wrapper is used when LoadTargetBuildFile is executed in - a worker process. - """ - - try: - signal.signal(signal.SIGINT, signal.SIG_IGN) - - # Apply globals so that the worker process behaves the same. - for key, value in global_flags.iteritems(): - globals()[key] = value - - SetGeneratorGlobals(generator_input_info) - result = LoadTargetBuildFile(build_file_path, per_process_data, - per_process_aux_data, variables, - includes, depth, check, False) - if not result: - return result - - (build_file_path, dependencies) = result - - # We can safely pop the build_file_data from per_process_data because it - # will never be referenced by this process again, so we don't need to keep - # it in the cache. - build_file_data = per_process_data.pop(build_file_path) - - # This gets serialized and sent back to the main process via a pipe. - # It's handled in LoadTargetBuildFileCallback. - return (build_file_path, - build_file_data, - dependencies) - except GypError, e: - sys.stderr.write("gyp: %s\n" % e) - return None - except Exception, e: - print >>sys.stderr, 'Exception:', e - print >>sys.stderr, traceback.format_exc() - return None - - -class ParallelProcessingError(Exception): - pass - - -class ParallelState(object): - """Class to keep track of state when processing input files in parallel. - - If build files are loaded in parallel, use this to keep track of - state during farming out and processing parallel jobs. It's stored - in a global so that the callback function can have access to it. - """ - - def __init__(self): - # The multiprocessing pool. - self.pool = None - # The condition variable used to protect this object and notify - # the main loop when there might be more data to process. - self.condition = None - # The "data" dict that was passed to LoadTargetBuildFileParallel - self.data = None - # The number of parallel calls outstanding; decremented when a response - # was received. - self.pending = 0 - # The set of all build files that have been scheduled, so we don't - # schedule the same one twice. - self.scheduled = set() - # A list of dependency build file paths that haven't been scheduled yet. - self.dependencies = [] - # Flag to indicate if there was an error in a child process. - self.error = False - - def LoadTargetBuildFileCallback(self, result): - """Handle the results of running LoadTargetBuildFile in another process. - """ - self.condition.acquire() - if not result: - self.error = True - self.condition.notify() - self.condition.release() - return - (build_file_path0, build_file_data0, dependencies0) = result - self.data[build_file_path0] = build_file_data0 - self.data['target_build_files'].add(build_file_path0) - for new_dependency in dependencies0: - if new_dependency not in self.scheduled: - self.scheduled.add(new_dependency) - self.dependencies.append(new_dependency) - self.pending -= 1 - self.condition.notify() - self.condition.release() - - -def LoadTargetBuildFilesParallel(build_files, data, variables, includes, depth, - check, generator_input_info): - parallel_state = ParallelState() - parallel_state.condition = threading.Condition() - # Make copies of the build_files argument that we can modify while working. - parallel_state.dependencies = list(build_files) - parallel_state.scheduled = set(build_files) - parallel_state.pending = 0 - parallel_state.data = data - - try: - parallel_state.condition.acquire() - while parallel_state.dependencies or parallel_state.pending: - if parallel_state.error: - break - if not parallel_state.dependencies: - parallel_state.condition.wait() - continue - - dependency = parallel_state.dependencies.pop() - - parallel_state.pending += 1 - global_flags = { - 'path_sections': globals()['path_sections'], - 'non_configuration_keys': globals()['non_configuration_keys'], - 'multiple_toolsets': globals()['multiple_toolsets']} - - if not parallel_state.pool: - parallel_state.pool = multiprocessing.Pool(multiprocessing.cpu_count()) - parallel_state.pool.apply_async( - CallLoadTargetBuildFile, - args = (global_flags, dependency, - variables, includes, depth, check, generator_input_info), - callback = parallel_state.LoadTargetBuildFileCallback) - except KeyboardInterrupt, e: - parallel_state.pool.terminate() - raise e - - parallel_state.condition.release() - - parallel_state.pool.close() - parallel_state.pool.join() - parallel_state.pool = None - - if parallel_state.error: - sys.exit(1) - -# Look for the bracket that matches the first bracket seen in a -# string, and return the start and end as a tuple. For example, if -# the input is something like "<(foo <(bar)) blah", then it would -# return (1, 13), indicating the entire string except for the leading -# "<" and trailing " blah". -LBRACKETS= set('{[(') -BRACKETS = {'}': '{', ']': '[', ')': '('} -def FindEnclosingBracketGroup(input_str): - stack = [] - start = -1 - for index, char in enumerate(input_str): - if char in LBRACKETS: - stack.append(char) - if start == -1: - start = index - elif char in BRACKETS: - if not stack: - return (-1, -1) - if stack.pop() != BRACKETS[char]: - return (-1, -1) - if not stack: - return (start, index + 1) - return (-1, -1) - - -def IsStrCanonicalInt(string): - """Returns True if |string| is in its canonical integer form. - - The canonical form is such that str(int(string)) == string. - """ - if type(string) is str: - # This function is called a lot so for maximum performance, avoid - # involving regexps which would otherwise make the code much - # shorter. Regexps would need twice the time of this function. - if string: - if string == "0": - return True - if string[0] == "-": - string = string[1:] - if not string: - return False - if '1' <= string[0] <= '9': - return string.isdigit() - - return False - - -# This matches things like "<(asdf)", "(?P<(?:(?:!?@?)|\|)?)' - r'(?P[-a-zA-Z0-9_.]+)?' - r'\((?P\s*\[?)' - r'(?P.*?)(\]?)\))') - -# This matches the same as early_variable_re, but with '>' instead of '<'. -late_variable_re = re.compile( - r'(?P(?P>(?:(?:!?@?)|\|)?)' - r'(?P[-a-zA-Z0-9_.]+)?' - r'\((?P\s*\[?)' - r'(?P.*?)(\]?)\))') - -# This matches the same as early_variable_re, but with '^' instead of '<'. -latelate_variable_re = re.compile( - r'(?P(?P[\^](?:(?:!?@?)|\|)?)' - r'(?P[-a-zA-Z0-9_.]+)?' - r'\((?P\s*\[?)' - r'(?P.*?)(\]?)\))') - -# Global cache of results from running commands so they don't have to be run -# more then once. -cached_command_results = {} - - -def FixupPlatformCommand(cmd): - if sys.platform == 'win32': - if type(cmd) is list: - cmd = [re.sub('^cat ', 'type ', cmd[0])] + cmd[1:] - else: - cmd = re.sub('^cat ', 'type ', cmd) - return cmd - - -PHASE_EARLY = 0 -PHASE_LATE = 1 -PHASE_LATELATE = 2 - - -def ExpandVariables(input, phase, variables, build_file): - # Look for the pattern that gets expanded into variables - if phase == PHASE_EARLY: - variable_re = early_variable_re - expansion_symbol = '<' - elif phase == PHASE_LATE: - variable_re = late_variable_re - expansion_symbol = '>' - elif phase == PHASE_LATELATE: - variable_re = latelate_variable_re - expansion_symbol = '^' - else: - assert False - - input_str = str(input) - if IsStrCanonicalInt(input_str): - return int(input_str) - - # Do a quick scan to determine if an expensive regex search is warranted. - if expansion_symbol not in input_str: - return input_str - - # Get the entire list of matches as a list of MatchObject instances. - # (using findall here would return strings instead of MatchObjects). - matches = list(variable_re.finditer(input_str)) - if not matches: - return input_str - - output = input_str - # Reverse the list of matches so that replacements are done right-to-left. - # That ensures that earlier replacements won't mess up the string in a - # way that causes later calls to find the earlier substituted text instead - # of what's intended for replacement. - matches.reverse() - for match_group in matches: - match = match_group.groupdict() - gyp.DebugOutput(gyp.DEBUG_VARIABLES, "Matches: %r", match) - # match['replace'] is the substring to look for, match['type'] - # is the character code for the replacement type (< > ! <| >| <@ - # >@ !@), match['is_array'] contains a '[' for command - # arrays, and match['content'] is the name of the variable (< >) - # or command to run (!). match['command_string'] is an optional - # command string. Currently, only 'pymod_do_main' is supported. - - # run_command is true if a ! variant is used. - run_command = '!' in match['type'] - command_string = match['command_string'] - - # file_list is true if a | variant is used. - file_list = '|' in match['type'] - - # Capture these now so we can adjust them later. - replace_start = match_group.start('replace') - replace_end = match_group.end('replace') - - # Find the ending paren, and re-evaluate the contained string. - (c_start, c_end) = FindEnclosingBracketGroup(input_str[replace_start:]) - - # Adjust the replacement range to match the entire command - # found by FindEnclosingBracketGroup (since the variable_re - # probably doesn't match the entire command if it contained - # nested variables). - replace_end = replace_start + c_end - - # Find the "real" replacement, matching the appropriate closing - # paren, and adjust the replacement start and end. - replacement = input_str[replace_start:replace_end] - - # Figure out what the contents of the variable parens are. - contents_start = replace_start + c_start + 1 - contents_end = replace_end - 1 - contents = input_str[contents_start:contents_end] - - # Do filter substitution now for <|(). - # Admittedly, this is different than the evaluation order in other - # contexts. However, since filtration has no chance to run on <|(), - # this seems like the only obvious way to give them access to filters. - if file_list: - processed_variables = gyp.simple_copy.deepcopy(variables) - ProcessListFiltersInDict(contents, processed_variables) - # Recurse to expand variables in the contents - contents = ExpandVariables(contents, phase, - processed_variables, build_file) - else: - # Recurse to expand variables in the contents - contents = ExpandVariables(contents, phase, variables, build_file) - - # Strip off leading/trailing whitespace so that variable matches are - # simpler below (and because they are rarely needed). - contents = contents.strip() - - # expand_to_list is true if an @ variant is used. In that case, - # the expansion should result in a list. Note that the caller - # is to be expecting a list in return, and not all callers do - # because not all are working in list context. Also, for list - # expansions, there can be no other text besides the variable - # expansion in the input string. - expand_to_list = '@' in match['type'] and input_str == replacement - - if run_command or file_list: - # Find the build file's directory, so commands can be run or file lists - # generated relative to it. - build_file_dir = os.path.dirname(build_file) - if build_file_dir == '' and not file_list: - # If build_file is just a leaf filename indicating a file in the - # current directory, build_file_dir might be an empty string. Set - # it to None to signal to subprocess.Popen that it should run the - # command in the current directory. - build_file_dir = None - - # Support <|(listfile.txt ...) which generates a file - # containing items from a gyp list, generated at gyp time. - # This works around actions/rules which have more inputs than will - # fit on the command line. - if file_list: - if type(contents) is list: - contents_list = contents - else: - contents_list = contents.split(' ') - replacement = contents_list[0] - if os.path.isabs(replacement): - raise GypError('| cannot handle absolute paths, got "%s"' % replacement) - - if not generator_filelist_paths: - path = os.path.join(build_file_dir, replacement) - else: - if os.path.isabs(build_file_dir): - toplevel = generator_filelist_paths['toplevel'] - rel_build_file_dir = gyp.common.RelativePath(build_file_dir, toplevel) - else: - rel_build_file_dir = build_file_dir - qualified_out_dir = generator_filelist_paths['qualified_out_dir'] - path = os.path.join(qualified_out_dir, rel_build_file_dir, replacement) - gyp.common.EnsureDirExists(path) - - replacement = gyp.common.RelativePath(path, build_file_dir) - f = gyp.common.WriteOnDiff(path) - for i in contents_list[1:]: - f.write('%s\n' % i) - f.close() - - elif run_command: - use_shell = True - if match['is_array']: - contents = eval(contents) - use_shell = False - - # Check for a cached value to avoid executing commands, or generating - # file lists more than once. The cache key contains the command to be - # run as well as the directory to run it from, to account for commands - # that depend on their current directory. - # TODO(http://code.google.com/p/gyp/issues/detail?id=111): In theory, - # someone could author a set of GYP files where each time the command - # is invoked it produces different output by design. When the need - # arises, the syntax should be extended to support no caching off a - # command's output so it is run every time. - cache_key = (str(contents), build_file_dir) - cached_value = cached_command_results.get(cache_key, None) - if cached_value is None: - gyp.DebugOutput(gyp.DEBUG_VARIABLES, - "Executing command '%s' in directory '%s'", - contents, build_file_dir) - - replacement = '' - - if command_string == 'pymod_do_main': - # (sources/) etc. to resolve to - # and empty list if undefined. This allows actions to: - # 'action!': [ - # '>@(_sources!)', - # ], - # 'action/': [ - # '>@(_sources/)', - # ], - replacement = [] - else: - raise GypError('Undefined variable ' + contents + - ' in ' + build_file) - else: - replacement = variables[contents] - - if type(replacement) is list: - for item in replacement: - if not contents[-1] == '/' and type(item) not in (str, int): - raise GypError('Variable ' + contents + - ' must expand to a string or list of strings; ' + - 'list contains a ' + - item.__class__.__name__) - # Run through the list and handle variable expansions in it. Since - # the list is guaranteed not to contain dicts, this won't do anything - # with conditions sections. - ProcessVariablesAndConditionsInList(replacement, phase, variables, - build_file) - elif type(replacement) not in (str, int): - raise GypError('Variable ' + contents + - ' must expand to a string or list of strings; ' + - 'found a ' + replacement.__class__.__name__) - - if expand_to_list: - # Expanding in list context. It's guaranteed that there's only one - # replacement to do in |input_str| and that it's this replacement. See - # above. - if type(replacement) is list: - # If it's already a list, make a copy. - output = replacement[:] - else: - # Split it the same way sh would split arguments. - output = shlex.split(str(replacement)) - else: - # Expanding in string context. - encoded_replacement = '' - if type(replacement) is list: - # When expanding a list into string context, turn the list items - # into a string in a way that will work with a subprocess call. - # - # TODO(mark): This isn't completely correct. This should - # call a generator-provided function that observes the - # proper list-to-argument quoting rules on a specific - # platform instead of just calling the POSIX encoding - # routine. - encoded_replacement = gyp.common.EncodePOSIXShellList(replacement) - else: - encoded_replacement = replacement - - output = output[:replace_start] + str(encoded_replacement) + \ - output[replace_end:] - # Prepare for the next match iteration. - input_str = output - - if output == input: - gyp.DebugOutput(gyp.DEBUG_VARIABLES, - "Found only identity matches on %r, avoiding infinite " - "recursion.", - output) - else: - # Look for more matches now that we've replaced some, to deal with - # expanding local variables (variables defined in the same - # variables block as this one). - gyp.DebugOutput(gyp.DEBUG_VARIABLES, "Found output %r, recursing.", output) - if type(output) is list: - if output and type(output[0]) is list: - # Leave output alone if it's a list of lists. - # We don't want such lists to be stringified. - pass - else: - new_output = [] - for item in output: - new_output.append( - ExpandVariables(item, phase, variables, build_file)) - output = new_output - else: - output = ExpandVariables(output, phase, variables, build_file) - - # Convert all strings that are canonically-represented integers into integers. - if type(output) is list: - for index in xrange(0, len(output)): - if IsStrCanonicalInt(output[index]): - output[index] = int(output[index]) - elif IsStrCanonicalInt(output): - output = int(output) - - return output - -# The same condition is often evaluated over and over again so it -# makes sense to cache as much as possible between evaluations. -cached_conditions_asts = {} - -def EvalCondition(condition, conditions_key, phase, variables, build_file): - """Returns the dict that should be used or None if the result was - that nothing should be used.""" - if type(condition) is not list: - raise GypError(conditions_key + ' must be a list') - if len(condition) < 2: - # It's possible that condition[0] won't work in which case this - # attempt will raise its own IndexError. That's probably fine. - raise GypError(conditions_key + ' ' + condition[0] + - ' must be at least length 2, not ' + str(len(condition))) - - i = 0 - result = None - while i < len(condition): - cond_expr = condition[i] - true_dict = condition[i + 1] - if type(true_dict) is not dict: - raise GypError('{} {} must be followed by a dictionary, not {}'.format( - conditions_key, cond_expr, type(true_dict))) - if len(condition) > i + 2 and type(condition[i + 2]) is dict: - false_dict = condition[i + 2] - i = i + 3 - if i != len(condition): - raise GypError('{} {} has {} unexpected trailing items'.format( - conditions_key, cond_expr, len(condition) - i)) - else: - false_dict = None - i = i + 2 - if result == None: - result = EvalSingleCondition( - cond_expr, true_dict, false_dict, phase, variables, build_file) - - return result - - -def EvalSingleCondition( - cond_expr, true_dict, false_dict, phase, variables, build_file): - """Returns true_dict if cond_expr evaluates to true, and false_dict - otherwise.""" - # Do expansions on the condition itself. Since the conditon can naturally - # contain variable references without needing to resort to GYP expansion - # syntax, this is of dubious value for variables, but someone might want to - # use a command expansion directly inside a condition. - cond_expr_expanded = ExpandVariables(cond_expr, phase, variables, - build_file) - if type(cond_expr_expanded) not in (str, int): - raise ValueError( - 'Variable expansion in this context permits str and int ' + \ - 'only, found ' + cond_expr_expanded.__class__.__name__) - - try: - if cond_expr_expanded in cached_conditions_asts: - ast_code = cached_conditions_asts[cond_expr_expanded] - else: - ast_code = compile(cond_expr_expanded, '', 'eval') - cached_conditions_asts[cond_expr_expanded] = ast_code - if eval(ast_code, {'__builtins__': None}, variables): - return true_dict - return false_dict - except SyntaxError, e: - syntax_error = SyntaxError('%s while evaluating condition \'%s\' in %s ' - 'at character %d.' % - (str(e.args[0]), e.text, build_file, e.offset), - e.filename, e.lineno, e.offset, e.text) - raise syntax_error - except NameError, e: - gyp.common.ExceptionAppend(e, 'while evaluating condition \'%s\' in %s' % - (cond_expr_expanded, build_file)) - raise GypError(e) - - -def ProcessConditionsInDict(the_dict, phase, variables, build_file): - # Process a 'conditions' or 'target_conditions' section in the_dict, - # depending on phase. - # early -> conditions - # late -> target_conditions - # latelate -> no conditions - # - # Each item in a conditions list consists of cond_expr, a string expression - # evaluated as the condition, and true_dict, a dict that will be merged into - # the_dict if cond_expr evaluates to true. Optionally, a third item, - # false_dict, may be present. false_dict is merged into the_dict if - # cond_expr evaluates to false. - # - # Any dict merged into the_dict will be recursively processed for nested - # conditionals and other expansions, also according to phase, immediately - # prior to being merged. - - if phase == PHASE_EARLY: - conditions_key = 'conditions' - elif phase == PHASE_LATE: - conditions_key = 'target_conditions' - elif phase == PHASE_LATELATE: - return - else: - assert False - - if not conditions_key in the_dict: - return - - conditions_list = the_dict[conditions_key] - # Unhook the conditions list, it's no longer needed. - del the_dict[conditions_key] - - for condition in conditions_list: - merge_dict = EvalCondition(condition, conditions_key, phase, variables, - build_file) - - if merge_dict != None: - # Expand variables and nested conditinals in the merge_dict before - # merging it. - ProcessVariablesAndConditionsInDict(merge_dict, phase, - variables, build_file) - - MergeDicts(the_dict, merge_dict, build_file, build_file) - - -def LoadAutomaticVariablesFromDict(variables, the_dict): - # Any keys with plain string values in the_dict become automatic variables. - # The variable name is the key name with a "_" character prepended. - for key, value in the_dict.iteritems(): - if type(value) in (str, int, list): - variables['_' + key] = value - - -def LoadVariablesFromVariablesDict(variables, the_dict, the_dict_key): - # Any keys in the_dict's "variables" dict, if it has one, becomes a - # variable. The variable name is the key name in the "variables" dict. - # Variables that end with the % character are set only if they are unset in - # the variables dict. the_dict_key is the name of the key that accesses - # the_dict in the_dict's parent dict. If the_dict's parent is not a dict - # (it could be a list or it could be parentless because it is a root dict), - # the_dict_key will be None. - for key, value in the_dict.get('variables', {}).iteritems(): - if type(value) not in (str, int, list): - continue - - if key.endswith('%'): - variable_name = key[:-1] - if variable_name in variables: - # If the variable is already set, don't set it. - continue - if the_dict_key is 'variables' and variable_name in the_dict: - # If the variable is set without a % in the_dict, and the_dict is a - # variables dict (making |variables| a varaibles sub-dict of a - # variables dict), use the_dict's definition. - value = the_dict[variable_name] - else: - variable_name = key - - variables[variable_name] = value - - -def ProcessVariablesAndConditionsInDict(the_dict, phase, variables_in, - build_file, the_dict_key=None): - """Handle all variable and command expansion and conditional evaluation. - - This function is the public entry point for all variable expansions and - conditional evaluations. The variables_in dictionary will not be modified - by this function. - """ - - # Make a copy of the variables_in dict that can be modified during the - # loading of automatics and the loading of the variables dict. - variables = variables_in.copy() - LoadAutomaticVariablesFromDict(variables, the_dict) - - if 'variables' in the_dict: - # Make sure all the local variables are added to the variables - # list before we process them so that you can reference one - # variable from another. They will be fully expanded by recursion - # in ExpandVariables. - for key, value in the_dict['variables'].iteritems(): - variables[key] = value - - # Handle the associated variables dict first, so that any variable - # references within can be resolved prior to using them as variables. - # Pass a copy of the variables dict to avoid having it be tainted. - # Otherwise, it would have extra automatics added for everything that - # should just be an ordinary variable in this scope. - ProcessVariablesAndConditionsInDict(the_dict['variables'], phase, - variables, build_file, 'variables') - - LoadVariablesFromVariablesDict(variables, the_dict, the_dict_key) - - for key, value in the_dict.iteritems(): - # Skip "variables", which was already processed if present. - if key != 'variables' and type(value) is str: - expanded = ExpandVariables(value, phase, variables, build_file) - if type(expanded) not in (str, int): - raise ValueError( - 'Variable expansion in this context permits str and int ' + \ - 'only, found ' + expanded.__class__.__name__ + ' for ' + key) - the_dict[key] = expanded - - # Variable expansion may have resulted in changes to automatics. Reload. - # TODO(mark): Optimization: only reload if no changes were made. - variables = variables_in.copy() - LoadAutomaticVariablesFromDict(variables, the_dict) - LoadVariablesFromVariablesDict(variables, the_dict, the_dict_key) - - # Process conditions in this dict. This is done after variable expansion - # so that conditions may take advantage of expanded variables. For example, - # if the_dict contains: - # {'type': '<(library_type)', - # 'conditions': [['_type=="static_library"', { ... }]]}, - # _type, as used in the condition, will only be set to the value of - # library_type if variable expansion is performed before condition - # processing. However, condition processing should occur prior to recursion - # so that variables (both automatic and "variables" dict type) may be - # adjusted by conditions sections, merged into the_dict, and have the - # intended impact on contained dicts. - # - # This arrangement means that a "conditions" section containing a "variables" - # section will only have those variables effective in subdicts, not in - # the_dict. The workaround is to put a "conditions" section within a - # "variables" section. For example: - # {'conditions': [['os=="mac"', {'variables': {'define': 'IS_MAC'}}]], - # 'defines': ['<(define)'], - # 'my_subdict': {'defines': ['<(define)']}}, - # will not result in "IS_MAC" being appended to the "defines" list in the - # current scope but would result in it being appended to the "defines" list - # within "my_subdict". By comparison: - # {'variables': {'conditions': [['os=="mac"', {'define': 'IS_MAC'}]]}, - # 'defines': ['<(define)'], - # 'my_subdict': {'defines': ['<(define)']}}, - # will append "IS_MAC" to both "defines" lists. - - # Evaluate conditions sections, allowing variable expansions within them - # as well as nested conditionals. This will process a 'conditions' or - # 'target_conditions' section, perform appropriate merging and recursive - # conditional and variable processing, and then remove the conditions section - # from the_dict if it is present. - ProcessConditionsInDict(the_dict, phase, variables, build_file) - - # Conditional processing may have resulted in changes to automatics or the - # variables dict. Reload. - variables = variables_in.copy() - LoadAutomaticVariablesFromDict(variables, the_dict) - LoadVariablesFromVariablesDict(variables, the_dict, the_dict_key) - - # Recurse into child dicts, or process child lists which may result in - # further recursion into descendant dicts. - for key, value in the_dict.iteritems(): - # Skip "variables" and string values, which were already processed if - # present. - if key == 'variables' or type(value) is str: - continue - if type(value) is dict: - # Pass a copy of the variables dict so that subdicts can't influence - # parents. - ProcessVariablesAndConditionsInDict(value, phase, variables, - build_file, key) - elif type(value) is list: - # The list itself can't influence the variables dict, and - # ProcessVariablesAndConditionsInList will make copies of the variables - # dict if it needs to pass it to something that can influence it. No - # copy is necessary here. - ProcessVariablesAndConditionsInList(value, phase, variables, - build_file) - elif type(value) is not int: - raise TypeError('Unknown type ' + value.__class__.__name__ + \ - ' for ' + key) - - -def ProcessVariablesAndConditionsInList(the_list, phase, variables, - build_file): - # Iterate using an index so that new values can be assigned into the_list. - index = 0 - while index < len(the_list): - item = the_list[index] - if type(item) is dict: - # Make a copy of the variables dict so that it won't influence anything - # outside of its own scope. - ProcessVariablesAndConditionsInDict(item, phase, variables, build_file) - elif type(item) is list: - ProcessVariablesAndConditionsInList(item, phase, variables, build_file) - elif type(item) is str: - expanded = ExpandVariables(item, phase, variables, build_file) - if type(expanded) in (str, int): - the_list[index] = expanded - elif type(expanded) is list: - the_list[index:index+1] = expanded - index += len(expanded) - - # index now identifies the next item to examine. Continue right now - # without falling into the index increment below. - continue - else: - raise ValueError( - 'Variable expansion in this context permits strings and ' + \ - 'lists only, found ' + expanded.__class__.__name__ + ' at ' + \ - index) - elif type(item) is not int: - raise TypeError('Unknown type ' + item.__class__.__name__ + \ - ' at index ' + index) - index = index + 1 - - -def BuildTargetsDict(data): - """Builds a dict mapping fully-qualified target names to their target dicts. - - |data| is a dict mapping loaded build files by pathname relative to the - current directory. Values in |data| are build file contents. For each - |data| value with a "targets" key, the value of the "targets" key is taken - as a list containing target dicts. Each target's fully-qualified name is - constructed from the pathname of the build file (|data| key) and its - "target_name" property. These fully-qualified names are used as the keys - in the returned dict. These keys provide access to the target dicts, - the dicts in the "targets" lists. - """ - - targets = {} - for build_file in data['target_build_files']: - for target in data[build_file].get('targets', []): - target_name = gyp.common.QualifiedTarget(build_file, - target['target_name'], - target['toolset']) - if target_name in targets: - raise GypError('Duplicate target definitions for ' + target_name) - targets[target_name] = target - - return targets - - -def QualifyDependencies(targets): - """Make dependency links fully-qualified relative to the current directory. - - |targets| is a dict mapping fully-qualified target names to their target - dicts. For each target in this dict, keys known to contain dependency - links are examined, and any dependencies referenced will be rewritten - so that they are fully-qualified and relative to the current directory. - All rewritten dependencies are suitable for use as keys to |targets| or a - similar dict. - """ - - all_dependency_sections = [dep + op - for dep in dependency_sections - for op in ('', '!', '/')] - - for target, target_dict in targets.iteritems(): - target_build_file = gyp.common.BuildFile(target) - toolset = target_dict['toolset'] - for dependency_key in all_dependency_sections: - dependencies = target_dict.get(dependency_key, []) - for index in xrange(0, len(dependencies)): - dep_file, dep_target, dep_toolset = gyp.common.ResolveTarget( - target_build_file, dependencies[index], toolset) - if not multiple_toolsets: - # Ignore toolset specification in the dependency if it is specified. - dep_toolset = toolset - dependency = gyp.common.QualifiedTarget(dep_file, - dep_target, - dep_toolset) - dependencies[index] = dependency - - # Make sure anything appearing in a list other than "dependencies" also - # appears in the "dependencies" list. - if dependency_key != 'dependencies' and \ - dependency not in target_dict['dependencies']: - raise GypError('Found ' + dependency + ' in ' + dependency_key + - ' of ' + target + ', but not in dependencies') - - -def ExpandWildcardDependencies(targets, data): - """Expands dependencies specified as build_file:*. - - For each target in |targets|, examines sections containing links to other - targets. If any such section contains a link of the form build_file:*, it - is taken as a wildcard link, and is expanded to list each target in - build_file. The |data| dict provides access to build file dicts. - - Any target that does not wish to be included by wildcard can provide an - optional "suppress_wildcard" key in its target dict. When present and - true, a wildcard dependency link will not include such targets. - - All dependency names, including the keys to |targets| and the values in each - dependency list, must be qualified when this function is called. - """ - - for target, target_dict in targets.iteritems(): - toolset = target_dict['toolset'] - target_build_file = gyp.common.BuildFile(target) - for dependency_key in dependency_sections: - dependencies = target_dict.get(dependency_key, []) - - # Loop this way instead of "for dependency in" or "for index in xrange" - # because the dependencies list will be modified within the loop body. - index = 0 - while index < len(dependencies): - (dependency_build_file, dependency_target, dependency_toolset) = \ - gyp.common.ParseQualifiedTarget(dependencies[index]) - if dependency_target != '*' and dependency_toolset != '*': - # Not a wildcard. Keep it moving. - index = index + 1 - continue - - if dependency_build_file == target_build_file: - # It's an error for a target to depend on all other targets in - # the same file, because a target cannot depend on itself. - raise GypError('Found wildcard in ' + dependency_key + ' of ' + - target + ' referring to same build file') - - # Take the wildcard out and adjust the index so that the next - # dependency in the list will be processed the next time through the - # loop. - del dependencies[index] - index = index - 1 - - # Loop through the targets in the other build file, adding them to - # this target's list of dependencies in place of the removed - # wildcard. - dependency_target_dicts = data[dependency_build_file]['targets'] - for dependency_target_dict in dependency_target_dicts: - if int(dependency_target_dict.get('suppress_wildcard', False)): - continue - dependency_target_name = dependency_target_dict['target_name'] - if (dependency_target != '*' and - dependency_target != dependency_target_name): - continue - dependency_target_toolset = dependency_target_dict['toolset'] - if (dependency_toolset != '*' and - dependency_toolset != dependency_target_toolset): - continue - dependency = gyp.common.QualifiedTarget(dependency_build_file, - dependency_target_name, - dependency_target_toolset) - index = index + 1 - dependencies.insert(index, dependency) - - index = index + 1 - - -def Unify(l): - """Removes duplicate elements from l, keeping the first element.""" - seen = {} - return [seen.setdefault(e, e) for e in l if e not in seen] - - -def RemoveDuplicateDependencies(targets): - """Makes sure every dependency appears only once in all targets's dependency - lists.""" - for target_name, target_dict in targets.iteritems(): - for dependency_key in dependency_sections: - dependencies = target_dict.get(dependency_key, []) - if dependencies: - target_dict[dependency_key] = Unify(dependencies) - - -def Filter(l, item): - """Removes item from l.""" - res = {} - return [res.setdefault(e, e) for e in l if e != item] - - -def RemoveSelfDependencies(targets): - """Remove self dependencies from targets that have the prune_self_dependency - variable set.""" - for target_name, target_dict in targets.iteritems(): - for dependency_key in dependency_sections: - dependencies = target_dict.get(dependency_key, []) - if dependencies: - for t in dependencies: - if t == target_name: - if targets[t].get('variables', {}).get('prune_self_dependency', 0): - target_dict[dependency_key] = Filter(dependencies, target_name) - - -def RemoveLinkDependenciesFromNoneTargets(targets): - """Remove dependencies having the 'link_dependency' attribute from the 'none' - targets.""" - for target_name, target_dict in targets.iteritems(): - for dependency_key in dependency_sections: - dependencies = target_dict.get(dependency_key, []) - if dependencies: - for t in dependencies: - if target_dict.get('type', None) == 'none': - if targets[t].get('variables', {}).get('link_dependency', 0): - target_dict[dependency_key] = \ - Filter(target_dict[dependency_key], t) - - -class DependencyGraphNode(object): - """ - - Attributes: - ref: A reference to an object that this DependencyGraphNode represents. - dependencies: List of DependencyGraphNodes on which this one depends. - dependents: List of DependencyGraphNodes that depend on this one. - """ - - class CircularException(GypError): - pass - - def __init__(self, ref): - self.ref = ref - self.dependencies = [] - self.dependents = [] - - def __repr__(self): - return '' % self.ref - - def FlattenToList(self): - # flat_list is the sorted list of dependencies - actually, the list items - # are the "ref" attributes of DependencyGraphNodes. Every target will - # appear in flat_list after all of its dependencies, and before all of its - # dependents. - flat_list = OrderedSet() - - # in_degree_zeros is the list of DependencyGraphNodes that have no - # dependencies not in flat_list. Initially, it is a copy of the children - # of this node, because when the graph was built, nodes with no - # dependencies were made implicit dependents of the root node. - in_degree_zeros = set(self.dependents[:]) - - while in_degree_zeros: - # Nodes in in_degree_zeros have no dependencies not in flat_list, so they - # can be appended to flat_list. Take these nodes out of in_degree_zeros - # as work progresses, so that the next node to process from the list can - # always be accessed at a consistent position. - node = in_degree_zeros.pop() - flat_list.add(node.ref) - - # Look at dependents of the node just added to flat_list. Some of them - # may now belong in in_degree_zeros. - for node_dependent in node.dependents: - is_in_degree_zero = True - # TODO: We want to check through the - # node_dependent.dependencies list but if it's long and we - # always start at the beginning, then we get O(n^2) behaviour. - for node_dependent_dependency in node_dependent.dependencies: - if not node_dependent_dependency.ref in flat_list: - # The dependent one or more dependencies not in flat_list. There - # will be more chances to add it to flat_list when examining - # it again as a dependent of those other dependencies, provided - # that there are no cycles. - is_in_degree_zero = False - break - - if is_in_degree_zero: - # All of the dependent's dependencies are already in flat_list. Add - # it to in_degree_zeros where it will be processed in a future - # iteration of the outer loop. - in_degree_zeros.add(node_dependent) - - return list(flat_list) - - def FindCycles(self): - """ - Returns a list of cycles in the graph, where each cycle is its own list. - """ - results = [] - visited = set() - - def Visit(node, path): - for child in node.dependents: - if child in path: - results.append([child] + path[:path.index(child) + 1]) - elif not child in visited: - visited.add(child) - Visit(child, [child] + path) - - visited.add(self) - Visit(self, [self]) - - return results - - def DirectDependencies(self, dependencies=None): - """Returns a list of just direct dependencies.""" - if dependencies == None: - dependencies = [] - - for dependency in self.dependencies: - # Check for None, corresponding to the root node. - if dependency.ref != None and dependency.ref not in dependencies: - dependencies.append(dependency.ref) - - return dependencies - - def _AddImportedDependencies(self, targets, dependencies=None): - """Given a list of direct dependencies, adds indirect dependencies that - other dependencies have declared to export their settings. - - This method does not operate on self. Rather, it operates on the list - of dependencies in the |dependencies| argument. For each dependency in - that list, if any declares that it exports the settings of one of its - own dependencies, those dependencies whose settings are "passed through" - are added to the list. As new items are added to the list, they too will - be processed, so it is possible to import settings through multiple levels - of dependencies. - - This method is not terribly useful on its own, it depends on being - "primed" with a list of direct dependencies such as one provided by - DirectDependencies. DirectAndImportedDependencies is intended to be the - public entry point. - """ - - if dependencies == None: - dependencies = [] - - index = 0 - while index < len(dependencies): - dependency = dependencies[index] - dependency_dict = targets[dependency] - # Add any dependencies whose settings should be imported to the list - # if not already present. Newly-added items will be checked for - # their own imports when the list iteration reaches them. - # Rather than simply appending new items, insert them after the - # dependency that exported them. This is done to more closely match - # the depth-first method used by DeepDependencies. - add_index = 1 - for imported_dependency in \ - dependency_dict.get('export_dependent_settings', []): - if imported_dependency not in dependencies: - dependencies.insert(index + add_index, imported_dependency) - add_index = add_index + 1 - index = index + 1 - - return dependencies - - def DirectAndImportedDependencies(self, targets, dependencies=None): - """Returns a list of a target's direct dependencies and all indirect - dependencies that a dependency has advertised settings should be exported - through the dependency for. - """ - - dependencies = self.DirectDependencies(dependencies) - return self._AddImportedDependencies(targets, dependencies) - - def DeepDependencies(self, dependencies=None): - """Returns an OrderedSet of all of a target's dependencies, recursively.""" - if dependencies is None: - # Using a list to get ordered output and a set to do fast "is it - # already added" checks. - dependencies = OrderedSet() - - for dependency in self.dependencies: - # Check for None, corresponding to the root node. - if dependency.ref is None: - continue - if dependency.ref not in dependencies: - dependency.DeepDependencies(dependencies) - dependencies.add(dependency.ref) - - return dependencies - - def _LinkDependenciesInternal(self, targets, include_shared_libraries, - dependencies=None, initial=True): - """Returns an OrderedSet of dependency targets that are linked - into this target. - - This function has a split personality, depending on the setting of - |initial|. Outside callers should always leave |initial| at its default - setting. - - When adding a target to the list of dependencies, this function will - recurse into itself with |initial| set to False, to collect dependencies - that are linked into the linkable target for which the list is being built. - - If |include_shared_libraries| is False, the resulting dependencies will not - include shared_library targets that are linked into this target. - """ - if dependencies is None: - # Using a list to get ordered output and a set to do fast "is it - # already added" checks. - dependencies = OrderedSet() - - # Check for None, corresponding to the root node. - if self.ref is None: - return dependencies - - # It's kind of sucky that |targets| has to be passed into this function, - # but that's presently the easiest way to access the target dicts so that - # this function can find target types. - - if 'target_name' not in targets[self.ref]: - raise GypError("Missing 'target_name' field in target.") - - if 'type' not in targets[self.ref]: - raise GypError("Missing 'type' field in target %s" % - targets[self.ref]['target_name']) - - target_type = targets[self.ref]['type'] - - is_linkable = target_type in linkable_types - - if initial and not is_linkable: - # If this is the first target being examined and it's not linkable, - # return an empty list of link dependencies, because the link - # dependencies are intended to apply to the target itself (initial is - # True) and this target won't be linked. - return dependencies - - # Don't traverse 'none' targets if explicitly excluded. - if (target_type == 'none' and - not targets[self.ref].get('dependencies_traverse', True)): - dependencies.add(self.ref) - return dependencies - - # Executables, mac kernel extensions and loadable modules are already fully - # and finally linked. Nothing else can be a link dependency of them, there - # can only be dependencies in the sense that a dependent target might run - # an executable or load the loadable_module. - if not initial and target_type in ('executable', 'loadable_module', - 'mac_kernel_extension'): - return dependencies - - # Shared libraries are already fully linked. They should only be included - # in |dependencies| when adjusting static library dependencies (in order to - # link against the shared_library's import lib), but should not be included - # in |dependencies| when propagating link_settings. - # The |include_shared_libraries| flag controls which of these two cases we - # are handling. - if (not initial and target_type == 'shared_library' and - not include_shared_libraries): - return dependencies - - # The target is linkable, add it to the list of link dependencies. - if self.ref not in dependencies: - dependencies.add(self.ref) - if initial or not is_linkable: - # If this is a subsequent target and it's linkable, don't look any - # further for linkable dependencies, as they'll already be linked into - # this target linkable. Always look at dependencies of the initial - # target, and always look at dependencies of non-linkables. - for dependency in self.dependencies: - dependency._LinkDependenciesInternal(targets, - include_shared_libraries, - dependencies, False) - - return dependencies - - def DependenciesForLinkSettings(self, targets): - """ - Returns a list of dependency targets whose link_settings should be merged - into this target. - """ - - # TODO(sbaig) Currently, chrome depends on the bug that shared libraries' - # link_settings are propagated. So for now, we will allow it, unless the - # 'allow_sharedlib_linksettings_propagation' flag is explicitly set to - # False. Once chrome is fixed, we can remove this flag. - include_shared_libraries = \ - targets[self.ref].get('allow_sharedlib_linksettings_propagation', True) - return self._LinkDependenciesInternal(targets, include_shared_libraries) - - def DependenciesToLinkAgainst(self, targets): - """ - Returns a list of dependency targets that are linked into this target. - """ - return self._LinkDependenciesInternal(targets, True) - - -def BuildDependencyList(targets): - # Create a DependencyGraphNode for each target. Put it into a dict for easy - # access. - dependency_nodes = {} - for target, spec in targets.iteritems(): - if target not in dependency_nodes: - dependency_nodes[target] = DependencyGraphNode(target) - - # Set up the dependency links. Targets that have no dependencies are treated - # as dependent on root_node. - root_node = DependencyGraphNode(None) - for target, spec in targets.iteritems(): - target_node = dependency_nodes[target] - target_build_file = gyp.common.BuildFile(target) - dependencies = spec.get('dependencies') - if not dependencies: - target_node.dependencies = [root_node] - root_node.dependents.append(target_node) - else: - for dependency in dependencies: - dependency_node = dependency_nodes.get(dependency) - if not dependency_node: - raise GypError("Dependency '%s' not found while " - "trying to load target %s" % (dependency, target)) - target_node.dependencies.append(dependency_node) - dependency_node.dependents.append(target_node) - - flat_list = root_node.FlattenToList() - - # If there's anything left unvisited, there must be a circular dependency - # (cycle). - if len(flat_list) != len(targets): - if not root_node.dependents: - # If all targets have dependencies, add the first target as a dependent - # of root_node so that the cycle can be discovered from root_node. - target = targets.keys()[0] - target_node = dependency_nodes[target] - target_node.dependencies.append(root_node) - root_node.dependents.append(target_node) - - cycles = [] - for cycle in root_node.FindCycles(): - paths = [node.ref for node in cycle] - cycles.append('Cycle: %s' % ' -> '.join(paths)) - raise DependencyGraphNode.CircularException( - 'Cycles in dependency graph detected:\n' + '\n'.join(cycles)) - - return [dependency_nodes, flat_list] - - -def VerifyNoGYPFileCircularDependencies(targets): - # Create a DependencyGraphNode for each gyp file containing a target. Put - # it into a dict for easy access. - dependency_nodes = {} - for target in targets.iterkeys(): - build_file = gyp.common.BuildFile(target) - if not build_file in dependency_nodes: - dependency_nodes[build_file] = DependencyGraphNode(build_file) - - # Set up the dependency links. - for target, spec in targets.iteritems(): - build_file = gyp.common.BuildFile(target) - build_file_node = dependency_nodes[build_file] - target_dependencies = spec.get('dependencies', []) - for dependency in target_dependencies: - try: - dependency_build_file = gyp.common.BuildFile(dependency) - except GypError, e: - gyp.common.ExceptionAppend( - e, 'while computing dependencies of .gyp file %s' % build_file) - raise - - if dependency_build_file == build_file: - # A .gyp file is allowed to refer back to itself. - continue - dependency_node = dependency_nodes.get(dependency_build_file) - if not dependency_node: - raise GypError("Dependancy '%s' not found" % dependency_build_file) - if dependency_node not in build_file_node.dependencies: - build_file_node.dependencies.append(dependency_node) - dependency_node.dependents.append(build_file_node) - - - # Files that have no dependencies are treated as dependent on root_node. - root_node = DependencyGraphNode(None) - for build_file_node in dependency_nodes.itervalues(): - if len(build_file_node.dependencies) == 0: - build_file_node.dependencies.append(root_node) - root_node.dependents.append(build_file_node) - - flat_list = root_node.FlattenToList() - - # If there's anything left unvisited, there must be a circular dependency - # (cycle). - if len(flat_list) != len(dependency_nodes): - if not root_node.dependents: - # If all files have dependencies, add the first file as a dependent - # of root_node so that the cycle can be discovered from root_node. - file_node = dependency_nodes.values()[0] - file_node.dependencies.append(root_node) - root_node.dependents.append(file_node) - cycles = [] - for cycle in root_node.FindCycles(): - paths = [node.ref for node in cycle] - cycles.append('Cycle: %s' % ' -> '.join(paths)) - raise DependencyGraphNode.CircularException( - 'Cycles in .gyp file dependency graph detected:\n' + '\n'.join(cycles)) - - -def DoDependentSettings(key, flat_list, targets, dependency_nodes): - # key should be one of all_dependent_settings, direct_dependent_settings, - # or link_settings. - - for target in flat_list: - target_dict = targets[target] - build_file = gyp.common.BuildFile(target) - - if key == 'all_dependent_settings': - dependencies = dependency_nodes[target].DeepDependencies() - elif key == 'direct_dependent_settings': - dependencies = \ - dependency_nodes[target].DirectAndImportedDependencies(targets) - elif key == 'link_settings': - dependencies = \ - dependency_nodes[target].DependenciesForLinkSettings(targets) - else: - raise GypError("DoDependentSettings doesn't know how to determine " - 'dependencies for ' + key) - - for dependency in dependencies: - dependency_dict = targets[dependency] - if not key in dependency_dict: - continue - dependency_build_file = gyp.common.BuildFile(dependency) - MergeDicts(target_dict, dependency_dict[key], - build_file, dependency_build_file) - - -def AdjustStaticLibraryDependencies(flat_list, targets, dependency_nodes, - sort_dependencies): - # Recompute target "dependencies" properties. For each static library - # target, remove "dependencies" entries referring to other static libraries, - # unless the dependency has the "hard_dependency" attribute set. For each - # linkable target, add a "dependencies" entry referring to all of the - # target's computed list of link dependencies (including static libraries - # if no such entry is already present. - for target in flat_list: - target_dict = targets[target] - target_type = target_dict['type'] - - if target_type == 'static_library': - if not 'dependencies' in target_dict: - continue - - target_dict['dependencies_original'] = target_dict.get( - 'dependencies', [])[:] - - # A static library should not depend on another static library unless - # the dependency relationship is "hard," which should only be done when - # a dependent relies on some side effect other than just the build - # product, like a rule or action output. Further, if a target has a - # non-hard dependency, but that dependency exports a hard dependency, - # the non-hard dependency can safely be removed, but the exported hard - # dependency must be added to the target to keep the same dependency - # ordering. - dependencies = \ - dependency_nodes[target].DirectAndImportedDependencies(targets) - index = 0 - while index < len(dependencies): - dependency = dependencies[index] - dependency_dict = targets[dependency] - - # Remove every non-hard static library dependency and remove every - # non-static library dependency that isn't a direct dependency. - if (dependency_dict['type'] == 'static_library' and \ - not dependency_dict.get('hard_dependency', False)) or \ - (dependency_dict['type'] != 'static_library' and \ - not dependency in target_dict['dependencies']): - # Take the dependency out of the list, and don't increment index - # because the next dependency to analyze will shift into the index - # formerly occupied by the one being removed. - del dependencies[index] - else: - index = index + 1 - - # Update the dependencies. If the dependencies list is empty, it's not - # needed, so unhook it. - if len(dependencies) > 0: - target_dict['dependencies'] = dependencies - else: - del target_dict['dependencies'] - - elif target_type in linkable_types: - # Get a list of dependency targets that should be linked into this - # target. Add them to the dependencies list if they're not already - # present. - - link_dependencies = \ - dependency_nodes[target].DependenciesToLinkAgainst(targets) - for dependency in link_dependencies: - if dependency == target: - continue - if not 'dependencies' in target_dict: - target_dict['dependencies'] = [] - if not dependency in target_dict['dependencies']: - target_dict['dependencies'].append(dependency) - # Sort the dependencies list in the order from dependents to dependencies. - # e.g. If A and B depend on C and C depends on D, sort them in A, B, C, D. - # Note: flat_list is already sorted in the order from dependencies to - # dependents. - if sort_dependencies and 'dependencies' in target_dict: - target_dict['dependencies'] = [dep for dep in reversed(flat_list) - if dep in target_dict['dependencies']] - - -# Initialize this here to speed up MakePathRelative. -exception_re = re.compile(r'''["']?[-/$<>^]''') - - -def MakePathRelative(to_file, fro_file, item): - # If item is a relative path, it's relative to the build file dict that it's - # coming from. Fix it up to make it relative to the build file dict that - # it's going into. - # Exception: any |item| that begins with these special characters is - # returned without modification. - # / Used when a path is already absolute (shortcut optimization; - # such paths would be returned as absolute anyway) - # $ Used for build environment variables - # - Used for some build environment flags (such as -lapr-1 in a - # "libraries" section) - # < Used for our own variable and command expansions (see ExpandVariables) - # > Used for our own variable and command expansions (see ExpandVariables) - # ^ Used for our own variable and command expansions (see ExpandVariables) - # - # "/' Used when a value is quoted. If these are present, then we - # check the second character instead. - # - if to_file == fro_file or exception_re.match(item): - return item - else: - # TODO(dglazkov) The backslash/forward-slash replacement at the end is a - # temporary measure. This should really be addressed by keeping all paths - # in POSIX until actual project generation. - ret = os.path.normpath(os.path.join( - gyp.common.RelativePath(os.path.dirname(fro_file), - os.path.dirname(to_file)), - item)).replace('\\', '/') - if item[-1] == '/': - ret += '/' - return ret - -def MergeLists(to, fro, to_file, fro_file, is_paths=False, append=True): - # Python documentation recommends objects which do not support hash - # set this value to None. Python library objects follow this rule. - is_hashable = lambda val: val.__hash__ - - # If x is hashable, returns whether x is in s. Else returns whether x is in l. - def is_in_set_or_list(x, s, l): - if is_hashable(x): - return x in s - return x in l - - prepend_index = 0 - - # Make membership testing of hashables in |to| (in particular, strings) - # faster. - hashable_to_set = set(x for x in to if is_hashable(x)) - for item in fro: - singleton = False - if type(item) in (str, int): - # The cheap and easy case. - if is_paths: - to_item = MakePathRelative(to_file, fro_file, item) - else: - to_item = item - - if not (type(item) is str and item.startswith('-')): - # Any string that doesn't begin with a "-" is a singleton - it can - # only appear once in a list, to be enforced by the list merge append - # or prepend. - singleton = True - elif type(item) is dict: - # Make a copy of the dictionary, continuing to look for paths to fix. - # The other intelligent aspects of merge processing won't apply because - # item is being merged into an empty dict. - to_item = {} - MergeDicts(to_item, item, to_file, fro_file) - elif type(item) is list: - # Recurse, making a copy of the list. If the list contains any - # descendant dicts, path fixing will occur. Note that here, custom - # values for is_paths and append are dropped; those are only to be - # applied to |to| and |fro|, not sublists of |fro|. append shouldn't - # matter anyway because the new |to_item| list is empty. - to_item = [] - MergeLists(to_item, item, to_file, fro_file) - else: - raise TypeError( - 'Attempt to merge list item of unsupported type ' + \ - item.__class__.__name__) - - if append: - # If appending a singleton that's already in the list, don't append. - # This ensures that the earliest occurrence of the item will stay put. - if not singleton or not is_in_set_or_list(to_item, hashable_to_set, to): - to.append(to_item) - if is_hashable(to_item): - hashable_to_set.add(to_item) - else: - # If prepending a singleton that's already in the list, remove the - # existing instance and proceed with the prepend. This ensures that the - # item appears at the earliest possible position in the list. - while singleton and to_item in to: - to.remove(to_item) - - # Don't just insert everything at index 0. That would prepend the new - # items to the list in reverse order, which would be an unwelcome - # surprise. - to.insert(prepend_index, to_item) - if is_hashable(to_item): - hashable_to_set.add(to_item) - prepend_index = prepend_index + 1 - - -def MergeDicts(to, fro, to_file, fro_file): - # I wanted to name the parameter "from" but it's a Python keyword... - for k, v in fro.iteritems(): - # It would be nice to do "if not k in to: to[k] = v" but that wouldn't give - # copy semantics. Something else may want to merge from the |fro| dict - # later, and having the same dict ref pointed to twice in the tree isn't - # what anyone wants considering that the dicts may subsequently be - # modified. - if k in to: - bad_merge = False - if type(v) in (str, int): - if type(to[k]) not in (str, int): - bad_merge = True - elif type(v) is not type(to[k]): - bad_merge = True - - if bad_merge: - raise TypeError( - 'Attempt to merge dict value of type ' + v.__class__.__name__ + \ - ' into incompatible type ' + to[k].__class__.__name__ + \ - ' for key ' + k) - if type(v) in (str, int): - # Overwrite the existing value, if any. Cheap and easy. - is_path = IsPathSection(k) - if is_path: - to[k] = MakePathRelative(to_file, fro_file, v) - else: - to[k] = v - elif type(v) is dict: - # Recurse, guaranteeing copies will be made of objects that require it. - if not k in to: - to[k] = {} - MergeDicts(to[k], v, to_file, fro_file) - elif type(v) is list: - # Lists in dicts can be merged with different policies, depending on - # how the key in the "from" dict (k, the from-key) is written. - # - # If the from-key has ...the to-list will have this action - # this character appended:... applied when receiving the from-list: - # = replace - # + prepend - # ? set, only if to-list does not yet exist - # (none) append - # - # This logic is list-specific, but since it relies on the associated - # dict key, it's checked in this dict-oriented function. - ext = k[-1] - append = True - if ext == '=': - list_base = k[:-1] - lists_incompatible = [list_base, list_base + '?'] - to[list_base] = [] - elif ext == '+': - list_base = k[:-1] - lists_incompatible = [list_base + '=', list_base + '?'] - append = False - elif ext == '?': - list_base = k[:-1] - lists_incompatible = [list_base, list_base + '=', list_base + '+'] - else: - list_base = k - lists_incompatible = [list_base + '=', list_base + '?'] - - # Some combinations of merge policies appearing together are meaningless. - # It's stupid to replace and append simultaneously, for example. Append - # and prepend are the only policies that can coexist. - for list_incompatible in lists_incompatible: - if list_incompatible in fro: - raise GypError('Incompatible list policies ' + k + ' and ' + - list_incompatible) - - if list_base in to: - if ext == '?': - # If the key ends in "?", the list will only be merged if it doesn't - # already exist. - continue - elif type(to[list_base]) is not list: - # This may not have been checked above if merging in a list with an - # extension character. - raise TypeError( - 'Attempt to merge dict value of type ' + v.__class__.__name__ + \ - ' into incompatible type ' + to[list_base].__class__.__name__ + \ - ' for key ' + list_base + '(' + k + ')') - else: - to[list_base] = [] - - # Call MergeLists, which will make copies of objects that require it. - # MergeLists can recurse back into MergeDicts, although this will be - # to make copies of dicts (with paths fixed), there will be no - # subsequent dict "merging" once entering a list because lists are - # always replaced, appended to, or prepended to. - is_paths = IsPathSection(list_base) - MergeLists(to[list_base], v, to_file, fro_file, is_paths, append) - else: - raise TypeError( - 'Attempt to merge dict value of unsupported type ' + \ - v.__class__.__name__ + ' for key ' + k) - - -def MergeConfigWithInheritance(new_configuration_dict, build_file, - target_dict, configuration, visited): - # Skip if previously visted. - if configuration in visited: - return - - # Look at this configuration. - configuration_dict = target_dict['configurations'][configuration] - - # Merge in parents. - for parent in configuration_dict.get('inherit_from', []): - MergeConfigWithInheritance(new_configuration_dict, build_file, - target_dict, parent, visited + [configuration]) - - # Merge it into the new config. - MergeDicts(new_configuration_dict, configuration_dict, - build_file, build_file) - - # Drop abstract. - if 'abstract' in new_configuration_dict: - del new_configuration_dict['abstract'] - - -def SetUpConfigurations(target, target_dict): - # key_suffixes is a list of key suffixes that might appear on key names. - # These suffixes are handled in conditional evaluations (for =, +, and ?) - # and rules/exclude processing (for ! and /). Keys with these suffixes - # should be treated the same as keys without. - key_suffixes = ['=', '+', '?', '!', '/'] - - build_file = gyp.common.BuildFile(target) - - # Provide a single configuration by default if none exists. - # TODO(mark): Signal an error if default_configurations exists but - # configurations does not. - if not 'configurations' in target_dict: - target_dict['configurations'] = {'Default': {}} - if not 'default_configuration' in target_dict: - concrete = [i for (i, config) in target_dict['configurations'].iteritems() - if not config.get('abstract')] - target_dict['default_configuration'] = sorted(concrete)[0] - - merged_configurations = {} - configs = target_dict['configurations'] - for (configuration, old_configuration_dict) in configs.iteritems(): - # Skip abstract configurations (saves work only). - if old_configuration_dict.get('abstract'): - continue - # Configurations inherit (most) settings from the enclosing target scope. - # Get the inheritance relationship right by making a copy of the target - # dict. - new_configuration_dict = {} - for (key, target_val) in target_dict.iteritems(): - key_ext = key[-1:] - if key_ext in key_suffixes: - key_base = key[:-1] - else: - key_base = key - if not key_base in non_configuration_keys: - new_configuration_dict[key] = gyp.simple_copy.deepcopy(target_val) - - # Merge in configuration (with all its parents first). - MergeConfigWithInheritance(new_configuration_dict, build_file, - target_dict, configuration, []) - - merged_configurations[configuration] = new_configuration_dict - - # Put the new configurations back into the target dict as a configuration. - for configuration in merged_configurations.keys(): - target_dict['configurations'][configuration] = ( - merged_configurations[configuration]) - - # Now drop all the abstract ones. - for configuration in target_dict['configurations'].keys(): - old_configuration_dict = target_dict['configurations'][configuration] - if old_configuration_dict.get('abstract'): - del target_dict['configurations'][configuration] - - # Now that all of the target's configurations have been built, go through - # the target dict's keys and remove everything that's been moved into a - # "configurations" section. - delete_keys = [] - for key in target_dict: - key_ext = key[-1:] - if key_ext in key_suffixes: - key_base = key[:-1] - else: - key_base = key - if not key_base in non_configuration_keys: - delete_keys.append(key) - for key in delete_keys: - del target_dict[key] - - # Check the configurations to see if they contain invalid keys. - for configuration in target_dict['configurations'].keys(): - configuration_dict = target_dict['configurations'][configuration] - for key in configuration_dict.keys(): - if key in invalid_configuration_keys: - raise GypError('%s not allowed in the %s configuration, found in ' - 'target %s' % (key, configuration, target)) - - - -def ProcessListFiltersInDict(name, the_dict): - """Process regular expression and exclusion-based filters on lists. - - An exclusion list is in a dict key named with a trailing "!", like - "sources!". Every item in such a list is removed from the associated - main list, which in this example, would be "sources". Removed items are - placed into a "sources_excluded" list in the dict. - - Regular expression (regex) filters are contained in dict keys named with a - trailing "/", such as "sources/" to operate on the "sources" list. Regex - filters in a dict take the form: - 'sources/': [ ['exclude', '_(linux|mac|win)\\.cc$'], - ['include', '_mac\\.cc$'] ], - The first filter says to exclude all files ending in _linux.cc, _mac.cc, and - _win.cc. The second filter then includes all files ending in _mac.cc that - are now or were once in the "sources" list. Items matching an "exclude" - filter are subject to the same processing as would occur if they were listed - by name in an exclusion list (ending in "!"). Items matching an "include" - filter are brought back into the main list if previously excluded by an - exclusion list or exclusion regex filter. Subsequent matching "exclude" - patterns can still cause items to be excluded after matching an "include". - """ - - # Look through the dictionary for any lists whose keys end in "!" or "/". - # These are lists that will be treated as exclude lists and regular - # expression-based exclude/include lists. Collect the lists that are - # needed first, looking for the lists that they operate on, and assemble - # then into |lists|. This is done in a separate loop up front, because - # the _included and _excluded keys need to be added to the_dict, and that - # can't be done while iterating through it. - - lists = [] - del_lists = [] - for key, value in the_dict.iteritems(): - operation = key[-1] - if operation != '!' and operation != '/': - continue - - if type(value) is not list: - raise ValueError(name + ' key ' + key + ' must be list, not ' + \ - value.__class__.__name__) - - list_key = key[:-1] - if list_key not in the_dict: - # This happens when there's a list like "sources!" but no corresponding - # "sources" list. Since there's nothing for it to operate on, queue up - # the "sources!" list for deletion now. - del_lists.append(key) - continue - - if type(the_dict[list_key]) is not list: - value = the_dict[list_key] - raise ValueError(name + ' key ' + list_key + \ - ' must be list, not ' + \ - value.__class__.__name__ + ' when applying ' + \ - {'!': 'exclusion', '/': 'regex'}[operation]) - - if not list_key in lists: - lists.append(list_key) - - # Delete the lists that are known to be unneeded at this point. - for del_list in del_lists: - del the_dict[del_list] - - for list_key in lists: - the_list = the_dict[list_key] - - # Initialize the list_actions list, which is parallel to the_list. Each - # item in list_actions identifies whether the corresponding item in - # the_list should be excluded, unconditionally preserved (included), or - # whether no exclusion or inclusion has been applied. Items for which - # no exclusion or inclusion has been applied (yet) have value -1, items - # excluded have value 0, and items included have value 1. Includes and - # excludes override previous actions. All items in list_actions are - # initialized to -1 because no excludes or includes have been processed - # yet. - list_actions = list((-1,) * len(the_list)) - - exclude_key = list_key + '!' - if exclude_key in the_dict: - for exclude_item in the_dict[exclude_key]: - for index in xrange(0, len(the_list)): - if exclude_item == the_list[index]: - # This item matches the exclude_item, so set its action to 0 - # (exclude). - list_actions[index] = 0 - - # The "whatever!" list is no longer needed, dump it. - del the_dict[exclude_key] - - regex_key = list_key + '/' - if regex_key in the_dict: - for regex_item in the_dict[regex_key]: - [action, pattern] = regex_item - pattern_re = re.compile(pattern) - - if action == 'exclude': - # This item matches an exclude regex, so set its value to 0 (exclude). - action_value = 0 - elif action == 'include': - # This item matches an include regex, so set its value to 1 (include). - action_value = 1 - else: - # This is an action that doesn't make any sense. - raise ValueError('Unrecognized action ' + action + ' in ' + name + \ - ' key ' + regex_key) - - for index in xrange(0, len(the_list)): - list_item = the_list[index] - if list_actions[index] == action_value: - # Even if the regex matches, nothing will change so continue (regex - # searches are expensive). - continue - if pattern_re.search(list_item): - # Regular expression match. - list_actions[index] = action_value - - # The "whatever/" list is no longer needed, dump it. - del the_dict[regex_key] - - # Add excluded items to the excluded list. - # - # Note that exclude_key ("sources!") is different from excluded_key - # ("sources_excluded"). The exclude_key list is input and it was already - # processed and deleted; the excluded_key list is output and it's about - # to be created. - excluded_key = list_key + '_excluded' - if excluded_key in the_dict: - raise GypError(name + ' key ' + excluded_key + - ' must not be present prior ' - ' to applying exclusion/regex filters for ' + list_key) - - excluded_list = [] - - # Go backwards through the list_actions list so that as items are deleted, - # the indices of items that haven't been seen yet don't shift. That means - # that things need to be prepended to excluded_list to maintain them in the - # same order that they existed in the_list. - for index in xrange(len(list_actions) - 1, -1, -1): - if list_actions[index] == 0: - # Dump anything with action 0 (exclude). Keep anything with action 1 - # (include) or -1 (no include or exclude seen for the item). - excluded_list.insert(0, the_list[index]) - del the_list[index] - - # If anything was excluded, put the excluded list into the_dict at - # excluded_key. - if len(excluded_list) > 0: - the_dict[excluded_key] = excluded_list - - # Now recurse into subdicts and lists that may contain dicts. - for key, value in the_dict.iteritems(): - if type(value) is dict: - ProcessListFiltersInDict(key, value) - elif type(value) is list: - ProcessListFiltersInList(key, value) - - -def ProcessListFiltersInList(name, the_list): - for item in the_list: - if type(item) is dict: - ProcessListFiltersInDict(name, item) - elif type(item) is list: - ProcessListFiltersInList(name, item) - - -def ValidateTargetType(target, target_dict): - """Ensures the 'type' field on the target is one of the known types. - - Arguments: - target: string, name of target. - target_dict: dict, target spec. - - Raises an exception on error. - """ - VALID_TARGET_TYPES = ('executable', 'loadable_module', - 'static_library', 'shared_library', - 'mac_kernel_extension', 'none') - target_type = target_dict.get('type', None) - if target_type not in VALID_TARGET_TYPES: - raise GypError("Target %s has an invalid target type '%s'. " - "Must be one of %s." % - (target, target_type, '/'.join(VALID_TARGET_TYPES))) - if (target_dict.get('standalone_static_library', 0) and - not target_type == 'static_library'): - raise GypError('Target %s has type %s but standalone_static_library flag is' - ' only valid for static_library type.' % (target, - target_type)) - - -def ValidateSourcesInTarget(target, target_dict, build_file, - duplicate_basename_check): - if not duplicate_basename_check: - return - if target_dict.get('type', None) != 'static_library': - return - sources = target_dict.get('sources', []) - basenames = {} - for source in sources: - name, ext = os.path.splitext(source) - is_compiled_file = ext in [ - '.c', '.cc', '.cpp', '.cxx', '.m', '.mm', '.s', '.S'] - if not is_compiled_file: - continue - basename = os.path.basename(name) # Don't include extension. - basenames.setdefault(basename, []).append(source) - - error = '' - for basename, files in basenames.iteritems(): - if len(files) > 1: - error += ' %s: %s\n' % (basename, ' '.join(files)) - - if error: - print('static library %s has several files with the same basename:\n' % - target + error + 'libtool on Mac cannot handle that. Use ' - '--no-duplicate-basename-check to disable this validation.') - raise GypError('Duplicate basenames in sources section, see list above') - - -def ValidateRulesInTarget(target, target_dict, extra_sources_for_rules): - """Ensures that the rules sections in target_dict are valid and consistent, - and determines which sources they apply to. - - Arguments: - target: string, name of target. - target_dict: dict, target spec containing "rules" and "sources" lists. - extra_sources_for_rules: a list of keys to scan for rule matches in - addition to 'sources'. - """ - - # Dicts to map between values found in rules' 'rule_name' and 'extension' - # keys and the rule dicts themselves. - rule_names = {} - rule_extensions = {} - - rules = target_dict.get('rules', []) - for rule in rules: - # Make sure that there's no conflict among rule names and extensions. - rule_name = rule['rule_name'] - if rule_name in rule_names: - raise GypError('rule %s exists in duplicate, target %s' % - (rule_name, target)) - rule_names[rule_name] = rule - - rule_extension = rule['extension'] - if rule_extension.startswith('.'): - rule_extension = rule_extension[1:] - if rule_extension in rule_extensions: - raise GypError(('extension %s associated with multiple rules, ' + - 'target %s rules %s and %s') % - (rule_extension, target, - rule_extensions[rule_extension]['rule_name'], - rule_name)) - rule_extensions[rule_extension] = rule - - # Make sure rule_sources isn't already there. It's going to be - # created below if needed. - if 'rule_sources' in rule: - raise GypError( - 'rule_sources must not exist in input, target %s rule %s' % - (target, rule_name)) - - rule_sources = [] - source_keys = ['sources'] - source_keys.extend(extra_sources_for_rules) - for source_key in source_keys: - for source in target_dict.get(source_key, []): - (source_root, source_extension) = os.path.splitext(source) - if source_extension.startswith('.'): - source_extension = source_extension[1:] - if source_extension == rule_extension: - rule_sources.append(source) - - if len(rule_sources) > 0: - rule['rule_sources'] = rule_sources - - -def ValidateRunAsInTarget(target, target_dict, build_file): - target_name = target_dict.get('target_name') - run_as = target_dict.get('run_as') - if not run_as: - return - if type(run_as) is not dict: - raise GypError("The 'run_as' in target %s from file %s should be a " - "dictionary." % - (target_name, build_file)) - action = run_as.get('action') - if not action: - raise GypError("The 'run_as' in target %s from file %s must have an " - "'action' section." % - (target_name, build_file)) - if type(action) is not list: - raise GypError("The 'action' for 'run_as' in target %s from file %s " - "must be a list." % - (target_name, build_file)) - working_directory = run_as.get('working_directory') - if working_directory and type(working_directory) is not str: - raise GypError("The 'working_directory' for 'run_as' in target %s " - "in file %s should be a string." % - (target_name, build_file)) - environment = run_as.get('environment') - if environment and type(environment) is not dict: - raise GypError("The 'environment' for 'run_as' in target %s " - "in file %s should be a dictionary." % - (target_name, build_file)) - - -def ValidateActionsInTarget(target, target_dict, build_file): - '''Validates the inputs to the actions in a target.''' - target_name = target_dict.get('target_name') - actions = target_dict.get('actions', []) - for action in actions: - action_name = action.get('action_name') - if not action_name: - raise GypError("Anonymous action in target %s. " - "An action must have an 'action_name' field." % - target_name) - inputs = action.get('inputs', None) - if inputs is None: - raise GypError('Action in target %s has no inputs.' % target_name) - action_command = action.get('action') - if action_command and not action_command[0]: - raise GypError("Empty action as command in target %s." % target_name) - - -def TurnIntIntoStrInDict(the_dict): - """Given dict the_dict, recursively converts all integers into strings. - """ - # Use items instead of iteritems because there's no need to try to look at - # reinserted keys and their associated values. - for k, v in the_dict.items(): - if type(v) is int: - v = str(v) - the_dict[k] = v - elif type(v) is dict: - TurnIntIntoStrInDict(v) - elif type(v) is list: - TurnIntIntoStrInList(v) - - if type(k) is int: - del the_dict[k] - the_dict[str(k)] = v - - -def TurnIntIntoStrInList(the_list): - """Given list the_list, recursively converts all integers into strings. - """ - for index in xrange(0, len(the_list)): - item = the_list[index] - if type(item) is int: - the_list[index] = str(item) - elif type(item) is dict: - TurnIntIntoStrInDict(item) - elif type(item) is list: - TurnIntIntoStrInList(item) - - -def PruneUnwantedTargets(targets, flat_list, dependency_nodes, root_targets, - data): - """Return only the targets that are deep dependencies of |root_targets|.""" - qualified_root_targets = [] - for target in root_targets: - target = target.strip() - qualified_targets = gyp.common.FindQualifiedTargets(target, flat_list) - if not qualified_targets: - raise GypError("Could not find target %s" % target) - qualified_root_targets.extend(qualified_targets) - - wanted_targets = {} - for target in qualified_root_targets: - wanted_targets[target] = targets[target] - for dependency in dependency_nodes[target].DeepDependencies(): - wanted_targets[dependency] = targets[dependency] - - wanted_flat_list = [t for t in flat_list if t in wanted_targets] - - # Prune unwanted targets from each build_file's data dict. - for build_file in data['target_build_files']: - if not 'targets' in data[build_file]: - continue - new_targets = [] - for target in data[build_file]['targets']: - qualified_name = gyp.common.QualifiedTarget(build_file, - target['target_name'], - target['toolset']) - if qualified_name in wanted_targets: - new_targets.append(target) - data[build_file]['targets'] = new_targets - - return wanted_targets, wanted_flat_list - - -def VerifyNoCollidingTargets(targets): - """Verify that no two targets in the same directory share the same name. - - Arguments: - targets: A list of targets in the form 'path/to/file.gyp:target_name'. - """ - # Keep a dict going from 'subdirectory:target_name' to 'foo.gyp'. - used = {} - for target in targets: - # Separate out 'path/to/file.gyp, 'target_name' from - # 'path/to/file.gyp:target_name'. - path, name = target.rsplit(':', 1) - # Separate out 'path/to', 'file.gyp' from 'path/to/file.gyp'. - subdir, gyp = os.path.split(path) - # Use '.' for the current directory '', so that the error messages make - # more sense. - if not subdir: - subdir = '.' - # Prepare a key like 'path/to:target_name'. - key = subdir + ':' + name - if key in used: - # Complain if this target is already used. - raise GypError('Duplicate target name "%s" in directory "%s" used both ' - 'in "%s" and "%s".' % (name, subdir, gyp, used[key])) - used[key] = gyp - - -def SetGeneratorGlobals(generator_input_info): - # Set up path_sections and non_configuration_keys with the default data plus - # the generator-specific data. - global path_sections - path_sections = set(base_path_sections) - path_sections.update(generator_input_info['path_sections']) - - global non_configuration_keys - non_configuration_keys = base_non_configuration_keys[:] - non_configuration_keys.extend(generator_input_info['non_configuration_keys']) - - global multiple_toolsets - multiple_toolsets = generator_input_info[ - 'generator_supports_multiple_toolsets'] - - global generator_filelist_paths - generator_filelist_paths = generator_input_info['generator_filelist_paths'] - - -def Load(build_files, variables, includes, depth, generator_input_info, check, - circular_check, duplicate_basename_check, parallel, root_targets): - SetGeneratorGlobals(generator_input_info) - # A generator can have other lists (in addition to sources) be processed - # for rules. - extra_sources_for_rules = generator_input_info['extra_sources_for_rules'] - - # Load build files. This loads every target-containing build file into - # the |data| dictionary such that the keys to |data| are build file names, - # and the values are the entire build file contents after "early" or "pre" - # processing has been done and includes have been resolved. - # NOTE: data contains both "target" files (.gyp) and "includes" (.gypi), as - # well as meta-data (e.g. 'included_files' key). 'target_build_files' keeps - # track of the keys corresponding to "target" files. - data = {'target_build_files': set()} - # Normalize paths everywhere. This is important because paths will be - # used as keys to the data dict and for references between input files. - build_files = set(map(os.path.normpath, build_files)) - if parallel: - LoadTargetBuildFilesParallel(build_files, data, variables, includes, depth, - check, generator_input_info) - else: - aux_data = {} - for build_file in build_files: - try: - LoadTargetBuildFile(build_file, data, aux_data, - variables, includes, depth, check, True) - except Exception, e: - gyp.common.ExceptionAppend(e, 'while trying to load %s' % build_file) - raise - - # Build a dict to access each target's subdict by qualified name. - targets = BuildTargetsDict(data) - - # Fully qualify all dependency links. - QualifyDependencies(targets) - - # Remove self-dependencies from targets that have 'prune_self_dependencies' - # set to 1. - RemoveSelfDependencies(targets) - - # Expand dependencies specified as build_file:*. - ExpandWildcardDependencies(targets, data) - - # Remove all dependencies marked as 'link_dependency' from the targets of - # type 'none'. - RemoveLinkDependenciesFromNoneTargets(targets) - - # Apply exclude (!) and regex (/) list filters only for dependency_sections. - for target_name, target_dict in targets.iteritems(): - tmp_dict = {} - for key_base in dependency_sections: - for op in ('', '!', '/'): - key = key_base + op - if key in target_dict: - tmp_dict[key] = target_dict[key] - del target_dict[key] - ProcessListFiltersInDict(target_name, tmp_dict) - # Write the results back to |target_dict|. - for key in tmp_dict: - target_dict[key] = tmp_dict[key] - - # Make sure every dependency appears at most once. - RemoveDuplicateDependencies(targets) - - if circular_check: - # Make sure that any targets in a.gyp don't contain dependencies in other - # .gyp files that further depend on a.gyp. - VerifyNoGYPFileCircularDependencies(targets) - - [dependency_nodes, flat_list] = BuildDependencyList(targets) - - if root_targets: - # Remove, from |targets| and |flat_list|, the targets that are not deep - # dependencies of the targets specified in |root_targets|. - targets, flat_list = PruneUnwantedTargets( - targets, flat_list, dependency_nodes, root_targets, data) - - # Check that no two targets in the same directory have the same name. - VerifyNoCollidingTargets(flat_list) - - # Handle dependent settings of various types. - for settings_type in ['all_dependent_settings', - 'direct_dependent_settings', - 'link_settings']: - DoDependentSettings(settings_type, flat_list, targets, dependency_nodes) - - # Take out the dependent settings now that they've been published to all - # of the targets that require them. - for target in flat_list: - if settings_type in targets[target]: - del targets[target][settings_type] - - # Make sure static libraries don't declare dependencies on other static - # libraries, but that linkables depend on all unlinked static libraries - # that they need so that their link steps will be correct. - gii = generator_input_info - if gii['generator_wants_static_library_dependencies_adjusted']: - AdjustStaticLibraryDependencies(flat_list, targets, dependency_nodes, - gii['generator_wants_sorted_dependencies']) - - # Apply "post"/"late"/"target" variable expansions and condition evaluations. - for target in flat_list: - target_dict = targets[target] - build_file = gyp.common.BuildFile(target) - ProcessVariablesAndConditionsInDict( - target_dict, PHASE_LATE, variables, build_file) - - # Move everything that can go into a "configurations" section into one. - for target in flat_list: - target_dict = targets[target] - SetUpConfigurations(target, target_dict) - - # Apply exclude (!) and regex (/) list filters. - for target in flat_list: - target_dict = targets[target] - ProcessListFiltersInDict(target, target_dict) - - # Apply "latelate" variable expansions and condition evaluations. - for target in flat_list: - target_dict = targets[target] - build_file = gyp.common.BuildFile(target) - ProcessVariablesAndConditionsInDict( - target_dict, PHASE_LATELATE, variables, build_file) - - # Make sure that the rules make sense, and build up rule_sources lists as - # needed. Not all generators will need to use the rule_sources lists, but - # some may, and it seems best to build the list in a common spot. - # Also validate actions and run_as elements in targets. - for target in flat_list: - target_dict = targets[target] - build_file = gyp.common.BuildFile(target) - ValidateTargetType(target, target_dict) - ValidateSourcesInTarget(target, target_dict, build_file, - duplicate_basename_check) - ValidateRulesInTarget(target, target_dict, extra_sources_for_rules) - ValidateRunAsInTarget(target, target_dict, build_file) - ValidateActionsInTarget(target, target_dict, build_file) - - # Generators might not expect ints. Turn them into strs. - TurnIntIntoStrInDict(data) - - # TODO(mark): Return |data| for now because the generator needs a list of - # build files that came in. In the future, maybe it should just accept - # a list, and not the whole data dict. - return [flat_list, targets, data] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py deleted file mode 100755 index 4234fbb8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env python - -# Copyright 2013 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Unit tests for the input.py file.""" - -import gyp.input -import unittest -import sys - - -class TestFindCycles(unittest.TestCase): - def setUp(self): - self.nodes = {} - for x in ('a', 'b', 'c', 'd', 'e'): - self.nodes[x] = gyp.input.DependencyGraphNode(x) - - def _create_dependency(self, dependent, dependency): - dependent.dependencies.append(dependency) - dependency.dependents.append(dependent) - - def test_no_cycle_empty_graph(self): - for label, node in self.nodes.iteritems(): - self.assertEquals([], node.FindCycles()) - - def test_no_cycle_line(self): - self._create_dependency(self.nodes['a'], self.nodes['b']) - self._create_dependency(self.nodes['b'], self.nodes['c']) - self._create_dependency(self.nodes['c'], self.nodes['d']) - - for label, node in self.nodes.iteritems(): - self.assertEquals([], node.FindCycles()) - - def test_no_cycle_dag(self): - self._create_dependency(self.nodes['a'], self.nodes['b']) - self._create_dependency(self.nodes['a'], self.nodes['c']) - self._create_dependency(self.nodes['b'], self.nodes['c']) - - for label, node in self.nodes.iteritems(): - self.assertEquals([], node.FindCycles()) - - def test_cycle_self_reference(self): - self._create_dependency(self.nodes['a'], self.nodes['a']) - - self.assertEquals([[self.nodes['a'], self.nodes['a']]], - self.nodes['a'].FindCycles()) - - def test_cycle_two_nodes(self): - self._create_dependency(self.nodes['a'], self.nodes['b']) - self._create_dependency(self.nodes['b'], self.nodes['a']) - - self.assertEquals([[self.nodes['a'], self.nodes['b'], self.nodes['a']]], - self.nodes['a'].FindCycles()) - self.assertEquals([[self.nodes['b'], self.nodes['a'], self.nodes['b']]], - self.nodes['b'].FindCycles()) - - def test_two_cycles(self): - self._create_dependency(self.nodes['a'], self.nodes['b']) - self._create_dependency(self.nodes['b'], self.nodes['a']) - - self._create_dependency(self.nodes['b'], self.nodes['c']) - self._create_dependency(self.nodes['c'], self.nodes['b']) - - cycles = self.nodes['a'].FindCycles() - self.assertTrue( - [self.nodes['a'], self.nodes['b'], self.nodes['a']] in cycles) - self.assertTrue( - [self.nodes['b'], self.nodes['c'], self.nodes['b']] in cycles) - self.assertEquals(2, len(cycles)) - - def test_big_cycle(self): - self._create_dependency(self.nodes['a'], self.nodes['b']) - self._create_dependency(self.nodes['b'], self.nodes['c']) - self._create_dependency(self.nodes['c'], self.nodes['d']) - self._create_dependency(self.nodes['d'], self.nodes['e']) - self._create_dependency(self.nodes['e'], self.nodes['a']) - - self.assertEquals([[self.nodes['a'], - self.nodes['b'], - self.nodes['c'], - self.nodes['d'], - self.nodes['e'], - self.nodes['a']]], - self.nodes['a'].FindCycles()) - - -if __name__ == '__main__': - unittest.main() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py deleted file mode 100755 index eeeaceb0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +++ /dev/null @@ -1,610 +0,0 @@ -#!/usr/bin/env python -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Utility functions to perform Xcode-style build steps. - -These functions are executed via gyp-mac-tool when using the Makefile generator. -""" - -import fcntl -import fnmatch -import glob -import json -import os -import plistlib -import re -import shutil -import string -import subprocess -import sys -import tempfile - - -def main(args): - executor = MacTool() - exit_code = executor.Dispatch(args) - if exit_code is not None: - sys.exit(exit_code) - - -class MacTool(object): - """This class performs all the Mac tooling steps. The methods can either be - executed directly, or dispatched from an argument list.""" - - def Dispatch(self, args): - """Dispatches a string command to a method.""" - if len(args) < 1: - raise Exception("Not enough arguments") - - method = "Exec%s" % self._CommandifyName(args[0]) - return getattr(self, method)(*args[1:]) - - def _CommandifyName(self, name_string): - """Transforms a tool name like copy-info-plist to CopyInfoPlist""" - return name_string.title().replace('-', '') - - def ExecCopyBundleResource(self, source, dest, convert_to_binary): - """Copies a resource file to the bundle/Resources directory, performing any - necessary compilation on each resource.""" - extension = os.path.splitext(source)[1].lower() - if os.path.isdir(source): - # Copy tree. - # TODO(thakis): This copies file attributes like mtime, while the - # single-file branch below doesn't. This should probably be changed to - # be consistent with the single-file branch. - if os.path.exists(dest): - shutil.rmtree(dest) - shutil.copytree(source, dest) - elif extension == '.xib': - return self._CopyXIBFile(source, dest) - elif extension == '.storyboard': - return self._CopyXIBFile(source, dest) - elif extension == '.strings': - self._CopyStringsFile(source, dest, convert_to_binary) - else: - shutil.copy(source, dest) - - def _CopyXIBFile(self, source, dest): - """Compiles a XIB file with ibtool into a binary plist in the bundle.""" - - # ibtool sometimes crashes with relative paths. See crbug.com/314728. - base = os.path.dirname(os.path.realpath(__file__)) - if os.path.relpath(source): - source = os.path.join(base, source) - if os.path.relpath(dest): - dest = os.path.join(base, dest) - - args = ['xcrun', 'ibtool', '--errors', '--warnings', '--notices', - '--output-format', 'human-readable-text', '--compile', dest, source] - ibtool_section_re = re.compile(r'/\*.*\*/') - ibtool_re = re.compile(r'.*note:.*is clipping its content') - ibtoolout = subprocess.Popen(args, stdout=subprocess.PIPE) - current_section_header = None - for line in ibtoolout.stdout: - if ibtool_section_re.match(line): - current_section_header = line - elif not ibtool_re.match(line): - if current_section_header: - sys.stdout.write(current_section_header) - current_section_header = None - sys.stdout.write(line) - return ibtoolout.returncode - - def _ConvertToBinary(self, dest): - subprocess.check_call([ - 'xcrun', 'plutil', '-convert', 'binary1', '-o', dest, dest]) - - def _CopyStringsFile(self, source, dest, convert_to_binary): - """Copies a .strings file using iconv to reconvert the input into UTF-16.""" - input_code = self._DetectInputEncoding(source) or "UTF-8" - - # Xcode's CpyCopyStringsFile / builtin-copyStrings seems to call - # CFPropertyListCreateFromXMLData() behind the scenes; at least it prints - # CFPropertyListCreateFromXMLData(): Old-style plist parser: missing - # semicolon in dictionary. - # on invalid files. Do the same kind of validation. - import CoreFoundation - s = open(source, 'rb').read() - d = CoreFoundation.CFDataCreate(None, s, len(s)) - _, error = CoreFoundation.CFPropertyListCreateFromXMLData(None, d, 0, None) - if error: - return - - fp = open(dest, 'wb') - fp.write(s.decode(input_code).encode('UTF-16')) - fp.close() - - if convert_to_binary == 'True': - self._ConvertToBinary(dest) - - def _DetectInputEncoding(self, file_name): - """Reads the first few bytes from file_name and tries to guess the text - encoding. Returns None as a guess if it can't detect it.""" - fp = open(file_name, 'rb') - try: - header = fp.read(3) - except e: - fp.close() - return None - fp.close() - if header.startswith("\xFE\xFF"): - return "UTF-16" - elif header.startswith("\xFF\xFE"): - return "UTF-16" - elif header.startswith("\xEF\xBB\xBF"): - return "UTF-8" - else: - return None - - def ExecCopyInfoPlist(self, source, dest, convert_to_binary, *keys): - """Copies the |source| Info.plist to the destination directory |dest|.""" - # Read the source Info.plist into memory. - fd = open(source, 'r') - lines = fd.read() - fd.close() - - # Insert synthesized key/value pairs (e.g. BuildMachineOSBuild). - plist = plistlib.readPlistFromString(lines) - if keys: - plist = dict(plist.items() + json.loads(keys[0]).items()) - lines = plistlib.writePlistToString(plist) - - # Go through all the environment variables and replace them as variables in - # the file. - IDENT_RE = re.compile(r'[/\s]') - for key in os.environ: - if key.startswith('_'): - continue - evar = '${%s}' % key - evalue = os.environ[key] - lines = string.replace(lines, evar, evalue) - - # Xcode supports various suffices on environment variables, which are - # all undocumented. :rfc1034identifier is used in the standard project - # template these days, and :identifier was used earlier. They are used to - # convert non-url characters into things that look like valid urls -- - # except that the replacement character for :identifier, '_' isn't valid - # in a URL either -- oops, hence :rfc1034identifier was born. - evar = '${%s:identifier}' % key - evalue = IDENT_RE.sub('_', os.environ[key]) - lines = string.replace(lines, evar, evalue) - - evar = '${%s:rfc1034identifier}' % key - evalue = IDENT_RE.sub('-', os.environ[key]) - lines = string.replace(lines, evar, evalue) - - # Remove any keys with values that haven't been replaced. - lines = lines.split('\n') - for i in range(len(lines)): - if lines[i].strip().startswith("${"): - lines[i] = None - lines[i - 1] = None - lines = '\n'.join(filter(lambda x: x is not None, lines)) - - # Write out the file with variables replaced. - fd = open(dest, 'w') - fd.write(lines) - fd.close() - - # Now write out PkgInfo file now that the Info.plist file has been - # "compiled". - self._WritePkgInfo(dest) - - if convert_to_binary == 'True': - self._ConvertToBinary(dest) - - def _WritePkgInfo(self, info_plist): - """This writes the PkgInfo file from the data stored in Info.plist.""" - plist = plistlib.readPlist(info_plist) - if not plist: - return - - # Only create PkgInfo for executable types. - package_type = plist['CFBundlePackageType'] - if package_type != 'APPL': - return - - # The format of PkgInfo is eight characters, representing the bundle type - # and bundle signature, each four characters. If that is missing, four - # '?' characters are used instead. - signature_code = plist.get('CFBundleSignature', '????') - if len(signature_code) != 4: # Wrong length resets everything, too. - signature_code = '?' * 4 - - dest = os.path.join(os.path.dirname(info_plist), 'PkgInfo') - fp = open(dest, 'w') - fp.write('%s%s' % (package_type, signature_code)) - fp.close() - - def ExecFlock(self, lockfile, *cmd_list): - """Emulates the most basic behavior of Linux's flock(1).""" - # Rely on exception handling to report errors. - fd = os.open(lockfile, os.O_RDONLY|os.O_NOCTTY|os.O_CREAT, 0o666) - fcntl.flock(fd, fcntl.LOCK_EX) - return subprocess.call(cmd_list) - - def ExecFilterLibtool(self, *cmd_list): - """Calls libtool and filters out '/path/to/libtool: file: foo.o has no - symbols'.""" - libtool_re = re.compile(r'^.*libtool: file: .* has no symbols$') - libtool_re5 = re.compile( - r'^.*libtool: warning for library: ' + - r'.* the table of contents is empty ' + - r'\(no object file members in the library define global symbols\)$') - env = os.environ.copy() - # Ref: - # http://www.opensource.apple.com/source/cctools/cctools-809/misc/libtool.c - # The problem with this flag is that it resets the file mtime on the file to - # epoch=0, e.g. 1970-1-1 or 1969-12-31 depending on timezone. - env['ZERO_AR_DATE'] = '1' - libtoolout = subprocess.Popen(cmd_list, stderr=subprocess.PIPE, env=env) - _, err = libtoolout.communicate() - for line in err.splitlines(): - if not libtool_re.match(line) and not libtool_re5.match(line): - print >>sys.stderr, line - # Unconditionally touch the output .a file on the command line if present - # and the command succeeded. A bit hacky. - if not libtoolout.returncode: - for i in range(len(cmd_list) - 1): - if cmd_list[i] == "-o" and cmd_list[i+1].endswith('.a'): - os.utime(cmd_list[i+1], None) - break - return libtoolout.returncode - - def ExecPackageFramework(self, framework, version): - """Takes a path to Something.framework and the Current version of that and - sets up all the symlinks.""" - # Find the name of the binary based on the part before the ".framework". - binary = os.path.basename(framework).split('.')[0] - - CURRENT = 'Current' - RESOURCES = 'Resources' - VERSIONS = 'Versions' - - if not os.path.exists(os.path.join(framework, VERSIONS, version, binary)): - # Binary-less frameworks don't seem to contain symlinks (see e.g. - # chromium's out/Debug/org.chromium.Chromium.manifest/ bundle). - return - - # Move into the framework directory to set the symlinks correctly. - pwd = os.getcwd() - os.chdir(framework) - - # Set up the Current version. - self._Relink(version, os.path.join(VERSIONS, CURRENT)) - - # Set up the root symlinks. - self._Relink(os.path.join(VERSIONS, CURRENT, binary), binary) - self._Relink(os.path.join(VERSIONS, CURRENT, RESOURCES), RESOURCES) - - # Back to where we were before! - os.chdir(pwd) - - def _Relink(self, dest, link): - """Creates a symlink to |dest| named |link|. If |link| already exists, - it is overwritten.""" - if os.path.lexists(link): - os.remove(link) - os.symlink(dest, link) - - def ExecCompileXcassets(self, keys, *inputs): - """Compiles multiple .xcassets files into a single .car file. - - This invokes 'actool' to compile all the inputs .xcassets files. The - |keys| arguments is a json-encoded dictionary of extra arguments to - pass to 'actool' when the asset catalogs contains an application icon - or a launch image. - - Note that 'actool' does not create the Assets.car file if the asset - catalogs does not contains imageset. - """ - command_line = [ - 'xcrun', 'actool', '--output-format', 'human-readable-text', - '--compress-pngs', '--notices', '--warnings', '--errors', - ] - is_iphone_target = 'IPHONEOS_DEPLOYMENT_TARGET' in os.environ - if is_iphone_target: - platform = os.environ['CONFIGURATION'].split('-')[-1] - if platform not in ('iphoneos', 'iphonesimulator'): - platform = 'iphonesimulator' - command_line.extend([ - '--platform', platform, '--target-device', 'iphone', - '--target-device', 'ipad', '--minimum-deployment-target', - os.environ['IPHONEOS_DEPLOYMENT_TARGET'], '--compile', - os.path.abspath(os.environ['CONTENTS_FOLDER_PATH']), - ]) - else: - command_line.extend([ - '--platform', 'macosx', '--target-device', 'mac', - '--minimum-deployment-target', os.environ['MACOSX_DEPLOYMENT_TARGET'], - '--compile', - os.path.abspath(os.environ['UNLOCALIZED_RESOURCES_FOLDER_PATH']), - ]) - if keys: - keys = json.loads(keys) - for key, value in keys.iteritems(): - arg_name = '--' + key - if isinstance(value, bool): - if value: - command_line.append(arg_name) - elif isinstance(value, list): - for v in value: - command_line.append(arg_name) - command_line.append(str(v)) - else: - command_line.append(arg_name) - command_line.append(str(value)) - # Note: actool crashes if inputs path are relative, so use os.path.abspath - # to get absolute path name for inputs. - command_line.extend(map(os.path.abspath, inputs)) - subprocess.check_call(command_line) - - def ExecMergeInfoPlist(self, output, *inputs): - """Merge multiple .plist files into a single .plist file.""" - merged_plist = {} - for path in inputs: - plist = self._LoadPlistMaybeBinary(path) - self._MergePlist(merged_plist, plist) - plistlib.writePlist(merged_plist, output) - - def ExecCodeSignBundle(self, key, resource_rules, entitlements, provisioning): - """Code sign a bundle. - - This function tries to code sign an iOS bundle, following the same - algorithm as Xcode: - 1. copy ResourceRules.plist from the user or the SDK into the bundle, - 2. pick the provisioning profile that best match the bundle identifier, - and copy it into the bundle as embedded.mobileprovision, - 3. copy Entitlements.plist from user or SDK next to the bundle, - 4. code sign the bundle. - """ - resource_rules_path = self._InstallResourceRules(resource_rules) - substitutions, overrides = self._InstallProvisioningProfile( - provisioning, self._GetCFBundleIdentifier()) - entitlements_path = self._InstallEntitlements( - entitlements, substitutions, overrides) - subprocess.check_call([ - 'codesign', '--force', '--sign', key, '--resource-rules', - resource_rules_path, '--entitlements', entitlements_path, - os.path.join( - os.environ['TARGET_BUILD_DIR'], - os.environ['FULL_PRODUCT_NAME'])]) - - def _InstallResourceRules(self, resource_rules): - """Installs ResourceRules.plist from user or SDK into the bundle. - - Args: - resource_rules: string, optional, path to the ResourceRules.plist file - to use, default to "${SDKROOT}/ResourceRules.plist" - - Returns: - Path to the copy of ResourceRules.plist into the bundle. - """ - source_path = resource_rules - target_path = os.path.join( - os.environ['BUILT_PRODUCTS_DIR'], - os.environ['CONTENTS_FOLDER_PATH'], - 'ResourceRules.plist') - if not source_path: - source_path = os.path.join( - os.environ['SDKROOT'], 'ResourceRules.plist') - shutil.copy2(source_path, target_path) - return target_path - - def _InstallProvisioningProfile(self, profile, bundle_identifier): - """Installs embedded.mobileprovision into the bundle. - - Args: - profile: string, optional, short name of the .mobileprovision file - to use, if empty or the file is missing, the best file installed - will be used - bundle_identifier: string, value of CFBundleIdentifier from Info.plist - - Returns: - A tuple containing two dictionary: variables substitutions and values - to overrides when generating the entitlements file. - """ - source_path, provisioning_data, team_id = self._FindProvisioningProfile( - profile, bundle_identifier) - target_path = os.path.join( - os.environ['BUILT_PRODUCTS_DIR'], - os.environ['CONTENTS_FOLDER_PATH'], - 'embedded.mobileprovision') - shutil.copy2(source_path, target_path) - substitutions = self._GetSubstitutions(bundle_identifier, team_id + '.') - return substitutions, provisioning_data['Entitlements'] - - def _FindProvisioningProfile(self, profile, bundle_identifier): - """Finds the .mobileprovision file to use for signing the bundle. - - Checks all the installed provisioning profiles (or if the user specified - the PROVISIONING_PROFILE variable, only consult it) and select the most - specific that correspond to the bundle identifier. - - Args: - profile: string, optional, short name of the .mobileprovision file - to use, if empty or the file is missing, the best file installed - will be used - bundle_identifier: string, value of CFBundleIdentifier from Info.plist - - Returns: - A tuple of the path to the selected provisioning profile, the data of - the embedded plist in the provisioning profile and the team identifier - to use for code signing. - - Raises: - SystemExit: if no .mobileprovision can be used to sign the bundle. - """ - profiles_dir = os.path.join( - os.environ['HOME'], 'Library', 'MobileDevice', 'Provisioning Profiles') - if not os.path.isdir(profiles_dir): - print >>sys.stderr, ( - 'cannot find mobile provisioning for %s' % bundle_identifier) - sys.exit(1) - provisioning_profiles = None - if profile: - profile_path = os.path.join(profiles_dir, profile + '.mobileprovision') - if os.path.exists(profile_path): - provisioning_profiles = [profile_path] - if not provisioning_profiles: - provisioning_profiles = glob.glob( - os.path.join(profiles_dir, '*.mobileprovision')) - valid_provisioning_profiles = {} - for profile_path in provisioning_profiles: - profile_data = self._LoadProvisioningProfile(profile_path) - app_id_pattern = profile_data.get( - 'Entitlements', {}).get('application-identifier', '') - for team_identifier in profile_data.get('TeamIdentifier', []): - app_id = '%s.%s' % (team_identifier, bundle_identifier) - if fnmatch.fnmatch(app_id, app_id_pattern): - valid_provisioning_profiles[app_id_pattern] = ( - profile_path, profile_data, team_identifier) - if not valid_provisioning_profiles: - print >>sys.stderr, ( - 'cannot find mobile provisioning for %s' % bundle_identifier) - sys.exit(1) - # If the user has multiple provisioning profiles installed that can be - # used for ${bundle_identifier}, pick the most specific one (ie. the - # provisioning profile whose pattern is the longest). - selected_key = max(valid_provisioning_profiles, key=lambda v: len(v)) - return valid_provisioning_profiles[selected_key] - - def _LoadProvisioningProfile(self, profile_path): - """Extracts the plist embedded in a provisioning profile. - - Args: - profile_path: string, path to the .mobileprovision file - - Returns: - Content of the plist embedded in the provisioning profile as a dictionary. - """ - with tempfile.NamedTemporaryFile() as temp: - subprocess.check_call([ - 'security', 'cms', '-D', '-i', profile_path, '-o', temp.name]) - return self._LoadPlistMaybeBinary(temp.name) - - def _MergePlist(self, merged_plist, plist): - """Merge |plist| into |merged_plist|.""" - for key, value in plist.iteritems(): - if isinstance(value, dict): - merged_value = merged_plist.get(key, {}) - if isinstance(merged_value, dict): - self._MergePlist(merged_value, value) - merged_plist[key] = merged_value - else: - merged_plist[key] = value - else: - merged_plist[key] = value - - def _LoadPlistMaybeBinary(self, plist_path): - """Loads into a memory a plist possibly encoded in binary format. - - This is a wrapper around plistlib.readPlist that tries to convert the - plist to the XML format if it can't be parsed (assuming that it is in - the binary format). - - Args: - plist_path: string, path to a plist file, in XML or binary format - - Returns: - Content of the plist as a dictionary. - """ - try: - # First, try to read the file using plistlib that only supports XML, - # and if an exception is raised, convert a temporary copy to XML and - # load that copy. - return plistlib.readPlist(plist_path) - except: - pass - with tempfile.NamedTemporaryFile() as temp: - shutil.copy2(plist_path, temp.name) - subprocess.check_call(['plutil', '-convert', 'xml1', temp.name]) - return plistlib.readPlist(temp.name) - - def _GetSubstitutions(self, bundle_identifier, app_identifier_prefix): - """Constructs a dictionary of variable substitutions for Entitlements.plist. - - Args: - bundle_identifier: string, value of CFBundleIdentifier from Info.plist - app_identifier_prefix: string, value for AppIdentifierPrefix - - Returns: - Dictionary of substitutions to apply when generating Entitlements.plist. - """ - return { - 'CFBundleIdentifier': bundle_identifier, - 'AppIdentifierPrefix': app_identifier_prefix, - } - - def _GetCFBundleIdentifier(self): - """Extracts CFBundleIdentifier value from Info.plist in the bundle. - - Returns: - Value of CFBundleIdentifier in the Info.plist located in the bundle. - """ - info_plist_path = os.path.join( - os.environ['TARGET_BUILD_DIR'], - os.environ['INFOPLIST_PATH']) - info_plist_data = self._LoadPlistMaybeBinary(info_plist_path) - return info_plist_data['CFBundleIdentifier'] - - def _InstallEntitlements(self, entitlements, substitutions, overrides): - """Generates and install the ${BundleName}.xcent entitlements file. - - Expands variables "$(variable)" pattern in the source entitlements file, - add extra entitlements defined in the .mobileprovision file and the copy - the generated plist to "${BundlePath}.xcent". - - Args: - entitlements: string, optional, path to the Entitlements.plist template - to use, defaults to "${SDKROOT}/Entitlements.plist" - substitutions: dictionary, variable substitutions - overrides: dictionary, values to add to the entitlements - - Returns: - Path to the generated entitlements file. - """ - source_path = entitlements - target_path = os.path.join( - os.environ['BUILT_PRODUCTS_DIR'], - os.environ['PRODUCT_NAME'] + '.xcent') - if not source_path: - source_path = os.path.join( - os.environ['SDKROOT'], - 'Entitlements.plist') - shutil.copy2(source_path, target_path) - data = self._LoadPlistMaybeBinary(target_path) - data = self._ExpandVariables(data, substitutions) - if overrides: - for key in overrides: - if key not in data: - data[key] = overrides[key] - plistlib.writePlist(data, target_path) - return target_path - - def _ExpandVariables(self, data, substitutions): - """Expands variables "$(variable)" in data. - - Args: - data: object, can be either string, list or dictionary - substitutions: dictionary, variable substitutions to perform - - Returns: - Copy of data where each references to "$(variable)" has been replaced - by the corresponding value found in substitutions, or left intact if - the key was not found. - """ - if isinstance(data, str): - for key, value in substitutions.iteritems(): - data = data.replace('$(%s)' % key, value) - return data - if isinstance(data, list): - return [self._ExpandVariables(v, substitutions) for v in data] - if isinstance(data, dict): - return {k: self._ExpandVariables(data[k], substitutions) for k in data} - return data - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py deleted file mode 100644 index ca67b122..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +++ /dev/null @@ -1,1087 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -""" -This module helps emulate Visual Studio 2008 behavior on top of other -build systems, primarily ninja. -""" - -import os -import re -import subprocess -import sys - -from gyp.common import OrderedSet -import gyp.MSVSUtil -import gyp.MSVSVersion - - -windows_quoter_regex = re.compile(r'(\\*)"') - - -def QuoteForRspFile(arg): - """Quote a command line argument so that it appears as one argument when - processed via cmd.exe and parsed by CommandLineToArgvW (as is typical for - Windows programs).""" - # See http://goo.gl/cuFbX and http://goo.gl/dhPnp including the comment - # threads. This is actually the quoting rules for CommandLineToArgvW, not - # for the shell, because the shell doesn't do anything in Windows. This - # works more or less because most programs (including the compiler, etc.) - # use that function to handle command line arguments. - - # For a literal quote, CommandLineToArgvW requires 2n+1 backslashes - # preceding it, and results in n backslashes + the quote. So we substitute - # in 2* what we match, +1 more, plus the quote. - arg = windows_quoter_regex.sub(lambda mo: 2 * mo.group(1) + '\\"', arg) - - # %'s also need to be doubled otherwise they're interpreted as batch - # positional arguments. Also make sure to escape the % so that they're - # passed literally through escaping so they can be singled to just the - # original %. Otherwise, trying to pass the literal representation that - # looks like an environment variable to the shell (e.g. %PATH%) would fail. - arg = arg.replace('%', '%%') - - # These commands are used in rsp files, so no escaping for the shell (via ^) - # is necessary. - - # Finally, wrap the whole thing in quotes so that the above quote rule - # applies and whitespace isn't a word break. - return '"' + arg + '"' - - -def EncodeRspFileList(args): - """Process a list of arguments using QuoteCmdExeArgument.""" - # Note that the first argument is assumed to be the command. Don't add - # quotes around it because then built-ins like 'echo', etc. won't work. - # Take care to normpath only the path in the case of 'call ../x.bat' because - # otherwise the whole thing is incorrectly interpreted as a path and not - # normalized correctly. - if not args: return '' - if args[0].startswith('call '): - call, program = args[0].split(' ', 1) - program = call + ' ' + os.path.normpath(program) - else: - program = os.path.normpath(args[0]) - return program + ' ' + ' '.join(QuoteForRspFile(arg) for arg in args[1:]) - - -def _GenericRetrieve(root, default, path): - """Given a list of dictionary keys |path| and a tree of dicts |root|, find - value at path, or return |default| if any of the path doesn't exist.""" - if not root: - return default - if not path: - return root - return _GenericRetrieve(root.get(path[0]), default, path[1:]) - - -def _AddPrefix(element, prefix): - """Add |prefix| to |element| or each subelement if element is iterable.""" - if element is None: - return element - # Note, not Iterable because we don't want to handle strings like that. - if isinstance(element, list) or isinstance(element, tuple): - return [prefix + e for e in element] - else: - return prefix + element - - -def _DoRemapping(element, map): - """If |element| then remap it through |map|. If |element| is iterable then - each item will be remapped. Any elements not found will be removed.""" - if map is not None and element is not None: - if not callable(map): - map = map.get # Assume it's a dict, otherwise a callable to do the remap. - if isinstance(element, list) or isinstance(element, tuple): - element = filter(None, [map(elem) for elem in element]) - else: - element = map(element) - return element - - -def _AppendOrReturn(append, element): - """If |append| is None, simply return |element|. If |append| is not None, - then add |element| to it, adding each item in |element| if it's a list or - tuple.""" - if append is not None and element is not None: - if isinstance(element, list) or isinstance(element, tuple): - append.extend(element) - else: - append.append(element) - else: - return element - - -def _FindDirectXInstallation(): - """Try to find an installation location for the DirectX SDK. Check for the - standard environment variable, and if that doesn't exist, try to find - via the registry. May return None if not found in either location.""" - # Return previously calculated value, if there is one - if hasattr(_FindDirectXInstallation, 'dxsdk_dir'): - return _FindDirectXInstallation.dxsdk_dir - - dxsdk_dir = os.environ.get('DXSDK_DIR') - if not dxsdk_dir: - # Setup params to pass to and attempt to launch reg.exe. - cmd = ['reg.exe', 'query', r'HKLM\Software\Microsoft\DirectX', '/s'] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - for line in p.communicate()[0].splitlines(): - if 'InstallPath' in line: - dxsdk_dir = line.split(' ')[3] + "\\" - - # Cache return value - _FindDirectXInstallation.dxsdk_dir = dxsdk_dir - return dxsdk_dir - - -def GetGlobalVSMacroEnv(vs_version): - """Get a dict of variables mapping internal VS macro names to their gyp - equivalents. Returns all variables that are independent of the target.""" - env = {} - # '$(VSInstallDir)' and '$(VCInstallDir)' are available when and only when - # Visual Studio is actually installed. - if vs_version.Path(): - env['$(VSInstallDir)'] = vs_version.Path() - env['$(VCInstallDir)'] = os.path.join(vs_version.Path(), 'VC') + '\\' - # Chromium uses DXSDK_DIR in include/lib paths, but it may or may not be - # set. This happens when the SDK is sync'd via src-internal, rather than - # by typical end-user installation of the SDK. If it's not set, we don't - # want to leave the unexpanded variable in the path, so simply strip it. - dxsdk_dir = _FindDirectXInstallation() - env['$(DXSDK_DIR)'] = dxsdk_dir if dxsdk_dir else '' - # Try to find an installation location for the Windows DDK by checking - # the WDK_DIR environment variable, may be None. - env['$(WDK_DIR)'] = os.environ.get('WDK_DIR', '') - return env - -def ExtractSharedMSVSSystemIncludes(configs, generator_flags): - """Finds msvs_system_include_dirs that are common to all targets, removes - them from all targets, and returns an OrderedSet containing them.""" - all_system_includes = OrderedSet( - configs[0].get('msvs_system_include_dirs', [])) - for config in configs[1:]: - system_includes = config.get('msvs_system_include_dirs', []) - all_system_includes = all_system_includes & OrderedSet(system_includes) - if not all_system_includes: - return None - # Expand macros in all_system_includes. - env = GetGlobalVSMacroEnv(GetVSVersion(generator_flags)) - expanded_system_includes = OrderedSet([ExpandMacros(include, env) - for include in all_system_includes]) - if any(['$' in include for include in expanded_system_includes]): - # Some path relies on target-specific variables, bail. - return None - - # Remove system includes shared by all targets from the targets. - for config in configs: - includes = config.get('msvs_system_include_dirs', []) - if includes: # Don't insert a msvs_system_include_dirs key if not needed. - # This must check the unexpanded includes list: - new_includes = [i for i in includes if i not in all_system_includes] - config['msvs_system_include_dirs'] = new_includes - return expanded_system_includes - - -class MsvsSettings(object): - """A class that understands the gyp 'msvs_...' values (especially the - msvs_settings field). They largely correpond to the VS2008 IDE DOM. This - class helps map those settings to command line options.""" - - def __init__(self, spec, generator_flags): - self.spec = spec - self.vs_version = GetVSVersion(generator_flags) - - supported_fields = [ - ('msvs_configuration_attributes', dict), - ('msvs_settings', dict), - ('msvs_system_include_dirs', list), - ('msvs_disabled_warnings', list), - ('msvs_precompiled_header', str), - ('msvs_precompiled_source', str), - ('msvs_configuration_platform', str), - ('msvs_target_platform', str), - ] - configs = spec['configurations'] - for field, default in supported_fields: - setattr(self, field, {}) - for configname, config in configs.iteritems(): - getattr(self, field)[configname] = config.get(field, default()) - - self.msvs_cygwin_dirs = spec.get('msvs_cygwin_dirs', ['.']) - - unsupported_fields = [ - 'msvs_prebuild', - 'msvs_postbuild', - ] - unsupported = [] - for field in unsupported_fields: - for config in configs.values(): - if field in config: - unsupported += ["%s not supported (target %s)." % - (field, spec['target_name'])] - if unsupported: - raise Exception('\n'.join(unsupported)) - - def GetExtension(self): - """Returns the extension for the target, with no leading dot. - - Uses 'product_extension' if specified, otherwise uses MSVS defaults based on - the target type. - """ - ext = self.spec.get('product_extension', None) - if ext: - return ext - return gyp.MSVSUtil.TARGET_TYPE_EXT.get(self.spec['type'], '') - - def GetVSMacroEnv(self, base_to_build=None, config=None): - """Get a dict of variables mapping internal VS macro names to their gyp - equivalents.""" - target_platform = 'Win32' if self.GetArch(config) == 'x86' else 'x64' - target_name = self.spec.get('product_prefix', '') + \ - self.spec.get('product_name', self.spec['target_name']) - target_dir = base_to_build + '\\' if base_to_build else '' - target_ext = '.' + self.GetExtension() - target_file_name = target_name + target_ext - - replacements = { - '$(InputName)': '${root}', - '$(InputPath)': '${source}', - '$(IntDir)': '$!INTERMEDIATE_DIR', - '$(OutDir)\\': target_dir, - '$(PlatformName)': target_platform, - '$(ProjectDir)\\': '', - '$(ProjectName)': self.spec['target_name'], - '$(TargetDir)\\': target_dir, - '$(TargetExt)': target_ext, - '$(TargetFileName)': target_file_name, - '$(TargetName)': target_name, - '$(TargetPath)': os.path.join(target_dir, target_file_name), - } - replacements.update(GetGlobalVSMacroEnv(self.vs_version)) - return replacements - - def ConvertVSMacros(self, s, base_to_build=None, config=None): - """Convert from VS macro names to something equivalent.""" - env = self.GetVSMacroEnv(base_to_build, config=config) - return ExpandMacros(s, env) - - def AdjustLibraries(self, libraries): - """Strip -l from library if it's specified with that.""" - libs = [lib[2:] if lib.startswith('-l') else lib for lib in libraries] - return [lib + '.lib' if not lib.endswith('.lib') else lib for lib in libs] - - def _GetAndMunge(self, field, path, default, prefix, append, map): - """Retrieve a value from |field| at |path| or return |default|. If - |append| is specified, and the item is found, it will be appended to that - object instead of returned. If |map| is specified, results will be - remapped through |map| before being returned or appended.""" - result = _GenericRetrieve(field, default, path) - result = _DoRemapping(result, map) - result = _AddPrefix(result, prefix) - return _AppendOrReturn(append, result) - - class _GetWrapper(object): - def __init__(self, parent, field, base_path, append=None): - self.parent = parent - self.field = field - self.base_path = [base_path] - self.append = append - def __call__(self, name, map=None, prefix='', default=None): - return self.parent._GetAndMunge(self.field, self.base_path + [name], - default=default, prefix=prefix, append=self.append, map=map) - - def GetArch(self, config): - """Get architecture based on msvs_configuration_platform and - msvs_target_platform. Returns either 'x86' or 'x64'.""" - configuration_platform = self.msvs_configuration_platform.get(config, '') - platform = self.msvs_target_platform.get(config, '') - if not platform: # If no specific override, use the configuration's. - platform = configuration_platform - # Map from platform to architecture. - return {'Win32': 'x86', 'x64': 'x64'}.get(platform, 'x86') - - def _TargetConfig(self, config): - """Returns the target-specific configuration.""" - # There's two levels of architecture/platform specification in VS. The - # first level is globally for the configuration (this is what we consider - # "the" config at the gyp level, which will be something like 'Debug' or - # 'Release_x64'), and a second target-specific configuration, which is an - # override for the global one. |config| is remapped here to take into - # account the local target-specific overrides to the global configuration. - arch = self.GetArch(config) - if arch == 'x64' and not config.endswith('_x64'): - config += '_x64' - if arch == 'x86' and config.endswith('_x64'): - config = config.rsplit('_', 1)[0] - return config - - def _Setting(self, path, config, - default=None, prefix='', append=None, map=None): - """_GetAndMunge for msvs_settings.""" - return self._GetAndMunge( - self.msvs_settings[config], path, default, prefix, append, map) - - def _ConfigAttrib(self, path, config, - default=None, prefix='', append=None, map=None): - """_GetAndMunge for msvs_configuration_attributes.""" - return self._GetAndMunge( - self.msvs_configuration_attributes[config], - path, default, prefix, append, map) - - def AdjustIncludeDirs(self, include_dirs, config): - """Updates include_dirs to expand VS specific paths, and adds the system - include dirs used for platform SDK and similar.""" - config = self._TargetConfig(config) - includes = include_dirs + self.msvs_system_include_dirs[config] - includes.extend(self._Setting( - ('VCCLCompilerTool', 'AdditionalIncludeDirectories'), config, default=[])) - return [self.ConvertVSMacros(p, config=config) for p in includes] - - def AdjustMidlIncludeDirs(self, midl_include_dirs, config): - """Updates midl_include_dirs to expand VS specific paths, and adds the - system include dirs used for platform SDK and similar.""" - config = self._TargetConfig(config) - includes = midl_include_dirs + self.msvs_system_include_dirs[config] - includes.extend(self._Setting( - ('VCMIDLTool', 'AdditionalIncludeDirectories'), config, default=[])) - return [self.ConvertVSMacros(p, config=config) for p in includes] - - def GetComputedDefines(self, config): - """Returns the set of defines that are injected to the defines list based - on other VS settings.""" - config = self._TargetConfig(config) - defines = [] - if self._ConfigAttrib(['CharacterSet'], config) == '1': - defines.extend(('_UNICODE', 'UNICODE')) - if self._ConfigAttrib(['CharacterSet'], config) == '2': - defines.append('_MBCS') - defines.extend(self._Setting( - ('VCCLCompilerTool', 'PreprocessorDefinitions'), config, default=[])) - return defines - - def GetCompilerPdbName(self, config, expand_special): - """Get the pdb file name that should be used for compiler invocations, or - None if there's no explicit name specified.""" - config = self._TargetConfig(config) - pdbname = self._Setting( - ('VCCLCompilerTool', 'ProgramDataBaseFileName'), config) - if pdbname: - pdbname = expand_special(self.ConvertVSMacros(pdbname)) - return pdbname - - def GetMapFileName(self, config, expand_special): - """Gets the explicitly overriden map file name for a target or returns None - if it's not set.""" - config = self._TargetConfig(config) - map_file = self._Setting(('VCLinkerTool', 'MapFileName'), config) - if map_file: - map_file = expand_special(self.ConvertVSMacros(map_file, config=config)) - return map_file - - def GetOutputName(self, config, expand_special): - """Gets the explicitly overridden output name for a target or returns None - if it's not overridden.""" - config = self._TargetConfig(config) - type = self.spec['type'] - root = 'VCLibrarianTool' if type == 'static_library' else 'VCLinkerTool' - # TODO(scottmg): Handle OutputDirectory without OutputFile. - output_file = self._Setting((root, 'OutputFile'), config) - if output_file: - output_file = expand_special(self.ConvertVSMacros( - output_file, config=config)) - return output_file - - def GetPDBName(self, config, expand_special, default): - """Gets the explicitly overridden pdb name for a target or returns - default if it's not overridden, or if no pdb will be generated.""" - config = self._TargetConfig(config) - output_file = self._Setting(('VCLinkerTool', 'ProgramDatabaseFile'), config) - generate_debug_info = self._Setting( - ('VCLinkerTool', 'GenerateDebugInformation'), config) - if generate_debug_info == 'true': - if output_file: - return expand_special(self.ConvertVSMacros(output_file, config=config)) - else: - return default - else: - return None - - def GetNoImportLibrary(self, config): - """If NoImportLibrary: true, ninja will not expect the output to include - an import library.""" - config = self._TargetConfig(config) - noimplib = self._Setting(('NoImportLibrary',), config) - return noimplib == 'true' - - def GetAsmflags(self, config): - """Returns the flags that need to be added to ml invocations.""" - config = self._TargetConfig(config) - asmflags = [] - safeseh = self._Setting(('MASM', 'UseSafeExceptionHandlers'), config) - if safeseh == 'true': - asmflags.append('/safeseh') - return asmflags - - def GetCflags(self, config): - """Returns the flags that need to be added to .c and .cc compilations.""" - config = self._TargetConfig(config) - cflags = [] - cflags.extend(['/wd' + w for w in self.msvs_disabled_warnings[config]]) - cl = self._GetWrapper(self, self.msvs_settings[config], - 'VCCLCompilerTool', append=cflags) - cl('Optimization', - map={'0': 'd', '1': '1', '2': '2', '3': 'x'}, prefix='/O', default='2') - cl('InlineFunctionExpansion', prefix='/Ob') - cl('DisableSpecificWarnings', prefix='/wd') - cl('StringPooling', map={'true': '/GF'}) - cl('EnableFiberSafeOptimizations', map={'true': '/GT'}) - cl('OmitFramePointers', map={'false': '-', 'true': ''}, prefix='/Oy') - cl('EnableIntrinsicFunctions', map={'false': '-', 'true': ''}, prefix='/Oi') - cl('FavorSizeOrSpeed', map={'1': 't', '2': 's'}, prefix='/O') - cl('FloatingPointModel', - map={'0': 'precise', '1': 'strict', '2': 'fast'}, prefix='/fp:', - default='0') - cl('CompileAsManaged', map={'false': '', 'true': '/clr'}) - cl('WholeProgramOptimization', map={'true': '/GL'}) - cl('WarningLevel', prefix='/W') - cl('WarnAsError', map={'true': '/WX'}) - cl('CallingConvention', - map={'0': 'd', '1': 'r', '2': 'z', '3': 'v'}, prefix='/G') - cl('DebugInformationFormat', - map={'1': '7', '3': 'i', '4': 'I'}, prefix='/Z') - cl('RuntimeTypeInfo', map={'true': '/GR', 'false': '/GR-'}) - cl('EnableFunctionLevelLinking', map={'true': '/Gy', 'false': '/Gy-'}) - cl('MinimalRebuild', map={'true': '/Gm'}) - cl('BufferSecurityCheck', map={'true': '/GS', 'false': '/GS-'}) - cl('BasicRuntimeChecks', map={'1': 's', '2': 'u', '3': '1'}, prefix='/RTC') - cl('RuntimeLibrary', - map={'0': 'T', '1': 'Td', '2': 'D', '3': 'Dd'}, prefix='/M') - cl('ExceptionHandling', map={'1': 'sc','2': 'a'}, prefix='/EH') - cl('DefaultCharIsUnsigned', map={'true': '/J'}) - cl('TreatWChar_tAsBuiltInType', - map={'false': '-', 'true': ''}, prefix='/Zc:wchar_t') - cl('EnablePREfast', map={'true': '/analyze'}) - cl('AdditionalOptions', prefix='') - cl('EnableEnhancedInstructionSet', - map={'1': 'SSE', '2': 'SSE2', '3': 'AVX', '4': 'IA32', '5': 'AVX2'}, - prefix='/arch:') - cflags.extend(['/FI' + f for f in self._Setting( - ('VCCLCompilerTool', 'ForcedIncludeFiles'), config, default=[])]) - if self.vs_version.short_name in ('2013', '2013e', '2015'): - # New flag required in 2013 to maintain previous PDB behavior. - cflags.append('/FS') - # ninja handles parallelism by itself, don't have the compiler do it too. - cflags = filter(lambda x: not x.startswith('/MP'), cflags) - return cflags - - def _GetPchFlags(self, config, extension): - """Get the flags to be added to the cflags for precompiled header support. - """ - config = self._TargetConfig(config) - # The PCH is only built once by a particular source file. Usage of PCH must - # only be for the same language (i.e. C vs. C++), so only include the pch - # flags when the language matches. - if self.msvs_precompiled_header[config]: - source_ext = os.path.splitext(self.msvs_precompiled_source[config])[1] - if _LanguageMatchesForPch(source_ext, extension): - pch = os.path.split(self.msvs_precompiled_header[config])[1] - return ['/Yu' + pch, '/FI' + pch, '/Fp${pchprefix}.' + pch + '.pch'] - return [] - - def GetCflagsC(self, config): - """Returns the flags that need to be added to .c compilations.""" - config = self._TargetConfig(config) - return self._GetPchFlags(config, '.c') - - def GetCflagsCC(self, config): - """Returns the flags that need to be added to .cc compilations.""" - config = self._TargetConfig(config) - return ['/TP'] + self._GetPchFlags(config, '.cc') - - def _GetAdditionalLibraryDirectories(self, root, config, gyp_to_build_path): - """Get and normalize the list of paths in AdditionalLibraryDirectories - setting.""" - config = self._TargetConfig(config) - libpaths = self._Setting((root, 'AdditionalLibraryDirectories'), - config, default=[]) - libpaths = [os.path.normpath( - gyp_to_build_path(self.ConvertVSMacros(p, config=config))) - for p in libpaths] - return ['/LIBPATH:"' + p + '"' for p in libpaths] - - def GetLibFlags(self, config, gyp_to_build_path): - """Returns the flags that need to be added to lib commands.""" - config = self._TargetConfig(config) - libflags = [] - lib = self._GetWrapper(self, self.msvs_settings[config], - 'VCLibrarianTool', append=libflags) - libflags.extend(self._GetAdditionalLibraryDirectories( - 'VCLibrarianTool', config, gyp_to_build_path)) - lib('LinkTimeCodeGeneration', map={'true': '/LTCG'}) - lib('TargetMachine', map={'1': 'X86', '17': 'X64', '3': 'ARM'}, - prefix='/MACHINE:') - lib('AdditionalOptions') - return libflags - - def GetDefFile(self, gyp_to_build_path): - """Returns the .def file from sources, if any. Otherwise returns None.""" - spec = self.spec - if spec['type'] in ('shared_library', 'loadable_module', 'executable'): - def_files = [s for s in spec.get('sources', []) if s.endswith('.def')] - if len(def_files) == 1: - return gyp_to_build_path(def_files[0]) - elif len(def_files) > 1: - raise Exception("Multiple .def files") - return None - - def _GetDefFileAsLdflags(self, ldflags, gyp_to_build_path): - """.def files get implicitly converted to a ModuleDefinitionFile for the - linker in the VS generator. Emulate that behaviour here.""" - def_file = self.GetDefFile(gyp_to_build_path) - if def_file: - ldflags.append('/DEF:"%s"' % def_file) - - def GetPGDName(self, config, expand_special): - """Gets the explicitly overridden pgd name for a target or returns None - if it's not overridden.""" - config = self._TargetConfig(config) - output_file = self._Setting( - ('VCLinkerTool', 'ProfileGuidedDatabase'), config) - if output_file: - output_file = expand_special(self.ConvertVSMacros( - output_file, config=config)) - return output_file - - def GetLdflags(self, config, gyp_to_build_path, expand_special, - manifest_base_name, output_name, is_executable, build_dir): - """Returns the flags that need to be added to link commands, and the - manifest files.""" - config = self._TargetConfig(config) - ldflags = [] - ld = self._GetWrapper(self, self.msvs_settings[config], - 'VCLinkerTool', append=ldflags) - self._GetDefFileAsLdflags(ldflags, gyp_to_build_path) - ld('GenerateDebugInformation', map={'true': '/DEBUG'}) - ld('TargetMachine', map={'1': 'X86', '17': 'X64', '3': 'ARM'}, - prefix='/MACHINE:') - ldflags.extend(self._GetAdditionalLibraryDirectories( - 'VCLinkerTool', config, gyp_to_build_path)) - ld('DelayLoadDLLs', prefix='/DELAYLOAD:') - ld('TreatLinkerWarningAsErrors', prefix='/WX', - map={'true': '', 'false': ':NO'}) - out = self.GetOutputName(config, expand_special) - if out: - ldflags.append('/OUT:' + out) - pdb = self.GetPDBName(config, expand_special, output_name + '.pdb') - if pdb: - ldflags.append('/PDB:' + pdb) - pgd = self.GetPGDName(config, expand_special) - if pgd: - ldflags.append('/PGD:' + pgd) - map_file = self.GetMapFileName(config, expand_special) - ld('GenerateMapFile', map={'true': '/MAP:' + map_file if map_file - else '/MAP'}) - ld('MapExports', map={'true': '/MAPINFO:EXPORTS'}) - ld('AdditionalOptions', prefix='') - - minimum_required_version = self._Setting( - ('VCLinkerTool', 'MinimumRequiredVersion'), config, default='') - if minimum_required_version: - minimum_required_version = ',' + minimum_required_version - ld('SubSystem', - map={'1': 'CONSOLE%s' % minimum_required_version, - '2': 'WINDOWS%s' % minimum_required_version}, - prefix='/SUBSYSTEM:') - - stack_reserve_size = self._Setting( - ('VCLinkerTool', 'StackReserveSize'), config, default='') - if stack_reserve_size: - stack_commit_size = self._Setting( - ('VCLinkerTool', 'StackCommitSize'), config, default='') - if stack_commit_size: - stack_commit_size = ',' + stack_commit_size - ldflags.append('/STACK:%s%s' % (stack_reserve_size, stack_commit_size)) - - ld('TerminalServerAware', map={'1': ':NO', '2': ''}, prefix='/TSAWARE') - ld('LinkIncremental', map={'1': ':NO', '2': ''}, prefix='/INCREMENTAL') - ld('BaseAddress', prefix='/BASE:') - ld('FixedBaseAddress', map={'1': ':NO', '2': ''}, prefix='/FIXED') - ld('RandomizedBaseAddress', - map={'1': ':NO', '2': ''}, prefix='/DYNAMICBASE') - ld('DataExecutionPrevention', - map={'1': ':NO', '2': ''}, prefix='/NXCOMPAT') - ld('OptimizeReferences', map={'1': 'NOREF', '2': 'REF'}, prefix='/OPT:') - ld('ForceSymbolReferences', prefix='/INCLUDE:') - ld('EnableCOMDATFolding', map={'1': 'NOICF', '2': 'ICF'}, prefix='/OPT:') - ld('LinkTimeCodeGeneration', - map={'1': '', '2': ':PGINSTRUMENT', '3': ':PGOPTIMIZE', - '4': ':PGUPDATE'}, - prefix='/LTCG') - ld('IgnoreDefaultLibraryNames', prefix='/NODEFAULTLIB:') - ld('ResourceOnlyDLL', map={'true': '/NOENTRY'}) - ld('EntryPointSymbol', prefix='/ENTRY:') - ld('Profile', map={'true': '/PROFILE'}) - ld('LargeAddressAware', - map={'1': ':NO', '2': ''}, prefix='/LARGEADDRESSAWARE') - # TODO(scottmg): This should sort of be somewhere else (not really a flag). - ld('AdditionalDependencies', prefix='') - - if self.GetArch(config) == 'x86': - safeseh_default = 'true' - else: - safeseh_default = None - ld('ImageHasSafeExceptionHandlers', - map={'false': ':NO', 'true': ''}, prefix='/SAFESEH', - default=safeseh_default) - - # If the base address is not specifically controlled, DYNAMICBASE should - # be on by default. - base_flags = filter(lambda x: 'DYNAMICBASE' in x or x == '/FIXED', - ldflags) - if not base_flags: - ldflags.append('/DYNAMICBASE') - - # If the NXCOMPAT flag has not been specified, default to on. Despite the - # documentation that says this only defaults to on when the subsystem is - # Vista or greater (which applies to the linker), the IDE defaults it on - # unless it's explicitly off. - if not filter(lambda x: 'NXCOMPAT' in x, ldflags): - ldflags.append('/NXCOMPAT') - - have_def_file = filter(lambda x: x.startswith('/DEF:'), ldflags) - manifest_flags, intermediate_manifest, manifest_files = \ - self._GetLdManifestFlags(config, manifest_base_name, gyp_to_build_path, - is_executable and not have_def_file, build_dir) - ldflags.extend(manifest_flags) - return ldflags, intermediate_manifest, manifest_files - - def _GetLdManifestFlags(self, config, name, gyp_to_build_path, - allow_isolation, build_dir): - """Returns a 3-tuple: - - the set of flags that need to be added to the link to generate - a default manifest - - the intermediate manifest that the linker will generate that should be - used to assert it doesn't add anything to the merged one. - - the list of all the manifest files to be merged by the manifest tool and - included into the link.""" - generate_manifest = self._Setting(('VCLinkerTool', 'GenerateManifest'), - config, - default='true') - if generate_manifest != 'true': - # This means not only that the linker should not generate the intermediate - # manifest but also that the manifest tool should do nothing even when - # additional manifests are specified. - return ['/MANIFEST:NO'], [], [] - - output_name = name + '.intermediate.manifest' - flags = [ - '/MANIFEST', - '/ManifestFile:' + output_name, - ] - - # Instead of using the MANIFESTUAC flags, we generate a .manifest to - # include into the list of manifests. This allows us to avoid the need to - # do two passes during linking. The /MANIFEST flag and /ManifestFile are - # still used, and the intermediate manifest is used to assert that the - # final manifest we get from merging all the additional manifest files - # (plus the one we generate here) isn't modified by merging the - # intermediate into it. - - # Always NO, because we generate a manifest file that has what we want. - flags.append('/MANIFESTUAC:NO') - - config = self._TargetConfig(config) - enable_uac = self._Setting(('VCLinkerTool', 'EnableUAC'), config, - default='true') - manifest_files = [] - generated_manifest_outer = \ -"" \ -"%s" \ -"" - if enable_uac == 'true': - execution_level = self._Setting(('VCLinkerTool', 'UACExecutionLevel'), - config, default='0') - execution_level_map = { - '0': 'asInvoker', - '1': 'highestAvailable', - '2': 'requireAdministrator' - } - - ui_access = self._Setting(('VCLinkerTool', 'UACUIAccess'), config, - default='false') - - inner = ''' - - - - - - -''' % (execution_level_map[execution_level], ui_access) - else: - inner = '' - - generated_manifest_contents = generated_manifest_outer % inner - generated_name = name + '.generated.manifest' - # Need to join with the build_dir here as we're writing it during - # generation time, but we return the un-joined version because the build - # will occur in that directory. We only write the file if the contents - # have changed so that simply regenerating the project files doesn't - # cause a relink. - build_dir_generated_name = os.path.join(build_dir, generated_name) - gyp.common.EnsureDirExists(build_dir_generated_name) - f = gyp.common.WriteOnDiff(build_dir_generated_name) - f.write(generated_manifest_contents) - f.close() - manifest_files = [generated_name] - - if allow_isolation: - flags.append('/ALLOWISOLATION') - - manifest_files += self._GetAdditionalManifestFiles(config, - gyp_to_build_path) - return flags, output_name, manifest_files - - def _GetAdditionalManifestFiles(self, config, gyp_to_build_path): - """Gets additional manifest files that are added to the default one - generated by the linker.""" - files = self._Setting(('VCManifestTool', 'AdditionalManifestFiles'), config, - default=[]) - if isinstance(files, str): - files = files.split(';') - return [os.path.normpath( - gyp_to_build_path(self.ConvertVSMacros(f, config=config))) - for f in files] - - def IsUseLibraryDependencyInputs(self, config): - """Returns whether the target should be linked via Use Library Dependency - Inputs (using component .objs of a given .lib).""" - config = self._TargetConfig(config) - uldi = self._Setting(('VCLinkerTool', 'UseLibraryDependencyInputs'), config) - return uldi == 'true' - - def IsEmbedManifest(self, config): - """Returns whether manifest should be linked into binary.""" - config = self._TargetConfig(config) - embed = self._Setting(('VCManifestTool', 'EmbedManifest'), config, - default='true') - return embed == 'true' - - def IsLinkIncremental(self, config): - """Returns whether the target should be linked incrementally.""" - config = self._TargetConfig(config) - link_inc = self._Setting(('VCLinkerTool', 'LinkIncremental'), config) - return link_inc != '1' - - def GetRcflags(self, config, gyp_to_ninja_path): - """Returns the flags that need to be added to invocations of the resource - compiler.""" - config = self._TargetConfig(config) - rcflags = [] - rc = self._GetWrapper(self, self.msvs_settings[config], - 'VCResourceCompilerTool', append=rcflags) - rc('AdditionalIncludeDirectories', map=gyp_to_ninja_path, prefix='/I') - rcflags.append('/I' + gyp_to_ninja_path('.')) - rc('PreprocessorDefinitions', prefix='/d') - # /l arg must be in hex without leading '0x' - rc('Culture', prefix='/l', map=lambda x: hex(int(x))[2:]) - return rcflags - - def BuildCygwinBashCommandLine(self, args, path_to_base): - """Build a command line that runs args via cygwin bash. We assume that all - incoming paths are in Windows normpath'd form, so they need to be - converted to posix style for the part of the command line that's passed to - bash. We also have to do some Visual Studio macro emulation here because - various rules use magic VS names for things. Also note that rules that - contain ninja variables cannot be fixed here (for example ${source}), so - the outer generator needs to make sure that the paths that are written out - are in posix style, if the command line will be used here.""" - cygwin_dir = os.path.normpath( - os.path.join(path_to_base, self.msvs_cygwin_dirs[0])) - cd = ('cd %s' % path_to_base).replace('\\', '/') - args = [a.replace('\\', '/').replace('"', '\\"') for a in args] - args = ["'%s'" % a.replace("'", "'\\''") for a in args] - bash_cmd = ' '.join(args) - cmd = ( - 'call "%s\\setup_env.bat" && set CYGWIN=nontsec && ' % cygwin_dir + - 'bash -c "%s ; %s"' % (cd, bash_cmd)) - return cmd - - def IsRuleRunUnderCygwin(self, rule): - """Determine if an action should be run under cygwin. If the variable is - unset, or set to 1 we use cygwin.""" - return int(rule.get('msvs_cygwin_shell', - self.spec.get('msvs_cygwin_shell', 1))) != 0 - - def _HasExplicitRuleForExtension(self, spec, extension): - """Determine if there's an explicit rule for a particular extension.""" - for rule in spec.get('rules', []): - if rule['extension'] == extension: - return True - return False - - def _HasExplicitIdlActions(self, spec): - """Determine if an action should not run midl for .idl files.""" - return any([action.get('explicit_idl_action', 0) - for action in spec.get('actions', [])]) - - def HasExplicitIdlRulesOrActions(self, spec): - """Determine if there's an explicit rule or action for idl files. When - there isn't we need to generate implicit rules to build MIDL .idl files.""" - return (self._HasExplicitRuleForExtension(spec, 'idl') or - self._HasExplicitIdlActions(spec)) - - def HasExplicitAsmRules(self, spec): - """Determine if there's an explicit rule for asm files. When there isn't we - need to generate implicit rules to assemble .asm files.""" - return self._HasExplicitRuleForExtension(spec, 'asm') - - def GetIdlBuildData(self, source, config): - """Determine the implicit outputs for an idl file. Returns output - directory, outputs, and variables and flags that are required.""" - config = self._TargetConfig(config) - midl_get = self._GetWrapper(self, self.msvs_settings[config], 'VCMIDLTool') - def midl(name, default=None): - return self.ConvertVSMacros(midl_get(name, default=default), - config=config) - tlb = midl('TypeLibraryName', default='${root}.tlb') - header = midl('HeaderFileName', default='${root}.h') - dlldata = midl('DLLDataFileName', default='dlldata.c') - iid = midl('InterfaceIdentifierFileName', default='${root}_i.c') - proxy = midl('ProxyFileName', default='${root}_p.c') - # Note that .tlb is not included in the outputs as it is not always - # generated depending on the content of the input idl file. - outdir = midl('OutputDirectory', default='') - output = [header, dlldata, iid, proxy] - variables = [('tlb', tlb), - ('h', header), - ('dlldata', dlldata), - ('iid', iid), - ('proxy', proxy)] - # TODO(scottmg): Are there configuration settings to set these flags? - target_platform = 'win32' if self.GetArch(config) == 'x86' else 'x64' - flags = ['/char', 'signed', '/env', target_platform, '/Oicf'] - return outdir, output, variables, flags - - -def _LanguageMatchesForPch(source_ext, pch_source_ext): - c_exts = ('.c',) - cc_exts = ('.cc', '.cxx', '.cpp') - return ((source_ext in c_exts and pch_source_ext in c_exts) or - (source_ext in cc_exts and pch_source_ext in cc_exts)) - - -class PrecompiledHeader(object): - """Helper to generate dependencies and build rules to handle generation of - precompiled headers. Interface matches the GCH handler in xcode_emulation.py. - """ - def __init__( - self, settings, config, gyp_to_build_path, gyp_to_unique_output, obj_ext): - self.settings = settings - self.config = config - pch_source = self.settings.msvs_precompiled_source[self.config] - self.pch_source = gyp_to_build_path(pch_source) - filename, _ = os.path.splitext(pch_source) - self.output_obj = gyp_to_unique_output(filename + obj_ext).lower() - - def _PchHeader(self): - """Get the header that will appear in an #include line for all source - files.""" - return os.path.split(self.settings.msvs_precompiled_header[self.config])[1] - - def GetObjDependencies(self, sources, objs, arch): - """Given a list of sources files and the corresponding object files, - returns a list of the pch files that should be depended upon. The - additional wrapping in the return value is for interface compatibility - with make.py on Mac, and xcode_emulation.py.""" - assert arch is None - if not self._PchHeader(): - return [] - pch_ext = os.path.splitext(self.pch_source)[1] - for source in sources: - if _LanguageMatchesForPch(os.path.splitext(source)[1], pch_ext): - return [(None, None, self.output_obj)] - return [] - - def GetPchBuildCommands(self, arch): - """Not used on Windows as there are no additional build steps required - (instead, existing steps are modified in GetFlagsModifications below).""" - return [] - - def GetFlagsModifications(self, input, output, implicit, command, - cflags_c, cflags_cc, expand_special): - """Get the modified cflags and implicit dependencies that should be used - for the pch compilation step.""" - if input == self.pch_source: - pch_output = ['/Yc' + self._PchHeader()] - if command == 'cxx': - return ([('cflags_cc', map(expand_special, cflags_cc + pch_output))], - self.output_obj, []) - elif command == 'cc': - return ([('cflags_c', map(expand_special, cflags_c + pch_output))], - self.output_obj, []) - return [], output, implicit - - -vs_version = None -def GetVSVersion(generator_flags): - global vs_version - if not vs_version: - vs_version = gyp.MSVSVersion.SelectVisualStudioVersion( - generator_flags.get('msvs_version', 'auto'), - allow_fallback=False) - return vs_version - -def _GetVsvarsSetupArgs(generator_flags, arch): - vs = GetVSVersion(generator_flags) - return vs.SetupScript() - -def ExpandMacros(string, expansions): - """Expand $(Variable) per expansions dict. See MsvsSettings.GetVSMacroEnv - for the canonical way to retrieve a suitable dict.""" - if '$' in string: - for old, new in expansions.iteritems(): - assert '$(' not in new, new - string = string.replace(old, new) - return string - -def _ExtractImportantEnvironment(output_of_set): - """Extracts environment variables required for the toolchain to run from - a textual dump output by the cmd.exe 'set' command.""" - envvars_to_save = ( - 'goma_.*', # TODO(scottmg): This is ugly, but needed for goma. - 'include', - 'lib', - 'libpath', - 'path', - 'pathext', - 'systemroot', - 'temp', - 'tmp', - ) - env = {} - for line in output_of_set.splitlines(): - for envvar in envvars_to_save: - if re.match(envvar + '=', line.lower()): - var, setting = line.split('=', 1) - if envvar == 'path': - # Our own rules (for running gyp-win-tool) and other actions in - # Chromium rely on python being in the path. Add the path to this - # python here so that if it's not in the path when ninja is run - # later, python will still be found. - setting = os.path.dirname(sys.executable) + os.pathsep + setting - env[var.upper()] = setting - break - for required in ('SYSTEMROOT', 'TEMP', 'TMP'): - if required not in env: - raise Exception('Environment variable "%s" ' - 'required to be set to valid path' % required) - return env - -def _FormatAsEnvironmentBlock(envvar_dict): - """Format as an 'environment block' directly suitable for CreateProcess. - Briefly this is a list of key=value\0, terminated by an additional \0. See - CreateProcess documentation for more details.""" - block = '' - nul = '\0' - for key, value in envvar_dict.iteritems(): - block += key + '=' + value + nul - block += nul - return block - -def _ExtractCLPath(output_of_where): - """Gets the path to cl.exe based on the output of calling the environment - setup batch file, followed by the equivalent of `where`.""" - # Take the first line, as that's the first found in the PATH. - for line in output_of_where.strip().splitlines(): - if line.startswith('LOC:'): - return line[len('LOC:'):].strip() - -def GenerateEnvironmentFiles(toplevel_build_dir, generator_flags, - system_includes, open_out): - """It's not sufficient to have the absolute path to the compiler, linker, - etc. on Windows, as those tools rely on .dlls being in the PATH. We also - need to support both x86 and x64 compilers within the same build (to support - msvs_target_platform hackery). Different architectures require a different - compiler binary, and different supporting environment variables (INCLUDE, - LIB, LIBPATH). So, we extract the environment here, wrap all invocations - of compiler tools (cl, link, lib, rc, midl, etc.) via win_tool.py which - sets up the environment, and then we do not prefix the compiler with - an absolute path, instead preferring something like "cl.exe" in the rule - which will then run whichever the environment setup has put in the path. - When the following procedure to generate environment files does not - meet your requirement (e.g. for custom toolchains), you can pass - "-G ninja_use_custom_environment_files" to the gyp to suppress file - generation and use custom environment files prepared by yourself.""" - archs = ('x86', 'x64') - if generator_flags.get('ninja_use_custom_environment_files', 0): - cl_paths = {} - for arch in archs: - cl_paths[arch] = 'cl.exe' - return cl_paths - vs = GetVSVersion(generator_flags) - cl_paths = {} - for arch in archs: - # Extract environment variables for subprocesses. - args = vs.SetupScript(arch) - args.extend(('&&', 'set')) - popen = subprocess.Popen( - args, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - variables, _ = popen.communicate() - env = _ExtractImportantEnvironment(variables) - - # Inject system includes from gyp files into INCLUDE. - if system_includes: - system_includes = system_includes | OrderedSet( - env.get('INCLUDE', '').split(';')) - env['INCLUDE'] = ';'.join(system_includes) - - env_block = _FormatAsEnvironmentBlock(env) - f = open_out(os.path.join(toplevel_build_dir, 'environment.' + arch), 'wb') - f.write(env_block) - f.close() - - # Find cl.exe location for this architecture. - args = vs.SetupScript(arch) - args.extend(('&&', - 'for', '%i', 'in', '(cl.exe)', 'do', '@echo', 'LOC:%~$PATH:i')) - popen = subprocess.Popen(args, shell=True, stdout=subprocess.PIPE) - output, _ = popen.communicate() - cl_paths[arch] = _ExtractCLPath(output) - return cl_paths - -def VerifyMissingSources(sources, build_dir, generator_flags, gyp_to_ninja): - """Emulate behavior of msvs_error_on_missing_sources present in the msvs - generator: Check that all regular source files, i.e. not created at run time, - exist on disk. Missing files cause needless recompilation when building via - VS, and we want this check to match for people/bots that build using ninja, - so they're not surprised when the VS build fails.""" - if int(generator_flags.get('msvs_error_on_missing_sources', 0)): - no_specials = filter(lambda x: '$' not in x, sources) - relative = [os.path.join(build_dir, gyp_to_ninja(s)) for s in no_specials] - missing = filter(lambda x: not os.path.exists(x), relative) - if missing: - # They'll look like out\Release\..\..\stuff\things.cc, so normalize the - # path for a slightly less crazy looking output. - cleaned_up = [os.path.normpath(x) for x in missing] - raise Exception('Missing input files:\n%s' % '\n'.join(cleaned_up)) - -# Sets some values in default_variables, which are required for many -# generators, run on Windows. -def CalculateCommonVariables(default_variables, params): - generator_flags = params.get('generator_flags', {}) - - # Set a variable so conditions can be based on msvs_version. - msvs_version = gyp.msvs_emulation.GetVSVersion(generator_flags) - default_variables['MSVS_VERSION'] = msvs_version.ShortName() - - # To determine processor word size on Windows, in addition to checking - # PROCESSOR_ARCHITECTURE (which reflects the word size of the current - # process), it is also necessary to check PROCESSOR_ARCHITEW6432 (which - # contains the actual word size of the system when running thru WOW64). - if ('64' in os.environ.get('PROCESSOR_ARCHITECTURE', '') or - '64' in os.environ.get('PROCESSOR_ARCHITEW6432', '')): - default_variables['MSVS_OS_BITS'] = 64 - else: - default_variables['MSVS_OS_BITS'] = 32 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py deleted file mode 100644 index d2948f06..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +++ /dev/null @@ -1,160 +0,0 @@ -# This file comes from -# https://github.com/martine/ninja/blob/master/misc/ninja_syntax.py -# Do not edit! Edit the upstream one instead. - -"""Python module for generating .ninja files. - -Note that this is emphatically not a required piece of Ninja; it's -just a helpful utility for build-file-generation systems that already -use Python. -""" - -import textwrap -import re - -def escape_path(word): - return word.replace('$ ','$$ ').replace(' ','$ ').replace(':', '$:') - -class Writer(object): - def __init__(self, output, width=78): - self.output = output - self.width = width - - def newline(self): - self.output.write('\n') - - def comment(self, text): - for line in textwrap.wrap(text, self.width - 2): - self.output.write('# ' + line + '\n') - - def variable(self, key, value, indent=0): - if value is None: - return - if isinstance(value, list): - value = ' '.join(filter(None, value)) # Filter out empty strings. - self._line('%s = %s' % (key, value), indent) - - def pool(self, name, depth): - self._line('pool %s' % name) - self.variable('depth', depth, indent=1) - - def rule(self, name, command, description=None, depfile=None, - generator=False, pool=None, restat=False, rspfile=None, - rspfile_content=None, deps=None): - self._line('rule %s' % name) - self.variable('command', command, indent=1) - if description: - self.variable('description', description, indent=1) - if depfile: - self.variable('depfile', depfile, indent=1) - if generator: - self.variable('generator', '1', indent=1) - if pool: - self.variable('pool', pool, indent=1) - if restat: - self.variable('restat', '1', indent=1) - if rspfile: - self.variable('rspfile', rspfile, indent=1) - if rspfile_content: - self.variable('rspfile_content', rspfile_content, indent=1) - if deps: - self.variable('deps', deps, indent=1) - - def build(self, outputs, rule, inputs=None, implicit=None, order_only=None, - variables=None): - outputs = self._as_list(outputs) - all_inputs = self._as_list(inputs)[:] - out_outputs = list(map(escape_path, outputs)) - all_inputs = list(map(escape_path, all_inputs)) - - if implicit: - implicit = map(escape_path, self._as_list(implicit)) - all_inputs.append('|') - all_inputs.extend(implicit) - if order_only: - order_only = map(escape_path, self._as_list(order_only)) - all_inputs.append('||') - all_inputs.extend(order_only) - - self._line('build %s: %s' % (' '.join(out_outputs), - ' '.join([rule] + all_inputs))) - - if variables: - if isinstance(variables, dict): - iterator = iter(variables.items()) - else: - iterator = iter(variables) - - for key, val in iterator: - self.variable(key, val, indent=1) - - return outputs - - def include(self, path): - self._line('include %s' % path) - - def subninja(self, path): - self._line('subninja %s' % path) - - def default(self, paths): - self._line('default %s' % ' '.join(self._as_list(paths))) - - def _count_dollars_before_index(self, s, i): - """Returns the number of '$' characters right in front of s[i].""" - dollar_count = 0 - dollar_index = i - 1 - while dollar_index > 0 and s[dollar_index] == '$': - dollar_count += 1 - dollar_index -= 1 - return dollar_count - - def _line(self, text, indent=0): - """Write 'text' word-wrapped at self.width characters.""" - leading_space = ' ' * indent - while len(leading_space) + len(text) > self.width: - # The text is too wide; wrap if possible. - - # Find the rightmost space that would obey our width constraint and - # that's not an escaped space. - available_space = self.width - len(leading_space) - len(' $') - space = available_space - while True: - space = text.rfind(' ', 0, space) - if space < 0 or \ - self._count_dollars_before_index(text, space) % 2 == 0: - break - - if space < 0: - # No such space; just use the first unescaped space we can find. - space = available_space - 1 - while True: - space = text.find(' ', space + 1) - if space < 0 or \ - self._count_dollars_before_index(text, space) % 2 == 0: - break - if space < 0: - # Give up on breaking. - break - - self.output.write(leading_space + text[0:space] + ' $\n') - text = text[space+1:] - - # Subsequent lines are continuations, so indent them. - leading_space = ' ' * (indent+2) - - self.output.write(leading_space + text + '\n') - - def _as_list(self, input): - if input is None: - return [] - if isinstance(input, list): - return input - return [input] - - -def escape(string): - """Escape a string such that it can be embedded into a Ninja file without - further interpretation.""" - assert '\n' not in string, 'Ninja syntax does not allow newlines' - # We only have one special metacharacter: '$'. - return string.replace('$', '$$') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/ordered_dict.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/ordered_dict.py deleted file mode 100644 index a1e89f91..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/ordered_dict.py +++ /dev/null @@ -1,289 +0,0 @@ -# Unmodified from http://code.activestate.com/recipes/576693/ -# other than to add MIT license header (as specified on page, but not in code). -# Linked from Python documentation here: -# http://docs.python.org/2/library/collections.html#collections.OrderedDict -# -# This should be deleted once Py2.7 is available on all bots, see -# http://crbug.com/241769. -# -# Copyright (c) 2009 Raymond Hettinger. -# -# 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. - -# Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy. -# Passes Python2.7's test suite and incorporates all the latest updates. - -try: - from thread import get_ident as _get_ident -except ImportError: - from dummy_thread import get_ident as _get_ident - -try: - from _abcoll import KeysView, ValuesView, ItemsView -except ImportError: - pass - - -class OrderedDict(dict): - 'Dictionary that remembers insertion order' - # An inherited dict maps keys to values. - # The inherited dict provides __getitem__, __len__, __contains__, and get. - # The remaining methods are order-aware. - # Big-O running times for all methods are the same as for regular dictionaries. - - # The internal self.__map dictionary maps keys to links in a doubly linked list. - # The circular doubly linked list starts and ends with a sentinel element. - # The sentinel element never gets deleted (this simplifies the algorithm). - # Each link is stored as a list of length three: [PREV, NEXT, KEY]. - - def __init__(self, *args, **kwds): - '''Initialize an ordered dictionary. Signature is the same as for - regular dictionaries, but keyword arguments are not recommended - because their insertion order is arbitrary. - - ''' - if len(args) > 1: - raise TypeError('expected at most 1 arguments, got %d' % len(args)) - try: - self.__root - except AttributeError: - self.__root = root = [] # sentinel node - root[:] = [root, root, None] - self.__map = {} - self.__update(*args, **kwds) - - def __setitem__(self, key, value, dict_setitem=dict.__setitem__): - 'od.__setitem__(i, y) <==> od[i]=y' - # Setting a new item creates a new link which goes at the end of the linked - # list, and the inherited dictionary is updated with the new key/value pair. - if key not in self: - root = self.__root - last = root[0] - last[1] = root[0] = self.__map[key] = [last, root, key] - dict_setitem(self, key, value) - - def __delitem__(self, key, dict_delitem=dict.__delitem__): - 'od.__delitem__(y) <==> del od[y]' - # Deleting an existing item uses self.__map to find the link which is - # then removed by updating the links in the predecessor and successor nodes. - dict_delitem(self, key) - link_prev, link_next, key = self.__map.pop(key) - link_prev[1] = link_next - link_next[0] = link_prev - - def __iter__(self): - 'od.__iter__() <==> iter(od)' - root = self.__root - curr = root[1] - while curr is not root: - yield curr[2] - curr = curr[1] - - def __reversed__(self): - 'od.__reversed__() <==> reversed(od)' - root = self.__root - curr = root[0] - while curr is not root: - yield curr[2] - curr = curr[0] - - def clear(self): - 'od.clear() -> None. Remove all items from od.' - try: - for node in self.__map.itervalues(): - del node[:] - root = self.__root - root[:] = [root, root, None] - self.__map.clear() - except AttributeError: - pass - dict.clear(self) - - def popitem(self, last=True): - '''od.popitem() -> (k, v), return and remove a (key, value) pair. - Pairs are returned in LIFO order if last is true or FIFO order if false. - - ''' - if not self: - raise KeyError('dictionary is empty') - root = self.__root - if last: - link = root[0] - link_prev = link[0] - link_prev[1] = root - root[0] = link_prev - else: - link = root[1] - link_next = link[1] - root[1] = link_next - link_next[0] = root - key = link[2] - del self.__map[key] - value = dict.pop(self, key) - return key, value - - # -- the following methods do not depend on the internal structure -- - - def keys(self): - 'od.keys() -> list of keys in od' - return list(self) - - def values(self): - 'od.values() -> list of values in od' - return [self[key] for key in self] - - def items(self): - 'od.items() -> list of (key, value) pairs in od' - return [(key, self[key]) for key in self] - - def iterkeys(self): - 'od.iterkeys() -> an iterator over the keys in od' - return iter(self) - - def itervalues(self): - 'od.itervalues -> an iterator over the values in od' - for k in self: - yield self[k] - - def iteritems(self): - 'od.iteritems -> an iterator over the (key, value) items in od' - for k in self: - yield (k, self[k]) - - # Suppress 'OrderedDict.update: Method has no argument': - # pylint: disable=E0211 - def update(*args, **kwds): - '''od.update(E, **F) -> None. Update od from dict/iterable E and F. - - If E is a dict instance, does: for k in E: od[k] = E[k] - If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] - Or if E is an iterable of items, does: for k, v in E: od[k] = v - In either case, this is followed by: for k, v in F.items(): od[k] = v - - ''' - if len(args) > 2: - raise TypeError('update() takes at most 2 positional ' - 'arguments (%d given)' % (len(args),)) - elif not args: - raise TypeError('update() takes at least 1 argument (0 given)') - self = args[0] - # Make progressively weaker assumptions about "other" - other = () - if len(args) == 2: - other = args[1] - if isinstance(other, dict): - for key in other: - self[key] = other[key] - elif hasattr(other, 'keys'): - for key in other.keys(): - self[key] = other[key] - else: - for key, value in other: - self[key] = value - for key, value in kwds.items(): - self[key] = value - - __update = update # let subclasses override update without breaking __init__ - - __marker = object() - - def pop(self, key, default=__marker): - '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value. - If key is not found, d is returned if given, otherwise KeyError is raised. - - ''' - if key in self: - result = self[key] - del self[key] - return result - if default is self.__marker: - raise KeyError(key) - return default - - def setdefault(self, key, default=None): - 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' - if key in self: - return self[key] - self[key] = default - return default - - def __repr__(self, _repr_running={}): - 'od.__repr__() <==> repr(od)' - call_key = id(self), _get_ident() - if call_key in _repr_running: - return '...' - _repr_running[call_key] = 1 - try: - if not self: - return '%s()' % (self.__class__.__name__,) - return '%s(%r)' % (self.__class__.__name__, self.items()) - finally: - del _repr_running[call_key] - - def __reduce__(self): - 'Return state information for pickling' - items = [[k, self[k]] for k in self] - inst_dict = vars(self).copy() - for k in vars(OrderedDict()): - inst_dict.pop(k, None) - if inst_dict: - return (self.__class__, (items,), inst_dict) - return self.__class__, (items,) - - def copy(self): - 'od.copy() -> a shallow copy of od' - return self.__class__(self) - - @classmethod - def fromkeys(cls, iterable, value=None): - '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S - and values equal to v (which defaults to None). - - ''' - d = cls() - for key in iterable: - d[key] = value - return d - - def __eq__(self, other): - '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive - while comparison to a regular mapping is order-insensitive. - - ''' - if isinstance(other, OrderedDict): - return len(self)==len(other) and self.items() == other.items() - return dict.__eq__(self, other) - - def __ne__(self, other): - return not self == other - - # -- the following methods are only used in Python 2.7 -- - - def viewkeys(self): - "od.viewkeys() -> a set-like object providing a view on od's keys" - return KeysView(self) - - def viewvalues(self): - "od.viewvalues() -> an object providing a view on od's values" - return ValuesView(self) - - def viewitems(self): - "od.viewitems() -> a set-like object providing a view on od's items" - return ItemsView(self) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py deleted file mode 100644 index 74c98c5a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright 2014 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""A clone of the default copy.deepcopy that doesn't handle cyclic -structures or complex types except for dicts and lists. This is -because gyp copies so large structure that small copy overhead ends up -taking seconds in a project the size of Chromium.""" - -class Error(Exception): - pass - -__all__ = ["Error", "deepcopy"] - -def deepcopy(x): - """Deep copy operation on gyp objects such as strings, ints, dicts - and lists. More than twice as fast as copy.deepcopy but much less - generic.""" - - try: - return _deepcopy_dispatch[type(x)](x) - except KeyError: - raise Error('Unsupported type %s for deepcopy. Use copy.deepcopy ' + - 'or expand simple_copy support.' % type(x)) - -_deepcopy_dispatch = d = {} - -def _deepcopy_atomic(x): - return x - -for x in (type(None), int, long, float, - bool, str, unicode, type): - d[x] = _deepcopy_atomic - -def _deepcopy_list(x): - return [deepcopy(a) for a in x] -d[list] = _deepcopy_list - -def _deepcopy_dict(x): - y = {} - for key, value in x.iteritems(): - y[deepcopy(key)] = deepcopy(value) - return y -d[dict] = _deepcopy_dict - -del d diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py deleted file mode 100755 index bb6f1ea4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +++ /dev/null @@ -1,314 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Utility functions for Windows builds. - -These functions are executed via gyp-win-tool when using the ninja generator. -""" - -import os -import re -import shutil -import subprocess -import stat -import string -import sys - -BASE_DIR = os.path.dirname(os.path.abspath(__file__)) - -# A regex matching an argument corresponding to the output filename passed to -# link.exe. -_LINK_EXE_OUT_ARG = re.compile('/OUT:(?P.+)$', re.IGNORECASE) - -def main(args): - executor = WinTool() - exit_code = executor.Dispatch(args) - if exit_code is not None: - sys.exit(exit_code) - - -class WinTool(object): - """This class performs all the Windows tooling steps. The methods can either - be executed directly, or dispatched from an argument list.""" - - def _UseSeparateMspdbsrv(self, env, args): - """Allows to use a unique instance of mspdbsrv.exe per linker instead of a - shared one.""" - if len(args) < 1: - raise Exception("Not enough arguments") - - if args[0] != 'link.exe': - return - - # Use the output filename passed to the linker to generate an endpoint name - # for mspdbsrv.exe. - endpoint_name = None - for arg in args: - m = _LINK_EXE_OUT_ARG.match(arg) - if m: - endpoint_name = re.sub(r'\W+', '', - '%s_%d' % (m.group('out'), os.getpid())) - break - - if endpoint_name is None: - return - - # Adds the appropriate environment variable. This will be read by link.exe - # to know which instance of mspdbsrv.exe it should connect to (if it's - # not set then the default endpoint is used). - env['_MSPDBSRV_ENDPOINT_'] = endpoint_name - - def Dispatch(self, args): - """Dispatches a string command to a method.""" - if len(args) < 1: - raise Exception("Not enough arguments") - - method = "Exec%s" % self._CommandifyName(args[0]) - return getattr(self, method)(*args[1:]) - - def _CommandifyName(self, name_string): - """Transforms a tool name like recursive-mirror to RecursiveMirror.""" - return name_string.title().replace('-', '') - - def _GetEnv(self, arch): - """Gets the saved environment from a file for a given architecture.""" - # The environment is saved as an "environment block" (see CreateProcess - # and msvs_emulation for details). We convert to a dict here. - # Drop last 2 NULs, one for list terminator, one for trailing vs. separator. - pairs = open(arch).read()[:-2].split('\0') - kvs = [item.split('=', 1) for item in pairs] - return dict(kvs) - - def ExecStamp(self, path): - """Simple stamp command.""" - open(path, 'w').close() - - def ExecRecursiveMirror(self, source, dest): - """Emulation of rm -rf out && cp -af in out.""" - if os.path.exists(dest): - if os.path.isdir(dest): - def _on_error(fn, path, excinfo): - # The operation failed, possibly because the file is set to - # read-only. If that's why, make it writable and try the op again. - if not os.access(path, os.W_OK): - os.chmod(path, stat.S_IWRITE) - fn(path) - shutil.rmtree(dest, onerror=_on_error) - else: - if not os.access(dest, os.W_OK): - # Attempt to make the file writable before deleting it. - os.chmod(dest, stat.S_IWRITE) - os.unlink(dest) - - if os.path.isdir(source): - shutil.copytree(source, dest) - else: - shutil.copy2(source, dest) - - def ExecLinkWrapper(self, arch, use_separate_mspdbsrv, *args): - """Filter diagnostic output from link that looks like: - ' Creating library ui.dll.lib and object ui.dll.exp' - This happens when there are exports from the dll or exe. - """ - env = self._GetEnv(arch) - if use_separate_mspdbsrv == 'True': - self._UseSeparateMspdbsrv(env, args) - link = subprocess.Popen([args[0].replace('/', '\\')] + list(args[1:]), - shell=True, - env=env, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT) - out, _ = link.communicate() - for line in out.splitlines(): - if (not line.startswith(' Creating library ') and - not line.startswith('Generating code') and - not line.startswith('Finished generating code')): - print line - return link.returncode - - def ExecLinkWithManifests(self, arch, embed_manifest, out, ldcmd, resname, - mt, rc, intermediate_manifest, *manifests): - """A wrapper for handling creating a manifest resource and then executing - a link command.""" - # The 'normal' way to do manifests is to have link generate a manifest - # based on gathering dependencies from the object files, then merge that - # manifest with other manifests supplied as sources, convert the merged - # manifest to a resource, and then *relink*, including the compiled - # version of the manifest resource. This breaks incremental linking, and - # is generally overly complicated. Instead, we merge all the manifests - # provided (along with one that includes what would normally be in the - # linker-generated one, see msvs_emulation.py), and include that into the - # first and only link. We still tell link to generate a manifest, but we - # only use that to assert that our simpler process did not miss anything. - variables = { - 'python': sys.executable, - 'arch': arch, - 'out': out, - 'ldcmd': ldcmd, - 'resname': resname, - 'mt': mt, - 'rc': rc, - 'intermediate_manifest': intermediate_manifest, - 'manifests': ' '.join(manifests), - } - add_to_ld = '' - if manifests: - subprocess.check_call( - '%(python)s gyp-win-tool manifest-wrapper %(arch)s %(mt)s -nologo ' - '-manifest %(manifests)s -out:%(out)s.manifest' % variables) - if embed_manifest == 'True': - subprocess.check_call( - '%(python)s gyp-win-tool manifest-to-rc %(arch)s %(out)s.manifest' - ' %(out)s.manifest.rc %(resname)s' % variables) - subprocess.check_call( - '%(python)s gyp-win-tool rc-wrapper %(arch)s %(rc)s ' - '%(out)s.manifest.rc' % variables) - add_to_ld = ' %(out)s.manifest.res' % variables - subprocess.check_call(ldcmd + add_to_ld) - - # Run mt.exe on the theoretically complete manifest we generated, merging - # it with the one the linker generated to confirm that the linker - # generated one does not add anything. This is strictly unnecessary for - # correctness, it's only to verify that e.g. /MANIFESTDEPENDENCY was not - # used in a #pragma comment. - if manifests: - # Merge the intermediate one with ours to .assert.manifest, then check - # that .assert.manifest is identical to ours. - subprocess.check_call( - '%(python)s gyp-win-tool manifest-wrapper %(arch)s %(mt)s -nologo ' - '-manifest %(out)s.manifest %(intermediate_manifest)s ' - '-out:%(out)s.assert.manifest' % variables) - assert_manifest = '%(out)s.assert.manifest' % variables - our_manifest = '%(out)s.manifest' % variables - # Load and normalize the manifests. mt.exe sometimes removes whitespace, - # and sometimes doesn't unfortunately. - with open(our_manifest, 'rb') as our_f: - with open(assert_manifest, 'rb') as assert_f: - our_data = our_f.read().translate(None, string.whitespace) - assert_data = assert_f.read().translate(None, string.whitespace) - if our_data != assert_data: - os.unlink(out) - def dump(filename): - sys.stderr.write('%s\n-----\n' % filename) - with open(filename, 'rb') as f: - sys.stderr.write(f.read() + '\n-----\n') - dump(intermediate_manifest) - dump(our_manifest) - dump(assert_manifest) - sys.stderr.write( - 'Linker generated manifest "%s" added to final manifest "%s" ' - '(result in "%s"). ' - 'Were /MANIFEST switches used in #pragma statements? ' % ( - intermediate_manifest, our_manifest, assert_manifest)) - return 1 - - def ExecManifestWrapper(self, arch, *args): - """Run manifest tool with environment set. Strip out undesirable warning - (some XML blocks are recognized by the OS loader, but not the manifest - tool).""" - env = self._GetEnv(arch) - popen = subprocess.Popen(args, shell=True, env=env, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - out, _ = popen.communicate() - for line in out.splitlines(): - if line and 'manifest authoring warning 81010002' not in line: - print line - return popen.returncode - - def ExecManifestToRc(self, arch, *args): - """Creates a resource file pointing a SxS assembly manifest. - |args| is tuple containing path to resource file, path to manifest file - and resource name which can be "1" (for executables) or "2" (for DLLs).""" - manifest_path, resource_path, resource_name = args - with open(resource_path, 'wb') as output: - output.write('#include \n%s RT_MANIFEST "%s"' % ( - resource_name, - os.path.abspath(manifest_path).replace('\\', '/'))) - - def ExecMidlWrapper(self, arch, outdir, tlb, h, dlldata, iid, proxy, idl, - *flags): - """Filter noisy filenames output from MIDL compile step that isn't - quietable via command line flags. - """ - args = ['midl', '/nologo'] + list(flags) + [ - '/out', outdir, - '/tlb', tlb, - '/h', h, - '/dlldata', dlldata, - '/iid', iid, - '/proxy', proxy, - idl] - env = self._GetEnv(arch) - popen = subprocess.Popen(args, shell=True, env=env, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - out, _ = popen.communicate() - # Filter junk out of stdout, and write filtered versions. Output we want - # to filter is pairs of lines that look like this: - # Processing C:\Program Files (x86)\Microsoft SDKs\...\include\objidl.idl - # objidl.idl - lines = out.splitlines() - prefixes = ('Processing ', '64 bit Processing ') - processing = set(os.path.basename(x) - for x in lines if x.startswith(prefixes)) - for line in lines: - if not line.startswith(prefixes) and line not in processing: - print line - return popen.returncode - - def ExecAsmWrapper(self, arch, *args): - """Filter logo banner from invocations of asm.exe.""" - env = self._GetEnv(arch) - popen = subprocess.Popen(args, shell=True, env=env, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - out, _ = popen.communicate() - for line in out.splitlines(): - if (not line.startswith('Copyright (C) Microsoft Corporation') and - not line.startswith('Microsoft (R) Macro Assembler') and - not line.startswith(' Assembling: ') and - line): - print line - return popen.returncode - - def ExecRcWrapper(self, arch, *args): - """Filter logo banner from invocations of rc.exe. Older versions of RC - don't support the /nologo flag.""" - env = self._GetEnv(arch) - popen = subprocess.Popen(args, shell=True, env=env, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - out, _ = popen.communicate() - for line in out.splitlines(): - if (not line.startswith('Microsoft (R) Windows (R) Resource Compiler') and - not line.startswith('Copyright (C) Microsoft Corporation') and - line): - print line - return popen.returncode - - def ExecActionWrapper(self, arch, rspfile, *dir): - """Runs an action command line from a response file using the environment - for |arch|. If |dir| is supplied, use that as the working directory.""" - env = self._GetEnv(arch) - # TODO(scottmg): This is a temporary hack to get some specific variables - # through to actions that are set after gyp-time. http://crbug.com/333738. - for k, v in os.environ.iteritems(): - if k not in env: - env[k] = v - args = open(rspfile).read() - dir = dir[0] if dir else None - return subprocess.call(args, shell=True, env=env, cwd=dir) - - def ExecClCompile(self, project_dir, selected_files): - """Executed by msvs-ninja projects when the 'ClCompile' target is used to - build selected C/C++ files.""" - project_dir = os.path.relpath(project_dir, BASE_DIR) - selected_files = selected_files.split(';') - ninja_targets = [os.path.join(project_dir, filename) + '^^' - for filename in selected_files] - cmd = ['ninja.exe'] - cmd.extend(ninja_targets) - return subprocess.call(cmd, shell=True, cwd=BASE_DIR) - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py deleted file mode 100644 index b06bdc4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +++ /dev/null @@ -1,1629 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -""" -This module contains classes that help to emulate xcodebuild behavior on top of -other build systems, such as make and ninja. -""" - -import copy -import gyp.common -import os -import os.path -import re -import shlex -import subprocess -import sys -import tempfile -from gyp.common import GypError - -# Populated lazily by XcodeVersion, for efficiency, and to fix an issue when -# "xcodebuild" is called too quickly (it has been found to return incorrect -# version number). -XCODE_VERSION_CACHE = None - -# Populated lazily by GetXcodeArchsDefault, to an |XcodeArchsDefault| instance -# corresponding to the installed version of Xcode. -XCODE_ARCHS_DEFAULT_CACHE = None - - -def XcodeArchsVariableMapping(archs, archs_including_64_bit=None): - """Constructs a dictionary with expansion for $(ARCHS_STANDARD) variable, - and optionally for $(ARCHS_STANDARD_INCLUDING_64_BIT).""" - mapping = {'$(ARCHS_STANDARD)': archs} - if archs_including_64_bit: - mapping['$(ARCHS_STANDARD_INCLUDING_64_BIT)'] = archs_including_64_bit - return mapping - -class XcodeArchsDefault(object): - """A class to resolve ARCHS variable from xcode_settings, resolving Xcode - macros and implementing filtering by VALID_ARCHS. The expansion of macros - depends on the SDKROOT used ("macosx", "iphoneos", "iphonesimulator") and - on the version of Xcode. - """ - - # Match variable like $(ARCHS_STANDARD). - variable_pattern = re.compile(r'\$\([a-zA-Z_][a-zA-Z0-9_]*\)$') - - def __init__(self, default, mac, iphonesimulator, iphoneos): - self._default = (default,) - self._archs = {'mac': mac, 'ios': iphoneos, 'iossim': iphonesimulator} - - def _VariableMapping(self, sdkroot): - """Returns the dictionary of variable mapping depending on the SDKROOT.""" - sdkroot = sdkroot.lower() - if 'iphoneos' in sdkroot: - return self._archs['ios'] - elif 'iphonesimulator' in sdkroot: - return self._archs['iossim'] - else: - return self._archs['mac'] - - def _ExpandArchs(self, archs, sdkroot): - """Expands variables references in ARCHS, and remove duplicates.""" - variable_mapping = self._VariableMapping(sdkroot) - expanded_archs = [] - for arch in archs: - if self.variable_pattern.match(arch): - variable = arch - try: - variable_expansion = variable_mapping[variable] - for arch in variable_expansion: - if arch not in expanded_archs: - expanded_archs.append(arch) - except KeyError as e: - print 'Warning: Ignoring unsupported variable "%s".' % variable - elif arch not in expanded_archs: - expanded_archs.append(arch) - return expanded_archs - - def ActiveArchs(self, archs, valid_archs, sdkroot): - """Expands variables references in ARCHS, and filter by VALID_ARCHS if it - is defined (if not set, Xcode accept any value in ARCHS, otherwise, only - values present in VALID_ARCHS are kept).""" - expanded_archs = self._ExpandArchs(archs or self._default, sdkroot or '') - if valid_archs: - filtered_archs = [] - for arch in expanded_archs: - if arch in valid_archs: - filtered_archs.append(arch) - expanded_archs = filtered_archs - return expanded_archs - - -def GetXcodeArchsDefault(): - """Returns the |XcodeArchsDefault| object to use to expand ARCHS for the - installed version of Xcode. The default values used by Xcode for ARCHS - and the expansion of the variables depends on the version of Xcode used. - - For all version anterior to Xcode 5.0 or posterior to Xcode 5.1 included - uses $(ARCHS_STANDARD) if ARCHS is unset, while Xcode 5.0 to 5.0.2 uses - $(ARCHS_STANDARD_INCLUDING_64_BIT). This variable was added to Xcode 5.0 - and deprecated with Xcode 5.1. - - For "macosx" SDKROOT, all version starting with Xcode 5.0 includes 64-bit - architecture as part of $(ARCHS_STANDARD) and default to only building it. - - For "iphoneos" and "iphonesimulator" SDKROOT, 64-bit architectures are part - of $(ARCHS_STANDARD_INCLUDING_64_BIT) from Xcode 5.0. From Xcode 5.1, they - are also part of $(ARCHS_STANDARD). - - All thoses rules are coded in the construction of the |XcodeArchsDefault| - object to use depending on the version of Xcode detected. The object is - for performance reason.""" - global XCODE_ARCHS_DEFAULT_CACHE - if XCODE_ARCHS_DEFAULT_CACHE: - return XCODE_ARCHS_DEFAULT_CACHE - xcode_version, _ = XcodeVersion() - if xcode_version < '0500': - XCODE_ARCHS_DEFAULT_CACHE = XcodeArchsDefault( - '$(ARCHS_STANDARD)', - XcodeArchsVariableMapping(['i386']), - XcodeArchsVariableMapping(['i386']), - XcodeArchsVariableMapping(['armv7'])) - elif xcode_version < '0510': - XCODE_ARCHS_DEFAULT_CACHE = XcodeArchsDefault( - '$(ARCHS_STANDARD_INCLUDING_64_BIT)', - XcodeArchsVariableMapping(['x86_64'], ['x86_64']), - XcodeArchsVariableMapping(['i386'], ['i386', 'x86_64']), - XcodeArchsVariableMapping( - ['armv7', 'armv7s'], - ['armv7', 'armv7s', 'arm64'])) - else: - XCODE_ARCHS_DEFAULT_CACHE = XcodeArchsDefault( - '$(ARCHS_STANDARD)', - XcodeArchsVariableMapping(['x86_64'], ['x86_64']), - XcodeArchsVariableMapping(['i386', 'x86_64'], ['i386', 'x86_64']), - XcodeArchsVariableMapping( - ['armv7', 'armv7s', 'arm64'], - ['armv7', 'armv7s', 'arm64'])) - return XCODE_ARCHS_DEFAULT_CACHE - - -class XcodeSettings(object): - """A class that understands the gyp 'xcode_settings' object.""" - - # Populated lazily by _SdkPath(). Shared by all XcodeSettings, so cached - # at class-level for efficiency. - _sdk_path_cache = {} - _sdk_root_cache = {} - - # Populated lazily by GetExtraPlistItems(). Shared by all XcodeSettings, so - # cached at class-level for efficiency. - _plist_cache = {} - - # Populated lazily by GetIOSPostbuilds. Shared by all XcodeSettings, so - # cached at class-level for efficiency. - _codesigning_key_cache = {} - - def __init__(self, spec): - self.spec = spec - - self.isIOS = False - - # Per-target 'xcode_settings' are pushed down into configs earlier by gyp. - # This means self.xcode_settings[config] always contains all settings - # for that config -- the per-target settings as well. Settings that are - # the same for all configs are implicitly per-target settings. - self.xcode_settings = {} - configs = spec['configurations'] - for configname, config in configs.iteritems(): - self.xcode_settings[configname] = config.get('xcode_settings', {}) - self._ConvertConditionalKeys(configname) - if self.xcode_settings[configname].get('IPHONEOS_DEPLOYMENT_TARGET', - None): - self.isIOS = True - - # This is only non-None temporarily during the execution of some methods. - self.configname = None - - # Used by _AdjustLibrary to match .a and .dylib entries in libraries. - self.library_re = re.compile(r'^lib([^/]+)\.(a|dylib)$') - - def _ConvertConditionalKeys(self, configname): - """Converts or warns on conditional keys. Xcode supports conditional keys, - such as CODE_SIGN_IDENTITY[sdk=iphoneos*]. This is a partial implementation - with some keys converted while the rest force a warning.""" - settings = self.xcode_settings[configname] - conditional_keys = [key for key in settings if key.endswith(']')] - for key in conditional_keys: - # If you need more, speak up at http://crbug.com/122592 - if key.endswith("[sdk=iphoneos*]"): - if configname.endswith("iphoneos"): - new_key = key.split("[")[0] - settings[new_key] = settings[key] - else: - print 'Warning: Conditional keys not implemented, ignoring:', \ - ' '.join(conditional_keys) - del settings[key] - - def _Settings(self): - assert self.configname - return self.xcode_settings[self.configname] - - def _Test(self, test_key, cond_key, default): - return self._Settings().get(test_key, default) == cond_key - - def _Appendf(self, lst, test_key, format_str, default=None): - if test_key in self._Settings(): - lst.append(format_str % str(self._Settings()[test_key])) - elif default: - lst.append(format_str % str(default)) - - def _WarnUnimplemented(self, test_key): - if test_key in self._Settings(): - print 'Warning: Ignoring not yet implemented key "%s".' % test_key - - def IsBinaryOutputFormat(self, configname): - default = "binary" if self.isIOS else "xml" - format = self.xcode_settings[configname].get('INFOPLIST_OUTPUT_FORMAT', - default) - return format == "binary" - - def _IsBundle(self): - return int(self.spec.get('mac_bundle', 0)) != 0 - - def _IsIosAppExtension(self): - return int(self.spec.get('ios_app_extension', 0)) != 0 - - def _IsIosWatchKitExtension(self): - return int(self.spec.get('ios_watchkit_extension', 0)) != 0 - - def _IsIosWatchApp(self): - return int(self.spec.get('ios_watch_app', 0)) != 0 - - def GetFrameworkVersion(self): - """Returns the framework version of the current target. Only valid for - bundles.""" - assert self._IsBundle() - return self.GetPerTargetSetting('FRAMEWORK_VERSION', default='A') - - def GetWrapperExtension(self): - """Returns the bundle extension (.app, .framework, .plugin, etc). Only - valid for bundles.""" - assert self._IsBundle() - if self.spec['type'] in ('loadable_module', 'shared_library'): - default_wrapper_extension = { - 'loadable_module': 'bundle', - 'shared_library': 'framework', - }[self.spec['type']] - wrapper_extension = self.GetPerTargetSetting( - 'WRAPPER_EXTENSION', default=default_wrapper_extension) - return '.' + self.spec.get('product_extension', wrapper_extension) - elif self.spec['type'] == 'executable': - if self._IsIosAppExtension() or self._IsIosWatchKitExtension(): - return '.' + self.spec.get('product_extension', 'appex') - else: - return '.' + self.spec.get('product_extension', 'app') - else: - assert False, "Don't know extension for '%s', target '%s'" % ( - self.spec['type'], self.spec['target_name']) - - def GetProductName(self): - """Returns PRODUCT_NAME.""" - return self.spec.get('product_name', self.spec['target_name']) - - def GetFullProductName(self): - """Returns FULL_PRODUCT_NAME.""" - if self._IsBundle(): - return self.GetWrapperName() - else: - return self._GetStandaloneBinaryPath() - - def GetWrapperName(self): - """Returns the directory name of the bundle represented by this target. - Only valid for bundles.""" - assert self._IsBundle() - return self.GetProductName() + self.GetWrapperExtension() - - def GetBundleContentsFolderPath(self): - """Returns the qualified path to the bundle's contents folder. E.g. - Chromium.app/Contents or Foo.bundle/Versions/A. Only valid for bundles.""" - if self.isIOS: - return self.GetWrapperName() - assert self._IsBundle() - if self.spec['type'] == 'shared_library': - return os.path.join( - self.GetWrapperName(), 'Versions', self.GetFrameworkVersion()) - else: - # loadable_modules have a 'Contents' folder like executables. - return os.path.join(self.GetWrapperName(), 'Contents') - - def GetBundleResourceFolder(self): - """Returns the qualified path to the bundle's resource folder. E.g. - Chromium.app/Contents/Resources. Only valid for bundles.""" - assert self._IsBundle() - if self.isIOS: - return self.GetBundleContentsFolderPath() - return os.path.join(self.GetBundleContentsFolderPath(), 'Resources') - - def GetBundlePlistPath(self): - """Returns the qualified path to the bundle's plist file. E.g. - Chromium.app/Contents/Info.plist. Only valid for bundles.""" - assert self._IsBundle() - if self.spec['type'] in ('executable', 'loadable_module'): - return os.path.join(self.GetBundleContentsFolderPath(), 'Info.plist') - else: - return os.path.join(self.GetBundleContentsFolderPath(), - 'Resources', 'Info.plist') - - def GetProductType(self): - """Returns the PRODUCT_TYPE of this target.""" - if self._IsIosAppExtension(): - assert self._IsBundle(), ('ios_app_extension flag requires mac_bundle ' - '(target %s)' % self.spec['target_name']) - return 'com.apple.product-type.app-extension' - if self._IsIosWatchKitExtension(): - assert self._IsBundle(), ('ios_watchkit_extension flag requires ' - 'mac_bundle (target %s)' % self.spec['target_name']) - return 'com.apple.product-type.watchkit-extension' - if self._IsIosWatchApp(): - assert self._IsBundle(), ('ios_watch_app flag requires mac_bundle ' - '(target %s)' % self.spec['target_name']) - return 'com.apple.product-type.application.watchapp' - if self._IsBundle(): - return { - 'executable': 'com.apple.product-type.application', - 'loadable_module': 'com.apple.product-type.bundle', - 'shared_library': 'com.apple.product-type.framework', - }[self.spec['type']] - else: - return { - 'executable': 'com.apple.product-type.tool', - 'loadable_module': 'com.apple.product-type.library.dynamic', - 'shared_library': 'com.apple.product-type.library.dynamic', - 'static_library': 'com.apple.product-type.library.static', - }[self.spec['type']] - - def GetMachOType(self): - """Returns the MACH_O_TYPE of this target.""" - # Weird, but matches Xcode. - if not self._IsBundle() and self.spec['type'] == 'executable': - return '' - return { - 'executable': 'mh_execute', - 'static_library': 'staticlib', - 'shared_library': 'mh_dylib', - 'loadable_module': 'mh_bundle', - }[self.spec['type']] - - def _GetBundleBinaryPath(self): - """Returns the name of the bundle binary of by this target. - E.g. Chromium.app/Contents/MacOS/Chromium. Only valid for bundles.""" - assert self._IsBundle() - if self.spec['type'] in ('shared_library') or self.isIOS: - path = self.GetBundleContentsFolderPath() - elif self.spec['type'] in ('executable', 'loadable_module'): - path = os.path.join(self.GetBundleContentsFolderPath(), 'MacOS') - return os.path.join(path, self.GetExecutableName()) - - def _GetStandaloneExecutableSuffix(self): - if 'product_extension' in self.spec: - return '.' + self.spec['product_extension'] - return { - 'executable': '', - 'static_library': '.a', - 'shared_library': '.dylib', - 'loadable_module': '.so', - }[self.spec['type']] - - def _GetStandaloneExecutablePrefix(self): - return self.spec.get('product_prefix', { - 'executable': '', - 'static_library': 'lib', - 'shared_library': 'lib', - # Non-bundled loadable_modules are called foo.so for some reason - # (that is, .so and no prefix) with the xcode build -- match that. - 'loadable_module': '', - }[self.spec['type']]) - - def _GetStandaloneBinaryPath(self): - """Returns the name of the non-bundle binary represented by this target. - E.g. hello_world. Only valid for non-bundles.""" - assert not self._IsBundle() - assert self.spec['type'] in ( - 'executable', 'shared_library', 'static_library', 'loadable_module'), ( - 'Unexpected type %s' % self.spec['type']) - target = self.spec['target_name'] - if self.spec['type'] == 'static_library': - if target[:3] == 'lib': - target = target[3:] - elif self.spec['type'] in ('loadable_module', 'shared_library'): - if target[:3] == 'lib': - target = target[3:] - - target_prefix = self._GetStandaloneExecutablePrefix() - target = self.spec.get('product_name', target) - target_ext = self._GetStandaloneExecutableSuffix() - return target_prefix + target + target_ext - - def GetExecutableName(self): - """Returns the executable name of the bundle represented by this target. - E.g. Chromium.""" - if self._IsBundle(): - return self.spec.get('product_name', self.spec['target_name']) - else: - return self._GetStandaloneBinaryPath() - - def GetExecutablePath(self): - """Returns the directory name of the bundle represented by this target. E.g. - Chromium.app/Contents/MacOS/Chromium.""" - if self._IsBundle(): - return self._GetBundleBinaryPath() - else: - return self._GetStandaloneBinaryPath() - - def GetActiveArchs(self, configname): - """Returns the architectures this target should be built for.""" - config_settings = self.xcode_settings[configname] - xcode_archs_default = GetXcodeArchsDefault() - return xcode_archs_default.ActiveArchs( - config_settings.get('ARCHS'), - config_settings.get('VALID_ARCHS'), - config_settings.get('SDKROOT')) - - def _GetSdkVersionInfoItem(self, sdk, infoitem): - # xcodebuild requires Xcode and can't run on Command Line Tools-only - # systems from 10.7 onward. - # Since the CLT has no SDK paths anyway, returning None is the - # most sensible route and should still do the right thing. - try: - return GetStdout(['xcodebuild', '-version', '-sdk', sdk, infoitem]) - except: - pass - - def _SdkRoot(self, configname): - if configname is None: - configname = self.configname - return self.GetPerConfigSetting('SDKROOT', configname, default='') - - def _SdkPath(self, configname=None): - sdk_root = self._SdkRoot(configname) - if sdk_root.startswith('/'): - return sdk_root - return self._XcodeSdkPath(sdk_root) - - def _XcodeSdkPath(self, sdk_root): - if sdk_root not in XcodeSettings._sdk_path_cache: - sdk_path = self._GetSdkVersionInfoItem(sdk_root, 'Path') - XcodeSettings._sdk_path_cache[sdk_root] = sdk_path - if sdk_root: - XcodeSettings._sdk_root_cache[sdk_path] = sdk_root - return XcodeSettings._sdk_path_cache[sdk_root] - - def _AppendPlatformVersionMinFlags(self, lst): - self._Appendf(lst, 'MACOSX_DEPLOYMENT_TARGET', '-mmacosx-version-min=%s') - if 'IPHONEOS_DEPLOYMENT_TARGET' in self._Settings(): - # TODO: Implement this better? - sdk_path_basename = os.path.basename(self._SdkPath()) - if sdk_path_basename.lower().startswith('iphonesimulator'): - self._Appendf(lst, 'IPHONEOS_DEPLOYMENT_TARGET', - '-mios-simulator-version-min=%s') - else: - self._Appendf(lst, 'IPHONEOS_DEPLOYMENT_TARGET', - '-miphoneos-version-min=%s') - - def GetCflags(self, configname, arch=None): - """Returns flags that need to be added to .c, .cc, .m, and .mm - compilations.""" - # This functions (and the similar ones below) do not offer complete - # emulation of all xcode_settings keys. They're implemented on demand. - - self.configname = configname - cflags = [] - - sdk_root = self._SdkPath() - if 'SDKROOT' in self._Settings() and sdk_root: - cflags.append('-isysroot %s' % sdk_root) - - if self._Test('CLANG_WARN_CONSTANT_CONVERSION', 'YES', default='NO'): - cflags.append('-Wconstant-conversion') - - if self._Test('GCC_CHAR_IS_UNSIGNED_CHAR', 'YES', default='NO'): - cflags.append('-funsigned-char') - - if self._Test('GCC_CW_ASM_SYNTAX', 'YES', default='YES'): - cflags.append('-fasm-blocks') - - if 'GCC_DYNAMIC_NO_PIC' in self._Settings(): - if self._Settings()['GCC_DYNAMIC_NO_PIC'] == 'YES': - cflags.append('-mdynamic-no-pic') - else: - pass - # TODO: In this case, it depends on the target. xcode passes - # mdynamic-no-pic by default for executable and possibly static lib - # according to mento - - if self._Test('GCC_ENABLE_PASCAL_STRINGS', 'YES', default='YES'): - cflags.append('-mpascal-strings') - - self._Appendf(cflags, 'GCC_OPTIMIZATION_LEVEL', '-O%s', default='s') - - if self._Test('GCC_GENERATE_DEBUGGING_SYMBOLS', 'YES', default='YES'): - dbg_format = self._Settings().get('DEBUG_INFORMATION_FORMAT', 'dwarf') - if dbg_format == 'dwarf': - cflags.append('-gdwarf-2') - elif dbg_format == 'stabs': - raise NotImplementedError('stabs debug format is not supported yet.') - elif dbg_format == 'dwarf-with-dsym': - cflags.append('-gdwarf-2') - else: - raise NotImplementedError('Unknown debug format %s' % dbg_format) - - if self._Settings().get('GCC_STRICT_ALIASING') == 'YES': - cflags.append('-fstrict-aliasing') - elif self._Settings().get('GCC_STRICT_ALIASING') == 'NO': - cflags.append('-fno-strict-aliasing') - - if self._Test('GCC_SYMBOLS_PRIVATE_EXTERN', 'YES', default='NO'): - cflags.append('-fvisibility=hidden') - - if self._Test('GCC_TREAT_WARNINGS_AS_ERRORS', 'YES', default='NO'): - cflags.append('-Werror') - - if self._Test('GCC_WARN_ABOUT_MISSING_NEWLINE', 'YES', default='NO'): - cflags.append('-Wnewline-eof') - - # In Xcode, this is only activated when GCC_COMPILER_VERSION is clang or - # llvm-gcc. It also requires a fairly recent libtool, and - # if the system clang isn't used, DYLD_LIBRARY_PATH needs to contain the - # path to the libLTO.dylib that matches the used clang. - if self._Test('LLVM_LTO', 'YES', default='NO'): - cflags.append('-flto') - - self._AppendPlatformVersionMinFlags(cflags) - - # TODO: - if self._Test('COPY_PHASE_STRIP', 'YES', default='NO'): - self._WarnUnimplemented('COPY_PHASE_STRIP') - self._WarnUnimplemented('GCC_DEBUGGING_SYMBOLS') - self._WarnUnimplemented('GCC_ENABLE_OBJC_EXCEPTIONS') - - # TODO: This is exported correctly, but assigning to it is not supported. - self._WarnUnimplemented('MACH_O_TYPE') - self._WarnUnimplemented('PRODUCT_TYPE') - - if arch is not None: - archs = [arch] - else: - assert self.configname - archs = self.GetActiveArchs(self.configname) - if len(archs) != 1: - # TODO: Supporting fat binaries will be annoying. - self._WarnUnimplemented('ARCHS') - archs = ['i386'] - cflags.append('-arch ' + archs[0]) - - if archs[0] in ('i386', 'x86_64'): - if self._Test('GCC_ENABLE_SSE3_EXTENSIONS', 'YES', default='NO'): - cflags.append('-msse3') - if self._Test('GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS', 'YES', - default='NO'): - cflags.append('-mssse3') # Note 3rd 's'. - if self._Test('GCC_ENABLE_SSE41_EXTENSIONS', 'YES', default='NO'): - cflags.append('-msse4.1') - if self._Test('GCC_ENABLE_SSE42_EXTENSIONS', 'YES', default='NO'): - cflags.append('-msse4.2') - - cflags += self._Settings().get('WARNING_CFLAGS', []) - - if sdk_root: - framework_root = sdk_root - else: - framework_root = '' - config = self.spec['configurations'][self.configname] - framework_dirs = config.get('mac_framework_dirs', []) - for directory in framework_dirs: - cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root)) - - self.configname = None - return cflags - - def GetCflagsC(self, configname): - """Returns flags that need to be added to .c, and .m compilations.""" - self.configname = configname - cflags_c = [] - if self._Settings().get('GCC_C_LANGUAGE_STANDARD', '') == 'ansi': - cflags_c.append('-ansi') - else: - self._Appendf(cflags_c, 'GCC_C_LANGUAGE_STANDARD', '-std=%s') - cflags_c += self._Settings().get('OTHER_CFLAGS', []) - self.configname = None - return cflags_c - - def GetCflagsCC(self, configname): - """Returns flags that need to be added to .cc, and .mm compilations.""" - self.configname = configname - cflags_cc = [] - - clang_cxx_language_standard = self._Settings().get( - 'CLANG_CXX_LANGUAGE_STANDARD') - # Note: Don't make c++0x to c++11 so that c++0x can be used with older - # clangs that don't understand c++11 yet (like Xcode 4.2's). - if clang_cxx_language_standard: - cflags_cc.append('-std=%s' % clang_cxx_language_standard) - - self._Appendf(cflags_cc, 'CLANG_CXX_LIBRARY', '-stdlib=%s') - - if self._Test('GCC_ENABLE_CPP_RTTI', 'NO', default='YES'): - cflags_cc.append('-fno-rtti') - if self._Test('GCC_ENABLE_CPP_EXCEPTIONS', 'NO', default='YES'): - cflags_cc.append('-fno-exceptions') - if self._Test('GCC_INLINES_ARE_PRIVATE_EXTERN', 'YES', default='NO'): - cflags_cc.append('-fvisibility-inlines-hidden') - if self._Test('GCC_THREADSAFE_STATICS', 'NO', default='YES'): - cflags_cc.append('-fno-threadsafe-statics') - # Note: This flag is a no-op for clang, it only has an effect for gcc. - if self._Test('GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO', 'NO', default='YES'): - cflags_cc.append('-Wno-invalid-offsetof') - - other_ccflags = [] - - for flag in self._Settings().get('OTHER_CPLUSPLUSFLAGS', ['$(inherited)']): - # TODO: More general variable expansion. Missing in many other places too. - if flag in ('$inherited', '$(inherited)', '${inherited}'): - flag = '$OTHER_CFLAGS' - if flag in ('$OTHER_CFLAGS', '$(OTHER_CFLAGS)', '${OTHER_CFLAGS}'): - other_ccflags += self._Settings().get('OTHER_CFLAGS', []) - else: - other_ccflags.append(flag) - cflags_cc += other_ccflags - - self.configname = None - return cflags_cc - - def _AddObjectiveCGarbageCollectionFlags(self, flags): - gc_policy = self._Settings().get('GCC_ENABLE_OBJC_GC', 'unsupported') - if gc_policy == 'supported': - flags.append('-fobjc-gc') - elif gc_policy == 'required': - flags.append('-fobjc-gc-only') - - def _AddObjectiveCARCFlags(self, flags): - if self._Test('CLANG_ENABLE_OBJC_ARC', 'YES', default='NO'): - flags.append('-fobjc-arc') - - def _AddObjectiveCMissingPropertySynthesisFlags(self, flags): - if self._Test('CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS', - 'YES', default='NO'): - flags.append('-Wobjc-missing-property-synthesis') - - def GetCflagsObjC(self, configname): - """Returns flags that need to be added to .m compilations.""" - self.configname = configname - cflags_objc = [] - self._AddObjectiveCGarbageCollectionFlags(cflags_objc) - self._AddObjectiveCARCFlags(cflags_objc) - self._AddObjectiveCMissingPropertySynthesisFlags(cflags_objc) - self.configname = None - return cflags_objc - - def GetCflagsObjCC(self, configname): - """Returns flags that need to be added to .mm compilations.""" - self.configname = configname - cflags_objcc = [] - self._AddObjectiveCGarbageCollectionFlags(cflags_objcc) - self._AddObjectiveCARCFlags(cflags_objcc) - self._AddObjectiveCMissingPropertySynthesisFlags(cflags_objcc) - if self._Test('GCC_OBJC_CALL_CXX_CDTORS', 'YES', default='NO'): - cflags_objcc.append('-fobjc-call-cxx-cdtors') - self.configname = None - return cflags_objcc - - def GetInstallNameBase(self): - """Return DYLIB_INSTALL_NAME_BASE for this target.""" - # Xcode sets this for shared_libraries, and for nonbundled loadable_modules. - if (self.spec['type'] != 'shared_library' and - (self.spec['type'] != 'loadable_module' or self._IsBundle())): - return None - install_base = self.GetPerTargetSetting( - 'DYLIB_INSTALL_NAME_BASE', - default='/Library/Frameworks' if self._IsBundle() else '/usr/local/lib') - return install_base - - def _StandardizePath(self, path): - """Do :standardizepath processing for path.""" - # I'm not quite sure what :standardizepath does. Just call normpath(), - # but don't let @executable_path/../foo collapse to foo. - if '/' in path: - prefix, rest = '', path - if path.startswith('@'): - prefix, rest = path.split('/', 1) - rest = os.path.normpath(rest) # :standardizepath - path = os.path.join(prefix, rest) - return path - - def GetInstallName(self): - """Return LD_DYLIB_INSTALL_NAME for this target.""" - # Xcode sets this for shared_libraries, and for nonbundled loadable_modules. - if (self.spec['type'] != 'shared_library' and - (self.spec['type'] != 'loadable_module' or self._IsBundle())): - return None - - default_install_name = \ - '$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)' - install_name = self.GetPerTargetSetting( - 'LD_DYLIB_INSTALL_NAME', default=default_install_name) - - # Hardcode support for the variables used in chromium for now, to - # unblock people using the make build. - if '$' in install_name: - assert install_name in ('$(DYLIB_INSTALL_NAME_BASE:standardizepath)/' - '$(WRAPPER_NAME)/$(PRODUCT_NAME)', default_install_name), ( - 'Variables in LD_DYLIB_INSTALL_NAME are not generally supported ' - 'yet in target \'%s\' (got \'%s\')' % - (self.spec['target_name'], install_name)) - - install_name = install_name.replace( - '$(DYLIB_INSTALL_NAME_BASE:standardizepath)', - self._StandardizePath(self.GetInstallNameBase())) - if self._IsBundle(): - # These are only valid for bundles, hence the |if|. - install_name = install_name.replace( - '$(WRAPPER_NAME)', self.GetWrapperName()) - install_name = install_name.replace( - '$(PRODUCT_NAME)', self.GetProductName()) - else: - assert '$(WRAPPER_NAME)' not in install_name - assert '$(PRODUCT_NAME)' not in install_name - - install_name = install_name.replace( - '$(EXECUTABLE_PATH)', self.GetExecutablePath()) - return install_name - - def _MapLinkerFlagFilename(self, ldflag, gyp_to_build_path): - """Checks if ldflag contains a filename and if so remaps it from - gyp-directory-relative to build-directory-relative.""" - # This list is expanded on demand. - # They get matched as: - # -exported_symbols_list file - # -Wl,exported_symbols_list file - # -Wl,exported_symbols_list,file - LINKER_FILE = r'(\S+)' - WORD = r'\S+' - linker_flags = [ - ['-exported_symbols_list', LINKER_FILE], # Needed for NaCl. - ['-unexported_symbols_list', LINKER_FILE], - ['-reexported_symbols_list', LINKER_FILE], - ['-sectcreate', WORD, WORD, LINKER_FILE], # Needed for remoting. - ] - for flag_pattern in linker_flags: - regex = re.compile('(?:-Wl,)?' + '[ ,]'.join(flag_pattern)) - m = regex.match(ldflag) - if m: - ldflag = ldflag[:m.start(1)] + gyp_to_build_path(m.group(1)) + \ - ldflag[m.end(1):] - # Required for ffmpeg (no idea why they don't use LIBRARY_SEARCH_PATHS, - # TODO(thakis): Update ffmpeg.gyp): - if ldflag.startswith('-L'): - ldflag = '-L' + gyp_to_build_path(ldflag[len('-L'):]) - return ldflag - - def GetLdflags(self, configname, product_dir, gyp_to_build_path, arch=None): - """Returns flags that need to be passed to the linker. - - Args: - configname: The name of the configuration to get ld flags for. - product_dir: The directory where products such static and dynamic - libraries are placed. This is added to the library search path. - gyp_to_build_path: A function that converts paths relative to the - current gyp file to paths relative to the build direcotry. - """ - self.configname = configname - ldflags = [] - - # The xcode build is relative to a gyp file's directory, and OTHER_LDFLAGS - # can contain entries that depend on this. Explicitly absolutify these. - for ldflag in self._Settings().get('OTHER_LDFLAGS', []): - ldflags.append(self._MapLinkerFlagFilename(ldflag, gyp_to_build_path)) - - if self._Test('DEAD_CODE_STRIPPING', 'YES', default='NO'): - ldflags.append('-Wl,-dead_strip') - - if self._Test('PREBINDING', 'YES', default='NO'): - ldflags.append('-Wl,-prebind') - - self._Appendf( - ldflags, 'DYLIB_COMPATIBILITY_VERSION', '-compatibility_version %s') - self._Appendf( - ldflags, 'DYLIB_CURRENT_VERSION', '-current_version %s') - - self._AppendPlatformVersionMinFlags(ldflags) - - if 'SDKROOT' in self._Settings() and self._SdkPath(): - ldflags.append('-isysroot ' + self._SdkPath()) - - for library_path in self._Settings().get('LIBRARY_SEARCH_PATHS', []): - ldflags.append('-L' + gyp_to_build_path(library_path)) - - if 'ORDER_FILE' in self._Settings(): - ldflags.append('-Wl,-order_file ' + - '-Wl,' + gyp_to_build_path( - self._Settings()['ORDER_FILE'])) - - if arch is not None: - archs = [arch] - else: - assert self.configname - archs = self.GetActiveArchs(self.configname) - if len(archs) != 1: - # TODO: Supporting fat binaries will be annoying. - self._WarnUnimplemented('ARCHS') - archs = ['i386'] - ldflags.append('-arch ' + archs[0]) - - # Xcode adds the product directory by default. - ldflags.append('-L' + product_dir) - - install_name = self.GetInstallName() - if install_name and self.spec['type'] != 'loadable_module': - ldflags.append('-install_name ' + install_name.replace(' ', r'\ ')) - - for rpath in self._Settings().get('LD_RUNPATH_SEARCH_PATHS', []): - ldflags.append('-Wl,-rpath,' + rpath) - - sdk_root = self._SdkPath() - if not sdk_root: - sdk_root = '' - config = self.spec['configurations'][self.configname] - framework_dirs = config.get('mac_framework_dirs', []) - for directory in framework_dirs: - ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root)) - - is_extension = self._IsIosAppExtension() or self._IsIosWatchKitExtension() - if sdk_root and is_extension: - # Adds the link flags for extensions. These flags are common for all - # extensions and provide loader and main function. - # These flags reflect the compilation options used by xcode to compile - # extensions. - ldflags.append('-lpkstart') - if XcodeVersion() < '0900': - ldflags.append(sdk_root + - '/System/Library/PrivateFrameworks/PlugInKit.framework/PlugInKit') - ldflags.append('-fapplication-extension') - ldflags.append('-Xlinker -rpath ' - '-Xlinker @executable_path/../../Frameworks') - - self._Appendf(ldflags, 'CLANG_CXX_LIBRARY', '-stdlib=%s') - - self.configname = None - return ldflags - - def GetLibtoolflags(self, configname): - """Returns flags that need to be passed to the static linker. - - Args: - configname: The name of the configuration to get ld flags for. - """ - self.configname = configname - libtoolflags = [] - - for libtoolflag in self._Settings().get('OTHER_LDFLAGS', []): - libtoolflags.append(libtoolflag) - # TODO(thakis): ARCHS? - - self.configname = None - return libtoolflags - - def GetPerTargetSettings(self): - """Gets a list of all the per-target settings. This will only fetch keys - whose values are the same across all configurations.""" - first_pass = True - result = {} - for configname in sorted(self.xcode_settings.keys()): - if first_pass: - result = dict(self.xcode_settings[configname]) - first_pass = False - else: - for key, value in self.xcode_settings[configname].iteritems(): - if key not in result: - continue - elif result[key] != value: - del result[key] - return result - - def GetPerConfigSetting(self, setting, configname, default=None): - if configname in self.xcode_settings: - return self.xcode_settings[configname].get(setting, default) - else: - return self.GetPerTargetSetting(setting, default) - - def GetPerTargetSetting(self, setting, default=None): - """Tries to get xcode_settings.setting from spec. Assumes that the setting - has the same value in all configurations and throws otherwise.""" - is_first_pass = True - result = None - for configname in sorted(self.xcode_settings.keys()): - if is_first_pass: - result = self.xcode_settings[configname].get(setting, None) - is_first_pass = False - else: - assert result == self.xcode_settings[configname].get(setting, None), ( - "Expected per-target setting for '%s', got per-config setting " - "(target %s)" % (setting, self.spec['target_name'])) - if result is None: - return default - return result - - def _GetStripPostbuilds(self, configname, output_binary, quiet): - """Returns a list of shell commands that contain the shell commands - neccessary to strip this target's binary. These should be run as postbuilds - before the actual postbuilds run.""" - self.configname = configname - - result = [] - if (self._Test('DEPLOYMENT_POSTPROCESSING', 'YES', default='NO') and - self._Test('STRIP_INSTALLED_PRODUCT', 'YES', default='NO')): - - default_strip_style = 'debugging' - if self.spec['type'] == 'loadable_module' and self._IsBundle(): - default_strip_style = 'non-global' - elif self.spec['type'] == 'executable': - default_strip_style = 'all' - - strip_style = self._Settings().get('STRIP_STYLE', default_strip_style) - strip_flags = { - 'all': '', - 'non-global': '-x', - 'debugging': '-S', - }[strip_style] - - explicit_strip_flags = self._Settings().get('STRIPFLAGS', '') - if explicit_strip_flags: - strip_flags += ' ' + _NormalizeEnvVarReferences(explicit_strip_flags) - - if not quiet: - result.append('echo STRIP\\(%s\\)' % self.spec['target_name']) - result.append('strip %s %s' % (strip_flags, output_binary)) - - self.configname = None - return result - - def _GetDebugInfoPostbuilds(self, configname, output, output_binary, quiet): - """Returns a list of shell commands that contain the shell commands - neccessary to massage this target's debug information. These should be run - as postbuilds before the actual postbuilds run.""" - self.configname = configname - - # For static libraries, no dSYMs are created. - result = [] - if (self._Test('GCC_GENERATE_DEBUGGING_SYMBOLS', 'YES', default='YES') and - self._Test( - 'DEBUG_INFORMATION_FORMAT', 'dwarf-with-dsym', default='dwarf') and - self.spec['type'] != 'static_library'): - if not quiet: - result.append('echo DSYMUTIL\\(%s\\)' % self.spec['target_name']) - result.append('dsymutil %s -o %s' % (output_binary, output + '.dSYM')) - - self.configname = None - return result - - def _GetTargetPostbuilds(self, configname, output, output_binary, - quiet=False): - """Returns a list of shell commands that contain the shell commands - to run as postbuilds for this target, before the actual postbuilds.""" - # dSYMs need to build before stripping happens. - return ( - self._GetDebugInfoPostbuilds(configname, output, output_binary, quiet) + - self._GetStripPostbuilds(configname, output_binary, quiet)) - - def _GetIOSPostbuilds(self, configname, output_binary): - """Return a shell command to codesign the iOS output binary so it can - be deployed to a device. This should be run as the very last step of the - build.""" - if not (self.isIOS and self.spec['type'] == 'executable'): - return [] - - settings = self.xcode_settings[configname] - key = self._GetIOSCodeSignIdentityKey(settings) - if not key: - return [] - - # Warn for any unimplemented signing xcode keys. - unimpl = ['OTHER_CODE_SIGN_FLAGS'] - unimpl = set(unimpl) & set(self.xcode_settings[configname].keys()) - if unimpl: - print 'Warning: Some codesign keys not implemented, ignoring: %s' % ( - ', '.join(sorted(unimpl))) - - return ['%s code-sign-bundle "%s" "%s" "%s" "%s"' % ( - os.path.join('${TARGET_BUILD_DIR}', 'gyp-mac-tool'), key, - settings.get('CODE_SIGN_RESOURCE_RULES_PATH', ''), - settings.get('CODE_SIGN_ENTITLEMENTS', ''), - settings.get('PROVISIONING_PROFILE', '')) - ] - - def _GetIOSCodeSignIdentityKey(self, settings): - identity = settings.get('CODE_SIGN_IDENTITY') - if not identity: - return None - if identity not in XcodeSettings._codesigning_key_cache: - output = subprocess.check_output( - ['security', 'find-identity', '-p', 'codesigning', '-v']) - for line in output.splitlines(): - if identity in line: - fingerprint = line.split()[1] - cache = XcodeSettings._codesigning_key_cache - assert identity not in cache or fingerprint == cache[identity], ( - "Multiple codesigning fingerprints for identity: %s" % identity) - XcodeSettings._codesigning_key_cache[identity] = fingerprint - return XcodeSettings._codesigning_key_cache.get(identity, '') - - def AddImplicitPostbuilds(self, configname, output, output_binary, - postbuilds=[], quiet=False): - """Returns a list of shell commands that should run before and after - |postbuilds|.""" - assert output_binary is not None - pre = self._GetTargetPostbuilds(configname, output, output_binary, quiet) - post = self._GetIOSPostbuilds(configname, output_binary) - return pre + postbuilds + post - - def _AdjustLibrary(self, library, config_name=None): - if library.endswith('.framework'): - l = '-framework ' + os.path.splitext(os.path.basename(library))[0] - else: - m = self.library_re.match(library) - if m: - l = '-l' + m.group(1) - else: - l = library - - sdk_root = self._SdkPath(config_name) - if not sdk_root: - sdk_root = '' - # Xcode 7 started shipping with ".tbd" (text based stubs) files instead of - # ".dylib" without providing a real support for them. What it does, for - # "/usr/lib" libraries, is do "-L/usr/lib -lname" which is dependent on the - # library order and cause collision when building Chrome. - # - # Instead substitude ".tbd" to ".dylib" in the generated project when the - # following conditions are both true: - # - library is referenced in the gyp file as "$(SDKROOT)/**/*.dylib", - # - the ".dylib" file does not exists but a ".tbd" file do. - library = l.replace('$(SDKROOT)', sdk_root) - if l.startswith('$(SDKROOT)'): - basename, ext = os.path.splitext(library) - if ext == '.dylib' and not os.path.exists(library): - tbd_library = basename + '.tbd' - if os.path.exists(tbd_library): - library = tbd_library - return library - - def AdjustLibraries(self, libraries, config_name=None): - """Transforms entries like 'Cocoa.framework' in libraries into entries like - '-framework Cocoa', 'libcrypto.dylib' into '-lcrypto', etc. - """ - libraries = [self._AdjustLibrary(library, config_name) - for library in libraries] - return libraries - - def _BuildMachineOSBuild(self): - return GetStdout(['sw_vers', '-buildVersion']) - - def _XcodeIOSDeviceFamily(self, configname): - family = self.xcode_settings[configname].get('TARGETED_DEVICE_FAMILY', '1') - return [int(x) for x in family.split(',')] - - def GetExtraPlistItems(self, configname=None): - """Returns a dictionary with extra items to insert into Info.plist.""" - if configname not in XcodeSettings._plist_cache: - cache = {} - cache['BuildMachineOSBuild'] = self._BuildMachineOSBuild() - - xcode, xcode_build = XcodeVersion() - cache['DTXcode'] = xcode - cache['DTXcodeBuild'] = xcode_build - - sdk_root = self._SdkRoot(configname) - if not sdk_root: - sdk_root = self._DefaultSdkRoot() - cache['DTSDKName'] = sdk_root - if xcode >= '0430': - cache['DTSDKBuild'] = self._GetSdkVersionInfoItem( - sdk_root, 'ProductBuildVersion') - else: - cache['DTSDKBuild'] = cache['BuildMachineOSBuild'] - - if self.isIOS: - cache['DTPlatformName'] = cache['DTSDKName'] - if configname.endswith("iphoneos"): - cache['DTPlatformVersion'] = self._GetSdkVersionInfoItem( - sdk_root, 'ProductVersion') - cache['CFBundleSupportedPlatforms'] = ['iPhoneOS'] - else: - cache['CFBundleSupportedPlatforms'] = ['iPhoneSimulator'] - XcodeSettings._plist_cache[configname] = cache - - # Include extra plist items that are per-target, not per global - # XcodeSettings. - items = dict(XcodeSettings._plist_cache[configname]) - if self.isIOS: - items['UIDeviceFamily'] = self._XcodeIOSDeviceFamily(configname) - return items - - def _DefaultSdkRoot(self): - """Returns the default SDKROOT to use. - - Prior to version 5.0.0, if SDKROOT was not explicitly set in the Xcode - project, then the environment variable was empty. Starting with this - version, Xcode uses the name of the newest SDK installed. - """ - xcode_version, xcode_build = XcodeVersion() - if xcode_version < '0500': - return '' - default_sdk_path = self._XcodeSdkPath('') - default_sdk_root = XcodeSettings._sdk_root_cache.get(default_sdk_path) - if default_sdk_root: - return default_sdk_root - try: - all_sdks = GetStdout(['xcodebuild', '-showsdks']) - except: - # If xcodebuild fails, there will be no valid SDKs - return '' - for line in all_sdks.splitlines(): - items = line.split() - if len(items) >= 3 and items[-2] == '-sdk': - sdk_root = items[-1] - sdk_path = self._XcodeSdkPath(sdk_root) - if sdk_path == default_sdk_path: - return sdk_root - return '' - - -class MacPrefixHeader(object): - """A class that helps with emulating Xcode's GCC_PREFIX_HEADER feature. - - This feature consists of several pieces: - * If GCC_PREFIX_HEADER is present, all compilations in that project get an - additional |-include path_to_prefix_header| cflag. - * If GCC_PRECOMPILE_PREFIX_HEADER is present too, then the prefix header is - instead compiled, and all other compilations in the project get an - additional |-include path_to_compiled_header| instead. - + Compiled prefix headers have the extension gch. There is one gch file for - every language used in the project (c, cc, m, mm), since gch files for - different languages aren't compatible. - + gch files themselves are built with the target's normal cflags, but they - obviously don't get the |-include| flag. Instead, they need a -x flag that - describes their language. - + All o files in the target need to depend on the gch file, to make sure - it's built before any o file is built. - - This class helps with some of these tasks, but it needs help from the build - system for writing dependencies to the gch files, for writing build commands - for the gch files, and for figuring out the location of the gch files. - """ - def __init__(self, xcode_settings, - gyp_path_to_build_path, gyp_path_to_build_output): - """If xcode_settings is None, all methods on this class are no-ops. - - Args: - gyp_path_to_build_path: A function that takes a gyp-relative path, - and returns a path relative to the build directory. - gyp_path_to_build_output: A function that takes a gyp-relative path and - a language code ('c', 'cc', 'm', or 'mm'), and that returns a path - to where the output of precompiling that path for that language - should be placed (without the trailing '.gch'). - """ - # This doesn't support per-configuration prefix headers. Good enough - # for now. - self.header = None - self.compile_headers = False - if xcode_settings: - self.header = xcode_settings.GetPerTargetSetting('GCC_PREFIX_HEADER') - self.compile_headers = xcode_settings.GetPerTargetSetting( - 'GCC_PRECOMPILE_PREFIX_HEADER', default='NO') != 'NO' - self.compiled_headers = {} - if self.header: - if self.compile_headers: - for lang in ['c', 'cc', 'm', 'mm']: - self.compiled_headers[lang] = gyp_path_to_build_output( - self.header, lang) - self.header = gyp_path_to_build_path(self.header) - - def _CompiledHeader(self, lang, arch): - assert self.compile_headers - h = self.compiled_headers[lang] - if arch: - h += '.' + arch - return h - - def GetInclude(self, lang, arch=None): - """Gets the cflags to include the prefix header for language |lang|.""" - if self.compile_headers and lang in self.compiled_headers: - return '-include %s' % self._CompiledHeader(lang, arch) - elif self.header: - return '-include %s' % self.header - else: - return '' - - def _Gch(self, lang, arch): - """Returns the actual file name of the prefix header for language |lang|.""" - assert self.compile_headers - return self._CompiledHeader(lang, arch) + '.gch' - - def GetObjDependencies(self, sources, objs, arch=None): - """Given a list of source files and the corresponding object files, returns - a list of (source, object, gch) tuples, where |gch| is the build-directory - relative path to the gch file each object file depends on. |compilable[i]| - has to be the source file belonging to |objs[i]|.""" - if not self.header or not self.compile_headers: - return [] - - result = [] - for source, obj in zip(sources, objs): - ext = os.path.splitext(source)[1] - lang = { - '.c': 'c', - '.cpp': 'cc', '.cc': 'cc', '.cxx': 'cc', - '.m': 'm', - '.mm': 'mm', - }.get(ext, None) - if lang: - result.append((source, obj, self._Gch(lang, arch))) - return result - - def GetPchBuildCommands(self, arch=None): - """Returns [(path_to_gch, language_flag, language, header)]. - |path_to_gch| and |header| are relative to the build directory. - """ - if not self.header or not self.compile_headers: - return [] - return [ - (self._Gch('c', arch), '-x c-header', 'c', self.header), - (self._Gch('cc', arch), '-x c++-header', 'cc', self.header), - (self._Gch('m', arch), '-x objective-c-header', 'm', self.header), - (self._Gch('mm', arch), '-x objective-c++-header', 'mm', self.header), - ] - - -def XcodeVersion(): - """Returns a tuple of version and build version of installed Xcode.""" - # `xcodebuild -version` output looks like - # Xcode 4.6.3 - # Build version 4H1503 - # or like - # Xcode 3.2.6 - # Component versions: DevToolsCore-1809.0; DevToolsSupport-1806.0 - # BuildVersion: 10M2518 - # Convert that to '0463', '4H1503'. - global XCODE_VERSION_CACHE - if XCODE_VERSION_CACHE: - return XCODE_VERSION_CACHE - try: - version_list = GetStdout(['xcodebuild', '-version']).splitlines() - # In some circumstances xcodebuild exits 0 but doesn't return - # the right results; for example, a user on 10.7 or 10.8 with - # a bogus path set via xcode-select - # In that case this may be a CLT-only install so fall back to - # checking that version. - if len(version_list) < 2: - raise GypError("xcodebuild returned unexpected results") - except: - version = CLTVersion() - if version: - version = re.match(r'(\d\.\d\.?\d*)', version).groups()[0] - else: - raise GypError("No Xcode or CLT version detected!") - # The CLT has no build information, so we return an empty string. - version_list = [version, ''] - version = version_list[0] - build = version_list[-1] - # Be careful to convert "4.2" to "0420": - version = version.split()[-1].replace('.', '') - version = (version + '0' * (3 - len(version))).zfill(4) - if build: - build = build.split()[-1] - XCODE_VERSION_CACHE = (version, build) - return XCODE_VERSION_CACHE - - -# This function ported from the logic in Homebrew's CLT version check -def CLTVersion(): - """Returns the version of command-line tools from pkgutil.""" - # pkgutil output looks like - # package-id: com.apple.pkg.CLTools_Executables - # version: 5.0.1.0.1.1382131676 - # volume: / - # location: / - # install-time: 1382544035 - # groups: com.apple.FindSystemFiles.pkg-group com.apple.DevToolsBoth.pkg-group com.apple.DevToolsNonRelocatableShared.pkg-group - STANDALONE_PKG_ID = "com.apple.pkg.DeveloperToolsCLILeo" - FROM_XCODE_PKG_ID = "com.apple.pkg.DeveloperToolsCLI" - MAVERICKS_PKG_ID = "com.apple.pkg.CLTools_Executables" - - regex = re.compile('version: (?P.+)') - for key in [MAVERICKS_PKG_ID, STANDALONE_PKG_ID, FROM_XCODE_PKG_ID]: - try: - output = GetStdout(['/usr/sbin/pkgutil', '--pkg-info', key]) - return re.search(regex, output).groupdict()['version'] - except: - continue - - -def GetStdout(cmdlist): - """Returns the content of standard output returned by invoking |cmdlist|. - Raises |GypError| if the command return with a non-zero return code.""" - job = subprocess.Popen(cmdlist, stdout=subprocess.PIPE) - out = job.communicate()[0] - if job.returncode != 0: - sys.stderr.write(out + '\n') - raise GypError('Error %d running %s' % (job.returncode, cmdlist[0])) - return out.rstrip('\n') - - -def MergeGlobalXcodeSettingsToSpec(global_dict, spec): - """Merges the global xcode_settings dictionary into each configuration of the - target represented by spec. For keys that are both in the global and the local - xcode_settings dict, the local key gets precendence. - """ - # The xcode generator special-cases global xcode_settings and does something - # that amounts to merging in the global xcode_settings into each local - # xcode_settings dict. - global_xcode_settings = global_dict.get('xcode_settings', {}) - for config in spec['configurations'].values(): - if 'xcode_settings' in config: - new_settings = global_xcode_settings.copy() - new_settings.update(config['xcode_settings']) - config['xcode_settings'] = new_settings - - -def IsMacBundle(flavor, spec): - """Returns if |spec| should be treated as a bundle. - - Bundles are directories with a certain subdirectory structure, instead of - just a single file. Bundle rules do not produce a binary but also package - resources into that directory.""" - is_mac_bundle = (int(spec.get('mac_bundle', 0)) != 0 and flavor == 'mac') - if is_mac_bundle: - assert spec['type'] != 'none', ( - 'mac_bundle targets cannot have type none (target "%s")' % - spec['target_name']) - return is_mac_bundle - - -def GetMacBundleResources(product_dir, xcode_settings, resources): - """Yields (output, resource) pairs for every resource in |resources|. - Only call this for mac bundle targets. - - Args: - product_dir: Path to the directory containing the output bundle, - relative to the build directory. - xcode_settings: The XcodeSettings of the current target. - resources: A list of bundle resources, relative to the build directory. - """ - dest = os.path.join(product_dir, - xcode_settings.GetBundleResourceFolder()) - for res in resources: - output = dest - - # The make generator doesn't support it, so forbid it everywhere - # to keep the generators more interchangable. - assert ' ' not in res, ( - "Spaces in resource filenames not supported (%s)" % res) - - # Split into (path,file). - res_parts = os.path.split(res) - - # Now split the path into (prefix,maybe.lproj). - lproj_parts = os.path.split(res_parts[0]) - # If the resource lives in a .lproj bundle, add that to the destination. - if lproj_parts[1].endswith('.lproj'): - output = os.path.join(output, lproj_parts[1]) - - output = os.path.join(output, res_parts[1]) - # Compiled XIB files are referred to by .nib. - if output.endswith('.xib'): - output = os.path.splitext(output)[0] + '.nib' - # Compiled storyboard files are referred to by .storyboardc. - if output.endswith('.storyboard'): - output = os.path.splitext(output)[0] + '.storyboardc' - - yield output, res - - -def GetMacInfoPlist(product_dir, xcode_settings, gyp_path_to_build_path): - """Returns (info_plist, dest_plist, defines, extra_env), where: - * |info_plist| is the source plist path, relative to the - build directory, - * |dest_plist| is the destination plist path, relative to the - build directory, - * |defines| is a list of preprocessor defines (empty if the plist - shouldn't be preprocessed, - * |extra_env| is a dict of env variables that should be exported when - invoking |mac_tool copy-info-plist|. - - Only call this for mac bundle targets. - - Args: - product_dir: Path to the directory containing the output bundle, - relative to the build directory. - xcode_settings: The XcodeSettings of the current target. - gyp_to_build_path: A function that converts paths relative to the - current gyp file to paths relative to the build direcotry. - """ - info_plist = xcode_settings.GetPerTargetSetting('INFOPLIST_FILE') - if not info_plist: - return None, None, [], {} - - # The make generator doesn't support it, so forbid it everywhere - # to keep the generators more interchangable. - assert ' ' not in info_plist, ( - "Spaces in Info.plist filenames not supported (%s)" % info_plist) - - info_plist = gyp_path_to_build_path(info_plist) - - # If explicitly set to preprocess the plist, invoke the C preprocessor and - # specify any defines as -D flags. - if xcode_settings.GetPerTargetSetting( - 'INFOPLIST_PREPROCESS', default='NO') == 'YES': - # Create an intermediate file based on the path. - defines = shlex.split(xcode_settings.GetPerTargetSetting( - 'INFOPLIST_PREPROCESSOR_DEFINITIONS', default='')) - else: - defines = [] - - dest_plist = os.path.join(product_dir, xcode_settings.GetBundlePlistPath()) - extra_env = xcode_settings.GetPerTargetSettings() - - return info_plist, dest_plist, defines, extra_env - - -def _GetXcodeEnv(xcode_settings, built_products_dir, srcroot, configuration, - additional_settings=None): - """Return the environment variables that Xcode would set. See - http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html#//apple_ref/doc/uid/TP40003931-CH3-SW153 - for a full list. - - Args: - xcode_settings: An XcodeSettings object. If this is None, this function - returns an empty dict. - built_products_dir: Absolute path to the built products dir. - srcroot: Absolute path to the source root. - configuration: The build configuration name. - additional_settings: An optional dict with more values to add to the - result. - """ - if not xcode_settings: return {} - - # This function is considered a friend of XcodeSettings, so let it reach into - # its implementation details. - spec = xcode_settings.spec - - # These are filled in on a as-needed basis. - env = { - 'BUILT_FRAMEWORKS_DIR' : built_products_dir, - 'BUILT_PRODUCTS_DIR' : built_products_dir, - 'CONFIGURATION' : configuration, - 'PRODUCT_NAME' : xcode_settings.GetProductName(), - # See /Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Specifications/MacOSX\ Product\ Types.xcspec for FULL_PRODUCT_NAME - 'SRCROOT' : srcroot, - 'SOURCE_ROOT': '${SRCROOT}', - # This is not true for static libraries, but currently the env is only - # written for bundles: - 'TARGET_BUILD_DIR' : built_products_dir, - 'TEMP_DIR' : '${TMPDIR}', - } - if xcode_settings.GetPerConfigSetting('SDKROOT', configuration): - env['SDKROOT'] = xcode_settings._SdkPath(configuration) - else: - env['SDKROOT'] = '' - - if spec['type'] in ( - 'executable', 'static_library', 'shared_library', 'loadable_module'): - env['EXECUTABLE_NAME'] = xcode_settings.GetExecutableName() - env['EXECUTABLE_PATH'] = xcode_settings.GetExecutablePath() - env['FULL_PRODUCT_NAME'] = xcode_settings.GetFullProductName() - mach_o_type = xcode_settings.GetMachOType() - if mach_o_type: - env['MACH_O_TYPE'] = mach_o_type - env['PRODUCT_TYPE'] = xcode_settings.GetProductType() - if xcode_settings._IsBundle(): - env['CONTENTS_FOLDER_PATH'] = \ - xcode_settings.GetBundleContentsFolderPath() - env['UNLOCALIZED_RESOURCES_FOLDER_PATH'] = \ - xcode_settings.GetBundleResourceFolder() - env['INFOPLIST_PATH'] = xcode_settings.GetBundlePlistPath() - env['WRAPPER_NAME'] = xcode_settings.GetWrapperName() - - install_name = xcode_settings.GetInstallName() - if install_name: - env['LD_DYLIB_INSTALL_NAME'] = install_name - install_name_base = xcode_settings.GetInstallNameBase() - if install_name_base: - env['DYLIB_INSTALL_NAME_BASE'] = install_name_base - if XcodeVersion() >= '0500' and not env.get('SDKROOT'): - sdk_root = xcode_settings._SdkRoot(configuration) - if not sdk_root: - sdk_root = xcode_settings._XcodeSdkPath('') - if sdk_root is None: - sdk_root = '' - env['SDKROOT'] = sdk_root - - if not additional_settings: - additional_settings = {} - else: - # Flatten lists to strings. - for k in additional_settings: - if not isinstance(additional_settings[k], str): - additional_settings[k] = ' '.join(additional_settings[k]) - additional_settings.update(env) - - for k in additional_settings: - additional_settings[k] = _NormalizeEnvVarReferences(additional_settings[k]) - - return additional_settings - - -def _NormalizeEnvVarReferences(str): - """Takes a string containing variable references in the form ${FOO}, $(FOO), - or $FOO, and returns a string with all variable references in the form ${FOO}. - """ - # $FOO -> ${FOO} - str = re.sub(r'\$([a-zA-Z_][a-zA-Z0-9_]*)', r'${\1}', str) - - # $(FOO) -> ${FOO} - matches = re.findall(r'(\$\(([a-zA-Z0-9\-_]+)\))', str) - for match in matches: - to_replace, variable = match - assert '$(' not in match, '$($(FOO)) variables not supported: ' + match - str = str.replace(to_replace, '${' + variable + '}') - - return str - - -def ExpandEnvVars(string, expansions): - """Expands ${VARIABLES}, $(VARIABLES), and $VARIABLES in string per the - expansions list. If the variable expands to something that references - another variable, this variable is expanded as well if it's in env -- - until no variables present in env are left.""" - for k, v in reversed(expansions): - string = string.replace('${' + k + '}', v) - string = string.replace('$(' + k + ')', v) - string = string.replace('$' + k, v) - return string - - -def _TopologicallySortedEnvVarKeys(env): - """Takes a dict |env| whose values are strings that can refer to other keys, - for example env['foo'] = '$(bar) and $(baz)'. Returns a list L of all keys of - env such that key2 is after key1 in L if env[key2] refers to env[key1]. - - Throws an Exception in case of dependency cycles. - """ - # Since environment variables can refer to other variables, the evaluation - # order is important. Below is the logic to compute the dependency graph - # and sort it. - regex = re.compile(r'\$\{([a-zA-Z0-9\-_]+)\}') - def GetEdges(node): - # Use a definition of edges such that user_of_variable -> used_varible. - # This happens to be easier in this case, since a variable's - # definition contains all variables it references in a single string. - # We can then reverse the result of the topological sort at the end. - # Since: reverse(topsort(DAG)) = topsort(reverse_edges(DAG)) - matches = set([v for v in regex.findall(env[node]) if v in env]) - for dependee in matches: - assert '${' not in dependee, 'Nested variables not supported: ' + dependee - return matches - - try: - # Topologically sort, and then reverse, because we used an edge definition - # that's inverted from the expected result of this function (see comment - # above). - order = gyp.common.TopologicallySorted(env.keys(), GetEdges) - order.reverse() - return order - except gyp.common.CycleError, e: - raise GypError( - 'Xcode environment variables are cyclically dependent: ' + str(e.nodes)) - - -def GetSortedXcodeEnv(xcode_settings, built_products_dir, srcroot, - configuration, additional_settings=None): - env = _GetXcodeEnv(xcode_settings, built_products_dir, srcroot, configuration, - additional_settings) - return [(key, env[key]) for key in _TopologicallySortedEnvVarKeys(env)] - - -def GetSpecPostbuildCommands(spec, quiet=False): - """Returns the list of postbuilds explicitly defined on |spec|, in a form - executable by a shell.""" - postbuilds = [] - for postbuild in spec.get('postbuilds', []): - if not quiet: - postbuilds.append('echo POSTBUILD\\(%s\\) %s' % ( - spec['target_name'], postbuild['postbuild_name'])) - postbuilds.append(gyp.common.EncodePOSIXShellList(postbuild['action'])) - return postbuilds - - -def _HasIOSTarget(targets): - """Returns true if any target contains the iOS specific key - IPHONEOS_DEPLOYMENT_TARGET.""" - for target_dict in targets.values(): - for config in target_dict['configurations'].values(): - if config.get('xcode_settings', {}).get('IPHONEOS_DEPLOYMENT_TARGET'): - return True - return False - - -def _AddIOSDeviceConfigurations(targets): - """Clone all targets and append -iphoneos to the name. Configure these targets - to build for iOS devices and use correct architectures for those builds.""" - for target_dict in targets.itervalues(): - toolset = target_dict['toolset'] - configs = target_dict['configurations'] - for config_name, config_dict in dict(configs).iteritems(): - iphoneos_config_dict = copy.deepcopy(config_dict) - configs[config_name + '-iphoneos'] = iphoneos_config_dict - configs[config_name + '-iphonesimulator'] = config_dict - if toolset == 'target': - iphoneos_config_dict['xcode_settings']['SDKROOT'] = 'iphoneos' - return targets - -def CloneConfigurationForDeviceAndEmulator(target_dicts): - """If |target_dicts| contains any iOS targets, automatically create -iphoneos - targets for iOS device builds.""" - if _HasIOSTarget(target_dicts): - return _AddIOSDeviceConfigurations(target_dicts) - return target_dicts diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py deleted file mode 100644 index 3820d6bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +++ /dev/null @@ -1,270 +0,0 @@ -# Copyright (c) 2014 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Xcode-ninja wrapper project file generator. - -This updates the data structures passed to the Xcode gyp generator to build -with ninja instead. The Xcode project itself is transformed into a list of -executable targets, each with a build step to build with ninja, and a target -with every source and resource file. This appears to sidestep some of the -major performance headaches experienced using complex projects and large number -of targets within Xcode. -""" - -import errno -import gyp.generator.ninja -import os -import re -import xml.sax.saxutils - - -def _WriteWorkspace(main_gyp, sources_gyp, params): - """ Create a workspace to wrap main and sources gyp paths. """ - (build_file_root, build_file_ext) = os.path.splitext(main_gyp) - workspace_path = build_file_root + '.xcworkspace' - options = params['options'] - if options.generator_output: - workspace_path = os.path.join(options.generator_output, workspace_path) - try: - os.makedirs(workspace_path) - except OSError, e: - if e.errno != errno.EEXIST: - raise - output_string = '\n' + \ - '\n' - for gyp_name in [main_gyp, sources_gyp]: - name = os.path.splitext(os.path.basename(gyp_name))[0] + '.xcodeproj' - name = xml.sax.saxutils.quoteattr("group:" + name) - output_string += ' \n' % name - output_string += '\n' - - workspace_file = os.path.join(workspace_path, "contents.xcworkspacedata") - - try: - with open(workspace_file, 'r') as input_file: - input_string = input_file.read() - if input_string == output_string: - return - except IOError: - # Ignore errors if the file doesn't exist. - pass - - with open(workspace_file, 'w') as output_file: - output_file.write(output_string) - -def _TargetFromSpec(old_spec, params): - """ Create fake target for xcode-ninja wrapper. """ - # Determine ninja top level build dir (e.g. /path/to/out). - ninja_toplevel = None - jobs = 0 - if params: - options = params['options'] - ninja_toplevel = \ - os.path.join(options.toplevel_dir, - gyp.generator.ninja.ComputeOutputDir(params)) - jobs = params.get('generator_flags', {}).get('xcode_ninja_jobs', 0) - - target_name = old_spec.get('target_name') - product_name = old_spec.get('product_name', target_name) - product_extension = old_spec.get('product_extension') - - ninja_target = {} - ninja_target['target_name'] = target_name - ninja_target['product_name'] = product_name - if product_extension: - ninja_target['product_extension'] = product_extension - ninja_target['toolset'] = old_spec.get('toolset') - ninja_target['default_configuration'] = old_spec.get('default_configuration') - ninja_target['configurations'] = {} - - # Tell Xcode to look in |ninja_toplevel| for build products. - new_xcode_settings = {} - if ninja_toplevel: - new_xcode_settings['CONFIGURATION_BUILD_DIR'] = \ - "%s/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)" % ninja_toplevel - - if 'configurations' in old_spec: - for config in old_spec['configurations'].iterkeys(): - old_xcode_settings = \ - old_spec['configurations'][config].get('xcode_settings', {}) - if 'IPHONEOS_DEPLOYMENT_TARGET' in old_xcode_settings: - new_xcode_settings['CODE_SIGNING_REQUIRED'] = "NO" - new_xcode_settings['IPHONEOS_DEPLOYMENT_TARGET'] = \ - old_xcode_settings['IPHONEOS_DEPLOYMENT_TARGET'] - ninja_target['configurations'][config] = {} - ninja_target['configurations'][config]['xcode_settings'] = \ - new_xcode_settings - - ninja_target['mac_bundle'] = old_spec.get('mac_bundle', 0) - ninja_target['ios_app_extension'] = old_spec.get('ios_app_extension', 0) - ninja_target['ios_watchkit_extension'] = \ - old_spec.get('ios_watchkit_extension', 0) - ninja_target['ios_watchkit_app'] = old_spec.get('ios_watchkit_app', 0) - ninja_target['type'] = old_spec['type'] - if ninja_toplevel: - ninja_target['actions'] = [ - { - 'action_name': 'Compile and copy %s via ninja' % target_name, - 'inputs': [], - 'outputs': [], - 'action': [ - 'env', - 'PATH=%s' % os.environ['PATH'], - 'ninja', - '-C', - new_xcode_settings['CONFIGURATION_BUILD_DIR'], - target_name, - ], - 'message': 'Compile and copy %s via ninja' % target_name, - }, - ] - if jobs > 0: - ninja_target['actions'][0]['action'].extend(('-j', jobs)) - return ninja_target - -def IsValidTargetForWrapper(target_extras, executable_target_pattern, spec): - """Limit targets for Xcode wrapper. - - Xcode sometimes performs poorly with too many targets, so only include - proper executable targets, with filters to customize. - Arguments: - target_extras: Regular expression to always add, matching any target. - executable_target_pattern: Regular expression limiting executable targets. - spec: Specifications for target. - """ - target_name = spec.get('target_name') - # Always include targets matching target_extras. - if target_extras is not None and re.search(target_extras, target_name): - return True - - # Otherwise just show executable targets. - if spec.get('type', '') == 'executable' and \ - spec.get('product_extension', '') != 'bundle': - - # If there is a filter and the target does not match, exclude the target. - if executable_target_pattern is not None: - if not re.search(executable_target_pattern, target_name): - return False - return True - return False - -def CreateWrapper(target_list, target_dicts, data, params): - """Initialize targets for the ninja wrapper. - - This sets up the necessary variables in the targets to generate Xcode projects - that use ninja as an external builder. - Arguments: - target_list: List of target pairs: 'base/base.gyp:base'. - target_dicts: Dict of target properties keyed on target pair. - data: Dict of flattened build files keyed on gyp path. - params: Dict of global options for gyp. - """ - orig_gyp = params['build_files'][0] - for gyp_name, gyp_dict in data.iteritems(): - if gyp_name == orig_gyp: - depth = gyp_dict['_DEPTH'] - - # Check for custom main gyp name, otherwise use the default CHROMIUM_GYP_FILE - # and prepend .ninja before the .gyp extension. - generator_flags = params.get('generator_flags', {}) - main_gyp = generator_flags.get('xcode_ninja_main_gyp', None) - if main_gyp is None: - (build_file_root, build_file_ext) = os.path.splitext(orig_gyp) - main_gyp = build_file_root + ".ninja" + build_file_ext - - # Create new |target_list|, |target_dicts| and |data| data structures. - new_target_list = [] - new_target_dicts = {} - new_data = {} - - # Set base keys needed for |data|. - new_data[main_gyp] = {} - new_data[main_gyp]['included_files'] = [] - new_data[main_gyp]['targets'] = [] - new_data[main_gyp]['xcode_settings'] = \ - data[orig_gyp].get('xcode_settings', {}) - - # Normally the xcode-ninja generator includes only valid executable targets. - # If |xcode_ninja_executable_target_pattern| is set, that list is reduced to - # executable targets that match the pattern. (Default all) - executable_target_pattern = \ - generator_flags.get('xcode_ninja_executable_target_pattern', None) - - # For including other non-executable targets, add the matching target name - # to the |xcode_ninja_target_pattern| regular expression. (Default none) - target_extras = generator_flags.get('xcode_ninja_target_pattern', None) - - for old_qualified_target in target_list: - spec = target_dicts[old_qualified_target] - if IsValidTargetForWrapper(target_extras, executable_target_pattern, spec): - # Add to new_target_list. - target_name = spec.get('target_name') - new_target_name = '%s:%s#target' % (main_gyp, target_name) - new_target_list.append(new_target_name) - - # Add to new_target_dicts. - new_target_dicts[new_target_name] = _TargetFromSpec(spec, params) - - # Add to new_data. - for old_target in data[old_qualified_target.split(':')[0]]['targets']: - if old_target['target_name'] == target_name: - new_data_target = {} - new_data_target['target_name'] = old_target['target_name'] - new_data_target['toolset'] = old_target['toolset'] - new_data[main_gyp]['targets'].append(new_data_target) - - # Create sources target. - sources_target_name = 'sources_for_indexing' - sources_target = _TargetFromSpec( - { 'target_name' : sources_target_name, - 'toolset': 'target', - 'default_configuration': 'Default', - 'mac_bundle': '0', - 'type': 'executable' - }, None) - - # Tell Xcode to look everywhere for headers. - sources_target['configurations'] = {'Default': { 'include_dirs': [ depth ] } } - - sources = [] - for target, target_dict in target_dicts.iteritems(): - base = os.path.dirname(target) - files = target_dict.get('sources', []) + \ - target_dict.get('mac_bundle_resources', []) - for action in target_dict.get('actions', []): - files.extend(action.get('inputs', [])) - # Remove files starting with $. These are mostly intermediate files for the - # build system. - files = [ file for file in files if not file.startswith('$')] - - # Make sources relative to root build file. - relative_path = os.path.dirname(main_gyp) - sources += [ os.path.relpath(os.path.join(base, file), relative_path) - for file in files ] - - sources_target['sources'] = sorted(set(sources)) - - # Put sources_to_index in it's own gyp. - sources_gyp = \ - os.path.join(os.path.dirname(main_gyp), sources_target_name + ".gyp") - fully_qualified_target_name = \ - '%s:%s#target' % (sources_gyp, sources_target_name) - - # Add to new_target_list, new_target_dicts and new_data. - new_target_list.append(fully_qualified_target_name) - new_target_dicts[fully_qualified_target_name] = sources_target - new_data_target = {} - new_data_target['target_name'] = sources_target['target_name'] - new_data_target['_DEPTH'] = depth - new_data_target['toolset'] = "target" - new_data[sources_gyp] = {} - new_data[sources_gyp]['targets'] = [] - new_data[sources_gyp]['included_files'] = [] - new_data[sources_gyp]['xcode_settings'] = \ - data[orig_gyp].get('xcode_settings', {}) - new_data[sources_gyp]['targets'].append(new_data_target) - - # Write workspace to file. - _WriteWorkspace(main_gyp, sources_gyp, params) - return (new_target_list, new_target_dicts, new_data) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py deleted file mode 100644 index d08b7f77..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +++ /dev/null @@ -1,2927 +0,0 @@ -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Xcode project file generator. - -This module is both an Xcode project file generator and a documentation of the -Xcode project file format. Knowledge of the project file format was gained -based on extensive experience with Xcode, and by making changes to projects in -Xcode.app and observing the resultant changes in the associated project files. - -XCODE PROJECT FILES - -The generator targets the file format as written by Xcode 3.2 (specifically, -3.2.6), but past experience has taught that the format has not changed -significantly in the past several years, and future versions of Xcode are able -to read older project files. - -Xcode project files are "bundled": the project "file" from an end-user's -perspective is actually a directory with an ".xcodeproj" extension. The -project file from this module's perspective is actually a file inside this -directory, always named "project.pbxproj". This file contains a complete -description of the project and is all that is needed to use the xcodeproj. -Other files contained in the xcodeproj directory are simply used to store -per-user settings, such as the state of various UI elements in the Xcode -application. - -The project.pbxproj file is a property list, stored in a format almost -identical to the NeXTstep property list format. The file is able to carry -Unicode data, and is encoded in UTF-8. The root element in the property list -is a dictionary that contains several properties of minimal interest, and two -properties of immense interest. The most important property is a dictionary -named "objects". The entire structure of the project is represented by the -children of this property. The objects dictionary is keyed by unique 96-bit -values represented by 24 uppercase hexadecimal characters. Each value in the -objects dictionary is itself a dictionary, describing an individual object. - -Each object in the dictionary is a member of a class, which is identified by -the "isa" property of each object. A variety of classes are represented in a -project file. Objects can refer to other objects by ID, using the 24-character -hexadecimal object key. A project's objects form a tree, with a root object -of class PBXProject at the root. As an example, the PBXProject object serves -as parent to an XCConfigurationList object defining the build configurations -used in the project, a PBXGroup object serving as a container for all files -referenced in the project, and a list of target objects, each of which defines -a target in the project. There are several different types of target object, -such as PBXNativeTarget and PBXAggregateTarget. In this module, this -relationship is expressed by having each target type derive from an abstract -base named XCTarget. - -The project.pbxproj file's root dictionary also contains a property, sibling to -the "objects" dictionary, named "rootObject". The value of rootObject is a -24-character object key referring to the root PBXProject object in the -objects dictionary. - -In Xcode, every file used as input to a target or produced as a final product -of a target must appear somewhere in the hierarchy rooted at the PBXGroup -object referenced by the PBXProject's mainGroup property. A PBXGroup is -generally represented as a folder in the Xcode application. PBXGroups can -contain other PBXGroups as well as PBXFileReferences, which are pointers to -actual files. - -Each XCTarget contains a list of build phases, represented in this module by -the abstract base XCBuildPhase. Examples of concrete XCBuildPhase derivations -are PBXSourcesBuildPhase and PBXFrameworksBuildPhase, which correspond to the -"Compile Sources" and "Link Binary With Libraries" phases displayed in the -Xcode application. Files used as input to these phases (for example, source -files in the former case and libraries and frameworks in the latter) are -represented by PBXBuildFile objects, referenced by elements of "files" lists -in XCTarget objects. Each PBXBuildFile object refers to a PBXBuildFile -object as a "weak" reference: it does not "own" the PBXBuildFile, which is -owned by the root object's mainGroup or a descendant group. In most cases, the -layer of indirection between an XCBuildPhase and a PBXFileReference via a -PBXBuildFile appears extraneous, but there's actually one reason for this: -file-specific compiler flags are added to the PBXBuildFile object so as to -allow a single file to be a member of multiple targets while having distinct -compiler flags for each. These flags can be modified in the Xcode applciation -in the "Build" tab of a File Info window. - -When a project is open in the Xcode application, Xcode will rewrite it. As -such, this module is careful to adhere to the formatting used by Xcode, to -avoid insignificant changes appearing in the file when it is used in the -Xcode application. This will keep version control repositories happy, and -makes it possible to compare a project file used in Xcode to one generated by -this module to determine if any significant changes were made in the -application. - -Xcode has its own way of assigning 24-character identifiers to each object, -which is not duplicated here. Because the identifier only is only generated -once, when an object is created, and is then left unchanged, there is no need -to attempt to duplicate Xcode's behavior in this area. The generator is free -to select any identifier, even at random, to refer to the objects it creates, -and Xcode will retain those identifiers and use them when subsequently -rewriting the project file. However, the generator would choose new random -identifiers each time the project files are generated, leading to difficulties -comparing "used" project files to "pristine" ones produced by this module, -and causing the appearance of changes as every object identifier is changed -when updated projects are checked in to a version control repository. To -mitigate this problem, this module chooses identifiers in a more deterministic -way, by hashing a description of each object as well as its parent and ancestor -objects. This strategy should result in minimal "shift" in IDs as successive -generations of project files are produced. - -THIS MODULE - -This module introduces several classes, all derived from the XCObject class. -Nearly all of the "brains" are built into the XCObject class, which understands -how to create and modify objects, maintain the proper tree structure, compute -identifiers, and print objects. For the most part, classes derived from -XCObject need only provide a _schema class object, a dictionary that -expresses what properties objects of the class may contain. - -Given this structure, it's possible to build a minimal project file by creating -objects of the appropriate types and making the proper connections: - - config_list = XCConfigurationList() - group = PBXGroup() - project = PBXProject({'buildConfigurationList': config_list, - 'mainGroup': group}) - -With the project object set up, it can be added to an XCProjectFile object. -XCProjectFile is a pseudo-class in the sense that it is a concrete XCObject -subclass that does not actually correspond to a class type found in a project -file. Rather, it is used to represent the project file's root dictionary. -Printing an XCProjectFile will print the entire project file, including the -full "objects" dictionary. - - project_file = XCProjectFile({'rootObject': project}) - project_file.ComputeIDs() - project_file.Print() - -Xcode project files are always encoded in UTF-8. This module will accept -strings of either the str class or the unicode class. Strings of class str -are assumed to already be encoded in UTF-8. Obviously, if you're just using -ASCII, you won't encounter difficulties because ASCII is a UTF-8 subset. -Strings of class unicode are handled properly and encoded in UTF-8 when -a project file is output. -""" - -import gyp.common -import posixpath -import re -import struct -import sys - -# hashlib is supplied as of Python 2.5 as the replacement interface for sha -# and other secure hashes. In 2.6, sha is deprecated. Import hashlib if -# available, avoiding a deprecation warning under 2.6. Import sha otherwise, -# preserving 2.4 compatibility. -try: - import hashlib - _new_sha1 = hashlib.sha1 -except ImportError: - import sha - _new_sha1 = sha.new - - -# See XCObject._EncodeString. This pattern is used to determine when a string -# can be printed unquoted. Strings that match this pattern may be printed -# unquoted. Strings that do not match must be quoted and may be further -# transformed to be properly encoded. Note that this expression matches the -# characters listed with "+", for 1 or more occurrences: if a string is empty, -# it must not match this pattern, because it needs to be encoded as "". -_unquoted = re.compile('^[A-Za-z0-9$./_]+$') - -# Strings that match this pattern are quoted regardless of what _unquoted says. -# Oddly, Xcode will quote any string with a run of three or more underscores. -_quoted = re.compile('___') - -# This pattern should match any character that needs to be escaped by -# XCObject._EncodeString. See that function. -_escaped = re.compile('[\\\\"]|[\x00-\x1f]') - - -# Used by SourceTreeAndPathFromPath -_path_leading_variable = re.compile(r'^\$\((.*?)\)(/(.*))?$') - -def SourceTreeAndPathFromPath(input_path): - """Given input_path, returns a tuple with sourceTree and path values. - - Examples: - input_path (source_tree, output_path) - '$(VAR)/path' ('VAR', 'path') - '$(VAR)' ('VAR', None) - 'path' (None, 'path') - """ - - source_group_match = _path_leading_variable.match(input_path) - if source_group_match: - source_tree = source_group_match.group(1) - output_path = source_group_match.group(3) # This may be None. - else: - source_tree = None - output_path = input_path - - return (source_tree, output_path) - -def ConvertVariablesToShellSyntax(input_string): - return re.sub(r'\$\((.*?)\)', '${\\1}', input_string) - -class XCObject(object): - """The abstract base of all class types used in Xcode project files. - - Class variables: - _schema: A dictionary defining the properties of this class. The keys to - _schema are string property keys as used in project files. Values - are a list of four or five elements: - [ is_list, property_type, is_strong, is_required, default ] - is_list: True if the property described is a list, as opposed - to a single element. - property_type: The type to use as the value of the property, - or if is_list is True, the type to use for each - element of the value's list. property_type must - be an XCObject subclass, or one of the built-in - types str, int, or dict. - is_strong: If property_type is an XCObject subclass, is_strong - is True to assert that this class "owns," or serves - as parent, to the property value (or, if is_list is - True, values). is_strong must be False if - property_type is not an XCObject subclass. - is_required: True if the property is required for the class. - Note that is_required being True does not preclude - an empty string ("", in the case of property_type - str) or list ([], in the case of is_list True) from - being set for the property. - default: Optional. If is_requried is True, default may be set - to provide a default value for objects that do not supply - their own value. If is_required is True and default - is not provided, users of the class must supply their own - value for the property. - Note that although the values of the array are expressed in - boolean terms, subclasses provide values as integers to conserve - horizontal space. - _should_print_single_line: False in XCObject. Subclasses whose objects - should be written to the project file in the - alternate single-line format, such as - PBXFileReference and PBXBuildFile, should - set this to True. - _encode_transforms: Used by _EncodeString to encode unprintable characters. - The index into this list is the ordinal of the - character to transform; each value is a string - used to represent the character in the output. XCObject - provides an _encode_transforms list suitable for most - XCObject subclasses. - _alternate_encode_transforms: Provided for subclasses that wish to use - the alternate encoding rules. Xcode seems - to use these rules when printing objects in - single-line format. Subclasses that desire - this behavior should set _encode_transforms - to _alternate_encode_transforms. - _hashables: A list of XCObject subclasses that can be hashed by ComputeIDs - to construct this object's ID. Most classes that need custom - hashing behavior should do it by overriding Hashables, - but in some cases an object's parent may wish to push a - hashable value into its child, and it can do so by appending - to _hashables. - Attributes: - id: The object's identifier, a 24-character uppercase hexadecimal string. - Usually, objects being created should not set id until the entire - project file structure is built. At that point, UpdateIDs() should - be called on the root object to assign deterministic values for id to - each object in the tree. - parent: The object's parent. This is set by a parent XCObject when a child - object is added to it. - _properties: The object's property dictionary. An object's properties are - described by its class' _schema variable. - """ - - _schema = {} - _should_print_single_line = False - - # See _EncodeString. - _encode_transforms = [] - i = 0 - while i < ord(' '): - _encode_transforms.append('\\U%04x' % i) - i = i + 1 - _encode_transforms[7] = '\\a' - _encode_transforms[8] = '\\b' - _encode_transforms[9] = '\\t' - _encode_transforms[10] = '\\n' - _encode_transforms[11] = '\\v' - _encode_transforms[12] = '\\f' - _encode_transforms[13] = '\\n' - - _alternate_encode_transforms = list(_encode_transforms) - _alternate_encode_transforms[9] = chr(9) - _alternate_encode_transforms[10] = chr(10) - _alternate_encode_transforms[11] = chr(11) - - def __init__(self, properties=None, id=None, parent=None): - self.id = id - self.parent = parent - self._properties = {} - self._hashables = [] - self._SetDefaultsFromSchema() - self.UpdateProperties(properties) - - def __repr__(self): - try: - name = self.Name() - except NotImplementedError: - return '<%s at 0x%x>' % (self.__class__.__name__, id(self)) - return '<%s %r at 0x%x>' % (self.__class__.__name__, name, id(self)) - - def Copy(self): - """Make a copy of this object. - - The new object will have its own copy of lists and dicts. Any XCObject - objects owned by this object (marked "strong") will be copied in the - new object, even those found in lists. If this object has any weak - references to other XCObjects, the same references are added to the new - object without making a copy. - """ - - that = self.__class__(id=self.id, parent=self.parent) - for key, value in self._properties.iteritems(): - is_strong = self._schema[key][2] - - if isinstance(value, XCObject): - if is_strong: - new_value = value.Copy() - new_value.parent = that - that._properties[key] = new_value - else: - that._properties[key] = value - elif isinstance(value, str) or isinstance(value, unicode) or \ - isinstance(value, int): - that._properties[key] = value - elif isinstance(value, list): - if is_strong: - # If is_strong is True, each element is an XCObject, so it's safe to - # call Copy. - that._properties[key] = [] - for item in value: - new_item = item.Copy() - new_item.parent = that - that._properties[key].append(new_item) - else: - that._properties[key] = value[:] - elif isinstance(value, dict): - # dicts are never strong. - if is_strong: - raise TypeError('Strong dict for key ' + key + ' in ' + \ - self.__class__.__name__) - else: - that._properties[key] = value.copy() - else: - raise TypeError('Unexpected type ' + value.__class__.__name__ + \ - ' for key ' + key + ' in ' + self.__class__.__name__) - - return that - - def Name(self): - """Return the name corresponding to an object. - - Not all objects necessarily need to be nameable, and not all that do have - a "name" property. Override as needed. - """ - - # If the schema indicates that "name" is required, try to access the - # property even if it doesn't exist. This will result in a KeyError - # being raised for the property that should be present, which seems more - # appropriate than NotImplementedError in this case. - if 'name' in self._properties or \ - ('name' in self._schema and self._schema['name'][3]): - return self._properties['name'] - - raise NotImplementedError(self.__class__.__name__ + ' must implement Name') - - def Comment(self): - """Return a comment string for the object. - - Most objects just use their name as the comment, but PBXProject uses - different values. - - The returned comment is not escaped and does not have any comment marker - strings applied to it. - """ - - return self.Name() - - def Hashables(self): - hashables = [self.__class__.__name__] - - name = self.Name() - if name != None: - hashables.append(name) - - hashables.extend(self._hashables) - - return hashables - - def HashablesForChild(self): - return None - - def ComputeIDs(self, recursive=True, overwrite=True, seed_hash=None): - """Set "id" properties deterministically. - - An object's "id" property is set based on a hash of its class type and - name, as well as the class type and name of all ancestor objects. As - such, it is only advisable to call ComputeIDs once an entire project file - tree is built. - - If recursive is True, recurse into all descendant objects and update their - hashes. - - If overwrite is True, any existing value set in the "id" property will be - replaced. - """ - - def _HashUpdate(hash, data): - """Update hash with data's length and contents. - - If the hash were updated only with the value of data, it would be - possible for clowns to induce collisions by manipulating the names of - their objects. By adding the length, it's exceedingly less likely that - ID collisions will be encountered, intentionally or not. - """ - - hash.update(struct.pack('>i', len(data))) - hash.update(data) - - if seed_hash is None: - seed_hash = _new_sha1() - - hash = seed_hash.copy() - - hashables = self.Hashables() - assert len(hashables) > 0 - for hashable in hashables: - _HashUpdate(hash, hashable) - - if recursive: - hashables_for_child = self.HashablesForChild() - if hashables_for_child is None: - child_hash = hash - else: - assert len(hashables_for_child) > 0 - child_hash = seed_hash.copy() - for hashable in hashables_for_child: - _HashUpdate(child_hash, hashable) - - for child in self.Children(): - child.ComputeIDs(recursive, overwrite, child_hash) - - if overwrite or self.id is None: - # Xcode IDs are only 96 bits (24 hex characters), but a SHA-1 digest is - # is 160 bits. Instead of throwing out 64 bits of the digest, xor them - # into the portion that gets used. - assert hash.digest_size % 4 == 0 - digest_int_count = hash.digest_size / 4 - digest_ints = struct.unpack('>' + 'I' * digest_int_count, hash.digest()) - id_ints = [0, 0, 0] - for index in xrange(0, digest_int_count): - id_ints[index % 3] ^= digest_ints[index] - self.id = '%08X%08X%08X' % tuple(id_ints) - - def EnsureNoIDCollisions(self): - """Verifies that no two objects have the same ID. Checks all descendants. - """ - - ids = {} - descendants = self.Descendants() - for descendant in descendants: - if descendant.id in ids: - other = ids[descendant.id] - raise KeyError( - 'Duplicate ID %s, objects "%s" and "%s" in "%s"' % \ - (descendant.id, str(descendant._properties), - str(other._properties), self._properties['rootObject'].Name())) - ids[descendant.id] = descendant - - def Children(self): - """Returns a list of all of this object's owned (strong) children.""" - - children = [] - for property, attributes in self._schema.iteritems(): - (is_list, property_type, is_strong) = attributes[0:3] - if is_strong and property in self._properties: - if not is_list: - children.append(self._properties[property]) - else: - children.extend(self._properties[property]) - return children - - def Descendants(self): - """Returns a list of all of this object's descendants, including this - object. - """ - - children = self.Children() - descendants = [self] - for child in children: - descendants.extend(child.Descendants()) - return descendants - - def PBXProjectAncestor(self): - # The base case for recursion is defined at PBXProject.PBXProjectAncestor. - if self.parent: - return self.parent.PBXProjectAncestor() - return None - - def _EncodeComment(self, comment): - """Encodes a comment to be placed in the project file output, mimicing - Xcode behavior. - """ - - # This mimics Xcode behavior by wrapping the comment in "/*" and "*/". If - # the string already contains a "*/", it is turned into "(*)/". This keeps - # the file writer from outputting something that would be treated as the - # end of a comment in the middle of something intended to be entirely a - # comment. - - return '/* ' + comment.replace('*/', '(*)/') + ' */' - - def _EncodeTransform(self, match): - # This function works closely with _EncodeString. It will only be called - # by re.sub with match.group(0) containing a character matched by the - # the _escaped expression. - char = match.group(0) - - # Backslashes (\) and quotation marks (") are always replaced with a - # backslash-escaped version of the same. Everything else gets its - # replacement from the class' _encode_transforms array. - if char == '\\': - return '\\\\' - if char == '"': - return '\\"' - return self._encode_transforms[ord(char)] - - def _EncodeString(self, value): - """Encodes a string to be placed in the project file output, mimicing - Xcode behavior. - """ - - # Use quotation marks when any character outside of the range A-Z, a-z, 0-9, - # $ (dollar sign), . (period), and _ (underscore) is present. Also use - # quotation marks to represent empty strings. - # - # Escape " (double-quote) and \ (backslash) by preceding them with a - # backslash. - # - # Some characters below the printable ASCII range are encoded specially: - # 7 ^G BEL is encoded as "\a" - # 8 ^H BS is encoded as "\b" - # 11 ^K VT is encoded as "\v" - # 12 ^L NP is encoded as "\f" - # 127 ^? DEL is passed through as-is without escaping - # - In PBXFileReference and PBXBuildFile objects: - # 9 ^I HT is passed through as-is without escaping - # 10 ^J NL is passed through as-is without escaping - # 13 ^M CR is passed through as-is without escaping - # - In other objects: - # 9 ^I HT is encoded as "\t" - # 10 ^J NL is encoded as "\n" - # 13 ^M CR is encoded as "\n" rendering it indistinguishable from - # 10 ^J NL - # All other characters within the ASCII control character range (0 through - # 31 inclusive) are encoded as "\U001f" referring to the Unicode code point - # in hexadecimal. For example, character 14 (^N SO) is encoded as "\U000e". - # Characters above the ASCII range are passed through to the output encoded - # as UTF-8 without any escaping. These mappings are contained in the - # class' _encode_transforms list. - - if _unquoted.search(value) and not _quoted.search(value): - return value - - return '"' + _escaped.sub(self._EncodeTransform, value) + '"' - - def _XCPrint(self, file, tabs, line): - file.write('\t' * tabs + line) - - def _XCPrintableValue(self, tabs, value, flatten_list=False): - """Returns a representation of value that may be printed in a project file, - mimicing Xcode's behavior. - - _XCPrintableValue can handle str and int values, XCObjects (which are - made printable by returning their id property), and list and dict objects - composed of any of the above types. When printing a list or dict, and - _should_print_single_line is False, the tabs parameter is used to determine - how much to indent the lines corresponding to the items in the list or - dict. - - If flatten_list is True, single-element lists will be transformed into - strings. - """ - - printable = '' - comment = None - - if self._should_print_single_line: - sep = ' ' - element_tabs = '' - end_tabs = '' - else: - sep = '\n' - element_tabs = '\t' * (tabs + 1) - end_tabs = '\t' * tabs - - if isinstance(value, XCObject): - printable += value.id - comment = value.Comment() - elif isinstance(value, str): - printable += self._EncodeString(value) - elif isinstance(value, unicode): - printable += self._EncodeString(value.encode('utf-8')) - elif isinstance(value, int): - printable += str(value) - elif isinstance(value, list): - if flatten_list and len(value) <= 1: - if len(value) == 0: - printable += self._EncodeString('') - else: - printable += self._EncodeString(value[0]) - else: - printable = '(' + sep - for item in value: - printable += element_tabs + \ - self._XCPrintableValue(tabs + 1, item, flatten_list) + \ - ',' + sep - printable += end_tabs + ')' - elif isinstance(value, dict): - printable = '{' + sep - for item_key, item_value in sorted(value.iteritems()): - printable += element_tabs + \ - self._XCPrintableValue(tabs + 1, item_key, flatten_list) + ' = ' + \ - self._XCPrintableValue(tabs + 1, item_value, flatten_list) + ';' + \ - sep - printable += end_tabs + '}' - else: - raise TypeError("Can't make " + value.__class__.__name__ + ' printable') - - if comment != None: - printable += ' ' + self._EncodeComment(comment) - - return printable - - def _XCKVPrint(self, file, tabs, key, value): - """Prints a key and value, members of an XCObject's _properties dictionary, - to file. - - tabs is an int identifying the indentation level. If the class' - _should_print_single_line variable is True, tabs is ignored and the - key-value pair will be followed by a space insead of a newline. - """ - - if self._should_print_single_line: - printable = '' - after_kv = ' ' - else: - printable = '\t' * tabs - after_kv = '\n' - - # Xcode usually prints remoteGlobalIDString values in PBXContainerItemProxy - # objects without comments. Sometimes it prints them with comments, but - # the majority of the time, it doesn't. To avoid unnecessary changes to - # the project file after Xcode opens it, don't write comments for - # remoteGlobalIDString. This is a sucky hack and it would certainly be - # cleaner to extend the schema to indicate whether or not a comment should - # be printed, but since this is the only case where the problem occurs and - # Xcode itself can't seem to make up its mind, the hack will suffice. - # - # Also see PBXContainerItemProxy._schema['remoteGlobalIDString']. - if key == 'remoteGlobalIDString' and isinstance(self, - PBXContainerItemProxy): - value_to_print = value.id - else: - value_to_print = value - - # PBXBuildFile's settings property is represented in the output as a dict, - # but a hack here has it represented as a string. Arrange to strip off the - # quotes so that it shows up in the output as expected. - if key == 'settings' and isinstance(self, PBXBuildFile): - strip_value_quotes = True - else: - strip_value_quotes = False - - # In another one-off, let's set flatten_list on buildSettings properties - # of XCBuildConfiguration objects, because that's how Xcode treats them. - if key == 'buildSettings' and isinstance(self, XCBuildConfiguration): - flatten_list = True - else: - flatten_list = False - - try: - printable_key = self._XCPrintableValue(tabs, key, flatten_list) - printable_value = self._XCPrintableValue(tabs, value_to_print, - flatten_list) - if strip_value_quotes and len(printable_value) > 1 and \ - printable_value[0] == '"' and printable_value[-1] == '"': - printable_value = printable_value[1:-1] - printable += printable_key + ' = ' + printable_value + ';' + after_kv - except TypeError, e: - gyp.common.ExceptionAppend(e, - 'while printing key "%s"' % key) - raise - - self._XCPrint(file, 0, printable) - - def Print(self, file=sys.stdout): - """Prints a reprentation of this object to file, adhering to Xcode output - formatting. - """ - - self.VerifyHasRequiredProperties() - - if self._should_print_single_line: - # When printing an object in a single line, Xcode doesn't put any space - # between the beginning of a dictionary (or presumably a list) and the - # first contained item, so you wind up with snippets like - # ...CDEF = {isa = PBXFileReference; fileRef = 0123... - # If it were me, I would have put a space in there after the opening - # curly, but I guess this is just another one of those inconsistencies - # between how Xcode prints PBXFileReference and PBXBuildFile objects as - # compared to other objects. Mimic Xcode's behavior here by using an - # empty string for sep. - sep = '' - end_tabs = 0 - else: - sep = '\n' - end_tabs = 2 - - # Start the object. For example, '\t\tPBXProject = {\n'. - self._XCPrint(file, 2, self._XCPrintableValue(2, self) + ' = {' + sep) - - # "isa" isn't in the _properties dictionary, it's an intrinsic property - # of the class which the object belongs to. Xcode always outputs "isa" - # as the first element of an object dictionary. - self._XCKVPrint(file, 3, 'isa', self.__class__.__name__) - - # The remaining elements of an object dictionary are sorted alphabetically. - for property, value in sorted(self._properties.iteritems()): - self._XCKVPrint(file, 3, property, value) - - # End the object. - self._XCPrint(file, end_tabs, '};\n') - - def UpdateProperties(self, properties, do_copy=False): - """Merge the supplied properties into the _properties dictionary. - - The input properties must adhere to the class schema or a KeyError or - TypeError exception will be raised. If adding an object of an XCObject - subclass and the schema indicates a strong relationship, the object's - parent will be set to this object. - - If do_copy is True, then lists, dicts, strong-owned XCObjects, and - strong-owned XCObjects in lists will be copied instead of having their - references added. - """ - - if properties is None: - return - - for property, value in properties.iteritems(): - # Make sure the property is in the schema. - if not property in self._schema: - raise KeyError(property + ' not in ' + self.__class__.__name__) - - # Make sure the property conforms to the schema. - (is_list, property_type, is_strong) = self._schema[property][0:3] - if is_list: - if value.__class__ != list: - raise TypeError( - property + ' of ' + self.__class__.__name__ + \ - ' must be list, not ' + value.__class__.__name__) - for item in value: - if not isinstance(item, property_type) and \ - not (item.__class__ == unicode and property_type == str): - # Accept unicode where str is specified. str is treated as - # UTF-8-encoded. - raise TypeError( - 'item of ' + property + ' of ' + self.__class__.__name__ + \ - ' must be ' + property_type.__name__ + ', not ' + \ - item.__class__.__name__) - elif not isinstance(value, property_type) and \ - not (value.__class__ == unicode and property_type == str): - # Accept unicode where str is specified. str is treated as - # UTF-8-encoded. - raise TypeError( - property + ' of ' + self.__class__.__name__ + ' must be ' + \ - property_type.__name__ + ', not ' + value.__class__.__name__) - - # Checks passed, perform the assignment. - if do_copy: - if isinstance(value, XCObject): - if is_strong: - self._properties[property] = value.Copy() - else: - self._properties[property] = value - elif isinstance(value, str) or isinstance(value, unicode) or \ - isinstance(value, int): - self._properties[property] = value - elif isinstance(value, list): - if is_strong: - # If is_strong is True, each element is an XCObject, so it's safe - # to call Copy. - self._properties[property] = [] - for item in value: - self._properties[property].append(item.Copy()) - else: - self._properties[property] = value[:] - elif isinstance(value, dict): - self._properties[property] = value.copy() - else: - raise TypeError("Don't know how to copy a " + \ - value.__class__.__name__ + ' object for ' + \ - property + ' in ' + self.__class__.__name__) - else: - self._properties[property] = value - - # Set up the child's back-reference to this object. Don't use |value| - # any more because it may not be right if do_copy is true. - if is_strong: - if not is_list: - self._properties[property].parent = self - else: - for item in self._properties[property]: - item.parent = self - - def HasProperty(self, key): - return key in self._properties - - def GetProperty(self, key): - return self._properties[key] - - def SetProperty(self, key, value): - self.UpdateProperties({key: value}) - - def DelProperty(self, key): - if key in self._properties: - del self._properties[key] - - def AppendProperty(self, key, value): - # TODO(mark): Support ExtendProperty too (and make this call that)? - - # Schema validation. - if not key in self._schema: - raise KeyError(key + ' not in ' + self.__class__.__name__) - - (is_list, property_type, is_strong) = self._schema[key][0:3] - if not is_list: - raise TypeError(key + ' of ' + self.__class__.__name__ + ' must be list') - if not isinstance(value, property_type): - raise TypeError('item of ' + key + ' of ' + self.__class__.__name__ + \ - ' must be ' + property_type.__name__ + ', not ' + \ - value.__class__.__name__) - - # If the property doesn't exist yet, create a new empty list to receive the - # item. - if not key in self._properties: - self._properties[key] = [] - - # Set up the ownership link. - if is_strong: - value.parent = self - - # Store the item. - self._properties[key].append(value) - - def VerifyHasRequiredProperties(self): - """Ensure that all properties identified as required by the schema are - set. - """ - - # TODO(mark): A stronger verification mechanism is needed. Some - # subclasses need to perform validation beyond what the schema can enforce. - for property, attributes in self._schema.iteritems(): - (is_list, property_type, is_strong, is_required) = attributes[0:4] - if is_required and not property in self._properties: - raise KeyError(self.__class__.__name__ + ' requires ' + property) - - def _SetDefaultsFromSchema(self): - """Assign object default values according to the schema. This will not - overwrite properties that have already been set.""" - - defaults = {} - for property, attributes in self._schema.iteritems(): - (is_list, property_type, is_strong, is_required) = attributes[0:4] - if is_required and len(attributes) >= 5 and \ - not property in self._properties: - default = attributes[4] - - defaults[property] = default - - if len(defaults) > 0: - # Use do_copy=True so that each new object gets its own copy of strong - # objects, lists, and dicts. - self.UpdateProperties(defaults, do_copy=True) - - -class XCHierarchicalElement(XCObject): - """Abstract base for PBXGroup and PBXFileReference. Not represented in a - project file.""" - - # TODO(mark): Do name and path belong here? Probably so. - # If path is set and name is not, name may have a default value. Name will - # be set to the basename of path, if the basename of path is different from - # the full value of path. If path is already just a leaf name, name will - # not be set. - _schema = XCObject._schema.copy() - _schema.update({ - 'comments': [0, str, 0, 0], - 'fileEncoding': [0, str, 0, 0], - 'includeInIndex': [0, int, 0, 0], - 'indentWidth': [0, int, 0, 0], - 'lineEnding': [0, int, 0, 0], - 'sourceTree': [0, str, 0, 1, ''], - 'tabWidth': [0, int, 0, 0], - 'usesTabs': [0, int, 0, 0], - 'wrapsLines': [0, int, 0, 0], - }) - - def __init__(self, properties=None, id=None, parent=None): - # super - XCObject.__init__(self, properties, id, parent) - if 'path' in self._properties and not 'name' in self._properties: - path = self._properties['path'] - name = posixpath.basename(path) - if name != '' and path != name: - self.SetProperty('name', name) - - if 'path' in self._properties and \ - (not 'sourceTree' in self._properties or \ - self._properties['sourceTree'] == ''): - # If the pathname begins with an Xcode variable like "$(SDKROOT)/", take - # the variable out and make the path be relative to that variable by - # assigning the variable name as the sourceTree. - (source_tree, path) = SourceTreeAndPathFromPath(self._properties['path']) - if source_tree != None: - self._properties['sourceTree'] = source_tree - if path != None: - self._properties['path'] = path - if source_tree != None and path is None and \ - not 'name' in self._properties: - # The path was of the form "$(SDKROOT)" with no path following it. - # This object is now relative to that variable, so it has no path - # attribute of its own. It does, however, keep a name. - del self._properties['path'] - self._properties['name'] = source_tree - - def Name(self): - if 'name' in self._properties: - return self._properties['name'] - elif 'path' in self._properties: - return self._properties['path'] - else: - # This happens in the case of the root PBXGroup. - return None - - def Hashables(self): - """Custom hashables for XCHierarchicalElements. - - XCHierarchicalElements are special. Generally, their hashes shouldn't - change if the paths don't change. The normal XCObject implementation of - Hashables adds a hashable for each object, which means that if - the hierarchical structure changes (possibly due to changes caused when - TakeOverOnlyChild runs and encounters slight changes in the hierarchy), - the hashes will change. For example, if a project file initially contains - a/b/f1 and a/b becomes collapsed into a/b, f1 will have a single parent - a/b. If someone later adds a/f2 to the project file, a/b can no longer be - collapsed, and f1 winds up with parent b and grandparent a. That would - be sufficient to change f1's hash. - - To counteract this problem, hashables for all XCHierarchicalElements except - for the main group (which has neither a name nor a path) are taken to be - just the set of path components. Because hashables are inherited from - parents, this provides assurance that a/b/f1 has the same set of hashables - whether its parent is b or a/b. - - The main group is a special case. As it is permitted to have no name or - path, it is permitted to use the standard XCObject hash mechanism. This - is not considered a problem because there can be only one main group. - """ - - if self == self.PBXProjectAncestor()._properties['mainGroup']: - # super - return XCObject.Hashables(self) - - hashables = [] - - # Put the name in first, ensuring that if TakeOverOnlyChild collapses - # children into a top-level group like "Source", the name always goes - # into the list of hashables without interfering with path components. - if 'name' in self._properties: - # Make it less likely for people to manipulate hashes by following the - # pattern of always pushing an object type value onto the list first. - hashables.append(self.__class__.__name__ + '.name') - hashables.append(self._properties['name']) - - # NOTE: This still has the problem that if an absolute path is encountered, - # including paths with a sourceTree, they'll still inherit their parents' - # hashables, even though the paths aren't relative to their parents. This - # is not expected to be much of a problem in practice. - path = self.PathFromSourceTreeAndPath() - if path != None: - components = path.split(posixpath.sep) - for component in components: - hashables.append(self.__class__.__name__ + '.path') - hashables.append(component) - - hashables.extend(self._hashables) - - return hashables - - def Compare(self, other): - # Allow comparison of these types. PBXGroup has the highest sort rank; - # PBXVariantGroup is treated as equal to PBXFileReference. - valid_class_types = { - PBXFileReference: 'file', - PBXGroup: 'group', - PBXVariantGroup: 'file', - } - self_type = valid_class_types[self.__class__] - other_type = valid_class_types[other.__class__] - - if self_type == other_type: - # If the two objects are of the same sort rank, compare their names. - return cmp(self.Name(), other.Name()) - - # Otherwise, sort groups before everything else. - if self_type == 'group': - return -1 - return 1 - - def CompareRootGroup(self, other): - # This function should be used only to compare direct children of the - # containing PBXProject's mainGroup. These groups should appear in the - # listed order. - # TODO(mark): "Build" is used by gyp.generator.xcode, perhaps the - # generator should have a way of influencing this list rather than having - # to hardcode for the generator here. - order = ['Source', 'Intermediates', 'Projects', 'Frameworks', 'Products', - 'Build'] - - # If the groups aren't in the listed order, do a name comparison. - # Otherwise, groups in the listed order should come before those that - # aren't. - self_name = self.Name() - other_name = other.Name() - self_in = isinstance(self, PBXGroup) and self_name in order - other_in = isinstance(self, PBXGroup) and other_name in order - if not self_in and not other_in: - return self.Compare(other) - if self_name in order and not other_name in order: - return -1 - if other_name in order and not self_name in order: - return 1 - - # If both groups are in the listed order, go by the defined order. - self_index = order.index(self_name) - other_index = order.index(other_name) - if self_index < other_index: - return -1 - if self_index > other_index: - return 1 - return 0 - - def PathFromSourceTreeAndPath(self): - # Turn the object's sourceTree and path properties into a single flat - # string of a form comparable to the path parameter. If there's a - # sourceTree property other than "", wrap it in $(...) for the - # comparison. - components = [] - if self._properties['sourceTree'] != '': - components.append('$(' + self._properties['sourceTree'] + ')') - if 'path' in self._properties: - components.append(self._properties['path']) - - if len(components) > 0: - return posixpath.join(*components) - - return None - - def FullPath(self): - # Returns a full path to self relative to the project file, or relative - # to some other source tree. Start with self, and walk up the chain of - # parents prepending their paths, if any, until no more parents are - # available (project-relative path) or until a path relative to some - # source tree is found. - xche = self - path = None - while isinstance(xche, XCHierarchicalElement) and \ - (path is None or \ - (not path.startswith('/') and not path.startswith('$'))): - this_path = xche.PathFromSourceTreeAndPath() - if this_path != None and path != None: - path = posixpath.join(this_path, path) - elif this_path != None: - path = this_path - xche = xche.parent - - return path - - -class PBXGroup(XCHierarchicalElement): - """ - Attributes: - _children_by_path: Maps pathnames of children of this PBXGroup to the - actual child XCHierarchicalElement objects. - _variant_children_by_name_and_path: Maps (name, path) tuples of - PBXVariantGroup children to the actual child PBXVariantGroup objects. - """ - - _schema = XCHierarchicalElement._schema.copy() - _schema.update({ - 'children': [1, XCHierarchicalElement, 1, 1, []], - 'name': [0, str, 0, 0], - 'path': [0, str, 0, 0], - }) - - def __init__(self, properties=None, id=None, parent=None): - # super - XCHierarchicalElement.__init__(self, properties, id, parent) - self._children_by_path = {} - self._variant_children_by_name_and_path = {} - for child in self._properties.get('children', []): - self._AddChildToDicts(child) - - def Hashables(self): - # super - hashables = XCHierarchicalElement.Hashables(self) - - # It is not sufficient to just rely on name and parent to build a unique - # hashable : a node could have two child PBXGroup sharing a common name. - # To add entropy the hashable is enhanced with the names of all its - # children. - for child in self._properties.get('children', []): - child_name = child.Name() - if child_name != None: - hashables.append(child_name) - - return hashables - - def HashablesForChild(self): - # To avoid a circular reference the hashables used to compute a child id do - # not include the child names. - return XCHierarchicalElement.Hashables(self) - - def _AddChildToDicts(self, child): - # Sets up this PBXGroup object's dicts to reference the child properly. - child_path = child.PathFromSourceTreeAndPath() - if child_path: - if child_path in self._children_by_path: - raise ValueError('Found multiple children with path ' + child_path) - self._children_by_path[child_path] = child - - if isinstance(child, PBXVariantGroup): - child_name = child._properties.get('name', None) - key = (child_name, child_path) - if key in self._variant_children_by_name_and_path: - raise ValueError('Found multiple PBXVariantGroup children with ' + \ - 'name ' + str(child_name) + ' and path ' + \ - str(child_path)) - self._variant_children_by_name_and_path[key] = child - - def AppendChild(self, child): - # Callers should use this instead of calling - # AppendProperty('children', child) directly because this function - # maintains the group's dicts. - self.AppendProperty('children', child) - self._AddChildToDicts(child) - - def GetChildByName(self, name): - # This is not currently optimized with a dict as GetChildByPath is because - # it has few callers. Most callers probably want GetChildByPath. This - # function is only useful to get children that have names but no paths, - # which is rare. The children of the main group ("Source", "Products", - # etc.) is pretty much the only case where this likely to come up. - # - # TODO(mark): Maybe this should raise an error if more than one child is - # present with the same name. - if not 'children' in self._properties: - return None - - for child in self._properties['children']: - if child.Name() == name: - return child - - return None - - def GetChildByPath(self, path): - if not path: - return None - - if path in self._children_by_path: - return self._children_by_path[path] - - return None - - def GetChildByRemoteObject(self, remote_object): - # This method is a little bit esoteric. Given a remote_object, which - # should be a PBXFileReference in another project file, this method will - # return this group's PBXReferenceProxy object serving as a local proxy - # for the remote PBXFileReference. - # - # This function might benefit from a dict optimization as GetChildByPath - # for some workloads, but profiling shows that it's not currently a - # problem. - if not 'children' in self._properties: - return None - - for child in self._properties['children']: - if not isinstance(child, PBXReferenceProxy): - continue - - container_proxy = child._properties['remoteRef'] - if container_proxy._properties['remoteGlobalIDString'] == remote_object: - return child - - return None - - def AddOrGetFileByPath(self, path, hierarchical): - """Returns an existing or new file reference corresponding to path. - - If hierarchical is True, this method will create or use the necessary - hierarchical group structure corresponding to path. Otherwise, it will - look in and create an item in the current group only. - - If an existing matching reference is found, it is returned, otherwise, a - new one will be created, added to the correct group, and returned. - - If path identifies a directory by virtue of carrying a trailing slash, - this method returns a PBXFileReference of "folder" type. If path - identifies a variant, by virtue of it identifying a file inside a directory - with an ".lproj" extension, this method returns a PBXVariantGroup - containing the variant named by path, and possibly other variants. For - all other paths, a "normal" PBXFileReference will be returned. - """ - - # Adding or getting a directory? Directories end with a trailing slash. - is_dir = False - if path.endswith('/'): - is_dir = True - path = posixpath.normpath(path) - if is_dir: - path = path + '/' - - # Adding or getting a variant? Variants are files inside directories - # with an ".lproj" extension. Xcode uses variants for localization. For - # a variant path/to/Language.lproj/MainMenu.nib, put a variant group named - # MainMenu.nib inside path/to, and give it a variant named Language. In - # this example, grandparent would be set to path/to and parent_root would - # be set to Language. - variant_name = None - parent = posixpath.dirname(path) - grandparent = posixpath.dirname(parent) - parent_basename = posixpath.basename(parent) - (parent_root, parent_ext) = posixpath.splitext(parent_basename) - if parent_ext == '.lproj': - variant_name = parent_root - if grandparent == '': - grandparent = None - - # Putting a directory inside a variant group is not currently supported. - assert not is_dir or variant_name is None - - path_split = path.split(posixpath.sep) - if len(path_split) == 1 or \ - ((is_dir or variant_name != None) and len(path_split) == 2) or \ - not hierarchical: - # The PBXFileReference or PBXVariantGroup will be added to or gotten from - # this PBXGroup, no recursion necessary. - if variant_name is None: - # Add or get a PBXFileReference. - file_ref = self.GetChildByPath(path) - if file_ref != None: - assert file_ref.__class__ == PBXFileReference - else: - file_ref = PBXFileReference({'path': path}) - self.AppendChild(file_ref) - else: - # Add or get a PBXVariantGroup. The variant group name is the same - # as the basename (MainMenu.nib in the example above). grandparent - # specifies the path to the variant group itself, and path_split[-2:] - # is the path of the specific variant relative to its group. - variant_group_name = posixpath.basename(path) - variant_group_ref = self.AddOrGetVariantGroupByNameAndPath( - variant_group_name, grandparent) - variant_path = posixpath.sep.join(path_split[-2:]) - variant_ref = variant_group_ref.GetChildByPath(variant_path) - if variant_ref != None: - assert variant_ref.__class__ == PBXFileReference - else: - variant_ref = PBXFileReference({'name': variant_name, - 'path': variant_path}) - variant_group_ref.AppendChild(variant_ref) - # The caller is interested in the variant group, not the specific - # variant file. - file_ref = variant_group_ref - return file_ref - else: - # Hierarchical recursion. Add or get a PBXGroup corresponding to the - # outermost path component, and then recurse into it, chopping off that - # path component. - next_dir = path_split[0] - group_ref = self.GetChildByPath(next_dir) - if group_ref != None: - assert group_ref.__class__ == PBXGroup - else: - group_ref = PBXGroup({'path': next_dir}) - self.AppendChild(group_ref) - return group_ref.AddOrGetFileByPath(posixpath.sep.join(path_split[1:]), - hierarchical) - - def AddOrGetVariantGroupByNameAndPath(self, name, path): - """Returns an existing or new PBXVariantGroup for name and path. - - If a PBXVariantGroup identified by the name and path arguments is already - present as a child of this object, it is returned. Otherwise, a new - PBXVariantGroup with the correct properties is created, added as a child, - and returned. - - This method will generally be called by AddOrGetFileByPath, which knows - when to create a variant group based on the structure of the pathnames - passed to it. - """ - - key = (name, path) - if key in self._variant_children_by_name_and_path: - variant_group_ref = self._variant_children_by_name_and_path[key] - assert variant_group_ref.__class__ == PBXVariantGroup - return variant_group_ref - - variant_group_properties = {'name': name} - if path != None: - variant_group_properties['path'] = path - variant_group_ref = PBXVariantGroup(variant_group_properties) - self.AppendChild(variant_group_ref) - - return variant_group_ref - - def TakeOverOnlyChild(self, recurse=False): - """If this PBXGroup has only one child and it's also a PBXGroup, take - it over by making all of its children this object's children. - - This function will continue to take over only children when those children - are groups. If there are three PBXGroups representing a, b, and c, with - c inside b and b inside a, and a and b have no other children, this will - result in a taking over both b and c, forming a PBXGroup for a/b/c. - - If recurse is True, this function will recurse into children and ask them - to collapse themselves by taking over only children as well. Assuming - an example hierarchy with files at a/b/c/d1, a/b/c/d2, and a/b/c/d3/e/f - (d1, d2, and f are files, the rest are groups), recursion will result in - a group for a/b/c containing a group for d3/e. - """ - - # At this stage, check that child class types are PBXGroup exactly, - # instead of using isinstance. The only subclass of PBXGroup, - # PBXVariantGroup, should not participate in reparenting in the same way: - # reparenting by merging different object types would be wrong. - while len(self._properties['children']) == 1 and \ - self._properties['children'][0].__class__ == PBXGroup: - # Loop to take over the innermost only-child group possible. - - child = self._properties['children'][0] - - # Assume the child's properties, including its children. Save a copy - # of this object's old properties, because they'll still be needed. - # This object retains its existing id and parent attributes. - old_properties = self._properties - self._properties = child._properties - self._children_by_path = child._children_by_path - - if not 'sourceTree' in self._properties or \ - self._properties['sourceTree'] == '': - # The child was relative to its parent. Fix up the path. Note that - # children with a sourceTree other than "" are not relative to - # their parents, so no path fix-up is needed in that case. - if 'path' in old_properties: - if 'path' in self._properties: - # Both the original parent and child have paths set. - self._properties['path'] = posixpath.join(old_properties['path'], - self._properties['path']) - else: - # Only the original parent has a path, use it. - self._properties['path'] = old_properties['path'] - if 'sourceTree' in old_properties: - # The original parent had a sourceTree set, use it. - self._properties['sourceTree'] = old_properties['sourceTree'] - - # If the original parent had a name set, keep using it. If the original - # parent didn't have a name but the child did, let the child's name - # live on. If the name attribute seems unnecessary now, get rid of it. - if 'name' in old_properties and old_properties['name'] != None and \ - old_properties['name'] != self.Name(): - self._properties['name'] = old_properties['name'] - if 'name' in self._properties and 'path' in self._properties and \ - self._properties['name'] == self._properties['path']: - del self._properties['name'] - - # Notify all children of their new parent. - for child in self._properties['children']: - child.parent = self - - # If asked to recurse, recurse. - if recurse: - for child in self._properties['children']: - if child.__class__ == PBXGroup: - child.TakeOverOnlyChild(recurse) - - def SortGroup(self): - self._properties['children'] = \ - sorted(self._properties['children'], cmp=lambda x,y: x.Compare(y)) - - # Recurse. - for child in self._properties['children']: - if isinstance(child, PBXGroup): - child.SortGroup() - - -class XCFileLikeElement(XCHierarchicalElement): - # Abstract base for objects that can be used as the fileRef property of - # PBXBuildFile. - - def PathHashables(self): - # A PBXBuildFile that refers to this object will call this method to - # obtain additional hashables specific to this XCFileLikeElement. Don't - # just use this object's hashables, they're not specific and unique enough - # on their own (without access to the parent hashables.) Instead, provide - # hashables that identify this object by path by getting its hashables as - # well as the hashables of ancestor XCHierarchicalElement objects. - - hashables = [] - xche = self - while xche != None and isinstance(xche, XCHierarchicalElement): - xche_hashables = xche.Hashables() - for index in xrange(0, len(xche_hashables)): - hashables.insert(index, xche_hashables[index]) - xche = xche.parent - return hashables - - -class XCContainerPortal(XCObject): - # Abstract base for objects that can be used as the containerPortal property - # of PBXContainerItemProxy. - pass - - -class XCRemoteObject(XCObject): - # Abstract base for objects that can be used as the remoteGlobalIDString - # property of PBXContainerItemProxy. - pass - - -class PBXFileReference(XCFileLikeElement, XCContainerPortal, XCRemoteObject): - _schema = XCFileLikeElement._schema.copy() - _schema.update({ - 'explicitFileType': [0, str, 0, 0], - 'lastKnownFileType': [0, str, 0, 0], - 'name': [0, str, 0, 0], - 'path': [0, str, 0, 1], - }) - - # Weird output rules for PBXFileReference. - _should_print_single_line = True - # super - _encode_transforms = XCFileLikeElement._alternate_encode_transforms - - def __init__(self, properties=None, id=None, parent=None): - # super - XCFileLikeElement.__init__(self, properties, id, parent) - if 'path' in self._properties and self._properties['path'].endswith('/'): - self._properties['path'] = self._properties['path'][:-1] - is_dir = True - else: - is_dir = False - - if 'path' in self._properties and \ - not 'lastKnownFileType' in self._properties and \ - not 'explicitFileType' in self._properties: - # TODO(mark): This is the replacement for a replacement for a quick hack. - # It is no longer incredibly sucky, but this list needs to be extended. - extension_map = { - 'a': 'archive.ar', - 'app': 'wrapper.application', - 'bdic': 'file', - 'bundle': 'wrapper.cfbundle', - 'c': 'sourcecode.c.c', - 'cc': 'sourcecode.cpp.cpp', - 'cpp': 'sourcecode.cpp.cpp', - 'css': 'text.css', - 'cxx': 'sourcecode.cpp.cpp', - 'dart': 'sourcecode', - 'dylib': 'compiled.mach-o.dylib', - 'framework': 'wrapper.framework', - 'gyp': 'sourcecode', - 'gypi': 'sourcecode', - 'h': 'sourcecode.c.h', - 'hxx': 'sourcecode.cpp.h', - 'icns': 'image.icns', - 'java': 'sourcecode.java', - 'js': 'sourcecode.javascript', - 'kext': 'wrapper.kext', - 'm': 'sourcecode.c.objc', - 'mm': 'sourcecode.cpp.objcpp', - 'nib': 'wrapper.nib', - 'o': 'compiled.mach-o.objfile', - 'pdf': 'image.pdf', - 'pl': 'text.script.perl', - 'plist': 'text.plist.xml', - 'pm': 'text.script.perl', - 'png': 'image.png', - 'py': 'text.script.python', - 'r': 'sourcecode.rez', - 'rez': 'sourcecode.rez', - 's': 'sourcecode.asm', - 'storyboard': 'file.storyboard', - 'strings': 'text.plist.strings', - 'swift': 'sourcecode.swift', - 'ttf': 'file', - 'xcassets': 'folder.assetcatalog', - 'xcconfig': 'text.xcconfig', - 'xcdatamodel': 'wrapper.xcdatamodel', - 'xcdatamodeld':'wrapper.xcdatamodeld', - 'xib': 'file.xib', - 'y': 'sourcecode.yacc', - } - - prop_map = { - 'dart': 'explicitFileType', - 'gyp': 'explicitFileType', - 'gypi': 'explicitFileType', - } - - if is_dir: - file_type = 'folder' - prop_name = 'lastKnownFileType' - else: - basename = posixpath.basename(self._properties['path']) - (root, ext) = posixpath.splitext(basename) - # Check the map using a lowercase extension. - # TODO(mark): Maybe it should try with the original case first and fall - # back to lowercase, in case there are any instances where case - # matters. There currently aren't. - if ext != '': - ext = ext[1:].lower() - - # TODO(mark): "text" is the default value, but "file" is appropriate - # for unrecognized files not containing text. Xcode seems to choose - # based on content. - file_type = extension_map.get(ext, 'text') - prop_name = prop_map.get(ext, 'lastKnownFileType') - - self._properties[prop_name] = file_type - - -class PBXVariantGroup(PBXGroup, XCFileLikeElement): - """PBXVariantGroup is used by Xcode to represent localizations.""" - # No additions to the schema relative to PBXGroup. - pass - - -# PBXReferenceProxy is also an XCFileLikeElement subclass. It is defined below -# because it uses PBXContainerItemProxy, defined below. - - -class XCBuildConfiguration(XCObject): - _schema = XCObject._schema.copy() - _schema.update({ - 'baseConfigurationReference': [0, PBXFileReference, 0, 0], - 'buildSettings': [0, dict, 0, 1, {}], - 'name': [0, str, 0, 1], - }) - - def HasBuildSetting(self, key): - return key in self._properties['buildSettings'] - - def GetBuildSetting(self, key): - return self._properties['buildSettings'][key] - - def SetBuildSetting(self, key, value): - # TODO(mark): If a list, copy? - self._properties['buildSettings'][key] = value - - def AppendBuildSetting(self, key, value): - if not key in self._properties['buildSettings']: - self._properties['buildSettings'][key] = [] - self._properties['buildSettings'][key].append(value) - - def DelBuildSetting(self, key): - if key in self._properties['buildSettings']: - del self._properties['buildSettings'][key] - - def SetBaseConfiguration(self, value): - self._properties['baseConfigurationReference'] = value - -class XCConfigurationList(XCObject): - # _configs is the default list of configurations. - _configs = [ XCBuildConfiguration({'name': 'Debug'}), - XCBuildConfiguration({'name': 'Release'}) ] - - _schema = XCObject._schema.copy() - _schema.update({ - 'buildConfigurations': [1, XCBuildConfiguration, 1, 1, _configs], - 'defaultConfigurationIsVisible': [0, int, 0, 1, 1], - 'defaultConfigurationName': [0, str, 0, 1, 'Release'], - }) - - def Name(self): - return 'Build configuration list for ' + \ - self.parent.__class__.__name__ + ' "' + self.parent.Name() + '"' - - def ConfigurationNamed(self, name): - """Convenience accessor to obtain an XCBuildConfiguration by name.""" - for configuration in self._properties['buildConfigurations']: - if configuration._properties['name'] == name: - return configuration - - raise KeyError(name) - - def DefaultConfiguration(self): - """Convenience accessor to obtain the default XCBuildConfiguration.""" - return self.ConfigurationNamed(self._properties['defaultConfigurationName']) - - def HasBuildSetting(self, key): - """Determines the state of a build setting in all XCBuildConfiguration - child objects. - - If all child objects have key in their build settings, and the value is the - same in all child objects, returns 1. - - If no child objects have the key in their build settings, returns 0. - - If some, but not all, child objects have the key in their build settings, - or if any children have different values for the key, returns -1. - """ - - has = None - value = None - for configuration in self._properties['buildConfigurations']: - configuration_has = configuration.HasBuildSetting(key) - if has is None: - has = configuration_has - elif has != configuration_has: - return -1 - - if configuration_has: - configuration_value = configuration.GetBuildSetting(key) - if value is None: - value = configuration_value - elif value != configuration_value: - return -1 - - if not has: - return 0 - - return 1 - - def GetBuildSetting(self, key): - """Gets the build setting for key. - - All child XCConfiguration objects must have the same value set for the - setting, or a ValueError will be raised. - """ - - # TODO(mark): This is wrong for build settings that are lists. The list - # contents should be compared (and a list copy returned?) - - value = None - for configuration in self._properties['buildConfigurations']: - configuration_value = configuration.GetBuildSetting(key) - if value is None: - value = configuration_value - else: - if value != configuration_value: - raise ValueError('Variant values for ' + key) - - return value - - def SetBuildSetting(self, key, value): - """Sets the build setting for key to value in all child - XCBuildConfiguration objects. - """ - - for configuration in self._properties['buildConfigurations']: - configuration.SetBuildSetting(key, value) - - def AppendBuildSetting(self, key, value): - """Appends value to the build setting for key, which is treated as a list, - in all child XCBuildConfiguration objects. - """ - - for configuration in self._properties['buildConfigurations']: - configuration.AppendBuildSetting(key, value) - - def DelBuildSetting(self, key): - """Deletes the build setting key from all child XCBuildConfiguration - objects. - """ - - for configuration in self._properties['buildConfigurations']: - configuration.DelBuildSetting(key) - - def SetBaseConfiguration(self, value): - """Sets the build configuration in all child XCBuildConfiguration objects. - """ - - for configuration in self._properties['buildConfigurations']: - configuration.SetBaseConfiguration(value) - - -class PBXBuildFile(XCObject): - _schema = XCObject._schema.copy() - _schema.update({ - 'fileRef': [0, XCFileLikeElement, 0, 1], - 'settings': [0, str, 0, 0], # hack, it's a dict - }) - - # Weird output rules for PBXBuildFile. - _should_print_single_line = True - _encode_transforms = XCObject._alternate_encode_transforms - - def Name(self): - # Example: "main.cc in Sources" - return self._properties['fileRef'].Name() + ' in ' + self.parent.Name() - - def Hashables(self): - # super - hashables = XCObject.Hashables(self) - - # It is not sufficient to just rely on Name() to get the - # XCFileLikeElement's name, because that is not a complete pathname. - # PathHashables returns hashables unique enough that no two - # PBXBuildFiles should wind up with the same set of hashables, unless - # someone adds the same file multiple times to the same target. That - # would be considered invalid anyway. - hashables.extend(self._properties['fileRef'].PathHashables()) - - return hashables - - -class XCBuildPhase(XCObject): - """Abstract base for build phase classes. Not represented in a project - file. - - Attributes: - _files_by_path: A dict mapping each path of a child in the files list by - path (keys) to the corresponding PBXBuildFile children (values). - _files_by_xcfilelikeelement: A dict mapping each XCFileLikeElement (keys) - to the corresponding PBXBuildFile children (values). - """ - - # TODO(mark): Some build phase types, like PBXShellScriptBuildPhase, don't - # actually have a "files" list. XCBuildPhase should not have "files" but - # another abstract subclass of it should provide this, and concrete build - # phase types that do have "files" lists should be derived from that new - # abstract subclass. XCBuildPhase should only provide buildActionMask and - # runOnlyForDeploymentPostprocessing, and not files or the various - # file-related methods and attributes. - - _schema = XCObject._schema.copy() - _schema.update({ - 'buildActionMask': [0, int, 0, 1, 0x7fffffff], - 'files': [1, PBXBuildFile, 1, 1, []], - 'runOnlyForDeploymentPostprocessing': [0, int, 0, 1, 0], - }) - - def __init__(self, properties=None, id=None, parent=None): - # super - XCObject.__init__(self, properties, id, parent) - - self._files_by_path = {} - self._files_by_xcfilelikeelement = {} - for pbxbuildfile in self._properties.get('files', []): - self._AddBuildFileToDicts(pbxbuildfile) - - def FileGroup(self, path): - # Subclasses must override this by returning a two-element tuple. The - # first item in the tuple should be the PBXGroup to which "path" should be - # added, either as a child or deeper descendant. The second item should - # be a boolean indicating whether files should be added into hierarchical - # groups or one single flat group. - raise NotImplementedError( - self.__class__.__name__ + ' must implement FileGroup') - - def _AddPathToDict(self, pbxbuildfile, path): - """Adds path to the dict tracking paths belonging to this build phase. - - If the path is already a member of this build phase, raises an exception. - """ - - if path in self._files_by_path: - raise ValueError('Found multiple build files with path ' + path) - self._files_by_path[path] = pbxbuildfile - - def _AddBuildFileToDicts(self, pbxbuildfile, path=None): - """Maintains the _files_by_path and _files_by_xcfilelikeelement dicts. - - If path is specified, then it is the path that is being added to the - phase, and pbxbuildfile must contain either a PBXFileReference directly - referencing that path, or it must contain a PBXVariantGroup that itself - contains a PBXFileReference referencing the path. - - If path is not specified, either the PBXFileReference's path or the paths - of all children of the PBXVariantGroup are taken as being added to the - phase. - - If the path is already present in the phase, raises an exception. - - If the PBXFileReference or PBXVariantGroup referenced by pbxbuildfile - are already present in the phase, referenced by a different PBXBuildFile - object, raises an exception. This does not raise an exception when - a PBXFileReference or PBXVariantGroup reappear and are referenced by the - same PBXBuildFile that has already introduced them, because in the case - of PBXVariantGroup objects, they may correspond to multiple paths that are - not all added simultaneously. When this situation occurs, the path needs - to be added to _files_by_path, but nothing needs to change in - _files_by_xcfilelikeelement, and the caller should have avoided adding - the PBXBuildFile if it is already present in the list of children. - """ - - xcfilelikeelement = pbxbuildfile._properties['fileRef'] - - paths = [] - if path != None: - # It's best when the caller provides the path. - if isinstance(xcfilelikeelement, PBXVariantGroup): - paths.append(path) - else: - # If the caller didn't provide a path, there can be either multiple - # paths (PBXVariantGroup) or one. - if isinstance(xcfilelikeelement, PBXVariantGroup): - for variant in xcfilelikeelement._properties['children']: - paths.append(variant.FullPath()) - else: - paths.append(xcfilelikeelement.FullPath()) - - # Add the paths first, because if something's going to raise, the - # messages provided by _AddPathToDict are more useful owing to its - # having access to a real pathname and not just an object's Name(). - for a_path in paths: - self._AddPathToDict(pbxbuildfile, a_path) - - # If another PBXBuildFile references this XCFileLikeElement, there's a - # problem. - if xcfilelikeelement in self._files_by_xcfilelikeelement and \ - self._files_by_xcfilelikeelement[xcfilelikeelement] != pbxbuildfile: - raise ValueError('Found multiple build files for ' + \ - xcfilelikeelement.Name()) - self._files_by_xcfilelikeelement[xcfilelikeelement] = pbxbuildfile - - def AppendBuildFile(self, pbxbuildfile, path=None): - # Callers should use this instead of calling - # AppendProperty('files', pbxbuildfile) directly because this function - # maintains the object's dicts. Better yet, callers can just call AddFile - # with a pathname and not worry about building their own PBXBuildFile - # objects. - self.AppendProperty('files', pbxbuildfile) - self._AddBuildFileToDicts(pbxbuildfile, path) - - def AddFile(self, path, settings=None): - (file_group, hierarchical) = self.FileGroup(path) - file_ref = file_group.AddOrGetFileByPath(path, hierarchical) - - if file_ref in self._files_by_xcfilelikeelement and \ - isinstance(file_ref, PBXVariantGroup): - # There's already a PBXBuildFile in this phase corresponding to the - # PBXVariantGroup. path just provides a new variant that belongs to - # the group. Add the path to the dict. - pbxbuildfile = self._files_by_xcfilelikeelement[file_ref] - self._AddBuildFileToDicts(pbxbuildfile, path) - else: - # Add a new PBXBuildFile to get file_ref into the phase. - if settings is None: - pbxbuildfile = PBXBuildFile({'fileRef': file_ref}) - else: - pbxbuildfile = PBXBuildFile({'fileRef': file_ref, 'settings': settings}) - self.AppendBuildFile(pbxbuildfile, path) - - -class PBXHeadersBuildPhase(XCBuildPhase): - # No additions to the schema relative to XCBuildPhase. - - def Name(self): - return 'Headers' - - def FileGroup(self, path): - return self.PBXProjectAncestor().RootGroupForPath(path) - - -class PBXResourcesBuildPhase(XCBuildPhase): - # No additions to the schema relative to XCBuildPhase. - - def Name(self): - return 'Resources' - - def FileGroup(self, path): - return self.PBXProjectAncestor().RootGroupForPath(path) - - -class PBXSourcesBuildPhase(XCBuildPhase): - # No additions to the schema relative to XCBuildPhase. - - def Name(self): - return 'Sources' - - def FileGroup(self, path): - return self.PBXProjectAncestor().RootGroupForPath(path) - - -class PBXFrameworksBuildPhase(XCBuildPhase): - # No additions to the schema relative to XCBuildPhase. - - def Name(self): - return 'Frameworks' - - def FileGroup(self, path): - (root, ext) = posixpath.splitext(path) - if ext != '': - ext = ext[1:].lower() - if ext == 'o': - # .o files are added to Xcode Frameworks phases, but conceptually aren't - # frameworks, they're more like sources or intermediates. Redirect them - # to show up in one of those other groups. - return self.PBXProjectAncestor().RootGroupForPath(path) - else: - return (self.PBXProjectAncestor().FrameworksGroup(), False) - - -class PBXShellScriptBuildPhase(XCBuildPhase): - _schema = XCBuildPhase._schema.copy() - _schema.update({ - 'inputPaths': [1, str, 0, 1, []], - 'name': [0, str, 0, 0], - 'outputPaths': [1, str, 0, 1, []], - 'shellPath': [0, str, 0, 1, '/bin/sh'], - 'shellScript': [0, str, 0, 1], - 'showEnvVarsInLog': [0, int, 0, 0], - }) - - def Name(self): - if 'name' in self._properties: - return self._properties['name'] - - return 'ShellScript' - - -class PBXCopyFilesBuildPhase(XCBuildPhase): - _schema = XCBuildPhase._schema.copy() - _schema.update({ - 'dstPath': [0, str, 0, 1], - 'dstSubfolderSpec': [0, int, 0, 1], - 'name': [0, str, 0, 0], - }) - - # path_tree_re matches "$(DIR)/path" or just "$(DIR)". Match group 1 is - # "DIR", match group 3 is "path" or None. - path_tree_re = re.compile('^\\$\\((.*)\\)(/(.*)|)$') - - # path_tree_to_subfolder maps names of Xcode variables to the associated - # dstSubfolderSpec property value used in a PBXCopyFilesBuildPhase object. - path_tree_to_subfolder = { - 'BUILT_FRAMEWORKS_DIR': 10, # Frameworks Directory - 'BUILT_PRODUCTS_DIR': 16, # Products Directory - # Other types that can be chosen via the Xcode UI. - # TODO(mark): Map Xcode variable names to these. - # : 1, # Wrapper - # : 6, # Executables: 6 - # : 7, # Resources - # : 15, # Java Resources - # : 11, # Shared Frameworks - # : 12, # Shared Support - # : 13, # PlugIns - } - - def Name(self): - if 'name' in self._properties: - return self._properties['name'] - - return 'CopyFiles' - - def FileGroup(self, path): - return self.PBXProjectAncestor().RootGroupForPath(path) - - def SetDestination(self, path): - """Set the dstSubfolderSpec and dstPath properties from path. - - path may be specified in the same notation used for XCHierarchicalElements, - specifically, "$(DIR)/path". - """ - - path_tree_match = self.path_tree_re.search(path) - if path_tree_match: - # Everything else needs to be relative to an Xcode variable. - path_tree = path_tree_match.group(1) - relative_path = path_tree_match.group(3) - - if path_tree in self.path_tree_to_subfolder: - subfolder = self.path_tree_to_subfolder[path_tree] - if relative_path is None: - relative_path = '' - else: - # The path starts with an unrecognized Xcode variable - # name like $(SRCROOT). Xcode will still handle this - # as an "absolute path" that starts with the variable. - subfolder = 0 - relative_path = path - elif path.startswith('/'): - # Special case. Absolute paths are in dstSubfolderSpec 0. - subfolder = 0 - relative_path = path[1:] - else: - raise ValueError('Can\'t use path %s in a %s' % \ - (path, self.__class__.__name__)) - - self._properties['dstPath'] = relative_path - self._properties['dstSubfolderSpec'] = subfolder - - -class PBXBuildRule(XCObject): - _schema = XCObject._schema.copy() - _schema.update({ - 'compilerSpec': [0, str, 0, 1], - 'filePatterns': [0, str, 0, 0], - 'fileType': [0, str, 0, 1], - 'isEditable': [0, int, 0, 1, 1], - 'outputFiles': [1, str, 0, 1, []], - 'script': [0, str, 0, 0], - }) - - def Name(self): - # Not very inspired, but it's what Xcode uses. - return self.__class__.__name__ - - def Hashables(self): - # super - hashables = XCObject.Hashables(self) - - # Use the hashables of the weak objects that this object refers to. - hashables.append(self._properties['fileType']) - if 'filePatterns' in self._properties: - hashables.append(self._properties['filePatterns']) - return hashables - - -class PBXContainerItemProxy(XCObject): - # When referencing an item in this project file, containerPortal is the - # PBXProject root object of this project file. When referencing an item in - # another project file, containerPortal is a PBXFileReference identifying - # the other project file. - # - # When serving as a proxy to an XCTarget (in this project file or another), - # proxyType is 1. When serving as a proxy to a PBXFileReference (in another - # project file), proxyType is 2. Type 2 is used for references to the - # producs of the other project file's targets. - # - # Xcode is weird about remoteGlobalIDString. Usually, it's printed without - # a comment, indicating that it's tracked internally simply as a string, but - # sometimes it's printed with a comment (usually when the object is initially - # created), indicating that it's tracked as a project file object at least - # sometimes. This module always tracks it as an object, but contains a hack - # to prevent it from printing the comment in the project file output. See - # _XCKVPrint. - _schema = XCObject._schema.copy() - _schema.update({ - 'containerPortal': [0, XCContainerPortal, 0, 1], - 'proxyType': [0, int, 0, 1], - 'remoteGlobalIDString': [0, XCRemoteObject, 0, 1], - 'remoteInfo': [0, str, 0, 1], - }) - - def __repr__(self): - props = self._properties - name = '%s.gyp:%s' % (props['containerPortal'].Name(), props['remoteInfo']) - return '<%s %r at 0x%x>' % (self.__class__.__name__, name, id(self)) - - def Name(self): - # Admittedly not the best name, but it's what Xcode uses. - return self.__class__.__name__ - - def Hashables(self): - # super - hashables = XCObject.Hashables(self) - - # Use the hashables of the weak objects that this object refers to. - hashables.extend(self._properties['containerPortal'].Hashables()) - hashables.extend(self._properties['remoteGlobalIDString'].Hashables()) - return hashables - - -class PBXTargetDependency(XCObject): - # The "target" property accepts an XCTarget object, and obviously not - # NoneType. But XCTarget is defined below, so it can't be put into the - # schema yet. The definition of PBXTargetDependency can't be moved below - # XCTarget because XCTarget's own schema references PBXTargetDependency. - # Python doesn't deal well with this circular relationship, and doesn't have - # a real way to do forward declarations. To work around, the type of - # the "target" property is reset below, after XCTarget is defined. - # - # At least one of "name" and "target" is required. - _schema = XCObject._schema.copy() - _schema.update({ - 'name': [0, str, 0, 0], - 'target': [0, None.__class__, 0, 0], - 'targetProxy': [0, PBXContainerItemProxy, 1, 1], - }) - - def __repr__(self): - name = self._properties.get('name') or self._properties['target'].Name() - return '<%s %r at 0x%x>' % (self.__class__.__name__, name, id(self)) - - def Name(self): - # Admittedly not the best name, but it's what Xcode uses. - return self.__class__.__name__ - - def Hashables(self): - # super - hashables = XCObject.Hashables(self) - - # Use the hashables of the weak objects that this object refers to. - hashables.extend(self._properties['targetProxy'].Hashables()) - return hashables - - -class PBXReferenceProxy(XCFileLikeElement): - _schema = XCFileLikeElement._schema.copy() - _schema.update({ - 'fileType': [0, str, 0, 1], - 'path': [0, str, 0, 1], - 'remoteRef': [0, PBXContainerItemProxy, 1, 1], - }) - - -class XCTarget(XCRemoteObject): - # An XCTarget is really just an XCObject, the XCRemoteObject thing is just - # to allow PBXProject to be used in the remoteGlobalIDString property of - # PBXContainerItemProxy. - # - # Setting a "name" property at instantiation may also affect "productName", - # which may in turn affect the "PRODUCT_NAME" build setting in children of - # "buildConfigurationList". See __init__ below. - _schema = XCRemoteObject._schema.copy() - _schema.update({ - 'buildConfigurationList': [0, XCConfigurationList, 1, 1, - XCConfigurationList()], - 'buildPhases': [1, XCBuildPhase, 1, 1, []], - 'dependencies': [1, PBXTargetDependency, 1, 1, []], - 'name': [0, str, 0, 1], - 'productName': [0, str, 0, 1], - }) - - def __init__(self, properties=None, id=None, parent=None, - force_outdir=None, force_prefix=None, force_extension=None): - # super - XCRemoteObject.__init__(self, properties, id, parent) - - # Set up additional defaults not expressed in the schema. If a "name" - # property was supplied, set "productName" if it is not present. Also set - # the "PRODUCT_NAME" build setting in each configuration, but only if - # the setting is not present in any build configuration. - if 'name' in self._properties: - if not 'productName' in self._properties: - self.SetProperty('productName', self._properties['name']) - - if 'productName' in self._properties: - if 'buildConfigurationList' in self._properties: - configs = self._properties['buildConfigurationList'] - if configs.HasBuildSetting('PRODUCT_NAME') == 0: - configs.SetBuildSetting('PRODUCT_NAME', - self._properties['productName']) - - def AddDependency(self, other): - pbxproject = self.PBXProjectAncestor() - other_pbxproject = other.PBXProjectAncestor() - if pbxproject == other_pbxproject: - # Add a dependency to another target in the same project file. - container = PBXContainerItemProxy({'containerPortal': pbxproject, - 'proxyType': 1, - 'remoteGlobalIDString': other, - 'remoteInfo': other.Name()}) - dependency = PBXTargetDependency({'target': other, - 'targetProxy': container}) - self.AppendProperty('dependencies', dependency) - else: - # Add a dependency to a target in a different project file. - other_project_ref = \ - pbxproject.AddOrGetProjectReference(other_pbxproject)[1] - container = PBXContainerItemProxy({ - 'containerPortal': other_project_ref, - 'proxyType': 1, - 'remoteGlobalIDString': other, - 'remoteInfo': other.Name(), - }) - dependency = PBXTargetDependency({'name': other.Name(), - 'targetProxy': container}) - self.AppendProperty('dependencies', dependency) - - # Proxy all of these through to the build configuration list. - - def ConfigurationNamed(self, name): - return self._properties['buildConfigurationList'].ConfigurationNamed(name) - - def DefaultConfiguration(self): - return self._properties['buildConfigurationList'].DefaultConfiguration() - - def HasBuildSetting(self, key): - return self._properties['buildConfigurationList'].HasBuildSetting(key) - - def GetBuildSetting(self, key): - return self._properties['buildConfigurationList'].GetBuildSetting(key) - - def SetBuildSetting(self, key, value): - return self._properties['buildConfigurationList'].SetBuildSetting(key, \ - value) - - def AppendBuildSetting(self, key, value): - return self._properties['buildConfigurationList'].AppendBuildSetting(key, \ - value) - - def DelBuildSetting(self, key): - return self._properties['buildConfigurationList'].DelBuildSetting(key) - - -# Redefine the type of the "target" property. See PBXTargetDependency._schema -# above. -PBXTargetDependency._schema['target'][1] = XCTarget - - -class PBXNativeTarget(XCTarget): - # buildPhases is overridden in the schema to be able to set defaults. - # - # NOTE: Contrary to most objects, it is advisable to set parent when - # constructing PBXNativeTarget. A parent of an XCTarget must be a PBXProject - # object. A parent reference is required for a PBXNativeTarget during - # construction to be able to set up the target defaults for productReference, - # because a PBXBuildFile object must be created for the target and it must - # be added to the PBXProject's mainGroup hierarchy. - _schema = XCTarget._schema.copy() - _schema.update({ - 'buildPhases': [1, XCBuildPhase, 1, 1, - [PBXSourcesBuildPhase(), PBXFrameworksBuildPhase()]], - 'buildRules': [1, PBXBuildRule, 1, 1, []], - 'productReference': [0, PBXFileReference, 0, 1], - 'productType': [0, str, 0, 1], - }) - - # Mapping from Xcode product-types to settings. The settings are: - # filetype : used for explicitFileType in the project file - # prefix : the prefix for the file name - # suffix : the suffix for the file name - _product_filetypes = { - 'com.apple.product-type.application': ['wrapper.application', - '', '.app'], - 'com.apple.product-type.application.watchapp': ['wrapper.application', - '', '.app'], - 'com.apple.product-type.watchkit-extension': ['wrapper.app-extension', - '', '.appex'], - 'com.apple.product-type.app-extension': ['wrapper.app-extension', - '', '.appex'], - 'com.apple.product-type.bundle': ['wrapper.cfbundle', - '', '.bundle'], - 'com.apple.product-type.framework': ['wrapper.framework', - '', '.framework'], - 'com.apple.product-type.library.dynamic': ['compiled.mach-o.dylib', - 'lib', '.dylib'], - 'com.apple.product-type.library.static': ['archive.ar', - 'lib', '.a'], - 'com.apple.product-type.tool': ['compiled.mach-o.executable', - '', ''], - 'com.apple.product-type.bundle.unit-test': ['wrapper.cfbundle', - '', '.xctest'], - 'com.googlecode.gyp.xcode.bundle': ['compiled.mach-o.dylib', - '', '.so'], - 'com.apple.product-type.kernel-extension': ['wrapper.kext', - '', '.kext'], - } - - def __init__(self, properties=None, id=None, parent=None, - force_outdir=None, force_prefix=None, force_extension=None): - # super - XCTarget.__init__(self, properties, id, parent) - - if 'productName' in self._properties and \ - 'productType' in self._properties and \ - not 'productReference' in self._properties and \ - self._properties['productType'] in self._product_filetypes: - products_group = None - pbxproject = self.PBXProjectAncestor() - if pbxproject != None: - products_group = pbxproject.ProductsGroup() - - if products_group != None: - (filetype, prefix, suffix) = \ - self._product_filetypes[self._properties['productType']] - # Xcode does not have a distinct type for loadable modules that are - # pure BSD targets (not in a bundle wrapper). GYP allows such modules - # to be specified by setting a target type to loadable_module without - # having mac_bundle set. These are mapped to the pseudo-product type - # com.googlecode.gyp.xcode.bundle. - # - # By picking up this special type and converting it to a dynamic - # library (com.apple.product-type.library.dynamic) with fix-ups, - # single-file loadable modules can be produced. - # - # MACH_O_TYPE is changed to mh_bundle to produce the proper file type - # (as opposed to mh_dylib). In order for linking to succeed, - # DYLIB_CURRENT_VERSION and DYLIB_COMPATIBILITY_VERSION must be - # cleared. They are meaningless for type mh_bundle. - # - # Finally, the .so extension is forcibly applied over the default - # (.dylib), unless another forced extension is already selected. - # .dylib is plainly wrong, and .bundle is used by loadable_modules in - # bundle wrappers (com.apple.product-type.bundle). .so seems an odd - # choice because it's used as the extension on many other systems that - # don't distinguish between linkable shared libraries and non-linkable - # loadable modules, but there's precedent: Python loadable modules on - # Mac OS X use an .so extension. - if self._properties['productType'] == 'com.googlecode.gyp.xcode.bundle': - self._properties['productType'] = \ - 'com.apple.product-type.library.dynamic' - self.SetBuildSetting('MACH_O_TYPE', 'mh_bundle') - self.SetBuildSetting('DYLIB_CURRENT_VERSION', '') - self.SetBuildSetting('DYLIB_COMPATIBILITY_VERSION', '') - if force_extension is None: - force_extension = suffix[1:] - - if self._properties['productType'] == \ - 'com.apple.product-type-bundle.unit.test': - if force_extension is None: - force_extension = suffix[1:] - - if force_extension is not None: - # If it's a wrapper (bundle), set WRAPPER_EXTENSION. - # Extension override. - suffix = '.' + force_extension - if filetype.startswith('wrapper.'): - self.SetBuildSetting('WRAPPER_EXTENSION', force_extension) - else: - self.SetBuildSetting('EXECUTABLE_EXTENSION', force_extension) - - if filetype.startswith('compiled.mach-o.executable'): - product_name = self._properties['productName'] - product_name += suffix - suffix = '' - self.SetProperty('productName', product_name) - self.SetBuildSetting('PRODUCT_NAME', product_name) - - # Xcode handles most prefixes based on the target type, however there - # are exceptions. If a "BSD Dynamic Library" target is added in the - # Xcode UI, Xcode sets EXECUTABLE_PREFIX. This check duplicates that - # behavior. - if force_prefix is not None: - prefix = force_prefix - if filetype.startswith('wrapper.'): - self.SetBuildSetting('WRAPPER_PREFIX', prefix) - else: - self.SetBuildSetting('EXECUTABLE_PREFIX', prefix) - - if force_outdir is not None: - self.SetBuildSetting('TARGET_BUILD_DIR', force_outdir) - - # TODO(tvl): Remove the below hack. - # http://code.google.com/p/gyp/issues/detail?id=122 - - # Some targets include the prefix in the target_name. These targets - # really should just add a product_name setting that doesn't include - # the prefix. For example: - # target_name = 'libevent', product_name = 'event' - # This check cleans up for them. - product_name = self._properties['productName'] - prefix_len = len(prefix) - if prefix_len and (product_name[:prefix_len] == prefix): - product_name = product_name[prefix_len:] - self.SetProperty('productName', product_name) - self.SetBuildSetting('PRODUCT_NAME', product_name) - - ref_props = { - 'explicitFileType': filetype, - 'includeInIndex': 0, - 'path': prefix + product_name + suffix, - 'sourceTree': 'BUILT_PRODUCTS_DIR', - } - file_ref = PBXFileReference(ref_props) - products_group.AppendChild(file_ref) - self.SetProperty('productReference', file_ref) - - def GetBuildPhaseByType(self, type): - if not 'buildPhases' in self._properties: - return None - - the_phase = None - for phase in self._properties['buildPhases']: - if isinstance(phase, type): - # Some phases may be present in multiples in a well-formed project file, - # but phases like PBXSourcesBuildPhase may only be present singly, and - # this function is intended as an aid to GetBuildPhaseByType. Loop - # over the entire list of phases and assert if more than one of the - # desired type is found. - assert the_phase is None - the_phase = phase - - return the_phase - - def HeadersPhase(self): - headers_phase = self.GetBuildPhaseByType(PBXHeadersBuildPhase) - if headers_phase is None: - headers_phase = PBXHeadersBuildPhase() - - # The headers phase should come before the resources, sources, and - # frameworks phases, if any. - insert_at = len(self._properties['buildPhases']) - for index in xrange(0, len(self._properties['buildPhases'])): - phase = self._properties['buildPhases'][index] - if isinstance(phase, PBXResourcesBuildPhase) or \ - isinstance(phase, PBXSourcesBuildPhase) or \ - isinstance(phase, PBXFrameworksBuildPhase): - insert_at = index - break - - self._properties['buildPhases'].insert(insert_at, headers_phase) - headers_phase.parent = self - - return headers_phase - - def ResourcesPhase(self): - resources_phase = self.GetBuildPhaseByType(PBXResourcesBuildPhase) - if resources_phase is None: - resources_phase = PBXResourcesBuildPhase() - - # The resources phase should come before the sources and frameworks - # phases, if any. - insert_at = len(self._properties['buildPhases']) - for index in xrange(0, len(self._properties['buildPhases'])): - phase = self._properties['buildPhases'][index] - if isinstance(phase, PBXSourcesBuildPhase) or \ - isinstance(phase, PBXFrameworksBuildPhase): - insert_at = index - break - - self._properties['buildPhases'].insert(insert_at, resources_phase) - resources_phase.parent = self - - return resources_phase - - def SourcesPhase(self): - sources_phase = self.GetBuildPhaseByType(PBXSourcesBuildPhase) - if sources_phase is None: - sources_phase = PBXSourcesBuildPhase() - self.AppendProperty('buildPhases', sources_phase) - - return sources_phase - - def FrameworksPhase(self): - frameworks_phase = self.GetBuildPhaseByType(PBXFrameworksBuildPhase) - if frameworks_phase is None: - frameworks_phase = PBXFrameworksBuildPhase() - self.AppendProperty('buildPhases', frameworks_phase) - - return frameworks_phase - - def AddDependency(self, other): - # super - XCTarget.AddDependency(self, other) - - static_library_type = 'com.apple.product-type.library.static' - shared_library_type = 'com.apple.product-type.library.dynamic' - framework_type = 'com.apple.product-type.framework' - if isinstance(other, PBXNativeTarget) and \ - 'productType' in self._properties and \ - self._properties['productType'] != static_library_type and \ - 'productType' in other._properties and \ - (other._properties['productType'] == static_library_type or \ - ((other._properties['productType'] == shared_library_type or \ - other._properties['productType'] == framework_type) and \ - ((not other.HasBuildSetting('MACH_O_TYPE')) or - other.GetBuildSetting('MACH_O_TYPE') != 'mh_bundle'))): - - file_ref = other.GetProperty('productReference') - - pbxproject = self.PBXProjectAncestor() - other_pbxproject = other.PBXProjectAncestor() - if pbxproject != other_pbxproject: - other_project_product_group = \ - pbxproject.AddOrGetProjectReference(other_pbxproject)[0] - file_ref = other_project_product_group.GetChildByRemoteObject(file_ref) - - self.FrameworksPhase().AppendProperty('files', - PBXBuildFile({'fileRef': file_ref})) - - -class PBXAggregateTarget(XCTarget): - pass - - -class PBXProject(XCContainerPortal): - # A PBXProject is really just an XCObject, the XCContainerPortal thing is - # just to allow PBXProject to be used in the containerPortal property of - # PBXContainerItemProxy. - """ - - Attributes: - path: "sample.xcodeproj". TODO(mark) Document me! - _other_pbxprojects: A dictionary, keyed by other PBXProject objects. Each - value is a reference to the dict in the - projectReferences list associated with the keyed - PBXProject. - """ - - _schema = XCContainerPortal._schema.copy() - _schema.update({ - 'attributes': [0, dict, 0, 0], - 'buildConfigurationList': [0, XCConfigurationList, 1, 1, - XCConfigurationList()], - 'compatibilityVersion': [0, str, 0, 1, 'Xcode 3.2'], - 'hasScannedForEncodings': [0, int, 0, 1, 1], - 'mainGroup': [0, PBXGroup, 1, 1, PBXGroup()], - 'projectDirPath': [0, str, 0, 1, ''], - 'projectReferences': [1, dict, 0, 0], - 'projectRoot': [0, str, 0, 1, ''], - 'targets': [1, XCTarget, 1, 1, []], - }) - - def __init__(self, properties=None, id=None, parent=None, path=None): - self.path = path - self._other_pbxprojects = {} - # super - return XCContainerPortal.__init__(self, properties, id, parent) - - def Name(self): - name = self.path - if name[-10:] == '.xcodeproj': - name = name[:-10] - return posixpath.basename(name) - - def Path(self): - return self.path - - def Comment(self): - return 'Project object' - - def Children(self): - # super - children = XCContainerPortal.Children(self) - - # Add children that the schema doesn't know about. Maybe there's a more - # elegant way around this, but this is the only case where we need to own - # objects in a dictionary (that is itself in a list), and three lines for - # a one-off isn't that big a deal. - if 'projectReferences' in self._properties: - for reference in self._properties['projectReferences']: - children.append(reference['ProductGroup']) - - return children - - def PBXProjectAncestor(self): - return self - - def _GroupByName(self, name): - if not 'mainGroup' in self._properties: - self.SetProperty('mainGroup', PBXGroup()) - - main_group = self._properties['mainGroup'] - group = main_group.GetChildByName(name) - if group is None: - group = PBXGroup({'name': name}) - main_group.AppendChild(group) - - return group - - # SourceGroup and ProductsGroup are created by default in Xcode's own - # templates. - def SourceGroup(self): - return self._GroupByName('Source') - - def ProductsGroup(self): - return self._GroupByName('Products') - - # IntermediatesGroup is used to collect source-like files that are generated - # by rules or script phases and are placed in intermediate directories such - # as DerivedSources. - def IntermediatesGroup(self): - return self._GroupByName('Intermediates') - - # FrameworksGroup and ProjectsGroup are top-level groups used to collect - # frameworks and projects. - def FrameworksGroup(self): - return self._GroupByName('Frameworks') - - def ProjectsGroup(self): - return self._GroupByName('Projects') - - def RootGroupForPath(self, path): - """Returns a PBXGroup child of this object to which path should be added. - - This method is intended to choose between SourceGroup and - IntermediatesGroup on the basis of whether path is present in a source - directory or an intermediates directory. For the purposes of this - determination, any path located within a derived file directory such as - PROJECT_DERIVED_FILE_DIR is treated as being in an intermediates - directory. - - The returned value is a two-element tuple. The first element is the - PBXGroup, and the second element specifies whether that group should be - organized hierarchically (True) or as a single flat list (False). - """ - - # TODO(mark): make this a class variable and bind to self on call? - # Also, this list is nowhere near exhaustive. - # INTERMEDIATE_DIR and SHARED_INTERMEDIATE_DIR are used by - # gyp.generator.xcode. There should probably be some way for that module - # to push the names in, rather than having to hard-code them here. - source_tree_groups = { - 'DERIVED_FILE_DIR': (self.IntermediatesGroup, True), - 'INTERMEDIATE_DIR': (self.IntermediatesGroup, True), - 'PROJECT_DERIVED_FILE_DIR': (self.IntermediatesGroup, True), - 'SHARED_INTERMEDIATE_DIR': (self.IntermediatesGroup, True), - } - - (source_tree, path) = SourceTreeAndPathFromPath(path) - if source_tree != None and source_tree in source_tree_groups: - (group_func, hierarchical) = source_tree_groups[source_tree] - group = group_func() - return (group, hierarchical) - - # TODO(mark): make additional choices based on file extension. - - return (self.SourceGroup(), True) - - def AddOrGetFileInRootGroup(self, path): - """Returns a PBXFileReference corresponding to path in the correct group - according to RootGroupForPath's heuristics. - - If an existing PBXFileReference for path exists, it will be returned. - Otherwise, one will be created and returned. - """ - - (group, hierarchical) = self.RootGroupForPath(path) - return group.AddOrGetFileByPath(path, hierarchical) - - def RootGroupsTakeOverOnlyChildren(self, recurse=False): - """Calls TakeOverOnlyChild for all groups in the main group.""" - - for group in self._properties['mainGroup']._properties['children']: - if isinstance(group, PBXGroup): - group.TakeOverOnlyChild(recurse) - - def SortGroups(self): - # Sort the children of the mainGroup (like "Source" and "Products") - # according to their defined order. - self._properties['mainGroup']._properties['children'] = \ - sorted(self._properties['mainGroup']._properties['children'], - cmp=lambda x,y: x.CompareRootGroup(y)) - - # Sort everything else by putting group before files, and going - # alphabetically by name within sections of groups and files. SortGroup - # is recursive. - for group in self._properties['mainGroup']._properties['children']: - if not isinstance(group, PBXGroup): - continue - - if group.Name() == 'Products': - # The Products group is a special case. Instead of sorting - # alphabetically, sort things in the order of the targets that - # produce the products. To do this, just build up a new list of - # products based on the targets. - products = [] - for target in self._properties['targets']: - if not isinstance(target, PBXNativeTarget): - continue - product = target._properties['productReference'] - # Make sure that the product is already in the products group. - assert product in group._properties['children'] - products.append(product) - - # Make sure that this process doesn't miss anything that was already - # in the products group. - assert len(products) == len(group._properties['children']) - group._properties['children'] = products - else: - group.SortGroup() - - def AddOrGetProjectReference(self, other_pbxproject): - """Add a reference to another project file (via PBXProject object) to this - one. - - Returns [ProductGroup, ProjectRef]. ProductGroup is a PBXGroup object in - this project file that contains a PBXReferenceProxy object for each - product of each PBXNativeTarget in the other project file. ProjectRef is - a PBXFileReference to the other project file. - - If this project file already references the other project file, the - existing ProductGroup and ProjectRef are returned. The ProductGroup will - still be updated if necessary. - """ - - if not 'projectReferences' in self._properties: - self._properties['projectReferences'] = [] - - product_group = None - project_ref = None - - if not other_pbxproject in self._other_pbxprojects: - # This project file isn't yet linked to the other one. Establish the - # link. - product_group = PBXGroup({'name': 'Products'}) - - # ProductGroup is strong. - product_group.parent = self - - # There's nothing unique about this PBXGroup, and if left alone, it will - # wind up with the same set of hashables as all other PBXGroup objects - # owned by the projectReferences list. Add the hashables of the - # remote PBXProject that it's related to. - product_group._hashables.extend(other_pbxproject.Hashables()) - - # The other project reports its path as relative to the same directory - # that this project's path is relative to. The other project's path - # is not necessarily already relative to this project. Figure out the - # pathname that this project needs to use to refer to the other one. - this_path = posixpath.dirname(self.Path()) - projectDirPath = self.GetProperty('projectDirPath') - if projectDirPath: - if posixpath.isabs(projectDirPath[0]): - this_path = projectDirPath - else: - this_path = posixpath.join(this_path, projectDirPath) - other_path = gyp.common.RelativePath(other_pbxproject.Path(), this_path) - - # ProjectRef is weak (it's owned by the mainGroup hierarchy). - project_ref = PBXFileReference({ - 'lastKnownFileType': 'wrapper.pb-project', - 'path': other_path, - 'sourceTree': 'SOURCE_ROOT', - }) - self.ProjectsGroup().AppendChild(project_ref) - - ref_dict = {'ProductGroup': product_group, 'ProjectRef': project_ref} - self._other_pbxprojects[other_pbxproject] = ref_dict - self.AppendProperty('projectReferences', ref_dict) - - # Xcode seems to sort this list case-insensitively - self._properties['projectReferences'] = \ - sorted(self._properties['projectReferences'], cmp=lambda x,y: - cmp(x['ProjectRef'].Name().lower(), - y['ProjectRef'].Name().lower())) - else: - # The link already exists. Pull out the relevnt data. - project_ref_dict = self._other_pbxprojects[other_pbxproject] - product_group = project_ref_dict['ProductGroup'] - project_ref = project_ref_dict['ProjectRef'] - - self._SetUpProductReferences(other_pbxproject, product_group, project_ref) - - inherit_unique_symroot = self._AllSymrootsUnique(other_pbxproject, False) - targets = other_pbxproject.GetProperty('targets') - if all(self._AllSymrootsUnique(t, inherit_unique_symroot) for t in targets): - dir_path = project_ref._properties['path'] - product_group._hashables.extend(dir_path) - - return [product_group, project_ref] - - def _AllSymrootsUnique(self, target, inherit_unique_symroot): - # Returns True if all configurations have a unique 'SYMROOT' attribute. - # The value of inherit_unique_symroot decides, if a configuration is assumed - # to inherit a unique 'SYMROOT' attribute from its parent, if it doesn't - # define an explicit value for 'SYMROOT'. - symroots = self._DefinedSymroots(target) - for s in self._DefinedSymroots(target): - if (s is not None and not self._IsUniqueSymrootForTarget(s) or - s is None and not inherit_unique_symroot): - return False - return True if symroots else inherit_unique_symroot - - def _DefinedSymroots(self, target): - # Returns all values for the 'SYMROOT' attribute defined in all - # configurations for this target. If any configuration doesn't define the - # 'SYMROOT' attribute, None is added to the returned set. If all - # configurations don't define the 'SYMROOT' attribute, an empty set is - # returned. - config_list = target.GetProperty('buildConfigurationList') - symroots = set() - for config in config_list.GetProperty('buildConfigurations'): - setting = config.GetProperty('buildSettings') - if 'SYMROOT' in setting: - symroots.add(setting['SYMROOT']) - else: - symroots.add(None) - if len(symroots) == 1 and None in symroots: - return set() - return symroots - - def _IsUniqueSymrootForTarget(self, symroot): - # This method returns True if all configurations in target contain a - # 'SYMROOT' attribute that is unique for the given target. A value is - # unique, if the Xcode macro '$SRCROOT' appears in it in any form. - uniquifier = ['$SRCROOT', '$(SRCROOT)'] - if any(x in symroot for x in uniquifier): - return True - return False - - def _SetUpProductReferences(self, other_pbxproject, product_group, - project_ref): - # TODO(mark): This only adds references to products in other_pbxproject - # when they don't exist in this pbxproject. Perhaps it should also - # remove references from this pbxproject that are no longer present in - # other_pbxproject. Perhaps it should update various properties if they - # change. - for target in other_pbxproject._properties['targets']: - if not isinstance(target, PBXNativeTarget): - continue - - other_fileref = target._properties['productReference'] - if product_group.GetChildByRemoteObject(other_fileref) is None: - # Xcode sets remoteInfo to the name of the target and not the name - # of its product, despite this proxy being a reference to the product. - container_item = PBXContainerItemProxy({ - 'containerPortal': project_ref, - 'proxyType': 2, - 'remoteGlobalIDString': other_fileref, - 'remoteInfo': target.Name() - }) - # TODO(mark): Does sourceTree get copied straight over from the other - # project? Can the other project ever have lastKnownFileType here - # instead of explicitFileType? (Use it if so?) Can path ever be - # unset? (I don't think so.) Can other_fileref have name set, and - # does it impact the PBXReferenceProxy if so? These are the questions - # that perhaps will be answered one day. - reference_proxy = PBXReferenceProxy({ - 'fileType': other_fileref._properties['explicitFileType'], - 'path': other_fileref._properties['path'], - 'sourceTree': other_fileref._properties['sourceTree'], - 'remoteRef': container_item, - }) - - product_group.AppendChild(reference_proxy) - - def SortRemoteProductReferences(self): - # For each remote project file, sort the associated ProductGroup in the - # same order that the targets are sorted in the remote project file. This - # is the sort order used by Xcode. - - def CompareProducts(x, y, remote_products): - # x and y are PBXReferenceProxy objects. Go through their associated - # PBXContainerItem to get the remote PBXFileReference, which will be - # present in the remote_products list. - x_remote = x._properties['remoteRef']._properties['remoteGlobalIDString'] - y_remote = y._properties['remoteRef']._properties['remoteGlobalIDString'] - x_index = remote_products.index(x_remote) - y_index = remote_products.index(y_remote) - - # Use the order of each remote PBXFileReference in remote_products to - # determine the sort order. - return cmp(x_index, y_index) - - for other_pbxproject, ref_dict in self._other_pbxprojects.iteritems(): - # Build up a list of products in the remote project file, ordered the - # same as the targets that produce them. - remote_products = [] - for target in other_pbxproject._properties['targets']: - if not isinstance(target, PBXNativeTarget): - continue - remote_products.append(target._properties['productReference']) - - # Sort the PBXReferenceProxy children according to the list of remote - # products. - product_group = ref_dict['ProductGroup'] - product_group._properties['children'] = sorted( - product_group._properties['children'], - cmp=lambda x, y, rp=remote_products: CompareProducts(x, y, rp)) - - -class XCProjectFile(XCObject): - _schema = XCObject._schema.copy() - _schema.update({ - 'archiveVersion': [0, int, 0, 1, 1], - 'classes': [0, dict, 0, 1, {}], - 'objectVersion': [0, int, 0, 1, 46], - 'rootObject': [0, PBXProject, 1, 1], - }) - - def ComputeIDs(self, recursive=True, overwrite=True, hash=None): - # Although XCProjectFile is implemented here as an XCObject, it's not a - # proper object in the Xcode sense, and it certainly doesn't have its own - # ID. Pass through an attempt to update IDs to the real root object. - if recursive: - self._properties['rootObject'].ComputeIDs(recursive, overwrite, hash) - - def Print(self, file=sys.stdout): - self.VerifyHasRequiredProperties() - - # Add the special "objects" property, which will be caught and handled - # separately during printing. This structure allows a fairly standard - # loop do the normal printing. - self._properties['objects'] = {} - self._XCPrint(file, 0, '// !$*UTF8*$!\n') - if self._should_print_single_line: - self._XCPrint(file, 0, '{ ') - else: - self._XCPrint(file, 0, '{\n') - for property, value in sorted(self._properties.iteritems(), - cmp=lambda x, y: cmp(x, y)): - if property == 'objects': - self._PrintObjects(file) - else: - self._XCKVPrint(file, 1, property, value) - self._XCPrint(file, 0, '}\n') - del self._properties['objects'] - - def _PrintObjects(self, file): - if self._should_print_single_line: - self._XCPrint(file, 0, 'objects = {') - else: - self._XCPrint(file, 1, 'objects = {\n') - - objects_by_class = {} - for object in self.Descendants(): - if object == self: - continue - class_name = object.__class__.__name__ - if not class_name in objects_by_class: - objects_by_class[class_name] = [] - objects_by_class[class_name].append(object) - - for class_name in sorted(objects_by_class): - self._XCPrint(file, 0, '\n') - self._XCPrint(file, 0, '/* Begin ' + class_name + ' section */\n') - for object in sorted(objects_by_class[class_name], - cmp=lambda x, y: cmp(x.id, y.id)): - object.Print(file) - self._XCPrint(file, 0, '/* End ' + class_name + ' section */\n') - - if self._should_print_single_line: - self._XCPrint(file, 0, '}; ') - else: - self._XCPrint(file, 1, '};\n') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py deleted file mode 100644 index 5de84815..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright (c) 2011 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Applies a fix to CR LF TAB handling in xml.dom. - -Fixes this: http://code.google.com/p/chromium/issues/detail?id=76293 -Working around this: http://bugs.python.org/issue5752 -TODO(bradnelson): Consider dropping this when we drop XP support. -""" - - -import xml.dom.minidom - - -def _Replacement_write_data(writer, data, is_attrib=False): - """Writes datachars to writer.""" - data = data.replace("&", "&").replace("<", "<") - data = data.replace("\"", """).replace(">", ">") - if is_attrib: - data = data.replace( - "\r", " ").replace( - "\n", " ").replace( - "\t", " ") - writer.write(data) - - -def _Replacement_writexml(self, writer, indent="", addindent="", newl=""): - # indent = current indentation - # addindent = indentation to add to higher levels - # newl = newline string - writer.write(indent+"<" + self.tagName) - - attrs = self._get_attributes() - a_names = attrs.keys() - a_names.sort() - - for a_name in a_names: - writer.write(" %s=\"" % a_name) - _Replacement_write_data(writer, attrs[a_name].value, is_attrib=True) - writer.write("\"") - if self.childNodes: - writer.write(">%s" % newl) - for node in self.childNodes: - node.writexml(writer, indent + addindent, addindent, newl) - writer.write("%s%s" % (indent, self.tagName, newl)) - else: - writer.write("/>%s" % newl) - - -class XmlFix(object): - """Object to manage temporary patching of xml.dom.minidom.""" - - def __init__(self): - # Preserve current xml.dom.minidom functions. - self.write_data = xml.dom.minidom._write_data - self.writexml = xml.dom.minidom.Element.writexml - # Inject replacement versions of a function and a method. - xml.dom.minidom._write_data = _Replacement_write_data - xml.dom.minidom.Element.writexml = _Replacement_writexml - - def Cleanup(self): - if self.write_data: - xml.dom.minidom._write_data = self.write_data - xml.dom.minidom.Element.writexml = self.writexml - self.write_data = None - - def __del__(self): - self.Cleanup() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/samples/samples b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/samples/samples deleted file mode 100755 index 804b6189..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/samples/samples +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/python - -# Copyright (c) 2009 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import os.path -import shutil -import sys - - -gyps = [ - 'app/app.gyp', - 'base/base.gyp', - 'build/temp_gyp/googleurl.gyp', - 'build/all.gyp', - 'build/common.gypi', - 'build/external_code.gypi', - 'chrome/test/security_tests/security_tests.gyp', - 'chrome/third_party/hunspell/hunspell.gyp', - 'chrome/chrome.gyp', - 'media/media.gyp', - 'net/net.gyp', - 'printing/printing.gyp', - 'sdch/sdch.gyp', - 'skia/skia.gyp', - 'testing/gmock.gyp', - 'testing/gtest.gyp', - 'third_party/bzip2/bzip2.gyp', - 'third_party/icu38/icu38.gyp', - 'third_party/libevent/libevent.gyp', - 'third_party/libjpeg/libjpeg.gyp', - 'third_party/libpng/libpng.gyp', - 'third_party/libxml/libxml.gyp', - 'third_party/libxslt/libxslt.gyp', - 'third_party/lzma_sdk/lzma_sdk.gyp', - 'third_party/modp_b64/modp_b64.gyp', - 'third_party/npapi/npapi.gyp', - 'third_party/sqlite/sqlite.gyp', - 'third_party/zlib/zlib.gyp', - 'v8/tools/gyp/v8.gyp', - 'webkit/activex_shim/activex_shim.gyp', - 'webkit/activex_shim_dll/activex_shim_dll.gyp', - 'webkit/build/action_csspropertynames.py', - 'webkit/build/action_cssvaluekeywords.py', - 'webkit/build/action_jsconfig.py', - 'webkit/build/action_makenames.py', - 'webkit/build/action_maketokenizer.py', - 'webkit/build/action_useragentstylesheets.py', - 'webkit/build/rule_binding.py', - 'webkit/build/rule_bison.py', - 'webkit/build/rule_gperf.py', - 'webkit/tools/test_shell/test_shell.gyp', - 'webkit/webkit.gyp', -] - - -def Main(argv): - if len(argv) != 3 or argv[1] not in ['push', 'pull']: - print 'Usage: %s push/pull PATH_TO_CHROME' % argv[0] - return 1 - - path_to_chrome = argv[2] - - for g in gyps: - chrome_file = os.path.join(path_to_chrome, g) - local_file = os.path.join(os.path.dirname(argv[0]), os.path.split(g)[1]) - if argv[1] == 'push': - print 'Copying %s to %s' % (local_file, chrome_file) - shutil.copyfile(local_file, chrome_file) - elif argv[1] == 'pull': - print 'Copying %s to %s' % (chrome_file, local_file) - shutil.copyfile(chrome_file, local_file) - else: - assert False - - return 0 - - -if __name__ == '__main__': - sys.exit(Main(sys.argv)) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/samples/samples.bat b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/samples/samples.bat deleted file mode 100644 index 56832556..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/samples/samples.bat +++ /dev/null @@ -1,5 +0,0 @@ -@rem Copyright (c) 2009 Google Inc. All rights reserved. -@rem Use of this source code is governed by a BSD-style license that can be -@rem found in the LICENSE file. - -@python %~dp0/samples %* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/setup.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/setup.py deleted file mode 100755 index 75a42558..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/setup.py +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2009 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -from setuptools import setup - -setup( - name='gyp', - version='0.1', - description='Generate Your Projects', - author='Chromium Authors', - author_email='chromium-dev@googlegroups.com', - url='http://code.google.com/p/gyp', - package_dir = {'': 'pylib'}, - packages=['gyp', 'gyp.generator'], - entry_points = {'console_scripts': ['gyp=gyp:script_main'] } -) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/README b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/README deleted file mode 100644 index 712e4efb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/README +++ /dev/null @@ -1,15 +0,0 @@ -pretty_vcproj: - Usage: pretty_vcproj.py "c:\path\to\vcproj.vcproj" [key1=value1] [key2=value2] - - They key/value pair are used to resolve vsprops name. - - For example, if I want to diff the base.vcproj project: - - pretty_vcproj.py z:\dev\src-chrome\src\base\build\base.vcproj "$(SolutionDir)=z:\dev\src-chrome\src\chrome\\" "$(CHROMIUM_BUILD)=" "$(CHROME_BUILD_TYPE)=" > orignal.txt - pretty_vcproj.py z:\dev\src-chrome\src\base\base_gyp.vcproj "$(SolutionDir)=z:\dev\src-chrome\src\chrome\\" "$(CHROMIUM_BUILD)=" "$(CHROME_BUILD_TYPE)=" > gyp.txt - - And you can use your favorite diff tool to see the changes. - - Note: In the case of base.vcproj, the original vcproj is one level up the generated one. - I suggest you do a search and replace for '"..\' and replace it with '"' in original.txt - before you perform the diff. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/README b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/README deleted file mode 100644 index 2492a2c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/README +++ /dev/null @@ -1,5 +0,0 @@ -Specifications contains syntax formatters for Xcode 3. These do not appear to be supported yet on Xcode 4. To use these with Xcode 3 please install both the gyp.pbfilespec and gyp.xclangspec files in - -~/Library/Application Support/Developer/Shared/Xcode/Specifications/ - -and restart Xcode. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec deleted file mode 100644 index 85e2e268..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec +++ /dev/null @@ -1,27 +0,0 @@ -/* - gyp.pbfilespec - GYP source file spec for Xcode 3 - - There is not much documentation available regarding the format - of .pbfilespec files. As a starting point, see for instance the - outdated documentation at: - http://maxao.free.fr/xcode-plugin-interface/specifications.html - and the files in: - /Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/ - - Place this file in directory: - ~/Library/Application Support/Developer/Shared/Xcode/Specifications/ -*/ - -( - { - Identifier = sourcecode.gyp; - BasedOn = sourcecode; - Name = "GYP Files"; - Extensions = ("gyp", "gypi"); - MIMETypes = ("text/gyp"); - Language = "xcode.lang.gyp"; - IsTextFile = YES; - IsSourceFile = YES; - } -) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec deleted file mode 100644 index 3b3506d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec +++ /dev/null @@ -1,226 +0,0 @@ -/* - Copyright (c) 2011 Google Inc. All rights reserved. - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. - - gyp.xclangspec - GYP language specification for Xcode 3 - - There is not much documentation available regarding the format - of .xclangspec files. As a starting point, see for instance the - outdated documentation at: - http://maxao.free.fr/xcode-plugin-interface/specifications.html - and the files in: - /Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/ - - Place this file in directory: - ~/Library/Application Support/Developer/Shared/Xcode/Specifications/ -*/ - -( - - { - Identifier = "xcode.lang.gyp.keyword"; - Syntax = { - Words = ( - "and", - "or", - " (caar gyp-parse-history) target-point) - (setq gyp-parse-history (cdr gyp-parse-history)))) - -(defun gyp-parse-point () - "The point of the last parse state added by gyp-parse-to." - (caar gyp-parse-history)) - -(defun gyp-parse-sections () - "A list of section symbols holding at the last parse state point." - (cdar gyp-parse-history)) - -(defun gyp-inside-dictionary-p () - "Predicate returning true if the parser is inside a dictionary." - (not (eq (cadar gyp-parse-history) 'list))) - -(defun gyp-add-parse-history (point sections) - "Add parse state SECTIONS to the parse history at POINT so that parsing can be - resumed instantly." - (while (>= (caar gyp-parse-history) point) - (setq gyp-parse-history (cdr gyp-parse-history))) - (setq gyp-parse-history (cons (cons point sections) gyp-parse-history))) - -(defun gyp-parse-to (target-point) - "Parses from (point) to TARGET-POINT adding the parse state information to - gyp-parse-state-history. Parsing stops if TARGET-POINT is reached or if a - string literal has been parsed. Returns nil if no further parsing can be - done, otherwise returns the position of the start of a parsed string, leaving - the point at the end of the string." - (let ((parsing t) - string-start) - (while parsing - (setq string-start nil) - ;; Parse up to a character that starts a sexp, or if the nesting - ;; level decreases. - (let ((state (parse-partial-sexp (gyp-parse-point) - target-point - -1 - t)) - (sections (gyp-parse-sections))) - (if (= (nth 0 state) -1) - (setq sections (cdr sections)) ; pop out a level - (cond ((looking-at-p "['\"]") ; a string - (setq string-start (point)) - (goto-char (scan-sexps (point) 1)) - (if (gyp-inside-dictionary-p) - ;; Look for sections inside a dictionary - (let ((section (gyp-section-name - (buffer-substring-no-properties - (+ 1 string-start) - (- (point) 1))))) - (setq sections (cons section (cdr sections))))) - ;; Stop after the string so it can be fontified. - (setq target-point (point))) - ((looking-at-p "{") - ;; Inside a dictionary. Increase nesting. - (forward-char 1) - (setq sections (cons 'unknown sections))) - ((looking-at-p "\\[") - ;; Inside a list. Increase nesting - (forward-char 1) - (setq sections (cons 'list sections))) - ((not (eobp)) - ;; other - (forward-char 1)))) - (gyp-add-parse-history (point) sections) - (setq parsing (< (point) target-point)))) - string-start)) - -(defun gyp-section-at-point () - "Transform the last parse state, which is a list of nested sections and return - the section symbol that should be used to determine font-lock information for - the string. Can return nil indicating the string should not have any attached - section." - (let ((sections (gyp-parse-sections))) - (cond - ((eq (car sections) 'conditions) - ;; conditions can occur in a variables section, but we still want to - ;; highlight it as a keyword. - nil) - ((and (eq (car sections) 'list) - (eq (cadr sections) 'list)) - ;; conditions and sources can have items in [[ ]] - (caddr sections)) - (t (cadr sections))))) - -(defun gyp-section-match (limit) - "Parse from (point) to LIMIT returning by means of match data what was - matched. The group of the match indicates what style font-lock should apply. - See also `gyp-add-font-lock-keywords'." - (gyp-invalidate-parse-states-after (point)) - (let ((group nil) - (string-start t)) - (while (and (< (point) limit) - (not group) - string-start) - (setq string-start (gyp-parse-to limit)) - (if string-start - (setq group (case (gyp-section-at-point) - ('dependencies 1) - ('variables 2) - ('conditions 2) - ('sources 3) - ('defines 4) - (nil nil))))) - (if group - (progn - ;; Set the match data to indicate to the font-lock mechanism the - ;; highlighting to be performed. - (set-match-data (append (list string-start (point)) - (make-list (* (1- group) 2) nil) - (list (1+ string-start) (1- (point))))) - t)))) - -;;; Please see http://code.google.com/p/gyp/wiki/GypLanguageSpecification for -;;; canonical list of keywords. -(defun gyp-add-font-lock-keywords () - "Add gyp-mode keywords to font-lock mechanism." - ;; TODO(jknotten): Move all the keyword highlighting into gyp-section-match - ;; so that we can do the font-locking in a single font-lock pass. - (font-lock-add-keywords - nil - (list - ;; Top-level keywords - (list (concat "['\"]\\(" - (regexp-opt (list "action" "action_name" "actions" "cflags" - "cflags_cc" "conditions" "configurations" - "copies" "defines" "dependencies" "destination" - "direct_dependent_settings" - "export_dependent_settings" "extension" "files" - "include_dirs" "includes" "inputs" "ldflags" "libraries" - "link_settings" "mac_bundle" "message" - "msvs_external_rule" "outputs" "product_name" - "process_outputs_as_sources" "rules" "rule_name" - "sources" "suppress_wildcard" - "target_conditions" "target_defaults" - "target_defines" "target_name" "toolsets" - "targets" "type" "variables" "xcode_settings")) - "[!/+=]?\\)") 1 'font-lock-keyword-face t) - ;; Type of target - (list (concat "['\"]\\(" - (regexp-opt (list "loadable_module" "static_library" - "shared_library" "executable" "none")) - "\\)") 1 'font-lock-type-face t) - (list "\\(?:target\\|action\\)_name['\"]\\s-*:\\s-*['\"]\\([^ '\"]*\\)" 1 - 'font-lock-function-name-face t) - (list 'gyp-section-match - (list 1 'font-lock-function-name-face t t) ; dependencies - (list 2 'font-lock-variable-name-face t t) ; variables, conditions - (list 3 'font-lock-constant-face t t) ; sources - (list 4 'font-lock-preprocessor-face t t)) ; preprocessor - ;; Variable expansion - (list "<@?(\\([^\n )]+\\))" 1 'font-lock-variable-name-face t) - ;; Command expansion - (list " "%s"' % (src, dst) - - print '}' - - -def main(): - if len(sys.argv) < 2: - print >>sys.stderr, __doc__ - print >>sys.stderr - print >>sys.stderr, 'usage: %s target1 target2...' % (sys.argv[0]) - return 1 - - edges = LoadEdges('dump.json', sys.argv[1:]) - - WriteGraph(edges) - return 0 - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py deleted file mode 100755 index c51d3587..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py +++ /dev/null @@ -1,155 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Pretty-prints the contents of a GYP file.""" - -import sys -import re - - -# Regex to remove comments when we're counting braces. -COMMENT_RE = re.compile(r'\s*#.*') - -# Regex to remove quoted strings when we're counting braces. -# It takes into account quoted quotes, and makes sure that the quotes match. -# NOTE: It does not handle quotes that span more than one line, or -# cases where an escaped quote is preceeded by an escaped backslash. -QUOTE_RE_STR = r'(?P[\'"])(.*?)(? 0: - after = True - - # This catches the special case of a closing brace having something - # other than just whitespace ahead of it -- we don't want to - # unindent that until after this line is printed so it stays with - # the previous indentation level. - if cnt < 0 and closing_prefix_re.match(stripline): - after = True - return (cnt, after) - - -def prettyprint_input(lines): - """Does the main work of indenting the input based on the brace counts.""" - indent = 0 - basic_offset = 2 - last_line = "" - for line in lines: - if COMMENT_RE.match(line): - print line - else: - line = line.strip('\r\n\t ') # Otherwise doesn't strip \r on Unix. - if len(line) > 0: - (brace_diff, after) = count_braces(line) - if brace_diff != 0: - if after: - print " " * (basic_offset * indent) + line - indent += brace_diff - else: - indent += brace_diff - print " " * (basic_offset * indent) + line - else: - print " " * (basic_offset * indent) + line - else: - print "" - last_line = line - - -def main(): - if len(sys.argv) > 1: - data = open(sys.argv[1]).read().splitlines() - else: - data = sys.stdin.read().splitlines() - # Split up the double braces. - lines = split_double_braces(data) - - # Indent and print the output. - prettyprint_input(lines) - return 0 - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py deleted file mode 100755 index ca8cf4ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py +++ /dev/null @@ -1,169 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Prints the information in a sln file in a diffable way. - - It first outputs each projects in alphabetical order with their - dependencies. - - Then it outputs a possible build order. -""" - -__author__ = 'nsylvain (Nicolas Sylvain)' - -import os -import re -import sys -import pretty_vcproj - -def BuildProject(project, built, projects, deps): - # if all dependencies are done, we can build it, otherwise we try to build the - # dependency. - # This is not infinite-recursion proof. - for dep in deps[project]: - if dep not in built: - BuildProject(dep, built, projects, deps) - print project - built.append(project) - -def ParseSolution(solution_file): - # All projects, their clsid and paths. - projects = dict() - - # A list of dependencies associated with a project. - dependencies = dict() - - # Regular expressions that matches the SLN format. - # The first line of a project definition. - begin_project = re.compile(r'^Project\("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942' - r'}"\) = "(.*)", "(.*)", "(.*)"$') - # The last line of a project definition. - end_project = re.compile('^EndProject$') - # The first line of a dependency list. - begin_dep = re.compile( - r'ProjectSection\(ProjectDependencies\) = postProject$') - # The last line of a dependency list. - end_dep = re.compile('EndProjectSection$') - # A line describing a dependency. - dep_line = re.compile(' *({.*}) = ({.*})$') - - in_deps = False - solution = open(solution_file) - for line in solution: - results = begin_project.search(line) - if results: - # Hack to remove icu because the diff is too different. - if results.group(1).find('icu') != -1: - continue - # We remove "_gyp" from the names because it helps to diff them. - current_project = results.group(1).replace('_gyp', '') - projects[current_project] = [results.group(2).replace('_gyp', ''), - results.group(3), - results.group(2)] - dependencies[current_project] = [] - continue - - results = end_project.search(line) - if results: - current_project = None - continue - - results = begin_dep.search(line) - if results: - in_deps = True - continue - - results = end_dep.search(line) - if results: - in_deps = False - continue - - results = dep_line.search(line) - if results and in_deps and current_project: - dependencies[current_project].append(results.group(1)) - continue - - # Change all dependencies clsid to name instead. - for project in dependencies: - # For each dependencies in this project - new_dep_array = [] - for dep in dependencies[project]: - # Look for the project name matching this cldis - for project_info in projects: - if projects[project_info][1] == dep: - new_dep_array.append(project_info) - dependencies[project] = sorted(new_dep_array) - - return (projects, dependencies) - -def PrintDependencies(projects, deps): - print "---------------------------------------" - print "Dependencies for all projects" - print "---------------------------------------" - print "-- --" - - for (project, dep_list) in sorted(deps.items()): - print "Project : %s" % project - print "Path : %s" % projects[project][0] - if dep_list: - for dep in dep_list: - print " - %s" % dep - print "" - - print "-- --" - -def PrintBuildOrder(projects, deps): - print "---------------------------------------" - print "Build order " - print "---------------------------------------" - print "-- --" - - built = [] - for (project, _) in sorted(deps.items()): - if project not in built: - BuildProject(project, built, projects, deps) - - print "-- --" - -def PrintVCProj(projects): - - for project in projects: - print "-------------------------------------" - print "-------------------------------------" - print project - print project - print project - print "-------------------------------------" - print "-------------------------------------" - - project_path = os.path.abspath(os.path.join(os.path.dirname(sys.argv[1]), - projects[project][2])) - - pretty = pretty_vcproj - argv = [ '', - project_path, - '$(SolutionDir)=%s\\' % os.path.dirname(sys.argv[1]), - ] - argv.extend(sys.argv[3:]) - pretty.main(argv) - -def main(): - # check if we have exactly 1 parameter. - if len(sys.argv) < 2: - print 'Usage: %s "c:\\path\\to\\project.sln"' % sys.argv[0] - return 1 - - (projects, deps) = ParseSolution(sys.argv[1]) - PrintDependencies(projects, deps) - PrintBuildOrder(projects, deps) - - if '--recursive' in sys.argv: - PrintVCProj(projects) - return 0 - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py deleted file mode 100755 index 6099bd7c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py +++ /dev/null @@ -1,329 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Make the format of a vcproj really pretty. - - This script normalize and sort an xml. It also fetches all the properties - inside linked vsprops and include them explicitly in the vcproj. - - It outputs the resulting xml to stdout. -""" - -__author__ = 'nsylvain (Nicolas Sylvain)' - -import os -import sys - -from xml.dom.minidom import parse -from xml.dom.minidom import Node - -REPLACEMENTS = dict() -ARGUMENTS = None - - -class CmpTuple(object): - """Compare function between 2 tuple.""" - def __call__(self, x, y): - return cmp(x[0], y[0]) - - -class CmpNode(object): - """Compare function between 2 xml nodes.""" - - def __call__(self, x, y): - def get_string(node): - node_string = "node" - node_string += node.nodeName - if node.nodeValue: - node_string += node.nodeValue - - if node.attributes: - # We first sort by name, if present. - node_string += node.getAttribute("Name") - - all_nodes = [] - for (name, value) in node.attributes.items(): - all_nodes.append((name, value)) - - all_nodes.sort(CmpTuple()) - for (name, value) in all_nodes: - node_string += name - node_string += value - - return node_string - - return cmp(get_string(x), get_string(y)) - - -def PrettyPrintNode(node, indent=0): - if node.nodeType == Node.TEXT_NODE: - if node.data.strip(): - print '%s%s' % (' '*indent, node.data.strip()) - return - - if node.childNodes: - node.normalize() - # Get the number of attributes - attr_count = 0 - if node.attributes: - attr_count = node.attributes.length - - # Print the main tag - if attr_count == 0: - print '%s<%s>' % (' '*indent, node.nodeName) - else: - print '%s<%s' % (' '*indent, node.nodeName) - - all_attributes = [] - for (name, value) in node.attributes.items(): - all_attributes.append((name, value)) - all_attributes.sort(CmpTuple()) - for (name, value) in all_attributes: - print '%s %s="%s"' % (' '*indent, name, value) - print '%s>' % (' '*indent) - if node.nodeValue: - print '%s %s' % (' '*indent, node.nodeValue) - - for sub_node in node.childNodes: - PrettyPrintNode(sub_node, indent=indent+2) - print '%s' % (' '*indent, node.nodeName) - - -def FlattenFilter(node): - """Returns a list of all the node and sub nodes.""" - node_list = [] - - if (node.attributes and - node.getAttribute('Name') == '_excluded_files'): - # We don't add the "_excluded_files" filter. - return [] - - for current in node.childNodes: - if current.nodeName == 'Filter': - node_list.extend(FlattenFilter(current)) - else: - node_list.append(current) - - return node_list - - -def FixFilenames(filenames, current_directory): - new_list = [] - for filename in filenames: - if filename: - for key in REPLACEMENTS: - filename = filename.replace(key, REPLACEMENTS[key]) - os.chdir(current_directory) - filename = filename.strip('"\' ') - if filename.startswith('$'): - new_list.append(filename) - else: - new_list.append(os.path.abspath(filename)) - return new_list - - -def AbsoluteNode(node): - """Makes all the properties we know about in this node absolute.""" - if node.attributes: - for (name, value) in node.attributes.items(): - if name in ['InheritedPropertySheets', 'RelativePath', - 'AdditionalIncludeDirectories', - 'IntermediateDirectory', 'OutputDirectory', - 'AdditionalLibraryDirectories']: - # We want to fix up these paths - path_list = value.split(';') - new_list = FixFilenames(path_list, os.path.dirname(ARGUMENTS[1])) - node.setAttribute(name, ';'.join(new_list)) - if not value: - node.removeAttribute(name) - - -def CleanupVcproj(node): - """For each sub node, we call recursively this function.""" - for sub_node in node.childNodes: - AbsoluteNode(sub_node) - CleanupVcproj(sub_node) - - # Normalize the node, and remove all extranous whitespaces. - for sub_node in node.childNodes: - if sub_node.nodeType == Node.TEXT_NODE: - sub_node.data = sub_node.data.replace("\r", "") - sub_node.data = sub_node.data.replace("\n", "") - sub_node.data = sub_node.data.rstrip() - - # Fix all the semicolon separated attributes to be sorted, and we also - # remove the dups. - if node.attributes: - for (name, value) in node.attributes.items(): - sorted_list = sorted(value.split(';')) - unique_list = [] - for i in sorted_list: - if not unique_list.count(i): - unique_list.append(i) - node.setAttribute(name, ';'.join(unique_list)) - if not value: - node.removeAttribute(name) - - if node.childNodes: - node.normalize() - - # For each node, take a copy, and remove it from the list. - node_array = [] - while node.childNodes and node.childNodes[0]: - # Take a copy of the node and remove it from the list. - current = node.childNodes[0] - node.removeChild(current) - - # If the child is a filter, we want to append all its children - # to this same list. - if current.nodeName == 'Filter': - node_array.extend(FlattenFilter(current)) - else: - node_array.append(current) - - - # Sort the list. - node_array.sort(CmpNode()) - - # Insert the nodes in the correct order. - for new_node in node_array: - # But don't append empty tool node. - if new_node.nodeName == 'Tool': - if new_node.attributes and new_node.attributes.length == 1: - # This one was empty. - continue - if new_node.nodeName == 'UserMacro': - continue - node.appendChild(new_node) - - -def GetConfiguationNodes(vcproj): - #TODO(nsylvain): Find a better way to navigate the xml. - nodes = [] - for node in vcproj.childNodes: - if node.nodeName == "Configurations": - for sub_node in node.childNodes: - if sub_node.nodeName == "Configuration": - nodes.append(sub_node) - - return nodes - - -def GetChildrenVsprops(filename): - dom = parse(filename) - if dom.documentElement.attributes: - vsprops = dom.documentElement.getAttribute('InheritedPropertySheets') - return FixFilenames(vsprops.split(';'), os.path.dirname(filename)) - return [] - -def SeekToNode(node1, child2): - # A text node does not have properties. - if child2.nodeType == Node.TEXT_NODE: - return None - - # Get the name of the current node. - current_name = child2.getAttribute("Name") - if not current_name: - # There is no name. We don't know how to merge. - return None - - # Look through all the nodes to find a match. - for sub_node in node1.childNodes: - if sub_node.nodeName == child2.nodeName: - name = sub_node.getAttribute("Name") - if name == current_name: - return sub_node - - # No match. We give up. - return None - - -def MergeAttributes(node1, node2): - # No attributes to merge? - if not node2.attributes: - return - - for (name, value2) in node2.attributes.items(): - # Don't merge the 'Name' attribute. - if name == 'Name': - continue - value1 = node1.getAttribute(name) - if value1: - # The attribute exist in the main node. If it's equal, we leave it - # untouched, otherwise we concatenate it. - if value1 != value2: - node1.setAttribute(name, ';'.join([value1, value2])) - else: - # The attribute does nto exist in the main node. We append this one. - node1.setAttribute(name, value2) - - # If the attribute was a property sheet attributes, we remove it, since - # they are useless. - if name == 'InheritedPropertySheets': - node1.removeAttribute(name) - - -def MergeProperties(node1, node2): - MergeAttributes(node1, node2) - for child2 in node2.childNodes: - child1 = SeekToNode(node1, child2) - if child1: - MergeProperties(child1, child2) - else: - node1.appendChild(child2.cloneNode(True)) - - -def main(argv): - """Main function of this vcproj prettifier.""" - global ARGUMENTS - ARGUMENTS = argv - - # check if we have exactly 1 parameter. - if len(argv) < 2: - print ('Usage: %s "c:\\path\\to\\vcproj.vcproj" [key1=value1] ' - '[key2=value2]' % argv[0]) - return 1 - - # Parse the keys - for i in range(2, len(argv)): - (key, value) = argv[i].split('=') - REPLACEMENTS[key] = value - - # Open the vcproj and parse the xml. - dom = parse(argv[1]) - - # First thing we need to do is find the Configuration Node and merge them - # with the vsprops they include. - for configuration_node in GetConfiguationNodes(dom.documentElement): - # Get the property sheets associated with this configuration. - vsprops = configuration_node.getAttribute('InheritedPropertySheets') - - # Fix the filenames to be absolute. - vsprops_list = FixFilenames(vsprops.strip().split(';'), - os.path.dirname(argv[1])) - - # Extend the list of vsprops with all vsprops contained in the current - # vsprops. - for current_vsprops in vsprops_list: - vsprops_list.extend(GetChildrenVsprops(current_vsprops)) - - # Now that we have all the vsprops, we need to merge them. - for current_vsprops in vsprops_list: - MergeProperties(configuration_node, - parse(current_vsprops).documentElement) - - # Now that everything is merged, we need to cleanup the xml. - CleanupVcproj(dom.documentElement) - - # Finally, we use the prett xml function to print the vcproj back to the - # user. - #print dom.toprettyxml(newl="\n") - PrettyPrintNode(dom.documentElement) - return 0 - - -if __name__ == '__main__': - sys.exit(main(sys.argv)) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/build.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/build.js deleted file mode 100644 index 3a3edccf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/build.js +++ /dev/null @@ -1,284 +0,0 @@ - -module.exports = exports = build - -/** - * Module dependencies. - */ - -var fs = require('graceful-fs') - , rm = require('rimraf') - , path = require('path') - , glob = require('glob') - , log = require('npmlog') - , which = require('which') - , mkdirp = require('mkdirp') - , exec = require('child_process').exec - , processRelease = require('./process-release') - , win = process.platform == 'win32' - -exports.usage = 'Invokes `' + (win ? 'msbuild' : 'make') + '` and builds the module' - -function build (gyp, argv, callback) { - var platformMake = 'make' - if (process.platform === 'aix') { - platformMake = 'gmake' - } else if (process.platform.indexOf('bsd') !== -1) { - platformMake = 'gmake' - } - - var release = processRelease(argv, gyp, process.version, process.release) - , makeCommand = gyp.opts.make || process.env.MAKE || platformMake - , command = win ? 'msbuild' : makeCommand - , buildDir = path.resolve('build') - , configPath = path.resolve(buildDir, 'config.gypi') - , jobs = gyp.opts.jobs || process.env.JOBS - , buildType - , config - , arch - , nodeDir - , copyDevLib - - loadConfigGypi() - - /** - * Load the "config.gypi" file that was generated during "configure". - */ - - function loadConfigGypi () { - fs.readFile(configPath, 'utf8', function (err, data) { - if (err) { - if (err.code == 'ENOENT') { - callback(new Error('You must run `node-gyp configure` first!')) - } else { - callback(err) - } - return - } - config = JSON.parse(data.replace(/\#.+\n/, '')) - - // get the 'arch', 'buildType', and 'nodeDir' vars from the config - buildType = config.target_defaults.default_configuration - arch = config.variables.target_arch - nodeDir = config.variables.nodedir - copyDevLib = config.variables.copy_dev_lib == 'true' - - if ('debug' in gyp.opts) { - buildType = gyp.opts.debug ? 'Debug' : 'Release' - } - if (!buildType) { - buildType = 'Release' - } - - log.verbose('build type', buildType) - log.verbose('architecture', arch) - log.verbose('node dev dir', nodeDir) - - if (win) { - findSolutionFile() - } else { - doWhich() - } - }) - } - - /** - * On Windows, find the first build/*.sln file. - */ - - function findSolutionFile () { - glob('build/*.sln', function (err, files) { - if (err) return callback(err) - if (files.length === 0) { - return callback(new Error('Could not find *.sln file. Did you run "configure"?')) - } - guessedSolution = files[0] - log.verbose('found first Solution file', guessedSolution) - doWhich() - }) - } - - /** - * Uses node-which to locate the msbuild / make executable. - */ - - function doWhich () { - // First make sure we have the build command in the PATH - which(command, function (err, execPath) { - if (err) { - if (win && /not found/.test(err.message)) { - // On windows and no 'msbuild' found. Let's guess where it is - findMsbuild() - } else { - // Some other error or 'make' not found on Unix, report that to the user - callback(err) - } - return - } - log.verbose('`which` succeeded for `' + command + '`', execPath) - copyNodeLib() - }) - } - - /** - * Search for the location of "msbuild.exe" file on Windows. - */ - - function findMsbuild () { - log.verbose('could not find "msbuild.exe" in PATH - finding location in registry') - var notfoundErr = new Error('Can\'t find "msbuild.exe". Do you have Microsoft Visual Studio C++ 2008+ installed?') - var cmd = 'reg query "HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions" /s' - if (process.arch !== 'ia32') - cmd += ' /reg:32' - exec(cmd, function (err, stdout, stderr) { - var reVers = /ToolsVersions\\([^\\]+)$/i - , rePath = /\r\n[ \t]+MSBuildToolsPath[ \t]+REG_SZ[ \t]+([^\r]+)/i - , msbuilds = [] - , r - , msbuildPath - if (err) { - return callback(notfoundErr) - } - stdout.split('\r\n\r\n').forEach(function(l) { - if (!l) return - l = l.trim() - if (r = reVers.exec(l.substring(0, l.indexOf('\r\n')))) { - var ver = parseFloat(r[1], 10) - if (ver >= 3.5) { - if (r = rePath.exec(l)) { - msbuilds.push({ - version: ver, - path: r[1] - }) - } - } - } - }) - msbuilds.sort(function (x, y) { - return (x.version < y.version ? -1 : 1) - }) - ;(function verifyMsbuild () { - if (!msbuilds.length) return callback(notfoundErr) - msbuildPath = path.resolve(msbuilds.pop().path, 'msbuild.exe') - fs.stat(msbuildPath, function (err, stat) { - if (err) { - if (err.code == 'ENOENT') { - if (msbuilds.length) { - return verifyMsbuild() - } else { - callback(notfoundErr) - } - } else { - callback(err) - } - return - } - command = msbuildPath - copyNodeLib() - }) - })() - }) - } - - /** - * Copies the node.lib file for the current target architecture into the - * current proper dev dir location. - */ - - function copyNodeLib () { - if (!win || !copyDevLib) return doBuild() - - var buildDir = path.resolve(nodeDir, buildType) - , archNodeLibPath = path.resolve(nodeDir, arch, release.name + '.lib') - , buildNodeLibPath = path.resolve(buildDir, release.name + '.lib') - - mkdirp(buildDir, function (err, isNew) { - if (err) return callback(err) - log.verbose('"' + buildType + '" dir needed to be created?', isNew) - var rs = fs.createReadStream(archNodeLibPath) - , ws = fs.createWriteStream(buildNodeLibPath) - log.verbose('copying "' + release.name + '.lib" for ' + arch, buildNodeLibPath) - rs.pipe(ws) - rs.on('error', callback) - ws.on('error', callback) - rs.on('end', doBuild) - }) - } - - /** - * Actually spawn the process and compile the module. - */ - - function doBuild () { - - // Enable Verbose build - var verbose = log.levels[log.level] <= log.levels.verbose - if (!win && verbose) { - argv.push('V=1') - } - if (win && !verbose) { - argv.push('/clp:Verbosity=minimal') - } - - if (win) { - // Turn off the Microsoft logo on Windows - argv.push('/nologo') - } - - // Specify the build type, Release by default - if (win) { - var p = arch === 'x64' ? 'x64' : 'Win32' - argv.push('/p:Configuration=' + buildType + ';Platform=' + p) - if (jobs) { - var j = parseInt(jobs, 10) - if (!isNaN(j) && j > 0) { - argv.push('/m:' + j) - } else if (jobs.toUpperCase() === 'MAX') { - argv.push('/m:' + require('os').cpus().length) - } - } - } else { - argv.push('BUILDTYPE=' + buildType) - // Invoke the Makefile in the 'build' dir. - argv.push('-C') - argv.push('build') - if (jobs) { - var j = parseInt(jobs, 10) - if (!isNaN(j) && j > 0) { - argv.push('--jobs') - argv.push(j) - } else if (jobs.toUpperCase() === 'MAX') { - argv.push('--jobs') - argv.push(require('os').cpus().length) - } - } - } - - if (win) { - // did the user specify their own .sln file? - var hasSln = argv.some(function (arg) { - return path.extname(arg) == '.sln' - }) - if (!hasSln) { - argv.unshift(gyp.opts.solution || guessedSolution) - } - } - - var proc = gyp.spawn(command, argv) - proc.on('exit', onExit) - } - - /** - * Invoked after the make/msbuild command exits. - */ - - function onExit (code, signal) { - if (code !== 0) { - return callback(new Error('`' + command + '` failed with exit code: ' + code)) - } - if (signal) { - return callback(new Error('`' + command + '` got signal: ' + signal)) - } - callback() - } - -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/clean.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/clean.js deleted file mode 100644 index e69164d4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/clean.js +++ /dev/null @@ -1,22 +0,0 @@ - -module.exports = exports = clean - -exports.usage = 'Removes any generated build files and the "out" dir' - -/** - * Module dependencies. - */ - -var rm = require('rimraf') -var log = require('npmlog') - - -function clean (gyp, argv, callback) { - - // Remove the 'build' dir - var buildDir = 'build' - - log.verbose('clean', 'removing "%s" directory', buildDir) - rm(buildDir, callback) - -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/configure.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/configure.js deleted file mode 100644 index 4e065296..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/configure.js +++ /dev/null @@ -1,410 +0,0 @@ -module.exports = exports = configure -module.exports.test = { findPython: findPython } - -/** - * Module dependencies. - */ - -var fs = require('graceful-fs') - , path = require('path') - , glob = require('glob') - , log = require('npmlog') - , osenv = require('osenv') - , which = require('which') - , semver = require('semver') - , mkdirp = require('mkdirp') - , cp = require('child_process') - , PathArray = require('path-array') - , extend = require('util')._extend - , processRelease = require('./process-release') - , spawn = cp.spawn - , execFile = cp.execFile - , win = process.platform == 'win32' - , findNodeDirectory = require('./find-node-directory') - -exports.usage = 'Generates ' + (win ? 'MSVC project files' : 'a Makefile') + ' for the current module' - -function configure (gyp, argv, callback) { - - var python = gyp.opts.python || process.env.PYTHON || 'python2' - , buildDir = path.resolve('build') - , configNames = [ 'config.gypi', 'common.gypi' ] - , configs = [] - , nodeDir - , release = processRelease(argv, gyp, process.version, process.release) - - findPython(python, function (err, found) { - if (err) { - callback(err) - } else { - python = found - getNodeDir() - } - }) - - function getNodeDir () { - - // 'python' should be set by now - process.env.PYTHON = python - - if (gyp.opts.nodedir) { - // --nodedir was specified. use that for the dev files - nodeDir = gyp.opts.nodedir.replace(/^~/, osenv.home()) - - log.verbose('get node dir', 'compiling against specified --nodedir dev files: %s', nodeDir) - createBuildDir() - - } else { - // if no --nodedir specified, ensure node dependencies are installed - if ('v' + release.version !== process.version) { - // if --target was given, then determine a target version to compile for - log.verbose('get node dir', 'compiling against --target node version: %s', release.version) - } else { - // if no --target was specified then use the current host node version - log.verbose('get node dir', 'no --target version specified, falling back to host node version: %s', release.version) - } - - if (!release.semver) { - // could not parse the version string with semver - return callback(new Error('Invalid version number: ' + release.version)) - } - - // ensure that the target node version's dev files are installed - gyp.opts.ensure = true - gyp.commands.install([ release.version ], function (err, version) { - if (err) return callback(err) - log.verbose('get node dir', 'target node version installed:', release.versionDir) - nodeDir = path.resolve(gyp.devDir, release.versionDir) - createBuildDir() - }) - } - } - - function createBuildDir () { - log.verbose('build dir', 'attempting to create "build" dir: %s', buildDir) - mkdirp(buildDir, function (err, isNew) { - if (err) return callback(err) - log.verbose('build dir', '"build" dir needed to be created?', isNew) - createConfigFile() - }) - } - - function createConfigFile (err) { - if (err) return callback(err) - - var configFilename = 'config.gypi' - var configPath = path.resolve(buildDir, configFilename) - - log.verbose('build/' + configFilename, 'creating config file') - - var config = process.config || {} - , defaults = config.target_defaults - , variables = config.variables - - // default "config.variables" - if (!variables) variables = config.variables = {} - - // default "config.defaults" - if (!defaults) defaults = config.target_defaults = {} - - // don't inherit the "defaults" from node's `process.config` object. - // doing so could cause problems in cases where the `node` executable was - // compiled on a different machine (with different lib/include paths) than - // the machine where the addon is being built to - defaults.cflags = [] - defaults.defines = [] - defaults.include_dirs = [] - defaults.libraries = [] - - // set the default_configuration prop - if ('debug' in gyp.opts) { - defaults.default_configuration = gyp.opts.debug ? 'Debug' : 'Release' - } - if (!defaults.default_configuration) { - defaults.default_configuration = 'Release' - } - - // set the target_arch variable - variables.target_arch = gyp.opts.arch || process.arch || 'ia32' - - // set the node development directory - variables.nodedir = nodeDir - - // don't copy dev libraries with nodedir option - variables.copy_dev_lib = !gyp.opts.nodedir - - // disable -T "thin" static archives by default - variables.standalone_static_library = gyp.opts.thin ? 0 : 1 - - // loop through the rest of the opts and add the unknown ones as variables. - // this allows for module-specific configure flags like: - // - // $ node-gyp configure --shared-libxml2 - Object.keys(gyp.opts).forEach(function (opt) { - if (opt === 'argv') return - if (opt in gyp.configDefs) return - variables[opt.replace(/-/g, '_')] = gyp.opts[opt] - }) - - // ensures that any boolean values from `process.config` get stringified - function boolsToString (k, v) { - if (typeof v === 'boolean') - return String(v) - return v - } - - log.silly('build/' + configFilename, config) - - // now write out the config.gypi file to the build/ dir - var prefix = '# Do not edit. File was generated by node-gyp\'s "configure" step' - , json = JSON.stringify(config, boolsToString, 2) - log.verbose('build/' + configFilename, 'writing out config file: %s', configPath) - configs.push(configPath) - fs.writeFile(configPath, [prefix, json, ''].join('\n'), findConfigs) - } - - function findConfigs (err) { - if (err) return callback(err) - var name = configNames.shift() - if (!name) return runGyp() - var fullPath = path.resolve(name) - log.verbose(name, 'checking for gypi file: %s', fullPath) - fs.stat(fullPath, function (err, stat) { - if (err) { - if (err.code == 'ENOENT') { - findConfigs() // check next gypi filename - } else { - callback(err) - } - } else { - log.verbose(name, 'found gypi file') - configs.push(fullPath) - findConfigs() - } - }) - } - - function runGyp (err) { - if (err) return callback(err) - - if (!~argv.indexOf('-f') && !~argv.indexOf('--format')) { - if (win) { - log.verbose('gyp', 'gyp format was not specified; forcing "msvs"') - // force the 'make' target for non-Windows - argv.push('-f', 'msvs') - } else { - log.verbose('gyp', 'gyp format was not specified; forcing "make"') - // force the 'make' target for non-Windows - argv.push('-f', 'make') - } - } - - function hasMsvsVersion () { - return argv.some(function (arg) { - return arg.indexOf('msvs_version') === 0 - }) - } - - if (win && !hasMsvsVersion()) { - if ('msvs_version' in gyp.opts) { - argv.push('-G', 'msvs_version=' + gyp.opts.msvs_version) - } else { - argv.push('-G', 'msvs_version=auto') - } - } - - // include all the ".gypi" files that were found - configs.forEach(function (config) { - argv.push('-I', config) - }) - - // for AIX we need to set up the path to the exp file - // which contains the symbols needed for linking. - // The file will either be in one of the following - // depending on whether it is an installed or - // development environment: - // - the include/node directory - // - the out/Release directory - // - the out/Debug directory - // - the root directory - var node_exp_file = '' - if (process.platform === 'aix') { - var node_root_dir = findNodeDirectory() - var candidates = ['include/node/node.exp', - 'out/Release/node.exp', - 'out/Debug/node.exp', - 'node.exp'] - for (var next = 0; next < candidates.length; next++) { - node_exp_file = path.resolve(node_root_dir, candidates[next]) - try { - fs.accessSync(node_exp_file, fs.R_OK) - // exp file found, stop looking - break - } catch (exception) { - // this candidate was not found or not readable, do nothing - } - } - } - - // this logic ported from the old `gyp_addon` python file - var gyp_script = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py') - var addon_gypi = path.resolve(__dirname, '..', 'addon.gypi') - var common_gypi = path.resolve(nodeDir, 'include/node/common.gypi') - fs.stat(common_gypi, function (err, stat) { - if (err) - common_gypi = path.resolve(nodeDir, 'common.gypi') - - var output_dir = 'build' - if (win) { - // Windows expects an absolute path - output_dir = buildDir - } - var nodeGypDir = path.resolve(__dirname, '..') - - argv.push('-I', addon_gypi) - argv.push('-I', common_gypi) - argv.push('-Dlibrary=shared_library') - argv.push('-Dvisibility=default') - argv.push('-Dnode_root_dir=' + nodeDir) - if (process.platform === 'aix') { - argv.push('-Dnode_exp_file=' + node_exp_file) - } - argv.push('-Dnode_gyp_dir=' + nodeGypDir) - argv.push('-Dnode_lib_file=' + release.name + '.lib') - argv.push('-Dmodule_root_dir=' + process.cwd()) - argv.push('--depth=.') - argv.push('--no-parallel') - - // tell gyp to write the Makefile/Solution files into output_dir - argv.push('--generator-output', output_dir) - - // tell make to write its output into the same dir - argv.push('-Goutput_dir=.') - - // enforce use of the "binding.gyp" file - argv.unshift('binding.gyp') - - // execute `gyp` from the current target nodedir - argv.unshift(gyp_script) - - // make sure python uses files that came with this particular node package - var pypath = new PathArray(process.env, 'PYTHONPATH') - pypath.unshift(path.join(__dirname, '..', 'gyp', 'pylib')) - - var cp = gyp.spawn(python, argv) - cp.on('exit', onCpExit) - }) - } - - /** - * Called when the `gyp` child process exits. - */ - - function onCpExit (code, signal) { - if (code !== 0) { - callback(new Error('`gyp` failed with exit code: ' + code)) - } else { - // we're done - callback() - } - } - -} - -function findPython (python, callback) { - checkPython() - - // Check if Python is in the $PATH - function checkPython () { - log.verbose('check python', 'checking for Python executable "%s" in the PATH', python) - which(python, function (err, execPath) { - if (err) { - log.verbose('`which` failed', python, err) - if (python === 'python2') { - python = 'python' - return checkPython() - } - if (win) { - guessPython() - } else { - failNoPython() - } - } else { - log.verbose('`which` succeeded', python, execPath) - // Found the `python` exceutable, and from now on we use it explicitly. - // This solves #667 and #750 (`execFile` won't run batch files - // (*.cmd, and *.bat)) - python = execPath - checkPythonVersion() - } - }) - } - - // Called on Windows when "python" isn't available in the current $PATH. - // We're gonna check if "%SystemDrive%\python27\python.exe" exists. - function guessPython () { - log.verbose('could not find "' + python + '". guessing location') - var rootDir = process.env.SystemDrive || 'C:\\' - if (rootDir[rootDir.length - 1] !== '\\') { - rootDir += '\\' - } - var pythonPath = path.resolve(rootDir, 'Python27', 'python.exe') - log.verbose('ensuring that file exists:', pythonPath) - fs.stat(pythonPath, function (err, stat) { - if (err) { - if (err.code == 'ENOENT') { - failNoPython() - } else { - callback(err) - } - return - } - python = pythonPath - checkPythonVersion() - }) - } - - function checkPythonVersion () { - var env = extend({}, process.env) - env.TERM = 'dumb' - - execFile(python, ['-c', 'import platform; print(platform.python_version());'], { env: env }, function (err, stdout) { - if (err) { - return callback(err) - } - log.verbose('check python version', '`%s -c "import platform; print(platform.python_version());"` returned: %j', python, stdout) - var version = stdout.trim() - if (~version.indexOf('+')) { - log.silly('stripping "+" sign(s) from version') - version = version.replace(/\+/g, '') - } - if (~version.indexOf('rc')) { - log.silly('stripping "rc" identifier from version') - version = version.replace(/rc(.*)$/ig, '') - } - var range = semver.Range('>=2.5.0 <3.0.0') - var valid = false - try { - valid = range.test(version) - } catch (e) { - log.silly('range.test() error', e) - } - if (valid) { - callback(null, python) - } else { - failPythonVersion(version) - } - }) - } - - function failNoPython () { - callback(new Error('Can\'t find Python executable "' + python + - '", you can set the PYTHON env variable.')) - } - - function failPythonVersion (badVersion) { - callback(new Error('Python executable "' + python + - '" is v' + badVersion + ', which is not supported by gyp.\n' + - 'You can pass the --python switch to point to Python >= v2.5.0 & < 3.0.0.')) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/find-node-directory.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/find-node-directory.js deleted file mode 100644 index 3aee8a10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/find-node-directory.js +++ /dev/null @@ -1,61 +0,0 @@ -var path = require('path') - , log = require('npmlog') - -function findNodeDirectory(scriptLocation, processObj) { - // set dirname and process if not passed in - // this facilitates regression tests - if (scriptLocation === undefined) { - scriptLocation = __dirname - } - if (processObj === undefined) { - processObj = process - } - - // Have a look to see what is above us, to try and work out where we are - npm_parent_directory = path.join(scriptLocation, '../../../..') - log.verbose('node-gyp root', 'npm_parent_directory is ' - + path.basename(npm_parent_directory)) - node_root_dir = "" - - log.verbose('node-gyp root', 'Finding node root directory') - if (path.basename(npm_parent_directory) === 'deps') { - // We are in a build directory where this script lives in - // deps/npm/node_modules/node-gyp/lib - node_root_dir = path.join(npm_parent_directory, '..') - log.verbose('node-gyp root', 'in build directory, root = ' - + node_root_dir) - } else if (path.basename(npm_parent_directory) === 'node_modules') { - // We are in a node install directory where this script lives in - // lib/node_modules/npm/node_modules/node-gyp/lib or - // node_modules/npm/node_modules/node-gyp/lib depending on the - // platform - if (processObj.platform === 'win32') { - node_root_dir = path.join(npm_parent_directory, '..') - } else { - node_root_dir = path.join(npm_parent_directory, '../..') - } - log.verbose('node-gyp root', 'in install directory, root = ' - + node_root_dir) - } else { - // We don't know where we are, try working it out from the location - // of the node binary - var node_dir = path.dirname(processObj.execPath) - var directory_up = path.basename(node_dir) - if (directory_up === 'bin') { - node_root_dir = path.join(node_dir, '..') - } else if (directory_up === 'Release' || directory_up === 'Debug') { - // If we are a recently built node, and the directory structure - // is that of a repository. If we are on Windows then we only need - // to go one level up, everything else, two - if (processObj.platform === 'win32') { - node_root_dir = path.join(node_dir, '..') - } else { - node_root_dir = path.join(node_dir, '../..') - } - } - // Else return the default blank, "". - } - return node_root_dir -} - -module.exports = findNodeDirectory diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/install.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/install.js deleted file mode 100644 index fa2e1c54..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/install.js +++ /dev/null @@ -1,469 +0,0 @@ - -module.exports = exports = install - -module.exports.test = { download: download, readCAFile: readCAFile } - -exports.usage = 'Install node development files for the specified node version.' - -/** - * Module dependencies. - */ - -var fs = require('graceful-fs') - , osenv = require('osenv') - , tar = require('tar') - , rm = require('rimraf') - , path = require('path') - , crypto = require('crypto') - , zlib = require('zlib') - , log = require('npmlog') - , semver = require('semver') - , fstream = require('fstream') - , request = require('request') - , minimatch = require('minimatch') - , mkdir = require('mkdirp') - , processRelease = require('./process-release') - , win = process.platform == 'win32' - -function install (gyp, argv, callback) { - - var release = processRelease(argv, gyp, process.version, process.release) - - // ensure no double-callbacks happen - function cb (err) { - if (cb.done) return - cb.done = true - if (err) { - log.warn('install', 'got an error, rolling back install') - // roll-back the install if anything went wrong - gyp.commands.remove([ release.versionDir ], function (err2) { - callback(err) - }) - } else { - callback(null, release.version) - } - } - - // Determine which node dev files version we are installing - log.verbose('install', 'input version string %j', release.version) - - if (!release.semver) { - // could not parse the version string with semver - return callback(new Error('Invalid version number: ' + release.version)) - } - - if (semver.lt(release.version, '0.8.0')) { - return callback(new Error('Minimum target version is `0.8.0` or greater. Got: ' + release.version)) - } - - // 0.x.y-pre versions are not published yet and cannot be installed. Bail. - if (release.semver.prerelease[0] === 'pre') { - log.verbose('detected "pre" node version', release.version) - if (gyp.opts.nodedir) { - log.verbose('--nodedir flag was passed; skipping install', gyp.opts.nodedir) - callback() - } else { - callback(new Error('"pre" versions of node cannot be installed, use the --nodedir flag instead')) - } - return - } - - // flatten version into String - log.verbose('install', 'installing version: %s', release.versionDir) - - // the directory where the dev files will be installed - var devDir = path.resolve(gyp.devDir, release.versionDir) - - // If '--ensure' was passed, then don't *always* install the version; - // check if it is already installed, and only install when needed - if (gyp.opts.ensure) { - log.verbose('install', '--ensure was passed, so won\'t reinstall if already installed') - fs.stat(devDir, function (err, stat) { - if (err) { - if (err.code == 'ENOENT') { - log.verbose('install', 'version not already installed, continuing with install', release.version) - go() - } else if (err.code == 'EACCES') { - eaccesFallback() - } else { - cb(err) - } - return - } - log.verbose('install', 'version is already installed, need to check "installVersion"') - var installVersionFile = path.resolve(devDir, 'installVersion') - fs.readFile(installVersionFile, 'ascii', function (err, ver) { - if (err && err.code != 'ENOENT') { - return cb(err) - } - var installVersion = parseInt(ver, 10) || 0 - log.verbose('got "installVersion"', installVersion) - log.verbose('needs "installVersion"', gyp.package.installVersion) - if (installVersion < gyp.package.installVersion) { - log.verbose('install', 'version is no good; reinstalling') - go() - } else { - log.verbose('install', 'version is good') - cb() - } - }) - }) - } else { - go() - } - - function getContentSha(res, callback) { - var shasum = crypto.createHash('sha256') - res.on('data', function (chunk) { - shasum.update(chunk) - }).on('end', function () { - callback(null, shasum.digest('hex')) - }) - } - - function go () { - - log.verbose('ensuring nodedir is created', devDir) - - // first create the dir for the node dev files - mkdir(devDir, function (err, created) { - if (err) { - if (err.code == 'EACCES') { - eaccesFallback() - } else { - cb(err) - } - return - } - - if (created) { - log.verbose('created nodedir', created) - } - - // now download the node tarball - var tarPath = gyp.opts.tarball - var badDownload = false - , extractCount = 0 - , gunzip = zlib.createGunzip() - , extracter = tar.Extract({ path: devDir, strip: 1, filter: isValid }) - - var contentShasums = {} - var expectShasums = {} - - // checks if a file to be extracted from the tarball is valid. - // only .h header files and the gyp files get extracted - function isValid () { - var name = this.path.substring(devDir.length + 1) - var isValid = valid(name) - if (name === '' && this.type === 'Directory') { - // the first directory entry is ok - return true - } - if (isValid) { - log.verbose('extracted file from tarball', name) - extractCount++ - } else { - // invalid - log.silly('ignoring from tarball', name) - } - return isValid - } - - gunzip.on('error', cb) - extracter.on('error', cb) - extracter.on('end', afterTarball) - - // download the tarball, gunzip and extract! - - if (tarPath) { - var input = fs.createReadStream(tarPath) - input.pipe(gunzip).pipe(extracter) - return - } - - try { - var req = download(gyp, process.env, release.tarballUrl) - } catch (e) { - return cb(e) - } - - // something went wrong downloading the tarball? - req.on('error', function (err) { - if (err.code === 'ENOTFOUND') { - return cb(new Error('This is most likely not a problem with node-gyp or the package itself and\n' + - 'is related to network connectivity. In most cases you are behind a proxy or have bad \n' + - 'network settings.')) - } - badDownload = true - cb(err) - }) - - req.on('close', function () { - if (extractCount === 0) { - cb(new Error('Connection closed while downloading tarball file')) - } - }) - - req.on('response', function (res) { - if (res.statusCode !== 200) { - badDownload = true - cb(new Error(res.statusCode + ' response downloading ' + release.tarballUrl)) - return - } - // content checksum - getContentSha(res, function (_, checksum) { - var filename = path.basename(release.tarballUrl).trim() - contentShasums[filename] = checksum - log.verbose('content checksum', filename, checksum) - }) - - // start unzipping and untaring - req.pipe(gunzip).pipe(extracter) - }) - - // invoked after the tarball has finished being extracted - function afterTarball () { - if (badDownload) return - if (extractCount === 0) { - return cb(new Error('There was a fatal problem while downloading/extracting the tarball')) - } - log.verbose('tarball', 'done parsing tarball') - var async = 0 - - if (win) { - // need to download node.lib - async++ - downloadNodeLib(deref) - } - - // write the "installVersion" file - async++ - var installVersionPath = path.resolve(devDir, 'installVersion') - fs.writeFile(installVersionPath, gyp.package.installVersion + '\n', deref) - - // Only download SHASUMS.txt if not using tarPath override - if (!tarPath) { - // download SHASUMS.txt - async++ - downloadShasums(deref) - } - - if (async === 0) { - // no async tasks required - cb() - } - - function deref (err) { - if (err) return cb(err) - - async-- - if (!async) { - log.verbose('download contents checksum', JSON.stringify(contentShasums)) - // check content shasums - for (var k in contentShasums) { - log.verbose('validating download checksum for ' + k, '(%s == %s)', contentShasums[k], expectShasums[k]) - if (contentShasums[k] !== expectShasums[k]) { - cb(new Error(k + ' local checksum ' + contentShasums[k] + ' not match remote ' + expectShasums[k])) - return - } - } - cb() - } - } - } - - function downloadShasums(done) { - log.verbose('check download content checksum, need to download `SHASUMS256.txt`...') - var shasumsPath = path.resolve(devDir, 'SHASUMS256.txt') - - log.verbose('checksum url', release.shasumsUrl) - try { - var req = download(gyp, process.env, release.shasumsUrl) - } catch (e) { - return cb(e) - } - - req.on('error', done) - req.on('response', function (res) { - if (res.statusCode !== 200) { - done(new Error(res.statusCode + ' status code downloading checksum')) - return - } - - var chunks = [] - res.on('data', function (chunk) { - chunks.push(chunk) - }) - res.on('end', function () { - var lines = Buffer.concat(chunks).toString().trim().split('\n') - lines.forEach(function (line) { - var items = line.trim().split(/\s+/) - if (items.length !== 2) return - - // 0035d18e2dcf9aad669b1c7c07319e17abfe3762 ./node-v0.11.4.tar.gz - var name = items[1].replace(/^\.\//, '') - expectShasums[name] = items[0] - }) - - log.verbose('checksum data', JSON.stringify(expectShasums)) - done() - }) - }) - } - - function downloadNodeLib (done) { - log.verbose('on Windows; need to download `' + release.name + '.lib`...') - var dir32 = path.resolve(devDir, 'ia32') - , dir64 = path.resolve(devDir, 'x64') - , libPath32 = path.resolve(dir32, release.name + '.lib') - , libPath64 = path.resolve(dir64, release.name + '.lib') - - log.verbose('32-bit ' + release.name + '.lib dir', dir32) - log.verbose('64-bit ' + release.name + '.lib dir', dir64) - log.verbose('`' + release.name + '.lib` 32-bit url', release.libUrl32) - log.verbose('`' + release.name + '.lib` 64-bit url', release.libUrl64) - - var async = 2 - mkdir(dir32, function (err) { - if (err) return done(err) - log.verbose('streaming 32-bit ' + release.name + '.lib to:', libPath32) - - try { - var req = download(gyp, process.env, release.libUrl32, cb) - } catch (e) { - return cb(e) - } - - req.on('error', done) - req.on('response', function (res) { - if (res.statusCode !== 200) { - done(new Error(res.statusCode + ' status code downloading 32-bit ' + release.name + '.lib')) - return - } - - getContentSha(res, function (_, checksum) { - contentShasums[release.libPath32] = checksum - log.verbose('content checksum', release.libPath32, checksum) - }) - - var ws = fs.createWriteStream(libPath32) - ws.on('error', cb) - req.pipe(ws) - }) - req.on('end', function () { - --async || done() - }) - }) - mkdir(dir64, function (err) { - if (err) return done(err) - log.verbose('streaming 64-bit ' + release.name + '.lib to:', libPath64) - - try { - var req = download(gyp, process.env, release.libUrl64, cb) - } catch (e) { - return cb(e) - } - - req.on('error', done) - req.on('response', function (res) { - if (res.statusCode !== 200) { - done(new Error(res.statusCode + ' status code downloading 64-bit ' + release.name + '.lib')) - return - } - - getContentSha(res, function (_, checksum) { - contentShasums[release.libPath64] = checksum - log.verbose('content checksum', release.libPath64, checksum) - }) - - var ws = fs.createWriteStream(libPath64) - ws.on('error', cb) - req.pipe(ws) - }) - req.on('end', function () { - --async || done() - }) - }) - } // downloadNodeLib() - - }) // mkdir() - - } // go() - - /** - * Checks if a given filename is "valid" for this installation. - */ - - function valid (file) { - // header files - return minimatch(file, '*.h', { matchBase: true }) || - minimatch(file, '*.gypi', { matchBase: true }) - } - - /** - * The EACCES fallback is a workaround for npm's `sudo` behavior, where - * it drops the permissions before invoking any child processes (like - * node-gyp). So what happens is the "nobody" user doesn't have - * permission to create the dev dir. As a fallback, make the tmpdir() be - * the dev dir for this installation. This is not ideal, but at least - * the compilation will succeed... - */ - - function eaccesFallback () { - var tmpdir = osenv.tmpdir() - gyp.devDir = path.resolve(tmpdir, '.node-gyp') - log.warn('EACCES', 'user "%s" does not have permission to access the dev dir "%s"', osenv.user(), devDir) - log.warn('EACCES', 'attempting to reinstall using temporary dev dir "%s"', gyp.devDir) - if (process.cwd() == tmpdir) { - log.verbose('tmpdir == cwd', 'automatically will remove dev files after to save disk space') - gyp.todo.push({ name: 'remove', args: argv }) - } - gyp.commands.install(argv, cb) - } - -} - -function download (gyp, env, url) { - log.http('GET', url) - - var requestOpts = { - uri: url - , headers: { - 'User-Agent': 'node-gyp v' + gyp.version + ' (node ' + process.version + ')' - } - } - - var cafile = gyp.opts.cafile - if (cafile) { - requestOpts.ca = readCAFile(cafile) - } - - // basic support for a proxy server - var proxyUrl = gyp.opts.proxy - || env.http_proxy - || env.HTTP_PROXY - || env.npm_config_proxy - if (proxyUrl) { - if (/^https?:\/\//i.test(proxyUrl)) { - log.verbose('download', 'using proxy url: "%s"', proxyUrl) - requestOpts.proxy = proxyUrl - } else { - log.warn('download', 'ignoring invalid "proxy" config setting: "%s"', proxyUrl) - } - } - - var req = request(requestOpts) - req.on('response', function (res) { - log.http(res.statusCode, url) - }) - - return req -} - -function readCAFile (filename) { - // The CA file can contain multiple certificates so split on certificate - // boundaries. [\S\s]*? is used to match everything including newlines. - var ca = fs.readFileSync(filename, 'utf8') - var re = /(-----BEGIN CERTIFICATE-----[\S\s]*?-----END CERTIFICATE-----)/g - return ca.match(re) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/list.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/list.js deleted file mode 100644 index 9d680a56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/list.js +++ /dev/null @@ -1,33 +0,0 @@ - -module.exports = exports = list - -exports.usage = 'Prints a listing of the currently installed node development files' - -/** - * Module dependencies. - */ - -var fs = require('graceful-fs') - , path = require('path') - , log = require('npmlog') - -function list (gyp, args, callback) { - - var devDir = gyp.devDir - log.verbose('list', 'using node-gyp dir:', devDir) - - // readdir() the node-gyp dir - fs.readdir(devDir, onreaddir) - - function onreaddir (err, versions) { - if (err && err.code != 'ENOENT') { - return callback(err) - } - if (Array.isArray(versions)) { - versions = versions.filter(function (v) { return v != 'current' }) - } else { - versions = [] - } - callback(null, versions) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/node-gyp.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/node-gyp.js deleted file mode 100644 index a5a33288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/node-gyp.js +++ /dev/null @@ -1,225 +0,0 @@ - -/** - * Module exports. - */ - -module.exports = exports = gyp - -/** - * Module dependencies. - */ - -var fs = require('graceful-fs') - , path = require('path') - , nopt = require('nopt') - , log = require('npmlog') - , child_process = require('child_process') - , EE = require('events').EventEmitter - , inherits = require('util').inherits - , commands = [ - // Module build commands - 'build' - , 'clean' - , 'configure' - , 'rebuild' - // Development Header File management commands - , 'install' - , 'list' - , 'remove' - ] - , aliases = { - 'ls': 'list' - , 'rm': 'remove' - } - -// differentiate node-gyp's logs from npm's -log.heading = 'gyp' - -/** - * The `gyp` function. - */ - -function gyp () { - return new Gyp() -} - -function Gyp () { - var self = this - - // set the dir where node-gyp dev files get installed - // TODO: make this *more* configurable? - // see: https://github.com/nodejs/node-gyp/issues/21 - var homeDir = process.env.HOME || process.env.USERPROFILE - if (!homeDir) { - throw new Error( - "node-gyp requires that the user's home directory is specified " + - "in either of the environmental variables HOME or USERPROFILE" - ); - } - this.devDir = path.resolve(homeDir, '.node-gyp') - - this.commands = {} - - commands.forEach(function (command) { - self.commands[command] = function (argv, callback) { - log.verbose('command', command, argv) - return require('./' + command)(self, argv, callback) - } - }) -} -inherits(Gyp, EE) -exports.Gyp = Gyp -var proto = Gyp.prototype - -/** - * Export the contents of the package.json. - */ - -proto.package = require('../package') - -/** - * nopt configuration definitions - */ - -proto.configDefs = { - help: Boolean // everywhere - , arch: String // 'configure' - , cafile: String // 'install' - , debug: Boolean // 'build' - , directory: String // bin - , make: String // 'build' - , msvs_version: String // 'configure' - , ensure: Boolean // 'install' - , solution: String // 'build' (windows only) - , proxy: String // 'install' - , nodedir: String // 'configure' - , loglevel: String // everywhere - , python: String // 'configure' - , 'dist-url': String // 'install' - , 'tarball': String // 'install' - , jobs: String // 'build' - , thin: String // 'configure' -} - -/** - * nopt shorthands - */ - -proto.shorthands = { - release: '--no-debug' - , C: '--directory' - , debug: '--debug' - , j: '--jobs' - , silly: '--loglevel=silly' - , verbose: '--loglevel=verbose' -} - -/** - * expose the command aliases for the bin file to use. - */ - -proto.aliases = aliases - -/** - * Parses the given argv array and sets the 'opts', - * 'argv' and 'command' properties. - */ - -proto.parseArgv = function parseOpts (argv) { - this.opts = nopt(this.configDefs, this.shorthands, argv) - this.argv = this.opts.argv.remain.slice() - - var commands = this.todo = [] - - // create a copy of the argv array with aliases mapped - argv = this.argv.map(function (arg) { - // is this an alias? - if (arg in this.aliases) { - arg = this.aliases[arg] - } - return arg - }, this) - - // process the mapped args into "command" objects ("name" and "args" props) - argv.slice().forEach(function (arg) { - if (arg in this.commands) { - var args = argv.splice(0, argv.indexOf(arg)) - argv.shift() - if (commands.length > 0) { - commands[commands.length - 1].args = args - } - commands.push({ name: arg, args: [] }) - } - }, this) - if (commands.length > 0) { - commands[commands.length - 1].args = argv.splice(0) - } - - // support for inheriting config env variables from npm - var npm_config_prefix = 'npm_config_' - Object.keys(process.env).forEach(function (name) { - if (name.indexOf(npm_config_prefix) !== 0) return - var val = process.env[name] - if (name === npm_config_prefix + 'loglevel') { - log.level = val - } else { - // add the user-defined options to the config - name = name.substring(npm_config_prefix.length) - // gyp@741b7f1 enters an infinite loop when it encounters - // zero-length options so ensure those don't get through. - if (name) this.opts[name] = val - } - }, this) - - if (this.opts.loglevel) { - log.level = this.opts.loglevel - } - log.resume() -} - -/** - * Spawns a child process and emits a 'spawn' event. - */ - -proto.spawn = function spawn (command, args, opts) { - if (!opts) opts = {} - if (!opts.silent && !opts.stdio) { - opts.stdio = [ 0, 1, 2 ] - } - var cp = child_process.spawn(command, args, opts) - log.info('spawn', command) - log.info('spawn args', args) - return cp -} - -/** - * Returns the usage instructions for node-gyp. - */ - -proto.usage = function usage () { - var str = [ - '' - , ' Usage: node-gyp [options]' - , '' - , ' where is one of:' - , commands.map(function (c) { - return ' - ' + c + ' - ' + require('./' + c).usage - }).join('\n') - , '' - , 'node-gyp@' + this.version + ' ' + path.resolve(__dirname, '..') - , 'node@' + process.versions.node - ].join('\n') - return str -} - -/** - * Version number getter. - */ - -Object.defineProperty(proto, 'version', { - get: function () { - return this.package.version - } - , enumerable: true -}) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/process-release.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/process-release.js deleted file mode 100644 index 89eaf9be..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/process-release.js +++ /dev/null @@ -1,153 +0,0 @@ -var semver = require('semver') - , url = require('url') - , path = require('path') - , log = require('npmlog') - - // versions where -headers.tar.gz started shipping - , headersTarballRange = '>= 3.0.0 || ~0.12.10 || ~0.10.42' - , bitsre = /\/win-(x86|x64)\// - , bitsreV3 = /\/win-(x86|ia32|x64)\// // io.js v3.x.x shipped with "ia32" but should - // have been "x86" - -// Captures all the logic required to determine download URLs, local directory and -// file names. Inputs come from command-line switches (--target, --dist-url), -// `process.version` and `process.release` where it exists. -function processRelease (argv, gyp, defaultVersion, defaultRelease) { - var version = (semver.valid(argv[0]) && argv[0]) || gyp.opts.target || defaultVersion - , versionSemver = semver.parse(version) - , overrideDistUrl = gyp.opts['dist-url'] || gyp.opts.disturl - , isDefaultVersion - , isIojs - , name - , distBaseUrl - , baseUrl - , libUrl32 - , libUrl64 - , tarballUrl - , canGetHeaders - - if (!versionSemver) { - // not a valid semver string, nothing we can do - return { version: version } - } - // flatten version into String - version = versionSemver.version - - // defaultVersion should come from process.version so ought to be valid semver - isDefaultVersion = version === semver.parse(defaultVersion).version - - // can't use process.release if we're using --target=x.y.z - if (!isDefaultVersion) - defaultRelease = null - - if (defaultRelease) { - // v3 onward, has process.release - name = defaultRelease.name.replace(/io\.js/, 'iojs') // remove the '.' for directory naming purposes - isIojs = name === 'iojs' - } else { - // old node or alternative --target= - // semver.satisfies() doesn't like prerelease tags so test major directly - isIojs = versionSemver.major >= 1 && versionSemver.major < 4 - name = isIojs ? 'iojs' : 'node' - } - - // check for the nvm.sh standard mirror env variables - if (!overrideDistUrl) { - if (isIojs) { - if (process.env.IOJS_ORG_MIRROR) { - overrideDistUrl = process.env.IOJS_ORG_MIRROR - } else if (process.env.NVM_IOJS_ORG_MIRROR) {// remove on next semver-major - overrideDistUrl = process.env.NVM_IOJS_ORG_MIRROR - log.warn('download', - 'NVM_IOJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, ' + - 'please use IOJS_ORG_MIRROR') - } - } else { - if (process.env.NODEJS_ORG_MIRROR) { - overrideDistUrl = process.env.NODEJS_ORG_MIRROR - } else if (process.env.NVM_NODEJS_ORG_MIRROR) {// remove on next semver-major - overrideDistUrl = process.env.NVM_NODEJS_ORG_MIRROR - log.warn('download', - 'NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, ' + - 'please use NODEJS_ORG_MIRROR') - } - } - } - - - if (overrideDistUrl) - distBaseUrl = overrideDistUrl.replace(/\/+$/, '') - else - distBaseUrl = isIojs ? 'https://iojs.org/download/release' : 'https://nodejs.org/dist' - distBaseUrl += '/v' + version + '/' - - // new style, based on process.release so we have a lot of the data we need - if (defaultRelease && defaultRelease.headersUrl && !overrideDistUrl) { - baseUrl = url.resolve(defaultRelease.headersUrl, './') - libUrl32 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x86', versionSemver.major) - libUrl64 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x64', versionSemver.major) - - return { - version: version, - semver: versionSemver, - name: name, - baseUrl: baseUrl, - tarballUrl: defaultRelease.headersUrl, - shasumsUrl: url.resolve(baseUrl, 'SHASUMS256.txt'), - versionDir: (name !== 'node' ? name + '-' : '') + version, - libUrl32: libUrl32, - libUrl64: libUrl64, - libPath32: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl32).path)), - libPath64: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl64).path)) - } - } - - // older versions without process.release are captured here and we have to make - // a lot of assumptions, additionally if you --target=x.y.z then we can't use the - // current process.release - - baseUrl = distBaseUrl - libUrl32 = resolveLibUrl(name, baseUrl, 'x86', versionSemver.major) - libUrl64 = resolveLibUrl(name, baseUrl, 'x64', versionSemver.major) - // making the bold assumption that anything with a version number >3.0.0 will - // have a *-headers.tar.gz file in its dist location, even some frankenstein - // custom version - canGetHeaders = semver.satisfies(versionSemver, headersTarballRange) - tarballUrl = url.resolve(baseUrl, name + '-v' + version + (canGetHeaders ? '-headers' : '') + '.tar.gz') - - return { - version: version, - semver: versionSemver, - name: name, - baseUrl: baseUrl, - tarballUrl: tarballUrl, - shasumsUrl: url.resolve(baseUrl, 'SHASUMS256.txt'), - versionDir: (name !== 'node' ? name + '-' : '') + version, - libUrl32: libUrl32, - libUrl64: libUrl64, - libPath32: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl32).path)), - libPath64: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl64).path)) - } -} - -function normalizePath (p) { - return path.normalize(p).replace(/\\/g, '/') -} - -function resolveLibUrl (name, defaultUrl, arch, versionMajor) { - var base = url.resolve(defaultUrl, './') - , hasLibUrl = bitsre.test(defaultUrl) || (versionMajor === 3 && bitsreV3.test(defaultUrl)) - - if (!hasLibUrl) { - // let's assume it's a baseUrl then - if (versionMajor >= 1) - return url.resolve(base, 'win-' + arch +'/' + name + '.lib') - // prior to io.js@1.0.0 32-bit node.lib lives in /, 64-bit lives in /x64/ - return url.resolve(base, (arch === 'x64' ? 'x64/' : '') + name + '.lib') - } - - // else we have a proper url to a .lib, just make sure it's the right arch - return defaultUrl.replace(versionMajor === 3 ? bitsreV3 : bitsre, '/win-' + arch + '/') -} - -module.exports = processRelease diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/rebuild.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/rebuild.js deleted file mode 100644 index 4c6f472a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/rebuild.js +++ /dev/null @@ -1,14 +0,0 @@ - -module.exports = exports = rebuild - -exports.usage = 'Runs "clean", "configure" and "build" all at once' - -function rebuild (gyp, argv, callback) { - - gyp.todo.push( - { name: 'clean', args: [] } - , { name: 'configure', args: argv } - , { name: 'build', args: [] } - ) - process.nextTick(callback) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/remove.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/remove.js deleted file mode 100644 index eb80981b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/lib/remove.js +++ /dev/null @@ -1,52 +0,0 @@ - -module.exports = exports = remove - -exports.usage = 'Removes the node development files for the specified version' - -/** - * Module dependencies. - */ - -var fs = require('fs') - , rm = require('rimraf') - , path = require('path') - , log = require('npmlog') - , semver = require('semver') - -function remove (gyp, argv, callback) { - - var devDir = gyp.devDir - log.verbose('remove', 'using node-gyp dir:', devDir) - - // get the user-specified version to remove - var version = argv[0] || gyp.opts.target - log.verbose('remove', 'removing target version:', version) - - if (!version) { - return callback(new Error('You must specify a version number to remove. Ex: "' + process.version + '"')) - } - - var versionSemver = semver.parse(version) - if (versionSemver) { - // flatten the version Array into a String - version = versionSemver.version - } - - var versionPath = path.resolve(gyp.devDir, version) - log.verbose('remove', 'removing development files for version:', version) - - // first check if its even installed - fs.stat(versionPath, function (err, stat) { - if (err) { - if (err.code == 'ENOENT') { - callback(null, 'version was already uninstalled: ' + version) - } else { - callback(err) - } - return - } - // Go ahead and delete the dir - rm(versionPath, callback) - }) - -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/README.md deleted file mode 100644 index 258257ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/README.md +++ /dev/null @@ -1,369 +0,0 @@ -[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Dependency Status](https://david-dm.org/isaacs/node-glob.svg)](https://david-dm.org/isaacs/node-glob) [![devDependency Status](https://david-dm.org/isaacs/node-glob/dev-status.svg)](https://david-dm.org/isaacs/node-glob#info=devDependencies) [![optionalDependency Status](https://david-dm.org/isaacs/node-glob/optional-status.svg)](https://david-dm.org/isaacs/node-glob#info=optionalDependencies) - -# Glob - -Match files using the patterns the shell uses, like stars and stuff. - -This is a glob implementation in JavaScript. It uses the `minimatch` -library to do its matching. - -![](oh-my-glob.gif) - -## Usage - -```javascript -var glob = require("glob") - -// options is optional -glob("**/*.js", options, function (er, files) { - // files is an array of filenames. - // If the `nonull` option is set, and nothing - // was found, then files is ["**/*.js"] - // er is an error object or null. -}) -``` - -## Glob Primer - -"Globs" are the patterns you type when you do stuff like `ls *.js` on -the command line, or put `build/*` in a `.gitignore` file. - -Before parsing the path part patterns, braced sections are expanded -into a set. Braced sections start with `{` and end with `}`, with any -number of comma-delimited sections within. Braced sections may contain -slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`. - -The following characters have special magic meaning when used in a -path portion: - -* `*` Matches 0 or more characters in a single path portion -* `?` Matches 1 character -* `[...]` Matches a range of characters, similar to a RegExp range. - If the first character of the range is `!` or `^` then it matches - any character not in the range. -* `!(pattern|pattern|pattern)` Matches anything that does not match - any of the patterns provided. -* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the - patterns provided. -* `+(pattern|pattern|pattern)` Matches one or more occurrences of the - patterns provided. -* `*(a|b|c)` Matches zero or more occurrences of the patterns provided -* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns - provided -* `**` If a "globstar" is alone in a path portion, then it matches - zero or more directories and subdirectories searching for matches. - It does not crawl symlinked directories. - -### Dots - -If a file or directory path portion has a `.` as the first character, -then it will not match any glob pattern unless that pattern's -corresponding path part also has a `.` as its first character. - -For example, the pattern `a/.*/c` would match the file at `a/.b/c`. -However the pattern `a/*/c` would not, because `*` does not start with -a dot character. - -You can make glob treat dots as normal characters by setting -`dot:true` in the options. - -### Basename Matching - -If you set `matchBase:true` in the options, and the pattern has no -slashes in it, then it will seek for any file anywhere in the tree -with a matching basename. For example, `*.js` would match -`test/simple/basic.js`. - -### Negation - -The intent for negation would be for a pattern starting with `!` to -match everything that *doesn't* match the supplied pattern. However, -the implementation is weird, and for the time being, this should be -avoided. The behavior will change or be deprecated in version 5. - -### Empty Sets - -If no matching files are found, then an empty array is returned. This -differs from the shell, where the pattern itself is returned. For -example: - - $ echo a*s*d*f - a*s*d*f - -To get the bash-style behavior, set the `nonull:true` in the options. - -### See Also: - -* `man sh` -* `man bash` (Search for "Pattern Matching") -* `man 3 fnmatch` -* `man 5 gitignore` -* [minimatch documentation](https://github.com/isaacs/minimatch) - -## glob.hasMagic(pattern, [options]) - -Returns `true` if there are any special characters in the pattern, and -`false` otherwise. - -Note that the options affect the results. If `noext:true` is set in -the options object, then `+(a|b)` will not be considered a magic -pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}` -then that is considered magical, unless `nobrace:true` is set in the -options. - -## glob(pattern, [options], cb) - -* `pattern` {String} Pattern to be matched -* `options` {Object} -* `cb` {Function} - * `err` {Error | null} - * `matches` {Array} filenames found matching the pattern - -Perform an asynchronous glob search. - -## glob.sync(pattern, [options]) - -* `pattern` {String} Pattern to be matched -* `options` {Object} -* return: {Array} filenames found matching the pattern - -Perform a synchronous glob search. - -## Class: glob.Glob - -Create a Glob object by instantiating the `glob.Glob` class. - -```javascript -var Glob = require("glob").Glob -var mg = new Glob(pattern, options, cb) -``` - -It's an EventEmitter, and starts walking the filesystem to find matches -immediately. - -### new glob.Glob(pattern, [options], [cb]) - -* `pattern` {String} pattern to search for -* `options` {Object} -* `cb` {Function} Called when an error occurs, or matches are found - * `err` {Error | null} - * `matches` {Array} filenames found matching the pattern - -Note that if the `sync` flag is set in the options, then matches will -be immediately available on the `g.found` member. - -### Properties - -* `minimatch` The minimatch object that the glob uses. -* `options` The options object passed in. -* `aborted` Boolean which is set to true when calling `abort()`. There - is no way at this time to continue a glob search after aborting, but - you can re-use the statCache to avoid having to duplicate syscalls. -* `statCache` Collection of all the stat results the glob search - performed. -* `cache` Convenience object. Each field has the following possible - values: - * `false` - Path does not exist - * `true` - Path exists - * `'DIR'` - Path exists, and is not a directory - * `'FILE'` - Path exists, and is a directory - * `[file, entries, ...]` - Path exists, is a directory, and the - array value is the results of `fs.readdir` -* `statCache` Cache of `fs.stat` results, to prevent statting the same - path multiple times. -* `symlinks` A record of which paths are symbolic links, which is - relevant in resolving `**` patterns. -* `realpathCache` An optional object which is passed to `fs.realpath` - to minimize unnecessary syscalls. It is stored on the instantiated - Glob object, and may be re-used. - -### Events - -* `end` When the matching is finished, this is emitted with all the - matches found. If the `nonull` option is set, and no match was found, - then the `matches` list contains the original pattern. The matches - are sorted, unless the `nosort` flag is set. -* `match` Every time a match is found, this is emitted with the matched. -* `error` Emitted when an unexpected error is encountered, or whenever - any fs error occurs if `options.strict` is set. -* `abort` When `abort()` is called, this event is raised. - -### Methods - -* `pause` Temporarily stop the search -* `resume` Resume the search -* `abort` Stop the search forever - -### Options - -All the options that can be passed to Minimatch can also be passed to -Glob to change pattern matching behavior. Also, some have been added, -or have glob-specific ramifications. - -All options are false by default, unless otherwise noted. - -All options are added to the Glob object, as well. - -If you are running many `glob` operations, you can pass a Glob object -as the `options` argument to a subsequent operation to shortcut some -`stat` and `readdir` calls. At the very least, you may pass in shared -`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that -parallel glob operations will be sped up by sharing information about -the filesystem. - -* `cwd` The current working directory in which to search. Defaults - to `process.cwd()`. -* `root` The place where patterns starting with `/` will be mounted - onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix - systems, and `C:\` or some such on Windows.) -* `dot` Include `.dot` files in normal matches and `globstar` matches. - Note that an explicit dot in a portion of the pattern will always - match dot files. -* `nomount` By default, a pattern starting with a forward-slash will be - "mounted" onto the root setting, so that a valid filesystem path is - returned. Set this flag to disable that behavior. -* `mark` Add a `/` character to directory matches. Note that this - requires additional stat calls. -* `nosort` Don't sort the results. -* `stat` Set to true to stat *all* results. This reduces performance - somewhat, and is completely unnecessary, unless `readdir` is presumed - to be an untrustworthy indicator of file existence. -* `silent` When an unusual error is encountered when attempting to - read a directory, a warning will be printed to stderr. Set the - `silent` option to true to suppress these warnings. -* `strict` When an unusual error is encountered when attempting to - read a directory, the process will just continue on in search of - other matches. Set the `strict` option to raise an error in these - cases. -* `cache` See `cache` property above. Pass in a previously generated - cache object to save some fs calls. -* `statCache` A cache of results of filesystem information, to prevent - unnecessary stat calls. While it should not normally be necessary - to set this, you may pass the statCache from one glob() call to the - options object of another, if you know that the filesystem will not - change between calls. (See "Race Conditions" below.) -* `symlinks` A cache of known symbolic links. You may pass in a - previously generated `symlinks` object to save `lstat` calls when - resolving `**` matches. -* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead. -* `nounique` In some cases, brace-expanded patterns can result in the - same file showing up multiple times in the result set. By default, - this implementation prevents duplicates in the result set. Set this - flag to disable that behavior. -* `nonull` Set to never return an empty set, instead returning a set - containing the pattern itself. This is the default in glob(3). -* `debug` Set to enable debug logging in minimatch and glob. -* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets. -* `noglobstar` Do not match `**` against multiple filenames. (Ie, - treat it as a normal `*` instead.) -* `noext` Do not match `+(a|b)` "extglob" patterns. -* `nocase` Perform a case-insensitive match. Note: on - case-insensitive filesystems, non-magic patterns will match by - default, since `stat` and `readdir` will not raise errors. -* `matchBase` Perform a basename-only match if the pattern does not - contain any slash characters. That is, `*.js` would be treated as - equivalent to `**/*.js`, matching all js files in all directories. -* `nonegate` Suppress `negate` behavior. (See below.) -* `nocomment` Suppress `comment` behavior. (See below.) -* `nonull` Return the pattern when no matches are found. -* `nodir` Do not match directories, only files. (Note: to match - *only* directories, simply put a `/` at the end of the pattern.) -* `ignore` Add a pattern or an array of patterns to exclude matches. -* `follow` Follow symlinked directories when expanding `**` patterns. - Note that this can result in a lot of duplicate references in the - presence of cyclic links. -* `realpath` Set to true to call `fs.realpath` on all of the results. - In the case of a symlink that cannot be resolved, the full absolute - path to the matched entry is returned (though it will usually be a - broken symlink) - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between node-glob and other -implementations, and are intentional. - -If the pattern starts with a `!` character, then it is negated. Set the -`nonegate` flag to suppress this behavior, and treat leading `!` -characters normally. This is perhaps relevant if you wish to start the -pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` -characters at the start of a pattern will negate the pattern multiple -times. - -If a pattern starts with `#`, then it is treated as a comment, and -will not match anything. Use `\#` to match a literal `#` at the -start of a line, or set the `nocomment` flag to suppress this behavior. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.3, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -Note that symlinked directories are not crawled as part of a `**`, -though their contents may match against subsequent portions of the -pattern. This prevents infinite loops and duplicates and the like. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then glob returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. - -## Windows - -**Please only use forward-slashes in glob expressions.** - -Though windows uses either `/` or `\` as its path separator, only `/` -characters are used by this glob implementation. You must use -forward-slashes **only** in glob expressions. Back-slashes will always -be interpreted as escape characters, not path separators. - -Results from absolute patterns such as `/foo/*` are mounted onto the -root setting using `path.join`. On windows, this will by default result -in `/foo/*` matching `C:\foo\bar.txt`. - -## Race Conditions - -Glob searching, by its very nature, is susceptible to race conditions, -since it relies on directory walking and such. - -As a result, it is possible that a file that exists when glob looks for -it may have been deleted or modified by the time it returns the result. - -As part of its internal implementation, this program caches all stat -and readdir calls that it makes, in order to cut down on system -overhead. However, this also makes it even more susceptible to races, -especially if the cache or statCache objects are reused between glob -calls. - -Users are thus advised not to use a glob result as a guarantee of -filesystem state in the face of rapid changes. For the vast majority -of operations, this is never a problem. - -## Contributing - -Any change to behavior (including bugfixes) must come with a test. - -Patches that fail tests or reduce performance will be rejected. - -``` -# to run tests -npm test - -# to re-generate test fixtures -npm run test-regen - -# to benchmark against bash/zsh -npm run bench - -# to profile javascript -npm run prof -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/common.js deleted file mode 100644 index cd7c8244..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/common.js +++ /dev/null @@ -1,237 +0,0 @@ -exports.alphasort = alphasort -exports.alphasorti = alphasorti -exports.isAbsolute = process.platform === "win32" ? absWin : absUnix -exports.setopts = setopts -exports.ownProp = ownProp -exports.makeAbs = makeAbs -exports.finish = finish -exports.mark = mark -exports.isIgnored = isIgnored -exports.childrenIgnored = childrenIgnored - -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} - -var path = require("path") -var minimatch = require("minimatch") -var Minimatch = minimatch.Minimatch - -function absWin (p) { - if (absUnix(p)) return true - // pull off the device/UNC bit from a windows path. - // from node's lib/path.js - var splitDeviceRe = - /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/ - var result = splitDeviceRe.exec(p) - var device = result[1] || '' - var isUnc = device && device.charAt(1) !== ':' - var isAbsolute = !!result[2] || isUnc // UNC paths are always absolute - - return isAbsolute -} - -function absUnix (p) { - return p.charAt(0) === "/" || p === "" -} - -function alphasorti (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()) -} - -function alphasort (a, b) { - return a.localeCompare(b) -} - -function setupIgnores (self, options) { - self.ignore = options.ignore || [] - - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore] - - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap) - } -} - -function ignoreMap (pattern) { - var gmatcher = null - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, '') - gmatcher = new Minimatch(gpattern, { nonegate: true }) - } - - return { - matcher: new Minimatch(pattern, { nonegate: true }), - gmatcher: gmatcher - } -} - -function setopts (self, pattern, options) { - if (!options) - options = {} - - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") - } - pattern = "**/" + pattern - } - - self.pattern = pattern - self.strict = options.strict !== false - self.realpath = !!options.realpath - self.realpathCache = options.realpathCache || Object.create(null) - self.follow = !!options.follow - self.dot = !!options.dot - self.mark = !!options.mark - self.nodir = !!options.nodir - if (self.nodir) - self.mark = true - self.sync = !!options.sync - self.nounique = !!options.nounique - self.nonull = !!options.nonull - self.nosort = !!options.nosort - self.nocase = !!options.nocase - self.stat = !!options.stat - self.noprocess = !!options.noprocess - - self.maxLength = options.maxLength || Infinity - self.cache = options.cache || Object.create(null) - self.statCache = options.statCache || Object.create(null) - self.symlinks = options.symlinks || Object.create(null) - - setupIgnores(self, options) - - self.changedCwd = false - var cwd = process.cwd() - if (!ownProp(options, "cwd")) - self.cwd = cwd - else { - self.cwd = options.cwd - self.changedCwd = path.resolve(options.cwd) !== cwd - } - - self.root = options.root || path.resolve(self.cwd, "/") - self.root = path.resolve(self.root) - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/") - - self.nomount = !!options.nomount - - self.minimatch = new Minimatch(pattern, options) - self.options = self.minimatch.options -} - -function finish (self) { - var nou = self.nounique - var all = nou ? [] : Object.create(null) - - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i] - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i] - if (nou) - all.push(literal) - else - all[literal] = true - } - } else { - // had matches - var m = Object.keys(matches) - if (nou) - all.push.apply(all, m) - else - m.forEach(function (m) { - all[m] = true - }) - } - } - - if (!nou) - all = Object.keys(all) - - if (!self.nosort) - all = all.sort(self.nocase ? alphasorti : alphasort) - - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]) - } - if (self.nodir) { - all = all.filter(function (e) { - return !(/\/$/.test(e)) - }) - } - } - - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }) - - self.found = all -} - -function mark (self, p) { - var abs = makeAbs(self, p) - var c = self.cache[abs] - var m = p - if (c) { - var isDir = c === 'DIR' || Array.isArray(c) - var slash = p.slice(-1) === '/' - - if (isDir && !slash) - m += '/' - else if (!isDir && slash) - m = m.slice(0, -1) - - if (m !== p) { - var mabs = makeAbs(self, m) - self.statCache[mabs] = self.statCache[abs] - self.cache[mabs] = self.cache[abs] - } - } - - return m -} - -// lotta situps... -function makeAbs (self, f) { - var abs = f - if (f.charAt(0) === '/') { - abs = path.join(self.root, f) - } else if (exports.isAbsolute(f)) { - abs = f - } else if (self.changedCwd) { - abs = path.resolve(self.cwd, f) - } else if (self.realpath) { - abs = path.resolve(f) - } - return abs -} - - -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/glob.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/glob.js deleted file mode 100644 index eac0693c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/glob.js +++ /dev/null @@ -1,740 +0,0 @@ -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. - -module.exports = glob - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var inherits = require('inherits') -var EE = require('events').EventEmitter -var path = require('path') -var assert = require('assert') -var globSync = require('./sync.js') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var isAbsolute = common.isAbsolute -var setopts = common.setopts -var ownProp = common.ownProp -var inflight = require('inflight') -var util = require('util') -var childrenIgnored = common.childrenIgnored - -var once = require('once') - -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {} - if (!options) options = {} - - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return globSync(pattern, options) - } - - return new Glob(pattern, options, cb) -} - -glob.sync = globSync -var GlobSync = glob.GlobSync = globSync.GlobSync - -// old api surface -glob.glob = glob - -glob.hasMagic = function (pattern, options_) { - var options = util._extend({}, options_) - options.noprocess = true - - var g = new Glob(pattern, options) - var set = g.minimatch.set - if (set.length > 1) - return true - - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } - - return false -} - -glob.Glob = Glob -inherits(Glob, EE) -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync(pattern, options) - } - - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) - - setopts(this, pattern, options) - this._didRealPath = false - - // process each pattern in the minimatch set - var n = this.minimatch.set.length - - // The matches are stored as {: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n) - - if (typeof cb === 'function') { - cb = once(cb) - this.on('error', cb) - this.on('end', function (matches) { - cb(null, matches) - }) - } - - var self = this - var n = this.minimatch.set.length - this._processing = 0 - this.matches = new Array(n) - - this._emitQueue = [] - this._processQueue = [] - this.paused = false - - if (this.noprocess) - return this - - if (n === 0) - return done() - - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done) - } - - function done () { - --self._processing - if (self._processing <= 0) - self._finish() - } -} - -Glob.prototype._finish = function () { - assert(this instanceof Glob) - if (this.aborted) - return - - if (this.realpath && !this._didRealpath) - return this._realpath() - - common.finish(this) - this.emit('end', this.found) -} - -Glob.prototype._realpath = function () { - if (this._didRealpath) - return - - this._didRealpath = true - - var n = this.matches.length - if (n === 0) - return this._finish() - - var self = this - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next) - - function next () { - if (--n === 0) - self._finish() - } -} - -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index] - if (!matchset) - return cb() - - var found = Object.keys(matchset) - var self = this - var n = found.length - - if (n === 0) - return cb() - - var set = this.matches[index] = Object.create(null) - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p) - fs.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true - else if (er.syscall === 'stat') - set[p] = true - else - self.emit('error', er) // srsly wtf right here - - if (--n === 0) { - self.matches[index] = set - cb() - } - }) - }) -} - -Glob.prototype._mark = function (p) { - return common.mark(this, p) -} - -Glob.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -Glob.prototype.abort = function () { - this.aborted = true - this.emit('abort') -} - -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true - this.emit('pause') - } -} - -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume') - this.paused = false - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0) - this._emitQueue.length = 0 - for (var i = 0; i < eq.length; i ++) { - var e = eq[i] - this._emitMatch(e[0], e[1]) - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0) - this._processQueue.length = 0 - for (var i = 0; i < pq.length; i ++) { - var p = pq[i] - this._processing-- - this._process(p[0], p[1], p[2], p[3]) - } - } - } -} - -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert(this instanceof Glob) - assert(typeof cb === 'function') - - if (this.aborted) - return - - this._processing++ - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]) - return - } - - //console.error('PROCESS %d', this._processing, pattern) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // see if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip _processing - if (childrenIgnored(this, read)) - return cb() - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) -} - -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return cb() - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - this._process([e].concat(remain), index, inGlobStar, cb) - } - cb() -} - -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return - - if (this.matches[index][e]) - return - - if (this.paused) { - this._emitQueue.push([index, e]) - return - } - - var abs = this._makeAbs(e) - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - if (this.mark) - e = this._mark(e) - - this.matches[index][e] = true - - var st = this.statCache[abs] - if (st) - this.emit('stat', e, st) - - this.emit('match', e) -} - -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return - - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) - - var lstatkey = 'lstat\0' + abs - var self = this - var lstatcb = inflight(lstatkey, lstatcb_) - - if (lstatcb) - fs.lstat(abs, lstatcb) - - function lstatcb_ (er, lstat) { - if (er) - return cb() - - var isSym = lstat.isSymbolicLink() - self.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) { - self.cache[abs] = 'FILE' - cb() - } else - self._readdir(abs, false, cb) - } -} - -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return - - cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) - if (!cb) - return - - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return cb() - - if (Array.isArray(c)) - return cb(null, c) - } - - var self = this - fs.readdir(abs, readdirCb(this, abs, cb)) -} - -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb) - else - self._readdirEntries(abs, entries, cb) - } -} - -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return - - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - return cb(null, entries) -} - -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return - - // handle errors, and cache the information - switch (er.code) { - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) return this.emit('error', er) - if (!this.silent) console.error('glob error', er) - break - } - return cb() -} - -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - - -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb) - - var isSym = this.symlinks[abs] - var len = entries.length - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true, cb) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true, cb) - } - - cb() -} - -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb) - }) -} -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { - - //console.error('ps2', prefix, exists) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) - cb() -} - -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return cb() - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) - - if (needDir && c === 'FILE') - return cb() - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE' - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } - - var self = this - var statcb = inflight('stat\0' + abs, lstatcb_) - if (statcb) - fs.lstat(abs, statcb) - - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return fs.stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb) - else - self._stat2(f, abs, er, stat, cb) - }) - } else { - self._stat2(f, abs, er, lstat, cb) - } - } -} - -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er) { - this.statCache[abs] = false - return cb() - } - - var needDir = f.slice(-1) === '/' - this.statCache[abs] = stat - - if (abs.slice(-1) === '/' && !stat.isDirectory()) - return cb(null, false, stat) - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return cb() - - return cb(null, c, stat) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/README.md deleted file mode 100644 index d458bc2e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/README.md +++ /dev/null @@ -1,216 +0,0 @@ -# minimatch - -A minimal matching utility. - -[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch) - - -This is the matching library used internally by npm. - -It works by converting glob expressions into JavaScript `RegExp` -objects. - -## Usage - -```javascript -var minimatch = require("minimatch") - -minimatch("bar.foo", "*.foo") // true! -minimatch("bar.foo", "*.bar") // false! -minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy! -``` - -## Features - -Supports these glob features: - -* Brace Expansion -* Extended glob matching -* "Globstar" `**` matching - -See: - -* `man sh` -* `man bash` -* `man 3 fnmatch` -* `man 5 gitignore` - -## Minimatch Class - -Create a minimatch object by instanting the `minimatch.Minimatch` class. - -```javascript -var Minimatch = require("minimatch").Minimatch -var mm = new Minimatch(pattern, options) -``` - -### Properties - -* `pattern` The original pattern the minimatch object represents. -* `options` The options supplied to the constructor. -* `set` A 2-dimensional array of regexp or string expressions. - Each row in the - array corresponds to a brace-expanded pattern. Each item in the row - corresponds to a single path-part. For example, the pattern - `{a,b/c}/d` would expand to a set of patterns like: - - [ [ a, d ] - , [ b, c, d ] ] - - If a portion of the pattern doesn't have any "magic" in it - (that is, it's something like `"foo"` rather than `fo*o?`), then it - will be left as a string rather than converted to a regular - expression. - -* `regexp` Created by the `makeRe` method. A single regular expression - expressing the entire pattern. This is useful in cases where you wish - to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled. -* `negate` True if the pattern is negated. -* `comment` True if the pattern is a comment. -* `empty` True if the pattern is `""`. - -### Methods - -* `makeRe` Generate the `regexp` member if necessary, and return it. - Will return `false` if the pattern is invalid. -* `match(fname)` Return true if the filename matches the pattern, or - false otherwise. -* `matchOne(fileArray, patternArray, partial)` Take a `/`-split - filename, and match it against a single row in the `regExpSet`. This - method is mainly for internal use, but is exposed so that it can be - used by a glob-walker that needs to avoid excessive filesystem calls. - -All other methods are internal, and will be called as necessary. - -## Functions - -The top-level exported function has a `cache` property, which is an LRU -cache set to store 100 items. So, calling these methods repeatedly -with the same pattern and options will use the same Minimatch object, -saving the cost of parsing it multiple times. - -### minimatch(path, pattern, options) - -Main export. Tests a path against the pattern using the options. - -```javascript -var isJS = minimatch(file, "*.js", { matchBase: true }) -``` - -### minimatch.filter(pattern, options) - -Returns a function that tests its -supplied argument, suitable for use with `Array.filter`. Example: - -```javascript -var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true})) -``` - -### minimatch.match(list, pattern, options) - -Match against the list of -files, in the style of fnmatch or glob. If nothing is matched, and -options.nonull is set, then return a list containing the pattern itself. - -```javascript -var javascripts = minimatch.match(fileList, "*.js", {matchBase: true})) -``` - -### minimatch.makeRe(pattern, options) - -Make a regular expression object from the pattern. - -## Options - -All options are `false` by default. - -### debug - -Dump a ton of stuff to stderr. - -### nobrace - -Do not expand `{a,b}` and `{1..3}` brace sets. - -### noglobstar - -Disable `**` matching against multiple folder names. - -### dot - -Allow patterns to match filenames starting with a period, even if -the pattern does not explicitly have a period in that spot. - -Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot` -is set. - -### noext - -Disable "extglob" style patterns like `+(a|b)`. - -### nocase - -Perform a case-insensitive match. - -### nonull - -When a match is not found by `minimatch.match`, return a list containing -the pattern itself if this option is set. When not set, an empty list -is returned if there are no matches. - -### matchBase - -If set, then patterns without slashes will be matched -against the basename of the path if it contains slashes. For example, -`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. - -### nocomment - -Suppress the behavior of treating `#` at the start of a pattern as a -comment. - -### nonegate - -Suppress the behavior of treating a leading `!` character as negation. - -### flipNegate - -Returns from negate expressions the same as if they were not negated. -(Ie, true on a hit, false on a miss.) - - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between minimatch and other -implementations, and are intentional. - -If the pattern starts with a `!` character, then it is negated. Set the -`nonegate` flag to suppress this behavior, and treat leading `!` -characters normally. This is perhaps relevant if you wish to start the -pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` -characters at the start of a pattern will negate the pattern multiple -times. - -If a pattern starts with `#`, then it is treated as a comment, and -will not match anything. Use `\#` to match a literal `#` at the -start of a line, or set the `nocomment` flag to suppress this behavior. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.1, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then minimatch.match returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/browser.js deleted file mode 100644 index 7d051592..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/browser.js +++ /dev/null @@ -1,1159 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.minimatch = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } - - // "" only matches "" - if (pattern.trim() === '') return p === '' - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } - - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') - } - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function () {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new Error('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var plType - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - plType = stateChar - patternListStack.push({ - type: plType, - start: i - 1, - reStart: re.length - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - re += ')' - var pl = patternListStack.pop() - plType = pl.type - // negation is (?:(?!js)[^/]*) - // The others are (?:) - switch (plType) { - case '!': - negativeLists.push(pl) - re += ')[^/]*?)' - pl.reEnd = re.length - break - case '?': - case '+': - case '*': - re += plType - break - case '@': break // the default anyway - } - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + 3) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - var regExp = new RegExp('^' + re + '$', flags) - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} - -},{"brace-expansion":2,"path":undefined}],2:[function(require,module,exports){ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - var expansions = expand(escapeBraces(str)); - return expansions.filter(identity).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = /^(.*,)+(.+)?$/.test(m.body); - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0]).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - expansions.push([pre, N[j], post[k]].join('')) - } - } - - return expansions; -} - - -},{"balanced-match":3,"concat-map":4}],3:[function(require,module,exports){ -module.exports = balanced; -function balanced(a, b, str) { - var bal = 0; - var m = {}; - var ended = false; - - for (var i = 0; i < str.length; i++) { - if (a == str.substr(i, a.length)) { - if (!('start' in m)) m.start = i; - bal++; - } - else if (b == str.substr(i, b.length) && 'start' in m) { - ended = true; - bal--; - if (!bal) { - m.end = i; - m.pre = str.substr(0, m.start); - m.body = (m.end - m.start > 1) - ? str.substring(m.start + a.length, m.end) - : ''; - m.post = str.slice(m.end + b.length); - return m; - } - } - } - - // if we opened more than we closed, find the one we closed - if (bal && ended) { - var start = m.start + a.length; - m = balanced(a, b, str.substr(start)); - if (m) { - m.start += start; - m.end += start; - m.pre = str.slice(0, start) + m.pre; - } - return m; - } -} - -},{}],4:[function(require,module,exports){ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (Array.isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -},{}]},{},[1])(1) -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/minimatch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/minimatch.js deleted file mode 100644 index ec4c05c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/minimatch.js +++ /dev/null @@ -1,912 +0,0 @@ -module.exports = minimatch -minimatch.Minimatch = Minimatch - -var path = { sep: '/' } -try { - path = require('path') -} catch (er) {} - -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} -var expand = require('brace-expansion') - -// any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]' - -// * => any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } - - // "" only matches "" - if (pattern.trim() === '') return p === '' - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } - - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') - } - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function () {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new Error('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var plType - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - plType = stateChar - patternListStack.push({ - type: plType, - start: i - 1, - reStart: re.length - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - re += ')' - var pl = patternListStack.pop() - plType = pl.type - // negation is (?:(?!js)[^/]*) - // The others are (?:) - switch (plType) { - case '!': - negativeLists.push(pl) - re += ')[^/]*?)' - pl.reEnd = re.length - break - case '?': - case '+': - case '*': - re += plType - break - case '@': break // the default anyway - } - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + 3) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - var regExp = new RegExp('^' + re + '$', flags) - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore deleted file mode 100644 index 353546af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -test -.gitignore -.travis.yml diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md deleted file mode 100644 index 17939297..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js deleted file mode 100644 index 60ecfc74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +++ /dev/null @@ -1,8 +0,0 @@ -var expand = require('./'); - -console.log(expand('http://any.org/archive{1996..1999}/vol{1..4}/part{a,b,c}.html')); -console.log(expand('http://www.numericals.com/file{1..100..10}.txt')); -console.log(expand('http://www.letters.com/file{a..z..2}.txt')); -console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}')); -console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}')); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js deleted file mode 100644 index 932718f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,191 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = /^(.*,)+(.+)?$/.test(m.body); - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore deleted file mode 100644 index fd4f2b06..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -.DS_Store diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml deleted file mode 100644 index 6e5919de..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile deleted file mode 100644 index dd2730cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -test: - @node_modules/.bin/tape test/*.js - -.PHONY: test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md deleted file mode 100644 index 421f3aa5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +++ /dev/null @@ -1,89 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[
            , ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js deleted file mode 100644 index 9ce76f48..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +++ /dev/null @@ -1,4 +0,0 @@ -var balanced = require('./'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js deleted file mode 100644 index 75f3d71c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +++ /dev/null @@ -1,50 +0,0 @@ -module.exports = balanced; -function balanced(a, b, str) { - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i < str.length && i >= 0 && ! result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json deleted file mode 100644 index ac0c6aac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "_args": [ - [ - "balanced-match@^0.3.0", - "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion" - ] - ], - "_from": "balanced-match@>=0.3.0 <0.4.0", - "_id": "balanced-match@0.3.0", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/glob/minimatch/brace-expansion/balanced-match", - "_nodeVersion": "4.2.1", - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "2.14.7", - "_phantomChildren": {}, - "_requested": { - "name": "balanced-match", - "raw": "balanced-match@^0.3.0", - "rawSpec": "^0.3.0", - "scope": null, - "spec": ">=0.3.0 <0.4.0", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp/glob/minimatch/brace-expansion" - ], - "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz", - "_shasum": "a91cdd1ebef1a86659e70ff4def01625fc2d6756", - "_shrinkwrap": null, - "_spec": "balanced-match@^0.3.0", - "_where": "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/balanced-match/issues" - }, - "dependencies": {}, - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "devDependencies": { - "tape": "~4.2.2" - }, - "directories": {}, - "dist": { - "shasum": "a91cdd1ebef1a86659e70ff4def01625fc2d6756", - "tarball": "http://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" - }, - "gitHead": "a7114b0986554787e90b7ac595a043ca75ea77e5", - "homepage": "https://github.com/juliangruber/balanced-match", - "keywords": [ - "balanced", - "match", - "parse", - "regexp", - "test" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "name": "balanced-match", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "scripts": { - "test": "make test" - }, - "testling": { - "browsers": [ - "android-browser/4.2..latest", - "chrome/25..latest", - "chrome/canary", - "firefox/20..latest", - "firefox/nightly", - "ie/8..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "opera/12..latest", - "opera/next", - "safari/5.1..latest" - ], - "files": "test/*.js" - }, - "version": "0.3.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js deleted file mode 100644 index f5e98e3f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +++ /dev/null @@ -1,84 +0,0 @@ -var test = require('tape'); -var balanced = require('..'); - -test('balanced', function(t) { - t.deepEqual(balanced('{', '}', 'pre{in{nest}}post'), { - start: 3, - end: 12, - pre: 'pre', - body: 'in{nest}', - post: 'post' - }); - t.deepEqual(balanced('{', '}', '{{{{{{{{{in}post'), { - start: 8, - end: 11, - pre: '{{{{{{{{', - body: 'in', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre{body{in}post'), { - start: 8, - end: 11, - pre: 'pre{body', - body: 'in', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre}{in{nest}}post'), { - start: 4, - end: 13, - pre: 'pre}', - body: 'in{nest}', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre{body}between{body2}post'), { - start: 3, - end: 8, - pre: 'pre', - body: 'body', - post: 'between{body2}post' - }); - t.notOk(balanced('{', '}', 'nope'), 'should be notOk'); - t.deepEqual(balanced('', '', 'preinnestpost'), { - start: 3, - end: 19, - pre: 'pre', - body: 'innest', - post: 'post' - }); - t.deepEqual(balanced('', '', 'preinnestpost'), { - start: 7, - end: 23, - pre: 'pre', - body: 'innest', - post: 'post' - }); - t.deepEqual(balanced('{{', '}}', 'pre{{{in}}}post'), { - start: 3, - end: 9, - pre: 'pre', - body: '{in}', - post: 'post' - }); - t.deepEqual(balanced('{{{', '}}', 'pre{{{in}}}post'), { - start: 3, - end: 8, - pre: 'pre', - body: 'in', - post: '}post' - }); - t.deepEqual(balanced('{', '}', 'pre{{first}in{second}post'), { - start: 4, - end: 10, - pre: 'pre{', - body: 'first', - post: 'in{second}post' - }); - t.deepEqual(balanced('', 'prepost'), { - start: 3, - end: 4, - pre: 'pre', - body: '', - post: 'post' - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml deleted file mode 100644 index f1d0f13c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +++ /dev/null @@ -1,62 +0,0 @@ -concat-map -========== - -Concatenative mapdashery. - -[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) - -[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) - -example -======= - -``` js -var concatMap = require('concat-map'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); -``` - -*** - -``` -[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] -``` - -methods -======= - -``` js -var concatMap = require('concat-map') -``` - -concatMap(xs, fn) ------------------ - -Return an array of concatenated elements by calling `fn(x, i)` for each element -`x` and each index `i` in the array `xs`. - -When `fn(x, i)` returns an array, its result will be concatenated with the -result array. If `fn(x, i)` returns anything else, that value will be pushed -onto the end of the result array. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install concat-map -``` - -license -======= - -MIT - -notes -===== - -This module was written while sitting high above the ground in a tree. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js deleted file mode 100644 index 33656217..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js deleted file mode 100644 index b29a7812..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json deleted file mode 100644 index 15acbe5c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "_args": [ - [ - "concat-map@0.0.1", - "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion" - ] - ], - "_from": "concat-map@0.0.1", - "_id": "concat-map@0.0.1", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/glob/minimatch/brace-expansion/concat-map", - "_npmUser": { - "email": "mail@substack.net", - "name": "substack" - }, - "_npmVersion": "1.3.21", - "_phantomChildren": {}, - "_requested": { - "name": "concat-map", - "raw": "concat-map@0.0.1", - "rawSpec": "0.0.1", - "scope": null, - "spec": "0.0.1", - "type": "version" - }, - "_requiredBy": [ - "/node-gyp/glob/minimatch/brace-expansion" - ], - "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "_shrinkwrap": null, - "_spec": "concat-map@0.0.1", - "_where": "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion", - "author": { - "email": "mail@substack.net", - "name": "James Halliday", - "url": "http://substack.net" - }, - "bugs": { - "url": "https://github.com/substack/node-concat-map/issues" - }, - "dependencies": {}, - "description": "concatenative mapdashery", - "devDependencies": { - "tape": "~2.4.0" - }, - "directories": { - "example": "example", - "test": "test" - }, - "dist": { - "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "tarball": "http://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "homepage": "https://github.com/substack/node-concat-map", - "keywords": [ - "concat", - "concatMap", - "functional", - "higher-order", - "map" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "name": "concat-map", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-concat-map.git" - }, - "scripts": { - "test": "tape test/*.js" - }, - "testling": { - "browsers": { - "chrome": [ - 10, - 22 - ], - "ff": [ - 10, - 15, - 3.5 - ], - "ie": [ - 6, - 7, - 8, - 9 - ], - "opera": [ - 12 - ], - "safari": [ - 5.1 - ] - }, - "files": "test/*.js" - }, - "version": "0.0.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd7022..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json deleted file mode 100644 index fffa04e2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "_args": [ - [ - "brace-expansion@^1.0.0", - "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch" - ] - ], - "_from": "brace-expansion@>=1.0.0 <2.0.0", - "_id": "brace-expansion@1.1.3", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/glob/minimatch/brace-expansion", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/brace-expansion-1.1.3.tgz_1455216688668_0.948847763473168" - }, - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "brace-expansion", - "raw": "brace-expansion@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp/glob/minimatch" - ], - "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", - "_shasum": "46bff50115d47fc9ab89854abb87d98078a10991", - "_shrinkwrap": null, - "_spec": "brace-expansion@^1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/brace-expansion/issues" - }, - "dependencies": { - "balanced-match": "^0.3.0", - "concat-map": "0.0.1" - }, - "description": "Brace expansion as known from sh/bash", - "devDependencies": { - "tape": "4.4.0" - }, - "directories": {}, - "dist": { - "shasum": "46bff50115d47fc9ab89854abb87d98078a10991", - "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz" - }, - "gitHead": "f0da1bb668e655f67b6b2d660c6e1c19e2a6f231", - "homepage": "https://github.com/juliangruber/brace-expansion", - "keywords": [], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - } - ], - "name": "brace-expansion", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "scripts": { - "gentest": "bash test/generate.sh", - "test": "tape test/*.js" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test/*.js" - }, - "version": "1.1.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/package.json deleted file mode 100644 index 3dc6beb4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "name": "minimatch", - "description": "a glob matcher in javascript", - "version": "2.0.10", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" - }, - "main": "minimatch.js", - "scripts": { - "posttest": "standard minimatch.js test/*.js", - "test": "tap test/*.js", - "prepublish": "browserify -o browser.js -e minimatch.js -s minimatch --bare" - }, - "engines": { - "node": "*" - }, - "dependencies": { - "brace-expansion": "^1.0.0" - }, - "devDependencies": { - "browserify": "^9.0.3", - "standard": "^3.7.2", - "tap": "^1.2.0" - }, - "license": "ISC", - "files": [ - "minimatch.js", - "browser.js" - ], - "gitHead": "6afb85f0c324b321f76a38df81891e562693e257", - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" - }, - "homepage": "https://github.com/isaacs/minimatch#readme", - "_id": "minimatch@2.0.10", - "_shasum": "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7", - "_from": "minimatch@>=2.0.1 <3.0.0", - "_npmVersion": "3.1.0", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7", - "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/package.json deleted file mode 100644 index 434e4696..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "glob", - "description": "a little globber", - "version": "4.5.3", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" - }, - "main": "glob.js", - "files": [ - "glob.js", - "sync.js", - "common.js" - ], - "engines": { - "node": "*" - }, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - }, - "devDependencies": { - "mkdirp": "0", - "rimraf": "^2.2.8", - "tap": "^0.5.0", - "tick": "0.0.6" - }, - "scripts": { - "prepublish": "npm run benchclean", - "profclean": "rm -f v8.log profile.txt", - "test": "npm run profclean && tap test/*.js", - "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js", - "bench": "bash benchmark.sh", - "prof": "bash prof.sh && cat profile.txt", - "benchclean": "bash benchclean.sh" - }, - "license": "ISC", - "gitHead": "a4e461ab59a837eee80a4d8dbdbf5ae1054a646f", - "bugs": { - "url": "https://github.com/isaacs/node-glob/issues" - }, - "homepage": "https://github.com/isaacs/node-glob", - "_id": "glob@4.5.3", - "_shasum": "c6cb73d3226c1efef04de3c56d012f03377ee15f", - "_from": "glob@>=3.0.0 <4.0.0||>=4.0.0 <5.0.0", - "_npmVersion": "2.7.1", - "_nodeVersion": "1.4.2", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "dist": { - "shasum": "c6cb73d3226c1efef04de3c56d012f03377ee15f", - "tarball": "http://registry.npmjs.org/glob/-/glob-4.5.3.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/sync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/sync.js deleted file mode 100644 index f4f5e36d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/glob/sync.js +++ /dev/null @@ -1,457 +0,0 @@ -module.exports = globSync -globSync.GlobSync = GlobSync - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var Glob = require('./glob.js').Glob -var util = require('util') -var path = require('path') -var assert = require('assert') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var isAbsolute = common.isAbsolute -var setopts = common.setopts -var ownProp = common.ownProp -var childrenIgnored = common.childrenIgnored - -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - return new GlobSync(pattern, options).found -} - -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts(this, pattern, options) - - if (this.noprocess) - return this - - var n = this.minimatch.set.length - this.matches = new Array(n) - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false) - } - this._finish() -} - -GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) - if (this.realpath) { - var self = this - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null) - for (var p in matchset) { - try { - p = self._makeAbs(p) - var real = fs.realpathSync(p, this.realpathCache) - set[real] = true - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true - else - throw er - } - } - }) - } - common.finish(this) -} - - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // See if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip processing - if (childrenIgnored(this, read)) - return - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar) -} - - -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar) - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this.matches[index][e] = true - } - // This was the last one, and no stats were needed - return - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) - newPattern = [prefix, e] - else - newPattern = [e] - this._process(newPattern.concat(remain), index, inGlobStar) - } -} - - -GlobSync.prototype._emitMatch = function (index, e) { - var abs = this._makeAbs(e) - if (this.mark) - e = this._mark(e) - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[this._makeAbs(e)] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - if (this.stat) - this._stat(e) -} - - -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) - - var entries - var lstat - var stat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - // lstat failed, doesn't exist - return null - } - - var isSym = lstat.isSymbolicLink() - this.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) - this.cache[abs] = 'FILE' - else - entries = this._readdir(abs, false) - - return entries -} - -GlobSync.prototype._readdir = function (abs, inGlobStar) { - var entries - - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return null - - if (Array.isArray(c)) - return c - } - - try { - return this._readdirEntries(abs, fs.readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er) - return null - } -} - -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - - // mark and cache dir-ness - return entries -} - -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) throw er - if (!this.silent) console.error('glob error', er) - break - } -} - -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - - var entries = this._readdir(abs, inGlobStar) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false) - - var len = entries.length - var isSym = this.symlinks[abs] - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true) - } -} - -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this.matches[index][prefix] = true -} - -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return false - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c - - if (needDir && c === 'FILE') - return false - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (!stat) { - var lstat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - return false - } - - if (lstat.isSymbolicLink()) { - try { - stat = fs.statSync(abs) - } catch (er) { - stat = lstat - } - } else { - stat = lstat - } - } - - this.statCache[abs] = stat - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return false - - return c -} - -GlobSync.prototype._mark = function (p) { - return common.mark(this, p) -} - -GlobSync.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/.travis.yml deleted file mode 100644 index fca8ef01..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.10 - - 0.11 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE deleted file mode 100644 index 05a40109..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2009, 2010, 2011 Isaac Z. Schlueter. -All rights reserved. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/README.md deleted file mode 100644 index 5b3967ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/README.md +++ /dev/null @@ -1,218 +0,0 @@ -# minimatch - -A minimal matching utility. - -[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch) - - -This is the matching library used internally by npm. - -Eventually, it will replace the C binding in node-glob. - -It works by converting glob expressions into JavaScript `RegExp` -objects. - -## Usage - -```javascript -var minimatch = require("minimatch") - -minimatch("bar.foo", "*.foo") // true! -minimatch("bar.foo", "*.bar") // false! -minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy! -``` - -## Features - -Supports these glob features: - -* Brace Expansion -* Extended glob matching -* "Globstar" `**` matching - -See: - -* `man sh` -* `man bash` -* `man 3 fnmatch` -* `man 5 gitignore` - -## Minimatch Class - -Create a minimatch object by instanting the `minimatch.Minimatch` class. - -```javascript -var Minimatch = require("minimatch").Minimatch -var mm = new Minimatch(pattern, options) -``` - -### Properties - -* `pattern` The original pattern the minimatch object represents. -* `options` The options supplied to the constructor. -* `set` A 2-dimensional array of regexp or string expressions. - Each row in the - array corresponds to a brace-expanded pattern. Each item in the row - corresponds to a single path-part. For example, the pattern - `{a,b/c}/d` would expand to a set of patterns like: - - [ [ a, d ] - , [ b, c, d ] ] - - If a portion of the pattern doesn't have any "magic" in it - (that is, it's something like `"foo"` rather than `fo*o?`), then it - will be left as a string rather than converted to a regular - expression. - -* `regexp` Created by the `makeRe` method. A single regular expression - expressing the entire pattern. This is useful in cases where you wish - to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled. -* `negate` True if the pattern is negated. -* `comment` True if the pattern is a comment. -* `empty` True if the pattern is `""`. - -### Methods - -* `makeRe` Generate the `regexp` member if necessary, and return it. - Will return `false` if the pattern is invalid. -* `match(fname)` Return true if the filename matches the pattern, or - false otherwise. -* `matchOne(fileArray, patternArray, partial)` Take a `/`-split - filename, and match it against a single row in the `regExpSet`. This - method is mainly for internal use, but is exposed so that it can be - used by a glob-walker that needs to avoid excessive filesystem calls. - -All other methods are internal, and will be called as necessary. - -## Functions - -The top-level exported function has a `cache` property, which is an LRU -cache set to store 100 items. So, calling these methods repeatedly -with the same pattern and options will use the same Minimatch object, -saving the cost of parsing it multiple times. - -### minimatch(path, pattern, options) - -Main export. Tests a path against the pattern using the options. - -```javascript -var isJS = minimatch(file, "*.js", { matchBase: true }) -``` - -### minimatch.filter(pattern, options) - -Returns a function that tests its -supplied argument, suitable for use with `Array.filter`. Example: - -```javascript -var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true})) -``` - -### minimatch.match(list, pattern, options) - -Match against the list of -files, in the style of fnmatch or glob. If nothing is matched, and -options.nonull is set, then return a list containing the pattern itself. - -```javascript -var javascripts = minimatch.match(fileList, "*.js", {matchBase: true})) -``` - -### minimatch.makeRe(pattern, options) - -Make a regular expression object from the pattern. - -## Options - -All options are `false` by default. - -### debug - -Dump a ton of stuff to stderr. - -### nobrace - -Do not expand `{a,b}` and `{1..3}` brace sets. - -### noglobstar - -Disable `**` matching against multiple folder names. - -### dot - -Allow patterns to match filenames starting with a period, even if -the pattern does not explicitly have a period in that spot. - -Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot` -is set. - -### noext - -Disable "extglob" style patterns like `+(a|b)`. - -### nocase - -Perform a case-insensitive match. - -### nonull - -When a match is not found by `minimatch.match`, return a list containing -the pattern itself if this option is set. When not set, an empty list -is returned if there are no matches. - -### matchBase - -If set, then patterns without slashes will be matched -against the basename of the path if it contains slashes. For example, -`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. - -### nocomment - -Suppress the behavior of treating `#` at the start of a pattern as a -comment. - -### nonegate - -Suppress the behavior of treating a leading `!` character as negation. - -### flipNegate - -Returns from negate expressions the same as if they were not negated. -(Ie, true on a hit, false on a miss.) - - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between minimatch and other -implementations, and are intentional. - -If the pattern starts with a `!` character, then it is negated. Set the -`nonegate` flag to suppress this behavior, and treat leading `!` -characters normally. This is perhaps relevant if you wish to start the -pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` -characters at the start of a pattern will negate the pattern multiple -times. - -If a pattern starts with `#`, then it is treated as a comment, and -will not match anything. Use `\#` to match a literal `#` at the -start of a line, or set the `nocomment` flag to suppress this behavior. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.1, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then minimatch.match returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js deleted file mode 100644 index 47617868..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js +++ /dev/null @@ -1,1073 +0,0 @@ -;(function (require, exports, module, platform) { - -if (module) module.exports = minimatch -else exports.minimatch = minimatch - -if (!require) { - require = function (id) { - switch (id) { - case "sigmund": return function sigmund (obj) { - return JSON.stringify(obj) - } - case "path": return { basename: function (f) { - f = f.split(/[\/\\]/) - var e = f.pop() - if (!e) e = f.pop() - return e - }} - case "lru-cache": return function LRUCache () { - // not quite an LRU, but still space-limited. - var cache = {} - var cnt = 0 - this.set = function (k, v) { - cnt ++ - if (cnt >= 100) cache = {} - cache[k] = v - } - this.get = function (k) { return cache[k] } - } - } - } -} - -minimatch.Minimatch = Minimatch - -var LRU = require("lru-cache") - , cache = minimatch.cache = new LRU({max: 100}) - , GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} - , sigmund = require("sigmund") - -var path = require("path") - // any single thing other than / - // don't need to escape / when using new RegExp() - , qmark = "[^/]" - - // * => any number of characters - , star = qmark + "*?" - - // ** when dots are allowed. Anything goes, except .. and . - // not (^ or / followed by one or two dots followed by $ or /), - // followed by anything, any number of times. - , twoStarDot = "(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?" - - // not a ^ or / followed by a dot, - // followed by anything, any number of times. - , twoStarNoDot = "(?:(?!(?:\\\/|^)\\.).)*?" - - // characters that need to be escaped in RegExp. - , reSpecials = charSet("().*{}+?[]^$\\!") - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split("").reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - - -function minimatch (p, pattern, options) { - if (typeof pattern !== "string") { - throw new TypeError("glob pattern string required") - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === "#") { - return false - } - - // "" only matches "" - if (pattern.trim() === "") return p === "" - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options, cache) - } - - if (typeof pattern !== "string") { - throw new TypeError("glob pattern string required") - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows: need to use /, not \ - // On other platforms, \ is a valid (albeit bad) filename char. - if (platform === "win32") { - pattern = pattern.split("\\").join("/") - } - - // lru storage. - // these things aren't particularly big, but walking down the string - // and turning it into a regexp can get pretty costly. - var cacheKey = pattern + "\n" + sigmund(options) - var cached = minimatch.cache.get(cacheKey) - if (cached) return cached - minimatch.cache.set(cacheKey, this) - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function() {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === "#") { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return -1 === s.indexOf(false) - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - , negate = false - , options = this.options - , negateOffset = 0 - - if (options.nonegate) return - - for ( var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === "!" - ; i ++) { - negate = !negate - negateOffset ++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return new Minimatch(pattern, options).braceExpand() -} - -Minimatch.prototype.braceExpand = braceExpand - -function pad(n, width, z) { - z = z || '0'; - n = n + ''; - return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n; -} - -function braceExpand (pattern, options) { - options = options || this.options - pattern = typeof pattern === "undefined" - ? this.pattern : pattern - - if (typeof pattern === "undefined") { - throw new Error("undefined pattern") - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - var escaping = false - - // examples and comments refer to this crazy pattern: - // a{b,c{d,e},{f,g}h}x{y,z} - // expected: - // abxy - // abxz - // acdxy - // acdxz - // acexy - // acexz - // afhxy - // afhxz - // aghxy - // aghxz - - // everything before the first \{ is just a prefix. - // So, we pluck that off, and work with the rest, - // and then prepend it to everything we find. - if (pattern.charAt(0) !== "{") { - this.debug(pattern) - var prefix = null - for (var i = 0, l = pattern.length; i < l; i ++) { - var c = pattern.charAt(i) - this.debug(i, c) - if (c === "\\") { - escaping = !escaping - } else if (c === "{" && !escaping) { - prefix = pattern.substr(0, i) - break - } - } - - // actually no sets, all { were escaped. - if (prefix === null) { - this.debug("no sets") - return [pattern] - } - - var tail = braceExpand.call(this, pattern.substr(i), options) - return tail.map(function (t) { - return prefix + t - }) - } - - // now we have something like: - // {b,c{d,e},{f,g}h}x{y,z} - // walk through the set, expanding each part, until - // the set ends. then, we'll expand the suffix. - // If the set only has a single member, then'll put the {} back - - // first, handle numeric sets, since they're easier - var numset = pattern.match(/^\{(-?[0-9]+)\.\.(-?[0-9]+)\}/) - if (numset) { - this.debug("numset", numset[1], numset[2]) - var suf = braceExpand.call(this, pattern.substr(numset[0].length), options) - , start = +numset[1] - , needPadding = numset[1][0] === '0' - , startWidth = numset[1].length - , padded - , end = +numset[2] - , inc = start > end ? -1 : 1 - , set = [] - - for (var i = start; i != (end + inc); i += inc) { - padded = needPadding ? pad(i, startWidth) : i + '' - // append all the suffixes - for (var ii = 0, ll = suf.length; ii < ll; ii ++) { - set.push(padded + suf[ii]) - } - } - return set - } - - // ok, walk through the set - // We hope, somewhat optimistically, that there - // will be a } at the end. - // If the closing brace isn't found, then the pattern is - // interpreted as braceExpand("\\" + pattern) so that - // the leading \{ will be interpreted literally. - var i = 1 // skip the \{ - , depth = 1 - , set = [] - , member = "" - , sawEnd = false - , escaping = false - - function addMember () { - set.push(member) - member = "" - } - - this.debug("Entering for") - FOR: for (i = 1, l = pattern.length; i < l; i ++) { - var c = pattern.charAt(i) - this.debug("", i, c) - - if (escaping) { - escaping = false - member += "\\" + c - } else { - switch (c) { - case "\\": - escaping = true - continue - - case "{": - depth ++ - member += "{" - continue - - case "}": - depth -- - // if this closes the actual set, then we're done - if (depth === 0) { - addMember() - // pluck off the close-brace - i ++ - break FOR - } else { - member += c - continue - } - - case ",": - if (depth === 1) { - addMember() - } else { - member += c - } - continue - - default: - member += c - continue - } // switch - } // else - } // for - - // now we've either finished the set, and the suffix is - // pattern.substr(i), or we have *not* closed the set, - // and need to escape the leading brace - if (depth !== 0) { - this.debug("didn't close", pattern) - return braceExpand.call(this, "\\" + pattern, options) - } - - // x{y,z} -> ["xy", "xz"] - this.debug("set", set) - this.debug("suffix", pattern.substr(i)) - var suf = braceExpand.call(this, pattern.substr(i), options) - // ["b", "c{d,e}","{f,g}h"] -> - // [["b"], ["cd", "ce"], ["fh", "gh"]] - var addBraces = set.length === 1 - this.debug("set pre-expanded", set) - set = set.map(function (p) { - return braceExpand.call(this, p, options) - }, this) - this.debug("set expanded", set) - - - // [["b"], ["cd", "ce"], ["fh", "gh"]] -> - // ["b", "cd", "ce", "fh", "gh"] - set = set.reduce(function (l, r) { - return l.concat(r) - }) - - if (addBraces) { - set = set.map(function (s) { - return "{" + s + "}" - }) - } - - // now attach the suffixes. - var ret = [] - for (var i = 0, l = set.length; i < l; i ++) { - for (var ii = 0, ll = suf.length; ii < ll; ii ++) { - ret.push(set[i] + suf[ii]) - } - } - return ret -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === "**") return GLOBSTAR - if (pattern === "") return "" - - var re = "" - , hasMagic = !!options.nocase - , escaping = false - // ? => one single character - , patternListStack = [] - , plType - , stateChar - , inClass = false - , reClassStart = -1 - , classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - , patternStart = pattern.charAt(0) === "." ? "" // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? "(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))" - : "(?!\\.)" - , self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case "*": - re += star - hasMagic = true - break - case "?": - re += qmark - hasMagic = true - break - default: - re += "\\"+stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for ( var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i ++ ) { - - this.debug("%s\t%s %s %j", pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += "\\" + c - escaping = false - continue - } - - SWITCH: switch (c) { - case "/": - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case "\\": - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case "?": - case "*": - case "+": - case "@": - case "!": - this.debug("%s\t%s %s %j <-- stateChar", pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === "!" && i === classStart + 1) c = "^" - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case "(": - if (inClass) { - re += "(" - continue - } - - if (!stateChar) { - re += "\\(" - continue - } - - plType = stateChar - patternListStack.push({ type: plType - , start: i - 1 - , reStart: re.length }) - // negation is (?:(?!js)[^/]*) - re += stateChar === "!" ? "(?:(?!" : "(?:" - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ")": - if (inClass || !patternListStack.length) { - re += "\\)" - continue - } - - clearStateChar() - hasMagic = true - re += ")" - plType = patternListStack.pop().type - // negation is (?:(?!js)[^/]*) - // The others are (?:) - switch (plType) { - case "!": - re += "[^/]*?)" - break - case "?": - case "+": - case "*": re += plType - case "@": break // the default anyway - } - continue - - case "|": - if (inClass || !patternListStack.length || escaping) { - re += "\\|" - escaping = false - continue - } - - clearStateChar() - re += "|" - continue - - // these are mostly the same in regexp and glob - case "[": - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += "\\" + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case "]": - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += "\\" + c - escaping = false - continue - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === "^" && inClass)) { - re += "\\" - } - - re += c - - } // switch - } // for - - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - var cs = pattern.substr(classStart + 1) - , sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + "\\[" + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - var pl - while (pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + 3) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = "\\" - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + "|" - }) - - this.debug("tail=%j\n %s", tail, tail) - var t = pl.type === "*" ? star - : pl.type === "?" ? qmark - : "\\" + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) - + t + "\\(" - + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += "\\\\" - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case ".": - case "[": - case "(": addPatternStart = true - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== "" && hasMagic) re = "(?=.)" + re - - if (addPatternStart) re = patternStart + re - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [ re, hasMagic ] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? "i" : "" - , regExp = new RegExp("^" + re + "$", flags) - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) return this.regexp = false - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - , flags = options.nocase ? "i" : "" - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === "string") ? regExpEscape(p) - : p._src - }).join("\\\/") - }).join("|") - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = "^(?:" + re + ")$" - - // can match anything, as long as it's not this. - if (this.negate) re = "^(?!" + re + ").*$" - - try { - return this.regexp = new RegExp(re, flags) - } catch (ex) { - return this.regexp = false - } -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug("match", f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === "" - - if (f === "/" && partial) return true - - var options = this.options - - // windows: need to use /, not \ - // On other platforms, \ is a valid (albeit bad) filename char. - if (platform === "win32") { - f = f.split("\\").join("/") - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, "split", f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, "set", set) - - // Find the basename of the path by looking for the last non-empty segment - var filename; - for (var i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (var i = 0, l = set.length; i < l; i ++) { - var pattern = set[i], file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug("matchOne", - { "this": this - , file: file - , pattern: pattern }) - - this.debug("matchOne", file.length, pattern.length) - - for ( var fi = 0 - , pi = 0 - , fl = file.length - , pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi ++, pi ++ ) { - - this.debug("matchOne loop") - var p = pattern[pi] - , f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - , pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for ( ; fi < fl; fi ++) { - if (file[fi] === "." || file[fi] === ".." || - (!options.dot && file[fi].charAt(0) === ".")) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - WHILE: while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', - file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === "." || swallowee === ".." || - (!options.dot && swallowee.charAt(0) === ".")) { - this.debug("dot detected!", file, fr, pattern, pr) - break WHILE - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr ++ - } - } - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug("\n>>> no match, partial?", file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === "string") { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug("string match", p, f, hit) - } else { - hit = f.match(p) - this.debug("pattern match", p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === "") - return emptyFileEnd - } - - // should be unreachable. - throw new Error("wtf?") -} - - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, "$1") -} - - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") -} - -})( typeof require === "function" ? require : null, - this, - typeof module === "object" ? module : null, - typeof process === "object" ? process.platform : "win32" - ) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/.npmignore deleted file mode 100644 index 07e6e472..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/.travis.yml deleted file mode 100644 index 4af02b3d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - '0.8' - - '0.10' - - '0.12' - - 'iojs' -before_install: - - npm install -g npm@latest diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS deleted file mode 100644 index 4a0bc503..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +++ /dev/null @@ -1,14 +0,0 @@ -# Authors, sorted by whether or not they are me -Isaac Z. Schlueter -Brian Cottingham -Carlos Brito Lage -Jesse Dailey -Kevin O'Hara -Marco Rogers -Mark Cavage -Marko Mikulicic -Nathan Rajlich -Satheesh Natesan -Trent Mick -ashleybrener -n4kz diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/README.md deleted file mode 100644 index c06814e0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/README.md +++ /dev/null @@ -1,137 +0,0 @@ -# lru cache - -A cache object that deletes the least-recently-used items. - -## Usage: - -```javascript -var LRU = require("lru-cache") - , options = { max: 500 - , length: function (n) { return n * 2 } - , dispose: function (key, n) { n.close() } - , maxAge: 1000 * 60 * 60 } - , cache = LRU(options) - , otherCache = LRU(50) // sets just the max size - -cache.set("key", "value") -cache.get("key") // "value" - -cache.reset() // empty the cache -``` - -If you put more stuff in it, then items will fall out. - -If you try to put an oversized thing in it, then it'll fall out right -away. - -## Keys should always be Strings or Numbers - -Note: this module will print warnings to `console.error` if you use a -key that is not a String or Number. Because items are stored in an -object, which coerces keys to a string, it won't go well for you if -you try to use a key that is not a unique string, it'll cause surprise -collisions. For example: - -```JavaScript -// Bad Example! Dont' do this! -var cache = LRU() -var a = {} -var b = {} -cache.set(a, 'this is a') -cache.set(b, 'this is b') -console.log(cache.get(a)) // prints: 'this is b' -``` - -## Options - -* `max` The maximum size of the cache, checked by applying the length - function to all values in the cache. Not setting this is kind of - silly, since that's the whole purpose of this lib, but it defaults - to `Infinity`. -* `maxAge` Maximum age in ms. Items are not pro-actively pruned out - as they age, but if you try to get an item that is too old, it'll - drop it and return undefined instead of giving it to you. -* `length` Function that is used to calculate the length of stored - items. If you're storing strings or buffers, then you probably want - to do something like `function(n){return n.length}`. The default is - `function(n){return 1}`, which is fine if you want to store `max` - like-sized things. -* `dispose` Function that is called on items when they are dropped - from the cache. This can be handy if you want to close file - descriptors or do other cleanup tasks when items are no longer - accessible. Called with `key, value`. It's called *before* - actually removing the item from the internal cache, so if you want - to immediately put it back in, you'll have to do that in a - `nextTick` or `setTimeout` callback or it won't do anything. -* `stale` By default, if you set a `maxAge`, it'll only actually pull - stale items out of the cache when you `get(key)`. (That is, it's - not pre-emptively doing a `setTimeout` or anything.) If you set - `stale:true`, it'll return the stale value before deleting it. If - you don't set this, then it'll return `undefined` when you try to - get a stale entry, as if it had already been deleted. - -## API - -* `set(key, value, maxAge)` -* `get(key) => value` - - Both of these will update the "recently used"-ness of the key. - They do what you think. `max` is optional and overrides the - cache `max` option if provided. - -* `peek(key)` - - Returns the key value (or `undefined` if not found) without - updating the "recently used"-ness of the key. - - (If you find yourself using this a lot, you *might* be using the - wrong sort of data structure, but there are some use cases where - it's handy.) - -* `del(key)` - - Deletes a key out of the cache. - -* `reset()` - - Clear the cache entirely, throwing away all values. - -* `has(key)` - - Check if a key is in the cache, without updating the recent-ness - or deleting it for being stale. - -* `forEach(function(value,key,cache), [thisp])` - - Just like `Array.prototype.forEach`. Iterates over all the keys - in the cache, in order of recent-ness. (Ie, more recently used - items are iterated over first.) - -* `keys()` - - Return an array of the keys in the cache. - -* `values()` - - Return an array of the values in the cache. - -* `length()` - - Return total length of objects in cache taking into account - `length` options function. - -* `itemCount` - - Return total quantity of objects currently in cache. Note, that - `stale` (see options) items are returned as part of this item - count. - -* `dump()` - - Return an array of the cache entries ready for serialization and usage - with 'destinationCache.load(arr)`. - -* `load(cacheEntriesArray)` - - Loads another cache entries array, obtained with `sourceCache.dump()`, - into the cache. The destination cache is reset before loading new entries diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js deleted file mode 100644 index 2bbe653b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +++ /dev/null @@ -1,334 +0,0 @@ -;(function () { // closure for web browsers - -if (typeof module === 'object' && module.exports) { - module.exports = LRUCache -} else { - // just set the global for non-node platforms. - this.LRUCache = LRUCache -} - -function hOP (obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key) -} - -function naiveLength () { return 1 } - -var didTypeWarning = false -function typeCheckKey(key) { - if (!didTypeWarning && typeof key !== 'string' && typeof key !== 'number') { - didTypeWarning = true - console.error(new TypeError("LRU: key must be a string or number. Almost certainly a bug! " + typeof key).stack) - } -} - -function LRUCache (options) { - if (!(this instanceof LRUCache)) - return new LRUCache(options) - - if (typeof options === 'number') - options = { max: options } - - if (!options) - options = {} - - this._max = options.max - // Kind of weird to have a default max of Infinity, but oh well. - if (!this._max || !(typeof this._max === "number") || this._max <= 0 ) - this._max = Infinity - - this._lengthCalculator = options.length || naiveLength - if (typeof this._lengthCalculator !== "function") - this._lengthCalculator = naiveLength - - this._allowStale = options.stale || false - this._maxAge = options.maxAge || null - this._dispose = options.dispose - this.reset() -} - -// resize the cache when the max changes. -Object.defineProperty(LRUCache.prototype, "max", - { set : function (mL) { - if (!mL || !(typeof mL === "number") || mL <= 0 ) mL = Infinity - this._max = mL - if (this._length > this._max) trim(this) - } - , get : function () { return this._max } - , enumerable : true - }) - -// resize the cache when the lengthCalculator changes. -Object.defineProperty(LRUCache.prototype, "lengthCalculator", - { set : function (lC) { - if (typeof lC !== "function") { - this._lengthCalculator = naiveLength - this._length = this._itemCount - for (var key in this._cache) { - this._cache[key].length = 1 - } - } else { - this._lengthCalculator = lC - this._length = 0 - for (var key in this._cache) { - this._cache[key].length = this._lengthCalculator(this._cache[key].value) - this._length += this._cache[key].length - } - } - - if (this._length > this._max) trim(this) - } - , get : function () { return this._lengthCalculator } - , enumerable : true - }) - -Object.defineProperty(LRUCache.prototype, "length", - { get : function () { return this._length } - , enumerable : true - }) - - -Object.defineProperty(LRUCache.prototype, "itemCount", - { get : function () { return this._itemCount } - , enumerable : true - }) - -LRUCache.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - var i = 0 - var itemCount = this._itemCount - - for (var k = this._mru - 1; k >= 0 && i < itemCount; k--) if (this._lruList[k]) { - i++ - var hit = this._lruList[k] - if (isStale(this, hit)) { - del(this, hit) - if (!this._allowStale) hit = undefined - } - if (hit) { - fn.call(thisp, hit.value, hit.key, this) - } - } -} - -LRUCache.prototype.keys = function () { - var keys = new Array(this._itemCount) - var i = 0 - for (var k = this._mru - 1; k >= 0 && i < this._itemCount; k--) if (this._lruList[k]) { - var hit = this._lruList[k] - keys[i++] = hit.key - } - return keys -} - -LRUCache.prototype.values = function () { - var values = new Array(this._itemCount) - var i = 0 - for (var k = this._mru - 1; k >= 0 && i < this._itemCount; k--) if (this._lruList[k]) { - var hit = this._lruList[k] - values[i++] = hit.value - } - return values -} - -LRUCache.prototype.reset = function () { - if (this._dispose && this._cache) { - for (var k in this._cache) { - this._dispose(k, this._cache[k].value) - } - } - - this._cache = Object.create(null) // hash of items by key - this._lruList = Object.create(null) // list of items in order of use recency - this._mru = 0 // most recently used - this._lru = 0 // least recently used - this._length = 0 // number of items in the list - this._itemCount = 0 -} - -LRUCache.prototype.dump = function () { - var arr = [] - var i = 0 - - for (var k = this._mru - 1; k >= 0 && i < this._itemCount; k--) if (this._lruList[k]) { - var hit = this._lruList[k] - if (!isStale(this, hit)) { - //Do not store staled hits - ++i - arr.push({ - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - }); - } - } - //arr has the most read first - return arr -} - -LRUCache.prototype.dumpLru = function () { - return this._lruList -} - -LRUCache.prototype.set = function (key, value, maxAge) { - maxAge = maxAge || this._maxAge - typeCheckKey(key) - - var now = maxAge ? Date.now() : 0 - var len = this._lengthCalculator(value) - - if (hOP(this._cache, key)) { - if (len > this._max) { - del(this, this._cache[key]) - return false - } - // dispose of the old one before overwriting - if (this._dispose) - this._dispose(key, this._cache[key].value) - - this._cache[key].now = now - this._cache[key].maxAge = maxAge - this._cache[key].value = value - this._length += (len - this._cache[key].length) - this._cache[key].length = len - this.get(key) - - if (this._length > this._max) - trim(this) - - return true - } - - var hit = new Entry(key, value, this._mru++, len, now, maxAge) - - // oversized objects fall out of cache automatically. - if (hit.length > this._max) { - if (this._dispose) this._dispose(key, value) - return false - } - - this._length += hit.length - this._lruList[hit.lu] = this._cache[key] = hit - this._itemCount ++ - - if (this._length > this._max) - trim(this) - - return true -} - -LRUCache.prototype.has = function (key) { - typeCheckKey(key) - if (!hOP(this._cache, key)) return false - var hit = this._cache[key] - if (isStale(this, hit)) { - return false - } - return true -} - -LRUCache.prototype.get = function (key) { - typeCheckKey(key) - return get(this, key, true) -} - -LRUCache.prototype.peek = function (key) { - typeCheckKey(key) - return get(this, key, false) -} - -LRUCache.prototype.pop = function () { - var hit = this._lruList[this._lru] - del(this, hit) - return hit || null -} - -LRUCache.prototype.del = function (key) { - typeCheckKey(key) - del(this, this._cache[key]) -} - -LRUCache.prototype.load = function (arr) { - //reset the cache - this.reset(); - - var now = Date.now() - //A previous serialized cache has the most recent items first - for (var l = arr.length - 1; l >= 0; l-- ) { - var hit = arr[l] - typeCheckKey(hit.k) - var expiresAt = hit.e || 0 - if (expiresAt === 0) { - //the item was created without expiration in a non aged cache - this.set(hit.k, hit.v) - } else { - var maxAge = expiresAt - now - //dont add already expired items - if (maxAge > 0) this.set(hit.k, hit.v, maxAge) - } - } -} - -function get (self, key, doUse) { - typeCheckKey(key) - var hit = self._cache[key] - if (hit) { - if (isStale(self, hit)) { - del(self, hit) - if (!self._allowStale) hit = undefined - } else { - if (doUse) use(self, hit) - } - if (hit) hit = hit.value - } - return hit -} - -function isStale(self, hit) { - if (!hit || (!hit.maxAge && !self._maxAge)) return false - var stale = false; - var diff = Date.now() - hit.now - if (hit.maxAge) { - stale = diff > hit.maxAge - } else { - stale = self._maxAge && (diff > self._maxAge) - } - return stale; -} - -function use (self, hit) { - shiftLU(self, hit) - hit.lu = self._mru ++ - self._lruList[hit.lu] = hit -} - -function trim (self) { - while (self._lru < self._mru && self._length > self._max) - del(self, self._lruList[self._lru]) -} - -function shiftLU (self, hit) { - delete self._lruList[ hit.lu ] - while (self._lru < self._mru && !self._lruList[self._lru]) self._lru ++ -} - -function del (self, hit) { - if (hit) { - if (self._dispose) self._dispose(hit.key, hit.value) - self._length -= hit.length - self._itemCount -- - delete self._cache[ hit.key ] - shiftLU(self, hit) - } -} - -// classy, since V8 prefers predictable objects. -function Entry (key, value, lu, length, now, maxAge) { - this.key = key - this.value = value - this.lu = lu - this.length = length - this.now = now - if (maxAge) this.maxAge = maxAge -} - -})() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/package.json deleted file mode 100644 index 411b59ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "_args": [ - [ - "lru-cache@2", - "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/minimatch" - ] - ], - "_from": "lru-cache@>=2.0.0 <3.0.0", - "_id": "lru-cache@2.7.3", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/minimatch/lru-cache", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "lru-cache", - "raw": "lru-cache@2", - "rawSpec": "2", - "scope": null, - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp/minimatch" - ], - "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "_shasum": "6d4524e8b955f95d4f5b58851ce21dd72fb4e952", - "_shrinkwrap": null, - "_spec": "lru-cache@2", - "_where": "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/minimatch", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter" - }, - "bugs": { - "url": "https://github.com/isaacs/node-lru-cache/issues" - }, - "dependencies": {}, - "description": "A cache object that deletes the least-recently-used items.", - "devDependencies": { - "tap": "^1.2.0", - "weak": "" - }, - "directories": {}, - "dist": { - "shasum": "6d4524e8b955f95d4f5b58851ce21dd72fb4e952", - "tarball": "http://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" - }, - "gitHead": "292048199f6d28b77fbe584279a1898e25e4c714", - "homepage": "https://github.com/isaacs/node-lru-cache#readme", - "keywords": [ - "cache", - "lru", - "mru" - ], - "license": "ISC", - "main": "lib/lru-cache.js", - "maintainers": [ - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - } - ], - "name": "lru-cache", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-lru-cache.git" - }, - "scripts": { - "test": "tap test --gc" - }, - "version": "2.7.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/basic.js deleted file mode 100644 index b47225f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/basic.js +++ /dev/null @@ -1,396 +0,0 @@ -var test = require("tap").test - , LRU = require("../") - -test("basic", function (t) { - var cache = new LRU({max: 10}) - cache.set("key", "value") - t.equal(cache.get("key"), "value") - t.equal(cache.get("nada"), undefined) - t.equal(cache.length, 1) - t.equal(cache.max, 10) - t.end() -}) - -test("least recently set", function (t) { - var cache = new LRU(2) - cache.set("a", "A") - cache.set("b", "B") - cache.set("c", "C") - t.equal(cache.get("c"), "C") - t.equal(cache.get("b"), "B") - t.equal(cache.get("a"), undefined) - t.end() -}) - -test("lru recently gotten", function (t) { - var cache = new LRU(2) - cache.set("a", "A") - cache.set("b", "B") - cache.get("a") - cache.set("c", "C") - t.equal(cache.get("c"), "C") - t.equal(cache.get("b"), undefined) - t.equal(cache.get("a"), "A") - t.end() -}) - -test("del", function (t) { - var cache = new LRU(2) - cache.set("a", "A") - cache.del("a") - t.equal(cache.get("a"), undefined) - t.end() -}) - -test("max", function (t) { - var cache = new LRU(3) - - // test changing the max, verify that the LRU items get dropped. - cache.max = 100 - for (var i = 0; i < 100; i ++) cache.set(i, i) - t.equal(cache.length, 100) - for (var i = 0; i < 100; i ++) { - t.equal(cache.get(i), i) - } - cache.max = 3 - t.equal(cache.length, 3) - for (var i = 0; i < 97; i ++) { - t.equal(cache.get(i), undefined) - } - for (var i = 98; i < 100; i ++) { - t.equal(cache.get(i), i) - } - - // now remove the max restriction, and try again. - cache.max = "hello" - for (var i = 0; i < 100; i ++) cache.set(i, i) - t.equal(cache.length, 100) - for (var i = 0; i < 100; i ++) { - t.equal(cache.get(i), i) - } - // should trigger an immediate resize - cache.max = 3 - t.equal(cache.length, 3) - for (var i = 0; i < 97; i ++) { - t.equal(cache.get(i), undefined) - } - for (var i = 98; i < 100; i ++) { - t.equal(cache.get(i), i) - } - t.end() -}) - -test("reset", function (t) { - var cache = new LRU(10) - cache.set("a", "A") - cache.set("b", "B") - cache.reset() - t.equal(cache.length, 0) - t.equal(cache.max, 10) - t.equal(cache.get("a"), undefined) - t.equal(cache.get("b"), undefined) - t.end() -}) - - -test("basic with weighed length", function (t) { - var cache = new LRU({ - max: 100, - length: function (item) { return item.size } - }) - cache.set("key", {val: "value", size: 50}) - t.equal(cache.get("key").val, "value") - t.equal(cache.get("nada"), undefined) - t.equal(cache.lengthCalculator(cache.get("key")), 50) - t.equal(cache.length, 50) - t.equal(cache.max, 100) - t.end() -}) - - -test("weighed length item too large", function (t) { - var cache = new LRU({ - max: 10, - length: function (item) { return item.size } - }) - t.equal(cache.max, 10) - - // should fall out immediately - cache.set("key", {val: "value", size: 50}) - - t.equal(cache.length, 0) - t.equal(cache.get("key"), undefined) - t.end() -}) - -test("least recently set with weighed length", function (t) { - var cache = new LRU({ - max:8, - length: function (item) { return item.length } - }) - cache.set("a", "A") - cache.set("b", "BB") - cache.set("c", "CCC") - cache.set("d", "DDDD") - t.equal(cache.get("d"), "DDDD") - t.equal(cache.get("c"), "CCC") - t.equal(cache.get("b"), undefined) - t.equal(cache.get("a"), undefined) - t.end() -}) - -test("lru recently gotten with weighed length", function (t) { - var cache = new LRU({ - max: 8, - length: function (item) { return item.length } - }) - cache.set("a", "A") - cache.set("b", "BB") - cache.set("c", "CCC") - cache.get("a") - cache.get("b") - cache.set("d", "DDDD") - t.equal(cache.get("c"), undefined) - t.equal(cache.get("d"), "DDDD") - t.equal(cache.get("b"), "BB") - t.equal(cache.get("a"), "A") - t.end() -}) - -test("lru recently updated with weighed length", function (t) { - var cache = new LRU({ - max: 8, - length: function (item) { return item.length } - }) - cache.set("a", "A") - cache.set("b", "BB") - cache.set("c", "CCC") - t.equal(cache.length, 6) //CCC BB A - cache.set("a", "+A") - t.equal(cache.length, 7) //+A CCC BB - cache.set("b", "++BB") - t.equal(cache.length, 6) //++BB +A - t.equal(cache.get("c"), undefined) - - cache.set("c", "oversized") - t.equal(cache.length, 6) //++BB +A - t.equal(cache.get("c"), undefined) - - cache.set("a", "oversized") - t.equal(cache.length, 4) //++BB - t.equal(cache.get("a"), undefined) - t.equal(cache.get("b"), "++BB") - t.end() -}) - -test("set returns proper booleans", function(t) { - var cache = new LRU({ - max: 5, - length: function (item) { return item.length } - }) - - t.equal(cache.set("a", "A"), true) - - // should return false for max exceeded - t.equal(cache.set("b", "donuts"), false) - - t.equal(cache.set("b", "B"), true) - t.equal(cache.set("c", "CCCC"), true) - t.end() -}) - -test("drop the old items", function(t) { - var cache = new LRU({ - max: 5, - maxAge: 50 - }) - - cache.set("a", "A") - - setTimeout(function () { - cache.set("b", "b") - t.equal(cache.get("a"), "A") - }, 25) - - setTimeout(function () { - cache.set("c", "C") - // timed out - t.notOk(cache.get("a")) - }, 60 + 25) - - setTimeout(function () { - t.notOk(cache.get("b")) - t.equal(cache.get("c"), "C") - }, 90) - - setTimeout(function () { - t.notOk(cache.get("c")) - t.end() - }, 155) -}) - -test("individual item can have it's own maxAge", function(t) { - var cache = new LRU({ - max: 5, - maxAge: 50 - }) - - cache.set("a", "A", 20) - setTimeout(function () { - t.notOk(cache.get("a")) - t.end() - }, 25) -}) - -test("individual item can have it's own maxAge > cache's", function(t) { - var cache = new LRU({ - max: 5, - maxAge: 20 - }) - - cache.set("a", "A", 50) - setTimeout(function () { - t.equal(cache.get("a"), "A") - t.end() - }, 25) -}) - -test("disposal function", function(t) { - var disposed = false - var cache = new LRU({ - max: 1, - dispose: function (k, n) { - disposed = n - } - }) - - cache.set(1, 1) - cache.set(2, 2) - t.equal(disposed, 1) - cache.set(3, 3) - t.equal(disposed, 2) - cache.reset() - t.equal(disposed, 3) - t.end() -}) - -test("disposal function on too big of item", function(t) { - var disposed = false - var cache = new LRU({ - max: 1, - length: function (k) { - return k.length - }, - dispose: function (k, n) { - disposed = n - } - }) - var obj = [ 1, 2 ] - - t.equal(disposed, false) - cache.set("obj", obj) - t.equal(disposed, obj) - t.end() -}) - -test("has()", function(t) { - var cache = new LRU({ - max: 1, - maxAge: 10 - }) - - cache.set('foo', 'bar') - t.equal(cache.has('foo'), true) - cache.set('blu', 'baz') - t.equal(cache.has('foo'), false) - t.equal(cache.has('blu'), true) - setTimeout(function() { - t.equal(cache.has('blu'), false) - t.end() - }, 15) -}) - -test("stale", function(t) { - var cache = new LRU({ - maxAge: 10, - stale: true - }) - - cache.set('foo', 'bar') - t.equal(cache.get('foo'), 'bar') - t.equal(cache.has('foo'), true) - setTimeout(function() { - t.equal(cache.has('foo'), false) - t.equal(cache.get('foo'), 'bar') - t.equal(cache.get('foo'), undefined) - t.end() - }, 15) -}) - -test("lru update via set", function(t) { - var cache = LRU({ max: 2 }); - - cache.set('foo', 1); - cache.set('bar', 2); - cache.del('bar'); - cache.set('baz', 3); - cache.set('qux', 4); - - t.equal(cache.get('foo'), undefined) - t.equal(cache.get('bar'), undefined) - t.equal(cache.get('baz'), 3) - t.equal(cache.get('qux'), 4) - t.end() -}) - -test("least recently set w/ peek", function (t) { - var cache = new LRU(2) - cache.set("a", "A") - cache.set("b", "B") - t.equal(cache.peek("a"), "A") - cache.set("c", "C") - t.equal(cache.get("c"), "C") - t.equal(cache.get("b"), "B") - t.equal(cache.get("a"), undefined) - t.end() -}) - -test("pop the least used item", function (t) { - var cache = new LRU(3) - , last - - cache.set("a", "A") - cache.set("b", "B") - cache.set("c", "C") - - t.equal(cache.length, 3) - t.equal(cache.max, 3) - - // Ensure we pop a, c, b - cache.get("b", "B") - - last = cache.pop() - t.equal(last.key, "a") - t.equal(last.value, "A") - t.equal(cache.length, 2) - t.equal(cache.max, 3) - - last = cache.pop() - t.equal(last.key, "c") - t.equal(last.value, "C") - t.equal(cache.length, 1) - t.equal(cache.max, 3) - - last = cache.pop() - t.equal(last.key, "b") - t.equal(last.value, "B") - t.equal(cache.length, 0) - t.equal(cache.max, 3) - - last = cache.pop() - t.equal(last, null) - t.equal(cache.length, 0) - t.equal(cache.max, 3) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/foreach.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/foreach.js deleted file mode 100644 index 4190417c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +++ /dev/null @@ -1,120 +0,0 @@ -var test = require('tap').test -var LRU = require('../') - -test('forEach', function (t) { - var l = new LRU(5) - for (var i = 0; i < 10; i ++) { - l.set(i.toString(), i.toString(2)) - } - - var i = 9 - l.forEach(function (val, key, cache) { - t.equal(cache, l) - t.equal(key, i.toString()) - t.equal(val, i.toString(2)) - i -= 1 - }) - - // get in order of most recently used - l.get(6) - l.get(8) - - var order = [ 8, 6, 9, 7, 5 ] - var i = 0 - - l.forEach(function (val, key, cache) { - var j = order[i ++] - t.equal(cache, l) - t.equal(key, j.toString()) - t.equal(val, j.toString(2)) - }) - t.equal(i, order.length); - - t.end() -}) - -test('keys() and values()', function (t) { - var l = new LRU(5) - for (var i = 0; i < 10; i ++) { - l.set(i.toString(), i.toString(2)) - } - - t.similar(l.keys(), ['9', '8', '7', '6', '5']) - t.similar(l.values(), ['1001', '1000', '111', '110', '101']) - - // get in order of most recently used - l.get(6) - l.get(8) - - t.similar(l.keys(), ['8', '6', '9', '7', '5']) - t.similar(l.values(), ['1000', '110', '1001', '111', '101']) - - t.end() -}) - -test('all entries are iterated over', function(t) { - var l = new LRU(5) - for (var i = 0; i < 10; i ++) { - l.set(i.toString(), i.toString(2)) - } - - var i = 0 - l.forEach(function (val, key, cache) { - if (i > 0) { - cache.del(key) - } - i += 1 - }) - - t.equal(i, 5) - t.equal(l.keys().length, 1) - - t.end() -}) - -test('all stale entries are removed', function(t) { - var l = new LRU({ max: 5, maxAge: -5, stale: true }) - for (var i = 0; i < 10; i ++) { - l.set(i.toString(), i.toString(2)) - } - - var i = 0 - l.forEach(function () { - i += 1 - }) - - t.equal(i, 5) - t.equal(l.keys().length, 0) - - t.end() -}) - -test('expires', function (t) { - var l = new LRU({ - max: 10, - maxAge: 50 - }) - for (var i = 0; i < 10; i++) { - l.set(i.toString(), i.toString(2), ((i % 2) ? 25 : undefined)) - } - - var i = 0 - var order = [ 8, 6, 4, 2, 0 ] - setTimeout(function () { - l.forEach(function (val, key, cache) { - var j = order[i++] - t.equal(cache, l) - t.equal(key, j.toString()) - t.equal(val, j.toString(2)) - }) - t.equal(i, order.length); - - setTimeout(function () { - var count = 0; - l.forEach(function (val, key, cache) { count++; }) - t.equal(0, count); - t.end() - }, 25) - - }, 26) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js deleted file mode 100644 index b5912f6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env node --expose_gc - - -var weak = require('weak'); -var test = require('tap').test -var LRU = require('../') -var l = new LRU({ max: 10 }) -var refs = 0 -function X() { - refs ++ - weak(this, deref) -} - -function deref() { - refs -- -} - -test('no leaks', function (t) { - // fill up the cache - for (var i = 0; i < 100; i++) { - l.set(i, new X); - // throw some gets in there, too. - if (i % 2 === 0) - l.get(i / 2) - } - - gc() - - var start = process.memoryUsage() - - // capture the memory - var startRefs = refs - - // do it again, but more - for (var i = 0; i < 10000; i++) { - l.set(i, new X); - // throw some gets in there, too. - if (i % 2 === 0) - l.get(i / 2) - } - - gc() - - var end = process.memoryUsage() - t.equal(refs, startRefs, 'no leaky refs') - - console.error('start: %j\n' + - 'end: %j', start, end); - t.pass(); - t.end(); -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/serialize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/serialize.js deleted file mode 100644 index 5fe5dc3d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/lru-cache/test/serialize.js +++ /dev/null @@ -1,215 +0,0 @@ -var test = require('tap').test -var LRU = require('../') - -test('dump', function (t) { - var cache = new LRU() - - t.equal(cache.dump().length, 0, "nothing in dump for empty cache") - - cache.set("a", "A") - cache.set("b", "B") - t.deepEqual(cache.dump(), [ - { k: "b", v: "B", e: 0 }, - { k: "a", v: "A", e: 0 } - ]) - - cache.set("a", "A"); - t.deepEqual(cache.dump(), [ - { k: "a", v: "A", e: 0 }, - { k: "b", v: "B", e: 0 } - ]) - - cache.get("b"); - t.deepEqual(cache.dump(), [ - { k: "b", v: "B", e: 0 }, - { k: "a", v: "A", e: 0 } - ]) - - cache.del("a"); - t.deepEqual(cache.dump(), [ - { k: "b", v: "B", e: 0 } - ]) - - t.end() -}) - -test("do not dump stale items", function(t) { - var cache = new LRU({ - max: 5, - maxAge: 50 - }) - - //expires at 50 - cache.set("a", "A") - - setTimeout(function () { - //expires at 75 - cache.set("b", "B") - var s = cache.dump() - t.equal(s.length, 2) - t.equal(s[0].k, "b") - t.equal(s[1].k, "a") - }, 25) - - setTimeout(function () { - //expires at 110 - cache.set("c", "C") - var s = cache.dump() - t.equal(s.length, 2) - t.equal(s[0].k, "c") - t.equal(s[1].k, "b") - }, 60) - - setTimeout(function () { - //expires at 130 - cache.set("d", "D", 40) - var s = cache.dump() - t.equal(s.length, 2) - t.equal(s[0].k, "d") - t.equal(s[1].k, "c") - }, 90) - - setTimeout(function () { - var s = cache.dump() - t.equal(s.length, 1) - t.equal(s[0].k, "d") - }, 120) - - setTimeout(function () { - var s = cache.dump() - t.deepEqual(s, []) - t.end() - }, 155) -}) - -test("load basic cache", function(t) { - var cache = new LRU(), - copy = new LRU() - - cache.set("a", "A") - cache.set("b", "B") - - copy.load(cache.dump()) - t.deepEquals(cache.dump(), copy.dump()) - - t.end() -}) - - -test("load staled cache", function(t) { - var cache = new LRU({maxAge: 50}), - copy = new LRU({maxAge: 50}), - arr - - //expires at 50 - cache.set("a", "A") - setTimeout(function () { - //expires at 80 - cache.set("b", "B") - arr = cache.dump() - t.equal(arr.length, 2) - }, 30) - - setTimeout(function () { - copy.load(arr) - t.equal(copy.get("a"), undefined) - t.equal(copy.get("b"), "B") - }, 60) - - setTimeout(function () { - t.equal(copy.get("b"), undefined) - t.end() - }, 90) -}) - -test("load to other size cache", function(t) { - var cache = new LRU({max: 2}), - copy = new LRU({max: 1}) - - cache.set("a", "A") - cache.set("b", "B") - - copy.load(cache.dump()) - t.equal(copy.get("a"), undefined) - t.equal(copy.get("b"), "B") - - //update the last read from original cache - cache.get("a") - copy.load(cache.dump()) - t.equal(copy.get("a"), "A") - t.equal(copy.get("b"), undefined) - - t.end() -}) - - -test("load to other age cache", function(t) { - var cache = new LRU({maxAge: 50}), - aged = new LRU({maxAge: 100}), - simple = new LRU(), - arr, - expired - - //created at 0 - //a would be valid till 0 + 50 - cache.set("a", "A") - setTimeout(function () { - //created at 20 - //b would be valid till 20 + 50 - cache.set("b", "B") - //b would be valid till 20 + 70 - cache.set("c", "C", 70) - arr = cache.dump() - t.equal(arr.length, 3) - }, 20) - - setTimeout(function () { - t.equal(cache.get("a"), undefined) - t.equal(cache.get("b"), "B") - t.equal(cache.get("c"), "C") - - aged.load(arr) - t.equal(aged.get("a"), undefined) - t.equal(aged.get("b"), "B") - t.equal(aged.get("c"), "C") - - simple.load(arr) - t.equal(simple.get("a"), undefined) - t.equal(simple.get("b"), "B") - t.equal(simple.get("c"), "C") - }, 60) - - setTimeout(function () { - t.equal(cache.get("a"), undefined) - t.equal(cache.get("b"), undefined) - t.equal(cache.get("c"), "C") - - aged.load(arr) - t.equal(aged.get("a"), undefined) - t.equal(aged.get("b"), undefined) - t.equal(aged.get("c"), "C") - - simple.load(arr) - t.equal(simple.get("a"), undefined) - t.equal(simple.get("b"), undefined) - t.equal(simple.get("c"), "C") - }, 80) - - setTimeout(function () { - t.equal(cache.get("a"), undefined) - t.equal(cache.get("b"), undefined) - t.equal(cache.get("c"), undefined) - - aged.load(arr) - t.equal(aged.get("a"), undefined) - t.equal(aged.get("b"), undefined) - t.equal(aged.get("c"), undefined) - - simple.load(arr) - t.equal(simple.get("a"), undefined) - t.equal(simple.get("b"), undefined) - t.equal(simple.get("c"), undefined) - t.end() - }, 100) - -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/README.md deleted file mode 100644 index 25a38a53..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# sigmund - -Quick and dirty signatures for Objects. - -This is like a much faster `deepEquals` comparison, which returns a -string key suitable for caches and the like. - -## Usage - -```javascript -function doSomething (someObj) { - var key = sigmund(someObj, maxDepth) // max depth defaults to 10 - var cached = cache.get(key) - if (cached) return cached - - var result = expensiveCalculation(someObj) - cache.set(key, result) - return result -} -``` - -The resulting key will be as unique and reproducible as calling -`JSON.stringify` or `util.inspect` on the object, but is much faster. -In order to achieve this speed, some differences are glossed over. -For example, the object `{0:'foo'}` will be treated identically to the -array `['foo']`. - -Also, just as there is no way to summon the soul from the scribblings -of a cocaine-addled psychoanalyst, there is no way to revive the object -from the signature string that sigmund gives you. In fact, it's -barely even readable. - -As with `util.inspect` and `JSON.stringify`, larger objects will -produce larger signature strings. - -Because sigmund is a bit less strict than the more thorough -alternatives, the strings will be shorter, and also there is a -slightly higher chance for collisions. For example, these objects -have the same signature: - - var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]} - var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']} - -Like a good Freudian, sigmund is most effective when you already have -some understanding of what you're looking for. It can help you help -yourself, but you must be willing to do some work as well. - -Cycles are handled, and cyclical objects are silently omitted (though -the key is included in the signature output.) - -The second argument is the maximum depth, which defaults to 10, -because that is the maximum object traversal depth covered by most -insurance carriers. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/bench.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/bench.js deleted file mode 100644 index 5acfd6d9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/bench.js +++ /dev/null @@ -1,283 +0,0 @@ -// different ways to id objects -// use a req/res pair, since it's crazy deep and cyclical - -// sparseFE10 and sigmund are usually pretty close, which is to be expected, -// since they are essentially the same algorithm, except that sigmund handles -// regular expression objects properly. - - -var http = require('http') -var util = require('util') -var sigmund = require('./sigmund.js') -var sreq, sres, creq, cres, test - -http.createServer(function (q, s) { - sreq = q - sres = s - sres.end('ok') - this.close(function () { setTimeout(function () { - start() - }, 200) }) -}).listen(1337, function () { - creq = http.get({ port: 1337 }) - creq.on('response', function (s) { cres = s }) -}) - -function start () { - test = [sreq, sres, creq, cres] - // test = sreq - // sreq.sres = sres - // sreq.creq = creq - // sreq.cres = cres - - for (var i in exports.compare) { - console.log(i) - var hash = exports.compare[i]() - console.log(hash) - console.log(hash.length) - console.log('') - } - - require('bench').runMain() -} - -function customWs (obj, md, d) { - d = d || 0 - var to = typeof obj - if (to === 'undefined' || to === 'function' || to === null) return '' - if (d > md || !obj || to !== 'object') return ('' + obj).replace(/[\n ]+/g, '') - - if (Array.isArray(obj)) { - return obj.map(function (i, _, __) { - return customWs(i, md, d + 1) - }).reduce(function (a, b) { return a + b }, '') - } - - var keys = Object.keys(obj) - return keys.map(function (k, _, __) { - return k + ':' + customWs(obj[k], md, d + 1) - }).reduce(function (a, b) { return a + b }, '') -} - -function custom (obj, md, d) { - d = d || 0 - var to = typeof obj - if (to === 'undefined' || to === 'function' || to === null) return '' - if (d > md || !obj || to !== 'object') return '' + obj - - if (Array.isArray(obj)) { - return obj.map(function (i, _, __) { - return custom(i, md, d + 1) - }).reduce(function (a, b) { return a + b }, '') - } - - var keys = Object.keys(obj) - return keys.map(function (k, _, __) { - return k + ':' + custom(obj[k], md, d + 1) - }).reduce(function (a, b) { return a + b }, '') -} - -function sparseFE2 (obj, maxDepth) { - var seen = [] - var soFar = '' - function ch (v, depth) { - if (depth > maxDepth) return - if (typeof v === 'function' || typeof v === 'undefined') return - if (typeof v !== 'object' || !v) { - soFar += v - return - } - if (seen.indexOf(v) !== -1 || depth === maxDepth) return - seen.push(v) - soFar += '{' - Object.keys(v).forEach(function (k, _, __) { - // pseudo-private values. skip those. - if (k.charAt(0) === '_') return - var to = typeof v[k] - if (to === 'function' || to === 'undefined') return - soFar += k + ':' - ch(v[k], depth + 1) - }) - soFar += '}' - } - ch(obj, 0) - return soFar -} - -function sparseFE (obj, maxDepth) { - var seen = [] - var soFar = '' - function ch (v, depth) { - if (depth > maxDepth) return - if (typeof v === 'function' || typeof v === 'undefined') return - if (typeof v !== 'object' || !v) { - soFar += v - return - } - if (seen.indexOf(v) !== -1 || depth === maxDepth) return - seen.push(v) - soFar += '{' - Object.keys(v).forEach(function (k, _, __) { - // pseudo-private values. skip those. - if (k.charAt(0) === '_') return - var to = typeof v[k] - if (to === 'function' || to === 'undefined') return - soFar += k - ch(v[k], depth + 1) - }) - } - ch(obj, 0) - return soFar -} - -function sparse (obj, maxDepth) { - var seen = [] - var soFar = '' - function ch (v, depth) { - if (depth > maxDepth) return - if (typeof v === 'function' || typeof v === 'undefined') return - if (typeof v !== 'object' || !v) { - soFar += v - return - } - if (seen.indexOf(v) !== -1 || depth === maxDepth) return - seen.push(v) - soFar += '{' - for (var k in v) { - // pseudo-private values. skip those. - if (k.charAt(0) === '_') continue - var to = typeof v[k] - if (to === 'function' || to === 'undefined') continue - soFar += k - ch(v[k], depth + 1) - } - } - ch(obj, 0) - return soFar -} - -function noCommas (obj, maxDepth) { - var seen = [] - var soFar = '' - function ch (v, depth) { - if (depth > maxDepth) return - if (typeof v === 'function' || typeof v === 'undefined') return - if (typeof v !== 'object' || !v) { - soFar += v - return - } - if (seen.indexOf(v) !== -1 || depth === maxDepth) return - seen.push(v) - soFar += '{' - for (var k in v) { - // pseudo-private values. skip those. - if (k.charAt(0) === '_') continue - var to = typeof v[k] - if (to === 'function' || to === 'undefined') continue - soFar += k + ':' - ch(v[k], depth + 1) - } - soFar += '}' - } - ch(obj, 0) - return soFar -} - - -function flatten (obj, maxDepth) { - var seen = [] - var soFar = '' - function ch (v, depth) { - if (depth > maxDepth) return - if (typeof v === 'function' || typeof v === 'undefined') return - if (typeof v !== 'object' || !v) { - soFar += v - return - } - if (seen.indexOf(v) !== -1 || depth === maxDepth) return - seen.push(v) - soFar += '{' - for (var k in v) { - // pseudo-private values. skip those. - if (k.charAt(0) === '_') continue - var to = typeof v[k] - if (to === 'function' || to === 'undefined') continue - soFar += k + ':' - ch(v[k], depth + 1) - soFar += ',' - } - soFar += '}' - } - ch(obj, 0) - return soFar -} - -exports.compare = -{ - // 'custom 2': function () { - // return custom(test, 2, 0) - // }, - // 'customWs 2': function () { - // return customWs(test, 2, 0) - // }, - 'JSON.stringify (guarded)': function () { - var seen = [] - return JSON.stringify(test, function (k, v) { - if (typeof v !== 'object' || !v) return v - if (seen.indexOf(v) !== -1) return undefined - seen.push(v) - return v - }) - }, - - 'flatten 10': function () { - return flatten(test, 10) - }, - - // 'flattenFE 10': function () { - // return flattenFE(test, 10) - // }, - - 'noCommas 10': function () { - return noCommas(test, 10) - }, - - 'sparse 10': function () { - return sparse(test, 10) - }, - - 'sparseFE 10': function () { - return sparseFE(test, 10) - }, - - 'sparseFE2 10': function () { - return sparseFE2(test, 10) - }, - - sigmund: function() { - return sigmund(test, 10) - }, - - - // 'util.inspect 1': function () { - // return util.inspect(test, false, 1, false) - // }, - // 'util.inspect undefined': function () { - // util.inspect(test) - // }, - // 'util.inspect 2': function () { - // util.inspect(test, false, 2, false) - // }, - // 'util.inspect 3': function () { - // util.inspect(test, false, 3, false) - // }, - // 'util.inspect 4': function () { - // util.inspect(test, false, 4, false) - // }, - // 'util.inspect Infinity': function () { - // util.inspect(test, false, Infinity, false) - // } -} - -/** results -**/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/package.json deleted file mode 100644 index b1dbae0a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "_args": [ - [ - "sigmund@~1.0.0", - "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/minimatch" - ] - ], - "_from": "sigmund@>=1.0.0 <1.1.0", - "_id": "sigmund@1.0.1", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/minimatch/sigmund", - "_nodeVersion": "2.0.1", - "_npmUser": { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - "_npmVersion": "2.10.0", - "_phantomChildren": {}, - "_requested": { - "name": "sigmund", - "raw": "sigmund@~1.0.0", - "rawSpec": "~1.0.0", - "scope": null, - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp/minimatch" - ], - "_resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "_shasum": "3ff21f198cad2175f9f3b781853fd94d0d19b590", - "_shrinkwrap": null, - "_spec": "sigmund@~1.0.0", - "_where": "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/minimatch", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/sigmund/issues" - }, - "dependencies": {}, - "description": "Quick and dirty signatures for Objects.", - "devDependencies": { - "tap": "~0.3.0" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "3ff21f198cad2175f9f3b781853fd94d0d19b590", - "tarball": "http://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - }, - "gitHead": "527f97aa5bb253d927348698c0cd3bb267d098c6", - "homepage": "https://github.com/isaacs/sigmund#readme", - "keywords": [ - "data", - "key", - "object", - "psychoanalysis", - "signature" - ], - "license": "ISC", - "main": "sigmund.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "name": "sigmund", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/sigmund.git" - }, - "scripts": { - "bench": "node bench.js", - "test": "tap test/*.js" - }, - "version": "1.0.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/sigmund.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/sigmund.js deleted file mode 100644 index 82c7ab8c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/sigmund.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = sigmund -function sigmund (subject, maxSessions) { - maxSessions = maxSessions || 10; - var notes = []; - var analysis = ''; - var RE = RegExp; - - function psychoAnalyze (subject, session) { - if (session > maxSessions) return; - - if (typeof subject === 'function' || - typeof subject === 'undefined') { - return; - } - - if (typeof subject !== 'object' || !subject || - (subject instanceof RE)) { - analysis += subject; - return; - } - - if (notes.indexOf(subject) !== -1 || session === maxSessions) return; - - notes.push(subject); - analysis += '{'; - Object.keys(subject).forEach(function (issue, _, __) { - // pseudo-private values. skip those. - if (issue.charAt(0) === '_') return; - var to = typeof subject[issue]; - if (to === 'function' || to === 'undefined') return; - analysis += issue; - psychoAnalyze(subject[issue], session + 1); - }); - } - psychoAnalyze(subject, 0); - return analysis; -} - -// vim: set softtabstop=4 shiftwidth=4: diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/test/basic.js deleted file mode 100644 index 6149a802..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/test/basic.js +++ /dev/null @@ -1,23 +0,0 @@ -var test = require('tap').test -var sigmund = require('../sigmund.js') - - -// occasionally there are duplicates -// that's an acceptable edge-case. JSON.stringify and util.inspect -// have some collision potential as well, though less, and collision -// detection is expensive. -var hash = '{abc/def/g{0h1i2{jkl' -var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]} -var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']} - -var obj3 = JSON.parse(JSON.stringify(obj1)) -obj3.c = /def/ -obj3.g[2].cycle = obj3 -var cycleHash = '{abc/def/g{0h1i2{jklcycle' - -test('basic', function (t) { - t.equal(sigmund(obj1), hash) - t.equal(sigmund(obj2), hash) - t.equal(sigmund(obj3), cycleHash) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/package.json deleted file mode 100644 index 2f0d2de5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "_args": [ - [ - "minimatch@1", - "/Users/rebecca/code/release/npm-3/node_modules/node-gyp" - ] - ], - "_from": "minimatch@>=1.0.0 <2.0.0", - "_id": "minimatch@1.0.0", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/minimatch", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "1.4.21", - "_phantomChildren": {}, - "_requested": { - "name": "minimatch", - "raw": "minimatch@1", - "rawSpec": "1", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp" - ], - "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", - "_shasum": "e0dd2120b49e1b724ce8d714c520822a9438576d", - "_shrinkwrap": null, - "_spec": "minimatch@1", - "_where": "/Users/rebecca/code/release/npm-3/node_modules/node-gyp", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me" - }, - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" - }, - "dependencies": { - "lru-cache": "2", - "sigmund": "~1.0.0" - }, - "description": "a glob matcher in javascript", - "devDependencies": { - "tap": "" - }, - "directories": {}, - "dist": { - "shasum": "e0dd2120b49e1b724ce8d714c520822a9438576d", - "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz" - }, - "engines": { - "node": "*" - }, - "gitHead": "b374a643976eb55cdc19c60b6dd51ebe9bcc607a", - "homepage": "https://github.com/isaacs/minimatch", - "license": { - "type": "MIT", - "url": "http://github.com/isaacs/minimatch/raw/master/LICENSE" - }, - "main": "minimatch.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "name": "minimatch", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/basic.js deleted file mode 100644 index ae7ac73c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/basic.js +++ /dev/null @@ -1,399 +0,0 @@ -// http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test -// -// TODO: Some of these tests do very bad things with backslashes, and will -// most likely fail badly on windows. They should probably be skipped. - -var tap = require("tap") - , globalBefore = Object.keys(global) - , mm = require("../") - , files = [ "a", "b", "c", "d", "abc" - , "abd", "abe", "bb", "bcd" - , "ca", "cb", "dd", "de" - , "bdir/", "bdir/cfile"] - , next = files.concat([ "a-b", "aXb" - , ".x", ".y" ]) - - -var patterns = - [ "http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test" - , ["a*", ["a", "abc", "abd", "abe"]] - , ["X*", ["X*"], {nonull: true}] - - // allow null glob expansion - , ["X*", []] - - // isaacs: Slightly different than bash/sh/ksh - // \\* is not un-escaped to literal "*" in a failed match, - // but it does make it get treated as a literal star - , ["\\*", ["\\*"], {nonull: true}] - , ["\\**", ["\\**"], {nonull: true}] - , ["\\*\\*", ["\\*\\*"], {nonull: true}] - - , ["b*/", ["bdir/"]] - , ["c*", ["c", "ca", "cb"]] - , ["**", files] - - , ["\\.\\./*/", ["\\.\\./*/"], {nonull: true}] - , ["s/\\..*//", ["s/\\..*//"], {nonull: true}] - - , "legendary larry crashes bashes" - , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/" - , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"], {nonull: true}] - , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/" - , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"], {nonull: true}] - - , "character classes" - , ["[a-c]b*", ["abc", "abd", "abe", "bb", "cb"]] - , ["[a-y]*[^c]", ["abd", "abe", "bb", "bcd", - "bdir/", "ca", "cb", "dd", "de"]] - , ["a*[^c]", ["abd", "abe"]] - , function () { files.push("a-b", "aXb") } - , ["a[X-]b", ["a-b", "aXb"]] - , function () { files.push(".x", ".y") } - , ["[^a-c]*", ["d", "dd", "de"]] - , function () { files.push("a*b/", "a*b/ooo") } - , ["a\\*b/*", ["a*b/ooo"]] - , ["a\\*?/*", ["a*b/ooo"]] - , ["*\\\\!*", [], {null: true}, ["echo !7"]] - , ["*\\!*", ["echo !7"], null, ["echo !7"]] - , ["*.\\*", ["r.*"], null, ["r.*"]] - , ["a[b]c", ["abc"]] - , ["a[\\b]c", ["abc"]] - , ["a?c", ["abc"]] - , ["a\\*c", [], {null: true}, ["abc"]] - , ["", [""], { null: true }, [""]] - - , "http://www.opensource.apple.com/source/bash/bash-23/" + - "bash/tests/glob-test" - , function () { files.push("man/", "man/man1/", "man/man1/bash.1") } - , ["*/man*/bash.*", ["man/man1/bash.1"]] - , ["man/man1/bash.1", ["man/man1/bash.1"]] - , ["a***c", ["abc"], null, ["abc"]] - , ["a*****?c", ["abc"], null, ["abc"]] - , ["?*****??", ["abc"], null, ["abc"]] - , ["*****??", ["abc"], null, ["abc"]] - , ["?*****?c", ["abc"], null, ["abc"]] - , ["?***?****c", ["abc"], null, ["abc"]] - , ["?***?****?", ["abc"], null, ["abc"]] - , ["?***?****", ["abc"], null, ["abc"]] - , ["*******c", ["abc"], null, ["abc"]] - , ["*******?", ["abc"], null, ["abc"]] - , ["a*cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["a**?**cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["a**?**cd**?**??k***", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["a**?**cd**?**??***k", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["a**?**cd**?**??***k**", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["a****c**?**??*****", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["[-abc]", ["-"], null, ["-"]] - , ["[abc-]", ["-"], null, ["-"]] - , ["\\", ["\\"], null, ["\\"]] - , ["[\\\\]", ["\\"], null, ["\\"]] - , ["[[]", ["["], null, ["["]] - , ["[", ["["], null, ["["]] - , ["[*", ["[abc"], null, ["[abc"]] - , "a right bracket shall lose its special meaning and\n" + - "represent itself in a bracket expression if it occurs\n" + - "first in the list. -- POSIX.2 2.8.3.2" - , ["[]]", ["]"], null, ["]"]] - , ["[]-]", ["]"], null, ["]"]] - , ["[a-\z]", ["p"], null, ["p"]] - , ["??**********?****?", [], { null: true }, ["abc"]] - , ["??**********?****c", [], { null: true }, ["abc"]] - , ["?************c****?****", [], { null: true }, ["abc"]] - , ["*c*?**", [], { null: true }, ["abc"]] - , ["a*****c*?**", [], { null: true }, ["abc"]] - , ["a********???*******", [], { null: true }, ["abc"]] - , ["[]", [], { null: true }, ["a"]] - , ["[abc", [], { null: true }, ["["]] - - , "nocase tests" - , ["XYZ", ["xYz"], { nocase: true, null: true } - , ["xYz", "ABC", "IjK"]] - , ["ab*", ["ABC"], { nocase: true, null: true } - , ["xYz", "ABC", "IjK"]] - , ["[ia]?[ck]", ["ABC", "IjK"], { nocase: true, null: true } - , ["xYz", "ABC", "IjK"]] - - // [ pattern, [matches], MM opts, files, TAP opts] - , "onestar/twostar" - , ["{/*,*}", [], {null: true}, ["/asdf/asdf/asdf"]] - , ["{/?,*}", ["/a", "bb"], {null: true} - , ["/a", "/b/b", "/a/b/c", "bb"]] - - , "dots should not match unless requested" - , ["**", ["a/b"], {}, ["a/b", "a/.d", ".a/.d"]] - - // .. and . can only match patterns starting with ., - // even when options.dot is set. - , function () { - files = ["a/./b", "a/../b", "a/c/b", "a/.d/b"] - } - , ["a/*/b", ["a/c/b", "a/.d/b"], {dot: true}] - , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: true}] - , ["a/*/b", ["a/c/b"], {dot:false}] - , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: false}] - - - // this also tests that changing the options needs - // to change the cache key, even if the pattern is - // the same! - , ["**", ["a/b","a/.d",".a/.d"], { dot: true } - , [ ".a/.d", "a/.d", "a/b"]] - - , "paren sets cannot contain slashes" - , ["*(a/b)", ["*(a/b)"], {nonull: true}, ["a/b"]] - - // brace sets trump all else. - // - // invalid glob pattern. fails on bash4 and bsdglob. - // however, in this implementation, it's easier just - // to do the intuitive thing, and let brace-expansion - // actually come before parsing any extglob patterns, - // like the documentation seems to say. - // - // XXX: if anyone complains about this, either fix it - // or tell them to grow up and stop complaining. - // - // bash/bsdglob says this: - // , ["*(a|{b),c)}", ["*(a|{b),c)}"], {}, ["a", "ab", "ac", "ad"]] - // but we do this instead: - , ["*(a|{b),c)}", ["a", "ab", "ac"], {}, ["a", "ab", "ac", "ad"]] - - // test partial parsing in the presence of comment/negation chars - , ["[!a*", ["[!ab"], {}, ["[!ab", "[ab"]] - , ["[#a*", ["[#ab"], {}, ["[#ab", "[ab"]] - - // like: {a,b|c\\,d\\\|e} except it's unclosed, so it has to be escaped. - , ["+(a|*\\|c\\\\|d\\\\\\|e\\\\\\\\|f\\\\\\\\\\|g" - , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g"] - , {} - , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g", "a", "b\\c"]] - - - // crazy nested {,,} and *(||) tests. - , function () { - files = [ "a", "b", "c", "d" - , "ab", "ac", "ad" - , "bc", "cb" - , "bc,d", "c,db", "c,d" - , "d)", "(b|c", "*(b|c" - , "b|c", "b|cc", "cb|c" - , "x(a|b|c)", "x(a|c)" - , "(a|b|c)", "(a|c)"] - } - , ["*(a|{b,c})", ["a", "b", "c", "ab", "ac"]] - , ["{a,*(b|c,d)}", ["a","(b|c", "*(b|c", "d)"]] - // a - // *(b|c) - // *(b|d) - , ["{a,*(b|{c,d})}", ["a","b", "bc", "cb", "c", "d"]] - , ["*(a|{b|c,c})", ["a", "b", "c", "ab", "ac", "bc", "cb"]] - - - // test various flag settings. - , [ "*(a|{b|c,c})", ["x(a|b|c)", "x(a|c)", "(a|b|c)", "(a|c)"] - , { noext: true } ] - , ["a?b", ["x/y/acb", "acb/"], {matchBase: true} - , ["x/y/acb", "acb/", "acb/d/e", "x/y/acb/d"] ] - , ["#*", ["#a", "#b"], {nocomment: true}, ["#a", "#b", "c#d"]] - - - // begin channelling Boole and deMorgan... - , "negation tests" - , function () { - files = ["d", "e", "!ab", "!abc", "a!b", "\\!a"] - } - - // anything that is NOT a* matches. - , ["!a*", ["\\!a", "d", "e", "!ab", "!abc"]] - - // anything that IS !a* matches. - , ["!a*", ["!ab", "!abc"], {nonegate: true}] - - // anything that IS a* matches - , ["!!a*", ["a!b"]] - - // anything that is NOT !a* matches - , ["!\\!a*", ["a!b", "d", "e", "\\!a"]] - - // negation nestled within a pattern - , function () { - files = [ "foo.js" - , "foo.bar" - // can't match this one without negative lookbehind. - , "foo.js.js" - , "blar.js" - , "foo." - , "boo.js.boo" ] - } - , ["*.!(js)", ["foo.bar", "foo.", "boo.js.boo"] ] - - // https://github.com/isaacs/minimatch/issues/5 - , function () { - files = [ 'a/b/.x/c' - , 'a/b/.x/c/d' - , 'a/b/.x/c/d/e' - , 'a/b/.x' - , 'a/b/.x/' - , 'a/.x/b' - , '.x' - , '.x/' - , '.x/a' - , '.x/a/b' - , 'a/.x/b/.x/c' - , '.x/.x' ] - } - , ["**/.x/**", [ '.x/' - , '.x/a' - , '.x/a/b' - , 'a/.x/b' - , 'a/b/.x/' - , 'a/b/.x/c' - , 'a/b/.x/c/d' - , 'a/b/.x/c/d/e' ] ] - - ] - -var regexps = - [ '/^(?:(?=.)a[^/]*?)$/', - '/^(?:(?=.)X[^/]*?)$/', - '/^(?:(?=.)X[^/]*?)$/', - '/^(?:\\*)$/', - '/^(?:(?=.)\\*[^/]*?)$/', - '/^(?:\\*\\*)$/', - '/^(?:(?=.)b[^/]*?\\/)$/', - '/^(?:(?=.)c[^/]*?)$/', - '/^(?:(?:(?!(?:\\/|^)\\.).)*?)$/', - '/^(?:\\.\\.\\/(?!\\.)(?=.)[^/]*?\\/)$/', - '/^(?:s\\/(?=.)\\.\\.[^/]*?\\/)$/', - '/^(?:\\/\\^root:\\/\\{s\\/(?=.)\\^[^:][^/]*?:[^:][^/]*?:\\([^:]\\)[^/]*?\\.[^/]*?\\$\\/1\\/)$/', - '/^(?:\\/\\^root:\\/\\{s\\/(?=.)\\^[^:][^/]*?:[^:][^/]*?:\\([^:]\\)[^/]*?\\.[^/]*?\\$\\/\u0001\\/)$/', - '/^(?:(?!\\.)(?=.)[a-c]b[^/]*?)$/', - '/^(?:(?!\\.)(?=.)[a-y][^/]*?[^c])$/', - '/^(?:(?=.)a[^/]*?[^c])$/', - '/^(?:(?=.)a[X-]b)$/', - '/^(?:(?!\\.)(?=.)[^a-c][^/]*?)$/', - '/^(?:a\\*b\\/(?!\\.)(?=.)[^/]*?)$/', - '/^(?:(?=.)a\\*[^/]\\/(?!\\.)(?=.)[^/]*?)$/', - '/^(?:(?!\\.)(?=.)[^/]*?\\\\\\![^/]*?)$/', - '/^(?:(?!\\.)(?=.)[^/]*?\\![^/]*?)$/', - '/^(?:(?!\\.)(?=.)[^/]*?\\.\\*)$/', - '/^(?:(?=.)a[b]c)$/', - '/^(?:(?=.)a[b]c)$/', - '/^(?:(?=.)a[^/]c)$/', - '/^(?:a\\*c)$/', - 'false', - '/^(?:(?!\\.)(?=.)[^/]*?\\/(?=.)man[^/]*?\\/(?=.)bash\\.[^/]*?)$/', - '/^(?:man\\/man1\\/bash\\.1)$/', - '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?c)$/', - '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]c)$/', - '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/])$/', - '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/])$/', - '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]c)$/', - '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?c)$/', - '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/])$/', - '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?)$/', - '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c)$/', - '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/])$/', - '/^(?:(?=.)a[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k)$/', - '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k)$/', - '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k[^/]*?[^/]*?[^/]*?)$/', - '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?k)$/', - '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?k[^/]*?[^/]*?)$/', - '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?)$/', - '/^(?:(?!\\.)(?=.)[-abc])$/', - '/^(?:(?!\\.)(?=.)[abc-])$/', - '/^(?:\\\\)$/', - '/^(?:(?!\\.)(?=.)[\\\\])$/', - '/^(?:(?!\\.)(?=.)[\\[])$/', - '/^(?:\\[)$/', - '/^(?:(?=.)\\[(?!\\.)(?=.)[^/]*?)$/', - '/^(?:(?!\\.)(?=.)[\\]])$/', - '/^(?:(?!\\.)(?=.)[\\]-])$/', - '/^(?:(?!\\.)(?=.)[a-z])$/', - '/^(?:(?!\\.)(?=.)[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/])$/', - '/^(?:(?!\\.)(?=.)[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?c)$/', - '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?)$/', - '/^(?:(?!\\.)(?=.)[^/]*?c[^/]*?[^/][^/]*?[^/]*?)$/', - '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/][^/]*?[^/]*?)$/', - '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?)$/', - '/^(?:\\[\\])$/', - '/^(?:\\[abc)$/', - '/^(?:(?=.)XYZ)$/i', - '/^(?:(?=.)ab[^/]*?)$/i', - '/^(?:(?!\\.)(?=.)[ia][^/][ck])$/i', - '/^(?:\\/(?!\\.)(?=.)[^/]*?|(?!\\.)(?=.)[^/]*?)$/', - '/^(?:\\/(?!\\.)(?=.)[^/]|(?!\\.)(?=.)[^/]*?)$/', - '/^(?:(?:(?!(?:\\/|^)\\.).)*?)$/', - '/^(?:a\\/(?!(?:^|\\/)\\.{1,2}(?:$|\\/))(?=.)[^/]*?\\/b)$/', - '/^(?:a\\/(?=.)\\.[^/]*?\\/b)$/', - '/^(?:a\\/(?!\\.)(?=.)[^/]*?\\/b)$/', - '/^(?:a\\/(?=.)\\.[^/]*?\\/b)$/', - '/^(?:(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?)$/', - '/^(?:(?!\\.)(?=.)[^/]*?\\(a\\/b\\))$/', - '/^(?:(?!\\.)(?=.)(?:a|b)*|(?!\\.)(?=.)(?:a|c)*)$/', - '/^(?:(?=.)\\[(?=.)\\!a[^/]*?)$/', - '/^(?:(?=.)\\[(?=.)#a[^/]*?)$/', - '/^(?:(?=.)\\+\\(a\\|[^/]*?\\|c\\\\\\\\\\|d\\\\\\\\\\|e\\\\\\\\\\\\\\\\\\|f\\\\\\\\\\\\\\\\\\|g)$/', - '/^(?:(?!\\.)(?=.)(?:a|b)*|(?!\\.)(?=.)(?:a|c)*)$/', - '/^(?:a|(?!\\.)(?=.)[^/]*?\\(b\\|c|d\\))$/', - '/^(?:a|(?!\\.)(?=.)(?:b|c)*|(?!\\.)(?=.)(?:b|d)*)$/', - '/^(?:(?!\\.)(?=.)(?:a|b|c)*|(?!\\.)(?=.)(?:a|c)*)$/', - '/^(?:(?!\\.)(?=.)[^/]*?\\(a\\|b\\|c\\)|(?!\\.)(?=.)[^/]*?\\(a\\|c\\))$/', - '/^(?:(?=.)a[^/]b)$/', - '/^(?:(?=.)#[^/]*?)$/', - '/^(?!^(?:(?=.)a[^/]*?)$).*$/', - '/^(?:(?=.)\\!a[^/]*?)$/', - '/^(?:(?=.)a[^/]*?)$/', - '/^(?!^(?:(?=.)\\!a[^/]*?)$).*$/', - '/^(?:(?!\\.)(?=.)[^/]*?\\.(?:(?!js)[^/]*?))$/', - '/^(?:(?:(?!(?:\\/|^)\\.).)*?\\/\\.x\\/(?:(?!(?:\\/|^)\\.).)*?)$/' ] -var re = 0; - -tap.test("basic tests", function (t) { - var start = Date.now() - - // [ pattern, [matches], MM opts, files, TAP opts] - patterns.forEach(function (c) { - if (typeof c === "function") return c() - if (typeof c === "string") return t.comment(c) - - var pattern = c[0] - , expect = c[1].sort(alpha) - , options = c[2] || {} - , f = c[3] || files - , tapOpts = c[4] || {} - - // options.debug = true - var m = new mm.Minimatch(pattern, options) - var r = m.makeRe() - var expectRe = regexps[re++] - tapOpts.re = String(r) || JSON.stringify(r) - tapOpts.files = JSON.stringify(f) - tapOpts.pattern = pattern - tapOpts.set = m.set - tapOpts.negated = m.negate - - var actual = mm.match(f, pattern, options) - actual.sort(alpha) - - t.equivalent( actual, expect - , JSON.stringify(pattern) + " " + JSON.stringify(expect) - , tapOpts ) - - t.equal(tapOpts.re, expectRe, tapOpts) - }) - - t.comment("time=" + (Date.now() - start) + "ms") - t.end() -}) - -tap.test("global leak test", function (t) { - var globalAfter = Object.keys(global) - t.equivalent(globalAfter, globalBefore, "no new globals, please") - t.end() -}) - -function alpha (a, b) { - return a > b ? 1 : -1 -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/brace-expand.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/brace-expand.js deleted file mode 100644 index c3e19d9b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/brace-expand.js +++ /dev/null @@ -1,38 +0,0 @@ -var tap = require("tap") - , minimatch = require("../") - -tap.test("brace expansion", function (t) { - // [ pattern, [expanded] ] - ; [ [ "a{b,c{d,e},{f,g}h}x{y,z}" - , [ "abxy" - , "abxz" - , "acdxy" - , "acdxz" - , "acexy" - , "acexz" - , "afhxy" - , "afhxz" - , "aghxy" - , "aghxz" ] ] - , [ "a{1..5}b" - , [ "a1b" - , "a2b" - , "a3b" - , "a4b" - , "a5b" ] ] - , [ "a{b}c", ["a{b}c"] ] - , [ "a{00..05}b" - , ["a00b" - ,"a01b" - ,"a02b" - ,"a03b" - ,"a04b" - ,"a05b" ] ] - ].forEach(function (tc) { - var p = tc[0] - , expect = tc[1] - t.equivalent(minimatch.braceExpand(p), expect, p) - }) - console.error("ending") - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/caching.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/caching.js deleted file mode 100644 index 0fec4b0f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/caching.js +++ /dev/null @@ -1,14 +0,0 @@ -var Minimatch = require("../minimatch.js").Minimatch -var tap = require("tap") -tap.test("cache test", function (t) { - var mm1 = new Minimatch("a?b") - var mm2 = new Minimatch("a?b") - t.equal(mm1, mm2, "should get the same object") - // the lru should drop it after 100 entries - for (var i = 0; i < 100; i ++) { - new Minimatch("a"+i) - } - mm2 = new Minimatch("a?b") - t.notEqual(mm1, mm2, "cache should have dropped") - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/defaults.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/defaults.js deleted file mode 100644 index 75e05712..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/defaults.js +++ /dev/null @@ -1,274 +0,0 @@ -// http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test -// -// TODO: Some of these tests do very bad things with backslashes, and will -// most likely fail badly on windows. They should probably be skipped. - -var tap = require("tap") - , globalBefore = Object.keys(global) - , mm = require("../") - , files = [ "a", "b", "c", "d", "abc" - , "abd", "abe", "bb", "bcd" - , "ca", "cb", "dd", "de" - , "bdir/", "bdir/cfile"] - , next = files.concat([ "a-b", "aXb" - , ".x", ".y" ]) - -tap.test("basic tests", function (t) { - var start = Date.now() - - // [ pattern, [matches], MM opts, files, TAP opts] - ; [ "http://www.bashcookbook.com/bashinfo" + - "/source/bash-1.14.7/tests/glob-test" - , ["a*", ["a", "abc", "abd", "abe"]] - , ["X*", ["X*"], {nonull: true}] - - // allow null glob expansion - , ["X*", []] - - // isaacs: Slightly different than bash/sh/ksh - // \\* is not un-escaped to literal "*" in a failed match, - // but it does make it get treated as a literal star - , ["\\*", ["\\*"], {nonull: true}] - , ["\\**", ["\\**"], {nonull: true}] - , ["\\*\\*", ["\\*\\*"], {nonull: true}] - - , ["b*/", ["bdir/"]] - , ["c*", ["c", "ca", "cb"]] - , ["**", files] - - , ["\\.\\./*/", ["\\.\\./*/"], {nonull: true}] - , ["s/\\..*//", ["s/\\..*//"], {nonull: true}] - - , "legendary larry crashes bashes" - , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/" - , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"], {nonull: true}] - , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/" - , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"], {nonull: true}] - - , "character classes" - , ["[a-c]b*", ["abc", "abd", "abe", "bb", "cb"]] - , ["[a-y]*[^c]", ["abd", "abe", "bb", "bcd", - "bdir/", "ca", "cb", "dd", "de"]] - , ["a*[^c]", ["abd", "abe"]] - , function () { files.push("a-b", "aXb") } - , ["a[X-]b", ["a-b", "aXb"]] - , function () { files.push(".x", ".y") } - , ["[^a-c]*", ["d", "dd", "de"]] - , function () { files.push("a*b/", "a*b/ooo") } - , ["a\\*b/*", ["a*b/ooo"]] - , ["a\\*?/*", ["a*b/ooo"]] - , ["*\\\\!*", [], {null: true}, ["echo !7"]] - , ["*\\!*", ["echo !7"], null, ["echo !7"]] - , ["*.\\*", ["r.*"], null, ["r.*"]] - , ["a[b]c", ["abc"]] - , ["a[\\b]c", ["abc"]] - , ["a?c", ["abc"]] - , ["a\\*c", [], {null: true}, ["abc"]] - , ["", [""], { null: true }, [""]] - - , "http://www.opensource.apple.com/source/bash/bash-23/" + - "bash/tests/glob-test" - , function () { files.push("man/", "man/man1/", "man/man1/bash.1") } - , ["*/man*/bash.*", ["man/man1/bash.1"]] - , ["man/man1/bash.1", ["man/man1/bash.1"]] - , ["a***c", ["abc"], null, ["abc"]] - , ["a*****?c", ["abc"], null, ["abc"]] - , ["?*****??", ["abc"], null, ["abc"]] - , ["*****??", ["abc"], null, ["abc"]] - , ["?*****?c", ["abc"], null, ["abc"]] - , ["?***?****c", ["abc"], null, ["abc"]] - , ["?***?****?", ["abc"], null, ["abc"]] - , ["?***?****", ["abc"], null, ["abc"]] - , ["*******c", ["abc"], null, ["abc"]] - , ["*******?", ["abc"], null, ["abc"]] - , ["a*cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["a**?**cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["a**?**cd**?**??k***", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["a**?**cd**?**??***k", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["a**?**cd**?**??***k**", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["a****c**?**??*****", ["abcdecdhjk"], null, ["abcdecdhjk"]] - , ["[-abc]", ["-"], null, ["-"]] - , ["[abc-]", ["-"], null, ["-"]] - , ["\\", ["\\"], null, ["\\"]] - , ["[\\\\]", ["\\"], null, ["\\"]] - , ["[[]", ["["], null, ["["]] - , ["[", ["["], null, ["["]] - , ["[*", ["[abc"], null, ["[abc"]] - , "a right bracket shall lose its special meaning and\n" + - "represent itself in a bracket expression if it occurs\n" + - "first in the list. -- POSIX.2 2.8.3.2" - , ["[]]", ["]"], null, ["]"]] - , ["[]-]", ["]"], null, ["]"]] - , ["[a-\z]", ["p"], null, ["p"]] - , ["??**********?****?", [], { null: true }, ["abc"]] - , ["??**********?****c", [], { null: true }, ["abc"]] - , ["?************c****?****", [], { null: true }, ["abc"]] - , ["*c*?**", [], { null: true }, ["abc"]] - , ["a*****c*?**", [], { null: true }, ["abc"]] - , ["a********???*******", [], { null: true }, ["abc"]] - , ["[]", [], { null: true }, ["a"]] - , ["[abc", [], { null: true }, ["["]] - - , "nocase tests" - , ["XYZ", ["xYz"], { nocase: true, null: true } - , ["xYz", "ABC", "IjK"]] - , ["ab*", ["ABC"], { nocase: true, null: true } - , ["xYz", "ABC", "IjK"]] - , ["[ia]?[ck]", ["ABC", "IjK"], { nocase: true, null: true } - , ["xYz", "ABC", "IjK"]] - - // [ pattern, [matches], MM opts, files, TAP opts] - , "onestar/twostar" - , ["{/*,*}", [], {null: true}, ["/asdf/asdf/asdf"]] - , ["{/?,*}", ["/a", "bb"], {null: true} - , ["/a", "/b/b", "/a/b/c", "bb"]] - - , "dots should not match unless requested" - , ["**", ["a/b"], {}, ["a/b", "a/.d", ".a/.d"]] - - // .. and . can only match patterns starting with ., - // even when options.dot is set. - , function () { - files = ["a/./b", "a/../b", "a/c/b", "a/.d/b"] - } - , ["a/*/b", ["a/c/b", "a/.d/b"], {dot: true}] - , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: true}] - , ["a/*/b", ["a/c/b"], {dot:false}] - , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: false}] - - - // this also tests that changing the options needs - // to change the cache key, even if the pattern is - // the same! - , ["**", ["a/b","a/.d",".a/.d"], { dot: true } - , [ ".a/.d", "a/.d", "a/b"]] - - , "paren sets cannot contain slashes" - , ["*(a/b)", ["*(a/b)"], {nonull: true}, ["a/b"]] - - // brace sets trump all else. - // - // invalid glob pattern. fails on bash4 and bsdglob. - // however, in this implementation, it's easier just - // to do the intuitive thing, and let brace-expansion - // actually come before parsing any extglob patterns, - // like the documentation seems to say. - // - // XXX: if anyone complains about this, either fix it - // or tell them to grow up and stop complaining. - // - // bash/bsdglob says this: - // , ["*(a|{b),c)}", ["*(a|{b),c)}"], {}, ["a", "ab", "ac", "ad"]] - // but we do this instead: - , ["*(a|{b),c)}", ["a", "ab", "ac"], {}, ["a", "ab", "ac", "ad"]] - - // test partial parsing in the presence of comment/negation chars - , ["[!a*", ["[!ab"], {}, ["[!ab", "[ab"]] - , ["[#a*", ["[#ab"], {}, ["[#ab", "[ab"]] - - // like: {a,b|c\\,d\\\|e} except it's unclosed, so it has to be escaped. - , ["+(a|*\\|c\\\\|d\\\\\\|e\\\\\\\\|f\\\\\\\\\\|g" - , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g"] - , {} - , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g", "a", "b\\c"]] - - - // crazy nested {,,} and *(||) tests. - , function () { - files = [ "a", "b", "c", "d" - , "ab", "ac", "ad" - , "bc", "cb" - , "bc,d", "c,db", "c,d" - , "d)", "(b|c", "*(b|c" - , "b|c", "b|cc", "cb|c" - , "x(a|b|c)", "x(a|c)" - , "(a|b|c)", "(a|c)"] - } - , ["*(a|{b,c})", ["a", "b", "c", "ab", "ac"]] - , ["{a,*(b|c,d)}", ["a","(b|c", "*(b|c", "d)"]] - // a - // *(b|c) - // *(b|d) - , ["{a,*(b|{c,d})}", ["a","b", "bc", "cb", "c", "d"]] - , ["*(a|{b|c,c})", ["a", "b", "c", "ab", "ac", "bc", "cb"]] - - - // test various flag settings. - , [ "*(a|{b|c,c})", ["x(a|b|c)", "x(a|c)", "(a|b|c)", "(a|c)"] - , { noext: true } ] - , ["a?b", ["x/y/acb", "acb/"], {matchBase: true} - , ["x/y/acb", "acb/", "acb/d/e", "x/y/acb/d"] ] - , ["#*", ["#a", "#b"], {nocomment: true}, ["#a", "#b", "c#d"]] - - - // begin channelling Boole and deMorgan... - , "negation tests" - , function () { - files = ["d", "e", "!ab", "!abc", "a!b", "\\!a"] - } - - // anything that is NOT a* matches. - , ["!a*", ["\\!a", "d", "e", "!ab", "!abc"]] - - // anything that IS !a* matches. - , ["!a*", ["!ab", "!abc"], {nonegate: true}] - - // anything that IS a* matches - , ["!!a*", ["a!b"]] - - // anything that is NOT !a* matches - , ["!\\!a*", ["a!b", "d", "e", "\\!a"]] - - // negation nestled within a pattern - , function () { - files = [ "foo.js" - , "foo.bar" - // can't match this one without negative lookbehind. - , "foo.js.js" - , "blar.js" - , "foo." - , "boo.js.boo" ] - } - , ["*.!(js)", ["foo.bar", "foo.", "boo.js.boo"] ] - - ].forEach(function (c) { - if (typeof c === "function") return c() - if (typeof c === "string") return t.comment(c) - - var pattern = c[0] - , expect = c[1].sort(alpha) - , options = c[2] - , f = c[3] || files - , tapOpts = c[4] || {} - - // options.debug = true - var Class = mm.defaults(options).Minimatch - var m = new Class(pattern, {}) - var r = m.makeRe() - tapOpts.re = String(r) || JSON.stringify(r) - tapOpts.files = JSON.stringify(f) - tapOpts.pattern = pattern - tapOpts.set = m.set - tapOpts.negated = m.negate - - var actual = mm.match(f, pattern, options) - actual.sort(alpha) - - t.equivalent( actual, expect - , JSON.stringify(pattern) + " " + JSON.stringify(expect) - , tapOpts ) - }) - - t.comment("time=" + (Date.now() - start) + "ms") - t.end() -}) - -tap.test("global leak test", function (t) { - var globalAfter = Object.keys(global) - t.equivalent(globalAfter, globalBefore, "no new globals, please") - t.end() -}) - -function alpha (a, b) { - return a > b ? 1 : -1 -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/extglob-ending-with-state-char.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/extglob-ending-with-state-char.js deleted file mode 100644 index 6676e262..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/test/extglob-ending-with-state-char.js +++ /dev/null @@ -1,8 +0,0 @@ -var test = require('tap').test -var minimatch = require('../') - -test('extglob ending with statechar', function(t) { - t.notOk(minimatch('ax', 'a?(b*)')) - t.ok(minimatch('ax', '?(a*|b)')) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/.npmignore deleted file mode 100644 index 07e6e472..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/.travis.yml deleted file mode 100644 index 41840cb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -sudo: false - -language: node_js - -node_js: - - "0.8" - - "0.10" - - "0.12" - - "1" - - "2" - - "3" - - "4" - - "5" - -install: - - PATH="`npm bin`:`npm bin -g`:$PATH" - # Node 0.8 comes with a too obsolete npm - - if [[ "`node --version`" =~ ^v0\.8\. ]]; then npm install -g npm@1.4.28 ; fi - # Install dependencies and build - - npm install - -script: - # Output useful info for debugging - - node --version - - npm --version - # Run tests - - npm test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/History.md deleted file mode 100644 index bbdacd30..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/History.md +++ /dev/null @@ -1,30 +0,0 @@ - -1.0.1 / 2016-01-14 -================== - - * add MIT LICENSE file - * update "array-index" to v1.0.0 with new API - * travis: test more node versions and fix v0.8 - * travis: use quotes around node versions - -1.0.0 / 2014-11-11 -================== - - * index: add support for a configrable `property` name to use - * README: fix Travis badge - -0.0.2 / 2013-12-22 -================== - - * README++ - * test: add unshift() test - * test: add more tests - * index: ensure that the indexed getters/setters are set up in the constructor - * add .travis.yml file - * add initial tests - -0.0.1 / 2013-12-21 -================== - - * add README.md - * initial commit diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/LICENSE deleted file mode 100644 index 2a54ccd2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2013 Nathan Rajlich - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/README.md deleted file mode 100644 index 2595316a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/README.md +++ /dev/null @@ -1,92 +0,0 @@ -path-array -========== -### Treat your `$PATH` like a JavaScript Array -[![Build Status](https://travis-ci.org/TooTallNate/path-array.svg?branch=master)](https://travis-ci.org/TooTallNate/path-array) - -This module provides a JavaScript `Array` implementation that is backed by your -`$PATH` env variable. That is, you can use regular Array functions like `shift()`, -`pop()`, `push()`, `unshift()`, etc. to mutate your `$PATH`. - -Also works for preparing an `env` object for passing to -[`child_process.spawn()`][cp.spawn]. - - -Installation ------------- - -Install with `npm`: - -``` bash -$ npm install path-array -``` - - -Example -------- - -Interacting with your own `$PATH` env variable: - -``` js -var PathArray = require('path-array'); - -// no args uses `process.env` by default -var p = new PathArray(); - -console.log(p); -// [ './node_modules/.bin', -// '/opt/local/bin', -// '/opt/local/sbin', -// '/usr/local/bin', -// '/usr/local/sbin', -// '/usr/bin', -// '/bin', -// '/usr/sbin', -// '/sbin', -// '/usr/local/bin', -// '/opt/X11/bin' ] - -// push another path entry. this function mutates the `process.env.PATH` -p.unshift('/foo'); - -console.log(process.env.PATH); -// '/foo:./node_modules/.bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin' -``` - - -API ---- - -### new PathArray([env]) → PathArray - -Creates and returns a new `PathArray` instance with the given `env` object. If no -`env` is specified, then [`process.env`][process.env] is used by default. - - -License -------- - -(The MIT License) - -Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net> - -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. - -[process.env]: http://nodejs.org/docs/latest/api/process.html#process_process_env -[cp.spawn]: http://nodejs.org/docs/latest/api/child_process.html#child_process_child_process_spawn_command_args_options diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/index.js deleted file mode 100644 index 1e817013..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/index.js +++ /dev/null @@ -1,137 +0,0 @@ - -/** - * Module dependencies. - */ - -var inherits = require('util').inherits; -var delimiter = require('path').delimiter || ':'; -var ArrayIndex = require('array-index'); - -/** - * Module exports. - */ - -module.exports = PathArray; - -/** - * `PathArray` constructor. Treat your `$PATH` like a mutable JavaScript Array! - * - * @param {Env} env - `process.env` object to use. - * @param {String} [property] - optional property name to use (`PATH` by default). - * @public - */ - -function PathArray (env, property) { - if (!(this instanceof PathArray)) return new PathArray(env); - ArrayIndex.call(this); - - this.property = property || 'PATH'; - - // overwrite only the `get` operator of the ".length" property - Object.defineProperty(this, 'length', { - get: this._getLength - }); - - // store the `process.env` object as a non-enumerable `_env` - Object.defineProperty(this, '_env', { - value: env || process.env, - writable: true, - enumerable: false, - configurable: true - }); - - // need to invoke the `length` getter to ensure that the - // indexed getters/setters are set up at this point - void(this.length); -} - -// inherit from ArrayIndex -inherits(PathArray, ArrayIndex); - -/** - * Returns the current $PATH representation as an Array. - * - * @api private - */ - -PathArray.prototype._array = function () { - var path = this._env[this.property]; - if (!path) return []; - return path.split(delimiter); -}; - -/** - * Sets the `env` object's `PATH` string to the values in the passed in Array - * instance. - * - * @api private - */ - -PathArray.prototype._setArray = function (arr) { - // mutate the $PATH - this._env[this.property] = arr.join(delimiter); -}; - -/** - * `.length` getter operation implementation. - * - * @api private - */ - -PathArray.prototype._getLength = function () { - var length = this._array().length; - - // invoke the ArrayIndex internal `set` operator to ensure that - // there's getters/setters defined for the determined length so far... - this.length = length; - - return length; -}; - -/** - * ArrayIndex [0] getter operator implementation. - * - * @api private - */ - -PathArray.prototype[ArrayIndex.get] = function get (index) { - return this._array()[index]; -}; - -/** - * ArrayIndex [0]= setter operator implementation. - * - * @api private - */ - -PathArray.prototype[ArrayIndex.set] = function set (index, value) { - var arr = this._array(); - arr[index] = value; - this._setArray(arr); - return value; -}; - -/** - * `toString()` returns the current $PATH string. - * - * @api public - */ - -PathArray.prototype.toString = function toString () { - return this._env[this.property] || ''; -}; - -// proxy the JavaScript Array functions, and mutate the $PATH -Object.getOwnPropertyNames(Array.prototype).forEach(function (name) { - if ('constructor' == name) return; - if ('function' != typeof Array.prototype[name]) return; - if (/to(Locale)?String/.test(name)) return; - //console.log('proxy %s', name); - - PathArray.prototype[name] = function () { - var arr = this._array(); - var rtn = arr[name].apply(arr, arguments); - this._setArray(arr); - return rtn; - }; -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.jshintrc deleted file mode 100644 index 182e34d0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.jshintrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "asi": true, - "laxcomma": true -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.travis.yml deleted file mode 100644 index 41840cb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -sudo: false - -language: node_js - -node_js: - - "0.8" - - "0.10" - - "0.12" - - "1" - - "2" - - "3" - - "4" - - "5" - -install: - - PATH="`npm bin`:`npm bin -g`:$PATH" - # Node 0.8 comes with a too obsolete npm - - if [[ "`node --version`" =~ ^v0\.8\. ]]; then npm install -g npm@1.4.28 ; fi - # Install dependencies and build - - npm install - -script: - # Output useful info for debugging - - node --version - - npm --version - # Run tests - - npm test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/History.md deleted file mode 100644 index 12990228..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/History.md +++ /dev/null @@ -1,67 +0,0 @@ - -1.0.0 / 2016-01-02 -================== - - * remove `__get__` and `__set__` functionality - * README: s/->/→/ - -0.9.1 / 2015-12-29 -================== - - * fix backwards compat with tests - * README: update samples for new Symbols API - * travis: attempt to fix node v8 - -0.9.0 / 2015-12-27 -================== - - * add backwards compat logic with deprecate message - * add LICENSE field and entry in package.json - * convert to using es6 Symbols - * remove extraneous debug() calls - * travis: test moar Node.js versions - -0.2.0 / 2015-12-02 -================== - - * add support for invoking as a Mixin - * travis: test node v0.6 - -0.1.1 / 2014-11-03 -================== - - * index: use `%o` debug formatters - * .travis: don't test node v0.9.x - * README: use svg for Travis badge - * add .jshintrc file - -0.1.0 / 2013-12-01 -================== - - * add `History.md` file - * .travis.yml: test node v0.8-v0.11 - * add component.json - * package: update "main" field - * package: beautify - -0.0.4 / 2013-09-27 -================== - - * ensure that the `length` property has the same maximum as regular Arrays - -0.0.3 / 2013-09-15 -================== - - * add `toArray()`, `toJSON()`, and `toString()` functions - * add an `inspect()` function - -0.0.2 / 2013-09-15 -================== - - * use "configurable: true" - * add `travis.yml` file - -0.0.1 / 2013-06-14 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/LICENSE deleted file mode 100644 index 2ea4dc5e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012 Nathan Rajlich - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/Makefile deleted file mode 100644 index 0f14dac3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/Makefile +++ /dev/null @@ -1,11 +0,0 @@ - -build: components index.js - @component build --dev - -components: component.json - @component install --dev - -clean: - rm -fr build components template.js - -.PHONY: clean diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/README.md deleted file mode 100644 index b8d715d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/README.md +++ /dev/null @@ -1,155 +0,0 @@ -array-index -=========== -### Invoke getter/setter functions on array-like objects -[![Build Status](https://secure.travis-ci.org/TooTallNate/array-index.svg)](http://travis-ci.org/TooTallNate/array-index) - - -This little module provides an `ArrayIndex` constructor function that you can -inherit from with your own objects. When a numbered property gets read, then the -`ArrayIndex.get` function on the object will be invoked. When a numbered property gets -set, then the `ArrayIndex.set` function on the object will be invoked. - - -Installation ------------- - -Install with `npm`: - -``` bash -$ npm install array-index -``` - - -Examples --------- - -A quick silly example, using `Math.sqrt()` for the "getter": - -``` js -var ArrayIndex = require('array-index'); - -// let's just create a singleton instance. -var a = new ArrayIndex(); - -// the "ArrayIndex.get" function is invoked for each "a[n]" access. -// it is given a single argument, the "index" currently being accessed. -// so here, we're passing in the `Math.sqrt()` function, so accessing -// "a[9]" will return `Math.sqrt(9)`. -a[ArrayIndex.get] = Math.sqrt; - -// the "ArrayIndex.get" and "ArrayIndex.set" functions are only invoked up -// to "a.length", so we must set that manually. -a.length = 10; - -console.log(a); -// [ 0, -// 1, -// 1.4142135623730951, -// 1.7320508075688772, -// 2, -// 2.23606797749979, -// 2.449489742783178, -// 2.6457513110645907, -// 2.8284271247461903, -// 3 ] -``` - -Here's an example of creating a subclass of `ArrayIndex` using `util.inherits()`: - -``` js -var ArrayIndex = require('array-index'); -var inherits = require('util').inherits; - -function MyArray (length) { - // be sure to call the ArrayIndex constructor in your own constructor - ArrayIndex.call(this, length); - - // the "set" object will contain values at indexes previously set, - // so that they can be returned in the "getter" function. This is just a - // silly example, your subclass will have more meaningful logic. - Object.defineProperty(this, 'set', { - value: Object.create(null), - enumerable: false - }); -} - -// inherit from the ArrayIndex's prototype -inherits(MyArray, ArrayIndex); - -MyArray.prototype[ArrayIndex.get] = function (index) { - if (index in this.set) return this.set[index]; - return index * 2; -}; - -MyArray.prototype[ArrayIndex.set] = function (index, v) { - this.set[index] = v; -}; - - -// and now you can create some instances -var a = new MyArray(15); -a[9] = a[10] = a[14] = '_'; -a[0] = 'nate'; - -console.log(a); -// [ 'nate', 2, 4, 6, 8, 10, 12, 14, 16, '_', '_', 22, 24, 26, '_' ] -``` - -API ---- - -The `ArrayIndex` base class is meant to be subclassed, but it also has a few -convenient functions built-in. - -### "length" → Number - -The length of the ArrayIndex instance. The `ArrayIndex.get` and `ArrayIndex.set` functions will -only be invoked on the object up to this "length". You may set this length at any -time to adjust the amount range where the getters/setters will be invoked. - -### "toArray()" → Array - -Returns a new regular Array instance with the same values that this ArrayIndex -class would have. This function calls the `ArrayIndex.get` function repeatedly from -`0...length-1` and returns the "flattened" array instance. - -### "toJSON()" → Array - -All `ArrayIndex` instances get basic support for `JSON.stringify()`, which is -the same as a "flattened" Array being stringified. - -### "toString()" → String - -The `toString()` override is basically just `array.toArray().toString()`. - -### "format()" → String - -The `inspect()` implementation for the REPL attempts to mimic what a regular -Array looks like in the REPL. - - -License -------- - -(The MIT License) - -Copyright (c) 2012 Nathan Rajlich <nathan@tootallnate.net> - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/component.json deleted file mode 100644 index f5f21fc7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/component.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "array-index", - "repo": "TooTallNate/array-index", - "description": "Invoke getter/setter functions on array-like objects", - "keywords": [ - "index", - "array", - "getter", - "setter", - "proxy" - ], - "version": "1.0.0", - "dependencies": { - "visionmedia/debug": "*" - }, - "development": {}, - "license": "MIT", - "main": "index.js", - "scripts": [ - "index.js" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/index.js deleted file mode 100644 index a2e4110c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/index.js +++ /dev/null @@ -1,182 +0,0 @@ - -/** - * Module dependencies. - */ - -var Symbol = require('es6-symbol'); -var debug = require('debug')('array-index'); - -var get = Symbol('get'); -var set = Symbol('set'); -var length = Symbol('length'); - -/** - * JavaScript Array "length" is bound to an unsigned 32-bit int. - * See: http://stackoverflow.com/a/6155063/376773 - */ - -var MAX_LENGTH = Math.pow(2, 32); - -/** - * Module exports. - */ - -module.exports = ArrayIndex; -ArrayIndex.get = get; -ArrayIndex.set = set; - -/** - * Subclass this. - */ - -function ArrayIndex (_length) { - Object.defineProperty(this, 'length', { - get: getLength, - set: setLength, - enumerable: false, - configurable: true - }); - - this[length] = 0; - - if (arguments.length > 0) { - setLength.call(this, _length); - } -} - -/** - * You overwrite the "get" Symbol in your subclass. - */ - -ArrayIndex.prototype[ArrayIndex.get] = function () { - throw new Error('you must implement the `ArrayIndex.get` Symbol'); -}; - -/** - * You overwrite the "set" Symbol in your subclass. - */ - -ArrayIndex.prototype[ArrayIndex.set] = function () { - throw new Error('you must implement the `ArrayIndex.set` Symbol'); -}; - -/** - * Converts this array class into a real JavaScript Array. Note that this - * is a "flattened" array and your defined getters and setters won't be invoked - * when you interact with the returned Array. This function will call the - * getter on every array index of the object. - * - * @return {Array} The flattened array - * @api public - */ - -ArrayIndex.prototype.toArray = function toArray () { - var i = 0; - var l = this.length; - var array = new Array(l); - for (; i < l; i++) { - array[i] = this[i]; - } - return array; -}; - -/** - * Basic support for `JSON.stringify()`. - */ - -ArrayIndex.prototype.toJSON = function toJSON () { - return this.toArray(); -}; - -/** - * toString() override. Use Array.prototype.toString(). - */ - -ArrayIndex.prototype.toString = function toString () { - var a = this.toArray(); - return a.toString.apply(a, arguments); -}; - -/** - * inspect() override. For the REPL. - */ - -ArrayIndex.prototype.inspect = function inspect () { - var a = this.toArray(); - Object.keys(this).forEach(function (k) { - a[k] = this[k]; - }, this); - return a; -}; - -/** - * Getter for the "length" property. - * Returns the value of the "length" Symbol. - */ - -function getLength () { - debug('getting "length": %o', this[length]); - return this[length]; -}; - -/** - * Setter for the "length" property. - * Calls "ensureLength()", then sets the "length" Symbol. - */ - -function setLength (v) { - debug('setting "length": %o', v); - return this[length] = ensureLength(this, v); -}; - -/** - * Ensures that getters/setters from 0 up to "_newLength" have been defined - * on `Object.getPrototypeOf(this)`. - * - * @api private - */ - -function ensureLength (self, _newLength) { - var newLength; - if (_newLength > MAX_LENGTH) { - newLength = MAX_LENGTH; - } else { - newLength = _newLength | 0; - } - var proto = Object.getPrototypeOf(self); - var cur = proto[length] | 0; - var num = newLength - cur; - if (num > 0) { - var desc = {}; - debug('creating a descriptor object with %o entries', num); - for (var i = cur; i < newLength; i++) { - desc[i] = setup(i); - } - debug('calling `Object.defineProperties()` with %o entries', num); - Object.defineProperties(proto, desc); - proto[length] = newLength; - } - return newLength; -} - -/** - * Returns a property descriptor for the given "index", with "get" and "set" - * functions created within the closure. - * - * @api private - */ - -function setup (index) { - function get () { - return this[ArrayIndex.get](index); - } - function set (v) { - return this[ArrayIndex.set](index, v); - } - return { - enumerable: true, - configurable: true, - get: get, - set: set - }; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/.npmignore deleted file mode 100644 index 7e6163db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -support -test -examples -example -*.sock -dist diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/History.md deleted file mode 100644 index 854c9711..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/History.md +++ /dev/null @@ -1,195 +0,0 @@ - -2.2.0 / 2015-05-09 -================== - - * package: update "ms" to v0.7.1 (#202, @dougwilson) - * README: add logging to file example (#193, @DanielOchoa) - * README: fixed a typo (#191, @amir-s) - * browser: expose `storage` (#190, @stephenmathieson) - * Makefile: add a `distclean` target (#189, @stephenmathieson) - -2.1.3 / 2015-03-13 -================== - - * Updated stdout/stderr example (#186) - * Updated example/stdout.js to match debug current behaviour - * Renamed example/stderr.js to stdout.js - * Update Readme.md (#184) - * replace high intensity foreground color for bold (#182, #183) - -2.1.2 / 2015-03-01 -================== - - * dist: recompile - * update "ms" to v0.7.0 - * package: update "browserify" to v9.0.3 - * component: fix "ms.js" repo location - * changed bower package name - * updated documentation about using debug in a browser - * fix: security error on safari (#167, #168, @yields) - -2.1.1 / 2014-12-29 -================== - - * browser: use `typeof` to check for `console` existence - * browser: check for `console.log` truthiness (fix IE 8/9) - * browser: add support for Chrome apps - * Readme: added Windows usage remarks - * Add `bower.json` to properly support bower install - -2.1.0 / 2014-10-15 -================== - - * node: implement `DEBUG_FD` env variable support - * package: update "browserify" to v6.1.0 - * package: add "license" field to package.json (#135, @panuhorsmalahti) - -2.0.0 / 2014-09-01 -================== - - * package: update "browserify" to v5.11.0 - * node: use stderr rather than stdout for logging (#29, @stephenmathieson) - -1.0.4 / 2014-07-15 -================== - - * dist: recompile - * example: remove `console.info()` log usage - * example: add "Content-Type" UTF-8 header to browser example - * browser: place %c marker after the space character - * browser: reset the "content" color via `color: inherit` - * browser: add colors support for Firefox >= v31 - * debug: prefer an instance `log()` function over the global one (#119) - * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) - -1.0.3 / 2014-07-09 -================== - - * Add support for multiple wildcards in namespaces (#122, @seegno) - * browser: fix lint - -1.0.2 / 2014-06-10 -================== - - * browser: update color palette (#113, @gscottolson) - * common: make console logging function configurable (#108, @timoxley) - * node: fix %o colors on old node <= 0.8.x - * Makefile: find node path using shell/which (#109, @timoxley) - -1.0.1 / 2014-06-06 -================== - - * browser: use `removeItem()` to clear localStorage - * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) - * package: add "contributors" section - * node: fix comment typo - * README: list authors - -1.0.0 / 2014-06-04 -================== - - * make ms diff be global, not be scope - * debug: ignore empty strings in enable() - * node: make DEBUG_COLORS able to disable coloring - * *: export the `colors` array - * npmignore: don't publish the `dist` dir - * Makefile: refactor to use browserify - * package: add "browserify" as a dev dependency - * Readme: add Web Inspector Colors section - * node: reset terminal color for the debug content - * node: map "%o" to `util.inspect()` - * browser: map "%j" to `JSON.stringify()` - * debug: add custom "formatters" - * debug: use "ms" module for humanizing the diff - * Readme: add "bash" syntax highlighting - * browser: add Firebug color support - * browser: add colors for WebKit browsers - * node: apply log to `console` - * rewrite: abstract common logic for Node & browsers - * add .jshintrc file - -0.8.1 / 2014-04-14 -================== - - * package: re-add the "component" section - -0.8.0 / 2014-03-30 -================== - - * add `enable()` method for nodejs. Closes #27 - * change from stderr to stdout - * remove unnecessary index.js file - -0.7.4 / 2013-11-13 -================== - - * remove "browserify" key from package.json (fixes something in browserify) - -0.7.3 / 2013-10-30 -================== - - * fix: catch localStorage security error when cookies are blocked (Chrome) - * add debug(err) support. Closes #46 - * add .browser prop to package.json. Closes #42 - -0.7.2 / 2013-02-06 -================== - - * fix package.json - * fix: Mobile Safari (private mode) is broken with debug - * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript - -0.7.1 / 2013-02-05 -================== - - * add repository URL to package.json - * add DEBUG_COLORED to force colored output - * add browserify support - * fix component. Closes #24 - -0.7.0 / 2012-05-04 -================== - - * Added .component to package.json - * Added debug.component.js build - -0.6.0 / 2012-03-16 -================== - - * Added support for "-" prefix in DEBUG [Vinay Pulim] - * Added `.enabled` flag to the node version [TooTallNate] - -0.5.0 / 2012-02-02 -================== - - * Added: humanize diffs. Closes #8 - * Added `debug.disable()` to the CS variant - * Removed padding. Closes #10 - * Fixed: persist client-side variant again. Closes #9 - -0.4.0 / 2012-02-01 -================== - - * Added browser variant support for older browsers [TooTallNate] - * Added `debug.enable('project:*')` to browser variant [TooTallNate] - * Added padding to diff (moved it to the right) - -0.3.0 / 2012-01-26 -================== - - * Added millisecond diff when isatty, otherwise UTC string - -0.2.0 / 2012-01-22 -================== - - * Added wildcard support - -0.1.0 / 2011-12-02 -================== - - * Added: remove colors unless stderr isatty [TooTallNate] - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Makefile deleted file mode 100644 index 5cf4a596..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Makefile +++ /dev/null @@ -1,36 +0,0 @@ - -# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 -THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) -THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) - -# BIN directory -BIN := $(THIS_DIR)/node_modules/.bin - -# applications -NODE ?= $(shell which node) -NPM ?= $(NODE) $(shell which npm) -BROWSERIFY ?= $(NODE) $(BIN)/browserify - -all: dist/debug.js - -install: node_modules - -clean: - @rm -rf dist - -dist: - @mkdir -p $@ - -dist/debug.js: node_modules browser.js debug.js dist - @$(BROWSERIFY) \ - --standalone debug \ - . > $@ - -distclean: clean - @rm -rf node_modules - -node_modules: package.json - @NODE_ENV= $(NPM) install - @touch node_modules - -.PHONY: all install clean distclean diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Readme.md deleted file mode 100644 index b4f45e3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Readme.md +++ /dev/null @@ -1,188 +0,0 @@ -# debug - - tiny node.js debugging utility modelled after node core's debugging technique. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - - With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility. - -Example _app.js_: - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %s', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example _worker.js_: - -```js -var debug = require('debug')('worker'); - -setInterval(function(){ - debug('doing some work'); -}, 1000); -``` - - The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: - - ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) - - ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) - -#### Windows note - - On Windows the environment variable is set using the `set` command. - - ```cmd - set DEBUG=*,-not_this - ``` - -Then, run the program to be debugged as usual. - -## Millisecond diff - - When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) - - When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: - - ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) - -## Conventions - - If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". - -## Wildcards - - The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - - You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:". - -## Browser support - - Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include: - -```js -window.myDebug = require("debug"); -``` - - ("debug" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console: - -```js -myDebug.enable("worker:*") -``` - - Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - -#### Web Inspector Colors - - Colors are also enabled on "Web Inspectors" that understand the `%c` formatting - option. These are WebKit web inspectors, Firefox ([since version - 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) - and the Firebug plugin for Firefox (any version). - - Colored output looks something like: - - ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png) - -### stderr vs stdout - -You can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally: - -Example _stdout.js_: - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -### Save debug output to a file - -You can save all debug statements to a file by piping them. - -Example: - -```bash -$ DEBUG_FD=3 node your-app.js 3> whatever.log -``` - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - -## License - -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/bower.json deleted file mode 100644 index 6af573ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "visionmedia-debug", - "main": "dist/debug.js", - "version": "2.2.0", - "homepage": "https://github.com/visionmedia/debug", - "authors": [ - "TJ Holowaychuk " - ], - "description": "visionmedia-debug", - "moduleType": [ - "amd", - "es6", - "globals", - "node" - ], - "keywords": [ - "visionmedia", - "debug" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/browser.js deleted file mode 100644 index 7c764522..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/browser.js +++ /dev/null @@ -1,168 +0,0 @@ - -/** - * This is the web browser implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - -/** - * Colors. - */ - -exports.colors = [ - 'lightseagreen', - 'forestgreen', - 'goldenrod', - 'dodgerblue', - 'darkorchid', - 'crimson' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -function useColors() { - // is webkit? http://stackoverflow.com/a/16459606/376773 - return ('WebkitAppearance' in document.documentElement.style) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (window.console && (console.firebug || (console.exception && console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31); -} - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - return JSON.stringify(v); -}; - - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); - - if (!useColors) return args; - - var c = 'color: ' + this.color; - args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1)); - - // the final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - var index = 0; - var lastC = 0; - args[0].replace(/%[a-z%]/g, function(match) { - if ('%%' === match) return; - index++; - if ('%c' === match) { - // we only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); - return args; -} - -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ - -function log() { - // this hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - try { - if (null == namespaces) { - exports.storage.removeItem('debug'); - } else { - exports.storage.debug = namespaces; - } - } catch(e) {} -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - var r; - try { - r = exports.storage.debug; - } catch(e) {} - return r; -} - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage(){ - try { - return window.localStorage; - } catch (e) {} -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/component.json deleted file mode 100644 index ca106372..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "debug", - "repo": "visionmedia/debug", - "description": "small debugging utility", - "version": "2.2.0", - "keywords": [ - "debug", - "log", - "debugger" - ], - "main": "browser.js", - "scripts": [ - "browser.js", - "debug.js" - ], - "dependencies": { - "rauchg/ms.js": "0.7.1" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/debug.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/debug.js deleted file mode 100644 index 7571a860..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/debug.js +++ /dev/null @@ -1,197 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = debug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = require('ms'); - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lowercased letter, i.e. "n". - */ - -exports.formatters = {}; - -/** - * Previously assigned color. - */ - -var prevColor = 0; - -/** - * Previous log timestamp. - */ - -var prevTime; - -/** - * Select a color. - * - * @return {Number} - * @api private - */ - -function selectColor() { - return exports.colors[prevColor++ % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function debug(namespace) { - - // define the `disabled` version - function disabled() { - } - disabled.enabled = false; - - // define the `enabled` version - function enabled() { - - var self = enabled; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // add the `color` if not set - if (null == self.useColors) self.useColors = exports.useColors(); - if (null == self.color && self.useColors) self.color = selectColor(); - - var args = Array.prototype.slice.call(arguments); - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %o - args = ['%o'].concat(args); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - if ('function' === typeof exports.formatArgs) { - args = exports.formatArgs.apply(self, args); - } - var logFn = enabled.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - enabled.enabled = true; - - var fn = exports.enabled(namespace) ? enabled : disabled; - - fn.namespace = namespace; - - return fn; -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - var split = (namespaces || '').split(/[\s,]+/); - var len = split.length; - - for (var i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node.js deleted file mode 100644 index 1d392a81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node.js +++ /dev/null @@ -1,209 +0,0 @@ - -/** - * Module dependencies. - */ - -var tty = require('tty'); -var util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -/** - * The file descriptor to write the `debug()` calls to. - * Set the `DEBUG_FD` env variable to override with another value. i.e.: - * - * $ DEBUG_FD=3 node script.js 3>debug.log - */ - -var fd = parseInt(process.env.DEBUG_FD, 10) || 2; -var stream = 1 === fd ? process.stdout : - 2 === fd ? process.stderr : - createWritableStdioStream(fd); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - var debugColors = (process.env.DEBUG_COLORS || '').trim().toLowerCase(); - if (0 === debugColors.length) { - return tty.isatty(fd); - } else { - return '0' !== debugColors - && 'no' !== debugColors - && 'false' !== debugColors - && 'disabled' !== debugColors; - } -} - -/** - * Map %o to `util.inspect()`, since Node doesn't do that out of the box. - */ - -var inspect = (4 === util.inspect.length ? - // node <= 0.8.x - function (v, colors) { - return util.inspect(v, void 0, void 0, colors); - } : - // node > 0.8.x - function (v, colors) { - return util.inspect(v, { colors: colors }); - } -); - -exports.formatters.o = function(v) { - return inspect(v, this.useColors) - .replace(/\s*\n\s*/g, ' '); -}; - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - var name = this.namespace; - - if (useColors) { - var c = this.color; - - args[0] = ' \u001b[3' + c + ';1m' + name + ' ' - + '\u001b[0m' - + args[0] + '\u001b[3' + c + 'm' - + ' +' + exports.humanize(this.diff) + '\u001b[0m'; - } else { - args[0] = new Date().toUTCString() - + ' ' + name + ' ' + args[0]; - } - return args; -} - -/** - * Invokes `console.error()` with the specified arguments. - */ - -function log() { - return stream.write(util.format.apply(this, arguments) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - if (null == namespaces) { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } else { - process.env.DEBUG = namespaces; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Copied from `node/src/node.js`. - * - * XXX: It's lame that node doesn't expose this API out-of-the-box. It also - * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. - */ - -function createWritableStdioStream (fd) { - var stream; - var tty_wrap = process.binding('tty_wrap'); - - // Note stream._type is used for test-module-load-list.js - - switch (tty_wrap.guessHandleType(fd)) { - case 'TTY': - stream = new tty.WriteStream(fd); - stream._type = 'tty'; - - // Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - case 'FILE': - var fs = require('fs'); - stream = new fs.SyncWriteStream(fd, { autoClose: false }); - stream._type = 'fs'; - break; - - case 'PIPE': - case 'TCP': - var net = require('net'); - stream = new net.Socket({ - fd: fd, - readable: false, - writable: true - }); - - // FIXME Should probably have an option in net.Socket to create a - // stream from an existing fd which is writable only. But for now - // we'll just add this hack and set the `readable` member to false. - // Test: ./node test/fixtures/echo.js < /etc/passwd - stream.readable = false; - stream.read = null; - stream._type = 'pipe'; - - // FIXME Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - default: - // Probably an error on in uv_guess_handle() - throw new Error('Implement me. Unknown stream file type!'); - } - - // For supporting legacy API we put the FD here. - stream.fd = fd; - - stream._isStdio = true; - - return stream; -} - -/** - * Enable namespaces listed in `process.env.DEBUG` initially. - */ - -exports.enable(load()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/.npmignore deleted file mode 100644 index d1aa0ce4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules -test -History.md -Makefile -component.json diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/History.md deleted file mode 100644 index 32fdfc17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/History.md +++ /dev/null @@ -1,66 +0,0 @@ - -0.7.1 / 2015-04-20 -================== - - * prevent extraordinary long inputs (@evilpacket) - * Fixed broken readme link - -0.7.0 / 2014-11-24 -================== - - * add time abbreviations, updated tests and readme for the new units - * fix example in the readme. - * add LICENSE file - -0.6.2 / 2013-12-05 -================== - - * Adding repository section to package.json to suppress warning from NPM. - -0.6.1 / 2013-05-10 -================== - - * fix singularization [visionmedia] - -0.6.0 / 2013-03-15 -================== - - * fix minutes - -0.5.1 / 2013-02-24 -================== - - * add component namespace - -0.5.0 / 2012-11-09 -================== - - * add short formatting as default and .long option - * add .license property to component.json - * add version to component.json - -0.4.0 / 2012-10-22 -================== - - * add rounding to fix crazy decimals - -0.3.0 / 2012-09-07 -================== - - * fix `ms()` [visionmedia] - -0.2.0 / 2012-09-03 -================== - - * add component.json [visionmedia] - * add days support [visionmedia] - * add hours support [visionmedia] - * add minutes support [visionmedia] - * add seconds support [visionmedia] - * add ms string support [visionmedia] - * refactor tests to facilitate ms(number) [visionmedia] - -0.1.0 / 2012-03-07 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/LICENSE deleted file mode 100644 index 6c07561b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Guillermo Rauch - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/README.md deleted file mode 100644 index 9b4fd035..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# ms.js: miliseconds conversion utility - -```js -ms('2 days') // 172800000 -ms('1d') // 86400000 -ms('10h') // 36000000 -ms('2.5 hrs') // 9000000 -ms('2h') // 7200000 -ms('1m') // 60000 -ms('5s') // 5000 -ms('100') // 100 -``` - -```js -ms(60000) // "1m" -ms(2 * 60000) // "2m" -ms(ms('10 hours')) // "10h" -``` - -```js -ms(60000, { long: true }) // "1 minute" -ms(2 * 60000, { long: true }) // "2 minutes" -ms(ms('10 hours'), { long: true }) // "10 hours" -``` - -- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download). -- If a number is supplied to `ms`, a string with a unit is returned. -- If a string that contains the number is supplied, it returns it as -a number (e.g: it returns `100` for `'100'`). -- If you pass a string with a number and a valid unit, the number of -equivalent ms is returned. - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/index.js deleted file mode 100644 index 4f927716..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/index.js +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} options - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options){ - options = options || {}; - if ('string' == typeof val) return parse(val); - return options.long - ? long(val) - : short(val); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = '' + str; - if (str.length > 10000) return; - var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str); - if (!match) return; - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function short(ms) { - if (ms >= d) return Math.round(ms / d) + 'd'; - if (ms >= h) return Math.round(ms / h) + 'h'; - if (ms >= m) return Math.round(ms / m) + 'm'; - if (ms >= s) return Math.round(ms / s) + 's'; - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function long(ms) { - return plural(ms, d, 'day') - || plural(ms, h, 'hour') - || plural(ms, m, 'minute') - || plural(ms, s, 'second') - || ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, n, name) { - if (ms < n) return; - if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name; - return Math.ceil(ms / n) + ' ' + name + 's'; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/package.json deleted file mode 100644 index a60580a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "_args": [ - [ - "ms@0.7.1", - "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug" - ] - ], - "_from": "ms@0.7.1", - "_id": "ms@0.7.1", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/path-array/array-index/debug/ms", - "_nodeVersion": "0.12.2", - "_npmUser": { - "email": "rauchg@gmail.com", - "name": "rauchg" - }, - "_npmVersion": "2.7.5", - "_phantomChildren": {}, - "_requested": { - "name": "ms", - "raw": "ms@0.7.1", - "rawSpec": "0.7.1", - "scope": null, - "spec": "0.7.1", - "type": "version" - }, - "_requiredBy": [ - "/node-gyp/path-array/array-index/debug" - ], - "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "_shrinkwrap": null, - "_spec": "ms@0.7.1", - "_where": "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug", - "bugs": { - "url": "https://github.com/guille/ms.js/issues" - }, - "component": { - "scripts": { - "ms/index.js": "index.js" - } - }, - "dependencies": {}, - "description": "Tiny ms conversion utility", - "devDependencies": { - "expect.js": "*", - "mocha": "*", - "serve": "*" - }, - "directories": {}, - "dist": { - "shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "tarball": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909", - "homepage": "https://github.com/guille/ms.js", - "main": "./index", - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "name": "ms", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/guille/ms.js.git" - }, - "scripts": {}, - "version": "0.7.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/package.json deleted file mode 100644 index 758deaf8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "_args": [ - [ - "debug@*", - "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/path-array/node_modules/array-index" - ] - ], - "_from": "debug@*", - "_id": "debug@2.2.0", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/path-array/array-index/debug", - "_nodeVersion": "0.12.2", - "_npmUser": { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - }, - "_npmVersion": "2.7.4", - "_phantomChildren": {}, - "_requested": { - "name": "debug", - "raw": "debug@*", - "rawSpec": "*", - "scope": null, - "spec": "*", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp/path-array/array-index" - ], - "_resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "_shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "_shrinkwrap": null, - "_spec": "debug@*", - "_where": "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/path-array/node_modules/array-index", - "author": { - "email": "tj@vision-media.ca", - "name": "TJ Holowaychuk" - }, - "browser": "./browser.js", - "bugs": { - "url": "https://github.com/visionmedia/debug/issues" - }, - "component": { - "scripts": { - "debug/debug.js": "debug.js", - "debug/index.js": "browser.js" - } - }, - "contributors": [ - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io" - } - ], - "dependencies": { - "ms": "0.7.1" - }, - "description": "small debugging utility", - "devDependencies": { - "browserify": "9.0.3", - "mocha": "*" - }, - "directories": {}, - "dist": { - "shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "tarball": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "gitHead": "b38458422b5aa8aa6d286b10dfe427e8a67e2b35", - "homepage": "https://github.com/visionmedia/debug", - "keywords": [ - "debug", - "debugger", - "log" - ], - "license": "MIT", - "main": "./node.js", - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "name": "debug", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "scripts": {}, - "version": "2.2.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/.lint b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/.lint deleted file mode 100644 index df1e53cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/.lint +++ /dev/null @@ -1,15 +0,0 @@ -@root - -module - -tabs -indent 2 -maxlen 100 - -ass -nomen -plusplus -newcap -vars - -predef+ Symbol diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/.npmignore deleted file mode 100644 index 155e41f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -.DS_Store -/node_modules -/npm-debug.log -/.lintcache diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/.travis.yml deleted file mode 100644 index 6830765b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -sudo: false # http://docs.travis-ci.com/user/workers/container-based-infrastructure/ -language: node_js -node_js: - - 0.12 - - v4 - - v5 - -notifications: - email: - - medikoo+es6-symbol@medikoo.com diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/CHANGES b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/CHANGES deleted file mode 100644 index cbedd424..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/CHANGES +++ /dev/null @@ -1,46 +0,0 @@ -v3.0.2 -- 2015.12.12 -* Fix definition flow, so uneven state of Symbol implementation doesn't crash initialization of - polyfill. See #13 - -v3.0.1 -- 2015.10.22 -* Workaround for IE11 bug (reported in #12) - -v3.0.0 -- 2015.10.02 -* Reuse native symbols (e.g. iterator, toStringTag etc.) in a polyfill if they're available - Otherwise polyfill symbols may not be recognized by other functions -* Improve documentation - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/LICENSE deleted file mode 100644 index 04724a3a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/README.md deleted file mode 100644 index 0fa89784..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/README.md +++ /dev/null @@ -1,71 +0,0 @@ -# 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 - -It’s safest to use *es6-symbol* as a [ponyfill](http://kikobeats.com/polyfill-ponyfill-and-prollyfill/) – a polyfill which doesn’t touch global objects: - -```javascript -var Symbol = require('es6-symbol'); -``` - -If you want to make sure your environment implements `Symbol` globally, 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/implement.js deleted file mode 100644 index 153edacd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/implement.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/index.js deleted file mode 100644 index 609f1faf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() ? Symbol : require('./polyfill'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/is-implemented.js deleted file mode 100644 index 53759f32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/is-implemented.js +++ /dev/null @@ -1,18 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/is-native-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/is-native-implemented.js deleted file mode 100644 index a8cb8b86..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/is-native-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/is-symbol.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/is-symbol.js deleted file mode 100644 index beeba2cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/is-symbol.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (x) { - return (x && ((typeof x === 'symbol') || (x['@@toStringTag'] === 'Symbol'))) || false; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/.lint b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/.lint deleted file mode 100644 index 858b7535..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/.lint +++ /dev/null @@ -1,12 +0,0 @@ -@root - -es5 -module - -tabs -indent 2 -maxlen 80 - -ass -nomen -plusplus diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/.npmignore deleted file mode 100644 index 155e41f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -.DS_Store -/node_modules -/npm-debug.log -/.lintcache diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/.travis.yml deleted file mode 100644 index 50008b23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: node_js -node_js: - - 0.8 - - 0.10 - - 0.11 - -notifications: - email: - - medikoo+d@medikoo.com diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/CHANGES b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/CHANGES deleted file mode 100644 index 45233f74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/CHANGES +++ /dev/null @@ -1,7 +0,0 @@ -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/LICENCE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/LICENCE deleted file mode 100644 index aaf35282..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/LICENCE +++ /dev/null @@ -1,19 +0,0 @@ -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/README.md deleted file mode 100644 index 872d493e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/README.md +++ /dev/null @@ -1,108 +0,0 @@ -# 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/auto-bind.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/auto-bind.js deleted file mode 100644 index 1b00dba3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/auto-bind.js +++ /dev/null @@ -1,31 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/index.js deleted file mode 100644 index 076ae465..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/index.js +++ /dev/null @@ -1,63 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/lazy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/lazy.js deleted file mode 100644 index 61e46653..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/lazy.js +++ /dev/null @@ -1,111 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/package.json deleted file mode 100644 index b7c32785..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "_args": [ - [ - "d@~0.1.1", - "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol" - ] - ], - "_from": "d@>=0.1.1 <0.2.0", - "_id": "d@0.1.1", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/path-array/array-index/es6-symbol/d", - "_npmUser": { - "email": "medikoo+npm@medikoo.com", - "name": "medikoo" - }, - "_npmVersion": "1.4.3", - "_phantomChildren": {}, - "_requested": { - "name": "d", - "raw": "d@~0.1.1", - "rawSpec": "~0.1.1", - "scope": null, - "spec": ">=0.1.1 <0.2.0", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp/path-array/array-index/es6-symbol", - "/node-gyp/path-array/array-index/es6-symbol/es5-ext/es6-iterator" - ], - "_resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "_shasum": "da184c535d18d8ee7ba2aa229b914009fae11309", - "_shrinkwrap": null, - "_spec": "d@~0.1.1", - "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol", - "author": { - "email": "medyk@medikoo.com", - "name": "Mariusz Nowak", - "url": "http://www.medikoo.com/" - }, - "bugs": { - "url": "https://github.com/medikoo/d/issues" - }, - "dependencies": { - "es5-ext": "~0.10.2" - }, - "description": "Property descriptor factory", - "devDependencies": { - "tad": "~0.1.21" - }, - "directories": {}, - "dist": { - "shasum": "da184c535d18d8ee7ba2aa229b914009fae11309", - "tarball": "http://registry.npmjs.org/d/-/d-0.1.1.tgz" - }, - "homepage": "https://github.com/medikoo/d", - "keywords": [ - "descriptor", - "descriptors", - "ecma", - "ecmascript", - "es", - "meta", - "properties", - "property" - ], - "license": "MIT", - "maintainers": [ - { - "name": "medikoo", - "email": "medikoo+npm@medikoo.com" - } - ], - "name": "d", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/medikoo/d.git" - }, - "scripts": { - "test": "node node_modules/tad/bin/tad" - }, - "version": "0.1.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/test/auto-bind.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/test/auto-bind.js deleted file mode 100644 index 89edfb88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/test/auto-bind.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/test/index.js deleted file mode 100644 index 3db0af10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/test/index.js +++ /dev/null @@ -1,182 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/test/lazy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/test/lazy.js deleted file mode 100644 index 8266deb2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d/test/lazy.js +++ /dev/null @@ -1,77 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.lint b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.lint deleted file mode 100644 index d1da6103..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.lint +++ /dev/null @@ -1,38 +0,0 @@ -@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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.lintignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.lintignore deleted file mode 100644 index eece4ff3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.lintignore +++ /dev/null @@ -1,9 +0,0 @@ -/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-number-value.js -/test/object/is-object.js -/test/reg-exp/is-reg-exp.js -/test/string/is-string.js diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.npmignore deleted file mode 100644 index eb09b500..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -.DS_Store -/node_modules -/.lintcache -/npm-debug.log diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.travis.yml deleted file mode 100644 index e8e18ee7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -sudo: false # http://docs.travis-ci.com/user/workers/container-based-infrastructure/ -language: node_js -node_js: - - 0.12 - - 4 - - 5 - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/CHANGES b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/CHANGES deleted file mode 100644 index 92ee5f6e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/CHANGES +++ /dev/null @@ -1,628 +0,0 @@ -v0.10.11 -- 2015.12.18 -* Ensure that check for implementation of RegExp flags doesn't crash in V8 (thanks @mathiasbynens) - -v0.10.10 -- 2015.12.11 -* Add Object.isNumberValue util - -v0.10.9 -- 2015.12.01 -* Add Object.ensureNaturalNumber and Object.ensureNaturalNumberValue - -v0.10.8 -- 2015.10.02 -* Add Number.isNatural -* Add Object.find and Object.findKey -* Support arrays in Object.copyDeep -* Fix iteration issue in forEachRight and someRight -* Fix detection of native sinh -* Depend on es6-symbol v3 - -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 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/LICENSE deleted file mode 100644 index de39071f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -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 -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/README.md deleted file mode 100644 index 11d8a343..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/README.md +++ /dev/null @@ -1,993 +0,0 @@ -# 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/implement.js deleted file mode 100644 index 0f714a1d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/index.js deleted file mode 100644 index a6946265..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Array.prototype[require('es6-symbol').iterator] : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/is-implemented.js deleted file mode 100644 index 72eb1f8a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/is-implemented.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/shim.js deleted file mode 100644 index ff295df9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/@@iterator/shim.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../values/shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/_compare-by-length.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/_compare-by-length.js deleted file mode 100644 index d8343ce3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/_compare-by-length.js +++ /dev/null @@ -1,9 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/binary-search.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/binary-search.js deleted file mode 100644 index 8eb45675..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/binary-search.js +++ /dev/null @@ -1,28 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/clear.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/clear.js deleted file mode 100644 index 3587bdf9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/clear.js +++ /dev/null @@ -1,12 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/compact.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/compact.js deleted file mode 100644 index d529d5a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/compact.js +++ /dev/null @@ -1,9 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/implement.js deleted file mode 100644 index 80c67cb4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'concat', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/index.js deleted file mode 100644 index db205ea5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() ? - Array.prototype.concat : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/is-implemented.js deleted file mode 100644 index cab8bc9e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var SubArray = require('../../_sub-array-dummy-safe'); - -module.exports = function () { - return (new SubArray()).concat('foo') instanceof SubArray; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/shim.js deleted file mode 100644 index 8b28e4ae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/concat/shim.js +++ /dev/null @@ -1,39 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/contains.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/contains.js deleted file mode 100644 index 4a2f9f67..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/contains.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var indexOf = require('./e-index-of'); - -module.exports = function (searchElement/*, position*/) { - return indexOf.call(this, searchElement, arguments[1]) > -1; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/implement.js deleted file mode 100644 index eedbad77..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/implement.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'copyWithin', - { value: require('./shim'), configurable: true, enumerable: false, - writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/index.js deleted file mode 100644 index bb89d0b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() ? - Array.prototype.copyWithin : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/is-implemented.js deleted file mode 100644 index 8f17e06d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/shim.js deleted file mode 100644 index c0bfb8b0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/copy-within/shim.js +++ /dev/null @@ -1,39 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/diff.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/diff.js deleted file mode 100644 index a1f95419..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/diff.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/e-index-of.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/e-index-of.js deleted file mode 100644 index 80864d06..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/e-index-of.js +++ /dev/null @@ -1,29 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/e-last-index-of.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/e-last-index-of.js deleted file mode 100644 index 4fc536bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/e-last-index-of.js +++ /dev/null @@ -1,29 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/implement.js deleted file mode 100644 index 490de60e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'entries', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/index.js deleted file mode 100644 index 292792cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() ? - Array.prototype.entries : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/is-implemented.js deleted file mode 100644 index e186c172..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/is-implemented.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/shim.js deleted file mode 100644 index c052b53f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/entries/shim.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -var ArrayIterator = require('es6-iterator/array'); -module.exports = function () { return new ArrayIterator(this, 'key+value'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/exclusion.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/exclusion.js deleted file mode 100644 index f08adc81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/exclusion.js +++ /dev/null @@ -1,27 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/implement.js deleted file mode 100644 index 22511919..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'fill', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/index.js deleted file mode 100644 index 36c1f666..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() ? - Array.prototype.fill : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/is-implemented.js deleted file mode 100644 index b8e54688..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/shim.js deleted file mode 100644 index 45823be5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/fill/shim.js +++ /dev/null @@ -1,21 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/implement.js deleted file mode 100644 index 090c5f10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'filter', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/index.js deleted file mode 100644 index bcf0268d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() ? - Array.prototype.filter : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/is-implemented.js deleted file mode 100644 index 55772735..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/is-implemented.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/shim.js deleted file mode 100644 index b0116def..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/filter/shim.js +++ /dev/null @@ -1,22 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/implement.js deleted file mode 100644 index 556cb846..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/implement.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'findIndex', - { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/index.js deleted file mode 100644 index 03a987e2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() ? - Array.prototype.findIndex : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/is-implemented.js deleted file mode 100644 index dbd3c814..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/is-implemented.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/shim.js deleted file mode 100644 index 957939f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find-index/shim.js +++ /dev/null @@ -1,20 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/implement.js deleted file mode 100644 index 0f37104a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'find', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/index.js deleted file mode 100644 index 96819d09..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() ? - Array.prototype.find : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/is-implemented.js deleted file mode 100644 index cc7ec774..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/is-implemented.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/shim.js deleted file mode 100644 index c7ee9069..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/find/shim.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/first-index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/first-index.js deleted file mode 100644 index 7a9e4c34..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/first-index.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/first.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/first.js deleted file mode 100644 index 11df5717..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/first.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/flatten.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/flatten.js deleted file mode 100644 index c95407d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/flatten.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/for-each-right.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/for-each-right.js deleted file mode 100644 index 1702bb16..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/for-each-right.js +++ /dev/null @@ -1,20 +0,0 @@ -'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) - 1); i >= 0; --i) { - if (hasOwnProperty.call(self, i)) call.call(cb, thisArg, self[i], i, self); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/group.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/group.js deleted file mode 100644 index fbb178c3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/group.js +++ /dev/null @@ -1,23 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/index.js deleted file mode 100644 index 97ef65cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/index.js +++ /dev/null @@ -1,40 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/indexes-of.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/indexes-of.js deleted file mode 100644 index 6b89157a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/indexes-of.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/intersection.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/intersection.js deleted file mode 100644 index fadcb525..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/intersection.js +++ /dev/null @@ -1,19 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/is-copy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/is-copy.js deleted file mode 100644 index ac7c79bc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/is-copy.js +++ /dev/null @@ -1,21 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/is-uniq.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/is-uniq.js deleted file mode 100644 index b14f461d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/is-uniq.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/implement.js deleted file mode 100644 index e18e6170..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'keys', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/index.js deleted file mode 100644 index 2f89cffe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() ? - Array.prototype.keys : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/is-implemented.js deleted file mode 100644 index 06bd87bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/is-implemented.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/shim.js deleted file mode 100644 index 83773f6e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/keys/shim.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -var ArrayIterator = require('es6-iterator/array'); -module.exports = function () { return new ArrayIterator(this, 'key'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/last-index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/last-index.js deleted file mode 100644 index a191d6e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/last-index.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/last.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/last.js deleted file mode 100644 index bf9d2f29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/last.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/implement.js deleted file mode 100644 index 3aabb874..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'map', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/index.js deleted file mode 100644 index 66f66607..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() ? - Array.prototype.map : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/is-implemented.js deleted file mode 100644 index c328b473..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/shim.js deleted file mode 100644 index 2ee73134..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/map/shim.js +++ /dev/null @@ -1,21 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/remove.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/remove.js deleted file mode 100644 index dcf84331..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/remove.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/separate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/separate.js deleted file mode 100644 index dc974b83..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/separate.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/implement.js deleted file mode 100644 index cd488a06..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'slice', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/index.js deleted file mode 100644 index 72200ca9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Array.prototype.slice : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/is-implemented.js deleted file mode 100644 index ec1985e7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var SubArray = require('../../_sub-array-dummy-safe'); - -module.exports = function () { - return (new SubArray()).slice() instanceof SubArray; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/shim.js deleted file mode 100644 index 2761a1aa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/slice/shim.js +++ /dev/null @@ -1,35 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/some-right.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/some-right.js deleted file mode 100644 index f54cf945..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/some-right.js +++ /dev/null @@ -1,23 +0,0 @@ -'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) - 1); i >= 0; --i) { - if (hasOwnProperty.call(self, i) && - call.call(cb, thisArg, self[i], i, self)) { - return true; - } - } - return false; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/implement.js deleted file mode 100644 index aab1f8ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'splice', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/index.js deleted file mode 100644 index e8ecf3cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Array.prototype.splice : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/is-implemented.js deleted file mode 100644 index ffddaa81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var SubArray = require('../../_sub-array-dummy-safe'); - -module.exports = function () { - return (new SubArray()).splice(0) instanceof SubArray; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/shim.js deleted file mode 100644 index a8505a2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/splice/shim.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/uniq.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/uniq.js deleted file mode 100644 index db014655..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/uniq.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/implement.js deleted file mode 100644 index 237281fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array.prototype, 'values', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/index.js deleted file mode 100644 index c0832c30..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() ? Array.prototype.values : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/is-implemented.js deleted file mode 100644 index cc0c6294..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/is-implemented.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/shim.js deleted file mode 100644 index f6555fd8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/#/values/shim.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -var ArrayIterator = require('es6-iterator/array'); -module.exports = function () { return new ArrayIterator(this, 'value'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/_is-extensible.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/_is-extensible.js deleted file mode 100644 index 61232064..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/_is-extensible.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/_sub-array-dummy-safe.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/_sub-array-dummy-safe.js deleted file mode 100644 index 5baf8a8d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/_sub-array-dummy-safe.js +++ /dev/null @@ -1,23 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/_sub-array-dummy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/_sub-array-dummy.js deleted file mode 100644 index a926d1a3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/_sub-array-dummy.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/implement.js deleted file mode 100644 index f3411b13..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array, 'from', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/index.js deleted file mode 100644 index 3b99cda8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Array.from - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/is-implemented.js deleted file mode 100644 index 63ff2a57..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/is-implemented.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/shim.js deleted file mode 100644 index a90ba2f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/from/shim.js +++ /dev/null @@ -1,106 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/generate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/generate.js deleted file mode 100644 index 5e066750..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/generate.js +++ /dev/null @@ -1,20 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/index.js deleted file mode 100644 index 7a686789..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/index.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/is-plain-array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/is-plain-array.js deleted file mode 100644 index 6b37e406..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/is-plain-array.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/implement.js deleted file mode 100644 index bf2a5a54..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Array, 'of', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/index.js deleted file mode 100644 index 07ee54db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Array.of - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/is-implemented.js deleted file mode 100644 index 4390a108..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/shim.js deleted file mode 100644 index de72bc92..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/of/shim.js +++ /dev/null @@ -1,19 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/to-array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/to-array.js deleted file mode 100644 index ce908dd9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/to-array.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var from = require('./from') - - , isArray = Array.isArray; - -module.exports = function (arrayLike) { - return isArray(arrayLike) ? arrayLike : from(arrayLike); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/valid-array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/valid-array.js deleted file mode 100644 index d86a8f5f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/array/valid-array.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/boolean/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/boolean/index.js deleted file mode 100644 index c193b948..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/boolean/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = { - isBoolean: require('./is-boolean') -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/boolean/is-boolean.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/boolean/is-boolean.js deleted file mode 100644 index 5d1a802e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/boolean/is-boolean.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/copy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/copy.js deleted file mode 100644 index 69e2eb09..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/copy.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var getTime = Date.prototype.getTime; - -module.exports = function () { return new Date(getTime.call(this)); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/days-in-month.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/days-in-month.js deleted file mode 100644 index e780efe3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/days-in-month.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/floor-day.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/floor-day.js deleted file mode 100644 index 0c9eb8b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/floor-day.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var setHours = Date.prototype.setHours; - -module.exports = function () { - setHours.call(this, 0, 0, 0, 0); - return this; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/floor-month.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/floor-month.js deleted file mode 100644 index 7328c250..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/floor-month.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var floorDay = require('./floor-day'); - -module.exports = function () { - floorDay.call(this).setDate(1); - return this; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/floor-year.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/floor-year.js deleted file mode 100644 index 9c508538..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/floor-year.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var floorMonth = require('./floor-month'); - -module.exports = function () { - floorMonth.call(this).setMonth(0); - return this; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/format.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/format.js deleted file mode 100644 index 15bd95f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/format.js +++ /dev/null @@ -1,21 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/index.js deleted file mode 100644 index f71b2950..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/#/index.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/index.js deleted file mode 100644 index eac33fbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = { - '#': require('./#'), - isDate: require('./is-date'), - validDate: require('./valid-date') -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/is-date.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/is-date.js deleted file mode 100644 index 6ba236ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/is-date.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/valid-date.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/valid-date.js deleted file mode 100644 index 7d1a9b60..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/date/valid-date.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/#/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/#/index.js deleted file mode 100644 index b984aa91..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/#/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = { - throw: require('./throw') -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/#/throw.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/#/throw.js deleted file mode 100644 index 7e15ebd1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/#/throw.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var error = require('../valid-error'); - -module.exports = function () { throw error(this); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/custom.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/custom.js deleted file mode 100644 index bbc2dc20..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/custom.js +++ /dev/null @@ -1,20 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/index.js deleted file mode 100644 index 62984b52..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/index.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -module.exports = { - '#': require('./#'), - custom: require('./custom'), - isError: require('./is-error'), - validError: require('./valid-error') -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/is-error.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/is-error.js deleted file mode 100644 index 422705fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/is-error.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/valid-error.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/valid-error.js deleted file mode 100644 index 0bef768a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/error/valid-error.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/compose.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/compose.js deleted file mode 100644 index 1da5e011..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/compose.js +++ /dev/null @@ -1,20 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/copy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/copy.js deleted file mode 100644 index e1467f76..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/copy.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/curry.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/curry.js deleted file mode 100644 index 943d6faf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/curry.js +++ /dev/null @@ -1,24 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/index.js deleted file mode 100644 index 8d0da007..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/index.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/lock.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/lock.js deleted file mode 100644 index 91e1a65c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/lock.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/not.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/not.js deleted file mode 100644 index c6dbe97f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/not.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/partial.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/partial.js deleted file mode 100644 index bf31a357..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/partial.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/spread.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/spread.js deleted file mode 100644 index d7c93b7e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/spread.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/to-string-tokens.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/to-string-tokens.js deleted file mode 100644 index 67afeae8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/#/to-string-tokens.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/_define-length.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/_define-length.js deleted file mode 100644 index 496ea62c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/_define-length.js +++ /dev/null @@ -1,44 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/constant.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/constant.js deleted file mode 100644 index 10f1e203..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/constant.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (x) { - return function () { return x; }; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/identity.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/identity.js deleted file mode 100644 index a9289f0b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/identity.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (x) { return x; }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/index.js deleted file mode 100644 index cfad3f3e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/index.js +++ /dev/null @@ -1,15 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/invoke.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/invoke.js deleted file mode 100644 index 9195afdd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/invoke.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/is-arguments.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/is-arguments.js deleted file mode 100644 index 9a29855f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/is-arguments.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/is-function.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/is-function.js deleted file mode 100644 index ab4399ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/is-function.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/noop.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/noop.js deleted file mode 100644 index aa43baed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/noop.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function () {}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/pluck.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/pluck.js deleted file mode 100644 index 7f70a30c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/pluck.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var value = require('../object/valid-value'); - -module.exports = function (name) { - return function (o) { return value(o)[name]; }; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/valid-function.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/valid-function.js deleted file mode 100644 index 05fdee2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/function/valid-function.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/global.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/global.js deleted file mode 100644 index 872a40e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/global.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = new Function("return this")(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/index.js deleted file mode 100644 index db9a7600..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/index.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/for-each.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/for-each.js deleted file mode 100644 index f1e20425..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/for-each.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/index.js deleted file mode 100644 index a3e16a5e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/index.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -module.exports = { - forEach: require('./for-each'), - is: require('./is'), - validate: require('./validate'), - validateObject: require('./validate-object') -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/is.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/is.js deleted file mode 100644 index bb8bf287..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/is.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/validate-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/validate-object.js deleted file mode 100644 index 988a6adb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/validate-object.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/validate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/validate.js deleted file mode 100644 index 1be6d7fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/iterable/validate.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/_pack-ieee754.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/_pack-ieee754.js deleted file mode 100644 index eecda565..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/_pack-ieee754.js +++ /dev/null @@ -1,82 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/_unpack-ieee754.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/_unpack-ieee754.js deleted file mode 100644 index c9f26f2b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/_unpack-ieee754.js +++ /dev/null @@ -1,33 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/implement.js deleted file mode 100644 index f48ad11d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'acosh', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/index.js deleted file mode 100644 index 00ddea69..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.acosh - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/is-implemented.js deleted file mode 100644 index 363f0d8b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var acosh = Math.acosh; - if (typeof acosh !== 'function') return false; - return acosh(2) === 1.3169578969248166; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/shim.js deleted file mode 100644 index 89a24b5d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/acosh/shim.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/implement.js deleted file mode 100644 index 21f64d50..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'asinh', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/index.js deleted file mode 100644 index d415144e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.asinh - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/is-implemented.js deleted file mode 100644 index 6c205f41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var asinh = Math.asinh; - if (typeof asinh !== 'function') return false; - return asinh(2) === 1.4436354751788103; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/shim.js deleted file mode 100644 index 42fbf145..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/asinh/shim.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/implement.js deleted file mode 100644 index 1a485134..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'atanh', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/index.js deleted file mode 100644 index 785b3deb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.atanh - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/is-implemented.js deleted file mode 100644 index dbaf18ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var atanh = Math.atanh; - if (typeof atanh !== 'function') return false; - return atanh(0.5) === 0.5493061443340549; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/shim.js deleted file mode 100644 index 531e2891..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/atanh/shim.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/implement.js deleted file mode 100644 index 3a12dde4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'cbrt', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/index.js deleted file mode 100644 index 89f966df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.cbrt - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/is-implemented.js deleted file mode 100644 index 69809f3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var cbrt = Math.cbrt; - if (typeof cbrt !== 'function') return false; - return cbrt(2) === 1.2599210498948732; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/shim.js deleted file mode 100644 index bca19602..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cbrt/shim.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/implement.js deleted file mode 100644 index 339df33e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'clz32', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/index.js deleted file mode 100644 index 1687b337..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.clz32 - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/is-implemented.js deleted file mode 100644 index ccc8f713..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var clz32 = Math.clz32; - if (typeof clz32 !== 'function') return false; - return clz32(1000) === 22; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/shim.js deleted file mode 100644 index 2a582da3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/clz32/shim.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -module.exports = function (value) { - value = value >>> 0; - return value ? 32 - value.toString(2).length : 32; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/implement.js deleted file mode 100644 index f90d8305..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'cosh', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/index.js deleted file mode 100644 index 000636ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.cosh - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/is-implemented.js deleted file mode 100644 index c796bcbf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var cosh = Math.cosh; - if (typeof cosh !== 'function') return false; - return cosh(1) === 1.5430806348152437; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/shim.js deleted file mode 100644 index f9062bd9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/cosh/shim.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/implement.js deleted file mode 100644 index fc20c8cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'expm1', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/index.js deleted file mode 100644 index 4c1bc77a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.expm1 - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/is-implemented.js deleted file mode 100644 index 3b106d5d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/shim.js deleted file mode 100644 index 9c8c2360..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/expm1/shim.js +++ /dev/null @@ -1,16 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/implement.js deleted file mode 100644 index c55b26c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'fround', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/index.js deleted file mode 100644 index a077ed0b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.fround - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/is-implemented.js deleted file mode 100644 index ffbf094e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var fround = Math.fround; - if (typeof fround !== 'function') return false; - return fround(1.337) === 1.3370000123977661; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/shim.js deleted file mode 100644 index f2c86e46..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/fround/shim.js +++ /dev/null @@ -1,33 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/implement.js deleted file mode 100644 index b27fda7a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'hypot', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/index.js deleted file mode 100644 index 334bc584..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.hypot - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/is-implemented.js deleted file mode 100644 index e75c5d36..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var hypot = Math.hypot; - if (typeof hypot !== 'function') return false; - return hypot(3, 4) === 5; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/shim.js deleted file mode 100644 index 3d0988bc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/hypot/shim.js +++ /dev/null @@ -1,34 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/implement.js deleted file mode 100644 index ed207bd2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'imul', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/index.js deleted file mode 100644 index 41e5d5f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.imul - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/is-implemented.js deleted file mode 100644 index d8495dea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var imul = Math.imul; - if (typeof imul !== 'function') return false; - return imul(-1, 8) === -8; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/shim.js deleted file mode 100644 index 8fd8a8d7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/imul/shim.js +++ /dev/null @@ -1,13 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/index.js deleted file mode 100644 index d112d0bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/index.js +++ /dev/null @@ -1,21 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/implement.js deleted file mode 100644 index dd96edd8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'log10', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/index.js deleted file mode 100644 index a9eee513..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.log10 - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/is-implemented.js deleted file mode 100644 index c7f40ee7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var log10 = Math.log10; - if (typeof log10 !== 'function') return false; - return log10(2) === 0.3010299956639812; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/shim.js deleted file mode 100644 index fc77287f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log10/shim.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/implement.js deleted file mode 100644 index f62f91f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'log1p', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/index.js deleted file mode 100644 index 107b1147..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.log1p - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/is-implemented.js deleted file mode 100644 index 61e90974..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var log1p = Math.log1p; - if (typeof log1p !== 'function') return false; - return log1p(1) === 0.6931471805599453; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/shim.js deleted file mode 100644 index 10acebca..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log1p/shim.js +++ /dev/null @@ -1,17 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/implement.js deleted file mode 100644 index 8483f095..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'log2', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/index.js deleted file mode 100644 index 87e9050a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.log2 - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/is-implemented.js deleted file mode 100644 index 802322fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/shim.js deleted file mode 100644 index cd80994a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/log2/shim.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/implement.js deleted file mode 100644 index b0db2f41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'sign', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/index.js deleted file mode 100644 index b2326333..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.sign - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/is-implemented.js deleted file mode 100644 index 6d0de475..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/shim.js deleted file mode 100644 index 4df9c95a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sign/shim.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function (value) { - value = Number(value); - if (isNaN(value) || (value === 0)) return value; - return (value > 0) ? 1 : -1; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/implement.js deleted file mode 100644 index f259a631..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'sinh', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/index.js deleted file mode 100644 index e5bea572..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.sinh - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/is-implemented.js deleted file mode 100644 index 888ec67a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/shim.js deleted file mode 100644 index 5b725bed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/sinh/shim.js +++ /dev/null @@ -1,17 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/implement.js deleted file mode 100644 index 5199a029..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'tanh', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/index.js deleted file mode 100644 index 6099c408..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.tanh - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/is-implemented.js deleted file mode 100644 index a7d22237..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/shim.js deleted file mode 100644 index f6e948f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/tanh/shim.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/implement.js deleted file mode 100644 index 3ee80ab2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Math, 'trunc', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/index.js deleted file mode 100644 index 0b0f9b2a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Math.trunc - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/is-implemented.js deleted file mode 100644 index 3e8cde1f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/shim.js deleted file mode 100644 index 02e2c2ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/math/trunc/shim.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/#/chain.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/#/chain.js deleted file mode 100644 index 6dc1543b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/#/chain.js +++ /dev/null @@ -1,40 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/.lint b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/.lint deleted file mode 100644 index cf54d815..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/.lint +++ /dev/null @@ -1,11 +0,0 @@ -@root - -module - -tabs -indent 2 -maxlen 100 - -ass -nomen -plusplus diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/.npmignore deleted file mode 100644 index 155e41f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -.DS_Store -/node_modules -/npm-debug.log -/.lintcache diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/.travis.yml deleted file mode 100644 index fc254110..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -sudo: false # http://docs.travis-ci.com/user/workers/container-based-infrastructure/ -language: node_js -node_js: - - 0.12 - - 4 - -notifications: - email: - - medikoo+es6-iterator@medikoo.com - -script: "npm test && npm run lint" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/CHANGES b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/CHANGES deleted file mode 100644 index ce331809..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/CHANGES +++ /dev/null @@ -1,35 +0,0 @@ -v2.0.0 -- 2015.10.02 -* Use es6-symbol at v3 - -v1.0.0 -- 2015.06.23 -* Implement support for arguments object -* Drop support for v0.8 node ('^' in package.json dependencies) - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/LICENSE deleted file mode 100644 index 04724a3a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/README.md deleted file mode 100644 index 288373da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/README.md +++ /dev/null @@ -1,148 +0,0 @@ -# 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/array.js deleted file mode 100644 index 885ad0a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/array.js +++ /dev/null @@ -1,30 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/for-of.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/for-of.js deleted file mode 100644 index c7a28411..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/for-of.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var isArguments = require('es5-ext/function/is-arguments') - , callable = require('es5-ext/object/valid-callable') - , isString = require('es5-ext/string/is-string') - , get = require('./get') - - , isArray = Array.isArray, call = Function.prototype.call - , some = Array.prototype.some; - -module.exports = function (iterable, cb/*, thisArg*/) { - var mode, thisArg = arguments[2], result, doBreak, broken, i, l, char, code; - if (isArray(iterable) || isArguments(iterable)) mode = 'array'; - else if (isString(iterable)) mode = 'string'; - else iterable = get(iterable); - - callable(cb); - doBreak = function () { broken = true; }; - if (mode === 'array') { - some.call(iterable, 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/get.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/get.js deleted file mode 100644 index 7c7e052b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/get.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var isArguments = require('es5-ext/function/is-arguments') - , 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 (isArguments(obj)) return new ArrayIterator(obj); - if (isString(obj)) return new StringIterator(obj); - return new ArrayIterator(obj); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/index.js deleted file mode 100644 index 10fd0895..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/index.js +++ /dev/null @@ -1,90 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/is-iterable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/is-iterable.js deleted file mode 100644 index 2c6f496c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/is-iterable.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var isArguments = require('es5-ext/function/is-arguments') - , 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; - if (isArguments(value)) return true; - return (typeof value[iteratorSymbol] === 'function'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/package.json deleted file mode 100644 index e4e603f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/package.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "_args": [ - [ - "es6-iterator@2", - "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext" - ] - ], - "_from": "es6-iterator@>=2.0.0 <3.0.0", - "_id": "es6-iterator@2.0.0", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/path-array/array-index/es6-symbol/es5-ext/es6-iterator", - "_nodeVersion": "0.12.7", - "_npmUser": { - "email": "medikoo+npm@medikoo.com", - "name": "medikoo" - }, - "_npmVersion": "2.11.3", - "_phantomChildren": {}, - "_requested": { - "name": "es6-iterator", - "raw": "es6-iterator@2", - "rawSpec": "2", - "scope": null, - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp/path-array/array-index/es6-symbol/es5-ext" - ], - "_resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz", - "_shasum": "bd968567d61635e33c0b80727613c9cb4b096bac", - "_shrinkwrap": null, - "_spec": "es6-iterator@2", - "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext", - "author": { - "email": "medyk@medikoo.com", - "name": "Mariusz Nowak", - "url": "http://www.medikoo.com/" - }, - "bugs": { - "url": "https://github.com/medikoo/es6-iterator/issues" - }, - "dependencies": { - "d": "^0.1.1", - "es5-ext": "^0.10.7", - "es6-symbol": "3" - }, - "description": "Iterator abstraction based on ES6 specification", - "devDependencies": { - "event-emitter": "^0.3.4", - "tad": "^0.2.3", - "xlint": "^0.2.2", - "xlint-jslint-medikoo": "^0.1.3" - }, - "directories": {}, - "dist": { - "shasum": "bd968567d61635e33c0b80727613c9cb4b096bac", - "tarball": "http://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz" - }, - "gitHead": "4d9445834e87780ab373b14d6791e860899e2d31", - "homepage": "https://github.com/medikoo/es6-iterator#readme", - "keywords": [ - "array", - "generator", - "iterator", - "list", - "map", - "set" - ], - "license": "MIT", - "maintainers": [ - { - "name": "medikoo", - "email": "medikoo+npm@medikoo.com" - } - ], - "name": "es6-iterator", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/medikoo/es6-iterator.git" - }, - "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" - }, - "version": "2.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/string.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/string.js deleted file mode 100644 index cdb39ea4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/string.js +++ /dev/null @@ -1,37 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/#/chain.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/#/chain.js deleted file mode 100644 index a414c66d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/#/chain.js +++ /dev/null @@ -1,23 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/array.js deleted file mode 100644 index ae7c2199..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/array.js +++ /dev/null @@ -1,67 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/for-of.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/for-of.js deleted file mode 100644 index 108df7d9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/for-of.js +++ /dev/null @@ -1,40 +0,0 @@ -'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((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(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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/get.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/get.js deleted file mode 100644 index 81ce6e6a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/get.js +++ /dev/null @@ -1,17 +0,0 @@ -'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((function () { return arguments; }()))), '[object Array Iterator]', " Arguments"); - a(String(t('foo')), '[object String Iterator]', "String"); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/index.js deleted file mode 100644 index ea3621ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/index.js +++ /dev/null @@ -1,99 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/is-iterable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/is-iterable.js deleted file mode 100644 index 438ad349..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/is-iterable.js +++ /dev/null @@ -1,19 +0,0 @@ -'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"); - a(t((function () { return arguments; }())), true, "Arguments"); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/string.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/string.js deleted file mode 100644 index d11855f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/string.js +++ /dev/null @@ -1,23 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/valid-iterable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/valid-iterable.js deleted file mode 100644 index a407f1a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/test/valid-iterable.js +++ /dev/null @@ -1,18 +0,0 @@ -'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'); - obj = (function () { return arguments; }()); - a(t(obj), obj, "Arguments"); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/valid-iterable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/valid-iterable.js deleted file mode 100644 index d330997c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/valid-iterable.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/#/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/#/index.js deleted file mode 100644 index 32481170..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/#/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = { - pad: require('./pad') -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/#/pad.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/#/pad.js deleted file mode 100644 index 4478f6a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/#/pad.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/epsilon/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/epsilon/implement.js deleted file mode 100644 index f0a670ae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/epsilon/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Number, 'EPSILON', { value: require('./'), - configurable: false, enumerable: false, writable: false }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/epsilon/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/epsilon/index.js deleted file mode 100644 index 4e4b621b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/epsilon/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = 2.220446049250313e-16; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/epsilon/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/epsilon/is-implemented.js deleted file mode 100644 index 141f5d2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/epsilon/is-implemented.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function () { - return (typeof Number.EPSILON === 'number'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/index.js deleted file mode 100644 index 841b3612..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/index.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -module.exports = { - '#': require('./#'), - EPSILON: require('./epsilon'), - isFinite: require('./is-finite'), - isInteger: require('./is-integer'), - isNaN: require('./is-nan'), - isNatural: require('./is-natural'), - 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/implement.js deleted file mode 100644 index 51d7cac0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Number, 'isFinite', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/index.js deleted file mode 100644 index 15d5f405..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Number.isFinite - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/is-implemented.js deleted file mode 100644 index 556e396b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/shim.js deleted file mode 100644 index e3aee551..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-finite/shim.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (value) { - return (typeof value === 'number') && isFinite(value); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/implement.js deleted file mode 100644 index fe53f281..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Number, 'isInteger', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/index.js deleted file mode 100644 index 55e039a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Number.isInteger - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/is-implemented.js deleted file mode 100644 index a0e573be..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/shim.js deleted file mode 100644 index 54029398..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-integer/shim.js +++ /dev/null @@ -1,8 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/implement.js deleted file mode 100644 index e1c5deea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Number, 'isNaN', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/index.js deleted file mode 100644 index 3b2c4ca6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Number.isNaN - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/is-implemented.js deleted file mode 100644 index 4cf27665..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function () { - var isNaN = Number.isNaN; - if (typeof isNaN !== 'function') return false; - return !isNaN({}) && isNaN(NaN) && !isNaN(34); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/shim.js deleted file mode 100644 index 070d96cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-nan/shim.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (value) { return (value !== value); } //jslint: ignore diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-natural.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-natural.js deleted file mode 100644 index 831090d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-natural.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isInteger = require('./is-integer'); - -module.exports = function (num) { return isInteger(num) && (num >= 0); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-number.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-number.js deleted file mode 100644 index 19a99e4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-number.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/implement.js deleted file mode 100644 index 51cef960..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Number, 'isSafeInteger', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/index.js deleted file mode 100644 index 49adeaaf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Number.isSafeInteger - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/is-implemented.js deleted file mode 100644 index 510b60e4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/shim.js deleted file mode 100644 index 692acdd6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/is-safe-integer/shim.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/max-safe-integer/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/max-safe-integer/implement.js deleted file mode 100644 index 4e0bb574..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/max-safe-integer/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Number, 'MAX_SAFE_INTEGER', { value: require('./'), - configurable: false, enumerable: false, writable: false }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/max-safe-integer/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/max-safe-integer/index.js deleted file mode 100644 index ed5d6a53..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/max-safe-integer/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = Math.pow(2, 53) - 1; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/max-safe-integer/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/max-safe-integer/is-implemented.js deleted file mode 100644 index 7bd08a9d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/max-safe-integer/is-implemented.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function () { - return (typeof Number.MAX_SAFE_INTEGER === 'number'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/min-safe-integer/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/min-safe-integer/implement.js deleted file mode 100644 index e3f110e4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/min-safe-integer/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Number, 'MIN_SAFE_INTEGER', { value: require('./'), - configurable: false, enumerable: false, writable: false }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/min-safe-integer/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/min-safe-integer/index.js deleted file mode 100644 index 1c6cc274..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/min-safe-integer/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = -(Math.pow(2, 53) - 1); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/min-safe-integer/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/min-safe-integer/is-implemented.js deleted file mode 100644 index efc9875f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/min-safe-integer/is-implemented.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function () { - return (typeof Number.MIN_SAFE_INTEGER === 'number'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/to-integer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/to-integer.js deleted file mode 100644 index 60e798c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/to-integer.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/to-pos-integer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/to-pos-integer.js deleted file mode 100644 index 605a302c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/to-pos-integer.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var toInteger = require('./to-integer') - - , max = Math.max; - -module.exports = function (value) { return max(0, toInteger(value)); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/to-uint32.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/to-uint32.js deleted file mode 100644 index 6263e85e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/number/to-uint32.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (value) { return value >>> 0; }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/_iterate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/_iterate.js deleted file mode 100644 index 1ccbaf27..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/_iterate.js +++ /dev/null @@ -1,29 +0,0 @@ -// 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 callable = require('./valid-callable') - , value = require('./valid-value') - - , bind = Function.prototype.bind, 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((typeof compareFn === 'function') ? bind.call(compareFn, obj) : undefined); - } - if (typeof method !== 'function') method = list[method]; - return call.call(method, list, function (key, index) { - if (!propertyIsEnumerable.call(obj, key)) return defVal; - return call.call(cb, thisArg, obj[key], key, obj, index); - }); - }; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/implement.js deleted file mode 100644 index 3bcc68e3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Object, 'assign', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/index.js deleted file mode 100644 index ab0f9f24..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Object.assign - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/is-implemented.js deleted file mode 100644 index 579ad2dd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/is-implemented.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/shim.js deleted file mode 100644 index 74da11a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/assign/shim.js +++ /dev/null @@ -1,22 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/clear.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/clear.js deleted file mode 100644 index 85e46372..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/clear.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/compact.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/compact.js deleted file mode 100644 index d021da45..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/compact.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var filter = require('./filter'); - -module.exports = function (obj) { - return filter(obj, function (val) { return val != null; }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/compare.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/compare.js deleted file mode 100644 index 2ab11f1a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/compare.js +++ /dev/null @@ -1,42 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/copy-deep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/copy-deep.js deleted file mode 100644 index b203a7c6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/copy-deep.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -var forEach = require('./for-each') - , isPlainObject = require('./is-plain-object') - , value = require('./valid-value') - - , isArray = Array.isArray - , copy, copyItem; - -copyItem = function (value, key) { - var index; - if (!isPlainObject(value) && !isArray(value)) return value; - index = this[0].indexOf(value); - if (index === -1) return copy.call(this, value); - return this[1][index]; -}; - -copy = function (source) { - var target = isArray(source) ? [] : {}; - this[0].push(source); - this[1].push(target); - if (isArray(source)) { - source.forEach(function (value, key) { - target[key] = copyItem.call(this, value, key); - }, this); - } else { - forEach(source, function (value, key) { - target[key] = copyItem.call(this, value, key); - }, this); - } - return target; -}; - -module.exports = function (source) { - var obj = Object(value(source)); - if (obj !== source) return obj; - return copy.call([[], []], obj); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/copy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/copy.js deleted file mode 100644 index 4d717728..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/copy.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/count.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/count.js deleted file mode 100644 index 29cfbb53..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/count.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var keys = require('./keys'); - -module.exports = function (obj) { return keys(obj).length; }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/create.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/create.js deleted file mode 100644 index f813b466..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/create.js +++ /dev/null @@ -1,36 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/ensure-natural-number-value.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/ensure-natural-number-value.js deleted file mode 100644 index f58fb4e4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/ensure-natural-number-value.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var ensure = require('./ensure-natural-number'); - -module.exports = function (arg) { - if (arg == null) throw new TypeError(arg + " is not a natural number"); - return ensure(arg); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/ensure-natural-number.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/ensure-natural-number.js deleted file mode 100644 index af9b4d77..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/ensure-natural-number.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var isNatural = require('../number/is-natural'); - -module.exports = function (arg) { - var num = Number(arg); - if (!isNatural(num)) throw new TypeError(arg + " is not a natural number"); - return num; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/eq.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/eq.js deleted file mode 100644 index 037937ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/eq.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (x, y) { - return ((x === y) || ((x !== x) && (y !== y))); //jslint: ignore -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/every.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/every.js deleted file mode 100644 index 1303db20..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/every.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./_iterate')('every', true); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/filter.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/filter.js deleted file mode 100644 index e5edb49b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/filter.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/find-key.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/find-key.js deleted file mode 100644 index 5841fd70..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/find-key.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./_iterate')(require('../array/#/find'), false); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/find.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/find.js deleted file mode 100644 index c94f643f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/find.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var findKey = require('./find-key'); - -module.exports = function (obj, cb/*, thisArg, compareFn*/) { - var key = findKey.apply(this, arguments); - return (key == null) ? key : obj[key]; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/first-key.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/first-key.js deleted file mode 100644 index 7df10b2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/first-key.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/flatten.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/flatten.js deleted file mode 100644 index e8b40444..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/flatten.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/for-each.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/for-each.js deleted file mode 100644 index 6674f8a6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/for-each.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./_iterate')('forEach'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/get-property-names.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/get-property-names.js deleted file mode 100644 index 54a01e50..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/get-property-names.js +++ /dev/null @@ -1,18 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/index.js deleted file mode 100644 index 77f5b6ae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/index.js +++ /dev/null @@ -1,53 +0,0 @@ -'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'), - ensureNaturalNumber: require('./ensure-natural-number'), - ensureNaturalNumberValue: require('./ensure-natural-number-value'), - eq: require('./eq'), - every: require('./every'), - filter: require('./filter'), - find: require('./find'), - findKey: require('./find-key'), - 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'), - isNumberValue: require('./is-number-value'), - 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-array-like.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-array-like.js deleted file mode 100644 index b8beed22..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-array-like.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-callable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-callable.js deleted file mode 100644 index 5d5d4b31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-callable.js +++ /dev/null @@ -1,5 +0,0 @@ -// Deprecated - -'use strict'; - -module.exports = function (obj) { return typeof obj === 'function'; }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-copy-deep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-copy-deep.js deleted file mode 100644 index c4b2b42b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-copy-deep.js +++ /dev/null @@ -1,58 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-copy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-copy.js deleted file mode 100644 index 4fe639d4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-copy.js +++ /dev/null @@ -1,24 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-empty.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-empty.js deleted file mode 100644 index 7b51a87c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-empty.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-number-value.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-number-value.js deleted file mode 100644 index f6396f58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-number-value.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (value) { return (value != null) && !isNaN(value); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-object.js deleted file mode 100644 index a86facf1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-object.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var map = { function: true, object: true }; - -module.exports = function (x) { - return ((x != null) && map[typeof x]) || false; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-plain-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-plain-object.js deleted file mode 100644 index 9a282319..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-plain-object.js +++ /dev/null @@ -1,20 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is.js deleted file mode 100644 index 5778b502..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is.js +++ /dev/null @@ -1,10 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/key-of.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/key-of.js deleted file mode 100644 index 8c44c8d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/key-of.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/implement.js deleted file mode 100644 index c6872bd0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(Object, 'keys', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/index.js deleted file mode 100644 index 5ef05223..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Object.keys - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/is-implemented.js deleted file mode 100644 index 40c32c33..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -module.exports = function () { - try { - Object.keys('primitive'); - return true; - } catch (e) { return false; } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/shim.js deleted file mode 100644 index 034b6b29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/keys/shim.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var keys = Object.keys; - -module.exports = function (object) { - return keys(object == null ? object : Object(object)); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/map-keys.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/map-keys.js deleted file mode 100644 index 26f0ecac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/map-keys.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/map.js deleted file mode 100644 index 6b39d3c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/map.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/mixin-prototypes.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/mixin-prototypes.js deleted file mode 100644 index 1ef57564..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/mixin-prototypes.js +++ /dev/null @@ -1,34 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/mixin.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/mixin.js deleted file mode 100644 index 80b5df5e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/mixin.js +++ /dev/null @@ -1,19 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/normalize-options.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/normalize-options.js deleted file mode 100644 index cf8ed8d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/normalize-options.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/primitive-set.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/primitive-set.js deleted file mode 100644 index ada10951..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/primitive-set.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/safe-traverse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/safe-traverse.js deleted file mode 100644 index 7e1b5f41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/safe-traverse.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/serialize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/serialize.js deleted file mode 100644 index 8113b680..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/serialize.js +++ /dev/null @@ -1,36 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/implement.js deleted file mode 100644 index 000e6bdb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/implement.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/index.js deleted file mode 100644 index ccc40995..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? Object.setPrototypeOf - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/is-implemented.js deleted file mode 100644 index 98d0c843..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/is-implemented.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/shim.js deleted file mode 100644 index 4ec94467..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/set-prototype-of/shim.js +++ /dev/null @@ -1,73 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/some.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/some.js deleted file mode 100644 index cde5ddee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/some.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./_iterate')('some', false); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/to-array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/to-array.js deleted file mode 100644 index a954abb2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/to-array.js +++ /dev/null @@ -1,18 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/unserialize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/unserialize.js deleted file mode 100644 index ce68e403..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/unserialize.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var value = require('./valid-value'); - -module.exports = exports = function (code) { - return (new Function('return ' + value(code)))(); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/valid-callable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/valid-callable.js deleted file mode 100644 index c977527a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/valid-callable.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -module.exports = function (fn) { - if (typeof fn !== 'function') throw new TypeError(fn + " is not a function"); - return fn; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/valid-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/valid-object.js deleted file mode 100644 index f82bd51e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/valid-object.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/valid-value.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/valid-value.js deleted file mode 100644 index 36c8ec31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/valid-value.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -module.exports = function (value) { - if (value == null) throw new TypeError("Cannot use null or undefined"); - return value; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-array-like-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-array-like-object.js deleted file mode 100644 index 89e12c51..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-array-like-object.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-array-like.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-array-like.js deleted file mode 100644 index 6a35b54a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-array-like.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-stringifiable-value.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-stringifiable-value.js deleted file mode 100644 index 9df3b668..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-stringifiable-value.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -var value = require('./valid-value') - , stringifiable = require('./validate-stringifiable'); - -module.exports = function (x) { return stringifiable(value(x)); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-stringifiable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-stringifiable.js deleted file mode 100644 index eba7ce78..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/validate-stringifiable.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -module.exports = function (stringifiable) { - try { - return String(stringifiable); - } catch (e) { - throw new TypeError("Passed argument cannot be stringifed"); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/package.json deleted file mode 100644 index 597a347e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_args": [ - [ - "es5-ext@~0.10.10", - "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol" - ] - ], - "_from": "es5-ext@>=0.10.10 <0.11.0", - "_id": "es5-ext@0.10.11", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/path-array/array-index/es6-symbol/es5-ext", - "_nodeVersion": "4.2.3", - "_npmUser": { - "email": "medikoo+npm@medikoo.com", - "name": "medikoo" - }, - "_npmVersion": "2.14.7", - "_phantomChildren": { - "d": "0.1.1", - "es5-ext": "0.10.11", - "es6-symbol": "3.0.2" - }, - "_requested": { - "name": "es5-ext", - "raw": "es5-ext@~0.10.10", - "rawSpec": "~0.10.10", - "scope": null, - "spec": ">=0.10.10 <0.11.0", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp/path-array/array-index/es6-symbol", - "/node-gyp/path-array/array-index/es6-symbol/d", - "/node-gyp/path-array/array-index/es6-symbol/es5-ext/es6-iterator" - ], - "_resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.11.tgz", - "_shasum": "8184c3e705a820948c2dbe043849379b1dbd0c45", - "_shrinkwrap": null, - "_spec": "es5-ext@~0.10.10", - "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol", - "author": { - "email": "medyk@medikoo.com", - "name": "Mariusz Nowak", - "url": "http://www.medikoo.com/" - }, - "bugs": { - "url": "https://github.com/medikoo/es5-ext/issues" - }, - "dependencies": { - "es6-iterator": "2", - "es6-symbol": "~3.0.2" - }, - "description": "ECMAScript extensions and shims", - "devDependencies": { - "tad": "~0.2.4", - "xlint": "~0.2.2", - "xlint-jslint-medikoo": "~0.1.4" - }, - "directories": {}, - "dist": { - "shasum": "8184c3e705a820948c2dbe043849379b1dbd0c45", - "tarball": "http://registry.npmjs.org/es5-ext/-/es5-ext-0.10.11.tgz" - }, - "gitHead": "aba94140a6bf79ce1a448a2db8834e8c1842b527", - "homepage": "https://github.com/medikoo/es5-ext#readme", - "keywords": [ - "addons", - "ecmascript", - "ecmascript5", - "ecmascript6", - "es5", - "es6", - "ext", - "extensions", - "extras", - "harmony", - "javascript", - "polyfill", - "shim", - "util", - "utilities", - "utils" - ], - "license": "MIT", - "maintainers": [ - { - "name": "medikoo", - "email": "medikoo+npm@medikoo.com" - } - ], - "name": "es5-ext", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/medikoo/es5-ext.git" - }, - "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" - }, - "version": "0.10.11" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/index.js deleted file mode 100644 index f7e7a58e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/index.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/is-sticky.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/is-sticky.js deleted file mode 100644 index 830a481f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/is-sticky.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/is-unicode.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/is-unicode.js deleted file mode 100644 index b005f6d9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/is-unicode.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/implement.js deleted file mode 100644 index 921c9368..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(RegExp.prototype, 'match', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/index.js deleted file mode 100644 index 0534ac3b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? RegExp.prototype.match - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/is-implemented.js deleted file mode 100644 index b7e99643..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/shim.js deleted file mode 100644 index 4f99cf4d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/match/shim.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var validRegExp = require('../../valid-reg-exp'); - -module.exports = function (string) { - validRegExp(this); - return String(string).match(this); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/implement.js deleted file mode 100644 index ad580de8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(RegExp.prototype, 'replace', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/index.js deleted file mode 100644 index 5658177d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? RegExp.prototype.replace - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/is-implemented.js deleted file mode 100644 index 1b42d252..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var re = /foo/; - -module.exports = function () { - if (typeof re.replace !== 'function') return false; - return re.replace('foobar', 'mar') === 'marbar'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/shim.js deleted file mode 100644 index c3e6aeba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/replace/shim.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var validRegExp = require('../../valid-reg-exp'); - -module.exports = function (string, replaceValue) { - validRegExp(this); - return String(string).replace(this, replaceValue); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/implement.js deleted file mode 100644 index 3804f4eb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(RegExp.prototype, 'search', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/index.js deleted file mode 100644 index 67995d4a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? RegExp.prototype.search - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/is-implemented.js deleted file mode 100644 index efba889f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var re = /foo/; - -module.exports = function () { - if (typeof re.search !== 'function') return false; - return re.search('barfoo') === 3; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/shim.js deleted file mode 100644 index 6d9dcaed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/search/shim.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var validRegExp = require('../../valid-reg-exp'); - -module.exports = function (string) { - validRegExp(this); - return String(string).search(this); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/implement.js deleted file mode 100644 index 50facb68..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(RegExp.prototype, 'split', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/index.js deleted file mode 100644 index f101f5af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? RegExp.prototype.split - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/is-implemented.js deleted file mode 100644 index 7244c998..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var re = /\|/; - -module.exports = function () { - if (typeof re.split !== 'function') return false; - return re.split('bar|foo')[1] === 'foo'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/shim.js deleted file mode 100644 index 76154e7e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/split/shim.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var validRegExp = require('../../valid-reg-exp'); - -module.exports = function (string) { - validRegExp(this); - return String(string).split(this); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/sticky/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/sticky/implement.js deleted file mode 100644 index 7e8af1db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/sticky/implement.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/sticky/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/sticky/is-implemented.js deleted file mode 100644 index e4184ee4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/sticky/is-implemented.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = function () { - var dummyRegExp = /a/; - // We need to do check on instance and not on prototype due to how ES2015 spec evolved: - // https://github.com/tc39/ecma262/issues/262 - // https://github.com/tc39/ecma262/pull/263 - // https://bugs.chromium.org/p/v8/issues/detail?id=4617 - return 'sticky' in dummyRegExp; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/unicode/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/unicode/implement.js deleted file mode 100644 index 5a82a4d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/unicode/implement.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/unicode/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/unicode/is-implemented.js deleted file mode 100644 index 3e3a54b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/#/unicode/is-implemented.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = function () { - var dummyRegExp = /a/; - // We need to do check on instance and not on prototype due to how ES2015 spec evolved: - // https://github.com/tc39/ecma262/issues/262 - // https://github.com/tc39/ecma262/pull/263 - // https://bugs.chromium.org/p/v8/issues/detail?id=4617 - return 'unicode' in dummyRegExp; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/escape.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/escape.js deleted file mode 100644 index a2363fcf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/escape.js +++ /dev/null @@ -1,9 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/index.js deleted file mode 100644 index 75ea3135..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/index.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -module.exports = { - '#': require('./#'), - escape: require('./escape'), - isRegExp: require('./is-reg-exp'), - validRegExp: require('./valid-reg-exp') -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/is-reg-exp.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/is-reg-exp.js deleted file mode 100644 index 6eb12977..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/is-reg-exp.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/valid-reg-exp.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/valid-reg-exp.js deleted file mode 100644 index d3a77641..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/reg-exp/valid-reg-exp.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/implement.js deleted file mode 100644 index 4494d7b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/index.js deleted file mode 100644 index 22f15e69..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? String.prototype[require('es6-symbol').iterator] : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/is-implemented.js deleted file mode 100644 index f5c462de..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/is-implemented.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/shim.js deleted file mode 100644 index 0be30292..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/@@iterator/shim.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -var StringIterator = require('es6-iterator/string') - , value = require('../../../object/valid-value'); - -module.exports = function () { return new StringIterator(value(this)); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/at.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/at.js deleted file mode 100644 index 77bd251a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/at.js +++ /dev/null @@ -1,33 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/camel-to-hyphen.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/camel-to-hyphen.js deleted file mode 100644 index 1cb8d127..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/camel-to-hyphen.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/capitalize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/capitalize.js deleted file mode 100644 index ed768273..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/capitalize.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/case-insensitive-compare.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/case-insensitive-compare.js deleted file mode 100644 index 599cb834..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/case-insensitive-compare.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var toLowerCase = String.prototype.toLowerCase; - -module.exports = function (other) { - return toLowerCase.call(this).localeCompare(toLowerCase.call(String(other))); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/implement.js deleted file mode 100644 index 1e7a37bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/implement.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(String.prototype, 'codePointAt', - { value: require('./shim'), configurable: true, enumerable: false, - writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/index.js deleted file mode 100644 index 7e91d833..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? String.prototype.codePointAt - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/is-implemented.js deleted file mode 100644 index b2715891..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/shim.js deleted file mode 100644 index 1c9038b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/code-point-at/shim.js +++ /dev/null @@ -1,26 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/implement.js deleted file mode 100644 index 6b7a3c08..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/implement.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(String.prototype, 'contains', - { value: require('./shim'), configurable: true, enumerable: false, - writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/index.js deleted file mode 100644 index abb3e373..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? String.prototype.contains - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/is-implemented.js deleted file mode 100644 index 6f7d4b71..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/shim.js deleted file mode 100644 index 89e39e79..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/contains/shim.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var indexOf = String.prototype.indexOf; - -module.exports = function (searchString/*, position*/) { - return indexOf.call(this, searchString, arguments[1]) > -1; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/implement.js deleted file mode 100644 index 0b09025b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/implement.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(String.prototype, 'endsWith', - { value: require('./shim'), configurable: true, enumerable: false, - writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/index.js deleted file mode 100644 index d2d94848..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? String.prototype.endsWith - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/is-implemented.js deleted file mode 100644 index f3bb0088..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/shim.js deleted file mode 100644 index 26cbdb13..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/ends-with/shim.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/hyphen-to-camel.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/hyphen-to-camel.js deleted file mode 100644 index 8928b024..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/hyphen-to-camel.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/indent.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/indent.js deleted file mode 100644 index 223bd82b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/indent.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/index.js deleted file mode 100644 index 3efa01c0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/index.js +++ /dev/null @@ -1,22 +0,0 @@ -'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'), - uncapitalize: require('./uncapitalize') -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/last.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/last.js deleted file mode 100644 index d5cf46ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/last.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/_data.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/_data.js deleted file mode 100644 index e4e00a32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/_data.js +++ /dev/null @@ -1,69 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/implement.js deleted file mode 100644 index cfc710ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/implement.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(String.prototype, 'normalize', - { value: require('./shim'), configurable: true, enumerable: false, - writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/index.js deleted file mode 100644 index 619b0965..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? String.prototype.normalize - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/is-implemented.js deleted file mode 100644 index 67c8d8da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var str = 'æøåäüö'; - -module.exports = function () { - if (typeof str.normalize !== 'function') return false; - return str.normalize('NFKD') === 'æøåäüö'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/shim.js deleted file mode 100644 index a3799897..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/normalize/shim.js +++ /dev/null @@ -1,289 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/pad.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/pad.js deleted file mode 100644 index f227f239..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/pad.js +++ /dev/null @@ -1,18 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/plain-replace-all.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/plain-replace-all.js deleted file mode 100644 index 678b1cbc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/plain-replace-all.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/plain-replace.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/plain-replace.js deleted file mode 100644 index 24ce16d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/plain-replace.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/implement.js deleted file mode 100644 index 4c39b9fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/implement.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(String.prototype, 'repeat', - { value: require('./shim'), configurable: true, enumerable: false, - writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/index.js deleted file mode 100644 index 15a800e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? String.prototype.repeat - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/is-implemented.js deleted file mode 100644 index f7b8750f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/is-implemented.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var str = 'foo'; - -module.exports = function () { - if (typeof str.repeat !== 'function') return false; - return (str.repeat(2) === 'foofoo'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/shim.js deleted file mode 100644 index 0a3928b2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/repeat/shim.js +++ /dev/null @@ -1,22 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/implement.js deleted file mode 100644 index d4f1eaf5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/implement.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(String.prototype, 'startsWith', - { value: require('./shim'), configurable: true, enumerable: false, - writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/index.js deleted file mode 100644 index ec66a7c0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? String.prototype.startsWith - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/is-implemented.js deleted file mode 100644 index a0556f19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/is-implemented.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/shim.js deleted file mode 100644 index aa5aaf41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/starts-with/shim.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/uncapitalize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/uncapitalize.js deleted file mode 100644 index bedd7e7b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/#/uncapitalize.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var ensureStringifiable = require('../../object/validate-stringifiable-value'); - -module.exports = function () { - var str = ensureStringifiable(this); - return str.charAt(0).toLowerCase() + str.slice(1); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/format-method.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/format-method.js deleted file mode 100644 index f1de1e30..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/format-method.js +++ /dev/null @@ -1,24 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/implement.js deleted file mode 100644 index b062331c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(String, 'fromCodePoint', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/index.js deleted file mode 100644 index 3f3110b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? String.fromCodePoint - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/is-implemented.js deleted file mode 100644 index 840a20e3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/is-implemented.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/shim.js deleted file mode 100644 index 41fd7378..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/from-code-point/shim.js +++ /dev/null @@ -1,30 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/index.js deleted file mode 100644 index dbbcdf61..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/index.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/is-string.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/is-string.js deleted file mode 100644 index 719aeec1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/is-string.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/random-uniq.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/random-uniq.js deleted file mode 100644 index 54ae6f8c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/random-uniq.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/implement.js deleted file mode 100644 index c417e659..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -if (!require('./is-implemented')()) { - Object.defineProperty(String, 'raw', { value: require('./shim'), - configurable: true, enumerable: false, writable: true }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/index.js deleted file mode 100644 index 504a5de2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./is-implemented')() - ? String.raw - : require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/is-implemented.js deleted file mode 100644 index d7204c0c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/is-implemented.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/shim.js deleted file mode 100644 index 7096efbc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/string/raw/shim.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/__tad.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/__tad.js deleted file mode 100644 index 88457788..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/__tad.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -exports.context = null; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/implement.js deleted file mode 100644 index f0605399..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/@@iterator/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/shim.js deleted file mode 100644 index e590d8f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator/shim.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/_compare-by-length.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/_compare-by-length.js deleted file mode 100644 index e40c305b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/_compare-by-length.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/binary-search.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/binary-search.js deleted file mode 100644 index cf331737..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/binary-search.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/clear.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/clear.js deleted file mode 100644 index a5b1c977..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/clear.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/compact.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/compact.js deleted file mode 100644 index 6390eb26..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/compact.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/implement.js deleted file mode 100644 index 3bdbe868..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/concat/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/shim.js deleted file mode 100644 index c30eb7ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/concat/shim.js +++ /dev/null @@ -1,26 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/contains.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/contains.js deleted file mode 100644 index 21404a17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/contains.js +++ /dev/null @@ -1,21 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/implement.js deleted file mode 100644 index 36070477..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/copy-within/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/shim.js deleted file mode 100644 index 93c85ea3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/copy-within/shim.js +++ /dev/null @@ -1,29 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/diff.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/diff.js deleted file mode 100644 index bcfa3a0b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/diff.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/e-index-of.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/e-index-of.js deleted file mode 100644 index 4cf6c635..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/e-index-of.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/e-last-index-of.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/e-last-index-of.js deleted file mode 100644 index ed4f7004..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/e-last-index-of.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/implement.js deleted file mode 100644 index 733209a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/entries/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/shim.js deleted file mode 100644 index bf40d310..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/entries/shim.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/exclusion.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/exclusion.js deleted file mode 100644 index 07b32d8e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/exclusion.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/implement.js deleted file mode 100644 index 2a01d285..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/fill/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/shim.js deleted file mode 100644 index d67300fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/fill/shim.js +++ /dev/null @@ -1,18 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/implement.js deleted file mode 100644 index 6d6b87cc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/filter/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/shim.js deleted file mode 100644 index e8b5c398..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/filter/shim.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/implement.js deleted file mode 100644 index 8d85e618..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/find-index/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/shim.js deleted file mode 100644 index b5fee463..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find-index/shim.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/implement.js deleted file mode 100644 index 29fac41e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/find/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/shim.js deleted file mode 100644 index ad2e6450..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/find/shim.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/first-index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/first-index.js deleted file mode 100644 index 4aebad64..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/first-index.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/first.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/first.js deleted file mode 100644 index 87fde035..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/first.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/flatten.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/flatten.js deleted file mode 100644 index 65f1214b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/flatten.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/for-each-right.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/for-each-right.js deleted file mode 100644 index 2d24569d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/for-each-right.js +++ /dev/null @@ -1,36 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/group.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/group.js deleted file mode 100644 index 32dc8c2d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/group.js +++ /dev/null @@ -1,24 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/indexes-of.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/indexes-of.js deleted file mode 100644 index 3364170f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/indexes-of.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/intersection.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/intersection.js deleted file mode 100644 index b72b2fb0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/intersection.js +++ /dev/null @@ -1,24 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/is-copy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/is-copy.js deleted file mode 100644 index e7f80e7a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/is-copy.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/is-uniq.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/is-uniq.js deleted file mode 100644 index 7349ba33..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/is-uniq.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/implement.js deleted file mode 100644 index b0c1aa07..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/keys/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/shim.js deleted file mode 100644 index a43c04ca..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/keys/shim.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/last-index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/last-index.js deleted file mode 100644 index a1cac107..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/last-index.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/last.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/last.js deleted file mode 100644 index 8d051bc8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/last.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/implement.js deleted file mode 100644 index cdcbc8df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/map/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/shim.js deleted file mode 100644 index bbfefe8e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/map/shim.js +++ /dev/null @@ -1,19 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/remove.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/remove.js deleted file mode 100644 index 3ebdca2d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/remove.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/separate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/separate.js deleted file mode 100644 index 42918b59..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/separate.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/implement.js deleted file mode 100644 index 855ae2fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/slice/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/shim.js deleted file mode 100644 index f674f347..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/slice/shim.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/some-right.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/some-right.js deleted file mode 100644 index 900771a6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/some-right.js +++ /dev/null @@ -1,43 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/implement.js deleted file mode 100644 index 0d9f4618..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/splice/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/shim.js deleted file mode 100644 index 2c751e67..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/splice/shim.js +++ /dev/null @@ -1,19 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/uniq.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/uniq.js deleted file mode 100644 index 2f7e6c4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/uniq.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/implement.js deleted file mode 100644 index 9f40138c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../array/#/values/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/shim.js deleted file mode 100644 index e590d8f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/values/shim.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/__scopes.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/__scopes.js deleted file mode 100644 index 6bfdcbc9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/__scopes.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -exports.Array = ['1', '2', '3']; - -exports.Arguments = (function () { - return arguments; -}('1', '2', '3')); - -exports.String = "123"; - -exports.Object = { 0: '1', 1: '2', 2: '3', 3: '4', length: 3 }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/_is-extensible.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/_is-extensible.js deleted file mode 100644 index d387126f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/_is-extensible.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(typeof t, 'boolean'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/_sub-array-dummy-safe.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/_sub-array-dummy-safe.js deleted file mode 100644 index 29d8699d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/_sub-array-dummy-safe.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var isArray = Array.isArray; - -module.exports = function (t, a) { - t((t === null) || isArray(t.prototype), true); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/_sub-array-dummy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/_sub-array-dummy.js deleted file mode 100644 index 29d8699d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/_sub-array-dummy.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var isArray = Array.isArray; - -module.exports = function (t, a) { - t((t === null) || isArray(t.prototype), true); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/implement.js deleted file mode 100644 index e0db846f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../array/from/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/shim.js deleted file mode 100644 index 310302ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/from/shim.js +++ /dev/null @@ -1,60 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/generate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/generate.js deleted file mode 100644 index d72e0568..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/generate.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/is-plain-array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/is-plain-array.js deleted file mode 100644 index 871a08ae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/is-plain-array.js +++ /dev/null @@ -1,18 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/implement.js deleted file mode 100644 index 30d53be2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../array/of/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/shim.js deleted file mode 100644 index e6974420..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/of/shim.js +++ /dev/null @@ -1,68 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/to-array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/to-array.js deleted file mode 100644 index 4985b5ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/to-array.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/valid-array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/valid-array.js deleted file mode 100644 index 3732192d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/array/valid-array.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/boolean/is-boolean.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/boolean/is-boolean.js deleted file mode 100644 index 4e6b3cb7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/boolean/is-boolean.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/copy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/copy.js deleted file mode 100644 index 767c5e16..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/copy.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/days-in-month.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/days-in-month.js deleted file mode 100644 index 9ddba55f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/days-in-month.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/floor-day.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/floor-day.js deleted file mode 100644 index d4f4a908..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/floor-day.js +++ /dev/null @@ -1,6 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/floor-month.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/floor-month.js deleted file mode 100644 index b4a81bef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/floor-month.js +++ /dev/null @@ -1,6 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/floor-year.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/floor-year.js deleted file mode 100644 index aae117e7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/floor-year.js +++ /dev/null @@ -1,6 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/format.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/format.js deleted file mode 100644 index e68e4bf7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/#/format.js +++ /dev/null @@ -1,6 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/is-date.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/is-date.js deleted file mode 100644 index 109093df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/is-date.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/valid-date.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/valid-date.js deleted file mode 100644 index 98787e40..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/date/valid-date.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/#/throw.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/#/throw.js deleted file mode 100644 index 1213cfc3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/#/throw.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - var e = new Error(); - try { - t.call(e); - } catch (e2) { - a(e2, e); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/custom.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/custom.js deleted file mode 100644 index d4ff500c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/custom.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/is-error.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/is-error.js deleted file mode 100644 index f8b5e200..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/is-error.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/valid-error.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/valid-error.js deleted file mode 100644 index e04cdb33..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/error/valid-error.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - var e = new Error(); - a(t(e), e, "Error"); - a.throws(function () { - t({}); - }, "Other"); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/compose.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/compose.js deleted file mode 100644 index 83de5e84..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/compose.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/copy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/copy.js deleted file mode 100644 index 7a22e2f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/copy.js +++ /dev/null @@ -1,19 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/curry.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/curry.js deleted file mode 100644 index 18fb0389..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/curry.js +++ /dev/null @@ -1,18 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/lock.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/lock.js deleted file mode 100644 index 44a12d7b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/lock.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(t.call(function () { - return arguments.length; - })(1, 2, 3), 0); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/not.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/not.js deleted file mode 100644 index c0f5e9d4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/not.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/partial.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/partial.js deleted file mode 100644 index bd00ce75..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/partial.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/spread.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/spread.js deleted file mode 100644 index b82dfecf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/spread.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/to-string-tokens.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/to-string-tokens.js deleted file mode 100644 index 4c54d303..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/#/to-string-tokens.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/_define-length.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/_define-length.js deleted file mode 100644 index 8f037e85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/_define-length.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/constant.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/constant.js deleted file mode 100644 index fda52aa4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/constant.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var o = {}; - -module.exports = function (t, a) { - a(t(o)(), o); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/identity.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/identity.js deleted file mode 100644 index 8013e2e5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/identity.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var o = {}; - -module.exports = function (t, a) { - a(t(o), o); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/invoke.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/invoke.js deleted file mode 100644 index fcce4aaa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/invoke.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var constant = require('../../function/constant') - - , o = { b: constant('c') }; - -module.exports = function (t, a) { - a(t('b')(o), 'c'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/is-arguments.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/is-arguments.js deleted file mode 100644 index f8de8812..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/is-arguments.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/is-function.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/is-function.js deleted file mode 100644 index 83acc42f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/is-function.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/noop.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/noop.js deleted file mode 100644 index 4305c6fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/noop.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(typeof t(1, 2, 3), 'undefined'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/pluck.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/pluck.js deleted file mode 100644 index 5bf9583a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/pluck.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var o = { foo: 'bar' }; - -module.exports = function (t, a) { - a(t('foo')(o), o.foo); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/valid-function.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/valid-function.js deleted file mode 100644 index 59b16233..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/function/valid-function.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/global.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/global.js deleted file mode 100644 index 1f452aef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/global.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a.ok(t && typeof t === 'object'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/for-each.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/for-each.js deleted file mode 100644 index 0fed8ad8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/for-each.js +++ /dev/null @@ -1,40 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/is.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/is.js deleted file mode 100644 index c0d2a43e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/is.js +++ /dev/null @@ -1,20 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/validate-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/validate-object.js deleted file mode 100644 index da12529b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/validate-object.js +++ /dev/null @@ -1,20 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/validate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/validate.js deleted file mode 100644 index bcc2ad3d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/iterable/validate.js +++ /dev/null @@ -1,20 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/_pack-ieee754.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/_pack-ieee754.js deleted file mode 100644 index 9041431d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/_pack-ieee754.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a.deep(t(1.337, 8, 23), [63, 171, 34, 209]); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/_unpack-ieee754.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/_unpack-ieee754.js deleted file mode 100644 index ca30b820..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/_unpack-ieee754.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a.deep(t([63, 171, 34, 209], 8, 23), 1.3370000123977661); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/implement.js deleted file mode 100644 index 01fb6d08..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/acosh/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/shim.js deleted file mode 100644 index 3d710c79..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/acosh/shim.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/implement.js deleted file mode 100644 index d1fcecee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/asinh/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/shim.js deleted file mode 100644 index d9fbe49e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/asinh/shim.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/implement.js deleted file mode 100644 index cba8fad8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/atanh/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/shim.js deleted file mode 100644 index a857b496..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/atanh/shim.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/implement.js deleted file mode 100644 index 374d4b38..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/cbrt/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/shim.js deleted file mode 100644 index 43ab68b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cbrt/shim.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/implement.js deleted file mode 100644 index 44f88155..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/clz32/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/shim.js deleted file mode 100644 index a769b39b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/clz32/shim.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/implement.js deleted file mode 100644 index f3c712b1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/cosh/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/shim.js deleted file mode 100644 index 419c1236..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/cosh/shim.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/implement.js deleted file mode 100644 index c2129672..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/expm1/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/shim.js deleted file mode 100644 index 15f0e796..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/expm1/shim.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/implement.js deleted file mode 100644 index c909af7c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/fround/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/shim.js deleted file mode 100644 index 4ef6d4ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/fround/shim.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/implement.js deleted file mode 100644 index 99466464..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/hypot/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/shim.js deleted file mode 100644 index 91d950a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot/shim.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/implement.js deleted file mode 100644 index 7b2a2a61..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/imul/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/shim.js deleted file mode 100644 index a2ca7fe7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/imul/shim.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/implement.js deleted file mode 100644 index 4b3b4a45..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/log10/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/shim.js deleted file mode 100644 index 5fa0d5be..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log10/shim.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/implement.js deleted file mode 100644 index 5d269bd3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/log1p/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/shim.js deleted file mode 100644 index d495ce04..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log1p/shim.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/implement.js deleted file mode 100644 index 92b501ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/log2/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/shim.js deleted file mode 100644 index faa9c32a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/log2/shim.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/implement.js deleted file mode 100644 index 5875c42d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/sign/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/shim.js deleted file mode 100644 index b6b89c15..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sign/shim.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/implement.js deleted file mode 100644 index e52089e4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/sinh/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/shim.js deleted file mode 100644 index 4f63b59e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/sinh/shim.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/implement.js deleted file mode 100644 index a96bf193..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/tanh/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/shim.js deleted file mode 100644 index 2c67aaf4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/tanh/shim.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/implement.js deleted file mode 100644 index 1830e61f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../math/trunc/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/shim.js deleted file mode 100644 index 9e5eed79..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/trunc/shim.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/#/pad.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/#/pad.js deleted file mode 100644 index e0208235..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/#/pad.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/epsilon/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/epsilon/implement.js deleted file mode 100644 index 574da75d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/epsilon/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../number/epsilon/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/epsilon/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/epsilon/index.js deleted file mode 100644 index c892fd47..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/epsilon/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(typeof t, 'number'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/epsilon/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/epsilon/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/epsilon/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/implement.js deleted file mode 100644 index b35345fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../number/is-finite/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/shim.js deleted file mode 100644 index 5205d1c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-finite/shim.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/implement.js deleted file mode 100644 index 127149ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../number/is-integer/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/shim.js deleted file mode 100644 index 3f3985c3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-integer/shim.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/implement.js deleted file mode 100644 index 2f01d6d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../number/is-nan/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/shim.js deleted file mode 100644 index 425723e7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-nan/shim.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-natural.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-natural.js deleted file mode 100644 index d56f1204..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-natural.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(t(2), true, "Number"); - a(t(-2), false, "Negative"); - 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-number.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-number.js deleted file mode 100644 index 27513347..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-number.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/implement.js deleted file mode 100644 index 33667e2e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../number/is-safe-integer/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/shim.js deleted file mode 100644 index 77e06674..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/is-safe-integer/shim.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/max-safe-integer/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/max-safe-integer/implement.js deleted file mode 100644 index bef00ca4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/max-safe-integer/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../number/max-safe-integer/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/max-safe-integer/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/max-safe-integer/index.js deleted file mode 100644 index c892fd47..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/max-safe-integer/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(typeof t, 'number'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/max-safe-integer/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/max-safe-integer/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/max-safe-integer/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/min-safe-integer/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/min-safe-integer/implement.js deleted file mode 100644 index fa440248..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/min-safe-integer/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../number/min-safe-integer/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/min-safe-integer/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/min-safe-integer/index.js deleted file mode 100644 index c892fd47..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/min-safe-integer/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(typeof t, 'number'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/min-safe-integer/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/min-safe-integer/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/min-safe-integer/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/to-integer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/to-integer.js deleted file mode 100644 index ff326ba7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/to-integer.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/to-pos-integer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/to-pos-integer.js deleted file mode 100644 index 2f3b4e67..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/to-pos-integer.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/to-uint32.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/to-uint32.js deleted file mode 100644 index 00d05bdf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/number/to-uint32.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/_iterate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/_iterate.js deleted file mode 100644 index 179afed8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/_iterate.js +++ /dev/null @@ -1,30 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/implement.js deleted file mode 100644 index 40065594..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../object/assign/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/shim.js deleted file mode 100644 index 9afe5f65..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/assign/shim.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/clear.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/clear.js deleted file mode 100644 index bfc08cc2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/clear.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/compact.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/compact.js deleted file mode 100644 index 9c9064c7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/compact.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/compare.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/compare.js deleted file mode 100644 index cb942410..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/compare.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/copy-deep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/copy-deep.js deleted file mode 100644 index 79e02be4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/copy-deep.js +++ /dev/null @@ -1,28 +0,0 @@ -'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, "jedenaście": ['raz', ['dwa', 'trzy', { elo: "true" }]] }; - 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"); - a.not(o['jedenaście'], no['jedenaście']); - a.not(o['jedenaście'][1], no['jedenaście'][1]); - a.not(o['jedenaście'][1][2], no['jedenaście'][1][2]); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/copy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/copy.js deleted file mode 100644 index 2f222ef8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/copy.js +++ /dev/null @@ -1,19 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/count.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/count.js deleted file mode 100644 index 494f4f16..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/count.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/create.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/create.js deleted file mode 100644 index 8b7be214..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/create.js +++ /dev/null @@ -1,22 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/ensure-natural-number-value.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/ensure-natural-number-value.js deleted file mode 100644 index dde23986..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/ensure-natural-number-value.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a.throws(function () { t(undefined); }, TypeError, "Undefined"); - a.throws(function () { t(null); }, TypeError, "Null"); - a(t(2), 2, "Number"); - a.throws(function () { t(-2); }, TypeError, "Negative"); - a.throws(function () { t(2.34); }, TypeError, "Float"); - a(t('23'), 23, "Numeric string"); - a.throws(function () { t(NaN); }, TypeError, "NaN"); - a.throws(function () { t(Infinity); }, TypeError, "Infinity"); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/ensure-natural-number.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/ensure-natural-number.js deleted file mode 100644 index 5ebed1e5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/ensure-natural-number.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a.throws(function () { t(undefined); }, TypeError, "Undefined"); - a(t(null), 0, "Null"); - a(t(2), 2, "Number"); - a.throws(function () { t(-2); }, TypeError, "Negative"); - a.throws(function () { t(2.34); }, TypeError, "Float"); - a(t('23'), 23, "Numeric string"); - a.throws(function () { t(NaN); }, TypeError, "NaN"); - a.throws(function () { t(Infinity); }, TypeError, "Infinity"); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/eq.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/eq.js deleted file mode 100644 index 02b3f002..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/eq.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/every.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/every.js deleted file mode 100644 index 07d5bbbd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/every.js +++ /dev/null @@ -1,21 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/filter.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/filter.js deleted file mode 100644 index 7307da86..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/filter.js +++ /dev/null @@ -1,6 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/find-key.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/find-key.js deleted file mode 100644 index cca834d9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/find-key.js +++ /dev/null @@ -1,23 +0,0 @@ -'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; - }), '1', "Finds"); - a(i, 1, "Stops iteration after condition is met"); - - a(t(o, function () { - return false; - }), undefined, "Fails"); - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/find.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/find.js deleted file mode 100644 index b6ad60a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/find.js +++ /dev/null @@ -1,23 +0,0 @@ -'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; - }), 1, "Finds"); - a(i, 1, "Stops iteration after condition is met"); - - a(t(o, function () { - return false; - }), undefined, "Fails"); - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/first-key.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/first-key.js deleted file mode 100644 index 8169cd23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/first-key.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/flatten.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/flatten.js deleted file mode 100644 index ca342eab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/flatten.js +++ /dev/null @@ -1,6 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/for-each.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/for-each.js deleted file mode 100644 index 8690d1e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/for-each.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/get-property-names.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/get-property-names.js deleted file mode 100644 index b91c3dd5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/get-property-names.js +++ /dev/null @@ -1,18 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-array-like.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-array-like.js deleted file mode 100644 index 6295973c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-array-like.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-callable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-callable.js deleted file mode 100644 index 625e221d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-callable.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-copy-deep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-copy-deep.js deleted file mode 100644 index 4f14cbbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-copy-deep.js +++ /dev/null @@ -1,46 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-copy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-copy.js deleted file mode 100644 index 394e2ed9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-copy.js +++ /dev/null @@ -1,18 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-empty.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-empty.js deleted file mode 100644 index b560c2c3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-empty.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(t({}), true, "Empty"); - a(t({ 1: 1 }), false, "Not empty"); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-number-value.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-number-value.js deleted file mode 100644 index 21b6b620..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-number-value.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(t(undefined), false, "Undefined"); - a(t(null), false, "Null"); - a(t(0), true, "Zero"); - a(t(NaN), false, "NaN"); - a(t(Infinity), true, "Infinity"); - a(t(12), true, "Number"); - a(t(false), true, "Boolean"); - a(t(new Date()), true, "Date"); - a(t(new Number(2)), true, "Number object"); - a(t('asdfaf'), false, "String"); - a(t(''), true, "Empty String"); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-object.js deleted file mode 100644 index 72c8aa6d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-object.js +++ /dev/null @@ -1,13 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-plain-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-plain-object.js deleted file mode 100644 index e988829d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is-plain-object.js +++ /dev/null @@ -1,18 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is.js deleted file mode 100644 index 4f8948cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/is.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/key-of.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/key-of.js deleted file mode 100644 index a9225a04..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/key-of.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/implement.js deleted file mode 100644 index 179e1e56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../object/keys/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/shim.js deleted file mode 100644 index ed29eebc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/keys/shim.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/map-keys.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/map-keys.js deleted file mode 100644 index be84825b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/map-keys.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/map.js deleted file mode 100644 index f9cc09c0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/map.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/mixin-prototypes.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/mixin-prototypes.js deleted file mode 100644 index d1c727a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/mixin-prototypes.js +++ /dev/null @@ -1,67 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/mixin.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/mixin.js deleted file mode 100644 index 866005b0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/mixin.js +++ /dev/null @@ -1,69 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/normalize-options.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/normalize-options.js deleted file mode 100644 index 0d2d4da0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/normalize-options.js +++ /dev/null @@ -1,32 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/primitive-set.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/primitive-set.js deleted file mode 100644 index 839857ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/primitive-set.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/safe-traverse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/safe-traverse.js deleted file mode 100644 index d30cdefe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/safe-traverse.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/serialize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/serialize.js deleted file mode 100644 index 43eed6a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/serialize.js +++ /dev/null @@ -1,25 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/implement.js deleted file mode 100644 index 30b2ac4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/index.js deleted file mode 100644 index aec2605c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/shim.js deleted file mode 100644 index aec2605c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/set-prototype-of/shim.js +++ /dev/null @@ -1,23 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/some.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/some.js deleted file mode 100644 index 490431e7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/some.js +++ /dev/null @@ -1,23 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/to-array.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/to-array.js deleted file mode 100644 index 1f4beef7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/to-array.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/unserialize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/unserialize.js deleted file mode 100644 index 405eef11..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/unserialize.js +++ /dev/null @@ -1,24 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/valid-callable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/valid-callable.js deleted file mode 100644 index b40540b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/valid-callable.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - var f = function () {}; - a(t(f), f, "Function"); - a.throws(function () { - t({}); - }, "Not Function"); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/valid-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/valid-object.js deleted file mode 100644 index eaa8e7bc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/valid-object.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/valid-value.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/valid-value.js deleted file mode 100644 index f1eeafa9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/valid-value.js +++ /dev/null @@ -1,19 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-array-like-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-array-like-object.js deleted file mode 100644 index 2f3e31b4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-array-like-object.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-array-like.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-array-like.js deleted file mode 100644 index 53bd1124..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-array-like.js +++ /dev/null @@ -1,15 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-stringifiable-value.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-stringifiable-value.js deleted file mode 100644 index ae9bd17a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-stringifiable-value.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-stringifiable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-stringifiable.js deleted file mode 100644 index 4a46bb52..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/object/validate-stringifiable.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/index.js deleted file mode 100644 index ca2bd650..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/index.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/is-sticky.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/is-sticky.js deleted file mode 100644 index e154ac29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/is-sticky.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/is-unicode.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/is-unicode.js deleted file mode 100644 index 2ffb9e86..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/is-unicode.js +++ /dev/null @@ -1,10 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/implement.js deleted file mode 100644 index 89825a45..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../reg-exp/#/match/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/shim.js deleted file mode 100644 index 5249139f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/match/shim.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/implement.js deleted file mode 100644 index c32b23a6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../reg-exp/#/replace/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/shim.js deleted file mode 100644 index 2b378fd5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/replace/shim.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(t.call(/foo/, 'foobar', 'mar'), 'marbar'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/implement.js deleted file mode 100644 index ff1b8087..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../reg-exp/#/search/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/shim.js deleted file mode 100644 index 596bcdb9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/search/shim.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(t.call(/foo/, 'barfoo'), 3); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/implement.js deleted file mode 100644 index 1cee4418..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../reg-exp/#/split/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/shim.js deleted file mode 100644 index 6a95cd03..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/split/shim.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a.deep(t.call(/\|/, 'bar|foo'), ['bar', 'foo']); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/sticky/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/sticky/implement.js deleted file mode 100644 index d94e7b98..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/sticky/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../reg-exp/#/sticky/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/sticky/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/sticky/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/sticky/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/unicode/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/unicode/implement.js deleted file mode 100644 index 9b1aa0f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/unicode/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../reg-exp/#/unicode/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/unicode/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/unicode/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/#/unicode/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/escape.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/escape.js deleted file mode 100644 index 5b00f67f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/escape.js +++ /dev/null @@ -1,6 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/is-reg-exp.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/is-reg-exp.js deleted file mode 100644 index 785ca28c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/is-reg-exp.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/valid-reg-exp.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/valid-reg-exp.js deleted file mode 100644 index cd12cf12..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/reg-exp/valid-reg-exp.js +++ /dev/null @@ -1,17 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/implement.js deleted file mode 100644 index 09bf3361..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../string/#/@@iterator/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/shim.js deleted file mode 100644 index 3b0e0b75..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/@@iterator/shim.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/at.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/at.js deleted file mode 100644 index 2447a9f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/at.js +++ /dev/null @@ -1,97 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/camel-to-hyphen.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/camel-to-hyphen.js deleted file mode 100644 index 8b47a815..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/camel-to-hyphen.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(t.call('razDwaTRzy4yFoo45My'), 'raz-dwa-t-rzy4y-foo45-my'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/capitalize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/capitalize.js deleted file mode 100644 index fa11ff8e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/capitalize.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/case-insensitive-compare.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/case-insensitive-compare.js deleted file mode 100644 index 01a90c39..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/case-insensitive-compare.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/implement.js deleted file mode 100644 index 5e33cd71..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/implement.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -var isImplemented = - require('../../../../string/#/code-point-at/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/shim.js deleted file mode 100644 index 0df4751c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/code-point-at/shim.js +++ /dev/null @@ -1,81 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/implement.js deleted file mode 100644 index 220f50d4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../string/#/contains/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/shim.js deleted file mode 100644 index a0ea4db2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/contains/shim.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/implement.js deleted file mode 100644 index 93bd2ddc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../string/#/ends-with/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/shim.js deleted file mode 100644 index e4b93c40..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/ends-with/shim.js +++ /dev/null @@ -1,16 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/hyphen-to-camel.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/hyphen-to-camel.js deleted file mode 100644 index bd7ded4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/hyphen-to-camel.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(t.call('raz-dwa-t-rzy-4y-rtr4-tiu-45-pa'), 'razDwaTRzy4yRtr4Tiu45Pa'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/indent.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/indent.js deleted file mode 100644 index eb92b36f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/indent.js +++ /dev/null @@ -1,9 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/last.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/last.js deleted file mode 100644 index ad36a213..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/last.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { - a(t.call(''), null, "Null"); - a(t.call('abcdef'), 'f', "String"); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/_data.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/_data.js deleted file mode 100644 index c741addb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/_data.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t[0], 'object'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/implement.js deleted file mode 100644 index 4886c9b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../string/#/normalize/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/shim.js deleted file mode 100644 index 28e27f59..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/normalize/shim.js +++ /dev/null @@ -1,13 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/pad.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/pad.js deleted file mode 100644 index 28c3fcaa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/pad.js +++ /dev/null @@ -1,24 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/plain-replace-all.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/plain-replace-all.js deleted file mode 100644 index a425c87a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/plain-replace-all.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/plain-replace.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/plain-replace.js deleted file mode 100644 index 54522ed7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/plain-replace.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/implement.js deleted file mode 100644 index 7ff65a81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../string/#/repeat/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/shim.js deleted file mode 100644 index 7e0d077e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/repeat/shim.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/implement.js deleted file mode 100644 index fc8490fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../../string/#/starts-with/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/shim.js deleted file mode 100644 index e0e123b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/starts-with/shim.js +++ /dev/null @@ -1,14 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/uncapitalize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/uncapitalize.js deleted file mode 100644 index 50f35f1f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/#/uncapitalize.js +++ /dev/null @@ -1,10 +0,0 @@ -'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"); - a(t.call('This is a test'), 'this is a test', "Capitalized sentence"); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/format-method.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/format-method.js deleted file mode 100644 index bb5561ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/format-method.js +++ /dev/null @@ -1,7 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/implement.js deleted file mode 100644 index 0aceb97e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../string/from-code-point/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/shim.js deleted file mode 100644 index 88cda3d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/from-code-point/shim.js +++ /dev/null @@ -1,47 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/is-string.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/is-string.js deleted file mode 100644 index 32f59582..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/is-string.js +++ /dev/null @@ -1,11 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/random-uniq.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/random-uniq.js deleted file mode 100644 index 6791ac26..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/random-uniq.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/implement.js deleted file mode 100644 index 59416de3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/implement.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var isImplemented = require('../../../string/raw/is-implemented'); - -module.exports = function (a) { a(isImplemented(), true); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/index.js deleted file mode 100644 index 2e0bfa32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./shim'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/is-implemented.js deleted file mode 100644 index 1a883288..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/is-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t(), 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/shim.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/shim.js deleted file mode 100644 index 025ed780..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/string/raw/shim.js +++ /dev/null @@ -1,15 +0,0 @@ -// 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/package.json deleted file mode 100644 index f98280ca..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/package.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "_args": [ - [ - "es6-symbol@^3.0.2", - "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index" - ] - ], - "_from": "es6-symbol@>=3.0.2 <4.0.0", - "_id": "es6-symbol@3.0.2", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/path-array/array-index/es6-symbol", - "_nodeVersion": "5.2.0", - "_npmUser": { - "email": "medikoo+npm@medikoo.com", - "name": "medikoo" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": { - "es6-symbol": "3.0.2" - }, - "_requested": { - "name": "es6-symbol", - "raw": "es6-symbol@^3.0.2", - "rawSpec": "^3.0.2", - "scope": null, - "spec": ">=3.0.2 <4.0.0", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp/path-array/array-index", - "/node-gyp/path-array/array-index/es6-symbol/es5-ext", - "/node-gyp/path-array/array-index/es6-symbol/es5-ext/es6-iterator" - ], - "_resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.0.2.tgz", - "_shasum": "1e928878c6f5e63541625b4bb4df4af07d154219", - "_shrinkwrap": null, - "_spec": "es6-symbol@^3.0.2", - "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index", - "author": { - "email": "medyk@medikoo.com", - "name": "Mariusz Nowak", - "url": "http://www.medikoo.com/" - }, - "bugs": { - "url": "https://github.com/medikoo/es6-symbol/issues" - }, - "dependencies": { - "d": "~0.1.1", - "es5-ext": "~0.10.10" - }, - "description": "ECMAScript 6 Symbol polyfill", - "devDependencies": { - "tad": "~0.2.4", - "xlint": "~0.2.2", - "xlint-jslint-medikoo": "~0.1.4" - }, - "directories": {}, - "dist": { - "shasum": "1e928878c6f5e63541625b4bb4df4af07d154219", - "tarball": "http://registry.npmjs.org/es6-symbol/-/es6-symbol-3.0.2.tgz" - }, - "gitHead": "b7da6b926c44e3745de69b17c98c00a5c84b4ebe", - "homepage": "https://github.com/medikoo/es6-symbol#readme", - "keywords": [ - "ecmascript", - "es6", - "harmony", - "polyfill", - "ponyfill", - "private", - "property", - "symbol" - ], - "license": "MIT", - "maintainers": [ - { - "name": "medikoo", - "email": "medikoo+npm@medikoo.com" - } - ], - "name": "es6-symbol", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/medikoo/es6-symbol.git" - }, - "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" - }, - "version": "3.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/polyfill.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/polyfill.js deleted file mode 100644 index 7c3c8fe9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/polyfill.js +++ /dev/null @@ -1,107 +0,0 @@ -// ES2015 Symbol polyfill for environments that do not support it (or partially support it_ - -'use strict'; - -var d = require('d') - , validateSymbol = require('./validate-symbol') - - , create = Object.create, defineProperties = Object.defineProperties - , defineProperty = Object.defineProperty, objPrototype = Object.prototype - , NativeSymbol, SymbolPolyfill, HiddenSymbol, globalSymbols = create(null); - -if (typeof Symbol === 'function') NativeSymbol = Symbol; - -var generateName = (function () { - var created = create(null); - return function (desc) { - var postfix = 0, name, ie11BugWorkaround; - while (created[desc + (postfix || '')]) ++postfix; - desc += (postfix || ''); - created[desc] = true; - name = '@@' + desc; - defineProperty(objPrototype, name, d.gs(null, function (value) { - // For IE11 issue see: - // https://connect.microsoft.com/IE/feedbackdetail/view/1928508/ - // ie11-broken-getters-on-dom-objects - // https://github.com/medikoo/es6-symbol/issues/12 - if (ie11BugWorkaround) return; - ie11BugWorkaround = true; - defineProperty(this, name, d(value)); - ie11BugWorkaround = false; - })); - return name; - }; -}()); - -// Internal constructor (not one exposed) for creating Symbol instances. -// This one is used to ensure that `someSymbol instanceof Symbol` always return false -HiddenSymbol = function Symbol(description) { - if (this instanceof HiddenSymbol) throw new TypeError('TypeError: Symbol is not a constructor'); - return SymbolPolyfill(description); -}; - -// Exposed `Symbol` constructor -// (returns instances of HiddenSymbol) -module.exports = SymbolPolyfill = 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(SymbolPolyfill, { - for: d(function (key) { - if (globalSymbols[key]) return globalSymbols[key]; - return (globalSymbols[key] = SymbolPolyfill(String(key))); - }), - keyFor: d(function (s) { - var key; - validateSymbol(s); - for (key in globalSymbols) if (globalSymbols[key] === s) return key; - }), - - // If there's native implementation of given symbol, let's fallback to it - // to ensure proper interoperability with other native functions e.g. Array.from - hasInstance: d('', (NativeSymbol && NativeSymbol.hasInstance) || SymbolPolyfill('hasInstance')), - isConcatSpreadable: d('', (NativeSymbol && NativeSymbol.isConcatSpreadable) || - SymbolPolyfill('isConcatSpreadable')), - iterator: d('', (NativeSymbol && NativeSymbol.iterator) || SymbolPolyfill('iterator')), - match: d('', (NativeSymbol && NativeSymbol.match) || SymbolPolyfill('match')), - replace: d('', (NativeSymbol && NativeSymbol.replace) || SymbolPolyfill('replace')), - search: d('', (NativeSymbol && NativeSymbol.search) || SymbolPolyfill('search')), - species: d('', (NativeSymbol && NativeSymbol.species) || SymbolPolyfill('species')), - split: d('', (NativeSymbol && NativeSymbol.split) || SymbolPolyfill('split')), - toPrimitive: d('', (NativeSymbol && NativeSymbol.toPrimitive) || SymbolPolyfill('toPrimitive')), - toStringTag: d('', (NativeSymbol && NativeSymbol.toStringTag) || SymbolPolyfill('toStringTag')), - unscopables: d('', (NativeSymbol && NativeSymbol.unscopables) || SymbolPolyfill('unscopables')) -}); - -// Internal tweaks for real symbol producer -defineProperties(HiddenSymbol.prototype, { - constructor: d(SymbolPolyfill), - toString: d('', function () { return this.__name__; }) -}); - -// Proper implementation of methods exposed on Symbol.prototype -// They won't be accessible on produced symbol instances as they derive from HiddenSymbol.prototype -defineProperties(SymbolPolyfill.prototype, { - toString: d(function () { return 'Symbol (' + validateSymbol(this).__description__ + ')'; }), - valueOf: d(function () { return validateSymbol(this); }) -}); -defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toPrimitive, d('', - function () { return validateSymbol(this); })); -defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, d('c', 'Symbol')); - -// Proper implementaton of toPrimitive and toStringTag for returned symbol instances -defineProperty(HiddenSymbol.prototype, SymbolPolyfill.toStringTag, - d('c', SymbolPolyfill.prototype[SymbolPolyfill.toStringTag])); - -// Note: It's important to define `toPrimitive` as last one, as some implementations -// implement `toPrimitive` natively without implementing `toStringTag` (or other specified symbols) -// And that may invoke error in definition flow: -// See: https://github.com/medikoo/es6-symbol/issues/13#issuecomment-164146149 -defineProperty(HiddenSymbol.prototype, SymbolPolyfill.toPrimitive, - d('c', SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive])); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/implement.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/implement.js deleted file mode 100644 index eb35c301..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/implement.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof Symbol, 'function'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/index.js deleted file mode 100644 index 62b3296d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/index.js +++ /dev/null @@ -1,12 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/is-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/is-implemented.js deleted file mode 100644 index bb0d6453..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/is-implemented.js +++ /dev/null @@ -1,14 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/is-native-implemented.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/is-native-implemented.js deleted file mode 100644 index df8ba032..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/is-native-implemented.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = function (t, a) { a(typeof t, 'boolean'); }; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/is-symbol.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/is-symbol.js deleted file mode 100644 index ac24b9ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/is-symbol.js +++ /dev/null @@ -1,16 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/polyfill.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/polyfill.js deleted file mode 100644 index 83fb5e92..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/polyfill.js +++ /dev/null @@ -1,27 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/validate-symbol.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/validate-symbol.js deleted file mode 100644 index 2c8f84c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/test/validate-symbol.js +++ /dev/null @@ -1,19 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/validate-symbol.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/validate-symbol.js deleted file mode 100644 index 42750043..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/validate-symbol.js +++ /dev/null @@ -1,8 +0,0 @@ -'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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/package.json deleted file mode 100644 index dd33e385..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "_args": [ - [ - "array-index@^1.0.0", - "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/path-array" - ] - ], - "_from": "array-index@>=1.0.0 <2.0.0", - "_id": "array-index@1.0.0", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/path-array/array-index", - "_nodeVersion": "5.3.0", - "_npmUser": { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "array-index", - "raw": "array-index@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp/path-array" - ], - "_resolved": "https://registry.npmjs.org/array-index/-/array-index-1.0.0.tgz", - "_shasum": "ec56a749ee103e4e08c790b9c353df16055b97f9", - "_shrinkwrap": null, - "_spec": "array-index@^1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/path-array", - "author": { - "email": "nathan@tootallnate.net", - "name": "Nathan Rajlich", - "url": "http://tootallnate.net" - }, - "bugs": { - "url": "https://github.com/TooTallNate/array-index/issues" - }, - "dependencies": { - "debug": "^2.2.0", - "es6-symbol": "^3.0.2" - }, - "description": "Invoke getter/setter functions on array-like objects", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "ec56a749ee103e4e08c790b9c353df16055b97f9", - "tarball": "http://registry.npmjs.org/array-index/-/array-index-1.0.0.tgz" - }, - "engines": { - "node": "*" - }, - "gitHead": "4b3cc059c70eefd8ef2a0d4213d681b671eb3d11", - "homepage": "https://github.com/TooTallNate/array-index#readme", - "keywords": [ - "array", - "getter", - "index", - "proxy", - "setter" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "name": "array-index", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/array-index.git" - }, - "scripts": { - "test": "node test" - }, - "version": "1.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/test.js deleted file mode 100644 index 65ff607f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/test.js +++ /dev/null @@ -1,110 +0,0 @@ -var ArrayIndex = require('./') -var inherits = require('util').inherits -var assert = require('assert') - - -/** - * Create a "subclass". - */ - -function Arrayish (length) { - ArrayIndex.call(this, length) - this.sets = Object.create(null) -} - -// inherit from `ArrayIndex` -inherits(Arrayish, ArrayIndex) - - -// create an instance and run some tests -var a = new Arrayish(11) -assert.equal(a.length, 11); - -assert.throws(function () { - a[0] -}, /you must implement the `ArrayIndex.get` Symbol/) - -assert.throws(function () { - a[0] = 0 -}, /you must implement the `ArrayIndex.set` Symbol/) - - -/** - * This "getter" function checks if the index has previosly been "set", and if so - * returns the index * the value previously set. If the index hasn't been set, - * return the index as-is. - */ - -Arrayish.prototype[ArrayIndex.get] = function get (index) { - if (index in this.sets) { - return +this.sets[index] * index - } else { - return index - } -} - -/** - * Store the last value set for this index. - */ - -Arrayish.prototype[ArrayIndex.set] = function set (index, value) { - this.sets[index] = value -} - - -// test getters without being "set" -assert.equal(0, a[0]) -assert.equal(1, a[1]) -assert.equal(2, a[2]) -assert.equal(3, a[3]) -assert.equal(4, a[4]) - -// test setters, followed by getters -a[10] = 1 -assert.equal(10, a[10]) -a[10] = 2 -assert.equal(20, a[10]) -a[10] = 3 -assert.equal(30, a[10]) - -// test "length" -assert.equal(11, a.length) - -a[4] = 20 -a[6] = 5.55432 -var b = [0, 1, 2, 3, 80, 5, 33.325919999999996, 7, 8, 9, 30] -assert.equal(JSON.stringify(b), JSON.stringify(a)) - - -/** - * It should work when invoking as a Mixin. - */ - -function Foo () { - ArrayIndex.call(this, 5); -} -var f = new Foo(); - -// these throw because there's no __get__ and __set__ function defined -assert.throws(function () { - f[0]; -}); -assert.throws(function () { - f[0] = 0 -}); - -f[ArrayIndex.get] = function (index) { - return index * 2; -}; - -assert.equal(f[0], 0); -assert.equal(f[1], 2); -assert.equal(f[2], 4); -assert.equal(f[3], 6); - -f[ArrayIndex.set] = function (index, value) { - this['foo' + index] = value; -}; - -f[1] = 'bar'; -assert.equal(f.foo1, 'bar'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/package.json deleted file mode 100644 index e69958df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "_args": [ - [ - "path-array@^1.0.0", - "/Users/rebecca/code/npm/node_modules/node-gyp" - ] - ], - "_from": "path-array@>=1.0.0 <2.0.0", - "_id": "path-array@1.0.1", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp/path-array", - "_nodeVersion": "5.3.0", - "_npmUser": { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "path-array", - "raw": "path-array@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/node-gyp" - ], - "_resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.1.tgz", - "_shasum": "7e2f0f35f07a2015122b868b7eac0eb2c4fec271", - "_shrinkwrap": null, - "_spec": "path-array@^1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/node-gyp", - "author": { - "email": "nathan@tootallnate.net", - "name": "Nathan Rajlich", - "url": "http://n8.io/" - }, - "bugs": { - "url": "https://github.com/TooTallNate/node-path-array/issues" - }, - "dependencies": { - "array-index": "^1.0.0" - }, - "description": "Treat your $PATH like a JavaScript Array", - "devDependencies": { - "mocha": "~1.16.1" - }, - "directories": {}, - "dist": { - "shasum": "7e2f0f35f07a2015122b868b7eac0eb2c4fec271", - "tarball": "http://registry.npmjs.org/path-array/-/path-array-1.0.1.tgz" - }, - "gitHead": "d249bd897661ca60720218edabbfeaa73c67778a", - "homepage": "https://github.com/TooTallNate/node-path-array", - "keywords": [ - "PATH", - "array", - "env" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "name": "path-array", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/node-path-array.git" - }, - "scripts": { - "test": "mocha --reporter spec" - }, - "version": "1.0.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/test/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/test/test.js deleted file mode 100644 index fc1f3736..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/node_modules/path-array/test/test.js +++ /dev/null @@ -1,68 +0,0 @@ - -/** - * Module dependencies. - */ - -var assert = require('assert'); -var PathArray = require('../'); -var delimiter = require('path').delimiter || ':'; - -describe('PathArray', function () { - it('should use `process.env` by default', function () { - var p = new PathArray(); - assert.equal(p._env, process.env); - }); - it('should return the $PATH string for .toString()', function () { - var p = new PathArray(); - assert.equal(p.toString(), process.env.PATH); - }); - it('should accept an arbitrary `env` object', function () { - var env = { PATH: '/foo' + delimiter + '/bar' }; - var p = new PathArray(env); - assert.equal(p.toString(), env.PATH); - }); - it('should work for [n] getter syntax', function () { - var env = { PATH: '/foo' + delimiter + '/bar' }; - var p = new PathArray(env); - assert.equal('/foo', p[0]); - assert.equal('/bar', p[1]); - }); - it('should work for [n]= setter syntax', function () { - var env = { PATH: '/foo' + delimiter + '/bar' }; - var p = new PathArray(env); - p[0] = '/baz'; - assert.equal('/baz' + delimiter + '/bar', env.PATH); - }); - it('should work with .push()', function () { - var env = { PATH: '/foo' + delimiter + '/bar' }; - var p = new PathArray(env); - p.push('/baz'); - assert.equal('/foo' + delimiter + '/bar' + delimiter + '/baz', env.PATH); - }); - it('should work with .shift()', function () { - var env = { PATH: '/foo' + delimiter + '/bar' }; - var p = new PathArray(env); - assert.equal('/foo', p.shift()); - assert.equal('/bar', env.PATH); - }); - it('should work with .pop()', function () { - var env = { PATH: '/foo' + delimiter + '/bar' }; - var p = new PathArray(env); - assert.equal('/bar', p.pop()); - assert.equal('/foo', env.PATH); - }); - it('should work with .unshift()', function () { - var env = { PATH: '/foo' + delimiter + '/bar' }; - var p = new PathArray(env); - p.unshift('/baz'); - assert.equal('/baz' + delimiter + '/foo' + delimiter + '/bar', env.PATH); - }); - it('should be able to specify property name to use with second argument', function () { - var env = { PYTHONPATH: '/foo' }; - var p = new PathArray(env, 'PYTHONPATH'); - assert.equal(1, p.length); - p.push('/baz'); - assert.equal(2, p.length); - assert.equal('/foo' + delimiter + '/baz', env.PYTHONPATH); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/package.json deleted file mode 100644 index bbbc22ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/package.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "_args": [ - [ - "node-gyp@3.3.1", - "/Users/rebecca/code/npm" - ] - ], - "_from": "node-gyp@3.3.1", - "_id": "node-gyp@3.3.1", - "_inCache": true, - "_installable": true, - "_location": "/node-gyp", - "_nodeVersion": "6.0.0-pre", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/node-gyp-3.3.1.tgz_1457115144174_0.4018901875242591" - }, - "_npmUser": { - "email": "info@bnoordhuis.nl", - "name": "bnoordhuis" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": { - "inflight": "1.0.4", - "inherits": "2.0.1", - "once": "1.3.3" - }, - "_requested": { - "name": "node-gyp", - "raw": "node-gyp@3.3.1", - "rawSpec": "3.3.1", - "scope": null, - "spec": "3.3.1", - "type": "version" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.3.1.tgz", - "_shasum": "80f7b6d7c2f9c0495ba42c518a670c99bdf6e4a0", - "_shrinkwrap": null, - "_spec": "node-gyp@3.3.1", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "nathan@tootallnate.net", - "name": "Nathan Rajlich", - "url": "http://tootallnate.net" - }, - "bin": { - "node-gyp": "./bin/node-gyp.js" - }, - "bugs": { - "url": "https://github.com/nodejs/node-gyp/issues" - }, - "dependencies": { - "fstream": "^1.0.0", - "glob": "3 || 4", - "graceful-fs": "^4.1.2", - "minimatch": "1", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2", - "osenv": "0", - "path-array": "^1.0.0", - "request": "2", - "rimraf": "2", - "semver": "2.x || 3.x || 4 || 5", - "tar": "^2.0.0", - "which": "1" - }, - "description": "Node.js native addon build tool", - "devDependencies": { - "tape": "~4.2.0" - }, - "directories": {}, - "dist": { - "shasum": "80f7b6d7c2f9c0495ba42c518a670c99bdf6e4a0", - "tarball": "http://registry.npmjs.org/node-gyp/-/node-gyp-3.3.1.tgz" - }, - "engines": { - "node": ">= 0.8.0" - }, - "gitHead": "1dcf356ca7b658789447108b29a985c00ffcf0f5", - "homepage": "https://github.com/nodejs/node-gyp#readme", - "installVersion": 9, - "keywords": [ - "native", - "addon", - "module", - "c", - "c++", - "bindings", - "gyp" - ], - "license": "MIT", - "main": "./lib/node-gyp.js", - "maintainers": [ - { - "email": "nathan@tootallnate.net", - "name": "TooTallNate" - }, - { - "email": "info@bnoordhuis.nl", - "name": "bnoordhuis" - }, - { - "email": "fishrock123@rocketmail.com", - "name": "fishrock123" - }, - { - "email": "i@izs.me", - "name": "isaacs" - }, - { - "email": "rod@vagg.org", - "name": "rvagg" - }, - { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - } - ], - "name": "node-gyp", - "optionalDependencies": {}, - "preferGlobal": true, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/nodejs/node-gyp.git" - }, - "scripts": { - "test": "tape test/test-*" - }, - "version": "3.3.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/src/win_delay_load_hook.c b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/src/win_delay_load_hook.c deleted file mode 100644 index b1e170aa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/src/win_delay_load_hook.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * When this file is linked to a DLL, it sets up a delay-load hook that - * intervenes when the DLL is trying to load 'node.exe' or 'iojs.exe' - * dynamically. Instead of trying to locate the .exe file it'll just return - * a handle to the process image. - * - * This allows compiled addons to work when node.exe or iojs.exe is renamed. - */ - -#ifdef _MSC_VER - -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif - -#include - -#include -#include - -static FARPROC WINAPI load_exe_hook(unsigned int event, DelayLoadInfo* info) { - HMODULE m; - if (event != dliNotePreLoadLibrary) - return NULL; - - if (_stricmp(info->szDll, "iojs.exe") != 0 && - _stricmp(info->szDll, "node.exe") != 0) - return NULL; - - m = GetModuleHandle(NULL); - return (FARPROC) m; -} - -PfnDliHook __pfnDliNotifyHook2 = load_exe_hook; - -#endif diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/docker.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/docker.sh deleted file mode 100755 index ac21aa8d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/docker.sh +++ /dev/null @@ -1,164 +0,0 @@ -#!/bin/bash - -#set -e - -test_node_versions="0.8.28 0.10.40 0.12.7 4.3.0 5.6.0" -test_iojs_versions="1.8.4 2.4.0 3.3.0" - -myuid=$(id -u) -mygid=$(id -g) -__dirname="$(CDPATH= cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -dot_node_gyp=${__dirname}/.node-gyp/ - -# borrows from https://github.com/rvagg/dnt/ - -# Simple setup function for a container: -# setup_container(image id, base image, commands to run to set up) -setup_container() { - local container_id="$1" - local base_container="$2" - local run_cmd="$3" - - # Does this image exist? If yes, ignore - docker inspect "$container_id" &> /dev/null - if [[ $? -eq 0 ]]; then - echo "Found existing container [$container_id]" - else - # No such image, so make it - echo "Did not find container [$container_id], creating..." - docker run -i $base_container /bin/bash -c "$run_cmd" - sleep 2 - docker commit $(docker ps -l -q) $container_id - fi -} - -# Run tests inside each of the versioned containers, copy cwd into npm's copy of node-gyp -# so it'll be invoked by npm when a compile is needed -# run_tests(version, test-commands) -run_tests() { - local version="$1" - local run_cmd="$2" - - run_cmd="rsync -aAXx --delete --exclude .git --exclude build /node-gyp-src/ /usr/lib/node_modules/npm/node_modules/node-gyp/; - /bin/su -s /bin/bash node-gyp -c 'cd && ${run_cmd}'" - - rm -rf $dot_node_gyp - mkdir $dot_node_gyp - - docker run \ - --rm -i \ - -v ~/.npm/:/node-gyp/.npm/ \ - -v ${dot_node_gyp}:/node-gyp/.node-gyp/ \ - -v $(pwd):/node-gyp-src/:ro \ - node-gyp-test/${version} /bin/bash -c "${run_cmd}" -} - -# A base image with build tools and a user account -setup_container "node-gyp-test/base" "ubuntu:14.04" " - adduser --gecos node-gyp --home /node-gyp/ --disabled-login node-gyp --uid $myuid && - echo "node-gyp:node-gyp" | chpasswd && - apt-get update && - apt-get install -y build-essential python git rsync curl -" - -# An image on top of the base containing clones of repos we want to use for testing -setup_container "node-gyp-test/clones" "node-gyp-test/base" " - cd /node-gyp/ && git clone https://github.com/justmoon/node-bignum.git && - cd /node-gyp/ && git clone https://github.com/bnoordhuis/node-buffertools.git && - chown -R node-gyp.node-gyp /node-gyp/ -" - -# An image for each of the node versions we want to test with that version installed and the latest npm -for v in $test_node_versions; do - setup_container "node-gyp-test/${v}" "node-gyp-test/clones" " - curl -sL https://nodejs.org/dist/v${v}/node-v${v}-linux-x64.tar.gz | tar -zxv --strip-components=1 -C /usr/ && - npm install npm@latest -g && - node -v && npm -v - " -done - -# An image for each of the io.js versions we want to test with that version installed and the latest npm -for v in $test_iojs_versions; do - setup_container "node-gyp-test/${v}" "node-gyp-test/clones" " - curl -sL https://iojs.org/dist/v${v}/iojs-v${v}-linux-x64.tar.gz | tar -zxv --strip-components=1 -C /usr/ && - npm install npm@latest -g && - node -v && npm -v - " -done - -# Run the tests for all of the test images we've created, -# we should see node-gyp doing its download, configure and run thing -# _NOTE: bignum doesn't compile on 0.8 currently so it'll fail for that version only_ -for v in $test_node_versions $test_iojs_versions; do - run_tests $v " - cd node-buffertools && npm install --loglevel=info && npm test && cd - " - # removed for now, too noisy: cd node-bignum && npm install --loglevel=info && npm test -done - -# Test use of --target=x.y.z to compile against alternate versions -test_download_node_version() { - local run_with_ver="$1" - local expected_dir="$2" - local expected_ver="$3" - run_tests $run_with_ver "cd node-buffertools && npm install --loglevel=info --target=${expected_ver}" - local node_ver=$(cat "${dot_node_gyp}${expected_dir}/node_version.h" | grep '#define NODE_\w*_VERSION [0-9]*$') - node_ver=$(echo $node_ver | sed 's/#define NODE_[A-Z]*_VERSION //g' | sed 's/ /./g') - if [ "X$(echo $node_ver)" != "X${expected_ver}" ]; then - echo "Did not download v${expected_ver} using --target, instead got: $(echo $node_ver)" - exit 1 - fi - echo "Verified correct download of [v${node_ver}]" -} - -test_download_node_version "0.12.7" "0.10.30/src" "0.10.30" -test_download_node_version "3.3.0" "iojs-1.8.4/src" "1.8.4" -# should download the headers file -test_download_node_version "3.3.0" "iojs-3.3.0/include/node" "3.3.0" -test_download_node_version "4.3.0" "4.3.0/include/node" "4.3.0" -test_download_node_version "5.6.0" "5.6.0/include/node" "5.6.0" - -# TODO: test --dist-url by starting up a localhost server and serving up tarballs - -# testing --dist-url, using simple-proxy.js to make localhost work as a distribution -# point for tarballs -# we can test whether it uses the proxy because after 2 connections the proxy will -# die and therefore should not be running at the end of the test, `nc` can tell us this -run_tests "3.3.0" " - (node /node-gyp-src/test/simple-proxy.js 8080 /foobar/ https://iojs.org/dist/ &) && - cd node-buffertools && - /node-gyp-src/bin/node-gyp.js --loglevel=info --dist-url=http://localhost:8080/foobar/ rebuild && - nc -z localhost 8080 && echo -e \"\\n\\n\\033[31mFAILED TO USE LOCAL PROXY\\033[39m\\n\\n\" -" - -# REMOVE after next semver-major -run_tests "3.3.0" " - (node /node-gyp-src/test/simple-proxy.js 8080 /doobar/ https://iojs.org/dist/ &) && - cd node-buffertools && - NVM_IOJS_ORG_MIRROR=http://localhost:8080/doobar/ /node-gyp-src/bin/node-gyp.js --loglevel=info rebuild && - nc -z localhost 8080 && echo -e \"\\n\\n\\033[31mFAILED TO USE LOCAL PROXY\\033[39m\\n\\n\" -" - -# REMOVE after next semver-major -run_tests "0.12.7" " - (node /node-gyp-src/test/simple-proxy.js 8080 /boombar/ https://nodejs.org/dist/ &) && - cd node-buffertools && - NVM_NODEJS_ORG_MIRROR=http://localhost:8080/boombar/ /node-gyp-src/bin/node-gyp.js --loglevel=info rebuild && - nc -z localhost 8080 && echo -e \"\\n\\n\\033[31mFAILED TO USE LOCAL PROXY\\033[39m\\n\\n\" -" - -run_tests "3.3.0" " - (node /node-gyp-src/test/simple-proxy.js 8080 /doobar/ https://iojs.org/dist/ &) && - cd node-buffertools && - IOJS_ORG_MIRROR=http://localhost:8080/doobar/ /node-gyp-src/bin/node-gyp.js --loglevel=info rebuild && - nc -z localhost 8080 && echo -e \"\\n\\n\\033[31mFAILED TO USE LOCAL PROXY\\033[39m\\n\\n\" -" - -run_tests "0.12.7" " - (node /node-gyp-src/test/simple-proxy.js 8080 /boombar/ https://nodejs.org/dist/ &) && - cd node-buffertools && - NODEJS_ORG_MIRROR=http://localhost:8080/boombar/ /node-gyp-src/bin/node-gyp.js --loglevel=info rebuild && - nc -z localhost 8080 && echo -e \"\\n\\n\\033[31mFAILED TO USE LOCAL PROXY\\033[39m\\n\\n\" -" - -rm -rf $dot_node_gyp diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/ca-bundle.crt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/ca-bundle.crt deleted file mode 100644 index fb1dea98..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/ca-bundle.crt +++ /dev/null @@ -1,40 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDJjCCAg4CAhnOMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAlVTMQswCQYD -VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n -TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv -bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMBkxFzAV -BgNVBAMMDnN0cm9uZ2xvb3AuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAwOYI7OZ2FX/YjRgLZoDQlbPc5UZXU/j0e1wwiJNPtPEax9Y5Uoza0Pnt -Ikzkc2SfvQ+IJrhXo385tI0W5juuqbHnE7UrjUuPjUX6NHevkxcs/flmjan5wnZM -cPsGhH71WDuUEEflvZihf2Se2x+xgZtMhc5XGmVmRuZFYKvkgUhA2/w8/QrK+jPT -n9QRJxZjWNh2RBdC1B7u4jffSmOSUljYFH1I2eTeY+Rdi6YUIYSU9gEoZxsv3Tia -SomfMF5jt2Mouo6MzA+IhLvvFjcrcph1Qxgi9RkfdCMMd+Ipm9YWELkyG1bDRpQy -0iyHD4gvVsAqz1Y2KdRSdc3Kt+nTqwIDAQABoxkwFzAVBgNVHREEDjAMhwQAAAAA -hwR/AAABMA0GCSqGSIb3DQEBBQUAA4IBAQAhy4J0hML3NgmDRHdL5/iTucBe22Mf -jJjg2aifD1S187dHm+Il4qZNO2plWwAhN0h704f+8wpsaALxUvBIu6nvlvcMP5PH -jGN5JLe2Km3UaPvYOQU2SgacLilu+uBcIo2JSHLV6O7ziqUj5Gior6YxDLCtEZie -Ea8aX5/YjuACtEMJ1JjRqjgkM66XAoUe0E8onOK3FgTIO3tGoTJwRp0zS50pFuP0 -PsZtT04ck6mmXEXXknNoAyBCvPypfms9OHqcUIW9fiQnrGbS/Ri4QSQYj0DtFk/1 -na4fY1gf3zTHxH8259b/TOOaPfTnCEsOQtjUrWNR4xhmVZ+HJy4yytUW ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDbzCCAlcCAmm6MA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAlVTMQswCQYD -VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n -TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv -bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMH0xCzAJ -BgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZ -MBcGA1UECgwQU3Ryb25nTG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRow -GAYDVQQDDBFjYS5zdHJvbmdsb29wLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBANfj86jkvvYDjHBgiqWhk9Cj+bqiMq3MqnV0CBO4iuK33Fo6XssE -H+yVdXlIBFbFe6t655MdBVOR2Sfj7WqNh96vhu6PyDHiwcQlTaiLU6nhIed1J4Wv -lvnJHFmp8Wbtx5AgLT4UYu03ftvXEl2DLi3vhSL2tRM1ebXHB/KPbRWkb25DPX0P -foOHot3f2dgNe2x6kponf7E/QDmAu3s7Nlkfh+ryDhgGU7wocXEhXbprNqRqOGNo -xbXgUI+/9XDxYT/7Gn5LF/fPjtN+aB0SKMnTsDhprVlZie83mlqJ46fOOrR+vrsQ -mi/1m/TadrARtZoIExC/cQRdVM05EK4tUa8CAwEAATANBgkqhkiG9w0BAQsFAAOC -AQEAQ7k5WhyhDTIGYCNzRnrMHWSzGqa1y4tJMW06wafJNRqTm1cthq1ibc6Hfq5a -K10K0qMcgauRTfQ1MWrVCTW/KnJ1vkhiTOH+RvxapGn84gSaRmV6KZen0+gMsgae -KEGe/3Hn+PmDVV+PTamHgPACfpTww38WHIe/7Ce9gHfG7MZ8cKHNZhDy0IAYPln+ -YRwMLd7JNQffHAbWb2CE1mcea4H/12U8JZW5tHCF6y9V+7IuDzqwIrLKcW3lG17n -VUG6ODF/Ryqn3V5X+TL91YyXi6c34y34IpC7MQDV/67U7+5Bp5CfeDPWW2wVSrW+ -uGZtfEvhbNm6m2i4UNmpCXxUZQ== ------END CERTIFICATE----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/ca.crt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/ca.crt deleted file mode 100644 index 9d2755a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/ca.crt +++ /dev/null @@ -1,21 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDbzCCAlcCAmm6MA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAlVTMQswCQYD -VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n -TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv -bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMH0xCzAJ -BgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZ -MBcGA1UECgwQU3Ryb25nTG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRow -GAYDVQQDDBFjYS5zdHJvbmdsb29wLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBANfj86jkvvYDjHBgiqWhk9Cj+bqiMq3MqnV0CBO4iuK33Fo6XssE -H+yVdXlIBFbFe6t655MdBVOR2Sfj7WqNh96vhu6PyDHiwcQlTaiLU6nhIed1J4Wv -lvnJHFmp8Wbtx5AgLT4UYu03ftvXEl2DLi3vhSL2tRM1ebXHB/KPbRWkb25DPX0P -foOHot3f2dgNe2x6kponf7E/QDmAu3s7Nlkfh+ryDhgGU7wocXEhXbprNqRqOGNo -xbXgUI+/9XDxYT/7Gn5LF/fPjtN+aB0SKMnTsDhprVlZie83mlqJ46fOOrR+vrsQ -mi/1m/TadrARtZoIExC/cQRdVM05EK4tUa8CAwEAATANBgkqhkiG9w0BAQsFAAOC -AQEAQ7k5WhyhDTIGYCNzRnrMHWSzGqa1y4tJMW06wafJNRqTm1cthq1ibc6Hfq5a -K10K0qMcgauRTfQ1MWrVCTW/KnJ1vkhiTOH+RvxapGn84gSaRmV6KZen0+gMsgae -KEGe/3Hn+PmDVV+PTamHgPACfpTww38WHIe/7Ce9gHfG7MZ8cKHNZhDy0IAYPln+ -YRwMLd7JNQffHAbWb2CE1mcea4H/12U8JZW5tHCF6y9V+7IuDzqwIrLKcW3lG17n -VUG6ODF/Ryqn3V5X+TL91YyXi6c34y34IpC7MQDV/67U7+5Bp5CfeDPWW2wVSrW+ -uGZtfEvhbNm6m2i4UNmpCXxUZQ== ------END CERTIFICATE----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/server.crt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/server.crt deleted file mode 100644 index fe13bb96..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/server.crt +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDJjCCAg4CAhnOMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAlVTMQswCQYD -VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n -TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv -bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMBkxFzAV -BgNVBAMMDnN0cm9uZ2xvb3AuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAwOYI7OZ2FX/YjRgLZoDQlbPc5UZXU/j0e1wwiJNPtPEax9Y5Uoza0Pnt -Ikzkc2SfvQ+IJrhXo385tI0W5juuqbHnE7UrjUuPjUX6NHevkxcs/flmjan5wnZM -cPsGhH71WDuUEEflvZihf2Se2x+xgZtMhc5XGmVmRuZFYKvkgUhA2/w8/QrK+jPT -n9QRJxZjWNh2RBdC1B7u4jffSmOSUljYFH1I2eTeY+Rdi6YUIYSU9gEoZxsv3Tia -SomfMF5jt2Mouo6MzA+IhLvvFjcrcph1Qxgi9RkfdCMMd+Ipm9YWELkyG1bDRpQy -0iyHD4gvVsAqz1Y2KdRSdc3Kt+nTqwIDAQABoxkwFzAVBgNVHREEDjAMhwQAAAAA -hwR/AAABMA0GCSqGSIb3DQEBBQUAA4IBAQAhy4J0hML3NgmDRHdL5/iTucBe22Mf -jJjg2aifD1S187dHm+Il4qZNO2plWwAhN0h704f+8wpsaALxUvBIu6nvlvcMP5PH -jGN5JLe2Km3UaPvYOQU2SgacLilu+uBcIo2JSHLV6O7ziqUj5Gior6YxDLCtEZie -Ea8aX5/YjuACtEMJ1JjRqjgkM66XAoUe0E8onOK3FgTIO3tGoTJwRp0zS50pFuP0 -PsZtT04ck6mmXEXXknNoAyBCvPypfms9OHqcUIW9fiQnrGbS/Ri4QSQYj0DtFk/1 -na4fY1gf3zTHxH8259b/TOOaPfTnCEsOQtjUrWNR4xhmVZ+HJy4yytUW ------END CERTIFICATE----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/server.key b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/server.key deleted file mode 100644 index f8227f4c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/fixtures/server.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDA5gjs5nYVf9iN -GAtmgNCVs9zlRldT+PR7XDCIk0+08RrH1jlSjNrQ+e0iTORzZJ+9D4gmuFejfzm0 -jRbmO66psecTtSuNS4+NRfo0d6+TFyz9+WaNqfnCdkxw+waEfvVYO5QQR+W9mKF/ -ZJ7bH7GBm0yFzlcaZWZG5kVgq+SBSEDb/Dz9Csr6M9Of1BEnFmNY2HZEF0LUHu7i -N99KY5JSWNgUfUjZ5N5j5F2LphQhhJT2AShnGy/dOJpKiZ8wXmO3Yyi6jozMD4iE -u+8WNytymHVDGCL1GR90Iwx34imb1hYQuTIbVsNGlDLSLIcPiC9WwCrPVjYp1FJ1 -zcq36dOrAgMBAAECggEACg60Xm2xsHNG/ixHw+NpfLSxCr89JGKxlJD88tIDcOK1 -S8AOoxA3BHhTddteeenALmJV7fbkkuC6SICmtgBcnfppmuxyRd6vsGT6o6ut2tR1 -gxRy1WYMYKg8WhOshlH8RspscODeyKDhorvDUJd5cNGBDuTwQ68PwxiUe3La6iac -EVQoKohg9EmRIhMF1i8I00zXE8p3XENrlTc491ipc+gLPIP5vtqHyQztEUkZHkWd -dXbs+n1hGCr+4FxrphGYEW80HINzmume7dGChr8nvF4ZZcuWW13DJuNim6pQno1i -hM8VdXm8XphLh0XEGI5OCfu/CetkBILZRXKltZk6AQKBgQDoBqJzRlp7regYNU4q -usfS+43tPNaJ0o4DIzcLawqpmK/B/cZStzHl14Sm62BVkKV6cnWAJPeLkENPMFoV -7Q7wLZBJxpPzqXkpeiDkKN4Wovca891Rffne5Sz6IDB5mOxMjfKIEPd5RkmB5Lkp -qQLwm3YJ2AJcLagG/Gi1DFDRAQKBgQDU1G9T43Mjke6TXG0u7gCSb+VwyDRsrvJA -u2vy6+MANRc1EEF31YLmTKOU5XxUmhtIu7TUbgPoNi0HuRFXx4Zul3BPlAosLMJv -kNQbA/9d0YQAfSgTsploN5CX65dLZ4ejIzVgDZREzpIBWTze6YZTA2DT5iOIet84 -DD5DujY4qwKBgG0PuUo/9oYOD3tZiv1wwD5+uY6auykbTF9TLStzzBY9y9d+hrsY -mx6zOAoRtz1g+TdeF7b9KVJzo//T9XQ68nuYnyreaWrt7SK+4jj8sK+pOEd1+0Cz -20CXLpX/jWmKpP+y9R5aA0kA7cpdjV90rwoTuN8Vpr5XQ5TNDhaTzGUBAoGABYig -fGXlkH8y3NICZL37ddNC+/O4qTrDQbudyusnM9ItkEuj6CG9DY/gkPaGjQyUuQdo -ZD2YDGmcMh81vDqL3ERDv03yFcP0KkJxwWIRObdA32JhsGFsa7FGKS0O+f7vH+bC -dITl3gQg97gCRSl9PJtR4TCSq/HF7Acld01YK5ECgYEAwLFB5JIuxrowJe74cCMP -n5Rwuc8vWdOsg+ytvQTv0/hVCdzcaLet6YvagnWTWaU7PUwTFxZs/mLQ9CAWVutK -IRzs/GWxGFjH5xotDaJdDDzSdQye4tUqvUVxv7zzzsVycCPBYFkyRQ8Tmr5FLtUJ -Cl48TZ6J8Rx5avjdtOw3QC8= ------END PRIVATE KEY----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/simple-proxy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/simple-proxy.js deleted file mode 100644 index e55330c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/simple-proxy.js +++ /dev/null @@ -1,24 +0,0 @@ -var http = require('http') - , https = require('https') - , server = http.createServer(handler) - , port = +process.argv[2] - , prefix = process.argv[3] - , upstream = process.argv[4] - , calls = 0 - -server.listen(port) - -function handler (req, res) { - if (req.url.indexOf(prefix) != 0) - throw new Error('request url [' + req.url + '] does not start with [' + prefix + ']') - - var upstreamUrl = upstream + req.url.substring(prefix.length) - console.log(req.url + ' -> ' + upstreamUrl) - https.get(upstreamUrl, function (ures) { - ures.on('end', function () { - if (++calls == 2) - server.close() - }) - ures.pipe(res) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-download.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-download.js deleted file mode 100644 index 6e6f64f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-download.js +++ /dev/null @@ -1,102 +0,0 @@ -'use strict' - -var fs = require('fs') -var http = require('http') -var https = require('https') -var test = require('tape') -var install = require('../lib/install') - -test('download over http', function (t) { - t.plan(2) - - var server = http.createServer(function (req, res) { - t.strictEqual(req.headers['user-agent'], - 'node-gyp v42 (node ' + process.version + ')') - res.end('ok') - server.close() - }) - - var host = '127.0.0.1' - server.listen(0, host, function () { - var port = this.address().port - var gyp = { - opts: {}, - version: '42', - } - var url = 'http://' + host + ':' + port - var req = install.test.download(gyp, {}, url) - req.on('response', function (res) { - var body = '' - res.setEncoding('utf8') - res.on('data', function(data) { - body += data - }) - res.on('end', function() { - t.strictEqual(body, 'ok') - }) - }) - }) -}) - -test('download over https with custom ca', function (t) { - t.plan(3) - - var cert = fs.readFileSync(__dirname + '/fixtures/server.crt', 'utf8') - var key = fs.readFileSync(__dirname + '/fixtures/server.key', 'utf8') - - var cafile = __dirname + '/fixtures/ca.crt' - var ca = install.test.readCAFile(cafile) - t.strictEqual(ca.length, 1) - - var options = { ca: ca, cert: cert, key: key } - var server = https.createServer(options, function (req, res) { - t.strictEqual(req.headers['user-agent'], - 'node-gyp v42 (node ' + process.version + ')') - res.end('ok') - server.close() - }) - - server.on('clientError', function (err) { - throw err - }) - - var host = '127.0.0.1' - server.listen(8000, host, function () { - var port = this.address().port - var gyp = { - opts: { cafile: cafile }, - version: '42', - } - var url = 'https://' + host + ':' + port - var req = install.test.download(gyp, {}, url) - req.on('response', function (res) { - var body = '' - res.setEncoding('utf8') - res.on('data', function(data) { - body += data - }) - res.on('end', function() { - t.strictEqual(body, 'ok') - }) - }) - }) -}) - -test('download with missing cafile', function (t) { - t.plan(1) - var gyp = { - opts: { cafile: 'no.such.file' }, - } - try { - install.test.download(gyp, {}, 'http://bad/') - } catch (e) { - t.ok(/no.such.file/.test(e.message)) - } -}) - -test('check certificate splitting', function (t) { - var cas = install.test.readCAFile(__dirname + '/fixtures/ca-bundle.crt') - t.plan(2) - t.strictEqual(cas.length, 2) - t.notStrictEqual(cas[0], cas[1]) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-find-node-directory.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-find-node-directory.js deleted file mode 100644 index 46659d0c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-find-node-directory.js +++ /dev/null @@ -1,115 +0,0 @@ -var test = require('tape') -var path = require('path') -var findNodeDirectory = require('../lib/find-node-directory') - -var platforms = ['darwin', 'freebsd', 'linux', 'sunos', 'win32', 'aix'] - -// we should find the directory based on the directory -// the script is running in and it should match the layout -// in a build tree where npm is installed in -// .... /deps/npm -test('test find-node-directory - node install', function (t) { - t.plan(platforms.length) - for (var next = 0; next < platforms.length; next++) { - var processObj = {execPath: '/x/y/bin/node', platform: platforms[next]} - t.equal( - findNodeDirectory('/x/deps/npm/node_modules/node-gyp/lib', processObj), - path.join('/x')) - } -}) - -// we should find the directory based on the directory -// the script is running in and it should match the layout -// in an installed tree where npm is installed in -// .... /lib/node_modules/npm or .../node_modules/npm -// depending on the patform -test('test find-node-directory - node build', function (t) { - t.plan(platforms.length) - for (var next = 0; next < platforms.length; next++) { - var processObj = {execPath: '/x/y/bin/node', platform: platforms[next]} - if (platforms[next] === 'win32') { - t.equal( - findNodeDirectory('/y/node_modules/npm/node_modules/node-gyp/lib', - processObj), path.join('/y')) - } else { - t.equal( - findNodeDirectory('/y/lib/node_modules/npm/node_modules/node-gyp/lib', - processObj), path.join('/y')) - } - } -}) - -// we should find the directory based on the execPath -// for node and match because it was in the bin directory -test('test find-node-directory - node in bin directory', function (t) { - t.plan(platforms.length) - for (var next = 0; next < platforms.length; next++) { - var processObj = {execPath: '/x/y/bin/node', platform: platforms[next]} - t.equal( - findNodeDirectory('/nothere/npm/node_modules/node-gyp/lib', processObj), - path.join('/x/y')) - } -}) - -// we should find the directory based on the execPath -// for node and match because it was in the Release directory -test('test find-node-directory - node in build release dir', function (t) { - t.plan(platforms.length) - for (var next = 0; next < platforms.length; next++) { - var processObj - if (platforms[next] === 'win32') { - processObj = {execPath: '/x/y/Release/node', platform: platforms[next]} - } else { - processObj = {execPath: '/x/y/out/Release/node', - platform: platforms[next]} - } - - t.equal( - findNodeDirectory('/nothere/npm/node_modules/node-gyp/lib', processObj), - path.join('/x/y')) - } -}) - -// we should find the directory based on the execPath -// for node and match because it was in the Debug directory -test('test find-node-directory - node in Debug release dir', function (t) { - t.plan(platforms.length) - for (var next = 0; next < platforms.length; next++) { - var processObj - if (platforms[next] === 'win32') { - processObj = {execPath: '/a/b/Debug/node', platform: platforms[next]} - } else { - processObj = {execPath: '/a/b/out/Debug/node', platform: platforms[next]} - } - - t.equal( - findNodeDirectory('/nothere/npm/node_modules/node-gyp/lib', processObj), - path.join('/a/b')) - } -}) - -// we should not find it as it will not match based on the execPath nor -// the directory from which the script is running -test('test find-node-directory - not found', function (t) { - t.plan(platforms.length) - for (var next = 0; next < platforms.length; next++) { - var processObj = {execPath: '/x/y/z/y', platform:next} - t.equal(findNodeDirectory('/a/b/c/d', processObj), '') - } -}) - -// we should find the directory based on the directory -// the script is running in and it should match the layout -// in a build tree where npm is installed in -// .... /deps/npm -// same test as above but make sure additional directory entries -// don't cause an issue -test('test find-node-directory - node install', function (t) { - t.plan(platforms.length) - for (var next = 0; next < platforms.length; next++) { - var processObj = {execPath: '/x/y/bin/node', platform: platforms[next]} - t.equal( - findNodeDirectory('/x/y/z/a/b/c/deps/npm/node_modules/node-gyp/lib', - processObj), path.join('/x/y/z/a/b/c')) - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-find-python.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-find-python.js deleted file mode 100644 index 7f5c3946..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-find-python.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict' - -var test = require('tape') -var configure = require('../lib/configure') -var execFile = require('child_process').execFile - -test('find python executable', function (t) { - t.plan(4) - - configure.test.findPython('python', function (err, found) { - t.strictEqual(err, null) - var proc = execFile(found, ['-V'], function (err, stdout, stderr) { - t.strictEqual(err, null) - t.strictEqual(stdout, '') - t.ok(/Python 2/.test(stderr)) - }) - proc.stdout.setEncoding('utf-8') - proc.stderr.setEncoding('utf-8') - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-options.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-options.js deleted file mode 100644 index d097f81b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-options.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var test = require('tape') -var gyp = require('../lib/node-gyp') - -test('options in environment', function (t) { - t.plan(1) - - // `npm test` dumps a ton of npm_config_* variables in the environment. - Object.keys(process.env) - .filter(function(key) { return /^npm_config_/.test(key) }) - .forEach(function(key) { delete process.env[key] }) - - // Zero-length keys should get filtered out. - process.env.npm_config_ = '42' - // Other keys should get added. - process.env.npm_config_x = '42' - // Except loglevel. - process.env.npm_config_loglevel = 'debug' - - var g = gyp(); - g.parseArgv(['rebuild']) // Also sets opts.argv. - - t.deepEqual(Object.keys(g.opts).sort(), ['argv', 'x']) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-process-release.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-process-release.js deleted file mode 100644 index 48411ae0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/node-gyp/test/test-process-release.js +++ /dev/null @@ -1,637 +0,0 @@ -var test = require('tape') -var processRelease = require('../lib/process-release') - -test('test process release - process.version = 0.8.20', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v0.8.20', null) - - t.equal(release.semver.version, '0.8.20') - delete release.semver - - t.deepEqual(release, { - version: '0.8.20', - name: 'node', - baseUrl: 'https://nodejs.org/dist/v0.8.20/', - tarballUrl: 'https://nodejs.org/dist/v0.8.20/node-v0.8.20.tar.gz', - shasumsUrl: 'https://nodejs.org/dist/v0.8.20/SHASUMS256.txt', - versionDir: '0.8.20', - libUrl32: 'https://nodejs.org/dist/v0.8.20/node.lib', - libUrl64: 'https://nodejs.org/dist/v0.8.20/x64/node.lib', - libPath32: 'node.lib', - libPath64: 'x64/node.lib' - }) -}) - -test('test process release - process.version = 0.10.21', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v0.10.21', null) - - t.equal(release.semver.version, '0.10.21') - delete release.semver - - t.deepEqual(release, { - version: '0.10.21', - name: 'node', - baseUrl: 'https://nodejs.org/dist/v0.10.21/', - tarballUrl: 'https://nodejs.org/dist/v0.10.21/node-v0.10.21.tar.gz', - shasumsUrl: 'https://nodejs.org/dist/v0.10.21/SHASUMS256.txt', - versionDir: '0.10.21', - libUrl32: 'https://nodejs.org/dist/v0.10.21/node.lib', - libUrl64: 'https://nodejs.org/dist/v0.10.21/x64/node.lib', - libPath32: 'node.lib', - libPath64: 'x64/node.lib' - }) -}) - -// prior to -headers.tar.gz -test('test process release - process.version = 0.12.9', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v0.12.9', null) - - t.equal(release.semver.version, '0.12.9') - delete release.semver - - t.deepEqual(release, { - version: '0.12.9', - name: 'node', - baseUrl: 'https://nodejs.org/dist/v0.12.9/', - tarballUrl: 'https://nodejs.org/dist/v0.12.9/node-v0.12.9.tar.gz', - shasumsUrl: 'https://nodejs.org/dist/v0.12.9/SHASUMS256.txt', - versionDir: '0.12.9', - libUrl32: 'https://nodejs.org/dist/v0.12.9/node.lib', - libUrl64: 'https://nodejs.org/dist/v0.12.9/x64/node.lib', - libPath32: 'node.lib', - libPath64: 'x64/node.lib' - }) -}) - -// prior to -headers.tar.gz -test('test process release - process.version = 0.10.41', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v0.10.41', null) - - t.equal(release.semver.version, '0.10.41') - delete release.semver - - t.deepEqual(release, { - version: '0.10.41', - name: 'node', - baseUrl: 'https://nodejs.org/dist/v0.10.41/', - tarballUrl: 'https://nodejs.org/dist/v0.10.41/node-v0.10.41.tar.gz', - shasumsUrl: 'https://nodejs.org/dist/v0.10.41/SHASUMS256.txt', - versionDir: '0.10.41', - libUrl32: 'https://nodejs.org/dist/v0.10.41/node.lib', - libUrl64: 'https://nodejs.org/dist/v0.10.41/x64/node.lib', - libPath32: 'node.lib', - libPath64: 'x64/node.lib' - }) -}) - -// has -headers.tar.gz -test('test process release - process.release ~ node@0.10.42', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v0.10.42', null) - - t.equal(release.semver.version, '0.10.42') - delete release.semver - - t.deepEqual(release, { - version: '0.10.42', - name: 'node', - baseUrl: 'https://nodejs.org/dist/v0.10.42/', - tarballUrl: 'https://nodejs.org/dist/v0.10.42/node-v0.10.42-headers.tar.gz', - shasumsUrl: 'https://nodejs.org/dist/v0.10.42/SHASUMS256.txt', - versionDir: '0.10.42', - libUrl32: 'https://nodejs.org/dist/v0.10.42/node.lib', - libUrl64: 'https://nodejs.org/dist/v0.10.42/x64/node.lib', - libPath32: 'node.lib', - libPath64: 'x64/node.lib' - }) -}) - -// has -headers.tar.gz -test('test process release - process.release ~ node@0.12.10', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v0.12.10', null) - - t.equal(release.semver.version, '0.12.10') - delete release.semver - - t.deepEqual(release, { - version: '0.12.10', - name: 'node', - baseUrl: 'https://nodejs.org/dist/v0.12.10/', - tarballUrl: 'https://nodejs.org/dist/v0.12.10/node-v0.12.10-headers.tar.gz', - shasumsUrl: 'https://nodejs.org/dist/v0.12.10/SHASUMS256.txt', - versionDir: '0.12.10', - libUrl32: 'https://nodejs.org/dist/v0.12.10/node.lib', - libUrl64: 'https://nodejs.org/dist/v0.12.10/x64/node.lib', - libPath32: 'node.lib', - libPath64: 'x64/node.lib' - }) -}) - -test('test process release - process.release ~ node@4.1.23', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v4.1.23', { - name: 'node', - headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz' - }) - - t.equal(release.semver.version, '4.1.23') - delete release.semver - - t.deepEqual(release, { - version: '4.1.23', - name: 'node', - baseUrl: 'https://nodejs.org/dist/v4.1.23/', - tarballUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz', - shasumsUrl: 'https://nodejs.org/dist/v4.1.23/SHASUMS256.txt', - versionDir: '4.1.23', - libUrl32: 'https://nodejs.org/dist/v4.1.23/win-x86/node.lib', - libUrl64: 'https://nodejs.org/dist/v4.1.23/win-x64/node.lib', - libPath32: 'win-x86/node.lib', - libPath64: 'win-x64/node.lib' - }) -}) - -test('test process release - process.release ~ node@4.1.23 / corp build', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v4.1.23', { - name: 'node', - headersUrl: 'https://some.custom.location/node-v4.1.23-headers.tar.gz' - }) - - t.equal(release.semver.version, '4.1.23') - delete release.semver - - t.deepEqual(release, { - version: '4.1.23', - name: 'node', - baseUrl: 'https://some.custom.location/', - tarballUrl: 'https://some.custom.location/node-v4.1.23-headers.tar.gz', - shasumsUrl: 'https://some.custom.location/SHASUMS256.txt', - versionDir: '4.1.23', - libUrl32: 'https://some.custom.location/win-x86/node.lib', - libUrl64: 'https://some.custom.location/win-x64/node.lib', - libPath32: 'win-x86/node.lib', - libPath64: 'win-x64/node.lib' - }) -}) - -test('test process release - process.version = 1.8.4', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v1.8.4', null) - - t.equal(release.semver.version, '1.8.4') - delete release.semver - - t.deepEqual(release, { - version: '1.8.4', - name: 'iojs', - baseUrl: 'https://iojs.org/download/release/v1.8.4/', - tarballUrl: 'https://iojs.org/download/release/v1.8.4/iojs-v1.8.4.tar.gz', - shasumsUrl: 'https://iojs.org/download/release/v1.8.4/SHASUMS256.txt', - versionDir: 'iojs-1.8.4', - libUrl32: 'https://iojs.org/download/release/v1.8.4/win-x86/iojs.lib', - libUrl64: 'https://iojs.org/download/release/v1.8.4/win-x64/iojs.lib', - libPath32: 'win-x86/iojs.lib', - libPath64: 'win-x64/iojs.lib' - }) -}) - -test('test process release - process.release ~ iojs@3.2.24', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v3.2.24', { - name: 'io.js', - headersUrl: 'https://iojs.org/download/release/v3.2.24/iojs-v3.2.24-headers.tar.gz' - }) - - t.equal(release.semver.version, '3.2.24') - delete release.semver - - t.deepEqual(release, { - version: '3.2.24', - name: 'iojs', - baseUrl: 'https://iojs.org/download/release/v3.2.24/', - tarballUrl: 'https://iojs.org/download/release/v3.2.24/iojs-v3.2.24-headers.tar.gz', - shasumsUrl: 'https://iojs.org/download/release/v3.2.24/SHASUMS256.txt', - versionDir: 'iojs-3.2.24', - libUrl32: 'https://iojs.org/download/release/v3.2.24/win-x86/iojs.lib', - libUrl64: 'https://iojs.org/download/release/v3.2.24/win-x64/iojs.lib', - libPath32: 'win-x86/iojs.lib', - libPath64: 'win-x64/iojs.lib' - }) -}) - -test('test process release - process.release ~ iojs@3.2.11 +libUrl32', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v3.2.11', { - name: 'io.js', - headersUrl: 'https://iojs.org/download/release/v3.2.11/iojs-v3.2.11-headers.tar.gz', - libUrl: 'https://iojs.org/download/release/v3.2.11/win-x86/iojs.lib' // custom - }) - - t.equal(release.semver.version, '3.2.11') - delete release.semver - - t.deepEqual(release, { - version: '3.2.11', - name: 'iojs', - baseUrl: 'https://iojs.org/download/release/v3.2.11/', - tarballUrl: 'https://iojs.org/download/release/v3.2.11/iojs-v3.2.11-headers.tar.gz', - shasumsUrl: 'https://iojs.org/download/release/v3.2.11/SHASUMS256.txt', - versionDir: 'iojs-3.2.11', - libUrl32: 'https://iojs.org/download/release/v3.2.11/win-x86/iojs.lib', - libUrl64: 'https://iojs.org/download/release/v3.2.11/win-x64/iojs.lib', - libPath32: 'win-x86/iojs.lib', - libPath64: 'win-x64/iojs.lib' - }) -}) - -test('test process release - process.release ~ iojs@3.2.101 +libUrl64', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v3.2.101', { - name: 'io.js', - headersUrl: 'https://iojs.org/download/release/v3.2.101/iojs-v3.2.101-headers.tar.gz', - libUrl: 'https://iojs.org/download/release/v3.2.101/win-x64/iojs.lib' // custom - }) - - t.equal(release.semver.version, '3.2.101') - delete release.semver - - t.deepEqual(release, { - version: '3.2.101', - name: 'iojs', - baseUrl: 'https://iojs.org/download/release/v3.2.101/', - tarballUrl: 'https://iojs.org/download/release/v3.2.101/iojs-v3.2.101-headers.tar.gz', - shasumsUrl: 'https://iojs.org/download/release/v3.2.101/SHASUMS256.txt', - versionDir: 'iojs-3.2.101', - libUrl32: 'https://iojs.org/download/release/v3.2.101/win-x86/iojs.lib', - libUrl64: 'https://iojs.org/download/release/v3.2.101/win-x64/iojs.lib', - libPath32: 'win-x86/iojs.lib', - libPath64: 'win-x64/iojs.lib' - }) -}) - -test('test process release - process.release ~ iojs@3.3.0 - borked win-ia32', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v3.2.101', { - name: 'io.js', - headersUrl: 'https://iojs.org/download/release/v3.2.101/iojs-v3.2.101-headers.tar.gz', - libUrl: 'https://iojs.org/download/release/v3.2.101/win-ia32/iojs.lib' // custom - }) - - t.equal(release.semver.version, '3.2.101') - delete release.semver - - t.deepEqual(release, { - version: '3.2.101', - name: 'iojs', - baseUrl: 'https://iojs.org/download/release/v3.2.101/', - tarballUrl: 'https://iojs.org/download/release/v3.2.101/iojs-v3.2.101-headers.tar.gz', - shasumsUrl: 'https://iojs.org/download/release/v3.2.101/SHASUMS256.txt', - versionDir: 'iojs-3.2.101', - libUrl32: 'https://iojs.org/download/release/v3.2.101/win-x86/iojs.lib', - libUrl64: 'https://iojs.org/download/release/v3.2.101/win-x64/iojs.lib', - libPath32: 'win-x86/iojs.lib', - libPath64: 'win-x64/iojs.lib' - }) -}) - -test('test process release - process.release ~ node@4.1.23 --target=0.10.40', function (t) { - t.plan(2) - - var release = processRelease([], { opts: { target: '0.10.40' } }, 'v4.1.23', { - name: 'node', - headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz' - }) - - t.equal(release.semver.version, '0.10.40') - delete release.semver - - t.deepEqual(release, { - version: '0.10.40', - name: 'node', - baseUrl: 'https://nodejs.org/dist/v0.10.40/', - tarballUrl: 'https://nodejs.org/dist/v0.10.40/node-v0.10.40.tar.gz', - shasumsUrl: 'https://nodejs.org/dist/v0.10.40/SHASUMS256.txt', - versionDir: '0.10.40', - libUrl32: 'https://nodejs.org/dist/v0.10.40/node.lib', - libUrl64: 'https://nodejs.org/dist/v0.10.40/x64/node.lib', - libPath32: 'node.lib', - libPath64: 'x64/node.lib' - }) -}) - -test('test process release - process.release ~ node@4.1.23 --target=1.8.4', function (t) { - t.plan(2) - - var release = processRelease([], { opts: { target: '1.8.4' } }, 'v4.1.23', { - name: 'node', - headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz' - }) - - t.equal(release.semver.version, '1.8.4') - delete release.semver - - t.deepEqual(release, { - version: '1.8.4', - name: 'iojs', - baseUrl: 'https://iojs.org/download/release/v1.8.4/', - tarballUrl: 'https://iojs.org/download/release/v1.8.4/iojs-v1.8.4.tar.gz', - shasumsUrl: 'https://iojs.org/download/release/v1.8.4/SHASUMS256.txt', - versionDir: 'iojs-1.8.4', - libUrl32: 'https://iojs.org/download/release/v1.8.4/win-x86/iojs.lib', - libUrl64: 'https://iojs.org/download/release/v1.8.4/win-x64/iojs.lib', - libPath32: 'win-x86/iojs.lib', - libPath64: 'win-x64/iojs.lib' - }) -}) - -test('test process release - process.release ~ node@4.1.23 --dist-url=https://foo.bar/baz', function (t) { - t.plan(2) - - var release = processRelease([], { opts: { 'dist-url': 'https://foo.bar/baz' } }, 'v4.1.23', { - name: 'node', - headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz' - }) - - t.equal(release.semver.version, '4.1.23') - delete release.semver - - t.deepEqual(release, { - version: '4.1.23', - name: 'node', - baseUrl: 'https://foo.bar/baz/v4.1.23/', - tarballUrl: 'https://foo.bar/baz/v4.1.23/node-v4.1.23-headers.tar.gz', - shasumsUrl: 'https://foo.bar/baz/v4.1.23/SHASUMS256.txt', - versionDir: '4.1.23', - libUrl32: 'https://foo.bar/baz/v4.1.23/win-x86/node.lib', - libUrl64: 'https://foo.bar/baz/v4.1.23/win-x64/node.lib', - libPath32: 'win-x86/node.lib', - libPath64: 'win-x64/node.lib' - }) -}) - -test('test process release - process.release ~ frankenstein@4.1.23', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v4.1.23', { - name: 'frankenstein', - headersUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23-headers.tar.gz' - }) - - t.equal(release.semver.version, '4.1.23') - delete release.semver - - t.deepEqual(release, { - version: '4.1.23', - name: 'frankenstein', - baseUrl: 'https://frankensteinjs.org/dist/v4.1.23/', - tarballUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23-headers.tar.gz', - shasumsUrl: 'https://frankensteinjs.org/dist/v4.1.23/SHASUMS256.txt', - versionDir: 'frankenstein-4.1.23', - libUrl32: 'https://frankensteinjs.org/dist/v4.1.23/win-x86/frankenstein.lib', - libUrl64: 'https://frankensteinjs.org/dist/v4.1.23/win-x64/frankenstein.lib', - libPath32: 'win-x86/frankenstein.lib', - libPath64: 'win-x64/frankenstein.lib' - }) -}) - - -test('test process release - process.release ~ frankenstein@4.1.23 --dist-url=http://foo.bar/baz/', function (t) { - t.plan(2) - - var release = processRelease([], { opts: { 'dist-url': 'http://foo.bar/baz/' } }, 'v4.1.23', { - name: 'frankenstein', - headersUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23.tar.gz' - }) - - t.equal(release.semver.version, '4.1.23') - delete release.semver - - t.deepEqual(release, { - version: '4.1.23', - name: 'frankenstein', - baseUrl: 'http://foo.bar/baz/v4.1.23/', - tarballUrl: 'http://foo.bar/baz/v4.1.23/frankenstein-v4.1.23-headers.tar.gz', - shasumsUrl: 'http://foo.bar/baz/v4.1.23/SHASUMS256.txt', - versionDir: 'frankenstein-4.1.23', - libUrl32: 'http://foo.bar/baz/v4.1.23/win-x86/frankenstein.lib', - libUrl64: 'http://foo.bar/baz/v4.1.23/win-x64/frankenstein.lib', - libPath32: 'win-x86/frankenstein.lib', - libPath64: 'win-x64/frankenstein.lib' - }) -}) - -test('test process release - process.release ~ node@4.0.0-rc.4', function (t) { - t.plan(2) - - var release = processRelease([], { opts: {} }, 'v4.0.0-rc.4', { - name: 'node', - headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz' - }) - - t.equal(release.semver.version, '4.0.0-rc.4') - delete release.semver - - t.deepEqual(release, { - version: '4.0.0-rc.4', - name: 'node', - baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/', - tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz', - shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt', - versionDir: '4.0.0-rc.4', - libUrl32: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', - libUrl64: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', - libPath32: 'win-x86/node.lib', - libPath64: 'win-x64/node.lib' - }) -}) - - -test('test process release - process.release ~ node@4.0.0-rc.4 passed as argv[0]', function (t) { - t.plan(2) - - // note the missing 'v' on the arg, it should normalise when checking - // whether we're on the default or not - var release = processRelease([ '4.0.0-rc.4' ], { opts: {} }, 'v4.0.0-rc.4', { - name: 'node', - headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz' - }) - - t.equal(release.semver.version, '4.0.0-rc.4') - delete release.semver - - t.deepEqual(release, { - version: '4.0.0-rc.4', - name: 'node', - baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/', - tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz', - shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt', - versionDir: '4.0.0-rc.4', - libUrl32: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', - libUrl64: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', - libPath32: 'win-x86/node.lib', - libPath64: 'win-x64/node.lib' - }) -}) - - -test('test process release - process.release ~ node@4.0.0-rc.4 - bogus string passed as argv[0]', function (t) { - t.plan(2) - - // additional arguments can be passed in on the commandline that should be ignored if they - // are not specifying a valid version @ position 0 - var release = processRelease([ 'this is no version!' ], { opts: {} }, 'v4.0.0-rc.4', { - name: 'node', - headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz' - }) - - t.equal(release.semver.version, '4.0.0-rc.4') - delete release.semver - - t.deepEqual(release, { - version: '4.0.0-rc.4', - name: 'node', - baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/', - tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz', - shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt', - versionDir: '4.0.0-rc.4', - libUrl32: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', - libUrl64: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', - libPath32: 'win-x86/node.lib', - libPath64: 'win-x64/node.lib' - }) -}) - -test('test process release - NODEJS_ORG_MIRROR', function (t) { - t.plan(2) - - process.env.NODEJS_ORG_MIRROR = 'http://foo.bar' - - var release = processRelease([], { opts: {} }, 'v4.1.23', { - name: 'node', - headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz' - }) - - t.equal(release.semver.version, '4.1.23') - delete release.semver - - t.deepEqual(release, { - version: '4.1.23', - name: 'node', - baseUrl: 'http://foo.bar/v4.1.23/', - tarballUrl: 'http://foo.bar/v4.1.23/node-v4.1.23-headers.tar.gz', - shasumsUrl: 'http://foo.bar/v4.1.23/SHASUMS256.txt', - versionDir: '4.1.23', - libUrl32: 'http://foo.bar/v4.1.23/win-x86/node.lib', - libUrl64: 'http://foo.bar/v4.1.23/win-x64/node.lib', - libPath32: 'win-x86/node.lib', - libPath64: 'win-x64/node.lib' - }) - - delete process.env.NODEJS_ORG_MIRROR -}) - -test('test process release - NVM_NODEJS_ORG_MIRROR', function (t) { - t.plan(2) - - process.env.NVM_NODEJS_ORG_MIRROR = 'http://foo.bar' - - var release = processRelease([], { opts: {} }, 'v4.1.23', { - name: 'node', - headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz' - }) - - t.equal(release.semver.version, '4.1.23') - delete release.semver - - t.deepEqual(release, { - version: '4.1.23', - name: 'node', - baseUrl: 'http://foo.bar/v4.1.23/', - tarballUrl: 'http://foo.bar/v4.1.23/node-v4.1.23-headers.tar.gz', - shasumsUrl: 'http://foo.bar/v4.1.23/SHASUMS256.txt', - versionDir: '4.1.23', - libUrl32: 'http://foo.bar/v4.1.23/win-x86/node.lib', - libUrl64: 'http://foo.bar/v4.1.23/win-x64/node.lib', - libPath32: 'win-x86/node.lib', - libPath64: 'win-x64/node.lib' - }) - - delete process.env.NVM_NODEJS_ORG_MIRROR -}) - -test('test process release - IOJS_ORG_MIRROR', function (t) { - t.plan(2) - - process.env.IOJS_ORG_MIRROR = 'http://foo.bar' - - var release = processRelease([], { opts: {} }, 'v3.2.24', { - name: 'io.js', - headersUrl: 'https://iojs.org/download/release/v3.2.24/iojs-v3.2.24-headers.tar.gz' - }) - - t.equal(release.semver.version, '3.2.24') - delete release.semver - - t.deepEqual(release, { - version: '3.2.24', - name: 'iojs', - baseUrl: 'http://foo.bar/v3.2.24/', - tarballUrl: 'http://foo.bar/v3.2.24/iojs-v3.2.24-headers.tar.gz', - shasumsUrl: 'http://foo.bar/v3.2.24/SHASUMS256.txt', - versionDir: 'iojs-3.2.24', - libUrl32: 'http://foo.bar/v3.2.24/win-x86/iojs.lib', - libUrl64: 'http://foo.bar/v3.2.24/win-x64/iojs.lib', - libPath32: 'win-x86/iojs.lib', - libPath64: 'win-x64/iojs.lib' - }) - - delete process.env.IOJS_ORG_MIRROR -}) - - -test('test process release - NVM_IOJS_ORG_MIRROR', function (t) { - t.plan(2) - - process.env.NVM_IOJS_ORG_MIRROR = 'http://foo.bar' - - var release = processRelease([], { opts: {} }, 'v3.2.24', { - name: 'io.js', - headersUrl: 'https://iojs.org/download/release/v3.2.24/iojs-v3.2.24-headers.tar.gz' - }) - - t.equal(release.semver.version, '3.2.24') - delete release.semver - - t.deepEqual(release, { - version: '3.2.24', - name: 'iojs', - baseUrl: 'http://foo.bar/v3.2.24/', - tarballUrl: 'http://foo.bar/v3.2.24/iojs-v3.2.24-headers.tar.gz', - shasumsUrl: 'http://foo.bar/v3.2.24/SHASUMS256.txt', - versionDir: 'iojs-3.2.24', - libUrl32: 'http://foo.bar/v3.2.24/win-x86/iojs.lib', - libUrl64: 'http://foo.bar/v3.2.24/win-x64/iojs.lib', - libPath32: 'win-x86/iojs.lib', - libPath64: 'win-x64/iojs.lib' - }) - - delete process.env.NVM_IOJS_ORG_MIRROR -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/.travis.yml deleted file mode 100644 index 99f2bbf5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: node_js -language: node_js -node_js: - - '0.8' - - '0.10' - - '0.12' - - 'iojs' -before_install: - - npm install -g npm@latest diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/README.md deleted file mode 100644 index f21a4b31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/README.md +++ /dev/null @@ -1,211 +0,0 @@ -If you want to write an option parser, and have it be good, there are -two ways to do it. The Right Way, and the Wrong Way. - -The Wrong Way is to sit down and write an option parser. We've all done -that. - -The Right Way is to write some complex configurable program with so many -options that you hit the limit of your frustration just trying to -manage them all, and defer it with duct-tape solutions until you see -exactly to the core of the problem, and finally snap and write an -awesome option parser. - -If you want to write an option parser, don't write an option parser. -Write a package manager, or a source control system, or a service -restarter, or an operating system. You probably won't end up with a -good one of those, but if you don't give up, and you are relentless and -diligent enough in your procrastination, you may just end up with a very -nice option parser. - -## USAGE - - // my-program.js - var nopt = require("nopt") - , Stream = require("stream").Stream - , path = require("path") - , knownOpts = { "foo" : [String, null] - , "bar" : [Stream, Number] - , "baz" : path - , "bloo" : [ "big", "medium", "small" ] - , "flag" : Boolean - , "pick" : Boolean - , "many1" : [String, Array] - , "many2" : [path] - } - , shortHands = { "foofoo" : ["--foo", "Mr. Foo"] - , "b7" : ["--bar", "7"] - , "m" : ["--bloo", "medium"] - , "p" : ["--pick"] - , "f" : ["--flag"] - } - // everything is optional. - // knownOpts and shorthands default to {} - // arg list defaults to process.argv - // slice defaults to 2 - , parsed = nopt(knownOpts, shortHands, process.argv, 2) - console.log(parsed) - -This would give you support for any of the following: - -```bash -$ node my-program.js --foo "blerp" --no-flag -{ "foo" : "blerp", "flag" : false } - -$ node my-program.js ---bar 7 --foo "Mr. Hand" --flag -{ bar: 7, foo: "Mr. Hand", flag: true } - -$ node my-program.js --foo "blerp" -f -----p -{ foo: "blerp", flag: true, pick: true } - -$ node my-program.js -fp --foofoo -{ foo: "Mr. Foo", flag: true, pick: true } - -$ node my-program.js --foofoo -- -fp # -- stops the flag parsing. -{ foo: "Mr. Foo", argv: { remain: ["-fp"] } } - -$ node my-program.js --blatzk -fp # unknown opts are ok. -{ blatzk: true, flag: true, pick: true } - -$ node my-program.js --blatzk=1000 -fp # but you need to use = if they have a value -{ blatzk: 1000, flag: true, pick: true } - -$ node my-program.js --no-blatzk -fp # unless they start with "no-" -{ blatzk: false, flag: true, pick: true } - -$ node my-program.js --baz b/a/z # known paths are resolved. -{ baz: "/Users/isaacs/b/a/z" } - -# if Array is one of the types, then it can take many -# values, and will always be an array. The other types provided -# specify what types are allowed in the list. - -$ node my-program.js --many1 5 --many1 null --many1 foo -{ many1: ["5", "null", "foo"] } - -$ node my-program.js --many2 foo --many2 bar -{ many2: ["/path/to/foo", "path/to/bar"] } -``` - -Read the tests at the bottom of `lib/nopt.js` for more examples of -what this puppy can do. - -## Types - -The following types are supported, and defined on `nopt.typeDefs` - -* String: A normal string. No parsing is done. -* path: A file system path. Gets resolved against cwd if not absolute. -* url: A url. If it doesn't parse, it isn't accepted. -* Number: Must be numeric. -* Date: Must parse as a date. If it does, and `Date` is one of the options, - then it will return a Date object, not a string. -* Boolean: Must be either `true` or `false`. If an option is a boolean, - then it does not need a value, and its presence will imply `true` as - the value. To negate boolean flags, do `--no-whatever` or `--whatever - false` -* NaN: Means that the option is strictly not allowed. Any value will - fail. -* Stream: An object matching the "Stream" class in node. Valuable - for use when validating programmatically. (npm uses this to let you - supply any WriteStream on the `outfd` and `logfd` config options.) -* Array: If `Array` is specified as one of the types, then the value - will be parsed as a list of options. This means that multiple values - can be specified, and that the value will always be an array. - -If a type is an array of values not on this list, then those are -considered valid values. For instance, in the example above, the -`--bloo` option can only be one of `"big"`, `"medium"`, or `"small"`, -and any other value will be rejected. - -When parsing unknown fields, `"true"`, `"false"`, and `"null"` will be -interpreted as their JavaScript equivalents. - -You can also mix types and values, or multiple types, in a list. For -instance `{ blah: [Number, null] }` would allow a value to be set to -either a Number or null. When types are ordered, this implies a -preference, and the first type that can be used to properly interpret -the value will be used. - -To define a new type, add it to `nopt.typeDefs`. Each item in that -hash is an object with a `type` member and a `validate` method. The -`type` member is an object that matches what goes in the type list. The -`validate` method is a function that gets called with `validate(data, -key, val)`. Validate methods should assign `data[key]` to the valid -value of `val` if it can be handled properly, or return boolean -`false` if it cannot. - -You can also call `nopt.clean(data, types, typeDefs)` to clean up a -config object and remove its invalid properties. - -## Error Handling - -By default, nopt outputs a warning to standard error when invalid values for -known options are found. You can change this behavior by assigning a method -to `nopt.invalidHandler`. This method will be called with -the offending `nopt.invalidHandler(key, val, types)`. - -If no `nopt.invalidHandler` is assigned, then it will console.error -its whining. If it is assigned to boolean `false` then the warning is -suppressed. - -## Abbreviations - -Yes, they are supported. If you define options like this: - -```javascript -{ "foolhardyelephants" : Boolean -, "pileofmonkeys" : Boolean } -``` - -Then this will work: - -```bash -node program.js --foolhar --pil -node program.js --no-f --pileofmon -# etc. -``` - -## Shorthands - -Shorthands are a hash of shorter option names to a snippet of args that -they expand to. - -If multiple one-character shorthands are all combined, and the -combination does not unambiguously match any other option or shorthand, -then they will be broken up into their constituent parts. For example: - -```json -{ "s" : ["--loglevel", "silent"] -, "g" : "--global" -, "f" : "--force" -, "p" : "--parseable" -, "l" : "--long" -} -``` - -```bash -npm ls -sgflp -# just like doing this: -npm ls --loglevel silent --global --force --long --parseable -``` - -## The Rest of the args - -The config object returned by nopt is given a special member called -`argv`, which is an object with the following fields: - -* `remain`: The remaining args after all the parsing has occurred. -* `original`: The args as they originally appeared. -* `cooked`: The args after flags and shorthands are expanded. - -## Slicing - -Node programs are called with more or less the exact argv as it appears -in C land, after the v8 and node-specific options have been plucked off. -As such, `argv[0]` is always `node` and `argv[1]` is always the -JavaScript program being run. - -That's usually not very useful to you. So they're sliced off by -default. If you want them, then you can pass in `0` as the last -argument, or any other number that you'd like to slice off the start of -the list. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/bin/nopt.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/bin/nopt.js deleted file mode 100755 index 3232d4c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/bin/nopt.js +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env node -var nopt = require("../lib/nopt") - , path = require("path") - , types = { num: Number - , bool: Boolean - , help: Boolean - , list: Array - , "num-list": [Number, Array] - , "str-list": [String, Array] - , "bool-list": [Boolean, Array] - , str: String - , clear: Boolean - , config: Boolean - , length: Number - , file: path - } - , shorthands = { s: [ "--str", "astring" ] - , b: [ "--bool" ] - , nb: [ "--no-bool" ] - , tft: [ "--bool-list", "--no-bool-list", "--bool-list", "true" ] - , "?": ["--help"] - , h: ["--help"] - , H: ["--help"] - , n: [ "--num", "125" ] - , c: ["--config"] - , l: ["--length"] - , f: ["--file"] - } - , parsed = nopt( types - , shorthands - , process.argv - , 2 ) - -console.log("parsed", parsed) - -if (parsed.help) { - console.log("") - console.log("nopt cli tester") - console.log("") - console.log("types") - console.log(Object.keys(types).map(function M (t) { - var type = types[t] - if (Array.isArray(type)) { - return [t, type.map(function (type) { return type.name })] - } - return [t, type && type.name] - }).reduce(function (s, i) { - s[i[0]] = i[1] - return s - }, {})) - console.log("") - console.log("shorthands") - console.log(shorthands) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/examples/my-program.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/examples/my-program.js deleted file mode 100755 index 142447e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/examples/my-program.js +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env node - -//process.env.DEBUG_NOPT = 1 - -// my-program.js -var nopt = require("../lib/nopt") - , Stream = require("stream").Stream - , path = require("path") - , knownOpts = { "foo" : [String, null] - , "bar" : [Stream, Number] - , "baz" : path - , "bloo" : [ "big", "medium", "small" ] - , "flag" : Boolean - , "pick" : Boolean - } - , shortHands = { "foofoo" : ["--foo", "Mr. Foo"] - , "b7" : ["--bar", "7"] - , "m" : ["--bloo", "medium"] - , "p" : ["--pick"] - , "f" : ["--flag", "true"] - , "g" : ["--flag"] - , "s" : "--flag" - } - // everything is optional. - // knownOpts and shorthands default to {} - // arg list defaults to process.argv - // slice defaults to 2 - , parsed = nopt(knownOpts, shortHands, process.argv, 2) - -console.log("parsed =\n"+ require("util").inspect(parsed)) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/lib/nopt.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/lib/nopt.js deleted file mode 100644 index 97707e78..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/lib/nopt.js +++ /dev/null @@ -1,415 +0,0 @@ -// info about each config option. - -var debug = process.env.DEBUG_NOPT || process.env.NOPT_DEBUG - ? function () { console.error.apply(console, arguments) } - : function () {} - -var url = require("url") - , path = require("path") - , Stream = require("stream").Stream - , abbrev = require("abbrev") - -module.exports = exports = nopt -exports.clean = clean - -exports.typeDefs = - { String : { type: String, validate: validateString } - , Boolean : { type: Boolean, validate: validateBoolean } - , url : { type: url, validate: validateUrl } - , Number : { type: Number, validate: validateNumber } - , path : { type: path, validate: validatePath } - , Stream : { type: Stream, validate: validateStream } - , Date : { type: Date, validate: validateDate } - } - -function nopt (types, shorthands, args, slice) { - args = args || process.argv - types = types || {} - shorthands = shorthands || {} - if (typeof slice !== "number") slice = 2 - - debug(types, shorthands, args, slice) - - args = args.slice(slice) - var data = {} - , key - , remain = [] - , cooked = args - , original = args.slice(0) - - parse(args, data, remain, types, shorthands) - // now data is full - clean(data, types, exports.typeDefs) - data.argv = {remain:remain,cooked:cooked,original:original} - Object.defineProperty(data.argv, 'toString', { value: function () { - return this.original.map(JSON.stringify).join(" ") - }, enumerable: false }) - return data -} - -function clean (data, types, typeDefs) { - typeDefs = typeDefs || exports.typeDefs - var remove = {} - , typeDefault = [false, true, null, String, Array] - - Object.keys(data).forEach(function (k) { - if (k === "argv") return - var val = data[k] - , isArray = Array.isArray(val) - , type = types[k] - if (!isArray) val = [val] - if (!type) type = typeDefault - if (type === Array) type = typeDefault.concat(Array) - if (!Array.isArray(type)) type = [type] - - debug("val=%j", val) - debug("types=", type) - val = val.map(function (val) { - // if it's an unknown value, then parse false/true/null/numbers/dates - if (typeof val === "string") { - debug("string %j", val) - val = val.trim() - if ((val === "null" && ~type.indexOf(null)) - || (val === "true" && - (~type.indexOf(true) || ~type.indexOf(Boolean))) - || (val === "false" && - (~type.indexOf(false) || ~type.indexOf(Boolean)))) { - val = JSON.parse(val) - debug("jsonable %j", val) - } else if (~type.indexOf(Number) && !isNaN(val)) { - debug("convert to number", val) - val = +val - } else if (~type.indexOf(Date) && !isNaN(Date.parse(val))) { - debug("convert to date", val) - val = new Date(val) - } - } - - if (!types.hasOwnProperty(k)) { - return val - } - - // allow `--no-blah` to set 'blah' to null if null is allowed - if (val === false && ~type.indexOf(null) && - !(~type.indexOf(false) || ~type.indexOf(Boolean))) { - val = null - } - - var d = {} - d[k] = val - debug("prevalidated val", d, val, types[k]) - if (!validate(d, k, val, types[k], typeDefs)) { - if (exports.invalidHandler) { - exports.invalidHandler(k, val, types[k], data) - } else if (exports.invalidHandler !== false) { - debug("invalid: "+k+"="+val, types[k]) - } - return remove - } - debug("validated val", d, val, types[k]) - return d[k] - }).filter(function (val) { return val !== remove }) - - if (!val.length) delete data[k] - else if (isArray) { - debug(isArray, data[k], val) - data[k] = val - } else data[k] = val[0] - - debug("k=%s val=%j", k, val, data[k]) - }) -} - -function validateString (data, k, val) { - data[k] = String(val) -} - -function validatePath (data, k, val) { - if (val === true) return false - if (val === null) return true - - val = String(val) - var homePattern = process.platform === 'win32' ? /^~(\/|\\)/ : /^~\// - if (val.match(homePattern) && process.env.HOME) { - val = path.resolve(process.env.HOME, val.substr(2)) - } - data[k] = path.resolve(String(val)) - return true -} - -function validateNumber (data, k, val) { - debug("validate Number %j %j %j", k, val, isNaN(val)) - if (isNaN(val)) return false - data[k] = +val -} - -function validateDate (data, k, val) { - debug("validate Date %j %j %j", k, val, Date.parse(val)) - var s = Date.parse(val) - if (isNaN(s)) return false - data[k] = new Date(val) -} - -function validateBoolean (data, k, val) { - if (val instanceof Boolean) val = val.valueOf() - else if (typeof val === "string") { - if (!isNaN(val)) val = !!(+val) - else if (val === "null" || val === "false") val = false - else val = true - } else val = !!val - data[k] = val -} - -function validateUrl (data, k, val) { - val = url.parse(String(val)) - if (!val.host) return false - data[k] = val.href -} - -function validateStream (data, k, val) { - if (!(val instanceof Stream)) return false - data[k] = val -} - -function validate (data, k, val, type, typeDefs) { - // arrays are lists of types. - if (Array.isArray(type)) { - for (var i = 0, l = type.length; i < l; i ++) { - if (type[i] === Array) continue - if (validate(data, k, val, type[i], typeDefs)) return true - } - delete data[k] - return false - } - - // an array of anything? - if (type === Array) return true - - // NaN is poisonous. Means that something is not allowed. - if (type !== type) { - debug("Poison NaN", k, val, type) - delete data[k] - return false - } - - // explicit list of values - if (val === type) { - debug("Explicitly allowed %j", val) - // if (isArray) (data[k] = data[k] || []).push(val) - // else data[k] = val - data[k] = val - return true - } - - // now go through the list of typeDefs, validate against each one. - var ok = false - , types = Object.keys(typeDefs) - for (var i = 0, l = types.length; i < l; i ++) { - debug("test type %j %j %j", k, val, types[i]) - var t = typeDefs[types[i]] - if (t && - ((type && type.name && t.type && t.type.name) ? (type.name === t.type.name) : (type === t.type))) { - var d = {} - ok = false !== t.validate(d, k, val) - val = d[k] - if (ok) { - // if (isArray) (data[k] = data[k] || []).push(val) - // else data[k] = val - data[k] = val - break - } - } - } - debug("OK? %j (%j %j %j)", ok, k, val, types[i]) - - if (!ok) delete data[k] - return ok -} - -function parse (args, data, remain, types, shorthands) { - debug("parse", args, data, remain) - - var key = null - , abbrevs = abbrev(Object.keys(types)) - , shortAbbr = abbrev(Object.keys(shorthands)) - - for (var i = 0; i < args.length; i ++) { - var arg = args[i] - debug("arg", arg) - - if (arg.match(/^-{2,}$/)) { - // done with keys. - // the rest are args. - remain.push.apply(remain, args.slice(i + 1)) - args[i] = "--" - break - } - var hadEq = false - if (arg.charAt(0) === "-" && arg.length > 1) { - if (arg.indexOf("=") !== -1) { - hadEq = true - var v = arg.split("=") - arg = v.shift() - v = v.join("=") - args.splice.apply(args, [i, 1].concat([arg, v])) - } - - // see if it's a shorthand - // if so, splice and back up to re-parse it. - var shRes = resolveShort(arg, shorthands, shortAbbr, abbrevs) - debug("arg=%j shRes=%j", arg, shRes) - if (shRes) { - debug(arg, shRes) - args.splice.apply(args, [i, 1].concat(shRes)) - if (arg !== shRes[0]) { - i -- - continue - } - } - arg = arg.replace(/^-+/, "") - var no = null - while (arg.toLowerCase().indexOf("no-") === 0) { - no = !no - arg = arg.substr(3) - } - - if (abbrevs[arg]) arg = abbrevs[arg] - - var isArray = types[arg] === Array || - Array.isArray(types[arg]) && types[arg].indexOf(Array) !== -1 - - // allow unknown things to be arrays if specified multiple times. - if (!types.hasOwnProperty(arg) && data.hasOwnProperty(arg)) { - if (!Array.isArray(data[arg])) - data[arg] = [data[arg]] - isArray = true - } - - var val - , la = args[i + 1] - - var isBool = typeof no === 'boolean' || - types[arg] === Boolean || - Array.isArray(types[arg]) && types[arg].indexOf(Boolean) !== -1 || - (typeof types[arg] === 'undefined' && !hadEq) || - (la === "false" && - (types[arg] === null || - Array.isArray(types[arg]) && ~types[arg].indexOf(null))) - - if (isBool) { - // just set and move along - val = !no - // however, also support --bool true or --bool false - if (la === "true" || la === "false") { - val = JSON.parse(la) - la = null - if (no) val = !val - i ++ - } - - // also support "foo":[Boolean, "bar"] and "--foo bar" - if (Array.isArray(types[arg]) && la) { - if (~types[arg].indexOf(la)) { - // an explicit type - val = la - i ++ - } else if ( la === "null" && ~types[arg].indexOf(null) ) { - // null allowed - val = null - i ++ - } else if ( !la.match(/^-{2,}[^-]/) && - !isNaN(la) && - ~types[arg].indexOf(Number) ) { - // number - val = +la - i ++ - } else if ( !la.match(/^-[^-]/) && ~types[arg].indexOf(String) ) { - // string - val = la - i ++ - } - } - - if (isArray) (data[arg] = data[arg] || []).push(val) - else data[arg] = val - - continue - } - - if (types[arg] === String && la === undefined) - la = "" - - if (la && la.match(/^-{2,}$/)) { - la = undefined - i -- - } - - val = la === undefined ? true : la - if (isArray) (data[arg] = data[arg] || []).push(val) - else data[arg] = val - - i ++ - continue - } - remain.push(arg) - } -} - -function resolveShort (arg, shorthands, shortAbbr, abbrevs) { - // handle single-char shorthands glommed together, like - // npm ls -glp, but only if there is one dash, and only if - // all of the chars are single-char shorthands, and it's - // not a match to some other abbrev. - arg = arg.replace(/^-+/, '') - - // if it's an exact known option, then don't go any further - if (abbrevs[arg] === arg) - return null - - // if it's an exact known shortopt, same deal - if (shorthands[arg]) { - // make it an array, if it's a list of words - if (shorthands[arg] && !Array.isArray(shorthands[arg])) - shorthands[arg] = shorthands[arg].split(/\s+/) - - return shorthands[arg] - } - - // first check to see if this arg is a set of single-char shorthands - var singles = shorthands.___singles - if (!singles) { - singles = Object.keys(shorthands).filter(function (s) { - return s.length === 1 - }).reduce(function (l,r) { - l[r] = true - return l - }, {}) - shorthands.___singles = singles - debug('shorthand singles', singles) - } - - var chrs = arg.split("").filter(function (c) { - return singles[c] - }) - - if (chrs.join("") === arg) return chrs.map(function (c) { - return shorthands[c] - }).reduce(function (l, r) { - return l.concat(r) - }, []) - - - // if it's an arg abbrev, and not a literal shorthand, then prefer the arg - if (abbrevs[arg] && !shorthands[arg]) - return null - - // if it's an abbr for a shorthand, then use that - if (shortAbbr[arg]) - arg = shortAbbr[arg] - - // make it an array, if it's a list of words - if (shorthands[arg] && !Array.isArray(shorthands[arg])) - shorthands[arg] = shorthands[arg].split(/\s+/) - - return shorthands[arg] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/package.json deleted file mode 100644 index ada51ba4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/package.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "_args": [ - [ - "nopt@~3.0.6", - "/Users/ogd/Documents/projects/npm/npm" - ] - ], - "_from": "nopt@>=3.0.6 <3.1.0", - "_id": "nopt@3.0.6", - "_inCache": true, - "_installable": true, - "_location": "/nopt", - "_nodeVersion": "4.2.1", - "_npmUser": { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - "_npmVersion": "2.14.10", - "_phantomChildren": {}, - "_requested": { - "name": "nopt", - "raw": "nopt@~3.0.6", - "rawSpec": "~3.0.6", - "scope": null, - "spec": ">=3.0.6 <3.1.0", - "type": "range" - }, - "_requiredBy": [ - "/", - "/node-gyp", - "/standard/standard-format/esformatter-jsx/js-beautify", - "/tap/nyc/istanbul" - ], - "_resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "_shasum": "c6465dbf08abcd4db359317f79ac68a646b28ff9", - "_shrinkwrap": null, - "_spec": "nopt@~3.0.6", - "_where": "/Users/ogd/Documents/projects/npm/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bin": { - "nopt": "./bin/nopt.js" - }, - "bugs": { - "url": "https://github.com/npm/nopt/issues" - }, - "dependencies": { - "abbrev": "1" - }, - "description": "Option parsing for Node, supporting types, shorthands, etc. Used by npm.", - "devDependencies": { - "tap": "^1.2.0" - }, - "directories": {}, - "dist": { - "shasum": "c6465dbf08abcd4db359317f79ac68a646b28ff9", - "tarball": "http://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" - }, - "gitHead": "10a750c9bb99c1950160353459e733ac2aa18cb6", - "homepage": "https://github.com/npm/nopt#readme", - "license": "ISC", - "main": "lib/nopt.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "name": "nopt", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/nopt.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "3.0.6" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/test/basic.js deleted file mode 100644 index d399de92..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/nopt/test/basic.js +++ /dev/null @@ -1,273 +0,0 @@ -var nopt = require("../") - , test = require('tap').test - - -test("passing a string results in a string", function (t) { - var parsed = nopt({ key: String }, {}, ["--key", "myvalue"], 0) - t.same(parsed.key, "myvalue") - t.end() -}) - -// https://github.com/npm/nopt/issues/31 -test("Empty String results in empty string, not true", function (t) { - var parsed = nopt({ empty: String }, {}, ["--empty"], 0) - t.same(parsed.empty, "") - t.end() -}) - -test("~ path is resolved to $HOME", function (t) { - var path = require("path") - if (!process.env.HOME) process.env.HOME = "/tmp" - var parsed = nopt({key: path}, {}, ["--key=~/val"], 0) - t.same(parsed.key, path.resolve(process.env.HOME, "val")) - t.end() -}) - -// https://github.com/npm/nopt/issues/24 -test("Unknown options are not parsed as numbers", function (t) { - var parsed = nopt({"parse-me": Number}, null, ['--leave-as-is=1.20', '--parse-me=1.20'], 0) - t.equal(parsed['leave-as-is'], '1.20') - t.equal(parsed['parse-me'], 1.2) - t.end() -}); - -// https://github.com/npm/nopt/issues/48 -test("Check types based on name of type", function (t) { - var parsed = nopt({"parse-me": {name: "Number"}}, null, ['--parse-me=1.20'], 0) - t.equal(parsed['parse-me'], 1.2) - t.end() -}) - - -test("Missing types are not parsed", function (t) { - var parsed = nopt({"parse-me": {}}, null, ['--parse-me=1.20'], 0) - //should only contain argv - t.equal(Object.keys(parsed).length, 1) - t.end() -}) - -test("Types passed without a name are not parsed", function (t) { - var parsed = nopt({"parse-me": {}}, {}, ['--parse-me=1.20'], 0) - //should only contain argv - t.equal(Object.keys(parsed).length, 1) - t.end() -}) - -test("other tests", function (t) { - - var util = require("util") - , Stream = require("stream") - , path = require("path") - , url = require("url") - - , shorthands = - { s : ["--loglevel", "silent"] - , d : ["--loglevel", "info"] - , dd : ["--loglevel", "verbose"] - , ddd : ["--loglevel", "silly"] - , noreg : ["--no-registry"] - , reg : ["--registry"] - , "no-reg" : ["--no-registry"] - , silent : ["--loglevel", "silent"] - , verbose : ["--loglevel", "verbose"] - , h : ["--usage"] - , H : ["--usage"] - , "?" : ["--usage"] - , help : ["--usage"] - , v : ["--version"] - , f : ["--force"] - , desc : ["--description"] - , "no-desc" : ["--no-description"] - , "local" : ["--no-global"] - , l : ["--long"] - , p : ["--parseable"] - , porcelain : ["--parseable"] - , g : ["--global"] - } - - , types = - { aoa: Array - , nullstream: [null, Stream] - , date: Date - , str: String - , browser : String - , cache : path - , color : ["always", Boolean] - , depth : Number - , description : Boolean - , dev : Boolean - , editor : path - , force : Boolean - , global : Boolean - , globalconfig : path - , group : [String, Number] - , gzipbin : String - , logfd : [Number, Stream] - , loglevel : ["silent","win","error","warn","info","verbose","silly"] - , long : Boolean - , "node-version" : [false, String] - , npaturl : url - , npat : Boolean - , "onload-script" : [false, String] - , outfd : [Number, Stream] - , parseable : Boolean - , pre: Boolean - , prefix: path - , proxy : url - , "rebuild-bundle" : Boolean - , registry : url - , searchopts : String - , searchexclude: [null, String] - , shell : path - , t: [Array, String] - , tag : String - , tar : String - , tmp : path - , "unsafe-perm" : Boolean - , usage : Boolean - , user : String - , username : String - , userconfig : path - , version : Boolean - , viewer: path - , _exit : Boolean - , path: path - } - - ; [["-v", {version:true}, []] - ,["---v", {version:true}, []] - ,["ls -s --no-reg connect -d", - {loglevel:"info",registry:null},["ls","connect"]] - ,["ls ---s foo",{loglevel:"silent"},["ls","foo"]] - ,["ls --registry blargle", {}, ["ls"]] - ,["--no-registry", {registry:null}, []] - ,["--no-color true", {color:false}, []] - ,["--no-color false", {color:true}, []] - ,["--no-color", {color:false}, []] - ,["--color false", {color:false}, []] - ,["--color --logfd 7", {logfd:7,color:true}, []] - ,["--color=true", {color:true}, []] - ,["--logfd=10", {logfd:10}, []] - ,["--tmp=/tmp -tar=gtar",{tmp:"/tmp",tar:"gtar"},[]] - ,["--tmp=tmp -tar=gtar", - {tmp:path.resolve(process.cwd(), "tmp"),tar:"gtar"},[]] - ,["--logfd x", {}, []] - ,["a -true -- -no-false", {true:true},["a","-no-false"]] - ,["a -no-false", {false:false},["a"]] - ,["a -no-no-true", {true:true}, ["a"]] - ,["a -no-no-no-false", {false:false}, ["a"]] - ,["---NO-no-No-no-no-no-nO-no-no"+ - "-No-no-no-no-no-no-no-no-no"+ - "-no-no-no-no-NO-NO-no-no-no-no-no-no"+ - "-no-body-can-do-the-boogaloo-like-I-do" - ,{"body-can-do-the-boogaloo-like-I-do":false}, []] - ,["we are -no-strangers-to-love "+ - "--you-know=the-rules --and=so-do-i "+ - "---im-thinking-of=a-full-commitment "+ - "--no-you-would-get-this-from-any-other-guy "+ - "--no-gonna-give-you-up "+ - "-no-gonna-let-you-down=true "+ - "--no-no-gonna-run-around false "+ - "--desert-you=false "+ - "--make-you-cry false "+ - "--no-tell-a-lie "+ - "--no-no-and-hurt-you false" - ,{"strangers-to-love":false - ,"you-know":"the-rules" - ,"and":"so-do-i" - ,"you-would-get-this-from-any-other-guy":false - ,"gonna-give-you-up":false - ,"gonna-let-you-down":false - ,"gonna-run-around":false - ,"desert-you":false - ,"make-you-cry":false - ,"tell-a-lie":false - ,"and-hurt-you":false - },["we", "are"]] - ,["-t one -t two -t three" - ,{t: ["one", "two", "three"]} - ,[]] - ,["-t one -t null -t three four five null" - ,{t: ["one", "null", "three"]} - ,["four", "five", "null"]] - ,["-t foo" - ,{t:["foo"]} - ,[]] - ,["--no-t" - ,{t:["false"]} - ,[]] - ,["-no-no-t" - ,{t:["true"]} - ,[]] - ,["-aoa one -aoa null -aoa 100" - ,{aoa:["one", null, '100']} - ,[]] - ,["-str 100" - ,{str:"100"} - ,[]] - ,["--color always" - ,{color:"always"} - ,[]] - ,["--no-nullstream" - ,{nullstream:null} - ,[]] - ,["--nullstream false" - ,{nullstream:null} - ,[]] - ,["--notadate=2011-01-25" - ,{notadate: "2011-01-25"} - ,[]] - ,["--date 2011-01-25" - ,{date: new Date("2011-01-25")} - ,[]] - ,["-cl 1" - ,{config: true, length: 1} - ,[] - ,{config: Boolean, length: Number, clear: Boolean} - ,{c: "--config", l: "--length"}] - ,["--acount bla" - ,{"acount":true} - ,["bla"] - ,{account: Boolean, credentials: Boolean, options: String} - ,{a:"--account", c:"--credentials",o:"--options"}] - ,["--clear" - ,{clear:true} - ,[] - ,{clear:Boolean,con:Boolean,len:Boolean,exp:Boolean,add:Boolean,rep:Boolean} - ,{c:"--con",l:"--len",e:"--exp",a:"--add",r:"--rep"}] - ,["--file -" - ,{"file":"-"} - ,[] - ,{file:String} - ,{}] - ,["--file -" - ,{"file":true} - ,["-"] - ,{file:Boolean} - ,{}] - ,["--path" - ,{"path":null} - ,[]] - ,["--path ." - ,{"path":process.cwd()} - ,[]] - ].forEach(function (test) { - var argv = test[0].split(/\s+/) - , opts = test[1] - , rem = test[2] - , actual = nopt(test[3] || types, test[4] || shorthands, argv, 0) - , parsed = actual.argv - delete actual.argv - for (var i in opts) { - var e = JSON.stringify(opts[i]) - , a = JSON.stringify(actual[i] === undefined ? null : actual[i]) - if (e && typeof e === "object") { - t.deepEqual(e, a) - } else { - t.equal(e, a) - } - } - t.deepEqual(rem, parsed.remain) - }) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/.npmignore deleted file mode 100644 index c2658d7d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/.travis.yml deleted file mode 100644 index ab9182bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: node_js -node_js: - - "5" - - "4" - - iojs - - "0.12" - - "0.10" - - "0.8" -sudo: false -script: "npm test" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/CHANGELOG.md deleted file mode 100644 index f2d2b94b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/CHANGELOG.md +++ /dev/null @@ -1,5 +0,0 @@ -### 1.0.0 (2014-12-25): - -* [`8b3d874`](https://github.com/npm/normalize-git-url/commit/8b3d874afd14f4cdde65d418e0a35a615c746bba) - Initial version, with simple tests. - ([@othiym23](https://github.com/othiym23)) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/LICENSE deleted file mode 100644 index d21147bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2014-2015, Forrest L Norvell - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/README.md deleted file mode 100644 index da3d78ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# normalize-git-url - -You have a bunch of Git URLs. You want to convert them to a canonical -representation, probably for use inside npm so that it doesn't end up creating -a bunch of superfluous cached origins. You use this package. - -## Usage - -```javascript -var ngu = require('normalize-git-url'); -var normalized = ngu("git+ssh://git@github.com:organization/repo.git#hashbrowns") -// get back: -// { -// url : "ssh://git@github.com/organization/repo.git", -// branch : "hashbrowns" // did u know hashbrowns are delicious? -// } -``` - -## API - -There's just the one function, and all it takes is a single parameter, a non-normalized Git URL. - -### normalizeGitUrl(url) - -* `url` {String} The Git URL (very loosely speaking) to be normalized. - -Returns an object with the following format: - -* `url` {String} The normalized URL. -* `branch` {String} The treeish to be checked out once the repo at `url` is - cloned. It doesn't have to be a branch, but it's a lot easier to intuit what - the output is for with that name. - -## Limitations - -Right now this doesn't try to special-case GitHub too much -- it doesn't ensure -that `.git` is added to the end of URLs, it doesn't prefer `https:` over -`http:` or `ssh:`, it doesn't deal with redirects, and it doesn't try to -resolve symbolic names to treeish hashcodes. For now, it just tries to account -for minor differences in representation. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/normalize-git-url.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/normalize-git-url.js deleted file mode 100644 index bb691e11..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/normalize-git-url.js +++ /dev/null @@ -1,40 +0,0 @@ -var url = require('url') - -module.exports = function normalize (u) { - var parsed = url.parse(u) - // If parsing actually alters the URL, it is almost certainly an - // scp-style URL, or an invalid one. - var altered = u !== url.format(parsed) - - // git is so tricky! - // if the path is like ssh://foo:22/some/path then it works, but - // it needs the ssh:// - // If the path is like ssh://foo:some/path then it works, but - // only if you remove the ssh:// - if (parsed.protocol) { - parsed.protocol = parsed.protocol.replace(/^git\+/, '') - } - - // figure out what we should check out. - var checkout = parsed.hash && parsed.hash.substr(1) || 'master' - parsed.hash = '' - - var returnedUrl - if (altered) { - if (u.match(/^git\+https?/) && parsed.pathname.match(/\/?:[^0-9]/)) { - returnedUrl = u.replace(/^git\+(.*:[^:]+):(.*)/, '$1/$2') - } else if (u.match(/^git\+file/)) { - returnedUrl = u.replace(/^git\+/, '') - } else { - returnedUrl = u.replace(/^(?:git\+)?ssh:\/\//, '') - } - returnedUrl = returnedUrl.replace(/#[^#]*$/, '') - } else { - returnedUrl = url.format(parsed) - } - - return { - url: returnedUrl, - branch: checkout - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/package.json deleted file mode 100644 index bf8ea546..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/package.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "_args": [ - [ - "normalize-git-url@~3.0.2", - "/Users/rebecca/code/npm" - ] - ], - "_from": "normalize-git-url@>=3.0.2 <3.1.0", - "_id": "normalize-git-url@3.0.2", - "_inCache": true, - "_installable": true, - "_location": "/normalize-git-url", - "_nodeVersion": "4.4.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/normalize-git-url-3.0.2.tgz_1460155404934_0.9728229902684689" - }, - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "3.8.7", - "_phantomChildren": {}, - "_requested": { - "name": "normalize-git-url", - "raw": "normalize-git-url@~3.0.2", - "rawSpec": "~3.0.2", - "scope": null, - "spec": ">=3.0.2 <3.1.0", - "type": "range" - }, - "_requiredBy": [ - "/" - ], - "_shasum": "8e5f14be0bdaedb73e07200310aa416c27350fc4", - "_shrinkwrap": null, - "_spec": "normalize-git-url@~3.0.2", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "ogd@aoaioxxysz.net", - "name": "Forrest L Norvell" - }, - "bugs": { - "url": "https://github.com/npm/normalize-git-url/issues" - }, - "dependencies": {}, - "description": "Normalizes Git URLs. For npm, but you can use it too.", - "devDependencies": { - "tap": "^1.1.0" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "8e5f14be0bdaedb73e07200310aa416c27350fc4", - "tarball": "https://registry.npmjs.org/normalize-git-url/-/normalize-git-url-3.0.2.tgz" - }, - "gitHead": "59553801a9f389857b48e71e9ab54592815f7d15", - "homepage": "https://github.com/npm/normalize-git-url", - "keywords": [ - "git", - "github", - "url", - "normalize", - "npm" - ], - "license": "ISC", - "main": "normalize-git-url.js", - "maintainers": [ - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "me@re-becca.org", - "name": "iarna" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "normalize-git-url", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/normalize-git-url.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "3.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/test/basic.js deleted file mode 100644 index 4b513a58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-git-url/test/basic.js +++ /dev/null @@ -1,71 +0,0 @@ -var test = require('tap').test - -var normalize = require('../normalize-git-url.js') - -test('basic normalization tests', function (t) { - t.same( - normalize('git+ssh://user@hostname:project.git#commit-ish'), - { url: 'user@hostname:project.git', branch: 'commit-ish' } - ) - t.same( - normalize('git+http://user@hostname/project/blah.git#commit-ish'), - { url: 'http://user@hostname/project/blah.git', branch: 'commit-ish' } - ) - t.same( - normalize('git+https://user@hostname/project/blah.git#commit-ish'), - { url: 'https://user@hostname/project/blah.git', branch: 'commit-ish' } - ) - t.same( - normalize('git+https://user@hostname:project/blah.git#commit-ish'), - { url: 'https://user@hostname/project/blah.git', branch: 'commit-ish' } - ) - t.same( - normalize('git+ssh://git@github.com:npm/npm.git#v1.0.27'), - { url: 'git@github.com:npm/npm.git', branch: 'v1.0.27' } - ) - t.same( - normalize('git+ssh://git@github.com:/npm/npm.git#v1.0.28'), - { url: 'git@github.com:/npm/npm.git', branch: 'v1.0.28' } - ) - t.same( - normalize('git+ssh://git@github.com:org/repo#dev'), - { url: 'git@github.com:org/repo', branch: 'dev' } - ) - t.same( - normalize('git+ssh://git@github.com/org/repo#dev'), - { url: 'ssh://git@github.com/org/repo', branch: 'dev' } - ) - t.same( - normalize('git+ssh://foo:22/some/path'), - { url: 'ssh://foo:22/some/path', branch: 'master' } - ) - t.same( - normalize('git@github.com:org/repo#dev'), - { url: 'git@github.com:org/repo', branch: 'dev' } - ) - t.same( - normalize('git+https://github.com/KenanY/node-uuid'), - { url: 'https://github.com/KenanY/node-uuid', branch: 'master' } - ) - t.same( - normalize('git+https://github.com/KenanY/node-uuid#7a018f2d075b03a73409e8356f9b29c9ad4ea2c5'), - { url: 'https://github.com/KenanY/node-uuid', branch: '7a018f2d075b03a73409e8356f9b29c9ad4ea2c5' } - ) - t.same( - normalize('git+ssh://git@git.example.com:b/b.git#v1.0.0'), - { url: 'git@git.example.com:b/b.git', branch: 'v1.0.0' } - ) - t.same( - normalize('git+ssh://git@github.com:npm/npm-proto.git#othiym23/organized'), - { url: 'git@github.com:npm/npm-proto.git', branch: 'othiym23/organized' } - ) - t.same( - normalize('git+file:///foo/bar.git'), - { url: 'file:///foo/bar.git', branch: 'master' } - ) - t.same( - normalize('git+file://C:\\Users\\hello\\testing.git#zkat/windows-files'), - { url: 'file://C:\\Users\\hello\\testing.git', branch: 'zkat/windows-files'} - ) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/.npmignore deleted file mode 100644 index 096746c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/node_modules/ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/.travis.yml deleted file mode 100644 index 6e5919de..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/AUTHORS b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/AUTHORS deleted file mode 100644 index 10860f72..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/AUTHORS +++ /dev/null @@ -1,4 +0,0 @@ -# Names sorted by how much code was originally theirs. -Isaac Z. Schlueter -Meryn Stol -Robert Kowalski \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/LICENSE deleted file mode 100644 index 9cea2e3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/LICENSE +++ /dev/null @@ -1,30 +0,0 @@ -This package contains code originally written by Isaac Z. Schlueter. -Used with permission. - -Copyright (c) Meryn Stol ("Author") -All rights reserved. - -The BSD License - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/README.md deleted file mode 100644 index 526745ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/README.md +++ /dev/null @@ -1,107 +0,0 @@ -# normalize-package-data [![Build Status](https://travis-ci.org/npm/normalize-package-data.png?branch=master)](https://travis-ci.org/npm/normalize-package-data) - -normalize-package data exports a function that normalizes package metadata. This data is typically found in a package.json file, but in principle could come from any source - for example the npm registry. - -normalize-package-data is used by [read-package-json](https://npmjs.org/package/read-package-json) to normalize the data it reads from a package.json file. In turn, read-package-json is used by [npm](https://npmjs.org/package/npm) and various npm-related tools. - -## Installation - -``` -npm install normalize-package-data -``` - -## Usage - -Basic usage is really simple. You call the function that normalize-package-data exports. Let's call it `normalizeData`. - -```javascript -normalizeData = require('normalize-package-data') -packageData = fs.readFileSync("package.json") -normalizeData(packageData) -// packageData is now normalized -``` - -#### Strict mode - -You may activate strict validation by passing true as the second argument. - -```javascript -normalizeData = require('normalize-package-data') -packageData = fs.readFileSync("package.json") -warnFn = function(msg) { console.error(msg) } -normalizeData(packageData, true) -// packageData is now normalized -``` - -If strict mode is activated, only Semver 2.0 version strings are accepted. Otherwise, Semver 1.0 strings are accepted as well. Packages must have a name, and the name field must not have contain leading or trailing whitespace. - -#### Warnings - -Optionally, you may pass a "warning" function. It gets called whenever the `normalizeData` function encounters something that doesn't look right. It indicates less than perfect input data. - -```javascript -normalizeData = require('normalize-package-data') -packageData = fs.readFileSync("package.json") -warnFn = function(msg) { console.error(msg) } -normalizeData(packageData, warnFn) -// packageData is now normalized. Any number of warnings may have been logged. -``` - -You may combine strict validation with warnings by passing `true` as the second argument, and `warnFn` as third. - -When `private` field is set to `true`, warnings will be suppressed. - -### Potential exceptions - -If the supplied data has an invalid name or version vield, `normalizeData` will throw an error. Depending on where you call `normalizeData`, you may want to catch these errors so can pass them to a callback. - -## What normalization (currently) entails - -* The value of `name` field gets trimmed (unless in strict mode). -* The value of the `version` field gets cleaned by `semver.clean`. See [documentation for the semver module](https://github.com/isaacs/node-semver). -* If `name` and/or `version` fields are missing, they are set to empty strings. -* If `files` field is not an array, it will be removed. -* If `bin` field is a string, then `bin` field will become an object with `name` set to the value of the `name` field, and `bin` set to the original string value. -* If `man` field is a string, it will become an array with the original string as its sole member. -* If `keywords` field is string, it is considered to be a list of keywords separated by one or more white-space characters. It gets converted to an array by splitting on `\s+`. -* All people fields (`author`, `maintainers`, `contributors`) get converted into objects with name, email and url properties. -* If `bundledDependencies` field (a typo) exists and `bundleDependencies` field does not, `bundledDependencies` will get renamed to `bundleDependencies`. -* If the value of any of the dependencies fields (`dependencies`, `devDependencies`, `optionalDependencies`) is a string, it gets converted into an object with familiar `name=>value` pairs. -* The values in `optionalDependencies` get added to `dependencies`. The `optionalDependencies` array is left untouched. -* As of v2: Dependencies that point at known hosted git providers (currently: github, bitbucket, gitlab) will have their URLs canonicalized, but protocols will be preserved. -* As of v2: Dependencies that use shortcuts for hosted git providers (`org/proj`, `github:org/proj`, `bitbucket:org/proj`, `gitlab:org/proj`, `gist:docid`) will have the shortcut left in place. (In the case of github, the `org/proj` form will be expanded to `github:org/proj`.) THIS MARKS A BREAKING CHANGE FROM V1, where the shorcut was previously expanded to a URL. -* If `description` field does not exist, but `readme` field does, then (more or less) the first paragraph of text that's found in the readme is taken as value for `description`. -* If `repository` field is a string, it will become an object with `url` set to the original string value, and `type` set to `"git"`. -* If `repository.url` is not a valid url, but in the style of "[owner-name]/[repo-name]", `repository.url` will be set to git+https://github.com/[owner-name]/[repo-name].git -* If `bugs` field is a string, the value of `bugs` field is changed into an object with `url` set to the original string value. -* If `bugs` field does not exist, but `repository` field points to a repository hosted on GitHub, the value of the `bugs` field gets set to an url in the form of https://github.com/[owner-name]/[repo-name]/issues . If the repository field points to a GitHub Gist repo url, the associated http url is chosen. -* If `bugs` field is an object, the resulting value only has email and url properties. If email and url properties are not strings, they are ignored. If no valid values for either email or url is found, bugs field will be removed. -* If `homepage` field is not a string, it will be removed. -* If the url in the `homepage` field does not specify a protocol, then http is assumed. For example, `myproject.org` will be changed to `http://myproject.org`. -* If `homepage` field does not exist, but `repository` field points to a repository hosted on GitHub, the value of the `homepage` field gets set to an url in the form of https://github.com/[owner-name]/[repo-name]/ . If the repository field points to a GitHub Gist repo url, the associated http url is chosen. - -### Rules for name field - -If `name` field is given, the value of the name field must be a string. The string may not: - -* start with a period. -* contain the following characters: `/@\s+%` -* contain and characters that would need to be encoded for use in urls. -* resemble the word `node_modules` or `favicon.ico` (case doesn't matter). - -### Rules for version field - -If `version` field is given, the value of the version field must be a valid *semver* string, as determined by the `semver.valid` method. See [documentation for the semver module](https://github.com/isaacs/node-semver). - -### Rules for license field - -The `license` field should be a valid *SPDX license expression* or one of the special values allowed by [validate-npm-package-license](https://npmjs.com/packages/validate-npm-package-license). See [documentation for the license field in package.json](https://docs.npmjs.com/files/package.json#license). - -## Credits - -This package contains code based on read-package-json written by Isaac Z. Schlueter. Used with permisson. - -## License - -normalize-package-data is released under the [BSD 2-Clause License](http://opensource.org/licenses/MIT). -Copyright (c) 2013 Meryn Stol diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/extract_description.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/extract_description.js deleted file mode 100644 index 83f10aa0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/extract_description.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = extractDescription - -// Extracts description from contents of a readme file in markdown format -function extractDescription (d) { - if (!d) return; - if (d === "ERROR: No README data found!") return; - // the first block of text before the first heading - // that isn't the first line heading - d = d.trim().split('\n') - for (var s = 0; d[s] && d[s].trim().match(/^(#|$)/); s ++); - var l = d.length - for (var e = s + 1; e < l && d[e].trim(); e ++); - return d.slice(s, e).join(' ').trim() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/fixer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/fixer.js deleted file mode 100644 index 1409c69c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/fixer.js +++ /dev/null @@ -1,418 +0,0 @@ -var semver = require("semver") -var validateLicense = require('validate-npm-package-license'); -var hostedGitInfo = require("hosted-git-info") -var isBuiltinModule = require("is-builtin-module") -var depTypes = ["dependencies","devDependencies","optionalDependencies"] -var extractDescription = require("./extract_description") -var url = require("url") -var typos = require("./typos") - -var fixer = module.exports = { - // default warning function - warn: function() {}, - - fixRepositoryField: function(data) { - if (data.repositories) { - this.warn("repositories"); - data.repository = data.repositories[0] - } - if (!data.repository) return this.warn("missingRepository") - if (typeof data.repository === "string") { - data.repository = { - type: "git", - url: data.repository - } - } - var r = data.repository.url || "" - if (r) { - var hosted = hostedGitInfo.fromUrl(r) - if (hosted) { - r = data.repository.url - = hosted.getDefaultRepresentation() == "shortcut" ? hosted.https() : hosted.toString() - } - } - - if (r.match(/github.com\/[^\/]+\/[^\/]+\.git\.git$/)) { - this.warn("brokenGitUrl", r) - } - } - -, fixTypos: function(data) { - Object.keys(typos.topLevel).forEach(function (d) { - if (data.hasOwnProperty(d)) { - this.warn("typo", d, typos.topLevel[d]) - } - }, this) - } - -, fixScriptsField: function(data) { - if (!data.scripts) return - if (typeof data.scripts !== "object") { - this.warn("nonObjectScripts") - delete data.scripts - return - } - Object.keys(data.scripts).forEach(function (k) { - if (typeof data.scripts[k] !== "string") { - this.warn("nonStringScript") - delete data.scripts[k] - } else if (typos.script[k] && !data.scripts[typos.script[k]]) { - this.warn("typo", k, typos.script[k], "scripts") - } - }, this) - } - -, fixFilesField: function(data) { - var files = data.files - if (files && !Array.isArray(files)) { - this.warn("nonArrayFiles") - delete data.files - } else if (data.files) { - data.files = data.files.filter(function(file) { - if (!file || typeof file !== "string") { - this.warn("invalidFilename", file) - return false - } else { - return true - } - }, this) - } - } - -, fixBinField: function(data) { - if (!data.bin) return; - if (typeof data.bin === "string") { - var b = {} - var match - if (match = data.name.match(/^@[^/]+[/](.*)$/)) { - b[match[1]] = data.bin - } else { - b[data.name] = data.bin - } - data.bin = b - } - } - -, fixManField: function(data) { - if (!data.man) return; - if (typeof data.man === "string") { - data.man = [ data.man ] - } - } -, fixBundleDependenciesField: function(data) { - var bdd = "bundledDependencies" - var bd = "bundleDependencies" - if (data[bdd] && !data[bd]) { - data[bd] = data[bdd] - delete data[bdd] - } - if (data[bd] && !Array.isArray(data[bd])) { - this.warn("nonArrayBundleDependencies") - delete data[bd] - } else if (data[bd]) { - data[bd] = data[bd].filter(function(bd) { - if (!bd || typeof bd !== 'string') { - this.warn("nonStringBundleDependency", bd) - return false - } else { - if (!data.dependencies) { - data.dependencies = {} - } - if (!data.dependencies.hasOwnProperty(bd)) { - this.warn("nonDependencyBundleDependency", bd) - data.dependencies[bd] = "*" - } - return true - } - }, this) - } - } - -, fixDependencies: function(data, strict) { - var loose = !strict - objectifyDeps(data, this.warn) - addOptionalDepsToDeps(data, this.warn) - this.fixBundleDependenciesField(data) - - ;['dependencies','devDependencies'].forEach(function(deps) { - if (!(deps in data)) return - if (!data[deps] || typeof data[deps] !== "object") { - this.warn("nonObjectDependencies", deps) - delete data[deps] - return - } - Object.keys(data[deps]).forEach(function (d) { - var r = data[deps][d] - if (typeof r !== 'string') { - this.warn("nonStringDependency", d, JSON.stringify(r)) - delete data[deps][d] - } - var hosted = hostedGitInfo.fromUrl(data[deps][d]) - if (hosted) data[deps][d] = hosted.toString() - }, this) - }, this) - } - -, fixModulesField: function (data) { - if (data.modules) { - this.warn("deprecatedModules") - delete data.modules - } - } - -, fixKeywordsField: function (data) { - if (typeof data.keywords === "string") { - data.keywords = data.keywords.split(/,\s+/) - } - if (data.keywords && !Array.isArray(data.keywords)) { - delete data.keywords - this.warn("nonArrayKeywords") - } else if (data.keywords) { - data.keywords = data.keywords.filter(function(kw) { - if (typeof kw !== "string" || !kw) { - this.warn("nonStringKeyword"); - return false - } else { - return true - } - }, this) - } - } - -, fixVersionField: function(data, strict) { - // allow "loose" semver 1.0 versions in non-strict mode - // enforce strict semver 2.0 compliance in strict mode - var loose = !strict - if (!data.version) { - data.version = "" - return true - } - if (!semver.valid(data.version, loose)) { - throw new Error('Invalid version: "'+ data.version + '"') - } - data.version = semver.clean(data.version, loose) - return true - } - -, fixPeople: function(data) { - modifyPeople(data, unParsePerson) - modifyPeople(data, parsePerson) - } - -, fixNameField: function(data, options) { - if (typeof options === "boolean") options = {strict: options} - else if (typeof options === "undefined") options = {} - var strict = options.strict - if (!data.name && !strict) { - data.name = "" - return - } - if (typeof data.name !== "string") { - throw new Error("name field must be a string.") - } - if (!strict) - data.name = data.name.trim() - ensureValidName(data.name, strict, options.allowLegacyCase) - if (isBuiltinModule(data.name)) - this.warn("conflictingName", data.name) - } - - -, fixDescriptionField: function (data) { - if (data.description && typeof data.description !== 'string') { - this.warn("nonStringDescription") - delete data.description - } - if (data.readme && !data.description) - data.description = extractDescription(data.readme) - if(data.description === undefined) delete data.description; - if (!data.description) this.warn("missingDescription") - } - -, fixReadmeField: function (data) { - if (!data.readme) { - this.warn("missingReadme") - data.readme = "ERROR: No README data found!" - } - } - -, fixBugsField: function(data) { - if (!data.bugs && data.repository && data.repository.url) { - var hosted = hostedGitInfo.fromUrl(data.repository.url) - if(hosted && hosted.bugs()) { - data.bugs = {url: hosted.bugs()} - } - } - else if(data.bugs) { - var emailRe = /^.+@.*\..+$/ - if(typeof data.bugs == "string") { - if(emailRe.test(data.bugs)) - data.bugs = {email:data.bugs} - else if(url.parse(data.bugs).protocol) - data.bugs = {url: data.bugs} - else - this.warn("nonEmailUrlBugsString") - } - else { - bugsTypos(data.bugs, this.warn) - var oldBugs = data.bugs - data.bugs = {} - if(oldBugs.url) { - if(typeof(oldBugs.url) == "string" && url.parse(oldBugs.url).protocol) - data.bugs.url = oldBugs.url - else - this.warn("nonUrlBugsUrlField") - } - if(oldBugs.email) { - if(typeof(oldBugs.email) == "string" && emailRe.test(oldBugs.email)) - data.bugs.email = oldBugs.email - else - this.warn("nonEmailBugsEmailField") - } - } - if(!data.bugs.email && !data.bugs.url) { - delete data.bugs - this.warn("emptyNormalizedBugs") - } - } - } - -, fixHomepageField: function(data) { - if (!data.homepage && data.repository && data.repository.url) { - var hosted = hostedGitInfo.fromUrl(data.repository.url) - if (hosted && hosted.docs()) data.homepage = hosted.docs() - } - if (!data.homepage) return - - if(typeof data.homepage !== "string") { - this.warn("nonUrlHomepage") - return delete data.homepage - } - if(!url.parse(data.homepage).protocol) { - this.warn("missingProtocolHomepage") - data.homepage = "http://" + data.homepage - } - } - -, fixLicenseField: function(data) { - if (!data.license) { - return this.warn("missingLicense") - } else{ - if ( - typeof(data.license) !== 'string' || - data.license.length < 1 - ) { - this.warn("invalidLicense") - } else { - if (!validateLicense(data.license).validForNewPackages) - this.warn("invalidLicense") - } - } - } -} - -function isValidScopedPackageName(spec) { - if (spec.charAt(0) !== '@') return false - - var rest = spec.slice(1).split('/') - if (rest.length !== 2) return false - - return rest[0] && rest[1] && - rest[0] === encodeURIComponent(rest[0]) && - rest[1] === encodeURIComponent(rest[1]) -} - -function isCorrectlyEncodedName(spec) { - return !spec.match(/[\/@\s\+%:]/) && - spec === encodeURIComponent(spec) -} - -function ensureValidName (name, strict, allowLegacyCase) { - if (name.charAt(0) === "." || - !(isValidScopedPackageName(name) || isCorrectlyEncodedName(name)) || - (strict && (!allowLegacyCase) && name !== name.toLowerCase()) || - name.toLowerCase() === "node_modules" || - name.toLowerCase() === "favicon.ico") { - throw new Error("Invalid name: " + JSON.stringify(name)) - } -} - -function modifyPeople (data, fn) { - if (data.author) data.author = fn(data.author) - ;["maintainers", "contributors"].forEach(function (set) { - if (!Array.isArray(data[set])) return; - data[set] = data[set].map(fn) - }) - return data -} - -function unParsePerson (person) { - if (typeof person === "string") return person - var name = person.name || "" - var u = person.url || person.web - var url = u ? (" ("+u+")") : "" - var e = person.email || person.mail - var email = e ? (" <"+e+">") : "" - return name+email+url -} - -function parsePerson (person) { - if (typeof person !== "string") return person - var name = person.match(/^([^\(<]+)/) - var url = person.match(/\(([^\)]+)\)/) - var email = person.match(/<([^>]+)>/) - var obj = {} - if (name && name[0].trim()) obj.name = name[0].trim() - if (email) obj.email = email[1]; - if (url) obj.url = url[1]; - return obj -} - -function addOptionalDepsToDeps (data, warn) { - var o = data.optionalDependencies - if (!o) return; - var d = data.dependencies || {} - Object.keys(o).forEach(function (k) { - d[k] = o[k] - }) - data.dependencies = d -} - -function depObjectify (deps, type, warn) { - if (!deps) return {} - if (typeof deps === "string") { - deps = deps.trim().split(/[\n\r\s\t ,]+/) - } - if (!Array.isArray(deps)) return deps - warn("deprecatedArrayDependencies", type) - var o = {} - deps.filter(function (d) { - return typeof d === "string" - }).forEach(function(d) { - d = d.trim().split(/(:?[@\s><=])/) - var dn = d.shift() - var dv = d.join("") - dv = dv.trim() - dv = dv.replace(/^@/, "") - o[dn] = dv - }) - return o -} - -function objectifyDeps (data, warn) { - depTypes.forEach(function (type) { - if (!data[type]) return; - data[type] = depObjectify(data[type], type, warn) - }) -} - -function bugsTypos(bugs, warn) { - if (!bugs) return - Object.keys(bugs).forEach(function (k) { - if (typos.bugs[k]) { - warn("typo", k, typos.bugs[k], "bugs") - bugs[typos.bugs[k]] = bugs[k] - delete bugs[k] - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/make_warning.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/make_warning.js deleted file mode 100644 index 0f3aad5f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/make_warning.js +++ /dev/null @@ -1,23 +0,0 @@ -var util = require("util") -var messages = require("./warning_messages.json") - -module.exports = function() { - var args = Array.prototype.slice.call(arguments, 0) - var warningName = args.shift() - if (warningName == "typo") { - return makeTypoWarning.apply(null,args) - } - else { - var msgTemplate = messages[warningName] ? messages[warningName] : warningName + ": '%s'" - args.unshift(msgTemplate) - return util.format.apply(null, args) - } -} - -function makeTypoWarning (providedName, probableName, field) { - if (field) { - providedName = field + "['" + providedName + "']" - probableName = field + "['" + probableName + "']" - } - return util.format(messages.typo, providedName, probableName) -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/normalize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/normalize.js deleted file mode 100644 index 7e68c69a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/normalize.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = normalize - -var fixer = require("./fixer") -normalize.fixer = fixer - -var makeWarning = require("./make_warning") - -var fieldsToFix = ['name','version','description','repository','modules','scripts' - ,'files','bin','man','bugs','keywords','readme','homepage','license'] -var otherThingsToFix = ['dependencies','people', 'typos'] - -var thingsToFix = fieldsToFix.map(function(fieldName) { - return ucFirst(fieldName) + "Field" -}) -// two ways to do this in CoffeeScript on only one line, sub-70 chars: -// thingsToFix = fieldsToFix.map (name) -> ucFirst(name) + "Field" -// thingsToFix = (ucFirst(name) + "Field" for name in fieldsToFix) -thingsToFix = thingsToFix.concat(otherThingsToFix) - -function normalize (data, warn, strict) { - if(warn === true) warn = null, strict = true - if(!strict) strict = false - if(!warn || data.private) warn = function(msg) { /* noop */ } - - if (data.scripts && - data.scripts.install === "node-gyp rebuild" && - !data.scripts.preinstall) { - data.gypfile = true - } - fixer.warn = function() { warn(makeWarning.apply(null, arguments)) } - thingsToFix.forEach(function(thingName) { - fixer["fix" + ucFirst(thingName)](data, strict) - }) - data._id = data.name + "@" + data.version -} - -function ucFirst (string) { - return string.charAt(0).toUpperCase() + string.slice(1); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/safe_format.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/safe_format.js deleted file mode 100644 index 08517f14..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/safe_format.js +++ /dev/null @@ -1,9 +0,0 @@ -var util = require('util') - -module.exports = function() { - var args = Array.prototype.slice.call(arguments, 0) - args.forEach(function(arg) { - if (!arg) throw new TypeError('Bad arguments.') - }) - return util.format.apply(null, arguments) -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/typos.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/typos.json deleted file mode 100644 index 73590c0a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/typos.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "topLevel": { - "dependancies": "dependencies" - ,"dependecies": "dependencies" - ,"depdenencies": "dependencies" - ,"devEependencies": "devDependencies" - ,"depends": "dependencies" - ,"dev-dependencies": "devDependencies" - ,"devDependences": "devDependencies" - ,"devDepenencies": "devDependencies" - ,"devdependencies": "devDependencies" - ,"repostitory": "repository" - ,"repo": "repository" - ,"prefereGlobal": "preferGlobal" - ,"hompage": "homepage" - ,"hampage": "homepage" - ,"autohr": "author" - ,"autor": "author" - ,"contributers": "contributors" - ,"publicationConfig": "publishConfig" - ,"script": "scripts" - }, - "bugs": { "web": "url", "name": "url" }, - "script": { "server": "start", "tests": "test" } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/warning_messages.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/warning_messages.json deleted file mode 100644 index 5fd19f32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/lib/warning_messages.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "repositories": "'repositories' (plural) Not supported. Please pick one as the 'repository' field" - ,"missingRepository": "No repository field." - ,"brokenGitUrl": "Probably broken git url: %s" - ,"nonObjectScripts": "scripts must be an object" - ,"nonStringScript": "script values must be string commands" - ,"nonArrayFiles": "Invalid 'files' member" - ,"invalidFilename": "Invalid filename in 'files' list: %s" - ,"nonArrayBundleDependencies": "Invalid 'bundleDependencies' list. Must be array of package names" - ,"nonStringBundleDependency": "Invalid bundleDependencies member: %s" - ,"nonDependencyBundleDependency": "Non-dependency in bundleDependencies: %s" - ,"nonObjectDependencies": "%s field must be an object" - ,"nonStringDependency": "Invalid dependency: %s %s" - ,"deprecatedArrayDependencies": "specifying %s as array is deprecated" - ,"deprecatedModules": "modules field is deprecated" - ,"nonArrayKeywords": "keywords should be an array of strings" - ,"nonStringKeyword": "keywords should be an array of strings" - ,"conflictingName": "%s is also the name of a node core module." - ,"nonStringDescription": "'description' field should be a string" - ,"missingDescription": "No description" - ,"missingReadme": "No README data" - ,"missingLicense": "No license field." - ,"nonEmailUrlBugsString": "Bug string field must be url, email, or {email,url}" - ,"nonUrlBugsUrlField": "bugs.url field must be a string url. Deleted." - ,"nonEmailBugsEmailField": "bugs.email field must be a string email. Deleted." - ,"emptyNormalizedBugs": "Normalized value of bugs field is an empty object. Deleted." - ,"nonUrlHomepage": "homepage field must be a string url. Deleted." - ,"invalidLicense": "license should be a valid SPDX license expression" - ,"missingProtocolHomepage": "homepage field must start with a protocol." - ,"typo": "%s should probably be %s." -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/index.js deleted file mode 100644 index b6cfa616..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/index.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -var builtinModules = require('builtin-modules'); - -module.exports = function (str) { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } - - return builtinModules.indexOf(str) !== -1; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/builtin-modules.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/builtin-modules.json deleted file mode 100644 index 72670f6b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/builtin-modules.json +++ /dev/null @@ -1,35 +0,0 @@ -[ - "assert", - "buffer", - "child_process", - "cluster", - "console", - "constants", - "crypto", - "dgram", - "dns", - "domain", - "events", - "fs", - "http", - "https", - "module", - "net", - "os", - "path", - "process", - "punycode", - "querystring", - "readline", - "repl", - "stream", - "string_decoder", - "timers", - "tls", - "tty", - "url", - "util", - "v8", - "vm", - "zlib" -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/index.js deleted file mode 100644 index 9ef35ab0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/index.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var blacklist = [ - 'freelist', - 'sys' -]; - -module.exports = Object.keys(process.binding('natives')).filter(function (el) { - return !/^_|^internal|\//.test(el) && blacklist.indexOf(el) === -1; -}).sort(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json deleted file mode 100644 index a1288015..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "_args": [ - [ - "builtin-modules@^1.0.0", - "/Users/rebecca/code/npm/node_modules/normalize-package-data/node_modules/is-builtin-module" - ] - ], - "_from": "builtin-modules@>=1.0.0 <2.0.0", - "_id": "builtin-modules@1.1.1", - "_inCache": true, - "_installable": true, - "_location": "/normalize-package-data/is-builtin-module/builtin-modules", - "_nodeVersion": "5.3.0", - "_npmUser": { - "email": "sindresorhus@gmail.com", - "name": "sindresorhus" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "builtin-modules", - "raw": "builtin-modules@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/normalize-package-data/is-builtin-module" - ], - "_resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "_shasum": "270f076c5a72c02f5b65a47df94c5fe3a278892f", - "_shrinkwrap": null, - "_spec": "builtin-modules@^1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/normalize-package-data/node_modules/is-builtin-module", - "author": { - "email": "sindresorhus@gmail.com", - "name": "Sindre Sorhus", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/builtin-modules/issues" - }, - "dependencies": {}, - "description": "List of the Node.js builtin modules", - "devDependencies": { - "ava": "*", - "xo": "*" - }, - "directories": {}, - "dist": { - "shasum": "270f076c5a72c02f5b65a47df94c5fe3a278892f", - "tarball": "http://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "builtin-modules.json", - "index.js", - "static.js" - ], - "gitHead": "0ea253452b1d8cb3a70d16464f909dbc0bc370fe", - "homepage": "https://github.com/sindresorhus/builtin-modules#readme", - "keywords": [ - "array", - "built-in", - "builtin", - "builtins", - "bundled", - "core", - "list", - "modules", - "names", - "node" - ], - "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], - "name": "builtin-modules", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/builtin-modules.git" - }, - "scripts": { - "make": "node make.js", - "test": "xo && ava" - }, - "version": "1.1.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/readme.md deleted file mode 100644 index f1894b18..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/readme.md +++ /dev/null @@ -1,41 +0,0 @@ -# builtin-modules [![Build Status](https://travis-ci.org/sindresorhus/builtin-modules.svg?branch=master)](https://travis-ci.org/sindresorhus/builtin-modules) - -> List of the Node.js builtin modules - -The list is just a [JSON file](builtin-modules.json) and can be used wherever. - - -## Install - -``` -$ npm install --save builtin-modules -``` - - -## Usage - -```js -var builtinModules = require('builtin-modules'); - -console.log(builinModules); -//=> ['assert', 'buffer', ...] -``` - - -## API - -Returns an array of builtin modules fetched from the running Node.js version. - -### Static list - -This module also comes bundled with a static array of builtin modules generated from the latest Node.js version. You can get it with `require('builtin-modules/static');` - - -## Related - -- [is-builtin-module](https://github.com/sindresorhus/is-builtin-module) - Check if a string matches the name of a Node.js builtin module - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/static.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/static.js deleted file mode 100644 index 9508f8f4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/static.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -module.exports = require('./builtin-modules.json'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json deleted file mode 100644 index 3e0bf21f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "is-builtin-module", - "version": "1.0.0", - "description": "Check if a string matches the name of a Node.js builtin module", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/is-builtin-module.git" - }, - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "node test.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "builtin", - "built-in", - "builtins", - "node", - "modules", - "core", - "bundled", - "list", - "array", - "names", - "is", - "detect", - "check", - "match" - ], - "dependencies": { - "builtin-modules": "^1.0.0" - }, - "devDependencies": { - "ava": "0.0.4" - }, - "gitHead": "da55ebf031f3864c5d309e25e49ed816957d70a2", - "bugs": { - "url": "https://github.com/sindresorhus/is-builtin-module/issues" - }, - "homepage": "https://github.com/sindresorhus/is-builtin-module", - "_id": "is-builtin-module@1.0.0", - "_shasum": "540572d34f7ac3119f8f76c30cbc1b1e037affbe", - "_from": "is-builtin-module@>=1.0.0 <2.0.0", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "540572d34f7ac3119f8f76c30cbc1b1e037affbe", - "tarball": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" - }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/readme.md deleted file mode 100644 index 798dcf43..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/readme.md +++ /dev/null @@ -1,33 +0,0 @@ -# is-builtin-module [![Build Status](https://travis-ci.org/sindresorhus/is-builtin-module.svg?branch=master)](https://travis-ci.org/sindresorhus/is-builtin-module) - -> Check if a string matches the name of a Node.js builtin module - - -## Install - -``` -$ npm install --save is-builtin-module -``` - - -## Usage - -```js -var isBuiltinModule = require('is-builtin-module'); - -isBuiltinModule('fs'); -//=> true - -isBuiltinModule('unicorn'); -//=> false :( -``` - - -## Related - -- [builtin-modules](https://github.com/sindresorhus/builtin-modules) - List of the Node.js builtin modules - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/package.json deleted file mode 100644 index f8c8aa90..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "normalize-package-data", - "version": "2.3.5", - "author": { - "name": "Meryn Stol", - "email": "merynstol@gmail.com" - }, - "description": "Normalizes data that can be found in package.json files.", - "license": "BSD-2-Clause", - "repository": { - "type": "git", - "url": "git://github.com/npm/normalize-package-data.git" - }, - "main": "lib/normalize.js", - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "devDependencies": { - "async": "^1.5.0", - "tap": "^2.2.0", - "underscore": "^1.8.3" - }, - "contributors": [ - { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me" - }, - { - "name": "Meryn Stol", - "email": "merynstol@gmail.com" - }, - { - "name": "Robert Kowalski", - "email": "rok@kowalski.gd" - } - ], - "gitHead": "3dc7756af20b3b1b24c6d75302448ca3659e0a65", - "bugs": { - "url": "https://github.com/npm/normalize-package-data/issues" - }, - "homepage": "https://github.com/npm/normalize-package-data#readme", - "_id": "normalize-package-data@2.3.5", - "_shasum": "8d924f142960e1777e7ffe170543631cc7cb02df", - "_from": "normalize-package-data@>=2.3.5 <2.4.0", - "_npmVersion": "3.3.6", - "_nodeVersion": "5.0.0", - "_npmUser": { - "name": "iarna", - "email": "me@re-becca.org" - }, - "dist": { - "shasum": "8d924f142960e1777e7ffe170543631cc7cb02df", - "tarball": "http://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz" - }, - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "meryn", - "email": "merynstol@gmail.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/basic.js deleted file mode 100644 index 12c403ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/basic.js +++ /dev/null @@ -1,34 +0,0 @@ -var tap = require("tap") -var normalize = require("../lib/normalize") -var path = require("path") -var fs = require("fs") - -tap.test("basic test", function (t) { - var p = path.resolve(__dirname, "./fixtures/read-package-json.json") - fs.readFile (p, function (err, contents) { - if (err) throw err; - var originalData = JSON.parse(contents.toString()) - var data = JSON.parse(contents.toString()) - normalize(data) - t.ok(data) - verifyFields(t, data, originalData) - t.end() - }) -}) - -function verifyFields (t, normalized, original) { - t.equal(normalized.version, original.version, "Version field stays same") - t.equal(normalized._id, normalized.name + "@" + normalized.version, "It gets good id.") - t.equal(normalized.name, original.name, "Name stays the same.") - t.type(normalized.author, "object", "author field becomes object") - t.deepEqual(normalized.scripts, original.scripts, "scripts field (object) stays same") - t.equal(normalized.main, original.main) - // optional deps are folded in. - t.deepEqual(normalized.optionalDependencies, - original.optionalDependencies) - t.has(normalized.dependencies, original.optionalDependencies, "opt depedencies are copied into dependencies") - t.has(normalized.dependencies, original.dependencies, "regular depedencies stay in place") - t.deepEqual(normalized.devDependencies, original.devDependencies) - t.type(normalized.bugs, "object", "bugs should become object") - t.equal(normalized.bugs.url, "https://github.com/isaacs/read-package-json/issues") -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/consistency.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/consistency.js deleted file mode 100644 index 4082be25..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/consistency.js +++ /dev/null @@ -1,36 +0,0 @@ -var tap = require("tap") -var normalize = require("../lib/normalize") -var path = require("path") -var fs = require("fs") -var _ = require("underscore") -var async = require("async") - -var data, clonedData -var warn - -tap.test("consistent normalization", function(t) { - path.resolve(__dirname, "./fixtures/read-package-json.json") - fs.readdir (__dirname + "/fixtures", function (err, entries) { - // entries = ['coffee-script.json'] // uncomment to limit to a specific file - verifyConsistency = function(entryName, next) { - warn = function(msg) { - // t.equal("",msg) // uncomment to have some kind of logging of warnings - } - filename = __dirname + "/fixtures/" + entryName - fs.readFile(filename, function(err, contents) { - if (err) return next(err) - data = JSON.parse(contents.toString()) - normalize(data, warn) - clonedData = _.clone(data) - normalize(data, warn) - t.deepEqual(clonedData, data, - "Normalization of " + entryName + " is consistent.") - next(null) - }) // fs.readFile - } // verifyConsistency - async.forEach(entries, verifyConsistency, function(err) { - if (err) throw err - t.end() - }) - }) // fs.readdir -}) // tap.test \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/dependencies.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/dependencies.js deleted file mode 100644 index 3e493ab0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/dependencies.js +++ /dev/null @@ -1,44 +0,0 @@ -var tap = require("tap") -var normalize = require("../lib/normalize") - -var warningMessages = require("../lib/warning_messages.json") -var safeFormat = require("../lib/safe_format") - -tap.test("warn if dependency contains anything else but a string", function(t) { - var a - var warnings = [] - function warn(w) { - warnings.push(w) - } - normalize(a={ - dependencies: { "a": 123}, - devDependencies: { "b": 456}, - optionalDependencies: { "c": 789} - }, warn) - - var wanted1 = safeFormat(warningMessages.nonStringDependency, "a", 123) - var wanted2 = safeFormat(warningMessages.nonStringDependency, "b", 456) - var wanted3 = safeFormat(warningMessages.nonStringDependency, "c", 789) - t.ok(~warnings.indexOf(wanted1), wanted1) - t.ok(~warnings.indexOf(wanted2), wanted2) - t.ok(~warnings.indexOf(wanted3), wanted3) - t.end() -}) - -tap.test("warn if bundleDependencies array contains anything else but strings", function(t) { - var a - var warnings = [] - function warn(w) { - warnings.push(w) - } - normalize(a={ - bundleDependencies: ["abc", 123, {foo:"bar"}] - }, warn) - - var wanted1 = safeFormat(warningMessages.nonStringBundleDependency, 123) - var wanted2 = safeFormat(warningMessages.nonStringBundleDependency, {foo:"bar"}) - var wanted2 = safeFormat(warningMessages.nonDependencyBundleDependency, "abc") - t.ok(~warnings.indexOf(wanted1), wanted1) - t.ok(~warnings.indexOf(wanted2), wanted2) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/async.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/async.json deleted file mode 100644 index 5e652a6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/async.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "async", - "description": "Higher-order functions and common patterns for asynchronous code", - "main": "./lib/async", - "author": "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" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/badscripts.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/badscripts.json deleted file mode 100644 index 25feb4c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/badscripts.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "bad-scripts-package", - "version": "0.0.1", - "scripts": "foo" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/bcrypt.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/bcrypt.json deleted file mode 100644 index 56e6d81b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/bcrypt.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "bcrypt", - "description": "A bcrypt library for NodeJS.", - "keywords": [ - "bcrypt", - "password", - "auth", - "authentication", - "encryption", - "crypt", - "crypto" - ], - "main": "./bcrypt", - "version": "0.7.5", - "author": "Nick Campbell (http://github.com/ncb000gt)", - "engines": { - "node": ">= 0.6.0" - }, - "repository": { - "type": "git", - "url": "http://github.com/ncb000gt/node.bcrypt.js.git" - }, - "licenses": [ - { - "type": "MIT" - } - ], - "bugs": { - "url": "http://github.com/ncb000gt/node.bcrypt.js/issues" - }, - "scripts": { - "test": "node-gyp configure build && nodeunit test" - }, - "dependencies": { - "bindings": "1.0.0" - }, - "devDependencies": { - "nodeunit": ">=0.6.4" - }, - "contributors": [ - "Antonio Salazar Cardozo (https://github.com/Shadowfiend)", - "Van Nguyen (https://github.com/thegoleffect)", - "David Trejo (https://github.com/dtrejo)", - "Ben Glow (https://github.com/pixelglow)", - "NewITFarmer.com <> (https://github.com/newitfarmer)", - "Alfred Westerveld (https://github.com/alfredwesterveld)", - "Vincent Côté-Roy (https://github.com/vincentcr)", - "Lloyd Hilaiel (https://github.com/lloyd)", - "Roman Shtylman (https://github.com/shtylman)", - "Vadim Graboys (https://github.com/vadimg)", - "Ben Noorduis <> (https://github.com/bnoordhuis)", - "Nate Rajlich (https://github.com/tootallnate)", - "Sean McArthur (https://github.com/seanmonstar)", - "Fanie Oosthuysen (https://github.com/weareu)" - ] -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/coffee-script.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/coffee-script.json deleted file mode 100644 index a0b60a9d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/coffee-script.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "coffee-script", - "description": "Unfancy JavaScript", - "keywords": ["javascript", "language", "coffeescript", "compiler"], - "author": "Jeremy Ashkenas", - "version": "1.6.2", - "licenses": [{ - "type": "MIT", - "url": "https://raw.github.com/jashkenas/coffee-script/master/LICENSE" - }], - "engines": { - "node": ">=0.8.0" - }, - "directories" : { - "lib" : "./lib/coffee-script" - }, - "main" : "./lib/coffee-script/coffee-script", - "bin": { - "coffee": "./bin/coffee", - "cake": "./bin/cake" - }, - "scripts": { - "test": "node ./bin/cake test" - }, - "homepage": "http://coffeescript.org", - "bugs": "https://github.com/jashkenas/coffee-script/issues", - "repository": { - "type": "git", - "url": "git://github.com/jashkenas/coffee-script.git" - }, - "devDependencies": { - "uglify-js": "~2.2", - "jison": ">=0.2.0" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/http-server.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/http-server.json deleted file mode 100644 index 90c28863..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/http-server.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "http-server", - "preferGlobal": true, - "version": "0.3.0", - "author": "Nodejitsu ", - "description": "a simple zero-configuration command-line http server", - "contributors": [ - { - "name": "Marak Squires", - "email": "marak@nodejitsu.com" - } - ], - "bin": { - "http-server": "./bin/http-server" - }, - "scripts": { - "start": "node ./bin/http-server", - "test": "vows --spec --isolate", - "predeploy": "echo This will be run before deploying the app", - "postdeploy": "echo This will be run after deploying the app" - }, - "main": "./lib/http-server", - "repository": { - "type": "git", - "url": "https://github.com/nodejitsu/http-server.git" - }, - "keywords": [ - "cli", - "http", - "server" - ], - "dependencies" : { - "colors" : "*", - "flatiron" : "0.1.x", - "optimist" : "0.2.x", - "union" : "0.1.x", - "ecstatic" : "0.1.x", - "plates" : "https://github.com/flatiron/plates/tarball/master" - }, - "analyze": false, - "devDependencies": { - "vows" : "0.5.x", - "request" : "2.1.x" - }, - "bundledDependencies": [ - "union", - "ecstatic" - ], - "license": "MIT", - "engines": { - "node": ">=0.6" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/movefile.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/movefile.json deleted file mode 100644 index 59338757..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/movefile.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "movefile", - "description": "rename implementation working over devices", - "version": "0.2.0", - "author": "yazgazan ", - "main": "./build/Release/movefile", - "keywords": ["move", "file", "rename"], - "repository": "git://github.com/yazgazan/movefile.git", - "directories": { - "lib": "./build/Release/" - }, - "scripts": { - "install": "./node_modules/node-gyp/bin/node-gyp.js configure && ./node_modules/node-gyp/bin/node-gyp.js build" - }, - "engines": { - "node": "*" - }, - "dependencies": { - "node-gyp": "~0.9.1" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/no-description.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/no-description.json deleted file mode 100644 index 9ea70b6b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/no-description.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "foo-bar-package", - "version": "0.0.1" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/node-module_exist.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/node-module_exist.json deleted file mode 100644 index acc05382..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/node-module_exist.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "node-module_exist", - "description": "Find if a NodeJS module is available to require or not", - "version": "0.0.1", - "main": "module_exist.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git@gist.github.com:3135914.git" - }, - "homepage": "https://github.com/FGRibreau", - "author": { - "name": "Francois-Guillaume Ribreau", - "url": "http://fgribreau.com.com/" - }, - "devDependencies": { - "nodeunit": "~0.7.4" - }, - "keywords": [ - "core", - "modules" - ], - "license": "MIT" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/npm.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/npm.json deleted file mode 100644 index 2262b313..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/npm.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "version": "1.2.17", - "name": "npm", - "publishConfig": { - "proprietary-attribs": false - }, - "description": "A package manager for node", - "keywords": [ - "package manager", - "modules", - "install", - "package.json" - ], - "preferGlobal": true, - "config": { - "publishtest": false - }, - "homepage": "https://npmjs.org/doc/", - "author": "Isaac Z. Schlueter (http://blog.izs.me)", - "repository": { - "type": "git", - "url": "https://github.com/isaacs/npm" - }, - "bugs": { - "email": "npm-@googlegroups.com", - "url": "http://github.com/isaacs/npm/issues" - }, - "directories": { - "doc": "./doc", - "man": "./man", - "lib": "./lib", - "bin": "./bin" - }, - "main": "./lib/npm.js", - "bin": "./bin/npm-cli.js", - "dependencies": { - "semver": "~1.1.2", - "ini": "~1.1.0", - "slide": "1", - "abbrev": "~1.0.4", - "graceful-fs": "~1.2.0", - "minimatch": "~0.2.11", - "nopt": "~2.1.1", - "rimraf": "2", - "request": "~2.9", - "which": "1", - "tar": "~0.1.17", - "fstream": "~0.1.22", - "block-stream": "*", - "inherits": "1", - "mkdirp": "~0.3.3", - "read": "~1.0.4", - "lru-cache": "~2.3.0", - "node-gyp": "~0.9.3", - "fstream-npm": "~0.1.3", - "uid-number": "0", - "archy": "0", - "chownr": "0", - "npmlog": "0", - "ansi": "~0.1.2", - "npm-registry-client": "~0.2.18", - "read-package-json": "~0.3.0", - "read-installed": "0", - "glob": "~3.1.21", - "init-package-json": "0.0.6", - "osenv": "0", - "lockfile": "~0.3.0", - "retry": "~0.6.0", - "once": "~1.1.1", - "npmconf": "0", - "opener": "~1.3.0", - "chmodr": "~0.1.0", - "cmd-shim": "~1.1.0" - }, - "bundleDependencies": [ - "semver", - "ini", - "slide", - "abbrev", - "graceful-fs", - "minimatch", - "nopt", - "rimraf", - "request", - "which", - "tar", - "fstream", - "block-stream", - "inherits", - "mkdirp", - "read", - "lru-cache", - "node-gyp", - "fstream-npm", - "uid-number", - "archy", - "chownr", - "npmlog", - "ansi", - "npm-registry-client", - "read-package-json", - "read-installed", - "glob", - "init-package-json", - "osenv", - "lockfile", - "retry", - "once", - "npmconf", - "opener", - "chmodr", - "cmd-shim" - ], - "devDependencies": { - "ronn": "~0.3.6", - "tap": "~0.4.0" - }, - "engines": { - "node": ">=0.6", - "npm": "1" - }, - "scripts": { - "test": "node ./test/run.js && tap test/tap/*.js", - "tap": "tap test/tap/*.js", - "prepublish": "node bin/npm-cli.js prune ; rm -rf test/*/*/node_modules ; make -j4 doc", - "dumpconf": "env | grep npm | sort | uniq", - "echo": "node bin/npm-cli.js" - }, - "licenses": [ - { - "type": "MIT +no-false-attribs", - "url": "https://github.com/isaacs/npm/raw/master/LICENSE" - } - ] -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/read-package-json.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/read-package-json.json deleted file mode 100644 index 7d0dae1d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/read-package-json.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "read-package-json", - "version": "0.1.1", - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "description": "The thing npm uses to read package.json files with semantics and defaults and validation", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/read-package-json.git" - }, - "license": "MIT", - "main": "read-json.js", - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": { - "glob": "~3.1.9", - "lru-cache": "~1.1.0", - "semver": "~1.0.14", - "slide": "~1.1.3" - }, - "devDependencies": { - "tap": "~0.2.5" - }, - "optionalDependencies": { - "npmlog": "0", - "graceful-fs": "~1.1.8" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/request.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/request.json deleted file mode 100644 index 24189a55..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/request.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "request", - "description": "Simplified HTTP request client.", - "tags": [ - "http", - "simple", - "util", - "utility" - ], - "version": "2.16.7", - "author": "Mikeal Rogers ", - "repository": { - "type": "git", - "url": "http://github.com/mikeal/request.git" - }, - "bugs": { - "url": "http://github.com/mikeal/request/issues" - }, - "engines": [ - "node >= 0.8.0" - ], - "main": "index.js", - "dependencies": { - "form-data": "~0.0.3", - "mime": "~1.2.7", - "hawk": "~0.10.2", - "node-uuid": "~1.4.0", - "cookie-jar": "~0.2.0", - "aws-sign": "~0.2.0", - "oauth-sign": "~0.2.0", - "forever-agent": "~0.2.0", - "tunnel-agent": "~0.2.0", - "json-stringify-safe": "~3.0.0", - "qs": "~0.5.4" - }, - "scripts": { - "test": "node tests/run.js" - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/underscore.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/underscore.json deleted file mode 100644 index bfc8b3d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/fixtures/underscore.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name" : "underscore", - "description" : "JavaScript's functional programming helper library.", - "homepage" : "http://underscorejs.org", - "keywords" : ["util", "functional", "server", "client", "browser"], - "author" : "Jeremy Ashkenas ", - "repository" : {"type": "git", "url": "git://github.com/documentcloud/underscore.git"}, - "main" : "underscore.js", - "version" : "1.4.4", - "devDependencies": { - "phantomjs": "1.9.0-1" - }, - "scripts": { - "test": "phantomjs test/vendor/runner.js test/index.html?noglobals=true" - }, - "license" : "MIT" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/github-urls.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/github-urls.js deleted file mode 100644 index da78160a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/github-urls.js +++ /dev/null @@ -1,44 +0,0 @@ -var tap = require("tap") -var normalize = require("../lib/normalize") -var fs = require("fs") -var async = require("async") - -var data -var warn - -tap.test("consistent normalization", function(t) { - var entries = [ - 'read-package-json.json', - 'http-server.json', - "movefile.json", - "node-module_exist.json" - ] - var verifyConsistency = function(entryName, next) { - warn = function(msg) { - // t.equal("",msg) // uncomment to have some kind of logging of warnings - } - var filename = __dirname + "/fixtures/" + entryName - fs.readFile(filename, function(err, contents) { - if (err) return next(err) - data = JSON.parse(contents.toString()) - normalize(data, warn) - if(data.name == "node-module_exist") { - t.same(data.bugs.url, "https://gist.github.com/3135914") - } - if(data.name == "read-package-json") { - t.same(data.bugs.url, "https://github.com/isaacs/read-package-json/issues") - } - if(data.name == "http-server") { - t.same(data.bugs.url, "https://github.com/nodejitsu/http-server/issues") - } - if(data.name == "movefile") { - t.same(data.bugs.url, "https://github.com/yazgazan/movefile/issues") - } - next(null) - }) // fs.readFile - } // verifyConsistency - async.forEach(entries, verifyConsistency, function(err) { - if (err) throw err - t.end() - }) -}) // tap.test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/mixedcase-names.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/mixedcase-names.js deleted file mode 100644 index a62b6993..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/mixedcase-names.js +++ /dev/null @@ -1,32 +0,0 @@ -var test = require('tap').test - -var normalize = require('../') -var fixer = normalize.fixer - -test('mixedcase', function (t) { - t.doesNotThrow(function () { - fixer.fixNameField({name: 'foo'}, true) - }) - - t.doesNotThrow(function () { - fixer.fixNameField({name: 'foo'}, false) - }) - - t.doesNotThrow(function () { - fixer.fixNameField({name: 'foo'}) - }) - - t.throws(function () { - fixer.fixNameField({name: 'Foo'}, true) - }, new Error('Invalid name: "Foo"'), 'should throw an error') - - t.throws(function () { - fixer.fixNameField({name: 'Foo'}, {strict: true}) - }, new Error('Invalid name: "Foo"'), 'should throw an error') - - t.doesNotThrow(function () { - fixer.fixNameField({name: 'Foo'}, {strict: true, allowLegacyCase: true}) - }) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/normalize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/normalize.js deleted file mode 100644 index 3926938b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/normalize.js +++ /dev/null @@ -1,246 +0,0 @@ -var tap = require("tap") -var fs = require("fs") -var path = require("path") - -var normalize = require("../lib/normalize") -var warningMessages = require("../lib/warning_messages.json") -var safeFormat = require("../lib/safe_format") - -var rpjPath = path.resolve(__dirname,"./fixtures/read-package-json.json") - -tap.test("normalize some package data", function(t) { - var packageData = require(rpjPath) - var warnings = [] - normalize(packageData, function(warning) { - warnings.push(warning) - }) - // there's no readme data in this particular object - t.equal( warnings.length, 1, "There's exactly one warning.") - fs.readFile(rpjPath, function(err, data) { - if(err) throw err - // Various changes have been made - t.notEqual(packageData, JSON.parse(data), "Output is different from input.") - t.end() - }) -}) - -tap.test("runs without passing warning function", function(t) { - var packageData = require(rpjPath) - fs.readFile(rpjPath, function(err, data) { - if(err) throw err - normalize(JSON.parse(data)) - t.ok(true, "If you read this, this means I'm still alive.") - t.end() - }) -}) - -tap.test("empty object", function(t) { - var packageData = {} - var expect = - { name: '', - version: '', - readme: 'ERROR: No README data found!', - _id: '@' } - - var warnings = [] - function warn(m) { - warnings.push(m) - } - normalize(packageData, warn) - t.same(packageData, expect) - t.same(warnings, [ - warningMessages.missingDescription, - warningMessages.missingRepository, - warningMessages.missingReadme, - warningMessages.missingLicense - ]) - t.end() -}) - -tap.test("core module name", function(t) { - var warnings = [] - function warn(m) { - warnings.push(m) - } - var a - normalize(a={ - name: "http", - readme: "read yourself how about", - homepage: 123, - bugs: "what is this i don't even", - repository: "Hello." - }, warn) - - var expect = [ - safeFormat(warningMessages.conflictingName, 'http'), - warningMessages.nonEmailUrlBugsString, - warningMessages.emptyNormalizedBugs, - warningMessages.nonUrlHomepage, - warningMessages.missingLicense - ] - t.same(warnings, expect) - t.end() -}) - -tap.test("urls required", function(t) { - var warnings = [] - function warn(w) { - warnings.push(w) - } - normalize({ - bugs: { - url: "/1", - email: "not an email address" - } - }, warn) - var a - normalize(a={ - readme: "read yourself how about", - homepage: 123, - bugs: "what is this i don't even", - repository: "Hello." - }, warn) - - console.error(a) - - var expect = - [ warningMessages.missingDescription, - warningMessages.missingRepository, - warningMessages.nonUrlBugsUrlField, - warningMessages.nonEmailBugsEmailField, - warningMessages.emptyNormalizedBugs, - warningMessages.missingReadme, - warningMessages.missingLicense, - warningMessages.nonEmailUrlBugsString, - warningMessages.emptyNormalizedBugs, - warningMessages.nonUrlHomepage, - warningMessages.missingLicense] - t.same(warnings, expect) - t.end() -}) - -tap.test("homepage field must start with a protocol.", function(t) { - var warnings = [] - function warn(w) { - warnings.push(w) - } - var a - normalize(a={ - homepage: 'example.org' - }, warn) - - console.error(a) - - var expect = - [ warningMessages.missingDescription, - warningMessages.missingRepository, - warningMessages.missingReadme, - warningMessages.missingProtocolHomepage, - warningMessages.missingLicense] - t.same(warnings, expect) - t.same(a.homepage, 'http://example.org') - t.end() -}) - -tap.test("license field should be a valid SPDX expression", function(t) { - var warnings = [] - function warn(w) { - warnings.push(w) - } - var a - normalize(a={ - license: 'Apache 2' - }, warn) - - console.error(a) - - var expect = - [ warningMessages.missingDescription, - warningMessages.missingRepository, - warningMessages.missingReadme, - warningMessages.invalidLicense] - t.same(warnings, expect) - t.end() -}) - -tap.test("gist bugs url", function(t) { - var d = { - repository: "git@gist.github.com:123456.git" - } - normalize(d) - t.same(d.repository, { type: 'git', url: 'git+ssh://git@gist.github.com/123456.git' }) - t.same(d.bugs, { url: 'https://gist.github.com/123456' }) - t.end(); -}); - -tap.test("singularize repositories", function(t) { - var d = {repositories:["git@gist.github.com:123456.git"]} - normalize(d) - t.same(d.repository, { type: 'git', url: 'git+ssh://git@gist.github.com/123456.git' }) - t.end() -}); - -tap.test("treat visionmedia/express as github repo", function(t) { - var d = {repository: {type: "git", url: "visionmedia/express"}} - normalize(d) - t.same(d.repository, { type: "git", url: "git+https://github.com/visionmedia/express.git" }) - t.end() -}); - -tap.test("treat isaacs/node-graceful-fs as github repo", function(t) { - var d = {repository: {type: "git", url: "isaacs/node-graceful-fs"}} - normalize(d) - t.same(d.repository, { type: "git", url: "git+https://github.com/isaacs/node-graceful-fs.git" }) - t.end() -}); - -tap.test("homepage field will set to github url if repository is a github repo", function(t) { - var a - normalize(a={ - repository: { type: "git", url: "https://github.com/isaacs/node-graceful-fs" } - }) - t.same(a.homepage, 'https://github.com/isaacs/node-graceful-fs#readme') - t.end() -}) - -tap.test("homepage field will set to github gist url if repository is a gist", function(t) { - var a - normalize(a={ - repository: { type: "git", url: "git@gist.github.com:123456.git" } - }) - t.same(a.homepage, 'https://gist.github.com/123456') - t.end() -}) - -tap.test("homepage field will set to github gist url if repository is a shorthand reference", function(t) { - var a - normalize(a={ - repository: { type: "git", url: "sindresorhus/chalk" } - }) - t.same(a.homepage, 'https://github.com/sindresorhus/chalk#readme') - t.end() -}) - -tap.test("don't mangle github shortcuts in dependencies", function(t) { - var d = {dependencies: {"node-graceful-fs": "isaacs/node-graceful-fs"}} - normalize(d) - t.same(d.dependencies, {"node-graceful-fs": "github:isaacs/node-graceful-fs" }) - t.end() -}); - -tap.test("deprecation warning for array in dependencies fields", function(t) { - var a - var warnings = [] - function warn(w) { - warnings.push(w) - } - normalize(a={ - dependencies: [], - devDependencies: [], - optionalDependencies: [] - }, warn) - t.ok(~warnings.indexOf(safeFormat(warningMessages.deprecatedArrayDependencies, 'dependencies')), "deprecation warning") - t.ok(~warnings.indexOf(safeFormat(warningMessages.deprecatedArrayDependencies, 'devDependencies')), "deprecation warning") - t.ok(~warnings.indexOf(safeFormat(warningMessages.deprecatedArrayDependencies, 'optionalDependencies')), "deprecation warning") - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/scoped.js deleted file mode 100644 index 82d2a543..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/scoped.js +++ /dev/null @@ -1,59 +0,0 @@ -var test = require("tap").test - -var fixNameField = require("../lib/fixer.js").fixNameField -var fixBinField = require("../lib/fixer.js").fixBinField - -test("a simple scoped module has a valid name", function (t) { - var data = {name : "@org/package"} - fixNameField(data, false) - t.equal(data.name, "@org/package", "name was unchanged") - - t.end() -}) - -test("'org@package' is not a valid name", function (t) { - t.throws(function () { - fixNameField({name : "org@package"}, false) - }, "blows up as expected") - - t.end() -}) - -test("'org=package' is not a valid name", function (t) { - t.throws(function () { - fixNameField({name : "org=package"}, false) - }, "blows up as expected") - - t.end() -}) - -test("'@org=sub/package' is not a valid name", function (t) { - t.throws(function () { - fixNameField({name : "@org=sub/package"}, false) - }, "blows up as expected") - - t.end() -}) - -test("'@org/' is not a valid name", function (t) { - t.throws(function () { - fixNameField({name : "@org/"}, false) - }, "blows up as expected") - - t.end() -}) - -test("'@/package' is not a valid name", function (t) { - t.throws(function () { - fixNameField({name : "@/package"}, false) - }, "blows up as expected") - - t.end() -}) - -test("name='@org/package', bin='bin.js' is bin={package:'bin.js'}", function (t) { - var obj = {name : "@org/package", bin: "bin.js"} - fixBinField(obj) - t.isDeeply(obj.bin, {package: 'bin.js'}) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/scripts.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/scripts.js deleted file mode 100644 index 473596ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/scripts.js +++ /dev/null @@ -1,24 +0,0 @@ -var tap = require("tap") -var normalize = require("../lib/normalize") -var path = require("path") -var fs = require("fs") - -tap.test("bad scripts", function (t) { - var p = path.resolve(__dirname, "./fixtures/badscripts.json") - fs.readFile (p, function (err, contents) { - if (err) throw err - var originalData = JSON.parse(contents.toString()) - var data = JSON.parse(contents.toString()) - normalize(data) - t.ok(data) - verifyFields(t, data, originalData) - t.end() - }) -}) - -function verifyFields (t, normalized, original) { - t.equal(normalized.version, original.version, "Version field stays same") - t.equal(normalized.name, original.name, "Name stays the same.") - // scripts is not an object, so it should be deleted - t.notOk(normalized.scripts) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/strict.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/strict.js deleted file mode 100644 index 40e09dcf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/strict.js +++ /dev/null @@ -1,54 +0,0 @@ -var test = require("tap").test - -var normalize = require("../") - -test("strict", function(t) { - var threw - - try { - threw = false - normalize({name: "X"}, true) - } catch (er) { - threw = true - t.equal(er.message, 'Invalid name: "X"') - } finally { - t.equal(threw, true) - } - - try { - threw = false - normalize({name:" x "}, true) - } catch (er) { - threw = true - t.equal(er.message, 'Invalid name: " x "') - } finally { - t.equal(threw, true) - } - - try { - threw = false - normalize({name:"x",version:"01.02.03"}, true) - } catch (er) { - threw = true - t.equal(er.message, 'Invalid version: "01.02.03"') - } finally { - t.equal(threw, true) - } - - // these should not throw - var slob = {name:" X ",version:"01.02.03",dependencies:{ - y:">01.02.03", - z:"! 99 $$ASFJ(Aawenf90awenf as;naw.3j3qnraw || an elephant" - }} - normalize(slob, false) - t.same(slob, - { name: 'X', - version: '1.2.3', - dependencies: - { y: '>01.02.03', - z: '! 99 $$ASFJ(Aawenf90awenf as;naw.3j3qnraw || an elephant' }, - readme: 'ERROR: No README data found!', - _id: 'X@1.2.3' }) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/typo.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/typo.js deleted file mode 100644 index 0cd3eb49..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/normalize-package-data/test/typo.js +++ /dev/null @@ -1,133 +0,0 @@ -var test = require('tap').test - -var normalize = require('../') -var typos = require('../lib/typos.json') -var warningMessages = require("../lib/warning_messages.json") -var safeFormat = require("../lib/safe_format") - -test('typos', function(t) { - var warnings = [] - function warn(m) { - warnings.push(m) - } - - var typoMessage = safeFormat.bind(undefined, warningMessages.typo) - - var expect = - [ warningMessages.missingRepository, - warningMessages.missingLicense, - typoMessage('dependancies', 'dependencies'), - typoMessage('dependecies', 'dependencies'), - typoMessage('depdenencies', 'dependencies'), - typoMessage('devEependencies', 'devDependencies'), - typoMessage('depends', 'dependencies'), - typoMessage('dev-dependencies', 'devDependencies'), - typoMessage('devDependences', 'devDependencies'), - typoMessage('devDepenencies', 'devDependencies'), - typoMessage('devdependencies', 'devDependencies'), - typoMessage('repostitory', 'repository'), - typoMessage('repo', 'repository'), - typoMessage('prefereGlobal', 'preferGlobal'), - typoMessage('hompage', 'homepage'), - typoMessage('hampage', 'homepage'), - typoMessage('autohr', 'author'), - typoMessage('autor', 'author'), - typoMessage('contributers', 'contributors'), - typoMessage('publicationConfig', 'publishConfig') ] - - normalize({"dependancies": "dependencies" - ,"dependecies": "dependencies" - ,"depdenencies": "dependencies" - ,"devEependencies": "devDependencies" - ,"depends": "dependencies" - ,"dev-dependencies": "devDependencies" - ,"devDependences": "devDependencies" - ,"devDepenencies": "devDependencies" - ,"devdependencies": "devDependencies" - ,"repostitory": "repository" - ,"repo": "repository" - ,"prefereGlobal": "preferGlobal" - ,"hompage": "homepage" - ,"hampage": "homepage" - ,"autohr": "author" - ,"autor": "author" - ,"contributers": "contributors" - ,"publicationConfig": "publishConfig" - ,readme:"asdf" - ,name:"name" - ,version:"1.2.5"}, warn) - - t.same(warnings, expect) - - warnings.length = 0 - var expect = - [ warningMessages.missingDescription, - warningMessages.missingRepository, - typoMessage("bugs['web']", "bugs['url']"), - typoMessage("bugs['name']", "bugs['url']"), - warningMessages.nonUrlBugsUrlField, - warningMessages.emptyNormalizedBugs, - warningMessages.missingReadme, - warningMessages.missingLicense] - - normalize({name:"name" - ,version:"1.2.5" - ,bugs:{web:"url",name:"url"}}, warn) - - t.same(warnings, expect) - - warnings.length = 0 - var expect = - [ warningMessages.missingDescription, - warningMessages.missingRepository, - warningMessages.missingReadme, - warningMessages.missingLicense, - typoMessage('script', 'scripts') ] - - normalize({name:"name" - ,version:"1.2.5" - ,script:{server:"start",tests:"test"}}, warn) - - t.same(warnings, expect) - - warnings.length = 0 - expect = - [ warningMessages.missingDescription, - warningMessages.missingRepository, - typoMessage("scripts['server']", "scripts['start']"), - typoMessage("scripts['tests']", "scripts['test']"), - warningMessages.missingReadme, - warningMessages.missingLicense] - - normalize({name:"name" - ,version:"1.2.5" - ,scripts:{server:"start",tests:"test"}}, warn) - - t.same(warnings, expect) - - warnings.length = 0 - expect = - [ warningMessages.missingDescription, - warningMessages.missingRepository, - warningMessages.missingReadme, - warningMessages.missingLicense] - - normalize({name:"name" - ,version:"1.2.5" - ,scripts:{server:"start",tests:"test" - ,start:"start",test:"test"}}, warn) - - t.same(warnings, expect) - - warnings.length = 0 - expect = [] - - normalize({private: true - ,name:"name" - ,version:"1.2.5" - ,scripts:{server:"start",tests:"test"}}, warn) - - t.same(warnings, expect) - - t.end(); -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/LICENSE deleted file mode 100644 index 20a47625..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) npm, Inc. and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/README.md deleted file mode 100644 index 47bd08a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# npm-cache-filename - -Given a cache folder and url, return the appropriate cache folder. - -## USAGE - -```javascript -var cf = require('npm-cache-filename'); -console.log(cf('/tmp/cache', 'https://registry.npmjs.org:1234/foo/bar')); -// outputs: /tmp/cache/registry.npmjs.org_1234/foo/bar -``` - -As a bonus, you can also bind it to a specific root path: - -```javascript -var cf = require('npm-cache-filename'); -var getFile = cf('/tmp/cache'); - -console.log(getFile('https://registry.npmjs.org:1234/foo/bar')); -// outputs: /tmp/cache/registry.npmjs.org_1234/foo/bar -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/index.js deleted file mode 100644 index 50d21792..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/index.js +++ /dev/null @@ -1,24 +0,0 @@ -var url = require('url');; -var path = require('path');; - -module.exports = cf;; - -function cf(root, u) { - if (!u) - return cf.bind(null, root);; - - u = url.parse(u);; - var h = u.host.replace(/:/g, '_');; - // Strip off any /-rev/... or ?rev=... bits - var revre = /(\?rev=|\?.*?&rev=|\/-rev\/).*$/;; - var parts = u.path.replace(revre, '').split('/').slice(1);; - // Make sure different git references get different folders - if (u.hash && u.hash.length > 1) { - parts.push(u.hash.slice(1));; - };; - var p = [root, h].concat(parts.map(function(part) { - return encodeURIComponent(part).replace(/%/g, '_');; - }));; - - return path.join.apply(path, p);; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/package.json deleted file mode 100644 index 76ec9d1a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "npm-cache-filename", - "version": "1.0.2", - "description": "Given a cache folder and url, return the appropriate cache folder.", - "main": "index.js", - "dependencies": {}, - "devDependencies": { - "tap": "^1.2.0" - }, - "scripts": { - "test": "tap test.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/npm/npm-cache-filename.git" - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/npm-cache-filename/issues" - }, - "homepage": "https://github.com/npm/npm-cache-filename", - "gitHead": "b7eef12919fdf544a3b83bba73093f7268c40c1e", - "_id": "npm-cache-filename@1.0.2", - "_shasum": "ded306c5b0bfc870a9e9faf823bc5f283e05ae11", - "_from": "npm-cache-filename@>=1.0.2 <1.1.0", - "_npmVersion": "2.12.1", - "_nodeVersion": "2.2.2", - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" - }, - "dist": { - "shasum": "ded306c5b0bfc870a9e9faf823bc5f283e05ae11", - "tarball": "http://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "kat", - "email": "kat@lua.cz" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/test.js deleted file mode 100644 index bdca80b5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-cache-filename/test.js +++ /dev/null @@ -1,23 +0,0 @@ -var test = require('tap').test;; -test('it does the thing it says it does', function(t) { - var cf = require('./');; - - t.equal(cf('/tmp/cache', 'https://foo:134/xyz?adf=foo:bar/baz'), - '/tmp/cache/foo_134/xyz_3Fadf_3Dfoo_3Abar/baz');; - - var getFile = cf('/tmp/cache');; - t.equal(getFile('https://foo:134/xyz?adf=foo:bar/baz'), - '/tmp/cache/foo_134/xyz_3Fadf_3Dfoo_3Abar/baz');; - - t.equal(cf("/tmp", "https://foo:134/xyz/-rev/baz"), - '/tmp/foo_134/xyz') - t.equal(cf("/tmp", "https://foo:134/xyz/?rev=baz"), - '/tmp/foo_134/xyz') - t.equal(cf("/tmp", "https://foo:134/xyz/?foo&rev=baz"), - '/tmp/foo_134/xyz') - t.equal(cf("/tmp", "https://foo:134/xyz-rev/baz"), - '/tmp/foo_134/xyz-rev/baz') - t.equal(cf("/tmp", "git://foo:134/xyz-rev/baz.git#master"), - '/tmp/foo_134/xyz-rev/baz.git/master') - t.end(); -});; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/CHANGELOG.md deleted file mode 100644 index f16f72d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/CHANGELOG.md +++ /dev/null @@ -1,10 +0,0 @@ -### v3.0.0 2016-01-12 - -* Change error messages to be more informative. -* checkEngine, when not in strict mode, now calls back with the error - object as the second argument instead of warning. -* checkCycle no longer logs when cycle errors are found. - -### v2.0.0 2015-01-20 - -* Remove checking of engineStrict in the package.json diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/LICENSE deleted file mode 100644 index 3bed8320..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) Robert Kowalski and Isaac Z. Schlueter ("Authors") -All rights reserved. - -The BSD License - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE AUTHORS 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 AUTHORS 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/README.md deleted file mode 100644 index 19ae5a4a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# npm-install-checks - -A package that contains checks that npm runs during the installation. - -## API - -### .checkEngine(target, npmVer, nodeVer, force, strict, cb) -Check if node/npm version is supported by the package. If not -strict and it isn't supported, `cb` is called with the error -object as its second argument. - -Error type: `ENOTSUP` - -### .checkPlatform(target, force, cb) -Check if OS/Arch is supported by the package. - -Error type: `EBADPLATFORM` - -### .checkCycle(target, ancestors, cb) -Check for cyclic dependencies. - -Error type: `ECYCLE` - -### .checkGit(folder, cb) -Check if a folder is a .git folder. - -Error type: `EISGIT` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/index.js deleted file mode 100644 index 9ea7b875..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/index.js +++ /dev/null @@ -1,144 +0,0 @@ -var fs = require('fs') -var path = require('path') -var util = require('util') -var semver = require('semver') - -exports.checkEngine = checkEngine -function checkEngine (target, npmVer, nodeVer, force, strict, cb) { - var nodev = force ? null : nodeVer - var eng = target.engines - if (!eng) return cb() - if (nodev && eng.node && !semver.satisfies(nodev, eng.node) || - eng.npm && !semver.satisfies(npmVer, eng.npm)) { - var er = new Error(util.format('Unsupported engine for %s: wanted: %j (current: %j)', - target._id, eng, {node: nodev, npm: npmVer})) - er.code = 'ENOTSUP' - er.required = eng - er.pkgid = target._id - if (strict) { - return cb(er) - } else { - return cb(null, er) - } - } - return cb() -} - -exports.checkPlatform = checkPlatform -function checkPlatform (target, force, cb) { - var platform = process.platform - var arch = process.arch - var osOk = true - var cpuOk = true - - if (force) { - return cb() - } - - if (target.os) { - osOk = checkList(platform, target.os) - } - if (target.cpu) { - cpuOk = checkList(arch, target.cpu) - } - if (!osOk || !cpuOk) { - var er = new Error(util.format('Unsupported platform for %s: wanted %j (current: %j)', - target._id, target, {os: platform, cpu: arch})) - er.code = 'EBADPLATFORM' - er.os = target.os || ['any'] - er.cpu = target.cpu || ['any'] - er.pkgid = target._id - return cb(er) - } - return cb() -} - -function checkList (value, list) { - var tmp - var match = false - var blc = 0 - if (typeof list === 'string') { - list = [list] - } - if (list.length === 1 && list[0] === 'any') { - return true - } - for (var i = 0; i < list.length; ++i) { - tmp = list[i] - if (tmp[0] === '!') { - tmp = tmp.slice(1) - if (tmp === value) { - return false - } - ++blc - } else { - match = match || tmp === value - } - } - return match || blc === list.length -} - -exports.checkCycle = checkCycle -function checkCycle (target, ancestors, cb) { - // there are some very rare and pathological edge-cases where - // a cycle can cause npm to try to install a never-ending tree - // of stuff. - // Simplest: - // - // A -> B -> A' -> B' -> A -> B -> A' -> B' -> A -> ... - // - // Solution: Simply flat-out refuse to install any name@version - // that is already in the prototype tree of the ancestors object. - // A more correct, but more complex, solution would be to symlink - // the deeper thing into the new location. - // Will do that if anyone whines about this irl. - // - // Note: `npm install foo` inside of the `foo` package will abort - // earlier if `--force` is not set. However, if it IS set, then - // we need to still fail here, but just skip the first level. Of - // course, it'll still fail eventually if it's a true cycle, and - // leave things in an undefined state, but that's what is to be - // expected when `--force` is used. That is why getPrototypeOf - // is used *twice* here: to skip the first level of repetition. - - var p = Object.getPrototypeOf(Object.getPrototypeOf(ancestors)) - var name = target.name - var version = target.version - while (p && p !== Object.prototype && p[name] !== version) { - p = Object.getPrototypeOf(p) - } - if (p[name] !== version) return cb() - - var er = new Error(target._id + ': Unresolvable cycle detected') - var tree = [target._id, JSON.parse(JSON.stringify(ancestors))] - var t = Object.getPrototypeOf(ancestors) - while (t && t !== Object.prototype) { - if (t === p) t.THIS_IS_P = true - tree.push(JSON.parse(JSON.stringify(t))) - t = Object.getPrototypeOf(t) - } - er.pkgid = target._id - er.code = 'ECYCLE' - return cb(er) -} - -exports.checkGit = checkGit -function checkGit (folder, cb) { - // if it's a git repo then don't touch it! - fs.lstat(folder, function (er, s) { - if (er || !s.isDirectory()) return cb() - else checkGit_(folder, cb) - }) -} - -function checkGit_ (folder, cb) { - fs.stat(path.resolve(folder, '.git'), function (er, s) { - if (!er && s.isDirectory()) { - var e = new Error(folder + ': Appears to be a git repo or submodule.') - e.path = folder - e.code = 'EISGIT' - return cb(e) - } - cb() - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/package.json deleted file mode 100644 index 71e725db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/package.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "_args": [ - [ - "npm-install-checks@3.0.0", - "/Users/rebecca/code/npm" - ] - ], - "_from": "npm-install-checks@3.0.0", - "_id": "npm-install-checks@3.0.0", - "_inCache": true, - "_installable": true, - "_location": "/npm-install-checks", - "_nodeVersion": "4.2.2", - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "3.5.3", - "_phantomChildren": {}, - "_requested": { - "name": "npm-install-checks", - "raw": "npm-install-checks@3.0.0", - "rawSpec": "3.0.0", - "scope": null, - "spec": "3.0.0", - "type": "version" - }, - "_requiredBy": [ - "/" - ], - "_shasum": "d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7", - "_shrinkwrap": null, - "_spec": "npm-install-checks@3.0.0", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "rok@kowalski.gd", - "name": "Robert Kowalski" - }, - "bugs": { - "url": "https://github.com/npm/npm-install-checks/issues" - }, - "dependencies": { - "semver": "^2.3.0 || 3.x || 4 || 5" - }, - "description": "checks that npm runs during the installation of a module", - "devDependencies": { - "mkdirp": "~0.3.5", - "rimraf": "~2.2.5", - "standard": "^5.4.1", - "tap": "^5.0.1" - }, - "directories": {}, - "dist": { - "shasum": "d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7", - "tarball": "http://registry.npmjs.org/npm-install-checks/-/npm-install-checks-3.0.0.tgz" - }, - "gitHead": "49d3ea33262de10f99ac6968e621be416f572774", - "homepage": "https://github.com/npm/npm-install-checks", - "keywords": [ - "install", - "npm," - ], - "license": "BSD-2-Clause", - "main": "index.js", - "maintainers": [ - { - "name": "robertkowalski", - "email": "rok@kowalski.gd" - }, - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - } - ], - "name": "npm-install-checks", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/npm/npm-install-checks.git" - }, - "scripts": { - "test": "standard && tap --coverage test/*.js" - }, - "version": "3.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/test/check-engine.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/test/check-engine.js deleted file mode 100644 index a8fa0390..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/test/check-engine.js +++ /dev/null @@ -1,62 +0,0 @@ -var test = require('tap').test -var c = require('../index.js').checkEngine - -test('no engine defined', function (t) { - c({ engines: {} }, '1.1.2', '0.2.1', false, true, function (err) { - t.notOk(err, 'no error present') - t.end() - }) -}) - -test('node version too old', function (t) { - var target = { engines: { node: '0.10.24' } } - c(target, '1.1.2', '0.10.18', false, true, function (err) { - t.ok(err, 'returns an error') - t.equals(err.required.node, '0.10.24') - t.end() - }) -}) - -test('npm version too old', function (t) { - var target = { engines: { npm: '^1.4.6' } } - c(target, '1.3.2', '0.2.1', false, true, function (err) { - t.ok(err, 'returns an error') - t.equals(err.required.npm, '^1.4.6') - t.end() - }) -}) - -test('strict=false w/engineStrict json does not return an error', function (t) { - var target = { engines: { npm: '1.3.6' }, engineStrict: true } - c(target, '1.4.2', '0.2.1', false, false, function (err, warn) { - t.notOk(err, 'returns no error') - t.ok(warn, 'returns warning object') - t.equals(warn.required.npm, '1.3.6') - t.end() - }) -}) - -test('force node version too old', function (t) { - var target = { _id: 'test@1.0.0', engines: { node: '0.1.0' } } - c(target, '1.3.2', '0.2.1', true, true, function (err, warn) { - t.is(err, undefined, 'returns no error') - t.notOk(warn, 'returns no warning') - t.end() - }) -}) - -test('force npm version too old', function (t) { - var target = { _id: 'test@1.0.0', engines: { npm: '^1.4.6' } } - c(target, '1.3.2', '0.2.1', true, true, function (err, warn) { - t.ok(err, "can't force an npm version mismatch") - t.end() - }) -}) - -test('no engine', function (t) { - c({}, '1.3.2', '0.2.1', false, true, function (err, warn) { - t.notOk(err, 'returns no error') - t.notOk(warn, 'returns no warning') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/test/check-git.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/test/check-git.js deleted file mode 100644 index 0fadd063..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/test/check-git.js +++ /dev/null @@ -1,37 +0,0 @@ -var test = require('tap').test -var c = require('../index.js').checkGit -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var path = require('path') -var gitFixturePath = path.resolve(__dirname, 'out') - -test('is .git repo', function (t) { - mkdirp(gitFixturePath + '/.git', function () { - c(gitFixturePath, function (err) { - t.ok(err, 'error present') - t.equal(err.code, 'EISGIT') - t.end() - }) - }) -}) - -test('is not a .git repo', function (t) { - c(__dirname, function (err) { - t.notOk(err, 'error not present') - t.end() - }) -}) - -test('non-thing', function (t) { - c('/path/to/no/where', function (err) { - t.notOk(err, 'non-existent path is not a .git repo') - t.end() - }) -}) - -test('cleanup', function (t) { - rimraf(gitFixturePath, function () { - t.pass('cleanup') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/test/check-platform.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/test/check-platform.js deleted file mode 100644 index 23dbfba4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-install-checks/test/check-platform.js +++ /dev/null @@ -1,104 +0,0 @@ -var test = require('tap').test -var c = require('../index.js').checkPlatform - -test('target cpu wrong', function (t) { - var target = {} - target.cpu = 'enten-cpu' - target.os = 'any' - c(target, false, function (err) { - t.ok(err, 'error present') - t.equal(err.code, 'EBADPLATFORM') - t.end() - }) -}) - -test('os wrong', function (t) { - var target = {} - target.cpu = 'any' - target.os = 'enten-os' - c(target, false, function (err) { - t.ok(err, 'error present') - t.equal(err.code, 'EBADPLATFORM') - t.end() - }) -}) - -test('nothing wrong', function (t) { - var target = {} - target.cpu = 'any' - target.os = 'any' - c(target, false, function (err) { - t.notOk(err, 'no error present') - t.end() - }) -}) - -test('force', function (t) { - var target = {} - target.cpu = 'enten-cpu' - target.os = 'any' - c(target, true, function (err) { - t.notOk(err, 'no error present') - t.end() - }) -}) - -test('no opinions', function (t) { - var target = {} - c(target, false, function (err) { - t.notOk(err, 'no error present') - t.end() - }) -}) - -test('only target cpu wrong', function (t) { - var target = {} - target.cpu = 'enten-cpu' - c(target, false, function (err) { - t.ok(err, 'error present') - t.equal(err.code, 'EBADPLATFORM') - t.end() - }) -}) - -test('only os wrong', function (t) { - var target = {} - target.os = 'enten-os' - c(target, false, function (err) { - t.ok(err, 'error present') - t.equal(err.code, 'EBADPLATFORM') - t.end() - }) -}) - -test('everything wrong w/arrays', function (t) { - var target = {} - target.cpu = ['enten-cpu'] - target.os = ['enten-os'] - c(target, false, function (err) { - t.ok(err, 'error present') - t.equal(err.code, 'EBADPLATFORM') - t.end() - }) -}) - -test('os wrong (negation)', function (t) { - var target = {} - target.cpu = 'any' - target.os = '!' + process.platform - c(target, false, function (err) { - t.ok(err, 'error present') - t.equal(err.code, 'EBADPLATFORM') - t.end() - }) -}) - -test('nothing wrong (negation)', function (t) { - var target = {} - target.cpu = '!enten-cpu' - target.os = '!enten-os' - c(target, false, function (err) { - t.notOk(err, 'no error present') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/.travis.yml deleted file mode 100644 index ab9182bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: node_js -node_js: - - "5" - - "4" - - iojs - - "0.12" - - "0.10" - - "0.8" -sudo: false -script: "npm test" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/LICENSE deleted file mode 100644 index 05eeeb88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/README.md deleted file mode 100644 index 82968a4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/README.md +++ /dev/null @@ -1,105 +0,0 @@ -# npm-package-arg - -Parse package name and specifier passed to commands like `npm install` or -`npm cache add`. This just parses the text given-- it's worth noting that -`npm` has further logic it applies by looking at your disk to figure out -what ambiguous specifiers are. If you want that logic, please see -[realize-package-specifier]. - -[realize-package-specifier]: https://www.npmjs.org/package/realize-package-specifier - -Arguments look like: `foo@1.2`, `@bar/foo@1.2`, `foo@user/foo`, `http://x.com/foo.tgz`, -`git+https://github.com/user/foo`, `bitbucket:user/foo`, `foo.tar.gz` or `bar` - -## EXAMPLES - -```javascript -var assert = require("assert") -var npa = require("npm-package-arg") - -// Pass in the descriptor, and it'll return an object -var parsed = npa("@bar/foo@1.2") - -// Returns an object like: -{ - raw: '@bar/foo@1.2', // what was passed in - name: "@bar/foo", // the name of the package - scope: "@bar", // the private scope of the package, or null - type: "range", // the type of specifier this is - spec: ">=1.2.0 <1.3.0" // the expanded specifier - rawSpec: "1.2" // the specifier as passed in - } - -// Parsing urls pointing at hosted git services produces a variation: -var parsed = npa("git+https://github.com/user/foo") - -// Returns an object like: -{ - raw: 'git+https://github.com/user/foo', - scope: null, - name: null, - rawSpec: 'git+https://github.com/user/foo', - spec: 'user/foo', - type: 'hosted', - hosted: { - type: 'github', - ssh: 'git@github.com:user/foo.git', - sshurl: 'git+ssh://git@github.com/user/foo.git', - https: 'https://github.com/user/foo.git', - directUrl: 'https://raw.githubusercontent.com/user/foo/master/package.json' - } -} - -// Completely unreasonable invalid garbage throws an error -// Make sure you wrap this in a try/catch if you have not -// already sanitized the inputs! -assert.throws(function() { - npa("this is not \0 a valid package name or url") -}) -``` - -## USING - -`var npa = require('npm-package-arg')` - -* var result = npa(*arg*) - -Parses *arg* and returns a result object detailing what *arg* is. - -*arg* -- a package descriptor, like: `foo@1.2`, or `foo@user/foo`, or -`http://x.com/foo.tgz`, or `git+https://github.com/user/foo` - -## RESULT OBJECT - -The objects that are returned by npm-package-arg contain the following -keys: - -* `name` - If known, the `name` field expected in the resulting pkg. -* `type` - One of the following strings: - * `git` - A git repo - * `hosted` - A hosted project, from github, bitbucket or gitlab. Originally - either a full url pointing at one of these services or a shorthand like - `user/project` or `github:user/project` for github or `bitbucket:user/project` - for bitbucket. - * `tag` - A tagged version, like `"foo@latest"` - * `version` - A specific version number, like `"foo@1.2.3"` - * `range` - A version range, like `"foo@2.x"` - * `local` - A local file or folder path - * `remote` - An http url (presumably to a tgz) -* `spec` - The "thing". URL, the range, git repo, etc. -* `hosted` - If type=hosted this will be an object with the following keys: - * `type` - github, bitbucket or gitlab - * `ssh` - The ssh path for this git repo - * `sshUrl` - The ssh URL for this git repo - * `httpsUrl` - The HTTPS URL for this git repo - * `directUrl` - The URL for the package.json in this git repo -* `raw` - The original un-modified string that was provided. -* `rawSpec` - The part after the `name@...`, as it was originally - provided. -* `scope` - If a name is something like `@org/module` then the `scope` - field will be set to `org`. If it doesn't have a scoped name, then - scope is `null`. - -If you only include a name and no specifier part, eg, `foo` or `foo@` then -a default of `latest` will be used (as of 4.1.0). This is contrast with -previous behavior where `*` was used. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/npa.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/npa.js deleted file mode 100644 index 1e6deb1e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/npa.js +++ /dev/null @@ -1,190 +0,0 @@ -var url = require("url") -var assert = require("assert") -var util = require("util") -var semver = require("semver") -var path = require("path") -var HostedGit = require("hosted-git-info") - -module.exports = npa - -var isWindows = process.platform === "win32" || global.FAKE_WINDOWS -var slashRe = isWindows ? /\\|[/]/ : /[/]/ - -var parseName = /^(?:@([^/]+?)[/])?([^/]+?)$/ -var nameAt = /^(@([^/]+?)[/])?([^/]+?)@/ -var debug = util.debuglog ? util.debuglog("npa") - : /\bnpa\b/i.test(process.env.NODE_DEBUG || "") - ? function () { - console.error("NPA: " + util.format.apply(util, arguments).split("\n").join("\nNPA: ")) - } : function () {} - -function validName (name) { - if (!name) { - debug("not a name %j", name) - return false - } - var n = name.trim() - if (!n || n.charAt(0) === "." - || !n.match(/^[a-zA-Z0-9]/) - || n.match(/[/()&?#|<>@:%\s\\*'"!~`]/) - || n.toLowerCase() === "node_modules" - || n !== encodeURIComponent(n) - || n.toLowerCase() === "favicon.ico") { - debug("not a valid name %j", name) - return false - } - return n -} - -function npa (arg) { - assert.equal(typeof arg, "string") - arg = arg.trim() - - var res = new Result - res.raw = arg - res.scope = null - - // See if it's something like foo@... - var nameparse = arg.match(nameAt) - debug("nameparse", nameparse) - if (nameparse && validName(nameparse[3]) && - (!nameparse[2] || validName(nameparse[2]))) { - res.name = (nameparse[1] || "") + nameparse[3] - if (nameparse[2]) - res.scope = "@" + nameparse[2] - arg = arg.substr(nameparse[0].length) - } else { - res.name = null - } - - res.rawSpec = arg - res.spec = arg - - var urlparse = url.parse(arg) - debug("urlparse", urlparse) - - // windows paths look like urls - // don't be fooled! - if (isWindows && urlparse && urlparse.protocol && - urlparse.protocol.match(/^[a-zA-Z]:$/)) { - debug("windows url-ish local path", urlparse) - urlparse = {} - } - - if (urlparse.protocol || HostedGit.fromUrl(arg)) { - return parseUrl(res, arg, urlparse) - } - - // at this point, it's not a url, and not hosted - // If it's a valid name, and doesn't already have a name, then assume - // $name@"" range - // - // if it's got / chars in it, then assume that it's local. - - if (res.name) { - if (arg == '') arg = 'latest' - var version = semver.valid(arg, true) - var range = semver.validRange(arg, true) - // foo@... - if (version) { - res.spec = version - res.type = "version" - } else if (range) { - res.spec = range - res.type = "range" - } else if (slashRe.test(arg)) { - parseLocal(res, arg) - } else { - res.type = "tag" - res.spec = arg - } - } else { - var p = arg.match(parseName) - if (p && validName(p[2]) && - (!p[1] || validName(p[1]))) { - res.type = "tag" - res.spec = "latest" - res.rawSpec = "" - res.name = arg - if (p[1]) - res.scope = "@" + p[1] - } else { - parseLocal(res, arg) - } - } - - return res -} - -function parseLocal (res, arg) { - // turns out nearly every character is allowed in fs paths - if (/\0/.test(arg)) { - throw new Error("Invalid Path: " + JSON.stringify(arg)) - } - res.type = "local" - res.spec = arg -} - -function parseUrl (res, arg, urlparse) { - var gitHost = HostedGit.fromUrl(arg) - if (gitHost) { - res.type = "hosted" - res.spec = gitHost.toString(), - res.hosted = { - type: gitHost.type, - ssh: gitHost.ssh(), - sshUrl: gitHost.sshurl(), - httpsUrl: gitHost.https(), - gitUrl: gitHost.git(), - shortcut: gitHost.shortcut(), - directUrl: gitHost.file("package.json") - } - return res - } - // check the protocol, and then see if it's git or not - switch (urlparse.protocol) { - case "git:": - case "git+http:": - case "git+https:": - case "git+rsync:": - case "git+ftp:": - case "git+ssh:": - case "git+file:": - res.type = "git" - res.spec = arg.replace(/^git[+]/, "") - break - - case "http:": - case "https:": - res.type = "remote" - res.spec = arg - break - - case "file:": - res.type = "local" - if (isWindows && arg.match(/^file:\/\/\/?[a-z]:/i)) { - // Windows URIs usually parse all wrong, so we just take matters - // into our own hands, in this case. - res.spec = arg.replace(/^file:\/\/\/?/i, '') - } else { - res.spec = urlparse.pathname - } - break - - default: - throw new Error("Unsupported URL Type: " + arg) - break - } - - return res -} - - -function Result () { - if (!(this instanceof Result)) return new Result -} -Result.prototype.name = null -Result.prototype.type = null -Result.prototype.spec = null -Result.prototype.raw = null -Result.prototype.hosted = null diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/package.json deleted file mode 100644 index 1044852b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "_args": [ - [ - "npm-package-arg@4.1.1", - "/Users/zkat/Documents/code/npm" - ] - ], - "_from": "npm-package-arg@>=4.1.0 <4.2.0", - "_id": "npm-package-arg@4.1.1", - "_inCache": true, - "_installable": true, - "_location": "/npm-package-arg", - "_nodeVersion": "5.6.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/npm-package-arg-4.1.1.tgz_1461107377267_0.3723941845819354" - }, - "_npmUser": { - "email": "kat@sykosomatic.org", - "name": "zkat" - }, - "_npmVersion": "3.8.7", - "_phantomChildren": {}, - "_requested": { - "name": "npm-package-arg", - "raw": "npm-package-arg@4.1.1", - "rawSpec": "4.1.1", - "scope": null, - "spec": "4.1.1", - "type": "version" - }, - "_requiredBy": [ - "/", - "/init-package-json", - "/npm-registry-client", - "/realize-package-specifier" - ], - "_resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.1.1.tgz", - "_shasum": "86d9dca985b4c5e5d59772dfd5de6919998a495a", - "_shrinkwrap": null, - "_spec": "npm-package-arg@4.1.1", - "_where": "/Users/zkat/Documents/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/npm/npm-package-arg/issues" - }, - "dependencies": { - "hosted-git-info": "^2.1.4", - "semver": "4 || 5" - }, - "description": "Parse the things that can be arguments to `npm install`", - "devDependencies": { - "tap": "^1.2.0" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "86d9dca985b4c5e5d59772dfd5de6919998a495a", - "tarball": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.1.1.tgz" - }, - "gitHead": "b39730cf0362576be0f3d3bfbc090af512a6afd2", - "homepage": "https://github.com/npm/npm-package-arg", - "license": "ISC", - "main": "npa.js", - "maintainers": [ - { - "email": "me@re-becca.org", - "name": "iarna" - }, - { - "email": "i@izs.me", - "name": "isaacs" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "npm-package-arg", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/npm-package-arg.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "4.1.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/basic.js deleted file mode 100644 index 7e4112b4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/basic.js +++ /dev/null @@ -1,168 +0,0 @@ -var npa = require("../npa.js") -var path = require("path") - -require("tap").test("basic", function (t) { - t.setMaxListeners(999) - - var tests = { - "foo@1.2": { - name: "foo", - type: "range", - spec: ">=1.2.0 <1.3.0", - raw: "foo@1.2", - rawSpec: "1.2" - }, - - "@foo/bar": { - raw: "@foo/bar", - name: "@foo/bar", - scope: "@foo", - rawSpec: "", - spec: "latest", - type: "tag" - }, - - "@foo/bar@": { - raw: "@foo/bar@", - name: "@foo/bar", - scope: "@foo", - rawSpec: "", - spec: "latest", - type: "tag" - }, - - "@foo/bar@baz": { - raw: "@foo/bar@baz", - name: "@foo/bar", - scope: "@foo", - rawSpec: "baz", - spec: "baz", - type: "tag" - }, - - "@f fo o al/ a d s ;f ": { - raw: "@f fo o al/ a d s ;f", - name: null, - rawSpec: "@f fo o al/ a d s ;f", - spec: "@f fo o al/ a d s ;f", - type: "local" - }, - - "foo@1.2.3": { - name: "foo", - type: "version", - spec: "1.2.3", - raw: "foo@1.2.3" - }, - - "foo@=v1.2.3": { - name: "foo", - type: "version", - spec: "1.2.3", - raw: "foo@=v1.2.3", - rawSpec: "=v1.2.3" - }, - - "git+ssh://git@notgithub.com/user/foo#1.2.3": { - name: null, - type: "git", - spec: "ssh://git@notgithub.com/user/foo#1.2.3", - raw: "git+ssh://git@notgithub.com/user/foo#1.2.3" - }, - - "git+file://path/to/repo#1.2.3": { - name: null, - type: "git", - spec: "file://path/to/repo#1.2.3", - raw: "git+file://path/to/repo#1.2.3" - }, - - "git://notgithub.com/user/foo": { - name: null, - type: "git", - spec: "git://notgithub.com/user/foo", - raw: "git://notgithub.com/user/foo" - }, - - "@foo/bar@git+ssh://notgithub.com/user/foo": { - name: "@foo/bar", - scope: "@foo", - spec: "ssh://notgithub.com/user/foo", - rawSpec: "git+ssh://notgithub.com/user/foo", - raw: "@foo/bar@git+ssh://notgithub.com/user/foo" - }, - - "/path/to/foo": { - name: null, - type: "local", - spec: path.resolve(__dirname, "/path/to/foo"), - raw: "/path/to/foo" - }, - - "file:path/to/foo": { - name: null, - type: "local", - spec: "path/to/foo", - raw: "file:path/to/foo" - }, - - "file:~/path/to/foo": { - name: null, - type: "local", - spec: "~/path/to/foo", - raw: "file:~/path/to/foo" - }, - - "file:../path/to/foo": { - name: null, - type: "local", - spec: "../path/to/foo", - raw: "file:../path/to/foo" - }, - - "file:///path/to/foo": { - name: null, - type: "local", - spec: "/path/to/foo", - raw: "file:///path/to/foo" - }, - - "https://server.com/foo.tgz": { - name: null, - type: "remote", - spec: "https://server.com/foo.tgz", - raw: "https://server.com/foo.tgz" - }, - - "foo@latest": { - name: "foo", - type: "tag", - spec: "latest", - raw: "foo@latest" - }, - - "foo": { - name: "foo", - type: "tag", - spec: "latest", - raw: "foo" - } - } - - Object.keys(tests).forEach(function (arg) { - var res = npa(arg) - t.type(res, "Result", arg + " is result") - t.has(res, tests[arg], arg + " matches expectations") - }) - - // Completely unreasonable invalid garbage throws an error - t.throws(function() { - npa("this is not a \0 valid package name or url") - }) - - t.throws(function() { - npa("gopher://yea right") - }, "Unsupported URL Type: gopher://yea right") - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/bitbucket.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/bitbucket.js deleted file mode 100644 index 1dff34ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/bitbucket.js +++ /dev/null @@ -1,82 +0,0 @@ -var npa = require("../npa.js") -var path = require("path") - -require("tap").test("basic", function (t) { - t.setMaxListeners(999) - - var tests = { - "bitbucket:user/foo-js": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "bitbucket:user/foo-js", - raw: "bitbucket:user/foo-js" - }, - - "bitbucket:user/foo-js#bar/baz": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "bitbucket:user/foo-js#bar/baz", - raw: "bitbucket:user/foo-js#bar/baz" - }, - - "bitbucket:user..blerg--/..foo-js# . . . . . some . tags / / /": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "bitbucket:user..blerg--/..foo-js# . . . . . some . tags / / /", - raw: "bitbucket:user..blerg--/..foo-js# . . . . . some . tags / / /" - }, - - "bitbucket:user/foo-js#bar/baz/bin": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "bitbucket:user/foo-js#bar/baz/bin", - raw: "bitbucket:user/foo-js#bar/baz/bin" - }, - - "foo@bitbucket:user/foo-js": { - name: "foo", - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "bitbucket:user/foo-js", - raw: "foo@bitbucket:user/foo-js" - }, - - "git+ssh://git@bitbucket.org/user/foo#1.2.3": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "git+ssh://git@bitbucket.org/user/foo.git#1.2.3", - raw: "git+ssh://git@bitbucket.org/user/foo#1.2.3" - }, - - "https://bitbucket.org/user/foo.git": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "git+https://bitbucket.org/user/foo.git", - raw: "https://bitbucket.org/user/foo.git" - }, - - "@foo/bar@git+ssh://bitbucket.org/user/foo": { - name: "@foo/bar", - scope: "@foo", - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "git+ssh://git@bitbucket.org/user/foo.git", - rawSpec: "git+ssh://bitbucket.org/user/foo", - raw: "@foo/bar@git+ssh://bitbucket.org/user/foo" - } - } - - Object.keys(tests).forEach(function (arg) { - var res = npa(arg) - t.type(res, "Result", arg + " is a result") - t.has(res, tests[arg], arg + " matches expectations") - }) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/github.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/github.js deleted file mode 100644 index a2c14600..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/github.js +++ /dev/null @@ -1,106 +0,0 @@ -var npa = require("../npa.js") -var path = require("path") - -require("tap").test("basic", function (t) { - t.setMaxListeners(999) - - var tests = { - "user/foo-js": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "github:user/foo-js", - raw: "user/foo-js" - }, - - "user/foo-js#bar/baz": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "github:user/foo-js#bar/baz", - raw: "user/foo-js#bar/baz" - }, - - "user..blerg--/..foo-js# . . . . . some . tags / / /": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "github:user..blerg--/..foo-js# . . . . . some . tags / / /", - raw: "user..blerg--/..foo-js# . . . . . some . tags / / /" - }, - - "user/foo-js#bar/baz/bin": { - name: null, - type: "hosted", - hosted: { type: "github" }, - raw: "github:user/foo-js#bar/baz/bin", - raw: "user/foo-js#bar/baz/bin" - }, - - "foo@user/foo-js": { - name: "foo", - type: "hosted", - hosted: { type: "github" }, - spec: "github:user/foo-js", - raw: "foo@user/foo-js" - }, - - "github:user/foo-js": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "github:user/foo-js", - raw: "github:user/foo-js" - }, - - "git+ssh://git@github.com/user/foo#1.2.3": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "git+ssh://git@github.com/user/foo.git#1.2.3", - raw: "git+ssh://git@github.com/user/foo#1.2.3" - }, - - "git://github.com/user/foo": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "git://github.com/user/foo.git", - raw: "git://github.com/user/foo" - }, - - "https://github.com/user/foo.git": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "git+https://github.com/user/foo.git", - raw: "https://github.com/user/foo.git" - }, - - "@foo/bar@git+ssh://github.com/user/foo": { - name: "@foo/bar", - scope: "@foo", - type: "hosted", - hosted: { type: "github" }, - spec: "git+ssh://git@github.com/user/foo.git", - rawSpec: "git+ssh://github.com/user/foo", - raw: "@foo/bar@git+ssh://github.com/user/foo" - }, - - "foo@bar/foo": { - name: "foo", - type: "hosted", - hosted: { type: "github" }, - spec: "github:bar/foo", - raw: "foo@bar/foo" - } - } - - Object.keys(tests).forEach(function (arg) { - var res = npa(arg) - t.type(res, "Result", arg + " is a result") - t.has(res, tests[arg], arg + " matches expectations") - }) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/gitlab.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/gitlab.js deleted file mode 100644 index c9a8ef9f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/gitlab.js +++ /dev/null @@ -1,82 +0,0 @@ -var npa = require("../npa.js") -var path = require("path") - -require("tap").test("basic", function (t) { - t.setMaxListeners(999) - - var tests = { - "gitlab:user/foo-js": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - raw: "gitlab:user/foo-js", - raw: "gitlab:user/foo-js" - }, - - "gitlab:user/foo-js#bar/baz": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - raw: "gitlab:user/foo-js#bar/baz", - raw: "gitlab:user/foo-js#bar/baz" - }, - - "gitlab:user..blerg--/..foo-js# . . . . . some . tags / / /": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - spec: "gitlab:user..blerg--/..foo-js# . . . . . some . tags / / /", - raw: "gitlab:user..blerg--/..foo-js# . . . . . some . tags / / /" - }, - - "gitlab:user/foo-js#bar/baz/bin": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - spec: "gitlab:user/foo-js#bar/baz/bin", - raw: "gitlab:user/foo-js#bar/baz/bin" - }, - - "foo@gitlab:user/foo-js": { - name: "foo", - type: "hosted", - hosted: { type: "gitlab" }, - spec: "gitlab:user/foo-js", - raw: "foo@gitlab:user/foo-js" - }, - - "git+ssh://git@gitlab.com/user/foo#1.2.3": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - spec: "git+ssh://git@gitlab.com/user/foo.git#1.2.3", - raw: "git+ssh://git@gitlab.com/user/foo#1.2.3" - }, - - "https://gitlab.com/user/foo.git": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - spec: "git+https://gitlab.com/user/foo.git", - raw: "https://gitlab.com/user/foo.git" - }, - - "@foo/bar@git+ssh://gitlab.com/user/foo": { - name: "@foo/bar", - scope: "@foo", - type: "hosted", - hosted: { type: "gitlab" }, - spec: "git+ssh://git@gitlab.com/user/foo.git", - rawSpec: "git+ssh://gitlab.com/user/foo", - raw: "@foo/bar@git+ssh://gitlab.com/user/foo" - } - } - - Object.keys(tests).forEach(function (arg) { - var res = npa(arg) - t.type(res, "Result", arg + " is a result") - t.has(res, tests[arg], arg + " matches expectations") - }) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/windows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/windows.js deleted file mode 100644 index b91416e2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-package-arg/test/windows.js +++ /dev/null @@ -1,73 +0,0 @@ -global.FAKE_WINDOWS = true - -var npa = require("../npa.js") -var test = require("tap").test -var path = require("path") - -var cases = { - "C:\\x\\y\\z": { - raw: "C:\\x\\y\\z", - scope: null, - name: null, - rawSpec: "C:\\x\\y\\z", - spec: "C:\\x\\y\\z", - type: "local" - }, - "foo@C:\\x\\y\\z": { - raw: "foo@C:\\x\\y\\z", - scope: null, - name: "foo", - rawSpec: "C:\\x\\y\\z", - spec: "C:\\x\\y\\z", - type: "local" - }, - "foo@file:///C:\\x\\y\\z": { - raw: "foo@file:///C:\\x\\y\\z", - scope: null, - name: "foo", - rawSpec: "file:///C:\\x\\y\\z", - spec: "C:\\x\\y\\z", - type: "local" - }, - "foo@file://C:\\x\\y\\z": { - raw: "foo@file://C:\\x\\y\\z", - scope: null, - name: "foo", - rawSpec: "file://C:\\x\\y\\z", - spec: "C:\\x\\y\\z", - type: "local" - }, - "file:///C:\\x\\y\\z": { - raw: "file:///C:\\x\\y\\z", - scope: null, - name: null, - rawSpec: "file:///C:\\x\\y\\z", - spec: "C:\\x\\y\\z", - type: "local" - }, - "file://C:\\x\\y\\z": { - raw: "file://C:\\x\\y\\z", - scope: null, - name: null, - rawSpec: "file://C:\\x\\y\\z", - spec: "C:\\x\\y\\z", - type: "local" - }, - "foo@/foo/bar/baz": { - raw: "foo@/foo/bar/baz", - scope: null, - name: "foo", - rawSpec: "/foo/bar/baz", - spec: "/foo/bar/baz", - type: "local" - } -} - -test("parse a windows path", function (t) { - Object.keys(cases).forEach(function (c) { - var expect = cases[c] - var actual = npa(c) - t.same(actual, expect, c) - }) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/.npmignore deleted file mode 100644 index bea2db62..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -test/fixtures/cache -node_modules -npm-debug.log -.eslintrc -.jshintrc diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/.travis.yml deleted file mode 100644 index 3669bc76..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: node_js -node_js: - - "0.12" - - "0.10" - - "0.8" - - iojs -script: "npm test" -sudo: false -before_install: - - "npm install -g npm@latest" -notifications: - slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/README.md deleted file mode 100644 index 2caa3643..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/README.md +++ /dev/null @@ -1,318 +0,0 @@ -# npm-registry-client - -The code that npm uses to talk to the registry. - -It handles all the caching and HTTP calls. - -## Usage - -```javascript -var RegClient = require('npm-registry-client') -var client = new RegClient(config) -var uri = "https://registry.npmjs.org/npm" -var params = {timeout: 1000} - -client.get(uri, params, function (error, data, raw, res) { - // error is an error if there was a problem. - // data is the parsed data object - // raw is the json string - // res is the response from couch -}) -``` - -# Registry URLs - -The registry calls take either a full URL pointing to a resource in the -registry, or a base URL for the registry as a whole (including the registry -path – but be sure to terminate the path with `/`). `http` and `https` URLs are -the only ones supported. - -## Using the client - -Every call to the client follows the same pattern: - -* `uri` {String} The *fully-qualified* URI of the registry API method being - invoked. -* `params` {Object} Per-request parameters. -* `callback` {Function} Callback to be invoked when the call is complete. - -### Credentials - -Many requests to the registry can by authenticated, and require credentials -for authorization. These credentials always look the same: - -* `username` {String} -* `password` {String} -* `email` {String} -* `alwaysAuth` {Boolean} Whether calls to the target registry are always - authed. - -**or** - -* `token` {String} -* `alwaysAuth` {Boolean} Whether calls to the target registry are always - authed. - -## API - -### client.access(uri, params, cb) - -* `uri` {String} Registry URL for the package's access API endpoint. - Looks like `/-/package//access`. -* `params` {Object} Object containing per-request properties. - * `access` {String} New access level for the package. Can be either - `public` or `restricted`. Registry will raise an error if trying - to change the access level of an unscoped package. - * `auth` {Credentials} - -Set the access level for scoped packages. For now, there are only two -access levels: "public" and "restricted". - -### client.adduser(uri, params, cb) - -* `uri` {String} Base registry URL. -* `params` {Object} Object containing per-request properties. - * `auth` {Credentials} -* `cb` {Function} - * `error` {Error | null} - * `data` {Object} the parsed data object - * `raw` {String} the json - * `res` {Response Object} response from couch - -Add a user account to the registry, or verify the credentials. - -### client.deprecate(uri, params, cb) - -* `uri` {String} Full registry URI for the deprecated package. -* `params` {Object} Object containing per-request properties. - * `version` {String} Semver version range. - * `message` {String} The message to use as a deprecation warning. - * `auth` {Credentials} -* `cb` {Function} - -Deprecate a version of a package in the registry. - -### client.distTags.fetch(uri, params, cb) - -* `uri` {String} Base URL for the registry. -* `params` {Object} Object containing per-request properties. - * `package` {String} Name of the package. - * `auth` {Credentials} -* `cb` {Function} - -Fetch all of the `dist-tags` for the named package. - -### client.distTags.add(uri, params, cb) - -* `uri` {String} Base URL for the registry. -* `params` {Object} Object containing per-request properties. - * `package` {String} Name of the package. - * `distTag` {String} Name of the new `dist-tag`. - * `version` {String} Exact version to be mapped to the `dist-tag`. - * `auth` {Credentials} -* `cb` {Function} - -Add (or replace) a single dist-tag onto the named package. - -### client.distTags.set(uri, params, cb) - -* `uri` {String} Base URL for the registry. -* `params` {Object} Object containing per-request properties. - * `package` {String} Name of the package. - * `distTags` {Object} Object containing a map from tag names to package - versions. - * `auth` {Credentials} -* `cb` {Function} - -Set all of the `dist-tags` for the named package at once, creating any -`dist-tags` that do not already exit. Any `dist-tags` not included in the -`distTags` map will be removed. - -### client.distTags.update(uri, params, cb) - -* `uri` {String} Base URL for the registry. -* `params` {Object} Object containing per-request properties. - * `package` {String} Name of the package. - * `distTags` {Object} Object containing a map from tag names to package - versions. - * `auth` {Credentials} -* `cb` {Function} - -Update the values of multiple `dist-tags`, creating any `dist-tags` that do -not already exist. Any pre-existing `dist-tags` not included in the `distTags` -map will be left alone. - -### client.distTags.rm(uri, params, cb) - -* `uri` {String} Base URL for the registry. -* `params` {Object} Object containing per-request properties. - * `package` {String} Name of the package. - * `distTag` {String} Name of the new `dist-tag`. - * `auth` {Credentials} -* `cb` {Function} - -Remove a single `dist-tag` from the named package. - -### client.get(uri, params, cb) - -* `uri` {String} The complete registry URI to fetch -* `params` {Object} Object containing per-request properties. - * `timeout` {Number} Duration before the request times out. Optional - (default: never). - * `follow` {Boolean} Follow 302/301 responses. Optional (default: true). - * `staleOk` {Boolean} If there's cached data available, then return that to - the callback quickly, and update the cache the background. Optional - (default: false). - * `auth` {Credentials} Optional. -* `cb` {Function} - -Fetches data from the registry via a GET request, saving it in the cache folder -with the ETag or the "Last Modified" timestamp. - -### client.publish(uri, params, cb) - -* `uri` {String} The registry URI for the package to publish. -* `params` {Object} Object containing per-request properties. - * `metadata` {Object} Package metadata. - * `access` {String} Access for the package. Can be `public` or `restricted` (no default). - * `body` {Stream} Stream of the package body / tarball. - * `auth` {Credentials} -* `cb` {Function} - -Publish a package to the registry. - -Note that this does not create the tarball from a folder. - -### client.star(uri, params, cb) - -* `uri` {String} The complete registry URI for the package to star. -* `params` {Object} Object containing per-request properties. - * `starred` {Boolean} True to star the package, false to unstar it. Optional - (default: false). - * `auth` {Credentials} -* `cb` {Function} - -Star or unstar a package. - -Note that the user does not have to be the package owner to star or unstar a -package, though other writes do require that the user be the package owner. - -### client.stars(uri, params, cb) - -* `uri` {String} The base URL for the registry. -* `params` {Object} Object containing per-request properties. - * `username` {String} Name of user to fetch starred packages for. Optional - (default: user in `auth`). - * `auth` {Credentials} Optional (required if `username` is omitted). -* `cb` {Function} - -View your own or another user's starred packages. - -### client.tag(uri, params, cb) - -* `uri` {String} The complete registry URI to tag -* `params` {Object} Object containing per-request properties. - * `version` {String} Version to tag. - * `tag` {String} Tag name to apply. - * `auth` {Credentials} -* `cb` {Function} - -Mark a version in the `dist-tags` hash, so that `pkg@tag` will fetch the -specified version. - -### client.unpublish(uri, params, cb) - -* `uri` {String} The complete registry URI of the package to unpublish. -* `params` {Object} Object containing per-request properties. - * `version` {String} version to unpublish. Optional – omit to unpublish all - versions. - * `auth` {Credentials} -* `cb` {Function} - -Remove a version of a package (or all versions) from the registry. When the -last version us unpublished, the entire document is removed from the database. - -### client.whoami(uri, params, cb) - -* `uri` {String} The base registry for the URI. -* `params` {Object} Object containing per-request properties. - * `auth` {Credentials} -* `cb` {Function} - -Simple call to see who the registry thinks you are. Especially useful with -token-based auth. - - -## PLUMBING - -The below are primarily intended for use by the rest of the API, or by the npm -caching logic directly. - -### client.request(uri, params, cb) - -* `uri` {String} URI pointing to the resource to request. -* `params` {Object} Object containing per-request properties. - * `method` {String} HTTP method. Optional (default: "GET"). - * `body` {Stream | Buffer | String | Object} The request body. Objects - that are not Buffers or Streams are encoded as JSON. Optional – body - only used for write operations. - * `etag` {String} The cached ETag. Optional. - * `lastModified` {String} The cached Last-Modified timestamp. Optional. - * `follow` {Boolean} Follow 302/301 responses. Optional (default: true). - * `auth` {Credentials} Optional. -* `cb` {Function} - * `error` {Error | null} - * `data` {Object} the parsed data object - * `raw` {String} the json - * `res` {Response Object} response from couch - -Make a generic request to the registry. All the other methods are wrappers -around `client.request`. - -### client.fetch(uri, params, cb) - -* `uri` {String} The complete registry URI to upload to -* `params` {Object} Object containing per-request properties. - * `headers` {Stream} HTTP headers to be included with the request. Optional. - * `auth` {Credentials} Optional. -* `cb` {Function} - -Fetch a package from a URL, with auth set appropriately if included. Used to -cache remote tarballs as well as request package tarballs from the registry. - -# Configuration - -The client uses its own configuration, which is just passed in as a simple -nested object. The following are the supported values (with their defaults, if -any): - -* `proxy.http` {URL} The URL to proxy HTTP requests through. -* `proxy.https` {URL} The URL to proxy HTTPS requests through. Defaults to be - the same as `proxy.http` if unset. -* `proxy.localAddress` {IP} The local address to use on multi-homed systems. -* `ssl.ca` {String} Certificate signing authority certificates to trust. -* `ssl.certificate` {String} Client certificate (PEM encoded). Enable access - to servers that require client certificates. -* `ssl.key` {String} Private key (PEM encoded) for client certificate. -* `ssl.strict` {Boolean} Whether or not to be strict with SSL certificates. - Default = `true` -* `retry.count` {Number} Number of times to retry on GET failures. Default = 2. -* `retry.factor` {Number} `factor` setting for `node-retry`. Default = 10. -* `retry.minTimeout` {Number} `minTimeout` setting for `node-retry`. - Default = 10000 (10 seconds) -* `retry.maxTimeout` {Number} `maxTimeout` setting for `node-retry`. - Default = 60000 (60 seconds) -* `userAgent` {String} User agent header to send. Default = - `"node/{process.version}"` -* `log` {Object} The logger to use. Defaults to `require("npmlog")` if - that works, otherwise logs are disabled. -* `defaultTag` {String} The default tag to use when publishing new packages. - Default = `"latest"` -* `couchToken` {Object} A token for use with - [couch-login](https://npmjs.org/package/couch-login). -* `sessionToken` {String} A random identifier for this set of client requests. - Default = 8 random hexadecimal bytes. -* `maxSockets` {Number} The maximum number of connections that will be open per - origin (unique combination of protocol:host:port). Passed to the - [httpAgent](https://nodejs.org/api/http.html#http_agent_maxsockets). - Default = 50 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/index.js deleted file mode 100644 index a199801f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/index.js +++ /dev/null @@ -1,79 +0,0 @@ -// utilities for working with the js-registry site. - -module.exports = RegClient - -var join = require('path').join -var fs = require('graceful-fs') - -var npmlog -try { - npmlog = require('npmlog') -} catch (er) { - npmlog = { - error: noop, - warn: noop, - info: noop, - verbose: noop, - silly: noop, - http: noop, - pause: noop, - resume: noop - } -} - -function noop () {} - -function RegClient (config) { - this.config = Object.create(config || {}) - - this.config.proxy = this.config.proxy || {} - if (!this.config.proxy.https && this.config.proxy.http) { - this.config.proxy.https = this.config.proxy.http - } - - this.config.ssl = this.config.ssl || {} - if (this.config.ssl.strict === undefined) this.config.ssl.strict = true - - this.config.retry = this.config.retry || {} - if (typeof this.config.retry.retries !== 'number') this.config.retry.retries = 2 - if (typeof this.config.retry.factor !== 'number') this.config.retry.factor = 10 - if (typeof this.config.retry.minTimeout !== 'number') this.config.retry.minTimeout = 10000 - if (typeof this.config.retry.maxTimeout !== 'number') this.config.retry.maxTimeout = 60000 - if (typeof this.config.maxSockets !== 'number') this.config.maxSockets = 50 - - this.config.userAgent = this.config.userAgent || 'node/' + process.version - this.config.defaultTag = this.config.defaultTag || 'latest' - - this.log = this.config.log || npmlog - delete this.config.log - - var client = this - fs.readdirSync(join(__dirname, 'lib')).forEach(function (f) { - var entry = join(__dirname, 'lib', f) - - // lib/group-name/operation.js -> client.groupName.operation - var stat = fs.statSync(entry) - if (stat.isDirectory()) { - var groupName = f.replace(/-([a-z])/, dashToCamel) - fs.readdirSync(entry).forEach(function (f) { - if (!f.match(/\.js$/)) return - - if (!client[groupName]) { - // keep client.groupName.operation from stomping client.operation - client[groupName] = Object.create(client) - } - var name = f.replace(/\.js$/, '').replace(/-([a-z])/, dashToCamel) - client[groupName][name] = require(join(entry, f)) - }) - return - } - - if (!f.match(/\.js$/)) return - var name = f.replace(/\.js$/, '').replace(/-([a-z])/, dashToCamel) - client[name] = require(entry) - }) -} - -function dashToCamel (_, l) { - return l.toUpperCase() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/access.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/access.js deleted file mode 100644 index ff01e95e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/access.js +++ /dev/null @@ -1,153 +0,0 @@ -module.exports = access - -var assert = require('assert') -var url = require('url') -var npa = require('npm-package-arg') -var subcommands = {} - -function access (sub, uri, params, cb) { - accessAssertions(sub, uri, params, cb) - return subcommands[sub].call(this, uri, params, cb) -} - -subcommands.public = function (uri, params, cb) { - return setAccess.call(this, 'public', uri, params, cb) -} -subcommands.restricted = function (uri, params, cb) { - return setAccess.call(this, 'restricted', uri, params, cb) -} - -function setAccess (access, uri, params, cb) { - return this.request(apiUri(uri, 'package', params.package, 'access'), { - method: 'POST', - auth: params.auth, - body: JSON.stringify({ access: access }) - }, cb) -} - -subcommands.grant = function (uri, params, cb) { - var reqUri = apiUri(uri, 'team', params.scope, params.team, 'package') - return this.request(reqUri, { - method: 'PUT', - auth: params.auth, - body: JSON.stringify({ - permissions: params.permissions, - package: params.package - }) - }, cb) -} - -subcommands.revoke = function (uri, params, cb) { - var reqUri = apiUri(uri, 'team', params.scope, params.team, 'package') - return this.request(reqUri, { - method: 'DELETE', - auth: params.auth, - body: JSON.stringify({ - package: params.package - }) - }, cb) -} - -subcommands['ls-packages'] = function (uri, params, cb, type) { - type = type || (params.team ? 'team' : 'org') - var client = this - var uriParams = '?format=cli' - var reqUri = apiUri(uri, type, params.scope, params.team, 'package') - return client.request(reqUri + uriParams, { - method: 'GET', - auth: params.auth - }, function (err, perms) { - if (err && err.statusCode === 404 && type === 'org') { - subcommands['ls-packages'].call(client, uri, params, cb, 'user') - } else { - cb(err, perms && translatePermissions(perms)) - } - }) -} - -subcommands['ls-collaborators'] = function (uri, params, cb) { - var uriParams = '?format=cli' - if (params.user) { - uriParams += ('&user=' + encodeURIComponent(params.user)) - } - var reqUri = apiUri(uri, 'package', params.package, 'collaborators') - return this.request(reqUri + uriParams, { - method: 'GET', - auth: params.auth - }, function (err, perms) { - cb(err, perms && translatePermissions(perms)) - }) -} - -subcommands.edit = function () { - throw new Error('edit subcommand is not implemented yet') -} - -function apiUri (registryUri) { - var path = Array.prototype.slice.call(arguments, 1) - .filter(function (x) { return x }) - .map(encodeURIComponent) - .join('/') - return url.resolve(registryUri, '-/' + path) -} - -function accessAssertions (subcommand, uri, params, cb) { - assert(subcommands.hasOwnProperty(subcommand), - 'access subcommand must be one of ' + - Object.keys(subcommands).join(', ')) - typeChecks({ - 'uri': [uri, 'string'], - 'params': [params, 'object'], - 'auth': [params.auth, 'object'], - 'callback': [cb, 'function'] - }) - if (contains([ - 'public', 'restricted' - ], subcommand)) { - typeChecks({ 'package': [params.package, 'string'] }) - assert(!!npa(params.package).scope, - 'access commands are only accessible for scoped packages') - } - if (contains(['grant', 'revoke', 'ls-packages'], subcommand)) { - typeChecks({ 'scope': [params.scope, 'string'] }) - } - if (contains(['grant', 'revoke'], subcommand)) { - typeChecks({ 'team': [params.team, 'string'] }) - } - if (subcommand === 'grant') { - typeChecks({ 'permissions': [params.permissions, 'string'] }) - assert(params.permissions === 'read-only' || - params.permissions === 'read-write', - 'permissions must be either read-only or read-write') - } -} - -function typeChecks (specs) { - Object.keys(specs).forEach(function (key) { - var checks = specs[key] - assert(typeof checks[0] === checks[1], - key + ' is required and must be of type ' + checks[1]) - }) -} - -function contains (arr, item) { - return arr.indexOf(item) !== -1 -} - -function translatePermissions (perms) { - var newPerms = {} - for (var key in perms) { - if (perms.hasOwnProperty(key)) { - if (perms[key] === 'read') { - newPerms[key] = 'read-only' - } else if (perms[key] === 'write') { - newPerms[key] = 'read-write' - } else { - // This shouldn't happen, but let's not break things - // if the API starts returning different things. - newPerms[key] = perms[key] - } - } - } - return newPerms -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/adduser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/adduser.js deleted file mode 100644 index a6a779d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/adduser.js +++ /dev/null @@ -1,128 +0,0 @@ -module.exports = adduser - -var url = require('url') -var assert = require('assert') - -function adduser (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to adduser') - assert( - params && typeof params === 'object', - 'must pass params to adduser' - ) - assert(typeof cb === 'function', 'must pass callback to adduser') - - assert(params.auth && typeof params.auth, 'must pass auth to adduser') - var auth = params.auth - assert(typeof auth.username === 'string', 'must include username in auth') - assert(typeof auth.password === 'string', 'must include password in auth') - assert(typeof auth.email === 'string', 'must include email in auth') - - // normalize registry URL - if (uri.slice(-1) !== '/') uri += '/' - - var username = auth.username.trim() - var password = auth.password.trim() - var email = auth.email.trim() - - // validation - if (!username) return cb(new Error('No username supplied.')) - if (!password) return cb(new Error('No password supplied.')) - if (!email) return cb(new Error('No email address supplied.')) - if (!email.match(/^[^@]+@[^\.]+\.[^\.]+/)) { - return cb(new Error('Please use a real email address.')) - } - - var userobj = { - _id: 'org.couchdb.user:' + username, - name: username, - password: password, - email: email, - type: 'user', - roles: [], - date: new Date().toISOString() - } - - var token = this.config.couchToken - if (this.couchLogin) this.couchLogin.token = null - - cb = done.call(this, token, cb) - - var logObj = Object.keys(userobj).map(function (k) { - if (k === 'password') return [k, 'XXXXX'] - return [k, userobj[k]] - }).reduce(function (s, kv) { - s[kv[0]] = kv[1] - return s - }, {}) - - this.log.verbose('adduser', 'before first PUT', logObj) - - var client = this - - uri = url.resolve(uri, '-/user/org.couchdb.user:' + encodeURIComponent(username)) - var options = { - method: 'PUT', - body: userobj, - auth: auth - } - this.request( - uri, - options, - function (error, data, json, response) { - if (!error || !response || response.statusCode !== 409) { - return cb(error, data, json, response) - } - - client.log.verbose('adduser', 'update existing user') - return client.request( - uri + '?write=true', - { auth: auth }, - function (er, data, json, response) { - if (er || data.error) { - return cb(er, data, json, response) - } - Object.keys(data).forEach(function (k) { - if (!userobj[k] || k === 'roles') { - userobj[k] = data[k] - } - }) - client.log.verbose('adduser', 'userobj', logObj) - client.request(uri + '/-rev/' + userobj._rev, options, cb) - } - ) - } - ) - - function done (token, cb) { - return function (error, data, json, response) { - if (!error && (!response || response.statusCode === 201)) { - return cb(error, data, json, response) - } - - // there was some kind of error, reinstate previous auth/token/etc. - if (client.couchLogin) { - client.couchLogin.token = token - if (client.couchLogin.tokenSet) { - client.couchLogin.tokenSet(token) - } - } - - client.log.verbose('adduser', 'back', [error, data, json]) - if (!error) { - error = new Error( - (response && response.statusCode || '') + ' ' + - 'Could not create user\n' + JSON.stringify(data) - ) - } - - if (response && (response.statusCode === 401 || response.statusCode === 403)) { - client.log.warn('adduser', 'Incorrect username or password\n' + - 'You can reset your account by visiting:\n' + - '\n' + - ' https://npmjs.org/forgot\n') - } - - return cb(error) - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/attempt.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/attempt.js deleted file mode 100644 index d41bbc4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/attempt.js +++ /dev/null @@ -1,20 +0,0 @@ -var retry = require('retry') - -module.exports = attempt - -function attempt (cb) { - // Tuned to spread 3 attempts over about a minute. - // See formula at . - var operation = retry.operation(this.config.retry) - - var client = this - operation.attempt(function (currentAttempt) { - client.log.info( - 'attempt', - 'registry request try #' + currentAttempt + - ' at ' + (new Date()).toLocaleTimeString() - ) - - cb(operation) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/authify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/authify.js deleted file mode 100644 index 0a259757..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/authify.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = authify - -function authify (authed, parsed, headers, credentials) { - if (credentials && credentials.token) { - this.log.verbose('request', 'using bearer token for auth') - headers.authorization = 'Bearer ' + credentials.token - - return null - } - - if (authed) { - if (credentials && credentials.username && credentials.password) { - var username = encodeURIComponent(credentials.username) - var password = encodeURIComponent(credentials.password) - parsed.auth = username + ':' + password - } else { - return new Error( - 'This request requires auth credentials. Run `npm login` and repeat the request.' - ) - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/deprecate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/deprecate.js deleted file mode 100644 index 5ff3a889..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/deprecate.js +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = deprecate - -var assert = require('assert') -var semver = require('semver') - -function deprecate (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to deprecate') - assert(params && typeof params === 'object', 'must pass params to deprecate') - assert(typeof cb === 'function', 'must pass callback to deprecate') - - assert(typeof params.version === 'string', 'must pass version to deprecate') - assert(typeof params.message === 'string', 'must pass message to deprecate') - assert( - params.auth && typeof params.auth === 'object', - 'must pass auth to deprecate' - ) - - var version = params.version - var message = params.message - var auth = params.auth - - if (semver.validRange(version) === null) { - return cb(new Error('invalid version range: ' + version)) - } - - this.get(uri + '?write=true', { auth: auth }, function (er, data) { - if (er) return cb(er) - // filter all the versions that match - Object.keys(data.versions).filter(function (v) { - return semver.satisfies(v, version) - }).forEach(function (v) { - data.versions[v].deprecated = message - }) - // now update the doc on the registry - var options = { - method: 'PUT', - body: data, - auth: auth - } - this.request(uri, options, cb) - }.bind(this)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/add.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/add.js deleted file mode 100644 index 924199ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/add.js +++ /dev/null @@ -1,43 +0,0 @@ -module.exports = add - -var assert = require('assert') -var url = require('url') - -var npa = require('npm-package-arg') - -function add (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to distTags.add') - assert( - params && typeof params === 'object', - 'must pass params to distTags.add' - ) - assert(typeof cb === 'function', 'muss pass callback to distTags.add') - - assert( - typeof params.package === 'string', - 'must pass package name to distTags.add' - ) - assert( - typeof params.distTag === 'string', - 'must pass package distTag name to distTags.add' - ) - assert( - typeof params.version === 'string', - 'must pass version to be mapped to distTag to distTags.add' - ) - assert( - params.auth && typeof params.auth === 'object', - 'must pass auth to distTags.add' - ) - - var p = npa(params.package) - var pkg = p.scope ? params.package.replace('/', '%2f') : params.package - var rest = '-/package/' + pkg + '/dist-tags/' + params.distTag - - var options = { - method: 'PUT', - body: JSON.stringify(params.version), - auth: params.auth - } - this.request(url.resolve(uri, rest), options, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/fetch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/fetch.js deleted file mode 100644 index 558e2cf8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/fetch.js +++ /dev/null @@ -1,37 +0,0 @@ -module.exports = fetch - -var assert = require('assert') -var url = require('url') - -var npa = require('npm-package-arg') - -function fetch (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to distTags.fetch') - assert( - params && typeof params === 'object', - 'must pass params to distTags.fetch' - ) - assert(typeof cb === 'function', 'muss pass callback to distTags.fetch') - - assert( - typeof params.package === 'string', - 'must pass package name to distTags.fetch' - ) - assert( - params.auth && typeof params.auth === 'object', - 'must pass auth to distTags.fetch' - ) - - var p = npa(params.package) - var pkg = p.scope ? params.package.replace('/', '%2f') : params.package - var rest = '-/package/' + pkg + '/dist-tags' - - var options = { - method: 'GET', - auth: params.auth - } - this.request(url.resolve(uri, rest), options, function (er, data) { - if (data && typeof data === 'object') delete data._etag - cb(er, data) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/rm.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/rm.js deleted file mode 100644 index d2bdda05..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/rm.js +++ /dev/null @@ -1,38 +0,0 @@ -module.exports = rm - -var assert = require('assert') -var url = require('url') - -var npa = require('npm-package-arg') - -function rm (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to distTags.rm') - assert( - params && typeof params === 'object', - 'must pass params to distTags.rm' - ) - assert(typeof cb === 'function', 'muss pass callback to distTags.rm') - - assert( - typeof params.package === 'string', - 'must pass package name to distTags.rm' - ) - assert( - typeof params.distTag === 'string', - 'must pass package distTag name to distTags.rm' - ) - assert( - params.auth && typeof params.auth === 'object', - 'must pass auth to distTags.rm' - ) - - var p = npa(params.package) - var pkg = p.scope ? params.package.replace('/', '%2f') : params.package - var rest = '-/package/' + pkg + '/dist-tags/' + params.distTag - - var options = { - method: 'DELETE', - auth: params.auth - } - this.request(url.resolve(uri, rest), options, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/set.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/set.js deleted file mode 100644 index 7af351d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/set.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = set - -var assert = require('assert') -var url = require('url') - -var npa = require('npm-package-arg') - -function set (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to distTags.set') - assert( - params && typeof params === 'object', - 'must pass params to distTags.set' - ) - assert(typeof cb === 'function', 'muss pass callback to distTags.set') - - assert( - typeof params.package === 'string', - 'must pass package name to distTags.set' - ) - assert( - params.distTags && typeof params.distTags === 'object', - 'must pass distTags map to distTags.set' - ) - assert( - params.auth && typeof params.auth === 'object', - 'must pass auth to distTags.set' - ) - - var p = npa(params.package) - var pkg = p.scope ? params.package.replace('/', '%2f') : params.package - var rest = '-/package/' + pkg + '/dist-tags' - - var options = { - method: 'PUT', - body: JSON.stringify(params.distTags), - auth: params.auth - } - this.request(url.resolve(uri, rest), options, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/update.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/update.js deleted file mode 100644 index 07ec3e5e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/update.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = update - -var assert = require('assert') -var url = require('url') - -var npa = require('npm-package-arg') - -function update (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to distTags.update') - assert( - params && typeof params === 'object', - 'must pass params to distTags.update' - ) - assert(typeof cb === 'function', 'muss pass callback to distTags.update') - - assert( - typeof params.package === 'string', - 'must pass package name to distTags.update' - ) - assert( - params.distTags && typeof params.distTags === 'object', - 'must pass distTags map to distTags.update' - ) - assert( - params.auth && typeof params.auth === 'object', - 'must pass auth to distTags.update' - ) - - var p = npa(params.package) - var pkg = p.scope ? params.package.replace('/', '%2f') : params.package - var rest = '-/package/' + pkg + '/dist-tags' - - var options = { - method: 'POST', - body: JSON.stringify(params.distTags), - auth: params.auth - } - this.request(url.resolve(uri, rest), options, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/fetch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/fetch.js deleted file mode 100644 index e931d371..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/fetch.js +++ /dev/null @@ -1,91 +0,0 @@ -var assert = require('assert') -var url = require('url') - -var request = require('request') -var once = require('once') - -module.exports = fetch - -function fetch (uri, params, cb) { - assert(typeof uri === 'string', 'must pass uri to request') - assert(params && typeof params === 'object', 'must pass params to request') - assert(typeof cb === 'function', 'must pass callback to request') - - cb = once(cb) - - var client = this - this.attempt(function (operation) { - makeRequest.call(client, uri, params, function (er, req) { - if (er) return cb(er) - - req.on('error', function (er) { - if (operation.retry(er)) { - client.log.info('retry', 'will retry, error on last attempt: ' + er) - } else { - cb(er) - } - }) - - req.on('response', function (res) { - client.log.http('fetch', '' + res.statusCode, uri) - - var er - var statusCode = res && res.statusCode - if (statusCode === 200) { - // Work around bug in node v0.10.0 where the CryptoStream - // gets stuck and never starts reading again. - res.resume() - if (process.version === 'v0.10.0') unstick(res) - - return cb(null, res) - // Only retry on 408, 5xx or no `response`. - } else if (statusCode === 408) { - er = new Error('request timed out') - } else if (statusCode >= 500) { - er = new Error('server error ' + statusCode) - } - - if (er && operation.retry(er)) { - client.log.info('retry', 'will retry, error on last attempt: ' + er) - } else { - cb(new Error('fetch failed with status code ' + statusCode)) - } - }) - }) - }) -} - -function unstick (response) { - response.resume = (function (orig) { - return function () { - var ret = orig.apply(response, arguments) - if (response.socket.encrypted) response.socket.encrypted.read(0) - return ret - } - })(response.resume) -} - -function makeRequest (remote, params, cb) { - var parsed = url.parse(remote) - this.log.http('fetch', 'GET', parsed.href) - - var headers = params.headers || {} - var er = this.authify( - params.auth && params.auth.alwaysAuth, - parsed, - headers, - params.auth - ) - if (er) return cb(er) - - var opts = this.initialize( - parsed, - 'GET', - 'application/x-tar, application/vnd.github+json; q=0.1', - headers - ) - // always want to follow redirects for fetch - opts.followRedirect = true - - cb(null, request(opts)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/get.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/get.js deleted file mode 100644 index ab0eae10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/get.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = get - -var assert = require('assert') -var url = require('url') - -/* - * This is meant to be overridden in specific implementations if you - * want specialized behavior for metadata (i.e. caching). - */ -function get (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to get') - assert(params && typeof params === 'object', 'must pass params to get') - assert(typeof cb === 'function', 'must pass callback to get') - - var parsed = url.parse(uri) - assert( - parsed.protocol === 'http:' || parsed.protocol === 'https:', - 'must have a URL that starts with http: or https:' - ) - - this.request(uri, params, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/initialize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/initialize.js deleted file mode 100644 index 3c12697f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/initialize.js +++ /dev/null @@ -1,81 +0,0 @@ -var crypto = require('crypto') -var HttpAgent = require('http').Agent -var HttpsAgent = require('https').Agent - -var pkg = require('../package.json') - -module.exports = initialize - -function initialize (uri, method, accept, headers) { - if (!this.config.sessionToken) { - this.config.sessionToken = crypto.randomBytes(8).toString('hex') - this.log.verbose('request id', this.config.sessionToken) - } - - var opts = { - url: uri, - method: method, - headers: headers, - localAddress: this.config.proxy.localAddress, - strictSSL: this.config.ssl.strict, - cert: this.config.ssl.certificate, - key: this.config.ssl.key, - ca: this.config.ssl.ca, - agent: getAgent.call(this, uri.protocol) - } - - // allow explicit disabling of proxy in environment via CLI - // - // how false gets here is the CLI's problem (it's gross) - if (this.config.proxy.http === false) { - opts.proxy = null - } else { - // request will not pay attention to the NOPROXY environment variable if a - // config value named proxy is passed in, even if it's set to null. - var proxy - if (uri.protocol === 'https:') { - proxy = this.config.proxy.https - } else { - proxy = this.config.proxy.http - } - if (typeof proxy === 'string') opts.proxy = proxy - } - - headers.version = this.version || pkg.version - headers.accept = accept - - if (this.refer) headers.referer = this.refer - - headers['npm-session'] = this.config.sessionToken - headers['user-agent'] = this.config.userAgent - - return opts -} - -function getAgent (protocol) { - if (protocol === 'https:') { - if (!this.httpsAgent) { - this.httpsAgent = new HttpsAgent({ - keepAlive: true, - maxSockets: this.config.maxSockets, - localAddress: this.config.proxy.localAddress, - rejectUnauthorized: this.config.ssl.strict, - ca: this.config.ssl.ca, - cert: this.config.ssl.certificate, - key: this.config.ssl.key - }) - } - - return this.httpsAgent - } else { - if (!this.httpAgent) { - this.httpAgent = new HttpAgent({ - keepAlive: true, - maxSockets: this.config.maxSockets, - localAddress: this.config.proxy.localAddress - }) - } - - return this.httpAgent - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/logout.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/logout.js deleted file mode 100644 index e66e9b78..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/logout.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = logout - -var assert = require('assert') -var url = require('url') - -function logout (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to logout') - assert(params && typeof params === 'object', 'must pass params to logout') - assert(typeof cb === 'function', 'must pass callback to star') - - var auth = params.auth - assert(auth && typeof auth === 'object', 'must pass auth to logout') - assert(typeof auth.token === 'string', 'can only log out for token auth') - - uri = url.resolve(uri, '-/user/token/' + auth.token) - var options = { - method: 'DELETE', - auth: auth - } - - this.log.verbose('logout', 'invalidating session token for user') - this.request(uri, options, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/ping.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/ping.js deleted file mode 100644 index b90f99d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/ping.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = ping - -var url = require('url') -var assert = require('assert') - -function ping (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to ping') - assert(params && typeof params === 'object', 'must pass params to ping') - assert(typeof cb === 'function', 'must pass callback to ping') - - var auth = params.auth - assert(auth && typeof auth === 'object', 'must pass auth to ping') - - this.request(url.resolve(uri, '-/ping?write=true'), { auth: auth }, function (er, fullData) { - if (er) { - cb(er) - } else if (fullData) { - cb(null, fullData) - } else { - cb(new Error('No data received')) - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/publish.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/publish.js deleted file mode 100644 index 13e61deb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/publish.js +++ /dev/null @@ -1,187 +0,0 @@ -module.exports = publish - -var url = require('url') -var semver = require('semver') -var crypto = require('crypto') -var Stream = require('stream').Stream -var assert = require('assert') -var fixer = require('normalize-package-data').fixer -var concat = require('concat-stream') - -function escaped (name) { - return name.replace('/', '%2f') -} - -function publish (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to publish') - assert(params && typeof params === 'object', 'must pass params to publish') - assert(typeof cb === 'function', 'must pass callback to publish') - - var access = params.access - assert( - (!access) || ['public', 'restricted'].indexOf(access) !== -1, - "if present, access level must be either 'public' or 'restricted'" - ) - - var auth = params.auth - assert(auth && typeof auth === 'object', 'must pass auth to publish') - if (!(auth.token || - (auth.password && auth.username && auth.email))) { - var er = new Error('auth required for publishing') - er.code = 'ENEEDAUTH' - return cb(er) - } - - var metadata = params.metadata - assert( - metadata && typeof metadata === 'object', - 'must pass package metadata to publish' - ) - try { - fixer.fixNameField(metadata, {strict: true, allowLegacyCase: true}) - } catch (er) { - return cb(er) - } - var version = semver.clean(metadata.version) - if (!version) return cb(new Error('invalid semver: ' + metadata.version)) - metadata.version = version - - var body = params.body - assert(body, 'must pass package body to publish') - assert(body instanceof Stream, 'package body passed to publish must be a stream') - var client = this - var sink = concat(function (tarbuffer) { - putFirst.call(client, uri, metadata, tarbuffer, access, auth, cb) - }) - sink.on('error', cb) - body.pipe(sink) -} - -function putFirst (registry, data, tarbuffer, access, auth, cb) { - // optimistically try to PUT all in one single atomic thing. - // If 409, then GET and merge, try again. - // If other error, then fail. - - var root = { - _id: data.name, - name: data.name, - description: data.description, - 'dist-tags': {}, - versions: {}, - readme: data.readme || '' - } - - if (access) root.access = access - - if (!auth.token) { - root.maintainers = [{ name: auth.username, email: auth.email }] - data.maintainers = JSON.parse(JSON.stringify(root.maintainers)) - } - - root.versions[ data.version ] = data - var tag = data.tag || this.config.defaultTag - root['dist-tags'][tag] = data.version - - var tbName = data.name + '-' + data.version + '.tgz' - var tbURI = data.name + '/-/' + tbName - - data._id = data.name + '@' + data.version - data.dist = data.dist || {} - data.dist.shasum = crypto.createHash('sha1').update(tarbuffer).digest('hex') - data.dist.tarball = url.resolve(registry, tbURI) - .replace(/^https:\/\//, 'http://') - - root._attachments = {} - root._attachments[ tbName ] = { - 'content_type': 'application/octet-stream', - 'data': tarbuffer.toString('base64'), - 'length': tarbuffer.length - } - - var fixed = url.resolve(registry, escaped(data.name)) - var client = this - var options = { - method: 'PUT', - body: root, - auth: auth - } - this.request(fixed, options, function (er, parsed, json, res) { - var r409 = 'must supply latest _rev to update existing package' - var r409b = 'Document update conflict.' - var conflict = res && res.statusCode === 409 - if (parsed && (parsed.reason === r409 || parsed.reason === r409b)) { - conflict = true - } - - // a 409 is typical here. GET the data and merge in. - if (er && !conflict) { - client.log.error('publish', 'Failed PUT ' + (res && res.statusCode)) - return cb(er) - } - - if (!er && !conflict) return cb(er, parsed, json, res) - - // let's see what versions are already published. - client.request(fixed + '?write=true', { auth: auth }, function (er, current) { - if (er) return cb(er) - - putNext.call(client, registry, data.version, root, current, auth, cb) - }) - }) -} - -function putNext (registry, newVersion, root, current, auth, cb) { - // already have the tardata on the root object - // just merge in existing stuff - var curVers = Object.keys(current.versions || {}).map(function (v) { - return semver.clean(v, true) - }).concat(Object.keys(current.time || {}).map(function (v) { - if (semver.valid(v, true)) return semver.clean(v, true) - }).filter(function (v) { - return v - })) - - if (curVers.indexOf(newVersion) !== -1) { - return cb(conflictError(root.name, newVersion)) - } - - current.versions[newVersion] = root.versions[newVersion] - current._attachments = current._attachments || {} - for (var i in root) { - switch (i) { - // objects that copy over the new stuffs - case 'dist-tags': - case 'versions': - case '_attachments': - for (var j in root[i]) - current[i][j] = root[i][j] - break - - // ignore these - case 'maintainers': - break - - // copy - default: - current[i] = root[i] - } - } - var maint = JSON.parse(JSON.stringify(root.maintainers)) - root.versions[newVersion].maintainers = maint - - var uri = url.resolve(registry, escaped(root.name)) - var options = { - method: 'PUT', - body: current, - auth: auth - } - this.request(uri, options, cb) -} - -function conflictError (pkgid, version) { - var e = new Error('cannot modify pre-existing version') - e.code = 'EPUBLISHCONFLICT' - e.pkgid = pkgid - e.version = version - return e -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/request.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/request.js deleted file mode 100644 index 567fc8db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/request.js +++ /dev/null @@ -1,271 +0,0 @@ -module.exports = regRequest - -// npm: means -// 1. https -// 2. send authorization -// 3. content-type is 'application/json' -- metadata -// -var assert = require('assert') -var url = require('url') -var zlib = require('zlib') -var Stream = require('stream').Stream -var STATUS_CODES = require('http').STATUS_CODES - -var request = require('request') -var once = require('once') - -function regRequest (uri, params, cb_) { - assert(typeof uri === 'string', 'must pass uri to request') - assert(params && typeof params === 'object', 'must pass params to request') - assert(typeof cb_ === 'function', 'must pass callback to request') - - params.method = params.method || 'GET' - this.log.verbose('request', 'uri', uri) - - // Since there are multiple places where an error could occur, - // don't let the cb be called more than once. - var cb = once(cb_) - - if (uri.match(/^\/?favicon.ico/)) { - return cb(new Error("favicon.ico isn't a package, it's a picture.")) - } - - var adduserChange = /\/?-\/user\/org\.couchdb\.user:([^/]+)\/-rev/ - var isUserChange = uri.match(adduserChange) - var adduserNew = /\/?-\/user\/org\.couchdb\.user:([^/?]+)$/ - var isNewUser = uri.match(adduserNew) - var alwaysAuth = params.auth && params.auth.alwaysAuth - var isDelete = params.method === 'DELETE' - var isWrite = params.body || isDelete - - if (isUserChange && !isWrite) { - return cb(new Error('trying to change user document without writing(?!)')) - } - - // new users can *not* use auth, because they don't *have* auth yet - if (isUserChange) { - this.log.verbose('request', 'updating existing user; sending authorization') - params.authed = true - } else if (isNewUser) { - this.log.verbose('request', "new user, so can't send auth") - params.authed = false - } else if (alwaysAuth) { - this.log.verbose('request', 'always-auth set; sending authorization') - params.authed = true - } else if (isWrite) { - this.log.verbose('request', 'sending authorization for write operation') - params.authed = true - } else { - // most of the time we don't want to auth - this.log.verbose('request', 'no auth needed') - params.authed = false - } - - var self = this - this.attempt(function (operation) { - makeRequest.call(self, uri, params, function (er, parsed, raw, response) { - if (response) { - self.log.verbose('headers', response.headers) - if (response.headers['npm-notice']) { - self.log.warn('notice', response.headers['npm-notice']) - } - } - - if (!er || (er.message && er.message.match(/^SSL Error/))) { - if (er) er.code = 'ESSL' - return cb(er, parsed, raw, response) - } - - // Only retry on 408, 5xx or no `response`. - var statusCode = response && response.statusCode - - var timeout = statusCode === 408 - var serverError = statusCode >= 500 - var statusRetry = !statusCode || timeout || serverError - if (er && statusRetry && operation.retry(er)) { - self.log.info('retry', 'will retry, error on last attempt: ' + er) - return undefined - } - cb.apply(null, arguments) - }) - }) -} - -function makeRequest (uri, params, cb_) { - var cb = once(cb_) - - var parsed = url.parse(uri) - var headers = {} - - // metadata should be compressed - headers['accept-encoding'] = 'gzip' - - var er = this.authify(params.authed, parsed, headers, params.auth) - if (er) return cb_(er) - - var opts = this.initialize( - parsed, - params.method, - 'application/json', - headers - ) - - opts.followRedirect = (typeof params.follow === 'boolean' ? params.follow : true) - opts.encoding = null // tell request let body be Buffer instance - - if (params.etag) { - this.log.verbose('etag', params.etag) - headers[params.method === 'GET' ? 'if-none-match' : 'if-match'] = params.etag - } - - if (params.lastModified && params.method === 'GET') { - this.log.verbose('lastModified', params.lastModified) - headers['if-modified-since'] = params.lastModified - } - - // figure out wth body is - if (params.body) { - if (Buffer.isBuffer(params.body)) { - opts.body = params.body - headers['content-type'] = 'application/json' - headers['content-length'] = params.body.length - } else if (typeof params.body === 'string') { - opts.body = params.body - headers['content-type'] = 'application/json' - headers['content-length'] = Buffer.byteLength(params.body) - } else if (params.body instanceof Stream) { - headers['content-type'] = 'application/octet-stream' - if (params.body.size) headers['content-length'] = params.body.size - } else { - delete params.body._etag - delete params.body._lastModified - opts.json = params.body - } - } - - this.log.http('request', params.method, parsed.href || '/') - - var done = requestDone.call(this, params.method, uri, cb) - var req = request(opts, decodeResponseBody(done)) - - req.on('error', cb) - req.on('socket', function (s) { - s.on('error', cb) - }) - - if (params.body && (params.body instanceof Stream)) { - params.body.pipe(req) - } -} - -function decodeResponseBody (cb) { - return function (er, response, data) { - if (er) return cb(er, response, data) - - // don't ever re-use connections that had server errors. - // those sockets connect to the Bad Place! - if (response.socket && response.statusCode > 500) { - response.socket.destroy() - } - - if (response.headers['content-encoding'] !== 'gzip') { - return cb(er, response, data) - } - - zlib.gunzip(data, function (er, buf) { - if (er) return cb(er, response, data) - - cb(null, response, buf) - }) - } -} - -// cb(er, parsed, raw, response) -function requestDone (method, where, cb) { - return function (er, response, data) { - if (er) return cb(er) - - var urlObj = url.parse(where) - if (urlObj.auth) urlObj.auth = '***' - this.log.http(response.statusCode, url.format(urlObj)) - - if (Buffer.isBuffer(data)) { - data = data.toString() - } - - var parsed - if (data && typeof data === 'string' && response.statusCode !== 304) { - try { - parsed = JSON.parse(data) - } catch (ex) { - ex.message += '\n' + data - this.log.verbose('bad json', data) - this.log.error('registry', 'error parsing json') - return cb(ex, null, data, response) - } - } else if (data) { - parsed = data - data = JSON.stringify(parsed) - } - - // expect data with any error codes - if (!data && response.statusCode >= 400) { - var code = response.statusCode - return cb( - makeError(code + ' ' + STATUS_CODES[code], null, code), - null, - data, - response - ) - } - - er = null - if (parsed && response.headers.etag) { - parsed._etag = response.headers.etag - } - - if (parsed && response.headers['last-modified']) { - parsed._lastModified = response.headers['last-modified'] - } - - // for the search endpoint, the 'error' property can be an object - if (parsed && parsed.error && typeof parsed.error !== 'object' || - response.statusCode >= 400) { - var w = url.parse(where).pathname.substr(1) - var name - if (!w.match(/^-/)) { - w = w.split('/') - name = decodeURIComponent(w[w.indexOf('_rewrite') + 1]) - } - - if (!parsed.error) { - er = makeError( - 'Registry returned ' + response.statusCode + - ' for ' + method + - ' on ' + where, - name, - response.statusCode - ) - } else if (name && parsed.error === 'not_found') { - er = makeError('404 Not Found: ' + name, name, response.statusCode) - } else { - er = makeError( - parsed.error + ' ' + (parsed.reason || '') + ': ' + (name || w), - name, - response.statusCode - ) - } - } - return cb(er, parsed, data, response) - }.bind(this) -} - -function makeError (message, name, code) { - var er = new Error(message) - if (name) er.pkgid = name - if (code) { - er.statusCode = code - er.code = 'E' + code - } - return er -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/star.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/star.js deleted file mode 100644 index 5c9224ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/star.js +++ /dev/null @@ -1,51 +0,0 @@ -module.exports = star - -var assert = require('assert') - -function star (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to star') - assert(params && typeof params === 'object', 'must pass params to star') - assert(typeof cb === 'function', 'must pass callback to star') - - var starred = !!params.starred - - var auth = params.auth - assert(auth && typeof auth === 'object', 'must pass auth to star') - if (!(auth.token || (auth.password && auth.username && auth.email))) { - var er = new Error('Must be logged in to star/unstar packages') - er.code = 'ENEEDAUTH' - return cb(er) - } - - var client = this - this.request(uri + '?write=true', { auth: auth }, function (er, fullData) { - if (er) return cb(er) - - client.whoami(uri, params, function (er, username) { - if (er) return cb(er) - - var data = { - _id: fullData._id, - _rev: fullData._rev, - users: fullData.users || {} - } - - if (starred) { - client.log.info('starring', data._id) - data.users[username] = true - client.log.verbose('starring', data) - } else { - delete data.users[username] - client.log.info('unstarring', data._id) - client.log.verbose('unstarring', data) - } - - var options = { - method: 'PUT', - body: data, - auth: auth - } - return client.request(uri, options, cb) - }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/stars.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/stars.js deleted file mode 100644 index ba47f2c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/stars.js +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = stars - -var assert = require('assert') -var url = require('url') - -function stars (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to stars') - assert(params && typeof params === 'object', 'must pass params to stars') - assert(typeof cb === 'function', 'must pass callback to stars') - - var auth = params.auth - var name = params.username || (auth && auth.username) - if (!name) return cb(new Error('must pass either username or auth to stars')) - var encoded = encodeURIComponent(name) - var path = '-/_view/starredByUser?key="' + encoded + '"' - - this.request(url.resolve(uri, path), { auth: auth }, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/tag.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/tag.js deleted file mode 100644 index 3b6dad1d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/tag.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = tag - -var assert = require('assert') - -function tag (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to tag') - assert(params && typeof params === 'object', 'must pass params to tag') - assert(typeof cb === 'function', 'must pass callback to tag') - - assert(typeof params.version === 'string', 'must pass version to tag') - assert(typeof params.tag === 'string', 'must pass tag name to tag') - assert( - params.auth && typeof params.auth === 'object', - 'must pass auth to tag' - ) - - var options = { - method: 'PUT', - body: JSON.stringify(params.version), - auth: params.auth - } - this.request(uri + '/' + params.tag, options, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/team.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/team.js deleted file mode 100644 index 3e3794e0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/team.js +++ /dev/null @@ -1,105 +0,0 @@ -module.exports = team - -var assert = require('assert') -var url = require('url') - -var subcommands = {} - -function team (sub, uri, params, cb) { - teamAssertions(sub, uri, params, cb) - return subcommands[sub].call(this, uri, params, cb) -} - -subcommands.create = function (uri, params, cb) { - return this.request(apiUri(uri, 'org', params.scope, 'team'), { - method: 'PUT', - auth: params.auth, - body: JSON.stringify({ - name: params.team - }) - }, cb) -} - -subcommands.destroy = function (uri, params, cb) { - return this.request(apiUri(uri, 'team', params.scope, params.team), { - method: 'DELETE', - auth: params.auth - }, cb) -} - -subcommands.add = function (uri, params, cb) { - return this.request(apiUri(uri, 'team', params.scope, params.team, 'user'), { - method: 'PUT', - auth: params.auth, - body: JSON.stringify({ - user: params.user - }) - }, cb) -} - -subcommands.rm = function (uri, params, cb) { - return this.request(apiUri(uri, 'team', params.scope, params.team, 'user'), { - method: 'DELETE', - auth: params.auth, - body: JSON.stringify({ - user: params.user - }) - }, cb) -} - -subcommands.ls = function (uri, params, cb) { - var uriParams = '?format=cli' - if (params.team) { - var reqUri = apiUri( - uri, 'team', params.scope, params.team, 'user') + uriParams - return this.request(reqUri, { - method: 'GET', - auth: params.auth - }, cb) - } else { - return this.request(apiUri(uri, 'org', params.scope, 'team') + uriParams, { - method: 'GET', - auth: params.auth - }, cb) - } -} - -// TODO - we punted this to v2 -// subcommands.edit = function (uri, params, cb) { -// return this.request(apiUri(uri, 'team', params.scope, params.team, 'user'), { -// method: 'POST', -// auth: params.auth, -// body: JSON.stringify({ -// users: params.users -// }) -// }, cb) -// } - -function apiUri (registryUri) { - var path = Array.prototype.slice.call(arguments, 1) - .map(encodeURIComponent) - .join('/') - return url.resolve(registryUri, '-/' + path) -} - -function teamAssertions (subcommand, uri, params, cb) { - assert(subcommand, 'subcommand is required') - assert(subcommands.hasOwnProperty(subcommand), - 'team subcommand must be one of ' + Object.keys(subcommands)) - assert(typeof uri === 'string', 'registry URI is required') - assert(typeof params === 'object', 'params are required') - assert(typeof params.auth === 'object', 'auth is required') - assert(typeof params.scope === 'string', 'scope is required') - assert(!cb || typeof cb === 'function', 'callback must be a function') - if (subcommand !== 'ls') { - assert(typeof params.team === 'string', 'team name is required') - } - if (subcommand === 'rm' || subcommand === 'add') { - assert(typeof params.user === 'string', 'user is required') - } - if (subcommand === 'edit') { - assert(typeof params.users === 'object' && - params.users.length != null, - 'users is required') - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/unpublish.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/unpublish.js deleted file mode 100644 index 05c5a4b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/unpublish.js +++ /dev/null @@ -1,120 +0,0 @@ -module.exports = unpublish - -// fetch the data -// modify to remove the version in question -// If no versions remaining, then DELETE -// else, PUT the modified data -// delete the tarball - -var semver = require('semver') -var url = require('url') -var chain = require('slide').chain -var assert = require('assert') - -function unpublish (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to unpublish') - assert(params && typeof params === 'object', 'must pass params to unpublish') - assert(typeof cb === 'function', 'must pass callback to unpublish') - - var ver = params.version - var auth = params.auth - assert(auth && typeof auth === 'object', 'must pass auth to unpublish') - - var options = { - timeout: -1, - follow: false, - auth: auth - } - this.get(uri + '?write=true', options, function (er, data) { - if (er) { - this.log.info('unpublish', uri + ' not published') - return cb() - } - // remove all if no version specified - if (!ver) { - this.log.info('unpublish', 'No version specified, removing all') - return this.request(uri + '/-rev/' + data._rev, { method: 'DELETE', auth: auth }, cb) - } - - var versions = data.versions || {} - var versionPublic = versions.hasOwnProperty(ver) - - var dist - if (!versionPublic) { - this.log.info('unpublish', uri + '@' + ver + ' not published') - } else { - dist = versions[ver].dist - this.log.verbose('unpublish', 'removing attachments', dist) - } - - delete versions[ver] - // if it was the only version, then delete the whole package. - if (!Object.keys(versions).length) { - this.log.info('unpublish', 'No versions remain, removing entire package') - return this.request(uri + '/-rev/' + data._rev, { method: 'DELETE', auth: auth }, cb) - } - - if (!versionPublic) return cb() - - var latestVer = data['dist-tags'].latest - for (var tag in data['dist-tags']) { - if (data['dist-tags'][tag] === ver) delete data['dist-tags'][tag] - } - - if (latestVer === ver) { - data['dist-tags'].latest = - Object.getOwnPropertyNames(versions).sort(semver.compareLoose).pop() - } - - var rev = data._rev - delete data._revisions - delete data._attachments - var cb_ = detacher.call(this, uri, data, dist, auth, cb) - - this.request(uri + '/-rev/' + rev, { method: 'PUT', body: data, auth: auth }, function (er) { - if (er) { - this.log.error('unpublish', 'Failed to update data') - } - cb_(er) - }.bind(this)) - }.bind(this)) -} - -function detacher (uri, data, dist, credentials, cb) { - return function (er) { - if (er) return cb(er) - this.get(escape(uri, data.name), { auth: credentials }, function (er, data) { - if (er) return cb(er) - - var tb = url.parse(dist.tarball) - - detach.call(this, uri, data, tb.pathname, data._rev, credentials, function (er) { - if (er || !dist.bin) return cb(er) - chain(Object.keys(dist.bin).map(function (bt) { - return function (cb) { - var d = dist.bin[bt] - detach.call(this, uri, data, url.parse(d.tarball).pathname, null, credentials, cb) - }.bind(this) - }, this), cb) - }.bind(this)) - }.bind(this)) - }.bind(this) -} - -function detach (uri, data, path, rev, credentials, cb) { - if (rev) { - path += '/-rev/' + rev - this.log.info('detach', path) - return this.request(url.resolve(uri, path), { method: 'DELETE', auth: credentials }, cb) - } - this.get(escape(uri, data.name), { auth: credentials }, function (er, data) { - rev = data._rev - if (!rev) return cb(new Error('No _rev found in ' + data._id)) - detach.call(this, data, path, rev, cb) - }.bind(this)) -} - -function escape (base, name) { - var escaped = name.replace(/\//, '%2f') - return url.resolve(base, escaped) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/whoami.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/whoami.js deleted file mode 100644 index 68db49e5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/lib/whoami.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = whoami - -var url = require('url') -var assert = require('assert') - -function whoami (uri, params, cb) { - assert(typeof uri === 'string', 'must pass registry URI to whoami') - assert(params && typeof params === 'object', 'must pass params to whoami') - assert(typeof cb === 'function', 'must pass callback to whoami') - - var auth = params.auth - assert(auth && typeof auth === 'object', 'must pass auth to whoami') - - if (auth.username) return process.nextTick(cb.bind(this, null, auth.username)) - - this.request(url.resolve(uri, '-/whoami'), { auth: auth }, function (er, userdata) { - if (er) return cb(er) - - cb(null, userdata.username) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE deleted file mode 100644 index 99c130e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -The MIT License - -Copyright (c) 2013 Max Ogden - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/index.js deleted file mode 100644 index b55ae7e0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/index.js +++ /dev/null @@ -1,136 +0,0 @@ -var Writable = require('readable-stream').Writable -var inherits = require('inherits') - -if (typeof Uint8Array === 'undefined') { - var U8 = require('typedarray').Uint8Array -} else { - var U8 = Uint8Array -} - -function ConcatStream(opts, cb) { - if (!(this instanceof ConcatStream)) return new ConcatStream(opts, cb) - - if (typeof opts === 'function') { - cb = opts - opts = {} - } - if (!opts) opts = {} - - var encoding = opts.encoding - var shouldInferEncoding = false - - if (!encoding) { - shouldInferEncoding = true - } else { - encoding = String(encoding).toLowerCase() - if (encoding === 'u8' || encoding === 'uint8') { - encoding = 'uint8array' - } - } - - Writable.call(this, { objectMode: true }) - - this.encoding = encoding - this.shouldInferEncoding = shouldInferEncoding - - if (cb) this.on('finish', function () { cb(this.getBody()) }) - this.body = [] -} - -module.exports = ConcatStream -inherits(ConcatStream, Writable) - -ConcatStream.prototype._write = function(chunk, enc, next) { - this.body.push(chunk) - next() -} - -ConcatStream.prototype.inferEncoding = function (buff) { - var firstBuffer = buff === undefined ? this.body[0] : buff; - if (Buffer.isBuffer(firstBuffer)) return 'buffer' - if (typeof Uint8Array !== 'undefined' && firstBuffer instanceof Uint8Array) return 'uint8array' - if (Array.isArray(firstBuffer)) return 'array' - if (typeof firstBuffer === 'string') return 'string' - if (Object.prototype.toString.call(firstBuffer) === "[object Object]") return 'object' - return 'buffer' -} - -ConcatStream.prototype.getBody = function () { - if (!this.encoding && this.body.length === 0) return [] - if (this.shouldInferEncoding) this.encoding = this.inferEncoding() - if (this.encoding === 'array') return arrayConcat(this.body) - if (this.encoding === 'string') return stringConcat(this.body) - if (this.encoding === 'buffer') return bufferConcat(this.body) - if (this.encoding === 'uint8array') return u8Concat(this.body) - return this.body -} - -var isArray = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]' -} - -function isArrayish (arr) { - return /Array\]$/.test(Object.prototype.toString.call(arr)) -} - -function stringConcat (parts) { - var strings = [] - var needsToString = false - for (var i = 0; i < parts.length; i++) { - var p = parts[i] - if (typeof p === 'string') { - strings.push(p) - } else if (Buffer.isBuffer(p)) { - strings.push(p) - } else { - strings.push(Buffer(p)) - } - } - if (Buffer.isBuffer(parts[0])) { - strings = Buffer.concat(strings) - strings = strings.toString('utf8') - } else { - strings = strings.join('') - } - return strings -} - -function bufferConcat (parts) { - var bufs = [] - for (var i = 0; i < parts.length; i++) { - var p = parts[i] - if (Buffer.isBuffer(p)) { - bufs.push(p) - } else if (typeof p === 'string' || isArrayish(p) - || (p && typeof p.subarray === 'function')) { - bufs.push(Buffer(p)) - } else bufs.push(Buffer(String(p))) - } - return Buffer.concat(bufs) -} - -function arrayConcat (parts) { - var res = [] - for (var i = 0; i < parts.length; i++) { - res.push.apply(res, parts[i]) - } - return res -} - -function u8Concat (parts) { - var len = 0 - for (var i = 0; i < parts.length; i++) { - if (typeof parts[i] === 'string') { - parts[i] = Buffer(parts[i]) - } - len += parts[i].length - } - var u8 = new U8(len) - for (var i = 0, offset = 0; i < parts.length; i++) { - var part = parts[i] - for (var j = 0; j < part.length; j++) { - u8[offset++] = part[j] - } - } - return u8 -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.npmignore deleted file mode 100644 index 38344f87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -build/ -test/ -examples/ -fs.js -zlib.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.travis.yml deleted file mode 100644 index 1b821184..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.travis.yml +++ /dev/null @@ -1,52 +0,0 @@ -sudo: false -language: node_js -before_install: - - npm install -g npm@2 - - npm install -g npm -notifications: - email: false -matrix: - fast_finish: true - allow_failures: - - env: TASK=browser BROWSER_NAME=ipad BROWSER_VERSION="6.0..latest" - - env: TASK=browser BROWSER_NAME=iphone BROWSER_VERSION="6.0..latest" - include: - - node_js: '0.8' - env: TASK=test - - node_js: '0.10' - env: TASK=test - - node_js: '0.11' - env: TASK=test - - node_js: '0.12' - env: TASK=test - - node_js: 1 - env: TASK=test - - node_js: 2 - env: TASK=test - - node_js: 3 - env: TASK=test - - node_js: 4 - env: TASK=test - - node_js: 5 - env: TASK=test - - node_js: 5 - env: TASK=browser BROWSER_NAME=android BROWSER_VERSION="4.0..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=ie BROWSER_VERSION="9..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=opera BROWSER_VERSION="11..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=chrome BROWSER_VERSION="-3..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=firefox BROWSER_VERSION="-3..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=ipad BROWSER_VERSION="6.0..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=iphone BROWSER_VERSION="6.0..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=safari BROWSER_VERSION="5..latest" -script: "npm run $TASK" -env: - global: - - secure: rE2Vvo7vnjabYNULNyLFxOyt98BoJexDqsiOnfiD6kLYYsiQGfr/sbZkPMOFm9qfQG7pjqx+zZWZjGSswhTt+626C0t/njXqug7Yps4c3dFblzGfreQHp7wNX5TFsvrxd6dAowVasMp61sJcRnB2w8cUzoe3RAYUDHyiHktwqMc= - - secure: g9YINaKAdMatsJ28G9jCGbSaguXCyxSTy+pBO6Ch0Cf57ZLOTka3HqDj8p3nV28LUIHZ3ut5WO43CeYKwt4AUtLpBS3a0dndHdY6D83uY6b2qh5hXlrcbeQTq2cvw2y95F7hm4D1kwrgZ7ViqaKggRcEupAL69YbJnxeUDKWEdI= diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.zuul.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.zuul.yml deleted file mode 100644 index 96d9cfbd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.zuul.yml +++ /dev/null @@ -1 +0,0 @@ -ui: tape diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/LICENSE deleted file mode 100644 index e3d4e695..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Copyright Joyent, Inc. and other Node contributors. All rights reserved. -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/README.md deleted file mode 100644 index 86b95a3b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# readable-stream - -***Node-core v5.8.0 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream) - - -[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/) -[![NPM](https://nodei.co/npm-dl/readable-stream.png?&months=6&height=3)](https://nodei.co/npm/readable-stream/) - - -[![Sauce Test Status](https://saucelabs.com/browser-matrix/readable-stream.svg)](https://saucelabs.com/u/readable-stream) - -```bash -npm install --save readable-stream -``` - -***Node-core streams for userland*** - -This package is a mirror of the Streams2 and Streams3 implementations in -Node-core, including [documentation](doc/stream.markdown). - -If you want to guarantee a stable streams base, regardless of what version of -Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). - -As of version 2.0.0 **readable-stream** uses semantic versioning. - -# Streams WG Team Members - -* **Chris Dickinson** ([@chrisdickinson](https://github.com/chrisdickinson)) <christopher.s.dickinson@gmail.com> - - Release GPG key: 9554F04D7259F04124DE6B476D5A82AC7E37093B -* **Calvin Metcalf** ([@calvinmetcalf](https://github.com/calvinmetcalf)) <calvin.metcalf@gmail.com> - - Release GPG key: F3EF5F62A87FC27A22E643F714CE4FF5015AA242 -* **Rod Vagg** ([@rvagg](https://github.com/rvagg)) <rod@vagg.org> - - Release GPG key: DD8F2338BAE7501E3DD5AC78C273792F7D83545D -* **Sam Newman** ([@sonewman](https://github.com/sonewman)) <newmansam@outlook.com> -* **Mathias Buus** ([@mafintosh](https://github.com/mafintosh)) <mathiasbuus@gmail.com> -* **Domenic Denicola** ([@domenic](https://github.com/domenic)) <d@domenic.me> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/stream.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/stream.markdown deleted file mode 100644 index 0bc3819e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/stream.markdown +++ /dev/null @@ -1,1760 +0,0 @@ -# Stream - - Stability: 2 - Stable - -A stream is an abstract interface implemented by various objects in -Node.js. For example a [request to an HTTP server][http-incoming-message] is a -stream, as is [`process.stdout`][]. Streams are readable, writable, or both. All -streams are instances of [`EventEmitter`][]. - -You can load the Stream base classes by doing `require('stream')`. -There are base classes provided for [Readable][] streams, [Writable][] -streams, [Duplex][] streams, and [Transform][] streams. - -This document is split up into 3 sections: - -1. The first section explains the parts of the API that you need to be - aware of to use streams in your programs. -2. The second section explains the parts of the API that you need to - use if you implement your own custom streams yourself. The API is designed to - make this easy for you to do. -3. The third section goes into more depth about how streams work, - including some of the internal mechanisms and functions that you - should probably not modify unless you definitely know what you are - doing. - - -## API for Stream Consumers - - - -Streams can be either [Readable][], [Writable][], or both ([Duplex][]). - -All streams are EventEmitters, but they also have other custom methods -and properties depending on whether they are Readable, Writable, or -Duplex. - -If a stream is both Readable and Writable, then it implements all of -the methods and events. So, a [Duplex][] or [Transform][] stream is -fully described by this API, though their implementation may be -somewhat different. - -It is not necessary to implement Stream interfaces in order to consume -streams in your programs. If you **are** implementing streaming -interfaces in your own program, please also refer to -[API for Stream Implementors][]. - -Almost all Node.js programs, no matter how simple, use Streams in some -way. Here is an example of using Streams in an Node.js program: - -```js -const http = require('http'); - -var server = http.createServer( (req, res) => { - // req is an http.IncomingMessage, which is a Readable Stream - // res is an http.ServerResponse, which is a Writable Stream - - var body = ''; - // we want to get the data as utf8 strings - // If you don't set an encoding, then you'll get Buffer objects - req.setEncoding('utf8'); - - // Readable streams emit 'data' events once a listener is added - req.on('data', (chunk) => { - body += chunk; - }); - - // the end event tells you that you have entire body - req.on('end', () => { - try { - var data = JSON.parse(body); - } catch (er) { - // uh oh! bad json! - res.statusCode = 400; - return res.end(`error: ${er.message}`); - } - - // write back something interesting to the user: - res.write(typeof data); - res.end(); - }); -}); - -server.listen(1337); - -// $ curl localhost:1337 -d '{}' -// object -// $ curl localhost:1337 -d '"foo"' -// string -// $ curl localhost:1337 -d 'not json' -// error: Unexpected token o -``` - -### Class: stream.Duplex - -Duplex streams are streams that implement both the [Readable][] and -[Writable][] interfaces. - -Examples of Duplex streams include: - -* [TCP sockets][] -* [zlib streams][zlib] -* [crypto streams][crypto] - -### Class: stream.Readable - - - -The Readable stream interface is the abstraction for a *source* of -data that you are reading from. In other words, data comes *out* of a -Readable stream. - -A Readable stream will not start emitting data until you indicate that -you are ready to receive it. - -Readable streams have two "modes": a **flowing mode** and a **paused -mode**. When in flowing mode, data is read from the underlying system -and provided to your program as fast as possible. In paused mode, you -must explicitly call [`stream.read()`][stream-read] to get chunks of data out. -Streams start out in paused mode. - -**Note**: If no data event handlers are attached, and there are no -[`stream.pipe()`][] destinations, and the stream is switched into flowing -mode, then data will be lost. - -You can switch to flowing mode by doing any of the following: - -* Adding a [`'data'`][] event handler to listen for data. -* Calling the [`stream.resume()`][stream-resume] method to explicitly open the - flow. -* Calling the [`stream.pipe()`][] method to send the data to a [Writable][]. - -You can switch back to paused mode by doing either of the following: - -* If there are no pipe destinations, by calling the - [`stream.pause()`][stream-pause] method. -* If there are pipe destinations, by removing any [`'data'`][] event - handlers, and removing all pipe destinations by calling the - [`stream.unpipe()`][] method. - -Note that, for backwards compatibility reasons, removing [`'data'`][] -event handlers will **not** automatically pause the stream. Also, if -there are piped destinations, then calling [`stream.pause()`][stream-pause] will -not guarantee that the stream will *remain* paused once those -destinations drain and ask for more data. - -Examples of readable streams include: - -* [HTTP responses, on the client][http-incoming-message] -* [HTTP requests, on the server][http-incoming-message] -* [fs read streams][] -* [zlib streams][zlib] -* [crypto streams][crypto] -* [TCP sockets][] -* [child process stdout and stderr][] -* [`process.stdin`][] - -#### Event: 'close' - -Emitted when the stream and any of its underlying resources (a file -descriptor, for example) have been closed. The event indicates that -no more events will be emitted, and no further computation will occur. - -Not all streams will emit the `'close'` event. - -#### Event: 'data' - -* `chunk` {Buffer|String} The chunk of data. - -Attaching a `'data'` event listener to a stream that has not been -explicitly paused will switch the stream into flowing mode. Data will -then be passed as soon as it is available. - -If you just want to get all the data out of the stream as fast as -possible, this is the best way to do so. - -```js -var readable = getReadableStreamSomehow(); -readable.on('data', (chunk) => { - console.log('got %d bytes of data', chunk.length); -}); -``` - -#### Event: 'end' - -This event fires when there will be no more data to read. - -Note that the `'end'` event **will not fire** unless the data is -completely consumed. This can be done by switching into flowing mode, -or by calling [`stream.read()`][stream-read] repeatedly until you get to the -end. - -```js -var readable = getReadableStreamSomehow(); -readable.on('data', (chunk) => { - console.log('got %d bytes of data', chunk.length); -}); -readable.on('end', () => { - console.log('there will be no more data.'); -}); -``` - -#### Event: 'error' - -* {Error Object} - -Emitted if there was an error receiving data. - -#### Event: 'readable' - -When a chunk of data can be read from the stream, it will emit a -`'readable'` event. - -In some cases, listening for a `'readable'` event will cause some data -to be read into the internal buffer from the underlying system, if it -hadn't already. - -```javascript -var readable = getReadableStreamSomehow(); -readable.on('readable', () => { - // there is some data to read now -}); -``` - -Once the internal buffer is drained, a `'readable'` event will fire -again when more data is available. - -The `'readable'` event is not emitted in the "flowing" mode with the -sole exception of the last one, on end-of-stream. - -The `'readable'` event indicates that the stream has new information: -either new data is available or the end of the stream has been reached. -In the former case, [`stream.read()`][stream-read] will return that data. In the -latter case, [`stream.read()`][stream-read] will return null. For instance, in -the following example, `foo.txt` is an empty file: - -```js -const fs = require('fs'); -var rr = fs.createReadStream('foo.txt'); -rr.on('readable', () => { - console.log('readable:', rr.read()); -}); -rr.on('end', () => { - console.log('end'); -}); -``` - -The output of running this script is: - -``` -$ node test.js -readable: null -end -``` - -#### readable.isPaused() - -* Return: {Boolean} - -This method returns whether or not the `readable` has been **explicitly** -paused by client code (using [`stream.pause()`][stream-pause] without a -corresponding [`stream.resume()`][stream-resume]). - -```js -var readable = new stream.Readable - -readable.isPaused() // === false -readable.pause() -readable.isPaused() // === true -readable.resume() -readable.isPaused() // === false -``` - -#### readable.pause() - -* Return: `this` - -This method will cause a stream in flowing mode to stop emitting -[`'data'`][] events, switching out of flowing mode. Any data that becomes -available will remain in the internal buffer. - -```js -var readable = getReadableStreamSomehow(); -readable.on('data', (chunk) => { - console.log('got %d bytes of data', chunk.length); - readable.pause(); - console.log('there will be no more data for 1 second'); - setTimeout(() => { - console.log('now data will start flowing again'); - readable.resume(); - }, 1000); -}); -``` - -#### readable.pipe(destination[, options]) - -* `destination` {stream.Writable} The destination for writing data -* `options` {Object} Pipe options - * `end` {Boolean} End the writer when the reader ends. Default = `true` - -This method pulls all the data out of a readable stream, and writes it -to the supplied destination, automatically managing the flow so that -the destination is not overwhelmed by a fast readable stream. - -Multiple destinations can be piped to safely. - -```js -var readable = getReadableStreamSomehow(); -var writable = fs.createWriteStream('file.txt'); -// All the data from readable goes into 'file.txt' -readable.pipe(writable); -``` - -This function returns the destination stream, so you can set up pipe -chains like so: - -```js -var r = fs.createReadStream('file.txt'); -var z = zlib.createGzip(); -var w = fs.createWriteStream('file.txt.gz'); -r.pipe(z).pipe(w); -``` - -For example, emulating the Unix `cat` command: - -```js -process.stdin.pipe(process.stdout); -``` - -By default [`stream.end()`][stream-end] is called on the destination when the -source stream emits [`'end'`][], so that `destination` is no longer writable. -Pass `{ end: false }` as `options` to keep the destination stream open. - -This keeps `writer` open so that "Goodbye" can be written at the -end. - -```js -reader.pipe(writer, { end: false }); -reader.on('end', () => { - writer.end('Goodbye\n'); -}); -``` - -Note that [`process.stderr`][] and [`process.stdout`][] are never closed until -the process exits, regardless of the specified options. - -#### readable.read([size]) - -* `size` {Number} Optional argument to specify how much data to read. -* Return {String|Buffer|Null} - -The `read()` method pulls some data out of the internal buffer and -returns it. If there is no data available, then it will return -`null`. - -If you pass in a `size` argument, then it will return that many -bytes. If `size` bytes are not available, then it will return `null`, -unless we've ended, in which case it will return the data remaining -in the buffer. - -If you do not specify a `size` argument, then it will return all the -data in the internal buffer. - -This method should only be called in paused mode. In flowing mode, -this method is called automatically until the internal buffer is -drained. - -```js -var readable = getReadableStreamSomehow(); -readable.on('readable', () => { - var chunk; - while (null !== (chunk = readable.read())) { - console.log('got %d bytes of data', chunk.length); - } -}); -``` - -If this method returns a data chunk, then it will also trigger the -emission of a [`'data'`][] event. - -Note that calling [`stream.read([size])`][stream-read] after the [`'end'`][] -event has been triggered will return `null`. No runtime error will be raised. - -#### readable.resume() - -* Return: `this` - -This method will cause the readable stream to resume emitting [`'data'`][] -events. - -This method will switch the stream into flowing mode. If you do *not* -want to consume the data from a stream, but you *do* want to get to -its [`'end'`][] event, you can call [`stream.resume()`][stream-resume] to open -the flow of data. - -```js -var readable = getReadableStreamSomehow(); -readable.resume(); -readable.on('end', () => { - console.log('got to the end, but did not read anything'); -}); -``` - -#### readable.setEncoding(encoding) - -* `encoding` {String} The encoding to use. -* Return: `this` - -Call this function to cause the stream to return strings of the specified -encoding instead of Buffer objects. For example, if you do -`readable.setEncoding('utf8')`, then the output data will be interpreted as -UTF-8 data, and returned as strings. If you do `readable.setEncoding('hex')`, -then the data will be encoded in hexadecimal string format. - -This properly handles multi-byte characters that would otherwise be -potentially mangled if you simply pulled the Buffers directly and -called [`buf.toString(encoding)`][] on them. If you want to read the data -as strings, always use this method. - -Also you can disable any encoding at all with `readable.setEncoding(null)`. -This approach is very useful if you deal with binary data or with large -multi-byte strings spread out over multiple chunks. - -```js -var readable = getReadableStreamSomehow(); -readable.setEncoding('utf8'); -readable.on('data', (chunk) => { - assert.equal(typeof chunk, 'string'); - console.log('got %d characters of string data', chunk.length); -}); -``` - -#### readable.unpipe([destination]) - -* `destination` {stream.Writable} Optional specific stream to unpipe - -This method will remove the hooks set up for a previous [`stream.pipe()`][] -call. - -If the destination is not specified, then all pipes are removed. - -If the destination is specified, but no pipe is set up for it, then -this is a no-op. - -```js -var readable = getReadableStreamSomehow(); -var writable = fs.createWriteStream('file.txt'); -// All the data from readable goes into 'file.txt', -// but only for the first second -readable.pipe(writable); -setTimeout(() => { - console.log('stop writing to file.txt'); - readable.unpipe(writable); - console.log('manually close the file stream'); - writable.end(); -}, 1000); -``` - -#### readable.unshift(chunk) - -* `chunk` {Buffer|String} Chunk of data to unshift onto the read queue - -This is useful in certain cases where a stream is being consumed by a -parser, which needs to "un-consume" some data that it has -optimistically pulled out of the source, so that the stream can be -passed on to some other party. - -Note that `stream.unshift(chunk)` cannot be called after the [`'end'`][] event -has been triggered; a runtime error will be raised. - -If you find that you must often call `stream.unshift(chunk)` in your -programs, consider implementing a [Transform][] stream instead. (See [API -for Stream Implementors][].) - -```js -// Pull off a header delimited by \n\n -// use unshift() if we get too much -// Call the callback with (error, header, stream) -const StringDecoder = require('string_decoder').StringDecoder; -function parseHeader(stream, callback) { - stream.on('error', callback); - stream.on('readable', onReadable); - var decoder = new StringDecoder('utf8'); - var header = ''; - function onReadable() { - var chunk; - while (null !== (chunk = stream.read())) { - var str = decoder.write(chunk); - if (str.match(/\n\n/)) { - // found the header boundary - var split = str.split(/\n\n/); - header += split.shift(); - var remaining = split.join('\n\n'); - var buf = new Buffer(remaining, 'utf8'); - if (buf.length) - stream.unshift(buf); - stream.removeListener('error', callback); - stream.removeListener('readable', onReadable); - // now the body of the message can be read from the stream. - callback(null, header, stream); - } else { - // still reading the header. - header += str; - } - } - } -} -``` - -Note that, unlike [`stream.push(chunk)`][stream-push], `stream.unshift(chunk)` -will not end the reading process by resetting the internal reading state of the -stream. This can cause unexpected results if `unshift()` is called during a -read (i.e. from within a [`stream._read()`][stream-_read] implementation on a -custom stream). Following the call to `unshift()` with an immediate -[`stream.push('')`][stream-push] will reset the reading state appropriately, -however it is best to simply avoid calling `unshift()` while in the process of -performing a read. - -#### readable.wrap(stream) - -* `stream` {Stream} An "old style" readable stream - -Versions of Node.js prior to v0.10 had streams that did not implement the -entire Streams API as it is today. (See [Compatibility][] for -more information.) - -If you are using an older Node.js library that emits [`'data'`][] events and -has a [`stream.pause()`][stream-pause] method that is advisory only, then you -can use the `wrap()` method to create a [Readable][] stream that uses the old -stream as its data source. - -You will very rarely ever need to call this function, but it exists -as a convenience for interacting with old Node.js programs and libraries. - -For example: - -```js -const OldReader = require('./old-api-module.js').OldReader; -const Readable = require('stream').Readable; -const oreader = new OldReader; -const myReader = new Readable().wrap(oreader); - -myReader.on('readable', () => { - myReader.read(); // etc. -}); -``` - -### Class: stream.Transform - -Transform streams are [Duplex][] streams where the output is in some way -computed from the input. They implement both the [Readable][] and -[Writable][] interfaces. - -Examples of Transform streams include: - -* [zlib streams][zlib] -* [crypto streams][crypto] - -### Class: stream.Writable - - - -The Writable stream interface is an abstraction for a *destination* -that you are writing data *to*. - -Examples of writable streams include: - -* [HTTP requests, on the client][] -* [HTTP responses, on the server][] -* [fs write streams][] -* [zlib streams][zlib] -* [crypto streams][crypto] -* [TCP sockets][] -* [child process stdin][] -* [`process.stdout`][], [`process.stderr`][] - -#### Event: 'drain' - -If a [`stream.write(chunk)`][stream-write] call returns `false`, then the -`'drain'` event will indicate when it is appropriate to begin writing more data -to the stream. - -```js -// Write the data to the supplied writable stream one million times. -// Be attentive to back-pressure. -function writeOneMillionTimes(writer, data, encoding, callback) { - var i = 1000000; - write(); - function write() { - var ok = true; - do { - i -= 1; - if (i === 0) { - // last time! - writer.write(data, encoding, callback); - } else { - // see if we should continue, or wait - // don't pass the callback, because we're not done yet. - ok = writer.write(data, encoding); - } - } while (i > 0 && ok); - if (i > 0) { - // had to stop early! - // write some more once it drains - writer.once('drain', write); - } - } -} -``` - -#### Event: 'error' - -* {Error} - -Emitted if there was an error when writing or piping data. - -#### Event: 'finish' - -When the [`stream.end()`][stream-end] method has been called, and all data has -been flushed to the underlying system, this event is emitted. - -```javascript -var writer = getWritableStreamSomehow(); -for (var i = 0; i < 100; i ++) { - writer.write('hello, #${i}!\n'); -} -writer.end('this is the end\n'); -writer.on('finish', () => { - console.error('all writes are now complete.'); -}); -``` - -#### Event: 'pipe' - -* `src` {stream.Readable} source stream that is piping to this writable - -This is emitted whenever the [`stream.pipe()`][] method is called on a readable -stream, adding this writable to its set of destinations. - -```js -var writer = getWritableStreamSomehow(); -var reader = getReadableStreamSomehow(); -writer.on('pipe', (src) => { - console.error('something is piping into the writer'); - assert.equal(src, reader); -}); -reader.pipe(writer); -``` - -#### Event: 'unpipe' - -* `src` {[Readable][] Stream} The source stream that - [unpiped][`stream.unpipe()`] this writable - -This is emitted whenever the [`stream.unpipe()`][] method is called on a -readable stream, removing this writable from its set of destinations. - -```js -var writer = getWritableStreamSomehow(); -var reader = getReadableStreamSomehow(); -writer.on('unpipe', (src) => { - console.error('something has stopped piping into the writer'); - assert.equal(src, reader); -}); -reader.pipe(writer); -reader.unpipe(writer); -``` - -#### writable.cork() - -Forces buffering of all writes. - -Buffered data will be flushed either at [`stream.uncork()`][] or at -[`stream.end()`][stream-end] call. - -#### writable.end([chunk][, encoding][, callback]) - -* `chunk` {String|Buffer} Optional data to write -* `encoding` {String} The encoding, if `chunk` is a String -* `callback` {Function} Optional callback for when the stream is finished - -Call this method when no more data will be written to the stream. If supplied, -the callback is attached as a listener on the [`'finish'`][] event. - -Calling [`stream.write()`][stream-write] after calling -[`stream.end()`][stream-end] will raise an error. - -```js -// write 'hello, ' and then end with 'world!' -var file = fs.createWriteStream('example.txt'); -file.write('hello, '); -file.end('world!'); -// writing more now is not allowed! -``` - -#### writable.setDefaultEncoding(encoding) - -* `encoding` {String} The new default encoding - -Sets the default encoding for a writable stream. - -#### writable.uncork() - -Flush all data, buffered since [`stream.cork()`][] call. - -#### writable.write(chunk[, encoding][, callback]) - -* `chunk` {String|Buffer} The data to write -* `encoding` {String} The encoding, if `chunk` is a String -* `callback` {Function} Callback for when this chunk of data is flushed -* Returns: {Boolean} `true` if the data was handled completely. - -This method writes some data to the underlying system, and calls the -supplied callback once the data has been fully handled. - -The return value indicates if you should continue writing right now. -If the data had to be buffered internally, then it will return -`false`. Otherwise, it will return `true`. - -This return value is strictly advisory. You MAY continue to write, -even if it returns `false`. However, writes will be buffered in -memory, so it is best not to do this excessively. Instead, wait for -the [`'drain'`][] event before writing more data. - - -## API for Stream Implementors - - - -To implement any sort of stream, the pattern is the same: - -1. Extend the appropriate parent class in your own subclass. (The - [`util.inherits()`][] method is particularly helpful for this.) -2. Call the appropriate parent class constructor in your constructor, - to be sure that the internal mechanisms are set up properly. -3. Implement one or more specific methods, as detailed below. - -The class to extend and the method(s) to implement depend on the sort -of stream class you are writing: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            -

            Use-case

            -
            -

            Class

            -
            -

            Method(s) to implement

            -
            -

            Reading only

            -
            -

            [Readable](#stream_class_stream_readable_1)

            -
            -

            [_read][stream-_read]

            -
            -

            Writing only

            -
            -

            [Writable](#stream_class_stream_writable_1)

            -
            -

            [_write][stream-_write], [_writev][stream-_writev]

            -
            -

            Reading and writing

            -
            -

            [Duplex](#stream_class_stream_duplex_1)

            -
            -

            [_read][stream-_read], [_write][stream-_write], [_writev][stream-_writev]

            -
            -

            Operate on written data, then read the result

            -
            -

            [Transform](#stream_class_stream_transform_1)

            -
            -

            [_transform][stream-_transform], [_flush][stream-_flush]

            -
            - -In your implementation code, it is very important to never call the methods -described in [API for Stream Consumers][]. Otherwise, you can potentially cause -adverse side effects in programs that consume your streaming interfaces. - -### Class: stream.Duplex - - - -A "duplex" stream is one that is both Readable and Writable, such as a TCP -socket connection. - -Note that `stream.Duplex` is an abstract class designed to be extended -with an underlying implementation of the [`stream._read(size)`][stream-_read] -and [`stream._write(chunk, encoding, callback)`][stream-_write] methods as you -would with a Readable or Writable stream class. - -Since JavaScript doesn't have multiple prototypal inheritance, this class -prototypally inherits from Readable, and then parasitically from Writable. It is -thus up to the user to implement both the low-level -[`stream._read(n)`][stream-_read] method as well as the low-level -[`stream._write(chunk, encoding, callback)`][stream-_write] method on extension -duplex classes. - -#### new stream.Duplex(options) - -* `options` {Object} Passed to both Writable and Readable - constructors. Also has the following fields: - * `allowHalfOpen` {Boolean} Default = `true`. If set to `false`, then - the stream will automatically end the readable side when the - writable side ends and vice versa. - * `readableObjectMode` {Boolean} Default = `false`. Sets `objectMode` - for readable side of the stream. Has no effect if `objectMode` - is `true`. - * `writableObjectMode` {Boolean} Default = `false`. Sets `objectMode` - for writable side of the stream. Has no effect if `objectMode` - is `true`. - -In classes that extend the Duplex class, make sure to call the -constructor so that the buffering settings can be properly -initialized. - -### Class: stream.PassThrough - -This is a trivial implementation of a [Transform][] stream that simply -passes the input bytes across to the output. Its purpose is mainly -for examples and testing, but there are occasionally use cases where -it can come in handy as a building block for novel sorts of streams. - -### Class: stream.Readable - - - -`stream.Readable` is an abstract class designed to be extended with an -underlying implementation of the [`stream._read(size)`][stream-_read] method. - -Please see [API for Stream Consumers][] for how to consume -streams in your programs. What follows is an explanation of how to -implement Readable streams in your programs. - -#### new stream.Readable([options]) - -* `options` {Object} - * `highWaterMark` {Number} The maximum number of bytes to store in - the internal buffer before ceasing to read from the underlying - resource. Default = `16384` (16kb), or `16` for `objectMode` streams - * `encoding` {String} If specified, then buffers will be decoded to - strings using the specified encoding. Default = `null` - * `objectMode` {Boolean} Whether this stream should behave - as a stream of objects. Meaning that [`stream.read(n)`][stream-read] returns - a single value instead of a Buffer of size n. Default = `false` - * `read` {Function} Implementation for the [`stream._read()`][stream-_read] - method. - -In classes that extend the Readable class, make sure to call the -Readable constructor so that the buffering settings can be properly -initialized. - -#### readable.\_read(size) - -* `size` {Number} Number of bytes to read asynchronously - -Note: **Implement this method, but do NOT call it directly.** - -This method is prefixed with an underscore because it is internal to the -class that defines it and should only be called by the internal Readable -class methods. All Readable stream implementations must provide a \_read -method to fetch data from the underlying resource. - -When `_read()` is called, if data is available from the resource, the `_read()` -implementation should start pushing that data into the read queue by calling -[`this.push(dataChunk)`][stream-push]. `_read()` should continue reading from -the resource and pushing data until push returns `false`, at which point it -should stop reading from the resource. Only when `_read()` is called again after -it has stopped should it start reading more data from the resource and pushing -that data onto the queue. - -Note: once the `_read()` method is called, it will not be called again until -the [`stream.push()`][stream-push] method is called. - -The `size` argument is advisory. Implementations where a "read" is a -single call that returns data can use this to know how much data to -fetch. Implementations where that is not relevant, such as TCP or -TLS, may ignore this argument, and simply provide data whenever it -becomes available. There is no need, for example to "wait" until -`size` bytes are available before calling [`stream.push(chunk)`][stream-push]. - -#### readable.push(chunk[, encoding]) - - -* `chunk` {Buffer|Null|String} Chunk of data to push into the read queue -* `encoding` {String} Encoding of String chunks. Must be a valid - Buffer encoding, such as `'utf8'` or `'ascii'` -* return {Boolean} Whether or not more pushes should be performed - -Note: **This method should be called by Readable implementors, NOT -by consumers of Readable streams.** - -If a value other than null is passed, The `push()` method adds a chunk of data -into the queue for subsequent stream processors to consume. If `null` is -passed, it signals the end of the stream (EOF), after which no more data -can be written. - -The data added with `push()` can be pulled out by calling the -[`stream.read()`][stream-read] method when the [`'readable'`][] event fires. - -This API is designed to be as flexible as possible. For example, -you may be wrapping a lower-level source which has some sort of -pause/resume mechanism, and a data callback. In those cases, you -could wrap the low-level source object by doing something like this: - -```js -// source is an object with readStop() and readStart() methods, -// and an `ondata` member that gets called when it has data, and -// an `onend` member that gets called when the data is over. - -util.inherits(SourceWrapper, Readable); - -function SourceWrapper(options) { - Readable.call(this, options); - - this._source = getLowlevelSourceObject(); - - // Every time there's data, we push it into the internal buffer. - this._source.ondata = (chunk) => { - // if push() returns false, then we need to stop reading from source - if (!this.push(chunk)) - this._source.readStop(); - }; - - // When the source ends, we push the EOF-signaling `null` chunk - this._source.onend = () => { - this.push(null); - }; -} - -// _read will be called when the stream wants to pull more data in -// the advisory size argument is ignored in this case. -SourceWrapper.prototype._read = function(size) { - this._source.readStart(); -}; -``` - -#### Example: A Counting Stream - - - -This is a basic example of a Readable stream. It emits the numerals -from 1 to 1,000,000 in ascending order, and then ends. - -```js -const Readable = require('stream').Readable; -const util = require('util'); -util.inherits(Counter, Readable); - -function Counter(opt) { - Readable.call(this, opt); - this._max = 1000000; - this._index = 1; -} - -Counter.prototype._read = function() { - var i = this._index++; - if (i > this._max) - this.push(null); - else { - var str = '' + i; - var buf = new Buffer(str, 'ascii'); - this.push(buf); - } -}; -``` - -#### Example: SimpleProtocol v1 (Sub-optimal) - -This is similar to the `parseHeader` function described -[here](#stream_readable_unshift_chunk), but implemented as a custom stream. -Also, note that this implementation does not convert the incoming data to a -string. - -However, this would be better implemented as a [Transform][] stream. See -[SimpleProtocol v2][] for a better implementation. - -```js -// A parser for a simple data protocol. -// The "header" is a JSON object, followed by 2 \n characters, and -// then a message body. -// -// NOTE: This can be done more simply as a Transform stream! -// Using Readable directly for this is sub-optimal. See the -// alternative example below under the Transform section. - -const Readable = require('stream').Readable; -const util = require('util'); - -util.inherits(SimpleProtocol, Readable); - -function SimpleProtocol(source, options) { - if (!(this instanceof SimpleProtocol)) - return new SimpleProtocol(source, options); - - Readable.call(this, options); - this._inBody = false; - this._sawFirstCr = false; - - // source is a readable stream, such as a socket or file - this._source = source; - - var self = this; - source.on('end', () => { - self.push(null); - }); - - // give it a kick whenever the source is readable - // read(0) will not consume any bytes - source.on('readable', () => { - self.read(0); - }); - - this._rawHeader = []; - this.header = null; -} - -SimpleProtocol.prototype._read = function(n) { - if (!this._inBody) { - var chunk = this._source.read(); - - // if the source doesn't have data, we don't have data yet. - if (chunk === null) - return this.push(''); - - // check if the chunk has a \n\n - var split = -1; - for (var i = 0; i < chunk.length; i++) { - if (chunk[i] === 10) { // '\n' - if (this._sawFirstCr) { - split = i; - break; - } else { - this._sawFirstCr = true; - } - } else { - this._sawFirstCr = false; - } - } - - if (split === -1) { - // still waiting for the \n\n - // stash the chunk, and try again. - this._rawHeader.push(chunk); - this.push(''); - } else { - this._inBody = true; - var h = chunk.slice(0, split); - this._rawHeader.push(h); - var header = Buffer.concat(this._rawHeader).toString(); - try { - this.header = JSON.parse(header); - } catch (er) { - this.emit('error', new Error('invalid simple protocol data')); - return; - } - // now, because we got some extra data, unshift the rest - // back into the read queue so that our consumer will see it. - var b = chunk.slice(split); - this.unshift(b); - // calling unshift by itself does not reset the reading state - // of the stream; since we're inside _read, doing an additional - // push('') will reset the state appropriately. - this.push(''); - - // and let them know that we are done parsing the header. - this.emit('header', this.header); - } - } else { - // from there on, just provide the data to our consumer. - // careful not to push(null), since that would indicate EOF. - var chunk = this._source.read(); - if (chunk) this.push(chunk); - } -}; - -// Usage: -// var parser = new SimpleProtocol(source); -// Now parser is a readable stream that will emit 'header' -// with the parsed header data. -``` - -### Class: stream.Transform - -A "transform" stream is a duplex stream where the output is causally -connected in some way to the input, such as a [zlib][] stream or a -[crypto][] stream. - -There is no requirement that the output be the same size as the input, -the same number of chunks, or arrive at the same time. For example, a -Hash stream will only ever have a single chunk of output which is -provided when the input is ended. A zlib stream will produce output -that is either much smaller or much larger than its input. - -Rather than implement the [`stream._read()`][stream-_read] and -[`stream._write()`][stream-_write] methods, Transform classes must implement the -[`stream._transform()`][stream-_transform] method, and may optionally -also implement the [`stream._flush()`][stream-_flush] method. (See below.) - -#### new stream.Transform([options]) - -* `options` {Object} Passed to both Writable and Readable - constructors. Also has the following fields: - * `transform` {Function} Implementation for the - [`stream._transform()`][stream-_transform] method. - * `flush` {Function} Implementation for the [`stream._flush()`][stream-_flush] - method. - -In classes that extend the Transform class, make sure to call the -constructor so that the buffering settings can be properly -initialized. - -#### Events: 'finish' and 'end' - -The [`'finish'`][] and [`'end'`][] events are from the parent Writable -and Readable classes respectively. The `'finish'` event is fired after -[`stream.end()`][stream-end] is called and all chunks have been processed by -[`stream._transform()`][stream-_transform], `'end'` is fired after all data has -been output which is after the callback in [`stream._flush()`][stream-_flush] -has been called. - -#### transform.\_flush(callback) - -* `callback` {Function} Call this function (optionally with an error - argument) when you are done flushing any remaining data. - -Note: **This function MUST NOT be called directly.** It MAY be implemented -by child classes, and if so, will be called by the internal Transform -class methods only. - -In some cases, your transform operation may need to emit a bit more -data at the end of the stream. For example, a `Zlib` compression -stream will store up some internal state so that it can optimally -compress the output. At the end, however, it needs to do the best it -can with what is left, so that the data will be complete. - -In those cases, you can implement a `_flush()` method, which will be -called at the very end, after all the written data is consumed, but -before emitting [`'end'`][] to signal the end of the readable side. Just -like with [`stream._transform()`][stream-_transform], call -`transform.push(chunk)` zero or more times, as appropriate, and call `callback` -when the flush operation is complete. - -This method is prefixed with an underscore because it is internal to -the class that defines it, and should not be called directly by user -programs. However, you **are** expected to override this method in -your own extension classes. - -#### transform.\_transform(chunk, encoding, callback) - -* `chunk` {Buffer|String} The chunk to be transformed. Will **always** - be a buffer unless the `decodeStrings` option was set to `false`. -* `encoding` {String} If the chunk is a string, then this is the - encoding type. If chunk is a buffer, then this is the special - value - 'buffer', ignore it in this case. -* `callback` {Function} Call this function (optionally with an error - argument and data) when you are done processing the supplied chunk. - -Note: **This function MUST NOT be called directly.** It should be -implemented by child classes, and called by the internal Transform -class methods only. - -All Transform stream implementations must provide a `_transform()` -method to accept input and produce output. - -`_transform()` should do whatever has to be done in this specific -Transform class, to handle the bytes being written, and pass them off -to the readable portion of the interface. Do asynchronous I/O, -process things, and so on. - -Call `transform.push(outputChunk)` 0 or more times to generate output -from this input chunk, depending on how much data you want to output -as a result of this chunk. - -Call the callback function only when the current chunk is completely -consumed. Note that there may or may not be output as a result of any -particular input chunk. If you supply a second argument to the callback -it will be passed to the push method. In other words the following are -equivalent: - -```js -transform.prototype._transform = function (data, encoding, callback) { - this.push(data); - callback(); -}; - -transform.prototype._transform = function (data, encoding, callback) { - callback(null, data); -}; -``` - -This method is prefixed with an underscore because it is internal to -the class that defines it, and should not be called directly by user -programs. However, you **are** expected to override this method in -your own extension classes. - -#### Example: `SimpleProtocol` parser v2 - -The example [here](#stream_example_simpleprotocol_v1_sub_optimal) of a simple -protocol parser can be implemented simply by using the higher level -[Transform][] stream class, similar to the `parseHeader` and `SimpleProtocol -v1` examples. - -In this example, rather than providing the input as an argument, it -would be piped into the parser, which is a more idiomatic Node.js stream -approach. - -```javascript -const util = require('util'); -const Transform = require('stream').Transform; -util.inherits(SimpleProtocol, Transform); - -function SimpleProtocol(options) { - if (!(this instanceof SimpleProtocol)) - return new SimpleProtocol(options); - - Transform.call(this, options); - this._inBody = false; - this._sawFirstCr = false; - this._rawHeader = []; - this.header = null; -} - -SimpleProtocol.prototype._transform = function(chunk, encoding, done) { - if (!this._inBody) { - // check if the chunk has a \n\n - var split = -1; - for (var i = 0; i < chunk.length; i++) { - if (chunk[i] === 10) { // '\n' - if (this._sawFirstCr) { - split = i; - break; - } else { - this._sawFirstCr = true; - } - } else { - this._sawFirstCr = false; - } - } - - if (split === -1) { - // still waiting for the \n\n - // stash the chunk, and try again. - this._rawHeader.push(chunk); - } else { - this._inBody = true; - var h = chunk.slice(0, split); - this._rawHeader.push(h); - var header = Buffer.concat(this._rawHeader).toString(); - try { - this.header = JSON.parse(header); - } catch (er) { - this.emit('error', new Error('invalid simple protocol data')); - return; - } - // and let them know that we are done parsing the header. - this.emit('header', this.header); - - // now, because we got some extra data, emit this first. - this.push(chunk.slice(split)); - } - } else { - // from there on, just provide the data to our consumer as-is. - this.push(chunk); - } - done(); -}; - -// Usage: -// var parser = new SimpleProtocol(); -// source.pipe(parser) -// Now parser is a readable stream that will emit 'header' -// with the parsed header data. -``` - -### Class: stream.Writable - - - -`stream.Writable` is an abstract class designed to be extended with an -underlying implementation of the -[`stream._write(chunk, encoding, callback)`][stream-_write] method. - -Please see [API for Stream Consumers][] for how to consume -writable streams in your programs. What follows is an explanation of -how to implement Writable streams in your programs. - -#### new stream.Writable([options]) - -* `options` {Object} - * `highWaterMark` {Number} Buffer level when - [`stream.write()`][stream-write] starts returning `false`. Default = `16384` - (16kb), or `16` for `objectMode` streams. - * `decodeStrings` {Boolean} Whether or not to decode strings into - Buffers before passing them to [`stream._write()`][stream-_write]. - Default = `true` - * `objectMode` {Boolean} Whether or not the - [`stream.write(anyObj)`][stream-write] is a valid operation. If set you can - write arbitrary data instead of only `Buffer` / `String` data. - Default = `false` - * `write` {Function} Implementation for the - [`stream._write()`][stream-_write] method. - * `writev` {Function} Implementation for the - [`stream._writev()`][stream-_writev] method. - -In classes that extend the Writable class, make sure to call the -constructor so that the buffering settings can be properly -initialized. - -#### writable.\_write(chunk, encoding, callback) - -* `chunk` {Buffer|String} The chunk to be written. Will **always** - be a buffer unless the `decodeStrings` option was set to `false`. -* `encoding` {String} If the chunk is a string, then this is the - encoding type. If chunk is a buffer, then this is the special - value - 'buffer', ignore it in this case. -* `callback` {Function} Call this function (optionally with an error - argument) when you are done processing the supplied chunk. - -All Writable stream implementations must provide a -[`stream._write()`][stream-_write] method to send data to the underlying -resource. - -Note: **This function MUST NOT be called directly.** It should be -implemented by child classes, and called by the internal Writable -class methods only. - -Call the callback using the standard `callback(error)` pattern to -signal that the write completed successfully or with an error. - -If the `decodeStrings` flag is set in the constructor options, then -`chunk` may be a string rather than a Buffer, and `encoding` will -indicate the sort of string that it is. This is to support -implementations that have an optimized handling for certain string -data encodings. If you do not explicitly set the `decodeStrings` -option to `false`, then you can safely ignore the `encoding` argument, -and assume that `chunk` will always be a Buffer. - -This method is prefixed with an underscore because it is internal to -the class that defines it, and should not be called directly by user -programs. However, you **are** expected to override this method in -your own extension classes. - -#### writable.\_writev(chunks, callback) - -* `chunks` {Array} The chunks to be written. Each chunk has following - format: `{ chunk: ..., encoding: ... }`. -* `callback` {Function} Call this function (optionally with an error - argument) when you are done processing the supplied chunks. - -Note: **This function MUST NOT be called directly.** It may be -implemented by child classes, and called by the internal Writable -class methods only. - -This function is completely optional to implement. In most cases it is -unnecessary. If implemented, it will be called with all the chunks -that are buffered in the write queue. - - -## Simplified Constructor API - - - -In simple cases there is now the added benefit of being able to construct a -stream without inheritance. - -This can be done by passing the appropriate methods as constructor options: - -Examples: - -### Duplex - -```js -var duplex = new stream.Duplex({ - read: function(n) { - // sets this._read under the hood - - // push data onto the read queue, passing null - // will signal the end of the stream (EOF) - this.push(chunk); - }, - write: function(chunk, encoding, next) { - // sets this._write under the hood - - // An optional error can be passed as the first argument - next() - } -}); - -// or - -var duplex = new stream.Duplex({ - read: function(n) { - // sets this._read under the hood - - // push data onto the read queue, passing null - // will signal the end of the stream (EOF) - this.push(chunk); - }, - writev: function(chunks, next) { - // sets this._writev under the hood - - // An optional error can be passed as the first argument - next() - } -}); -``` - -### Readable - -```js -var readable = new stream.Readable({ - read: function(n) { - // sets this._read under the hood - - // push data onto the read queue, passing null - // will signal the end of the stream (EOF) - this.push(chunk); - } -}); -``` - -### Transform - -```js -var transform = new stream.Transform({ - transform: function(chunk, encoding, next) { - // sets this._transform under the hood - - // generate output as many times as needed - // this.push(chunk); - - // call when the current chunk is consumed - next(); - }, - flush: function(done) { - // sets this._flush under the hood - - // generate output as many times as needed - // this.push(chunk); - - done(); - } -}); -``` - -### Writable - -```js -var writable = new stream.Writable({ - write: function(chunk, encoding, next) { - // sets this._write under the hood - - // An optional error can be passed as the first argument - next() - } -}); - -// or - -var writable = new stream.Writable({ - writev: function(chunks, next) { - // sets this._writev under the hood - - // An optional error can be passed as the first argument - next() - } -}); -``` - -## Streams: Under the Hood - - - -### Buffering - - - -Both Writable and Readable streams will buffer data on an internal -object which can be retrieved from `_writableState.getBuffer()` or -`_readableState.buffer`, respectively. - -The amount of data that will potentially be buffered depends on the -`highWaterMark` option which is passed into the constructor. - -Buffering in Readable streams happens when the implementation calls -[`stream.push(chunk)`][stream-push]. If the consumer of the Stream does not -call [`stream.read()`][stream-read], then the data will sit in the internal -queue until it is consumed. - -Buffering in Writable streams happens when the user calls -[`stream.write(chunk)`][stream-write] repeatedly, even when it returns `false`. - -The purpose of streams, especially with the [`stream.pipe()`][] method, is to -limit the buffering of data to acceptable levels, so that sources and -destinations of varying speed will not overwhelm the available memory. - -### Compatibility with Older Node.js Versions - - - -In versions of Node.js prior to v0.10, the Readable stream interface was -simpler, but also less powerful and less useful. - -* Rather than waiting for you to call the [`stream.read()`][stream-read] method, - [`'data'`][] events would start emitting immediately. If you needed to do - some I/O to decide how to handle data, then you had to store the chunks - in some kind of buffer so that they would not be lost. -* The [`stream.pause()`][stream-pause] method was advisory, rather than - guaranteed. This meant that you still had to be prepared to receive - [`'data'`][] events even when the stream was in a paused state. - -In Node.js v0.10, the [Readable][] class was added. -For backwards compatibility with older Node.js programs, Readable streams -switch into "flowing mode" when a [`'data'`][] event handler is added, or -when the [`stream.resume()`][stream-resume] method is called. The effect is -that, even if you are not using the new [`stream.read()`][stream-read] method -and [`'readable'`][] event, you no longer have to worry about losing -[`'data'`][] chunks. - -Most programs will continue to function normally. However, this -introduces an edge case in the following conditions: - -* No [`'data'`][] event handler is added. -* The [`stream.resume()`][stream-resume] method is never called. -* The stream is not piped to any writable destination. - -For example, consider the following code: - -```js -// WARNING! BROKEN! -net.createServer((socket) => { - - // we add an 'end' method, but never consume the data - socket.on('end', () => { - // It will never get here. - socket.end('I got your message (but didnt read it)\n'); - }); - -}).listen(1337); -``` - -In versions of Node.js prior to v0.10, the incoming message data would be -simply discarded. However, in Node.js v0.10 and beyond, -the socket will remain paused forever. - -The workaround in this situation is to call the -[`stream.resume()`][stream-resume] method to start the flow of data: - -```js -// Workaround -net.createServer((socket) => { - - socket.on('end', () => { - socket.end('I got your message (but didnt read it)\n'); - }); - - // start the flow of data, discarding it. - socket.resume(); - -}).listen(1337); -``` - -In addition to new Readable streams switching into flowing mode, -pre-v0.10 style streams can be wrapped in a Readable class using the -[`stream.wrap()`][] method. - - -### Object Mode - - - -Normally, Streams operate on Strings and Buffers exclusively. - -Streams that are in **object mode** can emit generic JavaScript values -other than Buffers and Strings. - -A Readable stream in object mode will always return a single item from -a call to [`stream.read(size)`][stream-read], regardless of what the size -argument is. - -A Writable stream in object mode will always ignore the `encoding` -argument to [`stream.write(data, encoding)`][stream-write]. - -The special value `null` still retains its special value for object -mode streams. That is, for object mode readable streams, `null` as a -return value from [`stream.read()`][stream-read] indicates that there is no more -data, and [`stream.push(null)`][stream-push] will signal the end of stream data -(`EOF`). - -No streams in Node.js core are object mode streams. This pattern is only -used by userland streaming libraries. - -You should set `objectMode` in your stream child class constructor on -the options object. Setting `objectMode` mid-stream is not safe. - -For Duplex streams `objectMode` can be set exclusively for readable or -writable side with `readableObjectMode` and `writableObjectMode` -respectively. These options can be used to implement parsers and -serializers with Transform streams. - -```js -const util = require('util'); -const StringDecoder = require('string_decoder').StringDecoder; -const Transform = require('stream').Transform; -util.inherits(JSONParseStream, Transform); - -// Gets \n-delimited JSON string data, and emits the parsed objects -function JSONParseStream() { - if (!(this instanceof JSONParseStream)) - return new JSONParseStream(); - - Transform.call(this, { readableObjectMode : true }); - - this._buffer = ''; - this._decoder = new StringDecoder('utf8'); -} - -JSONParseStream.prototype._transform = function(chunk, encoding, cb) { - this._buffer += this._decoder.write(chunk); - // split on newlines - var lines = this._buffer.split(/\r?\n/); - // keep the last partial line buffered - this._buffer = lines.pop(); - for (var l = 0; l < lines.length; l++) { - var line = lines[l]; - try { - var obj = JSON.parse(line); - } catch (er) { - this.emit('error', er); - return; - } - // push the parsed object out to the readable consumer - this.push(obj); - } - cb(); -}; - -JSONParseStream.prototype._flush = function(cb) { - // Just handle any leftover - var rem = this._buffer.trim(); - if (rem) { - try { - var obj = JSON.parse(rem); - } catch (er) { - this.emit('error', er); - return; - } - // push the parsed object out to the readable consumer - this.push(obj); - } - cb(); -}; -``` - -### `stream.read(0)` - -There are some cases where you want to trigger a refresh of the -underlying readable stream mechanisms, without actually consuming any -data. In that case, you can call `stream.read(0)`, which will always -return null. - -If the internal read buffer is below the `highWaterMark`, and the -stream is not currently reading, then calling `stream.read(0)` will trigger -a low-level [`stream._read()`][stream-_read] call. - -There is almost never a need to do this. However, you will see some -cases in Node.js's internals where this is done, particularly in the -Readable stream class internals. - -### `stream.push('')` - -Pushing a zero-byte string or Buffer (when not in [Object mode][]) has an -interesting side effect. Because it *is* a call to -[`stream.push()`][stream-push], it will end the `reading` process. However, it -does *not* add any data to the readable buffer, so there's nothing for -a user to consume. - -Very rarely, there are cases where you have no data to provide now, -but the consumer of your stream (or, perhaps, another bit of your own -code) will know when to check again, by calling [`stream.read(0)`][stream-read]. -In those cases, you *may* call `stream.push('')`. - -So far, the only use case for this functionality is in the -[`tls.CryptoStream`][] class, which is deprecated in Node.js/io.js v1.0. If you -find that you have to use `stream.push('')`, please consider another -approach, because it almost certainly indicates that something is -horribly wrong. - -[`'data'`]: #stream_event_data -[`'drain'`]: #stream_event_drain -[`'end'`]: #stream_event_end -[`'finish'`]: #stream_event_finish -[`'readable'`]: #stream_event_readable -[`buf.toString(encoding)`]: https://nodejs.org/docs/v5.8.0/api/buffer.html#buffer_buf_tostring_encoding_start_end -[`EventEmitter`]: https://nodejs.org/docs/v5.8.0/api/events.html#events_class_eventemitter -[`process.stderr`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stderr -[`process.stdin`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stdin -[`process.stdout`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stdout -[`stream.cork()`]: #stream_writable_cork -[`stream.pipe()`]: #stream_readable_pipe_destination_options -[`stream.uncork()`]: #stream_writable_uncork -[`stream.unpipe()`]: #stream_readable_unpipe_destination -[`stream.wrap()`]: #stream_readable_wrap_stream -[`tls.CryptoStream`]: https://nodejs.org/docs/v5.8.0/api/tls.html#tls_class_cryptostream -[`util.inherits()`]: https://nodejs.org/docs/v5.8.0/api/util.html#util_util_inherits_constructor_superconstructor -[API for Stream Consumers]: #stream_api_for_stream_consumers -[API for Stream Implementors]: #stream_api_for_stream_implementors -[child process stdin]: https://nodejs.org/docs/v5.8.0/api/child_process.html#child_process_child_stdin -[child process stdout and stderr]: https://nodejs.org/docs/v5.8.0/api/child_process.html#child_process_child_stdout -[Compatibility]: #stream_compatibility_with_older_node_js_versions -[crypto]: crypto.html -[Duplex]: #stream_class_stream_duplex -[fs read streams]: https://nodejs.org/docs/v5.8.0/api/fs.html#fs_class_fs_readstream -[fs write streams]: https://nodejs.org/docs/v5.8.0/api/fs.html#fs_class_fs_writestream -[HTTP requests, on the client]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_clientrequest -[HTTP responses, on the server]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_serverresponse -[http-incoming-message]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_incomingmessage -[Object mode]: #stream_object_mode -[Readable]: #stream_class_stream_readable -[SimpleProtocol v2]: #stream_example_simpleprotocol_parser_v2 -[stream-_flush]: #stream_transform_flush_callback -[stream-_read]: #stream_readable_read_size_1 -[stream-_transform]: #stream_transform_transform_chunk_encoding_callback -[stream-_write]: #stream_writable_write_chunk_encoding_callback_1 -[stream-_writev]: #stream_writable_writev_chunks_callback -[stream-end]: #stream_writable_end_chunk_encoding_callback -[stream-pause]: #stream_readable_pause -[stream-push]: #stream_readable_push_chunk_encoding -[stream-read]: #stream_readable_read_size -[stream-resume]: #stream_readable_resume -[stream-write]: #stream_writable_write_chunk_encoding_callback -[TCP sockets]: https://nodejs.org/docs/v5.8.0/api/net.html#net_class_net_socket -[Transform]: #stream_class_stream_transform -[Writable]: #stream_class_stream_writable -[zlib]: zlib.html diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md deleted file mode 100644 index 83275f19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +++ /dev/null @@ -1,60 +0,0 @@ -# streams WG Meeting 2015-01-30 - -## Links - -* **Google Hangouts Video**: http://www.youtube.com/watch?v=I9nDOSGfwZg -* **GitHub Issue**: https://github.com/iojs/readable-stream/issues/106 -* **Original Minutes Google Doc**: https://docs.google.com/document/d/17aTgLnjMXIrfjgNaTUnHQO7m3xgzHR2VXBTmi03Qii4/ - -## Agenda - -Extracted from https://github.com/iojs/readable-stream/labels/wg-agenda prior to meeting. - -* adopt a charter [#105](https://github.com/iojs/readable-stream/issues/105) -* release and versioning strategy [#101](https://github.com/iojs/readable-stream/issues/101) -* simpler stream creation [#102](https://github.com/iojs/readable-stream/issues/102) -* proposal: deprecate implicit flowing of streams [#99](https://github.com/iojs/readable-stream/issues/99) - -## Minutes - -### adopt a charter - -* group: +1's all around - -### What versioning scheme should be adopted? -* group: +1’s 3.0.0 -* domenic+group: pulling in patches from other sources where appropriate -* mikeal: version independently, suggesting versions for io.js -* mikeal+domenic: work with TC to notify in advance of changes -simpler stream creation - -### streamline creation of streams -* sam: streamline creation of streams -* domenic: nice simple solution posted - but, we lose the opportunity to change the model - may not be backwards incompatible (double check keys) - - **action item:** domenic will check - -### remove implicit flowing of streams on(‘data’) -* add isFlowing / isPaused -* mikeal: worrying that we’re documenting polyfill methods – confuses users -* domenic: more reflective API is probably good, with warning labels for users -* new section for mad scientists (reflective stream access) -* calvin: name the “third state” -* mikeal: maybe borrow the name from whatwg? -* domenic: we’re missing the “third state” -* consensus: kind of difficult to name the third state -* mikeal: figure out differences in states / compat -* mathias: always flow on data – eliminates third state - * explore what it breaks - -**action items:** -* ask isaac for ability to list packages by what public io.js APIs they use (esp. Stream) -* ask rod/build for infrastructure -* **chris**: explore the “flow on data” approach -* add isPaused/isFlowing -* add new docs section -* move isPaused to that section - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/duplex.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/duplex.js deleted file mode 100644 index ca807af8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/duplex.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_duplex.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js deleted file mode 100644 index 736693b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js +++ /dev/null @@ -1,75 +0,0 @@ -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - -'use strict'; - -/**/ - -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; -}; -/**/ - -module.exports = Duplex; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -var Readable = require('./_stream_readable'); -var Writable = require('./_stream_writable'); - -util.inherits(Duplex, Readable); - -var keys = objectKeys(Writable.prototype); -for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; -} - -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); -} - -// the no-half-open enforcer -function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - processNextTick(onEndNT, this); -} - -function onEndNT(self) { - self.end(); -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js deleted file mode 100644 index d06f71f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js +++ /dev/null @@ -1,26 +0,0 @@ -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - -'use strict'; - -module.exports = PassThrough; - -var Transform = require('./_stream_transform'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(PassThrough, Transform); - -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); -} - -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js deleted file mode 100644 index 54a9d5c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js +++ /dev/null @@ -1,880 +0,0 @@ -'use strict'; - -module.exports = Readable; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var isArray = require('isarray'); -/**/ - -/**/ -var Buffer = require('buffer').Buffer; -/**/ - -Readable.ReadableState = ReadableState; - -var EE = require('events'); - -/**/ -var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream; -(function () { - try { - Stream = require('st' + 'ream'); - } catch (_) {} finally { - if (!Stream) Stream = require('events').EventEmitter; - } -})(); -/**/ - -var Buffer = require('buffer').Buffer; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var debugUtil = require('util'); -var debug = undefined; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function () {}; -} -/**/ - -var StringDecoder; - -util.inherits(Readable, Stream); - -var Duplex; -function ReadableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~ ~this.highWaterMark; - - this.buffer = []; - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // when piping, we only care about 'readable' events that happen - // after read()ing all the bytes and not getting any pushback. - this.ranOut = false; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -var Duplex; -function Readable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options && typeof options.read === 'function') this._read = options.read; - - Stream.call(this); -} - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - - if (!state.objectMode && typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = new Buffer(chunk, encoding); - encoding = ''; - } - } - - return readableAddChunk(this, state, chunk, encoding, false); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - var state = this._readableState; - return readableAddChunk(this, state, chunk, '', true); -}; - -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -function readableAddChunk(stream, state, chunk, encoding, addToFront) { - var er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (state.ended && !addToFront) { - var e = new Error('stream.push() after EOF'); - stream.emit('error', e); - } else if (state.endEmitted && addToFront) { - var e = new Error('stream.unshift() after end event'); - stream.emit('error', e); - } else { - var skipAdd; - if (state.decoder && !addToFront && !encoding) { - chunk = state.decoder.write(chunk); - skipAdd = !state.objectMode && chunk.length === 0; - } - - if (!addToFront) state.reading = false; - - // Don't add to the buffer if we've decoded to an empty string chunk and - // we're not in object mode - if (!skipAdd) { - // if we want the data now, just emit it. - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - } - - maybeReadMore(stream, state); - } - } else if (!addToFront) { - state.reading = false; - } - - return needMoreData(state); -} - -// if it's past the high water mark, we can push in some more. -// Also, if we have no data yet, we can stand some -// more bytes. This is to work around cases where hwm=0, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); -} - -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; -}; - -// Don't raise the hwm > 8MB -var MAX_HWM = 0x800000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -function howMuchToRead(n, state) { - if (state.length === 0 && state.ended) return 0; - - if (state.objectMode) return n === 0 ? 0 : 1; - - if (n === null || isNaN(n)) { - // only flow one buffer at a time - if (state.flowing && state.buffer.length) return state.buffer[0].length;else return state.length; - } - - if (n <= 0) return 0; - - // If we're asking for more than the target buffer level, - // then raise the water mark. Bump up to the next highest - // power of 2, to prevent increasing it excessively in tiny - // amounts. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - - // don't have that much. return null, unless we've ended. - if (n > state.length) { - if (!state.ended) { - state.needReadable = true; - return 0; - } else { - return state.length; - } - } - - return n; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - var state = this._readableState; - var nOrig = n; - - if (typeof n !== 'number' || n > 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } - - if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - } - - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (doRead && !state.reading) n = howMuchToRead(nOrig, state); - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } - - state.length -= n; - - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (state.length === 0 && !state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended && state.length === 0) endReadable(this); - - if (ret !== null) this.emit('data', ret); - - return ret; -}; - -function chunkInvalid(state, chunk) { - var er = null; - if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - -function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); - } -} - -function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - processNextTick(maybeReadMore_, stream, state); - } -} - -function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - this.emit('error', new Error('not implemented')); -}; - -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : cleanup; - if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable) { - debug('onunpipe'); - if (readable === src) { - cleanup(); - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', cleanup); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - var ret = dest.write(chunk); - if (false === ret) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - if (state.pipesCount === 1 && state.pipes[0] === dest && src.listenerCount('data') === 1 && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - // This is a brutally ugly hack to make sure that our error handler - // is attached before any userland ones. NEVER DO THIS. - if (!dest._events || !dest._events.error) dest.on('error', onerror);else if (isArray(dest._events.error)) dest._events.error.unshift(onerror);else dest._events.error = [onerror, dest._events.error]; - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; -}; - -function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} - -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var _i = 0; _i < len; _i++) { - dests[_i].emit('unpipe', this); - }return this; - } - - // try to find the right one. - var i = indexOf(state.pipes, dest); - if (i === -1) return this; - - state.pipes.splice(i, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this); - - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - // If listening to data, and it has not explicitly been paused, - // then call resume to start the flow of data on the next tick. - if (ev === 'data' && false !== this._readableState.flowing) { - this.resume(); - } - - if (ev === 'readable' && !this._readableState.endEmitted) { - var state = this._readableState; - if (!state.readableListening) { - state.readableListening = true; - state.emittedReadable = false; - state.needReadable = true; - if (!state.reading) { - processNextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this, state); - } - } - } - - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; - -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; -}; - -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - processNextTick(resume_, stream, state); - } -} - -function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} - -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; -}; - -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - if (state.flowing) { - do { - var chunk = stream.read(); - } while (null !== chunk && state.flowing); - } -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var state = this._readableState; - var paused = false; - - var self = this; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) self.push(chunk); - } - - self.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = self.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - var events = ['error', 'close', 'destroy', 'pause', 'resume']; - forEach(events, function (ev) { - stream.on(ev, self.emit.bind(self, ev)); - }); - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - self._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return self; -}; - -// exposed for testing purposes only. -Readable._fromList = fromList; - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -function fromList(n, state) { - var list = state.buffer; - var length = state.length; - var stringMode = !!state.decoder; - var objectMode = !!state.objectMode; - var ret; - - // nothing in the list, definitely empty. - if (list.length === 0) return null; - - if (length === 0) ret = null;else if (objectMode) ret = list.shift();else if (!n || n >= length) { - // read it all, truncate the array. - if (stringMode) ret = list.join('');else if (list.length === 1) ret = list[0];else ret = Buffer.concat(list, length); - list.length = 0; - } else { - // read just some of it. - if (n < list[0].length) { - // just take a part of the first list item. - // slice is the same for buffers and strings. - var buf = list[0]; - ret = buf.slice(0, n); - list[0] = buf.slice(n); - } else if (n === list[0].length) { - // first list is a perfect match - ret = list.shift(); - } else { - // complex case. - // we have enough to cover it, but it spans past the first buffer. - if (stringMode) ret = '';else ret = new Buffer(n); - - var c = 0; - for (var i = 0, l = list.length; i < l && c < n; i++) { - var buf = list[0]; - var cpy = Math.min(n - c, buf.length); - - if (stringMode) ret += buf.slice(0, cpy);else buf.copy(ret, c, 0, cpy); - - if (cpy < buf.length) list[0] = buf.slice(cpy);else list.shift(); - - c += cpy; - } - } - } - - return ret; -} - -function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('endReadable called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - processNextTick(endReadableNT, state, stream); - } -} - -function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} - -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js deleted file mode 100644 index 625cdc17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js +++ /dev/null @@ -1,180 +0,0 @@ -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - -'use strict'; - -module.exports = Transform; - -var Duplex = require('./_stream_duplex'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(Transform, Duplex); - -function TransformState(stream) { - this.afterTransform = function (er, data) { - return afterTransform(stream, er, data); - }; - - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; - this.writeencoding = null; -} - -function afterTransform(stream, er, data) { - var ts = stream._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) return stream.emit('error', new Error('no writecb in Transform class')); - - ts.writechunk = null; - ts.writecb = null; - - if (data !== null && data !== undefined) stream.push(data); - - cb(er); - - var rs = stream._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); - } -} - -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = new TransformState(this); - - // when the writable side finishes, then flush out anything remaining. - var stream = this; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - this.once('prefinish', function () { - if (typeof this._flush === 'function') this._flush(function (er) { - done(stream, er); - });else done(stream); - }); -} - -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; - -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('not implemented'); -}; - -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; - -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; - -function done(stream, er) { - if (er) return stream.emit('error', er); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; - - if (ws.length) throw new Error('calling transform done when ws.length != 0'); - - if (ts.transforming) throw new Error('calling transform done when still transforming'); - - return stream.push(null); -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js deleted file mode 100644 index 95916c99..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js +++ /dev/null @@ -1,516 +0,0 @@ -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - -'use strict'; - -module.exports = Writable; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; -/**/ - -/**/ -var Buffer = require('buffer').Buffer; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var internalUtil = { - deprecate: require('util-deprecate') -}; -/**/ - -/**/ -var Stream; -(function () { - try { - Stream = require('st' + 'ream'); - } catch (_) {} finally { - if (!Stream) Stream = require('events').EventEmitter; - } -})(); -/**/ - -var Buffer = require('buffer').Buffer; - -util.inherits(Writable, Stream); - -function nop() {} - -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - -var Duplex; -function WritableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~ ~this.highWaterMark; - - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // create the two objects needed to store the corked requests - // they are not a linked list, as no new elements are inserted in there - this.corkedRequestsFree = new CorkedRequest(this); - this.corkedRequestsFree.next = new CorkedRequest(this); -} - -WritableState.prototype.getBuffer = function writableStateGetBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; - -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.') - }); - } catch (_) {} -})(); - -var Duplex; -function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - // Writable ctor is applied to Duplexes, though they're not - // instanceof Writable, they're instanceof Readable. - if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options); - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - } - - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe. Not readable.')); -}; - -function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - processNextTick(cb, er); -} - -// If we get something that is not a buffer, string, null, or undefined, -// and we're not in objectMode, then that's an error. -// Otherwise stream chunks are all considered to be of length=1, and the -// watermarks determine how many objects to keep in the buffer, rather than -// how many bytes or characters. -function validChunk(stream, state, chunk, cb) { - var valid = true; - - if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { - var er = new TypeError('Invalid non-string/buffer chunk'); - stream.emit('error', er); - processNextTick(cb, er); - valid = false; - } - return valid; -} - -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, chunk, encoding, cb); - } - - return ret; -}; - -Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; -}; - -Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; - -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; -}; - -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = new Buffer(chunk, encoding); - } - return chunk; -} - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, chunk, encoding, cb) { - chunk = decodeChunk(state, chunk, encoding); - - if (Buffer.isBuffer(chunk)) encoding = 'buffer'; - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = new WriteReq(chunk, encoding, cb); - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; -} - -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} - -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - if (sync) processNextTick(cb, er);else cb(er); - - stream._writableState.errorEmitted = true; - stream.emit('error', er); -} - -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - while (entry) { - buffer[count] = entry; - entry = entry.next; - count += 1; - } - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequestCount = 0; - state.bufferedRequest = entry; - state.bufferProcessing = false; -} - -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('not implemented')); -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); -}; - -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} - -function prefinish(stream, state) { - if (!state.prefinished) { - state.prefinished = true; - stream.emit('prefinish'); - } -} - -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - if (state.pendingcb === 0) { - prefinish(stream, state); - state.finished = true; - stream.emit('finish'); - } else { - prefinish(stream, state); - } - } - return need; -} - -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) processNextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} - -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - - this.finish = function (err) { - var entry = _this.entry; - _this.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = _this; - } else { - state.corkedRequestsFree = _this; - } - }; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/LICENSE deleted file mode 100644 index d8d7f943..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright Node.js contributors. All rights reserved. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/README.md deleted file mode 100644 index 5a76b414..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# core-util-is - -The `util.is*` functions introduced in Node v0.12. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/float.patch b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/float.patch deleted file mode 100644 index a06d5c05..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/float.patch +++ /dev/null @@ -1,604 +0,0 @@ -diff --git a/lib/util.js b/lib/util.js -index a03e874..9074e8e 100644 ---- a/lib/util.js -+++ b/lib/util.js -@@ -19,430 +19,6 @@ - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - --var formatRegExp = /%[sdj%]/g; --exports.format = function(f) { -- if (!isString(f)) { -- var objects = []; -- for (var i = 0; i < arguments.length; i++) { -- objects.push(inspect(arguments[i])); -- } -- return objects.join(' '); -- } -- -- var i = 1; -- var args = arguments; -- var len = args.length; -- var str = String(f).replace(formatRegExp, function(x) { -- if (x === '%%') return '%'; -- if (i >= len) return x; -- switch (x) { -- case '%s': return String(args[i++]); -- case '%d': return Number(args[i++]); -- case '%j': -- try { -- return JSON.stringify(args[i++]); -- } catch (_) { -- return '[Circular]'; -- } -- default: -- return x; -- } -- }); -- for (var x = args[i]; i < len; x = args[++i]) { -- if (isNull(x) || !isObject(x)) { -- str += ' ' + x; -- } else { -- str += ' ' + inspect(x); -- } -- } -- return str; --}; -- -- --// Mark that a method should not be used. --// Returns a modified function which warns once by default. --// If --no-deprecation is set, then it is a no-op. --exports.deprecate = function(fn, msg) { -- // Allow for deprecating things in the process of starting up. -- if (isUndefined(global.process)) { -- return function() { -- return exports.deprecate(fn, msg).apply(this, arguments); -- }; -- } -- -- if (process.noDeprecation === true) { -- return fn; -- } -- -- var warned = false; -- function deprecated() { -- if (!warned) { -- if (process.throwDeprecation) { -- throw new Error(msg); -- } else if (process.traceDeprecation) { -- console.trace(msg); -- } else { -- console.error(msg); -- } -- warned = true; -- } -- return fn.apply(this, arguments); -- } -- -- return deprecated; --}; -- -- --var debugs = {}; --var debugEnviron; --exports.debuglog = function(set) { -- if (isUndefined(debugEnviron)) -- debugEnviron = process.env.NODE_DEBUG || ''; -- set = set.toUpperCase(); -- if (!debugs[set]) { -- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { -- var pid = process.pid; -- debugs[set] = function() { -- var msg = exports.format.apply(exports, arguments); -- console.error('%s %d: %s', set, pid, msg); -- }; -- } else { -- debugs[set] = function() {}; -- } -- } -- return debugs[set]; --}; -- -- --/** -- * Echos the value of a value. Trys to print the value out -- * in the best way possible given the different types. -- * -- * @param {Object} obj The object to print out. -- * @param {Object} opts Optional options object that alters the output. -- */ --/* legacy: obj, showHidden, depth, colors*/ --function inspect(obj, opts) { -- // default options -- var ctx = { -- seen: [], -- stylize: stylizeNoColor -- }; -- // legacy... -- if (arguments.length >= 3) ctx.depth = arguments[2]; -- if (arguments.length >= 4) ctx.colors = arguments[3]; -- if (isBoolean(opts)) { -- // legacy... -- ctx.showHidden = opts; -- } else if (opts) { -- // got an "options" object -- exports._extend(ctx, opts); -- } -- // set default options -- if (isUndefined(ctx.showHidden)) ctx.showHidden = false; -- if (isUndefined(ctx.depth)) ctx.depth = 2; -- if (isUndefined(ctx.colors)) ctx.colors = false; -- if (isUndefined(ctx.customInspect)) ctx.customInspect = true; -- if (ctx.colors) ctx.stylize = stylizeWithColor; -- return formatValue(ctx, obj, ctx.depth); --} --exports.inspect = inspect; -- -- --// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics --inspect.colors = { -- 'bold' : [1, 22], -- 'italic' : [3, 23], -- 'underline' : [4, 24], -- 'inverse' : [7, 27], -- 'white' : [37, 39], -- 'grey' : [90, 39], -- 'black' : [30, 39], -- 'blue' : [34, 39], -- 'cyan' : [36, 39], -- 'green' : [32, 39], -- 'magenta' : [35, 39], -- 'red' : [31, 39], -- 'yellow' : [33, 39] --}; -- --// Don't use 'blue' not visible on cmd.exe --inspect.styles = { -- 'special': 'cyan', -- 'number': 'yellow', -- 'boolean': 'yellow', -- 'undefined': 'grey', -- 'null': 'bold', -- 'string': 'green', -- 'date': 'magenta', -- // "name": intentionally not styling -- 'regexp': 'red' --}; -- -- --function stylizeWithColor(str, styleType) { -- var style = inspect.styles[styleType]; -- -- if (style) { -- return '\u001b[' + inspect.colors[style][0] + 'm' + str + -- '\u001b[' + inspect.colors[style][1] + 'm'; -- } else { -- return str; -- } --} -- -- --function stylizeNoColor(str, styleType) { -- return str; --} -- -- --function arrayToHash(array) { -- var hash = {}; -- -- array.forEach(function(val, idx) { -- hash[val] = true; -- }); -- -- return hash; --} -- -- --function formatValue(ctx, value, recurseTimes) { -- // Provide a hook for user-specified inspect functions. -- // Check that value is an object with an inspect function on it -- if (ctx.customInspect && -- value && -- isFunction(value.inspect) && -- // Filter out the util module, it's inspect function is special -- value.inspect !== exports.inspect && -- // Also filter out any prototype objects using the circular check. -- !(value.constructor && value.constructor.prototype === value)) { -- var ret = value.inspect(recurseTimes, ctx); -- if (!isString(ret)) { -- ret = formatValue(ctx, ret, recurseTimes); -- } -- return ret; -- } -- -- // Primitive types cannot have properties -- var primitive = formatPrimitive(ctx, value); -- if (primitive) { -- return primitive; -- } -- -- // Look up the keys of the object. -- var keys = Object.keys(value); -- var visibleKeys = arrayToHash(keys); -- -- if (ctx.showHidden) { -- keys = Object.getOwnPropertyNames(value); -- } -- -- // Some type of object without properties can be shortcutted. -- if (keys.length === 0) { -- if (isFunction(value)) { -- var name = value.name ? ': ' + value.name : ''; -- return ctx.stylize('[Function' + name + ']', 'special'); -- } -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } -- if (isDate(value)) { -- return ctx.stylize(Date.prototype.toString.call(value), 'date'); -- } -- if (isError(value)) { -- return formatError(value); -- } -- } -- -- var base = '', array = false, braces = ['{', '}']; -- -- // Make Array say that they are Array -- if (isArray(value)) { -- array = true; -- braces = ['[', ']']; -- } -- -- // Make functions say that they are functions -- if (isFunction(value)) { -- var n = value.name ? ': ' + value.name : ''; -- base = ' [Function' + n + ']'; -- } -- -- // Make RegExps say that they are RegExps -- if (isRegExp(value)) { -- base = ' ' + RegExp.prototype.toString.call(value); -- } -- -- // Make dates with properties first say the date -- if (isDate(value)) { -- base = ' ' + Date.prototype.toUTCString.call(value); -- } -- -- // Make error with message first say the error -- if (isError(value)) { -- base = ' ' + formatError(value); -- } -- -- if (keys.length === 0 && (!array || value.length == 0)) { -- return braces[0] + base + braces[1]; -- } -- -- if (recurseTimes < 0) { -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } else { -- return ctx.stylize('[Object]', 'special'); -- } -- } -- -- ctx.seen.push(value); -- -- var output; -- if (array) { -- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); -- } else { -- output = keys.map(function(key) { -- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); -- }); -- } -- -- ctx.seen.pop(); -- -- return reduceToSingleString(output, base, braces); --} -- -- --function formatPrimitive(ctx, value) { -- if (isUndefined(value)) -- return ctx.stylize('undefined', 'undefined'); -- if (isString(value)) { -- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') -- .replace(/'/g, "\\'") -- .replace(/\\"/g, '"') + '\''; -- return ctx.stylize(simple, 'string'); -- } -- if (isNumber(value)) { -- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0, -- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 . -- if (value === 0 && 1 / value < 0) -- return ctx.stylize('-0', 'number'); -- return ctx.stylize('' + value, 'number'); -- } -- if (isBoolean(value)) -- return ctx.stylize('' + value, 'boolean'); -- // For some reason typeof null is "object", so special case here. -- if (isNull(value)) -- return ctx.stylize('null', 'null'); --} -- -- --function formatError(value) { -- return '[' + Error.prototype.toString.call(value) + ']'; --} -- -- --function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { -- var output = []; -- for (var i = 0, l = value.length; i < l; ++i) { -- if (hasOwnProperty(value, String(i))) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- String(i), true)); -- } else { -- output.push(''); -- } -- } -- keys.forEach(function(key) { -- if (!key.match(/^\d+$/)) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- key, true)); -- } -- }); -- return output; --} -- -- --function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { -- var name, str, desc; -- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; -- if (desc.get) { -- if (desc.set) { -- str = ctx.stylize('[Getter/Setter]', 'special'); -- } else { -- str = ctx.stylize('[Getter]', 'special'); -- } -- } else { -- if (desc.set) { -- str = ctx.stylize('[Setter]', 'special'); -- } -- } -- if (!hasOwnProperty(visibleKeys, key)) { -- name = '[' + key + ']'; -- } -- if (!str) { -- if (ctx.seen.indexOf(desc.value) < 0) { -- if (isNull(recurseTimes)) { -- str = formatValue(ctx, desc.value, null); -- } else { -- str = formatValue(ctx, desc.value, recurseTimes - 1); -- } -- if (str.indexOf('\n') > -1) { -- if (array) { -- str = str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n').substr(2); -- } else { -- str = '\n' + str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n'); -- } -- } -- } else { -- str = ctx.stylize('[Circular]', 'special'); -- } -- } -- if (isUndefined(name)) { -- if (array && key.match(/^\d+$/)) { -- return str; -- } -- name = JSON.stringify('' + key); -- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { -- name = name.substr(1, name.length - 2); -- name = ctx.stylize(name, 'name'); -- } else { -- name = name.replace(/'/g, "\\'") -- .replace(/\\"/g, '"') -- .replace(/(^"|"$)/g, "'"); -- name = ctx.stylize(name, 'string'); -- } -- } -- -- return name + ': ' + str; --} -- -- --function reduceToSingleString(output, base, braces) { -- var numLinesEst = 0; -- var length = output.reduce(function(prev, cur) { -- numLinesEst++; -- if (cur.indexOf('\n') >= 0) numLinesEst++; -- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; -- }, 0); -- -- if (length > 60) { -- return braces[0] + -- (base === '' ? '' : base + '\n ') + -- ' ' + -- output.join(',\n ') + -- ' ' + -- braces[1]; -- } -- -- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; --} -- -- - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - function isArray(ar) { -@@ -522,166 +98,10 @@ function isPrimitive(arg) { - exports.isPrimitive = isPrimitive; - - function isBuffer(arg) { -- return arg instanceof Buffer; -+ return Buffer.isBuffer(arg); - } - exports.isBuffer = isBuffer; - - function objectToString(o) { - return Object.prototype.toString.call(o); --} -- -- --function pad(n) { -- return n < 10 ? '0' + n.toString(10) : n.toString(10); --} -- -- --var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', -- 'Oct', 'Nov', 'Dec']; -- --// 26 Feb 16:19:34 --function timestamp() { -- var d = new Date(); -- var time = [pad(d.getHours()), -- pad(d.getMinutes()), -- pad(d.getSeconds())].join(':'); -- return [d.getDate(), months[d.getMonth()], time].join(' '); --} -- -- --// log is just a thin wrapper to console.log that prepends a timestamp --exports.log = function() { -- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); --}; -- -- --/** -- * Inherit the prototype methods from one constructor into another. -- * -- * The Function.prototype.inherits from lang.js rewritten as a standalone -- * function (not on Function.prototype). NOTE: If this file is to be loaded -- * during bootstrapping this function needs to be rewritten using some native -- * functions as prototype setup using normal JavaScript does not work as -- * expected during bootstrapping (see mirror.js in r114903). -- * -- * @param {function} ctor Constructor function which needs to inherit the -- * prototype. -- * @param {function} superCtor Constructor function to inherit prototype from. -- */ --exports.inherits = function(ctor, superCtor) { -- ctor.super_ = superCtor; -- ctor.prototype = Object.create(superCtor.prototype, { -- constructor: { -- value: ctor, -- enumerable: false, -- writable: true, -- configurable: true -- } -- }); --}; -- --exports._extend = function(origin, add) { -- // Don't do anything if add isn't an object -- if (!add || !isObject(add)) return origin; -- -- var keys = Object.keys(add); -- var i = keys.length; -- while (i--) { -- origin[keys[i]] = add[keys[i]]; -- } -- return origin; --}; -- --function hasOwnProperty(obj, prop) { -- return Object.prototype.hasOwnProperty.call(obj, prop); --} -- -- --// Deprecated old stuff. -- --exports.p = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- console.error(exports.inspect(arguments[i])); -- } --}, 'util.p: Use console.error() instead'); -- -- --exports.exec = exports.deprecate(function() { -- return require('child_process').exec.apply(this, arguments); --}, 'util.exec is now called `child_process.exec`.'); -- -- --exports.print = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(String(arguments[i])); -- } --}, 'util.print: Use console.log instead'); -- -- --exports.puts = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(arguments[i] + '\n'); -- } --}, 'util.puts: Use console.log instead'); -- -- --exports.debug = exports.deprecate(function(x) { -- process.stderr.write('DEBUG: ' + x + '\n'); --}, 'util.debug: Use console.error instead'); -- -- --exports.error = exports.deprecate(function(x) { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stderr.write(arguments[i] + '\n'); -- } --}, 'util.error: Use console.error instead'); -- -- --exports.pump = exports.deprecate(function(readStream, writeStream, callback) { -- var callbackCalled = false; -- -- function call(a, b, c) { -- if (callback && !callbackCalled) { -- callback(a, b, c); -- callbackCalled = true; -- } -- } -- -- readStream.addListener('data', function(chunk) { -- if (writeStream.write(chunk) === false) readStream.pause(); -- }); -- -- writeStream.addListener('drain', function() { -- readStream.resume(); -- }); -- -- readStream.addListener('end', function() { -- writeStream.end(); -- }); -- -- readStream.addListener('close', function() { -- call(); -- }); -- -- readStream.addListener('error', function(err) { -- writeStream.end(); -- call(err); -- }); -- -- writeStream.addListener('error', function(err) { -- readStream.destroy(); -- call(err); -- }); --}, 'util.pump(): Use readableStream.pipe() instead'); -- -- --var uv; --exports._errnoException = function(err, syscall) { -- if (isUndefined(uv)) uv = process.binding('uv'); -- var errname = uv.errname(err); -- var e = new Error(syscall + ' ' + errname); -- e.code = errname; -- e.errno = errname; -- e.syscall = syscall; -- return e; --}; -+} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/lib/util.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/lib/util.js deleted file mode 100644 index ff4c851c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. - -function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = Buffer.isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json deleted file mode 100644 index e866b4a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_args": [ - [ - "core-util-is@~1.0.0", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ], - [ - "core-util-is@~1.0.0", - "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream" - ] - ], - "_from": "core-util-is@>=1.0.0 <1.1.0", - "_id": "core-util-is@1.0.2", - "_inCache": true, - "_installable": true, - "_location": "/npm-registry-client/concat-stream/readable-stream/core-util-is", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "core-util-is", - "raw": "core-util-is@~1.0.0", - "rawSpec": "~1.0.0", - "scope": null, - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/npm-registry-client/concat-stream/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "core-util-is@~1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/core-util-is/issues" - }, - "dependencies": {}, - "description": "The `util.is*` functions introduced in Node v0.12.", - "devDependencies": { - "tap": "^2.3.0" - }, - "directories": {}, - "dist": { - "shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "tarball": "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "gitHead": "a177da234df5638b363ddc15fa324619a38577c8", - "homepage": "https://github.com/isaacs/core-util-is#readme", - "keywords": [ - "util", - "isBuffer", - "isArray", - "isNumber", - "isString", - "isRegExp", - "isThis", - "isThat", - "polyfill" - ], - "license": "MIT", - "main": "lib/util.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "core-util-is", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/core-util-is.git" - }, - "scripts": { - "test": "tap test.js" - }, - "version": "1.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/test.js deleted file mode 100644 index 1a490c65..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/test.js +++ /dev/null @@ -1,68 +0,0 @@ -var assert = require('tap'); - -var t = require('./lib/util'); - -assert.equal(t.isArray([]), true); -assert.equal(t.isArray({}), false); - -assert.equal(t.isBoolean(null), false); -assert.equal(t.isBoolean(true), true); -assert.equal(t.isBoolean(false), true); - -assert.equal(t.isNull(null), true); -assert.equal(t.isNull(undefined), false); -assert.equal(t.isNull(false), false); -assert.equal(t.isNull(), false); - -assert.equal(t.isNullOrUndefined(null), true); -assert.equal(t.isNullOrUndefined(undefined), true); -assert.equal(t.isNullOrUndefined(false), false); -assert.equal(t.isNullOrUndefined(), true); - -assert.equal(t.isNumber(null), false); -assert.equal(t.isNumber('1'), false); -assert.equal(t.isNumber(1), true); - -assert.equal(t.isString(null), false); -assert.equal(t.isString('1'), true); -assert.equal(t.isString(1), false); - -assert.equal(t.isSymbol(null), false); -assert.equal(t.isSymbol('1'), false); -assert.equal(t.isSymbol(1), false); -assert.equal(t.isSymbol(Symbol()), true); - -assert.equal(t.isUndefined(null), false); -assert.equal(t.isUndefined(undefined), true); -assert.equal(t.isUndefined(false), false); -assert.equal(t.isUndefined(), true); - -assert.equal(t.isRegExp(null), false); -assert.equal(t.isRegExp('1'), false); -assert.equal(t.isRegExp(new RegExp()), true); - -assert.equal(t.isObject({}), true); -assert.equal(t.isObject([]), true); -assert.equal(t.isObject(new RegExp()), true); -assert.equal(t.isObject(new Date()), true); - -assert.equal(t.isDate(null), false); -assert.equal(t.isDate('1'), false); -assert.equal(t.isDate(new Date()), true); - -assert.equal(t.isError(null), false); -assert.equal(t.isError({ err: true }), false); -assert.equal(t.isError(new Error()), true); - -assert.equal(t.isFunction(null), false); -assert.equal(t.isFunction({ }), false); -assert.equal(t.isFunction(function() {}), true); - -assert.equal(t.isPrimitive(null), true); -assert.equal(t.isPrimitive(''), true); -assert.equal(t.isPrimitive(0), true); -assert.equal(t.isPrimitive(new Date()), false); - -assert.equal(t.isBuffer(null), false); -assert.equal(t.isBuffer({}), false); -assert.equal(t.isBuffer(new Buffer(0)), true); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.travis.yml deleted file mode 100644 index cc4dba29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/Makefile deleted file mode 100644 index 787d56e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -test: - @node_modules/.bin/tape test.js - -.PHONY: test - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/README.md deleted file mode 100644 index 16d2c59c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/README.md +++ /dev/null @@ -1,60 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray) -[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray) - -[![browser support](https://ci.testling.com/juliangruber/isarray.png) -](https://ci.testling.com/juliangruber/isarray) - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/component.json deleted file mode 100644 index 9e31b683..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/index.js deleted file mode 100644 index a57f6349..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/index.js +++ /dev/null @@ -1,5 +0,0 @@ -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/package.json deleted file mode 100644 index 75aac295..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "_args": [ - [ - "isarray@~1.0.0", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ], - [ - "isarray@~1.0.0", - "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream" - ] - ], - "_from": "isarray@>=1.0.0 <1.1.0", - "_id": "isarray@1.0.0", - "_inCache": true, - "_installable": true, - "_location": "/npm-registry-client/concat-stream/readable-stream/isarray", - "_nodeVersion": "5.1.0", - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "isarray", - "raw": "isarray@~1.0.0", - "rawSpec": "~1.0.0", - "scope": null, - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/npm-registry-client/concat-stream/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "isarray@~1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" - }, - "dependencies": {}, - "description": "Array#isArray for older browsers", - "devDependencies": { - "tape": "~2.13.4" - }, - "directories": {}, - "dist": { - "shasum": "bb935d48582cba168c06834957a54a3e07124f11", - "tarball": "http://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "gitHead": "2a23a281f369e9ae06394c0fb4d2381355a6ba33", - "homepage": "https://github.com/juliangruber/isarray", - "keywords": [ - "browser", - "isarray", - "array" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - } - ], - "name": "isarray", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "scripts": { - "test": "tape test.js" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/17..latest", - "firefox/nightly", - "chrome/22..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test.js" - }, - "version": "1.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/test.js deleted file mode 100644 index e0c3444d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/test.js +++ /dev/null @@ -1,20 +0,0 @@ -var isArray = require('./'); -var test = require('tape'); - -test('is array', function(t){ - t.ok(isArray([])); - t.notOk(isArray({})); - t.notOk(isArray(null)); - t.notOk(isArray(false)); - - var obj = {}; - obj[0] = true; - t.notOk(isArray(obj)); - - var arr = []; - arr.foo = 'bar'; - t.ok(isArray(arr)); - - t.end(); -}); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml deleted file mode 100644 index 36201b10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.11" - - "0.12" - - "1.7.1" - - 1 - - 2 - - 3 - - 4 - - 5 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/index.js deleted file mode 100644 index 571c2767..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/index.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = nextTick; -} else { - module.exports = process.nextTick; -} - -function nextTick(fn) { - var args = new Array(arguments.length - 1); - var i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - process.nextTick(function afterTick() { - fn.apply(null, args); - }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/license.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/license.md deleted file mode 100644 index c67e3532..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/license.md +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (c) 2015 Calvin Metcalf - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/package.json deleted file mode 100644 index 3718b900..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "_args": [ - [ - "process-nextick-args@~1.0.6", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ], - [ - "process-nextick-args@~1.0.6", - "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream" - ] - ], - "_from": "process-nextick-args@>=1.0.6 <1.1.0", - "_id": "process-nextick-args@1.0.6", - "_inCache": true, - "_installable": true, - "_location": "/npm-registry-client/concat-stream/readable-stream/process-nextick-args", - "_nodeVersion": "4.1.1", - "_npmUser": { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - }, - "_npmVersion": "2.14.4", - "_phantomChildren": {}, - "_requested": { - "name": "process-nextick-args", - "raw": "process-nextick-args@~1.0.6", - "rawSpec": "~1.0.6", - "scope": null, - "spec": ">=1.0.6 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/npm-registry-client/concat-stream/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "process-nextick-args@~1.0.6", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream", - "author": "", - "bugs": { - "url": "https://github.com/calvinmetcalf/process-nextick-args/issues" - }, - "dependencies": {}, - "description": "process.nextTick but always with args", - "devDependencies": { - "tap": "~0.2.6" - }, - "directories": {}, - "dist": { - "shasum": "0f96b001cea90b12592ce566edb97ec11e69bd05", - "tarball": "http://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" - }, - "gitHead": "e85787b05a8c3c1adb714f332d822e9162699c78", - "homepage": "https://github.com/calvinmetcalf/process-nextick-args", - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - } - ], - "name": "process-nextick-args", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" - }, - "scripts": { - "test": "node test.js" - }, - "version": "1.0.6" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/readme.md deleted file mode 100644 index 78e7cfae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -process-nextick-args -===== - -[![Build Status](https://travis-ci.org/calvinmetcalf/process-nextick-args.svg?branch=master)](https://travis-ci.org/calvinmetcalf/process-nextick-args) - -```bash -npm install --save process-nextick-args -``` - -Always be able to pass arguments to process.nextTick, no matter the platform - -```js -var nextTick = require('process-nextick-args'); - -nextTick(function (a, b, c) { - console.log(a, b, c); -}, 'step', 3, 'profit'); -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/test.js deleted file mode 100644 index ef157215..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/test.js +++ /dev/null @@ -1,24 +0,0 @@ -var test = require("tap").test; -var nextTick = require('./'); - -test('should work', function (t) { - t.plan(5); - nextTick(function (a) { - t.ok(a); - nextTick(function (thing) { - t.equals(thing, 7); - }, 7); - }, true); - nextTick(function (a, b, c) { - t.equals(a, 'step'); - t.equals(b, 3); - t.equals(c, 'profit'); - }, 'step', 3, 'profit'); -}); - -test('correct number of arguments', function (t) { - t.plan(1); - nextTick(function () { - t.equals(2, arguments.length, 'correct number'); - }, 1, 2); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/.npmignore deleted file mode 100644 index 206320cc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -build -test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/LICENSE deleted file mode 100644 index 6de584a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Joyent, Inc. and other Node contributors. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/README.md deleted file mode 100644 index 4d2aa001..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/README.md +++ /dev/null @@ -1,7 +0,0 @@ -**string_decoder.js** (`require('string_decoder')`) from Node.js core - -Copyright Joyent, Inc. and other Node contributors. See LICENCE file for details. - -Version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.** - -The *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/index.js deleted file mode 100644 index b00e54fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/index.js +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -var Buffer = require('buffer').Buffer; - -var isBufferEncoding = Buffer.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; - default: return false; - } - } - - -function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. CESU-8 is handled as part of the UTF-8 encoding. -// -// @TODO Handling all encodings inside a single object makes it very difficult -// to reason about this code, so it should be split up in the future. -// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code -// points as used by CESU-8. -var StringDecoder = exports.StringDecoder = function(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; -}; - - -// write decodes the given buffer and returns it as JS string that is -// guaranteed to not contain any partial multi-byte characters. Any partial -// character found at the end of the buffer is buffered up, and will be -// returned when calling write again with the remaining bytes. -// -// Note: Converting a Buffer containing an orphan surrogate to a String -// currently works, but converting a String to a Buffer (via `new Buffer`, or -// Buffer#write) will replace incomplete surrogates with the unicode -// replacement character. See https://codereview.chromium.org/121173009/ . -StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; -}; - -// detectIncompleteChar determines if there is an incomplete UTF-8 character at -// the end of the given buffer. If so, it sets this.charLength to the byte -// length that character, and sets this.charReceived to the number of bytes -// that are available for this character. -StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; -}; - -StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; -}; - -function passThroughWrite(buffer) { - return buffer.toString(this.encoding); -} - -function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; -} - -function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json deleted file mode 100644 index bb11cd19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "_args": [ - [ - "string_decoder@~0.10.x", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ], - [ - "string_decoder@~0.10.x", - "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream" - ] - ], - "_from": "string_decoder@>=0.10.0 <0.11.0", - "_id": "string_decoder@0.10.31", - "_inCache": true, - "_installable": true, - "_location": "/npm-registry-client/concat-stream/readable-stream/string_decoder", - "_npmUser": { - "email": "rod@vagg.org", - "name": "rvagg" - }, - "_npmVersion": "1.4.23", - "_phantomChildren": {}, - "_requested": { - "name": "string_decoder", - "raw": "string_decoder@~0.10.x", - "rawSpec": "~0.10.x", - "scope": null, - "spec": ">=0.10.0 <0.11.0", - "type": "range" - }, - "_requiredBy": [ - "/npm-registry-client/concat-stream/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "string_decoder@~0.10.x", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream", - "bugs": { - "url": "https://github.com/rvagg/string_decoder/issues" - }, - "dependencies": {}, - "description": "The string_decoder module from Node core", - "devDependencies": { - "tap": "~0.4.8" - }, - "directories": {}, - "dist": { - "shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "tarball": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "gitHead": "d46d4fd87cf1d06e031c23f1ba170ca7d4ade9a0", - "homepage": "https://github.com/rvagg/string_decoder", - "keywords": [ - "string", - "decoder", - "browser", - "browserify" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "mail@substack.net", - "name": "substack" - }, - { - "email": "rod@vagg.org", - "name": "rvagg" - } - ], - "name": "string_decoder", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/rvagg/string_decoder.git" - }, - "scripts": { - "test": "tap test/simple/*.js" - }, - "version": "0.10.31" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/History.md deleted file mode 100644 index acc86753..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/History.md +++ /dev/null @@ -1,16 +0,0 @@ - -1.0.2 / 2015-10-07 -================== - - * use try/catch when checking `localStorage` (#3, @kumavis) - -1.0.1 / 2014-11-25 -================== - - * browser: use `console.warn()` for deprecation calls - * browser: more jsdocs - -1.0.0 / 2014-04-30 -================== - - * initial commit diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/LICENSE deleted file mode 100644 index 6a60e8c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/README.md deleted file mode 100644 index 75622fa7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/README.md +++ /dev/null @@ -1,53 +0,0 @@ -util-deprecate -============== -### The Node.js `util.deprecate()` function with browser support - -In Node.js, this module simply re-exports the `util.deprecate()` function. - -In the web browser (i.e. via browserify), a browser-specific implementation -of the `util.deprecate()` function is used. - - -## API - -A `deprecate()` function is the only thing exposed by this module. - -``` javascript -// setup: -exports.foo = deprecate(foo, 'foo() is deprecated, use bar() instead'); - - -// users see: -foo(); -// foo() is deprecated, use bar() instead -foo(); -foo(); -``` - - -## License - -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/browser.js deleted file mode 100644 index 549ae2f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/browser.js +++ /dev/null @@ -1,67 +0,0 @@ - -/** - * Module exports. - */ - -module.exports = deprecate; - -/** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - -function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -} - -/** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - -function config (name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!global.localStorage) return false; - } catch (_) { - return false; - } - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/node.js deleted file mode 100644 index 5e6fcff5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/node.js +++ /dev/null @@ -1,6 +0,0 @@ - -/** - * For Node.js, simply re-export the core `util.deprecate` function. - */ - -module.exports = require('util').deprecate; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/package.json deleted file mode 100644 index 276e03f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "_args": [ - [ - "util-deprecate@~1.0.1", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ], - [ - "util-deprecate@~1.0.1", - "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream" - ] - ], - "_from": "util-deprecate@>=1.0.1 <1.1.0", - "_id": "util-deprecate@1.0.2", - "_inCache": true, - "_installable": true, - "_location": "/npm-registry-client/concat-stream/readable-stream/util-deprecate", - "_nodeVersion": "4.1.2", - "_npmUser": { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - }, - "_npmVersion": "2.14.4", - "_phantomChildren": {}, - "_requested": { - "name": "util-deprecate", - "raw": "util-deprecate@~1.0.1", - "rawSpec": "~1.0.1", - "scope": null, - "spec": ">=1.0.1 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/npm-registry-client/concat-stream/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "util-deprecate@~1.0.1", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream", - "author": { - "email": "nathan@tootallnate.net", - "name": "Nathan Rajlich", - "url": "http://n8.io/" - }, - "browser": "browser.js", - "bugs": { - "url": "https://github.com/TooTallNate/util-deprecate/issues" - }, - "dependencies": {}, - "description": "The Node.js `util.deprecate()` function with browser support", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "tarball": "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - }, - "gitHead": "475fb6857cd23fafff20c1be846c1350abf8e6d4", - "homepage": "https://github.com/TooTallNate/util-deprecate", - "keywords": [ - "util", - "deprecate", - "browserify", - "browser", - "node" - ], - "license": "MIT", - "main": "node.js", - "maintainers": [ - { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - } - ], - "name": "util-deprecate", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/util-deprecate.git" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "version": "1.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/package.json deleted file mode 100644 index 05264e0a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_args": [ - [ - "readable-stream@~2.0.0", - "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream" - ] - ], - "_from": "readable-stream@>=2.0.0 <2.1.0", - "_id": "readable-stream@2.0.6", - "_inCache": true, - "_installable": true, - "_location": "/npm-registry-client/concat-stream/readable-stream", - "_nodeVersion": "5.7.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/readable-stream-2.0.6.tgz_1457893507709_0.369257491780445" - }, - "_npmUser": { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - }, - "_npmVersion": "3.6.0", - "_phantomChildren": {}, - "_requested": { - "name": "readable-stream", - "raw": "readable-stream@~2.0.0", - "rawSpec": "~2.0.0", - "scope": null, - "spec": ">=2.0.0 <2.1.0", - "type": "range" - }, - "_requiredBy": [ - "/npm-registry-client/concat-stream" - ], - "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "_shasum": "8f90341e68a53ccc928788dacfcd11b36eb9b78e", - "_shrinkwrap": null, - "_spec": "readable-stream@~2.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client/node_modules/concat-stream", - "browser": { - "util": false - }, - "bugs": { - "url": "https://github.com/nodejs/readable-stream/issues" - }, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - }, - "description": "Streams3, a user-land copy of the stream library from Node.js", - "devDependencies": { - "tap": "~0.2.6", - "tape": "~4.5.1", - "zuul": "~3.9.0" - }, - "directories": {}, - "dist": { - "shasum": "8f90341e68a53ccc928788dacfcd11b36eb9b78e", - "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" - }, - "gitHead": "01fb5608a970b42c900b96746cadc13d27dd9d7e", - "homepage": "https://github.com/nodejs/readable-stream#readme", - "keywords": [ - "readable", - "stream", - "pipe" - ], - "license": "MIT", - "main": "readable.js", - "maintainers": [ - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - }, - { - "email": "rod@vagg.org", - "name": "rvagg" - }, - { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - } - ], - "name": "readable-stream", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream.git" - }, - "scripts": { - "browser": "npm run write-zuul && zuul -- test/browser.js", - "test": "tap test/parallel/*.js test/ours/*.js", - "write-zuul": "printf \"ui: tape\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml" - }, - "version": "2.0.6" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/passthrough.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/passthrough.js deleted file mode 100644 index 27e8d8a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/passthrough.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_passthrough.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/readable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/readable.js deleted file mode 100644 index 6222a579..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/readable.js +++ /dev/null @@ -1,12 +0,0 @@ -var Stream = (function (){ - try { - return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify - } catch(_){} -}()); -exports = module.exports = require('./lib/_stream_readable.js'); -exports.Stream = Stream || exports; -exports.Readable = exports; -exports.Writable = require('./lib/_stream_writable.js'); -exports.Duplex = require('./lib/_stream_duplex.js'); -exports.Transform = require('./lib/_stream_transform.js'); -exports.PassThrough = require('./lib/_stream_passthrough.js'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/transform.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/transform.js deleted file mode 100644 index 5d482f07..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/transform.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_transform.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/writable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/writable.js deleted file mode 100644 index e1e9efdf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/writable.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_writable.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/.travis.yml deleted file mode 100644 index cc4dba29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/LICENSE deleted file mode 100644 index 11adfaec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/LICENSE +++ /dev/null @@ -1,35 +0,0 @@ -/* - Copyright (c) 2010, Linden Research, Inc. - Copyright (c) 2012, Joshua Bell - - 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. - $/LicenseInfo$ - */ - -// Original can be found at: -// https://bitbucket.org/lindenlab/llsd -// Modifications by Joshua Bell inexorabletash@gmail.com -// https://github.com/inexorabletash/polyfill - -// ES3/ES5 implementation of the Krhonos Typed Array Specification -// Ref: http://www.khronos.org/registry/typedarray/specs/latest/ -// Date: 2011-02-01 -// -// Variations: -// * Allows typed_array.get/set() as alias for subscripts (typed_array[]) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/example/tarray.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/example/tarray.js deleted file mode 100644 index 8423d7c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/example/tarray.js +++ /dev/null @@ -1,4 +0,0 @@ -var Uint8Array = require('../').Uint8Array; -var ua = new Uint8Array(5); -ua[1] = 256 + 55; -console.log(ua[1]); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/index.js deleted file mode 100644 index 5e540841..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/index.js +++ /dev/null @@ -1,630 +0,0 @@ -var undefined = (void 0); // Paranoia - -// Beyond this value, index getters/setters (i.e. array[0], array[1]) are so slow to -// create, and consume so much memory, that the browser appears frozen. -var MAX_ARRAY_LENGTH = 1e5; - -// Approximations of internal ECMAScript conversion functions -var ECMAScript = (function() { - // Stash a copy in case other scripts modify these - var opts = Object.prototype.toString, - ophop = Object.prototype.hasOwnProperty; - - return { - // Class returns internal [[Class]] property, used to avoid cross-frame instanceof issues: - Class: function(v) { return opts.call(v).replace(/^\[object *|\]$/g, ''); }, - HasProperty: function(o, p) { return p in o; }, - HasOwnProperty: function(o, p) { return ophop.call(o, p); }, - IsCallable: function(o) { return typeof o === 'function'; }, - ToInt32: function(v) { return v >> 0; }, - ToUint32: function(v) { return v >>> 0; } - }; -}()); - -// Snapshot intrinsics -var LN2 = Math.LN2, - abs = Math.abs, - floor = Math.floor, - log = Math.log, - min = Math.min, - pow = Math.pow, - round = Math.round; - -// ES5: lock down object properties -function configureProperties(obj) { - if (getOwnPropNames && defineProp) { - var props = getOwnPropNames(obj), i; - for (i = 0; i < props.length; i += 1) { - defineProp(obj, props[i], { - value: obj[props[i]], - writable: false, - enumerable: false, - configurable: false - }); - } - } -} - -// emulate ES5 getter/setter API using legacy APIs -// http://blogs.msdn.com/b/ie/archive/2010/09/07/transitioning-existing-code-to-the-es5-getter-setter-apis.aspx -// (second clause tests for Object.defineProperty() in IE<9 that only supports extending DOM prototypes, but -// note that IE<9 does not support __defineGetter__ or __defineSetter__ so it just renders the method harmless) -var defineProp -if (Object.defineProperty && (function() { - try { - Object.defineProperty({}, 'x', {}); - return true; - } catch (e) { - return false; - } - })()) { - defineProp = Object.defineProperty; -} else { - defineProp = function(o, p, desc) { - if (!o === Object(o)) throw new TypeError("Object.defineProperty called on non-object"); - if (ECMAScript.HasProperty(desc, 'get') && Object.prototype.__defineGetter__) { Object.prototype.__defineGetter__.call(o, p, desc.get); } - if (ECMAScript.HasProperty(desc, 'set') && Object.prototype.__defineSetter__) { Object.prototype.__defineSetter__.call(o, p, desc.set); } - if (ECMAScript.HasProperty(desc, 'value')) { o[p] = desc.value; } - return o; - }; -} - -var getOwnPropNames = Object.getOwnPropertyNames || function (o) { - if (o !== Object(o)) throw new TypeError("Object.getOwnPropertyNames called on non-object"); - var props = [], p; - for (p in o) { - if (ECMAScript.HasOwnProperty(o, p)) { - props.push(p); - } - } - return props; -}; - -// ES5: Make obj[index] an alias for obj._getter(index)/obj._setter(index, value) -// for index in 0 ... obj.length -function makeArrayAccessors(obj) { - if (!defineProp) { return; } - - if (obj.length > MAX_ARRAY_LENGTH) throw new RangeError("Array too large for polyfill"); - - function makeArrayAccessor(index) { - defineProp(obj, index, { - 'get': function() { return obj._getter(index); }, - 'set': function(v) { obj._setter(index, v); }, - enumerable: true, - configurable: false - }); - } - - var i; - for (i = 0; i < obj.length; i += 1) { - makeArrayAccessor(i); - } -} - -// Internal conversion functions: -// pack() - take a number (interpreted as Type), output a byte array -// unpack() - take a byte array, output a Type-like number - -function as_signed(value, bits) { var s = 32 - bits; return (value << s) >> s; } -function as_unsigned(value, bits) { var s = 32 - bits; return (value << s) >>> s; } - -function packI8(n) { return [n & 0xff]; } -function unpackI8(bytes) { return as_signed(bytes[0], 8); } - -function packU8(n) { return [n & 0xff]; } -function unpackU8(bytes) { return as_unsigned(bytes[0], 8); } - -function packU8Clamped(n) { n = round(Number(n)); return [n < 0 ? 0 : n > 0xff ? 0xff : n & 0xff]; } - -function packI16(n) { return [(n >> 8) & 0xff, n & 0xff]; } -function unpackI16(bytes) { return as_signed(bytes[0] << 8 | bytes[1], 16); } - -function packU16(n) { return [(n >> 8) & 0xff, n & 0xff]; } -function unpackU16(bytes) { return as_unsigned(bytes[0] << 8 | bytes[1], 16); } - -function packI32(n) { return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff]; } -function unpackI32(bytes) { return as_signed(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); } - -function packU32(n) { return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff]; } -function unpackU32(bytes) { return as_unsigned(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); } - -function packIEEE754(v, ebits, fbits) { - - var bias = (1 << (ebits - 1)) - 1, - s, e, f, ln, - i, bits, str, bytes; - - function roundToEven(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; - } - - // Compute sign, exponent, fraction - if (v !== 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 { - // Normalized - e = e + bias; - f = f - pow(2, fbits); - } - } else { - // Denormalized - 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; -} - -function unpackIEEE754(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; - } else if (e > 0) { - // Normalized - return s * pow(2, e - bias) * (1 + f / pow(2, fbits)); - } else if (f !== 0) { - // Denormalized - return s * pow(2, -(bias - 1)) * (f / pow(2, fbits)); - } else { - return s < 0 ? -0 : 0; - } -} - -function unpackF64(b) { return unpackIEEE754(b, 11, 52); } -function packF64(v) { return packIEEE754(v, 11, 52); } -function unpackF32(b) { return unpackIEEE754(b, 8, 23); } -function packF32(v) { return packIEEE754(v, 8, 23); } - - -// -// 3 The ArrayBuffer Type -// - -(function() { - - /** @constructor */ - var ArrayBuffer = function ArrayBuffer(length) { - length = ECMAScript.ToInt32(length); - if (length < 0) throw new RangeError('ArrayBuffer size is not a small enough positive integer'); - - this.byteLength = length; - this._bytes = []; - this._bytes.length = length; - - var i; - for (i = 0; i < this.byteLength; i += 1) { - this._bytes[i] = 0; - } - - configureProperties(this); - }; - - exports.ArrayBuffer = exports.ArrayBuffer || ArrayBuffer; - - // - // 4 The ArrayBufferView Type - // - - // NOTE: this constructor is not exported - /** @constructor */ - var ArrayBufferView = function ArrayBufferView() { - //this.buffer = null; - //this.byteOffset = 0; - //this.byteLength = 0; - }; - - // - // 5 The Typed Array View Types - // - - function makeConstructor(bytesPerElement, pack, unpack) { - // Each TypedArray type requires a distinct constructor instance with - // identical logic, which this produces. - - var ctor; - ctor = function(buffer, byteOffset, length) { - var array, sequence, i, s; - - if (!arguments.length || typeof arguments[0] === 'number') { - // Constructor(unsigned long length) - this.length = ECMAScript.ToInt32(arguments[0]); - if (length < 0) throw new RangeError('ArrayBufferView size is not a small enough positive integer'); - - this.byteLength = this.length * this.BYTES_PER_ELEMENT; - this.buffer = new ArrayBuffer(this.byteLength); - this.byteOffset = 0; - } else if (typeof arguments[0] === 'object' && arguments[0].constructor === ctor) { - // Constructor(TypedArray array) - array = arguments[0]; - - this.length = array.length; - this.byteLength = this.length * this.BYTES_PER_ELEMENT; - this.buffer = new ArrayBuffer(this.byteLength); - this.byteOffset = 0; - - for (i = 0; i < this.length; i += 1) { - this._setter(i, array._getter(i)); - } - } else if (typeof arguments[0] === 'object' && - !(arguments[0] instanceof ArrayBuffer || ECMAScript.Class(arguments[0]) === 'ArrayBuffer')) { - // Constructor(sequence array) - sequence = arguments[0]; - - this.length = ECMAScript.ToUint32(sequence.length); - this.byteLength = this.length * this.BYTES_PER_ELEMENT; - this.buffer = new ArrayBuffer(this.byteLength); - this.byteOffset = 0; - - for (i = 0; i < this.length; i += 1) { - s = sequence[i]; - this._setter(i, Number(s)); - } - } else if (typeof arguments[0] === 'object' && - (arguments[0] instanceof ArrayBuffer || ECMAScript.Class(arguments[0]) === 'ArrayBuffer')) { - // Constructor(ArrayBuffer buffer, - // optional unsigned long byteOffset, optional unsigned long length) - this.buffer = buffer; - - this.byteOffset = ECMAScript.ToUint32(byteOffset); - if (this.byteOffset > this.buffer.byteLength) { - throw new RangeError("byteOffset out of range"); - } - - if (this.byteOffset % this.BYTES_PER_ELEMENT) { - // The given byteOffset must be a multiple of the element - // size of the specific type, otherwise an exception is raised. - throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size."); - } - - if (arguments.length < 3) { - this.byteLength = this.buffer.byteLength - this.byteOffset; - - if (this.byteLength % this.BYTES_PER_ELEMENT) { - throw new RangeError("length of buffer minus byteOffset not a multiple of the element size"); - } - this.length = this.byteLength / this.BYTES_PER_ELEMENT; - } else { - this.length = ECMAScript.ToUint32(length); - this.byteLength = this.length * this.BYTES_PER_ELEMENT; - } - - if ((this.byteOffset + this.byteLength) > this.buffer.byteLength) { - throw new RangeError("byteOffset and length reference an area beyond the end of the buffer"); - } - } else { - throw new TypeError("Unexpected argument type(s)"); - } - - this.constructor = ctor; - - configureProperties(this); - makeArrayAccessors(this); - }; - - ctor.prototype = new ArrayBufferView(); - ctor.prototype.BYTES_PER_ELEMENT = bytesPerElement; - ctor.prototype._pack = pack; - ctor.prototype._unpack = unpack; - ctor.BYTES_PER_ELEMENT = bytesPerElement; - - // getter type (unsigned long index); - ctor.prototype._getter = function(index) { - if (arguments.length < 1) throw new SyntaxError("Not enough arguments"); - - index = ECMAScript.ToUint32(index); - if (index >= this.length) { - return undefined; - } - - var bytes = [], i, o; - for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT; - i < this.BYTES_PER_ELEMENT; - i += 1, o += 1) { - bytes.push(this.buffer._bytes[o]); - } - return this._unpack(bytes); - }; - - // NONSTANDARD: convenience alias for getter: type get(unsigned long index); - ctor.prototype.get = ctor.prototype._getter; - - // setter void (unsigned long index, type value); - ctor.prototype._setter = function(index, value) { - if (arguments.length < 2) throw new SyntaxError("Not enough arguments"); - - index = ECMAScript.ToUint32(index); - if (index >= this.length) { - return undefined; - } - - var bytes = this._pack(value), i, o; - for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT; - i < this.BYTES_PER_ELEMENT; - i += 1, o += 1) { - this.buffer._bytes[o] = bytes[i]; - } - }; - - // void set(TypedArray array, optional unsigned long offset); - // void set(sequence array, optional unsigned long offset); - ctor.prototype.set = function(index, value) { - if (arguments.length < 1) throw new SyntaxError("Not enough arguments"); - var array, sequence, offset, len, - i, s, d, - byteOffset, byteLength, tmp; - - if (typeof arguments[0] === 'object' && arguments[0].constructor === this.constructor) { - // void set(TypedArray array, optional unsigned long offset); - array = arguments[0]; - offset = ECMAScript.ToUint32(arguments[1]); - - if (offset + array.length > this.length) { - throw new RangeError("Offset plus length of array is out of range"); - } - - byteOffset = this.byteOffset + offset * this.BYTES_PER_ELEMENT; - byteLength = array.length * this.BYTES_PER_ELEMENT; - - if (array.buffer === this.buffer) { - tmp = []; - for (i = 0, s = array.byteOffset; i < byteLength; i += 1, s += 1) { - tmp[i] = array.buffer._bytes[s]; - } - for (i = 0, d = byteOffset; i < byteLength; i += 1, d += 1) { - this.buffer._bytes[d] = tmp[i]; - } - } else { - for (i = 0, s = array.byteOffset, d = byteOffset; - i < byteLength; i += 1, s += 1, d += 1) { - this.buffer._bytes[d] = array.buffer._bytes[s]; - } - } - } else if (typeof arguments[0] === 'object' && typeof arguments[0].length !== 'undefined') { - // void set(sequence array, optional unsigned long offset); - sequence = arguments[0]; - len = ECMAScript.ToUint32(sequence.length); - offset = ECMAScript.ToUint32(arguments[1]); - - if (offset + len > this.length) { - throw new RangeError("Offset plus length of array is out of range"); - } - - for (i = 0; i < len; i += 1) { - s = sequence[i]; - this._setter(offset + i, Number(s)); - } - } else { - throw new TypeError("Unexpected argument type(s)"); - } - }; - - // TypedArray subarray(long begin, optional long end); - ctor.prototype.subarray = function(start, end) { - function clamp(v, min, max) { return v < min ? min : v > max ? max : v; } - - start = ECMAScript.ToInt32(start); - end = ECMAScript.ToInt32(end); - - if (arguments.length < 1) { start = 0; } - if (arguments.length < 2) { end = this.length; } - - if (start < 0) { start = this.length + start; } - if (end < 0) { end = this.length + end; } - - start = clamp(start, 0, this.length); - end = clamp(end, 0, this.length); - - var len = end - start; - if (len < 0) { - len = 0; - } - - return new this.constructor( - this.buffer, this.byteOffset + start * this.BYTES_PER_ELEMENT, len); - }; - - return ctor; - } - - var Int8Array = makeConstructor(1, packI8, unpackI8); - var Uint8Array = makeConstructor(1, packU8, unpackU8); - var Uint8ClampedArray = makeConstructor(1, packU8Clamped, unpackU8); - var Int16Array = makeConstructor(2, packI16, unpackI16); - var Uint16Array = makeConstructor(2, packU16, unpackU16); - var Int32Array = makeConstructor(4, packI32, unpackI32); - var Uint32Array = makeConstructor(4, packU32, unpackU32); - var Float32Array = makeConstructor(4, packF32, unpackF32); - var Float64Array = makeConstructor(8, packF64, unpackF64); - - exports.Int8Array = exports.Int8Array || Int8Array; - exports.Uint8Array = exports.Uint8Array || Uint8Array; - exports.Uint8ClampedArray = exports.Uint8ClampedArray || Uint8ClampedArray; - exports.Int16Array = exports.Int16Array || Int16Array; - exports.Uint16Array = exports.Uint16Array || Uint16Array; - exports.Int32Array = exports.Int32Array || Int32Array; - exports.Uint32Array = exports.Uint32Array || Uint32Array; - exports.Float32Array = exports.Float32Array || Float32Array; - exports.Float64Array = exports.Float64Array || Float64Array; -}()); - -// -// 6 The DataView View Type -// - -(function() { - function r(array, index) { - return ECMAScript.IsCallable(array.get) ? array.get(index) : array[index]; - } - - var IS_BIG_ENDIAN = (function() { - var u16array = new(exports.Uint16Array)([0x1234]), - u8array = new(exports.Uint8Array)(u16array.buffer); - return r(u8array, 0) === 0x12; - }()); - - // Constructor(ArrayBuffer buffer, - // optional unsigned long byteOffset, - // optional unsigned long byteLength) - /** @constructor */ - var DataView = function DataView(buffer, byteOffset, byteLength) { - if (arguments.length === 0) { - buffer = new exports.ArrayBuffer(0); - } else if (!(buffer instanceof exports.ArrayBuffer || ECMAScript.Class(buffer) === 'ArrayBuffer')) { - throw new TypeError("TypeError"); - } - - this.buffer = buffer || new exports.ArrayBuffer(0); - - this.byteOffset = ECMAScript.ToUint32(byteOffset); - if (this.byteOffset > this.buffer.byteLength) { - throw new RangeError("byteOffset out of range"); - } - - if (arguments.length < 3) { - this.byteLength = this.buffer.byteLength - this.byteOffset; - } else { - this.byteLength = ECMAScript.ToUint32(byteLength); - } - - if ((this.byteOffset + this.byteLength) > this.buffer.byteLength) { - throw new RangeError("byteOffset and length reference an area beyond the end of the buffer"); - } - - configureProperties(this); - }; - - function makeGetter(arrayType) { - return function(byteOffset, littleEndian) { - - byteOffset = ECMAScript.ToUint32(byteOffset); - - if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) { - throw new RangeError("Array index out of range"); - } - byteOffset += this.byteOffset; - - var uint8Array = new exports.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT), - bytes = [], i; - for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) { - bytes.push(r(uint8Array, i)); - } - - if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) { - bytes.reverse(); - } - - return r(new arrayType(new exports.Uint8Array(bytes).buffer), 0); - }; - } - - DataView.prototype.getUint8 = makeGetter(exports.Uint8Array); - DataView.prototype.getInt8 = makeGetter(exports.Int8Array); - DataView.prototype.getUint16 = makeGetter(exports.Uint16Array); - DataView.prototype.getInt16 = makeGetter(exports.Int16Array); - DataView.prototype.getUint32 = makeGetter(exports.Uint32Array); - DataView.prototype.getInt32 = makeGetter(exports.Int32Array); - DataView.prototype.getFloat32 = makeGetter(exports.Float32Array); - DataView.prototype.getFloat64 = makeGetter(exports.Float64Array); - - function makeSetter(arrayType) { - return function(byteOffset, value, littleEndian) { - - byteOffset = ECMAScript.ToUint32(byteOffset); - if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) { - throw new RangeError("Array index out of range"); - } - - // Get bytes - var typeArray = new arrayType([value]), - byteArray = new exports.Uint8Array(typeArray.buffer), - bytes = [], i, byteView; - - for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) { - bytes.push(r(byteArray, i)); - } - - // Flip if necessary - if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) { - bytes.reverse(); - } - - // Write them - byteView = new exports.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT); - byteView.set(bytes); - }; - } - - DataView.prototype.setUint8 = makeSetter(exports.Uint8Array); - DataView.prototype.setInt8 = makeSetter(exports.Int8Array); - DataView.prototype.setUint16 = makeSetter(exports.Uint16Array); - DataView.prototype.setInt16 = makeSetter(exports.Int16Array); - DataView.prototype.setUint32 = makeSetter(exports.Uint32Array); - DataView.prototype.setInt32 = makeSetter(exports.Int32Array); - DataView.prototype.setFloat32 = makeSetter(exports.Float32Array); - DataView.prototype.setFloat64 = makeSetter(exports.Float64Array); - - exports.DataView = exports.DataView || DataView; - -}()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json deleted file mode 100644 index b8b59f5c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "typedarray", - "version": "0.0.6", - "description": "TypedArray polyfill for old browsers", - "main": "index.js", - "devDependencies": { - "tape": "~2.3.2" - }, - "scripts": { - "test": "tape test/*.js test/server/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/typedarray.git" - }, - "homepage": "https://github.com/substack/typedarray", - "keywords": [ - "ArrayBuffer", - "DataView", - "Float32Array", - "Float64Array", - "Int8Array", - "Int16Array", - "Int32Array", - "Uint8Array", - "Uint8ClampedArray", - "Uint16Array", - "Uint32Array", - "typed", - "array", - "polyfill" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/6..latest", - "firefox/16..latest", - "firefox/nightly", - "chrome/22..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "bugs": { - "url": "https://github.com/substack/typedarray/issues" - }, - "_id": "typedarray@0.0.6", - "dist": { - "shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777", - "tarball": "http://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - }, - "_from": "typedarray@>=0.0.5 <0.1.0", - "_npmVersion": "1.4.3", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "directories": {}, - "_shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777", - "_resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/readme.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/readme.markdown deleted file mode 100644 index d18f6f71..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/readme.markdown +++ /dev/null @@ -1,61 +0,0 @@ -# typedarray - -TypedArray polyfill ripped from [this -module](https://raw.github.com/inexorabletash/polyfill). - -[![build status](https://secure.travis-ci.org/substack/typedarray.png)](http://travis-ci.org/substack/typedarray) - -[![testling badge](https://ci.testling.com/substack/typedarray.png)](https://ci.testling.com/substack/typedarray) - -# example - -``` js -var Uint8Array = require('typedarray').Uint8Array; -var ua = new Uint8Array(5); -ua[1] = 256 + 55; -console.log(ua[1]); -``` - -output: - -``` -55 -``` - -# methods - -``` js -var TA = require('typedarray') -``` - -The `TA` object has the following constructors: - -* TA.ArrayBuffer -* TA.DataView -* TA.Float32Array -* TA.Float64Array -* TA.Int8Array -* TA.Int16Array -* TA.Int32Array -* TA.Uint8Array -* TA.Uint8ClampedArray -* TA.Uint16Array -* TA.Uint32Array - -# install - -With [npm](https://npmjs.org) do: - -``` -npm install typedarray -``` - -To use this module in the browser, compile with -[browserify](http://browserify.org) -or download a UMD build from browserify CDN: - -http://wzrd.in/standalone/typedarray@latest - -# license - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js deleted file mode 100644 index 425950f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js +++ /dev/null @@ -1,19 +0,0 @@ -var test = require('tape'); -var vm = require('vm'); -var fs = require('fs'); -var src = fs.readFileSync(__dirname + '/../../index.js', 'utf8'); - -test('u8a without globals', function (t) { - var c = { - module: { exports: {} }, - }; - c.exports = c.module.exports; - vm.runInNewContext(src, c); - var TA = c.module.exports; - var ua = new(TA.Uint8Array)(5); - - t.equal(ua.length, 5); - ua[1] = 256 + 55; - t.equal(ua[1], 55); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/tarray.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/tarray.js deleted file mode 100644 index df596a34..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/tarray.js +++ /dev/null @@ -1,10 +0,0 @@ -var TA = require('../'); -var test = require('tape'); - -test('tiny u8a test', function (t) { - var ua = new(TA.Uint8Array)(5); - t.equal(ua.length, 5); - ua[1] = 256 + 55; - t.equal(ua[1], 55); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json deleted file mode 100644 index 5a3f8b40..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "name": "concat-stream", - "version": "1.5.1", - "description": "writable stream that concatenates strings or binary data and calls a callback with the result", - "tags": [ - "stream", - "simple", - "util", - "utility" - ], - "author": { - "name": "Max Ogden", - "email": "max@maxogden.com" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/maxogden/concat-stream.git" - }, - "bugs": { - "url": "http://github.com/maxogden/concat-stream/issues" - }, - "engines": [ - "node >= 0.8" - ], - "main": "index.js", - "files": [ - "index.js" - ], - "scripts": { - "test": "tape test/*.js test/server/*.js" - }, - "license": "MIT", - "dependencies": { - "inherits": "~2.0.1", - "typedarray": "~0.0.5", - "readable-stream": "~2.0.0" - }, - "devDependencies": { - "tape": "~2.3.2" - }, - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/17..latest", - "firefox/nightly", - "chrome/22..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "gitHead": "522adc12d82f57c691a5f946fbc8ba08718dcdcb", - "homepage": "https://github.com/maxogden/concat-stream#readme", - "_id": "concat-stream@1.5.1", - "_shasum": "f3b80acf9e1f48e3875c0688b41b6c31602eea1c", - "_from": "concat-stream@>=1.4.6 <2.0.0", - "_npmVersion": "2.14.2", - "_nodeVersion": "4.0.0", - "_npmUser": { - "name": "maxogden", - "email": "max@maxogden.com" - }, - "dist": { - "shasum": "f3b80acf9e1f48e3875c0688b41b6c31602eea1c", - "tarball": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz" - }, - "maintainers": [ - { - "name": "maxogden", - "email": "max@maxogden.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md deleted file mode 100644 index 1a16af94..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md +++ /dev/null @@ -1,100 +0,0 @@ -# concat-stream - -Writable stream that concatenates all the data from a stream and calls a callback with the result. Use this when you want to collect all the data from a stream into a single buffer. - -[![Build Status](https://travis-ci.org/maxogden/concat-stream.svg?branch=master)](https://travis-ci.org/maxogden/concat-stream) - -[![NPM](https://nodei.co/npm/concat-stream.png)](https://nodei.co/npm/concat-stream/) - -### description - -Streams emit many buffers. If you want to collect all of the buffers, and when the stream ends concatenate all of the buffers together and receive a single buffer then this is the module for you. - -Only use this if you know you can fit all of the output of your stream into a single Buffer (e.g. in RAM). - -There are also `objectMode` streams that emit things other than Buffers, and you can concatenate these too. See below for details. - -## Related - -`stream-each` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one. - -### examples - -#### Buffers - -```js -var fs = require('fs') -var concat = require('concat-stream') - -var readStream = fs.createReadStream('cat.png') -var concatStream = concat(gotPicture) - -readStream.on('error', handleError) -readStream.pipe(concatStream) - -function gotPicture(imageBuffer) { - // imageBuffer is all of `cat.png` as a node.js Buffer -} - -function handleError(err) { - // handle your error appropriately here, e.g.: - console.error(err) // print the error to STDERR - process.exit(1) // exit program with non-zero exit code -} - -``` - -#### Arrays - -```js -var write = concat(function(data) {}) -write.write([1,2,3]) -write.write([4,5,6]) -write.end() -// data will be [1,2,3,4,5,6] in the above callback -``` - -#### Uint8Arrays - -```js -var write = concat(function(data) {}) -var a = new Uint8Array(3) -a[0] = 97; a[1] = 98; a[2] = 99 -write.write(a) -write.write('!') -write.end(Buffer('!!1')) -``` - -See `test/` for more examples - -# methods - -```js -var concat = require('concat-stream') -``` - -## var writable = concat(opts={}, cb) - -Return a `writable` stream that will fire `cb(data)` with all of the data that -was written to the stream. Data can be written to `writable` as strings, -Buffers, arrays of byte integers, and Uint8Arrays. - -By default `concat-stream` will give you back the same data type as the type of the first buffer written to the stream. Use `opts.encoding` to set what format `data` should be returned as, e.g. if you if you don't want to rely on the built-in type checking or for some other reason. - -* `string` - get a string -* `buffer` - get back a Buffer -* `array` - get an array of byte integers -* `uint8array`, `u8`, `uint8` - get back a Uint8Array -* `object`, get back an array of Objects - -If you don't specify an encoding, and the types can't be inferred (e.g. you write things that aren't in the list above), it will try to convert concat them into a `Buffer`. - -# error handling - -`concat-stream` does not handle errors for you, so you must handle errors on whatever streams you pipe into `concat-stream`. This is a general rule when programming with node.js streams: always handle errors on each and every stream. Since `concat-stream` is not itself a stream it does not emit errors. - -We recommend using [`end-of-stream`](https://npmjs.org/end-of-stream) or [`pump`](https://npmjs.org/pump) for writing error tolerant stream code. - -# license - -MIT LICENSE diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/.npmignore deleted file mode 100644 index e7726a07..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -/node_modules/* -npm-debug.log diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/License deleted file mode 100644 index 0b58de37..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/License +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2011: -Tim Koschützki (tim@debuggable.com) -Felix Geisendörfer (felix@debuggable.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/Makefile deleted file mode 100644 index eee21a99..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -SHELL := /bin/bash - -test: - @node test/runner.js - -release-major: test - npm version major -m "Release %s" - git push - npm publish - -release-minor: test - npm version minor -m "Release %s" - git push - npm publish - -release-patch: test - npm version patch -m "Release %s" - git push - npm publish - -.PHONY: test - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/README.md deleted file mode 100644 index 09d9c8a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/README.md +++ /dev/null @@ -1,195 +0,0 @@ -# retry - -Abstraction for exponential and custom retry strategies for failed operations. - -## Installation - - npm install retry - -## Current Status - -This module has been tested and is ready to be used. - -## Tutorial - -The example below will retry a potentially failing `dns.resolve` operation -`10` times using an exponential backoff strategy. With the default settings, this -means the last attempt is made after `17 minutes and 3 seconds`. - -``` javascript -var dns = require('dns'); -var retry = require('retry'); - -function faultTolerantResolve(address, cb) { - var operation = retry.operation(); - - operation.attempt(function(currentAttempt) { - dns.resolve(address, function(err, addresses) { - if (operation.retry(err)) { - return; - } - - cb(err ? operation.mainError() : null, addresses); - }); - }); -} - -faultTolerantResolve('nodejs.org', function(err, addresses) { - console.log(err, addresses); -}); -``` - -Of course you can also configure the factors that go into the exponential -backoff. See the API documentation below for all available settings. -currentAttempt is an int representing the number of attempts so far. - -``` javascript -var operation = retry.operation({ - retries: 5, - factor: 3, - minTimeout: 1 * 1000, - maxTimeout: 60 * 1000, - randomize: true, -}); -``` - -## API - -### retry.operation([options]) - -Creates a new `RetryOperation` object. See the `retry.timeouts()` function -below for available `options`. - -### retry.timeouts([options]) - -Returns an array of timeouts. All time `options` and return values are in -milliseconds. If `options` is an array, a copy of that array is returned. - -`options` is a JS object that can contain any of the following keys: - -* `retries`: The maximum amount of times to retry the operation. Default is `10`. -* `factor`: The exponential factor to use. Default is `2`. -* `minTimeout`: The number of milliseconds before starting the first retry. Default is `1000`. -* `maxTimeout`: The maximum number of milliseconds between two retries. Default is `Infinity`. -* `randomize`: Randomizes the timeouts by multiplying with a factor between `1` to `2`. Default is `false`. - -The formula used to calculate the individual timeouts is: - -``` -var Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout); -``` - -Have a look at [this article][article] for a better explanation of approach. - -If you want to tune your `factor` / `times` settings to attempt the last retry -after a certain amount of time, you can use wolfram alpha. For example in order -to tune for `10` attempts in `5 minutes`, you can use this equation: - -![screenshot](https://github.com/tim-kos/node-retry/raw/master/equation.gif) - -Explaining the various values from left to right: - -* `k = 0 ... 9`: The `retries` value (10) -* `1000`: The `minTimeout` value in ms (1000) -* `x^k`: No need to change this, `x` will be your resulting factor -* `5 * 60 * 1000`: The desired total amount of time for retrying in ms (5 minutes) - -To make this a little easier for you, use wolfram alpha to do the calculations: - - - -[article]: http://dthain.blogspot.com/2009/02/exponential-backoff-in-distributed.html - -### retry.createTimeout(attempt, opts) - -Returns a new `timeout` (integer in milliseconds) based on the given parameters. - -`attempt` is an integer representing for which retry the timeout should be calculated. If your retry operation was executed 4 times you had one attempt and 3 retries. If you then want to calculate a new timeout, you should set `attempt` to 4 (attempts are zero-indexed). - -`opts` can include `factor`, `minTimeout`, `randomize` (boolean) and `maxTimeout`. They are documented above. - -`retry.createTimeout()` is used internally by `retry.timeouts()` and is public for you to be able to create your own timeouts for reinserting an item, see [issue #13](https://github.com/tim-kos/node-retry/issues/13). - -### retry.wrap(obj, [options], [methodNames]) - -Wrap all functions of the `obj` with retry. Optionally you can pass operation options and -an array of method names which need to be wrapped. - -``` -retry.wrap(obj) - -retry.wrap(obj, ['method1', 'method2']); - -retry.wrap(obj, {retries: 3}); - -retry.wrap(obj, {retries: 3}, ['method1', 'method2']); -``` -The `options` object can take any options that the usual call to `retry.operation` can take. - -### new RetryOperation(timeouts) - -Creates a new `RetryOperation` where `timeouts` is an array where each value is -a timeout given in milliseconds. - -#### retryOperation.errors() - -Returns an array of all errors that have been passed to -`retryOperation.retry()` so far. - -#### retryOperation.mainError() - -A reference to the error object that occured most frequently. Errors are -compared using the `error.message` property. - -If multiple error messages occured the same amount of time, the last error -object with that message is returned. - -If no errors occured so far, the value is `null`. - -#### retryOperation.attempt(fn, timeoutOps) - -Defines the function `fn` that is to be retried and executes it for the first -time right away. The `fn` function can receive an optional `currentAttempt` callback that represents the number of attempts to execute `fn` so far. - -Optionally defines `timeoutOps` which is an object having a property `timeout` in miliseconds and a property `cb` callback function. -Whenever your retry operation takes longer than `timeout` to execute, the timeout callback function `cb` is called. - - -#### retryOperation.try(fn) - -This is an alias for `retryOperation.attempt(fn)`. This is deprecated. - -#### retryOperation.start(fn) - -This is an alias for `retryOperation.attempt(fn)`. This is deprecated. - -#### retryOperation.retry(error) - -Returns `false` when no `error` value is given, or the maximum amount of retries -has been reached. - -Otherwise it returns `true`, and retries the operation after the timeout for -the current attempt number. - -#### retryOperation.attempts() - -Returns an int representing the number of attempts it took to call `fn` before it was successful. - -## License - -retry is licensed under the MIT license. - - -#Changelog - -0.7.0 Some bugfixes and made retry.createTimeout() public. Fixed issues [#10](https://github.com/tim-kos/node-retry/issues/10), [#12](https://github.com/tim-kos/node-retry/issues/12), and [#13](https://github.com/tim-kos/node-retry/issues/13). - -0.6.0 Introduced optional timeOps parameter for the attempt() function which is an object having a property timeout in miliseconds and a property cb callback function. Whenever your retry operation takes longer than timeout to execute, the timeout callback function cb is called. - -0.5.0 Some minor refactorings. - -0.4.0 Changed retryOperation.try() to retryOperation.attempt(). Deprecated the aliases start() and try() for it. - -0.3.0 Added retryOperation.start() which is an alias for retryOperation.try(). - -0.2.0 Added attempts() function and parameter to retryOperation.try() representing the number of attempts it took to call fn(). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/equation.gif b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/equation.gif deleted file mode 100644 index 97107237..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/equation.gif and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/example/dns.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/example/dns.js deleted file mode 100644 index d6351e9d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/example/dns.js +++ /dev/null @@ -1,31 +0,0 @@ -var dns = require('dns'); -var retry = require('../lib/retry'); - -function faultTolerantResolve(address, cb) { - var opts = { - retries: 2, - factor: 2, - minTimeout: 1 * 1000, - maxTimeout: 2 * 1000, - randomize: true - }; - var operation = retry.operation(opts); - - operation.attempt(function(currentAttempt) { - dns.resolve(address, function(err, addresses) { - if (operation.retry(err)) { - return; - } - - cb(operation.mainError(), operation.errors(), addresses); - }); - }); -} - -faultTolerantResolve('nodejs.org', function(err, errors, addresses) { - console.warn('err:'); - console.log(err); - - console.warn('addresses:'); - console.log(addresses); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/index.js deleted file mode 100644 index ee62f3a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/retry'); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry.js deleted file mode 100644 index 94685652..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry.js +++ /dev/null @@ -1,94 +0,0 @@ -var RetryOperation = require('./retry_operation'); - -exports.operation = function(options) { - var retryForever = false; - if (options && options.forever === true) retryForever = true; - var timeouts = exports.timeouts(options); - return new RetryOperation(timeouts, retryForever); -}; - -exports.timeouts = function(options) { - if (options instanceof Array) { - return [].concat(options); - } - - var opts = { - retries: 10, - factor: 2, - minTimeout: 1 * 1000, - maxTimeout: Infinity, - randomize: false - }; - for (var key in options) { - opts[key] = options[key]; - } - - if (opts.minTimeout > opts.maxTimeout) { - throw new Error('minTimeout is greater than maxTimeout'); - } - - var timeouts = []; - for (var i = 0; i < opts.retries; i++) { - timeouts.push(this.createTimeout(i, opts)); - } - - // sort the array numerically ascending - timeouts.sort(function(a,b) { - return a - b; - }); - - return timeouts; -}; - -exports.createTimeout = function(attempt, opts) { - var random = (opts.randomize) - ? (Math.random() + 1) - : 1; - - var timeout = Math.round(random * opts.minTimeout * Math.pow(opts.factor, attempt)); - timeout = Math.min(timeout, opts.maxTimeout); - - return timeout; -}; - -exports.wrap = function(obj, options, methods) { - if (options instanceof Array) { - methods = options; - options = null; - } - - if (!methods) { - methods = []; - for (var key in obj) { - if (typeof obj[key] === 'function') { - methods.push(key); - } - } - } - - for (var i = 0; i < methods.length; i++) { - var method = methods[i]; - var original = obj[method]; - - obj[method] = function retryWrapper() { - var op = exports.operation(options); - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - - args.push(function(err) { - if (op.retry(err)) { - return; - } - if (err) { - arguments[0] = op.mainError(); - } - callback.apply(this, arguments); - }); - - op.attempt(function() { - original.apply(obj, args); - }); - }; - obj[method].options = options; - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js deleted file mode 100644 index 52b89554..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js +++ /dev/null @@ -1,120 +0,0 @@ -function RetryOperation(timeouts, retryForever) { - this._timeouts = timeouts; - this._fn = null; - this._errors = []; - this._attempts = 1; - this._operationTimeout = null; - this._operationTimeoutCb = null; - this._timeout = null; - - if (!!retryForever) { - this._cachedTimeouts = this._timeouts.slice(0); - } -} -module.exports = RetryOperation; - -RetryOperation.prototype.retry = function(err) { - if (this._timeout) { - clearTimeout(this._timeout); - } - - if (!err) { - return false; - } - - this._errors.push(err); - - var timeout = this._timeouts.shift(); - if (timeout === undefined) { - if (this._cachedTimeouts) { - // retry forever, only keep last error - this._errors.splice(this._errors.length - 1, this._errors.length); - this._timeouts = this._cachedTimeouts.slice(0); - timeout = this._timeouts.shift(); - } else { - return false; - } - } - - var self = this; - setTimeout(function() { - self._attempts++; - - if (self._operationTimeoutCb) { - self._timeout = setTimeout(function() { - self._operationTimeoutCb(self._attempts); - }, self._operationTimeout); - } - - self._fn(self._attempts); - }, timeout); - - return true; -}; - -RetryOperation.prototype.attempt = function(fn, timeoutOps) { - this._fn = fn; - - if (timeoutOps) { - if (timeoutOps.timeout) { - this._operationTimeout = timeoutOps.timeout; - } - if (timeoutOps.cb) { - this._operationTimeoutCb = timeoutOps.cb; - } - } - - var self = this; - if (this._operationTimeoutCb) { - this._timeout = setTimeout(function() { - self._operationTimeoutCb(); - }, self._operationTimeout); - } - - this._fn(this._attempts); -}; - -RetryOperation.prototype.try = function(fn) { - console.log('Using RetryOperation.try() is deprecated'); - this.attempt(fn); -}; - -RetryOperation.prototype.start = function(fn) { - console.log('Using RetryOperation.start() is deprecated'); - this.attempt(fn); -}; - -RetryOperation.prototype.start = RetryOperation.prototype.try; - -RetryOperation.prototype.errors = function() { - return this._errors; -}; - -RetryOperation.prototype.attempts = function() { - return this._attempts; -}; - -RetryOperation.prototype.mainError = function() { - if (this._errors.length === 0) { - return null; - } - - var counts = {}; - var mainError = null; - var mainErrorCount = 0; - - for (var i = 0; i < this._errors.length; i++) { - var error = this._errors[i]; - var message = error.message; - var count = (counts[message] || 0) + 1; - - counts[message] = count; - - if (count >= mainErrorCount) { - mainError = error; - mainErrorCount = count; - } - } - - return mainError; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/package.json deleted file mode 100644 index c274f9d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "_args": [ - [ - "retry@^0.8.0", - "/Users/rebecca/code/npm/node_modules/npm-registry-client" - ] - ], - "_from": "retry@>=0.8.0 <0.9.0", - "_id": "retry@0.8.0", - "_inCache": true, - "_installable": true, - "_location": "/npm-registry-client/retry", - "_nodeVersion": "0.10.33", - "_npmUser": { - "email": "tim@debuggable.com", - "name": "tim-kos" - }, - "_npmVersion": "2.1.7", - "_phantomChildren": {}, - "_requested": { - "name": "retry", - "raw": "retry@^0.8.0", - "rawSpec": "^0.8.0", - "scope": null, - "spec": ">=0.8.0 <0.9.0", - "type": "range" - }, - "_requiredBy": [ - "/npm-registry-client" - ], - "_resolved": "https://registry.npmjs.org/retry/-/retry-0.8.0.tgz", - "_shasum": "2367628dc0edb247b1eab649dc53ac8628ac2d5f", - "_shrinkwrap": null, - "_spec": "retry@^0.8.0", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client", - "author": { - "email": "tim@debuggable.com", - "name": "Tim Koschützki", - "url": "http://debuggable.com/" - }, - "bugs": { - "url": "https://github.com/tim-kos/node-retry/issues" - }, - "dependencies": {}, - "description": "Abstraction for exponential and custom retry strategies for failed operations.", - "devDependencies": { - "fake": "0.2.0", - "far": "0.0.1" - }, - "directories": { - "lib": "./lib" - }, - "dist": { - "shasum": "2367628dc0edb247b1eab649dc53ac8628ac2d5f", - "tarball": "http://registry.npmjs.org/retry/-/retry-0.8.0.tgz" - }, - "engines": { - "node": "*" - }, - "gitHead": "9446e803d6a41ae08732a4a215ae5bf1ff1ccfdd", - "homepage": "https://github.com/tim-kos/node-retry", - "license": "MIT", - "main": "index", - "maintainers": [ - { - "name": "tim-kos", - "email": "tim@debuggable.com" - } - ], - "name": "retry", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/tim-kos/node-retry.git" - }, - "scripts": {}, - "version": "0.8.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/common.js deleted file mode 100644 index 22472069..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/common.js +++ /dev/null @@ -1,10 +0,0 @@ -var common = module.exports; -var path = require('path'); - -var rootDir = path.join(__dirname, '..'); -common.dir = { - lib: rootDir + '/lib' -}; - -common.assert = require('assert'); -common.fake = require('fake'); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js deleted file mode 100644 index cecfa3b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js +++ /dev/null @@ -1,106 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var retry = require(common.dir.lib + '/retry'); - -(function testErrors() { - var operation = retry.operation(); - - var error = new Error('some error'); - var error2 = new Error('some other error'); - operation._errors.push(error); - operation._errors.push(error2); - - assert.deepEqual(operation.errors(), [error, error2]); -})(); - -(function testMainErrorReturnsMostFrequentError() { - var operation = retry.operation(); - var error = new Error('some error'); - var error2 = new Error('some other error'); - - operation._errors.push(error); - operation._errors.push(error2); - operation._errors.push(error); - - assert.strictEqual(operation.mainError(), error); -})(); - -(function testMainErrorReturnsLastErrorOnEqualCount() { - var operation = retry.operation(); - var error = new Error('some error'); - var error2 = new Error('some other error'); - - operation._errors.push(error); - operation._errors.push(error2); - - assert.strictEqual(operation.mainError(), error2); -})(); - -(function testAttempt() { - var operation = retry.operation(); - var fn = new Function(); - - var timeoutOpts = { - timeout: 1, - cb: function() {} - }; - operation.attempt(fn, timeoutOpts); - - assert.strictEqual(fn, operation._fn); - assert.strictEqual(timeoutOpts.timeout, operation._operationTimeout); - assert.strictEqual(timeoutOpts.cb, operation._operationTimeoutCb); -})(); - -(function testRetry() { - var times = 3; - var error = new Error('some error'); - var operation = retry.operation([1, 2, 3]); - var attempts = 0; - - var finalCallback = fake.callback('finalCallback'); - fake.expectAnytime(finalCallback); - - var fn = function() { - operation.attempt(function(currentAttempt) { - attempts++; - assert.equal(currentAttempt, attempts); - if (operation.retry(error)) { - return; - } - - assert.strictEqual(attempts, 4); - assert.strictEqual(operation.attempts(), attempts); - assert.strictEqual(operation.mainError(), error); - finalCallback(); - }); - }; - - fn(); -})(); - -(function testRetryForever() { - var error = new Error('some error'); - var operation = retry.operation({ retries: 3, forever: true }); - var attempts = 0; - - var finalCallback = fake.callback('finalCallback'); - fake.expectAnytime(finalCallback); - - var fn = function() { - operation.attempt(function(currentAttempt) { - attempts++; - assert.equal(currentAttempt, attempts); - if (attempts !== 6 && operation.retry(error)) { - return; - } - - assert.strictEqual(attempts, 6); - assert.strictEqual(operation.attempts(), attempts); - assert.strictEqual(operation.mainError(), error); - finalCallback(); - }); - }; - - fn(); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-wrap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-wrap.js deleted file mode 100644 index 7ca8bc7e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-wrap.js +++ /dev/null @@ -1,77 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var retry = require(common.dir.lib + '/retry'); - -function getLib() { - return { - fn1: function() {}, - fn2: function() {}, - fn3: function() {} - }; -} - -(function wrapAll() { - var lib = getLib(); - retry.wrap(lib); - assert.equal(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); -}()); - -(function wrapAllPassOptions() { - var lib = getLib(); - retry.wrap(lib, {retries: 2}); - assert.equal(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); - assert.equal(lib.fn1.options.retries, 2); - assert.equal(lib.fn2.options.retries, 2); - assert.equal(lib.fn3.options.retries, 2); -}()); - -(function wrapDefined() { - var lib = getLib(); - retry.wrap(lib, ['fn2', 'fn3']); - assert.notEqual(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); -}()); - -(function wrapDefinedAndPassOptions() { - var lib = getLib(); - retry.wrap(lib, {retries: 2}, ['fn2', 'fn3']); - assert.notEqual(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); - assert.equal(lib.fn2.options.retries, 2); - assert.equal(lib.fn3.options.retries, 2); -}()); - -(function runWrappedWithoutError() { - var callbackCalled; - var lib = {method: function(a, b, callback) { - assert.equal(a, 1); - assert.equal(b, 2); - assert.equal(typeof callback, 'function'); - callback(); - }}; - retry.wrap(lib); - lib.method(1, 2, function() { - callbackCalled = true; - }); - assert.ok(callbackCalled); -}()); - -(function runWrappedWithError() { - var callbackCalled; - var lib = {method: function(callback) { - callback(new Error('Some error')); - }}; - retry.wrap(lib, {retries: 1}); - lib.method(function(err) { - callbackCalled = true; - assert.ok(err instanceof Error); - }); - assert.ok(!callbackCalled); -}()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js deleted file mode 100644 index 7206b0fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js +++ /dev/null @@ -1,69 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var retry = require(common.dir.lib + '/retry'); - -(function testDefaultValues() { - var timeouts = retry.timeouts(); - - assert.equal(timeouts.length, 10); - assert.equal(timeouts[0], 1000); - assert.equal(timeouts[1], 2000); - assert.equal(timeouts[2], 4000); -})(); - -(function testDefaultValuesWithRandomize() { - var minTimeout = 5000; - var timeouts = retry.timeouts({ - minTimeout: minTimeout, - randomize: true - }); - - assert.equal(timeouts.length, 10); - assert.ok(timeouts[0] > minTimeout); - assert.ok(timeouts[1] > timeouts[0]); - assert.ok(timeouts[2] > timeouts[1]); -})(); - -(function testPassedTimeoutsAreUsed() { - var timeoutsArray = [1000, 2000, 3000]; - var timeouts = retry.timeouts(timeoutsArray); - assert.deepEqual(timeouts, timeoutsArray); - assert.notStrictEqual(timeouts, timeoutsArray); -})(); - -(function testTimeoutsAreWithinBoundaries() { - var minTimeout = 1000; - var maxTimeout = 10000; - var timeouts = retry.timeouts({ - minTimeout: minTimeout, - maxTimeout: maxTimeout - }); - for (var i = 0; i < timeouts; i++) { - assert.ok(timeouts[i] >= minTimeout); - assert.ok(timeouts[i] <= maxTimeout); - } -})(); - -(function testTimeoutsAreIncremental() { - var timeouts = retry.timeouts(); - var lastTimeout = timeouts[0]; - for (var i = 0; i < timeouts; i++) { - assert.ok(timeouts[i] > lastTimeout); - lastTimeout = timeouts[i]; - } -})(); - -(function testTimeoutsAreIncrementalForFactorsLessThanOne() { - var timeouts = retry.timeouts({ - retries: 3, - factor: 0.5 - }); - - var expected = [250, 500, 1000]; - assert.deepEqual(expected, timeouts); -})(); - -(function testRetries() { - var timeouts = retry.timeouts({retries: 2}); - assert.strictEqual(timeouts.length, 2); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/runner.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/runner.js deleted file mode 100644 index e0ee2f57..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/test/runner.js +++ /dev/null @@ -1,5 +0,0 @@ -var far = require('far').create(); - -far.add(__dirname); -far.include(/\/test-.*\.js$/); -far.execute(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/package.json deleted file mode 100644 index ca717a0b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/package.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "_args": [ - [ - "npm-registry-client@latest", - "/Users/rebecca/code/npm" - ] - ], - "_from": "npm-registry-client@latest", - "_id": "npm-registry-client@7.1.0", - "_inCache": true, - "_installable": true, - "_location": "/npm-registry-client", - "_nodeVersion": "5.4.0", - "_npmOperationalInternal": { - "host": "packages-5-east.internal.npmjs.com", - "tmp": "tmp/npm-registry-client-7.1.0.tgz_1456435497334_0.35472381697036326" - }, - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "3.7.5", - "_phantomChildren": { - "inherits": "2.0.1", - "readable-stream": "2.0.5" - }, - "_requested": { - "name": "npm-registry-client", - "raw": "npm-registry-client@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/" - ], - "_shasum": "e3be14ab279fe5123e15ab5c8a650445415664a5", - "_shrinkwrap": null, - "_spec": "npm-registry-client@latest", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/npm/npm-registry-client/issues" - }, - "dependencies": { - "chownr": "^1.0.1", - "concat-stream": "^1.4.6", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "normalize-package-data": "~1.0.1 || ^2.0.0", - "npm-package-arg": "^3.0.0 || ^4.0.0", - "npmlog": "~2.0.0", - "once": "^1.3.0", - "request": "^2.47.0", - "retry": "^0.8.0", - "rimraf": "2", - "semver": "2 >=2.2.1 || 3.x || 4 || 5", - "slide": "^1.1.3" - }, - "description": "Client for the npm registry", - "devDependencies": { - "negotiator": "^0.4.9", - "nock": "^0.56.0", - "readable-stream": "^2.0.2", - "standard": "^4.0.0", - "tap": "^1.2.0" - }, - "directories": {}, - "dist": { - "shasum": "e3be14ab279fe5123e15ab5c8a650445415664a5", - "tarball": "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.1.0.tgz" - }, - "gitHead": "d077cb652152a8c265369d9d169cba8a52239fb4", - "homepage": "https://github.com/npm/npm-registry-client#readme", - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "me@re-becca.org", - "name": "iarna" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "npm-registry-client", - "optionalDependencies": { - "npmlog": "~2.0.0" - }, - "readme": "ERROR: No README data found!", - "repository": { - "url": "git+https://github.com/npm/npm-registry-client.git" - }, - "scripts": { - "test": "standard && tap test/*.js" - }, - "version": "7.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/00-setup.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/00-setup.js deleted file mode 100644 index 747768fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/00-setup.js +++ /dev/null @@ -1,10 +0,0 @@ -var tap = require('tap') -var rimraf = require('rimraf') - -tap.test('setup', function (t) { - rimraf(__dirname + '/fixtures/cache', function (er) { - if (er) throw er - t.pass('cache cleaned') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/access.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/access.js deleted file mode 100644 index 78b00017..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/access.js +++ /dev/null @@ -1,370 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'http://localhost:1337' -var PARAMS = { - auth: { token: 'foo' }, - scope: 'myorg', - team: 'myteam', - package: '@foo/bar', - permissions: 'read-write' -} -var UNSCOPED = { - auth: { token: 'foo' }, - scope: 'myorg', - team: 'myteam', - package: 'bar', - permissions: 'read-write' -} - -var commands = [ - 'public', 'restricted', 'grant', 'revoke', 'ls-packages', 'ls-collaborators' -] - -test('access public', function (t) { - server.expect('POST', '/-/package/%40foo%2Fbar/access', function (req, res) { - t.equal(req.method, 'POST') - onJsonReq(req, function (json) { - t.deepEqual(json, { access: 'public' }) - res.statusCode = 200 - res.json({ accessChanged: true }) - }) - }) - var params = Object.create(PARAMS) - params.package = '@foo/bar' - client.access('public', URI, params, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('access restricted', function (t) { - server.expect('POST', '/-/package/%40foo%2Fbar/access', function (req, res) { - t.equal(req.method, 'POST') - onJsonReq(req, function (json) { - t.deepEqual(json, { access: 'restricted' }) - res.statusCode = 200 - res.json({ accessChanged: true }) - }) - }) - client.access('restricted', URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('access grant basic', function (t) { - server.expect('PUT', '/-/team/myorg/myteam/package', function (req, res) { - t.equal(req.method, 'PUT') - onJsonReq(req, function (json) { - t.deepEqual(json, { - permissions: PARAMS.permissions, - package: PARAMS.package - }) - res.statusCode = 201 - res.json({ accessChanged: true }) - }) - }) - client.access('grant', URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('access grant basic unscoped', function (t) { - server.expect('PUT', '/-/team/myorg/myteam/package', function (req, res) { - t.equal(req.method, 'PUT') - onJsonReq(req, function (json) { - t.deepEqual(json, { - permissions: UNSCOPED.permissions, - package: UNSCOPED.package - }) - res.statusCode = 201 - res.json({ accessChanged: true }) - }) - }) - client.access('grant', URI, UNSCOPED, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('access revoke basic', function (t) { - server.expect('DELETE', '/-/team/myorg/myteam/package', function (req, res) { - t.equal(req.method, 'DELETE') - onJsonReq(req, function (json) { - t.deepEqual(json, { - package: PARAMS.package - }) - res.statusCode = 200 - res.json({ accessChanged: true }) - }) - }) - client.access('revoke', URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('access revoke basic unscoped', function (t) { - server.expect('DELETE', '/-/team/myorg/myteam/package', function (req, res) { - t.equal(req.method, 'DELETE') - onJsonReq(req, function (json) { - t.deepEqual(json, { - package: UNSCOPED.package - }) - res.statusCode = 200 - res.json({ accessChanged: true }) - }) - }) - client.access('revoke', URI, UNSCOPED, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.accessChanged, 'access level set') - t.end() - }) -}) - -test('ls-packages on team', function (t) { - var serverPackages = { - '@foo/bar': 'write', - '@foo/util': 'read' - } - var clientPackages = { - '@foo/bar': 'read-write', - '@foo/util': 'read-only' - } - var uri = '/-/team/myorg/myteam/package?format=cli' - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverPackages) - }) - client.access('ls-packages', URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientPackages) - t.end() - }) -}) - -test('ls-packages on org', function (t) { - var serverPackages = { - '@foo/bar': 'write', - '@foo/util': 'read' - } - var clientPackages = { - '@foo/bar': 'read-write', - '@foo/util': 'read-only' - } - var uri = '/-/org/myorg/package?format=cli' - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverPackages) - }) - var params = Object.create(PARAMS) - params.team = null - client.access('ls-packages', URI, params, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientPackages) - t.end() - }) -}) - -test('ls-packages on user', function (t) { - var serverPackages = { - '@foo/bar': 'write', - '@foo/util': 'read' - } - var clientPackages = { - '@foo/bar': 'read-write', - '@foo/util': 'read-only' - } - var firstUri = '/-/org/myorg/package?format=cli' - server.expect('GET', firstUri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 404 - res.json({error: 'not found'}) - }) - var secondUri = '/-/user/myorg/package?format=cli' - server.expect('GET', secondUri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverPackages) - }) - var params = Object.create(PARAMS) - params.team = null - client.access('ls-packages', URI, params, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientPackages) - t.end() - }) -}) - -test('ls-collaborators', function (t) { - var serverCollaborators = { - 'myorg:myteam': 'write', - 'myorg:anotherteam': 'read' - } - var clientCollaborators = { - 'myorg:myteam': 'read-write', - 'myorg:anotherteam': 'read-only' - } - var uri = '/-/package/%40foo%2Fbar/collaborators?format=cli' - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverCollaborators) - }) - client.access('ls-collaborators', URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientCollaborators) - t.end() - }) -}) - -test('ls-collaborators w/scope', function (t) { - var serverCollaborators = { - 'myorg:myteam': 'write', - 'myorg:anotherteam': 'read' - } - var clientCollaborators = { - 'myorg:myteam': 'read-write', - 'myorg:anotherteam': 'read-only' - } - var uri = '/-/package/%40foo%2Fbar/collaborators?format=cli&user=zkat' - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverCollaborators) - }) - var params = Object.create(PARAMS) - params.user = 'zkat' - client.access('ls-collaborators', URI, params, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientCollaborators) - t.end() - }) -}) - -test('ls-collaborators w/o scope', function (t) { - var serverCollaborators = { - 'myorg:myteam': 'write', - 'myorg:anotherteam': 'read' - } - var clientCollaborators = { - 'myorg:myteam': 'read-write', - 'myorg:anotherteam': 'read-only' - } - var uri = '/-/package/bar/collaborators?format=cli&user=zkat' - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json(serverCollaborators) - }) - var params = Object.create(UNSCOPED) - params.user = 'zkat' - client.access('ls-collaborators', URI, params, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, clientCollaborators) - t.end() - }) -}) - -test('access command base validation', function (t) { - t.throws(function () { - client.access(undefined, URI, PARAMS, nop) - }, 'command is required') - t.throws(function () { - client.access('whoops', URI, PARAMS, nop) - }, 'command must be a valid subcommand') - commands.forEach(function (cmd) { - t.throws(function () { - client.access(cmd, undefined, PARAMS, nop) - }, 'registry URI is required') - t.throws(function () { - client.access(cmd, URI, undefined, nop) - }, 'params is required') - t.throws(function () { - client.access(cmd, URI, '', nop) - }, 'params must be an object') - t.throws(function () { - client.access(cmd, URI, {scope: 'o', team: 't'}, nop) - }, 'auth is required') - t.throws(function () { - client.access(cmd, URI, {auth: 5, scope: 'o', team: 't'}, nop) - }, 'auth must be an object') - t.throws(function () { - client.access(cmd, URI, PARAMS, {}) - }, 'callback must be a function') - t.throws(function () { - client.access(cmd, URI, PARAMS, undefined) - }, 'callback is required') - if (contains([ - 'public', 'restricted' - ], cmd)) { - t.throws(function () { - var params = Object.create(PARAMS) - params.package = null - client.access(cmd, URI, params, nop) - }, 'package is required') - t.throws(function () { - var params = Object.create(PARAMS) - params.package = 'underscore' - client.access(cmd, URI, params, nop) - }, 'only scoped packages are allowed') - } - if (contains(['grant', 'revoke', 'ls-packages'], cmd)) { - t.throws(function () { - var params = Object.create(PARAMS) - params.scope = null - client.access(cmd, URI, params, nop) - }, 'scope is required') - } - if (contains(['grant', 'revoke'], cmd)) { - t.throws(function () { - var params = Object.create(PARAMS) - params.team = null - client.access(cmd, URI, params, nop) - }, 'team is required') - } - if (cmd === 'grant') { - t.throws(function () { - var params = Object.create(PARAMS) - params.permissions = null - client.access(cmd, URI, params, nop) - }, 'permissions are required') - t.throws(function () { - var params = Object.create(PARAMS) - params.permissions = 'idkwhat' - client.access(cmd, URI, params, nop) - }, 'permissions must be either read-only or read-write') - } - }) - t.end() -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) - -function onJsonReq (req, cb) { - var buffer = '' - req.setEncoding('utf8') - req.on('data', function (data) { buffer += data }) - req.on('end', function () { cb(buffer ? JSON.parse(buffer) : undefined) }) -} - -function contains (arr, item) { - return arr.indexOf(item) !== -1 -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/adduser-new.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/adduser-new.js deleted file mode 100644 index a834841d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/adduser-new.js +++ /dev/null @@ -1,58 +0,0 @@ -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var password = '%1234@asdf%' -var username = 'username' -var email = 'i@izs.me' -var userdata = { - name: username, - email: email, - _id: 'org.couchdb.user:username', - type: 'user', - roles: [], - date: '2012-06-07T04:11:21.591Z' -} - -var SD = require('string_decoder').StringDecoder -var decoder = new SD() - -tap.test('create new user account', function (t) { - var auth = { - username: username, - password: password, - email: email - } - var params = { auth: auth } - - server.expect('/registry/_design/app/_rewrite/-/user/org.couchdb.user:username', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.on('data', function (d) { - b += decoder.write(d) - }) - - req.on('end', function () { - var o = JSON.parse(b) - userdata.password = password - userdata.date = o.date - t.deepEqual(o, userdata) - - res.statusCode = 201 - res.json(auth) - }) - }) - - client.adduser( - 'http://localhost:1337/registry/_design/app/_rewrite', - params, - function (er, data) { - if (er) throw er - t.deepEqual(data, auth, 'received expected auth data') - server.close() - t.end() - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/adduser-update.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/adduser-update.js deleted file mode 100644 index 03d5f468..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/adduser-update.js +++ /dev/null @@ -1,68 +0,0 @@ -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var password = '%1234@asdf%' -var username = 'username' -var email = 'i@izs.me' -var userdata = { - name: username, - email: email, - _id: 'org.couchdb.user:username', - type: 'user', - roles: [], - date: '2012-06-07T04:11:21.591Z' } -var SD = require('string_decoder').StringDecoder -var decoder = new SD() - -tap.test('update a user acct', function (t) { - var auth = { - username: username, - password: password, - email: email - } - var params = { auth: auth } - - server.expect('PUT', '/-/user/org.couchdb.user:username', function (req, res) { - t.equal(req.method, 'PUT') - res.statusCode = 409 - res.json({error: 'conflict'}) - }) - - server.expect('GET', '/-/user/org.couchdb.user:username?write=true', function (req, res) { - t.equal(req.method, 'GET') - res.json(userdata) - }) - - server.expect('PUT', '/-/user/org.couchdb.user:username/-rev/' + userdata._rev, function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.on('data', function (d) { - b += decoder.write(d) - }) - - req.on('end', function () { - var o = JSON.parse(b) - userdata.password = password - userdata.date = o.date - t.deepEqual(o, userdata) - - res.statusCode = 201 - res.json(auth) - }) - }) - - client.adduser( - 'http://localhost:1337/', - params, - function (er, data) { - if (er) throw er - t.deepEqual(data, auth, 'got expected auth data') - server.close() - t.end() - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/adduser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/adduser.js deleted file mode 100644 index 10816ebf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/adduser.js +++ /dev/null @@ -1,162 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var USERNAME = 'username' -var PASSWORD = 'password' -var EMAIL = 'n@p.m' -var AUTH = { - auth: { - username: USERNAME, - password: PASSWORD, - email: EMAIL - } -} - -test('adduser call contract', function (t) { - t.throws(function () { - client.adduser(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.adduser([], AUTH, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.adduser(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.adduser(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.adduser(URI, AUTH, undefined) - }, 'requires callback') - - t.throws(function () { - client.adduser(URI, AUTH, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - auth: { - password: PASSWORD, - email: EMAIL - } - } - client.adduser(URI, params, nop) - }, - { name: 'AssertionError', message: 'must include username in auth' }, - 'auth must include username' - ) - - t.throws( - function () { - var params = { - auth: { - username: USERNAME, - email: EMAIL - } - } - client.adduser(URI, params, nop) - }, - { name: 'AssertionError', message: 'must include password in auth' }, - 'auth must include password' - ) - - t.throws( - function () { - var params = { - auth: { - username: USERNAME, - password: PASSWORD - } - } - client.adduser(URI, params, nop) - }, - { name: 'AssertionError', message: 'must include email in auth' }, - 'auth must include email' - ) - - t.test('username missing', function (t) { - var params = { - auth: { - username: '', - password: PASSWORD, - email: EMAIL - } - } - client.adduser(URI, params, function (err) { - t.equal(err && err.message, 'No username supplied.', 'username must not be empty') - t.end() - }) - }) - - t.test('password missing', function (t) { - var params = { - auth: { - username: USERNAME, - password: '', - email: EMAIL - } - } - client.adduser(URI, params, function (err) { - t.equal( - err && err.message, - 'No password supplied.', - 'password must not be empty' - ) - t.end() - }) - }) - - t.test('email missing', function (t) { - var params = { - auth: { - username: USERNAME, - password: PASSWORD, - email: '' - } - } - client.adduser(URI, params, function (err) { - t.equal( - err && err.message, - 'No email address supplied.', - 'email must not be empty' - ) - t.end() - }) - }) - - t.test('email malformed', function (t) { - var params = { - auth: { - username: USERNAME, - password: PASSWORD, - email: 'lolbutts' - } - } - client.adduser(URI, params, function (err) { - t.equal( - err && err.message, - 'Please use a real email address.', - 'email must look like email' - ) - t.end() - }) - }) - - t.end() -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/config-defaults.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/config-defaults.js deleted file mode 100644 index a432da85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/config-defaults.js +++ /dev/null @@ -1,42 +0,0 @@ -var test = require('tap').test - -require('./lib/server.js').close() -var common = require('./lib/common.js') - -test('config defaults', function (t) { - var client = common.freshClient() - - var proxy = client.config.proxy - t.notOk(proxy.http, 'no default value for HTTP proxy') - t.notOk(proxy.https, 'no default value for HTTPS proxy') - t.notOk(proxy.localAddress, 'no default value for local address') - - var ssl = client.config.ssl - t.notOk(ssl.ca, 'no default value for SSL certificate authority bundle') - t.notOk(ssl.certificate, 'no default value for SSL client certificate') - t.notOk(ssl.key, 'no default value for SSL client certificate key') - t.equal(ssl.strict, true, 'SSL is strict by default') - - var retry = client.config.retry - t.equal(retry.retries, 2, 'default retry count is 2') - t.equal(retry.factor, 10, 'default retry factor is 10') - t.equal(retry.minTimeout, 10000, 'retry minimum timeout is 10000 (10 seconds)') - t.equal(retry.maxTimeout, 60000, 'retry maximum timeout is 60000 (60 seconds)') - - t.equal(client.config.userAgent, 'node/' + process.version, 'default userAgent') - t.ok(client.log.info, "there's a default logger") - t.equal(client.config.defaultTag, 'latest', 'default tag is "latest"') - t.notOk(client.config.couchToken, 'no couchToken by default') - t.notOk(client.config.sessionToken, 'no sessionToken by default') - - t.end() -}) - -test('missing HTTPS proxy defaults to HTTP proxy', function (t) { - var client = common.freshClient({ proxy: { http: 'http://proxy.npm:8088/' }}) - - t.equal(client.config.proxy.http, 'http://proxy.npm:8088/', 'HTTP proxy set') - t.equal(client.config.proxy.http, client.config.proxy.https, 'HTTP === HTTPS') - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/config-override.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/config-override.js deleted file mode 100644 index 026cb199..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/config-override.js +++ /dev/null @@ -1,57 +0,0 @@ -var test = require('tap').test - -require('./lib/server.js').close() -var common = require('./lib/common.js') -var config = { - proxy: { - http: 'http://proxy.npm:8088/', - https: 'https://proxy.npm:8043/', - localAddress: 'localhost.localdomain' - }, - ssl: { - ca: 'not including a PEM', - certificate: 'still not including a PEM', - key: 'nope', - strict: false - }, - retry: { - count: 1, - factor: 9001, - minTimeout: -1, - maxTimeout: Infinity - }, - userAgent: 'npm-awesome/4 (Mozilla 5.0)', - log: { fake: function () {} }, - defaultTag: 'next', - couchToken: { object: true }, - sessionToken: 'hamchunx' -} - -test('config defaults', function (t) { - var client = common.freshClient(config) - - var proxy = client.config.proxy - t.equal(proxy.http, 'http://proxy.npm:8088/') - t.equal(proxy.https, 'https://proxy.npm:8043/') - t.equal(proxy.localAddress, 'localhost.localdomain') - - var ssl = client.config.ssl - t.equal(ssl.ca, 'not including a PEM') - t.equal(ssl.certificate, 'still not including a PEM') - t.equal(ssl.key, 'nope') - t.equal(ssl.strict, false) - - var retry = client.config.retry - t.equal(retry.count, 1) - t.equal(retry.factor, 9001) - t.equal(retry.minTimeout, -1) - t.equal(retry.maxTimeout, Infinity) - - t.equal(client.config.userAgent, 'npm-awesome/4 (Mozilla 5.0)') - t.ok(client.log.fake) - t.equal(client.config.defaultTag, 'next') - t.ok(client.config.couchToken.object) - t.equal(client.config.sessionToken, 'hamchunx') - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/deprecate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/deprecate.js deleted file mode 100644 index 4407d7c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/deprecate.js +++ /dev/null @@ -1,216 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var cache = require('./fixtures/underscore/cache.json') - -var client = common.freshClient() - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var VERSION = '1.3.2' -var MESSAGE = 'uhhh' -var TOKEN = 'lolbutts' -var AUTH = { - token: TOKEN -} -var PARAMS = { - version: VERSION, - message: MESSAGE, - auth: AUTH -} - -test('deprecate call contract', function (t) { - t.throws(function () { - client.deprecate(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.deprecate([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.deprecate(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.deprecate(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.deprecate(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.deprecate(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - message: MESSAGE, - auth: AUTH - } - client.deprecate(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass version to deprecate' }, - 'params must include version to deprecate' - ) - - t.throws( - function () { - var params = { - version: VERSION, - auth: AUTH - } - client.deprecate(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass message to deprecate' }, - 'params must include deprecation message' - ) - - t.throws( - function () { - var params = { - version: VERSION, - message: MESSAGE - } - client.deprecate(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to deprecate' }, - 'params must include auth' - ) - - t.test('malformed semver in deprecation', function (t) { - var params = { - version: '-9001', - message: MESSAGE, - auth: AUTH - } - client.deprecate(URI, params, function (err) { - t.equal( - err && err.message, - 'invalid version range: -9001', - 'got expected semver validation failure' - ) - t.end() - }) - }) - - t.end() -}) - -test('deprecate a package', function (t) { - server.expect('GET', '/underscore?write=true', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('PUT', '/underscore', function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - - var undeprecated = [ - '1.0.3', '1.0.4', '1.1.0', '1.1.1', '1.1.2', '1.1.3', '1.1.4', '1.1.5', '1.1.6', - '1.1.7', '1.2.0', '1.2.1', '1.2.2', '1.2.3', '1.2.4', '1.3.0', '1.3.1', '1.3.3' - ] - for (var i = 0; i < undeprecated.length; i++) { - var current = undeprecated[i] - t.notEqual( - updated.versions[current].deprecated, - MESSAGE, - current + ' not deprecated' - ) - } - - t.equal( - updated.versions[VERSION].deprecated, - MESSAGE, - VERSION + ' deprecated' - ) - res.statusCode = 201 - res.json({ deprecated: true }) - }) - }) - - client.deprecate( - common.registry + '/underscore', - PARAMS, - function (er, data) { - t.ifError(er) - t.ok(data.deprecated, 'was deprecated') - - t.end() - } - ) -}) - -test('deprecate a scoped package', function (t) { - server.expect('GET', '/@test%2funderscore?write=true', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('PUT', '/@test%2funderscore', function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - - var undeprecated = [ - '1.0.3', '1.0.4', '1.1.0', '1.1.1', '1.1.2', '1.1.3', '1.1.4', '1.1.5', '1.1.6', - '1.1.7', '1.2.0', '1.2.1', '1.2.2', '1.2.3', '1.2.4', '1.3.0', '1.3.1', '1.3.3' - ] - for (var i = 0; i < undeprecated.length; i++) { - var current = undeprecated[i] - t.notEqual( - updated.versions[current].deprecated, - MESSAGE, - current + ' not deprecated' - ) - } - - t.equal( - updated.versions[VERSION].deprecated, - MESSAGE, - VERSION + ' deprecated' - ) - res.statusCode = 201 - res.json({ deprecated: true }) - }) - }) - - client.deprecate( - common.registry + '/@test%2funderscore', - PARAMS, - function (er, data) { - t.ifError(er) - t.ok(data.deprecated, 'was deprecated') - - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - t.ok(true) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-add.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-add.js deleted file mode 100644 index 00f43b0f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-add.js +++ /dev/null @@ -1,142 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var BASE_URL = 'http://localhost:1337/' -var URI = '/-/package/underscore/dist-tags/test' -var TOKEN = 'foo' -var AUTH = { - token: TOKEN -} -var PACKAGE = 'underscore' -var DIST_TAG = 'test' -var VERSION = '3.1.3' -var PARAMS = { - 'package': PACKAGE, - distTag: DIST_TAG, - version: VERSION, - auth: AUTH -} - -test('distTags.add call contract', function (t) { - t.throws(function () { - client.distTags.add(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.distTags.add([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.distTags.add(BASE_URL, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.distTags.add(BASE_URL, '', nop) - }, 'params must be object') - - t.throws(function () { - client.distTags.add(BASE_URL, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.distTags.add(BASE_URL, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - distTag: DIST_TAG, - version: VERSION, - auth: AUTH - } - client.distTags.add(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package name to distTags.add' - }, - 'distTags.add must include package name' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - version: VERSION, - auth: AUTH - } - client.distTags.add(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package distTag name to distTags.add' - }, - 'distTags.add must include dist-tag' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - distTag: DIST_TAG, - auth: AUTH - } - client.distTags.add(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass version to be mapped to distTag to distTags.add' - }, - 'distTags.add must include version' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - distTag: DIST_TAG, - version: VERSION - } - client.distTags.add(BASE_URL, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to distTags.add' }, - 'distTags.add must include auth' - ) - - t.end() -}) - -test('add a new dist-tag to a package', function (t) { - server.expect('PUT', URI, function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - t.doesNotThrow(function () { - var parsed = JSON.parse(b) - t.deepEqual(parsed, VERSION) - - res.statusCode = 200 - res.json({ test: VERSION }) - }, 'got valid JSON from client') - }) - }) - - client.distTags.add(BASE_URL, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.test, 'dist-tag added') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-fetch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-fetch.js deleted file mode 100644 index cde338cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-fetch.js +++ /dev/null @@ -1,99 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var BASE_URL = 'http://localhost:1337/' -var URI = '/-/package/underscore/dist-tags' -var TOKEN = 'foo' -var AUTH = { - token: TOKEN -} -var PACKAGE = 'underscore' -var PARAMS = { - 'package': PACKAGE, - auth: AUTH -} - -test('distTags.fetch call contract', function (t) { - t.throws(function () { - client.distTags.fetch(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.distTags.fetch([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.distTags.fetch(BASE_URL, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.distTags.fetch(BASE_URL, '', nop) - }, 'params must be object') - - t.throws(function () { - client.distTags.fetch(BASE_URL, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.distTags.fetch(BASE_URL, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - auth: AUTH - } - client.distTags.fetch(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package name to distTags.fetch' - }, - 'distTags.fetch must include package name' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE - } - client.distTags.fetch(BASE_URL, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to distTags.fetch' }, - 'distTags.fetch must include auth' - ) - - t.end() -}) - -test('fetch dist-tags for a package', function (t) { - server.expect('GET', URI, function (req, res) { - t.equal(req.method, 'GET') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - t.notOk(b, 'no request body') - - res.statusCode = 200 - res.json({ a: '1.0.0', b: '2.0.0', _etag: 'xxx' }) - }) - }) - - client.distTags.fetch(BASE_URL, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.same(data, { a: '1.0.0', b: '2.0.0' }, 'etag filtered from response') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-rm.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-rm.js deleted file mode 100644 index 2076eb93..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-rm.js +++ /dev/null @@ -1,118 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var BASE_URL = 'http://localhost:1337/' -var URI = '/-/package/underscore/dist-tags/test' -var TOKEN = 'foo' -var AUTH = { - token: TOKEN -} -var PACKAGE = 'underscore' -var DIST_TAG = 'test' -var PARAMS = { - 'package': PACKAGE, - distTag: DIST_TAG, - auth: AUTH -} - -test('distTags.rm call contract', function (t) { - t.throws(function () { - client.distTags.rm(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.distTags.rm([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.distTags.rm(BASE_URL, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.distTags.rm(BASE_URL, '', nop) - }, 'params must be object') - - t.throws(function () { - client.distTags.rm(BASE_URL, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.distTags.rm(BASE_URL, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - distTag: DIST_TAG, - auth: AUTH - } - client.distTags.rm(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package name to distTags.rm' - }, - 'distTags.rm must include package name' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - auth: AUTH - } - client.distTags.rm(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package distTag name to distTags.rm' - }, - 'distTags.rm must include dist-tag' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - distTag: DIST_TAG - } - client.distTags.rm(BASE_URL, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to distTags.rm' }, - 'distTags.rm must include auth' - ) - - t.end() -}) - -test('remove a dist-tag from a package', function (t) { - server.expect('DELETE', URI, function (req, res) { - t.equal(req.method, 'DELETE') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - t.notOk(b, 'got no message body') - - res.statusCode = 200 - res.json({}) - }) - }) - - client.distTags.rm(BASE_URL, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.notOk(data.test, 'dist-tag removed') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-set.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-set.js deleted file mode 100644 index cb595f6d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-set.js +++ /dev/null @@ -1,122 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var BASE_URL = 'http://localhost:1337/' -var URI = '/-/package/underscore/dist-tags' -var TOKEN = 'foo' -var AUTH = { - token: TOKEN -} -var PACKAGE = 'underscore' -var DIST_TAGS = { - 'a': '8.0.8', - 'b': '3.0.3' -} -var PARAMS = { - 'package': PACKAGE, - distTags: DIST_TAGS, - auth: AUTH -} - -test('distTags.set call contract', function (t) { - t.throws(function () { - client.distTags.set(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.distTags.set([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.distTags.set(BASE_URL, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.distTags.set(BASE_URL, '', nop) - }, 'params must be object') - - t.throws(function () { - client.distTags.set(BASE_URL, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.distTags.set(BASE_URL, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - distTags: DIST_TAGS, - auth: AUTH - } - client.distTags.set(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package name to distTags.set' - }, - 'distTags.set must include package name' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - auth: AUTH - } - client.distTags.set(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass distTags map to distTags.set' - }, - 'distTags.set must include dist-tags' - ) - - t.throws( - function () { - var params = { - 'package': PACKAGE, - distTags: DIST_TAGS - } - client.distTags.set(BASE_URL, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to distTags.set' }, - 'distTags.set must include auth' - ) - - t.end() -}) - -test('set dist-tags for a package', function (t) { - server.expect('PUT', URI, function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var d = JSON.parse(b) - t.deepEqual(d, DIST_TAGS, 'got back tags') - - res.statusCode = 200 - res.json(DIST_TAGS) - }) - }) - - client.distTags.set(BASE_URL, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.a && data.b, 'dist-tags set') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-update.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-update.js deleted file mode 100644 index 37508fc0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-update.js +++ /dev/null @@ -1,113 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var BASE_URL = 'http://localhost:1337/' -var URI = '/-/package/underscore/dist-tags' -var TOKEN = 'foo' -var AUTH = { - token: TOKEN -} -var PACKAGE = 'underscore' -var DIST_TAGS = { - 'a': '8.0.8', - 'b': '3.0.3' -} -var PARAMS = { - 'package': PACKAGE, - distTags: DIST_TAGS, - auth: AUTH -} - -test('distTags.update call contract', function (t) { - t.throws(function () { - client.distTags.update(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.distTags.update([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.distTags.update(BASE_URL, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.distTags.update(BASE_URL, '', nop) - }, 'params must be object') - - t.throws(function () { - client.distTags.update(BASE_URL, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.distTags.update(BASE_URL, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { distTags: DIST_TAGS, auth: AUTH } - client.distTags.update(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass package name to distTags.update' - }, - 'distTags.update must include package name' - ) - - t.throws( - function () { - var params = { 'package': PACKAGE, auth: AUTH } - client.distTags.update(BASE_URL, params, nop) - }, - { - name: 'AssertionError', - message: 'must pass distTags map to distTags.update' - }, - 'distTags.update must include dist-tags' - ) - - t.throws( - function () { - var params = { 'package': PACKAGE, distTags: DIST_TAGS } - client.distTags.update(BASE_URL, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to distTags.update' }, - 'distTags.update must include auth' - ) - - t.end() -}) - -test('update dist-tags for a package', function (t) { - server.expect('POST', URI, function (req, res) { - t.equal(req.method, 'POST') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var d = JSON.parse(b) - t.deepEqual(d, DIST_TAGS, 'got back tags') - - res.statusCode = 200 - res.json(DIST_TAGS) - }) - }) - - client.distTags.update(BASE_URL, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.a && data.b, 'dist-tags set') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-404.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-404.js deleted file mode 100644 index fa400cd5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-404.js +++ /dev/null @@ -1,35 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream - -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test('fetch with a 404 response', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(404) - - createReadStream(tgz).pipe(res) - }) - - var client = common.freshClient() - var defaulted = {} - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - defaulted, - function (err, res) { - t.equal( - err.message, - 'fetch failed with status code 404', - 'got expected error message' - ) - server.close() - t.end() - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-408.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-408.js deleted file mode 100644 index 422376ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-408.js +++ /dev/null @@ -1,54 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var tap = require('tap') -var cat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test('fetch with retry on timeout', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(408) - res.end() - }) - - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(200, { - 'content-type': 'application/x-tar', - 'content-encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var client = common.freshClient() - var defaulted = {} - client.config.retry.minTimeout = 100 - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - defaulted, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = cat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-503.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-503.js deleted file mode 100644 index 6dff1155..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-503.js +++ /dev/null @@ -1,54 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var tap = require('tap') -var cat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test('fetch with retry on server error', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(503) - res.end() - }) - - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(200, { - 'content-type': 'application/x-tar', - 'content-encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var client = common.freshClient() - var defaulted = {} - client.config.retry.minTimeout = 100 - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - defaulted, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = cat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-authed.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-authed.js deleted file mode 100644 index d516deb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-authed.js +++ /dev/null @@ -1,58 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var tap = require('tap') -var cat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test('basic fetch with scoped always-auth enabled', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - t.equal( - req.headers.authorization, - 'Basic dXNlcm5hbWU6JTEyMzRAYXNkZiU=', - 'got expected auth header' - ) - - res.writeHead(200, { - 'content-type': 'application/x-tar', - 'content-encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'i@izs.me', - alwaysAuth: true - } - - var client = common.freshClient() - var authed = { auth: auth } - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - authed, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = cat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-basic.js deleted file mode 100644 index 31ad17ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-basic.js +++ /dev/null @@ -1,93 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var test = require('tap').test -var concat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var USERNAME = 'username' -var PASSWORD = 'hi' -var EMAIL = 'n@p.m' -var HEADERS = { - 'npm-custom': 'lolbutts' -} -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - headers: HEADERS, - auth: AUTH -} - -test('fetch call contract', function (t) { - t.throws(function () { - client.get(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.get([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.get(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.get(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.get(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.get(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.end() -}) - -test('basic fetch', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(200, { - 'content-type': 'application/x-tar', - 'content-encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var defaulted = {} - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - defaulted, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = concat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-github-api-json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-github-api-json.js deleted file mode 100644 index 688c91d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-github-api-json.js +++ /dev/null @@ -1,68 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var tap = require('tap') -var cat = require('concat-stream') -var Negotiator = require('negotiator') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test("fetch accepts github api's json", function (t) { - server.expect('/underscore/-/underscore-1.3.3', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - var negotiator = new Negotiator(req) - - // fetching a tarball from `api.github.com` returns a 415 error if json is - // not accepted - if (negotiator.mediaTypes().indexOf('application/vnd.github+json') === -1) { - res.writeHead(415, { - 'Content-Type': 'application/json' - }) - } else { - res.writeHead(302, { - 'Content-Type': 'text/html', - 'Location': '/underscore/-/underscore-1.3.3.tgz' - }) - } - - res.end() - }) - - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(200, { - 'Content-Type': 'application/x-tar', - 'Content-Encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var client = common.freshClient() - var defaulted = {} - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3', - defaulted, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = cat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-not-authed.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-not-authed.js deleted file mode 100644 index 6a397cc5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/fetch-not-authed.js +++ /dev/null @@ -1,54 +0,0 @@ -var resolve = require('path').resolve -var createReadStream = require('graceful-fs').createReadStream -var readFileSync = require('graceful-fs').readFileSync - -var tap = require('tap') -var cat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var tgz = resolve(__dirname, './fixtures/underscore/1.3.3/package.tgz') - -tap.test('basic fetch with scoped always-auth disabled', function (t) { - server.expect('/underscore/-/underscore-1.3.3.tgz', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - t.notOk(req.headers.authorization, 'received no auth header') - - res.writeHead(200, { - 'content-type': 'application/x-tar', - 'content-encoding': 'gzip' - }) - - createReadStream(tgz).pipe(res) - }) - - var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'i@izs.me', - alwaysAuth: false - } - - var client = common.freshClient() - var authed = { auth: auth } - client.fetch( - 'http://localhost:1337/underscore/-/underscore-1.3.3.tgz', - authed, - function (er, res) { - t.ifError(er, 'loaded successfully') - - var sink = cat(function (data) { - t.deepEqual(data, readFileSync(tgz)) - server.close() - t.end() - }) - - res.on('error', function (error) { - t.ifError(error, 'no errors on stream') - }) - - res.pipe(sink) - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/get-403.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/get-403.js deleted file mode 100644 index 004de207..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/get-403.js +++ /dev/null @@ -1,30 +0,0 @@ -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -tap.test('get returns 403', function (t) { - server.expect('/underscore', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(403) - res.end(JSON.stringify({ - error: 'get that cat out of the toilet that\'s gross omg' - })) - }) - - var client = common.freshClient() - client.get( - 'http://localhost:1337/underscore', - {}, - function (er) { - t.ok(er, 'failed as expected') - - t.equal(er.statusCode, 403, 'status code was attached to error as expected') - t.equal(er.code, 'E403', 'error code was formatted as expected') - - server.close() - t.end() - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/get-basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/get-basic.js deleted file mode 100644 index 031309c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/get-basic.js +++ /dev/null @@ -1,85 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var us = require('./fixtures/underscore/1.3.3/cache.json') -var usroot = require('./fixtures/underscore/cache.json') - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var TIMEOUT = 3600 -var FOLLOW = false -var STALE_OK = true -var TOKEN = 'lolbutts' -var AUTH = { - token: TOKEN -} -var PARAMS = { - timeout: TIMEOUT, - follow: FOLLOW, - staleOk: STALE_OK, - auth: AUTH -} - -test('get call contract', function (t) { - t.throws(function () { - client.get(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.get([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.get(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.get(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.get(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.get(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.end() -}) - -test('basic request', function (t) { - server.expect('/underscore/1.3.3', function (req, res) { - res.json(us) - }) - - server.expect('/underscore', function (req, res) { - res.json(usroot) - }) - - server.expect('/@bigco%2funderscore', function (req, res) { - res.json(usroot) - }) - - t.plan(3) - client.get('http://localhost:1337/underscore/1.3.3', PARAMS, function (er, data) { - t.deepEqual(data, us) - }) - - client.get('http://localhost:1337/underscore', PARAMS, function (er, data) { - t.deepEqual(data, usroot) - }) - - client.get('http://localhost:1337/@bigco%2funderscore', PARAMS, function (er, data) { - t.deepEqual(data, usroot) - }) -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/get-error-403.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/get-error-403.js deleted file mode 100644 index 73ef4361..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/get-error-403.js +++ /dev/null @@ -1,34 +0,0 @@ -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -tap.test('get fails with 403', function (t) { - server.expect('/habanero', function (req, res) { - t.equal(req.method, 'GET', 'got expected method') - - res.writeHead(403) - res.end('{"error":"get that cat out of the toilet that\'s gross omg"}') - }) - - var client = common.freshClient() - client.config.retry.minTimeout = 100 - client.get( - 'http://localhost:1337/habanero', - {}, - function (er) { - t.ok(er, 'failed as expected') - - t.equal(er.statusCode, 403, 'status code was attached as expected') - t.equal(er.code, 'E403', 'error code was formatted as expected') - t.equal( - er.message, - 'get that cat out of the toilet that\'s gross omg : habanero', - 'got error message' - ) - - server.close() - t.end() - } - ) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/initialize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/initialize.js deleted file mode 100644 index 3856b67b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/initialize.js +++ /dev/null @@ -1,125 +0,0 @@ -var test = require('tap').test -var url = require('url') - -// var server = require('./lib/server.js') -var Client = require('../') - -test('defaulted initialization', function (t) { - var client = new Client() - var options = client.initialize( - 'http://localhost:1337/', - 'GET', - 'application/json', - {} - ) - - t.equal(options.url, 'http://localhost:1337/', 'URLs match') - t.equal(options.method, 'GET', 'methods match') - t.equal(options.proxy, undefined, "proxy won't overwrite environment") - t.equal(options.localAddress, undefined, 'localAddress has no default value') - t.equal(options.strictSSL, true, 'SSL is strict by default') - - t.equal(options.headers.accept, 'application/json', 'accept header set') - t.equal( - options.headers.version, - require('../package.json').version, - 'npm-registry-client version is present in headers' - ) - t.ok(options.headers['npm-session'], 'request ID generated') - t.ok(options.headers['user-agent'], 'user-agent preset') - - var HttpAgent = require('http').Agent - t.ok(options.agent instanceof HttpAgent, 'got an HTTP agent for an HTTP URL') - t.equal(options.agent.maxSockets, 50, 'maxSockets set to a reasonable default') - - t.end() -}) - -test('intializing with maxSockets set works for http', function (t) { - var client = new Client({ maxSockets: Infinity }) - var options = client.initialize( - url.parse('http://localhost:1337/'), - 'GET', - 'application/json', - {} - ) - - var HttpAgent = require('http').Agent - t.ok(options.agent instanceof HttpAgent, 'got an HTTP agent for an HTTP URL') - t.equal(options.agent.maxSockets, Infinity, 'request uses configured value for maxSockets') - - t.end() -}) - -test('intializing with maxSockets set works for https', function (t) { - var client = new Client({ maxSockets: Infinity }) - var options = client.initialize( - url.parse('https://localhost:1337/'), - 'GET', - 'application/json', - {} - ) - - var HttpsAgent = require('https').Agent - t.ok(options.agent instanceof HttpsAgent, 'got an HTTPS agent for an HTTPS URL') - t.equal(options.agent.maxSockets, Infinity, 'request uses configured value for maxSockets') - - t.end() -}) - -test('referer set on client', function (t) { - var client = new Client() - client.refer = 'xtestx' - var options = client.initialize( - 'http://localhost:1337/', - 'GET', - 'application/json', - {} - ) - - t.equal(options.headers.referer, 'xtestx', 'referer header set') - - t.end() -}) - -test('initializing with proxy explicitly disabled', function (t) { - var client = new Client({ proxy: { http: false }}) - var options = client.initialize( - 'http://localhost:1337/', - 'GET', - 'application/json', - {} - ) - t.ok('proxy' in options, 'proxy overridden by explicitly setting to false') - t.equal(options.proxy, null, 'request will override proxy when empty proxy passed in') - t.end() -}) - -test('initializing with proxy undefined', function (t) { - var client = new Client({ proxy: { http: undefined }}) - var options = client.initialize( - 'http://localhost:1337/', - 'GET', - 'application/json', - {} - ) - t.notOk('proxy' in options, 'proxy can be read from env.PROXY by request') - t.end() -}) - -test('initializing with a certificate should map down to the https agent', function (t) { - var certificate = '-----BEGIN CERTIFICATE----- TEST\nTEST -----END CERTIFICATE-----\n' - var client = new Client({ - ssl: { - certificate: certificate - } - }) - var options = client.initialize( - { protocol: 'https:' }, - 'GET', - 'application/json', - {} - ) - t.equal(options.agent.options.cert, certificate, 'certificate will be saved properly on agent') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/lib/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/lib/common.js deleted file mode 100644 index 78e543f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/lib/common.js +++ /dev/null @@ -1,23 +0,0 @@ -var server = require('./server.js') -var RC = require('../../') -var REGISTRY = 'http://localhost:' + server.port - -// cheesy hackaround for test deps (read: nock) that rely on setImmediate -if (!global.setImmediate || !require('timers').setImmediate) { - require('timers').setImmediate = global.setImmediate = function () { - var args = [arguments[0], 0].concat([].slice.call(arguments, 1)) - setTimeout.apply(this, args) - } -} - -module.exports = { - port: server.port, - registry: REGISTRY, - freshClient: function freshClient (config) { - var client = new RC(config) - server.log = client.log - client.log.level = 'silent' - - return client - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/lib/server.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/lib/server.js deleted file mode 100644 index 06bebdc1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/lib/server.js +++ /dev/null @@ -1,60 +0,0 @@ -// a fake registry server. - -var http = require('http') -var server = http.createServer(handler) -var port = server.port = process.env.PORT || 1337 -var assert = require('assert') -server.listen(port) - -module.exports = server - -server._expect = {} - -function handler (req, res) { - req.connection.setTimeout(1000) - - // If we got authorization, make sure it's the right password. - if (req.headers.authorization && req.headers.authorization.match(/^Basic/)) { - var auth = req.headers.authorization.replace(/^Basic /, '') - auth = new Buffer(auth, 'base64').toString('utf8') - assert.equal(auth, 'username:%1234@asdf%') - } - - var u = '* ' + req.url - var mu = req.method + ' ' + req.url - - var k = server._expect[mu] ? mu : server._expect[u] ? u : null - if (!k) throw Error('unexpected request: ' + req.method + ' ' + req.url) - - var fn = server._expect[k].shift() - if (!fn) throw Error('unexpected request: ' + req.method + ' ' + req.url) - - this.log.info('fake-registry', Object.keys(server._expect).map(function (k) { - return [k, server._expect[k].length] - }).reduce(function (acc, kv) { - acc[kv[0]] = kv[1] - return acc - }, {})) - - res.json = json - fn(req, res) -} - -function json (o) { - this.setHeader('content-type', 'application/json') - this.end(JSON.stringify(o)) -} - -// this log is meanto to be overridden -server.log = require('npmlog') - -server.expect = function (method, u, fn) { - if (typeof u === 'function') { - fn = u - u = method - method = '*' - } - u = method + ' ' + u - server._expect[u] = server._expect[u] || [] - server._expect[u].push(fn) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/logout.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/logout.js deleted file mode 100644 index 7836d805..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/logout.js +++ /dev/null @@ -1,74 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'http://localhost:1337/rewrite' -var TOKEN = 'b00b00feed' -var PARAMS = { - auth: { - token: TOKEN - } -} - -test('logout call contract', function (t) { - t.throws(function () { - client.logout(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.logout([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.logout(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.logout(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.logout(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.logout(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - auth: {} - } - client.logout(URI, params, nop) - }, - { name: 'AssertionError', message: 'can only log out for token auth' }, - 'auth must include token' - ) - - t.end() -}) - -test('log out from a token-based registry', function (t) { - server.expect('DELETE', '/-/user/token/' + TOKEN, function (req, res) { - t.equal(req.method, 'DELETE') - t.equal(req.headers.authorization, 'Bearer ' + TOKEN, 'request is authed') - - res.json({message: 'ok'}) - }) - - client.logout(URI, PARAMS, function (er) { - t.ifError(er, 'no errors') - - t.end() - }) -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/ping.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/ping.js deleted file mode 100644 index 1b30b905..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/ping.js +++ /dev/null @@ -1,76 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var TOKEN = 'not-bad-meaning-bad-but-bad-meaning-wombat' -var AUTH = { token: TOKEN } -var PARAMS = { auth: AUTH } -var DEP_USER = 'username' -var HOST = 'localhost' - -test('ping call contract', function (t) { - t.throws(function () { - client.ping(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.ping([], AUTH, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.ping(common.registry, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.ping(common.registry, '', nop) - }, 'params must be object') - - t.throws(function () { - client.ping(common.registry, AUTH, undefined) - }, 'requires callback') - - t.throws(function () { - client.ping(common.registry, AUTH, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = {} - client.ping(common.registry, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to ping' }, - 'must pass auth to ping' - ) - - t.end() -}) - -test('ping', function (t) { - server.expect('GET', '/-/ping?write=true', function (req, res) { - t.equal(req.method, 'GET') - res.statusCode = 200 - res.json({ - ok: true, - host: HOST, - peer: HOST, - username: DEP_USER - }) - }) - - client.ping(common.registry, PARAMS, function (error, found) { - t.ifError(error, 'no errors') - var wanted = { - ok: true, - host: HOST, - peer: HOST, - username: DEP_USER - } - t.same(found, wanted) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-again-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-again-scoped.js deleted file mode 100644 index 611a852c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-again-scoped.js +++ /dev/null @@ -1,91 +0,0 @@ -var tap = require('tap') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'i@izs.me', - alwaysAuth: true -} - -var client = common.freshClient() - -tap.test('publish again', function (t) { - // not really a tarball, but doesn't matter - var bodyPath = require.resolve('../package.json') - var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath) - var pkg = require('../package.json') - var lastTime = null - - server.expect('/@npm%2fnpm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = lastTime = JSON.parse(b) - t.equal(o._id, '@npm/npm-registry-client') - t.equal(o['dist-tags'].latest, pkg.version) - t.has(o.versions[pkg.version], pkg) - t.same(o.maintainers, [ { name: 'username', email: 'i@izs.me' } ]) - var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd.toString('base64')) - res.statusCode = 409 - res.json({reason: 'must supply latest _rev to update existing package'}) - }) - }) - - server.expect('/@npm%2fnpm-registry-client?write=true', function (req, res) { - t.equal(req.method, 'GET') - t.ok(lastTime) - for (var i in lastTime.versions) { - var v = lastTime.versions[i] - delete lastTime.versions[i] - lastTime.versions['0.0.2'] = v - lastTime['dist-tags'] = { latest: '0.0.2' } - } - lastTime._rev = 'asdf' - res.json(lastTime) - }) - - server.expect('/@npm%2fnpm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - t.ok(lastTime) - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._rev, 'asdf') - t.deepEqual(o.versions['0.0.2'], o.versions[pkg.version]) - res.statusCode = 201 - res.json({created: true}) - }) - }) - - pkg.name = '@npm/npm-registry-client' - - var params = { - metadata: pkg, - access: 'restricted', - body: tarball, - auth: auth - } - client.publish('http://localhost:1337/', params, function (er, data) { - if (er) throw er - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-again.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-again.js deleted file mode 100644 index 4a895205..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-again.js +++ /dev/null @@ -1,89 +0,0 @@ -var tap = require('tap') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'i@izs.me', - alwaysAuth: true -} - -var client = common.freshClient() - -tap.test('publish again', function (t) { - // not really a tarball, but doesn't matter - var bodyPath = require.resolve('../package.json') - var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath) - var pkg = require('../package.json') - var lastTime = null - - server.expect('/npm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = lastTime = JSON.parse(b) - t.equal(o._id, 'npm-registry-client') - t.equal(o['dist-tags'].latest, pkg.version) - t.has(o.versions[pkg.version], pkg) - t.same(o.maintainers, [ { name: 'username', email: 'i@izs.me' } ]) - var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd.toString('base64')) - res.statusCode = 409 - res.json({reason: 'must supply latest _rev to update existing package'}) - }) - }) - - server.expect('/npm-registry-client?write=true', function (req, res) { - t.equal(req.method, 'GET') - t.ok(lastTime) - for (var i in lastTime.versions) { - var v = lastTime.versions[i] - delete lastTime.versions[i] - lastTime.versions['0.0.2'] = v - lastTime['dist-tags'] = { latest: '0.0.2' } - } - lastTime._rev = 'asdf' - res.json(lastTime) - }) - - server.expect('/npm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - t.ok(lastTime) - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._rev, 'asdf') - t.deepEqual(o.versions['0.0.2'], o.versions[pkg.version]) - res.statusCode = 201 - res.json({created: true}) - }) - }) - - var params = { - metadata: pkg, - access: 'public', - body: tarball, - auth: auth - } - client.publish('http://localhost:1337/', params, function (er, data) { - if (er) throw er - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-failed-no-message.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-failed-no-message.js deleted file mode 100644 index d2641e85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-failed-no-message.js +++ /dev/null @@ -1,44 +0,0 @@ -var createReadStream = require('fs').createReadStream - -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var config = { retry: { retries: 0 } } -var client = common.freshClient(config) - -var URI = 'http://localhost:1337/' -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var METADATA = require('../package.json') -var ACCESS = 'public' -// not really a tarball, but doesn't matter -var BODY_PATH = require.resolve('../package.json') -var BODY = createReadStream(BODY_PATH) -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - metadata: METADATA, - access: ACCESS, - body: BODY, - auth: AUTH -} - -test('publish with a 500 response but no message', function (t) { - server.expect('/npm-registry-client', function (req, res) { - res.statusCode = 500 - res.json({ success: false }) - }) - - client.publish(URI, PARAMS, function (er, data) { - t.ok(er, 'got expected error') - t.notOk(data, 'no payload on failure') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-mixcase-name.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-mixcase-name.js deleted file mode 100644 index 5f2c44e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-mixcase-name.js +++ /dev/null @@ -1,92 +0,0 @@ -var tap = require('tap') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'i@izs.me', - alwaysAuth: true -} - -var client = common.freshClient() - -tap.test('publish mixcase name', function (t) { - // not really a tarball, but doesn't matter - var bodyPath = require.resolve('../package.json') - var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath) - var pkg = require('../package.json') - var lastTime = null - - // change to mixed case name - pkg.name = 'npm-Registry-Client' - - server.expect('/npm-Registry-Client', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = lastTime = JSON.parse(b) - t.equal(o._id, 'npm-Registry-Client') - t.equal(o['dist-tags'].latest, pkg.version) - t.has(o.versions[pkg.version], pkg) - t.same(o.maintainers, [ { name: 'username', email: 'i@izs.me' } ]) - var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd.toString('base64')) - res.statusCode = 409 - res.json({reason: 'must supply latest _rev to update existing package'}) - }) - }) - - server.expect('/npm-Registry-Client?write=true', function (req, res) { - t.equal(req.method, 'GET') - t.ok(lastTime) - for (var i in lastTime.versions) { - var v = lastTime.versions[i] - delete lastTime.versions[i] - lastTime.versions['0.0.2'] = v - lastTime['dist-tags'] = { latest: '0.0.2' } - } - lastTime._rev = 'asdf' - res.json(lastTime) - }) - - server.expect('/npm-Registry-Client', function (req, res) { - t.equal(req.method, 'PUT') - t.ok(lastTime) - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._rev, 'asdf') - t.deepEqual(o.versions['0.0.2'], o.versions[pkg.version]) - res.statusCode = 201 - res.json({created: true}) - }) - }) - - var params = { - metadata: pkg, - access: 'public', - body: tarball, - auth: auth - } - client.publish('http://localhost:1337/', params, function (er, data) { - if (er) throw er - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-new-mixcase-name.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-new-mixcase-name.js deleted file mode 100644 index e3e8ed23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-new-mixcase-name.js +++ /dev/null @@ -1,73 +0,0 @@ -var test = require('tap').test -var crypto = require('crypto') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var URI = 'http://localhost:1337/' -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var METADATA = require('../package.json') -var ACCESS = 'public' -// not really a tarball, but doesn't matter -var BODY_PATH = require.resolve('../package.json') -var BODY = fs.createReadStream(BODY_PATH) -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - metadata: METADATA, - access: ACCESS, - body: BODY, - auth: AUTH -} - -test('publish-new-mixcase-name', function (t) { - var pd = fs.readFileSync(BODY_PATH) - - // change to mixed-case name - METADATA.name = 'npm-Registry-Client' - - server.expect('/npm-Registry-Client', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._id, 'npm-Registry-Client') - t.equal(o['dist-tags'].latest, METADATA.version) - t.equal(o.access, ACCESS) - t.has(o.versions[METADATA.version], METADATA) - t.same(o.maintainers, [{ name: 'username', email: 'i@izs.me' }]) - t.same(o.maintainers, o.versions[METADATA.version].maintainers) - - var att = o._attachments[METADATA.name + '-' + METADATA.version + '.tgz'] - t.same(att.data, pd.toString('base64')) - - var hash = crypto.createHash('sha1').update(pd).digest('hex') - t.equal(o.versions[METADATA.version].dist.shasum, hash) - - res.statusCode = 403 - res.json({error: 'Name must be lower-case'}) - }) - }) - - client.publish(URI, PARAMS, function (er, data, json, res) { - t.assert(er instanceof Error) // expect error - - // TODO: need a test that ensures useful error message - // t.similar(data.error, /must be lower-case/) - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-scoped-auth-token.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-scoped-auth-token.js deleted file mode 100644 index a9c5768e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-scoped-auth-token.js +++ /dev/null @@ -1,57 +0,0 @@ -var tap = require('tap') -var crypto = require('crypto') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var auth = { token: 'of-glad-tidings' } - -var client = common.freshClient() - -tap.test('publish', function (t) { - // not really a tarball, but doesn't matter - var bodyPath = require.resolve('../package.json') - var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath) - var pkg = require('../package.json') - pkg.name = '@npm/npm-registry-client' - - server.expect('/@npm%2fnpm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - t.equal(req.headers.authorization, 'Bearer of-glad-tidings') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._id, '@npm/npm-registry-client') - t.equal(o['dist-tags'].latest, pkg.version) - t.has(o.versions[pkg.version], pkg) - t.same(o.maintainers, o.versions[pkg.version].maintainers) - var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd.toString('base64')) - var hash = crypto.createHash('sha1').update(pd).digest('hex') - t.equal(o.versions[pkg.version].dist.shasum, hash) - res.statusCode = 201 - res.json({ created: true }) - }) - }) - - var params = { - metadata: pkg, - access: 'restricted', - body: tarball, - auth: auth - } - client.publish(common.registry, params, function (er, data) { - if (er) throw er - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-scoped.js deleted file mode 100644 index 347364ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish-scoped.js +++ /dev/null @@ -1,64 +0,0 @@ -var tap = require('tap') -var crypto = require('crypto') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') - -var auth = { - username: 'username', - password: '%1234@asdf%', - email: 'ogd@aoaioxxysz.net' -} - -var client = common.freshClient() - -var _auth = new Buffer('username:%1234@asdf%').toString('base64') - -tap.test('publish', function (t) { - // not really a tarball, but doesn't matter - var bodyPath = require.resolve('../package.json') - var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath) - var pkg = require('../package.json') - pkg.name = '@npm/npm-registry-client' - - server.expect('/@npm%2fnpm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - t.equal(req.headers.authorization, 'Basic ' + _auth) - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._id, '@npm/npm-registry-client') - t.equal(o['dist-tags'].latest, pkg.version) - t.has(o.versions[pkg.version], pkg) - t.same(o.maintainers, [ { name: 'username', email: 'ogd@aoaioxxysz.net' } ]) - t.same(o.maintainers, o.versions[pkg.version].maintainers) - var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd.toString('base64')) - var hash = crypto.createHash('sha1').update(pd).digest('hex') - t.equal(o.versions[pkg.version].dist.shasum, hash) - res.statusCode = 201 - res.json({ created: true }) - }) - }) - - var params = { - metadata: pkg, - access: 'restricted', - body: tarball, - auth: auth - } - client.publish(common.registry, params, function (er, data) { - if (er) throw er - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish.js deleted file mode 100644 index 07c8bb46..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/publish.js +++ /dev/null @@ -1,204 +0,0 @@ -var test = require('tap').test -var crypto = require('crypto') -var fs = require('fs') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'http://localhost:1337/' -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var METADATA = require('../package.json') -var ACCESS = 'public' -// not really a tarball, but doesn't matter -var BODY_PATH = require.resolve('../package.json') -var BODY = fs.createReadStream(BODY_PATH) -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - metadata: METADATA, - access: ACCESS, - body: BODY, - auth: AUTH -} - -test('publish call contract', function (t) { - t.throws(function () { - client.publish(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.publish([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.publish(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.publish(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.publish(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.publish(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - access: ACCESS, - body: BODY, - auth: AUTH - } - client.publish(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass package metadata to publish' }, - 'params must include metadata for package' - ) - - t.throws( - function () { - var params = { - metadata: METADATA, - access: ACCESS, - auth: AUTH - } - client.publish(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass package body to publish' }, - 'params must include body of package to publish' - ) - - t.throws( - function () { - var params = { - metadata: METADATA, - access: ACCESS, - body: BODY - } - client.publish(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to publish' }, - 'params must include auth' - ) - - t.throws( - function () { - var params = { - metadata: -1, - access: ACCESS, - body: BODY, - auth: AUTH - } - client.publish(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass package metadata to publish' }, - 'metadata must be object' - ) - - t.throws( - function () { - var params = { - metadata: METADATA, - access: 'hamchunx', - body: BODY, - auth: AUTH - } - client.publish(URI, params, nop) - }, - { - name: 'AssertionError', - message: "if present, access level must be either 'public' or 'restricted'" - }, - "access level must be 'public' or 'restricted'" - ) - - t.throws( - function () { - var params = { - metadata: METADATA, - access: ACCESS, - body: -1, - auth: AUTH - } - client.publish(URI, params, nop) - }, - { - name: 'AssertionError', - message: 'package body passed to publish must be a stream' - }, - 'body must be a Stream' - ) - - t.test('malformed semver in publish', function (t) { - var metadata = JSON.parse(JSON.stringify(METADATA)) - metadata.version = '%!@#$' - var params = { - metadata: metadata, - access: ACCESS, - message: BODY, - auth: AUTH - } - client.publish(URI, params, function (err) { - t.equal( - err && err.message, - 'invalid semver: %!@#$', - 'got expected semver validation failure' - ) - t.end() - }) - }) - - t.end() -}) - -test('publish', function (t) { - var pd = fs.readFileSync(BODY_PATH) - - server.expect('/npm-registry-client', function (req, res) { - t.equal(req.method, 'PUT') - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var o = JSON.parse(b) - t.equal(o._id, 'npm-registry-client') - t.equal(o['dist-tags'].latest, METADATA.version) - t.equal(o.access, ACCESS) - t.has(o.versions[METADATA.version], METADATA) - t.same(o.maintainers, [{ name: 'username', email: 'i@izs.me' }]) - t.same(o.maintainers, o.versions[METADATA.version].maintainers) - - var att = o._attachments[METADATA.name + '-' + METADATA.version + '.tgz'] - t.same(att.data, pd.toString('base64')) - - var hash = crypto.createHash('sha1').update(pd).digest('hex') - t.equal(o.versions[METADATA.version].dist.shasum, hash) - - res.statusCode = 201 - res.json({ created: true }) - }) - }) - - client.publish(URI, PARAMS, function (er, data) { - if (er) throw er - - t.deepEqual(data, { created: true }) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/redirects.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/redirects.js deleted file mode 100644 index 2da56576..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/redirects.js +++ /dev/null @@ -1,56 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var pkg = { - _id: 'some-package@1.2.3', - name: 'some-package', - version: '1.2.3' -} - -test('basic request', function (t) { - // Expect one request for { follow : false } - server.expect('/-/some-package/1.2.3', function (req, res) { - res.writeHead(301, { - 'Location': '/some-package/1.2.3' - }) - res.end('Redirecting') - }) - - // Expect 2 requests for { follow : true } - server.expect('/-/some-package/1.2.3', function (req, res) { - res.writeHead(301, { - 'Location': '/some-package/1.2.3' - }) - res.end('Redirecting') - }) - - server.expect('/some-package/1.2.3', function (req, res) { - res.json(pkg) - }) - - t.plan(2) - - client.get( - 'http://localhost:1337/-/some-package/1.2.3', - { follow: false }, - function (er) { - t.ok(er, 'Error must be set') - } - ) - - client.get( - 'http://localhost:1337/-/some-package/1.2.3', - { follow: true }, - function (er, data) { - t.deepEqual(data, pkg) - } - ) -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/request-gzip-content.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/request-gzip-content.js deleted file mode 100644 index 5e25214f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/request-gzip-content.js +++ /dev/null @@ -1,61 +0,0 @@ -var zlib = require('zlib') -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient({ - retry: { - count: 1, - minTimeout: 10, - maxTimeout: 100 - } -}) - -var TEST_URL = common.registry + '/some-package-gzip/1.2.3' - -var pkg = { - _id: 'some-package-gzip@1.2.3', - name: 'some-package-gzip', - version: '1.2.3' -} - -zlib.gzip(JSON.stringify(pkg), function (err, pkgGzip) { - test('request gzip package content', function (t) { - t.ifError(err, 'example package compressed') - - server.expect('GET', '/some-package-gzip/1.2.3', function (req, res) { - res.statusCode = 200 - res.setHeader('Content-Encoding', 'gzip') - res.setHeader('Content-Type', 'application/json') - res.end(pkgGzip) - }) - - client.get(TEST_URL, {}, function (er, data) { - if (er) throw er - t.deepEqual(data, pkg, 'some-package-gzip version 1.2.3') - t.end() - }) - }) - - test('request wrong gzip package content', function (t) { - // will retry 3 times - for (var i = 0; i < 3; i++) { - server.expect('GET', '/some-package-gzip/1.2.3', function (req, res) { - res.statusCode = 200 - res.setHeader('Content-Encoding', 'gzip') - res.setHeader('Content-Type', 'application/json') - res.end(new Buffer('wrong gzip content')) - }) - } - - client.get(TEST_URL, {}, function (er) { - t.ok(er, 'ungzip error') - t.end() - }) - }) - - test('cleanup', function (t) { - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/request.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/request.js deleted file mode 100644 index ed02f197..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/request.js +++ /dev/null @@ -1,317 +0,0 @@ -var Readable = require('readable-stream').Readable -var inherits = require('util').inherits - -var test = require('tap').test -var concat = require('concat-stream') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function OneA () { - Readable.call(this) - this.push('A') - this.push(null) -} -inherits(OneA, Readable) - -function nop () {} - -var URI = 'http://localhost:1337/' -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { auth: AUTH } - -test('request call contract', function (t) { - t.throws( - function () { - client.request(undefined, PARAMS, nop) - }, - { name: 'AssertionError', message: 'must pass uri to request' }, - 'requires a URI' - ) - - t.throws( - function () { - client.request([], PARAMS, nop) - }, - { name: 'AssertionError', message: 'must pass uri to request' }, - 'requires URI to be a string' - ) - - t.throws( - function () { - client.request(URI, undefined, nop) - }, - { name: 'AssertionError', message: 'must pass params to request' }, - 'requires params object' - ) - - t.throws( - function () { - client.request(URI, '', nop) - }, - { name: 'AssertionError', message: 'must pass params to request' }, - 'params must be object' - ) - - t.throws( - function () { - client.request(URI, PARAMS, undefined) - }, - { name: 'AssertionError', message: 'must pass callback to request' }, - 'requires callback' - ) - - t.throws( - function () { - client.request(URI, PARAMS, 'callback') - }, - { name: 'AssertionError', message: 'must pass callback to request' }, - 'callback must be function' - ) - - t.end() -}) - -test('run request through its paces', function (t) { - t.plan(34) - - server.expect('/request-defaults', function (req, res) { - t.equal(req.method, 'GET', 'uses GET by default') - - req.pipe(concat(function (d) { - t.notOk(d.toString('utf7'), 'no data included in request') - - res.statusCode = 200 - res.json({ fetched: 'defaults' }) - })) - }) - - server.expect('/last-modified', function (req, res) { - t.equal(req.headers['if-modified-since'], 'test-last-modified', - 'got test if-modified-since') - - res.statusCode = 200 - res.json({ fetched: 'last-modified' }) - }) - - server.expect('/etag', function (req, res) { - t.equal(req.headers['if-none-match'], 'test-etag', 'got test etag') - - res.statusCode = 200 - res.json({ fetched: 'etag' }) - }) - - server.expect('POST', '/etag-post', function (req, res) { - t.equal(req.headers['if-match'], 'post-etag', 'got test post etag') - - res.statusCode = 200 - res.json({ posted: 'etag' }) - }) - - server.expect('PUT', '/body-stream', function (req, res) { - req.pipe(concat(function (d) { - t.equal(d.toString('utf8'), 'A', 'streamed expected data') - - res.statusCode = 200 - res.json({ put: 'stream' }) - })) - }) - - server.expect('PUT', '/body-buffer', function (req, res) { - req.pipe(concat(function (d) { - t.equal(d.toString('utf8'), 'hi', 'streamed expected data') - - res.statusCode = 200 - res.json({ put: 'buffer' }) - })) - }) - - server.expect('PUT', '/body-string', function (req, res) { - req.pipe(concat(function (d) { - t.equal(d.toString('utf8'), 'erp', 'streamed expected data') - - res.statusCode = 200 - res.json({ put: 'string' }) - })) - }) - - server.expect('PUT', '/body-object', function (req, res) { - req.pipe(concat(function (d) { - t.equal(d.toString('utf8'), '["tricky"]', 'streamed expected data') - - res.statusCode = 200 - res.json({ put: 'object' }) - })) - }) - - server.expect('GET', '/body-error-string', function (req, res) { - req.pipe(concat(function () { - res.statusCode = 200 - res.json({ error: 'not really an error', reason: 'unknown' }) - })) - }) - - server.expect('GET', '/body-error-object', function (req, res) { - req.pipe(concat(function () { - res.statusCode = 200 - res.json({ error: {} }) - })) - }) - - server.expect('GET', '/@scoped%2Fpackage-failing', function (req, res) { - req.pipe(concat(function () { - res.statusCode = 402 - res.json({ error: 'payment required' }) - })) - }) - - server.expect('GET', '/not-found-no-body', function (req, res) { - req.pipe(concat(function () { - res.statusCode = 404 - res.end() - })) - }) - - var defaults = {} - client.request( - common.registry + '/request-defaults', - defaults, - function (er, data, raw, response) { - t.ifError(er, 'call worked') - t.deepEquals(data, { fetched: 'defaults' }, 'confirmed defaults work') - t.equal(response.headers.connection, 'keep-alive', 'keep-alive set') - } - ) - - var lastModified = { lastModified: 'test-last-modified' } - client.request(common.registry + '/last-modified', lastModified, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { fetched: 'last-modified' }, 'last-modified request sent') - }) - - var etagged = { etag: 'test-etag' } - client.request(common.registry + '/etag', etagged, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { fetched: 'etag' }, 'etag request sent') - }) - - var postEtagged = { - method: 'post', - etag: 'post-etag' - } - client.request(common.registry + '/etag-post', postEtagged, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { posted: 'etag' }, 'POST etag request sent') - }) - - var putStream = { - method: 'PUT', - body: new OneA(), - auth: AUTH - } - client.request(common.registry + '/body-stream', putStream, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { put: 'stream' }, 'PUT request with stream sent') - }) - - var putBuffer = { - method: 'PUT', - body: new Buffer('hi'), - auth: AUTH - } - client.request(common.registry + '/body-buffer', putBuffer, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { put: 'buffer' }, 'PUT request with buffer sent') - }) - - var putString = { - method: 'PUT', - body: 'erp', - auth: AUTH - } - client.request(common.registry + '/body-string', putString, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { put: 'string' }, 'PUT request with string sent') - }) - - var putObject = { - method: 'PUT', - body: { toJSON: function () { return ['tricky'] } }, - auth: AUTH - } - client.request(common.registry + '/body-object', putObject, function (er, data) { - t.ifError(er, 'call worked') - t.deepEquals(data, { put: 'object' }, 'PUT request with object sent') - }) - - client.request(common.registry + '/body-error-string', defaults, function (er) { - t.equal( - er && er.message, - 'not really an error unknown: body-error-string', - 'call worked' - ) - }) - - client.request(common.registry + '/body-error-object', defaults, function (er) { - t.ifError(er, 'call worked') - }) - - client.request(common.registry + '/@scoped%2Fpackage-failing', defaults, function (er) { - t.equals(er.message, 'payment required : @scoped/package-failing') - }) - - client.request(common.registry + '/not-found-no-body', defaults, function (er) { - t.equals(er.message, '404 Not Found') - t.equals(er.statusCode, 404, 'got back 404 as .statusCode') - t.equals(er.code, 'E404', 'got back expected string code') - t.notOk(er.pkgid, "no package name returned when there's no body on response") - t.ok(typeof er !== 'string', "Error shouldn't be returned as string.") - }) -}) - -test('outputs notice if npm-notice header is set', function (t) { - var client = common.freshClient({ - log: { - error: noop, - warn: function (prefix, msg) { - warnings.push(msg) - }, - info: noop, - verbose: noop, - silly: noop, - http: noop, - pause: noop, - resume: noop - } - }) - var message = 'notice me!' - var warnings = [] - - function noop () {} - - server.expect('GET', '/npm-notice', function (req, res) { - req.pipe(concat(function () { - res.statusCode = 200 - res.setHeader('npm-notice', message) - res.end() - })) - }) - - client.request(common.registry + '/npm-notice', {}, function (er) { - t.notEqual(warnings.indexOf(message), -1, 'notice not printed') - t.end() - }) -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/retries.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/retries.js deleted file mode 100644 index a75cbf7e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/retries.js +++ /dev/null @@ -1,52 +0,0 @@ -var tap = require('tap') - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient({ - retry: { - retries: 6, - minTimeout: 10, - maxTimeout: 100 - } -}) - -var pkg = { - _id: 'some-package@1.2.3', - name: 'some-package', - version: '1.2.3' -} - -tap.test('create new user account', function (t) { - // first time, return a 408 - server.expect('GET', '/some-package/1.2.3', function (req, res) { - res.statusCode = 408 - res.end('Timeout') - }) - // then, slam the door in their face - server.expect('GET', '/some-package/1.2.3', function (req, res) { - res.destroy() - }) - // then, blame someone else - server.expect('GET', '/some-package/1.2.3', function (req, res) { - res.statusCode = 502 - res.end('Gateway Timeout') - }) - // 'No one's home right now, come back later' - server.expect('GET', '/some-package/1.2.3', function (req, res) { - res.statusCode = 503 - res.setHeader('retry-after', '10') - res.end('Come back later') - }) - // finally, you may enter. - server.expect('GET', '/some-package/1.2.3', function (req, res) { - res.statusCode = 200 - res.json(pkg) - }) - - client.get('http://localhost:1337/some-package/1.2.3', {}, function (er, data) { - if (er) throw er - t.deepEqual(data, pkg) - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/star.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/star.js deleted file mode 100644 index e9e60266..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/star.js +++ /dev/null @@ -1,176 +0,0 @@ -var test = require('tap').test -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() -var cache = require('./fixtures/underscore/cache.json') -var nock = require('nock') - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var STARRED = true -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - starred: STARRED, - auth: AUTH -} - -test('star call contract', function (t) { - t.throws(function () { - client.star(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.star([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.star(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.star(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.star(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.star(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { starred: STARRED } - client.star(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to star' }, - 'params must include auth' - ) - - t.end() -}) - -test('star a package', function (t) { - server.expect('GET', '/underscore?write=true', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('PUT', '/underscore', function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - - var already = [ - 'vesln', 'mvolkmann', 'lancehunt', 'mikl', 'linus', 'vasc', 'bat', - 'dmalam', 'mbrevoort', 'danielr', 'rsimoes', 'thlorenz' - ] - for (var i = 0; i < already.length; i++) { - var current = already[i] - t.ok( - updated.users[current], - current + ' still likes this package' - ) - } - t.ok(updated.users[USERNAME], 'user is in the starred list') - - res.statusCode = 201 - res.json({ starred: true }) - }) - }) - - var params = { starred: STARRED, auth: AUTH } - - client.star('http://localhost:1337/underscore', params, function (er, data) { - t.ifError(er, 'no errors') - t.ok(data.starred, 'was starred') - - t.end() - }) -}) - -test('if password auth, only sets authorization on put', function (t) { - var starGet = nock('http://localhost:1010') - .get('/underscore?write=true') - .reply(200, {}) - - var starPut = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Basic ' + new Buffer(AUTH.username + ':' + - AUTH.password).toString('base64') - } - }) - .put('/underscore') - .reply(200) - - var params = { starred: STARRED, auth: AUTH } - - client.star('http://localhost:1010/underscore', params, function (er) { - t.ifError(er, 'starred without issues') - starGet.done() - starPut.done() - t.end() - }) -}) - -test('if token auth, sets bearer on get and put', function (t) { - var starGet = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Bearer foo' - } - }) - .get('/underscore?write=true') - .reply(200, {}) - - var getUser = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Bearer foo' - } - }) - .get('/-/whoami') - .reply(200, { username: 'bcoe' }) - - var starPut = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Bearer foo' - } - }) - .put('/underscore') - .reply(200) - - var params = { - starred: STARRED, - auth: { - token: 'foo' - } - } - client.star('http://localhost:1010/underscore', params, function (er) { - t.ifError(er, 'starred without error') - starGet.done() - starPut.done() - getUser.done() - t.end() - }) -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/stars.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/stars.js deleted file mode 100644 index a5e713c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/stars.js +++ /dev/null @@ -1,81 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var USERNAME = 'sample' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - username: USERNAME, - auth: AUTH -} -var USERS = [ - 'benjamincoe', - 'seldo', - 'ceejbot' -] - -test('stars call contract', function (t) { - t.throws(function () { - client.stars(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - client.stars([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.stars(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.stars(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.stars(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - client.stars(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.test('no username anywhere', function (t) { - var params = {} - client.stars(URI, params, function (err) { - t.equal( - err && err.message, - 'must pass either username or auth to stars', - 'username must not be empty') - t.end() - }) - }) - - t.end() -}) - -test('get the stars for a package', function (t) { - server.expect('GET', '/-/_view/starredByUser?key=%22sample%22', function (req, res) { - t.equal(req.method, 'GET') - - res.json(USERS) - }) - - client.stars('http://localhost:1337/', PARAMS, function (er, info) { - t.ifError(er, 'no errors') - t.deepEqual(info, USERS, 'got the list of users') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/tag.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/tag.js deleted file mode 100644 index e10490ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/tag.js +++ /dev/null @@ -1,108 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'http://localhost:1337/underscore' -var USERNAME = 'username' -var PASSWORD = '%1234@asdf%' -var EMAIL = 'i@izs.me' -var VERSION = '1.3.2' -var TAG = 'not-lodash' -var AUTH = { - username: USERNAME, - password: PASSWORD, - email: EMAIL -} -var PARAMS = { - tag: TAG, - version: VERSION, - auth: AUTH -} - -test('tag call contract', function (t) { - t.throws(function () { - client.tag(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.tag([], AUTH, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.tag(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.tag(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.tag(URI, AUTH, undefined) - }, 'requires callback') - - t.throws(function () { - client.tag(URI, AUTH, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { tag: TAG, auth: AUTH } - client.tag(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass version to tag' }, - 'tag must include version' - ) - - t.throws( - function () { - var params = { version: VERSION, auth: AUTH } - client.tag(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass tag name to tag' }, - 'tag must include name' - ) - - t.throws( - function () { - var params = { version: VERSION, tag: TAG } - client.tag(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to tag' }, - 'params must include auth' - ) - - t.end() -}) - -test('tag a package', function (t) { - server.expect('PUT', '/underscore/not-lodash', function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - - t.deepEqual(updated, '1.3.2') - - res.statusCode = 201 - res.json({ tagged: true }) - }) - }) - - client.tag(URI, PARAMS, function (error, data) { - t.ifError(error, 'no errors') - t.ok(data.tagged, 'was tagged') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/team.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/team.js deleted file mode 100644 index ffbd18fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/team.js +++ /dev/null @@ -1,215 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var URI = 'http://localhost:1337' -var PARAMS = { - auth: { - token: 'foo' - }, - scope: 'myorg', - team: 'myteam' -} - -var commands = ['create', 'destroy', 'add', 'rm', 'ls'] - -test('team create basic', function (t) { - var teamData = { - name: PARAMS.team, - scope_id: 1234, - created: '2015-07-23T18:07:49.959Z', - updated: '2015-07-23T18:07:49.959Z', - deleted: null - } - server.expect('PUT', '/-/org/myorg/team', function (req, res) { - t.equal(req.method, 'PUT') - onJsonReq(req, function (json) { - t.same(json, { name: PARAMS.team }) - res.statusCode = 200 - res.json(teamData) - }) - }) - client.team('create', URI, PARAMS, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, teamData) - t.end() - }) -}) - -test('team destroy', function (t) { - var teamData = { - name: 'myteam', - scope_id: 1234, - created: '2015-07-23T18:07:49.959Z', - updated: '2015-07-23T18:07:49.959Z', - deleted: '2015-07-23T18:27:27.178Z' - } - server.expect('DELETE', '/-/team/myorg/myteam', function (req, res) { - t.equal(req.method, 'DELETE') - onJsonReq(req, function (json) { - t.same(json, undefined) - res.statusCode = 200 - res.json(teamData) - }) - }) - client.team('destroy', URI, PARAMS, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, teamData) - t.end() - }) -}) - -test('team add basic', function (t) { - var params = Object.create(PARAMS) - params.user = 'zkat' - server.expect('PUT', '/-/team/myorg/myteam/user', function (req, res) { - t.equal(req.method, 'PUT') - onJsonReq(req, function (json) { - t.same(json, { user: params.user }) - res.statusCode = 200 - res.json(undefined) - }) - }) - client.team('add', URI, params, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, undefined) - t.end() - }) -}) - -test('team add user not in org', function (t) { - var params = Object.create(PARAMS) - params.user = 'zkat' - var errMsg = 'user is already in team' - server.expect('PUT', '/-/team/myorg/myteam/user', function (req, res) { - t.equal(req.method, 'PUT') - res.statusCode = 400 - res.json({ - error: errMsg - }) - }) - client.team('add', URI, params, function (err, data) { - t.equal(err.message, errMsg + ' : ' + '-/team/myorg/myteam/user') - t.same(data, {error: errMsg}) - t.end() - }) -}) - -test('team rm basic', function (t) { - var params = Object.create(PARAMS) - params.user = 'bcoe' - server.expect('DELETE', '/-/team/myorg/myteam/user', function (req, res) { - t.equal(req.method, 'DELETE') - onJsonReq(req, function (json) { - t.same(json, params) - res.statusCode = 200 - res.json(undefined) - }) - }) - client.team('rm', URI, params, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, undefined) - t.end() - }) -}) - -test('team ls (on org)', function (t) { - var params = Object.create(PARAMS) - params.team = null - var teams = ['myorg:team1', 'myorg:team2', 'myorg:team3'] - server.expect('GET', '/-/org/myorg/team?format=cli', function (req, res) { - t.equal(req.method, 'GET') - onJsonReq(req, function (json) { - t.same(json, undefined) - res.statusCode = 200 - res.json(teams) - }) - }) - client.team('ls', URI, params, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, teams) - t.end() - }) -}) - -test('team ls (on team)', function (t) { - var uri = '/-/team/myorg/myteam/user?format=cli' - var users = ['zkat', 'bcoe'] - server.expect('GET', uri, function (req, res) { - t.equal(req.method, 'GET') - onJsonReq(req, function (json) { - t.same(json, undefined) - res.statusCode = 200 - res.json(users) - }) - }) - client.team('ls', URI, PARAMS, function (err, data) { - t.ifError(err, 'no errors') - t.same(data, users) - t.end() - }) -}) - -// test('team edit', function (t) { -// server.expect('PUT', '/-/org/myorg/team', function (req, res) { -// t.equal(req.method, 'PUT') -// res.statusCode = 201 -// res.json({}) -// }) -// client.team('create', URI, PARAMS, function (err, data) { -// t.ifError(err, 'no errors') -// t.end() -// }) -// }) - -test('team command base validation', function (t) { - t.throws(function () { - client.team(undefined, URI, PARAMS, nop) - }, 'command is required') - commands.forEach(function (cmd) { - t.throws(function () { - client.team(cmd, undefined, PARAMS, nop) - }, 'registry URI is required') - t.throws(function () { - client.team(cmd, URI, undefined, nop) - }, 'params is required') - t.throws(function () { - client.team(cmd, URI, {scope: 'o', team: 't'}, nop) - }, 'auth is required') - t.throws(function () { - client.team(cmd, URI, {auth: {token: 'f'}, team: 't'}, nop) - }, 'scope is required') - t.throws(function () { - client.team(cmd, URI, PARAMS, {}) - }, 'callback must be a function') - if (cmd !== 'ls') { - t.throws(function () { - client.team( - cmd, URI, {auth: {token: 'f'}, scope: 'o'}, nop) - }, 'team name is required') - } - if (cmd === 'add' || cmd === 'rm') { - t.throws(function () { - client.team( - cmd, URI, PARAMS, nop) - }, 'user is required') - } - }) - t.end() -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) - -function onJsonReq (req, cb) { - var buffer = '' - req.setEncoding('utf8') - req.on('data', function (data) { buffer += data }) - req.on('end', function () { cb(buffer ? JSON.parse(buffer) : undefined) }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/unpublish-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/unpublish-scoped.js deleted file mode 100644 index 26d4ac7b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/unpublish-scoped.js +++ /dev/null @@ -1,68 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var cache = require('./fixtures/@npm/npm-registry-client/cache.json') - -var REV = '/-rev/213-0a1049cf56172b7d9a1184742c6477b9' -var PACKAGE = '/@npm%2fnpm-registry-client' -var URI = common.registry + PACKAGE -var TOKEN = 'of-glad-tidings' -var VERSION = '3.0.6' -var AUTH = { - token: TOKEN -} -var PARAMS = { - version: VERSION, - auth: AUTH -} - -test('unpublish a package', function (t) { - server.expect('GET', '/@npm%2fnpm-registry-client?write=true', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('PUT', '/@npm%2fnpm-registry-client' + REV, function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf-8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - t.notOk(updated.versions[VERSION]) - }) - - res.json(cache) - }) - - server.expect('GET', PACKAGE, function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect( - 'DELETE', - PACKAGE + '/-' + PACKAGE + '-' + VERSION + '.tgz' + REV, - function (req, res) { - t.equal(req.method, 'DELETE') - - res.json({ unpublished: true }) - } - ) - - client.unpublish(URI, PARAMS, function (er) { - t.ifError(er, 'no errors') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/unpublish.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/unpublish.js deleted file mode 100644 index 8a114c89..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/unpublish.js +++ /dev/null @@ -1,104 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -var cache = require('./fixtures/underscore/cache.json') - -function nop () {} - -var REV = '/-rev/72-47f2986bfd8e8b55068b204588bbf484' -var URI = 'http://localhost:1337/underscore' -var TOKEN = 'of-glad-tidings' -var VERSION = '1.3.2' -var AUTH = { - token: TOKEN -} -var PARAMS = { - version: VERSION, - auth: AUTH -} - -test('unpublish call contract', function (t) { - t.throws(function () { - client.unpublish(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.unpublish([], AUTH, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.unpublish(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.unpublish(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - client.unpublish(URI, AUTH, undefined) - }, 'requires callback') - - t.throws(function () { - client.unpublish(URI, AUTH, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = { - version: VERSION - } - client.unpublish(URI, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to unpublish' }, - 'must pass auth to unpublish' - ) - - t.end() -}) - -test('unpublish a package', function (t) { - server.expect('GET', '/underscore?write=true', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('PUT', '/underscore' + REV, function (req, res) { - t.equal(req.method, 'PUT') - - var b = '' - req.setEncoding('utf-8') - req.on('data', function (d) { - b += d - }) - - req.on('end', function () { - var updated = JSON.parse(b) - t.notOk(updated.versions[VERSION]) - }) - - res.json(cache) - }) - - server.expect('GET', '/underscore', function (req, res) { - t.equal(req.method, 'GET') - - res.json(cache) - }) - - server.expect('DELETE', '/underscore/-/underscore-1.3.2.tgz' + REV, function (req, res) { - t.equal(req.method, 'DELETE') - - res.json({ unpublished: true }) - }) - - client.unpublish(URI, PARAMS, function (error) { - t.ifError(error, 'no errors') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/whoami.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/whoami.js deleted file mode 100644 index 80979ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/whoami.js +++ /dev/null @@ -1,70 +0,0 @@ -var test = require('tap').test - -var server = require('./lib/server.js') -var common = require('./lib/common.js') -var client = common.freshClient() - -function nop () {} - -var WHOIAM = 'wombat' -var TOKEN = 'not-bad-meaning-bad-but-bad-meaning-wombat' -var AUTH = { token: TOKEN } -var PARAMS = { auth: AUTH } - -test('whoami call contract', function (t) { - t.throws(function () { - client.whoami(undefined, AUTH, nop) - }, 'requires a URI') - - t.throws(function () { - client.whoami([], AUTH, nop) - }, 'requires URI to be a string') - - t.throws(function () { - client.whoami(common.registry, undefined, nop) - }, 'requires params object') - - t.throws(function () { - client.whoami(common.registry, '', nop) - }, 'params must be object') - - t.throws(function () { - client.whoami(common.registry, AUTH, undefined) - }, 'requires callback') - - t.throws(function () { - client.whoami(common.registry, AUTH, 'callback') - }, 'callback must be function') - - t.throws( - function () { - var params = {} - client.whoami(common.registry, params, nop) - }, - { name: 'AssertionError', message: 'must pass auth to whoami' }, - 'must pass auth to whoami' - ) - - t.end() -}) - -test('whoami', function (t) { - server.expect('GET', '/-/whoami', function (req, res) { - t.equal(req.method, 'GET') - // only available for token-based auth for now - t.equal( - req.headers.authorization, - 'Bearer not-bad-meaning-bad-but-bad-meaning-wombat' - ) - - res.json({ username: WHOIAM }) - }) - - client.whoami(common.registry, PARAMS, function (error, wombat) { - t.ifError(error, 'no errors') - t.equal(wombat, WHOIAM, 'im a wombat') - - server.close() - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/zz-cleanup.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/zz-cleanup.js deleted file mode 100644 index 35253c7a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-registry-client/test/zz-cleanup.js +++ /dev/null @@ -1,10 +0,0 @@ -var tap = require('tap') -var rimraf = require('rimraf') - -tap.test('teardown', function (t) { - rimraf(__dirname + '/fixtures/cache', function (er) { - if (er) throw er - t.pass('cache cleaned') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/.npmignore deleted file mode 100644 index 39747c08..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/.npmignore +++ /dev/null @@ -1,13 +0,0 @@ -*.swp -.*.swp - -.DS_Store -*~ -.project -.settings -npm-debug.log -coverage.html -.idea -lib-cov - -node_modules \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/.travis.yml deleted file mode 100644 index a12e3f0f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/LICENSE deleted file mode 100644 index 79128b23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) Robert Kowalski -All rights reserved. - -The BSD License - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/README.md deleted file mode 100644 index 53bdae5a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/README.md +++ /dev/null @@ -1,6 +0,0 @@ -[![Build Status](https://travis-ci.org/npm/npm-user-validate.png?branch=master)](https://travis-ci.org/npm/npm-user-validate) -[![devDependency Status](https://david-dm.org/npm/npm-user-validate/dev-status.png)](https://david-dm.org/npm/npm-user-validate#info=devDependencies) - -# npm-user-validate - -Validation for the npm client and npm-www (and probably other npm projects) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/npm-user-validate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/npm-user-validate.js deleted file mode 100644 index f18e13cc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/npm-user-validate.js +++ /dev/null @@ -1,43 +0,0 @@ -exports.email = email -exports.pw = pw -exports.username = username - -var requirements = exports.requirements = { - username: { - lowerCase: 'Username must be lowercase', - urlSafe: 'Username may not contain non-url-safe chars', - dot: 'Username may not start with "."' - }, - password: {}, - email: { - valid: 'Email must be an email address' - } -}; - -function username (un) { - if (un !== un.toLowerCase()) { - return new Error(requirements.username.lowerCase) - } - - if (un !== encodeURIComponent(un)) { - return new Error(requirements.username.urlSafe) - } - - if (un.charAt(0) === '.') { - return new Error(requirements.username.dot) - } - - return null -} - -function email (em) { - if (!em.match(/^.+@.+\..+$/)) { - return new Error(requirements.email.valid) - } - - return null -} - -function pw (pw) { - return null -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/package.json deleted file mode 100644 index 2cc56691..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "npm-user-validate", - "version": "0.1.2", - "description": "User validations for npm", - "main": "npm-user-validate.js", - "devDependencies": { - "tap": "0.4.3" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/npm/npm-user-validate.git" - }, - "keywords": [ - "npm", - "validation", - "registry" - ], - "author": { - "name": "Robert Kowalski", - "email": "rok@kowalski.gd" - }, - "license": "BSD-2-Clause", - "gitHead": "e5b280babff5b73fe74b496461bcf424a51881e1", - "bugs": { - "url": "https://github.com/npm/npm-user-validate/issues" - }, - "homepage": "https://github.com/npm/npm-user-validate#readme", - "_id": "npm-user-validate@0.1.2", - "_shasum": "d585da0b47c9f41a9e6ca684b6fd84ba41ebe87d", - "_from": "npm-user-validate@>=0.1.2 <0.2.0", - "_npmVersion": "2.10.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "d585da0b47c9f41a9e6ca684b6fd84ba41ebe87d", - "tarball": "http://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.2.tgz" - }, - "maintainers": [ - { - "name": "robertkowalski", - "email": "rok@kowalski.gd" - }, - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.2.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/test/email.test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/test/email.test.js deleted file mode 100644 index 1060a935..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/test/email.test.js +++ /dev/null @@ -1,26 +0,0 @@ -var test = require('tap').test -var v = require('../npm-user-validate.js').email - -test('email misses an @', function (t) { - err = v('namedomain') - t.type(err, 'object') - t.end() -}) - -test('email misses a dot', function (t) { - err = v('name@domain') - t.type(err, 'object') - t.end() -}) - -test('email misses a string before the @', function (t) { - err = v('@domain') - t.type(err, 'object') - t.end() -}) - -test('email is ok', function (t) { - err = v('name@domain.com') - t.type(err, 'null') - t.end() -}) \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/test/pw.test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/test/pw.test.js deleted file mode 100644 index d57401da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/test/pw.test.js +++ /dev/null @@ -1,32 +0,0 @@ -var test = require('tap').test -var v = require('../npm-user-validate.js').pw - -test('pw contains a \'', function (t) { - err = v('\'') - t.type(err, 'null') - t.end() -}) - -test('pw contains a :', function (t) { - err = v(':') - t.type(err, 'null') - t.end() -}) - -test('pw contains a @', function (t) { - err = v('@') - t.notOk(err, 'null') - t.end() -}) - -test('pw contains a "', function (t) { - err = v('"') - t.type(err, 'null') - t.end() -}) - -test('pw is ok', function (t) { - err = v('duck') - t.type(err, 'null') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/test/username.test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/test/username.test.js deleted file mode 100644 index d30ec8af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npm-user-validate/test/username.test.js +++ /dev/null @@ -1,26 +0,0 @@ -var test = require('tap').test -var v = require('../npm-user-validate.js').username - -test('username must be lowercase', function (t) { - err = v('ERRR') - t.type(err, 'object') - t.end() -}) - -test('username may not contain non-url-safe chars', function (t) { - err = v('f ') - t.type(err, 'object') - t.end() -}) - -test('username may not start with "."', function (t) { - err = v('.username') - t.type(err, 'object') - t.end() -}) - -test('username is ok', function (t) { - err = v('ente') - t.type(err, 'null') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/.travis.yml deleted file mode 100644 index e76e1ac8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -language: node_js -sudo: false -node_js: - - "5" - - "4" - - iojs - - "0.12" - - "0.10" - - "0.8" -before_install: - - "npm install -g npm" -script: "npm test" -notifications: - slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/README.md deleted file mode 100644 index a57cf429..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/README.md +++ /dev/null @@ -1,195 +0,0 @@ -# npmlog - -The logger util that npm uses. - -This logger is very basic. It does the logging for npm. It supports -custom levels and colored output. - -By default, logs are written to stderr. If you want to send log messages -to outputs other than streams, then you can change the `log.stream` -member, or you can just listen to the events that it emits, and do -whatever you want with them. - -# Basic Usage - -``` -var log = require('npmlog') - -// additional stuff ---------------------------+ -// message ----------+ | -// prefix ----+ | | -// level -+ | | | -// v v v v - log.info('fyi', 'I have a kitty cat: %j', myKittyCat) -``` - -## log.level - -* {String} - -The level to display logs at. Any logs at or above this level will be -displayed. The special level `silent` will prevent anything from being -displayed ever. - -## log.record - -* {Array} - -An array of all the log messages that have been entered. - -## log.maxRecordSize - -* {Number} - -The maximum number of records to keep. If log.record gets bigger than -10% over this value, then it is sliced down to 90% of this value. - -The reason for the 10% window is so that it doesn't have to resize a -large array on every log entry. - -## log.prefixStyle - -* {Object} - -A style object that specifies how prefixes are styled. (See below) - -## log.headingStyle - -* {Object} - -A style object that specifies how the heading is styled. (See below) - -## log.heading - -* {String} Default: "" - -If set, a heading that is printed at the start of every line. - -## log.stream - -* {Stream} Default: `process.stderr` - -The stream where output is written. - -## log.enableColor() - -Force colors to be used on all messages, regardless of the output -stream. - -## log.disableColor() - -Disable colors on all messages. - -## log.enableProgress() - -Enable the display of log activity spinner and progress bar - -## log.disableProgress() - -Disable the display of a progress bar - -## log.enableUnicode() - -Force the unicode theme to be used for the progress bar. - -## log.disableUnicode() - -Disable the use of unicode in the progress bar. - -## log.setGaugeTemplate(template) - -Overrides the default gauge template. - -## log.pause() - -Stop emitting messages to the stream, but do not drop them. - -## log.resume() - -Emit all buffered messages that were written while paused. - -## log.log(level, prefix, message, ...) - -* `level` {String} The level to emit the message at -* `prefix` {String} A string prefix. Set to "" to skip. -* `message...` Arguments to `util.format` - -Emit a log message at the specified level. - -## log\[level](prefix, message, ...) - -For example, - -* log.silly(prefix, message, ...) -* log.verbose(prefix, message, ...) -* log.info(prefix, message, ...) -* log.http(prefix, message, ...) -* log.warn(prefix, message, ...) -* log.error(prefix, message, ...) - -Like `log.log(level, prefix, message, ...)`. In this way, each level is -given a shorthand, so you can do `log.info(prefix, message)`. - -## log.addLevel(level, n, style, disp) - -* `level` {String} Level indicator -* `n` {Number} The numeric level -* `style` {Object} Object with fg, bg, inverse, etc. -* `disp` {String} Optional replacement for `level` in the output. - -Sets up a new level with a shorthand function and so forth. - -Note that if the number is `Infinity`, then setting the level to that -will cause all log messages to be suppressed. If the number is -`-Infinity`, then the only way to show it is to enable all log messages. - -## log.newItem(name, todo, weight) - -* `name` {String} Optional; progress item name. -* `todo` {Number} Optional; total amount of work to be done. Default 0. -* `weight` {Number} Optional; the weight of this item relative to others. Default 1. - -This adds a new `are-we-there-yet` item tracker to the progress tracker. The -object returned has the `log[level]` methods but is otherwise an -`are-we-there-yet` `Tracker` object. - -## log.newStream(name, todo, weight) - -This adds a new `are-we-there-yet` stream tracker to the progress tracker. The -object returned has the `log[level]` methods but is otherwise an -`are-we-there-yet` `TrackerStream` object. - -## log.newGroup(name, weight) - -This adds a new `are-we-there-yet` tracker group to the progress tracker. The -object returned has the `log[level]` methods but is otherwise an -`are-we-there-yet` `TrackerGroup` object. - -# Events - -Events are all emitted with the message object. - -* `log` Emitted for all messages -* `log.` Emitted for all messages with the `` level. -* `` Messages with prefixes also emit their prefix as an event. - -# Style Objects - -Style objects can have the following fields: - -* `fg` {String} Color for the foreground text -* `bg` {String} Color for the background -* `bold`, `inverse`, `underline` {Boolean} Set the associated property -* `bell` {Boolean} Make a noise (This is pretty annoying, probably.) - -# Message Objects - -Every log event is emitted with a message object, and the `log.record` -list contains all of them that have been created. They have the -following fields: - -* `id` {Number} -* `level` {String} -* `prefix` {String} -* `message` {String} Result of `util.format()` -* `messageRaw` {Array} Arguments to `util.format()` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/example.js deleted file mode 100644 index c009fb15..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/example.js +++ /dev/null @@ -1,39 +0,0 @@ -var log = require('./log.js') - -log.heading = 'npm' - -console.error('log.level=silly') -log.level = 'silly' -log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}}) -log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}}) -log.info('info prefix', 'x = %j', {foo:{bar:'baz'}}) -log.http('http prefix', 'x = %j', {foo:{bar:'baz'}}) -log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}}) -log.error('error prefix', 'x = %j', {foo:{bar:'baz'}}) -log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}}) - -console.error('log.level=silent') -log.level = 'silent' -log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}}) -log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}}) -log.info('info prefix', 'x = %j', {foo:{bar:'baz'}}) -log.http('http prefix', 'x = %j', {foo:{bar:'baz'}}) -log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}}) -log.error('error prefix', 'x = %j', {foo:{bar:'baz'}}) -log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}}) - -console.error('log.level=info') -log.level = 'info' -log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}}) -log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}}) -log.info('info prefix', 'x = %j', {foo:{bar:'baz'}}) -log.http('http prefix', 'x = %j', {foo:{bar:'baz'}}) -log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}}) -log.error('error prefix', 'x = %j', {foo:{bar:'baz'}}) -log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}}) -log.error('404', 'This is a longer\n'+ - 'message, with some details\n'+ - 'and maybe a stack.\n'+ - new Error('a 404 error').stack) -log.addLevel('noise', 10000, {beep: true}) -log.noise(false, 'LOUD NOISES') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/log.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/log.js deleted file mode 100644 index 8d781f17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/log.js +++ /dev/null @@ -1,251 +0,0 @@ -'use strict' -var Progress = require('are-we-there-yet') -var Gauge = require('gauge') -var EE = require('events').EventEmitter -var log = exports = module.exports = new EE -var util = require('util') - -var ansi = require('ansi') -log.cursor = ansi(process.stderr) -log.stream = process.stderr - -// by default, let ansi decide based on tty-ness. -var colorEnabled = undefined -log.enableColor = function () { - colorEnabled = true - this.cursor.enabled = true -} -log.disableColor = function () { - colorEnabled = false - this.cursor.enabled = false -} - -// default level -log.level = 'info' - -log.gauge = new Gauge(log.cursor) -log.tracker = new Progress.TrackerGroup() - -// no progress bars unless asked -log.progressEnabled = false - -var gaugeTheme = undefined - -log.enableUnicode = function () { - gaugeTheme = Gauge.unicode - log.gauge.setTheme(gaugeTheme) -} - -log.disableUnicode = function () { - gaugeTheme = Gauge.ascii - log.gauge.setTheme(gaugeTheme) -} - -var gaugeTemplate = undefined -log.setGaugeTemplate = function (template) { - gaugeTemplate = template - log.gauge.setTemplate(gaugeTemplate) -} - -log.enableProgress = function () { - if (this.progressEnabled) return - this.progressEnabled = true - if (this._pause) return - this.tracker.on('change', this.showProgress) - this.gauge.enable() - this.showProgress() -} - -log.disableProgress = function () { - if (!this.progressEnabled) return - this.clearProgress() - this.progressEnabled = false - this.tracker.removeListener('change', this.showProgress) - this.gauge.disable() -} - -var trackerConstructors = ['newGroup', 'newItem', 'newStream'] - -var mixinLog = function (tracker) { - // mixin the public methods from log into the tracker - // (except: conflicts and one's we handle specially) - Object.keys(log).forEach(function (P) { - if (P[0] === '_') return - if (trackerConstructors.filter(function (C) { return C === P }).length) return - if (tracker[P]) return - if (typeof log[P] !== 'function') return - var func = log[P] - tracker[P] = function () { - return func.apply(log, arguments) - } - }) - // if the new tracker is a group, make sure any subtrackers get - // mixed in too - if (tracker instanceof Progress.TrackerGroup) { - trackerConstructors.forEach(function (C) { - var func = tracker[C] - tracker[C] = function () { return mixinLog(func.apply(tracker, arguments)) } - }) - } - return tracker -} - -// Add tracker constructors to the top level log object -trackerConstructors.forEach(function (C) { - log[C] = function () { return mixinLog(this.tracker[C].apply(this.tracker, arguments)) } -}) - -log.clearProgress = function () { - if (!this.progressEnabled) return - this.gauge.hide() -} - -log.showProgress = function (name, completed) { - if (!this.progressEnabled) return - if (completed == null) completed = this.tracker.completed() - this.gauge.show(name, completed) -}.bind(log) // bind for use in tracker's on-change listener - -// temporarily stop emitting, but don't drop -log.pause = function () { - this._paused = true -} - -log.resume = function () { - if (!this._paused) return - this._paused = false - - var b = this._buffer - this._buffer = [] - b.forEach(function (m) { - this.emitLog(m) - }, this) - if (this.progressEnabled) this.enableProgress() -} - -log._buffer = [] - -var id = 0 -log.record = [] -log.maxRecordSize = 10000 -log.log = function (lvl, prefix, message) { - var l = this.levels[lvl] - if (l === undefined) { - return this.emit('error', new Error(util.format( - 'Undefined log level: %j', lvl))) - } - - var a = new Array(arguments.length - 2) - var stack = null - for (var i = 2; i < arguments.length; i ++) { - var arg = a[i-2] = arguments[i] - - // resolve stack traces to a plain string. - if (typeof arg === 'object' && arg && - (arg instanceof Error) && arg.stack) { - arg.stack = stack = arg.stack + '' - } - } - if (stack) a.unshift(stack + '\n') - message = util.format.apply(util, a) - - var m = { id: id++, - level: lvl, - prefix: String(prefix || ''), - message: message, - messageRaw: a } - - this.emit('log', m) - this.emit('log.' + lvl, m) - if (m.prefix) this.emit(m.prefix, m) - - this.record.push(m) - var mrs = this.maxRecordSize - var n = this.record.length - mrs - if (n > mrs / 10) { - var newSize = Math.floor(mrs * 0.9) - this.record = this.record.slice(-1 * newSize) - } - - this.emitLog(m) -}.bind(log) - -log.emitLog = function (m) { - if (this._paused) { - this._buffer.push(m) - return - } - if (this.progressEnabled) this.gauge.pulse(m.prefix) - var l = this.levels[m.level] - if (l === undefined) return - if (l < this.levels[this.level]) return - if (l > 0 && !isFinite(l)) return - - var style = log.style[m.level] - var disp = log.disp[m.level] || m.level - this.clearProgress() - m.message.split(/\r?\n/).forEach(function (line) { - if (this.heading) { - this.write(this.heading, this.headingStyle) - this.write(' ') - } - this.write(disp, log.style[m.level]) - var p = m.prefix || '' - if (p) this.write(' ') - this.write(p, this.prefixStyle) - this.write(' ' + line + '\n') - }, this) - this.showProgress() -} - -log.write = function (msg, style) { - if (!this.cursor) return - if (this.stream !== this.cursor.stream) { - this.cursor = ansi(this.stream, { enabled: colorEnabled }) - var options = {} - if (gaugeTheme != null) options.theme = gaugeTheme - if (gaugeTemplate != null) options.template = gaugeTemplate - this.gauge = new Gauge(options, this.cursor) - } - - style = style || {} - if (style.fg) this.cursor.fg[style.fg]() - if (style.bg) this.cursor.bg[style.bg]() - if (style.bold) this.cursor.bold() - if (style.underline) this.cursor.underline() - if (style.inverse) this.cursor.inverse() - if (style.beep) this.cursor.beep() - this.cursor.write(msg).reset() -} - -log.addLevel = function (lvl, n, style, disp) { - if (!disp) disp = lvl - this.levels[lvl] = n - this.style[lvl] = style - if (!this[lvl]) this[lvl] = function () { - var a = new Array(arguments.length + 1) - a[0] = lvl - for (var i = 0; i < arguments.length; i ++) { - a[i + 1] = arguments[i] - } - return this.log.apply(this, a) - }.bind(this) - this.disp[lvl] = disp -} - -log.prefixStyle = { fg: 'magenta' } -log.headingStyle = { fg: 'white', bg: 'black' } - -log.style = {} -log.levels = {} -log.disp = {} -log.addLevel('silly', -Infinity, { inverse: true }, 'sill') -log.addLevel('verbose', 1000, { fg: 'blue', bg: 'black' }, 'verb') -log.addLevel('info', 2000, { fg: 'green' }) -log.addLevel('http', 3000, { fg: 'green', bg: 'black' }) -log.addLevel('warn', 4000, { fg: 'black', bg: 'yellow' }, 'WARN') -log.addLevel('error', 5000, { fg: 'red', bg: 'black' }, 'ERR!') -log.addLevel('silent', Infinity) - -// allow 'error' prefix -log.on('error', function(){}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/.jshintrc deleted file mode 100644 index 248c5426..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/.jshintrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "laxcomma": true, - "asi": true -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/History.md deleted file mode 100644 index aea8aaf0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/History.md +++ /dev/null @@ -1,23 +0,0 @@ - -0.3.1 / 2016-01-14 -================== - - * add MIT LICENSE file (#23, @kasicka) - * preserve chaining after redundant style-method calls (#19, @drewblaisdell) - * package: add "license" field (#16, @BenjaminTsai) - -0.3.0 / 2014-05-09 -================== - - * package: remove "test" script and "devDependencies" - * package: remove "engines" section - * pacakge: remove "bin" section - * package: beautify - * examples: remove `starwars` example (#15) - * Documented goto, horizontalAbsolute, and eraseLine methods in README.md (#12, @Jammerwoch) - * add `.jshintrc` file - -< 0.3.0 -======= - - * Prehistoric diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/LICENSE deleted file mode 100644 index 2ea4dc5e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012 Nathan Rajlich - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/README.md deleted file mode 100644 index 6ce19403..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/README.md +++ /dev/null @@ -1,98 +0,0 @@ -ansi.js -========= -### Advanced ANSI formatting tool for Node.js - -`ansi.js` is a module for Node.js that provides an easy-to-use API for -writing ANSI escape codes to `Stream` instances. ANSI escape codes are used to do -fancy things in a terminal window, like render text in colors, delete characters, -lines, the entire window, or hide and show the cursor, and lots more! - -#### Features: - - * 256 color support for the terminal! - * Make a beep sound from your terminal! - * Works with *any* writable `Stream` instance. - * Allows you to move the cursor anywhere on the terminal window. - * Allows you to delete existing contents from the terminal window. - * Allows you to hide and show the cursor. - * Converts CSS color codes and RGB values into ANSI escape codes. - * Low-level; you are in control of when escape codes are used, it's not abstracted. - - -Installation ------------- - -Install with `npm`: - -``` bash -$ npm install ansi -``` - - -Example -------- - -``` js -var ansi = require('ansi') - , cursor = ansi(process.stdout) - -// You can chain your calls forever: -cursor - .red() // Set font color to red - .bg.grey() // Set background color to grey - .write('Hello World!') // Write 'Hello World!' to stdout - .bg.reset() // Reset the bgcolor before writing the trailing \n, - // to avoid Terminal glitches - .write('\n') // And a final \n to wrap things up - -// Rendering modes are persistent: -cursor.hex('#660000').bold().underline() - -// You can use the regular logging functions, text will be green: -console.log('This is blood red, bold text') - -// To reset just the foreground color: -cursor.fg.reset() - -console.log('This will still be bold') - -// to go to a location (x,y) on the console -// note: 1-indexed, not 0-indexed: -cursor.goto(10, 5).write('Five down, ten over') - -// to clear the current line: -cursor.horizontalAbsolute(0).eraseLine().write('Starting again') - -// to go to a different column on the current line: -cursor.horizontalAbsolute(5).write('column five') - -// Clean up after yourself! -cursor.reset() -``` - - -License -------- - -(The MIT License) - -Copyright (c) 2012 Nathan Rajlich <nathan@tootallnate.net> - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/beep/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/beep/index.js deleted file mode 100755 index c1ec929d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/beep/index.js +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env node - -/** - * Invokes the terminal "beep" sound once per second on every exact second. - */ - -process.title = 'beep' - -var cursor = require('../../')(process.stdout) - -function beep () { - cursor.beep() - setTimeout(beep, 1000 - (new Date()).getMilliseconds()) -} - -setTimeout(beep, 1000 - (new Date()).getMilliseconds()) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/clear/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/clear/index.js deleted file mode 100755 index 6ac21ffa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/clear/index.js +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env node - -/** - * Like GNU ncurses "clear" command. - * https://github.com/mscdex/node-ncurses/blob/master/deps/ncurses/progs/clear.c - */ - -process.title = 'clear' - -function lf () { return '\n' } - -require('../../')(process.stdout) - .write(Array.apply(null, Array(process.stdout.getWindowSize()[1])).map(lf).join('')) - .eraseData(2) - .goto(1, 1) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/cursorPosition.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/cursorPosition.js deleted file mode 100755 index 50f96449..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/cursorPosition.js +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env node - -var tty = require('tty') -var cursor = require('../')(process.stdout) - -// listen for the queryPosition report on stdin -process.stdin.resume() -raw(true) - -process.stdin.once('data', function (b) { - var match = /\[(\d+)\;(\d+)R$/.exec(b.toString()) - if (match) { - var xy = match.slice(1, 3).reverse().map(Number) - console.error(xy) - } - - // cleanup and close stdin - raw(false) - process.stdin.pause() -}) - - -// send the query position request code to stdout -cursor.queryPosition() - -function raw (mode) { - if (process.stdin.setRawMode) { - process.stdin.setRawMode(mode) - } else { - tty.setRawMode(mode) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/progress/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/progress/index.js deleted file mode 100644 index d28dbda2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/examples/progress/index.js +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env node - -var assert = require('assert') - , ansi = require('../../') - -function Progress (stream, width) { - this.cursor = ansi(stream) - this.delta = this.cursor.newlines - this.width = width | 0 || 10 - this.open = '[' - this.close = ']' - this.complete = '█' - this.incomplete = '_' - - // initial render - this.progress = 0 -} - -Object.defineProperty(Progress.prototype, 'progress', { - get: get - , set: set - , configurable: true - , enumerable: true -}) - -function get () { - return this._progress -} - -function set (v) { - this._progress = Math.max(0, Math.min(v, 100)) - - var w = this.width - this.complete.length - this.incomplete.length - , n = w * (this._progress / 100) | 0 - , i = w - n - , com = c(this.complete, n) - , inc = c(this.incomplete, i) - , delta = this.cursor.newlines - this.delta - - assert.equal(com.length + inc.length, w) - - if (delta > 0) { - this.cursor.up(delta) - this.delta = this.cursor.newlines - } - - this.cursor - .horizontalAbsolute(0) - .eraseLine(2) - .fg.white() - .write(this.open) - .fg.grey() - .bold() - .write(com) - .resetBold() - .write(inc) - .fg.white() - .write(this.close) - .fg.reset() - .write('\n') -} - -function c (char, length) { - return Array.apply(null, Array(length)).map(function () { - return char - }).join('') -} - - - - -// Usage -var width = parseInt(process.argv[2], 10) || process.stdout.getWindowSize()[0] / 2 - , p = new Progress(process.stdout, width) - -;(function tick () { - p.progress += Math.random() * 5 - p.cursor - .eraseLine(2) - .write('Progress: ') - .bold().write(p.progress.toFixed(2)) - .write('%') - .resetBold() - .write('\n') - if (p.progress < 100) - setTimeout(tick, 100) -})() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/lib/ansi.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/lib/ansi.js deleted file mode 100644 index b1714e32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/ansi/lib/ansi.js +++ /dev/null @@ -1,405 +0,0 @@ - -/** - * References: - * - * - http://en.wikipedia.org/wiki/ANSI_escape_code - * - http://www.termsys.demon.co.uk/vtansi.htm - * - */ - -/** - * Module dependencies. - */ - -var emitNewlineEvents = require('./newlines') - , prefix = '\x1b[' // For all escape codes - , suffix = 'm' // Only for color codes - -/** - * The ANSI escape sequences. - */ - -var codes = { - up: 'A' - , down: 'B' - , forward: 'C' - , back: 'D' - , nextLine: 'E' - , previousLine: 'F' - , horizontalAbsolute: 'G' - , eraseData: 'J' - , eraseLine: 'K' - , scrollUp: 'S' - , scrollDown: 'T' - , savePosition: 's' - , restorePosition: 'u' - , queryPosition: '6n' - , hide: '?25l' - , show: '?25h' -} - -/** - * Rendering ANSI codes. - */ - -var styles = { - bold: 1 - , italic: 3 - , underline: 4 - , inverse: 7 -} - -/** - * The negating ANSI code for the rendering modes. - */ - -var reset = { - bold: 22 - , italic: 23 - , underline: 24 - , inverse: 27 -} - -/** - * The standard, styleable ANSI colors. - */ - -var colors = { - white: 37 - , black: 30 - , blue: 34 - , cyan: 36 - , green: 32 - , magenta: 35 - , red: 31 - , yellow: 33 - , grey: 90 - , brightBlack: 90 - , brightRed: 91 - , brightGreen: 92 - , brightYellow: 93 - , brightBlue: 94 - , brightMagenta: 95 - , brightCyan: 96 - , brightWhite: 97 -} - - -/** - * Creates a Cursor instance based off the given `writable stream` instance. - */ - -function ansi (stream, options) { - if (stream._ansicursor) { - return stream._ansicursor - } else { - return stream._ansicursor = new Cursor(stream, options) - } -} -module.exports = exports = ansi - -/** - * The `Cursor` class. - */ - -function Cursor (stream, options) { - if (!(this instanceof Cursor)) { - return new Cursor(stream, options) - } - if (typeof stream != 'object' || typeof stream.write != 'function') { - throw new Error('a valid Stream instance must be passed in') - } - - // the stream to use - this.stream = stream - - // when 'enabled' is false then all the functions are no-ops except for write() - this.enabled = options && options.enabled - if (typeof this.enabled === 'undefined') { - this.enabled = stream.isTTY - } - this.enabled = !!this.enabled - - // then `buffering` is true, then `write()` calls are buffered in - // memory until `flush()` is invoked - this.buffering = !!(options && options.buffering) - this._buffer = [] - - // controls the foreground and background colors - this.fg = this.foreground = new Colorer(this, 0) - this.bg = this.background = new Colorer(this, 10) - - // defaults - this.Bold = false - this.Italic = false - this.Underline = false - this.Inverse = false - - // keep track of the number of "newlines" that get encountered - this.newlines = 0 - emitNewlineEvents(stream) - stream.on('newline', function () { - this.newlines++ - }.bind(this)) -} -exports.Cursor = Cursor - -/** - * Helper function that calls `write()` on the underlying Stream. - * Returns `this` instead of the write() return value to keep - * the chaining going. - */ - -Cursor.prototype.write = function (data) { - if (this.buffering) { - this._buffer.push(arguments) - } else { - this.stream.write.apply(this.stream, arguments) - } - return this -} - -/** - * Buffer `write()` calls into memory. - * - * @api public - */ - -Cursor.prototype.buffer = function () { - this.buffering = true - return this -} - -/** - * Write out the in-memory buffer. - * - * @api public - */ - -Cursor.prototype.flush = function () { - this.buffering = false - var str = this._buffer.map(function (args) { - if (args.length != 1) throw new Error('unexpected args length! ' + args.length); - return args[0]; - }).join(''); - this._buffer.splice(0); // empty - this.write(str); - return this -} - - -/** - * The `Colorer` class manages both the background and foreground colors. - */ - -function Colorer (cursor, base) { - this.current = null - this.cursor = cursor - this.base = base -} -exports.Colorer = Colorer - -/** - * Write an ANSI color code, ensuring that the same code doesn't get rewritten. - */ - -Colorer.prototype._setColorCode = function setColorCode (code) { - var c = String(code) - if (this.current === c) return - this.cursor.enabled && this.cursor.write(prefix + c + suffix) - this.current = c - return this -} - - -/** - * Set up the positional ANSI codes. - */ - -Object.keys(codes).forEach(function (name) { - var code = String(codes[name]) - Cursor.prototype[name] = function () { - var c = code - if (arguments.length > 0) { - c = toArray(arguments).map(Math.round).join(';') + code - } - this.enabled && this.write(prefix + c) - return this - } -}) - -/** - * Set up the functions for the rendering ANSI codes. - */ - -Object.keys(styles).forEach(function (style) { - var name = style[0].toUpperCase() + style.substring(1) - , c = styles[style] - , r = reset[style] - - Cursor.prototype[style] = function () { - if (this[name]) return this - this.enabled && this.write(prefix + c + suffix) - this[name] = true - return this - } - - Cursor.prototype['reset' + name] = function () { - if (!this[name]) return this - this.enabled && this.write(prefix + r + suffix) - this[name] = false - return this - } -}) - -/** - * Setup the functions for the standard colors. - */ - -Object.keys(colors).forEach(function (color) { - var code = colors[color] - - Colorer.prototype[color] = function () { - this._setColorCode(this.base + code) - return this.cursor - } - - Cursor.prototype[color] = function () { - return this.foreground[color]() - } -}) - -/** - * Makes a beep sound! - */ - -Cursor.prototype.beep = function () { - this.enabled && this.write('\x07') - return this -} - -/** - * Moves cursor to specific position - */ - -Cursor.prototype.goto = function (x, y) { - x = x | 0 - y = y | 0 - this.enabled && this.write(prefix + y + ';' + x + 'H') - return this -} - -/** - * Resets the color. - */ - -Colorer.prototype.reset = function () { - this._setColorCode(this.base + 39) - return this.cursor -} - -/** - * Resets all ANSI formatting on the stream. - */ - -Cursor.prototype.reset = function () { - this.enabled && this.write(prefix + '0' + suffix) - this.Bold = false - this.Italic = false - this.Underline = false - this.Inverse = false - this.foreground.current = null - this.background.current = null - return this -} - -/** - * Sets the foreground color with the given RGB values. - * The closest match out of the 216 colors is picked. - */ - -Colorer.prototype.rgb = function (r, g, b) { - var base = this.base + 38 - , code = rgb(r, g, b) - this._setColorCode(base + ';5;' + code) - return this.cursor -} - -/** - * Same as `cursor.fg.rgb(r, g, b)`. - */ - -Cursor.prototype.rgb = function (r, g, b) { - return this.foreground.rgb(r, g, b) -} - -/** - * Accepts CSS color codes for use with ANSI escape codes. - * For example: `#FF000` would be bright red. - */ - -Colorer.prototype.hex = function (color) { - return this.rgb.apply(this, hex(color)) -} - -/** - * Same as `cursor.fg.hex(color)`. - */ - -Cursor.prototype.hex = function (color) { - return this.foreground.hex(color) -} - - -// UTIL FUNCTIONS // - -/** - * Translates a 255 RGB value to a 0-5 ANSI RGV value, - * then returns the single ANSI color code to use. - */ - -function rgb (r, g, b) { - var red = r / 255 * 5 - , green = g / 255 * 5 - , blue = b / 255 * 5 - return rgb5(red, green, blue) -} - -/** - * Turns rgb 0-5 values into a single ANSI color code to use. - */ - -function rgb5 (r, g, b) { - var red = Math.round(r) - , green = Math.round(g) - , blue = Math.round(b) - return 16 + (red*36) + (green*6) + blue -} - -/** - * Accepts a hex CSS color code string (# is optional) and - * translates it into an Array of 3 RGB 0-255 values, which - * can then be used with rgb(). - */ - -function hex (color) { - var c = color[0] === '#' ? color.substring(1) : color - , r = c.substring(0, 2) - , g = c.substring(2, 4) - , b = c.substring(4, 6) - return [parseInt(r, 16), parseInt(g, 16), parseInt(b, 16)] -} - -/** - * Turns an array-like object into a real array. - */ - -function toArray (a) { - var i = 0 - , l = a.length - , rtn = [] - for (; i 0) { - var len = data.length - , i = 0 - // now try to calculate any deltas - if (typeof data == 'string') { - for (; i=0.3.0 <0.4.0", - "_id": "ansi@0.3.1", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/ansi", - "_nodeVersion": "5.3.0", - "_npmUser": { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "ansi", - "raw": "ansi@~0.3.0", - "rawSpec": "~0.3.0", - "scope": null, - "spec": ">=0.3.0 <0.4.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog", - "/npmlog/gauge" - ], - "_resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", - "_shasum": "0c42d4fb17160d5a9af1e484bace1c66922c1b21", - "_shrinkwrap": null, - "_spec": "ansi@~0.3.0", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog", - "author": { - "email": "nathan@tootallnate.net", - "name": "Nathan Rajlich", - "url": "http://tootallnate.net" - }, - "bugs": { - "url": "https://github.com/TooTallNate/ansi.js/issues" - }, - "dependencies": {}, - "description": "Advanced ANSI formatting tool for Node.js", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "0c42d4fb17160d5a9af1e484bace1c66922c1b21", - "tarball": "http://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz" - }, - "gitHead": "4d0d4af94e0bdaa648bd7262acd3bde4b98d5246", - "homepage": "https://github.com/TooTallNate/ansi.js#readme", - "keywords": [ - "256", - "ansi", - "color", - "cursor", - "formatting", - "rgb", - "stream", - "terminal" - ], - "license": "MIT", - "main": "./lib/ansi.js", - "maintainers": [ - { - "name": "TooTallNate", - "email": "nathan@tootallnate.net" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "name": "ansi", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/ansi.js.git" - }, - "scripts": {}, - "version": "0.3.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore deleted file mode 100644 index bc818974..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -*~ -.#* -node_modules -coverage -.nyc_output diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md deleted file mode 100644 index e990b86d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md +++ /dev/null @@ -1,19 +0,0 @@ -Hi, figured we could actually use a changelog now: - -## 1.1.1 2016-01-29 - -* Fix a typo in stream completion tracker - -## 1.1.0 2016-01-29 - -* Rewrote completion percent computation to be low impact– no more walking a - tree of completion groups every time we need this info. Previously, with - medium sized tree of completion groups, even a relatively modest number of - calls to the top level `completed()` method would result in absurd numbers - of calls overall as it walked down the tree. We now, instead, keep track as - we bubble up changes, so the computation is limited to when data changes and - to the depth of that one branch, instead of _every_ node. (Plus, we were already - incurring _this_ cost, since we already bubbled out changes.) -* Moved different tracker types out to their own files. -* Made tests test for TOO MANY events too. -* Standarized the source code formatting diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE deleted file mode 100644 index af458806..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md deleted file mode 100644 index c41d3922..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md +++ /dev/null @@ -1,194 +0,0 @@ -are-we-there-yet ----------------- - -Track complex hiearchies of asynchronous task completion statuses. This is -intended to give you a way of recording and reporting the progress of the big -recursive fan-out and gather type workflows that are so common in async. - -What you do with this completion data is up to you, but the most common use case is to -feed it to one of the many progress bar modules. - -Most progress bar modules include a rudamentary version of this, but my -needs were more complex. - -Usage -===== - -```javascript -var TrackerGroup = require("are-we-there-yet").TrackerGroup - -var top = new TrackerGroup("program") - -var single = top.newItem("one thing", 100) -single.completeWork(20) - -console.log(top.completed()) // 0.2 - -fs.stat("file", function(er, stat) { - if (er) throw er - var stream = top.newStream("file", stat.size) - console.log(top.completed()) // now 0.1 as single is 50% of the job and is 20% complete - // and 50% * 20% == 10% - fs.createReadStream("file").pipe(stream).on("data", function (chunk) { - // do stuff with chunk - }) - top.on("change", function (name) { - // called each time a chunk is read from "file" - // top.completed() will start at 0.1 and fill up to 0.6 as the file is read - }) -}) -``` - -Shared Methods -============== - -All tracker objects described below have the following methods, they, along -with the event comprise the interface for consumers of tracker objects. - -* var completed = tracker.completed() - -Returns the ratio of completed work to work to be done. Range of 0 to 1. - -* tracker.finish() - -Marks the tracker as completed. With a TrackerGroup this marks all of its -components as completed. - -Marks all of the components of this tracker as finished, which in turn means -that `tracker.completed()` for this will now be 1. - -This will result in one or more `change` events being emitted. - -Events -====== - -All tracker objects emit `change` events with the following arguments: - -``` -function (name, completed, tracker) -``` - -`name` is the name of the tracker that originally emitted the event, -or if it didn't have one, the first containing tracker group that had one. - -`completed` is the percent complete (as returned by `tracker.completed()` method). - -`tracker` is the tracker object that you are listening for events on. - -TrackerGroup -============ - -* var tracker = new TrackerGroup(**name**) - - * **name** *(optional)* - The name of this tracker group, used in change - notifications if the component updating didn't have a name. Defaults to undefined. - -Creates a new empty tracker aggregation group. These are trackers whose -completion status is determined by the completion status of other trackers. - -* tracker.addUnit(**otherTracker**, **weight**) - - * **otherTracker** - Any of the other are-we-there-yet tracker objects - * **weight** *(optional)* - The weight to give the tracker, defaults to 1. - -Adds the **otherTracker** to this aggregation group. The weight determines -how long you expect this tracker to take to complete in proportion to other -units. So for instance, if you add one tracker with a weight of 1 and -another with a weight of 2, you're saying the second will take twice as long -to complete as the first. As such, the first will account for 33% of the -completion of this tracker and the second will account for the other 67%. - -Returns **otherTracker**. - -* var subGroup = tracker.newGroup(**name**, **weight**) - -The above is exactly equivalent to: - -```javascript - var subGroup = tracker.addUnit(new TrackerGroup(name), weight) -``` - -* var subItem = tracker.newItem(**name**, **todo**, **weight**) - -The above is exactly equivalent to: - -```javascript - var subItem = tracker.addUnit(new Tracker(name, todo), weight) -``` - -* var subStream = tracker.newStream(**name**, **todo**, **weight**) - -The above is exactly equivalent to: - -```javascript - var subStream = tracker.addUnit(new TrackerStream(name, todo), weight) -``` - -* console.log( tracker.debug() ) - -Returns a tree showing the completion of this tracker group and all of its -children, including recursively entering all of the children. - -Tracker -======= - -* var tracker = new Tracker(**name**, **todo**) - - * **name** *(optional)* The name of this counter to report in change - events. Defaults to undefined. - * **todo** *(optional)* The amount of work todo (a number). Defaults to 0. - -Ordinarily these are constructed as a part of a tracker group (via -`newItem`). - -* var completed = tracker.completed() - -Returns the ratio of completed work to work to be done. Range of 0 to 1. If -total work to be done is 0 then it will return 0. - -* tracker.addWork(**todo**) - - * **todo** A number to add to the amount of work to be done. - -Increases the amount of work to be done, thus decreasing the completion -percentage. Triggers a `change` event. - -* tracker.completeWork(**completed**) - - * **completed** A number to add to the work complete - -Increase the amount of work complete, thus increasing the completion percentage. -Will never increase the work completed past the amount of work todo. That is, -percentages > 100% are not allowed. Triggers a `change` event. - -* tracker.finish() - -Marks this tracker as finished, tracker.completed() will now be 1. Triggers -a `change` event. - -TrackerStream -============= - -* var tracker = new TrackerStream(**name**, **size**, **options**) - - * **name** *(optional)* The name of this counter to report in change - events. Defaults to undefined. - * **size** *(optional)* The number of bytes being sent through this stream. - * **options** *(optional)* A hash of stream options - -The tracker stream object is a pass through stream that updates an internal -tracker object each time a block passes through. It's intended to track -downloads, file extraction and other related activities. You use it by piping -your data source into it and then using it as your data source. - -If your data has a length attribute then that's used as the amount of work -completed when the chunk is passed through. If it does not (eg, object -streams) then each chunk counts as completing 1 unit of work, so your size -should be the total number of objects being streamed. - -* tracker.addWork(**todo**) - - * **todo** Increase the expected overall size by **todo** bytes. - -Increases the amount of work to be done, thus decreasing the completion -percentage. Triggers a `change` event. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js deleted file mode 100644 index 57d8743f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict' -exports.TrackerGroup = require('./tracker-group.js') -exports.Tracker = require('./tracker.js') -exports.TrackerStream = require('./tracker-stream.js') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore deleted file mode 100644 index c2658d7d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md deleted file mode 100644 index 25959eab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md +++ /dev/null @@ -1,22 +0,0 @@ - -1.0.0 / 2015-12-14 -================== - - * Merge pull request #12 from kasicka/master - * Add license text - -0.1.0 / 2014-10-17 -================== - - * adds `.fluent()` to api - -0.0.3 / 2014-01-13 -================== - - * fix receiver for .method() - -0.0.2 / 2014-01-13 -================== - - * Object.defineProperty() sucks - * Initial commit diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License deleted file mode 100644 index 60de60ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2015 TJ Holowaychuk - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile deleted file mode 100644 index a9dcfd50..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile +++ /dev/null @@ -1,8 +0,0 @@ - -test: - @./node_modules/.bin/mocha \ - --require should \ - --reporter spec \ - --bail - -.PHONY: test \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md deleted file mode 100644 index ab8cf4ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md +++ /dev/null @@ -1,94 +0,0 @@ - -# delegates - - Node method and accessor delegation utilty. - -## Installation - -``` -$ npm install delegates -``` - -## Example - -```js -var delegate = require('delegates'); - -... - -delegate(proto, 'request') - .method('acceptsLanguages') - .method('acceptsEncodings') - .method('acceptsCharsets') - .method('accepts') - .method('is') - .access('querystring') - .access('idempotent') - .access('socket') - .access('length') - .access('query') - .access('search') - .access('status') - .access('method') - .access('path') - .access('body') - .access('host') - .access('url') - .getter('subdomains') - .getter('protocol') - .getter('header') - .getter('stale') - .getter('fresh') - .getter('secure') - .getter('ips') - .getter('ip') -``` - -# API - -## Delegate(proto, prop) - -Creates a delegator instance used to configure using the `prop` on the given -`proto` object. (which is usually a prototype) - -## Delegate#method(name) - -Allows the given method `name` to be accessed on the host. - -## Delegate#getter(name) - -Creates a "getter" for the property with the given `name` on the delegated -object. - -## Delegate#setter(name) - -Creates a "setter" for the property with the given `name` on the delegated -object. - -## Delegate#access(name) - -Creates an "accessor" (ie: both getter *and* setter) for the property with the -given `name` on the delegated object. - -## Delegate#fluent(name) - -A unique type of "accessor" that works for a "fluent" API. When called as a -getter, the method returns the expected value. However, if the method is called -with a value, it will return itself so it can be chained. For example: - -```js -delegate(proto, 'request') - .fluent('query') - -// getter -var q = request.query(); - -// setter (chainable) -request - .query({ a: 1 }) - .query({ b: 2 }); -``` - -# License - - MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js deleted file mode 100644 index 17c222d5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js +++ /dev/null @@ -1,121 +0,0 @@ - -/** - * Expose `Delegator`. - */ - -module.exports = Delegator; - -/** - * Initialize a delegator. - * - * @param {Object} proto - * @param {String} target - * @api public - */ - -function Delegator(proto, target) { - if (!(this instanceof Delegator)) return new Delegator(proto, target); - this.proto = proto; - this.target = target; - this.methods = []; - this.getters = []; - this.setters = []; - this.fluents = []; -} - -/** - * Delegate method `name`. - * - * @param {String} name - * @return {Delegator} self - * @api public - */ - -Delegator.prototype.method = function(name){ - var proto = this.proto; - var target = this.target; - this.methods.push(name); - - proto[name] = function(){ - return this[target][name].apply(this[target], arguments); - }; - - return this; -}; - -/** - * Delegator accessor `name`. - * - * @param {String} name - * @return {Delegator} self - * @api public - */ - -Delegator.prototype.access = function(name){ - return this.getter(name).setter(name); -}; - -/** - * Delegator getter `name`. - * - * @param {String} name - * @return {Delegator} self - * @api public - */ - -Delegator.prototype.getter = function(name){ - var proto = this.proto; - var target = this.target; - this.getters.push(name); - - proto.__defineGetter__(name, function(){ - return this[target][name]; - }); - - return this; -}; - -/** - * Delegator setter `name`. - * - * @param {String} name - * @return {Delegator} self - * @api public - */ - -Delegator.prototype.setter = function(name){ - var proto = this.proto; - var target = this.target; - this.setters.push(name); - - proto.__defineSetter__(name, function(val){ - return this[target][name] = val; - }); - - return this; -}; - -/** - * Delegator fluent accessor - * - * @param {String} name - * @return {Delegator} self - * @api public - */ - -Delegator.prototype.fluent = function (name) { - var proto = this.proto; - var target = this.target; - this.fluents.push(name); - - proto[name] = function(val){ - if ('undefined' != typeof val) { - this[target][name] = val; - return this; - } else { - return this[target][name]; - } - }; - - return this; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json deleted file mode 100644 index a32bbf52..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "_args": [ - [ - "delegates@^1.0.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/are-we-there-yet" - ] - ], - "_from": "delegates@>=1.0.0 <2.0.0", - "_id": "delegates@1.0.0", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/are-we-there-yet/delegates", - "_nodeVersion": "4.2.1", - "_npmUser": { - "email": "tj@vision-media.ca", - "name": "tjholowaychuk" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "delegates", - "raw": "delegates@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog/are-we-there-yet" - ], - "_resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "_shasum": "84c6e159b81904fdca59a0ef44cd870d31250f9a", - "_shrinkwrap": null, - "_spec": "delegates@^1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/are-we-there-yet", - "bugs": { - "url": "https://github.com/visionmedia/node-delegates/issues" - }, - "dependencies": {}, - "description": "delegate methods and accessors to another property", - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "directories": {}, - "dist": { - "shasum": "84c6e159b81904fdca59a0ef44cd870d31250f9a", - "tarball": "http://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - }, - "gitHead": "c4dc07ef1ed51c2b2a63f3585e5ef949ee577a49", - "homepage": "https://github.com/visionmedia/node-delegates#readme", - "keywords": [ - "delegate", - "delegation" - ], - "license": "MIT", - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "dominicbarnes", - "email": "dominic@dbarnes.info" - } - ], - "name": "delegates", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/visionmedia/node-delegates.git" - }, - "scripts": {}, - "version": "1.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js deleted file mode 100644 index 7b6e3d4d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js +++ /dev/null @@ -1,94 +0,0 @@ - -var assert = require('assert'); -var delegate = require('..'); - -describe('.method(name)', function(){ - it('should delegate methods', function(){ - var obj = {}; - - obj.request = { - foo: function(bar){ - assert(this == obj.request); - return bar; - } - }; - - delegate(obj, 'request').method('foo'); - - obj.foo('something').should.equal('something'); - }) -}) - -describe('.getter(name)', function(){ - it('should delegate getters', function(){ - var obj = {}; - - obj.request = { - get type() { - return 'text/html'; - } - } - - delegate(obj, 'request').getter('type'); - - obj.type.should.equal('text/html'); - }) -}) - -describe('.setter(name)', function(){ - it('should delegate setters', function(){ - var obj = {}; - - obj.request = { - get type() { - return this._type.toUpperCase(); - }, - - set type(val) { - this._type = val; - } - } - - delegate(obj, 'request').setter('type'); - - obj.type = 'hey'; - obj.request.type.should.equal('HEY'); - }) -}) - -describe('.access(name)', function(){ - it('should delegate getters and setters', function(){ - var obj = {}; - - obj.request = { - get type() { - return this._type.toUpperCase(); - }, - - set type(val) { - this._type = val; - } - } - - delegate(obj, 'request').access('type'); - - obj.type = 'hey'; - obj.type.should.equal('HEY'); - }) -}) - -describe('.fluent(name)', function () { - it('should delegate in a fluent fashion', function () { - var obj = { - settings: { - env: 'development' - } - }; - - delegate(obj, 'settings').fluent('env'); - - obj.env().should.equal('development'); - obj.env('production').should.equal(obj); - obj.settings.env.should.equal('production'); - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json deleted file mode 100644 index eb2dea38..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "_args": [ - [ - "are-we-there-yet@~1.1.2", - "/Users/rebecca/code/npm/node_modules/npmlog" - ] - ], - "_from": "are-we-there-yet@>=1.1.2 <1.2.0", - "_id": "are-we-there-yet@1.1.2", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/are-we-there-yet", - "_nodeVersion": "4.2.2", - "_npmOperationalInternal": { - "host": "packages-13-west.internal.npmjs.com", - "tmp": "tmp/are-we-there-yet-1.1.2.tgz_1458084397358_0.15847722673788667" - }, - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "3.8.1", - "_phantomChildren": {}, - "_requested": { - "name": "are-we-there-yet", - "raw": "are-we-there-yet@~1.1.2", - "rawSpec": "~1.1.2", - "scope": null, - "spec": ">=1.1.2 <1.2.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog" - ], - "_shasum": "80e470e95a084794fe1899262c5667c6e88de1b3", - "_shrinkwrap": null, - "_spec": "are-we-there-yet@~1.1.2", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog", - "author": { - "name": "Rebecca Turner", - "url": "http://re-becca.org" - }, - "bugs": { - "url": "https://github.com/iarna/are-we-there-yet/issues" - }, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.0 || ^1.1.13" - }, - "description": "Keep track of the overall completion of many dispirate processes", - "devDependencies": { - "standard": "^6.0.8", - "tap": "^5.7.0" - }, - "directories": {}, - "dist": { - "shasum": "80e470e95a084794fe1899262c5667c6e88de1b3", - "tarball": "http://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz" - }, - "gitHead": "dd5706e2204cb681e78031d0ffe156ed4cc75823", - "homepage": "https://github.com/iarna/are-we-there-yet", - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "email": "me@re-becca.org", - "name": "iarna" - } - ], - "name": "are-we-there-yet", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/iarna/are-we-there-yet.git" - }, - "scripts": { - "test": "standard && tap test/*.js" - }, - "version": "1.1.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/lib/test-event.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/lib/test-event.js deleted file mode 100644 index 2aa7c05c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/lib/test-event.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict' -var util = require('util') - -module.exports = function (obj, event, next) { - var timeout = setTimeout(gotTimeout, 10) - obj.once(event, gotResult) - - function gotTimeout () { - obj.removeListener(event, gotResult) - next(new Error('Timeout listening for ' + event)) - } - var result = [] - function gotResult () { - result = Array.prototype.slice.call(arguments) - clearTimeout(timeout) - timeout = setTimeout(gotNoMoreResults, 10) - obj.once(event, gotTooManyResults) - } - function gotNoMoreResults () { - obj.removeListener(event, gotTooManyResults) - var args = [null].concat(result) - next.apply(null, args) - } - function gotTooManyResults () { - var secondResult = Array.prototype.slice.call(arguments) - clearTimeout(timeout) - next(new Error('Got too many results, first ' + util.inspect(result) + ' and then ' + util.inspect(secondResult))) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js deleted file mode 100644 index 374c7739..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict' -var test = require('tap').test -var Tracker = require('../index.js').Tracker - -var testEvent = require('./lib/test-event.js') - -var name = 'test' - -test('initialization', function (t) { - var simple = new Tracker(name) - - t.is(simple.completed(), 0, 'Nothing todo is 0 completion') - t.done() -}) - -var track -var todo = 100 -test('completion', function (t) { - track = new Tracker(name, todo) - t.is(track.completed(), 0, 'Nothing done is 0 completion') - - testEvent(track, 'change', afterCompleteWork) - - track.completeWork(todo) - t.is(track.completed(), 1, 'completeWork: 100% completed') - - function afterCompleteWork (er, onChangeName) { - t.is(er, null, 'completeWork: on change event fired') - t.is(onChangeName, name, 'completeWork: on change emits the correct name') - t.done() - } -}) - -test('add more work', function (t) { - testEvent(track, 'change', afterAddWork) - track.addWork(todo) - t.is(track.completed(), 0.5, 'addWork: 50% completed') - function afterAddWork (er, onChangeName) { - t.is(er, null, 'addWork: on change event fired') - t.is(onChangeName, name, 'addWork: on change emits the correct name') - t.done() - } -}) - -test('complete more work', function (t) { - track.completeWork(200) - t.is(track.completed(), 1, 'completeWork: Over completion is still only 100% complete') - t.done() -}) - -test('finish is always 100%', function (t) { - var finishtest = new Tracker(name, todo) - finishtest.completeWork(50) - finishtest.finish() - t.is(finishtest.completed(), 1, 'finish: Explicitly finishing moves to 100%') - t.done() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js deleted file mode 100644 index 799a7670..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js +++ /dev/null @@ -1,96 +0,0 @@ -'use strict' -var test = require('tap').test -var TrackerGroup = require('../index.js').TrackerGroup -var testEvent = require('./lib/test-event.js') - -test('TrackerGroup', function (t) { - var name = 'test' - - var track = new TrackerGroup(name) - t.is(track.completed(), 0, 'Nothing todo is 0 completion') - testEvent(track, 'change', afterFinishEmpty) - track.finish() - var a, b - function afterFinishEmpty (er, onChangeName, completion) { - t.is(er, null, 'finishEmpty: on change event fired') - t.is(onChangeName, name, 'finishEmpty: on change emits the correct name') - t.is(completion, 1, 'finishEmpty: passed through completion was correct') - t.is(track.completed(), 1, 'finishEmpty: Finishing an empty group actually finishes it') - - track = new TrackerGroup(name) - a = track.newItem('a', 10, 1) - b = track.newItem('b', 10, 1) - t.is(track.completed(), 0, 'Initially empty') - testEvent(track, 'change', afterCompleteWork) - a.completeWork(5) - } - function afterCompleteWork (er, onChangeName, completion) { - t.is(er, null, 'on change event fired') - t.is(onChangeName, 'a', 'on change emits the correct name') - t.is(completion, 0.25, 'Complete half of one is a quarter overall') - t.is(track.completed(), 0.25, 'Complete half of one is a quarter overall') - testEvent(track, 'change', afterFinishAll) - track.finish() - } - function afterFinishAll (er, onChangeName, completion) { - t.is(er, null, 'finishAll: on change event fired') - t.is(onChangeName, name, 'finishAll: on change emits the correct name') - t.is(completion, 1, 'Finishing everything ') - t.is(track.completed(), 1, 'Finishing everything ') - - track = new TrackerGroup(name) - a = track.newItem('a', 10, 2) - b = track.newItem('b', 10, 1) - t.is(track.completed(), 0, 'weighted: Initially empty') - testEvent(track, 'change', afterWeightedCompleteWork) - a.completeWork(5) - } - function afterWeightedCompleteWork (er, onChangeName, completion) { - t.is(er, null, 'weighted: on change event fired') - t.is(onChangeName, 'a', 'weighted: on change emits the correct name') - t.is(Math.floor(completion * 100), 33, 'weighted: Complete half of double weighted') - t.is(Math.floor(track.completed() * 100), 33, 'weighted: Complete half of double weighted') - testEvent(track, 'change', afterWeightedFinishAll) - track.finish() - } - function afterWeightedFinishAll (er, onChangeName, completion) { - t.is(er, null, 'weightedFinishAll: on change event fired') - t.is(onChangeName, name, 'weightedFinishAll: on change emits the correct name') - t.is(completion, 1, 'weightedFinishaAll: Finishing everything ') - t.is(track.completed(), 1, 'weightedFinishaAll: Finishing everything ') - - track = new TrackerGroup(name) - a = track.newGroup('a', 10) - b = track.newGroup('b', 10) - var a1 = a.newItem('a.1', 10) - a1.completeWork(5) - t.is(track.completed(), 0.25, 'nested: Initially quarter done') - testEvent(track, 'change', afterNestedComplete) - b.finish() - } - function afterNestedComplete (er, onChangeName, completion) { - t.is(er, null, 'nestedComplete: on change event fired') - t.is(onChangeName, 'b', 'nestedComplete: on change emits the correct name') - t.is(completion, 0.75, 'nestedComplete: Finishing everything ') - t.is(track.completed(), 0.75, 'nestedComplete: Finishing everything ') - t.end() - } -}) - -test('cycles', function (t) { - var track = new TrackerGroup('top') - testCycle(track, track) - var layer1 = track.newGroup('layer1') - testCycle(layer1, track) - t.end() - - function testCycle (addTo, toAdd) { - try { - addTo.addUnit(toAdd) - t.fail(toAdd.name) - } catch (ex) { - console.log(ex) - t.pass(toAdd.name) - } - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js deleted file mode 100644 index 65f04b03..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict' -var test = require('tap').test -var util = require('util') -var stream = require('readable-stream') -var TrackerStream = require('../index.js').TrackerStream -var testEvent = require('./lib/test-event.js') - -var Sink = function () { - stream.Writable.apply(this, arguments) -} -util.inherits(Sink, stream.Writable) -Sink.prototype._write = function (data, encoding, cb) { - cb() -} - -test('TrackerStream', function (t) { - t.plan(9) - - var name = 'test' - var track = new TrackerStream(name) - - t.is(track.completed(), 0, 'Nothing todo is 0 completion') - - var todo = 10 - track = new TrackerStream(name, todo) - t.is(track.completed(), 0, 'Nothing done is 0 completion') - - track.pipe(new Sink()) - - testEvent(track, 'change', afterCompleteWork) - track.write('0123456789') - function afterCompleteWork (er, onChangeName) { - t.is(er, null, 'write: on change event fired') - t.is(onChangeName, name, 'write: on change emits the correct name') - t.is(track.completed(), 1, 'write: 100% completed') - - testEvent(track, 'change', afterAddWork) - track.addWork(10) - } - function afterAddWork (er, onChangeName) { - t.is(er, null, 'addWork: on change event fired') - t.is(track.completed(), 0.5, 'addWork: 50% completed') - - testEvent(track, 'change', afterAllWork) - track.write('ABCDEFGHIJKLMNOPQRST') - } - function afterAllWork (er) { - t.is(er, null, 'allWork: on change event fired') - t.is(track.completed(), 1, 'allWork: 100% completed') - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js deleted file mode 100644 index 6f436875..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' -var EventEmitter = require('events').EventEmitter -var util = require('util') - -var trackerId = 0 -var TrackerBase = module.exports = function (name) { - EventEmitter.call(this) - this.id = ++trackerId - this.name = name -} -util.inherits(TrackerBase, EventEmitter) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js deleted file mode 100644 index 9759e122..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js +++ /dev/null @@ -1,107 +0,0 @@ -'use strict' -var util = require('util') -var TrackerBase = require('./tracker-base.js') -var Tracker = require('./tracker.js') -var TrackerStream = require('./tracker-stream.js') - -var TrackerGroup = module.exports = function (name) { - TrackerBase.call(this, name) - this.parentGroup = null - this.trackers = [] - this.completion = {} - this.weight = {} - this.totalWeight = 0 - this.finished = false - this.bubbleChange = bubbleChange(this) -} -util.inherits(TrackerGroup, TrackerBase) - -function bubbleChange (trackerGroup) { - return function (name, completed, tracker) { - trackerGroup.completion[tracker.id] = completed - if (trackerGroup.finished) return - trackerGroup.emit('change', name || trackerGroup.name, trackerGroup.completed(), trackerGroup) - } -} - -TrackerGroup.prototype.nameInTree = function () { - var names = [] - var from = this - while (from) { - names.unshift(from.name) - from = from.parentGroup - } - return names.join('/') -} - -TrackerGroup.prototype.addUnit = function (unit, weight) { - if (unit.addUnit) { - var toTest = this - while (toTest) { - if (unit === toTest) { - throw new Error( - 'Attempted to add tracker group ' + - unit.name + ' to tree that already includes it ' + - this.nameInTree(this)) - } - toTest = toTest.parentGroup - } - unit.parentGroup = this - } - this.weight[unit.id] = weight || 1 - this.totalWeight += this.weight[unit.id] - this.trackers.push(unit) - this.completion[unit.id] = unit.completed() - unit.on('change', this.bubbleChange) - if (!this.finished) this.emit('change', unit.name, this.completion[unit.id], unit) - return unit -} - -TrackerGroup.prototype.completed = function () { - if (this.trackers.length === 0) return 0 - var valPerWeight = 1 / this.totalWeight - var completed = 0 - for (var ii = 0; ii < this.trackers.length; ii++) { - var trackerId = this.trackers[ii].id - completed += valPerWeight * this.weight[trackerId] * this.completion[trackerId] - } - return completed -} - -TrackerGroup.prototype.newGroup = function (name, weight) { - return this.addUnit(new TrackerGroup(name), weight) -} - -TrackerGroup.prototype.newItem = function (name, todo, weight) { - return this.addUnit(new Tracker(name, todo), weight) -} - -TrackerGroup.prototype.newStream = function (name, todo, weight) { - return this.addUnit(new TrackerStream(name, todo), weight) -} - -TrackerGroup.prototype.finish = function () { - this.finished = true - if (!this.trackers.length) this.addUnit(new Tracker(), 1, true) - for (var ii = 0; ii < this.trackers.length; ii++) { - var tracker = this.trackers[ii] - tracker.finish() - tracker.removeListener('change', this.bubbleChange) - } - this.emit('change', this.name, 1, this) -} - -var buffer = ' ' -TrackerGroup.prototype.debug = function (depth) { - depth = depth || 0 - var indent = depth ? buffer.substr(0, depth) : '' - var output = indent + (this.name || 'top') + ': ' + this.completed() + '\n' - this.trackers.forEach(function (tracker) { - if (tracker instanceof TrackerGroup) { - output += tracker.debug(depth + 1) - } else { - output += indent + ' ' + tracker.name + ': ' + tracker.completed() + '\n' - } - }) - return output -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js deleted file mode 100644 index fb9598ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict' -var util = require('util') -var stream = require('readable-stream') -var delegate = require('delegates') -var Tracker = require('./tracker.js') - -var TrackerStream = module.exports = function (name, size, options) { - stream.Transform.call(this, options) - this.tracker = new Tracker(name, size) - this.name = name - this.id = this.tracker.id - this.tracker.on('change', delegateChange(this)) -} -util.inherits(TrackerStream, stream.Transform) - -function delegateChange (trackerStream) { - return function (name, completion, tracker) { - trackerStream.emit('change', name, completion, trackerStream) - } -} - -TrackerStream.prototype._transform = function (data, encoding, cb) { - this.tracker.completeWork(data.length ? data.length : 1) - this.push(data) - cb() -} - -TrackerStream.prototype._flush = function (cb) { - this.tracker.finish() - cb() -} - -delegate(TrackerStream.prototype, 'tracker') - .method('completed') - .method('addWork') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js deleted file mode 100644 index 68c2339b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict' -var util = require('util') -var TrackerBase = require('./tracker-base.js') - -var Tracker = module.exports = function (name, todo) { - TrackerBase.call(this, name) - this.workDone = 0 - this.workTodo = todo || 0 -} -util.inherits(Tracker, TrackerBase) - -Tracker.prototype.completed = function () { - return this.workTodo === 0 ? 0 : this.workDone / this.workTodo -} - -Tracker.prototype.addWork = function (work) { - this.workTodo += work - this.emit('change', this.name, this.completed(), this) -} - -Tracker.prototype.completeWork = function (work) { - this.workDone += work - if (this.workDone > this.workTodo) this.workDone = this.workTodo - this.emit('change', this.name, this.completed(), this) -} - -Tracker.prototype.finish = function () { - this.workTodo = this.workDone = 1 - this.emit('change', this.name, 1, this) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/.npmignore deleted file mode 100644 index df22a16c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/.npmignore +++ /dev/null @@ -1,32 +0,0 @@ -# Logs -logs -*.log - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directory -# Commenting this out is preferred by some people, see -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- -node_modules - -# Users Environment Variables -.lock-wscript - -# Editor cruft -*~ -.#* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/LICENSE deleted file mode 100644 index e7560529..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2014, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/README.md deleted file mode 100644 index 337dc9d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/README.md +++ /dev/null @@ -1,166 +0,0 @@ -gauge -===== - -A nearly stateless terminal based horizontal gauge / progress bar. - -```javascript -var Gauge = require("gauge") - -var gauge = new Gauge() - -gauge.show("test", 0.20) - -gauge.pulse("this") - -gauge.hide() -``` - -![](example.png) - - -### `var gauge = new Gauge([options], [ansiStream])` - -* **options** – *(optional)* An option object. (See [below] for details.) -* **ansiStream** – *(optional)* A stream that's been blessed by the [ansi] - module to include various commands for controlling the cursor in a terminal. - -[ansi]: https://www.npmjs.com/package/ansi -[below]: #theme-objects - -Constructs a new gauge. Gauges are drawn on a single line, and are not drawn -if the current terminal isn't a tty. - -If you resize your terminal in a way that can be detected then the gauge -will be drawn at the new size. As a general rule, growing your terminal will -be clean, but shrinking your terminal will result in cruft as we don't have -enough information to know where what we wrote previously is now located. - -The **options** object can have the following properties, all of which are -optional: - -* maxUpdateFrequency: defaults to 50 msec, the gauge will not be drawn more - than once in this period of time. This applies to `show` and `pulse` - calls, but if you `hide` and then `show` the gauge it will draw it - regardless of time since last draw. -* theme: defaults to Gauge.unicode` if the terminal supports - unicode according to [has-unicode], otherwise it defaults to `Gauge.ascii`. - Details on the [theme object](#theme-objects) are documented elsewhere. -* template: see [documentation elsewhere](#template-objects) for - defaults and details. - -[has-unicode]: https://www.npmjs.com/package/has-unicode - -If **ansiStream** isn't passed in, then one will be constructed from stderr -with `ansi(process.stderr)`. - -### `gauge.show([name, [completed]])` - -* **name** – *(optional)* The name of the current thing contributing to progress. Defaults to the last value used, or "". -* **completed** – *(optional)* The portion completed as a value between 0 and 1. Defaults to the last value used, or 0. - -If `process.stdout.isTTY` is false then this does nothing. If completed is 0 -and `gauge.pulse` has never been called, then similarly nothing will be printed. - -If `maxUpdateFrequency` msec haven't passed since the last call to `show` or -`pulse` then similarly, nothing will be printed. (Actually, the update is -deferred until `maxUpdateFrequency` msec have passed and if nothing else has -happened, the gauge update will happen.) - -### `gauge.hide()` - -Removes the gauge from the terminal. - -### `gauge.pulse([name])` - -* **name** – *(optional)* The specific thing that triggered this pulse - -Spins the spinner in the gauge to show output. If **name** is included then -it will be combined with the last name passed to `gauge.show` using the -subsection property of the theme (typically a right facing arrow). - -### `gauge.disable()` - -Hides the gauge and ignores further calls to `show` or `pulse`. - -### `gauge.enable()` - -Shows the gauge and resumes updating when `show` or `pulse` is called. - -### `gauge.setTheme(theme)` - -Change the active theme, will be displayed with the next show or pulse - -### `gauge.setTemplate(template)` - -Change the active template, will be displayed with the next show or pulse - -### Theme Objects - -There are two theme objects available as a part of the module, `Gauge.unicode` and `Gauge.ascii`. -Theme objects have the follow properties: - -| Property | Unicode | ASCII | -| ---------- | ------- | ----- | -| startgroup | ╢ | \| | -| endgroup | ╟ | \| | -| complete | █ | # | -| incomplete | ░ | - | -| spinner | ▀▐▄▌ | -\\\|/ | -| subsection | → | -> | - -*startgroup*, *endgroup* and *subsection* can be as many characters as you want. - -*complete* and *incomplete* should be a single character width each. - -*spinner* is a list of characters to use in turn when displaying an activity -spinner. The Gauge will spin as many characters as you give here. - -### Template Objects - -A template is an array of objects and strings that, after being evaluated, -will be turned into the gauge line. The default template is: - -```javascript -[ - {type: "name", separated: true, maxLength: 25, minLength: 25, align: "left"}, - {type: "spinner", separated: true}, - {type: "startgroup"}, - {type: "completionbar"}, - {type: "endgroup"} -] -``` - -The various template elements can either be **plain strings**, in which case they will -be be included verbatum in the output. - -If the template element is an object, it can have the following keys: - -* *type* can be: - * `name` – The most recent name passed to `show`; if this is in response to a - `pulse` then the name passed to `pulse` will be appended along with the - subsection property from the theme. - * `spinner` – If you've ever called `pulse` this will be one of the characters - from the spinner property of the theme. - * `startgroup` – The `startgroup` property from the theme. - * `completionbar` – This progress bar itself - * `endgroup` – The `endgroup` property from the theme. -* *separated* – If true, the element will be separated with spaces from things on - either side (and margins count as space, so it won't be indented), but only - if its included. -* *maxLength* – The maximum length for this element. If its value is longer it - will be truncated. -* *minLength* – The minimum length for this element. If its value is shorter it - will be padded according to the *align* value. -* *align* – (Default: left) Possible values "left", "right" and "center". Works - as you'd expect from word processors. -* *length* – Provides a single value for both *minLength* and *maxLength*. If both - *length* and *minLength or *maxLength* are specifed then the latter take precedence. - -### Tracking Completion - -If you have more than one thing going on that you want to track completion -of, you may find the related [are-we-there-yet] helpful. It's `change` -event can be wired up to the `show` method to get a more traditional -progress bar interface. - -[are-we-there-yet]: https://www.npmjs.com/package/are-we-there-yet diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/example.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/example.png deleted file mode 100644 index 2667cac4..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/example.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md deleted file mode 100644 index f43453bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.pad v4.1.0 - -The [lodash](https://lodash.com/) method `_.pad` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.pad -``` - -In Node.js: -```js -var pad = require('lodash.pad'); -``` - -See the [documentation](https://lodash.com/docs#pad) or [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash.pad) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js deleted file mode 100644 index 6220e0f8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js +++ /dev/null @@ -1,296 +0,0 @@ -/** - * lodash 4.1.0 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -var repeat = require('lodash.repeat'), - toString = require('lodash.tostring'); - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** Used to match leading and trailing whitespace. */ -var reTrim = /^\s+|\s+$/g; - -/** Used to detect bad signed hexadecimal string values. */ -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - -/** Used to detect binary string values. */ -var reIsBinary = /^0b[01]+$/i; - -/** Used to detect octal string values. */ -var reIsOctal = /^0o[0-7]+$/i; - -/** Used to compose unicode character classes. */ -var rsAstralRange = '\\ud800-\\udfff', - rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23', - rsComboSymbolsRange = '\\u20d0-\\u20f0', - rsVarRange = '\\ufe0e\\ufe0f'; - -/** Used to compose unicode capture groups. */ -var rsAstral = '[' + rsAstralRange + ']', - rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']', - rsFitz = '\\ud83c[\\udffb-\\udfff]', - rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', - rsNonAstral = '[^' + rsAstralRange + ']', - rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', - rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', - rsZWJ = '\\u200d'; - -/** Used to compose unicode regexes. */ -var reOptMod = rsModifier + '?', - rsOptVar = '[' + rsVarRange + ']?', - rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', - rsSeq = rsOptVar + reOptMod + rsOptJoin, - rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - -/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ -var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); - -/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ -var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']'); - -/** Built-in method references without a dependency on `root`. */ -var freeParseInt = parseInt; - -/** - * Gets the number of symbols in `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the string size. - */ -function stringSize(string) { - if (!(string && reHasComplexSymbol.test(string))) { - return string.length; - } - var result = reComplexSymbol.lastIndex = 0; - while (reComplexSymbol.test(string)) { - result++; - } - return result; -} - -/** - * Converts `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ -function stringToArray(string) { - return string.match(reComplexSymbol); -} - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeCeil = Math.ceil, - nativeFloor = Math.floor; - -/** - * Creates the padding for `string` based on `length`. The `chars` string - * is truncated if the number of characters exceeds `length`. - * - * @private - * @param {string} string The string to create padding for. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padding for `string`. - */ -function createPadding(string, length, chars) { - length = toInteger(length); - - var strLength = stringSize(string); - if (!length || strLength >= length) { - return ''; - } - var padLength = length - strLength; - chars = chars === undefined ? ' ' : (chars + ''); - - var result = repeat(chars, nativeCeil(padLength / stringSize(chars))); - return reHasComplexSymbol.test(chars) - ? stringToArray(result).slice(0, padLength).join('') - : result.slice(0, padLength); -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array constructors, and - // PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Converts `value` to an integer. - * - * **Note:** This function is loosely based on [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3'); - * // => 3 - */ -function toInteger(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - var remainder = value % 1; - return value === value ? (remainder ? value - remainder : value) : 0; -} - -/** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3); - * // => 3 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3'); - * // => 3 - */ -function toNumber(value) { - if (isObject(value)) { - var other = isFunction(value.valueOf) ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); -} - -/** - * Pads `string` on the left and right sides if it's shorter than `length`. - * Padding characters are truncated if they can't be evenly divided by `length`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.pad('abc', 8); - * // => ' abc ' - * - * _.pad('abc', 8, '_-'); - * // => '_-abc_-_' - * - * _.pad('abc', 3); - * // => 'abc' - */ -function pad(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = stringSize(string); - if (!length || strLength >= length) { - return string; - } - var mid = (length - strLength) / 2, - leftLength = nativeFloor(mid), - rightLength = nativeCeil(mid); - - return createPadding('', leftLength, chars) + string + createPadding('', rightLength, chars); -} - -module.exports = pad; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/README.md deleted file mode 100644 index 33b447cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.repeat v4.0.0 - -The [lodash](https://lodash.com/) method `_.repeat` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.repeat -``` - -In Node.js: -```js -var repeat = require('lodash.repeat'); -``` - -See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash.repeat) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/index.js deleted file mode 100644 index 7a54e857..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/index.js +++ /dev/null @@ -1,215 +0,0 @@ -/** - * lodash 4.0.0 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -var toString = require('lodash.tostring'); - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0, - MAX_SAFE_INTEGER = 9007199254740991, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** Used to match leading and trailing whitespace. */ -var reTrim = /^\s+|\s+$/g; - -/** Used to detect bad signed hexadecimal string values. */ -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - -/** Used to detect binary string values. */ -var reIsBinary = /^0b[01]+$/i; - -/** Used to detect octal string values. */ -var reIsOctal = /^0o[0-7]+$/i; - -/** Built-in method references without a dependency on `root`. */ -var freeParseInt = parseInt; - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeFloor = Math.floor; - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array constructors, and - // PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Converts `value` to an integer. - * - * **Note:** This function is loosely based on [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3'); - * // => 3 - */ -function toInteger(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - var remainder = value % 1; - return value === value ? (remainder ? value - remainder : value) : 0; -} - -/** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3); - * // => 3 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3'); - * // => 3 - */ -function toNumber(value) { - if (isObject(value)) { - var other = isFunction(value.valueOf) ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); -} - -/** - * Repeats the given string `n` times. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to repeat. - * @param {number} [n=0] The number of times to repeat the string. - * @returns {string} Returns the repeated string. - * @example - * - * _.repeat('*', 3); - * // => '***' - * - * _.repeat('abc', 2); - * // => 'abcabc' - * - * _.repeat('abc', 0); - * // => '' - */ -function repeat(string, n) { - string = toString(string); - n = toInteger(n); - - var result = ''; - if (!string || n < 1 || n > MAX_SAFE_INTEGER) { - return result; - } - // Leverage the exponentiation by squaring algorithm for a faster repeat. - // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. - do { - if (n % 2) { - result += string; - } - n = nativeFloor(n / 2); - string += string; - } while (n); - - return result; -} - -module.exports = repeat; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/package.json deleted file mode 100644 index b9946dcd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/package.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "_args": [ - [ - "lodash.repeat@^4.0.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad" - ] - ], - "_from": "lodash.repeat@>=4.0.0 <5.0.0", - "_id": "lodash.repeat@4.0.0", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/gauge/lodash.pad/lodash.repeat", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/lodash.repeat-4.0.0.tgz_1455602646227_0.7481637196615338" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.18", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.repeat", - "raw": "lodash.repeat@^4.0.0", - "rawSpec": "^4.0.0", - "scope": null, - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog/gauge/lodash.pad" - ], - "_resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz", - "_shasum": "aaf570b2ab0bfb0dda6d6e93291d54b30b1f7d22", - "_shrinkwrap": null, - "_spec": "lodash.repeat@^4.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine@iceddev.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash.tostring": "^4.0.0" - }, - "description": "The lodash method `_.repeat` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "aaf570b2ab0bfb0dda6d6e93291d54b30b1f7d22", - "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "repeat" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash.repeat", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md deleted file mode 100644 index b3858fd6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.tostring v4.1.2 - -The [lodash](https://lodash.com/) method `_.toString` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.tostring -``` - -In Node.js: -```js -var toString = require('lodash.tostring'); -``` - -See the [documentation](https://lodash.com/docs#toString) or [package source](https://github.com/lodash/lodash/blob/4.1.2-npm-packages/lodash.tostring) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js deleted file mode 100644 index 5c0e3e2b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js +++ /dev/null @@ -1,164 +0,0 @@ -/** - * lodash 4.1.2 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0; - -/** `Object#toString` result references. */ -var symbolTag = '[object Symbol]'; - -/** Used to determine if values are of the language type `Object`. */ -var objectTypes = { - 'function': true, - 'object': true -}; - -/** Detect free variable `exports`. */ -var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) - ? exports - : undefined; - -/** Detect free variable `module`. */ -var freeModule = (objectTypes[typeof module] && module && !module.nodeType) - ? module - : undefined; - -/** Detect free variable `global` from Node.js. */ -var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global); - -/** Detect free variable `self`. */ -var freeSelf = checkGlobal(objectTypes[typeof self] && self); - -/** Detect free variable `window`. */ -var freeWindow = checkGlobal(objectTypes[typeof window] && window); - -/** Detect `this` as the global object. */ -var thisGlobal = checkGlobal(objectTypes[typeof this] && this); - -/** - * Used as a reference to the global object. - * - * The `this` value is used if it's the global object to avoid Greasemonkey's - * restricted `window` object, otherwise the `window` object is used. - */ -var root = freeGlobal || - ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || - freeSelf || thisGlobal || Function('return this')(); - -/** - * Checks if `value` is a global object. - * - * @private - * @param {*} value The value to check. - * @returns {null|Object} Returns `value` if it's a global object, else `null`. - */ -function checkGlobal(value) { - return (value && value.Object === Object) ? value : null; -} - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** Built-in value references. */ -var Symbol = root.Symbol; - -/** Used to convert symbols to primitives and strings. */ -var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -/** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ -function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && objectToString.call(value) == symbolTag); -} - -/** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to process. - * @returns {string} Returns the string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ -function toString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (value == null) { - return ''; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; -} - -module.exports = toString; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json deleted file mode 100644 index 8ee1a504..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "_args": [ - [ - "lodash.tostring@^4.0.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad" - ] - ], - "_from": "lodash.tostring@>=4.0.0 <5.0.0", - "_id": "lodash.tostring@4.1.2", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/gauge/lodash.pad/lodash.tostring", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-13-west.internal.npmjs.com", - "tmp": "tmp/lodash.tostring-4.1.2.tgz_1456896853027_0.8195764778647572" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.17", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.tostring", - "raw": "lodash.tostring@^4.0.0", - "rawSpec": "^4.0.0", - "scope": null, - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog/gauge/lodash.pad", - "/npmlog/gauge/lodash.pad/lodash.repeat" - ], - "_resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz", - "_shasum": "7d326a5cf64da4298f2fd35b688d848267535288", - "_shrinkwrap": null, - "_spec": "lodash.tostring@^4.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": {}, - "description": "The lodash method `_.toString` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "7d326a5cf64da4298f2fd35b688d848267535288", - "tarball": "http://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "tostring" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "phated" - } - ], - "name": "lodash.tostring", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.1.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json deleted file mode 100644 index 2b83241d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "_args": [ - [ - "lodash.pad@^4.1.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge" - ] - ], - "_from": "lodash.pad@>=4.1.0 <5.0.0", - "_id": "lodash.pad@4.1.0", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/gauge/lodash.pad", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/lodash.pad-4.1.0.tgz_1455615516420_0.3130727862007916" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.18", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.pad", - "raw": "lodash.pad@^4.1.0", - "rawSpec": "^4.1.0", - "scope": null, - "spec": ">=4.1.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog/gauge" - ], - "_resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz", - "_shasum": "dbbe3a9681fccb69970473a2263f50c196ac3aa9", - "_shrinkwrap": null, - "_spec": "lodash.pad@^4.1.0", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine@iceddev.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash.repeat": "^4.0.0", - "lodash.tostring": "^4.0.0" - }, - "description": "The lodash method `_.pad` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "dbbe3a9681fccb69970473a2263f50c196ac3aa9", - "tarball": "http://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "pad" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash.pad", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md deleted file mode 100644 index ac849878..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.padend v4.2.0 - -The [lodash](https://lodash.com/) method `_.padEnd` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.padend -``` - -In Node.js: -```js -var padEnd = require('lodash.padend'); -``` - -See the [documentation](https://lodash.com/docs#padEnd) or [package source](https://github.com/lodash/lodash/blob/4.2.0-npm-packages/lodash.padend) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js deleted file mode 100644 index d7c813a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js +++ /dev/null @@ -1,285 +0,0 @@ -/** - * lodash 4.2.0 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -var repeat = require('lodash.repeat'), - toString = require('lodash.tostring'); - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** Used to match leading and trailing whitespace. */ -var reTrim = /^\s+|\s+$/g; - -/** Used to detect bad signed hexadecimal string values. */ -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - -/** Used to detect binary string values. */ -var reIsBinary = /^0b[01]+$/i; - -/** Used to detect octal string values. */ -var reIsOctal = /^0o[0-7]+$/i; - -/** Used to compose unicode character classes. */ -var rsAstralRange = '\\ud800-\\udfff', - rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23', - rsComboSymbolsRange = '\\u20d0-\\u20f0', - rsVarRange = '\\ufe0e\\ufe0f'; - -/** Used to compose unicode capture groups. */ -var rsAstral = '[' + rsAstralRange + ']', - rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']', - rsFitz = '\\ud83c[\\udffb-\\udfff]', - rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', - rsNonAstral = '[^' + rsAstralRange + ']', - rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', - rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', - rsZWJ = '\\u200d'; - -/** Used to compose unicode regexes. */ -var reOptMod = rsModifier + '?', - rsOptVar = '[' + rsVarRange + ']?', - rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', - rsSeq = rsOptVar + reOptMod + rsOptJoin, - rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - -/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ -var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); - -/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ -var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']'); - -/** Built-in method references without a dependency on `root`. */ -var freeParseInt = parseInt; - -/** - * Gets the number of symbols in `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the string size. - */ -function stringSize(string) { - if (!(string && reHasComplexSymbol.test(string))) { - return string.length; - } - var result = reComplexSymbol.lastIndex = 0; - while (reComplexSymbol.test(string)) { - result++; - } - return result; -} - -/** - * Converts `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ -function stringToArray(string) { - return string.match(reComplexSymbol); -} - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeCeil = Math.ceil; - -/** - * Creates the padding for `string` based on `length`. The `chars` string - * is truncated if the number of characters exceeds `length`. - * - * @private - * @param {string} string The string to create padding for. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padding for `string`. - */ -function createPadding(string, length, chars) { - length = toInteger(length); - - var strLength = stringSize(string); - if (!length || strLength >= length) { - return ''; - } - var padLength = length - strLength; - chars = chars === undefined ? ' ' : (chars + ''); - - var result = repeat(chars, nativeCeil(padLength / stringSize(chars))); - return reHasComplexSymbol.test(chars) - ? stringToArray(result).slice(0, padLength).join('') - : result.slice(0, padLength); -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array constructors, and - // PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Converts `value` to an integer. - * - * **Note:** This function is loosely based on [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3'); - * // => 3 - */ -function toInteger(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - var remainder = value % 1; - return value === value ? (remainder ? value - remainder : value) : 0; -} - -/** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3); - * // => 3 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3'); - * // => 3 - */ -function toNumber(value) { - if (isObject(value)) { - var other = isFunction(value.valueOf) ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); -} - -/** - * Pads `string` on the right side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padEnd('abc', 6); - * // => 'abc ' - * - * _.padEnd('abc', 6, '_-'); - * // => 'abc_-_' - * - * _.padEnd('abc', 3); - * // => 'abc' - */ -function padEnd(string, length, chars) { - string = toString(string); - return string + createPadding(string, length, chars); -} - -module.exports = padEnd; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/README.md deleted file mode 100644 index 33b447cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.repeat v4.0.0 - -The [lodash](https://lodash.com/) method `_.repeat` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.repeat -``` - -In Node.js: -```js -var repeat = require('lodash.repeat'); -``` - -See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash.repeat) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/index.js deleted file mode 100644 index 7a54e857..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/index.js +++ /dev/null @@ -1,215 +0,0 @@ -/** - * lodash 4.0.0 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -var toString = require('lodash.tostring'); - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0, - MAX_SAFE_INTEGER = 9007199254740991, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** Used to match leading and trailing whitespace. */ -var reTrim = /^\s+|\s+$/g; - -/** Used to detect bad signed hexadecimal string values. */ -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - -/** Used to detect binary string values. */ -var reIsBinary = /^0b[01]+$/i; - -/** Used to detect octal string values. */ -var reIsOctal = /^0o[0-7]+$/i; - -/** Built-in method references without a dependency on `root`. */ -var freeParseInt = parseInt; - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeFloor = Math.floor; - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array constructors, and - // PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Converts `value` to an integer. - * - * **Note:** This function is loosely based on [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3'); - * // => 3 - */ -function toInteger(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - var remainder = value % 1; - return value === value ? (remainder ? value - remainder : value) : 0; -} - -/** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3); - * // => 3 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3'); - * // => 3 - */ -function toNumber(value) { - if (isObject(value)) { - var other = isFunction(value.valueOf) ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); -} - -/** - * Repeats the given string `n` times. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to repeat. - * @param {number} [n=0] The number of times to repeat the string. - * @returns {string} Returns the repeated string. - * @example - * - * _.repeat('*', 3); - * // => '***' - * - * _.repeat('abc', 2); - * // => 'abcabc' - * - * _.repeat('abc', 0); - * // => '' - */ -function repeat(string, n) { - string = toString(string); - n = toInteger(n); - - var result = ''; - if (!string || n < 1 || n > MAX_SAFE_INTEGER) { - return result; - } - // Leverage the exponentiation by squaring algorithm for a faster repeat. - // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. - do { - if (n % 2) { - result += string; - } - n = nativeFloor(n / 2); - string += string; - } while (n); - - return result; -} - -module.exports = repeat; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/package.json deleted file mode 100644 index e98ee412..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/package.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "_args": [ - [ - "lodash.repeat@^4.0.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad" - ], - [ - "lodash.repeat@^4.0.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend" - ] - ], - "_from": "lodash.repeat@>=4.0.0 <5.0.0", - "_id": "lodash.repeat@4.0.0", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/gauge/lodash.padend/lodash.repeat", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/lodash.repeat-4.0.0.tgz_1455602646227_0.7481637196615338" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.18", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.repeat", - "raw": "lodash.repeat@^4.0.0", - "rawSpec": "^4.0.0", - "scope": null, - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog/gauge/lodash.padend" - ], - "_shrinkwrap": null, - "_spec": "lodash.repeat@^4.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine@iceddev.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash.tostring": "^4.0.0" - }, - "description": "The lodash method `_.repeat` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "aaf570b2ab0bfb0dda6d6e93291d54b30b1f7d22", - "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "repeat" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash.repeat", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md deleted file mode 100644 index b3858fd6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.tostring v4.1.2 - -The [lodash](https://lodash.com/) method `_.toString` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.tostring -``` - -In Node.js: -```js -var toString = require('lodash.tostring'); -``` - -See the [documentation](https://lodash.com/docs#toString) or [package source](https://github.com/lodash/lodash/blob/4.1.2-npm-packages/lodash.tostring) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js deleted file mode 100644 index 5c0e3e2b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js +++ /dev/null @@ -1,164 +0,0 @@ -/** - * lodash 4.1.2 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0; - -/** `Object#toString` result references. */ -var symbolTag = '[object Symbol]'; - -/** Used to determine if values are of the language type `Object`. */ -var objectTypes = { - 'function': true, - 'object': true -}; - -/** Detect free variable `exports`. */ -var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) - ? exports - : undefined; - -/** Detect free variable `module`. */ -var freeModule = (objectTypes[typeof module] && module && !module.nodeType) - ? module - : undefined; - -/** Detect free variable `global` from Node.js. */ -var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global); - -/** Detect free variable `self`. */ -var freeSelf = checkGlobal(objectTypes[typeof self] && self); - -/** Detect free variable `window`. */ -var freeWindow = checkGlobal(objectTypes[typeof window] && window); - -/** Detect `this` as the global object. */ -var thisGlobal = checkGlobal(objectTypes[typeof this] && this); - -/** - * Used as a reference to the global object. - * - * The `this` value is used if it's the global object to avoid Greasemonkey's - * restricted `window` object, otherwise the `window` object is used. - */ -var root = freeGlobal || - ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || - freeSelf || thisGlobal || Function('return this')(); - -/** - * Checks if `value` is a global object. - * - * @private - * @param {*} value The value to check. - * @returns {null|Object} Returns `value` if it's a global object, else `null`. - */ -function checkGlobal(value) { - return (value && value.Object === Object) ? value : null; -} - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** Built-in value references. */ -var Symbol = root.Symbol; - -/** Used to convert symbols to primitives and strings. */ -var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -/** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ -function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && objectToString.call(value) == symbolTag); -} - -/** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to process. - * @returns {string} Returns the string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ -function toString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (value == null) { - return ''; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; -} - -module.exports = toString; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json deleted file mode 100644 index 61501df1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "_args": [ - [ - "lodash.tostring@^4.0.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad" - ], - [ - "lodash.tostring@^4.0.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend" - ] - ], - "_from": "lodash.tostring@>=4.0.0 <5.0.0", - "_id": "lodash.tostring@4.1.2", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/gauge/lodash.padend/lodash.tostring", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-13-west.internal.npmjs.com", - "tmp": "tmp/lodash.tostring-4.1.2.tgz_1456896853027_0.8195764778647572" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.17", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.tostring", - "raw": "lodash.tostring@^4.0.0", - "rawSpec": "^4.0.0", - "scope": null, - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog/gauge/lodash.padend", - "/npmlog/gauge/lodash.padend/lodash.repeat" - ], - "_shrinkwrap": null, - "_spec": "lodash.tostring@^4.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": {}, - "description": "The lodash method `_.toString` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "7d326a5cf64da4298f2fd35b688d848267535288", - "tarball": "http://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "tostring" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "phated" - } - ], - "name": "lodash.tostring", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.1.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json deleted file mode 100644 index fa826877..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "_args": [ - [ - "lodash.padend@^4.1.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge" - ] - ], - "_from": "lodash.padend@>=4.1.0 <5.0.0", - "_id": "lodash.padend@4.2.0", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/gauge/lodash.padend", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/lodash.padend-4.2.0.tgz_1455615519416_0.9670630963519216" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.18", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.padend", - "raw": "lodash.padend@^4.1.0", - "rawSpec": "^4.1.0", - "scope": null, - "spec": ">=4.1.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog/gauge" - ], - "_resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz", - "_shasum": "b84e8c3401d4538055c6e321a51e3aee19881a18", - "_shrinkwrap": null, - "_spec": "lodash.padend@^4.1.0", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine@iceddev.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash.repeat": "^4.0.0", - "lodash.tostring": "^4.0.0" - }, - "description": "The lodash method `_.padEnd` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "b84e8c3401d4538055c6e321a51e3aee19881a18", - "tarball": "http://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "padend" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "phated" - } - ], - "name": "lodash.padend", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.2.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md deleted file mode 100644 index d3176b00..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.padstart v4.2.0 - -The [lodash](https://lodash.com/) method `_.padStart` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.padstart -``` - -In Node.js: -```js -var padStart = require('lodash.padstart'); -``` - -See the [documentation](https://lodash.com/docs#padStart) or [package source](https://github.com/lodash/lodash/blob/4.2.0-npm-packages/lodash.padstart) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js deleted file mode 100644 index 9f403a1f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js +++ /dev/null @@ -1,285 +0,0 @@ -/** - * lodash 4.2.0 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -var repeat = require('lodash.repeat'), - toString = require('lodash.tostring'); - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** Used to match leading and trailing whitespace. */ -var reTrim = /^\s+|\s+$/g; - -/** Used to detect bad signed hexadecimal string values. */ -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - -/** Used to detect binary string values. */ -var reIsBinary = /^0b[01]+$/i; - -/** Used to detect octal string values. */ -var reIsOctal = /^0o[0-7]+$/i; - -/** Used to compose unicode character classes. */ -var rsAstralRange = '\\ud800-\\udfff', - rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23', - rsComboSymbolsRange = '\\u20d0-\\u20f0', - rsVarRange = '\\ufe0e\\ufe0f'; - -/** Used to compose unicode capture groups. */ -var rsAstral = '[' + rsAstralRange + ']', - rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']', - rsFitz = '\\ud83c[\\udffb-\\udfff]', - rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', - rsNonAstral = '[^' + rsAstralRange + ']', - rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', - rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', - rsZWJ = '\\u200d'; - -/** Used to compose unicode regexes. */ -var reOptMod = rsModifier + '?', - rsOptVar = '[' + rsVarRange + ']?', - rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', - rsSeq = rsOptVar + reOptMod + rsOptJoin, - rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - -/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ -var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); - -/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ -var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']'); - -/** Built-in method references without a dependency on `root`. */ -var freeParseInt = parseInt; - -/** - * Gets the number of symbols in `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the string size. - */ -function stringSize(string) { - if (!(string && reHasComplexSymbol.test(string))) { - return string.length; - } - var result = reComplexSymbol.lastIndex = 0; - while (reComplexSymbol.test(string)) { - result++; - } - return result; -} - -/** - * Converts `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ -function stringToArray(string) { - return string.match(reComplexSymbol); -} - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeCeil = Math.ceil; - -/** - * Creates the padding for `string` based on `length`. The `chars` string - * is truncated if the number of characters exceeds `length`. - * - * @private - * @param {string} string The string to create padding for. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padding for `string`. - */ -function createPadding(string, length, chars) { - length = toInteger(length); - - var strLength = stringSize(string); - if (!length || strLength >= length) { - return ''; - } - var padLength = length - strLength; - chars = chars === undefined ? ' ' : (chars + ''); - - var result = repeat(chars, nativeCeil(padLength / stringSize(chars))); - return reHasComplexSymbol.test(chars) - ? stringToArray(result).slice(0, padLength).join('') - : result.slice(0, padLength); -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array constructors, and - // PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Converts `value` to an integer. - * - * **Note:** This function is loosely based on [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3'); - * // => 3 - */ -function toInteger(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - var remainder = value % 1; - return value === value ? (remainder ? value - remainder : value) : 0; -} - -/** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3); - * // => 3 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3'); - * // => 3 - */ -function toNumber(value) { - if (isObject(value)) { - var other = isFunction(value.valueOf) ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); -} - -/** - * Pads `string` on the left side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padStart('abc', 6); - * // => ' abc' - * - * _.padStart('abc', 6, '_-'); - * // => '_-_abc' - * - * _.padStart('abc', 3); - * // => 'abc' - */ -function padStart(string, length, chars) { - string = toString(string); - return createPadding(string, length, chars) + string; -} - -module.exports = padStart; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/README.md deleted file mode 100644 index 33b447cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.repeat v4.0.0 - -The [lodash](https://lodash.com/) method `_.repeat` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.repeat -``` - -In Node.js: -```js -var repeat = require('lodash.repeat'); -``` - -See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash.repeat) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/index.js deleted file mode 100644 index 7a54e857..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/index.js +++ /dev/null @@ -1,215 +0,0 @@ -/** - * lodash 4.0.0 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -var toString = require('lodash.tostring'); - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0, - MAX_SAFE_INTEGER = 9007199254740991, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - -/** `Object#toString` result references. */ -var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** Used to match leading and trailing whitespace. */ -var reTrim = /^\s+|\s+$/g; - -/** Used to detect bad signed hexadecimal string values. */ -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - -/** Used to detect binary string values. */ -var reIsBinary = /^0b[01]+$/i; - -/** Used to detect octal string values. */ -var reIsOctal = /^0o[0-7]+$/i; - -/** Built-in method references without a dependency on `root`. */ -var freeParseInt = parseInt; - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeFloor = Math.floor; - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array constructors, and - // PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Converts `value` to an integer. - * - * **Note:** This function is loosely based on [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3'); - * // => 3 - */ -function toInteger(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - var remainder = value % 1; - return value === value ? (remainder ? value - remainder : value) : 0; -} - -/** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3); - * // => 3 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3'); - * // => 3 - */ -function toNumber(value) { - if (isObject(value)) { - var other = isFunction(value.valueOf) ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); -} - -/** - * Repeats the given string `n` times. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to repeat. - * @param {number} [n=0] The number of times to repeat the string. - * @returns {string} Returns the repeated string. - * @example - * - * _.repeat('*', 3); - * // => '***' - * - * _.repeat('abc', 2); - * // => 'abcabc' - * - * _.repeat('abc', 0); - * // => '' - */ -function repeat(string, n) { - string = toString(string); - n = toInteger(n); - - var result = ''; - if (!string || n < 1 || n > MAX_SAFE_INTEGER) { - return result; - } - // Leverage the exponentiation by squaring algorithm for a faster repeat. - // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. - do { - if (n % 2) { - result += string; - } - n = nativeFloor(n / 2); - string += string; - } while (n); - - return result; -} - -module.exports = repeat; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/package.json deleted file mode 100644 index 8bb2966c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/package.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "_args": [ - [ - "lodash.repeat@^4.0.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad" - ], - [ - "lodash.repeat@^4.0.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart" - ] - ], - "_from": "lodash.repeat@>=4.0.0 <5.0.0", - "_id": "lodash.repeat@4.0.0", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/gauge/lodash.padstart/lodash.repeat", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/lodash.repeat-4.0.0.tgz_1455602646227_0.7481637196615338" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.18", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.repeat", - "raw": "lodash.repeat@^4.0.0", - "rawSpec": "^4.0.0", - "scope": null, - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog/gauge/lodash.padstart" - ], - "_shrinkwrap": null, - "_spec": "lodash.repeat@^4.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine@iceddev.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash.tostring": "^4.0.0" - }, - "description": "The lodash method `_.repeat` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "aaf570b2ab0bfb0dda6d6e93291d54b30b1f7d22", - "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "repeat" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine@iceddev.com", - "name": "phated" - } - ], - "name": "lodash.repeat", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE deleted file mode 100644 index bcbe13d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright 2012-2016 The Dojo Foundation -Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md deleted file mode 100644 index b3858fd6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# lodash.tostring v4.1.2 - -The [lodash](https://lodash.com/) method `_.toString` exported as a [Node.js](https://nodejs.org/) module. - -## Installation - -Using npm: -```bash -$ {sudo -H} npm i -g npm -$ npm i --save lodash.tostring -``` - -In Node.js: -```js -var toString = require('lodash.tostring'); -``` - -See the [documentation](https://lodash.com/docs#toString) or [package source](https://github.com/lodash/lodash/blob/4.1.2-npm-packages/lodash.tostring) for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js deleted file mode 100644 index 5c0e3e2b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js +++ /dev/null @@ -1,164 +0,0 @@ -/** - * lodash 4.1.2 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright 2012-2016 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0; - -/** `Object#toString` result references. */ -var symbolTag = '[object Symbol]'; - -/** Used to determine if values are of the language type `Object`. */ -var objectTypes = { - 'function': true, - 'object': true -}; - -/** Detect free variable `exports`. */ -var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) - ? exports - : undefined; - -/** Detect free variable `module`. */ -var freeModule = (objectTypes[typeof module] && module && !module.nodeType) - ? module - : undefined; - -/** Detect free variable `global` from Node.js. */ -var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global); - -/** Detect free variable `self`. */ -var freeSelf = checkGlobal(objectTypes[typeof self] && self); - -/** Detect free variable `window`. */ -var freeWindow = checkGlobal(objectTypes[typeof window] && window); - -/** Detect `this` as the global object. */ -var thisGlobal = checkGlobal(objectTypes[typeof this] && this); - -/** - * Used as a reference to the global object. - * - * The `this` value is used if it's the global object to avoid Greasemonkey's - * restricted `window` object, otherwise the `window` object is used. - */ -var root = freeGlobal || - ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || - freeSelf || thisGlobal || Function('return this')(); - -/** - * Checks if `value` is a global object. - * - * @private - * @param {*} value The value to check. - * @returns {null|Object} Returns `value` if it's a global object, else `null`. - */ -function checkGlobal(value) { - return (value && value.Object === Object) ? value : null; -} - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** Built-in value references. */ -var Symbol = root.Symbol; - -/** Used to convert symbols to primitives and strings. */ -var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -/** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ -function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && objectToString.call(value) == symbolTag); -} - -/** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to process. - * @returns {string} Returns the string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ -function toString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (value == null) { - return ''; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; -} - -module.exports = toString; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json deleted file mode 100644 index a50df30e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "_args": [ - [ - "lodash.tostring@^4.0.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad" - ], - [ - "lodash.tostring@^4.0.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart" - ] - ], - "_from": "lodash.tostring@>=4.0.0 <5.0.0", - "_id": "lodash.tostring@4.1.2", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/gauge/lodash.padstart/lodash.tostring", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-13-west.internal.npmjs.com", - "tmp": "tmp/lodash.tostring-4.1.2.tgz_1456896853027_0.8195764778647572" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.17", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.tostring", - "raw": "lodash.tostring@^4.0.0", - "rawSpec": "^4.0.0", - "scope": null, - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog/gauge/lodash.padstart", - "/npmlog/gauge/lodash.padstart/lodash.repeat" - ], - "_shrinkwrap": null, - "_spec": "lodash.tostring@^4.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": {}, - "description": "The lodash method `_.toString` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "7d326a5cf64da4298f2fd35b688d848267535288", - "tarball": "http://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "tostring" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "phated" - } - ], - "name": "lodash.tostring", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.1.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json deleted file mode 100644 index 0a4deb7c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "_args": [ - [ - "lodash.padstart@^4.1.0", - "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge" - ] - ], - "_from": "lodash.padstart@>=4.1.0 <5.0.0", - "_id": "lodash.padstart@4.2.0", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/gauge/lodash.padstart", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/lodash.padstart-4.2.0.tgz_1455615522339_0.6710881665349007" - }, - "_npmUser": { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - "_npmVersion": "2.14.18", - "_phantomChildren": {}, - "_requested": { - "name": "lodash.padstart", - "raw": "lodash.padstart@^4.1.0", - "rawSpec": "^4.1.0", - "scope": null, - "spec": ">=4.1.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog/gauge" - ], - "_resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz", - "_shasum": "e36f89fd6c3b5072219087695b765de83ec96985", - "_shrinkwrap": null, - "_spec": "lodash.padstart@^4.1.0", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge", - "author": { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "contributors": [ - { - "email": "john.david.dalton@gmail.com", - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - }, - { - "email": "blaine@iceddev.com", - "name": "Blaine Bublitz", - "url": "https://github.com/phated" - }, - { - "email": "mathias@qiwi.be", - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "dependencies": { - "lodash.repeat": "^4.0.0", - "lodash.tostring": "^4.0.0" - }, - "description": "The lodash method `_.padStart` exported as a module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "e36f89fd6c3b5072219087695b765de83ec96985", - "tarball": "http://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz" - }, - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "keywords": [ - "lodash-modularized", - "padstart" - ], - "license": "MIT", - "maintainers": [ - { - "email": "john.david.dalton@gmail.com", - "name": "jdalton" - }, - { - "email": "mathias@qiwi.be", - "name": "mathias" - }, - { - "email": "blaine.bublitz@gmail.com", - "name": "phated" - } - ], - "name": "lodash.padstart", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/lodash/lodash.git" - }, - "scripts": { - "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" - }, - "version": "4.2.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/package.json deleted file mode 100644 index efbb346b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_args": [ - [ - "gauge@~1.2.5", - "/Users/rebecca/code/npm/node_modules/npmlog" - ] - ], - "_from": "gauge@>=1.2.5 <1.3.0", - "_id": "gauge@1.2.7", - "_inCache": true, - "_installable": true, - "_location": "/npmlog/gauge", - "_nodeVersion": "4.2.2", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/gauge-1.2.7.tgz_1455835409513_0.6293477965518832" - }, - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "3.7.2", - "_phantomChildren": {}, - "_requested": { - "name": "gauge", - "raw": "gauge@~1.2.5", - "rawSpec": "~1.2.5", - "scope": null, - "spec": ">=1.2.5 <1.3.0", - "type": "range" - }, - "_requiredBy": [ - "/npmlog" - ], - "_shasum": "e9cec5483d3d4ee0ef44b60a7d99e4935e136d93", - "_shrinkwrap": null, - "_spec": "gauge@~1.2.5", - "_where": "/Users/rebecca/code/npm/node_modules/npmlog", - "author": { - "email": "me@re-becca.org", - "name": "Rebecca Turner" - }, - "bugs": { - "url": "https://github.com/iarna/gauge/issues" - }, - "dependencies": { - "ansi": "^0.3.0", - "has-unicode": "^2.0.0", - "lodash.pad": "^4.1.0", - "lodash.padend": "^4.1.0", - "lodash.padstart": "^4.1.0" - }, - "description": "A terminal based horizontal guage", - "devDependencies": { - "tap": "^5.6.0" - }, - "directories": {}, - "dist": { - "shasum": "e9cec5483d3d4ee0ef44b60a7d99e4935e136d93", - "tarball": "http://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz" - }, - "gitHead": "75a7d0a4ed67489ac992ed3d211bed60376ca7c1", - "homepage": "https://github.com/iarna/gauge", - "keywords": [ - "progressbar", - "progress", - "gauge" - ], - "license": "ISC", - "main": "progress-bar.js", - "maintainers": [ - { - "email": "me@re-becca.org", - "name": "iarna" - } - ], - "name": "gauge", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/iarna/gauge.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.2.7" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js deleted file mode 100644 index ddfc4a44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js +++ /dev/null @@ -1,225 +0,0 @@ -"use strict" -var hasUnicode = require("has-unicode") -var ansi = require("ansi") -var align = { - center: require("lodash.pad"), - left: require("lodash.padend"), - right: require("lodash.padstart") -} -var defaultStream = process.stderr -function isTTY() { - return process.stderr.isTTY -} -function getWritableTTYColumns() { - // Writing to the final column wraps the line - // We have to use stdout here, because Node's magic SIGWINCH handler only - // updates process.stdout, not process.stderr - return process.stdout.columns - 1 -} - -var ProgressBar = module.exports = function (options, cursor) { - if (! options) options = {} - if (! cursor && options.write) { - cursor = options - options = {} - } - if (! cursor) { - cursor = ansi(defaultStream) - } - this.cursor = cursor - this.showing = false - this.theme = options.theme || (hasUnicode() ? ProgressBar.unicode : ProgressBar.ascii) - this.template = options.template || [ - {type: "name", separated: true, length: 25}, - {type: "spinner", separated: true}, - {type: "startgroup"}, - {type: "completionbar"}, - {type: "endgroup"} - ] - this.updatefreq = options.maxUpdateFrequency == null ? 50 : options.maxUpdateFrequency - this.lastName = "" - this.lastCompleted = 0 - this.spun = 0 - this.last = new Date(0) - - var self = this - this._handleSizeChange = function () { - if (!self.showing) return - self.hide() - self.show() - } -} -ProgressBar.prototype = {} - -ProgressBar.unicode = { - startgroup: "╢", - endgroup: "╟", - complete: "█", - incomplete: "░", - spinner: "▀▐▄▌", - subsection: "→" -} - -ProgressBar.ascii = { - startgroup: "|", - endgroup: "|", - complete: "#", - incomplete: "-", - spinner: "-\\|/", - subsection: "->" -} - -ProgressBar.prototype.setTheme = function(theme) { - this.theme = theme -} - -ProgressBar.prototype.setTemplate = function(template) { - this.template = template -} - -ProgressBar.prototype._enableResizeEvents = function() { - process.stdout.on('resize', this._handleSizeChange) -} - -ProgressBar.prototype._disableResizeEvents = function() { - process.stdout.removeListener('resize', this._handleSizeChange) -} - -ProgressBar.prototype.disable = function() { - this.hide() - this.disabled = true -} - -ProgressBar.prototype.enable = function() { - this.disabled = false - this.show() -} - -ProgressBar.prototype.hide = function() { - if (!isTTY()) return - if (this.disabled) return - this.cursor.show() - if (this.showing) this.cursor.up(1) - this.cursor.horizontalAbsolute(0).eraseLine() - this.showing = false -} - -var repeat = function (str, count) { - var out = "" - for (var ii=0; ii P | |----|\n' ], - [ 'show' ] ]) -}) - -test("window resizing", function (t) { - t.plan(16) - process.stderr.isTTY = true - process.stdout.columns = 32 - bar.show("NAME", 0.1) - cursor = [] - bar.last = new Date(0) - bar.pulse() - isOutput(t, "32 columns", - [ [ 'up', 1 ], - [ 'hide' ], - [ 'horizontalAbsolute', 0 ], - [ 'write', 'NAME / |##------------------|\n' ], - [ 'show' ] ]) - - process.stdout.columns = 16 - bar.show("NAME", 0.5) - cursor = [] - bar.last = new Date(0) - bar.pulse() - isOutput(t, "16 columns", - [ [ 'up', 1 ], - [ 'hide' ], - [ 'horizontalAbsolute', 0 ], - [ 'write', 'NAME - |##--|\n' ], - [ 'show' ] ]); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/package.json deleted file mode 100644 index 153145ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/package.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "_args": [ - [ - "npmlog@~2.0.2", - "/Users/rebecca/code/npm" - ] - ], - "_from": "npmlog@>=2.0.2 <2.1.0", - "_id": "npmlog@2.0.3", - "_inCache": true, - "_installable": true, - "_location": "/npmlog", - "_nodeVersion": "4.2.2", - "_npmOperationalInternal": { - "host": "packages-13-west.internal.npmjs.com", - "tmp": "tmp/npmlog-2.0.3.tgz_1458089035965_0.5096880353521556" - }, - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "3.8.1", - "_phantomChildren": { - "has-unicode": "2.0.0", - "readable-stream": "2.0.6" - }, - "_requested": { - "name": "npmlog", - "raw": "npmlog@~2.0.2", - "rawSpec": "~2.0.2", - "scope": null, - "spec": ">=2.0.2 <2.1.0", - "type": "range" - }, - "_requiredBy": [ - "/", - "/node-gyp", - "/npm-registry-client" - ], - "_shasum": "020f99351f0c02e399c674ba256e7c4d3b3dd298", - "_shrinkwrap": null, - "_spec": "npmlog@~2.0.2", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/npm/npmlog/issues" - }, - "dependencies": { - "ansi": "~0.3.1", - "are-we-there-yet": "~1.1.2", - "gauge": "~1.2.5" - }, - "description": "logger for npm", - "devDependencies": { - "tap": "~5.7.0" - }, - "directories": {}, - "dist": { - "shasum": "020f99351f0c02e399c674ba256e7c4d3b3dd298", - "tarball": "http://registry.npmjs.org/npmlog/-/npmlog-2.0.3.tgz" - }, - "gitHead": "9dfe26296118ceb5443e76f347f256c35e7ca999", - "homepage": "https://github.com/npm/npmlog#readme", - "license": "ISC", - "main": "log.js", - "maintainers": [ - { - "email": "me@re-becca.org", - "name": "iarna" - }, - { - "email": "i@izs.me", - "name": "isaacs" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - } - ], - "name": "npmlog", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/npmlog.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "2.0.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/test/basic.js deleted file mode 100644 index 1887d3a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/test/basic.js +++ /dev/null @@ -1,235 +0,0 @@ -var tap = require('tap') -var log = require('../') - -var result = [] -var logEvents = [] -var logInfoEvents = [] -var logPrefixEvents = [] - -var util = require('util') - -var resultExpect = -[ '\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[7msill\u001b[0m \u001b[0m\u001b[35msilly prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[34m\u001b[40mverb\u001b[0m \u001b[0m\u001b[35mverbose prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32minfo\u001b[0m \u001b[0m\u001b[35minfo prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32m\u001b[40mhttp\u001b[0m \u001b[0m\u001b[35mhttp prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[30m\u001b[43mWARN\u001b[0m \u001b[0m\u001b[35mwarn prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35merror prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32minfo\u001b[0m \u001b[0m\u001b[35minfo prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32m\u001b[40mhttp\u001b[0m \u001b[0m\u001b[35mhttp prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[30m\u001b[43mWARN\u001b[0m \u001b[0m\u001b[35mwarn prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35merror prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m This is a longer\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m message, with some details\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m and maybe a stack.\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m \n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u0007noise\u001b[0m\u001b[35m\u001b[0m LOUD NOISES\n', - '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u0007noise\u001b[0m \u001b[0m\u001b[35merror\u001b[0m erroring\n', - '\u001b[0m' ] - -var logPrefixEventsExpect = -[ { id: 2, - level: 'info', - prefix: 'info prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 9, - level: 'info', - prefix: 'info prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 16, - level: 'info', - prefix: 'info prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] } ] - -// should be the same. -var logInfoEventsExpect = logPrefixEventsExpect - -var logEventsExpect = -[ { id: 0, - level: 'silly', - prefix: 'silly prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 1, - level: 'verbose', - prefix: 'verbose prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 2, - level: 'info', - prefix: 'info prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 3, - level: 'http', - prefix: 'http prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 4, - level: 'warn', - prefix: 'warn prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 5, - level: 'error', - prefix: 'error prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 6, - level: 'silent', - prefix: 'silent prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 7, - level: 'silly', - prefix: 'silly prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 8, - level: 'verbose', - prefix: 'verbose prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 9, - level: 'info', - prefix: 'info prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 10, - level: 'http', - prefix: 'http prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 11, - level: 'warn', - prefix: 'warn prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 12, - level: 'error', - prefix: 'error prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 13, - level: 'silent', - prefix: 'silent prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 14, - level: 'silly', - prefix: 'silly prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 15, - level: 'verbose', - prefix: 'verbose prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 16, - level: 'info', - prefix: 'info prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 17, - level: 'http', - prefix: 'http prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 18, - level: 'warn', - prefix: 'warn prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 19, - level: 'error', - prefix: 'error prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 20, - level: 'silent', - prefix: 'silent prefix', - message: 'x = {"foo":{"bar":"baz"}}', - messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] }, - { id: 21, - level: 'error', - prefix: '404', - message: 'This is a longer\nmessage, with some details\nand maybe a stack.\n', - messageRaw: [ 'This is a longer\nmessage, with some details\nand maybe a stack.\n' ] }, - { id: 22, - level: 'noise', - prefix: false, - message: 'LOUD NOISES', - messageRaw: [ 'LOUD NOISES' ] }, - { id: 23, - level: 'noise', - prefix: 'error', - message: 'erroring', - messageRaw: [ 'erroring' ] } ] - -var Stream = require('stream').Stream -var s = new Stream() -s.write = function (m) { - result.push(m) -} - -s.writable = true -s.isTTY = true -s.end = function () {} - -log.stream = s - -log.heading = 'npm' - - -tap.test('basic', function (t) { - log.on('log', logEvents.push.bind(logEvents)) - log.on('log.info', logInfoEvents.push.bind(logInfoEvents)) - log.on('info prefix', logPrefixEvents.push.bind(logPrefixEvents)) - - console.error('log.level=silly') - log.level = 'silly' - log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}}) - log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}}) - log.info('info prefix', 'x = %j', {foo:{bar:'baz'}}) - log.http('http prefix', 'x = %j', {foo:{bar:'baz'}}) - log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}}) - log.error('error prefix', 'x = %j', {foo:{bar:'baz'}}) - log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}}) - - console.error('log.level=silent') - log.level = 'silent' - log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}}) - log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}}) - log.info('info prefix', 'x = %j', {foo:{bar:'baz'}}) - log.http('http prefix', 'x = %j', {foo:{bar:'baz'}}) - log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}}) - log.error('error prefix', 'x = %j', {foo:{bar:'baz'}}) - log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}}) - - console.error('log.level=info') - log.level = 'info' - log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}}) - log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}}) - log.info('info prefix', 'x = %j', {foo:{bar:'baz'}}) - log.http('http prefix', 'x = %j', {foo:{bar:'baz'}}) - log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}}) - log.error('error prefix', 'x = %j', {foo:{bar:'baz'}}) - log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}}) - log.error('404', 'This is a longer\n'+ - 'message, with some details\n'+ - 'and maybe a stack.\n') - log.addLevel('noise', 10000, {beep: true}) - log.noise(false, 'LOUD NOISES') - log.noise('error', 'erroring') - - t.deepEqual(result.join('').trim(), resultExpect.join('').trim(), 'result') - t.deepEqual(log.record, logEventsExpect, 'record') - t.deepEqual(logEvents, logEventsExpect, 'logEvents') - t.deepEqual(logInfoEvents, logInfoEventsExpect, 'logInfoEvents') - t.deepEqual(logPrefixEvents, logPrefixEventsExpect, 'logPrefixEvents') - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/test/progress.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/test/progress.js deleted file mode 100644 index 68dca2af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/npmlog/test/progress.js +++ /dev/null @@ -1,131 +0,0 @@ -'use strict' - -var test = require('tap').test -var Progress = require('are-we-there-yet') -var log = require('../log.js') - -var actions = [] -log.gauge = { - enable: function () { - actions.push(['enable']) - }, - disable: function () { - actions.push(['disable']) - }, - hide: function () { - actions.push(['hide']) - }, - show: function (name, completed) { - actions.push(['show', name, completed]) - }, - pulse: function (name) { - actions.push(['pulse', name]) - } -} - -function didActions(t, msg, output) { - var tests = [] - for (var ii = 0; ii < output.length; ++ ii) { - for (var jj = 0; jj < output[ii].length; ++ jj) { - tests.push({cmd: ii, arg: jj}) - } - } - t.is(actions.length, output.length, msg) - tests.forEach(function (test) { - t.is(actions[test.cmd] ? actions[test.cmd][test.arg] : null, - output[test.cmd][test.arg], - msg + ': ' + output[test.cmd] + (test.arg ? ' arg #'+test.arg : '')) - }) - actions = [] -} - -function resetTracker() { - log.disableProgress() - log.tracker = new Progress.TrackerGroup() - log.enableProgress() - actions = [] -} - -test('enableProgress', function (t) { - t.plan(6) - resetTracker() - log.disableProgress() - actions = [] - log.enableProgress() - didActions(t, 'enableProgress', [ [ 'enable' ], [ 'show', undefined, 0 ] ]) - log.enableProgress() - didActions(t, 'enableProgress again', []) -}) - -test('disableProgress', function (t) { - t.plan(4) - resetTracker() - log.disableProgress() - didActions(t, 'disableProgress', [ [ 'hide' ], [ 'disable' ] ]) - log.disableProgress() - didActions(t, 'disableProgress again', []) -}) - -test('showProgress', function (t) { - t.plan(5) - resetTracker() - log.disableProgress() - actions = [] - log.showProgress('foo') - didActions(t, 'showProgress disabled', []) - log.enableProgress() - actions = [] - log.showProgress('foo') - didActions(t, 'showProgress', [ [ 'show', 'foo', 0 ] ]) -}) - -test('clearProgress', function (t) { - t.plan(3) - resetTracker() - log.clearProgress() - didActions(t, 'clearProgress', [ [ 'hide' ] ]) - log.disableProgress() - actions = [] - log.clearProgress() - didActions(t, 'clearProgress disabled', [ ]) -}) - -test("newItem", function (t) { - t.plan(12) - resetTracker() - actions = [] - var a = log.newItem("test", 10) - didActions(t, "newItem", [ [ 'show', 'test', 0 ] ]) - a.completeWork(5) - didActions(t, "newItem:completeWork", [ [ 'show', 'test', 0.5 ] ]) - a.finish() - didActions(t, "newItem:finish", [ [ 'show', 'test', 1 ] ]) -}) - -// test that log objects proxy through. And test that completion status filters up -test("newGroup", function (t) { - t.plan(23) - resetTracker() - var a = log.newGroup("newGroup") - didActions(t, 'newGroup', [[ 'show', 'newGroup', 0 ]]) - a.warn("test", "this is a test") - didActions(t, "newGroup:warn", [ [ 'pulse', 'test' ], [ 'hide' ], [ 'show', undefined, 0 ] ]) - var b = a.newItem("newGroup2", 10) - didActions(t, "newGroup:newItem", [ [ 'show', 'newGroup2', 0 ] ]) - b.completeWork(5) - didActions(t, "newGroup:completeWork", [ [ 'show', 'newGroup2', 0.5] ]) - a.finish() - didActions(t, "newGroup:finish", [ [ 'show', 'newGroup', 1 ] ]) -}) - -test("newStream", function (t) { - t.plan(13) - resetTracker() - var a = log.newStream("newStream", 10) - didActions(t, "newStream", [ [ 'show', 'newStream', 0 ] ]) - a.write("abcde") - didActions(t, "newStream", [ [ 'show', 'newStream', 0.5 ] ]) - a.write("fghij") - didActions(t, "newStream", [ [ 'show', 'newStream', 1 ] ]) - t.is(log.tracker.completed(), 1, "Overall completion") -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/README.md deleted file mode 100644 index a2981ea0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# once - -Only call a function once. - -## usage - -```javascript -var once = require('once') - -function load (file, cb) { - cb = once(cb) - loader.load('file') - loader.once('load', cb) - loader.once('error', cb) -} -``` - -Or add to the Function.prototype in a responsible way: - -```javascript -// only has to be done once -require('once').proto() - -function load (file, cb) { - cb = cb.once() - loader.load('file') - loader.once('load', cb) - loader.once('error', cb) -} -``` - -Ironically, the prototype feature makes this module twice as -complicated as necessary. - -To check whether you function has been called, use `fn.called`. Once the -function is called for the first time the return value of the original -function is saved in `fn.value` and subsequent calls will continue to -return this value. - -```javascript -var once = require('once') - -function load (cb) { - cb = once(cb) - var stream = createStream() - stream.once('data', cb) - stream.once('end', function () { - if (!cb.called) cb(new Error('not found')) - }) -} -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/once.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/once.js deleted file mode 100644 index 2e1e721b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/once.js +++ /dev/null @@ -1,21 +0,0 @@ -var wrappy = require('wrappy') -module.exports = wrappy(once) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/package.json deleted file mode 100644 index f5fd8173..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/once/package.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "_args": [ - [ - "once@~1.3.3", - "/Users/ogd/Documents/projects/npm/npm" - ] - ], - "_from": "once@>=1.3.3 <1.4.0", - "_id": "once@1.3.3", - "_inCache": true, - "_installable": true, - "_location": "/once", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "once", - "raw": "once@~1.3.3", - "rawSpec": "~1.3.3", - "scope": null, - "spec": ">=1.3.3 <1.4.0", - "type": "range" - }, - "_requiredBy": [ - "/", - "/glob", - "/inflight", - "/node-gyp/glob", - "/npm-registry-client", - "/read-package-tree", - "/readdir-scoped-modules", - "/standard/standard-engine/eslint/file-entry-cache/flat-cache/del/globby/glob", - "/standard/standard-engine/eslint/inquirer/run-async", - "/tap/nyc/istanbul" - ], - "_resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "_shasum": "b2e261557ce4c314ec8304f3fa82663e4297ca20", - "_shrinkwrap": null, - "_spec": "once@~1.3.3", - "_where": "/Users/ogd/Documents/projects/npm/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/once/issues" - }, - "dependencies": { - "wrappy": "1" - }, - "description": "Run a function exactly one time", - "devDependencies": { - "tap": "^1.2.0" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "b2e261557ce4c314ec8304f3fa82663e4297ca20", - "tarball": "http://registry.npmjs.org/once/-/once-1.3.3.tgz" - }, - "files": [ - "once.js" - ], - "gitHead": "2ad558657e17fafd24803217ba854762842e4178", - "homepage": "https://github.com/isaacs/once#readme", - "keywords": [ - "function", - "once", - "one", - "single" - ], - "license": "ISC", - "main": "once.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "name": "once", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/once.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.3.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/LICENSE.txt deleted file mode 100644 index f580e3d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright © 2012–2015 Domenic Denicola - -This work is free. You can redistribute it and/or modify it under the -terms of the Do What The Fuck You Want To Public License, Version 2, -as published by Sam Hocevar. See below for more details. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/README.md deleted file mode 100644 index 8a803f33..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# It Opens Stuff - -That is, in your desktop environment. This will make *actual windows pop up*, with stuff in them: - -```bash -npm install opener -g - -opener http://google.com -opener ./my-file.txt -opener firefox -opener npm run lint -``` - -Also if you want to use it programmatically you can do that too: - -```js -var opener = require("opener"); - -opener("http://google.com"); -opener("./my-file.txt"); -opener("firefox"); -opener("npm run lint"); -``` - -Plus, it returns the child process created, so you can do things like let your script exit while the window stays open: - -```js -var editor = opener("documentation.odt"); -editor.unref(); -// These other unrefs may be necessary if your OS's opener process -// exits before the process it started is complete. -editor.stdin.unref(); -editor.stdout.unref(); -editor.stderr.unref(); -``` - - -## Use It for Good - -Like opening the user's browser with a test harness in your package's test script: - -```json -{ - "scripts": { - "test": "opener ./test/runner.html" - }, - "devDependencies": { - "opener": "*" - } -} -``` - -## Why - -Because Windows has `start`, Macs have `open`, and *nix has `xdg-open`. At least -[according to some guy on StackOverflow](http://stackoverflow.com/q/1480971/3191). And I like things that work on all -three. Like Node.js. And Opener. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/opener.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/opener.js deleted file mode 100755 index 8951fa2d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/opener.js +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env node - -"use strict"; - -var childProcess = require("child_process"); - -function opener(args, options, callback) { - // http://stackoverflow.com/q/1480971/3191, but see below for Windows. - var command = process.platform === "win32" ? "cmd" : - process.platform === "darwin" ? "open" : - "xdg-open"; - - if (typeof args === "string") { - args = [args]; - } - - if (typeof options === "function") { - callback = options; - options = {}; - } - - if (options && typeof options === "object" && options.command) { - if (process.platform === "win32") { - // *always* use cmd on windows - args = [options.command].concat(args); - } else { - command = options.command; - } - } - - if (process.platform === "win32") { - // On Windows, we really want to use the "start" command. But, the rules regarding arguments with spaces, and - // escaping them with quotes, can get really arcane. So the easiest way to deal with this is to pass off the - // responsibility to "cmd /c", which has that logic built in. - // - // Furthermore, if "cmd /c" double-quoted the first parameter, then "start" will interpret it as a window title, - // so we need to add a dummy empty-string window title: http://stackoverflow.com/a/154090/3191 - // - // Additionally, on Windows ampersand needs to be escaped when passed to "start" - args = args.map(function(value) { - return value.replace(/&/g, '^&'); - }); - args = ["/c", "start", '""'].concat(args); - } - - return childProcess.execFile(command, args, options, callback); -} - -// Export `opener` for programmatic access. -// You might use this to e.g. open a website: `opener("http://google.com")` -module.exports = opener; - -// If we're being called from the command line, just execute, using the command-line arguments. -if (require.main && require.main.id === module.id) { - opener(process.argv.slice(2), function (error) { - if (error) { - throw error; - } - }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/package.json deleted file mode 100644 index 7364b919..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/opener/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "opener", - "description": "Opens stuff, like webpages and files and executables, cross-platform", - "version": "1.4.1", - "author": { - "name": "Domenic Denicola", - "email": "d@domenic.me", - "url": "https://domenic.me/" - }, - "license": "WTFPL", - "repository": { - "type": "git", - "url": "git+https://github.com/domenic/opener.git" - }, - "main": "opener.js", - "bin": { - "opener": "opener.js" - }, - "files": [ - "opener.js" - ], - "scripts": { - "lint": "jshint opener.js" - }, - "devDependencies": { - "jshint": "^2.6.3" - }, - "gitHead": "d0ee95b19951703462fa593baa16e81fdff7827c", - "bugs": { - "url": "https://github.com/domenic/opener/issues" - }, - "homepage": "https://github.com/domenic/opener", - "_id": "opener@1.4.1", - "_shasum": "897590acd1aed3311b703b58bccb4d43f56f2895", - "_from": "opener@>=1.4.1 <1.5.0", - "_npmVersion": "2.7.0", - "_nodeVersion": "1.5.1", - "_npmUser": { - "name": "domenic", - "email": "d@domenic.me" - }, - "maintainers": [ - { - "name": "domenic", - "email": "domenic@domenicdenicola.com" - } - ], - "dist": { - "shasum": "897590acd1aed3311b703b58bccb4d43f56f2895", - "tarball": "http://registry.npmjs.org/opener/-/opener-1.4.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/opener/-/opener-1.4.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/.npmignore deleted file mode 100644 index 8c23deeb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/.npmignore +++ /dev/null @@ -1,13 +0,0 @@ -*.swp -.*.swp - -.DS_Store -*~ -.project -.settings -npm-debug.log -coverage.html -.idea -lib-cov - -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/.travis.yml deleted file mode 100644 index 99f2bbf5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: node_js -language: node_js -node_js: - - '0.8' - - '0.10' - - '0.12' - - 'iojs' -before_install: - - npm install -g npm@latest diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/README.md deleted file mode 100644 index 08fd9002..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/README.md +++ /dev/null @@ -1,63 +0,0 @@ -# osenv - -Look up environment settings specific to different operating systems. - -## Usage - -```javascript -var osenv = require('osenv') -var path = osenv.path() -var user = osenv.user() -// etc. - -// Some things are not reliably in the env, and have a fallback command: -var h = osenv.hostname(function (er, hostname) { - h = hostname -}) -// This will still cause it to be memoized, so calling osenv.hostname() -// is now an immediate operation. - -// You can always send a cb, which will get called in the nextTick -// if it's been memoized, or wait for the fallback data if it wasn't -// found in the environment. -osenv.hostname(function (er, hostname) { - if (er) console.error('error looking up hostname') - else console.log('this machine calls itself %s', hostname) -}) -``` - -## osenv.hostname() - -The machine name. Calls `hostname` if not found. - -## osenv.user() - -The currently logged-in user. Calls `whoami` if not found. - -## osenv.prompt() - -Either PS1 on unix, or PROMPT on Windows. - -## osenv.tmpdir() - -The place where temporary files should be created. - -## osenv.home() - -No place like it. - -## osenv.path() - -An array of the places that the operating system will search for -executables. - -## osenv.editor() - -Return the executable name of the editor program. This uses the EDITOR -and VISUAL environment variables, and falls back to `vi` on Unix, or -`notepad.exe` on Windows. - -## osenv.shell() - -The SHELL on Unix, which Windows calls the ComSpec. Defaults to 'bash' -or 'cmd'. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/index.js deleted file mode 100644 index 33066166..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/index.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; -var os = require('os'); - -function homedir() { - var env = process.env; - var home = env.HOME; - var user = env.LOGNAME || env.USER || env.LNAME || env.USERNAME; - - if (process.platform === 'win32') { - return env.USERPROFILE || env.HOMEDRIVE + env.HOMEPATH || home || null; - } - - if (process.platform === 'darwin') { - return home || (user ? '/Users/' + user : null); - } - - if (process.platform === 'linux') { - return home || (process.getuid() === 0 ? '/root' : (user ? '/home/' + user : null)); - } - - return home || null; -} - -module.exports = typeof os.homedir === 'function' ? os.homedir : homedir; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/package.json deleted file mode 100644 index 53c8c6e5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "os-homedir", - "version": "1.0.1", - "description": "io.js 2.3.0 os.homedir() ponyfill", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/os-homedir.git" - }, - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "node test.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "built-in", - "core", - "ponyfill", - "polyfill", - "shim", - "os", - "homedir", - "home", - "dir", - "directory", - "folder", - "user", - "path" - ], - "devDependencies": { - "ava": "0.0.4", - "path-exists": "^1.0.0" - }, - "readme": "# os-homedir [![Build Status](https://travis-ci.org/sindresorhus/os-homedir.svg?branch=master)](https://travis-ci.org/sindresorhus/os-homedir)\n\n> io.js 2.3.0 [`os.homedir()`](https://iojs.org/api/os.html#os_os_homedir) ponyfill\n\n> Ponyfill: A polyfill that doesn't overwrite the native method\n\n\n## Install\n\n```\n$ npm install --save os-homedir\n```\n\n\n## Usage\n\n```js\nvar osHomedir = require('os-homedir');\n\nconsole.log(osHomedir());\n//=> /Users/sindresorhus\n```\n\n\n## Related\n\n- [user-home](https://github.com/sindresorhus/user-home) - Same as this module but caches the result\n- [home-or-tmp](https://github.com/sindresorhus/home-or-tmp) - Get the user home directory with fallback to the system temp directory\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", - "readmeFilename": "readme.md", - "bugs": { - "url": "https://github.com/sindresorhus/os-homedir/issues" - }, - "homepage": "https://github.com/sindresorhus/os-homedir#readme", - "_id": "os-homedir@1.0.1", - "_shasum": "0d62bdf44b916fd3bbdcf2cab191948fb094f007", - "_resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", - "_from": "os-homedir@>=1.0.0 <2.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/readme.md deleted file mode 100644 index 4851f104..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-homedir/readme.md +++ /dev/null @@ -1,33 +0,0 @@ -# os-homedir [![Build Status](https://travis-ci.org/sindresorhus/os-homedir.svg?branch=master)](https://travis-ci.org/sindresorhus/os-homedir) - -> io.js 2.3.0 [`os.homedir()`](https://iojs.org/api/os.html#os_os_homedir) ponyfill - -> Ponyfill: A polyfill that doesn't overwrite the native method - - -## Install - -``` -$ npm install --save os-homedir -``` - - -## Usage - -```js -var osHomedir = require('os-homedir'); - -console.log(osHomedir()); -//=> /Users/sindresorhus -``` - - -## Related - -- [user-home](https://github.com/sindresorhus/user-home) - Same as this module but caches the result -- [home-or-tmp](https://github.com/sindresorhus/home-or-tmp) - Get the user home directory with fallback to the system temp directory - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/index.js deleted file mode 100644 index 52d90bf2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/index.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; -var isWindows = process.platform === 'win32'; -var trailingSlashRe = isWindows ? /[^:]\\$/ : /.\/$/; - -// https://github.com/nodejs/io.js/blob/3e7a14381497a3b73dda68d05b5130563cdab420/lib/os.js#L25-L43 -module.exports = function () { - var path; - - if (isWindows) { - path = process.env.TEMP || - process.env.TMP || - (process.env.SystemRoot || process.env.windir) + '\\temp'; - } else { - path = process.env.TMPDIR || - process.env.TMP || - process.env.TEMP || - '/tmp'; - } - - if (trailingSlashRe.test(path)) { - path = path.slice(0, -1); - } - - return path; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/package.json deleted file mode 100644 index 071ea5ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "os-tmpdir", - "version": "1.0.1", - "description": "Node.js os.tmpdir() ponyfill", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/os-tmpdir.git" - }, - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "node test.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "built-in", - "core", - "ponyfill", - "polyfill", - "shim", - "os", - "tmpdir", - "tempdir", - "tmp", - "temp", - "dir", - "directory", - "env", - "environment" - ], - "devDependencies": { - "ava": "0.0.4" - }, - "readme": "# os-tmpdir [![Build Status](https://travis-ci.org/sindresorhus/os-tmpdir.svg?branch=master)](https://travis-ci.org/sindresorhus/os-tmpdir)\n\n> Node.js [`os.tmpdir()`](https://nodejs.org/api/os.html#os_os_tmpdir) ponyfill\n\n> Ponyfill: A polyfill that doesn't overwrite the native method\n\nUse this instead of `require('os').tmpdir()` to get a consistent behaviour on different Node.js versions (even 0.8).\n\n*This is actually taken from io.js 2.0.2 as it contains some fixes that haven't bubbled up to Node.js yet.*\n\n\n## Install\n\n```\n$ npm install --save os-tmpdir\n```\n\n\n## Usage\n\n```js\nvar osTmpdir = require('os-tmpdir');\n\nosTmpdir();\n//=> /var/folders/m3/5574nnhn0yj488ccryqr7tc80000gn/T\n```\n\n\n## API\n\nSee the [`os.tmpdir()` docs](https://nodejs.org/api/os.html#os_os_tmpdir).\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", - "readmeFilename": "readme.md", - "bugs": { - "url": "https://github.com/sindresorhus/os-tmpdir/issues" - }, - "homepage": "https://github.com/sindresorhus/os-tmpdir#readme", - "_id": "os-tmpdir@1.0.1", - "_shasum": "e9b423a1edaf479882562e92ed71d7743a071b6e", - "_resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz", - "_from": "os-tmpdir@>=1.0.0 <2.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/readme.md deleted file mode 100644 index 54d4c6ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/readme.md +++ /dev/null @@ -1,36 +0,0 @@ -# os-tmpdir [![Build Status](https://travis-ci.org/sindresorhus/os-tmpdir.svg?branch=master)](https://travis-ci.org/sindresorhus/os-tmpdir) - -> Node.js [`os.tmpdir()`](https://nodejs.org/api/os.html#os_os_tmpdir) ponyfill - -> Ponyfill: A polyfill that doesn't overwrite the native method - -Use this instead of `require('os').tmpdir()` to get a consistent behaviour on different Node.js versions (even 0.8). - -*This is actually taken from io.js 2.0.2 as it contains some fixes that haven't bubbled up to Node.js yet.* - - -## Install - -``` -$ npm install --save os-tmpdir -``` - - -## Usage - -```js -var osTmpdir = require('os-tmpdir'); - -osTmpdir(); -//=> /var/folders/m3/5574nnhn0yj488ccryqr7tc80000gn/T -``` - - -## API - -See the [`os.tmpdir()` docs](https://nodejs.org/api/os.html#os_os_tmpdir). - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/osenv.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/osenv.js deleted file mode 100644 index 702a95b9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/osenv.js +++ /dev/null @@ -1,72 +0,0 @@ -var isWindows = process.platform === 'win32' -var path = require('path') -var exec = require('child_process').exec -var osTmpdir = require('os-tmpdir') -var osHomedir = require('os-homedir') - -// looking up envs is a bit costly. -// Also, sometimes we want to have a fallback -// Pass in a callback to wait for the fallback on failures -// After the first lookup, always returns the same thing. -function memo (key, lookup, fallback) { - var fell = false - var falling = false - exports[key] = function (cb) { - var val = lookup() - if (!val && !fell && !falling && fallback) { - fell = true - falling = true - exec(fallback, function (er, output, stderr) { - falling = false - if (er) return // oh well, we tried - val = output.trim() - }) - } - exports[key] = function (cb) { - if (cb) process.nextTick(cb.bind(null, null, val)) - return val - } - if (cb && !falling) process.nextTick(cb.bind(null, null, val)) - return val - } -} - -memo('user', function () { - return ( isWindows - ? process.env.USERDOMAIN + '\\' + process.env.USERNAME - : process.env.USER - ) -}, 'whoami') - -memo('prompt', function () { - return isWindows ? process.env.PROMPT : process.env.PS1 -}) - -memo('hostname', function () { - return isWindows ? process.env.COMPUTERNAME : process.env.HOSTNAME -}, 'hostname') - -memo('tmpdir', function () { - return osTmpdir() -}) - -memo('home', function () { - return osHomedir() -}) - -memo('path', function () { - return (process.env.PATH || - process.env.Path || - process.env.path).split(isWindows ? ';' : ':') -}) - -memo('editor', function () { - return process.env.EDITOR || - process.env.VISUAL || - (isWindows ? 'notepad.exe' : 'vi') -}) - -memo('shell', function () { - return isWindows ? process.env.ComSpec || 'cmd' - : process.env.SHELL || 'bash' -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/package.json deleted file mode 100644 index ac0c03cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "osenv", - "version": "0.1.3", - "main": "osenv.js", - "directories": { - "test": "test" - }, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - }, - "devDependencies": { - "tap": "^1.2.0" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/osenv.git" - }, - "keywords": [ - "environment", - "variable", - "home", - "tmpdir", - "path", - "prompt", - "ps1" - ], - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "description": "Look up environment settings specific to different operating systems", - "readme": "# osenv\n\nLook up environment settings specific to different operating systems.\n\n## Usage\n\n```javascript\nvar osenv = require('osenv')\nvar path = osenv.path()\nvar user = osenv.user()\n// etc.\n\n// Some things are not reliably in the env, and have a fallback command:\nvar h = osenv.hostname(function (er, hostname) {\n h = hostname\n})\n// This will still cause it to be memoized, so calling osenv.hostname()\n// is now an immediate operation.\n\n// You can always send a cb, which will get called in the nextTick\n// if it's been memoized, or wait for the fallback data if it wasn't\n// found in the environment.\nosenv.hostname(function (er, hostname) {\n if (er) console.error('error looking up hostname')\n else console.log('this machine calls itself %s', hostname)\n})\n```\n\n## osenv.hostname()\n\nThe machine name. Calls `hostname` if not found.\n\n## osenv.user()\n\nThe currently logged-in user. Calls `whoami` if not found.\n\n## osenv.prompt()\n\nEither PS1 on unix, or PROMPT on Windows.\n\n## osenv.tmpdir()\n\nThe place where temporary files should be created.\n\n## osenv.home()\n\nNo place like it.\n\n## osenv.path()\n\nAn array of the places that the operating system will search for\nexecutables.\n\n## osenv.editor() \n\nReturn the executable name of the editor program. This uses the EDITOR\nand VISUAL environment variables, and falls back to `vi` on Unix, or\n`notepad.exe` on Windows.\n\n## osenv.shell()\n\nThe SHELL on Unix, which Windows calls the ComSpec. Defaults to 'bash'\nor 'cmd'.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/npm/osenv/issues" - }, - "homepage": "https://github.com/npm/osenv#readme", - "_id": "osenv@0.1.3", - "_shasum": "83cf05c6d6458fc4d5ac6362ea325d92f2754217", - "_resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz", - "_from": "osenv@>=0.1.3 <0.2.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/test/unix.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/test/unix.js deleted file mode 100644 index f87cbfb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/test/unix.js +++ /dev/null @@ -1,71 +0,0 @@ -// only run this test on windows -// pretending to be another platform is too hacky, since it breaks -// how the underlying system looks up module paths and runs -// child processes, and all that stuff is cached. -if (process.platform === 'win32') { - console.log('TAP Version 13\n' + - '1..0\n' + - '# Skip unix tests, this is not unix\n') - return -} -var tap = require('tap') - -// like unix, but funny -process.env.USER = 'sirUser' -process.env.HOME = '/home/sirUser' -process.env.HOSTNAME = 'my-machine' -process.env.TMPDIR = '/tmpdir' -process.env.TMP = '/tmp' -process.env.TEMP = '/temp' -process.env.PATH = '/opt/local/bin:/usr/local/bin:/usr/bin/:bin' -process.env.PS1 = '(o_o) $ ' -process.env.EDITOR = 'edit' -process.env.VISUAL = 'visualedit' -process.env.SHELL = 'zsh' - -tap.test('basic unix sanity test', function (t) { - var osenv = require('../osenv.js') - - t.equal(osenv.user(), process.env.USER) - t.equal(osenv.home(), process.env.HOME) - t.equal(osenv.hostname(), process.env.HOSTNAME) - t.same(osenv.path(), process.env.PATH.split(':')) - t.equal(osenv.prompt(), process.env.PS1) - t.equal(osenv.tmpdir(), process.env.TMPDIR) - - // mildly evil, but it's for a test. - process.env.TMPDIR = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - t.equal(osenv.tmpdir(), process.env.TMP) - - process.env.TMP = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - t.equal(osenv.tmpdir(), process.env.TEMP) - - process.env.TEMP = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - osenv.home = function () { return null } - t.equal(osenv.tmpdir(), '/tmp') - - t.equal(osenv.editor(), 'edit') - process.env.EDITOR = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - t.equal(osenv.editor(), 'visualedit') - - process.env.VISUAL = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - t.equal(osenv.editor(), 'vi') - - t.equal(osenv.shell(), 'zsh') - process.env.SHELL = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - t.equal(osenv.shell(), 'bash') - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/test/windows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/test/windows.js deleted file mode 100644 index c9d837a3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/test/windows.js +++ /dev/null @@ -1,74 +0,0 @@ -// only run this test on windows -// pretending to be another platform is too hacky, since it breaks -// how the underlying system looks up module paths and runs -// child processes, and all that stuff is cached. -if (process.platform !== 'win32') { - console.log('TAP version 13\n' + - '1..0 # Skip windows tests, this is not windows\n') - return -} - -// load this before clubbing the platform name. -var tap = require('tap') - -process.env.windir = 'c:\\windows' -process.env.USERDOMAIN = 'some-domain' -process.env.USERNAME = 'sirUser' -process.env.USERPROFILE = 'C:\\Users\\sirUser' -process.env.COMPUTERNAME = 'my-machine' -process.env.TMPDIR = 'C:\\tmpdir' -process.env.TMP = 'C:\\tmp' -process.env.TEMP = 'C:\\temp' -process.env.Path = 'C:\\Program Files\\;C:\\Binary Stuff\\bin' -process.env.PROMPT = '(o_o) $ ' -process.env.EDITOR = 'edit' -process.env.VISUAL = 'visualedit' -process.env.ComSpec = 'some-com' - -tap.test('basic windows sanity test', function (t) { - var osenv = require('../osenv.js') - - t.equal(osenv.user(), - process.env.USERDOMAIN + '\\' + process.env.USERNAME) - t.equal(osenv.home(), process.env.USERPROFILE) - t.equal(osenv.hostname(), process.env.COMPUTERNAME) - t.same(osenv.path(), process.env.Path.split(';')) - t.equal(osenv.prompt(), process.env.PROMPT) - t.equal(osenv.tmpdir(), process.env.TMPDIR) - - // mildly evil, but it's for a test. - process.env.TMPDIR = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - t.equal(osenv.tmpdir(), process.env.TMP) - - process.env.TMP = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - t.equal(osenv.tmpdir(), process.env.TEMP) - - process.env.TEMP = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - osenv.home = function () { return null } - t.equal(osenv.tmpdir(), 'c:\\windows\\temp') - - t.equal(osenv.editor(), 'edit') - process.env.EDITOR = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - t.equal(osenv.editor(), 'visualedit') - - process.env.VISUAL = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - t.equal(osenv.editor(), 'notepad.exe') - - t.equal(osenv.shell(), 'some-com') - process.env.ComSpec = '' - delete require.cache[require.resolve('../osenv.js')] - var osenv = require('../osenv.js') - t.equal(osenv.shell(), 'cmd') - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/x.tap b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/x.tap deleted file mode 100644 index 90d84720..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/osenv/x.tap +++ /dev/null @@ -1,39 +0,0 @@ -TAP version 13 - # Subtest: test/unix.js - TAP version 13 - # Subtest: basic unix sanity test - ok 1 - should be equal - ok 2 - should be equal - ok 3 - should be equal - ok 4 - should be equivalent - ok 5 - should be equal - ok 6 - should be equal - ok 7 - should be equal - ok 8 - should be equal - ok 9 - should be equal - ok 10 - should be equal - ok 11 - should be equal - ok 12 - should be equal - ok 13 - should be equal - ok 14 - should be equal - 1..14 - ok 1 - basic unix sanity test # time=10.712ms - - 1..1 - # time=18.422ms -ok 1 - test/unix.js # time=169.827ms - - # Subtest: test/windows.js - TAP version 13 - 1..0 # Skip windows tests, this is not windows - -ok 2 - test/windows.js # SKIP Skip windows tests, this is not windows - - # Subtest: test/nada.js - TAP version 13 - 1..0 - -ok 2 - test/nada.js - -1..3 -# time=274.247ms diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/LICENSE.txt deleted file mode 100644 index ae20051f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright © 2013–2014 Domenic Denicola - -This work is free. You can redistribute it and/or modify it under the -terms of the Do What The Fuck You Want To Public License, Version 2, -as published by Sam Hocevar. See below for more details. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/README.md deleted file mode 100644 index d42e6aa7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Is This Path Inside This Other Path? - -It turns out this question isn't trivial to answer using Node's built-in path APIs. A naive `indexOf`-based solution will fail sometimes on Windows, which is case-insensitive (see e.g. [isaacs/npm#4214][]). You might then think to be clever with `path.resolve`, but you have to be careful to account for situations whether the paths have different drive letters, or else you'll cause bugs like [isaacs/npm#4313][]. And let's not even get started on trailing slashes. - -The **path-is-inside** package will give you a robust, cross-platform way of detecting whether a given path is inside another path. - -## Usage - -Pretty simple. First the path being tested; then the potential parent. Like so: - -```js -var pathIsInside = require("path-is-inside"); - -pathIsInside("/x/y/z", "/x/y") // true -pathIsInside("/x/y", "/x/y/z") // false -``` - -## OS-Specific Behavior - -Like Node's built-in path module, path-is-inside treats all file paths on Windows as case-insensitive, whereas it treats all file paths on *-nix operating systems as case-sensitive. Keep this in mind especially when working on a Mac, where, despite Node's defaults, the OS usually treats paths case-insensitively. - -In practice, this means: - -```js -// On Windows - -pathIsInside("C:\\X\\Y\\Z", "C:\\x\\y") // true - -// On *-nix, including Mac OS X - -pathIsInside("/X/Y/Z", "/x/y") // false -``` - -[isaacs/npm#4214]: https://github.com/isaacs/npm/pull/4214 -[isaacs/npm#4313]: https://github.com/isaacs/npm/issues/4313 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/lib/path-is-inside.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/lib/path-is-inside.js deleted file mode 100644 index 596dfd3b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/lib/path-is-inside.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; - -var path = require("path"); - -module.exports = function (thePath, potentialParent) { - // For inside-directory checking, we want to allow trailing slashes, so normalize. - thePath = stripTrailingSep(thePath); - potentialParent = stripTrailingSep(potentialParent); - - // Node treats only Windows as case-insensitive in its path module; we follow those conventions. - if (process.platform === "win32") { - thePath = thePath.toLowerCase(); - potentialParent = potentialParent.toLowerCase(); - } - - return thePath.lastIndexOf(potentialParent, 0) === 0 && - ( - thePath[potentialParent.length] === path.sep || - thePath[potentialParent.length] === undefined - ); -}; - -function stripTrailingSep(thePath) { - if (thePath[thePath.length - 1] === path.sep) { - return thePath.slice(0, -1); - } - return thePath; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/package.json deleted file mode 100644 index deced257..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/path-is-inside/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "path-is-inside", - "description": "Tests whether one path is inside another path", - "keywords": [ - "path", - "directory", - "folder", - "inside", - "relative" - ], - "version": "1.0.1", - "author": { - "name": "Domenic Denicola", - "email": "domenic@domenicdenicola.com", - "url": "http://domenic.me" - }, - "license": "WTFPL", - "repository": { - "type": "git", - "url": "git://github.com/domenic/path-is-inside.git" - }, - "bugs": { - "url": "http://github.com/domenic/path-is-inside/issues" - }, - "main": "lib/path-is-inside.js", - "scripts": { - "test": "mocha", - "lint": "jshint lib" - }, - "devDependencies": { - "jshint": "~2.3.0", - "mocha": "~1.15.1" - }, - "readme": "# Is This Path Inside This Other Path?\n\nIt turns out this question isn't trivial to answer using Node's built-in path APIs. A naive `indexOf`-based solution will fail sometimes on Windows, which is case-insensitive (see e.g. [isaacs/npm#4214][]). You might then think to be clever with `path.resolve`, but you have to be careful to account for situations whether the paths have different drive letters, or else you'll cause bugs like [isaacs/npm#4313][]. And let's not even get started on trailing slashes.\n\nThe **path-is-inside** package will give you a robust, cross-platform way of detecting whether a given path is inside another path.\n\n## Usage\n\nPretty simple. First the path being tested; then the potential parent. Like so:\n\n```js\nvar pathIsInside = require(\"path-is-inside\");\n\npathIsInside(\"/x/y/z\", \"/x/y\") // true\npathIsInside(\"/x/y\", \"/x/y/z\") // false\n```\n\n## OS-Specific Behavior\n\nLike Node's built-in path module, path-is-inside treats all file paths on Windows as case-insensitive, whereas it treats all file paths on *-nix operating systems as case-sensitive. Keep this in mind especially when working on a Mac, where, despite Node's defaults, the OS usually treats paths case-insensitively.\n\nIn practice, this means:\n\n```js\n// On Windows\n\npathIsInside(\"C:\\\\X\\\\Y\\\\Z\", \"C:\\\\x\\\\y\") // true\n\n// On *-nix, including Mac OS X\n\npathIsInside(\"/X/Y/Z\", \"/x/y\") // false\n```\n\n[isaacs/npm#4214]: https://github.com/isaacs/npm/pull/4214\n[isaacs/npm#4313]: https://github.com/isaacs/npm/issues/4313\n", - "readmeFilename": "README.md", - "homepage": "https://github.com/domenic/path-is-inside#readme", - "_id": "path-is-inside@1.0.1", - "_shasum": "98d8f1d030bf04bd7aeee4a1ba5485d40318fd89", - "_resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz", - "_from": "path-is-inside@>=1.0.1 <1.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/.npmignore deleted file mode 100644 index ac505496..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -.#* -*~ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/README.md deleted file mode 100644 index 2f0b5f6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# read-cmd-shim - -Figure out what a [`cmd-shim`](https://github.com/ForbesLindesay/cmd-shim) -is pointing at. This acts as the equivalent of -[`fs.readlink`](https://nodejs.org/api/fs.html#fs_fs_readlink_path_callback). - -### Usage - -``` -var readCmdShim = require('read-cmd-shim') - -readCmdShim('/path/to/shim.cmd', function (er, destination) { - … -}) - -var destination = readCmdShim.sync('/path/to/shim.cmd') - -### readCmdShim(path, callback) - -Reads the `cmd-shim` located at `path` and calls back with the _relative_ -path that the shim points at. Consider this as roughly the equivalent of -`fs.readlink`. - -This can read both `.cmd` style that are run by the Windows Command Prompt -and Powershell, and the kind without any extension that are used by Cygwin. - -This can return errors that `fs.readFile` returns, except that they'll -include a stack trace from where `readCmdShim` was called. Plus it can -return a special `ENOTASHIM` exception, when it can't find a cmd-shim in the -file referenced by `path`. This should only happen if you pass in a -non-command shim. - - -### readCmdShim.sync(path) - -Same as above but synchronous. Errors are thrown. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/index.js deleted file mode 100644 index 6a226544..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/index.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict' -var fs = require('graceful-fs') - -function extractPath (path, cmdshimContents) { - if (/[.]cmd$/.test(path)) { - return extractPathFromCmd(cmdshimContents) - } else { - return extractPathFromCygwin(cmdshimContents) - } -} - -function extractPathFromCmd (cmdshimContents) { - var matches = cmdshimContents.match(/"%~dp0\\([^"]+?)"\s+%[*]/) - return matches && matches[1] -} - -function extractPathFromCygwin (cmdshimContents) { - var matches = cmdshimContents.match(/"[$]basedir[/]([^"]+?)"\s+"[$]@"/) - return matches && matches[1] -} - -function wrapError (thrown, newError) { - newError.message = thrown.message - newError.code = thrown.code - return newError -} - -function notaShim (path, er) { - if (!er) { - er = new Error() - Error.captureStackTrace(er, notaShim) - } - er.code = 'ENOTASHIM' - er.message = "Can't read shim path from '" + path + "', it doesn't appear to be a cmd-shim" - return er -} - -var readCmdShim = module.exports = function (path, cb) { - var er = new Error() - Error.captureStackTrace(er, readCmdShim) - fs.readFile(path, function (readFileEr, contents) { - if (readFileEr) return cb(wrapError(readFileEr, er)) - var destination = extractPath(path, contents.toString()) - if (destination) return cb(null, destination) - return cb(notaShim(path, er)) - }) -} - -module.exports.sync = function (path) { - var contents = fs.readFileSync(path) - var destination = extractPath(path, contents.toString()) - if (!destination) throw notaShim(path) - return destination -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/package.json deleted file mode 100644 index 04f8addc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "read-cmd-shim", - "version": "1.0.1", - "description": "Figure out what a cmd-shim is pointing at. This acts as the equivalent of fs.readlink.", - "main": "index.js", - "dependencies": { - "graceful-fs": "^4.1.2" - }, - "devDependencies": { - "cmd-shim": "^2.0.1", - "rimraf": "^2.4.3", - "standard": "^5.2.2", - "tap": "^1.4.1" - }, - "scripts": { - "test": "standard && tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/read-cmd-shim.git" - }, - "author": { - "name": "Rebecca Turner", - "email": "me@re-becca.org", - "url": "http://re-becca.org/" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/read-cmd-shim/issues" - }, - "homepage": "https://github.com/npm/read-cmd-shim#readme", - "gitHead": "7c50879bf49743a1c69f9d7f0ba1638fc46bb40c", - "_id": "read-cmd-shim@1.0.1", - "_shasum": "2d5d157786a37c055d22077c32c53f8329e91c7b", - "_from": "read-cmd-shim@>=1.0.1 <1.1.0", - "_npmVersion": "3.3.0", - "_nodeVersion": "3.1.0", - "_npmUser": { - "name": "iarna", - "email": "me@re-becca.org" - }, - "dist": { - "shasum": "2d5d157786a37c055d22077c32c53f8329e91c7b", - "tarball": "http://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz" - }, - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/test/integration.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/test/integration.js deleted file mode 100644 index 269f9647..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-cmd-shim/test/integration.js +++ /dev/null @@ -1,139 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('graceful-fs') -var test = require('tap').test -var rimraf = require('rimraf') -var cmdShim = require('cmd-shim') -var readCmdShim = require('../index.js') -var workDir = path.join(__dirname, path.basename(__filename, '.js')) -var testShbang = path.join(workDir, 'test-shbang') -var testShbangCmd = testShbang + '.cmd' -var testShim = path.join(workDir, 'test') -var testShimCmd = testShim + '.cmd' - -test('setup', function (t) { - rimraf.sync(workDir) - fs.mkdirSync(workDir) - fs.writeFileSync(testShbang + '.js', '#!/usr/bin/env node\ntrue') - cmdShim(__filename, testShim, function (er) { - t.error(er) - cmdShim(testShbang + '.js', testShbang, function (er) { - t.error(er) - t.done() - }) - }) -}) - -test('async-read-no-shbang', function (t) { - t.plan(2) - readCmdShim(testShimCmd, function (er, dest) { - t.error(er) - t.is(dest, '..\\basic.js') - t.done() - }) -}) - -test('sync-read-no-shbang', function (t) { - t.plan(1) - var dest = readCmdShim.sync(testShimCmd) - t.is(dest, '..\\basic.js') - t.done() -}) - -test('async-read-shbang', function (t) { - t.plan(2) - readCmdShim(testShbangCmd, function (er, dest) { - t.error(er) - t.is(dest, 'test-shbang.js') - t.done() - }) -}) - -test('sync-read-shbang', function (t) { - t.plan(1) - var dest = readCmdShim.sync(testShbangCmd) - t.is(dest, 'test-shbang.js') - t.done() -}) - -test('async-read-no-shbang-cygwin', function (t) { - t.plan(2) - readCmdShim(testShim, function (er, dest) { - t.error(er) - t.is(dest, '../basic.js') - t.done() - }) -}) - -test('sync-read-no-shbang-cygwin', function (t) { - t.plan(1) - var dest = readCmdShim.sync(testShim) - t.is(dest, '../basic.js') - t.done() -}) - -test('async-read-shbang-cygwin', function (t) { - t.plan(2) - readCmdShim(testShbang, function (er, dest) { - t.error(er) - t.is(dest, 'test-shbang.js') - t.done() - }) -}) - -test('sync-read-shbang-cygwin', function (t) { - t.plan(1) - var dest = readCmdShim.sync(testShbang) - t.is(dest, 'test-shbang.js') - t.done() -}) - -test('async-read-dir', function (t) { - t.plan(2) - readCmdShim(workDir, function (er) { - t.ok(er) - t.is(er.code, 'EISDIR', "cmd-shims can't be directories") - t.done() - }) -}) - -test('sync-read-dir', function (t) { - t.plan(1) - t.throws(function () { readCmdShim.sync(workDir) }, "cmd-shims can't be directories") - t.done() -}) - -test('async-read-not-there', function (t) { - t.plan(2) - readCmdShim('/path/to/nowhere', function (er, dest) { - t.ok(er, 'missing files throw errors') - t.is(er.code, 'ENOENT', "cmd-shim file doesn't exist") - t.done() - }) -}) - -test('sync-read-not-there', function (t) { - t.plan(1) - t.throws(function () { readCmdShim.sync('/path/to/nowhere') }, "cmd-shim file doesn't exist") - t.done() -}) - -test('async-read-not-shim', function (t) { - t.plan(2) - readCmdShim(__filename, function (er, dest) { - t.ok(er) - t.is(er.code, 'ENOTASHIM', 'shim file specified is not a shim') - t.done() - }) -}) - -test('sync-read-not-shim', function (t) { - t.plan(1) - t.throws(function () { readCmdShim.sync(__filename) }, 'shim file specified is not a shim') - t.done() -}) - -test('cleanup', function (t) { - rimraf.sync(workDir) - t.done() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/.npmignore deleted file mode 100644 index 8c23deeb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/.npmignore +++ /dev/null @@ -1,13 +0,0 @@ -*.swp -.*.swp - -.DS_Store -*~ -.project -.settings -npm-debug.log -coverage.html -.idea -lib-cov - -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/.travis.yml deleted file mode 100644 index 848ffd1c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: node_js -before_install: - - '[ "${TRAVIS_NODE_VERSION}" != "0.8" ] || npm install -g npm@1.4.28' - - npm install -g npm@latest -node_js: - - '0.8' - - '0.10' - - '0.12' - - 'iojs' diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/LICENSE deleted file mode 100644 index dea3013d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/README.md deleted file mode 100644 index 312153b4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# read-installed - -Read all the installed packages in a folder, and return a tree -structure with all the data. - -npm uses this. - -## 2.0.0 - -Breaking changes in `2.0.0`: - -The second argument is now an `Object` that contains the following keys: - - * `depth` optional, defaults to Infinity - * `log` optional log Function - * `dev` optional, default false, set to true to include devDependencies - -## Usage - -```javascript -var readInstalled = require("read-installed") -// optional options -var options = { dev: false, log: fn, depth: 2 } -readInstalled(folder, options, function (er, data) { - ... -}) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/LICENSE deleted file mode 100644 index e3d4e695..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Copyright Joyent, Inc. and other Node contributors. All rights reserved. -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/README.md deleted file mode 100644 index be03922a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# util-extend - -The Node object extending function that Node uses for Node! - -## Usage - -```js -var extend = require('util-extend'); -function functionThatTakesOptions(options) { - var options = extend(defaults, options); - // now any unset options are set to the defaults. -} -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/extend.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/extend.js deleted file mode 100644 index de9fcf47..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/extend.js +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -module.exports = extend; -function extend(origin, add) { - // Don't do anything if add isn't an object - if (!add || typeof add !== 'object') return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/package.json deleted file mode 100644 index 137656aa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "_args": [ - [ - "util-extend@^1.0.1", - "/Users/rebecca/code/npm/node_modules/read-installed" - ] - ], - "_from": "util-extend@>=1.0.1 <2.0.0", - "_id": "util-extend@1.0.3", - "_inCache": true, - "_installable": true, - "_location": "/read-installed/util-extend", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "2.14.15", - "_phantomChildren": {}, - "_requested": { - "name": "util-extend", - "raw": "util-extend@^1.0.1", - "rawSpec": "^1.0.1", - "scope": null, - "spec": ">=1.0.1 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/read-installed" - ], - "_resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "_shasum": "a7c216d267545169637b3b6edc6ca9119e2ff93f", - "_shrinkwrap": null, - "_spec": "util-extend@^1.0.1", - "_where": "/Users/rebecca/code/npm/node_modules/read-installed", - "author": "", - "bugs": { - "url": "https://github.com/isaacs/util-extend/issues" - }, - "dependencies": {}, - "description": "Node's internal object extension function", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "a7c216d267545169637b3b6edc6ca9119e2ff93f", - "tarball": "http://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz" - }, - "gitHead": "22757dc229edbb253af63d533f27a837184f4a51", - "homepage": "https://github.com/isaacs/util-extend#readme", - "license": "MIT", - "main": "extend.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "name": "util-extend", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/util-extend.git" - }, - "scripts": { - "test": "node test.js" - }, - "version": "1.0.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/test.js deleted file mode 100644 index fbee2b1e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/node_modules/util-extend/test.js +++ /dev/null @@ -1,10 +0,0 @@ -var assert = require('assert'); -var extend = require('./'); -assert.deepEqual(extend({a:1}), {a:1}); -assert.deepEqual(extend({a:1}, []), {a:1}); -assert.deepEqual(extend({a:1}, null), {a:1}); -assert.deepEqual(extend({a:1}, true), {a:1}); -assert.deepEqual(extend({a:1}, false), {a:1}); -assert.deepEqual(extend({a:1}, {b:2}), {a:1, b:2}); -assert.deepEqual(extend({a:1, b:2}, {b:3}), {a:1, b:3}); -console.log('ok'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/package.json deleted file mode 100644 index 76977474..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "read-installed", - "description": "Read all the installed packages in a folder, and return a tree structure with all the data.", - "version": "4.0.3", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/read-installed.git" - }, - "main": "read-installed.js", - "scripts": { - "test": "tap ./test/*.js" - }, - "dependencies": { - "debuglog": "^1.0.1", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "slide": "~1.1.3", - "util-extend": "^1.0.1", - "graceful-fs": "^4.1.2" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.2" - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "devDependencies": { - "mkdirp": "^0.5.0", - "rimraf": "^2.2.8", - "tap": "^1.2.0" - }, - "gitHead": "da02df6acdb5f5ee31d8c637ef31fb50efb455c1", - "bugs": { - "url": "https://github.com/isaacs/read-installed/issues" - }, - "homepage": "https://github.com/isaacs/read-installed#readme", - "_id": "read-installed@4.0.3", - "_shasum": "ff9b8b67f187d1e4c29b9feb31f6b223acd19067", - "_from": "read-installed@>=4.0.3 <4.1.0", - "_npmVersion": "2.14.3", - "_nodeVersion": "2.2.2", - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" - }, - "dist": { - "shasum": "ff9b8b67f187d1e4c29b9feb31f6b223acd19067", - "tarball": "http://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz" - }, - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/read-installed.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/read-installed.js deleted file mode 100644 index 19e77be9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/read-installed.js +++ /dev/null @@ -1,407 +0,0 @@ - -// Walk through the file-system "database" of installed -// packages, and create a data object related to the -// installed versions of each package. - -/* -This will traverse through all node_modules folders, -resolving the dependencies object to the object corresponding to -the package that meets that dep, or just the version/range if -unmet. - -Assuming that you had this folder structure: - -/path/to -+-- package.json { name = "root" } -`-- node_modules - +-- foo {bar, baz, asdf} - | +-- node_modules - | +-- bar { baz } - | `-- baz - `-- asdf - -where "foo" depends on bar, baz, and asdf, bar depends on baz, -and bar and baz are bundled with foo, whereas "asdf" is at -the higher level (sibling to foo), you'd get this object structure: - -{ -, path: "/path/to" -, parent: null -, dependencies: - { foo : - { version: "1.2.3" - , path: "/path/to/node_modules/foo" - , parent: - , dependencies: - { bar: - { parent: - , path: "/path/to/node_modules/foo/node_modules/bar" - , version: "2.3.4" - , dependencies: { baz: } - } - , baz: { ... } - , asdf: - } - } - , asdf: { ... } - } -} - -Unmet deps are left as strings. -Extraneous deps are marked with extraneous:true -deps that don't meet a requirement are marked with invalid:true -deps that don't meet a peer requirement are marked with peerInvalid:true - -to READ(packagefolder, parentobj, name, reqver) -obj = read package.json -installed = ./node_modules/* -if parentobj is null, and no package.json - obj = {dependencies:{:ANY}} -deps = Object.keys(obj.dependencies) -obj.path = packagefolder -obj.parent = parentobj -if name, && obj.name !== name, obj.invalid = true -if reqver, && obj.version !satisfies reqver, obj.invalid = true -if !reqver && parentobj, obj.extraneous = true -for each folder in installed - obj.dependencies[folder] = READ(packagefolder+node_modules+folder, - obj, folder, obj.dependencies[folder]) -# walk tree to find unmet deps -for each dep in obj.dependencies not in installed - r = obj.parent - while r - if r.dependencies[dep] - if r.dependencies[dep].verion !satisfies obj.dependencies[dep] - WARN - r.dependencies[dep].invalid = true - obj.dependencies[dep] = r.dependencies[dep] - r = null - else r = r.parent -return obj - - -TODO: -1. Find unmet deps in parent directories, searching as node does up -as far as the left-most node_modules folder. -2. Ignore anything in node_modules that isn't a package folder. - -*/ - -try { - var fs = require("graceful-fs") -} catch (er) { - var fs = require("fs") -} - -var path = require("path") -var asyncMap = require("slide").asyncMap -var semver = require("semver") -var readJson = require("read-package-json") -var url = require("url") -var util = require("util") -var extend = require("util-extend") - -var debug = require("debuglog")("read-installed") - -var readdir = require("readdir-scoped-modules") - -// Sentinel catch-all version constraint used when a dependency is not -// listed in the package.json file. -var ANY = {} - -module.exports = readInstalled - -function readInstalled (folder, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } else { - opts = extend({}, opts) - } - - if (typeof opts.depth !== 'number') - opts.depth = Infinity - - opts.depth = Math.max(0, opts.depth) - - if (typeof opts.log !== 'function') - opts.log = function () {} - - opts.dev = !!opts.dev - opts.realpathSeen = {} - opts.findUnmetSeen = [] - - - readInstalled_(folder, null, null, null, 0, opts, function (er, obj) { - if (er) return cb(er) - // now obj has all the installed things, where they're installed - // figure out the inheritance links, now that the object is built. - resolveInheritance(obj, opts) - obj.root = true - unmarkExtraneous(obj, opts) - cb(null, obj) - }) -} - -function readInstalled_ (folder, parent, name, reqver, depth, opts, cb) { - var installed - , obj - , real - , link - , realpathSeen = opts.realpathSeen - - readdir(path.resolve(folder, "node_modules"), function (er, i) { - // error indicates that nothing is installed here - if (er) i = [] - installed = i.filter(function (f) { return f.charAt(0) !== "." }) - next() - }) - - readJson(path.resolve(folder, "package.json"), function (er, data) { - obj = copy(data) - - if (!parent) { - obj = obj || true - er = null - } - return next(er) - }) - - fs.lstat(folder, function (er, st) { - if (er) { - if (!parent) real = true - return next(er) - } - fs.realpath(folder, function (er, rp) { - debug("realpath(%j) = %j", folder, rp) - real = rp - if (st.isSymbolicLink()) link = rp - next(er) - }) - }) - - var errState = null - , called = false - function next (er) { - if (errState) return - if (er) { - errState = er - return cb(null, []) - } - debug('next', installed, obj && typeof obj, name, real) - if (!installed || !obj || !real || called) return - called = true - if (realpathSeen[real]) return cb(null, realpathSeen[real]) - if (obj === true) { - obj = {dependencies:{}, path:folder} - installed.forEach(function (i) { obj.dependencies[i] = ANY }) - } - if (name && obj.name !== name) obj.invalid = true - obj.realName = name || obj.name - obj.dependencies = obj.dependencies || {} - - // At this point, figure out what dependencies we NEED to get met - obj._dependencies = copy(obj.dependencies) - - if (reqver === ANY) { - // We were unable to determine the required version of this - // dependency from the package.json file, but we now know its actual - // version, so treat that version as the required version to avoid - // marking the dependency as invalid below. See #40. - reqver = obj.version; - } - - // "foo":"http://blah" and "foo":"latest" are always presumed valid - if (reqver - && semver.validRange(reqver, true) - && !semver.satisfies(obj.version, reqver, true)) { - obj.invalid = true - } - - // Mark as extraneous at this point. - // This will be un-marked in unmarkExtraneous, where we mark as - // not-extraneous everything that is required in some way from - // the root object. - obj.extraneous = true - - obj.path = obj.path || folder - obj.realPath = real - obj.link = link - if (parent && !obj.link) obj.parent = parent - realpathSeen[real] = obj - obj.depth = depth - //if (depth >= opts.depth) return cb(null, obj) - asyncMap(installed, function (pkg, cb) { - var rv = obj.dependencies[pkg] - if (!rv && obj.devDependencies && opts.dev) - rv = obj.devDependencies[pkg] - - if (depth > opts.depth) { - obj.dependencies = {} - return cb(null, obj) - } - - readInstalled_( path.resolve(folder, "node_modules/"+pkg) - , obj, pkg, obj.dependencies[pkg], depth + 1, opts - , cb ) - - }, function (er, installedData) { - if (er) return cb(er) - installedData.forEach(function (dep) { - obj.dependencies[dep.realName] = dep - }) - - // any strings here are unmet things. however, if it's - // optional, then that's fine, so just delete it. - if (obj.optionalDependencies) { - Object.keys(obj.optionalDependencies).forEach(function (dep) { - if (typeof obj.dependencies[dep] === "string") { - delete obj.dependencies[dep] - } - }) - } - return cb(null, obj) - }) - } -} - -// starting from a root object, call findUnmet on each layer of children -var riSeen = [] -function resolveInheritance (obj, opts) { - if (typeof obj !== "object") return - if (riSeen.indexOf(obj) !== -1) return - riSeen.push(obj) - if (typeof obj.dependencies !== "object") { - obj.dependencies = {} - } - Object.keys(obj.dependencies).forEach(function (dep) { - findUnmet(obj.dependencies[dep], opts) - }) - Object.keys(obj.dependencies).forEach(function (dep) { - if (typeof obj.dependencies[dep] === "object") { - resolveInheritance(obj.dependencies[dep], opts) - } else { - debug("unmet dep! %s %s@%s", obj.name, dep, obj.dependencies[dep]) - } - }) - findUnmet(obj, opts) -} - -// find unmet deps by walking up the tree object. -// No I/O -function findUnmet (obj, opts) { - var findUnmetSeen = opts.findUnmetSeen - if (findUnmetSeen.indexOf(obj) !== -1) return - findUnmetSeen.push(obj) - debug("find unmet parent=%s obj=", obj.parent && obj.parent.name, obj.name || obj) - var deps = obj.dependencies = obj.dependencies || {} - - debug(deps) - Object.keys(deps) - .filter(function (d) { return typeof deps[d] === "string" }) - .forEach(function (d) { - var found = findDep(obj, d) - debug("finding dep %j", d, found && found.name || found) - // "foo":"http://blah" and "foo":"latest" are always presumed valid - if (typeof deps[d] === "string" && - semver.validRange(deps[d], true) && - found && - !semver.satisfies(found.version, deps[d], true)) { - // the bad thing will happen - opts.log( "unmet dependency" - , obj.path + " requires "+d+"@'"+deps[d] - + "' but will load\n" - + found.path+",\nwhich is version "+found.version ) - found.invalid = true - } - if (found) { - deps[d] = found - } - }) - - var peerDeps = obj.peerDependencies = obj.peerDependencies || {} - Object.keys(peerDeps).forEach(function (d) { - var dependency - - if (!obj.parent) { - dependency = obj.dependencies[d] - - // read it as a missing dep - if (!dependency) { - obj.dependencies[d] = peerDeps[d] - } - } else { - var r = obj.parent - while (r && !dependency) { - dependency = r.dependencies && r.dependencies[d] - r = r.link ? null : r.parent - } - } - - if (!dependency) { - // mark as a missing dep! - obj.dependencies[d] = peerDeps[d] - } else if (!semver.satisfies(dependency.version, peerDeps[d], true)) { - dependency.peerInvalid = true - } - }) - - return obj -} - -function unmarkExtraneous (obj, opts) { - // Mark all non-required deps as extraneous. - // start from the root object and mark as non-extraneous all modules - // that haven't been previously flagged as extraneous then propagate - // to all their dependencies - - obj.extraneous = false - - var deps = obj._dependencies || [] - if (opts.dev && obj.devDependencies && (obj.root || obj.link)) { - Object.keys(obj.devDependencies).forEach(function (k) { - deps[k] = obj.devDependencies[k] - }) - } - - if (obj.peerDependencies) { - Object.keys(obj.peerDependencies).forEach(function (k) { - deps[k] = obj.peerDependencies[k] - }) - } - - debug("not extraneous", obj._id, deps) - Object.keys(deps).forEach(function (d) { - var dep = findDep(obj, d) - if (dep && dep.extraneous) { - unmarkExtraneous(dep, opts) - } - }) -} - -// Find the one that will actually be loaded by require() -// so we can make sure it's valid etc. -function findDep (obj, d) { - var r = obj - , found = null - while (r && !found) { - // if r is a valid choice, then use that. - // kinda weird if a pkg depends on itself, but after the first - // iteration of this loop, it indicates a dep cycle. - if (typeof r.dependencies[d] === "object") { - found = r.dependencies[d] - } - if (!found && r.realName === d) found = r - r = r.link ? null : r.parent - } - return found -} - -function copy (obj) { - if (!obj || typeof obj !== 'object') return obj - if (Array.isArray(obj)) return obj.map(copy) - - var o = {} - for (var i in obj) o[i] = copy(obj[i]) - return o -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/basic.js deleted file mode 100644 index f4978488..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/basic.js +++ /dev/null @@ -1,46 +0,0 @@ -var readInstalled = require("../read-installed.js") -var json = require("../package.json") -var d = Object.keys(json.dependencies) -var dd = Object.keys(json.devDependencies) -var od = Object.keys(json.optionalDependencies) -var known = d.concat(dd).concat(od).sort() -var test = require("tap").test -var path = require("path") - -test("make sure that it works", function (t) { - readInstalled(path.join(__dirname, "../"), { - dev: true, - log: console.error - }, function (er, map) { - t.notOk(er, "er should be bull") - t.ok(map, "map should be data") - if (er) return console.error(er.stack || er.message) - cleanup(map) - var deps = Object.keys(map.dependencies).sort() - t.equal(known.length, deps.length, "array lengths are equal") - t.deepEqual(known, deps, "arrays should be equal") - t.notOk(map.dependencies.tap.extraneous, 'extraneous not set on devDep') - t.end() - }) -}) - -var seen = [] -function cleanup (map) { - if (seen.indexOf(map) !== -1) return - seen.push(map) - for (var i in map) switch (i) { - case "_id": - case "path": - case "extraneous": case "invalid": - case "dependencies": case "name": - continue - default: delete map[i] - } - var dep = map.dependencies - if (dep) { - for (var i in dep) if (typeof dep[i] === "object") { - cleanup(dep[i]) - } - } - return map -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/cyclic-extraneous-peer-deps.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/cyclic-extraneous-peer-deps.js deleted file mode 100644 index 58bf6a64..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/cyclic-extraneous-peer-deps.js +++ /dev/null @@ -1,81 +0,0 @@ -var test = require("tap").test -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var fs = require("fs") -var path = require("path") -var readInstalled = require("../read-installed.js") - -var parent = { - name: "parent", - version: "1.2.3", - dependencies: {}, - devDependencies: { - "child1":"*" - }, - readme:"." -} - -var child1 = { - name: "child1", - version: "1.2.3", - peerDependencies: { - child2: "*" - }, - readme:"." -} - -var child2 = { - name: "child2", - version: "1.2.3", - peerDependencies: { - child1: "*" - }, - readme:"." -} - - -var root = path.resolve(__dirname, "cyclic-extraneous-peer-deps") -var parentjson = path.resolve(root, "package.json") -var child1root = path.resolve(root, "node_modules/child1") -var child1json = path.resolve(child1root, "package.json") -var child2root = path.resolve(root, "node_modules/child2") -var child2json = path.resolve(child2root, "package.json") - -test("setup", function (t) { - rimraf.sync(root) - mkdirp.sync(child1root) - mkdirp.sync(child2root) - fs.writeFileSync(parentjson, JSON.stringify(parent, null, 2) + "\n", "utf8") - fs.writeFileSync(child1json, JSON.stringify(child1, null, 2) + "\n", "utf8") - fs.writeFileSync(child2json, JSON.stringify(child2, null, 2) + "\n", "utf8") - t.pass("setup done") - t.end() -}) - -test("dev mode", function (t) { - // peer dev deps should both be not extraneous. - readInstalled(root, { dev: true }, function (er, data) { - if (er) - throw er - t.notOk(data.dependencies.child1.extraneous, "c1 not extra") - t.notOk(data.dependencies.child2.extraneous, "c2 not extra") - t.end() - }) -}) - -test("prod mode", function (t) { - readInstalled(root, { dev: false }, function (er, data) { - if (er) - throw er - t.ok(data.dependencies.child1.extraneous, "c1 extra") - t.ok(data.dependencies.child2.extraneous, "c2 extra") - t.end() - }) -}) - - -test("cleanup", function (t) { - rimraf.sync(root) - t.pass("cleanup done") - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/depth-0.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/depth-0.js deleted file mode 100644 index 459df8a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/depth-0.js +++ /dev/null @@ -1,27 +0,0 @@ -var readInstalled = require("../read-installed.js") -var test = require("tap").test -var json = require("../package.json") -var path = require("path") -var known = [].concat(Object.keys(json.dependencies) - , Object.keys(json.optionalDependencies) - , Object.keys(json.devDependencies)).sort() - -test("make sure that it works with depth=0", function (t) { - readInstalled(path.join(__dirname, "../"), { - depth: 0 - }, function (er, map) { - t.notOk(er, "er should be bull") - t.ok(map, "map should be data") - if (er) return console.error(er.stack || er.message) - // Exclude self from dependencies when depth = 0 - delete map.dependencies[json.name] - var subdeps = Object.keys(map.dependencies).reduce(function(acc, dep) { - // Exclude self from dependencies when depth = current depth - delete map.dependencies[dep].dependencies[dep] - acc += Object.keys(map.dependencies[dep].dependencies).length; - return acc; - }, 0); - t.equal(subdeps, 0, "there should be no sub dependencies") - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/depth-1.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/depth-1.js deleted file mode 100644 index 977c9276..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/depth-1.js +++ /dev/null @@ -1,23 +0,0 @@ -var readInstalled = require("../read-installed.js") -var test = require("tap").test -var json = require("../package.json") -var path = require("path") -var known = [].concat(Object.keys(json.dependencies) - , Object.keys(json.optionalDependencies) - , Object.keys(json.devDependencies)).sort() - -test("make sure that it works with depth=1", function (t) { - readInstalled(path.join(__dirname, "../"), { - depth: 1 - }, function (er, map) { - t.notOk(er, "er should be bull") - t.ok(map, "map should be data") - if (er) return console.error(er.stack || er.message) - var subdeps = Object.keys(map.dependencies).reduce(function(acc, dep) { - acc += Object.keys(map.dependencies[dep].dependencies).length; - return acc; - }, 0); - t.notEqual(subdeps, 0, "there should some sub dependencies") - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/dev.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/dev.js deleted file mode 100644 index 5e5a994a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/dev.js +++ /dev/null @@ -1,23 +0,0 @@ -var readInstalled = require("../read-installed.js") -var test = require("tap").test -var json = require("../package.json") -var path = require("path") -var known = [].concat(Object.keys(json.dependencies) - , Object.keys(json.optionalDependencies) - , Object.keys(json.devDependencies)).sort() - -test("make sure that it works without dev deps", function (t) { - readInstalled(path.join(__dirname, "../"), { - log: console.error, - dev: false - }, function (er, map) { - t.notOk(er, "er should be bull") - t.ok(map, "map should be data") - if (er) return console.error(er.stack || er.message) - var deps = Object.keys(map.dependencies).sort() - t.equal(deps.length, known.length, "array lengths are equal") - t.deepEqual(deps, known, "arrays should be equal") - t.ok(map.dependencies.tap.extraneous, "extraneous is set on devDep") - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/empty.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/empty.js deleted file mode 100644 index 09ace074..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/empty.js +++ /dev/null @@ -1,16 +0,0 @@ -var readInstalled = require("../read-installed.js"); -var test = require("tap").test; -var path = require("path"); - -test("Handle bad path", function (t) { - readInstalled(path.join(__dirname, "../unknown"), { - dev: true, - log: console.error - }, function (er, map) { - t.notOk(er, "er should be null"); - t.ok(map, "map should be data"); - t.equal(Object.keys(map.dependencies).length, 0, "Dependencies should have no keys"); - if (er) return console.error(er.stack || er.message); - t.end(); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/extraneous-dev.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/extraneous-dev.js deleted file mode 100644 index 2f9012d5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/extraneous-dev.js +++ /dev/null @@ -1,20 +0,0 @@ -var readInstalled = require("../read-installed.js") -var test = require("tap").test -var path = require("path") - -test("extraneous detected", function(t) { - // This test verifies read-installed#16 - readInstalled( - path.join(__dirname, "fixtures/extraneous-dev-dep"), - { - log: console.error, - dev: true - }, - function (err, map) { - t.ifError(err, "read-installed made it") - - t.notOk(map.dependencies.d.extraneous, "d is not extraneous, it's required by root") - t.ok(map.dependencies.x.extraneous, "x is extraneous, it's only a dev dep of d") - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/extraneous.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/extraneous.js deleted file mode 100644 index e999c9b4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/extraneous.js +++ /dev/null @@ -1,17 +0,0 @@ -var readInstalled = require('../read-installed.js') -var test = require('tap').test -var path = require('path') - -test('extraneous detected', function(t) { - // This test verifies read-installed#16 - readInstalled( - path.join(__dirname, 'fixtures/extraneous-detected'), - { log: console.error }, - function(err, map) { - t.ok(map.dependencies.foo.extraneous, 'foo is extraneous, it\'s not required by any module') - t.ok(map.dependencies.bar.extraneous, 'bar is extraneous, it\'s not required by any module') - t.notOk(map.dependencies.asdf.extraneous, 'asdf is not extraneous, it\'s required by ghjk') - t.notOk(map.dependencies.ghjk.extraneous, 'ghjk is not extraneous, it\'s required by our root module') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/extraneous-detected/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/extraneous-detected/package.json deleted file mode 100644 index f6153155..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/extraneous-detected/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "extraneous-detected", - "version": "0.0.0", - "dependencies": { - "ghjk": "0.0.0" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/extraneous-dev-dep/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/extraneous-dev-dep/package.json deleted file mode 100644 index 9bfa7ce8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/extraneous-dev-dep/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "extraneous-dev-dep", - "version": "0.0.0", - "dependencies": { - "d": "1.0.0" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/grandparent-peer-dev/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/grandparent-peer-dev/package.json deleted file mode 100644 index 1a229c1c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/grandparent-peer-dev/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "example", - "version": "0.0.0", - "devDependencies": { - "plugin-wrapper": "0.0.0", - "framework": "0.0.0" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/grandparent-peer/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/grandparent-peer/package.json deleted file mode 100644 index 51c12935..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/grandparent-peer/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "example", - "version": "0.0.0", - "dependencies": { - "plugin-wrapper": "0.0.0", - "framework": "0.0.0" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/package.json deleted file mode 100644 index 8f4f1191..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/fixtures/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "read-installed", - "description": "Read all the installed packages in a folder, and return a tree structure with all the data.", - "version": "1.0.0", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/read-installed" - }, - "main": "read-installed.js", - "scripts": { - "test": "tap ./test/" - }, - "dependencies": { - "semver": "2", - "slide": "~1.1.3", - "read-package-json": "1", - "util-extend":"1" - }, - "optionalDependencies": { - "graceful-fs": "~2" - }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "devDependencies": { - "tap": "~0.4.8" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/grandparent-peer-dev.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/grandparent-peer-dev.js deleted file mode 100644 index fd7c2d2b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/grandparent-peer-dev.js +++ /dev/null @@ -1,20 +0,0 @@ -var readInstalled = require('../read-installed.js') -var test = require('tap').test -var path = require('path'); - -function allValid(t, map) { - var deps = Object.keys(map.dependencies || {}) - deps.forEach(function (dep) { - t.ok(map.dependencies[dep].extraneous, 'dependency ' + dep + ' of ' + map.name + ' is extraneous') - }) -} - -test('grandparent dev peer dependencies should be extraneous', function(t) { - readInstalled( - path.join(__dirname, 'fixtures/grandparent-peer-dev'), - { log: console.error }, - function(err, map) { - allValid(t, map) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/grandparent-peer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/grandparent-peer.js deleted file mode 100644 index 8b51a098..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/grandparent-peer.js +++ /dev/null @@ -1,24 +0,0 @@ -var readInstalled = require('../read-installed.js') -var test = require('tap').test -var path = require('path'); - -function allValid(t, map) { - var deps = Object.keys(map.dependencies || {}) - deps.forEach(function (dep) { - t.notOk(map.dependencies[dep].invalid, 'dependency ' + dep + ' of ' + map.name + ' is not invalid') - t.notOk(typeof map.dependencies[dep] === 'string', 'dependency ' + dep + ' of ' + map.name + ' is not missing') - }) - deps.forEach(function (dep) { - allValid(t, map.dependencies[dep]) - }) -} - -test('grandparent can satisfy peer dependencies', function(t) { - readInstalled( - path.join(__dirname, 'fixtures/grandparent-peer'), - { log: console.error }, - function(err, map) { - allValid(t, map) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/issue-40.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/issue-40.js deleted file mode 100644 index 3105fe24..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/issue-40.js +++ /dev/null @@ -1,15 +0,0 @@ -var readInstalled = require('../read-installed.js'); -var test = require('tap').test; -var path = require('path'); - -test('prerelease packages should not be marked invalid', function(t) { - readInstalled( - path.join(__dirname, 'fixtures/issue-40'), - { log: console.error }, - function(err, map) { - t.strictEqual(map.dependencies.fake.version, '0.1.0-2'); - t.notOk(map.dependencies.fake.invalid); - t.end(); - } - ); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/linked-dep-dev-deps-extraneous.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/linked-dep-dev-deps-extraneous.js deleted file mode 100644 index 65605133..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/linked-dep-dev-deps-extraneous.js +++ /dev/null @@ -1,59 +0,0 @@ -var test = require('tap').test -var path = require('path') -var fs = require('fs') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var readInstalled = require('../') - -var root = path.resolve(__dirname, 'root') -var pkg = path.resolve(root, 'pkg') -var pkgnm = path.resolve(pkg, 'node_modules') -var linkdepSrc = path.resolve(root, 'linkdep') -var linkdepLink = path.resolve(pkgnm, 'linkdep') -var devdep = path.resolve(linkdepSrc, 'node_modules', 'devdep') - -function pjson (dir, data) { - mkdirp.sync(dir) - var d = path.resolve(dir, 'package.json') - fs.writeFileSync(d, JSON.stringify(data)) -} - -test('setup', function (t) { - rimraf.sync(root) - pjson(pkg, { - name: 'root', - version: '1.2.3', - dependencies: { - linkdep: '' - } - }) - pjson(linkdepSrc, { - name: 'linkdep', - version: '1.2.3', - devDependencies: { - devdep: '' - } - }) - pjson(devdep, { - name: 'devdep', - version: '1.2.3' - }) - - mkdirp.sync(pkgnm) - fs.symlinkSync(linkdepSrc, linkdepLink, 'dir') - - t.end() -}) - -test('basic', function (t) { - readInstalled(pkg, { dev: true }, function (er, data) { - var dd = data.dependencies.linkdep.dependencies.devdep - t.notOk(dd.extraneous, 'linked dev dep should not be extraneous') - t.end() - }) -}) - -test('cleanup', function (t) { - rimraf.sync(root) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/noargs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/noargs.js deleted file mode 100644 index 66fabeb7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/noargs.js +++ /dev/null @@ -1,21 +0,0 @@ -var readInstalled = require("../read-installed.js") -var test = require("tap").test -var json = require("../package.json") -var path = require("path") -var known = [].concat(Object.keys(json.dependencies) - , Object.keys(json.optionalDependencies) - , Object.keys(json.devDependencies)).sort() - -test("make sure that it works without dev deps", function (t) { - readInstalled(path.join(__dirname, "../"), function (er, map) { - t.notOk(er, "er should be bull") - t.ok(map, "map should be data") - if (er) return console.error(er.stack || er.message) - var deps = Object.keys(map.dependencies).sort() - t.equal(deps.length, known.length, "array lengths are equal") - t.deepEqual(deps, known, "arrays should be equal") - t.ok(map.dependencies.tap.extraneous, 'extraneous is set on devDep') - t.end() - }) -}) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/peer-dep-at-latest.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/peer-dep-at-latest.js deleted file mode 100644 index 8f2436fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-installed/test/peer-dep-at-latest.js +++ /dev/null @@ -1,14 +0,0 @@ -var readInstalled = require('../read-installed.js') -var test = require('tap').test -var path = require('path'); - -test('"latest" version is valid', function(t) { - // This test verifies npm#3860 - readInstalled( - path.join(__dirname, 'fixtures/peer-at-latest'), - { log: console.error }, - function(err, map) { - t.notOk(map.dependencies.debug.invalid, 'debug@latest is satisfied by a peer') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/.npmignore deleted file mode 100644 index 8c23deeb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/.npmignore +++ /dev/null @@ -1,13 +0,0 @@ -*.swp -.*.swp - -.DS_Store -*~ -.project -.settings -npm-debug.log -coverage.html -.idea -lib-cov - -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/.travis.yml deleted file mode 100644 index f84676a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: node_js -node_js: - - '0.8' - - '0.10' - - '0.12' - - 'iojs' -sudo: false -before_install: - - npm install -g npm@latest diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/LICENSE deleted file mode 100644 index 052085c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/README.md deleted file mode 100644 index 05ba112c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/README.md +++ /dev/null @@ -1,157 +0,0 @@ -# read-package-json - -This is the thing that npm uses to read package.json files. It -validates some stuff, and loads some default things. - -It keeps a cache of the files you've read, so that you don't end -up reading the same package.json file multiple times. - -Note that if you just want to see what's literally in the package.json -file, you can usually do `var data = require('some-module/package.json')`. - -This module is basically only needed by npm, but it's handy to see what -npm will see when it looks at your package. - -## Usage - -```javascript -var readJson = require('read-package-json') - -// readJson(filename, [logFunction=noop], [strict=false], cb) -readJson('/path/to/package.json', console.error, false, function (er, data) { - if (er) { - console.error("There was an error reading the file") - return - } - - console.error('the package data is', data) -}); -``` - -## readJson(file, [logFn = noop], [strict = false], cb) - -* `file` {String} The path to the package.json file -* `logFn` {Function} Function to handle logging. Defaults to a noop. -* `strict` {Boolean} True to enforce SemVer 2.0 version strings, and - other strict requirements. -* `cb` {Function} Gets called with `(er, data)`, as is The Node Way. - -Reads the JSON file and does the things. - -## `package.json` Fields - -See `man 5 package.json` or `npm help json`. - -## readJson.log - -By default this is a reference to the `npmlog` module. But if that -module can't be found, then it'll be set to just a dummy thing that does -nothing. - -Replace with your own `{log,warn,error}` object for fun loggy time. - -## readJson.extras(file, data, cb) - -Run all the extra stuff relative to the file, with the parsed data. - -Modifies the data as it does stuff. Calls the cb when it's done. - -## readJson.extraSet = [fn, fn, ...] - -Array of functions that are called by `extras`. Each one receives the -arguments `fn(file, data, cb)` and is expected to call `cb(er, data)` -when done or when an error occurs. - -Order is indeterminate, so each function should be completely -independent. - -Mix and match! - -## readJson.cache - -The `lru-cache` object that readJson uses to not read the same file over -and over again. See -[lru-cache](https://github.com/isaacs/node-lru-cache) for details. - -## Other Relevant Files Besides `package.json` - -Some other files have an effect on the resulting data object, in the -following ways: - -### `README?(.*)` - -If there is a `README` or `README.*` file present, then npm will attach -a `readme` field to the data with the contents of this file. - -Owing to the fact that roughly 100% of existing node modules have -Markdown README files, it will generally be assumed to be Markdown, -regardless of the extension. Please plan accordingly. - -### `server.js` - -If there is a `server.js` file, and there is not already a -`scripts.start` field, then `scripts.start` will be set to `node -server.js`. - -### `AUTHORS` - -If there is not already a `contributors` field, then the `contributors` -field will be set to the contents of the `AUTHORS` file, split by lines, -and parsed. - -### `bindings.gyp` - -If a bindings.gyp file exists, and there is not already a -`scripts.install` field, then the `scripts.install` field will be set to -`node-gyp rebuild`. - -### `index.js` - -If the json file does not exist, but there is a `index.js` file -present instead, and that file has a package comment, then it will try -to parse the package comment, and use that as the data instead. - -A package comment looks like this: - -```javascript -/**package - * { "name": "my-bare-module" - * , "version": "1.2.3" - * , "description": "etc...." } - **/ - -// or... - -/**package -{ "name": "my-bare-module" -, "version": "1.2.3" -, "description": "etc...." } -**/ -``` - -The important thing is that it starts with `/**package`, and ends with -`**/`. If the package.json file exists, then the index.js is not -parsed. - -### `{directories.man}/*.[0-9]` - -If there is not already a `man` field defined as an array of files or a -single file, and -there is a `directories.man` field defined, then that directory will -be searched for manpages. - -Any valid manpages found in that directory will be assigned to the `man` -array, and installed in the appropriate man directory at package install -time, when installed globally on a Unix system. - -### `{directories.bin}/*` - -If there is not already a `bin` field defined as a string filename or a -hash of ` : ` pairs, then the `directories.bin` -directory will be searched and all the files within it will be linked as -executables at install time. - -When installing locally, npm links bins into `node_modules/.bin`, which -is in the `PATH` environ when npm runs scripts. When -installing globally, they are linked into `{prefix}/bin`, which is -presumably in the `PATH` environment variable. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/README.md deleted file mode 100644 index 6960483b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/README.md +++ /dev/null @@ -1,359 +0,0 @@ -# Glob - -Match files using the patterns the shell uses, like stars and stuff. - -[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master) - -This is a glob implementation in JavaScript. It uses the `minimatch` -library to do its matching. - -![](oh-my-glob.gif) - -## Usage - -```javascript -var glob = require("glob") - -// options is optional -glob("**/*.js", options, function (er, files) { - // files is an array of filenames. - // If the `nonull` option is set, and nothing - // was found, then files is ["**/*.js"] - // er is an error object or null. -}) -``` - -## Glob Primer - -"Globs" are the patterns you type when you do stuff like `ls *.js` on -the command line, or put `build/*` in a `.gitignore` file. - -Before parsing the path part patterns, braced sections are expanded -into a set. Braced sections start with `{` and end with `}`, with any -number of comma-delimited sections within. Braced sections may contain -slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`. - -The following characters have special magic meaning when used in a -path portion: - -* `*` Matches 0 or more characters in a single path portion -* `?` Matches 1 character -* `[...]` Matches a range of characters, similar to a RegExp range. - If the first character of the range is `!` or `^` then it matches - any character not in the range. -* `!(pattern|pattern|pattern)` Matches anything that does not match - any of the patterns provided. -* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the - patterns provided. -* `+(pattern|pattern|pattern)` Matches one or more occurrences of the - patterns provided. -* `*(a|b|c)` Matches zero or more occurrences of the patterns provided -* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns - provided -* `**` If a "globstar" is alone in a path portion, then it matches - zero or more directories and subdirectories searching for matches. - It does not crawl symlinked directories. - -### Dots - -If a file or directory path portion has a `.` as the first character, -then it will not match any glob pattern unless that pattern's -corresponding path part also has a `.` as its first character. - -For example, the pattern `a/.*/c` would match the file at `a/.b/c`. -However the pattern `a/*/c` would not, because `*` does not start with -a dot character. - -You can make glob treat dots as normal characters by setting -`dot:true` in the options. - -### Basename Matching - -If you set `matchBase:true` in the options, and the pattern has no -slashes in it, then it will seek for any file anywhere in the tree -with a matching basename. For example, `*.js` would match -`test/simple/basic.js`. - -### Empty Sets - -If no matching files are found, then an empty array is returned. This -differs from the shell, where the pattern itself is returned. For -example: - - $ echo a*s*d*f - a*s*d*f - -To get the bash-style behavior, set the `nonull:true` in the options. - -### See Also: - -* `man sh` -* `man bash` (Search for "Pattern Matching") -* `man 3 fnmatch` -* `man 5 gitignore` -* [minimatch documentation](https://github.com/isaacs/minimatch) - -## glob.hasMagic(pattern, [options]) - -Returns `true` if there are any special characters in the pattern, and -`false` otherwise. - -Note that the options affect the results. If `noext:true` is set in -the options object, then `+(a|b)` will not be considered a magic -pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}` -then that is considered magical, unless `nobrace:true` is set in the -options. - -## glob(pattern, [options], cb) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* `cb` `{Function}` - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Perform an asynchronous glob search. - -## glob.sync(pattern, [options]) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* return: `{Array}` filenames found matching the pattern - -Perform a synchronous glob search. - -## Class: glob.Glob - -Create a Glob object by instantiating the `glob.Glob` class. - -```javascript -var Glob = require("glob").Glob -var mg = new Glob(pattern, options, cb) -``` - -It's an EventEmitter, and starts walking the filesystem to find matches -immediately. - -### new glob.Glob(pattern, [options], [cb]) - -* `pattern` `{String}` pattern to search for -* `options` `{Object}` -* `cb` `{Function}` Called when an error occurs, or matches are found - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Note that if the `sync` flag is set in the options, then matches will -be immediately available on the `g.found` member. - -### Properties - -* `minimatch` The minimatch object that the glob uses. -* `options` The options object passed in. -* `aborted` Boolean which is set to true when calling `abort()`. There - is no way at this time to continue a glob search after aborting, but - you can re-use the statCache to avoid having to duplicate syscalls. -* `cache` Convenience object. Each field has the following possible - values: - * `false` - Path does not exist - * `true` - Path exists - * `'FILE'` - Path exists, and is not a directory - * `'DIR'` - Path exists, and is a directory - * `[file, entries, ...]` - Path exists, is a directory, and the - array value is the results of `fs.readdir` -* `statCache` Cache of `fs.stat` results, to prevent statting the same - path multiple times. -* `symlinks` A record of which paths are symbolic links, which is - relevant in resolving `**` patterns. -* `realpathCache` An optional object which is passed to `fs.realpath` - to minimize unnecessary syscalls. It is stored on the instantiated - Glob object, and may be re-used. - -### Events - -* `end` When the matching is finished, this is emitted with all the - matches found. If the `nonull` option is set, and no match was found, - then the `matches` list contains the original pattern. The matches - are sorted, unless the `nosort` flag is set. -* `match` Every time a match is found, this is emitted with the specific - thing that matched. It is not deduplicated or resolved to a realpath. -* `error` Emitted when an unexpected error is encountered, or whenever - any fs error occurs if `options.strict` is set. -* `abort` When `abort()` is called, this event is raised. - -### Methods - -* `pause` Temporarily stop the search -* `resume` Resume the search -* `abort` Stop the search forever - -### Options - -All the options that can be passed to Minimatch can also be passed to -Glob to change pattern matching behavior. Also, some have been added, -or have glob-specific ramifications. - -All options are false by default, unless otherwise noted. - -All options are added to the Glob object, as well. - -If you are running many `glob` operations, you can pass a Glob object -as the `options` argument to a subsequent operation to shortcut some -`stat` and `readdir` calls. At the very least, you may pass in shared -`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that -parallel glob operations will be sped up by sharing information about -the filesystem. - -* `cwd` The current working directory in which to search. Defaults - to `process.cwd()`. -* `root` The place where patterns starting with `/` will be mounted - onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix - systems, and `C:\` or some such on Windows.) -* `dot` Include `.dot` files in normal matches and `globstar` matches. - Note that an explicit dot in a portion of the pattern will always - match dot files. -* `nomount` By default, a pattern starting with a forward-slash will be - "mounted" onto the root setting, so that a valid filesystem path is - returned. Set this flag to disable that behavior. -* `mark` Add a `/` character to directory matches. Note that this - requires additional stat calls. -* `nosort` Don't sort the results. -* `stat` Set to true to stat *all* results. This reduces performance - somewhat, and is completely unnecessary, unless `readdir` is presumed - to be an untrustworthy indicator of file existence. -* `silent` When an unusual error is encountered when attempting to - read a directory, a warning will be printed to stderr. Set the - `silent` option to true to suppress these warnings. -* `strict` When an unusual error is encountered when attempting to - read a directory, the process will just continue on in search of - other matches. Set the `strict` option to raise an error in these - cases. -* `cache` See `cache` property above. Pass in a previously generated - cache object to save some fs calls. -* `statCache` A cache of results of filesystem information, to prevent - unnecessary stat calls. While it should not normally be necessary - to set this, you may pass the statCache from one glob() call to the - options object of another, if you know that the filesystem will not - change between calls. (See "Race Conditions" below.) -* `symlinks` A cache of known symbolic links. You may pass in a - previously generated `symlinks` object to save `lstat` calls when - resolving `**` matches. -* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead. -* `nounique` In some cases, brace-expanded patterns can result in the - same file showing up multiple times in the result set. By default, - this implementation prevents duplicates in the result set. Set this - flag to disable that behavior. -* `nonull` Set to never return an empty set, instead returning a set - containing the pattern itself. This is the default in glob(3). -* `debug` Set to enable debug logging in minimatch and glob. -* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets. -* `noglobstar` Do not match `**` against multiple filenames. (Ie, - treat it as a normal `*` instead.) -* `noext` Do not match `+(a|b)` "extglob" patterns. -* `nocase` Perform a case-insensitive match. Note: on - case-insensitive filesystems, non-magic patterns will match by - default, since `stat` and `readdir` will not raise errors. -* `matchBase` Perform a basename-only match if the pattern does not - contain any slash characters. That is, `*.js` would be treated as - equivalent to `**/*.js`, matching all js files in all directories. -* `nodir` Do not match directories, only files. (Note: to match - *only* directories, simply put a `/` at the end of the pattern.) -* `ignore` Add a pattern or an array of glob patterns to exclude matches. - Note: `ignore` patterns are *always* in `dot:true` mode, regardless - of any other settings. -* `follow` Follow symlinked directories when expanding `**` patterns. - Note that this can result in a lot of duplicate references in the - presence of cyclic links. -* `realpath` Set to true to call `fs.realpath` on all of the results. - In the case of a symlink that cannot be resolved, the full absolute - path to the matched entry is returned (though it will usually be a - broken symlink) - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between node-glob and other -implementations, and are intentional. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.3, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -Note that symlinked directories are not crawled as part of a `**`, -though their contents may match against subsequent portions of the -pattern. This prevents infinite loops and duplicates and the like. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then glob returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. - -### Comments and Negation - -Previously, this module let you mark a pattern as a "comment" if it -started with a `#` character, or a "negated" pattern if it started -with a `!` character. - -These options were deprecated in version 5, and removed in version 6. - -To specify things that should not match, use the `ignore` option. - -## Windows - -**Please only use forward-slashes in glob expressions.** - -Though windows uses either `/` or `\` as its path separator, only `/` -characters are used by this glob implementation. You must use -forward-slashes **only** in glob expressions. Back-slashes will always -be interpreted as escape characters, not path separators. - -Results from absolute patterns such as `/foo/*` are mounted onto the -root setting using `path.join`. On windows, this will by default result -in `/foo/*` matching `C:\foo\bar.txt`. - -## Race Conditions - -Glob searching, by its very nature, is susceptible to race conditions, -since it relies on directory walking and such. - -As a result, it is possible that a file that exists when glob looks for -it may have been deleted or modified by the time it returns the result. - -As part of its internal implementation, this program caches all stat -and readdir calls that it makes, in order to cut down on system -overhead. However, this also makes it even more susceptible to races, -especially if the cache or statCache objects are reused between glob -calls. - -Users are thus advised not to use a glob result as a guarantee of -filesystem state in the face of rapid changes. For the vast majority -of operations, this is never a problem. - -## Contributing - -Any change to behavior (including bugfixes) must come with a test. - -Patches that fail tests or reduce performance will be rejected. - -``` -# to run tests -npm test - -# to re-generate test fixtures -npm run test-regen - -# to benchmark against bash/zsh -npm run bench - -# to profile javascript -npm run prof -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/common.js deleted file mode 100644 index c9127eb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/common.js +++ /dev/null @@ -1,226 +0,0 @@ -exports.alphasort = alphasort -exports.alphasorti = alphasorti -exports.setopts = setopts -exports.ownProp = ownProp -exports.makeAbs = makeAbs -exports.finish = finish -exports.mark = mark -exports.isIgnored = isIgnored -exports.childrenIgnored = childrenIgnored - -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} - -var path = require("path") -var minimatch = require("minimatch") -var isAbsolute = require("path-is-absolute") -var Minimatch = minimatch.Minimatch - -function alphasorti (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()) -} - -function alphasort (a, b) { - return a.localeCompare(b) -} - -function setupIgnores (self, options) { - self.ignore = options.ignore || [] - - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore] - - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap) - } -} - -// ignore patterns are always in dot:true mode. -function ignoreMap (pattern) { - var gmatcher = null - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, '') - gmatcher = new Minimatch(gpattern, { dot: true }) - } - - return { - matcher: new Minimatch(pattern, { dot: true }), - gmatcher: gmatcher - } -} - -function setopts (self, pattern, options) { - if (!options) - options = {} - - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") - } - pattern = "**/" + pattern - } - - self.silent = !!options.silent - self.pattern = pattern - self.strict = options.strict !== false - self.realpath = !!options.realpath - self.realpathCache = options.realpathCache || Object.create(null) - self.follow = !!options.follow - self.dot = !!options.dot - self.mark = !!options.mark - self.nodir = !!options.nodir - if (self.nodir) - self.mark = true - self.sync = !!options.sync - self.nounique = !!options.nounique - self.nonull = !!options.nonull - self.nosort = !!options.nosort - self.nocase = !!options.nocase - self.stat = !!options.stat - self.noprocess = !!options.noprocess - - self.maxLength = options.maxLength || Infinity - self.cache = options.cache || Object.create(null) - self.statCache = options.statCache || Object.create(null) - self.symlinks = options.symlinks || Object.create(null) - - setupIgnores(self, options) - - self.changedCwd = false - var cwd = process.cwd() - if (!ownProp(options, "cwd")) - self.cwd = cwd - else { - self.cwd = options.cwd - self.changedCwd = path.resolve(options.cwd) !== cwd - } - - self.root = options.root || path.resolve(self.cwd, "/") - self.root = path.resolve(self.root) - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/") - - self.nomount = !!options.nomount - - // disable comments and negation in Minimatch. - // Note that they are not supported in Glob itself anyway. - options.nonegate = true - options.nocomment = true - - self.minimatch = new Minimatch(pattern, options) - self.options = self.minimatch.options -} - -function finish (self) { - var nou = self.nounique - var all = nou ? [] : Object.create(null) - - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i] - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i] - if (nou) - all.push(literal) - else - all[literal] = true - } - } else { - // had matches - var m = Object.keys(matches) - if (nou) - all.push.apply(all, m) - else - m.forEach(function (m) { - all[m] = true - }) - } - } - - if (!nou) - all = Object.keys(all) - - if (!self.nosort) - all = all.sort(self.nocase ? alphasorti : alphasort) - - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]) - } - if (self.nodir) { - all = all.filter(function (e) { - return !(/\/$/.test(e)) - }) - } - } - - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }) - - self.found = all -} - -function mark (self, p) { - var abs = makeAbs(self, p) - var c = self.cache[abs] - var m = p - if (c) { - var isDir = c === 'DIR' || Array.isArray(c) - var slash = p.slice(-1) === '/' - - if (isDir && !slash) - m += '/' - else if (!isDir && slash) - m = m.slice(0, -1) - - if (m !== p) { - var mabs = makeAbs(self, m) - self.statCache[mabs] = self.statCache[abs] - self.cache[mabs] = self.cache[abs] - } - } - - return m -} - -// lotta situps... -function makeAbs (self, f) { - var abs = f - if (f.charAt(0) === '/') { - abs = path.join(self.root, f) - } else if (isAbsolute(f) || f === '') { - abs = f - } else if (self.changedCwd) { - abs = path.resolve(self.cwd, f) - } else { - abs = path.resolve(f) - } - return abs -} - - -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/glob.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/glob.js deleted file mode 100644 index a62da27e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/glob.js +++ /dev/null @@ -1,765 +0,0 @@ -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. - -module.exports = glob - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var inherits = require('inherits') -var EE = require('events').EventEmitter -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var globSync = require('./sync.js') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var inflight = require('inflight') -var util = require('util') -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -var once = require('once') - -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {} - if (!options) options = {} - - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return globSync(pattern, options) - } - - return new Glob(pattern, options, cb) -} - -glob.sync = globSync -var GlobSync = glob.GlobSync = globSync.GlobSync - -// old api surface -glob.glob = glob - -function extend (origin, add) { - if (add === null || typeof add !== 'object') { - return origin - } - - var keys = Object.keys(add) - var i = keys.length - while (i--) { - origin[keys[i]] = add[keys[i]] - } - return origin -} - -glob.hasMagic = function (pattern, options_) { - var options = extend({}, options_) - options.noprocess = true - - var g = new Glob(pattern, options) - var set = g.minimatch.set - if (set.length > 1) - return true - - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } - - return false -} - -glob.Glob = Glob -inherits(Glob, EE) -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync(pattern, options) - } - - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) - - setopts(this, pattern, options) - this._didRealPath = false - - // process each pattern in the minimatch set - var n = this.minimatch.set.length - - // The matches are stored as {: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n) - - if (typeof cb === 'function') { - cb = once(cb) - this.on('error', cb) - this.on('end', function (matches) { - cb(null, matches) - }) - } - - var self = this - var n = this.minimatch.set.length - this._processing = 0 - this.matches = new Array(n) - - this._emitQueue = [] - this._processQueue = [] - this.paused = false - - if (this.noprocess) - return this - - if (n === 0) - return done() - - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done) - } - - function done () { - --self._processing - if (self._processing <= 0) - self._finish() - } -} - -Glob.prototype._finish = function () { - assert(this instanceof Glob) - if (this.aborted) - return - - if (this.realpath && !this._didRealpath) - return this._realpath() - - common.finish(this) - this.emit('end', this.found) -} - -Glob.prototype._realpath = function () { - if (this._didRealpath) - return - - this._didRealpath = true - - var n = this.matches.length - if (n === 0) - return this._finish() - - var self = this - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next) - - function next () { - if (--n === 0) - self._finish() - } -} - -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index] - if (!matchset) - return cb() - - var found = Object.keys(matchset) - var self = this - var n = found.length - - if (n === 0) - return cb() - - var set = this.matches[index] = Object.create(null) - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p) - fs.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true - else if (er.syscall === 'stat') - set[p] = true - else - self.emit('error', er) // srsly wtf right here - - if (--n === 0) { - self.matches[index] = set - cb() - } - }) - }) -} - -Glob.prototype._mark = function (p) { - return common.mark(this, p) -} - -Glob.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -Glob.prototype.abort = function () { - this.aborted = true - this.emit('abort') -} - -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true - this.emit('pause') - } -} - -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume') - this.paused = false - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0) - this._emitQueue.length = 0 - for (var i = 0; i < eq.length; i ++) { - var e = eq[i] - this._emitMatch(e[0], e[1]) - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0) - this._processQueue.length = 0 - for (var i = 0; i < pq.length; i ++) { - var p = pq[i] - this._processing-- - this._process(p[0], p[1], p[2], p[3]) - } - } - } -} - -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert(this instanceof Glob) - assert(typeof cb === 'function') - - if (this.aborted) - return - - this._processing++ - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]) - return - } - - //console.error('PROCESS %d', this._processing, pattern) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // see if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip _processing - if (childrenIgnored(this, read)) - return cb() - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) -} - -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return cb() - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - this._process([e].concat(remain), index, inGlobStar, cb) - } - cb() -} - -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return - - if (this.matches[index][e]) - return - - if (isIgnored(this, e)) - return - - if (this.paused) { - this._emitQueue.push([index, e]) - return - } - - var abs = this._makeAbs(e) - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - if (this.mark) - e = this._mark(e) - - this.matches[index][e] = true - - var st = this.statCache[abs] - if (st) - this.emit('stat', e, st) - - this.emit('match', e) -} - -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return - - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) - - var lstatkey = 'lstat\0' + abs - var self = this - var lstatcb = inflight(lstatkey, lstatcb_) - - if (lstatcb) - fs.lstat(abs, lstatcb) - - function lstatcb_ (er, lstat) { - if (er) - return cb() - - var isSym = lstat.isSymbolicLink() - self.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) { - self.cache[abs] = 'FILE' - cb() - } else - self._readdir(abs, false, cb) - } -} - -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return - - cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) - if (!cb) - return - - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return cb() - - if (Array.isArray(c)) - return cb(null, c) - } - - var self = this - fs.readdir(abs, readdirCb(this, abs, cb)) -} - -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb) - else - self._readdirEntries(abs, entries, cb) - } -} - -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return - - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - return cb(null, entries) -} - -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return - - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) { - this.emit('error', er) - // If the error is handled, then we abort - // if not, we threw out of here - this.abort() - } - if (!this.silent) - console.error('glob error', er) - break - } - - return cb() -} - -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - - -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb) - - var isSym = this.symlinks[abs] - var len = entries.length - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true, cb) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true, cb) - } - - cb() -} - -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb) - }) -} -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { - - //console.error('ps2', prefix, exists) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) - cb() -} - -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return cb() - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) - - if (needDir && c === 'FILE') - return cb() - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE' - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } - - var self = this - var statcb = inflight('stat\0' + abs, lstatcb_) - if (statcb) - fs.lstat(abs, statcb) - - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return fs.stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb) - else - self._stat2(f, abs, er, stat, cb) - }) - } else { - self._stat2(f, abs, er, lstat, cb) - } - } -} - -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er) { - this.statCache[abs] = false - return cb() - } - - var needDir = f.slice(-1) === '/' - this.statCache[abs] = stat - - if (abs.slice(-1) === '/' && !stat.isDirectory()) - return cb(null, false, stat) - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return cb() - - return cb(null, c, stat) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/README.md deleted file mode 100644 index d458bc2e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/README.md +++ /dev/null @@ -1,216 +0,0 @@ -# minimatch - -A minimal matching utility. - -[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch) - - -This is the matching library used internally by npm. - -It works by converting glob expressions into JavaScript `RegExp` -objects. - -## Usage - -```javascript -var minimatch = require("minimatch") - -minimatch("bar.foo", "*.foo") // true! -minimatch("bar.foo", "*.bar") // false! -minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy! -``` - -## Features - -Supports these glob features: - -* Brace Expansion -* Extended glob matching -* "Globstar" `**` matching - -See: - -* `man sh` -* `man bash` -* `man 3 fnmatch` -* `man 5 gitignore` - -## Minimatch Class - -Create a minimatch object by instanting the `minimatch.Minimatch` class. - -```javascript -var Minimatch = require("minimatch").Minimatch -var mm = new Minimatch(pattern, options) -``` - -### Properties - -* `pattern` The original pattern the minimatch object represents. -* `options` The options supplied to the constructor. -* `set` A 2-dimensional array of regexp or string expressions. - Each row in the - array corresponds to a brace-expanded pattern. Each item in the row - corresponds to a single path-part. For example, the pattern - `{a,b/c}/d` would expand to a set of patterns like: - - [ [ a, d ] - , [ b, c, d ] ] - - If a portion of the pattern doesn't have any "magic" in it - (that is, it's something like `"foo"` rather than `fo*o?`), then it - will be left as a string rather than converted to a regular - expression. - -* `regexp` Created by the `makeRe` method. A single regular expression - expressing the entire pattern. This is useful in cases where you wish - to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled. -* `negate` True if the pattern is negated. -* `comment` True if the pattern is a comment. -* `empty` True if the pattern is `""`. - -### Methods - -* `makeRe` Generate the `regexp` member if necessary, and return it. - Will return `false` if the pattern is invalid. -* `match(fname)` Return true if the filename matches the pattern, or - false otherwise. -* `matchOne(fileArray, patternArray, partial)` Take a `/`-split - filename, and match it against a single row in the `regExpSet`. This - method is mainly for internal use, but is exposed so that it can be - used by a glob-walker that needs to avoid excessive filesystem calls. - -All other methods are internal, and will be called as necessary. - -## Functions - -The top-level exported function has a `cache` property, which is an LRU -cache set to store 100 items. So, calling these methods repeatedly -with the same pattern and options will use the same Minimatch object, -saving the cost of parsing it multiple times. - -### minimatch(path, pattern, options) - -Main export. Tests a path against the pattern using the options. - -```javascript -var isJS = minimatch(file, "*.js", { matchBase: true }) -``` - -### minimatch.filter(pattern, options) - -Returns a function that tests its -supplied argument, suitable for use with `Array.filter`. Example: - -```javascript -var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true})) -``` - -### minimatch.match(list, pattern, options) - -Match against the list of -files, in the style of fnmatch or glob. If nothing is matched, and -options.nonull is set, then return a list containing the pattern itself. - -```javascript -var javascripts = minimatch.match(fileList, "*.js", {matchBase: true})) -``` - -### minimatch.makeRe(pattern, options) - -Make a regular expression object from the pattern. - -## Options - -All options are `false` by default. - -### debug - -Dump a ton of stuff to stderr. - -### nobrace - -Do not expand `{a,b}` and `{1..3}` brace sets. - -### noglobstar - -Disable `**` matching against multiple folder names. - -### dot - -Allow patterns to match filenames starting with a period, even if -the pattern does not explicitly have a period in that spot. - -Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot` -is set. - -### noext - -Disable "extglob" style patterns like `+(a|b)`. - -### nocase - -Perform a case-insensitive match. - -### nonull - -When a match is not found by `minimatch.match`, return a list containing -the pattern itself if this option is set. When not set, an empty list -is returned if there are no matches. - -### matchBase - -If set, then patterns without slashes will be matched -against the basename of the path if it contains slashes. For example, -`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. - -### nocomment - -Suppress the behavior of treating `#` at the start of a pattern as a -comment. - -### nonegate - -Suppress the behavior of treating a leading `!` character as negation. - -### flipNegate - -Returns from negate expressions the same as if they were not negated. -(Ie, true on a hit, false on a miss.) - - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between minimatch and other -implementations, and are intentional. - -If the pattern starts with a `!` character, then it is negated. Set the -`nonegate` flag to suppress this behavior, and treat leading `!` -characters normally. This is perhaps relevant if you wish to start the -pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` -characters at the start of a pattern will negate the pattern multiple -times. - -If a pattern starts with `#`, then it is treated as a comment, and -will not match anything. Use `\#` to match a literal `#` at the -start of a line, or set the `nocomment` flag to suppress this behavior. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.1, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then minimatch.match returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/minimatch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/minimatch.js deleted file mode 100644 index ec4c05c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/minimatch.js +++ /dev/null @@ -1,912 +0,0 @@ -module.exports = minimatch -minimatch.Minimatch = Minimatch - -var path = { sep: '/' } -try { - path = require('path') -} catch (er) {} - -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} -var expand = require('brace-expansion') - -// any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]' - -// * => any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } - - // "" only matches "" - if (pattern.trim() === '') return p === '' - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } - - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') - } - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function () {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new Error('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var plType - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - plType = stateChar - patternListStack.push({ - type: plType, - start: i - 1, - reStart: re.length - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - re += ')' - var pl = patternListStack.pop() - plType = pl.type - // negation is (?:(?!js)[^/]*) - // The others are (?:) - switch (plType) { - case '!': - negativeLists.push(pl) - re += ')[^/]*?)' - pl.reEnd = re.length - break - case '?': - case '+': - case '*': - re += plType - break - case '@': break // the default anyway - } - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + 3) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - var regExp = new RegExp('^' + re + '$', flags) - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore deleted file mode 100644 index 353546af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -test -.gitignore -.travis.yml diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md deleted file mode 100644 index 17939297..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js deleted file mode 100644 index 60ecfc74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +++ /dev/null @@ -1,8 +0,0 @@ -var expand = require('./'); - -console.log(expand('http://any.org/archive{1996..1999}/vol{1..4}/part{a,b,c}.html')); -console.log(expand('http://www.numericals.com/file{1..100..10}.txt')); -console.log(expand('http://www.letters.com/file{a..z..2}.txt')); -console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}')); -console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}')); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js deleted file mode 100644 index 932718f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,191 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = /^(.*,)+(.+)?$/.test(m.body); - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore deleted file mode 100644 index fd4f2b06..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -.DS_Store diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml deleted file mode 100644 index 6e5919de..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile deleted file mode 100644 index fa5da71a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -test: - @node_modules/.bin/tape test/*.js - -.PHONY: test - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md deleted file mode 100644 index 421f3aa5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +++ /dev/null @@ -1,89 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[
            , ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js deleted file mode 100644 index c02ad348..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +++ /dev/null @@ -1,5 +0,0 @@ -var balanced = require('./'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js deleted file mode 100644 index 75f3d71c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +++ /dev/null @@ -1,50 +0,0 @@ -module.exports = balanced; -function balanced(a, b, str) { - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i < str.length && i >= 0 && ! result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json deleted file mode 100644 index 24523f3b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "_args": [ - [ - "balanced-match@^0.3.0", - "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion" - ], - [ - "balanced-match@^0.3.0", - "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion" - ] - ], - "_from": "balanced-match@>=0.3.0 <0.4.0", - "_id": "balanced-match@0.3.0", - "_inCache": true, - "_installable": true, - "_location": "/read-package-json/glob/minimatch/brace-expansion/balanced-match", - "_nodeVersion": "4.2.1", - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "2.14.7", - "_phantomChildren": {}, - "_requested": { - "name": "balanced-match", - "raw": "balanced-match@^0.3.0", - "rawSpec": "^0.3.0", - "scope": null, - "spec": ">=0.3.0 <0.4.0", - "type": "range" - }, - "_requiredBy": [ - "/read-package-json/glob/minimatch/brace-expansion" - ], - "_shrinkwrap": null, - "_spec": "balanced-match@^0.3.0", - "_where": "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/balanced-match/issues" - }, - "dependencies": {}, - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "devDependencies": { - "tape": "~4.2.2" - }, - "directories": {}, - "dist": { - "shasum": "a91cdd1ebef1a86659e70ff4def01625fc2d6756", - "tarball": "http://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" - }, - "gitHead": "a7114b0986554787e90b7ac595a043ca75ea77e5", - "homepage": "https://github.com/juliangruber/balanced-match", - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - } - ], - "name": "balanced-match", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "scripts": { - "test": "make test" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test/*.js" - }, - "version": "0.3.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js deleted file mode 100644 index f5e98e3f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +++ /dev/null @@ -1,84 +0,0 @@ -var test = require('tape'); -var balanced = require('..'); - -test('balanced', function(t) { - t.deepEqual(balanced('{', '}', 'pre{in{nest}}post'), { - start: 3, - end: 12, - pre: 'pre', - body: 'in{nest}', - post: 'post' - }); - t.deepEqual(balanced('{', '}', '{{{{{{{{{in}post'), { - start: 8, - end: 11, - pre: '{{{{{{{{', - body: 'in', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre{body{in}post'), { - start: 8, - end: 11, - pre: 'pre{body', - body: 'in', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre}{in{nest}}post'), { - start: 4, - end: 13, - pre: 'pre}', - body: 'in{nest}', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre{body}between{body2}post'), { - start: 3, - end: 8, - pre: 'pre', - body: 'body', - post: 'between{body2}post' - }); - t.notOk(balanced('{', '}', 'nope'), 'should be notOk'); - t.deepEqual(balanced('', '', 'preinnestpost'), { - start: 3, - end: 19, - pre: 'pre', - body: 'innest', - post: 'post' - }); - t.deepEqual(balanced('', '', 'preinnestpost'), { - start: 7, - end: 23, - pre: 'pre', - body: 'innest', - post: 'post' - }); - t.deepEqual(balanced('{{', '}}', 'pre{{{in}}}post'), { - start: 3, - end: 9, - pre: 'pre', - body: '{in}', - post: 'post' - }); - t.deepEqual(balanced('{{{', '}}', 'pre{{{in}}}post'), { - start: 3, - end: 8, - pre: 'pre', - body: 'in', - post: '}post' - }); - t.deepEqual(balanced('{', '}', 'pre{{first}in{second}post'), { - start: 4, - end: 10, - pre: 'pre{', - body: 'first', - post: 'in{second}post' - }); - t.deepEqual(balanced('', 'prepost'), { - start: 3, - end: 4, - pre: 'pre', - body: '', - post: 'post' - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml deleted file mode 100644 index f1d0f13c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +++ /dev/null @@ -1,62 +0,0 @@ -concat-map -========== - -Concatenative mapdashery. - -[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) - -[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) - -example -======= - -``` js -var concatMap = require('concat-map'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); -``` - -*** - -``` -[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] -``` - -methods -======= - -``` js -var concatMap = require('concat-map') -``` - -concatMap(xs, fn) ------------------ - -Return an array of concatenated elements by calling `fn(x, i)` for each element -`x` and each index `i` in the array `xs`. - -When `fn(x, i)` returns an array, its result will be concatenated with the -result array. If `fn(x, i)` returns anything else, that value will be pushed -onto the end of the result array. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install concat-map -``` - -license -======= - -MIT - -notes -===== - -This module was written while sitting high above the ground in a tree. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js deleted file mode 100644 index 33656217..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js deleted file mode 100644 index b29a7812..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json deleted file mode 100644 index 177d7a5f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "_args": [ - [ - "concat-map@0.0.1", - "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion" - ], - [ - "concat-map@0.0.1", - "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion" - ] - ], - "_from": "concat-map@0.0.1", - "_id": "concat-map@0.0.1", - "_inCache": true, - "_installable": true, - "_location": "/read-package-json/glob/minimatch/brace-expansion/concat-map", - "_npmUser": { - "email": "mail@substack.net", - "name": "substack" - }, - "_npmVersion": "1.3.21", - "_phantomChildren": {}, - "_requested": { - "name": "concat-map", - "raw": "concat-map@0.0.1", - "rawSpec": "0.0.1", - "scope": null, - "spec": "0.0.1", - "type": "version" - }, - "_requiredBy": [ - "/read-package-json/glob/minimatch/brace-expansion" - ], - "_shrinkwrap": null, - "_spec": "concat-map@0.0.1", - "_where": "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion", - "author": { - "email": "mail@substack.net", - "name": "James Halliday", - "url": "http://substack.net" - }, - "bugs": { - "url": "https://github.com/substack/node-concat-map/issues" - }, - "dependencies": {}, - "description": "concatenative mapdashery", - "devDependencies": { - "tape": "~2.4.0" - }, - "directories": { - "example": "example", - "test": "test" - }, - "dist": { - "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "tarball": "http://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "homepage": "https://github.com/substack/node-concat-map", - "keywords": [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "mail@substack.net", - "name": "substack" - } - ], - "name": "concat-map", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-concat-map.git" - }, - "scripts": { - "test": "tape test/*.js" - }, - "testling": { - "browsers": { - "chrome": [ - 10, - 22 - ], - "ff": [ - 3.5, - 10, - 15 - ], - "ie": [ - 6, - 7, - 8, - 9 - ], - "opera": [ - 12 - ], - "safari": [ - 5.1 - ] - }, - "files": "test/*.js" - }, - "version": "0.0.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd7022..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json deleted file mode 100644 index 94b5f9c0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "_args": [ - [ - "brace-expansion@^1.0.0", - "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch" - ], - [ - "brace-expansion@^1.0.0", - "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch" - ] - ], - "_from": "brace-expansion@>=1.0.0 <2.0.0", - "_id": "brace-expansion@1.1.3", - "_inCache": true, - "_installable": true, - "_location": "/read-package-json/glob/minimatch/brace-expansion", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/brace-expansion-1.1.3.tgz_1455216688668_0.948847763473168" - }, - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "brace-expansion", - "raw": "brace-expansion@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/read-package-json/glob/minimatch" - ], - "_shrinkwrap": null, - "_spec": "brace-expansion@^1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/brace-expansion/issues" - }, - "dependencies": { - "balanced-match": "^0.3.0", - "concat-map": "0.0.1" - }, - "description": "Brace expansion as known from sh/bash", - "devDependencies": { - "tape": "4.4.0" - }, - "directories": {}, - "dist": { - "shasum": "46bff50115d47fc9ab89854abb87d98078a10991", - "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz" - }, - "gitHead": "f0da1bb668e655f67b6b2d660c6e1c19e2a6f231", - "homepage": "https://github.com/juliangruber/brace-expansion", - "keywords": [], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - } - ], - "name": "brace-expansion", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "scripts": { - "gentest": "bash test/generate.sh", - "test": "tape test/*.js" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test/*.js" - }, - "version": "1.1.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/package.json deleted file mode 100644 index c2f6fff7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_args": [ - [ - "minimatch@2 || 3", - "/Users/rebecca/code/npm/node_modules/glob" - ], - [ - "minimatch@2 || 3", - "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob" - ] - ], - "_from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "_id": "minimatch@3.0.0", - "_inCache": true, - "_installable": true, - "_location": "/read-package-json/glob/minimatch", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "minimatch", - "raw": "minimatch@2 || 3", - "rawSpec": "2 || 3", - "scope": null, - "spec": ">=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "type": "range" - }, - "_requiredBy": [ - "/read-package-json/glob" - ], - "_shrinkwrap": null, - "_spec": "minimatch@2 || 3", - "_where": "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me" - }, - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" - }, - "dependencies": { - "brace-expansion": "^1.0.0" - }, - "description": "a glob matcher in javascript", - "devDependencies": { - "standard": "^3.7.2", - "tap": "^1.2.0" - }, - "directories": {}, - "dist": { - "shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83", - "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz" - }, - "engines": { - "node": "*" - }, - "files": [ - "minimatch.js" - ], - "gitHead": "270dbea567f0af6918cb18103e98c612aa717a20", - "homepage": "https://github.com/isaacs/minimatch#readme", - "license": "ISC", - "main": "minimatch.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "minimatch", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" - }, - "scripts": { - "posttest": "standard minimatch.js test/*.js", - "test": "tap test/*.js" - }, - "version": "3.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/index.js deleted file mode 100644 index 19f103f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/index.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -function posix(path) { - return path.charAt(0) === '/'; -}; - -function win32(path) { - // https://github.com/joyent/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; - var result = splitDeviceRe.exec(path); - var device = result[1] || ''; - var isUnc = !!device && device.charAt(1) !== ':'; - - // UNC paths are always absolute - return !!result[2] || isUnc; -}; - -module.exports = process.platform === 'win32' ? win32 : posix; -module.exports.posix = posix; -module.exports.win32 = win32; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/package.json deleted file mode 100644 index 2bff7fef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "_args": [ - [ - "path-is-absolute@^1.0.0", - "/Users/rebecca/code/npm/node_modules/glob" - ], - [ - "path-is-absolute@^1.0.0", - "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob" - ] - ], - "_from": "path-is-absolute@>=1.0.0 <2.0.0", - "_id": "path-is-absolute@1.0.0", - "_inCache": true, - "_installable": true, - "_location": "/read-package-json/glob/path-is-absolute", - "_nodeVersion": "0.12.0", - "_npmUser": { - "email": "sindresorhus@gmail.com", - "name": "sindresorhus" - }, - "_npmVersion": "2.5.1", - "_phantomChildren": {}, - "_requested": { - "name": "path-is-absolute", - "raw": "path-is-absolute@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/read-package-json/glob" - ], - "_shrinkwrap": null, - "_spec": "path-is-absolute@^1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob", - "author": { - "email": "sindresorhus@gmail.com", - "name": "Sindre Sorhus", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/path-is-absolute/issues" - }, - "dependencies": {}, - "description": "Node.js 0.12 path.isAbsolute() ponyfill", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912", - "tarball": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "gitHead": "7a76a0c9f2263192beedbe0a820e4d0baee5b7a1", - "homepage": "https://github.com/sindresorhus/path-is-absolute", - "keywords": [ - "path", - "paths", - "file", - "dir", - "absolute", - "isabsolute", - "is-absolute", - "built-in", - "util", - "utils", - "core", - "ponyfill", - "polyfill", - "shim", - "is", - "detect", - "check" - ], - "license": "MIT", - "maintainers": [ - { - "email": "sindresorhus@gmail.com", - "name": "sindresorhus" - } - ], - "name": "path-is-absolute", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/path-is-absolute.git" - }, - "scripts": { - "test": "node test.js" - }, - "version": "1.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md deleted file mode 100644 index cdf94f43..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md +++ /dev/null @@ -1,51 +0,0 @@ -# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute) - -> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) ponyfill - -> Ponyfill: A polyfill that doesn't overwrite the native method - - -## Install - -``` -$ npm install --save path-is-absolute -``` - - -## Usage - -```js -var pathIsAbsolute = require('path-is-absolute'); - -// Linux -pathIsAbsolute('/home/foo'); -//=> true - -// Windows -pathIsAbsolute('C:/Users/'); -//=> true - -// Any OS -pathIsAbsolute.posix('/home/foo'); -//=> true -``` - - -## API - -See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path). - -### pathIsAbsolute(path) - -### pathIsAbsolute.posix(path) - -The Posix specific version. - -### pathIsAbsolute.win32(path) - -The Windows specific version. - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/package.json deleted file mode 100644 index 6070250b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "_args": [ - [ - "glob@^6.0.0", - "/Users/rebecca/code/npm/node_modules/read-package-json" - ] - ], - "_from": "glob@>=6.0.0 <7.0.0", - "_id": "glob@6.0.4", - "_inCache": true, - "_installable": true, - "_location": "/read-package-json/glob", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "2.14.15", - "_phantomChildren": {}, - "_requested": { - "name": "glob", - "raw": "glob@^6.0.0", - "rawSpec": "^6.0.0", - "scope": null, - "spec": ">=6.0.0 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/read-package-json" - ], - "_resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "_shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22", - "_shrinkwrap": null, - "_spec": "glob@^6.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/read-package-json", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/node-glob/issues" - }, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "description": "a little globber", - "devDependencies": { - "mkdirp": "0", - "rimraf": "^2.2.8", - "tap": "^5.0.0", - "tick": "0.0.6" - }, - "directories": {}, - "dist": { - "shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22", - "tarball": "http://registry.npmjs.org/glob/-/glob-6.0.4.tgz" - }, - "engines": { - "node": "*" - }, - "files": [ - "glob.js", - "sync.js", - "common.js" - ], - "gitHead": "3bd419c538737e56fda7e21c21ff52ca0c198df6", - "homepage": "https://github.com/isaacs/node-glob#readme", - "license": "ISC", - "main": "glob.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "glob", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" - }, - "scripts": { - "bench": "bash benchmark.sh", - "benchclean": "node benchclean.js", - "prepublish": "npm run benchclean", - "prof": "bash prof.sh && cat profile.txt", - "profclean": "rm -f v8.log profile.txt", - "test": "tap test/*.js --cov", - "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" - }, - "version": "6.0.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/sync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/sync.js deleted file mode 100644 index 09883d2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/glob/sync.js +++ /dev/null @@ -1,460 +0,0 @@ -module.exports = globSync -globSync.GlobSync = GlobSync - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var Glob = require('./glob.js').Glob -var util = require('util') -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var childrenIgnored = common.childrenIgnored - -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - return new GlobSync(pattern, options).found -} - -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts(this, pattern, options) - - if (this.noprocess) - return this - - var n = this.minimatch.set.length - this.matches = new Array(n) - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false) - } - this._finish() -} - -GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) - if (this.realpath) { - var self = this - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null) - for (var p in matchset) { - try { - p = self._makeAbs(p) - var real = fs.realpathSync(p, self.realpathCache) - set[real] = true - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true - else - throw er - } - } - }) - } - common.finish(this) -} - - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // See if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip processing - if (childrenIgnored(this, read)) - return - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar) -} - - -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar) - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this.matches[index][e] = true - } - // This was the last one, and no stats were needed - return - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) - newPattern = [prefix, e] - else - newPattern = [e] - this._process(newPattern.concat(remain), index, inGlobStar) - } -} - - -GlobSync.prototype._emitMatch = function (index, e) { - var abs = this._makeAbs(e) - if (this.mark) - e = this._mark(e) - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[this._makeAbs(e)] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - if (this.stat) - this._stat(e) -} - - -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) - - var entries - var lstat - var stat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - // lstat failed, doesn't exist - return null - } - - var isSym = lstat.isSymbolicLink() - this.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) - this.cache[abs] = 'FILE' - else - entries = this._readdir(abs, false) - - return entries -} - -GlobSync.prototype._readdir = function (abs, inGlobStar) { - var entries - - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return null - - if (Array.isArray(c)) - return c - } - - try { - return this._readdirEntries(abs, fs.readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er) - return null - } -} - -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - - // mark and cache dir-ness - return entries -} - -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) - throw er - if (!this.silent) - console.error('glob error', er) - break - } -} - -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - - var entries = this._readdir(abs, inGlobStar) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false) - - var len = entries.length - var isSym = this.symlinks[abs] - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true) - } -} - -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this.matches[index][prefix] = true -} - -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return false - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c - - if (needDir && c === 'FILE') - return false - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (!stat) { - var lstat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - return false - } - - if (lstat.isSymbolicLink()) { - try { - stat = fs.statSync(abs) - } catch (er) { - stat = lstat - } - } else { - stat = lstat - } - } - - this.statCache[abs] = stat - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return false - - return c -} - -GlobSync.prototype._mark = function (p) { - return common.mark(this, p) -} - -GlobSync.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/.editorconfig b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/.editorconfig deleted file mode 100644 index fb7f73a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/.editorconfig +++ /dev/null @@ -1,14 +0,0 @@ -root = true - -[*] -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true - -[*.js, **/*.js] -indent_size = 4 -indent_style = space - -[{package.json,.travis.yml}] -indent_size = 2 -indent_style = space diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/.npmignore deleted file mode 100644 index 59d842ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/.npmignore +++ /dev/null @@ -1,28 +0,0 @@ -# Logs -logs -*.log - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directory -# Commenting this out is preferred by some people, see -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- -node_modules - -# Users Environment Variables -.lock-wscript diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/LICENSE deleted file mode 100644 index e637724b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Sam Mikes - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/README.md deleted file mode 100644 index ffad9358..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# json-parse-helpfulerror - -A drop-in replacement for `JSON.parse` that uses - to provide more useful error messages in the -event of a parse error. - -# Example - -## Installation - -``` -npm i -S json-parse-helpfulerror -``` - -## Use - -```js -var jph = require('json-parse-helpfulerror'); - -var notJSON = "{'foo': 3}"; // keys must be double-quoted in JSON - -JSON.parse(notJSON); // throws unhelpful error - -jph.parse("{'foo': 3}") // throws more helpful error: "Unexpected token '\''..." -``` - -# License - -MIT \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/index.js deleted file mode 100644 index 15648b01..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/index.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var jju = require('jju'); - -function parse(text, reviver) { - try { - return JSON.parse(text, reviver); - } catch (err) { - // we expect this to throw with a more informative message - jju.parse(text, { - mode: 'json', - reviver: reviver - }); - - // backup if jju is not as strict as JSON.parse; re-throw error - // data-dependent code path, I do not know how to cover it - throw err; - } -} - -exports.parse = parse; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/.npmignore deleted file mode 100644 index 5ae40150..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/.npmignore +++ /dev/null @@ -1,9 +0,0 @@ -package.json -node_modules -test -benchmark -docs -examples -/.editorconfig -/.eslint* -/.travis.yml diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/LICENSE deleted file mode 100644 index 5a8e3325..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/README.md deleted file mode 100644 index 85d52a2d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/README.md +++ /dev/null @@ -1,243 +0,0 @@ -`jju` - a set of utilities to work with JSON / JSON5 documents - -[![npm version badge](https://img.shields.io/npm/v/jju.svg)](https://www.npmjs.org/package/jju) -[![travis badge](http://img.shields.io/travis/rlidwka/jju.svg)](https://travis-ci.org/rlidwka/jju) -[![downloads badge](http://img.shields.io/npm/dm/jju.svg)](https://www.npmjs.org/package/jju) - -## Installation - -``` -npm install jju -``` - -## Usage - -This module provides following functions: - -1. [jju.parse()](#jjuparse-function) parses json/json5 text and returns a javascript value it corresponds to -2. [jju.stringify()](#jjustringify-function) converts javascript value to an appropriate json/json5 text -3. [jju.tokenize()](#jjutokenize-function) parses json/json5 text and returns an array of tokens it consists of ([see demo](http://rlidwka.github.io/jju/tokenizer.html)) -4. [jju.analyze()](#jjuanalyze-function) parses json/json5 text and tries to guess indentation, quoting style, etc. -5. [jju.update()](#jjuupdate-function) changes json/json5 text, preserving original formatting as much as possible ([see demo](http://rlidwka.github.io/jju/editor.html)) - -All functions are able to work with a standard JSON documents. `jju.parse()` and `jju.stringify()` are better in some cases, but slower than native `JSON.parse()` and `JSON.stringify()` versions. Detailed description see below. - -### jju.parse() function - -```javascript -/* - * Main syntax: - * - * `text` - text to parse, type: String - * `options` - parser options, type: Object - */ -jju.parse(text[, options]) - -// compatibility syntax -jju.parse(text[, reviver]) -``` - -Options: - - - reserved\_keys - what to do with reserved keys (String, default="ignore") - - "ignore" - ignore reserved keys - - "throw" - throw SyntaxError in case of reserved keys - - "replace" - replace reserved keys, this is the default JSON.parse behaviour, unsafe - - Reserved keys are keys that exist in an empty object (`hasOwnProperty`, `__proto__`, etc.). - -```javascript -// 'ignore' will cause reserved keys to be ignored: -parse('{hasOwnProperty: 1}', {reserved_keys: 'ignore'}) == {} -parse('{hasOwnProperty: 1, x: 2}', {reserved_keys: 'ignore'}).hasOwnProperty('x') == true - -// 'throw' will cause SyntaxError in these cases: -parse('{hasOwnProperty: 1}', {reserved_keys: 'throw'}) == SyntaxError - -// 'replace' will replace reserved keys with new ones: -parse('{hasOwnProperty: 1}', {reserved_keys: 'throw'}) == {hasOwnProperty: 1} -parse('{hasOwnProperty: 1, x: 2}', {reserved_keys: 'ignore'}).hasOwnProperty('x') == TypeError -``` - - - - null\_prototype - create object as Object.create(null) instead of '{}' (Boolean) - - if `reserved_keys != 'replace'`, default is **false** - - if `reserved_keys == 'replace'`, default is **true** - - It is usually unsafe and not recommended to change this option to false in the last case. - - - reviver - reviver function - Function - - This function should follow JSON specification - - - mode - operation mode, set it to 'json' if you want to throw on non-strict json files (String) - -### jju.stringify() function - -```javascript -/* - * Main syntax: - * - * `value` - value to serialize, type: * - * `options` - serializer options, type: Object - */ -jju.stringify(value[, options]) - -// compatibility syntax -jju.stringify(value[, replacer [, indent]) -``` - -Options: - - - ascii - output ascii only (Boolean, default=false) - If this option is enabled, output will not have any characters except of 0x20-0x7f. - - - indent - indentation (String, Number or Boolean, default='\t') - This option follows JSON specification. - - - quote - enquoting char (String, "'" or '"', default="'") - - quote\_keys - whether keys quoting in objects is required or not (String, default=false) - If you want `{"q": 1}` instead of `{q: 1}`, set it to true. - - - sort\_keys - sort all keys while stringifying (Boolean or Function, default=false) - By default sort order will depend on implementation, with v8 it's insertion order. If set to `true`, all keys (but not arrays) will be sorted alphabetically. You can provide your own sorting function as well. - - - replacer - replacer function or array (Function or Array) - This option follows JSON specification. - - - no\_trailing\_comma = don't output trailing comma (Boolean, default=false) - If this option is set, arrays like this `[1,2,3,]` will never be generated. Otherwise they may be generated for pretty printing. - - - mode - operation mode, set it to 'json' if you want correct json in the output (String) - - Currently it's either 'json' or something else. If it is 'json', following options are implied: - - - options.quote = '"' - - options.no\_trailing\_comma = true - - options.quote\_keys = true - - '\x' literals are not used - -### jju.tokenize() function - -```javascript -/* - * Main syntax: - * - * `text` - text to tokenize, type: String - * `options` - parser options, type: Object - */ -jju.tokenize(text[, options]) -``` - -Options are the same as for the `jju.parse` function. - -Return value is an array of tokens, where each token is an object: - - - raw (String) - raw text of this token, if you join all raw's, you will get the original document - - type (String) - type of the token, can be `whitespace`, `comment`, `key`, `literal`, `separator` or `newline` - - stack (Array) - path to the current token in the syntax tree - - value - value of the token if token is a `key` or `literal` - -You can check tokenizer for yourself using [this demo](http://rlidwka.github.io/jju/tokenizer.html). - -### jju.analyze() function - -```javascript -/* - * Main syntax: - * - * `text` - text to analyze, type: String - * `options` - parser options, type: Object - */ -jju.analyze(text[, options]) -``` - -Options are the same as for the `jju.parse` function. - -Return value is an object defining a programming style in which the document was written. - - - indent (String) - preferred indentation - - newline (String) - preferred newline - - quote (String) - `"` or `'` depending on which quote is preferred - - quote\_keys (Boolean) - `true` if unquoted keys were used at least once - - has\_whitespace (Boolean) - `true` if input has a whitespace token - - has\_comments (Boolean) - `true` if input has a comment token - - has\_newlines (Boolean) - `true` if input has a newline token - - has\_trailing\_comma (Boolean) - `true` if input has at least one trailing comma - -### jju.update() function - -```javascript -/* - * Main syntax: - * - * `text` - original text, type: String - * `new_value` - new value you want to set - * `options` - parser or stringifier options, type: Object - */ -jju.update(text, new_value[, options]) -``` - -If you want to update a JSON document, here is the general approach: - -```javascript -// here is your original JSON document: -var input = '{"foo": "bar", "baz": 123}' - -// you need to parse it first: -var json = jju.parse(input, {mode: 'json'}) -// json is { foo: 'bar', baz: 123 } - -// then you can change it as you like: -json.foo = 'quux' -json.hello = 'world' - -// then you run an update function to change the original json: -var output = jju.update(input, json, {mode: 'json'}) -// output is '{"foo": "quux", "baz": 123, "hello": "world"}' -``` - -Look at [this demo](http://rlidwka.github.io/jju/editor.html) to test various types of json. - -## Advantages over existing JSON libraries - -In a few cases it makes sense to use this module instead of built-in JSON methods. - -Parser: - - better error reporting with source code and line numbers - -In case of syntax error, JSON.parse does not return any good information to the user. This module does: - -``` -$ node -e 'require("jju").parse("[1,1,1,1,invalid]")' - -SyntaxError: Unexpected token 'i' at 0:9 -[1,1,1,1,invalid] - ^ -``` - -This module is about 5 times slower, so if user experience matters to you more than performance, use this module. If you're working with a lot of machine-generated data, use JSON.parse instead. - -Stringifier: - - util.inspect-like pretty printing - -This module behaves more smart when dealing with object and arrays, and does not always print newlines in them: - -``` -$ node -e 'console.log(require("./").stringify([[,,,],,,[,,,,]], {mode:"json"}))' -[ - [null, null, null], - null, - null, - [null, null, null, null] -] -``` - -JSON.stringify will split this into 15 lines, and it's hard to read. - -Yet again, this feature comes with a performance hit, so if user experience matters to you more than performance, use this module. If your JSON will be consumed by machines, use JSON.stringify instead. - -As a rule of thumb, if you use "space" argument to indent your JSON, you'd better use this module instead. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/index.js deleted file mode 100644 index 50f16249..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/index.js +++ /dev/null @@ -1,32 +0,0 @@ - -module.exports.__defineGetter__('parse', function() { - return require('./lib/parse').parse -}) - -module.exports.__defineGetter__('stringify', function() { - return require('./lib/stringify').stringify -}) - -module.exports.__defineGetter__('tokenize', function() { - return require('./lib/parse').tokenize -}) - -module.exports.__defineGetter__('update', function() { - return require('./lib/document').update -}) - -module.exports.__defineGetter__('analyze', function() { - return require('./lib/analyze').analyze -}) - -module.exports.__defineGetter__('utils', function() { - return require('./lib/utils') -}) - -/**package -{ "name": "jju", - "version": "0.0.0", - "dependencies": {"js-yaml": "*"}, - "scripts": {"postinstall": "js-yaml package.yaml > package.json ; npm install"} -} -**/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/analyze.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/analyze.js deleted file mode 100644 index 9b0f9af0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/analyze.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Author: Alex Kocharin - * GIT: https://github.com/rlidwka/jju - * License: WTFPL, grab your copy here: http://www.wtfpl.net/txt/copying/ - */ - -var tokenize = require('./parse').tokenize - -module.exports.analyze = function analyzeJSON(input, options) { - if (options == null) options = {} - - if (!Array.isArray(input)) { - input = tokenize(input, options) - } - - var result = { - has_whitespace: false, - has_comments: false, - has_newlines: false, - has_trailing_comma: false, - indent: '', - newline: '\n', - quote: '"', - quote_keys: true, - } - - var stats = { - indent: {}, - newline: {}, - quote: {}, - } - - for (var i=0; i stats[k][b] ? a : b - }) - } - } - - return result -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/document.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/document.js deleted file mode 100644 index cfab8691..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/document.js +++ /dev/null @@ -1,485 +0,0 @@ -/* - * Author: Alex Kocharin - * GIT: https://github.com/rlidwka/jju - * License: WTFPL, grab your copy here: http://www.wtfpl.net/txt/copying/ - */ - -var assert = require('assert') -var tokenize = require('./parse').tokenize -var stringify = require('./stringify').stringify -var analyze = require('./analyze').analyze - -function isObject(x) { - return typeof(x) === 'object' && x !== null -} - -function value_to_tokenlist(value, stack, options, is_key, indent) { - options = Object.create(options) - options._stringify_key = !!is_key - - if (indent) { - options._prefix = indent.prefix.map(function(x) { - return x.raw - }).join('') - } - - if (options._splitMin == null) options._splitMin = 0 - if (options._splitMax == null) options._splitMax = 0 - - var stringified = stringify(value, options) - - if (is_key) { - return [ { raw: stringified, type: 'key', stack: stack, value: value } ] - } - - options._addstack = stack - var result = tokenize(stringified, { - _addstack: stack, - }) - result.data = null - return result -} - -// '1.2.3' -> ['1','2','3'] -function arg_to_path(path) { - // array indexes - if (typeof(path) === 'number') path = String(path) - - if (path === '') path = [] - if (typeof(path) === 'string') path = path.split('.') - - if (!Array.isArray(path)) throw Error('Invalid path type, string or array expected') - return path -} - -// returns new [begin, end] or false if not found -// -// {x:3, xxx: 111, y: [111, {q: 1, e: 2} ,333] } -// f('y',0) returns this B^^^^^^^^^^^^^^^^^^^^^^^^E -// then f('1',1) would reduce it to B^^^^^^^^^^E -function find_element_in_tokenlist(element, lvl, tokens, begin, end) { - while(tokens[begin].stack[lvl] != element) { - if (begin++ >= end) return false - } - while(tokens[end].stack[lvl] != element) { - if (end-- < begin) return false - } - return [begin, end] -} - -function is_whitespace(token_type) { - return token_type === 'whitespace' - || token_type === 'newline' - || token_type === 'comment' -} - -function find_first_non_ws_token(tokens, begin, end) { - while(is_whitespace(tokens[begin].type)) { - if (begin++ >= end) return false - } - return begin -} - -function find_last_non_ws_token(tokens, begin, end) { - while(is_whitespace(tokens[end].type)) { - if (end-- < begin) return false - } - return end -} - -/* - * when appending a new element of an object/array, we are trying to - * figure out the style used on the previous element - * - * return {prefix, sep1, sep2, suffix} - * - * ' "key" : "element" \r\n' - * prefix^^^^ sep1^ ^^sep2 ^^^^^^^^suffix - * - * begin - the beginning of the object/array - * end - last token of the last element (value or comma usually) - */ -function detect_indent_style(tokens, is_array, begin, end, level) { - var result = { - sep1: [], - sep2: [], - suffix: [], - prefix: [], - newline: [], - } - - if (tokens[end].type === 'separator' && tokens[end].stack.length !== level+1 && tokens[end].raw !== ',') { - // either a beginning of the array (no last element) or other weird situation - // - // just return defaults - return result - } - - // ' "key" : "value" ,' - // skipping last separator, we're now here ^^ - if (tokens[end].type === 'separator') - end = find_last_non_ws_token(tokens, begin, end - 1) - if (end === false) return result - - // ' "key" : "value" ,' - // skipping value ^^^^^^^ - while(tokens[end].stack.length > level) end-- - - if (!is_array) { - while(is_whitespace(tokens[end].type)) { - if (end < begin) return result - if (tokens[end].type === 'whitespace') { - result.sep2.unshift(tokens[end]) - } else { - // newline, comment or other unrecognized codestyle - return result - } - end-- - } - - // ' "key" : "value" ,' - // skipping separator ^ - assert.equal(tokens[end].type, 'separator') - assert.equal(tokens[end].raw, ':') - while(is_whitespace(tokens[--end].type)) { - if (end < begin) return result - if (tokens[end].type === 'whitespace') { - result.sep1.unshift(tokens[end]) - } else { - // newline, comment or other unrecognized codestyle - return result - } - } - - assert.equal(tokens[end].type, 'key') - end-- - } - - // ' "key" : "value" ,' - // skipping key ^^^^^ - while(is_whitespace(tokens[end].type)) { - if (end < begin) return result - if (tokens[end].type === 'whitespace') { - result.prefix.unshift(tokens[end]) - } else if (tokens[end].type === 'newline') { - result.newline.unshift(tokens[end]) - return result - } else { - // comment or other unrecognized codestyle - return result - } - end-- - } - - return result -} - -function Document(text, options) { - var self = Object.create(Document.prototype) - - if (options == null) options = {} - //options._structure = true - var tokens = self._tokens = tokenize(text, options) - self._data = tokens.data - tokens.data = null - self._options = options - - var stats = analyze(text, options) - if (options.indent == null) { - options.indent = stats.indent - } - if (options.quote == null) { - options.quote = stats.quote - } - if (options.quote_keys == null) { - options.quote_keys = stats.quote_keys - } - if (options.no_trailing_comma == null) { - options.no_trailing_comma = !stats.has_trailing_comma - } - return self -} - -// return true if it's a proper object -// throw otherwise -function check_if_can_be_placed(key, object, is_unset) { - //if (object == null) return false - function error(add) { - return Error("You can't " + (is_unset ? 'unset' : 'set') + " key '" + key + "'" + add) - } - - if (!isObject(object)) { - throw error(' of an non-object') - } - if (Array.isArray(object)) { - // array, check boundary - if (String(key).match(/^\d+$/)) { - key = Number(String(key)) - if (object.length < key || (is_unset && object.length === key)) { - throw error(', out of bounds') - } else if (is_unset && object.length !== key+1) { - throw error(' in the middle of an array') - } else { - return true - } - } else { - throw error(' of an array') - } - } else { - // object - return true - } -} - -// usage: document.set('path.to.something', 'value') -// or: document.set(['path','to','something'], 'value') -Document.prototype.set = function(path, value) { - path = arg_to_path(path) - - // updating this._data and check for errors - if (path.length === 0) { - if (value === undefined) throw Error("can't remove root document") - this._data = value - var new_key = false - - } else { - var data = this._data - - for (var i=0; i {x:1}` - // removing sep, literal and optional sep - // ':' - var pos2 = find_last_non_ws_token(this._tokens, pos_old[0], position[0] - 1) - assert.equal(this._tokens[pos2].type, 'separator') - assert.equal(this._tokens[pos2].raw, ':') - position[0] = pos2 - - // key - var pos2 = find_last_non_ws_token(this._tokens, pos_old[0], position[0] - 1) - assert.equal(this._tokens[pos2].type, 'key') - assert.equal(this._tokens[pos2].value, path[path.length-1]) - position[0] = pos2 - } - - // removing comma in arrays and objects - var pos2 = find_last_non_ws_token(this._tokens, pos_old[0], position[0] - 1) - assert.equal(this._tokens[pos2].type, 'separator') - if (this._tokens[pos2].raw === ',') { - position[0] = pos2 - } else { - // beginning of the array/object, so we should remove trailing comma instead - pos2 = find_first_non_ws_token(this._tokens, position[1] + 1, pos_old[1]) - assert.equal(this._tokens[pos2].type, 'separator') - if (this._tokens[pos2].raw === ',') { - position[1] = pos2 - } - } - - } else { - var indent = pos2 !== false - ? detect_indent_style(this._tokens, Array.isArray(data), pos_old[0], position[1] - 1, i) - : {} - var newtokens = value_to_tokenlist(value, path, this._options, false, indent) - } - - } else { - // insert new key, that's tricky - var path_1 = path.slice(0, i) - - // find a last separator after which we're inserting it - var pos2 = find_last_non_ws_token(this._tokens, position[0] + 1, position[1] - 1) - assert(pos2 !== false) - - var indent = pos2 !== false - ? detect_indent_style(this._tokens, Array.isArray(data), position[0] + 1, pos2, i) - : {} - - var newtokens = value_to_tokenlist(value, path, this._options, false, indent) - - // adding leading whitespaces according to detected codestyle - var prefix = [] - if (indent.newline && indent.newline.length) - prefix = prefix.concat(indent.newline) - if (indent.prefix && indent.prefix.length) - prefix = prefix.concat(indent.prefix) - - // adding '"key":' (as in "key":"value") to object values - if (!Array.isArray(data)) { - prefix = prefix.concat(value_to_tokenlist(path[path.length-1], path_1, this._options, true)) - if (indent.sep1 && indent.sep1.length) - prefix = prefix.concat(indent.sep1) - prefix.push({raw: ':', type: 'separator', stack: path_1}) - if (indent.sep2 && indent.sep2.length) - prefix = prefix.concat(indent.sep2) - } - - newtokens.unshift.apply(newtokens, prefix) - - // check if prev token is a separator AND they're at the same level - if (this._tokens[pos2].type === 'separator' && this._tokens[pos2].stack.length === path.length-1) { - // previous token is either , or [ or { - if (this._tokens[pos2].raw === ',') { - // restore ending comma - newtokens.push({raw: ',', type: 'separator', stack: path_1}) - } - } else { - // previous token isn't a separator, so need to insert one - newtokens.unshift({raw: ',', type: 'separator', stack: path_1}) - } - - if (indent.suffix && indent.suffix.length) - newtokens.push.apply(newtokens, indent.suffix) - - assert.equal(this._tokens[position[1]].type, 'separator') - position[0] = pos2+1 - position[1] = pos2 - } - - newtokens.unshift(position[1] - position[0] + 1) - newtokens.unshift(position[0]) - this._tokens.splice.apply(this._tokens, newtokens) - - return this -} - -// convenience method -Document.prototype.unset = function(path) { - return this.set(path, undefined) -} - -Document.prototype.get = function(path) { - path = arg_to_path(path) - - var data = this._data - for (var i=0; i old_data.length) { - // adding new elements, so going forward - for (var i=0; i=0; i--) { - path.push(String(i)) - change(path, old_data[i], new_data[i]) - path.pop() - } - } - - } else { - // both values are objects here - for (var i in new_data) { - path.push(String(i)) - change(path, old_data[i], new_data[i]) - path.pop() - } - - for (var i in old_data) { - if (i in new_data) continue - path.push(String(i)) - change(path, old_data[i], new_data[i]) - path.pop() - } - } - } -} - -Document.prototype.toString = function() { - return this._tokens.map(function(x) { - return x.raw - }).join('') -} - -module.exports.Document = Document - -module.exports.update = function updateJSON(source, new_value, options) { - return Document(source, options).update(new_value).toString() -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/parse.js deleted file mode 100644 index 0c9fbe68..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/parse.js +++ /dev/null @@ -1,765 +0,0 @@ -/* - * Author: Alex Kocharin - * GIT: https://github.com/rlidwka/jju - * License: WTFPL, grab your copy here: http://www.wtfpl.net/txt/copying/ - */ - -// RTFM: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - -var Uni = require('./unicode') - -function isHexDigit(x) { - return (x >= '0' && x <= '9') - || (x >= 'A' && x <= 'F') - || (x >= 'a' && x <= 'f') -} - -function isOctDigit(x) { - return x >= '0' && x <= '7' -} - -function isDecDigit(x) { - return x >= '0' && x <= '9' -} - -var unescapeMap = { - '\'': '\'', - '"' : '"', - '\\': '\\', - 'b' : '\b', - 'f' : '\f', - 'n' : '\n', - 'r' : '\r', - 't' : '\t', - 'v' : '\v', - '/' : '/', -} - -function formatError(input, msg, position, lineno, column, json5) { - var result = msg + ' at ' + (lineno + 1) + ':' + (column + 1) - , tmppos = position - column - 1 - , srcline = '' - , underline = '' - - var isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON - - // output no more than 70 characters before the wrong ones - if (tmppos < position - 70) { - tmppos = position - 70 - } - - while (1) { - var chr = input[++tmppos] - - if (isLineTerminator(chr) || tmppos === input.length) { - if (position >= tmppos) { - // ending line error, so show it after the last char - underline += '^' - } - break - } - srcline += chr - - if (position === tmppos) { - underline += '^' - } else if (position > tmppos) { - underline += input[tmppos] === '\t' ? '\t' : ' ' - } - - // output no more than 78 characters on the string - if (srcline.length > 78) break - } - - return result + '\n' + srcline + '\n' + underline -} - -function parse(input, options) { - // parse as a standard JSON mode - var json5 = false; - var cjson = false; - - if (options.legacy || options.mode === 'json') { - // use json - } else if (options.mode === 'cjson') { - cjson = true; - } else if (options.mode === 'json5') { - json5 = true; - } else { - // use it by default - json5 = true; - } - - var isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON - var isWhiteSpace = json5 ? Uni.isWhiteSpace : Uni.isWhiteSpaceJSON - - var length = input.length - , lineno = 0 - , linestart = 0 - , position = 0 - , stack = [] - - var tokenStart = function() {} - var tokenEnd = function(v) {return v} - - /* tokenize({ - raw: '...', - type: 'whitespace'|'comment'|'key'|'literal'|'separator'|'newline', - value: 'number'|'string'|'whatever', - path: [...], - }) - */ - if (options._tokenize) { - ;(function() { - var start = null - tokenStart = function() { - if (start !== null) throw Error('internal error, token overlap') - start = position - } - - tokenEnd = function(v, type) { - if (start != position) { - var hash = { - raw: input.substr(start, position-start), - type: type, - stack: stack.slice(0), - } - if (v !== undefined) hash.value = v - options._tokenize.call(null, hash) - } - start = null - return v - } - })() - } - - function fail(msg) { - var column = position - linestart - - if (!msg) { - if (position < length) { - var token = '\'' + - JSON - .stringify(input[position]) - .replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') - + '\'' - - if (!msg) msg = 'Unexpected token ' + token - } else { - if (!msg) msg = 'Unexpected end of input' - } - } - - var error = SyntaxError(formatError(input, msg, position, lineno, column, json5)) - error.row = lineno + 1 - error.column = column + 1 - throw error - } - - function newline(chr) { - // account for - if (chr === '\r' && input[position] === '\n') position++ - linestart = position - lineno++ - } - - function parseGeneric() { - var result - - while (position < length) { - tokenStart() - var chr = input[position++] - - if (chr === '"' || (chr === '\'' && json5)) { - return tokenEnd(parseString(chr), 'literal') - - } else if (chr === '{') { - tokenEnd(undefined, 'separator') - return parseObject() - - } else if (chr === '[') { - tokenEnd(undefined, 'separator') - return parseArray() - - } else if (chr === '-' - || chr === '.' - || isDecDigit(chr) - // + number Infinity NaN - || (json5 && (chr === '+' || chr === 'I' || chr === 'N')) - ) { - return tokenEnd(parseNumber(), 'literal') - - } else if (chr === 'n') { - parseKeyword('null') - return tokenEnd(null, 'literal') - - } else if (chr === 't') { - parseKeyword('true') - return tokenEnd(true, 'literal') - - } else if (chr === 'f') { - parseKeyword('false') - return tokenEnd(false, 'literal') - - } else { - position-- - return tokenEnd(undefined) - } - } - } - - function parseKey() { - var result - - while (position < length) { - tokenStart() - var chr = input[position++] - - if (chr === '"' || (chr === '\'' && json5)) { - return tokenEnd(parseString(chr), 'key') - - } else if (chr === '{') { - tokenEnd(undefined, 'separator') - return parseObject() - - } else if (chr === '[') { - tokenEnd(undefined, 'separator') - return parseArray() - - } else if (chr === '.' - || isDecDigit(chr) - ) { - return tokenEnd(parseNumber(true), 'key') - - } else if (json5 - && Uni.isIdentifierStart(chr) || (chr === '\\' && input[position] === 'u')) { - // unicode char or a unicode sequence - var rollback = position - 1 - var result = parseIdentifier() - - if (result === undefined) { - position = rollback - return tokenEnd(undefined) - } else { - return tokenEnd(result, 'key') - } - - } else { - position-- - return tokenEnd(undefined) - } - } - } - - function skipWhiteSpace() { - tokenStart() - while (position < length) { - var chr = input[position++] - - if (isLineTerminator(chr)) { - position-- - tokenEnd(undefined, 'whitespace') - tokenStart() - position++ - newline(chr) - tokenEnd(undefined, 'newline') - tokenStart() - - } else if (isWhiteSpace(chr)) { - // nothing - - } else if (chr === '/' - && (json5 || cjson) - && (input[position] === '/' || input[position] === '*') - ) { - position-- - tokenEnd(undefined, 'whitespace') - tokenStart() - position++ - skipComment(input[position++] === '*') - tokenEnd(undefined, 'comment') - tokenStart() - - } else { - position-- - break - } - } - return tokenEnd(undefined, 'whitespace') - } - - function skipComment(multi) { - while (position < length) { - var chr = input[position++] - - if (isLineTerminator(chr)) { - // LineTerminator is an end of singleline comment - if (!multi) { - // let parent function deal with newline - position-- - return - } - - newline(chr) - - } else if (chr === '*' && multi) { - // end of multiline comment - if (input[position] === '/') { - position++ - return - } - - } else { - // nothing - } - } - - if (multi) { - fail('Unclosed multiline comment') - } - } - - function parseKeyword(keyword) { - // keyword[0] is not checked because it should've checked earlier - var _pos = position - var len = keyword.length - for (var i=1; i= length || keyword[i] != input[position]) { - position = _pos-1 - fail() - } - position++ - } - } - - function parseObject() { - var result = options.null_prototype ? Object.create(null) : {} - , empty_object = {} - , is_non_empty = false - - while (position < length) { - skipWhiteSpace() - var item1 = parseKey() - skipWhiteSpace() - tokenStart() - var chr = input[position++] - tokenEnd(undefined, 'separator') - - if (chr === '}' && item1 === undefined) { - if (!json5 && is_non_empty) { - position-- - fail('Trailing comma in object') - } - return result - - } else if (chr === ':' && item1 !== undefined) { - skipWhiteSpace() - stack.push(item1) - var item2 = parseGeneric() - stack.pop() - - if (item2 === undefined) fail('No value found for key ' + item1) - if (typeof(item1) !== 'string') { - if (!json5 || typeof(item1) !== 'number') { - fail('Wrong key type: ' + item1) - } - } - - if ((item1 in empty_object || empty_object[item1] != null) && options.reserved_keys !== 'replace') { - if (options.reserved_keys === 'throw') { - fail('Reserved key: ' + item1) - } else { - // silently ignore it - } - } else { - if (typeof(options.reviver) === 'function') { - item2 = options.reviver.call(null, item1, item2) - } - - if (item2 !== undefined) { - is_non_empty = true - Object.defineProperty(result, item1, { - value: item2, - enumerable: true, - configurable: true, - writable: true, - }) - } - } - - skipWhiteSpace() - - tokenStart() - var chr = input[position++] - tokenEnd(undefined, 'separator') - - if (chr === ',') { - continue - - } else if (chr === '}') { - return result - - } else { - fail() - } - - } else { - position-- - fail() - } - } - - fail() - } - - function parseArray() { - var result = [] - - while (position < length) { - skipWhiteSpace() - stack.push(result.length) - var item = parseGeneric() - stack.pop() - skipWhiteSpace() - tokenStart() - var chr = input[position++] - tokenEnd(undefined, 'separator') - - if (item !== undefined) { - if (typeof(options.reviver) === 'function') { - item = options.reviver.call(null, String(result.length), item) - } - if (item === undefined) { - result.length++ - item = true // hack for check below, not included into result - } else { - result.push(item) - } - } - - if (chr === ',') { - if (item === undefined) { - fail('Elisions are not supported') - } - - } else if (chr === ']') { - if (!json5 && item === undefined && result.length) { - position-- - fail('Trailing comma in array') - } - return result - - } else { - position-- - fail() - } - } - } - - function parseNumber() { - // rewind because we don't know first char - position-- - - var start = position - , chr = input[position++] - , t - - var to_num = function(is_octal) { - var str = input.substr(start, position - start) - - if (is_octal) { - var result = parseInt(str.replace(/^0o?/, ''), 8) - } else { - var result = Number(str) - } - - if (Number.isNaN(result)) { - position-- - fail('Bad numeric literal - "' + input.substr(start, position - start + 1) + '"') - } else if (!json5 && !str.match(/^-?(0|[1-9][0-9]*)(\.[0-9]+)?(e[+-]?[0-9]+)?$/i)) { - // additional restrictions imposed by json - position-- - fail('Non-json numeric literal - "' + input.substr(start, position - start + 1) + '"') - } else { - return result - } - } - - // ex: -5982475.249875e+29384 - // ^ skipping this - if (chr === '-' || (chr === '+' && json5)) chr = input[position++] - - if (chr === 'N' && json5) { - parseKeyword('NaN') - return NaN - } - - if (chr === 'I' && json5) { - parseKeyword('Infinity') - - // returning +inf or -inf - return to_num() - } - - if (chr >= '1' && chr <= '9') { - // ex: -5982475.249875e+29384 - // ^^^ skipping these - while (position < length && isDecDigit(input[position])) position++ - chr = input[position++] - } - - // special case for leading zero: 0.123456 - if (chr === '0') { - chr = input[position++] - - // new syntax, "0o777" old syntax, "0777" - var is_octal = chr === 'o' || chr === 'O' || isOctDigit(chr) - var is_hex = chr === 'x' || chr === 'X' - - if (json5 && (is_octal || is_hex)) { - while (position < length - && (is_hex ? isHexDigit : isOctDigit)( input[position] ) - ) position++ - - var sign = 1 - if (input[start] === '-') { - sign = -1 - start++ - } else if (input[start] === '+') { - start++ - } - - return sign * to_num(is_octal) - } - } - - if (chr === '.') { - // ex: -5982475.249875e+29384 - // ^^^ skipping these - while (position < length && isDecDigit(input[position])) position++ - chr = input[position++] - } - - if (chr === 'e' || chr === 'E') { - chr = input[position++] - if (chr === '-' || chr === '+') position++ - // ex: -5982475.249875e+29384 - // ^^^ skipping these - while (position < length && isDecDigit(input[position])) position++ - chr = input[position++] - } - - // we have char in the buffer, so count for it - position-- - return to_num() - } - - function parseIdentifier() { - // rewind because we don't know first char - position-- - - var result = '' - - while (position < length) { - var chr = input[position++] - - if (chr === '\\' - && input[position] === 'u' - && isHexDigit(input[position+1]) - && isHexDigit(input[position+2]) - && isHexDigit(input[position+3]) - && isHexDigit(input[position+4]) - ) { - // UnicodeEscapeSequence - chr = String.fromCharCode(parseInt(input.substr(position+1, 4), 16)) - position += 5 - } - - if (result.length) { - // identifier started - if (Uni.isIdentifierPart(chr)) { - result += chr - } else { - position-- - return result - } - - } else { - if (Uni.isIdentifierStart(chr)) { - result += chr - } else { - return undefined - } - } - } - - fail() - } - - function parseString(endChar) { - // 7.8.4 of ES262 spec - var result = '' - - while (position < length) { - var chr = input[position++] - - if (chr === endChar) { - return result - - } else if (chr === '\\') { - if (position >= length) fail() - chr = input[position++] - - if (unescapeMap[chr] && (json5 || (chr != 'v' && chr != "'"))) { - result += unescapeMap[chr] - - } else if (json5 && isLineTerminator(chr)) { - // line continuation - newline(chr) - - } else if (chr === 'u' || (chr === 'x' && json5)) { - // unicode/character escape sequence - var off = chr === 'u' ? 4 : 2 - - // validation for \uXXXX - for (var i=0; i= length) fail() - if (!isHexDigit(input[position])) fail('Bad escape sequence') - position++ - } - - result += String.fromCharCode(parseInt(input.substr(position-off, off), 16)) - } else if (json5 && isOctDigit(chr)) { - if (chr < '4' && isOctDigit(input[position]) && isOctDigit(input[position+1])) { - // three-digit octal - var digits = 3 - } else if (isOctDigit(input[position])) { - // two-digit octal - var digits = 2 - } else { - var digits = 1 - } - position += digits - 1 - result += String.fromCharCode(parseInt(input.substr(position-digits, digits), 8)) - /*if (!isOctDigit(input[position])) { - // \0 is allowed still - result += '\0' - } else { - fail('Octal literals are not supported') - }*/ - - } else if (json5) { - // \X -> x - result += chr - - } else { - position-- - fail() - } - - } else if (isLineTerminator(chr)) { - fail() - - } else { - if (!json5 && chr.charCodeAt(0) < 32) { - position-- - fail('Unexpected control character') - } - - // SourceCharacter but not one of " or \ or LineTerminator - result += chr - } - } - - fail() - } - - skipWhiteSpace() - var return_value = parseGeneric() - if (return_value !== undefined || position < length) { - skipWhiteSpace() - - if (position >= length) { - if (typeof(options.reviver) === 'function') { - return_value = options.reviver.call(null, '', return_value) - } - return return_value - } else { - fail() - } - - } else { - if (position) { - fail('No data, only a whitespace') - } else { - fail('No data, empty input') - } - } -} - -/* - * parse(text, options) - * or - * parse(text, reviver) - * - * where: - * text - string - * options - object - * reviver - function - */ -module.exports.parse = function parseJSON(input, options) { - // support legacy functions - if (typeof(options) === 'function') { - options = { - reviver: options - } - } - - if (input === undefined) { - // parse(stringify(x)) should be equal x - // with JSON functions it is not 'cause of undefined - // so we're fixing it - return undefined - } - - // JSON.parse compat - if (typeof(input) !== 'string') input = String(input) - if (options == null) options = {} - if (options.reserved_keys == null) options.reserved_keys = 'ignore' - - if (options.reserved_keys === 'throw' || options.reserved_keys === 'ignore') { - if (options.null_prototype == null) { - options.null_prototype = true - } - } - - try { - return parse(input, options) - } catch(err) { - // jju is a recursive parser, so JSON.parse("{{{{{{{") could blow up the stack - // - // this catch is used to skip all those internal calls - if (err instanceof SyntaxError && err.row != null && err.column != null) { - var old_err = err - err = SyntaxError(old_err.message) - err.column = old_err.column - err.row = old_err.row - } - throw err - } -} - -module.exports.tokenize = function tokenizeJSON(input, options) { - if (options == null) options = {} - - options._tokenize = function(smth) { - if (options._addstack) smth.stack.unshift.apply(smth.stack, options._addstack) - tokens.push(smth) - } - - var tokens = [] - tokens.data = module.exports.parse(input, options) - return tokens -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/stringify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/stringify.js deleted file mode 100644 index 232229ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/stringify.js +++ /dev/null @@ -1,383 +0,0 @@ -/* - * Author: Alex Kocharin - * GIT: https://github.com/rlidwka/jju - * License: WTFPL, grab your copy here: http://www.wtfpl.net/txt/copying/ - */ - -var Uni = require('./unicode') - -// Fix Function#name on browsers that do not support it (IE) -// http://stackoverflow.com/questions/6903762/function-name-not-supported-in-ie -if (!(function f(){}).name) { - Object.defineProperty((function(){}).constructor.prototype, 'name', { - get: function() { - var name = this.toString().match(/^\s*function\s*(\S*)\s*\(/)[1] - // For better performance only parse once, and then cache the - // result through a new accessor for repeated access. - Object.defineProperty(this, 'name', { value: name }) - return name - } - }) -} - -var special_chars = { - 0: '\\0', // this is not an octal literal - 8: '\\b', - 9: '\\t', - 10: '\\n', - 11: '\\v', - 12: '\\f', - 13: '\\r', - 92: '\\\\', -} - -// for oddballs -var hasOwnProperty = Object.prototype.hasOwnProperty - -// some people escape those, so I'd copy this to be safe -var escapable = /[\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/ - -function _stringify(object, options, recursiveLvl, currentKey) { - var json5 = (options.mode === 'json5' || !options.mode) - /* - * Opinionated decision warning: - * - * Objects are serialized in the following form: - * { type: 'Class', data: DATA } - * - * Class is supposed to be a function, and new Class(DATA) is - * supposed to be equivalent to the original value - */ - /*function custom_type() { - return stringify({ - type: object.constructor.name, - data: object.toString() - }) - }*/ - - // if add, it's an internal indentation, so we add 1 level and a eol - // if !add, it's an ending indentation, so we just indent - function indent(str, add) { - var prefix = options._prefix ? options._prefix : '' - if (!options.indent) return prefix + str - var result = '' - var count = recursiveLvl + (add || 0) - for (var i=0; i 0) { - if (!Uni.isIdentifierPart(key[i])) - return _stringify_str(key) - - } else { - if (!Uni.isIdentifierStart(key[i])) - return _stringify_str(key) - } - - var chr = key.charCodeAt(i) - - if (options.ascii) { - if (chr < 0x80) { - result += key[i] - - } else { - result += '\\u' + ('0000' + chr.toString(16)).slice(-4) - } - - } else { - if (escapable.exec(key[i])) { - result += '\\u' + ('0000' + chr.toString(16)).slice(-4) - - } else { - result += key[i] - } - } - } - - return result - } - - function _stringify_str(key) { - var quote = options.quote - var quoteChr = quote.charCodeAt(0) - - var result = '' - for (var i=0; i= 8 && chr <= 13 && (json5 || chr !== 11)) { - result += special_chars[chr] - } else if (json5) { - result += '\\x0' + chr.toString(16) - } else { - result += '\\u000' + chr.toString(16) - } - - } else if (chr < 0x20) { - if (json5) { - result += '\\x' + chr.toString(16) - } else { - result += '\\u00' + chr.toString(16) - } - - } else if (chr >= 0x20 && chr < 0x80) { - // ascii range - if (chr === 47 && i && key[i-1] === '<') { - // escaping slashes in - result += '\\' + key[i] - - } else if (chr === 92) { - result += '\\\\' - - } else if (chr === quoteChr) { - result += '\\' + quote - - } else { - result += key[i] - } - - } else if (options.ascii || Uni.isLineTerminator(key[i]) || escapable.exec(key[i])) { - if (chr < 0x100) { - if (json5) { - result += '\\x' + chr.toString(16) - } else { - result += '\\u00' + chr.toString(16) - } - - } else if (chr < 0x1000) { - result += '\\u0' + chr.toString(16) - - } else if (chr < 0x10000) { - result += '\\u' + chr.toString(16) - - } else { - throw Error('weird codepoint') - } - } else { - result += key[i] - } - } - return quote + result + quote - } - - function _stringify_object() { - if (object === null) return 'null' - var result = [] - , len = 0 - , braces - - if (Array.isArray(object)) { - braces = '[]' - for (var i=0; i options._splitMax - recursiveLvl * options.indent.length || len > options._splitMin) ) { - // remove trailing comma in multiline if asked to - if (options.no_trailing_comma && result.length) { - result[result.length-1] = result[result.length-1].substring(0, result[result.length-1].length-1) - } - - var innerStuff = result.map(function(x) {return indent(x, 1)}).join('') - return braces[0] - + (options.indent ? '\n' : '') - + innerStuff - + indent(braces[1]) - } else { - // always remove trailing comma in one-lined arrays - if (result.length) { - result[result.length-1] = result[result.length-1].substring(0, result[result.length-1].length-1) - } - - var innerStuff = result.join(options.indent ? ' ' : '') - return braces[0] - + innerStuff - + braces[1] - } - } - - function _stringify_nonobject(object) { - if (typeof(options.replacer) === 'function') { - object = options.replacer.call(null, currentKey, object) - } - - switch(typeof(object)) { - case 'string': - return _stringify_str(object) - - case 'number': - if (object === 0 && 1/object < 0) { - // Opinionated decision warning: - // - // I want cross-platform negative zero in all js engines - // I know they're equal, but why lose that tiny bit of - // information needlessly? - return '-0' - } - if (!json5 && !Number.isFinite(object)) { - // json don't support infinity (= sucks) - return 'null' - } - return object.toString() - - case 'boolean': - return object.toString() - - case 'undefined': - return undefined - - case 'function': -// return custom_type() - - default: - // fallback for something weird - return JSON.stringify(object) - } - } - - if (options._stringify_key) { - return _stringify_key(object) - } - - if (typeof(object) === 'object') { - if (object === null) return 'null' - - var str - if (typeof(str = object.toJSON5) === 'function' && options.mode !== 'json') { - object = str.call(object, currentKey) - - } else if (typeof(str = object.toJSON) === 'function') { - object = str.call(object, currentKey) - } - - if (object === null) return 'null' - if (typeof(object) !== 'object') return _stringify_nonobject(object) - - if (object.constructor === Number || object.constructor === Boolean || object.constructor === String) { - object = object.valueOf() - return _stringify_nonobject(object) - - } else if (object.constructor === Date) { - // only until we can't do better - return _stringify_nonobject(object.toISOString()) - - } else { - if (typeof(options.replacer) === 'function') { - object = options.replacer.call(null, currentKey, object) - if (typeof(object) !== 'object') return _stringify_nonobject(object) - } - - return _stringify_object(object) - } - } else { - return _stringify_nonobject(object) - } -} - -/* - * stringify(value, options) - * or - * stringify(value, replacer, space) - * - * where: - * value - anything - * options - object - * replacer - function or array - * space - boolean or number or string - */ -module.exports.stringify = function stringifyJSON(object, options, _space) { - // support legacy syntax - if (typeof(options) === 'function' || Array.isArray(options)) { - options = { - replacer: options - } - } else if (typeof(options) === 'object' && options !== null) { - // nothing to do - } else { - options = {} - } - if (_space != null) options.indent = _space - - if (options.indent == null) options.indent = '\t' - if (options.quote == null) options.quote = "'" - if (options.ascii == null) options.ascii = false - if (options.mode == null) options.mode = 'json5' - - if (options.mode === 'json' || options.mode === 'cjson') { - // json only supports double quotes (= sucks) - options.quote = '"' - - // json don't support trailing commas (= sucks) - options.no_trailing_comma = true - - // json don't support unquoted property names (= sucks) - options.quote_keys = true - } - - // why would anyone use such objects? - if (typeof(options.indent) === 'object') { - if (options.indent.constructor === Number - || options.indent.constructor === Boolean - || options.indent.constructor === String) - options.indent = options.indent.valueOf() - } - - // gap is capped at 10 characters - if (typeof(options.indent) === 'number') { - if (options.indent >= 0) { - options.indent = Array(Math.min(~~options.indent, 10) + 1).join(' ') - } else { - options.indent = false - } - } else if (typeof(options.indent) === 'string') { - options.indent = options.indent.substr(0, 10) - } - - if (options._splitMin == null) options._splitMin = 50 - if (options._splitMax == null) options._splitMax = 70 - - return _stringify(object, options, 0, '') -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/unicode.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/unicode.js deleted file mode 100644 index 1a29143c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/unicode.js +++ /dev/null @@ -1,71 +0,0 @@ - -// This is autogenerated with esprima tools, see: -// https://github.com/ariya/esprima/blob/master/esprima.js -// -// PS: oh God, I hate Unicode - -// ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierStart: - -var Uni = module.exports - -module.exports.isWhiteSpace = function isWhiteSpace(x) { - // section 7.2, table 2 - return x === '\u0020' - || x === '\u00A0' - || x === '\uFEFF' // <-- this is not a Unicode WS, only a JS one - || (x >= '\u0009' && x <= '\u000D') // 9 A B C D - - // + whitespace characters from unicode, category Zs - || x === '\u1680' - || x === '\u180E' - || (x >= '\u2000' && x <= '\u200A') // 0 1 2 3 4 5 6 7 8 9 A - || x === '\u2028' - || x === '\u2029' - || x === '\u202F' - || x === '\u205F' - || x === '\u3000' -} - -module.exports.isWhiteSpaceJSON = function isWhiteSpaceJSON(x) { - return x === '\u0020' - || x === '\u0009' - || x === '\u000A' - || x === '\u000D' -} - -module.exports.isLineTerminator = function isLineTerminator(x) { - // ok, here is the part when JSON is wrong - // section 7.3, table 3 - return x === '\u000A' - || x === '\u000D' - || x === '\u2028' - || x === '\u2029' -} - -module.exports.isLineTerminatorJSON = function isLineTerminatorJSON(x) { - return x === '\u000A' - || x === '\u000D' -} - -module.exports.isIdentifierStart = function isIdentifierStart(x) { - return x === '$' - || x === '_' - || (x >= 'A' && x <= 'Z') - || (x >= 'a' && x <= 'z') - || (x >= '\u0080' && Uni.NonAsciiIdentifierStart.test(x)) -} - -module.exports.isIdentifierPart = function isIdentifierPart(x) { - return x === '$' - || x === '_' - || (x >= 'A' && x <= 'Z') - || (x >= 'a' && x <= 'z') - || (x >= '0' && x <= '9') // <-- addition to Start - || (x >= '\u0080' && Uni.NonAsciiIdentifierPart.test(x)) -} - -module.exports.NonAsciiIdentifierStart = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/ - -// ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierPart: - -module.exports.NonAsciiIdentifierPart = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/utils.js deleted file mode 100644 index a8476b6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/utils.js +++ /dev/null @@ -1,46 +0,0 @@ -var FS = require('fs') -var jju = require('../') - -// this function registers json5 extension, so you -// can do `require("./config.json5")` kind of thing -module.exports.register = function() { - var r = require, e = 'extensions' - r[e]['.json5'] = function(m, f) { - /*eslint no-sync:0*/ - m.exports = jju.parse(FS.readFileSync(f, 'utf8')) - } -} - -// this function monkey-patches JSON.parse, so it -// will return an exact position of error in case -// of parse failure -module.exports.patch_JSON_parse = function() { - var _parse = JSON.parse - JSON.parse = function(text, rev) { - try { - return _parse(text, rev) - } catch(err) { - // this call should always throw - require('jju').parse(text, { - mode: 'json', - legacy: true, - reviver: rev, - reserved_keys: 'replace', - null_prototype: false, - }) - - // if it didn't throw, but original parser did, - // this is an error in this library and should be reported - throw err - } - } -} - -// this function is an express/connect middleware -// that accepts uploads in application/json5 format -module.exports.middleware = function() { - return function(req, res, next) { - throw Error('this function is removed, use express-json5 instead') - } -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.json deleted file mode 100644 index 5d28ae1d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "_args": [ - [ - "jju@^1.1.0", - "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror" - ] - ], - "_from": "jju@>=1.1.0 <2.0.0", - "_id": "jju@1.3.0", - "_inCache": true, - "_installable": true, - "_location": "/read-package-json/json-parse-helpfulerror/jju", - "_nodeVersion": "2.2.1", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/jju-1.3.0.tgz_1455989902144_0.8787874563131481" - }, - "_npmUser": { - "email": "alex@kocharin.ru", - "name": "rlidwka" - }, - "_npmVersion": "2.0.1", - "_phantomChildren": {}, - "_requested": { - "name": "jju", - "raw": "jju@^1.1.0", - "rawSpec": "^1.1.0", - "scope": null, - "spec": ">=1.1.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/read-package-json/json-parse-helpfulerror" - ], - "_resolved": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz", - "_shasum": "dadd9ef01924bc728b03f2f7979bdbd62f7a2aaa", - "_shrinkwrap": null, - "_spec": "jju@^1.1.0", - "_where": "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror", - "author": { - "email": "alex@kocharin.ru", - "name": "Alex Kocharin" - }, - "bugs": { - "url": "https://github.com/rlidwka/jju/issues" - }, - "dependencies": {}, - "description": "a set of utilities to work with JSON / JSON5 documents", - "devDependencies": { - "eslint": "~0.4.2", - "js-yaml": ">=3.1.0", - "mocha": ">=1.21.0" - }, - "directories": {}, - "dist": { - "shasum": "dadd9ef01924bc728b03f2f7979bdbd62f7a2aaa", - "tarball": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz" - }, - "gitHead": "6a1248fc29abb3f418fa143e31ee548cd5a2477c", - "homepage": "http://rlidwka.github.io/jju/", - "keywords": [ - "json", - "json5", - "parser", - "serializer", - "data" - ], - "license": { - "type": "WTFPL", - "url": "http://www.wtfpl.net/txt/copying/" - }, - "maintainers": [ - { - "email": "alex@kocharin.ru", - "name": "rlidwka" - } - ], - "name": "jju", - "optionalDependencies": {}, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/rlidwka/jju.git" - }, - "scripts": { - "lint": "eslint -c ./.eslint.yaml ./lib", - "test": "mocha test/*.js" - }, - "version": "1.3.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.yaml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.yaml deleted file mode 100644 index fdbb5372..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# use "yapm install ." if you're installing this from git repository - -# "jju" stands for "json/json5 utils" -name: jju - -version: 1.3.0 -description: a set of utilities to work with JSON / JSON5 documents - -author: - name: Alex Kocharin - email: alex@kocharin.ru - -repository: - type: git - url: git://github.com/rlidwka/jju - -bugs: - url: https://github.com/rlidwka/jju/issues - -homepage: http://rlidwka.github.io/jju/ - -devDependencies: - mocha: '>=1.21.0' - js-yaml: '>=3.1.0' - - # linting tools - eslint: '~0.4.2' - -scripts: - test: 'mocha test/*.js' - lint: 'eslint -c ./.eslint.yaml ./lib' - -keywords: - - json - - json5 - - parser - - serializer - - data - -publishConfig: - registry: https://registry.npmjs.org/ - -license: - type: WTFPL - url: http://www.wtfpl.net/txt/copying/ - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/package.json deleted file mode 100644 index 2a5a98fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "json-parse-helpfulerror", - "version": "1.0.3", - "description": "A drop-in replacement for JSON.parse that uses `jju` to give helpful errors", - "main": "index.js", - "scripts": { - "test": "lab -c", - "lint": "jslint --edition=latest --terse *.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/smikes/json-parse-helpfulerror.git" - }, - "keywords": [ - "json", - "parse", - "line", - "doublequote", - "error" - ], - "author": { - "name": "Sam Mikes", - "email": "smikes@cubane.com" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/smikes/json-parse-helpfulerror/issues" - }, - "homepage": "https://github.com/smikes/json-parse-helpfulerror", - "devDependencies": { - "code": "^1.2.1", - "jslint": "^0.7.1", - "lab": "^5.1.1" - }, - "dependencies": { - "jju": "^1.1.0" - }, - "gitHead": "eedb116ec96b5c479be3919b526d6de0a521be5e", - "_id": "json-parse-helpfulerror@1.0.3", - "_shasum": "13f14ce02eed4e981297b64eb9e3b932e2dd13dc", - "_from": "json-parse-helpfulerror@>=1.0.2 <2.0.0", - "_npmVersion": "2.1.16", - "_nodeVersion": "0.10.35", - "_npmUser": { - "name": "smikes", - "email": "smikes@cubane.com" - }, - "maintainers": [ - { - "name": "smikes", - "email": "smikes@cubane.com" - } - ], - "dist": { - "shasum": "13f14ce02eed4e981297b64eb9e3b932e2dd13dc", - "tarball": "http://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/test/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/test/test.js deleted file mode 100644 index fca458ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/test/test.js +++ /dev/null @@ -1,32 +0,0 @@ -var Code = require('code'), - Lab = require('lab'), - lab = Lab.script(), - jph = require('..'); // 'json-parse-helpfulerror' - -exports.lab = lab; - -lab.test('can parse', function (done) { - var o = jph.parse('{"foo": "bar"}'); - - Code.expect(o.foo).to.equal('bar'); - done(); -}); - -lab.test('helpful error for bad JSON', function (done) { - - var bad = "{'foo': 'bar'}"; - - Code.expect(function () { JSON.parse(bad) }).to.throw(); - - Code.expect(function () { jph.parse(bad) }).to.throw(SyntaxError, "Unexpected token '\\'' at 1:2\n" + bad + '\n ^'); - - done(); -}); - -lab.test('fails if reviver throws', function (done) { - function badReviver() { throw new ReferenceError('silly'); } - - Code.expect(function () { jph.parse('3', badReviver) }).to.throw(ReferenceError, 'silly'); - - done(); -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/package.json deleted file mode 100644 index 28ee2746..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/package.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "_args": [ - [ - "read-package-json@~2.0.3", - "/Users/rebecca/code/npm" - ] - ], - "_from": "read-package-json@>=2.0.3 <2.1.0", - "_id": "read-package-json@2.0.4", - "_inCache": true, - "_installable": true, - "_location": "/read-package-json", - "_nodeVersion": "5.6.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/read-package-json-2.0.4.tgz_1461711438155_0.03128739935345948" - }, - "_npmUser": { - "email": "kat@sykosomatic.org", - "name": "zkat" - }, - "_npmVersion": "3.8.7", - "_phantomChildren": { - "inflight": "1.0.4", - "inherits": "2.0.1", - "once": "1.3.3" - }, - "_requested": { - "name": "read-package-json", - "raw": "read-package-json@~2.0.3", - "rawSpec": "~2.0.3", - "scope": null, - "spec": ">=2.0.3 <2.1.0", - "type": "range" - }, - "_requiredBy": [ - "/", - "/init-package-json", - "/read-installed", - "/read-package-tree" - ], - "_resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz", - "_shasum": "61ed1b2256ea438d8008895090be84b8e799c853", - "_shrinkwrap": null, - "_spec": "read-package-json@~2.0.3", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/npm/read-package-json/issues" - }, - "dependencies": { - "glob": "^6.0.0", - "graceful-fs": "^4.1.2", - "json-parse-helpfulerror": "^1.0.2", - "normalize-package-data": "^2.0.0" - }, - "description": "The thing npm uses to read package.json files with semantics and defaults and validation", - "devDependencies": { - "standard": "^5.3.1", - "tap": "^1.2.0" - }, - "directories": {}, - "dist": { - "shasum": "61ed1b2256ea438d8008895090be84b8e799c853", - "tarball": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz" - }, - "gitHead": "de5172a8ada18a2a906294216e22206bfa13321d", - "homepage": "https://github.com/npm/read-package-json#readme", - "license": "ISC", - "main": "read-json.js", - "maintainers": [ - { - "email": "me@re-becca.org", - "name": "iarna" - }, - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "read-package-json", - "optionalDependencies": { - "graceful-fs": "^4.1.2" - }, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/read-package-json.git" - }, - "scripts": { - "test": "standard && tap test/*.js" - }, - "version": "2.0.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/read-json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/read-json.js deleted file mode 100644 index b1888956..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/read-json.js +++ /dev/null @@ -1,394 +0,0 @@ -var fs -try { - fs = require('graceful-fs') -} catch (er) { - fs = require('fs') -} - -var path = require('path') - -var glob = require('glob') -var normalizeData = require('normalize-package-data') -var safeJSON = require('json-parse-helpfulerror') - -module.exports = readJson - -// put more stuff on here to customize. -readJson.extraSet = [ - gypfile, - serverjs, - scriptpath, - authors, - readme, - mans, - bins, - githead -] - -var typoWarned = {} - -function readJson (file, log_, strict_, cb_) { - var log, strict, cb - for (var i = 1; i < arguments.length - 1; i++) { - if (typeof arguments[i] === 'boolean') { - strict = arguments[i] - } else if (typeof arguments[i] === 'function') { - log = arguments[i] - } - } - - if (!log) log = function () {} - cb = arguments[ arguments.length - 1 ] - - readJson_(file, log, strict, cb) -} - -function readJson_ (file, log, strict, cb) { - fs.readFile(file, 'utf8', function (er, d) { - parseJson(file, er, d, log, strict, cb) - }) -} - -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 -} - -function parseJson (file, er, d, log, strict, cb) { - if (er && er.code === 'ENOENT') { - return fs.stat(path.dirname(file), function (err, stat) { - if (!err && stat && !stat.isDirectory()) { - // ENOTDIR isn't used on Windows, but npm expects it. - er = Object.create(er) - er.code = 'ENOTDIR' - return cb(er) - } else { - return indexjs(file, er, log, strict, cb) - } - }) - } - if (er) return cb(er) - - try { - d = safeJSON.parse(stripBOM(d)) - } catch (er) { - d = parseIndex(d) - if (!d) return cb(parseError(er, file)) - } - - extras(file, d, log, strict, cb) -} - -function indexjs (file, er, log, strict, cb) { - if (path.basename(file) === 'index.js') return cb(er) - - var index = path.resolve(path.dirname(file), 'index.js') - fs.readFile(index, 'utf8', function (er2, d) { - if (er2) return cb(er) - - d = parseIndex(d) - if (!d) return cb(er) - - extras(file, d, log, strict, cb) - }) -} - -readJson.extras = extras -function extras (file, data, log_, strict_, cb_) { - var log, strict, cb - for (var i = 2; i < arguments.length - 1; i++) { - if (typeof arguments[i] === 'boolean') { - strict = arguments[i] - } else if (typeof arguments[i] === 'function') { - log = arguments[i] - } - } - - if (!log) log = function () {} - cb = arguments[i] - - var set = readJson.extraSet - var n = set.length - var errState = null - set.forEach(function (fn) { - fn(file, data, then) - }) - - function then (er) { - if (errState) return - if (er) return cb(errState = er) - if (--n > 0) return - final(file, data, log, strict, cb) - } -} - -function scriptpath (file, data, cb) { - if (!data.scripts) return cb(null, data) - var k = Object.keys(data.scripts) - k.forEach(scriptpath_, data.scripts) - cb(null, data) -} - -function scriptpath_ (key) { - var s = this[key] - // This is never allowed, and only causes problems - if (typeof s !== 'string') return delete this[key] - - var spre = /^(\.[\/\\])?node_modules[\/\\].bin[\\\/]/ - if (s.match(spre)) { - this[key] = this[key].replace(spre, '') - } -} - -function gypfile (file, data, cb) { - var dir = path.dirname(file) - var s = data.scripts || {} - if (s.install || s.preinstall) return cb(null, data) - - glob('*.gyp', { cwd: dir }, function (er, files) { - if (er) return cb(er) - gypfile_(file, data, files, cb) - }) -} - -function gypfile_ (file, data, files, cb) { - if (!files.length) return cb(null, data) - var s = data.scripts || {} - s.install = 'node-gyp rebuild' - data.scripts = s - data.gypfile = true - return cb(null, data) -} - -function serverjs (file, data, cb) { - var dir = path.dirname(file) - var s = data.scripts || {} - if (s.start) return cb(null, data) - glob('server.js', { cwd: dir }, function (er, files) { - if (er) return cb(er) - serverjs_(file, data, files, cb) - }) -} - -function serverjs_ (file, data, files, cb) { - if (!files.length) return cb(null, data) - var s = data.scripts || {} - s.start = 'node server.js' - data.scripts = s - return cb(null, data) -} - -function authors (file, data, cb) { - if (data.contributors) return cb(null, data) - var af = path.resolve(path.dirname(file), 'AUTHORS') - fs.readFile(af, 'utf8', function (er, ad) { - // ignore error. just checking it. - if (er) return cb(null, data) - authors_(file, data, ad, cb) - }) -} - -function authors_ (file, data, ad, cb) { - ad = ad.split(/\r?\n/g).map(function (line) { - return line.replace(/^\s*#.*$/, '').trim() - }).filter(function (line) { - return line - }) - data.contributors = ad - return cb(null, data) -} - -function readme (file, data, cb) { - if (data.readme) return cb(null, data) - var dir = path.dirname(file) - var globOpts = { cwd: dir, nocase: true, mark: true } - glob('{README,README.*}', globOpts, function (er, files) { - if (er) return cb(er) - // don't accept directories. - files = files.filter(function (file) { - return !file.match(/\/$/) - }) - if (!files.length) return cb() - var fn = preferMarkdownReadme(files) - var rm = path.resolve(dir, fn) - readme_(file, data, rm, cb) - }) -} - -function preferMarkdownReadme (files) { - var fallback = 0 - var re = /\.m?a?r?k?d?o?w?n?$/i - for (var i = 0; i < files.length; i++) { - if (files[i].match(re)) { - return files[i] - } else if (files[i].match(/README$/)) { - fallback = i - } - } - // prefer README.md, followed by README; otherwise, return - // the first filename (which could be README) - return files[fallback] -} - -function readme_ (file, data, rm, cb) { - var rmfn = path.basename(rm) - fs.readFile(rm, 'utf8', function (er, rm) { - // maybe not readable, or something. - if (er) return cb() - data.readme = rm - data.readmeFilename = rmfn - return cb(er, data) - }) -} - -function mans (file, data, cb) { - var m = data.directories && data.directories.man - if (data.man || !m) return cb(null, data) - m = path.resolve(path.dirname(file), m) - glob('**/*.[0-9]', { cwd: m }, function (er, mans) { - if (er) return cb(er) - mans_(file, data, mans, cb) - }) -} - -function mans_ (file, data, mans, cb) { - var m = data.directories && data.directories.man - data.man = mans.map(function (mf) { - return path.resolve(path.dirname(file), m, mf) - }) - return cb(null, data) -} - -function bins (file, data, cb) { - if (Array.isArray(data.bin)) return bins_(file, data, data.bin, cb) - - var m = data.directories && data.directories.bin - if (data.bin || !m) return cb(null, data) - - m = path.resolve(path.dirname(file), m) - glob('**', { cwd: m }, function (er, bins) { - if (er) return cb(er) - bins_(file, data, bins, cb) - }) -} - -function bins_ (file, data, bins, cb) { - var m = data.directories && data.directories.bin || '.' - data.bin = bins.reduce(function (acc, mf) { - if (mf && mf.charAt(0) !== '.') { - var f = path.basename(mf) - acc[f] = path.join(m, mf) - } - return acc - }, {}) - return cb(null, data) -} - -function githead (file, data, cb) { - if (data.gitHead) return cb(null, data) - var dir = path.dirname(file) - var head = path.resolve(dir, '.git/HEAD') - fs.readFile(head, 'utf8', function (er, head) { - if (er) return cb(null, data) - githead_(file, data, dir, head, cb) - }) -} - -function githead_ (file, data, dir, head, cb) { - if (!head.match(/^ref: /)) { - data.gitHead = head.trim() - return cb(null, data) - } - var headFile = head.replace(/^ref: /, '').trim() - headFile = path.resolve(dir, '.git', headFile) - fs.readFile(headFile, 'utf8', function (er, head) { - if (er || !head) return cb(null, data) - head = head.replace(/^ref: /, '').trim() - data.gitHead = head - return cb(null, data) - }) -} - -/** - * Warn if the bin references don't point to anything. This might be better in - * normalize-package-data if it had access to the file path. - */ -function checkBinReferences_ (file, data, warn, cb) { - if (!(data.bin instanceof Object)) return cb() - - var keys = Object.keys(data.bin) - var keysLeft = keys.length - if (!keysLeft) return cb() - - function handleExists (relName, result) { - keysLeft-- - if (!result) warn('No bin file found at ' + relName) - if (!keysLeft) cb() - } - - keys.forEach(function (key) { - var dirName = path.dirname(file) - var relName = data.bin[key] - var binPath = path.resolve(dirName, relName) - fs.exists(binPath, handleExists.bind(null, relName)) - }) -} - -function final (file, data, log, strict, cb) { - var pId = makePackageId(data) - - function warn (msg) { - if (typoWarned[pId]) return - if (log) log('package.json', pId, msg) - } - - try { - normalizeData(data, warn, strict) - } catch (error) { - return cb(error) - } - - checkBinReferences_(file, data, warn, function () { - typoWarned[pId] = true - cb(null, data) - }) -} - -function makePackageId (data) { - var name = cleanString(data.name) - var ver = cleanString(data.version) - return name + '@' + ver -} - -function cleanString (str) { - return (!str || typeof (str) !== 'string') ? '' : str.trim() -} - -// /**package { "name": "foo", "version": "1.2.3", ... } **/ -function parseIndex (data) { - data = data.split(/^\/\*\*package(?:\s|$)/m) - - if (data.length < 2) return null - data = data[1] - data = data.split(/\*\*\/$/m) - - if (data.length < 2) return null - data = data[0] - data = data.replace(/^\s*\*/mg, '') - - try { - return safeJSON.parse(data) - } catch (er) { - return null - } -} - -function parseError (ex, file) { - var e = new Error('Failed to parse json\n' + ex.message) - e.code = 'EJSONPARSE' - e.file = file - return e -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/basic.js deleted file mode 100644 index 5996c8e4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/basic.js +++ /dev/null @@ -1,46 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var tap = require('tap') - -var readJson = require('../') - -var readme = fs.readFileSync(path.resolve(__dirname, '../README.md'), 'utf8') -var pkg = require('../package.json') -var isGit -try { - fs.readFileSync(path.resolve(__dirname, '../.git/HEAD')) - isGit = true -} catch (e) { - isGit = false -} - -tap.test('basic test', function (t) { - var p = path.resolve(__dirname, '../package.json') - readJson(p, function (er, data) { - if (er) throw er - basic_(t, data) - }) -}) - -function basic_ (t, data) { - t.ok(data) - t.equal(data.version, pkg.version) - t.equal(data._id, data.name + '@' + data.version) - t.equal(data.name, pkg.name) - t.type(data.author, 'object') - t.equal(data.readme, readme) - t.deepEqual(data.scripts, pkg.scripts) - t.equal(data.main, pkg.main) - t.equal(data.readmeFilename, 'README.md') - - if (isGit) t.similar(data.gitHead, /^[a-f0-9]{40}$/) - - // optional deps are folded in. - t.deepEqual(data.optionalDependencies, pkg.optionalDependencies) - t.has(data.dependencies, pkg.optionalDependencies) - t.has(data.dependencies, pkg.dependencies) - - t.deepEqual(data.devDependencies, pkg.devDependencies) - t.end() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/bin.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/bin.js deleted file mode 100644 index 3e0e0e9b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/bin.js +++ /dev/null @@ -1,43 +0,0 @@ -var path = require('path') - -var tap = require('tap') - -var readJson = require('../') - -var createWarningCollector = function () { - var warn = function (msg) { - warn.warnings.push(arguments) - } - warn.warnings = [] - return warn -} - -tap.test('Bin test', function (t) { - var p = path.resolve(__dirname, 'fixtures/bin.json') - var warn = createWarningCollector() - readJson(p, warn, function (er, data) { - t.equals(warn.warnings.length, 0) - t.deepEqual(data.bin, {'bin-test': './bin/echo'}) - t.end() - }) -}) - -tap.test('Bad bin test', function (t) { - var p = path.resolve(__dirname, 'fixtures/badbin.json') - var warn = createWarningCollector() - readJson(p, warn, function (er, data) { - t.equals(warn.warnings.length, 1) - t.equals(warn.warnings[0][2], 'No bin file found at ./bin/typo') - t.end() - }) -}) - -tap.test('Empty bin test', function (t) { - var p = path.resolve(__dirname, 'fixtures/emptybin.json') - var warn = createWarningCollector() - readJson(p, warn, function (er, data) { - t.equals(warn.warnings.length, 0) - t.same(data.bin, {}, 'no mapping to bin because object was empty') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/bom.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/bom.js deleted file mode 100644 index 372a4f4a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/bom.js +++ /dev/null @@ -1,16 +0,0 @@ -var tap = require('tap') -var readJson = require('../') -var path = require('path') - -tap.test('BOM test', function (t) { - var p = path.resolve(__dirname, 'fixtures/bom.json') - readJson(p, function (er, data) { - if (er) throw er - p = path.resolve(__dirname, 'fixtures/nobom.json') - readJson(p, function (er, data2) { - if (er) throw er - t.deepEqual(data, data2) - t.end() - }) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/badbin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/badbin.json deleted file mode 100644 index 3eb58d9c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/badbin.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "badbin-test", - "description": "my desc", - "repository": { - "type": "git", - "url": "git://github.com/npm/read-package-json.git" - }, - "version": "0.0.1", - "readme": "hello world", - "bin": "./bin/typo", - "license": "ISC" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/bin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/bin.json deleted file mode 100644 index 70a26eec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/bin.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "bin-test", - "description": "my desc", - "repository": { - "type": "git", - "url": "git://github.com/npm/read-package-json.git" - }, - "version": "0.0.1", - "readme": "hello world", - "bin": "./bin/echo", - "license": "ISC" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/bin/echo b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/bin/echo deleted file mode 100644 index aaed8785..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/bin/echo +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -echo "Hello world" \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/bom.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/bom.json deleted file mode 100644 index 1beddca2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/bom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "this", - "description": "file", - "author": "has ", - "version" : "0.0.1" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/emptybin.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/emptybin.json deleted file mode 100644 index 4fbf4007..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/emptybin.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "emptybin-test", - "description": "my desc", - "repository": { - "type": "git", - "url": "git://github.com/npm/read-package-json.git" - }, - "version": "0.0.1", - "readme": "hello world", - "bin": {}, - "license": "ISC" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/erroneous.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/erroneous.json deleted file mode 100644 index 212e37ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/erroneous.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - 'wrong': 'kind', - 'of': 'quotes' -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/nobom.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/nobom.json deleted file mode 100644 index f0ea8978..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/nobom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "this", - "description": "file", - "author": "has ", - "version" : "0.0.1" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/not-json.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/not-json.css deleted file mode 100644 index 41c91e96..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/not-json.css +++ /dev/null @@ -1,37 +0,0 @@ -body { - height: yo mama -} - -/**package -{ - "name": "read-package-json", - "version": "0.1.1", - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "description": "The thing npm uses to read package.json files with semantics and defaults and validation", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/read-package-json.git" - }, - "main": "read-json.js", - "scripts": { - "test": "./node_modules/.bin/tap test/*.js" - }, - "dependencies": { - "glob": "~3.1.9", - "lru-cache": "~1.1.0", - "semver": "~1.0.14", - "slide": "~1.1.3" - }, - "devDependencies": { - "tap": "~0.2.5" - }, - "optionalDependencies": { - "npmlog": "0", - "graceful-fs": "~1.1.8" - } -} -**/ - -html { - width: so fat -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/README b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/README deleted file mode 100644 index 257cc564..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/README +++ /dev/null @@ -1 +0,0 @@ -foo diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/README.md deleted file mode 100644 index e444c2f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/README.md +++ /dev/null @@ -1 +0,0 @@ -*markdown* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/package.json deleted file mode 100644 index b0c1a318..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/package.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"readmes", "version":"99.999.999999999"} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/readmexxx.yz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/readmexxx.yz deleted file mode 100644 index 662da912..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/fixtures/readmes/readmexxx.yz +++ /dev/null @@ -1 +0,0 @@ -extra noise diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/helpful.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/helpful.js deleted file mode 100644 index 84f53136..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/helpful.js +++ /dev/null @@ -1,20 +0,0 @@ -var tap = require('tap') -var readJson = require('../') -var path = require('path') -var p = path.resolve(__dirname, 'fixtures/erroneous.json') - -tap.test('erroneous package data', function (t) { - readJson(p, function (er, data) { - t.ok(er instanceof Error) - t.ok(er.message.match(/Unexpected token '\\''/)) - t.end() - }) -}) - -tap.test('ENOTDIR for non-directory packages', function (t) { - readJson(path.resolve(__filename, 'package.json'), function (er, data) { - t.ok(er) - t.equal(er.code, 'ENOTDIR') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/non-json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/non-json.js deleted file mode 100644 index 85186320..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/non-json.js +++ /dev/null @@ -1,83 +0,0 @@ -var path = require('path') - -var tap = require('tap') - -var readJson = require('../') - -var expect = { - name: 'read-package-json', - version: '0.1.1', - author: { - name: 'Isaac Z. Schlueter', - email: 'i@izs.me', - url: 'http://blog.izs.me/' - }, - description: 'The thing npm uses to read package.json files with semantics and defaults and validation', - repository: { - type: 'git', - url: 'git://github.com/isaacs/read-package-json.git' - }, - bugs: { - url: 'https://github.com/isaacs/read-package-json/issues' - }, - main: 'read-json.js', - scripts: { test: 'tap test/*.js' }, - dependencies: { - glob: '~3.1.9', - 'lru-cache': '~1.1.0', - semver: '~1.0.14', - slide: '~1.1.3', - npmlog: '0', - 'graceful-fs': '~1.1.8' - }, - devDependencies: { tap: '~0.2.5' }, - homepage: 'https://github.com/isaacs/read-package-json#readme', - optionalDependencies: { npmlog: '0', 'graceful-fs': '~1.1.8' }, - _id: 'read-package-json@0.1.1', - readme: 'ERROR: No README data found!' -} - -tap.test('from css', function (t) { - var c = path.join(__dirname, 'fixtures', 'not-json.css') - readJson(c, function (er, d) { - t.same(d, expect) - t.end() - }) -}) - -tap.test('from js', function (t) { - readJson(__filename, function (er, d) { - t.same(d, expect) - t.end() - }) -}) - -/**package -{ - "name": "read-package-json", - "version": "0.1.1", - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "description": "The thing npm uses to read package.json files with semantics and defaults and validation", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/read-package-json.git" - }, - "main": "read-json.js", - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": { - "glob": "~3.1.9", - "lru-cache": "~1.1.0", - "semver": "~1.0.14", - "slide": "~1.1.3" - }, - "devDependencies": { - "tap": "~0.2.5" - }, - "optionalDependencies": { - "npmlog": "0", - "graceful-fs": "~1.1.8" - } -} -**/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/readmes.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/readmes.js deleted file mode 100644 index bd891772..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-json/test/readmes.js +++ /dev/null @@ -1,27 +0,0 @@ -var path = require('path') - -var tap = require('tap') -var p = path.resolve(__dirname, 'fixtures/readmes/package.json') - -var readJson = require('../') - -var expect = { - 'name': 'readmes', - 'version': '99.999.999999999', - 'readme': '*markdown*\n', - 'readmeFilename': 'README.md', - 'description': '*markdown*', - '_id': 'readmes@99.999.999999999' -} - -tap.test('readme test', function (t) { - readJson(p, function (er, data) { - t.ifError(er, 'read README without error') - test(t, data) - }) -}) - -function test (t, data) { - t.deepEqual(data, expect) - t.end() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/.travis.yml deleted file mode 100644 index e1bcee1a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: node_js -before_script: npm install -g npm@latest -node_js: - - '0.8' - - '0.10' - - '0.12' - - 'iojs' diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/README.md deleted file mode 100644 index b3cda81f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# read-package-tree - -Read the contents of node_modules. - -## USAGE - -```javascript -var rpt = require ('read-package-tree') -rpt('/path/to/pkg/root', function (node, kidName) { - // optional filter function– if included, each package folder found is passed to - // it to see if it should be included in the final tree - // node is what we're adding children to - // kidName is the directory name of the module we're considering adding - // return true -> include, false -> skip -}, function (er, data) { - // er means that something didn't work. - // data is a structure like: - // { - // package: - // package.name: defaults to `basename(path)` - // children: [ ] - // parent: - // path: - // realpath: - // isLink: - // target: - // error: - // } -}) -``` - -That's it. It doesn't figure out if dependencies are met, it doesn't -mutate package.json data objects (beyond what -[read-package-json](http://npm.im/read-package-json) already does), it -doesn't limit its search to include/exclude `devDependencies`, or -anything else. - -Just follows the links in the `node_modules` heirarchy and reads the -package.json files it finds therein. - -## Symbolic Links - -When there are symlinks to packages in the `node_modules` hierarchy, a -`Link` object will be created, with a `target` that is a `Node` -object. - -For the most part, you can treat `Link` objects just the same as -`Node` objects. But if your tree-walking program needs to treat -symlinks differently from normal folders, then make sure to check the -object. - -In a given `read-package-tree` run, a specific `path` will always -correspond to a single object, and a specific `realpath` will always -correspond to a single `Node` object. This means that you may not be -able to pass the resulting data object to `JSON.stringify`, because it -may contain cycles. - -## Errors - -Errors parsing or finding a package.json in node_modules will result in a -node with the error property set. We will still find deeper node_modules -if any exist. *Prior to `5.0.0` these aborted tree reading with an error -callback.* - -Only a few classes of errors are fatal (result in an error callback): - -* If the top level location is entirely missing, that will error. -* if `fs.realpath` returns an error for any path its trying to resolve. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/package.json deleted file mode 100644 index d1acb0ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/package.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "_args": [ - [ - { - "name": "read-package-tree", - "raw": "read-package-tree@~5.1.3", - "rawSpec": "~5.1.3", - "scope": null, - "spec": ">=5.1.3 <5.2.0", - "type": "range" - }, - "/Users/rebecca/code/npm" - ] - ], - "_from": "read-package-tree@>=5.1.3 <5.2.0", - "_id": "read-package-tree@5.1.4", - "_inCache": true, - "_installable": true, - "_location": "/read-package-tree", - "_nodeVersion": "4.4.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/read-package-tree-5.1.4.tgz_1463682709793_0.6651253618765622" - }, - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "3.9.2", - "_phantomChildren": {}, - "_requested": { - "name": "read-package-tree", - "raw": "read-package-tree@~5.1.3", - "rawSpec": "~5.1.3", - "scope": null, - "spec": ">=5.1.3 <5.2.0", - "type": "range" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.1.4.tgz", - "_shasum": "bb6e465f913d4259a9534c87b1d5c508fe8eb078", - "_shrinkwrap": null, - "_spec": "read-package-tree@~5.1.3", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/npm/read-package-tree/issues" - }, - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "once": "^1.3.0", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0" - }, - "description": "Read the contents of node_modules.", - "devDependencies": { - "archy": "0", - "tacks": "^1.2.1", - "tap": "^1.2.0" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "bb6e465f913d4259a9534c87b1d5c508fe8eb078", - "tarball": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.1.4.tgz" - }, - "gitHead": "eb24d2508da745233af93769596ff1d963f801be", - "homepage": "https://github.com/npm/read-package-tree", - "license": "ISC", - "main": "rpt.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - }, - { - "email": "me@re-becca.org", - "name": "iarna" - } - ], - "name": "read-package-tree", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/read-package-tree.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "5.1.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/rpt.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/rpt.js deleted file mode 100644 index 52298976..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/rpt.js +++ /dev/null @@ -1,232 +0,0 @@ -var fs = require('fs') -var rpj = require('read-package-json') -var path = require('path') -var dz = require('dezalgo') -var once = require('once') -var readdir = require('readdir-scoped-modules') -var debug = require('debuglog')('rpt') - -function asyncForEach (items, todo, done) { - var remaining = items.length - if (remaining === 0) return done() - var seenErr - items.forEach(function (item) { - todo(item, handleComplete) - }) - function handleComplete (err) { - if (seenErr) return - if (err) { - seenErr = true - return done(err) - } - if (--remaining === 0) done() - } -} - -function dpath (p) { - if (!p) return '' - if (p.indexOf(process.cwd()) === 0) { - p = p.substr(process.cwd().length + 1) - } - return p -} - -module.exports = rpt - -rpt.Node = Node -rpt.Link = Link - -var ID = 0 -function Node (pkg, logical, physical, er, cache) { - if (cache[physical]) return cache[physical] - - if (!(this instanceof Node)) { - return new Node(pkg, logical, physical, er, cache) - } - - cache[physical] = this - - debug(this.constructor.name, dpath(physical), pkg && pkg._id) - - this.id = ID++ - this.package = pkg || {} - this.path = logical - this.realpath = physical - this.parent = null - this.isLink = false - this.children = [] - this.error = er -} - -Node.prototype.package = null -Node.prototype.path = '' -Node.prototype.realpath = '' -Node.prototype.children = null -Node.prototype.error = null - -function Link (pkg, logical, physical, realpath, er, cache) { - if (cache[physical]) return cache[physical] - - if (!(this instanceof Link)) { - return new Link(pkg, logical, physical, realpath, er, cache) - } - - cache[physical] = this - - debug(this.constructor.name, dpath(physical), pkg && pkg._id) - - this.id = ID++ - this.path = logical - this.realpath = realpath - this.package = pkg || {} - this.parent = null - this.target = new Node(this.package, logical, realpath, er, cache) - this.isLink = true - this.children = this.target.children - this.error = er -} - -Link.prototype = Object.create(Node.prototype, { - constructor: { value: Link } -}) -Link.prototype.target = null -Link.prototype.realpath = '' - -function loadNode (logical, physical, cache, cb) { - debug('loadNode', dpath(logical)) - return fs.realpath(physical, thenReadPackageJson) - - var realpath - function thenReadPackageJson (er, real) { - if (er) return cb(er) - debug('realpath l=%j p=%j real=%j', dpath(logical), dpath(physical), dpath(real)) - var pj = path.join(real, 'package.json') - realpath = real - return rpj(pj, thenCreateNode) - } - function thenCreateNode (er, pkg) { - pkg = pkg || null - var node - if (physical === realpath) { - node = new Node(pkg, logical, physical, er, cache) - } else { - node = new Link(pkg, logical, physical, realpath, er, cache) - } - - cb(null, node) - } -} - -function loadChildren (node, cache, filterWith, cb) { - debug('loadChildren', dpath(node.path)) - // needed 'cause we process all kids async-like and errors - // short circuit, so we have to be sure that after an error - // the cbs from other kids don't result in calling cb a second - // (or more) time. - cb = once(cb) - var nm = path.join(node.path, 'node_modules') - var rm - return fs.realpath(path.join(node.path, 'node_modules'), thenReaddir) - - function thenReaddir (er, real_nm) { - if (er) return cb(null, node) - rm = real_nm - readdir(nm, thenLoadKids) - } - - function thenLoadKids (er, kids) { - // If there are no children, that's fine, just return - if (er) return cb(null, node) - - kids = kids.filter(function (kid) { - return kid[0] !== '.' && (!filterWith || filterWith(node, kid)) - }) - - asyncForEach(kids, thenLoadNode, thenSortChildren) - } - function thenLoadNode (kid, done) { - var kidPath = path.join(nm, kid) - var kidRealPath = path.join(rm, kid) - loadNode(kidPath, kidRealPath, cache, andAddNode(done)) - } - function andAddNode (done) { - return function (er, kid) { - if (er) return done(er) - node.children.push(kid) - kid.parent = node - done() - } - } - function thenSortChildren (er) { - sortChildren(node) - cb(er, node) - } -} - -function sortChildren (node) { - node.children = node.children.sort(function (a, b) { - a = a.package.name ? a.package.name.toLowerCase() : a.path - b = b.package.name ? b.package.name.toLowerCase() : b.path - return a > b ? 1 : -1 - }) -} - -function loadTree (node, did, cache, filterWith, cb) { - debug('loadTree', dpath(node.path), !!cache[node.path]) - - if (did[node.realpath]) { - return dz(cb)(null, node) - } - - did[node.realpath] = true - - // needed 'cause we process all kids async-like and errors - // short circuit, so we have to be sure that after an error - // the cbs from other kids don't result in calling cb a second - // (or more) time. - cb = once(cb) - return loadChildren(node, cache, filterWith, thenProcessChildren) - - function thenProcessChildren (er, node) { - if (er) return cb(er) - - var kids = node.children.filter(function (kid) { - return !did[kid.realpath] - }) - - return asyncForEach(kids, loadTreeForKid, cb) - } - function loadTreeForKid (kid, done) { - loadTree(kid, did, cache, filterWith, done) - } -} - -function rpt (root, filterWith, cb) { - if (!cb) { - cb = filterWith - filterWith = null - } - var cache = Object.create(null) - var topErr - var tree - return fs.realpath(root, thenLoadNode) - - function thenLoadNode (er, realRoot) { - if (er) return cb(er) - debug('rpt', dpath(realRoot)) - loadNode(root, realRoot, cache, thenLoadTree) - } - function thenLoadTree(er, node) { - // even if there's an error, it's fine, as long as we got a node - if (node) { - topErr = er - tree = node - loadTree(node, {}, cache, filterWith, thenHandleErrors) - } else { - cb(er) - } - } - function thenHandleErrors (er) { - cb(topErr && topErr.code !== 'ENOENT' ? topErr : er, tree) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/basic.js deleted file mode 100644 index 0dcb5389..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/basic.js +++ /dev/null @@ -1,155 +0,0 @@ -var test = require('tap').test -var rpt = require('../rpt.js') -var path = require('path') -var fs = require('fs') -var archy = require('archy') -var fixtures = path.resolve(__dirname, 'fixtures') -var roots = [ 'root', 'other', 'selflink', 'noname' ] -var cwd = path.resolve(__dirname, '..') - -var symlinks = { - 'selflink/node_modules/@scope/z/node_modules/glob': - '../../../foo/node_modules/glob', - 'other/node_modules/glob': - '../../root/node_modules/@scope/x/node_modules/glob', - 'linkedroot': - 'root', - 'deep/root': - '../root', - 'deeproot': - 'deep' -} - -function cleanup () { - Object.keys(symlinks).forEach(function (s) { - var p = path.resolve(cwd, 'test/fixtures', s) - try { - fs.unlinkSync(p) - } catch (er) {} - }) -} - -test('setup symlinks', function (t) { - cleanup() - - Object.keys(symlinks).forEach(function (s) { - var p = path.resolve(cwd, 'test/fixtures', s) - fs.symlinkSync(symlinks [ s ], p, 'dir') - }) - - t.end() -}) - -roots.forEach(function (root) { - var dir = path.resolve(fixtures, root) - var expectedtxt = path.resolve(dir, 'archy.txt') - var expectedre = path.resolve(dir, 'archy.re') - - test(root, function (t) { - rpt(dir, function (er, d) { - if (er && er.code !== 'ENOENT') throw er - - var actual = archy(archyize(d)).trim() - // console . log ('----', dir) - console.log(actual) - // console . log (require ('util') . inspect (d, { - // depth: Infinity - // })) - try { - var expect = fs.readFileSync(expectedtxt, 'utf8').trim() - t.equal(actual, expect, root + ' tree') - } catch (e) { - var expect = new RegExp(fs.readFileSync(expectedre, 'utf8').trim()) - t.like(actual, expect, root + ' tree') - } - t.end() - }) - }) -}) - -test('linkedroot', function (t) { - var dir = path.resolve(fixtures, 'linkedroot') - var out = dir + '-archy.txt' - rpt(dir, function (er, d) { - if (er && er.code !== 'ENOENT') throw er - - var actual = archy(archyize(d)).trim() - console.log(actual) - var expect = fs.readFileSync(out, 'utf8').trim() - t.equal(actual, expect, 'linkedroot tree') - t.end() - }) -}) - -test('deeproot', function (t) { - var dir = path.resolve(fixtures, 'deeproot/root') - var out = path.resolve(fixtures, 'deep') + '-archy.txt' - rpt(dir, function (er, d) { - if (er && er.code !== 'ENOENT') throw er - - var actual = archy(archyize(d)).trim() - console.log(actual) - var expect = fs.readFileSync(out, 'utf8').trim() - t.equal(actual, expect, 'deeproot tree') - t.end() - }) -}) - -test('broken json', function (t) { - rpt(path.resolve(fixtures, 'bad'), function (er, d) { - t.ok(d.error, 'Got an error object') - t.equal(d.error && d.error.code, 'EJSONPARSE') - t.ok(d, 'Got a tree') - t.end() - }) -}) - -test('missing json does not obscure deeper errors', function (t) { - rpt(path.resolve(fixtures, 'empty'), function (er, d) { - var error = d.error - t.ok(error, 'Error reading json of top level') - t.equal(error && error.code, 'ENOENT') - var childError = d.children.length===1 && d.children[0].error - t.ok(childError, 'Error parsing JSON of child node') - t.equal(childError && childError.code, 'EJSONPARSE') - t.end() - }) -}) -test('missing folder', function (t) { - rpt(path.resolve(fixtures, 'does-not-exist'), function (er, d) { - t.ok(er, 'Got an error object') - t.equal(er && er.code, 'ENOENT') - t.ok(!d, 'No tree on top level error') - t.end() - }) -}) - - -function archyize (d, seen) { - seen = seen || {} - var path = d.path - if (d.target) { - path = d.target.path - } - - var label = d.package._id ? d.package._id + ' ' : - d.package.name ? d.package.name + (d.package.version ? '@' + d.package.version : '') + ' ' : - '' - label += path.substr(cwd.length + 1) - - if (d . target) { - return { label: label + ' (symlink)', nodes: [] } - } - - return { - label: label, - nodes: d.children.map(function (kid) { - return archyize(kid, seen) - }) - } -} - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/bad/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/bad/package.json deleted file mode 100644 index 21d815ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/bad/package.json +++ /dev/null @@ -1,2 +0,0 @@ -{ - "NOPE" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/deep-archy.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/deep-archy.txt deleted file mode 100644 index 630eab1a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/deep-archy.txt +++ /dev/null @@ -1,11 +0,0 @@ -root@1.2.3 test/fixtures/deeproot/root -├─┬ @scope/x@1.2.3 test/fixtures/deeproot/root/node_modules/@scope/x -│ └─┬ glob@4.0.5 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob -│ ├── graceful-fs@3.0.2 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/graceful-fs -│ ├── inherits@2.0.1 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/inherits -│ ├─┬ minimatch@1.0.0 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch -│ │ ├── lru-cache@2.5.0 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/lru-cache -│ │ └── sigmund@1.0.0 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/sigmund -│ └── once@1.3.0 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/once -├── @scope/y@1.2.3 test/fixtures/deeproot/root/node_modules/@scope/y -└── foo@1.2.3 test/fixtures/deeproot/root/node_modules/foo \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/deep/.keep b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/deep/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/empty/node_modules/foo/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/empty/node_modules/foo/package.json deleted file mode 100644 index 98232c64..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/empty/node_modules/foo/package.json +++ /dev/null @@ -1 +0,0 @@ -{ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/linkedroot-archy.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/linkedroot-archy.txt deleted file mode 100644 index e34a4603..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/linkedroot-archy.txt +++ /dev/null @@ -1,11 +0,0 @@ -root@1.2.3 test/fixtures/linkedroot -├─┬ @scope/x@1.2.3 test/fixtures/linkedroot/node_modules/@scope/x -│ └─┬ glob@4.0.5 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob -│ ├── graceful-fs@3.0.2 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/graceful-fs -│ ├── inherits@2.0.1 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/inherits -│ ├─┬ minimatch@1.0.0 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/minimatch -│ │ ├── lru-cache@2.5.0 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/lru-cache -│ │ └── sigmund@1.0.0 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/sigmund -│ └── once@1.3.0 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/once -├── @scope/y@1.2.3 test/fixtures/linkedroot/node_modules/@scope/y -└── foo@1.2.3 test/fixtures/linkedroot/node_modules/foo \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/noname/archy.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/noname/archy.txt deleted file mode 100644 index 03d78dfc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/noname/archy.txt +++ /dev/null @@ -1,2 +0,0 @@ -test/fixtures/noname -└── test/fixtures/noname/node_modules/foo diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/noname/node_modules/foo/keep-alive b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/noname/node_modules/foo/keep-alive deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/other/archy.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/other/archy.txt deleted file mode 100644 index 23666226..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/other/archy.txt +++ /dev/null @@ -1,2 +0,0 @@ -test/fixtures/other -└── glob@4.0.5 test/fixtures/other/node_modules/glob (symlink) \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/other/node_modules/.bin b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/other/node_modules/.bin deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/root/archy.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/root/archy.txt deleted file mode 100644 index 1aacd3f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/root/archy.txt +++ /dev/null @@ -1,11 +0,0 @@ -root@1.2.3 test/fixtures/root -├─┬ @scope/x@1.2.3 test/fixtures/root/node_modules/@scope/x -│ └─┬ glob@4.0.5 test/fixtures/root/node_modules/@scope/x/node_modules/glob -│ ├── graceful-fs@3.0.2 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/graceful-fs -│ ├── inherits@2.0.1 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/inherits -│ ├─┬ minimatch@1.0.0 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch -│ │ ├── lru-cache@2.5.0 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/lru-cache -│ │ └── sigmund@1.0.0 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/sigmund -│ └── once@1.3.0 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/once -├── @scope/y@1.2.3 test/fixtures/root/node_modules/@scope/y -└── foo@1.2.3 test/fixtures/root/node_modules/foo \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/root/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/root/package.json deleted file mode 100644 index 010347ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/root/package.json +++ /dev/null @@ -1,2 +0,0 @@ -{"name":"root", - "version":"1.2.3"} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/selflink/archy.re b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/selflink/archy.re deleted file mode 100644 index 22e18109..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/selflink/archy.re +++ /dev/null @@ -1,13 +0,0 @@ -selflink@1[.]2[.]3 test/fixtures/selflink -├── @scope/y@1[.]2[.]3 test/fixtures/selflink/node_modules/@scope/y -├─┬ @scope/z@1[.]2[.]3 test/fixtures/selflink/node_modules/@scope/z -│ └── glob@4[.]0[.]5 test/fixtures/selflink/node_modules/foo/node_modules/glob [(]symlink[)] -└─┬ foo@1[.]2[.]3 test/fixtures/selflink/node_modules/foo - ├─┬ glob@4[.]0[.]5 test/fixtures/selflink/node_modules/foo/node_modules/glob - │ ├── graceful-fs@3[.]0[.]2 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/graceful-fs - │ ├── inherits@2[.]0[.]1 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/inherits - │ ├─┬ minimatch@1[.]0[.]0 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/minimatch - │ │ ├── lru-cache@2[.]5[.]0 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/minimatch/node_modules/lru-cache - │ │ └── sigmund@1[.]0[.]0 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/minimatch/node_modules/sigmund - │ └── once@1[.]3[.]0 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/once - └── selflink@1[.]2[.]3 test/fixtures/selflink [(]symlink[)] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/selflink/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/selflink/package.json deleted file mode 100644 index 5bbf35e5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/fixtures/selflink/package.json +++ /dev/null @@ -1,2 +0,0 @@ -{"name":"selflink", - "version":"1.2.3"} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/symlinked-node-modules.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/symlinked-node-modules.js deleted file mode 100644 index 31149240..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read-package-tree/test/symlinked-node-modules.js +++ /dev/null @@ -1,70 +0,0 @@ -'use strict' -var path = require('path') -var test = require('tap').test -var rpt = require('../rpt.js') -var Tacks = require('tacks') -var File = Tacks.File -var Symlink = Tacks.Symlink -var Dir = Tacks.Dir - -var workdir = path.join(__dirname, path.basename(__filename, '.js')) -var fixture = new Tacks(Dir({ - bar: Dir({ - 'package.json': File({ - name: 'bar', - version: '1.0.0' - }) - }), - 'linked-node-modules': Dir({ - bar: Symlink('../bar'), - foo: Dir({ - 'package.json': File({ - name: 'foo', - version: '1.0.0' - }) - }) - }), - example: Dir({ - node_modules: Symlink('../linked-node-modules/'), - 'package.json': File({ - name: 'example', - version: '1.0.0', - }) - }) -})) - -function setup () { - cleanup() - fixture.create(workdir) -} - -function cleanup () { - fixture.remove(workdir) -} - -test('setup', function (t) { - setup() - t.done() -}) -test('symlinked-node-modules', function (t) { - rpt(path.join(workdir, 'example'), function (err, tree) { - t.ifError(err) - t.is(tree.children.length, 2) - var childrenShouldBe = { - 'foo': {isLink: false}, - 'bar': {isLink: true} - } - tree.children.forEach(function (child) { - var name = child.package.name - t.is(child.isLink, childrenShouldBe[name].isLink, - 'is' + (childrenShouldBe[name].isLink ? '' : 'Not') + 'Link ' + - path.relative(workdir, child.path) + " + " + - path.relative(workdir, child.realpath)) - }) - t.done() - }) -}) -test('cleanup', function (t) { - cleanup() - t.done() -}) \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read/README.md deleted file mode 100644 index 5967fad1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read/README.md +++ /dev/null @@ -1,53 +0,0 @@ -## read - -For reading user input from stdin. - -Similar to the `readline` builtin's `question()` method, but with a -few more features. - -## USAGE - -```javascript -var read = require("read") -read(options, callback) -``` - -The callback gets called with either the user input, or the default -specified, or an error, as `callback(error, result, isDefault)` -node style. - -## OPTIONS - -Every option is optional. - -* `prompt` What to write to stdout before reading input. -* `silent` Don't echo the output as the user types it. -* `replace` Replace silenced characters with the supplied character value. -* `timeout` Number of ms to wait for user input before giving up. -* `default` The default value if the user enters nothing. -* `edit` Allow the user to edit the default value. -* `terminal` Treat the output as a TTY, whether it is or not. -* `input` Readable stream to get input data from. (default `process.stdin`) -* `output` Writeable stream to write prompts to. (default: `process.stdout`) - -If silent is true, and the input is a TTY, then read will set raw -mode, and read character by character. - -## COMPATIBILITY - -This module works sort of with node 0.6. It does not work with node -versions less than 0.6. It is best on node 0.8. - -On node version 0.6, it will remove all listeners on the input -stream's `data` and `keypress` events, because the readline module did -not fully clean up after itself in that version of node, and did not -make it possible to clean up after it in a way that has no potential -for side effects. - -Additionally, some of the readline options (like `terminal`) will not -function in versions of node before 0.8, because they were not -implemented in the builtin readline module. - -## CONTRIBUTING - -Patches welcome. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read/lib/read.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read/lib/read.js deleted file mode 100644 index a93d1b3b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/read/lib/read.js +++ /dev/null @@ -1,113 +0,0 @@ - -module.exports = read - -var readline = require('readline') -var Mute = require('mute-stream') - -function read (opts, cb) { - if (opts.num) { - throw new Error('read() no longer accepts a char number limit') - } - - if (typeof opts.default !== 'undefined' && - typeof opts.default !== 'string' && - typeof opts.default !== 'number') { - throw new Error('default value must be string or number') - } - - var input = opts.input || process.stdin - var output = opts.output || process.stdout - var prompt = (opts.prompt || '').trim() + ' ' - var silent = opts.silent - var editDef = false - var timeout = opts.timeout - - var def = opts.default || '' - if (def) { - if (silent) { - prompt += '( -
          • - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_duplex.js.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_duplex.js.html deleted file mode 100644 index a3f1208b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_duplex.js.html +++ /dev/null @@ -1,287 +0,0 @@ - - - - Code coverage report for lib/_stream_duplex.js - - - - - - - -
            -
            -

            - all files / lib/ _stream_duplex.js -

            -
            -
            - 69.23% - Statements - 27/39 -
            -
            - 68.18% - Branches - 15/22 -
            -
            - 40% - Functions - 2/5 -
            -
            - 75.76% - Lines - 25/33 -
            -
            -
            -
            -
            
            -
            -
            1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75  -  -  -  -  -  -  -  -  -49× -  -  -  -  -  -  -  -49× -  -  -49× -  -  -  -49× -49× -  -  -49× -49× -  -49× -  -49× -49× -392× -392× -  -  -49× -25× -  -25× -25× -  -25× -  -25× -  -25× -25× -  -25× -  -  -  -49× -  -  -18× -  -  -  -  -  -  -49× -  -  -  -49× -  -  -  - 
            // a duplex stream is just a stream that is both readable and writable.
            -// Since JS doesn't have multiple prototypal inheritance, this class
            -// prototypally inherits from Readable, and then parasitically from
            -// Writable.
            - 
            -'use strict';
            - 
            -/*<replacement>*/
            - 
            -var objectKeys = Object.keys || function (obj) {
            -  var keys = [];
            -  for (var key in obj) {
            -    keys.push(key);
            -  }return keys;
            -};
            -/*</replacement>*/
            - 
            -module.exports = Duplex;
            - 
            -/*<replacement>*/
            -var processNextTick = require('process-nextick-args');
            -/*</replacement>*/
            - 
            -/*<replacement>*/
            -var util = require('core-util-is');
            -util.inherits = require('inherits');
            -/*</replacement>*/
            - 
            -var Readable = require('./_stream_readable');
            -var Writable = require('./_stream_writable');
            - 
            -util.inherits(Duplex, Readable);
            - 
            -var keys = objectKeys(Writable.prototype);
            -for (var v = 0; v < keys.length; v++) {
            -  var method = keys[v];
            -  if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
            -}
            - 
            -function Duplex(options) {
            -  Iif (!(this instanceof Duplex)) return new Duplex(options);
            - 
            -  Readable.call(this, options);
            -  Writable.call(this, options);
            - 
            -  Iif (options && options.readable === false) this.readable = false;
            - 
            -  Iif (options && options.writable === false) this.writable = false;
            - 
            -  this.allowHalfOpen = true;
            -  Iif (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
            - 
            -  this.once('end', onend);
            -}
            - 
            -// the no-half-open enforcer
            -function onend() {
            -  // if we allow half-open state, or if the writable side ended,
            -  // then we're ok.
            -  Eif (this.allowHalfOpen || this._writableState.ended) return;
            - 
            -  // no more data can be written.
            -  // But allow more writes to happen in this tick.
            -  processNextTick(onEndNT, this);
            -}
            - 
            -function onEndNT(self) {
            -  self.end();
            -}
            - 
            -function forEach(xs, f) {
            -  for (var i = 0, l = xs.length; i < l; i++) {
            -    f(xs[i], i);
            -  }
            -}
            -
            -
            - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_passthrough.js.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_passthrough.js.html deleted file mode 100644 index 3ca02ae7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_passthrough.js.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - Code coverage report for lib/_stream_passthrough.js - - - - - - - -
            -
            -

            - all files / lib/ _stream_passthrough.js -

            -
            -
            - 90.91% - Statements - 10/11 -
            -
            - 50% - Branches - 1/2 -
            -
            - 100% - Functions - 2/2 -
            -
            - 100% - Lines - 10/10 -
            -
            -
            -
            -
            
            -
            -
            1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26  -  -  -  -  -  -49× -  -49× -  -  -49× -49× -  -  -49× -  -49× - -  - -  -  -49× -59× - 
            // a passthrough stream.
            -// basically just the most minimal sort of Transform stream.
            -// Every written chunk gets output as-is.
            - 
            -'use strict';
            - 
            -module.exports = PassThrough;
            - 
            -var Transform = require('./_stream_transform');
            - 
            -/*<replacement>*/
            -var util = require('core-util-is');
            -util.inherits = require('inherits');
            -/*</replacement>*/
            - 
            -util.inherits(PassThrough, Transform);
            - 
            -function PassThrough(options) {
            -  Iif (!(this instanceof PassThrough)) return new PassThrough(options);
            - 
            -  Transform.call(this, options);
            -}
            - 
            -PassThrough.prototype._transform = function (chunk, encoding, cb) {
            -  cb(null, chunk);
            -};
            -
            -
            - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_readable.js.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_readable.js.html deleted file mode 100644 index fb9f1d0c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_readable.js.html +++ /dev/null @@ -1,2741 +0,0 @@ - - - - Code coverage report for lib/_stream_readable.js - - - - - - - -
            -
            -

            - all files / lib/ _stream_readable.js -

            -
            -
            - 89.29% - Statements - 467/523 -
            -
            - 87.22% - Branches - 307/352 -
            -
            - 86.79% - Functions - 46/53 -
            -
            - 90.73% - Lines - 411/453 -
            -
            -
            -
            -
            
            -
            -
            1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 -499 -500 -501 -502 -503 -504 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -564 -565 -566 -567 -568 -569 -570 -571 -572 -573 -574 -575 -576 -577 -578 -579 -580 -581 -582 -583 -584 -585 -586 -587 -588 -589 -590 -591 -592 -593 -594 -595 -596 -597 -598 -599 -600 -601 -602 -603 -604 -605 -606 -607 -608 -609 -610 -611 -612 -613 -614 -615 -616 -617 -618 -619 -620 -621 -622 -623 -624 -625 -626 -627 -628 -629 -630 -631 -632 -633 -634 -635 -636 -637 -638 -639 -640 -641 -642 -643 -644 -645 -646 -647 -648 -649 -650 -651 -652 -653 -654 -655 -656 -657 -658 -659 -660 -661 -662 -663 -664 -665 -666 -667 -668 -669 -670 -671 -672 -673 -674 -675 -676 -677 -678 -679 -680 -681 -682 -683 -684 -685 -686 -687 -688 -689 -690 -691 -692 -693 -694 -695 -696 -697 -698 -699 -700 -701 -702 -703 -704 -705 -706 -707 -708 -709 -710 -711 -712 -713 -714 -715 -716 -717 -718 -719 -720 -721 -722 -723 -724 -725 -726 -727 -728 -729 -730 -731 -732 -733 -734 -735 -736 -737 -738 -739 -740 -741 -742 -743 -744 -745 -746 -747 -748 -749 -750 -751 -752 -753 -754 -755 -756 -757 -758 -759 -760 -761 -762 -763 -764 -765 -766 -767 -768 -769 -770 -771 -772 -773 -774 -775 -776 -777 -778 -779 -780 -781 -782 -783 -784 -785 -786 -787 -788 -789 -790 -791 -792 -793 -794 -795 -796 -797 -798 -799 -800 -801 -802 -803 -804 -805 -806 -807 -808 -809 -810 -811 -812 -813 -814 -815 -816 -817 -818 -819 -820 -821 -822 -823 -824 -825 -826 -827 -828 -829 -830 -831 -832 -833 -834 -835 -836 -837 -838 -839 -840 -841 -842 -843 -844 -845 -846 -847 -848 -849 -850 -851 -852 -853 -854 -855 -856 -857 -858 -859 -860 -861 -862 -863 -864 -865 -866 -867 -868 -869 -870 -871 -872 -873 -874 -875 -876 -877 -878 -879 -880 -881 -882 -883 -884 -885 -886 -887 -888 -889 -890 -891 -892 -893  -  -49× -  -  -49× -  -  -  -49× -  -  -49× -  -  -49× -  -49× -269× -  -  -  -  -49× -49× -49× -49× -  -49× -  -  -  -  -49× -  -49× -  -  -  -49× -49× -  -  -  -49× -49× -49× -49× -  -  -  -  -  -49× -  -49× -  -49× -  -49× -38× -  -  -  -  -  -  -38× -  -  -49× -49× -82× -  -82× -  -  -  -82× -  -82× -  -  -  -82× -82× -82× -  -  -82× -  -82× -82× -82× -82× -82× -82× -82× -82× -  -  -  -  -  -82× -  -  -  -82× -82× -82× -82× -  -  -  -  -82× -  -  -  -82× -  -  -82× -  -  -82× -  -82× -82× -82× -10× -10× -10× -  -  -  -49× -49× -84× -  -84× -  -82× -  -  -82× -  -82× -  -82× -  -  -  -  -  -  -49× -276927× -  -276927× -37× -37× -10× -10× -  -  -  -276927× -  -  -  -49× -41× -41× -  -  -49× - -  -  -49× -276968× -276968× -  -276968× -67× -67× -276901× -276883× - - -276882× - - -  -276881× -276881× -23× -23× -  -  -276881× -  -  -  -276881× -  -276875× -108× -108× -  -  -276767× -276767× -  -276767× -  -  -  -276881× -  -18× - -  -  -276966× -  -  -  -  -  -  -  -  -  -49× -276966× -  -  -  -49× - - - - -  -  -  -49× -49× - -  -  -  - - - - - - - -  - -  -  -49× -554235× -  -553951× -  -553860× -  -421× -  -  -553439× -  -  -  -  -  -2087× -  -  -2087× -1711× -1697× -1697× -  -14× -  -  -  -376× -  -  -  -49× -277657× -277657× -277657× -  -277657× -  -  -  -  -277657× - - - -  -  -277651× -  -  -277651× -279× -279× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -277372× -277372× -  -  -277372× -277365× -277365× -  -  -  -  -277372× -556× -556× -  -  -277372× -276809× -276809× -276809× -  -276809× -  -276809× -276809× -  -  -  -  -277372× -  -277372× -277372× -  -277372× -276627× -276627× -  -  -277372× -  -  -  -277372× -  -  -277372× -  -277372× -  -277372× -  -  -49× -276968× -276968× -  -  -276968× -  -  -49× -67× -59× -14× -14× - - -  -  -59× -  -  -59× -  -  -  -  -  -49× -276722× -276722× -276722× -1123× -1123× -1123× -  -  -  -49× -1123× -1123× -1123× -  -  -  -  -  -  -  -  -49× -276881× -225× -225× -  -  -  -49× -225× -225× -275597× -275597× -275597× -  -275571× -  -225× -  -  -  -  -  -  -49× -  -  -  -49× -38× -38× -  -38× -  -37× -37× -  - - -  -  -  -  -38× -38× -  -38× -  -38× -38× -  -38× -49× -25× -25× -24× -  -  -  -49× -12× -12× -  -  -  -  -  -  -38× -38× -  -38× -49× -24× -  -24× -24× -24× -24× -24× -24× -24× -24× -  -24× -  -  -  -  -  -  -24× -  -  -38× -49× -395× -395× -395× -  -  -  -  -264× -263× -263× -  -264× -  -  -  -  -  -49× - - - - -  -  -  -38× -  -  -49× -  -  -  -38× -49× - - - -  -38× -  -49× -11× -11× -  -  -  -38× -  -  -38× -12× -12× -  -  -38× -  -  -49× -38× -265× -265× -265× -265× -263× -263× -  -  -  -  -49× -27× -  -  -27× -  -  -24× -  -24× -  -24× -  -  -24× -24× -24× -24× -24× -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -49× -226× -  -  -  -226× -36× -  -  -226× -38× -38× -28× -28× -28× -28× -25× - - -  -  -  -  -226× -  -49× -  -49× -25× -25× -  -  -  -  -49× -57× -57× -56× -56× -56× -  -57× -  -  -49× -56× -42× -42× -  -  -  -49× -42× -38× -38× -  -  -42× -42× -42× -42× -  -  -49× -272× -272× -270× -270× -270× -  -272× -  -  -49× -1428× -1428× -1428× -345× -395× -  -  -  -  -  -  -  -49× - - -  - - - - -  -  -  -  - -  -  - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -16× -  -  -  -  -  -  -  -  -  - - - -  -  -  -  - -  -  -  -  -  -  -  - -  -  -  -49× -  -  -  -49× -757× -757× -757× -757× -757× -  -  -757× -  -753× -  -280× -280× -  -  -434× -  -  -114× -114× -114× -320× -  -264× -  -  -  -56× -  -56× -56× -186× -186× -  -186× -  -186× -  -186× -  -  -  -  -753× -  -  -49× -316× -  -  -  -316× -  -316× -314× -314× -  -  -  -49× -  -314× -54× -54× -54× -  -  -  -49× - - -  -  -  -49× - - -  -  - 
            'use strict';
            - 
            -module.exports = Readable;
            - 
            -/*<replacement>*/
            -var processNextTick = require('process-nextick-args');
            -/*</replacement>*/
            - 
            -/*<replacement>*/
            -var isArray = require('isarray');
            -/*</replacement>*/
            - 
            -Readable.ReadableState = ReadableState;
            - 
            -/*<replacement>*/
            -var EE = require('events').EventEmitter;
            - 
            -var EElistenerCount = function (emitter, type) {
            -  return emitter.listeners(type).length;
            -};
            -/*</replacement>*/
            - 
            -/*<replacement>*/
            -var Stream;
            -(function () {
            -  try {
            -    Stream = require('st' + 'ream');
            -  } catch (_) {} finally {
            -    Iif (!Stream) Stream = require('events').EventEmitter;
            -  }
            -})();
            -/*</replacement>*/
            - 
            -var Buffer = require('buffer').Buffer;
            -/*<replacement>*/
            -var bufferShim = require('buffer-shims');
            -/*</replacement>*/
            - 
            -/*<replacement>*/
            -var util = require('core-util-is');
            -util.inherits = require('inherits');
            -/*</replacement>*/
            - 
            -/*<replacement>*/
            -var debugUtil = require('util');
            -var debug = void 0;
            -Eif (debugUtil && debugUtil.debuglog) {
            -  debug = debugUtil.debuglog('stream');
            -} else {
            -  debug = function () {};
            -}
            -/*</replacement>*/
            - 
            -var StringDecoder;
            - 
            -util.inherits(Readable, Stream);
            - 
            -var hasPrependListener = typeof EE.prototype.prependListener === 'function';
            - 
            -function prependListener(emitter, event, fn) {
            -  Iif (hasPrependListener) return emitter.prependListener(event, fn);
            - 
            -  // This is a brutally ugly hack to make sure that our error handler
            -  // is attached before any userland ones.  NEVER DO THIS. This is here
            -  // only because this code needs to continue to work with older versions
            -  // of Node.js that do not include the prependListener() method. The goal
            -  // is to eventually remove this hack.
            -  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else Iif (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
            -}
            - 
            -var Duplex;
            -function ReadableState(options, stream) {
            -  Duplex = Duplex || require('./_stream_duplex');
            - 
            -  options = options || {};
            - 
            -  // object stream flag. Used to make read(n) ignore n and to
            -  // make all the buffer merging and length checks go away
            -  this.objectMode = !!options.objectMode;
            - 
            -  if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
            - 
            -  // the point at which it stops calling _read() to fill the buffer
            -  // Note: 0 is a valid value, means "don't call _read preemptively ever"
            -  var hwm = options.highWaterMark;
            -  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
            -  this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
            - 
            -  // cast to ints.
            -  this.highWaterMark = ~ ~this.highWaterMark;
            - 
            -  this.buffer = [];
            -  this.length = 0;
            -  this.pipes = null;
            -  this.pipesCount = 0;
            -  this.flowing = null;
            -  this.ended = false;
            -  this.endEmitted = false;
            -  this.reading = false;
            - 
            -  // a flag to be able to tell if the onwrite cb is called immediately,
            -  // or on a later tick.  We set this to true at first, because any
            -  // actions that shouldn't happen until "later" should generally also
            -  // not happen before the first write call.
            -  this.sync = true;
            - 
            -  // whenever we return null, then we set a flag to say
            -  // that we're awaiting a 'readable' event emission.
            -  this.needReadable = false;
            -  this.emittedReadable = false;
            -  this.readableListening = false;
            -  this.resumeScheduled = false;
            - 
            -  // Crypto is kind of old and crusty.  Historically, its default string
            -  // encoding is 'binary' so we have to make this configurable.
            -  // Everything else in the universe uses 'utf8', though.
            -  this.defaultEncoding = options.defaultEncoding || 'utf8';
            - 
            -  // when piping, we only care about 'readable' events that happen
            -  // after read()ing all the bytes and not getting any pushback.
            -  this.ranOut = false;
            - 
            -  // the number of writers that are awaiting a drain event in .pipe()s
            -  this.awaitDrain = 0;
            - 
            -  // if true, a maybeReadMore has been scheduled
            -  this.readingMore = false;
            - 
            -  this.decoder = null;
            -  this.encoding = null;
            -  if (options.encoding) {
            -    if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
            -    this.decoder = new StringDecoder(options.encoding);
            -    this.encoding = options.encoding;
            -  }
            -}
            - 
            -var Duplex;
            -function Readable(options) {
            -  Duplex = Duplex || require('./_stream_duplex');
            - 
            -  if (!(this instanceof Readable)) return new Readable(options);
            - 
            -  this._readableState = new ReadableState(options, this);
            - 
            -  // legacy
            -  this.readable = true;
            - 
            -  if (options && typeof options.read === 'function') this._read = options.read;
            - 
            -  Stream.call(this);
            -}
            - 
            -// Manually shove something into the read() buffer.
            -// This returns true if the highWaterMark has not been hit yet,
            -// similar to how Writable.write() returns true if you should
            -// write() some more.
            -Readable.prototype.push = function (chunk, encoding) {
            -  var state = this._readableState;
            - 
            -  if (!state.objectMode && typeof chunk === 'string') {
            -    encoding = encoding || state.defaultEncoding;
            -    if (encoding !== state.encoding) {
            -      chunk = bufferShim.from(chunk, encoding);
            -      encoding = '';
            -    }
            -  }
            - 
            -  return readableAddChunk(this, state, chunk, encoding, false);
            -};
            - 
            -// Unshift should *always* be something directly out of read()
            -Readable.prototype.unshift = function (chunk) {
            -  var state = this._readableState;
            -  return readableAddChunk(this, state, chunk, '', true);
            -};
            - 
            -Readable.prototype.isPaused = function () {
            -  return this._readableState.flowing === false;
            -};
            - 
            -function readableAddChunk(stream, state, chunk, encoding, addToFront) {
            -  var er = chunkInvalid(state, chunk);
            -  Iif (er) {
            -    stream.emit('error', er);
            -  } else if (chunk === null) {
            -    state.reading = false;
            -    onEofChunk(stream, state);
            -  } else if (state.objectMode || chunk && chunk.length > 0) {
            -    if (state.ended && !addToFront) {
            -      var e = new Error('stream.push() after EOF');
            -      stream.emit('error', e);
            -    } else if (state.endEmitted && addToFront) {
            -      var _e = new Error('stream.unshift() after end event');
            -      stream.emit('error', _e);
            -    } else {
            -      var skipAdd;
            -      if (state.decoder && !addToFront && !encoding) {
            -        chunk = state.decoder.write(chunk);
            -        skipAdd = !state.objectMode && chunk.length === 0;
            -      }
            - 
            -      if (!addToFront) state.reading = false;
            - 
            -      // Don't add to the buffer if we've decoded to an empty string chunk and
            -      // we're not in object mode
            -      if (!skipAdd) {
            -        // if we want the data now, just emit it.
            -        if (state.flowing && state.length === 0 && !state.sync) {
            -          stream.emit('data', chunk);
            -          stream.read(0);
            -        } else {
            -          // update the buffer info.
            -          state.length += state.objectMode ? 1 : chunk.length;
            -          if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
            - 
            -          if (state.needReadable) emitReadable(stream);
            -        }
            -      }
            - 
            -      maybeReadMore(stream, state);
            -    }
            -  } else if (!addToFront) {
            -    state.reading = false;
            -  }
            - 
            -  return needMoreData(state);
            -}
            - 
            -// if it's past the high water mark, we can push in some more.
            -// Also, if we have no data yet, we can stand some
            -// more bytes.  This is to work around cases where hwm=0,
            -// such as the repl.  Also, if the push() triggered a
            -// readable event, and the user called read(largeNumber) such that
            -// needReadable was set, then we ought to push more, so that another
            -// 'readable' event will be triggered.
            -function needMoreData(state) {
            -  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
            -}
            - 
            -// backwards compatibility.
            -Readable.prototype.setEncoding = function (enc) {
            -  if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
            -  this._readableState.decoder = new StringDecoder(enc);
            -  this._readableState.encoding = enc;
            -  return this;
            -};
            - 
            -// Don't raise the hwm > 8MB
            -var MAX_HWM = 0x800000;
            -function computeNewHighWaterMark(n) {
            -  Iif (n >= MAX_HWM) {
            -    n = MAX_HWM;
            -  } else {
            -    // Get the next highest power of 2
            -    n--;
            -    n |= n >>> 1;
            -    n |= n >>> 2;
            -    n |= n >>> 4;
            -    n |= n >>> 8;
            -    n |= n >>> 16;
            -    n++;
            -  }
            -  return n;
            -}
            - 
            -function howMuchToRead(n, state) {
            -  if (state.length === 0 && state.ended) return 0;
            - 
            -  if (state.objectMode) return n === 0 ? 0 : 1;
            - 
            -  if (n === null || isNaN(n)) {
            -    // only flow one buffer at a time
            -    if (state.flowing && state.buffer.length) return state.buffer[0].length;else return state.length;
            -  }
            - 
            -  if (n <= 0) return 0;
            - 
            -  // If we're asking for more than the target buffer level,
            -  // then raise the water mark.  Bump up to the next highest
            -  // power of 2, to prevent increasing it excessively in tiny
            -  // amounts.
            -  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
            - 
            -  // don't have that much.  return null, unless we've ended.
            -  if (n > state.length) {
            -    if (!state.ended) {
            -      state.needReadable = true;
            -      return 0;
            -    } else {
            -      return state.length;
            -    }
            -  }
            - 
            -  return n;
            -}
            - 
            -// you can override either this method, or the async _read(n) below.
            -Readable.prototype.read = function (n) {
            -  debug('read', n);
            -  var state = this._readableState;
            -  var nOrig = n;
            - 
            -  if (typeof n !== 'number' || n > 0) state.emittedReadable = false;
            - 
            -  // if we're doing read(0) to trigger a readable event, but we
            -  // already have a bunch of data in the buffer, then just trigger
            -  // the 'readable' event and move on.
            -  if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
            -    debug('read: emitReadable', state.length, state.ended);
            -    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
            -    return null;
            -  }
            - 
            -  n = howMuchToRead(n, state);
            - 
            -  // if we've ended, and we're now clear, then finish it up.
            -  if (n === 0 && state.ended) {
            -    if (state.length === 0) endReadable(this);
            -    return null;
            -  }
            - 
            -  // All the actual chunk generation logic needs to be
            -  // *below* the call to _read.  The reason is that in certain
            -  // synthetic stream cases, such as passthrough streams, _read
            -  // may be a completely synchronous operation which may change
            -  // the state of the read buffer, providing enough data when
            -  // before there was *not* enough.
            -  //
            -  // So, the steps are:
            -  // 1. Figure out what the state of things will be after we do
            -  // a read from the buffer.
            -  //
            -  // 2. If that resulting state will trigger a _read, then call _read.
            -  // Note that this may be asynchronous, or synchronous.  Yes, it is
            -  // deeply ugly to write APIs this way, but that still doesn't mean
            -  // that the Readable class should behave improperly, as streams are
            -  // designed to be sync/async agnostic.
            -  // Take note if the _read call is sync or async (ie, if the read call
            -  // has returned yet), so that we know whether or not it's safe to emit
            -  // 'readable' etc.
            -  //
            -  // 3. Actually pull the requested chunks out of the buffer and return.
            - 
            -  // if we need a readable event, then we need to do some reading.
            -  var doRead = state.needReadable;
            -  debug('need readable', doRead);
            - 
            -  // if we currently have less than the highWaterMark, then also read some
            -  if (state.length === 0 || state.length - n < state.highWaterMark) {
            -    doRead = true;
            -    debug('length less than watermark', doRead);
            -  }
            - 
            -  // however, if we've ended, then there's no point, and if we're already
            -  // reading, then it's unnecessary.
            -  if (state.ended || state.reading) {
            -    doRead = false;
            -    debug('reading or ended', doRead);
            -  }
            - 
            -  if (doRead) {
            -    debug('do read');
            -    state.reading = true;
            -    state.sync = true;
            -    // if the length is currently zero, then we *need* a readable event.
            -    if (state.length === 0) state.needReadable = true;
            -    // call internal read method
            -    this._read(state.highWaterMark);
            -    state.sync = false;
            -  }
            - 
            -  // If _read pushed data synchronously, then `reading` will be false,
            -  // and we need to re-evaluate how much data we can return to the user.
            -  if (doRead && !state.reading) n = howMuchToRead(nOrig, state);
            - 
            -  var ret;
            -  if (n > 0) ret = fromList(n, state);else ret = null;
            - 
            -  if (ret === null) {
            -    state.needReadable = true;
            -    n = 0;
            -  }
            - 
            -  state.length -= n;
            - 
            -  // If we have nothing in the buffer, then we want to know
            -  // as soon as we *do* get something into the buffer.
            -  if (state.length === 0 && !state.ended) state.needReadable = true;
            - 
            -  // If we tried to read() past the EOF, then emit end on the next tick.
            -  if (nOrig !== n && state.ended && state.length === 0) endReadable(this);
            - 
            -  if (ret !== null) this.emit('data', ret);
            - 
            -  return ret;
            -};
            - 
            -function chunkInvalid(state, chunk) {
            -  var er = null;
            -  Iif (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
            -    er = new TypeError('Invalid non-string/buffer chunk');
            -  }
            -  return er;
            -}
            - 
            -function onEofChunk(stream, state) {
            -  if (state.ended) return;
            -  if (state.decoder) {
            -    var chunk = state.decoder.end();
            -    if (chunk && chunk.length) {
            -      state.buffer.push(chunk);
            -      state.length += state.objectMode ? 1 : chunk.length;
            -    }
            -  }
            -  state.ended = true;
            - 
            -  // emit 'readable' now to make sure it gets picked up.
            -  emitReadable(stream);
            -}
            - 
            -// Don't emit readable right away in sync mode, because this can trigger
            -// another read() call => stack overflow.  This way, it might trigger
            -// a nextTick recursion warning, but that's not so bad.
            -function emitReadable(stream) {
            -  var state = stream._readableState;
            -  state.needReadable = false;
            -  if (!state.emittedReadable) {
            -    debug('emitReadable', state.flowing);
            -    state.emittedReadable = true;
            -    if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
            -  }
            -}
            - 
            -function emitReadable_(stream) {
            -  debug('emit readable');
            -  stream.emit('readable');
            -  flow(stream);
            -}
            - 
            -// at this point, the user has presumably seen the 'readable' event,
            -// and called read() to consume some data.  that may have triggered
            -// in turn another _read(n) call, in which case reading = true if
            -// it's in progress.
            -// However, if we're not ended, or reading, and the length < hwm,
            -// then go ahead and try to read some more preemptively.
            -function maybeReadMore(stream, state) {
            -  if (!state.readingMore) {
            -    state.readingMore = true;
            -    processNextTick(maybeReadMore_, stream, state);
            -  }
            -}
            - 
            -function maybeReadMore_(stream, state) {
            -  var len = state.length;
            -  while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
            -    debug('maybeReadMore read 0');
            -    stream.read(0);
            -    if (len === state.length)
            -      // didn't get any data, stop spinning.
            -      break;else len = state.length;
            -  }
            -  state.readingMore = false;
            -}
            - 
            -// abstract method.  to be overridden in specific implementation classes.
            -// call cb(er, data) where data is <= n in length.
            -// for virtual (non-string, non-buffer) streams, "length" is somewhat
            -// arbitrary, and perhaps not very meaningful.
            -Readable.prototype._read = function (n) {
            -  this.emit('error', new Error('not implemented'));
            -};
            - 
            -Readable.prototype.pipe = function (dest, pipeOpts) {
            -  var src = this;
            -  var state = this._readableState;
            - 
            -  switch (state.pipesCount) {
            -    case 0:
            -      state.pipes = dest;
            -      break;
            -    case 1:
            -      state.pipes = [state.pipes, dest];
            -      break;
            -    default:
            -      state.pipes.push(dest);
            -      break;
            -  }
            -  state.pipesCount += 1;
            -  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
            - 
            -  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
            - 
            -  var endFn = doEnd ? onend : cleanup;
            -  if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
            - 
            -  dest.on('unpipe', onunpipe);
            -  function onunpipe(readable) {
            -    debug('onunpipe');
            -    if (readable === src) {
            -      cleanup();
            -    }
            -  }
            - 
            -  function onend() {
            -    debug('onend');
            -    dest.end();
            -  }
            - 
            -  // when the dest drains, it reduces the awaitDrain counter
            -  // on the source.  This would be more elegant with a .once()
            -  // handler in flow(), but adding and removing repeatedly is
            -  // too slow.
            -  var ondrain = pipeOnDrain(src);
            -  dest.on('drain', ondrain);
            - 
            -  var cleanedUp = false;
            -  function cleanup() {
            -    debug('cleanup');
            -    // cleanup event handlers once the pipe is broken
            -    dest.removeListener('close', onclose);
            -    dest.removeListener('finish', onfinish);
            -    dest.removeListener('drain', ondrain);
            -    dest.removeListener('error', onerror);
            -    dest.removeListener('unpipe', onunpipe);
            -    src.removeListener('end', onend);
            -    src.removeListener('end', cleanup);
            -    src.removeListener('data', ondata);
            - 
            -    cleanedUp = true;
            - 
            -    // if the reader is waiting for a drain event from this
            -    // specific writer, then it would cause it to never start
            -    // flowing again.
            -    // So, if this is awaiting a drain, then we just call it now.
            -    // If we don't know, then assume that we are waiting for one.
            -    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
            -  }
            - 
            -  src.on('data', ondata);
            -  function ondata(chunk) {
            -    debug('ondata');
            -    var ret = dest.write(chunk);
            -    if (false === ret) {
            -      // If the user unpiped during `dest.write()`, it is possible
            -      // to get stuck in a permanently paused state if that write
            -      // also returned false.
            -      // => Check whether `dest` is still a piping destination.
            -      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
            -        debug('false write response, pause', src._readableState.awaitDrain);
            -        src._readableState.awaitDrain++;
            -      }
            -      src.pause();
            -    }
            -  }
            - 
            -  // if the dest has an error, then stop piping into it.
            -  // however, don't suppress the throwing behavior for this.
            -  function onerror(er) {
            -    debug('onerror', er);
            -    unpipe();
            -    dest.removeListener('error', onerror);
            -    if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
            -  }
            - 
            -  // Make sure our error handler is attached before userland ones.
            -  prependListener(dest, 'error', onerror);
            - 
            -  // Both close and finish should trigger unpipe, but only once.
            -  function onclose() {
            -    dest.removeListener('finish', onfinish);
            -    unpipe();
            -  }
            -  dest.once('close', onclose);
            -  function onfinish() {
            -    debug('onfinish');
            -    dest.removeListener('close', onclose);
            -    unpipe();
            -  }
            -  dest.once('finish', onfinish);
            - 
            -  function unpipe() {
            -    debug('unpipe');
            -    src.unpipe(dest);
            -  }
            - 
            -  // tell the dest that it's being piped to
            -  dest.emit('pipe', src);
            - 
            -  // start the flow if it hasn't been started already.
            -  if (!state.flowing) {
            -    debug('pipe resume');
            -    src.resume();
            -  }
            - 
            -  return dest;
            -};
            - 
            -function pipeOnDrain(src) {
            -  return function () {
            -    var state = src._readableState;
            -    debug('pipeOnDrain', state.awaitDrain);
            -    if (state.awaitDrain) state.awaitDrain--;
            -    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
            -      state.flowing = true;
            -      flow(src);
            -    }
            -  };
            -}
            - 
            -Readable.prototype.unpipe = function (dest) {
            -  var state = this._readableState;
            - 
            -  // if we're not piping anywhere, then do nothing.
            -  if (state.pipesCount === 0) return this;
            - 
            -  // just one destination.  most common case.
            -  Eif (state.pipesCount === 1) {
            -    // passed in one, but it's not the right one.
            -    Iif (dest && dest !== state.pipes) return this;
            - 
            -    Iif (!dest) dest = state.pipes;
            - 
            -    // got a match.
            -    state.pipes = null;
            -    state.pipesCount = 0;
            -    state.flowing = false;
            -    Eif (dest) dest.emit('unpipe', this);
            -    return this;
            -  }
            - 
            -  // slow case. multiple pipe destinations.
            - 
            -  if (!dest) {
            -    // remove all.
            -    var dests = state.pipes;
            -    var len = state.pipesCount;
            -    state.pipes = null;
            -    state.pipesCount = 0;
            -    state.flowing = false;
            - 
            -    for (var _i = 0; _i < len; _i++) {
            -      dests[_i].emit('unpipe', this);
            -    }return this;
            -  }
            - 
            -  // try to find the right one.
            -  var i = indexOf(state.pipes, dest);
            -  if (i === -1) return this;
            - 
            -  state.pipes.splice(i, 1);
            -  state.pipesCount -= 1;
            -  if (state.pipesCount === 1) state.pipes = state.pipes[0];
            - 
            -  dest.emit('unpipe', this);
            - 
            -  return this;
            -};
            - 
            -// set up data events if they are asked for
            -// Ensure readable listeners eventually get something
            -Readable.prototype.on = function (ev, fn) {
            -  var res = Stream.prototype.on.call(this, ev, fn);
            - 
            -  // If listening to data, and it has not explicitly been paused,
            -  // then call resume to start the flow of data on the next tick.
            -  if (ev === 'data' && false !== this._readableState.flowing) {
            -    this.resume();
            -  }
            - 
            -  if (ev === 'readable' && !this._readableState.endEmitted) {
            -    var state = this._readableState;
            -    if (!state.readableListening) {
            -      state.readableListening = true;
            -      state.emittedReadable = false;
            -      state.needReadable = true;
            -      if (!state.reading) {
            -        processNextTick(nReadingNextTick, this);
            -      } else if (state.length) {
            -        emitReadable(this, state);
            -      }
            -    }
            -  }
            - 
            -  return res;
            -};
            -Readable.prototype.addListener = Readable.prototype.on;
            - 
            -function nReadingNextTick(self) {
            -  debug('readable nexttick read 0');
            -  self.read(0);
            -}
            - 
            -// pause() and resume() are remnants of the legacy readable stream API
            -// If the user uses them, then switch into old mode.
            -Readable.prototype.resume = function () {
            -  var state = this._readableState;
            -  if (!state.flowing) {
            -    debug('resume');
            -    state.flowing = true;
            -    resume(this, state);
            -  }
            -  return this;
            -};
            - 
            -function resume(stream, state) {
            -  if (!state.resumeScheduled) {
            -    state.resumeScheduled = true;
            -    processNextTick(resume_, stream, state);
            -  }
            -}
            - 
            -function resume_(stream, state) {
            -  if (!state.reading) {
            -    debug('resume read 0');
            -    stream.read(0);
            -  }
            - 
            -  state.resumeScheduled = false;
            -  stream.emit('resume');
            -  flow(stream);
            -  if (state.flowing && !state.reading) stream.read(0);
            -}
            - 
            -Readable.prototype.pause = function () {
            -  debug('call pause flowing=%j', this._readableState.flowing);
            -  if (false !== this._readableState.flowing) {
            -    debug('pause');
            -    this._readableState.flowing = false;
            -    this.emit('pause');
            -  }
            -  return this;
            -};
            - 
            -function flow(stream) {
            -  var state = stream._readableState;
            -  debug('flow', state.flowing);
            -  if (state.flowing) {
            -    do {
            -      var chunk = stream.read();
            -    } while (null !== chunk && state.flowing);
            -  }
            -}
            - 
            -// wrap an old-style stream as the async data source.
            -// This is *not* part of the readable stream interface.
            -// It is an ugly unfortunate mess of history.
            -Readable.prototype.wrap = function (stream) {
            -  var state = this._readableState;
            -  var paused = false;
            - 
            -  var self = this;
            -  stream.on('end', function () {
            -    debug('wrapped end');
            -    Iif (state.decoder && !state.ended) {
            -      var chunk = state.decoder.end();
            -      if (chunk && chunk.length) self.push(chunk);
            -    }
            - 
            -    self.push(null);
            -  });
            - 
            -  stream.on('data', function (chunk) {
            -    debug('wrapped data');
            -    if (state.decoder) chunk = state.decoder.write(chunk);
            - 
            -    // don't skip over falsy values in objectMode
            -    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
            - 
            -    var ret = self.push(chunk);
            -    if (!ret) {
            -      paused = true;
            -      stream.pause();
            -    }
            -  });
            - 
            -  // proxy all the other methods.
            -  // important when wrapping filters and duplexes.
            -  for (var i in stream) {
            -    Iif (this[i] === undefined && typeof stream[i] === 'function') {
            -      this[i] = function (method) {
            -        return function () {
            -          return stream[method].apply(stream, arguments);
            -        };
            -      }(i);
            -    }
            -  }
            - 
            -  // proxy certain important events.
            -  var events = ['error', 'close', 'destroy', 'pause', 'resume'];
            -  forEach(events, function (ev) {
            -    stream.on(ev, self.emit.bind(self, ev));
            -  });
            - 
            -  // when we try to consume some more bytes, simply unpause the
            -  // underlying stream.
            -  self._read = function (n) {
            -    debug('wrapped _read', n);
            -    if (paused) {
            -      paused = false;
            -      stream.resume();
            -    }
            -  };
            - 
            -  return self;
            -};
            - 
            -// exposed for testing purposes only.
            -Readable._fromList = fromList;
            - 
            -// Pluck off n bytes from an array of buffers.
            -// Length is the combined lengths of all the buffers in the list.
            -function fromList(n, state) {
            -  var list = state.buffer;
            -  var length = state.length;
            -  var stringMode = !!state.decoder;
            -  var objectMode = !!state.objectMode;
            -  var ret;
            - 
            -  // nothing in the list, definitely empty.
            -  if (list.length === 0) return null;
            - 
            -  Iif (length === 0) ret = null;else if (objectMode) ret = list.shift();else if (!n || n >= length) {
            -    // read it all, truncate the array.
            -    if (stringMode) ret = list.join('');else if (list.length === 1) ret = list[0];else ret = Buffer.concat(list, length);
            -    list.length = 0;
            -  } else {
            -    // read just some of it.
            -    if (n < list[0].length) {
            -      // just take a part of the first list item.
            -      // slice is the same for buffers and strings.
            -      var buf = list[0];
            -      ret = buf.slice(0, n);
            -      list[0] = buf.slice(n);
            -    } else if (n === list[0].length) {
            -      // first list is a perfect match
            -      ret = list.shift();
            -    } else {
            -      // complex case.
            -      // we have enough to cover it, but it spans past the first buffer.
            -      if (stringMode) ret = '';else ret = bufferShim.allocUnsafe(n);
            - 
            -      var c = 0;
            -      for (var i = 0, l = list.length; i < l && c < n; i++) {
            -        var _buf = list[0];
            -        var cpy = Math.min(n - c, _buf.length);
            - 
            -        if (stringMode) ret += _buf.slice(0, cpy);else _buf.copy(ret, c, 0, cpy);
            - 
            -        if (cpy < _buf.length) list[0] = _buf.slice(cpy);else list.shift();
            - 
            -        c += cpy;
            -      }
            -    }
            -  }
            - 
            -  return ret;
            -}
            - 
            -function endReadable(stream) {
            -  var state = stream._readableState;
            - 
            -  // If we get here before consuming all the bytes, then that is a
            -  // bug in node.  Should never happen.
            -  Iif (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
            - 
            -  if (!state.endEmitted) {
            -    state.ended = true;
            -    processNextTick(endReadableNT, state, stream);
            -  }
            -}
            - 
            -function endReadableNT(state, stream) {
            -  // Check that we didn't get one last unshift.
            -  if (!state.endEmitted && state.length === 0) {
            -    state.endEmitted = true;
            -    stream.readable = false;
            -    stream.emit('end');
            -  }
            -}
            - 
            -function forEach(xs, f) {
            -  for (var i = 0, l = xs.length; i < l; i++) {
            -    f(xs[i], i);
            -  }
            -}
            - 
            -function indexOf(xs, x) {
            -  for (var i = 0, l = xs.length; i < l; i++) {
            -    if (xs[i] === x) return i;
            -  }
            -  return -1;
            -}
            -
            -
            - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html deleted file mode 100644 index 3542da4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html +++ /dev/null @@ -1,602 +0,0 @@ - - - - Code coverage report for lib/_stream_transform.js - - - - - - - -
            -
            -

            - all files / lib/ _stream_transform.js -

            -
            -
            - 92.11% - Statements - 70/76 -
            -
            - 84.21% - Branches - 32/38 -
            -
            - 90.91% - Functions - 10/11 -
            -
            - 98.48% - Lines - 65/66 -
            -
            -
            -
            -
            
            -
            -
            1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -49× -  -49× -  -  -49× -49× -  -  -49× -  -49× -24× -116× -  -  -24× -24× -24× -24× -24× -  -  -49× -116× -116× -  -116× -  -116× -  -116× -116× -  -116× -  -116× -  -116× -116× -116× -113× -  -  -  -49× -24× -  -24× -  -24× -  -  -24× -  -  -24× -  -  -  -  -24× -  -24× -13× -  -13× -  -  -24× -19× - -17× -  -  -  -49× -127× -127× -  -  -  -  -  -  -  -  -  -  -  -  -49× -  -  -  -49× -117× -117× -117× -117× -117× -117× -117× -  -  -  -  -  -  -49× -310× -  -310× -116× -116× -  -  -  -194× -  -  -  -49× -19× -  -  -  -19× -19× -  -19× -  -19× -  -19× - 
            // a transform stream is a readable/writable stream where you do
            -// something with the data.  Sometimes it's called a "filter",
            -// but that's not a great name for it, since that implies a thing where
            -// some bits pass through, and others are simply ignored.  (That would
            -// be a valid example of a transform, of course.)
            -//
            -// While the output is causally related to the input, it's not a
            -// necessarily symmetric or synchronous transformation.  For example,
            -// a zlib stream might take multiple plain-text writes(), and then
            -// emit a single compressed chunk some time in the future.
            -//
            -// Here's how this works:
            -//
            -// The Transform stream has all the aspects of the readable and writable
            -// stream classes.  When you write(chunk), that calls _write(chunk,cb)
            -// internally, and returns false if there's a lot of pending writes
            -// buffered up.  When you call read(), that calls _read(n) until
            -// there's enough pending readable data buffered up.
            -//
            -// In a transform stream, the written data is placed in a buffer.  When
            -// _read(n) is called, it transforms the queued up data, calling the
            -// buffered _write cb's as it consumes chunks.  If consuming a single
            -// written chunk would result in multiple output chunks, then the first
            -// outputted bit calls the readcb, and subsequent chunks just go into
            -// the read buffer, and will cause it to emit 'readable' if necessary.
            -//
            -// This way, back-pressure is actually determined by the reading side,
            -// since _read has to be called to start processing a new chunk.  However,
            -// a pathological inflate type of transform can cause excessive buffering
            -// here.  For example, imagine a stream where every byte of input is
            -// interpreted as an integer from 0-255, and then results in that many
            -// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in
            -// 1kb of data being output.  In this case, you could write a very small
            -// amount of input, and end up with a very large amount of output.  In
            -// such a pathological inflating mechanism, there'd be no way to tell
            -// the system to stop doing the transform.  A single 4MB write could
            -// cause the system to run out of memory.
            -//
            -// However, even in such a pathological case, only a single written chunk
            -// would be consumed, and then the rest would wait (un-transformed) until
            -// the results of the previous transformed chunk were consumed.
            - 
            -'use strict';
            - 
            -module.exports = Transform;
            - 
            -var Duplex = require('./_stream_duplex');
            - 
            -/*<replacement>*/
            -var util = require('core-util-is');
            -util.inherits = require('inherits');
            -/*</replacement>*/
            - 
            -util.inherits(Transform, Duplex);
            - 
            -function TransformState(stream) {
            -  this.afterTransform = function (er, data) {
            -    return afterTransform(stream, er, data);
            -  };
            - 
            -  this.needTransform = false;
            -  this.transforming = false;
            -  this.writecb = null;
            -  this.writechunk = null;
            -  this.writeencoding = null;
            -}
            - 
            -function afterTransform(stream, er, data) {
            -  var ts = stream._transformState;
            -  ts.transforming = false;
            - 
            -  var cb = ts.writecb;
            - 
            -  Iif (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
            - 
            -  ts.writechunk = null;
            -  ts.writecb = null;
            - 
            -  if (data !== null && data !== undefined) stream.push(data);
            - 
            -  cb(er);
            - 
            -  var rs = stream._readableState;
            -  rs.reading = false;
            -  if (rs.needReadable || rs.length < rs.highWaterMark) {
            -    stream._read(rs.highWaterMark);
            -  }
            -}
            - 
            -function Transform(options) {
            -  Iif (!(this instanceof Transform)) return new Transform(options);
            - 
            -  Duplex.call(this, options);
            - 
            -  this._transformState = new TransformState(this);
            - 
            -  // when the writable side finishes, then flush out anything remaining.
            -  var stream = this;
            - 
            -  // start out asking for a readable event once data is transformed.
            -  this._readableState.needReadable = true;
            - 
            -  // we have implemented the _read method, and done the other things
            -  // that Readable wants before the first _read call, so unset the
            -  // sync guard flag.
            -  this._readableState.sync = false;
            - 
            -  if (options) {
            -    if (typeof options.transform === 'function') this._transform = options.transform;
            - 
            -    if (typeof options.flush === 'function') this._flush = options.flush;
            -  }
            - 
            -  this.once('prefinish', function () {
            -    if (typeof this._flush === 'function') this._flush(function (er) {
            -      done(stream, er);
            -    });else done(stream);
            -  });
            -}
            - 
            -Transform.prototype.push = function (chunk, encoding) {
            -  this._transformState.needTransform = false;
            -  return Duplex.prototype.push.call(this, chunk, encoding);
            -};
            - 
            -// This is the part where you do stuff!
            -// override this function in implementation classes.
            -// 'chunk' is an input chunk.
            -//
            -// Call `push(newChunk)` to pass along transformed output
            -// to the readable side.  You may call 'push' zero or more times.
            -//
            -// Call `cb(err)` when you are done with this chunk.  If you pass
            -// an error, then that'll put the hurt on the whole operation.  If you
            -// never call cb(), then you'll never get another chunk.
            -Transform.prototype._transform = function (chunk, encoding, cb) {
            -  throw new Error('Not implemented');
            -};
            - 
            -Transform.prototype._write = function (chunk, encoding, cb) {
            -  var ts = this._transformState;
            -  ts.writecb = cb;
            -  ts.writechunk = chunk;
            -  ts.writeencoding = encoding;
            -  Eif (!ts.transforming) {
            -    var rs = this._readableState;
            -    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
            -  }
            -};
            - 
            -// Doesn't matter what the args are here.
            -// _transform does all the work.
            -// That we got here means that the readable side wants more data.
            -Transform.prototype._read = function (n) {
            -  var ts = this._transformState;
            - 
            -  if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
            -    ts.transforming = true;
            -    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
            -  } else {
            -    // mark that we need a transform, so that any data that comes in
            -    // will get processed, now that we've asked for it.
            -    ts.needTransform = true;
            -  }
            -};
            - 
            -function done(stream, er) {
            -  Iif (er) return stream.emit('error', er);
            - 
            -  // if there's nothing in the write buffer, then that means
            -  // that nothing more will ever be provided
            -  var ws = stream._writableState;
            -  var ts = stream._transformState;
            - 
            -  Iif (ws.length) throw new Error('Calling transform done when ws.length != 0');
            - 
            -  Iif (ts.transforming) throw new Error('Calling transform done when still transforming');
            - 
            -  return stream.push(null);
            -}
            -
            -
            - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_writable.js.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_writable.js.html deleted file mode 100644 index 0b200c9e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_writable.js.html +++ /dev/null @@ -1,1640 +0,0 @@ - - - - Code coverage report for lib/_stream_writable.js - - - - - - - -
            -
            -

            - all files / lib/ _stream_writable.js -

            -
            -
            - 95.52% - Statements - 277/290 -
            -
            - 94% - Branches - 141/150 -
            -
            - 90.91% - Functions - 30/33 -
            -
            - 96.58% - Lines - 254/263 -
            -
            -
            -
            -
            
            -
            -
            1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 -499 -500 -501 -502 -503 -504 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526  -  -  -  -  -  -49× -  -  -49× -  -  -  -49× -  -  -49× -  -  -49× -49× -  -  -  -49× -  -  -  -  -  -49× -49× -49× -49× -  -49× -  -  -  -  -49× -  -49× -  -  -49× -  -49× -  -49× -2305× -2305× -2305× -2305× -  -  -49× -49× -96× -  -96× -  -  -  -96× -  -96× -  -  -  -  -96× -96× -96× -  -  -96× -  -96× -  -96× -  -96× -  -96× -  -  -  -  -96× -96× -  -  -  -  -96× -  -  -  -  -96× -  -  -96× -  -  -96× -  -  -  -  -  -96× -  -  -  -  -96× -  -  -96× -4574× -  -  -  -96× -  -  -96× -  -96× -96× -  -  -  -96× -  -  -  -96× -  -  -96× -  -  -96× -  -  -  -96× -  -  -49× - - - - - -  - -  -  -49× -49× -49× -  -  -  -  -  -  -  -49× -49× -97× -  -  -  -97× -  -96× -  -  -96× -  -96× -50× -  -50× -  -  -96× -  -  -  -49× - -  -  -49× - -  - - -  -  -  -  -  -  -  -49× -4625× -4625× -  -  -  -4625× - -4623× - -  -4625× - - - -  -4623× -  -  -49× -4626× -4626× -  -4626× -59× -59× -  -  -4626× -  -4626× -  -4626× -4621× -4621× -  -  -4624× -  -  -49× -13× -  -13× -  -  -49× -13× -  -13× -13× -  -13× -  -  -  -49× -  - - - - -  -  -49× -4621× -2273× -  -4621× -  -  -  -  -  -49× -4621× -  -4621× -4621× -  -4621× -  -4621× -  -4621× -  -4621× -2305× -2305× -2305× -2265× -  -40× -  -2305× -  -2316× -  -  -4621× -  -  -49× -4582× -4582× -4582× -4582× -4582× -4582× -  -  -49× -  -  -  -  -  -  -  -49× -4574× -4574× -4574× -4574× -  -  -49× -4574× -4574× -4574× -  -4574× -  -4574× -  -4574× -  -4574× -2254× -  -  -4574× -  -2230× -  -  -2344× -  -  -  -  -49× -4574× -4574× -4574× -4574× -  -  -  -  -  -49× -4557× -27× -27× -  -  -  -  -49× -2263× -2263× -  -2263× -  - - - - -  - - -42× -42× -42× -  -  - -  -  -  - - - -  -  -  - -  -  -  -2254× -2257× -2257× -2257× -2257× -  -2257× -2257× -  -  -  -  -2257× -2252× -  -  -  -2254× -  -  -2263× -2263× -2263× -  -  -49× -  -  -  -49× -  -49× -65× -  -65× -11× -11× -11× -54× - - -  -  -65× -  -  -65× - - -  -  -  -65× -  -  -49× -9209× -  -  -49× -125× -57× -57× -  -  -  -49× -4635× -4635× -125× -57× -57× -57× -  -68× -  -  -4635× -  -  -49× -61× -61× -61× -13× -  -61× -61× -  -  -  -  -49× -105× -  -105× -105× -  -105× - - - -40× -40× -40× -40× -  - - -  -  -  -  - 
            // A bit simpler than readable streams.
            -// Implement an async ._write(chunk, encoding, cb), and it'll handle all
            -// the drain event emission and buffering.
            - 
            -'use strict';
            - 
            -module.exports = Writable;
            - 
            -/*<replacement>*/
            -var processNextTick = require('process-nextick-args');
            -/*</replacement>*/
            - 
            -/*<replacement>*/
            -var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
            -/*</replacement>*/
            - 
            -Writable.WritableState = WritableState;
            - 
            -/*<replacement>*/
            -var util = require('core-util-is');
            -util.inherits = require('inherits');
            -/*</replacement>*/
            - 
            -/*<replacement>*/
            -var internalUtil = {
            -  deprecate: require('util-deprecate')
            -};
            -/*</replacement>*/
            - 
            -/*<replacement>*/
            -var Stream;
            -(function () {
            -  try {
            -    Stream = require('st' + 'ream');
            -  } catch (_) {} finally {
            -    Iif (!Stream) Stream = require('events').EventEmitter;
            -  }
            -})();
            -/*</replacement>*/
            - 
            -var Buffer = require('buffer').Buffer;
            -/*<replacement>*/
            -var bufferShim = require('buffer-shims');
            -/*</replacement>*/
            - 
            -util.inherits(Writable, Stream);
            - 
            -function nop() {}
            - 
            -function WriteReq(chunk, encoding, cb) {
            -  this.chunk = chunk;
            -  this.encoding = encoding;
            -  this.callback = cb;
            -  this.next = null;
            -}
            - 
            -var Duplex;
            -function WritableState(options, stream) {
            -  Duplex = Duplex || require('./_stream_duplex');
            - 
            -  options = options || {};
            - 
            -  // object stream flag to indicate whether or not this stream
            -  // contains buffers or objects.
            -  this.objectMode = !!options.objectMode;
            - 
            -  if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
            - 
            -  // the point at which write() starts returning false
            -  // Note: 0 is a valid value, means that we always return false if
            -  // the entire buffer is not flushed immediately on write()
            -  var hwm = options.highWaterMark;
            -  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
            -  this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
            - 
            -  // cast to ints.
            -  this.highWaterMark = ~ ~this.highWaterMark;
            - 
            -  this.needDrain = false;
            -  // at the start of calling end()
            -  this.ending = false;
            -  // when end() has been called, and returned
            -  this.ended = false;
            -  // when 'finish' is emitted
            -  this.finished = false;
            - 
            -  // should we decode strings into buffers before passing to _write?
            -  // this is here so that some node-core streams can optimize string
            -  // handling at a lower level.
            -  var noDecode = options.decodeStrings === false;
            -  this.decodeStrings = !noDecode;
            - 
            -  // Crypto is kind of old and crusty.  Historically, its default string
            -  // encoding is 'binary' so we have to make this configurable.
            -  // Everything else in the universe uses 'utf8', though.
            -  this.defaultEncoding = options.defaultEncoding || 'utf8';
            - 
            -  // not an actual buffer we keep track of, but a measurement
            -  // of how much we're waiting to get pushed to some underlying
            -  // socket or file.
            -  this.length = 0;
            - 
            -  // a flag to see when we're in the middle of a write.
            -  this.writing = false;
            - 
            -  // when true all writes will be buffered until .uncork() call
            -  this.corked = 0;
            - 
            -  // a flag to be able to tell if the onwrite cb is called immediately,
            -  // or on a later tick.  We set this to true at first, because any
            -  // actions that shouldn't happen until "later" should generally also
            -  // not happen before the first write call.
            -  this.sync = true;
            - 
            -  // a flag to know if we're processing previously buffered items, which
            -  // may call the _write() callback in the same tick, so that we don't
            -  // end up in an overlapped onwrite situation.
            -  this.bufferProcessing = false;
            - 
            -  // the callback that's passed to _write(chunk,cb)
            -  this.onwrite = function (er) {
            -    onwrite(stream, er);
            -  };
            - 
            -  // the callback that the user supplies to write(chunk,encoding,cb)
            -  this.writecb = null;
            - 
            -  // the amount that is being written when _write is called.
            -  this.writelen = 0;
            - 
            -  this.bufferedRequest = null;
            -  this.lastBufferedRequest = null;
            - 
            -  // number of pending user-supplied write callbacks
            -  // this must be 0 before 'finish' can be emitted
            -  this.pendingcb = 0;
            - 
            -  // emit prefinish if the only thing we're waiting for is _write cbs
            -  // This is relevant for synchronous Transform streams
            -  this.prefinished = false;
            - 
            -  // True if the error was already emitted and should not be thrown again
            -  this.errorEmitted = false;
            - 
            -  // count buffered requests
            -  this.bufferedRequestCount = 0;
            - 
            -  // allocate the first CorkedRequest, there is always
            -  // one allocated and free to use, and we maintain at most two
            -  this.corkedRequestsFree = new CorkedRequest(this);
            -}
            - 
            -WritableState.prototype.getBuffer = function writableStateGetBuffer() {
            -  var current = this.bufferedRequest;
            -  var out = [];
            -  while (current) {
            -    out.push(current);
            -    current = current.next;
            -  }
            -  return out;
            -};
            - 
            -(function () {
            -  try {
            -    Object.defineProperty(WritableState.prototype, 'buffer', {
            -      get: internalUtil.deprecate(function () {
            -        return this.getBuffer();
            -      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
            -    });
            -  } catch (_) {}
            -})();
            - 
            -var Duplex;
            -function Writable(options) {
            -  Duplex = Duplex || require('./_stream_duplex');
            - 
            -  // Writable ctor is applied to Duplexes, though they're not
            -  // instanceof Writable, they're instanceof Readable.
            -  if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
            - 
            -  this._writableState = new WritableState(options, this);
            - 
            -  // legacy.
            -  this.writable = true;
            - 
            -  if (options) {
            -    if (typeof options.write === 'function') this._write = options.write;
            - 
            -    if (typeof options.writev === 'function') this._writev = options.writev;
            -  }
            - 
            -  Stream.call(this);
            -}
            - 
            -// Otherwise people can pipe Writable streams, which is just wrong.
            -Writable.prototype.pipe = function () {
            -  this.emit('error', new Error('Cannot pipe, not readable'));
            -};
            - 
            -function writeAfterEnd(stream, cb) {
            -  var er = new Error('write after end');
            -  // TODO: defer error events consistently everywhere, not just the cb
            -  stream.emit('error', er);
            -  processNextTick(cb, er);
            -}
            - 
            -// If we get something that is not a buffer, string, null, or undefined,
            -// and we're not in objectMode, then that's an error.
            -// Otherwise stream chunks are all considered to be of length=1, and the
            -// watermarks determine how many objects to keep in the buffer, rather than
            -// how many bytes or characters.
            -function validChunk(stream, state, chunk, cb) {
            -  var valid = true;
            -  var er = false;
            -  // Always throw error if a null is written
            -  // if we are not in object mode then throw
            -  // if it is not a buffer, string, or undefined.
            -  if (chunk === null) {
            -    er = new TypeError('May not write null values to stream');
            -  } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
            -    er = new TypeError('Invalid non-string/buffer chunk');
            -  }
            -  if (er) {
            -    stream.emit('error', er);
            -    processNextTick(cb, er);
            -    valid = false;
            -  }
            -  return valid;
            -}
            - 
            -Writable.prototype.write = function (chunk, encoding, cb) {
            -  var state = this._writableState;
            -  var ret = false;
            - 
            -  if (typeof encoding === 'function') {
            -    cb = encoding;
            -    encoding = null;
            -  }
            - 
            -  if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
            - 
            -  if (typeof cb !== 'function') cb = nop;
            - 
            -  if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
            -    state.pendingcb++;
            -    ret = writeOrBuffer(this, state, chunk, encoding, cb);
            -  }
            - 
            -  return ret;
            -};
            - 
            -Writable.prototype.cork = function () {
            -  var state = this._writableState;
            - 
            -  state.corked++;
            -};
            - 
            -Writable.prototype.uncork = function () {
            -  var state = this._writableState;
            - 
            -  Eif (state.corked) {
            -    state.corked--;
            - 
            -    if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
            -  }
            -};
            - 
            -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
            -  // node::ParseEncoding() requires lower case.
            -  if (typeof encoding === 'string') encoding = encoding.toLowerCase();
            -  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
            -  this._writableState.defaultEncoding = encoding;
            -  return this;
            -};
            - 
            -function decodeChunk(state, chunk, encoding) {
            -  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
            -    chunk = bufferShim.from(chunk, encoding);
            -  }
            -  return chunk;
            -}
            - 
            -// if we're already writing something, then just put this
            -// in the queue, and wait our turn.  Otherwise, call _write
            -// If we return false, then we need a drain event, so set that flag.
            -function writeOrBuffer(stream, state, chunk, encoding, cb) {
            -  chunk = decodeChunk(state, chunk, encoding);
            - 
            -  if (Buffer.isBuffer(chunk)) encoding = 'buffer';
            -  var len = state.objectMode ? 1 : chunk.length;
            - 
            -  state.length += len;
            - 
            -  var ret = state.length < state.highWaterMark;
            -  // we must ensure that previous needDrain will not be reset to false.
            -  if (!ret) state.needDrain = true;
            - 
            -  if (state.writing || state.corked) {
            -    var last = state.lastBufferedRequest;
            -    state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
            -    if (last) {
            -      last.next = state.lastBufferedRequest;
            -    } else {
            -      state.bufferedRequest = state.lastBufferedRequest;
            -    }
            -    state.bufferedRequestCount += 1;
            -  } else {
            -    doWrite(stream, state, false, len, chunk, encoding, cb);
            -  }
            - 
            -  return ret;
            -}
            - 
            -function doWrite(stream, state, writev, len, chunk, encoding, cb) {
            -  state.writelen = len;
            -  state.writecb = cb;
            -  state.writing = true;
            -  state.sync = true;
            -  if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
            -  state.sync = false;
            -}
            - 
            -function onwriteError(stream, state, sync, er, cb) {
            -  --state.pendingcb;
            -  if (sync) processNextTick(cb, er);else cb(er);
            - 
            -  stream._writableState.errorEmitted = true;
            -  stream.emit('error', er);
            -}
            - 
            -function onwriteStateUpdate(state) {
            -  state.writing = false;
            -  state.writecb = null;
            -  state.length -= state.writelen;
            -  state.writelen = 0;
            -}
            - 
            -function onwrite(stream, er) {
            -  var state = stream._writableState;
            -  var sync = state.sync;
            -  var cb = state.writecb;
            - 
            -  onwriteStateUpdate(state);
            - 
            -  Iif (er) onwriteError(stream, state, sync, er, cb);else {
            -    // Check if we're actually ready to finish, but don't emit yet
            -    var finished = needFinish(state);
            - 
            -    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
            -      clearBuffer(stream, state);
            -    }
            - 
            -    if (sync) {
            -      /*<replacement>*/
            -      asyncWrite(afterWrite, stream, state, finished, cb);
            -      /*</replacement>*/
            -    } else {
            -        afterWrite(stream, state, finished, cb);
            -      }
            -  }
            -}
            - 
            -function afterWrite(stream, state, finished, cb) {
            -  if (!finished) onwriteDrain(stream, state);
            -  state.pendingcb--;
            -  cb();
            -  finishMaybe(stream, state);
            -}
            - 
            -// Must force callback to be called on nextTick, so that we don't
            -// emit 'drain' before the write() consumer gets the 'false' return
            -// value, and has a chance to attach a 'drain' listener.
            -function onwriteDrain(stream, state) {
            -  if (state.length === 0 && state.needDrain) {
            -    state.needDrain = false;
            -    stream.emit('drain');
            -  }
            -}
            - 
            -// if there's something in the buffer waiting, then process it
            -function clearBuffer(stream, state) {
            -  state.bufferProcessing = true;
            -  var entry = state.bufferedRequest;
            - 
            -  if (stream._writev && entry && entry.next) {
            -    // Fast case, write everything using _writev()
            -    var l = state.bufferedRequestCount;
            -    var buffer = new Array(l);
            -    var holder = state.corkedRequestsFree;
            -    holder.entry = entry;
            - 
            -    var count = 0;
            -    while (entry) {
            -      buffer[count] = entry;
            -      entry = entry.next;
            -      count += 1;
            -    }
            - 
            -    doWrite(stream, state, true, state.length, buffer, '', holder.finish);
            - 
            -    // doWrite is almost always async, defer these to save a bit of time
            -    // as the hot path ends with doWrite
            -    state.pendingcb++;
            -    state.lastBufferedRequest = null;
            -    Iif (holder.next) {
            -      state.corkedRequestsFree = holder.next;
            -      holder.next = null;
            -    } else {
            -      state.corkedRequestsFree = new CorkedRequest(state);
            -    }
            -  } else {
            -    // Slow case, write chunks one-by-one
            -    while (entry) {
            -      var chunk = entry.chunk;
            -      var encoding = entry.encoding;
            -      var cb = entry.callback;
            -      var len = state.objectMode ? 1 : chunk.length;
            - 
            -      doWrite(stream, state, false, len, chunk, encoding, cb);
            -      entry = entry.next;
            -      // if we didn't call the onwrite immediately, then
            -      // it means that we need to wait until it does.
            -      // also, that means that the chunk and cb are currently
            -      // being processed, so move the buffer counter past them.
            -      if (state.writing) {
            -        break;
            -      }
            -    }
            - 
            -    if (entry === null) state.lastBufferedRequest = null;
            -  }
            - 
            -  state.bufferedRequestCount = 0;
            -  state.bufferedRequest = entry;
            -  state.bufferProcessing = false;
            -}
            - 
            -Writable.prototype._write = function (chunk, encoding, cb) {
            -  cb(new Error('not implemented'));
            -};
            - 
            -Writable.prototype._writev = null;
            - 
            -Writable.prototype.end = function (chunk, encoding, cb) {
            -  var state = this._writableState;
            - 
            -  if (typeof chunk === 'function') {
            -    cb = chunk;
            -    chunk = null;
            -    encoding = null;
            -  } else if (typeof encoding === 'function') {
            -    cb = encoding;
            -    encoding = null;
            -  }
            - 
            -  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
            - 
            -  // .end() fully uncorks
            -  if (state.corked) {
            -    state.corked = 1;
            -    this.uncork();
            -  }
            - 
            -  // ignore unnecessary end() calls.
            -  if (!state.ending && !state.finished) endWritable(this, state, cb);
            -};
            - 
            -function needFinish(state) {
            -  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
            -}
            - 
            -function prefinish(stream, state) {
            -  if (!state.prefinished) {
            -    state.prefinished = true;
            -    stream.emit('prefinish');
            -  }
            -}
            - 
            -function finishMaybe(stream, state) {
            -  var need = needFinish(state);
            -  if (need) {
            -    if (state.pendingcb === 0) {
            -      prefinish(stream, state);
            -      state.finished = true;
            -      stream.emit('finish');
            -    } else {
            -      prefinish(stream, state);
            -    }
            -  }
            -  return need;
            -}
            - 
            -function endWritable(stream, state, cb) {
            -  state.ending = true;
            -  finishMaybe(stream, state);
            -  if (cb) {
            -    if (state.finished) processNextTick(cb);else stream.once('finish', cb);
            -  }
            -  state.ended = true;
            -  stream.writable = false;
            -}
            - 
            -// It seems a linked list but it is not
            -// there will be only 2 of these for each stream
            -function CorkedRequest(state) {
            -  var _this = this;
            - 
            -  this.next = null;
            -  this.entry = null;
            - 
            -  this.finish = function (err) {
            -    var entry = _this.entry;
            -    _this.entry = null;
            -    while (entry) {
            -      var cb = entry.callback;
            -      state.pendingcb--;
            -      cb(err);
            -      entry = entry.next;
            -    }
            -    Eif (state.corkedRequestsFree) {
            -      state.corkedRequestsFree.next = _this;
            -    } else {
            -      state.corkedRequestsFree = _this;
            -    }
            -  };
            -}
            -
            -
            - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/index.html deleted file mode 100644 index 5240d877..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/lib/index.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - Code coverage report for lib/ - - - - - - - -
            -
            -

            - all files lib/ -

            -
            -
            - 90.63% - Statements - 851/939 -
            -
            - 87.94% - Branches - 496/564 -
            -
            - 86.54% - Functions - 90/104 -
            -
            - 92.73% - Lines - 765/825 -
            -
            -
            -
            -
            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            FileStatementsBranchesFunctionsLines
            _stream_duplex.js
            69.23%27/3968.18%15/2240%2/575.76%25/33
            _stream_passthrough.js
            90.91%10/1150%1/2100%2/2100%10/10
            _stream_readable.js
            89.29%467/52387.22%307/35286.79%46/5390.73%411/453
            _stream_transform.js
            92.11%70/7684.21%32/3890.91%10/1198.48%65/66
            _stream_writable.js
            95.52%277/29094%141/15090.91%30/3396.58%254/263
            -
            -
            - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/prettify.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/prettify.css deleted file mode 100644 index b317a7cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/prettify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/prettify.js deleted file mode 100644 index ef51e038..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/prettify.js +++ /dev/null @@ -1 +0,0 @@ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/sort-arrow-sprite.png b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/sort-arrow-sprite.png deleted file mode 100644 index 03f704a6..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/sort-arrow-sprite.png and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/sorter.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/sorter.js deleted file mode 100644 index 6c5034e4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov-report/sorter.js +++ /dev/null @@ -1,158 +0,0 @@ -var addSorting = (function () { - "use strict"; - var cols, - currentSort = { - index: 0, - desc: false - }; - - // returns the summary table element - function getTable() { return document.querySelector('.coverage-summary'); } - // returns the thead element of the summary table - function getTableHeader() { return getTable().querySelector('thead tr'); } - // returns the tbody element of the summary table - function getTableBody() { return getTable().querySelector('tbody'); } - // returns the th element for nth column - function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; } - - // loads all columns - function loadColumns() { - var colNodes = getTableHeader().querySelectorAll('th'), - colNode, - cols = [], - col, - i; - - for (i = 0; i < colNodes.length; i += 1) { - colNode = colNodes[i]; - col = { - key: colNode.getAttribute('data-col'), - sortable: !colNode.getAttribute('data-nosort'), - type: colNode.getAttribute('data-type') || 'string' - }; - cols.push(col); - if (col.sortable) { - col.defaultDescSort = col.type === 'number'; - colNode.innerHTML = colNode.innerHTML + ''; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function (a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function (a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function () { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i =0 ; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function () { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(cols); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov.info b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov.info deleted file mode 100644 index d0012ea3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/coverage/lcov.info +++ /dev/null @@ -1,1642 +0,0 @@ -TN: -SF:/Users/cmetcalf/projects/readable-stream/lib/_stream_readable.js -FN:18,(anonymous_1) -FN:25,(anonymous_2) -FN:50,(anonymous_3) -FN:60,prependListener -FN:72,ReadableState -FN:139,Readable -FN:158,(anonymous_7) -FN:173,(anonymous_8) -FN:178,(anonymous_9) -FN:182,readableAddChunk -FN:237,needMoreData -FN:242,(anonymous_12) -FN:251,computeNewHighWaterMark -FN:267,howMuchToRead -FN:299,(anonymous_15) -FN:399,chunkInvalid -FN:407,onEofChunk -FN:425,emitReadable -FN:435,emitReadable_ -FN:447,maybeReadMore -FN:454,maybeReadMore_ -FN:470,(anonymous_22) -FN:474,(anonymous_23) -FN:498,onunpipe -FN:505,onend -FN:518,cleanup -FN:541,ondata -FN:559,onerror -FN:570,onclose -FN:575,onfinish -FN:582,unpipe -FN:599,pipeOnDrain -FN:600,(anonymous_33) -FN:611,(anonymous_34) -FN:662,(anonymous_35) -FN:689,nReadingNextTick -FN:696,(anonymous_37) -FN:706,resume -FN:713,resume_ -FN:725,(anonymous_40) -FN:735,flow -FN:748,(anonymous_42) -FN:753,(anonymous_43) -FN:763,(anonymous_44) -FN:781,(anonymous_45) -FN:782,(anonymous_46) -FN:791,(anonymous_47) -FN:797,(anonymous_48) -FN:813,fromList -FN:860,endReadable -FN:873,endReadableNT -FN:882,forEach -FN:888,indexOf -FNF:53 -FNH:46 -FNDA:269,(anonymous_1) -FNDA:49,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:38,prependListener -FNDA:82,ReadableState -FNDA:84,Readable -FNDA:276927,(anonymous_7) -FNDA:41,(anonymous_8) -FNDA:4,(anonymous_9) -FNDA:276968,readableAddChunk -FNDA:276966,needMoreData -FNDA:5,(anonymous_12) -FNDA:4,computeNewHighWaterMark -FNDA:554235,howMuchToRead -FNDA:277657,(anonymous_15) -FNDA:276968,chunkInvalid -FNDA:67,onEofChunk -FNDA:276722,emitReadable -FNDA:1123,emitReadable_ -FNDA:276881,maybeReadMore -FNDA:225,maybeReadMore_ -FNDA:0,(anonymous_22) -FNDA:38,(anonymous_23) -FNDA:25,onunpipe -FNDA:12,onend -FNDA:24,cleanup -FNDA:395,ondata -FNDA:5,onerror -FNDA:0,onclose -FNDA:6,onfinish -FNDA:11,unpipe -FNDA:38,pipeOnDrain -FNDA:265,(anonymous_33) -FNDA:27,(anonymous_34) -FNDA:226,(anonymous_35) -FNDA:25,nReadingNextTick -FNDA:57,(anonymous_37) -FNDA:56,resume -FNDA:42,resume_ -FNDA:272,(anonymous_40) -FNDA:1428,flow -FNDA:1,(anonymous_42) -FNDA:1,(anonymous_43) -FNDA:0,(anonymous_44) -FNDA:0,(anonymous_45) -FNDA:0,(anonymous_46) -FNDA:5,(anonymous_47) -FNDA:0,(anonymous_48) -FNDA:757,fromList -FNDA:316,endReadable -FNDA:314,endReadableNT -FNDA:1,forEach -FNDA:2,indexOf -DA:3,49 -DA:6,49 -DA:10,49 -DA:13,49 -DA:16,49 -DA:18,49 -DA:19,269 -DA:24,49 -DA:25,49 -DA:26,49 -DA:27,49 -DA:29,49 -DA:34,49 -DA:36,49 -DA:40,49 -DA:41,49 -DA:45,49 -DA:46,49 -DA:47,49 -DA:48,49 -DA:50,0 -DA:54,49 -DA:56,49 -DA:58,49 -DA:60,49 -DA:61,38 -DA:68,38 -DA:71,49 -DA:72,49 -DA:73,82 -DA:75,82 -DA:79,82 -DA:81,82 -DA:85,82 -DA:86,82 -DA:87,82 -DA:90,82 -DA:92,82 -DA:93,82 -DA:94,82 -DA:95,82 -DA:96,82 -DA:97,82 -DA:98,82 -DA:99,82 -DA:105,82 -DA:109,82 -DA:110,82 -DA:111,82 -DA:112,82 -DA:117,82 -DA:121,82 -DA:124,82 -DA:127,82 -DA:129,82 -DA:130,82 -DA:131,82 -DA:132,10 -DA:133,10 -DA:134,10 -DA:138,49 -DA:139,49 -DA:140,84 -DA:142,84 -DA:144,82 -DA:147,82 -DA:149,82 -DA:151,82 -DA:158,49 -DA:159,276927 -DA:161,276927 -DA:162,37 -DA:163,37 -DA:164,10 -DA:165,10 -DA:169,276927 -DA:173,49 -DA:174,41 -DA:175,41 -DA:178,49 -DA:179,4 -DA:182,49 -DA:183,276968 -DA:184,276968 -DA:185,0 -DA:186,276968 -DA:187,67 -DA:188,67 -DA:189,276901 -DA:190,276883 -DA:191,1 -DA:192,1 -DA:193,276882 -DA:194,1 -DA:195,1 -DA:197,276881 -DA:198,276881 -DA:199,23 -DA:200,23 -DA:203,276881 -DA:207,276881 -DA:209,276875 -DA:210,108 -DA:211,108 -DA:214,276767 -DA:215,276767 -DA:217,276767 -DA:221,276881 -DA:223,18 -DA:224,9 -DA:227,276966 -DA:237,49 -DA:238,276966 -DA:242,49 -DA:243,5 -DA:244,5 -DA:245,5 -DA:246,5 -DA:250,49 -DA:251,49 -DA:252,4 -DA:253,0 -DA:256,4 -DA:257,4 -DA:258,4 -DA:259,4 -DA:260,4 -DA:261,4 -DA:262,4 -DA:264,4 -DA:267,49 -DA:268,554235 -DA:270,553951 -DA:272,553860 -DA:274,421 -DA:277,553439 -DA:283,2087 -DA:286,2087 -DA:287,1711 -DA:288,1697 -DA:289,1697 -DA:291,14 -DA:295,376 -DA:299,49 -DA:300,277657 -DA:301,277657 -DA:302,277657 -DA:304,277657 -DA:309,277657 -DA:310,6 -DA:311,6 -DA:312,6 -DA:315,277651 -DA:318,277651 -DA:319,279 -DA:320,279 -DA:346,277372 -DA:347,277372 -DA:350,277372 -DA:351,277365 -DA:352,277365 -DA:357,277372 -DA:358,556 -DA:359,556 -DA:362,277372 -DA:363,276809 -DA:364,276809 -DA:365,276809 -DA:367,276809 -DA:369,276809 -DA:370,276809 -DA:375,277372 -DA:377,277372 -DA:378,277372 -DA:380,277372 -DA:381,276627 -DA:382,276627 -DA:385,277372 -DA:389,277372 -DA:392,277372 -DA:394,277372 -DA:396,277372 -DA:399,49 -DA:400,276968 -DA:401,276968 -DA:402,0 -DA:404,276968 -DA:407,49 -DA:408,67 -DA:409,59 -DA:410,14 -DA:411,14 -DA:412,4 -DA:413,4 -DA:416,59 -DA:419,59 -DA:425,49 -DA:426,276722 -DA:427,276722 -DA:428,276722 -DA:429,1123 -DA:430,1123 -DA:431,1123 -DA:435,49 -DA:436,1123 -DA:437,1123 -DA:438,1123 -DA:447,49 -DA:448,276881 -DA:449,225 -DA:450,225 -DA:454,49 -DA:455,225 -DA:456,225 -DA:457,275597 -DA:458,275597 -DA:459,275597 -DA:461,275571 -DA:463,225 -DA:470,49 -DA:471,0 -DA:474,49 -DA:475,38 -DA:476,38 -DA:478,38 -DA:480,37 -DA:481,37 -DA:483,1 -DA:484,1 -DA:486,0 -DA:487,0 -DA:489,38 -DA:490,38 -DA:492,38 -DA:494,38 -DA:495,38 -DA:497,38 -DA:498,49 -DA:499,25 -DA:500,25 -DA:501,24 -DA:505,49 -DA:506,12 -DA:507,12 -DA:514,38 -DA:515,38 -DA:517,38 -DA:518,49 -DA:519,24 -DA:521,24 -DA:522,24 -DA:523,24 -DA:524,24 -DA:525,24 -DA:526,24 -DA:527,24 -DA:528,24 -DA:530,24 -DA:537,24 -DA:540,38 -DA:541,49 -DA:542,395 -DA:543,395 -DA:544,395 -DA:549,264 -DA:550,263 -DA:551,263 -DA:553,264 -DA:559,49 -DA:560,5 -DA:561,5 -DA:562,5 -DA:563,5 -DA:567,38 -DA:570,49 -DA:571,0 -DA:572,0 -DA:574,38 -DA:575,49 -DA:576,6 -DA:577,6 -DA:578,6 -DA:580,38 -DA:582,49 -DA:583,11 -DA:584,11 -DA:588,38 -DA:591,38 -DA:592,12 -DA:593,12 -DA:596,38 -DA:599,49 -DA:600,38 -DA:601,265 -DA:602,265 -DA:603,265 -DA:604,265 -DA:605,263 -DA:606,263 -DA:611,49 -DA:612,27 -DA:615,27 -DA:618,24 -DA:620,24 -DA:622,24 -DA:625,24 -DA:626,24 -DA:627,24 -DA:628,24 -DA:629,24 -DA:634,0 -DA:636,0 -DA:637,0 -DA:638,0 -DA:639,0 -DA:640,0 -DA:642,0 -DA:643,0 -DA:644,0 -DA:648,0 -DA:649,0 -DA:651,0 -DA:652,0 -DA:653,0 -DA:655,0 -DA:657,0 -DA:662,49 -DA:663,226 -DA:667,226 -DA:668,36 -DA:671,226 -DA:672,38 -DA:673,38 -DA:674,28 -DA:675,28 -DA:676,28 -DA:677,28 -DA:678,25 -DA:679,3 -DA:680,1 -DA:685,226 -DA:687,49 -DA:689,49 -DA:690,25 -DA:691,25 -DA:696,49 -DA:697,57 -DA:698,57 -DA:699,56 -DA:700,56 -DA:701,56 -DA:703,57 -DA:706,49 -DA:707,56 -DA:708,42 -DA:709,42 -DA:713,49 -DA:714,42 -DA:715,38 -DA:716,38 -DA:719,42 -DA:720,42 -DA:721,42 -DA:722,42 -DA:725,49 -DA:726,272 -DA:727,272 -DA:728,270 -DA:729,270 -DA:730,270 -DA:732,272 -DA:735,49 -DA:736,1428 -DA:737,1428 -DA:738,1428 -DA:739,345 -DA:740,395 -DA:748,49 -DA:749,1 -DA:750,1 -DA:752,1 -DA:753,1 -DA:754,1 -DA:755,1 -DA:756,0 -DA:757,0 -DA:760,1 -DA:763,1 -DA:764,0 -DA:765,0 -DA:768,0 -DA:770,0 -DA:771,0 -DA:772,0 -DA:773,0 -DA:779,1 -DA:780,16 -DA:781,0 -DA:782,0 -DA:783,0 -DA:790,1 -DA:791,1 -DA:792,5 -DA:797,1 -DA:798,0 -DA:799,0 -DA:800,0 -DA:801,0 -DA:805,1 -DA:809,49 -DA:813,49 -DA:814,757 -DA:815,757 -DA:816,757 -DA:817,757 -DA:818,757 -DA:821,757 -DA:823,753 -DA:825,280 -DA:826,280 -DA:829,434 -DA:832,114 -DA:833,114 -DA:834,114 -DA:835,320 -DA:837,264 -DA:841,56 -DA:843,56 -DA:844,56 -DA:845,186 -DA:846,186 -DA:848,186 -DA:850,186 -DA:852,186 -DA:857,753 -DA:860,49 -DA:861,316 -DA:865,316 -DA:867,316 -DA:868,314 -DA:869,314 -DA:873,49 -DA:875,314 -DA:876,54 -DA:877,54 -DA:878,54 -DA:882,49 -DA:883,1 -DA:884,5 -DA:888,49 -DA:889,2 -DA:890,3 -DA:892,0 -LF:453 -LH:411 -BRDA:29,1,0,0 -BRDA:29,1,1,49 -BRDA:47,2,0,49 -BRDA:47,2,1,0 -BRDA:47,3,0,49 -BRDA:47,3,1,49 -BRDA:61,4,0,0 -BRDA:61,4,1,38 -BRDA:68,5,0,33 -BRDA:68,5,1,5 -BRDA:68,6,0,38 -BRDA:68,6,1,38 -BRDA:68,7,0,0 -BRDA:68,7,1,5 -BRDA:73,8,0,82 -BRDA:73,8,1,0 -BRDA:75,9,0,82 -BRDA:75,9,1,40 -BRDA:81,10,0,25 -BRDA:81,10,1,57 -BRDA:81,11,0,25 -BRDA:81,11,1,17 -BRDA:86,12,0,19 -BRDA:86,12,1,63 -BRDA:87,13,0,15 -BRDA:87,13,1,67 -BRDA:87,14,0,82 -BRDA:87,14,1,67 -BRDA:117,15,0,82 -BRDA:117,15,1,82 -BRDA:131,16,0,10 -BRDA:131,16,1,72 -BRDA:132,17,0,6 -BRDA:132,17,1,4 -BRDA:140,18,0,84 -BRDA:140,18,1,39 -BRDA:142,19,0,2 -BRDA:142,19,1,82 -BRDA:149,20,0,1 -BRDA:149,20,1,81 -BRDA:149,21,0,82 -BRDA:149,21,1,42 -BRDA:161,22,0,37 -BRDA:161,22,1,276890 -BRDA:161,23,0,276927 -BRDA:161,23,1,276819 -BRDA:162,24,0,37 -BRDA:162,24,1,37 -BRDA:163,25,0,10 -BRDA:163,25,1,27 -BRDA:184,26,0,0 -BRDA:184,26,1,276968 -BRDA:186,27,0,67 -BRDA:186,27,1,276901 -BRDA:189,28,0,276883 -BRDA:189,28,1,18 -BRDA:189,29,0,276901 -BRDA:189,29,1,276810 -BRDA:189,29,2,276810 -BRDA:190,30,0,1 -BRDA:190,30,1,276882 -BRDA:190,31,0,276883 -BRDA:190,31,1,3 -BRDA:193,32,0,1 -BRDA:193,32,1,276881 -BRDA:193,33,0,276882 -BRDA:193,33,1,1 -BRDA:198,34,0,23 -BRDA:198,34,1,276858 -BRDA:198,35,0,276881 -BRDA:198,35,1,50 -BRDA:198,35,2,50 -BRDA:200,36,0,23 -BRDA:200,36,1,23 -BRDA:203,37,0,276850 -BRDA:203,37,1,31 -BRDA:207,38,0,276875 -BRDA:207,38,1,6 -BRDA:209,39,0,108 -BRDA:209,39,1,276767 -BRDA:209,40,0,276875 -BRDA:209,40,1,152 -BRDA:209,40,2,143 -BRDA:214,41,0,51 -BRDA:214,41,1,276716 -BRDA:215,42,0,31 -BRDA:215,42,1,276736 -BRDA:217,43,0,276660 -BRDA:217,43,1,107 -BRDA:223,44,0,9 -BRDA:223,44,1,9 -BRDA:238,45,0,276966 -BRDA:238,45,1,276896 -BRDA:238,45,2,276704 -BRDA:238,45,3,64 -BRDA:243,46,0,1 -BRDA:243,46,1,4 -BRDA:252,47,0,0 -BRDA:252,47,1,4 -BRDA:268,48,0,284 -BRDA:268,48,1,553951 -BRDA:268,49,0,554235 -BRDA:268,49,1,715 -BRDA:270,50,0,91 -BRDA:270,50,1,553860 -BRDA:270,51,0,46 -BRDA:270,51,1,45 -BRDA:272,52,0,421 -BRDA:272,52,1,553439 -BRDA:272,53,0,553860 -BRDA:272,53,1,553860 -BRDA:274,54,0,304 -BRDA:274,54,1,117 -BRDA:274,55,0,421 -BRDA:274,55,1,353 -BRDA:277,56,0,551352 -BRDA:277,56,1,2087 -BRDA:283,57,0,4 -BRDA:283,57,1,2083 -BRDA:286,58,0,1711 -BRDA:286,58,1,376 -BRDA:287,59,0,1697 -BRDA:287,59,1,14 -BRDA:304,60,0,1859 -BRDA:304,60,1,275798 -BRDA:304,61,0,277657 -BRDA:304,61,1,277162 -BRDA:309,62,0,6 -BRDA:309,62,1,277651 -BRDA:309,63,0,277657 -BRDA:309,63,1,275798 -BRDA:309,63,2,275735 -BRDA:309,63,3,275734 -BRDA:311,64,0,4 -BRDA:311,64,1,2 -BRDA:311,65,0,6 -BRDA:311,65,1,4 -BRDA:318,66,0,279 -BRDA:318,66,1,277372 -BRDA:318,67,0,277651 -BRDA:318,67,1,277088 -BRDA:319,68,0,277 -BRDA:319,68,1,2 -BRDA:350,69,0,277365 -BRDA:350,69,1,7 -BRDA:350,70,0,277372 -BRDA:350,70,1,276947 -BRDA:357,71,0,556 -BRDA:357,71,1,276816 -BRDA:357,72,0,277372 -BRDA:357,72,1,277056 -BRDA:362,73,0,276809 -BRDA:362,73,1,563 -BRDA:367,74,0,349 -BRDA:367,74,1,276460 -BRDA:375,75,0,276584 -BRDA:375,75,1,788 -BRDA:375,76,0,277372 -BRDA:375,76,1,276809 -BRDA:378,77,0,749 -BRDA:378,77,1,276623 -BRDA:380,78,0,276627 -BRDA:380,78,1,745 -BRDA:389,79,0,454 -BRDA:389,79,1,276918 -BRDA:389,80,0,277372 -BRDA:389,80,1,492 -BRDA:392,81,0,35 -BRDA:392,81,1,277337 -BRDA:392,82,0,277372 -BRDA:392,82,1,1242 -BRDA:392,82,2,307 -BRDA:394,83,0,745 -BRDA:394,83,1,276627 -BRDA:401,84,0,0 -BRDA:401,84,1,276968 -BRDA:401,85,0,276968 -BRDA:401,85,1,185 -BRDA:401,85,2,131 -BRDA:401,85,3,64 -BRDA:401,85,4,64 -BRDA:408,86,0,8 -BRDA:408,86,1,59 -BRDA:409,87,0,14 -BRDA:409,87,1,45 -BRDA:411,88,0,4 -BRDA:411,88,1,10 -BRDA:411,89,0,14 -BRDA:411,89,1,4 -BRDA:413,90,0,0 -BRDA:413,90,1,4 -BRDA:428,91,0,1123 -BRDA:428,91,1,275599 -BRDA:431,92,0,1003 -BRDA:431,92,1,120 -BRDA:448,93,0,225 -BRDA:448,93,1,276656 -BRDA:456,94,0,275796 -BRDA:456,94,1,275697 -BRDA:456,94,2,275647 -BRDA:456,94,3,275626 -BRDA:459,95,0,26 -BRDA:459,95,1,275571 -BRDA:478,96,0,37 -BRDA:478,96,1,1 -BRDA:478,96,2,0 -BRDA:492,97,0,38 -BRDA:492,97,1,1 -BRDA:492,97,2,37 -BRDA:492,97,3,36 -BRDA:494,98,0,36 -BRDA:494,98,1,2 -BRDA:495,99,0,1 -BRDA:495,99,1,37 -BRDA:500,100,0,24 -BRDA:500,100,1,1 -BRDA:537,101,0,1 -BRDA:537,101,1,23 -BRDA:537,102,0,24 -BRDA:537,102,1,1 -BRDA:537,102,2,1 -BRDA:544,103,0,264 -BRDA:544,103,1,131 -BRDA:549,104,0,263 -BRDA:549,104,1,1 -BRDA:549,105,0,264 -BRDA:549,105,1,262 -BRDA:549,105,2,3 -BRDA:549,105,3,2 -BRDA:549,105,4,263 -BRDA:563,106,0,2 -BRDA:563,106,1,3 -BRDA:591,107,0,12 -BRDA:591,107,1,26 -BRDA:603,108,0,261 -BRDA:603,108,1,4 -BRDA:604,109,0,263 -BRDA:604,109,1,2 -BRDA:604,110,0,265 -BRDA:604,110,1,264 -BRDA:615,111,0,3 -BRDA:615,111,1,24 -BRDA:618,112,0,24 -BRDA:618,112,1,0 -BRDA:620,113,0,0 -BRDA:620,113,1,24 -BRDA:620,114,0,24 -BRDA:620,114,1,24 -BRDA:622,115,0,0 -BRDA:622,115,1,24 -BRDA:628,116,0,24 -BRDA:628,116,1,0 -BRDA:634,117,0,0 -BRDA:634,117,1,0 -BRDA:649,118,0,0 -BRDA:649,118,1,0 -BRDA:653,119,0,0 -BRDA:653,119,1,0 -BRDA:667,120,0,36 -BRDA:667,120,1,190 -BRDA:667,121,0,226 -BRDA:667,121,1,48 -BRDA:671,122,0,38 -BRDA:671,122,1,188 -BRDA:671,123,0,226 -BRDA:671,123,1,38 -BRDA:673,124,0,28 -BRDA:673,124,1,10 -BRDA:677,125,0,25 -BRDA:677,125,1,3 -BRDA:679,126,0,1 -BRDA:679,126,1,2 -BRDA:698,127,0,56 -BRDA:698,127,1,1 -BRDA:707,128,0,42 -BRDA:707,128,1,14 -BRDA:714,129,0,38 -BRDA:714,129,1,4 -BRDA:722,130,0,12 -BRDA:722,130,1,30 -BRDA:722,131,0,42 -BRDA:722,131,1,27 -BRDA:727,132,0,270 -BRDA:727,132,1,2 -BRDA:738,133,0,345 -BRDA:738,133,1,1083 -BRDA:741,134,0,395 -BRDA:741,134,1,310 -BRDA:755,135,0,0 -BRDA:755,135,1,1 -BRDA:755,136,0,1 -BRDA:755,136,1,0 -BRDA:757,137,0,0 -BRDA:757,137,1,0 -BRDA:757,138,0,0 -BRDA:757,138,1,0 -BRDA:765,139,0,0 -BRDA:765,139,1,0 -BRDA:768,140,0,0 -BRDA:768,140,1,0 -BRDA:768,141,0,0 -BRDA:768,141,1,0 -BRDA:768,141,2,0 -BRDA:768,142,0,0 -BRDA:768,142,1,0 -BRDA:768,143,0,0 -BRDA:768,143,1,0 -BRDA:768,143,2,0 -BRDA:771,144,0,0 -BRDA:771,144,1,0 -BRDA:780,145,0,0 -BRDA:780,145,1,16 -BRDA:780,146,0,16 -BRDA:780,146,1,1 -BRDA:799,147,0,0 -BRDA:799,147,1,0 -BRDA:821,148,0,4 -BRDA:821,148,1,753 -BRDA:823,149,0,0 -BRDA:823,149,1,753 -BRDA:823,150,0,39 -BRDA:823,150,1,714 -BRDA:823,151,0,280 -BRDA:823,151,1,434 -BRDA:823,152,0,714 -BRDA:823,152,1,714 -BRDA:825,153,0,21 -BRDA:825,153,1,259 -BRDA:825,154,0,66 -BRDA:825,154,1,193 -BRDA:829,155,0,114 -BRDA:829,155,1,320 -BRDA:835,156,0,264 -BRDA:835,156,1,56 -BRDA:841,157,0,1 -BRDA:841,157,1,55 -BRDA:844,158,0,242 -BRDA:844,158,1,219 -BRDA:848,159,0,2 -BRDA:848,159,1,184 -BRDA:850,160,0,39 -BRDA:850,160,1,147 -BRDA:865,161,0,0 -BRDA:865,161,1,316 -BRDA:867,162,0,314 -BRDA:867,162,1,2 -BRDA:875,163,0,54 -BRDA:875,163,1,260 -BRDA:875,164,0,314 -BRDA:875,164,1,54 -BRDA:890,165,0,2 -BRDA:890,165,1,1 -BRF:352 -BRH:307 -end_of_record -TN: -SF:/Users/cmetcalf/projects/readable-stream/lib/_stream_writable.js -FN:32,(anonymous_1) -FN:48,nop -FN:50,WriteReq -FN:58,WritableState -FN:121,(anonymous_5) -FN:153,writableStateGetBuffer -FN:163,(anonymous_7) -FN:166,(anonymous_8) -FN:174,Writable -FN:196,(anonymous_10) -FN:200,writeAfterEnd -FN:212,validChunk -FN:231,(anonymous_13) -FN:252,(anonymous_14) -FN:258,(anonymous_15) -FN:268,setDefaultEncoding -FN:276,decodeChunk -FN:286,writeOrBuffer -FN:314,doWrite -FN:323,onwriteError -FN:331,onwriteStateUpdate -FN:338,onwrite -FN:363,afterWrite -FN:373,onwriteDrain -FN:381,clearBuffer -FN:438,(anonymous_26) -FN:444,(anonymous_27) -FN:468,needFinish -FN:472,prefinish -FN:479,finishMaybe -FN:493,endWritable -FN:505,CorkedRequest -FN:511,(anonymous_33) -FNF:33 -FNH:30 -FNDA:49,(anonymous_1) -FNDA:2512,nop -FNDA:2305,WriteReq -FNDA:96,WritableState -FNDA:4574,(anonymous_5) -FNDA:1,writableStateGetBuffer -FNDA:49,(anonymous_7) -FNDA:0,(anonymous_8) -FNDA:97,Writable -FNDA:1,(anonymous_10) -FNDA:1,writeAfterEnd -FNDA:4625,validChunk -FNDA:4626,(anonymous_13) -FNDA:13,(anonymous_14) -FNDA:13,(anonymous_15) -FNDA:3,setDefaultEncoding -FNDA:4621,decodeChunk -FNDA:4621,writeOrBuffer -FNDA:4582,doWrite -FNDA:0,onwriteError -FNDA:4574,onwriteStateUpdate -FNDA:4574,onwrite -FNDA:4574,afterWrite -FNDA:4557,onwriteDrain -FNDA:2263,clearBuffer -FNDA:0,(anonymous_26) -FNDA:65,(anonymous_27) -FNDA:9209,needFinish -FNDA:125,prefinish -FNDA:4635,finishMaybe -FNDA:61,endWritable -FNDA:105,CorkedRequest -FNDA:8,(anonymous_33) -DA:7,49 -DA:10,49 -DA:14,49 -DA:17,49 -DA:20,49 -DA:21,49 -DA:25,49 -DA:31,49 -DA:32,49 -DA:33,49 -DA:34,49 -DA:36,49 -DA:41,49 -DA:43,49 -DA:46,49 -DA:48,49 -DA:50,49 -DA:51,2305 -DA:52,2305 -DA:53,2305 -DA:54,2305 -DA:57,49 -DA:58,49 -DA:59,96 -DA:61,96 -DA:65,96 -DA:67,96 -DA:72,96 -DA:73,96 -DA:74,96 -DA:77,96 -DA:79,96 -DA:81,96 -DA:83,96 -DA:85,96 -DA:90,96 -DA:91,96 -DA:96,96 -DA:101,96 -DA:104,96 -DA:107,96 -DA:113,96 -DA:118,96 -DA:121,96 -DA:122,4574 -DA:126,96 -DA:129,96 -DA:131,96 -DA:132,96 -DA:136,96 -DA:140,96 -DA:143,96 -DA:146,96 -DA:150,96 -DA:153,49 -DA:154,1 -DA:155,1 -DA:156,1 -DA:157,5 -DA:158,5 -DA:160,1 -DA:163,49 -DA:164,49 -DA:165,49 -DA:167,0 -DA:173,49 -DA:174,49 -DA:175,97 -DA:179,97 -DA:181,96 -DA:184,96 -DA:186,96 -DA:187,50 -DA:189,50 -DA:192,96 -DA:196,49 -DA:197,1 -DA:200,49 -DA:201,1 -DA:203,1 -DA:204,1 -DA:212,49 -DA:213,4625 -DA:214,4625 -DA:218,4625 -DA:219,2 -DA:220,4623 -DA:221,2 -DA:223,4625 -DA:224,4 -DA:225,2 -DA:226,2 -DA:228,4623 -DA:231,49 -DA:232,4626 -DA:233,4626 -DA:235,4626 -DA:236,59 -DA:237,59 -DA:240,4626 -DA:242,4626 -DA:244,4626 -DA:245,4621 -DA:246,4621 -DA:249,4624 -DA:252,49 -DA:253,13 -DA:255,13 -DA:258,49 -DA:259,13 -DA:261,13 -DA:262,13 -DA:264,13 -DA:268,49 -DA:270,3 -DA:271,3 -DA:272,2 -DA:273,2 -DA:276,49 -DA:277,4621 -DA:278,2273 -DA:280,4621 -DA:286,49 -DA:287,4621 -DA:289,4621 -DA:290,4621 -DA:292,4621 -DA:294,4621 -DA:296,4621 -DA:298,4621 -DA:299,2305 -DA:300,2305 -DA:301,2305 -DA:302,2265 -DA:304,40 -DA:306,2305 -DA:308,2316 -DA:311,4621 -DA:314,49 -DA:315,4582 -DA:316,4582 -DA:317,4582 -DA:318,4582 -DA:319,4582 -DA:320,4582 -DA:323,49 -DA:324,0 -DA:325,0 -DA:327,0 -DA:328,0 -DA:331,49 -DA:332,4574 -DA:333,4574 -DA:334,4574 -DA:335,4574 -DA:338,49 -DA:339,4574 -DA:340,4574 -DA:341,4574 -DA:343,4574 -DA:345,4574 -DA:347,4574 -DA:349,4574 -DA:350,2254 -DA:353,4574 -DA:355,2230 -DA:358,2344 -DA:363,49 -DA:364,4574 -DA:365,4574 -DA:366,4574 -DA:367,4574 -DA:373,49 -DA:374,4557 -DA:375,27 -DA:376,27 -DA:381,49 -DA:382,2263 -DA:383,2263 -DA:385,2263 -DA:387,9 -DA:388,9 -DA:389,9 -DA:390,9 -DA:392,9 -DA:393,9 -DA:394,42 -DA:395,42 -DA:396,42 -DA:399,9 -DA:403,9 -DA:404,9 -DA:405,9 -DA:406,0 -DA:407,0 -DA:409,9 -DA:413,2254 -DA:414,2257 -DA:415,2257 -DA:416,2257 -DA:417,2257 -DA:419,2257 -DA:420,2257 -DA:425,2257 -DA:426,2252 -DA:430,2254 -DA:433,2263 -DA:434,2263 -DA:435,2263 -DA:438,49 -DA:439,0 -DA:442,49 -DA:444,49 -DA:445,65 -DA:447,65 -DA:448,11 -DA:449,11 -DA:450,11 -DA:451,54 -DA:452,1 -DA:453,1 -DA:456,65 -DA:459,65 -DA:460,5 -DA:461,5 -DA:465,65 -DA:468,49 -DA:469,9209 -DA:472,49 -DA:473,125 -DA:474,57 -DA:475,57 -DA:479,49 -DA:480,4635 -DA:481,4635 -DA:482,125 -DA:483,57 -DA:484,57 -DA:485,57 -DA:487,68 -DA:490,4635 -DA:493,49 -DA:494,61 -DA:495,61 -DA:496,61 -DA:497,13 -DA:499,61 -DA:500,61 -DA:505,49 -DA:506,105 -DA:508,105 -DA:509,105 -DA:511,105 -DA:512,8 -DA:513,8 -DA:514,8 -DA:515,40 -DA:516,40 -DA:517,40 -DA:518,40 -DA:520,8 -DA:521,8 -DA:523,0 -LF:263 -LH:254 -BRDA:14,1,0,0 -BRDA:14,1,1,49 -BRDA:14,2,0,49 -BRDA:14,2,1,49 -BRDA:36,3,0,0 -BRDA:36,3,1,49 -BRDA:59,4,0,96 -BRDA:59,4,1,0 -BRDA:61,5,0,96 -BRDA:61,5,1,46 -BRDA:67,6,0,25 -BRDA:67,6,1,71 -BRDA:67,7,0,25 -BRDA:67,7,1,17 -BRDA:73,8,0,23 -BRDA:73,8,1,73 -BRDA:74,9,0,8 -BRDA:74,9,1,88 -BRDA:74,10,0,96 -BRDA:74,10,1,88 -BRDA:96,11,0,96 -BRDA:96,11,1,96 -BRDA:175,12,0,97 -BRDA:175,12,1,28 -BRDA:179,13,0,1 -BRDA:179,13,1,96 -BRDA:179,14,0,97 -BRDA:179,14,1,26 -BRDA:186,15,0,50 -BRDA:186,15,1,46 -BRDA:187,16,0,1 -BRDA:187,16,1,49 -BRDA:189,17,0,1 -BRDA:189,17,1,49 -BRDA:218,18,0,2 -BRDA:218,18,1,4623 -BRDA:220,19,0,2 -BRDA:220,19,1,4621 -BRDA:220,20,0,4623 -BRDA:220,20,1,2425 -BRDA:220,20,2,61 -BRDA:220,20,3,61 -BRDA:223,21,0,4 -BRDA:223,21,1,4621 -BRDA:235,22,0,59 -BRDA:235,22,1,4567 -BRDA:240,23,0,2198 -BRDA:240,23,1,2428 -BRDA:240,24,0,2301 -BRDA:240,24,1,127 -BRDA:242,25,0,2527 -BRDA:242,25,1,2099 -BRDA:244,26,0,1 -BRDA:244,26,1,4625 -BRDA:244,27,0,4621 -BRDA:244,27,1,2 -BRDA:261,28,0,13 -BRDA:261,28,1,0 -BRDA:264,29,0,9 -BRDA:264,29,1,4 -BRDA:264,30,0,13 -BRDA:264,30,1,13 -BRDA:264,30,2,9 -BRDA:264,30,3,9 -BRDA:264,30,4,9 -BRDA:270,31,0,2 -BRDA:270,31,1,1 -BRDA:271,32,0,1 -BRDA:271,32,1,2 -BRDA:277,33,0,2273 -BRDA:277,33,1,2348 -BRDA:277,34,0,4621 -BRDA:277,34,1,4547 -BRDA:277,34,2,4467 -BRDA:289,35,0,4471 -BRDA:289,35,1,150 -BRDA:290,36,0,74 -BRDA:290,36,1,4547 -BRDA:296,37,0,177 -BRDA:296,37,1,4444 -BRDA:298,38,0,2305 -BRDA:298,38,1,2316 -BRDA:298,39,0,4621 -BRDA:298,39,1,2358 -BRDA:301,40,0,2265 -BRDA:301,40,1,40 -BRDA:319,41,0,9 -BRDA:319,41,1,4573 -BRDA:325,42,0,0 -BRDA:325,42,1,0 -BRDA:345,43,0,0 -BRDA:345,43,1,4574 -BRDA:349,44,0,2254 -BRDA:349,44,1,2320 -BRDA:349,45,0,4574 -BRDA:349,45,1,4557 -BRDA:349,45,2,4557 -BRDA:349,45,3,4544 -BRDA:353,46,0,2230 -BRDA:353,46,1,2344 -BRDA:364,47,0,4557 -BRDA:364,47,1,17 -BRDA:374,48,0,27 -BRDA:374,48,1,4530 -BRDA:374,49,0,4557 -BRDA:374,49,1,2302 -BRDA:385,50,0,9 -BRDA:385,50,1,2254 -BRDA:385,51,0,2263 -BRDA:385,51,1,9 -BRDA:385,51,2,9 -BRDA:405,52,0,0 -BRDA:405,52,1,9 -BRDA:417,53,0,4 -BRDA:417,53,1,2253 -BRDA:425,54,0,2252 -BRDA:425,54,1,5 -BRDA:430,55,0,29 -BRDA:430,55,1,2225 -BRDA:447,56,0,11 -BRDA:447,56,1,54 -BRDA:451,57,0,1 -BRDA:451,57,1,53 -BRDA:456,58,0,10 -BRDA:456,58,1,55 -BRDA:456,59,0,65 -BRDA:456,59,1,54 -BRDA:459,60,0,5 -BRDA:459,60,1,60 -BRDA:465,61,0,61 -BRDA:465,61,1,4 -BRDA:465,62,0,65 -BRDA:465,62,1,61 -BRDA:469,63,0,9209 -BRDA:469,63,1,420 -BRDA:469,63,2,149 -BRDA:469,63,3,146 -BRDA:469,63,4,145 -BRDA:473,64,0,57 -BRDA:473,64,1,68 -BRDA:481,65,0,125 -BRDA:481,65,1,4510 -BRDA:482,66,0,57 -BRDA:482,66,1,68 -BRDA:496,67,0,13 -BRDA:496,67,1,48 -BRDA:497,68,0,1 -BRDA:497,68,1,12 -BRDA:520,69,0,8 -BRDA:520,69,1,0 -BRF:150 -BRH:141 -end_of_record -TN: -SF:/Users/cmetcalf/projects/readable-stream/lib/_stream_duplex.js -FN:10,(anonymous_1) -FN:40,Duplex -FN:57,onend -FN:67,onEndNT -FN:71,forEach -FNF:5 -FNH:2 -FNDA:0,(anonymous_1) -FNDA:25,Duplex -FNDA:18,onend -FNDA:0,onEndNT -FNDA:0,forEach -DA:10,49 -DA:11,0 -DA:12,0 -DA:13,0 -DA:14,0 -DA:18,49 -DA:21,49 -DA:25,49 -DA:26,49 -DA:29,49 -DA:30,49 -DA:32,49 -DA:34,49 -DA:35,49 -DA:36,392 -DA:37,392 -DA:40,49 -DA:41,25 -DA:43,25 -DA:44,25 -DA:46,25 -DA:48,25 -DA:50,25 -DA:51,25 -DA:53,25 -DA:57,49 -DA:60,18 -DA:64,0 -DA:67,49 -DA:68,0 -DA:71,49 -DA:72,0 -DA:73,0 -LF:33 -LH:25 -BRDA:10,1,0,49 -BRDA:10,1,1,0 -BRDA:37,2,0,343 -BRDA:37,2,1,49 -BRDA:41,3,0,0 -BRDA:41,3,1,25 -BRDA:46,4,0,0 -BRDA:46,4,1,25 -BRDA:46,5,0,25 -BRDA:46,5,1,13 -BRDA:48,6,0,0 -BRDA:48,6,1,25 -BRDA:48,7,0,25 -BRDA:48,7,1,13 -BRDA:51,8,0,0 -BRDA:51,8,1,25 -BRDA:51,9,0,25 -BRDA:51,9,1,13 -BRDA:60,10,0,18 -BRDA:60,10,1,0 -BRDA:60,11,0,18 -BRDA:60,11,1,0 -BRF:22 -BRH:15 -end_of_record -TN: -SF:/Users/cmetcalf/projects/readable-stream/lib/_stream_transform.js -FN:56,TransformState -FN:57,(anonymous_2) -FN:68,afterTransform -FN:90,Transform -FN:114,(anonymous_5) -FN:115,(anonymous_6) -FN:121,(anonymous_7) -FN:136,(anonymous_8) -FN:140,(anonymous_9) -FN:154,(anonymous_10) -FN:167,done -FNF:11 -FNH:10 -FNDA:24,TransformState -FNDA:116,(anonymous_2) -FNDA:116,afterTransform -FNDA:24,Transform -FNDA:19,(anonymous_5) -FNDA:2,(anonymous_6) -FNDA:127,(anonymous_7) -FNDA:0,(anonymous_8) -FNDA:117,(anonymous_9) -FNDA:310,(anonymous_10) -FNDA:19,done -DA:45,49 -DA:47,49 -DA:50,49 -DA:51,49 -DA:54,49 -DA:56,49 -DA:57,24 -DA:58,116 -DA:61,24 -DA:62,24 -DA:63,24 -DA:64,24 -DA:65,24 -DA:68,49 -DA:69,116 -DA:70,116 -DA:72,116 -DA:74,116 -DA:76,116 -DA:77,116 -DA:79,116 -DA:81,116 -DA:83,116 -DA:84,116 -DA:85,116 -DA:86,113 -DA:90,49 -DA:91,24 -DA:93,24 -DA:95,24 -DA:98,24 -DA:101,24 -DA:106,24 -DA:108,24 -DA:109,13 -DA:111,13 -DA:114,24 -DA:115,19 -DA:116,2 -DA:117,17 -DA:121,49 -DA:122,127 -DA:123,127 -DA:136,49 -DA:137,0 -DA:140,49 -DA:141,117 -DA:142,117 -DA:143,117 -DA:144,117 -DA:145,117 -DA:146,117 -DA:147,117 -DA:154,49 -DA:155,310 -DA:157,310 -DA:158,116 -DA:159,116 -DA:163,194 -DA:167,49 -DA:168,19 -DA:172,19 -DA:173,19 -DA:175,19 -DA:177,19 -DA:179,19 -LF:66 -LH:65 -BRDA:74,1,0,0 -BRDA:74,1,1,116 -BRDA:79,2,0,61 -BRDA:79,2,1,55 -BRDA:79,3,0,116 -BRDA:79,3,1,116 -BRDA:85,4,0,113 -BRDA:85,4,1,3 -BRDA:85,5,0,116 -BRDA:85,5,1,55 -BRDA:91,6,0,0 -BRDA:91,6,1,24 -BRDA:108,7,0,13 -BRDA:108,7,1,11 -BRDA:109,8,0,1 -BRDA:109,8,1,12 -BRDA:111,9,0,1 -BRDA:111,9,1,12 -BRDA:115,10,0,2 -BRDA:115,10,1,17 -BRDA:145,11,0,117 -BRDA:145,11,1,0 -BRDA:147,12,0,116 -BRDA:147,12,1,1 -BRDA:147,13,0,117 -BRDA:147,13,1,33 -BRDA:147,13,2,11 -BRDA:157,14,0,116 -BRDA:157,14,1,194 -BRDA:157,15,0,310 -BRDA:157,15,1,152 -BRDA:157,15,2,152 -BRDA:168,16,0,0 -BRDA:168,16,1,19 -BRDA:175,17,0,0 -BRDA:175,17,1,19 -BRDA:177,18,0,0 -BRDA:177,18,1,19 -BRF:38 -BRH:32 -end_of_record -TN: -SF:/Users/cmetcalf/projects/readable-stream/lib/_stream_passthrough.js -FN:18,PassThrough -FN:24,(anonymous_2) -FNF:2 -FNH:2 -FNDA:8,PassThrough -FNDA:59,(anonymous_2) -DA:7,49 -DA:9,49 -DA:12,49 -DA:13,49 -DA:16,49 -DA:18,49 -DA:19,8 -DA:21,8 -DA:24,49 -DA:25,59 -LF:10 -LH:10 -BRDA:19,1,0,0 -BRDA:19,1,1,8 -BRF:2 -BRH:1 -end_of_record diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/doc/stream.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/doc/stream.md deleted file mode 100644 index c907ca0e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/doc/stream.md +++ /dev/null @@ -1,1772 +0,0 @@ -# Stream - - Stability: 2 - Stable - -A stream is an abstract interface implemented by various objects in -Node.js. For example a [request to an HTTP server][http-incoming-message] is a -stream, as is [`process.stdout`][]. Streams are readable, writable, or both. All -streams are instances of [`EventEmitter`][]. - -You can load the Stream base classes by doing `require('stream')`. -There are base classes provided for [Readable][] streams, [Writable][] -streams, [Duplex][] streams, and [Transform][] streams. - -This document is split up into 3 sections: - -1. The first section explains the parts of the API that you need to be - aware of to use streams in your programs. -2. The second section explains the parts of the API that you need to - use if you implement your own custom streams yourself. The API is designed to - make this easy for you to do. -3. The third section goes into more depth about how streams work, - including some of the internal mechanisms and functions that you - should probably not modify unless you definitely know what you are - doing. - - -## API for Stream Consumers - - - -Streams can be either [Readable][], [Writable][], or both ([Duplex][]). - -All streams are EventEmitters, but they also have other custom methods -and properties depending on whether they are Readable, Writable, or -Duplex. - -If a stream is both Readable and Writable, then it implements all of -the methods and events. So, a [Duplex][] or [Transform][] stream is -fully described by this API, though their implementation may be -somewhat different. - -It is not necessary to implement Stream interfaces in order to consume -streams in your programs. If you **are** implementing streaming -interfaces in your own program, please also refer to -[API for Stream Implementors][]. - -Almost all Node.js programs, no matter how simple, use Streams in some -way. Here is an example of using Streams in an Node.js program: - -```js -const http = require('http'); - -var server = http.createServer( (req, res) => { - // req is an http.IncomingMessage, which is a Readable Stream - // res is an http.ServerResponse, which is a Writable Stream - - var body = ''; - // we want to get the data as utf8 strings - // If you don't set an encoding, then you'll get Buffer objects - req.setEncoding('utf8'); - - // Readable streams emit 'data' events once a listener is added - req.on('data', (chunk) => { - body += chunk; - }); - - // the end event tells you that you have entire body - req.on('end', () => { - try { - var data = JSON.parse(body); - } catch (er) { - // uh oh! bad json! - res.statusCode = 400; - return res.end(`error: ${er.message}`); - } - - // write back something interesting to the user: - res.write(typeof data); - res.end(); - }); -}); - -server.listen(1337); - -// $ curl localhost:1337 -d '{}' -// object -// $ curl localhost:1337 -d '"foo"' -// string -// $ curl localhost:1337 -d 'not json' -// error: Unexpected token o -``` - -### Class: stream.Duplex - -Duplex streams are streams that implement both the [Readable][] and -[Writable][] interfaces. - -Examples of Duplex streams include: - -* [TCP sockets][] -* [zlib streams][zlib] -* [crypto streams][crypto] - -### Class: stream.Readable - - - -The Readable stream interface is the abstraction for a *source* of -data that you are reading from. In other words, data comes *out* of a -Readable stream. - -A Readable stream will not start emitting data until you indicate that -you are ready to receive it. - -Readable streams have two "modes": a **flowing mode** and a **paused -mode**. When in flowing mode, data is read from the underlying system -and provided to your program as fast as possible. In paused mode, you -must explicitly call [`stream.read()`][stream-read] to get chunks of data out. -Streams start out in paused mode. - -**Note**: If no data event handlers are attached, and there are no -[`stream.pipe()`][] destinations, and the stream is switched into flowing -mode, then data will be lost. - -You can switch to flowing mode by doing any of the following: - -* Adding a [`'data'`][] event handler to listen for data. -* Calling the [`stream.resume()`][stream-resume] method to explicitly open the - flow. -* Calling the [`stream.pipe()`][] method to send the data to a [Writable][]. - -You can switch back to paused mode by doing either of the following: - -* If there are no pipe destinations, by calling the - [`stream.pause()`][stream-pause] method. -* If there are pipe destinations, by removing any [`'data'`][] event - handlers, and removing all pipe destinations by calling the - [`stream.unpipe()`][] method. - -Note that, for backwards compatibility reasons, removing [`'data'`][] -event handlers will **not** automatically pause the stream. Also, if -there are piped destinations, then calling [`stream.pause()`][stream-pause] will -not guarantee that the stream will *remain* paused once those -destinations drain and ask for more data. - -Examples of readable streams include: - -* [HTTP responses, on the client][http-incoming-message] -* [HTTP requests, on the server][http-incoming-message] -* [fs read streams][] -* [zlib streams][zlib] -* [crypto streams][crypto] -* [TCP sockets][] -* [child process stdout and stderr][] -* [`process.stdin`][] - -#### Event: 'close' - -Emitted when the stream and any of its underlying resources (a file -descriptor, for example) have been closed. The event indicates that -no more events will be emitted, and no further computation will occur. - -Not all streams will emit the `'close'` event as the `'close'` event is -optional. - -#### Event: 'data' - -* `chunk` {Buffer|String} The chunk of data. - -Attaching a `'data'` event listener to a stream that has not been -explicitly paused will switch the stream into flowing mode. Data will -then be passed as soon as it is available. - -If you just want to get all the data out of the stream as fast as -possible, this is the best way to do so. - -```js -var readable = getReadableStreamSomehow(); -readable.on('data', (chunk) => { - console.log('got %d bytes of data', chunk.length); -}); -``` - -#### Event: 'end' - -This event fires when there will be no more data to read. - -Note that the `'end'` event **will not fire** unless the data is -completely consumed. This can be done by switching into flowing mode, -or by calling [`stream.read()`][stream-read] repeatedly until you get to the -end. - -```js -var readable = getReadableStreamSomehow(); -readable.on('data', (chunk) => { - console.log('got %d bytes of data', chunk.length); -}); -readable.on('end', () => { - console.log('there will be no more data.'); -}); -``` - -#### Event: 'error' - -* {Error} - -Emitted if there was an error receiving data. - -#### Event: 'readable' - -When a chunk of data can be read from the stream, it will emit a -`'readable'` event. - -In some cases, listening for a `'readable'` event will cause some data -to be read into the internal buffer from the underlying system, if it -hadn't already. - -```javascript -var readable = getReadableStreamSomehow(); -readable.on('readable', () => { - // there is some data to read now -}); -``` - -Once the internal buffer is drained, a `'readable'` event will fire -again when more data is available. - -The `'readable'` event is not emitted in the "flowing" mode with the -sole exception of the last one, on end-of-stream. - -The `'readable'` event indicates that the stream has new information: -either new data is available or the end of the stream has been reached. -In the former case, [`stream.read()`][stream-read] will return that data. In the -latter case, [`stream.read()`][stream-read] will return null. For instance, in -the following example, `foo.txt` is an empty file: - -```js -const fs = require('fs'); -var rr = fs.createReadStream('foo.txt'); -rr.on('readable', () => { - console.log('readable:', rr.read()); -}); -rr.on('end', () => { - console.log('end'); -}); -``` - -The output of running this script is: - -``` -$ node test.js -readable: null -end -``` - -#### readable.isPaused() - -* Return: {Boolean} - -This method returns whether or not the `readable` has been **explicitly** -paused by client code (using [`stream.pause()`][stream-pause] without a -corresponding [`stream.resume()`][stream-resume]). - -```js -var readable = new stream.Readable - -readable.isPaused() // === false -readable.pause() -readable.isPaused() // === true -readable.resume() -readable.isPaused() // === false -``` - -#### readable.pause() - -* Return: `this` - -This method will cause a stream in flowing mode to stop emitting -[`'data'`][] events, switching out of flowing mode. Any data that becomes -available will remain in the internal buffer. - -```js -var readable = getReadableStreamSomehow(); -readable.on('data', (chunk) => { - console.log('got %d bytes of data', chunk.length); - readable.pause(); - console.log('there will be no more data for 1 second'); - setTimeout(() => { - console.log('now data will start flowing again'); - readable.resume(); - }, 1000); -}); -``` - -#### readable.pipe(destination[, options]) - -* `destination` {stream.Writable} The destination for writing data -* `options` {Object} Pipe options - * `end` {Boolean} End the writer when the reader ends. Default = `true` - -This method pulls all the data out of a readable stream, and writes it -to the supplied destination, automatically managing the flow so that -the destination is not overwhelmed by a fast readable stream. - -Multiple destinations can be piped to safely. - -```js -var readable = getReadableStreamSomehow(); -var writable = fs.createWriteStream('file.txt'); -// All the data from readable goes into 'file.txt' -readable.pipe(writable); -``` - -This function returns the destination stream, so you can set up pipe -chains like so: - -```js -var r = fs.createReadStream('file.txt'); -var z = zlib.createGzip(); -var w = fs.createWriteStream('file.txt.gz'); -r.pipe(z).pipe(w); -``` - -For example, emulating the Unix `cat` command: - -```js -process.stdin.pipe(process.stdout); -``` - -By default [`stream.end()`][stream-end] is called on the destination when the -source stream emits [`'end'`][], so that `destination` is no longer writable. -Pass `{ end: false }` as `options` to keep the destination stream open. - -This keeps `writer` open so that "Goodbye" can be written at the -end. - -```js -reader.pipe(writer, { end: false }); -reader.on('end', () => { - writer.end('Goodbye\n'); -}); -``` - -Note that [`process.stderr`][] and [`process.stdout`][] are never closed until -the process exits, regardless of the specified options. - -#### readable.read([size]) - -* `size` {Number} Optional argument to specify how much data to read. -* Return {String|Buffer|Null} - -The `read()` method pulls some data out of the internal buffer and -returns it. If there is no data available, then it will return -`null`. - -If you pass in a `size` argument, then it will return that many -bytes. If `size` bytes are not available, then it will return `null`, -unless we've ended, in which case it will return the data remaining -in the buffer. - -If you do not specify a `size` argument, then it will return all the -data in the internal buffer. - -This method should only be called in paused mode. In flowing mode, -this method is called automatically until the internal buffer is -drained. - -```js -var readable = getReadableStreamSomehow(); -readable.on('readable', () => { - var chunk; - while (null !== (chunk = readable.read())) { - console.log('got %d bytes of data', chunk.length); - } -}); -``` - -If this method returns a data chunk, then it will also trigger the -emission of a [`'data'`][] event. - -Note that calling [`stream.read([size])`][stream-read] after the [`'end'`][] -event has been triggered will return `null`. No runtime error will be raised. - -#### readable.resume() - -* Return: `this` - -This method will cause the readable stream to resume emitting [`'data'`][] -events. - -This method will switch the stream into flowing mode. If you do *not* -want to consume the data from a stream, but you *do* want to get to -its [`'end'`][] event, you can call [`stream.resume()`][stream-resume] to open -the flow of data. - -```js -var readable = getReadableStreamSomehow(); -readable.resume(); -readable.on('end', () => { - console.log('got to the end, but did not read anything'); -}); -``` - -#### readable.setEncoding(encoding) - -* `encoding` {String} The encoding to use. -* Return: `this` - -Call this function to cause the stream to return strings of the specified -encoding instead of Buffer objects. For example, if you do -`readable.setEncoding('utf8')`, then the output data will be interpreted as -UTF-8 data, and returned as strings. If you do `readable.setEncoding('hex')`, -then the data will be encoded in hexadecimal string format. - -This properly handles multi-byte characters that would otherwise be -potentially mangled if you simply pulled the Buffers directly and -called [`buf.toString(encoding)`][] on them. If you want to read the data -as strings, always use this method. - -Also you can disable any encoding at all with `readable.setEncoding(null)`. -This approach is very useful if you deal with binary data or with large -multi-byte strings spread out over multiple chunks. - -```js -var readable = getReadableStreamSomehow(); -readable.setEncoding('utf8'); -readable.on('data', (chunk) => { - assert.equal(typeof chunk, 'string'); - console.log('got %d characters of string data', chunk.length); -}); -``` - -#### readable.unpipe([destination]) - -* `destination` {stream.Writable} Optional specific stream to unpipe - -This method will remove the hooks set up for a previous [`stream.pipe()`][] -call. - -If the destination is not specified, then all pipes are removed. - -If the destination is specified, but no pipe is set up for it, then -this is a no-op. - -```js -var readable = getReadableStreamSomehow(); -var writable = fs.createWriteStream('file.txt'); -// All the data from readable goes into 'file.txt', -// but only for the first second -readable.pipe(writable); -setTimeout(() => { - console.log('stop writing to file.txt'); - readable.unpipe(writable); - console.log('manually close the file stream'); - writable.end(); -}, 1000); -``` - -#### readable.unshift(chunk) - -* `chunk` {Buffer|String} Chunk of data to unshift onto the read queue - -This is useful in certain cases where a stream is being consumed by a -parser, which needs to "un-consume" some data that it has -optimistically pulled out of the source, so that the stream can be -passed on to some other party. - -Note that `stream.unshift(chunk)` cannot be called after the [`'end'`][] event -has been triggered; a runtime error will be raised. - -If you find that you must often call `stream.unshift(chunk)` in your -programs, consider implementing a [Transform][] stream instead. (See [API -for Stream Implementors][].) - -```js -// Pull off a header delimited by \n\n -// use unshift() if we get too much -// Call the callback with (error, header, stream) -const StringDecoder = require('string_decoder').StringDecoder; -function parseHeader(stream, callback) { - stream.on('error', callback); - stream.on('readable', onReadable); - var decoder = new StringDecoder('utf8'); - var header = ''; - function onReadable() { - var chunk; - while (null !== (chunk = stream.read())) { - var str = decoder.write(chunk); - if (str.match(/\n\n/)) { - // found the header boundary - var split = str.split(/\n\n/); - header += split.shift(); - var remaining = split.join('\n\n'); - var buf = Buffer.from(remaining, 'utf8'); - if (buf.length) - stream.unshift(buf); - stream.removeListener('error', callback); - stream.removeListener('readable', onReadable); - // now the body of the message can be read from the stream. - callback(null, header, stream); - } else { - // still reading the header. - header += str; - } - } - } -} -``` - -Note that, unlike [`stream.push(chunk)`][stream-push], `stream.unshift(chunk)` -will not end the reading process by resetting the internal reading state of the -stream. This can cause unexpected results if `unshift()` is called during a -read (i.e. from within a [`stream._read()`][stream-_read] implementation on a -custom stream). Following the call to `unshift()` with an immediate -[`stream.push('')`][stream-push] will reset the reading state appropriately, -however it is best to simply avoid calling `unshift()` while in the process of -performing a read. - -#### readable.wrap(stream) - -* `stream` {Stream} An "old style" readable stream - -Versions of Node.js prior to v0.10 had streams that did not implement the -entire Streams API as it is today. (See [Compatibility][] for -more information.) - -If you are using an older Node.js library that emits [`'data'`][] events and -has a [`stream.pause()`][stream-pause] method that is advisory only, then you -can use the `wrap()` method to create a [Readable][] stream that uses the old -stream as its data source. - -You will very rarely ever need to call this function, but it exists -as a convenience for interacting with old Node.js programs and libraries. - -For example: - -```js -const OldReader = require('./old-api-module.js').OldReader; -const Readable = require('stream').Readable; -const oreader = new OldReader; -const myReader = new Readable().wrap(oreader); - -myReader.on('readable', () => { - myReader.read(); // etc. -}); -``` - -### Class: stream.Transform - -Transform streams are [Duplex][] streams where the output is in some way -computed from the input. They implement both the [Readable][] and -[Writable][] interfaces. - -Examples of Transform streams include: - -* [zlib streams][zlib] -* [crypto streams][crypto] - -### Class: stream.Writable - - - -The Writable stream interface is an abstraction for a *destination* -that you are writing data *to*. - -Examples of writable streams include: - -* [HTTP requests, on the client][] -* [HTTP responses, on the server][] -* [fs write streams][] -* [zlib streams][zlib] -* [crypto streams][crypto] -* [TCP sockets][] -* [child process stdin][] -* [`process.stdout`][], [`process.stderr`][] - -#### Event: 'close' - -Emitted when the stream and any of its underlying resources (a file descriptor, -for example) have been closed. The event indicates that no more events will be -emitted, and no further computation will occur. - -Not all streams will emit the `'close'` event as the `'close'` event is -optional. - -#### Event: 'drain' - -If a [`stream.write(chunk)`][stream-write] call returns `false`, then the -`'drain'` event will indicate when it is appropriate to begin writing more data -to the stream. - -```js -// Write the data to the supplied writable stream one million times. -// Be attentive to back-pressure. -function writeOneMillionTimes(writer, data, encoding, callback) { - var i = 1000000; - write(); - function write() { - var ok = true; - do { - i -= 1; - if (i === 0) { - // last time! - writer.write(data, encoding, callback); - } else { - // see if we should continue, or wait - // don't pass the callback, because we're not done yet. - ok = writer.write(data, encoding); - } - } while (i > 0 && ok); - if (i > 0) { - // had to stop early! - // write some more once it drains - writer.once('drain', write); - } - } -} -``` - -#### Event: 'error' - -* {Error} - -Emitted if there was an error when writing or piping data. - -#### Event: 'finish' - -When the [`stream.end()`][stream-end] method has been called, and all data has -been flushed to the underlying system, this event is emitted. - -```javascript -var writer = getWritableStreamSomehow(); -for (var i = 0; i < 100; i ++) { - writer.write('hello, #${i}!\n'); -} -writer.end('this is the end\n'); -writer.on('finish', () => { - console.error('all writes are now complete.'); -}); -``` - -#### Event: 'pipe' - -* `src` {stream.Readable} source stream that is piping to this writable - -This is emitted whenever the [`stream.pipe()`][] method is called on a readable -stream, adding this writable to its set of destinations. - -```js -var writer = getWritableStreamSomehow(); -var reader = getReadableStreamSomehow(); -writer.on('pipe', (src) => { - console.error('something is piping into the writer'); - assert.equal(src, reader); -}); -reader.pipe(writer); -``` - -#### Event: 'unpipe' - -* `src` {[Readable][] Stream} The source stream that - [unpiped][`stream.unpipe()`] this writable - -This is emitted whenever the [`stream.unpipe()`][] method is called on a -readable stream, removing this writable from its set of destinations. - -```js -var writer = getWritableStreamSomehow(); -var reader = getReadableStreamSomehow(); -writer.on('unpipe', (src) => { - console.error('something has stopped piping into the writer'); - assert.equal(src, reader); -}); -reader.pipe(writer); -reader.unpipe(writer); -``` - -#### writable.cork() - -Forces buffering of all writes. - -Buffered data will be flushed either at [`stream.uncork()`][] or at -[`stream.end()`][stream-end] call. - -#### writable.end([chunk][, encoding][, callback]) - -* `chunk` {String|Buffer} Optional data to write -* `encoding` {String} The encoding, if `chunk` is a String -* `callback` {Function} Optional callback for when the stream is finished - -Call this method when no more data will be written to the stream. If supplied, -the callback is attached as a listener on the [`'finish'`][] event. - -Calling [`stream.write()`][stream-write] after calling -[`stream.end()`][stream-end] will raise an error. - -```js -// write 'hello, ' and then end with 'world!' -var file = fs.createWriteStream('example.txt'); -file.write('hello, '); -file.end('world!'); -// writing more now is not allowed! -``` - -#### writable.setDefaultEncoding(encoding) - -* `encoding` {String} The new default encoding -* Return: `this` - -Sets the default encoding for a writable stream. - -#### writable.uncork() - -Flush all data, buffered since [`stream.cork()`][] call. - -#### writable.write(chunk[, encoding][, callback]) - -* `chunk` {String|Buffer} The data to write -* `encoding` {String} The encoding, if `chunk` is a String -* `callback` {Function} Callback for when this chunk of data is flushed -* Returns: {Boolean} `true` if the data was handled completely. - -This method writes some data to the underlying system, and calls the -supplied callback once the data has been fully handled. If an error -occurs, the callback may or may not be called with the error as its -first argument. To detect write errors, listen for the `'error'` event. - -The return value indicates if you should continue writing right now. -If the data had to be buffered internally, then it will return -`false`. Otherwise, it will return `true`. - -This return value is strictly advisory. You MAY continue to write, -even if it returns `false`. However, writes will be buffered in -memory, so it is best not to do this excessively. Instead, wait for -the [`'drain'`][] event before writing more data. - - -## API for Stream Implementors - - - -To implement any sort of stream, the pattern is the same: - -1. Extend the appropriate parent class in your own subclass. (The - [`util.inherits()`][] method is particularly helpful for this.) -2. Call the appropriate parent class constructor in your constructor, - to be sure that the internal mechanisms are set up properly. -3. Implement one or more specific methods, as detailed below. - -The class to extend and the method(s) to implement depend on the sort -of stream class you are writing: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            -

            Use-case

            -
            -

            Class

            -
            -

            Method(s) to implement

            -
            -

            Reading only

            -
            -

            [Readable](#stream_class_stream_readable_1)

            -
            -

            [_read][stream-_read]

            -
            -

            Writing only

            -
            -

            [Writable](#stream_class_stream_writable_1)

            -
            -

            [_write][stream-_write], [_writev][stream-_writev]

            -
            -

            Reading and writing

            -
            -

            [Duplex](#stream_class_stream_duplex_1)

            -
            -

            [_read][stream-_read], [_write][stream-_write], [_writev][stream-_writev]

            -
            -

            Operate on written data, then read the result

            -
            -

            [Transform](#stream_class_stream_transform_1)

            -
            -

            [_transform][stream-_transform], [_flush][stream-_flush]

            -
            - -In your implementation code, it is very important to never call the methods -described in [API for Stream Consumers][]. Otherwise, you can potentially cause -adverse side effects in programs that consume your streaming interfaces. - -### Class: stream.Duplex - - - -A "duplex" stream is one that is both Readable and Writable, such as a TCP -socket connection. - -Note that `stream.Duplex` is an abstract class designed to be extended -with an underlying implementation of the [`stream._read(size)`][stream-_read] -and [`stream._write(chunk, encoding, callback)`][stream-_write] methods as you -would with a Readable or Writable stream class. - -Since JavaScript doesn't have multiple prototypal inheritance, this class -prototypally inherits from Readable, and then parasitically from Writable. It is -thus up to the user to implement both the low-level -[`stream._read(n)`][stream-_read] method as well as the low-level -[`stream._write(chunk, encoding, callback)`][stream-_write] method on extension -duplex classes. - -#### new stream.Duplex(options) - -* `options` {Object} Passed to both Writable and Readable - constructors. Also has the following fields: - * `allowHalfOpen` {Boolean} Default = `true`. If set to `false`, then - the stream will automatically end the readable side when the - writable side ends and vice versa. - * `readableObjectMode` {Boolean} Default = `false`. Sets `objectMode` - for readable side of the stream. Has no effect if `objectMode` - is `true`. - * `writableObjectMode` {Boolean} Default = `false`. Sets `objectMode` - for writable side of the stream. Has no effect if `objectMode` - is `true`. - -In classes that extend the Duplex class, make sure to call the -constructor so that the buffering settings can be properly -initialized. - -### Class: stream.PassThrough - -This is a trivial implementation of a [Transform][] stream that simply -passes the input bytes across to the output. Its purpose is mainly -for examples and testing, but there are occasionally use cases where -it can come in handy as a building block for novel sorts of streams. - -### Class: stream.Readable - - - -`stream.Readable` is an abstract class designed to be extended with an -underlying implementation of the [`stream._read(size)`][stream-_read] method. - -Please see [API for Stream Consumers][] for how to consume -streams in your programs. What follows is an explanation of how to -implement Readable streams in your programs. - -#### new stream.Readable([options]) - -* `options` {Object} - * `highWaterMark` {Number} The maximum number of bytes to store in - the internal buffer before ceasing to read from the underlying - resource. Default = `16384` (16kb), or `16` for `objectMode` streams - * `encoding` {String} If specified, then buffers will be decoded to - strings using the specified encoding. Default = `null` - * `objectMode` {Boolean} Whether this stream should behave - as a stream of objects. Meaning that [`stream.read(n)`][stream-read] returns - a single value instead of a Buffer of size n. Default = `false` - * `read` {Function} Implementation for the [`stream._read()`][stream-_read] - method. - -In classes that extend the Readable class, make sure to call the -Readable constructor so that the buffering settings can be properly -initialized. - -#### readable.\_read(size) - -* `size` {Number} Number of bytes to read asynchronously - -Note: **Implement this method, but do NOT call it directly.** - -This method is prefixed with an underscore because it is internal to the -class that defines it and should only be called by the internal Readable -class methods. All Readable stream implementations must provide a \_read -method to fetch data from the underlying resource. - -When `_read()` is called, if data is available from the resource, the `_read()` -implementation should start pushing that data into the read queue by calling -[`this.push(dataChunk)`][stream-push]. `_read()` should continue reading from -the resource and pushing data until push returns `false`, at which point it -should stop reading from the resource. Only when `_read()` is called again after -it has stopped should it start reading more data from the resource and pushing -that data onto the queue. - -Note: once the `_read()` method is called, it will not be called again until -the [`stream.push()`][stream-push] method is called. - -The `size` argument is advisory. Implementations where a "read" is a -single call that returns data can use this to know how much data to -fetch. Implementations where that is not relevant, such as TCP or -TLS, may ignore this argument, and simply provide data whenever it -becomes available. There is no need, for example to "wait" until -`size` bytes are available before calling [`stream.push(chunk)`][stream-push]. - -#### readable.push(chunk[, encoding]) - - -* `chunk` {Buffer|Null|String} Chunk of data to push into the read queue -* `encoding` {String} Encoding of String chunks. Must be a valid - Buffer encoding, such as `'utf8'` or `'ascii'` -* return {Boolean} Whether or not more pushes should be performed - -Note: **This method should be called by Readable implementors, NOT -by consumers of Readable streams.** - -If a value other than null is passed, The `push()` method adds a chunk of data -into the queue for subsequent stream processors to consume. If `null` is -passed, it signals the end of the stream (EOF), after which no more data -can be written. - -The data added with `push()` can be pulled out by calling the -[`stream.read()`][stream-read] method when the [`'readable'`][] event fires. - -This API is designed to be as flexible as possible. For example, -you may be wrapping a lower-level source which has some sort of -pause/resume mechanism, and a data callback. In those cases, you -could wrap the low-level source object by doing something like this: - -```js -// source is an object with readStop() and readStart() methods, -// and an `ondata` member that gets called when it has data, and -// an `onend` member that gets called when the data is over. - -util.inherits(SourceWrapper, Readable); - -function SourceWrapper(options) { - Readable.call(this, options); - - this._source = getLowlevelSourceObject(); - - // Every time there's data, we push it into the internal buffer. - this._source.ondata = (chunk) => { - // if push() returns false, then we need to stop reading from source - if (!this.push(chunk)) - this._source.readStop(); - }; - - // When the source ends, we push the EOF-signaling `null` chunk - this._source.onend = () => { - this.push(null); - }; -} - -// _read will be called when the stream wants to pull more data in -// the advisory size argument is ignored in this case. -SourceWrapper.prototype._read = function(size) { - this._source.readStart(); -}; -``` - -#### Example: A Counting Stream - - - -This is a basic example of a Readable stream. It emits the numerals -from 1 to 1,000,000 in ascending order, and then ends. - -```js -const Readable = require('stream').Readable; -const util = require('util'); -util.inherits(Counter, Readable); - -function Counter(opt) { - Readable.call(this, opt); - this._max = 1000000; - this._index = 1; -} - -Counter.prototype._read = function() { - var i = this._index++; - if (i > this._max) - this.push(null); - else { - var str = '' + i; - var buf = Buffer.from(str, 'ascii'); - this.push(buf); - } -}; -``` - -#### Example: SimpleProtocol v1 (Sub-optimal) - -This is similar to the `parseHeader` function described -[here](#stream_readable_unshift_chunk), but implemented as a custom stream. -Also, note that this implementation does not convert the incoming data to a -string. - -However, this would be better implemented as a [Transform][] stream. See -[SimpleProtocol v2][] for a better implementation. - -```js -// A parser for a simple data protocol. -// The "header" is a JSON object, followed by 2 \n characters, and -// then a message body. -// -// NOTE: This can be done more simply as a Transform stream! -// Using Readable directly for this is sub-optimal. See the -// alternative example below under the Transform section. - -const Readable = require('stream').Readable; -const util = require('util'); - -util.inherits(SimpleProtocol, Readable); - -function SimpleProtocol(source, options) { - if (!(this instanceof SimpleProtocol)) - return new SimpleProtocol(source, options); - - Readable.call(this, options); - this._inBody = false; - this._sawFirstCr = false; - - // source is a readable stream, such as a socket or file - this._source = source; - - source.on('end', () => { - this.push(null); - }); - - // give it a kick whenever the source is readable - // read(0) will not consume any bytes - source.on('readable', () => { - this.read(0); - }); - - this._rawHeader = []; - this.header = null; -} - -SimpleProtocol.prototype._read = function(n) { - if (!this._inBody) { - var chunk = this._source.read(); - - // if the source doesn't have data, we don't have data yet. - if (chunk === null) - return this.push(''); - - // check if the chunk has a \n\n - var split = -1; - for (var i = 0; i < chunk.length; i++) { - if (chunk[i] === 10) { // '\n' - if (this._sawFirstCr) { - split = i; - break; - } else { - this._sawFirstCr = true; - } - } else { - this._sawFirstCr = false; - } - } - - if (split === -1) { - // still waiting for the \n\n - // stash the chunk, and try again. - this._rawHeader.push(chunk); - this.push(''); - } else { - this._inBody = true; - var h = chunk.slice(0, split); - this._rawHeader.push(h); - var header = Buffer.concat(this._rawHeader).toString(); - try { - this.header = JSON.parse(header); - } catch (er) { - this.emit('error', new Error('invalid simple protocol data')); - return; - } - // now, because we got some extra data, unshift the rest - // back into the read queue so that our consumer will see it. - var b = chunk.slice(split); - this.unshift(b); - // calling unshift by itself does not reset the reading state - // of the stream; since we're inside _read, doing an additional - // push('') will reset the state appropriately. - this.push(''); - - // and let them know that we are done parsing the header. - this.emit('header', this.header); - } - } else { - // from there on, just provide the data to our consumer. - // careful not to push(null), since that would indicate EOF. - var chunk = this._source.read(); - if (chunk) this.push(chunk); - } -}; - -// Usage: -// var parser = new SimpleProtocol(source); -// Now parser is a readable stream that will emit 'header' -// with the parsed header data. -``` - -### Class: stream.Transform - -A "transform" stream is a duplex stream where the output is causally -connected in some way to the input, such as a [zlib][] stream or a -[crypto][] stream. - -There is no requirement that the output be the same size as the input, -the same number of chunks, or arrive at the same time. For example, a -Hash stream will only ever have a single chunk of output which is -provided when the input is ended. A zlib stream will produce output -that is either much smaller or much larger than its input. - -Rather than implement the [`stream._read()`][stream-_read] and -[`stream._write()`][stream-_write] methods, Transform classes must implement the -[`stream._transform()`][stream-_transform] method, and may optionally -also implement the [`stream._flush()`][stream-_flush] method. (See below.) - -#### new stream.Transform([options]) - -* `options` {Object} Passed to both Writable and Readable - constructors. Also has the following fields: - * `transform` {Function} Implementation for the - [`stream._transform()`][stream-_transform] method. - * `flush` {Function} Implementation for the [`stream._flush()`][stream-_flush] - method. - -In classes that extend the Transform class, make sure to call the -constructor so that the buffering settings can be properly -initialized. - -#### Events: 'finish' and 'end' - -The [`'finish'`][] and [`'end'`][] events are from the parent Writable -and Readable classes respectively. The `'finish'` event is fired after -[`stream.end()`][stream-end] is called and all chunks have been processed by -[`stream._transform()`][stream-_transform], `'end'` is fired after all data has -been output which is after the callback in [`stream._flush()`][stream-_flush] -has been called. - -#### transform.\_flush(callback) - -* `callback` {Function} Call this function (optionally with an error - argument) when you are done flushing any remaining data. - -Note: **This function MUST NOT be called directly.** It MAY be implemented -by child classes, and if so, will be called by the internal Transform -class methods only. - -In some cases, your transform operation may need to emit a bit more -data at the end of the stream. For example, a `Zlib` compression -stream will store up some internal state so that it can optimally -compress the output. At the end, however, it needs to do the best it -can with what is left, so that the data will be complete. - -In those cases, you can implement a `_flush()` method, which will be -called at the very end, after all the written data is consumed, but -before emitting [`'end'`][] to signal the end of the readable side. Just -like with [`stream._transform()`][stream-_transform], call -`transform.push(chunk)` zero or more times, as appropriate, and call `callback` -when the flush operation is complete. - -This method is prefixed with an underscore because it is internal to -the class that defines it, and should not be called directly by user -programs. However, you **are** expected to override this method in -your own extension classes. - -#### transform.\_transform(chunk, encoding, callback) - -* `chunk` {Buffer|String} The chunk to be transformed. Will **always** - be a buffer unless the `decodeStrings` option was set to `false`. -* `encoding` {String} If the chunk is a string, then this is the - encoding type. If chunk is a buffer, then this is the special - value - 'buffer', ignore it in this case. -* `callback` {Function} Call this function (optionally with an error - argument and data) when you are done processing the supplied chunk. - -Note: **This function MUST NOT be called directly.** It should be -implemented by child classes, and called by the internal Transform -class methods only. - -All Transform stream implementations must provide a `_transform()` -method to accept input and produce output. - -`_transform()` should do whatever has to be done in this specific -Transform class, to handle the bytes being written, and pass them off -to the readable portion of the interface. Do asynchronous I/O, -process things, and so on. - -Call `transform.push(outputChunk)` 0 or more times to generate output -from this input chunk, depending on how much data you want to output -as a result of this chunk. - -Call the callback function only when the current chunk is completely -consumed. Note that there may or may not be output as a result of any -particular input chunk. If you supply a second argument to the callback -it will be passed to the push method. In other words the following are -equivalent: - -```js -transform.prototype._transform = function (data, encoding, callback) { - this.push(data); - callback(); -}; - -transform.prototype._transform = function (data, encoding, callback) { - callback(null, data); -}; -``` - -This method is prefixed with an underscore because it is internal to -the class that defines it, and should not be called directly by user -programs. However, you **are** expected to override this method in -your own extension classes. - -#### Example: `SimpleProtocol` parser v2 - -The example [here](#stream_example_simpleprotocol_v1_sub_optimal) of a simple -protocol parser can be implemented simply by using the higher level -[Transform][] stream class, similar to the `parseHeader` and `SimpleProtocol -v1` examples. - -In this example, rather than providing the input as an argument, it -would be piped into the parser, which is a more idiomatic Node.js stream -approach. - -```javascript -const util = require('util'); -const Transform = require('stream').Transform; -util.inherits(SimpleProtocol, Transform); - -function SimpleProtocol(options) { - if (!(this instanceof SimpleProtocol)) - return new SimpleProtocol(options); - - Transform.call(this, options); - this._inBody = false; - this._sawFirstCr = false; - this._rawHeader = []; - this.header = null; -} - -SimpleProtocol.prototype._transform = function(chunk, encoding, done) { - if (!this._inBody) { - // check if the chunk has a \n\n - var split = -1; - for (var i = 0; i < chunk.length; i++) { - if (chunk[i] === 10) { // '\n' - if (this._sawFirstCr) { - split = i; - break; - } else { - this._sawFirstCr = true; - } - } else { - this._sawFirstCr = false; - } - } - - if (split === -1) { - // still waiting for the \n\n - // stash the chunk, and try again. - this._rawHeader.push(chunk); - } else { - this._inBody = true; - var h = chunk.slice(0, split); - this._rawHeader.push(h); - var header = Buffer.concat(this._rawHeader).toString(); - try { - this.header = JSON.parse(header); - } catch (er) { - this.emit('error', new Error('invalid simple protocol data')); - return; - } - // and let them know that we are done parsing the header. - this.emit('header', this.header); - - // now, because we got some extra data, emit this first. - this.push(chunk.slice(split)); - } - } else { - // from there on, just provide the data to our consumer as-is. - this.push(chunk); - } - done(); -}; - -// Usage: -// var parser = new SimpleProtocol(); -// source.pipe(parser) -// Now parser is a readable stream that will emit 'header' -// with the parsed header data. -``` - -### Class: stream.Writable - - - -`stream.Writable` is an abstract class designed to be extended with an -underlying implementation of the -[`stream._write(chunk, encoding, callback)`][stream-_write] method. - -Please see [API for Stream Consumers][] for how to consume -writable streams in your programs. What follows is an explanation of -how to implement Writable streams in your programs. - -#### new stream.Writable([options]) - -* `options` {Object} - * `highWaterMark` {Number} Buffer level when - [`stream.write()`][stream-write] starts returning `false`. Default = `16384` - (16kb), or `16` for `objectMode` streams. - * `decodeStrings` {Boolean} Whether or not to decode strings into - Buffers before passing them to [`stream._write()`][stream-_write]. - Default = `true` - * `objectMode` {Boolean} Whether or not the - [`stream.write(anyObj)`][stream-write] is a valid operation. If set you can - write arbitrary data instead of only `Buffer` / `String` data. - Default = `false` - * `write` {Function} Implementation for the - [`stream._write()`][stream-_write] method. - * `writev` {Function} Implementation for the - [`stream._writev()`][stream-_writev] method. - -In classes that extend the Writable class, make sure to call the -constructor so that the buffering settings can be properly -initialized. - -#### writable.\_write(chunk, encoding, callback) - -* `chunk` {Buffer|String} The chunk to be written. Will **always** - be a buffer unless the `decodeStrings` option was set to `false`. -* `encoding` {String} If the chunk is a string, then this is the - encoding type. If chunk is a buffer, then this is the special - value - 'buffer', ignore it in this case. -* `callback` {Function} Call this function (optionally with an error - argument) when you are done processing the supplied chunk. - -All Writable stream implementations must provide a -[`stream._write()`][stream-_write] method to send data to the underlying -resource. - -Note: **This function MUST NOT be called directly.** It should be -implemented by child classes, and called by the internal Writable -class methods only. - -Call the callback using the standard `callback(error)` pattern to -signal that the write completed successfully or with an error. - -If the `decodeStrings` flag is set in the constructor options, then -`chunk` may be a string rather than a Buffer, and `encoding` will -indicate the sort of string that it is. This is to support -implementations that have an optimized handling for certain string -data encodings. If you do not explicitly set the `decodeStrings` -option to `false`, then you can safely ignore the `encoding` argument, -and assume that `chunk` will always be a Buffer. - -This method is prefixed with an underscore because it is internal to -the class that defines it, and should not be called directly by user -programs. However, you **are** expected to override this method in -your own extension classes. - -#### writable.\_writev(chunks, callback) - -* `chunks` {Array} The chunks to be written. Each chunk has following - format: `{ chunk: ..., encoding: ... }`. -* `callback` {Function} Call this function (optionally with an error - argument) when you are done processing the supplied chunks. - -Note: **This function MUST NOT be called directly.** It may be -implemented by child classes, and called by the internal Writable -class methods only. - -This function is completely optional to implement. In most cases it is -unnecessary. If implemented, it will be called with all the chunks -that are buffered in the write queue. - - -## Simplified Constructor API - - - -In simple cases there is now the added benefit of being able to construct a -stream without inheritance. - -This can be done by passing the appropriate methods as constructor options: - -Examples: - -### Duplex - -```js -var duplex = new stream.Duplex({ - read: function(n) { - // sets this._read under the hood - - // push data onto the read queue, passing null - // will signal the end of the stream (EOF) - this.push(chunk); - }, - write: function(chunk, encoding, next) { - // sets this._write under the hood - - // An optional error can be passed as the first argument - next() - } -}); - -// or - -var duplex = new stream.Duplex({ - read: function(n) { - // sets this._read under the hood - - // push data onto the read queue, passing null - // will signal the end of the stream (EOF) - this.push(chunk); - }, - writev: function(chunks, next) { - // sets this._writev under the hood - - // An optional error can be passed as the first argument - next() - } -}); -``` - -### Readable - -```js -var readable = new stream.Readable({ - read: function(n) { - // sets this._read under the hood - - // push data onto the read queue, passing null - // will signal the end of the stream (EOF) - this.push(chunk); - } -}); -``` - -### Transform - -```js -var transform = new stream.Transform({ - transform: function(chunk, encoding, next) { - // sets this._transform under the hood - - // generate output as many times as needed - // this.push(chunk); - - // call when the current chunk is consumed - next(); - }, - flush: function(done) { - // sets this._flush under the hood - - // generate output as many times as needed - // this.push(chunk); - - done(); - } -}); -``` - -### Writable - -```js -var writable = new stream.Writable({ - write: function(chunk, encoding, next) { - // sets this._write under the hood - - // An optional error can be passed as the first argument - next() - } -}); - -// or - -var writable = new stream.Writable({ - writev: function(chunks, next) { - // sets this._writev under the hood - - // An optional error can be passed as the first argument - next() - } -}); -``` - -## Streams: Under the Hood - - - -### Buffering - - - -Both Writable and Readable streams will buffer data on an internal -object which can be retrieved from `_writableState.getBuffer()` or -`_readableState.buffer`, respectively. - -The amount of data that will potentially be buffered depends on the -`highWaterMark` option which is passed into the constructor. - -Buffering in Readable streams happens when the implementation calls -[`stream.push(chunk)`][stream-push]. If the consumer of the Stream does not -call [`stream.read()`][stream-read], then the data will sit in the internal -queue until it is consumed. - -Buffering in Writable streams happens when the user calls -[`stream.write(chunk)`][stream-write] repeatedly, even when it returns `false`. - -The purpose of streams, especially with the [`stream.pipe()`][] method, is to -limit the buffering of data to acceptable levels, so that sources and -destinations of varying speed will not overwhelm the available memory. - -### Compatibility with Older Node.js Versions - - - -In versions of Node.js prior to v0.10, the Readable stream interface was -simpler, but also less powerful and less useful. - -* Rather than waiting for you to call the [`stream.read()`][stream-read] method, - [`'data'`][] events would start emitting immediately. If you needed to do - some I/O to decide how to handle data, then you had to store the chunks - in some kind of buffer so that they would not be lost. -* The [`stream.pause()`][stream-pause] method was advisory, rather than - guaranteed. This meant that you still had to be prepared to receive - [`'data'`][] events even when the stream was in a paused state. - -In Node.js v0.10, the [Readable][] class was added. -For backwards compatibility with older Node.js programs, Readable streams -switch into "flowing mode" when a [`'data'`][] event handler is added, or -when the [`stream.resume()`][stream-resume] method is called. The effect is -that, even if you are not using the new [`stream.read()`][stream-read] method -and [`'readable'`][] event, you no longer have to worry about losing -[`'data'`][] chunks. - -Most programs will continue to function normally. However, this -introduces an edge case in the following conditions: - -* No [`'data'`][] event handler is added. -* The [`stream.resume()`][stream-resume] method is never called. -* The stream is not piped to any writable destination. - -For example, consider the following code: - -```js -// WARNING! BROKEN! -net.createServer((socket) => { - - // we add an 'end' method, but never consume the data - socket.on('end', () => { - // It will never get here. - socket.end('I got your message (but didnt read it)\n'); - }); - -}).listen(1337); -``` - -In versions of Node.js prior to v0.10, the incoming message data would be -simply discarded. However, in Node.js v0.10 and beyond, -the socket will remain paused forever. - -The workaround in this situation is to call the -[`stream.resume()`][stream-resume] method to start the flow of data: - -```js -// Workaround -net.createServer((socket) => { - - socket.on('end', () => { - socket.end('I got your message (but didnt read it)\n'); - }); - - // start the flow of data, discarding it. - socket.resume(); - -}).listen(1337); -``` - -In addition to new Readable streams switching into flowing mode, -pre-v0.10 style streams can be wrapped in a Readable class using the -[`stream.wrap()`][] method. - - -### Object Mode - - - -Normally, Streams operate on Strings and Buffers exclusively. - -Streams that are in **object mode** can emit generic JavaScript values -other than Buffers and Strings. - -A Readable stream in object mode will always return a single item from -a call to [`stream.read(size)`][stream-read], regardless of what the size -argument is. - -A Writable stream in object mode will always ignore the `encoding` -argument to [`stream.write(data, encoding)`][stream-write]. - -The special value `null` still retains its special value for object -mode streams. That is, for object mode readable streams, `null` as a -return value from [`stream.read()`][stream-read] indicates that there is no more -data, and [`stream.push(null)`][stream-push] will signal the end of stream data -(`EOF`). - -No streams in Node.js core are object mode streams. This pattern is only -used by userland streaming libraries. - -You should set `objectMode` in your stream child class constructor on -the options object. Setting `objectMode` mid-stream is not safe. - -For Duplex streams `objectMode` can be set exclusively for readable or -writable side with `readableObjectMode` and `writableObjectMode` -respectively. These options can be used to implement parsers and -serializers with Transform streams. - -```js -const util = require('util'); -const StringDecoder = require('string_decoder').StringDecoder; -const Transform = require('stream').Transform; -util.inherits(JSONParseStream, Transform); - -// Gets \n-delimited JSON string data, and emits the parsed objects -function JSONParseStream() { - if (!(this instanceof JSONParseStream)) - return new JSONParseStream(); - - Transform.call(this, { readableObjectMode : true }); - - this._buffer = ''; - this._decoder = new StringDecoder('utf8'); -} - -JSONParseStream.prototype._transform = function(chunk, encoding, cb) { - this._buffer += this._decoder.write(chunk); - // split on newlines - var lines = this._buffer.split(/\r?\n/); - // keep the last partial line buffered - this._buffer = lines.pop(); - for (var l = 0; l < lines.length; l++) { - var line = lines[l]; - try { - var obj = JSON.parse(line); - } catch (er) { - this.emit('error', er); - return; - } - // push the parsed object out to the readable consumer - this.push(obj); - } - cb(); -}; - -JSONParseStream.prototype._flush = function(cb) { - // Just handle any leftover - var rem = this._buffer.trim(); - if (rem) { - try { - var obj = JSON.parse(rem); - } catch (er) { - this.emit('error', er); - return; - } - // push the parsed object out to the readable consumer - this.push(obj); - } - cb(); -}; -``` - -### `stream.read(0)` - -There are some cases where you want to trigger a refresh of the -underlying readable stream mechanisms, without actually consuming any -data. In that case, you can call `stream.read(0)`, which will always -return null. - -If the internal read buffer is below the `highWaterMark`, and the -stream is not currently reading, then calling `stream.read(0)` will trigger -a low-level [`stream._read()`][stream-_read] call. - -There is almost never a need to do this. However, you will see some -cases in Node.js's internals where this is done, particularly in the -Readable stream class internals. - -### `stream.push('')` - -Pushing a zero-byte string or Buffer (when not in [Object mode][]) has an -interesting side effect. Because it *is* a call to -[`stream.push()`][stream-push], it will end the `reading` process. However, it -does *not* add any data to the readable buffer, so there's nothing for -a user to consume. - -Very rarely, there are cases where you have no data to provide now, -but the consumer of your stream (or, perhaps, another bit of your own -code) will know when to check again, by calling [`stream.read(0)`][stream-read]. -In those cases, you *may* call `stream.push('')`. - -So far, the only use case for this functionality is in the -[`tls.CryptoStream`][] class, which is deprecated in Node.js/io.js v1.0. If you -find that you have to use `stream.push('')`, please consider another -approach, because it almost certainly indicates that something is -horribly wrong. - -[`'data'`]: #stream_event_data -[`'drain'`]: #stream_event_drain -[`'end'`]: #stream_event_end -[`'finish'`]: #stream_event_finish -[`'readable'`]: #stream_event_readable -[`buf.toString(encoding)`]: https://nodejs.org/docs/v6.1.0/api/buffer.html#buffer_buf_tostring_encoding_start_end -[`EventEmitter`]: https://nodejs.org/docs/v6.1.0/api/events.html#events_class_eventemitter -[`process.stderr`]: https://nodejs.org/docs/v6.1.0/api/process.html#process_process_stderr -[`process.stdin`]: https://nodejs.org/docs/v6.1.0/api/process.html#process_process_stdin -[`process.stdout`]: https://nodejs.org/docs/v6.1.0/api/process.html#process_process_stdout -[`stream.cork()`]: #stream_writable_cork -[`stream.pipe()`]: #stream_readable_pipe_destination_options -[`stream.uncork()`]: #stream_writable_uncork -[`stream.unpipe()`]: #stream_readable_unpipe_destination -[`stream.wrap()`]: #stream_readable_wrap_stream -[`tls.CryptoStream`]: https://nodejs.org/docs/v6.1.0/api/tls.html#tls_class_cryptostream -[`util.inherits()`]: https://nodejs.org/docs/v6.1.0/api/util.html#util_util_inherits_constructor_superconstructor -[API for Stream Consumers]: #stream_api_for_stream_consumers -[API for Stream Implementors]: #stream_api_for_stream_implementors -[child process stdin]: https://nodejs.org/docs/v6.1.0/api/child_process.html#child_process_child_stdin -[child process stdout and stderr]: https://nodejs.org/docs/v6.1.0/api/child_process.html#child_process_child_stdout -[Compatibility]: #stream_compatibility_with_older_node_js_versions -[crypto]: crypto.html -[Duplex]: #stream_class_stream_duplex -[fs read streams]: https://nodejs.org/docs/v6.1.0/api/fs.html#fs_class_fs_readstream -[fs write streams]: https://nodejs.org/docs/v6.1.0/api/fs.html#fs_class_fs_writestream -[HTTP requests, on the client]: https://nodejs.org/docs/v6.1.0/api/http.html#http_class_http_clientrequest -[HTTP responses, on the server]: https://nodejs.org/docs/v6.1.0/api/http.html#http_class_http_serverresponse -[http-incoming-message]: https://nodejs.org/docs/v6.1.0/api/http.html#http_class_http_incomingmessage -[Object mode]: #stream_object_mode -[Readable]: #stream_class_stream_readable -[SimpleProtocol v2]: #stream_example_simpleprotocol_parser_v2 -[stream-_flush]: #stream_transform_flush_callback -[stream-_read]: #stream_readable_read_size_1 -[stream-_transform]: #stream_transform_transform_chunk_encoding_callback -[stream-_write]: #stream_writable_write_chunk_encoding_callback_1 -[stream-_writev]: #stream_writable_writev_chunks_callback -[stream-end]: #stream_writable_end_chunk_encoding_callback -[stream-pause]: #stream_readable_pause -[stream-push]: #stream_readable_push_chunk_encoding -[stream-read]: #stream_readable_read_size -[stream-resume]: #stream_readable_resume -[stream-write]: #stream_writable_write_chunk_encoding_callback -[TCP sockets]: https://nodejs.org/docs/v6.1.0/api/net.html#net_class_net_socket -[Transform]: #stream_class_stream_transform -[Writable]: #stream_class_stream_writable -[zlib]: zlib.html diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md deleted file mode 100644 index 83275f19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +++ /dev/null @@ -1,60 +0,0 @@ -# streams WG Meeting 2015-01-30 - -## Links - -* **Google Hangouts Video**: http://www.youtube.com/watch?v=I9nDOSGfwZg -* **GitHub Issue**: https://github.com/iojs/readable-stream/issues/106 -* **Original Minutes Google Doc**: https://docs.google.com/document/d/17aTgLnjMXIrfjgNaTUnHQO7m3xgzHR2VXBTmi03Qii4/ - -## Agenda - -Extracted from https://github.com/iojs/readable-stream/labels/wg-agenda prior to meeting. - -* adopt a charter [#105](https://github.com/iojs/readable-stream/issues/105) -* release and versioning strategy [#101](https://github.com/iojs/readable-stream/issues/101) -* simpler stream creation [#102](https://github.com/iojs/readable-stream/issues/102) -* proposal: deprecate implicit flowing of streams [#99](https://github.com/iojs/readable-stream/issues/99) - -## Minutes - -### adopt a charter - -* group: +1's all around - -### What versioning scheme should be adopted? -* group: +1’s 3.0.0 -* domenic+group: pulling in patches from other sources where appropriate -* mikeal: version independently, suggesting versions for io.js -* mikeal+domenic: work with TC to notify in advance of changes -simpler stream creation - -### streamline creation of streams -* sam: streamline creation of streams -* domenic: nice simple solution posted - but, we lose the opportunity to change the model - may not be backwards incompatible (double check keys) - - **action item:** domenic will check - -### remove implicit flowing of streams on(‘data’) -* add isFlowing / isPaused -* mikeal: worrying that we’re documenting polyfill methods – confuses users -* domenic: more reflective API is probably good, with warning labels for users -* new section for mad scientists (reflective stream access) -* calvin: name the “third state” -* mikeal: maybe borrow the name from whatwg? -* domenic: we’re missing the “third state” -* consensus: kind of difficult to name the third state -* mikeal: figure out differences in states / compat -* mathias: always flow on data – eliminates third state - * explore what it breaks - -**action items:** -* ask isaac for ability to list packages by what public io.js APIs they use (esp. Stream) -* ask rod/build for infrastructure -* **chris**: explore the “flow on data” approach -* add isPaused/isFlowing -* add new docs section -* move isPaused to that section - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/duplex.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/duplex.js deleted file mode 100644 index ca807af8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/duplex.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_duplex.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_duplex.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_duplex.js deleted file mode 100644 index 736693b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_duplex.js +++ /dev/null @@ -1,75 +0,0 @@ -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - -'use strict'; - -/**/ - -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; -}; -/**/ - -module.exports = Duplex; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -var Readable = require('./_stream_readable'); -var Writable = require('./_stream_writable'); - -util.inherits(Duplex, Readable); - -var keys = objectKeys(Writable.prototype); -for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; -} - -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); -} - -// the no-half-open enforcer -function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - processNextTick(onEndNT, this); -} - -function onEndNT(self) { - self.end(); -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_passthrough.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_passthrough.js deleted file mode 100644 index d06f71f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_passthrough.js +++ /dev/null @@ -1,26 +0,0 @@ -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - -'use strict'; - -module.exports = PassThrough; - -var Transform = require('./_stream_transform'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(PassThrough, Transform); - -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); -} - -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_readable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_readable.js deleted file mode 100644 index 79914fa6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_readable.js +++ /dev/null @@ -1,893 +0,0 @@ -'use strict'; - -module.exports = Readable; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var isArray = require('isarray'); -/**/ - -Readable.ReadableState = ReadableState; - -/**/ -var EE = require('events').EventEmitter; - -var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream; -(function () { - try { - Stream = require('st' + 'ream'); - } catch (_) {} finally { - if (!Stream) Stream = require('events').EventEmitter; - } -})(); -/**/ - -var Buffer = require('buffer').Buffer; -/**/ -var bufferShim = require('buffer-shims'); -/**/ - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var debugUtil = require('util'); -var debug = void 0; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function () {}; -} -/**/ - -var StringDecoder; - -util.inherits(Readable, Stream); - -var hasPrependListener = typeof EE.prototype.prependListener === 'function'; - -function prependListener(emitter, event, fn) { - if (hasPrependListener) return emitter.prependListener(event, fn); - - // This is a brutally ugly hack to make sure that our error handler - // is attached before any userland ones. NEVER DO THIS. This is here - // only because this code needs to continue to work with older versions - // of Node.js that do not include the prependListener() method. The goal - // is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; -} - -var Duplex; -function ReadableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~ ~this.highWaterMark; - - this.buffer = []; - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // when piping, we only care about 'readable' events that happen - // after read()ing all the bytes and not getting any pushback. - this.ranOut = false; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -var Duplex; -function Readable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options && typeof options.read === 'function') this._read = options.read; - - Stream.call(this); -} - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - - if (!state.objectMode && typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = bufferShim.from(chunk, encoding); - encoding = ''; - } - } - - return readableAddChunk(this, state, chunk, encoding, false); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - var state = this._readableState; - return readableAddChunk(this, state, chunk, '', true); -}; - -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -function readableAddChunk(stream, state, chunk, encoding, addToFront) { - var er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (state.ended && !addToFront) { - var e = new Error('stream.push() after EOF'); - stream.emit('error', e); - } else if (state.endEmitted && addToFront) { - var _e = new Error('stream.unshift() after end event'); - stream.emit('error', _e); - } else { - var skipAdd; - if (state.decoder && !addToFront && !encoding) { - chunk = state.decoder.write(chunk); - skipAdd = !state.objectMode && chunk.length === 0; - } - - if (!addToFront) state.reading = false; - - // Don't add to the buffer if we've decoded to an empty string chunk and - // we're not in object mode - if (!skipAdd) { - // if we want the data now, just emit it. - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - } - - maybeReadMore(stream, state); - } - } else if (!addToFront) { - state.reading = false; - } - - return needMoreData(state); -} - -// if it's past the high water mark, we can push in some more. -// Also, if we have no data yet, we can stand some -// more bytes. This is to work around cases where hwm=0, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); -} - -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; -}; - -// Don't raise the hwm > 8MB -var MAX_HWM = 0x800000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -function howMuchToRead(n, state) { - if (state.length === 0 && state.ended) return 0; - - if (state.objectMode) return n === 0 ? 0 : 1; - - if (n === null || isNaN(n)) { - // only flow one buffer at a time - if (state.flowing && state.buffer.length) return state.buffer[0].length;else return state.length; - } - - if (n <= 0) return 0; - - // If we're asking for more than the target buffer level, - // then raise the water mark. Bump up to the next highest - // power of 2, to prevent increasing it excessively in tiny - // amounts. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - - // don't have that much. return null, unless we've ended. - if (n > state.length) { - if (!state.ended) { - state.needReadable = true; - return 0; - } else { - return state.length; - } - } - - return n; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - var state = this._readableState; - var nOrig = n; - - if (typeof n !== 'number' || n > 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } - - if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - } - - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (doRead && !state.reading) n = howMuchToRead(nOrig, state); - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } - - state.length -= n; - - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (state.length === 0 && !state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended && state.length === 0) endReadable(this); - - if (ret !== null) this.emit('data', ret); - - return ret; -}; - -function chunkInvalid(state, chunk) { - var er = null; - if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - -function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); - } -} - -function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - processNextTick(maybeReadMore_, stream, state); - } -} - -function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - this.emit('error', new Error('not implemented')); -}; - -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : cleanup; - if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable) { - debug('onunpipe'); - if (readable === src) { - cleanup(); - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', cleanup); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - var ret = dest.write(chunk); - if (false === ret) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; -}; - -function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} - -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var _i = 0; _i < len; _i++) { - dests[_i].emit('unpipe', this); - }return this; - } - - // try to find the right one. - var i = indexOf(state.pipes, dest); - if (i === -1) return this; - - state.pipes.splice(i, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this); - - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - // If listening to data, and it has not explicitly been paused, - // then call resume to start the flow of data on the next tick. - if (ev === 'data' && false !== this._readableState.flowing) { - this.resume(); - } - - if (ev === 'readable' && !this._readableState.endEmitted) { - var state = this._readableState; - if (!state.readableListening) { - state.readableListening = true; - state.emittedReadable = false; - state.needReadable = true; - if (!state.reading) { - processNextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this, state); - } - } - } - - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; - -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; -}; - -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - processNextTick(resume_, stream, state); - } -} - -function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} - -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; -}; - -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - if (state.flowing) { - do { - var chunk = stream.read(); - } while (null !== chunk && state.flowing); - } -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var state = this._readableState; - var paused = false; - - var self = this; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) self.push(chunk); - } - - self.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = self.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - var events = ['error', 'close', 'destroy', 'pause', 'resume']; - forEach(events, function (ev) { - stream.on(ev, self.emit.bind(self, ev)); - }); - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - self._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return self; -}; - -// exposed for testing purposes only. -Readable._fromList = fromList; - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -function fromList(n, state) { - var list = state.buffer; - var length = state.length; - var stringMode = !!state.decoder; - var objectMode = !!state.objectMode; - var ret; - - // nothing in the list, definitely empty. - if (list.length === 0) return null; - - if (length === 0) ret = null;else if (objectMode) ret = list.shift();else if (!n || n >= length) { - // read it all, truncate the array. - if (stringMode) ret = list.join('');else if (list.length === 1) ret = list[0];else ret = Buffer.concat(list, length); - list.length = 0; - } else { - // read just some of it. - if (n < list[0].length) { - // just take a part of the first list item. - // slice is the same for buffers and strings. - var buf = list[0]; - ret = buf.slice(0, n); - list[0] = buf.slice(n); - } else if (n === list[0].length) { - // first list is a perfect match - ret = list.shift(); - } else { - // complex case. - // we have enough to cover it, but it spans past the first buffer. - if (stringMode) ret = '';else ret = bufferShim.allocUnsafe(n); - - var c = 0; - for (var i = 0, l = list.length; i < l && c < n; i++) { - var _buf = list[0]; - var cpy = Math.min(n - c, _buf.length); - - if (stringMode) ret += _buf.slice(0, cpy);else _buf.copy(ret, c, 0, cpy); - - if (cpy < _buf.length) list[0] = _buf.slice(cpy);else list.shift(); - - c += cpy; - } - } - } - - return ret; -} - -function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - processNextTick(endReadableNT, state, stream); - } -} - -function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} - -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_transform.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_transform.js deleted file mode 100644 index dbc996ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_transform.js +++ /dev/null @@ -1,180 +0,0 @@ -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - -'use strict'; - -module.exports = Transform; - -var Duplex = require('./_stream_duplex'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(Transform, Duplex); - -function TransformState(stream) { - this.afterTransform = function (er, data) { - return afterTransform(stream, er, data); - }; - - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; - this.writeencoding = null; -} - -function afterTransform(stream, er, data) { - var ts = stream._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) return stream.emit('error', new Error('no writecb in Transform class')); - - ts.writechunk = null; - ts.writecb = null; - - if (data !== null && data !== undefined) stream.push(data); - - cb(er); - - var rs = stream._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); - } -} - -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = new TransformState(this); - - // when the writable side finishes, then flush out anything remaining. - var stream = this; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - this.once('prefinish', function () { - if (typeof this._flush === 'function') this._flush(function (er) { - done(stream, er); - });else done(stream); - }); -} - -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; - -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('Not implemented'); -}; - -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; - -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; - -function done(stream, er) { - if (er) return stream.emit('error', er); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; - - if (ws.length) throw new Error('Calling transform done when ws.length != 0'); - - if (ts.transforming) throw new Error('Calling transform done when still transforming'); - - return stream.push(null); -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js deleted file mode 100644 index ed5efcbd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js +++ /dev/null @@ -1,526 +0,0 @@ -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - -'use strict'; - -module.exports = Writable; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var internalUtil = { - deprecate: require('util-deprecate') -}; -/**/ - -/**/ -var Stream; -(function () { - try { - Stream = require('st' + 'ream'); - } catch (_) {} finally { - if (!Stream) Stream = require('events').EventEmitter; - } -})(); -/**/ - -var Buffer = require('buffer').Buffer; -/**/ -var bufferShim = require('buffer-shims'); -/**/ - -util.inherits(Writable, Stream); - -function nop() {} - -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - -var Duplex; -function WritableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~ ~this.highWaterMark; - - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} - -WritableState.prototype.getBuffer = function writableStateGetBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; - -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.') - }); - } catch (_) {} -})(); - -var Duplex; -function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - // Writable ctor is applied to Duplexes, though they're not - // instanceof Writable, they're instanceof Readable. - if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options); - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - } - - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); -}; - -function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - processNextTick(cb, er); -} - -// If we get something that is not a buffer, string, null, or undefined, -// and we're not in objectMode, then that's an error. -// Otherwise stream chunks are all considered to be of length=1, and the -// watermarks determine how many objects to keep in the buffer, rather than -// how many bytes or characters. -function validChunk(stream, state, chunk, cb) { - var valid = true; - var er = false; - // Always throw error if a null is written - // if we are not in object mode then throw - // if it is not a buffer, string, or undefined. - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - processNextTick(cb, er); - valid = false; - } - return valid; -} - -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, chunk, encoding, cb); - } - - return ret; -}; - -Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; -}; - -Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; - -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; - -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = bufferShim.from(chunk, encoding); - } - return chunk; -} - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, chunk, encoding, cb) { - chunk = decodeChunk(state, chunk, encoding); - - if (Buffer.isBuffer(chunk)) encoding = 'buffer'; - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = new WriteReq(chunk, encoding, cb); - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; -} - -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} - -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - if (sync) processNextTick(cb, er);else cb(er); - - stream._writableState.errorEmitted = true; - stream.emit('error', er); -} - -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - while (entry) { - buffer[count] = entry; - entry = entry.next; - count += 1; - } - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequestCount = 0; - state.bufferedRequest = entry; - state.bufferProcessing = false; -} - -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('not implemented')); -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); -}; - -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} - -function prefinish(stream, state) { - if (!state.prefinished) { - state.prefinished = true; - stream.emit('prefinish'); - } -} - -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - if (state.pendingcb === 0) { - prefinish(stream, state); - state.finished = true; - stream.emit('finish'); - } else { - prefinish(stream, state); - } - } - return need; -} - -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) processNextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} - -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - - this.finish = function (err) { - var entry = _this.entry; - _this.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = _this; - } else { - state.corkedRequestsFree = _this; - } - }; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/index.js deleted file mode 100644 index 1cab4c05..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/index.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict'; - -var buffer = require('buffer'); -var Buffer = buffer.Buffer; -var SlowBuffer = buffer.SlowBuffer; -var MAX_LEN = buffer.kMaxLength || 2147483647; -exports.alloc = function alloc(size, fill, encoding) { - if (typeof Buffer.alloc === 'function') { - return Buffer.alloc(size, fill, encoding); - } - if (typeof encoding === 'number') { - throw new TypeError('encoding must not be number'); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size > MAX_LEN) { - throw new RangeError('size is too large'); - } - var enc = encoding; - var _fill = fill; - if (_fill === undefined) { - enc = undefined; - _fill = 0; - } - var buf = new Buffer(size); - if (typeof _fill === 'string') { - var fillBuf = new Buffer(_fill, enc); - var flen = fillBuf.length; - var i = -1; - while (++i < size) { - buf[i] = fillBuf[i % flen]; - } - } else { - buf.fill(_fill); - } - return buf; -} -exports.allocUnsafe = function allocUnsafe(size) { - if (typeof Buffer.allocUnsafe === 'function') { - return Buffer.allocUnsafe(size); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size > MAX_LEN) { - throw new RangeError('size is too large'); - } - return new Buffer(size); -} -exports.from = function from(value, encodingOrOffset, length) { - if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) { - return Buffer.from(value, encodingOrOffset, length); - } - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number'); - } - if (typeof value === 'string') { - return new Buffer(value, encodingOrOffset); - } - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - var offset = encodingOrOffset; - if (arguments.length === 1) { - return new Buffer(value); - } - if (typeof offset === 'undefined') { - offset = 0; - } - var len = length; - if (typeof len === 'undefined') { - len = value.byteLength - offset; - } - if (offset >= value.byteLength) { - throw new RangeError('\'offset\' is out of bounds'); - } - if (len > value.byteLength - offset) { - throw new RangeError('\'length\' is out of bounds'); - } - return new Buffer(value.slice(offset, offset + len)); - } - if (Buffer.isBuffer(value)) { - var out = new Buffer(value.length); - value.copy(out, 0, 0, value.length); - return out; - } - if (value) { - if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) { - return new Buffer(value); - } - if (value.type === 'Buffer' && Array.isArray(value.data)) { - return new Buffer(value.data); - } - } - - throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.'); -} -exports.allocUnsafeSlow = function allocUnsafeSlow(size) { - if (typeof Buffer.allocUnsafeSlow === 'function') { - return Buffer.allocUnsafeSlow(size); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size >= MAX_LEN) { - throw new RangeError('size is too large'); - } - return new SlowBuffer(size); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/license.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/license.md deleted file mode 100644 index 01cfaefe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/license.md +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (c) 2016 Calvin Metcalf - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/package.json deleted file mode 100644 index 1a9a8e0a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "_args": [ - [ - { - "name": "buffer-shims", - "raw": "buffer-shims@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/zkat/Documents/code/npm/node_modules/readable-stream" - ] - ], - "_from": "buffer-shims@>=1.0.0 <2.0.0", - "_id": "buffer-shims@1.0.0", - "_inCache": true, - "_installable": true, - "_location": "/readable-stream/buffer-shims", - "_nodeVersion": "5.11.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/buffer-shims-1.0.0.tgz_1462560889323_0.8640750856138766" - }, - "_npmUser": { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - }, - "_npmVersion": "3.8.6", - "_phantomChildren": {}, - "_requested": { - "name": "buffer-shims", - "raw": "buffer-shims@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/readable-stream" - ], - "_resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "_shasum": "9978ce317388c649ad8793028c3477ef044a8b51", - "_shrinkwrap": null, - "_spec": "buffer-shims@^1.0.0", - "_where": "/Users/zkat/Documents/code/npm/node_modules/readable-stream", - "bugs": { - "url": "https://github.com/calvinmetcalf/buffer-shims/issues" - }, - "dependencies": {}, - "description": "some shims for node buffers", - "devDependencies": { - "tape": "^4.5.1" - }, - "directories": {}, - "dist": { - "shasum": "9978ce317388c649ad8793028c3477ef044a8b51", - "tarball": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" - }, - "files": [ - "index.js" - ], - "gitHead": "ea89b3857ab5b8203957922a84e9a48cf4c47e0a", - "homepage": "https://github.com/calvinmetcalf/buffer-shims#readme", - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - } - ], - "name": "buffer-shims", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/calvinmetcalf/buffer-shims.git" - }, - "scripts": { - "test": "tape test/*.js" - }, - "version": "1.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/readme.md deleted file mode 100644 index 7ea6475e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -buffer-shims -=== - -functions to make sure the new buffer methods work in older browsers. - -```js -var bufferShim = require('buffer-shims'); -bufferShim.from('foo'); -bufferShim.alloc(9, 'cafeface', 'hex'); -bufferShim.allocUnsafe(15); -bufferShim.allocUnsafeSlow(21); -``` - -should just use the original in newer nodes and on older nodes uses fallbacks. - -Known Issues -=== -- this does not patch the buffer object, only the constructor stuff -- it's actually a polyfill - -![](https://i.imgur.com/zxII3jJ.gif) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/LICENSE deleted file mode 100644 index d8d7f943..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright Node.js contributors. All rights reserved. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/README.md deleted file mode 100644 index 5a76b414..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# core-util-is - -The `util.is*` functions introduced in Node v0.12. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/float.patch b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/float.patch deleted file mode 100644 index a06d5c05..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/float.patch +++ /dev/null @@ -1,604 +0,0 @@ -diff --git a/lib/util.js b/lib/util.js -index a03e874..9074e8e 100644 ---- a/lib/util.js -+++ b/lib/util.js -@@ -19,430 +19,6 @@ - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - --var formatRegExp = /%[sdj%]/g; --exports.format = function(f) { -- if (!isString(f)) { -- var objects = []; -- for (var i = 0; i < arguments.length; i++) { -- objects.push(inspect(arguments[i])); -- } -- return objects.join(' '); -- } -- -- var i = 1; -- var args = arguments; -- var len = args.length; -- var str = String(f).replace(formatRegExp, function(x) { -- if (x === '%%') return '%'; -- if (i >= len) return x; -- switch (x) { -- case '%s': return String(args[i++]); -- case '%d': return Number(args[i++]); -- case '%j': -- try { -- return JSON.stringify(args[i++]); -- } catch (_) { -- return '[Circular]'; -- } -- default: -- return x; -- } -- }); -- for (var x = args[i]; i < len; x = args[++i]) { -- if (isNull(x) || !isObject(x)) { -- str += ' ' + x; -- } else { -- str += ' ' + inspect(x); -- } -- } -- return str; --}; -- -- --// Mark that a method should not be used. --// Returns a modified function which warns once by default. --// If --no-deprecation is set, then it is a no-op. --exports.deprecate = function(fn, msg) { -- // Allow for deprecating things in the process of starting up. -- if (isUndefined(global.process)) { -- return function() { -- return exports.deprecate(fn, msg).apply(this, arguments); -- }; -- } -- -- if (process.noDeprecation === true) { -- return fn; -- } -- -- var warned = false; -- function deprecated() { -- if (!warned) { -- if (process.throwDeprecation) { -- throw new Error(msg); -- } else if (process.traceDeprecation) { -- console.trace(msg); -- } else { -- console.error(msg); -- } -- warned = true; -- } -- return fn.apply(this, arguments); -- } -- -- return deprecated; --}; -- -- --var debugs = {}; --var debugEnviron; --exports.debuglog = function(set) { -- if (isUndefined(debugEnviron)) -- debugEnviron = process.env.NODE_DEBUG || ''; -- set = set.toUpperCase(); -- if (!debugs[set]) { -- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { -- var pid = process.pid; -- debugs[set] = function() { -- var msg = exports.format.apply(exports, arguments); -- console.error('%s %d: %s', set, pid, msg); -- }; -- } else { -- debugs[set] = function() {}; -- } -- } -- return debugs[set]; --}; -- -- --/** -- * Echos the value of a value. Trys to print the value out -- * in the best way possible given the different types. -- * -- * @param {Object} obj The object to print out. -- * @param {Object} opts Optional options object that alters the output. -- */ --/* legacy: obj, showHidden, depth, colors*/ --function inspect(obj, opts) { -- // default options -- var ctx = { -- seen: [], -- stylize: stylizeNoColor -- }; -- // legacy... -- if (arguments.length >= 3) ctx.depth = arguments[2]; -- if (arguments.length >= 4) ctx.colors = arguments[3]; -- if (isBoolean(opts)) { -- // legacy... -- ctx.showHidden = opts; -- } else if (opts) { -- // got an "options" object -- exports._extend(ctx, opts); -- } -- // set default options -- if (isUndefined(ctx.showHidden)) ctx.showHidden = false; -- if (isUndefined(ctx.depth)) ctx.depth = 2; -- if (isUndefined(ctx.colors)) ctx.colors = false; -- if (isUndefined(ctx.customInspect)) ctx.customInspect = true; -- if (ctx.colors) ctx.stylize = stylizeWithColor; -- return formatValue(ctx, obj, ctx.depth); --} --exports.inspect = inspect; -- -- --// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics --inspect.colors = { -- 'bold' : [1, 22], -- 'italic' : [3, 23], -- 'underline' : [4, 24], -- 'inverse' : [7, 27], -- 'white' : [37, 39], -- 'grey' : [90, 39], -- 'black' : [30, 39], -- 'blue' : [34, 39], -- 'cyan' : [36, 39], -- 'green' : [32, 39], -- 'magenta' : [35, 39], -- 'red' : [31, 39], -- 'yellow' : [33, 39] --}; -- --// Don't use 'blue' not visible on cmd.exe --inspect.styles = { -- 'special': 'cyan', -- 'number': 'yellow', -- 'boolean': 'yellow', -- 'undefined': 'grey', -- 'null': 'bold', -- 'string': 'green', -- 'date': 'magenta', -- // "name": intentionally not styling -- 'regexp': 'red' --}; -- -- --function stylizeWithColor(str, styleType) { -- var style = inspect.styles[styleType]; -- -- if (style) { -- return '\u001b[' + inspect.colors[style][0] + 'm' + str + -- '\u001b[' + inspect.colors[style][1] + 'm'; -- } else { -- return str; -- } --} -- -- --function stylizeNoColor(str, styleType) { -- return str; --} -- -- --function arrayToHash(array) { -- var hash = {}; -- -- array.forEach(function(val, idx) { -- hash[val] = true; -- }); -- -- return hash; --} -- -- --function formatValue(ctx, value, recurseTimes) { -- // Provide a hook for user-specified inspect functions. -- // Check that value is an object with an inspect function on it -- if (ctx.customInspect && -- value && -- isFunction(value.inspect) && -- // Filter out the util module, it's inspect function is special -- value.inspect !== exports.inspect && -- // Also filter out any prototype objects using the circular check. -- !(value.constructor && value.constructor.prototype === value)) { -- var ret = value.inspect(recurseTimes, ctx); -- if (!isString(ret)) { -- ret = formatValue(ctx, ret, recurseTimes); -- } -- return ret; -- } -- -- // Primitive types cannot have properties -- var primitive = formatPrimitive(ctx, value); -- if (primitive) { -- return primitive; -- } -- -- // Look up the keys of the object. -- var keys = Object.keys(value); -- var visibleKeys = arrayToHash(keys); -- -- if (ctx.showHidden) { -- keys = Object.getOwnPropertyNames(value); -- } -- -- // Some type of object without properties can be shortcutted. -- if (keys.length === 0) { -- if (isFunction(value)) { -- var name = value.name ? ': ' + value.name : ''; -- return ctx.stylize('[Function' + name + ']', 'special'); -- } -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } -- if (isDate(value)) { -- return ctx.stylize(Date.prototype.toString.call(value), 'date'); -- } -- if (isError(value)) { -- return formatError(value); -- } -- } -- -- var base = '', array = false, braces = ['{', '}']; -- -- // Make Array say that they are Array -- if (isArray(value)) { -- array = true; -- braces = ['[', ']']; -- } -- -- // Make functions say that they are functions -- if (isFunction(value)) { -- var n = value.name ? ': ' + value.name : ''; -- base = ' [Function' + n + ']'; -- } -- -- // Make RegExps say that they are RegExps -- if (isRegExp(value)) { -- base = ' ' + RegExp.prototype.toString.call(value); -- } -- -- // Make dates with properties first say the date -- if (isDate(value)) { -- base = ' ' + Date.prototype.toUTCString.call(value); -- } -- -- // Make error with message first say the error -- if (isError(value)) { -- base = ' ' + formatError(value); -- } -- -- if (keys.length === 0 && (!array || value.length == 0)) { -- return braces[0] + base + braces[1]; -- } -- -- if (recurseTimes < 0) { -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } else { -- return ctx.stylize('[Object]', 'special'); -- } -- } -- -- ctx.seen.push(value); -- -- var output; -- if (array) { -- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); -- } else { -- output = keys.map(function(key) { -- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); -- }); -- } -- -- ctx.seen.pop(); -- -- return reduceToSingleString(output, base, braces); --} -- -- --function formatPrimitive(ctx, value) { -- if (isUndefined(value)) -- return ctx.stylize('undefined', 'undefined'); -- if (isString(value)) { -- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') -- .replace(/'/g, "\\'") -- .replace(/\\"/g, '"') + '\''; -- return ctx.stylize(simple, 'string'); -- } -- if (isNumber(value)) { -- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0, -- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 . -- if (value === 0 && 1 / value < 0) -- return ctx.stylize('-0', 'number'); -- return ctx.stylize('' + value, 'number'); -- } -- if (isBoolean(value)) -- return ctx.stylize('' + value, 'boolean'); -- // For some reason typeof null is "object", so special case here. -- if (isNull(value)) -- return ctx.stylize('null', 'null'); --} -- -- --function formatError(value) { -- return '[' + Error.prototype.toString.call(value) + ']'; --} -- -- --function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { -- var output = []; -- for (var i = 0, l = value.length; i < l; ++i) { -- if (hasOwnProperty(value, String(i))) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- String(i), true)); -- } else { -- output.push(''); -- } -- } -- keys.forEach(function(key) { -- if (!key.match(/^\d+$/)) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- key, true)); -- } -- }); -- return output; --} -- -- --function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { -- var name, str, desc; -- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; -- if (desc.get) { -- if (desc.set) { -- str = ctx.stylize('[Getter/Setter]', 'special'); -- } else { -- str = ctx.stylize('[Getter]', 'special'); -- } -- } else { -- if (desc.set) { -- str = ctx.stylize('[Setter]', 'special'); -- } -- } -- if (!hasOwnProperty(visibleKeys, key)) { -- name = '[' + key + ']'; -- } -- if (!str) { -- if (ctx.seen.indexOf(desc.value) < 0) { -- if (isNull(recurseTimes)) { -- str = formatValue(ctx, desc.value, null); -- } else { -- str = formatValue(ctx, desc.value, recurseTimes - 1); -- } -- if (str.indexOf('\n') > -1) { -- if (array) { -- str = str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n').substr(2); -- } else { -- str = '\n' + str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n'); -- } -- } -- } else { -- str = ctx.stylize('[Circular]', 'special'); -- } -- } -- if (isUndefined(name)) { -- if (array && key.match(/^\d+$/)) { -- return str; -- } -- name = JSON.stringify('' + key); -- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { -- name = name.substr(1, name.length - 2); -- name = ctx.stylize(name, 'name'); -- } else { -- name = name.replace(/'/g, "\\'") -- .replace(/\\"/g, '"') -- .replace(/(^"|"$)/g, "'"); -- name = ctx.stylize(name, 'string'); -- } -- } -- -- return name + ': ' + str; --} -- -- --function reduceToSingleString(output, base, braces) { -- var numLinesEst = 0; -- var length = output.reduce(function(prev, cur) { -- numLinesEst++; -- if (cur.indexOf('\n') >= 0) numLinesEst++; -- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; -- }, 0); -- -- if (length > 60) { -- return braces[0] + -- (base === '' ? '' : base + '\n ') + -- ' ' + -- output.join(',\n ') + -- ' ' + -- braces[1]; -- } -- -- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; --} -- -- - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - function isArray(ar) { -@@ -522,166 +98,10 @@ function isPrimitive(arg) { - exports.isPrimitive = isPrimitive; - - function isBuffer(arg) { -- return arg instanceof Buffer; -+ return Buffer.isBuffer(arg); - } - exports.isBuffer = isBuffer; - - function objectToString(o) { - return Object.prototype.toString.call(o); --} -- -- --function pad(n) { -- return n < 10 ? '0' + n.toString(10) : n.toString(10); --} -- -- --var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', -- 'Oct', 'Nov', 'Dec']; -- --// 26 Feb 16:19:34 --function timestamp() { -- var d = new Date(); -- var time = [pad(d.getHours()), -- pad(d.getMinutes()), -- pad(d.getSeconds())].join(':'); -- return [d.getDate(), months[d.getMonth()], time].join(' '); --} -- -- --// log is just a thin wrapper to console.log that prepends a timestamp --exports.log = function() { -- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); --}; -- -- --/** -- * Inherit the prototype methods from one constructor into another. -- * -- * The Function.prototype.inherits from lang.js rewritten as a standalone -- * function (not on Function.prototype). NOTE: If this file is to be loaded -- * during bootstrapping this function needs to be rewritten using some native -- * functions as prototype setup using normal JavaScript does not work as -- * expected during bootstrapping (see mirror.js in r114903). -- * -- * @param {function} ctor Constructor function which needs to inherit the -- * prototype. -- * @param {function} superCtor Constructor function to inherit prototype from. -- */ --exports.inherits = function(ctor, superCtor) { -- ctor.super_ = superCtor; -- ctor.prototype = Object.create(superCtor.prototype, { -- constructor: { -- value: ctor, -- enumerable: false, -- writable: true, -- configurable: true -- } -- }); --}; -- --exports._extend = function(origin, add) { -- // Don't do anything if add isn't an object -- if (!add || !isObject(add)) return origin; -- -- var keys = Object.keys(add); -- var i = keys.length; -- while (i--) { -- origin[keys[i]] = add[keys[i]]; -- } -- return origin; --}; -- --function hasOwnProperty(obj, prop) { -- return Object.prototype.hasOwnProperty.call(obj, prop); --} -- -- --// Deprecated old stuff. -- --exports.p = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- console.error(exports.inspect(arguments[i])); -- } --}, 'util.p: Use console.error() instead'); -- -- --exports.exec = exports.deprecate(function() { -- return require('child_process').exec.apply(this, arguments); --}, 'util.exec is now called `child_process.exec`.'); -- -- --exports.print = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(String(arguments[i])); -- } --}, 'util.print: Use console.log instead'); -- -- --exports.puts = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(arguments[i] + '\n'); -- } --}, 'util.puts: Use console.log instead'); -- -- --exports.debug = exports.deprecate(function(x) { -- process.stderr.write('DEBUG: ' + x + '\n'); --}, 'util.debug: Use console.error instead'); -- -- --exports.error = exports.deprecate(function(x) { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stderr.write(arguments[i] + '\n'); -- } --}, 'util.error: Use console.error instead'); -- -- --exports.pump = exports.deprecate(function(readStream, writeStream, callback) { -- var callbackCalled = false; -- -- function call(a, b, c) { -- if (callback && !callbackCalled) { -- callback(a, b, c); -- callbackCalled = true; -- } -- } -- -- readStream.addListener('data', function(chunk) { -- if (writeStream.write(chunk) === false) readStream.pause(); -- }); -- -- writeStream.addListener('drain', function() { -- readStream.resume(); -- }); -- -- readStream.addListener('end', function() { -- writeStream.end(); -- }); -- -- readStream.addListener('close', function() { -- call(); -- }); -- -- readStream.addListener('error', function(err) { -- writeStream.end(); -- call(err); -- }); -- -- writeStream.addListener('error', function(err) { -- readStream.destroy(); -- call(err); -- }); --}, 'util.pump(): Use readableStream.pipe() instead'); -- -- --var uv; --exports._errnoException = function(err, syscall) { -- if (isUndefined(uv)) uv = process.binding('uv'); -- var errname = uv.errname(err); -- var e = new Error(syscall + ' ' + errname); -- e.code = errname; -- e.errno = errname; -- e.syscall = syscall; -- return e; --}; -+} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js deleted file mode 100644 index ff4c851c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. - -function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = Buffer.isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/package.json deleted file mode 100644 index 37decd1e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_args": [ - [ - "core-util-is@~1.0.0", - "/Users/rebecca/code/npm/node_modules/npm-registry-couchapp/node_modules/readable-stream" - ], - [ - "core-util-is@~1.0.0", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ] - ], - "_from": "core-util-is@>=1.0.0 <1.1.0", - "_id": "core-util-is@1.0.2", - "_inCache": true, - "_installable": true, - "_location": "/readable-stream/core-util-is", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "core-util-is", - "raw": "core-util-is@~1.0.0", - "rawSpec": "~1.0.0", - "scope": null, - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "core-util-is@~1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/readable-stream", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/core-util-is/issues" - }, - "dependencies": {}, - "description": "The `util.is*` functions introduced in Node v0.12.", - "devDependencies": { - "tap": "^2.3.0" - }, - "directories": {}, - "dist": { - "shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "tarball": "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "gitHead": "a177da234df5638b363ddc15fa324619a38577c8", - "homepage": "https://github.com/isaacs/core-util-is#readme", - "keywords": [ - "isArray", - "isBuffer", - "isNumber", - "isRegExp", - "isString", - "isThat", - "isThis", - "polyfill", - "util" - ], - "license": "MIT", - "main": "lib/util.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "name": "core-util-is", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/core-util-is.git" - }, - "scripts": { - "test": "tap test.js" - }, - "version": "1.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/test.js deleted file mode 100644 index 1a490c65..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/test.js +++ /dev/null @@ -1,68 +0,0 @@ -var assert = require('tap'); - -var t = require('./lib/util'); - -assert.equal(t.isArray([]), true); -assert.equal(t.isArray({}), false); - -assert.equal(t.isBoolean(null), false); -assert.equal(t.isBoolean(true), true); -assert.equal(t.isBoolean(false), true); - -assert.equal(t.isNull(null), true); -assert.equal(t.isNull(undefined), false); -assert.equal(t.isNull(false), false); -assert.equal(t.isNull(), false); - -assert.equal(t.isNullOrUndefined(null), true); -assert.equal(t.isNullOrUndefined(undefined), true); -assert.equal(t.isNullOrUndefined(false), false); -assert.equal(t.isNullOrUndefined(), true); - -assert.equal(t.isNumber(null), false); -assert.equal(t.isNumber('1'), false); -assert.equal(t.isNumber(1), true); - -assert.equal(t.isString(null), false); -assert.equal(t.isString('1'), true); -assert.equal(t.isString(1), false); - -assert.equal(t.isSymbol(null), false); -assert.equal(t.isSymbol('1'), false); -assert.equal(t.isSymbol(1), false); -assert.equal(t.isSymbol(Symbol()), true); - -assert.equal(t.isUndefined(null), false); -assert.equal(t.isUndefined(undefined), true); -assert.equal(t.isUndefined(false), false); -assert.equal(t.isUndefined(), true); - -assert.equal(t.isRegExp(null), false); -assert.equal(t.isRegExp('1'), false); -assert.equal(t.isRegExp(new RegExp()), true); - -assert.equal(t.isObject({}), true); -assert.equal(t.isObject([]), true); -assert.equal(t.isObject(new RegExp()), true); -assert.equal(t.isObject(new Date()), true); - -assert.equal(t.isDate(null), false); -assert.equal(t.isDate('1'), false); -assert.equal(t.isDate(new Date()), true); - -assert.equal(t.isError(null), false); -assert.equal(t.isError({ err: true }), false); -assert.equal(t.isError(new Error()), true); - -assert.equal(t.isFunction(null), false); -assert.equal(t.isFunction({ }), false); -assert.equal(t.isFunction(function() {}), true); - -assert.equal(t.isPrimitive(null), true); -assert.equal(t.isPrimitive(''), true); -assert.equal(t.isPrimitive(0), true); -assert.equal(t.isPrimitive(new Date()), false); - -assert.equal(t.isBuffer(null), false); -assert.equal(t.isBuffer({}), false); -assert.equal(t.isBuffer(new Buffer(0)), true); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/.travis.yml deleted file mode 100644 index cc4dba29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/Makefile deleted file mode 100644 index 787d56e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -test: - @node_modules/.bin/tape test.js - -.PHONY: test - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/README.md deleted file mode 100644 index 16d2c59c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/README.md +++ /dev/null @@ -1,60 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray) -[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray) - -[![browser support](https://ci.testling.com/juliangruber/isarray.png) -](https://ci.testling.com/juliangruber/isarray) - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/component.json deleted file mode 100644 index 9e31b683..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/index.js deleted file mode 100644 index a57f6349..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/index.js +++ /dev/null @@ -1,5 +0,0 @@ -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/package.json deleted file mode 100644 index a6ff18fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "_args": [ - [ - "isarray@~1.0.0", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ] - ], - "_from": "isarray@>=1.0.0 <1.1.0", - "_id": "isarray@1.0.0", - "_inCache": true, - "_installable": true, - "_location": "/readable-stream/isarray", - "_nodeVersion": "5.1.0", - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "isarray", - "raw": "isarray@~1.0.0", - "rawSpec": "~1.0.0", - "scope": null, - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/readable-stream" - ], - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "_shasum": "bb935d48582cba168c06834957a54a3e07124f11", - "_shrinkwrap": null, - "_spec": "isarray@~1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/readable-stream", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" - }, - "dependencies": {}, - "description": "Array#isArray for older browsers", - "devDependencies": { - "tape": "~2.13.4" - }, - "directories": {}, - "dist": { - "shasum": "bb935d48582cba168c06834957a54a3e07124f11", - "tarball": "http://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "gitHead": "2a23a281f369e9ae06394c0fb4d2381355a6ba33", - "homepage": "https://github.com/juliangruber/isarray", - "keywords": [ - "browser", - "isarray", - "array" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - } - ], - "name": "isarray", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "scripts": { - "test": "tape test.js" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/17..latest", - "firefox/nightly", - "chrome/22..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test.js" - }, - "version": "1.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/test.js deleted file mode 100644 index e0c3444d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/isarray/test.js +++ /dev/null @@ -1,20 +0,0 @@ -var isArray = require('./'); -var test = require('tape'); - -test('is array', function(t){ - t.ok(isArray([])); - t.notOk(isArray({})); - t.notOk(isArray(null)); - t.notOk(isArray(false)); - - var obj = {}; - obj[0] = true; - t.notOk(isArray(obj)); - - var arr = []; - arr.foo = 'bar'; - t.ok(isArray(arr)); - - t.end(); -}); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml deleted file mode 100644 index 36201b10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.11" - - "0.12" - - "1.7.1" - - 1 - - 2 - - 3 - - 4 - - 5 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/index.js deleted file mode 100644 index a4f40f84..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/index.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = nextTick; -} else { - module.exports = process.nextTick; -} - -function nextTick(fn, arg1, arg2, arg3) { - if (typeof fn !== 'function') { - throw new TypeError('"callback" argument must be a function'); - } - var len = arguments.length; - var args, i; - switch (len) { - case 0: - case 1: - return process.nextTick(fn); - case 2: - return process.nextTick(function afterTickOne() { - fn.call(null, arg1); - }); - case 3: - return process.nextTick(function afterTickTwo() { - fn.call(null, arg1, arg2); - }); - case 4: - return process.nextTick(function afterTickThree() { - fn.call(null, arg1, arg2, arg3); - }); - default: - args = new Array(len - 1); - i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - return process.nextTick(function afterTick() { - fn.apply(null, args); - }); - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/license.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/license.md deleted file mode 100644 index c67e3532..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/license.md +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (c) 2015 Calvin Metcalf - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/package.json deleted file mode 100644 index a0d2aaae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "_args": [ - [ - "process-nextick-args@~1.0.6", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ] - ], - "_from": "process-nextick-args@>=1.0.6 <1.1.0", - "_id": "process-nextick-args@1.0.7", - "_inCache": true, - "_installable": true, - "_location": "/readable-stream/process-nextick-args", - "_nodeVersion": "5.11.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/process-nextick-args-1.0.7.tgz_1462394251778_0.36989671061746776" - }, - "_npmUser": { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - }, - "_npmVersion": "3.8.6", - "_phantomChildren": {}, - "_requested": { - "name": "process-nextick-args", - "raw": "process-nextick-args@~1.0.6", - "rawSpec": "~1.0.6", - "scope": null, - "spec": ">=1.0.6 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/readable-stream" - ], - "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "_shasum": "150e20b756590ad3f91093f25a4f2ad8bff30ba3", - "_shrinkwrap": null, - "_spec": "process-nextick-args@~1.0.6", - "_where": "/Users/rebecca/code/npm/node_modules/readable-stream", - "author": "", - "bugs": { - "url": "https://github.com/calvinmetcalf/process-nextick-args/issues" - }, - "dependencies": {}, - "description": "process.nextTick but always with args", - "devDependencies": { - "tap": "~0.2.6" - }, - "directories": {}, - "dist": { - "shasum": "150e20b756590ad3f91093f25a4f2ad8bff30ba3", - "tarball": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" - }, - "gitHead": "5c00899ab01dd32f93ad4b5743da33da91404f39", - "homepage": "https://github.com/calvinmetcalf/process-nextick-args", - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - } - ], - "name": "process-nextick-args", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" - }, - "scripts": { - "test": "node test.js" - }, - "version": "1.0.7" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/readme.md deleted file mode 100644 index 78e7cfae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -process-nextick-args -===== - -[![Build Status](https://travis-ci.org/calvinmetcalf/process-nextick-args.svg?branch=master)](https://travis-ci.org/calvinmetcalf/process-nextick-args) - -```bash -npm install --save process-nextick-args -``` - -Always be able to pass arguments to process.nextTick, no matter the platform - -```js -var nextTick = require('process-nextick-args'); - -nextTick(function (a, b, c) { - console.log(a, b, c); -}, 'step', 3, 'profit'); -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/test.js deleted file mode 100644 index ef157215..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/test.js +++ /dev/null @@ -1,24 +0,0 @@ -var test = require("tap").test; -var nextTick = require('./'); - -test('should work', function (t) { - t.plan(5); - nextTick(function (a) { - t.ok(a); - nextTick(function (thing) { - t.equals(thing, 7); - }, 7); - }, true); - nextTick(function (a, b, c) { - t.equals(a, 'step'); - t.equals(b, 3); - t.equals(c, 'profit'); - }, 'step', 3, 'profit'); -}); - -test('correct number of arguments', function (t) { - t.plan(1); - nextTick(function () { - t.equals(2, arguments.length, 'correct number'); - }, 1, 2); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/.npmignore deleted file mode 100644 index 206320cc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -build -test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/LICENSE deleted file mode 100644 index 6de584a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Joyent, Inc. and other Node contributors. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/README.md deleted file mode 100644 index 4d2aa001..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/README.md +++ /dev/null @@ -1,7 +0,0 @@ -**string_decoder.js** (`require('string_decoder')`) from Node.js core - -Copyright Joyent, Inc. and other Node contributors. See LICENCE file for details. - -Version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.** - -The *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/index.js deleted file mode 100644 index b00e54fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/index.js +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -var Buffer = require('buffer').Buffer; - -var isBufferEncoding = Buffer.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; - default: return false; - } - } - - -function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. CESU-8 is handled as part of the UTF-8 encoding. -// -// @TODO Handling all encodings inside a single object makes it very difficult -// to reason about this code, so it should be split up in the future. -// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code -// points as used by CESU-8. -var StringDecoder = exports.StringDecoder = function(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; -}; - - -// write decodes the given buffer and returns it as JS string that is -// guaranteed to not contain any partial multi-byte characters. Any partial -// character found at the end of the buffer is buffered up, and will be -// returned when calling write again with the remaining bytes. -// -// Note: Converting a Buffer containing an orphan surrogate to a String -// currently works, but converting a String to a Buffer (via `new Buffer`, or -// Buffer#write) will replace incomplete surrogates with the unicode -// replacement character. See https://codereview.chromium.org/121173009/ . -StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; -}; - -// detectIncompleteChar determines if there is an incomplete UTF-8 character at -// the end of the given buffer. If so, it sets this.charLength to the byte -// length that character, and sets this.charReceived to the number of bytes -// that are available for this character. -StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; -}; - -StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; -}; - -function passThroughWrite(buffer) { - return buffer.toString(this.encoding); -} - -function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; -} - -function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/package.json deleted file mode 100644 index 53cdd392..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "_args": [ - [ - "string_decoder@~0.10.x", - "/Users/rebecca/code/npm/node_modules/npm-registry-couchapp/node_modules/readable-stream" - ], - [ - "string_decoder@~0.10.x", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ] - ], - "_from": "string_decoder@>=0.10.0 <0.11.0", - "_id": "string_decoder@0.10.31", - "_inCache": true, - "_installable": true, - "_location": "/readable-stream/string_decoder", - "_npmUser": { - "email": "rod@vagg.org", - "name": "rvagg" - }, - "_npmVersion": "1.4.23", - "_phantomChildren": {}, - "_requested": { - "name": "string_decoder", - "raw": "string_decoder@~0.10.x", - "rawSpec": "~0.10.x", - "scope": null, - "spec": ">=0.10.0 <0.11.0", - "type": "range" - }, - "_requiredBy": [ - "/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "string_decoder@~0.10.x", - "_where": "/Users/rebecca/code/npm/node_modules/readable-stream", - "bugs": { - "url": "https://github.com/rvagg/string_decoder/issues" - }, - "dependencies": {}, - "description": "The string_decoder module from Node core", - "devDependencies": { - "tap": "~0.4.8" - }, - "directories": {}, - "dist": { - "shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "tarball": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "gitHead": "d46d4fd87cf1d06e031c23f1ba170ca7d4ade9a0", - "homepage": "https://github.com/rvagg/string_decoder", - "keywords": [ - "browser", - "browserify", - "decoder", - "string" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - }, - { - "name": "rvagg", - "email": "rod@vagg.org" - } - ], - "name": "string_decoder", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/rvagg/string_decoder.git" - }, - "scripts": { - "test": "tap test/simple/*.js" - }, - "version": "0.10.31" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/History.md deleted file mode 100644 index acc86753..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/History.md +++ /dev/null @@ -1,16 +0,0 @@ - -1.0.2 / 2015-10-07 -================== - - * use try/catch when checking `localStorage` (#3, @kumavis) - -1.0.1 / 2014-11-25 -================== - - * browser: use `console.warn()` for deprecation calls - * browser: more jsdocs - -1.0.0 / 2014-04-30 -================== - - * initial commit diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/LICENSE deleted file mode 100644 index 6a60e8c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/README.md deleted file mode 100644 index 75622fa7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/README.md +++ /dev/null @@ -1,53 +0,0 @@ -util-deprecate -============== -### The Node.js `util.deprecate()` function with browser support - -In Node.js, this module simply re-exports the `util.deprecate()` function. - -In the web browser (i.e. via browserify), a browser-specific implementation -of the `util.deprecate()` function is used. - - -## API - -A `deprecate()` function is the only thing exposed by this module. - -``` javascript -// setup: -exports.foo = deprecate(foo, 'foo() is deprecated, use bar() instead'); - - -// users see: -foo(); -// foo() is deprecated, use bar() instead -foo(); -foo(); -``` - - -## License - -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/browser.js deleted file mode 100644 index 549ae2f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/browser.js +++ /dev/null @@ -1,67 +0,0 @@ - -/** - * Module exports. - */ - -module.exports = deprecate; - -/** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - -function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -} - -/** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - -function config (name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!global.localStorage) return false; - } catch (_) { - return false; - } - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/node.js deleted file mode 100644 index 5e6fcff5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/node.js +++ /dev/null @@ -1,6 +0,0 @@ - -/** - * For Node.js, simply re-export the core `util.deprecate` function. - */ - -module.exports = require('util').deprecate; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json deleted file mode 100644 index 3681a0e5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "_args": [ - [ - "util-deprecate@~1.0.1", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ] - ], - "_from": "util-deprecate@>=1.0.1 <1.1.0", - "_id": "util-deprecate@1.0.2", - "_inCache": true, - "_installable": true, - "_location": "/readable-stream/util-deprecate", - "_nodeVersion": "4.1.2", - "_npmUser": { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - }, - "_npmVersion": "2.14.4", - "_phantomChildren": {}, - "_requested": { - "name": "util-deprecate", - "raw": "util-deprecate@~1.0.1", - "rawSpec": "~1.0.1", - "scope": null, - "spec": ">=1.0.1 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/readable-stream" - ], - "_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "_shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "_shrinkwrap": null, - "_spec": "util-deprecate@~1.0.1", - "_where": "/Users/rebecca/code/npm/node_modules/readable-stream", - "author": { - "email": "nathan@tootallnate.net", - "name": "Nathan Rajlich", - "url": "http://n8.io/" - }, - "browser": "browser.js", - "bugs": { - "url": "https://github.com/TooTallNate/util-deprecate/issues" - }, - "dependencies": {}, - "description": "The Node.js `util.deprecate()` function with browser support", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "tarball": "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - }, - "gitHead": "475fb6857cd23fafff20c1be846c1350abf8e6d4", - "homepage": "https://github.com/TooTallNate/util-deprecate", - "keywords": [ - "browser", - "browserify", - "deprecate", - "node", - "util" - ], - "license": "MIT", - "main": "node.js", - "maintainers": [ - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "name": "util-deprecate", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/util-deprecate.git" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "version": "1.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/package.json deleted file mode 100644 index ef5ff11b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/package.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "_args": [ - [ - { - "name": "readable-stream", - "raw": "readable-stream@2.1.3", - "rawSpec": "2.1.3", - "scope": null, - "spec": "2.1.3", - "type": "version" - }, - "/Users/zkat/Documents/code/npm" - ] - ], - "_from": "readable-stream@2.1.3", - "_id": "readable-stream@2.1.3", - "_inCache": true, - "_installable": true, - "_location": "/readable-stream", - "_nodeVersion": "5.11.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/readable-stream-2.1.3.tgz_1463587875388_0.811288726516068" - }, - "_npmUser": { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - }, - "_npmVersion": "3.8.6", - "_phantomChildren": {}, - "_requested": { - "name": "readable-stream", - "raw": "readable-stream@2.1.3", - "rawSpec": "2.1.3", - "scope": null, - "spec": "2.1.3", - "type": "version" - }, - "_requiredBy": [ - "/", - "/fs-write-stream-atomic", - "/npmlog/are-we-there-yet", - "/sha", - "/tap", - "/tap/tap-parser" - ], - "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.3.tgz", - "_shasum": "9db8ec4025b4c71e69aec60b453b590c8afeb0df", - "_shrinkwrap": null, - "_spec": "readable-stream@2.1.3", - "_where": "/Users/zkat/Documents/code/npm", - "browser": { - "util": false - }, - "bugs": { - "url": "https://github.com/nodejs/readable-stream/issues" - }, - "dependencies": { - "buffer-shims": "^1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - }, - "description": "Streams3, a user-land copy of the stream library from Node.js", - "devDependencies": { - "assert": "~1.4.0", - "nyc": "^6.4.0", - "tap": "~0.7.1", - "tape": "~4.5.1", - "zuul": "~3.9.0" - }, - "directories": {}, - "dist": { - "shasum": "9db8ec4025b4c71e69aec60b453b590c8afeb0df", - "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.3.tgz" - }, - "gitHead": "abcff84645534aaedaed4192c4ce788af9112bc2", - "homepage": "https://github.com/nodejs/readable-stream#readme", - "keywords": [ - "readable", - "stream", - "pipe" - ], - "license": "MIT", - "main": "readable.js", - "maintainers": [ - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - }, - { - "email": "rod@vagg.org", - "name": "rvagg" - }, - { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - } - ], - "name": "readable-stream", - "nyc": { - "include": [ - "lib/**.js" - ] - }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream.git" - }, - "scripts": { - "browser": "npm run write-zuul && zuul -- test/browser.js", - "cover": "nyc npm test", - "local": "zuul --local -- test/browser.js", - "report": "nyc report --reporter=lcov", - "test": "tap test/parallel/*.js test/ours/*.js", - "write-zuul": "printf \"ui: tape\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml" - }, - "version": "2.1.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/passthrough.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/passthrough.js deleted file mode 100644 index 27e8d8a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/passthrough.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_passthrough.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/readable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/readable.js deleted file mode 100644 index be2688a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/readable.js +++ /dev/null @@ -1,16 +0,0 @@ -var Stream = (function (){ - try { - return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify - } catch(_){} -}()); -exports = module.exports = require('./lib/_stream_readable.js'); -exports.Stream = Stream || exports; -exports.Readable = exports; -exports.Writable = require('./lib/_stream_writable.js'); -exports.Duplex = require('./lib/_stream_duplex.js'); -exports.Transform = require('./lib/_stream_transform.js'); -exports.PassThrough = require('./lib/_stream_passthrough.js'); - -if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) { - module.exports = Stream; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/transform.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/transform.js deleted file mode 100644 index 5d482f07..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/transform.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_transform.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/writable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/writable.js deleted file mode 100644 index e1e9efdf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readable-stream/writable.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_writable.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/.travis.yml deleted file mode 100644 index e1bcee1a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: node_js -before_script: npm install -g npm@latest -node_js: - - '0.8' - - '0.10' - - '0.12' - - 'iojs' diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/README.md deleted file mode 100644 index ade57a18..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# readdir-scoped-modules - -Like `fs.readdir` but handling `@org/module` dirs as if they were -a single entry. - -Used by npm. - -## USAGE - -```javascript -var readdir = require('readdir-scoped-modules') - -readdir('node_modules', function (er, entries) { - // entries will be something like - // ['a', '@org/foo', '@org/bar'] -}) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/package.json deleted file mode 100644 index 7ca808a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/package.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "readdir-scoped-modules", - "version": "1.0.2", - "description": "Like `fs.readdir` but handling `@org/module` dirs as if they were a single entry.", - "main": "readdir.js", - "directories": { - "test": "test" - }, - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - }, - "devDependencies": { - "tap": "^1.2.0" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/readdir-scoped-modules.git" - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/readdir-scoped-modules/issues" - }, - "homepage": "https://github.com/npm/readdir-scoped-modules", - "gitHead": "d41d5de877cb4e9e3f14b92913132680af73d1b4", - "_id": "readdir-scoped-modules@1.0.2", - "_shasum": "9fafa37d286be5d92cbaebdee030dc9b5f406747", - "_from": "readdir-scoped-modules@1.0.2", - "_npmVersion": "2.14.3", - "_nodeVersion": "2.2.2", - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" - }, - "dist": { - "shasum": "9fafa37d286be5d92cbaebdee030dc9b5f406747", - "tarball": "http://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "_resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/readdir.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/readdir.js deleted file mode 100644 index efbe5526..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/readdir.js +++ /dev/null @@ -1,71 +0,0 @@ -var fs = require ('graceful-fs') -var dz = require ('dezalgo') -var once = require ('once') -var path = require ('path') -var debug = require ('debuglog') ('rds') - -module . exports = readdir - -function readdir (dir, cb) { - fs . readdir (dir, function (er, kids) { - if (er) - return cb (er) - - debug ('dir=%j, kids=%j', dir, kids) - readScopes (dir, kids, function (er, data) { - if (er) - return cb (er) - - // Sort for bonus consistency points - data = data . sort (function (a, b) { - return a > b ? 1 : -1 - }) - - return cb (null, data) - }) - }) -} - -// Turn [ 'a', '@scope' ] into -// ['a', '@scope/foo', '@scope/bar'] -function readScopes (root, kids, cb) { - var scopes = kids . filter (function (kid) { - return kid . charAt (0) === '@' - }) - - kids = kids . filter (function (kid) { - return kid . charAt (0) !== '@' - }) - - debug ('scopes=%j', scopes) - - if (scopes . length === 0) - dz (cb) (null, kids) // prevent maybe-sync zalgo release - - cb = once (cb) - var l = scopes . length - scopes . forEach (function (scope) { - var scopedir = path . resolve (root, scope) - debug ('root=%j scope=%j scopedir=%j', root, scope, scopedir) - fs . readdir (scopedir, then . bind (null, scope)) - }) - - function then (scope, er, scopekids) { - if (er) - return cb (er) - - // XXX: Not sure how old this node bug is. Maybe superstition? - scopekids = scopekids . filter (function (scopekid) { - return !(scopekid === '.' || scopekid === '..' || !scopekid) - }) - - kids . push . apply (kids, scopekids . map (function (scopekid) { - return scope + '/' + scopekid - })) - - debug ('scope=%j scopekids=%j kids=%j', scope, scopekids, kids) - - if (--l === 0) - cb (null, kids) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/basic.js deleted file mode 100644 index 715c40d5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/basic.js +++ /dev/null @@ -1,14 +0,0 @@ -var test = require ('tap') . test -var readdir = require ('../readdir.js') - -test ('basic', function (t) { - // should not get {a,b}/{x,y}, but SHOULD get @org/ and @scope children - var expect = [ '@org/x', '@org/y', '@scope/x', '@scope/y', 'a', 'b' ] - - readdir (__dirname + '/fixtures', function (er, kids) { - if (er) - throw er - t.same(kids, expect) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/@org/x/.keep b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/@org/x/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/@org/y/.keep b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/@org/y/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/@scope/x/.keep b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/@scope/x/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/@scope/y/.keep b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/@scope/y/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/a/x/.keep b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/a/x/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/a/y/.keep b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/a/y/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/b/x/.keep b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/b/x/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/b/y/.keep b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/readdir-scoped-modules/test/fixtures/b/y/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/.npmignore deleted file mode 100644 index 926ddf61..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -*~ -.#* -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/LICENSE deleted file mode 100644 index 45055763..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/README.md deleted file mode 100644 index dac3b64c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/README.md +++ /dev/null @@ -1,69 +0,0 @@ -realize-package-specifier -------------------------- - -Parse a package specifier, peeking at the disk to differentiate between -local tarballs, directories and named modules. This implements the logic -used by `npm install` and `npm cache` to determine where to get packages -from. - -```javascript -var realizePackageSpecifier = require("realize-package-specifier") -realizePackageSpecifier("foo.tar.gz", ".", function (err, package) { - … -}) -``` - -## Using - -* realizePackageSpecifier(*spec*, [*where*,] *callback*) - -Parses *spec* using `npm-package-arg` and then uses stat to check to see if -it refers to a local tarball or package directory. Stats are done relative -to *where*. If it does then the local module is loaded. If it doesn't then -target is left as a remote package specifier. Package directories are -recognized by the presence of a package.json in them. - -*spec* -- a package specifier, like: `foo@1.2`, or `foo@user/foo`, or -`http://x.com/foo.tgz`, or `git+https://github.com/user/foo` - -*where* (optional, default: .) -- The directory in which we should look for -local tarballs or package directories. - -*callback* function(*err*, *result*) -- Called once we've determined what -kind of specifier this is. The *result* object will be very like the one -returned by `npm-package-arg` except with three differences: 1) There's a -new type of `directory`. 2) The `local` type only refers to tarballs. 2) -For all `local` and `directory` type results spec will contain the full path of -the local package. - -## Result Object - -The full definition of the result object is: - -* `name` - If known, the `name` field expected in the resulting pkg. -* `type` - One of the following strings: - * `git` - A git repo - * `hosted` - A hosted project, from github, bitbucket or gitlab. Originally - either a full url pointing at one of these services or a shorthand like - `user/project` or `github:user/project` for github or `bitbucket:user/project` - for bitbucket. - * `tag` - A tagged version, like `"foo@latest"` - * `version` - A specific version number, like `"foo@1.2.3"` - * `range` - A version range, like `"foo@2.x"` - * `local` - A local file path - * `directory` - A local package directory - * `remote` - An http url (presumably to a tgz) -* `spec` - The "thing". URL, the range, git repo, etc. -* `hosted` - If type=hosted this will be an object with the following keys: - * `type` - github, bitbucket or gitlab - * `ssh` - The ssh path for this git repo - * `sshurl` - The ssh URL for this git repo - * `https` - The HTTPS URL for this git repo - * `directUrl` - The URL for the package.json in this git repo -* `raw` - The original un-modified string that was provided. -* `rawSpec` - The part after the `name@...`, as it was originally - provided. -* `scope` - If a name is something like `@org/module` then the `scope` - field will be set to `org`. If it doesn't have a scoped name, then - scope is `null`. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/index.js deleted file mode 100644 index eae8fbaf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/index.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict" -var fs = require("fs") -var path = require("path") -var dz = require("dezalgo") -var npa = require("npm-package-arg") - -module.exports = function (spec, where, cb) { - if (where instanceof Function) { cb = where; where = null } - if (where == null) where = "." - cb = dz(cb) - try { - var dep = npa(spec) - } - catch (e) { - return cb(e) - } - if ((dep.type == "range" || dep.type == "version") && dep.name != dep.raw) return cb(null, dep) - var specpath = dep.type == "local" - ? path.resolve(where, dep.spec) - : path.resolve(where, dep.rawSpec? dep.rawSpec: dep.name) - fs.stat(specpath, function (er, s) { - if (er) return finalize() - if (!s.isDirectory()) return finalize("local") - fs.stat(path.join(specpath, "package.json"), function (er) { - finalize(er ? null : "directory") - }) - }) - function finalize(type) { - if (type != null && type != dep.type) { - dep.type = type - if (! dep.rawSpec) { - dep.rawSpec = dep.name - dep.name = null - } - } - if (dep.type == "local" || dep.type == "directory") { - dep.spec = path.resolve(specpath) - } - cb(null, dep) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/package.json deleted file mode 100644 index d2fb6da2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "_args": [ - [ - "realize-package-specifier@~3.0.2", - "/Users/rebecca/code/npm" - ] - ], - "_from": "realize-package-specifier@>=3.0.2 <3.1.0", - "_id": "realize-package-specifier@3.0.3", - "_inCache": true, - "_installable": true, - "_location": "/realize-package-specifier", - "_nodeVersion": "4.4.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/realize-package-specifier-3.0.3.tgz_1461233015050_0.3224435243755579" - }, - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "3.8.7", - "_phantomChildren": {}, - "_requested": { - "name": "realize-package-specifier", - "raw": "realize-package-specifier@~3.0.2", - "rawSpec": "~3.0.2", - "scope": null, - "spec": ">=3.0.2 <3.1.0", - "type": "range" - }, - "_requiredBy": [ - "/" - ], - "_shasum": "d0def882952b8de3f67eba5e91199661271f41f4", - "_shrinkwrap": null, - "_spec": "realize-package-specifier@~3.0.2", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "me@re-becca.org", - "name": "Rebecca Turner", - "url": "http://re-becca.org" - }, - "bugs": { - "url": "https://github.com/npm/realize-package-specifier/issues" - }, - "dependencies": { - "dezalgo": "^1.0.1", - "npm-package-arg": "^4.1.1" - }, - "description": "Like npm-package-arg, but more so, producing full file paths and differentiating local tar and directory sources.", - "devDependencies": { - "require-inject": "^1.1.0", - "tap": "^5.7.1" - }, - "directories": {}, - "dist": { - "shasum": "d0def882952b8de3f67eba5e91199661271f41f4", - "tarball": "https://registry.npmjs.org/realize-package-specifier/-/realize-package-specifier-3.0.3.tgz" - }, - "gitHead": "388221ee8e5b586932372949091aa2ee3ee7ab78", - "homepage": "https://github.com/npm/realize-package-specifier", - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "email": "me@re-becca.org", - "name": "iarna" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "realize-package-specifier", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/realize-package-specifier.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "3.0.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/basic.js deleted file mode 100644 index 692ca07d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/basic.js +++ /dev/null @@ -1,143 +0,0 @@ -"use strict" -var test = require("tap").test -var requireInject = require("require-inject") -var path = require("path") - -var re = { - tarball: /[/\\]a.tar.gz$/, - packagedir: /[/\\]b$/, - packagejson: /[/\\]b[/\\]package.json$/, - nonpackagedir: /[/\\]c$/, - nopackagejson: /[/\\]c[/\\]package.json$/, - remotename: /[/\\]d$/, - packagedirlikegithub: /[/\\]e[/\\]1$/, - packagejsonlikegithub: /[/\\]e[/\\]1[/\\]package.json$/, - github: /[/\\]e[/\\]2$/, - localrangefile: /[/\\]1[.]0[.]0$/, - localverfile: /[/\\]1$/ -} - -var rps = requireInject("../index", { - "fs": { - "stat": function (path, callback) { - if (re.tarball.test(path)) { - callback(null,{isDirectory:function(){ return false }}) - } - else if (re.packagedir.test(path)) { - callback(null,{isDirectory:function(){ return true }}) - } - else if (re.packagejson.test(path)) { - callback(null,{}) - } - else if (re.nonpackagedir.test(path)) { - callback(null,{isDirectory:function(){ return true }}) - } - else if (re.nopackagejson.test(path)) { - callback(new Error("EFILENOTFOUND")) - } - else if (re.remotename.test(path)) { - callback(new Error("EFILENOTFOUND")) - } - else if (re.packagedirlikegithub.test(path)) { - callback(null,{isDirectory:function(){ return true }}) - } - else if (re.packagejsonlikegithub.test(path)) { - callback(null,{}) - } - else if (re.github.test(path)) { - callback(new Error("EFILENOTFOUND")) - } - else if (re.localverfile.test(path)) { - callback(null,{isDirectory:function(){ return false }}) - } - else if (re.localrangefile.test(path)) { - callback(null,{isDirectory:function(){ return false }}) - } - else { - throw new Error("Unknown stat fixture path: "+path) - } - } - } -}) - -test("realize-package-specifier", function (t) { - t.plan(13) - rps("a.tar.gz", function (err, result) { - t.is(result.type, "local", "local tarball") - }) - rps("b", function (err, result) { - t.is(result.type, "directory", "local package directory") - }) - rps("c", function (err, result) { - t.is(result.type, "tag", "remote package, non-package local directory") - }) - rps("d", function (err, result) { - t.is(result.type, "tag", "remote package, no local directory") - }) - rps("file:./a.tar.gz", function (err, result) { - t.is(result.type, "local", "local tarball") - }) - rps("file:./b", function (err, result) { - t.is(result.type, "directory", "local package directory") - }) - rps("file:./c", function (err, result) { - t.is(result.type, "local", "non-package local directory, specified with a file URL") - }) - rps("file:./d", function (err, result) { - t.is(result.type, "local", "no local directory, specified with a file URL") - }) - rps("e/1", function (err, result) { - t.is(result.type, "directory", "local package directory") - }) - rps("e/2", function (err, result) { - t.is(result.type, "hosted", "hosted package dependency") - t.is(result.hosted.type, "github", "github package dependency") - }) - rps("1", function (err, result) { - t.is(result.type, "local", "range like local file is still a local file") - }) - rps("1.0.0", function (err, result) { - t.is(result.type, "local", "version like local file is still a local file") - }) -}) -test("named realize-package-specifier", function (t) { - t.plan(13) - - rps("a@a.tar.gz", function (err, result) { - t.is(result.type, "local", "named local tarball") - }) - rps("b@b", function (err, result) { - t.is(result.type, "directory", "named local package directory") - }) - rps("c@c", function (err, result) { - t.is(result.type, "tag", "remote package, non-package local directory") - }) - rps("d@d", function (err, result) { - t.is(result.type, "tag", "remote package, no local directory") - }) - rps("a@file:./a.tar.gz", function (err, result) { - t.is(result.type, "local", "local tarball") - }) - rps("b@file:./b", function (err, result) { - t.is(result.type, "directory", "local package directory") - }) - rps("c@file:./c", function (err, result) { - t.is(result.type, "local", "non-package local directory, specified with a file URL") - }) - rps("d@file:./d", function (err, result) { - t.is(result.type, "local", "no local directory, specified with a file URL") - }) - rps("e@e/1", function (err, result) { - t.is(result.type, "directory", "local package directory") - }) - rps("e@e/2", function (err, result) { - t.is(result.type, "hosted", "hosted package dependency") - t.is(result.hosted.type, "github", "github package dependency") - }) - rps("e@1", function (err, result) { - t.is(result.type, "range", "range like specifier is never a local file") - }) - rps("e@1.0.0", function (err, result) { - t.is(result.type, "version", "version like specifier is never a local file") - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-basic.js deleted file mode 100644 index 11559117..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-basic.js +++ /dev/null @@ -1,162 +0,0 @@ -var test = require("tap").test; -var rps = require("../index.js") -var path = require("path") - -test("npa-basic", function (t) { - t.setMaxListeners(999) - - var tests = { - "foo@1.2": { - name: "foo", - type: "range", - spec: ">=1.2.0 <1.3.0", - raw: "foo@1.2", - rawSpec: "1.2" - }, - - "@foo/bar": { - raw: "@foo/bar", - name: "@foo/bar", - scope: "@foo", - rawSpec: "", - spec: "latest", - type: "tag" - }, - - "@foo/bar@": { - raw: "@foo/bar@", - name: "@foo/bar", - scope: "@foo", - rawSpec: "", - spec: "latest", - type: "tag" - }, - - "@foo/bar@baz": { - raw: "@foo/bar@baz", - name: "@foo/bar", - scope: "@foo", - rawSpec: "baz", - spec: "baz", - type: "tag" - }, - - "@f fo o al/ a d s ;f ": { - raw: "@f fo o al/ a d s ;f", - name: null, - rawSpec: "@f fo o al/ a d s ;f", - spec: path.resolve("@f fo o al/ a d s ;f"), - type: "local" - }, - - "foo@1.2.3": { - name: "foo", - type: "version", - spec: "1.2.3", - raw: "foo@1.2.3" - }, - - "foo@=v1.2.3": { - name: "foo", - type: "version", - spec: "1.2.3", - raw: "foo@=v1.2.3", - rawSpec: "=v1.2.3" - }, - - "git+ssh://git@notgithub.com/user/foo#1.2.3": { - name: null, - type: "git", - spec: "ssh://git@notgithub.com/user/foo#1.2.3", - raw: "git+ssh://git@notgithub.com/user/foo#1.2.3" - }, - - "git+file://path/to/repo#1.2.3": { - name: null, - type: "git", - spec: "file://path/to/repo#1.2.3", - raw: "git+file://path/to/repo#1.2.3" - }, - - "git://notgithub.com/user/foo": { - name: null, - type: "git", - spec: "git://notgithub.com/user/foo", - raw: "git://notgithub.com/user/foo" - }, - - "@foo/bar@git+ssh://notgithub.com/user/foo": { - name: "@foo/bar", - scope: "@foo", - spec: "ssh://notgithub.com/user/foo", - rawSpec: "git+ssh://notgithub.com/user/foo", - raw: "@foo/bar@git+ssh://notgithub.com/user/foo" - }, - - "/path/to/foo": { - name: null, - type: "local", - spec: "/path/to/foo", - raw: "/path/to/foo" - }, - "file:path/to/foo": { - name: null, - type: "local", - spec: path.resolve(__dirname,"..","path/to/foo"), - raw: "file:path/to/foo" - }, - "file:../path/to/foo": { - name: null, - type: "local", - spec: path.resolve(__dirname,"..","../path/to/foo"), - raw: "file:../path/to/foo" - }, - "file:///path/to/foo": { - name: null, - type: "local", - spec: "/path/to/foo", - raw: "file:///path/to/foo" - }, - - "https://server.com/foo.tgz": { - name: null, - type: "remote", - spec: "https://server.com/foo.tgz", - raw: "https://server.com/foo.tgz" - }, - - "foo@latest": { - name: "foo", - type: "tag", - spec: "latest", - raw: "foo@latest" - }, - - "foo": { - name: "foo", - type: "tag", - spec: "latest", - raw: "foo" - } - } - - t.plan( 2 + Object.keys(tests).length * 3 ) - - Object.keys(tests).forEach(function (arg) { - rps(arg, path.resolve(__dirname,'..'), function(err, res) { - t.notOk(err, arg + " no error") - t.type(res, "Result", arg + " got right result time") - t.has(res, tests[arg], arg + " result has correct values") - }) - }) - - // Completely unreasonable invalid garbage throws an error - rps("this is not a \0 valid package name or url", path.resolve(__dirname,'..'), function (err) { - t.ok(err, "error") - }) - - rps("gopher://yea right", path.resolve(__dirname,'..'), function (err) { - t.ok(err, "Unsupported URL Type: gopher://yea right") - }) - -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-bitbucket.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-bitbucket.js deleted file mode 100644 index 2bef724b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-bitbucket.js +++ /dev/null @@ -1,86 +0,0 @@ -var test = require("tap").test; -var rps = require("../index.js") -var path = require("path") - -test("npa-bitbucket", function (t) { - t.setMaxListeners(999) - - var tests = { - "bitbucket:user/foo-js": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "bitbucket:user/foo-js", - raw: "bitbucket:user/foo-js" - }, - - "bitbucket:user/foo-js#bar/baz": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "bitbucket:user/foo-js#bar/baz", - raw: "bitbucket:user/foo-js#bar/baz" - }, - - "bitbucket:user..blerg--/..foo-js# . . . . . some . tags / / /": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "bitbucket:user..blerg--/..foo-js# . . . . . some . tags / / /", - raw: "bitbucket:user..blerg--/..foo-js# . . . . . some . tags / / /" - }, - - "bitbucket:user/foo-js#bar/baz/bin": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "bitbucket:user/foo-js#bar/baz/bin", - raw: "bitbucket:user/foo-js#bar/baz/bin" - }, - - "foo@bitbucket:user/foo-js": { - name: "foo", - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "bitbucket:user/foo-js", - raw: "foo@bitbucket:user/foo-js" - }, - - "git+ssh://git@bitbucket.org/user/foo#1.2.3": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "git+ssh://git@bitbucket.org/user/foo.git#1.2.3", - raw: "git+ssh://git@bitbucket.org/user/foo#1.2.3" - }, - - "https://bitbucket.org/user/foo.git": { - name: null, - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "git+https://bitbucket.org/user/foo.git", - raw: "https://bitbucket.org/user/foo.git" - }, - - "@foo/bar@git+ssh://bitbucket.org/user/foo": { - name: "@foo/bar", - scope: "@foo", - type: "hosted", - hosted: { type: "bitbucket" }, - spec: "git+ssh://git@bitbucket.org/user/foo.git", - rawSpec: "git+ssh://bitbucket.org/user/foo", - raw: "@foo/bar@git+ssh://bitbucket.org/user/foo" - } - } - - t.plan( Object.keys(tests).length * 3 ) - - Object.keys(tests).forEach(function (arg) { - rps(arg, path.resolve(__dirname,'..'), function(err, res) { - t.notOk(err, "No error") - t.type(res, "Result") - t.has(res, tests[arg]) - }) - }) - -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-github.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-github.js deleted file mode 100644 index 7ae6b254..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-github.js +++ /dev/null @@ -1,110 +0,0 @@ -var test = require("tap").test; -var rps = require("../index.js") -var path = require("path") - -test("npa-github", function (t) { - t.setMaxListeners(999) - - var tests = { - "user/foo-js": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "github:user/foo-js", - raw: "user/foo-js" - }, - - "user/foo-js#bar/baz": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "github:user/foo-js#bar/baz", - raw: "user/foo-js#bar/baz" - }, - - "user..blerg--/..foo-js# . . . . . some . tags / / /": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "github:user..blerg--/..foo-js# . . . . . some . tags / / /", - raw: "user..blerg--/..foo-js# . . . . . some . tags / / /" - }, - - "user/foo-js#bar/baz/bin": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "github:user/foo-js#bar/baz/bin", - raw: "user/foo-js#bar/baz/bin" - }, - - "foo@user/foo-js": { - name: "foo", - type: "hosted", - hosted: { type: "github" }, - spec: "github:user/foo-js", - raw: "foo@user/foo-js" - }, - - "github:user/foo-js": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "github:user/foo-js", - raw: "github:user/foo-js" - }, - - "git+ssh://git@github.com/user/foo#1.2.3": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "git+ssh://git@github.com/user/foo.git#1.2.3", - raw: "git+ssh://git@github.com/user/foo#1.2.3" - }, - - "git://github.com/user/foo": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "git://github.com/user/foo.git", - raw: "git://github.com/user/foo" - }, - - "https://github.com/user/foo.git": { - name: null, - type: "hosted", - hosted: { type: "github" }, - spec: "git+https://github.com/user/foo.git", - raw: "https://github.com/user/foo.git" - }, - - "@foo/bar@git+ssh://github.com/user/foo": { - name: "@foo/bar", - scope: "@foo", - type: "hosted", - hosted: { type: "github" }, - spec: "git+ssh://git@github.com/user/foo.git", - rawSpec: "git+ssh://github.com/user/foo", - raw: "@foo/bar@git+ssh://github.com/user/foo" - }, - - "foo@bar/foo": { - name: "foo", - type: "hosted", - hosted: { type: "github" }, - spec: "github:bar/foo", - raw: "foo@bar/foo" - } - } - - t.plan( Object.keys(tests).length * 3 ) - - Object.keys(tests).forEach(function (arg) { - rps(arg, path.resolve(__dirname,'..'), function(err, res) { - t.notOk(err, "No error") - t.type(res, "Result") - t.has(res, tests[arg]) - }) - }) - -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-gitlab.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-gitlab.js deleted file mode 100644 index c7b45c2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-gitlab.js +++ /dev/null @@ -1,86 +0,0 @@ -var test = require("tap").test; -var rps = require("../index.js") -var path = require("path") - -test("npa-gitlab", function (t) { - t.setMaxListeners(999) - - var tests = { - "gitlab:user/foo-js": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - spec: "gitlab:user/foo-js", - raw: "gitlab:user/foo-js" - }, - - "gitlab:user/foo-js#bar/baz": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - spec: "gitlab:user/foo-js#bar/baz", - raw: "gitlab:user/foo-js#bar/baz" - }, - - "gitlab:user..blerg--/..foo-js# . . . . . some . tags / / /": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - spec: "gitlab:user..blerg--/..foo-js# . . . . . some . tags / / /", - raw: "gitlab:user..blerg--/..foo-js# . . . . . some . tags / / /" - }, - - "gitlab:user/foo-js#bar/baz/bin": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - spec: "gitlab:user/foo-js#bar/baz/bin", - raw: "gitlab:user/foo-js#bar/baz/bin" - }, - - "foo@gitlab:user/foo-js": { - name: "foo", - type: "hosted", - hosted: { type: "gitlab" }, - spec: "gitlab:user/foo-js", - raw: "foo@gitlab:user/foo-js" - }, - - "git+ssh://git@gitlab.com/user/foo#1.2.3": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - spec: "git+ssh://git@gitlab.com/user/foo.git#1.2.3", - raw: "git+ssh://git@gitlab.com/user/foo#1.2.3" - }, - - "https://gitlab.com/user/foo.git": { - name: null, - type: "hosted", - hosted: { type: "gitlab" }, - spec: "git+https://gitlab.com/user/foo.git", - raw: "https://gitlab.com/user/foo.git" - }, - - "@foo/bar@git+ssh://gitlab.com/user/foo": { - name: "@foo/bar", - scope: "@foo", - type: "hosted", - hosted: { type: "gitlab" }, - spec: "git+ssh://git@gitlab.com/user/foo.git", - rawSpec: "git+ssh://gitlab.com/user/foo", - raw: "@foo/bar@git+ssh://gitlab.com/user/foo" - } - } - - t.plan( Object.keys(tests).length * 3 ) - - Object.keys(tests).forEach(function (arg) { - rps(arg, path.resolve(__dirname,'..'), function(err, res) { - t.notOk(err, "No error") - t.type(res, "Result") - t.has(res, tests[arg]) - }) - }) - -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-windows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-windows.js deleted file mode 100644 index f6275bea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/realize-package-specifier/test/npa-windows.js +++ /dev/null @@ -1,42 +0,0 @@ -global.FAKE_WINDOWS = true - -var rps = require('../index.js') -var test = require("tap").test -var path = require("path") - -var cases = { - "C:\\x\\y\\z": { - raw: 'C:\\x\\y\\z', - scope: null, - name: null, - rawSpec: 'C:\\x\\y\\z', - spec: path.resolve('C:\\x\\y\\z'), - type: 'local' - }, - "foo@C:\\x\\y\\z": { - raw: 'foo@C:\\x\\y\\z', - scope: null, - name: 'foo', - rawSpec: 'C:\\x\\y\\z', - spec: path.resolve('C:\\x\\y\\z'), - type: 'local' - }, - "foo@/foo/bar/baz": { - raw: 'foo@/foo/bar/baz', - scope: null, - name: 'foo', - rawSpec: '/foo/bar/baz', - spec: path.resolve('/foo/bar/baz'), - type: 'local' - } -} - -test("parse a windows path", function (t) { - t.plan( Object.keys(cases).length ) - Object.keys(cases).forEach(function (c) { - var expect = cases[c] - rps(c, function(err, actual) { - t.same(actual, expect, c) - }) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/.npmignore deleted file mode 100644 index 67fe11cc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -coverage -tests -node_modules -examples -release.sh -disabled.appveyor.yml diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/.travis.yml deleted file mode 100644 index e5d9bde2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -language: node_js - -node_js: - - node - - 0.12 - - 0.10 - -after_script: - - npm run test-cov - - cat ./coverage/lcov.info | codecov - - cat ./coverage/lcov.info | coveralls - -webhooks: - urls: https://webhooks.gitter.im/e/237280ed4796c19cc626 - on_success: change # options: [always|never|change] default: always - on_failure: always # options: [always|never|change] default: always - on_start: false # default: false - -sudo: false diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/CHANGELOG.md deleted file mode 100644 index ce6826f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/CHANGELOG.md +++ /dev/null @@ -1,623 +0,0 @@ -## Change Log - -### v2.72.0 (2016/04/17) -- [#2176](https://github.com/request/request/pull/2176) Do not try to pipe Gzip responses with no body (@simov) -- [#2175](https://github.com/request/request/pull/2175) Add 'delete' alias for the 'del' API method (@simov, @MuhanZou) -- [#2172](https://github.com/request/request/pull/2172) Add support for deflate content encoding (@czardoz) -- [#2169](https://github.com/request/request/pull/2169) Add callback option (@simov) -- [#2165](https://github.com/request/request/pull/2165) Check for self.req existence inside the write method (@simov) -- [#2167](https://github.com/request/request/pull/2167) Fix TravisCI badge reference master branch (@a0viedo) - -### v2.71.0 (2016/04/12) -- [#2164](https://github.com/request/request/pull/2164) Catch errors from the underlying http module (@simov) - -### v2.70.0 (2016/04/05) -- [#2147](https://github.com/request/request/pull/2147) Update eslint to version 2.5.3 🚀 (@simov, @greenkeeperio-bot) -- [#2009](https://github.com/request/request/pull/2009) Support JSON stringify replacer argument. (@elyobo) -- [#2142](https://github.com/request/request/pull/2142) Update eslint to version 2.5.1 🚀 (@greenkeeperio-bot) -- [#2128](https://github.com/request/request/pull/2128) Update browserify-istanbul to version 2.0.0 🚀 (@greenkeeperio-bot) -- [#2115](https://github.com/request/request/pull/2115) Update eslint to version 2.3.0 🚀 (@simov, @greenkeeperio-bot) -- [#2089](https://github.com/request/request/pull/2089) Fix badges (@simov) -- [#2092](https://github.com/request/request/pull/2092) Update browserify-istanbul to version 1.0.0 🚀 (@greenkeeperio-bot) -- [#2079](https://github.com/request/request/pull/2079) Accept read stream as body option (@simov) -- [#2070](https://github.com/request/request/pull/2070) Update bl to version 1.1.2 🚀 (@greenkeeperio-bot) -- [#2063](https://github.com/request/request/pull/2063) Up bluebird and oauth-sign (@simov) -- [#2058](https://github.com/request/request/pull/2058) Karma fixes for latest versions (@eiriksm) -- [#2057](https://github.com/request/request/pull/2057) Update contributing guidelines (@simov) -- [#2054](https://github.com/request/request/pull/2054) Update qs to version 6.1.0 🚀 (@greenkeeperio-bot) - -### v2.69.0 (2016/01/27) -- [#2041](https://github.com/request/request/pull/2041) restore aws4 as regular dependency (@rmg) - -### v2.68.0 (2016/01/27) -- [#2036](https://github.com/request/request/pull/2036) Add AWS Signature Version 4 (@simov, @mirkods) -- [#2022](https://github.com/request/request/pull/2022) Convert numeric multipart bodies to string (@simov, @feross) -- [#2024](https://github.com/request/request/pull/2024) Update har-validator dependency for nsp advisory #76 (@TylerDixon) -- [#2016](https://github.com/request/request/pull/2016) Update qs to version 6.0.2 🚀 (@greenkeeperio-bot) -- [#2007](https://github.com/request/request/pull/2007) Use the `extend` module instead of util._extend (@simov) -- [#2003](https://github.com/request/request/pull/2003) Update browserify to version 13.0.0 🚀 (@greenkeeperio-bot) -- [#1989](https://github.com/request/request/pull/1989) Update buffer-equal to version 1.0.0 🚀 (@greenkeeperio-bot) -- [#1956](https://github.com/request/request/pull/1956) Check form-data content-length value before setting up the header (@jongyoonlee) -- [#1958](https://github.com/request/request/pull/1958) Use IncomingMessage.destroy method (@simov) -- [#1952](https://github.com/request/request/pull/1952) Adds example for Tor proxy (@prometheansacrifice) -- [#1943](https://github.com/request/request/pull/1943) Update eslint to version 1.10.3 🚀 (@simov, @greenkeeperio-bot) -- [#1924](https://github.com/request/request/pull/1924) Update eslint to version 1.10.1 🚀 (@greenkeeperio-bot) -- [#1915](https://github.com/request/request/pull/1915) Remove content-length and transfer-encoding headers from defaultProxyHeaderWhiteList (@yaxia) - -### v2.67.0 (2015/11/19) -- [#1913](https://github.com/request/request/pull/1913) Update http-signature to version 1.1.0 🚀 (@greenkeeperio-bot) - -### v2.66.0 (2015/11/18) -- [#1906](https://github.com/request/request/pull/1906) Update README URLs based on HTTP redirects (@ReadmeCritic) -- [#1905](https://github.com/request/request/pull/1905) Convert typed arrays into regular buffers (@simov) -- [#1902](https://github.com/request/request/pull/1902) node-uuid@1.4.7 breaks build 🚨 (@greenkeeperio-bot) -- [#1894](https://github.com/request/request/pull/1894) Fix tunneling after redirection from https (Original: #1881) (@simov, @falms) -- [#1893](https://github.com/request/request/pull/1893) Update eslint to version 1.9.0 🚀 (@greenkeeperio-bot) -- [#1852](https://github.com/request/request/pull/1852) Update eslint to version 1.7.3 🚀 (@simov, @greenkeeperio-bot, @paulomcnally, @michelsalib, @arbaaz, @vladimirich, @LoicMahieu, @JoshWillik, @jzaefferer, @ryanwholey, @djchie, @thisconnect, @mgenereu, @acroca, @Sebmaster, @Bloutiouf) -- [#1876](https://github.com/request/request/pull/1876) Implement loose matching for har mime types (@simov) -- [#1875](https://github.com/request/request/pull/1875) Update bluebird to version 3.0.2 🚀 (@simov, @greenkeeperio-bot) -- [#1871](https://github.com/request/request/pull/1871) Update browserify to version 12.0.1 🚀 (@greenkeeperio-bot) -- [#1866](https://github.com/request/request/pull/1866) Add missing quotes on x-token property in README (@miguelmota) -- [#1874](https://github.com/request/request/pull/1874) Fix typo in README.md (@gswalden) -- [#1860](https://github.com/request/request/pull/1860) Improve referer header tests and docs (@simov) -- [#1861](https://github.com/request/request/pull/1861) Remove redundant call to Stream constructor (@watson) -- [#1857](https://github.com/request/request/pull/1857) Fix Referer header to point to the original host name (@simov) -- [#1850](https://github.com/request/request/pull/1850) Update karma-coverage to version 0.5.3 🚀 (@greenkeeperio-bot) -- [#1847](https://github.com/request/request/pull/1847) Use node's latest version when building (@simov) -- [#1836](https://github.com/request/request/pull/1836) Tunnel: fix wrong property name (@Bloutiouf) -- [#1820](https://github.com/request/request/pull/1820) Set href as request.js uses it (@mgenereu) -- [#1840](https://github.com/request/request/pull/1840) Update http-signature to version 1.0.2 🚀 (@greenkeeperio-bot) -- [#1845](https://github.com/request/request/pull/1845) Update istanbul to version 0.4.0 🚀 (@greenkeeperio-bot) - -### v2.65.0 (2015/10/11) -- [#1833](https://github.com/request/request/pull/1833) Update aws-sign2 to version 0.6.0 🚀 (@greenkeeperio-bot) -- [#1811](https://github.com/request/request/pull/1811) Enable loose cookie parsing in tough-cookie (@Sebmaster) -- [#1830](https://github.com/request/request/pull/1830) Bring back tilde ranges for all dependencies (@simov) -- [#1821](https://github.com/request/request/pull/1821) Implement support for RFC 2617 MD5-sess algorithm. (@BigDSK) -- [#1828](https://github.com/request/request/pull/1828) Updated qs dependency to 5.2.0 (@acroca) -- [#1818](https://github.com/request/request/pull/1818) Extract `readResponseBody` method out of `onRequestResponse` (@pvoisin) -- [#1819](https://github.com/request/request/pull/1819) Run stringify once (@mgenereu) -- [#1814](https://github.com/request/request/pull/1814) Updated har-validator to version 2.0.2 (@greenkeeperio-bot) -- [#1807](https://github.com/request/request/pull/1807) Updated tough-cookie to version 2.1.0 (@greenkeeperio-bot) -- [#1800](https://github.com/request/request/pull/1800) Add caret ranges for devDependencies, except eslint (@simov) -- [#1799](https://github.com/request/request/pull/1799) Updated karma-browserify to version 4.4.0 (@greenkeeperio-bot) -- [#1797](https://github.com/request/request/pull/1797) Updated tape to version 4.2.0 (@greenkeeperio-bot) -- [#1788](https://github.com/request/request/pull/1788) Pinned all dependencies (@greenkeeperio-bot) - -### v2.64.0 (2015/09/25) -- [#1787](https://github.com/request/request/pull/1787) npm ignore examples, release.sh and disabled.appveyor.yml (@thisconnect) -- [#1775](https://github.com/request/request/pull/1775) Fix typo in README.md (@djchie) -- [#1776](https://github.com/request/request/pull/1776) Changed word 'conjuction' to read 'conjunction' in README.md (@ryanwholey) -- [#1785](https://github.com/request/request/pull/1785) Revert: Set default application/json content-type when using json option #1772 (@simov) - -### v2.63.0 (2015/09/21) -- [#1772](https://github.com/request/request/pull/1772) Set default application/json content-type when using json option (@jzaefferer) - -### v2.62.0 (2015/09/15) -- [#1768](https://github.com/request/request/pull/1768) Add node 4.0 to the list of build targets (@simov) -- [#1767](https://github.com/request/request/pull/1767) Query strings now cooperate with unix sockets (@JoshWillik) -- [#1750](https://github.com/request/request/pull/1750) Revert doc about installation of tough-cookie added in #884 (@LoicMahieu) -- [#1746](https://github.com/request/request/pull/1746) Missed comma in Readme (@vladimirich) -- [#1743](https://github.com/request/request/pull/1743) Fix options not being initialized in defaults method (@simov) - -### v2.61.0 (2015/08/19) -- [#1721](https://github.com/request/request/pull/1721) Minor fix in README.md (@arbaaz) -- [#1733](https://github.com/request/request/pull/1733) Avoid useless Buffer transformation (@michelsalib) -- [#1726](https://github.com/request/request/pull/1726) Update README.md (@paulomcnally) -- [#1715](https://github.com/request/request/pull/1715) Fix forever option in node > 0.10 #1709 (@calibr) -- [#1716](https://github.com/request/request/pull/1716) Do not create Buffer from Object in setContentLength(iojs v3.0 issue) (@calibr) -- [#1711](https://github.com/request/request/pull/1711) Add ability to detect connect timeouts (@kevinburke) -- [#1712](https://github.com/request/request/pull/1712) Set certificate expiration to August 2, 2018 (@kevinburke) -- [#1700](https://github.com/request/request/pull/1700) debug() when JSON.parse() on a response body fails (@phillipj) - -### v2.60.0 (2015/07/21) -- [#1687](https://github.com/request/request/pull/1687) Fix caseless bug - content-type not being set for multipart/form-data (@simov, @garymathews) - -### v2.59.0 (2015/07/20) -- [#1671](https://github.com/request/request/pull/1671) Add tests and docs for using the agent, agentClass, agentOptions and forever options. - Forever option defaults to using http(s).Agent in node 0.12+ (@simov) -- [#1679](https://github.com/request/request/pull/1679) Fix - do not remove OAuth param when using OAuth realm (@simov, @jhalickman) -- [#1668](https://github.com/request/request/pull/1668) updated dependencies (@deamme) -- [#1656](https://github.com/request/request/pull/1656) Fix form method (@simov) -- [#1651](https://github.com/request/request/pull/1651) Preserve HEAD method when using followAllRedirects (@simov) -- [#1652](https://github.com/request/request/pull/1652) Update `encoding` option documentation in README.md (@daniel347x) -- [#1650](https://github.com/request/request/pull/1650) Allow content-type overriding when using the `form` option (@simov) -- [#1646](https://github.com/request/request/pull/1646) Clarify the nature of setting `ca` in `agentOptions` (@jeffcharles) - -### v2.58.0 (2015/06/16) -- [#1638](https://github.com/request/request/pull/1638) Use the `extend` module to deep extend in the defaults method (@simov) -- [#1631](https://github.com/request/request/pull/1631) Move tunnel logic into separate module (@simov) -- [#1634](https://github.com/request/request/pull/1634) Fix OAuth query transport_method (@simov) -- [#1603](https://github.com/request/request/pull/1603) Add codecov (@simov) - -### v2.57.0 (2015/05/31) -- [#1615](https://github.com/request/request/pull/1615) Replace '.client' with '.socket' as the former was deprecated in 2.2.0. (@ChALkeR) - -### v2.56.0 (2015/05/28) -- [#1610](https://github.com/request/request/pull/1610) Bump module dependencies (@simov) -- [#1600](https://github.com/request/request/pull/1600) Extract the querystring logic into separate module (@simov) -- [#1607](https://github.com/request/request/pull/1607) Re-generate certificates (@simov) -- [#1599](https://github.com/request/request/pull/1599) Move getProxyFromURI logic below the check for Invaild URI (#1595) (@simov) -- [#1598](https://github.com/request/request/pull/1598) Fix the way http verbs are defined in order to please intellisense IDEs (@simov, @flannelJesus) -- [#1591](https://github.com/request/request/pull/1591) A few minor fixes: (@simov) -- [#1584](https://github.com/request/request/pull/1584) Refactor test-default tests (according to comments in #1430) (@simov) -- [#1585](https://github.com/request/request/pull/1585) Fixing documentation regarding TLS options (#1583) (@mainakae) -- [#1574](https://github.com/request/request/pull/1574) Refresh the oauth_nonce on redirect (#1573) (@simov) -- [#1570](https://github.com/request/request/pull/1570) Discovered tests that weren't properly running (@seanstrom) -- [#1569](https://github.com/request/request/pull/1569) Fix pause before response arrives (@kevinoid) -- [#1558](https://github.com/request/request/pull/1558) Emit error instead of throw (@simov) -- [#1568](https://github.com/request/request/pull/1568) Fix stall when piping gzipped response (@kevinoid) -- [#1560](https://github.com/request/request/pull/1560) Update combined-stream (@apechimp) -- [#1543](https://github.com/request/request/pull/1543) Initial support for oauth_body_hash on json payloads (@simov, @aesopwolf) -- [#1541](https://github.com/request/request/pull/1541) Fix coveralls (@simov) -- [#1540](https://github.com/request/request/pull/1540) Fix recursive defaults for convenience methods (@simov) -- [#1536](https://github.com/request/request/pull/1536) More eslint style rules (@froatsnook) -- [#1533](https://github.com/request/request/pull/1533) Adding dependency status bar to README.md (@YasharF) -- [#1539](https://github.com/request/request/pull/1539) ensure the latest version of har-validator is included (@ahmadnassri) -- [#1516](https://github.com/request/request/pull/1516) forever+pool test (@devTristan) - -### v2.55.0 (2015/04/05) -- [#1520](https://github.com/request/request/pull/1520) Refactor defaults (@simov) -- [#1525](https://github.com/request/request/pull/1525) Delete request headers with undefined value. (@froatsnook) -- [#1521](https://github.com/request/request/pull/1521) Add promise tests (@simov) -- [#1518](https://github.com/request/request/pull/1518) Fix defaults (@simov) -- [#1515](https://github.com/request/request/pull/1515) Allow static invoking of convenience methods (@simov) -- [#1505](https://github.com/request/request/pull/1505) Fix multipart boundary extraction regexp (@simov) -- [#1510](https://github.com/request/request/pull/1510) Fix basic auth form data (@simov) - -### v2.54.0 (2015/03/24) -- [#1501](https://github.com/request/request/pull/1501) HTTP Archive 1.2 support (@ahmadnassri) -- [#1486](https://github.com/request/request/pull/1486) Add a test for the forever agent (@akshayp) -- [#1500](https://github.com/request/request/pull/1500) Adding handling for no auth method and null bearer (@philberg) -- [#1498](https://github.com/request/request/pull/1498) Add table of contents in readme (@simov) -- [#1477](https://github.com/request/request/pull/1477) Add support for qs options via qsOptions key (@simov) -- [#1496](https://github.com/request/request/pull/1496) Parameters encoded to base 64 should be decoded as UTF-8, not ASCII. (@albanm) -- [#1494](https://github.com/request/request/pull/1494) Update eslint (@froatsnook) -- [#1474](https://github.com/request/request/pull/1474) Require Colon in Basic Auth (@erykwalder) -- [#1481](https://github.com/request/request/pull/1481) Fix baseUrl and redirections. (@burningtree) -- [#1469](https://github.com/request/request/pull/1469) Feature/base url (@froatsnook) -- [#1459](https://github.com/request/request/pull/1459) Add option to time request/response cycle (including rollup of redirects) (@aaron-em) -- [#1468](https://github.com/request/request/pull/1468) Re-enable io.js/node 0.12 build (@simov, @mikeal, @BBB) -- [#1442](https://github.com/request/request/pull/1442) Fixed the issue with strictSSL tests on 0.12 & io.js by explicitly setting a cipher that matches the cert. (@BBB, @nicolasmccurdy, @demohi, @simov, @0x4139) -- [#1460](https://github.com/request/request/pull/1460) localAddress or proxy config is lost when redirecting (@simov, @0x4139) -- [#1453](https://github.com/request/request/pull/1453) Test on Node.js 0.12 and io.js with allowed failures (@nicolasmccurdy, @demohi) -- [#1426](https://github.com/request/request/pull/1426) Fixing tests to pass on io.js and node 0.12 (only test-https.js stiff failing) (@mikeal) -- [#1446](https://github.com/request/request/pull/1446) Missing HTTP referer header with redirects Fixes #1038 (@simov, @guimonz) -- [#1428](https://github.com/request/request/pull/1428) Deprecate Node v0.8.x (@nylen) -- [#1436](https://github.com/request/request/pull/1436) Add ability to set a requester without setting default options (@tikotzky) -- [#1435](https://github.com/request/request/pull/1435) dry up verb methods (@sethpollack) -- [#1423](https://github.com/request/request/pull/1423) Allow fully qualified multipart content-type header (@simov) -- [#1430](https://github.com/request/request/pull/1430) Fix recursive requester (@tikotzky) -- [#1429](https://github.com/request/request/pull/1429) Throw error when making HEAD request with a body (@tikotzky) -- [#1419](https://github.com/request/request/pull/1419) Add note that the project is broken in 0.12.x (@nylen) -- [#1413](https://github.com/request/request/pull/1413) Fix basic auth (@simov) -- [#1397](https://github.com/request/request/pull/1397) Improve pipe-from-file tests (@nylen) - -### v2.53.0 (2015/02/02) -- [#1396](https://github.com/request/request/pull/1396) Do not rfc3986 escape JSON bodies (@nylen, @simov) -- [#1392](https://github.com/request/request/pull/1392) Improve `timeout` option description (@watson) - -### v2.52.0 (2015/02/02) -- [#1383](https://github.com/request/request/pull/1383) Add missing HTTPS options that were not being passed to tunnel (@brichard19) (@nylen) -- [#1388](https://github.com/request/request/pull/1388) Upgrade mime-types package version (@roderickhsiao) -- [#1389](https://github.com/request/request/pull/1389) Revise Setup Tunnel Function (@seanstrom) -- [#1374](https://github.com/request/request/pull/1374) Allow explicitly disabling tunneling for proxied https destinations (@nylen) -- [#1376](https://github.com/request/request/pull/1376) Use karma-browserify for tests. Add browser test coverage reporter. (@eiriksm) -- [#1366](https://github.com/request/request/pull/1366) Refactor OAuth into separate module (@simov) -- [#1373](https://github.com/request/request/pull/1373) Rewrite tunnel test to be pure Node.js (@nylen) -- [#1371](https://github.com/request/request/pull/1371) Upgrade test reporter (@nylen) -- [#1360](https://github.com/request/request/pull/1360) Refactor basic, bearer, digest auth logic into separate class (@simov) -- [#1354](https://github.com/request/request/pull/1354) Remove circular dependency from debugging code (@nylen) -- [#1351](https://github.com/request/request/pull/1351) Move digest auth into private prototype method (@simov) -- [#1352](https://github.com/request/request/pull/1352) Update hawk dependency to ~2.3.0 (@mridgway) -- [#1353](https://github.com/request/request/pull/1353) Correct travis-ci badge (@dogancelik) -- [#1349](https://github.com/request/request/pull/1349) Make sure we return on errored browser requests. (@eiriksm) -- [#1346](https://github.com/request/request/pull/1346) getProxyFromURI Extraction Refactor (@seanstrom) -- [#1337](https://github.com/request/request/pull/1337) Standardize test ports on 6767 (@nylen) -- [#1341](https://github.com/request/request/pull/1341) Emit FormData error events as Request error events (@nylen, @rwky) -- [#1343](https://github.com/request/request/pull/1343) Clean up readme badges, and add Travis and Coveralls badges (@nylen) -- [#1345](https://github.com/request/request/pull/1345) Update README.md (@Aaron-Hartwig) -- [#1338](https://github.com/request/request/pull/1338) Always wait for server.close() callback in tests (@nylen) -- [#1342](https://github.com/request/request/pull/1342) Add mock https server and redo start of browser tests for this purpose. (@eiriksm) -- [#1339](https://github.com/request/request/pull/1339) Improve auth docs (@nylen) -- [#1335](https://github.com/request/request/pull/1335) Add support for OAuth plaintext signature method (@simov) -- [#1332](https://github.com/request/request/pull/1332) Add clean script to remove test-browser.js after the tests run (@seanstrom) -- [#1327](https://github.com/request/request/pull/1327) Fix errors generating coverage reports. (@nylen) -- [#1330](https://github.com/request/request/pull/1330) Return empty buffer upon empty response body and encoding is set to null (@seanstrom) -- [#1326](https://github.com/request/request/pull/1326) Use faster container-based infrastructure on Travis (@nylen) -- [#1315](https://github.com/request/request/pull/1315) Implement rfc3986 option (@simov, @nylen, @apoco, @DullReferenceException, @mmalecki, @oliamb, @cliffcrosland, @LewisJEllis, @eiriksm, @poislagarde) -- [#1314](https://github.com/request/request/pull/1314) Detect urlencoded form data header via regex (@simov) -- [#1317](https://github.com/request/request/pull/1317) Improve OAuth1.0 server side flow example (@simov) - -### v2.51.0 (2014/12/10) -- [#1310](https://github.com/request/request/pull/1310) Revert changes introduced in https://github.com/request/request/pull/1282 (@simov) - -### v2.50.0 (2014/12/09) -- [#1308](https://github.com/request/request/pull/1308) Add browser test to keep track of browserify compability. (@eiriksm) -- [#1299](https://github.com/request/request/pull/1299) Add optional support for jsonReviver (@poislagarde) -- [#1277](https://github.com/request/request/pull/1277) Add Coveralls configuration (@simov) -- [#1307](https://github.com/request/request/pull/1307) Upgrade form-data, add back browserify compability. Fixes #455. (@eiriksm) -- [#1305](https://github.com/request/request/pull/1305) Fix typo in README.md (@LewisJEllis) -- [#1288](https://github.com/request/request/pull/1288) Update README.md to explain custom file use case (@cliffcrosland) - -### v2.49.0 (2014/11/28) -- [#1295](https://github.com/request/request/pull/1295) fix(proxy): no-proxy false positive (@oliamb) -- [#1292](https://github.com/request/request/pull/1292) Upgrade `caseless` to 0.8.1 (@mmalecki) -- [#1276](https://github.com/request/request/pull/1276) Set transfer encoding for multipart/related to chunked by default (@simov) -- [#1275](https://github.com/request/request/pull/1275) Fix multipart content-type headers detection (@simov) -- [#1269](https://github.com/request/request/pull/1269) adds streams example for review (@tbuchok) -- [#1238](https://github.com/request/request/pull/1238) Add examples README.md (@simov) - -### v2.48.0 (2014/11/12) -- [#1263](https://github.com/request/request/pull/1263) Fixed a syntax error / typo in README.md (@xna2) -- [#1253](https://github.com/request/request/pull/1253) Add multipart chunked flag (@simov, @nylen) -- [#1251](https://github.com/request/request/pull/1251) Clarify that defaults() does not modify global defaults (@nylen) -- [#1250](https://github.com/request/request/pull/1250) Improve documentation for pool and maxSockets options (@nylen) -- [#1237](https://github.com/request/request/pull/1237) Documenting error handling when using streams (@vmattos) -- [#1244](https://github.com/request/request/pull/1244) Finalize changelog command (@nylen) -- [#1241](https://github.com/request/request/pull/1241) Fix typo (@alexanderGugel) -- [#1223](https://github.com/request/request/pull/1223) Show latest version number instead of "upcoming" in changelog (@nylen) -- [#1236](https://github.com/request/request/pull/1236) Document how to use custom CA in README (#1229) (@hypesystem) -- [#1228](https://github.com/request/request/pull/1228) Support for oauth with RSA-SHA1 signing (@nylen) -- [#1216](https://github.com/request/request/pull/1216) Made json and multipart options coexist (@nylen, @simov) -- [#1225](https://github.com/request/request/pull/1225) Allow header white/exclusive lists in any case. (@RReverser) - -### v2.47.0 (2014/10/26) -- [#1222](https://github.com/request/request/pull/1222) Move from mikeal/request to request/request (@nylen) -- [#1220](https://github.com/request/request/pull/1220) update qs dependency to 2.3.1 (@FredKSchott) -- [#1212](https://github.com/request/request/pull/1212) Improve tests/test-timeout.js (@nylen) -- [#1219](https://github.com/request/request/pull/1219) remove old globalAgent workaround for node 0.4 (@request) -- [#1214](https://github.com/request/request/pull/1214) Remove cruft left over from optional dependencies (@nylen) -- [#1215](https://github.com/request/request/pull/1215) Add proxyHeaderExclusiveList option for proxy-only headers. (@RReverser) -- [#1211](https://github.com/request/request/pull/1211) Allow 'Host' header instead of 'host' and remember case across redirects (@nylen) -- [#1208](https://github.com/request/request/pull/1208) Improve release script (@nylen) -- [#1213](https://github.com/request/request/pull/1213) Support for custom cookie store (@nylen, @mitsuru) -- [#1197](https://github.com/request/request/pull/1197) Clean up some code around setting the agent (@FredKSchott) -- [#1209](https://github.com/request/request/pull/1209) Improve multipart form append test (@simov) -- [#1207](https://github.com/request/request/pull/1207) Update changelog (@nylen) -- [#1185](https://github.com/request/request/pull/1185) Stream multipart/related bodies (@simov) - -### v2.46.0 (2014/10/23) -- [#1198](https://github.com/request/request/pull/1198) doc for TLS/SSL protocol options (@shawnzhu) -- [#1200](https://github.com/request/request/pull/1200) Add a Gitter chat badge to README.md (@gitter-badger) -- [#1196](https://github.com/request/request/pull/1196) Upgrade taper test reporter to v0.3.0 (@nylen) -- [#1199](https://github.com/request/request/pull/1199) Fix lint error: undeclared var i (@nylen) -- [#1191](https://github.com/request/request/pull/1191) Move self.proxy decision logic out of init and into a helper (@FredKSchott) -- [#1190](https://github.com/request/request/pull/1190) Move _buildRequest() logic back into init (@FredKSchott) -- [#1186](https://github.com/request/request/pull/1186) Support Smarter Unix URL Scheme (@FredKSchott) -- [#1178](https://github.com/request/request/pull/1178) update form documentation for new usage (@FredKSchott) -- [#1180](https://github.com/request/request/pull/1180) Enable no-mixed-requires linting rule (@nylen) -- [#1184](https://github.com/request/request/pull/1184) Don't forward authorization header across redirects to different hosts (@nylen) -- [#1183](https://github.com/request/request/pull/1183) Correct README about pre and postamble CRLF using multipart and not mult... (@netpoetica) -- [#1179](https://github.com/request/request/pull/1179) Lint tests directory (@nylen) -- [#1169](https://github.com/request/request/pull/1169) add metadata for form-data file field (@dotcypress) -- [#1173](https://github.com/request/request/pull/1173) remove optional dependencies (@seanstrom) -- [#1165](https://github.com/request/request/pull/1165) Cleanup event listeners and remove function creation from init (@FredKSchott) -- [#1174](https://github.com/request/request/pull/1174) update the request.cookie docs to have a valid cookie example (@seanstrom) -- [#1168](https://github.com/request/request/pull/1168) create a detach helper and use detach helper in replace of nextTick (@seanstrom) -- [#1171](https://github.com/request/request/pull/1171) in post can send form data and use callback (@MiroRadenovic) -- [#1159](https://github.com/request/request/pull/1159) accept charset for x-www-form-urlencoded content-type (@seanstrom) -- [#1157](https://github.com/request/request/pull/1157) Update README.md: body with json=true (@Rob--W) -- [#1164](https://github.com/request/request/pull/1164) Disable tests/test-timeout.js on Travis (@nylen) -- [#1153](https://github.com/request/request/pull/1153) Document how to run a single test (@nylen) -- [#1144](https://github.com/request/request/pull/1144) adds documentation for the "response" event within the streaming section (@tbuchok) -- [#1162](https://github.com/request/request/pull/1162) Update eslintrc file to no longer allow past errors (@FredKSchott) -- [#1155](https://github.com/request/request/pull/1155) Support/use self everywhere (@seanstrom) -- [#1161](https://github.com/request/request/pull/1161) fix no-use-before-define lint warnings (@emkay) -- [#1156](https://github.com/request/request/pull/1156) adding curly brackets to get rid of lint errors (@emkay) -- [#1151](https://github.com/request/request/pull/1151) Fix localAddress test on OS X (@nylen) -- [#1145](https://github.com/request/request/pull/1145) documentation: fix outdated reference to setCookieSync old name in README (@FredKSchott) -- [#1131](https://github.com/request/request/pull/1131) Update pool documentation (@FredKSchott) -- [#1143](https://github.com/request/request/pull/1143) Rewrite all tests to use tape (@nylen) -- [#1137](https://github.com/request/request/pull/1137) Add ability to specifiy querystring lib in options. (@jgrund) -- [#1138](https://github.com/request/request/pull/1138) allow hostname and port in place of host on uri (@cappslock) -- [#1134](https://github.com/request/request/pull/1134) Fix multiple redirects and `self.followRedirect` (@blakeembrey) -- [#1130](https://github.com/request/request/pull/1130) documentation fix: add note about npm test for contributing (@FredKSchott) -- [#1120](https://github.com/request/request/pull/1120) Support/refactor request setup tunnel (@seanstrom) -- [#1129](https://github.com/request/request/pull/1129) linting fix: convert double quote strings to use single quotes (@FredKSchott) -- [#1124](https://github.com/request/request/pull/1124) linting fix: remove unneccesary semi-colons (@FredKSchott) - -### v2.45.0 (2014/10/06) -- [#1128](https://github.com/request/request/pull/1128) Add test for setCookie regression (@nylen) -- [#1127](https://github.com/request/request/pull/1127) added tests around using objects as values in a query string (@bcoe) -- [#1103](https://github.com/request/request/pull/1103) Support/refactor request constructor (@nylen, @seanstrom) -- [#1119](https://github.com/request/request/pull/1119) add basic linting to request library (@FredKSchott) -- [#1121](https://github.com/request/request/pull/1121) Revert "Explicitly use sync versions of cookie functions" (@nylen) -- [#1118](https://github.com/request/request/pull/1118) linting fix: Restructure bad empty if statement (@FredKSchott) -- [#1117](https://github.com/request/request/pull/1117) Fix a bad check for valid URIs (@FredKSchott) -- [#1113](https://github.com/request/request/pull/1113) linting fix: space out operators (@FredKSchott) -- [#1116](https://github.com/request/request/pull/1116) Fix typo in `noProxyHost` definition (@FredKSchott) -- [#1114](https://github.com/request/request/pull/1114) linting fix: Added a `new` operator that was missing when creating and throwing a new error (@FredKSchott) -- [#1096](https://github.com/request/request/pull/1096) No_proxy support (@samcday) -- [#1107](https://github.com/request/request/pull/1107) linting-fix: remove unused variables (@FredKSchott) -- [#1112](https://github.com/request/request/pull/1112) linting fix: Make return values consistent and more straitforward (@FredKSchott) -- [#1111](https://github.com/request/request/pull/1111) linting fix: authPieces was getting redeclared (@FredKSchott) -- [#1105](https://github.com/request/request/pull/1105) Use strict mode in request (@FredKSchott) -- [#1110](https://github.com/request/request/pull/1110) linting fix: replace lazy '==' with more strict '===' (@FredKSchott) -- [#1109](https://github.com/request/request/pull/1109) linting fix: remove function call from if-else conditional statement (@FredKSchott) -- [#1102](https://github.com/request/request/pull/1102) Fix to allow setting a `requester` on recursive calls to `request.defaults` (@tikotzky) -- [#1095](https://github.com/request/request/pull/1095) Tweaking engines in package.json (@pdehaan) -- [#1082](https://github.com/request/request/pull/1082) Forward the socket event from the httpModule request (@seanstrom) -- [#972](https://github.com/request/request/pull/972) Clarify gzip handling in the README (@kevinoid) -- [#1089](https://github.com/request/request/pull/1089) Mention that encoding defaults to utf8, not Buffer (@stuartpb) -- [#1088](https://github.com/request/request/pull/1088) Fix cookie example in README.md and make it more clear (@pipi32167) -- [#1027](https://github.com/request/request/pull/1027) Add support for multipart form data in request options. (@crocket) -- [#1076](https://github.com/request/request/pull/1076) use Request.abort() to abort the request when the request has timed-out (@seanstrom) -- [#1068](https://github.com/request/request/pull/1068) add optional postamble required by .NET multipart requests (@netpoetica) - -### v2.43.0 (2014/09/18) -- [#1057](https://github.com/request/request/pull/1057) Defaults should not overwrite defined options (@davidwood) -- [#1046](https://github.com/request/request/pull/1046) Propagate datastream errors, useful in case gzip fails. (@ZJONSSON, @Janpot) -- [#1063](https://github.com/request/request/pull/1063) copy the input headers object #1060 (@finnp) -- [#1031](https://github.com/request/request/pull/1031) Explicitly use sync versions of cookie functions (@ZJONSSON) -- [#1056](https://github.com/request/request/pull/1056) Fix redirects when passing url.parse(x) as URL to convenience method (@nylen) - -### v2.42.0 (2014/09/04) -- [#1053](https://github.com/request/request/pull/1053) Fix #1051 Parse auth properly when using non-tunneling proxy (@isaacs) - -### v2.41.0 (2014/09/04) -- [#1050](https://github.com/request/request/pull/1050) Pass whitelisted headers to tunneling proxy. Organize all tunneling logic. (@isaacs, @Feldhacker) -- [#1035](https://github.com/request/request/pull/1035) souped up nodei.co badge (@rvagg) -- [#1048](https://github.com/request/request/pull/1048) Aws is now possible over a proxy (@steven-aerts) -- [#1039](https://github.com/request/request/pull/1039) extract out helper functions to a helper file (@seanstrom) -- [#1021](https://github.com/request/request/pull/1021) Support/refactor indexjs (@seanstrom) -- [#1033](https://github.com/request/request/pull/1033) Improve and document debug options (@nylen) -- [#1034](https://github.com/request/request/pull/1034) Fix readme headings (@nylen) -- [#1030](https://github.com/request/request/pull/1030) Allow recursive request.defaults (@tikotzky) -- [#1029](https://github.com/request/request/pull/1029) Fix a couple of typos (@nylen) -- [#675](https://github.com/request/request/pull/675) Checking for SSL fault on connection before reading SSL properties (@VRMink) -- [#989](https://github.com/request/request/pull/989) Added allowRedirect function. Should return true if redirect is allowed or false otherwise (@doronin) -- [#1025](https://github.com/request/request/pull/1025) [fixes #1023] Set self._ended to true once response has ended (@mridgway) -- [#1020](https://github.com/request/request/pull/1020) Add back removed debug metadata (@FredKSchott) -- [#1008](https://github.com/request/request/pull/1008) Moving to module instead of cutomer buffer concatenation. (@mikeal) -- [#770](https://github.com/request/request/pull/770) Added dependency badge for README file; (@timgluz, @mafintosh, @lalitkapoor, @stash, @bobyrizov) -- [#1016](https://github.com/request/request/pull/1016) toJSON no longer results in an infinite loop, returns simple objects (@FredKSchott) -- [#1018](https://github.com/request/request/pull/1018) Remove pre-0.4.4 HTTPS fix (@mmalecki) -- [#1006](https://github.com/request/request/pull/1006) Migrate to caseless, fixes #1001 (@mikeal) -- [#995](https://github.com/request/request/pull/995) Fix parsing array of objects (@sjonnet19) -- [#999](https://github.com/request/request/pull/999) Fix fallback for browserify for optional modules. (@eiriksm) -- [#996](https://github.com/request/request/pull/996) Wrong oauth signature when multiple same param keys exist [updated] (@bengl, @hyjin) - -### v2.40.0 (2014/08/06) -- [#992](https://github.com/request/request/pull/992) Fix security vulnerability. Update qs (@poeticninja) -- [#988](https://github.com/request/request/pull/988) “--” -> “—” (@upisfree) -- [#987](https://github.com/request/request/pull/987) Show optional modules as being loaded by the module that reqeusted them (@iarna) - -### v2.39.0 (2014/07/24) -- [#976](https://github.com/request/request/pull/976) Update README.md (@pvoznenko) - -### v2.38.0 (2014/07/22) -- [#952](https://github.com/request/request/pull/952) Adding support to client certificate with proxy use case (@ofirshaked) -- [#884](https://github.com/request/request/pull/884) Documented tough-cookie installation. (@wbyoung) -- [#935](https://github.com/request/request/pull/935) Correct repository url (@fritx) -- [#963](https://github.com/request/request/pull/963) Update changelog (@nylen) -- [#960](https://github.com/request/request/pull/960) Support gzip with encoding on node pre-v0.9.4 (@kevinoid) -- [#953](https://github.com/request/request/pull/953) Add async Content-Length computation when using form-data (@LoicMahieu) -- [#844](https://github.com/request/request/pull/844) Add support for HTTP[S]_PROXY environment variables. Fixes #595. (@jvmccarthy) -- [#946](https://github.com/request/request/pull/946) defaults: merge headers (@aj0strow) - -### v2.37.0 (2014/07/07) -- [#957](https://github.com/request/request/pull/957) Silence EventEmitter memory leak warning #311 (@watson) -- [#955](https://github.com/request/request/pull/955) check for content-length header before setting it in nextTick (@camilleanne) -- [#951](https://github.com/request/request/pull/951) Add support for gzip content decoding (@kevinoid) -- [#949](https://github.com/request/request/pull/949) Manually enter querystring in form option (@charlespwd) -- [#944](https://github.com/request/request/pull/944) Make request work with browserify (@eiriksm) -- [#943](https://github.com/request/request/pull/943) New mime module (@eiriksm) -- [#927](https://github.com/request/request/pull/927) Bump version of hawk dep. (@samccone) -- [#907](https://github.com/request/request/pull/907) append secureOptions to poolKey (@medovob) - -### v2.35.0 (2014/05/17) -- [#901](https://github.com/request/request/pull/901) Fixes #555 (@pigulla) -- [#897](https://github.com/request/request/pull/897) merge with default options (@vohof) -- [#891](https://github.com/request/request/pull/891) fixes 857 - options object is mutated by calling request (@lalitkapoor) -- [#869](https://github.com/request/request/pull/869) Pipefilter test (@tgohn) -- [#866](https://github.com/request/request/pull/866) Fix typo (@dandv) -- [#861](https://github.com/request/request/pull/861) Add support for RFC 6750 Bearer Tokens (@phedny) -- [#809](https://github.com/request/request/pull/809) upgrade tunnel-proxy to 0.4.0 (@ksato9700) -- [#850](https://github.com/request/request/pull/850) Fix word consistency in readme (@0xNobody) -- [#810](https://github.com/request/request/pull/810) add some exposition to mpu example in README.md (@mikermcneil) -- [#840](https://github.com/request/request/pull/840) improve error reporting for invalid protocols (@FND) -- [#821](https://github.com/request/request/pull/821) added secureOptions back (@nw) -- [#815](https://github.com/request/request/pull/815) Create changelog based on pull requests (@lalitkapoor) - -### v2.34.0 (2014/02/18) -- [#516](https://github.com/request/request/pull/516) UNIX Socket URL Support (@lyuzashi) -- [#801](https://github.com/request/request/pull/801) 794 ignore cookie parsing and domain errors (@lalitkapoor) -- [#802](https://github.com/request/request/pull/802) Added the Apache license to the package.json. (@keskival) -- [#793](https://github.com/request/request/pull/793) Adds content-length calculation when submitting forms using form-data li... (@Juul) -- [#785](https://github.com/request/request/pull/785) Provide ability to override content-type when `json` option used (@vvo) -- [#781](https://github.com/request/request/pull/781) simpler isReadStream function (@joaojeronimo) - -### v2.32.0 (2014/01/16) -- [#767](https://github.com/request/request/pull/767) Use tough-cookie CookieJar sync API (@stash) -- [#764](https://github.com/request/request/pull/764) Case-insensitive authentication scheme (@bobyrizov) -- [#763](https://github.com/request/request/pull/763) Upgrade tough-cookie to 0.10.0 (@stash) -- [#744](https://github.com/request/request/pull/744) Use Cookie.parse (@lalitkapoor) -- [#757](https://github.com/request/request/pull/757) require aws-sign2 (@mafintosh) - -### v2.31.0 (2014/01/08) -- [#645](https://github.com/request/request/pull/645) update twitter api url to v1.1 (@mick) -- [#746](https://github.com/request/request/pull/746) README: Markdown code highlight (@weakish) -- [#745](https://github.com/request/request/pull/745) updating setCookie example to make it clear that the callback is required (@emkay) -- [#742](https://github.com/request/request/pull/742) Add note about JSON output body type (@iansltx) -- [#741](https://github.com/request/request/pull/741) README example is using old cookie jar api (@emkay) -- [#736](https://github.com/request/request/pull/736) Fix callback arguments documentation (@mmalecki) - -### v2.30.0 (2013/12/13) -- [#732](https://github.com/request/request/pull/732) JSHINT: Creating global 'for' variable. Should be 'for (var ...'. (@Fritz-Lium) -- [#730](https://github.com/request/request/pull/730) better HTTP DIGEST support (@dai-shi) -- [#728](https://github.com/request/request/pull/728) Fix TypeError when calling request.cookie (@scarletmeow) - -### v2.29.0 (2013/12/06) -- [#727](https://github.com/request/request/pull/727) fix requester bug (@jchris) - -### v2.28.0 (2013/12/04) -- [#724](https://github.com/request/request/pull/724) README.md: add custom HTTP Headers example. (@tcort) -- [#719](https://github.com/request/request/pull/719) Made a comment gender neutral. (@unsetbit) -- [#715](https://github.com/request/request/pull/715) Request.multipart no longer crashes when header 'Content-type' present (@pastaclub) -- [#710](https://github.com/request/request/pull/710) Fixing listing in callback part of docs. (@lukasz-zak) -- [#696](https://github.com/request/request/pull/696) Edited README.md for formatting and clarity of phrasing (@Zearin) -- [#694](https://github.com/request/request/pull/694) Typo in README (@VRMink) -- [#690](https://github.com/request/request/pull/690) Handle blank password in basic auth. (@diversario) -- [#682](https://github.com/request/request/pull/682) Optional dependencies (@Turbo87) -- [#683](https://github.com/request/request/pull/683) Travis CI support (@Turbo87) -- [#674](https://github.com/request/request/pull/674) change cookie module,to tough-cookie.please check it . (@sxyizhiren) -- [#666](https://github.com/request/request/pull/666) make `ciphers` and `secureProtocol` to work in https request (@richarddong) -- [#656](https://github.com/request/request/pull/656) Test case for #304. (@diversario) -- [#662](https://github.com/request/request/pull/662) option.tunnel to explicitly disable tunneling (@seanmonstar) -- [#659](https://github.com/request/request/pull/659) fix failure when running with NODE_DEBUG=request, and a test for that (@jrgm) -- [#630](https://github.com/request/request/pull/630) Send random cnonce for HTTP Digest requests (@wprl) - -### v2.27.0 (2013/08/15) -- [#619](https://github.com/request/request/pull/619) decouple things a bit (@joaojeronimo) - -### v2.26.0 (2013/08/07) -- [#613](https://github.com/request/request/pull/613) Fixes #583, moved initialization of self.uri.pathname (@lexander) -- [#605](https://github.com/request/request/pull/605) Only include ":" + pass in Basic Auth if it's defined (fixes #602) (@bendrucker) - -### v2.24.0 (2013/07/23) -- [#596](https://github.com/request/request/pull/596) Global agent is being used when pool is specified (@Cauldrath) -- [#594](https://github.com/request/request/pull/594) Emit complete event when there is no callback (@RomainLK) -- [#601](https://github.com/request/request/pull/601) Fixed a small typo (@michalstanko) - -### v2.23.0 (2013/07/23) -- [#589](https://github.com/request/request/pull/589) Prevent setting headers after they are sent (@geek) -- [#587](https://github.com/request/request/pull/587) Global cookie jar disabled by default (@threepointone) - -### v2.22.0 (2013/07/05) -- [#544](https://github.com/request/request/pull/544) Update http-signature version. (@davidlehn) -- [#581](https://github.com/request/request/pull/581) Fix spelling of "ignoring." (@bigeasy) -- [#568](https://github.com/request/request/pull/568) use agentOptions to create agent when specified in request (@SamPlacette) -- [#564](https://github.com/request/request/pull/564) Fix redirections (@criloz) -- [#541](https://github.com/request/request/pull/541) The exported request function doesn't have an auth method (@tschaub) -- [#542](https://github.com/request/request/pull/542) Expose Request class (@regality) - -### v2.21.0 (2013/04/30) -- [#536](https://github.com/request/request/pull/536) Allow explicitly empty user field for basic authentication. (@mikeando) -- [#532](https://github.com/request/request/pull/532) fix typo (@fredericosilva) -- [#497](https://github.com/request/request/pull/497) Added redirect event (@Cauldrath) -- [#503](https://github.com/request/request/pull/503) Fix basic auth for passwords that contain colons (@tonistiigi) -- [#521](https://github.com/request/request/pull/521) Improving test-localAddress.js (@noway421) -- [#529](https://github.com/request/request/pull/529) dependencies versions bump (@jodaka) - -### v2.20.0 (2013/04/22) -- [#523](https://github.com/request/request/pull/523) Updating dependencies (@noway421) -- [#520](https://github.com/request/request/pull/520) Fixing test-tunnel.js (@noway421) -- [#519](https://github.com/request/request/pull/519) Update internal path state on post-creation QS changes (@jblebrun) -- [#510](https://github.com/request/request/pull/510) Add HTTP Signature support. (@davidlehn) -- [#502](https://github.com/request/request/pull/502) Fix POST (and probably other) requests that are retried after 401 Unauthorized (@nylen) -- [#508](https://github.com/request/request/pull/508) Honor the .strictSSL option when using proxies (tunnel-agent) (@jhs) -- [#512](https://github.com/request/request/pull/512) Make password optional to support the format: http://username@hostname/ (@pajato1) -- [#513](https://github.com/request/request/pull/513) add 'localAddress' support (@yyfrankyy) -- [#498](https://github.com/request/request/pull/498) Moving response emit above setHeaders on destination streams (@kenperkins) -- [#490](https://github.com/request/request/pull/490) Empty response body (3-rd argument) must be passed to callback as an empty string (@Olegas) -- [#479](https://github.com/request/request/pull/479) Changing so if Accept header is explicitly set, sending json does not ov... (@RoryH) -- [#475](https://github.com/request/request/pull/475) Use `unescape` from `querystring` (@shimaore) -- [#473](https://github.com/request/request/pull/473) V0.10 compat (@isaacs) -- [#471](https://github.com/request/request/pull/471) Using querystring library from visionmedia (@kbackowski) -- [#461](https://github.com/request/request/pull/461) Strip the UTF8 BOM from a UTF encoded response (@kppullin) -- [#460](https://github.com/request/request/pull/460) hawk 0.10.0 (@hueniverse) -- [#462](https://github.com/request/request/pull/462) if query params are empty, then request path shouldn't end with a '?' (merges cleanly now) (@jaipandya) -- [#456](https://github.com/request/request/pull/456) hawk 0.9.0 (@hueniverse) -- [#429](https://github.com/request/request/pull/429) Copy options before adding callback. (@nrn, @nfriedly, @youurayy, @jplock, @kapetan, @landeiro, @othiym23, @mmalecki) -- [#454](https://github.com/request/request/pull/454) Destroy the response if present when destroying the request (clean merge) (@mafintosh) -- [#310](https://github.com/request/request/pull/310) Twitter Oauth Stuff Out of Date; Now Updated (@joemccann, @isaacs, @mscdex) -- [#413](https://github.com/request/request/pull/413) rename googledoodle.png to .jpg (@nfriedly, @youurayy, @jplock, @kapetan, @landeiro, @othiym23, @mmalecki) -- [#448](https://github.com/request/request/pull/448) Convenience method for PATCH (@mloar) -- [#444](https://github.com/request/request/pull/444) protect against double callbacks on error path (@spollack) -- [#433](https://github.com/request/request/pull/433) Added support for HTTPS cert & key (@mmalecki) -- [#430](https://github.com/request/request/pull/430) Respect specified {Host,host} headers, not just {host} (@andrewschaaf) -- [#415](https://github.com/request/request/pull/415) Fixed a typo. (@jerem) -- [#338](https://github.com/request/request/pull/338) Add more auth options, including digest support (@nylen) -- [#403](https://github.com/request/request/pull/403) Optimize environment lookup to happen once only (@mmalecki) -- [#398](https://github.com/request/request/pull/398) Add more reporting to tests (@mmalecki) -- [#388](https://github.com/request/request/pull/388) Ensure "safe" toJSON doesn't break EventEmitters (@othiym23) -- [#381](https://github.com/request/request/pull/381) Resolving "Invalid signature. Expected signature base string: " (@landeiro) -- [#380](https://github.com/request/request/pull/380) Fixes missing host header on retried request when using forever agent (@mac-) -- [#376](https://github.com/request/request/pull/376) Headers lost on redirect (@kapetan) -- [#375](https://github.com/request/request/pull/375) Fix for missing oauth_timestamp parameter (@jplock) -- [#374](https://github.com/request/request/pull/374) Correct Host header for proxy tunnel CONNECT (@youurayy) -- [#370](https://github.com/request/request/pull/370) Twitter reverse auth uses x_auth_mode not x_auth_type (@drudge) -- [#369](https://github.com/request/request/pull/369) Don't remove x_auth_mode for Twitter reverse auth (@drudge) -- [#344](https://github.com/request/request/pull/344) Make AWS auth signing find headers correctly (@nlf) -- [#363](https://github.com/request/request/pull/363) rfc3986 on base_uri, now passes tests (@jeffmarshall) -- [#362](https://github.com/request/request/pull/362) Running `rfc3986` on `base_uri` in `oauth.hmacsign` instead of just `encodeURIComponent` (@jeffmarshall) -- [#361](https://github.com/request/request/pull/361) Don't create a Content-Length header if we already have it set (@danjenkins) -- [#360](https://github.com/request/request/pull/360) Delete self._form along with everything else on redirect (@jgautier) -- [#355](https://github.com/request/request/pull/355) stop sending erroneous headers on redirected requests (@azylman) -- [#332](https://github.com/request/request/pull/332) Fix #296 - Only set Content-Type if body exists (@Marsup) -- [#343](https://github.com/request/request/pull/343) Allow AWS to work in more situations, added a note in the README on its usage (@nlf) -- [#320](https://github.com/request/request/pull/320) request.defaults() doesn't need to wrap jar() (@StuartHarris) -- [#322](https://github.com/request/request/pull/322) Fix + test for piped into request bumped into redirect. #321 (@alexindigo) -- [#326](https://github.com/request/request/pull/326) Do not try to remove listener from an undefined connection (@strk) -- [#318](https://github.com/request/request/pull/318) Pass servername to tunneling secure socket creation (@isaacs) -- [#317](https://github.com/request/request/pull/317) Workaround for #313 (@isaacs) -- [#293](https://github.com/request/request/pull/293) Allow parser errors to bubble up to request (@mscdex) -- [#290](https://github.com/request/request/pull/290) A test for #289 (@isaacs) -- [#280](https://github.com/request/request/pull/280) Like in node.js print options if NODE_DEBUG contains the word request (@Filirom1) -- [#207](https://github.com/request/request/pull/207) Fix #206 Change HTTP/HTTPS agent when redirecting between protocols (@isaacs) -- [#214](https://github.com/request/request/pull/214) documenting additional behavior of json option (@jphaas) -- [#272](https://github.com/request/request/pull/272) Boundary begins with CRLF? (@elspoono, @timshadel, @naholyr, @nanodocumet, @TehShrike) -- [#284](https://github.com/request/request/pull/284) Remove stray `console.log()` call in multipart generator. (@bcherry) -- [#241](https://github.com/request/request/pull/241) Composability updates suggested by issue #239 (@polotek) -- [#282](https://github.com/request/request/pull/282) OAuth Authorization header contains non-"oauth_" parameters (@jplock) -- [#279](https://github.com/request/request/pull/279) fix tests with boundary by injecting boundry from header (@benatkin) -- [#273](https://github.com/request/request/pull/273) Pipe back pressure issue (@mafintosh) -- [#268](https://github.com/request/request/pull/268) I'm not OCD seriously (@TehShrike) -- [#263](https://github.com/request/request/pull/263) Bug in OAuth key generation for sha1 (@nanodocumet) -- [#265](https://github.com/request/request/pull/265) uncaughtException when redirected to invalid URI (@naholyr) -- [#262](https://github.com/request/request/pull/262) JSON test should check for equality (@timshadel) -- [#261](https://github.com/request/request/pull/261) Setting 'pool' to 'false' does NOT disable Agent pooling (@timshadel) -- [#249](https://github.com/request/request/pull/249) Fix for the fix of your (closed) issue #89 where self.headers[content-length] is set to 0 for all methods (@sethbridges, @polotek, @zephrax, @jeromegn) -- [#255](https://github.com/request/request/pull/255) multipart allow body === '' ( the empty string ) (@Filirom1) -- [#260](https://github.com/request/request/pull/260) fixed just another leak of 'i' (@sreuter) -- [#246](https://github.com/request/request/pull/246) Fixing the set-cookie header (@jeromegn) -- [#243](https://github.com/request/request/pull/243) Dynamic boundary (@zephrax) -- [#240](https://github.com/request/request/pull/240) don't error when null is passed for options (@polotek) -- [#211](https://github.com/request/request/pull/211) Replace all occurrences of special chars in RFC3986 (@chriso) -- [#224](https://github.com/request/request/pull/224) Multipart content-type change (@janjongboom) -- [#217](https://github.com/request/request/pull/217) need to use Authorization (titlecase) header with Tumblr OAuth (@visnup) -- [#203](https://github.com/request/request/pull/203) Fix cookie and redirect bugs and add auth support for HTTPS tunnel (@milewise) -- [#199](https://github.com/request/request/pull/199) Tunnel (@isaacs) -- [#198](https://github.com/request/request/pull/198) Bugfix on forever usage of util.inherits (@isaacs) -- [#197](https://github.com/request/request/pull/197) Make ForeverAgent work with HTTPS (@isaacs) -- [#193](https://github.com/request/request/pull/193) Fixes GH-119 (@goatslacker) -- [#188](https://github.com/request/request/pull/188) Add abort support to the returned request (@itay) -- [#176](https://github.com/request/request/pull/176) Querystring option (@csainty) -- [#182](https://github.com/request/request/pull/182) Fix request.defaults to support (uri, options, callback) api (@twilson63) -- [#180](https://github.com/request/request/pull/180) Modified the post, put, head and del shortcuts to support uri optional param (@twilson63) -- [#179](https://github.com/request/request/pull/179) fix to add opts in .pipe(stream, opts) (@substack) -- [#177](https://github.com/request/request/pull/177) Issue #173 Support uri as first and optional config as second argument (@twilson63) -- [#170](https://github.com/request/request/pull/170) can't create a cookie in a wrapped request (defaults) (@fabianonunes) -- [#168](https://github.com/request/request/pull/168) Picking off an EasyFix by adding some missing mimetypes. (@serby) -- [#161](https://github.com/request/request/pull/161) Fix cookie jar/headers.cookie collision (#125) (@papandreou) -- [#162](https://github.com/request/request/pull/162) Fix issue #159 (@dpetukhov) -- [#90](https://github.com/request/request/pull/90) add option followAllRedirects to follow post/put redirects (@jroes) -- [#148](https://github.com/request/request/pull/148) Retry Agent (@thejh) -- [#146](https://github.com/request/request/pull/146) Multipart should respect content-type if previously set (@apeace) -- [#144](https://github.com/request/request/pull/144) added "form" option to readme (@petejkim) -- [#133](https://github.com/request/request/pull/133) Fixed cookies parsing (@afanasy) -- [#135](https://github.com/request/request/pull/135) host vs hostname (@iangreenleaf) -- [#132](https://github.com/request/request/pull/132) return the body as a Buffer when encoding is set to null (@jahewson) -- [#112](https://github.com/request/request/pull/112) Support using a custom http-like module (@jhs) -- [#104](https://github.com/request/request/pull/104) Cookie handling contains bugs (@janjongboom) -- [#121](https://github.com/request/request/pull/121) Another patch for cookie handling regression (@jhurliman) -- [#117](https://github.com/request/request/pull/117) Remove the global `i` (@3rd-Eden) -- [#110](https://github.com/request/request/pull/110) Update to Iris Couch URL (@jhs) -- [#86](https://github.com/request/request/pull/86) Can't post binary to multipart requests (@kkaefer) -- [#105](https://github.com/request/request/pull/105) added test for proxy option. (@dominictarr) -- [#102](https://github.com/request/request/pull/102) Implemented cookies - closes issue 82: https://github.com/mikeal/request/issues/82 (@alessioalex) -- [#97](https://github.com/request/request/pull/97) Typo in previous pull causes TypeError in non-0.5.11 versions (@isaacs) -- [#96](https://github.com/request/request/pull/96) Authless parsed url host support (@isaacs) -- [#81](https://github.com/request/request/pull/81) Enhance redirect handling (@danmactough) -- [#78](https://github.com/request/request/pull/78) Don't try to do strictSSL for non-ssl connections (@isaacs) -- [#76](https://github.com/request/request/pull/76) Bug when a request fails and a timeout is set (@Marsup) -- [#70](https://github.com/request/request/pull/70) add test script to package.json (@isaacs, @aheckmann) -- [#73](https://github.com/request/request/pull/73) Fix #71 Respect the strictSSL flag (@isaacs) -- [#69](https://github.com/request/request/pull/69) Flatten chunked requests properly (@isaacs) -- [#67](https://github.com/request/request/pull/67) fixed global variable leaks (@aheckmann) -- [#66](https://github.com/request/request/pull/66) Do not overwrite established content-type headers for read stream deliver (@voodootikigod) -- [#53](https://github.com/request/request/pull/53) Parse json: Issue #51 (@benatkin) -- [#45](https://github.com/request/request/pull/45) Added timeout option (@mbrevoort) -- [#35](https://github.com/request/request/pull/35) The "end" event isn't emitted for some responses (@voxpelli) -- [#31](https://github.com/request/request/pull/31) Error on piping a request to a destination (@tobowers) \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/CONTRIBUTING.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/CONTRIBUTING.md deleted file mode 100644 index 8aa6999a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/CONTRIBUTING.md +++ /dev/null @@ -1,81 +0,0 @@ - -# Contributing to Request - -:+1::tada: First off, thanks for taking the time to contribute! :tada::+1: - -The following is a set of guidelines for contributing to Request and its packages, which are hosted in the [Request Organization](https://github.com/request) on GitHub. -These are just guidelines, not rules, use your best judgment and feel free to propose changes to this document in a pull request. - - -## Submitting an Issue - -1. Provide a small self **sufficient** code example to **reproduce** the issue. -2. Run your test code using [request-debug](https://github.com/request/request-debug) and copy/paste the results inside the issue. -3. You should **always** use fenced code blocks when submitting code examples or any other formatted output: -
            -  ```js
            -  put your javascript code here
            -  ```
            -
            -  ```
            -  put any other formatted output here,
            -  like for example the one returned from using request-debug
            -  ```
            -  
            - -If the problem cannot be reliably reproduced, the issue will be marked as `Not enough info (see CONTRIBUTING.md)`. - -If the problem is not related to request the issue will be marked as `Help (please use Stackoverflow)`. - - -## Submitting a Pull Request - -1. In almost all of the cases your PR **needs tests**. Make sure you have any. -2. Run `npm test` locally. Fix any errors before pushing to GitHub. -3. After submitting the PR a build will be triggered on TravisCI. Wait for it to ends and make sure all jobs are passing. - - ------------------------------------------ - - -## Becoming a Contributor - -Individuals making significant and valuable contributions are given -commit-access to the project to contribute as they see fit. This project is -more like an open wiki than a standard guarded open source project. - - -## Rules - -There are a few basic ground-rules for contributors: - -1. **No `--force` pushes** or modifying the Git history in any way. -1. **Non-master branches** ought to be used for ongoing work. -1. **Any** change should be added through Pull Request. -1. **External API changes and significant modifications** ought to be subject - to an **internal pull-request** to solicit feedback from other contributors. -1. Internal pull-requests to solicit feedback are *encouraged* for any other - non-trivial contribution but left to the discretion of the contributor. -1. For significant changes wait a full 24 hours before merging so that active - contributors who are distributed throughout the world have a chance to weigh - in. -1. Contributors should attempt to adhere to the prevailing code-style. -1. Run `npm test` locally before submitting your PR, to catch any easy to miss - style & testing issues. To diagnose test failures, there are two ways to - run a single test file: - - `node_modules/.bin/taper tests/test-file.js` - run using the default - [`taper`](https://github.com/nylen/taper) test reporter. - - `node tests/test-file.js` - view the raw - [tap](https://testanything.org/) output. - - -## Releases - -Declaring formal releases remains the prerogative of the project maintainer. - - -## Changes to this arrangement - -This is an experiment and feedback is welcome! This document may also be -subject to pull-requests or changes by contributors where you believe you have -something valuable to add or change. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/LICENSE deleted file mode 100644 index a4a9aee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/README.md deleted file mode 100644 index cf9072a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/README.md +++ /dev/null @@ -1,1098 +0,0 @@ - -# Request - Simplified HTTP client - -[![npm package](https://nodei.co/npm/request.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/request/) - -[![Build status](https://img.shields.io/travis/request/request/master.svg?style=flat-square)](https://travis-ci.org/request/request) -[![Coverage](https://img.shields.io/codecov/c/github/request/request.svg?style=flat-square)](https://codecov.io/github/request/request?branch=master) -[![Coverage](https://img.shields.io/coveralls/request/request.svg?style=flat-square)](https://coveralls.io/r/request/request) -[![Dependency Status](https://img.shields.io/david/request/request.svg?style=flat-square)](https://david-dm.org/request/request) -[![Known Vulnerabilities](https://snyk.io/test/npm/request/badge.svg?style=flat-square)](https://snyk.io/test/npm/request) -[![Gitter](https://img.shields.io/badge/gitter-join_chat-blue.svg?style=flat-square)](https://gitter.im/request/request?utm_source=badge) - - -## Super simple to use - -Request is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default. - -```js -var request = require('request'); -request('http://www.google.com', function (error, response, body) { - if (!error && response.statusCode == 200) { - console.log(body) // Show the HTML for the Google homepage. - } -}) -``` - - -## Table of contents - -- [Streaming](#streaming) -- [Forms](#forms) -- [HTTP Authentication](#http-authentication) -- [Custom HTTP Headers](#custom-http-headers) -- [OAuth Signing](#oauth-signing) -- [Proxies](#proxies) -- [Unix Domain Sockets](#unix-domain-sockets) -- [TLS/SSL Protocol](#tlsssl-protocol) -- [Support for HAR 1.2](#support-for-har-12) -- [**All Available Options**](#requestoptions-callback) - -Request also offers [convenience methods](#convenience-methods) like -`request.defaults` and `request.post`, and there are -lots of [usage examples](#examples) and several -[debugging techniques](#debugging). - - ---- - - -## Streaming - -You can stream any response to a file stream. - -```js -request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png')) -``` - -You can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types (in this case `application/json`) and use the proper `content-type` in the PUT request (if the headers don’t already provide one). - -```js -fs.createReadStream('file.json').pipe(request.put('http://mysite.com/obj.json')) -``` - -Request can also `pipe` to itself. When doing so, `content-type` and `content-length` are preserved in the PUT headers. - -```js -request.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png')) -``` - -Request emits a "response" event when a response is received. The `response` argument will be an instance of [http.IncomingMessage](http://nodejs.org/api/http.html#http_http_incomingmessage). - -```js -request - .get('http://google.com/img.png') - .on('response', function(response) { - console.log(response.statusCode) // 200 - console.log(response.headers['content-type']) // 'image/png' - }) - .pipe(request.put('http://mysite.com/img.png')) -``` - -To easily handle errors when streaming requests, listen to the `error` event before piping: - -```js -request - .get('http://mysite.com/doodle.png') - .on('error', function(err) { - console.log(err) - }) - .pipe(fs.createWriteStream('doodle.png')) -``` - -Now let’s get fancy. - -```js -http.createServer(function (req, resp) { - if (req.url === '/doodle.png') { - if (req.method === 'PUT') { - req.pipe(request.put('http://mysite.com/doodle.png')) - } else if (req.method === 'GET' || req.method === 'HEAD') { - request.get('http://mysite.com/doodle.png').pipe(resp) - } - } -}) -``` - -You can also `pipe()` from `http.ServerRequest` instances, as well as to `http.ServerResponse` instances. The HTTP method, headers, and entity-body data will be sent. Which means that, if you don't really care about security, you can do: - -```js -http.createServer(function (req, resp) { - if (req.url === '/doodle.png') { - var x = request('http://mysite.com/doodle.png') - req.pipe(x) - x.pipe(resp) - } -}) -``` - -And since `pipe()` returns the destination stream in ≥ Node 0.5.x you can do one line proxying. :) - -```js -req.pipe(request('http://mysite.com/doodle.png')).pipe(resp) -``` - -Also, none of this new functionality conflicts with requests previous features, it just expands them. - -```js -var r = request.defaults({'proxy':'http://localproxy.com'}) - -http.createServer(function (req, resp) { - if (req.url === '/doodle.png') { - r.get('http://google.com/doodle.png').pipe(resp) - } -}) -``` - -You can still use intermediate proxies, the requests will still follow HTTP forwards, etc. - -[back to top](#table-of-contents) - - ---- - - -## Forms - -`request` supports `application/x-www-form-urlencoded` and `multipart/form-data` form uploads. For `multipart/related` refer to the `multipart` API. - - -#### application/x-www-form-urlencoded (URL-Encoded Forms) - -URL-encoded forms are simple. - -```js -request.post('http://service.com/upload', {form:{key:'value'}}) -// or -request.post('http://service.com/upload').form({key:'value'}) -// or -request.post({url:'http://service.com/upload', form: {key:'value'}}, function(err,httpResponse,body){ /* ... */ }) -``` - - -#### multipart/form-data (Multipart Form Uploads) - -For `multipart/form-data` we use the [form-data](https://github.com/form-data/form-data) library by [@felixge](https://github.com/felixge). For the most cases, you can pass your upload form data via the `formData` option. - - -```js -var formData = { - // Pass a simple key-value pair - my_field: 'my_value', - // Pass data via Buffers - my_buffer: new Buffer([1, 2, 3]), - // Pass data via Streams - my_file: fs.createReadStream(__dirname + '/unicycle.jpg'), - // Pass multiple values /w an Array - attachments: [ - fs.createReadStream(__dirname + '/attachment1.jpg'), - fs.createReadStream(__dirname + '/attachment2.jpg') - ], - // Pass optional meta-data with an 'options' object with style: {value: DATA, options: OPTIONS} - // Use case: for some types of streams, you'll need to provide "file"-related information manually. - // See the `form-data` README for more information about options: https://github.com/form-data/form-data - custom_file: { - value: fs.createReadStream('/dev/urandom'), - options: { - filename: 'topsecret.jpg', - contentType: 'image/jpg' - } - } -}; -request.post({url:'http://service.com/upload', formData: formData}, function optionalCallback(err, httpResponse, body) { - if (err) { - return console.error('upload failed:', err); - } - console.log('Upload successful! Server responded with:', body); -}); -``` - -For advanced cases, you can access the form-data object itself via `r.form()`. This can be modified until the request is fired on the next cycle of the event-loop. (Note that this calling `form()` will clear the currently set form data for that request.) - -```js -// NOTE: Advanced use-case, for normal use see 'formData' usage above -var r = request.post('http://service.com/upload', function optionalCallback(err, httpResponse, body) {...}) -var form = r.form(); -form.append('my_field', 'my_value'); -form.append('my_buffer', new Buffer([1, 2, 3])); -form.append('custom_file', fs.createReadStream(__dirname + '/unicycle.jpg'), {filename: 'unicycle.jpg'}); -``` -See the [form-data README](https://github.com/form-data/form-data) for more information & examples. - - -#### multipart/related - -Some variations in different HTTP implementations require a newline/CRLF before, after, or both before and after the boundary of a `multipart/related` request (using the multipart option). This has been observed in the .NET WebAPI version 4.0. You can turn on a boundary preambleCRLF or postamble by passing them as `true` to your request options. - -```js - request({ - method: 'PUT', - preambleCRLF: true, - postambleCRLF: true, - uri: 'http://service.com/upload', - multipart: [ - { - 'content-type': 'application/json', - body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}}) - }, - { body: 'I am an attachment' }, - { body: fs.createReadStream('image.png') } - ], - // alternatively pass an object containing additional options - multipart: { - chunked: false, - data: [ - { - 'content-type': 'application/json', - body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}}) - }, - { body: 'I am an attachment' } - ] - } - }, - function (error, response, body) { - if (error) { - return console.error('upload failed:', error); - } - console.log('Upload successful! Server responded with:', body); - }) -``` - -[back to top](#table-of-contents) - - ---- - - -## HTTP Authentication - -```js -request.get('http://some.server.com/').auth('username', 'password', false); -// or -request.get('http://some.server.com/', { - 'auth': { - 'user': 'username', - 'pass': 'password', - 'sendImmediately': false - } -}); -// or -request.get('http://some.server.com/').auth(null, null, true, 'bearerToken'); -// or -request.get('http://some.server.com/', { - 'auth': { - 'bearer': 'bearerToken' - } -}); -``` - -If passed as an option, `auth` should be a hash containing values: - -- `user` || `username` -- `pass` || `password` -- `sendImmediately` (optional) -- `bearer` (optional) - -The method form takes parameters -`auth(username, password, sendImmediately, bearer)`. - -`sendImmediately` defaults to `true`, which causes a basic or bearer -authentication header to be sent. If `sendImmediately` is `false`, then -`request` will retry with a proper authentication header after receiving a -`401` response from the server (which must contain a `WWW-Authenticate` header -indicating the required authentication method). - -Note that you can also specify basic authentication using the URL itself, as -detailed in [RFC 1738](http://www.ietf.org/rfc/rfc1738.txt). Simply pass the -`user:password` before the host with an `@` sign: - -```js -var username = 'username', - password = 'password', - url = 'http://' + username + ':' + password + '@some.server.com'; - -request({url: url}, function (error, response, body) { - // Do more stuff with 'body' here -}); -``` - -Digest authentication is supported, but it only works with `sendImmediately` -set to `false`; otherwise `request` will send basic authentication on the -initial request, which will probably cause the request to fail. - -Bearer authentication is supported, and is activated when the `bearer` value is -available. The value may be either a `String` or a `Function` returning a -`String`. Using a function to supply the bearer token is particularly useful if -used in conjunction with `defaults` to allow a single function to supply the -last known token at the time of sending a request, or to compute one on the fly. - -[back to top](#table-of-contents) - - ---- - - -## Custom HTTP Headers - -HTTP Headers, such as `User-Agent`, can be set in the `options` object. -In the example below, we call the github API to find out the number -of stars and forks for the request repository. This requires a -custom `User-Agent` header as well as https. - -```js -var request = require('request'); - -var options = { - url: 'https://api.github.com/repos/request/request', - headers: { - 'User-Agent': 'request' - } -}; - -function callback(error, response, body) { - if (!error && response.statusCode == 200) { - var info = JSON.parse(body); - console.log(info.stargazers_count + " Stars"); - console.log(info.forks_count + " Forks"); - } -} - -request(options, callback); -``` - -[back to top](#table-of-contents) - - ---- - - -## OAuth Signing - -[OAuth version 1.0](https://tools.ietf.org/html/rfc5849) is supported. The -default signing algorithm is -[HMAC-SHA1](https://tools.ietf.org/html/rfc5849#section-3.4.2): - -```js -// OAuth1.0 - 3-legged server side flow (Twitter example) -// step 1 -var qs = require('querystring') - , oauth = - { callback: 'http://mysite.com/callback/' - , consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - } - , url = 'https://api.twitter.com/oauth/request_token' - ; -request.post({url:url, oauth:oauth}, function (e, r, body) { - // Ideally, you would take the body in the response - // and construct a URL that a user clicks on (like a sign in button). - // The verifier is only available in the response after a user has - // verified with twitter that they are authorizing your app. - - // step 2 - var req_data = qs.parse(body) - var uri = 'https://api.twitter.com/oauth/authenticate' - + '?' + qs.stringify({oauth_token: req_data.oauth_token}) - // redirect the user to the authorize uri - - // step 3 - // after the user is redirected back to your server - var auth_data = qs.parse(body) - , oauth = - { consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - , token: auth_data.oauth_token - , token_secret: req_data.oauth_token_secret - , verifier: auth_data.oauth_verifier - } - , url = 'https://api.twitter.com/oauth/access_token' - ; - request.post({url:url, oauth:oauth}, function (e, r, body) { - // ready to make signed requests on behalf of the user - var perm_data = qs.parse(body) - , oauth = - { consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - , token: perm_data.oauth_token - , token_secret: perm_data.oauth_token_secret - } - , url = 'https://api.twitter.com/1.1/users/show.json' - , qs = - { screen_name: perm_data.screen_name - , user_id: perm_data.user_id - } - ; - request.get({url:url, oauth:oauth, qs:qs, json:true}, function (e, r, user) { - console.log(user) - }) - }) -}) -``` - -For [RSA-SHA1 signing](https://tools.ietf.org/html/rfc5849#section-3.4.3), make -the following changes to the OAuth options object: -* Pass `signature_method : 'RSA-SHA1'` -* Instead of `consumer_secret`, specify a `private_key` string in - [PEM format](http://how2ssl.com/articles/working_with_pem_files/) - -For [PLAINTEXT signing](http://oauth.net/core/1.0/#anchor22), make -the following changes to the OAuth options object: -* Pass `signature_method : 'PLAINTEXT'` - -To send OAuth parameters via query params or in a post body as described in The -[Consumer Request Parameters](http://oauth.net/core/1.0/#consumer_req_param) -section of the oauth1 spec: -* Pass `transport_method : 'query'` or `transport_method : 'body'` in the OAuth - options object. -* `transport_method` defaults to `'header'` - -To use [Request Body Hash](https://oauth.googlecode.com/svn/spec/ext/body_hash/1.0/oauth-bodyhash.html) you can either -* Manually generate the body hash and pass it as a string `body_hash: '...'` -* Automatically generate the body hash by passing `body_hash: true` - -[back to top](#table-of-contents) - - ---- - - -## Proxies - -If you specify a `proxy` option, then the request (and any subsequent -redirects) will be sent via a connection to the proxy server. - -If your endpoint is an `https` url, and you are using a proxy, then -request will send a `CONNECT` request to the proxy server *first*, and -then use the supplied connection to connect to the endpoint. - -That is, first it will make a request like: - -``` -HTTP/1.1 CONNECT endpoint-server.com:80 -Host: proxy-server.com -User-Agent: whatever user agent you specify -``` - -and then the proxy server make a TCP connection to `endpoint-server` -on port `80`, and return a response that looks like: - -``` -HTTP/1.1 200 OK -``` - -At this point, the connection is left open, and the client is -communicating directly with the `endpoint-server.com` machine. - -See [the wikipedia page on HTTP Tunneling](https://en.wikipedia.org/wiki/HTTP_tunnel) -for more information. - -By default, when proxying `http` traffic, request will simply make a -standard proxied `http` request. This is done by making the `url` -section of the initial line of the request a fully qualified url to -the endpoint. - -For example, it will make a single request that looks like: - -``` -HTTP/1.1 GET http://endpoint-server.com/some-url -Host: proxy-server.com -Other-Headers: all go here - -request body or whatever -``` - -Because a pure "http over http" tunnel offers no additional security -or other features, it is generally simpler to go with a -straightforward HTTP proxy in this case. However, if you would like -to force a tunneling proxy, you may set the `tunnel` option to `true`. - -You can also make a standard proxied `http` request by explicitly setting -`tunnel : false`, but **note that this will allow the proxy to see the traffic -to/from the destination server**. - -If you are using a tunneling proxy, you may set the -`proxyHeaderWhiteList` to share certain headers with the proxy. - -You can also set the `proxyHeaderExclusiveList` to share certain -headers only with the proxy and not with destination host. - -By default, this set is: - -``` -accept -accept-charset -accept-encoding -accept-language -accept-ranges -cache-control -content-encoding -content-language -content-length -content-location -content-md5 -content-range -content-type -connection -date -expect -max-forwards -pragma -proxy-authorization -referer -te -transfer-encoding -user-agent -via -``` - -Note that, when using a tunneling proxy, the `proxy-authorization` -header and any headers from custom `proxyHeaderExclusiveList` are -*never* sent to the endpoint server, but only to the proxy server. - - -### Controlling proxy behaviour using environment variables - -The following environment variables are respected by `request`: - - * `HTTP_PROXY` / `http_proxy` - * `HTTPS_PROXY` / `https_proxy` - * `NO_PROXY` / `no_proxy` - -When `HTTP_PROXY` / `http_proxy` are set, they will be used to proxy non-SSL requests that do not have an explicit `proxy` configuration option present. Similarly, `HTTPS_PROXY` / `https_proxy` will be respected for SSL requests that do not have an explicit `proxy` configuration option. It is valid to define a proxy in one of the environment variables, but then override it for a specific request, using the `proxy` configuration option. Furthermore, the `proxy` configuration option can be explicitly set to false / null to opt out of proxying altogether for that request. - -`request` is also aware of the `NO_PROXY`/`no_proxy` environment variables. These variables provide a granular way to opt out of proxying, on a per-host basis. It should contain a comma separated list of hosts to opt out of proxying. It is also possible to opt of proxying when a particular destination port is used. Finally, the variable may be set to `*` to opt out of the implicit proxy configuration of the other environment variables. - -Here's some examples of valid `no_proxy` values: - - * `google.com` - don't proxy HTTP/HTTPS requests to Google. - * `google.com:443` - don't proxy HTTPS requests to Google, but *do* proxy HTTP requests to Google. - * `google.com:443, yahoo.com:80` - don't proxy HTTPS requests to Google, and don't proxy HTTP requests to Yahoo! - * `*` - ignore `https_proxy`/`http_proxy` environment variables altogether. - -[back to top](#table-of-contents) - - ---- - - -## UNIX Domain Sockets - -`request` supports making requests to [UNIX Domain Sockets](https://en.wikipedia.org/wiki/Unix_domain_socket). To make one, use the following URL scheme: - -```js -/* Pattern */ 'http://unix:SOCKET:PATH' -/* Example */ request.get('http://unix:/absolute/path/to/unix.socket:/request/path') -``` - -Note: The `SOCKET` path is assumed to be absolute to the root of the host file system. - -[back to top](#table-of-contents) - - ---- - - -## TLS/SSL Protocol - -TLS/SSL Protocol options, such as `cert`, `key` and `passphrase`, can be -set directly in `options` object, in the `agentOptions` property of the `options` object, or even in `https.globalAgent.options`. Keep in mind that, although `agentOptions` allows for a slightly wider range of configurations, the recommended way is via `options` object directly, as using `agentOptions` or `https.globalAgent.options` would not be applied in the same way in proxied environments (as data travels through a TLS connection instead of an http/https agent). - -```js -var fs = require('fs') - , path = require('path') - , certFile = path.resolve(__dirname, 'ssl/client.crt') - , keyFile = path.resolve(__dirname, 'ssl/client.key') - , caFile = path.resolve(__dirname, 'ssl/ca.cert.pem') - , request = require('request'); - -var options = { - url: 'https://api.some-server.com/', - cert: fs.readFileSync(certFile), - key: fs.readFileSync(keyFile), - passphrase: 'password', - ca: fs.readFileSync(caFile) - } -}; - -request.get(options); -``` - -### Using `options.agentOptions` - -In the example below, we call an API requires client side SSL certificate -(in PEM format) with passphrase protected private key (in PEM format) and disable the SSLv3 protocol: - -```js -var fs = require('fs') - , path = require('path') - , certFile = path.resolve(__dirname, 'ssl/client.crt') - , keyFile = path.resolve(__dirname, 'ssl/client.key') - , request = require('request'); - -var options = { - url: 'https://api.some-server.com/', - agentOptions: { - cert: fs.readFileSync(certFile), - key: fs.readFileSync(keyFile), - // Or use `pfx` property replacing `cert` and `key` when using private key, certificate and CA certs in PFX or PKCS12 format: - // pfx: fs.readFileSync(pfxFilePath), - passphrase: 'password', - securityOptions: 'SSL_OP_NO_SSLv3' - } -}; - -request.get(options); -``` - -It is able to force using SSLv3 only by specifying `secureProtocol`: - -```js -request.get({ - url: 'https://api.some-server.com/', - agentOptions: { - secureProtocol: 'SSLv3_method' - } -}); -``` - -It is possible to accept other certificates than those signed by generally allowed Certificate Authorities (CAs). -This can be useful, for example, when using self-signed certificates. -To require a different root certificate, you can specify the signing CA by adding the contents of the CA's certificate file to the `agentOptions`. -The certificate the domain presents must be signed by the root certificate specified: - -```js -request.get({ - url: 'https://api.some-server.com/', - agentOptions: { - ca: fs.readFileSync('ca.cert.pem') - } -}); -``` - -[back to top](#table-of-contents) - - ---- - -## Support for HAR 1.2 - -The `options.har` property will override the values: `url`, `method`, `qs`, `headers`, `form`, `formData`, `body`, `json`, as well as construct multipart data and read files from disk when `request.postData.params[].fileName` is present without a matching `value`. - -a validation step will check if the HAR Request format matches the latest spec (v1.2) and will skip parsing if not matching. - -```js - var request = require('request') - request({ - // will be ignored - method: 'GET', - uri: 'http://www.google.com', - - // HTTP Archive Request Object - har: { - url: 'http://www.mockbin.com/har', - method: 'POST', - headers: [ - { - name: 'content-type', - value: 'application/x-www-form-urlencoded' - } - ], - postData: { - mimeType: 'application/x-www-form-urlencoded', - params: [ - { - name: 'foo', - value: 'bar' - }, - { - name: 'hello', - value: 'world' - } - ] - } - } - }) - - // a POST request will be sent to http://www.mockbin.com - // with body an application/x-www-form-urlencoded body: - // foo=bar&hello=world -``` - -[back to top](#table-of-contents) - - ---- - -## request(options, callback) - -The first argument can be either a `url` or an `options` object. The only required option is `uri`; all others are optional. - -- `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()` -- `baseUrl` - fully qualified uri string used as the base url. Most useful with `request.defaults`, for example when you want to do many requests to the same domain. If `baseUrl` is `https://example.com/api/`, then requesting `/end/point?test=true` will fetch `https://example.com/api/end/point?test=true`. When `baseUrl` is given, `uri` must also be a string. -- `method` - http method (default: `"GET"`) -- `headers` - http headers (default: `{}`) - ---- - -- `qs` - object containing querystring values to be appended to the `uri` -- `qsParseOptions` - object containing options to pass to the [qs.parse](https://github.com/hapijs/qs#parsing-objects) method. Alternatively pass options to the [querystring.parse](https://nodejs.org/docs/v0.12.0/api/querystring.html#querystring_querystring_parse_str_sep_eq_options) method using this format `{sep:';', eq:':', options:{}}` -- `qsStringifyOptions` - object containing options to pass to the [qs.stringify](https://github.com/hapijs/qs#stringifying) method. Alternatively pass options to the [querystring.stringify](https://nodejs.org/docs/v0.12.0/api/querystring.html#querystring_querystring_stringify_obj_sep_eq_options) method using this format `{sep:';', eq:':', options:{}}`. For example, to change the way arrays are converted to query strings using the `qs` module pass the `arrayFormat` option with one of `indices|brackets|repeat` -- `useQuerystring` - If true, use `querystring` to stringify and parse - querystrings, otherwise use `qs` (default: `false`). Set this option to - `true` if you need arrays to be serialized as `foo=bar&foo=baz` instead of the - default `foo[0]=bar&foo[1]=baz`. - ---- - -- `body` - entity body for PATCH, POST and PUT requests. Must be a `Buffer`, `String` or `ReadStream`. If `json` is `true`, then `body` must be a JSON-serializable object. -- `form` - when passed an object or a querystring, this sets `body` to a querystring representation of value, and adds `Content-type: application/x-www-form-urlencoded` header. When passed no options, a `FormData` instance is returned (and is piped to request). See "Forms" section above. -- `formData` - Data to pass for a `multipart/form-data` request. See - [Forms](#forms) section above. -- `multipart` - array of objects which contain their own headers and `body` - attributes. Sends a `multipart/related` request. See [Forms](#forms) section - above. - - Alternatively you can pass in an object `{chunked: false, data: []}` where - `chunked` is used to specify whether the request is sent in - [chunked transfer encoding](https://en.wikipedia.org/wiki/Chunked_transfer_encoding) - In non-chunked requests, data items with body streams are not allowed. -- `preambleCRLF` - append a newline/CRLF before the boundary of your `multipart/form-data` request. -- `postambleCRLF` - append a newline/CRLF at the end of the boundary of your `multipart/form-data` request. -- `json` - sets `body` to JSON representation of value and adds `Content-type: application/json` header. Additionally, parses the response body as JSON. -- `jsonReviver` - a [reviver function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse) that will be passed to `JSON.parse()` when parsing a JSON response body. -- `jsonReplacer` - a [replacer function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) that will be passed to `JSON.stringify()` when stringifying a JSON request body. - ---- - -- `auth` - A hash containing values `user` || `username`, `pass` || `password`, and `sendImmediately` (optional). See documentation above. -- `oauth` - Options for OAuth HMAC-SHA1 signing. See documentation above. -- `hawk` - Options for [Hawk signing](https://github.com/hueniverse/hawk). The `credentials` key must contain the necessary signing info, [see hawk docs for details](https://github.com/hueniverse/hawk#usage-example). -- `aws` - `object` containing AWS signing information. Should have the properties `key`, `secret`. Also requires the property `bucket`, unless you’re specifying your `bucket` as part of the path, or the request doesn’t use a bucket (i.e. GET Services). If you want to use AWS sign version 4 use the parameter `sign_version` with value `4` otherwise the default is version 2. **Note:** you need to `npm install aws4` first. -- `httpSignature` - Options for the [HTTP Signature Scheme](https://github.com/joyent/node-http-signature/blob/master/http_signing.md) using [Joyent's library](https://github.com/joyent/node-http-signature). The `keyId` and `key` properties must be specified. See the docs for other options. - ---- - -- `followRedirect` - follow HTTP 3xx responses as redirects (default: `true`). This property can also be implemented as function which gets `response` object as a single argument and should return `true` if redirects should continue or `false` otherwise. -- `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects (default: `false`) -- `maxRedirects` - the maximum number of redirects to follow (default: `10`) -- `removeRefererHeader` - removes the referer header when a redirect happens (default: `false`). **Note:** if true, referer header set in the initial request is preserved during redirect chain. - ---- - -- `encoding` - Encoding to be used on `setEncoding` of response data. If `null`, the `body` is returned as a `Buffer`. Anything else **(including the default value of `undefined`)** will be passed as the [encoding](http://nodejs.org/api/buffer.html#buffer_buffer) parameter to `toString()` (meaning this is effectively `utf8` by default). (**Note:** if you expect binary data, you should set `encoding: null`.) -- `gzip` - If `true`, add an `Accept-Encoding` header to request compressed content encodings from the server (if not already present) and decode supported content encodings in the response. **Note:** Automatic decoding of the response content is performed on the body data returned through `request` (both through the `request` stream and passed to the callback function) but is not performed on the `response` stream (available from the `response` event) which is the unmodified `http.IncomingMessage` object which may contain compressed data. See example below. -- `jar` - If `true`, remember cookies for future use (or define your custom cookie jar; see examples section) - ---- - -- `agent` - `http(s).Agent` instance to use -- `agentClass` - alternatively specify your agent's class name -- `agentOptions` - and pass its options. **Note:** for HTTPS see [tls API doc for TLS/SSL options](http://nodejs.org/api/tls.html#tls_tls_connect_options_callback) and the [documentation above](#using-optionsagentoptions). -- `forever` - set to `true` to use the [forever-agent](https://github.com/request/forever-agent) **Note:** Defaults to `http(s).Agent({keepAlive:true})` in node 0.12+ -- `pool` - An object describing which agents to use for the request. If this option is omitted the request will use the global agent (as long as your options allow for it). Otherwise, request will search the pool for your custom agent. If no custom agent is found, a new agent will be created and added to the pool. **Note:** `pool` is used only when the `agent` option is not specified. - - A `maxSockets` property can also be provided on the `pool` object to set the max number of sockets for all agents created (ex: `pool: {maxSockets: Infinity}`). - - Note that if you are sending multiple requests in a loop and creating - multiple new `pool` objects, `maxSockets` will not work as intended. To - work around this, either use [`request.defaults`](#requestdefaultsoptions) - with your pool options or create the pool object with the `maxSockets` - property outside of the loop. -- `timeout` - Integer containing the number of milliseconds to wait for a -server to send response headers (and start the response body) before aborting -the request. Note that if the underlying TCP connection cannot be established, -the OS-wide TCP connection timeout will overrule the `timeout` option ([the -default in Linux can be anywhere from 20-120 seconds][linux-timeout]). - -[linux-timeout]: http://www.sekuda.com/overriding_the_default_linux_kernel_20_second_tcp_socket_connect_timeout - ---- - -- `localAddress` - Local interface to bind for network connections. -- `proxy` - An HTTP proxy to be used. Supports proxy Auth with Basic Auth, identical to support for the `url` parameter (by embedding the auth info in the `uri`) -- `strictSSL` - If `true`, requires SSL certificates be valid. **Note:** to use your own certificate authority, you need to specify an agent that was created with that CA as an option. -- `tunnel` - controls the behavior of - [HTTP `CONNECT` tunneling](https://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_tunneling) - as follows: - - `undefined` (default) - `true` if the destination is `https`, `false` otherwise - - `true` - always tunnel to the destination by making a `CONNECT` request to - the proxy - - `false` - request the destination as a `GET` request. -- `proxyHeaderWhiteList` - A whitelist of headers to send to a - tunneling proxy. -- `proxyHeaderExclusiveList` - A whitelist of headers to send - exclusively to a tunneling proxy and not to destination. - ---- - -- `time` - If `true`, the request-response cycle (including all redirects) is timed at millisecond resolution, and the result provided on the response's `elapsedTime` property. -- `har` - A [HAR 1.2 Request Object](http://www.softwareishard.com/blog/har-12-spec/#request), will be processed from HAR format into options overwriting matching values *(see the [HAR 1.2 section](#support-for-har-1.2) for details)* -- `callback` - alternatively pass the request's callback in the options object - -The callback argument gets 3 arguments: - -1. An `error` when applicable (usually from [`http.ClientRequest`](http://nodejs.org/api/http.html#http_class_http_clientrequest) object) -2. An [`http.IncomingMessage`](http://nodejs.org/api/http.html#http_http_incomingmessage) object -3. The third is the `response` body (`String` or `Buffer`, or JSON object if the `json` option is supplied) - -[back to top](#table-of-contents) - - ---- - -## Convenience methods - -There are also shorthand methods for different HTTP METHODs and some other conveniences. - - -### request.defaults(options) - -This method **returns a wrapper** around the normal request API that defaults -to whatever options you pass to it. - -**Note:** `request.defaults()` **does not** modify the global request API; -instead, it **returns a wrapper** that has your default settings applied to it. - -**Note:** You can call `.defaults()` on the wrapper that is returned from -`request.defaults` to add/override defaults that were previously defaulted. - -For example: -```js -//requests using baseRequest() will set the 'x-token' header -var baseRequest = request.defaults({ - headers: {'x-token': 'my-token'} -}) - -//requests using specialRequest() will include the 'x-token' header set in -//baseRequest and will also include the 'special' header -var specialRequest = baseRequest.defaults({ - headers: {special: 'special value'} -}) -``` - -### request.put - -Same as `request()`, but defaults to `method: "PUT"`. - -```js -request.put(url) -``` - -### request.patch - -Same as `request()`, but defaults to `method: "PATCH"`. - -```js -request.patch(url) -``` - -### request.post - -Same as `request()`, but defaults to `method: "POST"`. - -```js -request.post(url) -``` - -### request.head - -Same as `request()`, but defaults to `method: "HEAD"`. - -```js -request.head(url) -``` - -### request.del / request.delete - -Same as `request()`, but defaults to `method: "DELETE"`. - -```js -request.del(url) -request.delete(url) -``` - -### request.get - -Same as `request()` (for uniformity). - -```js -request.get(url) -``` -### request.cookie - -Function that creates a new cookie. - -```js -request.cookie('key1=value1') -``` -### request.jar() - -Function that creates a new cookie jar. - -```js -request.jar() -``` - -[back to top](#table-of-contents) - - ---- - - -## Debugging - -There are at least three ways to debug the operation of `request`: - -1. Launch the node process like `NODE_DEBUG=request node script.js` - (`lib,request,otherlib` works too). - -2. Set `require('request').debug = true` at any time (this does the same thing - as #1). - -3. Use the [request-debug module](https://github.com/request/request-debug) to - view request and response headers and bodies. - -[back to top](#table-of-contents) - - ---- - -## Timeouts - -Most requests to external servers should have a timeout attached, in case the -server is not responding in a timely manner. Without a timeout, your code may -have a socket open/consume resources for minutes or more. - -There are two main types of timeouts: **connection timeouts** and **read -timeouts**. A connect timeout occurs if the timeout is hit while your client is -attempting to establish a connection to a remote machine (corresponding to the -[connect() call][connect] on the socket). A read timeout occurs any time the -server is too slow to send back a part of the response. - -These two situations have widely different implications for what went wrong -with the request, so it's useful to be able to distinguish them. You can detect -timeout errors by checking `err.code` for an 'ETIMEDOUT' value. Further, you -can detect whether the timeout was a connection timeout by checking if the -`err.connect` property is set to `true`. - -```js -request.get('http://10.255.255.1', {timeout: 1500}, function(err) { - console.log(err.code === 'ETIMEDOUT'); - // Set to `true` if the timeout was a connection timeout, `false` or - // `undefined` otherwise. - console.log(err.connect === true); - process.exit(0); -}); -``` - -[connect]: http://linux.die.net/man/2/connect - -## Examples: - -```js - var request = require('request') - , rand = Math.floor(Math.random()*100000000).toString() - ; - request( - { method: 'PUT' - , uri: 'http://mikeal.iriscouch.com/testjs/' + rand - , multipart: - [ { 'content-type': 'application/json' - , body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}}) - } - , { body: 'I am an attachment' } - ] - } - , function (error, response, body) { - if(response.statusCode == 201){ - console.log('document saved as: http://mikeal.iriscouch.com/testjs/'+ rand) - } else { - console.log('error: '+ response.statusCode) - console.log(body) - } - } - ) -``` - -For backwards-compatibility, response compression is not supported by default. -To accept gzip-compressed responses, set the `gzip` option to `true`. Note -that the body data passed through `request` is automatically decompressed -while the response object is unmodified and will contain compressed data if -the server sent a compressed response. - -```js - var request = require('request') - request( - { method: 'GET' - , uri: 'http://www.google.com' - , gzip: true - } - , function (error, response, body) { - // body is the decompressed response body - console.log('server encoded the data as: ' + (response.headers['content-encoding'] || 'identity')) - console.log('the decoded data is: ' + body) - } - ).on('data', function(data) { - // decompressed data as it is received - console.log('decoded chunk: ' + data) - }) - .on('response', function(response) { - // unmodified http.IncomingMessage object - response.on('data', function(data) { - // compressed data as it is received - console.log('received ' + data.length + ' bytes of compressed data') - }) - }) -``` - -Cookies are disabled by default (else, they would be used in subsequent requests). To enable cookies, set `jar` to `true` (either in `defaults` or `options`). - -```js -var request = request.defaults({jar: true}) -request('http://www.google.com', function () { - request('http://images.google.com') -}) -``` - -To use a custom cookie jar (instead of `request`’s global cookie jar), set `jar` to an instance of `request.jar()` (either in `defaults` or `options`) - -```js -var j = request.jar() -var request = request.defaults({jar:j}) -request('http://www.google.com', function () { - request('http://images.google.com') -}) -``` - -OR - -```js -var j = request.jar(); -var cookie = request.cookie('key1=value1'); -var url = 'http://www.google.com'; -j.setCookie(cookie, url); -request({url: url, jar: j}, function () { - request('http://images.google.com') -}) -``` - -To use a custom cookie store (such as a -[`FileCookieStore`](https://github.com/mitsuru/tough-cookie-filestore) -which supports saving to and restoring from JSON files), pass it as a parameter -to `request.jar()`: - -```js -var FileCookieStore = require('tough-cookie-filestore'); -// NOTE - currently the 'cookies.json' file must already exist! -var j = request.jar(new FileCookieStore('cookies.json')); -request = request.defaults({ jar : j }) -request('http://www.google.com', function() { - request('http://images.google.com') -}) -``` - -The cookie store must be a -[`tough-cookie`](https://github.com/SalesforceEng/tough-cookie) -store and it must support synchronous operations; see the -[`CookieStore` API docs](https://github.com/SalesforceEng/tough-cookie#cookiestore-api) -for details. - -To inspect your cookie jar after a request: - -```js -var j = request.jar() -request({url: 'http://www.google.com', jar: j}, function () { - var cookie_string = j.getCookieString(url); // "key1=value1; key2=value2; ..." - var cookies = j.getCookies(url); - // [{key: 'key1', value: 'value1', domain: "www.google.com", ...}, ...] -}) -``` - -[back to top](#table-of-contents) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/index.js deleted file mode 100755 index 911a90db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/index.js +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright 2010-2012 Mikeal Rogers -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -'use strict' - -var extend = require('extend') - , cookies = require('./lib/cookies') - , helpers = require('./lib/helpers') - -var isFunction = helpers.isFunction - , paramsHaveRequestBody = helpers.paramsHaveRequestBody - - -// organize params for patch, post, put, head, del -function initParams(uri, options, callback) { - if (typeof options === 'function') { - callback = options - } - - var params = {} - if (typeof options === 'object') { - extend(params, options, {uri: uri}) - } else if (typeof uri === 'string') { - extend(params, {uri: uri}) - } else { - extend(params, uri) - } - - params.callback = callback || params.callback - return params -} - -function request (uri, options, callback) { - if (typeof uri === 'undefined') { - throw new Error('undefined is not a valid uri or options object.') - } - - var params = initParams(uri, options, callback) - - if (params.method === 'HEAD' && paramsHaveRequestBody(params)) { - throw new Error('HTTP HEAD requests MUST NOT include a request body.') - } - - return new request.Request(params) -} - -function verbFunc (verb) { - var method = verb.toUpperCase() - return function (uri, options, callback) { - var params = initParams(uri, options, callback) - params.method = method - return request(params, params.callback) - } -} - -// define like this to please codeintel/intellisense IDEs -request.get = verbFunc('get') -request.head = verbFunc('head') -request.post = verbFunc('post') -request.put = verbFunc('put') -request.patch = verbFunc('patch') -request.del = verbFunc('delete') -request['delete'] = verbFunc('delete') - -request.jar = function (store) { - return cookies.jar(store) -} - -request.cookie = function (str) { - return cookies.parse(str) -} - -function wrapRequestMethod (method, options, requester, verb) { - - return function (uri, opts, callback) { - var params = initParams(uri, opts, callback) - - var target = {} - extend(true, target, options, params) - - target.pool = params.pool || options.pool - - if (verb) { - target.method = verb.toUpperCase() - } - - if (isFunction(requester)) { - method = requester - } - - return method(target, target.callback) - } -} - -request.defaults = function (options, requester) { - var self = this - - options = options || {} - - if (typeof options === 'function') { - requester = options - options = {} - } - - var defaults = wrapRequestMethod(self, options, requester) - - var verbs = ['get', 'head', 'post', 'put', 'patch', 'del', 'delete'] - verbs.forEach(function(verb) { - defaults[verb] = wrapRequestMethod(self[verb], options, requester, verb) - }) - - defaults.cookie = wrapRequestMethod(self.cookie, options, requester) - defaults.jar = self.jar - defaults.defaults = self.defaults - return defaults -} - -request.forever = function (agentOptions, optionsArg) { - var options = {} - if (optionsArg) { - extend(options, optionsArg) - } - if (agentOptions) { - options.agentOptions = agentOptions - } - - options.forever = true - return request.defaults(options) -} - -// Exports - -module.exports = request -request.Request = require('./request') -request.initParams = initParams - -// Backwards compatibility for request.debug -Object.defineProperty(request, 'debug', { - enumerable : true, - get : function() { - return request.Request.debug - }, - set : function(debug) { - request.Request.debug = debug - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/auth.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/auth.js deleted file mode 100644 index 1cb69521..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/auth.js +++ /dev/null @@ -1,168 +0,0 @@ -'use strict' - -var caseless = require('caseless') - , uuid = require('node-uuid') - , helpers = require('./helpers') - -var md5 = helpers.md5 - , toBase64 = helpers.toBase64 - - -function Auth (request) { - // define all public properties here - this.request = request - this.hasAuth = false - this.sentAuth = false - this.bearerToken = null - this.user = null - this.pass = null -} - -Auth.prototype.basic = function (user, pass, sendImmediately) { - var self = this - if (typeof user !== 'string' || (pass !== undefined && typeof pass !== 'string')) { - self.request.emit('error', new Error('auth() received invalid user or password')) - } - self.user = user - self.pass = pass - self.hasAuth = true - var header = user + ':' + (pass || '') - if (sendImmediately || typeof sendImmediately === 'undefined') { - var authHeader = 'Basic ' + toBase64(header) - self.sentAuth = true - return authHeader - } -} - -Auth.prototype.bearer = function (bearer, sendImmediately) { - var self = this - self.bearerToken = bearer - self.hasAuth = true - if (sendImmediately || typeof sendImmediately === 'undefined') { - if (typeof bearer === 'function') { - bearer = bearer() - } - var authHeader = 'Bearer ' + (bearer || '') - self.sentAuth = true - return authHeader - } -} - -Auth.prototype.digest = function (method, path, authHeader) { - // TODO: More complete implementation of RFC 2617. - // - handle challenge.domain - // - support qop="auth-int" only - // - handle Authentication-Info (not necessarily?) - // - check challenge.stale (not necessarily?) - // - increase nc (not necessarily?) - // For reference: - // http://tools.ietf.org/html/rfc2617#section-3 - // https://github.com/bagder/curl/blob/master/lib/http_digest.c - - var self = this - - var challenge = {} - var re = /([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi - for (;;) { - var match = re.exec(authHeader) - if (!match) { - break - } - challenge[match[1]] = match[2] || match[3] - } - - /** - * RFC 2617: handle both MD5 and MD5-sess algorithms. - * - * If the algorithm directive's value is "MD5" or unspecified, then HA1 is - * HA1=MD5(username:realm:password) - * If the algorithm directive's value is "MD5-sess", then HA1 is - * HA1=MD5(MD5(username:realm:password):nonce:cnonce) - */ - var ha1Compute = function (algorithm, user, realm, pass, nonce, cnonce) { - var ha1 = md5(user + ':' + realm + ':' + pass) - if (algorithm && algorithm.toLowerCase() === 'md5-sess') { - return md5(ha1 + ':' + nonce + ':' + cnonce) - } else { - return ha1 - } - } - - var qop = /(^|,)\s*auth\s*($|,)/.test(challenge.qop) && 'auth' - var nc = qop && '00000001' - var cnonce = qop && uuid().replace(/-/g, '') - var ha1 = ha1Compute(challenge.algorithm, self.user, challenge.realm, self.pass, challenge.nonce, cnonce) - var ha2 = md5(method + ':' + path) - var digestResponse = qop - ? md5(ha1 + ':' + challenge.nonce + ':' + nc + ':' + cnonce + ':' + qop + ':' + ha2) - : md5(ha1 + ':' + challenge.nonce + ':' + ha2) - var authValues = { - username: self.user, - realm: challenge.realm, - nonce: challenge.nonce, - uri: path, - qop: qop, - response: digestResponse, - nc: nc, - cnonce: cnonce, - algorithm: challenge.algorithm, - opaque: challenge.opaque - } - - authHeader = [] - for (var k in authValues) { - if (authValues[k]) { - if (k === 'qop' || k === 'nc' || k === 'algorithm') { - authHeader.push(k + '=' + authValues[k]) - } else { - authHeader.push(k + '="' + authValues[k] + '"') - } - } - } - authHeader = 'Digest ' + authHeader.join(', ') - self.sentAuth = true - return authHeader -} - -Auth.prototype.onRequest = function (user, pass, sendImmediately, bearer) { - var self = this - , request = self.request - - var authHeader - if (bearer === undefined && user === undefined) { - self.request.emit('error', new Error('no auth mechanism defined')) - } else if (bearer !== undefined) { - authHeader = self.bearer(bearer, sendImmediately) - } else { - authHeader = self.basic(user, pass, sendImmediately) - } - if (authHeader) { - request.setHeader('authorization', authHeader) - } -} - -Auth.prototype.onResponse = function (response) { - var self = this - , request = self.request - - if (!self.hasAuth || self.sentAuth) { return null } - - var c = caseless(response.headers) - - var authHeader = c.get('www-authenticate') - var authVerb = authHeader && authHeader.split(' ')[0].toLowerCase() - request.debug('reauth', authVerb) - - switch (authVerb) { - case 'basic': - return self.basic(self.user, self.pass, true) - - case 'bearer': - return self.bearer(self.bearerToken, true) - - case 'digest': - return self.digest(request.method, request.path, authHeader) - } -} - -exports.Auth = Auth diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/cookies.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/cookies.js deleted file mode 100644 index 412c07d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/cookies.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict' - -var tough = require('tough-cookie') - -var Cookie = tough.Cookie - , CookieJar = tough.CookieJar - - -exports.parse = function(str) { - if (str && str.uri) { - str = str.uri - } - if (typeof str !== 'string') { - throw new Error('The cookie function only accepts STRING as param') - } - return Cookie.parse(str, {loose: true}) -} - -// Adapt the sometimes-Async api of tough.CookieJar to our requirements -function RequestJar(store) { - var self = this - self._jar = new CookieJar(store, {looseMode: true}) -} -RequestJar.prototype.setCookie = function(cookieOrStr, uri, options) { - var self = this - return self._jar.setCookieSync(cookieOrStr, uri, options || {}) -} -RequestJar.prototype.getCookieString = function(uri) { - var self = this - return self._jar.getCookieStringSync(uri) -} -RequestJar.prototype.getCookies = function(uri) { - var self = this - return self._jar.getCookiesSync(uri) -} - -exports.jar = function(store) { - return new RequestJar(store) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/getProxyFromURI.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/getProxyFromURI.js deleted file mode 100644 index c2013a6e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/getProxyFromURI.js +++ /dev/null @@ -1,79 +0,0 @@ -'use strict' - -function formatHostname(hostname) { - // canonicalize the hostname, so that 'oogle.com' won't match 'google.com' - return hostname.replace(/^\.*/, '.').toLowerCase() -} - -function parseNoProxyZone(zone) { - zone = zone.trim().toLowerCase() - - var zoneParts = zone.split(':', 2) - , zoneHost = formatHostname(zoneParts[0]) - , zonePort = zoneParts[1] - , hasPort = zone.indexOf(':') > -1 - - return {hostname: zoneHost, port: zonePort, hasPort: hasPort} -} - -function uriInNoProxy(uri, noProxy) { - var port = uri.port || (uri.protocol === 'https:' ? '443' : '80') - , hostname = formatHostname(uri.hostname) - , noProxyList = noProxy.split(',') - - // iterate through the noProxyList until it finds a match. - return noProxyList.map(parseNoProxyZone).some(function(noProxyZone) { - var isMatchedAt = hostname.indexOf(noProxyZone.hostname) - , hostnameMatched = ( - isMatchedAt > -1 && - (isMatchedAt === hostname.length - noProxyZone.hostname.length) - ) - - if (noProxyZone.hasPort) { - return (port === noProxyZone.port) && hostnameMatched - } - - return hostnameMatched - }) -} - -function getProxyFromURI(uri) { - // Decide the proper request proxy to use based on the request URI object and the - // environmental variables (NO_PROXY, HTTP_PROXY, etc.) - // respect NO_PROXY environment variables (see: http://lynx.isc.org/current/breakout/lynx_help/keystrokes/environments.html) - - var noProxy = process.env.NO_PROXY || process.env.no_proxy || '' - - // if the noProxy is a wildcard then return null - - if (noProxy === '*') { - return null - } - - // if the noProxy is not empty and the uri is found return null - - if (noProxy !== '' && uriInNoProxy(uri, noProxy)) { - return null - } - - // Check for HTTP or HTTPS Proxy in environment Else default to null - - if (uri.protocol === 'http:') { - return process.env.HTTP_PROXY || - process.env.http_proxy || null - } - - if (uri.protocol === 'https:') { - return process.env.HTTPS_PROXY || - process.env.https_proxy || - process.env.HTTP_PROXY || - process.env.http_proxy || null - } - - // if none of that works, return null - // (What uri protocol are you using then?) - - return null -} - -module.exports = getProxyFromURI diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/har.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/har.js deleted file mode 100644 index 30595748..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/har.js +++ /dev/null @@ -1,215 +0,0 @@ -'use strict' - -var fs = require('fs') -var qs = require('querystring') -var validate = require('har-validator') -var extend = require('extend') - -function Har (request) { - this.request = request -} - -Har.prototype.reducer = function (obj, pair) { - // new property ? - if (obj[pair.name] === undefined) { - obj[pair.name] = pair.value - return obj - } - - // existing? convert to array - var arr = [ - obj[pair.name], - pair.value - ] - - obj[pair.name] = arr - - return obj -} - -Har.prototype.prep = function (data) { - // construct utility properties - data.queryObj = {} - data.headersObj = {} - data.postData.jsonObj = false - data.postData.paramsObj = false - - // construct query objects - if (data.queryString && data.queryString.length) { - data.queryObj = data.queryString.reduce(this.reducer, {}) - } - - // construct headers objects - if (data.headers && data.headers.length) { - // loweCase header keys - data.headersObj = data.headers.reduceRight(function (headers, header) { - headers[header.name] = header.value - return headers - }, {}) - } - - // construct Cookie header - if (data.cookies && data.cookies.length) { - var cookies = data.cookies.map(function (cookie) { - return cookie.name + '=' + cookie.value - }) - - if (cookies.length) { - data.headersObj.cookie = cookies.join('; ') - } - } - - // prep body - function some (arr) { - return arr.some(function (type) { - return data.postData.mimeType.indexOf(type) === 0 - }) - } - - if (some([ - 'multipart/mixed', - 'multipart/related', - 'multipart/form-data', - 'multipart/alternative'])) { - - // reset values - data.postData.mimeType = 'multipart/form-data' - } - - else if (some([ - 'application/x-www-form-urlencoded'])) { - - if (!data.postData.params) { - data.postData.text = '' - } else { - data.postData.paramsObj = data.postData.params.reduce(this.reducer, {}) - - // always overwrite - data.postData.text = qs.stringify(data.postData.paramsObj) - } - } - - else if (some([ - 'text/json', - 'text/x-json', - 'application/json', - 'application/x-json'])) { - - data.postData.mimeType = 'application/json' - - if (data.postData.text) { - try { - data.postData.jsonObj = JSON.parse(data.postData.text) - } catch (e) { - this.request.debug(e) - - // force back to text/plain - data.postData.mimeType = 'text/plain' - } - } - } - - return data -} - -Har.prototype.options = function (options) { - // skip if no har property defined - if (!options.har) { - return options - } - - var har = {} - extend(har, options.har) - - // only process the first entry - if (har.log && har.log.entries) { - har = har.log.entries[0] - } - - // add optional properties to make validation successful - har.url = har.url || options.url || options.uri || options.baseUrl || '/' - har.httpVersion = har.httpVersion || 'HTTP/1.1' - har.queryString = har.queryString || [] - har.headers = har.headers || [] - har.cookies = har.cookies || [] - har.postData = har.postData || {} - har.postData.mimeType = har.postData.mimeType || 'application/octet-stream' - - har.bodySize = 0 - har.headersSize = 0 - har.postData.size = 0 - - if (!validate.request(har)) { - return options - } - - // clean up and get some utility properties - var req = this.prep(har) - - // construct new options - if (req.url) { - options.url = req.url - } - - if (req.method) { - options.method = req.method - } - - if (Object.keys(req.queryObj).length) { - options.qs = req.queryObj - } - - if (Object.keys(req.headersObj).length) { - options.headers = req.headersObj - } - - function test (type) { - return req.postData.mimeType.indexOf(type) === 0 - } - if (test('application/x-www-form-urlencoded')) { - options.form = req.postData.paramsObj - } - else if (test('application/json')) { - if (req.postData.jsonObj) { - options.body = req.postData.jsonObj - options.json = true - } - } - else if (test('multipart/form-data')) { - options.formData = {} - - req.postData.params.forEach(function (param) { - var attachment = {} - - if (!param.fileName && !param.fileName && !param.contentType) { - options.formData[param.name] = param.value - return - } - - // attempt to read from disk! - if (param.fileName && !param.value) { - attachment.value = fs.createReadStream(param.fileName) - } else if (param.value) { - attachment.value = param.value - } - - if (param.fileName) { - attachment.options = { - filename: param.fileName, - contentType: param.contentType ? param.contentType : null - } - } - - options.formData[param.name] = attachment - }) - } - else { - if (req.postData.text) { - options.body = req.postData.text - } - } - - return options -} - -exports.Har = Har diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/helpers.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/helpers.js deleted file mode 100644 index 356ff748..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/helpers.js +++ /dev/null @@ -1,74 +0,0 @@ -'use strict' - -var jsonSafeStringify = require('json-stringify-safe') - , crypto = require('crypto') - -function deferMethod() { - if (typeof setImmediate === 'undefined') { - return process.nextTick - } - - return setImmediate -} - -function isFunction(value) { - return typeof value === 'function' -} - -function paramsHaveRequestBody(params) { - return ( - params.body || - params.requestBodyStream || - (params.json && typeof params.json !== 'boolean') || - params.multipart - ) -} - -function safeStringify (obj, replacer) { - var ret - try { - ret = JSON.stringify(obj, replacer) - } catch (e) { - ret = jsonSafeStringify(obj, replacer) - } - return ret -} - -function md5 (str) { - return crypto.createHash('md5').update(str).digest('hex') -} - -function isReadStream (rs) { - return rs.readable && rs.path && rs.mode -} - -function toBase64 (str) { - return (new Buffer(str || '', 'utf8')).toString('base64') -} - -function copy (obj) { - var o = {} - Object.keys(obj).forEach(function (i) { - o[i] = obj[i] - }) - return o -} - -function version () { - var numbers = process.version.replace('v', '').split('.') - return { - major: parseInt(numbers[0], 10), - minor: parseInt(numbers[1], 10), - patch: parseInt(numbers[2], 10) - } -} - -exports.isFunction = isFunction -exports.paramsHaveRequestBody = paramsHaveRequestBody -exports.safeStringify = safeStringify -exports.md5 = md5 -exports.isReadStream = isReadStream -exports.toBase64 = toBase64 -exports.copy = copy -exports.version = version -exports.defer = deferMethod() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/multipart.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/multipart.js deleted file mode 100644 index c1281726..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/multipart.js +++ /dev/null @@ -1,112 +0,0 @@ -'use strict' - -var uuid = require('node-uuid') - , CombinedStream = require('combined-stream') - , isstream = require('isstream') - - -function Multipart (request) { - this.request = request - this.boundary = uuid() - this.chunked = false - this.body = null -} - -Multipart.prototype.isChunked = function (options) { - var self = this - , chunked = false - , parts = options.data || options - - if (!parts.forEach) { - self.request.emit('error', new Error('Argument error, options.multipart.')) - } - - if (options.chunked !== undefined) { - chunked = options.chunked - } - - if (self.request.getHeader('transfer-encoding') === 'chunked') { - chunked = true - } - - if (!chunked) { - parts.forEach(function (part) { - if (typeof part.body === 'undefined') { - self.request.emit('error', new Error('Body attribute missing in multipart.')) - } - if (isstream(part.body)) { - chunked = true - } - }) - } - - return chunked -} - -Multipart.prototype.setHeaders = function (chunked) { - var self = this - - if (chunked && !self.request.hasHeader('transfer-encoding')) { - self.request.setHeader('transfer-encoding', 'chunked') - } - - var header = self.request.getHeader('content-type') - - if (!header || header.indexOf('multipart') === -1) { - self.request.setHeader('content-type', 'multipart/related; boundary=' + self.boundary) - } else { - if (header.indexOf('boundary') !== -1) { - self.boundary = header.replace(/.*boundary=([^\s;]+).*/, '$1') - } else { - self.request.setHeader('content-type', header + '; boundary=' + self.boundary) - } - } -} - -Multipart.prototype.build = function (parts, chunked) { - var self = this - var body = chunked ? new CombinedStream() : [] - - function add (part) { - if (typeof part === 'number') { - part = part.toString() - } - return chunked ? body.append(part) : body.push(new Buffer(part)) - } - - if (self.request.preambleCRLF) { - add('\r\n') - } - - parts.forEach(function (part) { - var preamble = '--' + self.boundary + '\r\n' - Object.keys(part).forEach(function (key) { - if (key === 'body') { return } - preamble += key + ': ' + part[key] + '\r\n' - }) - preamble += '\r\n' - add(preamble) - add(part.body) - add('\r\n') - }) - add('--' + self.boundary + '--') - - if (self.request.postambleCRLF) { - add('\r\n') - } - - return body -} - -Multipart.prototype.onRequest = function (options) { - var self = this - - var chunked = self.isChunked(options) - , parts = options.data || options - - self.setHeaders(chunked) - self.chunked = chunked - self.body = self.build(parts, chunked) -} - -exports.Multipart = Multipart diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/oauth.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/oauth.js deleted file mode 100644 index c24209b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/oauth.js +++ /dev/null @@ -1,147 +0,0 @@ -'use strict' - -var url = require('url') - , qs = require('qs') - , caseless = require('caseless') - , uuid = require('node-uuid') - , oauth = require('oauth-sign') - , crypto = require('crypto') - - -function OAuth (request) { - this.request = request - this.params = null -} - -OAuth.prototype.buildParams = function (_oauth, uri, method, query, form, qsLib) { - var oa = {} - for (var i in _oauth) { - oa['oauth_' + i] = _oauth[i] - } - if (!oa.oauth_version) { - oa.oauth_version = '1.0' - } - if (!oa.oauth_timestamp) { - oa.oauth_timestamp = Math.floor( Date.now() / 1000 ).toString() - } - if (!oa.oauth_nonce) { - oa.oauth_nonce = uuid().replace(/-/g, '') - } - if (!oa.oauth_signature_method) { - oa.oauth_signature_method = 'HMAC-SHA1' - } - - var consumer_secret_or_private_key = oa.oauth_consumer_secret || oa.oauth_private_key - delete oa.oauth_consumer_secret - delete oa.oauth_private_key - - var token_secret = oa.oauth_token_secret - delete oa.oauth_token_secret - - var realm = oa.oauth_realm - delete oa.oauth_realm - delete oa.oauth_transport_method - - var baseurl = uri.protocol + '//' + uri.host + uri.pathname - var params = qsLib.parse([].concat(query, form, qsLib.stringify(oa)).join('&')) - - oa.oauth_signature = oauth.sign( - oa.oauth_signature_method, - method, - baseurl, - params, - consumer_secret_or_private_key, - token_secret) - - if (realm) { - oa.realm = realm - } - - return oa -} - -OAuth.prototype.buildBodyHash = function(_oauth, body) { - if (['HMAC-SHA1', 'RSA-SHA1'].indexOf(_oauth.signature_method || 'HMAC-SHA1') < 0) { - this.request.emit('error', new Error('oauth: ' + _oauth.signature_method + - ' signature_method not supported with body_hash signing.')) - } - - var shasum = crypto.createHash('sha1') - shasum.update(body || '') - var sha1 = shasum.digest('hex') - - return new Buffer(sha1).toString('base64') -} - -OAuth.prototype.concatParams = function (oa, sep, wrap) { - wrap = wrap || '' - - var params = Object.keys(oa).filter(function (i) { - return i !== 'realm' && i !== 'oauth_signature' - }).sort() - - if (oa.realm) { - params.splice(0, 0, 'realm') - } - params.push('oauth_signature') - - return params.map(function (i) { - return i + '=' + wrap + oauth.rfc3986(oa[i]) + wrap - }).join(sep) -} - -OAuth.prototype.onRequest = function (_oauth) { - var self = this - self.params = _oauth - - var uri = self.request.uri || {} - , method = self.request.method || '' - , headers = caseless(self.request.headers) - , body = self.request.body || '' - , qsLib = self.request.qsLib || qs - - var form - , query - , contentType = headers.get('content-type') || '' - , formContentType = 'application/x-www-form-urlencoded' - , transport = _oauth.transport_method || 'header' - - if (contentType.slice(0, formContentType.length) === formContentType) { - contentType = formContentType - form = body - } - if (uri.query) { - query = uri.query - } - if (transport === 'body' && (method !== 'POST' || contentType !== formContentType)) { - self.request.emit('error', new Error('oauth: transport_method of body requires POST ' + - 'and content-type ' + formContentType)) - } - - if (!form && typeof _oauth.body_hash === 'boolean') { - _oauth.body_hash = self.buildBodyHash(_oauth, self.request.body.toString()) - } - - var oa = self.buildParams(_oauth, uri, method, query, form, qsLib) - - switch (transport) { - case 'header': - self.request.setHeader('Authorization', 'OAuth ' + self.concatParams(oa, ',', '"')) - break - - case 'query': - var href = self.request.uri.href += (query ? '&' : '?') + self.concatParams(oa, '&') - self.request.uri = url.parse(href) - self.request.path = self.request.uri.path - break - - case 'body': - self.request.body = (form ? form + '&' : '') + self.concatParams(oa, '&') - break - - default: - self.request.emit('error', new Error('oauth: transport_method invalid')) - } -} - -exports.OAuth = OAuth diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/querystring.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/querystring.js deleted file mode 100644 index baf5e802..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/querystring.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict' - -var qs = require('qs') - , querystring = require('querystring') - - -function Querystring (request) { - this.request = request - this.lib = null - this.useQuerystring = null - this.parseOptions = null - this.stringifyOptions = null -} - -Querystring.prototype.init = function (options) { - if (this.lib) {return} - - this.useQuerystring = options.useQuerystring - this.lib = (this.useQuerystring ? querystring : qs) - - this.parseOptions = options.qsParseOptions || {} - this.stringifyOptions = options.qsStringifyOptions || {} -} - -Querystring.prototype.stringify = function (obj) { - return (this.useQuerystring) - ? this.rfc3986(this.lib.stringify(obj, - this.stringifyOptions.sep || null, - this.stringifyOptions.eq || null, - this.stringifyOptions)) - : this.lib.stringify(obj, this.stringifyOptions) -} - -Querystring.prototype.parse = function (str) { - return (this.useQuerystring) - ? this.lib.parse(str, - this.parseOptions.sep || null, - this.parseOptions.eq || null, - this.parseOptions) - : this.lib.parse(str, this.parseOptions) -} - -Querystring.prototype.rfc3986 = function (str) { - return str.replace(/[!'()*]/g, function (c) { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) -} - -Querystring.prototype.unescape = querystring.unescape - -exports.Querystring = Querystring diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/redirect.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/redirect.js deleted file mode 100644 index 040dfe0e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/redirect.js +++ /dev/null @@ -1,153 +0,0 @@ -'use strict' - -var url = require('url') -var isUrl = /^https?:/ - -function Redirect (request) { - this.request = request - this.followRedirect = true - this.followRedirects = true - this.followAllRedirects = false - this.allowRedirect = function () {return true} - this.maxRedirects = 10 - this.redirects = [] - this.redirectsFollowed = 0 - this.removeRefererHeader = false -} - -Redirect.prototype.onRequest = function (options) { - var self = this - - if (options.maxRedirects !== undefined) { - self.maxRedirects = options.maxRedirects - } - if (typeof options.followRedirect === 'function') { - self.allowRedirect = options.followRedirect - } - if (options.followRedirect !== undefined) { - self.followRedirects = !!options.followRedirect - } - if (options.followAllRedirects !== undefined) { - self.followAllRedirects = options.followAllRedirects - } - if (self.followRedirects || self.followAllRedirects) { - self.redirects = self.redirects || [] - } - if (options.removeRefererHeader !== undefined) { - self.removeRefererHeader = options.removeRefererHeader - } -} - -Redirect.prototype.redirectTo = function (response) { - var self = this - , request = self.request - - var redirectTo = null - if (response.statusCode >= 300 && response.statusCode < 400 && response.caseless.has('location')) { - var location = response.caseless.get('location') - request.debug('redirect', location) - - if (self.followAllRedirects) { - redirectTo = location - } else if (self.followRedirects) { - switch (request.method) { - case 'PATCH': - case 'PUT': - case 'POST': - case 'DELETE': - // Do not follow redirects - break - default: - redirectTo = location - break - } - } - } else if (response.statusCode === 401) { - var authHeader = request._auth.onResponse(response) - if (authHeader) { - request.setHeader('authorization', authHeader) - redirectTo = request.uri - } - } - return redirectTo -} - -Redirect.prototype.onResponse = function (response) { - var self = this - , request = self.request - - var redirectTo = self.redirectTo(response) - if (!redirectTo || !self.allowRedirect.call(request, response)) { - return false - } - - request.debug('redirect to', redirectTo) - - // ignore any potential response body. it cannot possibly be useful - // to us at this point. - // response.resume should be defined, but check anyway before calling. Workaround for browserify. - if (response.resume) { - response.resume() - } - - if (self.redirectsFollowed >= self.maxRedirects) { - request.emit('error', new Error('Exceeded maxRedirects. Probably stuck in a redirect loop ' + request.uri.href)) - return false - } - self.redirectsFollowed += 1 - - if (!isUrl.test(redirectTo)) { - redirectTo = url.resolve(request.uri.href, redirectTo) - } - - var uriPrev = request.uri - request.uri = url.parse(redirectTo) - - // handle the case where we change protocol from https to http or vice versa - if (request.uri.protocol !== uriPrev.protocol) { - delete request.agent - } - - self.redirects.push( - { statusCode : response.statusCode - , redirectUri: redirectTo - } - ) - if (self.followAllRedirects && request.method !== 'HEAD' - && response.statusCode !== 401 && response.statusCode !== 307) { - request.method = 'GET' - } - // request.method = 'GET' // Force all redirects to use GET || commented out fixes #215 - delete request.src - delete request.req - delete request._started - if (response.statusCode !== 401 && response.statusCode !== 307) { - // Remove parameters from the previous response, unless this is the second request - // for a server that requires digest authentication. - delete request.body - delete request._form - if (request.headers) { - request.removeHeader('host') - request.removeHeader('content-type') - request.removeHeader('content-length') - if (request.uri.hostname !== request.originalHost.split(':')[0]) { - // Remove authorization if changing hostnames (but not if just - // changing ports or protocols). This matches the behavior of curl: - // https://github.com/bagder/curl/blob/6beb0eee/lib/http.c#L710 - request.removeHeader('authorization') - } - } - } - - if (!self.removeRefererHeader) { - request.setHeader('referer', uriPrev.href) - } - - request.emit('redirect') - - request.init() - - return true -} - -exports.Redirect = Redirect diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/tunnel.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/tunnel.js deleted file mode 100644 index bf96a8fe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/lib/tunnel.js +++ /dev/null @@ -1,176 +0,0 @@ -'use strict' - -var url = require('url') - , tunnel = require('tunnel-agent') - -var defaultProxyHeaderWhiteList = [ - 'accept', - 'accept-charset', - 'accept-encoding', - 'accept-language', - 'accept-ranges', - 'cache-control', - 'content-encoding', - 'content-language', - 'content-location', - 'content-md5', - 'content-range', - 'content-type', - 'connection', - 'date', - 'expect', - 'max-forwards', - 'pragma', - 'referer', - 'te', - 'user-agent', - 'via' -] - -var defaultProxyHeaderExclusiveList = [ - 'proxy-authorization' -] - -function constructProxyHost(uriObject) { - var port = uriObject.port - , protocol = uriObject.protocol - , proxyHost = uriObject.hostname + ':' - - if (port) { - proxyHost += port - } else if (protocol === 'https:') { - proxyHost += '443' - } else { - proxyHost += '80' - } - - return proxyHost -} - -function constructProxyHeaderWhiteList(headers, proxyHeaderWhiteList) { - var whiteList = proxyHeaderWhiteList - .reduce(function (set, header) { - set[header.toLowerCase()] = true - return set - }, {}) - - return Object.keys(headers) - .filter(function (header) { - return whiteList[header.toLowerCase()] - }) - .reduce(function (set, header) { - set[header] = headers[header] - return set - }, {}) -} - -function constructTunnelOptions (request, proxyHeaders) { - var proxy = request.proxy - - var tunnelOptions = { - proxy : { - host : proxy.hostname, - port : +proxy.port, - proxyAuth : proxy.auth, - headers : proxyHeaders - }, - headers : request.headers, - ca : request.ca, - cert : request.cert, - key : request.key, - passphrase : request.passphrase, - pfx : request.pfx, - ciphers : request.ciphers, - rejectUnauthorized : request.rejectUnauthorized, - secureOptions : request.secureOptions, - secureProtocol : request.secureProtocol - } - - return tunnelOptions -} - -function constructTunnelFnName(uri, proxy) { - var uriProtocol = (uri.protocol === 'https:' ? 'https' : 'http') - var proxyProtocol = (proxy.protocol === 'https:' ? 'Https' : 'Http') - return [uriProtocol, proxyProtocol].join('Over') -} - -function getTunnelFn(request) { - var uri = request.uri - var proxy = request.proxy - var tunnelFnName = constructTunnelFnName(uri, proxy) - return tunnel[tunnelFnName] -} - - -function Tunnel (request) { - this.request = request - this.proxyHeaderWhiteList = defaultProxyHeaderWhiteList - this.proxyHeaderExclusiveList = [] - if (typeof request.tunnel !== 'undefined') { - this.tunnelOverride = request.tunnel - } -} - -Tunnel.prototype.isEnabled = function () { - var self = this - , request = self.request - // Tunnel HTTPS by default. Allow the user to override this setting. - - // If self.tunnelOverride is set (the user specified a value), use it. - if (typeof self.tunnelOverride !== 'undefined') { - return self.tunnelOverride - } - - // If the destination is HTTPS, tunnel. - if (request.uri.protocol === 'https:') { - return true - } - - // Otherwise, do not use tunnel. - return false -} - -Tunnel.prototype.setup = function (options) { - var self = this - , request = self.request - - options = options || {} - - if (typeof request.proxy === 'string') { - request.proxy = url.parse(request.proxy) - } - - if (!request.proxy || !request.tunnel) { - return false - } - - // Setup Proxy Header Exclusive List and White List - if (options.proxyHeaderWhiteList) { - self.proxyHeaderWhiteList = options.proxyHeaderWhiteList - } - if (options.proxyHeaderExclusiveList) { - self.proxyHeaderExclusiveList = options.proxyHeaderExclusiveList - } - - var proxyHeaderExclusiveList = self.proxyHeaderExclusiveList.concat(defaultProxyHeaderExclusiveList) - var proxyHeaderWhiteList = self.proxyHeaderWhiteList.concat(proxyHeaderExclusiveList) - - // Setup Proxy Headers and Proxy Headers Host - // Only send the Proxy White Listed Header names - var proxyHeaders = constructProxyHeaderWhiteList(request.headers, proxyHeaderWhiteList) - proxyHeaders.host = constructProxyHost(request.uri) - - proxyHeaderExclusiveList.forEach(request.removeHeader, request) - - // Set Agent from Tunnel Data - var tunnelFn = getTunnelFn(request) - var tunnelOptions = constructTunnelOptions(request, proxyHeaders) - request.agent = tunnelFn(tunnelOptions) - - return true -} - -Tunnel.defaultProxyHeaderWhiteList = defaultProxyHeaderWhiteList -Tunnel.defaultProxyHeaderExclusiveList = defaultProxyHeaderExclusiveList -exports.Tunnel = Tunnel diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/LICENSE deleted file mode 100644 index a4a9aee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/README.md deleted file mode 100644 index 763564e0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/README.md +++ /dev/null @@ -1,4 +0,0 @@ -aws-sign -======== - -AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/index.js deleted file mode 100644 index ac720930..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/index.js +++ /dev/null @@ -1,212 +0,0 @@ - -/*! - * Copyright 2010 LearnBoost - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Module dependencies. - */ - -var crypto = require('crypto') - , parse = require('url').parse - ; - -/** - * Valid keys. - */ - -var keys = - [ 'acl' - , 'location' - , 'logging' - , 'notification' - , 'partNumber' - , 'policy' - , 'requestPayment' - , 'torrent' - , 'uploadId' - , 'uploads' - , 'versionId' - , 'versioning' - , 'versions' - , 'website' - ] - -/** - * Return an "Authorization" header value with the given `options` - * in the form of "AWS :" - * - * @param {Object} options - * @return {String} - * @api private - */ - -function authorization (options) { - return 'AWS ' + options.key + ':' + sign(options) -} - -module.exports = authorization -module.exports.authorization = authorization - -/** - * Simple HMAC-SHA1 Wrapper - * - * @param {Object} options - * @return {String} - * @api private - */ - -function hmacSha1 (options) { - return crypto.createHmac('sha1', options.secret).update(options.message).digest('base64') -} - -module.exports.hmacSha1 = hmacSha1 - -/** - * Create a base64 sha1 HMAC for `options`. - * - * @param {Object} options - * @return {String} - * @api private - */ - -function sign (options) { - options.message = stringToSign(options) - return hmacSha1(options) -} -module.exports.sign = sign - -/** - * Create a base64 sha1 HMAC for `options`. - * - * Specifically to be used with S3 presigned URLs - * - * @param {Object} options - * @return {String} - * @api private - */ - -function signQuery (options) { - options.message = queryStringToSign(options) - return hmacSha1(options) -} -module.exports.signQuery= signQuery - -/** - * Return a string for sign() with the given `options`. - * - * Spec: - * - * \n - * \n - * \n - * \n - * [headers\n] - * - * - * @param {Object} options - * @return {String} - * @api private - */ - -function stringToSign (options) { - var headers = options.amazonHeaders || '' - if (headers) headers += '\n' - var r = - [ options.verb - , options.md5 - , options.contentType - , options.date ? options.date.toUTCString() : '' - , headers + options.resource - ] - return r.join('\n') -} -module.exports.queryStringToSign = stringToSign - -/** - * Return a string for sign() with the given `options`, but is meant exclusively - * for S3 presigned URLs - * - * Spec: - * - * \n - * - * - * @param {Object} options - * @return {String} - * @api private - */ - -function queryStringToSign (options){ - return 'GET\n\n\n' + options.date + '\n' + options.resource -} -module.exports.queryStringToSign = queryStringToSign - -/** - * Perform the following: - * - * - ignore non-amazon headers - * - lowercase fields - * - sort lexicographically - * - trim whitespace between ":" - * - join with newline - * - * @param {Object} headers - * @return {String} - * @api private - */ - -function canonicalizeHeaders (headers) { - var buf = [] - , fields = Object.keys(headers) - ; - for (var i = 0, len = fields.length; i < len; ++i) { - var field = fields[i] - , val = headers[field] - , field = field.toLowerCase() - ; - if (0 !== field.indexOf('x-amz')) continue - buf.push(field + ':' + val) - } - return buf.sort().join('\n') -} -module.exports.canonicalizeHeaders = canonicalizeHeaders - -/** - * Perform the following: - * - * - ignore non sub-resources - * - sort lexicographically - * - * @param {String} resource - * @return {String} - * @api private - */ - -function canonicalizeResource (resource) { - var url = parse(resource, true) - , path = url.pathname - , buf = [] - ; - - Object.keys(url.query).forEach(function(key){ - if (!~keys.indexOf(key)) return - var val = '' == url.query[key] ? '' : '=' + encodeURIComponent(url.query[key]) - buf.push(key + val) - }) - - return path + (buf.length ? '?' + buf.sort().join('&') : '') -} -module.exports.canonicalizeResource = canonicalizeResource diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/package.json deleted file mode 100644 index 0fe40d0b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws-sign2/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com", - "url": "http://www.futurealoof.com" - }, - "name": "aws-sign2", - "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.", - "version": "0.6.0", - "repository": { - "url": "git+https://github.com/mikeal/aws-sign.git" - }, - "license": "Apache-2.0", - "main": "index.js", - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" - }, - "gitHead": "8554bdb41268fa295eb1ee300f4adaa9f7f07fec", - "bugs": { - "url": "https://github.com/mikeal/aws-sign/issues" - }, - "homepage": "https://github.com/mikeal/aws-sign#readme", - "_id": "aws-sign2@0.6.0", - "scripts": {}, - "_shasum": "14342dd38dbcc94d0e5b87d763cd63612c0e794f", - "_from": "aws-sign2@>=0.6.0 <0.7.0", - "_npmVersion": "2.14.4", - "_nodeVersion": "4.1.2", - "_npmUser": { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - "maintainers": [ - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - } - ], - "dist": { - "shasum": "14342dd38dbcc94d0e5b87d763cd63612c0e794f", - "tarball": "http://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/.npmignore deleted file mode 100644 index 6c6ade6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -test -examples -example.js -browser diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/.tern-port b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/.tern-port deleted file mode 100644 index 7fd1b522..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/.tern-port +++ /dev/null @@ -1 +0,0 @@ -62638 \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/.travis.yml deleted file mode 100644 index 61d06340..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - "0.10" - - "0.12" - - "4.2" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/LICENSE deleted file mode 100644 index 4f321e59..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright 2013 Michael Hart (michael.hart.au@gmail.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/README.md deleted file mode 100644 index 6c55da80..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/README.md +++ /dev/null @@ -1,514 +0,0 @@ -aws4 ----- - -[![Build Status](https://secure.travis-ci.org/mhart/aws4.png?branch=master)](http://travis-ci.org/mhart/aws4) - -A small utility to sign vanilla node.js http(s) request options using Amazon's -[AWS Signature Version 4](http://docs.amazonwebservices.com/general/latest/gr/signature-version-4.html). - -Can also be used [in the browser](./browser). - -This signature is supported by nearly all Amazon services, including -[S3](http://docs.aws.amazon.com/AmazonS3/latest/API/), -[EC2](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/), -[DynamoDB](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/API.html), -[Kinesis](http://docs.aws.amazon.com/kinesis/latest/APIReference/), -[Lambda](http://docs.aws.amazon.com/lambda/latest/dg/API_Reference.html), -[SQS](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/), -[SNS](http://docs.aws.amazon.com/sns/latest/api/), -[IAM](http://docs.aws.amazon.com/IAM/latest/APIReference/), -[STS](http://docs.aws.amazon.com/STS/latest/APIReference/), -[RDS](http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/), -[CloudWatch](http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/), -[CloudWatch Logs](http://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/), -[CodeDeploy](http://docs.aws.amazon.com/codedeploy/latest/APIReference/), -[CloudFront](http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/), -[CloudTrail](http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/), -[ElastiCache](http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/), -[EMR](http://docs.aws.amazon.com/ElasticMapReduce/latest/API/), -[Glacier](http://docs.aws.amazon.com/amazonglacier/latest/dev/amazon-glacier-api.html), -[CloudSearch](http://docs.aws.amazon.com/cloudsearch/latest/developerguide/APIReq.html), -[Elastic Load Balancing](http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/), -[Elastic Transcoder](http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/api-reference.html), -[CloudFormation](http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/), -[Elastic Beanstalk](http://docs.aws.amazon.com/elasticbeanstalk/latest/api/), -[Storage Gateway](http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html), -[Data Pipeline](http://docs.aws.amazon.com/datapipeline/latest/APIReference/), -[Direct Connect](http://docs.aws.amazon.com/directconnect/latest/APIReference/), -[Redshift](http://docs.aws.amazon.com/redshift/latest/APIReference/), -[OpsWorks](http://docs.aws.amazon.com/opsworks/latest/APIReference/), -[SES](http://docs.aws.amazon.com/ses/latest/APIReference/), -[SWF](http://docs.aws.amazon.com/amazonswf/latest/apireference/), -[AutoScaling](http://docs.aws.amazon.com/AutoScaling/latest/APIReference/), -[Mobile Analytics](http://docs.aws.amazon.com/mobileanalytics/latest/ug/server-reference.html), -[Cognito Identity](http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/), -[Cognito Sync](http://docs.aws.amazon.com/cognitosync/latest/APIReference/), -[Container Service](http://docs.aws.amazon.com/AmazonECS/latest/APIReference/), -[AppStream](http://docs.aws.amazon.com/appstream/latest/developerguide/appstream-api-rest.html), -[Key Management Service](http://docs.aws.amazon.com/kms/latest/APIReference/), -[Config](http://docs.aws.amazon.com/config/latest/APIReference/), -[CloudHSM](http://docs.aws.amazon.com/cloudhsm/latest/dg/api-ref.html), -[Route53](http://docs.aws.amazon.com/Route53/latest/APIReference/requests-rest.html) and -[Route53 Domains](http://docs.aws.amazon.com/Route53/latest/APIReference/requests-rpc.html). - -Indeed, the only AWS services that *don't* support v4 as of 2014-12-30 are -[Import/Export](http://docs.aws.amazon.com/AWSImportExport/latest/DG/api-reference.html) and -[SimpleDB](http://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/SDB_API.html) -(they only support [AWS Signature Version 2](https://github.com/mhart/aws2)). - -It also provides defaults for a number of core AWS headers and -request parameters, making it very easy to query AWS services, or -build out a fully-featured AWS library. - -Example -------- - -```javascript -var http = require('http'), - https = require('https'), - aws4 = require('aws4') - -// given an options object you could pass to http.request -var opts = {host: 'sqs.us-east-1.amazonaws.com', path: '/?Action=ListQueues'} - -// alternatively (as aws4 can infer the host): -opts = {service: 'sqs', region: 'us-east-1', path: '/?Action=ListQueues'} - -// alternatively (as us-east-1 is default): -opts = {service: 'sqs', path: '/?Action=ListQueues'} - -aws4.sign(opts) // assumes AWS credentials are available in process.env - -console.log(opts) -/* -{ - host: 'sqs.us-east-1.amazonaws.com', - path: '/?Action=ListQueues', - headers: { - Host: 'sqs.us-east-1.amazonaws.com', - 'X-Amz-Date': '20121226T061030Z', - Authorization: 'AWS4-HMAC-SHA256 Credential=ABCDEF/20121226/us-east-1/sqs/aws4_request, ...' - } -} -*/ - -// we can now use this to query AWS using the standard node.js http API -http.request(opts, function(res) { res.pipe(process.stdout) }).end() -/* - - -... -*/ -``` - -More options ------------- - -```javascript -// you can also pass AWS credentials in explicitly (otherwise taken from process.env) -aws4.sign(opts, {accessKeyId: '', secretAccessKey: ''}) - -// can also add the signature to query strings -aws4.sign({service: 's3', path: '/my-bucket?X-Amz-Expires=12345', signQuery: true}) - -// create a utility function to pipe to stdout (with https this time) -function request(o) { https.request(o, function(res) { res.pipe(process.stdout) }).end(o.body || '') } - -// aws4 can infer the HTTP method if a body is passed in -// method will be POST and Content-Type: 'application/x-www-form-urlencoded; charset=utf-8' -request(aws4.sign({service: 'iam', body: 'Action=ListGroups&Version=2010-05-08'})) -/* - -... -*/ - -// can specify any custom option or header as per usual -request(aws4.sign({ - service: 'dynamodb', - region: 'ap-southeast-2', - method: 'POST', - path: '/', - headers: { - 'Content-Type': 'application/x-amz-json-1.0', - 'X-Amz-Target': 'DynamoDB_20120810.ListTables' - }, - body: '{}' -})) -/* -{"TableNames":[]} -... -*/ - -// works with all other services that support Signature Version 4 - -request(aws4.sign({service: 's3', path: '/', signQuery: true})) -/* - -... -*/ - -request(aws4.sign({service: 'ec2', path: '/?Action=DescribeRegions&Version=2014-06-15'})) -/* - -... -*/ - -request(aws4.sign({service: 'sns', path: '/?Action=ListTopics&Version=2010-03-31'})) -/* - -... -*/ - -request(aws4.sign({service: 'sts', path: '/?Action=GetSessionToken&Version=2011-06-15'})) -/* - -... -*/ - -request(aws4.sign({service: 'cloudsearch', path: '/?Action=ListDomainNames&Version=2013-01-01'})) -/* - -... -*/ - -request(aws4.sign({service: 'ses', path: '/?Action=ListIdentities&Version=2010-12-01'})) -/* - -... -*/ - -request(aws4.sign({service: 'autoscaling', path: '/?Action=DescribeAutoScalingInstances&Version=2011-01-01'})) -/* - -... -*/ - -request(aws4.sign({service: 'elasticloadbalancing', path: '/?Action=DescribeLoadBalancers&Version=2012-06-01'})) -/* - -... -*/ - -request(aws4.sign({service: 'cloudformation', path: '/?Action=ListStacks&Version=2010-05-15'})) -/* - -... -*/ - -request(aws4.sign({service: 'elasticbeanstalk', path: '/?Action=ListAvailableSolutionStacks&Version=2010-12-01'})) -/* - -... -*/ - -request(aws4.sign({service: 'rds', path: '/?Action=DescribeDBInstances&Version=2012-09-17'})) -/* - -... -*/ - -request(aws4.sign({service: 'monitoring', path: '/?Action=ListMetrics&Version=2010-08-01'})) -/* - -... -*/ - -request(aws4.sign({service: 'redshift', path: '/?Action=DescribeClusters&Version=2012-12-01'})) -/* - -... -*/ - -request(aws4.sign({service: 'cloudfront', path: '/2014-05-31/distribution'})) -/* - -... -*/ - -request(aws4.sign({service: 'elasticache', path: '/?Action=DescribeCacheClusters&Version=2014-07-15'})) -/* - -... -*/ - -request(aws4.sign({service: 'elasticmapreduce', path: '/?Action=DescribeJobFlows&Version=2009-03-31'})) -/* - -... -*/ - -request(aws4.sign({service: 'route53', path: '/2013-04-01/hostedzone'})) -/* - -... -*/ - -request(aws4.sign({service: 'appstream', path: '/applications'})) -/* -{"_links":{"curie":[{"href":"http://docs.aws.amazon.com/appstream/latest/... -... -*/ - -request(aws4.sign({service: 'cognito-sync', path: '/identitypools'})) -/* -{"Count":0,"IdentityPoolUsages":[],"MaxResults":16,"NextToken":null} -... -*/ - -request(aws4.sign({service: 'elastictranscoder', path: '/2012-09-25/pipelines'})) -/* -{"NextPageToken":null,"Pipelines":[]} -... -*/ - -request(aws4.sign({service: 'lambda', path: '/2014-11-13/functions/'})) -/* -{"Functions":[],"NextMarker":null} -... -*/ - -request(aws4.sign({service: 'ecs', path: '/?Action=ListClusters&Version=2014-11-13'})) -/* - -... -*/ - -request(aws4.sign({service: 'glacier', path: '/-/vaults', headers: {'X-Amz-Glacier-Version': '2012-06-01'}})) -/* -{"Marker":null,"VaultList":[]} -... -*/ - -request(aws4.sign({service: 'storagegateway', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'StorageGateway_20120630.ListGateways' -}})) -/* -{"Gateways":[]} -... -*/ - -request(aws4.sign({service: 'datapipeline', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'DataPipeline.ListPipelines' -}})) -/* -{"hasMoreResults":false,"pipelineIdList":[]} -... -*/ - -request(aws4.sign({service: 'opsworks', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'OpsWorks_20130218.DescribeStacks' -}})) -/* -{"Stacks":[]} -... -*/ - -request(aws4.sign({service: 'route53domains', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'Route53Domains_v20140515.ListDomains' -}})) -/* -{"Domains":[]} -... -*/ - -request(aws4.sign({service: 'kinesis', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'Kinesis_20131202.ListStreams' -}})) -/* -{"HasMoreStreams":false,"StreamNames":[]} -... -*/ - -request(aws4.sign({service: 'cloudtrail', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'CloudTrail_20131101.DescribeTrails' -}})) -/* -{"trailList":[]} -... -*/ - -request(aws4.sign({service: 'logs', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'Logs_20140328.DescribeLogGroups' -}})) -/* -{"logGroups":[]} -... -*/ - -request(aws4.sign({service: 'codedeploy', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'CodeDeploy_20141006.ListApplications' -}})) -/* -{"applications":[]} -... -*/ - -request(aws4.sign({service: 'directconnect', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'OvertureService.DescribeConnections' -}})) -/* -{"connections":[]} -... -*/ - -request(aws4.sign({service: 'kms', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'TrentService.ListKeys' -}})) -/* -{"Keys":[],"Truncated":false} -... -*/ - -request(aws4.sign({service: 'config', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'StarlingDoveService.DescribeDeliveryChannels' -}})) -/* -{"DeliveryChannels":[]} -... -*/ - -request(aws4.sign({service: 'cloudhsm', body: '{}', headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'CloudHsmFrontendService.ListAvailableZones' -}})) -/* -{"AZList":["us-east-1a","us-east-1b","us-east-1c"]} -... -*/ - -request(aws4.sign({ - service: 'swf', - body: '{"registrationStatus":"REGISTERED"}', - headers: { - 'Content-Type': 'application/x-amz-json-1.0', - 'X-Amz-Target': 'SimpleWorkflowService.ListDomains' - } -})) -/* -{"domainInfos":[]} -... -*/ - -request(aws4.sign({ - service: 'cognito-identity', - body: '{"MaxResults": 1}', - headers: { - 'Content-Type': 'application/x-amz-json-1.1', - 'X-Amz-Target': 'AWSCognitoIdentityService.ListIdentityPools' - } -})) -/* -{"IdentityPools":[]} -... -*/ - -request(aws4.sign({ - service: 'mobileanalytics', - path: '/2014-06-05/events', - body: JSON.stringify({events:[{ - eventType: 'a', - timestamp: new Date().toISOString(), - session: {}, - }]}), - headers: { - 'Content-Type': 'application/json', - 'X-Amz-Client-Context': JSON.stringify({ - client: {client_id: 'a', app_title: 'a'}, - custom: {}, - env: {platform: 'a'}, - services: {}, - }), - } -})) -/* -(HTTP 202, empty response) -*/ -``` - -API ---- - -### aws4.sign(requestOptions, [credentials]) - -This calculates and populates the `Authorization` header of -`requestOptions`, and any other necessary AWS headers and/or request -options. Returns `requestOptions` as a convenience for chaining. - -`requestOptions` is an object holding the same options that the node.js -[http.request](http://nodejs.org/docs/latest/api/http.html#http_http_request_options_callback) -function takes. - -The following properties of `requestOptions` are used in the signing or -populated if they don't already exist: - -- `hostname` or `host` (will be determined from `service` and `region` if not given) -- `method` (will use `'GET'` if not given or `'POST'` if there is a `body`) -- `path` (will use `'/'` if not given) -- `body` (will use `''` if not given) -- `service` (will be calculated from `hostname` or `host` if not given) -- `region` (will be calculated from `hostname` or `host` or use `'us-east-1'` if not given) -- `headers['Host']` (will use `hostname` or `host` or be calculated if not given) -- `headers['Content-Type']` (will use `'application/x-www-form-urlencoded; charset=utf-8'` - if not given and there is a `body`) -- `headers['Date']` (used to calculate the signature date if given, otherwise `new Date` is used) - -Your AWS credentials (which can be found in your -[AWS console](https://portal.aws.amazon.com/gp/aws/securityCredentials)) -can be specified in one of two ways: - -- As the second argument, like this: - -```javascript -aws4.sign(requestOptions, { - secretAccessKey: "", - accessKeyId: "", - sessionToken: "" -}) -``` - -- From `process.env`, such as this: - -``` -export AWS_SECRET_ACCESS_KEY="" -export AWS_ACCESS_KEY_ID="" -export AWS_SESSION_TOKEN="" -``` - -(will also use `AWS_ACCESS_KEY` and `AWS_SECRET_KEY` if available) - -The `sessionToken` property and `AWS_SESSION_TOKEN` environment variable are optional for signing -with [IAM STS temporary credentials](http://docs.aws.amazon.com/STS/latest/UsingSTS/using-temp-creds.html). - -Installation ------------- - -With [npm](http://npmjs.org/) do: - -``` -npm install aws4 -``` - -Can also be used [in the browser](./browser). - -Thanks ------- - -Thanks to [@jed](https://github.com/jed) for his -[dynamo-client](https://github.com/jed/dynamo-client) lib where I first -committed and subsequently extracted this code. - -Also thanks to the -[official node.js AWS SDK](https://github.com/aws/aws-sdk-js) for giving -me a start on implementing the v4 signature. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/aws4.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/aws4.js deleted file mode 100644 index 71e08bbc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/aws4.js +++ /dev/null @@ -1,318 +0,0 @@ -var aws4 = exports, - url = require('url'), - querystring = require('querystring'), - crypto = require('crypto'), - lru = require('lru-cache'), - credentialsCache = lru(1000) - -// http://docs.amazonwebservices.com/general/latest/gr/signature-version-4.html - -function hmac(key, string, encoding) { - return crypto.createHmac('sha256', key).update(string, 'utf8').digest(encoding) -} - -function hash(string, encoding) { - return crypto.createHash('sha256').update(string, 'utf8').digest(encoding) -} - -// This function assumes the string has already been percent encoded -function encodeRfc3986(urlEncodedString) { - return urlEncodedString.replace(/[!'()*]/g, function(c) { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) -} - -// request: { path | body, [host], [method], [headers], [service], [region] } -// credentials: { accessKeyId, secretAccessKey, [sessionToken] } -function RequestSigner(request, credentials) { - - if (typeof request === 'string') request = url.parse(request) - - var headers = request.headers = (request.headers || {}), - hostParts = this.matchHost(request.hostname || request.host || headers.Host || headers.host) - - this.request = request - this.credentials = credentials || this.defaultCredentials() - - this.service = request.service || hostParts[0] || '' - this.region = request.region || hostParts[1] || 'us-east-1' - - // SES uses a different domain from the service name - if (this.service === 'email') this.service = 'ses' - - if (!request.method && request.body) - request.method = 'POST' - - if (!headers.Host && !headers.host) { - headers.Host = request.hostname || request.host || this.createHost() - - // If a port is specified explicitly, use it as is - if (request.port) - headers.Host += ':' + request.port - } - if (!request.hostname && !request.host) - request.hostname = headers.Host || headers.host -} - -RequestSigner.prototype.matchHost = function(host) { - var match = (host || '').match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com$/) - var hostParts = (match || []).slice(1, 3) - - // ES's hostParts are sometimes the other way round, if the value that is expected - // to be region equals ‘es’ switch them back - // e.g. search-cluster-name-aaaa00aaaa0aaa0aaaaaaa0aaa.us-east-1.es.amazonaws.com - if (hostParts[1] === 'es') - hostParts = hostParts.reverse() - - return hostParts -} - -// http://docs.aws.amazon.com/general/latest/gr/rande.html -RequestSigner.prototype.isSingleRegion = function() { - // Special case for S3 and SimpleDB in us-east-1 - if (['s3', 'sdb'].indexOf(this.service) >= 0 && this.region === 'us-east-1') return true - - return ['cloudfront', 'ls', 'route53', 'iam', 'importexport', 'sts'] - .indexOf(this.service) >= 0 -} - -RequestSigner.prototype.createHost = function() { - var region = this.isSingleRegion() ? '' : - (this.service === 's3' && this.region !== 'us-east-1' ? '-' : '.') + this.region, - service = this.service === 'ses' ? 'email' : this.service - return service + region + '.amazonaws.com' -} - -RequestSigner.prototype.prepareRequest = function() { - this.parsePath() - - var request = this.request, headers = request.headers, query - - if (request.signQuery) { - - this.parsedPath.query = query = this.parsedPath.query || {} - - if (this.credentials.sessionToken) - query['X-Amz-Security-Token'] = this.credentials.sessionToken - - if (this.service === 's3' && !query['X-Amz-Expires']) - query['X-Amz-Expires'] = 86400 - - if (query['X-Amz-Date']) - this.datetime = query['X-Amz-Date'] - else - query['X-Amz-Date'] = this.getDateTime() - - query['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256' - query['X-Amz-Credential'] = this.credentials.accessKeyId + '/' + this.credentialString() - query['X-Amz-SignedHeaders'] = this.signedHeaders() - - } else { - - if (!request.doNotModifyHeaders) { - if (request.body && !headers['Content-Type'] && !headers['content-type']) - headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8' - - if (request.body && !headers['Content-Length'] && !headers['content-length']) - headers['Content-Length'] = Buffer.byteLength(request.body) - - if (this.credentials.sessionToken) - headers['X-Amz-Security-Token'] = this.credentials.sessionToken - - if (this.service === 's3') - headers['X-Amz-Content-Sha256'] = hash(this.request.body || '', 'hex') - - if (headers['X-Amz-Date']) - this.datetime = headers['X-Amz-Date'] - else - headers['X-Amz-Date'] = this.getDateTime() - } - - delete headers.Authorization - delete headers.authorization - } -} - -RequestSigner.prototype.sign = function() { - if (!this.parsedPath) this.prepareRequest() - - if (this.request.signQuery) { - this.parsedPath.query['X-Amz-Signature'] = this.signature() - } else { - this.request.headers.Authorization = this.authHeader() - } - - this.request.path = this.formatPath() - - return this.request -} - -RequestSigner.prototype.getDateTime = function() { - if (!this.datetime) { - var headers = this.request.headers, - date = new Date(headers.Date || headers.date || new Date) - - this.datetime = date.toISOString().replace(/[:\-]|\.\d{3}/g, '') - } - return this.datetime -} - -RequestSigner.prototype.getDate = function() { - return this.getDateTime().substr(0, 8) -} - -RequestSigner.prototype.authHeader = function() { - return [ - 'AWS4-HMAC-SHA256 Credential=' + this.credentials.accessKeyId + '/' + this.credentialString(), - 'SignedHeaders=' + this.signedHeaders(), - 'Signature=' + this.signature(), - ].join(', ') -} - -RequestSigner.prototype.signature = function() { - var date = this.getDate(), - cacheKey = [this.credentials.secretAccessKey, date, this.region, this.service].join(), - kDate, kRegion, kService, kCredentials = credentialsCache.get(cacheKey) - if (!kCredentials) { - kDate = hmac('AWS4' + this.credentials.secretAccessKey, date) - kRegion = hmac(kDate, this.region) - kService = hmac(kRegion, this.service) - kCredentials = hmac(kService, 'aws4_request') - credentialsCache.set(cacheKey, kCredentials) - } - return hmac(kCredentials, this.stringToSign(), 'hex') -} - -RequestSigner.prototype.stringToSign = function() { - return [ - 'AWS4-HMAC-SHA256', - this.getDateTime(), - this.credentialString(), - hash(this.canonicalString(), 'hex'), - ].join('\n') -} - -RequestSigner.prototype.canonicalString = function() { - if (!this.parsedPath) this.prepareRequest() - - var pathStr = this.parsedPath.path, - query = this.parsedPath.query, - queryStr = '', - normalizePath = this.service !== 's3', - decodePath = this.service === 's3' || this.request.doNotEncodePath, - decodeSlashesInPath = this.service === 's3', - firstValOnly = this.service === 's3', - bodyHash = this.service === 's3' && this.request.signQuery ? - 'UNSIGNED-PAYLOAD' : hash(this.request.body || '', 'hex') - - if (query) { - queryStr = encodeRfc3986(querystring.stringify(Object.keys(query).sort().reduce(function(obj, key) { - if (!key) return obj - obj[key] = !Array.isArray(query[key]) ? query[key] : - (firstValOnly ? query[key][0] : query[key].slice().sort()) - return obj - }, {}))) - } - if (pathStr !== '/') { - if (normalizePath) pathStr = pathStr.replace(/\/{2,}/g, '/') - pathStr = pathStr.split('/').reduce(function(path, piece) { - if (normalizePath && piece === '..') { - path.pop() - } else if (!normalizePath || piece !== '.') { - if (decodePath) piece = querystring.unescape(piece) - path.push(encodeRfc3986(querystring.escape(piece))) - } - return path - }, []).join('/') - if (pathStr[0] !== '/') pathStr = '/' + pathStr - if (decodeSlashesInPath) pathStr = pathStr.replace(/%2F/g, '/') - } - - return [ - this.request.method || 'GET', - pathStr, - queryStr, - this.canonicalHeaders() + '\n', - this.signedHeaders(), - bodyHash, - ].join('\n') -} - -RequestSigner.prototype.canonicalHeaders = function() { - var headers = this.request.headers - function trimAll(header) { - return header.toString().trim().replace(/\s+/g, ' ') - } - return Object.keys(headers) - .sort(function(a, b) { return a.toLowerCase() < b.toLowerCase() ? -1 : 1 }) - .map(function(key) { return key.toLowerCase() + ':' + trimAll(headers[key]) }) - .join('\n') -} - -RequestSigner.prototype.signedHeaders = function() { - return Object.keys(this.request.headers) - .map(function(key) { return key.toLowerCase() }) - .sort() - .join(';') -} - -RequestSigner.prototype.credentialString = function() { - return [ - this.getDate(), - this.region, - this.service, - 'aws4_request', - ].join('/') -} - -RequestSigner.prototype.defaultCredentials = function() { - var env = process.env - return { - accessKeyId: env.AWS_ACCESS_KEY_ID || env.AWS_ACCESS_KEY, - secretAccessKey: env.AWS_SECRET_ACCESS_KEY || env.AWS_SECRET_KEY, - sessionToken: env.AWS_SESSION_TOKEN, - } -} - -RequestSigner.prototype.parsePath = function() { - var path = this.request.path || '/', - queryIx = path.indexOf('?'), - query = null - - if (queryIx >= 0) { - query = querystring.parse(path.slice(queryIx + 1)) - path = path.slice(0, queryIx) - } - - // S3 doesn't always encode characters > 127 correctly and - // all services don't encode characters > 255 correctly - // So if there are non-reserved chars (and it's not already all % encoded), just encode them all - if (/[^0-9A-Za-z!'()*\-._~%/]/.test(path)) { - path = path.split('/').map(function(piece) { - return querystring.escape(querystring.unescape(piece)) - }).join('/') - } - - this.parsedPath = { - path: path, - query: query, - } -} - -RequestSigner.prototype.formatPath = function() { - var path = this.parsedPath.path, - query = this.parsedPath.query - - if (!query) return path - - // Services don't support empty query string keys - if (query[''] != null) delete query[''] - - return path + '?' + encodeRfc3986(querystring.stringify(query)) -} - -aws4.RequestSigner = RequestSigner - -aws4.sign = function(request, credentials) { - return new RequestSigner(request, credentials).sign() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/README.md deleted file mode 100644 index 1bc7b03f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# lru cache - -A cache object that deletes the least-recently-used items. - -[![Build Status](https://travis-ci.org/isaacs/node-lru-cache.svg?branch=master)](https://travis-ci.org/isaacs/node-lru-cache) [![Coverage Status](https://coveralls.io/repos/isaacs/node-lru-cache/badge.svg?service=github)](https://coveralls.io/github/isaacs/node-lru-cache) - -## Usage: - -```javascript -var LRU = require("lru-cache") - , options = { max: 500 - , length: function (n, key) { return n * 2 + key.length } - , dispose: function (key, n) { n.close() } - , maxAge: 1000 * 60 * 60 } - , cache = LRU(options) - , otherCache = LRU(50) // sets just the max size - -cache.set("key", "value") -cache.get("key") // "value" - -// non-string keys ARE fully supported -var someObject = {} -cache.set(someObject, 'a value') -cache.set('[object Object]', 'a different value') -assert.equal(cache.get(someObject), 'a value') - -cache.reset() // empty the cache -``` - -If you put more stuff in it, then items will fall out. - -If you try to put an oversized thing in it, then it'll fall out right -away. - -## Options - -* `max` The maximum size of the cache, checked by applying the length - function to all values in the cache. Not setting this is kind of - silly, since that's the whole purpose of this lib, but it defaults - to `Infinity`. -* `maxAge` Maximum age in ms. Items are not pro-actively pruned out - as they age, but if you try to get an item that is too old, it'll - drop it and return undefined instead of giving it to you. -* `length` Function that is used to calculate the length of stored - items. If you're storing strings or buffers, then you probably want - to do something like `function(n, key){return n.length}`. The default is - `function(){return 1}`, which is fine if you want to store `max` - like-sized things. They item is passed as the first argument, and - the key is passed as the second argumnet. -* `dispose` Function that is called on items when they are dropped - from the cache. This can be handy if you want to close file - descriptors or do other cleanup tasks when items are no longer - accessible. Called with `key, value`. It's called *before* - actually removing the item from the internal cache, so if you want - to immediately put it back in, you'll have to do that in a - `nextTick` or `setTimeout` callback or it won't do anything. -* `stale` By default, if you set a `maxAge`, it'll only actually pull - stale items out of the cache when you `get(key)`. (That is, it's - not pre-emptively doing a `setTimeout` or anything.) If you set - `stale:true`, it'll return the stale value before deleting it. If - you don't set this, then it'll return `undefined` when you try to - get a stale entry, as if it had already been deleted. - -## API - -* `set(key, value, maxAge)` -* `get(key) => value` - - Both of these will update the "recently used"-ness of the key. - They do what you think. `maxAge` is optional and overrides the - cache `maxAge` option if provided. - - If the key is not found, `get()` will return `undefined`. - - The key and val can be any value. - -* `peek(key)` - - Returns the key value (or `undefined` if not found) without - updating the "recently used"-ness of the key. - - (If you find yourself using this a lot, you *might* be using the - wrong sort of data structure, but there are some use cases where - it's handy.) - -* `del(key)` - - Deletes a key out of the cache. - -* `reset()` - - Clear the cache entirely, throwing away all values. - -* `has(key)` - - Check if a key is in the cache, without updating the recent-ness - or deleting it for being stale. - -* `forEach(function(value,key,cache), [thisp])` - - Just like `Array.prototype.forEach`. Iterates over all the keys - in the cache, in order of recent-ness. (Ie, more recently used - items are iterated over first.) - -* `rforEach(function(value,key,cache), [thisp])` - - The same as `cache.forEach(...)` but items are iterated over in - reverse order. (ie, less recently used items are iterated over - first.) - -* `keys()` - - Return an array of the keys in the cache. - -* `values()` - - Return an array of the values in the cache. - -* `length` - - Return total length of objects in cache taking into account - `length` options function. - -* `itemCount` - - Return total quantity of objects currently in cache. Note, that - `stale` (see options) items are returned as part of this item - count. - -* `dump()` - - Return an array of the cache entries ready for serialization and usage - with 'destinationCache.load(arr)`. - -* `load(cacheEntriesArray)` - - Loads another cache entries array, obtained with `sourceCache.dump()`, - into the cache. The destination cache is reset before loading new entries - -* `prune()` - - Manually iterates over the entire cache proactively pruning old entries diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/lib/lru-cache.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/lib/lru-cache.js deleted file mode 100644 index e98ef78a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/lib/lru-cache.js +++ /dev/null @@ -1,469 +0,0 @@ -module.exports = LRUCache - -// This will be a proper iterable 'Map' in engines that support it, -// or a fakey-fake PseudoMap in older versions. -var Map = require('pseudomap') -var util = require('util') - -// A linked list to keep track of recently-used-ness -var Yallist = require('yallist') - -// use symbols if possible, otherwise just _props -var symbols = {} -var hasSymbol = typeof Symbol === 'function' -var makeSymbol -/* istanbul ignore if */ -if (hasSymbol) { - makeSymbol = function (key) { - return Symbol.for(key) - } -} else { - makeSymbol = function (key) { - return '_' + key - } -} - -function priv (obj, key, val) { - var sym - if (symbols[key]) { - sym = symbols[key] - } else { - sym = makeSymbol(key) - symbols[key] = sym - } - if (arguments.length === 2) { - return obj[sym] - } else { - obj[sym] = val - return val - } -} - -function naiveLength () { return 1 } - -// lruList is a yallist where the head is the youngest -// item, and the tail is the oldest. the list contains the Hit -// objects as the entries. -// Each Hit object has a reference to its Yallist.Node. This -// never changes. -// -// cache is a Map (or PseudoMap) that matches the keys to -// the Yallist.Node object. -function LRUCache (options) { - if (!(this instanceof LRUCache)) { - return new LRUCache(options) - } - - if (typeof options === 'number') { - options = { max: options } - } - - if (!options) { - options = {} - } - - var max = priv(this, 'max', options.max) - // Kind of weird to have a default max of Infinity, but oh well. - if (!max || - !(typeof max === 'number') || - max <= 0) { - priv(this, 'max', Infinity) - } - - var lc = options.length || naiveLength - if (typeof lc !== 'function') { - lc = naiveLength - } - priv(this, 'lengthCalculator', lc) - - priv(this, 'allowStale', options.stale || false) - priv(this, 'maxAge', options.maxAge || 0) - priv(this, 'dispose', options.dispose) - this.reset() -} - -// resize the cache when the max changes. -Object.defineProperty(LRUCache.prototype, 'max', { - set: function (mL) { - if (!mL || !(typeof mL === 'number') || mL <= 0) { - mL = Infinity - } - priv(this, 'max', mL) - trim(this) - }, - get: function () { - return priv(this, 'max') - }, - enumerable: true -}) - -Object.defineProperty(LRUCache.prototype, 'allowStale', { - set: function (allowStale) { - priv(this, 'allowStale', !!allowStale) - }, - get: function () { - return priv(this, 'allowStale') - }, - enumerable: true -}) - -Object.defineProperty(LRUCache.prototype, 'maxAge', { - set: function (mA) { - if (!mA || !(typeof mA === 'number') || mA < 0) { - mA = 0 - } - priv(this, 'maxAge', mA) - trim(this) - }, - get: function () { - return priv(this, 'maxAge') - }, - enumerable: true -}) - -// resize the cache when the lengthCalculator changes. -Object.defineProperty(LRUCache.prototype, 'lengthCalculator', { - set: function (lC) { - if (typeof lC !== 'function') { - lC = naiveLength - } - if (lC !== priv(this, 'lengthCalculator')) { - priv(this, 'lengthCalculator', lC) - priv(this, 'length', 0) - priv(this, 'lruList').forEach(function (hit) { - hit.length = priv(this, 'lengthCalculator').call(this, hit.value, hit.key) - priv(this, 'length', priv(this, 'length') + hit.length) - }, this) - } - trim(this) - }, - get: function () { return priv(this, 'lengthCalculator') }, - enumerable: true -}) - -Object.defineProperty(LRUCache.prototype, 'length', { - get: function () { return priv(this, 'length') }, - enumerable: true -}) - -Object.defineProperty(LRUCache.prototype, 'itemCount', { - get: function () { return priv(this, 'lruList').length }, - enumerable: true -}) - -LRUCache.prototype.rforEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = priv(this, 'lruList').tail; walker !== null;) { - var prev = walker.prev - forEachStep(this, fn, walker, thisp) - walker = prev - } -} - -function forEachStep (self, fn, node, thisp) { - var hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!priv(self, 'allowStale')) { - hit = undefined - } - } - if (hit) { - fn.call(thisp, hit.value, hit.key, self) - } -} - -LRUCache.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = priv(this, 'lruList').head; walker !== null;) { - var next = walker.next - forEachStep(this, fn, walker, thisp) - walker = next - } -} - -LRUCache.prototype.keys = function () { - return priv(this, 'lruList').toArray().map(function (k) { - return k.key - }, this) -} - -LRUCache.prototype.values = function () { - return priv(this, 'lruList').toArray().map(function (k) { - return k.value - }, this) -} - -LRUCache.prototype.reset = function () { - if (priv(this, 'dispose') && - priv(this, 'lruList') && - priv(this, 'lruList').length) { - priv(this, 'lruList').forEach(function (hit) { - priv(this, 'dispose').call(this, hit.key, hit.value) - }, this) - } - - priv(this, 'cache', new Map()) // hash of items by key - priv(this, 'lruList', new Yallist()) // list of items in order of use recency - priv(this, 'length', 0) // length of items in the list -} - -LRUCache.prototype.dump = function () { - return priv(this, 'lruList').map(function (hit) { - if (!isStale(this, hit)) { - return { - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - } - } - }, this).toArray().filter(function (h) { - return h - }) -} - -LRUCache.prototype.dumpLru = function () { - return priv(this, 'lruList') -} - -LRUCache.prototype.inspect = function (n, opts) { - var str = 'LRUCache {' - var extras = false - - var as = priv(this, 'allowStale') - if (as) { - str += '\n allowStale: true' - extras = true - } - - var max = priv(this, 'max') - if (max && max !== Infinity) { - if (extras) { - str += ',' - } - str += '\n max: ' + util.inspect(max, opts) - extras = true - } - - var maxAge = priv(this, 'maxAge') - if (maxAge) { - if (extras) { - str += ',' - } - str += '\n maxAge: ' + util.inspect(maxAge, opts) - extras = true - } - - var lc = priv(this, 'lengthCalculator') - if (lc && lc !== naiveLength) { - if (extras) { - str += ',' - } - str += '\n length: ' + util.inspect(priv(this, 'length'), opts) - extras = true - } - - var didFirst = false - priv(this, 'lruList').forEach(function (item) { - if (didFirst) { - str += ',\n ' - } else { - if (extras) { - str += ',\n' - } - didFirst = true - str += '\n ' - } - var key = util.inspect(item.key).split('\n').join('\n ') - var val = { value: item.value } - if (item.maxAge !== maxAge) { - val.maxAge = item.maxAge - } - if (lc !== naiveLength) { - val.length = item.length - } - if (isStale(this, item)) { - val.stale = true - } - - val = util.inspect(val, opts).split('\n').join('\n ') - str += key + ' => ' + val - }) - - if (didFirst || extras) { - str += '\n' - } - str += '}' - - return str -} - -LRUCache.prototype.set = function (key, value, maxAge) { - maxAge = maxAge || priv(this, 'maxAge') - - var now = maxAge ? Date.now() : 0 - var len = priv(this, 'lengthCalculator').call(this, value, key) - - if (priv(this, 'cache').has(key)) { - if (len > priv(this, 'max')) { - del(this, priv(this, 'cache').get(key)) - return false - } - - var node = priv(this, 'cache').get(key) - var item = node.value - - // dispose of the old one before overwriting - if (priv(this, 'dispose')) { - priv(this, 'dispose').call(this, key, item.value) - } - - item.now = now - item.maxAge = maxAge - item.value = value - priv(this, 'length', priv(this, 'length') + (len - item.length)) - item.length = len - this.get(key) - trim(this) - return true - } - - var hit = new Entry(key, value, len, now, maxAge) - - // oversized objects fall out of cache automatically. - if (hit.length > priv(this, 'max')) { - if (priv(this, 'dispose')) { - priv(this, 'dispose').call(this, key, value) - } - return false - } - - priv(this, 'length', priv(this, 'length') + hit.length) - priv(this, 'lruList').unshift(hit) - priv(this, 'cache').set(key, priv(this, 'lruList').head) - trim(this) - return true -} - -LRUCache.prototype.has = function (key) { - if (!priv(this, 'cache').has(key)) return false - var hit = priv(this, 'cache').get(key).value - if (isStale(this, hit)) { - return false - } - return true -} - -LRUCache.prototype.get = function (key) { - return get(this, key, true) -} - -LRUCache.prototype.peek = function (key) { - return get(this, key, false) -} - -LRUCache.prototype.pop = function () { - var node = priv(this, 'lruList').tail - if (!node) return null - del(this, node) - return node.value -} - -LRUCache.prototype.del = function (key) { - del(this, priv(this, 'cache').get(key)) -} - -LRUCache.prototype.load = function (arr) { - // reset the cache - this.reset() - - var now = Date.now() - // A previous serialized cache has the most recent items first - for (var l = arr.length - 1; l >= 0; l--) { - var hit = arr[l] - var expiresAt = hit.e || 0 - if (expiresAt === 0) { - // the item was created without expiration in a non aged cache - this.set(hit.k, hit.v) - } else { - var maxAge = expiresAt - now - // dont add already expired items - if (maxAge > 0) { - this.set(hit.k, hit.v, maxAge) - } - } - } -} - -LRUCache.prototype.prune = function () { - var self = this - priv(this, 'cache').forEach(function (value, key) { - get(self, key, false) - }) -} - -function get (self, key, doUse) { - var node = priv(self, 'cache').get(key) - if (node) { - var hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!priv(self, 'allowStale')) hit = undefined - } else { - if (doUse) { - priv(self, 'lruList').unshiftNode(node) - } - } - if (hit) hit = hit.value - } - return hit -} - -function isStale (self, hit) { - if (!hit || (!hit.maxAge && !priv(self, 'maxAge'))) { - return false - } - var stale = false - var diff = Date.now() - hit.now - if (hit.maxAge) { - stale = diff > hit.maxAge - } else { - stale = priv(self, 'maxAge') && (diff > priv(self, 'maxAge')) - } - return stale -} - -function trim (self) { - if (priv(self, 'length') > priv(self, 'max')) { - for (var walker = priv(self, 'lruList').tail; - priv(self, 'length') > priv(self, 'max') && walker !== null;) { - // We know that we're about to delete this one, and also - // what the next least recently used key will be, so just - // go ahead and set it now. - var prev = walker.prev - del(self, walker) - walker = prev - } - } -} - -function del (self, node) { - if (node) { - var hit = node.value - if (priv(self, 'dispose')) { - priv(self, 'dispose').call(this, hit.key, hit.value) - } - priv(self, 'length', priv(self, 'length') - hit.length) - priv(self, 'cache').delete(hit.key) - priv(self, 'lruList').removeNode(node) - } -} - -// classy, since V8 prefers predictable objects. -function Entry (key, value, length, now, maxAge) { - this.key = key - this.value = value - this.length = length - this.now = now - this.maxAge = maxAge || 0 -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/README.md deleted file mode 100644 index 778bf01d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# pseudomap - -A thing that is a lot like ES6 `Map`, but without iterators, for use -in environments where `for..of` syntax and `Map` are not available. - -If you need iterators, or just in general a more faithful polyfill to -ES6 Maps, check out [es6-map](http://npm.im/es6-map). - -If you are in an environment where `Map` is supported, then that will -be returned instead, unless `process.env.TEST_PSEUDOMAP` is set. - -You can use any value as keys, and any value as data. Setting again -with the identical key will overwrite the previous value. - -Internally, data is stored on an `Object.create(null)` style object. -The key is coerced to a string to generate the key on the internal -data-bag object. The original key used is stored along with the data. - -In the event of a stringified-key collision, a new key is generated by -appending an increasing number to the stringified-key until finding -either the intended key or an empty spot. - -Note that because object traversal order of plain objects is not -guaranteed to be identical to insertion order, the insertion order -guarantee of `Map.prototype.forEach` is not guaranteed in this -implementation. However, in all versions of Node.js and V8 where this -module works, `forEach` does traverse data in insertion order. - -## API - -Most of the [Map -API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map), -with the following exceptions: - -1. A `Map` object is not an iterator. -2. `values`, `keys`, and `entries` methods are not implemented, - because they return iterators. -3. The argument to the constructor can be an Array of `[key, value]` - pairs, or a `Map` or `PseudoMap` object. But, since iterators - aren't used, passing any plain-old iterator won't initialize the - map properly. - -## USAGE - -Use just like a regular ES6 Map. - -```javascript -var PseudoMap = require('pseudomap') - -// optionally provide a pseudomap, or an array of [key,value] pairs -// as the argument to initialize the map with -var myMap = new PseudoMap() - -myMap.set(1, 'number 1') -myMap.set('1', 'string 1') -var akey = {} -var bkey = {} -myMap.set(akey, { some: 'data' }) -myMap.set(bkey, { some: 'other data' }) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/map.js deleted file mode 100644 index 7db15994..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/map.js +++ /dev/null @@ -1,9 +0,0 @@ -if (process.env.npm_package_name === 'pseudomap' && - process.env.npm_lifecycle_script === 'test') - process.env.TEST_PSEUDOMAP = 'true' - -if (typeof Map === 'function' && !process.env.TEST_PSEUDOMAP) { - module.exports = Map -} else { - module.exports = require('./pseudomap') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/package.json deleted file mode 100644 index 8e1129b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_args": [ - [ - "pseudomap@^1.0.1", - "/Users/rebecca/code/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache" - ] - ], - "_from": "pseudomap@>=1.0.1 <2.0.0", - "_id": "pseudomap@1.0.2", - "_inCache": true, - "_installable": true, - "_location": "/request/aws4/lru-cache/pseudomap", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "pseudomap", - "raw": "pseudomap@^1.0.1", - "rawSpec": "^1.0.1", - "scope": null, - "spec": ">=1.0.1 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/request/aws4/lru-cache" - ], - "_resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "_shasum": "f052a28da70e618917ef0a8ac34c1ae5a68286b3", - "_shrinkwrap": null, - "_spec": "pseudomap@^1.0.1", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/pseudomap/issues" - }, - "dependencies": {}, - "description": "A thing that is a lot like ES6 `Map`, but without iterators, for use in environments where `for..of` syntax and `Map` are not available.", - "devDependencies": { - "tap": "^2.3.1" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "f052a28da70e618917ef0a8ac34c1ae5a68286b3", - "tarball": "http://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" - }, - "gitHead": "b6dc728207a0321ede6479e34506d3e0e13a940b", - "homepage": "https://github.com/isaacs/pseudomap#readme", - "license": "ISC", - "main": "map.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "pseudomap", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/pseudomap.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/pseudomap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/pseudomap.js deleted file mode 100644 index 25a21d82..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/pseudomap.js +++ /dev/null @@ -1,113 +0,0 @@ -var hasOwnProperty = Object.prototype.hasOwnProperty - -module.exports = PseudoMap - -function PseudoMap (set) { - if (!(this instanceof PseudoMap)) // whyyyyyyy - throw new TypeError("Constructor PseudoMap requires 'new'") - - this.clear() - - if (set) { - if ((set instanceof PseudoMap) || - (typeof Map === 'function' && set instanceof Map)) - set.forEach(function (value, key) { - this.set(key, value) - }, this) - else if (Array.isArray(set)) - set.forEach(function (kv) { - this.set(kv[0], kv[1]) - }, this) - else - throw new TypeError('invalid argument') - } -} - -PseudoMap.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - Object.keys(this._data).forEach(function (k) { - if (k !== 'size') - fn.call(thisp, this._data[k].value, this._data[k].key) - }, this) -} - -PseudoMap.prototype.has = function (k) { - return !!find(this._data, k) -} - -PseudoMap.prototype.get = function (k) { - var res = find(this._data, k) - return res && res.value -} - -PseudoMap.prototype.set = function (k, v) { - set(this._data, k, v) -} - -PseudoMap.prototype.delete = function (k) { - var res = find(this._data, k) - if (res) { - delete this._data[res._index] - this._data.size-- - } -} - -PseudoMap.prototype.clear = function () { - var data = Object.create(null) - data.size = 0 - - Object.defineProperty(this, '_data', { - value: data, - enumerable: false, - configurable: true, - writable: false - }) -} - -Object.defineProperty(PseudoMap.prototype, 'size', { - get: function () { - return this._data.size - }, - set: function (n) {}, - enumerable: true, - configurable: true -}) - -PseudoMap.prototype.values = -PseudoMap.prototype.keys = -PseudoMap.prototype.entries = function () { - throw new Error('iterators are not implemented in this version') -} - -// Either identical, or both NaN -function same (a, b) { - return a === b || a !== a && b !== b -} - -function Entry (k, v, i) { - this.key = k - this.value = v - this._index = i -} - -function find (data, k) { - for (var i = 0, s = '_' + k, key = s; - hasOwnProperty.call(data, key); - key = s + i++) { - if (same(data[key].key, k)) - return data[key] - } -} - -function set (data, k, v) { - for (var i = 0, s = '_' + k, key = s; - hasOwnProperty.call(data, key); - key = s + i++) { - if (same(data[key].key, k)) { - data[key].value = v - return - } - } - data.size++ - data[key] = new Entry(k, v, key) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/test/basic.js deleted file mode 100644 index 4378e454..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/test/basic.js +++ /dev/null @@ -1,86 +0,0 @@ -var t = require('tap') - -process.env.TEST_PSEUDOMAP = 'true' - -var PM = require('../') -runTests(PM) - -// if possible, verify that Map also behaves the same way -if (typeof Map === 'function') - runTests(Map) - - -function runTests (Map) { - t.throws(Map) - - var m = new Map() - - t.equal(m.size, 0) - - m.set(1, '1 string') - t.equal(m.get(1), '1 string') - t.equal(m.size, 1) - m.size = 1000 - t.equal(m.size, 1) - m.size = 0 - t.equal(m.size, 1) - - m = new Map([[1, 'number 1'], ['1', 'string 1']]) - t.equal(m.get(1), 'number 1') - t.equal(m.get('1'), 'string 1') - t.equal(m.size, 2) - - m = new Map(m) - t.equal(m.get(1), 'number 1') - t.equal(m.get('1'), 'string 1') - t.equal(m.size, 2) - - var akey = {} - var bkey = {} - m.set(akey, { some: 'data' }) - m.set(bkey, { some: 'other data' }) - t.same(m.get(akey), { some: 'data' }) - t.same(m.get(bkey), { some: 'other data' }) - t.equal(m.size, 4) - - var x = /x/ - var y = /x/ - m.set(x, 'x regex') - m.set(y, 'y regex') - t.equal(m.get(x), 'x regex') - m.set(x, 'x again') - t.equal(m.get(x), 'x again') - t.equal(m.size, 6) - - m.set(NaN, 'not a number') - t.equal(m.get(NaN), 'not a number') - m.set(NaN, 'it is a ' + typeof NaN) - t.equal(m.get(NaN), 'it is a number') - m.set('NaN', 'stringie nan') - t.equal(m.get(NaN), 'it is a number') - t.equal(m.get('NaN'), 'stringie nan') - t.equal(m.size, 8) - - m.delete(NaN) - t.equal(m.get(NaN), undefined) - t.equal(m.size, 7) - - var expect = [ - { value: 'number 1', key: 1 }, - { value: 'string 1', key: '1' }, - { value: { some: 'data' }, key: {} }, - { value: { some: 'other data' }, key: {} }, - { value: 'x again', key: /x/ }, - { value: 'y regex', key: /x/ }, - { value: 'stringie nan', key: 'NaN' } - ] - var actual = [] - - m.forEach(function (value, key) { - actual.push({ value: value, key: key }) - }) - t.same(actual, expect) - - m.clear() - t.equal(m.size, 0) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.npmignore deleted file mode 100644 index 534108e3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules/ -coverage/ -.nyc_output/ -nyc_output/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.travis.yml deleted file mode 100644 index 9c1a7b6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -sudo: false -language: node_js -node_js: - - '0.10' - - '0.12' - - '4' - - '5' diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/CONTRIBUTING.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/CONTRIBUTING.md deleted file mode 100644 index 5f51e6f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/CONTRIBUTING.md +++ /dev/null @@ -1,4 +0,0 @@ -1. The whole API is public. No underscore-prefixed pretend-private - things or hidden Object.create magic mumbo jumbo here. Plain old - objects that are created from constructors. -2. 100% test coverage must be maintained. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/README.md deleted file mode 100644 index f5861018..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/README.md +++ /dev/null @@ -1,204 +0,0 @@ -# yallist - -Yet Another Linked List - -There are many doubly-linked list implementations like it, but this -one is mine. - -For when an array would be too big, and a Map can't be iterated in -reverse order. - - -[![Build Status](https://travis-ci.org/isaacs/yallist.svg?branch=master)](https://travis-ci.org/isaacs/yallist) [![Coverage Status](https://coveralls.io/repos/isaacs/yallist/badge.svg?service=github)](https://coveralls.io/github/isaacs/yallist) - -## basic usage - -```javascript -var yallist = require('yallist') -var myList = yallist.create([1, 2, 3]) -myList.push('foo') -myList.unshift('bar') -// of course pop() and shift() are there, too -console.log(myList.toArray()) // ['bar', 1, 2, 3, 'foo'] -myList.forEach(function (k) { - // walk the list head to tail -}) -myList.forEachReverse(function (k, index, list) { - // walk the list tail to head -}) -var myDoubledList = myList.map(function (k) { - return k + k -}) -// now myDoubledList contains ['barbar', 2, 4, 6, 'foofoo'] -// mapReverse is also a thing -var myDoubledListReverse = myList.mapReverse(function (k) { - return k + k -}) // ['foofoo', 6, 4, 2, 'barbar'] - -var reduced = myList.reduce(function (set, entry) { - set += entry - return set -}, 'start') -console.log(reduced) // 'startfoo123bar' -``` - -## api - -The whole API is considered "public". - -Functions with the same name as an Array method work more or less the -same way. - -There's reverse versions of most things because that's the point. - -### Yallist - -Default export, the class that holds and manages a list. - -Call it with either a forEach-able (like an array) or a set of -arguments, to initialize the list. - -The Array-ish methods all act like you'd expect. No magic length, -though, so if you change that it won't automatically prune or add -empty spots. - -### Yallist.create(..) - -Alias for Yallist function. Some people like factories. - -#### yallist.head - -The first node in the list - -#### yallist.tail - -The last node in the list - -#### yallist.length - -The number of nodes in the list. (Change this at your peril. It is -not magic like Array length.) - -#### yallist.toArray() - -Convert the list to an array. - -#### yallist.forEach(fn, [thisp]) - -Call a function on each item in the list. - -#### yallist.forEachReverse(fn, [thisp]) - -Call a function on each item in the list, in reverse order. - -#### yallist.get(n) - -Get the data at position `n` in the list. If you use this a lot, -probably better off just using an Array. - -#### yallist.getReverse(n) - -Get the data at position `n`, counting from the tail. - -#### yallist.map(fn, thisp) - -Create a new Yallist with the result of calling the function on each -item. - -#### yallist.mapReverse(fn, thisp) - -Same as `map`, but in reverse. - -#### yallist.pop() - -Get the data from the list tail, and remove the tail from the list. - -#### yallist.push(item, ...) - -Insert one or more items to the tail of the list. - -#### yallist.reduce(fn, initialValue) - -Like Array.reduce. - -#### yallist.reduceReverse - -Like Array.reduce, but in reverse. - -#### yallist.reverse - -Reverse the list in place. - -#### yallist.shift() - -Get the data from the list head, and remove the head from the list. - -#### yallist.slice([from], [to]) - -Just like Array.slice, but returns a new Yallist. - -#### yallist.sliceReverse([from], [to]) - -Just like yallist.slice, but the result is returned in reverse. - -#### yallist.toArray() - -Create an array representation of the list. - -#### yallist.toArrayReverse() - -Create a reversed array representation of the list. - -#### yallist.unshift(item, ...) - -Insert one or more items to the head of the list. - -#### yallist.unshiftNode(node) - -Move a Node object to the front of the list. (That is, pull it out of -wherever it lives, and make it the new head.) - -If the node belongs to a different list, then that list will remove it -first. - -#### yallist.pushNode(node) - -Move a Node object to the end of the list. (That is, pull it out of -wherever it lives, and make it the new tail.) - -If the node belongs to a list already, then that list will remove it -first. - -#### yallist.removeNode(node) - -Remove a node from the list, preserving referential integrity of head -and tail and other nodes. - -Will throw an error if you try to have a list remove a node that -doesn't belong to it. - -### Yallist.Node - -The class that holds the data and is actually the list. - -Call with `var n = new Node(value, previousNode, nextNode)` - -Note that if you do direct operations on Nodes themselves, it's very -easy to get into weird states where the list is broken. Be careful :) - -#### node.next - -The next node in the list. - -#### node.prev - -The previous node in the list. - -#### node.value - -The data the node contains. - -#### node.list - -The list to which this node belongs. (Null if it does not belong to -any list.) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/package.json deleted file mode 100644 index a1c290b5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_args": [ - [ - "yallist@^2.0.0", - "/Users/rebecca/code/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache" - ] - ], - "_from": "yallist@>=2.0.0 <3.0.0", - "_id": "yallist@2.0.0", - "_inCache": true, - "_installable": true, - "_location": "/request/aws4/lru-cache/yallist", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "yallist", - "raw": "yallist@^2.0.0", - "rawSpec": "^2.0.0", - "scope": null, - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "_requiredBy": [ - "/request/aws4/lru-cache" - ], - "_resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz", - "_shasum": "306c543835f09ee1a4cb23b7bce9ab341c91cdd4", - "_shrinkwrap": null, - "_spec": "yallist@^2.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/yallist/issues" - }, - "dependencies": {}, - "description": "Yet Another Linked List", - "devDependencies": { - "tap": "^2.3.2" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "306c543835f09ee1a4cb23b7bce9ab341c91cdd4", - "tarball": "http://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz" - }, - "gitHead": "702eaba87deefa9f8fc2f8e36cb225bc2141fdc3", - "homepage": "https://github.com/isaacs/yallist#readme", - "license": "ISC", - "main": "yallist.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "yallist", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/yallist.git" - }, - "scripts": { - "test": "tap test/*.js --cov" - }, - "version": "2.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/test/basic.js deleted file mode 100644 index 42a9eedc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/test/basic.js +++ /dev/null @@ -1,188 +0,0 @@ -var t = require('tap') -var Yallist = require('../yallist.js') - -var y = new Yallist(1,2,3,4,5) -var z = new Yallist([1,2,3,4,5]) -t.similar(y, z, 'build from single list or args') - -function add10 (i) { - return i + 10 -} -t.similar(y.map(add10).toArray(), [11, 12, 13, 14, 15]) -t.similar(y.mapReverse(add10).toArray(), [15, 14, 13, 12, 11]) - -t.similar(y.map(add10).toArrayReverse(), [15, 14, 13, 12, 11]) -t.isa(Yallist(1,2,3), 'Yallist') -t.equal(y.push(6, 7, 8), 8) -t.similar(y.toArray(), [1, 2, 3, 4, 5, 6, 7, 8]) -y.pop() -y.shift() -y.unshift(100) - -var expect = [100, 2, 3, 4, 5, 6, 7] -var expectReverse = [ 7, 6, 5, 4, 3, 2, 100 ] - -t.similar(y.toArray(), expect) -t.equal(y.length, y.toArray().length) - -t.test(function forEach (t) { - t.plan(y.length * 2) - y.forEach(function (item, i, list) { - t.equal(item, expect[i]) - t.equal(list, y) - }) -}) - -t.test(function forEach (t) { - t.plan(y.length * 5) - var n = 0 - y.forEachReverse(function (item, i, list) { - t.equal(item, expectReverse[n]) - t.equal(item, expect[i]) - t.equal(item, y.get(i)) - t.equal(item, y.getReverse(n)) - n += 1 - t.equal(list, y) - }) -}) - -t.equal(y.getReverse(100), undefined) - -t.equal(y.get(9999), undefined) - - -function sum (a, b) { return a + b } -t.equal(y.reduce(sum), 127) -t.equal(y.reduce(sum, 100), 227) -t.equal(y.reduceReverse(sum), 127) -t.equal(y.reduceReverse(sum, 100), 227) - -t.equal(Yallist().pop(), undefined) -t.equal(Yallist().shift(), undefined) - -var x = Yallist() -x.unshift(1) -t.equal(x.length, 1) -t.similar(x.toArray(), [1]) - -// verify that y.toArray() returns an array and if we create a -// new Yallist from that array, we get a list matching -t.similar(Yallist(y.toArray()), y) -t.similar(Yallist.apply(null, y.toArray()), y) - -t.throws(function () { - new Yallist().reduce(function () {}) -}, {}, new TypeError('Reduce of empty list with no initial value')) -t.throws(function () { - new Yallist().reduceReverse(function () {}) -}, {}, new TypeError('Reduce of empty list with no initial value')) - -var z = y.reverse() -t.equal(z, y) -t.similar(y.toArray(), expectReverse) -y.reverse() -t.similar(y.toArray(), expect) - -var a = Yallist(1,2,3,4,5,6) -var cases = [ - [ [2, 4], [3, 4] ], - [ [2, -4], [] ], - [ [2, -2], [3, 4] ], - [ [1, -2], [2, 3, 4] ], - [ [-1, -2], [] ], - [ [-5, -2], [2, 3, 4] ], - [ [-99, 2], [1, 2] ], - [ [5, 99], [6] ], - [ [], [1,2,3,4,5,6] ] -] -t.test('slice', function (t) { - t.plan(cases.length) - cases.forEach(function (c) { - t.test(JSON.stringify(c), function (t) { - t.similar(a.slice.apply(a, c[0]), Yallist(c[1])) - t.similar([].slice.apply(a.toArray(), c[0]), c[1]) - t.end() - }) - }) -}) - -t.test('sliceReverse', function (t) { - t.plan(cases.length) - cases.forEach(function (c) { - var rev = c[1].slice().reverse() - t.test(JSON.stringify([c[0], rev]), function (t) { - t.similar(a.sliceReverse.apply(a, c[0]), Yallist(rev)) - t.similar([].slice.apply(a.toArray(), c[0]).reverse(), rev) - t.end() - }) - }) -}) - -var inserter = Yallist(1,2,3,4,5) -inserter.unshiftNode(inserter.head.next) -t.similar(inserter.toArray(), [2,1,3,4,5]) -inserter.unshiftNode(inserter.tail) -t.similar(inserter.toArray(), [5,2,1,3,4]) -inserter.unshiftNode(inserter.head) -t.similar(inserter.toArray(), [5,2,1,3,4]) - -var single = Yallist(1) -single.unshiftNode(single.head) -t.similar(single.toArray(), [1]) - -inserter = Yallist(1,2,3,4,5) -inserter.pushNode(inserter.tail.prev) -t.similar(inserter.toArray(), [1,2,3,5,4]) -inserter.pushNode(inserter.head) -t.similar(inserter.toArray(), [2,3,5,4,1]) -inserter.unshiftNode(inserter.head) -t.similar(inserter.toArray(), [2,3,5,4,1]) - -single = Yallist(1) -single.pushNode(single.tail) -t.similar(single.toArray(), [1]) - -var swiped = Yallist(9,8,7) -inserter.unshiftNode(swiped.head.next) -t.similar(inserter.toArray(), [8,2,3,5,4,1]) -t.similar(swiped.toArray(), [9,7]) - -swiped = Yallist(9,8,7) -inserter.pushNode(swiped.head.next) -t.similar(inserter.toArray(), [8,2,3,5,4,1,8]) -t.similar(swiped.toArray(), [9,7]) - -swiped.unshiftNode(Yallist.Node(99)) -t.similar(swiped.toArray(), [99,9,7]) -swiped.pushNode(Yallist.Node(66)) -t.similar(swiped.toArray(), [99,9,7,66]) - -var e = Yallist() -e.unshiftNode(Yallist.Node(1)) -t.same(e.toArray(), [1]) -e = Yallist() -e.pushNode(Yallist.Node(1)) -t.same(e.toArray(), [1]) - -// steal them back, don't break the lists -swiped.unshiftNode(inserter.head) -t.same(swiped, Yallist(8,99,9,7,66)) -t.same(inserter, Yallist(2,3,5,4,1,8)) -swiped.unshiftNode(inserter.tail) -t.same(inserter, Yallist(2,3,5,4,1)) -t.same(swiped, Yallist(8,8,99,9,7,66)) - - -t.throws(function remove_foreign_node () { - e.removeNode(swiped.head) -}, {}, new Error('removing node which does not belong to this list')) -t.throws(function remove_unlisted_node () { - e.removeNode(Yallist.Node('nope')) -}, {}, new Error('removing node which does not belong to this list')) - -e = Yallist(1,2) -e.removeNode(e.head) -t.same(e, Yallist(2)) -e = Yallist(1,2) -e.removeNode(e.tail) -t.same(e, Yallist(1)) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/yallist.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/yallist.js deleted file mode 100644 index fb60fc28..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/yallist.js +++ /dev/null @@ -1,360 +0,0 @@ -module.exports = Yallist - -Yallist.Node = Node -Yallist.create = Yallist - -function Yallist (list) { - var self = this - if (!(self instanceof Yallist)) { - self = new Yallist() - } - - self.tail = null - self.head = null - self.length = 0 - - if (list && typeof list.forEach === 'function') { - list.forEach(function (item) { - self.push(item) - }) - } else if (arguments.length > 0) { - for (var i = 0, l = arguments.length; i < l; i++) { - self.push(arguments[i]) - } - } - - return self -} - -Yallist.prototype.removeNode = function (node) { - if (node.list !== this) { - throw new Error('removing node which does not belong to this list') - } - - var next = node.next - var prev = node.prev - - if (next) { - next.prev = prev - } - - if (prev) { - prev.next = next - } - - if (node === this.head) { - this.head = next - } - if (node === this.tail) { - this.tail = prev - } - - node.list.length -- - node.next = null - node.prev = null - node.list = null -} - -Yallist.prototype.unshiftNode = function (node) { - if (node === this.head) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var head = this.head - node.list = this - node.next = head - if (head) { - head.prev = node - } - - this.head = node - if (!this.tail) { - this.tail = node - } - this.length ++ -} - -Yallist.prototype.pushNode = function (node) { - if (node === this.tail) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var tail = this.tail - node.list = this - node.prev = tail - if (tail) { - tail.next = node - } - - this.tail = node - if (!this.head) { - this.head = node - } - this.length ++ -} - -Yallist.prototype.push = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - push(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.unshift = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - unshift(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.pop = function () { - if (!this.tail) - return undefined - - var res = this.tail.value - this.tail = this.tail.prev - this.tail.next = null - this.length -- - return res -} - -Yallist.prototype.shift = function () { - if (!this.head) - return undefined - - var res = this.head.value - this.head = this.head.next - this.head.prev = null - this.length -- - return res -} - -Yallist.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.head, i = 0; walker !== null; i++) { - fn.call(thisp, walker.value, i, this) - walker = walker.next - } -} - -Yallist.prototype.forEachReverse = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { - fn.call(thisp, walker.value, i, this) - walker = walker.prev - } -} - -Yallist.prototype.get = function (n) { - for (var i = 0, walker = this.head; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.next - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.getReverse = function (n) { - for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.prev - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.map = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.head; walker !== null; ) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.next - } - return res -} - -Yallist.prototype.mapReverse = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.tail; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.prev - } - return res -} - -Yallist.prototype.reduce = function (fn, initial) { - var acc - var walker = this.head - if (arguments.length > 1) { - acc = initial - } else if (this.head) { - walker = this.head.next - acc = this.head.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = 0; walker !== null; i++) { - acc = fn(acc, walker.value, i) - walker = walker.next - } - - return acc -} - -Yallist.prototype.reduceReverse = function (fn, initial) { - var acc - var walker = this.tail - if (arguments.length > 1) { - acc = initial - } else if (this.tail) { - walker = this.tail.prev - acc = this.tail.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = this.length - 1; walker !== null; i--) { - acc = fn(acc, walker.value, i) - walker = walker.prev - } - - return acc -} - -Yallist.prototype.toArray = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.head; walker !== null; i++) { - arr[i] = walker.value - walker = walker.next - } - return arr -} - -Yallist.prototype.toArrayReverse = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.tail; walker !== null; i++) { - arr[i] = walker.value - walker = walker.prev - } - return arr -} - -Yallist.prototype.slice = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = 0, walker = this.head; walker !== null && i < from; i++) { - walker = walker.next - } - for (; walker !== null && i < to; i++, walker = walker.next) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.sliceReverse = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { - walker = walker.prev - } - for (; walker !== null && i > from; i--, walker = walker.prev) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.reverse = function () { - var head = this.head - var tail = this.tail - for (var walker = head; walker !== null; walker = walker.prev) { - var p = walker.prev - walker.prev = walker.next - walker.next = p - } - this.head = tail - this.tail = head - return this -} - -function push (self, item) { - self.tail = new Node(item, self.tail, null, self) - if (!self.head) { - self.head = self.tail - } - self.length ++ -} - -function unshift (self, item) { - self.head = new Node(item, null, self.head, self) - if (!self.tail) { - self.tail = self.head - } - self.length ++ -} - -function Node (value, prev, next, list) { - if (!(this instanceof Node)) { - return new Node(value, prev, next, list) - } - - this.list = list - this.value = value - - if (prev) { - prev.next = this - this.prev = prev - } else { - this.prev = null - } - - if (next) { - next.prev = this - this.next = next - } else { - this.next = null - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/package.json deleted file mode 100644 index fafc088e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/node_modules/lru-cache/package.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "_args": [ - [ - "lru-cache@^4.0.0", - "/Users/rebecca/code/npm/node_modules/request/node_modules/aws4" - ] - ], - "_from": "lru-cache@>=4.0.0 <5.0.0", - "_id": "lru-cache@4.0.1", - "_inCache": true, - "_installable": true, - "_location": "/request/aws4/lru-cache", - "_nodeVersion": "5.6.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/lru-cache-4.0.1.tgz_1458667372415_0.8005518841091543" - }, - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.7.3", - "_phantomChildren": {}, - "_requested": { - "name": "lru-cache", - "raw": "lru-cache@^4.0.0", - "rawSpec": "^4.0.0", - "scope": null, - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "_requiredBy": [ - "/request/aws4" - ], - "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz", - "_shasum": "1343955edaf2e37d9b9e7ee7241e27c4b9fb72be", - "_shrinkwrap": null, - "_spec": "lru-cache@^4.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/aws4", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter" - }, - "bugs": { - "url": "https://github.com/isaacs/node-lru-cache/issues" - }, - "dependencies": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - }, - "description": "A cache object that deletes the least-recently-used items.", - "devDependencies": { - "standard": "^5.4.1", - "tap": "^5.1.1" - }, - "directories": {}, - "dist": { - "shasum": "1343955edaf2e37d9b9e7ee7241e27c4b9fb72be", - "tarball": "http://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz" - }, - "files": [ - "lib/lru-cache.js" - ], - "gitHead": "6cd8c8a43cf56c585bdb696faae94f9836cb9e28", - "homepage": "https://github.com/isaacs/node-lru-cache#readme", - "keywords": [ - "mru", - "lru", - "cache" - ], - "license": "ISC", - "main": "lib/lru-cache.js", - "maintainers": [ - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - } - ], - "name": "lru-cache", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-lru-cache.git" - }, - "scripts": { - "posttest": "standard test/*.js lib/*.js", - "test": "tap test --branches=100 --functions=100 --lines=100 --statements=100" - }, - "version": "4.0.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/package.json deleted file mode 100644 index 5e7ae9de..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/aws4/package.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "_args": [ - [ - "aws4@^1.2.1", - "/Users/rebecca/code/npm/node_modules/request" - ] - ], - "_from": "aws4@>=1.2.1 <2.0.0", - "_id": "aws4@1.3.2", - "_inCache": true, - "_installable": true, - "_location": "/request/aws4", - "_nodeVersion": "4.3.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/aws4-1.3.2.tgz_1456871543899_0.13955276948399842" - }, - "_npmUser": { - "email": "michael.hart.au@gmail.com", - "name": "hichaelmart" - }, - "_npmVersion": "2.14.21", - "_phantomChildren": {}, - "_requested": { - "name": "aws4", - "raw": "aws4@^1.2.1", - "rawSpec": "^1.2.1", - "scope": null, - "spec": ">=1.2.1 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/request" - ], - "_resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz", - "_shasum": "d39e0bee412ced0e8ed94a23e314f313a95b9fd1", - "_shrinkwrap": null, - "_spec": "aws4@^1.2.1", - "_where": "/Users/rebecca/code/npm/node_modules/request", - "author": { - "email": "michael.hart.au@gmail.com", - "name": "Michael Hart", - "url": "http://github.com/mhart" - }, - "bugs": { - "url": "https://github.com/mhart/aws4/issues" - }, - "dependencies": { - "lru-cache": "^4.0.0" - }, - "description": "Signs and prepares requests using AWS Signature Version 4", - "devDependencies": { - "mocha": "^2.4.5", - "should": "^8.2.2" - }, - "directories": {}, - "dist": { - "shasum": "d39e0bee412ced0e8ed94a23e314f313a95b9fd1", - "tarball": "http://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz" - }, - "gitHead": "e899db3aacbf2a034398f7dd483345dc793e8d72", - "homepage": "https://github.com/mhart/aws4#readme", - "keywords": [ - "amazon", - "aws", - "signature", - "s3", - "ec2", - "autoscaling", - "cloudformation", - "elasticloadbalancing", - "elb", - "elasticbeanstalk", - "cloudsearch", - "dynamodb", - "kinesis", - "lambda", - "glacier", - "sqs", - "sns", - "iam", - "sts", - "ses", - "swf", - "storagegateway", - "datapipeline", - "directconnect", - "redshift", - "opsworks", - "rds", - "monitoring", - "cloudtrail", - "cloudfront", - "codedeploy", - "elasticache", - "elasticmapreduce", - "elastictranscoder", - "emr", - "cloudwatch", - "mobileanalytics", - "cognitoidentity", - "cognitosync", - "cognito", - "containerservice", - "ecs", - "appstream", - "keymanagementservice", - "kms", - "config", - "cloudhsm", - "route53", - "route53domains", - "logs" - ], - "license": "MIT", - "main": "aws4.js", - "maintainers": [ - { - "email": "michael.hart.au@gmail.com", - "name": "hichaelmart" - } - ], - "name": "aws4", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/mhart/aws4.git" - }, - "scripts": { - "test": "mocha ./test/fast.js ./test/slow.js -b -t 100s -R list" - }, - "version": "1.3.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/.jshintrc deleted file mode 100644 index c8ef3ca4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/.jshintrc +++ /dev/null @@ -1,59 +0,0 @@ -{ - "predef": [ ] - , "bitwise": false - , "camelcase": false - , "curly": false - , "eqeqeq": false - , "forin": false - , "immed": false - , "latedef": false - , "noarg": true - , "noempty": true - , "nonew": true - , "plusplus": false - , "quotmark": true - , "regexp": false - , "undef": true - , "unused": true - , "strict": false - , "trailing": true - , "maxlen": 120 - , "asi": true - , "boss": true - , "debug": true - , "eqnull": true - , "esnext": true - , "evil": true - , "expr": true - , "funcscope": false - , "globalstrict": false - , "iterator": false - , "lastsemic": true - , "laxbreak": true - , "laxcomma": true - , "loopfunc": true - , "multistr": false - , "onecase": false - , "proto": false - , "regexdash": false - , "scripturl": true - , "smarttabs": false - , "shadow": false - , "sub": true - , "supernew": false - , "validthis": true - , "browser": true - , "couch": false - , "devel": false - , "dojo": false - , "mootools": false - , "node": true - , "nonstandard": true - , "prototypejs": false - , "rhino": false - , "worker": true - , "wsh": false - , "nomen": false - , "onevar": false - , "passfail": false -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/.npmignore deleted file mode 100644 index 40b878db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/.travis.yml deleted file mode 100644 index 5cb0480b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -sudo: false -language: node_js -node_js: - - '0.10' - - '0.12' - - '4' - - '5' -branches: - only: - - master -notifications: - email: - - rod@vagg.org diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/LICENSE.md deleted file mode 100644 index ccb24797..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/LICENSE.md +++ /dev/null @@ -1,13 +0,0 @@ -The MIT License (MIT) -===================== - -Copyright (c) 2014 bl contributors ----------------------------------- - -*bl contributors listed at * - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/README.md deleted file mode 100644 index f7044db2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/README.md +++ /dev/null @@ -1,200 +0,0 @@ -# bl *(BufferList)* - -[![Build Status](https://travis-ci.org/rvagg/bl.svg?branch=master)](https://travis-ci.org/rvagg/bl) - -**A Node.js Buffer list collector, reader and streamer thingy.** - -[![NPM](https://nodei.co/npm/bl.png?downloads=true&downloadRank=true)](https://nodei.co/npm/bl/) -[![NPM](https://nodei.co/npm-dl/bl.png?months=6&height=3)](https://nodei.co/npm/bl/) - -**bl** is a storage object for collections of Node Buffers, exposing them with the main Buffer readable API. Also works as a duplex stream so you can collect buffers from a stream that emits them and emit buffers to a stream that consumes them! - -The original buffers are kept intact and copies are only done as necessary. Any reads that require the use of a single original buffer will return a slice of that buffer only (which references the same memory as the original buffer). Reads that span buffers perform concatenation as required and return the results transparently. - -```js -const BufferList = require('bl') - -var bl = new BufferList() -bl.append(new Buffer('abcd')) -bl.append(new Buffer('efg')) -bl.append('hi') // bl will also accept & convert Strings -bl.append(new Buffer('j')) -bl.append(new Buffer([ 0x3, 0x4 ])) - -console.log(bl.length) // 12 - -console.log(bl.slice(0, 10).toString('ascii')) // 'abcdefghij' -console.log(bl.slice(3, 10).toString('ascii')) // 'defghij' -console.log(bl.slice(3, 6).toString('ascii')) // 'def' -console.log(bl.slice(3, 8).toString('ascii')) // 'defgh' -console.log(bl.slice(5, 10).toString('ascii')) // 'fghij' - -// or just use toString! -console.log(bl.toString()) // 'abcdefghij\u0003\u0004' -console.log(bl.toString('ascii', 3, 8)) // 'defgh' -console.log(bl.toString('ascii', 5, 10)) // 'fghij' - -// other standard Buffer readables -console.log(bl.readUInt16BE(10)) // 0x0304 -console.log(bl.readUInt16LE(10)) // 0x0403 -``` - -Give it a callback in the constructor and use it just like **[concat-stream](https://github.com/maxogden/node-concat-stream)**: - -```js -const bl = require('bl') - , fs = require('fs') - -fs.createReadStream('README.md') - .pipe(bl(function (err, data) { // note 'new' isn't strictly required - // `data` is a complete Buffer object containing the full data - console.log(data.toString()) - })) -``` - -Note that when you use the *callback* method like this, the resulting `data` parameter is a concatenation of all `Buffer` objects in the list. If you want to avoid the overhead of this concatenation (in cases of extreme performance consciousness), then avoid the *callback* method and just listen to `'end'` instead, like a standard Stream. - -Or to fetch a URL using [hyperquest](https://github.com/substack/hyperquest) (should work with [request](http://github.com/mikeal/request) and even plain Node http too!): -```js -const hyperquest = require('hyperquest') - , bl = require('bl') - , url = 'https://raw.github.com/rvagg/bl/master/README.md' - -hyperquest(url).pipe(bl(function (err, data) { - console.log(data.toString()) -})) -``` - -Or, use it as a readable stream to recompose a list of Buffers to an output source: - -```js -const BufferList = require('bl') - , fs = require('fs') - -var bl = new BufferList() -bl.append(new Buffer('abcd')) -bl.append(new Buffer('efg')) -bl.append(new Buffer('hi')) -bl.append(new Buffer('j')) - -bl.pipe(fs.createWriteStream('gibberish.txt')) -``` - -## API - - * new BufferList([ callback ]) - * bl.length - * bl.append(buffer) - * bl.get(index) - * bl.slice([ start[, end ] ]) - * bl.copy(dest, [ destStart, [ srcStart [, srcEnd ] ] ]) - * bl.duplicate() - * bl.consume(bytes) - * bl.toString([encoding, [ start, [ end ]]]) - * bl.readDoubleBE(), bl.readDoubleLE(), bl.readFloatBE(), bl.readFloatLE(), bl.readInt32BE(), bl.readInt32LE(), bl.readUInt32BE(), bl.readUInt32LE(), bl.readInt16BE(), bl.readInt16LE(), bl.readUInt16BE(), bl.readUInt16LE(), bl.readInt8(), bl.readUInt8() - * Streams - --------------------------------------------------------- - -### new BufferList([ callback | Buffer | Buffer array | BufferList | BufferList array | String ]) -The constructor takes an optional callback, if supplied, the callback will be called with an error argument followed by a reference to the **bl** instance, when `bl.end()` is called (i.e. from a piped stream). This is a convenient method of collecting the entire contents of a stream, particularly when the stream is *chunky*, such as a network stream. - -Normally, no arguments are required for the constructor, but you can initialise the list by passing in a single `Buffer` object or an array of `Buffer` object. - -`new` is not strictly required, if you don't instantiate a new object, it will be done automatically for you so you can create a new instance simply with: - -```js -var bl = require('bl') -var myinstance = bl() - -// equivilant to: - -var BufferList = require('bl') -var myinstance = new BufferList() -``` - --------------------------------------------------------- - -### bl.length -Get the length of the list in bytes. This is the sum of the lengths of all of the buffers contained in the list, minus any initial offset for a semi-consumed buffer at the beginning. Should accurately represent the total number of bytes that can be read from the list. - --------------------------------------------------------- - -### bl.append(Buffer | Buffer array | BufferList | BufferList array | String) -`append(buffer)` adds an additional buffer or BufferList to the internal list. `this` is returned so it can be chained. - --------------------------------------------------------- - -### bl.get(index) -`get()` will return the byte at the specified index. - --------------------------------------------------------- - -### bl.slice([ start, [ end ] ]) -`slice()` returns a new `Buffer` object containing the bytes within the range specified. Both `start` and `end` are optional and will default to the beginning and end of the list respectively. - -If the requested range spans a single internal buffer then a slice of that buffer will be returned which shares the original memory range of that Buffer. If the range spans multiple buffers then copy operations will likely occur to give you a uniform Buffer. - --------------------------------------------------------- - -### bl.copy(dest, [ destStart, [ srcStart [, srcEnd ] ] ]) -`copy()` copies the content of the list in the `dest` buffer, starting from `destStart` and containing the bytes within the range specified with `srcStart` to `srcEnd`. `destStart`, `start` and `end` are optional and will default to the beginning of the `dest` buffer, and the beginning and end of the list respectively. - --------------------------------------------------------- - -### bl.duplicate() -`duplicate()` performs a **shallow-copy** of the list. The internal Buffers remains the same, so if you change the underlying Buffers, the change will be reflected in both the original and the duplicate. This method is needed if you want to call `consume()` or `pipe()` and still keep the original list.Example: - -```js -var bl = new BufferList() - -bl.append('hello') -bl.append(' world') -bl.append('\n') - -bl.duplicate().pipe(process.stdout, { end: false }) - -console.log(bl.toString()) -``` - --------------------------------------------------------- - -### bl.consume(bytes) -`consume()` will shift bytes *off the start of the list*. The number of bytes consumed don't need to line up with the sizes of the internal Buffers—initial offsets will be calculated accordingly in order to give you a consistent view of the data. - --------------------------------------------------------- - -### bl.toString([encoding, [ start, [ end ]]]) -`toString()` will return a string representation of the buffer. The optional `start` and `end` arguments are passed on to `slice()`, while the `encoding` is passed on to `toString()` of the resulting Buffer. See the [Buffer#toString()](http://nodejs.org/docs/latest/api/buffer.html#buffer_buf_tostring_encoding_start_end) documentation for more information. - --------------------------------------------------------- - -### bl.readDoubleBE(), bl.readDoubleLE(), bl.readFloatBE(), bl.readFloatLE(), bl.readInt32BE(), bl.readInt32LE(), bl.readUInt32BE(), bl.readUInt32LE(), bl.readInt16BE(), bl.readInt16LE(), bl.readUInt16BE(), bl.readUInt16LE(), bl.readInt8(), bl.readUInt8() - -All of the standard byte-reading methods of the `Buffer` interface are implemented and will operate across internal Buffer boundaries transparently. - -See the [Buffer](http://nodejs.org/docs/latest/api/buffer.html) documentation for how these work. - --------------------------------------------------------- - -### Streams -**bl** is a Node **[Duplex Stream](http://nodejs.org/docs/latest/api/stream.html#stream_class_stream_duplex)**, so it can be read from and written to like a standard Node stream. You can also `pipe()` to and from a **bl** instance. - --------------------------------------------------------- - -## Contributors - -**bl** is brought to you by the following hackers: - - * [Rod Vagg](https://github.com/rvagg) - * [Matteo Collina](https://github.com/mcollina) - * [Jarett Cruger](https://github.com/jcrugzz) - -======= - - -## License & copyright - -Copyright (c) 2013-2014 bl contributors (listed above). - -bl is licensed under the MIT license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md file for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/bl.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/bl.js deleted file mode 100644 index f585df17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/bl.js +++ /dev/null @@ -1,243 +0,0 @@ -var DuplexStream = require('readable-stream/duplex') - , util = require('util') - - -function BufferList (callback) { - if (!(this instanceof BufferList)) - return new BufferList(callback) - - this._bufs = [] - this.length = 0 - - if (typeof callback == 'function') { - this._callback = callback - - var piper = function piper (err) { - if (this._callback) { - this._callback(err) - this._callback = null - } - }.bind(this) - - this.on('pipe', function onPipe (src) { - src.on('error', piper) - }) - this.on('unpipe', function onUnpipe (src) { - src.removeListener('error', piper) - }) - } else { - this.append(callback) - } - - DuplexStream.call(this) -} - - -util.inherits(BufferList, DuplexStream) - - -BufferList.prototype._offset = function _offset (offset) { - var tot = 0, i = 0, _t - for (; i < this._bufs.length; i++) { - _t = tot + this._bufs[i].length - if (offset < _t) - return [ i, offset - tot ] - tot = _t - } -} - - -BufferList.prototype.append = function append (buf) { - var i = 0 - , newBuf - - if (Array.isArray(buf)) { - for (; i < buf.length; i++) - this.append(buf[i]) - } else if (buf instanceof BufferList) { - // unwrap argument into individual BufferLists - for (; i < buf._bufs.length; i++) - this.append(buf._bufs[i]) - } else if (buf != null) { - // coerce number arguments to strings, since Buffer(number) does - // uninitialized memory allocation - if (typeof buf == 'number') - buf = buf.toString() - - newBuf = Buffer.isBuffer(buf) ? buf : new Buffer(buf) - this._bufs.push(newBuf) - this.length += newBuf.length - } - - return this -} - - -BufferList.prototype._write = function _write (buf, encoding, callback) { - this.append(buf) - - if (typeof callback == 'function') - callback() -} - - -BufferList.prototype._read = function _read (size) { - if (!this.length) - return this.push(null) - - size = Math.min(size, this.length) - this.push(this.slice(0, size)) - this.consume(size) -} - - -BufferList.prototype.end = function end (chunk) { - DuplexStream.prototype.end.call(this, chunk) - - if (this._callback) { - this._callback(null, this.slice()) - this._callback = null - } -} - - -BufferList.prototype.get = function get (index) { - return this.slice(index, index + 1)[0] -} - - -BufferList.prototype.slice = function slice (start, end) { - return this.copy(null, 0, start, end) -} - - -BufferList.prototype.copy = function copy (dst, dstStart, srcStart, srcEnd) { - if (typeof srcStart != 'number' || srcStart < 0) - srcStart = 0 - if (typeof srcEnd != 'number' || srcEnd > this.length) - srcEnd = this.length - if (srcStart >= this.length) - return dst || new Buffer(0) - if (srcEnd <= 0) - return dst || new Buffer(0) - - var copy = !!dst - , off = this._offset(srcStart) - , len = srcEnd - srcStart - , bytes = len - , bufoff = (copy && dstStart) || 0 - , start = off[1] - , l - , i - - // copy/slice everything - if (srcStart === 0 && srcEnd == this.length) { - if (!copy) // slice, just return a full concat - return Buffer.concat(this._bufs) - - // copy, need to copy individual buffers - for (i = 0; i < this._bufs.length; i++) { - this._bufs[i].copy(dst, bufoff) - bufoff += this._bufs[i].length - } - - return dst - } - - // easy, cheap case where it's a subset of one of the buffers - if (bytes <= this._bufs[off[0]].length - start) { - return copy - ? this._bufs[off[0]].copy(dst, dstStart, start, start + bytes) - : this._bufs[off[0]].slice(start, start + bytes) - } - - if (!copy) // a slice, we need something to copy in to - dst = new Buffer(len) - - for (i = off[0]; i < this._bufs.length; i++) { - l = this._bufs[i].length - start - - if (bytes > l) { - this._bufs[i].copy(dst, bufoff, start) - } else { - this._bufs[i].copy(dst, bufoff, start, start + bytes) - break - } - - bufoff += l - bytes -= l - - if (start) - start = 0 - } - - return dst -} - -BufferList.prototype.toString = function toString (encoding, start, end) { - return this.slice(start, end).toString(encoding) -} - -BufferList.prototype.consume = function consume (bytes) { - while (this._bufs.length) { - if (bytes >= this._bufs[0].length) { - bytes -= this._bufs[0].length - this.length -= this._bufs[0].length - this._bufs.shift() - } else { - this._bufs[0] = this._bufs[0].slice(bytes) - this.length -= bytes - break - } - } - return this -} - - -BufferList.prototype.duplicate = function duplicate () { - var i = 0 - , copy = new BufferList() - - for (; i < this._bufs.length; i++) - copy.append(this._bufs[i]) - - return copy -} - - -BufferList.prototype.destroy = function destroy () { - this._bufs.length = 0 - this.length = 0 - this.push(null) -} - - -;(function () { - var methods = { - 'readDoubleBE' : 8 - , 'readDoubleLE' : 8 - , 'readFloatBE' : 4 - , 'readFloatLE' : 4 - , 'readInt32BE' : 4 - , 'readInt32LE' : 4 - , 'readUInt32BE' : 4 - , 'readUInt32LE' : 4 - , 'readInt16BE' : 2 - , 'readInt16LE' : 2 - , 'readUInt16BE' : 2 - , 'readUInt16LE' : 2 - , 'readInt8' : 1 - , 'readUInt8' : 1 - } - - for (var m in methods) { - (function (m) { - BufferList.prototype[m] = function (offset) { - return this.slice(offset, offset + methods[m])[m](0) - } - }(m)) - } -}()) - - -module.exports = BufferList diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.npmignore deleted file mode 100644 index 38344f87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -build/ -test/ -examples/ -fs.js -zlib.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.travis.yml deleted file mode 100644 index 1b821184..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.travis.yml +++ /dev/null @@ -1,52 +0,0 @@ -sudo: false -language: node_js -before_install: - - npm install -g npm@2 - - npm install -g npm -notifications: - email: false -matrix: - fast_finish: true - allow_failures: - - env: TASK=browser BROWSER_NAME=ipad BROWSER_VERSION="6.0..latest" - - env: TASK=browser BROWSER_NAME=iphone BROWSER_VERSION="6.0..latest" - include: - - node_js: '0.8' - env: TASK=test - - node_js: '0.10' - env: TASK=test - - node_js: '0.11' - env: TASK=test - - node_js: '0.12' - env: TASK=test - - node_js: 1 - env: TASK=test - - node_js: 2 - env: TASK=test - - node_js: 3 - env: TASK=test - - node_js: 4 - env: TASK=test - - node_js: 5 - env: TASK=test - - node_js: 5 - env: TASK=browser BROWSER_NAME=android BROWSER_VERSION="4.0..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=ie BROWSER_VERSION="9..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=opera BROWSER_VERSION="11..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=chrome BROWSER_VERSION="-3..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=firefox BROWSER_VERSION="-3..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=ipad BROWSER_VERSION="6.0..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=iphone BROWSER_VERSION="6.0..latest" - - node_js: 5 - env: TASK=browser BROWSER_NAME=safari BROWSER_VERSION="5..latest" -script: "npm run $TASK" -env: - global: - - secure: rE2Vvo7vnjabYNULNyLFxOyt98BoJexDqsiOnfiD6kLYYsiQGfr/sbZkPMOFm9qfQG7pjqx+zZWZjGSswhTt+626C0t/njXqug7Yps4c3dFblzGfreQHp7wNX5TFsvrxd6dAowVasMp61sJcRnB2w8cUzoe3RAYUDHyiHktwqMc= - - secure: g9YINaKAdMatsJ28G9jCGbSaguXCyxSTy+pBO6Ch0Cf57ZLOTka3HqDj8p3nV28LUIHZ3ut5WO43CeYKwt4AUtLpBS3a0dndHdY6D83uY6b2qh5hXlrcbeQTq2cvw2y95F7hm4D1kwrgZ7ViqaKggRcEupAL69YbJnxeUDKWEdI= diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.zuul.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.zuul.yml deleted file mode 100644 index 96d9cfbd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.zuul.yml +++ /dev/null @@ -1 +0,0 @@ -ui: tape diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/LICENSE deleted file mode 100644 index e3d4e695..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Copyright Joyent, Inc. and other Node contributors. All rights reserved. -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/README.md deleted file mode 100644 index 86b95a3b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# readable-stream - -***Node-core v5.8.0 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream) - - -[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/) -[![NPM](https://nodei.co/npm-dl/readable-stream.png?&months=6&height=3)](https://nodei.co/npm/readable-stream/) - - -[![Sauce Test Status](https://saucelabs.com/browser-matrix/readable-stream.svg)](https://saucelabs.com/u/readable-stream) - -```bash -npm install --save readable-stream -``` - -***Node-core streams for userland*** - -This package is a mirror of the Streams2 and Streams3 implementations in -Node-core, including [documentation](doc/stream.markdown). - -If you want to guarantee a stable streams base, regardless of what version of -Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). - -As of version 2.0.0 **readable-stream** uses semantic versioning. - -# Streams WG Team Members - -* **Chris Dickinson** ([@chrisdickinson](https://github.com/chrisdickinson)) <christopher.s.dickinson@gmail.com> - - Release GPG key: 9554F04D7259F04124DE6B476D5A82AC7E37093B -* **Calvin Metcalf** ([@calvinmetcalf](https://github.com/calvinmetcalf)) <calvin.metcalf@gmail.com> - - Release GPG key: F3EF5F62A87FC27A22E643F714CE4FF5015AA242 -* **Rod Vagg** ([@rvagg](https://github.com/rvagg)) <rod@vagg.org> - - Release GPG key: DD8F2338BAE7501E3DD5AC78C273792F7D83545D -* **Sam Newman** ([@sonewman](https://github.com/sonewman)) <newmansam@outlook.com> -* **Mathias Buus** ([@mafintosh](https://github.com/mafintosh)) <mathiasbuus@gmail.com> -* **Domenic Denicola** ([@domenic](https://github.com/domenic)) <d@domenic.me> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/doc/stream.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/doc/stream.markdown deleted file mode 100644 index 0bc3819e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/doc/stream.markdown +++ /dev/null @@ -1,1760 +0,0 @@ -# Stream - - Stability: 2 - Stable - -A stream is an abstract interface implemented by various objects in -Node.js. For example a [request to an HTTP server][http-incoming-message] is a -stream, as is [`process.stdout`][]. Streams are readable, writable, or both. All -streams are instances of [`EventEmitter`][]. - -You can load the Stream base classes by doing `require('stream')`. -There are base classes provided for [Readable][] streams, [Writable][] -streams, [Duplex][] streams, and [Transform][] streams. - -This document is split up into 3 sections: - -1. The first section explains the parts of the API that you need to be - aware of to use streams in your programs. -2. The second section explains the parts of the API that you need to - use if you implement your own custom streams yourself. The API is designed to - make this easy for you to do. -3. The third section goes into more depth about how streams work, - including some of the internal mechanisms and functions that you - should probably not modify unless you definitely know what you are - doing. - - -## API for Stream Consumers - - - -Streams can be either [Readable][], [Writable][], or both ([Duplex][]). - -All streams are EventEmitters, but they also have other custom methods -and properties depending on whether they are Readable, Writable, or -Duplex. - -If a stream is both Readable and Writable, then it implements all of -the methods and events. So, a [Duplex][] or [Transform][] stream is -fully described by this API, though their implementation may be -somewhat different. - -It is not necessary to implement Stream interfaces in order to consume -streams in your programs. If you **are** implementing streaming -interfaces in your own program, please also refer to -[API for Stream Implementors][]. - -Almost all Node.js programs, no matter how simple, use Streams in some -way. Here is an example of using Streams in an Node.js program: - -```js -const http = require('http'); - -var server = http.createServer( (req, res) => { - // req is an http.IncomingMessage, which is a Readable Stream - // res is an http.ServerResponse, which is a Writable Stream - - var body = ''; - // we want to get the data as utf8 strings - // If you don't set an encoding, then you'll get Buffer objects - req.setEncoding('utf8'); - - // Readable streams emit 'data' events once a listener is added - req.on('data', (chunk) => { - body += chunk; - }); - - // the end event tells you that you have entire body - req.on('end', () => { - try { - var data = JSON.parse(body); - } catch (er) { - // uh oh! bad json! - res.statusCode = 400; - return res.end(`error: ${er.message}`); - } - - // write back something interesting to the user: - res.write(typeof data); - res.end(); - }); -}); - -server.listen(1337); - -// $ curl localhost:1337 -d '{}' -// object -// $ curl localhost:1337 -d '"foo"' -// string -// $ curl localhost:1337 -d 'not json' -// error: Unexpected token o -``` - -### Class: stream.Duplex - -Duplex streams are streams that implement both the [Readable][] and -[Writable][] interfaces. - -Examples of Duplex streams include: - -* [TCP sockets][] -* [zlib streams][zlib] -* [crypto streams][crypto] - -### Class: stream.Readable - - - -The Readable stream interface is the abstraction for a *source* of -data that you are reading from. In other words, data comes *out* of a -Readable stream. - -A Readable stream will not start emitting data until you indicate that -you are ready to receive it. - -Readable streams have two "modes": a **flowing mode** and a **paused -mode**. When in flowing mode, data is read from the underlying system -and provided to your program as fast as possible. In paused mode, you -must explicitly call [`stream.read()`][stream-read] to get chunks of data out. -Streams start out in paused mode. - -**Note**: If no data event handlers are attached, and there are no -[`stream.pipe()`][] destinations, and the stream is switched into flowing -mode, then data will be lost. - -You can switch to flowing mode by doing any of the following: - -* Adding a [`'data'`][] event handler to listen for data. -* Calling the [`stream.resume()`][stream-resume] method to explicitly open the - flow. -* Calling the [`stream.pipe()`][] method to send the data to a [Writable][]. - -You can switch back to paused mode by doing either of the following: - -* If there are no pipe destinations, by calling the - [`stream.pause()`][stream-pause] method. -* If there are pipe destinations, by removing any [`'data'`][] event - handlers, and removing all pipe destinations by calling the - [`stream.unpipe()`][] method. - -Note that, for backwards compatibility reasons, removing [`'data'`][] -event handlers will **not** automatically pause the stream. Also, if -there are piped destinations, then calling [`stream.pause()`][stream-pause] will -not guarantee that the stream will *remain* paused once those -destinations drain and ask for more data. - -Examples of readable streams include: - -* [HTTP responses, on the client][http-incoming-message] -* [HTTP requests, on the server][http-incoming-message] -* [fs read streams][] -* [zlib streams][zlib] -* [crypto streams][crypto] -* [TCP sockets][] -* [child process stdout and stderr][] -* [`process.stdin`][] - -#### Event: 'close' - -Emitted when the stream and any of its underlying resources (a file -descriptor, for example) have been closed. The event indicates that -no more events will be emitted, and no further computation will occur. - -Not all streams will emit the `'close'` event. - -#### Event: 'data' - -* `chunk` {Buffer|String} The chunk of data. - -Attaching a `'data'` event listener to a stream that has not been -explicitly paused will switch the stream into flowing mode. Data will -then be passed as soon as it is available. - -If you just want to get all the data out of the stream as fast as -possible, this is the best way to do so. - -```js -var readable = getReadableStreamSomehow(); -readable.on('data', (chunk) => { - console.log('got %d bytes of data', chunk.length); -}); -``` - -#### Event: 'end' - -This event fires when there will be no more data to read. - -Note that the `'end'` event **will not fire** unless the data is -completely consumed. This can be done by switching into flowing mode, -or by calling [`stream.read()`][stream-read] repeatedly until you get to the -end. - -```js -var readable = getReadableStreamSomehow(); -readable.on('data', (chunk) => { - console.log('got %d bytes of data', chunk.length); -}); -readable.on('end', () => { - console.log('there will be no more data.'); -}); -``` - -#### Event: 'error' - -* {Error Object} - -Emitted if there was an error receiving data. - -#### Event: 'readable' - -When a chunk of data can be read from the stream, it will emit a -`'readable'` event. - -In some cases, listening for a `'readable'` event will cause some data -to be read into the internal buffer from the underlying system, if it -hadn't already. - -```javascript -var readable = getReadableStreamSomehow(); -readable.on('readable', () => { - // there is some data to read now -}); -``` - -Once the internal buffer is drained, a `'readable'` event will fire -again when more data is available. - -The `'readable'` event is not emitted in the "flowing" mode with the -sole exception of the last one, on end-of-stream. - -The `'readable'` event indicates that the stream has new information: -either new data is available or the end of the stream has been reached. -In the former case, [`stream.read()`][stream-read] will return that data. In the -latter case, [`stream.read()`][stream-read] will return null. For instance, in -the following example, `foo.txt` is an empty file: - -```js -const fs = require('fs'); -var rr = fs.createReadStream('foo.txt'); -rr.on('readable', () => { - console.log('readable:', rr.read()); -}); -rr.on('end', () => { - console.log('end'); -}); -``` - -The output of running this script is: - -``` -$ node test.js -readable: null -end -``` - -#### readable.isPaused() - -* Return: {Boolean} - -This method returns whether or not the `readable` has been **explicitly** -paused by client code (using [`stream.pause()`][stream-pause] without a -corresponding [`stream.resume()`][stream-resume]). - -```js -var readable = new stream.Readable - -readable.isPaused() // === false -readable.pause() -readable.isPaused() // === true -readable.resume() -readable.isPaused() // === false -``` - -#### readable.pause() - -* Return: `this` - -This method will cause a stream in flowing mode to stop emitting -[`'data'`][] events, switching out of flowing mode. Any data that becomes -available will remain in the internal buffer. - -```js -var readable = getReadableStreamSomehow(); -readable.on('data', (chunk) => { - console.log('got %d bytes of data', chunk.length); - readable.pause(); - console.log('there will be no more data for 1 second'); - setTimeout(() => { - console.log('now data will start flowing again'); - readable.resume(); - }, 1000); -}); -``` - -#### readable.pipe(destination[, options]) - -* `destination` {stream.Writable} The destination for writing data -* `options` {Object} Pipe options - * `end` {Boolean} End the writer when the reader ends. Default = `true` - -This method pulls all the data out of a readable stream, and writes it -to the supplied destination, automatically managing the flow so that -the destination is not overwhelmed by a fast readable stream. - -Multiple destinations can be piped to safely. - -```js -var readable = getReadableStreamSomehow(); -var writable = fs.createWriteStream('file.txt'); -// All the data from readable goes into 'file.txt' -readable.pipe(writable); -``` - -This function returns the destination stream, so you can set up pipe -chains like so: - -```js -var r = fs.createReadStream('file.txt'); -var z = zlib.createGzip(); -var w = fs.createWriteStream('file.txt.gz'); -r.pipe(z).pipe(w); -``` - -For example, emulating the Unix `cat` command: - -```js -process.stdin.pipe(process.stdout); -``` - -By default [`stream.end()`][stream-end] is called on the destination when the -source stream emits [`'end'`][], so that `destination` is no longer writable. -Pass `{ end: false }` as `options` to keep the destination stream open. - -This keeps `writer` open so that "Goodbye" can be written at the -end. - -```js -reader.pipe(writer, { end: false }); -reader.on('end', () => { - writer.end('Goodbye\n'); -}); -``` - -Note that [`process.stderr`][] and [`process.stdout`][] are never closed until -the process exits, regardless of the specified options. - -#### readable.read([size]) - -* `size` {Number} Optional argument to specify how much data to read. -* Return {String|Buffer|Null} - -The `read()` method pulls some data out of the internal buffer and -returns it. If there is no data available, then it will return -`null`. - -If you pass in a `size` argument, then it will return that many -bytes. If `size` bytes are not available, then it will return `null`, -unless we've ended, in which case it will return the data remaining -in the buffer. - -If you do not specify a `size` argument, then it will return all the -data in the internal buffer. - -This method should only be called in paused mode. In flowing mode, -this method is called automatically until the internal buffer is -drained. - -```js -var readable = getReadableStreamSomehow(); -readable.on('readable', () => { - var chunk; - while (null !== (chunk = readable.read())) { - console.log('got %d bytes of data', chunk.length); - } -}); -``` - -If this method returns a data chunk, then it will also trigger the -emission of a [`'data'`][] event. - -Note that calling [`stream.read([size])`][stream-read] after the [`'end'`][] -event has been triggered will return `null`. No runtime error will be raised. - -#### readable.resume() - -* Return: `this` - -This method will cause the readable stream to resume emitting [`'data'`][] -events. - -This method will switch the stream into flowing mode. If you do *not* -want to consume the data from a stream, but you *do* want to get to -its [`'end'`][] event, you can call [`stream.resume()`][stream-resume] to open -the flow of data. - -```js -var readable = getReadableStreamSomehow(); -readable.resume(); -readable.on('end', () => { - console.log('got to the end, but did not read anything'); -}); -``` - -#### readable.setEncoding(encoding) - -* `encoding` {String} The encoding to use. -* Return: `this` - -Call this function to cause the stream to return strings of the specified -encoding instead of Buffer objects. For example, if you do -`readable.setEncoding('utf8')`, then the output data will be interpreted as -UTF-8 data, and returned as strings. If you do `readable.setEncoding('hex')`, -then the data will be encoded in hexadecimal string format. - -This properly handles multi-byte characters that would otherwise be -potentially mangled if you simply pulled the Buffers directly and -called [`buf.toString(encoding)`][] on them. If you want to read the data -as strings, always use this method. - -Also you can disable any encoding at all with `readable.setEncoding(null)`. -This approach is very useful if you deal with binary data or with large -multi-byte strings spread out over multiple chunks. - -```js -var readable = getReadableStreamSomehow(); -readable.setEncoding('utf8'); -readable.on('data', (chunk) => { - assert.equal(typeof chunk, 'string'); - console.log('got %d characters of string data', chunk.length); -}); -``` - -#### readable.unpipe([destination]) - -* `destination` {stream.Writable} Optional specific stream to unpipe - -This method will remove the hooks set up for a previous [`stream.pipe()`][] -call. - -If the destination is not specified, then all pipes are removed. - -If the destination is specified, but no pipe is set up for it, then -this is a no-op. - -```js -var readable = getReadableStreamSomehow(); -var writable = fs.createWriteStream('file.txt'); -// All the data from readable goes into 'file.txt', -// but only for the first second -readable.pipe(writable); -setTimeout(() => { - console.log('stop writing to file.txt'); - readable.unpipe(writable); - console.log('manually close the file stream'); - writable.end(); -}, 1000); -``` - -#### readable.unshift(chunk) - -* `chunk` {Buffer|String} Chunk of data to unshift onto the read queue - -This is useful in certain cases where a stream is being consumed by a -parser, which needs to "un-consume" some data that it has -optimistically pulled out of the source, so that the stream can be -passed on to some other party. - -Note that `stream.unshift(chunk)` cannot be called after the [`'end'`][] event -has been triggered; a runtime error will be raised. - -If you find that you must often call `stream.unshift(chunk)` in your -programs, consider implementing a [Transform][] stream instead. (See [API -for Stream Implementors][].) - -```js -// Pull off a header delimited by \n\n -// use unshift() if we get too much -// Call the callback with (error, header, stream) -const StringDecoder = require('string_decoder').StringDecoder; -function parseHeader(stream, callback) { - stream.on('error', callback); - stream.on('readable', onReadable); - var decoder = new StringDecoder('utf8'); - var header = ''; - function onReadable() { - var chunk; - while (null !== (chunk = stream.read())) { - var str = decoder.write(chunk); - if (str.match(/\n\n/)) { - // found the header boundary - var split = str.split(/\n\n/); - header += split.shift(); - var remaining = split.join('\n\n'); - var buf = new Buffer(remaining, 'utf8'); - if (buf.length) - stream.unshift(buf); - stream.removeListener('error', callback); - stream.removeListener('readable', onReadable); - // now the body of the message can be read from the stream. - callback(null, header, stream); - } else { - // still reading the header. - header += str; - } - } - } -} -``` - -Note that, unlike [`stream.push(chunk)`][stream-push], `stream.unshift(chunk)` -will not end the reading process by resetting the internal reading state of the -stream. This can cause unexpected results if `unshift()` is called during a -read (i.e. from within a [`stream._read()`][stream-_read] implementation on a -custom stream). Following the call to `unshift()` with an immediate -[`stream.push('')`][stream-push] will reset the reading state appropriately, -however it is best to simply avoid calling `unshift()` while in the process of -performing a read. - -#### readable.wrap(stream) - -* `stream` {Stream} An "old style" readable stream - -Versions of Node.js prior to v0.10 had streams that did not implement the -entire Streams API as it is today. (See [Compatibility][] for -more information.) - -If you are using an older Node.js library that emits [`'data'`][] events and -has a [`stream.pause()`][stream-pause] method that is advisory only, then you -can use the `wrap()` method to create a [Readable][] stream that uses the old -stream as its data source. - -You will very rarely ever need to call this function, but it exists -as a convenience for interacting with old Node.js programs and libraries. - -For example: - -```js -const OldReader = require('./old-api-module.js').OldReader; -const Readable = require('stream').Readable; -const oreader = new OldReader; -const myReader = new Readable().wrap(oreader); - -myReader.on('readable', () => { - myReader.read(); // etc. -}); -``` - -### Class: stream.Transform - -Transform streams are [Duplex][] streams where the output is in some way -computed from the input. They implement both the [Readable][] and -[Writable][] interfaces. - -Examples of Transform streams include: - -* [zlib streams][zlib] -* [crypto streams][crypto] - -### Class: stream.Writable - - - -The Writable stream interface is an abstraction for a *destination* -that you are writing data *to*. - -Examples of writable streams include: - -* [HTTP requests, on the client][] -* [HTTP responses, on the server][] -* [fs write streams][] -* [zlib streams][zlib] -* [crypto streams][crypto] -* [TCP sockets][] -* [child process stdin][] -* [`process.stdout`][], [`process.stderr`][] - -#### Event: 'drain' - -If a [`stream.write(chunk)`][stream-write] call returns `false`, then the -`'drain'` event will indicate when it is appropriate to begin writing more data -to the stream. - -```js -// Write the data to the supplied writable stream one million times. -// Be attentive to back-pressure. -function writeOneMillionTimes(writer, data, encoding, callback) { - var i = 1000000; - write(); - function write() { - var ok = true; - do { - i -= 1; - if (i === 0) { - // last time! - writer.write(data, encoding, callback); - } else { - // see if we should continue, or wait - // don't pass the callback, because we're not done yet. - ok = writer.write(data, encoding); - } - } while (i > 0 && ok); - if (i > 0) { - // had to stop early! - // write some more once it drains - writer.once('drain', write); - } - } -} -``` - -#### Event: 'error' - -* {Error} - -Emitted if there was an error when writing or piping data. - -#### Event: 'finish' - -When the [`stream.end()`][stream-end] method has been called, and all data has -been flushed to the underlying system, this event is emitted. - -```javascript -var writer = getWritableStreamSomehow(); -for (var i = 0; i < 100; i ++) { - writer.write('hello, #${i}!\n'); -} -writer.end('this is the end\n'); -writer.on('finish', () => { - console.error('all writes are now complete.'); -}); -``` - -#### Event: 'pipe' - -* `src` {stream.Readable} source stream that is piping to this writable - -This is emitted whenever the [`stream.pipe()`][] method is called on a readable -stream, adding this writable to its set of destinations. - -```js -var writer = getWritableStreamSomehow(); -var reader = getReadableStreamSomehow(); -writer.on('pipe', (src) => { - console.error('something is piping into the writer'); - assert.equal(src, reader); -}); -reader.pipe(writer); -``` - -#### Event: 'unpipe' - -* `src` {[Readable][] Stream} The source stream that - [unpiped][`stream.unpipe()`] this writable - -This is emitted whenever the [`stream.unpipe()`][] method is called on a -readable stream, removing this writable from its set of destinations. - -```js -var writer = getWritableStreamSomehow(); -var reader = getReadableStreamSomehow(); -writer.on('unpipe', (src) => { - console.error('something has stopped piping into the writer'); - assert.equal(src, reader); -}); -reader.pipe(writer); -reader.unpipe(writer); -``` - -#### writable.cork() - -Forces buffering of all writes. - -Buffered data will be flushed either at [`stream.uncork()`][] or at -[`stream.end()`][stream-end] call. - -#### writable.end([chunk][, encoding][, callback]) - -* `chunk` {String|Buffer} Optional data to write -* `encoding` {String} The encoding, if `chunk` is a String -* `callback` {Function} Optional callback for when the stream is finished - -Call this method when no more data will be written to the stream. If supplied, -the callback is attached as a listener on the [`'finish'`][] event. - -Calling [`stream.write()`][stream-write] after calling -[`stream.end()`][stream-end] will raise an error. - -```js -// write 'hello, ' and then end with 'world!' -var file = fs.createWriteStream('example.txt'); -file.write('hello, '); -file.end('world!'); -// writing more now is not allowed! -``` - -#### writable.setDefaultEncoding(encoding) - -* `encoding` {String} The new default encoding - -Sets the default encoding for a writable stream. - -#### writable.uncork() - -Flush all data, buffered since [`stream.cork()`][] call. - -#### writable.write(chunk[, encoding][, callback]) - -* `chunk` {String|Buffer} The data to write -* `encoding` {String} The encoding, if `chunk` is a String -* `callback` {Function} Callback for when this chunk of data is flushed -* Returns: {Boolean} `true` if the data was handled completely. - -This method writes some data to the underlying system, and calls the -supplied callback once the data has been fully handled. - -The return value indicates if you should continue writing right now. -If the data had to be buffered internally, then it will return -`false`. Otherwise, it will return `true`. - -This return value is strictly advisory. You MAY continue to write, -even if it returns `false`. However, writes will be buffered in -memory, so it is best not to do this excessively. Instead, wait for -the [`'drain'`][] event before writing more data. - - -## API for Stream Implementors - - - -To implement any sort of stream, the pattern is the same: - -1. Extend the appropriate parent class in your own subclass. (The - [`util.inherits()`][] method is particularly helpful for this.) -2. Call the appropriate parent class constructor in your constructor, - to be sure that the internal mechanisms are set up properly. -3. Implement one or more specific methods, as detailed below. - -The class to extend and the method(s) to implement depend on the sort -of stream class you are writing: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            -

            Use-case

            -
            -

            Class

            -
            -

            Method(s) to implement

            -
            -

            Reading only

            -
            -

            [Readable](#stream_class_stream_readable_1)

            -
            -

            [_read][stream-_read]

            -
            -

            Writing only

            -
            -

            [Writable](#stream_class_stream_writable_1)

            -
            -

            [_write][stream-_write], [_writev][stream-_writev]

            -
            -

            Reading and writing

            -
            -

            [Duplex](#stream_class_stream_duplex_1)

            -
            -

            [_read][stream-_read], [_write][stream-_write], [_writev][stream-_writev]

            -
            -

            Operate on written data, then read the result

            -
            -

            [Transform](#stream_class_stream_transform_1)

            -
            -

            [_transform][stream-_transform], [_flush][stream-_flush]

            -
            - -In your implementation code, it is very important to never call the methods -described in [API for Stream Consumers][]. Otherwise, you can potentially cause -adverse side effects in programs that consume your streaming interfaces. - -### Class: stream.Duplex - - - -A "duplex" stream is one that is both Readable and Writable, such as a TCP -socket connection. - -Note that `stream.Duplex` is an abstract class designed to be extended -with an underlying implementation of the [`stream._read(size)`][stream-_read] -and [`stream._write(chunk, encoding, callback)`][stream-_write] methods as you -would with a Readable or Writable stream class. - -Since JavaScript doesn't have multiple prototypal inheritance, this class -prototypally inherits from Readable, and then parasitically from Writable. It is -thus up to the user to implement both the low-level -[`stream._read(n)`][stream-_read] method as well as the low-level -[`stream._write(chunk, encoding, callback)`][stream-_write] method on extension -duplex classes. - -#### new stream.Duplex(options) - -* `options` {Object} Passed to both Writable and Readable - constructors. Also has the following fields: - * `allowHalfOpen` {Boolean} Default = `true`. If set to `false`, then - the stream will automatically end the readable side when the - writable side ends and vice versa. - * `readableObjectMode` {Boolean} Default = `false`. Sets `objectMode` - for readable side of the stream. Has no effect if `objectMode` - is `true`. - * `writableObjectMode` {Boolean} Default = `false`. Sets `objectMode` - for writable side of the stream. Has no effect if `objectMode` - is `true`. - -In classes that extend the Duplex class, make sure to call the -constructor so that the buffering settings can be properly -initialized. - -### Class: stream.PassThrough - -This is a trivial implementation of a [Transform][] stream that simply -passes the input bytes across to the output. Its purpose is mainly -for examples and testing, but there are occasionally use cases where -it can come in handy as a building block for novel sorts of streams. - -### Class: stream.Readable - - - -`stream.Readable` is an abstract class designed to be extended with an -underlying implementation of the [`stream._read(size)`][stream-_read] method. - -Please see [API for Stream Consumers][] for how to consume -streams in your programs. What follows is an explanation of how to -implement Readable streams in your programs. - -#### new stream.Readable([options]) - -* `options` {Object} - * `highWaterMark` {Number} The maximum number of bytes to store in - the internal buffer before ceasing to read from the underlying - resource. Default = `16384` (16kb), or `16` for `objectMode` streams - * `encoding` {String} If specified, then buffers will be decoded to - strings using the specified encoding. Default = `null` - * `objectMode` {Boolean} Whether this stream should behave - as a stream of objects. Meaning that [`stream.read(n)`][stream-read] returns - a single value instead of a Buffer of size n. Default = `false` - * `read` {Function} Implementation for the [`stream._read()`][stream-_read] - method. - -In classes that extend the Readable class, make sure to call the -Readable constructor so that the buffering settings can be properly -initialized. - -#### readable.\_read(size) - -* `size` {Number} Number of bytes to read asynchronously - -Note: **Implement this method, but do NOT call it directly.** - -This method is prefixed with an underscore because it is internal to the -class that defines it and should only be called by the internal Readable -class methods. All Readable stream implementations must provide a \_read -method to fetch data from the underlying resource. - -When `_read()` is called, if data is available from the resource, the `_read()` -implementation should start pushing that data into the read queue by calling -[`this.push(dataChunk)`][stream-push]. `_read()` should continue reading from -the resource and pushing data until push returns `false`, at which point it -should stop reading from the resource. Only when `_read()` is called again after -it has stopped should it start reading more data from the resource and pushing -that data onto the queue. - -Note: once the `_read()` method is called, it will not be called again until -the [`stream.push()`][stream-push] method is called. - -The `size` argument is advisory. Implementations where a "read" is a -single call that returns data can use this to know how much data to -fetch. Implementations where that is not relevant, such as TCP or -TLS, may ignore this argument, and simply provide data whenever it -becomes available. There is no need, for example to "wait" until -`size` bytes are available before calling [`stream.push(chunk)`][stream-push]. - -#### readable.push(chunk[, encoding]) - - -* `chunk` {Buffer|Null|String} Chunk of data to push into the read queue -* `encoding` {String} Encoding of String chunks. Must be a valid - Buffer encoding, such as `'utf8'` or `'ascii'` -* return {Boolean} Whether or not more pushes should be performed - -Note: **This method should be called by Readable implementors, NOT -by consumers of Readable streams.** - -If a value other than null is passed, The `push()` method adds a chunk of data -into the queue for subsequent stream processors to consume. If `null` is -passed, it signals the end of the stream (EOF), after which no more data -can be written. - -The data added with `push()` can be pulled out by calling the -[`stream.read()`][stream-read] method when the [`'readable'`][] event fires. - -This API is designed to be as flexible as possible. For example, -you may be wrapping a lower-level source which has some sort of -pause/resume mechanism, and a data callback. In those cases, you -could wrap the low-level source object by doing something like this: - -```js -// source is an object with readStop() and readStart() methods, -// and an `ondata` member that gets called when it has data, and -// an `onend` member that gets called when the data is over. - -util.inherits(SourceWrapper, Readable); - -function SourceWrapper(options) { - Readable.call(this, options); - - this._source = getLowlevelSourceObject(); - - // Every time there's data, we push it into the internal buffer. - this._source.ondata = (chunk) => { - // if push() returns false, then we need to stop reading from source - if (!this.push(chunk)) - this._source.readStop(); - }; - - // When the source ends, we push the EOF-signaling `null` chunk - this._source.onend = () => { - this.push(null); - }; -} - -// _read will be called when the stream wants to pull more data in -// the advisory size argument is ignored in this case. -SourceWrapper.prototype._read = function(size) { - this._source.readStart(); -}; -``` - -#### Example: A Counting Stream - - - -This is a basic example of a Readable stream. It emits the numerals -from 1 to 1,000,000 in ascending order, and then ends. - -```js -const Readable = require('stream').Readable; -const util = require('util'); -util.inherits(Counter, Readable); - -function Counter(opt) { - Readable.call(this, opt); - this._max = 1000000; - this._index = 1; -} - -Counter.prototype._read = function() { - var i = this._index++; - if (i > this._max) - this.push(null); - else { - var str = '' + i; - var buf = new Buffer(str, 'ascii'); - this.push(buf); - } -}; -``` - -#### Example: SimpleProtocol v1 (Sub-optimal) - -This is similar to the `parseHeader` function described -[here](#stream_readable_unshift_chunk), but implemented as a custom stream. -Also, note that this implementation does not convert the incoming data to a -string. - -However, this would be better implemented as a [Transform][] stream. See -[SimpleProtocol v2][] for a better implementation. - -```js -// A parser for a simple data protocol. -// The "header" is a JSON object, followed by 2 \n characters, and -// then a message body. -// -// NOTE: This can be done more simply as a Transform stream! -// Using Readable directly for this is sub-optimal. See the -// alternative example below under the Transform section. - -const Readable = require('stream').Readable; -const util = require('util'); - -util.inherits(SimpleProtocol, Readable); - -function SimpleProtocol(source, options) { - if (!(this instanceof SimpleProtocol)) - return new SimpleProtocol(source, options); - - Readable.call(this, options); - this._inBody = false; - this._sawFirstCr = false; - - // source is a readable stream, such as a socket or file - this._source = source; - - var self = this; - source.on('end', () => { - self.push(null); - }); - - // give it a kick whenever the source is readable - // read(0) will not consume any bytes - source.on('readable', () => { - self.read(0); - }); - - this._rawHeader = []; - this.header = null; -} - -SimpleProtocol.prototype._read = function(n) { - if (!this._inBody) { - var chunk = this._source.read(); - - // if the source doesn't have data, we don't have data yet. - if (chunk === null) - return this.push(''); - - // check if the chunk has a \n\n - var split = -1; - for (var i = 0; i < chunk.length; i++) { - if (chunk[i] === 10) { // '\n' - if (this._sawFirstCr) { - split = i; - break; - } else { - this._sawFirstCr = true; - } - } else { - this._sawFirstCr = false; - } - } - - if (split === -1) { - // still waiting for the \n\n - // stash the chunk, and try again. - this._rawHeader.push(chunk); - this.push(''); - } else { - this._inBody = true; - var h = chunk.slice(0, split); - this._rawHeader.push(h); - var header = Buffer.concat(this._rawHeader).toString(); - try { - this.header = JSON.parse(header); - } catch (er) { - this.emit('error', new Error('invalid simple protocol data')); - return; - } - // now, because we got some extra data, unshift the rest - // back into the read queue so that our consumer will see it. - var b = chunk.slice(split); - this.unshift(b); - // calling unshift by itself does not reset the reading state - // of the stream; since we're inside _read, doing an additional - // push('') will reset the state appropriately. - this.push(''); - - // and let them know that we are done parsing the header. - this.emit('header', this.header); - } - } else { - // from there on, just provide the data to our consumer. - // careful not to push(null), since that would indicate EOF. - var chunk = this._source.read(); - if (chunk) this.push(chunk); - } -}; - -// Usage: -// var parser = new SimpleProtocol(source); -// Now parser is a readable stream that will emit 'header' -// with the parsed header data. -``` - -### Class: stream.Transform - -A "transform" stream is a duplex stream where the output is causally -connected in some way to the input, such as a [zlib][] stream or a -[crypto][] stream. - -There is no requirement that the output be the same size as the input, -the same number of chunks, or arrive at the same time. For example, a -Hash stream will only ever have a single chunk of output which is -provided when the input is ended. A zlib stream will produce output -that is either much smaller or much larger than its input. - -Rather than implement the [`stream._read()`][stream-_read] and -[`stream._write()`][stream-_write] methods, Transform classes must implement the -[`stream._transform()`][stream-_transform] method, and may optionally -also implement the [`stream._flush()`][stream-_flush] method. (See below.) - -#### new stream.Transform([options]) - -* `options` {Object} Passed to both Writable and Readable - constructors. Also has the following fields: - * `transform` {Function} Implementation for the - [`stream._transform()`][stream-_transform] method. - * `flush` {Function} Implementation for the [`stream._flush()`][stream-_flush] - method. - -In classes that extend the Transform class, make sure to call the -constructor so that the buffering settings can be properly -initialized. - -#### Events: 'finish' and 'end' - -The [`'finish'`][] and [`'end'`][] events are from the parent Writable -and Readable classes respectively. The `'finish'` event is fired after -[`stream.end()`][stream-end] is called and all chunks have been processed by -[`stream._transform()`][stream-_transform], `'end'` is fired after all data has -been output which is after the callback in [`stream._flush()`][stream-_flush] -has been called. - -#### transform.\_flush(callback) - -* `callback` {Function} Call this function (optionally with an error - argument) when you are done flushing any remaining data. - -Note: **This function MUST NOT be called directly.** It MAY be implemented -by child classes, and if so, will be called by the internal Transform -class methods only. - -In some cases, your transform operation may need to emit a bit more -data at the end of the stream. For example, a `Zlib` compression -stream will store up some internal state so that it can optimally -compress the output. At the end, however, it needs to do the best it -can with what is left, so that the data will be complete. - -In those cases, you can implement a `_flush()` method, which will be -called at the very end, after all the written data is consumed, but -before emitting [`'end'`][] to signal the end of the readable side. Just -like with [`stream._transform()`][stream-_transform], call -`transform.push(chunk)` zero or more times, as appropriate, and call `callback` -when the flush operation is complete. - -This method is prefixed with an underscore because it is internal to -the class that defines it, and should not be called directly by user -programs. However, you **are** expected to override this method in -your own extension classes. - -#### transform.\_transform(chunk, encoding, callback) - -* `chunk` {Buffer|String} The chunk to be transformed. Will **always** - be a buffer unless the `decodeStrings` option was set to `false`. -* `encoding` {String} If the chunk is a string, then this is the - encoding type. If chunk is a buffer, then this is the special - value - 'buffer', ignore it in this case. -* `callback` {Function} Call this function (optionally with an error - argument and data) when you are done processing the supplied chunk. - -Note: **This function MUST NOT be called directly.** It should be -implemented by child classes, and called by the internal Transform -class methods only. - -All Transform stream implementations must provide a `_transform()` -method to accept input and produce output. - -`_transform()` should do whatever has to be done in this specific -Transform class, to handle the bytes being written, and pass them off -to the readable portion of the interface. Do asynchronous I/O, -process things, and so on. - -Call `transform.push(outputChunk)` 0 or more times to generate output -from this input chunk, depending on how much data you want to output -as a result of this chunk. - -Call the callback function only when the current chunk is completely -consumed. Note that there may or may not be output as a result of any -particular input chunk. If you supply a second argument to the callback -it will be passed to the push method. In other words the following are -equivalent: - -```js -transform.prototype._transform = function (data, encoding, callback) { - this.push(data); - callback(); -}; - -transform.prototype._transform = function (data, encoding, callback) { - callback(null, data); -}; -``` - -This method is prefixed with an underscore because it is internal to -the class that defines it, and should not be called directly by user -programs. However, you **are** expected to override this method in -your own extension classes. - -#### Example: `SimpleProtocol` parser v2 - -The example [here](#stream_example_simpleprotocol_v1_sub_optimal) of a simple -protocol parser can be implemented simply by using the higher level -[Transform][] stream class, similar to the `parseHeader` and `SimpleProtocol -v1` examples. - -In this example, rather than providing the input as an argument, it -would be piped into the parser, which is a more idiomatic Node.js stream -approach. - -```javascript -const util = require('util'); -const Transform = require('stream').Transform; -util.inherits(SimpleProtocol, Transform); - -function SimpleProtocol(options) { - if (!(this instanceof SimpleProtocol)) - return new SimpleProtocol(options); - - Transform.call(this, options); - this._inBody = false; - this._sawFirstCr = false; - this._rawHeader = []; - this.header = null; -} - -SimpleProtocol.prototype._transform = function(chunk, encoding, done) { - if (!this._inBody) { - // check if the chunk has a \n\n - var split = -1; - for (var i = 0; i < chunk.length; i++) { - if (chunk[i] === 10) { // '\n' - if (this._sawFirstCr) { - split = i; - break; - } else { - this._sawFirstCr = true; - } - } else { - this._sawFirstCr = false; - } - } - - if (split === -1) { - // still waiting for the \n\n - // stash the chunk, and try again. - this._rawHeader.push(chunk); - } else { - this._inBody = true; - var h = chunk.slice(0, split); - this._rawHeader.push(h); - var header = Buffer.concat(this._rawHeader).toString(); - try { - this.header = JSON.parse(header); - } catch (er) { - this.emit('error', new Error('invalid simple protocol data')); - return; - } - // and let them know that we are done parsing the header. - this.emit('header', this.header); - - // now, because we got some extra data, emit this first. - this.push(chunk.slice(split)); - } - } else { - // from there on, just provide the data to our consumer as-is. - this.push(chunk); - } - done(); -}; - -// Usage: -// var parser = new SimpleProtocol(); -// source.pipe(parser) -// Now parser is a readable stream that will emit 'header' -// with the parsed header data. -``` - -### Class: stream.Writable - - - -`stream.Writable` is an abstract class designed to be extended with an -underlying implementation of the -[`stream._write(chunk, encoding, callback)`][stream-_write] method. - -Please see [API for Stream Consumers][] for how to consume -writable streams in your programs. What follows is an explanation of -how to implement Writable streams in your programs. - -#### new stream.Writable([options]) - -* `options` {Object} - * `highWaterMark` {Number} Buffer level when - [`stream.write()`][stream-write] starts returning `false`. Default = `16384` - (16kb), or `16` for `objectMode` streams. - * `decodeStrings` {Boolean} Whether or not to decode strings into - Buffers before passing them to [`stream._write()`][stream-_write]. - Default = `true` - * `objectMode` {Boolean} Whether or not the - [`stream.write(anyObj)`][stream-write] is a valid operation. If set you can - write arbitrary data instead of only `Buffer` / `String` data. - Default = `false` - * `write` {Function} Implementation for the - [`stream._write()`][stream-_write] method. - * `writev` {Function} Implementation for the - [`stream._writev()`][stream-_writev] method. - -In classes that extend the Writable class, make sure to call the -constructor so that the buffering settings can be properly -initialized. - -#### writable.\_write(chunk, encoding, callback) - -* `chunk` {Buffer|String} The chunk to be written. Will **always** - be a buffer unless the `decodeStrings` option was set to `false`. -* `encoding` {String} If the chunk is a string, then this is the - encoding type. If chunk is a buffer, then this is the special - value - 'buffer', ignore it in this case. -* `callback` {Function} Call this function (optionally with an error - argument) when you are done processing the supplied chunk. - -All Writable stream implementations must provide a -[`stream._write()`][stream-_write] method to send data to the underlying -resource. - -Note: **This function MUST NOT be called directly.** It should be -implemented by child classes, and called by the internal Writable -class methods only. - -Call the callback using the standard `callback(error)` pattern to -signal that the write completed successfully or with an error. - -If the `decodeStrings` flag is set in the constructor options, then -`chunk` may be a string rather than a Buffer, and `encoding` will -indicate the sort of string that it is. This is to support -implementations that have an optimized handling for certain string -data encodings. If you do not explicitly set the `decodeStrings` -option to `false`, then you can safely ignore the `encoding` argument, -and assume that `chunk` will always be a Buffer. - -This method is prefixed with an underscore because it is internal to -the class that defines it, and should not be called directly by user -programs. However, you **are** expected to override this method in -your own extension classes. - -#### writable.\_writev(chunks, callback) - -* `chunks` {Array} The chunks to be written. Each chunk has following - format: `{ chunk: ..., encoding: ... }`. -* `callback` {Function} Call this function (optionally with an error - argument) when you are done processing the supplied chunks. - -Note: **This function MUST NOT be called directly.** It may be -implemented by child classes, and called by the internal Writable -class methods only. - -This function is completely optional to implement. In most cases it is -unnecessary. If implemented, it will be called with all the chunks -that are buffered in the write queue. - - -## Simplified Constructor API - - - -In simple cases there is now the added benefit of being able to construct a -stream without inheritance. - -This can be done by passing the appropriate methods as constructor options: - -Examples: - -### Duplex - -```js -var duplex = new stream.Duplex({ - read: function(n) { - // sets this._read under the hood - - // push data onto the read queue, passing null - // will signal the end of the stream (EOF) - this.push(chunk); - }, - write: function(chunk, encoding, next) { - // sets this._write under the hood - - // An optional error can be passed as the first argument - next() - } -}); - -// or - -var duplex = new stream.Duplex({ - read: function(n) { - // sets this._read under the hood - - // push data onto the read queue, passing null - // will signal the end of the stream (EOF) - this.push(chunk); - }, - writev: function(chunks, next) { - // sets this._writev under the hood - - // An optional error can be passed as the first argument - next() - } -}); -``` - -### Readable - -```js -var readable = new stream.Readable({ - read: function(n) { - // sets this._read under the hood - - // push data onto the read queue, passing null - // will signal the end of the stream (EOF) - this.push(chunk); - } -}); -``` - -### Transform - -```js -var transform = new stream.Transform({ - transform: function(chunk, encoding, next) { - // sets this._transform under the hood - - // generate output as many times as needed - // this.push(chunk); - - // call when the current chunk is consumed - next(); - }, - flush: function(done) { - // sets this._flush under the hood - - // generate output as many times as needed - // this.push(chunk); - - done(); - } -}); -``` - -### Writable - -```js -var writable = new stream.Writable({ - write: function(chunk, encoding, next) { - // sets this._write under the hood - - // An optional error can be passed as the first argument - next() - } -}); - -// or - -var writable = new stream.Writable({ - writev: function(chunks, next) { - // sets this._writev under the hood - - // An optional error can be passed as the first argument - next() - } -}); -``` - -## Streams: Under the Hood - - - -### Buffering - - - -Both Writable and Readable streams will buffer data on an internal -object which can be retrieved from `_writableState.getBuffer()` or -`_readableState.buffer`, respectively. - -The amount of data that will potentially be buffered depends on the -`highWaterMark` option which is passed into the constructor. - -Buffering in Readable streams happens when the implementation calls -[`stream.push(chunk)`][stream-push]. If the consumer of the Stream does not -call [`stream.read()`][stream-read], then the data will sit in the internal -queue until it is consumed. - -Buffering in Writable streams happens when the user calls -[`stream.write(chunk)`][stream-write] repeatedly, even when it returns `false`. - -The purpose of streams, especially with the [`stream.pipe()`][] method, is to -limit the buffering of data to acceptable levels, so that sources and -destinations of varying speed will not overwhelm the available memory. - -### Compatibility with Older Node.js Versions - - - -In versions of Node.js prior to v0.10, the Readable stream interface was -simpler, but also less powerful and less useful. - -* Rather than waiting for you to call the [`stream.read()`][stream-read] method, - [`'data'`][] events would start emitting immediately. If you needed to do - some I/O to decide how to handle data, then you had to store the chunks - in some kind of buffer so that they would not be lost. -* The [`stream.pause()`][stream-pause] method was advisory, rather than - guaranteed. This meant that you still had to be prepared to receive - [`'data'`][] events even when the stream was in a paused state. - -In Node.js v0.10, the [Readable][] class was added. -For backwards compatibility with older Node.js programs, Readable streams -switch into "flowing mode" when a [`'data'`][] event handler is added, or -when the [`stream.resume()`][stream-resume] method is called. The effect is -that, even if you are not using the new [`stream.read()`][stream-read] method -and [`'readable'`][] event, you no longer have to worry about losing -[`'data'`][] chunks. - -Most programs will continue to function normally. However, this -introduces an edge case in the following conditions: - -* No [`'data'`][] event handler is added. -* The [`stream.resume()`][stream-resume] method is never called. -* The stream is not piped to any writable destination. - -For example, consider the following code: - -```js -// WARNING! BROKEN! -net.createServer((socket) => { - - // we add an 'end' method, but never consume the data - socket.on('end', () => { - // It will never get here. - socket.end('I got your message (but didnt read it)\n'); - }); - -}).listen(1337); -``` - -In versions of Node.js prior to v0.10, the incoming message data would be -simply discarded. However, in Node.js v0.10 and beyond, -the socket will remain paused forever. - -The workaround in this situation is to call the -[`stream.resume()`][stream-resume] method to start the flow of data: - -```js -// Workaround -net.createServer((socket) => { - - socket.on('end', () => { - socket.end('I got your message (but didnt read it)\n'); - }); - - // start the flow of data, discarding it. - socket.resume(); - -}).listen(1337); -``` - -In addition to new Readable streams switching into flowing mode, -pre-v0.10 style streams can be wrapped in a Readable class using the -[`stream.wrap()`][] method. - - -### Object Mode - - - -Normally, Streams operate on Strings and Buffers exclusively. - -Streams that are in **object mode** can emit generic JavaScript values -other than Buffers and Strings. - -A Readable stream in object mode will always return a single item from -a call to [`stream.read(size)`][stream-read], regardless of what the size -argument is. - -A Writable stream in object mode will always ignore the `encoding` -argument to [`stream.write(data, encoding)`][stream-write]. - -The special value `null` still retains its special value for object -mode streams. That is, for object mode readable streams, `null` as a -return value from [`stream.read()`][stream-read] indicates that there is no more -data, and [`stream.push(null)`][stream-push] will signal the end of stream data -(`EOF`). - -No streams in Node.js core are object mode streams. This pattern is only -used by userland streaming libraries. - -You should set `objectMode` in your stream child class constructor on -the options object. Setting `objectMode` mid-stream is not safe. - -For Duplex streams `objectMode` can be set exclusively for readable or -writable side with `readableObjectMode` and `writableObjectMode` -respectively. These options can be used to implement parsers and -serializers with Transform streams. - -```js -const util = require('util'); -const StringDecoder = require('string_decoder').StringDecoder; -const Transform = require('stream').Transform; -util.inherits(JSONParseStream, Transform); - -// Gets \n-delimited JSON string data, and emits the parsed objects -function JSONParseStream() { - if (!(this instanceof JSONParseStream)) - return new JSONParseStream(); - - Transform.call(this, { readableObjectMode : true }); - - this._buffer = ''; - this._decoder = new StringDecoder('utf8'); -} - -JSONParseStream.prototype._transform = function(chunk, encoding, cb) { - this._buffer += this._decoder.write(chunk); - // split on newlines - var lines = this._buffer.split(/\r?\n/); - // keep the last partial line buffered - this._buffer = lines.pop(); - for (var l = 0; l < lines.length; l++) { - var line = lines[l]; - try { - var obj = JSON.parse(line); - } catch (er) { - this.emit('error', er); - return; - } - // push the parsed object out to the readable consumer - this.push(obj); - } - cb(); -}; - -JSONParseStream.prototype._flush = function(cb) { - // Just handle any leftover - var rem = this._buffer.trim(); - if (rem) { - try { - var obj = JSON.parse(rem); - } catch (er) { - this.emit('error', er); - return; - } - // push the parsed object out to the readable consumer - this.push(obj); - } - cb(); -}; -``` - -### `stream.read(0)` - -There are some cases where you want to trigger a refresh of the -underlying readable stream mechanisms, without actually consuming any -data. In that case, you can call `stream.read(0)`, which will always -return null. - -If the internal read buffer is below the `highWaterMark`, and the -stream is not currently reading, then calling `stream.read(0)` will trigger -a low-level [`stream._read()`][stream-_read] call. - -There is almost never a need to do this. However, you will see some -cases in Node.js's internals where this is done, particularly in the -Readable stream class internals. - -### `stream.push('')` - -Pushing a zero-byte string or Buffer (when not in [Object mode][]) has an -interesting side effect. Because it *is* a call to -[`stream.push()`][stream-push], it will end the `reading` process. However, it -does *not* add any data to the readable buffer, so there's nothing for -a user to consume. - -Very rarely, there are cases where you have no data to provide now, -but the consumer of your stream (or, perhaps, another bit of your own -code) will know when to check again, by calling [`stream.read(0)`][stream-read]. -In those cases, you *may* call `stream.push('')`. - -So far, the only use case for this functionality is in the -[`tls.CryptoStream`][] class, which is deprecated in Node.js/io.js v1.0. If you -find that you have to use `stream.push('')`, please consider another -approach, because it almost certainly indicates that something is -horribly wrong. - -[`'data'`]: #stream_event_data -[`'drain'`]: #stream_event_drain -[`'end'`]: #stream_event_end -[`'finish'`]: #stream_event_finish -[`'readable'`]: #stream_event_readable -[`buf.toString(encoding)`]: https://nodejs.org/docs/v5.8.0/api/buffer.html#buffer_buf_tostring_encoding_start_end -[`EventEmitter`]: https://nodejs.org/docs/v5.8.0/api/events.html#events_class_eventemitter -[`process.stderr`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stderr -[`process.stdin`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stdin -[`process.stdout`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stdout -[`stream.cork()`]: #stream_writable_cork -[`stream.pipe()`]: #stream_readable_pipe_destination_options -[`stream.uncork()`]: #stream_writable_uncork -[`stream.unpipe()`]: #stream_readable_unpipe_destination -[`stream.wrap()`]: #stream_readable_wrap_stream -[`tls.CryptoStream`]: https://nodejs.org/docs/v5.8.0/api/tls.html#tls_class_cryptostream -[`util.inherits()`]: https://nodejs.org/docs/v5.8.0/api/util.html#util_util_inherits_constructor_superconstructor -[API for Stream Consumers]: #stream_api_for_stream_consumers -[API for Stream Implementors]: #stream_api_for_stream_implementors -[child process stdin]: https://nodejs.org/docs/v5.8.0/api/child_process.html#child_process_child_stdin -[child process stdout and stderr]: https://nodejs.org/docs/v5.8.0/api/child_process.html#child_process_child_stdout -[Compatibility]: #stream_compatibility_with_older_node_js_versions -[crypto]: crypto.html -[Duplex]: #stream_class_stream_duplex -[fs read streams]: https://nodejs.org/docs/v5.8.0/api/fs.html#fs_class_fs_readstream -[fs write streams]: https://nodejs.org/docs/v5.8.0/api/fs.html#fs_class_fs_writestream -[HTTP requests, on the client]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_clientrequest -[HTTP responses, on the server]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_serverresponse -[http-incoming-message]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_incomingmessage -[Object mode]: #stream_object_mode -[Readable]: #stream_class_stream_readable -[SimpleProtocol v2]: #stream_example_simpleprotocol_parser_v2 -[stream-_flush]: #stream_transform_flush_callback -[stream-_read]: #stream_readable_read_size_1 -[stream-_transform]: #stream_transform_transform_chunk_encoding_callback -[stream-_write]: #stream_writable_write_chunk_encoding_callback_1 -[stream-_writev]: #stream_writable_writev_chunks_callback -[stream-end]: #stream_writable_end_chunk_encoding_callback -[stream-pause]: #stream_readable_pause -[stream-push]: #stream_readable_push_chunk_encoding -[stream-read]: #stream_readable_read_size -[stream-resume]: #stream_readable_resume -[stream-write]: #stream_writable_write_chunk_encoding_callback -[TCP sockets]: https://nodejs.org/docs/v5.8.0/api/net.html#net_class_net_socket -[Transform]: #stream_class_stream_transform -[Writable]: #stream_class_stream_writable -[zlib]: zlib.html diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md deleted file mode 100644 index 83275f19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +++ /dev/null @@ -1,60 +0,0 @@ -# streams WG Meeting 2015-01-30 - -## Links - -* **Google Hangouts Video**: http://www.youtube.com/watch?v=I9nDOSGfwZg -* **GitHub Issue**: https://github.com/iojs/readable-stream/issues/106 -* **Original Minutes Google Doc**: https://docs.google.com/document/d/17aTgLnjMXIrfjgNaTUnHQO7m3xgzHR2VXBTmi03Qii4/ - -## Agenda - -Extracted from https://github.com/iojs/readable-stream/labels/wg-agenda prior to meeting. - -* adopt a charter [#105](https://github.com/iojs/readable-stream/issues/105) -* release and versioning strategy [#101](https://github.com/iojs/readable-stream/issues/101) -* simpler stream creation [#102](https://github.com/iojs/readable-stream/issues/102) -* proposal: deprecate implicit flowing of streams [#99](https://github.com/iojs/readable-stream/issues/99) - -## Minutes - -### adopt a charter - -* group: +1's all around - -### What versioning scheme should be adopted? -* group: +1’s 3.0.0 -* domenic+group: pulling in patches from other sources where appropriate -* mikeal: version independently, suggesting versions for io.js -* mikeal+domenic: work with TC to notify in advance of changes -simpler stream creation - -### streamline creation of streams -* sam: streamline creation of streams -* domenic: nice simple solution posted - but, we lose the opportunity to change the model - may not be backwards incompatible (double check keys) - - **action item:** domenic will check - -### remove implicit flowing of streams on(‘data’) -* add isFlowing / isPaused -* mikeal: worrying that we’re documenting polyfill methods – confuses users -* domenic: more reflective API is probably good, with warning labels for users -* new section for mad scientists (reflective stream access) -* calvin: name the “third state” -* mikeal: maybe borrow the name from whatwg? -* domenic: we’re missing the “third state” -* consensus: kind of difficult to name the third state -* mikeal: figure out differences in states / compat -* mathias: always flow on data – eliminates third state - * explore what it breaks - -**action items:** -* ask isaac for ability to list packages by what public io.js APIs they use (esp. Stream) -* ask rod/build for infrastructure -* **chris**: explore the “flow on data” approach -* add isPaused/isFlowing -* add new docs section -* move isPaused to that section - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/duplex.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/duplex.js deleted file mode 100644 index ca807af8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/duplex.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_duplex.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js deleted file mode 100644 index 736693b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js +++ /dev/null @@ -1,75 +0,0 @@ -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - -'use strict'; - -/**/ - -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; -}; -/**/ - -module.exports = Duplex; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -var Readable = require('./_stream_readable'); -var Writable = require('./_stream_writable'); - -util.inherits(Duplex, Readable); - -var keys = objectKeys(Writable.prototype); -for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; -} - -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); -} - -// the no-half-open enforcer -function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - processNextTick(onEndNT, this); -} - -function onEndNT(self) { - self.end(); -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js deleted file mode 100644 index d06f71f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js +++ /dev/null @@ -1,26 +0,0 @@ -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - -'use strict'; - -module.exports = PassThrough; - -var Transform = require('./_stream_transform'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(PassThrough, Transform); - -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); -} - -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js deleted file mode 100644 index 54a9d5c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js +++ /dev/null @@ -1,880 +0,0 @@ -'use strict'; - -module.exports = Readable; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var isArray = require('isarray'); -/**/ - -/**/ -var Buffer = require('buffer').Buffer; -/**/ - -Readable.ReadableState = ReadableState; - -var EE = require('events'); - -/**/ -var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream; -(function () { - try { - Stream = require('st' + 'ream'); - } catch (_) {} finally { - if (!Stream) Stream = require('events').EventEmitter; - } -})(); -/**/ - -var Buffer = require('buffer').Buffer; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var debugUtil = require('util'); -var debug = undefined; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function () {}; -} -/**/ - -var StringDecoder; - -util.inherits(Readable, Stream); - -var Duplex; -function ReadableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~ ~this.highWaterMark; - - this.buffer = []; - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // when piping, we only care about 'readable' events that happen - // after read()ing all the bytes and not getting any pushback. - this.ranOut = false; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -var Duplex; -function Readable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options && typeof options.read === 'function') this._read = options.read; - - Stream.call(this); -} - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - - if (!state.objectMode && typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = new Buffer(chunk, encoding); - encoding = ''; - } - } - - return readableAddChunk(this, state, chunk, encoding, false); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - var state = this._readableState; - return readableAddChunk(this, state, chunk, '', true); -}; - -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -function readableAddChunk(stream, state, chunk, encoding, addToFront) { - var er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (state.ended && !addToFront) { - var e = new Error('stream.push() after EOF'); - stream.emit('error', e); - } else if (state.endEmitted && addToFront) { - var e = new Error('stream.unshift() after end event'); - stream.emit('error', e); - } else { - var skipAdd; - if (state.decoder && !addToFront && !encoding) { - chunk = state.decoder.write(chunk); - skipAdd = !state.objectMode && chunk.length === 0; - } - - if (!addToFront) state.reading = false; - - // Don't add to the buffer if we've decoded to an empty string chunk and - // we're not in object mode - if (!skipAdd) { - // if we want the data now, just emit it. - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - } - - maybeReadMore(stream, state); - } - } else if (!addToFront) { - state.reading = false; - } - - return needMoreData(state); -} - -// if it's past the high water mark, we can push in some more. -// Also, if we have no data yet, we can stand some -// more bytes. This is to work around cases where hwm=0, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); -} - -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; -}; - -// Don't raise the hwm > 8MB -var MAX_HWM = 0x800000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -function howMuchToRead(n, state) { - if (state.length === 0 && state.ended) return 0; - - if (state.objectMode) return n === 0 ? 0 : 1; - - if (n === null || isNaN(n)) { - // only flow one buffer at a time - if (state.flowing && state.buffer.length) return state.buffer[0].length;else return state.length; - } - - if (n <= 0) return 0; - - // If we're asking for more than the target buffer level, - // then raise the water mark. Bump up to the next highest - // power of 2, to prevent increasing it excessively in tiny - // amounts. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - - // don't have that much. return null, unless we've ended. - if (n > state.length) { - if (!state.ended) { - state.needReadable = true; - return 0; - } else { - return state.length; - } - } - - return n; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - var state = this._readableState; - var nOrig = n; - - if (typeof n !== 'number' || n > 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } - - if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - } - - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (doRead && !state.reading) n = howMuchToRead(nOrig, state); - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } - - state.length -= n; - - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (state.length === 0 && !state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended && state.length === 0) endReadable(this); - - if (ret !== null) this.emit('data', ret); - - return ret; -}; - -function chunkInvalid(state, chunk) { - var er = null; - if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - -function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); - } -} - -function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - processNextTick(maybeReadMore_, stream, state); - } -} - -function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - this.emit('error', new Error('not implemented')); -}; - -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : cleanup; - if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable) { - debug('onunpipe'); - if (readable === src) { - cleanup(); - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', cleanup); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - var ret = dest.write(chunk); - if (false === ret) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - if (state.pipesCount === 1 && state.pipes[0] === dest && src.listenerCount('data') === 1 && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - // This is a brutally ugly hack to make sure that our error handler - // is attached before any userland ones. NEVER DO THIS. - if (!dest._events || !dest._events.error) dest.on('error', onerror);else if (isArray(dest._events.error)) dest._events.error.unshift(onerror);else dest._events.error = [onerror, dest._events.error]; - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; -}; - -function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} - -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var _i = 0; _i < len; _i++) { - dests[_i].emit('unpipe', this); - }return this; - } - - // try to find the right one. - var i = indexOf(state.pipes, dest); - if (i === -1) return this; - - state.pipes.splice(i, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this); - - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - // If listening to data, and it has not explicitly been paused, - // then call resume to start the flow of data on the next tick. - if (ev === 'data' && false !== this._readableState.flowing) { - this.resume(); - } - - if (ev === 'readable' && !this._readableState.endEmitted) { - var state = this._readableState; - if (!state.readableListening) { - state.readableListening = true; - state.emittedReadable = false; - state.needReadable = true; - if (!state.reading) { - processNextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this, state); - } - } - } - - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; - -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; -}; - -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - processNextTick(resume_, stream, state); - } -} - -function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} - -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; -}; - -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - if (state.flowing) { - do { - var chunk = stream.read(); - } while (null !== chunk && state.flowing); - } -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var state = this._readableState; - var paused = false; - - var self = this; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) self.push(chunk); - } - - self.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = self.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - var events = ['error', 'close', 'destroy', 'pause', 'resume']; - forEach(events, function (ev) { - stream.on(ev, self.emit.bind(self, ev)); - }); - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - self._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return self; -}; - -// exposed for testing purposes only. -Readable._fromList = fromList; - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -function fromList(n, state) { - var list = state.buffer; - var length = state.length; - var stringMode = !!state.decoder; - var objectMode = !!state.objectMode; - var ret; - - // nothing in the list, definitely empty. - if (list.length === 0) return null; - - if (length === 0) ret = null;else if (objectMode) ret = list.shift();else if (!n || n >= length) { - // read it all, truncate the array. - if (stringMode) ret = list.join('');else if (list.length === 1) ret = list[0];else ret = Buffer.concat(list, length); - list.length = 0; - } else { - // read just some of it. - if (n < list[0].length) { - // just take a part of the first list item. - // slice is the same for buffers and strings. - var buf = list[0]; - ret = buf.slice(0, n); - list[0] = buf.slice(n); - } else if (n === list[0].length) { - // first list is a perfect match - ret = list.shift(); - } else { - // complex case. - // we have enough to cover it, but it spans past the first buffer. - if (stringMode) ret = '';else ret = new Buffer(n); - - var c = 0; - for (var i = 0, l = list.length; i < l && c < n; i++) { - var buf = list[0]; - var cpy = Math.min(n - c, buf.length); - - if (stringMode) ret += buf.slice(0, cpy);else buf.copy(ret, c, 0, cpy); - - if (cpy < buf.length) list[0] = buf.slice(cpy);else list.shift(); - - c += cpy; - } - } - } - - return ret; -} - -function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('endReadable called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - processNextTick(endReadableNT, state, stream); - } -} - -function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} - -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js deleted file mode 100644 index 625cdc17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js +++ /dev/null @@ -1,180 +0,0 @@ -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - -'use strict'; - -module.exports = Transform; - -var Duplex = require('./_stream_duplex'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(Transform, Duplex); - -function TransformState(stream) { - this.afterTransform = function (er, data) { - return afterTransform(stream, er, data); - }; - - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; - this.writeencoding = null; -} - -function afterTransform(stream, er, data) { - var ts = stream._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) return stream.emit('error', new Error('no writecb in Transform class')); - - ts.writechunk = null; - ts.writecb = null; - - if (data !== null && data !== undefined) stream.push(data); - - cb(er); - - var rs = stream._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); - } -} - -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = new TransformState(this); - - // when the writable side finishes, then flush out anything remaining. - var stream = this; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - this.once('prefinish', function () { - if (typeof this._flush === 'function') this._flush(function (er) { - done(stream, er); - });else done(stream); - }); -} - -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; - -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('not implemented'); -}; - -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; - -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; - -function done(stream, er) { - if (er) return stream.emit('error', er); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; - - if (ws.length) throw new Error('calling transform done when ws.length != 0'); - - if (ts.transforming) throw new Error('calling transform done when still transforming'); - - return stream.push(null); -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js deleted file mode 100644 index 95916c99..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js +++ /dev/null @@ -1,516 +0,0 @@ -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - -'use strict'; - -module.exports = Writable; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; -/**/ - -/**/ -var Buffer = require('buffer').Buffer; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var internalUtil = { - deprecate: require('util-deprecate') -}; -/**/ - -/**/ -var Stream; -(function () { - try { - Stream = require('st' + 'ream'); - } catch (_) {} finally { - if (!Stream) Stream = require('events').EventEmitter; - } -})(); -/**/ - -var Buffer = require('buffer').Buffer; - -util.inherits(Writable, Stream); - -function nop() {} - -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - -var Duplex; -function WritableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~ ~this.highWaterMark; - - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // create the two objects needed to store the corked requests - // they are not a linked list, as no new elements are inserted in there - this.corkedRequestsFree = new CorkedRequest(this); - this.corkedRequestsFree.next = new CorkedRequest(this); -} - -WritableState.prototype.getBuffer = function writableStateGetBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; - -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.') - }); - } catch (_) {} -})(); - -var Duplex; -function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - // Writable ctor is applied to Duplexes, though they're not - // instanceof Writable, they're instanceof Readable. - if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options); - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - } - - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe. Not readable.')); -}; - -function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - processNextTick(cb, er); -} - -// If we get something that is not a buffer, string, null, or undefined, -// and we're not in objectMode, then that's an error. -// Otherwise stream chunks are all considered to be of length=1, and the -// watermarks determine how many objects to keep in the buffer, rather than -// how many bytes or characters. -function validChunk(stream, state, chunk, cb) { - var valid = true; - - if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { - var er = new TypeError('Invalid non-string/buffer chunk'); - stream.emit('error', er); - processNextTick(cb, er); - valid = false; - } - return valid; -} - -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, chunk, encoding, cb); - } - - return ret; -}; - -Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; -}; - -Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; - -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; -}; - -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = new Buffer(chunk, encoding); - } - return chunk; -} - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, chunk, encoding, cb) { - chunk = decodeChunk(state, chunk, encoding); - - if (Buffer.isBuffer(chunk)) encoding = 'buffer'; - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = new WriteReq(chunk, encoding, cb); - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; -} - -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} - -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - if (sync) processNextTick(cb, er);else cb(er); - - stream._writableState.errorEmitted = true; - stream.emit('error', er); -} - -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - while (entry) { - buffer[count] = entry; - entry = entry.next; - count += 1; - } - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequestCount = 0; - state.bufferedRequest = entry; - state.bufferProcessing = false; -} - -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('not implemented')); -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); -}; - -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} - -function prefinish(stream, state) { - if (!state.prefinished) { - state.prefinished = true; - stream.emit('prefinish'); - } -} - -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - if (state.pendingcb === 0) { - prefinish(stream, state); - state.finished = true; - stream.emit('finish'); - } else { - prefinish(stream, state); - } - } - return need; -} - -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) processNextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} - -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - - this.finish = function (err) { - var entry = _this.entry; - _this.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = _this; - } else { - state.corkedRequestsFree = _this; - } - }; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/LICENSE deleted file mode 100644 index d8d7f943..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright Node.js contributors. All rights reserved. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/README.md deleted file mode 100644 index 5a76b414..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# core-util-is - -The `util.is*` functions introduced in Node v0.12. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/float.patch b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/float.patch deleted file mode 100644 index a06d5c05..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/float.patch +++ /dev/null @@ -1,604 +0,0 @@ -diff --git a/lib/util.js b/lib/util.js -index a03e874..9074e8e 100644 ---- a/lib/util.js -+++ b/lib/util.js -@@ -19,430 +19,6 @@ - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - --var formatRegExp = /%[sdj%]/g; --exports.format = function(f) { -- if (!isString(f)) { -- var objects = []; -- for (var i = 0; i < arguments.length; i++) { -- objects.push(inspect(arguments[i])); -- } -- return objects.join(' '); -- } -- -- var i = 1; -- var args = arguments; -- var len = args.length; -- var str = String(f).replace(formatRegExp, function(x) { -- if (x === '%%') return '%'; -- if (i >= len) return x; -- switch (x) { -- case '%s': return String(args[i++]); -- case '%d': return Number(args[i++]); -- case '%j': -- try { -- return JSON.stringify(args[i++]); -- } catch (_) { -- return '[Circular]'; -- } -- default: -- return x; -- } -- }); -- for (var x = args[i]; i < len; x = args[++i]) { -- if (isNull(x) || !isObject(x)) { -- str += ' ' + x; -- } else { -- str += ' ' + inspect(x); -- } -- } -- return str; --}; -- -- --// Mark that a method should not be used. --// Returns a modified function which warns once by default. --// If --no-deprecation is set, then it is a no-op. --exports.deprecate = function(fn, msg) { -- // Allow for deprecating things in the process of starting up. -- if (isUndefined(global.process)) { -- return function() { -- return exports.deprecate(fn, msg).apply(this, arguments); -- }; -- } -- -- if (process.noDeprecation === true) { -- return fn; -- } -- -- var warned = false; -- function deprecated() { -- if (!warned) { -- if (process.throwDeprecation) { -- throw new Error(msg); -- } else if (process.traceDeprecation) { -- console.trace(msg); -- } else { -- console.error(msg); -- } -- warned = true; -- } -- return fn.apply(this, arguments); -- } -- -- return deprecated; --}; -- -- --var debugs = {}; --var debugEnviron; --exports.debuglog = function(set) { -- if (isUndefined(debugEnviron)) -- debugEnviron = process.env.NODE_DEBUG || ''; -- set = set.toUpperCase(); -- if (!debugs[set]) { -- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { -- var pid = process.pid; -- debugs[set] = function() { -- var msg = exports.format.apply(exports, arguments); -- console.error('%s %d: %s', set, pid, msg); -- }; -- } else { -- debugs[set] = function() {}; -- } -- } -- return debugs[set]; --}; -- -- --/** -- * Echos the value of a value. Trys to print the value out -- * in the best way possible given the different types. -- * -- * @param {Object} obj The object to print out. -- * @param {Object} opts Optional options object that alters the output. -- */ --/* legacy: obj, showHidden, depth, colors*/ --function inspect(obj, opts) { -- // default options -- var ctx = { -- seen: [], -- stylize: stylizeNoColor -- }; -- // legacy... -- if (arguments.length >= 3) ctx.depth = arguments[2]; -- if (arguments.length >= 4) ctx.colors = arguments[3]; -- if (isBoolean(opts)) { -- // legacy... -- ctx.showHidden = opts; -- } else if (opts) { -- // got an "options" object -- exports._extend(ctx, opts); -- } -- // set default options -- if (isUndefined(ctx.showHidden)) ctx.showHidden = false; -- if (isUndefined(ctx.depth)) ctx.depth = 2; -- if (isUndefined(ctx.colors)) ctx.colors = false; -- if (isUndefined(ctx.customInspect)) ctx.customInspect = true; -- if (ctx.colors) ctx.stylize = stylizeWithColor; -- return formatValue(ctx, obj, ctx.depth); --} --exports.inspect = inspect; -- -- --// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics --inspect.colors = { -- 'bold' : [1, 22], -- 'italic' : [3, 23], -- 'underline' : [4, 24], -- 'inverse' : [7, 27], -- 'white' : [37, 39], -- 'grey' : [90, 39], -- 'black' : [30, 39], -- 'blue' : [34, 39], -- 'cyan' : [36, 39], -- 'green' : [32, 39], -- 'magenta' : [35, 39], -- 'red' : [31, 39], -- 'yellow' : [33, 39] --}; -- --// Don't use 'blue' not visible on cmd.exe --inspect.styles = { -- 'special': 'cyan', -- 'number': 'yellow', -- 'boolean': 'yellow', -- 'undefined': 'grey', -- 'null': 'bold', -- 'string': 'green', -- 'date': 'magenta', -- // "name": intentionally not styling -- 'regexp': 'red' --}; -- -- --function stylizeWithColor(str, styleType) { -- var style = inspect.styles[styleType]; -- -- if (style) { -- return '\u001b[' + inspect.colors[style][0] + 'm' + str + -- '\u001b[' + inspect.colors[style][1] + 'm'; -- } else { -- return str; -- } --} -- -- --function stylizeNoColor(str, styleType) { -- return str; --} -- -- --function arrayToHash(array) { -- var hash = {}; -- -- array.forEach(function(val, idx) { -- hash[val] = true; -- }); -- -- return hash; --} -- -- --function formatValue(ctx, value, recurseTimes) { -- // Provide a hook for user-specified inspect functions. -- // Check that value is an object with an inspect function on it -- if (ctx.customInspect && -- value && -- isFunction(value.inspect) && -- // Filter out the util module, it's inspect function is special -- value.inspect !== exports.inspect && -- // Also filter out any prototype objects using the circular check. -- !(value.constructor && value.constructor.prototype === value)) { -- var ret = value.inspect(recurseTimes, ctx); -- if (!isString(ret)) { -- ret = formatValue(ctx, ret, recurseTimes); -- } -- return ret; -- } -- -- // Primitive types cannot have properties -- var primitive = formatPrimitive(ctx, value); -- if (primitive) { -- return primitive; -- } -- -- // Look up the keys of the object. -- var keys = Object.keys(value); -- var visibleKeys = arrayToHash(keys); -- -- if (ctx.showHidden) { -- keys = Object.getOwnPropertyNames(value); -- } -- -- // Some type of object without properties can be shortcutted. -- if (keys.length === 0) { -- if (isFunction(value)) { -- var name = value.name ? ': ' + value.name : ''; -- return ctx.stylize('[Function' + name + ']', 'special'); -- } -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } -- if (isDate(value)) { -- return ctx.stylize(Date.prototype.toString.call(value), 'date'); -- } -- if (isError(value)) { -- return formatError(value); -- } -- } -- -- var base = '', array = false, braces = ['{', '}']; -- -- // Make Array say that they are Array -- if (isArray(value)) { -- array = true; -- braces = ['[', ']']; -- } -- -- // Make functions say that they are functions -- if (isFunction(value)) { -- var n = value.name ? ': ' + value.name : ''; -- base = ' [Function' + n + ']'; -- } -- -- // Make RegExps say that they are RegExps -- if (isRegExp(value)) { -- base = ' ' + RegExp.prototype.toString.call(value); -- } -- -- // Make dates with properties first say the date -- if (isDate(value)) { -- base = ' ' + Date.prototype.toUTCString.call(value); -- } -- -- // Make error with message first say the error -- if (isError(value)) { -- base = ' ' + formatError(value); -- } -- -- if (keys.length === 0 && (!array || value.length == 0)) { -- return braces[0] + base + braces[1]; -- } -- -- if (recurseTimes < 0) { -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } else { -- return ctx.stylize('[Object]', 'special'); -- } -- } -- -- ctx.seen.push(value); -- -- var output; -- if (array) { -- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); -- } else { -- output = keys.map(function(key) { -- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); -- }); -- } -- -- ctx.seen.pop(); -- -- return reduceToSingleString(output, base, braces); --} -- -- --function formatPrimitive(ctx, value) { -- if (isUndefined(value)) -- return ctx.stylize('undefined', 'undefined'); -- if (isString(value)) { -- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') -- .replace(/'/g, "\\'") -- .replace(/\\"/g, '"') + '\''; -- return ctx.stylize(simple, 'string'); -- } -- if (isNumber(value)) { -- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0, -- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 . -- if (value === 0 && 1 / value < 0) -- return ctx.stylize('-0', 'number'); -- return ctx.stylize('' + value, 'number'); -- } -- if (isBoolean(value)) -- return ctx.stylize('' + value, 'boolean'); -- // For some reason typeof null is "object", so special case here. -- if (isNull(value)) -- return ctx.stylize('null', 'null'); --} -- -- --function formatError(value) { -- return '[' + Error.prototype.toString.call(value) + ']'; --} -- -- --function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { -- var output = []; -- for (var i = 0, l = value.length; i < l; ++i) { -- if (hasOwnProperty(value, String(i))) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- String(i), true)); -- } else { -- output.push(''); -- } -- } -- keys.forEach(function(key) { -- if (!key.match(/^\d+$/)) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- key, true)); -- } -- }); -- return output; --} -- -- --function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { -- var name, str, desc; -- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; -- if (desc.get) { -- if (desc.set) { -- str = ctx.stylize('[Getter/Setter]', 'special'); -- } else { -- str = ctx.stylize('[Getter]', 'special'); -- } -- } else { -- if (desc.set) { -- str = ctx.stylize('[Setter]', 'special'); -- } -- } -- if (!hasOwnProperty(visibleKeys, key)) { -- name = '[' + key + ']'; -- } -- if (!str) { -- if (ctx.seen.indexOf(desc.value) < 0) { -- if (isNull(recurseTimes)) { -- str = formatValue(ctx, desc.value, null); -- } else { -- str = formatValue(ctx, desc.value, recurseTimes - 1); -- } -- if (str.indexOf('\n') > -1) { -- if (array) { -- str = str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n').substr(2); -- } else { -- str = '\n' + str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n'); -- } -- } -- } else { -- str = ctx.stylize('[Circular]', 'special'); -- } -- } -- if (isUndefined(name)) { -- if (array && key.match(/^\d+$/)) { -- return str; -- } -- name = JSON.stringify('' + key); -- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { -- name = name.substr(1, name.length - 2); -- name = ctx.stylize(name, 'name'); -- } else { -- name = name.replace(/'/g, "\\'") -- .replace(/\\"/g, '"') -- .replace(/(^"|"$)/g, "'"); -- name = ctx.stylize(name, 'string'); -- } -- } -- -- return name + ': ' + str; --} -- -- --function reduceToSingleString(output, base, braces) { -- var numLinesEst = 0; -- var length = output.reduce(function(prev, cur) { -- numLinesEst++; -- if (cur.indexOf('\n') >= 0) numLinesEst++; -- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; -- }, 0); -- -- if (length > 60) { -- return braces[0] + -- (base === '' ? '' : base + '\n ') + -- ' ' + -- output.join(',\n ') + -- ' ' + -- braces[1]; -- } -- -- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; --} -- -- - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - function isArray(ar) { -@@ -522,166 +98,10 @@ function isPrimitive(arg) { - exports.isPrimitive = isPrimitive; - - function isBuffer(arg) { -- return arg instanceof Buffer; -+ return Buffer.isBuffer(arg); - } - exports.isBuffer = isBuffer; - - function objectToString(o) { - return Object.prototype.toString.call(o); --} -- -- --function pad(n) { -- return n < 10 ? '0' + n.toString(10) : n.toString(10); --} -- -- --var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', -- 'Oct', 'Nov', 'Dec']; -- --// 26 Feb 16:19:34 --function timestamp() { -- var d = new Date(); -- var time = [pad(d.getHours()), -- pad(d.getMinutes()), -- pad(d.getSeconds())].join(':'); -- return [d.getDate(), months[d.getMonth()], time].join(' '); --} -- -- --// log is just a thin wrapper to console.log that prepends a timestamp --exports.log = function() { -- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); --}; -- -- --/** -- * Inherit the prototype methods from one constructor into another. -- * -- * The Function.prototype.inherits from lang.js rewritten as a standalone -- * function (not on Function.prototype). NOTE: If this file is to be loaded -- * during bootstrapping this function needs to be rewritten using some native -- * functions as prototype setup using normal JavaScript does not work as -- * expected during bootstrapping (see mirror.js in r114903). -- * -- * @param {function} ctor Constructor function which needs to inherit the -- * prototype. -- * @param {function} superCtor Constructor function to inherit prototype from. -- */ --exports.inherits = function(ctor, superCtor) { -- ctor.super_ = superCtor; -- ctor.prototype = Object.create(superCtor.prototype, { -- constructor: { -- value: ctor, -- enumerable: false, -- writable: true, -- configurable: true -- } -- }); --}; -- --exports._extend = function(origin, add) { -- // Don't do anything if add isn't an object -- if (!add || !isObject(add)) return origin; -- -- var keys = Object.keys(add); -- var i = keys.length; -- while (i--) { -- origin[keys[i]] = add[keys[i]]; -- } -- return origin; --}; -- --function hasOwnProperty(obj, prop) { -- return Object.prototype.hasOwnProperty.call(obj, prop); --} -- -- --// Deprecated old stuff. -- --exports.p = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- console.error(exports.inspect(arguments[i])); -- } --}, 'util.p: Use console.error() instead'); -- -- --exports.exec = exports.deprecate(function() { -- return require('child_process').exec.apply(this, arguments); --}, 'util.exec is now called `child_process.exec`.'); -- -- --exports.print = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(String(arguments[i])); -- } --}, 'util.print: Use console.log instead'); -- -- --exports.puts = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(arguments[i] + '\n'); -- } --}, 'util.puts: Use console.log instead'); -- -- --exports.debug = exports.deprecate(function(x) { -- process.stderr.write('DEBUG: ' + x + '\n'); --}, 'util.debug: Use console.error instead'); -- -- --exports.error = exports.deprecate(function(x) { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stderr.write(arguments[i] + '\n'); -- } --}, 'util.error: Use console.error instead'); -- -- --exports.pump = exports.deprecate(function(readStream, writeStream, callback) { -- var callbackCalled = false; -- -- function call(a, b, c) { -- if (callback && !callbackCalled) { -- callback(a, b, c); -- callbackCalled = true; -- } -- } -- -- readStream.addListener('data', function(chunk) { -- if (writeStream.write(chunk) === false) readStream.pause(); -- }); -- -- writeStream.addListener('drain', function() { -- readStream.resume(); -- }); -- -- readStream.addListener('end', function() { -- writeStream.end(); -- }); -- -- readStream.addListener('close', function() { -- call(); -- }); -- -- readStream.addListener('error', function(err) { -- writeStream.end(); -- call(err); -- }); -- -- writeStream.addListener('error', function(err) { -- readStream.destroy(); -- call(err); -- }); --}, 'util.pump(): Use readableStream.pipe() instead'); -- -- --var uv; --exports._errnoException = function(err, syscall) { -- if (isUndefined(uv)) uv = process.binding('uv'); -- var errname = uv.errname(err); -- var e = new Error(syscall + ' ' + errname); -- e.code = errname; -- e.errno = errname; -- e.syscall = syscall; -- return e; --}; -+} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/lib/util.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/lib/util.js deleted file mode 100644 index ff4c851c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. - -function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = Buffer.isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/package.json deleted file mode 100644 index 1be49d90..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_args": [ - [ - "core-util-is@~1.0.0", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ], - [ - "core-util-is@~1.0.0", - "/Users/rebecca/code/npm/node_modules/request/node_modules/bl/node_modules/readable-stream" - ] - ], - "_from": "core-util-is@>=1.0.0 <1.1.0", - "_id": "core-util-is@1.0.2", - "_inCache": true, - "_installable": true, - "_location": "/request/bl/readable-stream/core-util-is", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "core-util-is", - "raw": "core-util-is@~1.0.0", - "rawSpec": "~1.0.0", - "scope": null, - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/request/bl/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "core-util-is@~1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/bl/node_modules/readable-stream", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/core-util-is/issues" - }, - "dependencies": {}, - "description": "The `util.is*` functions introduced in Node v0.12.", - "devDependencies": { - "tap": "^2.3.0" - }, - "directories": {}, - "dist": { - "shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "tarball": "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "gitHead": "a177da234df5638b363ddc15fa324619a38577c8", - "homepage": "https://github.com/isaacs/core-util-is#readme", - "keywords": [ - "util", - "isBuffer", - "isArray", - "isNumber", - "isString", - "isRegExp", - "isThis", - "isThat", - "polyfill" - ], - "license": "MIT", - "main": "lib/util.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "core-util-is", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/core-util-is.git" - }, - "scripts": { - "test": "tap test.js" - }, - "version": "1.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/test.js deleted file mode 100644 index 1a490c65..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/test.js +++ /dev/null @@ -1,68 +0,0 @@ -var assert = require('tap'); - -var t = require('./lib/util'); - -assert.equal(t.isArray([]), true); -assert.equal(t.isArray({}), false); - -assert.equal(t.isBoolean(null), false); -assert.equal(t.isBoolean(true), true); -assert.equal(t.isBoolean(false), true); - -assert.equal(t.isNull(null), true); -assert.equal(t.isNull(undefined), false); -assert.equal(t.isNull(false), false); -assert.equal(t.isNull(), false); - -assert.equal(t.isNullOrUndefined(null), true); -assert.equal(t.isNullOrUndefined(undefined), true); -assert.equal(t.isNullOrUndefined(false), false); -assert.equal(t.isNullOrUndefined(), true); - -assert.equal(t.isNumber(null), false); -assert.equal(t.isNumber('1'), false); -assert.equal(t.isNumber(1), true); - -assert.equal(t.isString(null), false); -assert.equal(t.isString('1'), true); -assert.equal(t.isString(1), false); - -assert.equal(t.isSymbol(null), false); -assert.equal(t.isSymbol('1'), false); -assert.equal(t.isSymbol(1), false); -assert.equal(t.isSymbol(Symbol()), true); - -assert.equal(t.isUndefined(null), false); -assert.equal(t.isUndefined(undefined), true); -assert.equal(t.isUndefined(false), false); -assert.equal(t.isUndefined(), true); - -assert.equal(t.isRegExp(null), false); -assert.equal(t.isRegExp('1'), false); -assert.equal(t.isRegExp(new RegExp()), true); - -assert.equal(t.isObject({}), true); -assert.equal(t.isObject([]), true); -assert.equal(t.isObject(new RegExp()), true); -assert.equal(t.isObject(new Date()), true); - -assert.equal(t.isDate(null), false); -assert.equal(t.isDate('1'), false); -assert.equal(t.isDate(new Date()), true); - -assert.equal(t.isError(null), false); -assert.equal(t.isError({ err: true }), false); -assert.equal(t.isError(new Error()), true); - -assert.equal(t.isFunction(null), false); -assert.equal(t.isFunction({ }), false); -assert.equal(t.isFunction(function() {}), true); - -assert.equal(t.isPrimitive(null), true); -assert.equal(t.isPrimitive(''), true); -assert.equal(t.isPrimitive(0), true); -assert.equal(t.isPrimitive(new Date()), false); - -assert.equal(t.isBuffer(null), false); -assert.equal(t.isBuffer({}), false); -assert.equal(t.isBuffer(new Buffer(0)), true); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/.travis.yml deleted file mode 100644 index cc4dba29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/Makefile deleted file mode 100644 index 787d56e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -test: - @node_modules/.bin/tape test.js - -.PHONY: test - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/README.md deleted file mode 100644 index 16d2c59c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/README.md +++ /dev/null @@ -1,60 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray) -[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray) - -[![browser support](https://ci.testling.com/juliangruber/isarray.png) -](https://ci.testling.com/juliangruber/isarray) - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/component.json deleted file mode 100644 index 9e31b683..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/index.js deleted file mode 100644 index a57f6349..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/index.js +++ /dev/null @@ -1,5 +0,0 @@ -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/package.json deleted file mode 100644 index b8f76c40..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "_args": [ - [ - "isarray@~1.0.0", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ], - [ - "isarray@~1.0.0", - "/Users/rebecca/code/npm/node_modules/request/node_modules/bl/node_modules/readable-stream" - ] - ], - "_from": "isarray@>=1.0.0 <1.1.0", - "_id": "isarray@1.0.0", - "_inCache": true, - "_installable": true, - "_location": "/request/bl/readable-stream/isarray", - "_nodeVersion": "5.1.0", - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "isarray", - "raw": "isarray@~1.0.0", - "rawSpec": "~1.0.0", - "scope": null, - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/request/bl/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "isarray@~1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/bl/node_modules/readable-stream", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" - }, - "dependencies": {}, - "description": "Array#isArray for older browsers", - "devDependencies": { - "tape": "~2.13.4" - }, - "directories": {}, - "dist": { - "shasum": "bb935d48582cba168c06834957a54a3e07124f11", - "tarball": "http://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "gitHead": "2a23a281f369e9ae06394c0fb4d2381355a6ba33", - "homepage": "https://github.com/juliangruber/isarray", - "keywords": [ - "browser", - "isarray", - "array" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - } - ], - "name": "isarray", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "scripts": { - "test": "tape test.js" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/17..latest", - "firefox/nightly", - "chrome/22..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test.js" - }, - "version": "1.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/test.js deleted file mode 100644 index e0c3444d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/test.js +++ /dev/null @@ -1,20 +0,0 @@ -var isArray = require('./'); -var test = require('tape'); - -test('is array', function(t){ - t.ok(isArray([])); - t.notOk(isArray({})); - t.notOk(isArray(null)); - t.notOk(isArray(false)); - - var obj = {}; - obj[0] = true; - t.notOk(isArray(obj)); - - var arr = []; - arr.foo = 'bar'; - t.ok(isArray(arr)); - - t.end(); -}); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml deleted file mode 100644 index 36201b10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.11" - - "0.12" - - "1.7.1" - - 1 - - 2 - - 3 - - 4 - - 5 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/index.js deleted file mode 100644 index 571c2767..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/index.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = nextTick; -} else { - module.exports = process.nextTick; -} - -function nextTick(fn) { - var args = new Array(arguments.length - 1); - var i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - process.nextTick(function afterTick() { - fn.apply(null, args); - }); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/license.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/license.md deleted file mode 100644 index c67e3532..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/license.md +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (c) 2015 Calvin Metcalf - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/package.json deleted file mode 100644 index bae43acf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "_args": [ - [ - "process-nextick-args@~1.0.6", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ], - [ - "process-nextick-args@~1.0.6", - "/Users/rebecca/code/npm/node_modules/request/node_modules/bl/node_modules/readable-stream" - ] - ], - "_from": "process-nextick-args@>=1.0.6 <1.1.0", - "_id": "process-nextick-args@1.0.6", - "_inCache": true, - "_installable": true, - "_location": "/request/bl/readable-stream/process-nextick-args", - "_nodeVersion": "4.1.1", - "_npmUser": { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - }, - "_npmVersion": "2.14.4", - "_phantomChildren": {}, - "_requested": { - "name": "process-nextick-args", - "raw": "process-nextick-args@~1.0.6", - "rawSpec": "~1.0.6", - "scope": null, - "spec": ">=1.0.6 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/request/bl/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "process-nextick-args@~1.0.6", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/bl/node_modules/readable-stream", - "author": "", - "bugs": { - "url": "https://github.com/calvinmetcalf/process-nextick-args/issues" - }, - "dependencies": {}, - "description": "process.nextTick but always with args", - "devDependencies": { - "tap": "~0.2.6" - }, - "directories": {}, - "dist": { - "shasum": "0f96b001cea90b12592ce566edb97ec11e69bd05", - "tarball": "http://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" - }, - "gitHead": "e85787b05a8c3c1adb714f332d822e9162699c78", - "homepage": "https://github.com/calvinmetcalf/process-nextick-args", - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - } - ], - "name": "process-nextick-args", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" - }, - "scripts": { - "test": "node test.js" - }, - "version": "1.0.6" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/readme.md deleted file mode 100644 index 78e7cfae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -process-nextick-args -===== - -[![Build Status](https://travis-ci.org/calvinmetcalf/process-nextick-args.svg?branch=master)](https://travis-ci.org/calvinmetcalf/process-nextick-args) - -```bash -npm install --save process-nextick-args -``` - -Always be able to pass arguments to process.nextTick, no matter the platform - -```js -var nextTick = require('process-nextick-args'); - -nextTick(function (a, b, c) { - console.log(a, b, c); -}, 'step', 3, 'profit'); -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/test.js deleted file mode 100644 index ef157215..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/test.js +++ /dev/null @@ -1,24 +0,0 @@ -var test = require("tap").test; -var nextTick = require('./'); - -test('should work', function (t) { - t.plan(5); - nextTick(function (a) { - t.ok(a); - nextTick(function (thing) { - t.equals(thing, 7); - }, 7); - }, true); - nextTick(function (a, b, c) { - t.equals(a, 'step'); - t.equals(b, 3); - t.equals(c, 'profit'); - }, 'step', 3, 'profit'); -}); - -test('correct number of arguments', function (t) { - t.plan(1); - nextTick(function () { - t.equals(2, arguments.length, 'correct number'); - }, 1, 2); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/.npmignore deleted file mode 100644 index 206320cc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -build -test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/LICENSE deleted file mode 100644 index 6de584a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Joyent, Inc. and other Node contributors. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/README.md deleted file mode 100644 index 4d2aa001..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/README.md +++ /dev/null @@ -1,7 +0,0 @@ -**string_decoder.js** (`require('string_decoder')`) from Node.js core - -Copyright Joyent, Inc. and other Node contributors. See LICENCE file for details. - -Version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.** - -The *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/index.js deleted file mode 100644 index b00e54fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/index.js +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -var Buffer = require('buffer').Buffer; - -var isBufferEncoding = Buffer.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; - default: return false; - } - } - - -function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. CESU-8 is handled as part of the UTF-8 encoding. -// -// @TODO Handling all encodings inside a single object makes it very difficult -// to reason about this code, so it should be split up in the future. -// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code -// points as used by CESU-8. -var StringDecoder = exports.StringDecoder = function(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; -}; - - -// write decodes the given buffer and returns it as JS string that is -// guaranteed to not contain any partial multi-byte characters. Any partial -// character found at the end of the buffer is buffered up, and will be -// returned when calling write again with the remaining bytes. -// -// Note: Converting a Buffer containing an orphan surrogate to a String -// currently works, but converting a String to a Buffer (via `new Buffer`, or -// Buffer#write) will replace incomplete surrogates with the unicode -// replacement character. See https://codereview.chromium.org/121173009/ . -StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; -}; - -// detectIncompleteChar determines if there is an incomplete UTF-8 character at -// the end of the given buffer. If so, it sets this.charLength to the byte -// length that character, and sets this.charReceived to the number of bytes -// that are available for this character. -StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; -}; - -StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; -}; - -function passThroughWrite(buffer) { - return buffer.toString(this.encoding); -} - -function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; -} - -function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/package.json deleted file mode 100644 index 977e5976..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "_args": [ - [ - "string_decoder@~0.10.x", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ], - [ - "string_decoder@~0.10.x", - "/Users/rebecca/code/npm/node_modules/request/node_modules/bl/node_modules/readable-stream" - ] - ], - "_from": "string_decoder@>=0.10.0 <0.11.0", - "_id": "string_decoder@0.10.31", - "_inCache": true, - "_installable": true, - "_location": "/request/bl/readable-stream/string_decoder", - "_npmUser": { - "email": "rod@vagg.org", - "name": "rvagg" - }, - "_npmVersion": "1.4.23", - "_phantomChildren": {}, - "_requested": { - "name": "string_decoder", - "raw": "string_decoder@~0.10.x", - "rawSpec": "~0.10.x", - "scope": null, - "spec": ">=0.10.0 <0.11.0", - "type": "range" - }, - "_requiredBy": [ - "/request/bl/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "string_decoder@~0.10.x", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/bl/node_modules/readable-stream", - "bugs": { - "url": "https://github.com/rvagg/string_decoder/issues" - }, - "dependencies": {}, - "description": "The string_decoder module from Node core", - "devDependencies": { - "tap": "~0.4.8" - }, - "directories": {}, - "dist": { - "shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "tarball": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "gitHead": "d46d4fd87cf1d06e031c23f1ba170ca7d4ade9a0", - "homepage": "https://github.com/rvagg/string_decoder", - "keywords": [ - "string", - "decoder", - "browser", - "browserify" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "mail@substack.net", - "name": "substack" - }, - { - "email": "rod@vagg.org", - "name": "rvagg" - } - ], - "name": "string_decoder", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/rvagg/string_decoder.git" - }, - "scripts": { - "test": "tap test/simple/*.js" - }, - "version": "0.10.31" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/History.md deleted file mode 100644 index acc86753..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/History.md +++ /dev/null @@ -1,16 +0,0 @@ - -1.0.2 / 2015-10-07 -================== - - * use try/catch when checking `localStorage` (#3, @kumavis) - -1.0.1 / 2014-11-25 -================== - - * browser: use `console.warn()` for deprecation calls - * browser: more jsdocs - -1.0.0 / 2014-04-30 -================== - - * initial commit diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/LICENSE deleted file mode 100644 index 6a60e8c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/README.md deleted file mode 100644 index 75622fa7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/README.md +++ /dev/null @@ -1,53 +0,0 @@ -util-deprecate -============== -### The Node.js `util.deprecate()` function with browser support - -In Node.js, this module simply re-exports the `util.deprecate()` function. - -In the web browser (i.e. via browserify), a browser-specific implementation -of the `util.deprecate()` function is used. - - -## API - -A `deprecate()` function is the only thing exposed by this module. - -``` javascript -// setup: -exports.foo = deprecate(foo, 'foo() is deprecated, use bar() instead'); - - -// users see: -foo(); -// foo() is deprecated, use bar() instead -foo(); -foo(); -``` - - -## License - -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/browser.js deleted file mode 100644 index 549ae2f0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/browser.js +++ /dev/null @@ -1,67 +0,0 @@ - -/** - * Module exports. - */ - -module.exports = deprecate; - -/** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - -function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -} - -/** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - -function config (name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!global.localStorage) return false; - } catch (_) { - return false; - } - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/node.js deleted file mode 100644 index 5e6fcff5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/node.js +++ /dev/null @@ -1,6 +0,0 @@ - -/** - * For Node.js, simply re-export the core `util.deprecate` function. - */ - -module.exports = require('util').deprecate; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/package.json deleted file mode 100644 index 63869c0e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "_args": [ - [ - "util-deprecate@~1.0.1", - "/Users/rebecca/code/npm/node_modules/readable-stream" - ], - [ - "util-deprecate@~1.0.1", - "/Users/rebecca/code/npm/node_modules/request/node_modules/bl/node_modules/readable-stream" - ] - ], - "_from": "util-deprecate@>=1.0.1 <1.1.0", - "_id": "util-deprecate@1.0.2", - "_inCache": true, - "_installable": true, - "_location": "/request/bl/readable-stream/util-deprecate", - "_nodeVersion": "4.1.2", - "_npmUser": { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - }, - "_npmVersion": "2.14.4", - "_phantomChildren": {}, - "_requested": { - "name": "util-deprecate", - "raw": "util-deprecate@~1.0.1", - "rawSpec": "~1.0.1", - "scope": null, - "spec": ">=1.0.1 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/request/bl/readable-stream" - ], - "_shrinkwrap": null, - "_spec": "util-deprecate@~1.0.1", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/bl/node_modules/readable-stream", - "author": { - "email": "nathan@tootallnate.net", - "name": "Nathan Rajlich", - "url": "http://n8.io/" - }, - "browser": "browser.js", - "bugs": { - "url": "https://github.com/TooTallNate/util-deprecate/issues" - }, - "dependencies": {}, - "description": "The Node.js `util.deprecate()` function with browser support", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "tarball": "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - }, - "gitHead": "475fb6857cd23fafff20c1be846c1350abf8e6d4", - "homepage": "https://github.com/TooTallNate/util-deprecate", - "keywords": [ - "util", - "deprecate", - "browserify", - "browser", - "node" - ], - "license": "MIT", - "main": "node.js", - "maintainers": [ - { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - } - ], - "name": "util-deprecate", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/util-deprecate.git" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "version": "1.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/package.json deleted file mode 100644 index f818ebf1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_args": [ - [ - "readable-stream@~2.0.5", - "/Users/rebecca/code/npm/node_modules/request/node_modules/bl" - ] - ], - "_from": "readable-stream@>=2.0.5 <2.1.0", - "_id": "readable-stream@2.0.6", - "_inCache": true, - "_installable": true, - "_location": "/request/bl/readable-stream", - "_nodeVersion": "5.7.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/readable-stream-2.0.6.tgz_1457893507709_0.369257491780445" - }, - "_npmUser": { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - }, - "_npmVersion": "3.6.0", - "_phantomChildren": {}, - "_requested": { - "name": "readable-stream", - "raw": "readable-stream@~2.0.5", - "rawSpec": "~2.0.5", - "scope": null, - "spec": ">=2.0.5 <2.1.0", - "type": "range" - }, - "_requiredBy": [ - "/request/bl" - ], - "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "_shasum": "8f90341e68a53ccc928788dacfcd11b36eb9b78e", - "_shrinkwrap": null, - "_spec": "readable-stream@~2.0.5", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/bl", - "browser": { - "util": false - }, - "bugs": { - "url": "https://github.com/nodejs/readable-stream/issues" - }, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - }, - "description": "Streams3, a user-land copy of the stream library from Node.js", - "devDependencies": { - "tap": "~0.2.6", - "tape": "~4.5.1", - "zuul": "~3.9.0" - }, - "directories": {}, - "dist": { - "shasum": "8f90341e68a53ccc928788dacfcd11b36eb9b78e", - "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" - }, - "gitHead": "01fb5608a970b42c900b96746cadc13d27dd9d7e", - "homepage": "https://github.com/nodejs/readable-stream#readme", - "keywords": [ - "readable", - "stream", - "pipe" - ], - "license": "MIT", - "main": "readable.js", - "maintainers": [ - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - { - "email": "nathan@tootallnate.net", - "name": "tootallnate" - }, - { - "email": "rod@vagg.org", - "name": "rvagg" - }, - { - "email": "calvin.metcalf@gmail.com", - "name": "cwmma" - } - ], - "name": "readable-stream", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream.git" - }, - "scripts": { - "browser": "npm run write-zuul && zuul -- test/browser.js", - "test": "tap test/parallel/*.js test/ours/*.js", - "write-zuul": "printf \"ui: tape\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml" - }, - "version": "2.0.6" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/passthrough.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/passthrough.js deleted file mode 100644 index 27e8d8a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/passthrough.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_passthrough.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/readable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/readable.js deleted file mode 100644 index 6222a579..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/readable.js +++ /dev/null @@ -1,12 +0,0 @@ -var Stream = (function (){ - try { - return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify - } catch(_){} -}()); -exports = module.exports = require('./lib/_stream_readable.js'); -exports.Stream = Stream || exports; -exports.Readable = exports; -exports.Writable = require('./lib/_stream_writable.js'); -exports.Duplex = require('./lib/_stream_duplex.js'); -exports.Transform = require('./lib/_stream_transform.js'); -exports.PassThrough = require('./lib/_stream_passthrough.js'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/transform.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/transform.js deleted file mode 100644 index 5d482f07..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/transform.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_transform.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/writable.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/writable.js deleted file mode 100644 index e1e9efdf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/writable.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/_stream_writable.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/package.json deleted file mode 100644 index 09ebb7b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "_args": [ - [ - "bl@~1.1.2", - "/Users/rebecca/code/npm/node_modules/request" - ] - ], - "_from": "bl@>=1.1.2 <1.2.0", - "_id": "bl@1.1.2", - "_inCache": true, - "_installable": true, - "_location": "/request/bl", - "_nodeVersion": "5.3.0", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/bl-1.1.2.tgz_1455246621698_0.6300242957659066" - }, - "_npmUser": { - "email": "rod@vagg.org", - "name": "rvagg" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "bl", - "raw": "bl@~1.1.2", - "rawSpec": "~1.1.2", - "scope": null, - "spec": ">=1.1.2 <1.2.0", - "type": "range" - }, - "_requiredBy": [ - "/request" - ], - "_resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", - "_shasum": "fdca871a99713aa00d19e3bbba41c44787a65398", - "_shrinkwrap": null, - "_spec": "bl@~1.1.2", - "_where": "/Users/rebecca/code/npm/node_modules/request", - "authors": [ - "Rod Vagg (https://github.com/rvagg)", - "Matteo Collina (https://github.com/mcollina)", - "Jarett Cruger (https://github.com/jcrugzz)" - ], - "bugs": { - "url": "https://github.com/rvagg/bl/issues" - }, - "dependencies": { - "readable-stream": "~2.0.5" - }, - "description": "Buffer List: collect buffers and access with a standard readable Buffer interface, streamable too!", - "devDependencies": { - "faucet": "0.0.1", - "hash_file": "~0.1.1", - "tape": "~4.4.0" - }, - "directories": {}, - "dist": { - "shasum": "fdca871a99713aa00d19e3bbba41c44787a65398", - "tarball": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz" - }, - "gitHead": "ea42021059dc65fc60d7f4b9217c73431f09d23d", - "homepage": "https://github.com/rvagg/bl", - "keywords": [ - "buffer", - "buffers", - "stream", - "awesomesauce" - ], - "license": "MIT", - "main": "bl.js", - "maintainers": [ - { - "email": "rod@vagg.org", - "name": "rvagg" - } - ], - "name": "bl", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/rvagg/bl.git" - }, - "scripts": { - "test": "node test/test.js | faucet" - }, - "version": "1.1.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/test/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/test/test.js deleted file mode 100644 index c95b1ba4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/bl/test/test.js +++ /dev/null @@ -1,640 +0,0 @@ -var tape = require('tape') - , crypto = require('crypto') - , fs = require('fs') - , hash = require('hash_file') - , BufferList = require('../') - - , encodings = - ('hex utf8 utf-8 ascii binary base64' - + (process.browser ? '' : ' ucs2 ucs-2 utf16le utf-16le')).split(' ') - -tape('single bytes from single buffer', function (t) { - var bl = new BufferList() - bl.append(new Buffer('abcd')) - - t.equal(bl.length, 4) - - t.equal(bl.get(0), 97) - t.equal(bl.get(1), 98) - t.equal(bl.get(2), 99) - t.equal(bl.get(3), 100) - - t.end() -}) - -tape('single bytes from multiple buffers', function (t) { - var bl = new BufferList() - bl.append(new Buffer('abcd')) - bl.append(new Buffer('efg')) - bl.append(new Buffer('hi')) - bl.append(new Buffer('j')) - - t.equal(bl.length, 10) - - t.equal(bl.get(0), 97) - t.equal(bl.get(1), 98) - t.equal(bl.get(2), 99) - t.equal(bl.get(3), 100) - t.equal(bl.get(4), 101) - t.equal(bl.get(5), 102) - t.equal(bl.get(6), 103) - t.equal(bl.get(7), 104) - t.equal(bl.get(8), 105) - t.equal(bl.get(9), 106) - t.end() -}) - -tape('multi bytes from single buffer', function (t) { - var bl = new BufferList() - bl.append(new Buffer('abcd')) - - t.equal(bl.length, 4) - - t.equal(bl.slice(0, 4).toString('ascii'), 'abcd') - t.equal(bl.slice(0, 3).toString('ascii'), 'abc') - t.equal(bl.slice(1, 4).toString('ascii'), 'bcd') - - t.end() -}) - -tape('multiple bytes from multiple buffers', function (t) { - var bl = new BufferList() - - bl.append(new Buffer('abcd')) - bl.append(new Buffer('efg')) - bl.append(new Buffer('hi')) - bl.append(new Buffer('j')) - - t.equal(bl.length, 10) - - t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') - t.equal(bl.slice(3, 10).toString('ascii'), 'defghij') - t.equal(bl.slice(3, 6).toString('ascii'), 'def') - t.equal(bl.slice(3, 8).toString('ascii'), 'defgh') - t.equal(bl.slice(5, 10).toString('ascii'), 'fghij') - - t.end() -}) - -tape('multiple bytes from multiple buffer lists', function (t) { - var bl = new BufferList() - - bl.append(new BufferList([ new Buffer('abcd'), new Buffer('efg') ])) - bl.append(new BufferList([ new Buffer('hi'), new Buffer('j') ])) - - t.equal(bl.length, 10) - - t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') - - t.equal(bl.slice(3, 10).toString('ascii'), 'defghij') - t.equal(bl.slice(3, 6).toString('ascii'), 'def') - t.equal(bl.slice(3, 8).toString('ascii'), 'defgh') - t.equal(bl.slice(5, 10).toString('ascii'), 'fghij') - - t.end() -}) - -// same data as previous test, just using nested constructors -tape('multiple bytes from crazy nested buffer lists', function (t) { - var bl = new BufferList() - - bl.append(new BufferList([ - new BufferList([ - new BufferList(new Buffer('abc')) - , new Buffer('d') - , new BufferList(new Buffer('efg')) - ]) - , new BufferList([ new Buffer('hi') ]) - , new BufferList(new Buffer('j')) - ])) - - t.equal(bl.length, 10) - - t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') - - t.equal(bl.slice(3, 10).toString('ascii'), 'defghij') - t.equal(bl.slice(3, 6).toString('ascii'), 'def') - t.equal(bl.slice(3, 8).toString('ascii'), 'defgh') - t.equal(bl.slice(5, 10).toString('ascii'), 'fghij') - - t.end() -}) - -tape('append accepts arrays of Buffers', function (t) { - var bl = new BufferList() - bl.append(new Buffer('abc')) - bl.append([ new Buffer('def') ]) - bl.append([ new Buffer('ghi'), new Buffer('jkl') ]) - bl.append([ new Buffer('mnop'), new Buffer('qrstu'), new Buffer('vwxyz') ]) - t.equal(bl.length, 26) - t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz') - t.end() -}) - -tape('append accepts arrays of BufferLists', function (t) { - var bl = new BufferList() - bl.append(new Buffer('abc')) - bl.append([ new BufferList('def') ]) - bl.append(new BufferList([ new Buffer('ghi'), new BufferList('jkl') ])) - bl.append([ new Buffer('mnop'), new BufferList([ new Buffer('qrstu'), new Buffer('vwxyz') ]) ]) - t.equal(bl.length, 26) - t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz') - t.end() -}) - -tape('append chainable', function (t) { - var bl = new BufferList() - t.ok(bl.append(new Buffer('abcd')) === bl) - t.ok(bl.append([ new Buffer('abcd') ]) === bl) - t.ok(bl.append(new BufferList(new Buffer('abcd'))) === bl) - t.ok(bl.append([ new BufferList(new Buffer('abcd')) ]) === bl) - t.end() -}) - -tape('append chainable (test results)', function (t) { - var bl = new BufferList('abc') - .append([ new BufferList('def') ]) - .append(new BufferList([ new Buffer('ghi'), new BufferList('jkl') ])) - .append([ new Buffer('mnop'), new BufferList([ new Buffer('qrstu'), new Buffer('vwxyz') ]) ]) - - t.equal(bl.length, 26) - t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz') - t.end() -}) - -tape('consuming from multiple buffers', function (t) { - var bl = new BufferList() - - bl.append(new Buffer('abcd')) - bl.append(new Buffer('efg')) - bl.append(new Buffer('hi')) - bl.append(new Buffer('j')) - - t.equal(bl.length, 10) - - t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') - - bl.consume(3) - t.equal(bl.length, 7) - t.equal(bl.slice(0, 7).toString('ascii'), 'defghij') - - bl.consume(2) - t.equal(bl.length, 5) - t.equal(bl.slice(0, 5).toString('ascii'), 'fghij') - - bl.consume(1) - t.equal(bl.length, 4) - t.equal(bl.slice(0, 4).toString('ascii'), 'ghij') - - bl.consume(1) - t.equal(bl.length, 3) - t.equal(bl.slice(0, 3).toString('ascii'), 'hij') - - bl.consume(2) - t.equal(bl.length, 1) - t.equal(bl.slice(0, 1).toString('ascii'), 'j') - - t.end() -}) - -tape('complete consumption', function (t) { - var bl = new BufferList() - - bl.append(new Buffer('a')) - bl.append(new Buffer('b')) - - bl.consume(2) - - t.equal(bl.length, 0) - t.equal(bl._bufs.length, 0) - - t.end() -}) - -tape('test readUInt8 / readInt8', function (t) { - var buf1 = new Buffer(1) - , buf2 = new Buffer(3) - , buf3 = new Buffer(3) - , bl = new BufferList() - - buf2[1] = 0x3 - buf2[2] = 0x4 - buf3[0] = 0x23 - buf3[1] = 0x42 - - bl.append(buf1) - bl.append(buf2) - bl.append(buf3) - - t.equal(bl.readUInt8(2), 0x3) - t.equal(bl.readInt8(2), 0x3) - t.equal(bl.readUInt8(3), 0x4) - t.equal(bl.readInt8(3), 0x4) - t.equal(bl.readUInt8(4), 0x23) - t.equal(bl.readInt8(4), 0x23) - t.equal(bl.readUInt8(5), 0x42) - t.equal(bl.readInt8(5), 0x42) - t.end() -}) - -tape('test readUInt16LE / readUInt16BE / readInt16LE / readInt16BE', function (t) { - var buf1 = new Buffer(1) - , buf2 = new Buffer(3) - , buf3 = new Buffer(3) - , bl = new BufferList() - - buf2[1] = 0x3 - buf2[2] = 0x4 - buf3[0] = 0x23 - buf3[1] = 0x42 - - bl.append(buf1) - bl.append(buf2) - bl.append(buf3) - - t.equal(bl.readUInt16BE(2), 0x0304) - t.equal(bl.readUInt16LE(2), 0x0403) - t.equal(bl.readInt16BE(2), 0x0304) - t.equal(bl.readInt16LE(2), 0x0403) - t.equal(bl.readUInt16BE(3), 0x0423) - t.equal(bl.readUInt16LE(3), 0x2304) - t.equal(bl.readInt16BE(3), 0x0423) - t.equal(bl.readInt16LE(3), 0x2304) - t.equal(bl.readUInt16BE(4), 0x2342) - t.equal(bl.readUInt16LE(4), 0x4223) - t.equal(bl.readInt16BE(4), 0x2342) - t.equal(bl.readInt16LE(4), 0x4223) - t.end() -}) - -tape('test readUInt32LE / readUInt32BE / readInt32LE / readInt32BE', function (t) { - var buf1 = new Buffer(1) - , buf2 = new Buffer(3) - , buf3 = new Buffer(3) - , bl = new BufferList() - - buf2[1] = 0x3 - buf2[2] = 0x4 - buf3[0] = 0x23 - buf3[1] = 0x42 - - bl.append(buf1) - bl.append(buf2) - bl.append(buf3) - - t.equal(bl.readUInt32BE(2), 0x03042342) - t.equal(bl.readUInt32LE(2), 0x42230403) - t.equal(bl.readInt32BE(2), 0x03042342) - t.equal(bl.readInt32LE(2), 0x42230403) - t.end() -}) - -tape('test readFloatLE / readFloatBE', function (t) { - var buf1 = new Buffer(1) - , buf2 = new Buffer(3) - , buf3 = new Buffer(3) - , bl = new BufferList() - - buf2[1] = 0x00 - buf2[2] = 0x00 - buf3[0] = 0x80 - buf3[1] = 0x3f - - bl.append(buf1) - bl.append(buf2) - bl.append(buf3) - - t.equal(bl.readFloatLE(2), 0x01) - t.end() -}) - -tape('test readDoubleLE / readDoubleBE', function (t) { - var buf1 = new Buffer(1) - , buf2 = new Buffer(3) - , buf3 = new Buffer(10) - , bl = new BufferList() - - buf2[1] = 0x55 - buf2[2] = 0x55 - buf3[0] = 0x55 - buf3[1] = 0x55 - buf3[2] = 0x55 - buf3[3] = 0x55 - buf3[4] = 0xd5 - buf3[5] = 0x3f - - bl.append(buf1) - bl.append(buf2) - bl.append(buf3) - - t.equal(bl.readDoubleLE(2), 0.3333333333333333) - t.end() -}) - -tape('test toString', function (t) { - var bl = new BufferList() - - bl.append(new Buffer('abcd')) - bl.append(new Buffer('efg')) - bl.append(new Buffer('hi')) - bl.append(new Buffer('j')) - - t.equal(bl.toString('ascii', 0, 10), 'abcdefghij') - t.equal(bl.toString('ascii', 3, 10), 'defghij') - t.equal(bl.toString('ascii', 3, 6), 'def') - t.equal(bl.toString('ascii', 3, 8), 'defgh') - t.equal(bl.toString('ascii', 5, 10), 'fghij') - - t.end() -}) - -tape('test toString encoding', function (t) { - var bl = new BufferList() - , b = new Buffer('abcdefghij\xff\x00') - - bl.append(new Buffer('abcd')) - bl.append(new Buffer('efg')) - bl.append(new Buffer('hi')) - bl.append(new Buffer('j')) - bl.append(new Buffer('\xff\x00')) - - encodings.forEach(function (enc) { - t.equal(bl.toString(enc), b.toString(enc), enc) - }) - - t.end() -}) - -!process.browser && tape('test stream', function (t) { - var random = crypto.randomBytes(65534) - , rndhash = hash(random, 'md5') - , md5sum = crypto.createHash('md5') - , bl = new BufferList(function (err, buf) { - t.ok(Buffer.isBuffer(buf)) - t.ok(err === null) - t.equal(rndhash, hash(bl.slice(), 'md5')) - t.equal(rndhash, hash(buf, 'md5')) - - bl.pipe(fs.createWriteStream('/tmp/bl_test_rnd_out.dat')) - .on('close', function () { - var s = fs.createReadStream('/tmp/bl_test_rnd_out.dat') - s.on('data', md5sum.update.bind(md5sum)) - s.on('end', function() { - t.equal(rndhash, md5sum.digest('hex'), 'woohoo! correct hash!') - t.end() - }) - }) - - }) - - fs.writeFileSync('/tmp/bl_test_rnd.dat', random) - fs.createReadStream('/tmp/bl_test_rnd.dat').pipe(bl) -}) - -tape('instantiation with Buffer', function (t) { - var buf = crypto.randomBytes(1024) - , buf2 = crypto.randomBytes(1024) - , b = BufferList(buf) - - t.equal(buf.toString('hex'), b.slice().toString('hex'), 'same buffer') - b = BufferList([ buf, buf2 ]) - t.equal(b.slice().toString('hex'), Buffer.concat([ buf, buf2 ]).toString('hex'), 'same buffer') - t.end() -}) - -tape('test String appendage', function (t) { - var bl = new BufferList() - , b = new Buffer('abcdefghij\xff\x00') - - bl.append('abcd') - bl.append('efg') - bl.append('hi') - bl.append('j') - bl.append('\xff\x00') - - encodings.forEach(function (enc) { - t.equal(bl.toString(enc), b.toString(enc)) - }) - - t.end() -}) - -tape('test Number appendage', function (t) { - var bl = new BufferList() - , b = new Buffer('1234567890') - - bl.append(1234) - bl.append(567) - bl.append(89) - bl.append(0) - - encodings.forEach(function (enc) { - t.equal(bl.toString(enc), b.toString(enc)) - }) - - t.end() -}) - -tape('write nothing, should get empty buffer', function (t) { - t.plan(3) - BufferList(function (err, data) { - t.notOk(err, 'no error') - t.ok(Buffer.isBuffer(data), 'got a buffer') - t.equal(0, data.length, 'got a zero-length buffer') - t.end() - }).end() -}) - -tape('unicode string', function (t) { - t.plan(2) - var inp1 = '\u2600' - , inp2 = '\u2603' - , exp = inp1 + ' and ' + inp2 - , bl = BufferList() - bl.write(inp1) - bl.write(' and ') - bl.write(inp2) - t.equal(exp, bl.toString()) - t.equal(new Buffer(exp).toString('hex'), bl.toString('hex')) -}) - -tape('should emit finish', function (t) { - var source = BufferList() - , dest = BufferList() - - source.write('hello') - source.pipe(dest) - - dest.on('finish', function () { - t.equal(dest.toString('utf8'), 'hello') - t.end() - }) -}) - -tape('basic copy', function (t) { - var buf = crypto.randomBytes(1024) - , buf2 = new Buffer(1024) - , b = BufferList(buf) - - b.copy(buf2) - t.equal(b.slice().toString('hex'), buf2.toString('hex'), 'same buffer') - t.end() -}) - -tape('copy after many appends', function (t) { - var buf = crypto.randomBytes(512) - , buf2 = new Buffer(1024) - , b = BufferList(buf) - - b.append(buf) - b.copy(buf2) - t.equal(b.slice().toString('hex'), buf2.toString('hex'), 'same buffer') - t.end() -}) - -tape('copy at a precise position', function (t) { - var buf = crypto.randomBytes(1004) - , buf2 = new Buffer(1024) - , b = BufferList(buf) - - b.copy(buf2, 20) - t.equal(b.slice().toString('hex'), buf2.slice(20).toString('hex'), 'same buffer') - t.end() -}) - -tape('copy starting from a precise location', function (t) { - var buf = crypto.randomBytes(10) - , buf2 = new Buffer(5) - , b = BufferList(buf) - - b.copy(buf2, 0, 5) - t.equal(b.slice(5).toString('hex'), buf2.toString('hex'), 'same buffer') - t.end() -}) - -tape('copy in an interval', function (t) { - var rnd = crypto.randomBytes(10) - , b = BufferList(rnd) // put the random bytes there - , actual = new Buffer(3) - , expected = new Buffer(3) - - rnd.copy(expected, 0, 5, 8) - b.copy(actual, 0, 5, 8) - - t.equal(actual.toString('hex'), expected.toString('hex'), 'same buffer') - t.end() -}) - -tape('copy an interval between two buffers', function (t) { - var buf = crypto.randomBytes(10) - , buf2 = new Buffer(10) - , b = BufferList(buf) - - b.append(buf) - b.copy(buf2, 0, 5, 15) - - t.equal(b.slice(5, 15).toString('hex'), buf2.toString('hex'), 'same buffer') - t.end() -}) - -tape('duplicate', function (t) { - t.plan(2) - - var bl = new BufferList('abcdefghij\xff\x00') - , dup = bl.duplicate() - - t.equal(bl.prototype, dup.prototype) - t.equal(bl.toString('hex'), dup.toString('hex')) -}) - -tape('destroy no pipe', function (t) { - t.plan(2) - - var bl = new BufferList('alsdkfja;lsdkfja;lsdk') - bl.destroy() - - t.equal(bl._bufs.length, 0) - t.equal(bl.length, 0) -}) - -!process.browser && tape('destroy with pipe before read end', function (t) { - t.plan(2) - - var bl = new BufferList() - fs.createReadStream(__dirname + '/test.js') - .pipe(bl) - - bl.destroy() - - t.equal(bl._bufs.length, 0) - t.equal(bl.length, 0) - -}) - -!process.browser && tape('destroy with pipe before read end with race', function (t) { - t.plan(2) - - var bl = new BufferList() - fs.createReadStream(__dirname + '/test.js') - .pipe(bl) - - setTimeout(function () { - bl.destroy() - setTimeout(function () { - t.equal(bl._bufs.length, 0) - t.equal(bl.length, 0) - }, 500) - }, 500) -}) - -!process.browser && tape('destroy with pipe after read end', function (t) { - t.plan(2) - - var bl = new BufferList() - fs.createReadStream(__dirname + '/test.js') - .on('end', onEnd) - .pipe(bl) - - function onEnd () { - bl.destroy() - - t.equal(bl._bufs.length, 0) - t.equal(bl.length, 0) - } -}) - -!process.browser && tape('destroy with pipe while writing to a destination', function (t) { - t.plan(4) - - var bl = new BufferList() - , ds = new BufferList() - - fs.createReadStream(__dirname + '/test.js') - .on('end', onEnd) - .pipe(bl) - - function onEnd () { - bl.pipe(ds) - - setTimeout(function () { - bl.destroy() - - t.equals(bl._bufs.length, 0) - t.equals(bl.length, 0) - - ds.destroy() - - t.equals(bl._bufs.length, 0) - t.equals(bl.length, 0) - - }, 100) - } -}) - -!process.browser && tape('handle error', function (t) { - t.plan(2) - fs.createReadStream('/does/not/exist').pipe(BufferList(function (err, data) { - t.ok(err instanceof Error, 'has error') - t.notOk(data, 'no data') - })) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/LICENSE deleted file mode 100644 index 61789f4a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -1. Definitions. -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: -You must give any other recipients of the Work or Derivative Works a copy of this License; and -You must cause any modified files to carry prominent notices stating that You changed the files; and -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/README.md deleted file mode 100644 index e5077a21..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/README.md +++ /dev/null @@ -1,45 +0,0 @@ -## Caseless -- wrap an object to set and get property with caseless semantics but also preserve caseing. - -This library is incredibly useful when working with HTTP headers. It allows you to get/set/check for headers in a caseless manner while also preserving the caseing of headers the first time they are set. - -## Usage - -```javascript -var headers = {} - , c = caseless(headers) - ; -c.set('a-Header', 'asdf') -c.get('a-header') === 'asdf' -``` - -## has(key) - -Has takes a name and if it finds a matching header will return that header name with the preserved caseing it was set with. - -```javascript -c.has('a-header') === 'a-Header' -``` - -## set(key, value[, clobber=true]) - -Set is fairly straight forward except that if the header exists and clobber is disabled it will add `','+value` to the existing header. - -```javascript -c.set('a-Header', 'fdas') -c.set('a-HEADER', 'more', false) -c.get('a-header') === 'fdsa,more' -``` - -## swap(key) - -Swaps the casing of a header with the new one that is passed in. - -```javascript -var headers = {} - , c = caseless(headers) - ; -c.set('a-Header', 'fdas') -c.swap('a-HEADER') -c.has('a-header') === 'a-HEADER' -headers === {'a-HEADER': 'fdas'} -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/index.js deleted file mode 100644 index d86a70ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/index.js +++ /dev/null @@ -1,66 +0,0 @@ -function Caseless (dict) { - this.dict = dict || {} -} -Caseless.prototype.set = function (name, value, clobber) { - if (typeof name === 'object') { - for (var i in name) { - this.set(i, name[i], value) - } - } else { - if (typeof clobber === 'undefined') clobber = true - var has = this.has(name) - - if (!clobber && has) this.dict[has] = this.dict[has] + ',' + value - else this.dict[has || name] = value - return has - } -} -Caseless.prototype.has = function (name) { - var keys = Object.keys(this.dict) - , name = name.toLowerCase() - ; - for (var i=0;i=0.11.0 <0.12.0", - "_npmVersion": "2.8.3", - "_nodeVersion": "1.8.1", - "_npmUser": { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - "maintainers": [ - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - { - "name": "nylen", - "email": "jnylen@gmail.com" - }, - { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - } - ], - "dist": { - "shasum": "715b96ea9841593cc33067923f5ec60ebda4f7d7", - "tarball": "http://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/test.js deleted file mode 100644 index 084bbaf5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/caseless/test.js +++ /dev/null @@ -1,40 +0,0 @@ -var tape = require('tape') - , caseless = require('./') - ; - -tape('set get has', function (t) { - var headers = {} - , c = caseless(headers) - ; - t.plan(17) - c.set('a-Header', 'asdf') - t.equal(c.get('a-header'), 'asdf') - t.equal(c.has('a-header'), 'a-Header') - t.ok(!c.has('nothing')) - // old bug where we used the wrong regex - t.ok(!c.has('a-hea')) - c.set('a-header', 'fdsa') - t.equal(c.get('a-header'), 'fdsa') - t.equal(c.get('a-Header'), 'fdsa') - c.set('a-HEADER', 'more', false) - t.equal(c.get('a-header'), 'fdsa,more') - - t.deepEqual(headers, {'a-Header': 'fdsa,more'}) - c.swap('a-HEADER') - t.deepEqual(headers, {'a-HEADER': 'fdsa,more'}) - - c.set('deleteme', 'foobar') - t.ok(c.has('deleteme')) - t.ok(c.del('deleteme')) - t.notOk(c.has('deleteme')) - t.notOk(c.has('idonotexist')) - t.ok(c.del('idonotexist')) - - c.set('tva', 'test1') - c.set('tva-header', 'test2') - t.equal(c.has('tva'), 'tva') - t.notOk(c.has('header')) - - t.equal(c.get('tva'), 'test1') - -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/License deleted file mode 100644 index 4804b7ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Debuggable Limited - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/Readme.md deleted file mode 100644 index 3a9e025f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/Readme.md +++ /dev/null @@ -1,138 +0,0 @@ -# combined-stream - -A stream that emits multiple other streams one after another. - -**NB** Currently `combined-stream` works with streams vesrion 1 only. There is ongoing effort to switch this library to streams version 2. Any help is welcome. :) Meanwhile you can explore other libraries that provide streams2 support with more or less compatability with `combined-stream`. - -- [combined-stream2](https://www.npmjs.com/package/combined-stream2): A drop-in streams2-compatible replacement for the combined-stream module. - -- [multistream](https://www.npmjs.com/package/multistream): A stream that emits multiple other streams one after another. - -## Installation - -``` bash -npm install combined-stream -``` - -## Usage - -Here is a simple example that shows how you can use combined-stream to combine -two files into one: - -``` javascript -var CombinedStream = require('combined-stream'); -var fs = require('fs'); - -var combinedStream = CombinedStream.create(); -combinedStream.append(fs.createReadStream('file1.txt')); -combinedStream.append(fs.createReadStream('file2.txt')); - -combinedStream.pipe(fs.createWriteStream('combined.txt')); -``` - -While the example above works great, it will pause all source streams until -they are needed. If you don't want that to happen, you can set `pauseStreams` -to `false`: - -``` javascript -var CombinedStream = require('combined-stream'); -var fs = require('fs'); - -var combinedStream = CombinedStream.create({pauseStreams: false}); -combinedStream.append(fs.createReadStream('file1.txt')); -combinedStream.append(fs.createReadStream('file2.txt')); - -combinedStream.pipe(fs.createWriteStream('combined.txt')); -``` - -However, what if you don't have all the source streams yet, or you don't want -to allocate the resources (file descriptors, memory, etc.) for them right away? -Well, in that case you can simply provide a callback that supplies the stream -by calling a `next()` function: - -``` javascript -var CombinedStream = require('combined-stream'); -var fs = require('fs'); - -var combinedStream = CombinedStream.create(); -combinedStream.append(function(next) { - next(fs.createReadStream('file1.txt')); -}); -combinedStream.append(function(next) { - next(fs.createReadStream('file2.txt')); -}); - -combinedStream.pipe(fs.createWriteStream('combined.txt')); -``` - -## API - -### CombinedStream.create([options]) - -Returns a new combined stream object. Available options are: - -* `maxDataSize` -* `pauseStreams` - -The effect of those options is described below. - -### combinedStream.pauseStreams = `true` - -Whether to apply back pressure to the underlaying streams. If set to `false`, -the underlaying streams will never be paused. If set to `true`, the -underlaying streams will be paused right after being appended, as well as when -`delayedStream.pipe()` wants to throttle. - -### combinedStream.maxDataSize = `2 * 1024 * 1024` - -The maximum amount of bytes (or characters) to buffer for all source streams. -If this value is exceeded, `combinedStream` emits an `'error'` event. - -### combinedStream.dataSize = `0` - -The amount of bytes (or characters) currently buffered by `combinedStream`. - -### combinedStream.append(stream) - -Appends the given `stream` to the combinedStream object. If `pauseStreams` is -set to `true, this stream will also be paused right away. - -`streams` can also be a function that takes one parameter called `next`. `next` -is a function that must be invoked in order to provide the `next` stream, see -example above. - -Regardless of how the `stream` is appended, combined-stream always attaches an -`'error'` listener to it, so you don't have to do that manually. - -Special case: `stream` can also be a String or Buffer. - -### combinedStream.write(data) - -You should not call this, `combinedStream` takes care of piping the appended -streams into itself for you. - -### combinedStream.resume() - -Causes `combinedStream` to start drain the streams it manages. The function is -idempotent, and also emits a `'resume'` event each time which usually goes to -the stream that is currently being drained. - -### combinedStream.pause(); - -If `combinedStream.pauseStreams` is set to `false`, this does nothing. -Otherwise a `'pause'` event is emitted, this goes to the stream that is -currently being drained, so you can use it to apply back pressure. - -### combinedStream.end(); - -Sets `combinedStream.writable` to false, emits an `'end'` event, and removes -all streams from the queue. - -### combinedStream.destroy(); - -Same as `combinedStream.end()`, except it emits a `'close'` event instead of -`'end'`. - -## License - -combined-stream is licensed under the MIT license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/lib/combined_stream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/lib/combined_stream.js deleted file mode 100644 index 6b5c21b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/lib/combined_stream.js +++ /dev/null @@ -1,188 +0,0 @@ -var util = require('util'); -var Stream = require('stream').Stream; -var DelayedStream = require('delayed-stream'); - -module.exports = CombinedStream; -function CombinedStream() { - this.writable = false; - this.readable = true; - this.dataSize = 0; - this.maxDataSize = 2 * 1024 * 1024; - this.pauseStreams = true; - - this._released = false; - this._streams = []; - this._currentStream = null; -} -util.inherits(CombinedStream, Stream); - -CombinedStream.create = function(options) { - var combinedStream = new this(); - - options = options || {}; - for (var option in options) { - combinedStream[option] = options[option]; - } - - return combinedStream; -}; - -CombinedStream.isStreamLike = function(stream) { - return (typeof stream !== 'function') - && (typeof stream !== 'string') - && (typeof stream !== 'boolean') - && (typeof stream !== 'number') - && (!Buffer.isBuffer(stream)); -}; - -CombinedStream.prototype.append = function(stream) { - var isStreamLike = CombinedStream.isStreamLike(stream); - - if (isStreamLike) { - if (!(stream instanceof DelayedStream)) { - var newStream = DelayedStream.create(stream, { - maxDataSize: Infinity, - pauseStream: this.pauseStreams, - }); - stream.on('data', this._checkDataSize.bind(this)); - stream = newStream; - } - - this._handleErrors(stream); - - if (this.pauseStreams) { - stream.pause(); - } - } - - this._streams.push(stream); - return this; -}; - -CombinedStream.prototype.pipe = function(dest, options) { - Stream.prototype.pipe.call(this, dest, options); - this.resume(); - return dest; -}; - -CombinedStream.prototype._getNext = function() { - this._currentStream = null; - var stream = this._streams.shift(); - - - if (typeof stream == 'undefined') { - this.end(); - return; - } - - if (typeof stream !== 'function') { - this._pipeNext(stream); - return; - } - - var getStream = stream; - getStream(function(stream) { - var isStreamLike = CombinedStream.isStreamLike(stream); - if (isStreamLike) { - stream.on('data', this._checkDataSize.bind(this)); - this._handleErrors(stream); - } - - this._pipeNext(stream); - }.bind(this)); -}; - -CombinedStream.prototype._pipeNext = function(stream) { - this._currentStream = stream; - - var isStreamLike = CombinedStream.isStreamLike(stream); - if (isStreamLike) { - stream.on('end', this._getNext.bind(this)); - stream.pipe(this, {end: false}); - return; - } - - var value = stream; - this.write(value); - this._getNext(); -}; - -CombinedStream.prototype._handleErrors = function(stream) { - var self = this; - stream.on('error', function(err) { - self._emitError(err); - }); -}; - -CombinedStream.prototype.write = function(data) { - this.emit('data', data); -}; - -CombinedStream.prototype.pause = function() { - if (!this.pauseStreams) { - return; - } - - if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause(); - this.emit('pause'); -}; - -CombinedStream.prototype.resume = function() { - if (!this._released) { - this._released = true; - this.writable = true; - this._getNext(); - } - - if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume(); - this.emit('resume'); -}; - -CombinedStream.prototype.end = function() { - this._reset(); - this.emit('end'); -}; - -CombinedStream.prototype.destroy = function() { - this._reset(); - this.emit('close'); -}; - -CombinedStream.prototype._reset = function() { - this.writable = false; - this._streams = []; - this._currentStream = null; -}; - -CombinedStream.prototype._checkDataSize = function() { - this._updateDataSize(); - if (this.dataSize <= this.maxDataSize) { - return; - } - - var message = - 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'; - this._emitError(new Error(message)); -}; - -CombinedStream.prototype._updateDataSize = function() { - this.dataSize = 0; - - var self = this; - this._streams.forEach(function(stream) { - if (!stream.dataSize) { - return; - } - - self.dataSize += stream.dataSize; - }); - - if (this._currentStream && this._currentStream.dataSize) { - this.dataSize += this._currentStream.dataSize; - } -}; - -CombinedStream.prototype._emitError = function(err) { - this._reset(); - this.emit('error', err); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/.npmignore deleted file mode 100644 index 9daeafb9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/.npmignore +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/License deleted file mode 100644 index 4804b7ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Debuggable Limited - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile deleted file mode 100644 index b4ff85a3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -SHELL := /bin/bash - -test: - @./test/run.js - -.PHONY: test - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Readme.md deleted file mode 100644 index aca36f9f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Readme.md +++ /dev/null @@ -1,141 +0,0 @@ -# delayed-stream - -Buffers events from a stream until you are ready to handle them. - -## Installation - -``` bash -npm install delayed-stream -``` - -## Usage - -The following example shows how to write a http echo server that delays its -response by 1000 ms. - -``` javascript -var DelayedStream = require('delayed-stream'); -var http = require('http'); - -http.createServer(function(req, res) { - var delayed = DelayedStream.create(req); - - setTimeout(function() { - res.writeHead(200); - delayed.pipe(res); - }, 1000); -}); -``` - -If you are not using `Stream#pipe`, you can also manually release the buffered -events by calling `delayedStream.resume()`: - -``` javascript -var delayed = DelayedStream.create(req); - -setTimeout(function() { - // Emit all buffered events and resume underlaying source - delayed.resume(); -}, 1000); -``` - -## Implementation - -In order to use this meta stream properly, here are a few things you should -know about the implementation. - -### Event Buffering / Proxying - -All events of the `source` stream are hijacked by overwriting the `source.emit` -method. Until node implements a catch-all event listener, this is the only way. - -However, delayed-stream still continues to emit all events it captures on the -`source`, regardless of whether you have released the delayed stream yet or -not. - -Upon creation, delayed-stream captures all `source` events and stores them in -an internal event buffer. Once `delayedStream.release()` is called, all -buffered events are emitted on the `delayedStream`, and the event buffer is -cleared. After that, delayed-stream merely acts as a proxy for the underlaying -source. - -### Error handling - -Error events on `source` are buffered / proxied just like any other events. -However, `delayedStream.create` attaches a no-op `'error'` listener to the -`source`. This way you only have to handle errors on the `delayedStream` -object, rather than in two places. - -### Buffer limits - -delayed-stream provides a `maxDataSize` property that can be used to limit -the amount of data being buffered. In order to protect you from bad `source` -streams that don't react to `source.pause()`, this feature is enabled by -default. - -## API - -### DelayedStream.create(source, [options]) - -Returns a new `delayedStream`. Available options are: - -* `pauseStream` -* `maxDataSize` - -The description for those properties can be found below. - -### delayedStream.source - -The `source` stream managed by this object. This is useful if you are -passing your `delayedStream` around, and you still want to access properties -on the `source` object. - -### delayedStream.pauseStream = true - -Whether to pause the underlaying `source` when calling -`DelayedStream.create()`. Modifying this property afterwards has no effect. - -### delayedStream.maxDataSize = 1024 * 1024 - -The amount of data to buffer before emitting an `error`. - -If the underlaying source is emitting `Buffer` objects, the `maxDataSize` -refers to bytes. - -If the underlaying source is emitting JavaScript strings, the size refers to -characters. - -If you know what you are doing, you can set this property to `Infinity` to -disable this feature. You can also modify this property during runtime. - -### delayedStream.dataSize = 0 - -The amount of data buffered so far. - -### delayedStream.readable - -An ECMA5 getter that returns the value of `source.readable`. - -### delayedStream.resume() - -If the `delayedStream` has not been released so far, `delayedStream.release()` -is called. - -In either case, `source.resume()` is called. - -### delayedStream.pause() - -Calls `source.pause()`. - -### delayedStream.pipe(dest) - -Calls `delayedStream.resume()` and then proxies the arguments to `source.pipe`. - -### delayedStream.release() - -Emits and clears all events that have been buffered up so far. This does not -resume the underlaying source, use `delayedStream.resume()` instead. - -## License - -delayed-stream is licensed under the MIT license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js deleted file mode 100644 index b38fc85f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js +++ /dev/null @@ -1,107 +0,0 @@ -var Stream = require('stream').Stream; -var util = require('util'); - -module.exports = DelayedStream; -function DelayedStream() { - this.source = null; - this.dataSize = 0; - this.maxDataSize = 1024 * 1024; - this.pauseStream = true; - - this._maxDataSizeExceeded = false; - this._released = false; - this._bufferedEvents = []; -} -util.inherits(DelayedStream, Stream); - -DelayedStream.create = function(source, options) { - var delayedStream = new this(); - - options = options || {}; - for (var option in options) { - delayedStream[option] = options[option]; - } - - delayedStream.source = source; - - var realEmit = source.emit; - source.emit = function() { - delayedStream._handleEmit(arguments); - return realEmit.apply(source, arguments); - }; - - source.on('error', function() {}); - if (delayedStream.pauseStream) { - source.pause(); - } - - return delayedStream; -}; - -Object.defineProperty(DelayedStream.prototype, 'readable', { - configurable: true, - enumerable: true, - get: function() { - return this.source.readable; - } -}); - -DelayedStream.prototype.setEncoding = function() { - return this.source.setEncoding.apply(this.source, arguments); -}; - -DelayedStream.prototype.resume = function() { - if (!this._released) { - this.release(); - } - - this.source.resume(); -}; - -DelayedStream.prototype.pause = function() { - this.source.pause(); -}; - -DelayedStream.prototype.release = function() { - this._released = true; - - this._bufferedEvents.forEach(function(args) { - this.emit.apply(this, args); - }.bind(this)); - this._bufferedEvents = []; -}; - -DelayedStream.prototype.pipe = function() { - var r = Stream.prototype.pipe.apply(this, arguments); - this.resume(); - return r; -}; - -DelayedStream.prototype._handleEmit = function(args) { - if (this._released) { - this.emit.apply(this, args); - return; - } - - if (args[0] === 'data') { - this.dataSize += args[1].length; - this._checkIfMaxDataSizeExceeded(); - } - - this._bufferedEvents.push(args); -}; - -DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() { - if (this._maxDataSizeExceeded) { - return; - } - - if (this.dataSize <= this.maxDataSize) { - return; - } - - this._maxDataSizeExceeded = true; - var message = - 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.' - this.emit('error', new Error(message)); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json deleted file mode 100644 index 8ac66b81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "author": { - "name": "Felix Geisendörfer", - "email": "felix@debuggable.com", - "url": "http://debuggable.com/" - }, - "contributors": [ - { - "name": "Mike Atkins", - "email": "apeherder@gmail.com" - } - ], - "name": "delayed-stream", - "description": "Buffers events from a stream until you are ready to handle them.", - "license": "MIT", - "version": "1.0.0", - "homepage": "https://github.com/felixge/node-delayed-stream", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-delayed-stream.git" - }, - "main": "./lib/delayed_stream", - "engines": { - "node": ">=0.4.0" - }, - "scripts": { - "test": "make test" - }, - "dependencies": {}, - "devDependencies": { - "fake": "0.2.0", - "far": "0.0.1" - }, - "gitHead": "07a9dc99fb8f1a488160026b9ad77493f766fb84", - "bugs": { - "url": "https://github.com/felixge/node-delayed-stream/issues" - }, - "_id": "delayed-stream@1.0.0", - "_shasum": "df3ae199acadfb7d440aaae0b29e2272b24ec619", - "_from": "delayed-stream@>=1.0.0 <1.1.0", - "_npmVersion": "2.8.3", - "_nodeVersion": "1.6.4", - "_npmUser": { - "name": "apechimp", - "email": "apeherder@gmail.com" - }, - "dist": { - "shasum": "df3ae199acadfb7d440aaae0b29e2272b24ec619", - "tarball": "http://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - }, - "maintainers": [ - { - "name": "felixge", - "email": "felix@debuggable.com" - }, - { - "name": "apechimp", - "email": "apeherder@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/package.json deleted file mode 100644 index e0cd160f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/combined-stream/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "author": { - "name": "Felix Geisendörfer", - "email": "felix@debuggable.com", - "url": "http://debuggable.com/" - }, - "name": "combined-stream", - "description": "A stream that emits multiple other streams one after another.", - "version": "1.0.5", - "homepage": "https://github.com/felixge/node-combined-stream", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-combined-stream.git" - }, - "main": "./lib/combined_stream", - "scripts": { - "test": "node test/run.js" - }, - "engines": { - "node": ">= 0.8" - }, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "devDependencies": { - "far": "~0.0.7" - }, - "license": "MIT", - "gitHead": "cfc7b815d090a109bcedb5bb0f6713148d55a6b7", - "bugs": { - "url": "https://github.com/felixge/node-combined-stream/issues" - }, - "_id": "combined-stream@1.0.5", - "_shasum": "938370a57b4a51dea2c77c15d5c5fdf895164009", - "_from": "combined-stream@>=1.0.5 <1.1.0", - "_npmVersion": "2.10.1", - "_nodeVersion": "0.12.4", - "_npmUser": { - "name": "alexindigo", - "email": "iam@alexindigo.com" - }, - "dist": { - "shasum": "938370a57b4a51dea2c77c15d5c5fdf895164009", - "tarball": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" - }, - "maintainers": [ - { - "name": "felixge", - "email": "felix@debuggable.com" - }, - { - "name": "celer", - "email": "dtyree77@gmail.com" - }, - { - "name": "alexindigo", - "email": "iam@alexindigo.com" - }, - { - "name": "apechimp", - "email": "apeherder@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/.jscs.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/.jscs.json deleted file mode 100644 index 7e84b282..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/.jscs.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "additionalRules": [], - - "requireSemicolons": true, - - "disallowMultipleSpaces": true, - - "disallowIdentifierNames": [], - - "requireCurlyBraces": ["if", "else", "for", "while", "do", "try", "catch"], - - "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"], - - "disallowSpaceAfterKeywords": [], - - "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true }, - "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true }, - "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true }, - - "requireSpaceBetweenArguments": true, - - "disallowSpacesInsideParentheses": true, - - "disallowSpacesInsideArrayBrackets": true, - - "disallowQuotedKeysInObjects": "allButReserved", - - "disallowSpaceAfterObjectKeys": true, - - "requireCommaBeforeLineBreak": true, - - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], - "requireSpaceAfterPrefixUnaryOperators": [], - - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "requireSpaceBeforePostfixUnaryOperators": [], - - "disallowSpaceBeforeBinaryOperators": [], - "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - - "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - "disallowSpaceAfterBinaryOperators": [], - - "disallowImplicitTypeConversion": ["binary", "string"], - - "disallowKeywords": ["with", "eval"], - - "requireKeywordsOnNewLine": [], - "disallowKeywordsOnNewLine": ["else"], - - "requireLineFeedAtFileEnd": true, - - "disallowTrailingWhitespace": true, - - "disallowTrailingComma": true, - - "excludeFiles": ["node_modules/**", "vendor/**"], - - "disallowMultipleLineStrings": true, - - "requireDotNotation": true, - - "requireParenthesesAroundIIFE": true, - - "validateLineBreaks": "LF", - - "validateQuoteMarks": { - "escape": true, - "mark": "'" - }, - - "disallowOperatorBeforeLineBreak": [], - - "requireSpaceBeforeKeywords": [ - "do", - "for", - "if", - "else", - "switch", - "case", - "try", - "catch", - "finally", - "while", - "with", - "return" - ], - - "validateAlignedFunctionParameters": { - "lineBreakAfterOpeningBraces": true, - "lineBreakBeforeClosingBraces": true - }, - - "requirePaddingNewLinesBeforeExport": true, - - "validateNewlineAfterArrayElements": { - "maximum": 6 - }, - - "requirePaddingNewLinesAfterUseStrict": true -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/.npmignore deleted file mode 100644 index 30d74d25..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/.npmignore +++ /dev/null @@ -1 +0,0 @@ -test \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/.travis.yml deleted file mode 100644 index ebef6449..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/.travis.yml +++ /dev/null @@ -1,44 +0,0 @@ -language: node_js -node_js: - - "iojs-v2.3" - - "iojs-v2.2" - - "iojs-v2.1" - - "iojs-v2.0" - - "iojs-v1.8" - - "iojs-v1.7" - - "iojs-v1.6" - - "iojs-v1.5" - - "iojs-v1.4" - - "iojs-v1.3" - - "iojs-v1.2" - - "iojs-v1.1" - - "iojs-v1.0" - - "0.12" - - "0.11" - - "0.10" - - "0.9" - - "0.8" - - "0.6" - - "0.4" -before_install: - - '[ "${TRAVIS_NODE_VERSION}" = "0.6" ] || npm install -g npm@1.4.28 && npm install -g npm' -sudo: false -matrix: - fast_finish: true - allow_failures: - - node_js: "iojs-v2.2" - - node_js: "iojs-v2.1" - - node_js: "iojs-v2.0" - - node_js: "iojs-v1.7" - - node_js: "iojs-v1.6" - - node_js: "iojs-v1.5" - - node_js: "iojs-v1.4" - - node_js: "iojs-v1.3" - - node_js: "iojs-v1.2" - - node_js: "iojs-v1.1" - - node_js: "iojs-v1.0" - - node_js: "0.11" - - node_js: "0.9" - - node_js: "0.8" - - node_js: "0.6" - - node_js: "0.4" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/CHANGELOG.md deleted file mode 100644 index ee0cfd6a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/CHANGELOG.md +++ /dev/null @@ -1,69 +0,0 @@ -3.0.0 / 2015-07-01 -================== - * [Possible breaking change] Use global "strict" directive (#32) - * [Tests] `int` is an ES3 reserved word - * [Tests] Test up to `io.js` `v2.3` - * [Tests] Add `npm run eslint` - * [Dev Deps] Update `covert`, `jscs` - -2.0.1 / 2015-04-25 -================== - * Use an inline `isArray` check, for ES3 browsers. (#27) - * Some old browsers fail when an identifier is `toString` - * Test latest `node` and `io.js` versions on `travis-ci`; speed up builds - * Add license info to package.json (#25) - * Update `tape`, `jscs` - * Adding a CHANGELOG - -2.0.0 / 2014-10-01 -================== - * Increase code coverage to 100%; run code coverage as part of tests - * Add `npm run lint`; Run linter as part of tests - * Remove nodeType and setInterval checks in isPlainObject - * Updating `tape`, `jscs`, `covert` - * General style and README cleanup - -1.3.0 / 2014-06-20 -================== - * Add component.json for browser support (#18) - * Use SVG for badges in README (#16) - * Updating `tape`, `covert` - * Updating travis-ci to work with multiple node versions - * Fix `deep === false` bug (returning target as {}) (#14) - * Fixing constructor checks in isPlainObject - * Adding additional test coverage - * Adding `npm run coverage` - * Add LICENSE (#13) - * Adding a warning about `false`, per #11 - * General style and whitespace cleanup - -1.2.1 / 2013-09-14 -================== - * Fixing hasOwnProperty bugs that would only have shown up in specific browsers. Fixes #8 - * Updating `tape` - -1.2.0 / 2013-09-02 -================== - * Updating the README: add badges - * Adding a missing variable reference. - * Using `tape` instead of `buster` for tests; add more tests (#7) - * Adding node 0.10 to Travis CI (#6) - * Enabling "npm test" and cleaning up package.json (#5) - * Add Travis CI. - -1.1.3 / 2012-12-06 -================== - * Added unit tests. - * Ensure extend function is named. (Looks nicer in a stack trace.) - * README cleanup. - -1.1.1 / 2012-11-07 -================== - * README cleanup. - * Added installation instructions. - * Added a missing semicolon - -1.0.0 / 2012-04-08 -================== - * Initial commit - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/LICENSE deleted file mode 100644 index e16d6a56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Stefan Thomas - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/README.md deleted file mode 100644 index 632fb0f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/README.md +++ /dev/null @@ -1,62 +0,0 @@ -[![Build Status][travis-svg]][travis-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] - -# extend() for Node.js [![Version Badge][npm-version-png]][npm-url] - -`node-extend` is a port of the classic extend() method from jQuery. It behaves as you expect. It is simple, tried and true. - -## Installation - -This package is available on [npm][npm-url] as: `extend` - -``` sh -npm install extend -``` - -## Usage - -**Syntax:** extend **(** [`deep`], `target`, `object1`, [`objectN`] **)** - -*Extend one object with one or more others, returning the modified object.* - -Keep in mind that the target object will be modified, and will be returned from extend(). - -If a boolean true is specified as the first argument, extend performs a deep copy, recursively copying any objects it finds. Otherwise, the copy will share structure with the original object(s). -Undefined properties are not copied. However, properties inherited from the object's prototype will be copied over. -Warning: passing `false` as the first argument is not supported. - -### Arguments - -* `deep` *Boolean* (optional) -If set, the merge becomes recursive (i.e. deep copy). -* `target` *Object* -The object to extend. -* `object1` *Object* -The object that will be merged into the first. -* `objectN` *Object* (Optional) -More objects to merge into the first. - -## License - -`node-extend` is licensed under the [MIT License][mit-license-url]. - -## Acknowledgements - -All credit to the jQuery authors for perfecting this amazing utility. - -Ported to Node.js by [Stefan Thomas][github-justmoon] with contributions by [Jonathan Buchanan][github-insin] and [Jordan Harband][github-ljharb]. - -[travis-svg]: https://travis-ci.org/justmoon/node-extend.svg -[travis-url]: https://travis-ci.org/justmoon/node-extend -[npm-url]: https://npmjs.org/package/extend -[mit-license-url]: http://opensource.org/licenses/MIT -[github-justmoon]: https://github.com/justmoon -[github-insin]: https://github.com/insin -[github-ljharb]: https://github.com/ljharb -[npm-version-png]: http://vb.teelaun.ch/justmoon/node-extend.svg -[deps-svg]: https://david-dm.org/justmoon/node-extend.svg -[deps-url]: https://david-dm.org/justmoon/node-extend -[dev-deps-svg]: https://david-dm.org/justmoon/node-extend/dev-status.svg -[dev-deps-url]: https://david-dm.org/justmoon/node-extend#info=devDependencies - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/component.json deleted file mode 100644 index 1500a2f3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/component.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "extend", - "author": "Stefan Thomas (http://www.justmoon.net)", - "version": "3.0.0", - "description": "Port of jQuery.extend for node.js and the browser.", - "scripts": [ - "index.js" - ], - "contributors": [ - { - "name": "Jordan Harband", - "url": "https://github.com/ljharb" - } - ], - "keywords": [ - "extend", - "clone", - "merge" - ], - "repository" : { - "type": "git", - "url": "https://github.com/justmoon/node-extend.git" - }, - "dependencies": { - }, - "devDependencies": { - "tape" : "~3.0.0", - "covert": "~0.4.0", - "jscs": "~1.6.2" - } -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/index.js deleted file mode 100644 index f5ec75d5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/index.js +++ /dev/null @@ -1,86 +0,0 @@ -'use strict'; - -var hasOwn = Object.prototype.hasOwnProperty; -var toStr = Object.prototype.toString; - -var isArray = function isArray(arr) { - if (typeof Array.isArray === 'function') { - return Array.isArray(arr); - } - - return toStr.call(arr) === '[object Array]'; -}; - -var isPlainObject = function isPlainObject(obj) { - if (!obj || toStr.call(obj) !== '[object Object]') { - return false; - } - - var hasOwnConstructor = hasOwn.call(obj, 'constructor'); - var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); - // Not own constructor property must be Object - if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - var key; - for (key in obj) {/**/} - - return typeof key === 'undefined' || hasOwn.call(obj, key); -}; - -module.exports = function extend() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0], - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if (typeof target === 'boolean') { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } else if ((typeof target !== 'object' && typeof target !== 'function') || target == null) { - target = {}; - } - - for (; i < length; ++i) { - options = arguments[i]; - // Only deal with non-null/undefined values - if (options != null) { - // Extend the base object - for (name in options) { - src = target[name]; - copy = options[name]; - - // Prevent never-ending loop - if (target !== copy) { - // Recurse if we're merging plain objects or arrays - if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { - if (copyIsArray) { - copyIsArray = false; - clone = src && isArray(src) ? src : []; - } else { - clone = src && isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[name] = extend(deep, clone, copy); - - // Don't bring in undefined values - } else if (typeof copy !== 'undefined') { - target[name] = copy; - } - } - } - } - } - - // Return the modified object - return target; -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/package.json deleted file mode 100644 index c8c7cac9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/extend/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "extend", - "author": { - "name": "Stefan Thomas", - "email": "justmoon@members.fsf.org", - "url": "http://www.justmoon.net" - }, - "version": "3.0.0", - "description": "Port of jQuery.extend for node.js and the browser", - "main": "index", - "scripts": { - "test": "npm run lint && node test/index.js && npm run coverage-quiet", - "coverage": "covert test/index.js", - "coverage-quiet": "covert test/index.js --quiet", - "lint": "npm run jscs && npm run eslint", - "jscs": "jscs *.js */*.js", - "eslint": "eslint *.js */*.js" - }, - "contributors": [ - { - "name": "Jordan Harband", - "url": "https://github.com/ljharb" - } - ], - "keywords": [ - "extend", - "clone", - "merge" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/justmoon/node-extend.git" - }, - "dependencies": {}, - "devDependencies": { - "tape": "^4.0.0", - "covert": "^1.1.0", - "jscs": "^1.13.1", - "eslint": "^0.24.0" - }, - "license": "MIT", - "gitHead": "148e7270cab2e9413af2cd0cab147070d755ed6d", - "bugs": { - "url": "https://github.com/justmoon/node-extend/issues" - }, - "homepage": "https://github.com/justmoon/node-extend#readme", - "_id": "extend@3.0.0", - "_shasum": "5a474353b9f3353ddd8176dfd37b91c83a46f1d4", - "_from": "extend@>=3.0.0 <3.1.0", - "_npmVersion": "2.11.3", - "_nodeVersion": "2.3.1", - "_npmUser": { - "name": "ljharb", - "email": "ljharb@gmail.com" - }, - "dist": { - "shasum": "5a474353b9f3353ddd8176dfd37b91c83a46f1d4", - "tarball": "http://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "maintainers": [ - { - "name": "justmoon", - "email": "justmoon@members.fsf.org" - }, - { - "name": "ljharb", - "email": "ljharb@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/LICENSE deleted file mode 100644 index a4a9aee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/README.md deleted file mode 100644 index 9d5b6634..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/README.md +++ /dev/null @@ -1,4 +0,0 @@ -forever-agent -============= - -HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/index.js deleted file mode 100644 index 416c7abd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/index.js +++ /dev/null @@ -1,138 +0,0 @@ -module.exports = ForeverAgent -ForeverAgent.SSL = ForeverAgentSSL - -var util = require('util') - , Agent = require('http').Agent - , net = require('net') - , tls = require('tls') - , AgentSSL = require('https').Agent - -function getConnectionName(host, port) { - var name = '' - if (typeof host === 'string') { - name = host + ':' + port - } else { - // For node.js v012.0 and iojs-v1.5.1, host is an object. And any existing localAddress is part of the connection name. - name = host.host + ':' + host.port + ':' + (host.localAddress ? (host.localAddress + ':') : ':') - } - return name -} - -function ForeverAgent(options) { - var self = this - self.options = options || {} - self.requests = {} - self.sockets = {} - self.freeSockets = {} - self.maxSockets = self.options.maxSockets || Agent.defaultMaxSockets - self.minSockets = self.options.minSockets || ForeverAgent.defaultMinSockets - self.on('free', function(socket, host, port) { - var name = getConnectionName(host, port) - - if (self.requests[name] && self.requests[name].length) { - self.requests[name].shift().onSocket(socket) - } else if (self.sockets[name].length < self.minSockets) { - if (!self.freeSockets[name]) self.freeSockets[name] = [] - self.freeSockets[name].push(socket) - - // if an error happens while we don't use the socket anyway, meh, throw the socket away - var onIdleError = function() { - socket.destroy() - } - socket._onIdleError = onIdleError - socket.on('error', onIdleError) - } else { - // If there are no pending requests just destroy the - // socket and it will get removed from the pool. This - // gets us out of timeout issues and allows us to - // default to Connection:keep-alive. - socket.destroy() - } - }) - -} -util.inherits(ForeverAgent, Agent) - -ForeverAgent.defaultMinSockets = 5 - - -ForeverAgent.prototype.createConnection = net.createConnection -ForeverAgent.prototype.addRequestNoreuse = Agent.prototype.addRequest -ForeverAgent.prototype.addRequest = function(req, host, port) { - var name = getConnectionName(host, port) - - if (typeof host !== 'string') { - var options = host - port = options.port - host = options.host - } - - if (this.freeSockets[name] && this.freeSockets[name].length > 0 && !req.useChunkedEncodingByDefault) { - var idleSocket = this.freeSockets[name].pop() - idleSocket.removeListener('error', idleSocket._onIdleError) - delete idleSocket._onIdleError - req._reusedSocket = true - req.onSocket(idleSocket) - } else { - this.addRequestNoreuse(req, host, port) - } -} - -ForeverAgent.prototype.removeSocket = function(s, name, host, port) { - if (this.sockets[name]) { - var index = this.sockets[name].indexOf(s) - if (index !== -1) { - this.sockets[name].splice(index, 1) - } - } else if (this.sockets[name] && this.sockets[name].length === 0) { - // don't leak - delete this.sockets[name] - delete this.requests[name] - } - - if (this.freeSockets[name]) { - var index = this.freeSockets[name].indexOf(s) - if (index !== -1) { - this.freeSockets[name].splice(index, 1) - if (this.freeSockets[name].length === 0) { - delete this.freeSockets[name] - } - } - } - - if (this.requests[name] && this.requests[name].length) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(name, host, port).emit('free') - } -} - -function ForeverAgentSSL (options) { - ForeverAgent.call(this, options) -} -util.inherits(ForeverAgentSSL, ForeverAgent) - -ForeverAgentSSL.prototype.createConnection = createConnectionSSL -ForeverAgentSSL.prototype.addRequestNoreuse = AgentSSL.prototype.addRequest - -function createConnectionSSL (port, host, options) { - if (typeof port === 'object') { - options = port; - } else if (typeof host === 'object') { - options = host; - } else if (typeof options === 'object') { - options = options; - } else { - options = {}; - } - - if (typeof port === 'number') { - options.port = port; - } - - if (typeof host === 'string') { - options.host = host; - } - - return tls.connect(options); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/package.json deleted file mode 100644 index 1d672c1c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/forever-agent/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com", - "url": "http://www.futurealoof.com" - }, - "name": "forever-agent", - "description": "HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.", - "version": "0.6.1", - "license": "Apache-2.0", - "repository": { - "url": "git+https://github.com/mikeal/forever-agent.git" - }, - "main": "index.js", - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" - }, - "readme": "forever-agent\n=============\n\nHTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/mikeal/forever-agent/issues" - }, - "homepage": "https://github.com/mikeal/forever-agent#readme", - "_id": "forever-agent@0.6.1", - "_shasum": "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91", - "_resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "_from": "forever-agent@>=0.6.1 <0.7.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/.dockerignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/.dockerignore deleted file mode 100644 index c67305cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/.dockerignore +++ /dev/null @@ -1,7 +0,0 @@ -*.iml -*.sublime-* -*.un~ -.idea -sftp-config.json -node_modules/ -test/tmp/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/.editorconfig b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/.editorconfig deleted file mode 100644 index 0f099897..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/.editorconfig +++ /dev/null @@ -1,10 +0,0 @@ -# editorconfig.org -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/.eslintignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/.eslintignore deleted file mode 100644 index 8d87b1d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/* diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/License deleted file mode 100644 index c7ff12a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors - - 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/Readme.md deleted file mode 100644 index e857db6e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/Readme.md +++ /dev/null @@ -1,218 +0,0 @@ -# Form-Data [![NPM Module](https://img.shields.io/npm/v/form-data.svg)](https://www.npmjs.com/package/form-data) [![Join the chat at https://gitter.im/form-data/form-data](http://form-data.github.io/images/gitterbadge.svg)](https://gitter.im/form-data/form-data) - -A library to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications. - -The API of this library is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd]. - -[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface -[streams2-thing]: http://nodejs.org/api/stream.html#stream_compatibility_with_older_node_versions - -[![Linux Build](https://img.shields.io/travis/form-data/form-data/master.svg?label=linux:0.10-5.x)](https://travis-ci.org/form-data/form-data) -[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/form-data/master.svg?label=windows:0.10-5.x)](https://ci.appveyor.com/project/alexindigo/form-data) -[![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/master.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master) - -[![Dependency Status](https://img.shields.io/david/form-data/form-data.svg)](https://david-dm.org/form-data/form-data) -[![Codacy Badge](https://img.shields.io/codacy/43ece80331c246179695e41f81eeffe2.svg)](https://www.codacy.com/app/form-data/form-data) -[![bitHound Overall Score](https://www.bithound.io/github/form-data/form-data/badges/score.svg)](https://www.bithound.io/github/form-data/form-data) - -## Install - -``` -npm install form-data -``` - -## Usage - -In this example we are constructing a form with 3 fields that contain a string, -a buffer and a file stream. - -``` javascript -var FormData = require('form-data'); -var fs = require('fs'); - -var form = new FormData(); -form.append('my_field', 'my value'); -form.append('my_buffer', new Buffer(10)); -form.append('my_file', fs.createReadStream('/foo/bar.jpg')); -``` - -Also you can use http-response stream: - -``` javascript -var FormData = require('form-data'); -var http = require('http'); - -var form = new FormData(); - -http.request('http://nodejs.org/images/logo.png', function(response) { - form.append('my_field', 'my value'); - form.append('my_buffer', new Buffer(10)); - form.append('my_logo', response); -}); -``` - -Or @mikeal's [request](https://github.com/request/request) stream: - -``` javascript -var FormData = require('form-data'); -var request = require('request'); - -var form = new FormData(); - -form.append('my_field', 'my value'); -form.append('my_buffer', new Buffer(10)); -form.append('my_logo', request('http://nodejs.org/images/logo.png')); -``` - -In order to submit this form to a web application, call ```submit(url, [callback])``` method: - -``` javascript -form.submit('http://example.org/', function(err, res) { - // res – response object (http.IncomingMessage) // - res.resume(); -}); - -``` - -For more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods. - -### Alternative submission methods - -You can use node's http client interface: - -``` javascript -var http = require('http'); - -var request = http.request({ - method: 'post', - host: 'example.org', - path: '/upload', - headers: form.getHeaders() -}); - -form.pipe(request); - -request.on('response', function(res) { - console.log(res.statusCode); -}); -``` - -Or if you would prefer the `'Content-Length'` header to be set for you: - -``` javascript -form.submit('example.org/upload', function(err, res) { - console.log(res.statusCode); -}); -``` - -To use custom headers and pre-known length in parts: - -``` javascript -var CRLF = '\r\n'; -var form = new FormData(); - -var options = { - header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF, - knownLength: 1 -}; - -form.append('my_buffer', buffer, options); - -form.submit('http://example.com/', function(err, res) { - if (err) throw err; - console.log('Done'); -}); -``` - -Form-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal's request```), for some other types of streams you'd need to provide "file"-related information manually: - -``` javascript -someModule.stream(function(err, stdout, stderr) { - if (err) throw err; - - var form = new FormData(); - - form.append('file', stdout, { - filename: 'unicycle.jpg', - contentType: 'image/jpg', - knownLength: 19806 - }); - - form.submit('http://example.com/', function(err, res) { - if (err) throw err; - console.log('Done'); - }); -}); -``` - -For edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter: - -``` javascript -form.submit({ - host: 'example.com', - path: '/probably.php?extra=params', - auth: 'username:password' -}, function(err, res) { - console.log(res.statusCode); -}); -``` - -In case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`: - -``` javascript -form.submit({ - host: 'example.com', - path: '/surelynot.php', - headers: {'x-test-header': 'test-header-value'} -}, function(err, res) { - console.log(res.statusCode); -}); -``` - -### Integration with other libraries - -#### Request - -Form submission using [request](https://github.com/request/request): - -```javascript -var formData = { - my_field: 'my_value', - my_file: fs.createReadStream(__dirname + '/unicycle.jpg'), -}; - -request.post({url:'http://service.com/upload', formData: formData}, function(err, httpResponse, body) { - if (err) { - return console.error('upload failed:', err); - } - console.log('Upload successful! Server responded with:', body); -}); -``` - -For more details see [request readme](https://github.com/request/request#multipartform-data-multipart-form-uploads). - -#### node-fetch - -You can also submit a form using [node-fetch](https://github.com/bitinn/node-fetch): - -```javascript -var form = new FormData(); - -form.append('a', 1); - -fetch('http://example.com', { method: 'POST', body: form }) - .then(function(res) { - return res.json(); - }).then(function(json) { - console.log(json); - }); -``` - -## Notes - -- ```getLengthSync()``` method DOESN'T calculate length for streams, use ```knownLength``` options as workaround. -- If it feels like FormData hangs after submit and you're on ```node-0.10```, please check [Compatibility with Older Node Versions][streams2-thing] - -## License - -Form-Data is licensed under the MIT license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/lib/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/lib/browser.js deleted file mode 100644 index 8141d658..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/lib/browser.js +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-env browser */ -module.exports = FormData; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/lib/form_data.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/lib/form_data.js deleted file mode 100644 index 55328b46..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/lib/form_data.js +++ /dev/null @@ -1,411 +0,0 @@ -var CombinedStream = require('combined-stream'); -var util = require('util'); -var path = require('path'); -var http = require('http'); -var https = require('https'); -var parseUrl = require('url').parse; -var fs = require('fs'); -var mime = require('mime-types'); -var async = require('async'); -var populate = require('./populate.js'); - -// Public API -module.exports = FormData; - -// make it a Stream -util.inherits(FormData, CombinedStream); - -/** - * Create readable "multipart/form-data" streams. - * Can be used to submit forms - * and file uploads to other web applications. - * - * @constructor - */ -function FormData() { - if (!(this instanceof FormData)) { - throw new TypeError('Failed to construct FormData: Please use the _new_ operator, this object constructor cannot be called as a function.'); - } - - this._overheadLength = 0; - this._valueLength = 0; - this._lengthRetrievers = []; - - CombinedStream.call(this); -} - -FormData.LINE_BREAK = '\r\n'; -FormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream'; - -FormData.prototype.append = function(field, value, options) { - - options = options || {}; - - // allow filename as single option - if (typeof options == 'string') { - options = {filename: options}; - } - - var append = CombinedStream.prototype.append.bind(this); - - // all that streamy business can't handle numbers - if (typeof value == 'number') { - value = '' + value; - } - - // https://github.com/felixge/node-form-data/issues/38 - if (util.isArray(value)) { - // Please convert your array into string - // the way web server expects it - this._error(new Error('Arrays are not supported.')); - return; - } - - var header = this._multiPartHeader(field, value, options); - var footer = this._multiPartFooter(); - - append(header); - append(value); - append(footer); - - // pass along options.knownLength - this._trackLength(header, value, options); -}; - -FormData.prototype._trackLength = function(header, value, options) { - var valueLength = 0; - - // used w/ getLengthSync(), when length is known. - // e.g. for streaming directly from a remote server, - // w/ a known file a size, and not wanting to wait for - // incoming file to finish to get its size. - if (options.knownLength != null) { - valueLength += +options.knownLength; - } else if (Buffer.isBuffer(value)) { - valueLength = value.length; - } else if (typeof value === 'string') { - valueLength = Buffer.byteLength(value); - } - - this._valueLength += valueLength; - - // @check why add CRLF? does this account for custom/multiple CRLFs? - this._overheadLength += - Buffer.byteLength(header) + - FormData.LINE_BREAK.length; - - // empty or either doesn't have path or not an http response - if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) )) { - return; - } - - // no need to bother with the length - if (!options.knownLength) { - this._lengthRetrievers.push(function(next) { - - if (value.hasOwnProperty('fd')) { - - // take read range into a account - // `end` = Infinity –> read file till the end - // - // TODO: Looks like there is bug in Node fs.createReadStream - // it doesn't respect `end` options without `start` options - // Fix it when node fixes it. - // https://github.com/joyent/node/issues/7819 - if (value.end != undefined && value.end != Infinity && value.start != undefined) { - - // when end specified - // no need to calculate range - // inclusive, starts with 0 - next(null, value.end + 1 - (value.start ? value.start : 0)); - - // not that fast snoopy - } else { - // still need to fetch file size from fs - fs.stat(value.path, function(err, stat) { - - var fileSize; - - if (err) { - next(err); - return; - } - - // update final size based on the range options - fileSize = stat.size - (value.start ? value.start : 0); - next(null, fileSize); - }); - } - - // or http response - } else if (value.hasOwnProperty('httpVersion')) { - next(null, +value.headers['content-length']); - - // or request stream http://github.com/mikeal/request - } else if (value.hasOwnProperty('httpModule')) { - // wait till response come back - value.on('response', function(response) { - value.pause(); - next(null, +response.headers['content-length']); - }); - value.resume(); - - // something else - } else { - next('Unknown stream'); - } - }); - } -}; - -FormData.prototype._multiPartHeader = function(field, value, options) { - // custom header specified (as string)? - // it becomes responsible for boundary - // (e.g. to handle extra CRLFs on .NET servers) - if (options.header) { - return options.header; - } - - var contentDisposition = this._getContentDisposition(value, options); - var contentType = this._getContentType(value, options); - - var contents = ''; - var headers = { - // add custom disposition as third element or keep it two elements if not - 'Content-Disposition': ['form-data', 'name="' + field + '"'].concat(contentDisposition || []), - // if no content type. allow it to be empty array - 'Content-Type': [].concat(contentType || []) - }; - - for (var prop in headers) { - if (headers[prop].length) { - contents += prop + ': ' + headers[prop].join('; ') + FormData.LINE_BREAK; - } - } - - return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK; -}; - -FormData.prototype._getContentDisposition = function(value, options) { - - var contentDisposition; - - // custom filename takes precedence - // fs- and request- streams have path property - var filename = options.filename || value.path; - - // or try http response - if (!filename && value.readable && value.hasOwnProperty('httpVersion')) { - filename = value.client._httpMessage.path; - } - - if (filename) { - contentDisposition = 'filename="' + path.basename(filename) + '"'; - } - - return contentDisposition; -}; - -FormData.prototype._getContentType = function(value, options) { - - // use custom content-type above all - var contentType = options.contentType; - - // or try `path` from fs-, request- streams - if (!contentType && value.path) { - contentType = mime.lookup(value.path); - } - - // or if it's http-reponse - if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) { - contentType = value.headers['content-type']; - } - - // or guess it from the filename - if (!contentType && options.filename) { - contentType = mime.lookup(options.filename); - } - - // fallback to the default content type if `value` is not simple value - if (!contentType && typeof value == 'object') { - contentType = FormData.DEFAULT_CONTENT_TYPE; - } - - return contentType; -}; - -FormData.prototype._multiPartFooter = function() { - return function(next) { - var footer = FormData.LINE_BREAK; - - var lastPart = (this._streams.length === 0); - if (lastPart) { - footer += this._lastBoundary(); - } - - next(footer); - }.bind(this); -}; - -FormData.prototype._lastBoundary = function() { - return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK; -}; - -FormData.prototype.getHeaders = function(userHeaders) { - var header; - var formHeaders = { - 'content-type': 'multipart/form-data; boundary=' + this.getBoundary() - }; - - for (header in userHeaders) { - if (userHeaders.hasOwnProperty(header)) { - formHeaders[header.toLowerCase()] = userHeaders[header]; - } - } - - return formHeaders; -}; - -FormData.prototype.getCustomHeaders = function(contentType) { - contentType = contentType ? contentType : 'multipart/form-data'; - - var formHeaders = { - 'content-type': contentType + '; boundary=' + this.getBoundary(), - 'content-length': this.getLengthSync() - }; - - return formHeaders; -}; - -FormData.prototype.getBoundary = function() { - if (!this._boundary) { - this._generateBoundary(); - } - - return this._boundary; -}; - -FormData.prototype._generateBoundary = function() { - // This generates a 50 character boundary similar to those used by Firefox. - // They are optimized for boyer-moore parsing. - var boundary = '--------------------------'; - for (var i = 0; i < 24; i++) { - boundary += Math.floor(Math.random() * 10).toString(16); - } - - this._boundary = boundary; -}; - -// Note: getLengthSync DOESN'T calculate streams length -// As workaround one can calculate file size manually -// and add it as knownLength option -FormData.prototype.getLengthSync = function() { - var knownLength = this._overheadLength + this._valueLength; - - // Don't get confused, there are 3 "internal" streams for each keyval pair - // so it basically checks if there is any value added to the form - if (this._streams.length) { - knownLength += this._lastBoundary().length; - } - - // https://github.com/form-data/form-data/issues/40 - if (this._lengthRetrievers.length) { - // Some async length retrievers are present - // therefore synchronous length calculation is false. - // Please use getLength(callback) to get proper length - this._error(new Error('Cannot calculate proper length in synchronous way.')); - } - - return knownLength; -}; - -FormData.prototype.getLength = function(cb) { - var knownLength = this._overheadLength + this._valueLength; - - if (this._streams.length) { - knownLength += this._lastBoundary().length; - } - - if (!this._lengthRetrievers.length) { - process.nextTick(cb.bind(this, null, knownLength)); - return; - } - - async.parallel(this._lengthRetrievers, function(err, values) { - if (err) { - cb(err); - return; - } - - values.forEach(function(length) { - knownLength += length; - }); - - cb(null, knownLength); - }); -}; - -FormData.prototype.submit = function(params, cb) { - var request - , options - , defaults = {method: 'post'} - ; - - // parse provided url if it's string - // or treat it as options object - if (typeof params == 'string') { - - params = parseUrl(params); - options = populate({ - port: params.port, - path: params.pathname, - host: params.hostname - }, defaults); - - // use custom params - } else { - - options = populate(params, defaults); - // if no port provided use default one - if (!options.port) { - options.port = options.protocol == 'https:' ? 443 : 80; - } - } - - // put that good code in getHeaders to some use - options.headers = this.getHeaders(params.headers); - - // https if specified, fallback to http in any other case - if (options.protocol == 'https:') { - request = https.request(options); - } else { - request = http.request(options); - } - - // get content length and fire away - this.getLength(function(err, length) { - if (err) { - this._error(err); - return; - } - - // add content length - request.setHeader('Content-Length', length); - - this.pipe(request); - if (cb) { - request.on('error', cb); - request.on('response', cb.bind(this, null)); - } - }.bind(this)); - - return request; -}; - -FormData.prototype._error = function(err) { - if (!this.error) { - this.error = err; - this.pause(); - this.emit('error', err); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/lib/populate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/lib/populate.js deleted file mode 100644 index 6f64a6d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/lib/populate.js +++ /dev/null @@ -1,9 +0,0 @@ -// populates missing values -module.exports = function(dst, src) { - for (var prop in src) { - if (src.hasOwnProperty(prop) && !dst[prop]) { - dst[prop] = src[prop]; - } - } - return dst; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/CHANGELOG.md deleted file mode 100644 index f15e0812..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/CHANGELOG.md +++ /dev/null @@ -1,125 +0,0 @@ -# v1.5.2 -- Allow using `"consructor"` as an argument in `memoize` (#998) -- Give a better error messsage when `auto` dependency checking fails (#994) -- Various doc updates (#936, #956, #979, #1002) - -# v1.5.1 -- Fix issue with `pause` in `queue` with concurrency enabled (#946) -- `while` and `until` now pass the final result to callback (#963) -- `auto` will properly handle concurrency when there is no callback (#966) -- `auto` will now properly stop execution when an error occurs (#988, #993) -- Various doc fixes (#971, #980) - -# v1.5.0 - -- Added `transform`, analogous to [`_.transform`](http://lodash.com/docs#transform) (#892) -- `map` now returns an object when an object is passed in, rather than array with non-numeric keys. `map` will begin always returning an array with numeric indexes in the next major release. (#873) -- `auto` now accepts an optional `concurrency` argument to limit the number of running tasks (#637) -- Added `queue#workersList()`, to retrieve the list of currently running tasks. (#891) -- Various code simplifications (#896, #904) -- Various doc fixes :scroll: (#890, #894, #903, #905, #912) - -# v1.4.2 - -- Ensure coverage files don't get published on npm (#879) - -# v1.4.1 - -- Add in overlooked `detectLimit` method (#866) -- Removed unnecessary files from npm releases (#861) -- Removed usage of a reserved word to prevent :boom: in older environments (#870) - -# v1.4.0 - -- `asyncify` now supports promises (#840) -- Added `Limit` versions of `filter` and `reject` (#836) -- Add `Limit` versions of `detect`, `some` and `every` (#828, #829) -- `some`, `every` and `detect` now short circuit early (#828, #829) -- Improve detection of the global object (#804), enabling use in WebWorkers -- `whilst` now called with arguments from iterator (#823) -- `during` now gets called with arguments from iterator (#824) -- Code simplifications and optimizations aplenty ([diff](https://github.com/caolan/async/compare/v1.3.0...v1.4.0)) - - -# v1.3.0 - -New Features: -- Added `constant` -- Added `asyncify`/`wrapSync` for making sync functions work with callbacks. (#671, #806) -- Added `during` and `doDuring`, which are like `whilst` with an async truth test. (#800) -- `retry` now accepts an `interval` parameter to specify a delay between retries. (#793) -- `async` should work better in Web Workers due to better `root` detection (#804) -- Callbacks are now optional in `whilst`, `doWhilst`, `until`, and `doUntil` (#642) -- Various internal updates (#786, #801, #802, #803) -- Various doc fixes (#790, #794) - -Bug Fixes: -- `cargo` now exposes the `payload` size, and `cargo.payload` can be changed on the fly after the `cargo` is created. (#740, #744, #783) - - -# v1.2.1 - -Bug Fix: - -- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782) - - -# v1.2.0 - -New Features: - -- Added `timesLimit` (#743) -- `concurrency` can be changed after initialization in `queue` by setting `q.concurrency`. The new concurrency will be reflected the next time a task is processed. (#747, #772) - -Bug Fixes: - -- Fixed a regression in `each` and family with empty arrays that have additional properties. (#775, #777) - - -# v1.1.1 - -Bug Fix: - -- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782) - - -# v1.1.0 - -New Features: - -- `cargo` now supports all of the same methods and event callbacks as `queue`. -- Added `ensureAsync` - A wrapper that ensures an async function calls its callback on a later tick. (#769) -- Optimized `map`, `eachOf`, and `waterfall` families of functions -- Passing a `null` or `undefined` array to `map`, `each`, `parallel` and families will be treated as an empty array (#667). -- The callback is now optional for the composed results of `compose` and `seq`. (#618) -- Reduced file size by 4kb, (minified version by 1kb) -- Added code coverage through `nyc` and `coveralls` (#768) - -Bug Fixes: - -- `forever` will no longer stack overflow with a synchronous iterator (#622) -- `eachLimit` and other limit functions will stop iterating once an error occurs (#754) -- Always pass `null` in callbacks when there is no error (#439) -- Ensure proper conditions when calling `drain()` after pushing an empty data set to a queue (#668) -- `each` and family will properly handle an empty array (#578) -- `eachSeries` and family will finish if the underlying array is modified during execution (#557) -- `queue` will throw if a non-function is passed to `q.push()` (#593) -- Doc fixes (#629, #766) - - -# v1.0.0 - -No known breaking changes, we are simply complying with semver from here on out. - -Changes: - -- Start using a changelog! -- Add `forEachOf` for iterating over Objects (or to iterate Arrays with indexes available) (#168 #704 #321) -- Detect deadlocks in `auto` (#663) -- Better support for require.js (#527) -- Throw if queue created with concurrency `0` (#714) -- Fix unneeded iteration in `queue.resume()` (#758) -- Guard against timer mocking overriding `setImmediate` (#609 #611) -- Miscellaneous doc fixes (#542 #596 #615 #628 #631 #690 #729) -- Use single noop function internally (#546) -- Optimize internal `_each`, `_map` and `_keys` functions. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/LICENSE deleted file mode 100644 index 8f296985..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010-2014 Caolan McMahon - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/README.md deleted file mode 100644 index 316c4050..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/README.md +++ /dev/null @@ -1,1877 +0,0 @@ -# Async.js - -[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async) -[![NPM version](http://img.shields.io/npm/v/async.svg)](https://www.npmjs.org/package/async) -[![Coverage Status](https://coveralls.io/repos/caolan/async/badge.svg?branch=master)](https://coveralls.io/r/caolan/async?branch=master) -[![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) - - -Async is a utility module which provides straight-forward, powerful functions -for working with asynchronous JavaScript. Although originally designed for -use with [Node.js](http://nodejs.org) and installable via `npm install async`, -it can also be used directly in the browser. - -Async is also installable via: - -- [bower](http://bower.io/): `bower install async` -- [component](https://github.com/component/component): `component install - caolan/async` -- [jam](http://jamjs.org/): `jam install async` -- [spm](http://spmjs.io/): `spm install async` - -Async provides around 20 functions that include the usual 'functional' -suspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns -for asynchronous control flow (`parallel`, `series`, `waterfall`…). All these -functions assume you follow the Node.js convention of providing a single -callback as the last argument of your `async` function. - - -## Quick Examples - -```javascript -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); - -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); - -async.parallel([ - function(){ ... }, - function(){ ... } -], callback); - -async.series([ - function(){ ... }, - function(){ ... } -]); -``` - -There are many more functions available so take a look at the docs below for a -full list. This module aims to be comprehensive, so if you feel anything is -missing please create a GitHub issue for it. - -## Common Pitfalls [(StackOverflow)](http://stackoverflow.com/questions/tagged/async.js) -### Synchronous iteration functions - -If 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.setImmediate` to start a new call stack on the next tick of the event loop. - -This can also arise by accident if you callback early in certain cases: - -```js -async.eachSeries(hugeArray, function iterator(item, callback) { - if (inCache(item)) { - callback(null, cache[item]); // if many items are cached, you'll overflow - } else { - doSomeIO(item, callback); - } -}, function done() { - //... -}); -``` - -Just change it to: - -```js -async.eachSeries(hugeArray, function iterator(item, callback) { - if (inCache(item)) { - async.setImmediate(function () { - callback(null, cache[item]); - }); - } else { - doSomeIO(item, callback); - //... -``` - -Async 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. - -If 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. - - -### Multiple callbacks - -Make sure to always `return` when calling a callback early, otherwise you will cause multiple callbacks and unpredictable behavior in many cases. - -```js -async.waterfall([ - function (callback) { - getSomething(options, function (err, result) { - if (err) { - callback(new Error("failed getting something:" + err.message)); - // we should return here - } - // since we did not return, this callback still will be called and - // `processData` will be called twice - callback(null, result); - }); - }, - processData -], done) -``` - -It is always good practice to `return callback(err, result)` whenever a callback call is not the last statement of a function. - - -### Binding a context to an iterator - -This section is really about `bind`, not about `async`. If you are wondering how to -make `async` execute your iterators in a given context, or are confused as to why -a method of another library isn't working as an iterator, study this example: - -```js -// Here is a simple object with an (unnecessarily roundabout) squaring method -var AsyncSquaringLibrary = { - squareExponent: 2, - square: function(number, callback){ - var result = Math.pow(number, this.squareExponent); - setTimeout(function(){ - callback(null, result); - }, 200); - } -}; - -async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){ - // result is [NaN, NaN, NaN] - // This fails because the `this.squareExponent` expression in the square - // function is not evaluated in the context of AsyncSquaringLibrary, and is - // therefore undefined. -}); - -async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){ - // result is [1, 4, 9] - // With the help of bind we can attach a context to the iterator before - // passing it to async. Now the square function will be executed in its - // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent` - // will be as expected. -}); -``` - -## Download - -The source is available for download from -[GitHub](https://github.com/caolan/async/blob/master/lib/async.js). -Alternatively, you can install using Node Package Manager (`npm`): - - npm install async - -As well as using Bower: - - bower install async - -__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed - -## In the Browser - -So far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. - -Usage: - -```html - - -``` - -## Documentation - -Some functions are also available in the following forms: -* `Series` - the same as `` but runs only a single async operation at a time -* `Limit` - the same as `` but runs a maximum of `limit` async operations at a time - -### Collections - -* [`each`](#each), `eachSeries`, `eachLimit` -* [`forEachOf`](#forEachOf), `forEachOfSeries`, `forEachOfLimit` -* [`map`](#map), `mapSeries`, `mapLimit` -* [`filter`](#filter), `filterSeries`, `filterLimit` -* [`reject`](#reject), `rejectSeries`, `rejectLimit` -* [`reduce`](#reduce), [`reduceRight`](#reduceRight) -* [`detect`](#detect), `detectSeries`, `detectLimit` -* [`sortBy`](#sortBy) -* [`some`](#some), `someLimit` -* [`every`](#every), `everyLimit` -* [`concat`](#concat), `concatSeries` - -### Control Flow - -* [`series`](#seriestasks-callback) -* [`parallel`](#parallel), `parallelLimit` -* [`whilst`](#whilst), [`doWhilst`](#doWhilst) -* [`until`](#until), [`doUntil`](#doUntil) -* [`during`](#during), [`doDuring`](#doDuring) -* [`forever`](#forever) -* [`waterfall`](#waterfall) -* [`compose`](#compose) -* [`seq`](#seq) -* [`applyEach`](#applyEach), `applyEachSeries` -* [`queue`](#queue), [`priorityQueue`](#priorityQueue) -* [`cargo`](#cargo) -* [`auto`](#auto) -* [`retry`](#retry) -* [`iterator`](#iterator) -* [`times`](#times), `timesSeries`, `timesLimit` - -### Utils - -* [`apply`](#apply) -* [`nextTick`](#nextTick) -* [`memoize`](#memoize) -* [`unmemoize`](#unmemoize) -* [`ensureAsync`](#ensureAsync) -* [`constant`](#constant) -* [`asyncify`](#asyncify) -* [`wrapSync`](#wrapSync) -* [`log`](#log) -* [`dir`](#dir) -* [`noConflict`](#noConflict) - -## Collections - - - -### each(arr, iterator, [callback]) - -Applies the function `iterator` to each item in `arr`, in parallel. -The `iterator` is called with an item from the list, and a callback for when it -has finished. If the `iterator` passes an error to its `callback`, the main -`callback` (for the `each` function) is immediately called with the error. - -Note, that since this function applies `iterator` to each item in parallel, -there is no guarantee that the iterator functions will complete in order. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err)` which must be called once it has - completed. If no error has occurred, the `callback` should be run without - arguments or with an explicit `null` argument. The array index is not passed - to the iterator. If you need the index, use [`forEachOf`](#forEachOf). -* `callback(err)` - *Optional* A callback which is called when all `iterator` functions - have finished, or an error occurs. - -__Examples__ - - -```js -// assuming openFiles is an array of file names and saveFile is a function -// to save the modified contents of that file: - -async.each(openFiles, saveFile, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - -```js -// assuming openFiles is an array of file names - -async.each(openFiles, function(file, callback) { - - // Perform operation on file here. - console.log('Processing file ' + file); - - if( file.length > 32 ) { - console.log('This file name is too long'); - callback('File name too long'); - } else { - // Do work to process file here - console.log('File processed'); - callback(); - } -}, function(err){ - // if any of the file processing produced an error, err would equal that error - if( err ) { - // One of the iterations produced an error. - // All processing will now stop. - console.log('A file failed to process'); - } else { - console.log('All files have been processed successfully'); - } -}); -``` - -__Related__ - -* eachSeries(arr, iterator, [callback]) -* eachLimit(arr, limit, iterator, [callback]) - ---------------------------------------- - - - - -### forEachOf(obj, iterator, [callback]) - -Like `each`, except that it iterates over objects, and passes the key as the second argument to the iterator. - -__Arguments__ - -* `obj` - An object or array to iterate over. -* `iterator(item, key, callback)` - A function to apply to each item in `obj`. -The `key` is the item's key, or index in the case of an array. The iterator is -passed a `callback(err)` which must be called once it has completed. If no -error has occurred, the callback should be run without arguments or with an -explicit `null` argument. -* `callback(err)` - *Optional* A callback which is called when all `iterator` functions have finished, or an error occurs. - -__Example__ - -```js -var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; -var configs = {}; - -async.forEachOf(obj, function (value, key, callback) { - fs.readFile(__dirname + value, "utf8", function (err, data) { - if (err) return callback(err); - try { - configs[key] = JSON.parse(data); - } catch (e) { - return callback(e); - } - callback(); - }) -}, function (err) { - if (err) console.error(err.message); - // configs is now a map of JSON data - doSomethingWith(configs); -}) -``` - -__Related__ - -* forEachOfSeries(obj, iterator, [callback]) -* forEachOfLimit(obj, limit, iterator, [callback]) - ---------------------------------------- - - -### map(arr, iterator, [callback]) - -Produces a new array of values by mapping each value in `arr` through -the `iterator` function. The `iterator` is called with an item from `arr` and a -callback for when it has finished processing. Each of these callback takes 2 arguments: -an `error`, and the transformed item from `arr`. If `iterator` passes an error to its -callback, the main `callback` (for the `map` function) is immediately called with the error. - -Note, that since this function applies the `iterator` to each item in parallel, -there is no guarantee that the `iterator` functions will complete in order. -However, the results array will be in the same order as the original `arr`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, transformed)` which must be called once - it has completed with an error (which can be `null`) and a transformed item. -* `callback(err, results)` - *Optional* A callback which is called when all `iterator` - functions have finished, or an error occurs. Results is an array of the - transformed items from the `arr`. - -__Example__ - -```js -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - -__Related__ -* mapSeries(arr, iterator, [callback]) -* mapLimit(arr, limit, iterator, [callback]) - ---------------------------------------- - - - -### filter(arr, iterator, [callback]) - -__Alias:__ `select` - -Returns a new array of all the values in `arr` which pass an async truth test. -_The callback for each `iterator` call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. This operation is -performed in parallel, but the results array will be in the same order as the -original. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in `arr`. - The `iterator` is passed a `callback(truthValue)`, which must be called with a - boolean argument once it has completed. -* `callback(results)` - *Optional* A callback which is called after all the `iterator` - functions have finished. - -__Example__ - -```js -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); -``` - -__Related__ - -* filterSeries(arr, iterator, [callback]) -* filterLimit(arr, limit, iterator, [callback]) - ---------------------------------------- - - -### reject(arr, iterator, [callback]) - -The opposite of [`filter`](#filter). Removes values that pass an `async` truth test. - -__Related__ - -* rejectSeries(arr, iterator, [callback]) -* rejectLimit(arr, limit, iterator, [callback]) - ---------------------------------------- - - -### reduce(arr, memo, iterator, [callback]) - -__Aliases:__ `inject`, `foldl` - -Reduces `arr` into a single value using an async `iterator` to return -each successive step. `memo` is the initial state of the reduction. -This function only operates in series. - -For performance reasons, it may make sense to split a call to this function into -a parallel map, and then use the normal `Array.prototype.reduce` on the results. -This function is for situations where each step in the reduction needs to be async; -if you can get the data before reducing it, then it's probably a good idea to do so. - -__Arguments__ - -* `arr` - An array to iterate over. -* `memo` - The initial state of the reduction. -* `iterator(memo, item, callback)` - A function applied to each item in the - array to produce the next step in the reduction. The `iterator` is passed a - `callback(err, reduction)` which accepts an optional error as its first - argument, and the state of the reduction as the second. If an error is - passed to the callback, the reduction is stopped and the main `callback` is - immediately called with the error. -* `callback(err, result)` - *Optional* A callback which is called after all the `iterator` - functions have finished. Result is the reduced value. - -__Example__ - -```js -async.reduce([1,2,3], 0, function(memo, item, callback){ - // pointless async: - process.nextTick(function(){ - callback(null, memo + item) - }); -}, function(err, result){ - // result is now equal to the last value of memo, which is 6 -}); -``` - ---------------------------------------- - - -### reduceRight(arr, memo, iterator, [callback]) - -__Alias:__ `foldr` - -Same as [`reduce`](#reduce), only operates on `arr` in reverse order. - - ---------------------------------------- - - -### detect(arr, iterator, [callback]) - -Returns the first value in `arr` that passes an async truth test. The -`iterator` is applied in parallel, meaning the first iterator to return `true` will -fire the detect `callback` with that result. That means the result might not be -the first item in the original `arr` (in terms of order) that passes the test. - -If order within the original `arr` is important, then look at [`detectSeries`](#detectSeries). - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in `arr`. - The iterator is passed a `callback(truthValue)` which must be called with a - boolean argument once it has completed. **Note: this callback does not take an error as its first argument.** -* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns - `true`, or after all the `iterator` functions have finished. Result will be - the first item in the array that passes the truth test (iterator) or the - value `undefined` if none passed. **Note: this callback does not take an error as its first argument.** - -__Example__ - -```js -async.detect(['file1','file2','file3'], fs.exists, function(result){ - // result now equals the first file in the list that exists -}); -``` - -__Related__ - -* detectSeries(arr, iterator, [callback]) -* detectLimit(arr, limit, iterator, [callback]) - ---------------------------------------- - - -### sortBy(arr, iterator, [callback]) - -Sorts a list by the results of running each `arr` value through an async `iterator`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, sortValue)` which must be called once it - has completed with an error (which can be `null`) and a value to use as the sort - criteria. -* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` - functions have finished, or an error occurs. Results is the items from - the original `arr` sorted by the values returned by the `iterator` calls. - -__Example__ - -```js -async.sortBy(['file1','file2','file3'], function(file, callback){ - fs.stat(file, function(err, stats){ - callback(err, stats.mtime); - }); -}, function(err, results){ - // results is now the original array of files sorted by - // modified date -}); -``` - -__Sort Order__ - -By modifying the callback parameter the sorting order can be influenced: - -```js -//ascending order -async.sortBy([1,9,3,5], function(x, callback){ - callback(null, x); -}, function(err,result){ - //result callback -} ); - -//descending order -async.sortBy([1,9,3,5], function(x, callback){ - callback(null, x*-1); //<- x*-1 instead of x, turns the order around -}, function(err,result){ - //result callback -} ); -``` - ---------------------------------------- - - -### some(arr, iterator, [callback]) - -__Alias:__ `any` - -Returns `true` if at least one element in the `arr` satisfies an async test. -_The callback for each iterator call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. Once any iterator -call returns `true`, the main `callback` is immediately called. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in the array - in parallel. The iterator is passed a `callback(truthValue)`` which must be - called with a boolean argument once it has completed. -* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns - `true`, or after all the iterator functions have finished. Result will be - either `true` or `false` depending on the values of the async tests. - - **Note: the callbacks do not take an error as their first argument.** -__Example__ - -```js -async.some(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then at least one of the files exists -}); -``` - -__Related__ - -* someLimit(arr, limit, iterator, callback) - ---------------------------------------- - - -### every(arr, iterator, [callback]) - -__Alias:__ `all` - -Returns `true` if every element in `arr` satisfies an async test. -_The callback for each `iterator` call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in the array - in parallel. The iterator is passed a `callback(truthValue)` which must be - called with a boolean argument once it has completed. -* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns - `false`, or after all the iterator functions have finished. Result will be - either `true` or `false` depending on the values of the async tests. - - **Note: the callbacks do not take an error as their first argument.** - -__Example__ - -```js -async.every(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then every file exists -}); -``` - -__Related__ - -* everyLimit(arr, limit, iterator, callback) - ---------------------------------------- - - -### concat(arr, iterator, [callback]) - -Applies `iterator` to each item in `arr`, concatenating the results. Returns the -concatenated list. The `iterator`s are called in parallel, and the results are -concatenated as they return. There is no guarantee that the results array will -be returned in the original order of `arr` passed to the `iterator` function. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, results)` which must be called once it - has completed with an error (which can be `null`) and an array of results. -* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` - functions have finished, or an error occurs. Results is an array containing - the concatenated results of the `iterator` function. - -__Example__ - -```js -async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ - // files is now a list of filenames that exist in the 3 directories -}); -``` - -__Related__ - -* concatSeries(arr, iterator, [callback]) - - -## Control Flow - - -### series(tasks, [callback]) - -Run the functions in the `tasks` array in series, each one running once the previous -function has completed. If any functions in the series pass an error to its -callback, no more functions are run, and `callback` is immediately called with the value of the error. -Otherwise, `callback` receives an array of results when `tasks` have completed. - -It is also possible to use an object instead of an array. Each property will be -run as a function, and the results will be passed to the final `callback` as an object -instead of an array. This can be a more readable way of handling results from -[`series`](#series). - -**Note** that while many implementations preserve the order of object properties, the -[ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) -explicitly states that - -> The mechanics and order of enumerating the properties is not specified. - -So if you rely on the order in which your series of functions are executed, and want -this to work on all platforms, consider using an array. - -__Arguments__ - -* `tasks` - An array or object containing functions to run, each function is passed - a `callback(err, result)` it must call on completion with an error `err` (which can - be `null`) and an optional `result` value. -* `callback(err, results)` - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the `task` callbacks. - -__Example__ - -```js -async.series([ - function(callback){ - // do some stuff ... - callback(null, 'one'); - }, - function(callback){ - // do some more stuff ... - callback(null, 'two'); - } -], -// optional callback -function(err, results){ - // results is now equal to ['one', 'two'] -}); - - -// an example using an object instead of an array -async.series({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equal to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallel(tasks, [callback]) - -Run the `tasks` array of functions in parallel, without waiting until the previous -function has completed. If any of the functions pass an error to its -callback, the main `callback` is immediately called with the value of the error. -Once the `tasks` have completed, the results are passed to the final `callback` as an -array. - -**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. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final `callback` as an object -instead of an array. This can be a more readable way of handling results from -[`parallel`](#parallel). - - -__Arguments__ - -* `tasks` - An array or object containing functions to run. Each function is passed - a `callback(err, result)` which it must call on completion with an error `err` - (which can be `null`) and an optional `result` value. -* `callback(err, results)` - An optional callback to run once all the functions - have completed successfully. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - -__Example__ - -```js -async.parallel([ - function(callback){ - setTimeout(function(){ - callback(null, 'one'); - }, 200); - }, - function(callback){ - setTimeout(function(){ - callback(null, 'two'); - }, 100); - } -], -// optional callback -function(err, results){ - // the results array will equal ['one','two'] even though - // the second function had a shorter timeout. -}); - - -// an example using an object instead of an array -async.parallel({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equals to: {one: 1, two: 2} -}); -``` - -__Related__ - -* parallelLimit(tasks, limit, [callback]) - ---------------------------------------- - - -### whilst(test, fn, callback) - -Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped, -or an error occurs. - -__Arguments__ - -* `test()` - synchronous truth test to perform before each execution of `fn`. -* `fn(callback)` - A function which is called each time `test` passes. The function is - passed a `callback(err)`, which must be called once it has completed with an - optional `err` argument. -* `callback(err, [results])` - A callback which is called after the test - function has failed and repeated execution of `fn` has stopped. `callback` - will be passed an error and any arguments passed to the final `fn`'s callback. - -__Example__ - -```js -var count = 0; - -async.whilst( - function () { return count < 5; }, - function (callback) { - count++; - setTimeout(function () { - callback(null, count); - }, 1000); - }, - function (err, n) { - // 5 seconds have passed, n = 5 - } -); -``` - ---------------------------------------- - - -### doWhilst(fn, test, callback) - -The post-check version of [`whilst`](#whilst). To reflect the difference in -the order of operations, the arguments `test` and `fn` are switched. - -`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. - ---------------------------------------- - - -### until(test, fn, callback) - -Repeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped, -or an error occurs. `callback` will be passed an error and any arguments passed -to the final `fn`'s callback. - -The inverse of [`whilst`](#whilst). - ---------------------------------------- - - -### doUntil(fn, test, callback) - -Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`. - ---------------------------------------- - - -### during(test, fn, callback) - -Like [`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. - -__Example__ - -```js -var count = 0; - -async.during( - function (callback) { - return callback(null, count < 5); - }, - function (callback) { - count++; - setTimeout(callback, 1000); - }, - function (err) { - // 5 seconds have passed - } -); -``` - ---------------------------------------- - - -### doDuring(fn, test, callback) - -The post-check version of [`during`](#during). To reflect the difference in -the order of operations, the arguments `test` and `fn` are switched. - -Also a version of [`doWhilst`](#doWhilst) with asynchronous `test` function. - ---------------------------------------- - - -### forever(fn, [errback]) - -Calls the asynchronous function `fn` with a callback parameter that allows it to -call itself again, in series, indefinitely. - -If an error is passed to the callback then `errback` is called with the -error, and execution stops, otherwise it will never be called. - -```js -async.forever( - function(next) { - // next is suitable for passing to things that need a callback(err [, whatever]); - // it will result in this function being called again. - }, - function(err) { - // if next is called with a value in its first parameter, it will appear - // in here as 'err', and execution will stop. - } -); -``` - ---------------------------------------- - - -### waterfall(tasks, [callback]) - -Runs the `tasks` array of functions in series, each passing their results to the next in -the array. However, if any of the `tasks` pass an error to their own callback, the -next function is not executed, and the main `callback` is immediately called with -the error. - -__Arguments__ - -* `tasks` - An array of functions to run, each function is passed a - `callback(err, result1, result2, ...)` it must call on completion. The first - argument is an error (which can be `null`) and any further arguments will be - passed as arguments in order to the next task. -* `callback(err, [results])` - An optional callback to run once all the functions - have completed. This will be passed the results of the last task's callback. - - - -__Example__ - -```js -async.waterfall([ - function(callback) { - callback(null, 'one', 'two'); - }, - function(arg1, arg2, callback) { - // arg1 now equals 'one' and arg2 now equals 'two' - callback(null, 'three'); - }, - function(arg1, callback) { - // arg1 now equals 'three' - callback(null, 'done'); - } -], function (err, result) { - // result now equals 'done' -}); -``` -Or, with named functions: - -```js -async.waterfall([ - myFirstFunction, - mySecondFunction, - myLastFunction, -], function (err, result) { - // result now equals 'done' -}); -function myFirstFunction(callback) { - callback(null, 'one', 'two'); -} -function mySecondFunction(arg1, arg2, callback) { - // arg1 now equals 'one' and arg2 now equals 'two' - callback(null, 'three'); -} -function myLastFunction(arg1, callback) { - // arg1 now equals 'three' - callback(null, 'done'); -} -``` - -Or, if you need to pass any argument to the first function: - -```js -async.waterfall([ - async.apply(myFirstFunction, 'zero'), - mySecondFunction, - myLastFunction, -], function (err, result) { - // result now equals 'done' -}); -function myFirstFunction(arg1, callback) { - // arg1 now equals 'zero' - callback(null, 'one', 'two'); -} -function mySecondFunction(arg1, arg2, callback) { - // arg1 now equals 'one' and arg2 now equals 'two' - callback(null, 'three'); -} -function myLastFunction(arg1, callback) { - // arg1 now equals 'three' - callback(null, 'done'); -} -``` - ---------------------------------------- - -### compose(fn1, fn2...) - -Creates a function which is a composition of the passed asynchronous -functions. Each function consumes the return value of the function that -follows. Composing functions `f()`, `g()`, and `h()` would produce the result of -`f(g(h()))`, only this version uses callbacks to obtain the return values. - -Each function is executed with the `this` binding of the composed function. - -__Arguments__ - -* `functions...` - the asynchronous functions to compose - - -__Example__ - -```js -function add1(n, callback) { - setTimeout(function () { - callback(null, n + 1); - }, 10); -} - -function mul3(n, callback) { - setTimeout(function () { - callback(null, n * 3); - }, 10); -} - -var add1mul3 = async.compose(mul3, add1); - -add1mul3(4, function (err, result) { - // result now equals 15 -}); -``` - ---------------------------------------- - -### seq(fn1, fn2...) - -Version of the compose function that is more natural to read. -Each function consumes the return value of the previous function. -It is the equivalent of [`compose`](#compose) with the arguments reversed. - -Each function is executed with the `this` binding of the composed function. - -__Arguments__ - -* `functions...` - the asynchronous functions to compose - - -__Example__ - -```js -// Requires lodash (or underscore), express3 and dresende's orm2. -// Part of an app, that fetches cats of the logged user. -// This example uses `seq` function to avoid overnesting and error -// handling clutter. -app.get('/cats', function(request, response) { - var User = request.models.User; - async.seq( - _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) - function(user, fn) { - user.getCats(fn); // 'getCats' has signature (callback(err, data)) - } - )(req.session.user_id, function (err, cats) { - if (err) { - console.error(err); - response.json({ status: 'error', message: err.message }); - } else { - response.json({ status: 'ok', message: 'Cats found', data: cats }); - } - }); -}); -``` - ---------------------------------------- - -### applyEach(fns, args..., callback) - -Applies the provided arguments to each function in the array, calling -`callback` after all functions have completed. If you only provide the first -argument, then it will return a function which lets you pass in the -arguments as if it were a single function call. - -__Arguments__ - -* `fns` - the asynchronous functions to all call with the same arguments -* `args...` - any number of separate arguments to pass to the function -* `callback` - the final argument should be the callback, called when all - functions have completed processing - - -__Example__ - -```js -async.applyEach([enableSearch, updateSchema], 'bucket', callback); - -// partial application example: -async.each( - buckets, - async.applyEach([enableSearch, updateSchema]), - callback -); -``` - -__Related__ - -* applyEachSeries(tasks, args..., [callback]) - ---------------------------------------- - - -### queue(worker, [concurrency]) - -Creates a `queue` object with the specified `concurrency`. Tasks added to the -`queue` are processed in parallel (up to the `concurrency` limit). If all -`worker`s are in progress, the task is queued until one becomes available. -Once a `worker` completes a `task`, that `task`'s callback is called. - -__Arguments__ - -* `worker(task, callback)` - An asynchronous function for processing a queued - task, which must call its `callback(err)` argument when finished, with an - optional `error` as an argument. If you want to handle errors from an individual task, pass a callback to `q.push()`. -* `concurrency` - An `integer` for determining how many `worker` functions should be - run in parallel. If omitted, the concurrency defaults to `1`. If the concurrency is `0`, an error is thrown. - -__Queue objects__ - -The `queue` object returned by this function has the following properties and -methods: - -* `length()` - a function returning the number of items waiting to be processed. -* `started` - a function returning whether or not any items have been pushed and processed by the queue -* `running()` - a function returning the number of items currently being processed. -* `workersList()` - a function returning the array of items currently being processed. -* `idle()` - a function returning false if there are items waiting or being processed, or true if not. -* `concurrency` - an integer for determining how many `worker` functions should be - run in parallel. This property can be changed after a `queue` is created to - alter the concurrency on-the-fly. -* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once - the `worker` has finished processing the task. Instead of a single task, a `tasks` array - can be submitted. The respective callback is used for every task in the list. -* `unshift(task, [callback])` - add a new task to the front of the `queue`. -* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, - and further tasks will be queued. -* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`. -* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`. -* `paused` - a boolean for determining whether the queue is in a paused state -* `pause()` - a function that pauses the processing of tasks until `resume()` is called. -* `resume()` - a function that resumes the processing of queued tasks when the queue is paused. -* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle. - -__Example__ - -```js -// create a queue object with concurrency 2 - -var q = async.queue(function (task, callback) { - console.log('hello ' + task.name); - callback(); -}, 2); - - -// assign a callback -q.drain = function() { - console.log('all items have been processed'); -} - -// add some items to the queue - -q.push({name: 'foo'}, function (err) { - console.log('finished processing foo'); -}); -q.push({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); - -// add some items to the queue (batch-wise) - -q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { - console.log('finished processing item'); -}); - -// add some items to the front of the queue - -q.unshift({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); -``` - - ---------------------------------------- - - -### priorityQueue(worker, concurrency) - -The 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: - -* `push(task, priority, [callback])` - `priority` should be a number. If an array of - `tasks` is given, all tasks will be assigned the same priority. -* The `unshift` method was removed. - ---------------------------------------- - - -### cargo(worker, [payload]) - -Creates a `cargo` object with the specified payload. Tasks added to the -cargo will be processed altogether (up to the `payload` limit). If the -`worker` is in progress, the task is queued until it becomes available. Once -the `worker` has completed some tasks, each callback of those tasks is called. -Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966) for how `cargo` and `queue` work. - -While [queue](#queue) passes only one task to one of a group of workers -at a time, cargo passes an array of tasks to a single worker, repeating -when the worker is finished. - -__Arguments__ - -* `worker(tasks, callback)` - An asynchronous function for processing an array of - queued tasks, which must call its `callback(err)` argument when finished, with - an optional `err` argument. -* `payload` - An optional `integer` for determining how many tasks should be - processed per round; if omitted, the default is unlimited. - -__Cargo objects__ - -The `cargo` object returned by this function has the following properties and -methods: - -* `length()` - A function returning the number of items waiting to be processed. -* `payload` - An `integer` for determining how many tasks should be - process per round. This property can be changed after a `cargo` is created to - alter the payload on-the-fly. -* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called - once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` - can be submitted. The respective callback is used for every task in the list. -* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued. -* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`. -* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`. -* `idle()`, `pause()`, `resume()`, `kill()` - cargo inherits all of the same methods and event calbacks as [`queue`](#queue) - -__Example__ - -```js -// create a cargo object with payload 2 - -var cargo = async.cargo(function (tasks, callback) { - for(var i=0; i -### auto(tasks, [concurrency], [callback]) - -Determines 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. - -If 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. - -Note, all functions are called with a `results` object as a second argument, -so it is unsafe to pass functions in the `tasks` object which cannot handle the -extra argument. - -For example, this snippet of code: - -```js -async.auto({ - readData: async.apply(fs.readFile, 'data.txt', 'utf-8') -}, callback); -``` - -will have the effect of calling `readFile` with the results object as the last -argument, which will fail: - -```js -fs.readFile('data.txt', 'utf-8', cb, {}); -``` - -Instead, wrap the call to `readFile` in a function which does not forward the -`results` object: - -```js -async.auto({ - readData: function(cb, results){ - fs.readFile('data.txt', 'utf-8', cb); - } -}, callback); -``` - -__Arguments__ - -* `tasks` - An object. Each of its properties is either a function or an array of - requirements, with the function itself the last item in the array. The object's key - of a property serves as the name of the task defined by that property, - i.e. can be used when specifying requirements for other tasks. - The function receives two arguments: (1) a `callback(err, result)` which must be - called when finished, passing an `error` (which can be `null`) and the result of - the function's execution, and (2) a `results` object, containing the results of - the previously executed functions. -* `concurrency` - An optional `integer` for determining the maximum number of tasks that can be run in parallel. By default, as many as possible. -* `callback(err, results)` - An optional callback which is called when all the - tasks have been completed. It receives the `err` argument if any `tasks` - pass an error to their callback. Results are always returned; however, if - an error occurs, no further `tasks` will be performed, and the results - object will only contain partial results. - - -__Example__ - -```js -async.auto({ - get_data: function(callback){ - console.log('in get_data'); - // async code to get some data - callback(null, 'data', 'converted to array'); - }, - make_folder: function(callback){ - console.log('in make_folder'); - // async code to create a directory to store a file in - // this is run at the same time as getting the data - callback(null, 'folder'); - }, - write_file: ['get_data', 'make_folder', function(callback, results){ - console.log('in write_file', JSON.stringify(results)); - // once there is some data and the directory exists, - // write the data to a file in the directory - callback(null, 'filename'); - }], - email_link: ['write_file', function(callback, results){ - console.log('in email_link', JSON.stringify(results)); - // once the file is written let's email a link to it... - // results.write_file contains the filename returned by write_file. - callback(null, {'file':results.write_file, 'email':'user@example.com'}); - }] -}, function(err, results) { - console.log('err = ', err); - console.log('results = ', results); -}); -``` - -This is a fairly trivial example, but to do this using the basic parallel and -series functions would look like this: - -```js -async.parallel([ - function(callback){ - console.log('in get_data'); - // async code to get some data - callback(null, 'data', 'converted to array'); - }, - function(callback){ - console.log('in make_folder'); - // async code to create a directory to store a file in - // this is run at the same time as getting the data - callback(null, 'folder'); - } -], -function(err, results){ - async.series([ - function(callback){ - console.log('in write_file', JSON.stringify(results)); - // once there is some data and the directory exists, - // write the data to a file in the directory - results.push('filename'); - callback(null); - }, - function(callback){ - console.log('in email_link', JSON.stringify(results)); - // once the file is written let's email a link to it... - callback(null, {'file':results.pop(), 'email':'user@example.com'}); - } - ]); -}); -``` - -For a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding -new tasks much easier (and the code more readable). - - ---------------------------------------- - - -### retry([opts = {times: 5, interval: 0}| 5], task, [callback]) - -Attempts to get a successful response from `task` no more than `times` times before -returning an error. If the task is successful, the `callback` will be passed the result -of the successful task. If all attempts fail, the callback will be passed the error and -result (if any) of the final attempt. - -__Arguments__ - -* `opts` - Can be either an object with `times` and `interval` or a number. - * `times` - The number of attempts to make before giving up. The default is `5`. - * `interval` - The time to wait between retries, in milliseconds. The default is `0`. - * If `opts` is a number, the number specifies the number of times to retry, with the default interval of `0`. -* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)` - which must be called when finished, passing `err` (which can be `null`) and the `result` of - the function's execution, and (2) a `results` object, containing the results of - the previously executed functions (if nested inside another control flow). -* `callback(err, results)` - An optional callback which is called when the - task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`. - -The [`retry`](#retry) function can be used as a stand-alone control flow by passing a callback, as shown below: - -```js -// try calling apiMethod 3 times -async.retry(3, apiMethod, function(err, result) { - // do something with the result -}); -``` - -```js -// try calling apiMethod 3 times, waiting 200 ms between each retry -async.retry({times: 3, interval: 200}, apiMethod, function(err, result) { - // do something with the result -}); -``` - -```js -// try calling apiMethod the default 5 times no delay between each retry -async.retry(apiMethod, function(err, result) { - // do something with the result -}); -``` - -It can also be embedded within other control flow functions to retry individual methods -that are not as reliable, like this: - -```js -async.auto({ - users: api.getUsers.bind(api), - payments: async.retry(3, api.getPayments.bind(api)) -}, function(err, results) { - // do something with the results -}); -``` - - ---------------------------------------- - - -### iterator(tasks) - -Creates an iterator function which calls the next function in the `tasks` array, -returning a continuation to call the next one after that. It's also possible to -“peek” at the next iterator with `iterator.next()`. - -This function is used internally by the `async` module, but can be useful when -you want to manually control the flow of functions in series. - -__Arguments__ - -* `tasks` - An array of functions to run. - -__Example__ - -```js -var iterator = async.iterator([ - function(){ sys.p('one'); }, - function(){ sys.p('two'); }, - function(){ sys.p('three'); } -]); - -node> var iterator2 = iterator(); -'one' -node> var iterator3 = iterator2(); -'two' -node> iterator3(); -'three' -node> var nextfn = iterator2.next(); -node> nextfn(); -'three' -``` - ---------------------------------------- - - -### apply(function, arguments..) - -Creates a continuation function with some arguments already applied. - -Useful as a shorthand when combined with other control flow functions. Any arguments -passed to the returned function are added to the arguments originally passed -to apply. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to automatically apply when the - continuation is called. - -__Example__ - -```js -// using apply - -async.parallel([ - async.apply(fs.writeFile, 'testfile1', 'test1'), - async.apply(fs.writeFile, 'testfile2', 'test2'), -]); - - -// the same process without using apply - -async.parallel([ - function(callback){ - fs.writeFile('testfile1', 'test1', callback); - }, - function(callback){ - fs.writeFile('testfile2', 'test2', callback); - } -]); -``` - -It's possible to pass any number of additional arguments when calling the -continuation: - -```js -node> var fn = async.apply(sys.puts, 'one'); -node> fn('two', 'three'); -one -two -three -``` - ---------------------------------------- - - -### nextTick(callback), setImmediate(callback) - -Calls `callback` on a later loop around the event loop. In Node.js this just -calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` -if available, otherwise `setTimeout(callback, 0)`, which means other higher priority -events may precede the execution of `callback`. - -This is used internally for browser-compatibility purposes. - -__Arguments__ - -* `callback` - The function to call on a later loop around the event loop. - -__Example__ - -```js -var call_order = []; -async.nextTick(function(){ - call_order.push('two'); - // call_order now equals ['one','two'] -}); -call_order.push('one') -``` - - -### times(n, iterator, [callback]) - -Calls the `iterator` function `n` times, and accumulates results in the same manner -you would use with [`map`](#map). - -__Arguments__ - -* `n` - The number of times to run the function. -* `iterator` - The function to call `n` times. -* `callback` - see [`map`](#map) - -__Example__ - -```js -// Pretend this is some complicated async factory -var createUser = function(id, callback) { - callback(null, { - id: 'user' + id - }) -} -// generate 5 users -async.times(5, function(n, next){ - createUser(n, function(err, user) { - next(err, user) - }) -}, function(err, users) { - // we should now have 5 users -}); -``` - -__Related__ - -* timesSeries(n, iterator, [callback]) -* timesLimit(n, limit, iterator, [callback]) - - -## Utils - - -### memoize(fn, [hasher]) - -Caches the results of an `async` function. When creating a hash to store function -results against, the callback is omitted from the hash and an optional hash -function can be used. - -If 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. - -The cache of results is exposed as the `memo` property of the function returned -by `memoize`. - -__Arguments__ - -* `fn` - The function to proxy and cache results from. -* `hasher` - An optional function for generating a custom hash for storing - results. It has all the arguments applied to it apart from the callback, and - must be synchronous. - -__Example__ - -```js -var slow_fn = function (name, callback) { - // do something - callback(null, result); -}; -var fn = async.memoize(slow_fn); - -// fn can now be used as if it were slow_fn -fn('some name', function () { - // callback -}); -``` - - -### unmemoize(fn) - -Undoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized -form. Handy for testing. - -__Arguments__ - -* `fn` - the memoized function - ---------------------------------------- - - -### ensureAsync(fn) - -Wrap 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. - -__Arguments__ - -* `fn` - an async function, one that expects a node-style callback as its last argument - -Returns a wrapped function with the exact same call signature as the function passed in. - -__Example__ - -```js -function sometimesAsync(arg, callback) { - if (cache[arg]) { - return callback(null, cache[arg]); // this would be synchronous!! - } else { - doSomeIO(arg, callback); // this IO would be asynchronous - } -} - -// this has a risk of stack overflows if many results are cached in a row -async.mapSeries(args, sometimesAsync, done); - -// this will defer sometimesAsync's callback if necessary, -// preventing stack overflows -async.mapSeries(args, async.ensureAsync(sometimesAsync), done); - -``` - ---------------------------------------- - - -### constant(values...) - -Returns 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`. - -__Example__ - -```js -async.waterfall([ - async.constant(42), - function (value, next) { - // value === 42 - }, - //... -], callback); - -async.waterfall([ - async.constant(filename, "utf8"), - fs.readFile, - function (fileData, next) { - //... - } - //... -], callback); - -async.auto({ - hostname: async.constant("https://server.net/"), - port: findFreePort, - launchServer: ["hostname", "port", function (cb, options) { - startServer(options, cb); - }], - //... -}, callback); - -``` - ---------------------------------------- - - - -### asyncify(func) - -__Alias:__ `wrapSync` - -Take 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. - -__Example__ - -```js -async.waterfall([ - async.apply(fs.readFile, filename, "utf8"), - async.asyncify(JSON.parse), - function (data, next) { - // data is the result of parsing the text. - // If there was a parsing error, it would have been caught. - } -], callback) -``` - -If the function passed to `asyncify` returns a Promise, that promises's resolved/rejected state will be used to call the callback, rather than simply the synchronous return value. Example: - -```js -async.waterfall([ - async.apply(fs.readFile, filename, "utf8"), - async.asyncify(function (contents) { - return db.model.create(contents); - }), - function (model, next) { - // `model` is the instantiated model object. - // If there was an error, this function would be skipped. - } -], callback) -``` - -This also means you can asyncify ES2016 `async` functions. - -```js -var q = async.queue(async.asyncify(async function (file) { - var intermediateStep = await processFile(file); - return await somePromise(intermediateStep) -})); - -q.push(files); -``` - ---------------------------------------- - - -### log(function, arguments) - -Logs the result of an `async` function to the `console`. Only works in Node.js or -in browsers that support `console.log` and `console.error` (such as FF and Chrome). -If multiple arguments are returned from the async function, `console.log` is -called on each argument in order. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, 'hello ' + name); - }, 1000); -}; -``` -```js -node> async.log(hello, 'world'); -'hello world' -``` - ---------------------------------------- - - -### dir(function, arguments) - -Logs the result of an `async` function to the `console` using `console.dir` to -display the properties of the resulting object. Only works in Node.js or -in browsers that support `console.dir` and `console.error` (such as FF and Chrome). -If multiple arguments are returned from the async function, `console.dir` is -called on each argument in order. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, {hello: name}); - }, 1000); -}; -``` -```js -node> async.dir(hello, 'world'); -{hello: 'world'} -``` - ---------------------------------------- - - -### noConflict() - -Changes the value of `async` back to its original value, returning a reference to the -`async` object. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/dist/async.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/dist/async.js deleted file mode 100644 index 31e7620f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/dist/async.js +++ /dev/null @@ -1,1265 +0,0 @@ -/*! - * async - * https://github.com/caolan/async - * - * Copyright 2010-2014 Caolan McMahon - * Released under the MIT license - */ -(function () { - - var async = {}; - function noop() {} - function identity(v) { - return v; - } - function toBool(v) { - return !!v; - } - function notId(v) { - return !v; - } - - // global on the server, window in the browser - var previous_async; - - // Establish the root object, `window` (`self`) in the browser, `global` - // on the server, or `this` in some virtual machines. We use `self` - // instead of `window` for `WebWorker` support. - var root = typeof self === 'object' && self.self === self && self || - typeof global === 'object' && global.global === global && global || - this; - - if (root != null) { - previous_async = root.async; - } - - async.noConflict = function () { - root.async = previous_async; - return async; - }; - - function only_once(fn) { - return function() { - if (fn === null) throw new Error("Callback was already called."); - fn.apply(this, arguments); - fn = null; - }; - } - - function _once(fn) { - return function() { - if (fn === null) return; - fn.apply(this, arguments); - fn = null; - }; - } - - //// cross-browser compatiblity functions //// - - var _toString = Object.prototype.toString; - - var _isArray = Array.isArray || function (obj) { - return _toString.call(obj) === '[object Array]'; - }; - - // Ported from underscore.js isObject - var _isObject = function(obj) { - var type = typeof obj; - return type === 'function' || type === 'object' && !!obj; - }; - - function _isArrayLike(arr) { - return _isArray(arr) || ( - // has a positive integer length property - typeof arr.length === "number" && - arr.length >= 0 && - arr.length % 1 === 0 - ); - } - - function _arrayEach(arr, iterator) { - var index = -1, - length = arr.length; - - while (++index < length) { - iterator(arr[index], index, arr); - } - } - - function _map(arr, iterator) { - var index = -1, - length = arr.length, - result = Array(length); - - while (++index < length) { - result[index] = iterator(arr[index], index, arr); - } - return result; - } - - function _range(count) { - return _map(Array(count), function (v, i) { return i; }); - } - - function _reduce(arr, iterator, memo) { - _arrayEach(arr, function (x, i, a) { - memo = iterator(memo, x, i, a); - }); - return memo; - } - - function _forEachOf(object, iterator) { - _arrayEach(_keys(object), function (key) { - iterator(object[key], key); - }); - } - - function _indexOf(arr, item) { - for (var i = 0; i < arr.length; i++) { - if (arr[i] === item) return i; - } - return -1; - } - - var _keys = Object.keys || function (obj) { - var keys = []; - for (var k in obj) { - if (obj.hasOwnProperty(k)) { - keys.push(k); - } - } - return keys; - }; - - function _keyIterator(coll) { - var i = -1; - var len; - var keys; - if (_isArrayLike(coll)) { - len = coll.length; - return function next() { - i++; - return i < len ? i : null; - }; - } else { - keys = _keys(coll); - len = keys.length; - return function next() { - i++; - return i < len ? keys[i] : null; - }; - } - } - - // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html) - // This accumulates the arguments passed into an array, after a given index. - // From underscore.js (https://github.com/jashkenas/underscore/pull/2140). - function _restParam(func, startIndex) { - startIndex = startIndex == null ? func.length - 1 : +startIndex; - return function() { - var length = Math.max(arguments.length - startIndex, 0); - var rest = Array(length); - for (var index = 0; index < length; index++) { - rest[index] = arguments[index + startIndex]; - } - switch (startIndex) { - case 0: return func.call(this, rest); - case 1: return func.call(this, arguments[0], rest); - } - // Currently unused but handle cases outside of the switch statement: - // var args = Array(startIndex + 1); - // for (index = 0; index < startIndex; index++) { - // args[index] = arguments[index]; - // } - // args[startIndex] = rest; - // return func.apply(this, args); - }; - } - - function _withoutIndex(iterator) { - return function (value, index, callback) { - return iterator(value, callback); - }; - } - - //// exported async module functions //// - - //// nextTick implementation with browser-compatible fallback //// - - // capture the global reference to guard against fakeTimer mocks - var _setImmediate = typeof setImmediate === 'function' && setImmediate; - - var _delay = _setImmediate ? function(fn) { - // not a direct alias for IE10 compatibility - _setImmediate(fn); - } : function(fn) { - setTimeout(fn, 0); - }; - - if (typeof process === 'object' && typeof process.nextTick === 'function') { - async.nextTick = process.nextTick; - } else { - async.nextTick = _delay; - } - async.setImmediate = _setImmediate ? _delay : async.nextTick; - - - async.forEach = - async.each = function (arr, iterator, callback) { - return async.eachOf(arr, _withoutIndex(iterator), callback); - }; - - async.forEachSeries = - async.eachSeries = function (arr, iterator, callback) { - return async.eachOfSeries(arr, _withoutIndex(iterator), callback); - }; - - - async.forEachLimit = - async.eachLimit = function (arr, limit, iterator, callback) { - return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback); - }; - - async.forEachOf = - async.eachOf = function (object, iterator, callback) { - callback = _once(callback || noop); - object = object || []; - - var iter = _keyIterator(object); - var key, completed = 0; - - while ((key = iter()) != null) { - completed += 1; - iterator(object[key], key, only_once(done)); - } - - if (completed === 0) callback(null); - - function done(err) { - completed--; - if (err) { - callback(err); - } - // Check key is null in case iterator isn't exhausted - // and done resolved synchronously. - else if (key === null && completed <= 0) { - callback(null); - } - } - }; - - async.forEachOfSeries = - async.eachOfSeries = function (obj, iterator, callback) { - callback = _once(callback || noop); - obj = obj || []; - var nextKey = _keyIterator(obj); - var key = nextKey(); - function iterate() { - var sync = true; - if (key === null) { - return callback(null); - } - iterator(obj[key], key, only_once(function (err) { - if (err) { - callback(err); - } - else { - key = nextKey(); - if (key === null) { - return callback(null); - } else { - if (sync) { - async.setImmediate(iterate); - } else { - iterate(); - } - } - } - })); - sync = false; - } - iterate(); - }; - - - - async.forEachOfLimit = - async.eachOfLimit = function (obj, limit, iterator, callback) { - _eachOfLimit(limit)(obj, iterator, callback); - }; - - function _eachOfLimit(limit) { - - return function (obj, iterator, callback) { - callback = _once(callback || noop); - obj = obj || []; - var nextKey = _keyIterator(obj); - if (limit <= 0) { - return callback(null); - } - var done = false; - var running = 0; - var errored = false; - - (function replenish () { - if (done && running <= 0) { - return callback(null); - } - - while (running < limit && !errored) { - var key = nextKey(); - if (key === null) { - done = true; - if (running <= 0) { - callback(null); - } - return; - } - running += 1; - iterator(obj[key], key, only_once(function (err) { - running -= 1; - if (err) { - callback(err); - errored = true; - } - else { - replenish(); - } - })); - } - })(); - }; - } - - - function doParallel(fn) { - return function (obj, iterator, callback) { - return fn(async.eachOf, obj, iterator, callback); - }; - } - function doParallelLimit(fn) { - return function (obj, limit, iterator, callback) { - return fn(_eachOfLimit(limit), obj, iterator, callback); - }; - } - function doSeries(fn) { - return function (obj, iterator, callback) { - return fn(async.eachOfSeries, obj, iterator, callback); - }; - } - - function _asyncMap(eachfn, arr, iterator, callback) { - callback = _once(callback || noop); - arr = arr || []; - var results = _isArrayLike(arr) ? [] : {}; - eachfn(arr, function (value, index, callback) { - iterator(value, function (err, v) { - results[index] = v; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - - async.map = doParallel(_asyncMap); - async.mapSeries = doSeries(_asyncMap); - async.mapLimit = doParallelLimit(_asyncMap); - - // reduce only has a series version, as doing reduce in parallel won't - // work in many situations. - async.inject = - async.foldl = - async.reduce = function (arr, memo, iterator, callback) { - async.eachOfSeries(arr, function (x, i, callback) { - iterator(memo, x, function (err, v) { - memo = v; - callback(err); - }); - }, function (err) { - callback(err, memo); - }); - }; - - async.foldr = - async.reduceRight = function (arr, memo, iterator, callback) { - var reversed = _map(arr, identity).reverse(); - async.reduce(reversed, memo, iterator, callback); - }; - - async.transform = function (arr, memo, iterator, callback) { - if (arguments.length === 3) { - callback = iterator; - iterator = memo; - memo = _isArray(arr) ? [] : {}; - } - - async.eachOf(arr, function(v, k, cb) { - iterator(memo, v, k, cb); - }, function(err) { - callback(err, memo); - }); - }; - - function _filter(eachfn, arr, iterator, callback) { - var results = []; - eachfn(arr, function (x, index, callback) { - iterator(x, function (v) { - if (v) { - results.push({index: index, value: x}); - } - callback(); - }); - }, function () { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - } - - async.select = - async.filter = doParallel(_filter); - - async.selectLimit = - async.filterLimit = doParallelLimit(_filter); - - async.selectSeries = - async.filterSeries = doSeries(_filter); - - function _reject(eachfn, arr, iterator, callback) { - _filter(eachfn, arr, function(value, cb) { - iterator(value, function(v) { - cb(!v); - }); - }, callback); - } - async.reject = doParallel(_reject); - async.rejectLimit = doParallelLimit(_reject); - async.rejectSeries = doSeries(_reject); - - function _createTester(eachfn, check, getResult) { - return function(arr, limit, iterator, cb) { - function done() { - if (cb) cb(getResult(false, void 0)); - } - function iteratee(x, _, callback) { - if (!cb) return callback(); - iterator(x, function (v) { - if (cb && check(v)) { - cb(getResult(true, x)); - cb = iterator = false; - } - callback(); - }); - } - if (arguments.length > 3) { - eachfn(arr, limit, iteratee, done); - } else { - cb = iterator; - iterator = limit; - eachfn(arr, iteratee, done); - } - }; - } - - async.any = - async.some = _createTester(async.eachOf, toBool, identity); - - async.someLimit = _createTester(async.eachOfLimit, toBool, identity); - - async.all = - async.every = _createTester(async.eachOf, notId, notId); - - async.everyLimit = _createTester(async.eachOfLimit, notId, notId); - - function _findGetResult(v, x) { - return x; - } - async.detect = _createTester(async.eachOf, identity, _findGetResult); - async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult); - async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult); - - async.sortBy = function (arr, iterator, callback) { - async.map(arr, function (x, callback) { - iterator(x, function (err, criteria) { - if (err) { - callback(err); - } - else { - callback(null, {value: x, criteria: criteria}); - } - }); - }, function (err, results) { - if (err) { - return callback(err); - } - else { - callback(null, _map(results.sort(comparator), function (x) { - return x.value; - })); - } - - }); - - function comparator(left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - } - }; - - async.auto = function (tasks, concurrency, callback) { - if (typeof arguments[1] === 'function') { - // concurrency is optional, shift the args. - callback = concurrency; - concurrency = null; - } - callback = _once(callback || noop); - var keys = _keys(tasks); - var remainingTasks = keys.length; - if (!remainingTasks) { - return callback(null); - } - if (!concurrency) { - concurrency = remainingTasks; - } - - var results = {}; - var runningTasks = 0; - - var hasError = false; - - var listeners = []; - function addListener(fn) { - listeners.unshift(fn); - } - function removeListener(fn) { - var idx = _indexOf(listeners, fn); - if (idx >= 0) listeners.splice(idx, 1); - } - function taskComplete() { - remainingTasks--; - _arrayEach(listeners.slice(0), function (fn) { - fn(); - }); - } - - addListener(function () { - if (!remainingTasks) { - callback(null, results); - } - }); - - _arrayEach(keys, function (k) { - if (hasError) return; - var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]]; - var taskCallback = _restParam(function(err, args) { - runningTasks--; - if (args.length <= 1) { - args = args[0]; - } - if (err) { - var safeResults = {}; - _forEachOf(results, function(val, rkey) { - safeResults[rkey] = val; - }); - safeResults[k] = args; - hasError = true; - - callback(err, safeResults); - } - else { - results[k] = args; - async.setImmediate(taskComplete); - } - }); - var requires = task.slice(0, task.length - 1); - // prevent dead-locks - var len = requires.length; - var dep; - while (len--) { - if (!(dep = tasks[requires[len]])) { - throw new Error('Has nonexistent dependency in ' + requires.join(', ')); - } - if (_isArray(dep) && _indexOf(dep, k) >= 0) { - throw new Error('Has cyclic dependencies'); - } - } - function ready() { - return runningTasks < concurrency && _reduce(requires, function (a, x) { - return (a && results.hasOwnProperty(x)); - }, true) && !results.hasOwnProperty(k); - } - if (ready()) { - runningTasks++; - task[task.length - 1](taskCallback, results); - } - else { - addListener(listener); - } - function listener() { - if (ready()) { - runningTasks++; - removeListener(listener); - task[task.length - 1](taskCallback, results); - } - } - }); - }; - - - - async.retry = function(times, task, callback) { - var DEFAULT_TIMES = 5; - var DEFAULT_INTERVAL = 0; - - var attempts = []; - - var opts = { - times: DEFAULT_TIMES, - interval: DEFAULT_INTERVAL - }; - - function parseTimes(acc, t){ - if(typeof t === 'number'){ - acc.times = parseInt(t, 10) || DEFAULT_TIMES; - } else if(typeof t === 'object'){ - acc.times = parseInt(t.times, 10) || DEFAULT_TIMES; - acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL; - } else { - throw new Error('Unsupported argument type for \'times\': ' + typeof t); - } - } - - var length = arguments.length; - if (length < 1 || length > 3) { - throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)'); - } else if (length <= 2 && typeof times === 'function') { - callback = task; - task = times; - } - if (typeof times !== 'function') { - parseTimes(opts, times); - } - opts.callback = callback; - opts.task = task; - - function wrappedTask(wrappedCallback, wrappedResults) { - function retryAttempt(task, finalAttempt) { - return function(seriesCallback) { - task(function(err, result){ - seriesCallback(!err || finalAttempt, {err: err, result: result}); - }, wrappedResults); - }; - } - - function retryInterval(interval){ - return function(seriesCallback){ - setTimeout(function(){ - seriesCallback(null); - }, interval); - }; - } - - while (opts.times) { - - var finalAttempt = !(opts.times-=1); - attempts.push(retryAttempt(opts.task, finalAttempt)); - if(!finalAttempt && opts.interval > 0){ - attempts.push(retryInterval(opts.interval)); - } - } - - async.series(attempts, function(done, data){ - data = data[data.length - 1]; - (wrappedCallback || opts.callback)(data.err, data.result); - }); - } - - // If a callback is passed, run this as a controll flow - return opts.callback ? wrappedTask() : wrappedTask; - }; - - async.waterfall = function (tasks, callback) { - callback = _once(callback || noop); - if (!_isArray(tasks)) { - var err = new Error('First argument to waterfall must be an array of functions'); - return callback(err); - } - if (!tasks.length) { - return callback(); - } - function wrapIterator(iterator) { - return _restParam(function (err, args) { - if (err) { - callback.apply(null, [err].concat(args)); - } - else { - var next = iterator.next(); - if (next) { - args.push(wrapIterator(next)); - } - else { - args.push(callback); - } - ensureAsync(iterator).apply(null, args); - } - }); - } - wrapIterator(async.iterator(tasks))(); - }; - - function _parallel(eachfn, tasks, callback) { - callback = callback || noop; - var results = _isArrayLike(tasks) ? [] : {}; - - eachfn(tasks, function (task, key, callback) { - task(_restParam(function (err, args) { - if (args.length <= 1) { - args = args[0]; - } - results[key] = args; - callback(err); - })); - }, function (err) { - callback(err, results); - }); - } - - async.parallel = function (tasks, callback) { - _parallel(async.eachOf, tasks, callback); - }; - - async.parallelLimit = function(tasks, limit, callback) { - _parallel(_eachOfLimit(limit), tasks, callback); - }; - - async.series = function(tasks, callback) { - _parallel(async.eachOfSeries, tasks, callback); - }; - - async.iterator = function (tasks) { - function makeCallback(index) { - function fn() { - if (tasks.length) { - tasks[index].apply(null, arguments); - } - return fn.next(); - } - fn.next = function () { - return (index < tasks.length - 1) ? makeCallback(index + 1): null; - }; - return fn; - } - return makeCallback(0); - }; - - async.apply = _restParam(function (fn, args) { - return _restParam(function (callArgs) { - return fn.apply( - null, args.concat(callArgs) - ); - }); - }); - - function _concat(eachfn, arr, fn, callback) { - var result = []; - eachfn(arr, function (x, index, cb) { - fn(x, function (err, y) { - result = result.concat(y || []); - cb(err); - }); - }, function (err) { - callback(err, result); - }); - } - async.concat = doParallel(_concat); - async.concatSeries = doSeries(_concat); - - async.whilst = function (test, iterator, callback) { - callback = callback || noop; - if (test()) { - var next = _restParam(function(err, args) { - if (err) { - callback(err); - } else if (test.apply(this, args)) { - iterator(next); - } else { - callback.apply(null, [null].concat(args)); - } - }); - iterator(next); - } else { - callback(null); - } - }; - - async.doWhilst = function (iterator, test, callback) { - var calls = 0; - return async.whilst(function() { - return ++calls <= 1 || test.apply(this, arguments); - }, iterator, callback); - }; - - async.until = function (test, iterator, callback) { - return async.whilst(function() { - return !test.apply(this, arguments); - }, iterator, callback); - }; - - async.doUntil = function (iterator, test, callback) { - return async.doWhilst(iterator, function() { - return !test.apply(this, arguments); - }, callback); - }; - - async.during = function (test, iterator, callback) { - callback = callback || noop; - - var next = _restParam(function(err, args) { - if (err) { - callback(err); - } else { - args.push(check); - test.apply(this, args); - } - }); - - var check = function(err, truth) { - if (err) { - callback(err); - } else if (truth) { - iterator(next); - } else { - callback(null); - } - }; - - test(check); - }; - - async.doDuring = function (iterator, test, callback) { - var calls = 0; - async.during(function(next) { - if (calls++ < 1) { - next(null, true); - } else { - test.apply(this, arguments); - } - }, iterator, callback); - }; - - function _queue(worker, concurrency, payload) { - if (concurrency == null) { - concurrency = 1; - } - else if(concurrency === 0) { - throw new Error('Concurrency must not be zero'); - } - function _insert(q, data, pos, callback) { - if (callback != null && typeof callback !== "function") { - throw new Error("task callback must be a function"); - } - q.started = true; - if (!_isArray(data)) { - data = [data]; - } - if(data.length === 0 && q.idle()) { - // call drain immediately if there are no tasks - return async.setImmediate(function() { - q.drain(); - }); - } - _arrayEach(data, function(task) { - var item = { - data: task, - callback: callback || noop - }; - - if (pos) { - q.tasks.unshift(item); - } else { - q.tasks.push(item); - } - - if (q.tasks.length === q.concurrency) { - q.saturated(); - } - }); - async.setImmediate(q.process); - } - function _next(q, tasks) { - return function(){ - workers -= 1; - - var removed = false; - var args = arguments; - _arrayEach(tasks, function (task) { - _arrayEach(workersList, function (worker, index) { - if (worker === task && !removed) { - workersList.splice(index, 1); - removed = true; - } - }); - - task.callback.apply(task, args); - }); - if (q.tasks.length + workers === 0) { - q.drain(); - } - q.process(); - }; - } - - var workers = 0; - var workersList = []; - var q = { - tasks: [], - concurrency: concurrency, - payload: payload, - saturated: noop, - empty: noop, - drain: noop, - started: false, - paused: false, - push: function (data, callback) { - _insert(q, data, false, callback); - }, - kill: function () { - q.drain = noop; - q.tasks = []; - }, - unshift: function (data, callback) { - _insert(q, data, true, callback); - }, - process: function () { - while(!q.paused && workers < q.concurrency && q.tasks.length){ - - var tasks = q.payload ? - q.tasks.splice(0, q.payload) : - q.tasks.splice(0, q.tasks.length); - - var data = _map(tasks, function (task) { - return task.data; - }); - - if (q.tasks.length === 0) { - q.empty(); - } - workers += 1; - workersList.push(tasks[0]); - var cb = only_once(_next(q, tasks)); - worker(data, cb); - } - }, - length: function () { - return q.tasks.length; - }, - running: function () { - return workers; - }, - workersList: function () { - return workersList; - }, - idle: function() { - return q.tasks.length + workers === 0; - }, - pause: function () { - q.paused = true; - }, - resume: function () { - if (q.paused === false) { return; } - q.paused = false; - var resumeCount = Math.min(q.concurrency, q.tasks.length); - // Need to call q.process once per concurrent - // worker to preserve full concurrency after pause - for (var w = 1; w <= resumeCount; w++) { - async.setImmediate(q.process); - } - } - }; - return q; - } - - async.queue = function (worker, concurrency) { - var q = _queue(function (items, cb) { - worker(items[0], cb); - }, concurrency, 1); - - return q; - }; - - async.priorityQueue = function (worker, concurrency) { - - function _compareTasks(a, b){ - return a.priority - b.priority; - } - - function _binarySearch(sequence, item, compare) { - var beg = -1, - end = sequence.length - 1; - while (beg < end) { - var mid = beg + ((end - beg + 1) >>> 1); - if (compare(item, sequence[mid]) >= 0) { - beg = mid; - } else { - end = mid - 1; - } - } - return beg; - } - - function _insert(q, data, priority, callback) { - if (callback != null && typeof callback !== "function") { - throw new Error("task callback must be a function"); - } - q.started = true; - if (!_isArray(data)) { - data = [data]; - } - if(data.length === 0) { - // call drain immediately if there are no tasks - return async.setImmediate(function() { - q.drain(); - }); - } - _arrayEach(data, function(task) { - var item = { - data: task, - priority: priority, - callback: typeof callback === 'function' ? callback : noop - }; - - q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item); - - if (q.tasks.length === q.concurrency) { - q.saturated(); - } - async.setImmediate(q.process); - }); - } - - // Start with a normal queue - var q = async.queue(worker, concurrency); - - // Override push to accept second parameter representing priority - q.push = function (data, priority, callback) { - _insert(q, data, priority, callback); - }; - - // Remove unshift function - delete q.unshift; - - return q; - }; - - async.cargo = function (worker, payload) { - return _queue(worker, 1, payload); - }; - - function _console_fn(name) { - return _restParam(function (fn, args) { - fn.apply(null, args.concat([_restParam(function (err, args) { - if (typeof console === 'object') { - if (err) { - if (console.error) { - console.error(err); - } - } - else if (console[name]) { - _arrayEach(args, function (x) { - console[name](x); - }); - } - } - })])); - }); - } - async.log = _console_fn('log'); - async.dir = _console_fn('dir'); - /*async.info = _console_fn('info'); - async.warn = _console_fn('warn'); - async.error = _console_fn('error');*/ - - async.memoize = function (fn, hasher) { - var memo = {}; - var queues = {}; - var has = Object.prototype.hasOwnProperty; - hasher = hasher || identity; - var memoized = _restParam(function memoized(args) { - var callback = args.pop(); - var key = hasher.apply(null, args); - if (has.call(memo, key)) { - async.setImmediate(function () { - callback.apply(null, memo[key]); - }); - } - else if (has.call(queues, key)) { - queues[key].push(callback); - } - else { - queues[key] = [callback]; - fn.apply(null, args.concat([_restParam(function (args) { - memo[key] = args; - var q = queues[key]; - delete queues[key]; - for (var i = 0, l = q.length; i < l; i++) { - q[i].apply(null, args); - } - })])); - } - }); - memoized.memo = memo; - memoized.unmemoized = fn; - return memoized; - }; - - async.unmemoize = function (fn) { - return function () { - return (fn.unmemoized || fn).apply(null, arguments); - }; - }; - - function _times(mapper) { - return function (count, iterator, callback) { - mapper(_range(count), iterator, callback); - }; - } - - async.times = _times(async.map); - async.timesSeries = _times(async.mapSeries); - async.timesLimit = function (count, limit, iterator, callback) { - return async.mapLimit(_range(count), limit, iterator, callback); - }; - - async.seq = function (/* functions... */) { - var fns = arguments; - return _restParam(function (args) { - var that = this; - - var callback = args[args.length - 1]; - if (typeof callback == 'function') { - args.pop(); - } else { - callback = noop; - } - - async.reduce(fns, args, function (newargs, fn, cb) { - fn.apply(that, newargs.concat([_restParam(function (err, nextargs) { - cb(err, nextargs); - })])); - }, - function (err, results) { - callback.apply(that, [err].concat(results)); - }); - }); - }; - - async.compose = function (/* functions... */) { - return async.seq.apply(null, Array.prototype.reverse.call(arguments)); - }; - - - function _applyEach(eachfn) { - return _restParam(function(fns, args) { - var go = _restParam(function(args) { - var that = this; - var callback = args.pop(); - return eachfn(fns, function (fn, _, cb) { - fn.apply(that, args.concat([cb])); - }, - callback); - }); - if (args.length) { - return go.apply(this, args); - } - else { - return go; - } - }); - } - - async.applyEach = _applyEach(async.eachOf); - async.applyEachSeries = _applyEach(async.eachOfSeries); - - - async.forever = function (fn, callback) { - var done = only_once(callback || noop); - var task = ensureAsync(fn); - function next(err) { - if (err) { - return done(err); - } - task(next); - } - next(); - }; - - function ensureAsync(fn) { - return _restParam(function (args) { - var callback = args.pop(); - args.push(function () { - var innerArgs = arguments; - if (sync) { - async.setImmediate(function () { - callback.apply(null, innerArgs); - }); - } else { - callback.apply(null, innerArgs); - } - }); - var sync = true; - fn.apply(this, args); - sync = false; - }); - } - - async.ensureAsync = ensureAsync; - - async.constant = _restParam(function(values) { - var args = [null].concat(values); - return function (callback) { - return callback.apply(this, args); - }; - }); - - async.wrapSync = - async.asyncify = function asyncify(func) { - return _restParam(function (args) { - var callback = args.pop(); - var result; - try { - result = func.apply(this, args); - } catch (e) { - return callback(e); - } - // if result is Promise object - if (_isObject(result) && typeof result.then === "function") { - result.then(function(value) { - callback(null, value); - })["catch"](function(err) { - callback(err.message ? err : new Error(err)); - }); - } else { - callback(null, result); - } - }); - }; - - // Node.js - if (typeof module === 'object' && module.exports) { - module.exports = async; - } - // AMD / RequireJS - else if (typeof define === 'function' && define.amd) { - define([], function () { - return async; - }); - } - // included directly via '); - expect(encoded).to.equal('\\x3cscript\\x3ealert\\x281\\x29\\x3c\\x2fscript\\x3e'); - done(); - }); - - it('encodes \' characters', function (done) { - - var encoded = Hoek.escapeJavaScript('something(\'param\')'); - expect(encoded).to.equal('something\\x28\\x27param\\x27\\x29'); - done(); - }); - - it('encodes large unicode characters with the correct padding', function (done) { - - var encoded = Hoek.escapeJavaScript(String.fromCharCode(500) + String.fromCharCode(1000)); - expect(encoded).to.equal('\\u0500\\u1000'); - done(); - }); - - it('doesn\'t throw an exception when passed null', function (done) { - - var encoded = Hoek.escapeJavaScript(null); - expect(encoded).to.equal(''); - done(); - }); -}); - -describe('escapeHtml()', function () { - - it('encodes / characters', function (done) { - - var encoded = Hoek.escapeHtml(''); - expect(encoded).to.equal('<script>alert(1)</script>'); - done(); - }); - - it('encodes < and > as named characters', function (done) { - - var encoded = Hoek.escapeHtml(' - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.js deleted file mode 100644 index 664c1b45..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.js +++ /dev/null @@ -1,3 +0,0 @@ -var BigInteger = require('./'); -var a = new BigInteger('91823918239182398123'); -console.log(a.bitLength()); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/index.js deleted file mode 100644 index e32fe13d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/index.js +++ /dev/null @@ -1,1358 +0,0 @@ -(function(){ - - // Copyright (c) 2005 Tom Wu - // All Rights Reserved. - // See "LICENSE" for details. - - // Basic JavaScript BN library - subset useful for RSA encryption. - - // Bits per digit - var dbits; - - // JavaScript engine analysis - var canary = 0xdeadbeefcafe; - var j_lm = ((canary&0xffffff)==0xefcafe); - - // (public) Constructor - function BigInteger(a,b,c) { - if(a != null) - if("number" == typeof a) this.fromNumber(a,b,c); - else if(b == null && "string" != typeof a) this.fromString(a,256); - else this.fromString(a,b); - } - - // return new, unset BigInteger - function nbi() { return new BigInteger(null); } - - // am: Compute w_j += (x*this_i), propagate carries, - // c is initial carry, returns final carry. - // c < 3*dvalue, x < 2*dvalue, this_i < dvalue - // We need to select the fastest one that works in this environment. - - // am1: use a single mult and divide to get the high bits, - // max digit bits should be 26 because - // max internal value = 2*dvalue^2-2*dvalue (< 2^53) - function am1(i,x,w,j,c,n) { - while(--n >= 0) { - var v = x*this[i++]+w[j]+c; - c = Math.floor(v/0x4000000); - w[j++] = v&0x3ffffff; - } - return c; - } - // am2 avoids a big mult-and-extract completely. - // Max digit bits should be <= 30 because we do bitwise ops - // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31) - function am2(i,x,w,j,c,n) { - var xl = x&0x7fff, xh = x>>15; - while(--n >= 0) { - var l = this[i]&0x7fff; - var h = this[i++]>>15; - var m = xh*l+h*xl; - l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff); - c = (l>>>30)+(m>>>15)+xh*h+(c>>>30); - w[j++] = l&0x3fffffff; - } - return c; - } - // Alternately, set max digit bits to 28 since some - // browsers slow down when dealing with 32-bit numbers. - function am3(i,x,w,j,c,n) { - var xl = x&0x3fff, xh = x>>14; - while(--n >= 0) { - var l = this[i]&0x3fff; - var h = this[i++]>>14; - var m = xh*l+h*xl; - l = xl*l+((m&0x3fff)<<14)+w[j]+c; - c = (l>>28)+(m>>14)+xh*h; - w[j++] = l&0xfffffff; - } - return c; - } - var inBrowser = typeof navigator !== "undefined"; - if(inBrowser && j_lm && (navigator.appName == "Microsoft Internet Explorer")) { - BigInteger.prototype.am = am2; - dbits = 30; - } - else if(inBrowser && j_lm && (navigator.appName != "Netscape")) { - BigInteger.prototype.am = am1; - dbits = 26; - } - else { // Mozilla/Netscape seems to prefer am3 - BigInteger.prototype.am = am3; - dbits = 28; - } - - BigInteger.prototype.DB = dbits; - BigInteger.prototype.DM = ((1<= 0; --i) r[i] = this[i]; - r.t = this.t; - r.s = this.s; - } - - // (protected) set from integer value x, -DV <= x < DV - function bnpFromInt(x) { - this.t = 1; - this.s = (x<0)?-1:0; - if(x > 0) this[0] = x; - else if(x < -1) this[0] = x+this.DV; - else this.t = 0; - } - - // return bigint initialized to value - function nbv(i) { var r = nbi(); r.fromInt(i); return r; } - - // (protected) set from string and radix - function bnpFromString(s,b) { - var k; - if(b == 16) k = 4; - else if(b == 8) k = 3; - else if(b == 256) k = 8; // byte array - else if(b == 2) k = 1; - else if(b == 32) k = 5; - else if(b == 4) k = 2; - else { this.fromRadix(s,b); return; } - this.t = 0; - this.s = 0; - var i = s.length, mi = false, sh = 0; - while(--i >= 0) { - var x = (k==8)?s[i]&0xff:intAt(s,i); - if(x < 0) { - if(s.charAt(i) == "-") mi = true; - continue; - } - mi = false; - if(sh == 0) - this[this.t++] = x; - else if(sh+k > this.DB) { - this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<>(this.DB-sh)); - } - else - this[this.t-1] |= x<= this.DB) sh -= this.DB; - } - if(k == 8 && (s[0]&0x80) != 0) { - this.s = -1; - if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)< 0 && this[this.t-1] == c) --this.t; - } - - // (public) return string representation in given radix - function bnToString(b) { - if(this.s < 0) return "-"+this.negate().toString(b); - var k; - if(b == 16) k = 4; - else if(b == 8) k = 3; - else if(b == 2) k = 1; - else if(b == 32) k = 5; - else if(b == 4) k = 2; - else return this.toRadix(b); - var km = (1< 0) { - if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); } - while(i >= 0) { - if(p < k) { - d = (this[i]&((1<>(p+=this.DB-k); - } - else { - d = (this[i]>>(p-=k))&km; - if(p <= 0) { p += this.DB; --i; } - } - if(d > 0) m = true; - if(m) r += int2char(d); - } - } - return m?r:"0"; - } - - // (public) -this - function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; } - - // (public) |this| - function bnAbs() { return (this.s<0)?this.negate():this; } - - // (public) return + if this > a, - if this < a, 0 if equal - function bnCompareTo(a) { - var r = this.s-a.s; - if(r != 0) return r; - var i = this.t; - r = i-a.t; - if(r != 0) return (this.s<0)?-r:r; - while(--i >= 0) if((r=this[i]-a[i]) != 0) return r; - return 0; - } - - // returns bit length of the integer x - function nbits(x) { - var r = 1, t; - if((t=x>>>16) != 0) { x = t; r += 16; } - if((t=x>>8) != 0) { x = t; r += 8; } - if((t=x>>4) != 0) { x = t; r += 4; } - if((t=x>>2) != 0) { x = t; r += 2; } - if((t=x>>1) != 0) { x = t; r += 1; } - return r; - } - - // (public) return the number of bits in "this" - function bnBitLength() { - if(this.t <= 0) return 0; - return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM)); - } - - // (protected) r = this << n*DB - function bnpDLShiftTo(n,r) { - var i; - for(i = this.t-1; i >= 0; --i) r[i+n] = this[i]; - for(i = n-1; i >= 0; --i) r[i] = 0; - r.t = this.t+n; - r.s = this.s; - } - - // (protected) r = this >> n*DB - function bnpDRShiftTo(n,r) { - for(var i = n; i < this.t; ++i) r[i-n] = this[i]; - r.t = Math.max(this.t-n,0); - r.s = this.s; - } - - // (protected) r = this << n - function bnpLShiftTo(n,r) { - var bs = n%this.DB; - var cbs = this.DB-bs; - var bm = (1<= 0; --i) { - r[i+ds+1] = (this[i]>>cbs)|c; - c = (this[i]&bm)<= 0; --i) r[i] = 0; - r[ds] = c; - r.t = this.t+ds+1; - r.s = this.s; - r.clamp(); - } - - // (protected) r = this >> n - function bnpRShiftTo(n,r) { - r.s = this.s; - var ds = Math.floor(n/this.DB); - if(ds >= this.t) { r.t = 0; return; } - var bs = n%this.DB; - var cbs = this.DB-bs; - var bm = (1<>bs; - for(var i = ds+1; i < this.t; ++i) { - r[i-ds-1] |= (this[i]&bm)<>bs; - } - if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<>= this.DB; - } - if(a.t < this.t) { - c -= a.s; - while(i < this.t) { - c += this[i]; - r[i++] = c&this.DM; - c >>= this.DB; - } - c += this.s; - } - else { - c += this.s; - while(i < a.t) { - c -= a[i]; - r[i++] = c&this.DM; - c >>= this.DB; - } - c -= a.s; - } - r.s = (c<0)?-1:0; - if(c < -1) r[i++] = this.DV+c; - else if(c > 0) r[i++] = c; - r.t = i; - r.clamp(); - } - - // (protected) r = this * a, r != this,a (HAC 14.12) - // "this" should be the larger one if appropriate. - function bnpMultiplyTo(a,r) { - var x = this.abs(), y = a.abs(); - var i = x.t; - r.t = i+y.t; - while(--i >= 0) r[i] = 0; - for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t); - r.s = 0; - r.clamp(); - if(this.s != a.s) BigInteger.ZERO.subTo(r,r); - } - - // (protected) r = this^2, r != this (HAC 14.16) - function bnpSquareTo(r) { - var x = this.abs(); - var i = r.t = 2*x.t; - while(--i >= 0) r[i] = 0; - for(i = 0; i < x.t-1; ++i) { - var c = x.am(i,x[i],r,2*i,0,1); - if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) { - r[i+x.t] -= x.DV; - r[i+x.t+1] = 1; - } - } - if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1); - r.s = 0; - r.clamp(); - } - - // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20) - // r != q, this != m. q or r may be null. - function bnpDivRemTo(m,q,r) { - var pm = m.abs(); - if(pm.t <= 0) return; - var pt = this.abs(); - if(pt.t < pm.t) { - if(q != null) q.fromInt(0); - if(r != null) this.copyTo(r); - return; - } - if(r == null) r = nbi(); - var y = nbi(), ts = this.s, ms = m.s; - var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus - if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); } - else { pm.copyTo(y); pt.copyTo(r); } - var ys = y.t; - var y0 = y[ys-1]; - if(y0 == 0) return; - var yt = y0*(1<1)?y[ys-2]>>this.F2:0); - var d1 = this.FV/yt, d2 = (1<= 0) { - r[r.t++] = 1; - r.subTo(t,r); - } - BigInteger.ONE.dlShiftTo(ys,t); - t.subTo(y,y); // "negative" y so we can replace sub with am later - while(y.t < ys) y[y.t++] = 0; - while(--j >= 0) { - // Estimate quotient digit - var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2); - if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out - y.dlShiftTo(j,t); - r.subTo(t,r); - while(r[i] < --qd) r.subTo(t,r); - } - } - if(q != null) { - r.drShiftTo(ys,q); - if(ts != ms) BigInteger.ZERO.subTo(q,q); - } - r.t = ys; - r.clamp(); - if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder - if(ts < 0) BigInteger.ZERO.subTo(r,r); - } - - // (public) this mod a - function bnMod(a) { - var r = nbi(); - this.abs().divRemTo(a,null,r); - if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r); - return r; - } - - // Modular reduction using "classic" algorithm - function Classic(m) { this.m = m; } - function cConvert(x) { - if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m); - else return x; - } - function cRevert(x) { return x; } - function cReduce(x) { x.divRemTo(this.m,null,x); } - function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } - function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); } - - Classic.prototype.convert = cConvert; - Classic.prototype.revert = cRevert; - Classic.prototype.reduce = cReduce; - Classic.prototype.mulTo = cMulTo; - Classic.prototype.sqrTo = cSqrTo; - - // (protected) return "-1/this % 2^DB"; useful for Mont. reduction - // justification: - // xy == 1 (mod m) - // xy = 1+km - // xy(2-xy) = (1+km)(1-km) - // x[y(2-xy)] = 1-k^2m^2 - // x[y(2-xy)] == 1 (mod m^2) - // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2 - // should reduce x and y(2-xy) by m^2 at each step to keep size bounded. - // JS multiply "overflows" differently from C/C++, so care is needed here. - function bnpInvDigit() { - if(this.t < 1) return 0; - var x = this[0]; - if((x&1) == 0) return 0; - var y = x&3; // y == 1/x mod 2^2 - y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4 - y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8 - y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16 - // last step - calculate inverse mod DV directly; - // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints - y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits - // we really want the negative inverse, and -DV < y < DV - return (y>0)?this.DV-y:-y; - } - - // Montgomery reduction - function Montgomery(m) { - this.m = m; - this.mp = m.invDigit(); - this.mpl = this.mp&0x7fff; - this.mph = this.mp>>15; - this.um = (1<<(m.DB-15))-1; - this.mt2 = 2*m.t; - } - - // xR mod m - function montConvert(x) { - var r = nbi(); - x.abs().dlShiftTo(this.m.t,r); - r.divRemTo(this.m,null,r); - if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r); - return r; - } - - // x/R mod m - function montRevert(x) { - var r = nbi(); - x.copyTo(r); - this.reduce(r); - return r; - } - - // x = x/R mod m (HAC 14.32) - function montReduce(x) { - while(x.t <= this.mt2) // pad x so am has enough room later - x[x.t++] = 0; - for(var i = 0; i < this.m.t; ++i) { - // faster way of calculating u0 = x[i]*mp mod DV - var j = x[i]&0x7fff; - var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM; - // use am to combine the multiply-shift-add into one call - j = i+this.m.t; - x[j] += this.m.am(0,u0,x,i,0,this.m.t); - // propagate carry - while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; } - } - x.clamp(); - x.drShiftTo(this.m.t,x); - if(x.compareTo(this.m) >= 0) x.subTo(this.m,x); - } - - // r = "x^2/R mod m"; x != r - function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); } - - // r = "xy/R mod m"; x,y != r - function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } - - Montgomery.prototype.convert = montConvert; - Montgomery.prototype.revert = montRevert; - Montgomery.prototype.reduce = montReduce; - Montgomery.prototype.mulTo = montMulTo; - Montgomery.prototype.sqrTo = montSqrTo; - - // (protected) true iff this is even - function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; } - - // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79) - function bnpExp(e,z) { - if(e > 0xffffffff || e < 1) return BigInteger.ONE; - var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1; - g.copyTo(r); - while(--i >= 0) { - z.sqrTo(r,r2); - if((e&(1< 0) z.mulTo(r2,g,r); - else { var t = r; r = r2; r2 = t; } - } - return z.revert(r); - } - - // (public) this^e % m, 0 <= e < 2^32 - function bnModPowInt(e,m) { - var z; - if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m); - return this.exp(e,z); - } - - // protected - BigInteger.prototype.copyTo = bnpCopyTo; - BigInteger.prototype.fromInt = bnpFromInt; - BigInteger.prototype.fromString = bnpFromString; - BigInteger.prototype.clamp = bnpClamp; - BigInteger.prototype.dlShiftTo = bnpDLShiftTo; - BigInteger.prototype.drShiftTo = bnpDRShiftTo; - BigInteger.prototype.lShiftTo = bnpLShiftTo; - BigInteger.prototype.rShiftTo = bnpRShiftTo; - BigInteger.prototype.subTo = bnpSubTo; - BigInteger.prototype.multiplyTo = bnpMultiplyTo; - BigInteger.prototype.squareTo = bnpSquareTo; - BigInteger.prototype.divRemTo = bnpDivRemTo; - BigInteger.prototype.invDigit = bnpInvDigit; - BigInteger.prototype.isEven = bnpIsEven; - BigInteger.prototype.exp = bnpExp; - - // public - BigInteger.prototype.toString = bnToString; - BigInteger.prototype.negate = bnNegate; - BigInteger.prototype.abs = bnAbs; - BigInteger.prototype.compareTo = bnCompareTo; - BigInteger.prototype.bitLength = bnBitLength; - BigInteger.prototype.mod = bnMod; - BigInteger.prototype.modPowInt = bnModPowInt; - - // "constants" - BigInteger.ZERO = nbv(0); - BigInteger.ONE = nbv(1); - - // Copyright (c) 2005-2009 Tom Wu - // All Rights Reserved. - // See "LICENSE" for details. - - // Extended JavaScript BN functions, required for RSA private ops. - - // Version 1.1: new BigInteger("0", 10) returns "proper" zero - // Version 1.2: square() API, isProbablePrime fix - - // (public) - function bnClone() { var r = nbi(); this.copyTo(r); return r; } - - // (public) return value as integer - function bnIntValue() { - if(this.s < 0) { - if(this.t == 1) return this[0]-this.DV; - else if(this.t == 0) return -1; - } - else if(this.t == 1) return this[0]; - else if(this.t == 0) return 0; - // assumes 16 < DB < 32 - return ((this[1]&((1<<(32-this.DB))-1))<>24; } - - // (public) return value as short (assumes DB>=16) - function bnShortValue() { return (this.t==0)?this.s:(this[0]<<16)>>16; } - - // (protected) return x s.t. r^x < DV - function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); } - - // (public) 0 if this == 0, 1 if this > 0 - function bnSigNum() { - if(this.s < 0) return -1; - else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0; - else return 1; - } - - // (protected) convert to radix string - function bnpToRadix(b) { - if(b == null) b = 10; - if(this.signum() == 0 || b < 2 || b > 36) return "0"; - var cs = this.chunkSize(b); - var a = Math.pow(b,cs); - var d = nbv(a), y = nbi(), z = nbi(), r = ""; - this.divRemTo(d,y,z); - while(y.signum() > 0) { - r = (a+z.intValue()).toString(b).substr(1) + r; - y.divRemTo(d,y,z); - } - return z.intValue().toString(b) + r; - } - - // (protected) convert from radix string - function bnpFromRadix(s,b) { - this.fromInt(0); - if(b == null) b = 10; - var cs = this.chunkSize(b); - var d = Math.pow(b,cs), mi = false, j = 0, w = 0; - for(var i = 0; i < s.length; ++i) { - var x = intAt(s,i); - if(x < 0) { - if(s.charAt(i) == "-" && this.signum() == 0) mi = true; - continue; - } - w = b*w+x; - if(++j >= cs) { - this.dMultiply(d); - this.dAddOffset(w,0); - j = 0; - w = 0; - } - } - if(j > 0) { - this.dMultiply(Math.pow(b,j)); - this.dAddOffset(w,0); - } - if(mi) BigInteger.ZERO.subTo(this,this); - } - - // (protected) alternate constructor - function bnpFromNumber(a,b,c) { - if("number" == typeof b) { - // new BigInteger(int,int,RNG) - if(a < 2) this.fromInt(1); - else { - this.fromNumber(a,c); - if(!this.testBit(a-1)) // force MSB set - this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this); - if(this.isEven()) this.dAddOffset(1,0); // force odd - while(!this.isProbablePrime(b)) { - this.dAddOffset(2,0); - if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this); - } - } - } - else { - // new BigInteger(int,RNG) - var x = new Array(), t = a&7; - x.length = (a>>3)+1; - b.nextBytes(x); - if(t > 0) x[0] &= ((1< 0) { - if(p < this.DB && (d = this[i]>>p) != (this.s&this.DM)>>p) - r[k++] = d|(this.s<<(this.DB-p)); - while(i >= 0) { - if(p < 8) { - d = (this[i]&((1<>(p+=this.DB-8); - } - else { - d = (this[i]>>(p-=8))&0xff; - if(p <= 0) { p += this.DB; --i; } - } - if((d&0x80) != 0) d |= -256; - if(k == 0 && (this.s&0x80) != (d&0x80)) ++k; - if(k > 0 || d != this.s) r[k++] = d; - } - } - return r; - } - - function bnEquals(a) { return(this.compareTo(a)==0); } - function bnMin(a) { return(this.compareTo(a)<0)?this:a; } - function bnMax(a) { return(this.compareTo(a)>0)?this:a; } - - // (protected) r = this op a (bitwise) - function bnpBitwiseTo(a,op,r) { - var i, f, m = Math.min(a.t,this.t); - for(i = 0; i < m; ++i) r[i] = op(this[i],a[i]); - if(a.t < this.t) { - f = a.s&this.DM; - for(i = m; i < this.t; ++i) r[i] = op(this[i],f); - r.t = this.t; - } - else { - f = this.s&this.DM; - for(i = m; i < a.t; ++i) r[i] = op(f,a[i]); - r.t = a.t; - } - r.s = op(this.s,a.s); - r.clamp(); - } - - // (public) this & a - function op_and(x,y) { return x&y; } - function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; } - - // (public) this | a - function op_or(x,y) { return x|y; } - function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; } - - // (public) this ^ a - function op_xor(x,y) { return x^y; } - function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; } - - // (public) this & ~a - function op_andnot(x,y) { return x&~y; } - function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; } - - // (public) ~this - function bnNot() { - var r = nbi(); - for(var i = 0; i < this.t; ++i) r[i] = this.DM&~this[i]; - r.t = this.t; - r.s = ~this.s; - return r; - } - - // (public) this << n - function bnShiftLeft(n) { - var r = nbi(); - if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r); - return r; - } - - // (public) this >> n - function bnShiftRight(n) { - var r = nbi(); - if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r); - return r; - } - - // return index of lowest 1-bit in x, x < 2^31 - function lbit(x) { - if(x == 0) return -1; - var r = 0; - if((x&0xffff) == 0) { x >>= 16; r += 16; } - if((x&0xff) == 0) { x >>= 8; r += 8; } - if((x&0xf) == 0) { x >>= 4; r += 4; } - if((x&3) == 0) { x >>= 2; r += 2; } - if((x&1) == 0) ++r; - return r; - } - - // (public) returns index of lowest 1-bit (or -1 if none) - function bnGetLowestSetBit() { - for(var i = 0; i < this.t; ++i) - if(this[i] != 0) return i*this.DB+lbit(this[i]); - if(this.s < 0) return this.t*this.DB; - return -1; - } - - // return number of 1 bits in x - function cbit(x) { - var r = 0; - while(x != 0) { x &= x-1; ++r; } - return r; - } - - // (public) return number of set bits - function bnBitCount() { - var r = 0, x = this.s&this.DM; - for(var i = 0; i < this.t; ++i) r += cbit(this[i]^x); - return r; - } - - // (public) true iff nth bit is set - function bnTestBit(n) { - var j = Math.floor(n/this.DB); - if(j >= this.t) return(this.s!=0); - return((this[j]&(1<<(n%this.DB)))!=0); - } - - // (protected) this op (1<>= this.DB; - } - if(a.t < this.t) { - c += a.s; - while(i < this.t) { - c += this[i]; - r[i++] = c&this.DM; - c >>= this.DB; - } - c += this.s; - } - else { - c += this.s; - while(i < a.t) { - c += a[i]; - r[i++] = c&this.DM; - c >>= this.DB; - } - c += a.s; - } - r.s = (c<0)?-1:0; - if(c > 0) r[i++] = c; - else if(c < -1) r[i++] = this.DV+c; - r.t = i; - r.clamp(); - } - - // (public) this + a - function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; } - - // (public) this - a - function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; } - - // (public) this * a - function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; } - - // (public) this^2 - function bnSquare() { var r = nbi(); this.squareTo(r); return r; } - - // (public) this / a - function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; } - - // (public) this % a - function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; } - - // (public) [this/a,this%a] - function bnDivideAndRemainder(a) { - var q = nbi(), r = nbi(); - this.divRemTo(a,q,r); - return new Array(q,r); - } - - // (protected) this *= n, this >= 0, 1 < n < DV - function bnpDMultiply(n) { - this[this.t] = this.am(0,n-1,this,0,0,this.t); - ++this.t; - this.clamp(); - } - - // (protected) this += n << w words, this >= 0 - function bnpDAddOffset(n,w) { - if(n == 0) return; - while(this.t <= w) this[this.t++] = 0; - this[w] += n; - while(this[w] >= this.DV) { - this[w] -= this.DV; - if(++w >= this.t) this[this.t++] = 0; - ++this[w]; - } - } - - // A "null" reducer - function NullExp() {} - function nNop(x) { return x; } - function nMulTo(x,y,r) { x.multiplyTo(y,r); } - function nSqrTo(x,r) { x.squareTo(r); } - - NullExp.prototype.convert = nNop; - NullExp.prototype.revert = nNop; - NullExp.prototype.mulTo = nMulTo; - NullExp.prototype.sqrTo = nSqrTo; - - // (public) this^e - function bnPow(e) { return this.exp(e,new NullExp()); } - - // (protected) r = lower n words of "this * a", a.t <= n - // "this" should be the larger one if appropriate. - function bnpMultiplyLowerTo(a,n,r) { - var i = Math.min(this.t+a.t,n); - r.s = 0; // assumes a,this >= 0 - r.t = i; - while(i > 0) r[--i] = 0; - var j; - for(j = r.t-this.t; i < j; ++i) r[i+this.t] = this.am(0,a[i],r,i,0,this.t); - for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a[i],r,i,0,n-i); - r.clamp(); - } - - // (protected) r = "this * a" without lower n words, n > 0 - // "this" should be the larger one if appropriate. - function bnpMultiplyUpperTo(a,n,r) { - --n; - var i = r.t = this.t+a.t-n; - r.s = 0; // assumes a,this >= 0 - while(--i >= 0) r[i] = 0; - for(i = Math.max(n-this.t,0); i < a.t; ++i) - r[this.t+i-n] = this.am(n-i,a[i],r,0,0,this.t+i-n); - r.clamp(); - r.drShiftTo(1,r); - } - - // Barrett modular reduction - function Barrett(m) { - // setup Barrett - this.r2 = nbi(); - this.q3 = nbi(); - BigInteger.ONE.dlShiftTo(2*m.t,this.r2); - this.mu = this.r2.divide(m); - this.m = m; - } - - function barrettConvert(x) { - if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m); - else if(x.compareTo(this.m) < 0) return x; - else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; } - } - - function barrettRevert(x) { return x; } - - // x = x mod m (HAC 14.42) - function barrettReduce(x) { - x.drShiftTo(this.m.t-1,this.r2); - if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); } - this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3); - this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2); - while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1); - x.subTo(this.r2,x); - while(x.compareTo(this.m) >= 0) x.subTo(this.m,x); - } - - // r = x^2 mod m; x != r - function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); } - - // r = x*y mod m; x,y != r - function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } - - Barrett.prototype.convert = barrettConvert; - Barrett.prototype.revert = barrettRevert; - Barrett.prototype.reduce = barrettReduce; - Barrett.prototype.mulTo = barrettMulTo; - Barrett.prototype.sqrTo = barrettSqrTo; - - // (public) this^e % m (HAC 14.85) - function bnModPow(e,m) { - var i = e.bitLength(), k, r = nbv(1), z; - if(i <= 0) return r; - else if(i < 18) k = 1; - else if(i < 48) k = 3; - else if(i < 144) k = 4; - else if(i < 768) k = 5; - else k = 6; - if(i < 8) - z = new Classic(m); - else if(m.isEven()) - z = new Barrett(m); - else - z = new Montgomery(m); - - // precomputation - var g = new Array(), n = 3, k1 = k-1, km = (1< 1) { - var g2 = nbi(); - z.sqrTo(g[1],g2); - while(n <= km) { - g[n] = nbi(); - z.mulTo(g2,g[n-2],g[n]); - n += 2; - } - } - - var j = e.t-1, w, is1 = true, r2 = nbi(), t; - i = nbits(e[j])-1; - while(j >= 0) { - if(i >= k1) w = (e[j]>>(i-k1))&km; - else { - w = (e[j]&((1<<(i+1))-1))<<(k1-i); - if(j > 0) w |= e[j-1]>>(this.DB+i-k1); - } - - n = k; - while((w&1) == 0) { w >>= 1; --n; } - if((i -= n) < 0) { i += this.DB; --j; } - if(is1) { // ret == 1, don't bother squaring or multiplying it - g[w].copyTo(r); - is1 = false; - } - else { - while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; } - if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; } - z.mulTo(r2,g[w],r); - } - - while(j >= 0 && (e[j]&(1< 0) { - x.rShiftTo(g,x); - y.rShiftTo(g,y); - } - while(x.signum() > 0) { - if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x); - if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y); - if(x.compareTo(y) >= 0) { - x.subTo(y,x); - x.rShiftTo(1,x); - } - else { - y.subTo(x,y); - y.rShiftTo(1,y); - } - } - if(g > 0) y.lShiftTo(g,y); - return y; - } - - // (protected) this % n, n < 2^26 - function bnpModInt(n) { - if(n <= 0) return 0; - var d = this.DV%n, r = (this.s<0)?n-1:0; - if(this.t > 0) - if(d == 0) r = this[0]%n; - else for(var i = this.t-1; i >= 0; --i) r = (d*r+this[i])%n; - return r; - } - - // (public) 1/this % m (HAC 14.61) - function bnModInverse(m) { - var ac = m.isEven(); - if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO; - var u = m.clone(), v = this.clone(); - var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1); - while(u.signum() != 0) { - while(u.isEven()) { - u.rShiftTo(1,u); - if(ac) { - if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); } - a.rShiftTo(1,a); - } - else if(!b.isEven()) b.subTo(m,b); - b.rShiftTo(1,b); - } - while(v.isEven()) { - v.rShiftTo(1,v); - if(ac) { - if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); } - c.rShiftTo(1,c); - } - else if(!d.isEven()) d.subTo(m,d); - d.rShiftTo(1,d); - } - if(u.compareTo(v) >= 0) { - u.subTo(v,u); - if(ac) a.subTo(c,a); - b.subTo(d,b); - } - else { - v.subTo(u,v); - if(ac) c.subTo(a,c); - d.subTo(b,d); - } - } - if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO; - if(d.compareTo(m) >= 0) return d.subtract(m); - if(d.signum() < 0) d.addTo(m,d); else return d; - if(d.signum() < 0) return d.add(m); else return d; - } - - var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997]; - var lplim = (1<<26)/lowprimes[lowprimes.length-1]; - - // (public) test primality with certainty >= 1-.5^t - function bnIsProbablePrime(t) { - var i, x = this.abs(); - if(x.t == 1 && x[0] <= lowprimes[lowprimes.length-1]) { - for(i = 0; i < lowprimes.length; ++i) - if(x[0] == lowprimes[i]) return true; - return false; - } - if(x.isEven()) return false; - i = 1; - while(i < lowprimes.length) { - var m = lowprimes[i], j = i+1; - while(j < lowprimes.length && m < lplim) m *= lowprimes[j++]; - m = x.modInt(m); - while(i < j) if(m%lowprimes[i++] == 0) return false; - } - return x.millerRabin(t); - } - - // (protected) true if probably prime (HAC 4.24, Miller-Rabin) - function bnpMillerRabin(t) { - var n1 = this.subtract(BigInteger.ONE); - var k = n1.getLowestSetBit(); - if(k <= 0) return false; - var r = n1.shiftRight(k); - t = (t+1)>>1; - if(t > lowprimes.length) t = lowprimes.length; - var a = nbi(); - for(var i = 0; i < t; ++i) { - //Pick bases at random, instead of starting at 2 - a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]); - var y = a.modPow(r,this); - if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) { - var j = 1; - while(j++ < k && y.compareTo(n1) != 0) { - y = y.modPowInt(2,this); - if(y.compareTo(BigInteger.ONE) == 0) return false; - } - if(y.compareTo(n1) != 0) return false; - } - } - return true; - } - - // protected - BigInteger.prototype.chunkSize = bnpChunkSize; - BigInteger.prototype.toRadix = bnpToRadix; - BigInteger.prototype.fromRadix = bnpFromRadix; - BigInteger.prototype.fromNumber = bnpFromNumber; - BigInteger.prototype.bitwiseTo = bnpBitwiseTo; - BigInteger.prototype.changeBit = bnpChangeBit; - BigInteger.prototype.addTo = bnpAddTo; - BigInteger.prototype.dMultiply = bnpDMultiply; - BigInteger.prototype.dAddOffset = bnpDAddOffset; - BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo; - BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo; - BigInteger.prototype.modInt = bnpModInt; - BigInteger.prototype.millerRabin = bnpMillerRabin; - - // public - BigInteger.prototype.clone = bnClone; - BigInteger.prototype.intValue = bnIntValue; - BigInteger.prototype.byteValue = bnByteValue; - BigInteger.prototype.shortValue = bnShortValue; - BigInteger.prototype.signum = bnSigNum; - BigInteger.prototype.toByteArray = bnToByteArray; - BigInteger.prototype.equals = bnEquals; - BigInteger.prototype.min = bnMin; - BigInteger.prototype.max = bnMax; - BigInteger.prototype.and = bnAnd; - BigInteger.prototype.or = bnOr; - BigInteger.prototype.xor = bnXor; - BigInteger.prototype.andNot = bnAndNot; - BigInteger.prototype.not = bnNot; - BigInteger.prototype.shiftLeft = bnShiftLeft; - BigInteger.prototype.shiftRight = bnShiftRight; - BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit; - BigInteger.prototype.bitCount = bnBitCount; - BigInteger.prototype.testBit = bnTestBit; - BigInteger.prototype.setBit = bnSetBit; - BigInteger.prototype.clearBit = bnClearBit; - BigInteger.prototype.flipBit = bnFlipBit; - BigInteger.prototype.add = bnAdd; - BigInteger.prototype.subtract = bnSubtract; - BigInteger.prototype.multiply = bnMultiply; - BigInteger.prototype.divide = bnDivide; - BigInteger.prototype.remainder = bnRemainder; - BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder; - BigInteger.prototype.modPow = bnModPow; - BigInteger.prototype.modInverse = bnModInverse; - BigInteger.prototype.pow = bnPow; - BigInteger.prototype.gcd = bnGCD; - BigInteger.prototype.isProbablePrime = bnIsProbablePrime; - - // JSBN-specific extension - BigInteger.prototype.square = bnSquare; - - // Expose the Barrett function - BigInteger.prototype.Barrett = Barrett - - // BigInteger interfaces not implemented in jsbn: - - // BigInteger(int signum, byte[] magnitude) - // double doubleValue() - // float floatValue() - // int hashCode() - // long longValue() - // static BigInteger valueOf(long val) - - // Random number generator - requires a PRNG backend, e.g. prng4.js - - // For best results, put code like - // - // in your main HTML document. - - var rng_state; - var rng_pool; - var rng_pptr; - - // Mix in a 32-bit integer into the pool - function rng_seed_int(x) { - rng_pool[rng_pptr++] ^= x & 255; - rng_pool[rng_pptr++] ^= (x >> 8) & 255; - rng_pool[rng_pptr++] ^= (x >> 16) & 255; - rng_pool[rng_pptr++] ^= (x >> 24) & 255; - if(rng_pptr >= rng_psize) rng_pptr -= rng_psize; - } - - // Mix in the current time (w/milliseconds) into the pool - function rng_seed_time() { - rng_seed_int(new Date().getTime()); - } - - // Initialize the pool with junk if needed. - if(rng_pool == null) { - rng_pool = new Array(); - rng_pptr = 0; - var t; - if(typeof window !== "undefined" && window.crypto) { - if (window.crypto.getRandomValues) { - // Use webcrypto if available - var ua = new Uint8Array(32); - window.crypto.getRandomValues(ua); - for(t = 0; t < 32; ++t) - rng_pool[rng_pptr++] = ua[t]; - } - else if(navigator.appName == "Netscape" && navigator.appVersion < "5") { - // Extract entropy (256 bits) from NS4 RNG if available - var z = window.crypto.random(32); - for(t = 0; t < z.length; ++t) - rng_pool[rng_pptr++] = z.charCodeAt(t) & 255; - } - } - while(rng_pptr < rng_psize) { // extract some randomness from Math.random() - t = Math.floor(65536 * Math.random()); - rng_pool[rng_pptr++] = t >>> 8; - rng_pool[rng_pptr++] = t & 255; - } - rng_pptr = 0; - rng_seed_time(); - //rng_seed_int(window.screenX); - //rng_seed_int(window.screenY); - } - - function rng_get_byte() { - if(rng_state == null) { - rng_seed_time(); - rng_state = prng_newstate(); - rng_state.init(rng_pool); - for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) - rng_pool[rng_pptr] = 0; - rng_pptr = 0; - //rng_pool = null; - } - // TODO: allow reseeding after first request - return rng_state.next(); - } - - function rng_get_bytes(ba) { - var i; - for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte(); - } - - function SecureRandom() {} - - SecureRandom.prototype.nextBytes = rng_get_bytes; - - // prng4.js - uses Arcfour as a PRNG - - function Arcfour() { - this.i = 0; - this.j = 0; - this.S = new Array(); - } - - // Initialize arcfour context from key, an array of ints, each from [0..255] - function ARC4init(key) { - var i, j, t; - for(i = 0; i < 256; ++i) - this.S[i] = i; - j = 0; - for(i = 0; i < 256; ++i) { - j = (j + this.S[i] + key[i % key.length]) & 255; - t = this.S[i]; - this.S[i] = this.S[j]; - this.S[j] = t; - } - this.i = 0; - this.j = 0; - } - - function ARC4next() { - var t; - this.i = (this.i + 1) & 255; - this.j = (this.j + this.S[this.i]) & 255; - t = this.S[this.i]; - this.S[this.i] = this.S[this.j]; - this.S[this.j] = t; - return this.S[(t + this.S[this.i]) & 255]; - } - - Arcfour.prototype.init = ARC4init; - Arcfour.prototype.next = ARC4next; - - // Plug in your RNG constructor here - function prng_newstate() { - return new Arcfour(); - } - - // Pool size must be a multiple of 4 and greater than 32. - // An array of bytes the size of the pool will be passed to init() - var rng_psize = 256; - - if (typeof exports !== 'undefined') { - exports = module.exports = { - BigInteger: BigInteger, - SecureRandom: SecureRandom, - }; - } else { - this.BigInteger = BigInteger; - this.SecureRandom = SecureRandom; - } - -}).call(this); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json deleted file mode 100644 index 838d035f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "_args": [ - [ - "jsbn@>=0.1.0 <0.2.0", - "/Users/ogd/Documents/projects/npm/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk" - ] - ], - "_from": "jsbn@>=0.1.0 <0.2.0", - "_id": "jsbn@0.1.0", - "_inCache": true, - "_installable": true, - "_location": "/request/http-signature/sshpk/jsbn", - "_nodeVersion": "0.12.2", - "_npmUser": { - "email": "andyperlitch@gmail.com", - "name": "andyperlitch" - }, - "_npmVersion": "2.7.4", - "_phantomChildren": {}, - "_requested": { - "name": "jsbn", - "raw": "jsbn@>=0.1.0 <0.2.0", - "rawSpec": ">=0.1.0 <0.2.0", - "scope": null, - "spec": ">=0.1.0 <0.2.0", - "type": "range" - }, - "_requiredBy": [ - "/request/http-signature/sshpk", - "/request/http-signature/sshpk/ecc-jsbn", - "/request/http-signature/sshpk/jodid25519" - ], - "_resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", - "_shasum": "650987da0dd74f4ebf5a11377a2aa2d273e97dfd", - "_shrinkwrap": null, - "_spec": "jsbn@>=0.1.0 <0.2.0", - "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk", - "author": { - "name": "Tom Wu" - }, - "bugs": { - "url": "https://github.com/andyperlitch/jsbn/issues" - }, - "dependencies": {}, - "description": "The jsbn library is a fast, portable implementation of large-number math in pure JavaScript, enabling public-key crypto and other applications on desktop and mobile browsers.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "650987da0dd74f4ebf5a11377a2aa2d273e97dfd", - "tarball": "http://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" - }, - "gitHead": "148a967b112806e63ddeeed78ee7938eef74c84a", - "homepage": "https://github.com/andyperlitch/jsbn", - "keywords": [ - "big", - "biginteger", - "bignumber", - "integer" - ], - "license": "BSD", - "main": "index.js", - "maintainers": [ - { - "name": "andyperlitch", - "email": "andyperlitch@gmail.com" - } - ], - "name": "jsbn", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/andyperlitch/jsbn.git" - }, - "scripts": { - "test": "mocha test.js" - }, - "version": "0.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/.npmignore deleted file mode 100644 index 7d98dcbd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -.eslintrc -.travis.yml -bower.json -test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md deleted file mode 100644 index 9debcb42..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md +++ /dev/null @@ -1,181 +0,0 @@ -TweetNaCl.js Changelog -====================== - - -v0.14.1 -------- - -No code changes, just tweaked packaging and added COPYING.txt. - - -v0.14.0 -------- - -* **Breaking change!** All functions from `nacl.util` have been removed. These - functions are no longer available: - - nacl.util.decodeUTF8 - nacl.util.encodeUTF8 - nacl.util.decodeBase64 - nacl.util.encodeBase64 - - If want to continue using them, you can include - package: - - - - - or - - var nacl = require('tweetnacl'); - nacl.util = require('tweetnacl-util'); - - However it is recommended to use better packages that have wider - compatibility and better performance. Functions from `nacl.util` were never - intended to be robust solution for string conversion and were included for - convenience: cryptography library is not the right place for them. - - Currently calling these functions will throw error pointing to - `tweetnacl-util-js` (in the next version this error message will be removed). - -* Improved detection of available random number generators, making it possible - to use `nacl.randomBytes` and related functions in Web Workers without - changes. - -* Changes to testing (see README). - - -v0.13.3 -------- - -No code changes. - -* Reverted license field in package.json to "Public domain". - -* Fixed typo in README. - - -v0.13.2 -------- - -* Fixed undefined variable bug in fast version of Poly1305. No worries, this - bug was *never* triggered. - -* Specified CC0 public domain dedication. - -* Updated development dependencies. - - -v0.13.1 -------- - -* Exclude `crypto` and `buffer` modules from browserify builds. - - -v0.13.0 -------- - -* Made `nacl-fast` the default version in NPM package. Now - `require("tweetnacl")` will use fast version; to get the original version, - use `require("tweetnacl/nacl.js")`. - -* Cleanup temporary array after generating random bytes. - - -v0.12.2 -------- - -* Improved performance of curve operations, making `nacl.scalarMult`, `nacl.box`, - `nacl.sign` and related functions up to 3x faster in `nacl-fast` version. - - -v0.12.1 -------- - -* Significantly improved performance of Salsa20 (~1.5x faster) and - Poly1305 (~3.5x faster) in `nacl-fast` version. - - -v0.12.0 -------- - -* Instead of using the given secret key directly, TweetNaCl.js now copies it to - a new array in `nacl.box.keyPair.fromSecretKey` and - `nacl.sign.keyPair.fromSecretKey`. - - -v0.11.2 -------- - -* Added new constant: `nacl.sign.seedLength`. - - -v0.11.1 -------- - -* Even faster hash for both short and long inputs (in `nacl-fast`). - - -v0.11.0 -------- - -* Implement `nacl.sign.keyPair.fromSeed` to enable creation of sign key pairs - deterministically from a 32-byte seed. (It behaves like - [libsodium's](http://doc.libsodium.org/public-key_cryptography/public-key_signatures.html) - `crypto_sign_seed_keypair`: the seed becomes a secret part of the secret key.) - -* Fast version now has an improved hash implementation that is 2x-5x faster. - -* Fixed benchmarks, which may have produced incorrect measurements. - - -v0.10.1 -------- - -* Exported undocumented `nacl.lowlevel.crypto_core_hsalsa20`. - - -v0.10.0 -------- - -* **Signature API breaking change!** `nacl.sign` and `nacl.sign.open` now deal - with signed messages, and new `nacl.sign.detached` and - `nacl.sign.detached.verify` are available. - - Previously, `nacl.sign` returned a signature, and `nacl.sign.open` accepted a - message and "detached" signature. This was unlike NaCl's API, which dealt with - signed messages (concatenation of signature and message). - - The new API is: - - nacl.sign(message, secretKey) -> signedMessage - nacl.sign.open(signedMessage, publicKey) -> message | null - - Since detached signatures are common, two new API functions were introduced: - - nacl.sign.detached(message, secretKey) -> signature - nacl.sign.detached.verify(message, signature, publicKey) -> true | false - - (Note that it's `verify`, not `open`, and it returns a boolean value, unlike - `open`, which returns an "unsigned" message.) - -* NPM package now comes without `test` directory to keep it small. - - -v0.9.2 ------- - -* Improved documentation. -* Fast version: increased theoretical message size limit from 2^32-1 to 2^52 - bytes in Poly1305 (and thus, secretbox and box). However this has no impact - in practice since JavaScript arrays or ArrayBuffers are limited to 32-bit - indexes, and most implementations won't allocate more than a gigabyte or so. - (Obviously, there are no tests for the correctness of implementation.) Also, - it's not recommended to use messages that large without splitting them into - smaller packets anyway. - - -v0.9.1 ------- - -* Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/COPYING.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/COPYING.txt deleted file mode 100644 index c2bd1e5b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/COPYING.txt +++ /dev/null @@ -1,9 +0,0 @@ -Public Domain - -The person who associated a work with this deed has dedicated the work to the -public domain by waiving all of his or her rights to the work worldwide under -copyright law, including all related and neighboring rights, to the extent -allowed by law. - -You can copy, modify, distribute and perform the work, even for commercial -purposes, all without asking permission. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/README.md deleted file mode 100644 index c80bbed8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/README.md +++ /dev/null @@ -1,445 +0,0 @@ -TweetNaCl.js -============ - -Port of [TweetNaCl](http://tweetnacl.cr.yp.to) / [NaCl](http://nacl.cr.yp.to/) -to JavaScript for modern browsers and Node.js. Public domain. - -[![Build Status](https://travis-ci.org/dchest/tweetnacl-js.svg?branch=master) -](https://travis-ci.org/dchest/tweetnacl-js) - -Demo: - -**:warning: Beta version. The library is stable and API is frozen, however -it has not been independently reviewed. If you can help reviewing it, please -[contact me](mailto:dmitry@codingrobots.com).** - -Documentation -============= - -* [Overview](#overview) -* [Installation](#installation) -* [Usage](#usage) - * [Public-key authenticated encryption (box)](#public-key-authenticated-encryption-box) - * [Secret-key authenticated encryption (secretbox)](#secret-key-authenticated-encryption-secretbox) - * [Scalar multiplication](#scalar-multiplication) - * [Signatures](#signatures) - * [Hashing](#hashing) - * [Random bytes generation](#random-bytes-generation) - * [Constant-time comparison](#constant-time-comparison) -* [System requirements](#system-requirements) -* [Development and testing](#development-and-testing) -* [Contributors](#contributors) -* [Who uses it](#who-uses-it) - - -Overview --------- - -The primary goal of this project is to produce a translation of TweetNaCl to -JavaScript which is as close as possible to the original C implementation, plus -a thin layer of idiomatic high-level API on top of it. - -There are two versions, you can use either of them: - -* `nacl.js` is the port of TweetNaCl with minimum differences from the - original + high-level API. - -* `nacl-fast.js` is like `nacl.js`, but with some functions replaced with - faster versions. - - -Installation ------------- - -You can install TweetNaCl.js via a package manager: - -[Bower](http://bower.io): - - $ bower install tweetnacl - -[NPM](https://www.npmjs.org/): - - $ npm install tweetnacl - -or [download source code](https://github.com/dchest/tweetnacl-js/releases). - - -Usage ------ - -All API functions accept and return bytes as `Uint8Array`s. If you need to -encode or decode strings, use functions from - or one of the more robust codec -packages. - -In Node.js v4 and later `Buffer` objects are backed by `Uint8Array`s, so you -can freely pass them to TweetNaCl.js functions as arguments. The returned -objects are still `Uint8Array`s, so if you need `Buffer`s, you'll have to -convert them manually; make sure to convert using copying: `new Buffer(array)`, -instead of sharing: `new Buffer(array.buffer)`, because some functions return -subarrays of their buffers. - - -### Public-key authenticated encryption (box) - -Implements *curve25519-xsalsa20-poly1305*. - -#### nacl.box.keyPair() - -Generates a new random key pair for box and returns it as an object with -`publicKey` and `secretKey` members: - - { - publicKey: ..., // Uint8Array with 32-byte public key - secretKey: ... // Uint8Array with 32-byte secret key - } - - -#### nacl.box.keyPair.fromSecretKey(secretKey) - -Returns a key pair for box with public key corresponding to the given secret -key. - -#### nacl.box(message, nonce, theirPublicKey, mySecretKey) - -Encrypt and authenticates message using peer's public key, our secret key, and -the given nonce, which must be unique for each distinct message for a key pair. - -Returns an encrypted and authenticated message, which is -`nacl.box.overheadLength` longer than the original message. - -#### nacl.box.open(box, nonce, theirPublicKey, mySecretKey) - -Authenticates and decrypts the given box with peer's public key, our secret -key, and the given nonce. - -Returns the original message, or `false` if authentication fails. - -#### nacl.box.before(theirPublicKey, mySecretKey) - -Returns a precomputed shared key which can be used in `nacl.box.after` and -`nacl.box.open.after`. - -#### nacl.box.after(message, nonce, sharedKey) - -Same as `nacl.box`, but uses a shared key precomputed with `nacl.box.before`. - -#### nacl.box.open.after(box, nonce, sharedKey) - -Same as `nacl.box.open`, but uses a shared key precomputed with `nacl.box.before`. - -#### nacl.box.publicKeyLength = 32 - -Length of public key in bytes. - -#### nacl.box.secretKeyLength = 32 - -Length of secret key in bytes. - -#### nacl.box.sharedKeyLength = 32 - -Length of precomputed shared key in bytes. - -#### nacl.box.nonceLength = 24 - -Length of nonce in bytes. - -#### nacl.box.overheadLength = 16 - -Length of overhead added to box compared to original message. - - -### Secret-key authenticated encryption (secretbox) - -Implements *xsalsa20-poly1305*. - -#### nacl.secretbox(message, nonce, key) - -Encrypt and authenticates message using the key and the nonce. The nonce must -be unique for each distinct message for this key. - -Returns an encrypted and authenticated message, which is -`nacl.secretbox.overheadLength` longer than the original message. - -#### nacl.secretbox.open(box, nonce, key) - -Authenticates and decrypts the given secret box using the key and the nonce. - -Returns the original message, or `false` if authentication fails. - -#### nacl.secretbox.keyLength = 32 - -Length of key in bytes. - -#### nacl.secretbox.nonceLength = 24 - -Length of nonce in bytes. - -#### nacl.secretbox.overheadLength = 16 - -Length of overhead added to secret box compared to original message. - - -### Scalar multiplication - -Implements *curve25519*. - -#### nacl.scalarMult(n, p) - -Multiplies an integer `n` by a group element `p` and returns the resulting -group element. - -#### nacl.scalarMult.base(n) - -Multiplies an integer `n` by a standard group element and returns the resulting -group element. - -#### nacl.scalarMult.scalarLength = 32 - -Length of scalar in bytes. - -#### nacl.scalarMult.groupElementLength = 32 - -Length of group element in bytes. - - -### Signatures - -Implements [ed25519](http://ed25519.cr.yp.to). - -#### nacl.sign.keyPair() - -Generates new random key pair for signing and returns it as an object with -`publicKey` and `secretKey` members: - - { - publicKey: ..., // Uint8Array with 32-byte public key - secretKey: ... // Uint8Array with 64-byte secret key - } - -#### nacl.sign.keyPair.fromSecretKey(secretKey) - -Returns a signing key pair with public key corresponding to the given -64-byte secret key. The secret key must have been generated by -`nacl.sign.keyPair` or `nacl.sign.keyPair.fromSeed`. - -#### nacl.sign.keyPair.fromSeed(seed) - -Returns a new signing key pair generated deterministically from a 32-byte seed. -The seed must contain enough entropy to be secure. This method is not -recommended for general use: instead, use `nacl.sign.keyPair` to generate a new -key pair from a random seed. - -#### nacl.sign(message, secretKey) - -Signs the message using the secret key and returns a signed message. - -#### nacl.sign.open(signedMessage, publicKey) - -Verifies the signed message and returns the message without signature. - -Returns `null` if verification failed. - -#### nacl.sign.detached(message, secretKey) - -Signs the message using the secret key and returns a signature. - -#### nacl.sign.detached.verify(message, signature, publicKey) - -Verifies the signature for the message and returns `true` if verification -succeeded or `false` if it failed. - -#### nacl.sign.publicKeyLength = 32 - -Length of signing public key in bytes. - -#### nacl.sign.secretKeyLength = 64 - -Length of signing secret key in bytes. - -#### nacl.sign.seedLength = 32 - -Length of seed for `nacl.sign.keyPair.fromSeed` in bytes. - -#### nacl.sign.signatureLength = 64 - -Length of signature in bytes. - - -### Hashing - -Implements *SHA-512*. - -#### nacl.hash(message) - -Returns SHA-512 hash of the message. - -#### nacl.hash.hashLength = 64 - -Length of hash in bytes. - - -### Random bytes generation - -#### nacl.randomBytes(length) - -Returns a `Uint8Array` of the given length containing random bytes of -cryptographic quality. - -**Implementation note** - -TweetNaCl.js uses the following methods to generate random bytes, -depending on the platform it runs on: - -* `window.crypto.getRandomValues` (WebCrypto standard) -* `window.msCrypto.getRandomValues` (Internet Explorer 11) -* `crypto.randomBytes` (Node.js) - -If the platform doesn't provide a suitable PRNG, the following functions, -which require random numbers, will throw exception: - -* `nacl.randomBytes` -* `nacl.box.keyPair` -* `nacl.sign.keyPair` - -Other functions are deterministic and will continue working. - -If a platform you are targeting doesn't implement secure random number -generator, but you somehow have a cryptographically-strong source of entropy -(not `Math.random`!), and you know what you are doing, you can plug it into -TweetNaCl.js like this: - - nacl.setPRNG(function(x, n) { - // ... copy n random bytes into x ... - }); - -Note that `nacl.setPRNG` *completely replaces* internal random byte generator -with the one provided. - - -### Constant-time comparison - -#### nacl.verify(x, y) - -Compares `x` and `y` in constant time and returns `true` if their lengths are -non-zero and equal, and their contents are equal. - -Returns `false` if either of the arguments has zero length, or arguments have -different lengths, or their contents differ. - - -System requirements -------------------- - -TweetNaCl.js supports modern browsers that have a cryptographically secure -pseudorandom number generator and typed arrays, including the latest versions -of: - -* Chrome -* Firefox -* Safari (Mac, iOS) -* Internet Explorer 11 - -Other systems: - -* Node.js - - -Development and testing ------------------------- - -Install NPM modules needed for development: - - $ npm install - -To build minified versions: - - $ npm run build - -Tests use minified version, so make sure to rebuild it every time you change -`nacl.js` or `nacl-fast.js`. - -### Testing - -To run tests in Node.js: - - $ npm run test-node - -By default all tests described here work on `nacl.min.js`. To test other -versions, set environment variable `NACL_SRC` to the file name you want to test. -For example, the following command will test fast minified version: - - $ NACL_SRC=nacl-fast.min.js npm run test-node - -To run full suite of tests in Node.js, including comparing outputs of -JavaScript port to outputs of the original C version: - - $ npm run test-node-all - -To prepare tests for browsers: - - $ npm run build-test-browser - -and then open `test/browser/test.html` (or `test/browser/test-fast.html`) to -run them. - -To run headless browser tests with `tape-run` (powered by Electron): - - $ npm run test-browser - -(If you get `Error: spawn ENOENT`, install *xvfb*: `sudo apt-get install xvfb`.) - -To run tests in both Node and Electron: - - $ npm test - -### Benchmarking - -To run benchmarks in Node.js: - - $ npm run bench - $ NACL_SRC=nacl-fast.min.js npm run bench - -To run benchmarks in a browser, open `test/benchmark/bench.html` (or -`test/benchmark/bench-fast.html`). - - -Contributors ------------- - -JavaScript port: - - * [Dmitry Chestnykh](http://github.com/dchest) (ported xsalsa20, poly1305, curve25519) - * [Devi Mandiri](https://github.com/devi) (ported curve25519, ed25519, sha512) - -Original authors of [NaCl](http://nacl.cr.yp.to), [TweetNaCl](http://tweetnacl.cr.yp.to) -and [Poly1305-donna](https://github.com/floodyberry/poly1305-donna) -(who are *not* responsible for any errors in this implementation): - - * [Daniel J. Bernstein](http://cr.yp.to/djb.html) - * Wesley Janssen - * [Tanja Lange](http://hyperelliptic.org/tanja) - * [Peter Schwabe](http://www.cryptojedi.org/users/peter/) - * [Matthew Dempsky](https://github.com/mdempsky) - * [Andrew Moon](https://github.com/floodyberry) - -Contributors have dedicated their work to the public domain. - -This software is distributed without any warranty. - - -Third-party libraries based on TweetNaCl.js -------------------------------------------- - -* [forward-secrecy](https://github.com/alax/forward-secrecy) — Axolotl ratchet implementation -* [nacl-stream](https://github.com/dchest/nacl-stream-js) - streaming encryption -* [tweetnacl-auth-js](https://github.com/dchest/tweetnacl-auth-js) — implementation of [`crypto_auth`](http://nacl.cr.yp.to/auth.html) - - -Who uses it ------------ - -Some notable users of TweetNaCl.js: - -* [miniLock](http://minilock.io/) -* [Stellar](https://www.stellar.org/) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.js deleted file mode 100644 index 5e4562fe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.js +++ /dev/null @@ -1,2388 +0,0 @@ -(function(nacl) { -'use strict'; - -// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri. -// Public domain. -// -// Implementation derived from TweetNaCl version 20140427. -// See for details: http://tweetnacl.cr.yp.to/ - -var gf = function(init) { - var i, r = new Float64Array(16); - if (init) for (i = 0; i < init.length; i++) r[i] = init[i]; - return r; -}; - -// Pluggable, initialized in high-level API below. -var randombytes = function(/* x, n */) { throw new Error('no PRNG'); }; - -var _0 = new Uint8Array(16); -var _9 = new Uint8Array(32); _9[0] = 9; - -var gf0 = gf(), - gf1 = gf([1]), - _121665 = gf([0xdb41, 1]), - D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]), - D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]), - X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]), - Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]), - I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]); - -function ts64(x, i, h, l) { - x[i] = (h >> 24) & 0xff; - x[i+1] = (h >> 16) & 0xff; - x[i+2] = (h >> 8) & 0xff; - x[i+3] = h & 0xff; - x[i+4] = (l >> 24) & 0xff; - x[i+5] = (l >> 16) & 0xff; - x[i+6] = (l >> 8) & 0xff; - x[i+7] = l & 0xff; -} - -function vn(x, xi, y, yi, n) { - var i,d = 0; - for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i]; - return (1 & ((d - 1) >>> 8)) - 1; -} - -function crypto_verify_16(x, xi, y, yi) { - return vn(x,xi,y,yi,16); -} - -function crypto_verify_32(x, xi, y, yi) { - return vn(x,xi,y,yi,32); -} - -function core_salsa20(o, p, k, c) { - var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24, - j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24, - j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24, - j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24, - j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24, - j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24, - j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24, - j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24, - j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24, - j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24, - j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24, - j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24, - j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24, - j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24, - j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24, - j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24; - - var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7, - x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, - x15 = j15, u; - - for (var i = 0; i < 20; i += 2) { - u = x0 + x12 | 0; - x4 ^= u<<7 | u>>>(32-7); - u = x4 + x0 | 0; - x8 ^= u<<9 | u>>>(32-9); - u = x8 + x4 | 0; - x12 ^= u<<13 | u>>>(32-13); - u = x12 + x8 | 0; - x0 ^= u<<18 | u>>>(32-18); - - u = x5 + x1 | 0; - x9 ^= u<<7 | u>>>(32-7); - u = x9 + x5 | 0; - x13 ^= u<<9 | u>>>(32-9); - u = x13 + x9 | 0; - x1 ^= u<<13 | u>>>(32-13); - u = x1 + x13 | 0; - x5 ^= u<<18 | u>>>(32-18); - - u = x10 + x6 | 0; - x14 ^= u<<7 | u>>>(32-7); - u = x14 + x10 | 0; - x2 ^= u<<9 | u>>>(32-9); - u = x2 + x14 | 0; - x6 ^= u<<13 | u>>>(32-13); - u = x6 + x2 | 0; - x10 ^= u<<18 | u>>>(32-18); - - u = x15 + x11 | 0; - x3 ^= u<<7 | u>>>(32-7); - u = x3 + x15 | 0; - x7 ^= u<<9 | u>>>(32-9); - u = x7 + x3 | 0; - x11 ^= u<<13 | u>>>(32-13); - u = x11 + x7 | 0; - x15 ^= u<<18 | u>>>(32-18); - - u = x0 + x3 | 0; - x1 ^= u<<7 | u>>>(32-7); - u = x1 + x0 | 0; - x2 ^= u<<9 | u>>>(32-9); - u = x2 + x1 | 0; - x3 ^= u<<13 | u>>>(32-13); - u = x3 + x2 | 0; - x0 ^= u<<18 | u>>>(32-18); - - u = x5 + x4 | 0; - x6 ^= u<<7 | u>>>(32-7); - u = x6 + x5 | 0; - x7 ^= u<<9 | u>>>(32-9); - u = x7 + x6 | 0; - x4 ^= u<<13 | u>>>(32-13); - u = x4 + x7 | 0; - x5 ^= u<<18 | u>>>(32-18); - - u = x10 + x9 | 0; - x11 ^= u<<7 | u>>>(32-7); - u = x11 + x10 | 0; - x8 ^= u<<9 | u>>>(32-9); - u = x8 + x11 | 0; - x9 ^= u<<13 | u>>>(32-13); - u = x9 + x8 | 0; - x10 ^= u<<18 | u>>>(32-18); - - u = x15 + x14 | 0; - x12 ^= u<<7 | u>>>(32-7); - u = x12 + x15 | 0; - x13 ^= u<<9 | u>>>(32-9); - u = x13 + x12 | 0; - x14 ^= u<<13 | u>>>(32-13); - u = x14 + x13 | 0; - x15 ^= u<<18 | u>>>(32-18); - } - x0 = x0 + j0 | 0; - x1 = x1 + j1 | 0; - x2 = x2 + j2 | 0; - x3 = x3 + j3 | 0; - x4 = x4 + j4 | 0; - x5 = x5 + j5 | 0; - x6 = x6 + j6 | 0; - x7 = x7 + j7 | 0; - x8 = x8 + j8 | 0; - x9 = x9 + j9 | 0; - x10 = x10 + j10 | 0; - x11 = x11 + j11 | 0; - x12 = x12 + j12 | 0; - x13 = x13 + j13 | 0; - x14 = x14 + j14 | 0; - x15 = x15 + j15 | 0; - - o[ 0] = x0 >>> 0 & 0xff; - o[ 1] = x0 >>> 8 & 0xff; - o[ 2] = x0 >>> 16 & 0xff; - o[ 3] = x0 >>> 24 & 0xff; - - o[ 4] = x1 >>> 0 & 0xff; - o[ 5] = x1 >>> 8 & 0xff; - o[ 6] = x1 >>> 16 & 0xff; - o[ 7] = x1 >>> 24 & 0xff; - - o[ 8] = x2 >>> 0 & 0xff; - o[ 9] = x2 >>> 8 & 0xff; - o[10] = x2 >>> 16 & 0xff; - o[11] = x2 >>> 24 & 0xff; - - o[12] = x3 >>> 0 & 0xff; - o[13] = x3 >>> 8 & 0xff; - o[14] = x3 >>> 16 & 0xff; - o[15] = x3 >>> 24 & 0xff; - - o[16] = x4 >>> 0 & 0xff; - o[17] = x4 >>> 8 & 0xff; - o[18] = x4 >>> 16 & 0xff; - o[19] = x4 >>> 24 & 0xff; - - o[20] = x5 >>> 0 & 0xff; - o[21] = x5 >>> 8 & 0xff; - o[22] = x5 >>> 16 & 0xff; - o[23] = x5 >>> 24 & 0xff; - - o[24] = x6 >>> 0 & 0xff; - o[25] = x6 >>> 8 & 0xff; - o[26] = x6 >>> 16 & 0xff; - o[27] = x6 >>> 24 & 0xff; - - o[28] = x7 >>> 0 & 0xff; - o[29] = x7 >>> 8 & 0xff; - o[30] = x7 >>> 16 & 0xff; - o[31] = x7 >>> 24 & 0xff; - - o[32] = x8 >>> 0 & 0xff; - o[33] = x8 >>> 8 & 0xff; - o[34] = x8 >>> 16 & 0xff; - o[35] = x8 >>> 24 & 0xff; - - o[36] = x9 >>> 0 & 0xff; - o[37] = x9 >>> 8 & 0xff; - o[38] = x9 >>> 16 & 0xff; - o[39] = x9 >>> 24 & 0xff; - - o[40] = x10 >>> 0 & 0xff; - o[41] = x10 >>> 8 & 0xff; - o[42] = x10 >>> 16 & 0xff; - o[43] = x10 >>> 24 & 0xff; - - o[44] = x11 >>> 0 & 0xff; - o[45] = x11 >>> 8 & 0xff; - o[46] = x11 >>> 16 & 0xff; - o[47] = x11 >>> 24 & 0xff; - - o[48] = x12 >>> 0 & 0xff; - o[49] = x12 >>> 8 & 0xff; - o[50] = x12 >>> 16 & 0xff; - o[51] = x12 >>> 24 & 0xff; - - o[52] = x13 >>> 0 & 0xff; - o[53] = x13 >>> 8 & 0xff; - o[54] = x13 >>> 16 & 0xff; - o[55] = x13 >>> 24 & 0xff; - - o[56] = x14 >>> 0 & 0xff; - o[57] = x14 >>> 8 & 0xff; - o[58] = x14 >>> 16 & 0xff; - o[59] = x14 >>> 24 & 0xff; - - o[60] = x15 >>> 0 & 0xff; - o[61] = x15 >>> 8 & 0xff; - o[62] = x15 >>> 16 & 0xff; - o[63] = x15 >>> 24 & 0xff; -} - -function core_hsalsa20(o,p,k,c) { - var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24, - j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24, - j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24, - j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24, - j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24, - j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24, - j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24, - j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24, - j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24, - j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24, - j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24, - j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24, - j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24, - j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24, - j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24, - j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24; - - var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7, - x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, - x15 = j15, u; - - for (var i = 0; i < 20; i += 2) { - u = x0 + x12 | 0; - x4 ^= u<<7 | u>>>(32-7); - u = x4 + x0 | 0; - x8 ^= u<<9 | u>>>(32-9); - u = x8 + x4 | 0; - x12 ^= u<<13 | u>>>(32-13); - u = x12 + x8 | 0; - x0 ^= u<<18 | u>>>(32-18); - - u = x5 + x1 | 0; - x9 ^= u<<7 | u>>>(32-7); - u = x9 + x5 | 0; - x13 ^= u<<9 | u>>>(32-9); - u = x13 + x9 | 0; - x1 ^= u<<13 | u>>>(32-13); - u = x1 + x13 | 0; - x5 ^= u<<18 | u>>>(32-18); - - u = x10 + x6 | 0; - x14 ^= u<<7 | u>>>(32-7); - u = x14 + x10 | 0; - x2 ^= u<<9 | u>>>(32-9); - u = x2 + x14 | 0; - x6 ^= u<<13 | u>>>(32-13); - u = x6 + x2 | 0; - x10 ^= u<<18 | u>>>(32-18); - - u = x15 + x11 | 0; - x3 ^= u<<7 | u>>>(32-7); - u = x3 + x15 | 0; - x7 ^= u<<9 | u>>>(32-9); - u = x7 + x3 | 0; - x11 ^= u<<13 | u>>>(32-13); - u = x11 + x7 | 0; - x15 ^= u<<18 | u>>>(32-18); - - u = x0 + x3 | 0; - x1 ^= u<<7 | u>>>(32-7); - u = x1 + x0 | 0; - x2 ^= u<<9 | u>>>(32-9); - u = x2 + x1 | 0; - x3 ^= u<<13 | u>>>(32-13); - u = x3 + x2 | 0; - x0 ^= u<<18 | u>>>(32-18); - - u = x5 + x4 | 0; - x6 ^= u<<7 | u>>>(32-7); - u = x6 + x5 | 0; - x7 ^= u<<9 | u>>>(32-9); - u = x7 + x6 | 0; - x4 ^= u<<13 | u>>>(32-13); - u = x4 + x7 | 0; - x5 ^= u<<18 | u>>>(32-18); - - u = x10 + x9 | 0; - x11 ^= u<<7 | u>>>(32-7); - u = x11 + x10 | 0; - x8 ^= u<<9 | u>>>(32-9); - u = x8 + x11 | 0; - x9 ^= u<<13 | u>>>(32-13); - u = x9 + x8 | 0; - x10 ^= u<<18 | u>>>(32-18); - - u = x15 + x14 | 0; - x12 ^= u<<7 | u>>>(32-7); - u = x12 + x15 | 0; - x13 ^= u<<9 | u>>>(32-9); - u = x13 + x12 | 0; - x14 ^= u<<13 | u>>>(32-13); - u = x14 + x13 | 0; - x15 ^= u<<18 | u>>>(32-18); - } - - o[ 0] = x0 >>> 0 & 0xff; - o[ 1] = x0 >>> 8 & 0xff; - o[ 2] = x0 >>> 16 & 0xff; - o[ 3] = x0 >>> 24 & 0xff; - - o[ 4] = x5 >>> 0 & 0xff; - o[ 5] = x5 >>> 8 & 0xff; - o[ 6] = x5 >>> 16 & 0xff; - o[ 7] = x5 >>> 24 & 0xff; - - o[ 8] = x10 >>> 0 & 0xff; - o[ 9] = x10 >>> 8 & 0xff; - o[10] = x10 >>> 16 & 0xff; - o[11] = x10 >>> 24 & 0xff; - - o[12] = x15 >>> 0 & 0xff; - o[13] = x15 >>> 8 & 0xff; - o[14] = x15 >>> 16 & 0xff; - o[15] = x15 >>> 24 & 0xff; - - o[16] = x6 >>> 0 & 0xff; - o[17] = x6 >>> 8 & 0xff; - o[18] = x6 >>> 16 & 0xff; - o[19] = x6 >>> 24 & 0xff; - - o[20] = x7 >>> 0 & 0xff; - o[21] = x7 >>> 8 & 0xff; - o[22] = x7 >>> 16 & 0xff; - o[23] = x7 >>> 24 & 0xff; - - o[24] = x8 >>> 0 & 0xff; - o[25] = x8 >>> 8 & 0xff; - o[26] = x8 >>> 16 & 0xff; - o[27] = x8 >>> 24 & 0xff; - - o[28] = x9 >>> 0 & 0xff; - o[29] = x9 >>> 8 & 0xff; - o[30] = x9 >>> 16 & 0xff; - o[31] = x9 >>> 24 & 0xff; -} - -function crypto_core_salsa20(out,inp,k,c) { - core_salsa20(out,inp,k,c); -} - -function crypto_core_hsalsa20(out,inp,k,c) { - core_hsalsa20(out,inp,k,c); -} - -var sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]); - // "expand 32-byte k" - -function crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) { - var z = new Uint8Array(16), x = new Uint8Array(64); - var u, i; - for (i = 0; i < 16; i++) z[i] = 0; - for (i = 0; i < 8; i++) z[i] = n[i]; - while (b >= 64) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i]; - u = 1; - for (i = 8; i < 16; i++) { - u = u + (z[i] & 0xff) | 0; - z[i] = u & 0xff; - u >>>= 8; - } - b -= 64; - cpos += 64; - mpos += 64; - } - if (b > 0) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i]; - } - return 0; -} - -function crypto_stream_salsa20(c,cpos,b,n,k) { - var z = new Uint8Array(16), x = new Uint8Array(64); - var u, i; - for (i = 0; i < 16; i++) z[i] = 0; - for (i = 0; i < 8; i++) z[i] = n[i]; - while (b >= 64) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < 64; i++) c[cpos+i] = x[i]; - u = 1; - for (i = 8; i < 16; i++) { - u = u + (z[i] & 0xff) | 0; - z[i] = u & 0xff; - u >>>= 8; - } - b -= 64; - cpos += 64; - } - if (b > 0) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < b; i++) c[cpos+i] = x[i]; - } - return 0; -} - -function crypto_stream(c,cpos,d,n,k) { - var s = new Uint8Array(32); - crypto_core_hsalsa20(s,n,k,sigma); - var sn = new Uint8Array(8); - for (var i = 0; i < 8; i++) sn[i] = n[i+16]; - return crypto_stream_salsa20(c,cpos,d,sn,s); -} - -function crypto_stream_xor(c,cpos,m,mpos,d,n,k) { - var s = new Uint8Array(32); - crypto_core_hsalsa20(s,n,k,sigma); - var sn = new Uint8Array(8); - for (var i = 0; i < 8; i++) sn[i] = n[i+16]; - return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s); -} - -/* -* Port of Andrew Moon's Poly1305-donna-16. Public domain. -* https://github.com/floodyberry/poly1305-donna -*/ - -var poly1305 = function(key) { - this.buffer = new Uint8Array(16); - this.r = new Uint16Array(10); - this.h = new Uint16Array(10); - this.pad = new Uint16Array(8); - this.leftover = 0; - this.fin = 0; - - var t0, t1, t2, t3, t4, t5, t6, t7; - - t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff; - t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff; - t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03; - t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff; - t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff; - this.r[5] = ((t4 >>> 1)) & 0x1ffe; - t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff; - t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81; - t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff; - this.r[9] = ((t7 >>> 5)) & 0x007f; - - this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8; - this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8; - this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8; - this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8; - this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8; - this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8; - this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8; - this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8; -}; - -poly1305.prototype.blocks = function(m, mpos, bytes) { - var hibit = this.fin ? 0 : (1 << 11); - var t0, t1, t2, t3, t4, t5, t6, t7, c; - var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9; - - var h0 = this.h[0], - h1 = this.h[1], - h2 = this.h[2], - h3 = this.h[3], - h4 = this.h[4], - h5 = this.h[5], - h6 = this.h[6], - h7 = this.h[7], - h8 = this.h[8], - h9 = this.h[9]; - - var r0 = this.r[0], - r1 = this.r[1], - r2 = this.r[2], - r3 = this.r[3], - r4 = this.r[4], - r5 = this.r[5], - r6 = this.r[6], - r7 = this.r[7], - r8 = this.r[8], - r9 = this.r[9]; - - while (bytes >= 16) { - t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff; - t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff; - t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff; - t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff; - t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff; - h5 += ((t4 >>> 1)) & 0x1fff; - t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff; - t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff; - t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff; - h9 += ((t7 >>> 5)) | hibit; - - c = 0; - - d0 = c; - d0 += h0 * r0; - d0 += h1 * (5 * r9); - d0 += h2 * (5 * r8); - d0 += h3 * (5 * r7); - d0 += h4 * (5 * r6); - c = (d0 >>> 13); d0 &= 0x1fff; - d0 += h5 * (5 * r5); - d0 += h6 * (5 * r4); - d0 += h7 * (5 * r3); - d0 += h8 * (5 * r2); - d0 += h9 * (5 * r1); - c += (d0 >>> 13); d0 &= 0x1fff; - - d1 = c; - d1 += h0 * r1; - d1 += h1 * r0; - d1 += h2 * (5 * r9); - d1 += h3 * (5 * r8); - d1 += h4 * (5 * r7); - c = (d1 >>> 13); d1 &= 0x1fff; - d1 += h5 * (5 * r6); - d1 += h6 * (5 * r5); - d1 += h7 * (5 * r4); - d1 += h8 * (5 * r3); - d1 += h9 * (5 * r2); - c += (d1 >>> 13); d1 &= 0x1fff; - - d2 = c; - d2 += h0 * r2; - d2 += h1 * r1; - d2 += h2 * r0; - d2 += h3 * (5 * r9); - d2 += h4 * (5 * r8); - c = (d2 >>> 13); d2 &= 0x1fff; - d2 += h5 * (5 * r7); - d2 += h6 * (5 * r6); - d2 += h7 * (5 * r5); - d2 += h8 * (5 * r4); - d2 += h9 * (5 * r3); - c += (d2 >>> 13); d2 &= 0x1fff; - - d3 = c; - d3 += h0 * r3; - d3 += h1 * r2; - d3 += h2 * r1; - d3 += h3 * r0; - d3 += h4 * (5 * r9); - c = (d3 >>> 13); d3 &= 0x1fff; - d3 += h5 * (5 * r8); - d3 += h6 * (5 * r7); - d3 += h7 * (5 * r6); - d3 += h8 * (5 * r5); - d3 += h9 * (5 * r4); - c += (d3 >>> 13); d3 &= 0x1fff; - - d4 = c; - d4 += h0 * r4; - d4 += h1 * r3; - d4 += h2 * r2; - d4 += h3 * r1; - d4 += h4 * r0; - c = (d4 >>> 13); d4 &= 0x1fff; - d4 += h5 * (5 * r9); - d4 += h6 * (5 * r8); - d4 += h7 * (5 * r7); - d4 += h8 * (5 * r6); - d4 += h9 * (5 * r5); - c += (d4 >>> 13); d4 &= 0x1fff; - - d5 = c; - d5 += h0 * r5; - d5 += h1 * r4; - d5 += h2 * r3; - d5 += h3 * r2; - d5 += h4 * r1; - c = (d5 >>> 13); d5 &= 0x1fff; - d5 += h5 * r0; - d5 += h6 * (5 * r9); - d5 += h7 * (5 * r8); - d5 += h8 * (5 * r7); - d5 += h9 * (5 * r6); - c += (d5 >>> 13); d5 &= 0x1fff; - - d6 = c; - d6 += h0 * r6; - d6 += h1 * r5; - d6 += h2 * r4; - d6 += h3 * r3; - d6 += h4 * r2; - c = (d6 >>> 13); d6 &= 0x1fff; - d6 += h5 * r1; - d6 += h6 * r0; - d6 += h7 * (5 * r9); - d6 += h8 * (5 * r8); - d6 += h9 * (5 * r7); - c += (d6 >>> 13); d6 &= 0x1fff; - - d7 = c; - d7 += h0 * r7; - d7 += h1 * r6; - d7 += h2 * r5; - d7 += h3 * r4; - d7 += h4 * r3; - c = (d7 >>> 13); d7 &= 0x1fff; - d7 += h5 * r2; - d7 += h6 * r1; - d7 += h7 * r0; - d7 += h8 * (5 * r9); - d7 += h9 * (5 * r8); - c += (d7 >>> 13); d7 &= 0x1fff; - - d8 = c; - d8 += h0 * r8; - d8 += h1 * r7; - d8 += h2 * r6; - d8 += h3 * r5; - d8 += h4 * r4; - c = (d8 >>> 13); d8 &= 0x1fff; - d8 += h5 * r3; - d8 += h6 * r2; - d8 += h7 * r1; - d8 += h8 * r0; - d8 += h9 * (5 * r9); - c += (d8 >>> 13); d8 &= 0x1fff; - - d9 = c; - d9 += h0 * r9; - d9 += h1 * r8; - d9 += h2 * r7; - d9 += h3 * r6; - d9 += h4 * r5; - c = (d9 >>> 13); d9 &= 0x1fff; - d9 += h5 * r4; - d9 += h6 * r3; - d9 += h7 * r2; - d9 += h8 * r1; - d9 += h9 * r0; - c += (d9 >>> 13); d9 &= 0x1fff; - - c = (((c << 2) + c)) | 0; - c = (c + d0) | 0; - d0 = c & 0x1fff; - c = (c >>> 13); - d1 += c; - - h0 = d0; - h1 = d1; - h2 = d2; - h3 = d3; - h4 = d4; - h5 = d5; - h6 = d6; - h7 = d7; - h8 = d8; - h9 = d9; - - mpos += 16; - bytes -= 16; - } - this.h[0] = h0; - this.h[1] = h1; - this.h[2] = h2; - this.h[3] = h3; - this.h[4] = h4; - this.h[5] = h5; - this.h[6] = h6; - this.h[7] = h7; - this.h[8] = h8; - this.h[9] = h9; -}; - -poly1305.prototype.finish = function(mac, macpos) { - var g = new Uint16Array(10); - var c, mask, f, i; - - if (this.leftover) { - i = this.leftover; - this.buffer[i++] = 1; - for (; i < 16; i++) this.buffer[i] = 0; - this.fin = 1; - this.blocks(this.buffer, 0, 16); - } - - c = this.h[1] >>> 13; - this.h[1] &= 0x1fff; - for (i = 2; i < 10; i++) { - this.h[i] += c; - c = this.h[i] >>> 13; - this.h[i] &= 0x1fff; - } - this.h[0] += (c * 5); - c = this.h[0] >>> 13; - this.h[0] &= 0x1fff; - this.h[1] += c; - c = this.h[1] >>> 13; - this.h[1] &= 0x1fff; - this.h[2] += c; - - g[0] = this.h[0] + 5; - c = g[0] >>> 13; - g[0] &= 0x1fff; - for (i = 1; i < 10; i++) { - g[i] = this.h[i] + c; - c = g[i] >>> 13; - g[i] &= 0x1fff; - } - g[9] -= (1 << 13); - - mask = (c ^ 1) - 1; - for (i = 0; i < 10; i++) g[i] &= mask; - mask = ~mask; - for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i]; - - this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff; - this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff; - this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff; - this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff; - this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff; - this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff; - this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff; - this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff; - - f = this.h[0] + this.pad[0]; - this.h[0] = f & 0xffff; - for (i = 1; i < 8; i++) { - f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0; - this.h[i] = f & 0xffff; - } - - mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff; - mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff; - mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff; - mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff; - mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff; - mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff; - mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff; - mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff; - mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff; - mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff; - mac[macpos+10] = (this.h[5] >>> 0) & 0xff; - mac[macpos+11] = (this.h[5] >>> 8) & 0xff; - mac[macpos+12] = (this.h[6] >>> 0) & 0xff; - mac[macpos+13] = (this.h[6] >>> 8) & 0xff; - mac[macpos+14] = (this.h[7] >>> 0) & 0xff; - mac[macpos+15] = (this.h[7] >>> 8) & 0xff; -}; - -poly1305.prototype.update = function(m, mpos, bytes) { - var i, want; - - if (this.leftover) { - want = (16 - this.leftover); - if (want > bytes) - want = bytes; - for (i = 0; i < want; i++) - this.buffer[this.leftover + i] = m[mpos+i]; - bytes -= want; - mpos += want; - this.leftover += want; - if (this.leftover < 16) - return; - this.blocks(this.buffer, 0, 16); - this.leftover = 0; - } - - if (bytes >= 16) { - want = bytes - (bytes % 16); - this.blocks(m, mpos, want); - mpos += want; - bytes -= want; - } - - if (bytes) { - for (i = 0; i < bytes; i++) - this.buffer[this.leftover + i] = m[mpos+i]; - this.leftover += bytes; - } -}; - -function crypto_onetimeauth(out, outpos, m, mpos, n, k) { - var s = new poly1305(k); - s.update(m, mpos, n); - s.finish(out, outpos); - return 0; -} - -function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) { - var x = new Uint8Array(16); - crypto_onetimeauth(x,0,m,mpos,n,k); - return crypto_verify_16(h,hpos,x,0); -} - -function crypto_secretbox(c,m,d,n,k) { - var i; - if (d < 32) return -1; - crypto_stream_xor(c,0,m,0,d,n,k); - crypto_onetimeauth(c, 16, c, 32, d - 32, c); - for (i = 0; i < 16; i++) c[i] = 0; - return 0; -} - -function crypto_secretbox_open(m,c,d,n,k) { - var i; - var x = new Uint8Array(32); - if (d < 32) return -1; - crypto_stream(x,0,32,n,k); - if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1; - crypto_stream_xor(m,0,c,0,d,n,k); - for (i = 0; i < 32; i++) m[i] = 0; - return 0; -} - -function set25519(r, a) { - var i; - for (i = 0; i < 16; i++) r[i] = a[i]|0; -} - -function car25519(o) { - var i, v, c = 1; - for (i = 0; i < 16; i++) { - v = o[i] + c + 65535; - c = Math.floor(v / 65536); - o[i] = v - c * 65536; - } - o[0] += c-1 + 37 * (c-1); -} - -function sel25519(p, q, b) { - var t, c = ~(b-1); - for (var i = 0; i < 16; i++) { - t = c & (p[i] ^ q[i]); - p[i] ^= t; - q[i] ^= t; - } -} - -function pack25519(o, n) { - var i, j, b; - var m = gf(), t = gf(); - for (i = 0; i < 16; i++) t[i] = n[i]; - car25519(t); - car25519(t); - car25519(t); - for (j = 0; j < 2; j++) { - m[0] = t[0] - 0xffed; - for (i = 1; i < 15; i++) { - m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1); - m[i-1] &= 0xffff; - } - m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1); - b = (m[15]>>16) & 1; - m[14] &= 0xffff; - sel25519(t, m, 1-b); - } - for (i = 0; i < 16; i++) { - o[2*i] = t[i] & 0xff; - o[2*i+1] = t[i]>>8; - } -} - -function neq25519(a, b) { - var c = new Uint8Array(32), d = new Uint8Array(32); - pack25519(c, a); - pack25519(d, b); - return crypto_verify_32(c, 0, d, 0); -} - -function par25519(a) { - var d = new Uint8Array(32); - pack25519(d, a); - return d[0] & 1; -} - -function unpack25519(o, n) { - var i; - for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8); - o[15] &= 0x7fff; -} - -function A(o, a, b) { - for (var i = 0; i < 16; i++) o[i] = a[i] + b[i]; -} - -function Z(o, a, b) { - for (var i = 0; i < 16; i++) o[i] = a[i] - b[i]; -} - -function M(o, a, b) { - var v, c, - t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, - t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, - t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, - t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, - b0 = b[0], - b1 = b[1], - b2 = b[2], - b3 = b[3], - b4 = b[4], - b5 = b[5], - b6 = b[6], - b7 = b[7], - b8 = b[8], - b9 = b[9], - b10 = b[10], - b11 = b[11], - b12 = b[12], - b13 = b[13], - b14 = b[14], - b15 = b[15]; - - v = a[0]; - t0 += v * b0; - t1 += v * b1; - t2 += v * b2; - t3 += v * b3; - t4 += v * b4; - t5 += v * b5; - t6 += v * b6; - t7 += v * b7; - t8 += v * b8; - t9 += v * b9; - t10 += v * b10; - t11 += v * b11; - t12 += v * b12; - t13 += v * b13; - t14 += v * b14; - t15 += v * b15; - v = a[1]; - t1 += v * b0; - t2 += v * b1; - t3 += v * b2; - t4 += v * b3; - t5 += v * b4; - t6 += v * b5; - t7 += v * b6; - t8 += v * b7; - t9 += v * b8; - t10 += v * b9; - t11 += v * b10; - t12 += v * b11; - t13 += v * b12; - t14 += v * b13; - t15 += v * b14; - t16 += v * b15; - v = a[2]; - t2 += v * b0; - t3 += v * b1; - t4 += v * b2; - t5 += v * b3; - t6 += v * b4; - t7 += v * b5; - t8 += v * b6; - t9 += v * b7; - t10 += v * b8; - t11 += v * b9; - t12 += v * b10; - t13 += v * b11; - t14 += v * b12; - t15 += v * b13; - t16 += v * b14; - t17 += v * b15; - v = a[3]; - t3 += v * b0; - t4 += v * b1; - t5 += v * b2; - t6 += v * b3; - t7 += v * b4; - t8 += v * b5; - t9 += v * b6; - t10 += v * b7; - t11 += v * b8; - t12 += v * b9; - t13 += v * b10; - t14 += v * b11; - t15 += v * b12; - t16 += v * b13; - t17 += v * b14; - t18 += v * b15; - v = a[4]; - t4 += v * b0; - t5 += v * b1; - t6 += v * b2; - t7 += v * b3; - t8 += v * b4; - t9 += v * b5; - t10 += v * b6; - t11 += v * b7; - t12 += v * b8; - t13 += v * b9; - t14 += v * b10; - t15 += v * b11; - t16 += v * b12; - t17 += v * b13; - t18 += v * b14; - t19 += v * b15; - v = a[5]; - t5 += v * b0; - t6 += v * b1; - t7 += v * b2; - t8 += v * b3; - t9 += v * b4; - t10 += v * b5; - t11 += v * b6; - t12 += v * b7; - t13 += v * b8; - t14 += v * b9; - t15 += v * b10; - t16 += v * b11; - t17 += v * b12; - t18 += v * b13; - t19 += v * b14; - t20 += v * b15; - v = a[6]; - t6 += v * b0; - t7 += v * b1; - t8 += v * b2; - t9 += v * b3; - t10 += v * b4; - t11 += v * b5; - t12 += v * b6; - t13 += v * b7; - t14 += v * b8; - t15 += v * b9; - t16 += v * b10; - t17 += v * b11; - t18 += v * b12; - t19 += v * b13; - t20 += v * b14; - t21 += v * b15; - v = a[7]; - t7 += v * b0; - t8 += v * b1; - t9 += v * b2; - t10 += v * b3; - t11 += v * b4; - t12 += v * b5; - t13 += v * b6; - t14 += v * b7; - t15 += v * b8; - t16 += v * b9; - t17 += v * b10; - t18 += v * b11; - t19 += v * b12; - t20 += v * b13; - t21 += v * b14; - t22 += v * b15; - v = a[8]; - t8 += v * b0; - t9 += v * b1; - t10 += v * b2; - t11 += v * b3; - t12 += v * b4; - t13 += v * b5; - t14 += v * b6; - t15 += v * b7; - t16 += v * b8; - t17 += v * b9; - t18 += v * b10; - t19 += v * b11; - t20 += v * b12; - t21 += v * b13; - t22 += v * b14; - t23 += v * b15; - v = a[9]; - t9 += v * b0; - t10 += v * b1; - t11 += v * b2; - t12 += v * b3; - t13 += v * b4; - t14 += v * b5; - t15 += v * b6; - t16 += v * b7; - t17 += v * b8; - t18 += v * b9; - t19 += v * b10; - t20 += v * b11; - t21 += v * b12; - t22 += v * b13; - t23 += v * b14; - t24 += v * b15; - v = a[10]; - t10 += v * b0; - t11 += v * b1; - t12 += v * b2; - t13 += v * b3; - t14 += v * b4; - t15 += v * b5; - t16 += v * b6; - t17 += v * b7; - t18 += v * b8; - t19 += v * b9; - t20 += v * b10; - t21 += v * b11; - t22 += v * b12; - t23 += v * b13; - t24 += v * b14; - t25 += v * b15; - v = a[11]; - t11 += v * b0; - t12 += v * b1; - t13 += v * b2; - t14 += v * b3; - t15 += v * b4; - t16 += v * b5; - t17 += v * b6; - t18 += v * b7; - t19 += v * b8; - t20 += v * b9; - t21 += v * b10; - t22 += v * b11; - t23 += v * b12; - t24 += v * b13; - t25 += v * b14; - t26 += v * b15; - v = a[12]; - t12 += v * b0; - t13 += v * b1; - t14 += v * b2; - t15 += v * b3; - t16 += v * b4; - t17 += v * b5; - t18 += v * b6; - t19 += v * b7; - t20 += v * b8; - t21 += v * b9; - t22 += v * b10; - t23 += v * b11; - t24 += v * b12; - t25 += v * b13; - t26 += v * b14; - t27 += v * b15; - v = a[13]; - t13 += v * b0; - t14 += v * b1; - t15 += v * b2; - t16 += v * b3; - t17 += v * b4; - t18 += v * b5; - t19 += v * b6; - t20 += v * b7; - t21 += v * b8; - t22 += v * b9; - t23 += v * b10; - t24 += v * b11; - t25 += v * b12; - t26 += v * b13; - t27 += v * b14; - t28 += v * b15; - v = a[14]; - t14 += v * b0; - t15 += v * b1; - t16 += v * b2; - t17 += v * b3; - t18 += v * b4; - t19 += v * b5; - t20 += v * b6; - t21 += v * b7; - t22 += v * b8; - t23 += v * b9; - t24 += v * b10; - t25 += v * b11; - t26 += v * b12; - t27 += v * b13; - t28 += v * b14; - t29 += v * b15; - v = a[15]; - t15 += v * b0; - t16 += v * b1; - t17 += v * b2; - t18 += v * b3; - t19 += v * b4; - t20 += v * b5; - t21 += v * b6; - t22 += v * b7; - t23 += v * b8; - t24 += v * b9; - t25 += v * b10; - t26 += v * b11; - t27 += v * b12; - t28 += v * b13; - t29 += v * b14; - t30 += v * b15; - - t0 += 38 * t16; - t1 += 38 * t17; - t2 += 38 * t18; - t3 += 38 * t19; - t4 += 38 * t20; - t5 += 38 * t21; - t6 += 38 * t22; - t7 += 38 * t23; - t8 += 38 * t24; - t9 += 38 * t25; - t10 += 38 * t26; - t11 += 38 * t27; - t12 += 38 * t28; - t13 += 38 * t29; - t14 += 38 * t30; - // t15 left as is - - // first car - c = 1; - v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536; - v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536; - v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536; - v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536; - v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536; - v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536; - v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536; - v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536; - v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536; - v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536; - v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536; - v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536; - v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536; - v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536; - v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536; - v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536; - t0 += c-1 + 37 * (c-1); - - // second car - c = 1; - v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536; - v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536; - v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536; - v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536; - v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536; - v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536; - v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536; - v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536; - v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536; - v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536; - v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536; - v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536; - v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536; - v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536; - v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536; - v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536; - t0 += c-1 + 37 * (c-1); - - o[ 0] = t0; - o[ 1] = t1; - o[ 2] = t2; - o[ 3] = t3; - o[ 4] = t4; - o[ 5] = t5; - o[ 6] = t6; - o[ 7] = t7; - o[ 8] = t8; - o[ 9] = t9; - o[10] = t10; - o[11] = t11; - o[12] = t12; - o[13] = t13; - o[14] = t14; - o[15] = t15; -} - -function S(o, a) { - M(o, a, a); -} - -function inv25519(o, i) { - var c = gf(); - var a; - for (a = 0; a < 16; a++) c[a] = i[a]; - for (a = 253; a >= 0; a--) { - S(c, c); - if(a !== 2 && a !== 4) M(c, c, i); - } - for (a = 0; a < 16; a++) o[a] = c[a]; -} - -function pow2523(o, i) { - var c = gf(); - var a; - for (a = 0; a < 16; a++) c[a] = i[a]; - for (a = 250; a >= 0; a--) { - S(c, c); - if(a !== 1) M(c, c, i); - } - for (a = 0; a < 16; a++) o[a] = c[a]; -} - -function crypto_scalarmult(q, n, p) { - var z = new Uint8Array(32); - var x = new Float64Array(80), r, i; - var a = gf(), b = gf(), c = gf(), - d = gf(), e = gf(), f = gf(); - for (i = 0; i < 31; i++) z[i] = n[i]; - z[31]=(n[31]&127)|64; - z[0]&=248; - unpack25519(x,p); - for (i = 0; i < 16; i++) { - b[i]=x[i]; - d[i]=a[i]=c[i]=0; - } - a[0]=d[0]=1; - for (i=254; i>=0; --i) { - r=(z[i>>>3]>>>(i&7))&1; - sel25519(a,b,r); - sel25519(c,d,r); - A(e,a,c); - Z(a,a,c); - A(c,b,d); - Z(b,b,d); - S(d,e); - S(f,a); - M(a,c,a); - M(c,b,e); - A(e,a,c); - Z(a,a,c); - S(b,a); - Z(c,d,f); - M(a,c,_121665); - A(a,a,d); - M(c,c,a); - M(a,d,f); - M(d,b,x); - S(b,e); - sel25519(a,b,r); - sel25519(c,d,r); - } - for (i = 0; i < 16; i++) { - x[i+16]=a[i]; - x[i+32]=c[i]; - x[i+48]=b[i]; - x[i+64]=d[i]; - } - var x32 = x.subarray(32); - var x16 = x.subarray(16); - inv25519(x32,x32); - M(x16,x16,x32); - pack25519(q,x16); - return 0; -} - -function crypto_scalarmult_base(q, n) { - return crypto_scalarmult(q, n, _9); -} - -function crypto_box_keypair(y, x) { - randombytes(x, 32); - return crypto_scalarmult_base(y, x); -} - -function crypto_box_beforenm(k, y, x) { - var s = new Uint8Array(32); - crypto_scalarmult(s, x, y); - return crypto_core_hsalsa20(k, _0, s, sigma); -} - -var crypto_box_afternm = crypto_secretbox; -var crypto_box_open_afternm = crypto_secretbox_open; - -function crypto_box(c, m, d, n, y, x) { - var k = new Uint8Array(32); - crypto_box_beforenm(k, y, x); - return crypto_box_afternm(c, m, d, n, k); -} - -function crypto_box_open(m, c, d, n, y, x) { - var k = new Uint8Array(32); - crypto_box_beforenm(k, y, x); - return crypto_box_open_afternm(m, c, d, n, k); -} - -var K = [ - 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, - 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, - 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, - 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, - 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, - 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, - 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, - 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, - 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, - 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, - 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, - 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, - 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, - 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, - 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, - 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, - 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, - 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, - 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, - 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, - 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, - 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, - 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, - 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, - 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, - 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, - 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, - 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, - 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, - 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, - 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, - 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, - 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, - 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, - 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, - 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, - 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, - 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, - 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, - 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817 -]; - -function crypto_hashblocks_hl(hh, hl, m, n) { - var wh = new Int32Array(16), wl = new Int32Array(16), - bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7, - bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7, - th, tl, i, j, h, l, a, b, c, d; - - var ah0 = hh[0], - ah1 = hh[1], - ah2 = hh[2], - ah3 = hh[3], - ah4 = hh[4], - ah5 = hh[5], - ah6 = hh[6], - ah7 = hh[7], - - al0 = hl[0], - al1 = hl[1], - al2 = hl[2], - al3 = hl[3], - al4 = hl[4], - al5 = hl[5], - al6 = hl[6], - al7 = hl[7]; - - var pos = 0; - while (n >= 128) { - for (i = 0; i < 16; i++) { - j = 8 * i + pos; - wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3]; - wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7]; - } - for (i = 0; i < 80; i++) { - bh0 = ah0; - bh1 = ah1; - bh2 = ah2; - bh3 = ah3; - bh4 = ah4; - bh5 = ah5; - bh6 = ah6; - bh7 = ah7; - - bl0 = al0; - bl1 = al1; - bl2 = al2; - bl3 = al3; - bl4 = al4; - bl5 = al5; - bl6 = al6; - bl7 = al7; - - // add - h = ah7; - l = al7; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - // Sigma1 - h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32)))); - l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32)))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // Ch - h = (ah4 & ah5) ^ (~ah4 & ah6); - l = (al4 & al5) ^ (~al4 & al6); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // K - h = K[i*2]; - l = K[i*2+1]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // w - h = wh[i%16]; - l = wl[i%16]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - th = c & 0xffff | d << 16; - tl = a & 0xffff | b << 16; - - // add - h = th; - l = tl; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - // Sigma0 - h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32)))); - l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32)))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // Maj - h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2); - l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - bh7 = (c & 0xffff) | (d << 16); - bl7 = (a & 0xffff) | (b << 16); - - // add - h = bh3; - l = bl3; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = th; - l = tl; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - bh3 = (c & 0xffff) | (d << 16); - bl3 = (a & 0xffff) | (b << 16); - - ah1 = bh0; - ah2 = bh1; - ah3 = bh2; - ah4 = bh3; - ah5 = bh4; - ah6 = bh5; - ah7 = bh6; - ah0 = bh7; - - al1 = bl0; - al2 = bl1; - al3 = bl2; - al4 = bl3; - al5 = bl4; - al6 = bl5; - al7 = bl6; - al0 = bl7; - - if (i%16 === 15) { - for (j = 0; j < 16; j++) { - // add - h = wh[j]; - l = wl[j]; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = wh[(j+9)%16]; - l = wl[(j+9)%16]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // sigma0 - th = wh[(j+1)%16]; - tl = wl[(j+1)%16]; - h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7); - l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // sigma1 - th = wh[(j+14)%16]; - tl = wl[(j+14)%16]; - h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6); - l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - wh[j] = (c & 0xffff) | (d << 16); - wl[j] = (a & 0xffff) | (b << 16); - } - } - } - - // add - h = ah0; - l = al0; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[0]; - l = hl[0]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[0] = ah0 = (c & 0xffff) | (d << 16); - hl[0] = al0 = (a & 0xffff) | (b << 16); - - h = ah1; - l = al1; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[1]; - l = hl[1]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[1] = ah1 = (c & 0xffff) | (d << 16); - hl[1] = al1 = (a & 0xffff) | (b << 16); - - h = ah2; - l = al2; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[2]; - l = hl[2]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[2] = ah2 = (c & 0xffff) | (d << 16); - hl[2] = al2 = (a & 0xffff) | (b << 16); - - h = ah3; - l = al3; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[3]; - l = hl[3]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[3] = ah3 = (c & 0xffff) | (d << 16); - hl[3] = al3 = (a & 0xffff) | (b << 16); - - h = ah4; - l = al4; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[4]; - l = hl[4]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[4] = ah4 = (c & 0xffff) | (d << 16); - hl[4] = al4 = (a & 0xffff) | (b << 16); - - h = ah5; - l = al5; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[5]; - l = hl[5]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[5] = ah5 = (c & 0xffff) | (d << 16); - hl[5] = al5 = (a & 0xffff) | (b << 16); - - h = ah6; - l = al6; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[6]; - l = hl[6]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[6] = ah6 = (c & 0xffff) | (d << 16); - hl[6] = al6 = (a & 0xffff) | (b << 16); - - h = ah7; - l = al7; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[7]; - l = hl[7]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[7] = ah7 = (c & 0xffff) | (d << 16); - hl[7] = al7 = (a & 0xffff) | (b << 16); - - pos += 128; - n -= 128; - } - - return n; -} - -function crypto_hash(out, m, n) { - var hh = new Int32Array(8), - hl = new Int32Array(8), - x = new Uint8Array(256), - i, b = n; - - hh[0] = 0x6a09e667; - hh[1] = 0xbb67ae85; - hh[2] = 0x3c6ef372; - hh[3] = 0xa54ff53a; - hh[4] = 0x510e527f; - hh[5] = 0x9b05688c; - hh[6] = 0x1f83d9ab; - hh[7] = 0x5be0cd19; - - hl[0] = 0xf3bcc908; - hl[1] = 0x84caa73b; - hl[2] = 0xfe94f82b; - hl[3] = 0x5f1d36f1; - hl[4] = 0xade682d1; - hl[5] = 0x2b3e6c1f; - hl[6] = 0xfb41bd6b; - hl[7] = 0x137e2179; - - crypto_hashblocks_hl(hh, hl, m, n); - n %= 128; - - for (i = 0; i < n; i++) x[i] = m[b-n+i]; - x[n] = 128; - - n = 256-128*(n<112?1:0); - x[n-9] = 0; - ts64(x, n-8, (b / 0x20000000) | 0, b << 3); - crypto_hashblocks_hl(hh, hl, x, n); - - for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]); - - return 0; -} - -function add(p, q) { - var a = gf(), b = gf(), c = gf(), - d = gf(), e = gf(), f = gf(), - g = gf(), h = gf(), t = gf(); - - Z(a, p[1], p[0]); - Z(t, q[1], q[0]); - M(a, a, t); - A(b, p[0], p[1]); - A(t, q[0], q[1]); - M(b, b, t); - M(c, p[3], q[3]); - M(c, c, D2); - M(d, p[2], q[2]); - A(d, d, d); - Z(e, b, a); - Z(f, d, c); - A(g, d, c); - A(h, b, a); - - M(p[0], e, f); - M(p[1], h, g); - M(p[2], g, f); - M(p[3], e, h); -} - -function cswap(p, q, b) { - var i; - for (i = 0; i < 4; i++) { - sel25519(p[i], q[i], b); - } -} - -function pack(r, p) { - var tx = gf(), ty = gf(), zi = gf(); - inv25519(zi, p[2]); - M(tx, p[0], zi); - M(ty, p[1], zi); - pack25519(r, ty); - r[31] ^= par25519(tx) << 7; -} - -function scalarmult(p, q, s) { - var b, i; - set25519(p[0], gf0); - set25519(p[1], gf1); - set25519(p[2], gf1); - set25519(p[3], gf0); - for (i = 255; i >= 0; --i) { - b = (s[(i/8)|0] >> (i&7)) & 1; - cswap(p, q, b); - add(q, p); - add(p, p); - cswap(p, q, b); - } -} - -function scalarbase(p, s) { - var q = [gf(), gf(), gf(), gf()]; - set25519(q[0], X); - set25519(q[1], Y); - set25519(q[2], gf1); - M(q[3], X, Y); - scalarmult(p, q, s); -} - -function crypto_sign_keypair(pk, sk, seeded) { - var d = new Uint8Array(64); - var p = [gf(), gf(), gf(), gf()]; - var i; - - if (!seeded) randombytes(sk, 32); - crypto_hash(d, sk, 32); - d[0] &= 248; - d[31] &= 127; - d[31] |= 64; - - scalarbase(p, d); - pack(pk, p); - - for (i = 0; i < 32; i++) sk[i+32] = pk[i]; - return 0; -} - -var L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]); - -function modL(r, x) { - var carry, i, j, k; - for (i = 63; i >= 32; --i) { - carry = 0; - for (j = i - 32, k = i - 12; j < k; ++j) { - x[j] += carry - 16 * x[i] * L[j - (i - 32)]; - carry = (x[j] + 128) >> 8; - x[j] -= carry * 256; - } - x[j] += carry; - x[i] = 0; - } - carry = 0; - for (j = 0; j < 32; j++) { - x[j] += carry - (x[31] >> 4) * L[j]; - carry = x[j] >> 8; - x[j] &= 255; - } - for (j = 0; j < 32; j++) x[j] -= carry * L[j]; - for (i = 0; i < 32; i++) { - x[i+1] += x[i] >> 8; - r[i] = x[i] & 255; - } -} - -function reduce(r) { - var x = new Float64Array(64), i; - for (i = 0; i < 64; i++) x[i] = r[i]; - for (i = 0; i < 64; i++) r[i] = 0; - modL(r, x); -} - -// Note: difference from C - smlen returned, not passed as argument. -function crypto_sign(sm, m, n, sk) { - var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64); - var i, j, x = new Float64Array(64); - var p = [gf(), gf(), gf(), gf()]; - - crypto_hash(d, sk, 32); - d[0] &= 248; - d[31] &= 127; - d[31] |= 64; - - var smlen = n + 64; - for (i = 0; i < n; i++) sm[64 + i] = m[i]; - for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i]; - - crypto_hash(r, sm.subarray(32), n+32); - reduce(r); - scalarbase(p, r); - pack(sm, p); - - for (i = 32; i < 64; i++) sm[i] = sk[i]; - crypto_hash(h, sm, n + 64); - reduce(h); - - for (i = 0; i < 64; i++) x[i] = 0; - for (i = 0; i < 32; i++) x[i] = r[i]; - for (i = 0; i < 32; i++) { - for (j = 0; j < 32; j++) { - x[i+j] += h[i] * d[j]; - } - } - - modL(sm.subarray(32), x); - return smlen; -} - -function unpackneg(r, p) { - var t = gf(), chk = gf(), num = gf(), - den = gf(), den2 = gf(), den4 = gf(), - den6 = gf(); - - set25519(r[2], gf1); - unpack25519(r[1], p); - S(num, r[1]); - M(den, num, D); - Z(num, num, r[2]); - A(den, r[2], den); - - S(den2, den); - S(den4, den2); - M(den6, den4, den2); - M(t, den6, num); - M(t, t, den); - - pow2523(t, t); - M(t, t, num); - M(t, t, den); - M(t, t, den); - M(r[0], t, den); - - S(chk, r[0]); - M(chk, chk, den); - if (neq25519(chk, num)) M(r[0], r[0], I); - - S(chk, r[0]); - M(chk, chk, den); - if (neq25519(chk, num)) return -1; - - if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]); - - M(r[3], r[0], r[1]); - return 0; -} - -function crypto_sign_open(m, sm, n, pk) { - var i, mlen; - var t = new Uint8Array(32), h = new Uint8Array(64); - var p = [gf(), gf(), gf(), gf()], - q = [gf(), gf(), gf(), gf()]; - - mlen = -1; - if (n < 64) return -1; - - if (unpackneg(q, pk)) return -1; - - for (i = 0; i < n; i++) m[i] = sm[i]; - for (i = 0; i < 32; i++) m[i+32] = pk[i]; - crypto_hash(h, m, n); - reduce(h); - scalarmult(p, q, h); - - scalarbase(q, sm.subarray(32)); - add(p, q); - pack(t, p); - - n -= 64; - if (crypto_verify_32(sm, 0, t, 0)) { - for (i = 0; i < n; i++) m[i] = 0; - return -1; - } - - for (i = 0; i < n; i++) m[i] = sm[i + 64]; - mlen = n; - return mlen; -} - -var crypto_secretbox_KEYBYTES = 32, - crypto_secretbox_NONCEBYTES = 24, - crypto_secretbox_ZEROBYTES = 32, - crypto_secretbox_BOXZEROBYTES = 16, - crypto_scalarmult_BYTES = 32, - crypto_scalarmult_SCALARBYTES = 32, - crypto_box_PUBLICKEYBYTES = 32, - crypto_box_SECRETKEYBYTES = 32, - crypto_box_BEFORENMBYTES = 32, - crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES, - crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES, - crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES, - crypto_sign_BYTES = 64, - crypto_sign_PUBLICKEYBYTES = 32, - crypto_sign_SECRETKEYBYTES = 64, - crypto_sign_SEEDBYTES = 32, - crypto_hash_BYTES = 64; - -nacl.lowlevel = { - crypto_core_hsalsa20: crypto_core_hsalsa20, - crypto_stream_xor: crypto_stream_xor, - crypto_stream: crypto_stream, - crypto_stream_salsa20_xor: crypto_stream_salsa20_xor, - crypto_stream_salsa20: crypto_stream_salsa20, - crypto_onetimeauth: crypto_onetimeauth, - crypto_onetimeauth_verify: crypto_onetimeauth_verify, - crypto_verify_16: crypto_verify_16, - crypto_verify_32: crypto_verify_32, - crypto_secretbox: crypto_secretbox, - crypto_secretbox_open: crypto_secretbox_open, - crypto_scalarmult: crypto_scalarmult, - crypto_scalarmult_base: crypto_scalarmult_base, - crypto_box_beforenm: crypto_box_beforenm, - crypto_box_afternm: crypto_box_afternm, - crypto_box: crypto_box, - crypto_box_open: crypto_box_open, - crypto_box_keypair: crypto_box_keypair, - crypto_hash: crypto_hash, - crypto_sign: crypto_sign, - crypto_sign_keypair: crypto_sign_keypair, - crypto_sign_open: crypto_sign_open, - - crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES, - crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES, - crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES, - crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES, - crypto_scalarmult_BYTES: crypto_scalarmult_BYTES, - crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES, - crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES, - crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES, - crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES, - crypto_box_NONCEBYTES: crypto_box_NONCEBYTES, - crypto_box_ZEROBYTES: crypto_box_ZEROBYTES, - crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES, - crypto_sign_BYTES: crypto_sign_BYTES, - crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES, - crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES, - crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES, - crypto_hash_BYTES: crypto_hash_BYTES -}; - -/* High-level API */ - -function checkLengths(k, n) { - if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size'); - if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size'); -} - -function checkBoxLengths(pk, sk) { - if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size'); - if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size'); -} - -function checkArrayTypes() { - var t, i; - for (i = 0; i < arguments.length; i++) { - if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]') - throw new TypeError('unexpected type ' + t + ', use Uint8Array'); - } -} - -function cleanup(arr) { - for (var i = 0; i < arr.length; i++) arr[i] = 0; -} - -// TODO: Completely remove this in v0.15. -if (!nacl.util) { - nacl.util = {}; - nacl.util.decodeUTF8 = nacl.util.encodeUTF8 = nacl.util.encodeBase64 = nacl.util.decodeBase64 = function() { - throw new Error('nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js'); - }; -} - -nacl.randomBytes = function(n) { - var b = new Uint8Array(n); - randombytes(b, n); - return b; -}; - -nacl.secretbox = function(msg, nonce, key) { - checkArrayTypes(msg, nonce, key); - checkLengths(key, nonce); - var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length); - var c = new Uint8Array(m.length); - for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i]; - crypto_secretbox(c, m, m.length, nonce, key); - return c.subarray(crypto_secretbox_BOXZEROBYTES); -}; - -nacl.secretbox.open = function(box, nonce, key) { - checkArrayTypes(box, nonce, key); - checkLengths(key, nonce); - var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length); - var m = new Uint8Array(c.length); - for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i]; - if (c.length < 32) return false; - if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return false; - return m.subarray(crypto_secretbox_ZEROBYTES); -}; - -nacl.secretbox.keyLength = crypto_secretbox_KEYBYTES; -nacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES; -nacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES; - -nacl.scalarMult = function(n, p) { - checkArrayTypes(n, p); - if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size'); - if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size'); - var q = new Uint8Array(crypto_scalarmult_BYTES); - crypto_scalarmult(q, n, p); - return q; -}; - -nacl.scalarMult.base = function(n) { - checkArrayTypes(n); - if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size'); - var q = new Uint8Array(crypto_scalarmult_BYTES); - crypto_scalarmult_base(q, n); - return q; -}; - -nacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES; -nacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES; - -nacl.box = function(msg, nonce, publicKey, secretKey) { - var k = nacl.box.before(publicKey, secretKey); - return nacl.secretbox(msg, nonce, k); -}; - -nacl.box.before = function(publicKey, secretKey) { - checkArrayTypes(publicKey, secretKey); - checkBoxLengths(publicKey, secretKey); - var k = new Uint8Array(crypto_box_BEFORENMBYTES); - crypto_box_beforenm(k, publicKey, secretKey); - return k; -}; - -nacl.box.after = nacl.secretbox; - -nacl.box.open = function(msg, nonce, publicKey, secretKey) { - var k = nacl.box.before(publicKey, secretKey); - return nacl.secretbox.open(msg, nonce, k); -}; - -nacl.box.open.after = nacl.secretbox.open; - -nacl.box.keyPair = function() { - var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_box_SECRETKEYBYTES); - crypto_box_keypair(pk, sk); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.box.keyPair.fromSecretKey = function(secretKey) { - checkArrayTypes(secretKey); - if (secretKey.length !== crypto_box_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES); - crypto_scalarmult_base(pk, secretKey); - return {publicKey: pk, secretKey: new Uint8Array(secretKey)}; -}; - -nacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES; -nacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES; -nacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES; -nacl.box.nonceLength = crypto_box_NONCEBYTES; -nacl.box.overheadLength = nacl.secretbox.overheadLength; - -nacl.sign = function(msg, secretKey) { - checkArrayTypes(msg, secretKey); - if (secretKey.length !== crypto_sign_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length); - crypto_sign(signedMsg, msg, msg.length, secretKey); - return signedMsg; -}; - -nacl.sign.open = function(signedMsg, publicKey) { - if (arguments.length !== 2) - throw new Error('nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?'); - checkArrayTypes(signedMsg, publicKey); - if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) - throw new Error('bad public key size'); - var tmp = new Uint8Array(signedMsg.length); - var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey); - if (mlen < 0) return null; - var m = new Uint8Array(mlen); - for (var i = 0; i < m.length; i++) m[i] = tmp[i]; - return m; -}; - -nacl.sign.detached = function(msg, secretKey) { - var signedMsg = nacl.sign(msg, secretKey); - var sig = new Uint8Array(crypto_sign_BYTES); - for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i]; - return sig; -}; - -nacl.sign.detached.verify = function(msg, sig, publicKey) { - checkArrayTypes(msg, sig, publicKey); - if (sig.length !== crypto_sign_BYTES) - throw new Error('bad signature size'); - if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) - throw new Error('bad public key size'); - var sm = new Uint8Array(crypto_sign_BYTES + msg.length); - var m = new Uint8Array(crypto_sign_BYTES + msg.length); - var i; - for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i]; - for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i]; - return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0); -}; - -nacl.sign.keyPair = function() { - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES); - crypto_sign_keypair(pk, sk); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.sign.keyPair.fromSecretKey = function(secretKey) { - checkArrayTypes(secretKey); - if (secretKey.length !== crypto_sign_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i]; - return {publicKey: pk, secretKey: new Uint8Array(secretKey)}; -}; - -nacl.sign.keyPair.fromSeed = function(seed) { - checkArrayTypes(seed); - if (seed.length !== crypto_sign_SEEDBYTES) - throw new Error('bad seed size'); - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES); - for (var i = 0; i < 32; i++) sk[i] = seed[i]; - crypto_sign_keypair(pk, sk, true); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES; -nacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES; -nacl.sign.seedLength = crypto_sign_SEEDBYTES; -nacl.sign.signatureLength = crypto_sign_BYTES; - -nacl.hash = function(msg) { - checkArrayTypes(msg); - var h = new Uint8Array(crypto_hash_BYTES); - crypto_hash(h, msg, msg.length); - return h; -}; - -nacl.hash.hashLength = crypto_hash_BYTES; - -nacl.verify = function(x, y) { - checkArrayTypes(x, y); - // Zero length arguments are considered not equal. - if (x.length === 0 || y.length === 0) return false; - if (x.length !== y.length) return false; - return (vn(x, 0, y, 0, x.length) === 0) ? true : false; -}; - -nacl.setPRNG = function(fn) { - randombytes = fn; -}; - -(function() { - // Initialize PRNG if environment provides CSPRNG. - // If not, methods calling randombytes will throw. - var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null; - if (crypto && crypto.getRandomValues) { - // Browsers. - var QUOTA = 65536; - nacl.setPRNG(function(x, n) { - var i, v = new Uint8Array(n); - for (i = 0; i < n; i += QUOTA) { - crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA))); - } - for (i = 0; i < n; i++) x[i] = v[i]; - cleanup(v); - }); - } else if (typeof require !== 'undefined') { - // Node.js. - crypto = require('crypto'); - if (crypto && crypto.randomBytes) { - nacl.setPRNG(function(x, n) { - var i, v = crypto.randomBytes(n); - for (i = 0; i < n; i++) x[i] = v[i]; - cleanup(v); - }); - } - } -})(); - -})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {})); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.min.js deleted file mode 100644 index 624fbbe9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(r){"use strict";function t(r,t,n,e){r[t]=n>>24&255,r[t+1]=n>>16&255,r[t+2]=n>>8&255,r[t+3]=255&n,r[t+4]=e>>24&255,r[t+5]=e>>16&255,r[t+6]=e>>8&255,r[t+7]=255&e}function n(r,t,n,e,o){var i,h=0;for(i=0;o>i;i++)h|=r[t+i]^n[e+i];return(1&h-1>>>8)-1}function e(r,t,e,o){return n(r,t,e,o,16)}function o(r,t,e,o){return n(r,t,e,o,32)}function i(r,t,n,e){for(var o,i=255&e[0]|(255&e[1])<<8|(255&e[2])<<16|(255&e[3])<<24,h=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,a=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,f=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,s=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,u=255&e[4]|(255&e[5])<<8|(255&e[6])<<16|(255&e[7])<<24,c=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,y=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,l=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,w=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,p=255&e[8]|(255&e[9])<<8|(255&e[10])<<16|(255&e[11])<<24,v=255&n[16]|(255&n[17])<<8|(255&n[18])<<16|(255&n[19])<<24,b=255&n[20]|(255&n[21])<<8|(255&n[22])<<16|(255&n[23])<<24,g=255&n[24]|(255&n[25])<<8|(255&n[26])<<16|(255&n[27])<<24,_=255&n[28]|(255&n[29])<<8|(255&n[30])<<16|(255&n[31])<<24,A=255&e[12]|(255&e[13])<<8|(255&e[14])<<16|(255&e[15])<<24,d=i,U=h,E=a,x=f,M=s,m=u,B=c,S=y,K=l,T=w,Y=p,k=v,L=b,z=g,R=_,P=A,O=0;20>O;O+=2)o=d+L|0,M^=o<<7|o>>>25,o=M+d|0,K^=o<<9|o>>>23,o=K+M|0,L^=o<<13|o>>>19,o=L+K|0,d^=o<<18|o>>>14,o=m+U|0,T^=o<<7|o>>>25,o=T+m|0,z^=o<<9|o>>>23,o=z+T|0,U^=o<<13|o>>>19,o=U+z|0,m^=o<<18|o>>>14,o=Y+B|0,R^=o<<7|o>>>25,o=R+Y|0,E^=o<<9|o>>>23,o=E+R|0,B^=o<<13|o>>>19,o=B+E|0,Y^=o<<18|o>>>14,o=P+k|0,x^=o<<7|o>>>25,o=x+P|0,S^=o<<9|o>>>23,o=S+x|0,k^=o<<13|o>>>19,o=k+S|0,P^=o<<18|o>>>14,o=d+x|0,U^=o<<7|o>>>25,o=U+d|0,E^=o<<9|o>>>23,o=E+U|0,x^=o<<13|o>>>19,o=x+E|0,d^=o<<18|o>>>14,o=m+M|0,B^=o<<7|o>>>25,o=B+m|0,S^=o<<9|o>>>23,o=S+B|0,M^=o<<13|o>>>19,o=M+S|0,m^=o<<18|o>>>14,o=Y+T|0,k^=o<<7|o>>>25,o=k+Y|0,K^=o<<9|o>>>23,o=K+k|0,T^=o<<13|o>>>19,o=T+K|0,Y^=o<<18|o>>>14,o=P+R|0,L^=o<<7|o>>>25,o=L+P|0,z^=o<<9|o>>>23,o=z+L|0,R^=o<<13|o>>>19,o=R+z|0,P^=o<<18|o>>>14;d=d+i|0,U=U+h|0,E=E+a|0,x=x+f|0,M=M+s|0,m=m+u|0,B=B+c|0,S=S+y|0,K=K+l|0,T=T+w|0,Y=Y+p|0,k=k+v|0,L=L+b|0,z=z+g|0,R=R+_|0,P=P+A|0,r[0]=d>>>0&255,r[1]=d>>>8&255,r[2]=d>>>16&255,r[3]=d>>>24&255,r[4]=U>>>0&255,r[5]=U>>>8&255,r[6]=U>>>16&255,r[7]=U>>>24&255,r[8]=E>>>0&255,r[9]=E>>>8&255,r[10]=E>>>16&255,r[11]=E>>>24&255,r[12]=x>>>0&255,r[13]=x>>>8&255,r[14]=x>>>16&255,r[15]=x>>>24&255,r[16]=M>>>0&255,r[17]=M>>>8&255,r[18]=M>>>16&255,r[19]=M>>>24&255,r[20]=m>>>0&255,r[21]=m>>>8&255,r[22]=m>>>16&255,r[23]=m>>>24&255,r[24]=B>>>0&255,r[25]=B>>>8&255,r[26]=B>>>16&255,r[27]=B>>>24&255,r[28]=S>>>0&255,r[29]=S>>>8&255,r[30]=S>>>16&255,r[31]=S>>>24&255,r[32]=K>>>0&255,r[33]=K>>>8&255,r[34]=K>>>16&255,r[35]=K>>>24&255,r[36]=T>>>0&255,r[37]=T>>>8&255,r[38]=T>>>16&255,r[39]=T>>>24&255,r[40]=Y>>>0&255,r[41]=Y>>>8&255,r[42]=Y>>>16&255,r[43]=Y>>>24&255,r[44]=k>>>0&255,r[45]=k>>>8&255,r[46]=k>>>16&255,r[47]=k>>>24&255,r[48]=L>>>0&255,r[49]=L>>>8&255,r[50]=L>>>16&255,r[51]=L>>>24&255,r[52]=z>>>0&255,r[53]=z>>>8&255,r[54]=z>>>16&255,r[55]=z>>>24&255,r[56]=R>>>0&255,r[57]=R>>>8&255,r[58]=R>>>16&255,r[59]=R>>>24&255,r[60]=P>>>0&255,r[61]=P>>>8&255,r[62]=P>>>16&255,r[63]=P>>>24&255}function h(r,t,n,e){for(var o,i=255&e[0]|(255&e[1])<<8|(255&e[2])<<16|(255&e[3])<<24,h=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,a=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,f=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,s=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,u=255&e[4]|(255&e[5])<<8|(255&e[6])<<16|(255&e[7])<<24,c=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,y=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,l=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,w=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,p=255&e[8]|(255&e[9])<<8|(255&e[10])<<16|(255&e[11])<<24,v=255&n[16]|(255&n[17])<<8|(255&n[18])<<16|(255&n[19])<<24,b=255&n[20]|(255&n[21])<<8|(255&n[22])<<16|(255&n[23])<<24,g=255&n[24]|(255&n[25])<<8|(255&n[26])<<16|(255&n[27])<<24,_=255&n[28]|(255&n[29])<<8|(255&n[30])<<16|(255&n[31])<<24,A=255&e[12]|(255&e[13])<<8|(255&e[14])<<16|(255&e[15])<<24,d=i,U=h,E=a,x=f,M=s,m=u,B=c,S=y,K=l,T=w,Y=p,k=v,L=b,z=g,R=_,P=A,O=0;20>O;O+=2)o=d+L|0,M^=o<<7|o>>>25,o=M+d|0,K^=o<<9|o>>>23,o=K+M|0,L^=o<<13|o>>>19,o=L+K|0,d^=o<<18|o>>>14,o=m+U|0,T^=o<<7|o>>>25,o=T+m|0,z^=o<<9|o>>>23,o=z+T|0,U^=o<<13|o>>>19,o=U+z|0,m^=o<<18|o>>>14,o=Y+B|0,R^=o<<7|o>>>25,o=R+Y|0,E^=o<<9|o>>>23,o=E+R|0,B^=o<<13|o>>>19,o=B+E|0,Y^=o<<18|o>>>14,o=P+k|0,x^=o<<7|o>>>25,o=x+P|0,S^=o<<9|o>>>23,o=S+x|0,k^=o<<13|o>>>19,o=k+S|0,P^=o<<18|o>>>14,o=d+x|0,U^=o<<7|o>>>25,o=U+d|0,E^=o<<9|o>>>23,o=E+U|0,x^=o<<13|o>>>19,o=x+E|0,d^=o<<18|o>>>14,o=m+M|0,B^=o<<7|o>>>25,o=B+m|0,S^=o<<9|o>>>23,o=S+B|0,M^=o<<13|o>>>19,o=M+S|0,m^=o<<18|o>>>14,o=Y+T|0,k^=o<<7|o>>>25,o=k+Y|0,K^=o<<9|o>>>23,o=K+k|0,T^=o<<13|o>>>19,o=T+K|0,Y^=o<<18|o>>>14,o=P+R|0,L^=o<<7|o>>>25,o=L+P|0,z^=o<<9|o>>>23,o=z+L|0,R^=o<<13|o>>>19,o=R+z|0,P^=o<<18|o>>>14;r[0]=d>>>0&255,r[1]=d>>>8&255,r[2]=d>>>16&255,r[3]=d>>>24&255,r[4]=m>>>0&255,r[5]=m>>>8&255,r[6]=m>>>16&255,r[7]=m>>>24&255,r[8]=Y>>>0&255,r[9]=Y>>>8&255,r[10]=Y>>>16&255,r[11]=Y>>>24&255,r[12]=P>>>0&255,r[13]=P>>>8&255,r[14]=P>>>16&255,r[15]=P>>>24&255,r[16]=B>>>0&255,r[17]=B>>>8&255,r[18]=B>>>16&255,r[19]=B>>>24&255,r[20]=S>>>0&255,r[21]=S>>>8&255,r[22]=S>>>16&255,r[23]=S>>>24&255,r[24]=K>>>0&255,r[25]=K>>>8&255,r[26]=K>>>16&255,r[27]=K>>>24&255,r[28]=T>>>0&255,r[29]=T>>>8&255,r[30]=T>>>16&255,r[31]=T>>>24&255}function a(r,t,n,e){i(r,t,n,e)}function f(r,t,n,e){h(r,t,n,e)}function s(r,t,n,e,o,i,h){var f,s,u=new Uint8Array(16),c=new Uint8Array(64);for(s=0;16>s;s++)u[s]=0;for(s=0;8>s;s++)u[s]=i[s];for(;o>=64;){for(a(c,u,h,cr),s=0;64>s;s++)r[t+s]=n[e+s]^c[s];for(f=1,s=8;16>s;s++)f=f+(255&u[s])|0,u[s]=255&f,f>>>=8;o-=64,t+=64,e+=64}if(o>0)for(a(c,u,h,cr),s=0;o>s;s++)r[t+s]=n[e+s]^c[s];return 0}function u(r,t,n,e,o){var i,h,f=new Uint8Array(16),s=new Uint8Array(64);for(h=0;16>h;h++)f[h]=0;for(h=0;8>h;h++)f[h]=e[h];for(;n>=64;){for(a(s,f,o,cr),h=0;64>h;h++)r[t+h]=s[h];for(i=1,h=8;16>h;h++)i=i+(255&f[h])|0,f[h]=255&i,i>>>=8;n-=64,t+=64}if(n>0)for(a(s,f,o,cr),h=0;n>h;h++)r[t+h]=s[h];return 0}function c(r,t,n,e,o){var i=new Uint8Array(32);f(i,e,o,cr);for(var h=new Uint8Array(8),a=0;8>a;a++)h[a]=e[a+16];return u(r,t,n,h,i)}function y(r,t,n,e,o,i,h){var a=new Uint8Array(32);f(a,i,h,cr);for(var u=new Uint8Array(8),c=0;8>c;c++)u[c]=i[c+16];return s(r,t,n,e,o,u,a)}function l(r,t,n,e,o,i){var h=new yr(i);return h.update(n,e,o),h.finish(r,t),0}function w(r,t,n,o,i,h){var a=new Uint8Array(16);return l(a,0,n,o,i,h),e(r,t,a,0)}function p(r,t,n,e,o){var i;if(32>n)return-1;for(y(r,0,t,0,n,e,o),l(r,16,r,32,n-32,r),i=0;16>i;i++)r[i]=0;return 0}function v(r,t,n,e,o){var i,h=new Uint8Array(32);if(32>n)return-1;if(c(h,0,32,e,o),0!==w(t,16,t,32,n-32,h))return-1;for(y(r,0,t,0,n,e,o),i=0;32>i;i++)r[i]=0;return 0}function b(r,t){var n;for(n=0;16>n;n++)r[n]=0|t[n]}function g(r){var t,n,e=1;for(t=0;16>t;t++)n=r[t]+e+65535,e=Math.floor(n/65536),r[t]=n-65536*e;r[0]+=e-1+37*(e-1)}function _(r,t,n){for(var e,o=~(n-1),i=0;16>i;i++)e=o&(r[i]^t[i]),r[i]^=e,t[i]^=e}function A(r,t){var n,e,o,i=$(),h=$();for(n=0;16>n;n++)h[n]=t[n];for(g(h),g(h),g(h),e=0;2>e;e++){for(i[0]=h[0]-65517,n=1;15>n;n++)i[n]=h[n]-65535-(i[n-1]>>16&1),i[n-1]&=65535;i[15]=h[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,_(h,i,1-o)}for(n=0;16>n;n++)r[2*n]=255&h[n],r[2*n+1]=h[n]>>8}function d(r,t){var n=new Uint8Array(32),e=new Uint8Array(32);return A(n,r),A(e,t),o(n,0,e,0)}function U(r){var t=new Uint8Array(32);return A(t,r),1&t[0]}function E(r,t){var n;for(n=0;16>n;n++)r[n]=t[2*n]+(t[2*n+1]<<8);r[15]&=32767}function x(r,t,n){for(var e=0;16>e;e++)r[e]=t[e]+n[e]}function M(r,t,n){for(var e=0;16>e;e++)r[e]=t[e]-n[e]}function m(r,t,n){var e,o,i=0,h=0,a=0,f=0,s=0,u=0,c=0,y=0,l=0,w=0,p=0,v=0,b=0,g=0,_=0,A=0,d=0,U=0,E=0,x=0,M=0,m=0,B=0,S=0,K=0,T=0,Y=0,k=0,L=0,z=0,R=0,P=n[0],O=n[1],N=n[2],C=n[3],F=n[4],I=n[5],G=n[6],Z=n[7],j=n[8],q=n[9],V=n[10],X=n[11],D=n[12],H=n[13],J=n[14],Q=n[15];e=t[0],i+=e*P,h+=e*O,a+=e*N,f+=e*C,s+=e*F,u+=e*I,c+=e*G,y+=e*Z,l+=e*j,w+=e*q,p+=e*V,v+=e*X,b+=e*D,g+=e*H,_+=e*J,A+=e*Q,e=t[1],h+=e*P,a+=e*O,f+=e*N,s+=e*C,u+=e*F,c+=e*I,y+=e*G,l+=e*Z,w+=e*j,p+=e*q,v+=e*V,b+=e*X,g+=e*D,_+=e*H,A+=e*J,d+=e*Q,e=t[2],a+=e*P,f+=e*O,s+=e*N,u+=e*C,c+=e*F,y+=e*I,l+=e*G,w+=e*Z,p+=e*j,v+=e*q,b+=e*V,g+=e*X,_+=e*D,A+=e*H,d+=e*J,U+=e*Q,e=t[3],f+=e*P,s+=e*O,u+=e*N,c+=e*C,y+=e*F,l+=e*I,w+=e*G,p+=e*Z,v+=e*j,b+=e*q,g+=e*V,_+=e*X,A+=e*D,d+=e*H,U+=e*J,E+=e*Q,e=t[4],s+=e*P,u+=e*O,c+=e*N,y+=e*C,l+=e*F,w+=e*I,p+=e*G,v+=e*Z,b+=e*j,g+=e*q,_+=e*V,A+=e*X,d+=e*D,U+=e*H,E+=e*J,x+=e*Q,e=t[5],u+=e*P,c+=e*O,y+=e*N,l+=e*C,w+=e*F,p+=e*I,v+=e*G,b+=e*Z,g+=e*j,_+=e*q,A+=e*V,d+=e*X,U+=e*D,E+=e*H,x+=e*J,M+=e*Q,e=t[6],c+=e*P,y+=e*O,l+=e*N,w+=e*C,p+=e*F,v+=e*I,b+=e*G,g+=e*Z,_+=e*j,A+=e*q,d+=e*V,U+=e*X,E+=e*D,x+=e*H,M+=e*J,m+=e*Q,e=t[7],y+=e*P,l+=e*O,w+=e*N,p+=e*C,v+=e*F,b+=e*I,g+=e*G,_+=e*Z,A+=e*j,d+=e*q,U+=e*V,E+=e*X,x+=e*D,M+=e*H,m+=e*J,B+=e*Q,e=t[8],l+=e*P,w+=e*O,p+=e*N,v+=e*C,b+=e*F,g+=e*I,_+=e*G,A+=e*Z,d+=e*j,U+=e*q,E+=e*V,x+=e*X,M+=e*D,m+=e*H,B+=e*J,S+=e*Q,e=t[9],w+=e*P,p+=e*O,v+=e*N,b+=e*C,g+=e*F,_+=e*I,A+=e*G,d+=e*Z,U+=e*j,E+=e*q,x+=e*V,M+=e*X,m+=e*D,B+=e*H,S+=e*J,K+=e*Q,e=t[10],p+=e*P,v+=e*O,b+=e*N,g+=e*C,_+=e*F,A+=e*I,d+=e*G,U+=e*Z,E+=e*j,x+=e*q,M+=e*V,m+=e*X,B+=e*D,S+=e*H,K+=e*J,T+=e*Q,e=t[11],v+=e*P,b+=e*O,g+=e*N,_+=e*C,A+=e*F,d+=e*I,U+=e*G,E+=e*Z,x+=e*j,M+=e*q,m+=e*V,B+=e*X,S+=e*D,K+=e*H,T+=e*J,Y+=e*Q,e=t[12],b+=e*P,g+=e*O,_+=e*N,A+=e*C,d+=e*F,U+=e*I,E+=e*G,x+=e*Z,M+=e*j,m+=e*q,B+=e*V,S+=e*X,K+=e*D,T+=e*H,Y+=e*J,k+=e*Q,e=t[13],g+=e*P,_+=e*O,A+=e*N,d+=e*C,U+=e*F,E+=e*I,x+=e*G,M+=e*Z,m+=e*j,B+=e*q,S+=e*V,K+=e*X,T+=e*D,Y+=e*H,k+=e*J,L+=e*Q,e=t[14],_+=e*P,A+=e*O,d+=e*N,U+=e*C,E+=e*F,x+=e*I,M+=e*G,m+=e*Z,B+=e*j,S+=e*q,K+=e*V,T+=e*X,Y+=e*D,k+=e*H,L+=e*J,z+=e*Q,e=t[15],A+=e*P,d+=e*O,U+=e*N,E+=e*C,x+=e*F,M+=e*I,m+=e*G,B+=e*Z,S+=e*j,K+=e*q,T+=e*V,Y+=e*X,k+=e*D,L+=e*H,z+=e*J,R+=e*Q,i+=38*d,h+=38*U,a+=38*E,f+=38*x,s+=38*M,u+=38*m,c+=38*B,y+=38*S,l+=38*K,w+=38*T,p+=38*Y,v+=38*k,b+=38*L,g+=38*z,_+=38*R,o=1,e=i+o+65535,o=Math.floor(e/65536),i=e-65536*o,e=h+o+65535,o=Math.floor(e/65536),h=e-65536*o,e=a+o+65535,o=Math.floor(e/65536),a=e-65536*o,e=f+o+65535,o=Math.floor(e/65536),f=e-65536*o,e=s+o+65535,o=Math.floor(e/65536),s=e-65536*o,e=u+o+65535,o=Math.floor(e/65536),u=e-65536*o,e=c+o+65535,o=Math.floor(e/65536),c=e-65536*o,e=y+o+65535,o=Math.floor(e/65536),y=e-65536*o,e=l+o+65535,o=Math.floor(e/65536),l=e-65536*o,e=w+o+65535,o=Math.floor(e/65536),w=e-65536*o,e=p+o+65535,o=Math.floor(e/65536),p=e-65536*o,e=v+o+65535,o=Math.floor(e/65536),v=e-65536*o,e=b+o+65535,o=Math.floor(e/65536),b=e-65536*o,e=g+o+65535,o=Math.floor(e/65536),g=e-65536*o,e=_+o+65535,o=Math.floor(e/65536),_=e-65536*o,e=A+o+65535,o=Math.floor(e/65536),A=e-65536*o,i+=o-1+37*(o-1),o=1,e=i+o+65535,o=Math.floor(e/65536),i=e-65536*o,e=h+o+65535,o=Math.floor(e/65536),h=e-65536*o,e=a+o+65535,o=Math.floor(e/65536),a=e-65536*o,e=f+o+65535,o=Math.floor(e/65536),f=e-65536*o,e=s+o+65535,o=Math.floor(e/65536),s=e-65536*o,e=u+o+65535,o=Math.floor(e/65536),u=e-65536*o,e=c+o+65535,o=Math.floor(e/65536),c=e-65536*o,e=y+o+65535,o=Math.floor(e/65536),y=e-65536*o,e=l+o+65535,o=Math.floor(e/65536),l=e-65536*o,e=w+o+65535,o=Math.floor(e/65536),w=e-65536*o,e=p+o+65535,o=Math.floor(e/65536),p=e-65536*o,e=v+o+65535,o=Math.floor(e/65536),v=e-65536*o,e=b+o+65535,o=Math.floor(e/65536),b=e-65536*o,e=g+o+65535,o=Math.floor(e/65536),g=e-65536*o,e=_+o+65535,o=Math.floor(e/65536),_=e-65536*o,e=A+o+65535,o=Math.floor(e/65536),A=e-65536*o,i+=o-1+37*(o-1),r[0]=i,r[1]=h,r[2]=a,r[3]=f,r[4]=s,r[5]=u,r[6]=c,r[7]=y,r[8]=l,r[9]=w,r[10]=p,r[11]=v,r[12]=b,r[13]=g,r[14]=_,r[15]=A}function B(r,t){m(r,t,t)}function S(r,t){var n,e=$();for(n=0;16>n;n++)e[n]=t[n];for(n=253;n>=0;n--)B(e,e),2!==n&&4!==n&&m(e,e,t);for(n=0;16>n;n++)r[n]=e[n]}function K(r,t){var n,e=$();for(n=0;16>n;n++)e[n]=t[n];for(n=250;n>=0;n--)B(e,e),1!==n&&m(e,e,t);for(n=0;16>n;n++)r[n]=e[n]}function T(r,t,n){var e,o,i=new Uint8Array(32),h=new Float64Array(80),a=$(),f=$(),s=$(),u=$(),c=$(),y=$();for(o=0;31>o;o++)i[o]=t[o];for(i[31]=127&t[31]|64,i[0]&=248,E(h,n),o=0;16>o;o++)f[o]=h[o],u[o]=a[o]=s[o]=0;for(a[0]=u[0]=1,o=254;o>=0;--o)e=i[o>>>3]>>>(7&o)&1,_(a,f,e),_(s,u,e),x(c,a,s),M(a,a,s),x(s,f,u),M(f,f,u),B(u,c),B(y,a),m(a,s,a),m(s,f,c),x(c,a,s),M(a,a,s),B(f,a),M(s,u,y),m(a,s,ir),x(a,a,u),m(s,s,a),m(a,u,y),m(u,f,h),B(f,c),_(a,f,e),_(s,u,e);for(o=0;16>o;o++)h[o+16]=a[o],h[o+32]=s[o],h[o+48]=f[o],h[o+64]=u[o];var l=h.subarray(32),w=h.subarray(16);return S(l,l),m(w,w,l),A(r,w),0}function Y(r,t){return T(r,t,nr)}function k(r,t){return rr(t,32),Y(r,t)}function L(r,t,n){var e=new Uint8Array(32);return T(e,n,t),f(r,tr,e,cr)}function z(r,t,n,e,o,i){var h=new Uint8Array(32);return L(h,o,i),lr(r,t,n,e,h)}function R(r,t,n,e,o,i){var h=new Uint8Array(32);return L(h,o,i),wr(r,t,n,e,h)}function P(r,t,n,e){for(var o,i,h,a,f,s,u,c,y,l,w,p,v,b,g,_,A,d,U,E,x,M,m,B,S,K,T=new Int32Array(16),Y=new Int32Array(16),k=r[0],L=r[1],z=r[2],R=r[3],P=r[4],O=r[5],N=r[6],C=r[7],F=t[0],I=t[1],G=t[2],Z=t[3],j=t[4],q=t[5],V=t[6],X=t[7],D=0;e>=128;){for(U=0;16>U;U++)E=8*U+D,T[U]=n[E+0]<<24|n[E+1]<<16|n[E+2]<<8|n[E+3],Y[U]=n[E+4]<<24|n[E+5]<<16|n[E+6]<<8|n[E+7];for(U=0;80>U;U++)if(o=k,i=L,h=z,a=R,f=P,s=O,u=N,c=C,y=F,l=I,w=G,p=Z,v=j,b=q,g=V,_=X,x=C,M=X,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=(P>>>14|j<<18)^(P>>>18|j<<14)^(j>>>9|P<<23),M=(j>>>14|P<<18)^(j>>>18|P<<14)^(P>>>9|j<<23),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=P&O^~P&N,M=j&q^~j&V,m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=pr[2*U],M=pr[2*U+1],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=T[U%16],M=Y[U%16],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,A=65535&S|K<<16,d=65535&m|B<<16,x=A,M=d,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=(k>>>28|F<<4)^(F>>>2|k<<30)^(F>>>7|k<<25),M=(F>>>28|k<<4)^(k>>>2|F<<30)^(k>>>7|F<<25),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=k&L^k&z^L&z,M=F&I^F&G^I&G,m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,c=65535&S|K<<16,_=65535&m|B<<16,x=a,M=p,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=A,M=d,m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,a=65535&S|K<<16,p=65535&m|B<<16,L=o,z=i,R=h,P=a,O=f,N=s,C=u,k=c,I=y,G=l,Z=w,j=p,q=v,V=b,X=g,F=_,U%16===15)for(E=0;16>E;E++)x=T[E],M=Y[E],m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=T[(E+9)%16],M=Y[(E+9)%16],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,A=T[(E+1)%16],d=Y[(E+1)%16],x=(A>>>1|d<<31)^(A>>>8|d<<24)^A>>>7,M=(d>>>1|A<<31)^(d>>>8|A<<24)^(d>>>7|A<<25),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,A=T[(E+14)%16],d=Y[(E+14)%16],x=(A>>>19|d<<13)^(d>>>29|A<<3)^A>>>6,M=(d>>>19|A<<13)^(A>>>29|d<<3)^(d>>>6|A<<26),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,T[E]=65535&S|K<<16,Y[E]=65535&m|B<<16;x=k,M=F,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[0],M=t[0],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[0]=k=65535&S|K<<16,t[0]=F=65535&m|B<<16,x=L,M=I,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[1],M=t[1],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[1]=L=65535&S|K<<16,t[1]=I=65535&m|B<<16,x=z,M=G,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[2],M=t[2],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[2]=z=65535&S|K<<16,t[2]=G=65535&m|B<<16,x=R,M=Z,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[3],M=t[3],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[3]=R=65535&S|K<<16,t[3]=Z=65535&m|B<<16,x=P,M=j,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[4],M=t[4],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[4]=P=65535&S|K<<16,t[4]=j=65535&m|B<<16,x=O,M=q,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[5],M=t[5],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[5]=O=65535&S|K<<16,t[5]=q=65535&m|B<<16,x=N,M=V,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[6],M=t[6],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[6]=N=65535&S|K<<16,t[6]=V=65535&m|B<<16,x=C,M=X,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[7],M=t[7],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[7]=C=65535&S|K<<16,t[7]=X=65535&m|B<<16,D+=128,e-=128}return e}function O(r,n,e){var o,i=new Int32Array(8),h=new Int32Array(8),a=new Uint8Array(256),f=e;for(i[0]=1779033703,i[1]=3144134277,i[2]=1013904242,i[3]=2773480762,i[4]=1359893119,i[5]=2600822924,i[6]=528734635,i[7]=1541459225,h[0]=4089235720,h[1]=2227873595,h[2]=4271175723,h[3]=1595750129,h[4]=2917565137,h[5]=725511199,h[6]=4215389547,h[7]=327033209,P(i,h,n,e),e%=128,o=0;e>o;o++)a[o]=n[f-e+o];for(a[e]=128,e=256-128*(112>e?1:0),a[e-9]=0,t(a,e-8,f/536870912|0,f<<3),P(i,h,a,e),o=0;8>o;o++)t(r,8*o,i[o],h[o]);return 0}function N(r,t){var n=$(),e=$(),o=$(),i=$(),h=$(),a=$(),f=$(),s=$(),u=$();M(n,r[1],r[0]),M(u,t[1],t[0]),m(n,n,u),x(e,r[0],r[1]),x(u,t[0],t[1]),m(e,e,u),m(o,r[3],t[3]),m(o,o,ar),m(i,r[2],t[2]),x(i,i,i),M(h,e,n),M(a,i,o),x(f,i,o),x(s,e,n),m(r[0],h,a),m(r[1],s,f),m(r[2],f,a),m(r[3],h,s)}function C(r,t,n){var e;for(e=0;4>e;e++)_(r[e],t[e],n)}function F(r,t){var n=$(),e=$(),o=$();S(o,t[2]),m(n,t[0],o),m(e,t[1],o),A(r,e),r[31]^=U(n)<<7}function I(r,t,n){var e,o;for(b(r[0],er),b(r[1],or),b(r[2],or),b(r[3],er),o=255;o>=0;--o)e=n[o/8|0]>>(7&o)&1,C(r,t,e),N(t,r),N(r,r),C(r,t,e)}function G(r,t){var n=[$(),$(),$(),$()];b(n[0],fr),b(n[1],sr),b(n[2],or),m(n[3],fr,sr),I(r,n,t)}function Z(r,t,n){var e,o=new Uint8Array(64),i=[$(),$(),$(),$()];for(n||rr(t,32),O(o,t,32),o[0]&=248,o[31]&=127,o[31]|=64,G(i,o),F(r,i),e=0;32>e;e++)t[e+32]=r[e];return 0}function j(r,t){var n,e,o,i;for(e=63;e>=32;--e){for(n=0,o=e-32,i=e-12;i>o;++o)t[o]+=n-16*t[e]*vr[o-(e-32)],n=t[o]+128>>8,t[o]-=256*n;t[o]+=n,t[e]=0}for(n=0,o=0;32>o;o++)t[o]+=n-(t[31]>>4)*vr[o],n=t[o]>>8,t[o]&=255;for(o=0;32>o;o++)t[o]-=n*vr[o];for(e=0;32>e;e++)t[e+1]+=t[e]>>8,r[e]=255&t[e]}function q(r){var t,n=new Float64Array(64);for(t=0;64>t;t++)n[t]=r[t];for(t=0;64>t;t++)r[t]=0;j(r,n)}function V(r,t,n,e){var o,i,h=new Uint8Array(64),a=new Uint8Array(64),f=new Uint8Array(64),s=new Float64Array(64),u=[$(),$(),$(),$()];O(h,e,32),h[0]&=248,h[31]&=127,h[31]|=64;var c=n+64;for(o=0;n>o;o++)r[64+o]=t[o];for(o=0;32>o;o++)r[32+o]=h[32+o];for(O(f,r.subarray(32),n+32),q(f),G(u,f),F(r,u),o=32;64>o;o++)r[o]=e[o];for(O(a,r,n+64),q(a),o=0;64>o;o++)s[o]=0;for(o=0;32>o;o++)s[o]=f[o];for(o=0;32>o;o++)for(i=0;32>i;i++)s[o+i]+=a[o]*h[i];return j(r.subarray(32),s),c}function X(r,t){var n=$(),e=$(),o=$(),i=$(),h=$(),a=$(),f=$();return b(r[2],or),E(r[1],t),B(o,r[1]),m(i,o,hr),M(o,o,r[2]),x(i,r[2],i),B(h,i),B(a,h),m(f,a,h),m(n,f,o),m(n,n,i),K(n,n),m(n,n,o),m(n,n,i),m(n,n,i),m(r[0],n,i),B(e,r[0]),m(e,e,i),d(e,o)&&m(r[0],r[0],ur),B(e,r[0]),m(e,e,i),d(e,o)?-1:(U(r[0])===t[31]>>7&&M(r[0],er,r[0]),m(r[3],r[0],r[1]),0)}function D(r,t,n,e){var i,h,a=new Uint8Array(32),f=new Uint8Array(64),s=[$(),$(),$(),$()],u=[$(),$(),$(),$()];if(h=-1,64>n)return-1;if(X(u,e))return-1;for(i=0;n>i;i++)r[i]=t[i];for(i=0;32>i;i++)r[i+32]=e[i];if(O(f,r,n),q(f),I(s,u,f),G(u,t.subarray(32)),N(s,u),F(a,s),n-=64,o(t,0,a,0)){for(i=0;n>i;i++)r[i]=0;return-1}for(i=0;n>i;i++)r[i]=t[i+64];return h=n}function H(r,t){if(r.length!==br)throw new Error("bad key size");if(t.length!==gr)throw new Error("bad nonce size")}function J(r,t){if(r.length!==Er)throw new Error("bad public key size");if(t.length!==xr)throw new Error("bad secret key size")}function Q(){var r,t;for(t=0;t>>13|n<<3),e=255&r[4]|(255&r[5])<<8,this.r[2]=7939&(n>>>10|e<<6),o=255&r[6]|(255&r[7])<<8,this.r[3]=8191&(e>>>7|o<<9),i=255&r[8]|(255&r[9])<<8,this.r[4]=255&(o>>>4|i<<12),this.r[5]=i>>>1&8190,h=255&r[10]|(255&r[11])<<8,this.r[6]=8191&(i>>>14|h<<2),a=255&r[12]|(255&r[13])<<8,this.r[7]=8065&(h>>>11|a<<5),f=255&r[14]|(255&r[15])<<8,this.r[8]=8191&(a>>>8|f<<8),this.r[9]=f>>>5&127,this.pad[0]=255&r[16]|(255&r[17])<<8,this.pad[1]=255&r[18]|(255&r[19])<<8,this.pad[2]=255&r[20]|(255&r[21])<<8,this.pad[3]=255&r[22]|(255&r[23])<<8,this.pad[4]=255&r[24]|(255&r[25])<<8,this.pad[5]=255&r[26]|(255&r[27])<<8,this.pad[6]=255&r[28]|(255&r[29])<<8,this.pad[7]=255&r[30]|(255&r[31])<<8};yr.prototype.blocks=function(r,t,n){for(var e,o,i,h,a,f,s,u,c,y,l,w,p,v,b,g,_,A,d,U=this.fin?0:2048,E=this.h[0],x=this.h[1],M=this.h[2],m=this.h[3],B=this.h[4],S=this.h[5],K=this.h[6],T=this.h[7],Y=this.h[8],k=this.h[9],L=this.r[0],z=this.r[1],R=this.r[2],P=this.r[3],O=this.r[4],N=this.r[5],C=this.r[6],F=this.r[7],I=this.r[8],G=this.r[9];n>=16;)e=255&r[t+0]|(255&r[t+1])<<8,E+=8191&e,o=255&r[t+2]|(255&r[t+3])<<8,x+=8191&(e>>>13|o<<3),i=255&r[t+4]|(255&r[t+5])<<8,M+=8191&(o>>>10|i<<6),h=255&r[t+6]|(255&r[t+7])<<8,m+=8191&(i>>>7|h<<9),a=255&r[t+8]|(255&r[t+9])<<8,B+=8191&(h>>>4|a<<12),S+=a>>>1&8191,f=255&r[t+10]|(255&r[t+11])<<8,K+=8191&(a>>>14|f<<2),s=255&r[t+12]|(255&r[t+13])<<8,T+=8191&(f>>>11|s<<5),u=255&r[t+14]|(255&r[t+15])<<8,Y+=8191&(s>>>8|u<<8),k+=u>>>5|U,c=0,y=c,y+=E*L,y+=x*(5*G),y+=M*(5*I),y+=m*(5*F),y+=B*(5*C),c=y>>>13,y&=8191,y+=S*(5*N),y+=K*(5*O),y+=T*(5*P),y+=Y*(5*R),y+=k*(5*z),c+=y>>>13,y&=8191,l=c,l+=E*z,l+=x*L,l+=M*(5*G),l+=m*(5*I),l+=B*(5*F),c=l>>>13,l&=8191,l+=S*(5*C),l+=K*(5*N),l+=T*(5*O),l+=Y*(5*P),l+=k*(5*R),c+=l>>>13,l&=8191,w=c,w+=E*R,w+=x*z,w+=M*L,w+=m*(5*G),w+=B*(5*I),c=w>>>13,w&=8191,w+=S*(5*F),w+=K*(5*C),w+=T*(5*N),w+=Y*(5*O),w+=k*(5*P),c+=w>>>13,w&=8191,p=c,p+=E*P,p+=x*R,p+=M*z,p+=m*L,p+=B*(5*G),c=p>>>13,p&=8191,p+=S*(5*I),p+=K*(5*F),p+=T*(5*C),p+=Y*(5*N),p+=k*(5*O),c+=p>>>13,p&=8191,v=c,v+=E*O,v+=x*P,v+=M*R,v+=m*z,v+=B*L,c=v>>>13,v&=8191,v+=S*(5*G),v+=K*(5*I),v+=T*(5*F),v+=Y*(5*C),v+=k*(5*N),c+=v>>>13,v&=8191,b=c,b+=E*N,b+=x*O,b+=M*P,b+=m*R,b+=B*z,c=b>>>13,b&=8191,b+=S*L,b+=K*(5*G),b+=T*(5*I),b+=Y*(5*F),b+=k*(5*C),c+=b>>>13,b&=8191,g=c,g+=E*C,g+=x*N,g+=M*O,g+=m*P,g+=B*R,c=g>>>13,g&=8191,g+=S*z,g+=K*L,g+=T*(5*G),g+=Y*(5*I),g+=k*(5*F),c+=g>>>13,g&=8191,_=c,_+=E*F,_+=x*C,_+=M*N,_+=m*O,_+=B*P,c=_>>>13,_&=8191,_+=S*R,_+=K*z,_+=T*L,_+=Y*(5*G),_+=k*(5*I),c+=_>>>13,_&=8191,A=c,A+=E*I,A+=x*F,A+=M*C,A+=m*N,A+=B*O,c=A>>>13,A&=8191,A+=S*P,A+=K*R,A+=T*z,A+=Y*L,A+=k*(5*G),c+=A>>>13,A&=8191,d=c,d+=E*G,d+=x*I,d+=M*F,d+=m*C,d+=B*N,c=d>>>13,d&=8191,d+=S*O,d+=K*P,d+=T*R,d+=Y*z,d+=k*L,c+=d>>>13,d&=8191,c=(c<<2)+c|0,c=c+y|0,y=8191&c,c>>>=13,l+=c,E=y,x=l,M=w,m=p,B=v,S=b,K=g,T=_,Y=A,k=d,t+=16,n-=16;this.h[0]=E,this.h[1]=x,this.h[2]=M,this.h[3]=m,this.h[4]=B,this.h[5]=S,this.h[6]=K,this.h[7]=T,this.h[8]=Y,this.h[9]=k},yr.prototype.finish=function(r,t){var n,e,o,i,h=new Uint16Array(10);if(this.leftover){for(i=this.leftover,this.buffer[i++]=1;16>i;i++)this.buffer[i]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(n=this.h[1]>>>13,this.h[1]&=8191,i=2;10>i;i++)this.h[i]+=n,n=this.h[i]>>>13,this.h[i]&=8191;for(this.h[0]+=5*n,n=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=n,n=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=n,h[0]=this.h[0]+5,n=h[0]>>>13,h[0]&=8191,i=1;10>i;i++)h[i]=this.h[i]+n,n=h[i]>>>13,h[i]&=8191;for(h[9]-=8192,e=(1^n)-1,i=0;10>i;i++)h[i]&=e;for(e=~e,i=0;10>i;i++)this.h[i]=this.h[i]&e|h[i];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,i=1;8>i;i++)o=(this.h[i]+this.pad[i]|0)+(o>>>16)|0,this.h[i]=65535&o;r[t+0]=this.h[0]>>>0&255,r[t+1]=this.h[0]>>>8&255,r[t+2]=this.h[1]>>>0&255,r[t+3]=this.h[1]>>>8&255,r[t+4]=this.h[2]>>>0&255,r[t+5]=this.h[2]>>>8&255,r[t+6]=this.h[3]>>>0&255,r[t+7]=this.h[3]>>>8&255,r[t+8]=this.h[4]>>>0&255,r[t+9]=this.h[4]>>>8&255,r[t+10]=this.h[5]>>>0&255,r[t+11]=this.h[5]>>>8&255,r[t+12]=this.h[6]>>>0&255,r[t+13]=this.h[6]>>>8&255,r[t+14]=this.h[7]>>>0&255,r[t+15]=this.h[7]>>>8&255},yr.prototype.update=function(r,t,n){var e,o;if(this.leftover){for(o=16-this.leftover,o>n&&(o=n),e=0;o>e;e++)this.buffer[this.leftover+e]=r[t+e];if(n-=o,t+=o,this.leftover+=o,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(n>=16&&(o=n-n%16,this.blocks(r,t,o),t+=o,n-=o),n){for(e=0;n>e;e++)this.buffer[this.leftover+e]=r[t+e];this.leftover+=n}};var lr=p,wr=v,pr=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],vr=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]),br=32,gr=24,_r=32,Ar=16,dr=32,Ur=32,Er=32,xr=32,Mr=32,mr=gr,Br=_r,Sr=Ar,Kr=64,Tr=32,Yr=64,kr=32,Lr=64;r.lowlevel={crypto_core_hsalsa20:f,crypto_stream_xor:y,crypto_stream:c,crypto_stream_salsa20_xor:s,crypto_stream_salsa20:u,crypto_onetimeauth:l,crypto_onetimeauth_verify:w,crypto_verify_16:e,crypto_verify_32:o,crypto_secretbox:p,crypto_secretbox_open:v,crypto_scalarmult:T,crypto_scalarmult_base:Y,crypto_box_beforenm:L,crypto_box_afternm:lr,crypto_box:z,crypto_box_open:R,crypto_box_keypair:k,crypto_hash:O,crypto_sign:V,crypto_sign_keypair:Z,crypto_sign_open:D,crypto_secretbox_KEYBYTES:br,crypto_secretbox_NONCEBYTES:gr,crypto_secretbox_ZEROBYTES:_r,crypto_secretbox_BOXZEROBYTES:Ar,crypto_scalarmult_BYTES:dr,crypto_scalarmult_SCALARBYTES:Ur,crypto_box_PUBLICKEYBYTES:Er,crypto_box_SECRETKEYBYTES:xr,crypto_box_BEFORENMBYTES:Mr,crypto_box_NONCEBYTES:mr,crypto_box_ZEROBYTES:Br,crypto_box_BOXZEROBYTES:Sr,crypto_sign_BYTES:Kr,crypto_sign_PUBLICKEYBYTES:Tr,crypto_sign_SECRETKEYBYTES:Yr,crypto_sign_SEEDBYTES:kr,crypto_hash_BYTES:Lr},r.util||(r.util={},r.util.decodeUTF8=r.util.encodeUTF8=r.util.encodeBase64=r.util.decodeBase64=function(){throw new Error("nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js")}),r.randomBytes=function(r){var t=new Uint8Array(r);return rr(t,r),t},r.secretbox=function(r,t,n){Q(r,t,n),H(n,t);for(var e=new Uint8Array(_r+r.length),o=new Uint8Array(e.length),i=0;ie)return null;for(var o=new Uint8Array(e),i=0;ie;e++)o[e]=t[e];for(e=0;e=0},r.sign.keyPair=function(){var r=new Uint8Array(Tr),t=new Uint8Array(Yr);return Z(r,t),{publicKey:r,secretKey:t}},r.sign.keyPair.fromSecretKey=function(r){if(Q(r),r.length!==Yr)throw new Error("bad secret key size");for(var t=new Uint8Array(Tr),n=0;ne;e++)n[e]=r[e];return Z(t,n,!0),{publicKey:t,secretKey:n}},r.sign.publicKeyLength=Tr,r.sign.secretKeyLength=Yr,r.sign.seedLength=kr,r.sign.signatureLength=Kr,r.hash=function(r){Q(r);var t=new Uint8Array(Lr);return O(t,r,r.length),t},r.hash.hashLength=Lr,r.verify=function(r,t){return Q(r,t), -0===r.length||0===t.length?!1:r.length!==t.length?!1:0===n(r,0,t,0,r.length)?!0:!1},r.setPRNG=function(r){rr=r},function(){var t="undefined"!=typeof self?self.crypto||self.msCrypto:null;if(t&&t.getRandomValues){var n=65536;r.setPRNG(function(r,e){var o,i=new Uint8Array(e);for(o=0;e>o;o+=n)t.getRandomValues(i.subarray(o,o+Math.min(e-o,n)));for(o=0;e>o;o++)r[o]=i[o];W(i)})}else"undefined"!=typeof require&&(t=require("crypto"),t&&t.randomBytes&&r.setPRNG(function(r,n){var e,o=t.randomBytes(n);for(e=0;n>e;e++)r[e]=o[e];W(o)}))}()}("undefined"!=typeof module&&module.exports?module.exports:self.nacl=self.nacl||{}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.js deleted file mode 100644 index f72dd78d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.js +++ /dev/null @@ -1,1175 +0,0 @@ -(function(nacl) { -'use strict'; - -// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri. -// Public domain. -// -// Implementation derived from TweetNaCl version 20140427. -// See for details: http://tweetnacl.cr.yp.to/ - -var u64 = function(h, l) { this.hi = h|0 >>> 0; this.lo = l|0 >>> 0; }; -var gf = function(init) { - var i, r = new Float64Array(16); - if (init) for (i = 0; i < init.length; i++) r[i] = init[i]; - return r; -}; - -// Pluggable, initialized in high-level API below. -var randombytes = function(/* x, n */) { throw new Error('no PRNG'); }; - -var _0 = new Uint8Array(16); -var _9 = new Uint8Array(32); _9[0] = 9; - -var gf0 = gf(), - gf1 = gf([1]), - _121665 = gf([0xdb41, 1]), - D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]), - D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]), - X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]), - Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]), - I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]); - -function L32(x, c) { return (x << c) | (x >>> (32 - c)); } - -function ld32(x, i) { - var u = x[i+3] & 0xff; - u = (u<<8)|(x[i+2] & 0xff); - u = (u<<8)|(x[i+1] & 0xff); - return (u<<8)|(x[i+0] & 0xff); -} - -function dl64(x, i) { - var h = (x[i] << 24) | (x[i+1] << 16) | (x[i+2] << 8) | x[i+3]; - var l = (x[i+4] << 24) | (x[i+5] << 16) | (x[i+6] << 8) | x[i+7]; - return new u64(h, l); -} - -function st32(x, j, u) { - var i; - for (i = 0; i < 4; i++) { x[j+i] = u & 255; u >>>= 8; } -} - -function ts64(x, i, u) { - x[i] = (u.hi >> 24) & 0xff; - x[i+1] = (u.hi >> 16) & 0xff; - x[i+2] = (u.hi >> 8) & 0xff; - x[i+3] = u.hi & 0xff; - x[i+4] = (u.lo >> 24) & 0xff; - x[i+5] = (u.lo >> 16) & 0xff; - x[i+6] = (u.lo >> 8) & 0xff; - x[i+7] = u.lo & 0xff; -} - -function vn(x, xi, y, yi, n) { - var i,d = 0; - for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i]; - return (1 & ((d - 1) >>> 8)) - 1; -} - -function crypto_verify_16(x, xi, y, yi) { - return vn(x,xi,y,yi,16); -} - -function crypto_verify_32(x, xi, y, yi) { - return vn(x,xi,y,yi,32); -} - -function core(out,inp,k,c,h) { - var w = new Uint32Array(16), x = new Uint32Array(16), - y = new Uint32Array(16), t = new Uint32Array(4); - var i, j, m; - - for (i = 0; i < 4; i++) { - x[5*i] = ld32(c, 4*i); - x[1+i] = ld32(k, 4*i); - x[6+i] = ld32(inp, 4*i); - x[11+i] = ld32(k, 16+4*i); - } - - for (i = 0; i < 16; i++) y[i] = x[i]; - - for (i = 0; i < 20; i++) { - for (j = 0; j < 4; j++) { - for (m = 0; m < 4; m++) t[m] = x[(5*j+4*m)%16]; - t[1] ^= L32((t[0]+t[3])|0, 7); - t[2] ^= L32((t[1]+t[0])|0, 9); - t[3] ^= L32((t[2]+t[1])|0,13); - t[0] ^= L32((t[3]+t[2])|0,18); - for (m = 0; m < 4; m++) w[4*j+(j+m)%4] = t[m]; - } - for (m = 0; m < 16; m++) x[m] = w[m]; - } - - if (h) { - for (i = 0; i < 16; i++) x[i] = (x[i] + y[i]) | 0; - for (i = 0; i < 4; i++) { - x[5*i] = (x[5*i] - ld32(c, 4*i)) | 0; - x[6+i] = (x[6+i] - ld32(inp, 4*i)) | 0; - } - for (i = 0; i < 4; i++) { - st32(out,4*i,x[5*i]); - st32(out,16+4*i,x[6+i]); - } - } else { - for (i = 0; i < 16; i++) st32(out, 4 * i, (x[i] + y[i]) | 0); - } -} - -function crypto_core_salsa20(out,inp,k,c) { - core(out,inp,k,c,false); - return 0; -} - -function crypto_core_hsalsa20(out,inp,k,c) { - core(out,inp,k,c,true); - return 0; -} - -var sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]); - // "expand 32-byte k" - -function crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) { - var z = new Uint8Array(16), x = new Uint8Array(64); - var u, i; - if (!b) return 0; - for (i = 0; i < 16; i++) z[i] = 0; - for (i = 0; i < 8; i++) z[i] = n[i]; - while (b >= 64) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < 64; i++) c[cpos+i] = (m?m[mpos+i]:0) ^ x[i]; - u = 1; - for (i = 8; i < 16; i++) { - u = u + (z[i] & 0xff) | 0; - z[i] = u & 0xff; - u >>>= 8; - } - b -= 64; - cpos += 64; - if (m) mpos += 64; - } - if (b > 0) { - crypto_core_salsa20(x,z,k,sigma); - for (i = 0; i < b; i++) c[cpos+i] = (m?m[mpos+i]:0) ^ x[i]; - } - return 0; -} - -function crypto_stream_salsa20(c,cpos,d,n,k) { - return crypto_stream_salsa20_xor(c,cpos,null,0,d,n,k); -} - -function crypto_stream(c,cpos,d,n,k) { - var s = new Uint8Array(32); - crypto_core_hsalsa20(s,n,k,sigma); - return crypto_stream_salsa20(c,cpos,d,n.subarray(16),s); -} - -function crypto_stream_xor(c,cpos,m,mpos,d,n,k) { - var s = new Uint8Array(32); - crypto_core_hsalsa20(s,n,k,sigma); - return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,n.subarray(16),s); -} - -function add1305(h, c) { - var j, u = 0; - for (j = 0; j < 17; j++) { - u = (u + ((h[j] + c[j]) | 0)) | 0; - h[j] = u & 255; - u >>>= 8; - } -} - -var minusp = new Uint32Array([ - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252 -]); - -function crypto_onetimeauth(out, outpos, m, mpos, n, k) { - var s, i, j, u; - var x = new Uint32Array(17), r = new Uint32Array(17), - h = new Uint32Array(17), c = new Uint32Array(17), - g = new Uint32Array(17); - for (j = 0; j < 17; j++) r[j]=h[j]=0; - for (j = 0; j < 16; j++) r[j]=k[j]; - r[3]&=15; - r[4]&=252; - r[7]&=15; - r[8]&=252; - r[11]&=15; - r[12]&=252; - r[15]&=15; - - while (n > 0) { - for (j = 0; j < 17; j++) c[j] = 0; - for (j = 0; (j < 16) && (j < n); ++j) c[j] = m[mpos+j]; - c[j] = 1; - mpos += j; n -= j; - add1305(h,c); - for (i = 0; i < 17; i++) { - x[i] = 0; - for (j = 0; j < 17; j++) x[i] = (x[i] + (h[j] * ((j <= i) ? r[i - j] : ((320 * r[i + 17 - j])|0))) | 0) | 0; - } - for (i = 0; i < 17; i++) h[i] = x[i]; - u = 0; - for (j = 0; j < 16; j++) { - u = (u + h[j]) | 0; - h[j] = u & 255; - u >>>= 8; - } - u = (u + h[16]) | 0; h[16] = u & 3; - u = (5 * (u >>> 2)) | 0; - for (j = 0; j < 16; j++) { - u = (u + h[j]) | 0; - h[j] = u & 255; - u >>>= 8; - } - u = (u + h[16]) | 0; h[16] = u; - } - - for (j = 0; j < 17; j++) g[j] = h[j]; - add1305(h,minusp); - s = (-(h[16] >>> 7) | 0); - for (j = 0; j < 17; j++) h[j] ^= s & (g[j] ^ h[j]); - - for (j = 0; j < 16; j++) c[j] = k[j + 16]; - c[16] = 0; - add1305(h,c); - for (j = 0; j < 16; j++) out[outpos+j] = h[j]; - return 0; -} - -function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) { - var x = new Uint8Array(16); - crypto_onetimeauth(x,0,m,mpos,n,k); - return crypto_verify_16(h,hpos,x,0); -} - -function crypto_secretbox(c,m,d,n,k) { - var i; - if (d < 32) return -1; - crypto_stream_xor(c,0,m,0,d,n,k); - crypto_onetimeauth(c, 16, c, 32, d - 32, c); - for (i = 0; i < 16; i++) c[i] = 0; - return 0; -} - -function crypto_secretbox_open(m,c,d,n,k) { - var i; - var x = new Uint8Array(32); - if (d < 32) return -1; - crypto_stream(x,0,32,n,k); - if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1; - crypto_stream_xor(m,0,c,0,d,n,k); - for (i = 0; i < 32; i++) m[i] = 0; - return 0; -} - -function set25519(r, a) { - var i; - for (i = 0; i < 16; i++) r[i] = a[i]|0; -} - -function car25519(o) { - var c; - var i; - for (i = 0; i < 16; i++) { - o[i] += 65536; - c = Math.floor(o[i] / 65536); - o[(i+1)*(i<15?1:0)] += c - 1 + 37 * (c-1) * (i===15?1:0); - o[i] -= (c * 65536); - } -} - -function sel25519(p, q, b) { - var t, c = ~(b-1); - for (var i = 0; i < 16; i++) { - t = c & (p[i] ^ q[i]); - p[i] ^= t; - q[i] ^= t; - } -} - -function pack25519(o, n) { - var i, j, b; - var m = gf(), t = gf(); - for (i = 0; i < 16; i++) t[i] = n[i]; - car25519(t); - car25519(t); - car25519(t); - for (j = 0; j < 2; j++) { - m[0] = t[0] - 0xffed; - for (i = 1; i < 15; i++) { - m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1); - m[i-1] &= 0xffff; - } - m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1); - b = (m[15]>>16) & 1; - m[14] &= 0xffff; - sel25519(t, m, 1-b); - } - for (i = 0; i < 16; i++) { - o[2*i] = t[i] & 0xff; - o[2*i+1] = t[i]>>8; - } -} - -function neq25519(a, b) { - var c = new Uint8Array(32), d = new Uint8Array(32); - pack25519(c, a); - pack25519(d, b); - return crypto_verify_32(c, 0, d, 0); -} - -function par25519(a) { - var d = new Uint8Array(32); - pack25519(d, a); - return d[0] & 1; -} - -function unpack25519(o, n) { - var i; - for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8); - o[15] &= 0x7fff; -} - -function A(o, a, b) { - var i; - for (i = 0; i < 16; i++) o[i] = (a[i] + b[i])|0; -} - -function Z(o, a, b) { - var i; - for (i = 0; i < 16; i++) o[i] = (a[i] - b[i])|0; -} - -function M(o, a, b) { - var i, j, t = new Float64Array(31); - for (i = 0; i < 31; i++) t[i] = 0; - for (i = 0; i < 16; i++) { - for (j = 0; j < 16; j++) { - t[i+j] += a[i] * b[j]; - } - } - for (i = 0; i < 15; i++) { - t[i] += 38 * t[i+16]; - } - for (i = 0; i < 16; i++) o[i] = t[i]; - car25519(o); - car25519(o); -} - -function S(o, a) { - M(o, a, a); -} - -function inv25519(o, i) { - var c = gf(); - var a; - for (a = 0; a < 16; a++) c[a] = i[a]; - for (a = 253; a >= 0; a--) { - S(c, c); - if(a !== 2 && a !== 4) M(c, c, i); - } - for (a = 0; a < 16; a++) o[a] = c[a]; -} - -function pow2523(o, i) { - var c = gf(); - var a; - for (a = 0; a < 16; a++) c[a] = i[a]; - for (a = 250; a >= 0; a--) { - S(c, c); - if(a !== 1) M(c, c, i); - } - for (a = 0; a < 16; a++) o[a] = c[a]; -} - -function crypto_scalarmult(q, n, p) { - var z = new Uint8Array(32); - var x = new Float64Array(80), r, i; - var a = gf(), b = gf(), c = gf(), - d = gf(), e = gf(), f = gf(); - for (i = 0; i < 31; i++) z[i] = n[i]; - z[31]=(n[31]&127)|64; - z[0]&=248; - unpack25519(x,p); - for (i = 0; i < 16; i++) { - b[i]=x[i]; - d[i]=a[i]=c[i]=0; - } - a[0]=d[0]=1; - for (i=254; i>=0; --i) { - r=(z[i>>>3]>>>(i&7))&1; - sel25519(a,b,r); - sel25519(c,d,r); - A(e,a,c); - Z(a,a,c); - A(c,b,d); - Z(b,b,d); - S(d,e); - S(f,a); - M(a,c,a); - M(c,b,e); - A(e,a,c); - Z(a,a,c); - S(b,a); - Z(c,d,f); - M(a,c,_121665); - A(a,a,d); - M(c,c,a); - M(a,d,f); - M(d,b,x); - S(b,e); - sel25519(a,b,r); - sel25519(c,d,r); - } - for (i = 0; i < 16; i++) { - x[i+16]=a[i]; - x[i+32]=c[i]; - x[i+48]=b[i]; - x[i+64]=d[i]; - } - var x32 = x.subarray(32); - var x16 = x.subarray(16); - inv25519(x32,x32); - M(x16,x16,x32); - pack25519(q,x16); - return 0; -} - -function crypto_scalarmult_base(q, n) { - return crypto_scalarmult(q, n, _9); -} - -function crypto_box_keypair(y, x) { - randombytes(x, 32); - return crypto_scalarmult_base(y, x); -} - -function crypto_box_beforenm(k, y, x) { - var s = new Uint8Array(32); - crypto_scalarmult(s, x, y); - return crypto_core_hsalsa20(k, _0, s, sigma); -} - -var crypto_box_afternm = crypto_secretbox; -var crypto_box_open_afternm = crypto_secretbox_open; - -function crypto_box(c, m, d, n, y, x) { - var k = new Uint8Array(32); - crypto_box_beforenm(k, y, x); - return crypto_box_afternm(c, m, d, n, k); -} - -function crypto_box_open(m, c, d, n, y, x) { - var k = new Uint8Array(32); - crypto_box_beforenm(k, y, x); - return crypto_box_open_afternm(m, c, d, n, k); -} - -function add64() { - var a = 0, b = 0, c = 0, d = 0, m16 = 65535, l, h, i; - for (i = 0; i < arguments.length; i++) { - l = arguments[i].lo; - h = arguments[i].hi; - a += (l & m16); b += (l >>> 16); - c += (h & m16); d += (h >>> 16); - } - - b += (a >>> 16); - c += (b >>> 16); - d += (c >>> 16); - - return new u64((c & m16) | (d << 16), (a & m16) | (b << 16)); -} - -function shr64(x, c) { - return new u64((x.hi >>> c), (x.lo >>> c) | (x.hi << (32 - c))); -} - -function xor64() { - var l = 0, h = 0, i; - for (i = 0; i < arguments.length; i++) { - l ^= arguments[i].lo; - h ^= arguments[i].hi; - } - return new u64(h, l); -} - -function R(x, c) { - var h, l, c1 = 32 - c; - if (c < 32) { - h = (x.hi >>> c) | (x.lo << c1); - l = (x.lo >>> c) | (x.hi << c1); - } else if (c < 64) { - h = (x.lo >>> c) | (x.hi << c1); - l = (x.hi >>> c) | (x.lo << c1); - } - return new u64(h, l); -} - -function Ch(x, y, z) { - var h = (x.hi & y.hi) ^ (~x.hi & z.hi), - l = (x.lo & y.lo) ^ (~x.lo & z.lo); - return new u64(h, l); -} - -function Maj(x, y, z) { - var h = (x.hi & y.hi) ^ (x.hi & z.hi) ^ (y.hi & z.hi), - l = (x.lo & y.lo) ^ (x.lo & z.lo) ^ (y.lo & z.lo); - return new u64(h, l); -} - -function Sigma0(x) { return xor64(R(x,28), R(x,34), R(x,39)); } -function Sigma1(x) { return xor64(R(x,14), R(x,18), R(x,41)); } -function sigma0(x) { return xor64(R(x, 1), R(x, 8), shr64(x,7)); } -function sigma1(x) { return xor64(R(x,19), R(x,61), shr64(x,6)); } - -var K = [ - new u64(0x428a2f98, 0xd728ae22), new u64(0x71374491, 0x23ef65cd), - new u64(0xb5c0fbcf, 0xec4d3b2f), new u64(0xe9b5dba5, 0x8189dbbc), - new u64(0x3956c25b, 0xf348b538), new u64(0x59f111f1, 0xb605d019), - new u64(0x923f82a4, 0xaf194f9b), new u64(0xab1c5ed5, 0xda6d8118), - new u64(0xd807aa98, 0xa3030242), new u64(0x12835b01, 0x45706fbe), - new u64(0x243185be, 0x4ee4b28c), new u64(0x550c7dc3, 0xd5ffb4e2), - new u64(0x72be5d74, 0xf27b896f), new u64(0x80deb1fe, 0x3b1696b1), - new u64(0x9bdc06a7, 0x25c71235), new u64(0xc19bf174, 0xcf692694), - new u64(0xe49b69c1, 0x9ef14ad2), new u64(0xefbe4786, 0x384f25e3), - new u64(0x0fc19dc6, 0x8b8cd5b5), new u64(0x240ca1cc, 0x77ac9c65), - new u64(0x2de92c6f, 0x592b0275), new u64(0x4a7484aa, 0x6ea6e483), - new u64(0x5cb0a9dc, 0xbd41fbd4), new u64(0x76f988da, 0x831153b5), - new u64(0x983e5152, 0xee66dfab), new u64(0xa831c66d, 0x2db43210), - new u64(0xb00327c8, 0x98fb213f), new u64(0xbf597fc7, 0xbeef0ee4), - new u64(0xc6e00bf3, 0x3da88fc2), new u64(0xd5a79147, 0x930aa725), - new u64(0x06ca6351, 0xe003826f), new u64(0x14292967, 0x0a0e6e70), - new u64(0x27b70a85, 0x46d22ffc), new u64(0x2e1b2138, 0x5c26c926), - new u64(0x4d2c6dfc, 0x5ac42aed), new u64(0x53380d13, 0x9d95b3df), - new u64(0x650a7354, 0x8baf63de), new u64(0x766a0abb, 0x3c77b2a8), - new u64(0x81c2c92e, 0x47edaee6), new u64(0x92722c85, 0x1482353b), - new u64(0xa2bfe8a1, 0x4cf10364), new u64(0xa81a664b, 0xbc423001), - new u64(0xc24b8b70, 0xd0f89791), new u64(0xc76c51a3, 0x0654be30), - new u64(0xd192e819, 0xd6ef5218), new u64(0xd6990624, 0x5565a910), - new u64(0xf40e3585, 0x5771202a), new u64(0x106aa070, 0x32bbd1b8), - new u64(0x19a4c116, 0xb8d2d0c8), new u64(0x1e376c08, 0x5141ab53), - new u64(0x2748774c, 0xdf8eeb99), new u64(0x34b0bcb5, 0xe19b48a8), - new u64(0x391c0cb3, 0xc5c95a63), new u64(0x4ed8aa4a, 0xe3418acb), - new u64(0x5b9cca4f, 0x7763e373), new u64(0x682e6ff3, 0xd6b2b8a3), - new u64(0x748f82ee, 0x5defb2fc), new u64(0x78a5636f, 0x43172f60), - new u64(0x84c87814, 0xa1f0ab72), new u64(0x8cc70208, 0x1a6439ec), - new u64(0x90befffa, 0x23631e28), new u64(0xa4506ceb, 0xde82bde9), - new u64(0xbef9a3f7, 0xb2c67915), new u64(0xc67178f2, 0xe372532b), - new u64(0xca273ece, 0xea26619c), new u64(0xd186b8c7, 0x21c0c207), - new u64(0xeada7dd6, 0xcde0eb1e), new u64(0xf57d4f7f, 0xee6ed178), - new u64(0x06f067aa, 0x72176fba), new u64(0x0a637dc5, 0xa2c898a6), - new u64(0x113f9804, 0xbef90dae), new u64(0x1b710b35, 0x131c471b), - new u64(0x28db77f5, 0x23047d84), new u64(0x32caab7b, 0x40c72493), - new u64(0x3c9ebe0a, 0x15c9bebc), new u64(0x431d67c4, 0x9c100d4c), - new u64(0x4cc5d4be, 0xcb3e42b6), new u64(0x597f299c, 0xfc657e2a), - new u64(0x5fcb6fab, 0x3ad6faec), new u64(0x6c44198c, 0x4a475817) -]; - -function crypto_hashblocks(x, m, n) { - var z = [], b = [], a = [], w = [], t, i, j; - - for (i = 0; i < 8; i++) z[i] = a[i] = dl64(x, 8*i); - - var pos = 0; - while (n >= 128) { - for (i = 0; i < 16; i++) w[i] = dl64(m, 8*i+pos); - for (i = 0; i < 80; i++) { - for (j = 0; j < 8; j++) b[j] = a[j]; - t = add64(a[7], Sigma1(a[4]), Ch(a[4], a[5], a[6]), K[i], w[i%16]); - b[7] = add64(t, Sigma0(a[0]), Maj(a[0], a[1], a[2])); - b[3] = add64(b[3], t); - for (j = 0; j < 8; j++) a[(j+1)%8] = b[j]; - if (i%16 === 15) { - for (j = 0; j < 16; j++) { - w[j] = add64(w[j], w[(j+9)%16], sigma0(w[(j+1)%16]), sigma1(w[(j+14)%16])); - } - } - } - - for (i = 0; i < 8; i++) { - a[i] = add64(a[i], z[i]); - z[i] = a[i]; - } - - pos += 128; - n -= 128; - } - - for (i = 0; i < 8; i++) ts64(x, 8*i, z[i]); - return n; -} - -var iv = new Uint8Array([ - 0x6a,0x09,0xe6,0x67,0xf3,0xbc,0xc9,0x08, - 0xbb,0x67,0xae,0x85,0x84,0xca,0xa7,0x3b, - 0x3c,0x6e,0xf3,0x72,0xfe,0x94,0xf8,0x2b, - 0xa5,0x4f,0xf5,0x3a,0x5f,0x1d,0x36,0xf1, - 0x51,0x0e,0x52,0x7f,0xad,0xe6,0x82,0xd1, - 0x9b,0x05,0x68,0x8c,0x2b,0x3e,0x6c,0x1f, - 0x1f,0x83,0xd9,0xab,0xfb,0x41,0xbd,0x6b, - 0x5b,0xe0,0xcd,0x19,0x13,0x7e,0x21,0x79 -]); - -function crypto_hash(out, m, n) { - var h = new Uint8Array(64), x = new Uint8Array(256); - var i, b = n; - - for (i = 0; i < 64; i++) h[i] = iv[i]; - - crypto_hashblocks(h, m, n); - n %= 128; - - for (i = 0; i < 256; i++) x[i] = 0; - for (i = 0; i < n; i++) x[i] = m[b-n+i]; - x[n] = 128; - - n = 256-128*(n<112?1:0); - x[n-9] = 0; - ts64(x, n-8, new u64((b / 0x20000000) | 0, b << 3)); - crypto_hashblocks(h, x, n); - - for (i = 0; i < 64; i++) out[i] = h[i]; - - return 0; -} - -function add(p, q) { - var a = gf(), b = gf(), c = gf(), - d = gf(), e = gf(), f = gf(), - g = gf(), h = gf(), t = gf(); - - Z(a, p[1], p[0]); - Z(t, q[1], q[0]); - M(a, a, t); - A(b, p[0], p[1]); - A(t, q[0], q[1]); - M(b, b, t); - M(c, p[3], q[3]); - M(c, c, D2); - M(d, p[2], q[2]); - A(d, d, d); - Z(e, b, a); - Z(f, d, c); - A(g, d, c); - A(h, b, a); - - M(p[0], e, f); - M(p[1], h, g); - M(p[2], g, f); - M(p[3], e, h); -} - -function cswap(p, q, b) { - var i; - for (i = 0; i < 4; i++) { - sel25519(p[i], q[i], b); - } -} - -function pack(r, p) { - var tx = gf(), ty = gf(), zi = gf(); - inv25519(zi, p[2]); - M(tx, p[0], zi); - M(ty, p[1], zi); - pack25519(r, ty); - r[31] ^= par25519(tx) << 7; -} - -function scalarmult(p, q, s) { - var b, i; - set25519(p[0], gf0); - set25519(p[1], gf1); - set25519(p[2], gf1); - set25519(p[3], gf0); - for (i = 255; i >= 0; --i) { - b = (s[(i/8)|0] >> (i&7)) & 1; - cswap(p, q, b); - add(q, p); - add(p, p); - cswap(p, q, b); - } -} - -function scalarbase(p, s) { - var q = [gf(), gf(), gf(), gf()]; - set25519(q[0], X); - set25519(q[1], Y); - set25519(q[2], gf1); - M(q[3], X, Y); - scalarmult(p, q, s); -} - -function crypto_sign_keypair(pk, sk, seeded) { - var d = new Uint8Array(64); - var p = [gf(), gf(), gf(), gf()]; - var i; - - if (!seeded) randombytes(sk, 32); - crypto_hash(d, sk, 32); - d[0] &= 248; - d[31] &= 127; - d[31] |= 64; - - scalarbase(p, d); - pack(pk, p); - - for (i = 0; i < 32; i++) sk[i+32] = pk[i]; - return 0; -} - -var L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]); - -function modL(r, x) { - var carry, i, j, k; - for (i = 63; i >= 32; --i) { - carry = 0; - for (j = i - 32, k = i - 12; j < k; ++j) { - x[j] += carry - 16 * x[i] * L[j - (i - 32)]; - carry = (x[j] + 128) >> 8; - x[j] -= carry * 256; - } - x[j] += carry; - x[i] = 0; - } - carry = 0; - for (j = 0; j < 32; j++) { - x[j] += carry - (x[31] >> 4) * L[j]; - carry = x[j] >> 8; - x[j] &= 255; - } - for (j = 0; j < 32; j++) x[j] -= carry * L[j]; - for (i = 0; i < 32; i++) { - x[i+1] += x[i] >> 8; - r[i] = x[i] & 255; - } -} - -function reduce(r) { - var x = new Float64Array(64), i; - for (i = 0; i < 64; i++) x[i] = r[i]; - for (i = 0; i < 64; i++) r[i] = 0; - modL(r, x); -} - -// Note: difference from C - smlen returned, not passed as argument. -function crypto_sign(sm, m, n, sk) { - var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64); - var i, j, x = new Float64Array(64); - var p = [gf(), gf(), gf(), gf()]; - - crypto_hash(d, sk, 32); - d[0] &= 248; - d[31] &= 127; - d[31] |= 64; - - var smlen = n + 64; - for (i = 0; i < n; i++) sm[64 + i] = m[i]; - for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i]; - - crypto_hash(r, sm.subarray(32), n+32); - reduce(r); - scalarbase(p, r); - pack(sm, p); - - for (i = 32; i < 64; i++) sm[i] = sk[i]; - crypto_hash(h, sm, n + 64); - reduce(h); - - for (i = 0; i < 64; i++) x[i] = 0; - for (i = 0; i < 32; i++) x[i] = r[i]; - for (i = 0; i < 32; i++) { - for (j = 0; j < 32; j++) { - x[i+j] += h[i] * d[j]; - } - } - - modL(sm.subarray(32), x); - return smlen; -} - -function unpackneg(r, p) { - var t = gf(), chk = gf(), num = gf(), - den = gf(), den2 = gf(), den4 = gf(), - den6 = gf(); - - set25519(r[2], gf1); - unpack25519(r[1], p); - S(num, r[1]); - M(den, num, D); - Z(num, num, r[2]); - A(den, r[2], den); - - S(den2, den); - S(den4, den2); - M(den6, den4, den2); - M(t, den6, num); - M(t, t, den); - - pow2523(t, t); - M(t, t, num); - M(t, t, den); - M(t, t, den); - M(r[0], t, den); - - S(chk, r[0]); - M(chk, chk, den); - if (neq25519(chk, num)) M(r[0], r[0], I); - - S(chk, r[0]); - M(chk, chk, den); - if (neq25519(chk, num)) return -1; - - if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]); - - M(r[3], r[0], r[1]); - return 0; -} - -function crypto_sign_open(m, sm, n, pk) { - var i, mlen; - var t = new Uint8Array(32), h = new Uint8Array(64); - var p = [gf(), gf(), gf(), gf()], - q = [gf(), gf(), gf(), gf()]; - - mlen = -1; - if (n < 64) return -1; - - if (unpackneg(q, pk)) return -1; - - for (i = 0; i < n; i++) m[i] = sm[i]; - for (i = 0; i < 32; i++) m[i+32] = pk[i]; - crypto_hash(h, m, n); - reduce(h); - scalarmult(p, q, h); - - scalarbase(q, sm.subarray(32)); - add(p, q); - pack(t, p); - - n -= 64; - if (crypto_verify_32(sm, 0, t, 0)) { - for (i = 0; i < n; i++) m[i] = 0; - return -1; - } - - for (i = 0; i < n; i++) m[i] = sm[i + 64]; - mlen = n; - return mlen; -} - -var crypto_secretbox_KEYBYTES = 32, - crypto_secretbox_NONCEBYTES = 24, - crypto_secretbox_ZEROBYTES = 32, - crypto_secretbox_BOXZEROBYTES = 16, - crypto_scalarmult_BYTES = 32, - crypto_scalarmult_SCALARBYTES = 32, - crypto_box_PUBLICKEYBYTES = 32, - crypto_box_SECRETKEYBYTES = 32, - crypto_box_BEFORENMBYTES = 32, - crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES, - crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES, - crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES, - crypto_sign_BYTES = 64, - crypto_sign_PUBLICKEYBYTES = 32, - crypto_sign_SECRETKEYBYTES = 64, - crypto_sign_SEEDBYTES = 32, - crypto_hash_BYTES = 64; - -nacl.lowlevel = { - crypto_core_hsalsa20: crypto_core_hsalsa20, - crypto_stream_xor: crypto_stream_xor, - crypto_stream: crypto_stream, - crypto_stream_salsa20_xor: crypto_stream_salsa20_xor, - crypto_stream_salsa20: crypto_stream_salsa20, - crypto_onetimeauth: crypto_onetimeauth, - crypto_onetimeauth_verify: crypto_onetimeauth_verify, - crypto_verify_16: crypto_verify_16, - crypto_verify_32: crypto_verify_32, - crypto_secretbox: crypto_secretbox, - crypto_secretbox_open: crypto_secretbox_open, - crypto_scalarmult: crypto_scalarmult, - crypto_scalarmult_base: crypto_scalarmult_base, - crypto_box_beforenm: crypto_box_beforenm, - crypto_box_afternm: crypto_box_afternm, - crypto_box: crypto_box, - crypto_box_open: crypto_box_open, - crypto_box_keypair: crypto_box_keypair, - crypto_hash: crypto_hash, - crypto_sign: crypto_sign, - crypto_sign_keypair: crypto_sign_keypair, - crypto_sign_open: crypto_sign_open, - - crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES, - crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES, - crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES, - crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES, - crypto_scalarmult_BYTES: crypto_scalarmult_BYTES, - crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES, - crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES, - crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES, - crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES, - crypto_box_NONCEBYTES: crypto_box_NONCEBYTES, - crypto_box_ZEROBYTES: crypto_box_ZEROBYTES, - crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES, - crypto_sign_BYTES: crypto_sign_BYTES, - crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES, - crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES, - crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES, - crypto_hash_BYTES: crypto_hash_BYTES -}; - -/* High-level API */ - -function checkLengths(k, n) { - if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size'); - if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size'); -} - -function checkBoxLengths(pk, sk) { - if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size'); - if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size'); -} - -function checkArrayTypes() { - var t, i; - for (i = 0; i < arguments.length; i++) { - if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]') - throw new TypeError('unexpected type ' + t + ', use Uint8Array'); - } -} - -function cleanup(arr) { - for (var i = 0; i < arr.length; i++) arr[i] = 0; -} - -// TODO: Completely remove this in v0.15. -if (!nacl.util) { - nacl.util = {}; - nacl.util.decodeUTF8 = nacl.util.encodeUTF8 = nacl.util.encodeBase64 = nacl.util.decodeBase64 = function() { - throw new Error('nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js'); - }; -} - -nacl.randomBytes = function(n) { - var b = new Uint8Array(n); - randombytes(b, n); - return b; -}; - -nacl.secretbox = function(msg, nonce, key) { - checkArrayTypes(msg, nonce, key); - checkLengths(key, nonce); - var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length); - var c = new Uint8Array(m.length); - for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i]; - crypto_secretbox(c, m, m.length, nonce, key); - return c.subarray(crypto_secretbox_BOXZEROBYTES); -}; - -nacl.secretbox.open = function(box, nonce, key) { - checkArrayTypes(box, nonce, key); - checkLengths(key, nonce); - var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length); - var m = new Uint8Array(c.length); - for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i]; - if (c.length < 32) return false; - if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return false; - return m.subarray(crypto_secretbox_ZEROBYTES); -}; - -nacl.secretbox.keyLength = crypto_secretbox_KEYBYTES; -nacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES; -nacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES; - -nacl.scalarMult = function(n, p) { - checkArrayTypes(n, p); - if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size'); - if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size'); - var q = new Uint8Array(crypto_scalarmult_BYTES); - crypto_scalarmult(q, n, p); - return q; -}; - -nacl.scalarMult.base = function(n) { - checkArrayTypes(n); - if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size'); - var q = new Uint8Array(crypto_scalarmult_BYTES); - crypto_scalarmult_base(q, n); - return q; -}; - -nacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES; -nacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES; - -nacl.box = function(msg, nonce, publicKey, secretKey) { - var k = nacl.box.before(publicKey, secretKey); - return nacl.secretbox(msg, nonce, k); -}; - -nacl.box.before = function(publicKey, secretKey) { - checkArrayTypes(publicKey, secretKey); - checkBoxLengths(publicKey, secretKey); - var k = new Uint8Array(crypto_box_BEFORENMBYTES); - crypto_box_beforenm(k, publicKey, secretKey); - return k; -}; - -nacl.box.after = nacl.secretbox; - -nacl.box.open = function(msg, nonce, publicKey, secretKey) { - var k = nacl.box.before(publicKey, secretKey); - return nacl.secretbox.open(msg, nonce, k); -}; - -nacl.box.open.after = nacl.secretbox.open; - -nacl.box.keyPair = function() { - var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_box_SECRETKEYBYTES); - crypto_box_keypair(pk, sk); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.box.keyPair.fromSecretKey = function(secretKey) { - checkArrayTypes(secretKey); - if (secretKey.length !== crypto_box_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES); - crypto_scalarmult_base(pk, secretKey); - return {publicKey: pk, secretKey: new Uint8Array(secretKey)}; -}; - -nacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES; -nacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES; -nacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES; -nacl.box.nonceLength = crypto_box_NONCEBYTES; -nacl.box.overheadLength = nacl.secretbox.overheadLength; - -nacl.sign = function(msg, secretKey) { - checkArrayTypes(msg, secretKey); - if (secretKey.length !== crypto_sign_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length); - crypto_sign(signedMsg, msg, msg.length, secretKey); - return signedMsg; -}; - -nacl.sign.open = function(signedMsg, publicKey) { - if (arguments.length !== 2) - throw new Error('nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?'); - checkArrayTypes(signedMsg, publicKey); - if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) - throw new Error('bad public key size'); - var tmp = new Uint8Array(signedMsg.length); - var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey); - if (mlen < 0) return null; - var m = new Uint8Array(mlen); - for (var i = 0; i < m.length; i++) m[i] = tmp[i]; - return m; -}; - -nacl.sign.detached = function(msg, secretKey) { - var signedMsg = nacl.sign(msg, secretKey); - var sig = new Uint8Array(crypto_sign_BYTES); - for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i]; - return sig; -}; - -nacl.sign.detached.verify = function(msg, sig, publicKey) { - checkArrayTypes(msg, sig, publicKey); - if (sig.length !== crypto_sign_BYTES) - throw new Error('bad signature size'); - if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) - throw new Error('bad public key size'); - var sm = new Uint8Array(crypto_sign_BYTES + msg.length); - var m = new Uint8Array(crypto_sign_BYTES + msg.length); - var i; - for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i]; - for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i]; - return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0); -}; - -nacl.sign.keyPair = function() { - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES); - crypto_sign_keypair(pk, sk); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.sign.keyPair.fromSecretKey = function(secretKey) { - checkArrayTypes(secretKey); - if (secretKey.length !== crypto_sign_SECRETKEYBYTES) - throw new Error('bad secret key size'); - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i]; - return {publicKey: pk, secretKey: new Uint8Array(secretKey)}; -}; - -nacl.sign.keyPair.fromSeed = function(seed) { - checkArrayTypes(seed); - if (seed.length !== crypto_sign_SEEDBYTES) - throw new Error('bad seed size'); - var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES); - var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES); - for (var i = 0; i < 32; i++) sk[i] = seed[i]; - crypto_sign_keypair(pk, sk, true); - return {publicKey: pk, secretKey: sk}; -}; - -nacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES; -nacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES; -nacl.sign.seedLength = crypto_sign_SEEDBYTES; -nacl.sign.signatureLength = crypto_sign_BYTES; - -nacl.hash = function(msg) { - checkArrayTypes(msg); - var h = new Uint8Array(crypto_hash_BYTES); - crypto_hash(h, msg, msg.length); - return h; -}; - -nacl.hash.hashLength = crypto_hash_BYTES; - -nacl.verify = function(x, y) { - checkArrayTypes(x, y); - // Zero length arguments are considered not equal. - if (x.length === 0 || y.length === 0) return false; - if (x.length !== y.length) return false; - return (vn(x, 0, y, 0, x.length) === 0) ? true : false; -}; - -nacl.setPRNG = function(fn) { - randombytes = fn; -}; - -(function() { - // Initialize PRNG if environment provides CSPRNG. - // If not, methods calling randombytes will throw. - var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null; - if (crypto && crypto.getRandomValues) { - // Browsers. - var QUOTA = 65536; - nacl.setPRNG(function(x, n) { - var i, v = new Uint8Array(n); - for (i = 0; i < n; i += QUOTA) { - crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA))); - } - for (i = 0; i < n; i++) x[i] = v[i]; - cleanup(v); - }); - } else if (typeof require !== 'undefined') { - // Node.js. - crypto = require('crypto'); - if (crypto && crypto.randomBytes) { - nacl.setPRNG(function(x, n) { - var i, v = crypto.randomBytes(n); - for (i = 0; i < n; i++) x[i] = v[i]; - cleanup(v); - }); - } - } -})(); - -})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {})); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.min.js deleted file mode 100644 index eed38541..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(r){"use strict";function n(r,n){return r<>>32-n}function e(r,n){var e=255&r[n+3];return e=e<<8|255&r[n+2],e=e<<8|255&r[n+1],e<<8|255&r[n+0]}function t(r,n){var e=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],t=r[n+4]<<24|r[n+5]<<16|r[n+6]<<8|r[n+7];return new lr(e,t)}function o(r,n,e){var t;for(t=0;4>t;t++)r[n+t]=255&e,e>>>=8}function i(r,n,e){r[n]=e.hi>>24&255,r[n+1]=e.hi>>16&255,r[n+2]=e.hi>>8&255,r[n+3]=255&e.hi,r[n+4]=e.lo>>24&255,r[n+5]=e.lo>>16&255,r[n+6]=e.lo>>8&255,r[n+7]=255&e.lo}function a(r,n,e,t,o){var i,a=0;for(i=0;o>i;i++)a|=r[n+i]^e[t+i];return(1&a-1>>>8)-1}function f(r,n,e,t){return a(r,n,e,t,16)}function u(r,n,e,t){return a(r,n,e,t,32)}function c(r,t,i,a,f){var u,c,w,y=new Uint32Array(16),s=new Uint32Array(16),l=new Uint32Array(16),h=new Uint32Array(4);for(u=0;4>u;u++)s[5*u]=e(a,4*u),s[1+u]=e(i,4*u),s[6+u]=e(t,4*u),s[11+u]=e(i,16+4*u);for(u=0;16>u;u++)l[u]=s[u];for(u=0;20>u;u++){for(c=0;4>c;c++){for(w=0;4>w;w++)h[w]=s[(5*c+4*w)%16];for(h[1]^=n(h[0]+h[3]|0,7),h[2]^=n(h[1]+h[0]|0,9),h[3]^=n(h[2]+h[1]|0,13),h[0]^=n(h[3]+h[2]|0,18),w=0;4>w;w++)y[4*c+(c+w)%4]=h[w]}for(w=0;16>w;w++)s[w]=y[w]}if(f){for(u=0;16>u;u++)s[u]=s[u]+l[u]|0;for(u=0;4>u;u++)s[5*u]=s[5*u]-e(a,4*u)|0,s[6+u]=s[6+u]-e(t,4*u)|0;for(u=0;4>u;u++)o(r,4*u,s[5*u]),o(r,16+4*u,s[6+u])}else for(u=0;16>u;u++)o(r,4*u,s[u]+l[u]|0)}function w(r,n,e,t){return c(r,n,e,t,!1),0}function y(r,n,e,t){return c(r,n,e,t,!0),0}function s(r,n,e,t,o,i,a){var f,u,c=new Uint8Array(16),y=new Uint8Array(64);if(!o)return 0;for(u=0;16>u;u++)c[u]=0;for(u=0;8>u;u++)c[u]=i[u];for(;o>=64;){for(w(y,c,a,Br),u=0;64>u;u++)r[n+u]=(e?e[t+u]:0)^y[u];for(f=1,u=8;16>u;u++)f=f+(255&c[u])|0,c[u]=255&f,f>>>=8;o-=64,n+=64,e&&(t+=64)}if(o>0)for(w(y,c,a,Br),u=0;o>u;u++)r[n+u]=(e?e[t+u]:0)^y[u];return 0}function l(r,n,e,t,o){return s(r,n,null,0,e,t,o)}function h(r,n,e,t,o){var i=new Uint8Array(32);return y(i,t,o,Br),l(r,n,e,t.subarray(16),i)}function g(r,n,e,t,o,i,a){var f=new Uint8Array(32);return y(f,i,a,Br),s(r,n,e,t,o,i.subarray(16),f)}function v(r,n){var e,t=0;for(e=0;17>e;e++)t=t+(r[e]+n[e]|0)|0,r[e]=255&t,t>>>=8}function b(r,n,e,t,o,i){var a,f,u,c,w=new Uint32Array(17),y=new Uint32Array(17),s=new Uint32Array(17),l=new Uint32Array(17),h=new Uint32Array(17);for(u=0;17>u;u++)y[u]=s[u]=0;for(u=0;16>u;u++)y[u]=i[u];for(y[3]&=15,y[4]&=252,y[7]&=15,y[8]&=252,y[11]&=15,y[12]&=252,y[15]&=15;o>0;){for(u=0;17>u;u++)l[u]=0;for(u=0;16>u&&o>u;++u)l[u]=e[t+u];for(l[u]=1,t+=u,o-=u,v(s,l),f=0;17>f;f++)for(w[f]=0,u=0;17>u;u++)w[f]=w[f]+s[u]*(f>=u?y[f-u]:320*y[f+17-u]|0)|0|0;for(f=0;17>f;f++)s[f]=w[f];for(c=0,u=0;16>u;u++)c=c+s[u]|0,s[u]=255&c,c>>>=8;for(c=c+s[16]|0,s[16]=3&c,c=5*(c>>>2)|0,u=0;16>u;u++)c=c+s[u]|0,s[u]=255&c,c>>>=8;c=c+s[16]|0,s[16]=c}for(u=0;17>u;u++)h[u]=s[u];for(v(s,Sr),a=0|-(s[16]>>>7),u=0;17>u;u++)s[u]^=a&(h[u]^s[u]);for(u=0;16>u;u++)l[u]=i[u+16];for(l[16]=0,v(s,l),u=0;16>u;u++)r[n+u]=s[u];return 0}function p(r,n,e,t,o,i){var a=new Uint8Array(16);return b(a,0,e,t,o,i),f(r,n,a,0)}function _(r,n,e,t,o){var i;if(32>e)return-1;for(g(r,0,n,0,e,t,o),b(r,16,r,32,e-32,r),i=0;16>i;i++)r[i]=0;return 0}function A(r,n,e,t,o){var i,a=new Uint8Array(32);if(32>e)return-1;if(h(a,0,32,t,o),0!==p(n,16,n,32,e-32,a))return-1;for(g(r,0,n,0,e,t,o),i=0;32>i;i++)r[i]=0;return 0}function U(r,n){var e;for(e=0;16>e;e++)r[e]=0|n[e]}function E(r){var n,e;for(e=0;16>e;e++)r[e]+=65536,n=Math.floor(r[e]/65536),r[(e+1)*(15>e?1:0)]+=n-1+37*(n-1)*(15===e?1:0),r[e]-=65536*n}function d(r,n,e){for(var t,o=~(e-1),i=0;16>i;i++)t=o&(r[i]^n[i]),r[i]^=t,n[i]^=t}function x(r,n){var e,t,o,i=hr(),a=hr();for(e=0;16>e;e++)a[e]=n[e];for(E(a),E(a),E(a),t=0;2>t;t++){for(i[0]=a[0]-65517,e=1;15>e;e++)i[e]=a[e]-65535-(i[e-1]>>16&1),i[e-1]&=65535;i[15]=a[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,d(a,i,1-o)}for(e=0;16>e;e++)r[2*e]=255&a[e],r[2*e+1]=a[e]>>8}function m(r,n){var e=new Uint8Array(32),t=new Uint8Array(32);return x(e,r),x(t,n),u(e,0,t,0)}function B(r){var n=new Uint8Array(32);return x(n,r),1&n[0]}function S(r,n){var e;for(e=0;16>e;e++)r[e]=n[2*e]+(n[2*e+1]<<8);r[15]&=32767}function K(r,n,e){var t;for(t=0;16>t;t++)r[t]=n[t]+e[t]|0}function T(r,n,e){var t;for(t=0;16>t;t++)r[t]=n[t]-e[t]|0}function Y(r,n,e){var t,o,i=new Float64Array(31);for(t=0;31>t;t++)i[t]=0;for(t=0;16>t;t++)for(o=0;16>o;o++)i[t+o]+=n[t]*e[o];for(t=0;15>t;t++)i[t]+=38*i[t+16];for(t=0;16>t;t++)r[t]=i[t];E(r),E(r)}function L(r,n){Y(r,n,n)}function k(r,n){var e,t=hr();for(e=0;16>e;e++)t[e]=n[e];for(e=253;e>=0;e--)L(t,t),2!==e&&4!==e&&Y(t,t,n);for(e=0;16>e;e++)r[e]=t[e]}function z(r,n){var e,t=hr();for(e=0;16>e;e++)t[e]=n[e];for(e=250;e>=0;e--)L(t,t),1!==e&&Y(t,t,n);for(e=0;16>e;e++)r[e]=t[e]}function R(r,n,e){var t,o,i=new Uint8Array(32),a=new Float64Array(80),f=hr(),u=hr(),c=hr(),w=hr(),y=hr(),s=hr();for(o=0;31>o;o++)i[o]=n[o];for(i[31]=127&n[31]|64,i[0]&=248,S(a,e),o=0;16>o;o++)u[o]=a[o],w[o]=f[o]=c[o]=0;for(f[0]=w[0]=1,o=254;o>=0;--o)t=i[o>>>3]>>>(7&o)&1,d(f,u,t),d(c,w,t),K(y,f,c),T(f,f,c),K(c,u,w),T(u,u,w),L(w,y),L(s,f),Y(f,c,f),Y(c,u,y),K(y,f,c),T(f,f,c),L(u,f),T(c,w,s),Y(f,c,Ar),K(f,f,w),Y(c,c,f),Y(f,w,s),Y(w,u,a),L(u,y),d(f,u,t),d(c,w,t);for(o=0;16>o;o++)a[o+16]=f[o],a[o+32]=c[o],a[o+48]=u[o],a[o+64]=w[o];var l=a.subarray(32),h=a.subarray(16);return k(l,l),Y(h,h,l),x(r,h),0}function P(r,n){return R(r,n,br)}function O(r,n){return gr(n,32),P(r,n)}function F(r,n,e){var t=new Uint8Array(32);return R(t,e,n),y(r,vr,t,Br)}function N(r,n,e,t,o,i){var a=new Uint8Array(32);return F(a,o,i),Kr(r,n,e,t,a)}function C(r,n,e,t,o,i){var a=new Uint8Array(32);return F(a,o,i),Tr(r,n,e,t,a)}function M(){var r,n,e,t=0,o=0,i=0,a=0,f=65535;for(e=0;e>>16,i+=n&f,a+=n>>>16;return o+=t>>>16,i+=o>>>16,a+=i>>>16,new lr(i&f|a<<16,t&f|o<<16)}function G(r,n){return new lr(r.hi>>>n,r.lo>>>n|r.hi<<32-n)}function Z(){var r,n=0,e=0;for(r=0;rn?(e=r.hi>>>n|r.lo<>>n|r.hi<n&&(e=r.lo>>>n|r.hi<>>n|r.lo<a;a++)u[a]=w[a]=t(r,8*a);for(var s=0;e>=128;){for(a=0;16>a;a++)y[a]=t(n,8*a+s);for(a=0;80>a;a++){for(f=0;8>f;f++)c[f]=w[f];for(o=M(w[7],X(w[4]),q(w[4],w[5],w[6]),Yr[a],y[a%16]),c[7]=M(o,V(w[0]),I(w[0],w[1],w[2])),c[3]=M(c[3],o),f=0;8>f;f++)w[(f+1)%8]=c[f];if(a%16===15)for(f=0;16>f;f++)y[f]=M(y[f],y[(f+9)%16],D(y[(f+1)%16]),H(y[(f+14)%16]))}for(a=0;8>a;a++)w[a]=M(w[a],u[a]),u[a]=w[a];s+=128,e-=128}for(a=0;8>a;a++)i(r,8*a,u[a]);return e}function Q(r,n,e){var t,o=new Uint8Array(64),a=new Uint8Array(256),f=e;for(t=0;64>t;t++)o[t]=Lr[t];for(J(o,n,e),e%=128,t=0;256>t;t++)a[t]=0;for(t=0;e>t;t++)a[t]=n[f-e+t];for(a[e]=128,e=256-128*(112>e?1:0),a[e-9]=0,i(a,e-8,new lr(f/536870912|0,f<<3)),J(o,a,e),t=0;64>t;t++)r[t]=o[t];return 0}function W(r,n){var e=hr(),t=hr(),o=hr(),i=hr(),a=hr(),f=hr(),u=hr(),c=hr(),w=hr();T(e,r[1],r[0]),T(w,n[1],n[0]),Y(e,e,w),K(t,r[0],r[1]),K(w,n[0],n[1]),Y(t,t,w),Y(o,r[3],n[3]),Y(o,o,Er),Y(i,r[2],n[2]),K(i,i,i),T(a,t,e),T(f,i,o),K(u,i,o),K(c,t,e),Y(r[0],a,f),Y(r[1],c,u),Y(r[2],u,f),Y(r[3],a,c)}function $(r,n,e){var t;for(t=0;4>t;t++)d(r[t],n[t],e)}function rr(r,n){var e=hr(),t=hr(),o=hr();k(o,n[2]),Y(e,n[0],o),Y(t,n[1],o),x(r,t),r[31]^=B(e)<<7}function nr(r,n,e){var t,o;for(U(r[0],pr),U(r[1],_r),U(r[2],_r),U(r[3],pr),o=255;o>=0;--o)t=e[o/8|0]>>(7&o)&1,$(r,n,t),W(n,r),W(r,r),$(r,n,t)}function er(r,n){var e=[hr(),hr(),hr(),hr()];U(e[0],dr),U(e[1],xr),U(e[2],_r),Y(e[3],dr,xr),nr(r,e,n)}function tr(r,n,e){var t,o=new Uint8Array(64),i=[hr(),hr(),hr(),hr()];for(e||gr(n,32),Q(o,n,32),o[0]&=248,o[31]&=127,o[31]|=64,er(i,o),rr(r,i),t=0;32>t;t++)n[t+32]=r[t];return 0}function or(r,n){var e,t,o,i;for(t=63;t>=32;--t){for(e=0,o=t-32,i=t-12;i>o;++o)n[o]+=e-16*n[t]*kr[o-(t-32)],e=n[o]+128>>8,n[o]-=256*e;n[o]+=e,n[t]=0}for(e=0,o=0;32>o;o++)n[o]+=e-(n[31]>>4)*kr[o],e=n[o]>>8,n[o]&=255;for(o=0;32>o;o++)n[o]-=e*kr[o];for(t=0;32>t;t++)n[t+1]+=n[t]>>8,r[t]=255&n[t]}function ir(r){var n,e=new Float64Array(64);for(n=0;64>n;n++)e[n]=r[n];for(n=0;64>n;n++)r[n]=0;or(r,e)}function ar(r,n,e,t){var o,i,a=new Uint8Array(64),f=new Uint8Array(64),u=new Uint8Array(64),c=new Float64Array(64),w=[hr(),hr(),hr(),hr()];Q(a,t,32),a[0]&=248,a[31]&=127,a[31]|=64;var y=e+64;for(o=0;e>o;o++)r[64+o]=n[o];for(o=0;32>o;o++)r[32+o]=a[32+o];for(Q(u,r.subarray(32),e+32),ir(u),er(w,u),rr(r,w),o=32;64>o;o++)r[o]=t[o];for(Q(f,r,e+64),ir(f),o=0;64>o;o++)c[o]=0;for(o=0;32>o;o++)c[o]=u[o];for(o=0;32>o;o++)for(i=0;32>i;i++)c[o+i]+=f[o]*a[i];return or(r.subarray(32),c),y}function fr(r,n){var e=hr(),t=hr(),o=hr(),i=hr(),a=hr(),f=hr(),u=hr();return U(r[2],_r),S(r[1],n),L(o,r[1]),Y(i,o,Ur),T(o,o,r[2]),K(i,r[2],i),L(a,i),L(f,a),Y(u,f,a),Y(e,u,o),Y(e,e,i),z(e,e),Y(e,e,o),Y(e,e,i),Y(e,e,i),Y(r[0],e,i),L(t,r[0]),Y(t,t,i),m(t,o)&&Y(r[0],r[0],mr),L(t,r[0]),Y(t,t,i),m(t,o)?-1:(B(r[0])===n[31]>>7&&T(r[0],pr,r[0]),Y(r[3],r[0],r[1]),0)}function ur(r,n,e,t){var o,i,a=new Uint8Array(32),f=new Uint8Array(64),c=[hr(),hr(),hr(),hr()],w=[hr(),hr(),hr(),hr()];if(i=-1,64>e)return-1;if(fr(w,t))return-1;for(o=0;e>o;o++)r[o]=n[o];for(o=0;32>o;o++)r[o+32]=t[o];if(Q(f,r,e),ir(f),nr(c,w,f),er(w,n.subarray(32)),W(c,w),rr(a,c),e-=64,u(n,0,a,0)){for(o=0;e>o;o++)r[o]=0;return-1}for(o=0;e>o;o++)r[o]=n[o+64];return i=e}function cr(r,n){if(r.length!==zr)throw new Error("bad key size");if(n.length!==Rr)throw new Error("bad nonce size")}function wr(r,n){if(r.length!==Cr)throw new Error("bad public key size");if(n.length!==Mr)throw new Error("bad secret key size")}function yr(){var r,n;for(n=0;nt)return null;for(var o=new Uint8Array(t),i=0;it;t++)o[t]=n[t];for(t=0;t=0},r.sign.keyPair=function(){var r=new Uint8Array(Vr),n=new Uint8Array(Xr);return tr(r,n),{publicKey:r,secretKey:n}},r.sign.keyPair.fromSecretKey=function(r){if(yr(r),r.length!==Xr)throw new Error("bad secret key size");for(var n=new Uint8Array(Vr),e=0;et;t++)e[t]=r[t];return tr(n,e,!0),{publicKey:n,secretKey:e}},r.sign.publicKeyLength=Vr,r.sign.secretKeyLength=Xr,r.sign.seedLength=Dr,r.sign.signatureLength=Ir,r.hash=function(r){yr(r);var n=new Uint8Array(Hr);return Q(n,r,r.length),n},r.hash.hashLength=Hr,r.verify=function(r,n){return yr(r,n),0===r.length||0===n.length?!1:r.length!==n.length?!1:0===a(r,0,n,0,r.length)?!0:!1},r.setPRNG=function(r){gr=r},function(){var n="undefined"!=typeof self?self.crypto||self.msCrypto:null;if(n&&n.getRandomValues){var e=65536;r.setPRNG(function(r,t){var o,i=new Uint8Array(t);for(o=0;t>o;o+=e)n.getRandomValues(i.subarray(o,o+Math.min(t-o,e)));for(o=0;t>o;o++)r[o]=i[o];sr(i)})}else"undefined"!=typeof require&&(n=require("crypto"),n&&n.randomBytes&&r.setPRNG(function(r,e){var t,o=n.randomBytes(e);for(t=0;e>t;t++)r[t]=o[t];sr(o)}))}()}("undefined"!=typeof module&&module.exports?module.exports:self.nacl=self.nacl||{}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json deleted file mode 100644 index 0903b54c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "_args": [ - [ - "tweetnacl@>=0.13.0 <1.0.0", - "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk" - ] - ], - "_from": "tweetnacl@>=0.13.0 <1.0.0", - "_id": "tweetnacl@0.14.3", - "_inCache": true, - "_installable": true, - "_location": "/request/http-signature/sshpk/tweetnacl", - "_nodeVersion": "5.6.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/tweetnacl-0.14.3.tgz_1459224951636_0.7403244483284652" - }, - "_npmUser": { - "email": "dmitry@codingrobots.com", - "name": "dchest" - }, - "_npmVersion": "3.7.3", - "_phantomChildren": {}, - "_requested": { - "name": "tweetnacl", - "raw": "tweetnacl@>=0.13.0 <1.0.0", - "rawSpec": ">=0.13.0 <1.0.0", - "scope": null, - "spec": ">=0.13.0 <1.0.0", - "type": "range" - }, - "_requiredBy": [ - "/request/http-signature/sshpk" - ], - "_resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz", - "_shasum": "3da382f670f25ded78d7b3d1792119bca0b7132d", - "_shrinkwrap": null, - "_spec": "tweetnacl@>=0.13.0 <1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk", - "author": { - "name": "TweetNaCl-js contributors" - }, - "browser": { - "buffer": false, - "crypto": false - }, - "bugs": { - "url": "https://github.com/dchest/tweetnacl-js/issues" - }, - "dependencies": {}, - "description": "Port of TweetNaCl cryptographic library to JavaScript", - "devDependencies": { - "browserify": "^13.0.0", - "eslint": "^2.2.0", - "faucet": "^0.0.1", - "tap-browser-color": "^0.1.2", - "tape": "^4.4.0", - "tape-run": "^2.1.3", - "tweetnacl-util": "^0.13.3", - "uglify-js": "^2.6.1" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "3da382f670f25ded78d7b3d1792119bca0b7132d", - "tarball": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz" - }, - "gitHead": "3eb4fc544a2a1d6c0a41b98b9906288ca8b087e4", - "homepage": "https://tweetnacl.js.org", - "keywords": [ - "crypto", - "cryptography", - "curve25519", - "ed25519", - "encrypt", - "hash", - "key", - "nacl", - "poly1305", - "public", - "salsa20", - "signatures" - ], - "license": "SEE LICENSE IN COPYING.txt", - "main": "nacl-fast.js", - "maintainers": [ - { - "email": "dmitry@codingrobots.com", - "name": "dchest" - } - ], - "name": "tweetnacl", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/dchest/tweetnacl-js.git" - }, - "scripts": { - "bench": "node test/benchmark/bench.js", - "build": "uglifyjs nacl.js -c -m -o nacl.min.js && uglifyjs nacl-fast.js -c -m -o nacl-fast.min.js", - "build-test-browser": "browserify test/browser/init.js test/*.js | uglifyjs -c -m -o test/browser/_bundle.js 2>/dev/null && browserify test/browser/init.js test/*.quick.js | uglifyjs -c -m -o test/browser/_bundle-quick.js 2>/dev/null", - "lint": "eslint nacl.js nacl-fast.js test/*.js test/benchmark/*.js", - "test": "npm run test-node-all && npm run test-browser", - "test-browser": "NACL_SRC=${NACL_SRC:='nacl.min.js'} && npm run build-test-browser && cat $NACL_SRC test/browser/_bundle.js | tape-run | faucet", - "test-node": "tape test/*.js | faucet", - "test-node-all": "make -C test/c && tape test/*.js test/c/*.js | faucet" - }, - "version": "0.14.3" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json deleted file mode 100644 index fc995b42..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "_args": [ - [ - "sshpk@^1.7.0", - "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature" - ] - ], - "_from": "sshpk@>=1.7.0 <2.0.0", - "_id": "sshpk@1.7.4", - "_inCache": true, - "_installable": true, - "_location": "/request/http-signature/sshpk", - "_nodeVersion": "0.12.9", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/sshpk-1.7.4.tgz_1455236064846_0.4782760036177933" - }, - "_npmUser": { - "email": "alex@cooperi.net", - "name": "arekinath" - }, - "_npmVersion": "2.14.4", - "_phantomChildren": {}, - "_requested": { - "name": "sshpk", - "raw": "sshpk@^1.7.0", - "rawSpec": "^1.7.0", - "scope": null, - "spec": ">=1.7.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/request/http-signature" - ], - "_resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz", - "_shasum": "ad7b47defca61c8415d964243b62b0ce60fbca38", - "_shrinkwrap": null, - "_spec": "sshpk@^1.7.0", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature", - "author": { - "name": "Joyent, Inc" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "bugs": { - "url": "https://github.com/arekinath/node-sshpk/issues" - }, - "contributors": [ - { - "email": "dave@daveeddy.com", - "name": "Dave Eddy" - }, - { - "email": "mcavage@gmail.com", - "name": "Mark Cavage" - }, - { - "email": "alex@cooperi.net", - "name": "Alex Wilson" - } - ], - "dependencies": { - "asn1": ">=0.2.3 <0.3.0", - "assert-plus": ">=0.2.0 <0.3.0", - "dashdash": ">=1.10.1 <2.0.0", - "ecc-jsbn": ">=0.0.1 <1.0.0", - "jodid25519": ">=1.0.0 <2.0.0", - "jsbn": ">=0.1.0 <0.2.0", - "tweetnacl": ">=0.13.0 <1.0.0" - }, - "description": "A library for finding and using SSH public keys", - "devDependencies": { - "benchmark": ">=1.0.0 <2.0.0", - "sinon": ">=1.17.2 <2.0.0", - "tape": ">=3.5.0 <4.0.0", - "temp": "0.8.2" - }, - "directories": { - "bin": "./bin", - "lib": "./lib", - "man": "./man/man1" - }, - "dist": { - "shasum": "ad7b47defca61c8415d964243b62b0ce60fbca38", - "tarball": "http://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz" - }, - "engines": { - "node": ">=0.8.0" - }, - "gitHead": "9b86d45d512c97f6ea10b98a2970828dfb290310", - "homepage": "https://github.com/arekinath/node-sshpk#readme", - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "email": "alex@cooperi.net", - "name": "arekinath" - } - ], - "man": [ - "/Users/alex.wilson/dev/sshpk/man/man1/sshpk-conv.1", - "/Users/alex.wilson/dev/sshpk/man/man1/sshpk-sign.1", - "/Users/alex.wilson/dev/sshpk/man/man1/sshpk-verify.1" - ], - "name": "sshpk", - "optionalDependencies": { - "ecc-jsbn": ">=0.0.1 <1.0.0", - "jodid25519": ">=1.0.0 <2.0.0", - "jsbn": ">=0.1.0 <0.2.0", - "tweetnacl": ">=0.13.0 <1.0.0" - }, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/arekinath/node-sshpk.git" - }, - "scripts": { - "test": "tape test/*.js" - }, - "version": "1.7.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/package.json deleted file mode 100644 index c7479c09..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/http-signature/package.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "_args": [ - [ - "http-signature@~1.1.0", - "/Users/rebecca/code/npm/node_modules/request" - ] - ], - "_from": "http-signature@>=1.1.0 <1.2.0", - "_id": "http-signature@1.1.1", - "_inCache": true, - "_installable": true, - "_location": "/request/http-signature", - "_nodeVersion": "0.12.9", - "_npmUser": { - "email": "alex@cooperi.net", - "name": "arekinath" - }, - "_npmVersion": "2.14.9", - "_phantomChildren": {}, - "_requested": { - "name": "http-signature", - "raw": "http-signature@~1.1.0", - "rawSpec": "~1.1.0", - "scope": null, - "spec": ">=1.1.0 <1.2.0", - "type": "range" - }, - "_requiredBy": [ - "/request" - ], - "_resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "_shasum": "df72e267066cd0ac67fb76adf8e134a8fbcf91bf", - "_shrinkwrap": null, - "_spec": "http-signature@~1.1.0", - "_where": "/Users/rebecca/code/npm/node_modules/request", - "author": { - "name": "Joyent, Inc" - }, - "bugs": { - "url": "https://github.com/joyent/node-http-signature/issues" - }, - "contributors": [ - { - "name": "Mark Cavage", - "email": "mcavage@gmail.com" - }, - { - "name": "David I. Lehn", - "email": "dil@lehn.org" - }, - { - "name": "Patrick Mooney", - "email": "patrick.f.mooney@gmail.com" - } - ], - "dependencies": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "description": "Reference implementation of Joyent's HTTP Signature scheme.", - "devDependencies": { - "node-uuid": "^1.4.1", - "tap": "0.4.2" - }, - "directories": {}, - "dist": { - "shasum": "df72e267066cd0ac67fb76adf8e134a8fbcf91bf", - "tarball": "http://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - }, - "gitHead": "74d3f35e3aa436d83723c53b01e266f448e8149a", - "homepage": "https://github.com/joyent/node-http-signature/", - "keywords": [ - "https", - "request" - ], - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "arekinath", - "email": "alex@cooperi.net" - }, - { - "name": "mcavage", - "email": "mcavage@gmail.com" - }, - { - "name": "pfmooney", - "email": "patrick.f.mooney@gmail.com" - } - ], - "name": "http-signature", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/joyent/node-http-signature.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.1.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/LICENSE.md deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/LICENSE.md +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/README.md deleted file mode 100644 index 27528639..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# is-typedarray [![locked](http://badges.github.io/stability-badges/dist/locked.svg)](http://github.com/badges/stability-badges) - -Detect whether or not an object is a -[Typed Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays). - -## Usage - -[![NPM](https://nodei.co/npm/is-typedarray.png)](https://nodei.co/npm/is-typedarray/) - -### isTypedArray(array) - -Returns `true` when array is a Typed Array, and `false` when it is not. - -## License - -MIT. See [LICENSE.md](http://github.com/hughsk/is-typedarray/blob/master/LICENSE.md) for details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/index.js deleted file mode 100644 index 58596036..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/index.js +++ /dev/null @@ -1,41 +0,0 @@ -module.exports = isTypedArray -isTypedArray.strict = isStrictTypedArray -isTypedArray.loose = isLooseTypedArray - -var toString = Object.prototype.toString -var names = { - '[object Int8Array]': true - , '[object Int16Array]': true - , '[object Int32Array]': true - , '[object Uint8Array]': true - , '[object Uint8ClampedArray]': true - , '[object Uint16Array]': true - , '[object Uint32Array]': true - , '[object Float32Array]': true - , '[object Float64Array]': true -} - -function isTypedArray(arr) { - return ( - isStrictTypedArray(arr) - || isLooseTypedArray(arr) - ) -} - -function isStrictTypedArray(arr) { - return ( - arr instanceof Int8Array - || arr instanceof Int16Array - || arr instanceof Int32Array - || arr instanceof Uint8Array - || arr instanceof Uint8ClampedArray - || arr instanceof Uint16Array - || arr instanceof Uint32Array - || arr instanceof Float32Array - || arr instanceof Float64Array - ) -} - -function isLooseTypedArray(arr) { - return names[toString.call(arr)] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/package.json deleted file mode 100644 index 863afc51..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "_args": [ - [ - "is-typedarray@~1.0.0", - "/Users/ogd/Documents/projects/npm/npm/node_modules/request" - ] - ], - "_from": "is-typedarray@>=1.0.0 <1.1.0", - "_id": "is-typedarray@1.0.0", - "_inCache": true, - "_installable": true, - "_location": "/request/is-typedarray", - "_nodeVersion": "0.10.36", - "_npmUser": { - "email": "hughskennedy@gmail.com", - "name": "hughsk" - }, - "_npmVersion": "2.7.5", - "_phantomChildren": {}, - "_requested": { - "name": "is-typedarray", - "raw": "is-typedarray@~1.0.0", - "rawSpec": "~1.0.0", - "scope": null, - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/request" - ], - "_resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "_shasum": "e479c80858df0c1b11ddda6940f96011fcda4a9a", - "_shrinkwrap": null, - "_spec": "is-typedarray@~1.0.0", - "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/request", - "author": { - "email": "hughskennedy@gmail.com", - "name": "Hugh Kennedy", - "url": "http://hughsk.io/" - }, - "bugs": { - "url": "https://github.com/hughsk/is-typedarray/issues" - }, - "dependencies": {}, - "description": "Detect whether or not an object is a Typed Array", - "devDependencies": { - "tape": "^2.13.1" - }, - "directories": {}, - "dist": { - "shasum": "e479c80858df0c1b11ddda6940f96011fcda4a9a", - "tarball": "http://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - }, - "gitHead": "0617cfa871686cf541af62b144f130488f44f6fe", - "homepage": "https://github.com/hughsk/is-typedarray", - "keywords": [ - "array", - "detect", - "is", - "typed", - "util" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "name": "hughsk", - "email": "hughskennedy@gmail.com" - } - ], - "name": "is-typedarray", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/hughsk/is-typedarray.git" - }, - "scripts": { - "test": "node test" - }, - "version": "1.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/test.js deleted file mode 100644 index b0c176fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/is-typedarray/test.js +++ /dev/null @@ -1,34 +0,0 @@ -var test = require('tape') -var ista = require('./') - -test('strict', function(t) { - t.ok(ista.strict(new Int8Array), 'Int8Array') - t.ok(ista.strict(new Int16Array), 'Int16Array') - t.ok(ista.strict(new Int32Array), 'Int32Array') - t.ok(ista.strict(new Uint8Array), 'Uint8Array') - t.ok(ista.strict(new Uint16Array), 'Uint16Array') - t.ok(ista.strict(new Uint32Array), 'Uint32Array') - t.ok(ista.strict(new Float32Array), 'Float32Array') - t.ok(ista.strict(new Float64Array), 'Float64Array') - - t.ok(!ista.strict(new Array), 'Array') - t.ok(!ista.strict([]), '[]') - - t.end() -}) - -test('loose', function(t) { - t.ok(ista.loose(new Int8Array), 'Int8Array') - t.ok(ista.loose(new Int16Array), 'Int16Array') - t.ok(ista.loose(new Int32Array), 'Int32Array') - t.ok(ista.loose(new Uint8Array), 'Uint8Array') - t.ok(ista.loose(new Uint16Array), 'Uint16Array') - t.ok(ista.loose(new Uint32Array), 'Uint32Array') - t.ok(ista.loose(new Float32Array), 'Float32Array') - t.ok(ista.loose(new Float64Array), 'Float64Array') - - t.ok(!ista.loose(new Array), 'Array') - t.ok(!ista.loose([]), '[]') - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/.npmignore deleted file mode 100644 index aa1ec1ea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/.npmignore +++ /dev/null @@ -1 +0,0 @@ -*.tgz diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/.travis.yml deleted file mode 100644 index 1fec2ab9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.11" -branches: - only: - - master -notifications: - email: - - rod@vagg.org -script: npm test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/LICENSE.md deleted file mode 100644 index 43f7153f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/LICENSE.md +++ /dev/null @@ -1,11 +0,0 @@ -The MIT License (MIT) -===================== - -Copyright (c) 2015 Rod Vagg ---------------------------- - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/README.md deleted file mode 100644 index 06770e82..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# isStream - -[![Build Status](https://secure.travis-ci.org/rvagg/isstream.png)](http://travis-ci.org/rvagg/isstream) - -**Test if an object is a `Stream`** - -[![NPM](https://nodei.co/npm/isstream.svg)](https://nodei.co/npm/isstream/) - -The missing `Stream.isStream(obj)`: determine if an object is standard Node.js `Stream`. Works for Node-core `Stream` objects (for 0.8, 0.10, 0.11, and in theory, older and newer versions) and all versions of **[readable-stream](https://github.com/isaacs/readable-stream)**. - -## Usage: - -```js -var isStream = require('isstream') -var Stream = require('stream') - -isStream(new Stream()) // true - -isStream({}) // false - -isStream(new Stream.Readable()) // true -isStream(new Stream.Writable()) // true -isStream(new Stream.Duplex()) // true -isStream(new Stream.Transform()) // true -isStream(new Stream.PassThrough()) // true -``` - -## But wait! There's more! - -You can also test for `isReadable(obj)`, `isWritable(obj)` and `isDuplex(obj)` to test for implementations of Streams2 (and Streams3) base classes. - -```js -var isReadable = require('isstream').isReadable -var isWritable = require('isstream').isWritable -var isDuplex = require('isstream').isDuplex -var Stream = require('stream') - -isReadable(new Stream()) // false -isWritable(new Stream()) // false -isDuplex(new Stream()) // false - -isReadable(new Stream.Readable()) // true -isReadable(new Stream.Writable()) // false -isReadable(new Stream.Duplex()) // true -isReadable(new Stream.Transform()) // true -isReadable(new Stream.PassThrough()) // true - -isWritable(new Stream.Readable()) // false -isWritable(new Stream.Writable()) // true -isWritable(new Stream.Duplex()) // true -isWritable(new Stream.Transform()) // true -isWritable(new Stream.PassThrough()) // true - -isDuplex(new Stream.Readable()) // false -isDuplex(new Stream.Writable()) // false -isDuplex(new Stream.Duplex()) // true -isDuplex(new Stream.Transform()) // true -isDuplex(new Stream.PassThrough()) // true -``` - -*Reminder: when implementing your own streams, please [use **readable-stream** rather than core streams](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html).* - - -## License - -**isStream** is Copyright (c) 2015 Rod Vagg [@rvagg](https://twitter.com/rvagg) and licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md file for more details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/isstream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/isstream.js deleted file mode 100644 index a1d104a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/isstream.js +++ /dev/null @@ -1,27 +0,0 @@ -var stream = require('stream') - - -function isStream (obj) { - return obj instanceof stream.Stream -} - - -function isReadable (obj) { - return isStream(obj) && typeof obj._read == 'function' && typeof obj._readableState == 'object' -} - - -function isWritable (obj) { - return isStream(obj) && typeof obj._write == 'function' && typeof obj._writableState == 'object' -} - - -function isDuplex (obj) { - return isReadable(obj) && isWritable(obj) -} - - -module.exports = isStream -module.exports.isReadable = isReadable -module.exports.isWritable = isWritable -module.exports.isDuplex = isDuplex diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/package.json deleted file mode 100644 index 87c26fe1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "isstream", - "version": "0.1.2", - "description": "Determine if an object is a Stream", - "main": "isstream.js", - "scripts": { - "test": "tar --xform 's/^package/readable-stream-1.0/' -zxf readable-stream-1.0.*.tgz && tar --xform 's/^package/readable-stream-1.1/' -zxf readable-stream-1.1.*.tgz && node test.js; rm -rf readable-stream-1.?/" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/rvagg/isstream.git" - }, - "keywords": [ - "stream", - "type", - "streams", - "readable-stream", - "hippo" - ], - "devDependencies": { - "tape": "~2.12.3", - "core-util-is": "~1.0.0", - "isarray": "0.0.1", - "string_decoder": "~0.10.x", - "inherits": "~2.0.1" - }, - "author": { - "name": "Rod Vagg", - "email": "rod@vagg.org" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/rvagg/isstream/issues" - }, - "homepage": "https://github.com/rvagg/isstream", - "readme": "# isStream\n\n[![Build Status](https://secure.travis-ci.org/rvagg/isstream.png)](http://travis-ci.org/rvagg/isstream)\n\n**Test if an object is a `Stream`**\n\n[![NPM](https://nodei.co/npm/isstream.svg)](https://nodei.co/npm/isstream/)\n\nThe missing `Stream.isStream(obj)`: determine if an object is standard Node.js `Stream`. Works for Node-core `Stream` objects (for 0.8, 0.10, 0.11, and in theory, older and newer versions) and all versions of **[readable-stream](https://github.com/isaacs/readable-stream)**.\n\n## Usage:\n\n```js\nvar isStream = require('isstream')\nvar Stream = require('stream')\n\nisStream(new Stream()) // true\n\nisStream({}) // false\n\nisStream(new Stream.Readable()) // true\nisStream(new Stream.Writable()) // true\nisStream(new Stream.Duplex()) // true\nisStream(new Stream.Transform()) // true\nisStream(new Stream.PassThrough()) // true\n```\n\n## But wait! There's more!\n\nYou can also test for `isReadable(obj)`, `isWritable(obj)` and `isDuplex(obj)` to test for implementations of Streams2 (and Streams3) base classes.\n\n```js\nvar isReadable = require('isstream').isReadable\nvar isWritable = require('isstream').isWritable\nvar isDuplex = require('isstream').isDuplex\nvar Stream = require('stream')\n\nisReadable(new Stream()) // false\nisWritable(new Stream()) // false\nisDuplex(new Stream()) // false\n\nisReadable(new Stream.Readable()) // true\nisReadable(new Stream.Writable()) // false\nisReadable(new Stream.Duplex()) // true\nisReadable(new Stream.Transform()) // true\nisReadable(new Stream.PassThrough()) // true\n\nisWritable(new Stream.Readable()) // false\nisWritable(new Stream.Writable()) // true\nisWritable(new Stream.Duplex()) // true\nisWritable(new Stream.Transform()) // true\nisWritable(new Stream.PassThrough()) // true\n\nisDuplex(new Stream.Readable()) // false\nisDuplex(new Stream.Writable()) // false\nisDuplex(new Stream.Duplex()) // true\nisDuplex(new Stream.Transform()) // true\nisDuplex(new Stream.PassThrough()) // true\n```\n\n*Reminder: when implementing your own streams, please [use **readable-stream** rather than core streams](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html).*\n\n\n## License\n\n**isStream** is Copyright (c) 2015 Rod Vagg [@rvagg](https://twitter.com/rvagg) and licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md file for more details.\n", - "readmeFilename": "README.md", - "_id": "isstream@0.1.2", - "_shasum": "47e63f7af55afa6f92e1500e690eb8b8529c099a", - "_resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "_from": "isstream@>=0.1.2 <0.2.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/test.js deleted file mode 100644 index 8c950c55..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/isstream/test.js +++ /dev/null @@ -1,168 +0,0 @@ -var tape = require('tape') - , EE = require('events').EventEmitter - , util = require('util') - - - , isStream = require('./') - , isReadable = require('./').isReadable - , isWritable = require('./').isWritable - , isDuplex = require('./').isDuplex - - , CoreStreams = require('stream') - , ReadableStream10 = require('./readable-stream-1.0/') - , ReadableStream11 = require('./readable-stream-1.1/') - - -function test (pass, type, stream) { - tape('isStream(' + type + ')', function (t) { - t.plan(1) - t.ok(pass === isStream(stream), type) - }) -} - - -function testReadable (pass, type, stream) { - tape('isReadable(' + type + ')', function (t) { - t.plan(1) - t.ok(pass === isReadable(stream), type) - }) -} - - -function testWritable (pass, type, stream) { - tape('isWritable(' + type + ')', function (t) { - t.plan(1) - t.ok(pass === isWritable(stream), type) - }) -} - - -function testDuplex (pass, type, stream) { - tape('isDuplex(' + type + ')', function (t) { - t.plan(1) - t.ok(pass === isDuplex(stream), type) - }) -} - - -[ undefined, null, '', true, false, 0, 1, 1.0, 'string', {}, function foo () {} ].forEach(function (o) { - test(false, 'non-stream / primitive: ' + (JSON.stringify(o) || (o && o.toString()) || o), o) -}) - - -test(false, 'fake stream obj', { pipe: function () {} }) - - -;(function () { - - // looks like a stream! - - function Stream () { - EE.call(this) - } - util.inherits(Stream, EE) - Stream.prototype.pipe = function () {} - Stream.Stream = Stream - - test(false, 'fake stream "new Stream()"', new Stream()) - -}()) - - -test(true, 'CoreStreams.Stream', new (CoreStreams.Stream)()) -test(true, 'CoreStreams.Readable', new (CoreStreams.Readable)()) -test(true, 'CoreStreams.Writable', new (CoreStreams.Writable)()) -test(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)()) -test(true, 'CoreStreams.Transform', new (CoreStreams.Transform)()) -test(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)()) - -test(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)()) -test(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)()) -test(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)()) -test(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)()) -test(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)()) - -test(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)()) -test(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)()) -test(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)()) -test(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)()) -test(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)()) - - -testReadable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)()) -testReadable(true, 'CoreStreams.Readable', new (CoreStreams.Readable)()) -testReadable(false, 'CoreStreams.Writable', new (CoreStreams.Writable)()) -testReadable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)()) -testReadable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)()) -testReadable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)()) - -testReadable(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)()) -testReadable(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)()) -testReadable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)()) -testReadable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)()) -testReadable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)()) - -testReadable(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)()) -testReadable(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)()) -testReadable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)()) -testReadable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)()) -testReadable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)()) - - -testWritable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)()) -testWritable(false, 'CoreStreams.Readable', new (CoreStreams.Readable)()) -testWritable(true, 'CoreStreams.Writable', new (CoreStreams.Writable)()) -testWritable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)()) -testWritable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)()) -testWritable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)()) - -testWritable(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)()) -testWritable(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)()) -testWritable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)()) -testWritable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)()) -testWritable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)()) - -testWritable(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)()) -testWritable(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)()) -testWritable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)()) -testWritable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)()) -testWritable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)()) - - -testDuplex(false, 'CoreStreams.Stream', new (CoreStreams.Stream)()) -testDuplex(false, 'CoreStreams.Readable', new (CoreStreams.Readable)()) -testDuplex(false, 'CoreStreams.Writable', new (CoreStreams.Writable)()) -testDuplex(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)()) -testDuplex(true, 'CoreStreams.Transform', new (CoreStreams.Transform)()) -testDuplex(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)()) - -testDuplex(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)()) -testDuplex(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)()) -testDuplex(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)()) -testDuplex(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)()) -testDuplex(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)()) - -testDuplex(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)()) -testDuplex(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)()) -testDuplex(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)()) -testDuplex(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)()) -testDuplex(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)()) - - -;[ CoreStreams, ReadableStream10, ReadableStream11 ].forEach(function (p) { - [ 'Stream', 'Readable', 'Writable', 'Duplex', 'Transform', 'PassThrough' ].forEach(function (k) { - if (!p[k]) - return - - function SubStream () { - p[k].call(this) - } - util.inherits(SubStream, p[k]) - - test(true, 'Stream subclass: ' + p.name + '.' + k, new SubStream()) - - }) -}) - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/.npmignore deleted file mode 100644 index 17d6b367..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/*.tgz diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md deleted file mode 100644 index 42bcb60a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md +++ /dev/null @@ -1,14 +0,0 @@ -## Unreleased -- Fixes stringify to only take ancestors into account when checking - circularity. - It previously assumed every visited object was circular which led to [false - positives][issue9]. - Uses the tiny serializer I wrote for [Must.js][must] a year and a half ago. -- Fixes calling the `replacer` function in the proper context (`thisArg`). -- Fixes calling the `cycleReplacer` function in the proper context (`thisArg`). -- Speeds serializing by a factor of - Big-O(h-my-god-it-linearly-searched-every-object) it had ever seen. Searching - only the ancestors for a circular references speeds up things considerably. - -[must]: https://github.com/moll/js-must -[issue9]: https://github.com/isaacs/json-stringify-safe/issues/9 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/Makefile deleted file mode 100644 index 36088c72..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -NODE_OPTS = -TEST_OPTS = - -love: - @echo "Feel like makin' love." - -test: - @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R dot $(TEST_OPTS) - -spec: - @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R spec $(TEST_OPTS) - -autotest: - @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R dot --watch $(TEST_OPTS) - -autospec: - @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R spec --watch $(TEST_OPTS) - -pack: - @file=$$(npm pack); echo "$$file"; tar tf "$$file" - -publish: - npm publish - -tag: - git tag "v$$(node -e 'console.log(require("./package").version)')" - -clean: - rm -f *.tgz - npm prune --production - -.PHONY: love -.PHONY: test spec autotest autospec -.PHONY: pack publish tag -.PHONY: clean diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/README.md deleted file mode 100644 index a11f302a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# json-stringify-safe - -Like JSON.stringify, but doesn't throw on circular references. - -## Usage - -Takes the same arguments as `JSON.stringify`. - -```javascript -var stringify = require('json-stringify-safe'); -var circularObj = {}; -circularObj.circularRef = circularObj; -circularObj.list = [ circularObj, circularObj ]; -console.log(stringify(circularObj, null, 2)); -``` - -Output: - -```json -{ - "circularRef": "[Circular]", - "list": [ - "[Circular]", - "[Circular]" - ] -} -``` - -## Details - -``` -stringify(obj, serializer, indent, decycler) -``` - -The first three arguments are the same as to JSON.stringify. The last -is an argument that's only used when the object has been seen already. - -The default `decycler` function returns the string `'[Circular]'`. -If, for example, you pass in `function(k,v){}` (return nothing) then it -will prune cycles. If you pass in `function(k,v){ return {foo: 'bar'}}`, -then cyclical objects will always be represented as `{"foo":"bar"}` in -the result. - -``` -stringify.getSerialize(serializer, decycler) -``` - -Returns a serializer that can be used elsewhere. This is the actual -function that's passed to JSON.stringify. - -**Note** that the function returned from `getSerialize` is stateful for now, so -do **not** use it more than once. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/package.json deleted file mode 100644 index f09f9d57..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "json-stringify-safe", - "version": "5.0.1", - "description": "Like JSON.stringify, but doesn't blow up on circular refs.", - "keywords": [ - "json", - "stringify", - "circular", - "safe" - ], - "homepage": "https://github.com/isaacs/json-stringify-safe", - "bugs": { - "url": "https://github.com/isaacs/json-stringify-safe/issues" - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "contributors": [ - { - "name": "Andri Möll", - "email": "andri@dot.ee", - "url": "http://themoll.com" - } - ], - "license": "ISC", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/json-stringify-safe.git" - }, - "main": "stringify.js", - "scripts": { - "test": "node test.js" - }, - "devDependencies": { - "mocha": ">= 2.1.0 < 3", - "must": ">= 0.12 < 0.13", - "sinon": ">= 1.12.2 < 2" - }, - "readme": "# json-stringify-safe\n\nLike JSON.stringify, but doesn't throw on circular references.\n\n## Usage\n\nTakes the same arguments as `JSON.stringify`.\n\n```javascript\nvar stringify = require('json-stringify-safe');\nvar circularObj = {};\ncircularObj.circularRef = circularObj;\ncircularObj.list = [ circularObj, circularObj ];\nconsole.log(stringify(circularObj, null, 2));\n```\n\nOutput:\n\n```json\n{\n \"circularRef\": \"[Circular]\",\n \"list\": [\n \"[Circular]\",\n \"[Circular]\"\n ]\n}\n```\n\n## Details\n\n```\nstringify(obj, serializer, indent, decycler)\n```\n\nThe first three arguments are the same as to JSON.stringify. The last\nis an argument that's only used when the object has been seen already.\n\nThe default `decycler` function returns the string `'[Circular]'`.\nIf, for example, you pass in `function(k,v){}` (return nothing) then it\nwill prune cycles. If you pass in `function(k,v){ return {foo: 'bar'}}`,\nthen cyclical objects will always be represented as `{\"foo\":\"bar\"}` in\nthe result.\n\n```\nstringify.getSerialize(serializer, decycler)\n```\n\nReturns a serializer that can be used elsewhere. This is the actual\nfunction that's passed to JSON.stringify.\n\n**Note** that the function returned from `getSerialize` is stateful for now, so\ndo **not** use it more than once.\n", - "readmeFilename": "README.md", - "_id": "json-stringify-safe@5.0.1", - "_shasum": "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb", - "_resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "_from": "json-stringify-safe@>=5.0.1 <5.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js deleted file mode 100644 index 124a4521..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js +++ /dev/null @@ -1,27 +0,0 @@ -exports = module.exports = stringify -exports.getSerialize = serializer - -function stringify(obj, replacer, spaces, cycleReplacer) { - return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces) -} - -function serializer(replacer, cycleReplacer) { - var stack = [], keys = [] - - if (cycleReplacer == null) cycleReplacer = function(key, value) { - if (stack[0] === value) return "[Circular ~]" - return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]" - } - - return function(key, value) { - if (stack.length > 0) { - var thisPos = stack.indexOf(this) - ~thisPos ? stack.splice(thisPos + 1) : stack.push(this) - ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key) - if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value) - } - else stack.push(value) - - return replacer == null ? value : replacer.call(this, key, value) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts deleted file mode 100644 index 2544e586..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts +++ /dev/null @@ -1,2 +0,0 @@ ---recursive ---require must diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js deleted file mode 100644 index 5b325831..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js +++ /dev/null @@ -1,246 +0,0 @@ -var Sinon = require("sinon") -var stringify = require("..") -function jsonify(obj) { return JSON.stringify(obj, null, 2) } - -describe("Stringify", function() { - it("must stringify circular objects", function() { - var obj = {name: "Alice"} - obj.self = obj - var json = stringify(obj, null, 2) - json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"})) - }) - - it("must stringify circular objects with intermediaries", function() { - var obj = {name: "Alice"} - obj.identity = {self: obj} - var json = stringify(obj, null, 2) - json.must.eql(jsonify({name: "Alice", identity: {self: "[Circular ~]"}})) - }) - - it("must stringify circular objects deeper", function() { - var obj = {name: "Alice", child: {name: "Bob"}} - obj.child.self = obj.child - - stringify(obj, null, 2).must.eql(jsonify({ - name: "Alice", - child: {name: "Bob", self: "[Circular ~.child]"} - })) - }) - - it("must stringify circular objects deeper with intermediaries", function() { - var obj = {name: "Alice", child: {name: "Bob"}} - obj.child.identity = {self: obj.child} - - stringify(obj, null, 2).must.eql(jsonify({ - name: "Alice", - child: {name: "Bob", identity: {self: "[Circular ~.child]"}} - })) - }) - - it("must stringify circular objects in an array", function() { - var obj = {name: "Alice"} - obj.self = [obj, obj] - - stringify(obj, null, 2).must.eql(jsonify({ - name: "Alice", self: ["[Circular ~]", "[Circular ~]"] - })) - }) - - it("must stringify circular objects deeper in an array", function() { - var obj = {name: "Alice", children: [{name: "Bob"}, {name: "Eve"}]} - obj.children[0].self = obj.children[0] - obj.children[1].self = obj.children[1] - - stringify(obj, null, 2).must.eql(jsonify({ - name: "Alice", - children: [ - {name: "Bob", self: "[Circular ~.children.0]"}, - {name: "Eve", self: "[Circular ~.children.1]"} - ] - })) - }) - - it("must stringify circular arrays", function() { - var obj = [] - obj.push(obj) - obj.push(obj) - var json = stringify(obj, null, 2) - json.must.eql(jsonify(["[Circular ~]", "[Circular ~]"])) - }) - - it("must stringify circular arrays with intermediaries", function() { - var obj = [] - obj.push({name: "Alice", self: obj}) - obj.push({name: "Bob", self: obj}) - - stringify(obj, null, 2).must.eql(jsonify([ - {name: "Alice", self: "[Circular ~]"}, - {name: "Bob", self: "[Circular ~]"} - ])) - }) - - it("must stringify repeated objects in objects", function() { - var obj = {} - var alice = {name: "Alice"} - obj.alice1 = alice - obj.alice2 = alice - - stringify(obj, null, 2).must.eql(jsonify({ - alice1: {name: "Alice"}, - alice2: {name: "Alice"} - })) - }) - - it("must stringify repeated objects in arrays", function() { - var alice = {name: "Alice"} - var obj = [alice, alice] - var json = stringify(obj, null, 2) - json.must.eql(jsonify([{name: "Alice"}, {name: "Alice"}])) - }) - - it("must call given decycler and use its output", function() { - var obj = {} - obj.a = obj - obj.b = obj - - var decycle = Sinon.spy(function() { return decycle.callCount }) - var json = stringify(obj, null, 2, decycle) - json.must.eql(jsonify({a: 1, b: 2}, null, 2)) - - decycle.callCount.must.equal(2) - decycle.thisValues[0].must.equal(obj) - decycle.args[0][0].must.equal("a") - decycle.args[0][1].must.equal(obj) - decycle.thisValues[1].must.equal(obj) - decycle.args[1][0].must.equal("b") - decycle.args[1][1].must.equal(obj) - }) - - it("must call replacer and use its output", function() { - var obj = {name: "Alice", child: {name: "Bob"}} - - var replacer = Sinon.spy(bangString) - var json = stringify(obj, replacer, 2) - json.must.eql(jsonify({name: "Alice!", child: {name: "Bob!"}})) - - replacer.callCount.must.equal(4) - replacer.args[0][0].must.equal("") - replacer.args[0][1].must.equal(obj) - replacer.thisValues[1].must.equal(obj) - replacer.args[1][0].must.equal("name") - replacer.args[1][1].must.equal("Alice") - replacer.thisValues[2].must.equal(obj) - replacer.args[2][0].must.equal("child") - replacer.args[2][1].must.equal(obj.child) - replacer.thisValues[3].must.equal(obj.child) - replacer.args[3][0].must.equal("name") - replacer.args[3][1].must.equal("Bob") - }) - - it("must call replacer after describing circular references", function() { - var obj = {name: "Alice"} - obj.self = obj - - var replacer = Sinon.spy(bangString) - var json = stringify(obj, replacer, 2) - json.must.eql(jsonify({name: "Alice!", self: "[Circular ~]!"})) - - replacer.callCount.must.equal(3) - replacer.args[0][0].must.equal("") - replacer.args[0][1].must.equal(obj) - replacer.thisValues[1].must.equal(obj) - replacer.args[1][0].must.equal("name") - replacer.args[1][1].must.equal("Alice") - replacer.thisValues[2].must.equal(obj) - replacer.args[2][0].must.equal("self") - replacer.args[2][1].must.equal("[Circular ~]") - }) - - it("must call given decycler and use its output for nested objects", - function() { - var obj = {} - obj.a = obj - obj.b = {self: obj} - - var decycle = Sinon.spy(function() { return decycle.callCount }) - var json = stringify(obj, null, 2, decycle) - json.must.eql(jsonify({a: 1, b: {self: 2}})) - - decycle.callCount.must.equal(2) - decycle.args[0][0].must.equal("a") - decycle.args[0][1].must.equal(obj) - decycle.args[1][0].must.equal("self") - decycle.args[1][1].must.equal(obj) - }) - - it("must use decycler's output when it returned null", function() { - var obj = {a: "b"} - obj.self = obj - obj.selves = [obj, obj] - - function decycle() { return null } - stringify(obj, null, 2, decycle).must.eql(jsonify({ - a: "b", - self: null, - selves: [null, null] - })) - }) - - it("must use decycler's output when it returned undefined", function() { - var obj = {a: "b"} - obj.self = obj - obj.selves = [obj, obj] - - function decycle() {} - stringify(obj, null, 2, decycle).must.eql(jsonify({ - a: "b", - selves: [null, null] - })) - }) - - it("must throw given a decycler that returns a cycle", function() { - var obj = {} - obj.self = obj - var err - function identity(key, value) { return value } - try { stringify(obj, null, 2, identity) } catch (ex) { err = ex } - err.must.be.an.instanceof(TypeError) - }) - - describe(".getSerialize", function() { - it("must stringify circular objects", function() { - var obj = {a: "b"} - obj.circularRef = obj - obj.list = [obj, obj] - - var json = JSON.stringify(obj, stringify.getSerialize(), 2) - json.must.eql(jsonify({ - "a": "b", - "circularRef": "[Circular ~]", - "list": ["[Circular ~]", "[Circular ~]"] - })) - }) - - // This is the behavior as of Mar 3, 2015. - // The serializer function keeps state inside the returned function and - // so far I'm not sure how to not do that. JSON.stringify's replacer is not - // called _after_ serialization. - xit("must return a function that could be called twice", function() { - var obj = {name: "Alice"} - obj.self = obj - - var json - var serializer = stringify.getSerialize() - - json = JSON.stringify(obj, serializer, 2) - json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"})) - - json = JSON.stringify(obj, serializer, 2) - json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"})) - }) - }) -}) - -function bangString(key, value) { - return typeof value == "string" ? value + "!" : value -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/HISTORY.md deleted file mode 100644 index 1d86a5cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/HISTORY.md +++ /dev/null @@ -1,191 +0,0 @@ -2.1.10 / 2016-02-15 -=================== - - * deps: mime-db@~1.22.0 - - Add new mime types - - Fix extension of `application/dash+xml` - - Update primary extension for `audio/mp4` - -2.1.9 / 2016-01-06 -================== - - * deps: mime-db@~1.21.0 - - Add new mime types - -2.1.8 / 2015-11-30 -================== - - * deps: mime-db@~1.20.0 - - Add new mime types - -2.1.7 / 2015-09-20 -================== - - * deps: mime-db@~1.19.0 - - Add new mime types - -2.1.6 / 2015-09-03 -================== - - * deps: mime-db@~1.18.0 - - Add new mime types - -2.1.5 / 2015-08-20 -================== - - * deps: mime-db@~1.17.0 - - Add new mime types - -2.1.4 / 2015-07-30 -================== - - * deps: mime-db@~1.16.0 - - Add new mime types - -2.1.3 / 2015-07-13 -================== - - * deps: mime-db@~1.15.0 - - Add new mime types - -2.1.2 / 2015-06-25 -================== - - * deps: mime-db@~1.14.0 - - Add new mime types - -2.1.1 / 2015-06-08 -================== - - * perf: fix deopt during mapping - -2.1.0 / 2015-06-07 -================== - - * Fix incorrectly treating extension-less file name as extension - - i.e. `'path/to/json'` will no longer return `application/json` - * Fix `.charset(type)` to accept parameters - * Fix `.charset(type)` to match case-insensitive - * Improve generation of extension to MIME mapping - * Refactor internals for readability and no argument reassignment - * Prefer `application/*` MIME types from the same source - * Prefer any type over `application/octet-stream` - * deps: mime-db@~1.13.0 - - Add nginx as a source - - Add new mime types - -2.0.14 / 2015-06-06 -=================== - - * deps: mime-db@~1.12.0 - - Add new mime types - -2.0.13 / 2015-05-31 -=================== - - * deps: mime-db@~1.11.0 - - Add new mime types - -2.0.12 / 2015-05-19 -=================== - - * deps: mime-db@~1.10.0 - - Add new mime types - -2.0.11 / 2015-05-05 -=================== - - * deps: mime-db@~1.9.1 - - Add new mime types - -2.0.10 / 2015-03-13 -=================== - - * deps: mime-db@~1.8.0 - - Add new mime types - -2.0.9 / 2015-02-09 -================== - - * deps: mime-db@~1.7.0 - - Add new mime types - - Community extensions ownership transferred from `node-mime` - -2.0.8 / 2015-01-29 -================== - - * deps: mime-db@~1.6.0 - - Add new mime types - -2.0.7 / 2014-12-30 -================== - - * deps: mime-db@~1.5.0 - - Add new mime types - - Fix various invalid MIME type entries - -2.0.6 / 2014-12-30 -================== - - * deps: mime-db@~1.4.0 - - Add new mime types - - Fix various invalid MIME type entries - - Remove example template MIME types - -2.0.5 / 2014-12-29 -================== - - * deps: mime-db@~1.3.1 - - Fix missing extensions - -2.0.4 / 2014-12-10 -================== - - * deps: mime-db@~1.3.0 - - Add new mime types - -2.0.3 / 2014-11-09 -================== - - * deps: mime-db@~1.2.0 - - Add new mime types - -2.0.2 / 2014-09-28 -================== - - * deps: mime-db@~1.1.0 - - Add new mime types - - Add additional compressible - - Update charsets - -2.0.1 / 2014-09-07 -================== - - * Support Node.js 0.6 - -2.0.0 / 2014-09-02 -================== - - * Use `mime-db` - * Remove `.define()` - -1.0.2 / 2014-08-04 -================== - - * Set charset=utf-8 for `text/javascript` - -1.0.1 / 2014-06-24 -================== - - * Add `text/jsx` type - -1.0.0 / 2014-05-12 -================== - - * Return `false` for unknown types - * Set charset=utf-8 for `application/json` - -0.1.0 / 2014-05-02 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/LICENSE deleted file mode 100644 index 06166077..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/README.md deleted file mode 100644 index e77d615d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/README.md +++ /dev/null @@ -1,103 +0,0 @@ -# mime-types - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -The ultimate javascript content-type utility. - -Similar to [node-mime](https://github.com/broofa/node-mime), except: - -- __No fallbacks.__ Instead of naively returning the first available type, `mime-types` simply returns `false`, - so do `var type = mime.lookup('unrecognized') || 'application/octet-stream'`. -- No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`. -- Additional mime types are added such as jade and stylus via [mime-db](https://github.com/jshttp/mime-db) -- No `.define()` functionality - -Otherwise, the API is compatible. - -## Install - -```sh -$ npm install mime-types -``` - -## Adding Types - -All mime types are based on [mime-db](https://github.com/jshttp/mime-db), -so open a PR there if you'd like to add mime types. - -## API - -```js -var mime = require('mime-types') -``` - -All functions return `false` if input is invalid or not found. - -### mime.lookup(path) - -Lookup the content-type associated with a file. - -```js -mime.lookup('json') // 'application/json' -mime.lookup('.md') // 'text/x-markdown' -mime.lookup('file.html') // 'text/html' -mime.lookup('folder/file.js') // 'application/javascript' -mime.lookup('folder/.htaccess') // false - -mime.lookup('cats') // false -``` - -### mime.contentType(type) - -Create a full content-type header given a content-type or extension. - -```js -mime.contentType('markdown') // 'text/x-markdown; charset=utf-8' -mime.contentType('file.json') // 'application/json; charset=utf-8' - -// from a full path -mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8' -``` - -### mime.extension(type) - -Get the default extension for a content-type. - -```js -mime.extension('application/octet-stream') // 'bin' -``` - -### mime.charset(type) - -Lookup the implied default charset of a content-type. - -```js -mime.charset('text/x-markdown') // 'UTF-8' -``` - -### var type = mime.types[extension] - -A map of content-types by extension. - -### [extensions...] = mime.extensions[type] - -A map of extensions by content-type. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/mime-types.svg -[npm-url]: https://npmjs.org/package/mime-types -[node-version-image]: https://img.shields.io/node/v/mime-types.svg -[node-version-url]: https://nodejs.org/en/download/ -[travis-image]: https://img.shields.io/travis/jshttp/mime-types/master.svg -[travis-url]: https://travis-ci.org/jshttp/mime-types -[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-types/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/mime-types -[downloads-image]: https://img.shields.io/npm/dm/mime-types.svg -[downloads-url]: https://npmjs.org/package/mime-types diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/index.js deleted file mode 100644 index f7008b24..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/index.js +++ /dev/null @@ -1,188 +0,0 @@ -/*! - * mime-types - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var db = require('mime-db') -var extname = require('path').extname - -/** - * Module variables. - * @private - */ - -var extractTypeRegExp = /^\s*([^;\s]*)(?:;|\s|$)/ -var textTypeRegExp = /^text\//i - -/** - * Module exports. - * @public - */ - -exports.charset = charset -exports.charsets = { lookup: charset } -exports.contentType = contentType -exports.extension = extension -exports.extensions = Object.create(null) -exports.lookup = lookup -exports.types = Object.create(null) - -// Populate the extensions/types maps -populateMaps(exports.extensions, exports.types) - -/** - * Get the default charset for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function charset(type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = extractTypeRegExp.exec(type) - var mime = match && db[match[1].toLowerCase()] - - if (mime && mime.charset) { - return mime.charset - } - - // default text/* to utf-8 - if (match && textTypeRegExp.test(match[1])) { - return 'UTF-8' - } - - return false -} - -/** - * Create a full Content-Type header given a MIME type or extension. - * - * @param {string} str - * @return {boolean|string} - */ - -function contentType(str) { - // TODO: should this even be in this module? - if (!str || typeof str !== 'string') { - return false - } - - var mime = str.indexOf('/') === -1 - ? exports.lookup(str) - : str - - if (!mime) { - return false - } - - // TODO: use content-type or other module - if (mime.indexOf('charset') === -1) { - var charset = exports.charset(mime) - if (charset) mime += '; charset=' + charset.toLowerCase() - } - - return mime -} - -/** - * Get the default extension for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function extension(type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = extractTypeRegExp.exec(type) - - // get extensions - var exts = match && exports.extensions[match[1].toLowerCase()] - - if (!exts || !exts.length) { - return false - } - - return exts[0] -} - -/** - * Lookup the MIME type for a file path/extension. - * - * @param {string} path - * @return {boolean|string} - */ - -function lookup(path) { - if (!path || typeof path !== 'string') { - return false - } - - // get the extension ("ext" or ".ext" or full path) - var extension = extname('x.' + path) - .toLowerCase() - .substr(1) - - if (!extension) { - return false - } - - return exports.types[extension] || false -} - -/** - * Populate the extensions and types maps. - * @private - */ - -function populateMaps(extensions, types) { - // source preference (least -> most) - var preference = ['nginx', 'apache', undefined, 'iana'] - - Object.keys(db).forEach(function forEachMimeType(type) { - var mime = db[type] - var exts = mime.extensions - - if (!exts || !exts.length) { - return - } - - // mime -> extensions - extensions[type] = exts - - // extension -> mime - for (var i = 0; i < exts.length; i++) { - var extension = exts[i] - - if (types[extension]) { - var from = preference.indexOf(db[types[extension]].source) - var to = preference.indexOf(mime.source) - - if (types[extension] !== 'application/octet-stream' - && from > to || (from === to && types[extension].substr(0, 12) === 'application/')) { - // skip the remapping - continue - } - } - - // set the extension -> mime - types[extension] = type - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md deleted file mode 100644 index 44f9f646..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md +++ /dev/null @@ -1,320 +0,0 @@ -1.22.0 / 2016-02-15 -=================== - - * Add `application/ppsp-tracker+json` - * Add `application/problem+json` - * Add `application/problem+xml` - * Add `application/vnd.hdt` - * Add `application/vnd.ms-printschematicket+xml` - * Add `model/vnd.rosette.annotated-data-model` - * Add `text/slim` - * Add extension `.rng` to `application/xml` - * Fix extension of `application/dash+xml` to be `.mpd` - * Update primary extension to `.m4a` for `audio/mp4` - -1.21.0 / 2016-01-06 -=================== - - * Add `application/emergencycalldata.comment+xml` - * Add `application/emergencycalldata.deviceinfo+xml` - * Add `application/emergencycalldata.providerinfo+xml` - * Add `application/emergencycalldata.serviceinfo+xml` - * Add `application/emergencycalldata.subscriberinfo+xml` - * Add `application/vnd.filmit.zfc` - * Add `application/vnd.google-apps.document` - * Add `application/vnd.google-apps.presentation` - * Add `application/vnd.google-apps.spreadsheet` - * Add `application/vnd.mapbox-vector-tile` - * Add `application/vnd.ms-printdevicecapabilities+xml` - * Add `application/vnd.ms-windows.devicepairing` - * Add `application/vnd.ms-windows.nwprinting.oob` - * Add `application/vnd.tml` - * Add `audio/evs` - -1.20.0 / 2015-11-10 -=================== - - * Add `application/cdni` - * Add `application/csvm+json` - * Add `application/rfc+xml` - * Add `application/vnd.3gpp.access-transfer-events+xml` - * Add `application/vnd.3gpp.srvcc-ext+xml` - * Add `application/vnd.ms-windows.wsd.oob` - * Add `application/vnd.oxli.countgraph` - * Add `application/vnd.pagerduty+json` - * Add `text/x-suse-ymp` - -1.19.0 / 2015-09-17 -=================== - - * Add `application/vnd.3gpp-prose-pc3ch+xml` - * Add `application/vnd.3gpp.srvcc-info+xml` - * Add `application/vnd.apple.pkpass` - * Add `application/vnd.drive+json` - -1.18.0 / 2015-09-03 -=================== - - * Add `application/pkcs12` - * Add `application/vnd.3gpp-prose+xml` - * Add `application/vnd.3gpp.mid-call+xml` - * Add `application/vnd.3gpp.state-and-event-info+xml` - * Add `application/vnd.anki` - * Add `application/vnd.firemonkeys.cloudcell` - * Add `application/vnd.openblox.game+xml` - * Add `application/vnd.openblox.game-binary` - -1.17.0 / 2015-08-13 -=================== - - * Add `application/x-msdos-program` - * Add `audio/g711-0` - * Add `image/vnd.mozilla.apng` - * Add extension `.exe` to `application/x-msdos-program` - -1.16.0 / 2015-07-29 -=================== - - * Add `application/vnd.uri-map` - -1.15.0 / 2015-07-13 -=================== - - * Add `application/x-httpd-php` - -1.14.0 / 2015-06-25 -=================== - - * Add `application/scim+json` - * Add `application/vnd.3gpp.ussd+xml` - * Add `application/vnd.biopax.rdf+xml` - * Add `text/x-processing` - -1.13.0 / 2015-06-07 -=================== - - * Add nginx as a source - * Add `application/x-cocoa` - * Add `application/x-java-archive-diff` - * Add `application/x-makeself` - * Add `application/x-perl` - * Add `application/x-pilot` - * Add `application/x-redhat-package-manager` - * Add `application/x-sea` - * Add `audio/x-m4a` - * Add `audio/x-realaudio` - * Add `image/x-jng` - * Add `text/mathml` - -1.12.0 / 2015-06-05 -=================== - - * Add `application/bdoc` - * Add `application/vnd.hyperdrive+json` - * Add `application/x-bdoc` - * Add extension `.rtf` to `text/rtf` - -1.11.0 / 2015-05-31 -=================== - - * Add `audio/wav` - * Add `audio/wave` - * Add extension `.litcoffee` to `text/coffeescript` - * Add extension `.sfd-hdstx` to `application/vnd.hydrostatix.sof-data` - * Add extension `.n-gage` to `application/vnd.nokia.n-gage.symbian.install` - -1.10.0 / 2015-05-19 -=================== - - * Add `application/vnd.balsamiq.bmpr` - * Add `application/vnd.microsoft.portable-executable` - * Add `application/x-ns-proxy-autoconfig` - -1.9.1 / 2015-04-19 -================== - - * Remove `.json` extension from `application/manifest+json` - - This is causing bugs downstream - -1.9.0 / 2015-04-19 -================== - - * Add `application/manifest+json` - * Add `application/vnd.micro+json` - * Add `image/vnd.zbrush.pcx` - * Add `image/x-ms-bmp` - -1.8.0 / 2015-03-13 -================== - - * Add `application/vnd.citationstyles.style+xml` - * Add `application/vnd.fastcopy-disk-image` - * Add `application/vnd.gov.sk.xmldatacontainer+xml` - * Add extension `.jsonld` to `application/ld+json` - -1.7.0 / 2015-02-08 -================== - - * Add `application/vnd.gerber` - * Add `application/vnd.msa-disk-image` - -1.6.1 / 2015-02-05 -================== - - * Community extensions ownership transferred from `node-mime` - -1.6.0 / 2015-01-29 -================== - - * Add `application/jose` - * Add `application/jose+json` - * Add `application/json-seq` - * Add `application/jwk+json` - * Add `application/jwk-set+json` - * Add `application/jwt` - * Add `application/rdap+json` - * Add `application/vnd.gov.sk.e-form+xml` - * Add `application/vnd.ims.imsccv1p3` - -1.5.0 / 2014-12-30 -================== - - * Add `application/vnd.oracle.resource+json` - * Fix various invalid MIME type entries - - `application/mbox+xml` - - `application/oscp-response` - - `application/vwg-multiplexed` - - `audio/g721` - -1.4.0 / 2014-12-21 -================== - - * Add `application/vnd.ims.imsccv1p2` - * Fix various invalid MIME type entries - - `application/vnd-acucobol` - - `application/vnd-curl` - - `application/vnd-dart` - - `application/vnd-dxr` - - `application/vnd-fdf` - - `application/vnd-mif` - - `application/vnd-sema` - - `application/vnd-wap-wmlc` - - `application/vnd.adobe.flash-movie` - - `application/vnd.dece-zip` - - `application/vnd.dvb_service` - - `application/vnd.micrografx-igx` - - `application/vnd.sealed-doc` - - `application/vnd.sealed-eml` - - `application/vnd.sealed-mht` - - `application/vnd.sealed-ppt` - - `application/vnd.sealed-tiff` - - `application/vnd.sealed-xls` - - `application/vnd.sealedmedia.softseal-html` - - `application/vnd.sealedmedia.softseal-pdf` - - `application/vnd.wap-slc` - - `application/vnd.wap-wbxml` - - `audio/vnd.sealedmedia.softseal-mpeg` - - `image/vnd-djvu` - - `image/vnd-svf` - - `image/vnd-wap-wbmp` - - `image/vnd.sealed-png` - - `image/vnd.sealedmedia.softseal-gif` - - `image/vnd.sealedmedia.softseal-jpg` - - `model/vnd-dwf` - - `model/vnd.parasolid.transmit-binary` - - `model/vnd.parasolid.transmit-text` - - `text/vnd-a` - - `text/vnd-curl` - - `text/vnd.wap-wml` - * Remove example template MIME types - - `application/example` - - `audio/example` - - `image/example` - - `message/example` - - `model/example` - - `multipart/example` - - `text/example` - - `video/example` - -1.3.1 / 2014-12-16 -================== - - * Fix missing extensions - - `application/json5` - - `text/hjson` - -1.3.0 / 2014-12-07 -================== - - * Add `application/a2l` - * Add `application/aml` - * Add `application/atfx` - * Add `application/atxml` - * Add `application/cdfx+xml` - * Add `application/dii` - * Add `application/json5` - * Add `application/lxf` - * Add `application/mf4` - * Add `application/vnd.apache.thrift.compact` - * Add `application/vnd.apache.thrift.json` - * Add `application/vnd.coffeescript` - * Add `application/vnd.enphase.envoy` - * Add `application/vnd.ims.imsccv1p1` - * Add `text/csv-schema` - * Add `text/hjson` - * Add `text/markdown` - * Add `text/yaml` - -1.2.0 / 2014-11-09 -================== - - * Add `application/cea` - * Add `application/dit` - * Add `application/vnd.gov.sk.e-form+zip` - * Add `application/vnd.tmd.mediaflex.api+xml` - * Type `application/epub+zip` is now IANA-registered - -1.1.2 / 2014-10-23 -================== - - * Rebuild database for `application/x-www-form-urlencoded` change - -1.1.1 / 2014-10-20 -================== - - * Mark `application/x-www-form-urlencoded` as compressible. - -1.1.0 / 2014-09-28 -================== - - * Add `application/font-woff2` - -1.0.3 / 2014-09-25 -================== - - * Fix engine requirement in package - -1.0.2 / 2014-09-25 -================== - - * Add `application/coap-group+json` - * Add `application/dcd` - * Add `application/vnd.apache.thrift.binary` - * Add `image/vnd.tencent.tap` - * Mark all JSON-derived types as compressible - * Update `text/vtt` data - -1.0.1 / 2014-08-30 -================== - - * Fix extension ordering - -1.0.0 / 2014-08-30 -================== - - * Add `application/atf` - * Add `application/merge-patch+json` - * Add `multipart/x-mixed-replace` - * Add `source: 'apache'` metadata - * Add `source: 'iana'` metadata - * Remove badly-assumed charset data diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md deleted file mode 100644 index 7662440b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# mime-db - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][travis-image]][travis-url] -[![Coverage Status][coveralls-image]][coveralls-url] - -This is a database of all mime types. -It consists of a single, public JSON file and does not include any logic, -allowing it to remain as un-opinionated as possible with an API. -It aggregates data from the following sources: - -- http://www.iana.org/assignments/media-types/media-types.xhtml -- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types -- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types - -## Installation - -```bash -npm install mime-db -``` - -### Database Download - -If you're crazy enough to use this in the browser, you can just grab the -JSON file using [RawGit](https://rawgit.com/). It is recommended to replace -`master` with [a release tag](https://github.com/jshttp/mime-db/tags) as the -JSON format may change in the future. - -``` -https://cdn.rawgit.com/jshttp/mime-db/master/db.json -``` - -## Usage - -```js -var db = require('mime-db'); - -// grab data on .js files -var data = db['application/javascript']; -``` - -## Data Structure - -The JSON file is a map lookup for lowercased mime types. -Each mime type has the following properties: - -- `.source` - where the mime type is defined. - If not set, it's probably a custom media type. - - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) - - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml) - - `nginx` - [nginx media types](http://hg.nginx.org/nginx/raw-file/default/conf/mime.types) -- `.extensions[]` - known extensions associated with this mime type. -- `.compressible` - whether a file of this type can be gzipped. -- `.charset` - the default charset associated with this type, if any. - -If unknown, every property could be `undefined`. - -## Contributing - -To edit the database, only make PRs against `src/custom.json` or -`src/custom-suffix.json`. - -To update the build, run `npm run build`. - -## Adding Custom Media Types - -The best way to get new media types included in this library is to register -them with the IANA. The community registration procedure is outlined in -[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types -registered with the IANA are automatically pulled into this library. - -[npm-version-image]: https://img.shields.io/npm/v/mime-db.svg -[npm-downloads-image]: https://img.shields.io/npm/dm/mime-db.svg -[npm-url]: https://npmjs.org/package/mime-db -[travis-image]: https://img.shields.io/travis/jshttp/mime-db/master.svg -[travis-url]: https://travis-ci.org/jshttp/mime-db -[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-db/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master -[node-image]: https://img.shields.io/node/v/mime-db.svg -[node-url]: http://nodejs.org/download/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json deleted file mode 100644 index 863deb4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json +++ /dev/null @@ -1,6575 +0,0 @@ -{ - "application/1d-interleaved-parityfec": { - "source": "iana" - }, - "application/3gpdash-qoe-report+xml": { - "source": "iana" - }, - "application/3gpp-ims+xml": { - "source": "iana" - }, - "application/a2l": { - "source": "iana" - }, - "application/activemessage": { - "source": "iana" - }, - "application/alto-costmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-costmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/alto-directory+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcost+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcostparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointprop+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointpropparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-error+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/aml": { - "source": "iana" - }, - "application/andrew-inset": { - "source": "iana", - "extensions": ["ez"] - }, - "application/applefile": { - "source": "iana" - }, - "application/applixware": { - "source": "apache", - "extensions": ["aw"] - }, - "application/atf": { - "source": "iana" - }, - "application/atfx": { - "source": "iana" - }, - "application/atom+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atom"] - }, - "application/atomcat+xml": { - "source": "iana", - "extensions": ["atomcat"] - }, - "application/atomdeleted+xml": { - "source": "iana" - }, - "application/atomicmail": { - "source": "iana" - }, - "application/atomsvc+xml": { - "source": "iana", - "extensions": ["atomsvc"] - }, - "application/atxml": { - "source": "iana" - }, - "application/auth-policy+xml": { - "source": "iana" - }, - "application/bacnet-xdd+zip": { - "source": "iana" - }, - "application/batch-smtp": { - "source": "iana" - }, - "application/bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/beep+xml": { - "source": "iana" - }, - "application/calendar+json": { - "source": "iana", - "compressible": true - }, - "application/calendar+xml": { - "source": "iana" - }, - "application/call-completion": { - "source": "iana" - }, - "application/cals-1840": { - "source": "iana" - }, - "application/cbor": { - "source": "iana" - }, - "application/ccmp+xml": { - "source": "iana" - }, - "application/ccxml+xml": { - "source": "iana", - "extensions": ["ccxml"] - }, - "application/cdfx+xml": { - "source": "iana" - }, - "application/cdmi-capability": { - "source": "iana", - "extensions": ["cdmia"] - }, - "application/cdmi-container": { - "source": "iana", - "extensions": ["cdmic"] - }, - "application/cdmi-domain": { - "source": "iana", - "extensions": ["cdmid"] - }, - "application/cdmi-object": { - "source": "iana", - "extensions": ["cdmio"] - }, - "application/cdmi-queue": { - "source": "iana", - "extensions": ["cdmiq"] - }, - "application/cdni": { - "source": "iana" - }, - "application/cea": { - "source": "iana" - }, - "application/cea-2018+xml": { - "source": "iana" - }, - "application/cellml+xml": { - "source": "iana" - }, - "application/cfw": { - "source": "iana" - }, - "application/cms": { - "source": "iana" - }, - "application/cnrp+xml": { - "source": "iana" - }, - "application/coap-group+json": { - "source": "iana", - "compressible": true - }, - "application/commonground": { - "source": "iana" - }, - "application/conference-info+xml": { - "source": "iana" - }, - "application/cpl+xml": { - "source": "iana" - }, - "application/csrattrs": { - "source": "iana" - }, - "application/csta+xml": { - "source": "iana" - }, - "application/cstadata+xml": { - "source": "iana" - }, - "application/csvm+json": { - "source": "iana", - "compressible": true - }, - "application/cu-seeme": { - "source": "apache", - "extensions": ["cu"] - }, - "application/cybercash": { - "source": "iana" - }, - "application/dart": { - "compressible": true - }, - "application/dash+xml": { - "source": "iana", - "extensions": ["mpd"] - }, - "application/dashdelta": { - "source": "iana" - }, - "application/davmount+xml": { - "source": "iana", - "extensions": ["davmount"] - }, - "application/dca-rft": { - "source": "iana" - }, - "application/dcd": { - "source": "iana" - }, - "application/dec-dx": { - "source": "iana" - }, - "application/dialog-info+xml": { - "source": "iana" - }, - "application/dicom": { - "source": "iana" - }, - "application/dii": { - "source": "iana" - }, - "application/dit": { - "source": "iana" - }, - "application/dns": { - "source": "iana" - }, - "application/docbook+xml": { - "source": "apache", - "extensions": ["dbk"] - }, - "application/dskpp+xml": { - "source": "iana" - }, - "application/dssc+der": { - "source": "iana", - "extensions": ["dssc"] - }, - "application/dssc+xml": { - "source": "iana", - "extensions": ["xdssc"] - }, - "application/dvcs": { - "source": "iana" - }, - "application/ecmascript": { - "source": "iana", - "compressible": true, - "extensions": ["ecma"] - }, - "application/edi-consent": { - "source": "iana" - }, - "application/edi-x12": { - "source": "iana", - "compressible": false - }, - "application/edifact": { - "source": "iana", - "compressible": false - }, - "application/emergencycalldata.comment+xml": { - "source": "iana" - }, - "application/emergencycalldata.deviceinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.providerinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.serviceinfo+xml": { - "source": "iana" - }, - "application/emergencycalldata.subscriberinfo+xml": { - "source": "iana" - }, - "application/emma+xml": { - "source": "iana", - "extensions": ["emma"] - }, - "application/emotionml+xml": { - "source": "iana" - }, - "application/encaprtp": { - "source": "iana" - }, - "application/epp+xml": { - "source": "iana" - }, - "application/epub+zip": { - "source": "iana", - "extensions": ["epub"] - }, - "application/eshop": { - "source": "iana" - }, - "application/exi": { - "source": "iana", - "extensions": ["exi"] - }, - "application/fastinfoset": { - "source": "iana" - }, - "application/fastsoap": { - "source": "iana" - }, - "application/fdt+xml": { - "source": "iana" - }, - "application/fits": { - "source": "iana" - }, - "application/font-sfnt": { - "source": "iana" - }, - "application/font-tdpfr": { - "source": "iana", - "extensions": ["pfr"] - }, - "application/font-woff": { - "source": "iana", - "compressible": false, - "extensions": ["woff"] - }, - "application/font-woff2": { - "compressible": false, - "extensions": ["woff2"] - }, - "application/framework-attributes+xml": { - "source": "iana" - }, - "application/gml+xml": { - "source": "apache", - "extensions": ["gml"] - }, - "application/gpx+xml": { - "source": "apache", - "extensions": ["gpx"] - }, - "application/gxf": { - "source": "apache", - "extensions": ["gxf"] - }, - "application/gzip": { - "source": "iana", - "compressible": false - }, - "application/h224": { - "source": "iana" - }, - "application/held+xml": { - "source": "iana" - }, - "application/http": { - "source": "iana" - }, - "application/hyperstudio": { - "source": "iana", - "extensions": ["stk"] - }, - "application/ibe-key-request+xml": { - "source": "iana" - }, - "application/ibe-pkg-reply+xml": { - "source": "iana" - }, - "application/ibe-pp-data": { - "source": "iana" - }, - "application/iges": { - "source": "iana" - }, - "application/im-iscomposing+xml": { - "source": "iana" - }, - "application/index": { - "source": "iana" - }, - "application/index.cmd": { - "source": "iana" - }, - "application/index.obj": { - "source": "iana" - }, - "application/index.response": { - "source": "iana" - }, - "application/index.vnd": { - "source": "iana" - }, - "application/inkml+xml": { - "source": "iana", - "extensions": ["ink","inkml"] - }, - "application/iotp": { - "source": "iana" - }, - "application/ipfix": { - "source": "iana", - "extensions": ["ipfix"] - }, - "application/ipp": { - "source": "iana" - }, - "application/isup": { - "source": "iana" - }, - "application/its+xml": { - "source": "iana" - }, - "application/java-archive": { - "source": "apache", - "compressible": false, - "extensions": ["jar","war","ear"] - }, - "application/java-serialized-object": { - "source": "apache", - "compressible": false, - "extensions": ["ser"] - }, - "application/java-vm": { - "source": "apache", - "compressible": false, - "extensions": ["class"] - }, - "application/javascript": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["js"] - }, - "application/jose": { - "source": "iana" - }, - "application/jose+json": { - "source": "iana", - "compressible": true - }, - "application/jrd+json": { - "source": "iana", - "compressible": true - }, - "application/json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["json","map"] - }, - "application/json-patch+json": { - "source": "iana", - "compressible": true - }, - "application/json-seq": { - "source": "iana" - }, - "application/json5": { - "extensions": ["json5"] - }, - "application/jsonml+json": { - "source": "apache", - "compressible": true, - "extensions": ["jsonml"] - }, - "application/jwk+json": { - "source": "iana", - "compressible": true - }, - "application/jwk-set+json": { - "source": "iana", - "compressible": true - }, - "application/jwt": { - "source": "iana" - }, - "application/kpml-request+xml": { - "source": "iana" - }, - "application/kpml-response+xml": { - "source": "iana" - }, - "application/ld+json": { - "source": "iana", - "compressible": true, - "extensions": ["jsonld"] - }, - "application/link-format": { - "source": "iana" - }, - "application/load-control+xml": { - "source": "iana" - }, - "application/lost+xml": { - "source": "iana", - "extensions": ["lostxml"] - }, - "application/lostsync+xml": { - "source": "iana" - }, - "application/lxf": { - "source": "iana" - }, - "application/mac-binhex40": { - "source": "iana", - "extensions": ["hqx"] - }, - "application/mac-compactpro": { - "source": "apache", - "extensions": ["cpt"] - }, - "application/macwriteii": { - "source": "iana" - }, - "application/mads+xml": { - "source": "iana", - "extensions": ["mads"] - }, - "application/manifest+json": { - "charset": "UTF-8", - "compressible": true, - "extensions": ["webmanifest"] - }, - "application/marc": { - "source": "iana", - "extensions": ["mrc"] - }, - "application/marcxml+xml": { - "source": "iana", - "extensions": ["mrcx"] - }, - "application/mathematica": { - "source": "iana", - "extensions": ["ma","nb","mb"] - }, - "application/mathml+xml": { - "source": "iana", - "extensions": ["mathml"] - }, - "application/mathml-content+xml": { - "source": "iana" - }, - "application/mathml-presentation+xml": { - "source": "iana" - }, - "application/mbms-associated-procedure-description+xml": { - "source": "iana" - }, - "application/mbms-deregister+xml": { - "source": "iana" - }, - "application/mbms-envelope+xml": { - "source": "iana" - }, - "application/mbms-msk+xml": { - "source": "iana" - }, - "application/mbms-msk-response+xml": { - "source": "iana" - }, - "application/mbms-protection-description+xml": { - "source": "iana" - }, - "application/mbms-reception-report+xml": { - "source": "iana" - }, - "application/mbms-register+xml": { - "source": "iana" - }, - "application/mbms-register-response+xml": { - "source": "iana" - }, - "application/mbms-schedule+xml": { - "source": "iana" - }, - "application/mbms-user-service-description+xml": { - "source": "iana" - }, - "application/mbox": { - "source": "iana", - "extensions": ["mbox"] - }, - "application/media-policy-dataset+xml": { - "source": "iana" - }, - "application/media_control+xml": { - "source": "iana" - }, - "application/mediaservercontrol+xml": { - "source": "iana", - "extensions": ["mscml"] - }, - "application/merge-patch+json": { - "source": "iana", - "compressible": true - }, - "application/metalink+xml": { - "source": "apache", - "extensions": ["metalink"] - }, - "application/metalink4+xml": { - "source": "iana", - "extensions": ["meta4"] - }, - "application/mets+xml": { - "source": "iana", - "extensions": ["mets"] - }, - "application/mf4": { - "source": "iana" - }, - "application/mikey": { - "source": "iana" - }, - "application/mods+xml": { - "source": "iana", - "extensions": ["mods"] - }, - "application/moss-keys": { - "source": "iana" - }, - "application/moss-signature": { - "source": "iana" - }, - "application/mosskey-data": { - "source": "iana" - }, - "application/mosskey-request": { - "source": "iana" - }, - "application/mp21": { - "source": "iana", - "extensions": ["m21","mp21"] - }, - "application/mp4": { - "source": "iana", - "extensions": ["mp4s","m4p"] - }, - "application/mpeg4-generic": { - "source": "iana" - }, - "application/mpeg4-iod": { - "source": "iana" - }, - "application/mpeg4-iod-xmt": { - "source": "iana" - }, - "application/mrb-consumer+xml": { - "source": "iana" - }, - "application/mrb-publish+xml": { - "source": "iana" - }, - "application/msc-ivr+xml": { - "source": "iana" - }, - "application/msc-mixer+xml": { - "source": "iana" - }, - "application/msword": { - "source": "iana", - "compressible": false, - "extensions": ["doc","dot"] - }, - "application/mxf": { - "source": "iana", - "extensions": ["mxf"] - }, - "application/nasdata": { - "source": "iana" - }, - "application/news-checkgroups": { - "source": "iana" - }, - "application/news-groupinfo": { - "source": "iana" - }, - "application/news-transmission": { - "source": "iana" - }, - "application/nlsml+xml": { - "source": "iana" - }, - "application/nss": { - "source": "iana" - }, - "application/ocsp-request": { - "source": "iana" - }, - "application/ocsp-response": { - "source": "iana" - }, - "application/octet-stream": { - "source": "iana", - "compressible": false, - "extensions": ["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"] - }, - "application/oda": { - "source": "iana", - "extensions": ["oda"] - }, - "application/odx": { - "source": "iana" - }, - "application/oebps-package+xml": { - "source": "iana", - "extensions": ["opf"] - }, - "application/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["ogx"] - }, - "application/omdoc+xml": { - "source": "apache", - "extensions": ["omdoc"] - }, - "application/onenote": { - "source": "apache", - "extensions": ["onetoc","onetoc2","onetmp","onepkg"] - }, - "application/oxps": { - "source": "iana", - "extensions": ["oxps"] - }, - "application/p2p-overlay+xml": { - "source": "iana" - }, - "application/parityfec": { - "source": "iana" - }, - "application/patch-ops-error+xml": { - "source": "iana", - "extensions": ["xer"] - }, - "application/pdf": { - "source": "iana", - "compressible": false, - "extensions": ["pdf"] - }, - "application/pdx": { - "source": "iana" - }, - "application/pgp-encrypted": { - "source": "iana", - "compressible": false, - "extensions": ["pgp"] - }, - "application/pgp-keys": { - "source": "iana" - }, - "application/pgp-signature": { - "source": "iana", - "extensions": ["asc","sig"] - }, - "application/pics-rules": { - "source": "apache", - "extensions": ["prf"] - }, - "application/pidf+xml": { - "source": "iana" - }, - "application/pidf-diff+xml": { - "source": "iana" - }, - "application/pkcs10": { - "source": "iana", - "extensions": ["p10"] - }, - "application/pkcs12": { - "source": "iana" - }, - "application/pkcs7-mime": { - "source": "iana", - "extensions": ["p7m","p7c"] - }, - "application/pkcs7-signature": { - "source": "iana", - "extensions": ["p7s"] - }, - "application/pkcs8": { - "source": "iana", - "extensions": ["p8"] - }, - "application/pkix-attr-cert": { - "source": "iana", - "extensions": ["ac"] - }, - "application/pkix-cert": { - "source": "iana", - "extensions": ["cer"] - }, - "application/pkix-crl": { - "source": "iana", - "extensions": ["crl"] - }, - "application/pkix-pkipath": { - "source": "iana", - "extensions": ["pkipath"] - }, - "application/pkixcmp": { - "source": "iana", - "extensions": ["pki"] - }, - "application/pls+xml": { - "source": "iana", - "extensions": ["pls"] - }, - "application/poc-settings+xml": { - "source": "iana" - }, - "application/postscript": { - "source": "iana", - "compressible": true, - "extensions": ["ai","eps","ps"] - }, - "application/ppsp-tracker+json": { - "source": "iana", - "compressible": true - }, - "application/problem+json": { - "source": "iana", - "compressible": true - }, - "application/problem+xml": { - "source": "iana" - }, - "application/provenance+xml": { - "source": "iana" - }, - "application/prs.alvestrand.titrax-sheet": { - "source": "iana" - }, - "application/prs.cww": { - "source": "iana", - "extensions": ["cww"] - }, - "application/prs.hpub+zip": { - "source": "iana" - }, - "application/prs.nprend": { - "source": "iana" - }, - "application/prs.plucker": { - "source": "iana" - }, - "application/prs.rdf-xml-crypt": { - "source": "iana" - }, - "application/prs.xsf+xml": { - "source": "iana" - }, - "application/pskc+xml": { - "source": "iana", - "extensions": ["pskcxml"] - }, - "application/qsig": { - "source": "iana" - }, - "application/raptorfec": { - "source": "iana" - }, - "application/rdap+json": { - "source": "iana", - "compressible": true - }, - "application/rdf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rdf"] - }, - "application/reginfo+xml": { - "source": "iana", - "extensions": ["rif"] - }, - "application/relax-ng-compact-syntax": { - "source": "iana", - "extensions": ["rnc"] - }, - "application/remote-printing": { - "source": "iana" - }, - "application/reputon+json": { - "source": "iana", - "compressible": true - }, - "application/resource-lists+xml": { - "source": "iana", - "extensions": ["rl"] - }, - "application/resource-lists-diff+xml": { - "source": "iana", - "extensions": ["rld"] - }, - "application/rfc+xml": { - "source": "iana" - }, - "application/riscos": { - "source": "iana" - }, - "application/rlmi+xml": { - "source": "iana" - }, - "application/rls-services+xml": { - "source": "iana", - "extensions": ["rs"] - }, - "application/rpki-ghostbusters": { - "source": "iana", - "extensions": ["gbr"] - }, - "application/rpki-manifest": { - "source": "iana", - "extensions": ["mft"] - }, - "application/rpki-roa": { - "source": "iana", - "extensions": ["roa"] - }, - "application/rpki-updown": { - "source": "iana" - }, - "application/rsd+xml": { - "source": "apache", - "extensions": ["rsd"] - }, - "application/rss+xml": { - "source": "apache", - "compressible": true, - "extensions": ["rss"] - }, - "application/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "application/rtploopback": { - "source": "iana" - }, - "application/rtx": { - "source": "iana" - }, - "application/samlassertion+xml": { - "source": "iana" - }, - "application/samlmetadata+xml": { - "source": "iana" - }, - "application/sbml+xml": { - "source": "iana", - "extensions": ["sbml"] - }, - "application/scaip+xml": { - "source": "iana" - }, - "application/scim+json": { - "source": "iana", - "compressible": true - }, - "application/scvp-cv-request": { - "source": "iana", - "extensions": ["scq"] - }, - "application/scvp-cv-response": { - "source": "iana", - "extensions": ["scs"] - }, - "application/scvp-vp-request": { - "source": "iana", - "extensions": ["spq"] - }, - "application/scvp-vp-response": { - "source": "iana", - "extensions": ["spp"] - }, - "application/sdp": { - "source": "iana", - "extensions": ["sdp"] - }, - "application/sep+xml": { - "source": "iana" - }, - "application/sep-exi": { - "source": "iana" - }, - "application/session-info": { - "source": "iana" - }, - "application/set-payment": { - "source": "iana" - }, - "application/set-payment-initiation": { - "source": "iana", - "extensions": ["setpay"] - }, - "application/set-registration": { - "source": "iana" - }, - "application/set-registration-initiation": { - "source": "iana", - "extensions": ["setreg"] - }, - "application/sgml": { - "source": "iana" - }, - "application/sgml-open-catalog": { - "source": "iana" - }, - "application/shf+xml": { - "source": "iana", - "extensions": ["shf"] - }, - "application/sieve": { - "source": "iana" - }, - "application/simple-filter+xml": { - "source": "iana" - }, - "application/simple-message-summary": { - "source": "iana" - }, - "application/simplesymbolcontainer": { - "source": "iana" - }, - "application/slate": { - "source": "iana" - }, - "application/smil": { - "source": "iana" - }, - "application/smil+xml": { - "source": "iana", - "extensions": ["smi","smil"] - }, - "application/smpte336m": { - "source": "iana" - }, - "application/soap+fastinfoset": { - "source": "iana" - }, - "application/soap+xml": { - "source": "iana", - "compressible": true - }, - "application/sparql-query": { - "source": "iana", - "extensions": ["rq"] - }, - "application/sparql-results+xml": { - "source": "iana", - "extensions": ["srx"] - }, - "application/spirits-event+xml": { - "source": "iana" - }, - "application/sql": { - "source": "iana" - }, - "application/srgs": { - "source": "iana", - "extensions": ["gram"] - }, - "application/srgs+xml": { - "source": "iana", - "extensions": ["grxml"] - }, - "application/sru+xml": { - "source": "iana", - "extensions": ["sru"] - }, - "application/ssdl+xml": { - "source": "apache", - "extensions": ["ssdl"] - }, - "application/ssml+xml": { - "source": "iana", - "extensions": ["ssml"] - }, - "application/tamp-apex-update": { - "source": "iana" - }, - "application/tamp-apex-update-confirm": { - "source": "iana" - }, - "application/tamp-community-update": { - "source": "iana" - }, - "application/tamp-community-update-confirm": { - "source": "iana" - }, - "application/tamp-error": { - "source": "iana" - }, - "application/tamp-sequence-adjust": { - "source": "iana" - }, - "application/tamp-sequence-adjust-confirm": { - "source": "iana" - }, - "application/tamp-status-query": { - "source": "iana" - }, - "application/tamp-status-response": { - "source": "iana" - }, - "application/tamp-update": { - "source": "iana" - }, - "application/tamp-update-confirm": { - "source": "iana" - }, - "application/tar": { - "compressible": true - }, - "application/tei+xml": { - "source": "iana", - "extensions": ["tei","teicorpus"] - }, - "application/thraud+xml": { - "source": "iana", - "extensions": ["tfi"] - }, - "application/timestamp-query": { - "source": "iana" - }, - "application/timestamp-reply": { - "source": "iana" - }, - "application/timestamped-data": { - "source": "iana", - "extensions": ["tsd"] - }, - "application/ttml+xml": { - "source": "iana" - }, - "application/tve-trigger": { - "source": "iana" - }, - "application/ulpfec": { - "source": "iana" - }, - "application/urc-grpsheet+xml": { - "source": "iana" - }, - "application/urc-ressheet+xml": { - "source": "iana" - }, - "application/urc-targetdesc+xml": { - "source": "iana" - }, - "application/urc-uisocketdesc+xml": { - "source": "iana" - }, - "application/vcard+json": { - "source": "iana", - "compressible": true - }, - "application/vcard+xml": { - "source": "iana" - }, - "application/vemmi": { - "source": "iana" - }, - "application/vividence.scriptfile": { - "source": "apache" - }, - "application/vnd.3gpp-prose+xml": { - "source": "iana" - }, - "application/vnd.3gpp-prose-pc3ch+xml": { - "source": "iana" - }, - "application/vnd.3gpp.access-transfer-events+xml": { - "source": "iana" - }, - "application/vnd.3gpp.bsf+xml": { - "source": "iana" - }, - "application/vnd.3gpp.mid-call+xml": { - "source": "iana" - }, - "application/vnd.3gpp.pic-bw-large": { - "source": "iana", - "extensions": ["plb"] - }, - "application/vnd.3gpp.pic-bw-small": { - "source": "iana", - "extensions": ["psb"] - }, - "application/vnd.3gpp.pic-bw-var": { - "source": "iana", - "extensions": ["pvb"] - }, - "application/vnd.3gpp.sms": { - "source": "iana" - }, - "application/vnd.3gpp.srvcc-ext+xml": { - "source": "iana" - }, - "application/vnd.3gpp.srvcc-info+xml": { - "source": "iana" - }, - "application/vnd.3gpp.state-and-event-info+xml": { - "source": "iana" - }, - "application/vnd.3gpp.ussd+xml": { - "source": "iana" - }, - "application/vnd.3gpp2.bcmcsinfo+xml": { - "source": "iana" - }, - "application/vnd.3gpp2.sms": { - "source": "iana" - }, - "application/vnd.3gpp2.tcap": { - "source": "iana", - "extensions": ["tcap"] - }, - "application/vnd.3m.post-it-notes": { - "source": "iana", - "extensions": ["pwn"] - }, - "application/vnd.accpac.simply.aso": { - "source": "iana", - "extensions": ["aso"] - }, - "application/vnd.accpac.simply.imp": { - "source": "iana", - "extensions": ["imp"] - }, - "application/vnd.acucobol": { - "source": "iana", - "extensions": ["acu"] - }, - "application/vnd.acucorp": { - "source": "iana", - "extensions": ["atc","acutc"] - }, - "application/vnd.adobe.air-application-installer-package+zip": { - "source": "apache", - "extensions": ["air"] - }, - "application/vnd.adobe.flash.movie": { - "source": "iana" - }, - "application/vnd.adobe.formscentral.fcdt": { - "source": "iana", - "extensions": ["fcdt"] - }, - "application/vnd.adobe.fxp": { - "source": "iana", - "extensions": ["fxp","fxpl"] - }, - "application/vnd.adobe.partial-upload": { - "source": "iana" - }, - "application/vnd.adobe.xdp+xml": { - "source": "iana", - "extensions": ["xdp"] - }, - "application/vnd.adobe.xfdf": { - "source": "iana", - "extensions": ["xfdf"] - }, - "application/vnd.aether.imp": { - "source": "iana" - }, - "application/vnd.ah-barcode": { - "source": "iana" - }, - "application/vnd.ahead.space": { - "source": "iana", - "extensions": ["ahead"] - }, - "application/vnd.airzip.filesecure.azf": { - "source": "iana", - "extensions": ["azf"] - }, - "application/vnd.airzip.filesecure.azs": { - "source": "iana", - "extensions": ["azs"] - }, - "application/vnd.amazon.ebook": { - "source": "apache", - "extensions": ["azw"] - }, - "application/vnd.americandynamics.acc": { - "source": "iana", - "extensions": ["acc"] - }, - "application/vnd.amiga.ami": { - "source": "iana", - "extensions": ["ami"] - }, - "application/vnd.amundsen.maze+xml": { - "source": "iana" - }, - "application/vnd.android.package-archive": { - "source": "apache", - "compressible": false, - "extensions": ["apk"] - }, - "application/vnd.anki": { - "source": "iana" - }, - "application/vnd.anser-web-certificate-issue-initiation": { - "source": "iana", - "extensions": ["cii"] - }, - "application/vnd.anser-web-funds-transfer-initiation": { - "source": "apache", - "extensions": ["fti"] - }, - "application/vnd.antix.game-component": { - "source": "iana", - "extensions": ["atx"] - }, - "application/vnd.apache.thrift.binary": { - "source": "iana" - }, - "application/vnd.apache.thrift.compact": { - "source": "iana" - }, - "application/vnd.apache.thrift.json": { - "source": "iana" - }, - "application/vnd.api+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.apple.installer+xml": { - "source": "iana", - "extensions": ["mpkg"] - }, - "application/vnd.apple.mpegurl": { - "source": "iana", - "extensions": ["m3u8"] - }, - "application/vnd.apple.pkpass": { - "compressible": false, - "extensions": ["pkpass"] - }, - "application/vnd.arastra.swi": { - "source": "iana" - }, - "application/vnd.aristanetworks.swi": { - "source": "iana", - "extensions": ["swi"] - }, - "application/vnd.artsquare": { - "source": "iana" - }, - "application/vnd.astraea-software.iota": { - "source": "iana", - "extensions": ["iota"] - }, - "application/vnd.audiograph": { - "source": "iana", - "extensions": ["aep"] - }, - "application/vnd.autopackage": { - "source": "iana" - }, - "application/vnd.avistar+xml": { - "source": "iana" - }, - "application/vnd.balsamiq.bmml+xml": { - "source": "iana" - }, - "application/vnd.balsamiq.bmpr": { - "source": "iana" - }, - "application/vnd.bekitzur-stech+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.biopax.rdf+xml": { - "source": "iana" - }, - "application/vnd.blueice.multipass": { - "source": "iana", - "extensions": ["mpm"] - }, - "application/vnd.bluetooth.ep.oob": { - "source": "iana" - }, - "application/vnd.bluetooth.le.oob": { - "source": "iana" - }, - "application/vnd.bmi": { - "source": "iana", - "extensions": ["bmi"] - }, - "application/vnd.businessobjects": { - "source": "iana", - "extensions": ["rep"] - }, - "application/vnd.cab-jscript": { - "source": "iana" - }, - "application/vnd.canon-cpdl": { - "source": "iana" - }, - "application/vnd.canon-lips": { - "source": "iana" - }, - "application/vnd.cendio.thinlinc.clientconf": { - "source": "iana" - }, - "application/vnd.century-systems.tcp_stream": { - "source": "iana" - }, - "application/vnd.chemdraw+xml": { - "source": "iana", - "extensions": ["cdxml"] - }, - "application/vnd.chipnuts.karaoke-mmd": { - "source": "iana", - "extensions": ["mmd"] - }, - "application/vnd.cinderella": { - "source": "iana", - "extensions": ["cdy"] - }, - "application/vnd.cirpack.isdn-ext": { - "source": "iana" - }, - "application/vnd.citationstyles.style+xml": { - "source": "iana" - }, - "application/vnd.claymore": { - "source": "iana", - "extensions": ["cla"] - }, - "application/vnd.cloanto.rp9": { - "source": "iana", - "extensions": ["rp9"] - }, - "application/vnd.clonk.c4group": { - "source": "iana", - "extensions": ["c4g","c4d","c4f","c4p","c4u"] - }, - "application/vnd.cluetrust.cartomobile-config": { - "source": "iana", - "extensions": ["c11amc"] - }, - "application/vnd.cluetrust.cartomobile-config-pkg": { - "source": "iana", - "extensions": ["c11amz"] - }, - "application/vnd.coffeescript": { - "source": "iana" - }, - "application/vnd.collection+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.doc+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.next+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.commerce-battelle": { - "source": "iana" - }, - "application/vnd.commonspace": { - "source": "iana", - "extensions": ["csp"] - }, - "application/vnd.contact.cmsg": { - "source": "iana", - "extensions": ["cdbcmsg"] - }, - "application/vnd.cosmocaller": { - "source": "iana", - "extensions": ["cmc"] - }, - "application/vnd.crick.clicker": { - "source": "iana", - "extensions": ["clkx"] - }, - "application/vnd.crick.clicker.keyboard": { - "source": "iana", - "extensions": ["clkk"] - }, - "application/vnd.crick.clicker.palette": { - "source": "iana", - "extensions": ["clkp"] - }, - "application/vnd.crick.clicker.template": { - "source": "iana", - "extensions": ["clkt"] - }, - "application/vnd.crick.clicker.wordbank": { - "source": "iana", - "extensions": ["clkw"] - }, - "application/vnd.criticaltools.wbs+xml": { - "source": "iana", - "extensions": ["wbs"] - }, - "application/vnd.ctc-posml": { - "source": "iana", - "extensions": ["pml"] - }, - "application/vnd.ctct.ws+xml": { - "source": "iana" - }, - "application/vnd.cups-pdf": { - "source": "iana" - }, - "application/vnd.cups-postscript": { - "source": "iana" - }, - "application/vnd.cups-ppd": { - "source": "iana", - "extensions": ["ppd"] - }, - "application/vnd.cups-raster": { - "source": "iana" - }, - "application/vnd.cups-raw": { - "source": "iana" - }, - "application/vnd.curl": { - "source": "iana" - }, - "application/vnd.curl.car": { - "source": "apache", - "extensions": ["car"] - }, - "application/vnd.curl.pcurl": { - "source": "apache", - "extensions": ["pcurl"] - }, - "application/vnd.cyan.dean.root+xml": { - "source": "iana" - }, - "application/vnd.cybank": { - "source": "iana" - }, - "application/vnd.dart": { - "source": "iana", - "compressible": true, - "extensions": ["dart"] - }, - "application/vnd.data-vision.rdz": { - "source": "iana", - "extensions": ["rdz"] - }, - "application/vnd.debian.binary-package": { - "source": "iana" - }, - "application/vnd.dece.data": { - "source": "iana", - "extensions": ["uvf","uvvf","uvd","uvvd"] - }, - "application/vnd.dece.ttml+xml": { - "source": "iana", - "extensions": ["uvt","uvvt"] - }, - "application/vnd.dece.unspecified": { - "source": "iana", - "extensions": ["uvx","uvvx"] - }, - "application/vnd.dece.zip": { - "source": "iana", - "extensions": ["uvz","uvvz"] - }, - "application/vnd.denovo.fcselayout-link": { - "source": "iana", - "extensions": ["fe_launch"] - }, - "application/vnd.desmume-movie": { - "source": "iana" - }, - "application/vnd.dir-bi.plate-dl-nosuffix": { - "source": "iana" - }, - "application/vnd.dm.delegation+xml": { - "source": "iana" - }, - "application/vnd.dna": { - "source": "iana", - "extensions": ["dna"] - }, - "application/vnd.document+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.dolby.mlp": { - "source": "apache", - "extensions": ["mlp"] - }, - "application/vnd.dolby.mobile.1": { - "source": "iana" - }, - "application/vnd.dolby.mobile.2": { - "source": "iana" - }, - "application/vnd.doremir.scorecloud-binary-document": { - "source": "iana" - }, - "application/vnd.dpgraph": { - "source": "iana", - "extensions": ["dpg"] - }, - "application/vnd.dreamfactory": { - "source": "iana", - "extensions": ["dfac"] - }, - "application/vnd.drive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ds-keypoint": { - "source": "apache", - "extensions": ["kpxx"] - }, - "application/vnd.dtg.local": { - "source": "iana" - }, - "application/vnd.dtg.local.flash": { - "source": "iana" - }, - "application/vnd.dtg.local.html": { - "source": "iana" - }, - "application/vnd.dvb.ait": { - "source": "iana", - "extensions": ["ait"] - }, - "application/vnd.dvb.dvbj": { - "source": "iana" - }, - "application/vnd.dvb.esgcontainer": { - "source": "iana" - }, - "application/vnd.dvb.ipdcdftnotifaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess2": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgpdd": { - "source": "iana" - }, - "application/vnd.dvb.ipdcroaming": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-base": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-enhancement": { - "source": "iana" - }, - "application/vnd.dvb.notif-aggregate-root+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-container+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-generic+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-msglist+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-registration-request+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-ia-registration-response+xml": { - "source": "iana" - }, - "application/vnd.dvb.notif-init+xml": { - "source": "iana" - }, - "application/vnd.dvb.pfr": { - "source": "iana" - }, - "application/vnd.dvb.service": { - "source": "iana", - "extensions": ["svc"] - }, - "application/vnd.dxr": { - "source": "iana" - }, - "application/vnd.dynageo": { - "source": "iana", - "extensions": ["geo"] - }, - "application/vnd.dzr": { - "source": "iana" - }, - "application/vnd.easykaraoke.cdgdownload": { - "source": "iana" - }, - "application/vnd.ecdis-update": { - "source": "iana" - }, - "application/vnd.ecowin.chart": { - "source": "iana", - "extensions": ["mag"] - }, - "application/vnd.ecowin.filerequest": { - "source": "iana" - }, - "application/vnd.ecowin.fileupdate": { - "source": "iana" - }, - "application/vnd.ecowin.series": { - "source": "iana" - }, - "application/vnd.ecowin.seriesrequest": { - "source": "iana" - }, - "application/vnd.ecowin.seriesupdate": { - "source": "iana" - }, - "application/vnd.emclient.accessrequest+xml": { - "source": "iana" - }, - "application/vnd.enliven": { - "source": "iana", - "extensions": ["nml"] - }, - "application/vnd.enphase.envoy": { - "source": "iana" - }, - "application/vnd.eprints.data+xml": { - "source": "iana" - }, - "application/vnd.epson.esf": { - "source": "iana", - "extensions": ["esf"] - }, - "application/vnd.epson.msf": { - "source": "iana", - "extensions": ["msf"] - }, - "application/vnd.epson.quickanime": { - "source": "iana", - "extensions": ["qam"] - }, - "application/vnd.epson.salt": { - "source": "iana", - "extensions": ["slt"] - }, - "application/vnd.epson.ssf": { - "source": "iana", - "extensions": ["ssf"] - }, - "application/vnd.ericsson.quickcall": { - "source": "iana" - }, - "application/vnd.eszigno3+xml": { - "source": "iana", - "extensions": ["es3","et3"] - }, - "application/vnd.etsi.aoc+xml": { - "source": "iana" - }, - "application/vnd.etsi.asic-e+zip": { - "source": "iana" - }, - "application/vnd.etsi.asic-s+zip": { - "source": "iana" - }, - "application/vnd.etsi.cug+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvcommand+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvdiscovery+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvprofile+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-bc+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-cod+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsad-npvr+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvservice+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvsync+xml": { - "source": "iana" - }, - "application/vnd.etsi.iptvueprofile+xml": { - "source": "iana" - }, - "application/vnd.etsi.mcid+xml": { - "source": "iana" - }, - "application/vnd.etsi.mheg5": { - "source": "iana" - }, - "application/vnd.etsi.overload-control-policy-dataset+xml": { - "source": "iana" - }, - "application/vnd.etsi.pstn+xml": { - "source": "iana" - }, - "application/vnd.etsi.sci+xml": { - "source": "iana" - }, - "application/vnd.etsi.simservs+xml": { - "source": "iana" - }, - "application/vnd.etsi.timestamp-token": { - "source": "iana" - }, - "application/vnd.etsi.tsl+xml": { - "source": "iana" - }, - "application/vnd.etsi.tsl.der": { - "source": "iana" - }, - "application/vnd.eudora.data": { - "source": "iana" - }, - "application/vnd.ezpix-album": { - "source": "iana", - "extensions": ["ez2"] - }, - "application/vnd.ezpix-package": { - "source": "iana", - "extensions": ["ez3"] - }, - "application/vnd.f-secure.mobile": { - "source": "iana" - }, - "application/vnd.fastcopy-disk-image": { - "source": "iana" - }, - "application/vnd.fdf": { - "source": "iana", - "extensions": ["fdf"] - }, - "application/vnd.fdsn.mseed": { - "source": "iana", - "extensions": ["mseed"] - }, - "application/vnd.fdsn.seed": { - "source": "iana", - "extensions": ["seed","dataless"] - }, - "application/vnd.ffsns": { - "source": "iana" - }, - "application/vnd.filmit.zfc": { - "source": "iana" - }, - "application/vnd.fints": { - "source": "iana" - }, - "application/vnd.firemonkeys.cloudcell": { - "source": "iana" - }, - "application/vnd.flographit": { - "source": "iana", - "extensions": ["gph"] - }, - "application/vnd.fluxtime.clip": { - "source": "iana", - "extensions": ["ftc"] - }, - "application/vnd.font-fontforge-sfd": { - "source": "iana" - }, - "application/vnd.framemaker": { - "source": "iana", - "extensions": ["fm","frame","maker","book"] - }, - "application/vnd.frogans.fnc": { - "source": "iana", - "extensions": ["fnc"] - }, - "application/vnd.frogans.ltf": { - "source": "iana", - "extensions": ["ltf"] - }, - "application/vnd.fsc.weblaunch": { - "source": "iana", - "extensions": ["fsc"] - }, - "application/vnd.fujitsu.oasys": { - "source": "iana", - "extensions": ["oas"] - }, - "application/vnd.fujitsu.oasys2": { - "source": "iana", - "extensions": ["oa2"] - }, - "application/vnd.fujitsu.oasys3": { - "source": "iana", - "extensions": ["oa3"] - }, - "application/vnd.fujitsu.oasysgp": { - "source": "iana", - "extensions": ["fg5"] - }, - "application/vnd.fujitsu.oasysprs": { - "source": "iana", - "extensions": ["bh2"] - }, - "application/vnd.fujixerox.art-ex": { - "source": "iana" - }, - "application/vnd.fujixerox.art4": { - "source": "iana" - }, - "application/vnd.fujixerox.ddd": { - "source": "iana", - "extensions": ["ddd"] - }, - "application/vnd.fujixerox.docuworks": { - "source": "iana", - "extensions": ["xdw"] - }, - "application/vnd.fujixerox.docuworks.binder": { - "source": "iana", - "extensions": ["xbd"] - }, - "application/vnd.fujixerox.docuworks.container": { - "source": "iana" - }, - "application/vnd.fujixerox.hbpl": { - "source": "iana" - }, - "application/vnd.fut-misnet": { - "source": "iana" - }, - "application/vnd.fuzzysheet": { - "source": "iana", - "extensions": ["fzs"] - }, - "application/vnd.genomatix.tuxedo": { - "source": "iana", - "extensions": ["txd"] - }, - "application/vnd.geo+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.geocube+xml": { - "source": "iana" - }, - "application/vnd.geogebra.file": { - "source": "iana", - "extensions": ["ggb"] - }, - "application/vnd.geogebra.tool": { - "source": "iana", - "extensions": ["ggt"] - }, - "application/vnd.geometry-explorer": { - "source": "iana", - "extensions": ["gex","gre"] - }, - "application/vnd.geonext": { - "source": "iana", - "extensions": ["gxt"] - }, - "application/vnd.geoplan": { - "source": "iana", - "extensions": ["g2w"] - }, - "application/vnd.geospace": { - "source": "iana", - "extensions": ["g3w"] - }, - "application/vnd.gerber": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt-response": { - "source": "iana" - }, - "application/vnd.gmx": { - "source": "iana", - "extensions": ["gmx"] - }, - "application/vnd.google-apps.document": { - "compressible": false, - "extensions": ["gdoc"] - }, - "application/vnd.google-apps.presentation": { - "compressible": false, - "extensions": ["gslides"] - }, - "application/vnd.google-apps.spreadsheet": { - "compressible": false, - "extensions": ["gsheet"] - }, - "application/vnd.google-earth.kml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["kml"] - }, - "application/vnd.google-earth.kmz": { - "source": "iana", - "compressible": false, - "extensions": ["kmz"] - }, - "application/vnd.gov.sk.e-form+xml": { - "source": "iana" - }, - "application/vnd.gov.sk.e-form+zip": { - "source": "iana" - }, - "application/vnd.gov.sk.xmldatacontainer+xml": { - "source": "iana" - }, - "application/vnd.grafeq": { - "source": "iana", - "extensions": ["gqf","gqs"] - }, - "application/vnd.gridmp": { - "source": "iana" - }, - "application/vnd.groove-account": { - "source": "iana", - "extensions": ["gac"] - }, - "application/vnd.groove-help": { - "source": "iana", - "extensions": ["ghf"] - }, - "application/vnd.groove-identity-message": { - "source": "iana", - "extensions": ["gim"] - }, - "application/vnd.groove-injector": { - "source": "iana", - "extensions": ["grv"] - }, - "application/vnd.groove-tool-message": { - "source": "iana", - "extensions": ["gtm"] - }, - "application/vnd.groove-tool-template": { - "source": "iana", - "extensions": ["tpl"] - }, - "application/vnd.groove-vcard": { - "source": "iana", - "extensions": ["vcg"] - }, - "application/vnd.hal+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hal+xml": { - "source": "iana", - "extensions": ["hal"] - }, - "application/vnd.handheld-entertainment+xml": { - "source": "iana", - "extensions": ["zmm"] - }, - "application/vnd.hbci": { - "source": "iana", - "extensions": ["hbci"] - }, - "application/vnd.hcl-bireports": { - "source": "iana" - }, - "application/vnd.hdt": { - "source": "iana" - }, - "application/vnd.heroku+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hhe.lesson-player": { - "source": "iana", - "extensions": ["les"] - }, - "application/vnd.hp-hpgl": { - "source": "iana", - "extensions": ["hpgl"] - }, - "application/vnd.hp-hpid": { - "source": "iana", - "extensions": ["hpid"] - }, - "application/vnd.hp-hps": { - "source": "iana", - "extensions": ["hps"] - }, - "application/vnd.hp-jlyt": { - "source": "iana", - "extensions": ["jlt"] - }, - "application/vnd.hp-pcl": { - "source": "iana", - "extensions": ["pcl"] - }, - "application/vnd.hp-pclxl": { - "source": "iana", - "extensions": ["pclxl"] - }, - "application/vnd.httphone": { - "source": "iana" - }, - "application/vnd.hydrostatix.sof-data": { - "source": "iana", - "extensions": ["sfd-hdstx"] - }, - "application/vnd.hyperdrive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hzn-3d-crossword": { - "source": "iana" - }, - "application/vnd.ibm.afplinedata": { - "source": "iana" - }, - "application/vnd.ibm.electronic-media": { - "source": "iana" - }, - "application/vnd.ibm.minipay": { - "source": "iana", - "extensions": ["mpy"] - }, - "application/vnd.ibm.modcap": { - "source": "iana", - "extensions": ["afp","listafp","list3820"] - }, - "application/vnd.ibm.rights-management": { - "source": "iana", - "extensions": ["irm"] - }, - "application/vnd.ibm.secure-container": { - "source": "iana", - "extensions": ["sc"] - }, - "application/vnd.iccprofile": { - "source": "iana", - "extensions": ["icc","icm"] - }, - "application/vnd.ieee.1905": { - "source": "iana" - }, - "application/vnd.igloader": { - "source": "iana", - "extensions": ["igl"] - }, - "application/vnd.immervision-ivp": { - "source": "iana", - "extensions": ["ivp"] - }, - "application/vnd.immervision-ivu": { - "source": "iana", - "extensions": ["ivu"] - }, - "application/vnd.ims.imsccv1p1": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p2": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p3": { - "source": "iana" - }, - "application/vnd.ims.lis.v2.result+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolconsumerprofile+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy.id+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings.simple+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.informedcontrol.rms+xml": { - "source": "iana" - }, - "application/vnd.informix-visionary": { - "source": "iana" - }, - "application/vnd.infotech.project": { - "source": "iana" - }, - "application/vnd.infotech.project+xml": { - "source": "iana" - }, - "application/vnd.innopath.wamp.notification": { - "source": "iana" - }, - "application/vnd.insors.igm": { - "source": "iana", - "extensions": ["igm"] - }, - "application/vnd.intercon.formnet": { - "source": "iana", - "extensions": ["xpw","xpx"] - }, - "application/vnd.intergeo": { - "source": "iana", - "extensions": ["i2g"] - }, - "application/vnd.intertrust.digibox": { - "source": "iana" - }, - "application/vnd.intertrust.nncp": { - "source": "iana" - }, - "application/vnd.intu.qbo": { - "source": "iana", - "extensions": ["qbo"] - }, - "application/vnd.intu.qfx": { - "source": "iana", - "extensions": ["qfx"] - }, - "application/vnd.iptc.g2.catalogitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.conceptitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.knowledgeitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.newsitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.newsmessage+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.packageitem+xml": { - "source": "iana" - }, - "application/vnd.iptc.g2.planningitem+xml": { - "source": "iana" - }, - "application/vnd.ipunplugged.rcprofile": { - "source": "iana", - "extensions": ["rcprofile"] - }, - "application/vnd.irepository.package+xml": { - "source": "iana", - "extensions": ["irp"] - }, - "application/vnd.is-xpr": { - "source": "iana", - "extensions": ["xpr"] - }, - "application/vnd.isac.fcs": { - "source": "iana", - "extensions": ["fcs"] - }, - "application/vnd.jam": { - "source": "iana", - "extensions": ["jam"] - }, - "application/vnd.japannet-directory-service": { - "source": "iana" - }, - "application/vnd.japannet-jpnstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-payment-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-registration": { - "source": "iana" - }, - "application/vnd.japannet-registration-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-setstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-verification": { - "source": "iana" - }, - "application/vnd.japannet-verification-wakeup": { - "source": "iana" - }, - "application/vnd.jcp.javame.midlet-rms": { - "source": "iana", - "extensions": ["rms"] - }, - "application/vnd.jisp": { - "source": "iana", - "extensions": ["jisp"] - }, - "application/vnd.joost.joda-archive": { - "source": "iana", - "extensions": ["joda"] - }, - "application/vnd.jsk.isdn-ngn": { - "source": "iana" - }, - "application/vnd.kahootz": { - "source": "iana", - "extensions": ["ktz","ktr"] - }, - "application/vnd.kde.karbon": { - "source": "iana", - "extensions": ["karbon"] - }, - "application/vnd.kde.kchart": { - "source": "iana", - "extensions": ["chrt"] - }, - "application/vnd.kde.kformula": { - "source": "iana", - "extensions": ["kfo"] - }, - "application/vnd.kde.kivio": { - "source": "iana", - "extensions": ["flw"] - }, - "application/vnd.kde.kontour": { - "source": "iana", - "extensions": ["kon"] - }, - "application/vnd.kde.kpresenter": { - "source": "iana", - "extensions": ["kpr","kpt"] - }, - "application/vnd.kde.kspread": { - "source": "iana", - "extensions": ["ksp"] - }, - "application/vnd.kde.kword": { - "source": "iana", - "extensions": ["kwd","kwt"] - }, - "application/vnd.kenameaapp": { - "source": "iana", - "extensions": ["htke"] - }, - "application/vnd.kidspiration": { - "source": "iana", - "extensions": ["kia"] - }, - "application/vnd.kinar": { - "source": "iana", - "extensions": ["kne","knp"] - }, - "application/vnd.koan": { - "source": "iana", - "extensions": ["skp","skd","skt","skm"] - }, - "application/vnd.kodak-descriptor": { - "source": "iana", - "extensions": ["sse"] - }, - "application/vnd.las.las+xml": { - "source": "iana", - "extensions": ["lasxml"] - }, - "application/vnd.liberty-request+xml": { - "source": "iana" - }, - "application/vnd.llamagraphics.life-balance.desktop": { - "source": "iana", - "extensions": ["lbd"] - }, - "application/vnd.llamagraphics.life-balance.exchange+xml": { - "source": "iana", - "extensions": ["lbe"] - }, - "application/vnd.lotus-1-2-3": { - "source": "iana", - "extensions": ["123"] - }, - "application/vnd.lotus-approach": { - "source": "iana", - "extensions": ["apr"] - }, - "application/vnd.lotus-freelance": { - "source": "iana", - "extensions": ["pre"] - }, - "application/vnd.lotus-notes": { - "source": "iana", - "extensions": ["nsf"] - }, - "application/vnd.lotus-organizer": { - "source": "iana", - "extensions": ["org"] - }, - "application/vnd.lotus-screencam": { - "source": "iana", - "extensions": ["scm"] - }, - "application/vnd.lotus-wordpro": { - "source": "iana", - "extensions": ["lwp"] - }, - "application/vnd.macports.portpkg": { - "source": "iana", - "extensions": ["portpkg"] - }, - "application/vnd.mapbox-vector-tile": { - "source": "iana" - }, - "application/vnd.marlin.drm.actiontoken+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.conftoken+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.license+xml": { - "source": "iana" - }, - "application/vnd.marlin.drm.mdcf": { - "source": "iana" - }, - "application/vnd.mason+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.maxmind.maxmind-db": { - "source": "iana" - }, - "application/vnd.mcd": { - "source": "iana", - "extensions": ["mcd"] - }, - "application/vnd.medcalcdata": { - "source": "iana", - "extensions": ["mc1"] - }, - "application/vnd.mediastation.cdkey": { - "source": "iana", - "extensions": ["cdkey"] - }, - "application/vnd.meridian-slingshot": { - "source": "iana" - }, - "application/vnd.mfer": { - "source": "iana", - "extensions": ["mwf"] - }, - "application/vnd.mfmp": { - "source": "iana", - "extensions": ["mfm"] - }, - "application/vnd.micro+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.micrografx.flo": { - "source": "iana", - "extensions": ["flo"] - }, - "application/vnd.micrografx.igx": { - "source": "iana", - "extensions": ["igx"] - }, - "application/vnd.microsoft.portable-executable": { - "source": "iana" - }, - "application/vnd.miele+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.mif": { - "source": "iana", - "extensions": ["mif"] - }, - "application/vnd.minisoft-hp3000-save": { - "source": "iana" - }, - "application/vnd.mitsubishi.misty-guard.trustweb": { - "source": "iana" - }, - "application/vnd.mobius.daf": { - "source": "iana", - "extensions": ["daf"] - }, - "application/vnd.mobius.dis": { - "source": "iana", - "extensions": ["dis"] - }, - "application/vnd.mobius.mbk": { - "source": "iana", - "extensions": ["mbk"] - }, - "application/vnd.mobius.mqy": { - "source": "iana", - "extensions": ["mqy"] - }, - "application/vnd.mobius.msl": { - "source": "iana", - "extensions": ["msl"] - }, - "application/vnd.mobius.plc": { - "source": "iana", - "extensions": ["plc"] - }, - "application/vnd.mobius.txf": { - "source": "iana", - "extensions": ["txf"] - }, - "application/vnd.mophun.application": { - "source": "iana", - "extensions": ["mpn"] - }, - "application/vnd.mophun.certificate": { - "source": "iana", - "extensions": ["mpc"] - }, - "application/vnd.motorola.flexsuite": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.adsi": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.fis": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.gotap": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.kmr": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.ttc": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.wem": { - "source": "iana" - }, - "application/vnd.motorola.iprm": { - "source": "iana" - }, - "application/vnd.mozilla.xul+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xul"] - }, - "application/vnd.ms-3mfdocument": { - "source": "iana" - }, - "application/vnd.ms-artgalry": { - "source": "iana", - "extensions": ["cil"] - }, - "application/vnd.ms-asf": { - "source": "iana" - }, - "application/vnd.ms-cab-compressed": { - "source": "iana", - "extensions": ["cab"] - }, - "application/vnd.ms-color.iccprofile": { - "source": "apache" - }, - "application/vnd.ms-excel": { - "source": "iana", - "compressible": false, - "extensions": ["xls","xlm","xla","xlc","xlt","xlw"] - }, - "application/vnd.ms-excel.addin.macroenabled.12": { - "source": "iana", - "extensions": ["xlam"] - }, - "application/vnd.ms-excel.sheet.binary.macroenabled.12": { - "source": "iana", - "extensions": ["xlsb"] - }, - "application/vnd.ms-excel.sheet.macroenabled.12": { - "source": "iana", - "extensions": ["xlsm"] - }, - "application/vnd.ms-excel.template.macroenabled.12": { - "source": "iana", - "extensions": ["xltm"] - }, - "application/vnd.ms-fontobject": { - "source": "iana", - "compressible": true, - "extensions": ["eot"] - }, - "application/vnd.ms-htmlhelp": { - "source": "iana", - "extensions": ["chm"] - }, - "application/vnd.ms-ims": { - "source": "iana", - "extensions": ["ims"] - }, - "application/vnd.ms-lrm": { - "source": "iana", - "extensions": ["lrm"] - }, - "application/vnd.ms-office.activex+xml": { - "source": "iana" - }, - "application/vnd.ms-officetheme": { - "source": "iana", - "extensions": ["thmx"] - }, - "application/vnd.ms-opentype": { - "source": "apache", - "compressible": true - }, - "application/vnd.ms-package.obfuscated-opentype": { - "source": "apache" - }, - "application/vnd.ms-pki.seccat": { - "source": "apache", - "extensions": ["cat"] - }, - "application/vnd.ms-pki.stl": { - "source": "apache", - "extensions": ["stl"] - }, - "application/vnd.ms-playready.initiator+xml": { - "source": "iana" - }, - "application/vnd.ms-powerpoint": { - "source": "iana", - "compressible": false, - "extensions": ["ppt","pps","pot"] - }, - "application/vnd.ms-powerpoint.addin.macroenabled.12": { - "source": "iana", - "extensions": ["ppam"] - }, - "application/vnd.ms-powerpoint.presentation.macroenabled.12": { - "source": "iana", - "extensions": ["pptm"] - }, - "application/vnd.ms-powerpoint.slide.macroenabled.12": { - "source": "iana", - "extensions": ["sldm"] - }, - "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { - "source": "iana", - "extensions": ["ppsm"] - }, - "application/vnd.ms-powerpoint.template.macroenabled.12": { - "source": "iana", - "extensions": ["potm"] - }, - "application/vnd.ms-printdevicecapabilities+xml": { - "source": "iana" - }, - "application/vnd.ms-printing.printticket+xml": { - "source": "apache" - }, - "application/vnd.ms-printschematicket+xml": { - "source": "iana" - }, - "application/vnd.ms-project": { - "source": "iana", - "extensions": ["mpp","mpt"] - }, - "application/vnd.ms-tnef": { - "source": "iana" - }, - "application/vnd.ms-windows.devicepairing": { - "source": "iana" - }, - "application/vnd.ms-windows.nwprinting.oob": { - "source": "iana" - }, - "application/vnd.ms-windows.printerpairing": { - "source": "iana" - }, - "application/vnd.ms-windows.wsd.oob": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-resp": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-resp": { - "source": "iana" - }, - "application/vnd.ms-word.document.macroenabled.12": { - "source": "iana", - "extensions": ["docm"] - }, - "application/vnd.ms-word.template.macroenabled.12": { - "source": "iana", - "extensions": ["dotm"] - }, - "application/vnd.ms-works": { - "source": "iana", - "extensions": ["wps","wks","wcm","wdb"] - }, - "application/vnd.ms-wpl": { - "source": "iana", - "extensions": ["wpl"] - }, - "application/vnd.ms-xpsdocument": { - "source": "iana", - "compressible": false, - "extensions": ["xps"] - }, - "application/vnd.msa-disk-image": { - "source": "iana" - }, - "application/vnd.mseq": { - "source": "iana", - "extensions": ["mseq"] - }, - "application/vnd.msign": { - "source": "iana" - }, - "application/vnd.multiad.creator": { - "source": "iana" - }, - "application/vnd.multiad.creator.cif": { - "source": "iana" - }, - "application/vnd.music-niff": { - "source": "iana" - }, - "application/vnd.musician": { - "source": "iana", - "extensions": ["mus"] - }, - "application/vnd.muvee.style": { - "source": "iana", - "extensions": ["msty"] - }, - "application/vnd.mynfc": { - "source": "iana", - "extensions": ["taglet"] - }, - "application/vnd.ncd.control": { - "source": "iana" - }, - "application/vnd.ncd.reference": { - "source": "iana" - }, - "application/vnd.nervana": { - "source": "iana" - }, - "application/vnd.netfpx": { - "source": "iana" - }, - "application/vnd.neurolanguage.nlu": { - "source": "iana", - "extensions": ["nlu"] - }, - "application/vnd.nintendo.nitro.rom": { - "source": "iana" - }, - "application/vnd.nintendo.snes.rom": { - "source": "iana" - }, - "application/vnd.nitf": { - "source": "iana", - "extensions": ["ntf","nitf"] - }, - "application/vnd.noblenet-directory": { - "source": "iana", - "extensions": ["nnd"] - }, - "application/vnd.noblenet-sealer": { - "source": "iana", - "extensions": ["nns"] - }, - "application/vnd.noblenet-web": { - "source": "iana", - "extensions": ["nnw"] - }, - "application/vnd.nokia.catalogs": { - "source": "iana" - }, - "application/vnd.nokia.conml+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.conml+xml": { - "source": "iana" - }, - "application/vnd.nokia.iptv.config+xml": { - "source": "iana" - }, - "application/vnd.nokia.isds-radio-presets": { - "source": "iana" - }, - "application/vnd.nokia.landmark+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.landmark+xml": { - "source": "iana" - }, - "application/vnd.nokia.landmarkcollection+xml": { - "source": "iana" - }, - "application/vnd.nokia.n-gage.ac+xml": { - "source": "iana" - }, - "application/vnd.nokia.n-gage.data": { - "source": "iana", - "extensions": ["ngdat"] - }, - "application/vnd.nokia.n-gage.symbian.install": { - "source": "iana", - "extensions": ["n-gage"] - }, - "application/vnd.nokia.ncd": { - "source": "iana" - }, - "application/vnd.nokia.pcd+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.pcd+xml": { - "source": "iana" - }, - "application/vnd.nokia.radio-preset": { - "source": "iana", - "extensions": ["rpst"] - }, - "application/vnd.nokia.radio-presets": { - "source": "iana", - "extensions": ["rpss"] - }, - "application/vnd.novadigm.edm": { - "source": "iana", - "extensions": ["edm"] - }, - "application/vnd.novadigm.edx": { - "source": "iana", - "extensions": ["edx"] - }, - "application/vnd.novadigm.ext": { - "source": "iana", - "extensions": ["ext"] - }, - "application/vnd.ntt-local.content-share": { - "source": "iana" - }, - "application/vnd.ntt-local.file-transfer": { - "source": "iana" - }, - "application/vnd.ntt-local.ogw_remote-access": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_remote": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_tcp_stream": { - "source": "iana" - }, - "application/vnd.oasis.opendocument.chart": { - "source": "iana", - "extensions": ["odc"] - }, - "application/vnd.oasis.opendocument.chart-template": { - "source": "iana", - "extensions": ["otc"] - }, - "application/vnd.oasis.opendocument.database": { - "source": "iana", - "extensions": ["odb"] - }, - "application/vnd.oasis.opendocument.formula": { - "source": "iana", - "extensions": ["odf"] - }, - "application/vnd.oasis.opendocument.formula-template": { - "source": "iana", - "extensions": ["odft"] - }, - "application/vnd.oasis.opendocument.graphics": { - "source": "iana", - "compressible": false, - "extensions": ["odg"] - }, - "application/vnd.oasis.opendocument.graphics-template": { - "source": "iana", - "extensions": ["otg"] - }, - "application/vnd.oasis.opendocument.image": { - "source": "iana", - "extensions": ["odi"] - }, - "application/vnd.oasis.opendocument.image-template": { - "source": "iana", - "extensions": ["oti"] - }, - "application/vnd.oasis.opendocument.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["odp"] - }, - "application/vnd.oasis.opendocument.presentation-template": { - "source": "iana", - "extensions": ["otp"] - }, - "application/vnd.oasis.opendocument.spreadsheet": { - "source": "iana", - "compressible": false, - "extensions": ["ods"] - }, - "application/vnd.oasis.opendocument.spreadsheet-template": { - "source": "iana", - "extensions": ["ots"] - }, - "application/vnd.oasis.opendocument.text": { - "source": "iana", - "compressible": false, - "extensions": ["odt"] - }, - "application/vnd.oasis.opendocument.text-master": { - "source": "iana", - "extensions": ["odm"] - }, - "application/vnd.oasis.opendocument.text-template": { - "source": "iana", - "extensions": ["ott"] - }, - "application/vnd.oasis.opendocument.text-web": { - "source": "iana", - "extensions": ["oth"] - }, - "application/vnd.obn": { - "source": "iana" - }, - "application/vnd.oftn.l10n+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.contentaccessdownload+xml": { - "source": "iana" - }, - "application/vnd.oipf.contentaccessstreaming+xml": { - "source": "iana" - }, - "application/vnd.oipf.cspg-hexbinary": { - "source": "iana" - }, - "application/vnd.oipf.dae.svg+xml": { - "source": "iana" - }, - "application/vnd.oipf.dae.xhtml+xml": { - "source": "iana" - }, - "application/vnd.oipf.mippvcontrolmessage+xml": { - "source": "iana" - }, - "application/vnd.oipf.pae.gem": { - "source": "iana" - }, - "application/vnd.oipf.spdiscovery+xml": { - "source": "iana" - }, - "application/vnd.oipf.spdlist+xml": { - "source": "iana" - }, - "application/vnd.oipf.ueprofile+xml": { - "source": "iana" - }, - "application/vnd.oipf.userprofile+xml": { - "source": "iana" - }, - "application/vnd.olpc-sugar": { - "source": "iana", - "extensions": ["xo"] - }, - "application/vnd.oma-scws-config": { - "source": "iana" - }, - "application/vnd.oma-scws-http-request": { - "source": "iana" - }, - "application/vnd.oma-scws-http-response": { - "source": "iana" - }, - "application/vnd.oma.bcast.associated-procedure-parameter+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.drm-trigger+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.imd+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.ltkm": { - "source": "iana" - }, - "application/vnd.oma.bcast.notification+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.provisioningtrigger": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgboot": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdd+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdu": { - "source": "iana" - }, - "application/vnd.oma.bcast.simple-symbol-container": { - "source": "iana" - }, - "application/vnd.oma.bcast.smartcard-trigger+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.sprov+xml": { - "source": "iana" - }, - "application/vnd.oma.bcast.stkm": { - "source": "iana" - }, - "application/vnd.oma.cab-address-book+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-feature-handler+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-pcc+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-subs-invite+xml": { - "source": "iana" - }, - "application/vnd.oma.cab-user-prefs+xml": { - "source": "iana" - }, - "application/vnd.oma.dcd": { - "source": "iana" - }, - "application/vnd.oma.dcdc": { - "source": "iana" - }, - "application/vnd.oma.dd2+xml": { - "source": "iana", - "extensions": ["dd2"] - }, - "application/vnd.oma.drm.risd+xml": { - "source": "iana" - }, - "application/vnd.oma.group-usage-list+xml": { - "source": "iana" - }, - "application/vnd.oma.pal+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.detailed-progress-report+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.final-report+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.groups+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.invocation-descriptor+xml": { - "source": "iana" - }, - "application/vnd.oma.poc.optimized-progress-report+xml": { - "source": "iana" - }, - "application/vnd.oma.push": { - "source": "iana" - }, - "application/vnd.oma.scidm.messages+xml": { - "source": "iana" - }, - "application/vnd.oma.xcap-directory+xml": { - "source": "iana" - }, - "application/vnd.omads-email+xml": { - "source": "iana" - }, - "application/vnd.omads-file+xml": { - "source": "iana" - }, - "application/vnd.omads-folder+xml": { - "source": "iana" - }, - "application/vnd.omaloc-supl-init": { - "source": "iana" - }, - "application/vnd.openblox.game+xml": { - "source": "iana" - }, - "application/vnd.openblox.game-binary": { - "source": "iana" - }, - "application/vnd.openeye.oeb": { - "source": "iana" - }, - "application/vnd.openofficeorg.extension": { - "source": "apache", - "extensions": ["oxt"] - }, - "application/vnd.openxmlformats-officedocument.custom-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawing+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.extended-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["pptx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide": { - "source": "iana", - "extensions": ["sldx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { - "source": "iana", - "extensions": ["ppsx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.template": { - "source": "apache", - "extensions": ["potx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { - "source": "iana", - "compressible": false, - "extensions": ["xlsx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { - "source": "apache", - "extensions": ["xltx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.theme+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.themeoverride+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.vmldrawing": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml-template": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { - "source": "iana", - "compressible": false, - "extensions": ["docx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { - "source": "apache", - "extensions": ["dotx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.core-properties+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { - "source": "iana" - }, - "application/vnd.openxmlformats-package.relationships+xml": { - "source": "iana" - }, - "application/vnd.oracle.resource+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.orange.indata": { - "source": "iana" - }, - "application/vnd.osa.netdeploy": { - "source": "iana" - }, - "application/vnd.osgeo.mapguide.package": { - "source": "iana", - "extensions": ["mgp"] - }, - "application/vnd.osgi.bundle": { - "source": "iana" - }, - "application/vnd.osgi.dp": { - "source": "iana", - "extensions": ["dp"] - }, - "application/vnd.osgi.subsystem": { - "source": "iana", - "extensions": ["esa"] - }, - "application/vnd.otps.ct-kip+xml": { - "source": "iana" - }, - "application/vnd.oxli.countgraph": { - "source": "iana" - }, - "application/vnd.pagerduty+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.palm": { - "source": "iana", - "extensions": ["pdb","pqa","oprc"] - }, - "application/vnd.panoply": { - "source": "iana" - }, - "application/vnd.paos+xml": { - "source": "iana" - }, - "application/vnd.paos.xml": { - "source": "apache" - }, - "application/vnd.pawaafile": { - "source": "iana", - "extensions": ["paw"] - }, - "application/vnd.pcos": { - "source": "iana" - }, - "application/vnd.pg.format": { - "source": "iana", - "extensions": ["str"] - }, - "application/vnd.pg.osasli": { - "source": "iana", - "extensions": ["ei6"] - }, - "application/vnd.piaccess.application-licence": { - "source": "iana" - }, - "application/vnd.picsel": { - "source": "iana", - "extensions": ["efif"] - }, - "application/vnd.pmi.widget": { - "source": "iana", - "extensions": ["wg"] - }, - "application/vnd.poc.group-advertisement+xml": { - "source": "iana" - }, - "application/vnd.pocketlearn": { - "source": "iana", - "extensions": ["plf"] - }, - "application/vnd.powerbuilder6": { - "source": "iana", - "extensions": ["pbd"] - }, - "application/vnd.powerbuilder6-s": { - "source": "iana" - }, - "application/vnd.powerbuilder7": { - "source": "iana" - }, - "application/vnd.powerbuilder7-s": { - "source": "iana" - }, - "application/vnd.powerbuilder75": { - "source": "iana" - }, - "application/vnd.powerbuilder75-s": { - "source": "iana" - }, - "application/vnd.preminet": { - "source": "iana" - }, - "application/vnd.previewsystems.box": { - "source": "iana", - "extensions": ["box"] - }, - "application/vnd.proteus.magazine": { - "source": "iana", - "extensions": ["mgz"] - }, - "application/vnd.publishare-delta-tree": { - "source": "iana", - "extensions": ["qps"] - }, - "application/vnd.pvi.ptid1": { - "source": "iana", - "extensions": ["ptid"] - }, - "application/vnd.pwg-multiplexed": { - "source": "iana" - }, - "application/vnd.pwg-xhtml-print+xml": { - "source": "iana" - }, - "application/vnd.qualcomm.brew-app-res": { - "source": "iana" - }, - "application/vnd.quark.quarkxpress": { - "source": "iana", - "extensions": ["qxd","qxt","qwd","qwt","qxl","qxb"] - }, - "application/vnd.quobject-quoxdocument": { - "source": "iana" - }, - "application/vnd.radisys.moml+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-conf+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-conn+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-dialog+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-audit-stream+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-conf+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-base+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-fax-detect+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-group+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-speech+xml": { - "source": "iana" - }, - "application/vnd.radisys.msml-dialog-transform+xml": { - "source": "iana" - }, - "application/vnd.rainstor.data": { - "source": "iana" - }, - "application/vnd.rapid": { - "source": "iana" - }, - "application/vnd.realvnc.bed": { - "source": "iana", - "extensions": ["bed"] - }, - "application/vnd.recordare.musicxml": { - "source": "iana", - "extensions": ["mxl"] - }, - "application/vnd.recordare.musicxml+xml": { - "source": "iana", - "extensions": ["musicxml"] - }, - "application/vnd.renlearn.rlprint": { - "source": "iana" - }, - "application/vnd.rig.cryptonote": { - "source": "iana", - "extensions": ["cryptonote"] - }, - "application/vnd.rim.cod": { - "source": "apache", - "extensions": ["cod"] - }, - "application/vnd.rn-realmedia": { - "source": "apache", - "extensions": ["rm"] - }, - "application/vnd.rn-realmedia-vbr": { - "source": "apache", - "extensions": ["rmvb"] - }, - "application/vnd.route66.link66+xml": { - "source": "iana", - "extensions": ["link66"] - }, - "application/vnd.rs-274x": { - "source": "iana" - }, - "application/vnd.ruckus.download": { - "source": "iana" - }, - "application/vnd.s3sms": { - "source": "iana" - }, - "application/vnd.sailingtracker.track": { - "source": "iana", - "extensions": ["st"] - }, - "application/vnd.sbm.cid": { - "source": "iana" - }, - "application/vnd.sbm.mid2": { - "source": "iana" - }, - "application/vnd.scribus": { - "source": "iana" - }, - "application/vnd.sealed.3df": { - "source": "iana" - }, - "application/vnd.sealed.csf": { - "source": "iana" - }, - "application/vnd.sealed.doc": { - "source": "iana" - }, - "application/vnd.sealed.eml": { - "source": "iana" - }, - "application/vnd.sealed.mht": { - "source": "iana" - }, - "application/vnd.sealed.net": { - "source": "iana" - }, - "application/vnd.sealed.ppt": { - "source": "iana" - }, - "application/vnd.sealed.tiff": { - "source": "iana" - }, - "application/vnd.sealed.xls": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.html": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.pdf": { - "source": "iana" - }, - "application/vnd.seemail": { - "source": "iana", - "extensions": ["see"] - }, - "application/vnd.sema": { - "source": "iana", - "extensions": ["sema"] - }, - "application/vnd.semd": { - "source": "iana", - "extensions": ["semd"] - }, - "application/vnd.semf": { - "source": "iana", - "extensions": ["semf"] - }, - "application/vnd.shana.informed.formdata": { - "source": "iana", - "extensions": ["ifm"] - }, - "application/vnd.shana.informed.formtemplate": { - "source": "iana", - "extensions": ["itp"] - }, - "application/vnd.shana.informed.interchange": { - "source": "iana", - "extensions": ["iif"] - }, - "application/vnd.shana.informed.package": { - "source": "iana", - "extensions": ["ipk"] - }, - "application/vnd.simtech-mindmapper": { - "source": "iana", - "extensions": ["twd","twds"] - }, - "application/vnd.siren+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.smaf": { - "source": "iana", - "extensions": ["mmf"] - }, - "application/vnd.smart.notebook": { - "source": "iana" - }, - "application/vnd.smart.teacher": { - "source": "iana", - "extensions": ["teacher"] - }, - "application/vnd.software602.filler.form+xml": { - "source": "iana" - }, - "application/vnd.software602.filler.form-xml-zip": { - "source": "iana" - }, - "application/vnd.solent.sdkm+xml": { - "source": "iana", - "extensions": ["sdkm","sdkd"] - }, - "application/vnd.spotfire.dxp": { - "source": "iana", - "extensions": ["dxp"] - }, - "application/vnd.spotfire.sfs": { - "source": "iana", - "extensions": ["sfs"] - }, - "application/vnd.sss-cod": { - "source": "iana" - }, - "application/vnd.sss-dtf": { - "source": "iana" - }, - "application/vnd.sss-ntf": { - "source": "iana" - }, - "application/vnd.stardivision.calc": { - "source": "apache", - "extensions": ["sdc"] - }, - "application/vnd.stardivision.draw": { - "source": "apache", - "extensions": ["sda"] - }, - "application/vnd.stardivision.impress": { - "source": "apache", - "extensions": ["sdd"] - }, - "application/vnd.stardivision.math": { - "source": "apache", - "extensions": ["smf"] - }, - "application/vnd.stardivision.writer": { - "source": "apache", - "extensions": ["sdw","vor"] - }, - "application/vnd.stardivision.writer-global": { - "source": "apache", - "extensions": ["sgl"] - }, - "application/vnd.stepmania.package": { - "source": "iana", - "extensions": ["smzip"] - }, - "application/vnd.stepmania.stepchart": { - "source": "iana", - "extensions": ["sm"] - }, - "application/vnd.street-stream": { - "source": "iana" - }, - "application/vnd.sun.wadl+xml": { - "source": "iana" - }, - "application/vnd.sun.xml.calc": { - "source": "apache", - "extensions": ["sxc"] - }, - "application/vnd.sun.xml.calc.template": { - "source": "apache", - "extensions": ["stc"] - }, - "application/vnd.sun.xml.draw": { - "source": "apache", - "extensions": ["sxd"] - }, - "application/vnd.sun.xml.draw.template": { - "source": "apache", - "extensions": ["std"] - }, - "application/vnd.sun.xml.impress": { - "source": "apache", - "extensions": ["sxi"] - }, - "application/vnd.sun.xml.impress.template": { - "source": "apache", - "extensions": ["sti"] - }, - "application/vnd.sun.xml.math": { - "source": "apache", - "extensions": ["sxm"] - }, - "application/vnd.sun.xml.writer": { - "source": "apache", - "extensions": ["sxw"] - }, - "application/vnd.sun.xml.writer.global": { - "source": "apache", - "extensions": ["sxg"] - }, - "application/vnd.sun.xml.writer.template": { - "source": "apache", - "extensions": ["stw"] - }, - "application/vnd.sus-calendar": { - "source": "iana", - "extensions": ["sus","susp"] - }, - "application/vnd.svd": { - "source": "iana", - "extensions": ["svd"] - }, - "application/vnd.swiftview-ics": { - "source": "iana" - }, - "application/vnd.symbian.install": { - "source": "apache", - "extensions": ["sis","sisx"] - }, - "application/vnd.syncml+xml": { - "source": "iana", - "extensions": ["xsm"] - }, - "application/vnd.syncml.dm+wbxml": { - "source": "iana", - "extensions": ["bdm"] - }, - "application/vnd.syncml.dm+xml": { - "source": "iana", - "extensions": ["xdm"] - }, - "application/vnd.syncml.dm.notification": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+xml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+xml": { - "source": "iana" - }, - "application/vnd.syncml.ds.notification": { - "source": "iana" - }, - "application/vnd.tao.intent-module-archive": { - "source": "iana", - "extensions": ["tao"] - }, - "application/vnd.tcpdump.pcap": { - "source": "iana", - "extensions": ["pcap","cap","dmp"] - }, - "application/vnd.tmd.mediaflex.api+xml": { - "source": "iana" - }, - "application/vnd.tml": { - "source": "iana" - }, - "application/vnd.tmobile-livetv": { - "source": "iana", - "extensions": ["tmo"] - }, - "application/vnd.trid.tpt": { - "source": "iana", - "extensions": ["tpt"] - }, - "application/vnd.triscape.mxs": { - "source": "iana", - "extensions": ["mxs"] - }, - "application/vnd.trueapp": { - "source": "iana", - "extensions": ["tra"] - }, - "application/vnd.truedoc": { - "source": "iana" - }, - "application/vnd.ubisoft.webplayer": { - "source": "iana" - }, - "application/vnd.ufdl": { - "source": "iana", - "extensions": ["ufd","ufdl"] - }, - "application/vnd.uiq.theme": { - "source": "iana", - "extensions": ["utz"] - }, - "application/vnd.umajin": { - "source": "iana", - "extensions": ["umj"] - }, - "application/vnd.unity": { - "source": "iana", - "extensions": ["unityweb"] - }, - "application/vnd.uoml+xml": { - "source": "iana", - "extensions": ["uoml"] - }, - "application/vnd.uplanet.alert": { - "source": "iana" - }, - "application/vnd.uplanet.alert-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.channel": { - "source": "iana" - }, - "application/vnd.uplanet.channel-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.list": { - "source": "iana" - }, - "application/vnd.uplanet.list-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.signal": { - "source": "iana" - }, - "application/vnd.uri-map": { - "source": "iana" - }, - "application/vnd.valve.source.material": { - "source": "iana" - }, - "application/vnd.vcx": { - "source": "iana", - "extensions": ["vcx"] - }, - "application/vnd.vd-study": { - "source": "iana" - }, - "application/vnd.vectorworks": { - "source": "iana" - }, - "application/vnd.verimatrix.vcas": { - "source": "iana" - }, - "application/vnd.vidsoft.vidconference": { - "source": "iana" - }, - "application/vnd.visio": { - "source": "iana", - "extensions": ["vsd","vst","vss","vsw"] - }, - "application/vnd.visionary": { - "source": "iana", - "extensions": ["vis"] - }, - "application/vnd.vividence.scriptfile": { - "source": "iana" - }, - "application/vnd.vsf": { - "source": "iana", - "extensions": ["vsf"] - }, - "application/vnd.wap.sic": { - "source": "iana" - }, - "application/vnd.wap.slc": { - "source": "iana" - }, - "application/vnd.wap.wbxml": { - "source": "iana", - "extensions": ["wbxml"] - }, - "application/vnd.wap.wmlc": { - "source": "iana", - "extensions": ["wmlc"] - }, - "application/vnd.wap.wmlscriptc": { - "source": "iana", - "extensions": ["wmlsc"] - }, - "application/vnd.webturbo": { - "source": "iana", - "extensions": ["wtb"] - }, - "application/vnd.wfa.p2p": { - "source": "iana" - }, - "application/vnd.wfa.wsc": { - "source": "iana" - }, - "application/vnd.windows.devicepairing": { - "source": "iana" - }, - "application/vnd.wmc": { - "source": "iana" - }, - "application/vnd.wmf.bootstrap": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica.package": { - "source": "iana" - }, - "application/vnd.wolfram.player": { - "source": "iana", - "extensions": ["nbp"] - }, - "application/vnd.wordperfect": { - "source": "iana", - "extensions": ["wpd"] - }, - "application/vnd.wqd": { - "source": "iana", - "extensions": ["wqd"] - }, - "application/vnd.wrq-hp3000-labelled": { - "source": "iana" - }, - "application/vnd.wt.stf": { - "source": "iana", - "extensions": ["stf"] - }, - "application/vnd.wv.csp+wbxml": { - "source": "iana" - }, - "application/vnd.wv.csp+xml": { - "source": "iana" - }, - "application/vnd.wv.ssp+xml": { - "source": "iana" - }, - "application/vnd.xacml+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.xara": { - "source": "iana", - "extensions": ["xar"] - }, - "application/vnd.xfdl": { - "source": "iana", - "extensions": ["xfdl"] - }, - "application/vnd.xfdl.webform": { - "source": "iana" - }, - "application/vnd.xmi+xml": { - "source": "iana" - }, - "application/vnd.xmpie.cpkg": { - "source": "iana" - }, - "application/vnd.xmpie.dpkg": { - "source": "iana" - }, - "application/vnd.xmpie.plan": { - "source": "iana" - }, - "application/vnd.xmpie.ppkg": { - "source": "iana" - }, - "application/vnd.xmpie.xlim": { - "source": "iana" - }, - "application/vnd.yamaha.hv-dic": { - "source": "iana", - "extensions": ["hvd"] - }, - "application/vnd.yamaha.hv-script": { - "source": "iana", - "extensions": ["hvs"] - }, - "application/vnd.yamaha.hv-voice": { - "source": "iana", - "extensions": ["hvp"] - }, - "application/vnd.yamaha.openscoreformat": { - "source": "iana", - "extensions": ["osf"] - }, - "application/vnd.yamaha.openscoreformat.osfpvg+xml": { - "source": "iana", - "extensions": ["osfpvg"] - }, - "application/vnd.yamaha.remote-setup": { - "source": "iana" - }, - "application/vnd.yamaha.smaf-audio": { - "source": "iana", - "extensions": ["saf"] - }, - "application/vnd.yamaha.smaf-phrase": { - "source": "iana", - "extensions": ["spf"] - }, - "application/vnd.yamaha.through-ngn": { - "source": "iana" - }, - "application/vnd.yamaha.tunnel-udpencap": { - "source": "iana" - }, - "application/vnd.yaoweme": { - "source": "iana" - }, - "application/vnd.yellowriver-custom-menu": { - "source": "iana", - "extensions": ["cmp"] - }, - "application/vnd.zul": { - "source": "iana", - "extensions": ["zir","zirz"] - }, - "application/vnd.zzazz.deck+xml": { - "source": "iana", - "extensions": ["zaz"] - }, - "application/voicexml+xml": { - "source": "iana", - "extensions": ["vxml"] - }, - "application/vq-rtcpxr": { - "source": "iana" - }, - "application/watcherinfo+xml": { - "source": "iana" - }, - "application/whoispp-query": { - "source": "iana" - }, - "application/whoispp-response": { - "source": "iana" - }, - "application/widget": { - "source": "iana", - "extensions": ["wgt"] - }, - "application/winhlp": { - "source": "apache", - "extensions": ["hlp"] - }, - "application/wita": { - "source": "iana" - }, - "application/wordperfect5.1": { - "source": "iana" - }, - "application/wsdl+xml": { - "source": "iana", - "extensions": ["wsdl"] - }, - "application/wspolicy+xml": { - "source": "iana", - "extensions": ["wspolicy"] - }, - "application/x-7z-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["7z"] - }, - "application/x-abiword": { - "source": "apache", - "extensions": ["abw"] - }, - "application/x-ace-compressed": { - "source": "apache", - "extensions": ["ace"] - }, - "application/x-amf": { - "source": "apache" - }, - "application/x-apple-diskimage": { - "source": "apache", - "extensions": ["dmg"] - }, - "application/x-authorware-bin": { - "source": "apache", - "extensions": ["aab","x32","u32","vox"] - }, - "application/x-authorware-map": { - "source": "apache", - "extensions": ["aam"] - }, - "application/x-authorware-seg": { - "source": "apache", - "extensions": ["aas"] - }, - "application/x-bcpio": { - "source": "apache", - "extensions": ["bcpio"] - }, - "application/x-bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/x-bittorrent": { - "source": "apache", - "extensions": ["torrent"] - }, - "application/x-blorb": { - "source": "apache", - "extensions": ["blb","blorb"] - }, - "application/x-bzip": { - "source": "apache", - "compressible": false, - "extensions": ["bz"] - }, - "application/x-bzip2": { - "source": "apache", - "compressible": false, - "extensions": ["bz2","boz"] - }, - "application/x-cbr": { - "source": "apache", - "extensions": ["cbr","cba","cbt","cbz","cb7"] - }, - "application/x-cdlink": { - "source": "apache", - "extensions": ["vcd"] - }, - "application/x-cfs-compressed": { - "source": "apache", - "extensions": ["cfs"] - }, - "application/x-chat": { - "source": "apache", - "extensions": ["chat"] - }, - "application/x-chess-pgn": { - "source": "apache", - "extensions": ["pgn"] - }, - "application/x-chrome-extension": { - "extensions": ["crx"] - }, - "application/x-cocoa": { - "source": "nginx", - "extensions": ["cco"] - }, - "application/x-compress": { - "source": "apache" - }, - "application/x-conference": { - "source": "apache", - "extensions": ["nsc"] - }, - "application/x-cpio": { - "source": "apache", - "extensions": ["cpio"] - }, - "application/x-csh": { - "source": "apache", - "extensions": ["csh"] - }, - "application/x-deb": { - "compressible": false - }, - "application/x-debian-package": { - "source": "apache", - "extensions": ["deb","udeb"] - }, - "application/x-dgc-compressed": { - "source": "apache", - "extensions": ["dgc"] - }, - "application/x-director": { - "source": "apache", - "extensions": ["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"] - }, - "application/x-doom": { - "source": "apache", - "extensions": ["wad"] - }, - "application/x-dtbncx+xml": { - "source": "apache", - "extensions": ["ncx"] - }, - "application/x-dtbook+xml": { - "source": "apache", - "extensions": ["dtb"] - }, - "application/x-dtbresource+xml": { - "source": "apache", - "extensions": ["res"] - }, - "application/x-dvi": { - "source": "apache", - "compressible": false, - "extensions": ["dvi"] - }, - "application/x-envoy": { - "source": "apache", - "extensions": ["evy"] - }, - "application/x-eva": { - "source": "apache", - "extensions": ["eva"] - }, - "application/x-font-bdf": { - "source": "apache", - "extensions": ["bdf"] - }, - "application/x-font-dos": { - "source": "apache" - }, - "application/x-font-framemaker": { - "source": "apache" - }, - "application/x-font-ghostscript": { - "source": "apache", - "extensions": ["gsf"] - }, - "application/x-font-libgrx": { - "source": "apache" - }, - "application/x-font-linux-psf": { - "source": "apache", - "extensions": ["psf"] - }, - "application/x-font-otf": { - "source": "apache", - "compressible": true, - "extensions": ["otf"] - }, - "application/x-font-pcf": { - "source": "apache", - "extensions": ["pcf"] - }, - "application/x-font-snf": { - "source": "apache", - "extensions": ["snf"] - }, - "application/x-font-speedo": { - "source": "apache" - }, - "application/x-font-sunos-news": { - "source": "apache" - }, - "application/x-font-ttf": { - "source": "apache", - "compressible": true, - "extensions": ["ttf","ttc"] - }, - "application/x-font-type1": { - "source": "apache", - "extensions": ["pfa","pfb","pfm","afm"] - }, - "application/x-font-vfont": { - "source": "apache" - }, - "application/x-freearc": { - "source": "apache", - "extensions": ["arc"] - }, - "application/x-futuresplash": { - "source": "apache", - "extensions": ["spl"] - }, - "application/x-gca-compressed": { - "source": "apache", - "extensions": ["gca"] - }, - "application/x-glulx": { - "source": "apache", - "extensions": ["ulx"] - }, - "application/x-gnumeric": { - "source": "apache", - "extensions": ["gnumeric"] - }, - "application/x-gramps-xml": { - "source": "apache", - "extensions": ["gramps"] - }, - "application/x-gtar": { - "source": "apache", - "extensions": ["gtar"] - }, - "application/x-gzip": { - "source": "apache" - }, - "application/x-hdf": { - "source": "apache", - "extensions": ["hdf"] - }, - "application/x-httpd-php": { - "compressible": true, - "extensions": ["php"] - }, - "application/x-install-instructions": { - "source": "apache", - "extensions": ["install"] - }, - "application/x-iso9660-image": { - "source": "apache", - "extensions": ["iso"] - }, - "application/x-java-archive-diff": { - "source": "nginx", - "extensions": ["jardiff"] - }, - "application/x-java-jnlp-file": { - "source": "apache", - "compressible": false, - "extensions": ["jnlp"] - }, - "application/x-javascript": { - "compressible": true - }, - "application/x-latex": { - "source": "apache", - "compressible": false, - "extensions": ["latex"] - }, - "application/x-lua-bytecode": { - "extensions": ["luac"] - }, - "application/x-lzh-compressed": { - "source": "apache", - "extensions": ["lzh","lha"] - }, - "application/x-makeself": { - "source": "nginx", - "extensions": ["run"] - }, - "application/x-mie": { - "source": "apache", - "extensions": ["mie"] - }, - "application/x-mobipocket-ebook": { - "source": "apache", - "extensions": ["prc","mobi"] - }, - "application/x-mpegurl": { - "compressible": false - }, - "application/x-ms-application": { - "source": "apache", - "extensions": ["application"] - }, - "application/x-ms-shortcut": { - "source": "apache", - "extensions": ["lnk"] - }, - "application/x-ms-wmd": { - "source": "apache", - "extensions": ["wmd"] - }, - "application/x-ms-wmz": { - "source": "apache", - "extensions": ["wmz"] - }, - "application/x-ms-xbap": { - "source": "apache", - "extensions": ["xbap"] - }, - "application/x-msaccess": { - "source": "apache", - "extensions": ["mdb"] - }, - "application/x-msbinder": { - "source": "apache", - "extensions": ["obd"] - }, - "application/x-mscardfile": { - "source": "apache", - "extensions": ["crd"] - }, - "application/x-msclip": { - "source": "apache", - "extensions": ["clp"] - }, - "application/x-msdos-program": { - "extensions": ["exe"] - }, - "application/x-msdownload": { - "source": "apache", - "extensions": ["exe","dll","com","bat","msi"] - }, - "application/x-msmediaview": { - "source": "apache", - "extensions": ["mvb","m13","m14"] - }, - "application/x-msmetafile": { - "source": "apache", - "extensions": ["wmf","wmz","emf","emz"] - }, - "application/x-msmoney": { - "source": "apache", - "extensions": ["mny"] - }, - "application/x-mspublisher": { - "source": "apache", - "extensions": ["pub"] - }, - "application/x-msschedule": { - "source": "apache", - "extensions": ["scd"] - }, - "application/x-msterminal": { - "source": "apache", - "extensions": ["trm"] - }, - "application/x-mswrite": { - "source": "apache", - "extensions": ["wri"] - }, - "application/x-netcdf": { - "source": "apache", - "extensions": ["nc","cdf"] - }, - "application/x-ns-proxy-autoconfig": { - "compressible": true, - "extensions": ["pac"] - }, - "application/x-nzb": { - "source": "apache", - "extensions": ["nzb"] - }, - "application/x-perl": { - "source": "nginx", - "extensions": ["pl","pm"] - }, - "application/x-pilot": { - "source": "nginx", - "extensions": ["prc","pdb"] - }, - "application/x-pkcs12": { - "source": "apache", - "compressible": false, - "extensions": ["p12","pfx"] - }, - "application/x-pkcs7-certificates": { - "source": "apache", - "extensions": ["p7b","spc"] - }, - "application/x-pkcs7-certreqresp": { - "source": "apache", - "extensions": ["p7r"] - }, - "application/x-rar-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["rar"] - }, - "application/x-redhat-package-manager": { - "source": "nginx", - "extensions": ["rpm"] - }, - "application/x-research-info-systems": { - "source": "apache", - "extensions": ["ris"] - }, - "application/x-sea": { - "source": "nginx", - "extensions": ["sea"] - }, - "application/x-sh": { - "source": "apache", - "compressible": true, - "extensions": ["sh"] - }, - "application/x-shar": { - "source": "apache", - "extensions": ["shar"] - }, - "application/x-shockwave-flash": { - "source": "apache", - "compressible": false, - "extensions": ["swf"] - }, - "application/x-silverlight-app": { - "source": "apache", - "extensions": ["xap"] - }, - "application/x-sql": { - "source": "apache", - "extensions": ["sql"] - }, - "application/x-stuffit": { - "source": "apache", - "compressible": false, - "extensions": ["sit"] - }, - "application/x-stuffitx": { - "source": "apache", - "extensions": ["sitx"] - }, - "application/x-subrip": { - "source": "apache", - "extensions": ["srt"] - }, - "application/x-sv4cpio": { - "source": "apache", - "extensions": ["sv4cpio"] - }, - "application/x-sv4crc": { - "source": "apache", - "extensions": ["sv4crc"] - }, - "application/x-t3vm-image": { - "source": "apache", - "extensions": ["t3"] - }, - "application/x-tads": { - "source": "apache", - "extensions": ["gam"] - }, - "application/x-tar": { - "source": "apache", - "compressible": true, - "extensions": ["tar"] - }, - "application/x-tcl": { - "source": "apache", - "extensions": ["tcl","tk"] - }, - "application/x-tex": { - "source": "apache", - "extensions": ["tex"] - }, - "application/x-tex-tfm": { - "source": "apache", - "extensions": ["tfm"] - }, - "application/x-texinfo": { - "source": "apache", - "extensions": ["texinfo","texi"] - }, - "application/x-tgif": { - "source": "apache", - "extensions": ["obj"] - }, - "application/x-ustar": { - "source": "apache", - "extensions": ["ustar"] - }, - "application/x-wais-source": { - "source": "apache", - "extensions": ["src"] - }, - "application/x-web-app-manifest+json": { - "compressible": true, - "extensions": ["webapp"] - }, - "application/x-www-form-urlencoded": { - "source": "iana", - "compressible": true - }, - "application/x-x509-ca-cert": { - "source": "apache", - "extensions": ["der","crt","pem"] - }, - "application/x-xfig": { - "source": "apache", - "extensions": ["fig"] - }, - "application/x-xliff+xml": { - "source": "apache", - "extensions": ["xlf"] - }, - "application/x-xpinstall": { - "source": "apache", - "compressible": false, - "extensions": ["xpi"] - }, - "application/x-xz": { - "source": "apache", - "extensions": ["xz"] - }, - "application/x-zmachine": { - "source": "apache", - "extensions": ["z1","z2","z3","z4","z5","z6","z7","z8"] - }, - "application/x400-bp": { - "source": "iana" - }, - "application/xacml+xml": { - "source": "iana" - }, - "application/xaml+xml": { - "source": "apache", - "extensions": ["xaml"] - }, - "application/xcap-att+xml": { - "source": "iana" - }, - "application/xcap-caps+xml": { - "source": "iana" - }, - "application/xcap-diff+xml": { - "source": "iana", - "extensions": ["xdf"] - }, - "application/xcap-el+xml": { - "source": "iana" - }, - "application/xcap-error+xml": { - "source": "iana" - }, - "application/xcap-ns+xml": { - "source": "iana" - }, - "application/xcon-conference-info+xml": { - "source": "iana" - }, - "application/xcon-conference-info-diff+xml": { - "source": "iana" - }, - "application/xenc+xml": { - "source": "iana", - "extensions": ["xenc"] - }, - "application/xhtml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xhtml","xht"] - }, - "application/xhtml-voice+xml": { - "source": "apache" - }, - "application/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml","xsl","xsd","rng"] - }, - "application/xml-dtd": { - "source": "iana", - "compressible": true, - "extensions": ["dtd"] - }, - "application/xml-external-parsed-entity": { - "source": "iana" - }, - "application/xml-patch+xml": { - "source": "iana" - }, - "application/xmpp+xml": { - "source": "iana" - }, - "application/xop+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xop"] - }, - "application/xproc+xml": { - "source": "apache", - "extensions": ["xpl"] - }, - "application/xslt+xml": { - "source": "iana", - "extensions": ["xslt"] - }, - "application/xspf+xml": { - "source": "apache", - "extensions": ["xspf"] - }, - "application/xv+xml": { - "source": "iana", - "extensions": ["mxml","xhvml","xvml","xvm"] - }, - "application/yang": { - "source": "iana", - "extensions": ["yang"] - }, - "application/yin+xml": { - "source": "iana", - "extensions": ["yin"] - }, - "application/zip": { - "source": "iana", - "compressible": false, - "extensions": ["zip"] - }, - "application/zlib": { - "source": "iana" - }, - "audio/1d-interleaved-parityfec": { - "source": "iana" - }, - "audio/32kadpcm": { - "source": "iana" - }, - "audio/3gpp": { - "source": "iana" - }, - "audio/3gpp2": { - "source": "iana" - }, - "audio/ac3": { - "source": "iana" - }, - "audio/adpcm": { - "source": "apache", - "extensions": ["adp"] - }, - "audio/amr": { - "source": "iana" - }, - "audio/amr-wb": { - "source": "iana" - }, - "audio/amr-wb+": { - "source": "iana" - }, - "audio/aptx": { - "source": "iana" - }, - "audio/asc": { - "source": "iana" - }, - "audio/atrac-advanced-lossless": { - "source": "iana" - }, - "audio/atrac-x": { - "source": "iana" - }, - "audio/atrac3": { - "source": "iana" - }, - "audio/basic": { - "source": "iana", - "compressible": false, - "extensions": ["au","snd"] - }, - "audio/bv16": { - "source": "iana" - }, - "audio/bv32": { - "source": "iana" - }, - "audio/clearmode": { - "source": "iana" - }, - "audio/cn": { - "source": "iana" - }, - "audio/dat12": { - "source": "iana" - }, - "audio/dls": { - "source": "iana" - }, - "audio/dsr-es201108": { - "source": "iana" - }, - "audio/dsr-es202050": { - "source": "iana" - }, - "audio/dsr-es202211": { - "source": "iana" - }, - "audio/dsr-es202212": { - "source": "iana" - }, - "audio/dv": { - "source": "iana" - }, - "audio/dvi4": { - "source": "iana" - }, - "audio/eac3": { - "source": "iana" - }, - "audio/encaprtp": { - "source": "iana" - }, - "audio/evrc": { - "source": "iana" - }, - "audio/evrc-qcp": { - "source": "iana" - }, - "audio/evrc0": { - "source": "iana" - }, - "audio/evrc1": { - "source": "iana" - }, - "audio/evrcb": { - "source": "iana" - }, - "audio/evrcb0": { - "source": "iana" - }, - "audio/evrcb1": { - "source": "iana" - }, - "audio/evrcnw": { - "source": "iana" - }, - "audio/evrcnw0": { - "source": "iana" - }, - "audio/evrcnw1": { - "source": "iana" - }, - "audio/evrcwb": { - "source": "iana" - }, - "audio/evrcwb0": { - "source": "iana" - }, - "audio/evrcwb1": { - "source": "iana" - }, - "audio/evs": { - "source": "iana" - }, - "audio/fwdred": { - "source": "iana" - }, - "audio/g711-0": { - "source": "iana" - }, - "audio/g719": { - "source": "iana" - }, - "audio/g722": { - "source": "iana" - }, - "audio/g7221": { - "source": "iana" - }, - "audio/g723": { - "source": "iana" - }, - "audio/g726-16": { - "source": "iana" - }, - "audio/g726-24": { - "source": "iana" - }, - "audio/g726-32": { - "source": "iana" - }, - "audio/g726-40": { - "source": "iana" - }, - "audio/g728": { - "source": "iana" - }, - "audio/g729": { - "source": "iana" - }, - "audio/g7291": { - "source": "iana" - }, - "audio/g729d": { - "source": "iana" - }, - "audio/g729e": { - "source": "iana" - }, - "audio/gsm": { - "source": "iana" - }, - "audio/gsm-efr": { - "source": "iana" - }, - "audio/gsm-hr-08": { - "source": "iana" - }, - "audio/ilbc": { - "source": "iana" - }, - "audio/ip-mr_v2.5": { - "source": "iana" - }, - "audio/isac": { - "source": "apache" - }, - "audio/l16": { - "source": "iana" - }, - "audio/l20": { - "source": "iana" - }, - "audio/l24": { - "source": "iana", - "compressible": false - }, - "audio/l8": { - "source": "iana" - }, - "audio/lpc": { - "source": "iana" - }, - "audio/midi": { - "source": "apache", - "extensions": ["mid","midi","kar","rmi"] - }, - "audio/mobile-xmf": { - "source": "iana" - }, - "audio/mp4": { - "source": "iana", - "compressible": false, - "extensions": ["m4a","mp4a"] - }, - "audio/mp4a-latm": { - "source": "iana" - }, - "audio/mpa": { - "source": "iana" - }, - "audio/mpa-robust": { - "source": "iana" - }, - "audio/mpeg": { - "source": "iana", - "compressible": false, - "extensions": ["mpga","mp2","mp2a","mp3","m2a","m3a"] - }, - "audio/mpeg4-generic": { - "source": "iana" - }, - "audio/musepack": { - "source": "apache" - }, - "audio/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["oga","ogg","spx"] - }, - "audio/opus": { - "source": "iana" - }, - "audio/parityfec": { - "source": "iana" - }, - "audio/pcma": { - "source": "iana" - }, - "audio/pcma-wb": { - "source": "iana" - }, - "audio/pcmu": { - "source": "iana" - }, - "audio/pcmu-wb": { - "source": "iana" - }, - "audio/prs.sid": { - "source": "iana" - }, - "audio/qcelp": { - "source": "iana" - }, - "audio/raptorfec": { - "source": "iana" - }, - "audio/red": { - "source": "iana" - }, - "audio/rtp-enc-aescm128": { - "source": "iana" - }, - "audio/rtp-midi": { - "source": "iana" - }, - "audio/rtploopback": { - "source": "iana" - }, - "audio/rtx": { - "source": "iana" - }, - "audio/s3m": { - "source": "apache", - "extensions": ["s3m"] - }, - "audio/silk": { - "source": "apache", - "extensions": ["sil"] - }, - "audio/smv": { - "source": "iana" - }, - "audio/smv-qcp": { - "source": "iana" - }, - "audio/smv0": { - "source": "iana" - }, - "audio/sp-midi": { - "source": "iana" - }, - "audio/speex": { - "source": "iana" - }, - "audio/t140c": { - "source": "iana" - }, - "audio/t38": { - "source": "iana" - }, - "audio/telephone-event": { - "source": "iana" - }, - "audio/tone": { - "source": "iana" - }, - "audio/uemclip": { - "source": "iana" - }, - "audio/ulpfec": { - "source": "iana" - }, - "audio/vdvi": { - "source": "iana" - }, - "audio/vmr-wb": { - "source": "iana" - }, - "audio/vnd.3gpp.iufp": { - "source": "iana" - }, - "audio/vnd.4sb": { - "source": "iana" - }, - "audio/vnd.audiokoz": { - "source": "iana" - }, - "audio/vnd.celp": { - "source": "iana" - }, - "audio/vnd.cisco.nse": { - "source": "iana" - }, - "audio/vnd.cmles.radio-events": { - "source": "iana" - }, - "audio/vnd.cns.anp1": { - "source": "iana" - }, - "audio/vnd.cns.inf1": { - "source": "iana" - }, - "audio/vnd.dece.audio": { - "source": "iana", - "extensions": ["uva","uvva"] - }, - "audio/vnd.digital-winds": { - "source": "iana", - "extensions": ["eol"] - }, - "audio/vnd.dlna.adts": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.1": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.2": { - "source": "iana" - }, - "audio/vnd.dolby.mlp": { - "source": "iana" - }, - "audio/vnd.dolby.mps": { - "source": "iana" - }, - "audio/vnd.dolby.pl2": { - "source": "iana" - }, - "audio/vnd.dolby.pl2x": { - "source": "iana" - }, - "audio/vnd.dolby.pl2z": { - "source": "iana" - }, - "audio/vnd.dolby.pulse.1": { - "source": "iana" - }, - "audio/vnd.dra": { - "source": "iana", - "extensions": ["dra"] - }, - "audio/vnd.dts": { - "source": "iana", - "extensions": ["dts"] - }, - "audio/vnd.dts.hd": { - "source": "iana", - "extensions": ["dtshd"] - }, - "audio/vnd.dvb.file": { - "source": "iana" - }, - "audio/vnd.everad.plj": { - "source": "iana" - }, - "audio/vnd.hns.audio": { - "source": "iana" - }, - "audio/vnd.lucent.voice": { - "source": "iana", - "extensions": ["lvp"] - }, - "audio/vnd.ms-playready.media.pya": { - "source": "iana", - "extensions": ["pya"] - }, - "audio/vnd.nokia.mobile-xmf": { - "source": "iana" - }, - "audio/vnd.nortel.vbk": { - "source": "iana" - }, - "audio/vnd.nuera.ecelp4800": { - "source": "iana", - "extensions": ["ecelp4800"] - }, - "audio/vnd.nuera.ecelp7470": { - "source": "iana", - "extensions": ["ecelp7470"] - }, - "audio/vnd.nuera.ecelp9600": { - "source": "iana", - "extensions": ["ecelp9600"] - }, - "audio/vnd.octel.sbc": { - "source": "iana" - }, - "audio/vnd.qcelp": { - "source": "iana" - }, - "audio/vnd.rhetorex.32kadpcm": { - "source": "iana" - }, - "audio/vnd.rip": { - "source": "iana", - "extensions": ["rip"] - }, - "audio/vnd.rn-realaudio": { - "compressible": false - }, - "audio/vnd.sealedmedia.softseal.mpeg": { - "source": "iana" - }, - "audio/vnd.vmx.cvsd": { - "source": "iana" - }, - "audio/vnd.wave": { - "compressible": false - }, - "audio/vorbis": { - "source": "iana", - "compressible": false - }, - "audio/vorbis-config": { - "source": "iana" - }, - "audio/wav": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/wave": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/webm": { - "source": "apache", - "compressible": false, - "extensions": ["weba"] - }, - "audio/x-aac": { - "source": "apache", - "compressible": false, - "extensions": ["aac"] - }, - "audio/x-aiff": { - "source": "apache", - "extensions": ["aif","aiff","aifc"] - }, - "audio/x-caf": { - "source": "apache", - "compressible": false, - "extensions": ["caf"] - }, - "audio/x-flac": { - "source": "apache", - "extensions": ["flac"] - }, - "audio/x-m4a": { - "source": "nginx", - "extensions": ["m4a"] - }, - "audio/x-matroska": { - "source": "apache", - "extensions": ["mka"] - }, - "audio/x-mpegurl": { - "source": "apache", - "extensions": ["m3u"] - }, - "audio/x-ms-wax": { - "source": "apache", - "extensions": ["wax"] - }, - "audio/x-ms-wma": { - "source": "apache", - "extensions": ["wma"] - }, - "audio/x-pn-realaudio": { - "source": "apache", - "extensions": ["ram","ra"] - }, - "audio/x-pn-realaudio-plugin": { - "source": "apache", - "extensions": ["rmp"] - }, - "audio/x-realaudio": { - "source": "nginx", - "extensions": ["ra"] - }, - "audio/x-tta": { - "source": "apache" - }, - "audio/x-wav": { - "source": "apache", - "extensions": ["wav"] - }, - "audio/xm": { - "source": "apache", - "extensions": ["xm"] - }, - "chemical/x-cdx": { - "source": "apache", - "extensions": ["cdx"] - }, - "chemical/x-cif": { - "source": "apache", - "extensions": ["cif"] - }, - "chemical/x-cmdf": { - "source": "apache", - "extensions": ["cmdf"] - }, - "chemical/x-cml": { - "source": "apache", - "extensions": ["cml"] - }, - "chemical/x-csml": { - "source": "apache", - "extensions": ["csml"] - }, - "chemical/x-pdb": { - "source": "apache" - }, - "chemical/x-xyz": { - "source": "apache", - "extensions": ["xyz"] - }, - "font/opentype": { - "compressible": true, - "extensions": ["otf"] - }, - "image/bmp": { - "source": "apache", - "compressible": true, - "extensions": ["bmp"] - }, - "image/cgm": { - "source": "iana", - "extensions": ["cgm"] - }, - "image/fits": { - "source": "iana" - }, - "image/g3fax": { - "source": "iana", - "extensions": ["g3"] - }, - "image/gif": { - "source": "iana", - "compressible": false, - "extensions": ["gif"] - }, - "image/ief": { - "source": "iana", - "extensions": ["ief"] - }, - "image/jp2": { - "source": "iana" - }, - "image/jpeg": { - "source": "iana", - "compressible": false, - "extensions": ["jpeg","jpg","jpe"] - }, - "image/jpm": { - "source": "iana" - }, - "image/jpx": { - "source": "iana" - }, - "image/ktx": { - "source": "iana", - "extensions": ["ktx"] - }, - "image/naplps": { - "source": "iana" - }, - "image/pjpeg": { - "compressible": false - }, - "image/png": { - "source": "iana", - "compressible": false, - "extensions": ["png"] - }, - "image/prs.btif": { - "source": "iana", - "extensions": ["btif"] - }, - "image/prs.pti": { - "source": "iana" - }, - "image/pwg-raster": { - "source": "iana" - }, - "image/sgi": { - "source": "apache", - "extensions": ["sgi"] - }, - "image/svg+xml": { - "source": "iana", - "compressible": true, - "extensions": ["svg","svgz"] - }, - "image/t38": { - "source": "iana" - }, - "image/tiff": { - "source": "iana", - "compressible": false, - "extensions": ["tiff","tif"] - }, - "image/tiff-fx": { - "source": "iana" - }, - "image/vnd.adobe.photoshop": { - "source": "iana", - "compressible": true, - "extensions": ["psd"] - }, - "image/vnd.airzip.accelerator.azv": { - "source": "iana" - }, - "image/vnd.cns.inf2": { - "source": "iana" - }, - "image/vnd.dece.graphic": { - "source": "iana", - "extensions": ["uvi","uvvi","uvg","uvvg"] - }, - "image/vnd.djvu": { - "source": "iana", - "extensions": ["djvu","djv"] - }, - "image/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "image/vnd.dwg": { - "source": "iana", - "extensions": ["dwg"] - }, - "image/vnd.dxf": { - "source": "iana", - "extensions": ["dxf"] - }, - "image/vnd.fastbidsheet": { - "source": "iana", - "extensions": ["fbs"] - }, - "image/vnd.fpx": { - "source": "iana", - "extensions": ["fpx"] - }, - "image/vnd.fst": { - "source": "iana", - "extensions": ["fst"] - }, - "image/vnd.fujixerox.edmics-mmr": { - "source": "iana", - "extensions": ["mmr"] - }, - "image/vnd.fujixerox.edmics-rlc": { - "source": "iana", - "extensions": ["rlc"] - }, - "image/vnd.globalgraphics.pgb": { - "source": "iana" - }, - "image/vnd.microsoft.icon": { - "source": "iana" - }, - "image/vnd.mix": { - "source": "iana" - }, - "image/vnd.mozilla.apng": { - "source": "iana" - }, - "image/vnd.ms-modi": { - "source": "iana", - "extensions": ["mdi"] - }, - "image/vnd.ms-photo": { - "source": "apache", - "extensions": ["wdp"] - }, - "image/vnd.net-fpx": { - "source": "iana", - "extensions": ["npx"] - }, - "image/vnd.radiance": { - "source": "iana" - }, - "image/vnd.sealed.png": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.gif": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.jpg": { - "source": "iana" - }, - "image/vnd.svf": { - "source": "iana" - }, - "image/vnd.tencent.tap": { - "source": "iana" - }, - "image/vnd.valve.source.texture": { - "source": "iana" - }, - "image/vnd.wap.wbmp": { - "source": "iana", - "extensions": ["wbmp"] - }, - "image/vnd.xiff": { - "source": "iana", - "extensions": ["xif"] - }, - "image/vnd.zbrush.pcx": { - "source": "iana" - }, - "image/webp": { - "source": "apache", - "extensions": ["webp"] - }, - "image/x-3ds": { - "source": "apache", - "extensions": ["3ds"] - }, - "image/x-cmu-raster": { - "source": "apache", - "extensions": ["ras"] - }, - "image/x-cmx": { - "source": "apache", - "extensions": ["cmx"] - }, - "image/x-freehand": { - "source": "apache", - "extensions": ["fh","fhc","fh4","fh5","fh7"] - }, - "image/x-icon": { - "source": "apache", - "compressible": true, - "extensions": ["ico"] - }, - "image/x-jng": { - "source": "nginx", - "extensions": ["jng"] - }, - "image/x-mrsid-image": { - "source": "apache", - "extensions": ["sid"] - }, - "image/x-ms-bmp": { - "source": "nginx", - "compressible": true, - "extensions": ["bmp"] - }, - "image/x-pcx": { - "source": "apache", - "extensions": ["pcx"] - }, - "image/x-pict": { - "source": "apache", - "extensions": ["pic","pct"] - }, - "image/x-portable-anymap": { - "source": "apache", - "extensions": ["pnm"] - }, - "image/x-portable-bitmap": { - "source": "apache", - "extensions": ["pbm"] - }, - "image/x-portable-graymap": { - "source": "apache", - "extensions": ["pgm"] - }, - "image/x-portable-pixmap": { - "source": "apache", - "extensions": ["ppm"] - }, - "image/x-rgb": { - "source": "apache", - "extensions": ["rgb"] - }, - "image/x-tga": { - "source": "apache", - "extensions": ["tga"] - }, - "image/x-xbitmap": { - "source": "apache", - "extensions": ["xbm"] - }, - "image/x-xcf": { - "compressible": false - }, - "image/x-xpixmap": { - "source": "apache", - "extensions": ["xpm"] - }, - "image/x-xwindowdump": { - "source": "apache", - "extensions": ["xwd"] - }, - "message/cpim": { - "source": "iana" - }, - "message/delivery-status": { - "source": "iana" - }, - "message/disposition-notification": { - "source": "iana" - }, - "message/external-body": { - "source": "iana" - }, - "message/feedback-report": { - "source": "iana" - }, - "message/global": { - "source": "iana" - }, - "message/global-delivery-status": { - "source": "iana" - }, - "message/global-disposition-notification": { - "source": "iana" - }, - "message/global-headers": { - "source": "iana" - }, - "message/http": { - "source": "iana", - "compressible": false - }, - "message/imdn+xml": { - "source": "iana", - "compressible": true - }, - "message/news": { - "source": "iana" - }, - "message/partial": { - "source": "iana", - "compressible": false - }, - "message/rfc822": { - "source": "iana", - "compressible": true, - "extensions": ["eml","mime"] - }, - "message/s-http": { - "source": "iana" - }, - "message/sip": { - "source": "iana" - }, - "message/sipfrag": { - "source": "iana" - }, - "message/tracking-status": { - "source": "iana" - }, - "message/vnd.si.simp": { - "source": "iana" - }, - "message/vnd.wfa.wsc": { - "source": "iana" - }, - "model/iges": { - "source": "iana", - "compressible": false, - "extensions": ["igs","iges"] - }, - "model/mesh": { - "source": "iana", - "compressible": false, - "extensions": ["msh","mesh","silo"] - }, - "model/vnd.collada+xml": { - "source": "iana", - "extensions": ["dae"] - }, - "model/vnd.dwf": { - "source": "iana", - "extensions": ["dwf"] - }, - "model/vnd.flatland.3dml": { - "source": "iana" - }, - "model/vnd.gdl": { - "source": "iana", - "extensions": ["gdl"] - }, - "model/vnd.gs-gdl": { - "source": "apache" - }, - "model/vnd.gs.gdl": { - "source": "iana" - }, - "model/vnd.gtw": { - "source": "iana", - "extensions": ["gtw"] - }, - "model/vnd.moml+xml": { - "source": "iana" - }, - "model/vnd.mts": { - "source": "iana", - "extensions": ["mts"] - }, - "model/vnd.opengex": { - "source": "iana" - }, - "model/vnd.parasolid.transmit.binary": { - "source": "iana" - }, - "model/vnd.parasolid.transmit.text": { - "source": "iana" - }, - "model/vnd.rosette.annotated-data-model": { - "source": "iana" - }, - "model/vnd.valve.source.compiled-map": { - "source": "iana" - }, - "model/vnd.vtu": { - "source": "iana", - "extensions": ["vtu"] - }, - "model/vrml": { - "source": "iana", - "compressible": false, - "extensions": ["wrl","vrml"] - }, - "model/x3d+binary": { - "source": "apache", - "compressible": false, - "extensions": ["x3db","x3dbz"] - }, - "model/x3d+fastinfoset": { - "source": "iana" - }, - "model/x3d+vrml": { - "source": "apache", - "compressible": false, - "extensions": ["x3dv","x3dvz"] - }, - "model/x3d+xml": { - "source": "iana", - "compressible": true, - "extensions": ["x3d","x3dz"] - }, - "model/x3d-vrml": { - "source": "iana" - }, - "multipart/alternative": { - "source": "iana", - "compressible": false - }, - "multipart/appledouble": { - "source": "iana" - }, - "multipart/byteranges": { - "source": "iana" - }, - "multipart/digest": { - "source": "iana" - }, - "multipart/encrypted": { - "source": "iana", - "compressible": false - }, - "multipart/form-data": { - "source": "iana", - "compressible": false - }, - "multipart/header-set": { - "source": "iana" - }, - "multipart/mixed": { - "source": "iana", - "compressible": false - }, - "multipart/parallel": { - "source": "iana" - }, - "multipart/related": { - "source": "iana", - "compressible": false - }, - "multipart/report": { - "source": "iana" - }, - "multipart/signed": { - "source": "iana", - "compressible": false - }, - "multipart/voice-message": { - "source": "iana" - }, - "multipart/x-mixed-replace": { - "source": "iana" - }, - "text/1d-interleaved-parityfec": { - "source": "iana" - }, - "text/cache-manifest": { - "source": "iana", - "compressible": true, - "extensions": ["appcache","manifest"] - }, - "text/calendar": { - "source": "iana", - "extensions": ["ics","ifb"] - }, - "text/calender": { - "compressible": true - }, - "text/cmd": { - "compressible": true - }, - "text/coffeescript": { - "extensions": ["coffee","litcoffee"] - }, - "text/css": { - "source": "iana", - "compressible": true, - "extensions": ["css"] - }, - "text/csv": { - "source": "iana", - "compressible": true, - "extensions": ["csv"] - }, - "text/csv-schema": { - "source": "iana" - }, - "text/directory": { - "source": "iana" - }, - "text/dns": { - "source": "iana" - }, - "text/ecmascript": { - "source": "iana" - }, - "text/encaprtp": { - "source": "iana" - }, - "text/enriched": { - "source": "iana" - }, - "text/fwdred": { - "source": "iana" - }, - "text/grammar-ref-list": { - "source": "iana" - }, - "text/hjson": { - "extensions": ["hjson"] - }, - "text/html": { - "source": "iana", - "compressible": true, - "extensions": ["html","htm","shtml"] - }, - "text/jade": { - "extensions": ["jade"] - }, - "text/javascript": { - "source": "iana", - "compressible": true - }, - "text/jcr-cnd": { - "source": "iana" - }, - "text/jsx": { - "compressible": true, - "extensions": ["jsx"] - }, - "text/less": { - "extensions": ["less"] - }, - "text/markdown": { - "source": "iana" - }, - "text/mathml": { - "source": "nginx", - "extensions": ["mml"] - }, - "text/mizar": { - "source": "iana" - }, - "text/n3": { - "source": "iana", - "compressible": true, - "extensions": ["n3"] - }, - "text/parameters": { - "source": "iana" - }, - "text/parityfec": { - "source": "iana" - }, - "text/plain": { - "source": "iana", - "compressible": true, - "extensions": ["txt","text","conf","def","list","log","in","ini"] - }, - "text/provenance-notation": { - "source": "iana" - }, - "text/prs.fallenstein.rst": { - "source": "iana" - }, - "text/prs.lines.tag": { - "source": "iana", - "extensions": ["dsc"] - }, - "text/raptorfec": { - "source": "iana" - }, - "text/red": { - "source": "iana" - }, - "text/rfc822-headers": { - "source": "iana" - }, - "text/richtext": { - "source": "iana", - "compressible": true, - "extensions": ["rtx"] - }, - "text/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "text/rtp-enc-aescm128": { - "source": "iana" - }, - "text/rtploopback": { - "source": "iana" - }, - "text/rtx": { - "source": "iana" - }, - "text/sgml": { - "source": "iana", - "extensions": ["sgml","sgm"] - }, - "text/slim": { - "extensions": ["slim","slm"] - }, - "text/stylus": { - "extensions": ["stylus","styl"] - }, - "text/t140": { - "source": "iana" - }, - "text/tab-separated-values": { - "source": "iana", - "compressible": true, - "extensions": ["tsv"] - }, - "text/troff": { - "source": "iana", - "extensions": ["t","tr","roff","man","me","ms"] - }, - "text/turtle": { - "source": "iana", - "extensions": ["ttl"] - }, - "text/ulpfec": { - "source": "iana" - }, - "text/uri-list": { - "source": "iana", - "compressible": true, - "extensions": ["uri","uris","urls"] - }, - "text/vcard": { - "source": "iana", - "compressible": true, - "extensions": ["vcard"] - }, - "text/vnd.a": { - "source": "iana" - }, - "text/vnd.abc": { - "source": "iana" - }, - "text/vnd.curl": { - "source": "iana", - "extensions": ["curl"] - }, - "text/vnd.curl.dcurl": { - "source": "apache", - "extensions": ["dcurl"] - }, - "text/vnd.curl.mcurl": { - "source": "apache", - "extensions": ["mcurl"] - }, - "text/vnd.curl.scurl": { - "source": "apache", - "extensions": ["scurl"] - }, - "text/vnd.debian.copyright": { - "source": "iana" - }, - "text/vnd.dmclientscript": { - "source": "iana" - }, - "text/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "text/vnd.esmertec.theme-descriptor": { - "source": "iana" - }, - "text/vnd.fly": { - "source": "iana", - "extensions": ["fly"] - }, - "text/vnd.fmi.flexstor": { - "source": "iana", - "extensions": ["flx"] - }, - "text/vnd.graphviz": { - "source": "iana", - "extensions": ["gv"] - }, - "text/vnd.in3d.3dml": { - "source": "iana", - "extensions": ["3dml"] - }, - "text/vnd.in3d.spot": { - "source": "iana", - "extensions": ["spot"] - }, - "text/vnd.iptc.newsml": { - "source": "iana" - }, - "text/vnd.iptc.nitf": { - "source": "iana" - }, - "text/vnd.latex-z": { - "source": "iana" - }, - "text/vnd.motorola.reflex": { - "source": "iana" - }, - "text/vnd.ms-mediapackage": { - "source": "iana" - }, - "text/vnd.net2phone.commcenter.command": { - "source": "iana" - }, - "text/vnd.radisys.msml-basic-layout": { - "source": "iana" - }, - "text/vnd.si.uricatalogue": { - "source": "iana" - }, - "text/vnd.sun.j2me.app-descriptor": { - "source": "iana", - "extensions": ["jad"] - }, - "text/vnd.trolltech.linguist": { - "source": "iana" - }, - "text/vnd.wap.si": { - "source": "iana" - }, - "text/vnd.wap.sl": { - "source": "iana" - }, - "text/vnd.wap.wml": { - "source": "iana", - "extensions": ["wml"] - }, - "text/vnd.wap.wmlscript": { - "source": "iana", - "extensions": ["wmls"] - }, - "text/vtt": { - "charset": "UTF-8", - "compressible": true, - "extensions": ["vtt"] - }, - "text/x-asm": { - "source": "apache", - "extensions": ["s","asm"] - }, - "text/x-c": { - "source": "apache", - "extensions": ["c","cc","cxx","cpp","h","hh","dic"] - }, - "text/x-component": { - "source": "nginx", - "extensions": ["htc"] - }, - "text/x-fortran": { - "source": "apache", - "extensions": ["f","for","f77","f90"] - }, - "text/x-gwt-rpc": { - "compressible": true - }, - "text/x-handlebars-template": { - "extensions": ["hbs"] - }, - "text/x-java-source": { - "source": "apache", - "extensions": ["java"] - }, - "text/x-jquery-tmpl": { - "compressible": true - }, - "text/x-lua": { - "extensions": ["lua"] - }, - "text/x-markdown": { - "compressible": true, - "extensions": ["markdown","md","mkd"] - }, - "text/x-nfo": { - "source": "apache", - "extensions": ["nfo"] - }, - "text/x-opml": { - "source": "apache", - "extensions": ["opml"] - }, - "text/x-pascal": { - "source": "apache", - "extensions": ["p","pas"] - }, - "text/x-processing": { - "compressible": true, - "extensions": ["pde"] - }, - "text/x-sass": { - "extensions": ["sass"] - }, - "text/x-scss": { - "extensions": ["scss"] - }, - "text/x-setext": { - "source": "apache", - "extensions": ["etx"] - }, - "text/x-sfv": { - "source": "apache", - "extensions": ["sfv"] - }, - "text/x-suse-ymp": { - "compressible": true, - "extensions": ["ymp"] - }, - "text/x-uuencode": { - "source": "apache", - "extensions": ["uu"] - }, - "text/x-vcalendar": { - "source": "apache", - "extensions": ["vcs"] - }, - "text/x-vcard": { - "source": "apache", - "extensions": ["vcf"] - }, - "text/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml"] - }, - "text/xml-external-parsed-entity": { - "source": "iana" - }, - "text/yaml": { - "extensions": ["yaml","yml"] - }, - "video/1d-interleaved-parityfec": { - "source": "apache" - }, - "video/3gpp": { - "source": "apache", - "extensions": ["3gp","3gpp"] - }, - "video/3gpp-tt": { - "source": "apache" - }, - "video/3gpp2": { - "source": "apache", - "extensions": ["3g2"] - }, - "video/bmpeg": { - "source": "apache" - }, - "video/bt656": { - "source": "apache" - }, - "video/celb": { - "source": "apache" - }, - "video/dv": { - "source": "apache" - }, - "video/h261": { - "source": "apache", - "extensions": ["h261"] - }, - "video/h263": { - "source": "apache", - "extensions": ["h263"] - }, - "video/h263-1998": { - "source": "apache" - }, - "video/h263-2000": { - "source": "apache" - }, - "video/h264": { - "source": "apache", - "extensions": ["h264"] - }, - "video/h264-rcdo": { - "source": "apache" - }, - "video/h264-svc": { - "source": "apache" - }, - "video/jpeg": { - "source": "apache", - "extensions": ["jpgv"] - }, - "video/jpeg2000": { - "source": "apache" - }, - "video/jpm": { - "source": "apache", - "extensions": ["jpm","jpgm"] - }, - "video/mj2": { - "source": "apache", - "extensions": ["mj2","mjp2"] - }, - "video/mp1s": { - "source": "apache" - }, - "video/mp2p": { - "source": "apache" - }, - "video/mp2t": { - "source": "apache", - "extensions": ["ts"] - }, - "video/mp4": { - "source": "apache", - "compressible": false, - "extensions": ["mp4","mp4v","mpg4"] - }, - "video/mp4v-es": { - "source": "apache" - }, - "video/mpeg": { - "source": "apache", - "compressible": false, - "extensions": ["mpeg","mpg","mpe","m1v","m2v"] - }, - "video/mpeg4-generic": { - "source": "apache" - }, - "video/mpv": { - "source": "apache" - }, - "video/nv": { - "source": "apache" - }, - "video/ogg": { - "source": "apache", - "compressible": false, - "extensions": ["ogv"] - }, - "video/parityfec": { - "source": "apache" - }, - "video/pointer": { - "source": "apache" - }, - "video/quicktime": { - "source": "apache", - "compressible": false, - "extensions": ["qt","mov"] - }, - "video/raw": { - "source": "apache" - }, - "video/rtp-enc-aescm128": { - "source": "apache" - }, - "video/rtx": { - "source": "apache" - }, - "video/smpte292m": { - "source": "apache" - }, - "video/ulpfec": { - "source": "apache" - }, - "video/vc1": { - "source": "apache" - }, - "video/vnd.cctv": { - "source": "apache" - }, - "video/vnd.dece.hd": { - "source": "apache", - "extensions": ["uvh","uvvh"] - }, - "video/vnd.dece.mobile": { - "source": "apache", - "extensions": ["uvm","uvvm"] - }, - "video/vnd.dece.mp4": { - "source": "apache" - }, - "video/vnd.dece.pd": { - "source": "apache", - "extensions": ["uvp","uvvp"] - }, - "video/vnd.dece.sd": { - "source": "apache", - "extensions": ["uvs","uvvs"] - }, - "video/vnd.dece.video": { - "source": "apache", - "extensions": ["uvv","uvvv"] - }, - "video/vnd.directv.mpeg": { - "source": "apache" - }, - "video/vnd.directv.mpeg-tts": { - "source": "apache" - }, - "video/vnd.dlna.mpeg-tts": { - "source": "apache" - }, - "video/vnd.dvb.file": { - "source": "apache", - "extensions": ["dvb"] - }, - "video/vnd.fvt": { - "source": "apache", - "extensions": ["fvt"] - }, - "video/vnd.hns.video": { - "source": "apache" - }, - "video/vnd.iptvforum.1dparityfec-1010": { - "source": "apache" - }, - "video/vnd.iptvforum.1dparityfec-2005": { - "source": "apache" - }, - "video/vnd.iptvforum.2dparityfec-1010": { - "source": "apache" - }, - "video/vnd.iptvforum.2dparityfec-2005": { - "source": "apache" - }, - "video/vnd.iptvforum.ttsavc": { - "source": "apache" - }, - "video/vnd.iptvforum.ttsmpeg2": { - "source": "apache" - }, - "video/vnd.motorola.video": { - "source": "apache" - }, - "video/vnd.motorola.videop": { - "source": "apache" - }, - "video/vnd.mpegurl": { - "source": "apache", - "extensions": ["mxu","m4u"] - }, - "video/vnd.ms-playready.media.pyv": { - "source": "apache", - "extensions": ["pyv"] - }, - "video/vnd.nokia.interleaved-multimedia": { - "source": "apache" - }, - "video/vnd.nokia.videovoip": { - "source": "apache" - }, - "video/vnd.objectvideo": { - "source": "apache" - }, - "video/vnd.sealed.mpeg1": { - "source": "apache" - }, - "video/vnd.sealed.mpeg4": { - "source": "apache" - }, - "video/vnd.sealed.swf": { - "source": "apache" - }, - "video/vnd.sealedmedia.softseal.mov": { - "source": "apache" - }, - "video/vnd.uvvu.mp4": { - "source": "apache", - "extensions": ["uvu","uvvu"] - }, - "video/vnd.vivo": { - "source": "apache", - "extensions": ["viv"] - }, - "video/webm": { - "source": "apache", - "compressible": false, - "extensions": ["webm"] - }, - "video/x-f4v": { - "source": "apache", - "extensions": ["f4v"] - }, - "video/x-fli": { - "source": "apache", - "extensions": ["fli"] - }, - "video/x-flv": { - "source": "apache", - "compressible": false, - "extensions": ["flv"] - }, - "video/x-m4v": { - "source": "apache", - "extensions": ["m4v"] - }, - "video/x-matroska": { - "source": "apache", - "compressible": false, - "extensions": ["mkv","mk3d","mks"] - }, - "video/x-mng": { - "source": "apache", - "extensions": ["mng"] - }, - "video/x-ms-asf": { - "source": "apache", - "extensions": ["asf","asx"] - }, - "video/x-ms-vob": { - "source": "apache", - "extensions": ["vob"] - }, - "video/x-ms-wm": { - "source": "apache", - "extensions": ["wm"] - }, - "video/x-ms-wmv": { - "source": "apache", - "compressible": false, - "extensions": ["wmv"] - }, - "video/x-ms-wmx": { - "source": "apache", - "extensions": ["wmx"] - }, - "video/x-ms-wvx": { - "source": "apache", - "extensions": ["wvx"] - }, - "video/x-msvideo": { - "source": "apache", - "extensions": ["avi"] - }, - "video/x-sgi-movie": { - "source": "apache", - "extensions": ["movie"] - }, - "video/x-smv": { - "source": "apache", - "extensions": ["smv"] - }, - "x-conference/x-cooltalk": { - "source": "apache", - "extensions": ["ice"] - }, - "x-shader/x-fragment": { - "compressible": true - }, - "x-shader/x-vertex": { - "compressible": true - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js deleted file mode 100644 index 551031f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * mime-db - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -/** - * Module exports. - */ - -module.exports = require('./db.json') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json deleted file mode 100644 index 1abcdca6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "_args": [ - [ - "mime-db@~1.22.0", - "/Users/rebecca/code/npm/node_modules/request/node_modules/mime-types" - ] - ], - "_from": "mime-db@>=1.22.0 <1.23.0", - "_id": "mime-db@1.22.0", - "_inCache": true, - "_installable": true, - "_location": "/request/mime-types/mime-db", - "_nodeVersion": "4.2.3", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/mime-db-1.22.0.tgz_1455558813990_0.7830642955377698" - }, - "_npmUser": { - "email": "doug@somethingdoug.com", - "name": "dougwilson" - }, - "_npmVersion": "2.14.7", - "_phantomChildren": {}, - "_requested": { - "name": "mime-db", - "raw": "mime-db@~1.22.0", - "rawSpec": "~1.22.0", - "scope": null, - "spec": ">=1.22.0 <1.23.0", - "type": "range" - }, - "_requiredBy": [ - "/request/mime-types" - ], - "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz", - "_shasum": "ab23a6372dc9d86d3dc9121bd0ebd38105a1904a", - "_shrinkwrap": null, - "_spec": "mime-db@~1.22.0", - "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/mime-types", - "bugs": { - "url": "https://github.com/jshttp/mime-db/issues" - }, - "contributors": [ - { - "email": "doug@somethingdoug.com", - "name": "Douglas Christopher Wilson" - }, - { - "email": "me@jongleberry.com", - "name": "Jonathan Ong", - "url": "http://jongleberry.com" - }, - { - "email": "robert@broofa.com", - "name": "Robert Kieffer", - "url": "http://github.com/broofa" - } - ], - "dependencies": {}, - "description": "Media Type Database", - "devDependencies": { - "bluebird": "3.3.1", - "co": "4.6.0", - "cogent": "1.0.1", - "csv-parse": "1.0.1", - "gnode": "0.1.2", - "istanbul": "0.4.2", - "mocha": "1.21.5", - "raw-body": "2.1.5", - "stream-to-array": "2.2.1" - }, - "directories": {}, - "dist": { - "shasum": "ab23a6372dc9d86d3dc9121bd0ebd38105a1904a", - "tarball": "http://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" - }, - "engines": { - "node": ">= 0.6" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "db.json", - "index.js" - ], - "gitHead": "ed88d32405582a5aaff6225d1210005d6be2623e", - "homepage": "https://github.com/jshttp/mime-db#readme", - "keywords": [ - "mime", - "db", - "type", - "types", - "database", - "charset", - "charsets" - ], - "license": "MIT", - "maintainers": [ - { - "email": "doug@somethingdoug.com", - "name": "dougwilson" - }, - { - "email": "jonathanrichardong@gmail.com", - "name": "jongleberry" - } - ], - "name": "mime-db", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-db.git" - }, - "scripts": { - "build": "node scripts/build", - "fetch": "gnode scripts/fetch-apache && gnode scripts/fetch-iana && gnode scripts/fetch-nginx", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "update": "npm run fetch && npm run build" - }, - "version": "1.22.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/package.json deleted file mode 100644 index 8e7b5f62..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/mime-types/package.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "_args": [ - [ - "mime-types@~2.1.7", - "/Users/rebecca/code/npm/node_modules/request" - ] - ], - "_from": "mime-types@>=2.1.7 <2.2.0", - "_id": "mime-types@2.1.10", - "_inCache": true, - "_installable": true, - "_location": "/request/mime-types", - "_nodeVersion": "4.2.3", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/mime-types-2.1.10.tgz_1455575237256_0.9163766100537032" - }, - "_npmUser": { - "email": "doug@somethingdoug.com", - "name": "dougwilson" - }, - "_npmVersion": "2.14.7", - "_phantomChildren": {}, - "_requested": { - "name": "mime-types", - "raw": "mime-types@~2.1.7", - "rawSpec": "~2.1.7", - "scope": null, - "spec": ">=2.1.7 <2.2.0", - "type": "range" - }, - "_requiredBy": [ - "/request", - "/request/form-data" - ], - "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", - "_shasum": "b93c7cb4362e16d41072a7e54538fb4d43070837", - "_shrinkwrap": null, - "_spec": "mime-types@~2.1.7", - "_where": "/Users/rebecca/code/npm/node_modules/request", - "bugs": { - "url": "https://github.com/jshttp/mime-types/issues" - }, - "contributors": [ - { - "email": "doug@somethingdoug.com", - "name": "Douglas Christopher Wilson" - }, - { - "email": "fishrock123@rocketmail.com", - "name": "Jeremiah Senkpiel", - "url": "https://searchbeam.jit.su" - }, - { - "email": "me@jongleberry.com", - "name": "Jonathan Ong", - "url": "http://jongleberry.com" - } - ], - "dependencies": { - "mime-db": "~1.22.0" - }, - "description": "The ultimate javascript content-type utility.", - "devDependencies": { - "istanbul": "0.4.2", - "mocha": "1.21.5" - }, - "directories": {}, - "dist": { - "shasum": "b93c7cb4362e16d41072a7e54538fb4d43070837", - "tarball": "http://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz" - }, - "engines": { - "node": ">= 0.6" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "gitHead": "70785d38e9cc251137b00f73ab3d3257c4aea203", - "homepage": "https://github.com/jshttp/mime-types#readme", - "keywords": [ - "mime", - "types" - ], - "license": "MIT", - "maintainers": [ - { - "email": "doug@somethingdoug.com", - "name": "dougwilson" - }, - { - "email": "fishrock123@rocketmail.com", - "name": "fishrock123" - }, - { - "email": "jonathanrichardong@gmail.com", - "name": "jongleberry" - } - ], - "name": "mime-types", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-types.git" - }, - "scripts": { - "test": "mocha --reporter spec test/test.js", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/test.js", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot test/test.js" - }, - "version": "2.1.10" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/.npmignore deleted file mode 100644 index 88861393..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -.DS_Store -.nyc_output -coverage diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/LICENSE.md deleted file mode 100644 index 652609b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2010-2012 Robert Kieffer - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/README.md deleted file mode 100644 index 5cd85550..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/README.md +++ /dev/null @@ -1,254 +0,0 @@ -# node-uuid - -Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS. - -Features: - -* Generate RFC4122 version 1 or version 4 UUIDs -* Runs in node.js and all browsers. -* Registered as a [ComponentJS](https://github.com/component/component) [component](https://github.com/component/component/wiki/Components) ('broofa/node-uuid'). -* Cryptographically strong random # generation - * `crypto.randomBytes(n)` in node.js - * `window.crypto.getRandomValues(ta)` in [supported browsers](https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues#Browser_Compatibility) -* 1.1K minified and gzip'ed (Want something smaller? Check this [crazy shit](https://gist.github.com/982883) out! ) -* [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html) -* Comes with a Command Line Interface for generating uuids on the command line - -## Getting Started - -Install it in your browser: - -```html - -``` - -Or in node.js: - -``` -npm install node-uuid -``` - -```javascript -var uuid = require('node-uuid'); -``` - -Then create some ids ... - -```javascript -// Generate a v1 (time-based) id -uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' - -// Generate a v4 (random) id -uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1' -``` - -## API - -### uuid.v1([`options` [, `buffer` [, `offset`]]]) - -Generate and return a RFC4122 v1 (timestamp-based) UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - - * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1. - * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used. - * `msecs` - (Number | Date) Time in milliseconds since unix Epoch. Default: The current time is used. - * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2. - -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Notes: - -1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.) - -Example: Generate string UUID with fully-specified options - -```javascript -uuid.v1({ - node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], - clockseq: 0x1234, - msecs: new Date('2011-11-01').getTime(), - nsecs: 5678 -}); // -> "710b962e-041c-11e1-9234-0123456789ab" -``` - -Example: In-place generation of two binary IDs - -```javascript -// Generate two ids in an array -var arr = new Array(32); // -> [] -uuid.v1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15] -uuid.v1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15] - -// Optionally use uuid.unparse() to get stringify the ids -uuid.unparse(buffer); // -> '02a2ce90-1432-11e1-8558-0b488e4fc115' -uuid.unparse(buffer, 16) // -> '02a31cb0-1432-11e1-8558-0b488e4fc115' -``` - -### uuid.v4([`options` [, `buffer` [, `offset`]]]) - -Generate and return a RFC4122 v4 UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - - * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values - * `rng` - (Function) Random # generator to use. Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values. - -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Example: Generate string UUID with fully-specified options - -```javascript -uuid.v4({ - random: [ - 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, - 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36 - ] -}); -// -> "109156be-c4fb-41ea-b1b4-efe1671c5836" -``` - -Example: Generate two IDs in a single buffer - -```javascript -var buffer = new Array(32); // (or 'new Buffer' in node.js) -uuid.v4(null, buffer, 0); -uuid.v4(null, buffer, 16); -``` - -### uuid.parse(id[, buffer[, offset]]) -### uuid.unparse(buffer[, offset]) - -Parse and unparse UUIDs - - * `id` - (String) UUID(-like) string - * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used - * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0 - -Example parsing and unparsing a UUID string - -```javascript -var bytes = uuid.parse('797ff043-11eb-11e1-80d6-510998755d10'); // -> -var string = uuid.unparse(bytes); // -> '797ff043-11eb-11e1-80d6-510998755d10' -``` - -### uuid.noConflict() - -(Browsers only) Set `uuid` property back to it's previous value. - -Returns the node-uuid object. - -Example: - -```javascript -var myUuid = uuid.noConflict(); -myUuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' -``` - -## Deprecated APIs - -Support for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version. - -### uuid([format [, buffer [, offset]]]) - -uuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary). - -### uuid.BufferClass - -The class of container created when generating binary uuid data if no buffer argument is specified. This is expected to go away, with no replacement API. - -## Command Line Interface - -To use the executable, it's probably best to install this library globally. - -`npm install -g node-uuid` - -Usage: - -``` -USAGE: uuid [version] [options] - - -options: - ---help Display this message and exit -``` - -`version` must be an RFC4122 version that is supported by this library, which is currently version 1 and version 4 (denoted by "v1" and "v4", respectively). `version` defaults to version 4 when not supplied. - -### Examples - -``` -> uuid -3a91f950-dec8-4688-ba14-5b7bbfc7a563 -``` - -``` -> uuid v1 -9d0b43e0-7696-11e3-964b-250efa37a98e -``` - -``` -> uuid v4 -6790ac7c-24ac-4f98-8464-42f6d98a53ae -``` - -## Testing - -In node.js - -``` -npm test -``` - -In Browser - -``` -open test/test.html -``` - -### Benchmarking - -Requires node.js - -``` -npm install uuid uuid-js -node benchmark/benchmark.js -``` - -For a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark) - -For browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance). - -## Release notes - -### 1.4.6 - -* Properly detect node crypto and whatwg crypto -* Workaround phantomjs/browserify bug -* Explicit check for `window` rather implicit this-global -* Issue warning if Math.random() is being used -* "use strict"; -* A few jshint / stylistic updates (=== and such) - -### 1.4.0 - -* Improved module context detection -* Removed public RNG functions - -### 1.3.2 - -* Improve tests and handling of v1() options (Issue #24) -* Expose RNG option to allow for perf testing with different generators - -### 1.3.0 - -* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)! -* Support for node.js crypto API -* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/README.md deleted file mode 100644 index aaeb2ea0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# node-uuid Benchmarks - -### Results - -To see the results of our benchmarks visit https://github.com/broofa/node-uuid/wiki/Benchmark - -### Run them yourself - -node-uuid comes with some benchmarks to measure performance of generating UUIDs. These can be run using node.js. node-uuid is being benchmarked against some other uuid modules, that are available through npm namely `uuid` and `uuid-js`. - -To prepare and run the benchmark issue; - -``` -npm install uuid uuid-js -node benchmark/benchmark.js -``` - -You'll see an output like this one: - -``` -# v4 -nodeuuid.v4(): 854700 uuids/second -nodeuuid.v4('binary'): 788643 uuids/second -nodeuuid.v4('binary', buffer): 1336898 uuids/second -uuid(): 479386 uuids/second -uuid('binary'): 582072 uuids/second -uuidjs.create(4): 312304 uuids/second - -# v1 -nodeuuid.v1(): 938086 uuids/second -nodeuuid.v1('binary'): 683060 uuids/second -nodeuuid.v1('binary', buffer): 1644736 uuids/second -uuidjs.create(1): 190621 uuids/second -``` - -* The `uuid()` entries are for Nikhil Marathe's [uuid module](https://bitbucket.org/nikhilm/uuidjs) which is a wrapper around the native libuuid library. -* The `uuidjs()` entries are for Patrick Negri's [uuid-js module](https://github.com/pnegri/uuid-js) which is a pure javascript implementation based on [UUID.js](https://github.com/LiosK/UUID.js) by LiosK. - -If you want to get more reliable results you can run the benchmark multiple times and write the output into a log file: - -``` -for i in {0..9}; do node benchmark/benchmark.js >> benchmark/bench_0.4.12.log; done; -``` - -If you're interested in how performance varies between different node versions, you can issue the above command multiple times. - -You can then use the shell script `bench.sh` provided in this directory to calculate the averages over all benchmark runs and draw a nice plot: - -``` -(cd benchmark/ && ./bench.sh) -``` - -This assumes you have [gnuplot](http://www.gnuplot.info/) and [ImageMagick](http://www.imagemagick.org/) installed. You'll find a nice `bench.png` graph in the `benchmark/` directory then. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu deleted file mode 100644 index a342fbbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu +++ /dev/null @@ -1,174 +0,0 @@ -#!/opt/local/bin/gnuplot -persist -# -# -# G N U P L O T -# Version 4.4 patchlevel 3 -# last modified March 2011 -# System: Darwin 10.8.0 -# -# Copyright (C) 1986-1993, 1998, 2004, 2007-2010 -# Thomas Williams, Colin Kelley and many others -# -# gnuplot home: http://www.gnuplot.info -# faq, bugs, etc: type "help seeking-assistance" -# immediate help: type "help" -# plot window: hit 'h' -set terminal postscript eps noenhanced defaultplex \ - leveldefault color colortext \ - solid linewidth 1.2 butt noclip \ - palfuncparam 2000,0.003 \ - "Helvetica" 14 -set output 'bench.eps' -unset clip points -set clip one -unset clip two -set bar 1.000000 front -set border 31 front linetype -1 linewidth 1.000 -set xdata -set ydata -set zdata -set x2data -set y2data -set timefmt x "%d/%m/%y,%H:%M" -set timefmt y "%d/%m/%y,%H:%M" -set timefmt z "%d/%m/%y,%H:%M" -set timefmt x2 "%d/%m/%y,%H:%M" -set timefmt y2 "%d/%m/%y,%H:%M" -set timefmt cb "%d/%m/%y,%H:%M" -set boxwidth -set style fill empty border -set style rectangle back fc lt -3 fillstyle solid 1.00 border lt -1 -set style circle radius graph 0.02, first 0, 0 -set dummy x,y -set format x "% g" -set format y "% g" -set format x2 "% g" -set format y2 "% g" -set format z "% g" -set format cb "% g" -set angles radians -unset grid -set key title "" -set key outside left top horizontal Right noreverse enhanced autotitles columnhead nobox -set key noinvert samplen 4 spacing 1 width 0 height 0 -set key maxcolumns 2 maxrows 0 -unset label -unset arrow -set style increment default -unset style line -set style line 1 linetype 1 linewidth 2.000 pointtype 1 pointsize default pointinterval 0 -unset style arrow -set style histogram clustered gap 2 title offset character 0, 0, 0 -unset logscale -set offsets graph 0.05, 0.15, 0, 0 -set pointsize 1.5 -set pointintervalbox 1 -set encoding default -unset polar -unset parametric -unset decimalsign -set view 60, 30, 1, 1 -set samples 100, 100 -set isosamples 10, 10 -set surface -unset contour -set clabel '%8.3g' -set mapping cartesian -set datafile separator whitespace -unset hidden3d -set cntrparam order 4 -set cntrparam linear -set cntrparam levels auto 5 -set cntrparam points 5 -set size ratio 0 1,1 -set origin 0,0 -set style data points -set style function lines -set xzeroaxis linetype -2 linewidth 1.000 -set yzeroaxis linetype -2 linewidth 1.000 -set zzeroaxis linetype -2 linewidth 1.000 -set x2zeroaxis linetype -2 linewidth 1.000 -set y2zeroaxis linetype -2 linewidth 1.000 -set ticslevel 0.5 -set mxtics default -set mytics default -set mztics default -set mx2tics default -set my2tics default -set mcbtics default -set xtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set xtics norangelimit -set xtics () -set ytics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set ytics autofreq norangelimit -set ztics border in scale 1,0.5 nomirror norotate offset character 0, 0, 0 -set ztics autofreq norangelimit -set nox2tics -set noy2tics -set cbtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set cbtics autofreq norangelimit -set title "" -set title offset character 0, 0, 0 font "" norotate -set timestamp bottom -set timestamp "" -set timestamp offset character 0, 0, 0 font "" norotate -set rrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] ) -set autoscale rfixmin -set autoscale rfixmax -set trange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] ) -set autoscale tfixmin -set autoscale tfixmax -set urange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale ufixmin -set autoscale ufixmax -set vrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale vfixmin -set autoscale vfixmax -set xlabel "" -set xlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate -set x2label "" -set x2label offset character 0, 0, 0 font "" textcolor lt -1 norotate -set xrange [ * : * ] noreverse nowriteback # (currently [-0.150000:3.15000] ) -set autoscale xfixmin -set autoscale xfixmax -set x2range [ * : * ] noreverse nowriteback # (currently [0.00000:3.00000] ) -set autoscale x2fixmin -set autoscale x2fixmax -set ylabel "" -set ylabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set y2label "" -set y2label offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set yrange [ 0.00000 : 1.90000e+06 ] noreverse nowriteback # (currently [:] ) -set autoscale yfixmin -set autoscale yfixmax -set y2range [ * : * ] noreverse nowriteback # (currently [0.00000:1.90000e+06] ) -set autoscale y2fixmin -set autoscale y2fixmax -set zlabel "" -set zlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate -set zrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale zfixmin -set autoscale zfixmax -set cblabel "" -set cblabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set cbrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] ) -set autoscale cbfixmin -set autoscale cbfixmax -set zero 1e-08 -set lmargin -1 -set bmargin -1 -set rmargin -1 -set tmargin -1 -set pm3d explicit at s -set pm3d scansautomatic -set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean -set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB -set palette rgbformulae 7, 5, 15 -set colorbox default -set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault -set loadpath -set fontpath -set fit noerrorvariables -GNUTERM = "aqua" -plot 'bench_results.txt' using 2:xticlabel(1) w lp lw 2, '' using 3:xticlabel(1) w lp lw 2, '' using 4:xticlabel(1) w lp lw 2, '' using 5:xticlabel(1) w lp lw 2, '' using 6:xticlabel(1) w lp lw 2, '' using 7:xticlabel(1) w lp lw 2, '' using 8:xticlabel(1) w lp lw 2, '' using 9:xticlabel(1) w lp lw 2 -# EOF diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.sh deleted file mode 100755 index d870a0cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -# for a given node version run: -# for i in {0..9}; do node benchmark.js >> bench_0.6.2.log; done; - -PATTERNS=('nodeuuid.v1()' "nodeuuid.v1('binary'," 'nodeuuid.v4()' "nodeuuid.v4('binary'," "uuid()" "uuid('binary')" 'uuidjs.create(1)' 'uuidjs.create(4)' '140byte') -FILES=(node_uuid_v1_string node_uuid_v1_buf node_uuid_v4_string node_uuid_v4_buf libuuid_v4_string libuuid_v4_binary uuidjs_v1_string uuidjs_v4_string 140byte_es) -INDICES=(2 3 2 3 2 2 2 2 2) -VERSIONS=$( ls bench_*.log | sed -e 's/^bench_\([0-9\.]*\)\.log/\1/' | tr "\\n" " " ) -TMPJOIN="tmp_join" -OUTPUT="bench_results.txt" - -for I in ${!FILES[*]}; do - F=${FILES[$I]} - P=${PATTERNS[$I]} - INDEX=${INDICES[$I]} - echo "version $F" > $F - for V in $VERSIONS; do - (VAL=$( grep "$P" bench_$V.log | LC_ALL=en_US awk '{ sum += $'$INDEX' } END { print sum/NR }' ); echo $V $VAL) >> $F - done - if [ $I == 0 ]; then - cat $F > $TMPJOIN - else - join $TMPJOIN $F > $OUTPUT - cp $OUTPUT $TMPJOIN - fi - rm $F -done - -rm $TMPJOIN - -gnuplot bench.gnu -convert -density 200 -resize 800x560 -flatten bench.eps bench.png -rm bench.eps diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c deleted file mode 100644 index dbfc75f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c +++ /dev/null @@ -1,34 +0,0 @@ -/* -Test performance of native C UUID generation - -To Compile: cc -luuid benchmark-native.c -o benchmark-native -*/ - -#include -#include -#include -#include - -int main() { - uuid_t myid; - char buf[36+1]; - int i; - struct timeval t; - double start, finish; - - gettimeofday(&t, NULL); - start = t.tv_sec + t.tv_usec/1e6; - - int n = 2e5; - for (i = 0; i < n; i++) { - uuid_generate(myid); - uuid_unparse(myid, buf); - } - - gettimeofday(&t, NULL); - finish = t.tv_sec + t.tv_usec/1e6; - double dur = finish - start; - - printf("%d uuids/sec", (int)(n/dur)); - return 0; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js deleted file mode 100644 index 40e6efbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js +++ /dev/null @@ -1,84 +0,0 @@ -try { - var nodeuuid = require('../uuid'); -} catch (e) { - console.error('node-uuid require failed - skipping tests'); -} - -try { - var uuid = require('uuid'); -} catch (e) { - console.error('uuid require failed - skipping tests'); -} - -try { - var uuidjs = require('uuid-js'); -} catch (e) { - console.error('uuid-js require failed - skipping tests'); -} - -var N = 5e5; - -function rate(msg, t) { - console.log(msg + ': ' + - (N / (Date.now() - t) * 1e3 | 0) + - ' uuids/second'); -} - -console.log('# v4'); - -// node-uuid - string form -if (nodeuuid) { - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4(); - rate('nodeuuid.v4() - using node.js crypto RNG', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4({rng: nodeuuid.mathRNG}); - rate('nodeuuid.v4() - using Math.random() RNG', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary'); - rate('nodeuuid.v4(\'binary\')', t); - - var buffer = new nodeuuid.BufferClass(16); - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary', buffer); - rate('nodeuuid.v4(\'binary\', buffer)', t); -} - -// libuuid - string form -if (uuid) { - for (var i = 0, t = Date.now(); i < N; i++) uuid(); - rate('uuid()', t); - - for (var i = 0, t = Date.now(); i < N; i++) uuid('binary'); - rate('uuid(\'binary\')', t); -} - -// uuid-js - string form -if (uuidjs) { - for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(4); - rate('uuidjs.create(4)', t); -} - -// 140byte.es -for (var i = 0, t = Date.now(); i < N; i++) 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(s,r){r=Math.random()*16|0;return (s=='x'?r:r&0x3|0x8).toString(16)}); -rate('140byte.es_v4', t); - -console.log(''); -console.log('# v1'); - -// node-uuid - v1 string form -if (nodeuuid) { - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1(); - rate('nodeuuid.v1()', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary'); - rate('nodeuuid.v1(\'binary\')', t); - - var buffer = new nodeuuid.BufferClass(16); - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary', buffer); - rate('nodeuuid.v1(\'binary\', buffer)', t); -} - -// uuid-js - v1 string form -if (uuidjs) { - for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(1); - rate('uuidjs.create(1)', t); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/bin/uuid b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/bin/uuid deleted file mode 100755 index f732e991..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/bin/uuid +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env node - -var path = require('path'); -var uuid = require(path.join(__dirname, '..')); - -var arg = process.argv[2]; - -if ('--help' === arg) { - console.log('\n USAGE: uuid [version] [options]\n\n'); - console.log(' options:\n'); - console.log(' --help Display this message and exit\n'); - process.exit(0); -} - -if (null == arg) { - console.log(uuid()); - process.exit(0); -} - -if ('v1' !== arg && 'v4' !== arg) { - console.error('Version must be RFC4122 version 1 or version 4, denoted as "v1" or "v4"'); - process.exit(1); -} - -console.log(uuid[arg]()); -process.exit(0); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/bower.json deleted file mode 100644 index c0925e19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/bower.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "node-uuid", - "version": "1.4.7", - "homepage": "https://github.com/broofa/node-uuid", - "authors": [ - "Robert Kieffer " - ], - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "main": "uuid.js", - "keywords": [ - "uuid", - "gid", - "rfc4122" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/component.json deleted file mode 100644 index 3ff46336..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/component.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "node-uuid", - "repo": "broofa/node-uuid", - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "version": "1.4.7", - "author": "Robert Kieffer ", - "contributors": [ - { - "name": "Christoph Tavan ", - "github": "https://github.com/ctavan" - } - ], - "keywords": [ - "uuid", - "guid", - "rfc4122" - ], - "dependencies": {}, - "development": {}, - "main": "uuid.js", - "scripts": [ - "uuid.js" - ], - "license": "MIT" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/package.json deleted file mode 100644 index 44c58589..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_args": [ - [ - "node-uuid@~1.4.7", - "/Users/ogd/Documents/projects/npm/npm/node_modules/request" - ] - ], - "_from": "node-uuid@>=1.4.7 <1.5.0", - "_id": "node-uuid@1.4.7", - "_inCache": true, - "_installable": true, - "_location": "/request/node-uuid", - "_nodeVersion": "5.0.0", - "_npmUser": { - "email": "coolaj86@gmail.com", - "name": "coolaj86" - }, - "_npmVersion": "3.3.6", - "_phantomChildren": {}, - "_requested": { - "name": "node-uuid", - "raw": "node-uuid@~1.4.7", - "rawSpec": "~1.4.7", - "scope": null, - "spec": ">=1.4.7 <1.5.0", - "type": "range" - }, - "_requiredBy": [ - "/request" - ], - "_resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", - "_shasum": "6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f", - "_shrinkwrap": null, - "_spec": "node-uuid@~1.4.7", - "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/request", - "author": { - "email": "robert@broofa.com", - "name": "Robert Kieffer" - }, - "bin": { - "uuid": "./bin/uuid" - }, - "bugs": { - "url": "https://github.com/broofa/node-uuid/issues" - }, - "contributors": [ - { - "name": "AJ ONeal", - "email": "coolaj86@gmail.com" - }, - { - "name": "Christoph Tavan", - "email": "dev@tavan.de" - } - ], - "dependencies": {}, - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "devDependencies": { - "nyc": "^2.2.0" - }, - "directories": {}, - "dist": { - "shasum": "6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f", - "tarball": "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - }, - "gitHead": "309512573ec1c60143c257157479a20f7f1f51cd", - "homepage": "https://github.com/broofa/node-uuid", - "installable": true, - "keywords": [ - "guid", - "rfc4122", - "uuid" - ], - "lib": ".", - "licenses": [ - { - "type": "MIT", - "url": "https://raw.github.com/broofa/node-uuid/master/LICENSE.md" - } - ], - "main": "./uuid.js", - "maintainers": [ - { - "name": "broofa", - "email": "robert@broofa.com" - }, - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - } - ], - "name": "node-uuid", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/broofa/node-uuid.git" - }, - "scripts": { - "coverage": "nyc npm test && nyc report", - "test": "node test/test.js" - }, - "url": "http://github.com/broofa/node-uuid", - "version": "1.4.7" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/test/compare_v1.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/test/compare_v1.js deleted file mode 100644 index 05af8221..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/test/compare_v1.js +++ /dev/null @@ -1,63 +0,0 @@ -var assert = require('assert'), - nodeuuid = require('../uuid'), - uuidjs = require('uuid-js'), - libuuid = require('uuid').generate, - util = require('util'), - exec = require('child_process').exec, - os = require('os'); - -// On Mac Os X / macports there's only the ossp-uuid package that provides uuid -// On Linux there's uuid-runtime which provides uuidgen -var uuidCmd = os.type() === 'Darwin' ? 'uuid -1' : 'uuidgen -t'; - -function compare(ids) { - console.log(ids); - for (var i = 0; i < ids.length; i++) { - var id = ids[i].split('-'); - id = [id[2], id[1], id[0]].join(''); - ids[i] = id; - } - var sorted = ([].concat(ids)).sort(); - - if (sorted.toString() !== ids.toString()) { - console.log('Warning: sorted !== ids'); - } else { - console.log('everything in order!'); - } -} - -// Test time order of v1 uuids -var ids = []; -while (ids.length < 10e3) ids.push(nodeuuid.v1()); - -var max = 10; -console.log('node-uuid:'); -ids = []; -for (var i = 0; i < max; i++) ids.push(nodeuuid.v1()); -compare(ids); - -console.log(''); -console.log('uuidjs:'); -ids = []; -for (var i = 0; i < max; i++) ids.push(uuidjs.create(1).toString()); -compare(ids); - -console.log(''); -console.log('libuuid:'); -ids = []; -var count = 0; -var last = function() { - compare(ids); -} -var cb = function(err, stdout, stderr) { - ids.push(stdout.substring(0, stdout.length-1)); - count++; - if (count < max) { - return next(); - } - last(); -}; -var next = function() { - exec(uuidCmd, cb); -}; -next(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/test/test.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/test/test.html deleted file mode 100644 index d80326ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/test/test.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/test/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/test/test.js deleted file mode 100644 index 5f1113d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/test/test.js +++ /dev/null @@ -1,231 +0,0 @@ -if (!this.uuid) { - // node.js - uuid = require('../uuid'); - if (!/_rb/.test(uuid._rng.toString())) { - throw new Error("should use crypto for node.js"); - } -} - -// -// x-platform log/assert shims -// - -function _log(msg, type) { - type = type || 'log'; - - if (typeof(document) != 'undefined') { - document.write('
            ' + msg.replace(/\n/g, '
            ') + '
            '); - } - if (typeof(console) != 'undefined') { - var color = { - log: '\033[39m', - warn: '\033[33m', - error: '\033[31m' - }; - console[type](color[type] + msg + color.log); - } -} - -function log(msg) {_log(msg, 'log');} -function warn(msg) {_log(msg, 'warn');} -function error(msg) {_log(msg, 'error');} - -function assert(res, msg) { - if (!res) { - error('FAIL: ' + msg); - } else { - log('Pass: ' + msg); - } -} - -// -// Unit tests -// - -// Verify ordering of v1 ids created with explicit times -var TIME = 1321644961388; // 2011-11-18 11:36:01.388-08:00 - -function compare(name, ids) { - ids = ids.map(function(id) { - return id.split('-').reverse().join('-'); - }).sort(); - var sorted = ([].concat(ids)).sort(); - - assert(sorted.toString() == ids.toString(), name + ' have expected order'); -} - -// Verify ordering of v1 ids created using default behavior -compare('uuids with current time', [ - uuid.v1(), - uuid.v1(), - uuid.v1(), - uuid.v1(), - uuid.v1() -]); - -// Verify ordering of v1 ids created with explicit times -compare('uuids with time option', [ - uuid.v1({msecs: TIME - 10*3600*1000}), - uuid.v1({msecs: TIME - 1}), - uuid.v1({msecs: TIME}), - uuid.v1({msecs: TIME + 1}), - uuid.v1({msecs: TIME + 28*24*3600*1000}) -]); - -assert( - uuid.v1({msecs: TIME}) != uuid.v1({msecs: TIME}), - 'IDs created at same msec are different' -); - -// Verify throw if too many ids created -var thrown = false; -try { - uuid.v1({msecs: TIME, nsecs: 10000}); -} catch (e) { - thrown = true; -} -assert(thrown, 'Exception thrown when > 10K ids created in 1 ms'); - -// Verify clock regression bumps clockseq -var uidt = uuid.v1({msecs: TIME}); -var uidtb = uuid.v1({msecs: TIME - 1}); -assert( - parseInt(uidtb.split('-')[3], 16) - parseInt(uidt.split('-')[3], 16) === 1, - 'Clock regression by msec increments the clockseq' -); - -// Verify clock regression bumps clockseq -var uidtn = uuid.v1({msecs: TIME, nsecs: 10}); -var uidtnb = uuid.v1({msecs: TIME, nsecs: 9}); -assert( - parseInt(uidtnb.split('-')[3], 16) - parseInt(uidtn.split('-')[3], 16) === 1, - 'Clock regression by nsec increments the clockseq' -); - -// Verify explicit options produce expected id -var id = uuid.v1({ - msecs: 1321651533573, - nsecs: 5432, - clockseq: 0x385c, - node: [ 0x61, 0xcd, 0x3c, 0xbb, 0x32, 0x10 ] -}); -assert(id == 'd9428888-122b-11e1-b85c-61cd3cbb3210', 'Explicit options produce expected id'); - -// Verify adjacent ids across a msec boundary are 1 time unit apart -var u0 = uuid.v1({msecs: TIME, nsecs: 9999}); -var u1 = uuid.v1({msecs: TIME + 1, nsecs: 0}); - -var before = u0.split('-')[0], after = u1.split('-')[0]; -var dt = parseInt(after, 16) - parseInt(before, 16); -assert(dt === 1, 'Ids spanning 1ms boundary are 100ns apart'); - -// -// Test parse/unparse -// - -id = '00112233445566778899aabbccddeeff'; -assert(uuid.unparse(uuid.parse(id.substr(0,10))) == - '00112233-4400-0000-0000-000000000000', 'Short parse'); -assert(uuid.unparse(uuid.parse('(this is the uuid -> ' + id + id)) == - '00112233-4455-6677-8899-aabbccddeeff', 'Dirty parse'); - -// -// Perf tests -// - -var generators = { - v1: uuid.v1, - v4: uuid.v4 -}; - -var UUID_FORMAT = { - v1: /[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i, - v4: /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i -}; - -var N = 1e4; - -// Get %'age an actual value differs from the ideal value -function divergence(actual, ideal) { - return Math.round(100*100*(actual - ideal)/ideal)/100; -} - -function rate(msg, t) { - log(msg + ': ' + (N / (Date.now() - t) * 1e3 | 0) + ' uuids\/second'); -} - -for (var version in generators) { - var counts = {}, max = 0; - var generator = generators[version]; - var format = UUID_FORMAT[version]; - - log('\nSanity check ' + N + ' ' + version + ' uuids'); - for (var i = 0, ok = 0; i < N; i++) { - id = generator(); - if (!format.test(id)) { - throw Error(id + ' is not a valid UUID string'); - } - - if (id != uuid.unparse(uuid.parse(id))) { - assert(fail, id + ' is not a valid id'); - } - - // Count digits for our randomness check - if (version == 'v4') { - var digits = id.replace(/-/g, '').split(''); - for (var j = digits.length-1; j >= 0; j--) { - var c = digits[j]; - max = Math.max(max, counts[c] = (counts[c] || 0) + 1); - } - } - } - - // Check randomness for v4 UUIDs - if (version == 'v4') { - // Limit that we get worried about randomness. (Purely empirical choice, this!) - var limit = 2*100*Math.sqrt(1/N); - - log('\nChecking v4 randomness. Distribution of Hex Digits (% deviation from ideal)'); - - for (var i = 0; i < 16; i++) { - var c = i.toString(16); - var bar = '', n = counts[c], p = Math.round(n/max*100|0); - - // 1-3,5-8, and D-F: 1:16 odds over 30 digits - var ideal = N*30/16; - if (i == 4) { - // 4: 1:1 odds on 1 digit, plus 1:16 odds on 30 digits - ideal = N*(1 + 30/16); - } else if (i >= 8 && i <= 11) { - // 8-B: 1:4 odds on 1 digit, plus 1:16 odds on 30 digits - ideal = N*(1/4 + 30/16); - } else { - // Otherwise: 1:16 odds on 30 digits - ideal = N*30/16; - } - var d = divergence(n, ideal); - - // Draw bar using UTF squares (just for grins) - var s = n/max*50 | 0; - while (s--) bar += '='; - - assert(Math.abs(d) < limit, c + ' |' + bar + '| ' + counts[c] + ' (' + d + '% < ' + limit + '%)'); - } - } -} - -// Perf tests -for (var version in generators) { - log('\nPerformance testing ' + version + ' UUIDs'); - var generator = generators[version]; - var buf = new uuid.BufferClass(16); - - for (var i = 0, t = Date.now(); i < N; i++) generator(); - rate('uuid.' + version + '()', t); - - for (var i = 0, t = Date.now(); i < N; i++) generator('binary'); - rate('uuid.' + version + '(\'binary\')', t); - - for (var i = 0, t = Date.now(); i < N; i++) generator('binary', buf); - rate('uuid.' + version + '(\'binary\', buffer)', t); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/uuid.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/uuid.js deleted file mode 100644 index 89c5b8fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/node-uuid/uuid.js +++ /dev/null @@ -1,272 +0,0 @@ -// uuid.js -// -// Copyright (c) 2010-2012 Robert Kieffer -// MIT License - http://opensource.org/licenses/mit-license.php - -/*global window, require, define */ -(function(_window) { - 'use strict'; - - // Unique ID creation requires a high quality random # generator. We feature - // detect to determine the best RNG source, normalizing to a function that - // returns 128-bits of randomness, since that's what's usually required - var _rng, _mathRNG, _nodeRNG, _whatwgRNG, _previousRoot; - - function setupBrowser() { - // Allow for MSIE11 msCrypto - var _crypto = _window.crypto || _window.msCrypto; - - if (!_rng && _crypto && _crypto.getRandomValues) { - // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto - // - // Moderately fast, high quality - try { - var _rnds8 = new Uint8Array(16); - _whatwgRNG = _rng = function whatwgRNG() { - _crypto.getRandomValues(_rnds8); - return _rnds8; - }; - _rng(); - } catch(e) {} - } - - if (!_rng) { - // Math.random()-based (RNG) - // - // If all else fails, use Math.random(). It's fast, but is of unspecified - // quality. - var _rnds = new Array(16); - _mathRNG = _rng = function() { - for (var i = 0, r; i < 16; i++) { - if ((i & 0x03) === 0) { r = Math.random() * 0x100000000; } - _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - - return _rnds; - }; - if ('undefined' !== typeof console && console.warn) { - console.warn("[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()"); - } - } - } - - function setupNode() { - // Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html - // - // Moderately fast, high quality - if ('function' === typeof require) { - try { - var _rb = require('crypto').randomBytes; - _nodeRNG = _rng = _rb && function() {return _rb(16);}; - _rng(); - } catch(e) {} - } - } - - if (_window) { - setupBrowser(); - } else { - setupNode(); - } - - // Buffer class to use - var BufferClass = ('function' === typeof Buffer) ? Buffer : Array; - - // Maps for number <-> hex string conversion - var _byteToHex = []; - var _hexToByte = {}; - for (var i = 0; i < 256; i++) { - _byteToHex[i] = (i + 0x100).toString(16).substr(1); - _hexToByte[_byteToHex[i]] = i; - } - - // **`parse()` - Parse a UUID into it's component bytes** - function parse(s, buf, offset) { - var i = (buf && offset) || 0, ii = 0; - - buf = buf || []; - s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) { - if (ii < 16) { // Don't overflow! - buf[i + ii++] = _hexToByte[oct]; - } - }); - - // Zero out remaining bytes if string was short - while (ii < 16) { - buf[i + ii++] = 0; - } - - return buf; - } - - // **`unparse()` - Convert UUID byte array (ala parse()) into a string** - function unparse(buf, offset) { - var i = offset || 0, bth = _byteToHex; - return bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]]; - } - - // **`v1()` - Generate time-based UUID** - // - // Inspired by https://github.com/LiosK/UUID.js - // and http://docs.python.org/library/uuid.html - - // random #'s we need to init node and clockseq - var _seedBytes = _rng(); - - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - var _nodeId = [ - _seedBytes[0] | 0x01, - _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5] - ]; - - // Per 4.2.2, randomize (14 bit) clockseq - var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff; - - // Previous uuid creation time - var _lastMSecs = 0, _lastNSecs = 0; - - // See https://github.com/broofa/node-uuid for API details - function v1(options, buf, offset) { - var i = buf && offset || 0; - var b = buf || []; - - options = options || {}; - - var clockseq = (options.clockseq != null) ? options.clockseq : _clockseq; - - // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - var msecs = (options.msecs != null) ? options.msecs : new Date().getTime(); - - // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - var nsecs = (options.nsecs != null) ? options.nsecs : _lastNSecs + 1; - - // Time since last uuid creation (in msecs) - var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; - - // Per 4.2.1.2, Bump clockseq on clock regression - if (dt < 0 && options.clockseq == null) { - clockseq = clockseq + 1 & 0x3fff; - } - - // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) { - nsecs = 0; - } - - // Per 4.2.1.2 Throw error if too many uuids are requested - if (nsecs >= 10000) { - throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; - - // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - msecs += 12219292800000; - - // `time_low` - var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; - - // `time_mid` - var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; - - // `time_high_and_version` - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - b[i++] = tmh >>> 16 & 0xff; - - // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - b[i++] = clockseq >>> 8 | 0x80; - - // `clock_seq_low` - b[i++] = clockseq & 0xff; - - // `node` - var node = options.node || _nodeId; - for (var n = 0; n < 6; n++) { - b[i + n] = node[n]; - } - - return buf ? buf : unparse(b); - } - - // **`v4()` - Generate random UUID** - - // See https://github.com/broofa/node-uuid for API details - function v4(options, buf, offset) { - // Deprecated - 'format' argument, as supported in v1.2 - var i = buf && offset || 0; - - if (typeof(options) === 'string') { - buf = (options === 'binary') ? new BufferClass(16) : null; - options = null; - } - options = options || {}; - - var rnds = options.random || (options.rng || _rng)(); - - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = (rnds[6] & 0x0f) | 0x40; - rnds[8] = (rnds[8] & 0x3f) | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ii++) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || unparse(rnds); - } - - // Export public API - var uuid = v4; - uuid.v1 = v1; - uuid.v4 = v4; - uuid.parse = parse; - uuid.unparse = unparse; - uuid.BufferClass = BufferClass; - uuid._rng = _rng; - uuid._mathRNG = _mathRNG; - uuid._nodeRNG = _nodeRNG; - uuid._whatwgRNG = _whatwgRNG; - - if (('undefined' !== typeof module) && module.exports) { - // Publish as node.js module - module.exports = uuid; - } else if (typeof define === 'function' && define.amd) { - // Publish as AMD module - define(function() {return uuid;}); - - - } else { - // Publish as global (in browsers) - _previousRoot = _window.uuid; - - // **`noConflict()` - (browser only) to reset global 'uuid' var** - uuid.noConflict = function() { - _window.uuid = _previousRoot; - return uuid; - }; - - _window.uuid = uuid; - } -})('undefined' !== typeof window ? window : null); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/LICENSE deleted file mode 100644 index a4a9aee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/README.md deleted file mode 100644 index 34c4a85d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/README.md +++ /dev/null @@ -1,4 +0,0 @@ -oauth-sign -========== - -OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/index.js deleted file mode 100644 index dadcba97..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/index.js +++ /dev/null @@ -1,136 +0,0 @@ -var crypto = require('crypto') - , qs = require('querystring') - ; - -function sha1 (key, body) { - return crypto.createHmac('sha1', key).update(body).digest('base64') -} - -function rsa (key, body) { - return crypto.createSign("RSA-SHA1").update(body).sign(key, 'base64'); -} - -function rfc3986 (str) { - return encodeURIComponent(str) - .replace(/!/g,'%21') - .replace(/\*/g,'%2A') - .replace(/\(/g,'%28') - .replace(/\)/g,'%29') - .replace(/'/g,'%27') - ; -} - -// Maps object to bi-dimensional array -// Converts { foo: 'A', bar: [ 'b', 'B' ]} to -// [ ['foo', 'A'], ['bar', 'b'], ['bar', 'B'] ] -function map (obj) { - var key, val, arr = [] - for (key in obj) { - val = obj[key] - if (Array.isArray(val)) - for (var i = 0; i < val.length; i++) - arr.push([key, val[i]]) - else if (typeof val === "object") - for (var prop in val) - arr.push([key + '[' + prop + ']', val[prop]]); - else - arr.push([key, val]) - } - return arr -} - -// Compare function for sort -function compare (a, b) { - return a > b ? 1 : a < b ? -1 : 0 -} - -function generateBase (httpMethod, base_uri, params) { - // adapted from https://dev.twitter.com/docs/auth/oauth and - // https://dev.twitter.com/docs/auth/creating-signature - - // Parameter normalization - // http://tools.ietf.org/html/rfc5849#section-3.4.1.3.2 - var normalized = map(params) - // 1. First, the name and value of each parameter are encoded - .map(function (p) { - return [ rfc3986(p[0]), rfc3986(p[1] || '') ] - }) - // 2. The parameters are sorted by name, using ascending byte value - // ordering. If two or more parameters share the same name, they - // are sorted by their value. - .sort(function (a, b) { - return compare(a[0], b[0]) || compare(a[1], b[1]) - }) - // 3. The name of each parameter is concatenated to its corresponding - // value using an "=" character (ASCII code 61) as a separator, even - // if the value is empty. - .map(function (p) { return p.join('=') }) - // 4. The sorted name/value pairs are concatenated together into a - // single string by using an "&" character (ASCII code 38) as - // separator. - .join('&') - - var base = [ - rfc3986(httpMethod ? httpMethod.toUpperCase() : 'GET'), - rfc3986(base_uri), - rfc3986(normalized) - ].join('&') - - return base -} - -function hmacsign (httpMethod, base_uri, params, consumer_secret, token_secret) { - var base = generateBase(httpMethod, base_uri, params) - var key = [ - consumer_secret || '', - token_secret || '' - ].map(rfc3986).join('&') - - return sha1(key, base) -} - -function rsasign (httpMethod, base_uri, params, private_key, token_secret) { - var base = generateBase(httpMethod, base_uri, params) - var key = private_key || '' - - return rsa(key, base) -} - -function plaintext (consumer_secret, token_secret) { - var key = [ - consumer_secret || '', - token_secret || '' - ].map(rfc3986).join('&') - - return key -} - -function sign (signMethod, httpMethod, base_uri, params, consumer_secret, token_secret) { - var method - var skipArgs = 1 - - switch (signMethod) { - case 'RSA-SHA1': - method = rsasign - break - case 'HMAC-SHA1': - method = hmacsign - break - case 'PLAINTEXT': - method = plaintext - skipArgs = 4 - break - default: - throw new Error("Signature method not supported: " + signMethod) - } - - return method.apply(null, [].slice.call(arguments, skipArgs)) -} - -exports.hmacsign = hmacsign -exports.rsasign = rsasign -exports.plaintext = plaintext -exports.sign = sign -exports.rfc3986 = rfc3986 -exports.generateBase = generateBase - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/package.json deleted file mode 100644 index 788eebb0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "_args": [ - [ - "oauth-sign@~0.8.0", - "/Users/rebecca/code/npm/node_modules/request" - ] - ], - "_from": "oauth-sign@>=0.8.0 <0.9.0", - "_id": "oauth-sign@0.8.1", - "_inCache": true, - "_installable": true, - "_location": "/request/oauth-sign", - "_nodeVersion": "5.5.0", - "_npmUser": { - "email": "simeonvelichkov@gmail.com", - "name": "simov" - }, - "_npmVersion": "3.6.0", - "_phantomChildren": {}, - "_requested": { - "name": "oauth-sign", - "raw": "oauth-sign@~0.8.0", - "rawSpec": "~0.8.0", - "scope": null, - "spec": ">=0.8.0 <0.9.0", - "type": "range" - }, - "_requiredBy": [ - "/request" - ], - "_resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz", - "_shasum": "182439bdb91378bf7460e75c64ea43e6448def06", - "_shrinkwrap": null, - "_spec": "oauth-sign@~0.8.0", - "_where": "/Users/rebecca/code/npm/node_modules/request", - "author": { - "email": "mikeal.rogers@gmail.com", - "name": "Mikeal Rogers", - "url": "http://www.futurealoof.com" - }, - "bugs": { - "url": "https://github.com/mikeal/oauth-sign/issues" - }, - "dependencies": {}, - "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "182439bdb91378bf7460e75c64ea43e6448def06", - "tarball": "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" - }, - "engines": { - "node": "*" - }, - "gitHead": "9c7229a336c9face98b83f93b72cb7c80dbba08d", - "homepage": "https://github.com/mikeal/oauth-sign#readme", - "license": "Apache-2.0", - "main": "index.js", - "maintainers": [ - { - "email": "mikeal.rogers@gmail.com", - "name": "mikeal" - }, - { - "email": "jnylen@gmail.com", - "name": "nylen" - }, - { - "email": "simeonvelichkov@gmail.com", - "name": "simov" - } - ], - "name": "oauth-sign", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "url": "git+https://github.com/mikeal/oauth-sign.git" - }, - "scripts": { - "test": "node test.js" - }, - "version": "0.8.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/test.js deleted file mode 100644 index a8847270..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/oauth-sign/test.js +++ /dev/null @@ -1,89 +0,0 @@ -var oauth = require('./index') - , hmacsign = oauth.hmacsign - , assert = require('assert') - , qs = require('querystring') - ; - -// Tests from Twitter documentation https://dev.twitter.com/docs/auth/oauth - -var reqsign = hmacsign('POST', 'https://api.twitter.com/oauth/request_token', - { oauth_callback: 'http://localhost:3005/the_dance/process_callback?service_provider_id=11' - , oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' - , oauth_nonce: 'QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk' - , oauth_signature_method: 'HMAC-SHA1' - , oauth_timestamp: '1272323042' - , oauth_version: '1.0' - }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98") - -console.log(reqsign) -console.log('8wUi7m5HFQy76nowoCThusfgB+Q=') -assert.equal(reqsign, '8wUi7m5HFQy76nowoCThusfgB+Q=') - -var accsign = hmacsign('POST', 'https://api.twitter.com/oauth/access_token', - { oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' - , oauth_nonce: '9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8' - , oauth_signature_method: 'HMAC-SHA1' - , oauth_token: '8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc' - , oauth_timestamp: '1272323047' - , oauth_verifier: 'pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY' - , oauth_version: '1.0' - }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA") - -console.log(accsign) -console.log('PUw/dHA4fnlJYM6RhXk5IU/0fCc=') -assert.equal(accsign, 'PUw/dHA4fnlJYM6RhXk5IU/0fCc=') - -var upsign = hmacsign('POST', 'http://api.twitter.com/1/statuses/update.json', - { oauth_consumer_key: "GDdmIQH6jhtmLUypg82g" - , oauth_nonce: "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" - , oauth_signature_method: "HMAC-SHA1" - , oauth_token: "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw" - , oauth_timestamp: "1272325550" - , oauth_version: "1.0" - , status: 'setting up my twitter 私のさえずりを設定する' - }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "J6zix3FfA9LofH0awS24M3HcBYXO5nI1iYe8EfBA") - -console.log(upsign) -console.log('yOahq5m0YjDDjfjxHaXEsW9D+X0=') -assert.equal(upsign, 'yOahq5m0YjDDjfjxHaXEsW9D+X0=') - -// handle objects in params (useful for Wordpress REST API) -var upsign = hmacsign('POST', 'http://wordpress.com/wp-json', - { oauth_consumer_key: "GDdmIQH6jhtmLUypg82g" - , oauth_nonce: "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" - , oauth_signature_method: "HMAC-SHA1" - , oauth_token: "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw" - , oauth_timestamp: "1272325550" - , oauth_version: "1.0" - , filter: { number: "-1" } - }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "J6zix3FfA9LofH0awS24M3HcBYXO5nI1iYe8EfBA") - -console.log(upsign) -console.log('YrJFBdwnjuIitGpKrxLUplcuuUQ=') -assert.equal(upsign, 'YrJFBdwnjuIitGpKrxLUplcuuUQ=') - -// example in rfc5849 -var params = qs.parse('b5=%3D%253D&a3=a&c%40=&a2=r%20b' + '&' + 'c2&a3=2+q') -params.oauth_consumer_key = '9djdj82h48djs9d2' -params.oauth_token = 'kkk9d7dh3k39sjv7' -params.oauth_nonce = '7d8f3e4a' -params.oauth_signature_method = 'HMAC-SHA1' -params.oauth_timestamp = '137131201' - -var rfc5849sign = hmacsign('POST', 'http://example.com/request', - params, "j49sk3j29djd", "dh893hdasih9") - -console.log(rfc5849sign) -console.log('r6/TJjbCOr97/+UU0NsvSne7s5g=') -assert.equal(rfc5849sign, 'r6/TJjbCOr97/+UU0NsvSne7s5g=') - - -// PLAINTEXT - -var plainSign = oauth.sign('PLAINTEXT', 'GET', 'http://dummy.com', {}, 'consumer_secret', 'token_secret') -console.log(plainSign) -assert.equal(plainSign, 'consumer_secret&token_secret') - -plainSign = oauth.plaintext('consumer_secret', 'token_secret') -console.log(plainSign) -assert.equal(plainSign, 'consumer_secret&token_secret') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/.eslintignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/.eslintignore deleted file mode 100644 index 1521c8b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -dist diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/.npmignore deleted file mode 100644 index 7e1574dc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/.npmignore +++ /dev/null @@ -1,18 +0,0 @@ -.idea -*.iml -npm-debug.log -dump.rdb -node_modules -results.tap -results.xml -npm-shrinkwrap.json -config.json -.DS_Store -*/.DS_Store -*/*/.DS_Store -._* -*/._* -*/*/._* -coverage.* -lib-cov -complexity.md diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/.travis.yml deleted file mode 100644 index 63bdc12b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/.travis.yml +++ /dev/null @@ -1,69 +0,0 @@ -language: node_js -node_js: - - "5.3" - - "5.2" - - "5.1" - - "5.0" - - "4.2" - - "4.1" - - "4.0" - - "iojs-v3.3" - - "iojs-v3.2" - - "iojs-v3.1" - - "iojs-v3.0" - - "iojs-v2.5" - - "iojs-v2.4" - - "iojs-v2.3" - - "iojs-v2.2" - - "iojs-v2.1" - - "iojs-v2.0" - - "iojs-v1.8" - - "iojs-v1.7" - - "iojs-v1.6" - - "iojs-v1.5" - - "iojs-v1.4" - - "iojs-v1.3" - - "iojs-v1.2" - - "iojs-v1.1" - - "iojs-v1.0" - - "0.12" - - "0.11" - - "0.10" - - "0.9" - - "0.8" - - "0.6" - - "0.4" -before_install: - - 'if [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi' - - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then npm install -g npm; fi' -script: - - 'if [ "${TRAVIS_NODE_VERSION}" != "4.2" ]; then npm run tests-only ; else npm test ; fi' -sudo: false -matrix: - fast_finish: true - allow_failures: - - node_js: "5.2" - - node_js: "5.1" - - node_js: "5.0" - - node_js: "4.1" - - node_js: "4.0" - - node_js: "iojs-v3.2" - - node_js: "iojs-v3.1" - - node_js: "iojs-v3.0" - - node_js: "iojs-v2.4" - - node_js: "iojs-v2.3" - - node_js: "iojs-v2.2" - - node_js: "iojs-v2.1" - - node_js: "iojs-v2.0" - - node_js: "iojs-v1.7" - - node_js: "iojs-v1.6" - - node_js: "iojs-v1.5" - - node_js: "iojs-v1.4" - - node_js: "iojs-v1.3" - - node_js: "iojs-v1.2" - - node_js: "iojs-v1.1" - - node_js: "iojs-v1.0" - - node_js: "0.11" - - node_js: "0.9" - - node_js: "0.6" - - node_js: "0.4" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/CHANGELOG.md deleted file mode 100644 index 5c66ea44..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/CHANGELOG.md +++ /dev/null @@ -1,115 +0,0 @@ -## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=34&state=closed) -- [New] allowDots option for `stringify` (#151) -- [Fix] "sort" option should work at a depth of 3 or more (#151) -- [Fix] Restore `dist` directory; will be removed in v7 (#148) - -## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed) -- Revert ES6 requirement and restore support for node down to v0.8. - -## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed) -- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json - -## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed) -- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4 - -## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed) -- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string - -## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed) -- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional -- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify - -## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed) -- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false -- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm - -## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed) -- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional - -## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed) -- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation" - -## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed) -- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties -- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost -- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing -- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object -- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option -- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects. -- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47 -- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986 -- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign -- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute - -## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed) -- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object # is not a function - -## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed) -- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option - -## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed) -- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57 -- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader - -## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed) -- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object - -## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed) -- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError". - -## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed) -- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46 - -## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed) -- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer? -- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45 -- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39 - -## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed) -- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number - -## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed) -- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array -- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x - -## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed) -- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value -- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty -- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver? - -## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed) -- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31 -- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects - -## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed) -- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present -- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays -- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge -- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters? - -## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed) -- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter - -## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed) -- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit? -- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit -- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20 - -## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed) -- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values - -## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed) -- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters -- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block - -## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed) -- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument -- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed - -## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed) -- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted -- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null -- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README - -## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed) -- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/CONTRIBUTING.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/CONTRIBUTING.md deleted file mode 100644 index 89283615..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/CONTRIBUTING.md +++ /dev/null @@ -1 +0,0 @@ -Please view our [hapijs contributing guide](https://github.com/hapijs/hapi/blob/master/CONTRIBUTING.md). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/LICENSE deleted file mode 100644 index d4569487..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2014 Nathan LaFreniere and other 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. - * The names of any contributors may not 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 HOLDERS AND 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. - - * * * - -The complete list of contributors can be found at: https://github.com/hapijs/qs/graphs/contributors diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/README.md deleted file mode 100644 index 335eafb4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/README.md +++ /dev/null @@ -1,335 +0,0 @@ -# qs - -A querystring parsing and stringifying library with some added security. - -[![Build Status](https://api.travis-ci.org/ljharb/qs.svg)](http://travis-ci.org/ljharb/qs) - -Lead Maintainer: [Jordan Harband](https://github.com/ljharb) - -The **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring). - -## Usage - -```javascript -var qs = require('qs'); -var assert = require('assert'); - -var obj = qs.parse('a=c'); -assert.deepEqual(obj, { a: 'c' }); - -var str = qs.stringify(obj); -assert.equal(str, 'a=c'); -``` - -### Parsing Objects - -[](#preventEval) -```javascript -qs.parse(string, [options]); -``` - -**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`. -For example, the string `'foo[bar]=baz'` converts to: - -```javascript -assert.deepEqual(qs.parse('foo[bar]=baz'), { - foo: { - bar: 'baz' - } -}); -``` - -When using the `plainObjects` option the parsed value is returned as a plain object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like: - -```javascript -var plainObject = qs.parse('a[hasOwnProperty]=b', { plainObjects: true }); -assert.deepEqual(plainObject, { a: { hasOwnProperty: 'b' } }); -``` - -By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option. - -```javascript -var protoObject = qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }); -assert.deepEqual(protoObject, { a: { hasOwnProperty: 'b' } }); -``` - -URI encoded strings work too: - -```javascript -assert.deepEqual(qs.parse('a%5Bb%5D=c'), { - a: { b: 'c' } -}); -``` - -You can also nest your objects, like `'foo[bar][baz]=foobarbaz'`: - -```javascript -assert.deepEqual(qs.parse('foo[bar][baz]=foobarbaz'), { - foo: { - bar: { - baz: 'foobarbaz' - } - } -}); -``` - -By default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like -`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be: - -```javascript -var expected = { - a: { - b: { - c: { - d: { - e: { - f: { - '[g][h][i]': 'j' - } - } - } - } - } - } -}; -var string = 'a[b][c][d][e][f][g][h][i]=j'; -assert.deepEqual(qs.parse(string), expected); -``` - -This depth can be overridden by passing a `depth` option to `qs.parse(string, [options])`: - -```javascript -var deep = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 }); -assert.deepEqual(deep, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }); -``` - -The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number. - -For similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option: - -```javascript -var limited = qs.parse('a=b&c=d', { parameterLimit: 1 }); -assert.deepEqual(limited, { a: 'b' }); -``` - -An optional delimiter can also be passed: - -```javascript -var delimited = qs.parse('a=b;c=d', { delimiter: ';' }); -assert.deepEqual(delimited, { a: 'b', c: 'd' }); -``` - -Delimiters can be a regular expression too: - -```javascript -var regexed = qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ }); -assert.deepEqual(regexed, { a: 'b', c: 'd', e: 'f' }); -``` - -Option `allowDots` can be used to enable dot notation: - -```javascript -var withDots = qs.parse('a.b=c', { allowDots: true }); -assert.deepEqual(withDots, { a: { b: 'c' } }); -``` - -### Parsing Arrays - -**qs** can also parse arrays using a similar `[]` notation: - -```javascript -var withArray = qs.parse('a[]=b&a[]=c'); -assert.deepEqual(withArray, { a: ['b', 'c'] }); -``` - -You may specify an index as well: - -```javascript -var withIndexes = qs.parse('a[1]=c&a[0]=b'); -assert.deepEqual(withIndexes, { a: ['b', 'c'] }); -``` - -Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number -to create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving -their order: - -```javascript -var noSparse = qs.parse('a[1]=b&a[15]=c'); -assert.deepEqual(noSparse, { a: ['b', 'c'] }); -``` - -Note that an empty string is also a value, and will be preserved: - -```javascript -var withEmptyString = qs.parse('a[]=&a[]=b'); -assert.deepEqual(withEmptyString, { a: ['', 'b'] }); - -var withIndexedEmptyString = qs.parse('a[0]=b&a[1]=&a[2]=c'); -assert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] }); -``` - -**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will -instead be converted to an object with the index as the key: - -```javascript -var withMaxIndex = qs.parse('a[100]=b'); -assert.deepEqual(withMaxIndex, { a: { '100': 'b' } }); -``` - -This limit can be overridden by passing an `arrayLimit` option: - -```javascript -var withArrayLimit = qs.parse('a[1]=b', { arrayLimit: 0 }); -assert.deepEqual(withArrayLimit, { a: { '1': 'b' } }); -``` - -To disable array parsing entirely, set `parseArrays` to `false`. - -```javascript -var noParsingArrays = qs.parse('a[]=b', { parseArrays: false }); -assert.deepEqual(noParsingArrays, { a: { '0': 'b' } }); -``` - -If you mix notations, **qs** will merge the two items into an object: - -```javascript -var mixedNotation = qs.parse('a[0]=b&a[b]=c'); -assert.deepEqual(mixedNotation, { a: { '0': 'b', b: 'c' } }); -``` - -You can also create arrays of objects: - -```javascript -var arraysOfObjects = qs.parse('a[][b]=c'); -assert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] }); -``` - -### Stringifying - -[](#preventEval) -```javascript -qs.stringify(object, [options]); -``` - -When stringifying, **qs** by default URI encodes output. Objects are stringified as you would expect: - -```javascript -assert.equal(qs.stringify({ a: 'b' }), 'a=b'); -assert.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); -``` - -This encoding can be disabled by setting the `encode` option to `false`: - -```javascript -var unencoded = qs.stringify({ a: { b: 'c' } }, { encode: false }); -assert.equal(unencoded, 'a[b]=c'); -``` - -Examples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage. - -When arrays are stringified, by default they are given explicit indices: - -```javascript -qs.stringify({ a: ['b', 'c', 'd'] }); -// 'a[0]=b&a[1]=c&a[2]=d' -``` - -You may override this by setting the `indices` option to `false`: - -```javascript -qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); -// 'a=b&a=c&a=d' -``` - -You may use the `arrayFormat` option to specify the format of the output array - -```javascript -qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) -// 'a[0]=b&a[1]=c' -qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) -// 'a[]=b&a[]=c' -qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) -// 'a=b&a=c' -``` - -Empty strings and null values will omit the value, but the equals sign (=) remains in place: - -```javascript -assert.equal(qs.stringify({ a: '' }), 'a='); -``` - -Properties that are set to `undefined` will be omitted entirely: - -```javascript -assert.equal(qs.stringify({ a: null, b: undefined }), 'a='); -``` - -The delimiter may be overridden with stringify as well: - -```javascript -assert.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); -``` - -Finally, you can use the `filter` option to restrict which keys will be included in the stringified output. -If you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you -pass an array, it will be used to select properties and array indices for stringification: - -```javascript -function filterFunc(prefix, value) { - if (prefix == 'b') { - // Return an `undefined` value to omit a property. - return; - } - if (prefix == 'e[f]') { - return value.getTime(); - } - if (prefix == 'e[g][0]') { - return value * 2; - } - return value; -} -qs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc }); -// 'a=b&c=d&e[f]=123&e[g][0]=4' -qs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] }); -// 'a=b&e=f' -qs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] }); -// 'a[0]=b&a[2]=d' -``` - -### Handling of `null` values - -By default, `null` values are treated like empty strings: - -```javascript -var withNull = qs.stringify({ a: null, b: '' }); -assert.equal(withNull, 'a=&b='); -``` - -Parsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings. - -```javascript -var equalsInsensitive = qs.parse('a&b='); -assert.deepEqual(equalsInsensitive, { a: '', b: '' }); -``` - -To distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null` -values have no `=` sign: - -```javascript -var strictNull = qs.stringify({ a: null, b: '' }, { strictNullHandling: true }); -assert.equal(strictNull, 'a&b='); -``` - -To parse values without `=` back to `null` use the `strictNullHandling` flag: - -```javascript -var parsedStrictNull = qs.parse('a&b=', { strictNullHandling: true }); -assert.deepEqual(parsedStrictNull, { a: null, b: '' }); -``` - -To completely skip rendering keys with `null` values, use the `skipNulls` flag: - -```javascript -var nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true }); -assert.equal(nullsSkipped, 'a=b'); -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/bower.json deleted file mode 100644 index 44f05064..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/bower.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "qs", - "main": "dist/qs.js", - "homepage": "https://github.com/hapijs/qs", - "authors": [ - "Nathan LaFreniere " - ], - "description": "A querystring parser that supports nesting and arrays, with a depth limit", - "keywords": [ - "querystring", - "qs" - ], - "license": "BSD-3-Clause", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/component.json deleted file mode 100644 index cb8d93fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/component.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "qs", - "repository": "hapijs/qs", - "description": "query-string parser / stringifier with nesting support", - "version": "6.1.0", - "keywords": ["querystring", "query", "parser"], - "main": "lib/index.js", - "scripts": [ - "lib/index.js", - "lib/parse.js", - "lib/stringify.js", - "lib/utils.js" - ], - "license": "BSD-3-Clause" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/dist/qs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/dist/qs.js deleted file mode 100644 index bb8ea31a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/dist/qs.js +++ /dev/null @@ -1,476 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0 && - (options.parseArrays && index <= options.arrayLimit) - ) { - obj = []; - obj[index] = internals.parseObject(chain, val, options); - } else { - obj[cleanRoot] = internals.parseObject(chain, val, options); - } - } - - return obj; -}; - -internals.parseKeys = function (givenKey, val, options) { - if (!givenKey) { - return; - } - - // Transform dot notation to bracket notation - var key = options.allowDots ? givenKey.replace(/\.([^\.\[]+)/g, '[$1]') : givenKey; - - // The regex chunks - - var parent = /^([^\[\]]*)/; - var child = /(\[[^\[\]]*\])/g; - - // Get the parent - - var segment = parent.exec(key); - - // Stash the parent if it exists - - var keys = []; - if (segment[1]) { - // If we aren't using plain objects, optionally prefix keys - // that would overwrite object prototype properties - if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1])) { - if (!options.allowPrototypes) { - return; - } - } - - keys.push(segment[1]); - } - - // Loop through children appending to the array until we hit depth - - var i = 0; - while ((segment = child.exec(key)) !== null && i < options.depth) { - i += 1; - if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1].replace(/\[|\]/g, ''))) { - if (!options.allowPrototypes) { - continue; - } - } - keys.push(segment[1]); - } - - // If there's a remainder, just add whatever is left - - if (segment) { - keys.push('[' + key.slice(segment.index) + ']'); - } - - return internals.parseObject(keys, val, options); -}; - -module.exports = function (str, opts) { - var options = opts || {}; - options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : internals.delimiter; - options.depth = typeof options.depth === 'number' ? options.depth : internals.depth; - options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : internals.arrayLimit; - options.parseArrays = options.parseArrays !== false; - options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : internals.allowDots; - options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : internals.plainObjects; - options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : internals.allowPrototypes; - options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : internals.parameterLimit; - options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : internals.strictNullHandling; - - if ( - str === '' || - str === null || - typeof str === 'undefined' - ) { - return options.plainObjects ? Object.create(null) : {}; - } - - var tempObj = typeof str === 'string' ? internals.parseValues(str, options) : str; - var obj = options.plainObjects ? Object.create(null) : {}; - - // Iterate over the keys and setup the new object - - var keys = Object.keys(tempObj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var newObj = internals.parseKeys(key, tempObj[key], options); - obj = Utils.merge(obj, newObj, options); - } - - return Utils.compact(obj); -}; - -},{"./utils":4}],3:[function(require,module,exports){ -'use strict'; - -var Utils = require('./utils'); - -var internals = { - delimiter: '&', - arrayPrefixGenerators: { - brackets: function (prefix) { - return prefix + '[]'; - }, - indices: function (prefix, key) { - return prefix + '[' + key + ']'; - }, - repeat: function (prefix) { - return prefix; - } - }, - strictNullHandling: false, - skipNulls: false, - encode: true -}; - -internals.stringify = function (object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots) { - var obj = object; - if (typeof filter === 'function') { - obj = filter(prefix, obj); - } else if (Utils.isBuffer(obj)) { - obj = String(obj); - } else if (obj instanceof Date) { - obj = obj.toISOString(); - } else if (obj === null) { - if (strictNullHandling) { - return encode ? Utils.encode(prefix) : prefix; - } - - obj = ''; - } - - if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean') { - if (encode) { - return [Utils.encode(prefix) + '=' + Utils.encode(obj)]; - } - return [prefix + '=' + obj]; - } - - var values = []; - - if (typeof obj === 'undefined') { - return values; - } - - var objKeys; - if (Array.isArray(filter)) { - objKeys = filter; - } else { - var keys = Object.keys(obj); - objKeys = sort ? keys.sort(sort) : keys; - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - if (Array.isArray(obj)) { - values = values.concat(internals.stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots)); - } else { - values = values.concat(internals.stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots)); - } - } - - return values; -}; - -module.exports = function (object, opts) { - var obj = object; - var options = opts || {}; - var delimiter = typeof options.delimiter === 'undefined' ? internals.delimiter : options.delimiter; - var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : internals.strictNullHandling; - var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : internals.skipNulls; - var encode = typeof options.encode === 'boolean' ? options.encode : internals.encode; - var sort = typeof options.sort === 'function' ? options.sort : null; - var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots; - var objKeys; - var filter; - if (typeof options.filter === 'function') { - filter = options.filter; - obj = filter('', obj); - } else if (Array.isArray(options.filter)) { - objKeys = filter = options.filter; - } - - var keys = []; - - if (typeof obj !== 'object' || obj === null) { - return ''; - } - - var arrayFormat; - if (options.arrayFormat in internals.arrayPrefixGenerators) { - arrayFormat = options.arrayFormat; - } else if ('indices' in options) { - arrayFormat = options.indices ? 'indices' : 'repeat'; - } else { - arrayFormat = 'indices'; - } - - var generateArrayPrefix = internals.arrayPrefixGenerators[arrayFormat]; - - if (!objKeys) { - objKeys = Object.keys(obj); - } - - if (sort) { - objKeys.sort(sort); - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - keys = keys.concat(internals.stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots)); - } - - return keys.join(delimiter); -}; - -},{"./utils":4}],4:[function(require,module,exports){ -'use strict'; - -var hexTable = (function () { - var array = new Array(256); - for (var i = 0; i < 256; ++i) { - array[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase(); - } - - return array; -}()); - -exports.arrayToObject = function (source, options) { - var obj = options.plainObjects ? Object.create(null) : {}; - for (var i = 0; i < source.length; ++i) { - if (typeof source[i] !== 'undefined') { - obj[i] = source[i]; - } - } - - return obj; -}; - -exports.merge = function (target, source, options) { - if (!source) { - return target; - } - - if (typeof source !== 'object') { - if (Array.isArray(target)) { - target.push(source); - } else if (typeof target === 'object') { - target[source] = true; - } else { - return [target, source]; - } - - return target; - } - - if (typeof target !== 'object') { - return [target].concat(source); - } - - var mergeTarget = target; - if (Array.isArray(target) && !Array.isArray(source)) { - mergeTarget = exports.arrayToObject(target, options); - } - - return Object.keys(source).reduce(function (acc, key) { - var value = source[key]; - - if (Object.prototype.hasOwnProperty.call(acc, key)) { - acc[key] = exports.merge(acc[key], value, options); - } else { - acc[key] = value; - } - return acc; - }, mergeTarget); -}; - -exports.decode = function (str) { - try { - return decodeURIComponent(str.replace(/\+/g, ' ')); - } catch (e) { - return str; - } -}; - -exports.encode = function (str) { - // This code was originally written by Brian White (mscdex) for the io.js core querystring library. - // It has been adapted here for stricter adherence to RFC 3986 - if (str.length === 0) { - return str; - } - - var string = typeof str === 'string' ? str : String(str); - - var out = ''; - for (var i = 0; i < string.length; ++i) { - var c = string.charCodeAt(i); - - if ( - c === 0x2D || // - - c === 0x2E || // . - c === 0x5F || // _ - c === 0x7E || // ~ - (c >= 0x30 && c <= 0x39) || // 0-9 - (c >= 0x41 && c <= 0x5A) || // a-z - (c >= 0x61 && c <= 0x7A) // A-Z - ) { - out += string.charAt(i); - continue; - } - - if (c < 0x80) { - out = out + hexTable[c]; - continue; - } - - if (c < 0x800) { - out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - if (c < 0xD800 || c >= 0xE000) { - out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - i += 1; - c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); - out += (hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); - } - - return out; -}; - -exports.compact = function (obj, references) { - if (typeof obj !== 'object' || obj === null) { - return obj; - } - - var refs = references || []; - var lookup = refs.indexOf(obj); - if (lookup !== -1) { - return refs[lookup]; - } - - refs.push(obj); - - if (Array.isArray(obj)) { - var compacted = []; - - for (var i = 0; i < obj.length; ++i) { - if (typeof obj[i] !== 'undefined') { - compacted.push(obj[i]); - } - } - - return compacted; - } - - var keys = Object.keys(obj); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - obj[key] = exports.compact(obj[key], refs); - } - - return obj; -}; - -exports.isRegExp = function (obj) { - return Object.prototype.toString.call(obj) === '[object RegExp]'; -}; - -exports.isBuffer = function (obj) { - if (obj === null || typeof obj === 'undefined') { - return false; - } - - return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); -}; - -},{}]},{},[1])(1) -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/index.js deleted file mode 100755 index 19019590..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/index.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var Stringify = require('./stringify'); -var Parse = require('./parse'); - -module.exports = { - stringify: Stringify, - parse: Parse -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/parse.js deleted file mode 100755 index 9b6cbd22..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/parse.js +++ /dev/null @@ -1,164 +0,0 @@ -'use strict'; - -var Utils = require('./utils'); - -var internals = { - delimiter: '&', - depth: 5, - arrayLimit: 20, - parameterLimit: 1000, - strictNullHandling: false, - plainObjects: false, - allowPrototypes: false, - allowDots: false -}; - -internals.parseValues = function (str, options) { - var obj = {}; - var parts = str.split(options.delimiter, options.parameterLimit === Infinity ? undefined : options.parameterLimit); - - for (var i = 0; i < parts.length; ++i) { - var part = parts[i]; - var pos = part.indexOf(']=') === -1 ? part.indexOf('=') : part.indexOf(']=') + 1; - - if (pos === -1) { - obj[Utils.decode(part)] = ''; - - if (options.strictNullHandling) { - obj[Utils.decode(part)] = null; - } - } else { - var key = Utils.decode(part.slice(0, pos)); - var val = Utils.decode(part.slice(pos + 1)); - - if (Object.prototype.hasOwnProperty.call(obj, key)) { - obj[key] = [].concat(obj[key]).concat(val); - } else { - obj[key] = val; - } - } - } - - return obj; -}; - -internals.parseObject = function (chain, val, options) { - if (!chain.length) { - return val; - } - - var root = chain.shift(); - - var obj; - if (root === '[]') { - obj = []; - obj = obj.concat(internals.parseObject(chain, val, options)); - } else { - obj = options.plainObjects ? Object.create(null) : {}; - var cleanRoot = root[0] === '[' && root[root.length - 1] === ']' ? root.slice(1, root.length - 1) : root; - var index = parseInt(cleanRoot, 10); - if ( - !isNaN(index) && - root !== cleanRoot && - String(index) === cleanRoot && - index >= 0 && - (options.parseArrays && index <= options.arrayLimit) - ) { - obj = []; - obj[index] = internals.parseObject(chain, val, options); - } else { - obj[cleanRoot] = internals.parseObject(chain, val, options); - } - } - - return obj; -}; - -internals.parseKeys = function (givenKey, val, options) { - if (!givenKey) { - return; - } - - // Transform dot notation to bracket notation - var key = options.allowDots ? givenKey.replace(/\.([^\.\[]+)/g, '[$1]') : givenKey; - - // The regex chunks - - var parent = /^([^\[\]]*)/; - var child = /(\[[^\[\]]*\])/g; - - // Get the parent - - var segment = parent.exec(key); - - // Stash the parent if it exists - - var keys = []; - if (segment[1]) { - // If we aren't using plain objects, optionally prefix keys - // that would overwrite object prototype properties - if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1])) { - if (!options.allowPrototypes) { - return; - } - } - - keys.push(segment[1]); - } - - // Loop through children appending to the array until we hit depth - - var i = 0; - while ((segment = child.exec(key)) !== null && i < options.depth) { - i += 1; - if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1].replace(/\[|\]/g, ''))) { - if (!options.allowPrototypes) { - continue; - } - } - keys.push(segment[1]); - } - - // If there's a remainder, just add whatever is left - - if (segment) { - keys.push('[' + key.slice(segment.index) + ']'); - } - - return internals.parseObject(keys, val, options); -}; - -module.exports = function (str, opts) { - var options = opts || {}; - options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : internals.delimiter; - options.depth = typeof options.depth === 'number' ? options.depth : internals.depth; - options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : internals.arrayLimit; - options.parseArrays = options.parseArrays !== false; - options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : internals.allowDots; - options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : internals.plainObjects; - options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : internals.allowPrototypes; - options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : internals.parameterLimit; - options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : internals.strictNullHandling; - - if ( - str === '' || - str === null || - typeof str === 'undefined' - ) { - return options.plainObjects ? Object.create(null) : {}; - } - - var tempObj = typeof str === 'string' ? internals.parseValues(str, options) : str; - var obj = options.plainObjects ? Object.create(null) : {}; - - // Iterate over the keys and setup the new object - - var keys = Object.keys(tempObj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var newObj = internals.parseKeys(key, tempObj[key], options); - obj = Utils.merge(obj, newObj, options); - } - - return Utils.compact(obj); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/stringify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/stringify.js deleted file mode 100755 index 892dad45..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/stringify.js +++ /dev/null @@ -1,131 +0,0 @@ -'use strict'; - -var Utils = require('./utils'); - -var internals = { - delimiter: '&', - arrayPrefixGenerators: { - brackets: function (prefix) { - return prefix + '[]'; - }, - indices: function (prefix, key) { - return prefix + '[' + key + ']'; - }, - repeat: function (prefix) { - return prefix; - } - }, - strictNullHandling: false, - skipNulls: false, - encode: true -}; - -internals.stringify = function (object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots) { - var obj = object; - if (typeof filter === 'function') { - obj = filter(prefix, obj); - } else if (Utils.isBuffer(obj)) { - obj = String(obj); - } else if (obj instanceof Date) { - obj = obj.toISOString(); - } else if (obj === null) { - if (strictNullHandling) { - return encode ? Utils.encode(prefix) : prefix; - } - - obj = ''; - } - - if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean') { - if (encode) { - return [Utils.encode(prefix) + '=' + Utils.encode(obj)]; - } - return [prefix + '=' + obj]; - } - - var values = []; - - if (typeof obj === 'undefined') { - return values; - } - - var objKeys; - if (Array.isArray(filter)) { - objKeys = filter; - } else { - var keys = Object.keys(obj); - objKeys = sort ? keys.sort(sort) : keys; - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - if (Array.isArray(obj)) { - values = values.concat(internals.stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots)); - } else { - values = values.concat(internals.stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots)); - } - } - - return values; -}; - -module.exports = function (object, opts) { - var obj = object; - var options = opts || {}; - var delimiter = typeof options.delimiter === 'undefined' ? internals.delimiter : options.delimiter; - var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : internals.strictNullHandling; - var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : internals.skipNulls; - var encode = typeof options.encode === 'boolean' ? options.encode : internals.encode; - var sort = typeof options.sort === 'function' ? options.sort : null; - var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots; - var objKeys; - var filter; - if (typeof options.filter === 'function') { - filter = options.filter; - obj = filter('', obj); - } else if (Array.isArray(options.filter)) { - objKeys = filter = options.filter; - } - - var keys = []; - - if (typeof obj !== 'object' || obj === null) { - return ''; - } - - var arrayFormat; - if (options.arrayFormat in internals.arrayPrefixGenerators) { - arrayFormat = options.arrayFormat; - } else if ('indices' in options) { - arrayFormat = options.indices ? 'indices' : 'repeat'; - } else { - arrayFormat = 'indices'; - } - - var generateArrayPrefix = internals.arrayPrefixGenerators[arrayFormat]; - - if (!objKeys) { - objKeys = Object.keys(obj); - } - - if (sort) { - objKeys.sort(sort); - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - keys = keys.concat(internals.stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots)); - } - - return keys.join(delimiter); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/utils.js deleted file mode 100755 index 5d433560..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/lib/utils.js +++ /dev/null @@ -1,162 +0,0 @@ -'use strict'; - -var hexTable = (function () { - var array = new Array(256); - for (var i = 0; i < 256; ++i) { - array[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase(); - } - - return array; -}()); - -exports.arrayToObject = function (source, options) { - var obj = options.plainObjects ? Object.create(null) : {}; - for (var i = 0; i < source.length; ++i) { - if (typeof source[i] !== 'undefined') { - obj[i] = source[i]; - } - } - - return obj; -}; - -exports.merge = function (target, source, options) { - if (!source) { - return target; - } - - if (typeof source !== 'object') { - if (Array.isArray(target)) { - target.push(source); - } else if (typeof target === 'object') { - target[source] = true; - } else { - return [target, source]; - } - - return target; - } - - if (typeof target !== 'object') { - return [target].concat(source); - } - - var mergeTarget = target; - if (Array.isArray(target) && !Array.isArray(source)) { - mergeTarget = exports.arrayToObject(target, options); - } - - return Object.keys(source).reduce(function (acc, key) { - var value = source[key]; - - if (Object.prototype.hasOwnProperty.call(acc, key)) { - acc[key] = exports.merge(acc[key], value, options); - } else { - acc[key] = value; - } - return acc; - }, mergeTarget); -}; - -exports.decode = function (str) { - try { - return decodeURIComponent(str.replace(/\+/g, ' ')); - } catch (e) { - return str; - } -}; - -exports.encode = function (str) { - // This code was originally written by Brian White (mscdex) for the io.js core querystring library. - // It has been adapted here for stricter adherence to RFC 3986 - if (str.length === 0) { - return str; - } - - var string = typeof str === 'string' ? str : String(str); - - var out = ''; - for (var i = 0; i < string.length; ++i) { - var c = string.charCodeAt(i); - - if ( - c === 0x2D || // - - c === 0x2E || // . - c === 0x5F || // _ - c === 0x7E || // ~ - (c >= 0x30 && c <= 0x39) || // 0-9 - (c >= 0x41 && c <= 0x5A) || // a-z - (c >= 0x61 && c <= 0x7A) // A-Z - ) { - out += string.charAt(i); - continue; - } - - if (c < 0x80) { - out = out + hexTable[c]; - continue; - } - - if (c < 0x800) { - out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - if (c < 0xD800 || c >= 0xE000) { - out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - i += 1; - c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); - out += (hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); - } - - return out; -}; - -exports.compact = function (obj, references) { - if (typeof obj !== 'object' || obj === null) { - return obj; - } - - var refs = references || []; - var lookup = refs.indexOf(obj); - if (lookup !== -1) { - return refs[lookup]; - } - - refs.push(obj); - - if (Array.isArray(obj)) { - var compacted = []; - - for (var i = 0; i < obj.length; ++i) { - if (typeof obj[i] !== 'undefined') { - compacted.push(obj[i]); - } - } - - return compacted; - } - - var keys = Object.keys(obj); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - obj[key] = exports.compact(obj[key], refs); - } - - return obj; -}; - -exports.isRegExp = function (obj) { - return Object.prototype.toString.call(obj) === '[object RegExp]'; -}; - -exports.isBuffer = function (obj) { - if (obj === null || typeof obj === 'undefined') { - return false; - } - - return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/package.json deleted file mode 100644 index 33318a72..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/package.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "_args": [ - [ - "qs@~6.1.0", - "/Users/rebecca/code/npm/node_modules/request" - ] - ], - "_from": "qs@>=6.1.0 <6.2.0", - "_id": "qs@6.1.0", - "_inCache": true, - "_installable": true, - "_location": "/request/qs", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-5-east.internal.npmjs.com", - "tmp": "tmp/qs-6.1.0.tgz_1454565583082_0.44599376199766994" - }, - "_npmUser": { - "email": "ljharb@gmail.com", - "name": "ljharb" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "qs", - "raw": "qs@~6.1.0", - "rawSpec": "~6.1.0", - "scope": null, - "spec": ">=6.1.0 <6.2.0", - "type": "range" - }, - "_requiredBy": [ - "/request" - ], - "_resolved": "https://registry.npmjs.org/qs/-/qs-6.1.0.tgz", - "_shasum": "ec1d1626b24278d99f0fdf4549e524e24eceeb26", - "_shrinkwrap": null, - "_spec": "qs@~6.1.0", - "_where": "/Users/rebecca/code/npm/node_modules/request", - "bugs": { - "url": "https://github.com/ljharb/qs/issues" - }, - "contributors": [ - { - "email": "ljharb@gmail.com", - "name": "Jordan Harband", - "url": "http://ljharb.codes" - } - ], - "dependencies": {}, - "description": "A querystring parser that supports nesting and arrays, with a depth limit", - "devDependencies": { - "@ljharb/eslint-config": "^1.6.1", - "browserify": "^12.0.1", - "covert": "^1.1.0", - "eslint": "^1.10.3", - "evalmd": "^0.0.16", - "mkdirp": "^0.5.1", - "parallelshell": "^2.0.0", - "tape": "^4.3.0" - }, - "directories": {}, - "dist": { - "shasum": "ec1d1626b24278d99f0fdf4549e524e24eceeb26", - "tarball": "http://registry.npmjs.org/qs/-/qs-6.1.0.tgz" - }, - "engines": { - "node": ">=0.6" - }, - "gitHead": "5bd79545edb33d6a43398fec7df9ecef2da005ea", - "homepage": "https://github.com/ljharb/qs", - "keywords": [ - "querystring", - "qs" - ], - "license": "BSD-3-Clause", - "main": "lib/index.js", - "maintainers": [ - { - "email": "eran@hammer.io", - "name": "hueniverse" - }, - { - "email": "ljharb@gmail.com", - "name": "ljharb" - }, - { - "email": "quitlahok@gmail.com", - "name": "nlf" - } - ], - "name": "qs", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/qs.git" - }, - "scripts": { - "coverage": "covert test", - "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js", - "lint": "eslint lib/*.js text/*.js", - "prepublish": "npm run dist", - "readme": "evalmd README.md", - "test": "parallelshell 'npm run readme' 'npm run lint' 'npm run coverage'", - "tests-only": "node test" - }, - "version": "6.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/index.js deleted file mode 100644 index b6a7d952..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/index.js +++ /dev/null @@ -1,5 +0,0 @@ -require('./parse'); - -require('./stringify'); - -require('./utils'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/parse.js deleted file mode 100755 index 5665d074..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/parse.js +++ /dev/null @@ -1,393 +0,0 @@ -'use strict'; - -var test = require('tape'); -var qs = require('../'); - -test('parse()', function (t) { - t.test('parses a simple string', function (st) { - st.deepEqual(qs.parse('0=foo'), { '0': 'foo' }); - st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' }); - st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } }); - st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } }); - st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } }); - st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null }); - st.deepEqual(qs.parse('foo'), { foo: '' }); - st.deepEqual(qs.parse('foo='), { foo: '' }); - st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' }); - st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' }); - st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' }); - st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' }); - st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' }); - st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null }); - st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' }); - st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), { - cht: 'p3', - chd: 't:60,40', - chs: '250x100', - chl: 'Hello|World' - }); - st.end(); - }); - - t.test('allows enabling dot notation', function (st) { - st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' }); - st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } }); - st.end(); - }); - - t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string'); - t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string'); - t.deepEqual( - qs.parse('a[b][c][d][e][f][g][h]=i'), - { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } }, - 'defaults to a depth of 5' - ); - - t.test('only parses one level when depth = 1', function (st) { - st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } }); - st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } }); - st.end(); - }); - - t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array'); - - t.test('parses an explicit array', function (st) { - st.deepEqual(qs.parse('a[]=b'), { a: ['b'] }); - st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] }); - st.end(); - }); - - t.test('parses a mix of simple and explicit arrays', function (st) { - st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[1]=b&a=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a=b&a[1]=c'), { a: ['b', 'c'] }); - st.end(); - }); - - t.test('parses a nested array', function (st) { - st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } }); - st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } }); - st.end(); - }); - - t.test('allows to specify array indices', function (st) { - st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] }); - st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] }); - st.end(); - }); - - t.test('limits specific array indices to 20', function (st) { - st.deepEqual(qs.parse('a[20]=a'), { a: ['a'] }); - st.deepEqual(qs.parse('a[21]=a'), { a: { '21': 'a' } }); - st.end(); - }); - - t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number'); - - t.test('supports encoded = signs', function (st) { - st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' }); - st.end(); - }); - - t.test('is ok with url encoded strings', function (st) { - st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } }); - st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } }); - st.end(); - }); - - t.test('allows brackets in the value', function (st) { - st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' }); - st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' }); - st.end(); - }); - - t.test('allows empty values', function (st) { - st.deepEqual(qs.parse(''), {}); - st.deepEqual(qs.parse(null), {}); - st.deepEqual(qs.parse(undefined), {}); - st.end(); - }); - - t.test('transforms arrays to objects', function (st) { - st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { '0': 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', '0': 'bar' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', '0': 'bar' } }); - st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { '0': 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', '0': 'bar', '1': 'foo' } }); - st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); - st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c'), { a: { '0': 'b', t: 'u', c: true } }); - st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y'), { a: { '0': 'b', '1': 'c', x: 'y' } }); - st.end(); - }); - - t.test('transforms arrays to objects (dot notation)', function (st) { - st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } }); - st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } }); - st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } }); - st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] }); - st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] }); - st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', '0': 'bar' } }); - st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', '0': 'bar' } }); - st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { '0': 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', '0': 'bar', '1': 'foo' } }); - st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); - st.end(); - }); - - t.deepEqual(qs.parse('a[b]=c&a=d'), { a: { b: 'c', d: true } }, 'can add keys to objects'); - - t.test('correctly prunes undefined values when converting an array to an object', function (st) { - st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { '2': 'b', '99999999': 'c' } }); - st.end(); - }); - - t.test('supports malformed uri characters', function (st) { - st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null }); - st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' }); - st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' }); - st.end(); - }); - - t.test('doesn\'t produce empty keys', function (st) { - st.deepEqual(qs.parse('_r=1&'), { '_r': '1' }); - st.end(); - }); - - t.test('cannot access Object prototype', function (st) { - qs.parse('constructor[prototype][bad]=bad'); - qs.parse('bad[constructor][prototype][bad]=bad'); - st.equal(typeof Object.prototype.bad, 'undefined'); - st.end(); - }); - - t.test('parses arrays of objects', function (st) { - st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); - st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] }); - st.end(); - }); - - t.test('allows for empty strings in arrays', function (st) { - st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] }); - st.deepEqual(qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true }), { a: ['b', null, 'c', ''] }); - st.deepEqual(qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true }), { a: ['b', '', 'c', null] }); - st.deepEqual(qs.parse('a[]=&a[]=b&a[]=c'), { a: ['', 'b', 'c'] }); - st.end(); - }); - - t.test('compacts sparse arrays', function (st) { - st.deepEqual(qs.parse('a[10]=1&a[2]=2'), { a: ['2', '1'] }); - st.end(); - }); - - t.test('parses semi-parsed strings', function (st) { - st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } }); - st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } }); - st.end(); - }); - - t.test('parses buffers correctly', function (st) { - var b = new Buffer('test'); - st.deepEqual(qs.parse({ a: b }), { a: b }); - st.end(); - }); - - t.test('continues parsing when no parent is found', function (st) { - st.deepEqual(qs.parse('[]=&a=b'), { '0': '', a: 'b' }); - st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { '0': null, a: 'b' }); - st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' }); - st.end(); - }); - - t.test('does not error when parsing a very long array', function (st) { - var str = 'a[]=a'; - while (Buffer.byteLength(str) < 128 * 1024) { - str = str + '&' + str; - } - - st.doesNotThrow(function () { qs.parse(str); }); - - st.end(); - }); - - t.test('should not throw when a native prototype has an enumerable property', { parallel: false }, function (st) { - Object.prototype.crash = ''; - Array.prototype.crash = ''; - st.doesNotThrow(qs.parse.bind(null, 'a=b')); - st.deepEqual(qs.parse('a=b'), { a: 'b' }); - st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c')); - st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); - delete Object.prototype.crash; - delete Array.prototype.crash; - st.end(); - }); - - t.test('parses a string with an alternative string delimiter', function (st) { - st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('parses a string with an alternative RegExp delimiter', function (st) { - st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('does not use non-splittable objects as delimiters', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('allows overriding parameter limit', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' }); - st.end(); - }); - - t.test('allows setting the parameter limit to Infinity', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('allows overriding array limit', function (st) { - st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { '0': 'b' } }); - st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } }); - st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { '0': 'b', '1': 'c' } }); - st.end(); - }); - - t.test('allows disabling array parsing', function (st) { - st.deepEqual(qs.parse('a[0]=b&a[1]=c', { parseArrays: false }), { a: { '0': 'b', '1': 'c' } }); - st.end(); - }); - - t.test('parses an object', function (st) { - var input = { - 'user[name]': { 'pop[bob]': 3 }, - 'user[email]': null - }; - - var expected = { - user: { - name: { 'pop[bob]': 3 }, - email: null - } - }; - - var result = qs.parse(input); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('parses an object in dot notation', function (st) { - var input = { - 'user.name': { 'pop[bob]': 3 }, - 'user.email.': null - }; - - var expected = { - user: { - name: { 'pop[bob]': 3 }, - email: null - } - }; - - var result = qs.parse(input, { allowDots: true }); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('parses an object and not child values', function (st) { - var input = { - 'user[name]': { 'pop[bob]': { 'test': 3 } }, - 'user[email]': null - }; - - var expected = { - user: { - name: { 'pop[bob]': { 'test': 3 } }, - email: null - } - }; - - var result = qs.parse(input); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('does not blow up when Buffer global is missing', function (st) { - var tempBuffer = global.Buffer; - delete global.Buffer; - var result = qs.parse('a=b&c=d'); - global.Buffer = tempBuffer; - st.deepEqual(result, { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('does not crash when parsing circular references', function (st) { - var a = {}; - a.b = a; - - var parsed; - - st.doesNotThrow(function () { - parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a }); - }); - - st.equal('foo' in parsed, true, 'parsed has "foo" property'); - st.equal('bar' in parsed.foo, true); - st.equal('baz' in parsed.foo, true); - st.equal(parsed.foo.bar, 'baz'); - st.deepEqual(parsed.foo.baz, a); - st.end(); - }); - - t.test('parses plain objects correctly', function (st) { - var a = Object.create(null); - a.b = 'c'; - - st.deepEqual(qs.parse(a), { b: 'c' }); - var result = qs.parse({ a: a }); - st.equal('a' in result, true, 'result has "a" property'); - st.deepEqual(result.a, a); - st.end(); - }); - - t.test('parses dates correctly', function (st) { - var now = new Date(); - st.deepEqual(qs.parse({ a: now }), { a: now }); - st.end(); - }); - - t.test('parses regular expressions correctly', function (st) { - var re = /^test$/; - st.deepEqual(qs.parse({ a: re }), { a: re }); - st.end(); - }); - - t.test('can allow overwriting prototype properties', function (st) { - st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } }, { prototype: false }); - st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' }, { prototype: false }); - st.end(); - }); - - t.test('can return plain objects', function (st) { - var expected = Object.create(null); - expected.a = Object.create(null); - expected.a.b = 'c'; - expected.a.hasOwnProperty = 'd'; - st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected); - st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null)); - var expectedArray = Object.create(null); - expectedArray.a = Object.create(null); - expectedArray.a['0'] = 'b'; - expectedArray.a.c = 'd'; - st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray); - st.end(); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/stringify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/stringify.js deleted file mode 100755 index da72839d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/stringify.js +++ /dev/null @@ -1,259 +0,0 @@ -'use strict'; - -var test = require('tape'); -var qs = require('../'); - -test('stringify()', function (t) { - t.test('stringifies a querystring object', function (st) { - st.equal(qs.stringify({ a: 'b' }), 'a=b'); - st.equal(qs.stringify({ a: 1 }), 'a=1'); - st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2'); - st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z'); - st.equal(qs.stringify({ a: '€' }), 'a=%E2%82%AC'); - st.equal(qs.stringify({ a: '' }), 'a=%EE%80%80'); - st.equal(qs.stringify({ a: 'א' }), 'a=%D7%90'); - st.equal(qs.stringify({ a: '𐐷' }), 'a=%F0%90%90%B7'); - st.end(); - }); - - t.test('stringifies a nested object', function (st) { - st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); - st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e'); - st.end(); - }); - - t.test('stringifies a nested object with dots notation', function (st) { - st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c'); - st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e'); - st.end(); - }); - - t.test('stringifies an array value', function (st) { - st.equal(qs.stringify({ a: ['b', 'c', 'd'] }), 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d'); - st.end(); - }); - - t.test('omits nulls when asked', function (st) { - st.equal(qs.stringify({ a: 'b', c: null }, { skipNulls: true }), 'a=b'); - st.end(); - }); - - - t.test('omits nested nulls when asked', function (st) { - st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('omits array indices when asked', function (st) { - st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d'); - st.end(); - }); - - t.test('stringifies a nested array value', function (st) { - st.equal(qs.stringify({ a: { b: ['c', 'd'] } }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d'); - st.end(); - }); - - t.test('stringifies a nested array value with dots notation', function (st) { - st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { allowDots: true, encode: false }), 'a.b[0]=c&a.b[1]=d'); - st.end(); - }); - - t.test('stringifies an object inside an array', function (st) { - st.equal(qs.stringify({ a: [{ b: 'c' }] }), 'a%5B0%5D%5Bb%5D=c'); - st.equal(qs.stringify({ a: [{ b: { c: [1] } }] }), 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1'); - st.end(); - }); - - t.test('stringifies an object inside an array with dots notation', function (st) { - st.equal(qs.stringify({ a: [{ b: 'c' }] }, { allowDots: true, encode: false }), 'a[0].b=c'); - st.equal(qs.stringify({ a: [{ b: { c: [1] } }] }, { allowDots: true, encode: false }), 'a[0].b.c[0]=1'); - st.end(); - }); - - t.test('does not omit object keys when indices = false', function (st) { - st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when indices=true', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when no arrayFormat=indices', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses repeat notation for arrays when no arrayFormat=repeat', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c'); - st.end(); - }); - - t.test('uses brackets notation for arrays when no arrayFormat=brackets', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c'); - st.end(); - }); - - t.test('stringifies a complicated object', function (st) { - st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e'); - st.end(); - }); - - t.test('stringifies an empty value', function (st) { - st.equal(qs.stringify({ a: '' }), 'a='); - st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a'); - - st.equal(qs.stringify({ a: '', b: '' }), 'a=&b='); - st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b='); - - st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D='); - st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D'); - st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D='); - - st.end(); - }); - - t.test('stringifies an empty object', function (st) { - var obj = Object.create(null); - obj.a = 'b'; - st.equal(qs.stringify(obj), 'a=b'); - st.end(); - }); - - t.test('returns an empty string for invalid input', function (st) { - st.equal(qs.stringify(undefined), ''); - st.equal(qs.stringify(false), ''); - st.equal(qs.stringify(null), ''); - st.equal(qs.stringify(''), ''); - st.end(); - }); - - t.test('stringifies an object with an empty object as a child', function (st) { - var obj = { - a: Object.create(null) - }; - - obj.a.b = 'c'; - st.equal(qs.stringify(obj), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('drops keys with a value of undefined', function (st) { - st.equal(qs.stringify({ a: undefined }), ''); - - st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D'); - st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D='); - st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D='); - st.end(); - }); - - t.test('url encodes values', function (st) { - st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); - st.end(); - }); - - t.test('stringifies a date', function (st) { - var now = new Date(); - var str = 'a=' + encodeURIComponent(now.toISOString()); - st.equal(qs.stringify({ a: now }), str); - st.end(); - }); - - t.test('stringifies the weird object from qs', function (st) { - st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F'); - st.end(); - }); - - t.test('skips properties that are part of the object prototype', function (st) { - Object.prototype.crash = 'test'; - st.equal(qs.stringify({ a: 'b' }), 'a=b'); - st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); - delete Object.prototype.crash; - st.end(); - }); - - t.test('stringifies boolean values', function (st) { - st.equal(qs.stringify({ a: true }), 'a=true'); - st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true'); - st.equal(qs.stringify({ b: false }), 'b=false'); - st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false'); - st.end(); - }); - - t.test('stringifies buffer values', function (st) { - st.equal(qs.stringify({ a: new Buffer('test') }), 'a=test'); - st.equal(qs.stringify({ a: { b: new Buffer('test') } }), 'a%5Bb%5D=test'); - st.end(); - }); - - t.test('stringifies an object using an alternative delimiter', function (st) { - st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); - st.end(); - }); - - t.test('doesn\'t blow up when Buffer global is missing', function (st) { - var tempBuffer = global.Buffer; - delete global.Buffer; - var result = qs.stringify({ a: 'b', c: 'd' }); - global.Buffer = tempBuffer; - st.equal(result, 'a=b&c=d'); - st.end(); - }); - - t.test('selects properties when filter=array', function (st) { - st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b'); - st.equal(qs.stringify({ a: 1 }, { filter: [] }), ''); - st.equal(qs.stringify({ a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, { filter: ['a', 'b', 0, 2] }), 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3'); - st.end(); - }); - - t.test('supports custom representations when filter=function', function (st) { - var calls = 0; - var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } }; - var filterFunc = function (prefix, value) { - calls++; - if (calls === 1) { - st.equal(prefix, '', 'prefix is empty'); - st.equal(value, obj); - } else if (prefix === 'c') { - return; - } else if (value instanceof Date) { - st.equal(prefix, 'e[f]'); - return value.getTime(); - } - return value; - }; - - st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000'); - st.equal(calls, 5); - st.end(); - }); - - t.test('can disable uri encoding', function (st) { - st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b'); - st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c'); - st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c'); - st.end(); - }); - - t.test('can sort the keys', function (st) { - var sort = function (a, b) { return a.localeCompare(b); }; - st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y'); - st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a'); - st.end(); - }); - - t.test('can sort the keys at depth 3 or more too', function (st) { - var sort = function (a, b) { return a.localeCompare(b); }; - st.equal(qs.stringify({ a: 'a', z: { zj: {zjb: 'zjb', zja: 'zja'}, zi: {zib: 'zib', zia: 'zia'} }, b: 'b' }, { sort: sort, encode: false }), 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb'); - st.equal(qs.stringify({ a: 'a', z: { zj: {zjb: 'zjb', zja: 'zja'}, zi: {zib: 'zib', zia: 'zia'} }, b: 'b' }, { sort: null, encode: false }), 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b'); - st.end(); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/utils.js deleted file mode 100755 index 4a8d8246..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/qs/test/utils.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var test = require('tape'); -var utils = require('../lib/utils'); - -test('merge()', function (t) { - t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key'); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/.npmignore deleted file mode 100644 index 7dccd970..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/.npmignore +++ /dev/null @@ -1,15 +0,0 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz - -pids -logs -results - -node_modules -npm-debug.log \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/.travis.yml deleted file mode 100644 index f1d0f13c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/LICENSE.txt deleted file mode 100644 index ab861acd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2012 Michael Hart (michael.hart.au@gmail.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/README.md deleted file mode 100644 index 32fc9825..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Decode streams into strings The Right Way(tm) - -```javascript -var fs = require('fs') -var zlib = require('zlib') -var strs = require('stringstream') - -var utf8Stream = fs.createReadStream('massiveLogFile.gz') - .pipe(zlib.createGunzip()) - .pipe(strs('utf8')) -``` - -No need to deal with `setEncoding()` weirdness, just compose streams -like they were supposed to be! - -Handles input and output encoding: - -```javascript -// Stream from utf8 to hex to base64... Why not, ay. -var hex64Stream = fs.createReadStream('myFile') - .pipe(strs('utf8', 'hex')) - .pipe(strs('hex', 'base64')) -``` - -Also deals with `base64` output correctly by aligning each emitted data -chunk so that there are no dangling `=` characters: - -```javascript -var stream = fs.createReadStream('myFile').pipe(strs('base64')) - -var base64Str = '' - -stream.on('data', function(data) { base64Str += data }) -stream.on('end', function() { - console.log('My base64 encoded file is: ' + base64Str) // Wouldn't work with setEncoding() - console.log('Original file is: ' + new Buffer(base64Str, 'base64')) -}) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/example.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/example.js deleted file mode 100644 index f82b85ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/example.js +++ /dev/null @@ -1,27 +0,0 @@ -var fs = require('fs') -var zlib = require('zlib') -var strs = require('stringstream') - -var utf8Stream = fs.createReadStream('massiveLogFile.gz') - .pipe(zlib.createGunzip()) - .pipe(strs('utf8')) - -utf8Stream.pipe(process.stdout) - -// Stream from utf8 to hex to base64... Why not, ay. -var hex64Stream = fs.createReadStream('myFile') - .pipe(strs('utf8', 'hex')) - .pipe(strs('hex', 'base64')) - -hex64Stream.pipe(process.stdout) - -// Deals with base64 correctly by aligning chunks -var stream = fs.createReadStream('myFile').pipe(strs('base64')) - -var base64Str = '' - -stream.on('data', function(data) { base64Str += data }) -stream.on('end', function() { - console.log('My base64 encoded file is: ' + base64Str) // Wouldn't work with setEncoding() - console.log('Original file is: ' + new Buffer(base64Str, 'base64')) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/package.json deleted file mode 100644 index 9ab3d820..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_args": [ - [ - "stringstream@~0.0.4", - "/Users/ogd/Documents/projects/npm/npm/node_modules/request" - ] - ], - "_from": "stringstream@>=0.0.4 <0.1.0", - "_id": "stringstream@0.0.5", - "_inCache": true, - "_installable": true, - "_location": "/request/stringstream", - "_nodeVersion": "4.2.1", - "_npmUser": { - "email": "michael.hart.au@gmail.com", - "name": "hichaelmart" - }, - "_npmVersion": "2.14.8", - "_phantomChildren": {}, - "_requested": { - "name": "stringstream", - "raw": "stringstream@~0.0.4", - "rawSpec": "~0.0.4", - "scope": null, - "spec": ">=0.0.4 <0.1.0", - "type": "range" - }, - "_requiredBy": [ - "/request" - ], - "_resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "_shasum": "4e484cd4de5a0bbbee18e46307710a8a81621878", - "_shrinkwrap": null, - "_spec": "stringstream@~0.0.4", - "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/request", - "author": { - "email": "michael.hart.au@gmail.com", - "name": "Michael Hart", - "url": "http://github.com/mhart" - }, - "bugs": { - "url": "https://github.com/mhart/StringStream/issues" - }, - "dependencies": {}, - "description": "Encode and decode streams into string streams", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "4e484cd4de5a0bbbee18e46307710a8a81621878", - "tarball": "http://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "gitHead": "1efe3bf507bf3a1161f8473908b60e881d41422b", - "homepage": "https://github.com/mhart/StringStream#readme", - "keywords": [ - "base64", - "gzip", - "stream", - "string" - ], - "license": "MIT", - "main": "stringstream.js", - "maintainers": [ - { - "name": "hichaelmart", - "email": "michael.hart.au@gmail.com" - } - ], - "name": "stringstream", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/mhart/StringStream.git" - }, - "scripts": {}, - "version": "0.0.5" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/stringstream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/stringstream.js deleted file mode 100644 index 4ece1275..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/stringstream/stringstream.js +++ /dev/null @@ -1,102 +0,0 @@ -var util = require('util') -var Stream = require('stream') -var StringDecoder = require('string_decoder').StringDecoder - -module.exports = StringStream -module.exports.AlignedStringDecoder = AlignedStringDecoder - -function StringStream(from, to) { - if (!(this instanceof StringStream)) return new StringStream(from, to) - - Stream.call(this) - - if (from == null) from = 'utf8' - - this.readable = this.writable = true - this.paused = false - this.toEncoding = (to == null ? from : to) - this.fromEncoding = (to == null ? '' : from) - this.decoder = new AlignedStringDecoder(this.toEncoding) -} -util.inherits(StringStream, Stream) - -StringStream.prototype.write = function(data) { - if (!this.writable) { - var err = new Error('stream not writable') - err.code = 'EPIPE' - this.emit('error', err) - return false - } - if (this.fromEncoding) { - if (Buffer.isBuffer(data)) data = data.toString() - data = new Buffer(data, this.fromEncoding) - } - var string = this.decoder.write(data) - if (string.length) this.emit('data', string) - return !this.paused -} - -StringStream.prototype.flush = function() { - if (this.decoder.flush) { - var string = this.decoder.flush() - if (string.length) this.emit('data', string) - } -} - -StringStream.prototype.end = function() { - if (!this.writable && !this.readable) return - this.flush() - this.emit('end') - this.writable = this.readable = false - this.destroy() -} - -StringStream.prototype.destroy = function() { - this.decoder = null - this.writable = this.readable = false - this.emit('close') -} - -StringStream.prototype.pause = function() { - this.paused = true -} - -StringStream.prototype.resume = function () { - if (this.paused) this.emit('drain') - this.paused = false -} - -function AlignedStringDecoder(encoding) { - StringDecoder.call(this, encoding) - - switch (this.encoding) { - case 'base64': - this.write = alignedWrite - this.alignedBuffer = new Buffer(3) - this.alignedBytes = 0 - break - } -} -util.inherits(AlignedStringDecoder, StringDecoder) - -AlignedStringDecoder.prototype.flush = function() { - if (!this.alignedBuffer || !this.alignedBytes) return '' - var leftover = this.alignedBuffer.toString(this.encoding, 0, this.alignedBytes) - this.alignedBytes = 0 - return leftover -} - -function alignedWrite(buffer) { - var rem = (this.alignedBytes + buffer.length) % this.alignedBuffer.length - if (!rem && !this.alignedBytes) return buffer.toString(this.encoding) - - var returnBuffer = new Buffer(this.alignedBytes + buffer.length - rem) - - this.alignedBuffer.copy(returnBuffer, 0, 0, this.alignedBytes) - buffer.copy(returnBuffer, this.alignedBytes, 0, buffer.length - rem) - - buffer.copy(this.alignedBuffer, 0, buffer.length - rem, buffer.length) - this.alignedBytes = rem - - return returnBuffer.toString(this.encoding) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/LICENSE deleted file mode 100644 index 1bc286fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2015, Salesforce.com, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. 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. - -3. Neither the name of Salesforce.com 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 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. - -=== - -The following exceptions apply: - -=== - -`public_suffix_list.dat` was obtained from - via -. The license for this file is MPL/2.0. The header of -that file reads as follows: - - // This Source Code Form is subject to the terms of the Mozilla Public - // License, v. 2.0. If a copy of the MPL was not distributed with this - // file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/README.md deleted file mode 100644 index 9899dbf6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/README.md +++ /dev/null @@ -1,492 +0,0 @@ -[RFC6265](https://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js - -[![Build Status](https://travis-ci.org/SalesforceEng/tough-cookie.png?branch=master)](https://travis-ci.org/SalesforceEng/tough-cookie) - -[![NPM Stats](https://nodei.co/npm/tough-cookie.png?downloads=true&stars=true)](https://npmjs.org/package/tough-cookie) -![NPM Downloads](https://nodei.co/npm-dl/tough-cookie.png?months=9) - -# Synopsis - -``` javascript -var tough = require('tough-cookie'); -var Cookie = tough.Cookie; -var cookie = Cookie.parse(header); -cookie.value = 'somethingdifferent'; -header = cookie.toString(); - -var cookiejar = new tough.CookieJar(); -cookiejar.setCookie(cookie, 'http://currentdomain.example.com/path', cb); -// ... -cookiejar.getCookies('http://example.com/otherpath',function(err,cookies) { - res.headers['cookie'] = cookies.join('; '); -}); -``` - -# Installation - -It's _so_ easy! - -`npm install tough-cookie` - -Why the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken. - -# API - -## tough - -Functions on the module you get from `require('tough-cookie')`. All can be used as pure functions and don't need to be "bound". - -**Note**: prior to 1.0.x, several of these functions took a `strict` parameter. This has since been removed from the API as it was no longer necessary. - -### `parseDate(string)` - -Parse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`. - -### `formatDate(date)` - -Format a Date into a RFC1123 string (the RFC6265-recommended format). - -### `canonicalDomain(str)` - -Transforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects). - -### `domainMatch(str,domStr[,canonicalize=true])` - -Answers "does this real domain match the domain in a cookie?". The `str` is the "current" domain-name and the `domStr` is the "cookie" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match". - -The `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not. - -### `defaultPath(path)` - -Given a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC. - -The `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node's `uri.parse()` output. - -### `pathMatch(reqPath,cookiePath)` - -Answers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4. Returns a boolean. - -This is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`. - -### `parse(cookieString[, options])` - -alias for `Cookie.parse(cookieString[, options])` - -### `fromJSON(string)` - -alias for `Cookie.fromJSON(string)` - -### `getPublicSuffix(hostname)` - -Returns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it. - -For example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`. - -For further information, see http://publicsuffix.org/. This module derives its list from that site. - -### `cookieCompare(a,b)` - -For use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). The sort algorithm is, in order of precedence: - -* Longest `.path` -* oldest `.creation` (which has a 1ms precision, same as `Date`) -* lowest `.creationIndex` (to get beyond the 1ms precision) - -``` javascript -var cookies = [ /* unsorted array of Cookie objects */ ]; -cookies = cookies.sort(cookieCompare); -``` - -**Note**: Since JavaScript's `Date` is limited to a 1ms precision, cookies within the same milisecond are entirely possible. This is especially true when using the `now` option to `.setCookie()`. The `.creationIndex` property is a per-process global counter, assigned during construction with `new Cookie()`. This preserves the spirit of the RFC sorting: older cookies go first. This works great for `MemoryCookieStore`, since `Set-Cookie` headers are parsed in order, but may not be so great for distributed systems. Sophisticated `Store`s may wish to set this to some other _logical clock_ such that if cookies A and B are created in the same millisecond, but cookie A is created before cookie B, then `A.creationIndex < B.creationIndex`. If you want to alter the global counter, which you probably _shouldn't_ do, it's stored in `Cookie.cookiesCreated`. - -### `permuteDomain(domain)` - -Generates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores. - -### `permutePath(path)` - -Generates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores. - - -## Cookie - -Exported via `tough.Cookie`. - -### `Cookie.parse(cookieString[, options])` - -Parses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can't be parsed. - -The options parameter is not required and currently has only one property: - - * _loose_ - boolean - if `true` enable parsing of key-less cookies like `=abc` and `=`, which are not RFC-compliant. - -If options is not an object, it is ignored, which means you can use `Array#map` with it. - -Here's how to process the Set-Cookie header(s) on a node HTTP/HTTPS response: - -``` javascript -if (res.headers['set-cookie'] instanceof Array) - cookies = res.headers['set-cookie'].map(Cookie.parse); -else - cookies = [Cookie.parse(res.headers['set-cookie'])]; -``` - -### Properties - -Cookie object properties: - - * _key_ - string - the name or key of the cookie (default "") - * _value_ - string - the value of the cookie (default "") - * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `"Infinity"`). See `setExpires()` - * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `"Infinity"` and `"-Infinity"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()` - * _domain_ - string - the `Domain=` attribute of the cookie - * _path_ - string - the `Path=` of the cookie - * _secure_ - boolean - the `Secure` cookie flag - * _httpOnly_ - boolean - the `HttpOnly` cookie flag - * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside) - * _creation_ - `Date` - when this cookie was constructed - * _creationIndex_ - number - set at construction, used to provide greater sort precision (please see `cookieCompare(a,b)` for a full explanation) - -After a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes: - - * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied) - * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one. - * _creation_ - `Date` - **modified** from construction to when the cookie was added to the jar - * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute. - -### `Cookie([{properties}])` - -Receives an options object that can contain any of the above Cookie properties, uses the default for unspecified properties. - -### `.toString()` - -encode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`. - -### `.cookieString()` - -encode to a Cookie header value (i.e. the `.key` and `.value` properties joined with '='). - -### `.setExpires(String)` - -sets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can't parse this date string), `.expires` is set to `"Infinity"` (a string) is set. - -### `.setMaxAge(number)` - -sets the maxAge in seconds. Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it JSON serializes correctly. - -### `.expiryTime([now=Date.now()])` - -### `.expiryDate([now=Date.now()])` - -expiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds. - -Max-Age takes precedence over Expires (as per the RFC). The `.creation` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute. - -If Expires (`.expires`) is set, that's returned. - -Otherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for "Tue, 19 Jan 2038 03:14:07 GMT" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents). - -### `.TTL([now=Date.now()])` - -compute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply. - -The "number" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned. - -### `.canonicalizedDoman()` - -### `.cdomain()` - -return the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters. - -### `.toJSON()` - -For convenience in using `JSON.serialize(cookie)`. Returns a plain-old `Object` that can be JSON-serialized. - -Any `Date` properties (i.e., `.expires`, `.creation`, and `.lastAccessed`) are exported in ISO format (`.toISOString()`). - -**NOTE**: Custom `Cookie` properties will be discarded. In tough-cookie 1.x, since there was no `.toJSON` method explicitly defined, all enumerable properties were captured. If you want a property to be serialized, add the property name to the `Cookie.serializableProperties` Array. - -### `Cookie.fromJSON(strOrObj)` - -Does the reverse of `cookie.toJSON()`. If passed a string, will `JSON.parse()` that first. - -Any `Date` properties (i.e., `.expires`, `.creation`, and `.lastAccessed`) are parsed via `Date.parse()`, not the tough-cookie `parseDate`, since it's JavaScript/JSON-y timestamps being handled at this layer. - -Returns `null` upon JSON parsing error. - -### `.clone()` - -Does a deep clone of this cookie, exactly implemented as `Cookie.fromJSON(cookie.toJSON())`. - -### `.validate()` - -Status: *IN PROGRESS*. Works for a few things, but is by no means comprehensive. - -validates cookie attributes for semantic correctness. Useful for "lint" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct: - -``` javascript -if (cookie.validate() === true) { - // it's tasty -} else { - // yuck! -} -``` - - -## CookieJar - -Exported via `tough.CookieJar`. - -### `CookieJar([store],[options])` - -Simply use `new CookieJar()`. If you'd like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used. - -The `options` object can be omitted and can have the following properties: - - * _rejectPublicSuffixes_ - boolean - default `true` - reject cookies with domains like "com" and "co.uk" - * _looseMode_ - boolean - default `false` - accept malformed cookies like `bar` and `=bar`, which have an implied empty name. - This is not in the standard, but is used sometimes on the web and is accepted by (most) browsers. - -Since eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods. - -### `.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))` - -Attempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.creation`, `.lastAccessed` and `.hostOnly` properties. - -The `options` object can be omitted and can have the following properties: - - * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. - * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. - * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies - * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. `Store` errors aren't ignored by this option. - -As per the RFC, the `.hostOnly` property is set if there was no "Domain=" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual). - -### `.setCookieSync(cookieOrString, currentUrl, [{options}])` - -Synchronous version of `setCookie`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). - -### `.getCookies(currentUrl, [{options},] cb(err,cookies))` - -Retrieve the list of cookies that can be sent in a Cookie header for the current url. - -If an error is encountered, that's passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given. - -The `options` object can be omitted and can have the following properties: - - * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. - * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. - * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies - * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially). - * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the underlying store (the default `MemoryCookieStore` supports it). - -The `.lastAccessed` property of the returned cookies will have been updated. - -### `.getCookiesSync(currentUrl, [{options}])` - -Synchronous version of `getCookies`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). - -### `.getCookieString(...)` - -Accepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`. - -### `.getCookieStringSync(...)` - -Synchronous version of `getCookieString`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). - -### `.getSetCookieStrings(...)` - -Returns an array of strings suitable for **Set-Cookie** headers. Accepts the same options as `.getCookies()`. Simply maps the cookie array via `.toString()`. - -### `.getSetCookieStringsSync(...)` - -Synchronous version of `getSetCookieStrings`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). - -### `.serialize(cb(err,serializedObject))` - -Serialize the Jar if the underlying store supports `.getAllCookies`. - -**NOTE**: Custom `Cookie` properties will be discarded. If you want a property to be serialized, add the property name to the `Cookie.serializableProperties` Array. - -See [Serialization Format]. - -### `.serializeSync()` - -Sync version of .serialize - -### `.toJSON()` - -Alias of .serializeSync() for the convenience of `JSON.stringify(cookiejar)`. - -### `CookieJar.deserialize(serialized, [store], cb(err,object))` - -A new Jar is created and the serialized Cookies are added to the underlying store. Each `Cookie` is added via `store.putCookie` in the order in which they appear in the serialization. - -The `store` argument is optional, but should be an instance of `Store`. By default, a new instance of `MemoryCookieStore` is created. - -As a convenience, if `serialized` is a string, it is passed through `JSON.parse` first. If that throws an error, this is passed to the callback. - -### `CookieJar.deserializeSync(serialized, [store])` - -Sync version of `.deserialize`. _Note_ that the `store` must be synchronous for this to work. - -### `CookieJar.fromJSON(string)` - -Alias of `.deserializeSync` to provide consistency with `Cookie.fromJSON()`. - -### `.clone([store,]cb(err,newJar))` - -Produces a deep clone of this jar. Modifications to the original won't affect the clone, and vice versa. - -The `store` argument is optional, but should be an instance of `Store`. By default, a new instance of `MemoryCookieStore` is created. Transferring between store types is supported so long as the source implements `.getAllCookies()` and the destination implements `.putCookie()`. - -### `.cloneSync([store])` - -Synchronous version of `.clone`, returning a new `CookieJar` instance. - -The `store` argument is optional, but must be a _synchronous_ `Store` instance if specified. If not passed, a new instance of `MemoryCookieStore` is used. - -The _source_ and _destination_ must both be synchronous `Store`s. If one or both stores are asynchronous, use `.clone` instead. Recall that `MemoryCookieStore` supports both synchronous and asynchronous API calls. - -## Store - -Base class for CookieJar stores. Available as `tough.Store`. - -## Store API - -The storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores. - -Stores should inherit from the base `Store` class, which is available as `require('tough-cookie').Store`. - -Stores are asynchronous by default, but if `store.synchronous` is set to `true`, then the `*Sync` methods on the of the containing `CookieJar` can be used (however, the continuation-passing style - -All `domain` parameters will have been normalized before calling. - -The Cookie store must have all of the following methods. - -### `store.findCookie(domain, path, key, cb(err,cookie))` - -Retrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned. - -Callback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error). - -### `store.findCookies(domain, path, cb(err,cookies))` - -Locates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above. - -If no cookies are found, the callback MUST be passed an empty array. - -The resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it's OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done. - -As of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only). - -### `store.putCookie(cookie, cb(err))` - -Adds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur. - -The `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties. - -Pass an error if the cookie cannot be stored. - -### `store.updateCookie(oldCookie, newCookie, cb(err))` - -Update an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store. - -The `.lastAccessed` property will always be different between the two objects (to the precision possible via JavaScript's clock). Both `.creation` and `.creationIndex` are guaranteed to be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are selected for automatic deletion (e.g., least-recently-used, which is up to the store to implement). - -Stores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn't define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object. - -The `newCookie` and `oldCookie` objects MUST NOT be modified. - -Pass an error if the newCookie cannot be stored. - -### `store.removeCookie(domain, path, key, cb(err))` - -Remove a cookie from the store (see notes on `findCookie` about the uniqueness constraint). - -The implementation MUST NOT pass an error if the cookie doesn't exist; only pass an error due to the failure to remove an existing cookie. - -### `store.removeCookies(domain, path, cb(err))` - -Removes matching cookies from the store. The `path` parameter is optional, and if missing means all paths in a domain should be removed. - -Pass an error ONLY if removing any existing cookies failed. - -### `store.getAllCookies(cb(err, cookies))` - -Produces an `Array` of all cookies during `jar.serialize()`. The items in the array can be true `Cookie` objects or generic `Object`s with the [Serialization Format] data structure. - -Cookies SHOULD be returned in creation order to preserve sorting via `compareCookies()`. For reference, `MemoryCookieStore` will sort by `.creationIndex` since it uses true `Cookie` objects internally. If you don't return the cookies in creation order, they'll still be sorted by creation time, but this only has a precision of 1ms. See `compareCookies` for more detail. - -Pass an error if retrieval fails. - -## MemoryCookieStore - -Inherits from `Store`. - -A just-in-memory CookieJar synchronous store implementation, used by default. Despite being a synchronous implementation, it's usable with both the synchronous and asynchronous forms of the `CookieJar` API. - -# Serialization Format - -**NOTE**: if you want to have custom `Cookie` properties serialized, add the property name to `Cookie.serializableProperties`. - -```js - { - // The version of tough-cookie that serialized this jar. - version: 'tough-cookie@1.x.y', - - // add the store type, to make humans happy: - storeType: 'MemoryCookieStore', - - // CookieJar configuration: - rejectPublicSuffixes: true, - // ... future items go here - - // Gets filled from jar.store.getAllCookies(): - cookies: [ - { - key: 'string', - value: 'string', - // ... - /* other Cookie.serializableProperties go here */ - } - ] - } -``` - -# Copyright and License - -(tl;dr: BSD-3-Clause with some MPL/2.0) - -```text - Copyright (c) 2015, Salesforce.com, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. 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. - - 3. Neither the name of Salesforce.com 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 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. -``` - -Portions may be licensed under different licenses (in particular `public_suffix_list.dat` is MPL/2.0); please read that file and the LICENSE file for full details. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js deleted file mode 100644 index 12da297a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js +++ /dev/null @@ -1,1342 +0,0 @@ -/*! - * Copyright (c) 2015, Salesforce.com, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. 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. - * - * 3. Neither the name of Salesforce.com 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 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. - */ -'use strict'; -var net = require('net'); -var urlParse = require('url').parse; -var pubsuffix = require('./pubsuffix'); -var Store = require('./store').Store; -var MemoryCookieStore = require('./memstore').MemoryCookieStore; -var pathMatch = require('./pathMatch').pathMatch; -var VERSION = require('../package.json').version; - -var punycode; -try { - punycode = require('punycode'); -} catch(e) { - console.warn("cookie: can't load punycode; won't use punycode for domain normalization"); -} - -var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/; - -// From RFC6265 S4.1.1 -// note that it excludes \x3B ";" -var COOKIE_OCTET = /[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]/; -var COOKIE_OCTETS = new RegExp('^'+COOKIE_OCTET.source+'+$'); - -var CONTROL_CHARS = /[\x00-\x1F]/; - -// Double quotes are part of the value (see: S4.1.1). -// '\r', '\n' and '\0' should be treated as a terminator in the "relaxed" mode -// (see: https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/parsed_cookie.cc#L60) -// '=' and ';' are attribute/values separators -// (see: https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/parsed_cookie.cc#L64) -var COOKIE_PAIR = /^(([^=;]+))\s*=\s*([^\n\r\0]*)/; - -// Used to parse non-RFC-compliant cookies like '=abc' when given the `loose` -// option in Cookie.parse: -var LOOSE_COOKIE_PAIR = /^((?:=)?([^=;]*)\s*=\s*)?([^\n\r\0]*)/; - -// RFC6265 S4.1.1 defines path value as 'any CHAR except CTLs or ";"' -// Note ';' is \x3B -var PATH_VALUE = /[\x20-\x3A\x3C-\x7E]+/; - -// Used for checking whether or not there is a trailing semi-colon -var TRAILING_SEMICOLON = /;+$/; - -var DAY_OF_MONTH = /^(\d{1,2})[^\d]*$/; -var TIME = /^(\d{1,2})[^\d]*:(\d{1,2})[^\d]*:(\d{1,2})[^\d]*$/; -var MONTH = /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/i; - -var MONTH_TO_NUM = { - jan:0, feb:1, mar:2, apr:3, may:4, jun:5, - jul:6, aug:7, sep:8, oct:9, nov:10, dec:11 -}; -var NUM_TO_MONTH = [ - 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec' -]; -var NUM_TO_DAY = [ - 'Sun','Mon','Tue','Wed','Thu','Fri','Sat' -]; - -var YEAR = /^(\d{2}|\d{4})$/; // 2 to 4 digits - -var MAX_TIME = 2147483647000; // 31-bit max -var MIN_TIME = 0; // 31-bit min - - -// RFC6265 S5.1.1 date parser: -function parseDate(str) { - if (!str) { - return; - } - - /* RFC6265 S5.1.1: - * 2. Process each date-token sequentially in the order the date-tokens - * appear in the cookie-date - */ - var tokens = str.split(DATE_DELIM); - if (!tokens) { - return; - } - - var hour = null; - var minutes = null; - var seconds = null; - var day = null; - var month = null; - var year = null; - - for (var i=0; i 23 || minutes > 59 || seconds > 59) { - return; - } - - continue; - } - } - - /* 2.2. If the found-day-of-month flag is not set and the date-token matches - * the day-of-month production, set the found-day-of- month flag and set - * the day-of-month-value to the number denoted by the date-token. Skip - * the remaining sub-steps and continue to the next date-token. - */ - if (day === null) { - result = DAY_OF_MONTH.exec(token); - if (result) { - day = parseInt(result, 10); - /* RFC6265 S5.1.1.5: - * [fail if] the day-of-month-value is less than 1 or greater than 31 - */ - if(day < 1 || day > 31) { - return; - } - continue; - } - } - - /* 2.3. If the found-month flag is not set and the date-token matches the - * month production, set the found-month flag and set the month-value to - * the month denoted by the date-token. Skip the remaining sub-steps and - * continue to the next date-token. - */ - if (month === null) { - result = MONTH.exec(token); - if (result) { - month = MONTH_TO_NUM[result[1].toLowerCase()]; - continue; - } - } - - /* 2.4. If the found-year flag is not set and the date-token matches the year - * production, set the found-year flag and set the year-value to the number - * denoted by the date-token. Skip the remaining sub-steps and continue to - * the next date-token. - */ - if (year === null) { - result = YEAR.exec(token); - if (result) { - year = parseInt(result[0], 10); - /* From S5.1.1: - * 3. If the year-value is greater than or equal to 70 and less - * than or equal to 99, increment the year-value by 1900. - * 4. If the year-value is greater than or equal to 0 and less - * than or equal to 69, increment the year-value by 2000. - */ - if (70 <= year && year <= 99) { - year += 1900; - } else if (0 <= year && year <= 69) { - year += 2000; - } - - if (year < 1601) { - return; // 5. ... the year-value is less than 1601 - } - } - } - } - - if (seconds === null || day === null || month === null || year === null) { - return; // 5. ... at least one of the found-day-of-month, found-month, found- - // year, or found-time flags is not set, - } - - return new Date(Date.UTC(year, month, day, hour, minutes, seconds)); -} - -function formatDate(date) { - var d = date.getUTCDate(); d = d >= 10 ? d : '0'+d; - var h = date.getUTCHours(); h = h >= 10 ? h : '0'+h; - var m = date.getUTCMinutes(); m = m >= 10 ? m : '0'+m; - var s = date.getUTCSeconds(); s = s >= 10 ? s : '0'+s; - return NUM_TO_DAY[date.getUTCDay()] + ', ' + - d+' '+ NUM_TO_MONTH[date.getUTCMonth()] +' '+ date.getUTCFullYear() +' '+ - h+':'+m+':'+s+' GMT'; -} - -// S5.1.2 Canonicalized Host Names -function canonicalDomain(str) { - if (str == null) { - return null; - } - str = str.trim().replace(/^\./,''); // S4.1.2.3 & S5.2.3: ignore leading . - - // convert to IDN if any non-ASCII characters - if (punycode && /[^\u0001-\u007f]/.test(str)) { - str = punycode.toASCII(str); - } - - return str.toLowerCase(); -} - -// S5.1.3 Domain Matching -function domainMatch(str, domStr, canonicalize) { - if (str == null || domStr == null) { - return null; - } - if (canonicalize !== false) { - str = canonicalDomain(str); - domStr = canonicalDomain(domStr); - } - - /* - * "The domain string and the string are identical. (Note that both the - * domain string and the string will have been canonicalized to lower case at - * this point)" - */ - if (str == domStr) { - return true; - } - - /* "All of the following [three] conditions hold:" (order adjusted from the RFC) */ - - /* "* The string is a host name (i.e., not an IP address)." */ - if (net.isIP(str)) { - return false; - } - - /* "* The domain string is a suffix of the string" */ - var idx = str.indexOf(domStr); - if (idx <= 0) { - return false; // it's a non-match (-1) or prefix (0) - } - - // e.g "a.b.c".indexOf("b.c") === 2 - // 5 === 3+2 - if (str.length !== domStr.length + idx) { // it's not a suffix - return false; - } - - /* "* The last character of the string that is not included in the domain - * string is a %x2E (".") character." */ - if (str.substr(idx-1,1) !== '.') { - return false; - } - - return true; -} - - -// RFC6265 S5.1.4 Paths and Path-Match - -/* - * "The user agent MUST use an algorithm equivalent to the following algorithm - * to compute the default-path of a cookie:" - * - * Assumption: the path (and not query part or absolute uri) is passed in. - */ -function defaultPath(path) { - // "2. If the uri-path is empty or if the first character of the uri-path is not - // a %x2F ("/") character, output %x2F ("/") and skip the remaining steps. - if (!path || path.substr(0,1) !== "/") { - return "/"; - } - - // "3. If the uri-path contains no more than one %x2F ("/") character, output - // %x2F ("/") and skip the remaining step." - if (path === "/") { - return path; - } - - var rightSlash = path.lastIndexOf("/"); - if (rightSlash === 0) { - return "/"; - } - - // "4. Output the characters of the uri-path from the first character up to, - // but not including, the right-most %x2F ("/")." - return path.slice(0, rightSlash); -} - - -function parse(str, options) { - if (!options || typeof options !== 'object') { - options = {}; - } - str = str.trim(); - - // S4.1.1 Trailing semi-colons are not part of the specification. - var semiColonCheck = TRAILING_SEMICOLON.exec(str); - if (semiColonCheck) { - str = str.slice(0, semiColonCheck.index); - } - - // We use a regex to parse the "name-value-pair" part of S5.2 - var firstSemi = str.indexOf(';'); // S5.2 step 1 - var pairRe = options.loose ? LOOSE_COOKIE_PAIR : COOKIE_PAIR; - var result = pairRe.exec(firstSemi === -1 ? str : str.substr(0,firstSemi)); - - // Rx satisfies the "the name string is empty" and "lacks a %x3D ("=")" - // constraints as well as trimming any whitespace. - if (!result) { - return; - } - - var c = new Cookie(); - if (result[1]) { - c.key = result[2].trim(); - } else { - c.key = ''; - } - c.value = result[3].trim(); - if (CONTROL_CHARS.test(c.key) || CONTROL_CHARS.test(c.value)) { - return; - } - - if (firstSemi === -1) { - return c; - } - - // S5.2.3 "unparsed-attributes consist of the remainder of the set-cookie-string - // (including the %x3B (";") in question)." plus later on in the same section - // "discard the first ";" and trim". - var unparsed = str.slice(firstSemi).replace(/^\s*;\s*/,'').trim(); - - // "If the unparsed-attributes string is empty, skip the rest of these - // steps." - if (unparsed.length === 0) { - return c; - } - - /* - * S5.2 says that when looping over the items "[p]rocess the attribute-name - * and attribute-value according to the requirements in the following - * subsections" for every item. Plus, for many of the individual attributes - * in S5.3 it says to use the "attribute-value of the last attribute in the - * cookie-attribute-list". Therefore, in this implementation, we overwrite - * the previous value. - */ - var cookie_avs = unparsed.split(/\s*;\s*/); - while (cookie_avs.length) { - var av = cookie_avs.shift(); - var av_sep = av.indexOf('='); - var av_key, av_value; - - if (av_sep === -1) { - av_key = av; - av_value = null; - } else { - av_key = av.substr(0,av_sep); - av_value = av.substr(av_sep+1); - } - - av_key = av_key.trim().toLowerCase(); - - if (av_value) { - av_value = av_value.trim(); - } - - switch(av_key) { - case 'expires': // S5.2.1 - if (av_value) { - var exp = parseDate(av_value); - // "If the attribute-value failed to parse as a cookie date, ignore the - // cookie-av." - if (exp) { - // over and underflow not realistically a concern: V8's getTime() seems to - // store something larger than a 32-bit time_t (even with 32-bit node) - c.expires = exp; - } - } - break; - - case 'max-age': // S5.2.2 - if (av_value) { - // "If the first character of the attribute-value is not a DIGIT or a "-" - // character ...[or]... If the remainder of attribute-value contains a - // non-DIGIT character, ignore the cookie-av." - if (/^-?[0-9]+$/.test(av_value)) { - var delta = parseInt(av_value, 10); - // "If delta-seconds is less than or equal to zero (0), let expiry-time - // be the earliest representable date and time." - c.setMaxAge(delta); - } - } - break; - - case 'domain': // S5.2.3 - // "If the attribute-value is empty, the behavior is undefined. However, - // the user agent SHOULD ignore the cookie-av entirely." - if (av_value) { - // S5.2.3 "Let cookie-domain be the attribute-value without the leading %x2E - // (".") character." - var domain = av_value.trim().replace(/^\./, ''); - if (domain) { - // "Convert the cookie-domain to lower case." - c.domain = domain.toLowerCase(); - } - } - break; - - case 'path': // S5.2.4 - /* - * "If the attribute-value is empty or if the first character of the - * attribute-value is not %x2F ("/"): - * Let cookie-path be the default-path. - * Otherwise: - * Let cookie-path be the attribute-value." - * - * We'll represent the default-path as null since it depends on the - * context of the parsing. - */ - c.path = av_value && av_value[0] === "/" ? av_value : null; - break; - - case 'secure': // S5.2.5 - /* - * "If the attribute-name case-insensitively matches the string "Secure", - * the user agent MUST append an attribute to the cookie-attribute-list - * with an attribute-name of Secure and an empty attribute-value." - */ - c.secure = true; - break; - - case 'httponly': // S5.2.6 -- effectively the same as 'secure' - c.httpOnly = true; - break; - - default: - c.extensions = c.extensions || []; - c.extensions.push(av); - break; - } - } - - return c; -} - -// avoid the V8 deoptimization monster! -function jsonParse(str) { - var obj; - try { - obj = JSON.parse(str); - } catch (e) { - return e; - } - return obj; -} - -function fromJSON(str) { - if (!str) { - return null; - } - - var obj; - if (typeof str === 'string') { - obj = jsonParse(str); - if (obj instanceof Error) { - return null; - } - } else { - // assume it's an Object - obj = str; - } - - var c = new Cookie(); - for (var i=0; i 1) { - var lindex = path.lastIndexOf('/'); - if (lindex === 0) { - break; - } - path = path.substr(0,lindex); - permutations.push(path); - } - permutations.push('/'); - return permutations; -} - -function getCookieContext(url) { - if (url instanceof Object) { - return url; - } - // NOTE: decodeURI will throw on malformed URIs (see GH-32). - // Therefore, we will just skip decoding for such URIs. - try { - url = decodeURI(url); - } - catch(err) { - // Silently swallow error - } - - return urlParse(url); -} - -function Cookie(options) { - options = options || {}; - - Object.keys(options).forEach(function(prop) { - if (Cookie.prototype.hasOwnProperty(prop) && - Cookie.prototype[prop] !== options[prop] && - prop.substr(0,1) !== '_') - { - this[prop] = options[prop]; - } - }, this); - - this.creation = this.creation || new Date(); - - // used to break creation ties in cookieCompare(): - Object.defineProperty(this, 'creationIndex', { - configurable: false, - enumerable: false, // important for assert.deepEqual checks - writable: true, - value: ++Cookie.cookiesCreated - }); -} - -Cookie.cookiesCreated = 0; // incremented each time a cookie is created - -Cookie.parse = parse; -Cookie.fromJSON = fromJSON; - -Cookie.prototype.key = ""; -Cookie.prototype.value = ""; - -// the order in which the RFC has them: -Cookie.prototype.expires = "Infinity"; // coerces to literal Infinity -Cookie.prototype.maxAge = null; // takes precedence over expires for TTL -Cookie.prototype.domain = null; -Cookie.prototype.path = null; -Cookie.prototype.secure = false; -Cookie.prototype.httpOnly = false; -Cookie.prototype.extensions = null; - -// set by the CookieJar: -Cookie.prototype.hostOnly = null; // boolean when set -Cookie.prototype.pathIsDefault = null; // boolean when set -Cookie.prototype.creation = null; // Date when set; defaulted by Cookie.parse -Cookie.prototype.lastAccessed = null; // Date when set -Object.defineProperty(Cookie.prototype, 'creationIndex', { - configurable: true, - enumerable: false, - writable: true, - value: 0 -}); - -Cookie.serializableProperties = Object.keys(Cookie.prototype) - .filter(function(prop) { - return !( - Cookie.prototype[prop] instanceof Function || - prop === 'creationIndex' || - prop.substr(0,1) === '_' - ); - }); - -Cookie.prototype.inspect = function inspect() { - var now = Date.now(); - return 'Cookie="'+this.toString() + - '; hostOnly='+(this.hostOnly != null ? this.hostOnly : '?') + - '; aAge='+(this.lastAccessed ? (now-this.lastAccessed.getTime())+'ms' : '?') + - '; cAge='+(this.creation ? (now-this.creation.getTime())+'ms' : '?') + - '"'; -}; - -Cookie.prototype.toJSON = function() { - var obj = {}; - - var props = Cookie.serializableProperties; - for (var i=0; i suffixLen) { - var publicSuffix = parts.slice(0,suffixLen+1).reverse().join('.'); - return converted ? punycode.toUnicode(publicSuffix) : publicSuffix; - } - - return null; -}; - -// The following generated structure is used under the MPL version 2.0 -// See public-suffix.txt for more information - -var index = module.exports.index = Object.freeze( -{"ac":true,"com.ac":true,"edu.ac":true,"gov.ac":true,"net.ac":true,"mil.ac":true,"org.ac":true,"ad":true,"nom.ad":true,"ae":true,"co.ae":true,"net.ae":true,"org.ae":true,"sch.ae":true,"ac.ae":true,"gov.ae":true,"mil.ae":true,"aero":true,"accident-investigation.aero":true,"accident-prevention.aero":true,"aerobatic.aero":true,"aeroclub.aero":true,"aerodrome.aero":true,"agents.aero":true,"aircraft.aero":true,"airline.aero":true,"airport.aero":true,"air-surveillance.aero":true,"airtraffic.aero":true,"air-traffic-control.aero":true,"ambulance.aero":true,"amusement.aero":true,"association.aero":true,"author.aero":true,"ballooning.aero":true,"broker.aero":true,"caa.aero":true,"cargo.aero":true,"catering.aero":true,"certification.aero":true,"championship.aero":true,"charter.aero":true,"civilaviation.aero":true,"club.aero":true,"conference.aero":true,"consultant.aero":true,"consulting.aero":true,"control.aero":true,"council.aero":true,"crew.aero":true,"design.aero":true,"dgca.aero":true,"educator.aero":true,"emergency.aero":true,"engine.aero":true,"engineer.aero":true,"entertainment.aero":true,"equipment.aero":true,"exchange.aero":true,"express.aero":true,"federation.aero":true,"flight.aero":true,"freight.aero":true,"fuel.aero":true,"gliding.aero":true,"government.aero":true,"groundhandling.aero":true,"group.aero":true,"hanggliding.aero":true,"homebuilt.aero":true,"insurance.aero":true,"journal.aero":true,"journalist.aero":true,"leasing.aero":true,"logistics.aero":true,"magazine.aero":true,"maintenance.aero":true,"marketplace.aero":true,"media.aero":true,"microlight.aero":true,"modelling.aero":true,"navigation.aero":true,"parachuting.aero":true,"paragliding.aero":true,"passenger-association.aero":true,"pilot.aero":true,"press.aero":true,"production.aero":true,"recreation.aero":true,"repbody.aero":true,"res.aero":true,"research.aero":true,"rotorcraft.aero":true,"safety.aero":true,"scientist.aero":true,"services.aero":true,"show.aero":true,"skydiving.aero":true,"software.aero":true,"student.aero":true,"taxi.aero":true,"trader.aero":true,"trading.aero":true,"trainer.aero":true,"union.aero":true,"workinggroup.aero":true,"works.aero":true,"af":true,"gov.af":true,"com.af":true,"org.af":true,"net.af":true,"edu.af":true,"ag":true,"com.ag":true,"org.ag":true,"net.ag":true,"co.ag":true,"nom.ag":true,"ai":true,"off.ai":true,"com.ai":true,"net.ai":true,"org.ai":true,"al":true,"com.al":true,"edu.al":true,"gov.al":true,"mil.al":true,"net.al":true,"org.al":true,"am":true,"an":true,"com.an":true,"net.an":true,"org.an":true,"edu.an":true,"ao":true,"ed.ao":true,"gv.ao":true,"og.ao":true,"co.ao":true,"pb.ao":true,"it.ao":true,"aq":true,"ar":true,"com.ar":true,"edu.ar":true,"gob.ar":true,"gov.ar":true,"int.ar":true,"mil.ar":true,"net.ar":true,"org.ar":true,"tur.ar":true,"arpa":true,"e164.arpa":true,"in-addr.arpa":true,"ip6.arpa":true,"iris.arpa":true,"uri.arpa":true,"urn.arpa":true,"as":true,"gov.as":true,"asia":true,"at":true,"ac.at":true,"co.at":true,"gv.at":true,"or.at":true,"au":true,"com.au":true,"net.au":true,"org.au":true,"edu.au":true,"gov.au":true,"asn.au":true,"id.au":true,"info.au":true,"conf.au":true,"oz.au":true,"act.au":true,"nsw.au":true,"nt.au":true,"qld.au":true,"sa.au":true,"tas.au":true,"vic.au":true,"wa.au":true,"act.edu.au":true,"nsw.edu.au":true,"nt.edu.au":true,"qld.edu.au":true,"sa.edu.au":true,"tas.edu.au":true,"vic.edu.au":true,"wa.edu.au":true,"qld.gov.au":true,"sa.gov.au":true,"tas.gov.au":true,"vic.gov.au":true,"wa.gov.au":true,"aw":true,"com.aw":true,"ax":true,"az":true,"com.az":true,"net.az":true,"int.az":true,"gov.az":true,"org.az":true,"edu.az":true,"info.az":true,"pp.az":true,"mil.az":true,"name.az":true,"pro.az":true,"biz.az":true,"ba":true,"org.ba":true,"net.ba":true,"edu.ba":true,"gov.ba":true,"mil.ba":true,"unsa.ba":true,"unbi.ba":true,"co.ba":true,"com.ba":true,"rs.ba":true,"bb":true,"biz.bb":true,"co.bb":true,"com.bb":true,"edu.bb":true,"gov.bb":true,"info.bb":true,"net.bb":true,"org.bb":true,"store.bb":true,"tv.bb":true,"*.bd":true,"be":true,"ac.be":true,"bf":true,"gov.bf":true,"bg":true,"a.bg":true,"b.bg":true,"c.bg":true,"d.bg":true,"e.bg":true,"f.bg":true,"g.bg":true,"h.bg":true,"i.bg":true,"j.bg":true,"k.bg":true,"l.bg":true,"m.bg":true,"n.bg":true,"o.bg":true,"p.bg":true,"q.bg":true,"r.bg":true,"s.bg":true,"t.bg":true,"u.bg":true,"v.bg":true,"w.bg":true,"x.bg":true,"y.bg":true,"z.bg":true,"0.bg":true,"1.bg":true,"2.bg":true,"3.bg":true,"4.bg":true,"5.bg":true,"6.bg":true,"7.bg":true,"8.bg":true,"9.bg":true,"bh":true,"com.bh":true,"edu.bh":true,"net.bh":true,"org.bh":true,"gov.bh":true,"bi":true,"co.bi":true,"com.bi":true,"edu.bi":true,"or.bi":true,"org.bi":true,"biz":true,"bj":true,"asso.bj":true,"barreau.bj":true,"gouv.bj":true,"bm":true,"com.bm":true,"edu.bm":true,"gov.bm":true,"net.bm":true,"org.bm":true,"*.bn":true,"bo":true,"com.bo":true,"edu.bo":true,"gov.bo":true,"gob.bo":true,"int.bo":true,"org.bo":true,"net.bo":true,"mil.bo":true,"tv.bo":true,"br":true,"adm.br":true,"adv.br":true,"agr.br":true,"am.br":true,"arq.br":true,"art.br":true,"ato.br":true,"b.br":true,"bio.br":true,"blog.br":true,"bmd.br":true,"cim.br":true,"cng.br":true,"cnt.br":true,"com.br":true,"coop.br":true,"ecn.br":true,"eco.br":true,"edu.br":true,"emp.br":true,"eng.br":true,"esp.br":true,"etc.br":true,"eti.br":true,"far.br":true,"flog.br":true,"fm.br":true,"fnd.br":true,"fot.br":true,"fst.br":true,"g12.br":true,"ggf.br":true,"gov.br":true,"imb.br":true,"ind.br":true,"inf.br":true,"jor.br":true,"jus.br":true,"leg.br":true,"lel.br":true,"mat.br":true,"med.br":true,"mil.br":true,"mp.br":true,"mus.br":true,"net.br":true,"*.nom.br":true,"not.br":true,"ntr.br":true,"odo.br":true,"org.br":true,"ppg.br":true,"pro.br":true,"psc.br":true,"psi.br":true,"qsl.br":true,"radio.br":true,"rec.br":true,"slg.br":true,"srv.br":true,"taxi.br":true,"teo.br":true,"tmp.br":true,"trd.br":true,"tur.br":true,"tv.br":true,"vet.br":true,"vlog.br":true,"wiki.br":true,"zlg.br":true,"bs":true,"com.bs":true,"net.bs":true,"org.bs":true,"edu.bs":true,"gov.bs":true,"bt":true,"com.bt":true,"edu.bt":true,"gov.bt":true,"net.bt":true,"org.bt":true,"bv":true,"bw":true,"co.bw":true,"org.bw":true,"by":true,"gov.by":true,"mil.by":true,"com.by":true,"of.by":true,"bz":true,"com.bz":true,"net.bz":true,"org.bz":true,"edu.bz":true,"gov.bz":true,"ca":true,"ab.ca":true,"bc.ca":true,"mb.ca":true,"nb.ca":true,"nf.ca":true,"nl.ca":true,"ns.ca":true,"nt.ca":true,"nu.ca":true,"on.ca":true,"pe.ca":true,"qc.ca":true,"sk.ca":true,"yk.ca":true,"gc.ca":true,"cat":true,"cc":true,"cd":true,"gov.cd":true,"cf":true,"cg":true,"ch":true,"ci":true,"org.ci":true,"or.ci":true,"com.ci":true,"co.ci":true,"edu.ci":true,"ed.ci":true,"ac.ci":true,"net.ci":true,"go.ci":true,"asso.ci":true,"xn--aroport-bya.ci":true,"int.ci":true,"presse.ci":true,"md.ci":true,"gouv.ci":true,"*.ck":true,"www.ck":false,"cl":true,"gov.cl":true,"gob.cl":true,"co.cl":true,"mil.cl":true,"cm":true,"co.cm":true,"com.cm":true,"gov.cm":true,"net.cm":true,"cn":true,"ac.cn":true,"com.cn":true,"edu.cn":true,"gov.cn":true,"net.cn":true,"org.cn":true,"mil.cn":true,"xn--55qx5d.cn":true,"xn--io0a7i.cn":true,"xn--od0alg.cn":true,"ah.cn":true,"bj.cn":true,"cq.cn":true,"fj.cn":true,"gd.cn":true,"gs.cn":true,"gz.cn":true,"gx.cn":true,"ha.cn":true,"hb.cn":true,"he.cn":true,"hi.cn":true,"hl.cn":true,"hn.cn":true,"jl.cn":true,"js.cn":true,"jx.cn":true,"ln.cn":true,"nm.cn":true,"nx.cn":true,"qh.cn":true,"sc.cn":true,"sd.cn":true,"sh.cn":true,"sn.cn":true,"sx.cn":true,"tj.cn":true,"xj.cn":true,"xz.cn":true,"yn.cn":true,"zj.cn":true,"hk.cn":true,"mo.cn":true,"tw.cn":true,"co":true,"arts.co":true,"com.co":true,"edu.co":true,"firm.co":true,"gov.co":true,"info.co":true,"int.co":true,"mil.co":true,"net.co":true,"nom.co":true,"org.co":true,"rec.co":true,"web.co":true,"com":true,"coop":true,"cr":true,"ac.cr":true,"co.cr":true,"ed.cr":true,"fi.cr":true,"go.cr":true,"or.cr":true,"sa.cr":true,"cu":true,"com.cu":true,"edu.cu":true,"org.cu":true,"net.cu":true,"gov.cu":true,"inf.cu":true,"cv":true,"cw":true,"com.cw":true,"edu.cw":true,"net.cw":true,"org.cw":true,"cx":true,"gov.cx":true,"ac.cy":true,"biz.cy":true,"com.cy":true,"ekloges.cy":true,"gov.cy":true,"ltd.cy":true,"name.cy":true,"net.cy":true,"org.cy":true,"parliament.cy":true,"press.cy":true,"pro.cy":true,"tm.cy":true,"cz":true,"de":true,"dj":true,"dk":true,"dm":true,"com.dm":true,"net.dm":true,"org.dm":true,"edu.dm":true,"gov.dm":true,"do":true,"art.do":true,"com.do":true,"edu.do":true,"gob.do":true,"gov.do":true,"mil.do":true,"net.do":true,"org.do":true,"sld.do":true,"web.do":true,"dz":true,"com.dz":true,"org.dz":true,"net.dz":true,"gov.dz":true,"edu.dz":true,"asso.dz":true,"pol.dz":true,"art.dz":true,"ec":true,"com.ec":true,"info.ec":true,"net.ec":true,"fin.ec":true,"k12.ec":true,"med.ec":true,"pro.ec":true,"org.ec":true,"edu.ec":true,"gov.ec":true,"gob.ec":true,"mil.ec":true,"edu":true,"ee":true,"edu.ee":true,"gov.ee":true,"riik.ee":true,"lib.ee":true,"med.ee":true,"com.ee":true,"pri.ee":true,"aip.ee":true,"org.ee":true,"fie.ee":true,"eg":true,"com.eg":true,"edu.eg":true,"eun.eg":true,"gov.eg":true,"mil.eg":true,"name.eg":true,"net.eg":true,"org.eg":true,"sci.eg":true,"*.er":true,"es":true,"com.es":true,"nom.es":true,"org.es":true,"gob.es":true,"edu.es":true,"et":true,"com.et":true,"gov.et":true,"org.et":true,"edu.et":true,"biz.et":true,"name.et":true,"info.et":true,"net.et":true,"eu":true,"fi":true,"aland.fi":true,"*.fj":true,"*.fk":true,"fm":true,"fo":true,"fr":true,"com.fr":true,"asso.fr":true,"nom.fr":true,"prd.fr":true,"presse.fr":true,"tm.fr":true,"aeroport.fr":true,"assedic.fr":true,"avocat.fr":true,"avoues.fr":true,"cci.fr":true,"chambagri.fr":true,"chirurgiens-dentistes.fr":true,"experts-comptables.fr":true,"geometre-expert.fr":true,"gouv.fr":true,"greta.fr":true,"huissier-justice.fr":true,"medecin.fr":true,"notaires.fr":true,"pharmacien.fr":true,"port.fr":true,"veterinaire.fr":true,"ga":true,"gb":true,"gd":true,"ge":true,"com.ge":true,"edu.ge":true,"gov.ge":true,"org.ge":true,"mil.ge":true,"net.ge":true,"pvt.ge":true,"gf":true,"gg":true,"co.gg":true,"net.gg":true,"org.gg":true,"gh":true,"com.gh":true,"edu.gh":true,"gov.gh":true,"org.gh":true,"mil.gh":true,"gi":true,"com.gi":true,"ltd.gi":true,"gov.gi":true,"mod.gi":true,"edu.gi":true,"org.gi":true,"gl":true,"co.gl":true,"com.gl":true,"edu.gl":true,"net.gl":true,"org.gl":true,"gm":true,"gn":true,"ac.gn":true,"com.gn":true,"edu.gn":true,"gov.gn":true,"org.gn":true,"net.gn":true,"gov":true,"gp":true,"com.gp":true,"net.gp":true,"mobi.gp":true,"edu.gp":true,"org.gp":true,"asso.gp":true,"gq":true,"gr":true,"com.gr":true,"edu.gr":true,"net.gr":true,"org.gr":true,"gov.gr":true,"gs":true,"gt":true,"com.gt":true,"edu.gt":true,"gob.gt":true,"ind.gt":true,"mil.gt":true,"net.gt":true,"org.gt":true,"*.gu":true,"gw":true,"gy":true,"co.gy":true,"com.gy":true,"net.gy":true,"hk":true,"com.hk":true,"edu.hk":true,"gov.hk":true,"idv.hk":true,"net.hk":true,"org.hk":true,"xn--55qx5d.hk":true,"xn--wcvs22d.hk":true,"xn--lcvr32d.hk":true,"xn--mxtq1m.hk":true,"xn--gmqw5a.hk":true,"xn--ciqpn.hk":true,"xn--gmq050i.hk":true,"xn--zf0avx.hk":true,"xn--io0a7i.hk":true,"xn--mk0axi.hk":true,"xn--od0alg.hk":true,"xn--od0aq3b.hk":true,"xn--tn0ag.hk":true,"xn--uc0atv.hk":true,"xn--uc0ay4a.hk":true,"hm":true,"hn":true,"com.hn":true,"edu.hn":true,"org.hn":true,"net.hn":true,"mil.hn":true,"gob.hn":true,"hr":true,"iz.hr":true,"from.hr":true,"name.hr":true,"com.hr":true,"ht":true,"com.ht":true,"shop.ht":true,"firm.ht":true,"info.ht":true,"adult.ht":true,"net.ht":true,"pro.ht":true,"org.ht":true,"med.ht":true,"art.ht":true,"coop.ht":true,"pol.ht":true,"asso.ht":true,"edu.ht":true,"rel.ht":true,"gouv.ht":true,"perso.ht":true,"hu":true,"co.hu":true,"info.hu":true,"org.hu":true,"priv.hu":true,"sport.hu":true,"tm.hu":true,"2000.hu":true,"agrar.hu":true,"bolt.hu":true,"casino.hu":true,"city.hu":true,"erotica.hu":true,"erotika.hu":true,"film.hu":true,"forum.hu":true,"games.hu":true,"hotel.hu":true,"ingatlan.hu":true,"jogasz.hu":true,"konyvelo.hu":true,"lakas.hu":true,"media.hu":true,"news.hu":true,"reklam.hu":true,"sex.hu":true,"shop.hu":true,"suli.hu":true,"szex.hu":true,"tozsde.hu":true,"utazas.hu":true,"video.hu":true,"id":true,"ac.id":true,"biz.id":true,"co.id":true,"desa.id":true,"go.id":true,"mil.id":true,"my.id":true,"net.id":true,"or.id":true,"sch.id":true,"web.id":true,"ie":true,"gov.ie":true,"il":true,"ac.il":true,"co.il":true,"gov.il":true,"idf.il":true,"k12.il":true,"muni.il":true,"net.il":true,"org.il":true,"im":true,"ac.im":true,"co.im":true,"com.im":true,"ltd.co.im":true,"net.im":true,"org.im":true,"plc.co.im":true,"tt.im":true,"tv.im":true,"in":true,"co.in":true,"firm.in":true,"net.in":true,"org.in":true,"gen.in":true,"ind.in":true,"nic.in":true,"ac.in":true,"edu.in":true,"res.in":true,"gov.in":true,"mil.in":true,"info":true,"int":true,"eu.int":true,"io":true,"com.io":true,"iq":true,"gov.iq":true,"edu.iq":true,"mil.iq":true,"com.iq":true,"org.iq":true,"net.iq":true,"ir":true,"ac.ir":true,"co.ir":true,"gov.ir":true,"id.ir":true,"net.ir":true,"org.ir":true,"sch.ir":true,"xn--mgba3a4f16a.ir":true,"xn--mgba3a4fra.ir":true,"is":true,"net.is":true,"com.is":true,"edu.is":true,"gov.is":true,"org.is":true,"int.is":true,"it":true,"gov.it":true,"edu.it":true,"abr.it":true,"abruzzo.it":true,"aosta-valley.it":true,"aostavalley.it":true,"bas.it":true,"basilicata.it":true,"cal.it":true,"calabria.it":true,"cam.it":true,"campania.it":true,"emilia-romagna.it":true,"emiliaromagna.it":true,"emr.it":true,"friuli-v-giulia.it":true,"friuli-ve-giulia.it":true,"friuli-vegiulia.it":true,"friuli-venezia-giulia.it":true,"friuli-veneziagiulia.it":true,"friuli-vgiulia.it":true,"friuliv-giulia.it":true,"friulive-giulia.it":true,"friulivegiulia.it":true,"friulivenezia-giulia.it":true,"friuliveneziagiulia.it":true,"friulivgiulia.it":true,"fvg.it":true,"laz.it":true,"lazio.it":true,"lig.it":true,"liguria.it":true,"lom.it":true,"lombardia.it":true,"lombardy.it":true,"lucania.it":true,"mar.it":true,"marche.it":true,"mol.it":true,"molise.it":true,"piedmont.it":true,"piemonte.it":true,"pmn.it":true,"pug.it":true,"puglia.it":true,"sar.it":true,"sardegna.it":true,"sardinia.it":true,"sic.it":true,"sicilia.it":true,"sicily.it":true,"taa.it":true,"tos.it":true,"toscana.it":true,"trentino-a-adige.it":true,"trentino-aadige.it":true,"trentino-alto-adige.it":true,"trentino-altoadige.it":true,"trentino-s-tirol.it":true,"trentino-stirol.it":true,"trentino-sud-tirol.it":true,"trentino-sudtirol.it":true,"trentino-sued-tirol.it":true,"trentino-suedtirol.it":true,"trentinoa-adige.it":true,"trentinoaadige.it":true,"trentinoalto-adige.it":true,"trentinoaltoadige.it":true,"trentinos-tirol.it":true,"trentinostirol.it":true,"trentinosud-tirol.it":true,"trentinosudtirol.it":true,"trentinosued-tirol.it":true,"trentinosuedtirol.it":true,"tuscany.it":true,"umb.it":true,"umbria.it":true,"val-d-aosta.it":true,"val-daosta.it":true,"vald-aosta.it":true,"valdaosta.it":true,"valle-aosta.it":true,"valle-d-aosta.it":true,"valle-daosta.it":true,"valleaosta.it":true,"valled-aosta.it":true,"valledaosta.it":true,"vallee-aoste.it":true,"valleeaoste.it":true,"vao.it":true,"vda.it":true,"ven.it":true,"veneto.it":true,"ag.it":true,"agrigento.it":true,"al.it":true,"alessandria.it":true,"alto-adige.it":true,"altoadige.it":true,"an.it":true,"ancona.it":true,"andria-barletta-trani.it":true,"andria-trani-barletta.it":true,"andriabarlettatrani.it":true,"andriatranibarletta.it":true,"ao.it":true,"aosta.it":true,"aoste.it":true,"ap.it":true,"aq.it":true,"aquila.it":true,"ar.it":true,"arezzo.it":true,"ascoli-piceno.it":true,"ascolipiceno.it":true,"asti.it":true,"at.it":true,"av.it":true,"avellino.it":true,"ba.it":true,"balsan.it":true,"bari.it":true,"barletta-trani-andria.it":true,"barlettatraniandria.it":true,"belluno.it":true,"benevento.it":true,"bergamo.it":true,"bg.it":true,"bi.it":true,"biella.it":true,"bl.it":true,"bn.it":true,"bo.it":true,"bologna.it":true,"bolzano.it":true,"bozen.it":true,"br.it":true,"brescia.it":true,"brindisi.it":true,"bs.it":true,"bt.it":true,"bz.it":true,"ca.it":true,"cagliari.it":true,"caltanissetta.it":true,"campidano-medio.it":true,"campidanomedio.it":true,"campobasso.it":true,"carbonia-iglesias.it":true,"carboniaiglesias.it":true,"carrara-massa.it":true,"carraramassa.it":true,"caserta.it":true,"catania.it":true,"catanzaro.it":true,"cb.it":true,"ce.it":true,"cesena-forli.it":true,"cesenaforli.it":true,"ch.it":true,"chieti.it":true,"ci.it":true,"cl.it":true,"cn.it":true,"co.it":true,"como.it":true,"cosenza.it":true,"cr.it":true,"cremona.it":true,"crotone.it":true,"cs.it":true,"ct.it":true,"cuneo.it":true,"cz.it":true,"dell-ogliastra.it":true,"dellogliastra.it":true,"en.it":true,"enna.it":true,"fc.it":true,"fe.it":true,"fermo.it":true,"ferrara.it":true,"fg.it":true,"fi.it":true,"firenze.it":true,"florence.it":true,"fm.it":true,"foggia.it":true,"forli-cesena.it":true,"forlicesena.it":true,"fr.it":true,"frosinone.it":true,"ge.it":true,"genoa.it":true,"genova.it":true,"go.it":true,"gorizia.it":true,"gr.it":true,"grosseto.it":true,"iglesias-carbonia.it":true,"iglesiascarbonia.it":true,"im.it":true,"imperia.it":true,"is.it":true,"isernia.it":true,"kr.it":true,"la-spezia.it":true,"laquila.it":true,"laspezia.it":true,"latina.it":true,"lc.it":true,"le.it":true,"lecce.it":true,"lecco.it":true,"li.it":true,"livorno.it":true,"lo.it":true,"lodi.it":true,"lt.it":true,"lu.it":true,"lucca.it":true,"macerata.it":true,"mantova.it":true,"massa-carrara.it":true,"massacarrara.it":true,"matera.it":true,"mb.it":true,"mc.it":true,"me.it":true,"medio-campidano.it":true,"mediocampidano.it":true,"messina.it":true,"mi.it":true,"milan.it":true,"milano.it":true,"mn.it":true,"mo.it":true,"modena.it":true,"monza-brianza.it":true,"monza-e-della-brianza.it":true,"monza.it":true,"monzabrianza.it":true,"monzaebrianza.it":true,"monzaedellabrianza.it":true,"ms.it":true,"mt.it":true,"na.it":true,"naples.it":true,"napoli.it":true,"no.it":true,"novara.it":true,"nu.it":true,"nuoro.it":true,"og.it":true,"ogliastra.it":true,"olbia-tempio.it":true,"olbiatempio.it":true,"or.it":true,"oristano.it":true,"ot.it":true,"pa.it":true,"padova.it":true,"padua.it":true,"palermo.it":true,"parma.it":true,"pavia.it":true,"pc.it":true,"pd.it":true,"pe.it":true,"perugia.it":true,"pesaro-urbino.it":true,"pesarourbino.it":true,"pescara.it":true,"pg.it":true,"pi.it":true,"piacenza.it":true,"pisa.it":true,"pistoia.it":true,"pn.it":true,"po.it":true,"pordenone.it":true,"potenza.it":true,"pr.it":true,"prato.it":true,"pt.it":true,"pu.it":true,"pv.it":true,"pz.it":true,"ra.it":true,"ragusa.it":true,"ravenna.it":true,"rc.it":true,"re.it":true,"reggio-calabria.it":true,"reggio-emilia.it":true,"reggiocalabria.it":true,"reggioemilia.it":true,"rg.it":true,"ri.it":true,"rieti.it":true,"rimini.it":true,"rm.it":true,"rn.it":true,"ro.it":true,"roma.it":true,"rome.it":true,"rovigo.it":true,"sa.it":true,"salerno.it":true,"sassari.it":true,"savona.it":true,"si.it":true,"siena.it":true,"siracusa.it":true,"so.it":true,"sondrio.it":true,"sp.it":true,"sr.it":true,"ss.it":true,"suedtirol.it":true,"sv.it":true,"ta.it":true,"taranto.it":true,"te.it":true,"tempio-olbia.it":true,"tempioolbia.it":true,"teramo.it":true,"terni.it":true,"tn.it":true,"to.it":true,"torino.it":true,"tp.it":true,"tr.it":true,"trani-andria-barletta.it":true,"trani-barletta-andria.it":true,"traniandriabarletta.it":true,"tranibarlettaandria.it":true,"trapani.it":true,"trentino.it":true,"trento.it":true,"treviso.it":true,"trieste.it":true,"ts.it":true,"turin.it":true,"tv.it":true,"ud.it":true,"udine.it":true,"urbino-pesaro.it":true,"urbinopesaro.it":true,"va.it":true,"varese.it":true,"vb.it":true,"vc.it":true,"ve.it":true,"venezia.it":true,"venice.it":true,"verbania.it":true,"vercelli.it":true,"verona.it":true,"vi.it":true,"vibo-valentia.it":true,"vibovalentia.it":true,"vicenza.it":true,"viterbo.it":true,"vr.it":true,"vs.it":true,"vt.it":true,"vv.it":true,"je":true,"co.je":true,"net.je":true,"org.je":true,"*.jm":true,"jo":true,"com.jo":true,"org.jo":true,"net.jo":true,"edu.jo":true,"sch.jo":true,"gov.jo":true,"mil.jo":true,"name.jo":true,"jobs":true,"jp":true,"ac.jp":true,"ad.jp":true,"co.jp":true,"ed.jp":true,"go.jp":true,"gr.jp":true,"lg.jp":true,"ne.jp":true,"or.jp":true,"aichi.jp":true,"akita.jp":true,"aomori.jp":true,"chiba.jp":true,"ehime.jp":true,"fukui.jp":true,"fukuoka.jp":true,"fukushima.jp":true,"gifu.jp":true,"gunma.jp":true,"hiroshima.jp":true,"hokkaido.jp":true,"hyogo.jp":true,"ibaraki.jp":true,"ishikawa.jp":true,"iwate.jp":true,"kagawa.jp":true,"kagoshima.jp":true,"kanagawa.jp":true,"kochi.jp":true,"kumamoto.jp":true,"kyoto.jp":true,"mie.jp":true,"miyagi.jp":true,"miyazaki.jp":true,"nagano.jp":true,"nagasaki.jp":true,"nara.jp":true,"niigata.jp":true,"oita.jp":true,"okayama.jp":true,"okinawa.jp":true,"osaka.jp":true,"saga.jp":true,"saitama.jp":true,"shiga.jp":true,"shimane.jp":true,"shizuoka.jp":true,"tochigi.jp":true,"tokushima.jp":true,"tokyo.jp":true,"tottori.jp":true,"toyama.jp":true,"wakayama.jp":true,"yamagata.jp":true,"yamaguchi.jp":true,"yamanashi.jp":true,"xn--4pvxs.jp":true,"xn--vgu402c.jp":true,"xn--c3s14m.jp":true,"xn--f6qx53a.jp":true,"xn--8pvr4u.jp":true,"xn--uist22h.jp":true,"xn--djrs72d6uy.jp":true,"xn--mkru45i.jp":true,"xn--0trq7p7nn.jp":true,"xn--8ltr62k.jp":true,"xn--2m4a15e.jp":true,"xn--efvn9s.jp":true,"xn--32vp30h.jp":true,"xn--4it797k.jp":true,"xn--1lqs71d.jp":true,"xn--5rtp49c.jp":true,"xn--5js045d.jp":true,"xn--ehqz56n.jp":true,"xn--1lqs03n.jp":true,"xn--qqqt11m.jp":true,"xn--kbrq7o.jp":true,"xn--pssu33l.jp":true,"xn--ntsq17g.jp":true,"xn--uisz3g.jp":true,"xn--6btw5a.jp":true,"xn--1ctwo.jp":true,"xn--6orx2r.jp":true,"xn--rht61e.jp":true,"xn--rht27z.jp":true,"xn--djty4k.jp":true,"xn--nit225k.jp":true,"xn--rht3d.jp":true,"xn--klty5x.jp":true,"xn--kltx9a.jp":true,"xn--kltp7d.jp":true,"xn--uuwu58a.jp":true,"xn--zbx025d.jp":true,"xn--ntso0iqx3a.jp":true,"xn--elqq16h.jp":true,"xn--4it168d.jp":true,"xn--klt787d.jp":true,"xn--rny31h.jp":true,"xn--7t0a264c.jp":true,"xn--5rtq34k.jp":true,"xn--k7yn95e.jp":true,"xn--tor131o.jp":true,"xn--d5qv7z876c.jp":true,"*.kawasaki.jp":true,"*.kitakyushu.jp":true,"*.kobe.jp":true,"*.nagoya.jp":true,"*.sapporo.jp":true,"*.sendai.jp":true,"*.yokohama.jp":true,"city.kawasaki.jp":false,"city.kitakyushu.jp":false,"city.kobe.jp":false,"city.nagoya.jp":false,"city.sapporo.jp":false,"city.sendai.jp":false,"city.yokohama.jp":false,"aisai.aichi.jp":true,"ama.aichi.jp":true,"anjo.aichi.jp":true,"asuke.aichi.jp":true,"chiryu.aichi.jp":true,"chita.aichi.jp":true,"fuso.aichi.jp":true,"gamagori.aichi.jp":true,"handa.aichi.jp":true,"hazu.aichi.jp":true,"hekinan.aichi.jp":true,"higashiura.aichi.jp":true,"ichinomiya.aichi.jp":true,"inazawa.aichi.jp":true,"inuyama.aichi.jp":true,"isshiki.aichi.jp":true,"iwakura.aichi.jp":true,"kanie.aichi.jp":true,"kariya.aichi.jp":true,"kasugai.aichi.jp":true,"kira.aichi.jp":true,"kiyosu.aichi.jp":true,"komaki.aichi.jp":true,"konan.aichi.jp":true,"kota.aichi.jp":true,"mihama.aichi.jp":true,"miyoshi.aichi.jp":true,"nishio.aichi.jp":true,"nisshin.aichi.jp":true,"obu.aichi.jp":true,"oguchi.aichi.jp":true,"oharu.aichi.jp":true,"okazaki.aichi.jp":true,"owariasahi.aichi.jp":true,"seto.aichi.jp":true,"shikatsu.aichi.jp":true,"shinshiro.aichi.jp":true,"shitara.aichi.jp":true,"tahara.aichi.jp":true,"takahama.aichi.jp":true,"tobishima.aichi.jp":true,"toei.aichi.jp":true,"togo.aichi.jp":true,"tokai.aichi.jp":true,"tokoname.aichi.jp":true,"toyoake.aichi.jp":true,"toyohashi.aichi.jp":true,"toyokawa.aichi.jp":true,"toyone.aichi.jp":true,"toyota.aichi.jp":true,"tsushima.aichi.jp":true,"yatomi.aichi.jp":true,"akita.akita.jp":true,"daisen.akita.jp":true,"fujisato.akita.jp":true,"gojome.akita.jp":true,"hachirogata.akita.jp":true,"happou.akita.jp":true,"higashinaruse.akita.jp":true,"honjo.akita.jp":true,"honjyo.akita.jp":true,"ikawa.akita.jp":true,"kamikoani.akita.jp":true,"kamioka.akita.jp":true,"katagami.akita.jp":true,"kazuno.akita.jp":true,"kitaakita.akita.jp":true,"kosaka.akita.jp":true,"kyowa.akita.jp":true,"misato.akita.jp":true,"mitane.akita.jp":true,"moriyoshi.akita.jp":true,"nikaho.akita.jp":true,"noshiro.akita.jp":true,"odate.akita.jp":true,"oga.akita.jp":true,"ogata.akita.jp":true,"semboku.akita.jp":true,"yokote.akita.jp":true,"yurihonjo.akita.jp":true,"aomori.aomori.jp":true,"gonohe.aomori.jp":true,"hachinohe.aomori.jp":true,"hashikami.aomori.jp":true,"hiranai.aomori.jp":true,"hirosaki.aomori.jp":true,"itayanagi.aomori.jp":true,"kuroishi.aomori.jp":true,"misawa.aomori.jp":true,"mutsu.aomori.jp":true,"nakadomari.aomori.jp":true,"noheji.aomori.jp":true,"oirase.aomori.jp":true,"owani.aomori.jp":true,"rokunohe.aomori.jp":true,"sannohe.aomori.jp":true,"shichinohe.aomori.jp":true,"shingo.aomori.jp":true,"takko.aomori.jp":true,"towada.aomori.jp":true,"tsugaru.aomori.jp":true,"tsuruta.aomori.jp":true,"abiko.chiba.jp":true,"asahi.chiba.jp":true,"chonan.chiba.jp":true,"chosei.chiba.jp":true,"choshi.chiba.jp":true,"chuo.chiba.jp":true,"funabashi.chiba.jp":true,"futtsu.chiba.jp":true,"hanamigawa.chiba.jp":true,"ichihara.chiba.jp":true,"ichikawa.chiba.jp":true,"ichinomiya.chiba.jp":true,"inzai.chiba.jp":true,"isumi.chiba.jp":true,"kamagaya.chiba.jp":true,"kamogawa.chiba.jp":true,"kashiwa.chiba.jp":true,"katori.chiba.jp":true,"katsuura.chiba.jp":true,"kimitsu.chiba.jp":true,"kisarazu.chiba.jp":true,"kozaki.chiba.jp":true,"kujukuri.chiba.jp":true,"kyonan.chiba.jp":true,"matsudo.chiba.jp":true,"midori.chiba.jp":true,"mihama.chiba.jp":true,"minamiboso.chiba.jp":true,"mobara.chiba.jp":true,"mutsuzawa.chiba.jp":true,"nagara.chiba.jp":true,"nagareyama.chiba.jp":true,"narashino.chiba.jp":true,"narita.chiba.jp":true,"noda.chiba.jp":true,"oamishirasato.chiba.jp":true,"omigawa.chiba.jp":true,"onjuku.chiba.jp":true,"otaki.chiba.jp":true,"sakae.chiba.jp":true,"sakura.chiba.jp":true,"shimofusa.chiba.jp":true,"shirako.chiba.jp":true,"shiroi.chiba.jp":true,"shisui.chiba.jp":true,"sodegaura.chiba.jp":true,"sosa.chiba.jp":true,"tako.chiba.jp":true,"tateyama.chiba.jp":true,"togane.chiba.jp":true,"tohnosho.chiba.jp":true,"tomisato.chiba.jp":true,"urayasu.chiba.jp":true,"yachimata.chiba.jp":true,"yachiyo.chiba.jp":true,"yokaichiba.chiba.jp":true,"yokoshibahikari.chiba.jp":true,"yotsukaido.chiba.jp":true,"ainan.ehime.jp":true,"honai.ehime.jp":true,"ikata.ehime.jp":true,"imabari.ehime.jp":true,"iyo.ehime.jp":true,"kamijima.ehime.jp":true,"kihoku.ehime.jp":true,"kumakogen.ehime.jp":true,"masaki.ehime.jp":true,"matsuno.ehime.jp":true,"matsuyama.ehime.jp":true,"namikata.ehime.jp":true,"niihama.ehime.jp":true,"ozu.ehime.jp":true,"saijo.ehime.jp":true,"seiyo.ehime.jp":true,"shikokuchuo.ehime.jp":true,"tobe.ehime.jp":true,"toon.ehime.jp":true,"uchiko.ehime.jp":true,"uwajima.ehime.jp":true,"yawatahama.ehime.jp":true,"echizen.fukui.jp":true,"eiheiji.fukui.jp":true,"fukui.fukui.jp":true,"ikeda.fukui.jp":true,"katsuyama.fukui.jp":true,"mihama.fukui.jp":true,"minamiechizen.fukui.jp":true,"obama.fukui.jp":true,"ohi.fukui.jp":true,"ono.fukui.jp":true,"sabae.fukui.jp":true,"sakai.fukui.jp":true,"takahama.fukui.jp":true,"tsuruga.fukui.jp":true,"wakasa.fukui.jp":true,"ashiya.fukuoka.jp":true,"buzen.fukuoka.jp":true,"chikugo.fukuoka.jp":true,"chikuho.fukuoka.jp":true,"chikujo.fukuoka.jp":true,"chikushino.fukuoka.jp":true,"chikuzen.fukuoka.jp":true,"chuo.fukuoka.jp":true,"dazaifu.fukuoka.jp":true,"fukuchi.fukuoka.jp":true,"hakata.fukuoka.jp":true,"higashi.fukuoka.jp":true,"hirokawa.fukuoka.jp":true,"hisayama.fukuoka.jp":true,"iizuka.fukuoka.jp":true,"inatsuki.fukuoka.jp":true,"kaho.fukuoka.jp":true,"kasuga.fukuoka.jp":true,"kasuya.fukuoka.jp":true,"kawara.fukuoka.jp":true,"keisen.fukuoka.jp":true,"koga.fukuoka.jp":true,"kurate.fukuoka.jp":true,"kurogi.fukuoka.jp":true,"kurume.fukuoka.jp":true,"minami.fukuoka.jp":true,"miyako.fukuoka.jp":true,"miyama.fukuoka.jp":true,"miyawaka.fukuoka.jp":true,"mizumaki.fukuoka.jp":true,"munakata.fukuoka.jp":true,"nakagawa.fukuoka.jp":true,"nakama.fukuoka.jp":true,"nishi.fukuoka.jp":true,"nogata.fukuoka.jp":true,"ogori.fukuoka.jp":true,"okagaki.fukuoka.jp":true,"okawa.fukuoka.jp":true,"oki.fukuoka.jp":true,"omuta.fukuoka.jp":true,"onga.fukuoka.jp":true,"onojo.fukuoka.jp":true,"oto.fukuoka.jp":true,"saigawa.fukuoka.jp":true,"sasaguri.fukuoka.jp":true,"shingu.fukuoka.jp":true,"shinyoshitomi.fukuoka.jp":true,"shonai.fukuoka.jp":true,"soeda.fukuoka.jp":true,"sue.fukuoka.jp":true,"tachiarai.fukuoka.jp":true,"tagawa.fukuoka.jp":true,"takata.fukuoka.jp":true,"toho.fukuoka.jp":true,"toyotsu.fukuoka.jp":true,"tsuiki.fukuoka.jp":true,"ukiha.fukuoka.jp":true,"umi.fukuoka.jp":true,"usui.fukuoka.jp":true,"yamada.fukuoka.jp":true,"yame.fukuoka.jp":true,"yanagawa.fukuoka.jp":true,"yukuhashi.fukuoka.jp":true,"aizubange.fukushima.jp":true,"aizumisato.fukushima.jp":true,"aizuwakamatsu.fukushima.jp":true,"asakawa.fukushima.jp":true,"bandai.fukushima.jp":true,"date.fukushima.jp":true,"fukushima.fukushima.jp":true,"furudono.fukushima.jp":true,"futaba.fukushima.jp":true,"hanawa.fukushima.jp":true,"higashi.fukushima.jp":true,"hirata.fukushima.jp":true,"hirono.fukushima.jp":true,"iitate.fukushima.jp":true,"inawashiro.fukushima.jp":true,"ishikawa.fukushima.jp":true,"iwaki.fukushima.jp":true,"izumizaki.fukushima.jp":true,"kagamiishi.fukushima.jp":true,"kaneyama.fukushima.jp":true,"kawamata.fukushima.jp":true,"kitakata.fukushima.jp":true,"kitashiobara.fukushima.jp":true,"koori.fukushima.jp":true,"koriyama.fukushima.jp":true,"kunimi.fukushima.jp":true,"miharu.fukushima.jp":true,"mishima.fukushima.jp":true,"namie.fukushima.jp":true,"nango.fukushima.jp":true,"nishiaizu.fukushima.jp":true,"nishigo.fukushima.jp":true,"okuma.fukushima.jp":true,"omotego.fukushima.jp":true,"ono.fukushima.jp":true,"otama.fukushima.jp":true,"samegawa.fukushima.jp":true,"shimogo.fukushima.jp":true,"shirakawa.fukushima.jp":true,"showa.fukushima.jp":true,"soma.fukushima.jp":true,"sukagawa.fukushima.jp":true,"taishin.fukushima.jp":true,"tamakawa.fukushima.jp":true,"tanagura.fukushima.jp":true,"tenei.fukushima.jp":true,"yabuki.fukushima.jp":true,"yamato.fukushima.jp":true,"yamatsuri.fukushima.jp":true,"yanaizu.fukushima.jp":true,"yugawa.fukushima.jp":true,"anpachi.gifu.jp":true,"ena.gifu.jp":true,"gifu.gifu.jp":true,"ginan.gifu.jp":true,"godo.gifu.jp":true,"gujo.gifu.jp":true,"hashima.gifu.jp":true,"hichiso.gifu.jp":true,"hida.gifu.jp":true,"higashishirakawa.gifu.jp":true,"ibigawa.gifu.jp":true,"ikeda.gifu.jp":true,"kakamigahara.gifu.jp":true,"kani.gifu.jp":true,"kasahara.gifu.jp":true,"kasamatsu.gifu.jp":true,"kawaue.gifu.jp":true,"kitagata.gifu.jp":true,"mino.gifu.jp":true,"minokamo.gifu.jp":true,"mitake.gifu.jp":true,"mizunami.gifu.jp":true,"motosu.gifu.jp":true,"nakatsugawa.gifu.jp":true,"ogaki.gifu.jp":true,"sakahogi.gifu.jp":true,"seki.gifu.jp":true,"sekigahara.gifu.jp":true,"shirakawa.gifu.jp":true,"tajimi.gifu.jp":true,"takayama.gifu.jp":true,"tarui.gifu.jp":true,"toki.gifu.jp":true,"tomika.gifu.jp":true,"wanouchi.gifu.jp":true,"yamagata.gifu.jp":true,"yaotsu.gifu.jp":true,"yoro.gifu.jp":true,"annaka.gunma.jp":true,"chiyoda.gunma.jp":true,"fujioka.gunma.jp":true,"higashiagatsuma.gunma.jp":true,"isesaki.gunma.jp":true,"itakura.gunma.jp":true,"kanna.gunma.jp":true,"kanra.gunma.jp":true,"katashina.gunma.jp":true,"kawaba.gunma.jp":true,"kiryu.gunma.jp":true,"kusatsu.gunma.jp":true,"maebashi.gunma.jp":true,"meiwa.gunma.jp":true,"midori.gunma.jp":true,"minakami.gunma.jp":true,"naganohara.gunma.jp":true,"nakanojo.gunma.jp":true,"nanmoku.gunma.jp":true,"numata.gunma.jp":true,"oizumi.gunma.jp":true,"ora.gunma.jp":true,"ota.gunma.jp":true,"shibukawa.gunma.jp":true,"shimonita.gunma.jp":true,"shinto.gunma.jp":true,"showa.gunma.jp":true,"takasaki.gunma.jp":true,"takayama.gunma.jp":true,"tamamura.gunma.jp":true,"tatebayashi.gunma.jp":true,"tomioka.gunma.jp":true,"tsukiyono.gunma.jp":true,"tsumagoi.gunma.jp":true,"ueno.gunma.jp":true,"yoshioka.gunma.jp":true,"asaminami.hiroshima.jp":true,"daiwa.hiroshima.jp":true,"etajima.hiroshima.jp":true,"fuchu.hiroshima.jp":true,"fukuyama.hiroshima.jp":true,"hatsukaichi.hiroshima.jp":true,"higashihiroshima.hiroshima.jp":true,"hongo.hiroshima.jp":true,"jinsekikogen.hiroshima.jp":true,"kaita.hiroshima.jp":true,"kui.hiroshima.jp":true,"kumano.hiroshima.jp":true,"kure.hiroshima.jp":true,"mihara.hiroshima.jp":true,"miyoshi.hiroshima.jp":true,"naka.hiroshima.jp":true,"onomichi.hiroshima.jp":true,"osakikamijima.hiroshima.jp":true,"otake.hiroshima.jp":true,"saka.hiroshima.jp":true,"sera.hiroshima.jp":true,"seranishi.hiroshima.jp":true,"shinichi.hiroshima.jp":true,"shobara.hiroshima.jp":true,"takehara.hiroshima.jp":true,"abashiri.hokkaido.jp":true,"abira.hokkaido.jp":true,"aibetsu.hokkaido.jp":true,"akabira.hokkaido.jp":true,"akkeshi.hokkaido.jp":true,"asahikawa.hokkaido.jp":true,"ashibetsu.hokkaido.jp":true,"ashoro.hokkaido.jp":true,"assabu.hokkaido.jp":true,"atsuma.hokkaido.jp":true,"bibai.hokkaido.jp":true,"biei.hokkaido.jp":true,"bifuka.hokkaido.jp":true,"bihoro.hokkaido.jp":true,"biratori.hokkaido.jp":true,"chippubetsu.hokkaido.jp":true,"chitose.hokkaido.jp":true,"date.hokkaido.jp":true,"ebetsu.hokkaido.jp":true,"embetsu.hokkaido.jp":true,"eniwa.hokkaido.jp":true,"erimo.hokkaido.jp":true,"esan.hokkaido.jp":true,"esashi.hokkaido.jp":true,"fukagawa.hokkaido.jp":true,"fukushima.hokkaido.jp":true,"furano.hokkaido.jp":true,"furubira.hokkaido.jp":true,"haboro.hokkaido.jp":true,"hakodate.hokkaido.jp":true,"hamatonbetsu.hokkaido.jp":true,"hidaka.hokkaido.jp":true,"higashikagura.hokkaido.jp":true,"higashikawa.hokkaido.jp":true,"hiroo.hokkaido.jp":true,"hokuryu.hokkaido.jp":true,"hokuto.hokkaido.jp":true,"honbetsu.hokkaido.jp":true,"horokanai.hokkaido.jp":true,"horonobe.hokkaido.jp":true,"ikeda.hokkaido.jp":true,"imakane.hokkaido.jp":true,"ishikari.hokkaido.jp":true,"iwamizawa.hokkaido.jp":true,"iwanai.hokkaido.jp":true,"kamifurano.hokkaido.jp":true,"kamikawa.hokkaido.jp":true,"kamishihoro.hokkaido.jp":true,"kamisunagawa.hokkaido.jp":true,"kamoenai.hokkaido.jp":true,"kayabe.hokkaido.jp":true,"kembuchi.hokkaido.jp":true,"kikonai.hokkaido.jp":true,"kimobetsu.hokkaido.jp":true,"kitahiroshima.hokkaido.jp":true,"kitami.hokkaido.jp":true,"kiyosato.hokkaido.jp":true,"koshimizu.hokkaido.jp":true,"kunneppu.hokkaido.jp":true,"kuriyama.hokkaido.jp":true,"kuromatsunai.hokkaido.jp":true,"kushiro.hokkaido.jp":true,"kutchan.hokkaido.jp":true,"kyowa.hokkaido.jp":true,"mashike.hokkaido.jp":true,"matsumae.hokkaido.jp":true,"mikasa.hokkaido.jp":true,"minamifurano.hokkaido.jp":true,"mombetsu.hokkaido.jp":true,"moseushi.hokkaido.jp":true,"mukawa.hokkaido.jp":true,"muroran.hokkaido.jp":true,"naie.hokkaido.jp":true,"nakagawa.hokkaido.jp":true,"nakasatsunai.hokkaido.jp":true,"nakatombetsu.hokkaido.jp":true,"nanae.hokkaido.jp":true,"nanporo.hokkaido.jp":true,"nayoro.hokkaido.jp":true,"nemuro.hokkaido.jp":true,"niikappu.hokkaido.jp":true,"niki.hokkaido.jp":true,"nishiokoppe.hokkaido.jp":true,"noboribetsu.hokkaido.jp":true,"numata.hokkaido.jp":true,"obihiro.hokkaido.jp":true,"obira.hokkaido.jp":true,"oketo.hokkaido.jp":true,"okoppe.hokkaido.jp":true,"otaru.hokkaido.jp":true,"otobe.hokkaido.jp":true,"otofuke.hokkaido.jp":true,"otoineppu.hokkaido.jp":true,"oumu.hokkaido.jp":true,"ozora.hokkaido.jp":true,"pippu.hokkaido.jp":true,"rankoshi.hokkaido.jp":true,"rebun.hokkaido.jp":true,"rikubetsu.hokkaido.jp":true,"rishiri.hokkaido.jp":true,"rishirifuji.hokkaido.jp":true,"saroma.hokkaido.jp":true,"sarufutsu.hokkaido.jp":true,"shakotan.hokkaido.jp":true,"shari.hokkaido.jp":true,"shibecha.hokkaido.jp":true,"shibetsu.hokkaido.jp":true,"shikabe.hokkaido.jp":true,"shikaoi.hokkaido.jp":true,"shimamaki.hokkaido.jp":true,"shimizu.hokkaido.jp":true,"shimokawa.hokkaido.jp":true,"shinshinotsu.hokkaido.jp":true,"shintoku.hokkaido.jp":true,"shiranuka.hokkaido.jp":true,"shiraoi.hokkaido.jp":true,"shiriuchi.hokkaido.jp":true,"sobetsu.hokkaido.jp":true,"sunagawa.hokkaido.jp":true,"taiki.hokkaido.jp":true,"takasu.hokkaido.jp":true,"takikawa.hokkaido.jp":true,"takinoue.hokkaido.jp":true,"teshikaga.hokkaido.jp":true,"tobetsu.hokkaido.jp":true,"tohma.hokkaido.jp":true,"tomakomai.hokkaido.jp":true,"tomari.hokkaido.jp":true,"toya.hokkaido.jp":true,"toyako.hokkaido.jp":true,"toyotomi.hokkaido.jp":true,"toyoura.hokkaido.jp":true,"tsubetsu.hokkaido.jp":true,"tsukigata.hokkaido.jp":true,"urakawa.hokkaido.jp":true,"urausu.hokkaido.jp":true,"uryu.hokkaido.jp":true,"utashinai.hokkaido.jp":true,"wakkanai.hokkaido.jp":true,"wassamu.hokkaido.jp":true,"yakumo.hokkaido.jp":true,"yoichi.hokkaido.jp":true,"aioi.hyogo.jp":true,"akashi.hyogo.jp":true,"ako.hyogo.jp":true,"amagasaki.hyogo.jp":true,"aogaki.hyogo.jp":true,"asago.hyogo.jp":true,"ashiya.hyogo.jp":true,"awaji.hyogo.jp":true,"fukusaki.hyogo.jp":true,"goshiki.hyogo.jp":true,"harima.hyogo.jp":true,"himeji.hyogo.jp":true,"ichikawa.hyogo.jp":true,"inagawa.hyogo.jp":true,"itami.hyogo.jp":true,"kakogawa.hyogo.jp":true,"kamigori.hyogo.jp":true,"kamikawa.hyogo.jp":true,"kasai.hyogo.jp":true,"kasuga.hyogo.jp":true,"kawanishi.hyogo.jp":true,"miki.hyogo.jp":true,"minamiawaji.hyogo.jp":true,"nishinomiya.hyogo.jp":true,"nishiwaki.hyogo.jp":true,"ono.hyogo.jp":true,"sanda.hyogo.jp":true,"sannan.hyogo.jp":true,"sasayama.hyogo.jp":true,"sayo.hyogo.jp":true,"shingu.hyogo.jp":true,"shinonsen.hyogo.jp":true,"shiso.hyogo.jp":true,"sumoto.hyogo.jp":true,"taishi.hyogo.jp":true,"taka.hyogo.jp":true,"takarazuka.hyogo.jp":true,"takasago.hyogo.jp":true,"takino.hyogo.jp":true,"tamba.hyogo.jp":true,"tatsuno.hyogo.jp":true,"toyooka.hyogo.jp":true,"yabu.hyogo.jp":true,"yashiro.hyogo.jp":true,"yoka.hyogo.jp":true,"yokawa.hyogo.jp":true,"ami.ibaraki.jp":true,"asahi.ibaraki.jp":true,"bando.ibaraki.jp":true,"chikusei.ibaraki.jp":true,"daigo.ibaraki.jp":true,"fujishiro.ibaraki.jp":true,"hitachi.ibaraki.jp":true,"hitachinaka.ibaraki.jp":true,"hitachiomiya.ibaraki.jp":true,"hitachiota.ibaraki.jp":true,"ibaraki.ibaraki.jp":true,"ina.ibaraki.jp":true,"inashiki.ibaraki.jp":true,"itako.ibaraki.jp":true,"iwama.ibaraki.jp":true,"joso.ibaraki.jp":true,"kamisu.ibaraki.jp":true,"kasama.ibaraki.jp":true,"kashima.ibaraki.jp":true,"kasumigaura.ibaraki.jp":true,"koga.ibaraki.jp":true,"miho.ibaraki.jp":true,"mito.ibaraki.jp":true,"moriya.ibaraki.jp":true,"naka.ibaraki.jp":true,"namegata.ibaraki.jp":true,"oarai.ibaraki.jp":true,"ogawa.ibaraki.jp":true,"omitama.ibaraki.jp":true,"ryugasaki.ibaraki.jp":true,"sakai.ibaraki.jp":true,"sakuragawa.ibaraki.jp":true,"shimodate.ibaraki.jp":true,"shimotsuma.ibaraki.jp":true,"shirosato.ibaraki.jp":true,"sowa.ibaraki.jp":true,"suifu.ibaraki.jp":true,"takahagi.ibaraki.jp":true,"tamatsukuri.ibaraki.jp":true,"tokai.ibaraki.jp":true,"tomobe.ibaraki.jp":true,"tone.ibaraki.jp":true,"toride.ibaraki.jp":true,"tsuchiura.ibaraki.jp":true,"tsukuba.ibaraki.jp":true,"uchihara.ibaraki.jp":true,"ushiku.ibaraki.jp":true,"yachiyo.ibaraki.jp":true,"yamagata.ibaraki.jp":true,"yawara.ibaraki.jp":true,"yuki.ibaraki.jp":true,"anamizu.ishikawa.jp":true,"hakui.ishikawa.jp":true,"hakusan.ishikawa.jp":true,"kaga.ishikawa.jp":true,"kahoku.ishikawa.jp":true,"kanazawa.ishikawa.jp":true,"kawakita.ishikawa.jp":true,"komatsu.ishikawa.jp":true,"nakanoto.ishikawa.jp":true,"nanao.ishikawa.jp":true,"nomi.ishikawa.jp":true,"nonoichi.ishikawa.jp":true,"noto.ishikawa.jp":true,"shika.ishikawa.jp":true,"suzu.ishikawa.jp":true,"tsubata.ishikawa.jp":true,"tsurugi.ishikawa.jp":true,"uchinada.ishikawa.jp":true,"wajima.ishikawa.jp":true,"fudai.iwate.jp":true,"fujisawa.iwate.jp":true,"hanamaki.iwate.jp":true,"hiraizumi.iwate.jp":true,"hirono.iwate.jp":true,"ichinohe.iwate.jp":true,"ichinoseki.iwate.jp":true,"iwaizumi.iwate.jp":true,"iwate.iwate.jp":true,"joboji.iwate.jp":true,"kamaishi.iwate.jp":true,"kanegasaki.iwate.jp":true,"karumai.iwate.jp":true,"kawai.iwate.jp":true,"kitakami.iwate.jp":true,"kuji.iwate.jp":true,"kunohe.iwate.jp":true,"kuzumaki.iwate.jp":true,"miyako.iwate.jp":true,"mizusawa.iwate.jp":true,"morioka.iwate.jp":true,"ninohe.iwate.jp":true,"noda.iwate.jp":true,"ofunato.iwate.jp":true,"oshu.iwate.jp":true,"otsuchi.iwate.jp":true,"rikuzentakata.iwate.jp":true,"shiwa.iwate.jp":true,"shizukuishi.iwate.jp":true,"sumita.iwate.jp":true,"tanohata.iwate.jp":true,"tono.iwate.jp":true,"yahaba.iwate.jp":true,"yamada.iwate.jp":true,"ayagawa.kagawa.jp":true,"higashikagawa.kagawa.jp":true,"kanonji.kagawa.jp":true,"kotohira.kagawa.jp":true,"manno.kagawa.jp":true,"marugame.kagawa.jp":true,"mitoyo.kagawa.jp":true,"naoshima.kagawa.jp":true,"sanuki.kagawa.jp":true,"tadotsu.kagawa.jp":true,"takamatsu.kagawa.jp":true,"tonosho.kagawa.jp":true,"uchinomi.kagawa.jp":true,"utazu.kagawa.jp":true,"zentsuji.kagawa.jp":true,"akune.kagoshima.jp":true,"amami.kagoshima.jp":true,"hioki.kagoshima.jp":true,"isa.kagoshima.jp":true,"isen.kagoshima.jp":true,"izumi.kagoshima.jp":true,"kagoshima.kagoshima.jp":true,"kanoya.kagoshima.jp":true,"kawanabe.kagoshima.jp":true,"kinko.kagoshima.jp":true,"kouyama.kagoshima.jp":true,"makurazaki.kagoshima.jp":true,"matsumoto.kagoshima.jp":true,"minamitane.kagoshima.jp":true,"nakatane.kagoshima.jp":true,"nishinoomote.kagoshima.jp":true,"satsumasendai.kagoshima.jp":true,"soo.kagoshima.jp":true,"tarumizu.kagoshima.jp":true,"yusui.kagoshima.jp":true,"aikawa.kanagawa.jp":true,"atsugi.kanagawa.jp":true,"ayase.kanagawa.jp":true,"chigasaki.kanagawa.jp":true,"ebina.kanagawa.jp":true,"fujisawa.kanagawa.jp":true,"hadano.kanagawa.jp":true,"hakone.kanagawa.jp":true,"hiratsuka.kanagawa.jp":true,"isehara.kanagawa.jp":true,"kaisei.kanagawa.jp":true,"kamakura.kanagawa.jp":true,"kiyokawa.kanagawa.jp":true,"matsuda.kanagawa.jp":true,"minamiashigara.kanagawa.jp":true,"miura.kanagawa.jp":true,"nakai.kanagawa.jp":true,"ninomiya.kanagawa.jp":true,"odawara.kanagawa.jp":true,"oi.kanagawa.jp":true,"oiso.kanagawa.jp":true,"sagamihara.kanagawa.jp":true,"samukawa.kanagawa.jp":true,"tsukui.kanagawa.jp":true,"yamakita.kanagawa.jp":true,"yamato.kanagawa.jp":true,"yokosuka.kanagawa.jp":true,"yugawara.kanagawa.jp":true,"zama.kanagawa.jp":true,"zushi.kanagawa.jp":true,"aki.kochi.jp":true,"geisei.kochi.jp":true,"hidaka.kochi.jp":true,"higashitsuno.kochi.jp":true,"ino.kochi.jp":true,"kagami.kochi.jp":true,"kami.kochi.jp":true,"kitagawa.kochi.jp":true,"kochi.kochi.jp":true,"mihara.kochi.jp":true,"motoyama.kochi.jp":true,"muroto.kochi.jp":true,"nahari.kochi.jp":true,"nakamura.kochi.jp":true,"nankoku.kochi.jp":true,"nishitosa.kochi.jp":true,"niyodogawa.kochi.jp":true,"ochi.kochi.jp":true,"okawa.kochi.jp":true,"otoyo.kochi.jp":true,"otsuki.kochi.jp":true,"sakawa.kochi.jp":true,"sukumo.kochi.jp":true,"susaki.kochi.jp":true,"tosa.kochi.jp":true,"tosashimizu.kochi.jp":true,"toyo.kochi.jp":true,"tsuno.kochi.jp":true,"umaji.kochi.jp":true,"yasuda.kochi.jp":true,"yusuhara.kochi.jp":true,"amakusa.kumamoto.jp":true,"arao.kumamoto.jp":true,"aso.kumamoto.jp":true,"choyo.kumamoto.jp":true,"gyokuto.kumamoto.jp":true,"hitoyoshi.kumamoto.jp":true,"kamiamakusa.kumamoto.jp":true,"kashima.kumamoto.jp":true,"kikuchi.kumamoto.jp":true,"kosa.kumamoto.jp":true,"kumamoto.kumamoto.jp":true,"mashiki.kumamoto.jp":true,"mifune.kumamoto.jp":true,"minamata.kumamoto.jp":true,"minamioguni.kumamoto.jp":true,"nagasu.kumamoto.jp":true,"nishihara.kumamoto.jp":true,"oguni.kumamoto.jp":true,"ozu.kumamoto.jp":true,"sumoto.kumamoto.jp":true,"takamori.kumamoto.jp":true,"uki.kumamoto.jp":true,"uto.kumamoto.jp":true,"yamaga.kumamoto.jp":true,"yamato.kumamoto.jp":true,"yatsushiro.kumamoto.jp":true,"ayabe.kyoto.jp":true,"fukuchiyama.kyoto.jp":true,"higashiyama.kyoto.jp":true,"ide.kyoto.jp":true,"ine.kyoto.jp":true,"joyo.kyoto.jp":true,"kameoka.kyoto.jp":true,"kamo.kyoto.jp":true,"kita.kyoto.jp":true,"kizu.kyoto.jp":true,"kumiyama.kyoto.jp":true,"kyotamba.kyoto.jp":true,"kyotanabe.kyoto.jp":true,"kyotango.kyoto.jp":true,"maizuru.kyoto.jp":true,"minami.kyoto.jp":true,"minamiyamashiro.kyoto.jp":true,"miyazu.kyoto.jp":true,"muko.kyoto.jp":true,"nagaokakyo.kyoto.jp":true,"nakagyo.kyoto.jp":true,"nantan.kyoto.jp":true,"oyamazaki.kyoto.jp":true,"sakyo.kyoto.jp":true,"seika.kyoto.jp":true,"tanabe.kyoto.jp":true,"uji.kyoto.jp":true,"ujitawara.kyoto.jp":true,"wazuka.kyoto.jp":true,"yamashina.kyoto.jp":true,"yawata.kyoto.jp":true,"asahi.mie.jp":true,"inabe.mie.jp":true,"ise.mie.jp":true,"kameyama.mie.jp":true,"kawagoe.mie.jp":true,"kiho.mie.jp":true,"kisosaki.mie.jp":true,"kiwa.mie.jp":true,"komono.mie.jp":true,"kumano.mie.jp":true,"kuwana.mie.jp":true,"matsusaka.mie.jp":true,"meiwa.mie.jp":true,"mihama.mie.jp":true,"minamiise.mie.jp":true,"misugi.mie.jp":true,"miyama.mie.jp":true,"nabari.mie.jp":true,"shima.mie.jp":true,"suzuka.mie.jp":true,"tado.mie.jp":true,"taiki.mie.jp":true,"taki.mie.jp":true,"tamaki.mie.jp":true,"toba.mie.jp":true,"tsu.mie.jp":true,"udono.mie.jp":true,"ureshino.mie.jp":true,"watarai.mie.jp":true,"yokkaichi.mie.jp":true,"furukawa.miyagi.jp":true,"higashimatsushima.miyagi.jp":true,"ishinomaki.miyagi.jp":true,"iwanuma.miyagi.jp":true,"kakuda.miyagi.jp":true,"kami.miyagi.jp":true,"kawasaki.miyagi.jp":true,"kesennuma.miyagi.jp":true,"marumori.miyagi.jp":true,"matsushima.miyagi.jp":true,"minamisanriku.miyagi.jp":true,"misato.miyagi.jp":true,"murata.miyagi.jp":true,"natori.miyagi.jp":true,"ogawara.miyagi.jp":true,"ohira.miyagi.jp":true,"onagawa.miyagi.jp":true,"osaki.miyagi.jp":true,"rifu.miyagi.jp":true,"semine.miyagi.jp":true,"shibata.miyagi.jp":true,"shichikashuku.miyagi.jp":true,"shikama.miyagi.jp":true,"shiogama.miyagi.jp":true,"shiroishi.miyagi.jp":true,"tagajo.miyagi.jp":true,"taiwa.miyagi.jp":true,"tome.miyagi.jp":true,"tomiya.miyagi.jp":true,"wakuya.miyagi.jp":true,"watari.miyagi.jp":true,"yamamoto.miyagi.jp":true,"zao.miyagi.jp":true,"aya.miyazaki.jp":true,"ebino.miyazaki.jp":true,"gokase.miyazaki.jp":true,"hyuga.miyazaki.jp":true,"kadogawa.miyazaki.jp":true,"kawaminami.miyazaki.jp":true,"kijo.miyazaki.jp":true,"kitagawa.miyazaki.jp":true,"kitakata.miyazaki.jp":true,"kitaura.miyazaki.jp":true,"kobayashi.miyazaki.jp":true,"kunitomi.miyazaki.jp":true,"kushima.miyazaki.jp":true,"mimata.miyazaki.jp":true,"miyakonojo.miyazaki.jp":true,"miyazaki.miyazaki.jp":true,"morotsuka.miyazaki.jp":true,"nichinan.miyazaki.jp":true,"nishimera.miyazaki.jp":true,"nobeoka.miyazaki.jp":true,"saito.miyazaki.jp":true,"shiiba.miyazaki.jp":true,"shintomi.miyazaki.jp":true,"takaharu.miyazaki.jp":true,"takanabe.miyazaki.jp":true,"takazaki.miyazaki.jp":true,"tsuno.miyazaki.jp":true,"achi.nagano.jp":true,"agematsu.nagano.jp":true,"anan.nagano.jp":true,"aoki.nagano.jp":true,"asahi.nagano.jp":true,"azumino.nagano.jp":true,"chikuhoku.nagano.jp":true,"chikuma.nagano.jp":true,"chino.nagano.jp":true,"fujimi.nagano.jp":true,"hakuba.nagano.jp":true,"hara.nagano.jp":true,"hiraya.nagano.jp":true,"iida.nagano.jp":true,"iijima.nagano.jp":true,"iiyama.nagano.jp":true,"iizuna.nagano.jp":true,"ikeda.nagano.jp":true,"ikusaka.nagano.jp":true,"ina.nagano.jp":true,"karuizawa.nagano.jp":true,"kawakami.nagano.jp":true,"kiso.nagano.jp":true,"kisofukushima.nagano.jp":true,"kitaaiki.nagano.jp":true,"komagane.nagano.jp":true,"komoro.nagano.jp":true,"matsukawa.nagano.jp":true,"matsumoto.nagano.jp":true,"miasa.nagano.jp":true,"minamiaiki.nagano.jp":true,"minamimaki.nagano.jp":true,"minamiminowa.nagano.jp":true,"minowa.nagano.jp":true,"miyada.nagano.jp":true,"miyota.nagano.jp":true,"mochizuki.nagano.jp":true,"nagano.nagano.jp":true,"nagawa.nagano.jp":true,"nagiso.nagano.jp":true,"nakagawa.nagano.jp":true,"nakano.nagano.jp":true,"nozawaonsen.nagano.jp":true,"obuse.nagano.jp":true,"ogawa.nagano.jp":true,"okaya.nagano.jp":true,"omachi.nagano.jp":true,"omi.nagano.jp":true,"ookuwa.nagano.jp":true,"ooshika.nagano.jp":true,"otaki.nagano.jp":true,"otari.nagano.jp":true,"sakae.nagano.jp":true,"sakaki.nagano.jp":true,"saku.nagano.jp":true,"sakuho.nagano.jp":true,"shimosuwa.nagano.jp":true,"shinanomachi.nagano.jp":true,"shiojiri.nagano.jp":true,"suwa.nagano.jp":true,"suzaka.nagano.jp":true,"takagi.nagano.jp":true,"takamori.nagano.jp":true,"takayama.nagano.jp":true,"tateshina.nagano.jp":true,"tatsuno.nagano.jp":true,"togakushi.nagano.jp":true,"togura.nagano.jp":true,"tomi.nagano.jp":true,"ueda.nagano.jp":true,"wada.nagano.jp":true,"yamagata.nagano.jp":true,"yamanouchi.nagano.jp":true,"yasaka.nagano.jp":true,"yasuoka.nagano.jp":true,"chijiwa.nagasaki.jp":true,"futsu.nagasaki.jp":true,"goto.nagasaki.jp":true,"hasami.nagasaki.jp":true,"hirado.nagasaki.jp":true,"iki.nagasaki.jp":true,"isahaya.nagasaki.jp":true,"kawatana.nagasaki.jp":true,"kuchinotsu.nagasaki.jp":true,"matsuura.nagasaki.jp":true,"nagasaki.nagasaki.jp":true,"obama.nagasaki.jp":true,"omura.nagasaki.jp":true,"oseto.nagasaki.jp":true,"saikai.nagasaki.jp":true,"sasebo.nagasaki.jp":true,"seihi.nagasaki.jp":true,"shimabara.nagasaki.jp":true,"shinkamigoto.nagasaki.jp":true,"togitsu.nagasaki.jp":true,"tsushima.nagasaki.jp":true,"unzen.nagasaki.jp":true,"ando.nara.jp":true,"gose.nara.jp":true,"heguri.nara.jp":true,"higashiyoshino.nara.jp":true,"ikaruga.nara.jp":true,"ikoma.nara.jp":true,"kamikitayama.nara.jp":true,"kanmaki.nara.jp":true,"kashiba.nara.jp":true,"kashihara.nara.jp":true,"katsuragi.nara.jp":true,"kawai.nara.jp":true,"kawakami.nara.jp":true,"kawanishi.nara.jp":true,"koryo.nara.jp":true,"kurotaki.nara.jp":true,"mitsue.nara.jp":true,"miyake.nara.jp":true,"nara.nara.jp":true,"nosegawa.nara.jp":true,"oji.nara.jp":true,"ouda.nara.jp":true,"oyodo.nara.jp":true,"sakurai.nara.jp":true,"sango.nara.jp":true,"shimoichi.nara.jp":true,"shimokitayama.nara.jp":true,"shinjo.nara.jp":true,"soni.nara.jp":true,"takatori.nara.jp":true,"tawaramoto.nara.jp":true,"tenkawa.nara.jp":true,"tenri.nara.jp":true,"uda.nara.jp":true,"yamatokoriyama.nara.jp":true,"yamatotakada.nara.jp":true,"yamazoe.nara.jp":true,"yoshino.nara.jp":true,"aga.niigata.jp":true,"agano.niigata.jp":true,"gosen.niigata.jp":true,"itoigawa.niigata.jp":true,"izumozaki.niigata.jp":true,"joetsu.niigata.jp":true,"kamo.niigata.jp":true,"kariwa.niigata.jp":true,"kashiwazaki.niigata.jp":true,"minamiuonuma.niigata.jp":true,"mitsuke.niigata.jp":true,"muika.niigata.jp":true,"murakami.niigata.jp":true,"myoko.niigata.jp":true,"nagaoka.niigata.jp":true,"niigata.niigata.jp":true,"ojiya.niigata.jp":true,"omi.niigata.jp":true,"sado.niigata.jp":true,"sanjo.niigata.jp":true,"seiro.niigata.jp":true,"seirou.niigata.jp":true,"sekikawa.niigata.jp":true,"shibata.niigata.jp":true,"tagami.niigata.jp":true,"tainai.niigata.jp":true,"tochio.niigata.jp":true,"tokamachi.niigata.jp":true,"tsubame.niigata.jp":true,"tsunan.niigata.jp":true,"uonuma.niigata.jp":true,"yahiko.niigata.jp":true,"yoita.niigata.jp":true,"yuzawa.niigata.jp":true,"beppu.oita.jp":true,"bungoono.oita.jp":true,"bungotakada.oita.jp":true,"hasama.oita.jp":true,"hiji.oita.jp":true,"himeshima.oita.jp":true,"hita.oita.jp":true,"kamitsue.oita.jp":true,"kokonoe.oita.jp":true,"kuju.oita.jp":true,"kunisaki.oita.jp":true,"kusu.oita.jp":true,"oita.oita.jp":true,"saiki.oita.jp":true,"taketa.oita.jp":true,"tsukumi.oita.jp":true,"usa.oita.jp":true,"usuki.oita.jp":true,"yufu.oita.jp":true,"akaiwa.okayama.jp":true,"asakuchi.okayama.jp":true,"bizen.okayama.jp":true,"hayashima.okayama.jp":true,"ibara.okayama.jp":true,"kagamino.okayama.jp":true,"kasaoka.okayama.jp":true,"kibichuo.okayama.jp":true,"kumenan.okayama.jp":true,"kurashiki.okayama.jp":true,"maniwa.okayama.jp":true,"misaki.okayama.jp":true,"nagi.okayama.jp":true,"niimi.okayama.jp":true,"nishiawakura.okayama.jp":true,"okayama.okayama.jp":true,"satosho.okayama.jp":true,"setouchi.okayama.jp":true,"shinjo.okayama.jp":true,"shoo.okayama.jp":true,"soja.okayama.jp":true,"takahashi.okayama.jp":true,"tamano.okayama.jp":true,"tsuyama.okayama.jp":true,"wake.okayama.jp":true,"yakage.okayama.jp":true,"aguni.okinawa.jp":true,"ginowan.okinawa.jp":true,"ginoza.okinawa.jp":true,"gushikami.okinawa.jp":true,"haebaru.okinawa.jp":true,"higashi.okinawa.jp":true,"hirara.okinawa.jp":true,"iheya.okinawa.jp":true,"ishigaki.okinawa.jp":true,"ishikawa.okinawa.jp":true,"itoman.okinawa.jp":true,"izena.okinawa.jp":true,"kadena.okinawa.jp":true,"kin.okinawa.jp":true,"kitadaito.okinawa.jp":true,"kitanakagusuku.okinawa.jp":true,"kumejima.okinawa.jp":true,"kunigami.okinawa.jp":true,"minamidaito.okinawa.jp":true,"motobu.okinawa.jp":true,"nago.okinawa.jp":true,"naha.okinawa.jp":true,"nakagusuku.okinawa.jp":true,"nakijin.okinawa.jp":true,"nanjo.okinawa.jp":true,"nishihara.okinawa.jp":true,"ogimi.okinawa.jp":true,"okinawa.okinawa.jp":true,"onna.okinawa.jp":true,"shimoji.okinawa.jp":true,"taketomi.okinawa.jp":true,"tarama.okinawa.jp":true,"tokashiki.okinawa.jp":true,"tomigusuku.okinawa.jp":true,"tonaki.okinawa.jp":true,"urasoe.okinawa.jp":true,"uruma.okinawa.jp":true,"yaese.okinawa.jp":true,"yomitan.okinawa.jp":true,"yonabaru.okinawa.jp":true,"yonaguni.okinawa.jp":true,"zamami.okinawa.jp":true,"abeno.osaka.jp":true,"chihayaakasaka.osaka.jp":true,"chuo.osaka.jp":true,"daito.osaka.jp":true,"fujiidera.osaka.jp":true,"habikino.osaka.jp":true,"hannan.osaka.jp":true,"higashiosaka.osaka.jp":true,"higashisumiyoshi.osaka.jp":true,"higashiyodogawa.osaka.jp":true,"hirakata.osaka.jp":true,"ibaraki.osaka.jp":true,"ikeda.osaka.jp":true,"izumi.osaka.jp":true,"izumiotsu.osaka.jp":true,"izumisano.osaka.jp":true,"kadoma.osaka.jp":true,"kaizuka.osaka.jp":true,"kanan.osaka.jp":true,"kashiwara.osaka.jp":true,"katano.osaka.jp":true,"kawachinagano.osaka.jp":true,"kishiwada.osaka.jp":true,"kita.osaka.jp":true,"kumatori.osaka.jp":true,"matsubara.osaka.jp":true,"minato.osaka.jp":true,"minoh.osaka.jp":true,"misaki.osaka.jp":true,"moriguchi.osaka.jp":true,"neyagawa.osaka.jp":true,"nishi.osaka.jp":true,"nose.osaka.jp":true,"osakasayama.osaka.jp":true,"sakai.osaka.jp":true,"sayama.osaka.jp":true,"sennan.osaka.jp":true,"settsu.osaka.jp":true,"shijonawate.osaka.jp":true,"shimamoto.osaka.jp":true,"suita.osaka.jp":true,"tadaoka.osaka.jp":true,"taishi.osaka.jp":true,"tajiri.osaka.jp":true,"takaishi.osaka.jp":true,"takatsuki.osaka.jp":true,"tondabayashi.osaka.jp":true,"toyonaka.osaka.jp":true,"toyono.osaka.jp":true,"yao.osaka.jp":true,"ariake.saga.jp":true,"arita.saga.jp":true,"fukudomi.saga.jp":true,"genkai.saga.jp":true,"hamatama.saga.jp":true,"hizen.saga.jp":true,"imari.saga.jp":true,"kamimine.saga.jp":true,"kanzaki.saga.jp":true,"karatsu.saga.jp":true,"kashima.saga.jp":true,"kitagata.saga.jp":true,"kitahata.saga.jp":true,"kiyama.saga.jp":true,"kouhoku.saga.jp":true,"kyuragi.saga.jp":true,"nishiarita.saga.jp":true,"ogi.saga.jp":true,"omachi.saga.jp":true,"ouchi.saga.jp":true,"saga.saga.jp":true,"shiroishi.saga.jp":true,"taku.saga.jp":true,"tara.saga.jp":true,"tosu.saga.jp":true,"yoshinogari.saga.jp":true,"arakawa.saitama.jp":true,"asaka.saitama.jp":true,"chichibu.saitama.jp":true,"fujimi.saitama.jp":true,"fujimino.saitama.jp":true,"fukaya.saitama.jp":true,"hanno.saitama.jp":true,"hanyu.saitama.jp":true,"hasuda.saitama.jp":true,"hatogaya.saitama.jp":true,"hatoyama.saitama.jp":true,"hidaka.saitama.jp":true,"higashichichibu.saitama.jp":true,"higashimatsuyama.saitama.jp":true,"honjo.saitama.jp":true,"ina.saitama.jp":true,"iruma.saitama.jp":true,"iwatsuki.saitama.jp":true,"kamiizumi.saitama.jp":true,"kamikawa.saitama.jp":true,"kamisato.saitama.jp":true,"kasukabe.saitama.jp":true,"kawagoe.saitama.jp":true,"kawaguchi.saitama.jp":true,"kawajima.saitama.jp":true,"kazo.saitama.jp":true,"kitamoto.saitama.jp":true,"koshigaya.saitama.jp":true,"kounosu.saitama.jp":true,"kuki.saitama.jp":true,"kumagaya.saitama.jp":true,"matsubushi.saitama.jp":true,"minano.saitama.jp":true,"misato.saitama.jp":true,"miyashiro.saitama.jp":true,"miyoshi.saitama.jp":true,"moroyama.saitama.jp":true,"nagatoro.saitama.jp":true,"namegawa.saitama.jp":true,"niiza.saitama.jp":true,"ogano.saitama.jp":true,"ogawa.saitama.jp":true,"ogose.saitama.jp":true,"okegawa.saitama.jp":true,"omiya.saitama.jp":true,"otaki.saitama.jp":true,"ranzan.saitama.jp":true,"ryokami.saitama.jp":true,"saitama.saitama.jp":true,"sakado.saitama.jp":true,"satte.saitama.jp":true,"sayama.saitama.jp":true,"shiki.saitama.jp":true,"shiraoka.saitama.jp":true,"soka.saitama.jp":true,"sugito.saitama.jp":true,"toda.saitama.jp":true,"tokigawa.saitama.jp":true,"tokorozawa.saitama.jp":true,"tsurugashima.saitama.jp":true,"urawa.saitama.jp":true,"warabi.saitama.jp":true,"yashio.saitama.jp":true,"yokoze.saitama.jp":true,"yono.saitama.jp":true,"yorii.saitama.jp":true,"yoshida.saitama.jp":true,"yoshikawa.saitama.jp":true,"yoshimi.saitama.jp":true,"aisho.shiga.jp":true,"gamo.shiga.jp":true,"higashiomi.shiga.jp":true,"hikone.shiga.jp":true,"koka.shiga.jp":true,"konan.shiga.jp":true,"kosei.shiga.jp":true,"koto.shiga.jp":true,"kusatsu.shiga.jp":true,"maibara.shiga.jp":true,"moriyama.shiga.jp":true,"nagahama.shiga.jp":true,"nishiazai.shiga.jp":true,"notogawa.shiga.jp":true,"omihachiman.shiga.jp":true,"otsu.shiga.jp":true,"ritto.shiga.jp":true,"ryuoh.shiga.jp":true,"takashima.shiga.jp":true,"takatsuki.shiga.jp":true,"torahime.shiga.jp":true,"toyosato.shiga.jp":true,"yasu.shiga.jp":true,"akagi.shimane.jp":true,"ama.shimane.jp":true,"gotsu.shimane.jp":true,"hamada.shimane.jp":true,"higashiizumo.shimane.jp":true,"hikawa.shimane.jp":true,"hikimi.shimane.jp":true,"izumo.shimane.jp":true,"kakinoki.shimane.jp":true,"masuda.shimane.jp":true,"matsue.shimane.jp":true,"misato.shimane.jp":true,"nishinoshima.shimane.jp":true,"ohda.shimane.jp":true,"okinoshima.shimane.jp":true,"okuizumo.shimane.jp":true,"shimane.shimane.jp":true,"tamayu.shimane.jp":true,"tsuwano.shimane.jp":true,"unnan.shimane.jp":true,"yakumo.shimane.jp":true,"yasugi.shimane.jp":true,"yatsuka.shimane.jp":true,"arai.shizuoka.jp":true,"atami.shizuoka.jp":true,"fuji.shizuoka.jp":true,"fujieda.shizuoka.jp":true,"fujikawa.shizuoka.jp":true,"fujinomiya.shizuoka.jp":true,"fukuroi.shizuoka.jp":true,"gotemba.shizuoka.jp":true,"haibara.shizuoka.jp":true,"hamamatsu.shizuoka.jp":true,"higashiizu.shizuoka.jp":true,"ito.shizuoka.jp":true,"iwata.shizuoka.jp":true,"izu.shizuoka.jp":true,"izunokuni.shizuoka.jp":true,"kakegawa.shizuoka.jp":true,"kannami.shizuoka.jp":true,"kawanehon.shizuoka.jp":true,"kawazu.shizuoka.jp":true,"kikugawa.shizuoka.jp":true,"kosai.shizuoka.jp":true,"makinohara.shizuoka.jp":true,"matsuzaki.shizuoka.jp":true,"minamiizu.shizuoka.jp":true,"mishima.shizuoka.jp":true,"morimachi.shizuoka.jp":true,"nishiizu.shizuoka.jp":true,"numazu.shizuoka.jp":true,"omaezaki.shizuoka.jp":true,"shimada.shizuoka.jp":true,"shimizu.shizuoka.jp":true,"shimoda.shizuoka.jp":true,"shizuoka.shizuoka.jp":true,"susono.shizuoka.jp":true,"yaizu.shizuoka.jp":true,"yoshida.shizuoka.jp":true,"ashikaga.tochigi.jp":true,"bato.tochigi.jp":true,"haga.tochigi.jp":true,"ichikai.tochigi.jp":true,"iwafune.tochigi.jp":true,"kaminokawa.tochigi.jp":true,"kanuma.tochigi.jp":true,"karasuyama.tochigi.jp":true,"kuroiso.tochigi.jp":true,"mashiko.tochigi.jp":true,"mibu.tochigi.jp":true,"moka.tochigi.jp":true,"motegi.tochigi.jp":true,"nasu.tochigi.jp":true,"nasushiobara.tochigi.jp":true,"nikko.tochigi.jp":true,"nishikata.tochigi.jp":true,"nogi.tochigi.jp":true,"ohira.tochigi.jp":true,"ohtawara.tochigi.jp":true,"oyama.tochigi.jp":true,"sakura.tochigi.jp":true,"sano.tochigi.jp":true,"shimotsuke.tochigi.jp":true,"shioya.tochigi.jp":true,"takanezawa.tochigi.jp":true,"tochigi.tochigi.jp":true,"tsuga.tochigi.jp":true,"ujiie.tochigi.jp":true,"utsunomiya.tochigi.jp":true,"yaita.tochigi.jp":true,"aizumi.tokushima.jp":true,"anan.tokushima.jp":true,"ichiba.tokushima.jp":true,"itano.tokushima.jp":true,"kainan.tokushima.jp":true,"komatsushima.tokushima.jp":true,"matsushige.tokushima.jp":true,"mima.tokushima.jp":true,"minami.tokushima.jp":true,"miyoshi.tokushima.jp":true,"mugi.tokushima.jp":true,"nakagawa.tokushima.jp":true,"naruto.tokushima.jp":true,"sanagochi.tokushima.jp":true,"shishikui.tokushima.jp":true,"tokushima.tokushima.jp":true,"wajiki.tokushima.jp":true,"adachi.tokyo.jp":true,"akiruno.tokyo.jp":true,"akishima.tokyo.jp":true,"aogashima.tokyo.jp":true,"arakawa.tokyo.jp":true,"bunkyo.tokyo.jp":true,"chiyoda.tokyo.jp":true,"chofu.tokyo.jp":true,"chuo.tokyo.jp":true,"edogawa.tokyo.jp":true,"fuchu.tokyo.jp":true,"fussa.tokyo.jp":true,"hachijo.tokyo.jp":true,"hachioji.tokyo.jp":true,"hamura.tokyo.jp":true,"higashikurume.tokyo.jp":true,"higashimurayama.tokyo.jp":true,"higashiyamato.tokyo.jp":true,"hino.tokyo.jp":true,"hinode.tokyo.jp":true,"hinohara.tokyo.jp":true,"inagi.tokyo.jp":true,"itabashi.tokyo.jp":true,"katsushika.tokyo.jp":true,"kita.tokyo.jp":true,"kiyose.tokyo.jp":true,"kodaira.tokyo.jp":true,"koganei.tokyo.jp":true,"kokubunji.tokyo.jp":true,"komae.tokyo.jp":true,"koto.tokyo.jp":true,"kouzushima.tokyo.jp":true,"kunitachi.tokyo.jp":true,"machida.tokyo.jp":true,"meguro.tokyo.jp":true,"minato.tokyo.jp":true,"mitaka.tokyo.jp":true,"mizuho.tokyo.jp":true,"musashimurayama.tokyo.jp":true,"musashino.tokyo.jp":true,"nakano.tokyo.jp":true,"nerima.tokyo.jp":true,"ogasawara.tokyo.jp":true,"okutama.tokyo.jp":true,"ome.tokyo.jp":true,"oshima.tokyo.jp":true,"ota.tokyo.jp":true,"setagaya.tokyo.jp":true,"shibuya.tokyo.jp":true,"shinagawa.tokyo.jp":true,"shinjuku.tokyo.jp":true,"suginami.tokyo.jp":true,"sumida.tokyo.jp":true,"tachikawa.tokyo.jp":true,"taito.tokyo.jp":true,"tama.tokyo.jp":true,"toshima.tokyo.jp":true,"chizu.tottori.jp":true,"hino.tottori.jp":true,"kawahara.tottori.jp":true,"koge.tottori.jp":true,"kotoura.tottori.jp":true,"misasa.tottori.jp":true,"nanbu.tottori.jp":true,"nichinan.tottori.jp":true,"sakaiminato.tottori.jp":true,"tottori.tottori.jp":true,"wakasa.tottori.jp":true,"yazu.tottori.jp":true,"yonago.tottori.jp":true,"asahi.toyama.jp":true,"fuchu.toyama.jp":true,"fukumitsu.toyama.jp":true,"funahashi.toyama.jp":true,"himi.toyama.jp":true,"imizu.toyama.jp":true,"inami.toyama.jp":true,"johana.toyama.jp":true,"kamiichi.toyama.jp":true,"kurobe.toyama.jp":true,"nakaniikawa.toyama.jp":true,"namerikawa.toyama.jp":true,"nanto.toyama.jp":true,"nyuzen.toyama.jp":true,"oyabe.toyama.jp":true,"taira.toyama.jp":true,"takaoka.toyama.jp":true,"tateyama.toyama.jp":true,"toga.toyama.jp":true,"tonami.toyama.jp":true,"toyama.toyama.jp":true,"unazuki.toyama.jp":true,"uozu.toyama.jp":true,"yamada.toyama.jp":true,"arida.wakayama.jp":true,"aridagawa.wakayama.jp":true,"gobo.wakayama.jp":true,"hashimoto.wakayama.jp":true,"hidaka.wakayama.jp":true,"hirogawa.wakayama.jp":true,"inami.wakayama.jp":true,"iwade.wakayama.jp":true,"kainan.wakayama.jp":true,"kamitonda.wakayama.jp":true,"katsuragi.wakayama.jp":true,"kimino.wakayama.jp":true,"kinokawa.wakayama.jp":true,"kitayama.wakayama.jp":true,"koya.wakayama.jp":true,"koza.wakayama.jp":true,"kozagawa.wakayama.jp":true,"kudoyama.wakayama.jp":true,"kushimoto.wakayama.jp":true,"mihama.wakayama.jp":true,"misato.wakayama.jp":true,"nachikatsuura.wakayama.jp":true,"shingu.wakayama.jp":true,"shirahama.wakayama.jp":true,"taiji.wakayama.jp":true,"tanabe.wakayama.jp":true,"wakayama.wakayama.jp":true,"yuasa.wakayama.jp":true,"yura.wakayama.jp":true,"asahi.yamagata.jp":true,"funagata.yamagata.jp":true,"higashine.yamagata.jp":true,"iide.yamagata.jp":true,"kahoku.yamagata.jp":true,"kaminoyama.yamagata.jp":true,"kaneyama.yamagata.jp":true,"kawanishi.yamagata.jp":true,"mamurogawa.yamagata.jp":true,"mikawa.yamagata.jp":true,"murayama.yamagata.jp":true,"nagai.yamagata.jp":true,"nakayama.yamagata.jp":true,"nanyo.yamagata.jp":true,"nishikawa.yamagata.jp":true,"obanazawa.yamagata.jp":true,"oe.yamagata.jp":true,"oguni.yamagata.jp":true,"ohkura.yamagata.jp":true,"oishida.yamagata.jp":true,"sagae.yamagata.jp":true,"sakata.yamagata.jp":true,"sakegawa.yamagata.jp":true,"shinjo.yamagata.jp":true,"shirataka.yamagata.jp":true,"shonai.yamagata.jp":true,"takahata.yamagata.jp":true,"tendo.yamagata.jp":true,"tozawa.yamagata.jp":true,"tsuruoka.yamagata.jp":true,"yamagata.yamagata.jp":true,"yamanobe.yamagata.jp":true,"yonezawa.yamagata.jp":true,"yuza.yamagata.jp":true,"abu.yamaguchi.jp":true,"hagi.yamaguchi.jp":true,"hikari.yamaguchi.jp":true,"hofu.yamaguchi.jp":true,"iwakuni.yamaguchi.jp":true,"kudamatsu.yamaguchi.jp":true,"mitou.yamaguchi.jp":true,"nagato.yamaguchi.jp":true,"oshima.yamaguchi.jp":true,"shimonoseki.yamaguchi.jp":true,"shunan.yamaguchi.jp":true,"tabuse.yamaguchi.jp":true,"tokuyama.yamaguchi.jp":true,"toyota.yamaguchi.jp":true,"ube.yamaguchi.jp":true,"yuu.yamaguchi.jp":true,"chuo.yamanashi.jp":true,"doshi.yamanashi.jp":true,"fuefuki.yamanashi.jp":true,"fujikawa.yamanashi.jp":true,"fujikawaguchiko.yamanashi.jp":true,"fujiyoshida.yamanashi.jp":true,"hayakawa.yamanashi.jp":true,"hokuto.yamanashi.jp":true,"ichikawamisato.yamanashi.jp":true,"kai.yamanashi.jp":true,"kofu.yamanashi.jp":true,"koshu.yamanashi.jp":true,"kosuge.yamanashi.jp":true,"minami-alps.yamanashi.jp":true,"minobu.yamanashi.jp":true,"nakamichi.yamanashi.jp":true,"nanbu.yamanashi.jp":true,"narusawa.yamanashi.jp":true,"nirasaki.yamanashi.jp":true,"nishikatsura.yamanashi.jp":true,"oshino.yamanashi.jp":true,"otsuki.yamanashi.jp":true,"showa.yamanashi.jp":true,"tabayama.yamanashi.jp":true,"tsuru.yamanashi.jp":true,"uenohara.yamanashi.jp":true,"yamanakako.yamanashi.jp":true,"yamanashi.yamanashi.jp":true,"*.ke":true,"kg":true,"org.kg":true,"net.kg":true,"com.kg":true,"edu.kg":true,"gov.kg":true,"mil.kg":true,"*.kh":true,"ki":true,"edu.ki":true,"biz.ki":true,"net.ki":true,"org.ki":true,"gov.ki":true,"info.ki":true,"com.ki":true,"km":true,"org.km":true,"nom.km":true,"gov.km":true,"prd.km":true,"tm.km":true,"edu.km":true,"mil.km":true,"ass.km":true,"com.km":true,"coop.km":true,"asso.km":true,"presse.km":true,"medecin.km":true,"notaires.km":true,"pharmaciens.km":true,"veterinaire.km":true,"gouv.km":true,"kn":true,"net.kn":true,"org.kn":true,"edu.kn":true,"gov.kn":true,"kp":true,"com.kp":true,"edu.kp":true,"gov.kp":true,"org.kp":true,"rep.kp":true,"tra.kp":true,"kr":true,"ac.kr":true,"co.kr":true,"es.kr":true,"go.kr":true,"hs.kr":true,"kg.kr":true,"mil.kr":true,"ms.kr":true,"ne.kr":true,"or.kr":true,"pe.kr":true,"re.kr":true,"sc.kr":true,"busan.kr":true,"chungbuk.kr":true,"chungnam.kr":true,"daegu.kr":true,"daejeon.kr":true,"gangwon.kr":true,"gwangju.kr":true,"gyeongbuk.kr":true,"gyeonggi.kr":true,"gyeongnam.kr":true,"incheon.kr":true,"jeju.kr":true,"jeonbuk.kr":true,"jeonnam.kr":true,"seoul.kr":true,"ulsan.kr":true,"*.kw":true,"ky":true,"edu.ky":true,"gov.ky":true,"com.ky":true,"org.ky":true,"net.ky":true,"kz":true,"org.kz":true,"edu.kz":true,"net.kz":true,"gov.kz":true,"mil.kz":true,"com.kz":true,"la":true,"int.la":true,"net.la":true,"info.la":true,"edu.la":true,"gov.la":true,"per.la":true,"com.la":true,"org.la":true,"lb":true,"com.lb":true,"edu.lb":true,"gov.lb":true,"net.lb":true,"org.lb":true,"lc":true,"com.lc":true,"net.lc":true,"co.lc":true,"org.lc":true,"edu.lc":true,"gov.lc":true,"li":true,"lk":true,"gov.lk":true,"sch.lk":true,"net.lk":true,"int.lk":true,"com.lk":true,"org.lk":true,"edu.lk":true,"ngo.lk":true,"soc.lk":true,"web.lk":true,"ltd.lk":true,"assn.lk":true,"grp.lk":true,"hotel.lk":true,"ac.lk":true,"lr":true,"com.lr":true,"edu.lr":true,"gov.lr":true,"org.lr":true,"net.lr":true,"ls":true,"co.ls":true,"org.ls":true,"lt":true,"gov.lt":true,"lu":true,"lv":true,"com.lv":true,"edu.lv":true,"gov.lv":true,"org.lv":true,"mil.lv":true,"id.lv":true,"net.lv":true,"asn.lv":true,"conf.lv":true,"ly":true,"com.ly":true,"net.ly":true,"gov.ly":true,"plc.ly":true,"edu.ly":true,"sch.ly":true,"med.ly":true,"org.ly":true,"id.ly":true,"ma":true,"co.ma":true,"net.ma":true,"gov.ma":true,"org.ma":true,"ac.ma":true,"press.ma":true,"mc":true,"tm.mc":true,"asso.mc":true,"md":true,"me":true,"co.me":true,"net.me":true,"org.me":true,"edu.me":true,"ac.me":true,"gov.me":true,"its.me":true,"priv.me":true,"mg":true,"org.mg":true,"nom.mg":true,"gov.mg":true,"prd.mg":true,"tm.mg":true,"edu.mg":true,"mil.mg":true,"com.mg":true,"co.mg":true,"mh":true,"mil":true,"mk":true,"com.mk":true,"org.mk":true,"net.mk":true,"edu.mk":true,"gov.mk":true,"inf.mk":true,"name.mk":true,"ml":true,"com.ml":true,"edu.ml":true,"gouv.ml":true,"gov.ml":true,"net.ml":true,"org.ml":true,"presse.ml":true,"*.mm":true,"mn":true,"gov.mn":true,"edu.mn":true,"org.mn":true,"mo":true,"com.mo":true,"net.mo":true,"org.mo":true,"edu.mo":true,"gov.mo":true,"mobi":true,"mp":true,"mq":true,"mr":true,"gov.mr":true,"ms":true,"com.ms":true,"edu.ms":true,"gov.ms":true,"net.ms":true,"org.ms":true,"mt":true,"com.mt":true,"edu.mt":true,"net.mt":true,"org.mt":true,"mu":true,"com.mu":true,"net.mu":true,"org.mu":true,"gov.mu":true,"ac.mu":true,"co.mu":true,"or.mu":true,"museum":true,"academy.museum":true,"agriculture.museum":true,"air.museum":true,"airguard.museum":true,"alabama.museum":true,"alaska.museum":true,"amber.museum":true,"ambulance.museum":true,"american.museum":true,"americana.museum":true,"americanantiques.museum":true,"americanart.museum":true,"amsterdam.museum":true,"and.museum":true,"annefrank.museum":true,"anthro.museum":true,"anthropology.museum":true,"antiques.museum":true,"aquarium.museum":true,"arboretum.museum":true,"archaeological.museum":true,"archaeology.museum":true,"architecture.museum":true,"art.museum":true,"artanddesign.museum":true,"artcenter.museum":true,"artdeco.museum":true,"arteducation.museum":true,"artgallery.museum":true,"arts.museum":true,"artsandcrafts.museum":true,"asmatart.museum":true,"assassination.museum":true,"assisi.museum":true,"association.museum":true,"astronomy.museum":true,"atlanta.museum":true,"austin.museum":true,"australia.museum":true,"automotive.museum":true,"aviation.museum":true,"axis.museum":true,"badajoz.museum":true,"baghdad.museum":true,"bahn.museum":true,"bale.museum":true,"baltimore.museum":true,"barcelona.museum":true,"baseball.museum":true,"basel.museum":true,"baths.museum":true,"bauern.museum":true,"beauxarts.museum":true,"beeldengeluid.museum":true,"bellevue.museum":true,"bergbau.museum":true,"berkeley.museum":true,"berlin.museum":true,"bern.museum":true,"bible.museum":true,"bilbao.museum":true,"bill.museum":true,"birdart.museum":true,"birthplace.museum":true,"bonn.museum":true,"boston.museum":true,"botanical.museum":true,"botanicalgarden.museum":true,"botanicgarden.museum":true,"botany.museum":true,"brandywinevalley.museum":true,"brasil.museum":true,"bristol.museum":true,"british.museum":true,"britishcolumbia.museum":true,"broadcast.museum":true,"brunel.museum":true,"brussel.museum":true,"brussels.museum":true,"bruxelles.museum":true,"building.museum":true,"burghof.museum":true,"bus.museum":true,"bushey.museum":true,"cadaques.museum":true,"california.museum":true,"cambridge.museum":true,"can.museum":true,"canada.museum":true,"capebreton.museum":true,"carrier.museum":true,"cartoonart.museum":true,"casadelamoneda.museum":true,"castle.museum":true,"castres.museum":true,"celtic.museum":true,"center.museum":true,"chattanooga.museum":true,"cheltenham.museum":true,"chesapeakebay.museum":true,"chicago.museum":true,"children.museum":true,"childrens.museum":true,"childrensgarden.museum":true,"chiropractic.museum":true,"chocolate.museum":true,"christiansburg.museum":true,"cincinnati.museum":true,"cinema.museum":true,"circus.museum":true,"civilisation.museum":true,"civilization.museum":true,"civilwar.museum":true,"clinton.museum":true,"clock.museum":true,"coal.museum":true,"coastaldefence.museum":true,"cody.museum":true,"coldwar.museum":true,"collection.museum":true,"colonialwilliamsburg.museum":true,"coloradoplateau.museum":true,"columbia.museum":true,"columbus.museum":true,"communication.museum":true,"communications.museum":true,"community.museum":true,"computer.museum":true,"computerhistory.museum":true,"xn--comunicaes-v6a2o.museum":true,"contemporary.museum":true,"contemporaryart.museum":true,"convent.museum":true,"copenhagen.museum":true,"corporation.museum":true,"xn--correios-e-telecomunicaes-ghc29a.museum":true,"corvette.museum":true,"costume.museum":true,"countryestate.museum":true,"county.museum":true,"crafts.museum":true,"cranbrook.museum":true,"creation.museum":true,"cultural.museum":true,"culturalcenter.museum":true,"culture.museum":true,"cyber.museum":true,"cymru.museum":true,"dali.museum":true,"dallas.museum":true,"database.museum":true,"ddr.museum":true,"decorativearts.museum":true,"delaware.museum":true,"delmenhorst.museum":true,"denmark.museum":true,"depot.museum":true,"design.museum":true,"detroit.museum":true,"dinosaur.museum":true,"discovery.museum":true,"dolls.museum":true,"donostia.museum":true,"durham.museum":true,"eastafrica.museum":true,"eastcoast.museum":true,"education.museum":true,"educational.museum":true,"egyptian.museum":true,"eisenbahn.museum":true,"elburg.museum":true,"elvendrell.museum":true,"embroidery.museum":true,"encyclopedic.museum":true,"england.museum":true,"entomology.museum":true,"environment.museum":true,"environmentalconservation.museum":true,"epilepsy.museum":true,"essex.museum":true,"estate.museum":true,"ethnology.museum":true,"exeter.museum":true,"exhibition.museum":true,"family.museum":true,"farm.museum":true,"farmequipment.museum":true,"farmers.museum":true,"farmstead.museum":true,"field.museum":true,"figueres.museum":true,"filatelia.museum":true,"film.museum":true,"fineart.museum":true,"finearts.museum":true,"finland.museum":true,"flanders.museum":true,"florida.museum":true,"force.museum":true,"fortmissoula.museum":true,"fortworth.museum":true,"foundation.museum":true,"francaise.museum":true,"frankfurt.museum":true,"franziskaner.museum":true,"freemasonry.museum":true,"freiburg.museum":true,"fribourg.museum":true,"frog.museum":true,"fundacio.museum":true,"furniture.museum":true,"gallery.museum":true,"garden.museum":true,"gateway.museum":true,"geelvinck.museum":true,"gemological.museum":true,"geology.museum":true,"georgia.museum":true,"giessen.museum":true,"glas.museum":true,"glass.museum":true,"gorge.museum":true,"grandrapids.museum":true,"graz.museum":true,"guernsey.museum":true,"halloffame.museum":true,"hamburg.museum":true,"handson.museum":true,"harvestcelebration.museum":true,"hawaii.museum":true,"health.museum":true,"heimatunduhren.museum":true,"hellas.museum":true,"helsinki.museum":true,"hembygdsforbund.museum":true,"heritage.museum":true,"histoire.museum":true,"historical.museum":true,"historicalsociety.museum":true,"historichouses.museum":true,"historisch.museum":true,"historisches.museum":true,"history.museum":true,"historyofscience.museum":true,"horology.museum":true,"house.museum":true,"humanities.museum":true,"illustration.museum":true,"imageandsound.museum":true,"indian.museum":true,"indiana.museum":true,"indianapolis.museum":true,"indianmarket.museum":true,"intelligence.museum":true,"interactive.museum":true,"iraq.museum":true,"iron.museum":true,"isleofman.museum":true,"jamison.museum":true,"jefferson.museum":true,"jerusalem.museum":true,"jewelry.museum":true,"jewish.museum":true,"jewishart.museum":true,"jfk.museum":true,"journalism.museum":true,"judaica.museum":true,"judygarland.museum":true,"juedisches.museum":true,"juif.museum":true,"karate.museum":true,"karikatur.museum":true,"kids.museum":true,"koebenhavn.museum":true,"koeln.museum":true,"kunst.museum":true,"kunstsammlung.museum":true,"kunstunddesign.museum":true,"labor.museum":true,"labour.museum":true,"lajolla.museum":true,"lancashire.museum":true,"landes.museum":true,"lans.museum":true,"xn--lns-qla.museum":true,"larsson.museum":true,"lewismiller.museum":true,"lincoln.museum":true,"linz.museum":true,"living.museum":true,"livinghistory.museum":true,"localhistory.museum":true,"london.museum":true,"losangeles.museum":true,"louvre.museum":true,"loyalist.museum":true,"lucerne.museum":true,"luxembourg.museum":true,"luzern.museum":true,"mad.museum":true,"madrid.museum":true,"mallorca.museum":true,"manchester.museum":true,"mansion.museum":true,"mansions.museum":true,"manx.museum":true,"marburg.museum":true,"maritime.museum":true,"maritimo.museum":true,"maryland.museum":true,"marylhurst.museum":true,"media.museum":true,"medical.museum":true,"medizinhistorisches.museum":true,"meeres.museum":true,"memorial.museum":true,"mesaverde.museum":true,"michigan.museum":true,"midatlantic.museum":true,"military.museum":true,"mill.museum":true,"miners.museum":true,"mining.museum":true,"minnesota.museum":true,"missile.museum":true,"missoula.museum":true,"modern.museum":true,"moma.museum":true,"money.museum":true,"monmouth.museum":true,"monticello.museum":true,"montreal.museum":true,"moscow.museum":true,"motorcycle.museum":true,"muenchen.museum":true,"muenster.museum":true,"mulhouse.museum":true,"muncie.museum":true,"museet.museum":true,"museumcenter.museum":true,"museumvereniging.museum":true,"music.museum":true,"national.museum":true,"nationalfirearms.museum":true,"nationalheritage.museum":true,"nativeamerican.museum":true,"naturalhistory.museum":true,"naturalhistorymuseum.museum":true,"naturalsciences.museum":true,"nature.museum":true,"naturhistorisches.museum":true,"natuurwetenschappen.museum":true,"naumburg.museum":true,"naval.museum":true,"nebraska.museum":true,"neues.museum":true,"newhampshire.museum":true,"newjersey.museum":true,"newmexico.museum":true,"newport.museum":true,"newspaper.museum":true,"newyork.museum":true,"niepce.museum":true,"norfolk.museum":true,"north.museum":true,"nrw.museum":true,"nuernberg.museum":true,"nuremberg.museum":true,"nyc.museum":true,"nyny.museum":true,"oceanographic.museum":true,"oceanographique.museum":true,"omaha.museum":true,"online.museum":true,"ontario.museum":true,"openair.museum":true,"oregon.museum":true,"oregontrail.museum":true,"otago.museum":true,"oxford.museum":true,"pacific.museum":true,"paderborn.museum":true,"palace.museum":true,"paleo.museum":true,"palmsprings.museum":true,"panama.museum":true,"paris.museum":true,"pasadena.museum":true,"pharmacy.museum":true,"philadelphia.museum":true,"philadelphiaarea.museum":true,"philately.museum":true,"phoenix.museum":true,"photography.museum":true,"pilots.museum":true,"pittsburgh.museum":true,"planetarium.museum":true,"plantation.museum":true,"plants.museum":true,"plaza.museum":true,"portal.museum":true,"portland.museum":true,"portlligat.museum":true,"posts-and-telecommunications.museum":true,"preservation.museum":true,"presidio.museum":true,"press.museum":true,"project.museum":true,"public.museum":true,"pubol.museum":true,"quebec.museum":true,"railroad.museum":true,"railway.museum":true,"research.museum":true,"resistance.museum":true,"riodejaneiro.museum":true,"rochester.museum":true,"rockart.museum":true,"roma.museum":true,"russia.museum":true,"saintlouis.museum":true,"salem.museum":true,"salvadordali.museum":true,"salzburg.museum":true,"sandiego.museum":true,"sanfrancisco.museum":true,"santabarbara.museum":true,"santacruz.museum":true,"santafe.museum":true,"saskatchewan.museum":true,"satx.museum":true,"savannahga.museum":true,"schlesisches.museum":true,"schoenbrunn.museum":true,"schokoladen.museum":true,"school.museum":true,"schweiz.museum":true,"science.museum":true,"scienceandhistory.museum":true,"scienceandindustry.museum":true,"sciencecenter.museum":true,"sciencecenters.museum":true,"science-fiction.museum":true,"sciencehistory.museum":true,"sciences.museum":true,"sciencesnaturelles.museum":true,"scotland.museum":true,"seaport.museum":true,"settlement.museum":true,"settlers.museum":true,"shell.museum":true,"sherbrooke.museum":true,"sibenik.museum":true,"silk.museum":true,"ski.museum":true,"skole.museum":true,"society.museum":true,"sologne.museum":true,"soundandvision.museum":true,"southcarolina.museum":true,"southwest.museum":true,"space.museum":true,"spy.museum":true,"square.museum":true,"stadt.museum":true,"stalbans.museum":true,"starnberg.museum":true,"state.museum":true,"stateofdelaware.museum":true,"station.museum":true,"steam.museum":true,"steiermark.museum":true,"stjohn.museum":true,"stockholm.museum":true,"stpetersburg.museum":true,"stuttgart.museum":true,"suisse.museum":true,"surgeonshall.museum":true,"surrey.museum":true,"svizzera.museum":true,"sweden.museum":true,"sydney.museum":true,"tank.museum":true,"tcm.museum":true,"technology.museum":true,"telekommunikation.museum":true,"television.museum":true,"texas.museum":true,"textile.museum":true,"theater.museum":true,"time.museum":true,"timekeeping.museum":true,"topology.museum":true,"torino.museum":true,"touch.museum":true,"town.museum":true,"transport.museum":true,"tree.museum":true,"trolley.museum":true,"trust.museum":true,"trustee.museum":true,"uhren.museum":true,"ulm.museum":true,"undersea.museum":true,"university.museum":true,"usa.museum":true,"usantiques.museum":true,"usarts.museum":true,"uscountryestate.museum":true,"usculture.museum":true,"usdecorativearts.museum":true,"usgarden.museum":true,"ushistory.museum":true,"ushuaia.museum":true,"uslivinghistory.museum":true,"utah.museum":true,"uvic.museum":true,"valley.museum":true,"vantaa.museum":true,"versailles.museum":true,"viking.museum":true,"village.museum":true,"virginia.museum":true,"virtual.museum":true,"virtuel.museum":true,"vlaanderen.museum":true,"volkenkunde.museum":true,"wales.museum":true,"wallonie.museum":true,"war.museum":true,"washingtondc.museum":true,"watchandclock.museum":true,"watch-and-clock.museum":true,"western.museum":true,"westfalen.museum":true,"whaling.museum":true,"wildlife.museum":true,"williamsburg.museum":true,"windmill.museum":true,"workshop.museum":true,"york.museum":true,"yorkshire.museum":true,"yosemite.museum":true,"youth.museum":true,"zoological.museum":true,"zoology.museum":true,"xn--9dbhblg6di.museum":true,"xn--h1aegh.museum":true,"mv":true,"aero.mv":true,"biz.mv":true,"com.mv":true,"coop.mv":true,"edu.mv":true,"gov.mv":true,"info.mv":true,"int.mv":true,"mil.mv":true,"museum.mv":true,"name.mv":true,"net.mv":true,"org.mv":true,"pro.mv":true,"mw":true,"ac.mw":true,"biz.mw":true,"co.mw":true,"com.mw":true,"coop.mw":true,"edu.mw":true,"gov.mw":true,"int.mw":true,"museum.mw":true,"net.mw":true,"org.mw":true,"mx":true,"com.mx":true,"org.mx":true,"gob.mx":true,"edu.mx":true,"net.mx":true,"my":true,"com.my":true,"net.my":true,"org.my":true,"gov.my":true,"edu.my":true,"mil.my":true,"name.my":true,"*.mz":true,"teledata.mz":false,"na":true,"info.na":true,"pro.na":true,"name.na":true,"school.na":true,"or.na":true,"dr.na":true,"us.na":true,"mx.na":true,"ca.na":true,"in.na":true,"cc.na":true,"tv.na":true,"ws.na":true,"mobi.na":true,"co.na":true,"com.na":true,"org.na":true,"name":true,"nc":true,"asso.nc":true,"ne":true,"net":true,"nf":true,"com.nf":true,"net.nf":true,"per.nf":true,"rec.nf":true,"web.nf":true,"arts.nf":true,"firm.nf":true,"info.nf":true,"other.nf":true,"store.nf":true,"ng":true,"com.ng":true,"edu.ng":true,"name.ng":true,"net.ng":true,"org.ng":true,"sch.ng":true,"gov.ng":true,"mil.ng":true,"mobi.ng":true,"*.ni":true,"nl":true,"bv.nl":true,"no":true,"fhs.no":true,"vgs.no":true,"fylkesbibl.no":true,"folkebibl.no":true,"museum.no":true,"idrett.no":true,"priv.no":true,"mil.no":true,"stat.no":true,"dep.no":true,"kommune.no":true,"herad.no":true,"aa.no":true,"ah.no":true,"bu.no":true,"fm.no":true,"hl.no":true,"hm.no":true,"jan-mayen.no":true,"mr.no":true,"nl.no":true,"nt.no":true,"of.no":true,"ol.no":true,"oslo.no":true,"rl.no":true,"sf.no":true,"st.no":true,"svalbard.no":true,"tm.no":true,"tr.no":true,"va.no":true,"vf.no":true,"gs.aa.no":true,"gs.ah.no":true,"gs.bu.no":true,"gs.fm.no":true,"gs.hl.no":true,"gs.hm.no":true,"gs.jan-mayen.no":true,"gs.mr.no":true,"gs.nl.no":true,"gs.nt.no":true,"gs.of.no":true,"gs.ol.no":true,"gs.oslo.no":true,"gs.rl.no":true,"gs.sf.no":true,"gs.st.no":true,"gs.svalbard.no":true,"gs.tm.no":true,"gs.tr.no":true,"gs.va.no":true,"gs.vf.no":true,"akrehamn.no":true,"xn--krehamn-dxa.no":true,"algard.no":true,"xn--lgrd-poac.no":true,"arna.no":true,"brumunddal.no":true,"bryne.no":true,"bronnoysund.no":true,"xn--brnnysund-m8ac.no":true,"drobak.no":true,"xn--drbak-wua.no":true,"egersund.no":true,"fetsund.no":true,"floro.no":true,"xn--flor-jra.no":true,"fredrikstad.no":true,"hokksund.no":true,"honefoss.no":true,"xn--hnefoss-q1a.no":true,"jessheim.no":true,"jorpeland.no":true,"xn--jrpeland-54a.no":true,"kirkenes.no":true,"kopervik.no":true,"krokstadelva.no":true,"langevag.no":true,"xn--langevg-jxa.no":true,"leirvik.no":true,"mjondalen.no":true,"xn--mjndalen-64a.no":true,"mo-i-rana.no":true,"mosjoen.no":true,"xn--mosjen-eya.no":true,"nesoddtangen.no":true,"orkanger.no":true,"osoyro.no":true,"xn--osyro-wua.no":true,"raholt.no":true,"xn--rholt-mra.no":true,"sandnessjoen.no":true,"xn--sandnessjen-ogb.no":true,"skedsmokorset.no":true,"slattum.no":true,"spjelkavik.no":true,"stathelle.no":true,"stavern.no":true,"stjordalshalsen.no":true,"xn--stjrdalshalsen-sqb.no":true,"tananger.no":true,"tranby.no":true,"vossevangen.no":true,"afjord.no":true,"xn--fjord-lra.no":true,"agdenes.no":true,"al.no":true,"xn--l-1fa.no":true,"alesund.no":true,"xn--lesund-hua.no":true,"alstahaug.no":true,"alta.no":true,"xn--lt-liac.no":true,"alaheadju.no":true,"xn--laheadju-7ya.no":true,"alvdal.no":true,"amli.no":true,"xn--mli-tla.no":true,"amot.no":true,"xn--mot-tla.no":true,"andebu.no":true,"andoy.no":true,"xn--andy-ira.no":true,"andasuolo.no":true,"ardal.no":true,"xn--rdal-poa.no":true,"aremark.no":true,"arendal.no":true,"xn--s-1fa.no":true,"aseral.no":true,"xn--seral-lra.no":true,"asker.no":true,"askim.no":true,"askvoll.no":true,"askoy.no":true,"xn--asky-ira.no":true,"asnes.no":true,"xn--snes-poa.no":true,"audnedaln.no":true,"aukra.no":true,"aure.no":true,"aurland.no":true,"aurskog-holand.no":true,"xn--aurskog-hland-jnb.no":true,"austevoll.no":true,"austrheim.no":true,"averoy.no":true,"xn--avery-yua.no":true,"balestrand.no":true,"ballangen.no":true,"balat.no":true,"xn--blt-elab.no":true,"balsfjord.no":true,"bahccavuotna.no":true,"xn--bhccavuotna-k7a.no":true,"bamble.no":true,"bardu.no":true,"beardu.no":true,"beiarn.no":true,"bajddar.no":true,"xn--bjddar-pta.no":true,"baidar.no":true,"xn--bidr-5nac.no":true,"berg.no":true,"bergen.no":true,"berlevag.no":true,"xn--berlevg-jxa.no":true,"bearalvahki.no":true,"xn--bearalvhki-y4a.no":true,"bindal.no":true,"birkenes.no":true,"bjarkoy.no":true,"xn--bjarky-fya.no":true,"bjerkreim.no":true,"bjugn.no":true,"bodo.no":true,"xn--bod-2na.no":true,"badaddja.no":true,"xn--bdddj-mrabd.no":true,"budejju.no":true,"bokn.no":true,"bremanger.no":true,"bronnoy.no":true,"xn--brnny-wuac.no":true,"bygland.no":true,"bykle.no":true,"barum.no":true,"xn--brum-voa.no":true,"bo.telemark.no":true,"xn--b-5ga.telemark.no":true,"bo.nordland.no":true,"xn--b-5ga.nordland.no":true,"bievat.no":true,"xn--bievt-0qa.no":true,"bomlo.no":true,"xn--bmlo-gra.no":true,"batsfjord.no":true,"xn--btsfjord-9za.no":true,"bahcavuotna.no":true,"xn--bhcavuotna-s4a.no":true,"dovre.no":true,"drammen.no":true,"drangedal.no":true,"dyroy.no":true,"xn--dyry-ira.no":true,"donna.no":true,"xn--dnna-gra.no":true,"eid.no":true,"eidfjord.no":true,"eidsberg.no":true,"eidskog.no":true,"eidsvoll.no":true,"eigersund.no":true,"elverum.no":true,"enebakk.no":true,"engerdal.no":true,"etne.no":true,"etnedal.no":true,"evenes.no":true,"evenassi.no":true,"xn--eveni-0qa01ga.no":true,"evje-og-hornnes.no":true,"farsund.no":true,"fauske.no":true,"fuossko.no":true,"fuoisku.no":true,"fedje.no":true,"fet.no":true,"finnoy.no":true,"xn--finny-yua.no":true,"fitjar.no":true,"fjaler.no":true,"fjell.no":true,"flakstad.no":true,"flatanger.no":true,"flekkefjord.no":true,"flesberg.no":true,"flora.no":true,"fla.no":true,"xn--fl-zia.no":true,"folldal.no":true,"forsand.no":true,"fosnes.no":true,"frei.no":true,"frogn.no":true,"froland.no":true,"frosta.no":true,"frana.no":true,"xn--frna-woa.no":true,"froya.no":true,"xn--frya-hra.no":true,"fusa.no":true,"fyresdal.no":true,"forde.no":true,"xn--frde-gra.no":true,"gamvik.no":true,"gangaviika.no":true,"xn--ggaviika-8ya47h.no":true,"gaular.no":true,"gausdal.no":true,"gildeskal.no":true,"xn--gildeskl-g0a.no":true,"giske.no":true,"gjemnes.no":true,"gjerdrum.no":true,"gjerstad.no":true,"gjesdal.no":true,"gjovik.no":true,"xn--gjvik-wua.no":true,"gloppen.no":true,"gol.no":true,"gran.no":true,"grane.no":true,"granvin.no":true,"gratangen.no":true,"grimstad.no":true,"grong.no":true,"kraanghke.no":true,"xn--kranghke-b0a.no":true,"grue.no":true,"gulen.no":true,"hadsel.no":true,"halden.no":true,"halsa.no":true,"hamar.no":true,"hamaroy.no":true,"habmer.no":true,"xn--hbmer-xqa.no":true,"hapmir.no":true,"xn--hpmir-xqa.no":true,"hammerfest.no":true,"hammarfeasta.no":true,"xn--hmmrfeasta-s4ac.no":true,"haram.no":true,"hareid.no":true,"harstad.no":true,"hasvik.no":true,"aknoluokta.no":true,"xn--koluokta-7ya57h.no":true,"hattfjelldal.no":true,"aarborte.no":true,"haugesund.no":true,"hemne.no":true,"hemnes.no":true,"hemsedal.no":true,"heroy.more-og-romsdal.no":true,"xn--hery-ira.xn--mre-og-romsdal-qqb.no":true,"heroy.nordland.no":true,"xn--hery-ira.nordland.no":true,"hitra.no":true,"hjartdal.no":true,"hjelmeland.no":true,"hobol.no":true,"xn--hobl-ira.no":true,"hof.no":true,"hol.no":true,"hole.no":true,"holmestrand.no":true,"holtalen.no":true,"xn--holtlen-hxa.no":true,"hornindal.no":true,"horten.no":true,"hurdal.no":true,"hurum.no":true,"hvaler.no":true,"hyllestad.no":true,"hagebostad.no":true,"xn--hgebostad-g3a.no":true,"hoyanger.no":true,"xn--hyanger-q1a.no":true,"hoylandet.no":true,"xn--hylandet-54a.no":true,"ha.no":true,"xn--h-2fa.no":true,"ibestad.no":true,"inderoy.no":true,"xn--indery-fya.no":true,"iveland.no":true,"jevnaker.no":true,"jondal.no":true,"jolster.no":true,"xn--jlster-bya.no":true,"karasjok.no":true,"karasjohka.no":true,"xn--krjohka-hwab49j.no":true,"karlsoy.no":true,"galsa.no":true,"xn--gls-elac.no":true,"karmoy.no":true,"xn--karmy-yua.no":true,"kautokeino.no":true,"guovdageaidnu.no":true,"klepp.no":true,"klabu.no":true,"xn--klbu-woa.no":true,"kongsberg.no":true,"kongsvinger.no":true,"kragero.no":true,"xn--krager-gya.no":true,"kristiansand.no":true,"kristiansund.no":true,"krodsherad.no":true,"xn--krdsherad-m8a.no":true,"kvalsund.no":true,"rahkkeravju.no":true,"xn--rhkkervju-01af.no":true,"kvam.no":true,"kvinesdal.no":true,"kvinnherad.no":true,"kviteseid.no":true,"kvitsoy.no":true,"xn--kvitsy-fya.no":true,"kvafjord.no":true,"xn--kvfjord-nxa.no":true,"giehtavuoatna.no":true,"kvanangen.no":true,"xn--kvnangen-k0a.no":true,"navuotna.no":true,"xn--nvuotna-hwa.no":true,"kafjord.no":true,"xn--kfjord-iua.no":true,"gaivuotna.no":true,"xn--givuotna-8ya.no":true,"larvik.no":true,"lavangen.no":true,"lavagis.no":true,"loabat.no":true,"xn--loabt-0qa.no":true,"lebesby.no":true,"davvesiida.no":true,"leikanger.no":true,"leirfjord.no":true,"leka.no":true,"leksvik.no":true,"lenvik.no":true,"leangaviika.no":true,"xn--leagaviika-52b.no":true,"lesja.no":true,"levanger.no":true,"lier.no":true,"lierne.no":true,"lillehammer.no":true,"lillesand.no":true,"lindesnes.no":true,"lindas.no":true,"xn--linds-pra.no":true,"lom.no":true,"loppa.no":true,"lahppi.no":true,"xn--lhppi-xqa.no":true,"lund.no":true,"lunner.no":true,"luroy.no":true,"xn--lury-ira.no":true,"luster.no":true,"lyngdal.no":true,"lyngen.no":true,"ivgu.no":true,"lardal.no":true,"lerdal.no":true,"xn--lrdal-sra.no":true,"lodingen.no":true,"xn--ldingen-q1a.no":true,"lorenskog.no":true,"xn--lrenskog-54a.no":true,"loten.no":true,"xn--lten-gra.no":true,"malvik.no":true,"masoy.no":true,"xn--msy-ula0h.no":true,"muosat.no":true,"xn--muost-0qa.no":true,"mandal.no":true,"marker.no":true,"marnardal.no":true,"masfjorden.no":true,"meland.no":true,"meldal.no":true,"melhus.no":true,"meloy.no":true,"xn--mely-ira.no":true,"meraker.no":true,"xn--merker-kua.no":true,"moareke.no":true,"xn--moreke-jua.no":true,"midsund.no":true,"midtre-gauldal.no":true,"modalen.no":true,"modum.no":true,"molde.no":true,"moskenes.no":true,"moss.no":true,"mosvik.no":true,"malselv.no":true,"xn--mlselv-iua.no":true,"malatvuopmi.no":true,"xn--mlatvuopmi-s4a.no":true,"namdalseid.no":true,"aejrie.no":true,"namsos.no":true,"namsskogan.no":true,"naamesjevuemie.no":true,"xn--nmesjevuemie-tcba.no":true,"laakesvuemie.no":true,"nannestad.no":true,"narvik.no":true,"narviika.no":true,"naustdal.no":true,"nedre-eiker.no":true,"nes.akershus.no":true,"nes.buskerud.no":true,"nesna.no":true,"nesodden.no":true,"nesseby.no":true,"unjarga.no":true,"xn--unjrga-rta.no":true,"nesset.no":true,"nissedal.no":true,"nittedal.no":true,"nord-aurdal.no":true,"nord-fron.no":true,"nord-odal.no":true,"norddal.no":true,"nordkapp.no":true,"davvenjarga.no":true,"xn--davvenjrga-y4a.no":true,"nordre-land.no":true,"nordreisa.no":true,"raisa.no":true,"xn--risa-5na.no":true,"nore-og-uvdal.no":true,"notodden.no":true,"naroy.no":true,"xn--nry-yla5g.no":true,"notteroy.no":true,"xn--nttery-byae.no":true,"odda.no":true,"oksnes.no":true,"xn--ksnes-uua.no":true,"oppdal.no":true,"oppegard.no":true,"xn--oppegrd-ixa.no":true,"orkdal.no":true,"orland.no":true,"xn--rland-uua.no":true,"orskog.no":true,"xn--rskog-uua.no":true,"orsta.no":true,"xn--rsta-fra.no":true,"os.hedmark.no":true,"os.hordaland.no":true,"osen.no":true,"osteroy.no":true,"xn--ostery-fya.no":true,"ostre-toten.no":true,"xn--stre-toten-zcb.no":true,"overhalla.no":true,"ovre-eiker.no":true,"xn--vre-eiker-k8a.no":true,"oyer.no":true,"xn--yer-zna.no":true,"oygarden.no":true,"xn--ygarden-p1a.no":true,"oystre-slidre.no":true,"xn--ystre-slidre-ujb.no":true,"porsanger.no":true,"porsangu.no":true,"xn--porsgu-sta26f.no":true,"porsgrunn.no":true,"radoy.no":true,"xn--rady-ira.no":true,"rakkestad.no":true,"rana.no":true,"ruovat.no":true,"randaberg.no":true,"rauma.no":true,"rendalen.no":true,"rennebu.no":true,"rennesoy.no":true,"xn--rennesy-v1a.no":true,"rindal.no":true,"ringebu.no":true,"ringerike.no":true,"ringsaker.no":true,"rissa.no":true,"risor.no":true,"xn--risr-ira.no":true,"roan.no":true,"rollag.no":true,"rygge.no":true,"ralingen.no":true,"xn--rlingen-mxa.no":true,"rodoy.no":true,"xn--rdy-0nab.no":true,"romskog.no":true,"xn--rmskog-bya.no":true,"roros.no":true,"xn--rros-gra.no":true,"rost.no":true,"xn--rst-0na.no":true,"royken.no":true,"xn--ryken-vua.no":true,"royrvik.no":true,"xn--ryrvik-bya.no":true,"rade.no":true,"xn--rde-ula.no":true,"salangen.no":true,"siellak.no":true,"saltdal.no":true,"salat.no":true,"xn--slt-elab.no":true,"xn--slat-5na.no":true,"samnanger.no":true,"sande.more-og-romsdal.no":true,"sande.xn--mre-og-romsdal-qqb.no":true,"sande.vestfold.no":true,"sandefjord.no":true,"sandnes.no":true,"sandoy.no":true,"xn--sandy-yua.no":true,"sarpsborg.no":true,"sauda.no":true,"sauherad.no":true,"sel.no":true,"selbu.no":true,"selje.no":true,"seljord.no":true,"sigdal.no":true,"siljan.no":true,"sirdal.no":true,"skaun.no":true,"skedsmo.no":true,"ski.no":true,"skien.no":true,"skiptvet.no":true,"skjervoy.no":true,"xn--skjervy-v1a.no":true,"skierva.no":true,"xn--skierv-uta.no":true,"skjak.no":true,"xn--skjk-soa.no":true,"skodje.no":true,"skanland.no":true,"xn--sknland-fxa.no":true,"skanit.no":true,"xn--sknit-yqa.no":true,"smola.no":true,"xn--smla-hra.no":true,"snillfjord.no":true,"snasa.no":true,"xn--snsa-roa.no":true,"snoasa.no":true,"snaase.no":true,"xn--snase-nra.no":true,"sogndal.no":true,"sokndal.no":true,"sola.no":true,"solund.no":true,"songdalen.no":true,"sortland.no":true,"spydeberg.no":true,"stange.no":true,"stavanger.no":true,"steigen.no":true,"steinkjer.no":true,"stjordal.no":true,"xn--stjrdal-s1a.no":true,"stokke.no":true,"stor-elvdal.no":true,"stord.no":true,"stordal.no":true,"storfjord.no":true,"omasvuotna.no":true,"strand.no":true,"stranda.no":true,"stryn.no":true,"sula.no":true,"suldal.no":true,"sund.no":true,"sunndal.no":true,"surnadal.no":true,"sveio.no":true,"svelvik.no":true,"sykkylven.no":true,"sogne.no":true,"xn--sgne-gra.no":true,"somna.no":true,"xn--smna-gra.no":true,"sondre-land.no":true,"xn--sndre-land-0cb.no":true,"sor-aurdal.no":true,"xn--sr-aurdal-l8a.no":true,"sor-fron.no":true,"xn--sr-fron-q1a.no":true,"sor-odal.no":true,"xn--sr-odal-q1a.no":true,"sor-varanger.no":true,"xn--sr-varanger-ggb.no":true,"matta-varjjat.no":true,"xn--mtta-vrjjat-k7af.no":true,"sorfold.no":true,"xn--srfold-bya.no":true,"sorreisa.no":true,"xn--srreisa-q1a.no":true,"sorum.no":true,"xn--srum-gra.no":true,"tana.no":true,"deatnu.no":true,"time.no":true,"tingvoll.no":true,"tinn.no":true,"tjeldsund.no":true,"dielddanuorri.no":true,"tjome.no":true,"xn--tjme-hra.no":true,"tokke.no":true,"tolga.no":true,"torsken.no":true,"tranoy.no":true,"xn--trany-yua.no":true,"tromso.no":true,"xn--troms-zua.no":true,"tromsa.no":true,"romsa.no":true,"trondheim.no":true,"troandin.no":true,"trysil.no":true,"trana.no":true,"xn--trna-woa.no":true,"trogstad.no":true,"xn--trgstad-r1a.no":true,"tvedestrand.no":true,"tydal.no":true,"tynset.no":true,"tysfjord.no":true,"divtasvuodna.no":true,"divttasvuotna.no":true,"tysnes.no":true,"tysvar.no":true,"xn--tysvr-vra.no":true,"tonsberg.no":true,"xn--tnsberg-q1a.no":true,"ullensaker.no":true,"ullensvang.no":true,"ulvik.no":true,"utsira.no":true,"vadso.no":true,"xn--vads-jra.no":true,"cahcesuolo.no":true,"xn--hcesuolo-7ya35b.no":true,"vaksdal.no":true,"valle.no":true,"vang.no":true,"vanylven.no":true,"vardo.no":true,"xn--vard-jra.no":true,"varggat.no":true,"xn--vrggt-xqad.no":true,"vefsn.no":true,"vaapste.no":true,"vega.no":true,"vegarshei.no":true,"xn--vegrshei-c0a.no":true,"vennesla.no":true,"verdal.no":true,"verran.no":true,"vestby.no":true,"vestnes.no":true,"vestre-slidre.no":true,"vestre-toten.no":true,"vestvagoy.no":true,"xn--vestvgy-ixa6o.no":true,"vevelstad.no":true,"vik.no":true,"vikna.no":true,"vindafjord.no":true,"volda.no":true,"voss.no":true,"varoy.no":true,"xn--vry-yla5g.no":true,"vagan.no":true,"xn--vgan-qoa.no":true,"voagat.no":true,"vagsoy.no":true,"xn--vgsy-qoa0j.no":true,"vaga.no":true,"xn--vg-yiab.no":true,"valer.ostfold.no":true,"xn--vler-qoa.xn--stfold-9xa.no":true,"valer.hedmark.no":true,"xn--vler-qoa.hedmark.no":true,"*.np":true,"nr":true,"biz.nr":true,"info.nr":true,"gov.nr":true,"edu.nr":true,"org.nr":true,"net.nr":true,"com.nr":true,"nu":true,"nz":true,"ac.nz":true,"co.nz":true,"cri.nz":true,"geek.nz":true,"gen.nz":true,"govt.nz":true,"health.nz":true,"iwi.nz":true,"kiwi.nz":true,"maori.nz":true,"mil.nz":true,"xn--mori-qsa.nz":true,"net.nz":true,"org.nz":true,"parliament.nz":true,"school.nz":true,"om":true,"co.om":true,"com.om":true,"edu.om":true,"gov.om":true,"med.om":true,"museum.om":true,"net.om":true,"org.om":true,"pro.om":true,"org":true,"pa":true,"ac.pa":true,"gob.pa":true,"com.pa":true,"org.pa":true,"sld.pa":true,"edu.pa":true,"net.pa":true,"ing.pa":true,"abo.pa":true,"med.pa":true,"nom.pa":true,"pe":true,"edu.pe":true,"gob.pe":true,"nom.pe":true,"mil.pe":true,"org.pe":true,"com.pe":true,"net.pe":true,"pf":true,"com.pf":true,"org.pf":true,"edu.pf":true,"*.pg":true,"ph":true,"com.ph":true,"net.ph":true,"org.ph":true,"gov.ph":true,"edu.ph":true,"ngo.ph":true,"mil.ph":true,"i.ph":true,"pk":true,"com.pk":true,"net.pk":true,"edu.pk":true,"org.pk":true,"fam.pk":true,"biz.pk":true,"web.pk":true,"gov.pk":true,"gob.pk":true,"gok.pk":true,"gon.pk":true,"gop.pk":true,"gos.pk":true,"info.pk":true,"pl":true,"com.pl":true,"net.pl":true,"org.pl":true,"aid.pl":true,"agro.pl":true,"atm.pl":true,"auto.pl":true,"biz.pl":true,"edu.pl":true,"gmina.pl":true,"gsm.pl":true,"info.pl":true,"mail.pl":true,"miasta.pl":true,"media.pl":true,"mil.pl":true,"nieruchomosci.pl":true,"nom.pl":true,"pc.pl":true,"powiat.pl":true,"priv.pl":true,"realestate.pl":true,"rel.pl":true,"sex.pl":true,"shop.pl":true,"sklep.pl":true,"sos.pl":true,"szkola.pl":true,"targi.pl":true,"tm.pl":true,"tourism.pl":true,"travel.pl":true,"turystyka.pl":true,"gov.pl":true,"ap.gov.pl":true,"ic.gov.pl":true,"is.gov.pl":true,"us.gov.pl":true,"kmpsp.gov.pl":true,"kppsp.gov.pl":true,"kwpsp.gov.pl":true,"psp.gov.pl":true,"wskr.gov.pl":true,"kwp.gov.pl":true,"mw.gov.pl":true,"ug.gov.pl":true,"um.gov.pl":true,"umig.gov.pl":true,"ugim.gov.pl":true,"upow.gov.pl":true,"uw.gov.pl":true,"starostwo.gov.pl":true,"pa.gov.pl":true,"po.gov.pl":true,"psse.gov.pl":true,"pup.gov.pl":true,"rzgw.gov.pl":true,"sa.gov.pl":true,"so.gov.pl":true,"sr.gov.pl":true,"wsa.gov.pl":true,"sko.gov.pl":true,"uzs.gov.pl":true,"wiih.gov.pl":true,"winb.gov.pl":true,"pinb.gov.pl":true,"wios.gov.pl":true,"witd.gov.pl":true,"wzmiuw.gov.pl":true,"piw.gov.pl":true,"wiw.gov.pl":true,"griw.gov.pl":true,"wif.gov.pl":true,"oum.gov.pl":true,"sdn.gov.pl":true,"zp.gov.pl":true,"uppo.gov.pl":true,"mup.gov.pl":true,"wuoz.gov.pl":true,"konsulat.gov.pl":true,"oirm.gov.pl":true,"augustow.pl":true,"babia-gora.pl":true,"bedzin.pl":true,"beskidy.pl":true,"bialowieza.pl":true,"bialystok.pl":true,"bielawa.pl":true,"bieszczady.pl":true,"boleslawiec.pl":true,"bydgoszcz.pl":true,"bytom.pl":true,"cieszyn.pl":true,"czeladz.pl":true,"czest.pl":true,"dlugoleka.pl":true,"elblag.pl":true,"elk.pl":true,"glogow.pl":true,"gniezno.pl":true,"gorlice.pl":true,"grajewo.pl":true,"ilawa.pl":true,"jaworzno.pl":true,"jelenia-gora.pl":true,"jgora.pl":true,"kalisz.pl":true,"kazimierz-dolny.pl":true,"karpacz.pl":true,"kartuzy.pl":true,"kaszuby.pl":true,"katowice.pl":true,"kepno.pl":true,"ketrzyn.pl":true,"klodzko.pl":true,"kobierzyce.pl":true,"kolobrzeg.pl":true,"konin.pl":true,"konskowola.pl":true,"kutno.pl":true,"lapy.pl":true,"lebork.pl":true,"legnica.pl":true,"lezajsk.pl":true,"limanowa.pl":true,"lomza.pl":true,"lowicz.pl":true,"lubin.pl":true,"lukow.pl":true,"malbork.pl":true,"malopolska.pl":true,"mazowsze.pl":true,"mazury.pl":true,"mielec.pl":true,"mielno.pl":true,"mragowo.pl":true,"naklo.pl":true,"nowaruda.pl":true,"nysa.pl":true,"olawa.pl":true,"olecko.pl":true,"olkusz.pl":true,"olsztyn.pl":true,"opoczno.pl":true,"opole.pl":true,"ostroda.pl":true,"ostroleka.pl":true,"ostrowiec.pl":true,"ostrowwlkp.pl":true,"pila.pl":true,"pisz.pl":true,"podhale.pl":true,"podlasie.pl":true,"polkowice.pl":true,"pomorze.pl":true,"pomorskie.pl":true,"prochowice.pl":true,"pruszkow.pl":true,"przeworsk.pl":true,"pulawy.pl":true,"radom.pl":true,"rawa-maz.pl":true,"rybnik.pl":true,"rzeszow.pl":true,"sanok.pl":true,"sejny.pl":true,"slask.pl":true,"slupsk.pl":true,"sosnowiec.pl":true,"stalowa-wola.pl":true,"skoczow.pl":true,"starachowice.pl":true,"stargard.pl":true,"suwalki.pl":true,"swidnica.pl":true,"swiebodzin.pl":true,"swinoujscie.pl":true,"szczecin.pl":true,"szczytno.pl":true,"tarnobrzeg.pl":true,"tgory.pl":true,"turek.pl":true,"tychy.pl":true,"ustka.pl":true,"walbrzych.pl":true,"warmia.pl":true,"warszawa.pl":true,"waw.pl":true,"wegrow.pl":true,"wielun.pl":true,"wlocl.pl":true,"wloclawek.pl":true,"wodzislaw.pl":true,"wolomin.pl":true,"wroclaw.pl":true,"zachpomor.pl":true,"zagan.pl":true,"zarow.pl":true,"zgora.pl":true,"zgorzelec.pl":true,"pm":true,"pn":true,"gov.pn":true,"co.pn":true,"org.pn":true,"edu.pn":true,"net.pn":true,"post":true,"pr":true,"com.pr":true,"net.pr":true,"org.pr":true,"gov.pr":true,"edu.pr":true,"isla.pr":true,"pro.pr":true,"biz.pr":true,"info.pr":true,"name.pr":true,"est.pr":true,"prof.pr":true,"ac.pr":true,"pro":true,"aca.pro":true,"bar.pro":true,"cpa.pro":true,"jur.pro":true,"law.pro":true,"med.pro":true,"eng.pro":true,"ps":true,"edu.ps":true,"gov.ps":true,"sec.ps":true,"plo.ps":true,"com.ps":true,"org.ps":true,"net.ps":true,"pt":true,"net.pt":true,"gov.pt":true,"org.pt":true,"edu.pt":true,"int.pt":true,"publ.pt":true,"com.pt":true,"nome.pt":true,"pw":true,"co.pw":true,"ne.pw":true,"or.pw":true,"ed.pw":true,"go.pw":true,"belau.pw":true,"py":true,"com.py":true,"coop.py":true,"edu.py":true,"gov.py":true,"mil.py":true,"net.py":true,"org.py":true,"qa":true,"com.qa":true,"edu.qa":true,"gov.qa":true,"mil.qa":true,"name.qa":true,"net.qa":true,"org.qa":true,"sch.qa":true,"re":true,"com.re":true,"asso.re":true,"nom.re":true,"ro":true,"com.ro":true,"org.ro":true,"tm.ro":true,"nt.ro":true,"nom.ro":true,"info.ro":true,"rec.ro":true,"arts.ro":true,"firm.ro":true,"store.ro":true,"www.ro":true,"rs":true,"co.rs":true,"org.rs":true,"edu.rs":true,"ac.rs":true,"gov.rs":true,"in.rs":true,"ru":true,"ac.ru":true,"com.ru":true,"edu.ru":true,"int.ru":true,"net.ru":true,"org.ru":true,"pp.ru":true,"adygeya.ru":true,"altai.ru":true,"amur.ru":true,"arkhangelsk.ru":true,"astrakhan.ru":true,"bashkiria.ru":true,"belgorod.ru":true,"bir.ru":true,"bryansk.ru":true,"buryatia.ru":true,"cbg.ru":true,"chel.ru":true,"chelyabinsk.ru":true,"chita.ru":true,"chukotka.ru":true,"chuvashia.ru":true,"dagestan.ru":true,"dudinka.ru":true,"e-burg.ru":true,"grozny.ru":true,"irkutsk.ru":true,"ivanovo.ru":true,"izhevsk.ru":true,"jar.ru":true,"joshkar-ola.ru":true,"kalmykia.ru":true,"kaluga.ru":true,"kamchatka.ru":true,"karelia.ru":true,"kazan.ru":true,"kchr.ru":true,"kemerovo.ru":true,"khabarovsk.ru":true,"khakassia.ru":true,"khv.ru":true,"kirov.ru":true,"koenig.ru":true,"komi.ru":true,"kostroma.ru":true,"krasnoyarsk.ru":true,"kuban.ru":true,"kurgan.ru":true,"kursk.ru":true,"lipetsk.ru":true,"magadan.ru":true,"mari.ru":true,"mari-el.ru":true,"marine.ru":true,"mordovia.ru":true,"msk.ru":true,"murmansk.ru":true,"nalchik.ru":true,"nnov.ru":true,"nov.ru":true,"novosibirsk.ru":true,"nsk.ru":true,"omsk.ru":true,"orenburg.ru":true,"oryol.ru":true,"palana.ru":true,"penza.ru":true,"perm.ru":true,"ptz.ru":true,"rnd.ru":true,"ryazan.ru":true,"sakhalin.ru":true,"samara.ru":true,"saratov.ru":true,"simbirsk.ru":true,"smolensk.ru":true,"spb.ru":true,"stavropol.ru":true,"stv.ru":true,"surgut.ru":true,"tambov.ru":true,"tatarstan.ru":true,"tom.ru":true,"tomsk.ru":true,"tsaritsyn.ru":true,"tsk.ru":true,"tula.ru":true,"tuva.ru":true,"tver.ru":true,"tyumen.ru":true,"udm.ru":true,"udmurtia.ru":true,"ulan-ude.ru":true,"vladikavkaz.ru":true,"vladimir.ru":true,"vladivostok.ru":true,"volgograd.ru":true,"vologda.ru":true,"voronezh.ru":true,"vrn.ru":true,"vyatka.ru":true,"yakutia.ru":true,"yamal.ru":true,"yaroslavl.ru":true,"yekaterinburg.ru":true,"yuzhno-sakhalinsk.ru":true,"amursk.ru":true,"baikal.ru":true,"cmw.ru":true,"fareast.ru":true,"jamal.ru":true,"kms.ru":true,"k-uralsk.ru":true,"kustanai.ru":true,"kuzbass.ru":true,"magnitka.ru":true,"mytis.ru":true,"nakhodka.ru":true,"nkz.ru":true,"norilsk.ru":true,"oskol.ru":true,"pyatigorsk.ru":true,"rubtsovsk.ru":true,"snz.ru":true,"syzran.ru":true,"vdonsk.ru":true,"zgrad.ru":true,"gov.ru":true,"mil.ru":true,"test.ru":true,"rw":true,"gov.rw":true,"net.rw":true,"edu.rw":true,"ac.rw":true,"com.rw":true,"co.rw":true,"int.rw":true,"mil.rw":true,"gouv.rw":true,"sa":true,"com.sa":true,"net.sa":true,"org.sa":true,"gov.sa":true,"med.sa":true,"pub.sa":true,"edu.sa":true,"sch.sa":true,"sb":true,"com.sb":true,"edu.sb":true,"gov.sb":true,"net.sb":true,"org.sb":true,"sc":true,"com.sc":true,"gov.sc":true,"net.sc":true,"org.sc":true,"edu.sc":true,"sd":true,"com.sd":true,"net.sd":true,"org.sd":true,"edu.sd":true,"med.sd":true,"tv.sd":true,"gov.sd":true,"info.sd":true,"se":true,"a.se":true,"ac.se":true,"b.se":true,"bd.se":true,"brand.se":true,"c.se":true,"d.se":true,"e.se":true,"f.se":true,"fh.se":true,"fhsk.se":true,"fhv.se":true,"g.se":true,"h.se":true,"i.se":true,"k.se":true,"komforb.se":true,"kommunalforbund.se":true,"komvux.se":true,"l.se":true,"lanbib.se":true,"m.se":true,"n.se":true,"naturbruksgymn.se":true,"o.se":true,"org.se":true,"p.se":true,"parti.se":true,"pp.se":true,"press.se":true,"r.se":true,"s.se":true,"t.se":true,"tm.se":true,"u.se":true,"w.se":true,"x.se":true,"y.se":true,"z.se":true,"sg":true,"com.sg":true,"net.sg":true,"org.sg":true,"gov.sg":true,"edu.sg":true,"per.sg":true,"sh":true,"com.sh":true,"net.sh":true,"gov.sh":true,"org.sh":true,"mil.sh":true,"si":true,"sj":true,"sk":true,"sl":true,"com.sl":true,"net.sl":true,"edu.sl":true,"gov.sl":true,"org.sl":true,"sm":true,"sn":true,"art.sn":true,"com.sn":true,"edu.sn":true,"gouv.sn":true,"org.sn":true,"perso.sn":true,"univ.sn":true,"so":true,"com.so":true,"net.so":true,"org.so":true,"sr":true,"st":true,"co.st":true,"com.st":true,"consulado.st":true,"edu.st":true,"embaixada.st":true,"gov.st":true,"mil.st":true,"net.st":true,"org.st":true,"principe.st":true,"saotome.st":true,"store.st":true,"su":true,"adygeya.su":true,"arkhangelsk.su":true,"balashov.su":true,"bashkiria.su":true,"bryansk.su":true,"dagestan.su":true,"grozny.su":true,"ivanovo.su":true,"kalmykia.su":true,"kaluga.su":true,"karelia.su":true,"khakassia.su":true,"krasnodar.su":true,"kurgan.su":true,"lenug.su":true,"mordovia.su":true,"msk.su":true,"murmansk.su":true,"nalchik.su":true,"nov.su":true,"obninsk.su":true,"penza.su":true,"pokrovsk.su":true,"sochi.su":true,"spb.su":true,"togliatti.su":true,"troitsk.su":true,"tula.su":true,"tuva.su":true,"vladikavkaz.su":true,"vladimir.su":true,"vologda.su":true,"sv":true,"com.sv":true,"edu.sv":true,"gob.sv":true,"org.sv":true,"red.sv":true,"sx":true,"gov.sx":true,"sy":true,"edu.sy":true,"gov.sy":true,"net.sy":true,"mil.sy":true,"com.sy":true,"org.sy":true,"sz":true,"co.sz":true,"ac.sz":true,"org.sz":true,"tc":true,"td":true,"tel":true,"tf":true,"tg":true,"th":true,"ac.th":true,"co.th":true,"go.th":true,"in.th":true,"mi.th":true,"net.th":true,"or.th":true,"tj":true,"ac.tj":true,"biz.tj":true,"co.tj":true,"com.tj":true,"edu.tj":true,"go.tj":true,"gov.tj":true,"int.tj":true,"mil.tj":true,"name.tj":true,"net.tj":true,"nic.tj":true,"org.tj":true,"test.tj":true,"web.tj":true,"tk":true,"tl":true,"gov.tl":true,"tm":true,"com.tm":true,"co.tm":true,"org.tm":true,"net.tm":true,"nom.tm":true,"gov.tm":true,"mil.tm":true,"edu.tm":true,"tn":true,"com.tn":true,"ens.tn":true,"fin.tn":true,"gov.tn":true,"ind.tn":true,"intl.tn":true,"nat.tn":true,"net.tn":true,"org.tn":true,"info.tn":true,"perso.tn":true,"tourism.tn":true,"edunet.tn":true,"rnrt.tn":true,"rns.tn":true,"rnu.tn":true,"mincom.tn":true,"agrinet.tn":true,"defense.tn":true,"turen.tn":true,"to":true,"com.to":true,"gov.to":true,"net.to":true,"org.to":true,"edu.to":true,"mil.to":true,"tp":true,"tr":true,"com.tr":true,"info.tr":true,"biz.tr":true,"net.tr":true,"org.tr":true,"web.tr":true,"gen.tr":true,"tv.tr":true,"av.tr":true,"dr.tr":true,"bbs.tr":true,"name.tr":true,"tel.tr":true,"gov.tr":true,"bel.tr":true,"pol.tr":true,"mil.tr":true,"k12.tr":true,"edu.tr":true,"kep.tr":true,"nc.tr":true,"gov.nc.tr":true,"travel":true,"tt":true,"co.tt":true,"com.tt":true,"org.tt":true,"net.tt":true,"biz.tt":true,"info.tt":true,"pro.tt":true,"int.tt":true,"coop.tt":true,"jobs.tt":true,"mobi.tt":true,"travel.tt":true,"museum.tt":true,"aero.tt":true,"name.tt":true,"gov.tt":true,"edu.tt":true,"tv":true,"tw":true,"edu.tw":true,"gov.tw":true,"mil.tw":true,"com.tw":true,"net.tw":true,"org.tw":true,"idv.tw":true,"game.tw":true,"ebiz.tw":true,"club.tw":true,"xn--zf0ao64a.tw":true,"xn--uc0atv.tw":true,"xn--czrw28b.tw":true,"tz":true,"ac.tz":true,"co.tz":true,"go.tz":true,"hotel.tz":true,"info.tz":true,"me.tz":true,"mil.tz":true,"mobi.tz":true,"ne.tz":true,"or.tz":true,"sc.tz":true,"tv.tz":true,"ua":true,"com.ua":true,"edu.ua":true,"gov.ua":true,"in.ua":true,"net.ua":true,"org.ua":true,"cherkassy.ua":true,"cherkasy.ua":true,"chernigov.ua":true,"chernihiv.ua":true,"chernivtsi.ua":true,"chernovtsy.ua":true,"ck.ua":true,"cn.ua":true,"cr.ua":true,"crimea.ua":true,"cv.ua":true,"dn.ua":true,"dnepropetrovsk.ua":true,"dnipropetrovsk.ua":true,"dominic.ua":true,"donetsk.ua":true,"dp.ua":true,"if.ua":true,"ivano-frankivsk.ua":true,"kh.ua":true,"kharkiv.ua":true,"kharkov.ua":true,"kherson.ua":true,"khmelnitskiy.ua":true,"khmelnytskyi.ua":true,"kiev.ua":true,"kirovograd.ua":true,"km.ua":true,"kr.ua":true,"krym.ua":true,"ks.ua":true,"kv.ua":true,"kyiv.ua":true,"lg.ua":true,"lt.ua":true,"lugansk.ua":true,"lutsk.ua":true,"lv.ua":true,"lviv.ua":true,"mk.ua":true,"mykolaiv.ua":true,"nikolaev.ua":true,"od.ua":true,"odesa.ua":true,"odessa.ua":true,"pl.ua":true,"poltava.ua":true,"rivne.ua":true,"rovno.ua":true,"rv.ua":true,"sb.ua":true,"sebastopol.ua":true,"sevastopol.ua":true,"sm.ua":true,"sumy.ua":true,"te.ua":true,"ternopil.ua":true,"uz.ua":true,"uzhgorod.ua":true,"vinnica.ua":true,"vinnytsia.ua":true,"vn.ua":true,"volyn.ua":true,"yalta.ua":true,"zaporizhzhe.ua":true,"zaporizhzhia.ua":true,"zhitomir.ua":true,"zhytomyr.ua":true,"zp.ua":true,"zt.ua":true,"ug":true,"co.ug":true,"or.ug":true,"ac.ug":true,"sc.ug":true,"go.ug":true,"ne.ug":true,"com.ug":true,"org.ug":true,"uk":true,"ac.uk":true,"co.uk":true,"gov.uk":true,"ltd.uk":true,"me.uk":true,"net.uk":true,"nhs.uk":true,"org.uk":true,"plc.uk":true,"police.uk":true,"*.sch.uk":true,"us":true,"dni.us":true,"fed.us":true,"isa.us":true,"kids.us":true,"nsn.us":true,"ak.us":true,"al.us":true,"ar.us":true,"as.us":true,"az.us":true,"ca.us":true,"co.us":true,"ct.us":true,"dc.us":true,"de.us":true,"fl.us":true,"ga.us":true,"gu.us":true,"hi.us":true,"ia.us":true,"id.us":true,"il.us":true,"in.us":true,"ks.us":true,"ky.us":true,"la.us":true,"ma.us":true,"md.us":true,"me.us":true,"mi.us":true,"mn.us":true,"mo.us":true,"ms.us":true,"mt.us":true,"nc.us":true,"nd.us":true,"ne.us":true,"nh.us":true,"nj.us":true,"nm.us":true,"nv.us":true,"ny.us":true,"oh.us":true,"ok.us":true,"or.us":true,"pa.us":true,"pr.us":true,"ri.us":true,"sc.us":true,"sd.us":true,"tn.us":true,"tx.us":true,"ut.us":true,"vi.us":true,"vt.us":true,"va.us":true,"wa.us":true,"wi.us":true,"wv.us":true,"wy.us":true,"k12.ak.us":true,"k12.al.us":true,"k12.ar.us":true,"k12.as.us":true,"k12.az.us":true,"k12.ca.us":true,"k12.co.us":true,"k12.ct.us":true,"k12.dc.us":true,"k12.de.us":true,"k12.fl.us":true,"k12.ga.us":true,"k12.gu.us":true,"k12.ia.us":true,"k12.id.us":true,"k12.il.us":true,"k12.in.us":true,"k12.ks.us":true,"k12.ky.us":true,"k12.la.us":true,"k12.ma.us":true,"k12.md.us":true,"k12.me.us":true,"k12.mi.us":true,"k12.mn.us":true,"k12.mo.us":true,"k12.ms.us":true,"k12.mt.us":true,"k12.nc.us":true,"k12.ne.us":true,"k12.nh.us":true,"k12.nj.us":true,"k12.nm.us":true,"k12.nv.us":true,"k12.ny.us":true,"k12.oh.us":true,"k12.ok.us":true,"k12.or.us":true,"k12.pa.us":true,"k12.pr.us":true,"k12.ri.us":true,"k12.sc.us":true,"k12.tn.us":true,"k12.tx.us":true,"k12.ut.us":true,"k12.vi.us":true,"k12.vt.us":true,"k12.va.us":true,"k12.wa.us":true,"k12.wi.us":true,"k12.wy.us":true,"cc.ak.us":true,"cc.al.us":true,"cc.ar.us":true,"cc.as.us":true,"cc.az.us":true,"cc.ca.us":true,"cc.co.us":true,"cc.ct.us":true,"cc.dc.us":true,"cc.de.us":true,"cc.fl.us":true,"cc.ga.us":true,"cc.gu.us":true,"cc.hi.us":true,"cc.ia.us":true,"cc.id.us":true,"cc.il.us":true,"cc.in.us":true,"cc.ks.us":true,"cc.ky.us":true,"cc.la.us":true,"cc.ma.us":true,"cc.md.us":true,"cc.me.us":true,"cc.mi.us":true,"cc.mn.us":true,"cc.mo.us":true,"cc.ms.us":true,"cc.mt.us":true,"cc.nc.us":true,"cc.nd.us":true,"cc.ne.us":true,"cc.nh.us":true,"cc.nj.us":true,"cc.nm.us":true,"cc.nv.us":true,"cc.ny.us":true,"cc.oh.us":true,"cc.ok.us":true,"cc.or.us":true,"cc.pa.us":true,"cc.pr.us":true,"cc.ri.us":true,"cc.sc.us":true,"cc.sd.us":true,"cc.tn.us":true,"cc.tx.us":true,"cc.ut.us":true,"cc.vi.us":true,"cc.vt.us":true,"cc.va.us":true,"cc.wa.us":true,"cc.wi.us":true,"cc.wv.us":true,"cc.wy.us":true,"lib.ak.us":true,"lib.al.us":true,"lib.ar.us":true,"lib.as.us":true,"lib.az.us":true,"lib.ca.us":true,"lib.co.us":true,"lib.ct.us":true,"lib.dc.us":true,"lib.de.us":true,"lib.fl.us":true,"lib.ga.us":true,"lib.gu.us":true,"lib.hi.us":true,"lib.ia.us":true,"lib.id.us":true,"lib.il.us":true,"lib.in.us":true,"lib.ks.us":true,"lib.ky.us":true,"lib.la.us":true,"lib.ma.us":true,"lib.md.us":true,"lib.me.us":true,"lib.mi.us":true,"lib.mn.us":true,"lib.mo.us":true,"lib.ms.us":true,"lib.mt.us":true,"lib.nc.us":true,"lib.nd.us":true,"lib.ne.us":true,"lib.nh.us":true,"lib.nj.us":true,"lib.nm.us":true,"lib.nv.us":true,"lib.ny.us":true,"lib.oh.us":true,"lib.ok.us":true,"lib.or.us":true,"lib.pa.us":true,"lib.pr.us":true,"lib.ri.us":true,"lib.sc.us":true,"lib.sd.us":true,"lib.tn.us":true,"lib.tx.us":true,"lib.ut.us":true,"lib.vi.us":true,"lib.vt.us":true,"lib.va.us":true,"lib.wa.us":true,"lib.wi.us":true,"lib.wy.us":true,"pvt.k12.ma.us":true,"chtr.k12.ma.us":true,"paroch.k12.ma.us":true,"uy":true,"com.uy":true,"edu.uy":true,"gub.uy":true,"mil.uy":true,"net.uy":true,"org.uy":true,"uz":true,"co.uz":true,"com.uz":true,"net.uz":true,"org.uz":true,"va":true,"vc":true,"com.vc":true,"net.vc":true,"org.vc":true,"gov.vc":true,"mil.vc":true,"edu.vc":true,"ve":true,"arts.ve":true,"co.ve":true,"com.ve":true,"e12.ve":true,"edu.ve":true,"firm.ve":true,"gob.ve":true,"gov.ve":true,"info.ve":true,"int.ve":true,"mil.ve":true,"net.ve":true,"org.ve":true,"rec.ve":true,"store.ve":true,"tec.ve":true,"web.ve":true,"vg":true,"vi":true,"co.vi":true,"com.vi":true,"k12.vi":true,"net.vi":true,"org.vi":true,"vn":true,"com.vn":true,"net.vn":true,"org.vn":true,"edu.vn":true,"gov.vn":true,"int.vn":true,"ac.vn":true,"biz.vn":true,"info.vn":true,"name.vn":true,"pro.vn":true,"health.vn":true,"vu":true,"com.vu":true,"edu.vu":true,"net.vu":true,"org.vu":true,"wf":true,"ws":true,"com.ws":true,"net.ws":true,"org.ws":true,"gov.ws":true,"edu.ws":true,"yt":true,"xn--mgbaam7a8h":true,"xn--y9a3aq":true,"xn--54b7fta0cc":true,"xn--90ais":true,"xn--fiqs8s":true,"xn--fiqz9s":true,"xn--lgbbat1ad8j":true,"xn--wgbh1c":true,"xn--node":true,"xn--qxam":true,"xn--j6w193g":true,"xn--h2brj9c":true,"xn--mgbbh1a71e":true,"xn--fpcrj9c3d":true,"xn--gecrj9c":true,"xn--s9brj9c":true,"xn--45brj9c":true,"xn--xkc2dl3a5ee0h":true,"xn--mgba3a4f16a":true,"xn--mgba3a4fra":true,"xn--mgbtx2b":true,"xn--mgbayh7gpa":true,"xn--3e0b707e":true,"xn--80ao21a":true,"xn--fzc2c9e2c":true,"xn--xkc2al3hye2a":true,"xn--mgbc0a9azcg":true,"xn--d1alf":true,"xn--l1acc":true,"xn--mix891f":true,"xn--mix082f":true,"xn--mgbx4cd0ab":true,"xn--mgb9awbf":true,"xn--mgbai9azgqp6j":true,"xn--mgbai9a5eva00b":true,"xn--ygbi2ammx":true,"xn--90a3ac":true,"xn--o1ac.xn--90a3ac":true,"xn--c1avg.xn--90a3ac":true,"xn--90azh.xn--90a3ac":true,"xn--d1at.xn--90a3ac":true,"xn--o1ach.xn--90a3ac":true,"xn--80au.xn--90a3ac":true,"xn--p1ai":true,"xn--wgbl6a":true,"xn--mgberp4a5d4ar":true,"xn--mgberp4a5d4a87g":true,"xn--mgbqly7c0a67fbc":true,"xn--mgbqly7cvafr":true,"xn--mgbpl2fh":true,"xn--yfro4i67o":true,"xn--clchc0ea0b2g2a9gcd":true,"xn--ogbpf8fl":true,"xn--mgbtf8fl":true,"xn--o3cw4h":true,"xn--pgbs0dh":true,"xn--kpry57d":true,"xn--kprw13d":true,"xn--nnx388a":true,"xn--j1amh":true,"xn--mgb2ddes":true,"xxx":true,"*.ye":true,"ac.za":true,"agrica.za":true,"alt.za":true,"co.za":true,"edu.za":true,"gov.za":true,"grondar.za":true,"law.za":true,"mil.za":true,"net.za":true,"ngo.za":true,"nis.za":true,"nom.za":true,"org.za":true,"school.za":true,"tm.za":true,"web.za":true,"*.zm":true,"*.zw":true,"aaa":true,"aarp":true,"abarth":true,"abb":true,"abbott":true,"abbvie":true,"abc":true,"able":true,"abogado":true,"abudhabi":true,"academy":true,"accenture":true,"accountant":true,"accountants":true,"aco":true,"active":true,"actor":true,"adac":true,"ads":true,"adult":true,"aeg":true,"aetna":true,"afamilycompany":true,"afl":true,"africa":true,"africamagic":true,"agakhan":true,"agency":true,"aig":true,"aigo":true,"airbus":true,"airforce":true,"airtel":true,"akdn":true,"alfaromeo":true,"alibaba":true,"alipay":true,"allfinanz":true,"allstate":true,"ally":true,"alsace":true,"alstom":true,"americanexpress":true,"americanfamily":true,"amex":true,"amfam":true,"amica":true,"amsterdam":true,"analytics":true,"android":true,"anquan":true,"anz":true,"aol":true,"apartments":true,"app":true,"apple":true,"aquarelle":true,"aramco":true,"archi":true,"army":true,"arte":true,"asda":true,"associates":true,"athleta":true,"attorney":true,"auction":true,"audi":true,"audible":true,"audio":true,"auspost":true,"author":true,"auto":true,"autos":true,"avianca":true,"aws":true,"axa":true,"azure":true,"baby":true,"baidu":true,"banamex":true,"bananarepublic":true,"band":true,"bank":true,"bar":true,"barcelona":true,"barclaycard":true,"barclays":true,"barefoot":true,"bargains":true,"basketball":true,"bauhaus":true,"bayern":true,"bbc":true,"bbt":true,"bbva":true,"bcg":true,"bcn":true,"beats":true,"beer":true,"bentley":true,"berlin":true,"best":true,"bestbuy":true,"bet":true,"bharti":true,"bible":true,"bid":true,"bike":true,"bing":true,"bingo":true,"bio":true,"black":true,"blackfriday":true,"blanco":true,"blockbuster":true,"blog":true,"bloomberg":true,"blue":true,"bms":true,"bmw":true,"bnl":true,"bnpparibas":true,"boats":true,"boehringer":true,"bofa":true,"bom":true,"bond":true,"boo":true,"book":true,"booking":true,"boots":true,"bosch":true,"bostik":true,"bot":true,"boutique":true,"bradesco":true,"bridgestone":true,"broadway":true,"broker":true,"brother":true,"brussels":true,"budapest":true,"bugatti":true,"build":true,"builders":true,"business":true,"buy":true,"buzz":true,"bzh":true,"cab":true,"cafe":true,"cal":true,"call":true,"calvinklein":true,"camera":true,"camp":true,"cancerresearch":true,"canon":true,"capetown":true,"capital":true,"capitalone":true,"car":true,"caravan":true,"cards":true,"care":true,"career":true,"careers":true,"cars":true,"cartier":true,"casa":true,"case":true,"caseih":true,"cash":true,"casino":true,"catering":true,"cba":true,"cbn":true,"cbre":true,"cbs":true,"ceb":true,"center":true,"ceo":true,"cern":true,"cfa":true,"cfd":true,"chanel":true,"channel":true,"chase":true,"chat":true,"cheap":true,"chintai":true,"chloe":true,"christmas":true,"chrome":true,"chrysler":true,"church":true,"cipriani":true,"circle":true,"cisco":true,"citadel":true,"citi":true,"citic":true,"city":true,"cityeats":true,"claims":true,"cleaning":true,"click":true,"clinic":true,"clothing":true,"cloud":true,"club":true,"clubmed":true,"coach":true,"codes":true,"coffee":true,"college":true,"cologne":true,"comcast":true,"commbank":true,"community":true,"company":true,"computer":true,"comsec":true,"condos":true,"construction":true,"consulting":true,"contact":true,"contractors":true,"cooking":true,"cookingchannel":true,"cool":true,"corsica":true,"country":true,"coupon":true,"coupons":true,"courses":true,"credit":true,"creditcard":true,"creditunion":true,"cricket":true,"crown":true,"crs":true,"cruises":true,"csc":true,"cuisinella":true,"cymru":true,"cyou":true,"dabur":true,"dad":true,"dance":true,"date":true,"dating":true,"datsun":true,"day":true,"dclk":true,"dds":true,"deal":true,"dealer":true,"deals":true,"degree":true,"delivery":true,"dell":true,"deloitte":true,"delta":true,"democrat":true,"dental":true,"dentist":true,"desi":true,"design":true,"dev":true,"dhl":true,"diamonds":true,"diet":true,"digital":true,"direct":true,"directory":true,"discount":true,"discover":true,"dish":true,"dnp":true,"docs":true,"dodge":true,"dog":true,"doha":true,"domains":true,"doosan":true,"dot":true,"download":true,"drive":true,"dstv":true,"dtv":true,"dubai":true,"duck":true,"dunlop":true,"duns":true,"dupont":true,"durban":true,"dvag":true,"dwg":true,"earth":true,"eat":true,"edeka":true,"education":true,"email":true,"emerck":true,"emerson":true,"energy":true,"engineer":true,"engineering":true,"enterprises":true,"epost":true,"epson":true,"equipment":true,"ericsson":true,"erni":true,"esq":true,"estate":true,"esurance":true,"etisalat":true,"eurovision":true,"eus":true,"events":true,"everbank":true,"exchange":true,"expert":true,"exposed":true,"express":true,"extraspace":true,"fage":true,"fail":true,"fairwinds":true,"faith":true,"family":true,"fan":true,"fans":true,"farm":true,"farmers":true,"fashion":true,"fast":true,"fedex":true,"feedback":true,"ferrari":true,"ferrero":true,"fiat":true,"fidelity":true,"fido":true,"film":true,"final":true,"finance":true,"financial":true,"fire":true,"firestone":true,"firmdale":true,"fish":true,"fishing":true,"fit":true,"fitness":true,"flickr":true,"flights":true,"flir":true,"florist":true,"flowers":true,"flsmidth":true,"fly":true,"foo":true,"foodnetwork":true,"football":true,"ford":true,"forex":true,"forsale":true,"forum":true,"foundation":true,"fox":true,"fresenius":true,"frl":true,"frogans":true,"frontdoor":true,"frontier":true,"ftr":true,"fujitsu":true,"fujixerox":true,"fund":true,"furniture":true,"futbol":true,"fyi":true,"gal":true,"gallery":true,"gallo":true,"gallup":true,"game":true,"games":true,"gap":true,"garden":true,"gbiz":true,"gdn":true,"gea":true,"gent":true,"genting":true,"george":true,"ggee":true,"gift":true,"gifts":true,"gives":true,"giving":true,"glade":true,"glass":true,"gle":true,"global":true,"globo":true,"gmail":true,"gmo":true,"gmx":true,"godaddy":true,"gold":true,"goldpoint":true,"golf":true,"goo":true,"goodhands":true,"goodyear":true,"goog":true,"google":true,"gop":true,"got":true,"gotv":true,"grainger":true,"graphics":true,"gratis":true,"green":true,"gripe":true,"group":true,"guardian":true,"gucci":true,"guge":true,"guide":true,"guitars":true,"guru":true,"hamburg":true,"hangout":true,"haus":true,"hbo":true,"hdfc":true,"hdfcbank":true,"health":true,"healthcare":true,"help":true,"helsinki":true,"here":true,"hermes":true,"hgtv":true,"hiphop":true,"hisamitsu":true,"hitachi":true,"hiv":true,"hkt":true,"hockey":true,"holdings":true,"holiday":true,"homedepot":true,"homegoods":true,"homes":true,"homesense":true,"honda":true,"honeywell":true,"horse":true,"host":true,"hosting":true,"hot":true,"hoteles":true,"hotmail":true,"house":true,"how":true,"hsbc":true,"htc":true,"hughes":true,"hyatt":true,"hyundai":true,"ibm":true,"icbc":true,"ice":true,"icu":true,"ieee":true,"ifm":true,"iinet":true,"ikano":true,"imamat":true,"imdb":true,"immo":true,"immobilien":true,"industries":true,"infiniti":true,"ing":true,"ink":true,"institute":true,"insurance":true,"insure":true,"intel":true,"international":true,"intuit":true,"investments":true,"ipiranga":true,"irish":true,"iselect":true,"ismaili":true,"ist":true,"istanbul":true,"itau":true,"itv":true,"iveco":true,"iwc":true,"jaguar":true,"java":true,"jcb":true,"jcp":true,"jeep":true,"jetzt":true,"jewelry":true,"jio":true,"jlc":true,"jll":true,"jmp":true,"jnj":true,"joburg":true,"jot":true,"joy":true,"jpmorgan":true,"jprs":true,"juegos":true,"juniper":true,"kaufen":true,"kddi":true,"kerryhotels":true,"kerrylogistics":true,"kerryproperties":true,"kfh":true,"kia":true,"kim":true,"kinder":true,"kindle":true,"kitchen":true,"kiwi":true,"koeln":true,"komatsu":true,"kosher":true,"kpmg":true,"kpn":true,"krd":true,"kred":true,"kuokgroup":true,"kyknet":true,"kyoto":true,"lacaixa":true,"ladbrokes":true,"lamborghini":true,"lancaster":true,"lancia":true,"lancome":true,"land":true,"landrover":true,"lanxess":true,"lasalle":true,"lat":true,"latino":true,"latrobe":true,"law":true,"lawyer":true,"lds":true,"lease":true,"leclerc":true,"lefrak":true,"legal":true,"lego":true,"lexus":true,"lgbt":true,"liaison":true,"lidl":true,"life":true,"lifeinsurance":true,"lifestyle":true,"lighting":true,"like":true,"lilly":true,"limited":true,"limo":true,"lincoln":true,"linde":true,"link":true,"lipsy":true,"live":true,"living":true,"lixil":true,"loan":true,"loans":true,"locker":true,"locus":true,"loft":true,"lol":true,"london":true,"lotte":true,"lotto":true,"love":true,"lpl":true,"lplfinancial":true,"ltd":true,"ltda":true,"lundbeck":true,"lupin":true,"luxe":true,"luxury":true,"macys":true,"madrid":true,"maif":true,"maison":true,"makeup":true,"man":true,"management":true,"mango":true,"market":true,"marketing":true,"markets":true,"marriott":true,"marshalls":true,"maserati":true,"mattel":true,"mba":true,"mcd":true,"mcdonalds":true,"mckinsey":true,"med":true,"media":true,"meet":true,"melbourne":true,"meme":true,"memorial":true,"men":true,"menu":true,"meo":true,"metlife":true,"miami":true,"microsoft":true,"mini":true,"mint":true,"mit":true,"mitsubishi":true,"mlb":true,"mls":true,"mma":true,"mnet":true,"mobily":true,"moda":true,"moe":true,"moi":true,"mom":true,"monash":true,"money":true,"monster":true,"montblanc":true,"mopar":true,"mormon":true,"mortgage":true,"moscow":true,"moto":true,"motorcycles":true,"mov":true,"movie":true,"movistar":true,"msd":true,"mtn":true,"mtpc":true,"mtr":true,"multichoice":true,"mutual":true,"mutuelle":true,"mzansimagic":true,"nab":true,"nadex":true,"nagoya":true,"naspers":true,"nationwide":true,"natura":true,"navy":true,"nba":true,"nec":true,"netbank":true,"netflix":true,"network":true,"neustar":true,"new":true,"newholland":true,"news":true,"next":true,"nextdirect":true,"nexus":true,"nfl":true,"ngo":true,"nhk":true,"nico":true,"nike":true,"nikon":true,"ninja":true,"nissan":true,"nokia":true,"northwesternmutual":true,"norton":true,"now":true,"nowruz":true,"nowtv":true,"nra":true,"nrw":true,"ntt":true,"nyc":true,"obi":true,"observer":true,"off":true,"office":true,"okinawa":true,"olayan":true,"olayangroup":true,"oldnavy":true,"ollo":true,"omega":true,"one":true,"ong":true,"onl":true,"online":true,"onyourside":true,"ooo":true,"open":true,"oracle":true,"orange":true,"organic":true,"orientexpress":true,"osaka":true,"otsuka":true,"ott":true,"ovh":true,"page":true,"pamperedchef":true,"panasonic":true,"panerai":true,"paris":true,"pars":true,"partners":true,"parts":true,"party":true,"passagens":true,"pay":true,"payu":true,"pccw":true,"pet":true,"pfizer":true,"pharmacy":true,"philips":true,"photo":true,"photography":true,"photos":true,"physio":true,"piaget":true,"pics":true,"pictet":true,"pictures":true,"pid":true,"pin":true,"ping":true,"pink":true,"pioneer":true,"pizza":true,"place":true,"play":true,"playstation":true,"plumbing":true,"plus":true,"pnc":true,"pohl":true,"poker":true,"politie":true,"porn":true,"pramerica":true,"praxi":true,"press":true,"prime":true,"prod":true,"productions":true,"prof":true,"progressive":true,"promo":true,"properties":true,"property":true,"protection":true,"pru":true,"prudential":true,"pub":true,"qpon":true,"quebec":true,"quest":true,"qvc":true,"racing":true,"raid":true,"read":true,"realestate":true,"realtor":true,"realty":true,"recipes":true,"red":true,"redstone":true,"redumbrella":true,"rehab":true,"reise":true,"reisen":true,"reit":true,"reliance":true,"ren":true,"rent":true,"rentals":true,"repair":true,"report":true,"republican":true,"rest":true,"restaurant":true,"review":true,"reviews":true,"rexroth":true,"rich":true,"richardli":true,"ricoh":true,"rightathome":true,"ril":true,"rio":true,"rip":true,"rocher":true,"rocks":true,"rodeo":true,"rogers":true,"room":true,"rsvp":true,"ruhr":true,"run":true,"rwe":true,"ryukyu":true,"saarland":true,"safe":true,"safety":true,"sakura":true,"sale":true,"salon":true,"samsclub":true,"samsung":true,"sandvik":true,"sandvikcoromant":true,"sanofi":true,"sap":true,"sapo":true,"sarl":true,"sas":true,"save":true,"saxo":true,"sbi":true,"sbs":true,"sca":true,"scb":true,"schaeffler":true,"schmidt":true,"scholarships":true,"school":true,"schule":true,"schwarz":true,"science":true,"scjohnson":true,"scor":true,"scot":true,"seat":true,"secure":true,"security":true,"seek":true,"sener":true,"services":true,"ses":true,"seven":true,"sew":true,"sex":true,"sexy":true,"sfr":true,"shangrila":true,"sharp":true,"shaw":true,"shell":true,"shia":true,"shiksha":true,"shoes":true,"shouji":true,"show":true,"showtime":true,"shriram":true,"silk":true,"sina":true,"singles":true,"site":true,"ski":true,"skin":true,"sky":true,"skype":true,"sling":true,"smart":true,"smile":true,"sncf":true,"soccer":true,"social":true,"softbank":true,"software":true,"sohu":true,"solar":true,"solutions":true,"song":true,"sony":true,"soy":true,"space":true,"spiegel":true,"spot":true,"spreadbetting":true,"srl":true,"srt":true,"stada":true,"staples":true,"star":true,"starhub":true,"statebank":true,"statefarm":true,"statoil":true,"stc":true,"stcgroup":true,"stockholm":true,"storage":true,"store":true,"studio":true,"study":true,"style":true,"sucks":true,"supersport":true,"supplies":true,"supply":true,"support":true,"surf":true,"surgery":true,"suzuki":true,"swatch":true,"swiftcover":true,"swiss":true,"sydney":true,"symantec":true,"systems":true,"tab":true,"taipei":true,"talk":true,"taobao":true,"target":true,"tatamotors":true,"tatar":true,"tattoo":true,"tax":true,"taxi":true,"tci":true,"tdk":true,"team":true,"tech":true,"technology":true,"telecity":true,"telefonica":true,"temasek":true,"tennis":true,"teva":true,"thd":true,"theater":true,"theatre":true,"theguardian":true,"tiaa":true,"tickets":true,"tienda":true,"tiffany":true,"tips":true,"tires":true,"tirol":true,"tjmaxx":true,"tjx":true,"tkmaxx":true,"tmall":true,"today":true,"tokyo":true,"tools":true,"top":true,"toray":true,"toshiba":true,"total":true,"tours":true,"town":true,"toyota":true,"toys":true,"trade":true,"trading":true,"training":true,"travelchannel":true,"travelers":true,"travelersinsurance":true,"trust":true,"trv":true,"tube":true,"tui":true,"tunes":true,"tushu":true,"tvs":true,"ubank":true,"ubs":true,"uconnect":true,"university":true,"uno":true,"uol":true,"ups":true,"vacations":true,"vana":true,"vanguard":true,"vegas":true,"ventures":true,"verisign":true,"versicherung":true,"vet":true,"viajes":true,"video":true,"vig":true,"viking":true,"villas":true,"vin":true,"vip":true,"virgin":true,"visa":true,"vision":true,"vista":true,"vistaprint":true,"viva":true,"vivo":true,"vlaanderen":true,"vodka":true,"volkswagen":true,"vote":true,"voting":true,"voto":true,"voyage":true,"vuelos":true,"wales":true,"walmart":true,"walter":true,"wang":true,"wanggou":true,"warman":true,"watch":true,"watches":true,"weather":true,"weatherchannel":true,"webcam":true,"weber":true,"website":true,"wed":true,"wedding":true,"weibo":true,"weir":true,"whoswho":true,"wien":true,"wiki":true,"williamhill":true,"win":true,"windows":true,"wine":true,"winners":true,"wme":true,"wolterskluwer":true,"woodside":true,"work":true,"works":true,"world":true,"wtc":true,"wtf":true,"xbox":true,"xerox":true,"xfinity":true,"xihuan":true,"xin":true,"xn--11b4c3d":true,"xn--1ck2e1b":true,"xn--1qqw23a":true,"xn--30rr7y":true,"xn--3bst00m":true,"xn--3ds443g":true,"xn--3oq18vl8pn36a":true,"xn--3pxu8k":true,"xn--42c2d9a":true,"xn--45q11c":true,"xn--4gbrim":true,"xn--4gq48lf9j":true,"xn--55qw42g":true,"xn--55qx5d":true,"xn--5su34j936bgsg":true,"xn--5tzm5g":true,"xn--6frz82g":true,"xn--6qq986b3xl":true,"xn--80adxhks":true,"xn--80asehdb":true,"xn--80aswg":true,"xn--8y0a063a":true,"xn--9dbq2a":true,"xn--9et52u":true,"xn--9krt00a":true,"xn--b4w605ferd":true,"xn--bck1b9a5dre4c":true,"xn--c1avg":true,"xn--c2br7g":true,"xn--cck2b3b":true,"xn--cg4bki":true,"xn--czr694b":true,"xn--czrs0t":true,"xn--czru2d":true,"xn--d1acj3b":true,"xn--eckvdtc9d":true,"xn--efvy88h":true,"xn--estv75g":true,"xn--fct429k":true,"xn--fhbei":true,"xn--fiq228c5hs":true,"xn--fiq64b":true,"xn--fjq720a":true,"xn--flw351e":true,"xn--fzys8d69uvgm":true,"xn--g2xx48c":true,"xn--gckr3f0f":true,"xn--hxt814e":true,"xn--i1b6b1a6a2e":true,"xn--imr513n":true,"xn--io0a7i":true,"xn--j1aef":true,"xn--jlq61u9w7b":true,"xn--jvr189m":true,"xn--kcrx77d1x4a":true,"xn--kpu716f":true,"xn--kput3i":true,"xn--mgba3a3ejt":true,"xn--mgba7c0bbn0a":true,"xn--mgbaakc7dvf":true,"xn--mgbab2bd":true,"xn--mgbb9fbpob":true,"xn--mgbca7dzdo":true,"xn--mgbt3dhd":true,"xn--mk1bu44c":true,"xn--mxtq1m":true,"xn--ngbc5azd":true,"xn--ngbe9e0a":true,"xn--nqv7f":true,"xn--nqv7fs00ema":true,"xn--nyqy26a":true,"xn--p1acf":true,"xn--pbt977c":true,"xn--pssy2u":true,"xn--q9jyb4c":true,"xn--qcka1pmc":true,"xn--rhqv96g":true,"xn--rovu88b":true,"xn--ses554g":true,"xn--t60b56a":true,"xn--tckwe":true,"xn--unup4y":true,"xn--vermgensberater-ctb":true,"xn--vermgensberatung-pwb":true,"xn--vhquv":true,"xn--vuq861b":true,"xn--w4r85el8fhu5dnra":true,"xn--w4rs40l":true,"xn--xhq521b":true,"xn--zfr164b":true,"xperia":true,"xyz":true,"yachts":true,"yahoo":true,"yamaxun":true,"yandex":true,"yodobashi":true,"yoga":true,"yokohama":true,"you":true,"youtube":true,"yun":true,"zappos":true,"zara":true,"zero":true,"zip":true,"zippo":true,"zone":true,"zuerich":true,"cloudfront.net":true,"ap-northeast-1.compute.amazonaws.com":true,"ap-southeast-1.compute.amazonaws.com":true,"ap-southeast-2.compute.amazonaws.com":true,"cn-north-1.compute.amazonaws.cn":true,"compute.amazonaws.cn":true,"compute.amazonaws.com":true,"compute-1.amazonaws.com":true,"eu-west-1.compute.amazonaws.com":true,"eu-central-1.compute.amazonaws.com":true,"sa-east-1.compute.amazonaws.com":true,"us-east-1.amazonaws.com":true,"us-gov-west-1.compute.amazonaws.com":true,"us-west-1.compute.amazonaws.com":true,"us-west-2.compute.amazonaws.com":true,"z-1.compute-1.amazonaws.com":true,"z-2.compute-1.amazonaws.com":true,"elasticbeanstalk.com":true,"elb.amazonaws.com":true,"s3.amazonaws.com":true,"s3-ap-northeast-1.amazonaws.com":true,"s3-ap-southeast-1.amazonaws.com":true,"s3-ap-southeast-2.amazonaws.com":true,"s3-external-1.amazonaws.com":true,"s3-external-2.amazonaws.com":true,"s3-fips-us-gov-west-1.amazonaws.com":true,"s3-eu-central-1.amazonaws.com":true,"s3-eu-west-1.amazonaws.com":true,"s3-sa-east-1.amazonaws.com":true,"s3-us-gov-west-1.amazonaws.com":true,"s3-us-west-1.amazonaws.com":true,"s3-us-west-2.amazonaws.com":true,"s3.cn-north-1.amazonaws.com.cn":true,"s3.eu-central-1.amazonaws.com":true,"betainabox.com":true,"ae.org":true,"ar.com":true,"br.com":true,"cn.com":true,"com.de":true,"com.se":true,"de.com":true,"eu.com":true,"gb.com":true,"gb.net":true,"hu.com":true,"hu.net":true,"jp.net":true,"jpn.com":true,"kr.com":true,"mex.com":true,"no.com":true,"qc.com":true,"ru.com":true,"sa.com":true,"se.com":true,"se.net":true,"uk.com":true,"uk.net":true,"us.com":true,"uy.com":true,"za.bz":true,"za.com":true,"africa.com":true,"gr.com":true,"in.net":true,"us.org":true,"co.com":true,"c.la":true,"cloudcontrolled.com":true,"cloudcontrolapp.com":true,"co.ca":true,"c.cdn77.org":true,"cdn77-ssl.net":true,"r.cdn77.net":true,"rsc.cdn77.org":true,"ssl.origin.cdn77-secure.org":true,"co.nl":true,"co.no":true,"*.platform.sh":true,"cupcake.is":true,"dreamhosters.com":true,"duckdns.org":true,"dyndns-at-home.com":true,"dyndns-at-work.com":true,"dyndns-blog.com":true,"dyndns-free.com":true,"dyndns-home.com":true,"dyndns-ip.com":true,"dyndns-mail.com":true,"dyndns-office.com":true,"dyndns-pics.com":true,"dyndns-remote.com":true,"dyndns-server.com":true,"dyndns-web.com":true,"dyndns-wiki.com":true,"dyndns-work.com":true,"dyndns.biz":true,"dyndns.info":true,"dyndns.org":true,"dyndns.tv":true,"at-band-camp.net":true,"ath.cx":true,"barrel-of-knowledge.info":true,"barrell-of-knowledge.info":true,"better-than.tv":true,"blogdns.com":true,"blogdns.net":true,"blogdns.org":true,"blogsite.org":true,"boldlygoingnowhere.org":true,"broke-it.net":true,"buyshouses.net":true,"cechire.com":true,"dnsalias.com":true,"dnsalias.net":true,"dnsalias.org":true,"dnsdojo.com":true,"dnsdojo.net":true,"dnsdojo.org":true,"does-it.net":true,"doesntexist.com":true,"doesntexist.org":true,"dontexist.com":true,"dontexist.net":true,"dontexist.org":true,"doomdns.com":true,"doomdns.org":true,"dvrdns.org":true,"dyn-o-saur.com":true,"dynalias.com":true,"dynalias.net":true,"dynalias.org":true,"dynathome.net":true,"dyndns.ws":true,"endofinternet.net":true,"endofinternet.org":true,"endoftheinternet.org":true,"est-a-la-maison.com":true,"est-a-la-masion.com":true,"est-le-patron.com":true,"est-mon-blogueur.com":true,"for-better.biz":true,"for-more.biz":true,"for-our.info":true,"for-some.biz":true,"for-the.biz":true,"forgot.her.name":true,"forgot.his.name":true,"from-ak.com":true,"from-al.com":true,"from-ar.com":true,"from-az.net":true,"from-ca.com":true,"from-co.net":true,"from-ct.com":true,"from-dc.com":true,"from-de.com":true,"from-fl.com":true,"from-ga.com":true,"from-hi.com":true,"from-ia.com":true,"from-id.com":true,"from-il.com":true,"from-in.com":true,"from-ks.com":true,"from-ky.com":true,"from-la.net":true,"from-ma.com":true,"from-md.com":true,"from-me.org":true,"from-mi.com":true,"from-mn.com":true,"from-mo.com":true,"from-ms.com":true,"from-mt.com":true,"from-nc.com":true,"from-nd.com":true,"from-ne.com":true,"from-nh.com":true,"from-nj.com":true,"from-nm.com":true,"from-nv.com":true,"from-ny.net":true,"from-oh.com":true,"from-ok.com":true,"from-or.com":true,"from-pa.com":true,"from-pr.com":true,"from-ri.com":true,"from-sc.com":true,"from-sd.com":true,"from-tn.com":true,"from-tx.com":true,"from-ut.com":true,"from-va.com":true,"from-vt.com":true,"from-wa.com":true,"from-wi.com":true,"from-wv.com":true,"from-wy.com":true,"ftpaccess.cc":true,"fuettertdasnetz.de":true,"game-host.org":true,"game-server.cc":true,"getmyip.com":true,"gets-it.net":true,"go.dyndns.org":true,"gotdns.com":true,"gotdns.org":true,"groks-the.info":true,"groks-this.info":true,"ham-radio-op.net":true,"here-for-more.info":true,"hobby-site.com":true,"hobby-site.org":true,"home.dyndns.org":true,"homedns.org":true,"homeftp.net":true,"homeftp.org":true,"homeip.net":true,"homelinux.com":true,"homelinux.net":true,"homelinux.org":true,"homeunix.com":true,"homeunix.net":true,"homeunix.org":true,"iamallama.com":true,"in-the-band.net":true,"is-a-anarchist.com":true,"is-a-blogger.com":true,"is-a-bookkeeper.com":true,"is-a-bruinsfan.org":true,"is-a-bulls-fan.com":true,"is-a-candidate.org":true,"is-a-caterer.com":true,"is-a-celticsfan.org":true,"is-a-chef.com":true,"is-a-chef.net":true,"is-a-chef.org":true,"is-a-conservative.com":true,"is-a-cpa.com":true,"is-a-cubicle-slave.com":true,"is-a-democrat.com":true,"is-a-designer.com":true,"is-a-doctor.com":true,"is-a-financialadvisor.com":true,"is-a-geek.com":true,"is-a-geek.net":true,"is-a-geek.org":true,"is-a-green.com":true,"is-a-guru.com":true,"is-a-hard-worker.com":true,"is-a-hunter.com":true,"is-a-knight.org":true,"is-a-landscaper.com":true,"is-a-lawyer.com":true,"is-a-liberal.com":true,"is-a-libertarian.com":true,"is-a-linux-user.org":true,"is-a-llama.com":true,"is-a-musician.com":true,"is-a-nascarfan.com":true,"is-a-nurse.com":true,"is-a-painter.com":true,"is-a-patsfan.org":true,"is-a-personaltrainer.com":true,"is-a-photographer.com":true,"is-a-player.com":true,"is-a-republican.com":true,"is-a-rockstar.com":true,"is-a-socialist.com":true,"is-a-soxfan.org":true,"is-a-student.com":true,"is-a-teacher.com":true,"is-a-techie.com":true,"is-a-therapist.com":true,"is-an-accountant.com":true,"is-an-actor.com":true,"is-an-actress.com":true,"is-an-anarchist.com":true,"is-an-artist.com":true,"is-an-engineer.com":true,"is-an-entertainer.com":true,"is-by.us":true,"is-certified.com":true,"is-found.org":true,"is-gone.com":true,"is-into-anime.com":true,"is-into-cars.com":true,"is-into-cartoons.com":true,"is-into-games.com":true,"is-leet.com":true,"is-lost.org":true,"is-not-certified.com":true,"is-saved.org":true,"is-slick.com":true,"is-uberleet.com":true,"is-very-bad.org":true,"is-very-evil.org":true,"is-very-good.org":true,"is-very-nice.org":true,"is-very-sweet.org":true,"is-with-theband.com":true,"isa-geek.com":true,"isa-geek.net":true,"isa-geek.org":true,"isa-hockeynut.com":true,"issmarterthanyou.com":true,"isteingeek.de":true,"istmein.de":true,"kicks-ass.net":true,"kicks-ass.org":true,"knowsitall.info":true,"land-4-sale.us":true,"lebtimnetz.de":true,"leitungsen.de":true,"likes-pie.com":true,"likescandy.com":true,"merseine.nu":true,"mine.nu":true,"misconfused.org":true,"mypets.ws":true,"myphotos.cc":true,"neat-url.com":true,"office-on-the.net":true,"on-the-web.tv":true,"podzone.net":true,"podzone.org":true,"readmyblog.org":true,"saves-the-whales.com":true,"scrapper-site.net":true,"scrapping.cc":true,"selfip.biz":true,"selfip.com":true,"selfip.info":true,"selfip.net":true,"selfip.org":true,"sells-for-less.com":true,"sells-for-u.com":true,"sells-it.net":true,"sellsyourhome.org":true,"servebbs.com":true,"servebbs.net":true,"servebbs.org":true,"serveftp.net":true,"serveftp.org":true,"servegame.org":true,"shacknet.nu":true,"simple-url.com":true,"space-to-rent.com":true,"stuff-4-sale.org":true,"stuff-4-sale.us":true,"teaches-yoga.com":true,"thruhere.net":true,"traeumtgerade.de":true,"webhop.biz":true,"webhop.info":true,"webhop.net":true,"webhop.org":true,"worse-than.tv":true,"writesthisblog.com":true,"eu.org":true,"al.eu.org":true,"asso.eu.org":true,"at.eu.org":true,"au.eu.org":true,"be.eu.org":true,"bg.eu.org":true,"ca.eu.org":true,"cd.eu.org":true,"ch.eu.org":true,"cn.eu.org":true,"cy.eu.org":true,"cz.eu.org":true,"de.eu.org":true,"dk.eu.org":true,"edu.eu.org":true,"ee.eu.org":true,"es.eu.org":true,"fi.eu.org":true,"fr.eu.org":true,"gr.eu.org":true,"hr.eu.org":true,"hu.eu.org":true,"ie.eu.org":true,"il.eu.org":true,"in.eu.org":true,"int.eu.org":true,"is.eu.org":true,"it.eu.org":true,"jp.eu.org":true,"kr.eu.org":true,"lt.eu.org":true,"lu.eu.org":true,"lv.eu.org":true,"mc.eu.org":true,"me.eu.org":true,"mk.eu.org":true,"mt.eu.org":true,"my.eu.org":true,"net.eu.org":true,"ng.eu.org":true,"nl.eu.org":true,"no.eu.org":true,"nz.eu.org":true,"paris.eu.org":true,"pl.eu.org":true,"pt.eu.org":true,"q-a.eu.org":true,"ro.eu.org":true,"ru.eu.org":true,"se.eu.org":true,"si.eu.org":true,"sk.eu.org":true,"tr.eu.org":true,"uk.eu.org":true,"us.eu.org":true,"a.ssl.fastly.net":true,"b.ssl.fastly.net":true,"global.ssl.fastly.net":true,"a.prod.fastly.net":true,"global.prod.fastly.net":true,"firebaseapp.com":true,"flynnhub.com":true,"service.gov.uk":true,"github.io":true,"githubusercontent.com":true,"ro.com":true,"appspot.com":true,"blogspot.ae":true,"blogspot.al":true,"blogspot.am":true,"blogspot.ba":true,"blogspot.be":true,"blogspot.bg":true,"blogspot.bj":true,"blogspot.ca":true,"blogspot.cf":true,"blogspot.ch":true,"blogspot.cl":true,"blogspot.co.at":true,"blogspot.co.id":true,"blogspot.co.il":true,"blogspot.co.ke":true,"blogspot.co.nz":true,"blogspot.co.uk":true,"blogspot.co.za":true,"blogspot.com":true,"blogspot.com.ar":true,"blogspot.com.au":true,"blogspot.com.br":true,"blogspot.com.by":true,"blogspot.com.co":true,"blogspot.com.cy":true,"blogspot.com.ee":true,"blogspot.com.eg":true,"blogspot.com.es":true,"blogspot.com.mt":true,"blogspot.com.ng":true,"blogspot.com.tr":true,"blogspot.com.uy":true,"blogspot.cv":true,"blogspot.cz":true,"blogspot.de":true,"blogspot.dk":true,"blogspot.fi":true,"blogspot.fr":true,"blogspot.gr":true,"blogspot.hk":true,"blogspot.hr":true,"blogspot.hu":true,"blogspot.ie":true,"blogspot.in":true,"blogspot.is":true,"blogspot.it":true,"blogspot.jp":true,"blogspot.kr":true,"blogspot.li":true,"blogspot.lt":true,"blogspot.lu":true,"blogspot.md":true,"blogspot.mk":true,"blogspot.mr":true,"blogspot.mx":true,"blogspot.my":true,"blogspot.nl":true,"blogspot.no":true,"blogspot.pe":true,"blogspot.pt":true,"blogspot.qa":true,"blogspot.re":true,"blogspot.ro":true,"blogspot.rs":true,"blogspot.ru":true,"blogspot.se":true,"blogspot.sg":true,"blogspot.si":true,"blogspot.sk":true,"blogspot.sn":true,"blogspot.td":true,"blogspot.tw":true,"blogspot.ug":true,"blogspot.vn":true,"codespot.com":true,"googleapis.com":true,"googlecode.com":true,"pagespeedmobilizer.com":true,"withgoogle.com":true,"withyoutube.com":true,"herokuapp.com":true,"herokussl.com":true,"iki.fi":true,"biz.at":true,"info.at":true,"co.pl":true,"azurewebsites.net":true,"azure-mobile.net":true,"cloudapp.net":true,"bmoattachments.org":true,"4u.com":true,"nfshost.com":true,"nyc.mn":true,"nid.io":true,"operaunite.com":true,"outsystemscloud.com":true,"art.pl":true,"gliwice.pl":true,"krakow.pl":true,"poznan.pl":true,"wroc.pl":true,"zakopane.pl":true,"pantheon.io":true,"gotpantheon.com":true,"priv.at":true,"qa2.com":true,"rhcloud.com":true,"sandcats.io":true,"biz.ua":true,"co.ua":true,"pp.ua":true,"sinaapp.com":true,"vipsinaapp.com":true,"1kapp.com":true,"gda.pl":true,"gdansk.pl":true,"gdynia.pl":true,"med.pl":true,"sopot.pl":true,"hk.com":true,"hk.org":true,"ltd.hk":true,"inc.hk":true,"yolasite.com":true,"za.net":true,"za.org":true}); - -// END of automatically generated file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/store.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/store.js deleted file mode 100644 index bce52925..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/store.js +++ /dev/null @@ -1,71 +0,0 @@ -/*! - * Copyright (c) 2015, Salesforce.com, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. 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. - * - * 3. Neither the name of Salesforce.com 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 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. - */ -'use strict'; -/*jshint unused:false */ - -function Store() { -} -exports.Store = Store; - -// Stores may be synchronous, but are still required to use a -// Continuation-Passing Style API. The CookieJar itself will expose a "*Sync" -// API that converts from synchronous-callbacks to imperative style. -Store.prototype.synchronous = false; - -Store.prototype.findCookie = function(domain, path, key, cb) { - throw new Error('findCookie is not implemented'); -}; - -Store.prototype.findCookies = function(domain, path, cb) { - throw new Error('findCookies is not implemented'); -}; - -Store.prototype.putCookie = function(cookie, cb) { - throw new Error('putCookie is not implemented'); -}; - -Store.prototype.updateCookie = function(oldCookie, newCookie, cb) { - // recommended default implementation: - // return this.putCookie(newCookie, cb); - throw new Error('updateCookie is not implemented'); -}; - -Store.prototype.removeCookie = function(domain, path, key, cb) { - throw new Error('removeCookie is not implemented'); -}; - -Store.prototype.removeCookies = function(domain, path, cb) { - throw new Error('removeCookies is not implemented'); -}; - -Store.prototype.getAllCookies = function(cb) { - throw new Error('getAllCookies is not implemented (therefore jar cannot be serialized)'); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/package.json deleted file mode 100644 index 565dbe19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tough-cookie/package.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "_args": [ - [ - "tough-cookie@~2.2.0", - "/Users/rebecca/code/npm/node_modules/request" - ] - ], - "_from": "tough-cookie@>=2.2.0 <2.3.0", - "_id": "tough-cookie@2.2.2", - "_inCache": true, - "_installable": true, - "_location": "/request/tough-cookie", - "_nodeVersion": "5.1.1", - "_npmOperationalInternal": { - "host": "packages-13-west.internal.npmjs.com", - "tmp": "tmp/tough-cookie-2.2.2.tgz_1457564639182_0.5129188685677946" - }, - "_npmUser": { - "email": "jstash@gmail.com", - "name": "jstash" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "tough-cookie", - "raw": "tough-cookie@~2.2.0", - "rawSpec": "~2.2.0", - "scope": null, - "spec": ">=2.2.0 <2.3.0", - "type": "range" - }, - "_requiredBy": [ - "/request" - ], - "_resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz", - "_shasum": "c83a1830f4e5ef0b93ef2a3488e724f8de016ac7", - "_shrinkwrap": null, - "_spec": "tough-cookie@~2.2.0", - "_where": "/Users/rebecca/code/npm/node_modules/request", - "author": { - "email": "jstashewsky@salesforce.com", - "name": "Jeremy Stashewsky" - }, - "bugs": { - "url": "https://github.com/SalesforceEng/tough-cookie/issues" - }, - "contributors": [ - { - "name": "Alexander Savin" - }, - { - "name": "Ian Livingstone" - }, - { - "name": "Ivan Nikulin" - }, - { - "name": "Lalit Kapoor" - }, - { - "name": "Sam Thompson" - }, - { - "name": "Sebastian Mayr" - } - ], - "dependencies": {}, - "description": "RFC6265 Cookies and Cookie Jar for node.js", - "devDependencies": { - "async": "^1.4.2", - "vows": "^0.8.1" - }, - "directories": {}, - "dist": { - "shasum": "c83a1830f4e5ef0b93ef2a3488e724f8de016ac7", - "tarball": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "lib" - ], - "gitHead": "cc46628c4d7d2e8c372ecba29293ca8a207ec192", - "homepage": "https://github.com/SalesforceEng/tough-cookie", - "keywords": [ - "HTTP", - "cookie", - "cookies", - "set-cookie", - "cookiejar", - "jar", - "RFC6265", - "RFC2965" - ], - "license": "BSD-3-Clause", - "main": "./lib/cookie", - "maintainers": [ - { - "email": "jeremy@goinstant.com", - "name": "jstash" - }, - { - "email": "services@goinstant.com", - "name": "goinstant" - } - ], - "name": "tough-cookie", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/SalesforceEng/tough-cookie.git" - }, - "scripts": { - "suffixup": "curl -o public_suffix_list.dat https://publicsuffix.org/list/public_suffix_list.dat && ./generate-pubsuffix.js", - "test": "vows test/*_test.js" - }, - "version": "2.2.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/LICENSE deleted file mode 100644 index a4a9aee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/README.md deleted file mode 100644 index bb533d56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/README.md +++ /dev/null @@ -1,4 +0,0 @@ -tunnel-agent -============ - -HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js deleted file mode 100644 index 68013ac1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js +++ /dev/null @@ -1,243 +0,0 @@ -'use strict' - -var net = require('net') - , tls = require('tls') - , http = require('http') - , https = require('https') - , events = require('events') - , assert = require('assert') - , util = require('util') - ; - -exports.httpOverHttp = httpOverHttp -exports.httpsOverHttp = httpsOverHttp -exports.httpOverHttps = httpOverHttps -exports.httpsOverHttps = httpsOverHttps - - -function httpOverHttp(options) { - var agent = new TunnelingAgent(options) - agent.request = http.request - return agent -} - -function httpsOverHttp(options) { - var agent = new TunnelingAgent(options) - agent.request = http.request - agent.createSocket = createSecureSocket - agent.defaultPort = 443 - return agent -} - -function httpOverHttps(options) { - var agent = new TunnelingAgent(options) - agent.request = https.request - return agent -} - -function httpsOverHttps(options) { - var agent = new TunnelingAgent(options) - agent.request = https.request - agent.createSocket = createSecureSocket - agent.defaultPort = 443 - return agent -} - - -function TunnelingAgent(options) { - var self = this - self.options = options || {} - self.proxyOptions = self.options.proxy || {} - self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets - self.requests = [] - self.sockets = [] - - self.on('free', function onFree(socket, host, port) { - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i] - if (pending.host === host && pending.port === port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1) - pending.request.onSocket(socket) - return - } - } - socket.destroy() - self.removeSocket(socket) - }) -} -util.inherits(TunnelingAgent, events.EventEmitter) - -TunnelingAgent.prototype.addRequest = function addRequest(req, options) { - var self = this - - // Legacy API: addRequest(req, host, port, path) - if (typeof options === 'string') { - options = { - host: options, - port: arguments[2], - path: arguments[3] - }; - } - - if (self.sockets.length >= this.maxSockets) { - // We are over limit so we'll add it to the queue. - self.requests.push({host: options.host, port: options.port, request: req}) - return - } - - // If we are under maxSockets create a new one. - self.createConnection({host: options.host, port: options.port, request: req}) -} - -TunnelingAgent.prototype.createConnection = function createConnection(pending) { - var self = this - - self.createSocket(pending, function(socket) { - socket.on('free', onFree) - socket.on('close', onCloseOrRemove) - socket.on('agentRemove', onCloseOrRemove) - pending.request.onSocket(socket) - - function onFree() { - self.emit('free', socket, pending.host, pending.port) - } - - function onCloseOrRemove(err) { - self.removeSocket(socket) - socket.removeListener('free', onFree) - socket.removeListener('close', onCloseOrRemove) - socket.removeListener('agentRemove', onCloseOrRemove) - } - }) -} - -TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { - var self = this - var placeholder = {} - self.sockets.push(placeholder) - - var connectOptions = mergeOptions({}, self.proxyOptions, - { method: 'CONNECT' - , path: options.host + ':' + options.port - , agent: false - } - ) - if (connectOptions.proxyAuth) { - connectOptions.headers = connectOptions.headers || {} - connectOptions.headers['Proxy-Authorization'] = 'Basic ' + - new Buffer(connectOptions.proxyAuth).toString('base64') - } - - debug('making CONNECT request') - var connectReq = self.request(connectOptions) - connectReq.useChunkedEncodingByDefault = false // for v0.6 - connectReq.once('response', onResponse) // for v0.6 - connectReq.once('upgrade', onUpgrade) // for v0.6 - connectReq.once('connect', onConnect) // for v0.7 or later - connectReq.once('error', onError) - connectReq.end() - - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true - } - - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head) - }) - } - - function onConnect(res, socket, head) { - connectReq.removeAllListeners() - socket.removeAllListeners() - - if (res.statusCode === 200) { - assert.equal(head.length, 0) - debug('tunneling connection has established') - self.sockets[self.sockets.indexOf(placeholder)] = socket - cb(socket) - } else { - debug('tunneling socket could not be established, statusCode=%d', res.statusCode) - var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode) - error.code = 'ECONNRESET' - options.request.emit('error', error) - self.removeSocket(placeholder) - } - } - - function onError(cause) { - connectReq.removeAllListeners() - - debug('tunneling socket could not be established, cause=%s\n', cause.message, cause.stack) - var error = new Error('tunneling socket could not be established, ' + 'cause=' + cause.message) - error.code = 'ECONNRESET' - options.request.emit('error', error) - self.removeSocket(placeholder) - } -} - -TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { - var pos = this.sockets.indexOf(socket) - if (pos === -1) return - - this.sockets.splice(pos, 1) - - var pending = this.requests.shift() - if (pending) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createConnection(pending) - } -} - -function createSecureSocket(options, cb) { - var self = this - TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, mergeOptions({}, self.options, - { servername: options.host - , socket: socket - } - )) - self.sockets[self.sockets.indexOf(socket)] = secureSocket - cb(secureSocket) - }) -} - - -function mergeOptions(target) { - for (var i = 1, len = arguments.length; i < len; ++i) { - var overrides = arguments[i] - if (typeof overrides === 'object') { - var keys = Object.keys(overrides) - for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { - var k = keys[j] - if (overrides[k] !== undefined) { - target[k] = overrides[k] - } - } - } - } - return target -} - - -var debug -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = function() { - var args = Array.prototype.slice.call(arguments) - if (typeof args[0] === 'string') { - args[0] = 'TUNNEL: ' + args[0] - } else { - args.unshift('TUNNEL:') - } - console.error.apply(console, args) - } -} else { - debug = function() {} -} -exports.debug = debug // for test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/package.json deleted file mode 100644 index 0b2f3110..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/node_modules/tunnel-agent/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "_args": [ - [ - "tunnel-agent@~0.4.1", - "/Users/ogd/Documents/projects/npm/npm/node_modules/request" - ] - ], - "_from": "tunnel-agent@>=0.4.1 <0.5.0", - "_id": "tunnel-agent@0.4.2", - "_inCache": true, - "_installable": true, - "_location": "/request/tunnel-agent", - "_nodeVersion": "5.0.0", - "_npmUser": { - "email": "simeonvelichkov@gmail.com", - "name": "simov" - }, - "_npmVersion": "3.3.12", - "_phantomChildren": {}, - "_requested": { - "name": "tunnel-agent", - "raw": "tunnel-agent@~0.4.1", - "rawSpec": "~0.4.1", - "scope": null, - "spec": ">=0.4.1 <0.5.0", - "type": "range" - }, - "_requiredBy": [ - "/request" - ], - "_resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz", - "_shasum": "1104e3f36ac87125c287270067d582d18133bfee", - "_shrinkwrap": null, - "_spec": "tunnel-agent@~0.4.1", - "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/request", - "author": { - "email": "mikeal.rogers@gmail.com", - "name": "Mikeal Rogers", - "url": "http://www.futurealoof.com" - }, - "bugs": { - "url": "https://github.com/mikeal/tunnel-agent/issues" - }, - "dependencies": {}, - "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "1104e3f36ac87125c287270067d582d18133bfee", - "tarball": "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" - }, - "engines": { - "node": "*" - }, - "gitHead": "449634d1054949f9f145f4925985a8dea0f46b0f", - "homepage": "https://github.com/mikeal/tunnel-agent#readme", - "license": "Apache-2.0", - "main": "index.js", - "maintainers": [ - { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, - { - "name": "nylen", - "email": "jnylen@gmail.com" - }, - { - "name": "fredkschott", - "email": "fkschott@gmail.com" - }, - { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - } - ], - "name": "tunnel-agent", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "url": "git+https://github.com/mikeal/tunnel-agent.git" - }, - "scripts": {}, - "version": "0.4.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/package.json deleted file mode 100644 index 6c9fa0ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/package.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "_args": [ - [ - "request@latest", - "/Users/rebecca/code/npm" - ] - ], - "_from": "request@latest", - "_id": "request@2.72.0", - "_inCache": true, - "_installable": true, - "_location": "/request", - "_nodeVersion": "5.9.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/request-2.72.0.tgz_1460901215210_0.9173020373564214" - }, - "_npmUser": { - "email": "simeonvelichkov@gmail.com", - "name": "simov" - }, - "_npmVersion": "3.8.5", - "_phantomChildren": { - "ansi-regex": "2.0.0", - "inherits": "2.0.1", - "strip-ansi": "3.0.1" - }, - "_requested": { - "name": "request", - "raw": "request@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/", - "/node-gyp", - "/npm-registry-client" - ], - "_resolved": "https://registry.npmjs.org/request/-/request-2.72.0.tgz", - "_shasum": "0ce3a179512620b10441f14c82e21c12c0ddb4e1", - "_shrinkwrap": null, - "_spec": "request@latest", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "mikeal.rogers@gmail.com", - "name": "Mikeal Rogers" - }, - "bugs": { - "url": "http://github.com/request/request/issues" - }, - "dependencies": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "bl": "~1.1.2", - "caseless": "~0.11.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~1.0.0-rc3", - "har-validator": "~2.0.6", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "node-uuid": "~1.4.7", - "oauth-sign": "~0.8.1", - "qs": "~6.1.0", - "stringstream": "~0.0.4", - "tough-cookie": "~2.2.0", - "tunnel-agent": "~0.4.1" - }, - "description": "Simplified HTTP request client.", - "devDependencies": { - "bluebird": "^3.2.1", - "browserify": "^12.0.2", - "browserify-istanbul": "^2.0.0", - "buffer-equal": "^1.0.0", - "codecov.io": "^0.1.6", - "coveralls": "^2.11.4", - "eslint": "^2.5.3", - "function-bind": "^1.0.2", - "istanbul": "^0.4.0", - "karma": "^0.13.10", - "karma-browserify": "^5.0.1", - "karma-cli": "^0.1.1", - "karma-coverage": "^0.5.3", - "karma-phantomjs-launcher": "^1.0.0", - "karma-tap": "^1.0.3", - "phantomjs-prebuilt": "^2.1.3", - "rimraf": "^2.2.8", - "server-destroy": "^1.0.1", - "tape": "^4.2.0", - "taper": "^0.4.0" - }, - "directories": {}, - "dist": { - "shasum": "0ce3a179512620b10441f14c82e21c12c0ddb4e1", - "tarball": "https://registry.npmjs.org/request/-/request-2.72.0.tgz" - }, - "engines": { - "node": ">=0.8.0" - }, - "gitHead": "6dcac13642955577592fdafb5ff3cdc8a6ff1b1b", - "homepage": "https://github.com/request/request#readme", - "license": "Apache-2.0", - "main": "index.js", - "maintainers": [ - { - "email": "mikeal.rogers@gmail.com", - "name": "mikeal" - }, - { - "email": "jnylen@gmail.com", - "name": "nylen" - }, - { - "email": "fkschott@gmail.com", - "name": "fredkschott" - }, - { - "email": "simeonvelichkov@gmail.com", - "name": "simov" - } - ], - "name": "request", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/request/request.git" - }, - "scripts": { - "lint": "eslint lib/ *.js tests/ && echo Lint passed.", - "test": "npm run lint && npm run test-ci && npm run test-browser", - "test-browser": "node tests/browser/start.js", - "test-ci": "taper tests/test-*.js", - "test-cov": "istanbul cover tape tests/test-*.js" - }, - "tags": [ - "http", - "simple", - "util", - "utility" - ], - "version": "2.72.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/request.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/request.js deleted file mode 100644 index 124157e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/request/request.js +++ /dev/null @@ -1,1458 +0,0 @@ -'use strict' - -var http = require('http') - , https = require('https') - , url = require('url') - , util = require('util') - , stream = require('stream') - , zlib = require('zlib') - , bl = require('bl') - , hawk = require('hawk') - , aws2 = require('aws-sign2') - , httpSignature = require('http-signature') - , mime = require('mime-types') - , stringstream = require('stringstream') - , caseless = require('caseless') - , ForeverAgent = require('forever-agent') - , FormData = require('form-data') - , extend = require('extend') - , isstream = require('isstream') - , isTypedArray = require('is-typedarray').strict - , helpers = require('./lib/helpers') - , cookies = require('./lib/cookies') - , getProxyFromURI = require('./lib/getProxyFromURI') - , Querystring = require('./lib/querystring').Querystring - , Har = require('./lib/har').Har - , Auth = require('./lib/auth').Auth - , OAuth = require('./lib/oauth').OAuth - , Multipart = require('./lib/multipart').Multipart - , Redirect = require('./lib/redirect').Redirect - , Tunnel = require('./lib/tunnel').Tunnel - -var safeStringify = helpers.safeStringify - , isReadStream = helpers.isReadStream - , toBase64 = helpers.toBase64 - , defer = helpers.defer - , copy = helpers.copy - , version = helpers.version - , globalCookieJar = cookies.jar() - - -var globalPool = {} - -function filterForNonReserved(reserved, options) { - // Filter out properties that are not reserved. - // Reserved values are passed in at call site. - - var object = {} - for (var i in options) { - var notReserved = (reserved.indexOf(i) === -1) - if (notReserved) { - object[i] = options[i] - } - } - return object -} - -function filterOutReservedFunctions(reserved, options) { - // Filter out properties that are functions and are reserved. - // Reserved values are passed in at call site. - - var object = {} - for (var i in options) { - var isReserved = !(reserved.indexOf(i) === -1) - var isFunction = (typeof options[i] === 'function') - if (!(isReserved && isFunction)) { - object[i] = options[i] - } - } - return object - -} - -// Function for properly handling a connection error -function connectionErrorHandler(error) { - var socket = this - if (socket.res) { - if (socket.res.request) { - socket.res.request.emit('error', error) - } else { - socket.res.emit('error', error) - } - } else { - socket._httpMessage.emit('error', error) - } -} - -// Return a simpler request object to allow serialization -function requestToJSON() { - var self = this - return { - uri: self.uri, - method: self.method, - headers: self.headers - } -} - -// Return a simpler response object to allow serialization -function responseToJSON() { - var self = this - return { - statusCode: self.statusCode, - body: self.body, - headers: self.headers, - request: requestToJSON.call(self.request) - } -} - -function Request (options) { - // if given the method property in options, set property explicitMethod to true - - // extend the Request instance with any non-reserved properties - // remove any reserved functions from the options object - // set Request instance to be readable and writable - // call init - - var self = this - - // start with HAR, then override with additional options - if (options.har) { - self._har = new Har(self) - options = self._har.options(options) - } - - stream.Stream.call(self) - var reserved = Object.keys(Request.prototype) - var nonReserved = filterForNonReserved(reserved, options) - - extend(self, nonReserved) - options = filterOutReservedFunctions(reserved, options) - - self.readable = true - self.writable = true - if (options.method) { - self.explicitMethod = true - } - self._qs = new Querystring(self) - self._auth = new Auth(self) - self._oauth = new OAuth(self) - self._multipart = new Multipart(self) - self._redirect = new Redirect(self) - self._tunnel = new Tunnel(self) - self.init(options) -} - -util.inherits(Request, stream.Stream) - -// Debugging -Request.debug = process.env.NODE_DEBUG && /\brequest\b/.test(process.env.NODE_DEBUG) -function debug() { - if (Request.debug) { - console.error('REQUEST %s', util.format.apply(util, arguments)) - } -} -Request.prototype.debug = debug - -Request.prototype.init = function (options) { - // init() contains all the code to setup the request object. - // the actual outgoing request is not started until start() is called - // this function is called from both the constructor and on redirect. - var self = this - if (!options) { - options = {} - } - self.headers = self.headers ? copy(self.headers) : {} - - // Delete headers with value undefined since they break - // ClientRequest.OutgoingMessage.setHeader in node 0.12 - for (var headerName in self.headers) { - if (typeof self.headers[headerName] === 'undefined') { - delete self.headers[headerName] - } - } - - caseless.httpify(self, self.headers) - - if (!self.method) { - self.method = options.method || 'GET' - } - if (!self.localAddress) { - self.localAddress = options.localAddress - } - - self._qs.init(options) - - debug(options) - if (!self.pool && self.pool !== false) { - self.pool = globalPool - } - self.dests = self.dests || [] - self.__isRequestRequest = true - - // Protect against double callback - if (!self._callback && self.callback) { - self._callback = self.callback - self.callback = function () { - if (self._callbackCalled) { - return // Print a warning maybe? - } - self._callbackCalled = true - self._callback.apply(self, arguments) - } - self.on('error', self.callback.bind()) - self.on('complete', self.callback.bind(self, null)) - } - - // People use this property instead all the time, so support it - if (!self.uri && self.url) { - self.uri = self.url - delete self.url - } - - // If there's a baseUrl, then use it as the base URL (i.e. uri must be - // specified as a relative path and is appended to baseUrl). - if (self.baseUrl) { - if (typeof self.baseUrl !== 'string') { - return self.emit('error', new Error('options.baseUrl must be a string')) - } - - if (typeof self.uri !== 'string') { - return self.emit('error', new Error('options.uri must be a string when using options.baseUrl')) - } - - if (self.uri.indexOf('//') === 0 || self.uri.indexOf('://') !== -1) { - return self.emit('error', new Error('options.uri must be a path when using options.baseUrl')) - } - - // Handle all cases to make sure that there's only one slash between - // baseUrl and uri. - var baseUrlEndsWithSlash = self.baseUrl.lastIndexOf('/') === self.baseUrl.length - 1 - var uriStartsWithSlash = self.uri.indexOf('/') === 0 - - if (baseUrlEndsWithSlash && uriStartsWithSlash) { - self.uri = self.baseUrl + self.uri.slice(1) - } else if (baseUrlEndsWithSlash || uriStartsWithSlash) { - self.uri = self.baseUrl + self.uri - } else if (self.uri === '') { - self.uri = self.baseUrl - } else { - self.uri = self.baseUrl + '/' + self.uri - } - delete self.baseUrl - } - - // A URI is needed by this point, emit error if we haven't been able to get one - if (!self.uri) { - return self.emit('error', new Error('options.uri is a required argument')) - } - - // If a string URI/URL was given, parse it into a URL object - if (typeof self.uri === 'string') { - self.uri = url.parse(self.uri) - } - - // Some URL objects are not from a URL parsed string and need href added - if (!self.uri.href) { - self.uri.href = url.format(self.uri) - } - - // DEPRECATED: Warning for users of the old Unix Sockets URL Scheme - if (self.uri.protocol === 'unix:') { - return self.emit('error', new Error('`unix://` URL scheme is no longer supported. Please use the format `http://unix:SOCKET:PATH`')) - } - - // Support Unix Sockets - if (self.uri.host === 'unix') { - self.enableUnixSocket() - } - - if (self.strictSSL === false) { - self.rejectUnauthorized = false - } - - if (!self.uri.pathname) {self.uri.pathname = '/'} - - if (!(self.uri.host || (self.uri.hostname && self.uri.port)) && !self.uri.isUnix) { - // Invalid URI: it may generate lot of bad errors, like 'TypeError: Cannot call method `indexOf` of undefined' in CookieJar - // Detect and reject it as soon as possible - var faultyUri = url.format(self.uri) - var message = 'Invalid URI "' + faultyUri + '"' - if (Object.keys(options).length === 0) { - // No option ? This can be the sign of a redirect - // As this is a case where the user cannot do anything (they didn't call request directly with this URL) - // they should be warned that it can be caused by a redirection (can save some hair) - message += '. This can be caused by a crappy redirection.' - } - // This error was fatal - self.abort() - return self.emit('error', new Error(message)) - } - - if (!self.hasOwnProperty('proxy')) { - self.proxy = getProxyFromURI(self.uri) - } - - self.tunnel = self._tunnel.isEnabled() - if (self.proxy) { - self._tunnel.setup(options) - } - - self._redirect.onRequest(options) - - self.setHost = false - if (!self.hasHeader('host')) { - var hostHeaderName = self.originalHostHeaderName || 'host' - self.setHeader(hostHeaderName, self.uri.hostname) - if (self.uri.port) { - if ( !(self.uri.port === 80 && self.uri.protocol === 'http:') && - !(self.uri.port === 443 && self.uri.protocol === 'https:') ) { - self.setHeader(hostHeaderName, self.getHeader('host') + (':' + self.uri.port) ) - } - } - self.setHost = true - } - - self.jar(self._jar || options.jar) - - if (!self.uri.port) { - if (self.uri.protocol === 'http:') {self.uri.port = 80} - else if (self.uri.protocol === 'https:') {self.uri.port = 443} - } - - if (self.proxy && !self.tunnel) { - self.port = self.proxy.port - self.host = self.proxy.hostname - } else { - self.port = self.uri.port - self.host = self.uri.hostname - } - - if (options.form) { - self.form(options.form) - } - - if (options.formData) { - var formData = options.formData - var requestForm = self.form() - var appendFormValue = function (key, value) { - if (value.hasOwnProperty('value') && value.hasOwnProperty('options')) { - requestForm.append(key, value.value, value.options) - } else { - requestForm.append(key, value) - } - } - for (var formKey in formData) { - if (formData.hasOwnProperty(formKey)) { - var formValue = formData[formKey] - if (formValue instanceof Array) { - for (var j = 0; j < formValue.length; j++) { - appendFormValue(formKey, formValue[j]) - } - } else { - appendFormValue(formKey, formValue) - } - } - } - } - - if (options.qs) { - self.qs(options.qs) - } - - if (self.uri.path) { - self.path = self.uri.path - } else { - self.path = self.uri.pathname + (self.uri.search || '') - } - - if (self.path.length === 0) { - self.path = '/' - } - - // Auth must happen last in case signing is dependent on other headers - if (options.aws) { - self.aws(options.aws) - } - - if (options.hawk) { - self.hawk(options.hawk) - } - - if (options.httpSignature) { - self.httpSignature(options.httpSignature) - } - - if (options.auth) { - if (Object.prototype.hasOwnProperty.call(options.auth, 'username')) { - options.auth.user = options.auth.username - } - if (Object.prototype.hasOwnProperty.call(options.auth, 'password')) { - options.auth.pass = options.auth.password - } - - self.auth( - options.auth.user, - options.auth.pass, - options.auth.sendImmediately, - options.auth.bearer - ) - } - - if (self.gzip && !self.hasHeader('accept-encoding')) { - self.setHeader('accept-encoding', 'gzip, deflate') - } - - if (self.uri.auth && !self.hasHeader('authorization')) { - var uriAuthPieces = self.uri.auth.split(':').map(function(item) {return self._qs.unescape(item)}) - self.auth(uriAuthPieces[0], uriAuthPieces.slice(1).join(':'), true) - } - - if (!self.tunnel && self.proxy && self.proxy.auth && !self.hasHeader('proxy-authorization')) { - var proxyAuthPieces = self.proxy.auth.split(':').map(function(item) {return self._qs.unescape(item)}) - var authHeader = 'Basic ' + toBase64(proxyAuthPieces.join(':')) - self.setHeader('proxy-authorization', authHeader) - } - - if (self.proxy && !self.tunnel) { - self.path = (self.uri.protocol + '//' + self.uri.host + self.path) - } - - if (options.json) { - self.json(options.json) - } - if (options.multipart) { - self.multipart(options.multipart) - } - - if (options.time) { - self.timing = true - self.elapsedTime = self.elapsedTime || 0 - } - - function setContentLength () { - if (isTypedArray(self.body)) { - self.body = new Buffer(self.body) - } - - if (!self.hasHeader('content-length')) { - var length - if (typeof self.body === 'string') { - length = Buffer.byteLength(self.body) - } - else if (Array.isArray(self.body)) { - length = self.body.reduce(function (a, b) {return a + b.length}, 0) - } - else { - length = self.body.length - } - - if (length) { - self.setHeader('content-length', length) - } else { - self.emit('error', new Error('Argument error, options.body.')) - } - } - } - if (self.body && !isstream(self.body)) { - setContentLength() - } - - if (options.oauth) { - self.oauth(options.oauth) - } else if (self._oauth.params && self.hasHeader('authorization')) { - self.oauth(self._oauth.params) - } - - var protocol = self.proxy && !self.tunnel ? self.proxy.protocol : self.uri.protocol - , defaultModules = {'http:':http, 'https:':https} - , httpModules = self.httpModules || {} - - self.httpModule = httpModules[protocol] || defaultModules[protocol] - - if (!self.httpModule) { - return self.emit('error', new Error('Invalid protocol: ' + protocol)) - } - - if (options.ca) { - self.ca = options.ca - } - - if (!self.agent) { - if (options.agentOptions) { - self.agentOptions = options.agentOptions - } - - if (options.agentClass) { - self.agentClass = options.agentClass - } else if (options.forever) { - var v = version() - // use ForeverAgent in node 0.10- only - if (v.major === 0 && v.minor <= 10) { - self.agentClass = protocol === 'http:' ? ForeverAgent : ForeverAgent.SSL - } else { - self.agentClass = self.httpModule.Agent - self.agentOptions = self.agentOptions || {} - self.agentOptions.keepAlive = true - } - } else { - self.agentClass = self.httpModule.Agent - } - } - - if (self.pool === false) { - self.agent = false - } else { - self.agent = self.agent || self.getNewAgent() - } - - self.on('pipe', function (src) { - if (self.ntick && self._started) { - self.emit('error', new Error('You cannot pipe to this stream after the outbound request has started.')) - } - self.src = src - if (isReadStream(src)) { - if (!self.hasHeader('content-type')) { - self.setHeader('content-type', mime.lookup(src.path)) - } - } else { - if (src.headers) { - for (var i in src.headers) { - if (!self.hasHeader(i)) { - self.setHeader(i, src.headers[i]) - } - } - } - if (self._json && !self.hasHeader('content-type')) { - self.setHeader('content-type', 'application/json') - } - if (src.method && !self.explicitMethod) { - self.method = src.method - } - } - - // self.on('pipe', function () { - // console.error('You have already piped to this stream. Pipeing twice is likely to break the request.') - // }) - }) - - defer(function () { - if (self._aborted) { - return - } - - var end = function () { - if (self._form) { - if (!self._auth.hasAuth) { - self._form.pipe(self) - } - else if (self._auth.hasAuth && self._auth.sentAuth) { - self._form.pipe(self) - } - } - if (self._multipart && self._multipart.chunked) { - self._multipart.body.pipe(self) - } - if (self.body) { - if (isstream(self.body)) { - self.body.pipe(self) - } else { - setContentLength() - if (Array.isArray(self.body)) { - self.body.forEach(function (part) { - self.write(part) - }) - } else { - self.write(self.body) - } - self.end() - } - } else if (self.requestBodyStream) { - console.warn('options.requestBodyStream is deprecated, please pass the request object to stream.pipe.') - self.requestBodyStream.pipe(self) - } else if (!self.src) { - if (self._auth.hasAuth && !self._auth.sentAuth) { - self.end() - return - } - if (self.method !== 'GET' && typeof self.method !== 'undefined') { - self.setHeader('content-length', 0) - } - self.end() - } - } - - if (self._form && !self.hasHeader('content-length')) { - // Before ending the request, we had to compute the length of the whole form, asyncly - self.setHeader(self._form.getHeaders(), true) - self._form.getLength(function (err, length) { - if (!err && !isNaN(length)) { - self.setHeader('content-length', length) - } - end() - }) - } else { - end() - } - - self.ntick = true - }) - -} - -Request.prototype.getNewAgent = function () { - var self = this - var Agent = self.agentClass - var options = {} - if (self.agentOptions) { - for (var i in self.agentOptions) { - options[i] = self.agentOptions[i] - } - } - if (self.ca) { - options.ca = self.ca - } - if (self.ciphers) { - options.ciphers = self.ciphers - } - if (self.secureProtocol) { - options.secureProtocol = self.secureProtocol - } - if (self.secureOptions) { - options.secureOptions = self.secureOptions - } - if (typeof self.rejectUnauthorized !== 'undefined') { - options.rejectUnauthorized = self.rejectUnauthorized - } - - if (self.cert && self.key) { - options.key = self.key - options.cert = self.cert - } - - if (self.pfx) { - options.pfx = self.pfx - } - - if (self.passphrase) { - options.passphrase = self.passphrase - } - - var poolKey = '' - - // different types of agents are in different pools - if (Agent !== self.httpModule.Agent) { - poolKey += Agent.name - } - - // ca option is only relevant if proxy or destination are https - var proxy = self.proxy - if (typeof proxy === 'string') { - proxy = url.parse(proxy) - } - var isHttps = (proxy && proxy.protocol === 'https:') || this.uri.protocol === 'https:' - - if (isHttps) { - if (options.ca) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.ca - } - - if (typeof options.rejectUnauthorized !== 'undefined') { - if (poolKey) { - poolKey += ':' - } - poolKey += options.rejectUnauthorized - } - - if (options.cert) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.cert.toString('ascii') + options.key.toString('ascii') - } - - if (options.pfx) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.pfx.toString('ascii') - } - - if (options.ciphers) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.ciphers - } - - if (options.secureProtocol) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.secureProtocol - } - - if (options.secureOptions) { - if (poolKey) { - poolKey += ':' - } - poolKey += options.secureOptions - } - } - - if (self.pool === globalPool && !poolKey && Object.keys(options).length === 0 && self.httpModule.globalAgent) { - // not doing anything special. Use the globalAgent - return self.httpModule.globalAgent - } - - // we're using a stored agent. Make sure it's protocol-specific - poolKey = self.uri.protocol + poolKey - - // generate a new agent for this setting if none yet exists - if (!self.pool[poolKey]) { - self.pool[poolKey] = new Agent(options) - // properly set maxSockets on new agents - if (self.pool.maxSockets) { - self.pool[poolKey].maxSockets = self.pool.maxSockets - } - } - - return self.pool[poolKey] -} - -Request.prototype.start = function () { - // start() is called once we are ready to send the outgoing HTTP request. - // this is usually called on the first write(), end() or on nextTick() - var self = this - - if (self._aborted) { - return - } - - self._started = true - self.method = self.method || 'GET' - self.href = self.uri.href - - if (self.src && self.src.stat && self.src.stat.size && !self.hasHeader('content-length')) { - self.setHeader('content-length', self.src.stat.size) - } - if (self._aws) { - self.aws(self._aws, true) - } - - // We have a method named auth, which is completely different from the http.request - // auth option. If we don't remove it, we're gonna have a bad time. - var reqOptions = copy(self) - delete reqOptions.auth - - debug('make request', self.uri.href) - - try { - self.req = self.httpModule.request(reqOptions) - } catch (err) { - self.emit('error', err) - return - } - - if (self.timing) { - self.startTime = new Date().getTime() - } - - if (self.timeout && !self.timeoutTimer) { - var timeout = self.timeout < 0 ? 0 : self.timeout - // Set a timeout in memory - this block will throw if the server takes more - // than `timeout` to write the HTTP status and headers (corresponding to - // the on('response') event on the client). NB: this measures wall-clock - // time, not the time between bytes sent by the server. - self.timeoutTimer = setTimeout(function () { - var connectTimeout = self.req.socket && self.req.socket.readable === false - self.abort() - var e = new Error('ETIMEDOUT') - e.code = 'ETIMEDOUT' - e.connect = connectTimeout - self.emit('error', e) - }, timeout) - - if (self.req.setTimeout) { // only works on node 0.6+ - // Set an additional timeout on the socket, via the `setsockopt` syscall. - // This timeout sets the amount of time to wait *between* bytes sent - // from the server, and may or may not correspond to the wall-clock time - // elapsed from the start of the request. - // - // In particular, it's useful for erroring if the server fails to send - // data halfway through streaming a response. - self.req.setTimeout(timeout, function () { - if (self.req) { - self.req.abort() - var e = new Error('ESOCKETTIMEDOUT') - e.code = 'ESOCKETTIMEDOUT' - e.connect = false - self.emit('error', e) - } - }) - } - } - - self.req.on('response', self.onRequestResponse.bind(self)) - self.req.on('error', self.onRequestError.bind(self)) - self.req.on('drain', function() { - self.emit('drain') - }) - self.req.on('socket', function(socket) { - self.emit('socket', socket) - }) - - self.on('end', function() { - if ( self.req.connection ) { - self.req.connection.removeListener('error', connectionErrorHandler) - } - }) - self.emit('request', self.req) -} - -Request.prototype.onRequestError = function (error) { - var self = this - if (self._aborted) { - return - } - if (self.req && self.req._reusedSocket && error.code === 'ECONNRESET' - && self.agent.addRequestNoreuse) { - self.agent = { addRequest: self.agent.addRequestNoreuse.bind(self.agent) } - self.start() - self.req.end() - return - } - if (self.timeout && self.timeoutTimer) { - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null - } - self.emit('error', error) -} - -Request.prototype.onRequestResponse = function (response) { - var self = this - debug('onRequestResponse', self.uri.href, response.statusCode, response.headers) - response.on('end', function() { - if (self.timing) { - self.elapsedTime += (new Date().getTime() - self.startTime) - debug('elapsed time', self.elapsedTime) - response.elapsedTime = self.elapsedTime - } - debug('response end', self.uri.href, response.statusCode, response.headers) - }) - - // The check on response.connection is a workaround for browserify. - if (response.connection && response.connection.listeners('error').indexOf(connectionErrorHandler) === -1) { - response.connection.setMaxListeners(0) - response.connection.once('error', connectionErrorHandler) - } - if (self._aborted) { - debug('aborted', self.uri.href) - response.resume() - return - } - - self.response = response - response.request = self - response.toJSON = responseToJSON - - // XXX This is different on 0.10, because SSL is strict by default - if (self.httpModule === https && - self.strictSSL && (!response.hasOwnProperty('socket') || - !response.socket.authorized)) { - debug('strict ssl error', self.uri.href) - var sslErr = response.hasOwnProperty('socket') ? response.socket.authorizationError : self.uri.href + ' does not support SSL' - self.emit('error', new Error('SSL Error: ' + sslErr)) - return - } - - // Save the original host before any redirect (if it changes, we need to - // remove any authorization headers). Also remember the case of the header - // name because lots of broken servers expect Host instead of host and we - // want the caller to be able to specify this. - self.originalHost = self.getHeader('host') - if (!self.originalHostHeaderName) { - self.originalHostHeaderName = self.hasHeader('host') - } - if (self.setHost) { - self.removeHeader('host') - } - if (self.timeout && self.timeoutTimer) { - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null - } - - var targetCookieJar = (self._jar && self._jar.setCookie) ? self._jar : globalCookieJar - var addCookie = function (cookie) { - //set the cookie if it's domain in the href's domain. - try { - targetCookieJar.setCookie(cookie, self.uri.href, {ignoreError: true}) - } catch (e) { - self.emit('error', e) - } - } - - response.caseless = caseless(response.headers) - - if (response.caseless.has('set-cookie') && (!self._disableCookies)) { - var headerName = response.caseless.has('set-cookie') - if (Array.isArray(response.headers[headerName])) { - response.headers[headerName].forEach(addCookie) - } else { - addCookie(response.headers[headerName]) - } - } - - if (self._redirect.onResponse(response)) { - return // Ignore the rest of the response - } else { - // Be a good stream and emit end when the response is finished. - // Hack to emit end on close because of a core bug that never fires end - response.on('close', function () { - if (!self._ended) { - self.response.emit('end') - } - }) - - response.on('end', function () { - self._ended = true - }) - - var noBody = function (code) { - return ( - self.method === 'HEAD' - // Informational - || (code >= 100 && code < 200) - // No Content - || code === 204 - // Not Modified - || code === 304 - ) - } - - var responseContent - if (self.gzip && !noBody(response.statusCode)) { - var contentEncoding = response.headers['content-encoding'] || 'identity' - contentEncoding = contentEncoding.trim().toLowerCase() - - if (contentEncoding === 'gzip') { - responseContent = zlib.createGunzip() - response.pipe(responseContent) - } else if (contentEncoding === 'deflate') { - responseContent = zlib.createInflate() - response.pipe(responseContent) - } else { - // Since previous versions didn't check for Content-Encoding header, - // ignore any invalid values to preserve backwards-compatibility - if (contentEncoding !== 'identity') { - debug('ignoring unrecognized Content-Encoding ' + contentEncoding) - } - responseContent = response - } - } else { - responseContent = response - } - - if (self.encoding) { - if (self.dests.length !== 0) { - console.error('Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.') - } else if (responseContent.setEncoding) { - responseContent.setEncoding(self.encoding) - } else { - // Should only occur on node pre-v0.9.4 (joyent/node@9b5abe5) with - // zlib streams. - // If/When support for 0.9.4 is dropped, this should be unnecessary. - responseContent = responseContent.pipe(stringstream(self.encoding)) - } - } - - if (self._paused) { - responseContent.pause() - } - - self.responseContent = responseContent - - self.emit('response', response) - - self.dests.forEach(function (dest) { - self.pipeDest(dest) - }) - - responseContent.on('data', function (chunk) { - self._destdata = true - self.emit('data', chunk) - }) - responseContent.on('end', function (chunk) { - self.emit('end', chunk) - }) - responseContent.on('error', function (error) { - self.emit('error', error) - }) - responseContent.on('close', function () {self.emit('close')}) - - if (self.callback) { - self.readResponseBody(response) - } - //if no callback - else { - self.on('end', function () { - if (self._aborted) { - debug('aborted', self.uri.href) - return - } - self.emit('complete', response) - }) - } - } - debug('finish init function', self.uri.href) -} - -Request.prototype.readResponseBody = function (response) { - var self = this - debug('reading response\'s body') - var buffer = bl() - , strings = [] - - self.on('data', function (chunk) { - if (Buffer.isBuffer(chunk)) { - buffer.append(chunk) - } else { - strings.push(chunk) - } - }) - self.on('end', function () { - debug('end event', self.uri.href) - if (self._aborted) { - debug('aborted', self.uri.href) - // `buffer` is defined in the parent scope and used in a closure it exists for the life of the request. - // This can lead to leaky behavior if the user retains a reference to the request object. - buffer.destroy() - return - } - - if (buffer.length) { - debug('has body', self.uri.href, buffer.length) - if (self.encoding === null) { - // response.body = buffer - // can't move to this until https://github.com/rvagg/bl/issues/13 - response.body = buffer.slice() - } else { - response.body = buffer.toString(self.encoding) - } - // `buffer` is defined in the parent scope and used in a closure it exists for the life of the Request. - // This can lead to leaky behavior if the user retains a reference to the request object. - buffer.destroy() - } else if (strings.length) { - // The UTF8 BOM [0xEF,0xBB,0xBF] is converted to [0xFE,0xFF] in the JS UTC16/UCS2 representation. - // Strip this value out when the encoding is set to 'utf8', as upstream consumers won't expect it and it breaks JSON.parse(). - if (self.encoding === 'utf8' && strings[0].length > 0 && strings[0][0] === '\uFEFF') { - strings[0] = strings[0].substring(1) - } - response.body = strings.join('') - } - - if (self._json) { - try { - response.body = JSON.parse(response.body, self._jsonReviver) - } catch (e) { - debug('invalid JSON received', self.uri.href) - } - } - debug('emitting complete', self.uri.href) - if (typeof response.body === 'undefined' && !self._json) { - response.body = self.encoding === null ? new Buffer(0) : '' - } - self.emit('complete', response, response.body) - }) -} - -Request.prototype.abort = function () { - var self = this - self._aborted = true - - if (self.req) { - self.req.abort() - } - else if (self.response) { - self.response.destroy() - } - - self.emit('abort') -} - -Request.prototype.pipeDest = function (dest) { - var self = this - var response = self.response - // Called after the response is received - if (dest.headers && !dest.headersSent) { - if (response.caseless.has('content-type')) { - var ctname = response.caseless.has('content-type') - if (dest.setHeader) { - dest.setHeader(ctname, response.headers[ctname]) - } - else { - dest.headers[ctname] = response.headers[ctname] - } - } - - if (response.caseless.has('content-length')) { - var clname = response.caseless.has('content-length') - if (dest.setHeader) { - dest.setHeader(clname, response.headers[clname]) - } else { - dest.headers[clname] = response.headers[clname] - } - } - } - if (dest.setHeader && !dest.headersSent) { - for (var i in response.headers) { - // If the response content is being decoded, the Content-Encoding header - // of the response doesn't represent the piped content, so don't pass it. - if (!self.gzip || i !== 'content-encoding') { - dest.setHeader(i, response.headers[i]) - } - } - dest.statusCode = response.statusCode - } - if (self.pipefilter) { - self.pipefilter(response, dest) - } -} - -Request.prototype.qs = function (q, clobber) { - var self = this - var base - if (!clobber && self.uri.query) { - base = self._qs.parse(self.uri.query) - } else { - base = {} - } - - for (var i in q) { - base[i] = q[i] - } - - var qs = self._qs.stringify(base) - - if (qs === '') { - return self - } - - self.uri = url.parse(self.uri.href.split('?')[0] + '?' + qs) - self.url = self.uri - self.path = self.uri.path - - if (self.uri.host === 'unix') { - self.enableUnixSocket() - } - - return self -} -Request.prototype.form = function (form) { - var self = this - if (form) { - if (!/^application\/x-www-form-urlencoded\b/.test(self.getHeader('content-type'))) { - self.setHeader('content-type', 'application/x-www-form-urlencoded') - } - self.body = (typeof form === 'string') - ? self._qs.rfc3986(form.toString('utf8')) - : self._qs.stringify(form).toString('utf8') - return self - } - // create form-data object - self._form = new FormData() - self._form.on('error', function(err) { - err.message = 'form-data: ' + err.message - self.emit('error', err) - self.abort() - }) - return self._form -} -Request.prototype.multipart = function (multipart) { - var self = this - - self._multipart.onRequest(multipart) - - if (!self._multipart.chunked) { - self.body = self._multipart.body - } - - return self -} -Request.prototype.json = function (val) { - var self = this - - if (!self.hasHeader('accept')) { - self.setHeader('accept', 'application/json') - } - - if (typeof self.jsonReplacer === 'function') { - self._jsonReplacer = self.jsonReplacer - } - - self._json = true - if (typeof val === 'boolean') { - if (self.body !== undefined) { - if (!/^application\/x-www-form-urlencoded\b/.test(self.getHeader('content-type'))) { - self.body = safeStringify(self.body, self._jsonReplacer) - } else { - self.body = self._qs.rfc3986(self.body) - } - if (!self.hasHeader('content-type')) { - self.setHeader('content-type', 'application/json') - } - } - } else { - self.body = safeStringify(val, self._jsonReplacer) - if (!self.hasHeader('content-type')) { - self.setHeader('content-type', 'application/json') - } - } - - if (typeof self.jsonReviver === 'function') { - self._jsonReviver = self.jsonReviver - } - - return self -} -Request.prototype.getHeader = function (name, headers) { - var self = this - var result, re, match - if (!headers) { - headers = self.headers - } - Object.keys(headers).forEach(function (key) { - if (key.length !== name.length) { - return - } - re = new RegExp(name, 'i') - match = key.match(re) - if (match) { - result = headers[key] - } - }) - return result -} -Request.prototype.enableUnixSocket = function () { - // Get the socket & request paths from the URL - var unixParts = this.uri.path.split(':') - , host = unixParts[0] - , path = unixParts[1] - // Apply unix properties to request - this.socketPath = host - this.uri.pathname = path - this.uri.path = path - this.uri.host = host - this.uri.hostname = host - this.uri.isUnix = true -} - - -Request.prototype.auth = function (user, pass, sendImmediately, bearer) { - var self = this - - self._auth.onRequest(user, pass, sendImmediately, bearer) - - return self -} -Request.prototype.aws = function (opts, now) { - var self = this - - if (!now) { - self._aws = opts - return self - } - - if (opts.sign_version == 4 || opts.sign_version == '4') { - var aws4 = require('aws4') - // use aws4 - var options = { - host: self.uri.host, - path: self.uri.path, - method: self.method, - headers: { - 'content-type': self.getHeader('content-type') || '' - }, - body: self.body - } - var signRes = aws4.sign(options, { - accessKeyId: opts.key, - secretAccessKey: opts.secret - }) - self.setHeader('authorization', signRes.headers.Authorization) - self.setHeader('x-amz-date', signRes.headers['X-Amz-Date']) - } - else { - // default: use aws-sign2 - var date = new Date() - self.setHeader('date', date.toUTCString()) - var auth = - { key: opts.key - , secret: opts.secret - , verb: self.method.toUpperCase() - , date: date - , contentType: self.getHeader('content-type') || '' - , md5: self.getHeader('content-md5') || '' - , amazonHeaders: aws2.canonicalizeHeaders(self.headers) - } - var path = self.uri.path - if (opts.bucket && path) { - auth.resource = '/' + opts.bucket + path - } else if (opts.bucket && !path) { - auth.resource = '/' + opts.bucket - } else if (!opts.bucket && path) { - auth.resource = path - } else if (!opts.bucket && !path) { - auth.resource = '/' - } - auth.resource = aws2.canonicalizeResource(auth.resource) - self.setHeader('authorization', aws2.authorization(auth)) - } - - return self -} -Request.prototype.httpSignature = function (opts) { - var self = this - httpSignature.signRequest({ - getHeader: function(header) { - return self.getHeader(header, self.headers) - }, - setHeader: function(header, value) { - self.setHeader(header, value) - }, - method: self.method, - path: self.path - }, opts) - debug('httpSignature authorization', self.getHeader('authorization')) - - return self -} -Request.prototype.hawk = function (opts) { - var self = this - self.setHeader('Authorization', hawk.client.header(self.uri, self.method, opts).field) -} -Request.prototype.oauth = function (_oauth) { - var self = this - - self._oauth.onRequest(_oauth) - - return self -} - -Request.prototype.jar = function (jar) { - var self = this - var cookies - - if (self._redirect.redirectsFollowed === 0) { - self.originalCookieHeader = self.getHeader('cookie') - } - - if (!jar) { - // disable cookies - cookies = false - self._disableCookies = true - } else { - var targetCookieJar = (jar && jar.getCookieString) ? jar : globalCookieJar - var urihref = self.uri.href - //fetch cookie in the Specified host - if (targetCookieJar) { - cookies = targetCookieJar.getCookieString(urihref) - } - } - - //if need cookie and cookie is not empty - if (cookies && cookies.length) { - if (self.originalCookieHeader) { - // Don't overwrite existing Cookie header - self.setHeader('cookie', self.originalCookieHeader + '; ' + cookies) - } else { - self.setHeader('cookie', cookies) - } - } - self._jar = jar - return self -} - - -// Stream API -Request.prototype.pipe = function (dest, opts) { - var self = this - - if (self.response) { - if (self._destdata) { - self.emit('error', new Error('You cannot pipe after data has been emitted from the response.')) - } else if (self._ended) { - self.emit('error', new Error('You cannot pipe after the response has been ended.')) - } else { - stream.Stream.prototype.pipe.call(self, dest, opts) - self.pipeDest(dest) - return dest - } - } else { - self.dests.push(dest) - stream.Stream.prototype.pipe.call(self, dest, opts) - return dest - } -} -Request.prototype.write = function () { - var self = this - if (self._aborted) {return} - - if (!self._started) { - self.start() - } - if (self.req) { - return self.req.write.apply(self.req, arguments) - } -} -Request.prototype.end = function (chunk) { - var self = this - if (self._aborted) {return} - - if (chunk) { - self.write(chunk) - } - if (!self._started) { - self.start() - } - if (self.req) { - self.req.end() - } -} -Request.prototype.pause = function () { - var self = this - if (!self.responseContent) { - self._paused = true - } else { - self.responseContent.pause.apply(self.responseContent, arguments) - } -} -Request.prototype.resume = function () { - var self = this - if (!self.responseContent) { - self._paused = false - } else { - self.responseContent.resume.apply(self.responseContent, arguments) - } -} -Request.prototype.destroy = function () { - var self = this - if (!self._ended) { - self.end() - } else if (self.response) { - self.response.destroy() - } -} - -Request.defaultProxyHeaderWhiteList = - Tunnel.defaultProxyHeaderWhiteList.slice() - -Request.defaultProxyHeaderExclusiveList = - Tunnel.defaultProxyHeaderExclusiveList.slice() - -// Exports - -Request.prototype.toJSON = requestToJSON -module.exports = Request diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/.npmignore deleted file mode 100644 index e7726a07..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -/node_modules/* -npm-debug.log diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/License deleted file mode 100644 index 0b58de37..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/License +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2011: -Tim Koschützki (tim@debuggable.com) -Felix Geisendörfer (felix@debuggable.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/Makefile deleted file mode 100644 index eee21a99..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -SHELL := /bin/bash - -test: - @node test/runner.js - -release-major: test - npm version major -m "Release %s" - git push - npm publish - -release-minor: test - npm version minor -m "Release %s" - git push - npm publish - -release-patch: test - npm version patch -m "Release %s" - git push - npm publish - -.PHONY: test - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/Readme.md deleted file mode 100644 index 26e50a3a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/Readme.md +++ /dev/null @@ -1,207 +0,0 @@ -# retry - -Abstraction for exponential and custom retry strategies for failed operations. - -## Installation - - npm install retry - -## Current Status - -This module has been tested and is ready to be used. - -## Tutorial - -The example below will retry a potentially failing `dns.resolve` operation -`10` times using an exponential backoff strategy. With the default settings, this -means the last attempt is made after `17 minutes and 3 seconds`. - -``` javascript -var dns = require('dns'); -var retry = require('retry'); - -function faultTolerantResolve(address, cb) { - var operation = retry.operation(); - - operation.attempt(function(currentAttempt) { - dns.resolve(address, function(err, addresses) { - if (operation.retry(err)) { - return; - } - - cb(err ? operation.mainError() : null, addresses); - }); - }); -} - -faultTolerantResolve('nodejs.org', function(err, addresses) { - console.log(err, addresses); -}); -``` - -Of course you can also configure the factors that go into the exponential -backoff. See the API documentation below for all available settings. -currentAttempt is an int representing the number of attempts so far. - -``` javascript -var operation = retry.operation({ - retries: 5, - factor: 3, - minTimeout: 1 * 1000, - maxTimeout: 60 * 1000, - randomize: true, -}); -``` - -## API - -### retry.operation([options]) - -Creates a new `RetryOperation` object. `options` is the same as `retry.timeouts()`'s `options`, with two additions: - -* `forever`: Whether to retry forever, defaults to `false`. -* `unref`: Wether to [unref](https://nodejs.org/api/timers.html#timers_unref) the setTimeout's, defaults to `false`. - -### retry.timeouts([options]) - -Returns an array of timeouts. All time `options` and return values are in -milliseconds. If `options` is an array, a copy of that array is returned. - -`options` is a JS object that can contain any of the following keys: - -* `retries`: The maximum amount of times to retry the operation. Default is `10`. -* `factor`: The exponential factor to use. Default is `2`. -* `minTimeout`: The number of milliseconds before starting the first retry. Default is `1000`. -* `maxTimeout`: The maximum number of milliseconds between two retries. Default is `Infinity`. -* `randomize`: Randomizes the timeouts by multiplying with a factor between `1` to `2`. Default is `false`. - -The formula used to calculate the individual timeouts is: - -``` -var Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout); -``` - -Have a look at [this article][article] for a better explanation of approach. - -If you want to tune your `factor` / `times` settings to attempt the last retry -after a certain amount of time, you can use wolfram alpha. For example in order -to tune for `10` attempts in `5 minutes`, you can use this equation: - -![screenshot](https://github.com/tim-kos/node-retry/raw/master/equation.gif) - -Explaining the various values from left to right: - -* `k = 0 ... 9`: The `retries` value (10) -* `1000`: The `minTimeout` value in ms (1000) -* `x^k`: No need to change this, `x` will be your resulting factor -* `5 * 60 * 1000`: The desired total amount of time for retrying in ms (5 minutes) - -To make this a little easier for you, use wolfram alpha to do the calculations: - - - -[article]: http://dthain.blogspot.com/2009/02/exponential-backoff-in-distributed.html - -### retry.createTimeout(attempt, opts) - -Returns a new `timeout` (integer in milliseconds) based on the given parameters. - -`attempt` is an integer representing for which retry the timeout should be calculated. If your retry operation was executed 4 times you had one attempt and 3 retries. If you then want to calculate a new timeout, you should set `attempt` to 4 (attempts are zero-indexed). - -`opts` can include `factor`, `minTimeout`, `randomize` (boolean) and `maxTimeout`. They are documented above. - -`retry.createTimeout()` is used internally by `retry.timeouts()` and is public for you to be able to create your own timeouts for reinserting an item, see [issue #13](https://github.com/tim-kos/node-retry/issues/13). - -### retry.wrap(obj, [options], [methodNames]) - -Wrap all functions of the `obj` with retry. Optionally you can pass operation options and -an array of method names which need to be wrapped. - -``` -retry.wrap(obj) - -retry.wrap(obj, ['method1', 'method2']); - -retry.wrap(obj, {retries: 3}); - -retry.wrap(obj, {retries: 3}, ['method1', 'method2']); -``` -The `options` object can take any options that the usual call to `retry.operation` can take. - -### new RetryOperation(timeouts, [options]) - -Creates a new `RetryOperation` where `timeouts` is an array where each value is -a timeout given in milliseconds. - -Available options: -* `forever`: Whether to retry forever, defaults to `false`. -* `unref`: Wether to [unref](https://nodejs.org/api/timers.html#timers_unref) the setTimeout's, defaults to `false`. - -If `forever` is true, the following changes happen: -* `RetryOperation.errors()` will only output an array of one item: the last error. -* `RetryOperation` will repeatedly use the last item in the `timeouts` array. - -#### retryOperation.errors() - -Returns an array of all errors that have been passed to -`retryOperation.retry()` so far. - -#### retryOperation.mainError() - -A reference to the error object that occured most frequently. Errors are -compared using the `error.message` property. - -If multiple error messages occured the same amount of time, the last error -object with that message is returned. - -If no errors occured so far, the value is `null`. - -#### retryOperation.attempt(fn, timeoutOps) - -Defines the function `fn` that is to be retried and executes it for the first -time right away. The `fn` function can receive an optional `currentAttempt` callback that represents the number of attempts to execute `fn` so far. - -Optionally defines `timeoutOps` which is an object having a property `timeout` in miliseconds and a property `cb` callback function. -Whenever your retry operation takes longer than `timeout` to execute, the timeout callback function `cb` is called. - - -#### retryOperation.try(fn) - -This is an alias for `retryOperation.attempt(fn)`. This is deprecated. Please use `retryOperation.attempt(fn)` instead. - -#### retryOperation.start(fn) - -This is an alias for `retryOperation.attempt(fn)`. This is deprecated. Please use `retryOperation.attempt(fn)` instead. - -#### retryOperation.retry(error) - -Returns `false` when no `error` value is given, or the maximum amount of retries -has been reached. - -Otherwise it returns `true`, and retries the operation after the timeout for -the current attempt number. - -#### retryOperation.attempts() - -Returns an int representing the number of attempts it took to call `fn` before it was successful. - -## License - -retry is licensed under the MIT license. - - -# Changelog - -0.8.0 Implementing retry.wrap. - -0.7.0 Some bug fixes and made retry.createTimeout() public. Fixed issues [#10](https://github.com/tim-kos/node-retry/issues/10), [#12](https://github.com/tim-kos/node-retry/issues/12), and [#13](https://github.com/tim-kos/node-retry/issues/13). - -0.6.0 Introduced optional timeOps parameter for the attempt() function which is an object having a property timeout in milliseconds and a property cb callback function. Whenever your retry operation takes longer than timeout to execute, the timeout callback function cb is called. - -0.5.0 Some minor refactoring. - -0.4.0 Changed retryOperation.try() to retryOperation.attempt(). Deprecated the aliases start() and try() for it. - -0.3.0 Added retryOperation.start() which is an alias for retryOperation.try(). - -0.2.0 Added attempts() function and parameter to retryOperation.try() representing the number of attempts it took to call fn(). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/equation.gif b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/equation.gif deleted file mode 100644 index 97107237..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/equation.gif and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/example/dns.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/example/dns.js deleted file mode 100644 index d6351e9d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/example/dns.js +++ /dev/null @@ -1,31 +0,0 @@ -var dns = require('dns'); -var retry = require('../lib/retry'); - -function faultTolerantResolve(address, cb) { - var opts = { - retries: 2, - factor: 2, - minTimeout: 1 * 1000, - maxTimeout: 2 * 1000, - randomize: true - }; - var operation = retry.operation(opts); - - operation.attempt(function(currentAttempt) { - dns.resolve(address, function(err, addresses) { - if (operation.retry(err)) { - return; - } - - cb(operation.mainError(), operation.errors(), addresses); - }); - }); -} - -faultTolerantResolve('nodejs.org', function(err, errors, addresses) { - console.warn('err:'); - console.log(err); - - console.warn('addresses:'); - console.log(addresses); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/index.js deleted file mode 100644 index ee62f3a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/retry'); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/lib/retry.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/lib/retry.js deleted file mode 100644 index 02ab1472..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/lib/retry.js +++ /dev/null @@ -1,95 +0,0 @@ -var RetryOperation = require('./retry_operation'); - -exports.operation = function(options) { - var timeouts = exports.timeouts(options); - return new RetryOperation(timeouts, { - forever: options && options.forever, - unref: options && options.unref - }); -}; - -exports.timeouts = function(options) { - if (options instanceof Array) { - return [].concat(options); - } - - var opts = { - retries: 10, - factor: 2, - minTimeout: 1 * 1000, - maxTimeout: Infinity, - randomize: false - }; - for (var key in options) { - opts[key] = options[key]; - } - - if (opts.minTimeout > opts.maxTimeout) { - throw new Error('minTimeout is greater than maxTimeout'); - } - - var timeouts = []; - for (var i = 0; i < opts.retries; i++) { - timeouts.push(this.createTimeout(i, opts)); - } - - // sort the array numerically ascending - timeouts.sort(function(a,b) { - return a - b; - }); - - return timeouts; -}; - -exports.createTimeout = function(attempt, opts) { - var random = (opts.randomize) - ? (Math.random() + 1) - : 1; - - var timeout = Math.round(random * opts.minTimeout * Math.pow(opts.factor, attempt)); - timeout = Math.min(timeout, opts.maxTimeout); - - return timeout; -}; - -exports.wrap = function(obj, options, methods) { - if (options instanceof Array) { - methods = options; - options = null; - } - - if (!methods) { - methods = []; - for (var key in obj) { - if (typeof obj[key] === 'function') { - methods.push(key); - } - } - } - - for (var i = 0; i < methods.length; i++) { - var method = methods[i]; - var original = obj[method]; - - obj[method] = function retryWrapper() { - var op = exports.operation(options); - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - - args.push(function(err) { - if (op.retry(err)) { - return; - } - if (err) { - arguments[0] = op.mainError(); - } - callback.apply(this, arguments); - }); - - op.attempt(function() { - original.apply(obj, args); - }); - }; - obj[method].options = options; - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/lib/retry_operation.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/lib/retry_operation.js deleted file mode 100644 index ad96efbd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/lib/retry_operation.js +++ /dev/null @@ -1,134 +0,0 @@ -function RetryOperation(timeouts, options) { - // Compatibility for the old (timeouts, retryForever) signature - if (typeof options === 'boolean') { - options = { forever: options }; - } - - this._timeouts = timeouts; - this._options = options || {}; - this._fn = null; - this._errors = []; - this._attempts = 1; - this._operationTimeout = null; - this._operationTimeoutCb = null; - this._timeout = null; - - if (this._options.forever) { - this._cachedTimeouts = this._timeouts.slice(0); - } -} -module.exports = RetryOperation; - -RetryOperation.prototype.retry = function(err) { - if (this._timeout) { - clearTimeout(this._timeout); - } - - if (!err) { - return false; - } - - this._errors.push(err); - - var timeout = this._timeouts.shift(); - if (timeout === undefined) { - if (this._cachedTimeouts) { - // retry forever, only keep last error - this._errors.splice(this._errors.length - 1, this._errors.length); - this._timeouts = this._cachedTimeouts.slice(0); - timeout = this._timeouts.shift(); - } else { - return false; - } - } - - var self = this; - var timer = setTimeout(function() { - self._attempts++; - - if (self._operationTimeoutCb) { - self._timeout = setTimeout(function() { - self._operationTimeoutCb(self._attempts); - }, self._operationTimeout); - - if (this._options.unref) { - self._timeout.unref(); - } - } - - self._fn(self._attempts); - }, timeout); - - if (this._options.unref) { - timer.unref(); - } - - return true; -}; - -RetryOperation.prototype.attempt = function(fn, timeoutOps) { - this._fn = fn; - - if (timeoutOps) { - if (timeoutOps.timeout) { - this._operationTimeout = timeoutOps.timeout; - } - if (timeoutOps.cb) { - this._operationTimeoutCb = timeoutOps.cb; - } - } - - var self = this; - if (this._operationTimeoutCb) { - this._timeout = setTimeout(function() { - self._operationTimeoutCb(); - }, self._operationTimeout); - } - - this._fn(this._attempts); -}; - -RetryOperation.prototype.try = function(fn) { - console.log('Using RetryOperation.try() is deprecated'); - this.attempt(fn); -}; - -RetryOperation.prototype.start = function(fn) { - console.log('Using RetryOperation.start() is deprecated'); - this.attempt(fn); -}; - -RetryOperation.prototype.start = RetryOperation.prototype.try; - -RetryOperation.prototype.errors = function() { - return this._errors; -}; - -RetryOperation.prototype.attempts = function() { - return this._attempts; -}; - -RetryOperation.prototype.mainError = function() { - if (this._errors.length === 0) { - return null; - } - - var counts = {}; - var mainError = null; - var mainErrorCount = 0; - - for (var i = 0; i < this._errors.length; i++) { - var error = this._errors[i]; - var message = error.message; - var count = (counts[message] || 0) + 1; - - counts[message] = count; - - if (count >= mainErrorCount) { - mainError = error; - mainErrorCount = count; - } - } - - return mainError; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/package.json deleted file mode 100644 index 9d2283a3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "_args": [ - [ - "retry@latest", - "/Users/rebecca/code/npm" - ] - ], - "_from": "retry@latest", - "_id": "retry@0.9.0", - "_inCache": true, - "_installable": true, - "_location": "/retry", - "_nodeVersion": "4.2.1", - "_npmUser": { - "email": "tim@debuggable.com", - "name": "tim-kos" - }, - "_npmVersion": "2.1.7", - "_phantomChildren": {}, - "_requested": { - "name": "retry", - "raw": "retry@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/retry/-/retry-0.9.0.tgz", - "_shasum": "6f697e50a0e4ddc8c8f7fb547a9b60dead43678d", - "_shrinkwrap": null, - "_spec": "retry@latest", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "tim@debuggable.com", - "name": "Tim Koschützki", - "url": "http://debuggable.com/" - }, - "bugs": { - "url": "https://github.com/tim-kos/node-retry/issues" - }, - "dependencies": {}, - "description": "Abstraction for exponential and custom retry strategies for failed operations.", - "devDependencies": { - "fake": "0.2.0", - "far": "0.0.1" - }, - "directories": { - "lib": "./lib" - }, - "dist": { - "shasum": "6f697e50a0e4ddc8c8f7fb547a9b60dead43678d", - "tarball": "http://registry.npmjs.org/retry/-/retry-0.9.0.tgz" - }, - "engines": { - "node": "*" - }, - "gitHead": "1b621cf499ef7647d005e3650006b93a8dbeb986", - "homepage": "https://github.com/tim-kos/node-retry", - "license": "MIT", - "main": "index", - "maintainers": [ - { - "name": "tim-kos", - "email": "tim@debuggable.com" - } - ], - "name": "retry", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/tim-kos/node-retry.git" - }, - "scripts": {}, - "version": "0.9.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/common.js deleted file mode 100644 index 22472069..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/common.js +++ /dev/null @@ -1,10 +0,0 @@ -var common = module.exports; -var path = require('path'); - -var rootDir = path.join(__dirname, '..'); -common.dir = { - lib: rootDir + '/lib' -}; - -common.assert = require('assert'); -common.fake = require('fake'); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/integration/test-retry-operation.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/integration/test-retry-operation.js deleted file mode 100644 index cecfa3b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/integration/test-retry-operation.js +++ /dev/null @@ -1,106 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var retry = require(common.dir.lib + '/retry'); - -(function testErrors() { - var operation = retry.operation(); - - var error = new Error('some error'); - var error2 = new Error('some other error'); - operation._errors.push(error); - operation._errors.push(error2); - - assert.deepEqual(operation.errors(), [error, error2]); -})(); - -(function testMainErrorReturnsMostFrequentError() { - var operation = retry.operation(); - var error = new Error('some error'); - var error2 = new Error('some other error'); - - operation._errors.push(error); - operation._errors.push(error2); - operation._errors.push(error); - - assert.strictEqual(operation.mainError(), error); -})(); - -(function testMainErrorReturnsLastErrorOnEqualCount() { - var operation = retry.operation(); - var error = new Error('some error'); - var error2 = new Error('some other error'); - - operation._errors.push(error); - operation._errors.push(error2); - - assert.strictEqual(operation.mainError(), error2); -})(); - -(function testAttempt() { - var operation = retry.operation(); - var fn = new Function(); - - var timeoutOpts = { - timeout: 1, - cb: function() {} - }; - operation.attempt(fn, timeoutOpts); - - assert.strictEqual(fn, operation._fn); - assert.strictEqual(timeoutOpts.timeout, operation._operationTimeout); - assert.strictEqual(timeoutOpts.cb, operation._operationTimeoutCb); -})(); - -(function testRetry() { - var times = 3; - var error = new Error('some error'); - var operation = retry.operation([1, 2, 3]); - var attempts = 0; - - var finalCallback = fake.callback('finalCallback'); - fake.expectAnytime(finalCallback); - - var fn = function() { - operation.attempt(function(currentAttempt) { - attempts++; - assert.equal(currentAttempt, attempts); - if (operation.retry(error)) { - return; - } - - assert.strictEqual(attempts, 4); - assert.strictEqual(operation.attempts(), attempts); - assert.strictEqual(operation.mainError(), error); - finalCallback(); - }); - }; - - fn(); -})(); - -(function testRetryForever() { - var error = new Error('some error'); - var operation = retry.operation({ retries: 3, forever: true }); - var attempts = 0; - - var finalCallback = fake.callback('finalCallback'); - fake.expectAnytime(finalCallback); - - var fn = function() { - operation.attempt(function(currentAttempt) { - attempts++; - assert.equal(currentAttempt, attempts); - if (attempts !== 6 && operation.retry(error)) { - return; - } - - assert.strictEqual(attempts, 6); - assert.strictEqual(operation.attempts(), attempts); - assert.strictEqual(operation.mainError(), error); - finalCallback(); - }); - }; - - fn(); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/integration/test-retry-wrap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/integration/test-retry-wrap.js deleted file mode 100644 index 7ca8bc7e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/integration/test-retry-wrap.js +++ /dev/null @@ -1,77 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var retry = require(common.dir.lib + '/retry'); - -function getLib() { - return { - fn1: function() {}, - fn2: function() {}, - fn3: function() {} - }; -} - -(function wrapAll() { - var lib = getLib(); - retry.wrap(lib); - assert.equal(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); -}()); - -(function wrapAllPassOptions() { - var lib = getLib(); - retry.wrap(lib, {retries: 2}); - assert.equal(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); - assert.equal(lib.fn1.options.retries, 2); - assert.equal(lib.fn2.options.retries, 2); - assert.equal(lib.fn3.options.retries, 2); -}()); - -(function wrapDefined() { - var lib = getLib(); - retry.wrap(lib, ['fn2', 'fn3']); - assert.notEqual(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); -}()); - -(function wrapDefinedAndPassOptions() { - var lib = getLib(); - retry.wrap(lib, {retries: 2}, ['fn2', 'fn3']); - assert.notEqual(lib.fn1.name, 'retryWrapper'); - assert.equal(lib.fn2.name, 'retryWrapper'); - assert.equal(lib.fn3.name, 'retryWrapper'); - assert.equal(lib.fn2.options.retries, 2); - assert.equal(lib.fn3.options.retries, 2); -}()); - -(function runWrappedWithoutError() { - var callbackCalled; - var lib = {method: function(a, b, callback) { - assert.equal(a, 1); - assert.equal(b, 2); - assert.equal(typeof callback, 'function'); - callback(); - }}; - retry.wrap(lib); - lib.method(1, 2, function() { - callbackCalled = true; - }); - assert.ok(callbackCalled); -}()); - -(function runWrappedWithError() { - var callbackCalled; - var lib = {method: function(callback) { - callback(new Error('Some error')); - }}; - retry.wrap(lib, {retries: 1}); - lib.method(function(err) { - callbackCalled = true; - assert.ok(err instanceof Error); - }); - assert.ok(!callbackCalled); -}()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/integration/test-timeouts.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/integration/test-timeouts.js deleted file mode 100644 index 7206b0fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/integration/test-timeouts.js +++ /dev/null @@ -1,69 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var retry = require(common.dir.lib + '/retry'); - -(function testDefaultValues() { - var timeouts = retry.timeouts(); - - assert.equal(timeouts.length, 10); - assert.equal(timeouts[0], 1000); - assert.equal(timeouts[1], 2000); - assert.equal(timeouts[2], 4000); -})(); - -(function testDefaultValuesWithRandomize() { - var minTimeout = 5000; - var timeouts = retry.timeouts({ - minTimeout: minTimeout, - randomize: true - }); - - assert.equal(timeouts.length, 10); - assert.ok(timeouts[0] > minTimeout); - assert.ok(timeouts[1] > timeouts[0]); - assert.ok(timeouts[2] > timeouts[1]); -})(); - -(function testPassedTimeoutsAreUsed() { - var timeoutsArray = [1000, 2000, 3000]; - var timeouts = retry.timeouts(timeoutsArray); - assert.deepEqual(timeouts, timeoutsArray); - assert.notStrictEqual(timeouts, timeoutsArray); -})(); - -(function testTimeoutsAreWithinBoundaries() { - var minTimeout = 1000; - var maxTimeout = 10000; - var timeouts = retry.timeouts({ - minTimeout: minTimeout, - maxTimeout: maxTimeout - }); - for (var i = 0; i < timeouts; i++) { - assert.ok(timeouts[i] >= minTimeout); - assert.ok(timeouts[i] <= maxTimeout); - } -})(); - -(function testTimeoutsAreIncremental() { - var timeouts = retry.timeouts(); - var lastTimeout = timeouts[0]; - for (var i = 0; i < timeouts; i++) { - assert.ok(timeouts[i] > lastTimeout); - lastTimeout = timeouts[i]; - } -})(); - -(function testTimeoutsAreIncrementalForFactorsLessThanOne() { - var timeouts = retry.timeouts({ - retries: 3, - factor: 0.5 - }); - - var expected = [250, 500, 1000]; - assert.deepEqual(expected, timeouts); -})(); - -(function testRetries() { - var timeouts = retry.timeouts({retries: 2}); - assert.strictEqual(timeouts.length, 2); -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/runner.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/runner.js deleted file mode 100644 index e0ee2f57..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/retry/test/runner.js +++ /dev/null @@ -1,5 +0,0 @@ -var far = require('far').create(); - -far.add(__dirname); -far.include(/\/test-.*\.js$/); -far.execute(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/README.md deleted file mode 100644 index 423b8cf8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/README.md +++ /dev/null @@ -1,101 +0,0 @@ -[![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) - -The [UNIX command](http://en.wikipedia.org/wiki/Rm_(Unix)) `rm -rf` for node. - -Install with `npm install rimraf`, or just drop rimraf.js somewhere. - -## API - -`rimraf(f, [opts], callback)` - -The first parameter will be interpreted as a globbing pattern for files. If you -want to disable globbing you can do so with `opts.disableGlob` (defaults to -`false`). This might be handy, for instance, if you have filenames that contain -globbing wildcard characters. - -The callback will be called with an error if there is one. Certain -errors are handled for you: - -* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of - `opts.maxBusyTries` times before giving up, adding 100ms of wait - between each attempt. The default `maxBusyTries` is 3. -* `ENOENT` - If the file doesn't exist, rimraf will return - successfully, since your desired outcome is already the case. -* `EMFILE` - Since `readdir` requires opening a file descriptor, it's - possible to hit `EMFILE` if too many file descriptors are in use. - In the sync case, there's nothing to be done for this. But in the - async case, rimraf will gradually back off with timeouts up to - `opts.emfileWait` ms, which defaults to 1000. - -## options - -* unlink, chmod, stat, lstat, rmdir, readdir, - unlinkSync, chmodSync, statSync, lstatSync, rmdirSync, readdirSync - - In order to use a custom file system library, you can override - specific fs functions on the options object. - - If any of these functions are present on the options object, then - the supplied function will be used instead of the default fs - method. - - Sync methods are only relevant for `rimraf.sync()`, of course. - - For example: - - ```javascript - var myCustomFS = require('some-custom-fs') - - rimraf('some-thing', myCustomFS, callback) - ``` - -* maxBusyTries - - If an `EBUSY`, `ENOTEMPTY`, or `EPERM` error code is encountered - on Windows systems, then rimraf will retry with a linear backoff - wait of 100ms longer on each try. The default maxBusyTries is 3. - - Only relevant for async usage. - -* emfileWait - - If an `EMFILE` error is encountered, then rimraf will retry - repeatedly with a linear backoff of 1ms longer on each try, until - the timeout counter hits this max. The default limit is 1000. - - If you repeatedly encounter `EMFILE` errors, then consider using - [graceful-fs](http://npm.im/graceful-fs) in your program. - - Only relevant for async usage. - -* glob - - Set to `false` to disable [glob](http://npm.im/glob) pattern - matching. - - Set to an object to pass options to the glob module. The default - glob options are `{ nosort: true, silent: true }`. - - Glob version 6 is used in this module. - - Relevant for both sync and async usage. - -* disableGlob - - Set to any non-falsey value to disable globbing entirely. - (Equivalent to setting `glob: false`.) - -## rimraf.sync - -It can remove stuff synchronously, too. But that's not so good. Use -the async API. It's better. - -## CLI - -If installed with `npm install rimraf -g` it can be used as a global -command `rimraf [ ...]` which is useful for cross platform support. - -## mkdirp - -If you need to create a directory recursively, check out -[mkdirp](https://github.com/substack/node-mkdirp). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/bin.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/bin.js deleted file mode 100755 index 1bd5a0d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/bin.js +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env node - -var rimraf = require('./') - -var help = false -var dashdash = false -var args = process.argv.slice(2).filter(function(arg) { - if (dashdash) - return !!arg - else if (arg === '--') - dashdash = true - else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/)) - help = true - else - return !!arg -}); - -if (help || args.length === 0) { - // If they didn't ask for help, then this is not a "success" - var log = help ? console.log : console.error - log('Usage: rimraf [ ...]') - log('') - log(' Deletes all files and folders at "path" recursively.') - log('') - log('Options:') - log('') - log(' -h, --help Display this usage info') - process.exit(help ? 0 : 1) -} else - go(0) - -function go (n) { - if (n >= args.length) - return - rimraf(args[n], function (er) { - if (er) - throw er - go(n+1) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/package.json deleted file mode 100644 index ccc09c5a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "_args": [ - [ - "rimraf@~2.5.1", - "/Users/rebecca/code/npm" - ] - ], - "_from": "rimraf@>=2.5.1 <2.6.0", - "_id": "rimraf@2.5.2", - "_inCache": true, - "_installable": true, - "_location": "/rimraf", - "_nodeVersion": "5.6.0", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/rimraf-2.5.2.tgz_1455346499772_0.9326622514054179" - }, - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.7.0", - "_phantomChildren": {}, - "_requested": { - "name": "rimraf", - "raw": "rimraf@~2.5.1", - "rawSpec": "~2.5.1", - "scope": null, - "spec": ">=2.5.1 <2.6.0", - "type": "range" - }, - "_requiredBy": [ - "/", - "/fs-vacuum", - "/fstream", - "/node-gyp", - "/npm-registry-client", - "/standard/standard-engine/eslint/file-entry-cache/flat-cache/del", - "/tacks", - "/tap/nyc", - "/tap/nyc/spawn-wrap" - ], - "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz", - "_shasum": "62ba947fa4c0b4363839aefecd4f0fbad6059726", - "_shrinkwrap": null, - "_spec": "rimraf@~2.5.1", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bin": { - "rimraf": "./bin.js" - }, - "bugs": { - "url": "https://github.com/isaacs/rimraf/issues" - }, - "dependencies": { - "glob": "^7.0.0" - }, - "description": "A deep deletion module for node (like `rm -rf`)", - "devDependencies": { - "mkdirp": "^0.5.1", - "tap": "^5.1.1" - }, - "directories": {}, - "dist": { - "shasum": "62ba947fa4c0b4363839aefecd4f0fbad6059726", - "tarball": "http://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz" - }, - "files": [ - "LICENSE", - "README.md", - "bin.js", - "rimraf.js" - ], - "gitHead": "f414f87021f88d004ac487eebc8d07ce6a152721", - "homepage": "https://github.com/isaacs/rimraf#readme", - "license": "ISC", - "main": "rimraf.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "rimraf", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/rimraf.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "2.5.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/rimraf.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/rimraf.js deleted file mode 100644 index c01d13b2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/rimraf/rimraf.js +++ /dev/null @@ -1,335 +0,0 @@ -module.exports = rimraf -rimraf.sync = rimrafSync - -var assert = require("assert") -var path = require("path") -var fs = require("fs") -var glob = require("glob") - -var defaultGlobOpts = { - nosort: true, - silent: true -} - -// for EMFILE handling -var timeout = 0 - -var isWindows = (process.platform === "win32") - -function defaults (options) { - var methods = [ - 'unlink', - 'chmod', - 'stat', - 'lstat', - 'rmdir', - 'readdir' - ] - methods.forEach(function(m) { - options[m] = options[m] || fs[m] - m = m + 'Sync' - options[m] = options[m] || fs[m] - }) - - options.maxBusyTries = options.maxBusyTries || 3 - options.emfileWait = options.emfileWait || 1000 - if (options.glob === false) { - options.disableGlob = true - } - options.disableGlob = options.disableGlob || false - options.glob = options.glob || defaultGlobOpts -} - -function rimraf (p, options, cb) { - if (typeof options === 'function') { - cb = options - options = {} - } - - assert(p, 'rimraf: missing path') - assert.equal(typeof p, 'string', 'rimraf: path should be a string') - assert(options, 'rimraf: missing options') - assert.equal(typeof options, 'object', 'rimraf: options should be object') - assert.equal(typeof cb, 'function', 'rimraf: callback function required') - - defaults(options) - - var busyTries = 0 - var errState = null - var n = 0 - - if (options.disableGlob || !glob.hasMagic(p)) - return afterGlob(null, [p]) - - fs.lstat(p, function (er, stat) { - if (!er) - return afterGlob(null, [p]) - - glob(p, options.glob, afterGlob) - }) - - function next (er) { - errState = errState || er - if (--n === 0) - cb(errState) - } - - function afterGlob (er, results) { - if (er) - return cb(er) - - n = results.length - if (n === 0) - return cb() - - results.forEach(function (p) { - rimraf_(p, options, function CB (er) { - if (er) { - if (isWindows && (er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") && - busyTries < options.maxBusyTries) { - busyTries ++ - var time = busyTries * 100 - // try again, with the same exact callback as this one. - return setTimeout(function () { - rimraf_(p, options, CB) - }, time) - } - - // this one won't happen if graceful-fs is used. - if (er.code === "EMFILE" && timeout < options.emfileWait) { - return setTimeout(function () { - rimraf_(p, options, CB) - }, timeout ++) - } - - // already gone - if (er.code === "ENOENT") er = null - } - - timeout = 0 - next(er) - }) - }) - } -} - -// Two possible strategies. -// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR -// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR -// -// Both result in an extra syscall when you guess wrong. However, there -// are likely far more normal files in the world than directories. This -// is based on the assumption that a the average number of files per -// directory is >= 1. -// -// If anyone ever complains about this, then I guess the strategy could -// be made configurable somehow. But until then, YAGNI. -function rimraf_ (p, options, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') - - // sunos lets the root user unlink directories, which is... weird. - // so we have to lstat here and make sure it's not a dir. - options.lstat(p, function (er, st) { - if (er && er.code === "ENOENT") - return cb(null) - - if (st && st.isDirectory()) - return rmdir(p, options, er, cb) - - options.unlink(p, function (er) { - if (er) { - if (er.code === "ENOENT") - return cb(null) - if (er.code === "EPERM") - return (isWindows) - ? fixWinEPERM(p, options, er, cb) - : rmdir(p, options, er, cb) - if (er.code === "EISDIR") - return rmdir(p, options, er, cb) - } - return cb(er) - }) - }) -} - -function fixWinEPERM (p, options, er, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') - if (er) - assert(er instanceof Error) - - options.chmod(p, 666, function (er2) { - if (er2) - cb(er2.code === "ENOENT" ? null : er) - else - options.stat(p, function(er3, stats) { - if (er3) - cb(er3.code === "ENOENT" ? null : er) - else if (stats.isDirectory()) - rmdir(p, options, er, cb) - else - options.unlink(p, cb) - }) - }) -} - -function fixWinEPERMSync (p, options, er) { - assert(p) - assert(options) - if (er) - assert(er instanceof Error) - - try { - options.chmodSync(p, 666) - } catch (er2) { - if (er2.code === "ENOENT") - return - else - throw er - } - - try { - var stats = options.statSync(p) - } catch (er3) { - if (er3.code === "ENOENT") - return - else - throw er - } - - if (stats.isDirectory()) - rmdirSync(p, options, er) - else - options.unlinkSync(p) -} - -function rmdir (p, options, originalEr, cb) { - assert(p) - assert(options) - if (originalEr) - assert(originalEr instanceof Error) - assert(typeof cb === 'function') - - // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) - // if we guessed wrong, and it's not a directory, then - // raise the original error. - options.rmdir(p, function (er) { - if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) - rmkids(p, options, cb) - else if (er && er.code === "ENOTDIR") - cb(originalEr) - else - cb(er) - }) -} - -function rmkids(p, options, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') - - options.readdir(p, function (er, files) { - if (er) - return cb(er) - var n = files.length - if (n === 0) - return options.rmdir(p, cb) - var errState - files.forEach(function (f) { - rimraf(path.join(p, f), options, function (er) { - if (errState) - return - if (er) - return cb(errState = er) - if (--n === 0) - options.rmdir(p, cb) - }) - }) - }) -} - -// this looks simpler, and is strictly *faster*, but will -// tie up the JavaScript thread and fail on excessively -// deep directory trees. -function rimrafSync (p, options) { - options = options || {} - defaults(options) - - assert(p, 'rimraf: missing path') - assert.equal(typeof p, 'string', 'rimraf: path should be a string') - assert(options, 'rimraf: missing options') - assert.equal(typeof options, 'object', 'rimraf: options should be object') - - var results - - if (options.disableGlob || !glob.hasMagic(p)) { - results = [p] - } else { - try { - fs.lstatSync(p) - results = [p] - } catch (er) { - results = glob.sync(p, options.glob) - } - } - - if (!results.length) - return - - for (var i = 0; i < results.length; i++) { - var p = results[i] - - try { - var st = options.lstatSync(p) - } catch (er) { - if (er.code === "ENOENT") - return - } - - try { - // sunos lets the root user unlink directories, which is... weird. - if (st && st.isDirectory()) - rmdirSync(p, options, null) - else - options.unlinkSync(p) - } catch (er) { - if (er.code === "ENOENT") - return - if (er.code === "EPERM") - return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er) - if (er.code !== "EISDIR") - throw er - rmdirSync(p, options, er) - } - } -} - -function rmdirSync (p, options, originalEr) { - assert(p) - assert(options) - if (originalEr) - assert(originalEr instanceof Error) - - try { - options.rmdirSync(p) - } catch (er) { - if (er.code === "ENOENT") - return - if (er.code === "ENOTDIR") - throw originalEr - if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") - rmkidsSync(p, options) - } -} - -function rmkidsSync (p, options) { - assert(p) - assert(options) - options.readdirSync(p).forEach(function (f) { - rimrafSync(path.join(p, f), options) - }) - options.rmdirSync(p, options) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/.npmignore deleted file mode 100644 index 534108e3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules/ -coverage/ -.nyc_output/ -nyc_output/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/.travis.yml deleted file mode 100644 index 991d04b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - '0.10' - - '0.12' - - 'iojs' diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/README.md deleted file mode 100644 index 0b14a7e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/README.md +++ /dev/null @@ -1,327 +0,0 @@ -semver(1) -- The semantic versioner for npm -=========================================== - -## Usage - - $ npm install semver - - semver.valid('1.2.3') // '1.2.3' - semver.valid('a.b.c') // null - semver.clean(' =v1.2.3 ') // '1.2.3' - semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true - semver.gt('1.2.3', '9.8.7') // false - semver.lt('1.2.3', '9.8.7') // true - -As a command-line utility: - - $ semver -h - - Usage: semver [ [...]] [-r | -i | --preid | -l | -rv] - Test if version(s) satisfy the supplied range(s), and sort them. - - Multiple versions or ranges may be supplied, unless increment - option is specified. In that case, only a single version may - be used, and it is incremented by the specified level - - Program exits successfully if any valid version satisfies - all supplied ranges, and prints all satisfying versions. - - If no versions are valid, or ranges are not satisfied, - then exits failure. - - Versions are printed in ascending order, so supplying - multiple versions to the utility will just sort them. - -## Versions - -A "version" is described by the `v2.0.0` specification found at -. - -A leading `"="` or `"v"` character is stripped off and ignored. - -## Ranges - -A `version range` is a set of `comparators` which specify versions -that satisfy the range. - -A `comparator` is composed of an `operator` and a `version`. The set -of primitive `operators` is: - -* `<` Less than -* `<=` Less than or equal to -* `>` Greater than -* `>=` Greater than or equal to -* `=` Equal. If no operator is specified, then equality is assumed, - so this operator is optional, but MAY be included. - -For example, the comparator `>=1.2.7` would match the versions -`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` -or `1.1.0`. - -Comparators can be joined by whitespace to form a `comparator set`, -which is satisfied by the **intersection** of all of the comparators -it includes. - -A range is composed of one or more comparator sets, joined by `||`. A -version matches a range if and only if every comparator in at least -one of the `||`-separated comparator sets is satisfied by the version. - -For example, the range `>=1.2.7 <1.3.0` would match the versions -`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, -or `1.1.0`. - -The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, -`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. - -### Prerelease Tags - -If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then -it will only be allowed to satisfy comparator sets if at least one -comparator with the same `[major, minor, patch]` tuple also has a -prerelease tag. - -For example, the range `>1.2.3-alpha.3` would be allowed to match the -version `1.2.3-alpha.7`, but it would *not* be satisfied by -`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater -than" `1.2.3-alpha.3` according to the SemVer sort rules. The version -range only accepts prerelease tags on the `1.2.3` version. The -version `3.4.5` *would* satisfy the range, because it does not have a -prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. - -The purpose for this behavior is twofold. First, prerelease versions -frequently are updated very quickly, and contain many breaking changes -that are (by the author's design) not yet fit for public consumption. -Therefore, by default, they are excluded from range matching -semantics. - -Second, a user who has opted into using a prerelease version has -clearly indicated the intent to use *that specific* set of -alpha/beta/rc versions. By including a prerelease tag in the range, -the user is indicating that they are aware of the risk. However, it -is still not appropriate to assume that they have opted into taking a -similar risk on the *next* set of prerelease versions. - -#### Prerelease Identifiers - -The method `.inc` takes an additional `identifier` string argument that -will append the value of the string as a prerelease identifier: - -```javascript -> semver.inc('1.2.3', 'prerelease', 'beta') -'1.2.4-beta.0' -``` - -command-line example: - -```shell -$ semver 1.2.3 -i prerelease --preid beta -1.2.4-beta.0 -``` - -Which then can be used to increment further: - -```shell -$ semver 1.2.4-beta.0 -i prerelease -1.2.4-beta.1 -``` - -### Advanced Range Syntax - -Advanced range syntax desugars to primitive comparators in -deterministic ways. - -Advanced ranges may be combined in the same way as primitive -comparators using white space or `||`. - -#### Hyphen Ranges `X.Y.Z - A.B.C` - -Specifies an inclusive set. - -* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` - -If a partial version is provided as the first version in the inclusive -range, then the missing pieces are replaced with zeroes. - -* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` - -If a partial version is provided as the second version in the -inclusive range, then all versions that start with the supplied parts -of the tuple are accepted, but nothing that would be greater than the -provided tuple parts. - -* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0` -* `1.2.3 - 2` := `>=1.2.3 <3.0.0` - -#### X-Ranges `1.2.x` `1.X` `1.2.*` `*` - -Any of `X`, `x`, or `*` may be used to "stand in" for one of the -numeric values in the `[major, minor, patch]` tuple. - -* `*` := `>=0.0.0` (Any version satisfies) -* `1.x` := `>=1.0.0 <2.0.0` (Matching major version) -* `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions) - -A partial version range is treated as an X-Range, so the special -character is in fact optional. - -* `""` (empty string) := `*` := `>=0.0.0` -* `1` := `1.x.x` := `>=1.0.0 <2.0.0` -* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0` - -#### Tilde Ranges `~1.2.3` `~1.2` `~1` - -Allows patch-level changes if a minor version is specified on the -comparator. Allows minor-level changes if not. - -* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0` -* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`) -* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`) -* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0` -* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`) -* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`) -* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in - the `1.2.3` version will be allowed, if they are greater than or - equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but - `1.2.4-beta.2` would not, because it is a prerelease of a - different `[major, minor, patch]` tuple. - -#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` - -Allows changes that do not modify the left-most non-zero digit in the -`[major, minor, patch]` tuple. In other words, this allows patch and -minor updates for versions `1.0.0` and above, patch updates for -versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. - -Many authors treat a `0.x` version as if the `x` were the major -"breaking-change" indicator. - -Caret ranges are ideal when an author may make breaking changes -between `0.2.4` and `0.3.0` releases, which is a common practice. -However, it presumes that there will *not* be breaking changes between -`0.2.4` and `0.2.5`. It allows for changes that are presumed to be -additive (but non-breaking), according to commonly observed practices. - -* `^1.2.3` := `>=1.2.3 <2.0.0` -* `^0.2.3` := `>=0.2.3 <0.3.0` -* `^0.0.3` := `>=0.0.3 <0.0.4` -* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in - the `1.2.3` version will be allowed, if they are greater than or - equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but - `1.2.4-beta.2` would not, because it is a prerelease of a - different `[major, minor, patch]` tuple. -* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4` Note that prereleases in the - `0.0.3` version *only* will be allowed, if they are greater than or - equal to `beta`. So, `0.0.3-pr.2` would be allowed. - -When parsing caret ranges, a missing `patch` value desugars to the -number `0`, but will allow flexibility within that value, even if the -major and minor versions are both `0`. - -* `^1.2.x` := `>=1.2.0 <2.0.0` -* `^0.0.x` := `>=0.0.0 <0.1.0` -* `^0.0` := `>=0.0.0 <0.1.0` - -A missing `minor` and `patch` values will desugar to zero, but also -allow flexibility within those values, even if the major version is -zero. - -* `^1.x` := `>=1.0.0 <2.0.0` -* `^0.x` := `>=0.0.0 <1.0.0` - -### Range Grammar - -Putting all this together, here is a Backus-Naur grammar for ranges, -for the benefit of parser authors: - -```bnf -range-set ::= range ( logical-or range ) * -logical-or ::= ( ' ' ) * '||' ( ' ' ) * -range ::= hyphen | simple ( ' ' simple ) * | '' -hyphen ::= partial ' - ' partial -simple ::= primitive | partial | tilde | caret -primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial -partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? -xr ::= 'x' | 'X' | '*' | nr -nr ::= '0' | ['1'-'9']['0'-'9']+ -tilde ::= '~' partial -caret ::= '^' partial -qualifier ::= ( '-' pre )? ( '+' build )? -pre ::= parts -build ::= parts -parts ::= part ( '.' part ) * -part ::= nr | [-0-9A-Za-z]+ -``` - -## Functions - -All methods and classes take a final `loose` boolean argument that, if -true, will be more forgiving about not-quite-valid semver strings. -The resulting output will always be 100% strict, of course. - -Strict-mode Comparators and Ranges will be strict about the SemVer -strings that they parse. - -* `valid(v)`: Return the parsed version, or null if it's not valid. -* `inc(v, release)`: Return the version incremented by the release - type (`major`, `premajor`, `minor`, `preminor`, `patch`, - `prepatch`, or `prerelease`), or null if it's not valid - * `premajor` in one call will bump the version up to the next major - version and down to a prerelease of that major version. - `preminor`, and `prepatch` work the same way. - * If called from a non-prerelease version, the `prerelease` will work the - same as `prepatch`. It increments the patch version, then makes a - prerelease. If the input version is already a prerelease it simply - increments it. -* `major(v)`: Return the major version number. -* `minor(v)`: Return the minor version number. -* `patch(v)`: Return the patch version number. - -### Comparison - -* `gt(v1, v2)`: `v1 > v2` -* `gte(v1, v2)`: `v1 >= v2` -* `lt(v1, v2)`: `v1 < v2` -* `lte(v1, v2)`: `v1 <= v2` -* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, - even if they're not the exact same string. You already know how to - compare strings. -* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. -* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call - the corresponding function above. `"==="` and `"!=="` do simple - string comparison, but are included for completeness. Throws if an - invalid comparison string is provided. -* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if - `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. -* `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions - in descending order when passed to `Array.sort()`. -* `diff(v1, v2)`: Returns difference between two versions by the release type - (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), - or null if the versions are the same. - - -### Ranges - -* `validRange(range)`: Return the valid range or null if it's not valid -* `satisfies(version, range)`: Return true if the version satisfies the - range. -* `maxSatisfying(versions, range)`: Return the highest version in the list - that satisfies the range, or `null` if none of them do. -* `gtr(version, range)`: Return `true` if version is greater than all the - versions possible in the range. -* `ltr(version, range)`: Return `true` if version is less than all the - versions possible in the range. -* `outside(version, range, hilo)`: Return true if the version is outside - the bounds of the range in either the high or low direction. The - `hilo` argument must be either the string `'>'` or `'<'`. (This is - the function called by `gtr` and `ltr`.) - -Note that, since ranges may be non-contiguous, a version might not be -greater than a range, less than a range, *or* satisfy a range! For -example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` -until `2.0.0`, so the version `1.2.10` would not be greater than the -range (because `2.0.1` satisfies, which is higher), nor less than the -range (since `1.2.8` satisfies, which is lower), and it also does not -satisfy the range. - -If you want to know if a version satisfies or does not satisfy a -range, use the `satisfies(version, range)` function. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/bin/semver b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/bin/semver deleted file mode 100755 index c5f2e857..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/bin/semver +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/env node -// Standalone semver comparison program. -// Exits successfully and prints matching version(s) if -// any supplied version is valid and passes all tests. - -var argv = process.argv.slice(2) - , versions = [] - , range = [] - , gt = [] - , lt = [] - , eq = [] - , inc = null - , version = require("../package.json").version - , loose = false - , identifier = undefined - , semver = require("../semver") - , reverse = false - -main() - -function main () { - if (!argv.length) return help() - while (argv.length) { - var a = argv.shift() - var i = a.indexOf('=') - if (i !== -1) { - a = a.slice(0, i) - argv.unshift(a.slice(i + 1)) - } - switch (a) { - case "-rv": case "-rev": case "--rev": case "--reverse": - reverse = true - break - case "-l": case "--loose": - loose = true - break - case "-v": case "--version": - versions.push(argv.shift()) - break - case "-i": case "--inc": case "--increment": - switch (argv[0]) { - case "major": case "minor": case "patch": case "prerelease": - case "premajor": case "preminor": case "prepatch": - inc = argv.shift() - break - default: - inc = "patch" - break - } - break - case "--preid": - identifier = argv.shift() - break - case "-r": case "--range": - range.push(argv.shift()) - break - case "-h": case "--help": case "-?": - return help() - default: - versions.push(a) - break - } - } - - versions = versions.filter(function (v) { - return semver.valid(v, loose) - }) - if (!versions.length) return fail() - if (inc && (versions.length !== 1 || range.length)) - return failInc() - - for (var i = 0, l = range.length; i < l ; i ++) { - versions = versions.filter(function (v) { - return semver.satisfies(v, range[i], loose) - }) - if (!versions.length) return fail() - } - return success(versions) -} - -function failInc () { - console.error("--inc can only be used on a single version with no range") - fail() -} - -function fail () { process.exit(1) } - -function success () { - var compare = reverse ? "rcompare" : "compare" - versions.sort(function (a, b) { - return semver[compare](a, b, loose) - }).map(function (v) { - return semver.clean(v, loose) - }).map(function (v) { - return inc ? semver.inc(v, inc, loose, identifier) : v - }).forEach(function (v,i,_) { console.log(v) }) -} - -function help () { - console.log(["SemVer " + version - ,"" - ,"A JavaScript implementation of the http://semver.org/ specification" - ,"Copyright Isaac Z. Schlueter" - ,"" - ,"Usage: semver [options] [ [...]]" - ,"Prints valid versions sorted by SemVer precedence" - ,"" - ,"Options:" - ,"-r --range " - ," Print versions that match the specified range." - ,"" - ,"-i --increment []" - ," Increment a version by the specified level. Level can" - ," be one of: major, minor, patch, premajor, preminor," - ," prepatch, or prerelease. Default level is 'patch'." - ," Only one version may be specified." - ,"" - ,"--preid " - ," Identifier to be used to prefix premajor, preminor," - ," prepatch or prerelease version increments." - ,"" - ,"-l --loose" - ," Interpret versions and ranges loosely" - ,"" - ,"Program exits successfully if any valid version satisfies" - ,"all supplied ranges, and prints all satisfying versions." - ,"" - ,"If no satisfying versions are found, then exits failure." - ,"" - ,"Versions are printed in ascending order, so supplying" - ,"multiple versions to the utility will just sort them." - ].join("\n")) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/package.json deleted file mode 100644 index b1dfe404..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "_args": [ - [ - "semver@~5.1.0", - "/Users/ogd/Documents/projects/npm/npm" - ] - ], - "_from": "semver@>=5.1.0 <5.2.0", - "_id": "semver@5.1.0", - "_inCache": true, - "_installable": true, - "_location": "/semver", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "semver", - "raw": "semver@~5.1.0", - "rawSpec": "~5.1.0", - "scope": null, - "spec": ">=5.1.0 <5.2.0", - "type": "range" - }, - "_requiredBy": [ - "/", - "/init-package-json", - "/node-gyp", - "/normalize-package-data", - "/npm-install-checks", - "/npm-package-arg", - "/npm-registry-client", - "/read-installed" - ], - "_resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz", - "_shasum": "85f2cf8550465c4df000cf7d86f6b054106ab9e5", - "_shrinkwrap": null, - "_spec": "semver@~5.1.0", - "_where": "/Users/ogd/Documents/projects/npm/npm", - "bin": { - "semver": "./bin/semver" - }, - "bugs": { - "url": "https://github.com/npm/node-semver/issues" - }, - "dependencies": {}, - "description": "The semantic version parser used by npm.", - "devDependencies": { - "tap": "^2.0.0" - }, - "directories": {}, - "dist": { - "shasum": "85f2cf8550465c4df000cf7d86f6b054106ab9e5", - "tarball": "http://registry.npmjs.org/semver/-/semver-5.1.0.tgz" - }, - "gitHead": "8e33a30e62e40e4983d1c5f55e794331b861aadc", - "homepage": "https://github.com/npm/node-semver#readme", - "license": "ISC", - "main": "semver.js", - "maintainers": [ - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - } - ], - "name": "semver", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/node-semver.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "5.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/range.bnf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/range.bnf deleted file mode 100644 index 000df923..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/range.bnf +++ /dev/null @@ -1,16 +0,0 @@ -range-set ::= range ( logical-or range ) * -logical-or ::= ( ' ' ) * '||' ( ' ' ) * -range ::= hyphen | simple ( ' ' simple ) * | '' -hyphen ::= partial ' - ' partial -simple ::= primitive | partial | tilde | caret -primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial -partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? -xr ::= 'x' | 'X' | '*' | nr -nr ::= '0' | ['1'-'9']['0'-'9']+ -tilde ::= '~' partial -caret ::= '^' partial -qualifier ::= ( '-' pre )? ( '+' build )? -pre ::= parts -build ::= parts -parts ::= part ( '.' part ) * -part ::= nr | [-0-9A-Za-z]+ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/semver.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/semver.js deleted file mode 100644 index 71795f6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/semver.js +++ /dev/null @@ -1,1188 +0,0 @@ -exports = module.exports = SemVer; - -// The debug function is excluded entirely from the minified version. -/* nomin */ var debug; -/* nomin */ if (typeof process === 'object' && - /* nomin */ process.env && - /* nomin */ process.env.NODE_DEBUG && - /* nomin */ /\bsemver\b/i.test(process.env.NODE_DEBUG)) - /* nomin */ debug = function() { - /* nomin */ var args = Array.prototype.slice.call(arguments, 0); - /* nomin */ args.unshift('SEMVER'); - /* nomin */ console.log.apply(console, args); - /* nomin */ }; -/* nomin */ else - /* nomin */ debug = function() {}; - -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -exports.SEMVER_SPEC_VERSION = '2.0.0'; - -var MAX_LENGTH = 256; -var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; - -// The actual regexps go on exports.re -var re = exports.re = []; -var src = exports.src = []; -var R = 0; - -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. - -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. - -var NUMERICIDENTIFIER = R++; -src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'; -var NUMERICIDENTIFIERLOOSE = R++; -src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'; - - -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. - -var NONNUMERICIDENTIFIER = R++; -src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'; - - -// ## Main Version -// Three dot-separated numeric identifiers. - -var MAINVERSION = R++; -src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + - '(' + src[NUMERICIDENTIFIER] + ')\\.' + - '(' + src[NUMERICIDENTIFIER] + ')'; - -var MAINVERSIONLOOSE = R++; -src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[NUMERICIDENTIFIERLOOSE] + ')'; - -// ## Pre-release Version Identifier -// A numeric identifier, or a non-numeric identifier. - -var PRERELEASEIDENTIFIER = R++; -src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + - '|' + src[NONNUMERICIDENTIFIER] + ')'; - -var PRERELEASEIDENTIFIERLOOSE = R++; -src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + - '|' + src[NONNUMERICIDENTIFIER] + ')'; - - -// ## Pre-release Version -// Hyphen, followed by one or more dot-separated pre-release version -// identifiers. - -var PRERELEASE = R++; -src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + - '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'; - -var PRERELEASELOOSE = R++; -src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + - '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'; - -// ## Build Metadata Identifier -// Any combination of digits, letters, or hyphens. - -var BUILDIDENTIFIER = R++; -src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'; - -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. - -var BUILD = R++; -src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + - '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'; - - -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. - -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. - -var FULL = R++; -var FULLPLAIN = 'v?' + src[MAINVERSION] + - src[PRERELEASE] + '?' + - src[BUILD] + '?'; - -src[FULL] = '^' + FULLPLAIN + '$'; - -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. -var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + - src[PRERELEASELOOSE] + '?' + - src[BUILD] + '?'; - -var LOOSE = R++; -src[LOOSE] = '^' + LOOSEPLAIN + '$'; - -var GTLT = R++; -src[GTLT] = '((?:<|>)?=?)'; - -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. -var XRANGEIDENTIFIERLOOSE = R++; -src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'; -var XRANGEIDENTIFIER = R++; -src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'; - -var XRANGEPLAIN = R++; -src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + - '(?:' + src[PRERELEASE] + ')?' + - src[BUILD] + '?' + - ')?)?'; - -var XRANGEPLAINLOOSE = R++; -src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:' + src[PRERELEASELOOSE] + ')?' + - src[BUILD] + '?' + - ')?)?'; - -var XRANGE = R++; -src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'; -var XRANGELOOSE = R++; -src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'; - -// Tilde ranges. -// Meaning is "reasonably at or greater than" -var LONETILDE = R++; -src[LONETILDE] = '(?:~>?)'; - -var TILDETRIM = R++; -src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'; -re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g'); -var tildeTrimReplace = '$1~'; - -var TILDE = R++; -src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'; -var TILDELOOSE = R++; -src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'; - -// Caret ranges. -// Meaning is "at least and backwards compatible with" -var LONECARET = R++; -src[LONECARET] = '(?:\\^)'; - -var CARETTRIM = R++; -src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'; -re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g'); -var caretTrimReplace = '$1^'; - -var CARET = R++; -src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'; -var CARETLOOSE = R++; -src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'; - -// A simple gt/lt/eq thing, or just "" to indicate "any version" -var COMPARATORLOOSE = R++; -src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'; -var COMPARATOR = R++; -src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'; - - -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` -var COMPARATORTRIM = R++; -src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + - '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'; - -// this one has to use the /g flag -re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g'); -var comparatorTrimReplace = '$1$2$3'; - - -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -var HYPHENRANGE = R++; -src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAIN] + ')' + - '\\s*$'; - -var HYPHENRANGELOOSE = R++; -src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s*$'; - -// Star ranges basically just allow anything at all. -var STAR = R++; -src[STAR] = '(<|>)?=?\\s*\\*'; - -// Compile to actual regexp objects. -// All are flag-free, unless they were created above with a flag. -for (var i = 0; i < R; i++) { - debug(i, src[i]); - if (!re[i]) - re[i] = new RegExp(src[i]); -} - -exports.parse = parse; -function parse(version, loose) { - if (version instanceof SemVer) - return version; - - if (typeof version !== 'string') - return null; - - if (version.length > MAX_LENGTH) - return null; - - var r = loose ? re[LOOSE] : re[FULL]; - if (!r.test(version)) - return null; - - try { - return new SemVer(version, loose); - } catch (er) { - return null; - } -} - -exports.valid = valid; -function valid(version, loose) { - var v = parse(version, loose); - return v ? v.version : null; -} - - -exports.clean = clean; -function clean(version, loose) { - var s = parse(version.trim().replace(/^[=v]+/, ''), loose); - return s ? s.version : null; -} - -exports.SemVer = SemVer; - -function SemVer(version, loose) { - if (version instanceof SemVer) { - if (version.loose === loose) - return version; - else - version = version.version; - } else if (typeof version !== 'string') { - throw new TypeError('Invalid Version: ' + version); - } - - if (version.length > MAX_LENGTH) - throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') - - if (!(this instanceof SemVer)) - return new SemVer(version, loose); - - debug('SemVer', version, loose); - this.loose = loose; - var m = version.trim().match(loose ? re[LOOSE] : re[FULL]); - - if (!m) - throw new TypeError('Invalid Version: ' + version); - - this.raw = version; - - // these are actually numbers - this.major = +m[1]; - this.minor = +m[2]; - this.patch = +m[3]; - - if (this.major > MAX_SAFE_INTEGER || this.major < 0) - throw new TypeError('Invalid major version') - - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) - throw new TypeError('Invalid minor version') - - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) - throw new TypeError('Invalid patch version') - - // numberify any prerelease numeric ids - if (!m[4]) - this.prerelease = []; - else - this.prerelease = m[4].split('.').map(function(id) { - if (/^[0-9]+$/.test(id)) { - var num = +id - if (num >= 0 && num < MAX_SAFE_INTEGER) - return num - } - return id; - }); - - this.build = m[5] ? m[5].split('.') : []; - this.format(); -} - -SemVer.prototype.format = function() { - this.version = this.major + '.' + this.minor + '.' + this.patch; - if (this.prerelease.length) - this.version += '-' + this.prerelease.join('.'); - return this.version; -}; - -SemVer.prototype.toString = function() { - return this.version; -}; - -SemVer.prototype.compare = function(other) { - debug('SemVer.compare', this.version, this.loose, other); - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - return this.compareMain(other) || this.comparePre(other); -}; - -SemVer.prototype.compareMain = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - return compareIdentifiers(this.major, other.major) || - compareIdentifiers(this.minor, other.minor) || - compareIdentifiers(this.patch, other.patch); -}; - -SemVer.prototype.comparePre = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - // NOT having a prerelease is > having one - if (this.prerelease.length && !other.prerelease.length) - return -1; - else if (!this.prerelease.length && other.prerelease.length) - return 1; - else if (!this.prerelease.length && !other.prerelease.length) - return 0; - - var i = 0; - do { - var a = this.prerelease[i]; - var b = other.prerelease[i]; - debug('prerelease compare', i, a, b); - if (a === undefined && b === undefined) - return 0; - else if (b === undefined) - return 1; - else if (a === undefined) - return -1; - else if (a === b) - continue; - else - return compareIdentifiers(a, b); - } while (++i); -}; - -// preminor will bump the version up to the next minor release, and immediately -// down to pre-release. premajor and prepatch work the same way. -SemVer.prototype.inc = function(release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc('pre', identifier); - break; - case 'preminor': - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc('pre', identifier); - break; - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0; - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case 'prerelease': - if (this.prerelease.length === 0) - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) - this.major++; - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break; - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) - this.minor++; - this.patch = 0; - this.prerelease = []; - break; - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) - this.patch++; - this.prerelease = []; - break; - // This probably shouldn't be used publicly. - // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. - case 'pre': - if (this.prerelease.length === 0) - this.prerelease = [0]; - else { - var i = this.prerelease.length; - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++; - i = -2; - } - } - if (i === -1) // didn't increment anything - this.prerelease.push(0); - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) - this.prerelease = [identifier, 0]; - } else - this.prerelease = [identifier, 0]; - } - break; - - default: - throw new Error('invalid increment argument: ' + release); - } - this.format(); - this.raw = this.version; - return this; -}; - -exports.inc = inc; -function inc(version, release, loose, identifier) { - if (typeof(loose) === 'string') { - identifier = loose; - loose = undefined; - } - - try { - return new SemVer(version, loose).inc(release, identifier).version; - } catch (er) { - return null; - } -} - -exports.diff = diff; -function diff(version1, version2) { - if (eq(version1, version2)) { - return null; - } else { - var v1 = parse(version1); - var v2 = parse(version2); - if (v1.prerelease.length || v2.prerelease.length) { - for (var key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return 'pre'+key; - } - } - } - return 'prerelease'; - } - for (var key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return key; - } - } - } - } -} - -exports.compareIdentifiers = compareIdentifiers; - -var numeric = /^[0-9]+$/; -function compareIdentifiers(a, b) { - var anum = numeric.test(a); - var bnum = numeric.test(b); - - if (anum && bnum) { - a = +a; - b = +b; - } - - return (anum && !bnum) ? -1 : - (bnum && !anum) ? 1 : - a < b ? -1 : - a > b ? 1 : - 0; -} - -exports.rcompareIdentifiers = rcompareIdentifiers; -function rcompareIdentifiers(a, b) { - return compareIdentifiers(b, a); -} - -exports.major = major; -function major(a, loose) { - return new SemVer(a, loose).major; -} - -exports.minor = minor; -function minor(a, loose) { - return new SemVer(a, loose).minor; -} - -exports.patch = patch; -function patch(a, loose) { - return new SemVer(a, loose).patch; -} - -exports.compare = compare; -function compare(a, b, loose) { - return new SemVer(a, loose).compare(b); -} - -exports.compareLoose = compareLoose; -function compareLoose(a, b) { - return compare(a, b, true); -} - -exports.rcompare = rcompare; -function rcompare(a, b, loose) { - return compare(b, a, loose); -} - -exports.sort = sort; -function sort(list, loose) { - return list.sort(function(a, b) { - return exports.compare(a, b, loose); - }); -} - -exports.rsort = rsort; -function rsort(list, loose) { - return list.sort(function(a, b) { - return exports.rcompare(a, b, loose); - }); -} - -exports.gt = gt; -function gt(a, b, loose) { - return compare(a, b, loose) > 0; -} - -exports.lt = lt; -function lt(a, b, loose) { - return compare(a, b, loose) < 0; -} - -exports.eq = eq; -function eq(a, b, loose) { - return compare(a, b, loose) === 0; -} - -exports.neq = neq; -function neq(a, b, loose) { - return compare(a, b, loose) !== 0; -} - -exports.gte = gte; -function gte(a, b, loose) { - return compare(a, b, loose) >= 0; -} - -exports.lte = lte; -function lte(a, b, loose) { - return compare(a, b, loose) <= 0; -} - -exports.cmp = cmp; -function cmp(a, op, b, loose) { - var ret; - switch (op) { - case '===': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a === b; - break; - case '!==': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a !== b; - break; - case '': case '=': case '==': ret = eq(a, b, loose); break; - case '!=': ret = neq(a, b, loose); break; - case '>': ret = gt(a, b, loose); break; - case '>=': ret = gte(a, b, loose); break; - case '<': ret = lt(a, b, loose); break; - case '<=': ret = lte(a, b, loose); break; - default: throw new TypeError('Invalid operator: ' + op); - } - return ret; -} - -exports.Comparator = Comparator; -function Comparator(comp, loose) { - if (comp instanceof Comparator) { - if (comp.loose === loose) - return comp; - else - comp = comp.value; - } - - if (!(this instanceof Comparator)) - return new Comparator(comp, loose); - - debug('comparator', comp, loose); - this.loose = loose; - this.parse(comp); - - if (this.semver === ANY) - this.value = ''; - else - this.value = this.operator + this.semver.version; - - debug('comp', this); -} - -var ANY = {}; -Comparator.prototype.parse = function(comp) { - var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var m = comp.match(r); - - if (!m) - throw new TypeError('Invalid comparator: ' + comp); - - this.operator = m[1]; - if (this.operator === '=') - this.operator = ''; - - // if it literally is just '>' or '' then allow anything. - if (!m[2]) - this.semver = ANY; - else - this.semver = new SemVer(m[2], this.loose); -}; - -Comparator.prototype.toString = function() { - return this.value; -}; - -Comparator.prototype.test = function(version) { - debug('Comparator.test', version, this.loose); - - if (this.semver === ANY) - return true; - - if (typeof version === 'string') - version = new SemVer(version, this.loose); - - return cmp(version, this.operator, this.semver, this.loose); -}; - - -exports.Range = Range; -function Range(range, loose) { - if ((range instanceof Range) && range.loose === loose) - return range; - - if (!(this instanceof Range)) - return new Range(range, loose); - - this.loose = loose; - - // First, split based on boolean or || - this.raw = range; - this.set = range.split(/\s*\|\|\s*/).map(function(range) { - return this.parseRange(range.trim()); - }, this).filter(function(c) { - // throw out any that are not relevant for whatever reason - return c.length; - }); - - if (!this.set.length) { - throw new TypeError('Invalid SemVer Range: ' + range); - } - - this.format(); -} - -Range.prototype.format = function() { - this.range = this.set.map(function(comps) { - return comps.join(' ').trim(); - }).join('||').trim(); - return this.range; -}; - -Range.prototype.toString = function() { - return this.range; -}; - -Range.prototype.parseRange = function(range) { - var loose = this.loose; - range = range.trim(); - debug('range', range, loose); - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]; - range = range.replace(hr, hyphenReplace); - debug('hyphen replace', range); - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace); - debug('comparator trim', range, re[COMPARATORTRIM]); - - // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[TILDETRIM], tildeTrimReplace); - - // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[CARETTRIM], caretTrimReplace); - - // normalize spaces - range = range.split(/\s+/).join(' '); - - // At this point, the range is completely trimmed and - // ready to be split into comparators. - - var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var set = range.split(' ').map(function(comp) { - return parseComparator(comp, loose); - }).join(' ').split(/\s+/); - if (this.loose) { - // in loose mode, throw out any that are not valid comparators - set = set.filter(function(comp) { - return !!comp.match(compRe); - }); - } - set = set.map(function(comp) { - return new Comparator(comp, loose); - }); - - return set; -}; - -// Mostly just for testing and legacy API reasons -exports.toComparators = toComparators; -function toComparators(range, loose) { - return new Range(range, loose).set.map(function(comp) { - return comp.map(function(c) { - return c.value; - }).join(' ').trim().split(' '); - }); -} - -// comprised of xranges, tildes, stars, and gtlt's at this point. -// already replaced the hyphen ranges -// turn into a set of JUST comparators. -function parseComparator(comp, loose) { - debug('comp', comp); - comp = replaceCarets(comp, loose); - debug('caret', comp); - comp = replaceTildes(comp, loose); - debug('tildes', comp); - comp = replaceXRanges(comp, loose); - debug('xrange', comp); - comp = replaceStars(comp, loose); - debug('stars', comp); - return comp; -} - -function isX(id) { - return !id || id.toLowerCase() === 'x' || id === '*'; -} - -// ~, ~> --> * (any, kinda silly) -// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 -// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 -// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 -// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 -// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 -function replaceTildes(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceTilde(comp, loose); - }).join(' '); -} - -function replaceTilde(comp, loose) { - var r = loose ? re[TILDELOOSE] : re[TILDE]; - return comp.replace(r, function(_, M, m, p, pr) { - debug('tilde', comp, _, M, m, p, pr); - var ret; - - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) - // ~1.2 == >=1.2.0- <1.3.0- - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else if (pr) { - debug('replaceTilde pr', pr); - if (pr.charAt(0) !== '-') - pr = '-' + pr; - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - // ~1.2.3 == >=1.2.3 <1.3.0 - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - - debug('tilde return', ret); - return ret; - }); -} - -// ^ --> * (any, kinda silly) -// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 -// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 -// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 -// ^1.2.3 --> >=1.2.3 <2.0.0 -// ^1.2.0 --> >=1.2.0 <2.0.0 -function replaceCarets(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceCaret(comp, loose); - }).join(' '); -} - -function replaceCaret(comp, loose) { - debug('caret', comp, loose); - var r = loose ? re[CARETLOOSE] : re[CARET]; - return comp.replace(r, function(_, M, m, p, pr) { - debug('caret', comp, _, M, m, p, pr); - var ret; - - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) { - if (M === '0') - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else - ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'; - } else if (pr) { - debug('replaceCaret pr', pr); - if (pr.charAt(0) !== '-') - pr = '-' + pr; - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + (+M + 1) + '.0.0'; - } else { - debug('no pr'); - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + (+M + 1) + '.0.0'; - } - - debug('caret return', ret); - return ret; - }); -} - -function replaceXRanges(comp, loose) { - debug('replaceXRanges', comp, loose); - return comp.split(/\s+/).map(function(comp) { - return replaceXRange(comp, loose); - }).join(' '); -} - -function replaceXRange(comp, loose) { - comp = comp.trim(); - var r = loose ? re[XRANGELOOSE] : re[XRANGE]; - return comp.replace(r, function(ret, gtlt, M, m, p, pr) { - debug('xRange', comp, ret, gtlt, M, m, p, pr); - var xM = isX(M); - var xm = xM || isX(m); - var xp = xm || isX(p); - var anyX = xp; - - if (gtlt === '=' && anyX) - gtlt = ''; - - if (xM) { - if (gtlt === '>' || gtlt === '<') { - // nothing is allowed - ret = '<0.0.0'; - } else { - // nothing is forbidden - ret = '*'; - } - } else if (gtlt && anyX) { - // replace X with 0 - if (xm) - m = 0; - if (xp) - p = 0; - - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - // >1.2.3 => >= 1.2.4 - gtlt = '>='; - if (xm) { - M = +M + 1; - m = 0; - p = 0; - } else if (xp) { - m = +m + 1; - p = 0; - } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = '<' - if (xm) - M = +M + 1 - else - m = +m + 1 - } - - ret = gtlt + M + '.' + m + '.' + p; - } else if (xm) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - } else if (xp) { - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - } - - debug('xRange return', ret); - - return ret; - }); -} - -// Because * is AND-ed with everything else in the comparator, -// and '' means "any version", just remove the *s entirely. -function replaceStars(comp, loose) { - debug('replaceStars', comp, loose); - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[STAR], ''); -} - -// This function is passed to string.replace(re[HYPHENRANGE]) -// M, m, patch, prerelease, build -// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 -// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do -// 1.2 - 3.4 => >=1.2.0 <3.5.0 -function hyphenReplace($0, - from, fM, fm, fp, fpr, fb, - to, tM, tm, tp, tpr, tb) { - - if (isX(fM)) - from = ''; - else if (isX(fm)) - from = '>=' + fM + '.0.0'; - else if (isX(fp)) - from = '>=' + fM + '.' + fm + '.0'; - else - from = '>=' + from; - - if (isX(tM)) - to = ''; - else if (isX(tm)) - to = '<' + (+tM + 1) + '.0.0'; - else if (isX(tp)) - to = '<' + tM + '.' + (+tm + 1) + '.0'; - else if (tpr) - to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr; - else - to = '<=' + to; - - return (from + ' ' + to).trim(); -} - - -// if ANY of the sets match ALL of its comparators, then pass -Range.prototype.test = function(version) { - if (!version) - return false; - - if (typeof version === 'string') - version = new SemVer(version, this.loose); - - for (var i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version)) - return true; - } - return false; -}; - -function testSet(set, version) { - for (var i = 0; i < set.length; i++) { - if (!set[i].test(version)) - return false; - } - - if (version.prerelease.length) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (var i = 0; i < set.length; i++) { - debug(set[i].semver); - if (set[i].semver === ANY) - continue; - - if (set[i].semver.prerelease.length > 0) { - var allowed = set[i].semver; - if (allowed.major === version.major && - allowed.minor === version.minor && - allowed.patch === version.patch) - return true; - } - } - - // Version has a -pre, but it's not one of the ones we like. - return false; - } - - return true; -} - -exports.satisfies = satisfies; -function satisfies(version, range, loose) { - try { - range = new Range(range, loose); - } catch (er) { - return false; - } - return range.test(version); -} - -exports.maxSatisfying = maxSatisfying; -function maxSatisfying(versions, range, loose) { - return versions.filter(function(version) { - return satisfies(version, range, loose); - }).sort(function(a, b) { - return rcompare(a, b, loose); - })[0] || null; -} - -exports.validRange = validRange; -function validRange(range, loose) { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, loose).range || '*'; - } catch (er) { - return null; - } -} - -// Determine if version is less than all the versions possible in the range -exports.ltr = ltr; -function ltr(version, range, loose) { - return outside(version, range, '<', loose); -} - -// Determine if version is greater than all the versions possible in the range. -exports.gtr = gtr; -function gtr(version, range, loose) { - return outside(version, range, '>', loose); -} - -exports.outside = outside; -function outside(version, range, hilo, loose) { - version = new SemVer(version, loose); - range = new Range(range, loose); - - var gtfn, ltefn, ltfn, comp, ecomp; - switch (hilo) { - case '>': - gtfn = gt; - ltefn = lte; - ltfn = lt; - comp = '>'; - ecomp = '>='; - break; - case '<': - gtfn = lt; - ltefn = gte; - ltfn = gt; - comp = '<'; - ecomp = '<='; - break; - default: - throw new TypeError('Must provide a hilo val of "<" or ">"'); - } - - // If it satisifes the range it is not outside - if (satisfies(version, range, loose)) { - return false; - } - - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. - - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i]; - - var high = null; - var low = null; - - comparators.forEach(function(comparator) { - if (comparator.semver === ANY) { - comparator = new Comparator('>=0.0.0') - } - high = high || comparator; - low = low || comparator; - if (gtfn(comparator.semver, high.semver, loose)) { - high = comparator; - } else if (ltfn(comparator.semver, low.semver, loose)) { - low = comparator; - } - }); - - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) { - return false; - } - - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - if ((!low.operator || low.operator === comp) && - ltefn(version, low.semver)) { - return false; - } else if (low.operator === ecomp && ltfn(version, low.semver)) { - return false; - } - } - return true; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/big-numbers.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/big-numbers.js deleted file mode 100644 index c051864b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/big-numbers.js +++ /dev/null @@ -1,31 +0,0 @@ -var test = require('tap').test -var semver = require('../') - -test('long version is too long', function (t) { - var v = '1.2.' + new Array(256).join('1') - t.throws(function () { - new semver.SemVer(v) - }) - t.equal(semver.valid(v, false), null) - t.equal(semver.valid(v, true), null) - t.equal(semver.inc(v, 'patch'), null) - t.end() -}) - -test('big number is like too long version', function (t) { - var v = '1.2.' + new Array(100).join('1') - t.throws(function () { - new semver.SemVer(v) - }) - t.equal(semver.valid(v, false), null) - t.equal(semver.valid(v, true), null) - t.equal(semver.inc(v, 'patch'), null) - t.end() -}) - -test('parsing null does not throw', function (t) { - t.equal(semver.parse(null), null) - t.equal(semver.parse({}), null) - t.equal(semver.parse(new semver.SemVer('1.2.3')).version, '1.2.3') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/clean.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/clean.js deleted file mode 100644 index 9e268de9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/clean.js +++ /dev/null @@ -1,29 +0,0 @@ -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var clean = semver.clean; - -test('\nclean tests', function(t) { - // [range, version] - // Version should be detectable despite extra characters - [ - ['1.2.3', '1.2.3'], - [' 1.2.3 ', '1.2.3'], - [' 1.2.3-4 ', '1.2.3-4'], - [' 1.2.3-pre ', '1.2.3-pre'], - [' =v1.2.3 ', '1.2.3'], - ['v1.2.3', '1.2.3'], - [' v1.2.3 ', '1.2.3'], - ['\t1.2.3', '1.2.3'], - ['>1.2.3', null], - ['~1.2.3', null], - ['<=1.2.3', null], - ['1.2.x', null] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var msg = 'clean(' + range + ') = ' + version; - t.equal(clean(range), version, msg); - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/gtr.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/gtr.js deleted file mode 100644 index bbb87896..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/gtr.js +++ /dev/null @@ -1,173 +0,0 @@ -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var gtr = semver.gtr; - -test('\ngtr tests', function(t) { - // [range, version, loose] - // Version should be greater than range - [ - ['~1.2.2', '1.3.0'], - ['~0.6.1-1', '0.7.1-1'], - ['1.0.0 - 2.0.0', '2.0.1'], - ['1.0.0', '1.0.1-beta1'], - ['1.0.0', '2.0.0'], - ['<=2.0.0', '2.1.1'], - ['<=2.0.0', '3.2.9'], - ['<2.0.0', '2.0.0'], - ['0.1.20 || 1.2.4', '1.2.5'], - ['2.x.x', '3.0.0'], - ['1.2.x', '1.3.0'], - ['1.2.x || 2.x', '3.0.0'], - ['2.*.*', '5.0.1'], - ['1.2.*', '1.3.3'], - ['1.2.* || 2.*', '4.0.0'], - ['2', '3.0.0'], - ['2.3', '2.4.2'], - ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.5.5'], - ['~>3.2.1', '3.3.0'], // >=3.2.1 <3.3.0 - ['~1', '2.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '2.2.4'], - ['~> 1', '3.2.3'], - ['~1.0', '1.1.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '1.1.0'], - ['<1.2', '1.2.0'], - ['< 1.2', '1.2.1'], - ['1', '2.0.0beta', true], - ['~v0.5.4-pre', '0.6.0'], - ['~v0.5.4-pre', '0.6.1-pre'], - ['=0.7.x', '0.8.0'], - ['=0.7.x', '0.8.0-asdf'], - ['<0.7.x', '0.7.0'], - ['~1.2.2', '1.3.0'], - ['1.0.0 - 2.0.0', '2.2.3'], - ['1.0.0', '1.0.1'], - ['<=2.0.0', '3.0.0'], - ['<=2.0.0', '2.9999.9999'], - ['<=2.0.0', '2.2.9'], - ['<2.0.0', '2.9999.9999'], - ['<2.0.0', '2.2.9'], - ['2.x.x', '3.1.3'], - ['1.2.x', '1.3.3'], - ['1.2.x || 2.x', '3.1.3'], - ['2.*.*', '3.1.3'], - ['1.2.*', '1.3.3'], - ['1.2.* || 2.*', '3.1.3'], - ['2', '3.1.2'], - ['2.3', '2.4.1'], - ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0 - ['~>3.2.1', '3.3.2'], // >=3.2.1 <3.3.0 - ['~1', '2.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '2.2.3'], - ['~1.0', '1.1.0'], // >=1.0.0 <1.1.0 - ['<1', '1.0.0'], - ['1', '2.0.0beta', true], - ['<1', '1.0.0beta', true], - ['< 1', '1.0.0beta', true], - ['=0.7.x', '0.8.2'], - ['<0.7.x', '0.7.2'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'gtr(' + version + ', ' + range + ', ' + loose + ')'; - t.ok(gtr(version, range, loose), msg); - }); - t.end(); -}); - -test('\nnegative gtr tests', function(t) { - // [range, version, loose] - // Version should NOT be greater than range - [ - ['~0.6.1-1', '0.6.1-1'], - ['1.0.0 - 2.0.0', '1.2.3'], - ['1.0.0 - 2.0.0', '0.9.9'], - ['1.0.0', '1.0.0'], - ['>=*', '0.2.4'], - ['', '1.0.0', true], - ['*', '1.2.3'], - ['*', 'v1.2.3-foo'], - ['>=1.0.0', '1.0.0'], - ['>=1.0.0', '1.0.1'], - ['>=1.0.0', '1.1.0'], - ['>1.0.0', '1.0.1'], - ['>1.0.0', '1.1.0'], - ['<=2.0.0', '2.0.0'], - ['<=2.0.0', '1.9999.9999'], - ['<=2.0.0', '0.2.9'], - ['<2.0.0', '1.9999.9999'], - ['<2.0.0', '0.2.9'], - ['>= 1.0.0', '1.0.0'], - ['>= 1.0.0', '1.0.1'], - ['>= 1.0.0', '1.1.0'], - ['> 1.0.0', '1.0.1'], - ['> 1.0.0', '1.1.0'], - ['<= 2.0.0', '2.0.0'], - ['<= 2.0.0', '1.9999.9999'], - ['<= 2.0.0', '0.2.9'], - ['< 2.0.0', '1.9999.9999'], - ['<\t2.0.0', '0.2.9'], - ['>=0.1.97', 'v0.1.97'], - ['>=0.1.97', '0.1.97'], - ['0.1.20 || 1.2.4', '1.2.4'], - ['0.1.20 || >1.2.4', '1.2.4'], - ['0.1.20 || 1.2.4', '1.2.3'], - ['0.1.20 || 1.2.4', '0.1.20'], - ['>=0.2.3 || <0.0.1', '0.0.0'], - ['>=0.2.3 || <0.0.1', '0.2.3'], - ['>=0.2.3 || <0.0.1', '0.2.4'], - ['||', '1.3.4'], - ['2.x.x', '2.1.3'], - ['1.2.x', '1.2.3'], - ['1.2.x || 2.x', '2.1.3'], - ['1.2.x || 2.x', '1.2.3'], - ['x', '1.2.3'], - ['2.*.*', '2.1.3'], - ['1.2.*', '1.2.3'], - ['1.2.* || 2.*', '2.1.3'], - ['1.2.* || 2.*', '1.2.3'], - ['1.2.* || 2.*', '1.2.3'], - ['*', '1.2.3'], - ['2', '2.1.2'], - ['2.3', '2.3.1'], - ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.4.5'], - ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0 - ['~1', '1.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '1.2.3'], - ['~> 1', '1.2.3'], - ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '1.0.2'], - ['>=1', '1.0.0'], - ['>= 1', '1.0.0'], - ['<1.2', '1.1.1'], - ['< 1.2', '1.1.1'], - ['1', '1.0.0beta', true], - ['~v0.5.4-pre', '0.5.5'], - ['~v0.5.4-pre', '0.5.4'], - ['=0.7.x', '0.7.2'], - ['>=0.7.x', '0.7.2'], - ['=0.7.x', '0.7.0-asdf'], - ['>=0.7.x', '0.7.0-asdf'], - ['<=0.7.x', '0.6.2'], - ['>0.2.3 >0.2.4 <=0.2.5', '0.2.5'], - ['>=0.2.3 <=0.2.4', '0.2.4'], - ['1.0.0 - 2.0.0', '2.0.0'], - ['^1', '0.0.0-0'], - ['^3.0.0', '2.0.0'], - ['^1.0.0 || ~2.0.1', '2.0.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', true], - ['^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', true], - ['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = '!gtr(' + version + ', ' + range + ', ' + loose + ')'; - t.notOk(gtr(version, range, loose), msg); - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/index.js deleted file mode 100644 index 47c3f5f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/index.js +++ /dev/null @@ -1,698 +0,0 @@ -'use strict'; - -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var eq = semver.eq; -var gt = semver.gt; -var lt = semver.lt; -var neq = semver.neq; -var cmp = semver.cmp; -var gte = semver.gte; -var lte = semver.lte; -var satisfies = semver.satisfies; -var validRange = semver.validRange; -var inc = semver.inc; -var diff = semver.diff; -var replaceStars = semver.replaceStars; -var toComparators = semver.toComparators; -var SemVer = semver.SemVer; -var Range = semver.Range; - -test('\ncomparison tests', function(t) { - // [version1, version2] - // version1 should be greater than version2 - [['0.0.0', '0.0.0-foo'], - ['0.0.1', '0.0.0'], - ['1.0.0', '0.9.9'], - ['0.10.0', '0.9.0'], - ['0.99.0', '0.10.0'], - ['2.0.0', '1.2.3'], - ['v0.0.0', '0.0.0-foo', true], - ['v0.0.1', '0.0.0', true], - ['v1.0.0', '0.9.9', true], - ['v0.10.0', '0.9.0', true], - ['v0.99.0', '0.10.0', true], - ['v2.0.0', '1.2.3', true], - ['0.0.0', 'v0.0.0-foo', true], - ['0.0.1', 'v0.0.0', true], - ['1.0.0', 'v0.9.9', true], - ['0.10.0', 'v0.9.0', true], - ['0.99.0', 'v0.10.0', true], - ['2.0.0', 'v1.2.3', true], - ['1.2.3', '1.2.3-asdf'], - ['1.2.3', '1.2.3-4'], - ['1.2.3', '1.2.3-4-foo'], - ['1.2.3-5-foo', '1.2.3-5'], - ['1.2.3-5', '1.2.3-4'], - ['1.2.3-5-foo', '1.2.3-5-Foo'], - ['3.0.0', '2.7.2+asdf'], - ['1.2.3-a.10', '1.2.3-a.5'], - ['1.2.3-a.b', '1.2.3-a.5'], - ['1.2.3-a.b', '1.2.3-a'], - ['1.2.3-a.b.c.10.d.5', '1.2.3-a.b.c.5.d.100'], - ['1.2.3-r2', '1.2.3-r100'], - ['1.2.3-r100', '1.2.3-R2'] - ].forEach(function(v) { - var v0 = v[0]; - var v1 = v[1]; - var loose = v[2]; - t.ok(gt(v0, v1, loose), "gt('" + v0 + "', '" + v1 + "')"); - t.ok(lt(v1, v0, loose), "lt('" + v1 + "', '" + v0 + "')"); - t.ok(!gt(v1, v0, loose), "!gt('" + v1 + "', '" + v0 + "')"); - t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')"); - t.ok(eq(v0, v0, loose), "eq('" + v0 + "', '" + v0 + "')"); - t.ok(eq(v1, v1, loose), "eq('" + v1 + "', '" + v1 + "')"); - t.ok(neq(v0, v1, loose), "neq('" + v0 + "', '" + v1 + "')"); - t.ok(cmp(v1, '==', v1, loose), "cmp('" + v1 + "' == '" + v1 + "')"); - t.ok(cmp(v0, '>=', v1, loose), "cmp('" + v0 + "' >= '" + v1 + "')"); - t.ok(cmp(v1, '<=', v0, loose), "cmp('" + v1 + "' <= '" + v0 + "')"); - t.ok(cmp(v0, '!=', v1, loose), "cmp('" + v0 + "' != '" + v1 + "')"); - }); - t.end(); -}); - -test('\nequality tests', function(t) { - // [version1, version2] - // version1 should be equivalent to version2 - [['1.2.3', 'v1.2.3', true], - ['1.2.3', '=1.2.3', true], - ['1.2.3', 'v 1.2.3', true], - ['1.2.3', '= 1.2.3', true], - ['1.2.3', ' v1.2.3', true], - ['1.2.3', ' =1.2.3', true], - ['1.2.3', ' v 1.2.3', true], - ['1.2.3', ' = 1.2.3', true], - ['1.2.3-0', 'v1.2.3-0', true], - ['1.2.3-0', '=1.2.3-0', true], - ['1.2.3-0', 'v 1.2.3-0', true], - ['1.2.3-0', '= 1.2.3-0', true], - ['1.2.3-0', ' v1.2.3-0', true], - ['1.2.3-0', ' =1.2.3-0', true], - ['1.2.3-0', ' v 1.2.3-0', true], - ['1.2.3-0', ' = 1.2.3-0', true], - ['1.2.3-1', 'v1.2.3-1', true], - ['1.2.3-1', '=1.2.3-1', true], - ['1.2.3-1', 'v 1.2.3-1', true], - ['1.2.3-1', '= 1.2.3-1', true], - ['1.2.3-1', ' v1.2.3-1', true], - ['1.2.3-1', ' =1.2.3-1', true], - ['1.2.3-1', ' v 1.2.3-1', true], - ['1.2.3-1', ' = 1.2.3-1', true], - ['1.2.3-beta', 'v1.2.3-beta', true], - ['1.2.3-beta', '=1.2.3-beta', true], - ['1.2.3-beta', 'v 1.2.3-beta', true], - ['1.2.3-beta', '= 1.2.3-beta', true], - ['1.2.3-beta', ' v1.2.3-beta', true], - ['1.2.3-beta', ' =1.2.3-beta', true], - ['1.2.3-beta', ' v 1.2.3-beta', true], - ['1.2.3-beta', ' = 1.2.3-beta', true], - ['1.2.3-beta+build', ' = 1.2.3-beta+otherbuild', true], - ['1.2.3+build', ' = 1.2.3+otherbuild', true], - ['1.2.3-beta+build', '1.2.3-beta+otherbuild'], - ['1.2.3+build', '1.2.3+otherbuild'], - [' v1.2.3+build', '1.2.3+otherbuild'] - ].forEach(function(v) { - var v0 = v[0]; - var v1 = v[1]; - var loose = v[2]; - t.ok(eq(v0, v1, loose), "eq('" + v0 + "', '" + v1 + "')"); - t.ok(!neq(v0, v1, loose), "!neq('" + v0 + "', '" + v1 + "')"); - t.ok(cmp(v0, '==', v1, loose), 'cmp(' + v0 + '==' + v1 + ')'); - t.ok(!cmp(v0, '!=', v1, loose), '!cmp(' + v0 + '!=' + v1 + ')'); - t.ok(!cmp(v0, '===', v1, loose), '!cmp(' + v0 + '===' + v1 + ')'); - t.ok(cmp(v0, '!==', v1, loose), 'cmp(' + v0 + '!==' + v1 + ')'); - t.ok(!gt(v0, v1, loose), "!gt('" + v0 + "', '" + v1 + "')"); - t.ok(gte(v0, v1, loose), "gte('" + v0 + "', '" + v1 + "')"); - t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')"); - t.ok(lte(v0, v1, loose), "lte('" + v0 + "', '" + v1 + "')"); - }); - t.end(); -}); - - -test('\nrange tests', function(t) { - // [range, version] - // version should be included by range - [['1.0.0 - 2.0.0', '1.2.3'], - ['^1.2.3+build', '1.2.3'], - ['^1.2.3+build', '1.3.0'], - ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3'], - ['1.2.3pre+asdf - 2.4.3-pre+asdf', '1.2.3', true], - ['1.2.3-pre+asdf - 2.4.3pre+asdf', '1.2.3', true], - ['1.2.3pre+asdf - 2.4.3pre+asdf', '1.2.3', true], - ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3-pre.2'], - ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '2.4.3-alpha'], - ['1.2.3+asdf - 2.4.3+asdf', '1.2.3'], - ['1.0.0', '1.0.0'], - ['>=*', '0.2.4'], - ['', '1.0.0'], - ['*', '1.2.3'], - ['*', 'v1.2.3', true], - ['>=1.0.0', '1.0.0'], - ['>=1.0.0', '1.0.1'], - ['>=1.0.0', '1.1.0'], - ['>1.0.0', '1.0.1'], - ['>1.0.0', '1.1.0'], - ['<=2.0.0', '2.0.0'], - ['<=2.0.0', '1.9999.9999'], - ['<=2.0.0', '0.2.9'], - ['<2.0.0', '1.9999.9999'], - ['<2.0.0', '0.2.9'], - ['>= 1.0.0', '1.0.0'], - ['>= 1.0.0', '1.0.1'], - ['>= 1.0.0', '1.1.0'], - ['> 1.0.0', '1.0.1'], - ['> 1.0.0', '1.1.0'], - ['<= 2.0.0', '2.0.0'], - ['<= 2.0.0', '1.9999.9999'], - ['<= 2.0.0', '0.2.9'], - ['< 2.0.0', '1.9999.9999'], - ['<\t2.0.0', '0.2.9'], - ['>=0.1.97', 'v0.1.97', true], - ['>=0.1.97', '0.1.97'], - ['0.1.20 || 1.2.4', '1.2.4'], - ['>=0.2.3 || <0.0.1', '0.0.0'], - ['>=0.2.3 || <0.0.1', '0.2.3'], - ['>=0.2.3 || <0.0.1', '0.2.4'], - ['||', '1.3.4'], - ['2.x.x', '2.1.3'], - ['1.2.x', '1.2.3'], - ['1.2.x || 2.x', '2.1.3'], - ['1.2.x || 2.x', '1.2.3'], - ['x', '1.2.3'], - ['2.*.*', '2.1.3'], - ['1.2.*', '1.2.3'], - ['1.2.* || 2.*', '2.1.3'], - ['1.2.* || 2.*', '1.2.3'], - ['*', '1.2.3'], - ['2', '2.1.2'], - ['2.3', '2.3.1'], - ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.4.5'], - ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0, - ['~1', '1.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '1.2.3'], - ['~> 1', '1.2.3'], - ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0, - ['~ 1.0', '1.0.2'], - ['~ 1.0.3', '1.0.12'], - ['>=1', '1.0.0'], - ['>= 1', '1.0.0'], - ['<1.2', '1.1.1'], - ['< 1.2', '1.1.1'], - ['~v0.5.4-pre', '0.5.5'], - ['~v0.5.4-pre', '0.5.4'], - ['=0.7.x', '0.7.2'], - ['<=0.7.x', '0.7.2'], - ['>=0.7.x', '0.7.2'], - ['<=0.7.x', '0.6.2'], - ['~1.2.1 >=1.2.3', '1.2.3'], - ['~1.2.1 =1.2.3', '1.2.3'], - ['~1.2.1 1.2.3', '1.2.3'], - ['~1.2.1 >=1.2.3 1.2.3', '1.2.3'], - ['~1.2.1 1.2.3 >=1.2.3', '1.2.3'], - ['~1.2.1 1.2.3', '1.2.3'], - ['>=1.2.1 1.2.3', '1.2.3'], - ['1.2.3 >=1.2.1', '1.2.3'], - ['>=1.2.3 >=1.2.1', '1.2.3'], - ['>=1.2.1 >=1.2.3', '1.2.3'], - ['>=1.2', '1.2.8'], - ['^1.2.3', '1.8.1'], - ['^0.1.2', '0.1.2'], - ['^0.1', '0.1.2'], - ['^1.2', '1.4.2'], - ['^1.2 ^1', '1.4.2'], - ['^1.2.3-alpha', '1.2.3-pre'], - ['^1.2.0-alpha', '1.2.0-pre'], - ['^0.0.1-alpha', '0.0.1-beta'] - ].forEach(function(v) { - var range = v[0]; - var ver = v[1]; - var loose = v[2]; - t.ok(satisfies(ver, range, loose), range + ' satisfied by ' + ver); - }); - t.end(); -}); - -test('\nnegative range tests', function(t) { - // [range, version] - // version should not be included by range - [['1.0.0 - 2.0.0', '2.2.3'], - ['1.2.3+asdf - 2.4.3+asdf', '1.2.3-pre.2'], - ['1.2.3+asdf - 2.4.3+asdf', '2.4.3-alpha'], - ['^1.2.3+build', '2.0.0'], - ['^1.2.3+build', '1.2.0'], - ['^1.2.3', '1.2.3-pre'], - ['^1.2', '1.2.0-pre'], - ['>1.2', '1.3.0-beta'], - ['<=1.2.3', '1.2.3-beta'], - ['^1.2.3', '1.2.3-beta'], - ['=0.7.x', '0.7.0-asdf'], - ['>=0.7.x', '0.7.0-asdf'], - ['1', '1.0.0beta', true], - ['<1', '1.0.0beta', true], - ['< 1', '1.0.0beta', true], - ['1.0.0', '1.0.1'], - ['>=1.0.0', '0.0.0'], - ['>=1.0.0', '0.0.1'], - ['>=1.0.0', '0.1.0'], - ['>1.0.0', '0.0.1'], - ['>1.0.0', '0.1.0'], - ['<=2.0.0', '3.0.0'], - ['<=2.0.0', '2.9999.9999'], - ['<=2.0.0', '2.2.9'], - ['<2.0.0', '2.9999.9999'], - ['<2.0.0', '2.2.9'], - ['>=0.1.97', 'v0.1.93', true], - ['>=0.1.97', '0.1.93'], - ['0.1.20 || 1.2.4', '1.2.3'], - ['>=0.2.3 || <0.0.1', '0.0.3'], - ['>=0.2.3 || <0.0.1', '0.2.2'], - ['2.x.x', '1.1.3'], - ['2.x.x', '3.1.3'], - ['1.2.x', '1.3.3'], - ['1.2.x || 2.x', '3.1.3'], - ['1.2.x || 2.x', '1.1.3'], - ['2.*.*', '1.1.3'], - ['2.*.*', '3.1.3'], - ['1.2.*', '1.3.3'], - ['1.2.* || 2.*', '3.1.3'], - ['1.2.* || 2.*', '1.1.3'], - ['2', '1.1.2'], - ['2.3', '2.4.1'], - ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.3.9'], - ['~>3.2.1', '3.3.2'], // >=3.2.1 <3.3.0 - ['~>3.2.1', '3.2.0'], // >=3.2.1 <3.3.0 - ['~1', '0.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '2.2.3'], - ['~1.0', '1.1.0'], // >=1.0.0 <1.1.0 - ['<1', '1.0.0'], - ['>=1.2', '1.1.1'], - ['1', '2.0.0beta', true], - ['~v0.5.4-beta', '0.5.4-alpha'], - ['=0.7.x', '0.8.2'], - ['>=0.7.x', '0.6.2'], - ['<0.7.x', '0.7.2'], - ['<1.2.3', '1.2.3-beta'], - ['=1.2.3', '1.2.3-beta'], - ['>1.2', '1.2.8'], - ['^1.2.3', '2.0.0-alpha'], - ['^1.2.3', '1.2.2'], - ['^1.2', '1.1.9'], - ['*', 'v1.2.3-foo', true], - // invalid ranges never satisfied! - ['blerg', '1.2.3'], - ['git+https://user:password0123@github.com/foo', '123.0.0', true], - ['^1.2.3', '2.0.0-pre'] - ].forEach(function(v) { - var range = v[0]; - var ver = v[1]; - var loose = v[2]; - var found = satisfies(ver, range, loose); - t.ok(!found, ver + ' not satisfied by ' + range); - }); - t.end(); -}); - -test('\nincrement versions test', function(t) { -// [version, inc, result, identifier] -// inc(version, inc) -> result - [['1.2.3', 'major', '2.0.0'], - ['1.2.3', 'minor', '1.3.0'], - ['1.2.3', 'patch', '1.2.4'], - ['1.2.3tag', 'major', '2.0.0', true], - ['1.2.3-tag', 'major', '2.0.0'], - ['1.2.3', 'fake', null], - ['1.2.0-0', 'patch', '1.2.0'], - ['fake', 'major', null], - ['1.2.3-4', 'major', '2.0.0'], - ['1.2.3-4', 'minor', '1.3.0'], - ['1.2.3-4', 'patch', '1.2.3'], - ['1.2.3-alpha.0.beta', 'major', '2.0.0'], - ['1.2.3-alpha.0.beta', 'minor', '1.3.0'], - ['1.2.3-alpha.0.beta', 'patch', '1.2.3'], - ['1.2.4', 'prerelease', '1.2.5-0'], - ['1.2.3-0', 'prerelease', '1.2.3-1'], - ['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1'], - ['1.2.3-alpha.1', 'prerelease', '1.2.3-alpha.2'], - ['1.2.3-alpha.2', 'prerelease', '1.2.3-alpha.3'], - ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-alpha.1.beta'], - ['1.2.3-alpha.1.beta', 'prerelease', '1.2.3-alpha.2.beta'], - ['1.2.3-alpha.2.beta', 'prerelease', '1.2.3-alpha.3.beta'], - ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-alpha.10.1.beta'], - ['1.2.3-alpha.10.1.beta', 'prerelease', '1.2.3-alpha.10.2.beta'], - ['1.2.3-alpha.10.2.beta', 'prerelease', '1.2.3-alpha.10.3.beta'], - ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-alpha.10.beta.1'], - ['1.2.3-alpha.10.beta.1', 'prerelease', '1.2.3-alpha.10.beta.2'], - ['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3'], - ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta'], - ['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta'], - ['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta'], - ['1.2.0', 'prepatch', '1.2.1-0'], - ['1.2.0-1', 'prepatch', '1.2.1-0'], - ['1.2.0', 'preminor', '1.3.0-0'], - ['1.2.3-1', 'preminor', '1.3.0-0'], - ['1.2.0', 'premajor', '2.0.0-0'], - ['1.2.3-1', 'premajor', '2.0.0-0'], - ['1.2.0-1', 'minor', '1.2.0'], - ['1.0.0-1', 'major', '1.0.0'], - - ['1.2.3', 'major', '2.0.0', false, 'dev'], - ['1.2.3', 'minor', '1.3.0', false, 'dev'], - ['1.2.3', 'patch', '1.2.4', false, 'dev'], - ['1.2.3tag', 'major', '2.0.0', true, 'dev'], - ['1.2.3-tag', 'major', '2.0.0', false, 'dev'], - ['1.2.3', 'fake', null, false, 'dev'], - ['1.2.0-0', 'patch', '1.2.0', false, 'dev'], - ['fake', 'major', null, false, 'dev'], - ['1.2.3-4', 'major', '2.0.0', false, 'dev'], - ['1.2.3-4', 'minor', '1.3.0', false, 'dev'], - ['1.2.3-4', 'patch', '1.2.3', false, 'dev'], - ['1.2.3-alpha.0.beta', 'major', '2.0.0', false, 'dev'], - ['1.2.3-alpha.0.beta', 'minor', '1.3.0', false, 'dev'], - ['1.2.3-alpha.0.beta', 'patch', '1.2.3', false, 'dev'], - ['1.2.4', 'prerelease', '1.2.5-dev.0', false, 'dev'], - ['1.2.3-0', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.0', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1', false, 'alpha'], - ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-alpha.1.beta', false, 'alpha'], - ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-alpha.10.1.beta', false, 'alpha'], - ['1.2.3-alpha.10.1.beta', 'prerelease', '1.2.3-alpha.10.2.beta', false, 'alpha'], - ['1.2.3-alpha.10.2.beta', 'prerelease', '1.2.3-alpha.10.3.beta', false, 'alpha'], - ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-alpha.10.beta.1', false, 'alpha'], - ['1.2.3-alpha.10.beta.1', 'prerelease', '1.2.3-alpha.10.beta.2', false, 'alpha'], - ['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3', false, 'alpha'], - ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta', false, 'alpha'], - ['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta', false, 'alpha'], - ['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta', false, 'alpha'], - ['1.2.0', 'prepatch', '1.2.1-dev.0', false, 'dev'], - ['1.2.0-1', 'prepatch', '1.2.1-dev.0', false, 'dev'], - ['1.2.0', 'preminor', '1.3.0-dev.0', false, 'dev'], - ['1.2.3-1', 'preminor', '1.3.0-dev.0', false, 'dev'], - ['1.2.0', 'premajor', '2.0.0-dev.0', false, 'dev'], - ['1.2.3-1', 'premajor', '2.0.0-dev.0', false, 'dev'], - ['1.2.0-1', 'minor', '1.2.0', false, 'dev'], - ['1.0.0-1', 'major', '1.0.0', false, 'dev'], - ['1.2.3-dev.bar', 'prerelease', '1.2.3-dev.0', false, 'dev'] - - ].forEach(function(v) { - var pre = v[0]; - var what = v[1]; - var wanted = v[2]; - var loose = v[3]; - var id = v[4]; - var found = inc(pre, what, loose, id); - var cmd = 'inc(' + pre + ', ' + what + ', ' + id + ')'; - t.equal(found, wanted, cmd + ' === ' + wanted); - - var parsed = semver.parse(pre, loose); - if (wanted) { - parsed.inc(what, id); - t.equal(parsed.version, wanted, cmd + ' object version updated'); - t.equal(parsed.raw, wanted, cmd + ' object raw field updated'); - } else if (parsed) { - t.throws(function () { - parsed.inc(what, id) - }) - } else { - t.equal(parsed, null) - } - }); - - t.end(); -}); - -test('\ndiff versions test', function(t) { -// [version1, version2, result] -// diff(version1, version2) -> result - [['1.2.3', '0.2.3', 'major'], - ['1.4.5', '0.2.3', 'major'], - ['1.2.3', '2.0.0-pre', 'premajor'], - ['1.2.3', '1.3.3', 'minor'], - ['1.0.1', '1.1.0-pre', 'preminor'], - ['1.2.3', '1.2.4', 'patch'], - ['1.2.3', '1.2.4-pre', 'prepatch'], - ['0.0.1', '0.0.1-pre', 'prerelease'], - ['0.0.1', '0.0.1-pre-2', 'prerelease'], - ['1.1.0', '1.1.0-pre', 'prerelease'], - ['1.1.0-pre-1', '1.1.0-pre-2', 'prerelease'], - ['1.0.0', '1.0.0', null] - - ].forEach(function(v) { - var version1 = v[0]; - var version2 = v[1]; - var wanted = v[2]; - var found = diff(version1, version2); - var cmd = 'diff(' + version1 + ', ' + version2 + ')'; - t.equal(found, wanted, cmd + ' === ' + wanted); - }); - - t.end(); -}); - -test('\nvalid range test', function(t) { - // [range, result] - // validRange(range) -> result - // translate ranges into their canonical form - [['1.0.0 - 2.0.0', '>=1.0.0 <=2.0.0'], - ['1.0.0', '1.0.0'], - ['>=*', '*'], - ['', '*'], - ['*', '*'], - ['*', '*'], - ['>=1.0.0', '>=1.0.0'], - ['>1.0.0', '>1.0.0'], - ['<=2.0.0', '<=2.0.0'], - ['1', '>=1.0.0 <2.0.0'], - ['<=2.0.0', '<=2.0.0'], - ['<=2.0.0', '<=2.0.0'], - ['<2.0.0', '<2.0.0'], - ['<2.0.0', '<2.0.0'], - ['>= 1.0.0', '>=1.0.0'], - ['>= 1.0.0', '>=1.0.0'], - ['>= 1.0.0', '>=1.0.0'], - ['> 1.0.0', '>1.0.0'], - ['> 1.0.0', '>1.0.0'], - ['<= 2.0.0', '<=2.0.0'], - ['<= 2.0.0', '<=2.0.0'], - ['<= 2.0.0', '<=2.0.0'], - ['< 2.0.0', '<2.0.0'], - ['< 2.0.0', '<2.0.0'], - ['>=0.1.97', '>=0.1.97'], - ['>=0.1.97', '>=0.1.97'], - ['0.1.20 || 1.2.4', '0.1.20||1.2.4'], - ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'], - ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'], - ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'], - ['||', '||'], - ['2.x.x', '>=2.0.0 <3.0.0'], - ['1.2.x', '>=1.2.0 <1.3.0'], - ['1.2.x || 2.x', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'], - ['1.2.x || 2.x', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'], - ['x', '*'], - ['2.*.*', '>=2.0.0 <3.0.0'], - ['1.2.*', '>=1.2.0 <1.3.0'], - ['1.2.* || 2.*', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'], - ['*', '*'], - ['2', '>=2.0.0 <3.0.0'], - ['2.3', '>=2.3.0 <2.4.0'], - ['~2.4', '>=2.4.0 <2.5.0'], - ['~2.4', '>=2.4.0 <2.5.0'], - ['~>3.2.1', '>=3.2.1 <3.3.0'], - ['~1', '>=1.0.0 <2.0.0'], - ['~>1', '>=1.0.0 <2.0.0'], - ['~> 1', '>=1.0.0 <2.0.0'], - ['~1.0', '>=1.0.0 <1.1.0'], - ['~ 1.0', '>=1.0.0 <1.1.0'], - ['^0', '>=0.0.0 <1.0.0'], - ['^ 1', '>=1.0.0 <2.0.0'], - ['^0.1', '>=0.1.0 <0.2.0'], - ['^1.0', '>=1.0.0 <2.0.0'], - ['^1.2', '>=1.2.0 <2.0.0'], - ['^0.0.1', '>=0.0.1 <0.0.2'], - ['^0.0.1-beta', '>=0.0.1-beta <0.0.2'], - ['^0.1.2', '>=0.1.2 <0.2.0'], - ['^1.2.3', '>=1.2.3 <2.0.0'], - ['^1.2.3-beta.4', '>=1.2.3-beta.4 <2.0.0'], - ['<1', '<1.0.0'], - ['< 1', '<1.0.0'], - ['>=1', '>=1.0.0'], - ['>= 1', '>=1.0.0'], - ['<1.2', '<1.2.0'], - ['< 1.2', '<1.2.0'], - ['1', '>=1.0.0 <2.0.0'], - ['>01.02.03', '>1.2.3', true], - ['>01.02.03', null], - ['~1.2.3beta', '>=1.2.3-beta <1.3.0', true], - ['~1.2.3beta', null], - ['^ 1.2 ^ 1', '>=1.2.0 <2.0.0 >=1.0.0 <2.0.0'] - ].forEach(function(v) { - var pre = v[0]; - var wanted = v[1]; - var loose = v[2]; - var found = validRange(pre, loose); - - t.equal(found, wanted, 'validRange(' + pre + ') === ' + wanted); - }); - - t.end(); -}); - -test('\ncomparators test', function(t) { - // [range, comparators] - // turn range into a set of individual comparators - [['1.0.0 - 2.0.0', [['>=1.0.0', '<=2.0.0']]], - ['1.0.0', [['1.0.0']]], - ['>=*', [['']]], - ['', [['']]], - ['*', [['']]], - ['*', [['']]], - ['>=1.0.0', [['>=1.0.0']]], - ['>=1.0.0', [['>=1.0.0']]], - ['>=1.0.0', [['>=1.0.0']]], - ['>1.0.0', [['>1.0.0']]], - ['>1.0.0', [['>1.0.0']]], - ['<=2.0.0', [['<=2.0.0']]], - ['1', [['>=1.0.0', '<2.0.0']]], - ['<=2.0.0', [['<=2.0.0']]], - ['<=2.0.0', [['<=2.0.0']]], - ['<2.0.0', [['<2.0.0']]], - ['<2.0.0', [['<2.0.0']]], - ['>= 1.0.0', [['>=1.0.0']]], - ['>= 1.0.0', [['>=1.0.0']]], - ['>= 1.0.0', [['>=1.0.0']]], - ['> 1.0.0', [['>1.0.0']]], - ['> 1.0.0', [['>1.0.0']]], - ['<= 2.0.0', [['<=2.0.0']]], - ['<= 2.0.0', [['<=2.0.0']]], - ['<= 2.0.0', [['<=2.0.0']]], - ['< 2.0.0', [['<2.0.0']]], - ['<\t2.0.0', [['<2.0.0']]], - ['>=0.1.97', [['>=0.1.97']]], - ['>=0.1.97', [['>=0.1.97']]], - ['0.1.20 || 1.2.4', [['0.1.20'], ['1.2.4']]], - ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]], - ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]], - ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]], - ['||', [[''], ['']]], - ['2.x.x', [['>=2.0.0', '<3.0.0']]], - ['1.2.x', [['>=1.2.0', '<1.3.0']]], - ['1.2.x || 2.x', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['1.2.x || 2.x', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['x', [['']]], - ['2.*.*', [['>=2.0.0', '<3.0.0']]], - ['1.2.*', [['>=1.2.0', '<1.3.0']]], - ['1.2.* || 2.*', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['1.2.* || 2.*', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['*', [['']]], - ['2', [['>=2.0.0', '<3.0.0']]], - ['2.3', [['>=2.3.0', '<2.4.0']]], - ['~2.4', [['>=2.4.0', '<2.5.0']]], - ['~2.4', [['>=2.4.0', '<2.5.0']]], - ['~>3.2.1', [['>=3.2.1', '<3.3.0']]], - ['~1', [['>=1.0.0', '<2.0.0']]], - ['~>1', [['>=1.0.0', '<2.0.0']]], - ['~> 1', [['>=1.0.0', '<2.0.0']]], - ['~1.0', [['>=1.0.0', '<1.1.0']]], - ['~ 1.0', [['>=1.0.0', '<1.1.0']]], - ['~ 1.0.3', [['>=1.0.3', '<1.1.0']]], - ['~> 1.0.3', [['>=1.0.3', '<1.1.0']]], - ['<1', [['<1.0.0']]], - ['< 1', [['<1.0.0']]], - ['>=1', [['>=1.0.0']]], - ['>= 1', [['>=1.0.0']]], - ['<1.2', [['<1.2.0']]], - ['< 1.2', [['<1.2.0']]], - ['1', [['>=1.0.0', '<2.0.0']]], - ['1 2', [['>=1.0.0', '<2.0.0', '>=2.0.0', '<3.0.0']]], - ['1.2 - 3.4.5', [['>=1.2.0', '<=3.4.5']]], - ['1.2.3 - 3.4', [['>=1.2.3', '<3.5.0']]], - ['1.2.3 - 3', [['>=1.2.3', '<4.0.0']]], - ['>*', [['<0.0.0']]], - ['<*', [['<0.0.0']]] - ].forEach(function(v) { - var pre = v[0]; - var wanted = v[1]; - var found = toComparators(v[0]); - var jw = JSON.stringify(wanted); - t.equivalent(found, wanted, 'toComparators(' + pre + ') === ' + jw); - }); - - t.end(); -}); - -test('\ninvalid version numbers', function(t) { - ['1.2.3.4', - 'NOT VALID', - 1.2, - null, - 'Infinity.NaN.Infinity' - ].forEach(function(v) { - t.throws(function() { - new SemVer(v); - }, {name:'TypeError', message:'Invalid Version: ' + v}); - }); - - t.end(); -}); - -test('\nstrict vs loose version numbers', function(t) { - [['=1.2.3', '1.2.3'], - ['01.02.03', '1.2.3'], - ['1.2.3-beta.01', '1.2.3-beta.1'], - [' =1.2.3', '1.2.3'], - ['1.2.3foo', '1.2.3-foo'] - ].forEach(function(v) { - var loose = v[0]; - var strict = v[1]; - t.throws(function() { - new SemVer(loose); - }); - var lv = new SemVer(loose, true); - t.equal(lv.version, strict); - t.ok(eq(loose, strict, true)); - t.throws(function() { - eq(loose, strict); - }); - t.throws(function() { - new SemVer(strict).compare(loose); - }); - }); - t.end(); -}); - -test('\nstrict vs loose ranges', function(t) { - [['>=01.02.03', '>=1.2.3'], - ['~1.02.03beta', '>=1.2.3-beta <1.3.0'] - ].forEach(function(v) { - var loose = v[0]; - var comps = v[1]; - t.throws(function() { - new Range(loose); - }); - t.equal(new Range(loose, true).range, comps); - }); - t.end(); -}); - -test('\nmax satisfying', function(t) { - [[['1.2.3', '1.2.4'], '1.2', '1.2.4'], - [['1.2.4', '1.2.3'], '1.2', '1.2.4'], - [['1.2.3', '1.2.4', '1.2.5', '1.2.6'], '~1.2.3', '1.2.6'], - [['1.1.0', '1.2.0', '1.2.1', '1.3.0', '2.0.0b1', '2.0.0b2', '2.0.0b3', '2.0.0', '2.1.0'], '~2.0.0', '2.0.0', true] - ].forEach(function(v) { - var versions = v[0]; - var range = v[1]; - var expect = v[2]; - var loose = v[3]; - var actual = semver.maxSatisfying(versions, range, loose); - t.equal(actual, expect); - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/ltr.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/ltr.js deleted file mode 100644 index 0f7167d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/ltr.js +++ /dev/null @@ -1,181 +0,0 @@ -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var ltr = semver.ltr; - -test('\nltr tests', function(t) { - // [range, version, loose] - // Version should be less than range - [ - ['~1.2.2', '1.2.1'], - ['~0.6.1-1', '0.6.1-0'], - ['1.0.0 - 2.0.0', '0.0.1'], - ['1.0.0-beta.2', '1.0.0-beta.1'], - ['1.0.0', '0.0.0'], - ['>=2.0.0', '1.1.1'], - ['>=2.0.0', '1.2.9'], - ['>2.0.0', '2.0.0'], - ['0.1.20 || 1.2.4', '0.1.5'], - ['2.x.x', '1.0.0'], - ['1.2.x', '1.1.0'], - ['1.2.x || 2.x', '1.0.0'], - ['2.*.*', '1.0.1'], - ['1.2.*', '1.1.3'], - ['1.2.* || 2.*', '1.1.9999'], - ['2', '1.0.0'], - ['2.3', '2.2.2'], - ['~2.4', '2.3.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.3.5'], - ['~>3.2.1', '3.2.0'], // >=3.2.1 <3.3.0 - ['~1', '0.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '0.2.4'], - ['~> 1', '0.2.3'], - ['~1.0', '0.1.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '0.1.0'], - ['>1.2', '1.2.0'], - ['> 1.2', '1.2.1'], - ['1', '0.0.0beta', true], - ['~v0.5.4-pre', '0.5.4-alpha'], - ['~v0.5.4-pre', '0.5.4-alpha'], - ['=0.7.x', '0.6.0'], - ['=0.7.x', '0.6.0-asdf'], - ['>=0.7.x', '0.6.0'], - ['~1.2.2', '1.2.1'], - ['1.0.0 - 2.0.0', '0.2.3'], - ['1.0.0', '0.0.1'], - ['>=2.0.0', '1.0.0'], - ['>=2.0.0', '1.9999.9999'], - ['>=2.0.0', '1.2.9'], - ['>2.0.0', '2.0.0'], - ['>2.0.0', '1.2.9'], - ['2.x.x', '1.1.3'], - ['1.2.x', '1.1.3'], - ['1.2.x || 2.x', '1.1.3'], - ['2.*.*', '1.1.3'], - ['1.2.*', '1.1.3'], - ['1.2.* || 2.*', '1.1.3'], - ['2', '1.9999.9999'], - ['2.3', '2.2.1'], - ['~2.4', '2.3.0'], // >=2.4.0 <2.5.0 - ['~>3.2.1', '2.3.2'], // >=3.2.1 <3.3.0 - ['~1', '0.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '0.2.3'], - ['~1.0', '0.0.0'], // >=1.0.0 <1.1.0 - ['>1', '1.0.0'], - ['2', '1.0.0beta', true], - ['>1', '1.0.0beta', true], - ['> 1', '1.0.0beta', true], - ['=0.7.x', '0.6.2'], - ['=0.7.x', '0.7.0-asdf'], - ['^1', '1.0.0-0'], - ['>=0.7.x', '0.7.0-asdf'], - ['1', '1.0.0beta', true], - ['>=0.7.x', '0.6.2'], - ['>1.2.3', '1.3.0-alpha'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'ltr(' + version + ', ' + range + ', ' + loose + ')'; - t.ok(ltr(version, range, loose), msg); - }); - t.end(); -}); - -test('\nnegative ltr tests', function(t) { - // [range, version, loose] - // Version should NOT be less than range - [ - ['~ 1.0', '1.1.0'], - ['~0.6.1-1', '0.6.1-1'], - ['1.0.0 - 2.0.0', '1.2.3'], - ['1.0.0 - 2.0.0', '2.9.9'], - ['1.0.0', '1.0.0'], - ['>=*', '0.2.4'], - ['', '1.0.0', true], - ['*', '1.2.3'], - ['>=1.0.0', '1.0.0'], - ['>=1.0.0', '1.0.1'], - ['>=1.0.0', '1.1.0'], - ['>1.0.0', '1.0.1'], - ['>1.0.0', '1.1.0'], - ['<=2.0.0', '2.0.0'], - ['<=2.0.0', '1.9999.9999'], - ['<=2.0.0', '0.2.9'], - ['<2.0.0', '1.9999.9999'], - ['<2.0.0', '0.2.9'], - ['>= 1.0.0', '1.0.0'], - ['>= 1.0.0', '1.0.1'], - ['>= 1.0.0', '1.1.0'], - ['> 1.0.0', '1.0.1'], - ['> 1.0.0', '1.1.0'], - ['<= 2.0.0', '2.0.0'], - ['<= 2.0.0', '1.9999.9999'], - ['<= 2.0.0', '0.2.9'], - ['< 2.0.0', '1.9999.9999'], - ['<\t2.0.0', '0.2.9'], - ['>=0.1.97', 'v0.1.97'], - ['>=0.1.97', '0.1.97'], - ['0.1.20 || 1.2.4', '1.2.4'], - ['0.1.20 || >1.2.4', '1.2.4'], - ['0.1.20 || 1.2.4', '1.2.3'], - ['0.1.20 || 1.2.4', '0.1.20'], - ['>=0.2.3 || <0.0.1', '0.0.0'], - ['>=0.2.3 || <0.0.1', '0.2.3'], - ['>=0.2.3 || <0.0.1', '0.2.4'], - ['||', '1.3.4'], - ['2.x.x', '2.1.3'], - ['1.2.x', '1.2.3'], - ['1.2.x || 2.x', '2.1.3'], - ['1.2.x || 2.x', '1.2.3'], - ['x', '1.2.3'], - ['2.*.*', '2.1.3'], - ['1.2.*', '1.2.3'], - ['1.2.* || 2.*', '2.1.3'], - ['1.2.* || 2.*', '1.2.3'], - ['1.2.* || 2.*', '1.2.3'], - ['*', '1.2.3'], - ['2', '2.1.2'], - ['2.3', '2.3.1'], - ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.4.5'], - ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0 - ['~1', '1.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '1.2.3'], - ['~> 1', '1.2.3'], - ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '1.0.2'], - ['>=1', '1.0.0'], - ['>= 1', '1.0.0'], - ['<1.2', '1.1.1'], - ['< 1.2', '1.1.1'], - ['~v0.5.4-pre', '0.5.5'], - ['~v0.5.4-pre', '0.5.4'], - ['=0.7.x', '0.7.2'], - ['>=0.7.x', '0.7.2'], - ['<=0.7.x', '0.6.2'], - ['>0.2.3 >0.2.4 <=0.2.5', '0.2.5'], - ['>=0.2.3 <=0.2.4', '0.2.4'], - ['1.0.0 - 2.0.0', '2.0.0'], - ['^3.0.0', '4.0.0'], - ['^1.0.0 || ~2.0.1', '2.0.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', true], - ['^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', true], - ['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0'], - ['^1.0.0alpha', '1.0.0beta', true], - ['~1.0.0alpha', '1.0.0beta', true], - ['^1.0.0-alpha', '1.0.0beta', true], - ['~1.0.0-alpha', '1.0.0beta', true], - ['^1.0.0-alpha', '1.0.0-beta'], - ['~1.0.0-alpha', '1.0.0-beta'], - ['=0.1.0', '1.0.0'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = '!ltr(' + version + ', ' + range + ', ' + loose + ')'; - t.notOk(ltr(version, range, loose), msg); - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/major-minor-patch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/major-minor-patch.js deleted file mode 100644 index e9d4039c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/semver/test/major-minor-patch.js +++ /dev/null @@ -1,72 +0,0 @@ -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); - -test('\nmajor tests', function(t) { - // [range, version] - // Version should be detectable despite extra characters - [ - ['1.2.3', 1], - [' 1.2.3 ', 1], - [' 2.2.3-4 ', 2], - [' 3.2.3-pre ', 3], - ['v5.2.3', 5], - [' v8.2.3 ', 8], - ['\t13.2.3', 13], - ['=21.2.3', 21, true], - ['v=34.2.3', 34, true] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'major(' + range + ') = ' + version; - t.equal(semver.major(range, loose), version, msg); - }); - t.end(); -}); - -test('\nminor tests', function(t) { - // [range, version] - // Version should be detectable despite extra characters - [ - ['1.1.3', 1], - [' 1.1.3 ', 1], - [' 1.2.3-4 ', 2], - [' 1.3.3-pre ', 3], - ['v1.5.3', 5], - [' v1.8.3 ', 8], - ['\t1.13.3', 13], - ['=1.21.3', 21, true], - ['v=1.34.3', 34, true] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'minor(' + range + ') = ' + version; - t.equal(semver.minor(range, loose), version, msg); - }); - t.end(); -}); - -test('\npatch tests', function(t) { - // [range, version] - // Version should be detectable despite extra characters - [ - ['1.2.1', 1], - [' 1.2.1 ', 1], - [' 1.2.2-4 ', 2], - [' 1.2.3-pre ', 3], - ['v1.2.5', 5], - [' v1.2.8 ', 8], - ['\t1.2.13', 13], - ['=1.2.21', 21, true], - ['v=1.2.34', 34, true] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'patch(' + range + ') = ' + version; - t.equal(semver.patch(range, loose), version, msg); - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/.npmignore deleted file mode 100644 index fcfd9449..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -test -.gitignore -.travis.yml \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/LICENSE deleted file mode 100644 index 048a6f99..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/LICENSE +++ /dev/null @@ -1,46 +0,0 @@ -Copyright (c) 2013 Forbes Lindesay - -The BSD License - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - -The MIT License (MIT) - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/README.md deleted file mode 100644 index a2b300cc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# sha - -Check and get file hashes (using any algorithm) - -[![Build Status](https://img.shields.io/travis/ForbesLindesay/sha/master.svg)](https://travis-ci.org/ForbesLindesay/sha) -[![Dependency Status](https://img.shields.io/gemnasium/ForbesLindesay/sha.svg)](https://gemnasium.com/ForbesLindesay/sha) -[![NPM version](https://img.shields.io/npm/v/sha.svg)](http://badge.fury.io/js/sha) - -## Installation - - $ npm install sha - -## API - -### check(fileName, expected, [options,] cb) / checkSync(filename, expected, [options]) - -Asynchronously check that `fileName` has a "hash" of `expected`. The callback will be called with either `null` or an error (indicating that they did not match). - -Options: - -- algorithm: defaults to `sha1` and can be any of the algorithms supported by `crypto.createHash` - -### get(fileName, [options,] cb) / getSync(filename, [options]) - -Asynchronously get the "hash" of `fileName`. The callback will be called with an optional `error` object and the (lower cased) hex digest of the hash. - -Options: - -- algorithm: defaults to `sha1` and can be any of the algorithms supported by `crypto.createHash` - -### stream(expected, [options]) - -Check the hash of a stream without ever buffering it. This is a pass through stream so you can do things like: - -```js -fs.createReadStream('src') - .pipe(sha.stream('expected')) - .pipe(fs.createWriteStream('dest')) -``` - -`dest` will be a complete copy of `src` and an error will be emitted if the hash did not match `'expected'`. - -Options: - -- algorithm: defaults to `sha1` and can be any of the algorithms supported by `crypto.createHash` - -## License - -You may use this software under the BSD or MIT. Take your pick. If you want me to release it under another license, open a pull request. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/index.js deleted file mode 100644 index 44e7b4b5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/index.js +++ /dev/null @@ -1,107 +0,0 @@ -'use strict' - -var Transform = require('stream').Transform || require('readable-stream').Transform -var crypto = require('crypto') -var fs = require('graceful-fs') - -exports.check = check -exports.checkSync = checkSync -exports.get = get -exports.getSync = getSync -exports.stream = stream - -function check(file, expected, options, cb) { - if (typeof options === 'function') { - cb = options - options = undefined - } - expected = expected.toLowerCase().trim() - get(file, options, function (er, actual) { - if (er) { - if (er.message) er.message += ' while getting shasum for ' + file - return cb(er) - } - if (actual === expected) return cb(null) - cb(new Error( - 'shasum check failed for ' + file + '\n' - + 'Expected: ' + expected + '\n' - + 'Actual: ' + actual)) - }) -} -function checkSync(file, expected, options) { - expected = expected.toLowerCase().trim() - var actual - try { - actual = getSync(file, options) - } catch (er) { - if (er.message) er.message += ' while getting shasum for ' + file - throw er - } - if (actual !== expected) { - var ex = new Error( - 'shasum check failed for ' + file + '\n' - + 'Expected: ' + expected + '\n' - + 'Actual: ' + actual) - throw ex - } -} - - -function get(file, options, cb) { - if (typeof options === 'function') { - cb = options - options = undefined - } - options = options || {} - var algorithm = options.algorithm || 'sha1' - var hash = crypto.createHash(algorithm) - var source = fs.createReadStream(file) - var errState = null - source - .on('error', function (er) { - if (errState) return - return cb(errState = er) - }) - .on('data', function (chunk) { - if (errState) return - hash.update(chunk) - }) - .on('end', function () { - if (errState) return - var actual = hash.digest("hex").toLowerCase().trim() - cb(null, actual) - }) -} - -function getSync(file, options) { - options = options || {} - var algorithm = options.algorithm || 'sha1' - var hash = crypto.createHash(algorithm) - var source = fs.readFileSync(file) - hash.update(source) - return hash.digest("hex").toLowerCase().trim() -} - -function stream(expected, options) { - expected = expected.toLowerCase().trim() - options = options || {} - var algorithm = options.algorithm || 'sha1' - var hash = crypto.createHash(algorithm) - - var stream = new Transform() - stream._transform = function (chunk, encoding, callback) { - hash.update(chunk) - stream.push(chunk) - callback() - } - stream._flush = function (cb) { - var actual = hash.digest("hex").toLowerCase().trim() - if (actual === expected) return cb(null) - cb(new Error( - 'shasum check failed for:\n' - + ' Expected: ' + expected + '\n' - + ' Actual: ' + actual)) - this.push(null) - } - return stream -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/package.json deleted file mode 100644 index 05903c8b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sha/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "sha", - "version": "2.0.1", - "description": "Check and get file hashes", - "scripts": { - "test": "mocha -R spec" - }, - "repository": { - "type": "git", - "url": "https://github.com/ForbesLindesay/sha.git" - }, - "license": "(BSD-2-Clause OR MIT)", - "dependencies": { - "graceful-fs": "^4.1.2", - "readable-stream": "^2.0.2" - }, - "devDependencies": { - "mocha": "~1.9.0" - }, - "gitHead": "ce7c72ba753d886fb46c396cbadcbfc8eac25b4f", - "bugs": { - "url": "https://github.com/ForbesLindesay/sha/issues" - }, - "homepage": "https://github.com/ForbesLindesay/sha", - "_id": "sha@2.0.1", - "_shasum": "6030822fbd2c9823949f8f72ed6411ee5cf25aae", - "_from": "sha@>=2.0.1 <2.1.0", - "_npmVersion": "2.7.1", - "_nodeVersion": "1.6.2", - "_npmUser": { - "name": "forbeslindesay", - "email": "forbes@lindesay.co.uk" - }, - "maintainers": [ - { - "name": "forbeslindesay", - "email": "forbes@lindesay.co.uk" - }, - { - "name": "kenan", - "email": "kenan@kenany.me" - }, - { - "name": "thefourtheye", - "email": "thechargingvolcano@gmail.com" - } - ], - "dist": { - "shasum": "6030822fbd2c9823949f8f72ed6411ee5cf25aae", - "tarball": "http://registry.npmjs.org/sha/-/sha-2.0.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/LICENSE deleted file mode 100644 index 05eeeb88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/README.md deleted file mode 100644 index 59ad738b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/README.md +++ /dev/null @@ -1,143 +0,0 @@ -# Controlling Flow: callbacks are easy - -## What's actually hard? - -- Doing a bunch of things in a specific order. -- Knowing when stuff is done. -- Handling failures. -- Breaking up functionality into parts (avoid nested inline callbacks) - - -## Common Mistakes - -- Abandoning convention and consistency. -- Putting all callbacks inline. -- Using libraries without grokking them. -- Trying to make async code look sync. - -## Define Conventions - -- Two kinds of functions: *actors* take action, *callbacks* get results. -- Essentially the continuation pattern. Resulting code *looks* similar - to fibers, but is *much* simpler to implement. -- Node works this way in the lowlevel APIs already, and it's very flexible. - -## Callbacks - -- Simple responders -- Must always be prepared to handle errors, that's why it's the first argument. -- Often inline anonymous, but not always. -- Can trap and call other callbacks with modified data, or pass errors upwards. - -## Actors - -- Last argument is a callback. -- If any error occurs, and can't be handled, pass it to the callback and return. -- Must not throw. Return value ignored. -- return x ==> return cb(null, x) -- throw er ==> return cb(er) - -```javascript -// return true if a path is either -// a symlink or a directory. -function isLinkOrDir (path, cb) { - fs.lstat(path, function (er, s) { - if (er) return cb(er) - return cb(null, s.isDirectory() || s.isSymbolicLink()) - }) -} -``` - -# asyncMap - -## Usecases - -- I have a list of 10 files, and need to read all of them, and then continue when they're all done. -- I have a dozen URLs, and need to fetch them all, and then continue when they're all done. -- I have 4 connected users, and need to send a message to all of them, and then continue when that's done. -- I have a list of n things, and I need to dosomething with all of them, in parallel, and get the results once they're all complete. - - -## Solution - -```javascript -var asyncMap = require("slide").asyncMap -function writeFiles (files, what, cb) { - asyncMap(files, function (f, cb) { - fs.writeFile(f, what, cb) - }, cb) -} -writeFiles([my, file, list], "foo", cb) -``` - -# chain - -## Usecases - -- I have to do a bunch of things, in order. Get db credentials out of a file, - read the data from the db, write that data to another file. -- If anything fails, do not continue. -- I still have to provide an array of functions, which is a lot of boilerplate, - and a pita if your functions take args like - -```javascript -function (cb) { - blah(a, b, c, cb) -} -``` - -- Results are discarded, which is a bit lame. -- No way to branch. - -## Solution - -- reduces boilerplate by converting an array of [fn, args] to an actor - that takes no arguments (except cb) -- A bit like Function#bind, but tailored for our use-case. -- bindActor(obj, "method", a, b, c) -- bindActor(fn, a, b, c) -- bindActor(obj, fn, a, b, c) -- branching, skipping over falsey arguments - -```javascript -chain([ - doThing && [thing, a, b, c] -, isFoo && [doFoo, "foo"] -, subChain && [chain, [one, two]] -], cb) -``` - -- tracking results: results are stored in an optional array passed as argument, - last result is always in results[results.length - 1]. -- treat chain.first and chain.last as placeholders for the first/last - result up until that point. - - -## Non-trivial example - -- Read number files in a directory -- Add the results together -- Ping a web service with the result -- Write the response to a file -- Delete the number files - -```javascript -var chain = require("slide").chain -function myProgram (cb) { - var res = [], last = chain.last, first = chain.first - chain([ - [fs, "readdir", "the-directory"] - , [readFiles, "the-directory", last] - , [sum, last] - , [ping, "POST", "example.com", 80, "/foo", last] - , [fs, "writeFile", "result.txt", last] - , [rmFiles, "./the-directory", first] - ], res, cb) -} -``` - -# Conclusion: Convention Profits - -- Consistent API from top to bottom. -- Sneak in at any point to inject functionality. Testable, reusable, ... -- When ruby and python users whine, you can smile condescendingly. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/index.js deleted file mode 100644 index 0a9277f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports=require("./lib/slide") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/async-map-ordered.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/async-map-ordered.js deleted file mode 100644 index 5cca79a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/async-map-ordered.js +++ /dev/null @@ -1,65 +0,0 @@ - -throw new Error("TODO: Not yet implemented.") - -/* -usage: - -Like asyncMap, but only can take a single cb, and guarantees -the order of the results. -*/ - -module.exports = asyncMapOrdered - -function asyncMapOrdered (list, fn, cb_) { - if (typeof cb_ !== "function") throw new Error( - "No callback provided to asyncMapOrdered") - - if (typeof fn !== "function") throw new Error( - "No map function provided to asyncMapOrdered") - - if (list === undefined || list === null) return cb_(null, []) - if (!Array.isArray(list)) list = [list] - if (!list.length) return cb_(null, []) - - var errState = null - , l = list.length - , a = l - , res = [] - , resCount = 0 - , maxArgLen = 0 - - function cb (index) { return function () { - if (errState) return - var er = arguments[0] - var argLen = arguments.length - maxArgLen = Math.max(maxArgLen, argLen) - res[index] = argLen === 1 ? [er] : Array.apply(null, arguments) - - // see if any new things have been added. - if (list.length > l) { - var newList = list.slice(l) - a += (list.length - l) - var oldLen = l - l = list.length - process.nextTick(function () { - newList.forEach(function (ar, i) { fn(ar, cb(i + oldLen)) }) - }) - } - - if (er || --a === 0) { - errState = er - cb_.apply(null, [errState].concat(flip(res, resCount, maxArgLen))) - } - }} - // expect the supplied cb function to be called - // "n" times for each thing in the array. - list.forEach(function (ar) { - steps.forEach(function (fn, i) { fn(ar, cb(i)) }) - }) -} - -function flip (res, resCount, argLen) { - var flat = [] - // res = [[er, x, y], [er, x1, y1], [er, x2, y2, z2]] - // return [[x, x1, x2], [y, y1, y2], [undefined, undefined, z2]] - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/async-map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/async-map.js deleted file mode 100644 index ccf345f3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/async-map.js +++ /dev/null @@ -1,54 +0,0 @@ - -/* -usage: - -// do something to a list of things -asyncMap(myListOfStuff, function (thing, cb) { doSomething(thing.foo, cb) }, cb) -// do more than one thing to each item -asyncMap(list, fooFn, barFn, cb) - -*/ - -module.exports = asyncMap - -function asyncMap () { - var steps = Array.prototype.slice.call(arguments) - , list = steps.shift() || [] - , cb_ = steps.pop() - if (typeof cb_ !== "function") throw new Error( - "No callback provided to asyncMap") - if (!list) return cb_(null, []) - if (!Array.isArray(list)) list = [list] - var n = steps.length - , data = [] // 2d array - , errState = null - , l = list.length - , a = l * n - if (!a) return cb_(null, []) - function cb (er) { - if (er && !errState) errState = er - - var argLen = arguments.length - for (var i = 1; i < argLen; i ++) if (arguments[i] !== undefined) { - data[i - 1] = (data[i - 1] || []).concat(arguments[i]) - } - // see if any new things have been added. - if (list.length > l) { - var newList = list.slice(l) - a += (list.length - l) * n - l = list.length - process.nextTick(function () { - newList.forEach(function (ar) { - steps.forEach(function (fn) { fn(ar, cb) }) - }) - }) - } - - if (--a === 0) cb_.apply(null, [errState].concat(data)) - } - // expect the supplied cb function to be called - // "n" times for each thing in the array. - list.forEach(function (ar) { - steps.forEach(function (fn) { fn(ar, cb) }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/bind-actor.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/bind-actor.js deleted file mode 100644 index 6a370727..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/bind-actor.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = bindActor -function bindActor () { - var args = - Array.prototype.slice.call - (arguments) // jswtf. - , obj = null - , fn - if (typeof args[0] === "object") { - obj = args.shift() - fn = args.shift() - if (typeof fn === "string") - fn = obj[ fn ] - } else fn = args.shift() - return function (cb) { - fn.apply(obj, args.concat(cb)) } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/chain.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/chain.js deleted file mode 100644 index 17b37114..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/chain.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = chain -var bindActor = require("./bind-actor.js") -chain.first = {} ; chain.last = {} -function chain (things, cb) { - var res = [] - ;(function LOOP (i, len) { - if (i >= len) return cb(null,res) - if (Array.isArray(things[i])) - things[i] = bindActor.apply(null, - things[i].map(function(i){ - return (i===chain.first) ? res[0] - : (i===chain.last) - ? res[res.length - 1] : i })) - if (!things[i]) return LOOP(i + 1, len) - things[i](function (er, data) { - if (er) return cb(er, res) - if (data !== undefined) res = res.concat(data) - LOOP(i + 1, len) - }) - })(0, things.length) } diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/slide.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/slide.js deleted file mode 100644 index 6e9ec232..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/lib/slide.js +++ /dev/null @@ -1,3 +0,0 @@ -exports.asyncMap = require("./async-map") -exports.bindActor = require("./bind-actor") -exports.chain = require("./chain") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/package.json deleted file mode 100644 index 8b6aa2b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/slide/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "slide", - "version": "1.1.6", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "contributors": [ - { - "name": "S. Sriram", - "email": "ssriram@gmail.com", - "url": "http://www.565labs.com" - } - ], - "description": "A flow control lib small enough to fit on in a slide presentation. Derived live at Oak.JS", - "main": "./lib/slide.js", - "dependencies": {}, - "devDependencies": {}, - "engines": { - "node": "*" - }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/slide-flow-control.git" - }, - "license": "ISC", - "gitHead": "8345e51ee41e35825abc1a40750ea11462f57028", - "bugs": { - "url": "https://github.com/isaacs/slide-flow-control/issues" - }, - "homepage": "https://github.com/isaacs/slide-flow-control", - "_id": "slide@1.1.6", - "scripts": {}, - "_shasum": "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707", - "_from": "slide@>=1.1.6 <1.2.0", - "_npmVersion": "2.0.0-beta.3", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "dist": { - "shasum": "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707", - "tarball": "http://registry.npmjs.org/slide/-/slide-1.1.6.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/LICENSE.txt deleted file mode 100644 index 4a323deb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright © 2014–2016 Domenic Denicola - -This work is free. You can redistribute it and/or modify it under the -terms of the Do What The Fuck You Want To Public License, Version 2, -as published by Sam Hocevar. See below for more details. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/README.md deleted file mode 100644 index d3f12a27..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Get a Version of an Object with Sorted Keys - -Although objects in JavaScript are theoretically unsorted, in practice most engines use insertion order—at least, ignoring numeric keys. This manifests itself most prominently when dealing with an object's JSON serialization. - -So, for example, you might be trying to serialize some object to a JSON file. But every time you write it, it ends up being output in a different order, depending on how you created it in the first place! This makes for some ugly diffs. - -**sorted-object** gives you the answer. Just use this package to create a version of your object with its keys sorted before serializing, and you'll get a consistent order every time. - -```js -var sortedObject = require("sorted-object"); - -var objectToSerialize = generateStuffNondeterministically(); - -// Before: -fs.writeFileSync("dest.json", JSON.stringify(objectToSerialize)); - -// After: -var sortedVersion = sortedObject(objectToSerialize); -fs.writeFileSync("dest.json", JSON.stringify(sortedVersion)); -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/lib/sorted-object.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/lib/sorted-object.js deleted file mode 100644 index 1b3fe81a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/lib/sorted-object.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; - -module.exports = function (input) { - var output = {}; - - Object.keys(input).sort().forEach(function (key) { - output[key] = input[key]; - }); - - return output; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/package.json deleted file mode 100644 index 60a8356b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/sorted-object/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "_args": [ - [ - "sorted-object@latest", - "/Users/rebecca/code/npm" - ] - ], - "_from": "sorted-object@latest", - "_id": "sorted-object@2.0.0", - "_inCache": true, - "_installable": true, - "_location": "/sorted-object", - "_nodeVersion": "5.7.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/sorted-object-2.0.0.tgz_1457910693572_0.6718082851730287" - }, - "_npmUser": { - "email": "d@domenic.me", - "name": "domenic" - }, - "_npmVersion": "3.6.0", - "_phantomChildren": {}, - "_requested": { - "name": "sorted-object", - "raw": "sorted-object@latest", - "rawSpec": "latest", - "scope": null, - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.0.tgz", - "_shasum": "1cfea981609047d8043807a490a9d99b317faf7f", - "_shrinkwrap": null, - "_spec": "sorted-object@latest", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "d@domenic.me", - "name": "Domenic Denicola", - "url": "https://domenic.me/" - }, - "bugs": { - "url": "https://github.com/domenic/sorted-object/issues" - }, - "dependencies": {}, - "description": "Returns a copy of an object with its keys sorted", - "devDependencies": { - "eslint": "^2.4.0", - "tape": "^4.5.1" - }, - "directories": {}, - "dist": { - "shasum": "1cfea981609047d8043807a490a9d99b317faf7f", - "tarball": "http://registry.npmjs.org/sorted-object/-/sorted-object-2.0.0.tgz" - }, - "files": [ - "lib/" - ], - "gitHead": "3cbdde212c8ceef219fbb8fa7805bfc38b94aa90", - "homepage": "https://github.com/domenic/sorted-object#readme", - "keywords": [ - "sort", - "keys", - "object" - ], - "license": "WTFPL", - "main": "lib/sorted-object.js", - "maintainers": [ - { - "email": "domenic@domenicdenicola.com", - "name": "domenic" - } - ], - "name": "sorted-object", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/domenic/sorted-object.git" - }, - "scripts": { - "lint": "eslint .", - "test": "tape test/tests.js" - }, - "version": "2.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/index.js deleted file mode 100644 index 099480fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -var ansiRegex = require('ansi-regex')(); - -module.exports = function (str) { - return typeof str === 'string' ? str.replace(ansiRegex, '') : str; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/package.json deleted file mode 100644 index 9f7df7bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/package.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "_args": [ - [ - "strip-ansi@*", - "/Users/rebecca/code/npm" - ] - ], - "_from": "strip-ansi@*", - "_id": "strip-ansi@3.0.1", - "_inCache": true, - "_installable": true, - "_location": "/strip-ansi", - "_nodeVersion": "0.12.7", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/strip-ansi-3.0.1.tgz_1456057278183_0.28958667791448534" - }, - "_npmUser": { - "email": "jappelman@xebia.com", - "name": "jbnicolai" - }, - "_npmVersion": "2.11.3", - "_phantomChildren": {}, - "_requested": { - "name": "strip-ansi", - "raw": "strip-ansi@*", - "rawSpec": "*", - "scope": null, - "spec": "*", - "type": "range" - }, - "_requiredBy": [ - "/", - "/columnify", - "/request/har-validator/chalk", - "/standard/standard-engine/eslint/chalk", - "/standard/standard-engine/eslint/inquirer", - "/standard/standard-engine/eslint/inquirer/string-width", - "/standard/standard-format/esformatter-jsx/babel-core/chalk", - "/tap/coveralls/request/har-validator/chalk", - "/tap/nyc/yargs/cliui", - "/tap/nyc/yargs/string-width", - "/tap/tap-mocha-reporter/unicode-length/chalk" - ], - "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", - "_shrinkwrap": null, - "_spec": "strip-ansi@*", - "_where": "/Users/rebecca/code/npm", - "author": { - "email": "sindresorhus@gmail.com", - "name": "Sindre Sorhus", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/chalk/strip-ansi/issues" - }, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "description": "Strip ANSI escape codes", - "devDependencies": { - "ava": "*", - "xo": "*" - }, - "directories": {}, - "dist": { - "shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", - "tarball": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "gitHead": "8270705c704956da865623e564eba4875c3ea17f", - "homepage": "https://github.com/chalk/strip-ansi", - "keywords": [ - "strip", - "trim", - "remove", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "license": "MIT", - "maintainers": [ - { - "email": "sindresorhus@gmail.com", - "name": "sindresorhus" - }, - { - "email": "jappelman@xebia.com", - "name": "jbnicolai" - } - ], - "name": "strip-ansi", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/strip-ansi.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "3.0.1" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/readme.md deleted file mode 100644 index cb7d9ff7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/strip-ansi/readme.md +++ /dev/null @@ -1,33 +0,0 @@ -# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi) - -> Strip [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) - - -## Install - -``` -$ npm install --save strip-ansi -``` - - -## Usage - -```js -var stripAnsi = require('strip-ansi'); - -stripAnsi('\u001b[4mcake\u001b[0m'); -//=> 'cake' -``` - - -## Related - -- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module -- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes -- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes -- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/.npmignore deleted file mode 100644 index c167ad5b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -.*.swp -node_modules -examples/extract/ -test/tmp/ -test/fixtures/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/.travis.yml deleted file mode 100644 index fca8ef01..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.10 - - 0.11 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/LICENSE deleted file mode 100644 index 019b7e40..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/LICENSE +++ /dev/null @@ -1,12 +0,0 @@ -The ISC License -Copyright (c) Isaac Z. Schlueter and Contributors -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/README.md deleted file mode 100644 index cfda2ac1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# node-tar - -Tar for Node.js. - -[![NPM](https://nodei.co/npm/tar.png)](https://nodei.co/npm/tar/) - -## API - -See `examples/` for usage examples. - -### var tar = require('tar') - -Returns an object with `.Pack`, `.Extract` and `.Parse` methods. - -### tar.Pack([properties]) - -Returns a through stream. Use -[fstream](https://npmjs.org/package/fstream) to write files into the -pack stream and you will receive tar archive data from the pack -stream. - -This only works with directories, it does not work with individual files. - -The optional `properties` object are used to set properties in the tar -'Global Extended Header'. If the `fromBase` property is set to true, -the tar will contain files relative to the path passed, and not with -the path included. - -### tar.Extract([options]) - -Returns a through stream. Write tar data to the stream and the files -in the tarball will be extracted onto the filesystem. - -`options` can be: - -```js -{ - path: '/path/to/extract/tar/into', - strip: 0, // how many path segments to strip from the root when extracting -} -``` - -`options` also get passed to the `fstream.Writer` instance that `tar` -uses internally. - -### tar.Parse() - -Returns a writable stream. Write tar data to it and it will emit -`entry` events for each entry parsed from the tarball. This is used by -`tar.Extract`. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/examples/extracter.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/examples/extracter.js deleted file mode 100644 index f6253a72..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/examples/extracter.js +++ /dev/null @@ -1,19 +0,0 @@ -var tar = require("../tar.js") - , fs = require("fs") - - -function onError(err) { - console.error('An error occurred:', err) -} - -function onEnd() { - console.log('Extracted!') -} - -var extractor = tar.Extract({path: __dirname + "/extract"}) - .on('error', onError) - .on('end', onEnd); - -fs.createReadStream(__dirname + "/../test/fixtures/c.tar") - .on('error', onError) - .pipe(extractor); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/examples/packer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/examples/packer.js deleted file mode 100644 index 039969ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/examples/packer.js +++ /dev/null @@ -1,24 +0,0 @@ -var tar = require("../tar.js") - , fstream = require("fstream") - , fs = require("fs") - -var dirDest = fs.createWriteStream('dir.tar') - - -function onError(err) { - console.error('An error occurred:', err) -} - -function onEnd() { - console.log('Packed!') -} - -var packer = tar.Pack({ noProprietary: true }) - .on('error', onError) - .on('end', onEnd); - -// This must be a "directory" -fstream.Reader({ path: __dirname, type: "Directory" }) - .on('error', onError) - .pipe(packer) - .pipe(dirDest) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/examples/reader.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/examples/reader.js deleted file mode 100644 index 39f3f088..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/examples/reader.js +++ /dev/null @@ -1,36 +0,0 @@ -var tar = require("../tar.js") - , fs = require("fs") - -fs.createReadStream(__dirname + "/../test/fixtures/c.tar") - .pipe(tar.Parse()) - .on("extendedHeader", function (e) { - console.error("extended pax header", e.props) - e.on("end", function () { - console.error("extended pax fields:", e.fields) - }) - }) - .on("ignoredEntry", function (e) { - console.error("ignoredEntry?!?", e.props) - }) - .on("longLinkpath", function (e) { - console.error("longLinkpath entry", e.props) - e.on("end", function () { - console.error("value=%j", e.body.toString()) - }) - }) - .on("longPath", function (e) { - console.error("longPath entry", e.props) - e.on("end", function () { - console.error("value=%j", e.body.toString()) - }) - }) - .on("entry", function (e) { - console.error("entry", e.props) - e.on("data", function (c) { - console.error(" >>>" + c.toString().replace(/\n/g, "\\n")) - }) - e.on("end", function () { - console.error(" << 0 - return !this._needDrain -} - -EntryWriter.prototype.end = function (c) { - // console.error(".. ew end") - if (c) this._buffer.push(c) - this._buffer.push(EOF) - this._ended = true - this._process() - this._needDrain = this._buffer.length > 0 -} - -EntryWriter.prototype.pause = function () { - // console.error(".. ew pause") - this._paused = true - this.emit("pause") -} - -EntryWriter.prototype.resume = function () { - // console.error(".. ew resume") - this._paused = false - this.emit("resume") - this._process() -} - -EntryWriter.prototype.add = function (entry) { - // console.error(".. ew add") - if (!this.parent) return this.emit("error", new Error("no parent")) - - // make sure that the _header and such is emitted, and clear out - // the _currentEntry link on the parent. - if (!this._ended) this.end() - - return this.parent.add(entry) -} - -EntryWriter.prototype._header = function () { - // console.error(".. ew header") - if (this._didHeader) return - this._didHeader = true - - var headerBlock = TarHeader.encode(this.props) - - if (this.props.needExtended && !this._meta) { - var me = this - - ExtendedHeaderWriter = ExtendedHeaderWriter || - require("./extended-header-writer.js") - - ExtendedHeaderWriter(this.props) - .on("data", function (c) { - me.emit("data", c) - }) - .on("error", function (er) { - me.emit("error", er) - }) - .end() - } - - // console.error(".. .. ew headerBlock emitting") - this.emit("data", headerBlock) - this.emit("header") -} - -EntryWriter.prototype._process = function () { - // console.error(".. .. ew process") - if (!this._didHeader && !this._meta) { - this._header() - } - - if (this._paused || this._processing) { - // console.error(".. .. .. paused=%j, processing=%j", this._paused, this._processing) - return - } - - this._processing = true - - var buf = this._buffer - for (var i = 0; i < buf.length; i ++) { - // console.error(".. .. .. i=%d", i) - - var c = buf[i] - - if (c === EOF) this._stream.end() - else this._stream.write(c) - - if (this._paused) { - // console.error(".. .. .. paused mid-emission") - this._processing = false - if (i < buf.length) { - this._needDrain = true - this._buffer = buf.slice(i + 1) - } - return - } - } - - // console.error(".. .. .. emitted") - this._buffer.length = 0 - this._processing = false - - // console.error(".. .. .. emitting drain") - this.emit("drain") -} - -EntryWriter.prototype.destroy = function () {} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/entry.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/entry.js deleted file mode 100644 index 591202bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/entry.js +++ /dev/null @@ -1,220 +0,0 @@ -// A passthrough read/write stream that sets its properties -// based on a header, extendedHeader, and globalHeader -// -// Can be either a file system object of some sort, or -// a pax/ustar metadata entry. - -module.exports = Entry - -var TarHeader = require("./header.js") - , tar = require("../tar") - , assert = require("assert").ok - , Stream = require("stream").Stream - , inherits = require("inherits") - , fstream = require("fstream").Abstract - -function Entry (header, extended, global) { - Stream.call(this) - this.readable = true - this.writable = true - - this._needDrain = false - this._paused = false - this._reading = false - this._ending = false - this._ended = false - this._remaining = 0 - this._abort = false - this._queue = [] - this._index = 0 - this._queueLen = 0 - - this._read = this._read.bind(this) - - this.props = {} - this._header = header - this._extended = extended || {} - - // globals can change throughout the course of - // a file parse operation. Freeze it at its current state. - this._global = {} - var me = this - Object.keys(global || {}).forEach(function (g) { - me._global[g] = global[g] - }) - - this._setProps() -} - -inherits(Entry, Stream) - -Entry.prototype.write = function (c) { - if (this._ending) this.error("write() after end()", null, true) - if (this._remaining === 0) { - this.error("invalid bytes past eof") - } - - // often we'll get a bunch of \0 at the end of the last write, - // since chunks will always be 512 bytes when reading a tarball. - if (c.length > this._remaining) { - c = c.slice(0, this._remaining) - } - this._remaining -= c.length - - // put it on the stack. - var ql = this._queueLen - this._queue.push(c) - this._queueLen ++ - - this._read() - - // either paused, or buffered - if (this._paused || ql > 0) { - this._needDrain = true - return false - } - - return true -} - -Entry.prototype.end = function (c) { - if (c) this.write(c) - this._ending = true - this._read() -} - -Entry.prototype.pause = function () { - this._paused = true - this.emit("pause") -} - -Entry.prototype.resume = function () { - // console.error(" Tar Entry resume", this.path) - this.emit("resume") - this._paused = false - this._read() - return this._queueLen - this._index > 1 -} - - // This is bound to the instance -Entry.prototype._read = function () { - // console.error(" Tar Entry _read", this.path) - - if (this._paused || this._reading || this._ended) return - - // set this flag so that event handlers don't inadvertently - // get multiple _read() calls running. - this._reading = true - - // have any data to emit? - while (this._index < this._queueLen && !this._paused) { - var chunk = this._queue[this._index ++] - this.emit("data", chunk) - } - - // check if we're drained - if (this._index >= this._queueLen) { - this._queue.length = this._queueLen = this._index = 0 - if (this._needDrain) { - this._needDrain = false - this.emit("drain") - } - if (this._ending) { - this._ended = true - this.emit("end") - } - } - - // if the queue gets too big, then pluck off whatever we can. - // this should be fairly rare. - var mql = this._maxQueueLen - if (this._queueLen > mql && this._index > 0) { - mql = Math.min(this._index, mql) - this._index -= mql - this._queueLen -= mql - this._queue = this._queue.slice(mql) - } - - this._reading = false -} - -Entry.prototype._setProps = function () { - // props = extended->global->header->{} - var header = this._header - , extended = this._extended - , global = this._global - , props = this.props - - // first get the values from the normal header. - var fields = tar.fields - for (var f = 0; fields[f] !== null; f ++) { - var field = fields[f] - , val = header[field] - if (typeof val !== "undefined") props[field] = val - } - - // next, the global header for this file. - // numeric values, etc, will have already been parsed. - ;[global, extended].forEach(function (p) { - Object.keys(p).forEach(function (f) { - if (typeof p[f] !== "undefined") props[f] = p[f] - }) - }) - - // no nulls allowed in path or linkpath - ;["path", "linkpath"].forEach(function (p) { - if (props.hasOwnProperty(p)) { - props[p] = props[p].split("\0")[0] - } - }) - - - // set date fields to be a proper date - ;["mtime", "ctime", "atime"].forEach(function (p) { - if (props.hasOwnProperty(p)) { - props[p] = new Date(props[p] * 1000) - } - }) - - // set the type so that we know what kind of file to create - var type - switch (tar.types[props.type]) { - case "OldFile": - case "ContiguousFile": - type = "File" - break - - case "GNUDumpDir": - type = "Directory" - break - - case undefined: - type = "Unknown" - break - - case "Link": - case "SymbolicLink": - case "CharacterDevice": - case "BlockDevice": - case "Directory": - case "FIFO": - default: - type = tar.types[props.type] - } - - this.type = type - this.path = props.path - this.size = props.size - - // size is special, since it signals when the file needs to end. - this._remaining = props.size -} - -// the parser may not call write if _abort is true. -// useful for skipping data from some files quickly. -Entry.prototype.abort = function(){ - this._abort = true -} - -Entry.prototype.warn = fstream.warn -Entry.prototype.error = fstream.error diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/extended-header-writer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/extended-header-writer.js deleted file mode 100644 index 1728c458..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/extended-header-writer.js +++ /dev/null @@ -1,191 +0,0 @@ - -module.exports = ExtendedHeaderWriter - -var inherits = require("inherits") - , EntryWriter = require("./entry-writer.js") - -inherits(ExtendedHeaderWriter, EntryWriter) - -var tar = require("../tar.js") - , path = require("path") - , TarHeader = require("./header.js") - -// props is the props of the thing we need to write an -// extended header for. -// Don't be shy with it. Just encode everything. -function ExtendedHeaderWriter (props) { - // console.error(">> ehw ctor") - var me = this - - if (!(me instanceof ExtendedHeaderWriter)) { - return new ExtendedHeaderWriter(props) - } - - me.fields = props - - var p = - { path : ("PaxHeader" + path.join("/", props.path || "")) - .replace(/\\/g, "/").substr(0, 100) - , mode : props.mode || 0666 - , uid : props.uid || 0 - , gid : props.gid || 0 - , size : 0 // will be set later - , mtime : props.mtime || Date.now() / 1000 - , type : "x" - , linkpath : "" - , ustar : "ustar\0" - , ustarver : "00" - , uname : props.uname || "" - , gname : props.gname || "" - , devmaj : props.devmaj || 0 - , devmin : props.devmin || 0 - } - - - EntryWriter.call(me, p) - // console.error(">> ehw props", me.props) - me.props = p - - me._meta = true -} - -ExtendedHeaderWriter.prototype.end = function () { - // console.error(">> ehw end") - var me = this - - if (me._ended) return - me._ended = true - - me._encodeFields() - - if (me.props.size === 0) { - // nothing to write! - me._ready = true - me._stream.end() - return - } - - me._stream.write(TarHeader.encode(me.props)) - me.body.forEach(function (l) { - me._stream.write(l) - }) - me._ready = true - - // console.error(">> ehw _process calling end()", me.props) - this._stream.end() -} - -ExtendedHeaderWriter.prototype._encodeFields = function () { - // console.error(">> ehw _encodeFields") - this.body = [] - if (this.fields.prefix) { - this.fields.path = this.fields.prefix + "/" + this.fields.path - this.fields.prefix = "" - } - encodeFields(this.fields, "", this.body, this.fields.noProprietary) - var me = this - this.body.forEach(function (l) { - me.props.size += l.length - }) -} - -function encodeFields (fields, prefix, body, nop) { - // console.error(">> >> ehw encodeFields") - // "%d %s=%s\n", , , - // The length is a decimal number, and includes itself and the \n - // Numeric values are decimal strings. - - Object.keys(fields).forEach(function (k) { - var val = fields[k] - , numeric = tar.numeric[k] - - if (prefix) k = prefix + "." + k - - // already including NODETAR.type, don't need File=true also - if (k === fields.type && val === true) return - - switch (k) { - // don't include anything that's always handled just fine - // in the normal header, or only meaningful in the context - // of nodetar - case "mode": - case "cksum": - case "ustar": - case "ustarver": - case "prefix": - case "basename": - case "dirname": - case "needExtended": - case "block": - case "filter": - return - - case "rdev": - if (val === 0) return - break - - case "nlink": - case "dev": // Truly a hero among men, Creator of Star! - case "ino": // Speak his name with reverent awe! It is: - k = "SCHILY." + k - break - - default: break - } - - if (val && typeof val === "object" && - !Buffer.isBuffer(val)) encodeFields(val, k, body, nop) - else if (val === null || val === undefined) return - else body.push.apply(body, encodeField(k, val, nop)) - }) - - return body -} - -function encodeField (k, v, nop) { - // lowercase keys must be valid, otherwise prefix with - // "NODETAR." - if (k.charAt(0) === k.charAt(0).toLowerCase()) { - var m = k.split(".")[0] - if (!tar.knownExtended[m]) k = "NODETAR." + k - } - - // no proprietary - if (nop && k.charAt(0) !== k.charAt(0).toLowerCase()) { - return [] - } - - if (typeof val === "number") val = val.toString(10) - - var s = new Buffer(" " + k + "=" + v + "\n") - , digits = Math.floor(Math.log(s.length) / Math.log(10)) + 1 - - // console.error("1 s=%j digits=%j s.length=%d", s.toString(), digits, s.length) - - // if adding that many digits will make it go over that length, - // then add one to it. For example, if the string is: - // " foo=bar\n" - // then that's 9 characters. With the "9", that bumps the length - // up to 10. However, this is invalid: - // "10 foo=bar\n" - // but, since that's actually 11 characters, since 10 adds another - // character to the length, and the length includes the number - // itself. In that case, just bump it up again. - if (s.length + digits >= Math.pow(10, digits)) digits += 1 - // console.error("2 s=%j digits=%j s.length=%d", s.toString(), digits, s.length) - - var len = digits + s.length - // console.error("3 s=%j digits=%j s.length=%d len=%d", s.toString(), digits, s.length, len) - var lenBuf = new Buffer("" + len) - if (lenBuf.length + s.length !== len) { - throw new Error("Bad length calculation\n"+ - "len="+len+"\n"+ - "lenBuf="+JSON.stringify(lenBuf.toString())+"\n"+ - "lenBuf.length="+lenBuf.length+"\n"+ - "digits="+digits+"\n"+ - "s="+JSON.stringify(s.toString())+"\n"+ - "s.length="+s.length) - } - - return [lenBuf, s] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/extended-header.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/extended-header.js deleted file mode 100644 index 74f432ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/extended-header.js +++ /dev/null @@ -1,140 +0,0 @@ -// An Entry consisting of: -// -// "%d %s=%s\n", , , -// -// The length is a decimal number, and includes itself and the \n -// \0 does not terminate anything. Only the length terminates the string. -// Numeric values are decimal strings. - -module.exports = ExtendedHeader - -var Entry = require("./entry.js") - , inherits = require("inherits") - , tar = require("../tar.js") - , numeric = tar.numeric - , keyTrans = { "SCHILY.dev": "dev" - , "SCHILY.ino": "ino" - , "SCHILY.nlink": "nlink" } - -function ExtendedHeader () { - Entry.apply(this, arguments) - this.on("data", this._parse) - this.fields = {} - this._position = 0 - this._fieldPos = 0 - this._state = SIZE - this._sizeBuf = [] - this._keyBuf = [] - this._valBuf = [] - this._size = -1 - this._key = "" -} - -inherits(ExtendedHeader, Entry) -ExtendedHeader.prototype._parse = parse - -var s = 0 - , states = ExtendedHeader.states = {} - , SIZE = states.SIZE = s++ - , KEY = states.KEY = s++ - , VAL = states.VAL = s++ - , ERR = states.ERR = s++ - -Object.keys(states).forEach(function (s) { - states[states[s]] = states[s] -}) - -states[s] = null - -// char code values for comparison -var _0 = "0".charCodeAt(0) - , _9 = "9".charCodeAt(0) - , point = ".".charCodeAt(0) - , a = "a".charCodeAt(0) - , Z = "Z".charCodeAt(0) - , a = "a".charCodeAt(0) - , z = "z".charCodeAt(0) - , space = " ".charCodeAt(0) - , eq = "=".charCodeAt(0) - , cr = "\n".charCodeAt(0) - -function parse (c) { - if (this._state === ERR) return - - for ( var i = 0, l = c.length - ; i < l - ; this._position++, this._fieldPos++, i++) { - // console.error("top of loop, size="+this._size) - - var b = c[i] - - if (this._size >= 0 && this._fieldPos > this._size) { - error(this, "field exceeds length="+this._size) - return - } - - switch (this._state) { - case ERR: return - - case SIZE: - // console.error("parsing size, b=%d, rest=%j", b, c.slice(i).toString()) - if (b === space) { - this._state = KEY - // this._fieldPos = this._sizeBuf.length - this._size = parseInt(new Buffer(this._sizeBuf).toString(), 10) - this._sizeBuf.length = 0 - continue - } - if (b < _0 || b > _9) { - error(this, "expected [" + _0 + ".." + _9 + "], got " + b) - return - } - this._sizeBuf.push(b) - continue - - case KEY: - // can be any char except =, not > size. - if (b === eq) { - this._state = VAL - this._key = new Buffer(this._keyBuf).toString() - if (keyTrans[this._key]) this._key = keyTrans[this._key] - this._keyBuf.length = 0 - continue - } - this._keyBuf.push(b) - continue - - case VAL: - // field must end with cr - if (this._fieldPos === this._size - 1) { - // console.error("finished with "+this._key) - if (b !== cr) { - error(this, "expected \\n at end of field") - return - } - var val = new Buffer(this._valBuf).toString() - if (numeric[this._key]) { - val = parseFloat(val) - } - this.fields[this._key] = val - - this._valBuf.length = 0 - this._state = SIZE - this._size = -1 - this._fieldPos = -1 - continue - } - this._valBuf.push(b) - continue - } - } -} - -function error (me, msg) { - msg = "invalid header: " + msg - + "\nposition=" + me._position - + "\nfield position=" + me._fieldPos - - me.error(msg) - me.state = ERR -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/extract.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/extract.js deleted file mode 100644 index fe1bb976..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/extract.js +++ /dev/null @@ -1,94 +0,0 @@ -// give it a tarball and a path, and it'll dump the contents - -module.exports = Extract - -var tar = require("../tar.js") - , fstream = require("fstream") - , inherits = require("inherits") - , path = require("path") - -function Extract (opts) { - if (!(this instanceof Extract)) return new Extract(opts) - tar.Parse.apply(this) - - if (typeof opts !== "object") { - opts = { path: opts } - } - - // better to drop in cwd? seems more standard. - opts.path = opts.path || path.resolve("node-tar-extract") - opts.type = "Directory" - opts.Directory = true - - // similar to --strip or --strip-components - opts.strip = +opts.strip - if (!opts.strip || opts.strip <= 0) opts.strip = 0 - - this._fst = fstream.Writer(opts) - - this.pause() - var me = this - - // Hardlinks in tarballs are relative to the root - // of the tarball. So, they need to be resolved against - // the target directory in order to be created properly. - me.on("entry", function (entry) { - // if there's a "strip" argument, then strip off that many - // path components. - if (opts.strip) { - var p = entry.path.split("/").slice(opts.strip).join("/") - entry.path = entry.props.path = p - if (entry.linkpath) { - var lp = entry.linkpath.split("/").slice(opts.strip).join("/") - entry.linkpath = entry.props.linkpath = lp - } - } - if (entry.type === "Link") { - entry.linkpath = entry.props.linkpath = - path.join(opts.path, path.join("/", entry.props.linkpath)) - } - - if (entry.type === "SymbolicLink") { - var dn = path.dirname(entry.path) || "" - var linkpath = entry.props.linkpath - var target = path.resolve(opts.path, dn, linkpath) - if (target.indexOf(opts.path) !== 0) { - linkpath = path.join(opts.path, path.join("/", linkpath)) - } - entry.linkpath = entry.props.linkpath = linkpath - } - }) - - this._fst.on("ready", function () { - me.pipe(me._fst, { end: false }) - me.resume() - }) - - this._fst.on('error', function(err) { - me.emit('error', err) - }) - - this._fst.on('drain', function() { - me.emit('drain') - }) - - // this._fst.on("end", function () { - // console.error("\nEEEE Extract End", me._fst.path) - // }) - - this._fst.on("close", function () { - // console.error("\nEEEE Extract End", me._fst.path) - me.emit("finish") - me.emit("end") - me.emit("close") - }) -} - -inherits(Extract, tar.Parse) - -Extract.prototype._streamEnd = function () { - var me = this - if (!me._ended || me._entry) me.error("unexpected eof") - me._fst.end() - // my .end() is coming later. -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/global-header-writer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/global-header-writer.js deleted file mode 100644 index 0bfc7b80..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/global-header-writer.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = GlobalHeaderWriter - -var ExtendedHeaderWriter = require("./extended-header-writer.js") - , inherits = require("inherits") - -inherits(GlobalHeaderWriter, ExtendedHeaderWriter) - -function GlobalHeaderWriter (props) { - if (!(this instanceof GlobalHeaderWriter)) { - return new GlobalHeaderWriter(props) - } - ExtendedHeaderWriter.call(this, props) - this.props.type = "g" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/header.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/header.js deleted file mode 100644 index 05b237c0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/header.js +++ /dev/null @@ -1,385 +0,0 @@ -// parse a 512-byte header block to a data object, or vice-versa -// If the data won't fit nicely in a simple header, then generate -// the appropriate extended header file, and return that. - -module.exports = TarHeader - -var tar = require("../tar.js") - , fields = tar.fields - , fieldOffs = tar.fieldOffs - , fieldEnds = tar.fieldEnds - , fieldSize = tar.fieldSize - , numeric = tar.numeric - , assert = require("assert").ok - , space = " ".charCodeAt(0) - , slash = "/".charCodeAt(0) - , bslash = process.platform === "win32" ? "\\".charCodeAt(0) : null - -function TarHeader (block) { - if (!(this instanceof TarHeader)) return new TarHeader(block) - if (block) this.decode(block) -} - -TarHeader.prototype = - { decode : decode - , encode: encode - , calcSum: calcSum - , checkSum: checkSum - } - -TarHeader.parseNumeric = parseNumeric -TarHeader.encode = encode -TarHeader.decode = decode - -// note that this will only do the normal ustar header, not any kind -// of extended posix header file. If something doesn't fit comfortably, -// then it will set obj.needExtended = true, and set the block to -// the closest approximation. -function encode (obj) { - if (!obj && !(this instanceof TarHeader)) throw new Error( - "encode must be called on a TarHeader, or supplied an object") - - obj = obj || this - var block = obj.block = new Buffer(512) - - // if the object has a "prefix", then that's actually an extension of - // the path field. - if (obj.prefix) { - // console.error("%% header encoding, got a prefix", obj.prefix) - obj.path = obj.prefix + "/" + obj.path - // console.error("%% header encoding, prefixed path", obj.path) - obj.prefix = "" - } - - obj.needExtended = false - - if (obj.mode) { - if (typeof obj.mode === "string") obj.mode = parseInt(obj.mode, 8) - obj.mode = obj.mode & 0777 - } - - for (var f = 0; fields[f] !== null; f ++) { - var field = fields[f] - , off = fieldOffs[f] - , end = fieldEnds[f] - , ret - - switch (field) { - case "cksum": - // special, done below, after all the others - break - - case "prefix": - // special, this is an extension of the "path" field. - // console.error("%% header encoding, skip prefix later") - break - - case "type": - // convert from long name to a single char. - var type = obj.type || "0" - if (type.length > 1) { - type = tar.types[obj.type] - if (!type) type = "0" - } - writeText(block, off, end, type) - break - - case "path": - // uses the "prefix" field if > 100 bytes, but <= 255 - var pathLen = Buffer.byteLength(obj.path) - , pathFSize = fieldSize[fields.path] - , prefFSize = fieldSize[fields.prefix] - - // paths between 100 and 255 should use the prefix field. - // longer than 255 - if (pathLen > pathFSize && - pathLen <= pathFSize + prefFSize) { - // need to find a slash somewhere in the middle so that - // path and prefix both fit in their respective fields - var searchStart = pathLen - 1 - pathFSize - , searchEnd = prefFSize - , found = false - , pathBuf = new Buffer(obj.path) - - for ( var s = searchStart - ; (s <= searchEnd) - ; s ++ ) { - if (pathBuf[s] === slash || pathBuf[s] === bslash) { - found = s - break - } - } - - if (found !== false) { - prefix = pathBuf.slice(0, found).toString("utf8") - path = pathBuf.slice(found + 1).toString("utf8") - - ret = writeText(block, off, end, path) - off = fieldOffs[fields.prefix] - end = fieldEnds[fields.prefix] - // console.error("%% header writing prefix", off, end, prefix) - ret = writeText(block, off, end, prefix) || ret - break - } - } - - // paths less than 100 chars don't need a prefix - // and paths longer than 255 need an extended header and will fail - // on old implementations no matter what we do here. - // Null out the prefix, and fallthrough to default. - // console.error("%% header writing no prefix") - var poff = fieldOffs[fields.prefix] - , pend = fieldEnds[fields.prefix] - writeText(block, poff, pend, "") - // fallthrough - - // all other fields are numeric or text - default: - ret = numeric[field] - ? writeNumeric(block, off, end, obj[field]) - : writeText(block, off, end, obj[field] || "") - break - } - obj.needExtended = obj.needExtended || ret - } - - var off = fieldOffs[fields.cksum] - , end = fieldEnds[fields.cksum] - - writeNumeric(block, off, end, calcSum.call(this, block)) - - return block -} - -// if it's a negative number, or greater than will fit, -// then use write256. -var MAXNUM = { 12: 077777777777 - , 11: 07777777777 - , 8 : 07777777 - , 7 : 0777777 } -function writeNumeric (block, off, end, num) { - var writeLen = end - off - , maxNum = MAXNUM[writeLen] || 0 - - num = num || 0 - // console.error(" numeric", num) - - if (num instanceof Date || - Object.prototype.toString.call(num) === "[object Date]") { - num = num.getTime() / 1000 - } - - if (num > maxNum || num < 0) { - write256(block, off, end, num) - // need an extended header if negative or too big. - return true - } - - // god, tar is so annoying - // if the string is small enough, you should put a space - // between the octal string and the \0, but if it doesn't - // fit, then don't. - var numStr = Math.floor(num).toString(8) - if (num < MAXNUM[writeLen - 1]) numStr += " " - - // pad with "0" chars - if (numStr.length < writeLen) { - numStr = (new Array(writeLen - numStr.length).join("0")) + numStr - } - - if (numStr.length !== writeLen - 1) { - throw new Error("invalid length: " + JSON.stringify(numStr) + "\n" + - "expected: "+writeLen) - } - block.write(numStr, off, writeLen, "utf8") - block[end - 1] = 0 -} - -function write256 (block, off, end, num) { - var buf = block.slice(off, end) - var positive = num >= 0 - buf[0] = positive ? 0x80 : 0xFF - - // get the number as a base-256 tuple - if (!positive) num *= -1 - var tuple = [] - do { - var n = num % 256 - tuple.push(n) - num = (num - n) / 256 - } while (num) - - var bytes = tuple.length - - var fill = buf.length - bytes - for (var i = 1; i < fill; i ++) { - buf[i] = positive ? 0 : 0xFF - } - - // tuple is a base256 number, with [0] as the *least* significant byte - // if it's negative, then we need to flip all the bits once we hit the - // first non-zero bit. The 2's-complement is (0x100 - n), and the 1's- - // complement is (0xFF - n). - var zero = true - for (i = bytes; i > 0; i --) { - var byte = tuple[bytes - i] - if (positive) buf[fill + i] = byte - else if (zero && byte === 0) buf[fill + i] = 0 - else if (zero) { - zero = false - buf[fill + i] = 0x100 - byte - } else buf[fill + i] = 0xFF - byte - } -} - -function writeText (block, off, end, str) { - // strings are written as utf8, then padded with \0 - var strLen = Buffer.byteLength(str) - , writeLen = Math.min(strLen, end - off) - // non-ascii fields need extended headers - // long fields get truncated - , needExtended = strLen !== str.length || strLen > writeLen - - // write the string, and null-pad - if (writeLen > 0) block.write(str, off, writeLen, "utf8") - for (var i = off + writeLen; i < end; i ++) block[i] = 0 - - return needExtended -} - -function calcSum (block) { - block = block || this.block - assert(Buffer.isBuffer(block) && block.length === 512) - - if (!block) throw new Error("Need block to checksum") - - // now figure out what it would be if the cksum was " " - var sum = 0 - , start = fieldOffs[fields.cksum] - , end = fieldEnds[fields.cksum] - - for (var i = 0; i < fieldOffs[fields.cksum]; i ++) { - sum += block[i] - } - - for (var i = start; i < end; i ++) { - sum += space - } - - for (var i = end; i < 512; i ++) { - sum += block[i] - } - - return sum -} - - -function checkSum (block) { - var sum = calcSum.call(this, block) - block = block || this.block - - var cksum = block.slice(fieldOffs[fields.cksum], fieldEnds[fields.cksum]) - cksum = parseNumeric(cksum) - - return cksum === sum -} - -function decode (block) { - block = block || this.block - assert(Buffer.isBuffer(block) && block.length === 512) - - this.block = block - this.cksumValid = this.checkSum() - - var prefix = null - - // slice off each field. - for (var f = 0; fields[f] !== null; f ++) { - var field = fields[f] - , val = block.slice(fieldOffs[f], fieldEnds[f]) - - switch (field) { - case "ustar": - // if not ustar, then everything after that is just padding. - if (val.toString() !== "ustar\0") { - this.ustar = false - return - } else { - // console.error("ustar:", val, val.toString()) - this.ustar = val.toString() - } - break - - // prefix is special, since it might signal the xstar header - case "prefix": - var atime = parseNumeric(val.slice(131, 131 + 12)) - , ctime = parseNumeric(val.slice(131 + 12, 131 + 12 + 12)) - if ((val[130] === 0 || val[130] === space) && - typeof atime === "number" && - typeof ctime === "number" && - val[131 + 12] === space && - val[131 + 12 + 12] === space) { - this.atime = atime - this.ctime = ctime - val = val.slice(0, 130) - } - prefix = val.toString("utf8").replace(/\0+$/, "") - // console.error("%% header reading prefix", prefix) - break - - // all other fields are null-padding text - // or a number. - default: - if (numeric[field]) { - this[field] = parseNumeric(val) - } else { - this[field] = val.toString("utf8").replace(/\0+$/, "") - } - break - } - } - - // if we got a prefix, then prepend it to the path. - if (prefix) { - this.path = prefix + "/" + this.path - // console.error("%% header got a prefix", this.path) - } -} - -function parse256 (buf) { - // first byte MUST be either 80 or FF - // 80 for positive, FF for 2's comp - var positive - if (buf[0] === 0x80) positive = true - else if (buf[0] === 0xFF) positive = false - else return null - - // build up a base-256 tuple from the least sig to the highest - var zero = false - , tuple = [] - for (var i = buf.length - 1; i > 0; i --) { - var byte = buf[i] - if (positive) tuple.push(byte) - else if (zero && byte === 0) tuple.push(0) - else if (zero) { - zero = false - tuple.push(0x100 - byte) - } else tuple.push(0xFF - byte) - } - - for (var sum = 0, i = 0, l = tuple.length; i < l; i ++) { - sum += tuple[i] * Math.pow(256, i) - } - - return positive ? sum : -1 * sum -} - -function parseNumeric (f) { - if (f[0] & 0x80) return parse256(f) - - var str = f.toString("utf8").split("\0")[0].trim() - , res = parseInt(str, 8) - - return isNaN(res) ? null : res -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/pack.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/pack.js deleted file mode 100644 index 5a3bb95a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/pack.js +++ /dev/null @@ -1,236 +0,0 @@ -// pipe in an fstream, and it'll make a tarball. -// key-value pair argument is global extended header props. - -module.exports = Pack - -var EntryWriter = require("./entry-writer.js") - , Stream = require("stream").Stream - , path = require("path") - , inherits = require("inherits") - , GlobalHeaderWriter = require("./global-header-writer.js") - , collect = require("fstream").collect - , eof = new Buffer(512) - -for (var i = 0; i < 512; i ++) eof[i] = 0 - -inherits(Pack, Stream) - -function Pack (props) { - // console.error("-- p ctor") - var me = this - if (!(me instanceof Pack)) return new Pack(props) - - if (props) me._noProprietary = props.noProprietary - else me._noProprietary = false - - me._global = props - - me.readable = true - me.writable = true - me._buffer = [] - // console.error("-- -- set current to null in ctor") - me._currentEntry = null - me._processing = false - - me._pipeRoot = null - me.on("pipe", function (src) { - if (src.root === me._pipeRoot) return - me._pipeRoot = src - src.on("end", function () { - me._pipeRoot = null - }) - me.add(src) - }) -} - -Pack.prototype.addGlobal = function (props) { - // console.error("-- p addGlobal") - if (this._didGlobal) return - this._didGlobal = true - - var me = this - GlobalHeaderWriter(props) - .on("data", function (c) { - me.emit("data", c) - }) - .end() -} - -Pack.prototype.add = function (stream) { - if (this._global && !this._didGlobal) this.addGlobal(this._global) - - if (this._ended) return this.emit("error", new Error("add after end")) - - collect(stream) - this._buffer.push(stream) - this._process() - this._needDrain = this._buffer.length > 0 - return !this._needDrain -} - -Pack.prototype.pause = function () { - this._paused = true - if (this._currentEntry) this._currentEntry.pause() - this.emit("pause") -} - -Pack.prototype.resume = function () { - this._paused = false - if (this._currentEntry) this._currentEntry.resume() - this.emit("resume") - this._process() -} - -Pack.prototype.end = function () { - this._ended = true - this._buffer.push(eof) - this._process() -} - -Pack.prototype._process = function () { - var me = this - if (me._paused || me._processing) { - return - } - - var entry = me._buffer.shift() - - if (!entry) { - if (me._needDrain) { - me.emit("drain") - } - return - } - - if (entry.ready === false) { - // console.error("-- entry is not ready", entry) - me._buffer.unshift(entry) - entry.on("ready", function () { - // console.error("-- -- ready!", entry) - me._process() - }) - return - } - - me._processing = true - - if (entry === eof) { - // need 2 ending null blocks. - me.emit("data", eof) - me.emit("data", eof) - me.emit("end") - me.emit("close") - return - } - - // Change the path to be relative to the root dir that was - // added to the tarball. - // - // XXX This should be more like how -C works, so you can - // explicitly set a root dir, and also explicitly set a pathname - // in the tarball to use. That way we can skip a lot of extra - // work when resolving symlinks for bundled dependencies in npm. - - var root = path.dirname((entry.root || entry).path); - if (me._global && me._global.fromBase && entry.root && entry.root.path) { - // user set 'fromBase: true' indicating tar root should be directory itself - root = entry.root.path; - } - - var wprops = {} - - Object.keys(entry.props || {}).forEach(function (k) { - wprops[k] = entry.props[k] - }) - - if (me._noProprietary) wprops.noProprietary = true - - wprops.path = path.relative(root, entry.path || '') - - // actually not a matter of opinion or taste. - if (process.platform === "win32") { - wprops.path = wprops.path.replace(/\\/g, "/") - } - - if (!wprops.type) - wprops.type = 'Directory' - - switch (wprops.type) { - // sockets not supported - case "Socket": - return - - case "Directory": - wprops.path += "/" - wprops.size = 0 - break - - case "Link": - var lp = path.resolve(path.dirname(entry.path), entry.linkpath) - wprops.linkpath = path.relative(root, lp) || "." - wprops.size = 0 - break - - case "SymbolicLink": - var lp = path.resolve(path.dirname(entry.path), entry.linkpath) - wprops.linkpath = path.relative(path.dirname(entry.path), lp) || "." - wprops.size = 0 - break - } - - // console.error("-- new writer", wprops) - // if (!wprops.type) { - // // console.error("-- no type?", entry.constructor.name, entry) - // } - - // console.error("-- -- set current to new writer", wprops.path) - var writer = me._currentEntry = EntryWriter(wprops) - - writer.parent = me - - // writer.on("end", function () { - // // console.error("-- -- writer end", writer.path) - // }) - - writer.on("data", function (c) { - me.emit("data", c) - }) - - writer.on("header", function () { - Buffer.prototype.toJSON = function () { - return this.toString().split(/\0/).join(".") - } - // console.error("-- -- writer header %j", writer.props) - if (writer.props.size === 0) nextEntry() - }) - writer.on("close", nextEntry) - - var ended = false - function nextEntry () { - if (ended) return - ended = true - - // console.error("-- -- writer close", writer.path) - // console.error("-- -- set current to null", wprops.path) - me._currentEntry = null - me._processing = false - me._process() - } - - writer.on("error", function (er) { - // console.error("-- -- writer error", writer.path) - me.emit("error", er) - }) - - // if it's the root, then there's no need to add its entries, - // or data, since they'll be added directly. - if (entry === me._pipeRoot) { - // console.error("-- is the root, don't auto-add") - writer.add = null - } - - entry.pipe(writer) -} - -Pack.prototype.destroy = function () {} -Pack.prototype.write = function () {} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/parse.js deleted file mode 100644 index 600ad782..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/lib/parse.js +++ /dev/null @@ -1,275 +0,0 @@ - -// A writable stream. -// It emits "entry" events, which provide a readable stream that has -// header info attached. - -module.exports = Parse.create = Parse - -var stream = require("stream") - , Stream = stream.Stream - , BlockStream = require("block-stream") - , tar = require("../tar.js") - , TarHeader = require("./header.js") - , Entry = require("./entry.js") - , BufferEntry = require("./buffer-entry.js") - , ExtendedHeader = require("./extended-header.js") - , assert = require("assert").ok - , inherits = require("inherits") - , fstream = require("fstream") - -// reading a tar is a lot like reading a directory -// However, we're actually not going to run the ctor, -// since it does a stat and various other stuff. -// This inheritance gives us the pause/resume/pipe -// behavior that is desired. -inherits(Parse, fstream.Reader) - -function Parse () { - var me = this - if (!(me instanceof Parse)) return new Parse() - - // doesn't apply fstream.Reader ctor? - // no, becasue we don't want to stat/etc, we just - // want to get the entry/add logic from .pipe() - Stream.apply(me) - - me.writable = true - me.readable = true - me._stream = new BlockStream(512) - me.position = 0 - me._ended = false - - me._stream.on("error", function (e) { - me.emit("error", e) - }) - - me._stream.on("data", function (c) { - me._process(c) - }) - - me._stream.on("end", function () { - me._streamEnd() - }) - - me._stream.on("drain", function () { - me.emit("drain") - }) -} - -// overridden in Extract class, since it needs to -// wait for its DirWriter part to finish before -// emitting "end" -Parse.prototype._streamEnd = function () { - var me = this - if (!me._ended || me._entry) me.error("unexpected eof") - me.emit("end") -} - -// a tar reader is actually a filter, not just a readable stream. -// So, you should pipe a tarball stream into it, and it needs these -// write/end methods to do that. -Parse.prototype.write = function (c) { - if (this._ended) { - // gnutar puts a LOT of nulls at the end. - // you can keep writing these things forever. - // Just ignore them. - for (var i = 0, l = c.length; i > l; i ++) { - if (c[i] !== 0) return this.error("write() after end()") - } - return - } - return this._stream.write(c) -} - -Parse.prototype.end = function (c) { - this._ended = true - return this._stream.end(c) -} - -// don't need to do anything, since we're just -// proxying the data up from the _stream. -// Just need to override the parent's "Not Implemented" -// error-thrower. -Parse.prototype._read = function () {} - -Parse.prototype._process = function (c) { - assert(c && c.length === 512, "block size should be 512") - - // one of three cases. - // 1. A new header - // 2. A part of a file/extended header - // 3. One of two or more EOF null blocks - - if (this._entry) { - var entry = this._entry - if(!entry._abort) entry.write(c) - else { - entry._remaining -= c.length - if(entry._remaining < 0) entry._remaining = 0 - } - if (entry._remaining === 0) { - entry.end() - this._entry = null - } - } else { - // either zeroes or a header - var zero = true - for (var i = 0; i < 512 && zero; i ++) { - zero = c[i] === 0 - } - - // eof is *at least* 2 blocks of nulls, and then the end of the - // file. you can put blocks of nulls between entries anywhere, - // so appending one tarball to another is technically valid. - // ending without the eof null blocks is not allowed, however. - if (zero) { - if (this._eofStarted) - this._ended = true - this._eofStarted = true - } else { - this._eofStarted = false - this._startEntry(c) - } - } - - this.position += 512 -} - -// take a header chunk, start the right kind of entry. -Parse.prototype._startEntry = function (c) { - var header = new TarHeader(c) - , self = this - , entry - , ev - , EntryType - , onend - , meta = false - - if (null === header.size || !header.cksumValid) { - var e = new Error("invalid tar file") - e.header = header - e.tar_file_offset = this.position - e.tar_block = this.position / 512 - return this.emit("error", e) - } - - switch (tar.types[header.type]) { - case "File": - case "OldFile": - case "Link": - case "SymbolicLink": - case "CharacterDevice": - case "BlockDevice": - case "Directory": - case "FIFO": - case "ContiguousFile": - case "GNUDumpDir": - // start a file. - // pass in any extended headers - // These ones consumers are typically most interested in. - EntryType = Entry - ev = "entry" - break - - case "GlobalExtendedHeader": - // extended headers that apply to the rest of the tarball - EntryType = ExtendedHeader - onend = function () { - self._global = self._global || {} - Object.keys(entry.fields).forEach(function (k) { - self._global[k] = entry.fields[k] - }) - } - ev = "globalExtendedHeader" - meta = true - break - - case "ExtendedHeader": - case "OldExtendedHeader": - // extended headers that apply to the next entry - EntryType = ExtendedHeader - onend = function () { - self._extended = entry.fields - } - ev = "extendedHeader" - meta = true - break - - case "NextFileHasLongLinkpath": - // set linkpath= in extended header - EntryType = BufferEntry - onend = function () { - self._extended = self._extended || {} - self._extended.linkpath = entry.body - } - ev = "longLinkpath" - meta = true - break - - case "NextFileHasLongPath": - case "OldGnuLongPath": - // set path= in file-extended header - EntryType = BufferEntry - onend = function () { - self._extended = self._extended || {} - self._extended.path = entry.body - } - ev = "longPath" - meta = true - break - - default: - // all the rest we skip, but still set the _entry - // member, so that we can skip over their data appropriately. - // emit an event to say that this is an ignored entry type? - EntryType = Entry - ev = "ignoredEntry" - break - } - - var global, extended - if (meta) { - global = extended = null - } else { - var global = this._global - var extended = this._extended - - // extendedHeader only applies to one entry, so once we start - // an entry, it's over. - this._extended = null - } - entry = new EntryType(header, extended, global) - entry.meta = meta - - // only proxy data events of normal files. - if (!meta) { - entry.on("data", function (c) { - me.emit("data", c) - }) - } - - if (onend) entry.on("end", onend) - - this._entry = entry - var me = this - - entry.on("pause", function () { - me.pause() - }) - - entry.on("resume", function () { - me.resume() - }) - - if (this.listeners("*").length) { - this.emit("*", ev, entry) - } - - this.emit(ev, entry) - - // Zero-byte entry. End immediately. - if (entry.props.size === 0) { - entry.end() - this._entry = null - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/LICENCE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/LICENCE deleted file mode 100644 index 74489e2e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/LICENCE +++ /dev/null @@ -1,25 +0,0 @@ -Copyright (c) Isaac Z. Schlueter -All rights reserved. - -The BSD License - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. 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. - -THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/README.md deleted file mode 100644 index c16e9c46..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# block-stream - -A stream of blocks. - -Write data into it, and it'll output data in buffer blocks the size you -specify, padding with zeroes if necessary. - -```javascript -var block = new BlockStream(512) -fs.createReadStream("some-file").pipe(block) -block.pipe(fs.createWriteStream("block-file")) -``` - -When `.end()` or `.flush()` is called, it'll pad the block with zeroes. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/block-stream-pause.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/block-stream-pause.js deleted file mode 100644 index 9328844a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/block-stream-pause.js +++ /dev/null @@ -1,70 +0,0 @@ -var BlockStream = require("../block-stream.js") - -var blockSizes = [16, 25, 1024] - , writeSizes = [4, 8, 15, 16, 17, 64, 100] - , writeCounts = [1, 10, 100] - , tap = require("tap") - -writeCounts.forEach(function (writeCount) { -blockSizes.forEach(function (blockSize) { -writeSizes.forEach(function (writeSize) { - tap.test("writeSize=" + writeSize + - " blockSize="+blockSize + - " writeCount="+writeCount, function (t) { - var f = new BlockStream(blockSize, {nopad: true }) - - var actualChunks = 0 - var actualBytes = 0 - var timeouts = 0 - - f.on("data", function (c) { - timeouts ++ - - actualChunks ++ - actualBytes += c.length - - // make sure that no data gets corrupted, and basic sanity - var before = c.toString() - // simulate a slow write operation - f.pause() - setTimeout(function () { - timeouts -- - - var after = c.toString() - t.equal(after, before, "should not change data") - - // now corrupt it, to find leaks. - for (var i = 0; i < c.length; i ++) { - c[i] = "x".charCodeAt(0) - } - f.resume() - }, 100) - }) - - f.on("end", function () { - // round up to the nearest block size - var expectChunks = Math.ceil(writeSize * writeCount * 2 / blockSize) - var expectBytes = writeSize * writeCount * 2 - t.equal(actualBytes, expectBytes, - "bytes=" + expectBytes + " writeSize=" + writeSize) - t.equal(actualChunks, expectChunks, - "chunks=" + expectChunks + " writeSize=" + writeSize) - - // wait for all the timeout checks to finish, then end the test - setTimeout(function WAIT () { - if (timeouts > 0) return setTimeout(WAIT) - t.end() - }, 100) - }) - - for (var i = 0; i < writeCount; i ++) { - var a = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0) - var b = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0) - f.write(a) - f.write(b) - } - f.end() - }) -}) }) }) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/block-stream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/block-stream.js deleted file mode 100644 index 1141f3a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/block-stream.js +++ /dev/null @@ -1,68 +0,0 @@ -var BlockStream = require("../block-stream.js") - -var blockSizes = [16, 25, 1024] - , writeSizes = [4, 8, 15, 16, 17, 64, 100] - , writeCounts = [1, 10, 100] - , tap = require("tap") - -writeCounts.forEach(function (writeCount) { -blockSizes.forEach(function (blockSize) { -writeSizes.forEach(function (writeSize) { - tap.test("writeSize=" + writeSize + - " blockSize="+blockSize + - " writeCount="+writeCount, function (t) { - var f = new BlockStream(blockSize, {nopad: true }) - - var actualChunks = 0 - var actualBytes = 0 - var timeouts = 0 - - f.on("data", function (c) { - timeouts ++ - - actualChunks ++ - actualBytes += c.length - - // make sure that no data gets corrupted, and basic sanity - var before = c.toString() - // simulate a slow write operation - setTimeout(function () { - timeouts -- - - var after = c.toString() - t.equal(after, before, "should not change data") - - // now corrupt it, to find leaks. - for (var i = 0; i < c.length; i ++) { - c[i] = "x".charCodeAt(0) - } - }, 100) - }) - - f.on("end", function () { - // round up to the nearest block size - var expectChunks = Math.ceil(writeSize * writeCount * 2 / blockSize) - var expectBytes = writeSize * writeCount * 2 - t.equal(actualBytes, expectBytes, - "bytes=" + expectBytes + " writeSize=" + writeSize) - t.equal(actualChunks, expectChunks, - "chunks=" + expectChunks + " writeSize=" + writeSize) - - // wait for all the timeout checks to finish, then end the test - setTimeout(function WAIT () { - if (timeouts > 0) return setTimeout(WAIT) - t.end() - }, 100) - }) - - for (var i = 0; i < writeCount; i ++) { - var a = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0) - var b = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0) - f.write(a) - f.write(b) - } - f.end() - }) -}) }) }) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/dropper-pause.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/dropper-pause.js deleted file mode 100644 index 93e4068e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/dropper-pause.js +++ /dev/null @@ -1,70 +0,0 @@ -var BlockStream = require("dropper") - -var blockSizes = [16, 25, 1024] - , writeSizes = [4, 8, 15, 16, 17, 64, 100] - , writeCounts = [1, 10, 100] - , tap = require("tap") - -writeCounts.forEach(function (writeCount) { -blockSizes.forEach(function (blockSize) { -writeSizes.forEach(function (writeSize) { - tap.test("writeSize=" + writeSize + - " blockSize="+blockSize + - " writeCount="+writeCount, function (t) { - var f = new BlockStream(blockSize, {nopad: true }) - - var actualChunks = 0 - var actualBytes = 0 - var timeouts = 0 - - f.on("data", function (c) { - timeouts ++ - - actualChunks ++ - actualBytes += c.length - - // make sure that no data gets corrupted, and basic sanity - var before = c.toString() - // simulate a slow write operation - f.pause() - setTimeout(function () { - timeouts -- - - var after = c.toString() - t.equal(after, before, "should not change data") - - // now corrupt it, to find leaks. - for (var i = 0; i < c.length; i ++) { - c[i] = "x".charCodeAt(0) - } - f.resume() - }, 100) - }) - - f.on("end", function () { - // round up to the nearest block size - var expectChunks = Math.ceil(writeSize * writeCount * 2 / blockSize) - var expectBytes = writeSize * writeCount * 2 - t.equal(actualBytes, expectBytes, - "bytes=" + expectBytes + " writeSize=" + writeSize) - t.equal(actualChunks, expectChunks, - "chunks=" + expectChunks + " writeSize=" + writeSize) - - // wait for all the timeout checks to finish, then end the test - setTimeout(function WAIT () { - if (timeouts > 0) return setTimeout(WAIT) - t.end() - }, 100) - }) - - for (var i = 0; i < writeCount; i ++) { - var a = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0) - var b = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0) - f.write(a) - f.write(b) - } - f.end() - }) -}) }) }) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/dropper.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/dropper.js deleted file mode 100644 index 55fa1330..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/bench/dropper.js +++ /dev/null @@ -1,68 +0,0 @@ -var BlockStream = require("dropper") - -var blockSizes = [16, 25, 1024] - , writeSizes = [4, 8, 15, 16, 17, 64, 100] - , writeCounts = [1, 10, 100] - , tap = require("tap") - -writeCounts.forEach(function (writeCount) { -blockSizes.forEach(function (blockSize) { -writeSizes.forEach(function (writeSize) { - tap.test("writeSize=" + writeSize + - " blockSize="+blockSize + - " writeCount="+writeCount, function (t) { - var f = new BlockStream(blockSize, {nopad: true }) - - var actualChunks = 0 - var actualBytes = 0 - var timeouts = 0 - - f.on("data", function (c) { - timeouts ++ - - actualChunks ++ - actualBytes += c.length - - // make sure that no data gets corrupted, and basic sanity - var before = c.toString() - // simulate a slow write operation - setTimeout(function () { - timeouts -- - - var after = c.toString() - t.equal(after, before, "should not change data") - - // now corrupt it, to find leaks. - for (var i = 0; i < c.length; i ++) { - c[i] = "x".charCodeAt(0) - } - }, 100) - }) - - f.on("end", function () { - // round up to the nearest block size - var expectChunks = Math.ceil(writeSize * writeCount * 2 / blockSize) - var expectBytes = writeSize * writeCount * 2 - t.equal(actualBytes, expectBytes, - "bytes=" + expectBytes + " writeSize=" + writeSize) - t.equal(actualChunks, expectChunks, - "chunks=" + expectChunks + " writeSize=" + writeSize) - - // wait for all the timeout checks to finish, then end the test - setTimeout(function WAIT () { - if (timeouts > 0) return setTimeout(WAIT) - t.end() - }, 100) - }) - - for (var i = 0; i < writeCount; i ++) { - var a = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0) - var b = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0) - f.write(a) - f.write(b) - } - f.end() - }) -}) }) }) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/block-stream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/block-stream.js deleted file mode 100644 index 008de035..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/block-stream.js +++ /dev/null @@ -1,209 +0,0 @@ -// write data to it, and it'll emit data in 512 byte blocks. -// if you .end() or .flush(), it'll emit whatever it's got, -// padded with nulls to 512 bytes. - -module.exports = BlockStream - -var Stream = require("stream").Stream - , inherits = require("inherits") - , assert = require("assert").ok - , debug = process.env.DEBUG ? console.error : function () {} - -function BlockStream (size, opt) { - this.writable = this.readable = true - this._opt = opt || {} - this._chunkSize = size || 512 - this._offset = 0 - this._buffer = [] - this._bufferLength = 0 - if (this._opt.nopad) this._zeroes = false - else { - this._zeroes = new Buffer(this._chunkSize) - for (var i = 0; i < this._chunkSize; i ++) { - this._zeroes[i] = 0 - } - } -} - -inherits(BlockStream, Stream) - -BlockStream.prototype.write = function (c) { - // debug(" BS write", c) - if (this._ended) throw new Error("BlockStream: write after end") - if (c && !Buffer.isBuffer(c)) c = new Buffer(c + "") - if (c.length) { - this._buffer.push(c) - this._bufferLength += c.length - } - // debug("pushed onto buffer", this._bufferLength) - if (this._bufferLength >= this._chunkSize) { - if (this._paused) { - // debug(" BS paused, return false, need drain") - this._needDrain = true - return false - } - this._emitChunk() - } - return true -} - -BlockStream.prototype.pause = function () { - // debug(" BS pausing") - this._paused = true -} - -BlockStream.prototype.resume = function () { - // debug(" BS resume") - this._paused = false - return this._emitChunk() -} - -BlockStream.prototype.end = function (chunk) { - // debug("end", chunk) - if (typeof chunk === "function") cb = chunk, chunk = null - if (chunk) this.write(chunk) - this._ended = true - this.flush() -} - -BlockStream.prototype.flush = function () { - this._emitChunk(true) -} - -BlockStream.prototype._emitChunk = function (flush) { - // debug("emitChunk flush=%j emitting=%j paused=%j", flush, this._emitting, this._paused) - - // emit a chunk - if (flush && this._zeroes) { - // debug(" BS push zeroes", this._bufferLength) - // push a chunk of zeroes - var padBytes = (this._bufferLength % this._chunkSize) - if (padBytes !== 0) padBytes = this._chunkSize - padBytes - if (padBytes > 0) { - // debug("padBytes", padBytes, this._zeroes.slice(0, padBytes)) - this._buffer.push(this._zeroes.slice(0, padBytes)) - this._bufferLength += padBytes - // debug(this._buffer[this._buffer.length - 1].length, this._bufferLength) - } - } - - if (this._emitting || this._paused) return - this._emitting = true - - // debug(" BS entering loops") - var bufferIndex = 0 - while (this._bufferLength >= this._chunkSize && - (flush || !this._paused)) { - // debug(" BS data emission loop", this._bufferLength) - - var out - , outOffset = 0 - , outHas = this._chunkSize - - while (outHas > 0 && (flush || !this._paused) ) { - // debug(" BS data inner emit loop", this._bufferLength) - var cur = this._buffer[bufferIndex] - , curHas = cur.length - this._offset - // debug("cur=", cur) - // debug("curHas=%j", curHas) - // If it's not big enough to fill the whole thing, then we'll need - // to copy multiple buffers into one. However, if it is big enough, - // then just slice out the part we want, to save unnecessary copying. - // Also, need to copy if we've already done some copying, since buffers - // can't be joined like cons strings. - if (out || curHas < outHas) { - out = out || new Buffer(this._chunkSize) - cur.copy(out, outOffset, - this._offset, this._offset + Math.min(curHas, outHas)) - } else if (cur.length === outHas && this._offset === 0) { - // shortcut -- cur is exactly long enough, and no offset. - out = cur - } else { - // slice out the piece of cur that we need. - out = cur.slice(this._offset, this._offset + outHas) - } - - if (curHas > outHas) { - // means that the current buffer couldn't be completely output - // update this._offset to reflect how much WAS written - this._offset += outHas - outHas = 0 - } else { - // output the entire current chunk. - // toss it away - outHas -= curHas - outOffset += curHas - bufferIndex ++ - this._offset = 0 - } - } - - this._bufferLength -= this._chunkSize - assert(out.length === this._chunkSize) - // debug("emitting data", out) - // debug(" BS emitting, paused=%j", this._paused, this._bufferLength) - this.emit("data", out) - out = null - } - // debug(" BS out of loops", this._bufferLength) - - // whatever is left, it's not enough to fill up a block, or we're paused - this._buffer = this._buffer.slice(bufferIndex) - if (this._paused) { - // debug(" BS paused, leaving", this._bufferLength) - this._needsDrain = true - this._emitting = false - return - } - - // if flushing, and not using null-padding, then need to emit the last - // chunk(s) sitting in the queue. We know that it's not enough to - // fill up a whole block, because otherwise it would have been emitted - // above, but there may be some offset. - var l = this._buffer.length - if (flush && !this._zeroes && l) { - if (l === 1) { - if (this._offset) { - this.emit("data", this._buffer[0].slice(this._offset)) - } else { - this.emit("data", this._buffer[0]) - } - } else { - var outHas = this._bufferLength - , out = new Buffer(outHas) - , outOffset = 0 - for (var i = 0; i < l; i ++) { - var cur = this._buffer[i] - , curHas = cur.length - this._offset - cur.copy(out, outOffset, this._offset) - this._offset = 0 - outOffset += curHas - this._bufferLength -= curHas - } - this.emit("data", out) - } - // truncate - this._buffer.length = 0 - this._bufferLength = 0 - this._offset = 0 - } - - // now either drained or ended - // debug("either draining, or ended", this._bufferLength, this._ended) - // means that we've flushed out all that we can so far. - if (this._needDrain) { - // debug("emitting drain", this._bufferLength) - this._needDrain = false - this.emit("drain") - } - - if ((this._bufferLength === 0) && this._ended && !this._endEmitted) { - // debug("emitting end", this._bufferLength) - this._endEmitted = true - this.emit("end") - } - - this._emitting = false - - // debug(" BS no longer emitting", flush, this._paused, this._emitting, this._bufferLength, this._chunkSize) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/package.json deleted file mode 100644 index 97d9d42a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "block-stream", - "description": "a stream of blocks", - "version": "0.0.8", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/block-stream.git" - }, - "engines": { - "node": "0.4 || >=0.5.8" - }, - "main": "block-stream.js", - "dependencies": { - "inherits": "~2.0.0" - }, - "devDependencies": { - "tap": "0.x" - }, - "scripts": { - "test": "tap test/" - }, - "license": "ISC", - "gitHead": "b35520314f4763af0788d65a846bb43d9c0a8f02", - "bugs": { - "url": "https://github.com/isaacs/block-stream/issues" - }, - "homepage": "https://github.com/isaacs/block-stream#readme", - "_id": "block-stream@0.0.8", - "_shasum": "0688f46da2bbf9cff0c4f68225a0cb95cbe8a46b", - "_from": "block-stream@*", - "_npmVersion": "2.10.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "0688f46da2bbf9cff0c4f68225a0cb95cbe8a46b", - "tarball": "http://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/basic.js deleted file mode 100644 index b4b93051..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/basic.js +++ /dev/null @@ -1,27 +0,0 @@ -var tap = require("tap") - , BlockStream = require("../block-stream.js") - -tap.test("basic test", function (t) { - var b = new BlockStream(16) - var fs = require("fs") - var fstr = fs.createReadStream(__filename, {encoding: "utf8"}) - fstr.pipe(b) - - var stat - t.doesNotThrow(function () { - stat = fs.statSync(__filename) - }, "stat should not throw") - - var totalBytes = 0 - b.on("data", function (c) { - t.equal(c.length, 16, "chunks should be 16 bytes long") - t.type(c, Buffer, "chunks should be buffer objects") - totalBytes += c.length - }) - b.on("end", function () { - var expectedBytes = stat.size + (16 - stat.size % 16) - t.equal(totalBytes, expectedBytes, "Should be multiple of 16") - t.end() - }) - -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/nopad-thorough.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/nopad-thorough.js deleted file mode 100644 index 7a8de88b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/nopad-thorough.js +++ /dev/null @@ -1,68 +0,0 @@ -var BlockStream = require("../block-stream.js") - -var blockSizes = [16]//, 25]//, 1024] - , writeSizes = [4, 15, 16, 17, 64 ]//, 64, 100] - , writeCounts = [1, 10]//, 100] - , tap = require("tap") - -writeCounts.forEach(function (writeCount) { -blockSizes.forEach(function (blockSize) { -writeSizes.forEach(function (writeSize) { - tap.test("writeSize=" + writeSize + - " blockSize="+blockSize + - " writeCount="+writeCount, function (t) { - var f = new BlockStream(blockSize, {nopad: true }) - - var actualChunks = 0 - var actualBytes = 0 - var timeouts = 0 - - f.on("data", function (c) { - timeouts ++ - - actualChunks ++ - actualBytes += c.length - - // make sure that no data gets corrupted, and basic sanity - var before = c.toString() - // simulate a slow write operation - setTimeout(function () { - timeouts -- - - var after = c.toString() - t.equal(after, before, "should not change data") - - // now corrupt it, to find leaks. - for (var i = 0; i < c.length; i ++) { - c[i] = "x".charCodeAt(0) - } - }, 100) - }) - - f.on("end", function () { - // round up to the nearest block size - var expectChunks = Math.ceil(writeSize * writeCount * 2 / blockSize) - var expectBytes = writeSize * writeCount * 2 - t.equal(actualBytes, expectBytes, - "bytes=" + expectBytes + " writeSize=" + writeSize) - t.equal(actualChunks, expectChunks, - "chunks=" + expectChunks + " writeSize=" + writeSize) - - // wait for all the timeout checks to finish, then end the test - setTimeout(function WAIT () { - if (timeouts > 0) return setTimeout(WAIT) - t.end() - }, 100) - }) - - for (var i = 0; i < writeCount; i ++) { - var a = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0) - var b = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0) - f.write(a) - f.write(b) - } - f.end() - }) -}) }) }) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/nopad.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/nopad.js deleted file mode 100644 index 6d38429f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/nopad.js +++ /dev/null @@ -1,57 +0,0 @@ -var BlockStream = require("../") -var tap = require("tap") - - -tap.test("don't pad, small writes", function (t) { - var f = new BlockStream(16, { nopad: true }) - t.plan(1) - - f.on("data", function (c) { - t.equal(c.toString(), "abc", "should get 'abc'") - }) - - f.on("end", function () { t.end() }) - - f.write(new Buffer("a")) - f.write(new Buffer("b")) - f.write(new Buffer("c")) - f.end() -}) - -tap.test("don't pad, exact write", function (t) { - var f = new BlockStream(16, { nopad: true }) - t.plan(1) - - var first = true - f.on("data", function (c) { - if (first) { - first = false - t.equal(c.toString(), "abcdefghijklmnop", "first chunk") - } else { - t.fail("should only get one") - } - }) - - f.on("end", function () { t.end() }) - - f.end(new Buffer("abcdefghijklmnop")) -}) - -tap.test("don't pad, big write", function (t) { - var f = new BlockStream(16, { nopad: true }) - t.plan(2) - - var first = true - f.on("data", function (c) { - if (first) { - first = false - t.equal(c.toString(), "abcdefghijklmnop", "first chunk") - } else { - t.equal(c.toString(), "q") - } - }) - - f.on("end", function () { t.end() }) - - f.end(new Buffer("abcdefghijklmnopq")) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/pause-resume.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/pause-resume.js deleted file mode 100644 index 64d0d091..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/pause-resume.js +++ /dev/null @@ -1,73 +0,0 @@ -var BlockStream = require("../block-stream.js") - -var blockSizes = [16] - , writeSizes = [15, 16, 17] - , writeCounts = [1, 10]//, 100] - , tap = require("tap") - -writeCounts.forEach(function (writeCount) { -blockSizes.forEach(function (blockSize) { -writeSizes.forEach(function (writeSize) { - tap.test("writeSize=" + writeSize + - " blockSize="+blockSize + - " writeCount="+writeCount, function (t) { - var f = new BlockStream(blockSize) - - var actualChunks = 0 - var actualBytes = 0 - var timeouts = 0 - var paused = false - - f.on("data", function (c) { - timeouts ++ - t.notOk(paused, "should not be paused when emitting data") - - actualChunks ++ - actualBytes += c.length - - // make sure that no data gets corrupted, and basic sanity - var before = c.toString() - // simulate a slow write operation - paused = true - f.pause() - process.nextTick(function () { - var after = c.toString() - t.equal(after, before, "should not change data") - - // now corrupt it, to find leaks. - for (var i = 0; i < c.length; i ++) { - c[i] = "x".charCodeAt(0) - } - paused = false - f.resume() - timeouts -- - }) - }) - - f.on("end", function () { - // round up to the nearest block size - var expectChunks = Math.ceil(writeSize * writeCount * 2 / blockSize) - var expectBytes = expectChunks * blockSize - t.equal(actualBytes, expectBytes, - "bytes=" + expectBytes + " writeSize=" + writeSize) - t.equal(actualChunks, expectChunks, - "chunks=" + expectChunks + " writeSize=" + writeSize) - - // wait for all the timeout checks to finish, then end the test - setTimeout(function WAIT () { - if (timeouts > 0) return setTimeout(WAIT) - t.end() - }, 200) - }) - - for (var i = 0; i < writeCount; i ++) { - var a = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0) - var b = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0) - f.write(a) - f.write(b) - } - f.end() - }) -}) }) }) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/thorough.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/thorough.js deleted file mode 100644 index 1cc9ea08..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/thorough.js +++ /dev/null @@ -1,68 +0,0 @@ -var BlockStream = require("../block-stream.js") - -var blockSizes = [16]//, 25]//, 1024] - , writeSizes = [4, 15, 16, 17, 64 ]//, 64, 100] - , writeCounts = [1, 10]//, 100] - , tap = require("tap") - -writeCounts.forEach(function (writeCount) { -blockSizes.forEach(function (blockSize) { -writeSizes.forEach(function (writeSize) { - tap.test("writeSize=" + writeSize + - " blockSize="+blockSize + - " writeCount="+writeCount, function (t) { - var f = new BlockStream(blockSize) - - var actualChunks = 0 - var actualBytes = 0 - var timeouts = 0 - - f.on("data", function (c) { - timeouts ++ - - actualChunks ++ - actualBytes += c.length - - // make sure that no data gets corrupted, and basic sanity - var before = c.toString() - // simulate a slow write operation - setTimeout(function () { - timeouts -- - - var after = c.toString() - t.equal(after, before, "should not change data") - - // now corrupt it, to find leaks. - for (var i = 0; i < c.length; i ++) { - c[i] = "x".charCodeAt(0) - } - }, 100) - }) - - f.on("end", function () { - // round up to the nearest block size - var expectChunks = Math.ceil(writeSize * writeCount * 2 / blockSize) - var expectBytes = expectChunks * blockSize - t.equal(actualBytes, expectBytes, - "bytes=" + expectBytes + " writeSize=" + writeSize) - t.equal(actualChunks, expectChunks, - "chunks=" + expectChunks + " writeSize=" + writeSize) - - // wait for all the timeout checks to finish, then end the test - setTimeout(function WAIT () { - if (timeouts > 0) return setTimeout(WAIT) - t.end() - }, 100) - }) - - for (var i = 0; i < writeCount; i ++) { - var a = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0) - var b = new Buffer(writeSize); - for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0) - f.write(a) - f.write(b) - } - f.end() - }) -}) }) }) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/two-stream.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/two-stream.js deleted file mode 100644 index c6db79a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/node_modules/block-stream/test/two-stream.js +++ /dev/null @@ -1,59 +0,0 @@ -var log = console.log, - assert = require( 'assert' ), - BlockStream = require("../block-stream.js"), - isize = 0, tsize = 0, fsize = 0, psize = 0, i = 0, - filter = null, paper = null, stack = null, - -// a source data buffer -tsize = 1 * 1024; // <- 1K -stack = new Buffer( tsize ); -for ( ; i < tsize; i++) stack[i] = "x".charCodeAt(0); - -isize = 1 * 1024; // <- initial packet size with 4K no bug! -fsize = 2 * 1024 ; // <- first block-stream size -psize = Math.ceil( isize / 6 ); // <- second block-stream size - -fexpected = Math.ceil( tsize / fsize ); // <- packets expected for first -pexpected = Math.ceil( tsize / psize ); // <- packets expected for second - - -filter = new BlockStream( fsize, { nopad : true } ); -paper = new BlockStream( psize, { nopad : true } ); - - -var fcounter = 0; -filter.on( 'data', function (c) { - // verify that they're not null-padded - for (var i = 0; i < c.length; i ++) { - assert.strictEqual(c[i], "x".charCodeAt(0)) - } - ++fcounter; -} ); - -var pcounter = 0; -paper.on( 'data', function (c) { - // verify that they're not null-padded - for (var i = 0; i < c.length; i ++) { - assert.strictEqual(c[i], "x".charCodeAt(0)) - } - ++pcounter; -} ); - -filter.pipe( paper ); - -filter.on( 'end', function () { - log("fcounter: %s === %s", fcounter, fexpected) - assert.strictEqual( fcounter, fexpected ); -} ); - -paper.on( 'end', function () { - log("pcounter: %s === %s", pcounter, pexpected); - assert.strictEqual( pcounter, pexpected ); -} ); - - -for ( i = 0, j = isize; j <= tsize; j += isize ) { - filter.write( stack.slice( j - isize, j ) ); -} - -filter.end(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/package.json deleted file mode 100644 index 23921a83..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "tar", - "description": "tar for node", - "version": "2.2.1", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-tar.git" - }, - "main": "tar.js", - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - }, - "devDependencies": { - "graceful-fs": "^4.1.2", - "rimraf": "1.x", - "tap": "0.x", - "mkdirp": "^0.5.0" - }, - "license": "ISC", - "gitHead": "52237e39d2eb68d22a32d9a98f1d762189fe6a3d", - "bugs": { - "url": "https://github.com/isaacs/node-tar/issues" - }, - "homepage": "https://github.com/isaacs/node-tar#readme", - "_id": "tar@2.2.1", - "_shasum": "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1", - "_from": "tar@>=2.2.1 <2.3.0", - "_npmVersion": "2.14.3", - "_nodeVersion": "2.2.2", - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" - }, - "dist": { - "shasum": "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1", - "tarball": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "soldair", - "email": "soldair@gmail.com" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/tar.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/tar.js deleted file mode 100644 index a81298b9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/tar.js +++ /dev/null @@ -1,173 +0,0 @@ -// field paths that every tar file must have. -// header is padded to 512 bytes. -var f = 0 - , fields = {} - , path = fields.path = f++ - , mode = fields.mode = f++ - , uid = fields.uid = f++ - , gid = fields.gid = f++ - , size = fields.size = f++ - , mtime = fields.mtime = f++ - , cksum = fields.cksum = f++ - , type = fields.type = f++ - , linkpath = fields.linkpath = f++ - , headerSize = 512 - , blockSize = 512 - , fieldSize = [] - -fieldSize[path] = 100 -fieldSize[mode] = 8 -fieldSize[uid] = 8 -fieldSize[gid] = 8 -fieldSize[size] = 12 -fieldSize[mtime] = 12 -fieldSize[cksum] = 8 -fieldSize[type] = 1 -fieldSize[linkpath] = 100 - -// "ustar\0" may introduce another bunch of headers. -// these are optional, and will be nulled out if not present. - -var ustar = fields.ustar = f++ - , ustarver = fields.ustarver = f++ - , uname = fields.uname = f++ - , gname = fields.gname = f++ - , devmaj = fields.devmaj = f++ - , devmin = fields.devmin = f++ - , prefix = fields.prefix = f++ - , fill = fields.fill = f++ - -// terminate fields. -fields[f] = null - -fieldSize[ustar] = 6 -fieldSize[ustarver] = 2 -fieldSize[uname] = 32 -fieldSize[gname] = 32 -fieldSize[devmaj] = 8 -fieldSize[devmin] = 8 -fieldSize[prefix] = 155 -fieldSize[fill] = 12 - -// nb: prefix field may in fact be 130 bytes of prefix, -// a null char, 12 bytes for atime, 12 bytes for ctime. -// -// To recognize this format: -// 1. prefix[130] === ' ' or '\0' -// 2. atime and ctime are octal numeric values -// 3. atime and ctime have ' ' in their last byte - -var fieldEnds = {} - , fieldOffs = {} - , fe = 0 -for (var i = 0; i < f; i ++) { - fieldOffs[i] = fe - fieldEnds[i] = (fe += fieldSize[i]) -} - -// build a translation table of field paths. -Object.keys(fields).forEach(function (f) { - if (fields[f] !== null) fields[fields[f]] = f -}) - -// different values of the 'type' field -// paths match the values of Stats.isX() functions, where appropriate -var types = - { 0: "File" - , "\0": "OldFile" // like 0 - , "": "OldFile" - , 1: "Link" - , 2: "SymbolicLink" - , 3: "CharacterDevice" - , 4: "BlockDevice" - , 5: "Directory" - , 6: "FIFO" - , 7: "ContiguousFile" // like 0 - // posix headers - , g: "GlobalExtendedHeader" // k=v for the rest of the archive - , x: "ExtendedHeader" // k=v for the next file - // vendor-specific stuff - , A: "SolarisACL" // skip - , D: "GNUDumpDir" // like 5, but with data, which should be skipped - , I: "Inode" // metadata only, skip - , K: "NextFileHasLongLinkpath" // data = link path of next file - , L: "NextFileHasLongPath" // data = path of next file - , M: "ContinuationFile" // skip - , N: "OldGnuLongPath" // like L - , S: "SparseFile" // skip - , V: "TapeVolumeHeader" // skip - , X: "OldExtendedHeader" // like x - } - -Object.keys(types).forEach(function (t) { - types[types[t]] = types[types[t]] || t -}) - -// values for the mode field -var modes = - { suid: 04000 // set uid on extraction - , sgid: 02000 // set gid on extraction - , svtx: 01000 // set restricted deletion flag on dirs on extraction - , uread: 0400 - , uwrite: 0200 - , uexec: 0100 - , gread: 040 - , gwrite: 020 - , gexec: 010 - , oread: 4 - , owrite: 2 - , oexec: 1 - , all: 07777 - } - -var numeric = - { mode: true - , uid: true - , gid: true - , size: true - , mtime: true - , devmaj: true - , devmin: true - , cksum: true - , atime: true - , ctime: true - , dev: true - , ino: true - , nlink: true - } - -Object.keys(modes).forEach(function (t) { - modes[modes[t]] = modes[modes[t]] || t -}) - -var knownExtended = - { atime: true - , charset: true - , comment: true - , ctime: true - , gid: true - , gname: true - , linkpath: true - , mtime: true - , path: true - , realtime: true - , security: true - , size: true - , uid: true - , uname: true } - - -exports.fields = fields -exports.fieldSize = fieldSize -exports.fieldOffs = fieldOffs -exports.fieldEnds = fieldEnds -exports.types = types -exports.modes = modes -exports.numeric = numeric -exports.headerSize = headerSize -exports.blockSize = blockSize -exports.knownExtended = knownExtended - -exports.Pack = require("./lib/pack.js") -exports.Parse = require("./lib/parse.js") -exports.Extract = require("./lib/extract.js") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/00-setup-fixtures.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/00-setup-fixtures.js deleted file mode 100644 index 1524ff7a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/00-setup-fixtures.js +++ /dev/null @@ -1,53 +0,0 @@ -// the fixtures have some weird stuff that is painful -// to include directly in the repo for various reasons. -// -// So, unpack the fixtures with the system tar first. -// -// This means, of course, that it'll only work if you -// already have a tar implementation, and some of them -// will not properly unpack the fixtures anyway. -// -// But, since usually those tests will fail on Windows -// and other systems with less capable filesystems anyway, -// at least this way we don't cause inconveniences by -// merely cloning the repo or installing the package. - -var tap = require("tap") -, child_process = require("child_process") -, rimraf = require("rimraf") -, test = tap.test -, path = require("path") - -test("clean fixtures", function (t) { - rimraf(path.resolve(__dirname, "fixtures"), function (er) { - t.ifError(er, "rimraf ./fixtures/") - t.end() - }) -}) - -test("clean tmp", function (t) { - rimraf(path.resolve(__dirname, "tmp"), function (er) { - t.ifError(er, "rimraf ./tmp/") - t.end() - }) -}) - -test("extract fixtures", function (t) { - var c = child_process.spawn("tar" - ,["xzvf", "fixtures.tgz"] - ,{ cwd: __dirname }) - - c.stdout.on("data", errwrite) - c.stderr.on("data", errwrite) - function errwrite (chunk) { - process.stderr.write(chunk) - } - - c.on("exit", function (code) { - t.equal(code, 0, "extract fixtures should exit with 0") - if (code) { - t.comment("Note, all tests from here on out will fail because of this.") - } - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/cb-never-called-1.0.1.tgz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/cb-never-called-1.0.1.tgz deleted file mode 100644 index 9e7014d8..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/cb-never-called-1.0.1.tgz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/dir-normalization.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/dir-normalization.js deleted file mode 100644 index 9719c42f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/dir-normalization.js +++ /dev/null @@ -1,177 +0,0 @@ -// Set the umask, so that it works the same everywhere. -process.umask(parseInt('22', 8)) - -var fs = require('fs') -var path = require('path') - -var fstream = require('fstream') -var test = require('tap').test - -var tar = require('../tar.js') -var file = path.resolve(__dirname, 'dir-normalization.tar') -var target = path.resolve(__dirname, 'tmp/dir-normalization-test') -var ee = 0 - -var expectEntries = [ - { path: 'fixtures/', - mode: '755', - type: '5', - linkpath: '' - }, - { path: 'fixtures/a/', - mode: '755', - type: '5', - linkpath: '' - }, - { path: 'fixtures/the-chumbler', - mode: '755', - type: '2', - linkpath: path.resolve(target, 'a/b/c/d/the-chumbler'), - }, - { path: 'fixtures/a/b/', - mode: '755', - type: '5', - linkpath: '' - }, - { path: 'fixtures/a/x', - mode: '644', - type: '0', - linkpath: '' - }, - { path: 'fixtures/a/b/c/', - mode: '755', - type: '5', - linkpath: '' - }, - { path: 'fixtures/a/b/c/y', - mode: '755', - type: '2', - linkpath: '../../x', - } -] - -var ef = 0 -var expectFiles = [ - { path: '', - mode: '40755', - type: 'Directory', - depth: 0, - linkpath: undefined - }, - { path: '/fixtures', - mode: '40755', - type: 'Directory', - depth: 1, - linkpath: undefined - }, - { path: '/fixtures/a', - mode: '40755', - type: 'Directory', - depth: 2, - linkpath: undefined - }, - { path: '/fixtures/a/b', - mode: '40755', - type: 'Directory', - depth: 3, - linkpath: undefined - }, - { path: '/fixtures/a/b/c', - mode: '40755', - type: 'Directory', - depth: 4, - linkpath: undefined - }, - { path: '/fixtures/a/b/c/y', - mode: '120755', - type: 'SymbolicLink', - depth: 5, - linkpath: '../../x' - }, - { path: '/fixtures/a/x', - mode: '100644', - type: 'File', - depth: 3, - linkpath: undefined - }, - { path: '/fixtures/the-chumbler', - mode: '120755', - type: 'SymbolicLink', - depth: 2, - linkpath: path.resolve(target, 'a/b/c/d/the-chumbler') - } -] - -test('preclean', function (t) { - require('rimraf').sync(path.join(__dirname, '/tmp/dir-normalization-test')) - t.pass('cleaned!') - t.end() -}) - -test('extract test', function (t) { - var extract = tar.Extract(target) - var inp = fs.createReadStream(file) - - inp.pipe(extract) - - extract.on('end', function () { - t.equal(ee, expectEntries.length, 'should see ' + expectEntries.length + ' entries') - - // should get no more entries after end - extract.removeAllListeners('entry') - extract.on('entry', function (e) { - t.fail('Should not get entries after end!') - }) - - next() - }) - - extract.on('entry', function (entry) { - var mode = entry.props.mode & (~parseInt('22', 8)) - var found = { - path: entry.path, - mode: mode.toString(8), - type: entry.props.type, - linkpath: entry.props.linkpath, - } - - var wanted = expectEntries[ee++] - t.equivalent(found, wanted, 'tar entry ' + ee + ' ' + (wanted && wanted.path)) - }) - - function next () { - var r = fstream.Reader({ - path: target, - type: 'Directory', - sort: 'alpha' - }) - - r.on('ready', function () { - foundEntry(r) - }) - - r.on('end', finish) - - function foundEntry (entry) { - var p = entry.path.substr(target.length) - var mode = entry.props.mode & (~parseInt('22', 8)) - var found = { - path: p, - mode: mode.toString(8), - type: entry.props.type, - depth: entry.props.depth, - linkpath: entry.props.linkpath - } - - var wanted = expectFiles[ef++] - t.equivalent(found, wanted, 'unpacked file ' + ef + ' ' + (wanted && wanted.path)) - - entry.on('entry', foundEntry) - } - - function finish () { - t.equal(ef, expectFiles.length, 'should have ' + ef + ' items') - t.end() - } - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/dir-normalization.tar b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/dir-normalization.tar deleted file mode 100644 index 3c484535..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/dir-normalization.tar and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/error-on-broken.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/error-on-broken.js deleted file mode 100644 index e484920f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/error-on-broken.js +++ /dev/null @@ -1,33 +0,0 @@ -var fs = require('fs') -var path = require('path') -var zlib = require('zlib') - -var tap = require('tap') - -var tar = require('../tar.js') - -var file = path.join(__dirname, 'cb-never-called-1.0.1.tgz') -var target = path.join(__dirname, 'tmp/extract-test') - -tap.test('preclean', function (t) { - require('rimraf').sync(__dirname + '/tmp/extract-test') - t.pass('cleaned!') - t.end() -}) - -tap.test('extract test', function (t) { - var extract = tar.Extract(target) - var inp = fs.createReadStream(file) - - inp.pipe(zlib.createGunzip()).pipe(extract) - - extract.on('error', function (er) { - t.equal(er.message, 'unexpected eof', 'error noticed') - t.end() - }) - - extract.on('end', function () { - t.fail('shouldn\'t reach this point due to errors') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/extract-move.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/extract-move.js deleted file mode 100644 index 45400cd9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/extract-move.js +++ /dev/null @@ -1,132 +0,0 @@ -// Set the umask, so that it works the same everywhere. -process.umask(parseInt('22', 8)) - -var tap = require("tap") - , tar = require("../tar.js") - , fs = require("fs") - , gfs = require("graceful-fs") - , path = require("path") - , file = path.resolve(__dirname, "fixtures/dir.tar") - , target = path.resolve(__dirname, "tmp/extract-test") - , index = 0 - , fstream = require("fstream") - , rimraf = require("rimraf") - , mkdirp = require("mkdirp") - - , ee = 0 - , expectEntries = [ - { - "path" : "dir/", - "mode" : "750", - "type" : "5", - "depth" : undefined, - "size" : 0, - "linkpath" : "", - "nlink" : undefined, - "dev" : undefined, - "ino" : undefined - }, - { - "path" : "dir/sub/", - "mode" : "750", - "type" : "5", - "depth" : undefined, - "size" : 0, - "linkpath" : "", - "nlink" : undefined, - "dev" : undefined, - "ino" : undefined - } ] - -function slow (fs, method, t1, t2) { - var orig = fs[method] - if (!orig) return null - fs[method] = function () { - var args = [].slice.call(arguments) - console.error("slow", method, args[0]) - var cb = args.pop() - - setTimeout(function () { - orig.apply(fs, args.concat(function(er, data) { - setTimeout(function() { - cb(er, data) - }, t2) - })) - }, t1) - } -} - -// Make sure we get the graceful-fs that fstream is using. -var gfs2 -try { - gfs2 = require("fstream/node_modules/graceful-fs") -} catch (er) {} - -var slowMethods = ["chown", "chmod", "utimes", "lutimes"] -slowMethods.forEach(function (method) { - var t1 = 500 - var t2 = 0 - slow(fs, method, t1, t2) - slow(gfs, method, t1, t2) - if (gfs2) { - slow(gfs2, method, t1, t2) - } -}) - - - -// The extract class basically just pipes the input -// to a Reader, and then to a fstream.DirWriter - -// So, this is as much a test of fstream.Reader and fstream.Writer -// as it is of tar.Extract, but it sort of makes sense. - -tap.test("preclean", function (t) { - rimraf.sync(target) - /mkdirp.sync(target) - t.pass("cleaned!") - t.end() -}) - -tap.test("extract test", function (t) { - var extract = tar.Extract(target) - var inp = fs.createReadStream(file) - - // give it a weird buffer size to try to break in odd places - inp.bufferSize = 1234 - - inp.pipe(extract) - - extract.on("end", function () { - rimraf.sync(target) - - t.equal(ee, expectEntries.length, "should see "+ee+" entries") - - // should get no more entries after end - extract.removeAllListeners("entry") - extract.on("entry", function (e) { - t.fail("Should not get entries after end!") - }) - - t.end() - }) - - - extract.on("entry", function (entry) { - var found = - { path: entry.path - , mode: entry.props.mode.toString(8) - , type: entry.props.type - , depth: entry.props.depth - , size: entry.props.size - , linkpath: entry.props.linkpath - , nlink: entry.props.nlink - , dev: entry.props.dev - , ino: entry.props.ino - } - - var wanted = expectEntries[ee ++] - - t.equivalent(found, wanted, "tar entry " + ee + " " + wanted.path) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/extract.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/extract.js deleted file mode 100644 index eca4e7cc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/extract.js +++ /dev/null @@ -1,367 +0,0 @@ -// Set the umask, so that it works the same everywhere. -process.umask(parseInt('22', 8)) - -var tap = require("tap") - , tar = require("../tar.js") - , fs = require("fs") - , path = require("path") - , file = path.resolve(__dirname, "fixtures/c.tar") - , target = path.resolve(__dirname, "tmp/extract-test") - , index = 0 - , fstream = require("fstream") - - , ee = 0 - , expectEntries = -[ { path: 'c.txt', - mode: '644', - type: '0', - depth: undefined, - size: 513, - linkpath: '', - nlink: undefined, - dev: undefined, - ino: undefined }, - { path: 'cc.txt', - mode: '644', - type: '0', - depth: undefined, - size: 513, - linkpath: '', - nlink: undefined, - dev: undefined, - ino: undefined }, - { path: 'r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: '644', - type: '0', - depth: undefined, - size: 100, - linkpath: '', - nlink: undefined, - dev: undefined, - ino: undefined }, - { path: 'Ω.txt', - mode: '644', - type: '0', - depth: undefined, - size: 2, - linkpath: '', - nlink: undefined, - dev: undefined, - ino: undefined }, - { path: 'Ω.txt', - mode: '644', - type: '0', - depth: undefined, - size: 2, - linkpath: '', - nlink: 1, - dev: 234881026, - ino: 51693379 }, - { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: '644', - type: '0', - depth: undefined, - size: 200, - linkpath: '', - nlink: 1, - dev: 234881026, - ino: 51681874 }, - { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: '644', - type: '0', - depth: undefined, - size: 201, - linkpath: '', - nlink: undefined, - dev: undefined, - ino: undefined }, - { path: '200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL', - mode: '777', - type: '2', - depth: undefined, - size: 0, - linkpath: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - nlink: undefined, - dev: undefined, - ino: undefined }, - { path: '200-hard', - mode: '644', - type: '0', - depth: undefined, - size: 200, - linkpath: '', - nlink: 2, - dev: 234881026, - ino: 51681874 }, - { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: '644', - type: '1', - depth: undefined, - size: 0, - linkpath: path.resolve(target, '200-hard'), - nlink: 2, - dev: 234881026, - ino: 51681874 } ] - - , ef = 0 - , expectFiles = -[ { path: '', - mode: '40755', - type: 'Directory', - depth: 0, - linkpath: undefined }, - { path: '/200-hard', - mode: '100644', - type: 'File', - depth: 1, - size: 200, - linkpath: undefined, - nlink: 2 }, - { path: '/200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL', - mode: '120777', - type: 'SymbolicLink', - depth: 1, - size: 200, - linkpath: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - nlink: 1 }, - { path: '/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: '100644', - type: 'Link', - depth: 1, - size: 200, - linkpath: path.join(target, '200-hard'), - nlink: 2 }, - { path: '/c.txt', - mode: '100644', - type: 'File', - depth: 1, - size: 513, - linkpath: undefined, - nlink: 1 }, - { path: '/cc.txt', - mode: '100644', - type: 'File', - depth: 1, - size: 513, - linkpath: undefined, - nlink: 1 }, - { path: '/r', - mode: '40755', - type: 'Directory', - depth: 1, - linkpath: undefined }, - { path: '/r/e', - mode: '40755', - type: 'Directory', - depth: 2, - linkpath: undefined }, - { path: '/r/e/a', - mode: '40755', - type: 'Directory', - depth: 3, - linkpath: undefined }, - { path: '/r/e/a/l', - mode: '40755', - type: 'Directory', - depth: 4, - linkpath: undefined }, - { path: '/r/e/a/l/l', - mode: '40755', - type: 'Directory', - depth: 5, - linkpath: undefined }, - { path: '/r/e/a/l/l/y', - mode: '40755', - type: 'Directory', - depth: 6, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-', - mode: '40755', - type: 'Directory', - depth: 7, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d', - mode: '40755', - type: 'Directory', - depth: 8, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e', - mode: '40755', - type: 'Directory', - depth: 9, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e', - mode: '40755', - type: 'Directory', - depth: 10, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p', - mode: '40755', - type: 'Directory', - depth: 11, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-', - mode: '40755', - type: 'Directory', - depth: 12, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f', - mode: '40755', - type: 'Directory', - depth: 13, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o', - mode: '40755', - type: 'Directory', - depth: 14, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l', - mode: '40755', - type: 'Directory', - depth: 15, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d', - mode: '40755', - type: 'Directory', - depth: 16, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e', - mode: '40755', - type: 'Directory', - depth: 17, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r', - mode: '40755', - type: 'Directory', - depth: 18, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-', - mode: '40755', - type: 'Directory', - depth: 19, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p', - mode: '40755', - type: 'Directory', - depth: 20, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a', - mode: '40755', - type: 'Directory', - depth: 21, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t', - mode: '40755', - type: 'Directory', - depth: 22, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h', - mode: '40755', - type: 'Directory', - depth: 23, - linkpath: undefined }, - { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: '100644', - type: 'File', - depth: 24, - size: 100, - linkpath: undefined, - nlink: 1 }, - { path: '/Ω.txt', - mode: '100644', - type: 'File', - depth: 1, - size: 2, - linkpath: undefined, - nlink: 1 } ] - - - -// The extract class basically just pipes the input -// to a Reader, and then to a fstream.DirWriter - -// So, this is as much a test of fstream.Reader and fstream.Writer -// as it is of tar.Extract, but it sort of makes sense. - -tap.test("preclean", function (t) { - require("rimraf").sync(__dirname + "/tmp/extract-test") - t.pass("cleaned!") - t.end() -}) - -tap.test("extract test", function (t) { - var extract = tar.Extract(target) - var inp = fs.createReadStream(file) - - // give it a weird buffer size to try to break in odd places - inp.bufferSize = 1234 - - inp.pipe(extract) - - extract.on("end", function () { - t.equal(ee, expectEntries.length, "should see "+ee+" entries") - - // should get no more entries after end - extract.removeAllListeners("entry") - extract.on("entry", function (e) { - t.fail("Should not get entries after end!") - }) - - next() - }) - - extract.on("entry", function (entry) { - var found = - { path: entry.path - , mode: entry.props.mode.toString(8) - , type: entry.props.type - , depth: entry.props.depth - , size: entry.props.size - , linkpath: entry.props.linkpath - , nlink: entry.props.nlink - , dev: entry.props.dev - , ino: entry.props.ino - } - - var wanted = expectEntries[ee ++] - - t.equivalent(found, wanted, "tar entry " + ee + " " + wanted.path) - }) - - function next () { - var r = fstream.Reader({ path: target - , type: "Directory" - // this is just to encourage consistency - , sort: "alpha" }) - - r.on("ready", function () { - foundEntry(r) - }) - - r.on("end", finish) - - function foundEntry (entry) { - var p = entry.path.substr(target.length) - var found = - { path: p - , mode: entry.props.mode.toString(8) - , type: entry.props.type - , depth: entry.props.depth - , size: entry.props.size - , linkpath: entry.props.linkpath - , nlink: entry.props.nlink - } - - var wanted = expectFiles[ef ++] - - t.has(found, wanted, "unpacked file " + ef + " " + wanted.path) - - entry.on("entry", foundEntry) - } - - function finish () { - t.equal(ef, expectFiles.length, "should have "+ef+" items") - t.end() - } - } -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/fixtures.tgz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/fixtures.tgz deleted file mode 100644 index f1676023..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/fixtures.tgz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/header.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/header.js deleted file mode 100644 index 8ea6f795..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/header.js +++ /dev/null @@ -1,183 +0,0 @@ -var tap = require("tap") -var TarHeader = require("../lib/header.js") -var tar = require("../tar.js") -var fs = require("fs") - - -var headers = - { "a.txt file header": - [ "612e747874000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030303036343420003035373736312000303030303234200030303030303030303430312031313635313336303333332030313234353100203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757374617200303069736161637300000000000000000000000000000000000000000000000000007374616666000000000000000000000000000000000000000000000000000000303030303030200030303030303020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - , { cksumValid: true - , path: 'a.txt' - , mode: 420 - , uid: 24561 - , gid: 20 - , size: 257 - , mtime: 1319493851 - , cksum: 5417 - , type: '0' - , linkpath: '' - , ustar: 'ustar\0' - , ustarver: '00' - , uname: 'isaacs' - , gname: 'staff' - , devmaj: 0 - , devmin: 0 - , fill: '' } - ] - - , "omega pax": // the extended header from omega tar. - [ "5061784865616465722fcea92e74787400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030303036343420003035373736312000303030303234200030303030303030303137302031313534333731303631312030313530353100207800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757374617200303069736161637300000000000000000000000000000000000000000000000000007374616666000000000000000000000000000000000000000000000000000000303030303030200030303030303020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - , { cksumValid: true - , path: 'PaxHeader/Ω.txt' - , mode: 420 - , uid: 24561 - , gid: 20 - , size: 120 - , mtime: 1301254537 - , cksum: 6697 - , type: 'x' - , linkpath: '' - , ustar: 'ustar\0' - , ustarver: '00' - , uname: 'isaacs' - , gname: 'staff' - , devmaj: 0 - , devmin: 0 - , fill: '' } ] - - , "omega file header": - [ "cea92e7478740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030303036343420003035373736312000303030303234200030303030303030303030322031313534333731303631312030313330373200203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757374617200303069736161637300000000000000000000000000000000000000000000000000007374616666000000000000000000000000000000000000000000000000000000303030303030200030303030303020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - , { cksumValid: true - , path: 'Ω.txt' - , mode: 420 - , uid: 24561 - , gid: 20 - , size: 2 - , mtime: 1301254537 - , cksum: 5690 - , type: '0' - , linkpath: '' - , ustar: 'ustar\0' - , ustarver: '00' - , uname: 'isaacs' - , gname: 'staff' - , devmaj: 0 - , devmin: 0 - , fill: '' } ] - - , "foo.js file header": - [ "666f6f2e6a730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030303036343420003035373736312000303030303234200030303030303030303030342031313534333637303734312030313236313700203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757374617200303069736161637300000000000000000000000000000000000000000000000000007374616666000000000000000000000000000000000000000000000000000000303030303030200030303030303020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - , { cksumValid: true - , path: 'foo.js' - , mode: 420 - , uid: 24561 - , gid: 20 - , size: 4 - , mtime: 1301246433 - , cksum: 5519 - , type: '0' - , linkpath: '' - , ustar: 'ustar\0' - , ustarver: '00' - , uname: 'isaacs' - , gname: 'staff' - , devmaj: 0 - , devmin: 0 - , fill: '' } - ] - - , "b.txt file header": - [ "622e747874000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030303036343420003035373736312000303030303234200030303030303030313030302031313635313336303637372030313234363100203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757374617200303069736161637300000000000000000000000000000000000000000000000000007374616666000000000000000000000000000000000000000000000000000000303030303030200030303030303020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - , { cksumValid: true - , path: 'b.txt' - , mode: 420 - , uid: 24561 - , gid: 20 - , size: 512 - , mtime: 1319494079 - , cksum: 5425 - , type: '0' - , linkpath: '' - , ustar: 'ustar\0' - , ustarver: '00' - , uname: 'isaacs' - , gname: 'staff' - , devmaj: 0 - , devmin: 0 - , fill: '' } - ] - - , "deep nested file": - [ "636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363633030303634342000303537373631200030303030323420003030303030303030313434203131363532313531353333203034333331340020300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075737461720030306973616163730000000000000000000000000000000000000000000000000000737461666600000000000000000000000000000000000000000000000000000030303030303020003030303030302000722f652f612f6c2f6c2f792f2d2f642f652f652f702f2d2f662f6f2f6c2f642f652f722f2d2f702f612f742f680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - , { cksumValid: true, - path: 'r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' - , mode: 420 - , uid: 24561 - , gid: 20 - , size: 100 - , mtime: 1319687003 - , cksum: 18124 - , type: '0' - , linkpath: '' - , ustar: 'ustar\0' - , ustarver: '00' - , uname: 'isaacs' - , gname: 'staff' - , devmaj: 0 - , devmin: 0 - , fill: '' } - ] - } - -tap.test("parsing", function (t) { - Object.keys(headers).forEach(function (name) { - var h = headers[name] - , header = new Buffer(h[0], "hex") - , expect = h[1] - , parsed = new TarHeader(header) - - // console.error(parsed) - t.has(parsed, expect, "parse " + name) - }) - t.end() -}) - -tap.test("encoding", function (t) { - Object.keys(headers).forEach(function (name) { - var h = headers[name] - , expect = new Buffer(h[0], "hex") - , encoded = TarHeader.encode(h[1]) - - // might have slightly different bytes, since the standard - // isn't very strict, but should have the same semantics - // checkSum will be different, but cksumValid will be true - - var th = new TarHeader(encoded) - delete h[1].block - delete h[1].needExtended - delete h[1].cksum - t.has(th, h[1], "fields "+name) - }) - t.end() -}) - -// test these manually. they're a bit rare to find in the wild -tap.test("parseNumeric tests", function (t) { - var parseNumeric = TarHeader.parseNumeric - , numbers = - { "303737373737373700": 2097151 - , "30373737373737373737373700": 8589934591 - , "303030303036343400": 420 - , "800000ffffffffffff": 281474976710655 - , "ffffff000000000001": -281474976710654 - , "ffffff000000000000": -281474976710655 - , "800000000000200000": 2097152 - , "8000000000001544c5": 1393861 - , "ffffffffffff1544c5": -15383354 } - Object.keys(numbers).forEach(function (n) { - var b = new Buffer(n, "hex") - t.equal(parseNumeric(b), numbers[n], n + " === " + numbers[n]) - }) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/pack-no-proprietary.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/pack-no-proprietary.js deleted file mode 100644 index d4b03a1f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/pack-no-proprietary.js +++ /dev/null @@ -1,886 +0,0 @@ -// This is exactly like test/pack.js, except that it's excluding -// any proprietary headers. -// -// This loses some information about the filesystem, but creates -// tarballs that are supported by more versions of tar, especially -// old non-spec-compliant copies of gnutar. - -// the symlink file is excluded from git, because it makes -// windows freak the hell out. -var fs = require("fs") - , path = require("path") - , symlink = path.resolve(__dirname, "fixtures/symlink") -try { fs.unlinkSync(symlink) } catch (e) {} -fs.symlinkSync("./hardlink-1", symlink) -process.on("exit", function () { - fs.unlinkSync(symlink) -}) - -var tap = require("tap") - , tar = require("../tar.js") - , pkg = require("../package.json") - , Pack = tar.Pack - , fstream = require("fstream") - , Reader = fstream.Reader - , Writer = fstream.Writer - , input = path.resolve(__dirname, "fixtures/") - , target = path.resolve(__dirname, "tmp/pack.tar") - , uid = process.getuid ? process.getuid() : 0 - , gid = process.getgid ? process.getgid() : 0 - - , entries = - - // the global header and root fixtures/ dir are going to get - // a different date each time, so omit that bit. - // Also, dev/ino values differ across machines, so that's not - // included. - [ [ 'entry', - { path: 'fixtures/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'extendedHeader', - { path: 'PaxHeader/fixtures/200cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: uid, - gid: gid, - type: 'x', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' }, - { path: 'fixtures/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - uid: uid, - gid: gid, - size: 200 } ] - - , [ 'entry', - { path: 'fixtures/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: uid, - gid: gid, - size: 200, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/a.txt', - mode: 420, - uid: uid, - gid: gid, - size: 257, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/b.txt', - mode: 420, - uid: uid, - gid: gid, - size: 512, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/c.txt', - mode: 420, - uid: uid, - gid: gid, - size: 513, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/cc.txt', - mode: 420, - uid: uid, - gid: gid, - size: 513, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/dir/', - mode: 488, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/dir/sub/', - mode: 488, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/foo.js', - mode: 420, - uid: uid, - gid: gid, - size: 4, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/hardlink-1', - mode: 420, - uid: uid, - gid: gid, - size: 200, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/hardlink-2', - mode: 420, - uid: uid, - gid: gid, - size: 0, - type: '1', - linkpath: 'fixtures/hardlink-1', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/omega.txt', - mode: 420, - uid: uid, - gid: gid, - size: 2, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/packtest/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/packtest/omega.txt', - mode: 420, - uid: uid, - gid: gid, - size: 2, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/packtest/star.4.html', - mode: 420, - uid: uid, - gid: gid, - size: 54081, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'extendedHeader', - { path: 'PaxHeader/fixtures/packtest/Ω.txt', - mode: 420, - uid: uid, - gid: gid, - type: 'x', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' }, - { path: 'fixtures/packtest/Ω.txt', - uid: uid, - gid: gid, - size: 2 } ] - - , [ 'entry', - { path: 'fixtures/packtest/Ω.txt', - mode: 420, - uid: uid, - gid: gid, - size: 2, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: uid, - gid: gid, - size: 100, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/symlink', - uid: uid, - gid: gid, - size: 0, - type: '2', - linkpath: 'hardlink-1', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'extendedHeader', - { path: 'PaxHeader/fixtures/Ω.txt', - mode: 420, - uid: uid, - gid: gid, - type: 'x', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' }, - { path: "fixtures/Ω.txt" - , uid: uid - , gid: gid - , size: 2 } ] - - , [ 'entry', - { path: 'fixtures/Ω.txt', - mode: 420, - uid: uid, - gid: gid, - size: 2, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - ] - - -// first, make sure that the hardlinks are actually hardlinks, or this -// won't work. Git has a way of replacing them with a copy. -var hard1 = path.resolve(__dirname, "fixtures/hardlink-1") - , hard2 = path.resolve(__dirname, "fixtures/hardlink-2") - , fs = require("fs") - -try { fs.unlinkSync(hard2) } catch (e) {} -fs.linkSync(hard1, hard2) - -tap.test("with global header", { timeout: 10000 }, function (t) { - runTest(t, true) -}) - -tap.test("without global header", { timeout: 10000 }, function (t) { - runTest(t, false) -}) - -function alphasort (a, b) { - return a === b ? 0 - : a.toLowerCase() > b.toLowerCase() ? 1 - : a.toLowerCase() < b.toLowerCase() ? -1 - : a > b ? 1 - : -1 -} - - -function runTest (t, doGH) { - var reader = Reader({ path: input - , filter: function () { - return !this.path.match(/\.(tar|hex)$/) - } - , sort: alphasort - }) - - var props = doGH ? pkg : {} - props.noProprietary = true - var pack = Pack(props) - var writer = Writer(target) - - // global header should be skipped regardless, since it has no content. - var entry = 0 - - t.ok(reader, "reader ok") - t.ok(pack, "pack ok") - t.ok(writer, "writer ok") - - pack.pipe(writer) - - var parse = tar.Parse() - t.ok(parse, "parser should be ok") - - pack.on("data", function (c) { - // console.error("PACK DATA") - if (c.length !== 512) { - // this one is too noisy, only assert if it'll be relevant - t.equal(c.length, 512, "parser should emit data in 512byte blocks") - } - parse.write(c) - }) - - pack.on("end", function () { - // console.error("PACK END") - t.pass("parser ends") - parse.end() - }) - - pack.on("error", function (er) { - t.fail("pack error", er) - }) - - parse.on("error", function (er) { - t.fail("parse error", er) - }) - - writer.on("error", function (er) { - t.fail("writer error", er) - }) - - reader.on("error", function (er) { - t.fail("reader error", er) - }) - - parse.on("*", function (ev, e) { - var wanted = entries[entry++] - if (!wanted) { - t.fail("unexpected event: "+ev) - return - } - t.equal(ev, wanted[0], "event type should be "+wanted[0]) - - if (ev !== wanted[0] || e.path !== wanted[1].path) { - console.error("wanted", wanted) - console.error([ev, e.props]) - e.on("end", function () { - console.error(e.fields) - throw "break" - }) - } - - t.has(e.props, wanted[1], "properties "+wanted[1].path) - if (wanted[2]) { - e.on("end", function () { - if (!e.fields) { - t.ok(e.fields, "should get fields") - } else { - t.has(e.fields, wanted[2], "should get expected fields") - } - }) - } - }) - - reader.pipe(pack) - - writer.on("close", function () { - t.equal(entry, entries.length, "should get all expected entries") - t.pass("it finished") - t.end() - }) - -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/pack.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/pack.js deleted file mode 100644 index 0f16c07b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/pack.js +++ /dev/null @@ -1,952 +0,0 @@ - -// the symlink file is excluded from git, because it makes -// windows freak the hell out. -var fs = require("fs") - , path = require("path") - , symlink = path.resolve(__dirname, "fixtures/symlink") -try { fs.unlinkSync(symlink) } catch (e) {} -fs.symlinkSync("./hardlink-1", symlink) -process.on("exit", function () { - fs.unlinkSync(symlink) -}) - - -var tap = require("tap") - , tar = require("../tar.js") - , pkg = require("../package.json") - , Pack = tar.Pack - , fstream = require("fstream") - , Reader = fstream.Reader - , Writer = fstream.Writer - , input = path.resolve(__dirname, "fixtures/") - , target = path.resolve(__dirname, "tmp/pack.tar") - , uid = process.getuid ? process.getuid() : 0 - , gid = process.getgid ? process.getgid() : 0 - - , entries = - - // the global header and root fixtures/ dir are going to get - // a different date each time, so omit that bit. - // Also, dev/ino values differ across machines, so that's not - // included. - [ [ 'globalExtendedHeader', - { path: 'PaxHeader/', - mode: 438, - uid: 0, - gid: 0, - type: 'g', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' }, - { "NODETAR.author": pkg.author, - "NODETAR.name": pkg.name, - "NODETAR.description": pkg.description, - "NODETAR.version": pkg.version, - "NODETAR.repository.type": pkg.repository.type, - "NODETAR.repository.url": pkg.repository.url, - "NODETAR.main": pkg.main, - "NODETAR.scripts.test": pkg.scripts.test } ] - - , [ 'entry', - { path: 'fixtures/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'extendedHeader', - { path: 'PaxHeader/fixtures/200cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: uid, - gid: gid, - type: 'x', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' }, - { path: 'fixtures/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - 'NODETAR.depth': '1', - 'NODETAR.type': 'File', - nlink: 1, - uid: uid, - gid: gid, - size: 200, - 'NODETAR.blksize': '4096', - 'NODETAR.blocks': '8' } ] - - , [ 'entry', - { path: 'fixtures/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: uid, - gid: gid, - size: 200, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '', - 'NODETAR.depth': '1', - 'NODETAR.type': 'File', - nlink: 1, - 'NODETAR.blksize': '4096', - 'NODETAR.blocks': '8' } ] - - , [ 'entry', - { path: 'fixtures/a.txt', - mode: 420, - uid: uid, - gid: gid, - size: 257, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/b.txt', - mode: 420, - uid: uid, - gid: gid, - size: 512, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/c.txt', - mode: 420, - uid: uid, - gid: gid, - size: 513, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/cc.txt', - mode: 420, - uid: uid, - gid: gid, - size: 513, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/dir/', - mode: 488, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/dir/sub/', - mode: 488, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - - , [ 'entry', - { path: 'fixtures/foo.js', - mode: 420, - uid: uid, - gid: gid, - size: 4, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/hardlink-1', - mode: 420, - uid: uid, - gid: gid, - size: 200, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/hardlink-2', - mode: 420, - uid: uid, - gid: gid, - size: 0, - type: '1', - linkpath: 'fixtures/hardlink-1', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/omega.txt', - mode: 420, - uid: uid, - gid: gid, - size: 2, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/packtest/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/packtest/omega.txt', - mode: 420, - uid: uid, - gid: gid, - size: 2, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/packtest/star.4.html', - mode: 420, - uid: uid, - gid: gid, - size: 54081, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'extendedHeader', - { path: 'PaxHeader/fixtures/packtest/Ω.txt', - mode: 420, - uid: uid, - gid: gid, - type: 'x', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' }, - { path: 'fixtures/packtest/Ω.txt', - 'NODETAR.depth': '2', - 'NODETAR.type': 'File', - nlink: 1, - uid: uid, - gid: gid, - size: 2, - 'NODETAR.blksize': '4096', - 'NODETAR.blocks': '8' } ] - - , [ 'entry', - { path: 'fixtures/packtest/Ω.txt', - mode: 420, - uid: uid, - gid: gid, - size: 2, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '', - 'NODETAR.depth': '2', - 'NODETAR.type': 'File', - nlink: 1, - 'NODETAR.blksize': '4096', - 'NODETAR.blocks': '8' } ] - - , [ 'entry', - { path: 'fixtures/r/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/', - mode: 493, - uid: uid, - gid: gid, - size: 0, - type: '5', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: uid, - gid: gid, - size: 100, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'entry', - { path: 'fixtures/symlink', - uid: uid, - gid: gid, - size: 0, - type: '2', - linkpath: 'hardlink-1', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' } ] - - , [ 'extendedHeader', - { path: 'PaxHeader/fixtures/Ω.txt', - mode: 420, - uid: uid, - gid: gid, - type: 'x', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '' }, - { path: "fixtures/Ω.txt" - , "NODETAR.depth": "1" - , "NODETAR.type": "File" - , nlink: 1 - , uid: uid - , gid: gid - , size: 2 - , "NODETAR.blksize": "4096" - , "NODETAR.blocks": "8" } ] - - , [ 'entry', - { path: 'fixtures/Ω.txt', - mode: 420, - uid: uid, - gid: gid, - size: 2, - type: '0', - linkpath: '', - ustar: 'ustar\u0000', - ustarver: '00', - uname: '', - gname: '', - devmaj: 0, - devmin: 0, - fill: '', - 'NODETAR.depth': '1', - 'NODETAR.type': 'File', - nlink: 1, - 'NODETAR.blksize': '4096', - 'NODETAR.blocks': '8' } ] - ] - - -// first, make sure that the hardlinks are actually hardlinks, or this -// won't work. Git has a way of replacing them with a copy. -var hard1 = path.resolve(__dirname, "fixtures/hardlink-1") - , hard2 = path.resolve(__dirname, "fixtures/hardlink-2") - , fs = require("fs") - -try { fs.unlinkSync(hard2) } catch (e) {} -fs.linkSync(hard1, hard2) - -tap.test("with global header", { timeout: 10000 }, function (t) { - runTest(t, true) -}) - -tap.test("without global header", { timeout: 10000 }, function (t) { - runTest(t, false) -}) - -tap.test("with from base", { timeout: 10000 }, function (t) { - runTest(t, true, true) -}) - -function alphasort (a, b) { - return a === b ? 0 - : a.toLowerCase() > b.toLowerCase() ? 1 - : a.toLowerCase() < b.toLowerCase() ? -1 - : a > b ? 1 - : -1 -} - - -function runTest (t, doGH, doFromBase) { - var reader = Reader({ path: input - , filter: function () { - return !this.path.match(/\.(tar|hex)$/) - } - , sort: alphasort - }) - - var props = doGH ? pkg : {} - if(doFromBase) props.fromBase = true; - - var pack = Pack(props) - var writer = Writer(target) - - // skip the global header if we're not doing that. - var entry = doGH ? 0 : 1 - - t.ok(reader, "reader ok") - t.ok(pack, "pack ok") - t.ok(writer, "writer ok") - - pack.pipe(writer) - - var parse = tar.Parse() - t.ok(parse, "parser should be ok") - - pack.on("data", function (c) { - // console.error("PACK DATA") - if (c.length !== 512) { - // this one is too noisy, only assert if it'll be relevant - t.equal(c.length, 512, "parser should emit data in 512byte blocks") - } - parse.write(c) - }) - - pack.on("end", function () { - // console.error("PACK END") - t.pass("parser ends") - parse.end() - }) - - pack.on("error", function (er) { - t.fail("pack error", er) - }) - - parse.on("error", function (er) { - t.fail("parse error", er) - }) - - writer.on("error", function (er) { - t.fail("writer error", er) - }) - - reader.on("error", function (er) { - t.fail("reader error", er) - }) - - parse.on("*", function (ev, e) { - var wanted = entries[entry++] - if (!wanted) { - t.fail("unexpected event: "+ev) - return - } - t.equal(ev, wanted[0], "event type should be "+wanted[0]) - - if(doFromBase) { - if(wanted[1].path.indexOf('fixtures/') && wanted[1].path.length == 100) - wanted[1].path = wanted[1].path.replace('fixtures/', '') + 'ccccccccc' - - if(wanted[1]) wanted[1].path = wanted[1].path.replace('fixtures/', '').replace('//', '/') - if(wanted[1].path == '') wanted[1].path = '/' - if(wanted[2] && wanted[2].path) wanted[2].path = wanted[2].path.replace('fixtures', '').replace(/^\//, '') - - wanted[1].linkpath = wanted[1].linkpath.replace('fixtures/', '') - } - - if (ev !== wanted[0] || e.path !== wanted[1].path) { - console.error("wanted", wanted) - console.error([ev, e.props]) - e.on("end", function () { - console.error(e.fields) - throw "break" - }) - } - - - t.has(e.props, wanted[1], "properties "+wanted[1].path) - if (wanted[2]) { - e.on("end", function () { - if (!e.fields) { - t.ok(e.fields, "should get fields") - } else { - t.has(e.fields, wanted[2], "should get expected fields") - } - }) - } - }) - - reader.pipe(pack) - - writer.on("close", function () { - t.equal(entry, entries.length, "should get all expected entries") - t.pass("it finished") - t.end() - }) - -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/parse-discard.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/parse-discard.js deleted file mode 100644 index da01a65c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/parse-discard.js +++ /dev/null @@ -1,29 +0,0 @@ -var tap = require("tap") - , tar = require("../tar.js") - , fs = require("fs") - , path = require("path") - , file = path.resolve(__dirname, "fixtures/c.tar") - -tap.test("parser test", function (t) { - var parser = tar.Parse() - var total = 0 - var dataTotal = 0 - - parser.on("end", function () { - - t.equals(total-513,dataTotal,'should have discarded only c.txt') - - t.end() - }) - - fs.createReadStream(file) - .pipe(parser) - .on('entry',function(entry){ - if(entry.path === 'c.txt') entry.abort() - - total += entry.size; - entry.on('data',function(data){ - dataTotal += data.length - }) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/parse.js deleted file mode 100644 index f765a501..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/parse.js +++ /dev/null @@ -1,359 +0,0 @@ -var tap = require("tap") - , tar = require("../tar.js") - , fs = require("fs") - , path = require("path") - , file = path.resolve(__dirname, "fixtures/c.tar") - , index = 0 - - , expect = -[ [ 'entry', - { path: 'c.txt', - mode: 420, - uid: 24561, - gid: 20, - size: 513, - mtime: new Date('Wed, 26 Oct 2011 01:10:58 GMT'), - cksum: 5422, - type: '0', - linkpath: '', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '' }, - undefined ], - [ 'entry', - { path: 'cc.txt', - mode: 420, - uid: 24561, - gid: 20, - size: 513, - mtime: new Date('Wed, 26 Oct 2011 01:11:02 GMT'), - cksum: 5525, - type: '0', - linkpath: '', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '' }, - undefined ], - [ 'entry', - { path: 'r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: 24561, - gid: 20, - size: 100, - mtime: new Date('Thu, 27 Oct 2011 03:43:23 GMT'), - cksum: 18124, - type: '0', - linkpath: '', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '' }, - undefined ], - [ 'entry', - { path: 'Ω.txt', - mode: 420, - uid: 24561, - gid: 20, - size: 2, - mtime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'), - cksum: 5695, - type: '0', - linkpath: '', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '' }, - undefined ], - [ 'extendedHeader', - { path: 'PaxHeader/Ω.txt', - mode: 420, - uid: 24561, - gid: 20, - size: 120, - mtime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'), - cksum: 6702, - type: 'x', - linkpath: '', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '' }, - { path: 'Ω.txt', - ctime: 1319737909, - atime: 1319739061, - dev: 234881026, - ino: 51693379, - nlink: 1 } ], - [ 'entry', - { path: 'Ω.txt', - mode: 420, - uid: 24561, - gid: 20, - size: 2, - mtime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'), - cksum: 5695, - type: '0', - linkpath: '', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '', - ctime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'), - atime: new Date('Thu, 27 Oct 2011 18:11:01 GMT'), - dev: 234881026, - ino: 51693379, - nlink: 1 }, - undefined ], - [ 'extendedHeader', - { path: 'PaxHeader/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: 24561, - gid: 20, - size: 353, - mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), - cksum: 14488, - type: 'x', - linkpath: '', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '' }, - { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - ctime: 1319686868, - atime: 1319741254, - 'LIBARCHIVE.creationtime': '1319686852', - dev: 234881026, - ino: 51681874, - nlink: 1 } ], - [ 'entry', - { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: 24561, - gid: 20, - size: 200, - mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), - cksum: 14570, - type: '0', - linkpath: '', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '', - ctime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), - atime: new Date('Thu, 27 Oct 2011 18:47:34 GMT'), - 'LIBARCHIVE.creationtime': '1319686852', - dev: 234881026, - ino: 51681874, - nlink: 1 }, - undefined ], - [ 'longPath', - { path: '././@LongLink', - mode: 0, - uid: 0, - gid: 0, - size: 201, - mtime: new Date('Thu, 01 Jan 1970 00:00:00 GMT'), - cksum: 4976, - type: 'L', - linkpath: '', - ustar: false }, - '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' ], - [ 'entry', - { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: 1000, - gid: 1000, - size: 201, - mtime: new Date('Thu, 27 Oct 2011 22:21:50 GMT'), - cksum: 14086, - type: '0', - linkpath: '', - ustar: false }, - undefined ], - [ 'longLinkpath', - { path: '././@LongLink', - mode: 0, - uid: 0, - gid: 0, - size: 201, - mtime: new Date('Thu, 01 Jan 1970 00:00:00 GMT'), - cksum: 4975, - type: 'K', - linkpath: '', - ustar: false }, - '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' ], - [ 'longPath', - { path: '././@LongLink', - mode: 0, - uid: 0, - gid: 0, - size: 201, - mtime: new Date('Thu, 01 Jan 1970 00:00:00 GMT'), - cksum: 4976, - type: 'L', - linkpath: '', - ustar: false }, - '200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL' ], - [ 'entry', - { path: '200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL', - mode: 511, - uid: 1000, - gid: 1000, - size: 0, - mtime: new Date('Fri, 28 Oct 2011 23:05:17 GMT'), - cksum: 21603, - type: '2', - linkpath: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - ustar: false }, - undefined ], - [ 'extendedHeader', - { path: 'PaxHeader/200-hard', - mode: 420, - uid: 24561, - gid: 20, - size: 143, - mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), - cksum: 6533, - type: 'x', - linkpath: '', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '' }, - { ctime: 1320617144, - atime: 1320617232, - 'LIBARCHIVE.creationtime': '1319686852', - dev: 234881026, - ino: 51681874, - nlink: 2 } ], - [ 'entry', - { path: '200-hard', - mode: 420, - uid: 24561, - gid: 20, - size: 200, - mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), - cksum: 5526, - type: '0', - linkpath: '', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '', - ctime: new Date('Sun, 06 Nov 2011 22:05:44 GMT'), - atime: new Date('Sun, 06 Nov 2011 22:07:12 GMT'), - 'LIBARCHIVE.creationtime': '1319686852', - dev: 234881026, - ino: 51681874, - nlink: 2 }, - undefined ], - [ 'extendedHeader', - { path: 'PaxHeader/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: 24561, - gid: 20, - size: 353, - mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), - cksum: 14488, - type: 'x', - linkpath: '', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '' }, - { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - ctime: 1320617144, - atime: 1320617406, - 'LIBARCHIVE.creationtime': '1319686852', - dev: 234881026, - ino: 51681874, - nlink: 2 } ], - [ 'entry', - { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', - mode: 420, - uid: 24561, - gid: 20, - size: 0, - mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), - cksum: 15173, - type: '1', - linkpath: '200-hard', - ustar: 'ustar\0', - ustarver: '00', - uname: 'isaacs', - gname: 'staff', - devmaj: 0, - devmin: 0, - fill: '', - ctime: new Date('Sun, 06 Nov 2011 22:05:44 GMT'), - atime: new Date('Sun, 06 Nov 2011 22:10:06 GMT'), - 'LIBARCHIVE.creationtime': '1319686852', - dev: 234881026, - ino: 51681874, - nlink: 2 }, - undefined ] ] - - -tap.test("parser test", function (t) { - var parser = tar.Parse() - - parser.on("end", function () { - t.equal(index, expect.length, "saw all expected events") - t.end() - }) - - fs.createReadStream(file) - .pipe(parser) - .on("*", function (ev, entry) { - var wanted = expect[index] - if (!wanted) { - return t.fail("Unexpected event: " + ev) - } - var result = [ev, entry.props] - entry.on("end", function () { - result.push(entry.fields || entry.body) - - t.equal(ev, wanted[0], index + " event type") - t.equivalent(entry.props, wanted[1], wanted[1].path + " entry properties") - if (wanted[2]) { - t.equivalent(result[2], wanted[2], "metadata values") - } - index ++ - }) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/zz-cleanup.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/zz-cleanup.js deleted file mode 100644 index a00ff7fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/tar/test/zz-cleanup.js +++ /dev/null @@ -1,20 +0,0 @@ -// clean up the fixtures - -var tap = require("tap") -, rimraf = require("rimraf") -, test = tap.test -, path = require("path") - -test("clean fixtures", function (t) { - rimraf(path.resolve(__dirname, "fixtures"), function (er) { - t.ifError(er, "rimraf ./fixtures/") - t.end() - }) -}) - -test("clean tmp", function (t) { - rimraf(path.resolve(__dirname, "tmp"), function (er) { - t.ifError(er, "rimraf ./tmp/") - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/.travis.yml deleted file mode 100644 index cc4dba29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/align.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/align.js deleted file mode 100644 index 9be43098..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/align.js +++ /dev/null @@ -1,8 +0,0 @@ -var table = require('../'); -var t = table([ - [ 'beep', '1024' ], - [ 'boop', '33450' ], - [ 'foo', '1006' ], - [ 'bar', '45' ] -], { align: [ 'l', 'r' ] }); -console.log(t); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/center.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/center.js deleted file mode 100644 index 52b1c69e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/center.js +++ /dev/null @@ -1,8 +0,0 @@ -var table = require('../'); -var t = table([ - [ 'beep', '1024', 'xyz' ], - [ 'boop', '3388450', 'tuv' ], - [ 'foo', '10106', 'qrstuv' ], - [ 'bar', '45', 'lmno' ] -], { align: [ 'l', 'c', 'l' ] }); -console.log(t); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/dotalign.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/dotalign.js deleted file mode 100644 index 2cea6299..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/dotalign.js +++ /dev/null @@ -1,9 +0,0 @@ -var table = require('../'); -var t = table([ - [ 'beep', '1024' ], - [ 'boop', '334.212' ], - [ 'foo', '1006' ], - [ 'bar', '45.6' ], - [ 'baz', '123.' ] -], { align: [ 'l', '.' ] }); -console.log(t); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/doubledot.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/doubledot.js deleted file mode 100644 index bab983b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/doubledot.js +++ /dev/null @@ -1,11 +0,0 @@ -var table = require('../'); -var t = table([ - [ '0.1.2' ], - [ '11.22.33' ], - [ '5.6.7' ], - [ '1.22222' ], - [ '12345.' ], - [ '5555.' ], - [ '123' ] -], { align: [ '.' ] }); -console.log(t); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/table.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/table.js deleted file mode 100644 index 903ea4c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/example/table.js +++ /dev/null @@ -1,6 +0,0 @@ -var table = require('../'); -var t = table([ - [ 'master', '0123456789abcdef' ], - [ 'staging', 'fedcba9876543210' ] -]); -console.log(t); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/index.js deleted file mode 100644 index 5c0ba987..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/index.js +++ /dev/null @@ -1,86 +0,0 @@ -module.exports = function (rows_, opts) { - if (!opts) opts = {}; - var hsep = opts.hsep === undefined ? ' ' : opts.hsep; - var align = opts.align || []; - var stringLength = opts.stringLength - || function (s) { return String(s).length; } - ; - - var dotsizes = reduce(rows_, function (acc, row) { - forEach(row, function (c, ix) { - var n = dotindex(c); - if (!acc[ix] || n > acc[ix]) acc[ix] = n; - }); - return acc; - }, []); - - var rows = map(rows_, function (row) { - return map(row, function (c_, ix) { - var c = String(c_); - if (align[ix] === '.') { - var index = dotindex(c); - var size = dotsizes[ix] + (/\./.test(c) ? 1 : 2) - - (stringLength(c) - index) - ; - return c + Array(size).join(' '); - } - else return c; - }); - }); - - var sizes = reduce(rows, function (acc, row) { - forEach(row, function (c, ix) { - var n = stringLength(c); - if (!acc[ix] || n > acc[ix]) acc[ix] = n; - }); - return acc; - }, []); - - return map(rows, function (row) { - return map(row, function (c, ix) { - var n = (sizes[ix] - stringLength(c)) || 0; - var s = Array(Math.max(n + 1, 1)).join(' '); - if (align[ix] === 'r' || align[ix] === '.') { - return s + c; - } - if (align[ix] === 'c') { - return Array(Math.ceil(n / 2 + 1)).join(' ') - + c + Array(Math.floor(n / 2 + 1)).join(' ') - ; - } - - return c + s; - }).join(hsep).replace(/\s+$/, ''); - }).join('\n'); -}; - -function dotindex (c) { - var m = /\.[^.]*$/.exec(c); - return m ? m.index + 1 : c.length; -} - -function reduce (xs, f, init) { - if (xs.reduce) return xs.reduce(f, init); - var i = 0; - var acc = arguments.length >= 3 ? init : xs[i++]; - for (; i < xs.length; i++) { - f(acc, xs[i], i); - } - return acc; -} - -function forEach (xs, f) { - if (xs.forEach) return xs.forEach(f); - for (var i = 0; i < xs.length; i++) { - f.call(xs, xs[i], i); - } -} - -function map (xs, f) { - if (xs.map) return xs.map(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - res.push(f.call(xs, xs[i], i)); - } - return res; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/package.json deleted file mode 100644 index 3fbc997c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "text-table", - "version": "0.2.0", - "description": "borderless text tables with alignment", - "main": "index.js", - "devDependencies": { - "tap": "~0.4.0", - "tape": "~1.0.2", - "cli-color": "~0.2.3" - }, - "scripts": { - "test": "tap test/*.js" - }, - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/6..latest", - "chrome/20..latest", - "firefox/10..latest", - "safari/latest", - "opera/11.0..latest", - "iphone/6", - "ipad/6" - ] - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/text-table.git" - }, - "homepage": "https://github.com/substack/text-table", - "keywords": [ - "text", - "table", - "align", - "ascii", - "rows", - "tabular" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "readme": "# text-table\n\ngenerate borderless text table strings suitable for printing to stdout\n\n[![build status](https://secure.travis-ci.org/substack/text-table.png)](http://travis-ci.org/substack/text-table)\n\n[![browser support](https://ci.testling.com/substack/text-table.png)](http://ci.testling.com/substack/text-table)\n\n# example\n\n## default align\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'master', '0123456789abcdef' ],\n [ 'staging', 'fedcba9876543210' ]\n]);\nconsole.log(t);\n```\n\n```\nmaster 0123456789abcdef\nstaging fedcba9876543210\n```\n\n## left-right align\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'beep', '1024' ],\n [ 'boop', '33450' ],\n [ 'foo', '1006' ],\n [ 'bar', '45' ]\n], { align: [ 'l', 'r' ] });\nconsole.log(t);\n```\n\n```\nbeep 1024\nboop 33450\nfoo 1006\nbar 45\n```\n\n## dotted align\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'beep', '1024' ],\n [ 'boop', '334.212' ],\n [ 'foo', '1006' ],\n [ 'bar', '45.6' ],\n [ 'baz', '123.' ]\n], { align: [ 'l', '.' ] });\nconsole.log(t);\n```\n\n```\nbeep 1024\nboop 334.212\nfoo 1006\nbar 45.6\nbaz 123.\n```\n\n## centered\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'beep', '1024', 'xyz' ],\n [ 'boop', '3388450', 'tuv' ],\n [ 'foo', '10106', 'qrstuv' ],\n [ 'bar', '45', 'lmno' ]\n], { align: [ 'l', 'c', 'l' ] });\nconsole.log(t);\n```\n\n```\nbeep 1024 xyz\nboop 3388450 tuv\nfoo 10106 qrstuv\nbar 45 lmno\n```\n\n# methods\n\n``` js\nvar table = require('text-table')\n```\n\n## var s = table(rows, opts={})\n\nReturn a formatted table string `s` from an array of `rows` and some options\n`opts`.\n\n`rows` should be an array of arrays containing strings, numbers, or other\nprintable values.\n\noptions can be:\n\n* `opts.hsep` - separator to use between columns, default `' '`\n* `opts.align` - array of alignment types for each column, default `['l','l',...]`\n* `opts.stringLength` - callback function to use when calculating the string length\n\nalignment types are:\n\n* `'l'` - left\n* `'r'` - right\n* `'c'` - center\n* `'.'` - decimal\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install text-table\n```\n\n# Use with ANSI-colors\n\nSince the string length of ANSI color schemes does not equal the length\nJavaScript sees internally it is necessary to pass the a custom string length\ncalculator during the main function call.\n\nSee the `test/ansi-colors.js` file for an example.\n\n# license\n\nMIT\n", - "readmeFilename": "readme.markdown", - "bugs": { - "url": "https://github.com/substack/text-table/issues" - }, - "_id": "text-table@0.2.0", - "_shasum": "7f5ee823ae805207c00af2df4a84ec3fcfa570b4", - "_resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "_from": "text-table@>=0.2.0 <0.3.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/readme.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/readme.markdown deleted file mode 100644 index 18806acd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/readme.markdown +++ /dev/null @@ -1,134 +0,0 @@ -# text-table - -generate borderless text table strings suitable for printing to stdout - -[![build status](https://secure.travis-ci.org/substack/text-table.png)](http://travis-ci.org/substack/text-table) - -[![browser support](https://ci.testling.com/substack/text-table.png)](http://ci.testling.com/substack/text-table) - -# example - -## default align - -``` js -var table = require('text-table'); -var t = table([ - [ 'master', '0123456789abcdef' ], - [ 'staging', 'fedcba9876543210' ] -]); -console.log(t); -``` - -``` -master 0123456789abcdef -staging fedcba9876543210 -``` - -## left-right align - -``` js -var table = require('text-table'); -var t = table([ - [ 'beep', '1024' ], - [ 'boop', '33450' ], - [ 'foo', '1006' ], - [ 'bar', '45' ] -], { align: [ 'l', 'r' ] }); -console.log(t); -``` - -``` -beep 1024 -boop 33450 -foo 1006 -bar 45 -``` - -## dotted align - -``` js -var table = require('text-table'); -var t = table([ - [ 'beep', '1024' ], - [ 'boop', '334.212' ], - [ 'foo', '1006' ], - [ 'bar', '45.6' ], - [ 'baz', '123.' ] -], { align: [ 'l', '.' ] }); -console.log(t); -``` - -``` -beep 1024 -boop 334.212 -foo 1006 -bar 45.6 -baz 123. -``` - -## centered - -``` js -var table = require('text-table'); -var t = table([ - [ 'beep', '1024', 'xyz' ], - [ 'boop', '3388450', 'tuv' ], - [ 'foo', '10106', 'qrstuv' ], - [ 'bar', '45', 'lmno' ] -], { align: [ 'l', 'c', 'l' ] }); -console.log(t); -``` - -``` -beep 1024 xyz -boop 3388450 tuv -foo 10106 qrstuv -bar 45 lmno -``` - -# methods - -``` js -var table = require('text-table') -``` - -## var s = table(rows, opts={}) - -Return a formatted table string `s` from an array of `rows` and some options -`opts`. - -`rows` should be an array of arrays containing strings, numbers, or other -printable values. - -options can be: - -* `opts.hsep` - separator to use between columns, default `' '` -* `opts.align` - array of alignment types for each column, default `['l','l',...]` -* `opts.stringLength` - callback function to use when calculating the string length - -alignment types are: - -* `'l'` - left -* `'r'` - right -* `'c'` - center -* `'.'` - decimal - -# install - -With [npm](https://npmjs.org) do: - -``` -npm install text-table -``` - -# Use with ANSI-colors - -Since the string length of ANSI color schemes does not equal the length -JavaScript sees internally it is necessary to pass the a custom string length -calculator during the main function call. - -See the `test/ansi-colors.js` file for an example. - -# license - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/align.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/align.js deleted file mode 100644 index 245357f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/align.js +++ /dev/null @@ -1,18 +0,0 @@ -var test = require('tape'); -var table = require('../'); - -test('align', function (t) { - t.plan(1); - var s = table([ - [ 'beep', '1024' ], - [ 'boop', '33450' ], - [ 'foo', '1006' ], - [ 'bar', '45' ] - ], { align: [ 'l', 'r' ] }); - t.equal(s, [ - 'beep 1024', - 'boop 33450', - 'foo 1006', - 'bar 45' - ].join('\n')); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/ansi-colors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/ansi-colors.js deleted file mode 100644 index fbc5bb10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/ansi-colors.js +++ /dev/null @@ -1,32 +0,0 @@ -var test = require('tape'); -var table = require('../'); -var color = require('cli-color'); -var ansiTrim = require('cli-color/lib/trim'); - -test('center', function (t) { - t.plan(1); - var opts = { - align: [ 'l', 'c', 'l' ], - stringLength: function(s) { return ansiTrim(s).length } - }; - var s = table([ - [ - color.red('Red'), color.green('Green'), color.blue('Blue') - ], - [ - color.bold('Bold'), color.underline('Underline'), - color.italic('Italic') - ], - [ - color.inverse('Inverse'), color.strike('Strike'), - color.blink('Blink') - ], - [ 'bar', '45', 'lmno' ] - ], opts); - t.equal(ansiTrim(s), [ - 'Red Green Blue', - 'Bold Underline Italic', - 'Inverse Strike Blink', - 'bar 45 lmno' - ].join('\n')); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/center.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/center.js deleted file mode 100644 index c2c7a62a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/center.js +++ /dev/null @@ -1,18 +0,0 @@ -var test = require('tape'); -var table = require('../'); - -test('center', function (t) { - t.plan(1); - var s = table([ - [ 'beep', '1024', 'xyz' ], - [ 'boop', '3388450', 'tuv' ], - [ 'foo', '10106', 'qrstuv' ], - [ 'bar', '45', 'lmno' ] - ], { align: [ 'l', 'c', 'l' ] }); - t.equal(s, [ - 'beep 1024 xyz', - 'boop 3388450 tuv', - 'foo 10106 qrstuv', - 'bar 45 lmno' - ].join('\n')); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/dotalign.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/dotalign.js deleted file mode 100644 index f804f928..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/dotalign.js +++ /dev/null @@ -1,20 +0,0 @@ -var test = require('tape'); -var table = require('../'); - -test('dot align', function (t) { - t.plan(1); - var s = table([ - [ 'beep', '1024' ], - [ 'boop', '334.212' ], - [ 'foo', '1006' ], - [ 'bar', '45.6' ], - [ 'baz', '123.' ] - ], { align: [ 'l', '.' ] }); - t.equal(s, [ - 'beep 1024', - 'boop 334.212', - 'foo 1006', - 'bar 45.6', - 'baz 123.' - ].join('\n')); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/doubledot.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/doubledot.js deleted file mode 100644 index 659b57c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/doubledot.js +++ /dev/null @@ -1,24 +0,0 @@ -var test = require('tape'); -var table = require('../'); - -test('dot align', function (t) { - t.plan(1); - var s = table([ - [ '0.1.2' ], - [ '11.22.33' ], - [ '5.6.7' ], - [ '1.22222' ], - [ '12345.' ], - [ '5555.' ], - [ '123' ] - ], { align: [ '.' ] }); - t.equal(s, [ - ' 0.1.2', - '11.22.33', - ' 5.6.7', - ' 1.22222', - '12345.', - ' 5555.', - ' 123' - ].join('\n')); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/table.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/table.js deleted file mode 100644 index 9c670146..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/text-table/test/table.js +++ /dev/null @@ -1,14 +0,0 @@ -var test = require('tape'); -var table = require('../'); - -test('table', function (t) { - t.plan(1); - var s = table([ - [ 'master', '0123456789abcdef' ], - [ 'staging', 'fedcba9876543210' ] - ]); - t.equal(s, [ - 'master 0123456789abcdef', - 'staging fedcba9876543210' - ].join('\n')); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/LICENSE deleted file mode 100644 index 05eeeb88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/README.md deleted file mode 100644 index 81166753..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/README.md +++ /dev/null @@ -1,17 +0,0 @@ -Use this module to convert a username/groupname to a uid/gid number. - -Usage: - -``` -npm install uid-number -``` - -Then, in your node program: - -```javascript -var uidNumber = require("uid-number") -uidNumber("isaacs", function (er, uid, gid) { - // gid is null because we didn't ask for a group name - // uid === 24561 because that's my number. -}) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/get-uid-gid.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/get-uid-gid.js deleted file mode 100755 index 0b391748..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/get-uid-gid.js +++ /dev/null @@ -1,24 +0,0 @@ -if (module !== require.main) { - throw new Error("This file should not be loaded with require()") -} - -if (!process.getuid || !process.getgid) { - throw new Error("this file should not be called without uid/gid support") -} - -var argv = process.argv.slice(2) - , user = argv[0] || process.getuid() - , group = argv[1] || process.getgid() - -if (!isNaN(user)) user = +user -if (!isNaN(group)) group = +group - -console.error([user, group]) - -try { - process.setgid(group) - process.setuid(user) - console.log(JSON.stringify({uid:+process.getuid(), gid:+process.getgid()})) -} catch (ex) { - console.log(JSON.stringify({error:ex.message,errno:ex.errno})) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/package.json deleted file mode 100644 index a83a479f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "uid-number", - "description": "Convert a username/group name to a uid/gid number", - "version": "0.0.6", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/uid-number.git" - }, - "main": "uid-number.js", - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" - }, - "license": "ISC", - "gitHead": "aab48f5d6bda85794946b26d945d2ee452e0e9ab", - "bugs": { - "url": "https://github.com/isaacs/uid-number/issues" - }, - "homepage": "https://github.com/isaacs/uid-number", - "_id": "uid-number@0.0.6", - "scripts": {}, - "_shasum": "0ea10e8035e8eb5b8e4449f06da1c730663baa81", - "_from": "uid-number@0.0.6", - "_npmVersion": "2.1.3", - "_nodeVersion": "0.10.31", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "dist": { - "shasum": "0ea10e8035e8eb5b8e4449f06da1c730663baa81", - "tarball": "http://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/uid-number.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/uid-number.js deleted file mode 100644 index bd62184f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/uid-number/uid-number.js +++ /dev/null @@ -1,59 +0,0 @@ -module.exports = uidNumber - -// This module calls into get-uid-gid.js, which sets the -// uid and gid to the supplied argument, in order to find out their -// numeric value. This can't be done in the main node process, -// because otherwise node would be running as that user from this -// point on. - -var child_process = require("child_process") - , path = require("path") - , uidSupport = process.getuid && process.setuid - , uidCache = {} - , gidCache = {} - -function uidNumber (uid, gid, cb) { - if (!uidSupport) return cb() - if (typeof cb !== "function") cb = gid, gid = null - if (typeof cb !== "function") cb = uid, uid = null - if (gid == null) gid = process.getgid() - if (uid == null) uid = process.getuid() - if (!isNaN(gid)) gid = gidCache[gid] = +gid - if (!isNaN(uid)) uid = uidCache[uid] = +uid - - if (uidCache.hasOwnProperty(uid)) uid = uidCache[uid] - if (gidCache.hasOwnProperty(gid)) gid = gidCache[gid] - - if (typeof gid === "number" && typeof uid === "number") { - return process.nextTick(cb.bind(null, null, uid, gid)) - } - - var getter = require.resolve("./get-uid-gid.js") - - child_process.execFile( process.execPath - , [getter, uid, gid] - , function (code, out, stderr) { - if (code) { - var er = new Error("could not get uid/gid\n" + stderr) - er.code = code - return cb(er) - } - - try { - out = JSON.parse(out+"") - } catch (ex) { - return cb(ex) - } - - if (out.error) { - var er = new Error(out.error) - er.errno = out.errno - return cb(er) - } - - if (isNaN(out.uid) || isNaN(out.gid)) return cb(new Error( - "Could not get uid/gid: "+JSON.stringify(out))) - - cb(null, uidCache[uid] = +out.uid, gidCache[gid] = +out.gid) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/.npmignore deleted file mode 100644 index 59d842ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/.npmignore +++ /dev/null @@ -1,28 +0,0 @@ -# Logs -logs -*.log - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directory -# Commenting this out is preferred by some people, see -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- -node_modules - -# Users Environment Variables -.lock-wscript diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/ChangeLog b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/ChangeLog deleted file mode 100644 index 12546745..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/ChangeLog +++ /dev/null @@ -1,9 +0,0 @@ -2015-01-15 Sam Mikes - - * index.js: (convert_fromString) accept decimal strings provided they - don't begin with '0' - -2015-01-14 Sam Mikes - - * index.js: initial rev - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/LICENSE deleted file mode 100644 index e637724b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Sam Mikes - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/README.md deleted file mode 100644 index 80009ae7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# umask - -Convert umask from string <-> number. - -## Installation & Use - -``` -$ npm install -S umask - -var umask = require('umask'); - -console.log(umask.toString(18)); // 0022 - -console.log(umask.fromString('0777')) // 511 -``` - -## API - -### `toString( val )` - -Converts `val` to a 0-padded octal string. `val` is assumed to be a -Number in the correct range (0..511) - -### `fromString( val, [cb] )` - -Converts `val` to a Number that can be used as a umask. `val` can -be of the following forms: - - * String containing octal number (leading 0) - * String containing decimal number - * Number - -In all cases above, the value obtained is then converted to an integer and -checked against the legal `umask` range 0..511 - -`fromString` can be used as a simple converter, with no error feedback, by -omitting the optional callback argument `cb`: - -``` - var mask = umask.fromString(val); - - // mask is now the umask descibed by val or - // the default, 0022 (18 dec) -``` - -The callback arguments are `(err, val)` where `err` is either `null` or an -Error object and `val` is either the converted umask or the default umask, `0022`. - -``` - umask.fromString(val, function (err, val) { - if (err) { - console.error("invalid umask: " + err.message) - } - - /* do something with val */ - }); -``` - -The callback, if provided, is always called **synchronously**. - -### `validate( data, k, val )` - -This is a validation function of the form expected by `nopt`. If -`val` is a valid umask, the function returns true and sets `data[k]`. -If `val` is not a valid umask, the function returns false. - -The `validate` function is stricter than `fromString`: it only accepts -Number or octal String values, and the String value must begin with `0`. -The `validate` function does **not** accept Strings containing decimal -numbers. - -# Maintainer - -Sam Mikes - -# License - -MIT \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/index.js deleted file mode 100644 index 501c0e0c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/index.js +++ /dev/null @@ -1,77 +0,0 @@ -'use strict'; - -var util = require("util"); - -function toString(val) { - val = val.toString(8); - while (val.length < 4) { - val = "0" + val; - } - return val; -} - -var defaultUmask = 18; // 0022; -var defaultUmaskString = toString(defaultUmask); - -function validate(data, k, val) { - // must be either an integer or an octal string. - if (typeof val === "number" && !isNaN(val)) { - data[k] = val; - return true; - } - - if (typeof val === "string") { - if (val.charAt(0) !== "0") { - return false; - } - data[k] = parseInt(val, 8); - return true; - } - - return false; -} - -function convert_fromString(val, cb) { - if (typeof val === "string") { - // check for octal string first - if (val.charAt(0) === '0' && /^[0-7]+$/.test(val)) { - val = parseInt(val, 8); - } else if (val.charAt(0) !== '0' && /^[0-9]+$/.test(val)) { - // legacy support for decimal strings - val = parseInt(val, 10); - } else { - return cb(new Error(util.format("Expected octal string, got %j, defaulting to %j", - val, defaultUmaskString)), - defaultUmask); - } - } else if (typeof val !== "number") { - return cb(new Error(util.format("Expected number or octal string, got %j, defaulting to %j", - val, defaultUmaskString)), - defaultUmask); - } - - val = Math.floor(val); - - if ((val < 0) || (val > 511)) { - return cb(new Error(util.format("Must be in range 0..511 (0000..0777), got %j", val)), - defaultUmask); - } - - cb(null, val); -} - -function fromString(val, cb) { - - // synchronous callback, no zalgo - convert_fromString(val, cb || function (err, result) { - /*jslint unparam:true*/ - val = result; - }); - - return val; -} - -exports.toString = toString; -exports.fromString = fromString; -exports.validate = validate; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/package.json deleted file mode 100644 index ed84e346..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "umask", - "version": "1.1.0", - "description": "convert umask from string <-> number", - "main": "index.js", - "scripts": { - "test": "lab -ct 100", - "lint": "jslint --terse --latest *.js test/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/smikes/umask.git" - }, - "keywords": [ - "umask" - ], - "author": { - "name": "Sam Mikes", - "email": "smikes@cubane.com" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/smikes/umask/issues" - }, - "homepage": "https://github.com/smikes/umask", - "devDependencies": { - "code": "^1.2.1", - "jslint": "^0.7.2", - "lab": "^5.2.0" - }, - "gitHead": "63d821e4d0b06ef9a4b727c5fbe5976e9534d76e", - "_id": "umask@1.1.0", - "_shasum": "f29cebf01df517912bb58ff9c4e50fde8e33320d", - "_from": "umask@>=1.1.0 <1.2.0", - "_npmVersion": "2.2.0", - "_nodeVersion": "0.10.35", - "_npmUser": { - "name": "smikes", - "email": "smikes@cubane.com" - }, - "maintainers": [ - { - "name": "smikes", - "email": "smikes@cubane.com" - } - ], - "dist": { - "shasum": "f29cebf01df517912bb58ff9c4e50fde8e33320d", - "tarball": "http://registry.npmjs.org/umask/-/umask-1.1.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/test/simple.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/test/simple.js deleted file mode 100644 index 8f29ae74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/umask/test/simple.js +++ /dev/null @@ -1,166 +0,0 @@ -'use strict'; - -var umask = require('..'); - -var Code = require('code'); -var Lab = require('lab'); -var lab = Lab.script(); -exports.lab = lab; - -var describe = lab.describe; -var it = lab.it; -var expect = Code.expect; - -describe('validates umask', function () { - // signature of validator: validate(obj, key, val) - // store valid value in obj[key] - // return false if invalid - - it('accepts numbers', function (done) { - var o = {}, - result = false; - - result = umask.validate(o, 'umask', 0); - expect(result).to.equal(true); - expect(o.umask).to.equal(0); - - result = umask.validate(o, 'umask', 511); - expect(result).to.equal(true); - expect(o.umask).to.equal(511); - done(); - }); - - it('accepts strings', function (done) { - var o = {}, - result; - - result = umask.validate(o, 'umask', "0"); - expect(result).to.equal(true); - expect(o.umask).to.equal(0); - - result = umask.validate(o, 'umask', "0777"); - expect(result).to.equal(true); - expect(o.umask).to.equal(511); - - done(); - }); - - it('rejects other types', function (done) { - expect(umask.validate(undefined, undefined, false)).to.equal(false); - expect(umask.validate(undefined, undefined, {})).to.equal(false); - - done(); - }); - - it('rejects non-octalish strings', function (done) { - expect(umask.validate(undefined, undefined, "1")).to.equal(false); - - done(); - }); - - it('rejects NaN strings', function (done) { - expect(umask.validate(undefined, undefined, NaN)).to.equal(false); - - done(); - }); -}); - -describe('umask to string', function () { - it("converts umask to string", function (done) { - expect(umask.toString(0)).to.equal("0000"); - expect(umask.toString(1)).to.equal("0001"); - expect(umask.toString(7)).to.equal("0007"); - expect(umask.toString(8)).to.equal("0010"); - expect(umask.toString(511)).to.equal("0777"); - expect(umask.toString(18)).to.equal("0022"); - expect(umask.toString(16)).to.equal("0020"); - done(); - }); -}); - -describe('umask from string', function () { - it('converts valid values', function (done) { - expect(umask.fromString("0000")).to.equal(0); - expect(umask.fromString("0")).to.equal(0); - expect(umask.fromString("0777")).to.equal(511); - expect(umask.fromString("0024")).to.equal(20); - - expect(umask.fromString(0)).to.equal(0); - expect(umask.fromString(20)).to.equal(20); - expect(umask.fromString(21)).to.equal(21); - expect(umask.fromString(511)).to.equal(511); - - done(); - }); - - it('converts valid values', function (done) { - expect(umask.fromString("0000")).to.equal(0); - expect(umask.fromString("0")).to.equal(0); - expect(umask.fromString("010")).to.equal(8); - expect(umask.fromString("0777")).to.equal(511); - expect(umask.fromString("0024")).to.equal(20); - - expect(umask.fromString("8")).to.equal(8); - expect(umask.fromString("9")).to.equal(9); - expect(umask.fromString("18")).to.equal(18); - expect(umask.fromString("16")).to.equal(16); - - expect(umask.fromString(0)).to.equal(0); - expect(umask.fromString(20)).to.equal(20); - expect(umask.fromString(21)).to.equal(21); - expect(umask.fromString(511)).to.equal(511); - - expect(umask.fromString(0.1)).to.equal(0); - expect(umask.fromString(511.1)).to.equal(511); - - done(); - }); - - it('errors on empty string', function (done) { - umask.fromString("", function (err, val) { - expect(err.message).to.equal('Expected octal string, got "", defaulting to "0022"'); - expect(val).to.equal(18); - done(); - }); - }); - - it('errors on invalid octal string', function (done) { - umask.fromString("099", function (err, val) { - expect(err.message).to.equal('Expected octal string, got "099", defaulting to "0022"'); - expect(val).to.equal(18); - done(); - }); - }); - - it('errors when non-string, non-number (boolean)', function (done) { - umask.fromString(false, function (err, val) { - expect(err.message).to.equal('Expected number or octal string, got false, defaulting to "0022"'); - expect(val).to.equal(18); - done(); - }); - }); - - it('errors when non-string, non-number (object)', function (done) { - umask.fromString({}, function (err, val) { - expect(err.message).to.equal('Expected number or octal string, got {}, defaulting to "0022"'); - expect(val).to.equal(18); - done(); - }); - }); - - it('errors when out of range (<0)', function (done) { - umask.fromString(-1, function (err, val) { - expect(err.message).to.equal('Must be in range 0..511 (0000..0777), got -1'); - expect(val).to.equal(18); - done(); - }); - }); - - it('errors when out of range (>511)', function (done) { - umask.fromString(512, function (err, val) { - expect(err.message).to.equal('Must be in range 0..511 (0000..0777), got 512'); - expect(val).to.equal(18); - done(); - }); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/.npmignore deleted file mode 100644 index 1ab9fa63..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -*~ -.#* -DEADJOE - -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/README.md deleted file mode 100644 index 4b5b241e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/README.md +++ /dev/null @@ -1,33 +0,0 @@ -unique-filename -=============== - -Generate a unique filename for use in temporary directories or caches. - -``` -var uniqueFilename = require('unique-filename') - -// returns something like: /tmp/912ec803b2ce49e4a541068d495ab570 -var randomTmpfile = uniqueFilename(os.tmpdir()) - -// returns something like: /tmp/my-test-912ec803b2ce49e4a541068d495ab570 -var randomPrefixedTmpfile = uniqueFilename(os.tmpdir(), 'my-test') - -var uniqueTmpfile = uniqueFilename('/tmp', 'testing', '/my/thing/to/uniq/on') -``` - -### uniqueFilename(*dir*, *fileprefix*, *uniqstr*) → String - -Returns the full path of a unique filename that looks like: -`dir/prefix-912ec803b2ce49e4a541068d495ab570` -or `dir/912ec803b2ce49e4a541068d495ab570` - -*dir* – The path you want the filename in. `os.tmpdir()` is a good choice for this. - -*fileprefix* – A string to append prior to the unique part of the filename. -The parameter is required if *uniqstr* is also passed in but is otherwise -optional and can be `undefined`/`null`/`''`. If present and not empty -then this string plus a hyphen are prepended to the unique part. - -*uniqstr* – Optional, if not passed the unique part of the resulting -filename will be random. If passed in it will be generated from this string -in a reproducable way. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/index.js deleted file mode 100644 index 02bf1e27..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/index.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var path = require('path') - -var uniqueSlug = require('unique-slug') - -module.exports = function (filepath, prefix, uniq) { - return path.join(filepath, (prefix ? prefix + '-' : '') + uniqueSlug(uniq)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/.npmignore deleted file mode 100644 index 2833ae87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -*~ -.#* -DEADJOE - -node_modules -.nyc_output/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/.travis.yml deleted file mode 100644 index 3bc5d90c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: node_js -sudo: false -before_install: - - "npm -g install npm" -node_js: - - "0.8" - - "0.10" - - "0.12" - - "iojs" - - "4" - - "5" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/README.md deleted file mode 100644 index 52de4277..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/README.md +++ /dev/null @@ -1,20 +0,0 @@ -unique-slug -=========== - -Generate a unique character string suitible for use in files and URLs. - -``` -var uniqueSlug = require('unique-slug') - -var randomSlug = uniqueSlug() -var fileSlug = uniqueSlug('/etc/passwd') -``` - -### uniqueSlug(*str*) → String (8 chars) - -If *str* is passed in then the return value will be its murmur hash in -hex. - -If *str* is not passed in, it will be 4 bytes coverted into 8 hex -characters, generated by `crypto.pseudoRandomBytes`. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/index.js deleted file mode 100644 index 7c5d6c75..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/index.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict' -var crypto = require('crypto') -var MurmurHash3 = require('imurmurhash') - -module.exports = function (uniq) { - if (uniq) { - var hash = new MurmurHash3(uniq) - return ('00000000' + hash.result().toString(16)).substr(-8) - } else { - // Called without a callback, because this interface should neither block - // nor error (by contrast with randomBytes which will throw an exception - // without enough entropy). - // - // However, due to a change in Node 0.10.27+, pseudoRandomBytes is now the - // same as randomBytes, and may in fact block in situations where - // insufficent entropy is available. - return crypto.pseudoRandomBytes(4).toString('hex') - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/package.json deleted file mode 100644 index 1460ebce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "_args": [ - [ - "unique-slug@^2.0.0", - "/Users/ogd/Documents/projects/npm/npm/node_modules/unique-filename" - ] - ], - "_from": "unique-slug@>=2.0.0 <3.0.0", - "_id": "unique-slug@2.0.0", - "_inCache": true, - "_installable": true, - "_location": "/unique-filename/unique-slug", - "_nodeVersion": "5.1.0", - "_npmUser": { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - "_npmVersion": "3.5.1", - "_phantomChildren": {}, - "_requested": { - "name": "unique-slug", - "raw": "unique-slug@^2.0.0", - "rawSpec": "^2.0.0", - "scope": null, - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "_requiredBy": [ - "/unique-filename" - ], - "_shasum": "db6676e7c7cc0629878ff196097c78855ae9f4ab", - "_shrinkwrap": null, - "_spec": "unique-slug@^2.0.0", - "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/unique-filename", - "author": { - "email": "me@re-becca.org", - "name": "Rebecca Turner", - "url": "http://re-becca.org" - }, - "bugs": { - "url": "https://github.com/iarna/unique-slug/issues" - }, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "description": "Generate a unique character string suitible for use in files and URLs.", - "devDependencies": { - "standard": "^5.4.1", - "tap": "^2.3.1" - }, - "directories": {}, - "dist": { - "shasum": "db6676e7c7cc0629878ff196097c78855ae9f4ab", - "tarball": "http://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz" - }, - "gitHead": "b1d9d082ee5bd381961a2011a9aa3d9988e83ca7", - "homepage": "https://github.com/iarna/unique-slug#readme", - "keywords": [], - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - } - ], - "name": "unique-slug", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/iarna/unique-slug.git" - }, - "scripts": { - "test": "standard && tap --coverage test" - }, - "version": "2.0.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/test/index.js deleted file mode 100644 index 0f4ccad0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug/test/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict' -var t = require('tap') -var uniqueSlug = require('../index.js') - -t.plan(5) -var slugA = uniqueSlug() -t.is(slugA.length, 8, 'random slugs are 8 chars') -t.notEqual(slugA, uniqueSlug(), "two slugs aren't the same") -var base = '/path/to/thingy' -var slugB = uniqueSlug(base) -t.is(slugB.length, 8, 'string based slugs are 8 chars') -t.is(slugB, uniqueSlug(base), 'two string based slugs, from the same string are the same') -t.notEqual(slugB, uniqueSlug(slugA), 'two string based slongs, from diff strings are different') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/package.json deleted file mode 100644 index 12a351ae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "_args": [ - [ - "unique-filename@^1.1.0", - "/Users/ogd/Documents/projects/npm/npm" - ] - ], - "_from": "unique-filename@>=1.1.0 <2.0.0", - "_id": "unique-filename@1.1.0", - "_inCache": true, - "_installable": true, - "_location": "/unique-filename", - "_nodeVersion": "4.2.2", - "_npmUser": { - "email": "me@re-becca.org", - "name": "iarna" - }, - "_npmVersion": "2.14.13", - "_phantomChildren": { - "imurmurhash": "0.1.4" - }, - "_requested": { - "name": "unique-filename", - "raw": "unique-filename@^1.1.0", - "rawSpec": "^1.1.0", - "scope": null, - "spec": ">=1.1.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "_shasum": "d05f2fe4032560871f30e93cbe735eea201514f3", - "_shrinkwrap": null, - "_spec": "unique-filename@^1.1.0", - "_where": "/Users/ogd/Documents/projects/npm/npm", - "author": { - "email": "me@re-becca.org", - "name": "Rebecca Turner", - "url": "http://re-becca.org/" - }, - "bugs": { - "url": "https://github.com/iarna/unique-filename/issues" - }, - "dependencies": { - "unique-slug": "^2.0.0" - }, - "description": "Generate a unique filename for use in temporary directories or caches.", - "devDependencies": { - "standard": "^5.4.1", - "tap": "^2.3.1" - }, - "directories": {}, - "dist": { - "shasum": "d05f2fe4032560871f30e93cbe735eea201514f3", - "tarball": "http://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz" - }, - "gitHead": "cb31644c71f842258a8019e0e6ef8f2b8533a5c0", - "homepage": "https://github.com/iarna/unique-filename", - "keywords": [], - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - } - ], - "name": "unique-filename", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/iarna/unique-filename.git" - }, - "scripts": { - "test": "standard && tap test" - }, - "version": "1.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/test/index.js deleted file mode 100644 index 105b4e52..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unique-filename/test/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'sue strict' -var t = require('tap') -var uniqueFilename = require('../index.js') - -t.plan(6) - -var randomTmpfile = uniqueFilename('tmp') -t.like(randomTmpfile, /^tmp.[a-f0-9]{8}$/, 'random tmp file') - -var randomAgain = uniqueFilename('tmp') -t.notEqual(randomAgain, randomTmpfile, 'random tmp files are not the same') - -var randomPrefixedTmpfile = uniqueFilename('tmp', 'my-test') -t.like(randomPrefixedTmpfile, /^tmp.my-test-[a-f0-9]{8}$/, 'random prefixed tmp file') - -var randomPrefixedAgain = uniqueFilename('tmp', 'my-test') -t.notEqual(randomPrefixedAgain, randomPrefixedTmpfile, 'random prefixed tmp files are not the same') - -var uniqueTmpfile = uniqueFilename('tmp', 'testing', '/my/thing/to/uniq/on') -t.like(uniqueTmpfile, /^tmp.testing-7ddd44c0$/, 'unique filename') - -var uniqueAgain = uniqueFilename('tmp', 'testing', '/my/thing/to/uniq/on') -t.is(uniqueTmpfile, uniqueAgain, 'same unique string component produces same filename') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/HISTORY.md deleted file mode 100644 index 85e0f8d7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/HISTORY.md +++ /dev/null @@ -1,4 +0,0 @@ -1.0.0 / 2015-06-14 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/LICENSE deleted file mode 100644 index aed01382..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/README.md deleted file mode 100644 index e536ad2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# unpipe - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Unpipe a stream from all destinations. - -## Installation - -```sh -$ npm install unpipe -``` - -## API - -```js -var unpipe = require('unpipe') -``` - -### unpipe(stream) - -Unpipes all destinations from a given stream. With stream 2+, this is -equivalent to `stream.unpipe()`. When used with streams 1 style streams -(typically Node.js 0.8 and below), this module attempts to undo the -actions done in `stream.pipe(dest)`. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/unpipe.svg -[npm-url]: https://npmjs.org/package/unpipe -[node-image]: https://img.shields.io/node/v/unpipe.svg -[node-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/stream-utils/unpipe.svg -[travis-url]: https://travis-ci.org/stream-utils/unpipe -[coveralls-image]: https://img.shields.io/coveralls/stream-utils/unpipe.svg -[coveralls-url]: https://coveralls.io/r/stream-utils/unpipe?branch=master -[downloads-image]: https://img.shields.io/npm/dm/unpipe.svg -[downloads-url]: https://npmjs.org/package/unpipe diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/index.js deleted file mode 100644 index 15c3d97a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/index.js +++ /dev/null @@ -1,69 +0,0 @@ -/*! - * unpipe - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = unpipe - -/** - * Determine if there are Node.js pipe-like data listeners. - * @private - */ - -function hasPipeDataListeners(stream) { - var listeners = stream.listeners('data') - - for (var i = 0; i < listeners.length; i++) { - if (listeners[i].name === 'ondata') { - return true - } - } - - return false -} - -/** - * Unpipe a stream from all destinations. - * - * @param {object} stream - * @public - */ - -function unpipe(stream) { - if (!stream) { - throw new TypeError('argument stream is required') - } - - if (typeof stream.unpipe === 'function') { - // new-style - stream.unpipe() - return - } - - // Node.js 0.8 hack - if (!hasPipeDataListeners(stream)) { - return - } - - var listener - var listeners = stream.listeners('close') - - for (var i = 0; i < listeners.length; i++) { - listener = listeners[i] - - if (listener.name !== 'cleanup' && listener.name !== 'onclose') { - continue - } - - // invoke the listener - listener.call(stream) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/package.json deleted file mode 100644 index 25fbed73..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/unpipe/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "unpipe", - "description": "Unpipe a stream from all destinations", - "version": "1.0.0", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/stream-utils/unpipe.git" - }, - "devDependencies": { - "istanbul": "0.3.15", - "mocha": "2.2.5", - "readable-stream": "1.1.13" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "readme": "# unpipe\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Node.js Version][node-image]][node-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nUnpipe a stream from all destinations.\n\n## Installation\n\n```sh\n$ npm install unpipe\n```\n\n## API\n\n```js\nvar unpipe = require('unpipe')\n```\n\n### unpipe(stream)\n\nUnpipes all destinations from a given stream. With stream 2+, this is\nequivalent to `stream.unpipe()`. When used with streams 1 style streams\n(typically Node.js 0.8 and below), this module attempts to undo the\nactions done in `stream.pipe(dest)`.\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/unpipe.svg\n[npm-url]: https://npmjs.org/package/unpipe\n[node-image]: https://img.shields.io/node/v/unpipe.svg\n[node-url]: http://nodejs.org/download/\n[travis-image]: https://img.shields.io/travis/stream-utils/unpipe.svg\n[travis-url]: https://travis-ci.org/stream-utils/unpipe\n[coveralls-image]: https://img.shields.io/coveralls/stream-utils/unpipe.svg\n[coveralls-url]: https://coveralls.io/r/stream-utils/unpipe?branch=master\n[downloads-image]: https://img.shields.io/npm/dm/unpipe.svg\n[downloads-url]: https://npmjs.org/package/unpipe\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/stream-utils/unpipe/issues" - }, - "homepage": "https://github.com/stream-utils/unpipe#readme", - "_id": "unpipe@1.0.0", - "_shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec", - "_resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "_from": "unpipe@>=1.0.0 <1.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/LICENSE deleted file mode 100644 index a5e905d5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/LICENSE +++ /dev/null @@ -1,174 +0,0 @@ -SPDX:Apache-2.0 - -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and -distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the -copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other -entities that control, are controlled by, or are under common control -with that entity. For the purposes of this definition, "control" means -(i) the power, direct or indirect, to cause the direction or management -of such entity, whether by contract or otherwise, or (ii) ownership of -fifty percent (50%) or more of the outstanding shares, or (iii) -beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation source, -and configuration files. - -"Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but not -limited to compiled object code, generated documentation, and -conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object -form, made available under the License, as indicated by a copyright -notice that is included in or attached to the work (an example is -provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object -form, that is based on (or derived from) the Work and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. For the purposes -of this License, Derivative Works shall not include works that remain -separable from, or merely link (or bind by name) to the interfaces of, -the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original -version of the Work and any modifications or additions to that Work or -Derivative Works thereof, that is intentionally submitted to Licensor -for inclusion in the Work by the copyright owner or by an individual or -Legal Entity authorized to submit on behalf of the copyright owner. For -the purposes of this definition, "submitted" means any form of -electronic, verbal, or written communication sent to the Licensor or its -representatives, including but not limited to communication on -electronic mailing lists, source code control systems, and issue -tracking systems that are managed by, or on behalf of, the Licensor for -the purpose of discussing and improving the Work, but excluding -communication that is conspicuously marked or otherwise designated in -writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on -behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright -license to reproduce, prepare Derivative Works of, publicly display, -publicly perform, sublicense, and distribute the Work and such -Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this -License, each Contributor hereby grants to You a perpetual, worldwide, -non-exclusive, no-charge, royalty-free, irrevocable (except as stated in -this section) patent license to make, have made, use, offer to sell, -sell, import, and otherwise transfer the Work, where such license -applies only to those patent claims licensable by such Contributor that -are necessarily infringed by their Contribution(s) alone or by -combination of their Contribution(s) with the Work to which such -Contribution(s) was submitted. If You institute patent litigation -against any entity (including a cross-claim or counterclaim in a -lawsuit) alleging that the Work or a Contribution incorporated within -the Work constitutes direct or contributory patent infringement, then -any patent licenses granted to You under this License for that Work -shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work -or Derivative Works thereof in any medium, with or without -modifications, and in Source or Object form, provided that You meet the -following conditions: - -(a) You must give any other recipients of the Work or Derivative Works a -copy of this License; and - -(b) You must cause any modified files to carry prominent notices stating -that You changed the files; and - -(c) You must retain, in the Source form of any Derivative Works that You -distribute, all copyright, patent, trademark, and attribution notices -from the Source form of the Work, excluding those notices that do not -pertain to any part of the Derivative Works; and - -(d) If the Work includes a "NOTICE" text file as part of its -distribution, then any Derivative Works that You distribute must include -a readable copy of the attribution notices contained within such NOTICE -file, excluding those notices that do not pertain to any part of the -Derivative Works, in at least one of the following places: within a -NOTICE text file distributed as part of the Derivative Works; within the -Source form or documentation, if provided along with the Derivative -Works; or, within a display generated by the Derivative Works, if and -wherever such third-party notices normally appear. The contents of the -NOTICE file are for informational purposes only and do not modify the -License. You may add Your own attribution notices within Derivative -Works that You distribute, alongside or as an addendum to the NOTICE -text from the Work, provided that such additional attribution notices -cannot be construed as modifying the License. - -You may add Your own copyright statement to Your modifications and may -provide additional or different license terms and conditions for use, -reproduction, or distribution of Your modifications, or for any such -Derivative Works as a whole, provided Your use, reproduction, and -distribution of the Work otherwise complies with the conditions stated -in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, -any Contribution intentionally submitted for inclusion in the Work by -You to the Licensor shall be under the terms and conditions of this -License, without any additional terms or conditions. Notwithstanding the -above, nothing herein shall supersede or modify the terms of any -separate license agreement you may have executed with Licensor regarding -such Contributions. - -6. Trademarks. This License does not grant permission to use the trade -names, trademarks, service marks, or product names of the Licensor, -except as required for reasonable and customary use in describing the -origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed -to in writing, Licensor provides the Work (and each Contributor provides -its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS -OF ANY KIND, either express or implied, including, without limitation, -any warranties or conditions of TITLE, NON-INFRINGEMENT, -MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely -responsible for determining the appropriateness of using or -redistributing the Work and assume any risks associated with Your -exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, -whether in tort (including negligence), contract, or otherwise, unless -required by applicable law (such as deliberate and grossly negligent -acts) or agreed to in writing, shall any Contributor be liable to You -for damages, including any direct, indirect, special, incidental, or -consequential damages of any character arising as a result of this -License or out of the use or inability to use the Work (including but -not limited to damages for loss of goodwill, work stoppage, computer -failure or malfunction, or any and all other commercial damages or -losses), even if such Contributor has been advised of the possibility of -such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the -Work or Derivative Works thereof, You may choose to offer, and charge a -fee for, acceptance of support, warranty, indemnity, or other liability -obligations and/or rights consistent with this License. However, in -accepting such obligations, You may act only on Your own behalf and on -Your sole responsibility, not on behalf of any other Contributor, and -only if You agree to indemnify, defend, and hold each Contributor -harmless for any liability incurred by, or claims asserted against, such -Contributor by reason of your accepting any such warranty or additional -liability. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/README.md deleted file mode 100644 index c5b3bfcf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/README.md +++ /dev/null @@ -1,113 +0,0 @@ -validate-npm-package-license -============================ - -Give me a string and I'll tell you if it's a valid npm package license string. - -```javascript -var valid = require('validate-npm-package-license'); -``` - -SPDX license identifiers are valid license strings: - -```javascript - -var assert = require('assert'); -var validSPDXExpression = { - validForNewPackages: true, - validForOldPackages: true, - spdx: true -}; - -assert.deepEqual(valid('MIT'), validSPDXExpression); -assert.deepEqual(valid('BSD-2-Clause'), validSPDXExpression); -assert.deepEqual(valid('Apache-2.0'), validSPDXExpression); -assert.deepEqual(valid('ISC'), validSPDXExpression); -``` -The function will return a warning and suggestion for nearly-correct license identifiers: - -```javascript -assert.deepEqual( - valid('Apache 2.0'), - { - validForOldPackages: false, - validForNewPackages: false, - warnings: [ - 'license should be ' + - 'a valid SPDX license expression (without "LicenseRef"), ' + - '"UNLICENSED", or ' + - '"SEE LICENSE IN "', - 'license is similar to the valid expression "Apache-2.0"' - ] - } -); -``` - -SPDX expressions are valid, too ... - -```javascript -// Simple SPDX license expression for dual licensing -assert.deepEqual( - valid('(GPL-3.0 OR BSD-2-Clause)'), - validSPDXExpression -); -``` - -... except if they contain `LicenseRef`: - -```javascript -var warningAboutLicenseRef = { - validForOldPackages: false, - validForNewPackages: false, - spdx: true, - warnings: [ - 'license should be ' + - 'a valid SPDX license expression (without "LicenseRef"), ' + - '"UNLICENSED", or ' + - '"SEE LICENSE IN "', - ] -}; - -assert.deepEqual( - valid('LicenseRef-Made-Up'), - warningAboutLicenseRef -); - -assert.deepEqual( - valid('(MIT OR LicenseRef-Made-Up)'), - warningAboutLicenseRef -); -``` - -If you can't describe your licensing terms with standardized SPDX identifiers, put the terms in a file in the package and point users there: - -```javascript -assert.deepEqual( - valid('SEE LICENSE IN LICENSE.txt'), - { - validForNewPackages: true, - validForOldPackages: true, - inFile: 'LICENSE.txt' - } -); - -assert.deepEqual( - valid('SEE LICENSE IN license.md'), - { - validForNewPackages: true, - validForOldPackages: true, - inFile: 'license.md' - } -); -``` - -If there aren't any licensing terms, use `UNLICENSED`: - -```javascript -var unlicensed = { - validForNewPackages: true, - validForOldPackages: true, - unlicensed: true -}; -assert.deepEqual(valid('UNLICENSED'), unlicensed); -assert.deepEqual(valid('UNLICENCED'), unlicensed); -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/index.js deleted file mode 100644 index 2ad98d9d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/index.js +++ /dev/null @@ -1,84 +0,0 @@ -var parse = require('spdx-expression-parse'); -var correct = require('spdx-correct'); - -var genericWarning = ( - 'license should be ' + - 'a valid SPDX license expression (without "LicenseRef"), ' + - '"UNLICENSED", or ' + - '"SEE LICENSE IN "' -); - -var fileReferenceRE = /^SEE LICEN[CS]E IN (.+)$/; - -function startsWith(prefix, string) { - return string.slice(0, prefix.length) === prefix; -} - -function usesLicenseRef(ast) { - if (ast.hasOwnProperty('license')) { - var license = ast.license; - return ( - startsWith('LicenseRef', license) || - startsWith('DocumentRef', license) - ); - } else { - return ( - usesLicenseRef(ast.left) || - usesLicenseRef(ast.right) - ); - } -} - -module.exports = function(argument) { - var ast; - - try { - ast = parse(argument); - } catch (e) { - var match - if ( - argument === 'UNLICENSED' || - argument === 'UNLICENCED' - ) { - return { - validForOldPackages: true, - validForNewPackages: true, - unlicensed: true - }; - } else if (match = fileReferenceRE.exec(argument)) { - return { - validForOldPackages: true, - validForNewPackages: true, - inFile: match[1] - }; - } else { - var result = { - validForOldPackages: false, - validForNewPackages: false, - warnings: [genericWarning] - }; - var corrected = correct(argument); - if (corrected) { - result.warnings.push( - 'license is similar to the valid expression "' + corrected + '"' - ); - } - return result; - } - } - - if (usesLicenseRef(ast)) { - return { - validForNewPackages: false, - validForOldPackages: false, - spdx: true, - warnings: [genericWarning] - }; - } else { - return { - validForNewPackages: true, - validForOldPackages: true, - spdx: true - }; - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/LICENSE deleted file mode 100644 index 4b54239b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/LICENSE +++ /dev/null @@ -1,57 +0,0 @@ -SPDX:Apache-2.0 - -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -(a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - -(b) You must cause any modified files to carry prominent notices stating that You changed the files; and - -(c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -(d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - -You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/README.md deleted file mode 100644 index 4289e5cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/README.md +++ /dev/null @@ -1,10 +0,0 @@ -```javascript -var correct = require('spdx-correct'); -var assert = require('assert'); - -assert.equal(correct('mit'), 'MIT') - -assert.equal(correct('Apache 2'), 'Apache-2.0') - -assert(correct('No idea what license') === null) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js deleted file mode 100644 index 75b7a21a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js +++ /dev/null @@ -1,237 +0,0 @@ -var licenseIDs = require('spdx-license-ids'); - -function valid(string) { - return licenseIDs.indexOf(string) > -1; -} - -// Common transpositions of license identifier acronyms -var transpositions = [ - ['APGL', 'AGPL'], - ['Gpl', 'GPL'], - ['GLP', 'GPL'], - ['APL', 'Apache'], - ['ISD', 'ISC'], - ['GLP', 'GPL'], - ['IST', 'ISC'], - ['Claude', 'Clause'], - [' or later', '+'], - [' International', ''], - ['GNU', 'GPL'], - ['GUN', 'GPL'], - ['+', ''], - ['GNU GPL', 'GPL'], - ['GNU/GPL', 'GPL'], - ['GNU GLP', 'GPL'], - ['GNU General Public License', 'GPL'], - ['Gnu public license', 'GPL'], - ['GNU Public License', 'GPL'], - ['GNU GENERAL PUBLIC LICENSE', 'GPL'], - ['MTI', 'MIT'], - ['Mozilla Public License', 'MPL'], - ['WTH', 'WTF'], - ['-License', ''] -]; - -var TRANSPOSED = 0; -var CORRECT = 1; - -// Simple corrections to nearly valid identifiers. -var transforms = [ - // e.g. 'mit' - function(argument) { - return argument.toUpperCase(); - }, - // e.g. 'MIT ' - function(argument) { - return argument.trim(); - }, - // e.g. 'M.I.T.' - function(argument) { - return argument.replace(/\./g, ''); - }, - // e.g. 'Apache- 2.0' - function(argument) { - return argument.replace(/\s+/g, ''); - }, - // e.g. 'CC BY 4.0'' - function(argument) { - return argument.replace(/\s+/g, '-'); - }, - // e.g. 'LGPLv2.1' - function(argument) { - return argument.replace('v', '-'); - }, - // e.g. 'Apache 2.0' - function(argument) { - return argument.replace(/,?\s*(\d)/, '-$1'); - }, - // e.g. 'GPL 2' - function(argument) { - return argument.replace(/,?\s*(\d)/, '-$1.0'); - }, - // e.g. 'Apache Version 2.0' - function(argument) { - return argument.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2'); - }, - // e.g. 'Apache Version 2' - function(argument) { - return argument.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2.0'); - }, - // e.g. 'ZLIB' - function(argument) { - return argument[0].toUpperCase() + argument.slice(1); - }, - // e.g. 'MPL/2.0' - function(argument) { - return argument.replace('/', '-'); - }, - // e.g. 'Apache 2' - function(argument) { - return argument - .replace(/\s*V\s*(\d)/, '-$1') - .replace(/(\d)$/, '$1.0'); - }, - // e.g. 'GPL-2.0-' - function(argument) { - return argument.slice(0, argument.length - 1); - }, - // e.g. 'GPL2' - function(argument) { - return argument.replace(/(\d)$/, '-$1.0'); - }, - // e.g. 'BSD 3' - function(argument) { - return argument.replace(/(-| )?(\d)$/, '-$2-Clause'); - }, - // e.g. 'BSD clause 3' - function(argument) { - return argument.replace(/(-| )clause(-| )(\d)/, '-$3-Clause'); - }, - // e.g. 'BY-NC-4.0' - function(argument) { - return 'CC-' + argument; - }, - // e.g. 'BY-NC' - function(argument) { - return 'CC-' + argument + '-4.0'; - }, - // e.g. 'Attribution-NonCommercial' - function(argument) { - return argument - .replace('Attribution', 'BY') - .replace('NonCommercial', 'NC') - .replace('NoDerivatives', 'ND') - .replace(/ (\d)/, '-$1') - .replace(/ ?International/, ''); - }, - // e.g. 'Attribution-NonCommercial' - function(argument) { - return 'CC-' + - argument - .replace('Attribution', 'BY') - .replace('NonCommercial', 'NC') - .replace('NoDerivatives', 'ND') - .replace(/ (\d)/, '-$1') - .replace(/ ?International/, '') + - '-4.0'; - } -]; - -// If all else fails, guess that strings containing certain substrings -// meant to identify certain licenses. -var lastResorts = [ - ['UNLI', 'Unlicense'], - ['WTF', 'WTFPL'], - ['2 CLAUSE', 'BSD-2-Clause'], - ['2-CLAUSE', 'BSD-2-Clause'], - ['3 CLAUSE', 'BSD-3-Clause'], - ['3-CLAUSE', 'BSD-3-Clause'], - ['AFFERO', 'AGPL-3.0'], - ['AGPL', 'AGPL-3.0'], - ['APACHE', 'Apache-2.0'], - ['ARTISTIC', 'Artistic-2.0'], - ['Affero', 'AGPL-3.0'], - ['BEER', 'Beerware'], - ['BOOST', 'BSL-1.0'], - ['BSD', 'BSD-2-Clause'], - ['ECLIPSE', 'EPL-1.0'], - ['FUCK', 'WTFPL'], - ['GNU', 'GPL-3.0'], - ['LGPL', 'LGPL-3.0'], - ['GPL', 'GPL-3.0'], - ['MIT', 'MIT'], - ['MPL', 'MPL-2.0'], - ['X11', 'X11'], - ['ZLIB', 'Zlib'] -]; - -var SUBSTRING = 0; -var IDENTIFIER = 1; - -var validTransformation = function(identifier) { - for (var i = 0; i < transforms.length; i++) { - var transformed = transforms[i](identifier); - if (transformed !== identifier && valid(transformed)) { - return transformed; - } - } - return null; -}; - -var validLastResort = function(identifier) { - var upperCased = identifier.toUpperCase(); - for (var i = 0; i < lastResorts.length; i++) { - var lastResort = lastResorts[i]; - if (upperCased.indexOf(lastResort[SUBSTRING]) > -1) { - return lastResort[IDENTIFIER]; - } - } - return null; -}; - -var anyCorrection = function(identifier, check) { - for (var i = 0; i < transpositions.length; i++) { - var transposition = transpositions[i]; - var transposed = transposition[TRANSPOSED]; - if (identifier.indexOf(transposed) > -1) { - var corrected = identifier.replace( - transposed, - transposition[CORRECT] - ); - var checked = check(corrected); - if (checked !== null) { - return checked; - } - } - } - return null; -}; - -module.exports = function(identifier) { - identifier = identifier.replace(/\+$/, ''); - if (valid(identifier)) { - return identifier; - } - var transformed = validTransformation(identifier); - if (transformed !== null) { - return transformed; - } - transformed = anyCorrection(identifier, function(argument) { - if (valid(argument)) { - return argument; - } - return validTransformation(argument); - }); - if (transformed !== null) { - return transformed; - } - transformed = validLastResort(identifier); - if (transformed !== null) { - return transformed; - } - transformed = anyCorrection(identifier, validLastResort); - if (transformed !== null) { - return transformed; - } - return null; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE deleted file mode 100644 index 68a49daa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -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 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. - -For more information, please refer to diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/README.md deleted file mode 100755 index 92523532..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# spdx-license-ids - -A list of [SPDX license](https://spdx.org/licenses/) identifiers - -[**Download JSON**](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/spdx-license-ids.json) - -## Use as a JavaScript Library - -[![NPM version](https://img.shields.io/npm/v/spdx-license-ids.svg)](https://www.npmjs.org/package/spdx-license-ids) -[![Bower version](https://img.shields.io/bower/v/spdx-license-ids.svg)](https://github.com/shinnn/spdx-license-ids/releases) -[![Build Status](https://travis-ci.org/shinnn/spdx-license-ids.svg?branch=master)](https://travis-ci.org/shinnn/spdx-license-ids) -[![Coverage Status](https://img.shields.io/coveralls/shinnn/spdx-license-ids.svg)](https://coveralls.io/r/shinnn/spdx-license-ids) -[![devDependency Status](https://david-dm.org/shinnn/spdx-license-ids/dev-status.svg)](https://david-dm.org/shinnn/spdx-license-ids#info=devDependencies) - -### Installation - -#### Package managers - -##### [npm](https://www.npmjs.com/) - -```sh -npm install spdx-license-ids -``` - -##### [bower](http://bower.io/) - -```sh -bower install spdx-license-ids -``` - -##### [Duo](http://duojs.org/) - -```javascript -const spdxLicenseIds = require('shinnn/spdx-license-ids'); -``` - -#### Standalone - -[Download the script file directly.](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/spdx-license-ids-browser.js) - -### API - -#### spdxLicenseIds - -Type: `Array` of `String` - -It returns an array of SPDX license identifiers. - -```javascript -const spdxLicenseIds = require('spdx-license-ids'); //=> ['Glide', 'Abstyles', 'AFL-1.1', ... ] -``` - -## License - -[The Unlicense](./LICENSE). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json deleted file mode 100644 index bf563e74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "_args": [ - [ - "spdx-license-ids@^1.0.2", - "/Users/rebecca/code/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct" - ] - ], - "_from": "spdx-license-ids@>=1.0.2 <2.0.0", - "_id": "spdx-license-ids@1.2.0", - "_inCache": true, - "_installable": true, - "_location": "/validate-npm-package-license/spdx-correct/spdx-license-ids", - "_nodeVersion": "5.4.0", - "_npmUser": { - "email": "snnskwtnb@gmail.com", - "name": "shinnn" - }, - "_npmVersion": "3.5.2", - "_phantomChildren": {}, - "_requested": { - "name": "spdx-license-ids", - "raw": "spdx-license-ids@^1.0.2", - "rawSpec": "^1.0.2", - "scope": null, - "spec": ">=1.0.2 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/validate-npm-package-license/spdx-correct" - ], - "_resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.0.tgz", - "_shasum": "b549dd0f63dcb745a17e2ea3a07402e0e332d1e2", - "_shrinkwrap": null, - "_spec": "spdx-license-ids@^1.0.2", - "_where": "/Users/rebecca/code/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct", - "author": { - "name": "Shinnosuke Watanabe", - "url": "https://github.com/shinnn" - }, - "bugs": { - "url": "https://github.com/shinnn/spdx-license-ids/issues" - }, - "dependencies": {}, - "description": "A list of SPDX license identifiers", - "devDependencies": { - "@shinnn/eslintrc": "^1.0.0", - "each-async": "^1.1.1", - "eslint": "^0.24.0", - "got": "^3.3.0", - "istanbul": "^0.3.17", - "require-bower-files": "^2.0.0", - "rimraf": "^2.4.1", - "stringify-object": "^2.2.0", - "tape": "^4.0.0" - }, - "directories": {}, - "dist": { - "shasum": "b549dd0f63dcb745a17e2ea3a07402e0e332d1e2", - "tarball": "http://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.0.tgz" - }, - "files": [ - "spdx-license-ids.json" - ], - "gitHead": "f74a7a16ca05540e0e97f1bbb61da07829b5d9ab", - "homepage": "https://github.com/shinnn/spdx-license-ids#readme", - "keywords": [ - "array", - "browser", - "client-side", - "id", - "identifier", - "identifiers", - "json", - "license", - "licenses", - "oss", - "spdx" - ], - "license": "Unlicense", - "main": "spdx-license-ids.json", - "maintainers": [ - { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - } - ], - "name": "spdx-license-ids", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/shinnn/spdx-license-ids.git" - }, - "scripts": { - "build": "node --harmony_arrow_functions build.js", - "coverage": "node --harmony_arrow_functions node_modules/.bin/istanbul cover test.js", - "coveralls": "${npm_package_scripts_coverage} && istanbul-coveralls", - "lint": "eslint --config node_modules/@shinnn/eslintrc/rc.json --ignore-path .gitignore .", - "pretest": "${npm_package_scripts_build} && ${npm_package_scripts_lint}", - "test": "node --harmony_arrow_functions test.js" - }, - "version": "1.2.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json deleted file mode 100644 index 8d23a650..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json +++ /dev/null @@ -1,321 +0,0 @@ -[ - "Glide", - "Abstyles", - "AFL-1.1", - "AFL-1.2", - "AFL-2.0", - "AFL-2.1", - "AFL-3.0", - "AMPAS", - "APL-1.0", - "Adobe-Glyph", - "APAFML", - "Adobe-2006", - "AGPL-1.0", - "Afmparse", - "Aladdin", - "ADSL", - "AMDPLPA", - "ANTLR-PD", - "Apache-1.0", - "Apache-1.1", - "Apache-2.0", - "AML", - "APSL-1.0", - "APSL-1.1", - "APSL-1.2", - "APSL-2.0", - "Artistic-1.0", - "Artistic-1.0-Perl", - "Artistic-1.0-cl8", - "Artistic-2.0", - "AAL", - "Bahyph", - "Barr", - "Beerware", - "BitTorrent-1.0", - "BitTorrent-1.1", - "BSL-1.0", - "Borceux", - "BSD-2-Clause", - "BSD-2-Clause-FreeBSD", - "BSD-2-Clause-NetBSD", - "BSD-3-Clause", - "BSD-3-Clause-Clear", - "BSD-4-Clause", - "BSD-Protection", - "BSD-3-Clause-Attribution", - "0BSD", - "BSD-4-Clause-UC", - "bzip2-1.0.5", - "bzip2-1.0.6", - "Caldera", - "CECILL-1.0", - "CECILL-1.1", - "CECILL-2.0", - "CECILL-2.1", - "CECILL-B", - "CECILL-C", - "ClArtistic", - "MIT-CMU", - "CNRI-Jython", - "CNRI-Python", - "CNRI-Python-GPL-Compatible", - "CPOL-1.02", - "CDDL-1.0", - "CDDL-1.1", - "CPAL-1.0", - "CPL-1.0", - "CATOSL-1.1", - "Condor-1.1", - "CC-BY-1.0", - "CC-BY-2.0", - "CC-BY-2.5", - "CC-BY-3.0", - "CC-BY-4.0", - "CC-BY-ND-1.0", - "CC-BY-ND-2.0", - "CC-BY-ND-2.5", - "CC-BY-ND-3.0", - "CC-BY-ND-4.0", - "CC-BY-NC-1.0", - "CC-BY-NC-2.0", - "CC-BY-NC-2.5", - "CC-BY-NC-3.0", - "CC-BY-NC-4.0", - "CC-BY-NC-ND-1.0", - "CC-BY-NC-ND-2.0", - "CC-BY-NC-ND-2.5", - "CC-BY-NC-ND-3.0", - "CC-BY-NC-ND-4.0", - "CC-BY-NC-SA-1.0", - "CC-BY-NC-SA-2.0", - "CC-BY-NC-SA-2.5", - "CC-BY-NC-SA-3.0", - "CC-BY-NC-SA-4.0", - "CC-BY-SA-1.0", - "CC-BY-SA-2.0", - "CC-BY-SA-2.5", - "CC-BY-SA-3.0", - "CC-BY-SA-4.0", - "CC0-1.0", - "Crossword", - "CrystalStacker", - "CUA-OPL-1.0", - "Cube", - "curl", - "D-FSL-1.0", - "diffmark", - "WTFPL", - "DOC", - "Dotseqn", - "DSDP", - "dvipdfm", - "EPL-1.0", - "ECL-1.0", - "ECL-2.0", - "eGenix", - "EFL-1.0", - "EFL-2.0", - "MIT-advertising", - "MIT-enna", - "Entessa", - "ErlPL-1.1", - "EUDatagrid", - "EUPL-1.0", - "EUPL-1.1", - "Eurosym", - "Fair", - "MIT-feh", - "Frameworx-1.0", - "FreeImage", - "FTL", - "FSFUL", - "FSFULLR", - "Giftware", - "GL2PS", - "Glulxe", - "AGPL-3.0", - "GFDL-1.1", - "GFDL-1.2", - "GFDL-1.3", - "GPL-1.0", - "GPL-2.0", - "GPL-3.0", - "LGPL-2.1", - "LGPL-3.0", - "LGPL-2.0", - "gnuplot", - "gSOAP-1.3b", - "HaskellReport", - "HPND", - "IBM-pibs", - "IPL-1.0", - "ICU", - "ImageMagick", - "iMatix", - "Imlib2", - "IJG", - "Info-ZIP", - "Intel-ACPI", - "Intel", - "Interbase-1.0", - "IPA", - "ISC", - "JasPer-2.0", - "JSON", - "LPPL-1.0", - "LPPL-1.1", - "LPPL-1.2", - "LPPL-1.3a", - "LPPL-1.3c", - "Latex2e", - "BSD-3-Clause-LBNL", - "Leptonica", - "LGPLLR", - "Libpng", - "libtiff", - "LPL-1.02", - "LPL-1.0", - "MakeIndex", - "MTLL", - "MS-PL", - "MS-RL", - "MirOS", - "MITNFA", - "MIT", - "Motosoto", - "MPL-1.0", - "MPL-1.1", - "MPL-2.0", - "MPL-2.0-no-copyleft-exception", - "mpich2", - "Multics", - "Mup", - "NASA-1.3", - "Naumen", - "NBPL-1.0", - "NetCDF", - "NGPL", - "NOSL", - "NPL-1.0", - "NPL-1.1", - "Newsletr", - "NLPL", - "Nokia", - "NPOSL-3.0", - "Noweb", - "NRL", - "NTP", - "Nunit", - "OCLC-2.0", - "ODbL-1.0", - "PDDL-1.0", - "OCCT-PL", - "OGTSL", - "OLDAP-2.2.2", - "OLDAP-1.1", - "OLDAP-1.2", - "OLDAP-1.3", - "OLDAP-1.4", - "OLDAP-2.0", - "OLDAP-2.0.1", - "OLDAP-2.1", - "OLDAP-2.2", - "OLDAP-2.2.1", - "OLDAP-2.3", - "OLDAP-2.4", - "OLDAP-2.5", - "OLDAP-2.6", - "OLDAP-2.7", - "OLDAP-2.8", - "OML", - "OPL-1.0", - "OSL-1.0", - "OSL-1.1", - "OSL-2.0", - "OSL-2.1", - "OSL-3.0", - "OpenSSL", - "PHP-3.0", - "PHP-3.01", - "Plexus", - "PostgreSQL", - "psfrag", - "psutils", - "Python-2.0", - "QPL-1.0", - "Qhull", - "Rdisc", - "RPSL-1.0", - "RPL-1.1", - "RPL-1.5", - "RHeCos-1.1", - "RSCPL", - "RSA-MD", - "Ruby", - "SAX-PD", - "Saxpath", - "SCEA", - "SWL", - "Sendmail", - "SGI-B-1.0", - "SGI-B-1.1", - "SGI-B-2.0", - "OFL-1.0", - "OFL-1.1", - "SimPL-2.0", - "Sleepycat", - "SNIA", - "Spencer-86", - "Spencer-94", - "Spencer-99", - "SMLNJ", - "SugarCRM-1.1.3", - "SISSL", - "SISSL-1.2", - "SPL-1.0", - "Watcom-1.0", - "TCL", - "Unlicense", - "TMate", - "TORQUE-1.1", - "TOSL", - "Unicode-TOU", - "UPL-1.0", - "NCSA", - "Vim", - "VOSTROM", - "VSL-1.0", - "W3C-19980720", - "W3C", - "Wsuipa", - "Xnet", - "X11", - "Xerox", - "XFree86-1.1", - "xinetd", - "xpp", - "XSkat", - "YPL-1.0", - "YPL-1.1", - "Zed", - "Zend-2.0", - "Zimbra-1.3", - "Zimbra-1.4", - "Zlib", - "zlib-acknowledgement", - "ZPL-1.1", - "ZPL-2.0", - "ZPL-2.1", - "eCos-2.0", - "GPL-2.0-with-autoconf-exception", - "GPL-2.0-with-bison-exception", - "GPL-2.0-with-classpath-exception", - "GPL-2.0-with-font-exception", - "GPL-2.0-with-GCC-exception", - "GPL-3.0-with-autoconf-exception", - "GPL-3.0-with-GCC-exception", - "StandardML-NJ", - "WXwindows" -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json deleted file mode 100644 index 36bd1e01..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "_args": [ - [ - "spdx-correct@~1.0.0", - "/Users/rebecca/code/npm/node_modules/validate-npm-package-license" - ] - ], - "_from": "spdx-correct@>=1.0.0 <1.1.0", - "_id": "spdx-correct@1.0.2", - "_inCache": true, - "_installable": true, - "_location": "/validate-npm-package-license/spdx-correct", - "_nodeVersion": "4.2.1", - "_npmUser": { - "email": "kyle@kemitchell.com", - "name": "kemitchell" - }, - "_npmVersion": "3.3.6", - "_phantomChildren": {}, - "_requested": { - "name": "spdx-correct", - "raw": "spdx-correct@~1.0.0", - "rawSpec": "~1.0.0", - "scope": null, - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/validate-npm-package-license" - ], - "_resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "_shasum": "4b3073d933ff51f3912f03ac5519498a4150db40", - "_shrinkwrap": null, - "_spec": "spdx-correct@~1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/validate-npm-package-license", - "author": { - "email": "kyle@kemitchell.com", - "name": "Kyle E. Mitchell", - "url": "https://kemitchell.com" - }, - "bugs": { - "url": "https://github.com/kemitchell/spdx-correct.js/issues" - }, - "dependencies": { - "spdx-license-ids": "^1.0.2" - }, - "description": "correct invalid SPDX identifiers", - "devDependencies": { - "defence-cli": "^1.0.1", - "replace-require-self": "^1.0.0", - "spdx-expression-parse": "^1.0.0", - "tape": "~4.0.0" - }, - "directories": {}, - "dist": { - "shasum": "4b3073d933ff51f3912f03ac5519498a4150db40", - "tarball": "http://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz" - }, - "gitHead": "8430a3ad521e1455208db33faafcb79c7b074236", - "homepage": "https://github.com/kemitchell/spdx-correct.js#readme", - "keywords": [ - "SPDX", - "law", - "legal", - "license", - "metadata" - ], - "license": "Apache-2.0", - "maintainers": [ - { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - } - ], - "name": "spdx-correct", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/kemitchell/spdx-correct.js.git" - }, - "scripts": { - "test": "defence README.md | replace-require-self | node && tape *.test.js" - }, - "version": "1.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/LICENSE deleted file mode 100644 index 51a8d6bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License - -Copyright (c) 2015 Kyle E. Mitchell and other contributors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/README.md deleted file mode 100644 index 4b96d3e2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/README.md +++ /dev/null @@ -1,44 +0,0 @@ -```javascript -var parse = require('spdx-expression-parse') -var assert = require('assert') - -var firstAST = { - left: { license: 'LGPL-2.1' }, - conjunction: 'or', - right: { - left: { license: 'BSD-3-Clause' }, - conjunction: 'and', - right: { license: 'MIT' } } } - -assert.deepEqual( - parse('(LGPL-2.1 OR BSD-3-Clause AND MIT)'), - firstAST) - -var secondAST = { - left: { license: 'MIT' }, - conjunction: 'and', - right: { - left: { - license: 'LGPL-2.1', - plus: true }, - conjunction: 'and', - right: { license: 'BSD-3-Clause' } } } - -assert.deepEqual( - parse('(MIT AND (LGPL-2.1+ AND BSD-3-Clause))'), - secondAST) - -// We handle all the bare SPDX license and exception ids as well. -require('spdx-license-ids').forEach(function(id) { - assert.deepEqual( - parse(id), - { license: id }) - require('spdx-exceptions').forEach(function(e) { - assert.deepEqual( - parse(id + ' WITH ' + e), - { license: id, exception: e }) }) }) -``` - ---- - -[The Software Package Data Exchange (SPDX) specification](http://spdx.org) is the work of the [Linux Foundation](http://www.linuxfoundation.org) and its contributors, and is licensed under the terms of [the Creative Commons Attribution License 3.0 Unported (SPDX: "CC-BY-3.0")](http://spdx.org/licenses/CC-BY-3.0). "SPDX" is a United States federally registered trademark of the Linux Foundation. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js deleted file mode 100644 index 3f38e3a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js +++ /dev/null @@ -1,4 +0,0 @@ -var parser = require('./parser.generated.js').parser - -module.exports = function(argument) { - return parser.parse(argument) } diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/README.md deleted file mode 100644 index 43a66372..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/README.md +++ /dev/null @@ -1 +0,0 @@ -The package exports an array of strings. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/index.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/index.json deleted file mode 100644 index 3b84277b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/index.json +++ /dev/null @@ -1,24 +0,0 @@ -[ - "389-exception", - "Autoconf-exception-2.0", - "Autoconf-exception-3.0", - "Bison-exception-2.2", - "CLISP-exception-2.0", - "Classpath-exception-2.0", - "FLTK-exception", - "FLTK-exception-2.0", - "Font-exception-2.0", - "GCC-exception-2.0", - "GCC-exception-3.1", - "LZMA-exception", - "Libtool-exception", - "Nokia-Qt-exception-1.1", - "Qwt-exception-1.0", - "WxWindows-exception-3.1", - "eCos-exception-2.0", - "freertos-exception-2.0", - "gnu-javamail-exception", - "i2p-gpl-java-exception", - "mif-exception", - "u-boot-exception-2.0" -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/package.json deleted file mode 100644 index 4e71051d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "_args": [ - [ - "spdx-exceptions@^1.0.4", - "/Users/rebecca/code/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse" - ] - ], - "_from": "spdx-exceptions@>=1.0.4 <2.0.0", - "_id": "spdx-exceptions@1.0.4", - "_inCache": true, - "_installable": true, - "_location": "/validate-npm-package-license/spdx-expression-parse/spdx-exceptions", - "_nodeVersion": "5.0.0", - "_npmUser": { - "email": "kyle@kemitchell.com", - "name": "kemitchell" - }, - "_npmVersion": "3.3.6", - "_phantomChildren": {}, - "_requested": { - "name": "spdx-exceptions", - "raw": "spdx-exceptions@^1.0.4", - "rawSpec": "^1.0.4", - "scope": null, - "spec": ">=1.0.4 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/validate-npm-package-license/spdx-expression-parse" - ], - "_resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.4.tgz", - "_shasum": "220b84239119ae9045a892db81a83f4ce16f80fd", - "_shrinkwrap": null, - "_spec": "spdx-exceptions@^1.0.4", - "_where": "/Users/rebecca/code/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse", - "author": { - "name": "The Linux Foundation" - }, - "bugs": { - "url": "https://github.com/kemitchell/spdx-exceptions.json/issues" - }, - "contributors": [ - { - "name": "Kyle E. Mitchell", - "email": "kyle@kemitchell.com", - "url": "https://kemitchell.com/" - } - ], - "dependencies": {}, - "description": "list of SPDX standard license exceptions", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "220b84239119ae9045a892db81a83f4ce16f80fd", - "tarball": "http://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.4.tgz" - }, - "gitHead": "770316d6c946417ab6efa8533b82d0b61779092b", - "homepage": "https://github.com/kemitchell/spdx-exceptions.json#readme", - "license": "CC-BY-3.0", - "maintainers": [ - { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - } - ], - "name": "spdx-exceptions", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/kemitchell/spdx-exceptions.json.git" - }, - "scripts": {}, - "version": "1.0.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/LICENSE deleted file mode 100644 index 68a49daa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -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 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. - -For more information, please refer to diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/README.md deleted file mode 100755 index 92523532..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# spdx-license-ids - -A list of [SPDX license](https://spdx.org/licenses/) identifiers - -[**Download JSON**](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/spdx-license-ids.json) - -## Use as a JavaScript Library - -[![NPM version](https://img.shields.io/npm/v/spdx-license-ids.svg)](https://www.npmjs.org/package/spdx-license-ids) -[![Bower version](https://img.shields.io/bower/v/spdx-license-ids.svg)](https://github.com/shinnn/spdx-license-ids/releases) -[![Build Status](https://travis-ci.org/shinnn/spdx-license-ids.svg?branch=master)](https://travis-ci.org/shinnn/spdx-license-ids) -[![Coverage Status](https://img.shields.io/coveralls/shinnn/spdx-license-ids.svg)](https://coveralls.io/r/shinnn/spdx-license-ids) -[![devDependency Status](https://david-dm.org/shinnn/spdx-license-ids/dev-status.svg)](https://david-dm.org/shinnn/spdx-license-ids#info=devDependencies) - -### Installation - -#### Package managers - -##### [npm](https://www.npmjs.com/) - -```sh -npm install spdx-license-ids -``` - -##### [bower](http://bower.io/) - -```sh -bower install spdx-license-ids -``` - -##### [Duo](http://duojs.org/) - -```javascript -const spdxLicenseIds = require('shinnn/spdx-license-ids'); -``` - -#### Standalone - -[Download the script file directly.](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/spdx-license-ids-browser.js) - -### API - -#### spdxLicenseIds - -Type: `Array` of `String` - -It returns an array of SPDX license identifiers. - -```javascript -const spdxLicenseIds = require('spdx-license-ids'); //=> ['Glide', 'Abstyles', 'AFL-1.1', ... ] -``` - -## License - -[The Unlicense](./LICENSE). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/package.json deleted file mode 100644 index 3068a90f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_args": [ - [ - "spdx-license-ids@^1.0.0", - "/Users/rebecca/code/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse" - ], - [ - "spdx-license-ids@^1.0.2", - "/Users/rebecca/code/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct" - ] - ], - "_from": "spdx-license-ids@>=1.0.0 <2.0.0", - "_id": "spdx-license-ids@1.2.0", - "_inCache": true, - "_installable": true, - "_location": "/validate-npm-package-license/spdx-expression-parse/spdx-license-ids", - "_nodeVersion": "5.4.0", - "_npmUser": { - "email": "snnskwtnb@gmail.com", - "name": "shinnn" - }, - "_npmVersion": "3.5.2", - "_phantomChildren": {}, - "_requested": { - "name": "spdx-license-ids", - "raw": "spdx-license-ids@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/validate-npm-package-license/spdx-expression-parse" - ], - "_shrinkwrap": null, - "_spec": "spdx-license-ids@^1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse", - "author": { - "name": "Shinnosuke Watanabe", - "url": "https://github.com/shinnn" - }, - "bugs": { - "url": "https://github.com/shinnn/spdx-license-ids/issues" - }, - "dependencies": {}, - "description": "A list of SPDX license identifiers", - "devDependencies": { - "@shinnn/eslintrc": "^1.0.0", - "each-async": "^1.1.1", - "eslint": "^0.24.0", - "got": "^3.3.0", - "istanbul": "^0.3.17", - "require-bower-files": "^2.0.0", - "rimraf": "^2.4.1", - "stringify-object": "^2.2.0", - "tape": "^4.0.0" - }, - "directories": {}, - "dist": { - "shasum": "b549dd0f63dcb745a17e2ea3a07402e0e332d1e2", - "tarball": "http://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.0.tgz" - }, - "files": [ - "spdx-license-ids.json" - ], - "gitHead": "f74a7a16ca05540e0e97f1bbb61da07829b5d9ab", - "homepage": "https://github.com/shinnn/spdx-license-ids#readme", - "keywords": [ - "array", - "browser", - "client-side", - "id", - "identifier", - "identifiers", - "json", - "license", - "licenses", - "oss", - "spdx" - ], - "license": "Unlicense", - "main": "spdx-license-ids.json", - "maintainers": [ - { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - } - ], - "name": "spdx-license-ids", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/shinnn/spdx-license-ids.git" - }, - "scripts": { - "build": "node --harmony_arrow_functions build.js", - "coverage": "node --harmony_arrow_functions node_modules/.bin/istanbul cover test.js", - "coveralls": "${npm_package_scripts_coverage} && istanbul-coveralls", - "lint": "eslint --config node_modules/@shinnn/eslintrc/rc.json --ignore-path .gitignore .", - "pretest": "${npm_package_scripts_build} && ${npm_package_scripts_lint}", - "test": "node --harmony_arrow_functions test.js" - }, - "version": "1.2.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/spdx-license-ids.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/spdx-license-ids.json deleted file mode 100644 index 8d23a650..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/spdx-license-ids.json +++ /dev/null @@ -1,321 +0,0 @@ -[ - "Glide", - "Abstyles", - "AFL-1.1", - "AFL-1.2", - "AFL-2.0", - "AFL-2.1", - "AFL-3.0", - "AMPAS", - "APL-1.0", - "Adobe-Glyph", - "APAFML", - "Adobe-2006", - "AGPL-1.0", - "Afmparse", - "Aladdin", - "ADSL", - "AMDPLPA", - "ANTLR-PD", - "Apache-1.0", - "Apache-1.1", - "Apache-2.0", - "AML", - "APSL-1.0", - "APSL-1.1", - "APSL-1.2", - "APSL-2.0", - "Artistic-1.0", - "Artistic-1.0-Perl", - "Artistic-1.0-cl8", - "Artistic-2.0", - "AAL", - "Bahyph", - "Barr", - "Beerware", - "BitTorrent-1.0", - "BitTorrent-1.1", - "BSL-1.0", - "Borceux", - "BSD-2-Clause", - "BSD-2-Clause-FreeBSD", - "BSD-2-Clause-NetBSD", - "BSD-3-Clause", - "BSD-3-Clause-Clear", - "BSD-4-Clause", - "BSD-Protection", - "BSD-3-Clause-Attribution", - "0BSD", - "BSD-4-Clause-UC", - "bzip2-1.0.5", - "bzip2-1.0.6", - "Caldera", - "CECILL-1.0", - "CECILL-1.1", - "CECILL-2.0", - "CECILL-2.1", - "CECILL-B", - "CECILL-C", - "ClArtistic", - "MIT-CMU", - "CNRI-Jython", - "CNRI-Python", - "CNRI-Python-GPL-Compatible", - "CPOL-1.02", - "CDDL-1.0", - "CDDL-1.1", - "CPAL-1.0", - "CPL-1.0", - "CATOSL-1.1", - "Condor-1.1", - "CC-BY-1.0", - "CC-BY-2.0", - "CC-BY-2.5", - "CC-BY-3.0", - "CC-BY-4.0", - "CC-BY-ND-1.0", - "CC-BY-ND-2.0", - "CC-BY-ND-2.5", - "CC-BY-ND-3.0", - "CC-BY-ND-4.0", - "CC-BY-NC-1.0", - "CC-BY-NC-2.0", - "CC-BY-NC-2.5", - "CC-BY-NC-3.0", - "CC-BY-NC-4.0", - "CC-BY-NC-ND-1.0", - "CC-BY-NC-ND-2.0", - "CC-BY-NC-ND-2.5", - "CC-BY-NC-ND-3.0", - "CC-BY-NC-ND-4.0", - "CC-BY-NC-SA-1.0", - "CC-BY-NC-SA-2.0", - "CC-BY-NC-SA-2.5", - "CC-BY-NC-SA-3.0", - "CC-BY-NC-SA-4.0", - "CC-BY-SA-1.0", - "CC-BY-SA-2.0", - "CC-BY-SA-2.5", - "CC-BY-SA-3.0", - "CC-BY-SA-4.0", - "CC0-1.0", - "Crossword", - "CrystalStacker", - "CUA-OPL-1.0", - "Cube", - "curl", - "D-FSL-1.0", - "diffmark", - "WTFPL", - "DOC", - "Dotseqn", - "DSDP", - "dvipdfm", - "EPL-1.0", - "ECL-1.0", - "ECL-2.0", - "eGenix", - "EFL-1.0", - "EFL-2.0", - "MIT-advertising", - "MIT-enna", - "Entessa", - "ErlPL-1.1", - "EUDatagrid", - "EUPL-1.0", - "EUPL-1.1", - "Eurosym", - "Fair", - "MIT-feh", - "Frameworx-1.0", - "FreeImage", - "FTL", - "FSFUL", - "FSFULLR", - "Giftware", - "GL2PS", - "Glulxe", - "AGPL-3.0", - "GFDL-1.1", - "GFDL-1.2", - "GFDL-1.3", - "GPL-1.0", - "GPL-2.0", - "GPL-3.0", - "LGPL-2.1", - "LGPL-3.0", - "LGPL-2.0", - "gnuplot", - "gSOAP-1.3b", - "HaskellReport", - "HPND", - "IBM-pibs", - "IPL-1.0", - "ICU", - "ImageMagick", - "iMatix", - "Imlib2", - "IJG", - "Info-ZIP", - "Intel-ACPI", - "Intel", - "Interbase-1.0", - "IPA", - "ISC", - "JasPer-2.0", - "JSON", - "LPPL-1.0", - "LPPL-1.1", - "LPPL-1.2", - "LPPL-1.3a", - "LPPL-1.3c", - "Latex2e", - "BSD-3-Clause-LBNL", - "Leptonica", - "LGPLLR", - "Libpng", - "libtiff", - "LPL-1.02", - "LPL-1.0", - "MakeIndex", - "MTLL", - "MS-PL", - "MS-RL", - "MirOS", - "MITNFA", - "MIT", - "Motosoto", - "MPL-1.0", - "MPL-1.1", - "MPL-2.0", - "MPL-2.0-no-copyleft-exception", - "mpich2", - "Multics", - "Mup", - "NASA-1.3", - "Naumen", - "NBPL-1.0", - "NetCDF", - "NGPL", - "NOSL", - "NPL-1.0", - "NPL-1.1", - "Newsletr", - "NLPL", - "Nokia", - "NPOSL-3.0", - "Noweb", - "NRL", - "NTP", - "Nunit", - "OCLC-2.0", - "ODbL-1.0", - "PDDL-1.0", - "OCCT-PL", - "OGTSL", - "OLDAP-2.2.2", - "OLDAP-1.1", - "OLDAP-1.2", - "OLDAP-1.3", - "OLDAP-1.4", - "OLDAP-2.0", - "OLDAP-2.0.1", - "OLDAP-2.1", - "OLDAP-2.2", - "OLDAP-2.2.1", - "OLDAP-2.3", - "OLDAP-2.4", - "OLDAP-2.5", - "OLDAP-2.6", - "OLDAP-2.7", - "OLDAP-2.8", - "OML", - "OPL-1.0", - "OSL-1.0", - "OSL-1.1", - "OSL-2.0", - "OSL-2.1", - "OSL-3.0", - "OpenSSL", - "PHP-3.0", - "PHP-3.01", - "Plexus", - "PostgreSQL", - "psfrag", - "psutils", - "Python-2.0", - "QPL-1.0", - "Qhull", - "Rdisc", - "RPSL-1.0", - "RPL-1.1", - "RPL-1.5", - "RHeCos-1.1", - "RSCPL", - "RSA-MD", - "Ruby", - "SAX-PD", - "Saxpath", - "SCEA", - "SWL", - "Sendmail", - "SGI-B-1.0", - "SGI-B-1.1", - "SGI-B-2.0", - "OFL-1.0", - "OFL-1.1", - "SimPL-2.0", - "Sleepycat", - "SNIA", - "Spencer-86", - "Spencer-94", - "Spencer-99", - "SMLNJ", - "SugarCRM-1.1.3", - "SISSL", - "SISSL-1.2", - "SPL-1.0", - "Watcom-1.0", - "TCL", - "Unlicense", - "TMate", - "TORQUE-1.1", - "TOSL", - "Unicode-TOU", - "UPL-1.0", - "NCSA", - "Vim", - "VOSTROM", - "VSL-1.0", - "W3C-19980720", - "W3C", - "Wsuipa", - "Xnet", - "X11", - "Xerox", - "XFree86-1.1", - "xinetd", - "xpp", - "XSkat", - "YPL-1.0", - "YPL-1.1", - "Zed", - "Zend-2.0", - "Zimbra-1.3", - "Zimbra-1.4", - "Zlib", - "zlib-acknowledgement", - "ZPL-1.1", - "ZPL-2.0", - "ZPL-2.1", - "eCos-2.0", - "GPL-2.0-with-autoconf-exception", - "GPL-2.0-with-bison-exception", - "GPL-2.0-with-classpath-exception", - "GPL-2.0-with-font-exception", - "GPL-2.0-with-GCC-exception", - "GPL-3.0-with-autoconf-exception", - "GPL-3.0-with-GCC-exception", - "StandardML-NJ", - "WXwindows" -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json deleted file mode 100644 index 10bf00ae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "_args": [ - [ - "spdx-expression-parse@~1.0.0", - "/Users/rebecca/code/npm/node_modules/validate-npm-package-license" - ] - ], - "_from": "spdx-expression-parse@>=1.0.0 <1.1.0", - "_id": "spdx-expression-parse@1.0.2", - "_inCache": true, - "_installable": true, - "_location": "/validate-npm-package-license/spdx-expression-parse", - "_nodeVersion": "5.0.0", - "_npmUser": { - "email": "kyle@kemitchell.com", - "name": "kemitchell" - }, - "_npmVersion": "3.3.6", - "_phantomChildren": {}, - "_requested": { - "name": "spdx-expression-parse", - "raw": "spdx-expression-parse@~1.0.0", - "rawSpec": "~1.0.0", - "scope": null, - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/validate-npm-package-license" - ], - "_resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz", - "_shasum": "d52b14b5e9670771440af225bcb563122ac452f6", - "_shrinkwrap": null, - "_spec": "spdx-expression-parse@~1.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/validate-npm-package-license", - "author": { - "email": "kyle@kemitchell.com", - "name": "Kyle E. Mitchell", - "url": "http://kemitchell.com" - }, - "bugs": { - "url": "https://github.com/kemitchell/spdx-expression-parse.js/issues" - }, - "dependencies": { - "spdx-exceptions": "^1.0.4", - "spdx-license-ids": "^1.0.0" - }, - "description": "parse SPDX license expressions", - "devDependencies": { - "defence-cli": "^1.0.1", - "jison": "^0.4.15", - "replace-require-self": "^1.0.0", - "uglify-js": "^2.4.24" - }, - "directories": {}, - "dist": { - "shasum": "d52b14b5e9670771440af225bcb563122ac452f6", - "tarball": "http://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz" - }, - "gitHead": "ffe2fa7272ebf640b18286fc561f17a844d4f06b", - "homepage": "https://github.com/kemitchell/spdx-expression-parse.js#readme", - "keywords": [ - "SPDX", - "law", - "legal", - "license", - "metadata", - "package", - "package.json", - "standards" - ], - "license": "(MIT AND CC-BY-3.0)", - "maintainers": [ - { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - } - ], - "name": "spdx-expression-parse", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/kemitchell/spdx-expression-parse.js.git" - }, - "scripts": { - "prepublish": "node generate-parser.js | uglifyjs > parser.generated.js", - "pretest": "npm run prepublish", - "test": "defence -i javascript README.md | replace-require-self | node" - }, - "version": "1.0.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.generated.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.generated.js deleted file mode 100644 index 7d9665a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.generated.js +++ /dev/null @@ -1 +0,0 @@ -var spdxparse=function(){var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,5],$V1=[1,6],$V2=[1,7],$V3=[1,4],$V4=[1,9],$V5=[1,10],$V6=[5,14,15,17],$V7=[5,12,14,15,17];var parser={trace:function trace(){},yy:{},symbols_:{error:2,start:3,expression:4,EOS:5,simpleExpression:6,LICENSE:7,PLUS:8,LICENSEREF:9,DOCUMENTREF:10,COLON:11,WITH:12,EXCEPTION:13,AND:14,OR:15,OPEN:16,CLOSE:17,$accept:0,$end:1},terminals_:{2:"error",5:"EOS",7:"LICENSE",8:"PLUS",9:"LICENSEREF",10:"DOCUMENTREF",11:"COLON",12:"WITH",13:"EXCEPTION",14:"AND",15:"OR",16:"OPEN",17:"CLOSE"},productions_:[0,[3,2],[6,1],[6,2],[6,1],[6,3],[4,1],[4,3],[4,3],[4,3],[4,3]],performAction:function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return this.$=$$[$0-1];break;case 2:case 4:case 5:this.$={license:yytext};break;case 3:this.$={license:$$[$0-1],plus:true};break;case 6:this.$=$$[$0];break;case 7:this.$={exception:$$[$0]};this.$.license=$$[$0-2].license;if($$[$0-2].hasOwnProperty("plus")){this.$.plus=$$[$0-2].plus}break;case 8:this.$={conjunction:"and",left:$$[$0-2],right:$$[$0]};break;case 9:this.$={conjunction:"or",left:$$[$0-2],right:$$[$0]};break;case 10:this.$=$$[$0-1];break}},table:[{3:1,4:2,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{1:[3]},{5:[1,8],14:$V4,15:$V5},o($V6,[2,6],{12:[1,11]}),{4:12,6:3,7:$V0,9:$V1,10:$V2,16:$V3},o($V7,[2,2],{8:[1,13]}),o($V7,[2,4]),{11:[1,14]},{1:[2,1]},{4:15,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{4:16,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{13:[1,17]},{14:$V4,15:$V5,17:[1,18]},o($V7,[2,3]),{9:[1,19]},o($V6,[2,8]),o([5,15,17],[2,9],{14:$V4}),o($V6,[2,7]),o($V6,[2,10]),o($V7,[2,5])],defaultActions:{8:[2,1]},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],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1;var args=lstack.slice.call(arguments,1);var lexer=Object.create(this.lexer);var sharedState={yy:{}};for(var k in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,k)){sharedState.yy[k]=this.yy[k]}}lexer.setInput(input,sharedState.yy);sharedState.yy.lexer=lexer;sharedState.yy.parser=this;if(typeof lexer.yylloc=="undefined"){lexer.yylloc={}}var yyloc=lexer.yylloc;lstack.push(yyloc);var ranges=lexer.options&&lexer.options.ranges;if(typeof sharedState.yy.parseError==="function"){this.parseError=sharedState.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}_token_stack:function lex(){var token;token=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(lexer.showPosition){errStr="Parse error on line "+(yylineno+1)+":\n"+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:lexer.match,token:this.terminals_[symbol]||symbol,line: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(lexer.yytext);lstack.push(lexer.yylloc);stack.push(action[1]);symbol=null;if(!preErrorSymbol){yyleng=lexer.yyleng;yytext=lexer.yytext;yylineno=lexer.yylineno;yyloc=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,sharedState.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}};var lexer=function(){var lexer={EOF:1,parseError:function parseError(str,hash){if(this.yy.parser){this.yy.parser.parseError(str,hash)}else{throw new Error(str)}},setInput:function(input,yy){this.yy=yy||this.yy||{};this._input=input;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this},input:function(){var ch=this._input[0];this.yytext+=ch;this.yyleng++;this.offset++;this.match+=ch;this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);if(lines){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return ch},unput:function(ch){var len=ch.length;var lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-len);this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(lines.length-1){this.yylineno-=lines.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-len]}this.yyleng=this.yytext.length;return this},more:function(){this._more=true;return this},reject:function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var next=this.match;if(next.length<20){next+=this._input.substr(0,20-next.length)}return(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pre=this.pastInput();var c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},test_match:function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer){backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){backup.yylloc.range=this.yylloc.range.slice(0)}}lines=match[0].match(/(?:\r\n?|\n).*/g);if(lines){this.yylineno+=lines.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length};this.yytext+=match[0];this.match+=match[0];this.matches=match;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(match[0].length);this.matched+=match[0];token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(token){return token}else if(this._backtrack){for(var k in backup){this[k]=backup[k]}return false}return false},next:function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var token,match,tempMatch,index;if(!this._more){this.yytext="";this.match=""}var rules=this._currentRules();for(var i=0;imatch[0].length)){match=tempMatch;index=i;if(this.options.backtrack_lexer){token=this.test_match(tempMatch,rules[i]);if(token!==false){return token}else if(this._backtrack){match=false;continue}else{return false}}else if(!this.options.flex){break}}}if(match){token=this.test_match(match,rules[index]);if(token!==false){return token}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}},lex:function lex(){var r=this.next();if(r){return r}else{return this.lex()}},begin:function begin(condition){this.conditionStack.push(condition)},popState:function popState(){var n=this.conditionStack.length-1;if(n>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}},_currentRules:function _currentRules(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}},topState:function topState(n){n=this.conditionStack.length-1-Math.abs(n||0);if(n>=0){return this.conditionStack[n]}else{return"INITIAL"}},pushState:function pushState(condition){this.begin(condition)},stateStackSize:function stateStackSize(){return this.conditionStack.length},options:{},performAction:function anonymous(yy,yy_,$avoiding_name_collisions,YY_START){var YYSTATE=YY_START;switch($avoiding_name_collisions){case 0:return 5;break;case 1:break;case 2:return 8;break;case 3:return 16;break;case 4:return 17;break;case 5:return 11;break;case 6:return 10;break;case 7:return 9;break;case 8:return 14;break;case 9:return 15;break;case 10:return 12;break;case 11:return 7;break;case 12:return 7;break;case 13:return 7;break;case 14:return 13;break;case 15:return 13;break;case 16:return 13;break;case 17:return 13;break;case 18:return 13;break;case 19:return 13;break;case 20:return 13;break;case 21:return 13;break;case 22:return 7;break;case 23:return 7;break;case 24:return 13;break;case 25:return 13;break;case 26:return 13;break;case 27:return 7;break;case 28:return 13;break;case 29:return 13;break;case 30:return 13;break;case 31:return 7;break;case 32:return 7;break;case 33:return 13;break;case 34:return 13;break;case 35:return 13;break;case 36:return 7;break;case 37:return 13;break;case 38:return 7;break;case 39:return 7;break;case 40:return 7;break;case 41:return 7;break;case 42:return 7;break;case 43:return 7;break;case 44:return 7;break;case 45:return 7;break;case 46:return 7;break;case 47:return 7;break;case 48:return 7;break;case 49:return 7;break;case 50:return 7;break;case 51:return 13;break;case 52:return 7;break;case 53:return 7;break;case 54:return 7;break;case 55:return 13;break;case 56:return 7;break;case 57:return 7;break;case 58:return 7;break;case 59:return 13;break;case 60:return 7;break;case 61:return 13;break;case 62:return 7;break;case 63:return 7;break;case 64:return 7;break;case 65:return 7;break;case 66:return 7;break;case 67:return 7;break;case 68:return 7;break;case 69:return 7;break;case 70:return 7;break;case 71:return 7;break;case 72:return 7;break;case 73:return 7;break;case 74:return 7;break;case 75:return 7;break;case 76:return 7;break;case 77:return 7;break;case 78:return 7;break;case 79:return 7;break;case 80:return 7;break;case 81:return 7;break;case 82:return 7;break;case 83:return 7;break;case 84:return 7;break;case 85:return 7;break;case 86:return 7;break;case 87:return 7;break;case 88:return 7;break;case 89:return 7;break;case 90:return 7;break;case 91:return 7;break;case 92:return 7;break;case 93:return 7;break;case 94:return 7;break;case 95:return 7;break;case 96:return 7;break;case 97:return 7;break;case 98:return 7;break;case 99:return 7;break;case 100:return 7;break;case 101:return 7;break;case 102:return 7;break;case 103:return 7;break;case 104:return 7;break;case 105:return 7;break;case 106:return 7;break;case 107:return 7;break;case 108:return 7;break;case 109:return 7;break;case 110:return 7;break;case 111:return 7;break;case 112:return 7;break;case 113:return 7;break;case 114:return 7;break;case 115:return 7;break;case 116:return 7;break;case 117:return 7;break;case 118:return 7;break;case 119:return 7;break;case 120:return 7;break;case 121:return 7;break;case 122:return 7;break;case 123:return 7;break;case 124:return 7;break;case 125:return 7;break;case 126:return 7;break;case 127:return 7;break;case 128:return 7;break;case 129:return 7;break;case 130:return 7;break;case 131:return 7;break;case 132:return 7;break;case 133:return 7;break;case 134:return 7;break;case 135:return 7;break;case 136:return 7;break;case 137:return 7;break;case 138:return 7;break;case 139:return 7;break;case 140:return 7;break;case 141:return 7;break;case 142:return 7;break;case 143:return 7;break;case 144:return 7;break;case 145:return 7;break;case 146:return 7;break;case 147:return 7;break;case 148:return 7;break;case 149:return 7;break;case 150:return 7;break;case 151:return 7;break;case 152:return 7;break;case 153:return 7;break;case 154:return 7;break;case 155:return 7;break;case 156:return 7;break;case 157:return 7;break;case 158:return 7;break;case 159:return 7;break;case 160:return 7;break;case 161:return 7;break;case 162:return 7;break;case 163:return 7;break;case 164:return 7;break;case 165:return 7;break;case 166:return 7;break;case 167:return 7;break;case 168:return 7;break;case 169:return 7;break;case 170:return 7;break;case 171:return 7;break;case 172:return 7;break;case 173:return 7;break;case 174:return 7;break;case 175:return 7;break;case 176:return 7;break;case 177:return 7;break;case 178:return 7;break;case 179:return 7;break;case 180:return 7;break;case 181:return 7;break;case 182:return 7;break;case 183:return 7;break;case 184:return 7;break;case 185:return 7;break;case 186:return 7;break;case 187:return 7;break;case 188:return 7;break;case 189:return 7;break;case 190:return 7;break;case 191:return 7;break;case 192:return 7;break;case 193:return 7;break;case 194:return 7;break;case 195:return 7;break;case 196:return 7;break;case 197:return 7;break;case 198:return 7;break;case 199:return 7;break;case 200:return 7;break;case 201:return 7;break;case 202:return 7;break;case 203:return 7;break;case 204:return 7;break;case 205:return 7;break;case 206:return 7;break;case 207:return 7;break;case 208:return 7;break;case 209:return 7;break;case 210:return 7;break;case 211:return 7;break;case 212:return 7;break;case 213:return 7;break;case 214:return 7;break;case 215:return 7;break;case 216:return 7;break;case 217:return 7;break;case 218:return 7;break;case 219:return 7;break;case 220:return 7;break;case 221:return 7;break;case 222:return 7;break;case 223:return 7;break;case 224:return 7;break;case 225:return 7;break;case 226:return 7;break;case 227:return 7;break;case 228:return 7;break;case 229:return 7;break;case 230:return 7;break;case 231:return 7;break;case 232:return 7;break;case 233:return 7;break;case 234:return 7;break;case 235:return 7;break;case 236:return 7;break;case 237:return 7;break;case 238:return 7;break;case 239:return 7;break;case 240:return 7;break;case 241:return 7;break;case 242:return 7;break;case 243:return 7;break;case 244:return 7;break;case 245:return 7;break;case 246:return 7;break;case 247:return 7;break;case 248:return 7;break;case 249:return 7;break;case 250:return 7;break;case 251:return 7;break;case 252:return 7;break;case 253:return 7;break;case 254:return 7;break;case 255:return 7;break;case 256:return 7;break;case 257:return 7;break;case 258:return 7;break;case 259:return 7;break;case 260:return 7;break;case 261:return 7;break;case 262:return 7;break;case 263:return 7;break;case 264:return 7;break;case 265:return 7;break;case 266:return 7;break;case 267:return 7;break;case 268:return 7;break;case 269:return 7;break;case 270:return 7;break;case 271:return 7;break;case 272:return 7;break;case 273:return 7;break;case 274:return 7;break;case 275:return 7;break;case 276:return 7;break;case 277:return 7;break;case 278:return 7;break;case 279:return 7;break;case 280:return 7;break;case 281:return 7;break;case 282:return 7;break;case 283:return 7;break;case 284:return 7;break;case 285:return 7;break;case 286:return 7;break;case 287:return 7;break;case 288:return 7;break;case 289:return 7;break;case 290:return 7;break;case 291:return 7;break;case 292:return 7;break;case 293:return 7;break;case 294:return 7;break;case 295:return 7;break;case 296:return 7;break;case 297:return 7;break;case 298:return 7;break;case 299:return 7;break;case 300:return 7;break;case 301:return 7;break;case 302:return 7;break;case 303:return 7;break;case 304:return 7;break;case 305:return 7;break;case 306:return 7;break;case 307:return 7;break;case 308:return 7;break;case 309:return 7;break;case 310:return 7;break;case 311:return 7;break;case 312:return 7;break;case 313:return 7;break;case 314:return 7;break;case 315:return 7;break;case 316:return 7;break;case 317:return 7;break;case 318:return 7;break;case 319:return 7;break;case 320:return 7;break;case 321:return 7;break;case 322:return 7;break;case 323:return 7;break;case 324:return 7;break;case 325:return 7;break;case 326:return 7;break;case 327:return 7;break;case 328:return 7;break;case 329:return 7;break;case 330:return 7;break;case 331:return 7;break;case 332:return 7;break;case 333:return 7;break;case 334:return 7;break;case 335:return 7;break;case 336:return 7;break;case 337:return 7;break;case 338:return 7;break}},rules:[/^(?:$)/,/^(?:\s+)/,/^(?:\+)/,/^(?:\()/,/^(?:\))/,/^(?::)/,/^(?:DocumentRef-([0-9A-Za-z-+.]+))/,/^(?:LicenseRef-([0-9A-Za-z-+.]+))/,/^(?:AND)/,/^(?:OR)/,/^(?:WITH)/,/^(?:MPL-2\.0-no-copyleft-exception)/,/^(?:CNRI-Python-GPL-Compatible)/,/^(?:BSD-3-Clause-Attribution)/,/^(?:WxWindows-exception-3\.1)/,/^(?:Classpath-exception-2\.0)/,/^(?:gnu-javamail-exception)/,/^(?:freertos-exception-2\.0)/,/^(?:i2p-gpl-java-exception)/,/^(?:Autoconf-exception-2\.0)/,/^(?:Nokia-Qt-exception-1\.1)/,/^(?:Autoconf-exception-3\.0)/,/^(?:zlib-acknowledgement)/,/^(?:BSD-2-Clause-FreeBSD)/,/^(?:u-boot-exception-2\.0)/,/^(?:Bison-exception-2\.2)/,/^(?:CLISP-exception-2\.0)/,/^(?:BSD-2-Clause-NetBSD)/,/^(?:FLTK-exception-2\.0)/,/^(?:eCos-exception-2\.0)/,/^(?:Font-exception-2\.0)/,/^(?:BSD-3-Clause-Clear)/,/^(?:BSD-3-Clause-LBNL)/,/^(?:GCC-exception-3\.1)/,/^(?:Qwt-exception-1\.0)/,/^(?:GCC-exception-2\.0)/,/^(?:Artistic-1\.0-Perl)/,/^(?:Libtool-exception)/,/^(?:Artistic-1\.0-cl8)/,/^(?:CC-BY-NC-SA-4\.0)/,/^(?:CC-BY-NC-SA-1\.0)/,/^(?:CC-BY-NC-ND-4\.0)/,/^(?:CC-BY-NC-SA-3\.0)/,/^(?:CC-BY-NC-ND-3\.0)/,/^(?:CC-BY-NC-SA-2\.5)/,/^(?:CC-BY-NC-ND-2\.0)/,/^(?:CC-BY-NC-ND-1\.0)/,/^(?:CC-BY-NC-SA-2\.0)/,/^(?:MIT-advertising)/,/^(?:BSD-4-Clause-UC)/,/^(?:CC-BY-NC-ND-2\.5)/,/^(?:FLTK-exception)/,/^(?:SugarCRM-1\.1\.3)/,/^(?:CrystalStacker)/,/^(?:BSD-Protection)/,/^(?:LZMA-exception)/,/^(?:BitTorrent-1\.1)/,/^(?:BitTorrent-1\.0)/,/^(?:Frameworx-1\.0)/,/^(?:mif-exception)/,/^(?:Interbase-1\.0)/,/^(?:389-exception)/,/^(?:HaskellReport)/,/^(?:CC-BY-NC-3\.0)/,/^(?:CC-BY-ND-4\.0)/,/^(?:CC-BY-NC-1\.0)/,/^(?:CC-BY-NC-2\.0)/,/^(?:CC-BY-NC-2\.5)/,/^(?:CC-BY-SA-4\.0)/,/^(?:CC-BY-NC-4\.0)/,/^(?:W3C-19980720)/,/^(?:BSD-4-Clause)/,/^(?:Artistic-1\.0)/,/^(?:BSD-3-Clause)/,/^(?:CC-BY-ND-1\.0)/,/^(?:BSD-2-Clause)/,/^(?:CC-BY-ND-2\.0)/,/^(?:CC-BY-ND-2\.5)/,/^(?:CC-BY-ND-3\.0)/,/^(?:Artistic-2\.0)/,/^(?:CC-BY-SA-1\.0)/,/^(?:CC-BY-SA-2\.0)/,/^(?:CC-BY-SA-2\.5)/,/^(?:CC-BY-SA-3\.0)/,/^(?:XFree86-1\.1)/,/^(?:OLDAP-2\.0\.1)/,/^(?:bzip2-1\.0\.6)/,/^(?:OLDAP-2\.2\.1)/,/^(?:ImageMagick)/,/^(?:Unicode-TOU)/,/^(?:Adobe-Glyph)/,/^(?:CUA-OPL-1\.0)/,/^(?:CNRI-Jython)/,/^(?:CNRI-Python)/,/^(?:bzip2-1\.0\.5)/,/^(?:OLDAP-2\.2\.2)/,/^(?:PostgreSQL)/,/^(?:Apache-1\.1)/,/^(?:CECILL-1\.0)/,/^(?:Apache-2\.0)/,/^(?:Zimbra-1\.4)/,/^(?:CECILL-1\.1)/,/^(?:Zimbra-1\.3)/,/^(?:Adobe-2006)/,/^(?:JasPer-2\.0)/,/^(?:CECILL-2\.0)/,/^(?:TORQUE-1\.1)/,/^(?:CECILL-2\.1)/,/^(?:Watcom-1\.0)/,/^(?:Intel-ACPI)/,/^(?:ClArtistic)/,/^(?:Spencer-99)/,/^(?:Condor-1\.1)/,/^(?:Spencer-94)/,/^(?:gSOAP-1\.3b)/,/^(?:EUDatagrid)/,/^(?:Spencer-86)/,/^(?:Python-2\.0)/,/^(?:RHeCos-1\.1)/,/^(?:CATOSL-1\.1)/,/^(?:Apache-1\.0)/,/^(?:FreeImage)/,/^(?:SGI-B-1\.1)/,/^(?:SGI-B-1\.0)/,/^(?:SimPL-2\.0)/,/^(?:Sleepycat)/,/^(?:Crossword)/,/^(?:ErlPL-1\.1)/,/^(?:CPOL-1\.02)/,/^(?:OLDAP-2\.8)/,/^(?:OLDAP-2\.7)/,/^(?:OLDAP-2\.6)/,/^(?:CC-BY-1\.0)/,/^(?:OLDAP-2\.5)/,/^(?:OLDAP-2\.4)/,/^(?:OLDAP-2\.3)/,/^(?:SISSL-1\.2)/,/^(?:Unlicense)/,/^(?:SGI-B-2\.0)/,/^(?:OLDAP-2\.2)/,/^(?:OLDAP-2\.1)/,/^(?:CC-BY-2\.5)/,/^(?:D-FSL-1\.0)/,/^(?:LPPL-1\.3a)/,/^(?:LPPL-1\.3c)/,/^(?:OLDAP-2\.0)/,/^(?:CC-BY-3\.0)/,/^(?:Leptonica)/,/^(?:OLDAP-1\.4)/,/^(?:OLDAP-1\.3)/,/^(?:OLDAP-1\.2)/,/^(?:OLDAP-1\.1)/,/^(?:MakeIndex)/,/^(?:CC-BY-4\.0)/,/^(?:NPOSL-3\.0)/,/^(?:CC-BY-2\.0)/,/^(?:PHP-3\.01)/,/^(?:ANTLR-PD)/,/^(?:APSL-1\.0)/,/^(?:MIT-enna)/,/^(?:IBM-pibs)/,/^(?:APSL-1\.1)/,/^(?:APSL-1\.2)/,/^(?:Beerware)/,/^(?:EUPL-1\.0)/,/^(?:EUPL-1\.1)/,/^(?:diffmark)/,/^(?:CDDL-1\.0)/,/^(?:Zend-2\.0)/,/^(?:CDDL-1\.1)/,/^(?:CPAL-1\.0)/,/^(?:APSL-2\.0)/,/^(?:LPPL-1\.0)/,/^(?:AGPL-1\.0)/,/^(?:Giftware)/,/^(?:Abstyles)/,/^(?:LPPL-1\.1)/,/^(?:LPPL-1\.2)/,/^(?:Sendmail)/,/^(?:CECILL-B)/,/^(?:AGPL-3\.0)/,/^(?:GFDL-1\.1)/,/^(?:GFDL-1\.2)/,/^(?:GFDL-1\.3)/,/^(?:RPSL-1\.0)/,/^(?:LPL-1\.02)/,/^(?:CECILL-C)/,/^(?:Afmparse)/,/^(?:LGPL-2\.1)/,/^(?:PDDL-1\.0)/,/^(?:ODbL-1\.0)/,/^(?:OCLC-2\.0)/,/^(?:LGPL-3\.0)/,/^(?:Newsletr)/,/^(?:Motosoto)/,/^(?:NBPL-1\.0)/,/^(?:NASA-1\.3)/,/^(?:LGPL-2\.0)/,/^(?:FSFULLR)/,/^(?:MPL-2\.0)/,/^(?:Multics)/,/^(?:AFL-1\.1)/,/^(?:MPL-1\.1)/,/^(?:AFL-1\.2)/,/^(?:MPL-1\.0)/,/^(?:AFL-2\.0)/,/^(?:AFL-2\.1)/,/^(?:AFL-3\.0)/,/^(?:NPL-1\.0)/,/^(?:NPL-1\.1)/,/^(?:APL-1\.0)/,/^(?:Aladdin)/,/^(?:AMDPLPA)/,/^(?:BSL-1\.0)/,/^(?:Borceux)/,/^(?:Caldera)/,/^(?:MIT-CMU)/,/^(?:CPL-1\.0)/,/^(?:ZPL-2\.1)/,/^(?:ZPL-2\.0)/,/^(?:ZPL-1\.1)/,/^(?:CC0-1\.0)/,/^(?:YPL-1\.1)/,/^(?:LPL-1\.0)/,/^(?:libtiff)/,/^(?:YPL-1\.0)/,/^(?:Dotseqn)/,/^(?:Latex2e)/,/^(?:VSL-1\.0)/,/^(?:VOSTROM)/,/^(?:UPL-1\.0)/,/^(?:dvipdfm)/,/^(?:EPL-1\.0)/,/^(?:ECL-1\.0)/,/^(?:ECL-2\.0)/,/^(?:SPL-1\.0)/,/^(?:IPL-1\.0)/,/^(?:EFL-1\.0)/,/^(?:EFL-2\.0)/,/^(?:OPL-1\.0)/,/^(?:OSL-1\.0)/,/^(?:OSL-1\.1)/,/^(?:OSL-2\.0)/,/^(?:OSL-2\.1)/,/^(?:OSL-3\.0)/,/^(?:OpenSSL)/,/^(?:PHP-3\.0)/,/^(?:gnuplot)/,/^(?:Entessa)/,/^(?:GPL-3\.0)/,/^(?:Eurosym)/,/^(?:psutils)/,/^(?:GPL-2\.0)/,/^(?:QPL-1\.0)/,/^(?:MIT-feh)/,/^(?:OFL-1\.1)/,/^(?:GPL-1\.0)/,/^(?:RPL-1\.1)/,/^(?:RPL-1\.5)/,/^(?:OFL-1\.0)/,/^(?:Saxpath)/,/^(?:Bahyph)/,/^(?:RSA-MD)/,/^(?:Naumen)/,/^(?:NetCDF)/,/^(?:mpich2)/,/^(?:Glulxe)/,/^(?:APAFML)/,/^(?:psfrag)/,/^(?:Plexus)/,/^(?:SAX-PD)/,/^(?:MITNFA)/,/^(?:eGenix)/,/^(?:iMatix)/,/^(?:Imlib2)/,/^(?:Libpng)/,/^(?:xinetd)/,/^(?:LGPLLR)/,/^(?:Wsuipa)/,/^(?:SMLNJ)/,/^(?:RSCPL)/,/^(?:SISSL)/,/^(?:Rdisc)/,/^(?:Noweb)/,/^(?:Qhull)/,/^(?:Nunit)/,/^(?:GL2PS)/,/^(?:TMate)/,/^(?:MirOS)/,/^(?:MS-RL)/,/^(?:Intel)/,/^(?:MS-PL)/,/^(?:OGTSL)/,/^(?:WTFPL)/,/^(?:Nokia)/,/^(?:XSkat)/,/^(?:Glide)/,/^(?:FSFUL)/,/^(?:AMPAS)/,/^(?:Xerox)/,/^(?:0BSD)/,/^(?:Ruby)/,/^(?:JSON)/,/^(?:MTLL)/,/^(?:Cube)/,/^(?:Zlib)/,/^(?:NCSA)/,/^(?:TOSL)/,/^(?:Xnet)/,/^(?:DSDP)/,/^(?:HPND)/,/^(?:Barr)/,/^(?:SNIA)/,/^(?:ADSL)/,/^(?:NLPL)/,/^(?:Fair)/,/^(?:NOSL)/,/^(?:NGPL)/,/^(?:SCEA)/,/^(?:Zed)/,/^(?:DOC)/,/^(?:ICU)/,/^(?:Vim)/,/^(?:xpp)/,/^(?:OML)/,/^(?:AAL)/,/^(?:AML)/,/^(?:W3C)/,/^(?:ISC)/,/^(?:IPA)/,/^(?:X11)/,/^(?:MIT)/,/^(?:FTL)/,/^(?:IJG)/,/^(?:TCL)/,/^(?:SWL)/,/^(?:NTP)/,/^(?:Mup)/,/^(?:NRL)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338],inclusive:true}}};return lexer}();parser.lexer=lexer;function Parser(){this.yy={}}Parser.prototype=parser;parser.Parser=Parser;return new Parser}();if(typeof require!=="undefined"&&typeof exports!=="undefined"){exports.parser=spdxparse;exports.Parser=spdxparse.Parser;exports.parse=function(){return spdxparse.parse.apply(spdxparse,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))}} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/package.json deleted file mode 100644 index cb54e620..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-license/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "validate-npm-package-license", - "description": "Give me a string and I'll tell you if it's a valid npm package license string", - "version": "3.0.1", - "author": { - "name": "Kyle E. Mitchell", - "email": "kyle@kemitchell.com", - "url": "https://kemitchell.com" - }, - "dependencies": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" - }, - "devDependencies": { - "defence-cli": "^1.0.1", - "replace-require-self": "^1.0.0" - }, - "keywords": [ - "license", - "npm", - "package", - "validation" - ], - "license": "Apache-2.0", - "repository": { - "type": "git", - "url": "git+https://github.com/kemitchell/validate-npm-package-license.js.git" - }, - "scripts": { - "test": "defence README.md | replace-require-self | node" - }, - "gitHead": "00200d28f9960985f221bc1a8a71e4760daf39bf", - "bugs": { - "url": "https://github.com/kemitchell/validate-npm-package-license.js/issues" - }, - "homepage": "https://github.com/kemitchell/validate-npm-package-license.js#readme", - "_id": "validate-npm-package-license@3.0.1", - "_shasum": "2804babe712ad3379459acfbe24746ab2c303fbc", - "_from": "validate-npm-package-license@3.0.1", - "_npmVersion": "2.13.5", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - }, - "dist": { - "shasum": "2804babe712ad3379459acfbe24746ab2c303fbc", - "tarball": "http://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" - }, - "maintainers": [ - { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/LICENSE deleted file mode 100644 index fdcd63b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/LICENSE +++ /dev/null @@ -1,6 +0,0 @@ -Copyright (c) 2015, npm, Inc - - -Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/README.md deleted file mode 100644 index d967fdda..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/README.md +++ /dev/null @@ -1,119 +0,0 @@ -# validate-npm-package-name - -Give me a string and I'll tell you if it's a valid `npm` package name. - -This package exports a single synchronous function that takes a `string` as -input and returns an object with two properties: - -- `validForNewPackages` :: `Boolean` -- `validForOldPackages` :: `Boolean` - -## Contents - -- [Naming rules](#naming-rules) -- [Examples](#examples) - + [Valid Names](#valid-names) - + [Invalid Names](#invalid-names) -- [Legacy Names](#legacy-names) -- [Tests](#tests) -- [License](#license) - -## Naming Rules - -Below is a list of rules that valid `npm` package name should conform to. - -- package name length should be greater than zero -- all the characters in the package name must be lowercase i.e., no uppercase or mixed case names are allowed -- package name *can* consist of hyphens -- package name must *not* contain any non-url-safe characters (since name ends up being part of a URL) -- package name should not start with `.` or `_` -- package name should *not* contain any leading or trailing spaces -- package name *cannot* be the same as a node.js/io.js core module nor a reserved/blacklisted name. For example, the following names are invalid: - + http - + stream - + node_modules - + favicon.ico -- package name length cannot exceed 214 - - -## Examples - -### Valid Names - -```js -var validate = require("validate-npm-package-name") - -validate("some-package") -validate("example.com") -validate("under_score") -validate("123numeric") -validate("crazy!") -validate("@npm/thingy") -validate("@jane/foo.js") -``` - -All of the above names are valid, so you'll get this object back: - -```js -{ - validForNewPackages: true, - validForOldPackages: true -} -``` - -### Invalid Names - -```js -validate(" leading-space:and:weirdchars") -``` - -That was never a valid package name, so you get this: - -```js -{ - validForNewPackages: false, - validForOldPackages: false, - errors: [ - 'name cannot contain leading or trailing spaces', - 'name can only contain URL-friendly characters' - ] -} -``` - -## Legacy Names - -In the old days of npm, package names were wild. They could have capital -letters in them. They could be really long. They could be the name of an -existing module in node core. - -If you give this function a package name that **used to be valid**, you'll see -a change in the value of `validForNewPackages` property, and a warnings array -will be present: - -```js -validate("cRaZY-paCkAgE-with-mixed-case-and-more-than-214-characters-----------------------------------------------------------------------------------------------------------------------------------------------------------") -``` - -returns: - -```js -{ - validForNewPackages: false, - validForOldPackages: true, - warnings: [ - "name can no longer contain capital letters", - "name can no longer contain more than 214 characters" - ] -} -``` - -## Tests - -```sh -npm install -npm test -``` - -## License - -ISC diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/index.js deleted file mode 100644 index 66a1d473..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/index.js +++ /dev/null @@ -1,102 +0,0 @@ -var scopedPackagePattern = new RegExp("^(?:@([^/]+?)[/])?([^/]+?)$"); -var builtins = require("builtins") -var blacklist = [ - "node_modules", - "favicon.ico" -]; - -var validate = module.exports = function(name) { - - var warnings = [] - var errors = [] - - if (name === null) { - errors.push("name cannot be null") - return done(warnings, errors) - } - - if (name === undefined) { - errors.push("name cannot be undefined") - return done(warnings, errors) - } - - if (typeof name !== "string") { - errors.push("name must be a string") - return done(warnings, errors) - } - - if (!name.length) { - errors.push("name length must be greater than zero") - } - - if (name.match(/^\./)) { - errors.push("name cannot start with a period") - } - - if (name.match(/^_/)) { - errors.push("name cannot start with an underscore") - } - - if (name.trim() !== name) { - errors.push("name cannot contain leading or trailing spaces") - } - - // No funny business - blacklist.forEach(function(blacklistedName){ - if (name.toLowerCase() === blacklistedName) { - errors.push(blacklistedName + " is a blacklisted name") - } - }) - - // Generate warnings for stuff that used to be allowed - - // core module names like http, events, util, etc - builtins.forEach(function(builtin){ - if (name.toLowerCase() === builtin) { - warnings.push(builtin + " is a core module name") - } - }) - - // really-long-package-names-------------------------------such--length-----many---wow - // the thisisareallyreallylongpackagenameitshouldpublishdowenowhavealimittothelengthofpackagenames-poch. - if (name.length > 214) { - warnings.push("name can no longer contain more than 214 characters") - } - - // mIxeD CaSe nAMEs - if (name.toLowerCase() !== name) { - warnings.push("name can no longer contain capital letters") - } - - if (encodeURIComponent(name) !== name) { - - // Maybe it's a scoped package name, like @user/package - var nameMatch = name.match(scopedPackagePattern) - if (nameMatch) { - var user = nameMatch[1] - var pkg = nameMatch[2] - if (encodeURIComponent(user) === user && encodeURIComponent(pkg) === pkg) { - return done(warnings, errors) - } - } - - errors.push("name can only contain URL-friendly characters") - } - - return done(warnings, errors) - -} - -validate.scopedPackagePattern = scopedPackagePattern - -var done = function (warnings, errors) { - var result = { - validForNewPackages: errors.length === 0 && warnings.length === 0, - validForOldPackages: errors.length === 0, - warnings: warnings, - errors: errors - } - if (!result.warnings.length) delete result.warnings - if (!result.errors.length) delete result.errors - return result -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml deleted file mode 100644 index cc4dba29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/History.md deleted file mode 100644 index 0eb45c42..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/History.md +++ /dev/null @@ -1,39 +0,0 @@ - -0.0.7 / 2014-09-01 -================== - - * update .repository - -0.0.6 / 2014-09-01 -================== - - * add travis - * add test script - * add constants - -0.0.5 / 2014-06-27 -================== - - * add module - * publish to public npm - -0.0.4 / 2014-04-25 -================== - - * add timers - -0.0.3 / 2014-02-22 -================== - - * add buffer - -0.0.2 / 2014-02-11 -================== - - * add assert - -0.0.1 / 2014-02-11 -================== - - * add main - * initial commit diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/Readme.md deleted file mode 100644 index 96f4b1f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/Readme.md +++ /dev/null @@ -1,18 +0,0 @@ - -# builtins - - List of node.js [builtin modules](http://nodejs.org/api/). - - [![build status](https://secure.travis-ci.org/juliangruber/builtins.svg)](http://travis-ci.org/juliangruber/builtins) - -## Example - -```js -var builtins = require('builtins'); - -assert(builtins.indexOf('http') > -1); -``` - -## License - - MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/builtins.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/builtins.json deleted file mode 100644 index c52221d7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/builtins.json +++ /dev/null @@ -1,31 +0,0 @@ -[ - "assert", - "buffer", - "child_process", - "cluster", - "constants", - "crypto", - "dns", - "domain", - "events", - "fs", - "http", - "https", - "module", - "net", - "os", - "path", - "punycode", - "querystring", - "repl", - "stream", - "string_decoder", - "timers", - "tls", - "tty", - "dgram", - "url", - "util", - "vm", - "zlib" -] diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json deleted file mode 100644 index c5ec77f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "builtins", - "version": "0.0.7", - "description": "List of node.js builtin modules", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/builtins.git" - }, - "license": "MIT", - "main": "builtins.json", - "publishConfig": { - "registry": "https://registry.npmjs.org" - }, - "scripts": { - "test": "node -e \"require('./builtins.json')\"" - }, - "bugs": { - "url": "https://github.com/juliangruber/builtins/issues" - }, - "homepage": "https://github.com/juliangruber/builtins", - "_id": "builtins@0.0.7", - "dist": { - "shasum": "355219cd6cf18dbe7c01cc7fd2dce765cfdc549a", - "tarball": "http://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz" - }, - "_from": "builtins@0.0.7", - "_npmVersion": "1.3.22", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - { - "name": "segment", - "email": "tj@segment.io" - } - ], - "directories": {}, - "_shasum": "355219cd6cf18dbe7c01cc7fd2dce765cfdc549a", - "_resolved": "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/package.json deleted file mode 100644 index 5b706da2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "validate-npm-package-name", - "version": "2.2.2", - "description": "Give me a string and I'll tell you if it's a valid npm package name", - "main": "index.js", - "directories": { - "test": "test" - }, - "dependencies": { - "builtins": "0.0.7" - }, - "devDependencies": { - "tap": "^0.4.13" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/validate-npm-package-name.git" - }, - "keywords": [ - "npm", - "package", - "names", - "validation" - ], - "author": { - "name": "zeke" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/validate-npm-package-name/issues" - }, - "homepage": "https://github.com/npm/validate-npm-package-name", - "gitHead": "3af92c881549f1b96f05ab6bfb5768bba94ad72d", - "_id": "validate-npm-package-name@2.2.2", - "_shasum": "f65695b22f7324442019a3c7fa39a6e7fd299085", - "_from": "validate-npm-package-name@>=2.2.2 <2.3.0", - "_npmVersion": "3.0.0", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" - }, - "dist": { - "shasum": "f65695b22f7324442019a3c7fa39a6e7fd299085", - "tarball": "http://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz" - }, - "maintainers": [ - { - "name": "zeke", - "email": "zeke@sikelianos.com" - }, - { - "name": "bcoe", - "email": "ben@npmjs.com" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "_resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/test/index.js deleted file mode 100644 index 1a7dca5d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/validate-npm-package-name/test/index.js +++ /dev/null @@ -1,102 +0,0 @@ -var validate = require("..") -var test = require("tap").test -var path = require("path") -var fs = require("fs") - -test("validate-npm-package-name", function (t) { - - // Traditional - - t.deepEqual(validate("some-package"), {validForNewPackages: true, validForOldPackages: true}) - t.deepEqual(validate("example.com"), {validForNewPackages: true, validForOldPackages: true}) - t.deepEqual(validate("under_score"), {validForNewPackages: true, validForOldPackages: true}) - t.deepEqual(validate("period.js"), {validForNewPackages: true, validForOldPackages: true}) - t.deepEqual(validate("123numeric"), {validForNewPackages: true, validForOldPackages: true}) - t.deepEqual(validate("crazy!"), {validForNewPackages: true, validForOldPackages: true}) - - // Scoped (npm 2+) - - t.deepEqual(validate("@npm/thingy"), {validForNewPackages: true, validForOldPackages: true}) - t.deepEqual(validate("@npm-zors/money!time.js"), {validForNewPackages: true, validForOldPackages: true}) - - // Invalid - - t.deepEqual(validate(""), { - validForNewPackages: false, - validForOldPackages: false, - errors: ["name length must be greater than zero"]}) - - t.deepEqual(validate(""), { - validForNewPackages: false, - validForOldPackages: false, - errors: ["name length must be greater than zero"]}) - - t.deepEqual(validate(".start-with-period"), { - validForNewPackages: false, - validForOldPackages: false, - errors: ["name cannot start with a period"]}) - - t.deepEqual(validate("_start-with-underscore"), { - validForNewPackages: false, - validForOldPackages: false, - errors: ["name cannot start with an underscore"]}) - - t.deepEqual(validate("contain:colons"), { - validForNewPackages: false, - validForOldPackages: false, - errors: ["name can only contain URL-friendly characters"]}) - - t.deepEqual(validate(" leading-space"), { - validForNewPackages: false, - validForOldPackages: false, - errors: ["name cannot contain leading or trailing spaces", "name can only contain URL-friendly characters"]}) - - t.deepEqual(validate("trailing-space "), { - validForNewPackages: false, - validForOldPackages: false, - errors: ["name cannot contain leading or trailing spaces", "name can only contain URL-friendly characters"]}) - - t.deepEqual(validate("s/l/a/s/h/e/s"), { - validForNewPackages: false, - validForOldPackages: false, - errors: ["name can only contain URL-friendly characters"]}) - - t.deepEqual(validate("node_modules"), { - validForNewPackages: false, - validForOldPackages: false, - errors: ["node_modules is a blacklisted name"]}) - - t.deepEqual(validate("favicon.ico"), { - validForNewPackages: false, - validForOldPackages: false, - errors: ["favicon.ico is a blacklisted name"]}) - - // Node/IO Core - - t.deepEqual(validate("http"), { - validForNewPackages: false, - validForOldPackages: true, - warnings: ["http is a core module name"]}) - - // Long Package Names - - t.deepEqual(validate("ifyouwanttogetthesumoftwonumberswherethosetwonumbersarechosenbyfindingthelargestoftwooutofthreenumbersandsquaringthemwhichismultiplyingthembyitselfthenyoushouldinputthreenumbersintothisfunctionanditwilldothatforyou-"), { - validForNewPackages: false, - validForOldPackages: true, - warnings: ["name can no longer contain more than 214 characters"] - }) - - t.deepEqual(validate("ifyouwanttogetthesumoftwonumberswherethosetwonumbersarechosenbyfindingthelargestoftwooutofthreenumbersandsquaringthemwhichismultiplyingthembyitselfthenyoushouldinputthreenumbersintothisfunctionanditwilldothatforyou"), { - validForNewPackages: true, - validForOldPackages: true - }) - - // Legacy Mixed-Case - - t.deepEqual(validate("CAPITAL-LETTERS"), { - validForNewPackages: false, - validForOldPackages: true, - warnings: ["name can no longer contain capital letters"]}) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/CHANGELOG.md deleted file mode 100644 index 83095804..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/CHANGELOG.md +++ /dev/null @@ -1,118 +0,0 @@ -# Changes - - -## v1.2.9 - -* fix for paths starting with ../ -* Remove unused `is-absolute` module - -## v1.2.8 - -* bullet items in changelog that contain (but don't start with) # - -## v1.2.7 - -* strip 'update changelog' changelog entries out of changelog - -## v1.2.6 - -* make the changelog bulleted - -## v1.2.5 - -* make a changelog, and keep it up to date -* don't include tests in package -* Properly handle relative-path executables -* appveyor -* Attach error code to Not Found error -* Make tests pass on Windows - -## v1.2.4 - -* Fix typo - -## v1.2.3 - -* update isexe, fix regression in pathExt handling - -## v1.2.2 - -* update deps, use isexe module, test windows - -## v1.2.1 - -* Sometimes windows PATH entries are quoted -* Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode. -* doc cli - -## v1.2.0 - -* Add support for opt.all and -as cli flags -* test the bin -* update travis -* Allow checking for multiple programs in bin/which -* tap 2 - -## v1.1.2 - -* travis -* Refactored and fixed undefined error on Windows -* Support strict mode - -## v1.1.1 - -* test +g exes against secondary groups, if available -* Use windows exe semantics on cygwin & msys -* cwd should be first in path on win32, not last -* Handle lower-case 'env.Path' on Windows -* Update docs -* use single-quotes - -## v1.1.0 - -* Add tests, depend on is-absolute - -## v1.0.9 - -* which.js: root is allowed to execute files owned by anyone - -## v1.0.8 - -* don't use graceful-fs - -## v1.0.7 - -* add license to package.json - -## v1.0.6 - -* isc license - -## 1.0.5 - -* Awful typo - -## 1.0.4 - -* Test for path absoluteness properly -* win: Allow '' as a pathext if cmd has a . in it - -## 1.0.3 - -* Remove references to execPath -* Make `which.sync()` work on Windows by honoring the PATHEXT variable. -* Make `isExe()` always return true on Windows. -* MIT - -## 1.0.2 - -* Only files can be exes - -## 1.0.1 - -* Respect the PATHEXT env for win32 support -* should 0755 the bin -* binary -* guts -* package -* 1st diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/README.md deleted file mode 100644 index 7f679d59..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# which - -Like the unix `which` utility. - -Finds the first instance of a specified executable in the PATH -environment variable. Does not cache the results, so `hash -r` is not -needed when the PATH changes. - -## USAGE - -```javascript -var which = require('which') - -// async usage -which('node', function (er, resolvedPath) { - // er is returned if no "node" is found on the PATH - // if it is found, then the absolute path to the exec is returned -}) - -// sync usage -// throws if not found -var resolved = which.sync('node') - -// Pass options to override the PATH and PATHEXT environment vars. -which('node', { path: someOtherPath }, function (er, resolved) { - if (er) - throw er - console.log('found at %j', resolved) -}) -``` - -## CLI USAGE - -Same as the BSD `which(1)` binary. - -``` -usage: which [-as] program ... -``` - -## OPTIONS - -You may pass an options object as the second argument. - -- `path`: Use instead of the `PATH` environment variable. -- `pathExt`: Use instead of the `PATHEXT` environment variable. -- `all`: Return all matches, instead of just the first one. Note that - this means the function returns an array of strings instead of a - single string. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/bin/which b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/bin/which deleted file mode 100755 index 7cee3729..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/bin/which +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env node -var which = require("../") -if (process.argv.length < 3) - usage() - -function usage () { - console.error('usage: which [-as] program ...') - process.exit(1) -} - -var all = false -var silent = false -var dashdash = false -var args = process.argv.slice(2).filter(function (arg) { - if (dashdash || !/^-/.test(arg)) - return true - - if (arg === '--') { - dashdash = true - return false - } - - var flags = arg.substr(1).split('') - for (var f = 0; f < flags.length; f++) { - var flag = flags[f] - switch (flag) { - case 's': - silent = true - break - case 'a': - all = true - break - default: - console.error('which: illegal option -- ' + flag) - usage() - } - } - return false -}) - -process.exit(args.reduce(function (pv, current) { - try { - var f = which.sync(current, { all: all }) - if (all) - f = f.join('\n') - if (!silent) - console.log(f) - return pv; - } catch (e) { - return 1; - } -}, 0)) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/changelog.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/changelog.sh deleted file mode 100644 index 360e54af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/changelog.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -( - echo '# Changes' - echo '' - git log --first-parent --pretty=format:'%s' \ - | grep -v '^update changelog' \ - | perl -p -e 's/^((v?[0-9]+\.?)+)$/\n## \1\n/g' \ - | perl -p -e 's/^([^#\s].*)$/* \1/g' -)> CHANGELOG.md diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/.npmignore deleted file mode 100644 index c1cb757a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -.nyc_output/ -coverage/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/README.md deleted file mode 100644 index 30995ad7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# isexe - -Minimal module to check if a file is executable. - -Uses `fs.access` if available, and tests against the `PATHEXT` -environment variable on Windows. - -## USAGE - -```javascript -var isexe = require('isexe') -isexe('some-file-name', function (err, isExe) { - if (err) { - console.error('probably file does not exist or something', err) - } else if (isExe) { - console.error('this thing can be run') - } else { - console.error('cannot be run') - } -}) - -// same thing but synchronous, throws errors -var isExe = isexe.sync('some-file-name') - -// treat errors as just "not executable" -isexe('maybe-missing-file', { ignoreErrors: true }, callback) -var isExe = isexe.sync('maybe-missing-file', { ignoreErrors: true }) -``` - -## API - -### `isexe(path, [options], [callback])` - -Check if the path is executable. If no callback provided, and a -global `Promise` object is available, then a Promise will be returned. - -Will raise whatever errors may be raised by `fs.access` or `fs.stat`, -unless `options.ignoreErrors` is set to true. - -### `isexe.sync(path, [options])` - -Same as `isexe` but returns the value and throws any errors raised. - -### Options - -* `ignoreErrors` Treat all errors as "no, this is not executable", but - don't raise them. -* `uid` Number to use as the user id when using the `mode` approach. -* `gid` Number to use as the group id when using the `mode` approach. -* `pathExt` List of path extensions to use instead of `PATHEXT` - environment variable on Windows. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/access.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/access.js deleted file mode 100644 index e67b28bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/access.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = isexe -isexe.sync = sync - -var fs = require('fs') - -function isexe (path, _, cb) { - fs.access(path, fs.X_OK, function (er) { - cb(er, !er) - }) -} - -function sync (path, _) { - fs.accessSync(path, fs.X_OK) - return true -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/index.js deleted file mode 100644 index ff8ef113..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/index.js +++ /dev/null @@ -1,59 +0,0 @@ -var fs = require('fs') -var core -if (process.platform === 'win32' || global.TESTING_WINDOWS) { - core = require('./windows.js') -} else if (typeof fs.access === 'function') { - core = require('./access.js') -} else { - core = require('./mode.js') -} - -module.exports = isexe -isexe.sync = sync - -function isexe (path, options, cb) { - if (typeof options === 'function') { - cb = options - options = {} - } - - if (!cb) { - if (typeof Promise !== 'function') { - throw new TypeError('callback not provided') - } - - return new Promise(function (resolve, reject) { - isexe(path, options || {}, function (er, is) { - if (er) { - reject(er) - } else { - resolve(is) - } - }) - }) - } - - core(path, options || {}, function (er, is) { - // ignore EACCES because that just means we aren't allowed to run it - if (er) { - if (er.code === 'EACCES' || options && options.ignoreErrors) { - er = null - is = false - } - } - cb(er, is) - }) -} - -function sync (path, options) { - // my kingdom for a filtered catch - try { - return core.sync(path, options || {}) - } catch (er) { - if (options && options.ignoreErrors || er.code === 'EACCES') { - return false - } else { - throw er - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/mode.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/mode.js deleted file mode 100644 index 20442807..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/mode.js +++ /dev/null @@ -1,37 +0,0 @@ -module.exports = isexe -isexe.sync = sync - -var fs = require('fs') - -function isexe (path, options, cb) { - fs.stat(path, function (er, st) { - cb(er, er ? false : checkMode(st, options)) - }) -} - -function sync (path, options) { - return checkMode(fs.statSync(path), options) -} - -function checkMode (stat, options) { - var mod = stat.mode - var uid = stat.uid - var gid = stat.gid - - var myUid = options.uid !== undefined ? - options.uid : process.getuid && process.getuid() - var myGid = options.gid !== undefined ? - options.gid : process.getgid && process.getgid() - - var u = parseInt('100', 8) - var g = parseInt('010', 8) - var o = parseInt('001', 8) - var ug = u | g - - var ret = (mod & o) || - (mod & g) && gid === myGid || - (mod & u) && uid === myUid || - (mod & ug) && myUid === 0 - - return ret -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/package.json deleted file mode 100644 index 9f0f9d2a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "_args": [ - [ - "isexe@^1.1.1", - "/Users/rebecca/code/npm/node_modules/which" - ] - ], - "_from": "isexe@>=1.1.1 <2.0.0", - "_id": "isexe@1.1.2", - "_inCache": true, - "_installable": true, - "_location": "/which/isexe", - "_nodeVersion": "4.0.0", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/isexe-1.1.2.tgz_1454992795963_0.7608721863944083" - }, - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.7.0", - "_phantomChildren": {}, - "_requested": { - "name": "isexe", - "raw": "isexe@^1.1.1", - "rawSpec": "^1.1.1", - "scope": null, - "spec": ">=1.1.1 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/which" - ], - "_resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", - "_shasum": "36f3e22e60750920f5e7241a476a8c6a42275ad0", - "_shrinkwrap": null, - "_spec": "isexe@^1.1.1", - "_where": "/Users/rebecca/code/npm/node_modules/which", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/isexe/issues" - }, - "dependencies": {}, - "description": "Minimal module to check if a file is executable.", - "devDependencies": { - "mkdirp": "^0.5.1", - "rimraf": "^2.5.0", - "tap": "^5.1.2" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "36f3e22e60750920f5e7241a476a8c6a42275ad0", - "tarball": "http://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz" - }, - "gitHead": "1882eed72c2ba152f4dd1336d857b0755ae306d9", - "homepage": "https://github.com/isaacs/isexe#readme", - "keywords": [], - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "isexe", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/isexe.git" - }, - "scripts": { - "test": "tap test/*.js --branches=100 --statements=100 --functions=100 --lines=100" - }, - "version": "1.1.2" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/test/basic.js deleted file mode 100644 index 969fc9a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/test/basic.js +++ /dev/null @@ -1,211 +0,0 @@ -var t = require('tap') -var fs = require('fs') -var path = require('path') -var fixture = path.resolve(__dirname, 'fixtures') -var meow = fixture + '/meow.cat' -var mine = fixture + '/mine.cat' -var ours = fixture + '/ours.cat' -var fail = fixture + '/fail.false' -var noent = fixture + '/enoent.exe' -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') - -var isWindows = process.platform === 'win32' -var hasAccess = typeof fs.access === 'function' -var winSkip = isWindows && 'windows' -var accessSkip = !hasAccess && 'no fs.access function' -var hasPromise = typeof Promise === 'function' -var promiseSkip = !hasPromise && 'no global Promise' - -function reset () { - delete require.cache[require.resolve('../')] - return require('../') -} - -t.test('setup fixtures', function (t) { - rimraf.sync(fixture) - mkdirp.sync(fixture) - fs.writeFileSync(meow, '#!/usr/bin/env cat\nmeow\n') - fs.chmodSync(meow, parseInt('0755', 8)) - fs.writeFileSync(fail, '#!/usr/bin/env false\n') - fs.chmodSync(fail, parseInt('0644', 8)) - fs.writeFileSync(mine, '#!/usr/bin/env cat\nmine\n') - fs.chmodSync(mine, parseInt('0744', 8)) - fs.writeFileSync(ours, '#!/usr/bin/env cat\nours\n') - fs.chmodSync(ours, parseInt('0754', 8)) - t.end() -}) - -t.test('promise', { skip: promiseSkip }, function (t) { - var isexe = reset() - t.test('meow async', function (t) { - isexe(meow).then(function (is) { - t.ok(is) - t.end() - }) - }) - t.test('fail async', function (t) { - isexe(fail).then(function (is) { - t.notOk(is) - t.end() - }) - }) - t.test('noent async', function (t) { - isexe(noent).catch(function (er) { - t.ok(er) - t.end() - }) - }) - t.test('noent ignore async', function (t) { - isexe(noent, { ignoreErrors: true }).then(function (is) { - t.notOk(is) - t.end() - }) - }) - t.end() -}) - -t.test('no promise', function (t) { - global.Promise = null - var isexe = reset() - t.throws('try to meow a promise', function () { - isexe(meow) - }) - t.end() -}) - -t.test('access', { skip: accessSkip || winSkip }, function (t) { - runTest(t) -}) - -t.test('mode', { skip: winSkip }, function (t) { - delete fs.access - delete fs.accessSync - var isexe = reset() - t.ok(isexe.sync(ours, { uid: 0, gid: 0 })) - t.ok(isexe.sync(mine, { uid: 0, gid: 0 })) - runTest(t) -}) - -t.test('windows', function (t) { - global.TESTING_WINDOWS = true - var pathExt = '.EXE;.CAT;.CMD;.COM' - t.test('pathExt option', function (t) { - runTest(t, { pathExt: '.EXE;.CAT;.CMD;.COM' }) - }) - t.test('pathExt env', function (t) { - process.env.PATHEXT = pathExt - runTest(t) - }) - t.test('no pathExt', function (t) { - // with a pathExt of '', any filename is fine. - // so the "fail" one would still pass. - runTest(t, { pathExt: '', skipFail: true }) - }) - t.test('pathext with empty entry', function (t) { - // with a pathExt of '', any filename is fine. - // so the "fail" one would still pass. - runTest(t, { pathExt: ';' + pathExt, skipFail: true }) - }) - t.end() -}) - -t.test('cleanup', function (t) { - rimraf.sync(fixture) - t.end() -}) - -function runTest (t, options) { - var isexe = reset() - - var optionsIgnore = Object.create(options || {}) - optionsIgnore.ignoreErrors = true - - if (!options || !options.skipFail) { - t.notOk(isexe.sync(fail, options)) - } - t.notOk(isexe.sync(noent, optionsIgnore)) - if (!options) { - t.ok(isexe.sync(meow)) - } else { - t.ok(isexe.sync(meow, options)) - } - - t.ok(isexe.sync(mine, options)) - t.ok(isexe.sync(ours, options)) - t.throws(function () { - isexe.sync(noent, options) - }) - - t.test('meow async', function (t) { - if (!options) { - isexe(meow, function (er, is) { - if (er) { - throw er - } - t.ok(is) - t.end() - }) - } else { - isexe(meow, options, function (er, is) { - if (er) { - throw er - } - t.ok(is) - t.end() - }) - } - }) - - t.test('mine async', function (t) { - isexe(mine, options, function (er, is) { - if (er) { - throw er - } - t.ok(is) - t.end() - }) - }) - - t.test('ours async', function (t) { - isexe(ours, options, function (er, is) { - if (er) { - throw er - } - t.ok(is) - t.end() - }) - }) - - if (!options || !options.skipFail) { - t.test('fail async', function (t) { - isexe(fail, options, function (er, is) { - if (er) { - throw er - } - t.notOk(is) - t.end() - }) - }) - } - - t.test('noent async', function (t) { - isexe(noent, options, function (er, is) { - t.ok(er) - t.notOk(is) - t.end() - }) - }) - - t.test('noent ignore async', function (t) { - isexe(noent, optionsIgnore, function (er, is) { - if (er) { - throw er - } - t.notOk(is) - t.end() - }) - }) - - t.end() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/windows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/windows.js deleted file mode 100644 index aba8561f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/node_modules/isexe/windows.js +++ /dev/null @@ -1,36 +0,0 @@ -module.exports = isexe -isexe.sync = sync - -var fs = require('fs') - -function checkPathExt (path, options) { - var pathext = options.pathExt !== undefined ? - options.pathExt : process.env.PATHEXT - - if (!pathext) { - return true - } - - pathext = pathext.split(';') - if (pathext.indexOf('') !== -1) { - return true - } - for (var i = 0; i < pathext.length; i++) { - var p = pathext[i].toLowerCase() - if (p && path.substr(-p.length).toLowerCase() === p) { - return true - } - } - return false -} - -function isexe (path, options, cb) { - fs.stat(path, function (er, st) { - cb(er, er ? false : checkPathExt(path, options)) - }) -} - -function sync (path, options) { - fs.statSync(path) - return checkPathExt(path, options) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/package.json deleted file mode 100644 index 9f1f7a9f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/package.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "_args": [ - [ - { - "name": "which", - "raw": "which@1.2.9", - "rawSpec": "1.2.9", - "scope": null, - "spec": "1.2.9", - "type": "version" - }, - "/Users/zkat/Documents/code/npm" - ] - ], - "_from": "which@1.2.9", - "_id": "which@1.2.9", - "_inCache": true, - "_installable": true, - "_location": "/which", - "_nodeVersion": "4.4.4", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/which-1.2.9.tgz_1463603459182_0.9633393425028771" - }, - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.9.1", - "_phantomChildren": {}, - "_requested": { - "name": "which", - "raw": "which@1.2.9", - "rawSpec": "1.2.9", - "scope": null, - "spec": "1.2.9", - "type": "version" - }, - "_requiredBy": [ - "/", - "/node-gyp", - "/tap/foreground-child", - "/tap/foreground-child/cross-spawn-async", - "/tap/nyc/istanbul", - "/tap/nyc/spawn-wrap" - ], - "_resolved": "https://registry.npmjs.org/which/-/which-1.2.9.tgz", - "_shasum": "0b3a0e5c073bc10ca7b9ec13534eeef8a71ab61f", - "_shrinkwrap": null, - "_spec": "which@1.2.9", - "_where": "/Users/zkat/Documents/code/npm", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me" - }, - "bin": { - "which": "./bin/which" - }, - "bugs": { - "url": "https://github.com/isaacs/node-which/issues" - }, - "dependencies": { - "isexe": "^1.1.1" - }, - "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", - "devDependencies": { - "mkdirp": "^0.5.0", - "rimraf": "^2.3.3", - "tap": "^5.1.1" - }, - "directories": {}, - "dist": { - "shasum": "0b3a0e5c073bc10ca7b9ec13534eeef8a71ab61f", - "tarball": "https://registry.npmjs.org/which/-/which-1.2.9.tgz" - }, - "files": [ - "which.js", - "bin/which" - ], - "gitHead": "34aac93a4c4ee9e3c7a49fe09778ca942e636cce", - "homepage": "https://github.com/isaacs/node-which#readme", - "license": "ISC", - "main": "which.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "which", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-which.git" - }, - "scripts": { - "changelog": "bash changelog.sh", - "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}", - "test": "tap test/*.js --cov" - }, - "version": "1.2.9" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/which.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/which.js deleted file mode 100644 index b61da894..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/which/which.js +++ /dev/null @@ -1,133 +0,0 @@ -module.exports = which -which.sync = whichSync - -var isWindows = process.platform === 'win32' || - process.env.OSTYPE === 'cygwin' || - process.env.OSTYPE === 'msys' - -var path = require('path') -var COLON = isWindows ? ';' : ':' -var isexe = require('isexe') -var fs = require('fs') - -function getNotFoundError (cmd) { - var er = new Error('not found: ' + cmd) - er.code = 'ENOENT' - - return er -} - -function getPathInfo (cmd, opt) { - var colon = opt.colon || COLON - var pathEnv = opt.path || process.env.Path || process.env.PATH || '' - var pathExt = [''] - - pathEnv = pathEnv.split(colon) - - var pathExtExe = '' - if (isWindows) { - pathEnv.unshift(process.cwd()) - pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM') - pathExt = pathExtExe.split(colon) - - - // Always test the cmd itself first. isexe will check to make sure - // it's found in the pathExt set. - if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') - pathExt.unshift('') - } - - // If it has a slash, then we don't bother searching the pathenv. - // just check the file itself, and that's it. - if (cmd.match(/\//) || isWindows && cmd.match(/\\/)) - pathEnv = [''] - - return { - env: pathEnv, - ext: pathExt, - extExe: pathExtExe - } -} - -function which (cmd, opt, cb) { - if (typeof opt === 'function') { - cb = opt - opt = {} - } - - var info = getPathInfo(cmd, opt) - var pathEnv = info.env - var pathExt = info.ext - var pathExtExe = info.extExe - var found = [] - - ;(function F (i, l) { - if (i === l) { - if (opt.all && found.length) - return cb(null, found) - else - return cb(getNotFoundError(cmd)) - } - - var pathPart = pathEnv[i] - if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') - pathPart = pathPart.slice(1, -1) - - var p = path.join(pathPart, cmd) - if (!pathPart && (/^\.[\\\/]/).test(cmd)) { - p = cmd.slice(0, 2) + p - } - ;(function E (ii, ll) { - if (ii === ll) return F(i + 1, l) - var ext = pathExt[ii] - isexe(p + ext, { pathExt: pathExtExe }, function (er, is) { - if (!er && is) { - if (opt.all) - found.push(p + ext) - else - return cb(null, p + ext) - } - return E(ii + 1, ll) - }) - })(0, pathExt.length) - })(0, pathEnv.length) -} - -function whichSync (cmd, opt) { - opt = opt || {} - - var info = getPathInfo(cmd, opt) - var pathEnv = info.env - var pathExt = info.ext - var pathExtExe = info.extExe - var found = [] - - for (var i = 0, l = pathEnv.length; i < l; i ++) { - var pathPart = pathEnv[i] - if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') - pathPart = pathPart.slice(1, -1) - - var p = path.join(pathPart, cmd) - if (!pathPart && /^\.[\\\/]/.test(cmd)) { - p = cmd.slice(0, 2) + p - } - for (var j = 0, ll = pathExt.length; j < ll; j ++) { - var cur = p + pathExt[j] - var is - try { - is = isexe.sync(cur, { pathExt: pathExtExe }) - if (is) { - if (opt.all) - found.push(cur) - else - return cur - } - } catch (ex) {} - } - } - - if (opt.all && found.length) - return found - - throw getNotFoundError(cmd) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/README.md deleted file mode 100644 index 98eab252..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# wrappy - -Callback wrapping utility - -## USAGE - -```javascript -var wrappy = require("wrappy") - -// var wrapper = wrappy(wrapperFunction) - -// make sure a cb is called only once -// See also: http://npm.im/once for this specific use case -var once = wrappy(function (cb) { - var called = false - return function () { - if (called) return - called = true - return cb.apply(this, arguments) - } -}) - -function printBoo () { - console.log('boo') -} -// has some rando property -printBoo.iAmBooPrinter = true - -var onlyPrintOnce = once(printBoo) - -onlyPrintOnce() // prints 'boo' -onlyPrintOnce() // does nothing - -// random property is retained! -assert.equal(onlyPrintOnce.iAmBooPrinter, true) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/package.json deleted file mode 100644 index a617a72b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "wrappy", - "version": "1.0.1", - "description": "Callback wrapping utility", - "main": "wrappy.js", - "directories": { - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "^0.4.12" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/wrappy.git" - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/wrappy/issues" - }, - "homepage": "https://github.com/npm/wrappy", - "readme": "# wrappy\n\nCallback wrapping utility\n\n## USAGE\n\n```javascript\nvar wrappy = require(\"wrappy\")\n\n// var wrapper = wrappy(wrapperFunction)\n\n// make sure a cb is called only once\n// See also: http://npm.im/once for this specific use case\nvar once = wrappy(function (cb) {\n var called = false\n return function () {\n if (called) return\n called = true\n return cb.apply(this, arguments)\n }\n})\n\nfunction printBoo () {\n console.log('boo')\n}\n// has some rando property\nprintBoo.iAmBooPrinter = true\n\nvar onlyPrintOnce = once(printBoo)\n\nonlyPrintOnce() // prints 'boo'\nonlyPrintOnce() // does nothing\n\n// random property is retained!\nassert.equal(onlyPrintOnce.iAmBooPrinter, true)\n```\n", - "readmeFilename": "README.md", - "_id": "wrappy@1.0.1", - "_shasum": "1e65969965ccbc2db4548c6b84a6f2c5aedd4739", - "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", - "_from": "wrappy@>=1.0.1 <1.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/test/basic.js deleted file mode 100644 index 5ed0fcdf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/test/basic.js +++ /dev/null @@ -1,51 +0,0 @@ -var test = require('tap').test -var wrappy = require('../wrappy.js') - -test('basic', function (t) { - function onceifier (cb) { - var called = false - return function () { - if (called) return - called = true - return cb.apply(this, arguments) - } - } - onceifier.iAmOnce = {} - var once = wrappy(onceifier) - t.equal(once.iAmOnce, onceifier.iAmOnce) - - var called = 0 - function boo () { - t.equal(called, 0) - called++ - } - // has some rando property - boo.iAmBoo = true - - var onlyPrintOnce = once(boo) - - onlyPrintOnce() // prints 'boo' - onlyPrintOnce() // does nothing - t.equal(called, 1) - - // random property is retained! - t.equal(onlyPrintOnce.iAmBoo, true) - - var logs = [] - var logwrap = wrappy(function (msg, cb) { - logs.push(msg + ' wrapping cb') - return function () { - logs.push(msg + ' before cb') - var ret = cb.apply(this, arguments) - logs.push(msg + ' after cb') - } - }) - - var c = logwrap('foo', function () { - t.same(logs, [ 'foo wrapping cb', 'foo before cb' ]) - }) - c() - t.same(logs, [ 'foo wrapping cb', 'foo before cb', 'foo after cb' ]) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/wrappy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/wrappy.js deleted file mode 100644 index bb7e7d6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/wrappy/wrappy.js +++ /dev/null @@ -1,33 +0,0 @@ -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) - - return wrapper - - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/.npmignore deleted file mode 100644 index 45438263..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -*~ -DEADJOE -.#* -node_modules \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/.travis.yml deleted file mode 100644 index 3bc5d90c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: node_js -sudo: false -before_install: - - "npm -g install npm" -node_js: - - "0.8" - - "0.10" - - "0.12" - - "iojs" - - "4" - - "5" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/LICENSE deleted file mode 100644 index 95e65a77..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/LICENSE +++ /dev/null @@ -1,6 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/README.md deleted file mode 100644 index 26e434d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/README.md +++ /dev/null @@ -1,44 +0,0 @@ -write-file-atomic ------------------ - -This is an extension for node's `fs.writeFile` that makes its operation -atomic and allows you set ownership (uid/gid of the file). - -### var writeFileAtomic = require('write-file-atomic')
            writeFileAtomic(filename, data, [options], callback) - -* filename **String** -* data **String** | **Buffer** -* options **Object** - * chown **Object** - * uid **Number** - * gid **Number** - * encoding **String** | **Null** default = 'utf8' - * mode **Number** default = 438 (aka 0666 in Octal) -callback **Function** - -Atomically and asynchronously writes data to a file, replacing the file if it already -exists. data can be a string or a buffer. - -The file is initially named `filename + "." + md5hex(__filename, process.pid, ++invocations)`. -If writeFile completes successfully then, if passed the **chown** option it will change -the ownership of the file. Finally it renames the file back to the filename you specified. If -it encounters errors at any of these steps it will attempt to unlink the temporary file and then -pass the error back to the caller. - -If provided, the **chown** option requires both **uid** and **gid** properties or else -you'll get an error. - -The **encoding** option is ignored if **data** is a buffer. It defaults to 'utf8'. - -Example: - -```javascript -writeFileAtomic('message.txt', 'Hello Node', {chown:{uid:100,gid:50}}, function (err) { - if (err) throw err; - console.log('It\'s saved!'); -}); -``` - -### var writeFileAtomicSync = require('write-file-atomic').sync
            writeFileAtomicSync(filename, data, [options]) - -The synchronous version of **writeFileAtomic**. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/index.js deleted file mode 100644 index 797e5717..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/index.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var chain = require('slide').chain -var MurmurHash3 = require('imurmurhash') - -function murmurhex () { - var hash = new MurmurHash3() - for (var ii = 0; ii < arguments.length; ++ii) hash.hash('' + arguments[ii]) - return hash.result() -} -var invocations = 0 -var getTmpname = function (filename) { - return filename + '.' + murmurhex(__filename, process.pid, ++invocations) -} - -module.exports = function writeFile (filename, data, options, callback) { - if (options instanceof Function) { - callback = options - options = null - } - if (!options) options = {} - var tmpfile = getTmpname(filename) - chain([ - [fs, fs.writeFile, tmpfile, data, options], - options.chown && [fs, fs.chown, tmpfile, options.chown.uid, options.chown.gid], - [fs, fs.rename, tmpfile, filename] - ], function (err) { - err ? fs.unlink(tmpfile, function () { callback(err) }) - : callback() - }) -} - -module.exports.sync = function writeFileSync (filename, data, options) { - if (!options) options = {} - var tmpfile = getTmpname(filename) - try { - fs.writeFileSync(tmpfile, data, options) - if (options.chown) fs.chownSync(tmpfile, options.chown.uid, options.chown.gid) - fs.renameSync(tmpfile, filename) - } catch (err) { - try { fs.unlinkSync(tmpfile) } catch (e) {} - throw err - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/package.json deleted file mode 100644 index 8fad4578..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_args": [ - [ - "write-file-atomic@^1.1.4", - "/Users/ogd/Documents/projects/npm/npm" - ] - ], - "_from": "write-file-atomic@>=1.1.4 <2.0.0", - "_id": "write-file-atomic@1.1.4", - "_inCache": true, - "_installable": true, - "_location": "/write-file-atomic", - "_nodeVersion": "5.1.0", - "_npmUser": { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - "_npmVersion": "3.5.1", - "_phantomChildren": {}, - "_requested": { - "name": "write-file-atomic", - "raw": "write-file-atomic@^1.1.4", - "rawSpec": "^1.1.4", - "scope": null, - "spec": ">=1.1.4 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/" - ], - "_shasum": "b1f52dc2e8dc0e3cb04d187a25f758a38a90ca3b", - "_shrinkwrap": null, - "_spec": "write-file-atomic@^1.1.4", - "_where": "/Users/ogd/Documents/projects/npm/npm", - "author": { - "email": "me@re-becca.org", - "name": "Rebecca Turner", - "url": "http://re-becca.org" - }, - "bugs": { - "url": "https://github.com/iarna/write-file-atomic/issues" - }, - "dependencies": { - "graceful-fs": "^4.1.2", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - }, - "description": "Write files in an atomic fashion w/configurable ownership", - "devDependencies": { - "require-inject": "^1.1.0", - "standard": "^5.4.1", - "tap": "^2.3.1" - }, - "directories": {}, - "dist": { - "shasum": "b1f52dc2e8dc0e3cb04d187a25f758a38a90ca3b", - "tarball": "http://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.1.4.tgz" - }, - "gitHead": "42dc04a17af96ac045f4979c8c951ee5a14a8b8b", - "homepage": "https://github.com/iarna/write-file-atomic", - "keywords": [ - "atomic", - "writeFile" - ], - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - } - ], - "name": "write-file-atomic", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/iarna/write-file-atomic.git" - }, - "scripts": { - "test": "standard && tap --coverage test/*.js" - }, - "version": "1.1.4" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/test/basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/test/basic.js deleted file mode 100644 index 13b97197..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/node_modules/write-file-atomic/test/basic.js +++ /dev/null @@ -1,97 +0,0 @@ -'use strict' -var test = require('tap').test -var requireInject = require('require-inject') -var writeFileAtomic = requireInject('../index', { - 'graceful-fs': { - writeFile: function (tmpfile, data, options, cb) { - if (/nowrite/.test(tmpfile)) return cb(new Error('ENOWRITE')) - cb() - }, - chown: function (tmpfile, uid, gid, cb) { - if (/nochown/.test(tmpfile)) return cb(new Error('ENOCHOWN')) - cb() - }, - rename: function (tmpfile, filename, cb) { - if (/norename/.test(tmpfile)) return cb(new Error('ENORENAME')) - cb() - }, - unlink: function (tmpfile, cb) { - if (/nounlink/.test(tmpfile)) return cb(new Error('ENOUNLINK')) - cb() - }, - writeFileSync: function (tmpfile, data, options) { - if (/nowrite/.test(tmpfile)) throw new Error('ENOWRITE') - }, - chownSync: function (tmpfile, uid, gid) { - if (/nochown/.test(tmpfile)) throw new Error('ENOCHOWN') - }, - renameSync: function (tmpfile, filename) { - if (/norename/.test(tmpfile)) throw new Error('ENORENAME') - }, - unlinkSync: function (tmpfile) { - if (/nounlink/.test(tmpfile)) throw new Error('ENOUNLINK') - } - } -}) -var writeFileAtomicSync = writeFileAtomic.sync - -test('async tests', function (t) { - t.plan(7) - writeFileAtomic('good', 'test', {mode: '0777'}, function (err) { - t.notOk(err, 'No errors occur when passing in options') - }) - writeFileAtomic('good', 'test', function (err) { - t.notOk(err, 'No errors occur when NOT passing in options') - }) - writeFileAtomic('nowrite', 'test', function (err) { - t.is(err.message, 'ENOWRITE', 'writeFile failures propagate') - }) - writeFileAtomic('nochown', 'test', {chown: {uid: 100, gid: 100}}, function (err) { - t.is(err.message, 'ENOCHOWN', 'Chown failures propagate') - }) - writeFileAtomic('nochown', 'test', function (err) { - t.notOk(err, 'No attempt to chown when no uid/gid passed in') - }) - writeFileAtomic('norename', 'test', function (err) { - t.is(err.message, 'ENORENAME', 'Rename errors propagate') - }) - writeFileAtomic('norename nounlink', 'test', function (err) { - t.is(err.message, 'ENORENAME', 'Failure to unlink the temp file does not clobber the original error') - }) -}) - -test('sync tests', function (t) { - t.plan(7) - var throws = function (shouldthrow, msg, todo) { - var err - try { todo() } catch (e) { err = e } - t.is(shouldthrow, err.message, msg) - } - var noexception = function (msg, todo) { - var err - try { todo() } catch (e) { err = e } - t.notOk(err, msg) - } - - noexception('No errors occur when passing in options', function () { - writeFileAtomicSync('good', 'test', {mode: '0777'}) - }) - noexception('No errors occur when NOT passing in options', function () { - writeFileAtomicSync('good', 'test') - }) - throws('ENOWRITE', 'writeFile failures propagate', function () { - writeFileAtomicSync('nowrite', 'test') - }) - throws('ENOCHOWN', 'Chown failures propagate', function () { - writeFileAtomicSync('nochown', 'test', {chown: {uid: 100, gid: 100}}) - }) - noexception('No attempt to chown when no uid/gid passed in', function () { - writeFileAtomicSync('nochown', 'test') - }) - throws('ENORENAME', 'Rename errors propagate', function () { - writeFileAtomicSync('norename', 'test') - }) - throws('ENORENAME', 'Failure to unlink the temp file does not clobber the original error', function () { - writeFileAtomicSync('norename nounlink', 'test') - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/package.json deleted file mode 100644 index 6293c697..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/package.json +++ /dev/null @@ -1,1957 +0,0 @@ -{ - "version": "3.9.6", - "name": "npm", - "description": "a package manager for JavaScript", - "keywords": [ - "install", - "modules", - "package manager", - "package.json" - ], - "preferGlobal": true, - "config": { - "publishtest": false - }, - "homepage": "https://docs.npmjs.com/", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/npm.git" - }, - "bugs": { - "url": "https://github.com/npm/npm/issues" - }, - "directories": { - "bin": "./bin", - "doc": "./doc", - "lib": "./lib", - "man": "./man" - }, - "main": "./lib/npm.js", - "bin": { - "npm": "./bin/npm-cli.js" - }, - "dependencies": { - "abbrev": "~1.0.7", - "ansicolors": "~0.3.2", - "ansistyles": "~0.1.3", - "aproba": "~1.0.3", - "archy": "~1.0.0", - "chownr": "~1.0.1", - "cmd-shim": "~2.0.2", - "columnify": "~1.5.4", - "config-chain": "~1.1.10", - "dezalgo": "~1.0.3", - "editor": "~1.0.0", - "fs-vacuum": "~1.2.9", - "fs-write-stream-atomic": "~1.0.8", - "fstream": "~1.0.8", - "fstream-npm": "~1.1.0", - "glob": "~7.0.3", - "graceful-fs": "~4.1.4", - "has-unicode": "~2.0.0", - "hosted-git-info": "~2.1.5", - "iferr": "~0.1.5", - "inflight": "~1.0.5", - "inherits": "~2.0.1", - "ini": "~1.3.4", - "init-package-json": "~1.9.4", - "lockfile": "~1.0.1", - "lodash._baseuniq": "~4.6.0", - "lodash.clonedeep": "~4.3.2", - "lodash.union": "~4.4.0", - "lodash.uniq": "~4.3.0", - "lodash.without": "~4.2.0", - "mkdirp": "~0.5.1", - "node-gyp": "~3.3.1", - "nopt": "~3.0.6", - "normalize-git-url": "~3.0.2", - "normalize-package-data": "~2.3.5", - "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~3.0.0", - "npm-package-arg": "~4.1.1", - "npm-registry-client": "~7.1.0", - "npm-user-validate": "~0.1.2", - "npmlog": "~2.0.3", - "once": "~1.3.3", - "opener": "~1.4.1", - "osenv": "~0.1.3", - "path-is-inside": "~1.0.1", - "read": "~1.0.7", - "read-cmd-shim": "~1.0.1", - "read-installed": "~4.0.3", - "read-package-json": "~2.0.4", - "read-package-tree": "~5.1.4", - "readable-stream": "~2.1.3", - "realize-package-specifier": "~3.0.3", - "request": "~2.72.0", - "retry": "~0.9.0", - "rimraf": "~2.5.2", - "semver": "~5.1.0", - "sha": "~2.0.1", - "slide": "~1.1.6", - "sorted-object": "~2.0.0", - "strip-ansi": "~3.0.1", - "tar": "~2.2.1", - "text-table": "~0.2.0", - "uid-number": "0.0.6", - "umask": "~1.1.0", - "unique-filename": "~1.1.0", - "unpipe": "~1.0.0", - "validate-npm-package-name": "~2.2.2", - "which": "~1.2.9", - "wrappy": "~1.0.1", - "write-file-atomic": "~1.1.4", - "ansi-regex": "*", - "debuglog": "*", - "imurmurhash": "*", - "lodash._baseindexof": "*", - "lodash._bindcallback": "*", - "lodash._cacheindexof": "*", - "lodash._createcache": "*", - "lodash._getnative": "*", - "lodash.restparam": "*", - "readdir-scoped-modules": "*", - "validate-npm-package-license": "*" - }, - "bundleDependencies": [ - "abbrev", - "ansi-regex", - "ansicolors", - "ansistyles", - "aproba", - "archy", - "chownr", - "cmd-shim", - "columnify", - "config-chain", - "debuglog", - "dezalgo", - "editor", - "fs-vacuum", - "fs-write-stream-atomic", - "fstream", - "fstream-npm", - "glob", - "graceful-fs", - "has-unicode", - "hosted-git-info", - "iferr", - "imurmurhash", - "inflight", - "inherits", - "ini", - "init-package-json", - "lockfile", - "lodash._baseindexof", - "lodash._baseuniq", - "lodash._bindcallback", - "lodash._cacheindexof", - "lodash._createcache", - "lodash._getnative", - "lodash.clonedeep", - "lodash.restparam", - "lodash.union", - "lodash.uniq", - "lodash.without", - "mkdirp", - "node-gyp", - "nopt", - "normalize-git-url", - "normalize-package-data", - "npm-cache-filename", - "npm-install-checks", - "npm-package-arg", - "npm-registry-client", - "npm-user-validate", - "npmlog", - "once", - "opener", - "osenv", - "path-is-inside", - "read", - "read-cmd-shim", - "read-installed", - "read-package-json", - "read-package-tree", - "readable-stream", - "readdir-scoped-modules", - "realize-package-specifier", - "request", - "retry", - "rimraf", - "semver", - "sha", - "slide", - "sorted-object", - "strip-ansi", - "tar", - "text-table", - "uid-number", - "umask", - "unique-filename", - "unpipe", - "validate-npm-package-license", - "validate-npm-package-name", - "which", - "wrappy", - "write-file-atomic" - ], - "devDependencies": { - "deep-equal": "~1.0.1", - "marked": "~0.3.5", - "marked-man": "~0.1.5", - "npm-registry-couchapp": "~2.6.12", - "npm-registry-mock": "~1.0.1", - "require-inject": "~1.3.1", - "sprintf-js": "~1.0.3", - "standard": "~6.0.8", - "tacks": "~1.2.1", - "tap": "~5.7.1" - }, - "scripts": { - "dumpconf": "env | grep npm | sort | uniq", - "prepublish": "node bin/npm-cli.js prune --prefix=. --no-global && rimraf test/*/*/node_modules && make doc-clean && make -j4 doc", - "preversion": "bash scripts/update-authors.sh && git add AUTHORS && git commit -m \"update AUTHORS\" || true", - "tap": "tap --coverage --reporter=classic --timeout 300", - "test": "standard && npm run test-tap", - "test-tap": "npm run tap -- \"test/tap/*.js\"", - "test-node": "\"$NODE\" \"node_modules/.bin/tap\" --timeout 240 \"test/tap/*.js\"" - }, - "license": "Artistic-2.0", - "contributors": [ - { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me" - }, - { - "name": "Steve Steiner", - "email": "ssteinerX@gmail.com" - }, - { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com" - }, - { - "name": "Aaron Blohowiak", - "email": "aaron.blohowiak@gmail.com" - }, - { - "name": "Martyn Smith", - "email": "martyn@dollyfish.net.nz" - }, - { - "name": "Charlie Robbins", - "email": "charlie.robbins@gmail.com" - }, - { - "name": "Francisco Treacy", - "email": "francisco.treacy@gmail.com" - }, - { - "name": "Cliffano Subagio", - "email": "cliffano@gmail.com" - }, - { - "name": "Christian Eager", - "email": "christian.eager@nokia.com" - }, - { - "name": "Dav Glass", - "email": "davglass@gmail.com" - }, - { - "name": "Alex K. Wolfe", - "email": "alexkwolfe@gmail.com" - }, - { - "name": "James Sanders", - "email": "jimmyjazz14@gmail.com" - }, - { - "name": "Reid Burke", - "email": "me@reidburke.com" - }, - { - "name": "Arlo Breault", - "email": "arlolra@gmail.com" - }, - { - "name": "Timo Derstappen", - "email": "teemow@gmail.com" - }, - { - "name": "Bart Teeuwisse", - "email": "bart.teeuwisse@thecodemill.biz" - }, - { - "name": "Ben Noordhuis", - "email": "info@bnoordhuis.nl" - }, - { - "name": "Tor Valamo", - "email": "tor.valamo@gmail.com" - }, - { - "name": "Whyme.Lyu", - "email": "5longluna@gmail.com" - }, - { - "name": "Olivier Melcher", - "email": "olivier.melcher@gmail.com" - }, - { - "name": "Tomaž Muraus", - "email": "kami@k5-storitve.net" - }, - { - "name": "Evan Meagher", - "email": "evan.meagher@gmail.com" - }, - { - "name": "Orlando Vazquez", - "email": "ovazquez@gmail.com" - }, - { - "name": "Kai Chen", - "email": "kaichenxyz@gmail.com" - }, - { - "name": "George Miroshnykov", - "email": "gmiroshnykov@lohika.com" - }, - { - "name": "Geoff Flarity", - "email": "geoff.flarity@gmail.com" - }, - { - "name": "Max Goodman", - "email": "c@chromakode.com" - }, - { - "name": "Pete Kruckenberg", - "email": "pete@kruckenberg.com" - }, - { - "name": "Laurie Harper", - "email": "laurie@holoweb.net" - }, - { - "name": "Chris Wong", - "email": "chris@chriswongstudio.com" - }, - { - "name": "Scott Bronson", - "email": "brons_github@rinspin.com" - }, - { - "name": "Federico Romero", - "email": "federomero@gmail.com" - }, - { - "name": "Visnu Pitiyanuvath", - "email": "visnupx@gmail.com" - }, - { - "name": "Irakli Gozalishvili", - "email": "rfobic@gmail.com" - }, - { - "name": "Mark Cahill", - "email": "mark@tiemonster.info" - }, - { - "name": "Tony", - "email": "zearin@gonk.net" - }, - { - "name": "Iain Sproat", - "email": "iainsproat@gmail.com" - }, - { - "name": "Trent Mick", - "email": "trentm@gmail.com" - }, - { - "name": "Felix Geisendörfer", - "email": "felix@debuggable.com" - }, - { - "name": "Jameson Little", - "email": "t.jameson.little@gmail.com" - }, - { - "name": "Conny Brunnkvist", - "email": "conny@fuchsia.se" - }, - { - "name": "Will Elwood", - "email": "w.elwood08@gmail.com" - }, - { - "name": "Dean Landolt", - "email": "dean@deanlandolt.com" - }, - { - "name": "Oleg Efimov", - "email": "efimovov@gmail.com" - }, - { - "name": "Martin Cooper", - "email": "mfncooper@gmail.com" - }, - { - "name": "Jann Horn", - "email": "jannhorn@googlemail.com" - }, - { - "name": "Andrew Bradley", - "email": "cspotcode@gmail.com" - }, - { - "name": "Maciej Małecki", - "email": "me@mmalecki.com" - }, - { - "name": "Stephen Sugden", - "email": "glurgle@gmail.com" - }, - { - "name": "Michael Budde", - "email": "mbudde@gmail.com" - }, - { - "name": "Jason Smith", - "email": "jhs@iriscouch.com" - }, - { - "name": "Gautham Pai", - "email": "buzypi@gmail.com" - }, - { - "name": "David Trejo", - "email": "david.daniel.trejo@gmail.com" - }, - { - "name": "Paul Vorbach", - "email": "paul@vorb.de" - }, - { - "name": "George Ornbo", - "email": "george@shapeshed.com" - }, - { - "name": "Tim Oxley", - "email": "secoif@gmail.com" - }, - { - "name": "Tyler Green", - "email": "tyler.green2@gmail.com" - }, - { - "name": "Dave Pacheco", - "email": "dap@joyent.com" - }, - { - "name": "Danila Gerasimov", - "email": "danila.gerasimov@gmail.com" - }, - { - "name": "Rod Vagg", - "email": "rod@vagg.org" - }, - { - "name": "Christian Howe", - "email": "coderarity@gmail.com" - }, - { - "name": "Andrew Lunny", - "email": "alunny@gmail.com" - }, - { - "name": "Henrik Hodne", - "email": "dvyjones@binaryhex.com" - }, - { - "name": "Adam Blackburn", - "email": "regality@gmail.com" - }, - { - "name": "Kris Windham", - "email": "kriswindham@gmail.com" - }, - { - "name": "Jens Grunert", - "email": "jens.grunert@gmail.com" - }, - { - "name": "Joost-Wim Boekesteijn", - "email": "joost-wim@boekesteijn.nl" - }, - { - "name": "Dalmais Maxence", - "email": "root@ip-10-195-202-5.ec2.internal" - }, - { - "name": "Marcus Ekwall", - "email": "marcus.ekwall@gmail.com" - }, - { - "name": "Aaron Stacy", - "email": "aaron.r.stacy@gmail.com" - }, - { - "name": "Phillip Howell", - "email": "phowell@cothm.org" - }, - { - "name": "Domenic Denicola", - "email": "domenic@domenicdenicola.com" - }, - { - "name": "James Halliday", - "email": "mail@substack.net" - }, - { - "name": "Jeremy Cantrell", - "email": "jmcantrell@gmail.com" - }, - { - "name": "Ribettes", - "email": "patlogan29@gmail.com" - }, - { - "name": "Don Park", - "email": "donpark@docuverse.com" - }, - { - "name": "Einar Otto Stangvik", - "email": "einaros@gmail.com" - }, - { - "name": "Kei Son", - "email": "heyacct@gmail.com" - }, - { - "name": "Nicolas Morel", - "email": "marsup@gmail.com" - }, - { - "name": "Mark Dube", - "email": "markisdee@gmail.com" - }, - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net" - }, - { - "name": "Maxim Bogushevich", - "email": "boga1@mail.ru" - }, - { - "name": "Meaglin", - "email": "Meaglin.wasabi@gmail.com" - }, - { - "name": "Ben Evans", - "email": "ben@bensbit.co.uk" - }, - { - "name": "Nathan Zadoks", - "email": "nathan@nathan7.eu" - }, - { - "name": "Brian White", - "email": "mscdex@mscdex.net" - }, - { - "name": "Jed Schmidt", - "email": "tr@nslator.jp" - }, - { - "name": "Ian Livingstone", - "email": "ianl@cs.dal.ca" - }, - { - "name": "Patrick Pfeiffer", - "email": "patrick@buzzle.at" - }, - { - "name": "Paul Miller", - "email": "paul@paulmillr.com" - }, - { - "name": "Ryan Emery", - "email": "seebees@gmail.com" - }, - { - "name": "Carl Lange", - "email": "carl@flax.ie" - }, - { - "name": "Jan Lehnardt", - "email": "jan@apache.org" - }, - { - "name": "Stuart P. Bentley", - "email": "stuart@testtrack4.com" - }, - { - "name": "Johan Sköld", - "email": "johan@skold.cc" - }, - { - "name": "Stuart Knightley", - "email": "stuart@stuartk.com" - }, - { - "name": "Niggler", - "email": "nirk.niggler@gmail.com" - }, - { - "name": "Paolo Fragomeni", - "email": "paolo@async.ly" - }, - { - "name": "Jaakko Manninen", - "email": "jaakko@rocketpack.fi" - }, - { - "name": "Luke Arduini", - "email": "luke.arduini@gmail.com" - }, - { - "name": "Larz Conwell", - "email": "larz@larz-laptop.(none)", - "url": "none" - }, - { - "name": "Marcel Klehr", - "email": "mklehr@gmx.net" - }, - { - "name": "Robert Kowalski", - "email": "rok@kowalski.gd" - }, - { - "name": "Forbes Lindesay", - "email": "forbes@lindesay.co.uk" - }, - { - "name": "Vaz Allen", - "email": "vaz@tryptid.com" - }, - { - "name": "Jake Verbaten", - "email": "raynos2@gmail.com" - }, - { - "name": "Schabse Laks", - "email": "Dev@SLaks.net" - }, - { - "name": "Florian Margaine", - "email": "florian@margaine.com" - }, - { - "name": "Johan Nordberg", - "email": "its@johan-nordberg.com" - }, - { - "name": "Ian Babrou", - "email": "ibobrik@gmail.com" - }, - { - "name": "Di Wu", - "email": "dwu@palantir.com" - }, - { - "name": "Mathias Bynens", - "email": "mathias@qiwi.be" - }, - { - "name": "Matt McClure", - "email": "matt.mcclure@mapmyfitness.com" - }, - { - "name": "Matt Lunn", - "email": "matt@mattlunn.me.uk" - }, - { - "name": "Alexey Kreschuk", - "email": "akrsch@gmail.com" - }, - { - "name": "elisee", - "email": "elisee@sparklin.org" - }, - { - "name": "Robert Gieseke", - "email": "robert.gieseke@gmail.com" - }, - { - "name": "François Frisch", - "email": "francoisfrisch@gmail.com" - }, - { - "name": "Trevor Burnham", - "email": "tburnham@hubspot.com" - }, - { - "name": "Alan Shaw", - "email": "alan@freestyle-developments.co.uk" - }, - { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "Nicholas Kinsey", - "email": "pyro@feisty.io" - }, - { - "name": "Paulo Cesar", - "email": "pauloc062@gmail.com" - }, - { - "name": "Elan Shanker", - "email": "elan.shanker@gmail.com" - }, - { - "name": "Jon Spencer", - "email": "jon@jonspencer.ca" - }, - { - "name": "Jason Diamond", - "email": "jason@diamond.name" - }, - { - "name": "Maximilian Antoni", - "email": "mail@maxantoni.de" - }, - { - "name": "Thom Blake", - "email": "tblake@brightroll.com" - }, - { - "name": "Jess Martin", - "email": "jessmartin@gmail.com" - }, - { - "name": "Spain Train", - "email": "michael.spainhower@opower.com" - }, - { - "name": "Alex Rodionov", - "email": "p0deje@gmail.com" - }, - { - "name": "Matt Colyer", - "email": "matt@colyer.name" - }, - { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - { - "name": "bitspill", - "email": "bitspill+github@bitspill.net" - }, - { - "name": "Gabriel Falkenberg", - "email": "gabriel.falkenberg@gmail.com" - }, - { - "name": "Alexej Yaroshevich", - "email": "alex@qfox.ru" - }, - { - "name": "Quim Calpe", - "email": "quim@kalpe.com" - }, - { - "name": "Steve Mason", - "email": "stevem@brandwatch.com" - }, - { - "name": "Wil Moore III", - "email": "wil.moore@wilmoore.com" - }, - { - "name": "Sergey Belov", - "email": "peimei@ya.ru" - }, - { - "name": "Tom Huang", - "email": "hzlhu.dargon@gmail.com" - }, - { - "name": "CamilleM", - "email": "camille.moulin@alterway.fr" - }, - { - "name": "Sébastien Santoro", - "email": "dereckson@espace-win.org" - }, - { - "name": "Evan Lucas", - "email": "evan@btc.com" - }, - { - "name": "Quinn Slack", - "email": "qslack@qslack.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Daniel Santiago", - "email": "daniel.santiago@highlevelwebs.com" - }, - { - "name": "Denis Gladkikh", - "email": "outcoldman@gmail.com" - }, - { - "name": "Andrew Horton", - "email": "andrew.j.horton@gmail.com" - }, - { - "name": "Zeke Sikelianos", - "email": "zeke@sikelianos.com" - }, - { - "name": "Dylan Greene", - "email": "dylang@gmail.com" - }, - { - "name": "Franck Cuny", - "email": "franck.cuny@gmail.com" - }, - { - "name": "Yeonghoon Park", - "email": "sola92@gmail.com" - }, - { - "name": "Rafael de Oleza", - "email": "rafa@spotify.com" - }, - { - "name": "Mikola Lysenko", - "email": "mikolalysenko@gmail.com" - }, - { - "name": "Yazhong Liu", - "email": "yorkiefixer@gmail.com" - }, - { - "name": "Neil Gentleman", - "email": "ngentleman@gmail.com" - }, - { - "name": "Kris Kowal", - "email": "kris.kowal@cixar.com" - }, - { - "name": "Alex Gorbatchev", - "email": "alex.gorbatchev@gmail.com" - }, - { - "name": "Shawn Wildermuth", - "email": "shawn@wildermuth.com" - }, - { - "name": "Wesley de Souza", - "email": "wesleywex@gmail.com" - }, - { - "name": "yoyoyogi", - "email": "yogesh.k@gmail.com" - }, - { - "name": "J. Tangelder", - "email": "j.tangelder@gmail.com" - }, - { - "name": "Jean Lauliac", - "email": "jean@lauliac.com" - }, - { - "name": "Andrey Kislyuk", - "email": "kislyuk@gmail.com" - }, - { - "name": "Thorsten Lorenz", - "email": "thlorenz@gmx.de" - }, - { - "name": "Julian Gruber", - "email": "julian@juliangruber.com" - }, - { - "name": "Benjamin Coe", - "email": "bencoe@gmail.com" - }, - { - "name": "Alex Ford", - "email": "Alex.Ford@CodeTunnel.com" - }, - { - "name": "Matt Hickford", - "email": "matt.hickford@gmail.com" - }, - { - "name": "Sean McGivern", - "email": "sean.mcgivern@rightscale.com" - }, - { - "name": "C J Silverio", - "email": "ceejceej@gmail.com" - }, - { - "name": "Robin Tweedie", - "email": "robin@songkick.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "David Glasser", - "email": "glasser@davidglasser.net" - }, - { - "name": "Gianluca Casati", - "email": "casati_gianluca@yahoo.it" - }, - { - "name": "Forrest L Norvell", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "Karsten Tinnefeld", - "email": "k.tinnefeld@googlemail.com" - }, - { - "name": "Bryan Burgers", - "email": "bryan@burgers.io" - }, - { - "name": "David Beitey", - "email": "david@davidjb.com" - }, - { - "name": "Evan You", - "email": "yyou@google.com" - }, - { - "name": "Zach Pomerantz", - "email": "zmp@umich.edu" - }, - { - "name": "Chris Williams", - "email": "cwilliams88@gmail.com" - }, - { - "name": "sudodoki", - "email": "smd.deluzion@gmail.com" - }, - { - "name": "Mick Thompson", - "email": "dthompson@gmail.com" - }, - { - "name": "Felix Rabe", - "email": "felix@rabe.io" - }, - { - "name": "Michael Hayes", - "email": "michael@hayes.io" - }, - { - "name": "Chris Dickinson", - "email": "christopher.s.dickinson@gmail.com" - }, - { - "name": "Bradley Meck", - "email": "bradley.meck@gmail.com" - }, - { - "name": "GeJ", - "email": "geraud@gcu.info" - }, - { - "name": "Andrew Terris", - "email": "atterris@gmail.com" - }, - { - "name": "Michael Nisi", - "email": "michael.nisi@gmail.com" - }, - { - "name": "fengmk2", - "email": "fengmk2@gmail.com" - }, - { - "name": "Adam Meadows", - "email": "adam.meadows@gmail.com" - }, - { - "name": "Chulki Lee", - "email": "chulki.lee@gmail.com" - }, - { - "name": "不四", - "email": "busi.hyy@taobao.com" - }, - { - "name": "dead_horse", - "email": "dead_horse@qq.com" - }, - { - "name": "Kenan Yildirim", - "email": "kenan@kenany.me" - }, - { - "name": "Laurie Voss", - "email": "git@seldo.com" - }, - { - "name": "Rebecca Turner", - "email": "me@re-becca.org" - }, - { - "name": "Hunter Loftis", - "email": "hunter@hunterloftis.com" - }, - { - "name": "Peter Richardson", - "email": "github@zoomy.net" - }, - { - "name": "Jussi Kalliokoski", - "email": "jussi.kalliokoski@gmail.com" - }, - { - "name": "Filip Weiss", - "email": "me@fiws.net" - }, - { - "name": "Timo Weiß", - "email": "timoweiss@Timo-MBP.local" - }, - { - "name": "Christopher Hiller", - "email": "chiller@badwing.com" - }, - { - "name": "Jérémy Lal", - "email": "kapouer@melix.org" - }, - { - "name": "Anders Janmyr", - "email": "anders@janmyr.com" - }, - { - "name": "Chris Meyers", - "email": "chris.meyers.fsu@gmail.com" - }, - { - "name": "Ludwig Magnusson", - "email": "ludwig@mediatool.com" - }, - { - "name": "Wout Mertens", - "email": "Wout.Mertens@gmail.com" - }, - { - "name": "Nick Santos", - "email": "nick@medium.com" - }, - { - "name": "Terin Stock", - "email": "terinjokes@gmail.com" - }, - { - "name": "Faiq Raza", - "email": "faiqrazarizvi@gmail.com" - }, - { - "name": "Thomas Torp", - "email": "thomas@erupt.no" - }, - { - "name": "Sam Mikes", - "email": "smikes@cubane.com" - }, - { - "name": "Mat Tyndall", - "email": "mat.tyndall@gmail.com" - }, - { - "name": "Tauren Mills", - "email": "tauren@sportzing.com" - }, - { - "name": "Ron Martinez", - "email": "ramartin.net@gmail.com" - }, - { - "name": "Kazuhito Hokamura", - "email": "k.hokamura@gmail.com" - }, - { - "name": "Tristan Davies", - "email": "github@tristan.io" - }, - { - "name": "David Volm", - "email": "david@volminator.com" - }, - { - "name": "Lin Clark", - "email": "lin.w.clark@gmail.com" - }, - { - "name": "Ben Page", - "email": "bpage@dewalch.com" - }, - { - "name": "Jeff Jo", - "email": "jeffjo@squareup.com" - }, - { - "name": "martinvd", - "email": "martinvdpub@gmail.com" - }, - { - "name": "Mark J. Titorenko", - "email": "nospam-github.com@titorenko.net" - }, - { - "name": "Oddur Sigurdsson", - "email": "oddurs@gmail.com" - }, - { - "name": "Eric Mill", - "email": "eric@konklone.com" - }, - { - "name": "Gabriel Barros", - "email": "descartavel1@gmail.com" - }, - { - "name": "KevinSheedy", - "email": "kevinsheedy@gmail.com" - }, - { - "name": "Aleksey Smolenchuk", - "email": "aleksey@uber.com" - }, - { - "name": "Ed Morley", - "email": "emorley@mozilla.com" - }, - { - "name": "Blaine Bublitz", - "email": "blaine@iceddev.com" - }, - { - "name": "Andrey Fedorov", - "email": "anfedorov@gmail.com" - }, - { - "name": "Daijiro Wachi", - "email": "daijiro.wachi@gmail.com" - }, - { - "name": "Luc Thevenard", - "email": "lucthevenard@gmail.com" - }, - { - "name": "Aria Stewart", - "email": "aredridel@nbtsc.org" - }, - { - "name": "Charlie Rudolph", - "email": "charles.w.rudolph@gmail.com" - }, - { - "name": "Vladimir Rutsky", - "email": "rutsky@users.noreply.github.com" - }, - { - "name": "Isaac Murchie", - "email": "isaac@saucelabs.com" - }, - { - "name": "Marcin Wosinek", - "email": "marcin.wosinek@gmail.com" - }, - { - "name": "David Marr", - "email": "davemarr@gmail.com" - }, - { - "name": "Bryan English", - "email": "bryan@bryanenglish.com" - }, - { - "name": "Anthony Zotti", - "email": "amZotti@users.noreply.github.com" - }, - { - "name": "Karl Horky", - "email": "karl.horky@gmail.com" - }, - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com" - }, - { - "name": "Guðlaugur Stefán Egilsson", - "email": "gulli@kolibri.is" - }, - { - "name": "Helge Skogly Holm", - "email": "helge.holm@gmail.com" - }, - { - "name": "Peter A. Shevtsov", - "email": "petr.shevtsov@gmail.com" - }, - { - "name": "Alain Kalker", - "email": "a.c.kalker@gmail.com" - }, - { - "name": "Bryant Williams", - "email": "b.n.williams@gmail.com" - }, - { - "name": "Jonas Weber", - "email": "github@jonasw.de" - }, - { - "name": "Tim Whidden", - "email": "twhid@twhid.com" - }, - { - "name": "Andreas", - "email": "functino@users.noreply.github.com" - }, - { - "name": "Karolis Narkevicius", - "email": "karolis.n@gmail.com" - }, - { - "name": "Adrian Lynch", - "email": "adi_ady_ade@hotmail.com" - }, - { - "name": "Richard Littauer", - "email": "richard.littauer@gmail.com" - }, - { - "name": "Oli Evans", - "email": "oli@zilla.org.uk" - }, - { - "name": "Matt Brennan", - "email": "mattyb1000@gmail.com" - }, - { - "name": "Jeff Barczewski", - "email": "jeff.barczewski@gmail.com" - }, - { - "name": "Danny Fritz", - "email": "dannyfritz@gmail.com" - }, - { - "name": "Takaya Kobayashi", - "email": "jigsaw@live.jp" - }, - { - "name": "Ra'Shaun Stovall", - "email": "rashaunstovall@gmail.com" - }, - { - "name": "Julien Meddah", - "email": "julien.meddah@deveryware.com" - }, - { - "name": "Michiel Sikma", - "email": "michiel@wedemandhtml.com" - }, - { - "name": "Jakob Krigovsky", - "email": "jakob.krigovsky@gmail.com" - }, - { - "name": "Charmander", - "email": "~@charmander.me" - }, - { - "name": "Erik Wienhold", - "email": "git@ewie.name" - }, - { - "name": "James Butler", - "email": "james.butler@sandfox.co.uk" - }, - { - "name": "Kevin Kragenbrink", - "email": "kevin@gaikai.com" - }, - { - "name": "Arnaud Rinquin", - "email": "rinquin.arnaud@gmail.com" - }, - { - "name": "Mike MacCana", - "email": "mike.maccana@gmail.com" - }, - { - "name": "Antti Mattila", - "email": "anttti@fastmail.fm" - }, - { - "name": "laiso", - "email": "laiso@lai.so" - }, - { - "name": "Matt Zorn", - "email": "zornme@gmail.com" - }, - { - "name": "Kyle Mitchell", - "email": "kyle@kemitchell.com" - }, - { - "name": "Jeremiah Senkpiel", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "Michael Klein", - "email": "mischkl@users.noreply.github.com" - }, - { - "name": "Simen Bekkhus", - "email": "sbekkhus91@gmail.com" - }, - { - "name": "Victor", - "email": "victor.shih@gmail.com" - }, - { - "name": "thefourtheye", - "email": "thechargingvolcano@gmail.com" - }, - { - "name": "Clay Carpenter", - "email": "claycarpenter@gmail.com" - }, - { - "name": "bangbang93", - "email": "bangbang93@163.com" - }, - { - "name": "Nick Malaguti", - "email": "nmalaguti@palantir.com" - }, - { - "name": "Cedric Nelson", - "email": "cedric.nelson@gmail.com" - }, - { - "name": "Kat Marchán", - "email": "kzm@sykosomatic.org" - }, - { - "name": "Andrew", - "email": "talktome@aboutandrew.co.uk" - }, - { - "name": "Eduardo Pinho", - "email": "enet4mikeenet@gmail.com" - }, - { - "name": "Rachel Hutchison", - "email": "rhutchix@intel.com" - }, - { - "name": "Ryan Temple", - "email": "ryantemple145@gmail.com" - }, - { - "name": "Eugene Sharygin", - "email": "eush77@gmail.com" - }, - { - "name": "James Talmage", - "email": "james@talmage.io" - }, - { - "name": "jane arc", - "email": "jane@uber.com" - }, - { - "name": "Joseph Dykstra", - "email": "josephdykstra@gmail.com" - }, - { - "name": "Andrew Crites", - "email": "ajcrites@gmail.com" - }, - { - "name": "Joshua Egan", - "email": "josh-egan@users.noreply.github.com" - }, - { - "name": "Carlos Alberto", - "email": "euprogramador@gmail.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Thaddee Tyl", - "email": "thaddee.tyl@gmail.com" - }, - { - "name": "Steve Klabnik", - "email": "steve@steveklabnik.com" - }, - { - "name": "Andrew Murray", - "email": "radarhere@gmail.com" - }, - { - "name": "Stephan Bönnemann", - "email": "stephan@excellenteasy.com" - }, - { - "name": "Kyle M. Tarplee", - "email": "kyle.tarplee@numerica.us" - }, - { - "name": "Derek Peterson", - "email": "derekpetey@gmail.com" - }, - { - "name": "Greg Whiteley", - "email": "greg.whiteley@atomos.com" - }, - { - "name": "murgatroid99", - "email": "mlumish@google.com" - }, - { - "name": "Marcin Cieslak", - "email": "saper@saper.info" - }, - { - "name": "João Reis", - "email": "reis@janeasystems.com" - }, - { - "name": "Matthew Hasbach", - "email": "hasbach.git@gmail.com" - }, - { - "name": "Jon Hall", - "email": "jon_hall@outlook.com" - }, - { - "name": "Anna Henningsen", - "email": "sqrt@entless.org" - }, - { - "name": "James Treworgy", - "email": "jamietre@gmail.com" - }, - { - "name": "James Hartig", - "email": "james@levenlabs.com" - }, - { - "name": "Stephanie Snopek", - "email": "stephaniesnopek@gmail.com" - }, - { - "name": "Kent C. Dodds", - "email": "kent@doddsfamily.us" - }, - { - "name": "Aaron Krause", - "email": "aaronjkrause@gmail.com" - }, - { - "name": "Daniel K O'Leary", - "email": "daniel@dko.io" - }, - { - "name": "fscherwi", - "email": "fscherwi@users.noreply.github.com" - }, - { - "name": "Thomas Reggi", - "email": "thomas@reggi.com" - }, - { - "name": "Thomas Michael McTiernan", - "email": "thomasmctiernan@gmail.com" - }, - { - "name": "Jason Kurian", - "email": "JaKXz@users.noreply.github.com" - }, - { - "name": "Sebastiaan Deckers", - "email": "seb@ninja.sg" - }, - { - "name": "lady3bean", - "email": "lady3bean@users.noreply.github.com" - }, - { - "name": "Tomi Carr", - "email": "TaMe3971@users.noreply.github.com" - }, - { - "name": "Juan Caicedo", - "email": "retiredcanadianpoet@gmail.com" - }, - { - "name": "Ashley Williams", - "email": "ashley@npmjs.com" - }, - { - "name": "Andrew Marcinkevičius", - "email": "andrew.web@ifdattic.com" - }, - { - "name": "Jorrit Schippers", - "email": "jorrit@ncode.nl" - }, - { - "name": "Alex Lukin", - "email": "alex.lukin@softgrad.com" - }, - { - "name": "Aria Stewart", - "email": "aredridel@dinhe.net" - }, - { - "name": "Tiago Rodrigues", - "email": "tmcrodrigues@gmail.com" - }, - { - "name": "Tim", - "email": "tim-github@baverstock.org.uk" - }, - { - "name": "Nick Williams", - "email": "WickyNilliams@users.noreply.github.com" - }, - { - "name": "Louis Larry", - "email": "louis.larry@gmail.com" - }, - { - "name": "Ben Gotow", - "email": "bengotow@gmail.com" - }, - { - "name": "Jakub Gieryluk", - "email": "jakub.g.opensource@gmail.com" - }, - { - "name": "Kevin Lorenz", - "email": "mail@kevinlorenz.com" - }, - { - "name": "Martin von Gagern", - "email": "Martin.vGagern@gmx.net" - }, - { - "name": "Eymen Gunay", - "email": "eymen@egunay.com" - }, - { - "name": "Martin Ek", - "email": "mail@ekmartin.com" - }, - { - "name": "Rafał Pocztarski", - "email": "r.pocztarski@gmail.com" - }, - { - "name": "Mark Reeder", - "email": "mreeder@uber.com" - }, - { - "name": "Chris Rebert", - "email": "github@chrisrebert.com" - }, - { - "name": "Scott Addie", - "email": "tobias.addie@gmail.com" - }, - { - "name": "Jeff McMahan", - "email": "jeffrey.lee.mcmahan@gmail.com" - }, - { - "name": "Tim Krins", - "email": "timkrins@gmail.com" - }, - { - "name": "Hal Henke", - "email": "halhenke@gmail.com" - }, - { - "name": "Julian Simioni", - "email": "julian@simioni.org" - }, - { - "name": "Jimb Esser", - "email": "jimb@yahoo-inc.com" - }, - { - "name": "Alexis Campailla", - "email": "alexis@janeasystems.com" - }, - { - "name": "Chris Chua", - "email": "chris.sirhc@gmail.com" - }, - { - "name": "Beau Gunderson", - "email": "beau@beaugunderson.com" - }, - { - "name": "Dave Galbraith", - "email": "dave@jut.io" - }, - { - "name": "s100", - "email": "shughes1@uk.ibm.com" - }, - { - "name": "Sergey Simonchik", - "email": "sergey.simonchik@jetbrains.com" - }, - { - "name": "Vanja Radovanović", - "email": "elvanja@gmail.com" - }, - { - "name": "Jonathan Persson", - "email": "persson.jonathan@gmail.com" - }, - { - "name": "Vedat Mahir YILMAZ", - "email": "mahir@vedatmahir.com" - }, - { - "name": "Samuel Reed", - "email": "samuel.trace.reed@gmail.com" - }, - { - "name": "Rafał Legiędź", - "email": "rafal.legiedz@gmail.com" - }, - { - "name": "Jan Schär", - "email": "jscissr@gmail.com" - }, - { - "name": "Xcat Liu", - "email": "xcatliu@gmail.com" - }, - { - "name": "harryh", - "email": "Aourin@users.noreply.github.com" - }, - { - "name": "Prayag Verma", - "email": "prayag.verma@gmail.com" - }, - { - "name": "Neil Kistner", - "email": "neil.kistner@gmail.com" - }, - { - "name": "Zoujie Wzj", - "email": "zoujie.wzj@alibaba-inc.com" - }, - { - "name": "Ryan Hendrickson", - "email": "ryan.hendrickson@alum.mit.edu" - }, - { - "name": "Arturo Coronel", - "email": "aoitsu3@gmail.com" - }, - { - "name": "Hutson Betts", - "email": "hbetts@factset.com" - }, - { - "name": "Lewis Cowper", - "email": "lewis.cowper@googlemail.com" - }, - { - "name": "Adam Byrne", - "email": "misterbyrne@gmail.com" - }, - { - "name": "Ifeanyi Oraelosi", - "email": "ifeanyioraelosi@gmail.com" - }, - { - "name": "Robert Ludwig", - "email": "rob.ludwig@rideamigos.com" - }, - { - "name": "Chris Warren", - "email": "chris@ixalon.net" - }, - { - "name": "Scott Plumlee", - "email": "scott@plumlee.org" - }, - { - "name": "Daniel Pedersen", - "email": "daniel@scandinav.se" - }, - { - "name": "rhgb", - "email": "kaiserdaemon@gmail.com" - }, - { - "name": "doug.wade", - "email": "doug.wade@redfin.com" - }, - { - "name": "Zac", - "email": "zdoege@gm.slc.edu" - }, - { - "name": "GriffinSchneider", - "email": "griffinschneider@gmail.com" - }, - { - "name": "Andres Kalle", - "email": "mjomble@gmail.com" - }, - { - "name": "thefourtheye", - "email": "thefourtheye@users.noreply.github.com" - }, - { - "name": "Yael", - "email": "yaelz@users.noreply.github.com" - }, - { - "name": "Yann Odeyer", - "email": "yann@odeyer.com" - }, - { - "name": "James Monger", - "email": "jameskmonger@hotmail.co.uk" - }, - { - "name": "Thomas Hallock", - "email": "thomas@1stdibs.com" - }, - { - "name": "Paul Irish", - "email": "paul.irish@gmail.com" - }, - { - "name": "Paul O'Leary McCann", - "email": "polm@dampfkraft.com" - }, - { - "name": "Francis Gulotta", - "email": "wizard@roborooter.com" - }, - { - "name": "Felix Rieseberg", - "email": "felix@felixrieseberg.com" - }, - { - "name": "Glen Mailer", - "email": "glenjamin@gmail.com" - }, - { - "name": "Federico Brigante", - "email": "bfred-it@users.noreply.github.com" - }, - { - "name": "Steve Mao", - "email": "maochenyan@gmail.com" - }, - { - "name": "Anna Henningsen", - "email": "anna@addaleax.net" - }, - { - "name": "Rachel Evans", - "email": "git@rve.org.uk" - }, - { - "name": "Sam Minnee", - "email": "sam@silverstripe.com" - }, - { - "name": "Zirak", - "email": "zirakertan@gmail.com" - }, - { - "name": "Daniel Lupu", - "email": "lupu.daniel.f@gmail.com" - }, - { - "name": "Gianluca Casati", - "email": "fibo@users.noreply.github.com" - }, - { - "name": "André Herculano", - "email": "andresilveirah@gmail.com" - }, - { - "name": "Wyatt Preul", - "email": "wpreul@gmail.com" - }, - { - "name": "Myles Borins", - "email": "mborins@us.ibm.com" - }, - { - "name": "Elliot Lee", - "email": "github.public@intelliot.com" - }, - { - "name": "Dmitry Kirilyuk", - "email": "gk.joker@gmail.com" - } - ], - "man": [ - "/Users/zkat/Documents/code/npm/man/man1/npm-access.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-adduser.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-bin.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-bugs.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-build.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-bundle.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-cache.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-completion.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-config.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-dedupe.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-deprecate.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-dist-tag.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-docs.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-edit.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-explore.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-help-search.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-help.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-init.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-install-test.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-install.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-link.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-logout.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-ls.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-outdated.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-owner.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-pack.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-ping.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-prefix.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-prune.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-publish.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-README.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-rebuild.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-repo.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-restart.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-root.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-run-script.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-search.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-shrinkwrap.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-star.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-stars.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-start.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-stop.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-tag.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-team.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-test.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-uninstall.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-unpublish.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-update.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-version.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-view.1", - "/Users/zkat/Documents/code/npm/man/man1/npm-whoami.1", - "/Users/zkat/Documents/code/npm/man/man1/npm.1", - "/Users/zkat/Documents/code/npm/man/man5/npm-folders.5", - "/Users/zkat/Documents/code/npm/man/man5/npm-global.5", - "/Users/zkat/Documents/code/npm/man/man5/npm-json.5", - "/Users/zkat/Documents/code/npm/man/man5/npmrc.5", - "/Users/zkat/Documents/code/npm/man/man5/package.json.5", - "/Users/zkat/Documents/code/npm/man/man7/npm-coding-style.7", - "/Users/zkat/Documents/code/npm/man/man7/npm-config.7", - "/Users/zkat/Documents/code/npm/man/man7/npm-developers.7", - "/Users/zkat/Documents/code/npm/man/man7/npm-disputes.7", - "/Users/zkat/Documents/code/npm/man/man7/npm-index.7", - "/Users/zkat/Documents/code/npm/man/man7/npm-orgs.7", - "/Users/zkat/Documents/code/npm/man/man7/npm-registry.7", - "/Users/zkat/Documents/code/npm/man/man7/npm-scope.7", - "/Users/zkat/Documents/code/npm/man/man7/npm-scripts.7", - "/Users/zkat/Documents/code/npm/man/man7/removing-npm.7", - "/Users/zkat/Documents/code/npm/man/man7/semver.7" - ], - "gitHead": "9dd4848bbcbae1c1d8778dc51cd88c8b5d771c71", - "_id": "npm@3.9.6", - "_shasum": "0ef1d272a069ad95bdca8b2dfe6fcd82f4b461d7", - "_from": "npm@>=3.9.1 <3.10.0", - "_npmVersion": "3.9.6", - "_nodeVersion": "5.10.1", - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" - }, - "dist": { - "shasum": "0ef1d272a069ad95bdca8b2dfe6fcd82f4b461d7", - "tarball": "https://registry.npmjs.org/npm/-/npm-3.9.6.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/npm-3.9.6.tgz_1464911936308_0.8960385196842253" - }, - "_resolved": "https://registry.npmjs.org/npm/-/npm-3.9.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/changelog.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/changelog.js deleted file mode 100644 index 35685ffc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/changelog.js +++ /dev/null @@ -1,95 +0,0 @@ -'use strict' -/* -Usage: - -node scripts/changelog.js [comittish] - -Generates changelog entries in our format as best as its able based on -commits starting at comittish, or if that's not passed, master. - -Ordinarily this is run via the gen-changelog shell script, which appends -the result to the changelog. - -*/ -const execSync = require('child_process').execSync -const branch = process.argv[2] || 'master' -const log = execSync(`git log --pretty='format:%h %H%d %s (%aN)%n%b%n---%n' ${branch}...`).toString().split(/\n/) -const authormap = { - 'Rebecca Turner': 'iarna', - 'Forrest L Norvell': 'othiym23', - 'Kyle Mitchell': 'kemitchell', - 'Chris Rebert': 'cvrebert', - 'Kat Marchán': 'zkat' -} - -main() - -function print_commit (c) { - let m - console.log(`* [\`${c.shortid}\`](https://github.com/npm/npm/commit/${c.fullid})`) - if (c.fixes) { - console.log(` [#${c.fixes}](https://github.com/npm/npm/issues/${c.fixes})`) - } else if (c.prurl && (m = c.prurl.match(/https:\/\/github.com\/([^/]+\/[^/]+)\/pull\/(\d+)/))) { - let repo = m[1] - let prid = m[2] - if (repo !== 'npm/npm') { - console.log(` [${repo}#${prid}](${c.prurl})`) - } else { - console.log(` [#${prid}](${c.prurl})`) - } - } else if (c.prurl) { - console.log(` [#](${c.prurl})`) - } - let msg = c.message - .replace(/^\s+/mg, '') - .replace(/^[-a-z]+: /, '') - .replace(/^/mg, ' ') - .replace(/\n$/, '') - // backtickify package@version - .replace(/^(\s*[^@\s]+@\d+[.]\d+[.]\d+)(\s*\S)/g, '$1:$2') - .replace(/\b([^@\s]+@\d+[.]\d+[.]\d+)\b/g, '`$1`') - // linkify commitids - .replace(/\b([a-f0-9]{7,8})\b/g, '[`$1`](https://github.com/npm/npm/commit/$1)') - .replace(/\b#(\d+)\b/g, '[#$1](https://github.com/npm/npm/issues/$1)') - console.log(msg) - if (c.credit) { - c.credit.forEach(function (credit) { - console.log(` ([@${credit}](https://github.com/${credit}))`) - }) - } else { - console.log(` ([@${c.author}](https://github.com/${c.author}))`) - } -} - -function main () { - let commit - log.forEach(function (line) { - let m - /*eslint no-cond-assign:0*/ - if (/^---$/.test(line)) { - print_commit(commit) - } else if (m = line.match(/^([a-f0-9]{7}) ([a-f0-9]+) (?:[(]([^)]+)[)] )?(.*?) [(](.*?)[)]/)) { - commit = { - shortid: m[1], - fullid: m[2], - branch: m[3], - message: m[4], - author: authormap[m[5]] || m[5], - prurl: null, - fixes: null, - credit: null - } - } else if (m = line.match(/^PR-URL: (.*)/)) { - commit.prurl = m[1] - } else if (m = line.match(/^Credit: @(.*)/)) { - if (!commit.credit) commit.credit = [] - commit.credit.push(m[1]) - } else if (m = line.match(/^Fixes: #(.*)/)) { - commit.fixes = m[1] - } else if (m = line.match(/^Reviewed-By: @(.*)/)) { - commit.reviewed = m[1] - } else if (/\S/.test(line)) { - commit.message += `\n${line}` - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/clean-old.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/clean-old.sh deleted file mode 100755 index cda80f2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/clean-old.sh +++ /dev/null @@ -1,165 +0,0 @@ -#!/bin/bash - -# look for old 0.x cruft, and get rid of it. -# Should already be sitting in the npm folder. - -# This doesn't have to be quite as cross-platform as install.sh. -# There are some bash-isms, because maintaining *two* -# fully-portable posix/bourne sh scripts is too much for -# one project with a sane maintainer. - -# If readlink isn't available, then this is just too tricky. -# However, greadlink is fine, so Solaris can join the party, too. -readlink="readlink" -which $readlink >/dev/null 2>/dev/null -if [ $? -ne 0 ]; then - readlink="greadlink" - which $readlink >/dev/null 2>/dev/null - if [ $? -ne 0 ]; then - echo "Can't find the readlink or greadlink command. Aborting." - exit 1 - fi -fi - -if [ "x$npm_config_prefix" != "x" ]; then - PREFIXES=$npm_config_prefix -else - node="$NODE" - if [ "x$node" = "x" ]; then - node=`which node` - fi - if [ "x$node" = "x" ]; then - echo "Can't find node to determine prefix. Aborting." - exit 1 - fi - - - PREFIX=`dirname $node` - PREFIX=`dirname $PREFIX` - echo "cleanup prefix=$PREFIX" - PREFIXES=$PREFIX - - altprefix=`"$node" -e process.installPrefix` - if [ "x$altprefix" != "x" ] && [ "x$altprefix" != "x$PREFIX" ]; then - echo "altprefix=$altprefix" - PREFIXES="$PREFIX $altprefix" - fi -fi - -# now prefix is where npm would be rooted by default -# go hunting. - -packages= -for prefix in $PREFIXES; do - packages="$packages - "`ls "$prefix"/lib/node/.npm 2>/dev/null | grep -v .cache` -done - -packages=`echo $packages` - -filelist=() -fid=0 - -for prefix in $PREFIXES; do - # remove any links into the .npm dir, or links to - # version-named shims/symlinks. - for folder in share/man bin lib/node; do - find $prefix/$folder -type l | while read file; do - target=`$readlink $file | grep '/\.npm/'` - if [ "x$target" != "x" ]; then - # found one! - filelist[$fid]="$file" - let 'fid++' - # also remove any symlinks to this file. - base=`basename "$file"` - base=`echo "$base" | awk -F@ '{print $1}'` - if [ "x$base" != "x" ]; then - find "`dirname $file`" -type l -name "$base"'*' \ - | while read l; do - target=`$readlink "$l" | grep "$base"` - if [ "x$target" != "x" ]; then - filelist[$fid]="$1" - let 'fid++' - fi - done - fi - fi - done - - # Scour for shim files. These are relics of 0.2 npm installs. - # note: grep -r is not portable. - find $prefix/$folder -type f \ - | xargs grep -sl '// generated by npm' \ - | while read file; do - filelist[$fid]="$file" - let 'fid++' - done - done - - # now remove the package modules, and the .npm folder itself. - if [ "x$packages" != "x" ]; then - for pkg in $packages; do - filelist[$fid]="$prefix/lib/node/$pkg" - let 'fid++' - for i in $prefix/lib/node/$pkg\@*; do - filelist[$fid]="$i" - let 'fid++' - done - done - fi - - for folder in lib/node/.npm lib/npm share/npm; do - if [ -d $prefix/$folder ]; then - filelist[$fid]="$prefix/$folder" - let 'fid++' - fi - done -done - -# now actually clean, but only if there's anything TO clean -if [ "${#filelist[@]}" -gt 0 ]; then - echo "" - echo "This script will find and eliminate any shims, symbolic" - echo "links, and other cruft that was installed by npm 0.x." - echo "" - - if [ "x$packages" != "x" ]; then - echo "The following packages appear to have been installed with" - echo "an old version of npm, and will be removed forcibly:" - for pkg in $packages; do - echo " $pkg" - done - echo "Make a note of these. You may want to install them" - echo "with npm 1.0 when this process is completed." - echo "" - fi - - OK= - if [ "x$1" = "x-y" ]; then - OK="yes" - fi - - while [ "$OK" != "y" ] && [ "$OK" != "yes" ] && [ "$OK" != "no" ]; do - echo "Is this OK?" - echo " enter 'yes' or 'no'" - echo " or 'show' to see a list of files " - read OK - if [ "x$OK" = "xshow" ] || [ "x$OK" = "xs" ]; then - for i in "${filelist[@]}"; do - echo "$i" - done - fi - done - if [ "$OK" = "no" ]; then - echo "Aborting" - exit 1 - fi - for i in "${filelist[@]}"; do - rm -rf "$i" - done -fi - -echo "" -echo 'All clean!' - -exit 0 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/doc-build.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/doc-build.sh deleted file mode 100755 index 61819028..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/doc-build.sh +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env bash - -if [[ $DEBUG != "" ]]; then - set -x -fi -set -o errexit -set -o pipefail - -if ! [ -x node_modules/.bin/marked-man ]; then - ps=0 - if [ -f .building_marked-man ]; then - pid=$(cat .building_marked-man) - ps=$(ps -p $pid | grep $pid | wc -l) || true - fi - - if [ -f .building_marked-man ] && [ $ps != 0 ]; then - while [ -f .building_marked-man ]; do - sleep 1 - done - else - # a race to see which make process will be the one to install marked-man - echo $$ > .building_marked-man - sleep 1 - if [ $(cat .building_marked-man) == $$ ]; then - make node_modules/.bin/marked-man - rm .building_marked-man - else - while [ -f .building_marked-man ]; do - sleep 1 - done - fi - fi -fi - -if ! [ -x node_modules/.bin/marked ]; then - ps=0 - if [ -f .building_marked ]; then - pid=$(cat .building_marked) - ps=$(ps -p $pid | grep $pid | wc -l) || true - fi - - if [ -f .building_marked ] && [ $ps != 0 ]; then - while [ -f .building_marked ]; do - sleep 1 - done - else - # a race to see which make process will be the one to install marked - echo $$ > .building_marked - sleep 1 - if [ $(cat .building_marked) == $$ ]; then - make node_modules/.bin/marked - rm .building_marked - else - while [ -f .building_marked ]; do - sleep 1 - done - fi - fi -fi - -src=$1 -dest=$2 -name=$(basename ${src%.*}) -date=$(date -u +'%Y-%m-%d %H:%M:%S') -version=$(node cli.js -v) - -mkdir -p $(dirname $dest) - -html_replace_tokens () { - local url=$1 - sed "s|@NAME@|$name|g" \ - | sed "s|@DATE@|$date|g" \ - | sed "s|@URL@|$url|g" \ - | sed "s|@VERSION@|$version|g" \ - | perl -p -e 's/]*)>([^\(]*\([0-9]\)) -- (.*?)<\/h1>/

            \2<\/h1>

            \3<\/p>/g' \ - | perl -p -e 's/npm-npm/npm/g' \ - | perl -p -e 's/([^"-])(npm-)?README(?!\.html)(\(1\))?/\1README<\/a>/g' \ - | perl -p -e 's/<a href="[^"]+README.html">README<\/a><\/title>/<title>README<\/title>/g' \ - | perl -p -e 's/([^"-])([^\(> ]+)(\(1\))/\1<a href="..\/cli\/\2.html">\2\3<\/a>/g' \ - | perl -p -e 's/([^"-])([^\(> ]+)(\(3\))/\1<a href="..\/api\/\2.html">\2\3<\/a>/g' \ - | perl -p -e 's/([^"-])([^\(> ]+)(\(5\))/\1<a href="..\/files\/\2.html">\2\3<\/a>/g' \ - | perl -p -e 's/([^"-])([^\(> ]+)(\(7\))/\1<a href="..\/misc\/\2.html">\2\3<\/a>/g' \ - | perl -p -e 's/\([1357]\)<\/a><\/h1>/<\/a><\/h1>/g' \ - | (if [ $(basename $(dirname $dest)) == "doc" ]; then - perl -p -e 's/ href="\.\.\// href="/g' - else - cat - fi) -} - -man_replace_tokens () { - sed "s|@VERSION@|$version|g" \ - | perl -p -e 's/(npm\\-)?([a-zA-Z\\\.\-]*)\(1\)/npm help \2/g' \ - | perl -p -e 's/(npm\\-)?([a-zA-Z\\\.\-]*)\(([57])\)/npm help \3 \2/g' \ - | perl -p -e 's/(npm\\-)?([a-zA-Z\\\.\-]*)\(3\)/npm apihelp \2/g' \ - | perl -p -e 's/npm\(1\)/npm help npm/g' \ - | perl -p -e 's/npm\(3\)/npm apihelp npm/g' -} - -case $dest in - *.[1357]) - ./node_modules/.bin/marked-man --roff $src \ - | man_replace_tokens > $dest - exit $? - ;; - *.html) - url=${dest/html\//} - (cat html/dochead.html && \ - cat $src | ./node_modules/.bin/marked && - cat html/docfoot.html)\ - | html_replace_tokens $url \ - > $dest - exit $? - ;; - *) - echo "Invalid destination type: $dest" >&2 - exit 1 - ;; -esac diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/gen-changelog b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/gen-changelog deleted file mode 100755 index efec4d54..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/gen-changelog +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# Usage: gen-changelog [comittish] -# Reads all the commits since comittish and produces changelog entries in -# our style as best as it can, appendning them to CHANGELOG.md. If it -# encounters a git error it won't modify CHANGELOG.md -# @iarna uses this as the first step in producing changelogs for a release. -(node $(npm prefix)/scripts/changelog.js "$@"; cat CHANGELOG.md) > new.md && mv new.md CHANGELOG.md diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/index-build.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/index-build.js deleted file mode 100755 index 058bc740..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/index-build.js +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env node -var fs = require('fs') -var path = require('path') -var root = path.resolve(__dirname, '..') -var glob = require('glob') -var conversion = { 'cli': 1, 'api': 3, 'files': 5, 'misc': 7 } - -glob(root + '/{README.md,doc/*/*.md}', function (er, files) { - if (er) throw er - - output(files.map(function (f) { - var b = path.basename(f) - if (b === 'README.md') return [0, b] - if (b === 'index.md') return null - var s = conversion[path.basename(path.dirname(f))] - return [s, f] - }).filter(function (f) { - return f - }).sort(function (a, b) { - return (a[0] === b[0]) - ? (path.basename(a[1]) === 'npm.md' ? -1 - : path.basename(b[1]) === 'npm.md' ? 1 - : a[1] > b[1] ? 1 : -1) - : a[0] - b[0] - })) -}) - -function output (files) { - console.log( - 'npm-index(7) -- Index of all npm documentation\n' + - '==============================================\n') - - writeLines(files, 0) - writeLines(files, 1, 'Command Line Documentation', 'Using npm on the command line') - writeLines(files, 3, 'API Documentation', 'Using npm in your Node programs') - writeLines(files, 5, 'Files', 'File system structures npm uses') - writeLines(files, 7, 'Misc', 'Various other bits and bobs') -} - -function writeLines (files, sxn, heading, desc) { - if (heading) { - console.log('## %s\n\n%s\n', heading, desc) - } - files.filter(function (f) { - return f[0] === sxn - }).forEach(writeLine) -} - -function writeLine (sd) { - var sxn = sd[0] || 1 - var doc = sd[1] - var d = path.basename(doc, '.md') - - var content = fs.readFileSync(doc, 'utf8').split('\n')[0].split('-- ')[1] - - console.log('### %s(%d)\n', d, sxn) - console.log(content + '\n') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/install.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/install.sh deleted file mode 100755 index e6624f06..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/install.sh +++ /dev/null @@ -1,270 +0,0 @@ -#!/bin/sh - -# A word about this shell script: -# -# It must work everywhere, including on systems that lack -# a /bin/bash, map 'sh' to ksh, ksh97, bash, ash, or zsh, -# and potentially have either a posix shell or bourne -# shell living at /bin/sh. -# -# See this helpful document on writing portable shell scripts: -# http://www.gnu.org/s/hello/manual/autoconf/Portable-Shell.html -# -# The only shell it won't ever work on is cmd.exe. - -if [ "x$0" = "xsh" ]; then - # run as curl | sh - # on some systems, you can just do cat>npm-install.sh - # which is a bit cuter. But on others, &1 is already closed, - # so catting to another script file won't do anything. - # Follow Location: headers, and fail on errors - curl -f -L -s https://www.npmjs.org/install.sh > npm-install-$$.sh - ret=$? - if [ $ret -eq 0 ]; then - (exit 0) - else - rm npm-install-$$.sh - echo "Failed to download script" >&2 - exit $ret - fi - sh npm-install-$$.sh - ret=$? - rm npm-install-$$.sh - exit $ret -fi - -# See what "npm_config_*" things there are in the env, -# and make them permanent. -# If this fails, it's not such a big deal. -configures="`env | grep 'npm_config_' | sed -e 's|^npm_config_||g'`" - -npm_config_loglevel="error" -if [ "x$npm_debug" = "x" ]; then - (exit 0) -else - echo "Running in debug mode." - echo "Note that this requires bash or zsh." - set -o xtrace - set -o pipefail - npm_config_loglevel="verbose" -fi -export npm_config_loglevel - -# make sure that node exists -node=`which node 2>&1` -ret=$? -if [ $ret -eq 0 ] && [ -x "$node" ]; then - (exit 0) -else - echo "npm cannot be installed without node.js." >&2 - echo "Install node first, and then try again." >&2 - echo "" >&2 - echo "Maybe node is installed, but not in the PATH?" >&2 - echo "Note that running as sudo can change envs." >&2 - echo "" - echo "PATH=$PATH" >&2 - exit $ret -fi - -# set the temp dir -TMP="${TMPDIR}" -if [ "x$TMP" = "x" ]; then - TMP="/tmp" -fi -TMP="${TMP}/npm.$$" -rm -rf "$TMP" || true -mkdir "$TMP" -if [ $? -ne 0 ]; then - echo "failed to mkdir $TMP" >&2 - exit 1 -fi - -BACK="$PWD" - -ret=0 -tar="${TAR}" -if [ -z "$tar" ]; then - tar="${npm_config_tar}" -fi -if [ -z "$tar" ]; then - tar=`which tar 2>&1` - ret=$? -fi - -if [ $ret -eq 0 ] && [ -x "$tar" ]; then - echo "tar=$tar" - echo "version:" - $tar --version - ret=$? -fi - -if [ $ret -eq 0 ]; then - (exit 0) -else - echo "No suitable tar program found." - exit 1 -fi - - - -# Try to find a suitable make -# If the MAKE environment var is set, use that. -# otherwise, try to find gmake, and then make. -# If no make is found, then just execute the necessary commands. - -# XXX For some reason, make is building all the docs every time. This -# is an annoying source of bugs. Figure out why this happens. -MAKE=NOMAKE - -if [ "x$MAKE" = "x" ]; then - make=`which gmake 2>&1` - if [ $? -eq 0 ] && [ -x "$make" ]; then - (exit 0) - else - make=`which make 2>&1` - if [ $? -eq 0 ] && [ -x "$make" ]; then - (exit 0) - else - make=NOMAKE - fi - fi -else - make="$MAKE" -fi - -if [ -x "$make" ]; then - (exit 0) -else - # echo "Installing without make. This may fail." >&2 - make=NOMAKE -fi - -# If there's no bash, then don't even try to clean -if [ -x "/bin/bash" ]; then - (exit 0) -else - clean="no" -fi - -node_version=`"$node" --version 2>&1` -ret=$? -if [ $ret -ne 0 ]; then - echo "You need node to run this program." >&2 - echo "node --version reports: $node_version" >&2 - echo "with exit code = $ret" >&2 - echo "Please install node before continuing." >&2 - exit $ret -fi - -t="${npm_install}" -if [ -z "$t" ]; then - # switch based on node version. - # note that we can only use strict sh-compatible patterns here. - case $node_version in - 0.[01234567].* | v0.[01234567].*) - echo "You are using an outdated and unsupported version of" >&2 - echo "node ($node_version). Please update node and try again." >&2 - exit 99 - ;; - *) - echo "install npm@latest" - t="latest" - ;; - esac -fi - -# need to echo "" after, because Posix sed doesn't treat EOF -# as an implied end of line. -url=`(curl -SsL https://registry.npmjs.org/npm/$t; echo "") \ - | sed -e 's/^.*tarball":"//' \ - | sed -e 's/".*$//'` - -ret=$? -if [ "x$url" = "x" ]; then - ret=125 - # try without the -e arg to sed. - url=`(curl -SsL https://registry.npmjs.org/npm/$t; echo "") \ - | sed 's/^.*tarball":"//' \ - | sed 's/".*$//'` - ret=$? - if [ "x$url" = "x" ]; then - ret=125 - fi -fi -if [ $ret -ne 0 ]; then - echo "Failed to get tarball url for npm/$t" >&2 - exit $ret -fi - - -echo "fetching: $url" >&2 - -cd "$TMP" \ - && curl -SsL "$url" \ - | $tar -xzf - \ - && cd "$TMP"/* \ - && (ver=`"$node" bin/read-package-json.js package.json version` - isnpm10=0 - if [ $ret -eq 0 ]; then - if [ -d node_modules ]; then - if "$node" node_modules/semver/bin/semver -v "$ver" -r "1" - then - isnpm10=1 - fi - else - if "$node" bin/semver -v "$ver" -r ">=1.0"; then - isnpm10=1 - fi - fi - fi - - ret=0 - if [ $isnpm10 -eq 1 ] && [ -f "scripts/clean-old.sh" ]; then - if [ "x$skipclean" = "x" ]; then - (exit 0) - else - clean=no - fi - if [ "x$clean" = "xno" ] \ - || [ "x$clean" = "xn" ]; then - echo "Skipping 0.x cruft clean" >&2 - ret=0 - elif [ "x$clean" = "xy" ] || [ "x$clean" = "xyes" ]; then - NODE="$node" /bin/bash "scripts/clean-old.sh" "-y" - ret=$? - else - NODE="$node" /bin/bash "scripts/clean-old.sh" </dev/tty - ret=$? - fi - fi - - if [ $ret -ne 0 ]; then - echo "Aborted 0.x cleanup. Exiting." >&2 - exit $ret - fi) \ - && (if [ "x$configures" = "x" ]; then - (exit 0) - else - echo "./configure $configures" - echo "$configures" > npmrc - fi) \ - && (if [ "$make" = "NOMAKE" ]; then - (exit 0) - elif "$make" uninstall install; then - (exit 0) - else - make="NOMAKE" - fi - if [ "$make" = "NOMAKE" ]; then - "$node" cli.js rm npm -gf - "$node" cli.js install -gf - fi) \ - && cd "$BACK" \ - && rm -rf "$TMP" \ - && echo "It worked" - -ret=$? -if [ $ret -ne 0 ]; then - echo "It failed" >&2 -fi -exit $ret diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/publish-tag.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/publish-tag.js deleted file mode 100644 index d0c04556..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/publish-tag.js +++ /dev/null @@ -1,3 +0,0 @@ -var semver = require('semver') -var version = semver.parse(require('../package.json').version) -console.log('v%s.%s-next', version.major, version.minor) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/release.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/release.sh deleted file mode 100644 index abe6c197..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/release.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -# script for creating a zip and tarball for inclusion in node - -unset CDPATH - -set -e - -rm -rf release *.tgz || true -mkdir release -node ./cli.js pack --loglevel error >/dev/null -mv *.tgz release -cd release -tar xzf *.tgz - -mkdir node_modules -mv package node_modules/npm - -# make the zip for windows users -cp node_modules/npm/bin/*.cmd . -zipname=npm-$(node ../cli.js -v).zip -zip -q -9 -r -X "$zipname" *.cmd node_modules - -# make the tar for node's deps -cd node_modules -tarname=npm-$(node ../../cli.js -v).tgz -tar czf "$tarname" npm - -cd .. -mv "node_modules/$tarname" . - -rm -rf *.cmd -rm -rf node_modules - -echo "release/$tarname" -echo "release/$zipname" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/relocate.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/relocate.sh deleted file mode 100755 index b7483f29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/relocate.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -# Change the cli shebang to point at the specified node -# Useful for when the program is moved around after install. -# Also used by the default 'make install' in node to point -# npm at the newly installed node, rather than the first one -# in the PATH, which would be the default otherwise. - -# bash /path/to/npm/scripts/relocate.sh $nodepath -# If $nodepath is blank, then it'll use /usr/bin/env - -dir="$(dirname "$(dirname "$0")")" -cli="$dir"/bin/npm-cli.js -tmp="$cli".tmp - -node="$1" -if [ "x$node" = "x" ]; then - node="/usr/bin/env node" -fi -node="#!$node" - -sed -e 1d "$cli" > "$tmp" -echo "$node" > "$cli" -cat "$tmp" >> "$cli" -rm "$tmp" -chmod ogu+x $cli diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/update-authors.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/update-authors.sh deleted file mode 100755 index 75a6e549..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/scripts/update-authors.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -git log --reverse --format='%aN <%aE>' | perl -wnE ' -BEGIN { - say "# Authors sorted by whether or not they\x27re me"; -} - -print $seen{$_} = $_ unless $seen{$_} -' > AUTHORS diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/common-tap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/common-tap.js deleted file mode 100644 index 847c87ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/common-tap.js +++ /dev/null @@ -1,121 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var readCmdShim = require('read-cmd-shim') -var isWindows = require('../lib/utils/is-windows.js') - -// cheesy hackaround for test deps (read: nock) that rely on setImmediate -if (!global.setImmediate || !require('timers').setImmediate) { - require('timers').setImmediate = global.setImmediate = function () { - var args = [arguments[0], 0].concat([].slice.call(arguments, 1)) - setTimeout.apply(this, args) - } -} - -var spawn = require('child_process').spawn -var path = require('path') - -var port = exports.port = 1337 -exports.registry = 'http://localhost:' + port -process.env.npm_config_loglevel = 'error' -process.env.npm_config_progress = 'false' - -var npm_config_cache = path.resolve(__dirname, 'npm_cache') -process.env.npm_config_cache = exports.npm_config_cache = npm_config_cache -process.env.npm_config_userconfig = exports.npm_config_userconfig = path.join(__dirname, 'fixtures', 'config', 'userconfig') -process.env.npm_config_globalconfig = exports.npm_config_globalconfig = path.join(__dirname, 'fixtures', 'config', 'globalconfig') -process.env.npm_config_global_style = 'false' -process.env.npm_config_legacy_bundling = 'false' -process.env.random_env_var = 'foo' -// suppress warnings about using a prerelease version of node -process.env.npm_config_node_version = process.version.replace(/-.*$/, '') - -var bin = exports.bin = require.resolve('../bin/npm-cli.js') - -var chain = require('slide').chain -var once = require('once') - -var nodeBin = exports.nodeBin = process.env.npm_node_execpath || process.env.NODE || process.execPath - -exports.npm = function (cmd, opts, cb) { - cb = once(cb) - cmd = [bin].concat(cmd) - opts = opts || {} - - opts.env = opts.env || process.env - if (!opts.env.npm_config_cache) { - opts.env.npm_config_cache = npm_config_cache - } - - var stdout = '' - var stderr = '' - var child = spawn(nodeBin, cmd, opts) - - if (child.stderr) { - child.stderr.on('data', function (chunk) { - stderr += chunk - }) - } - - if (child.stdout) { - child.stdout.on('data', function (chunk) { - stdout += chunk - }) - } - - child.on('error', cb) - - child.on('close', function (code) { - cb(null, code, stdout, stderr) - }) - return child -} - -exports.makeGitRepo = function (params, cb) { - // git must be called after npm.load because it uses config - var git = require('../lib/utils/git.js') - - var root = params.path || process.cwd() - var user = params.user || 'PhantomFaker' - var email = params.email || 'nope@not.real' - var added = params.added || ['package.json'] - var message = params.message || 'stub repo' - - var opts = { cwd: root, env: { PATH: process.env.PATH } } - var commands = [ - git.chainableExec(['init'], opts), - git.chainableExec(['config', 'user.name', user], opts), - git.chainableExec(['config', 'user.email', email], opts), - git.chainableExec(['add'].concat(added), opts), - git.chainableExec(['commit', '-m', message], opts) - ] - - if (Array.isArray(params.commands)) { - commands = commands.concat(params.commands) - } - - chain(commands, cb) -} - -exports.readBinLink = function (path) { - if (isWindows) { - return readCmdShim.sync(path) - } else { - return fs.readlinkSync(path) - } -} - -exports.skipIfWindows = function (why) { - if (!isWindows) return - console.log('1..1') - if (!why) why = 'this test not available on windows' - console.log('ok 1 # skip ' + why) - process.exit(0) -} - -exports.pendIfWindows = function (why) { - if (!isWindows) return - console.log('1..1') - if (!why) why = 'this test is pending further changes on windows' - console.log('not ok 1 # todo ' + why) - process.exit(0) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/builtin b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/builtin deleted file mode 100644 index dcd542c0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/builtin +++ /dev/null @@ -1 +0,0 @@ -builtin-config = true diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/globalconfig b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/globalconfig deleted file mode 100644 index 41c0b70c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/globalconfig +++ /dev/null @@ -1 +0,0 @@ -package-config:foo = boo diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/malformed b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/malformed deleted file mode 100644 index 182c4d2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/malformed +++ /dev/null @@ -1 +0,0 @@ -email = """ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/multi-ca b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/multi-ca deleted file mode 100644 index 0bc922b2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/multi-ca +++ /dev/null @@ -1,32 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICjTCCAfigAwIBAgIEMaYgRzALBgkqhkiG9w0BAQQwRTELMAkGA1UEBhMCVVMx -NjA0BgNVBAoTLU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFuZCBTcGFjZSBBZG1pbmlz -dHJhdGlvbjAmFxE5NjA1MjgxMzQ5MDUrMDgwMBcROTgwNTI4MTM0OTA1KzA4MDAw -ZzELMAkGA1UEBhMCVVMxNjA0BgNVBAoTLU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFu -ZCBTcGFjZSBBZG1pbmlzdHJhdGlvbjEgMAkGA1UEBRMCMTYwEwYDVQQDEwxTdGV2 -ZSBTY2hvY2gwWDALBgkqhkiG9w0BAQEDSQAwRgJBALrAwyYdgxmzNP/ts0Uyf6Bp -miJYktU/w4NG67ULaN4B5CnEz7k57s9o3YY3LecETgQ5iQHmkwlYDTL2fTgVfw0C -AQOjgaswgagwZAYDVR0ZAQH/BFowWDBWMFQxCzAJBgNVBAYTAlVTMTYwNAYDVQQK -Ey1OYXRpAAAAACBBZXJvbmF1dGljcyBhbmQgU3BhY2UgQWRtaW5pc3RyYXRpb24x -DTALBgNVBAMTBENSTDEwFwYDVR0BAQH/BA0wC4AJODMyOTcwODEwMBgGA1UdAgQR -MA8ECTgzMjk3MDgyM4ACBSAwDQYDVR0KBAYwBAMCBkAwCwYJKoZIhvcNAQEEA4GB -AH2y1VCEw/A4zaXzSYZJTTUi3uawbbFiS2yxHvgf28+8Js0OHXk1H1w2d6qOHH21 -X82tZXd/0JtG0g1T9usFFBDvYK8O0ebgz/P5ELJnBL2+atObEuJy1ZZ0pBDWINR3 -WkDNLCGiTkCKp0F5EWIrVDwh54NNevkCQRZita+z4IBO ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -AAAAAACCAfigAwIBAgIEMaYgRzALBgkqhkiG9w0BAQQwRTELMAkGA1UEBhMCVVMx -NjA0BgNVBAoTLU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFuZCBTcGFjZSBBZG1pbmlz -dHJhdGlvbjAmFxE5NjA1MjgxMzQ5MDUrMDgwMBcROTgwNTI4MTM0OTA1KzA4MDAw -ZzELMAkGA1UEBhMCVVMxNjA0BgNVBAoTLU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFu -ZCBTcGFjZSBBZG1pbmlzdHJhdGlvbjEgMAkGA1UEBRMCMTYwEwYDVQQDEwxTdGV2 -ZSBTY2hvY2gwWDALBgkqhkiG9w0BAQEDSQAwRgJBALrAwyYdgxmzNP/ts0Uyf6Bp -miJYktU/w4NG67ULaN4B5CnEz7k57s9o3YY3LecETgQ5iQHmkwlYDTL2fTgVfw0C -AQOjgaswgagwZAYDVR0ZAQH/BFowWDBWMFQxCzAJBgNVBAYTAlVTMTYwNAYDVQQK -Ey1OYXRpb25hbCBBZXJvbmF1dGljcyBhbmQgU3BhY2UgQWRtaW5pc3RyYXRpb24x -DTALBgNVBAMTBENSTDEwFwYDVR0BAQH/BA0wC4AJODMyOTcwODEwMBgGA1UdAgQR -MA8ECTgzMjk3MDgyM4ACBSAwDQYDVR0KBAYwBAMCBkAwCwYJKoZIhvcNAQEEA4GB -AH2y1VCEw/A4zaXzSYZJTTUi3uawbbFiS2yxHvgf28+8Js0OHXk1H1w2d6qOHH21 -X82tZXd/0JtG0g1T9usFFBDvYK8O0ebgz/P5ELJnBL2+atObEuJy1ZZ0pBDWINR3 -WkDNLCGiTkCKp0F5EWIrVDwh54NNevkCQRZita+z4IBO ------END CERTIFICATE----- diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/package.json deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/userconfig b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/userconfig deleted file mode 100644 index d600c066..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/userconfig +++ /dev/null @@ -1,23 +0,0 @@ -email = i@izs.me -env-thing = ${random_env_var} -init.author.name = Isaac Z. Schlueter -init.author.email = i@izs.me -init.author.url = http://blog.izs.me/ -init.version = 1.2.3 -proprietary-attribs = false -npm:publishtest = true -_npmjs.org:couch = https://admin:password@localhost:5984/registry -npm-www:nocache = 1 -nodedir = /Users/isaacs/dev/js/node-v0.8 -sign-git-tag = true -message = v%s -strict-ssl = false -tmp = ~/.tmp -_auth = dXNlcm5hbWU6cGFzc3dvcmQ= - -[_token] -AuthSession = yabba-dabba-doodle -version = 1 -expires = 1345001053415 -path = / -httponly = true diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/userconfig-with-gc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/userconfig-with-gc deleted file mode 100644 index 62ad80be..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/config/userconfig-with-gc +++ /dev/null @@ -1,22 +0,0 @@ -globalconfig=/Users/zkat/Documents/code/npm/test/fixtures/config/globalconfig -email=i@izs.me -env-thing=asdf -init.author.name=Isaac Z. Schlueter -init.author.email=i@izs.me -init.author.url=http://blog.izs.me/ -init.version=1.2.3 -proprietary-attribs=false -npm:publishtest=true -_npmjs.org:couch=https://admin:password@localhost:5984/registry -npm-www:nocache=1 -sign-git-tag=false -message=v%s -strict-ssl=false -_auth="dXNlcm5hbWU6cGFzc3dvcmQ=" - -[_token] -AuthSession=yabba-dabba-doodle -version=1 -expires=1345001053415 -path=/ -httponly=true diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/forked-underscore-1.5.1.tgz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/forked-underscore-1.5.1.tgz deleted file mode 100644 index 5aca6247..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/forked-underscore-1.5.1.tgz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-bar.git.tar.gz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-bar.git.tar.gz deleted file mode 100644 index fb27e17f..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-bar.git.tar.gz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-buzz.git.tar.gz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-buzz.git.tar.gz deleted file mode 100644 index 0ea851fb..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-buzz.git.tar.gz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-foo.git.tar.gz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-foo.git.tar.gz deleted file mode 100644 index 8e1abc6d..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-dummy-npm-foo.git.tar.gz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-npm-git-test.git.tar.gz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-npm-git-test.git.tar.gz deleted file mode 100644 index 7a4b9e81..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/github-com-BryanDonovan-npm-git-test.git.tar.gz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore-and-npmignore-2.tar b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore-and-npmignore-2.tar deleted file mode 100644 index 289dd568..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore-and-npmignore-2.tar and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore-and-npmignore.tar b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore-and-npmignore.tar deleted file mode 100644 index 8b638b11..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore-and-npmignore.tar and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore-and-npmignore.tgz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore-and-npmignore.tgz deleted file mode 100644 index 4be43641..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore-and-npmignore.tgz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore.tgz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore.tgz deleted file mode 100644 index 7f5f2d71..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/gitignore.tgz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/npmignore.tgz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/npmignore.tgz deleted file mode 100644 index 765593de..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/npmignore.tgz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/onload.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/onload.js deleted file mode 100644 index 90c1a3aa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/onload.js +++ /dev/null @@ -1 +0,0 @@ -console.error('called onload') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/scoped-underscore-1.3.1.tgz b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/scoped-underscore-1.3.1.tgz deleted file mode 100644 index d98a3459..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/fixtures/scoped-underscore-1.3.1.tgz and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-check-mock-dep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-check-mock-dep.js deleted file mode 100644 index cdc7af85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-check-mock-dep.js +++ /dev/null @@ -1,17 +0,0 @@ -console.log('TAP Version 13') - -process.on('uncaughtException', function (er) { - if (er) { throw er } - console.log('not ok - Failed checking mock registry dep. Expect much fail!') - console.log('1..1') - process.exit(1) -}) - -var assert = require('assert') -var semver = require('semver') -var mock = require('npm-registry-mock/package.json').version -var req = require('../../package.json').devDependencies['npm-registry-mock'] - -assert(semver.satisfies(mock, req)) -console.log('ok') -console.log('1..1') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-config-setup.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-config-setup.js deleted file mode 100644 index 7303c832..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-config-setup.js +++ /dev/null @@ -1,87 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') -var userconfigSrc = path.resolve(__dirname, '..', 'fixtures', 'config', 'userconfig') -exports.userconfig = userconfigSrc + '-with-gc' -exports.globalconfig = path.resolve(__dirname, '..', 'fixtures', 'config', 'globalconfig') -exports.builtin = path.resolve(__dirname, '..', 'fixtures', 'config', 'builtin') -exports.malformed = path.resolve(__dirname, '..', 'fixtures', 'config', 'malformed') -exports.ucData = - { globalconfig: exports.globalconfig, - email: 'i@izs.me', - 'env-thing': 'asdf', - 'init.author.name': 'Isaac Z. Schlueter', - 'init.author.email': 'i@izs.me', - 'init.author.url': 'http://blog.izs.me/', - 'init.version': '1.2.3', - 'proprietary-attribs': false, - 'npm:publishtest': true, - '_npmjs.org:couch': 'https://admin:password@localhost:5984/registry', - 'npm-www:nocache': '1', - nodedir: '/Users/isaacs/dev/js/node-v0.8', - 'sign-git-tag': true, - message: 'v%s', - 'strict-ssl': false, - 'tmp': path.normalize(process.env.HOME + '/.tmp'), - _auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', - _token: - { AuthSession: 'yabba-dabba-doodle', - version: '1', - expires: '1345001053415', - path: '/', - httponly: true } } - -// set the userconfig in the env -// unset anything else that npm might be trying to foist on us -Object.keys(process.env).forEach(function (k) { - if (k.match(/^npm_config_/i)) { - delete process.env[k] - } -}) -process.env.npm_config_userconfig = exports.userconfig -process.env.npm_config_other_env_thing = '1000' -process.env.random_env_var = 'asdf' -process.env.npm_config__underbar_env_thing = 'underful' -process.env.NPM_CONFIG_UPPERCASE_ENV_THING = '42' - -exports.envData = { - userconfig: exports.userconfig, - '_underbar-env-thing': 'underful', - 'uppercase-env-thing': '42', - 'other-env-thing': '1000' -} -exports.envDataFix = { - userconfig: exports.userconfig, - '_underbar-env-thing': 'underful', - 'uppercase-env-thing': 42, - 'other-env-thing': 1000 -} - -var projectConf = path.resolve(__dirname, '..', '..', '.npmrc') -try { - fs.statSync(projectConf) -} catch (er) { - // project conf not found, probably working with packed npm - fs.writeFileSync(projectConf, function () { /* -save-prefix = ~ -proprietary-attribs = false -legacy-bundling = true - */ }.toString().split('\n').slice(1, -1).join('\n')) -} - -var projectRc = path.join(__dirname, '..', 'fixtures', 'config', '.npmrc') -try { - fs.statSync(projectRc) -} catch (er) { - // project conf not found, probably working with packed npm - fs.writeFileSync(projectRc, 'just = testing') -} - -if (module === require.main) { - // set the globalconfig in the userconfig - var uc = fs.readFileSync(userconfigSrc) - var gcini = 'globalconfig = ' + exports.globalconfig + '\n' - fs.writeFileSync(exports.userconfig, gcini + uc) - - console.log('1..1') - console.log('ok 1 setup done') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-verify-bundle-deps.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-verify-bundle-deps.js deleted file mode 100644 index 75ea81c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-verify-bundle-deps.js +++ /dev/null @@ -1,16 +0,0 @@ -var test = require('tap').test - -var manifest = require('../../package.json') -var deps = Object.keys(manifest.dependencies) -var bundled = manifest.bundleDependencies - -test('all deps are bundled deps or dev deps', function (t) { - deps.forEach(function (name) { - t.assert( - bundled.indexOf(name) !== -1, - name + ' is in bundledDependencies' - ) - }) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-verify-ls-ok.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-verify-ls-ok.js deleted file mode 100644 index 2d20e500..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/00-verify-ls-ok.js +++ /dev/null @@ -1,18 +0,0 @@ -var common = require('../common-tap') -var test = require('tap').test -var path = require('path') -var cwd = path.resolve(__dirname, '..', '..') -var fs = require('fs') - -test('npm ls in npm', function (t) { - t.ok(fs.existsSync(cwd), 'ensure that the path we are calling ls within exists') - var files = fs.readdirSync(cwd) - t.notEqual(files.length, 0, 'ensure there are files in the directory we are to ls') - - var opt = { cwd: cwd, stdio: [ 'ignore', 'ignore', 2 ] } - common.npm(['ls'], opt, function (err, code) { - t.ifError(err, 'error should not exist') - t.equal(code, 0, 'npm ls exited with code') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/404-parent.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/404-parent.js deleted file mode 100644 index a8bd9516..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/404-parent.js +++ /dev/null @@ -1,60 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var npm = require('../../') -var osenv = require('osenv') -var path = require('path') -var fs = require('fs') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var pkg = path.resolve(__dirname, '404-parent') -var mr = require('npm-registry-mock') - -test('404-parent: if parent exists, specify parent in error message', function (t) { - setup() - rimraf.sync(path.resolve(pkg, 'node_modules')) - performInstall(function (err) { - t.ok(err instanceof Error, 'error was returned') - t.ok(err.parent === '404-parent-test', "error's parent set") - t.end() - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) - t.end() -}) - -function setup () { - mkdirp.sync(pkg) - mkdirp.sync(path.resolve(pkg, 'cache')) - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ - author: 'Evan Lucas', - name: '404-parent-test', - version: '0.0.0', - description: 'Test for 404-parent', - dependencies: { - 'test-npm-404-parent-test': '*' - } - }), 'utf8') - process.chdir(pkg) -} - -function plugin (server) { - server.get('/test-npm-404-parent-test') - .reply(404, {'error': 'version not found'}) -} - -function performInstall (cb) { - mr({port: common.port, plugin: plugin}, function (er, s) { // create mock registry. - npm.load({registry: common.registry}, function () { - var pwd = process.cwd() - process.chdir(pkg) - npm.commands.install([], function (err) { - process.chdir(pwd) - cb(err) - s.close() // shutdown mock npm server. - }) - }) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/404-private-registry-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/404-private-registry-scoped.js deleted file mode 100644 index 84251b11..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/404-private-registry-scoped.js +++ /dev/null @@ -1,38 +0,0 @@ -var test = require('tap').test -var common = require('../common-tap.js') -var mr = require('npm-registry-mock') -var server - -test('setup', function (t) { - mr({port: common.port, throwOnUnmatched: true}, function (err, s) { - t.ifError(err, 'registry mocked successfully') - server = s - t.end() - }) -}) - -test('scoped package names not mangled on error with non-root registry', function (t) { - common.npm( - [ - 'cache', - 'add', - '@scope/foo@*', - '--force' - ], - {}, - function (er, code, stdout, stderr) { - t.ifError(er, 'correctly handled 404') - t.equal(code, 1, 'exited with error') - t.match(stderr, /404 Not found/, 'should notify the sort of error as a 404') - t.match(stderr, /@scope\/foo/, 'should have package name in error') - t.end() - } - ) -}) - -test('cleanup', function (t) { - t.pass('cleaned up') - server.done() - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/404-private-registry.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/404-private-registry.js deleted file mode 100644 index a30f6143..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/404-private-registry.js +++ /dev/null @@ -1,40 +0,0 @@ -require('../common-tap') -var test = require('tap').test -var path = require('path') -var common = require('../common-tap.js') -var mr = require('npm-registry-mock') -var server - -var packageName = path.basename(__filename, '.js') - -test('setup', function (t) { - mr({port: common.port, throwOnUnmatched: true}, function (err, s) { - t.ifError(err, 'registry mocked successfully') - server = s - t.end() - }) -}) - -test('package names not mangled on error with non-root registry', function (t) { - common.npm( - [ - 'cache', - 'add', - packageName + '@*' - ], - {}, - function (er, code, stdout, stderr) { - t.ifError(er, 'correctly handled 404') - t.equal(code, 1, 'exited with error') - t.match(stderr, packageName, 'should have package name in error') - t.end() - } - ) -}) - -test('cleanup', function (t) { - t.pass('cleaned up') - server.done() - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/access.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/access.js deleted file mode 100644 index 4bed4b4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/access.js +++ /dev/null @@ -1,531 +0,0 @@ -var fs = require('fs') -var path = require('path') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var mr = require('npm-registry-mock') - -var test = require('tap').test -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'access') -var server - -var scoped = { - name: '@scoped/pkg', - version: '1.1.1' -} - -test('setup', function (t) { - mkdirp(pkg, function (er) { - t.ifError(er, pkg + ' made successfully') - - mr({port: common.port}, function (err, s) { - t.ifError(err, 'registry mocked successfully') - server = s - - fs.writeFile( - path.join(pkg, 'package.json'), - JSON.stringify(scoped), - function (er) { - t.ifError(er, 'wrote package.json') - t.end() - } - ) - }) - }) -}) - -test('npm access public on current package', function (t) { - server.post('/-/package/%40scoped%2Fpkg/access', JSON.stringify({ - access: 'public' - })).reply(200, { - accessChanged: true - }) - common.npm( - [ - 'access', - 'public', - '--registry', common.registry, - '--loglevel', 'silent' - ], { - cwd: pkg - }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access') - t.equal(code, 0, 'exited OK') - t.equal(stderr, '', 'no error output') - t.end() - } - ) -}) - -test('npm access public when no package passed and no package.json', function (t) { - // need to simulate a missing package.json - var missing = path.join(__dirname, 'access-public-missing-guard') - mkdirp.sync(path.join(missing, 'node_modules')) - - common.npm([ - 'access', - 'public', - '--registry', common.registry - ], { - cwd: missing - }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access') - t.match(stderr, /no package name passed to command and no package.json found/) - rimraf.sync(missing) - t.end() - }) -}) - -test('npm access public when no package passed and invalid package.json', function (t) { - // need to simulate a missing package.json - var invalid = path.join(__dirname, 'access-public-invalid-package') - mkdirp.sync(path.join(invalid, 'node_modules')) - // it's hard to force `read-package-json` to break w/o ENOENT, but this will do it - fs.writeFileSync(path.join(invalid, 'package.json'), '{\n') - - common.npm([ - 'access', - 'public', - '--registry', common.registry - ], { - cwd: invalid - }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access') - t.match(stderr, /Failed to parse json/) - rimraf.sync(invalid) - t.end() - }) -}) - -test('npm access restricted on current package', function (t) { - server.post('/-/package/%40scoped%2Fpkg/access', JSON.stringify({ - access: 'restricted' - })).reply(200, { - accessChanged: true - }) - common.npm( - [ - 'access', - 'restricted', - '--registry', common.registry, - '--loglevel', 'silent' - ], { - cwd: pkg - }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access') - t.equal(code, 0, 'exited OK') - t.equal(stderr, '', 'no error output') - t.end() - } - ) -}) - -test('npm access on named package', function (t) { - server.post('/-/package/%40scoped%2Fanother/access', { - access: 'public' - }).reply(200, { - accessChaged: true - }) - common.npm( - [ - 'access', - 'public', '@scoped/another', - '--registry', common.registry, - '--loglevel', 'silent' - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access') - t.equal(code, 0, 'exited OK') - t.equal(stderr, '', 'no error output') - - t.end() - } - ) -}) - -test('npm change access on unscoped package', function (t) { - common.npm( - [ - 'access', - 'restricted', 'yargs', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ok(code, 'exited with Error') - t.matches( - stderr, /access commands are only accessible for scoped packages/) - t.end() - } - ) -}) - -test('npm access grant read-only', function (t) { - server.put('/-/team/myorg/myteam/package', { - permissions: 'read-only', - package: '@scoped/another' - }).reply(201, { - accessChaged: true - }) - common.npm( - [ - 'access', - 'grant', 'read-only', - 'myorg:myteam', - '@scoped/another', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access grant') - t.equal(code, 0, 'exited with Error') - t.end() - } - ) -}) - -test('npm access grant read-write', function (t) { - server.put('/-/team/myorg/myteam/package', { - permissions: 'read-write', - package: '@scoped/another' - }).reply(201, { - accessChaged: true - }) - common.npm( - [ - 'access', - 'grant', 'read-write', - 'myorg:myteam', - '@scoped/another', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access grant') - t.equal(code, 0, 'exited with Error') - t.end() - } - ) -}) - -test('npm access grant others', function (t) { - common.npm( - [ - 'access', - 'grant', 'rerere', - 'myorg:myteam', - '@scoped/another', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ok(code, 'exited with Error') - t.matches(stderr, /read-only/) - t.matches(stderr, /read-write/) - t.end() - } - ) -}) - -test('npm access revoke', function (t) { - server.delete('/-/team/myorg/myteam/package', { - package: '@scoped/another' - }).reply(200, { - accessChaged: true - }) - common.npm( - [ - 'access', - 'revoke', - 'myorg:myteam', - '@scoped/another', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access grant') - t.equal(code, 0, 'exited with Error') - t.end() - } - ) -}) - -test('npm access ls-packages with no team', function (t) { - var serverPackages = { - '@foo/bar': 'write', - '@foo/util': 'read' - } - var clientPackages = { - '@foo/bar': 'read-write', - '@foo/util': 'read-only' - } - server.get( - '/-/org/username/package?format=cli' - ).reply(200, serverPackages) - common.npm( - [ - 'access', - 'ls-packages', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access ls-packages') - t.same(JSON.parse(stdout), clientPackages) - t.end() - } - ) -}) - -test('npm access ls-packages on team', function (t) { - var serverPackages = { - '@foo/bar': 'write', - '@foo/util': 'read' - } - var clientPackages = { - '@foo/bar': 'read-write', - '@foo/util': 'read-only' - } - server.get( - '/-/team/myorg/myteam/package?format=cli' - ).reply(200, serverPackages) - common.npm( - [ - 'access', - 'ls-packages', - 'myorg:myteam', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access ls-packages') - t.same(JSON.parse(stdout), clientPackages) - t.end() - } - ) -}) - -test('npm access ls-packages on org', function (t) { - var serverPackages = { - '@foo/bar': 'write', - '@foo/util': 'read' - } - var clientPackages = { - '@foo/bar': 'read-write', - '@foo/util': 'read-only' - } - server.get( - '/-/org/myorg/package?format=cli' - ).reply(200, serverPackages) - common.npm( - [ - 'access', - 'ls-packages', - 'myorg', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access ls-packages') - t.same(JSON.parse(stdout), clientPackages) - t.end() - } - ) -}) - -test('npm access ls-packages on user', function (t) { - var serverPackages = { - '@foo/bar': 'write', - '@foo/util': 'read' - } - var clientPackages = { - '@foo/bar': 'read-write', - '@foo/util': 'read-only' - } - server.get( - '/-/org/myorg/package?format=cli' - ).reply(404, {error: 'nope'}) - server.get( - '/-/user/myorg/package?format=cli' - ).reply(200, serverPackages) - common.npm( - [ - 'access', - 'ls-packages', - 'myorg', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access ls-packages') - t.same(JSON.parse(stdout), clientPackages) - t.end() - } - ) -}) - -test('npm access ls-packages with no package specified or package.json', function (t) { - // need to simulate a missing package.json - var missing = path.join(__dirname, 'access-missing-guard') - mkdirp.sync(path.join(missing, 'node_modules')) - - var serverPackages = { - '@foo/bar': 'write', - '@foo/util': 'read' - } - var clientPackages = { - '@foo/bar': 'read-write', - '@foo/util': 'read-only' - } - server.get( - '/-/org/myorg/package?format=cli' - ).reply(404, {error: 'nope'}) - server.get( - '/-/user/myorg/package?format=cli' - ).reply(200, serverPackages) - common.npm( - [ - 'access', - 'ls-packages', - 'myorg', - '--registry', common.registry - ], - { cwd: missing }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access ls-packages') - t.same(JSON.parse(stdout), clientPackages) - rimraf.sync(missing) - t.end() - } - ) -}) - -test('npm access ls-collaborators on current', function (t) { - var serverCollaborators = { - 'myorg:myteam': 'write', - 'myorg:anotherteam': 'read' - } - var clientCollaborators = { - 'myorg:myteam': 'read-write', - 'myorg:anotherteam': 'read-only' - } - server.get( - '/-/package/%40scoped%2Fpkg/collaborators?format=cli' - ).reply(200, serverCollaborators) - common.npm( - [ - 'access', - 'ls-collaborators', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access ls-collaborators') - t.same(JSON.parse(stdout), clientCollaborators) - t.end() - } - ) -}) - -test('npm access ls-collaborators on package', function (t) { - var serverCollaborators = { - 'myorg:myteam': 'write', - 'myorg:anotherteam': 'read' - } - var clientCollaborators = { - 'myorg:myteam': 'read-write', - 'myorg:anotherteam': 'read-only' - } - server.get( - '/-/package/%40scoped%2Fanother/collaborators?format=cli' - ).reply(200, serverCollaborators) - common.npm( - [ - 'access', - 'ls-collaborators', - '@scoped/another', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access ls-collaborators') - t.same(JSON.parse(stdout), clientCollaborators) - t.end() - } - ) -}) - -test('npm access ls-collaborators on current w/user filter', function (t) { - var serverCollaborators = { - 'myorg:myteam': 'write', - 'myorg:anotherteam': 'read' - } - var clientCollaborators = { - 'myorg:myteam': 'read-write', - 'myorg:anotherteam': 'read-only' - } - server.get( - '/-/package/%40scoped%2Fanother/collaborators?format=cli&user=zkat' - ).reply(200, serverCollaborators) - common.npm( - [ - 'access', - 'ls-collaborators', - '@scoped/another', - 'zkat', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access ls-collaborators') - t.same(JSON.parse(stdout), clientCollaborators) - t.end() - } - ) -}) - -test('npm access edit', function (t) { - common.npm( - [ - 'access', - 'edit', '@scoped/another', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ok(code, 'exited with Error') - t.match(stderr, /edit subcommand is not implemented yet/) - t.end() - } - ) -}) - -test('npm access blerg', function (t) { - common.npm( - [ - 'access', - 'blerg', '@scoped/another', - '--registry', common.registry - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ok(code, 'exited with Error') - t.matches(stderr, /Usage:/) - t.end() - } - ) -}) - -test('cleanup', function (t) { - t.pass('cleaned up') - rimraf.sync(pkg) - server.done() - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-named-update-protocol-port.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-named-update-protocol-port.js deleted file mode 100644 index 78130e2f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-named-update-protocol-port.js +++ /dev/null @@ -1,112 +0,0 @@ -'use strict' -var path = require('path') -var test = require('tap').test -var common = require('../common-tap') -var mr = require('npm-registry-mock') -var server1 -var server2 - -var packageName = path.basename(__filename, '.js') - -var fooPkg = { - name: packageName, - versions: { - '0.0.0': { - name: packageName, - version: '0.0.0', - dist: { - tarball: 'https://localhost:1338/registry/' + packageName + '/-/' + packageName + '-0.0.0.tgz', - shasum: '356a192b7913b04c54574d18c28d46e6395428ab' - } - } - } -} - -var iPackageName = packageName + 'i' -var fooiPkg = { - name: iPackageName, - versions: { - '0.0.0': { - name: iPackageName, - version: '0.0.0', - dist: { - tarball: 'http://127.0.0.1:1338/registry/' + iPackageName + '/-/' + iPackageName + '-0.0.0.tgz', - shasum: '356a192b7913b04c54574d18c28d46e6395428ab' - } - } - } -} - -test('setup', function (t) { - mr({ - port: 1337, - throwOnUnmatched: true - }, function (err, s) { - t.ifError(err, 'registry mocked successfully') - server1 = s - mr({ - port: 1338, - throwOnUnmatched: true - }, function (err, s) { - t.ifError(err, 'registry mocked successfully') - server2 = s - t.end() - }) - }) -}) - -test('tarball paths should update port if updating protocol', function (t) { - server1.get('/registry/' + packageName).reply(200, fooPkg) - server1.get( - '/registry/' + packageName + '/-/' + packageName + '-0.0.0.tgz' - ).reply(200, '1') - - common.npm( - [ - 'cache', - 'add', - packageName + '@0.0.0', - '--registry', - 'http://localhost:1337/registry' - ], - {}, - function (er, code, stdout, stderr) { - if (er) { throw er } - t.equal(code, 0, 'addNamed worked') - server1.done() - t.end() - } - ) -}) - -test('tarball paths should NOT update if different hostname', function (t) { - server1.get('/registry/' + iPackageName).reply(200, fooiPkg) - server2.get( - '/registry/' + iPackageName + '/-/' + iPackageName + '-0.0.0.tgz' - ).reply(200, '1') - - common.npm( - [ - 'cache', - 'add', - iPackageName + '@0.0.0', - '--registry', - 'http://localhost:1337/registry' - ], - {}, - function (er, code, stdout, stderr) { - if (er) { throw er } - t.equal(code, 0, 'addNamed worked') - server1.done() - server2.done() - t.end() - } - ) -}) - -test('cleanup', function (t) { - t.pass('cleaned up') - server1.close() - server2.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-fake-windows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-fake-windows.js deleted file mode 100644 index 24175c54..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-fake-windows.js +++ /dev/null @@ -1,132 +0,0 @@ -var fs = require('fs') -var resolve = require('path').resolve - -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../lib/npm.js') -var common = require('../common-tap.js') - -var pkg = resolve(__dirname, 'add-remote-git') -var repo = resolve(__dirname, 'add-remote-git-repo') - -var daemon -var daemonPID -var git - -var pjParent = JSON.stringify({ - name: 'parent', - version: '1.2.3', - dependencies: { - child: 'git://localhost:1234/child.git' - } -}, null, 2) + '\n' - -var pjChild = JSON.stringify({ - name: 'child', - version: '1.0.3' -}, null, 2) + '\n' - -test('setup', function (t) { - bootstrap() - setup(function (er, r) { - if (er) { - throw er - } - - if (!er) { - daemon = r[r.length - 2] - daemonPID = r[r.length - 1] - } - - t.end() - }) -}) - -test('install from repo on \'Windows\'', function (t) { - // before we confuse everything by switching the platform - require('../../lib/install.js') - require('../../lib/unbuild.js') - process.platform = 'win32' - process.chdir(pkg) - npm.commands.install('.', [], function (er) { - t.ifError(er, 'npm installed via git') - - t.end() - }) -}) - -test('clean', function (t) { - daemon.on('close', function () { - cleanup() - t.end() - }) - process.kill(daemonPID) -}) - -function bootstrap () { - rimraf.sync(pkg) - mkdirp.sync(pkg) - fs.writeFileSync(resolve(pkg, 'package.json'), pjParent) -} - -function setup (cb) { - rimraf.sync(repo) - mkdirp.sync(repo) - fs.writeFileSync(resolve(repo, 'package.json'), pjChild) - npm.load({ registry: common.registry, loglevel: 'silent' }, function () { - // some really cheesy monkeypatching - require('module')._cache[require.resolve('which')] = { - exports: function (_, cb) { cb() } - } - git = require('../../lib/utils/git.js') - - function startDaemon (cb) { - // start git server - var d = git.spawn( - [ - 'daemon', - '--verbose', - '--listen=localhost', - '--export-all', - '--base-path=.', - '--reuseaddr', - '--port=1234' - ], - { - cwd: pkg, - env: process.env, - stdio: ['pipe', 'pipe', 'pipe'] - } - ) - d.stderr.on('data', childFinder) - - function childFinder (c) { - var cpid = c.toString().match(/^\[(\d+)\]/) - if (cpid[1]) { - this.removeListener('data', childFinder) - cb(null, [d, cpid[1]]) - } - } - } - - common.makeGitRepo({ - path: repo, - commands: [ - git.chainableExec( - ['clone', '--bare', repo, 'child.git'], - { cwd: pkg, env: process.env } - ), - startDaemon - ] - }, cb) - }) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(repo) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-file.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-file.js deleted file mode 100644 index eff4a62e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-file.js +++ /dev/null @@ -1,101 +0,0 @@ -var fs = require('fs') -var resolve = require('path').resolve -var url = require('url') - -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../lib/npm.js') -var common = require('../common-tap.js') - -var pkg = resolve(__dirname, 'add-remote-git-file') -var repo = resolve(__dirname, 'add-remote-git-file-repo') - -var git -var cloneURL = 'git+file://' + resolve(pkg, 'child.git') - -var pjChild = JSON.stringify({ - name: 'child', - version: '1.0.3' -}, null, 2) + '\n' - -test('setup', function (t) { - bootstrap() - setup(function (er, r) { - t.ifError(er, 'git started up successfully') - - t.end() - }) -}) - -test('cache from repo', function (t) { - process.chdir(pkg) - var addRemoteGit = require('../../lib/cache/add-remote-git.js') - addRemoteGit(cloneURL, function (er, data) { - t.ifError(er, 'cached via git') - t.equal( - url.parse(data._resolved).protocol, - 'git+file:', - 'npm didn\'t go crazy adding git+git+git+git' - ) - - t.end() - }) -}) - -test('save install', function (t) { - process.chdir(pkg) - fs.writeFileSync('package.json', JSON.stringify({ - name: 'parent', - version: '5.4.3' - }, null, 2) + '\n') - var prev = npm.config.get('save') - npm.config.set('save', true) - npm.commands.install('.', [cloneURL], function (er) { - npm.config.set('save', prev) - t.ifError(er, 'npm installed via git') - var pj = JSON.parse(fs.readFileSync('package.json', 'utf-8')) - var dep = pj.dependencies.child - t.equal( - url.parse(dep).protocol, - 'git+file:', - 'npm didn\'t strip the git+ from git+file://' - ) - - t.end() - }) -}) - -test('clean', function (t) { - cleanup() - t.end() -}) - -function bootstrap () { - cleanup() - mkdirp.sync(pkg) -} - -function setup (cb) { - mkdirp.sync(repo) - fs.writeFileSync(resolve(repo, 'package.json'), pjChild) - npm.load({ registry: common.registry, loglevel: 'silent' }, function () { - git = require('../../lib/utils/git.js') - - common.makeGitRepo({ - path: repo, - commands: [git.chainableExec( - ['clone', '--bare', repo, 'child.git'], - { cwd: pkg, env: process.env } - )] - }, cb) - }) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(repo) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-get-resolved.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-get-resolved.js deleted file mode 100644 index dab51d16..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-get-resolved.js +++ /dev/null @@ -1,129 +0,0 @@ -'use strict' -var test = require('tap').test - -var npm = require('../../lib/npm.js') -var common = require('../common-tap.js') - -var normalizeGitUrl = require('normalize-git-url') -var getResolved = null - -/** - * Note: This is here because `normalizeGitUrl` is usually called - * before getResolved is, and receives *that* URL. - */ -function tryGetResolved (uri, treeish) { - return getResolved(normalizeGitUrl(uri).url, treeish) -} - -test('setup', function (t) { - var opts = { - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - getResolved = require('../../lib/cache/add-remote-git.js').getResolved - t.end() - }) -}) - -test('add-remote-git#get-resolved git: passthru', function (t) { - verify('git:github.com/foo/repo') - verify('git:github.com/foo/repo.git') - verify('git://github.com/foo/repo#decadacefadabade') - verify('git://github.com/foo/repo.git#decadacefadabade') - - function verify (uri) { - t.equal( - tryGetResolved(uri, 'decadacefadabade'), - 'git://github.com/foo/repo.git#decadacefadabade', - uri + ' normalized to canonical form git://github.com/foo/repo.git#decadacefadabade' - ) - } - t.end() -}) - -test('add-remote-git#get-resolved SSH', function (t) { - t.comment('tests for https://github.com/npm/npm/issues/7961') - verify('git@github.com:foo/repo') - verify('git@github.com:foo/repo#master') - verify('git+ssh://git@github.com/foo/repo#master') - verify('git+ssh://git@github.com/foo/repo#decadacefadabade') - - function verify (uri) { - t.equal( - tryGetResolved(uri, 'decadacefadabade'), - 'git+ssh://git@github.com/foo/repo.git#decadacefadabade', - uri + ' normalized to canonical form git+ssh://git@github.com/foo/repo.git#decadacefadabade' - ) - } - t.end() -}) - -test('add-remote-git#get-resolved HTTPS', function (t) { - verify('https://github.com/foo/repo') - verify('https://github.com/foo/repo#master') - verify('git+https://github.com/foo/repo.git#master') - verify('git+https://github.com/foo/repo#decadacefadabade') - // DEPRECATED - // this is an invalid URL but we normalize it - // anyway. Users shouldn't use this in the future. See note - // below for how this affected non-hosted URLs. - // See https://github.com/npm/npm/issues/8881 - verify('git+https://github.com:foo/repo.git#master') - - function verify (uri) { - t.equal( - tryGetResolved(uri, 'decadacefadabade'), - 'git+https://github.com/foo/repo.git#decadacefadabade', - uri + ' normalized to canonical form git+https://github.com/foo/repo.git#decadacefadabade' - ) - } - t.end() -}) - -test('add-remote-git#get-resolved edge cases', function (t) { - t.equal( - tryGetResolved('git+ssh://user@bananaboat.com:galbi/blah.git', 'decadacefadabade'), - 'git+ssh://user@bananaboat.com:galbi/blah.git#decadacefadabade', - 'don\'t break non-hosted scp-style locations' - ) - - t.equal( - tryGetResolved('git+ssh://bananaboat:galbi/blah', 'decadacefadabade'), - 'git+ssh://bananaboat:galbi/blah#decadacefadabade', - 'don\'t break non-hosted scp-style locations' - ) - - // DEPRECATED - // When we were normalizing all git URIs, git+https: was being - // automatically converted to ssh:. Some users were relying - // on this funky behavior, so after removing the aggressive - // normalization from non-hosted URIs, we brought this back. - // See https://github.com/npm/npm/issues/8881 - t.equal( - tryGetResolved('git+https://bananaboat:galbi/blah', 'decadacefadabade'), - 'git+https://bananaboat/galbi/blah#decadacefadabade', - 'don\'t break non-hosted scp-style locations' - ) - - t.equal( - tryGetResolved('git+ssh://git.bananaboat.net/foo', 'decadacefadabade'), - 'git+ssh://git.bananaboat.net/foo#decadacefadabade', - 'don\'t break non-hosted SSH URLs' - ) - - t.equal( - tryGetResolved('git+ssh://git.bananaboat.net:/foo', 'decadacefadabade'), - 'git+ssh://git.bananaboat.net:/foo#decadacefadabade', - 'don\'t break non-hosted SSH URLs' - ) - - t.equal( - tryGetResolved('git://gitbub.com/foo/bar.git', 'decadacefadabade'), - 'git://gitbub.com/foo/bar.git#decadacefadabade', - 'don\'t break non-hosted git: URLs' - ) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-shrinkwrap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-shrinkwrap.js deleted file mode 100644 index b79405c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-shrinkwrap.js +++ /dev/null @@ -1,161 +0,0 @@ -var fs = require('fs') -var resolve = require('path').resolve - -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../lib/npm.js') -var common = require('../common-tap.js') - -var pkg = resolve(__dirname, 'add-remote-git-shrinkwrap') -var repo = resolve(__dirname, 'add-remote-git-shrinkwrap-repo') - -var daemon -var daemonPID -var git - -var pjParent = JSON.stringify({ - name: 'parent', - version: '1.2.3', - dependencies: { - 'child': 'git://localhost:1234/child.git#master' - } -}, null, 2) + '\n' - -var pjChild = JSON.stringify({ - name: 'child', - version: '1.0.3' -}, null, 2) + '\n' - -test('setup', function (t) { - bootstrap() - setup(function (er, r) { - t.ifError(er, 'git started up successfully') - - if (!er) { - daemon = r[r.length - 2] - daemonPID = r[r.length - 1] - } - - t.end() - }) -}) - -test('install from repo', function (t) { - process.chdir(pkg) - npm.commands.install('.', [], function (er) { - t.ifError(er, 'npm installed via git') - - t.end() - }) -}) - -test('shrinkwrap gets correct _from and _resolved (#7121)', function (t) { - common.npm( - [ - 'shrinkwrap', - '--loglevel', 'silent' - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm shrinkwrapped without errors') - t.is(code, 0, '`npm shrinkwrap` exited ok') - t.equal(stdout.trim(), 'wrote npm-shrinkwrap.json') - t.equal(stderr.trim(), '', 'no error output on successful shrinkwrap') - - var shrinkwrap = require(resolve(pkg, 'npm-shrinkwrap.json')) - t.equal( - shrinkwrap.dependencies.child.from, - 'git://localhost:1234/child.git#master', - 'npm shrinkwrapped from correctly' - ) - - git.whichAndExec( - ['rev-list', '-n1', 'master'], - { cwd: repo, env: process.env }, - function (er, stdout, stderr) { - t.ifErr(er, 'git rev-list ran without error') - t.notOk(stderr, 'no error output') - var treeish = stdout.trim() - - t.equal( - shrinkwrap.dependencies.child.resolved, - 'git://localhost:1234/child.git#' + treeish, - 'npm shrinkwrapped resolved correctly' - ) - - t.end() - } - ) - } - ) -}) - -test('clean', function (t) { - daemon.on('close', function () { - cleanup() - t.end() - }) - process.kill(daemonPID) -}) - -function bootstrap () { - mkdirp.sync(pkg) - fs.writeFileSync(resolve(pkg, 'package.json'), pjParent) -} - -function setup (cb) { - mkdirp.sync(repo) - fs.writeFileSync(resolve(repo, 'package.json'), pjChild) - npm.load({ prefix: pkg, registry: common.registry, loglevel: 'silent' }, function () { - git = require('../../lib/utils/git.js') - - function startDaemon (cb) { - // start git server - var d = git.spawn( - [ - 'daemon', - '--verbose', - '--listen=localhost', - '--export-all', - '--base-path=.', - '--reuseaddr', - '--port=1234' - ], - { - cwd: pkg, - env: process.env, - stdio: ['pipe', 'pipe', 'pipe'] - } - ) - d.stderr.on('data', childFinder) - - function childFinder (c) { - var cpid = c.toString().match(/^\[(\d+)\]/) - if (cpid[1]) { - this.removeListener('data', childFinder) - cb(null, [d, cpid[1]]) - } - } - } - - common.makeGitRepo({ - path: repo, - commands: [ - git.chainableExec( - ['clone', '--bare', repo, 'child.git'], - { cwd: pkg, env: process.env } - ), - startDaemon - ] - }, cb) - }) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(repo) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-submodule.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-submodule.js deleted file mode 100644 index f4a51b4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git-submodule.js +++ /dev/null @@ -1,145 +0,0 @@ -var fs = require('fs') -var resolve = require('path').resolve - -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../lib/npm.js') -var common = require('../common-tap.js') - -var pkg = resolve(__dirname, 'add-remote-git-submodule') -var repos = resolve(__dirname, 'add-remote-git-submodule-repos') -var subwt = resolve(repos, 'subwt') -var topwt = resolve(repos, 'topwt') -var suburl = 'git://localhost:1234/sub.git' -var topurl = 'git://localhost:1234/top.git' - -var daemon -var daemonPID -var git - -var pjParent = JSON.stringify({ - name: 'parent', - version: '1.2.3', - dependencies: { - child: topurl - } -}, null, 2) + '\n' - -var pjChild = JSON.stringify({ - name: 'child', - version: '1.0.3' -}, null, 2) + '\n' - -test('setup', function (t) { - setup(function (er, r) { - t.ifError(er, 'git started up successfully') - t.end() - }) -}) - -test('install from repo', function (t) { - bootstrap(t) - npm.commands.install('.', [], function (er) { - t.ifError(er, 'npm installed via git') - t.end() - }) -}) - -test('has file in submodule', function (t) { - bootstrap(t) - npm.commands.install('.', [], function (er) { - t.ifError(er, 'npm installed via git') - var fooPath = resolve('node_modules', 'child', 'subpath', 'foo.txt') - fs.stat(fooPath, function (er) { - t.ifError(er, 'file in submodule exists') - t.end() - }) - }) -}) - -test('clean', function (t) { - daemon.on('close', function () { - cleanup() - t.end() - }) - process.kill(daemonPID) -}) - -function bootstrap (t) { - mkdirp.sync(pkg) - process.chdir(pkg) - fs.writeFileSync('package.json', pjParent) - t.tearDown(function () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) - }) -} - -function setup (cb) { - mkdirp.sync(topwt) - fs.writeFileSync(resolve(topwt, 'package.json'), pjChild) - mkdirp.sync(subwt) - fs.writeFileSync(resolve(subwt, 'foo.txt'), 'This is provided by submodule') - npm.load({ registry: common.registry, loglevel: 'silent' }, function () { - git = require('../../lib/utils/git.js') - - function startDaemon (cb) { - // start git server - var d = git.spawn( - [ - 'daemon', - '--verbose', - '--listen=localhost', - '--export-all', - '--base-path=.', - '--reuseaddr', - '--port=1234' - ], - { - cwd: repos, - env: process.env, - stdio: ['pipe', 'pipe', 'pipe'] - } - ) - d.stderr.on('data', childFinder) - - function childFinder (c) { - var cpid = c.toString().match(/^\[(\d+)\]/) - if (cpid[1]) { - this.removeListener('data', childFinder) - daemon = d - daemonPID = cpid[1] - cb(null) - } - } - } - - var env = { PATH: process.env.PATH } - var topopt = { cwd: topwt, env: env } - var reposopt = { cwd: repos, env: env } - common.makeGitRepo({ - path: subwt, - added: ['foo.txt'], - commands: [ - git.chainableExec(['clone', '--bare', subwt, 'sub.git'], reposopt), - startDaemon, - [common.makeGitRepo, { - path: topwt, - commands: [ - git.chainableExec(['submodule', 'add', suburl, 'subpath'], topopt), - git.chainableExec(['commit', '-m', 'added submodule'], topopt), - git.chainableExec(['clone', '--bare', topwt, 'top.git'], reposopt) - ] - }] - ] - }, cb) - }) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(repos) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git.js deleted file mode 100644 index 24abf33a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/add-remote-git.js +++ /dev/null @@ -1,120 +0,0 @@ -var fs = require('fs') -var resolve = require('path').resolve - -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../lib/npm.js') -var common = require('../common-tap.js') - -var pkg = resolve(__dirname, 'add-remote-git') -var repo = resolve(__dirname, 'add-remote-git-repo') - -var daemon -var daemonPID -var git - -var pjParent = JSON.stringify({ - name: 'parent', - version: '1.2.3', - dependencies: { - child: 'git://localhost:1234/child.git' - } -}, null, 2) + '\n' - -var pjChild = JSON.stringify({ - name: 'child', - version: '1.0.3' -}, null, 2) + '\n' - -test('setup', function (t) { - bootstrap() - setup(function (er, r) { - t.ifError(er, 'git started up successfully') - - if (!er) { - daemon = r[r.length - 2] - daemonPID = r[r.length - 1] - } - - t.end() - }) -}) - -test('install from repo', function (t) { - process.chdir(pkg) - npm.commands.install('.', [], function (er) { - t.ifError(er, 'npm installed via git') - - t.end() - }) -}) - -test('clean', function (t) { - daemon.on('close', function () { - cleanup() - t.end() - }) - process.kill(daemonPID) -}) - -function bootstrap () { - mkdirp.sync(pkg) - fs.writeFileSync(resolve(pkg, 'package.json'), pjParent) -} - -function setup (cb) { - mkdirp.sync(repo) - fs.writeFileSync(resolve(repo, 'package.json'), pjChild) - npm.load({ registry: common.registry, loglevel: 'silent' }, function () { - git = require('../../lib/utils/git.js') - - function startDaemon (cb) { - // start git server - var d = git.spawn( - [ - 'daemon', - '--verbose', - '--listen=localhost', - '--export-all', - '--base-path=.', - '--reuseaddr', - '--port=1234' - ], - { - cwd: pkg, - env: process.env, - stdio: ['pipe', 'pipe', 'pipe'] - } - ) - d.stderr.on('data', childFinder) - - function childFinder (c) { - var cpid = c.toString().match(/^\[(\d+)\]/) - if (cpid[1]) { - this.removeListener('data', childFinder) - cb(null, [d, cpid[1]]) - } - } - } - - common.makeGitRepo({ - path: repo, - commands: [ - git.chainableExec( - ['clone', '--bare', repo, 'child.git'], - { cwd: pkg, env: process.env } - ), - startDaemon - ] - }, cb) - }) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(repo) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/adduser-always-auth.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/adduser-always-auth.js deleted file mode 100644 index 375c3ab2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/adduser-always-auth.js +++ /dev/null @@ -1,263 +0,0 @@ -var fs = require('fs') -var path = require('path') -var rimraf = require('rimraf') -var mr = require('npm-registry-mock') - -var test = require('tap').test -var common = require('../common-tap.js') - -var opts = {cwd: __dirname} -var outfile = path.resolve(__dirname, '_npmrc') -var responses = { - 'Username': 'u\n', - 'Password': 'p\n', - 'Email': 'u@p.me\n' -} - -function verifyStdout (runner, successMessage, t) { - var remaining = Object.keys(responses).length - return function (chunk) { - if (remaining > 0) { - remaining-- - - var label = chunk.toString('utf8').split(':')[0] - runner.stdin.write(responses[label]) - - if (remaining === 0) runner.stdin.end() - } else { - var message = chunk.toString('utf8').trim() - t.equal(message, successMessage) - } - } -} - -function mocks (server) { - server.filteringRequestBody(function (r) { - if (r.match(/\"_id\":\"org\.couchdb\.user:u\"/)) { - return 'auth' - } - }) - server.put('/-/user/org.couchdb.user:u', 'auth') - .reply(201, { username: 'u', password: 'p', email: 'u@p.me' }) -} - -test('npm login', function (t) { - mr({ port: common.port, plugin: mocks }, function (er, s) { - var runner = common.npm( - [ - 'login', - '--registry', common.registry, - '--loglevel', 'silent', - '--userconfig', outfile - ], - opts, - function (err, code) { - t.notOk(code, 'exited OK') - t.notOk(err, 'no error output') - var config = fs.readFileSync(outfile, 'utf8') - t.like(config, /:always-auth=false/, 'always-auth is scoped and false (by default)') - s.close() - rimraf(outfile, function (err) { - t.ifError(err, 'removed config file OK') - t.end() - }) - }) - - var message = 'Logged in as u on ' + common.registry + '/.' - runner.stdout.on('data', verifyStdout(runner, message, t)) - }) -}) - -test('npm login --scope <scope> uses <scope>:registry as its URI', function (t) { - var port = common.port + 1 - var uri = 'http://localhost:' + port + '/' - var scope = '@myco' - common.npm( - [ - 'config', - '--userconfig', outfile, - 'set', - scope + ':registry', - uri - ], - opts, - function (err, code) { - t.notOk(code, 'exited OK') - t.notOk(err, 'no error output') - - mr({ port: port, plugin: mocks }, function (er, s) { - var runner = common.npm( - [ - 'login', - '--loglevel', 'silent', - '--userconfig', outfile, - '--scope', scope - ], - opts, - function (err, code) { - t.notOk(code, 'exited OK') - t.notOk(err, 'no error output') - var config = fs.readFileSync(outfile, 'utf8') - t.like(config, new RegExp(scope + ':registry=' + uri), 'scope:registry is set') - s.close() - rimraf(outfile, function (err) { - t.ifError(err, 'removed config file OK') - t.end() - }) - }) - - var message = 'Logged in as u to scope ' + scope + ' on ' + uri + '.' - runner.stdout.on('data', verifyStdout(runner, message, t)) - }) - }) -}) - -test('npm login --scope <scope> makes sure <scope> is prefixed by an @', function (t) { - var port = common.port + 1 - var uri = 'http://localhost:' + port + '/' - var scope = 'myco' - var prefixedScope = '@' + scope - common.npm( - [ - '--userconfig', outfile, - 'config', - 'set', - prefixedScope + ':registry', - uri - ], - opts, - function (err, code) { - t.notOk(code, 'exited OK') - t.notOk(err, 'no error output') - - mr({ port: port, plugin: mocks }, function (er, s) { - var runner = common.npm( - [ - 'login', - '--loglevel', 'silent', - '--userconfig', outfile, - '--scope', scope - ], - opts, - function (err, code) { - t.notOk(code, 'exited OK') - t.notOk(err, 'no error output') - var config = fs.readFileSync(outfile, 'utf8') - t.like(config, new RegExp(prefixedScope + ':registry=' + uri), 'scope:registry is set') - s.close() - rimraf(outfile, function (err) { - t.ifError(err, 'removed config file OK') - t.end() - }) - }) - - var message = 'Logged in as u to scope ' + prefixedScope + ' on ' + uri + '.' - runner.stdout.on('data', verifyStdout(runner, message, t)) - }) - }) -}) - -test('npm login --scope <scope> --registry <registry> uses <registry> as its URI', function (t) { - var scope = '@myco' - common.npm( - [ - '--userconfig', outfile, - 'config', - 'set', - scope + ':registry', - 'invalidurl' - ], - opts, - function (err, code) { - t.notOk(code, 'exited OK') - t.notOk(err, 'no error output') - - mr({ port: common.port, plugin: mocks }, function (er, s) { - var runner = common.npm( - [ - 'login', - '--registry', common.registry, - '--loglevel', 'silent', - '--userconfig', outfile, - '--scope', scope - ], - opts, - function (err, code) { - t.notOk(code, 'exited OK') - t.notOk(err, 'no error output') - var config = fs.readFileSync(outfile, 'utf8') - t.like(config, new RegExp(scope + ':registry=' + common.registry), 'scope:registry is set') - s.close() - rimraf(outfile, function (err) { - t.ifError(err, 'removed config file OK') - t.end() - }) - }) - - var message = 'Logged in as u to scope ' + scope + ' on ' + common.registry + '/.' - runner.stdout.on('data', verifyStdout(runner, message, t)) - }) - }) -}) - -test('npm login --always-auth', function (t) { - mr({ port: common.port, plugin: mocks }, function (er, s) { - var runner = common.npm( - [ - 'login', - '--registry', common.registry, - '--loglevel', 'silent', - '--userconfig', outfile, - '--always-auth' - ], - opts, - function (err, code) { - t.notOk(code, 'exited OK') - t.notOk(err, 'no error output') - var config = fs.readFileSync(outfile, 'utf8') - t.like(config, /:always-auth=true/, 'always-auth is scoped and true') - s.close() - rimraf(outfile, function (err) { - t.ifError(err, 'removed config file OK') - t.end() - }) - }) - - var message = 'Logged in as u on ' + common.registry + '/.' - runner.stdout.on('data', verifyStdout(runner, message, t)) - }) -}) - -test('npm login --no-always-auth', function (t) { - mr({ port: common.port, plugin: mocks }, function (er, s) { - var runner = common.npm( - [ - 'login', - '--registry', common.registry, - '--loglevel', 'silent', - '--userconfig', outfile, - '--no-always-auth' - ], - opts, - function (err, code) { - t.notOk(code, 'exited OK') - t.notOk(err, 'no error output') - var config = fs.readFileSync(outfile, 'utf8') - t.like(config, /:always-auth=false/, 'always-auth is scoped and false') - s.close() - rimraf(outfile, function (err) { - t.ifError(err, 'removed config file OK') - t.end() - }) - }) - - var message = 'Logged in as u on ' + common.registry + '/.' - runner.stdout.on('data', verifyStdout(runner, message, t)) - }) -}) - -test('cleanup', function (t) { - rimraf.sync(outfile) - t.pass('cleaned up') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/adduser-legacy-auth.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/adduser-legacy-auth.js deleted file mode 100644 index 1fc1210e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/adduser-legacy-auth.js +++ /dev/null @@ -1,98 +0,0 @@ -var fs = require('fs') -var path = require('path') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var mr = require('npm-registry-mock') - -var test = require('tap').test -var common = require('../common-tap.js') - -var opts = { cwd: __dirname } -var pkg = path.resolve(__dirname, 'adduser-legacy-auth') -var outfile = path.resolve(pkg, '_npmrc') - -var contents = '_auth=' + new Buffer('u:x').toString('base64') + '\n' + - 'registry=https://nonexistent.lvh.me/registry\n' + - 'email=u@p.me\n' - -var responses = { - 'Username': 'u\n', - 'Password': 'p\n', - 'Email': 'u@p.me\n' -} - -function mocks (server) { - server.filteringRequestBody(function (r) { - if (r.match(/"_id":"org\.couchdb\.user:u"/)) { - return 'auth' - } - }) - server.put('/-/user/org.couchdb.user:u', 'auth') - .reply(409, { error: 'user exists' }) - server.get('/-/user/org.couchdb.user:u?write=true') - .reply(200, { _rev: '3-deadcafebabebeef' }) - server.put( - '/-/user/org.couchdb.user:u/-rev/3-deadcafebabebeef', - 'auth', - { authorization: 'Basic dTpw' } - ).reply(201, { username: 'u', password: 'p', email: 'u@p.me' }) -} - -test('setup', function (t) { - mkdirp(pkg, function (er) { - t.ifError(er, pkg + ' made successfully') - - fs.writeFile(outfile, contents, function (er) { - t.ifError(er, 'wrote legacy config') - - t.end() - }) - }) -}) - -test('npm login', function (t) { - mr({ port: common.port, plugin: mocks }, function (er, s) { - var runner = common.npm( - [ - 'login', - '--registry', common.registry, - '--loglevel', 'silent', - '--userconfig', outfile - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm ran without issue') - t.notOk(code, 'exited OK') - t.notOk(stderr, 'no error output') - var config = fs.readFileSync(outfile, 'utf8') - t.like(config, /:always-auth=false/, 'always-auth is scoped and false (by default)') - s.close() - rimraf(outfile, function (err) { - t.ifError(err, 'removed config file OK') - t.end() - }) - } - ) - - var remaining = Object.keys(responses).length - runner.stdout.on('data', function (chunk) { - if (remaining > 0) { - remaining-- - - var label = chunk.toString('utf8').split(':')[0] - runner.stdin.write(responses[label]) - - if (remaining === 0) runner.stdin.end() - } else { - var message = chunk.toString('utf8').trim() - t.equal(message, 'Logged in as u on ' + common.registry + '/.') - } - }) - }) -}) - -test('cleanup', function (t) { - rimraf.sync(pkg) - t.pass('cleaned up') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bearer-token-check.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bearer-token-check.js deleted file mode 100644 index 8ddbec29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bearer-token-check.js +++ /dev/null @@ -1,118 +0,0 @@ -var resolve = require('path').resolve -var writeFileSync = require('graceful-fs').writeFileSync - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var toNerfDart = require('../../lib/config/nerf-dart.js') - -var pkg = resolve(__dirname, 'install-bearer-check') -var outfile = resolve(pkg, '_npmrc') -var modules = resolve(pkg, 'node_modules') -var tarballPath = '/scoped-underscore/-/scoped-underscore-1.3.1.tgz' -// needs to be a different hostname to verify tokens (not) being sent correctly -var tarballURL = 'http://lvh.me:' + common.port + tarballPath -var tarball = resolve(__dirname, '../fixtures/scoped-underscore-1.3.1.tgz') - -var server - -var EXEC_OPTS = { cwd: pkg } - -function mocks (server) { - var auth = 'Bearer 0xabad1dea' - server.get(tarballPath, { authorization: auth }).reply(403, { - error: 'token leakage', - reason: 'This token should not be sent.' - }) - server.get(tarballPath).replyWithFile(200, tarball) -} - -test('setup', function (t) { - mr({ port: common.port, plugin: mocks }, function (er, s) { - server = s - t.ok(s, 'set up mock registry') - setup() - t.end() - }) -}) - -test('authed npm install with tarball not on registry', function (t) { - common.npm( - [ - 'install', - '--loglevel', 'silent', - '--json', - '--fetch-retries', 0, - '--userconfig', outfile - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'test runner executed without error') - t.equal(code, 0, 'npm install exited OK') - t.notOk(stderr, 'no output on stderr') - try { - var results = JSON.parse(stdout) - } catch (ex) { - console.error('#', ex) - t.ifError(ex, 'stdout was valid JSON') - } - - if (results) { - var installedversion = { - 'version': '1.3.1', - 'from': '>=1.3.1 <2', - 'resolved': 'http://lvh.me:1337/scoped-underscore/-/scoped-underscore-1.3.1.tgz' - } - t.isDeeply(results.dependencies['@scoped/underscore'], installedversion, '@scoped/underscore installed') - } - - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -var contents = '@scoped:registry=' + common.registry + '\n' + - toNerfDart(common.registry) + ':_authToken=0xabad1dea\n' - -var json = { - name: 'test-package-install', - version: '1.0.0' -} - -var shrinkwrap = { - name: 'test-package-install', - version: '1.0.0', - dependencies: { - '@scoped/underscore': { - resolved: tarballURL, - from: '>=1.3.1 <2', - version: '1.3.1' - } - } -} - -function setup () { - cleanup() - mkdirp.sync(modules) - writeFileSync(resolve(pkg, 'package.json'), JSON.stringify(json, null, 2) + '\n') - writeFileSync(outfile, contents) - writeFileSync( - resolve(pkg, 'npm-shrinkwrap.json'), - JSON.stringify(shrinkwrap, null, 2) + '\n' - ) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bin.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bin.js deleted file mode 100644 index 33320bc2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bin.js +++ /dev/null @@ -1,23 +0,0 @@ -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var common = require('../common-tap.js') -var opts = { cwd: __dirname } -var binDir = '../../node_modules/.bin' -var fixture = path.resolve(__dirname, binDir) - -test('setup', function (t) { - rimraf.sync(path.join(__dirname, 'node_modules')) - t.end() -}) - -test('npm bin', function (t) { - common.npm(['bin'], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'bin ran without issue') - t.notOk(stderr, 'should have no stderr') - t.equal(code, 0, 'exit ok') - var res = path.resolve(stdout) - t.equal(res, fixture + '\n') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-https-url-with-creds-package.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-https-url-with-creds-package.js deleted file mode 100644 index e5a4142e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-https-url-with-creds-package.js +++ /dev/null @@ -1,83 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'bitbucket-https-url-with-creds-package') - -var json = { - name: 'bitbucket-https-url-with-creds-package', - version: '0.0.0', - dependencies: { - 'private': 'git+https://user:pass@bitbucket.org/foo/private.git' - } -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('bitbucket-https-url-with-creds-package', function (t) { - var cloneUrls = [ - ['https://user:pass@bitbucket.org/foo/private.git', 'Bitbucket URLs with passwords try only that.'] - ] - - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args[0] !== 'clone') return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[3], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error()) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - npm.commands.install([], function (er) { - t.ok(er, 'mocked install failed as expected') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-https-url-with-creds.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-https-url-with-creds.js deleted file mode 100644 index 4e9d14d7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-https-url-with-creds.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'bitbucket-https-url-with-creds') - -var json = { - name: 'bitbucket-https-url-with-creds', - version: '0.0.0' -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('bitbucket-https-url-with-creds', function (t) { - var cloneUrls = [ - ['https://user:pass@bitbucket.org/foo/private.git', 'Bitbucket URLs with passwords try only that.'] - ] - - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args[0] !== 'clone') return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[3], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error('execFile mock fails on purpose')) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - npm.commands.install(['git+https://user:pass@bitbucket.org/foo/private.git'], function (er) { - t.ok(er, 'mocked install failed as expected') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-shortcut-package.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-shortcut-package.js deleted file mode 100644 index 69cfe6c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-shortcut-package.js +++ /dev/null @@ -1,84 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'bitbucket-shortcut-package') - -var json = { - name: 'bitbucket-shortcut-package', - version: '0.0.0', - dependencies: { - 'private': 'bitbucket:foo/private' - } -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('bitbucket-shortcut', function (t) { - var cloneUrls = [ - ['https://bitbucket.org/foo/private.git', 'Bitbucket shortcuts try HTTPS URLs first'], - ['git@bitbucket.org:foo/private.git', 'Bitbucket shortcuts try SSH second'] - ] - - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args[0] !== 'clone') return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[3], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error()) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - npm.commands.install([], function (er) { - t.ok(er, 'mocked install failed as expected') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-shortcut.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-shortcut.js deleted file mode 100644 index a9b60f8b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bitbucket-shortcut.js +++ /dev/null @@ -1,81 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'bitbucket-shortcut') - -var json = { - name: 'bitbucket-shortcut', - version: '0.0.0' -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('bitbucket-shortcut', function (t) { - var cloneUrls = [ - ['https://bitbucket.org/foo/private.git', 'Bitbucket shortcuts try HTTPS URLs first'], - ['git@bitbucket.org:foo/private.git', 'Bitbucket shortcuts try SSH second'] - ] - - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args[0] !== 'clone') return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[3], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error('execFile mock fails on purpose')) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - npm.commands.install(['bitbucket:foo/private'], function (er) { - t.ok(er, 'mocked install failed as expected') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bugs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bugs.js deleted file mode 100644 index 8b992fd7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bugs.js +++ /dev/null @@ -1,172 +0,0 @@ -var common = require('../common-tap.js') -common.pendIfWindows('not working because Windows and shebangs') - -var mr = require('npm-registry-mock') - -var test = require('tap').test -var rimraf = require('rimraf') -var fs = require('fs') -var path = require('path') -var join = path.join -var outFile = path.join(__dirname, '/_output') - -var opts = { cwd: __dirname } - -test('setup', function (t) { - var s = '#!/usr/bin/env bash\n' + - 'echo \"$@\" > ' + JSON.stringify(__dirname) + '/_output\n' - fs.writeFileSync(join(__dirname, '/_script.sh'), s, 'ascii') - fs.chmodSync(join(__dirname, '/_script.sh'), '0755') - t.pass('made script') - t.end() -}) - -test('npm bugs underscore', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm( - [ - 'bugs', 'underscore', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + join(__dirname, '/_script.sh') - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err, 'bugs ran without issue') - t.notOk(stderr, 'should have no stderr') - t.equal(code, 0, 'exit ok') - var res = fs.readFileSync(outFile, 'ascii') - s.close() - t.equal(res, 'https://github.com/jashkenas/underscore/issues\n') - rimraf.sync(outFile) - t.end() - } - ) - }) -}) - -test('npm bugs optimist - github (https://)', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm( - [ - 'bugs', 'optimist', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + join(__dirname, '/_script.sh') - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err, 'bugs ran without issue') - t.notOk(stderr, 'should have no stderr') - t.equal(code, 0, 'exit ok') - var res = fs.readFileSync(outFile, 'ascii') - s.close() - t.equal(res, 'https://github.com/substack/node-optimist/issues\n') - rimraf.sync(outFile) - t.end() - } - ) - }) -}) - -test('npm bugs npm-test-peer-deps - no repo', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm( - [ - 'bugs', 'npm-test-peer-deps', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + join(__dirname, '/_script.sh') - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err, 'bugs ran without issue') - t.notOk(stderr, 'should have no stderr') - t.equal(code, 0, 'exit ok') - var res = fs.readFileSync(outFile, 'ascii') - s.close() - t.equal(res, 'https://www.npmjs.org/package/npm-test-peer-deps\n') - rimraf.sync(outFile) - t.end() - } - ) - }) -}) - -test('npm bugs test-repo-url-http - non-github (http://)', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm( - [ - 'bugs', 'test-repo-url-http', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + join(__dirname, '/_script.sh') - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err, 'bugs ran without issue') - t.notOk(stderr, 'should have no stderr') - t.equal(code, 0, 'exit ok') - var res = fs.readFileSync(outFile, 'ascii') - s.close() - t.equal(res, 'https://www.npmjs.org/package/test-repo-url-http\n') - rimraf.sync(outFile) - t.end() - } - ) - }) -}) - -test('npm bugs test-repo-url-https - gitlab (https://)', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm( - [ - 'bugs', 'test-repo-url-https', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + join(__dirname, '/_script.sh') - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err, 'bugs ran without issue') - t.notOk(stderr, 'should have no stderr') - t.equal(code, 0, 'exit ok') - var res = fs.readFileSync(outFile, 'ascii') - s.close() - t.equal(res, 'https://gitlab.com/evanlucas/test-repo-url-https/issues\n') - rimraf.sync(outFile) - t.end() - } - ) - }) -}) - -test('npm bugs test-repo-url-ssh - gitlab (ssh://)', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm( - [ - 'bugs', 'test-repo-url-ssh', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + join(__dirname, '/_script.sh') - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err, 'bugs ran without issue') - t.notOk(stderr, 'should have no stderr') - t.equal(code, 0, 'exit ok') - var res = fs.readFileSync(outFile, 'ascii') - s.close() - t.equal(res, 'https://gitlab.com/evanlucas/test-repo-url-ssh/issues\n') - rimraf.sync(outFile) - t.end() - } - ) - }) -}) - -test('cleanup', function (t) { - fs.unlinkSync(join(__dirname, '/_script.sh')) - t.pass('cleaned up') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/build-already-built.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/build-already-built.js deleted file mode 100644 index 8a66f66e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/build-already-built.js +++ /dev/null @@ -1,78 +0,0 @@ -// if "npm rebuild" is run with bundled dependencies, -// message "already built" should not be error -var test = require('tap').test -var path = require('path') -var osenv = require('osenv') -var rimraf = require('rimraf') -var npmlog = require('npmlog') -var mkdirp = require('mkdirp') -var requireInject = require('require-inject') - -var npm = require('../../lib/npm.js') - -var PKG_DIR = path.resolve(__dirname, 'build-already-built') -var fakePkg = 'foo' - -test('setup', function (t) { - cleanup() - - t.end() -}) - -test("issue #6735 build 'already built' message", function (t) { - npm.load({ loglevel: 'warn' }, function () { - // capture log messages with level - var log = '' - npmlog.on('log', function (chunk) { - log += chunk.level + ' ' + chunk.message + '\n' - }) - - mkdirp.sync(fakePkg) - var folder = path.resolve(fakePkg) - - var global = npm.config.get('global') - - var build = requireInject('../../lib/build', { - }) - - t.test('pin previous behavior', function (t) { - build([fakePkg], global, false, false, function (err) { - t.ok(err, 'build failed as expected') - t.similar(err.message, /package.json/, 'missing package.json as expected') - t.notSimilar(log, /already built/, 'no already built message written') - - t.end() - }) - }) - - t.test('simulate rebuild of bundledDependency', function (t) { - log = '' - - build._didBuild[folder] = true - - build([fakePkg], global, false, false, function (err) { - t.ok(err, 'build failed as expected') - t.similar(err.message, /package.json/, 'missing package.json as expected') - - t.similar(log, /already built/, 'already built message written') - t.notSimilar(log, /ERR! already built/, 'already built message written is not error') - t.similar(log, /info already built/, 'already built message written is info') - - t.end() - }) - }) - - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(PKG_DIR) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/builtin-config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/builtin-config.js deleted file mode 100644 index 22a447c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/builtin-config.js +++ /dev/null @@ -1,136 +0,0 @@ -var fs = require('fs') - -if (process.argv[2] === 'write-builtin') { - var pid = process.argv[3] - fs.writeFileSync('npmrc', 'foo=bar\npid=' + pid + '\n') - process.exit(0) -} - -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var folder = path.resolve(__dirname, 'builtin-config') -var test = require('tap').test -var npm = path.resolve(__dirname, '../..') -var spawn = require('child_process').spawn -var node = common.nodeBin - -test('setup', function (t) { - t.plan(1) - rimraf.sync(folder) - mkdirp.sync(folder + '/first') - mkdirp.sync(folder + '/second') - mkdirp.sync(folder + '/cache') - mkdirp.sync(folder + '/tmp') - - t.pass('finished setup') - t.end() -}) - -test('install npm into first folder', function (t) { - t.plan(1) - var args = ['install', npm, '-g', - '--prefix=' + folder + '/first', - '--ignore-scripts', - '--cache=' + folder + '/cache', - '--tmp=' + folder + '/tmp', - '--loglevel=warn', - '--progress'] - common.npm(args, {}, function (er, code) { - if (er) throw er - t.equal(code, 0) - t.end() - }) -}) - -test('write npmrc file', function (t) { - t.plan(1) - common.npm(['explore', 'npm', '-g', - '--prefix=' + folder + '/first', - '--cache=' + folder + '/cache', - '--tmp=' + folder + '/tmp', - '--', node, __filename, 'write-builtin', process.pid - ], - {'stdio': 'inherit'}, - function (er, code) { - if (er) throw er - t.equal(code, 0) - t.end() - }) -}) - -test('use first npm to install second npm', function (t) { - t.plan(3) - // get the root location - common.npm( - [ - 'root', '-g', - '--prefix=' + folder + '/first', - '--cache=' + folder + '/cache', - '--tmp=' + folder + '/tmp' - ], - {}, - function (er, code, so) { - if (er) throw er - t.equal(code, 0, 'got npm root') - var root = so.trim() - t.ok(fs.statSync(root).isDirectory(), 'npm root is dir') - - var bin = path.resolve(root, 'npm/bin/npm-cli.js') - spawn( - node, - [ - bin, - 'install', npm, - '-g', - '--ignore-scripts', - '--prefix=' + folder + '/second', - '--cache=' + folder + '/cache', - '--tmp=' + folder + '/tmp' - ], - {} - ) - .on('error', function (er) { throw er }) - .on('close', function (code) { - t.equal(code, 0, 'second npm install') - t.end() - }) - } - ) -}) - -test('verify that the builtin config matches', function (t) { - t.plan(3) - common.npm([ 'root', '-g', - '--prefix=' + folder + '/first', - '--cache=' + folder + '/cache', - '--tmp=' + folder + '/tmp' - ], {}, - function (er, code, so) { - if (er) throw er - t.equal(code, 0) - var firstRoot = so.trim() - common.npm([ 'root', '-g', - '--prefix=' + folder + '/second', - '--cache=' + folder + '/cache', - '--tmp=' + folder + '/tmp' - ], {}, - function (er, code, so) { - if (er) throw er - t.equal(code, 0) - var secondRoot = so.trim() - var firstRc = path.resolve(firstRoot, 'npm', 'npmrc') - var secondRc = path.resolve(secondRoot, 'npm', 'npmrc') - var firstData = fs.readFileSync(firstRc, 'utf8').split(/\r?\n/) - var secondData = fs.readFileSync(secondRc, 'utf8').split(/\r?\n/) - t.isDeeply(firstData, secondData) - t.end() - }) - }) -}) - -test('clean', function (t) { - rimraf.sync(folder) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bundled-dependencies-no-pkgjson.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bundled-dependencies-no-pkgjson.js deleted file mode 100644 index 44eb47a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bundled-dependencies-no-pkgjson.js +++ /dev/null @@ -1,47 +0,0 @@ -var test = require('tap').test -var path = require('path') -var fs = require('graceful-fs') - -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var common = require('../common-tap.js') - -var dir = path.resolve(__dirname, 'bundled-dependencies-no-pkgjson') -var pkg = path.resolve(dir, 'pkg-with-bundled-dep') -var dep = path.resolve(pkg, 'node_modules', 'a-bundled-dep') - -var pkgJson = JSON.stringify({ - name: 'pkg-with-bundled-dep', - version: '1.0.0', - dependencies: { - }, - bundledDependencies: [ - 'a-bundled-dep' - ] -}, null, 2) + '\n' - -test('setup', function (t) { - mkdirp.sync(path.join(dir, 'node_modules')) - mkdirp.sync(dep) - - fs.writeFileSync(path.resolve(pkg, 'package.json'), pkgJson) - fs.writeFileSync(path.resolve(dep, 'index.js'), '') - t.end() -}) - -test('proper error on bundled dep with no package.json', function (t) { - t.plan(3) - var npmArgs = ['install', './' + path.basename(pkg)] - - common.npm(npmArgs, { cwd: dir }, function (err, code, stdout, stderr) { - t.ifError(err, 'npm ran without issue') - t.notEqual(code, 0) - t.like(stderr, /ENOENT/, 'ENOENT should be in stderr') - t.end() - }) -}) - -test('cleanup', function (t) { - rimraf.sync(dir) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bundled-dependencies-nonarray.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bundled-dependencies-nonarray.js deleted file mode 100644 index 2a082720..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/bundled-dependencies-nonarray.js +++ /dev/null @@ -1,71 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var dir = path.resolve(__dirname, 'bundleddependencies') -var pkg = path.resolve(dir, 'pkg-with-bundled') -var dep = path.resolve(dir, 'a-bundled-dep') - -var pj = JSON.stringify({ - name: 'pkg-with-bundled', - version: '1.0.0', - dependencies: { - 'a-bundled-dep': 'file:../a-bundled-dep' - }, - bundledDependencies: { - 'a-bundled-dep': 'file:../a-bundled-dep' - } -}, null, 2) + '\n' - -var pjDep = JSON.stringify({ - name: 'a-bundled-dep', - version: '2.0.0' -}, null, 2) + '\n' - -test('setup', function (t) { - bootstrap() - t.end() -}) - -test('errors on non-array bundleddependencies', function (t) { - t.plan(6) - common.npm(['install'], { cwd: pkg }, function (err, code, stdout, stderr) { - t.ifError(err, 'npm install ran without issue') - t.is(code, 0, 'exited with a non-error code') - t.is(stderr, '', 'no error output') - - common.npm(['install', './pkg-with-bundled'], { cwd: dir }, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm install ran without issue') - t.notEqual(code, 0, 'exited with a error code') - t.like(stderr, /be an array/, 'nice error output') - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function bootstrap () { - cleanup() - mkdirp.sync(dir) - mkdirp.sync(path.join(dir, 'node_modules')) - - mkdirp.sync(pkg) - fs.writeFileSync(path.resolve(pkg, 'package.json'), pj) - - mkdirp.sync(dep) - fs.writeFileSync(path.resolve(dep, 'package.json'), pjDep) -} - -function cleanup () { - rimraf.sync(dir) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-add-localdir-fallback.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-add-localdir-fallback.js deleted file mode 100644 index 2845d11e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-add-localdir-fallback.js +++ /dev/null @@ -1,84 +0,0 @@ -var path = require('path') -var test = require('tap').test -var npm = require('../../lib/npm.js') -var requireInject = require('require-inject') - -var realizePackageSpecifier = requireInject('realize-package-specifier', { - 'fs': { - stat: function (file, cb) { - process.nextTick(function () { - switch (file) { - case path.resolve('named'): - cb(new Error('ENOENT')) - break - case path.resolve('file.tgz'): - cb(null, { isDirectory: function () { return false } }) - break - case path.resolve('dir-no-package'): - cb(null, { isDirectory: function () { return true } }) - break - case path.resolve('dir-no-package/package.json'): - cb(new Error('ENOENT')) - break - case path.resolve('dir-with-package'): - cb(null, { isDirectory: function () { return true } }) - break - case path.resolve('dir-with-package/package.json'): - cb(null, {}) - break - case path.resolve(__dirname, 'dir-with-package'): - cb(null, { isDirectory: function () { return true } }) - break - case path.join(__dirname, 'dir-with-package', 'package.json'): - cb(null, {}) - break - case path.resolve(__dirname, 'file.tgz'): - cb(null, { isDirectory: function () { return false } }) - break - default: - throw new Error('Unknown test file passed to stat: ' + file) - } - }) - } - } -}) - -npm.load({ loglevel: 'silent' }, function () { - var cache = requireInject('../../lib/cache.js', { - 'realize-package-specifier': realizePackageSpecifier, - '../../lib/cache/add-named.js': function addNamed (name, version, data, cb) { - cb(null, 'addNamed') - }, - '../../lib/cache/add-local.js': function addLocal (name, data, cb) { - cb(null, 'addLocal') - } - }) - - test('npm install localdir fallback', function (t) { - t.plan(12) - cache.add('named', null, null, false, function (er, which) { - t.ifError(er, 'named was cached') - t.is(which, 'addNamed', 'registry package name') - }) - cache.add('file.tgz', null, null, false, function (er, which) { - t.ifError(er, 'file.tgz was cached') - t.is(which, 'addLocal', 'local file') - }) - cache.add('dir-no-package', null, null, false, function (er, which) { - t.ifError(er, 'local directory was cached') - t.is(which, 'addNamed', 'local directory w/o package.json') - }) - cache.add('dir-with-package', null, null, false, function (er, which) { - t.ifError(er, 'local directory with package was cached') - t.is(which, 'addLocal', 'local directory with package.json') - }) - cache.add('file:./dir-with-package', null, __dirname, false, function (er, which) { - t.ifError(er, 'local directory (as URI) with package was cached') - t.is(which, 'addLocal', 'file: URI to local directory with package.json') - }) - cache.add('file:./file.tgz', null, __dirname, false, function (er, which) { - t.ifError(er, 'local file (as URI) with package was cached') - t.is(which, 'addLocal', 'file: URI to local file with package.json') - }) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-add-unpublished.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-add-unpublished.js deleted file mode 100644 index 0d39ad81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-add-unpublished.js +++ /dev/null @@ -1,37 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test - -test('cache add', function (t) { - setup(function (er, s) { - if (er) { - throw er - } - common.npm( - [ - 'cache', - 'add', - 'superfoo', - '--registry=http://localhost:1337/' - ], - {}, - function (er, c, so, se) { - if (er) throw er - t.ok(c, 'got non-zero exit code') - t.equal(so, '', 'nothing printed to stdout') - t.similar(se, /404 Not Found: superfoo/, 'got expected error') - s.close() - t.end() - } - ) - }) -}) - -function setup (cb) { - var s = require('http').createServer(function (req, res) { - res.statusCode = 404 - res.end('{\"error\":\"not_found\"}\n') - }) - s.listen(1337, function () { - cb(null, s) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-ls-filenames.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-ls-filenames.js deleted file mode 100644 index c67bca25..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-ls-filenames.js +++ /dev/null @@ -1,51 +0,0 @@ -var t = require('tap') -var path = require('path') -var fs = require('fs') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var spawn = require('child_process').spawn -var npm = require.resolve('../../bin/npm-cli.js') -var dir = path.resolve(__dirname, 'cache-ls-filenames') -var node = process.execPath - -t.test('setup', function (t) { - rimraf.sync(dir) - mkdirp.sync(dir + '/a/b/c/d') - for (var i = 0; i < 5; i++) { - fs.writeFileSync(dir + '/file-' + i, 'x\n') - fs.writeFileSync(dir + '/a/b/file-' + i, 'x\n') - } - t.end() -}) - -function test (t, args) { - var child = spawn(node, [npm, 'cache', 'ls', '--cache=' + dir].concat(args)) - var out = '' - child.stdout.on('data', function (c) { - out += c - }) - child.on('close', function (code, signal) { - t.equal(code, 0) - t.equal(signal, null) - out.trim().split(/[\n\r]+/).map(function (filename) { - return filename.replace(/^~/, process.env.HOME) - }).forEach(function (file) { - // verify that all exist - t.ok(fs.existsSync(file), 'exists: ' + file) - }) - t.end() - }) -} - -t.test('without path arg', function (t) { - test(t, []) -}) - -t.test('with path arg', function (t) { - test(t, ['a']) -}) - -t.test('cleanup', function (t) { - rimraf.sync(dir) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-shasum-fork.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-shasum-fork.js deleted file mode 100644 index 01c2f68f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-shasum-fork.js +++ /dev/null @@ -1,104 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -// Install from a tarball that thinks it is underscore@1.5.1 -// (but is actually a fork) -var forkPath = path.resolve( - __dirname, '..', 'fixtures', 'forked-underscore-1.5.1.tgz' -) -var pkg = path.resolve(__dirname, 'cache-shasum-fork') -var cache = path.join(pkg, 'cache') -var server - -var installed_output = path.join(__dirname, 'cache-shasum-fork') + - '\n`-- underscore@1.5.1 \n\n' - -test('setup', function (t) { - setup() - t.comment('test for https://github.com/npm/npm/issues/3265') - mr({ port: common.port }, function (er, s) { - server = s - t.end() - }) -}) - -test('npm cache - install from fork', function (t) { - setup() - common.npm( - [ - '--loglevel', 'silent', - '--registry', common.registry, - 'install', forkPath - ], - { - cwd: pkg, - env: { npm_config_cache: cache } - }, - function (err, code, stdout, stderr) { - t.ifErr(err, 'install finished without error') - t.notOk(stderr, 'Should not get data on stderr: ' + stderr) - t.equal(code, 0, 'install finished successfully') - - t.equal(stdout, installed_output) - var index = fs.readFileSync( - path.join(pkg, 'node_modules', 'underscore', 'index.js'), - 'utf8' - ) - t.equal(index, 'console.log("This is the fork");\n\n') - t.end() - } - ) -}) - -// Now install the real 1.5.1. -test('npm cache - install from origin', function (t) { - setup() - common.npm( - [ - '--loglevel', 'silent', - '--registry', common.registry, - 'install', 'underscore' - ], - { - cwd: pkg, - env: { npm_config_cache: cache } - }, - function (err, code, stdout, stderr) { - t.ifErr(err, 'install finished without error') - t.equal(code, 0, 'install finished successfully') - t.notOk(stderr, 'Should not get data on stderr: ' + stderr) - t.equal(stdout, installed_output) - var index = fs.readFileSync( - path.join(pkg, 'node_modules', 'underscore', 'index.js'), - 'utf8' - ) - t.equal(index, 'module.exports = require(\'./underscore\');\n') - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup () { - mkdirp.sync(cache) - mkdirp.sync(path.join(pkg, 'node_modules')) - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-shasum.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-shasum.js deleted file mode 100644 index 40495c09..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cache-shasum.js +++ /dev/null @@ -1,50 +0,0 @@ -var test = require('tap').test -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var common = require('../common-tap.js') -var cache = path.resolve(__dirname, 'cache-shasum') -var sha = require('sha') -var server - -test('mock reg', function (t) { - rimraf.sync(cache) - mkdirp.sync(cache) - mr({ port: common.port }, function (er, s) { - server = s - t.pass('ok') - t.end() - }) -}) - -test('npm cache add request', function (t) { - common.npm([ - 'cache', 'add', 'request@2.27.0', - '--cache=' + cache, - '--registry=' + common.registry, - '--loglevel=error' - ], {}, function (err, code, stdout) { - if (err) throw err - t.is(code, 0, 'cmd ran without error') - t.is(stdout, '', 'should not get data on stdout') - t.end() - }) -}) - -test('compare', function (t) { - var d = path.resolve(__dirname, 'cache-shasum/request') - var p = path.resolve(d, '2.27.0/package.tgz') - var r = require('./cache-shasum/localhost_1337/request/.cache.json') - var rshasum = r.versions['2.27.0'].dist.shasum - sha.get(p, function (er, pshasum) { - if (er) throw er - t.equal(pshasum, rshasum) - t.end() - }) -}) - -test('cleanup', function (t) { - server.close() - rimraf(cache, t.end) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-cpu-reqs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-cpu-reqs.js deleted file mode 100644 index 4d8c3dc6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-cpu-reqs.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('fs') -var test = require('tap').test -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var common = require('../common-tap.js') - -var base = path.join(__dirname, path.basename(__filename, '.js')) -var installFrom = path.join(base, 'from') -var installIn = path.join(base, 'in') - -var json = { - name: 'check-cpu-reqs', - version: '0.0.1', - description: 'fixture', - cpu: ['fake-cpu'] -} - -test('setup', function (t) { - setup() - t.end() -}) - -var INSTALL_OPTS = ['--loglevel', 'silly'] -var EXEC_OPTS = {cwd: installIn} - -test('install bad cpu', function (t) { - common.npm(['install', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { - t.ifError(err, 'npm ran without issue') - t.is(code, 1, 'npm install refused to install a package in itself') - t.end() - }) -}) -test('force install bad cpu', function (t) { - common.npm(['install', '--force', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { - t.ifError(err, 'npm ran without issue') - t.is(code, 0, 'npm install happily installed a package in itself with --force') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(base) -} - -function setup () { - cleanup() - mkdirp.sync(path.resolve(installFrom, 'node_modules')) - fs.writeFileSync( - path.join(installFrom, 'package.json'), - JSON.stringify(json, null, 2) - ) - mkdirp.sync(path.resolve(installIn, 'node_modules')) - process.chdir(base) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-engine-reqs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-engine-reqs.js deleted file mode 100644 index 8dd9b823..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-engine-reqs.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('fs') -var test = require('tap').test -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var common = require('../common-tap.js') - -var base = path.join(__dirname, path.basename(__filename, '.js')) -var installFrom = path.join(base, 'from') -var installIn = path.join(base, 'in') - -var json = { - name: 'check-engine-reqs', - version: '0.0.1', - description: 'fixture', - engines: { - node: '1.0.0-not-a-real-version' - } -} - -test('setup', function (t) { - setup() - t.end() -}) - -var INSTALL_OPTS = ['--loglevel', 'silly'] -var EXEC_OPTS = {cwd: installIn} - -test('install bad engine', function (t) { - common.npm(['install', '--engine-strict', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { - t.ifError(err, 'npm ran without issue') - t.is(code, 1, 'npm install refused to install a package in itself') - t.end() - }) -}) -test('force install bad engine', function (t) { - common.npm(['install', '--engine-strict', '--force', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { - t.ifError(err, 'npm ran without issue') - t.is(code, 0, 'npm install happily installed a package in itself with --force') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(base) -} - -function setup () { - cleanup() - mkdirp.sync(path.resolve(installFrom, 'node_modules')) - fs.writeFileSync( - path.join(installFrom, 'package.json'), - JSON.stringify(json, null, 2) - ) - mkdirp.sync(path.resolve(installIn, 'node_modules')) - process.chdir(base) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-install-self.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-install-self.js deleted file mode 100644 index 821d8eb4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-install-self.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('fs') -var test = require('tap').test -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var common = require('../common-tap.js') - -var base = path.join(__dirname, path.basename(__filename, '.js')) -var installFrom = path.join(base, 'from') -var installIn = path.join(base, 'in') - -var json = { - name: 'check-install-self', - version: '0.0.1', - description: 'fixture' -} - -test('setup', function (t) { - setup() - t.end() -}) - -var INSTALL_OPTS = ['--loglevel', 'silent'] -var EXEC_OPTS = {cwd: installIn} - -test('install self', function (t) { - common.npm(['install', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { - t.ifError(err, 'npm ran without issue') - t.is(code, 1, 'npm install refused to install a package in itself') - t.end() - }) -}) -test('force install self', function (t) { - common.npm(['install', '--force', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { - t.ifError(err, 'npm ran without issue') - t.is(code, 0, 'npm install happily installed a package in itself with --force') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(base) -} - -function setup () { - cleanup() - mkdirp.sync(path.resolve(installFrom, 'node_modules')) - fs.writeFileSync( - path.join(installFrom, 'package.json'), - JSON.stringify(json, null, 2) - ) - mkdirp.sync(path.resolve(installIn, 'node_modules')) - fs.writeFileSync( - path.join(installIn, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(base) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-os-reqs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-os-reqs.js deleted file mode 100644 index 5d0c1ecf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-os-reqs.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('fs') -var test = require('tap').test -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var common = require('../common-tap.js') - -var base = path.join(__dirname, path.basename(__filename, '.js')) -var installFrom = path.join(base, 'from') -var installIn = path.join(base, 'in') - -var json = { - name: 'check-os-reqs', - version: '0.0.1', - description: 'fixture', - os: ['fake-os'] -} - -test('setup', function (t) { - setup() - t.end() -}) - -var INSTALL_OPTS = ['--loglevel', 'silly'] -var EXEC_OPTS = {cwd: installIn} - -test('install bad os', function (t) { - common.npm(['install', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { - t.ifError(err, 'npm ran without issue') - t.is(code, 1, 'npm install refused to install a package in itself') - t.end() - }) -}) -test('force install bad os', function (t) { - common.npm(['install', '--force', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { - t.ifError(err, 'npm ran without issue') - t.is(code, 0, 'npm install happily installed a package in itself with --force') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(base) -} - -function setup () { - cleanup() - mkdirp.sync(path.resolve(installFrom, 'node_modules')) - fs.writeFileSync( - path.join(installFrom, 'package.json'), - JSON.stringify(json, null, 2) - ) - mkdirp.sync(path.resolve(installIn, 'node_modules')) - process.chdir(base) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-permissions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-permissions.js deleted file mode 100644 index 0a5f2e03..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/check-permissions.js +++ /dev/null @@ -1,93 +0,0 @@ -'use strict' -var fs = require('fs') -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var writable = require('../../lib/install/writable.js').fsAccessImplementation -var writableFallback = require('../../lib/install/writable.js').fsOpenImplementation -var exists = require('../../lib/install/exists.js').fsAccessImplementation -var existsFallback = require('../../lib/install/exists.js').fsStatImplementation - -var testBase = path.resolve(__dirname, 'check-permissions') -var existingDir = path.resolve(testBase, 'exists') -var nonExistingDir = path.resolve(testBase, 'does-not-exist') -var writableDir = path.resolve(testBase, 'writable') -var nonWritableDir = path.resolve(testBase, 'non-writable') - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -test('exists', function (t) { - t.plan(2) - // fs.access first introduced in node 0.12 / io.js - if (fs.access) { - existsTests(t, exists) - } else { - t.pass('# skip fs.access not available in this version') - t.pass('# skip fs.access not available in this version') - } -}) - -test('exists-fallback', function (t) { - t.plan(2) - existsTests(t, existsFallback) -}) - -test('writable', function (t) { - t.plan(2) - // fs.access first introduced in node 0.12 / io.js - if (fs.access) { - writableTests(t, writable) - } else { - t.pass('# skip fs.access not available in this version') - t.pass('# skip fs.access not available in this version') - } -}) - -test('writable-fallback', function (t) { - t.plan(2) - writableTests(t, writableFallback) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - fs.mkdirSync(testBase) - fs.mkdirSync(existingDir) - fs.mkdirSync(writableDir) - fs.mkdirSync(nonWritableDir) - fs.chmodSync(nonWritableDir, '555') -} - -function existsTests (t, exists) { - exists(existingDir, function (er) { - t.error(er, 'exists dir is exists') - }) - exists(nonExistingDir, function (er) { - t.ok(er, 'non-existing dir resulted in an error') - }) -} - -function writableTests (t, writable) { - writable(writableDir, function (er) { - t.error(er, 'writable dir is writable') - }) - if (process.platform !== 'win32') { - // Windows folders cannot be set to be read-only. - writable(nonWritableDir, function (er) { - t.ok(er, 'non-writable dir resulted in an error') - }) - } else { - t.pass('windows folders cannot be read-only') - } -} - -function cleanup () { - rimraf.sync(testBase) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/circular-dep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/circular-dep.js deleted file mode 100644 index d7f66eac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/circular-dep.js +++ /dev/null @@ -1,102 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') -var existsSync = fs.existsSync || path.existsSync - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var server - -var pkg = path.resolve(__dirname, 'circular-dep') -var minimist = path.join(pkg, 'minimist') - -var EXEC_OPTS = { - cwd: path.join(pkg, 'minimist/node_modules'), - npm_config_cache: path.join(pkg, 'cache') -} - -var json = { - name: 'minimist', - version: '0.0.5', - dependencies: { - optimist: '0.6.0' - } -} - -test('setup', function (t) { - t.comment('test for https://github.com/npm/npm/issues/4312') - setup(function () { - t.end() - }) -}) - -test('installing a package that depends on the current package', function (t) { - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - 'install', 'optimist' - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm ran without issue') - t.notOk(code, 'npm ran without raising an error code') - t.notOk(stderr, 'no error output') - - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - 'dedupe' - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm ran without issue') - t.notOk(code, 'npm ran without raising an error code') - t.notOk(stderr, 'no error output') - - t.ok(existsSync(path.resolve( - minimist, - 'node_modules', 'optimist' - )), 'optimist in place') - t.ok(existsSync(path.resolve( - minimist, - 'node_modules', 'minimist' - )), 'circular dependency uncircled') - t.end() - } - ) - } - ) -}) - -test('cleanup', function (t) { - cleanup() - server.close() - t.end() -}) - -function setup (cb) { - cleanup() - mkdirp.sync(minimist) - fs.writeFileSync( - path.join(minimist, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(path.resolve(pkg, 'minimist')) - - fs.mkdirSync(path.resolve(pkg, 'minimist/node_modules')) - mr({ port: common.port }, function (er, s) { - server = s - cb() - }) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-basic.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-basic.js deleted file mode 100644 index cabfa243..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-basic.js +++ /dev/null @@ -1,90 +0,0 @@ -var test = require('tap').test -var npmconf = require('../../lib/config/core.js') -var common = require('./00-config-setup.js') -var path = require('path') - -var projectData = { - 'save-prefix': '~', - 'proprietary-attribs': false, - 'legacy-bundling': true -} - -var ucData = common.ucData -var envData = common.envData - -var gcData = { 'package-config:foo': 'boo' } - -var biData = {} - -var cli = { foo: 'bar', umask: parseInt('022', 8) } - -var expectNames = [ - 'cli', - 'envData', - 'projectData', - 'ucData', - 'gcData', - 'biData' -] -var expectList = [ - cli, - envData, - projectData, - ucData, - gcData, - biData -] - -var expectSources = { - cli: { data: cli }, - env: { - data: envData, - source: envData, - prefix: '' - }, - project: { - path: path.resolve(__dirname, '..', '..', '.npmrc'), - type: 'ini', - data: projectData - }, - user: { - path: common.userconfig, - type: 'ini', - data: ucData - }, - global: { - path: common.globalconfig, - type: 'ini', - data: gcData - }, - builtin: { data: biData } -} - -function isDeeplyDetails (t, aa, bb, msg, seen) { - if (aa == null && bb == null) return t.pass(msg) - if (typeof bb !== 'object') return t.is(aa, bb, msg) - if (!seen) seen = [] - for (var kk in seen) if (seen[kk] === aa || seen[kk] === bb) return - seen.push(aa, bb) - t.is(Object.keys(aa).length, Object.keys(bb).length, msg + ': # of elements') - Object.keys(bb).forEach(function (key) { - isDeeplyDetails(t, aa[key], bb[key], msg + ' -> ' + key, seen) - }) -} - -test('no builtin', function (t) { - t.comment(process.env) - npmconf.load(cli, function (er, conf) { - if (er) throw er - expectNames.forEach(function (name, ii) { - isDeeplyDetails(t, conf.list[ii], expectList[ii], 'config properities list: ' + name) - }) - isDeeplyDetails(t, conf.sources, expectSources, 'config by source') - t.same(npmconf.rootConf.list, [], 'root configuration is empty') - isDeeplyDetails(t, npmconf.rootConf.root, npmconf.defs.defaults, 'defaults') - isDeeplyDetails(t, conf.root, npmconf.defs.defaults, 'current root config is defaults') - t.is(conf.get('umask'), parseInt('022', 8), 'umask is as expected') - t.is(conf.get('heading'), 'npm', 'config name is as expected') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-builtin.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-builtin.js deleted file mode 100644 index cb1e4eb2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-builtin.js +++ /dev/null @@ -1,69 +0,0 @@ -var test = require('tap').test -var npmconf = require('../../lib/config/core.js') -var common = require('./00-config-setup.js') -var path = require('path') - -var ucData = common.ucData - -var envData = common.envData -var envDataFix = common.envDataFix - -var gcData = { 'package-config:foo': 'boo' } - -var biData = { 'builtin-config': true } - -var cli = { foo: 'bar', heading: 'foo', 'git-tag-version': false } - -var projectData = { - 'save-prefix': '~', - 'proprietary-attribs': false, - 'legacy-bundling': true -} - -var expectList = [ - cli, - envDataFix, - projectData, - ucData, - gcData, - biData -] - -var expectSources = { - cli: { data: cli }, - env: { - data: envDataFix, - source: envData, - prefix: '' - }, - project: { - path: path.resolve(__dirname, '..', '..', '.npmrc'), - type: 'ini', - data: projectData - }, - user: { - path: common.userconfig, - type: 'ini', - data: ucData - }, - global: { - path: common.globalconfig, - type: 'ini', - data: gcData - }, - builtin: { data: biData } -} - -test('with builtin', function (t) { - npmconf.load(cli, common.builtin, function (er, conf) { - if (er) throw er - t.same(conf.list, expectList) - t.same(conf.sources, expectSources) - t.same(npmconf.rootConf.list, []) - t.equal(npmconf.rootConf.root, npmconf.defs.defaults) - t.equal(conf.root, npmconf.defs.defaults) - t.equal(conf.get('heading'), 'foo') - t.equal(conf.get('git-tag-version'), false) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-certfile.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-certfile.js deleted file mode 100644 index 4b960672..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-certfile.js +++ /dev/null @@ -1,19 +0,0 @@ -require('./00-config-setup.js') - -var path = require('path') -var fs = require('fs') -var test = require('tap').test -var npmconf = require('../../lib/config/core.js') - -test('cafile loads as ca', function (t) { - var cafile = path.join(__dirname, '..', 'fixtures', 'config', 'multi-ca') - - npmconf.load({cafile: cafile}, function (er, conf) { - if (er) throw er - - t.same(conf.get('cafile'), cafile) - var ca = fs.readFileSync(cafile, 'utf8').trim() - t.same(conf.get('ca').join(ca.match(/\r/g) ? '\r\n' : '\n'), ca) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-credentials.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-credentials.js deleted file mode 100644 index f6f00ee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-credentials.js +++ /dev/null @@ -1,350 +0,0 @@ -var test = require('tap').test - -var npmconf = require('../../lib/config/core.js') -var common = require('./00-config-setup.js') - -var URI = 'https://registry.lvh.me:8661/' - -test('getting scope with no credentials set', function (t) { - npmconf.load({}, function (er, conf) { - t.ifError(er, 'configuration loaded') - - var basic = conf.getCredentialsByURI(URI) - t.equal(basic.scope, '//registry.lvh.me:8661/', 'nerfed URL extracted') - - t.end() - }) -}) - -test('trying to set credentials with no URI', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - t.throws(function () { - conf.setCredentialsByURI() - }, 'enforced missing URI') - - t.end() - }) -}) - -test('trying to clear credentials with no URI', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - t.throws(function () { - conf.clearCredentialsByURI() - }, 'enforced missing URI') - - t.end() - }) -}) - -test('set with missing credentials object', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - t.throws(function () { - conf.setCredentialsByURI(URI) - }, 'enforced missing credentials') - - t.end() - }) -}) - -test('set with empty credentials object', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - t.throws(function () { - conf.setCredentialsByURI(URI, {}) - }, 'enforced missing credentials') - - t.end() - }) -}) - -test('set with token', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - t.doesNotThrow(function () { - conf.setCredentialsByURI(URI, { token: 'simple-token' }) - }, 'needs only token') - - var expected = { - scope: '//registry.lvh.me:8661/', - token: 'simple-token', - username: undefined, - password: undefined, - email: undefined, - auth: undefined, - alwaysAuth: false - } - - t.same(conf.getCredentialsByURI(URI), expected, 'got bearer token and scope') - - t.end() - }) -}) - -test('clear with token', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - t.doesNotThrow(function () { - conf.setCredentialsByURI(URI, { token: 'simple-token' }) - }, 'needs only token') - - t.doesNotThrow(function () { - conf.clearCredentialsByURI(URI) - }, 'needs only URI') - - t.notOk(conf.getCredentialsByURI(URI).token, 'token all gone') - - t.end() - }) -}) - -test('set with missing username', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - var credentials = { - password: 'password', - email: 'ogd@aoaioxxysz.net' - } - - t.throws(function () { - conf.setCredentialsByURI(URI, credentials) - }, 'enforced missing email') - - t.end() - }) -}) - -test('set with missing password', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - var credentials = { - username: 'username', - email: 'ogd@aoaioxxysz.net' - } - - t.throws(function () { - conf.setCredentialsByURI(URI, credentials) - }, 'enforced missing email') - - t.end() - }) -}) - -test('set with missing email', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - var credentials = { - username: 'username', - password: 'password' - } - - t.throws(function () { - conf.setCredentialsByURI(URI, credentials) - }, 'enforced missing email') - - t.end() - }) -}) - -test('set with old-style credentials', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - var credentials = { - username: 'username', - password: 'password', - email: 'ogd@aoaioxxysz.net' - } - - t.doesNotThrow(function () { - conf.setCredentialsByURI(URI, credentials) - }, 'requires all of username, password, and email') - - var expected = { - scope: '//registry.lvh.me:8661/', - token: undefined, - username: 'username', - password: 'password', - email: 'ogd@aoaioxxysz.net', - auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', - alwaysAuth: false - } - - t.same(conf.getCredentialsByURI(URI), expected, 'got credentials') - - t.end() - }) -}) - -test('clear with old-style credentials', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - var credentials = { - username: 'username', - password: 'password', - email: 'ogd@aoaioxxysz.net' - } - - t.doesNotThrow(function () { - conf.setCredentialsByURI(URI, credentials) - }, 'requires all of username, password, and email') - - t.doesNotThrow(function () { - conf.clearCredentialsByURI(URI) - }, 'clearing only required URI') - - t.notOk(conf.getCredentialsByURI(URI).username, 'username cleared') - t.notOk(conf.getCredentialsByURI(URI).password, 'password cleared') - - t.end() - }) -}) - -test('get old-style credentials for default registry', function (t) { - npmconf.load(common.builtin, function (er, conf) { - var actual = conf.getCredentialsByURI(conf.get('registry')) - var expected = { - scope: '//registry.npmjs.org/', - token: undefined, - password: 'password', - username: 'username', - email: 'i@izs.me', - auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', - alwaysAuth: false - } - t.same(actual, expected) - t.end() - }) -}) - -test('set with always-auth enabled', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - var credentials = { - username: 'username', - password: 'password', - email: 'ogd@aoaioxxysz.net', - alwaysAuth: true - } - - conf.setCredentialsByURI(URI, credentials) - - var expected = { - scope: '//registry.lvh.me:8661/', - token: undefined, - username: 'username', - password: 'password', - email: 'ogd@aoaioxxysz.net', - auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', - alwaysAuth: true - } - - t.same(conf.getCredentialsByURI(URI), expected, 'got credentials') - - t.end() - }) -}) - -test('set with always-auth disabled', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - - var credentials = { - username: 'username', - password: 'password', - email: 'ogd@aoaioxxysz.net', - alwaysAuth: false - } - - conf.setCredentialsByURI(URI, credentials) - - var expected = { - scope: '//registry.lvh.me:8661/', - token: undefined, - username: 'username', - password: 'password', - email: 'ogd@aoaioxxysz.net', - auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', - alwaysAuth: false - } - - t.same(conf.getCredentialsByURI(URI), expected, 'got credentials') - - t.end() - }) -}) - -test('set with global always-auth enabled', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - var original = conf.get('always-auth') - conf.set('always-auth', true) - - var credentials = { - username: 'username', - password: 'password', - email: 'ogd@aoaioxxysz.net' - } - - conf.setCredentialsByURI(URI, credentials) - - var expected = { - scope: '//registry.lvh.me:8661/', - token: undefined, - username: 'username', - password: 'password', - email: 'ogd@aoaioxxysz.net', - auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', - alwaysAuth: true - } - - t.same(conf.getCredentialsByURI(URI), expected, 'got credentials') - - conf.set('always-auth', original) - t.end() - }) -}) - -test('set with global always-auth disabled', function (t) { - npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, 'configuration loaded') - var original = conf.get('always-auth') - conf.set('always-auth', false) - - var credentials = { - username: 'username', - password: 'password', - email: 'ogd@aoaioxxysz.net' - } - - conf.setCredentialsByURI(URI, credentials) - - var expected = { - scope: '//registry.lvh.me:8661/', - token: undefined, - username: 'username', - password: 'password', - email: 'ogd@aoaioxxysz.net', - auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', - alwaysAuth: false - } - - t.same(conf.getCredentialsByURI(URI), expected, 'got credentials') - - conf.set('always-auth', original) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-edit.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-edit.js deleted file mode 100644 index 7d6eb258..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-edit.js +++ /dev/null @@ -1,74 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'npm-global-edit') - -var editorSrc = function () { /* -#!/usr/bin/env node -var fs = require('fs') -if (fs.existsSync(process.argv[2])) { - console.log('success') -} else { - console.log('error') - process.exit(1) -} -*/ }.toString().split('\n').slice(1, -1).join('\n') -var editorPath = path.join(pkg, 'editor') - -test('setup', function (t) { - cleanup(function (er) { - t.ifError(er, 'old directory removed') - - mkdirp(pkg, '0777', function (er) { - fs.writeFileSync(editorPath, editorSrc) - fs.chmodSync(editorPath, '0777') - t.ifError(er, 'created package directory correctly') - t.end() - }) - }) -}) - -test('saving configs', function (t) { - var opts = { - cwd: pkg, - env: { - PATH: process.env.PATH, - // We rely on the cwd + relative path combo here because otherwise, - // this test will break if there's spaces in the editorPath - EDITOR: 'node editor' - } - } - common.npm( - [ - 'config', - '--prefix', pkg, - '--global', - 'edit' - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err, 'command ran without issue') - - t.equal(stderr, '', 'got nothing on stderr') - t.equal(code, 0, 'exit ok') - t.equal(stdout, 'success\n', 'got success message') - t.end() - } - ) -}) - -test('cleanup', function (t) { - cleanup(function (er) { - t.ifError(er, 'test directory removed OK') - t.end() - }) -}) - -function cleanup (cb) { - rimraf(pkg, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-list.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-list.js deleted file mode 100644 index 1c42b64c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-list.js +++ /dev/null @@ -1,43 +0,0 @@ -var fs = require('fs') -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'config-list') -var opts = { cwd: pkg } -var npmrc = path.resolve(pkg, '.npmrc') - -test('setup', function (t) { - rimraf.sync(pkg) - mkdirp.sync(pkg) - t.end() -}) - -test('config list includes project config', function (t) { - // Write per-project conf file - fs.writeFileSync(npmrc, 'foo=1234', 'utf8') - - // Create empty package.json to indicate project root - fs.writeFileSync(path.resolve(pkg, 'package.json'), '{}', 'utf8') - - common.npm( - ['config', 'list'], - opts, - function (err, code, stdout, stderr) { - t.ifError(err) - t.equal(stderr, '', 'stderr is empty') - var expected = '; project config ' + npmrc + '\nfoo = "1234"' - t.match(stdout, expected, 'contains project config') - t.end() - } - ) -}) - -// TODO: test cases for other configuration types (cli, env, user, global) - -test('clean', function (t) { - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-malformed.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-malformed.js deleted file mode 100644 index 4f74ea53..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-malformed.js +++ /dev/null @@ -1,14 +0,0 @@ -var test = require('tap').test - -var npmconf = require('../../lib/config/core.js') -var common = require('./00-config-setup.js') - -test('with malformed', function (t) { - npmconf.load({}, common.malformed, function (er, conf) { - t.ok(er, 'Expected parse error') - if (!(er && /Failed parsing JSON config key email/.test(er.message))) { - throw er - } - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-meta.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-meta.js deleted file mode 100644 index bb40e203..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-meta.js +++ /dev/null @@ -1,131 +0,0 @@ -// this is a weird meta test. It verifies that all the instances of -// `npm.config.get(...)` are: -// a) Simple strings, and not variables -// b) Documented -// c) Defined in the `npmconf` package. - -var test = require('tap').test -var fs = require('fs') -var path = require('path') -var root = path.resolve(__dirname, '..', '..') -var lib = path.resolve(root, 'lib') -var nm = path.resolve(root, 'node_modules') -var doc = path.resolve(root, 'doc/misc/npm-config.md') -var FILES = [] -var CONFS = {} -var DOC = {} - -var exceptions = [ - path.resolve(lib, 'adduser.js'), - path.resolve(lib, 'config.js'), - path.resolve(lib, 'publish.js'), - path.resolve(lib, 'utils', 'lifecycle.js'), - path.resolve(lib, 'utils', 'map-to-registry.js'), - path.resolve(nm, 'npm-registry-client', 'lib', 'publish.js'), - path.resolve(nm, 'npm-registry-client', 'lib', 'request.js') -] - -test('get files', function (t) { - walk(nm) - walk(lib) - t.pass('got files') - t.end() - - function walk (lib) { - var files = fs.readdirSync(lib).map(function (f) { - return path.resolve(lib, f) - }) - files.forEach(function (f) { - try { - var s = fs.lstatSync(f) - } catch (er) { - return - } - if (s.isDirectory()) { - walk(f) - } else if (f.match(/\.js$/)) { - FILES.push(f) - } - }) - } -}) - -test('get lines', function (t) { - FILES.forEach(function (f) { - var lines = fs.readFileSync(f, 'utf8').split(/\r|\n/) - lines.forEach(function (l, i) { - var matches = l.split(/conf(?:ig)?\.get\(/g) - matches.shift() - matches.forEach(function (m) { - m = m.split(')').shift() - var literal = m.match(/^[''].+?['']/) - if (literal) { - m = literal[0].slice(1, -1) - if (!m.match(/^\_/) && m !== 'argv') { - CONFS[m] = { - file: f, - line: i - } - } - } else if (exceptions.indexOf(f) === -1) { - t.fail('non-string-literal config used in ' + f + ':' + i) - } - }) - }) - }) - t.pass('got lines') - t.end() -}) - -test('get docs', function (t) { - var d = fs.readFileSync(doc, 'utf8').split(/\r|\n/) - // walk down until the '## Config Settings' section - for (var i = 0; i < d.length && d[i] !== '## Config Settings'; i++); - i++ - // now gather up all the ^###\s lines until the next ^##\s - for (; i < d.length && !d[i].match(/^## /); i++) { - if (d[i].match(/^### /)) { - DOC[ d[i].replace(/^### /, '').trim() ] = true - } - } - t.pass('read the docs') - t.end() -}) - -test('check configs', function (t) { - var defs = require('../../lib/config/defaults.js') - var types = Object.keys(defs.types) - var defaults = Object.keys(defs.defaults) - for (var c1 in CONFS) { - if (CONFS[c1].file.indexOf(lib) === 0) { - t.ok(DOC[c1], 'should be documented ' + c1 + ' ' + - CONFS[c1].file + ':' + CONFS[c1].line) - t.ok(types.indexOf(c1) !== -1, 'should be defined in npmconf ' + c1) - t.ok(defaults.indexOf(c1) !== -1, 'should have default in npmconf ' + c1) - } - } - - for (var c2 in DOC) { - if (c2 !== 'versions' && c2 !== 'version' && c2 !== 'init.version') { - t.ok(CONFS[c2], 'config in doc should be used somewhere ' + c2) - t.ok(types.indexOf(c2) !== -1, 'should be defined in npmconf ' + c2) - t.ok(defaults.indexOf(c2) !== -1, 'should have default in npmconf ' + c2) - } - } - - types.forEach(function (c) { - if (!c.match(/^\_/) && c !== 'argv' && !c.match(/^versions?$/)) { - t.ok(DOC[c], 'defined type should be documented ' + c) - t.ok(CONFS[c], 'defined type should be used ' + c) - } - }) - - defaults.forEach(function (c) { - if (!c.match(/^\_/) && c !== 'argv' && !c.match(/^versions?$/)) { - t.ok(DOC[c], 'defaulted type should be documented ' + c) - t.ok(CONFS[c], 'defaulted type should be used ' + c) - } - }) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-new-cafile.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-new-cafile.js deleted file mode 100644 index 9cffb190..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-new-cafile.js +++ /dev/null @@ -1,56 +0,0 @@ -require('./00-config-setup.js') - -var path = require('path') -var fs = require('graceful-fs') -var test = require('tap').test -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var osenv = require('osenv') -var npmconf = require('../../lib/config/core.js') - -var dir = path.resolve(__dirname, 'config-new-cafile') -var beep = path.resolve(dir, 'beep.pem') - -test('setup', function (t) { - bootstrap() - t.end() -}) - -test('can set new cafile when old is gone', function (t) { - t.plan(5) - npmconf.load(function (error, conf) { - npmconf.loaded = false - t.ifError(error) - conf.set('cafile', beep, 'user') - conf.save('user', function (error) { - t.ifError(error) - t.equal(conf.get('cafile'), beep) - rimraf.sync(beep) - npmconf.load(function (error, conf) { - if (error) { - throw error - } - t.equal(conf.get('cafile'), beep) - conf.del('cafile') - conf.save('user', function (error) { - t.ifError(error) - }) - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function bootstrap () { - mkdirp.sync(dir) - fs.writeFileSync(beep, '') -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(dir) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-private.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-private.js deleted file mode 100644 index 91582921..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-private.js +++ /dev/null @@ -1,83 +0,0 @@ -var fs = require('fs') -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'config-private') -var opts = { cwd: pkg } - -test('setup', function (t) { - rimraf.sync(pkg) - mkdirp.sync(pkg) - t.end() -}) - -test('config get private var (old auth)', function (t) { - common.npm( - [ - 'config', - 'get', - '_auth' - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err) - - t.similar(stderr, /sekretz/, 'password blocked on stderr') - t.equal(stdout, '', 'no output') - t.end() - } - ) -}) - -test('config get private var (new auth)', function (t) { - common.npm( - [ - 'config', - 'get', - '//registry.npmjs.org/:_password' - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err) - - t.similar(stderr, /sekretz/, 'password blocked on stderr') - t.equal(stdout, '', 'no output') - t.end() - } - ) -}) - -test('config get public var (new username)', function (t) { - var FIXTURE_PATH = path.resolve(pkg, 'fixture_npmrc') - var s = '//registry.lvh.me/:username = wombat\n' + - '//registry.lvh.me/:_password = YmFkIHBhc3N3b3Jk\n' + - '//registry.lvh.me/:email = lindsay@wdu.org.au\n' - fs.writeFileSync(FIXTURE_PATH, s, 'ascii') - fs.chmodSync(FIXTURE_PATH, '0444') - - common.npm( - [ - 'config', - 'get', - '//registry.lvh.me/:username', - '--userconfig=' + FIXTURE_PATH, - '--registry=http://registry.lvh.me/' - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err) - - t.equal(stderr, '', 'stderr is empty') - t.equal(stdout, 'wombat\n', 'got usename is output') - t.end() - } - ) -}) - -test('clean', function (t) { - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-project.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-project.js deleted file mode 100644 index b9e8b7ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-project.js +++ /dev/null @@ -1,66 +0,0 @@ -var test = require('tap').test -var path = require('path') -var fix = path.resolve(__dirname, '..', 'fixtures', 'config') -var projectRc = path.resolve(fix, '.npmrc') -var npmconf = require('../../lib/config/core.js') -var common = require('./00-config-setup.js') - -var projectData = { just: 'testing' } - -var ucData = common.ucData -var envData = common.envData -var envDataFix = common.envDataFix - -var gcData = { 'package-config:foo': 'boo' } - -var biData = {} - -var cli = { foo: 'bar', umask: parseInt('022', 8), prefix: fix } - -var expectList = [ - cli, - envDataFix, - projectData, - ucData, - gcData, - biData -] - -var expectSources = { - cli: { data: cli }, - env: { - data: envDataFix, - source: envData, - prefix: '' - }, - project: { - path: projectRc, - type: 'ini', - data: projectData - }, - user: { - path: common.userconfig, - type: 'ini', - data: ucData - }, - global: { - path: common.globalconfig, - type: 'ini', - data: gcData - }, - builtin: { data: biData } -} - -test('no builtin', function (t) { - npmconf.load(cli, function (er, conf) { - if (er) throw er - t.same(conf.list, expectList) - t.same(conf.sources, expectSources) - t.same(npmconf.rootConf.list, []) - t.equal(npmconf.rootConf.root, npmconf.defs.defaults) - t.equal(conf.root, npmconf.defs.defaults) - t.equal(conf.get('umask'), parseInt('022', 8)) - t.equal(conf.get('heading'), 'npm') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-save.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-save.js deleted file mode 100644 index 903bac7a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/config-save.js +++ /dev/null @@ -1,87 +0,0 @@ -var fs = require('fs') -var ini = require('ini') -var test = require('tap').test -var npmconf = require('../../lib/config/core.js') -var common = require('./00-config-setup.js') - -var expectConf = [ - 'globalconfig = ' + common.globalconfig, - 'email = i@izs.me', - 'env-thing = asdf', - 'init.author.name = Isaac Z. Schlueter', - 'init.author.email = i@izs.me', - 'init.author.url = http://blog.izs.me/', - 'init.version = 1.2.3', - 'proprietary-attribs = false', - 'npm:publishtest = true', - '_npmjs.org:couch = https://admin:password@localhost:5984/registry', - 'npm-www:nocache = 1', - 'sign-git-tag = false', - 'message = v%s', - 'strict-ssl = false', - '_auth = dXNlcm5hbWU6cGFzc3dvcmQ=', - '', - '[_token]', - 'AuthSession = yabba-dabba-doodle', - 'version = 1', - 'expires = 1345001053415', - 'path = /', - 'httponly = true', - '' -].join('\n') - -var expectFile = [ - 'globalconfig = ' + common.globalconfig, - 'email = i@izs.me', - 'env-thing = asdf', - 'init.author.name = Isaac Z. Schlueter', - 'init.author.email = i@izs.me', - 'init.author.url = http://blog.izs.me/', - 'init.version = 1.2.3', - 'proprietary-attribs = false', - 'npm:publishtest = true', - '_npmjs.org:couch = https://admin:password@localhost:5984/registry', - 'npm-www:nocache = 1', - 'sign-git-tag = false', - 'message = v%s', - 'strict-ssl = false', - '_auth = dXNlcm5hbWU6cGFzc3dvcmQ=', - '', - '[_token]', - 'AuthSession = yabba-dabba-doodle', - 'version = 1', - 'expires = 1345001053415', - 'path = /', - 'httponly = true', - '' -].join('\n') - -test('saving configs', function (t) { - npmconf.load(function (er, conf) { - if (er) throw er - - conf.set('sign-git-tag', false, 'user') - conf.del('nodedir') - conf.del('tmp') - var foundConf = ini.stringify(conf.sources.user.data) - t.same(ini.parse(foundConf), ini.parse(expectConf)) - fs.unlinkSync(common.userconfig) - conf.save('user', function (er) { - if (er) throw er - - var uc = fs.readFileSync(conf.get('userconfig'), 'utf8') - t.same(ini.parse(uc), ini.parse(expectFile)) - t.end() - }) - }) -}) - -test('setting prefix', function (t) { - npmconf.load(function (er, conf) { - if (er) throw er - - conf.prefix = 'newvalue' - t.same(conf.prefix, 'newvalue') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/correct-mkdir.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/correct-mkdir.js deleted file mode 100644 index 4bfc6b1c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/correct-mkdir.js +++ /dev/null @@ -1,58 +0,0 @@ -var test = require('tap').test -var assert = require('assert') -var path = require('path') -var requireInject = require('require-inject') -var cache_dir = path.resolve(__dirname, 'correct-mkdir') - -test('correct-mkdir: no race conditions', function (t) { - var mock_fs = {} - var did_hook = false - mock_fs.stat = function (path, cb) { - if (path === cache_dir) { - // Return a non-matching owner - cb(null, { - uid: +process.uid + 1, - isDirectory: function () { - return true - } - }) - if (!did_hook) { - did_hook = true - doHook() - } - } else { - assert.ok(false, 'Unhandled stat path: ' + path) - } - } - var chown_in_progress = 0 - var mock_chownr = function (path, uid, gid, cb) { - ++chown_in_progress - process.nextTick(function () { - --chown_in_progress - cb(null) - }) - } - var mocks = { - 'graceful-fs': mock_fs, - 'chownr': mock_chownr - } - var correctMkdir = requireInject('../../lib/utils/correct-mkdir.js', mocks) - - var calls_in_progress = 3 - function handleCallFinish () { - t.equal(chown_in_progress, 0, 'should not return while chown still in progress') - if (!--calls_in_progress) { - t.end() - } - } - function doHook () { - // This is fired during the first correctMkdir call, after the stat has finished - // but before the chownr has finished - // Buggy old code will fail and return a cached value before initial call is done - correctMkdir(cache_dir, handleCallFinish) - } - // Initial call - correctMkdir(cache_dir, handleCallFinish) - // Immediate call again in case of race condition there - correctMkdir(cache_dir, handleCallFinish) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cruft-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cruft-test.js deleted file mode 100644 index 0cbcc6f5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/cruft-test.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') -var mkdirpSync = require('mkdirp').sync -var rimraf = require('rimraf') -var test = require('tap').test -var common = require('../common-tap.js') - -var base = path.join(__dirname, path.basename(__filename, '.js')) -var cruft = path.join(base, 'node_modules', 'cruuuft') -var pkg = { - name: 'example', - version: '1.0.0', - dependencies: {} -} - -function setup () { - mkdirpSync(path.dirname(cruft)) - fs.writeFileSync(cruft, 'this is some cruft for sure') - fs.writeFileSync(path.join(base, 'package.json'), JSON.stringify(pkg)) -} - -function cleanup () { - rimraf.sync(base) -} - -test('setup', function (t) { - cleanup() - setup() - t.done() -}) - -test('cruft', function (t) { - common.npm(['ls'], {cwd: base}, function (er, code, stdout, stderr) { - t.is(stderr, '', 'no warnings or errors from ls') - t.done() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.done() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/dedupe-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/dedupe-scoped.js deleted file mode 100644 index bcd52042..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/dedupe-scoped.js +++ /dev/null @@ -1,145 +0,0 @@ -var fs = require('fs') -var join = require('path').join - -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var pkg = join(__dirname, 'dedupe-scoped') -var modules = join(pkg, 'node_modules') - -var EXEC_OPTS = { cwd: pkg } - -var body = [ - '@scope/shared@2.1.6 node_modules/first/node_modules/@scope/shared -> node_modules/@scope/shared', - 'firstUnique@0.6.0 node_modules/first/node_modules/firstUnique -> node_modules/firstUnique', - 'secondUnique@1.2.0 node_modules/second/node_modules/secondUnique -> node_modules/secondUnique', - '- @scope/shared@2.1.6 node_modules/second/node_modules/@scope/shared' -] - -var deduper = { - 'name': 'dedupe', - 'version': '0.0.0', - 'dependencies': { - 'first': '1.0.0', - 'second': '2.0.0' - } -} - -var first = { - 'name': 'first', - 'version': '1.0.0', - 'dependencies': { - 'firstUnique': '0.6.0', - '@scope/shared': '2.1.6' - } -} - -var second = { - 'name': 'second', - 'version': '2.0.0', - 'dependencies': { - 'secondUnique': '1.2.0', - '@scope/shared': '2.1.6' - } -} - -var shared = { - 'name': '@scope/shared', - 'version': '2.1.6' -} - -var firstUnique = { - 'name': 'firstUnique', - 'version': '0.6.0' -} - -var secondUnique = { - 'name': 'secondUnique', - 'version': '1.2.0' -} - -test('setup', function (t) { - setup() - t.end() -}) - -// we like the cars -function ltrimm (l) { return l.trim() } - -test('dedupe finds the common scoped modules and moves it up one level', function (t) { - common.npm( - [ - 'find-dupes' // I actually found a use for this command! - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'successful dry run against fake install') - t.notOk(code, 'npm ran without issue') - t.notOk(stderr, 'npm printed no errors') - t.same( - stdout.trim().replace(/\\/g, '/').split('\n').map(ltrimm), - body.map(ltrimm), - 'got expected output' - ) - - t.end() - } - ) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup (cb) { - cleanup() - - mkdirp.sync(pkg) - fs.writeFileSync( - join(pkg, 'package.json'), - JSON.stringify(deduper, null, 2) - ) - - mkdirp.sync(join(modules, 'first')) - fs.writeFileSync( - join(modules, 'first', 'package.json'), - JSON.stringify(first, null, 2) - ) - - mkdirp.sync(join(modules, 'first', 'node_modules', 'firstUnique')) - fs.writeFileSync( - join(modules, 'first', 'node_modules', 'firstUnique', 'package.json'), - JSON.stringify(firstUnique, null, 2) - ) - - mkdirp.sync(join(modules, 'first', 'node_modules', '@scope', 'shared')) - fs.writeFileSync( - join(modules, 'first', 'node_modules', '@scope', 'shared', 'package.json'), - JSON.stringify(shared, null, 2) - ) - - mkdirp.sync(join(modules, 'second')) - fs.writeFileSync( - join(modules, 'second', 'package.json'), - JSON.stringify(second, null, 2) - ) - - mkdirp.sync(join(modules, 'second', 'node_modules', 'secondUnique')) - fs.writeFileSync( - join(modules, 'second', 'node_modules', 'secondUnique', 'package.json'), - JSON.stringify(secondUnique, null, 2) - ) - - mkdirp.sync(join(modules, 'second', 'node_modules', '@scope', 'shared')) - fs.writeFileSync( - join(modules, 'second', 'node_modules', '@scope', 'shared', 'package.json'), - JSON.stringify(shared, null, 2) - ) -} - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/dedupe.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/dedupe.js deleted file mode 100644 index bdda3474..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/dedupe.js +++ /dev/null @@ -1,121 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') -var existsSync = fs.existsSync || path.existsSync - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var server - -var pkg = path.join(__dirname, 'dedupe') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - author: 'Dedupe tester', - name: 'dedupe', - version: '0.0.0', - dependencies: { - optimist: '0.6.0', - clean: '2.1.6' - } -} - -var shrinkwrap = { - name: 'dedupe', - version: '0.0.0', - dependencies: { - clean: { - version: '2.1.6', - dependencies: { - checker: { - version: '0.5.2', - dependencies: { - async: { version: '0.2.10' } - } - }, - minimist: { version: '0.0.5' } - } - }, - optimist: { - version: '0.6.0', - dependencies: { - wordwrap: { version: '0.0.2' }, - minimist: { version: '0.0.5' } - } - } - } -} - -test('setup', function (t) { - t.comment('test for https://github.com/npm/npm/issues/4675') - setup(function () { - t.end() - }) -}) - -test('dedupe finds the common module and moves it up one level', function (t) { - common.npm([ - '--registry', common.registry, - 'install', '.' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'successfully installed directory') - t.equal(code, 0, 'npm install exited with code') - common.npm( - [ - 'dedupe' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'successfully deduped against previous install') - t.notOk(code, 'npm dedupe exited with code') - - t.ok(existsSync(path.join(pkg, 'node_modules', 'minimist')), 'minimist module exists') - t.notOk( - existsSync(path.join(pkg, 'node_modules', 'clean', 'node_modules', 'minimist')), - 'no clean/minimist' - ) - t.notOk( - existsSync(path.join(pkg, 'node_modules', 'optimist', 'node_modules', 'minimist')), - 'no optmist/minimist' - ) - t.end() - } - ) - }) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} - -function setup (cb) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - fs.writeFileSync( - path.join(pkg, 'npm-shrinkwrap.json'), - JSON.stringify(shrinkwrap, null, 2) - ) - process.chdir(pkg) - - mr({ port: common.port }, function (er, s) { - server = s - cb() - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/deprecate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/deprecate.js deleted file mode 100644 index 987acb80..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/deprecate.js +++ /dev/null @@ -1,157 +0,0 @@ -var mr = require('npm-registry-mock') - -var test = require('tap').test -var common = require('../common-tap.js') - -var server - -var cache = { - '_id': 'cond', - '_rev': '19-d458a706de1740662cd7728d7d7ddf07', - 'name': 'cond', - 'time': { - 'modified': '2015-02-13T07:33:58.120Z', - 'created': '2014-03-16T20:52:52.236Z', - '0.0.0': '2014-03-16T20:52:52.236Z', - '0.0.1': '2014-03-16T21:12:33.393Z', - '0.0.2': '2014-03-16T21:15:25.430Z' - }, - 'versions': { - '0.0.0': {}, - '0.0.1': {}, - '0.0.2': {} - }, - 'dist-tags': { - 'latest': '0.0.2' - }, - 'description': 'Restartable error handling system', - 'license': 'CC0' -} - -test('setup', function (t) { - mr({port: common.port}, function (err, s) { - t.ifError(err, 'registry mocked successfully') - server = s - t.ok(true) - t.end() - }) -}) - -test('npm deprecate an unscoped package', function (t) { - var deprecated = JSON.parse(JSON.stringify(cache)) - deprecated.versions = { - '0.0.0': {}, - '0.0.1': { deprecated: 'make it dead' }, - '0.0.2': {} - } - server.get('/cond?write=true').reply(200, cache) - server.put('/cond', deprecated).reply(201, { deprecated: true }) - common.npm([ - 'deprecate', - 'cond@0.0.1', - 'make it dead', - '--registry', common.registry, - '--loglevel', 'silent' - ], {}, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm deprecate') - t.equal(stderr, '', 'no error output') - t.equal(code, 0, 'exited OK') - t.end() - }) -}) - -test('npm deprecate a scoped package', function (t) { - var cacheCopy = JSON.parse(JSON.stringify(cache)) - cacheCopy.name = '@scope/cond' - cacheCopy._id = '@scope/cond' - var deprecated = JSON.parse(JSON.stringify(cacheCopy)) - deprecated.versions = { - '0.0.0': {}, - '0.0.1': { deprecated: 'make it dead' }, - '0.0.2': {} - } - server.get('/@scope%2fcond?write=true').reply(200, cacheCopy) - server.put('/@scope%2fcond', deprecated).reply(201, { deprecated: true }) - common.npm([ - 'deprecate', - '@scope/cond@0.0.1', - 'make it dead', - '--registry', common.registry, - '--loglevel', 'silent' - ], {}, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm deprecate') - t.equal(stderr, '', 'no error output') - t.equal(code, 0, 'exited OK') - t.end() - }) -}) - -test('npm deprecate semver range', function (t) { - var deprecated = JSON.parse(JSON.stringify(cache)) - deprecated.versions = { - '0.0.0': { deprecated: 'make it dead' }, - '0.0.1': { deprecated: 'make it dead' }, - '0.0.2': {} - } - server.get('/cond?write=true').reply(200, cache) - server.put('/cond', deprecated).reply(201, { deprecated: true }) - common.npm([ - 'deprecate', - 'cond@<0.0.2', - 'make it dead', - '--registry', common.registry, - '--loglevel', 'silent' - ], {}, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm deprecate') - t.equal(stderr, '', 'no error output') - t.equal(code, 0, 'exited OK') - t.end() - }) -}) - -test('npm deprecate bad semver range', function (t) { - common.npm([ - 'deprecate', - 'cond@-9001', - 'make it dead', - '--registry', common.registry - ], {}, - function (er, code, stdout, stderr) { - t.equal(code, 1, 'errored') - t.match(stderr, /invalid version range/, 'bad semver') - t.end() - }) -}) - -test('npm deprecate a package with no semver range', function (t) { - var deprecated = JSON.parse(JSON.stringify(cache)) - deprecated.versions = { - '0.0.0': { deprecated: 'make it dead' }, - '0.0.1': { deprecated: 'make it dead' }, - '0.0.2': { deprecated: 'make it dead' } - } - server.get('/cond?write=true').reply(200, cache) - server.put('/cond', deprecated).reply(201, { deprecated: true }) - common.npm([ - 'deprecate', - 'cond', - 'make it dead', - '--registry', common.registry, - '--loglevel', 'silent' - ], {}, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm deprecate') - t.equal(stderr, '', 'no error output') - t.equal(code, 0, 'exited OK') - t.end() - }) -}) - -test('cleanup', function (t) { - server.close() - t.ok(true) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/dist-tag.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/dist-tag.js deleted file mode 100644 index 62ecab2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/dist-tag.js +++ /dev/null @@ -1,195 +0,0 @@ -var fs = require('fs') -var path = require('path') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var mr = require('npm-registry-mock') - -var test = require('tap').test -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'dist-tag') -var server - -var scoped = { - name: '@scoped/pkg', - version: '1.1.1' -} - -function mocks (server) { - // ls current package - server.get('/-/package/@scoped%2fpkg/dist-tags') - .reply(200, { latest: '1.0.0', a: '0.0.1', b: '0.5.0' }) - - // ls named package - server.get('/-/package/@scoped%2fanother/dist-tags') - .reply(200, { latest: '2.0.0', a: '0.0.2', b: '0.6.0' }) - - // add c - server.get('/-/package/@scoped%2fanother/dist-tags') - .reply(200, { latest: '2.0.0', a: '0.0.2', b: '0.6.0' }) - server.put('/-/package/@scoped%2fanother/dist-tags/c', '\"7.7.7\"') - .reply(200, { latest: '7.7.7', a: '0.0.2', b: '0.6.0', c: '7.7.7' }) - - // set same version - server.get('/-/package/@scoped%2fanother/dist-tags') - .reply(200, { latest: '2.0.0', b: '0.6.0' }) - - // rm - server.get('/-/package/@scoped%2fanother/dist-tags') - .reply(200, { latest: '2.0.0', a: '0.0.2', b: '0.6.0', c: '7.7.7' }) - server.delete('/-/package/@scoped%2fanother/dist-tags/c') - .reply(200, { c: '7.7.7' }) - - // rm - server.get('/-/package/@scoped%2fanother/dist-tags') - .reply(200, { latest: '4.0.0' }) -} - -test('setup', function (t) { - mkdirp(pkg, function (er) { - t.ifError(er, pkg + ' made successfully') - - mr({ port: common.port, plugin: mocks }, function (er, s) { - server = s - - fs.writeFile( - path.join(pkg, 'package.json'), - JSON.stringify(scoped), - function (er) { - t.ifError(er, 'wrote package.json') - t.end() - } - ) - }) - }) -}) - -test('npm dist-tags ls in current package', function (t) { - common.npm( - [ - 'dist-tags', 'ls', - '--registry', common.registry, - '--loglevel', 'silent' - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access') - t.notOk(code, 'exited OK') - t.notOk(stderr, 'no error output') - t.equal(stdout, 'a: 0.0.1\nb: 0.5.0\nlatest: 1.0.0\n') - - t.end() - } - ) -}) - -test('npm dist-tags ls on named package', function (t) { - common.npm( - [ - 'dist-tags', - 'ls', '@scoped/another', - '--registry', common.registry, - '--loglevel', 'silent' - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access') - t.notOk(code, 'exited OK') - t.notOk(stderr, 'no error output') - t.equal(stdout, 'a: 0.0.2\nb: 0.6.0\nlatest: 2.0.0\n') - - t.end() - } - ) -}) - -test('npm dist-tags add @scoped/another@7.7.7 c', function (t) { - common.npm( - [ - 'dist-tags', - 'add', '@scoped/another@7.7.7', 'c', - '--registry', common.registry, - '--loglevel', 'silent' - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access') - t.notOk(code, 'exited OK') - t.notOk(stderr, 'no error output') - t.equal(stdout, '+c: @scoped/another@7.7.7\n') - - t.end() - } - ) -}) - -test('npm dist-tags set same version', function (t) { - common.npm( - [ - 'dist-tag', - 'set', '@scoped/another@0.6.0', 'b', - '--registry', common.registry, - '--loglevel', 'warn' - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access') - t.notOk(code, 'exited OK') - t.equal( - stderr, - 'npm WARN dist-tag add b is already set to version 0.6.0\n', - 'warned about setting same version' - ) - t.notOk(stdout, 'only expecting warning message') - - t.end() - } - ) -}) - -test('npm dist-tags rm @scoped/another c', function (t) { - common.npm( - [ - 'dist-tags', - 'rm', '@scoped/another', 'c', - '--registry', common.registry, - '--loglevel', 'silent' - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm access') - t.notOk(code, 'exited OK') - t.notOk(stderr, 'no error output') - t.equal(stdout, '-c: @scoped/another@7.7.7\n') - - t.end() - } - ) -}) - -test('npm dist-tags rm @scoped/another nonexistent', function (t) { - common.npm( - [ - 'dist-tags', - 'rm', '@scoped/another', 'nonexistent', - '--registry', common.registry, - '--loglevel', 'silent' - ], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, 'npm dist-tag') - t.ok(code, 'expecting nonzero exit code') - t.notOk(stderr, 'no error output') - t.notOk(stdout, 'not expecting output') - - t.end() - } - ) -}) - -test('cleanup', function (t) { - t.pass('cleaned up') - rimraf.sync(pkg) - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/do-not-remove-other-bins.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/do-not-remove-other-bins.js deleted file mode 100644 index 6fec728d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/do-not-remove-other-bins.js +++ /dev/null @@ -1,131 +0,0 @@ -'use strict' -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -var base = path.resolve(__dirname, path.basename(__filename, '.js')) -var installPath = path.resolve(base, 'install') -var installBin = path.resolve(installPath, 'node_modules', '.bin') -var packageApath = path.resolve(base, 'packageA') -var packageBpath = path.resolve(base, 'packageB') - -var packageA = { - name: 'a', - version: '1.0.0', - description: 'x', - repository: 'x', - license: 'MIT', - bin: { - testbin: './testbin.js' - } -} -var packageB = { - name: 'b', - version: '1.0.0', - description: 'x', - repository: 'x', - license: 'MIT', - bin: { - testbin: './testbin.js' - } -} - -var EXEC_OPTS = { - cwd: installPath -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(path.join(installPath, 'node_modules')) - mkdirp.sync(packageApath) - fs.writeFileSync( - path.join(packageApath, 'package.json'), - JSON.stringify(packageA, null, 2) - ) - fs.writeFileSync( - path.join(packageApath, packageA.bin.testbin), - '' - ) - mkdirp.sync(packageBpath) - fs.writeFileSync( - path.join(packageBpath, 'package.json'), - JSON.stringify(packageB, null, 2) - ) - fs.writeFileSync( - path.join(packageBpath, packageB.bin.testbin), - '' - ) - t.end() -}) - -test('npm install A', function (t) { - process.chdir(installPath) - common.npm([ - 'install', packageApath - ], EXEC_OPTS, function (err, code, stdout, stderr) { - console.log(stdout, stderr) - t.ifErr(err, 'install finished successfully') - t.notOk(code, 'exit ok') - t.notOk(stderr, 'Should not get data on stderr: ' + stderr) - t.end() - }) -}) - -test('npm install B', function (t) { - process.chdir(installPath) - common.npm([ - 'install', packageBpath - ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifErr(err, 'install finished successfully') - t.notOk(code, 'exit ok') - t.notOk(stderr, 'Should not get data on stderr: ' + stderr) - t.end() - }) -}) - -test('verify bins', function (t) { - var bin = path.dirname( - path.resolve( - installBin, - common.readBinLink(path.join(installBin, 'testbin')))) - t.is(bin, path.join(installPath, 'node_modules', 'b')) - t.end() -}) - -test('rm install A', function (t) { - process.chdir(installPath) - common.npm([ - 'rm', packageApath - ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifErr(err, 'install finished successfully') - t.notOk(code, 'exit ok') - t.notOk(stderr, 'Should not get data on stderr: ' + stderr) - t.end() - }) -}) - -test('verify postremoval bins', function (t) { - var bin = path.dirname( - path.resolve( - installBin, - common.readBinLink(path.join(installBin, 'testbin')))) - t.is(bin, path.join(installPath, 'node_modules', 'b')) - t.end() -}) - -test('cleanup', function (t) { - cleanup() - t.pass('cleaned up') - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(base) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/extraneous-dep-cycle-ls-ok.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/extraneous-dep-cycle-ls-ok.js deleted file mode 100644 index 767cb6d7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/extraneous-dep-cycle-ls-ok.js +++ /dev/null @@ -1,70 +0,0 @@ -'use strict' -var fs = require('fs') -var path = require('path') - -var test = require('tap').test -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') - -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, path.basename(__filename, '.js')) -var pathModA = path.join(pkg, 'node_modules', 'moduleA') -var pathModB = path.join(pkg, 'node_modules', 'moduleB') - -var modA = { - name: 'moduleA', - version: '1.0.0', - _requiredBy: [ '#USER', '/moduleB' ], - dependencies: { - moduleB: '1.0.0' - } -} -var modB = { - name: 'moduleB', - version: '1.0.0', - _requiredBy: [ '/moduleA' ], - dependencies: { - moduleA: '1.0.0' - } -} - -function setup () { - mkdirp.sync(pathModA) - fs.writeFileSync( - path.join(pathModA, 'package.json'), - JSON.stringify(modA, null, 2) - ) - mkdirp.sync(pathModB) - fs.writeFileSync( - path.join(pathModB, 'package.json'), - JSON.stringify(modB, null, 2) - ) -} - -function cleanup () { - rimraf.sync(pkg) -} - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -var expected = pkg + '\n' + - '└─┬ moduleA@1.0.0\n' + - ' └── moduleB@1.0.0\n\n' - -test('extraneous-dep-cycle', function (t) { - common.npm(['ls', '--unicode=true'], {cwd: pkg}, function (er, code, stdout, stderr) { - t.ifErr(er, 'install finished successfully') - t.is(stdout, expected, 'ls output shows module') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/false-name.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/false-name.js deleted file mode 100644 index 1e2a4d43..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/false-name.js +++ /dev/null @@ -1,88 +0,0 @@ -// this is a test for fix #2538 - -// the false_name-test-package has the name property 'test-package' set -// in the package.json and a dependency named 'test-package' is also a -// defined dependency of 'test-package-with-one-dep'. -// -// this leads to a conflict during installation and the fix is covered -// by this test - -var fs = require('graceful-fs') -var path = require('path') -var existsSync = fs.existsSync || path.existsSync - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.join(__dirname, 'false-name') -var cache = path.join(pkg, 'cache') -var server - -var EXEC_OPTS = { cwd: pkg } - -var indexContent = 'module.exports = true\n' -var json = { - name: 'test-package', - version: '0.0.0', - main: 'index.js', - dependencies: { - 'test-package-with-one-dep': '0.0.0' - } -} - -test('setup', function (t) { - t.comment('test for https://github.com/npm/npm/issues/2538') - setup() - mr({ port: common.port }, function (er, s) { - server = s - t.end() - }) -}) - -test('not every pkg.name can be required', function (t) { - common.npm( - [ - 'install', '.', - '--cache', cache, - '--registry', common.registry - ], - EXEC_OPTS, - function (err, code) { - t.ifErr(err, 'install finished without error') - t.equal(code, 0, 'install exited ok') - t.ok( - existsSync(path.join(pkg, 'node_modules', 'test-package-with-one-dep')), - 'test-package-with-one-dep installed OK' - ) - t.ok( - existsSync(path.join(pkg, 'node_modules', 'test-package')), - 'test-pacakge subdep installed OK' - ) - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(cache) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - fs.writeFileSync(path.join(pkg, 'index.js'), indexContent) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/fetch-package-metadata.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/fetch-package-metadata.js deleted file mode 100644 index c7a7fcbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/fetch-package-metadata.js +++ /dev/null @@ -1,76 +0,0 @@ -'use strict' -var path = require('path') -var mkdirp = require('mkdirp') - -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var npm = require('../../lib/npm.js') - -var pkg = path.resolve(__dirname, path.basename(__filename, '.js')) - -function setup (cb) { - cleanup() - mkdirp.sync(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -test('setup', function (t) { - setup() - process.chdir(pkg) - - var opts = { - cache: path.resolve(pkg, 'cache'), - registry: common.registry, - // important to make sure devDependencies don't get stripped - dev: true - } - npm.load(opts, t.end) -}) - -test('fetch-package-metadata provides resolved metadata', function (t) { - t.plan(5) - - var fetchPackageMetadata = require('../../lib/fetch-package-metadata') - - var testPackage = { - raw: 'test-package@>=0.0.0', - scope: null, - name: 'test-package', - rawSpec: '>=0.0.0', - spec: '>=0.0.0', - type: 'range' - } - - mr({ port: common.port }, thenFetchMetadata) - - var server - function thenFetchMetadata (err, s) { - t.ifError(err, 'setup mock registry') - server = s - - fetchPackageMetadata(testPackage, __dirname, thenVerifyMetadata) - } - - function thenVerifyMetadata (err, pkg) { - t.ifError(err, 'fetched metadata') - - t.equals(pkg._resolved, 'http://localhost:1337/test-package/-/test-package-0.0.0.tgz', '_resolved') - t.equals(pkg._shasum, 'b0d32b6c45c259c578ba2003762b205131bdfbd1', '_shasum') - t.equals(pkg._from, 'test-package@>=0.0.0', '_from') - server.close() - t.end() - } -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/files-and-ignores.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/files-and-ignores.js deleted file mode 100644 index a8f4b222..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/files-and-ignores.js +++ /dev/null @@ -1,612 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var fs = require('graceful-fs') -var tar = require('tar') -var zlib = require('zlib') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-files') -var targetpath = path.resolve(basepath, 'target') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -test('basic file inclusion', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5', - files: [ - 'include', - 'sub/include' - ] - }), - include: File(''), - sub: Dir({ include: File('') }), - notincluded: File('') - }) - ) - withFixture(t, fixture, function (done) { - t.ok(fileExists('include'), 'toplevel file included') - t.ok(fileExists('sub/include'), 'nested file included') - t.notOk(fileExists('notincluded'), 'unspecified file not included') - done() - }) -}) - -test('basic file exclusion', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5' - }), - '.npmignore': File( - 'ignore\n' + - 'sub/ignore\n' - ), - include: File(''), - ignore: File(''), - sub: Dir({ ignore: File('') }) - }) - ) - withFixture(t, fixture, function (done) { - t.notOk(fileExists('ignore'), 'toplevel file excluded') - t.notOk(fileExists('sub/ignore'), 'nested file excluded') - t.ok(fileExists('include'), 'unignored file included') - done() - }) -}) - -test('toplevel-only and blanket ignores', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5' - }), - '.npmignore': File( - './shallow1\n' + - '/shallow2\n' + - '/sub/onelevel\n' + - 'deep\n' + - '' - ), - shallow1: File(''), - shallow2: File(''), - deep: File(''), - sub: Dir({ - shallow1: File(''), - shallow2: File(''), - onelevel: File(''), - deep: File(''), - sub: Dir({ - deep: File(''), - onelevel: File('') - }) - }) - }) - ) - withFixture(t, fixture, function (done) { - t.notOk(fileExists('shallow2'), '/ file excluded') - t.ok(fileExists('sub/shallow1'), 'nested ./ file included') - t.ok(fileExists('sub/shallow2'), 'nested / file included') - t.ok(fileExists('sub/sub/onelevel'), 'double-nested file included') - t.notOk(fileExists('sub/onelevel'), 'nested / file excluded') - t.notOk(fileExists('deep'), 'deep file excluded') - t.notOk(fileExists('sub/deep'), 'nested deep file excluded') - t.notOk(fileExists('sub/sub/deep'), 'double-nested deep file excluded') - t.ok(fileExists('shallow1'), './ file included') - done() - }) -}) - -test('.npmignore works for nested directories recursively', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5' - }), - '.npmignore': File( - '/ignore\n' + - 'deep\n' - ), - include: File(''), - ignore: File(''), - deep: File(''), - sub: Dir({ - ignore: File(''), - include: File(''), - deep: File(''), - sub: Dir({ - '.npmignore': File( - '/ignore\n' - ), - ignore: File(''), - include: File(''), - deep: File('') - }) - }) - }) - ) - withFixture(t, fixture, function (done) { - t.notOk(fileExists('ignore'), 'toplevel file excluded') - t.ok(fileExists('include'), 'unignored file included') - t.ok(fileExists('sub/ignore'), 'same-name file in nested dir included') - t.ok(fileExists('sub/include'), 'unignored nested dir file included') - t.notOk(fileExists('sub/sub/ignore'), 'sub-sub-directory file excluded') - t.ok(fileExists('sub/sub/include'), 'sub-sube-directory file included') - t.notOk(fileExists('deep'), 'deep file excluded') - t.notOk(fileExists('sub/deep'), 'sub-dir deep file excluded') - t.notOk(fileExists('sub/sub/deep'), 'sub-sub-dir deep file excluded') - done() - }) -}) - -test('.gitignore should have identical semantics', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5' - }), - '.gitignore': File( - './shallow1\n' + - '/shallow2\n' + - '/sub/onelevel\n' + - 'deep\n' + - '' - ), - shallow1: File(''), - shallow2: File(''), - deep: File(''), - sub: Dir({ - shallow1: File(''), - shallow2: File(''), - onelevel: File(''), - deep: File(''), - sub: Dir({ - deep: File(''), - onelevel: File('') - }) - }) - }) - ) - withFixture(t, fixture, function (done) { - t.notOk(fileExists('shallow2'), '/ file excluded') - t.ok(fileExists('sub/shallow1'), 'nested ./ file included') - t.ok(fileExists('sub/shallow2'), 'nested / file included') - t.ok(fileExists('sub/sub/onelevel'), 'double-nested file included') - t.notOk(fileExists('sub/onelevel'), 'nested / file excluded') - t.notOk(fileExists('deep'), 'deep file excluded') - t.notOk(fileExists('sub/deep'), 'nested deep file excluded') - t.notOk(fileExists('sub/sub/deep'), 'double-nested deep file excluded') - t.ok(fileExists('shallow1'), './ file included') - done() - }) -}) - -test('.npmignore should always be overridden by files array', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5', - files: [ - 'include', - 'sub' - ] - }), - '.npmignore': File( - 'include\n' + - 'ignore\n' + - 'sub/included\n' - ), - include: File(''), - ignore: File(''), - sub: Dir({ - include: File('') - }) - }) - ) - withFixture(t, fixture, function (done) { - t.notOk(fileExists('ignore'), 'toplevel file excluded') - t.ok(fileExists('include'), 'unignored file included') - t.ok(fileExists('sub/include'), 'nested file included') - done() - }) -}) - -test('.gitignore supported for ignores', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5' - }), - '.gitignore': File( - 'ignore\n' + - 'sub/ignore\n' - ), - include: File(''), - ignore: File(''), - sub: Dir({ ignore: File('') }) - }) - ) - withFixture(t, fixture, function (done) { - t.notOk(fileExists('ignore'), 'toplevel file excluded') - t.notOk(fileExists('sub/ignore'), 'nested file excluded') - t.ok(fileExists('include'), 'unignored file included') - done() - }) -}) - -test('.npmignore completely overrides .gitignore', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5' - }), - '.npmignore': File( - 'ignore\n' + - 'sub/ignore\n' - ), - '.gitignore': File( - 'include\n' + - 'sub/include\n' + - 'extra\n' - ), - include: File(''), - sub: Dir({ include: File('') }), - extra: File('') - }) - ) - withFixture(t, fixture, function (done) { - t.ok(fileExists('include'), 'gitignored toplevel file included') - t.ok(fileExists('extra'), 'gitignored extra toplevel file included') - t.ok(fileExists('sub/include'), 'gitignored nested file included') - t.notOk(fileExists('ignore'), 'toplevel file excluded') - t.notOk(fileExists('sub/ignore'), 'nested file excluded') - done() - }) -}) - -test('files array overrides .npmignore', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5', - files: [ - 'include', - 'sub/include' - ] - }), - '.npmignore': File( - 'include\n' + - 'sub/include\n' - ), - include: File(''), - sub: Dir({ include: File('') }) - }) - ) - withFixture(t, fixture, function (done) { - t.ok(fileExists('include'), 'toplevel file included') - t.ok(fileExists('sub/include'), 'nested file included') - done() - }) -}) - -test('includes files regardless of emptiness', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5', - files: [ - 'full', - 'empty' - ] - }), - full: File('This file has contents~'), - empty: File('') - }) - ) - withFixture(t, fixture, function (done) { - t.ok(fileExists('full'), 'contentful file included') - t.ok(fileExists('empty'), 'empty file included') - done() - }) -}) - -test('.npmignore itself gets included', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5', - files: [ - '.npmignore' - ] - }), - '.npmignore': File('') - }) - ) - withFixture(t, fixture, function (done) { - t.ok(fileExists('.npmignore'), '.npmignore included') - done() - }) -}) - -test('include default files when missing files spec', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5' - }), - 'index.js': File(''), - foo: File(''), - node_modules: Dir({foo: Dir({bar: File('')})}) - }) - ) - withFixture(t, fixture, function (done) { - t.ok(fileExists('index.js'), 'index.js included') - t.ok(fileExists('foo'), 'foo included') - t.notOk(fileExists('node_modules'), 'node_modules not included') - done() - }) -}) - -test('include main file', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5', - main: 'foo.js', - files: [] - }), - 'index.js': File(''), - 'foo.js': File('') - }) - ) - withFixture(t, fixture, function (done) { - t.ok(fileExists('foo.js'), 'foo.js included because of main') - t.notOk(fileExists('index.js'), 'index.js not included') - done() - }) -}) - -test('certain files ignored unconditionally', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5', - files: [ - '.git', - '.svn', - 'CVS', - '.hg', - '.lock-wscript', - '.wafpickle-0', - '.wafpickle-5', - '.wafpickle-50', - 'build/config.gypi', - 'npm-debug.log', - '.npmrc', - '.foo.swp', - '.DS_Store', - '._ohno' - ] - }), - '.git': Dir({foo: File('')}), - '.svn': Dir({foo: File('')}), - 'CVS': Dir({foo: File('')}), - '.hg': Dir({foo: File('')}), - '.lock-wscript': File(''), - '.wafpickle-0': File(''), - '.wafpickle-5': File(''), - '.wafpickle-50': File(''), - 'build': Dir({'config.gypi': File('')}), - 'npm-debug.log': File(''), - '.npmrc': File(''), - '.foo.swp': File(''), - '.DS_Store': Dir({foo: File('')}), - '._ohno': File(''), - '._ohnoes': Dir({noes: File('')}) - }) - ) - withFixture(t, fixture, function (done) { - t.notOk(fileExists('.git'), '.git not included') - t.notOk(fileExists('.svn'), '.svn not included') - t.notOk(fileExists('CVS'), 'CVS not included') - t.notOk(fileExists('.hg'), '.hg not included') - t.notOk(fileExists('.lock-wscript'), '.lock-wscript not included') - t.notOk(fileExists('.wafpickle-0'), '.wafpickle-0 not included') - t.notOk(fileExists('.wafpickle-5'), '.wafpickle-5 not included') - t.notOk(fileExists('.wafpickle-50'), '.wafpickle-50 not included') - t.notOk(fileExists('build/config.gypi'), 'build/config.gypi not included') - t.notOk(fileExists('npm-debug.log'), 'npm-debug.log not included') - t.notOk(fileExists('.npmrc'), '.npmrc not included') - t.notOk(fileExists('.foo.swp'), '.foo.swp not included') - t.notOk(fileExists('.DS_Store'), '.DS_Store not included') - t.notOk(fileExists('._ohno'), '._ohno not included') - t.notOk(fileExists('._ohnoes'), '._ohnoes not included') - done() - }) -}) - -test('certain files included unconditionally', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5' - }), - '.npmignore': File( - 'package.json', - 'README', - 'Readme', - 'readme.md', - 'readme.randomext', - 'changelog', - 'CHAngelog', - 'ChangeLOG.txt', - 'history', - 'HistorY', - 'HistorY.md', - 'license', - 'licence', - 'LICENSE', - 'LICENCE' - ), - 'README': File(''), - 'Readme': File(''), - 'readme.md': File(''), - 'readme.randomext': File(''), - 'changelog': File(''), - 'CHAngelog': File(''), - 'ChangeLOG.txt': File(''), - 'history': File(''), - 'HistorY': File(''), - 'HistorY.md': File(''), - 'license': File(''), - 'licence': File(''), - 'LICENSE': File(''), - 'LICENCE': File('') - }) - ) - withFixture(t, fixture, function (done) { - t.ok(fileExists('package.json'), 'package.json included') - t.ok(fileExists('README'), 'README included') - t.ok(fileExists('Readme'), 'Readme included') - t.ok(fileExists('readme.md'), 'readme.md included') - t.ok(fileExists('readme.randomext'), 'readme.randomext included') - t.ok(fileExists('changelog'), 'changelog included') - t.ok(fileExists('CHAngelog'), 'CHAngelog included') - t.ok(fileExists('ChangeLOG.txt'), 'ChangeLOG.txt included') - t.ok(fileExists('license'), 'license included') - t.ok(fileExists('licence'), 'licence included') - t.ok(fileExists('LICENSE'), 'LICENSE included') - t.ok(fileExists('LICENCE'), 'LICENCE included') - done() - }) -}) - -test('unconditional inclusion does not capture modules', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5' - }), - 'node_modules': Dir({ - 'readme': Dir({ 'file': File('') }), - 'README': Dir({ 'file': File('') }), - 'licence': Dir({ 'file': File('') }), - 'license': Dir({ 'file': File('') }), - 'history': Dir({ 'file': File('') }), - 'History': Dir({ 'file': File('') }), - 'changelog': Dir({ 'file': File('') }), - 'ChangeLOG': Dir({ 'file': File('') }) - }) - }) - ) - withFixture(t, fixture, function (done) { - t.notOk(fileExists('node_modules/readme/file'), 'readme module not included') - t.notOk(fileExists('node_modules/README/file'), 'README module not included') - t.notOk(fileExists('node_modules/licence/file'), 'licence module not included') - t.notOk(fileExists('node_modules/license/file'), 'license module not included') - t.notOk(fileExists('node_modules/history/file'), 'history module not included') - t.notOk(fileExists('node_modules/History/file'), 'History module not included') - t.notOk(fileExists('node_modules/changelog/file'), 'changelog module not included') - t.notOk(fileExists('node_modules/ChangeLOG/file'), 'ChangeLOG module not included') - - done() - }) -}) - -test('folder-based inclusion works', function (t) { - var fixture = new Tacks( - Dir({ - 'package.json': File({ - name: 'npm-test-files', - version: '1.2.5', - files: [ - 'sub1/sub', - 'sub2' - ] - }), - sub1: Dir({ - sub: Dir({ - include1: File(''), - include2: File('') - }), - ignored: File('') - }), - sub2: Dir({ - include1: File(''), - include2: File(''), - empty: Dir({}) - }) - }) - ) - withFixture(t, fixture, function (done) { - t.ok(fileExists('sub1/sub/include1'), 'nested dir included') - t.ok(fileExists('sub1/sub/include2'), 'nested dir included') - t.notOk(fileExists('sub1/ignored'), 'unspecified file not included') - - t.ok(fileExists('sub2/include1'), 'dir contents included') - t.ok(fileExists('sub2/include2'), 'dir contents included') - t.notOk(fileExists('sub2/empty'), 'empty dir not included') - - done() - }) -}) - -function fileExists (file) { - try { - return !!fs.statSync(path.resolve(targetpath, 'package', file)) - } catch (_) { - return false - } -} - -function withFixture (t, fixture, tester) { - fixture.create(fixturepath) - mkdirp.sync(targetpath) - common.npm(['pack', fixturepath], {cwd: basepath}, extractAndCheck) - function extractAndCheck (err, code) { - if (err) throw err - t.is(code, 0, 'pack went ok') - extractTarball(checkTests) - } - function checkTests (err) { - if (err) throw err - tester(removeAndDone) - } - function removeAndDone (err) { - if (err) throw err - fixture.remove(fixturepath) - rimraf.sync(basepath) - t.done() - } -} - -function extractTarball (cb) { - // Unpack to disk so case-insensitive filesystems are consistent - fs.createReadStream(path.join(basepath, 'npm-test-files-1.2.5.tgz')) - .pipe(zlib.Unzip()) - .on('error', cb) - .pipe(tar.Extract(targetpath)) - .on('error', cb) - .on('end', function () { cb() }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/full-warning-messages.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/full-warning-messages.js deleted file mode 100644 index 3c74c61d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/full-warning-messages.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict' -var test = require('tap').test -var path = require('path') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var fs = require('graceful-fs') -var common = require('../common-tap') - -var base = path.resolve(__dirname, path.basename(__filename, '.js')) -var modA = path.resolve(base, 'modA') -var modB = path.resolve(base, 'modB') - -var json = { - 'name': 'test-full-warning-messages', - 'version': '1.0.0', - 'description': 'abc', - 'repository': 'git://abc/', - 'license': 'ISC', - 'dependencies': { - 'modA': modA - } -} - -var modAJson = { - 'name': 'modA', - 'version': '1.0.0', - 'optionalDependencies': { - 'modB': modB - } -} - -var modBJson = { - 'name': 'modB', - 'version': '1.0.0', - 'os': ['nope'], - 'cpu': 'invalid' -} - -function modJoin () { - var modules = Array.prototype.slice.call(arguments) - return modules.reduce(function (a, b) { - return path.resolve(a, 'node_modules', b) - }) -} - -function writeJson (mod, data) { - fs.writeFileSync(path.resolve(mod, 'package.json'), JSON.stringify(data)) -} - -function setup () { - cleanup() - ;[modA, modB].forEach(function (mod) { mkdirp.sync(mod) }) - writeJson(base, json) - writeJson(modA, modAJson) - writeJson(modB, modBJson) -} - -function cleanup () { - rimraf.sync(base) -} - -test('setup', function (t) { - setup() - t.end() -}) - -function exists (t, filepath, msg) { - try { - fs.statSync(filepath) - t.pass(msg) - return true - } catch (ex) { - t.fail(msg, {found: null, wanted: 'exists', compare: 'fs.stat(' + filepath + ')'}) - return false - } -} - -function notExists (t, filepath, msg) { - try { - fs.statSync(filepath) - t.fail(msg, {found: 'exists', wanted: null, compare: 'fs.stat(' + filepath + ')'}) - return true - } catch (ex) { - t.pass(msg) - return false - } -} - -test('tree-style', function (t) { - common.npm(['install', '--loglevel=warn'], {cwd: base}, function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'result code') - t.match(stdout, /modA@1.0.0/, 'modA got installed') - t.notMatch(stdout, /modB/, 'modB not installed') - var stderrlines = stderr.trim().split(/\n/) - t.is(stderrlines.length, 2, 'two lines of warnings') - t.match(stderr, /Skipping failed optional dependency/, 'expected optional failure warning') - t.match(stderr, /Not compatible with your operating system or architecture/, 'reason for optional failure') - exists(t, modJoin(base, 'modA'), 'module A') - notExists(t, modJoin(base, 'modB'), 'module B') - t.done() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-cmdshims.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-cmdshims.js deleted file mode 100644 index ea1f47a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-cmdshims.js +++ /dev/null @@ -1,159 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('graceful-fs') -var test = require('tap').test -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var npm = require('../../lib/npm.js') - -var work = path.join(__dirname, path.basename(__filename, '.js')) -var doremove = path.join(work, 'doremove') -var dontremove = path.join(work, 'dontremove') -var example_json = { - name: 'example', - version: '1.0.0', - bin: { - 'example': 'example.js' - } -} -var example_bin = - '#!/usr/bin/env node\n' + - 'true\n' - -// NOTE: if this were actually produced on windows it would be \ not / of -// course, buuut, path.resolve doesn't understand \ outside of windows =/ -var do_example_cmd = - '@IF EXIST "%~dp0\\node.exe" (\n' + - ' "%~dp0\\node.exe" "%~dp0\\../example/example.js" %*\n' + - ') ELSE (\n' + - ' @SETLOCAL\n' + - ' @SET PATHEXT=%PATHEXT:;.JS;=;%\n' + - ' node "%~dp0\\../example/example.js" %*\n' + - ')\n' - -var do_example_cygwin = - '#!/bin/sh\n' + - 'basedir=`dirname "$0"`\n' + - '\n' + - 'case `uname` in\n' + - ' *CYGWIN*) basedir=`cygpath -w "$basedir"`;;\n' + - 'esac\n' + - '\n' + - 'if [ -x "$basedir/node" ]; then\n' + - ' "$basedir/node" "$basedir/../example/example.js" "$@"\n' + - ' ret=$?\n' + - 'else\n' + - ' node "$basedir/../example/example.js" "$@"\n' + - ' ret=$?\n' + - 'fi\n' + - 'exit $ret\n' - -var dont_example_cmd = - '@IF EXIST "%~dp0\\node.exe" (\n' + - ' "%~dp0\\node.exe" "%~dp0\\../example-other/example.js" %*\n' + - ') ELSE (\n' + - ' @SETLOCAL\n' + - ' @SET PATHEXT=%PATHEXT:;.JS;=;%\n' + - ' node "%~dp0\\../example-other/example.js" %*\n' + - ')\n' - -var dont_example_cygwin = - '#!/bin/sh\n' + - 'basedir=`dirname "$0"`\n' + - '\n' + - 'case `uname` in\n' + - ' *CYGWIN*) basedir=`cygpath -w "$basedir"`;;\n' + - 'esac\n' + - '\n' + - 'if [ -x "$basedir/node" ]; then\n' + - ' "$basedir/node" "$basedir/../example-other/example.js" "$@"\n' + - ' ret=$?\n' + - 'else\n' + - ' node "$basedir/../example-other/example.js" "$@"\n' + - ' ret=$?\n' + - 'fi\n' + - 'exit $ret\n' - -function cleanup () { - rimraf.sync(work) -} - -var doremove_module = path.join(doremove, 'node_modules', 'example') -var doremove_example_cmd = path.join(doremove, 'node_modules', '.bin', 'example.cmd') -var doremove_example_cygwin = path.join(doremove, 'node_modules', '.bin', 'example') -var dontremove_module = path.join(dontremove, 'node_modules', 'example') -var dontremove_example_cmd = path.join(dontremove, 'node_modules', '.bin', 'example.cmd') -var dontremove_example_cygwin = path.join(dontremove, 'node_modules', '.bin', 'example') - -function setup () { - mkdirp.sync(doremove_module) - mkdirp.sync(path.join(doremove, 'node_modules', '.bin')) - fs.writeFileSync(path.join(doremove, 'node_modules', 'example', 'package.json'), JSON.stringify(example_json)) - fs.writeFileSync(path.join(doremove, 'node_modules', 'example', 'example.js'), JSON.stringify(example_bin)) - fs.writeFileSync(doremove_example_cmd, do_example_cmd) - fs.writeFileSync(doremove_example_cygwin, do_example_cygwin) - - mkdirp.sync(dontremove_module) - mkdirp.sync(path.join(dontremove, 'node_modules', '.bin')) - fs.writeFileSync(path.join(dontremove, 'node_modules', 'example', 'package.json'), JSON.stringify(example_json)) - fs.writeFileSync(path.join(dontremove, 'node_modules', 'example', 'example.js'), JSON.stringify(example_bin)) - fs.writeFileSync(dontremove_example_cmd, dont_example_cmd) - fs.writeFileSync(dontremove_example_cygwin, dont_example_cygwin) -} - -test('setup', function (t) { - cleanup() - setup() - npm.load({}, function () { - t.done() - }) -}) - -// Like slide.chain, but runs all commands even if they have errors, also -// throws away results. -function runAll (cmds, done) { - runNext() - function runNext () { - if (cmds.length === 0) return done() - var cmdline = cmds.shift() - var cmd = cmdline.shift() - cmdline.push(runNext) - cmd.apply(null, cmdline) - } -} - -test('remove-cmd-shims', function (t) { - t.plan(2) - - var gentlyRm = require('../../lib/utils/gently-rm.js') - runAll([ [gentlyRm, doremove_example_cmd, true, doremove_module], - [gentlyRm, doremove_example_cygwin, true, doremove_module] ], - function () { - fs.stat(doremove_example_cmd, function (er) { - t.is(er && er.code, 'ENOENT', 'cmd-shim was removed') - }) - fs.stat(doremove_example_cygwin, function (er) { - t.is(er && er.code, 'ENOENT', 'cmd-shim cygwin script was removed') - }) - }) -}) - -test('dont-remove-cmd-shims', function (t) { - t.plan(2) - var gentlyRm = require('../../lib/utils/gently-rm.js') - runAll([ [gentlyRm, dontremove_example_cmd, true, dontremove_module], - [gentlyRm, dontremove_example_cygwin, true, dontremove_module] ], - function () { - fs.stat(dontremove_example_cmd, function (er) { - t.is(er, null, 'cmd-shim was not removed') - }) - fs.stat(dontremove_example_cygwin, function (er) { - t.is(er, null, 'cmd-shim cygwin script was not removed') - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.done() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-linked-module.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-linked-module.js deleted file mode 100644 index aeae71ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-linked-module.js +++ /dev/null @@ -1,118 +0,0 @@ -var common = require('../common-tap.js') - -var basename = require('path').basename -var resolve = require('path').resolve -var fs = require('graceful-fs') -var test = require('tap').test -var rimraf = require('rimraf') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir -var Symlink = Tacks.Symlink -var extend = Object.assign || require('util')._extend -var isWindows = require('../../lib/utils/is-windows.js') - -var base = resolve(__dirname, basename(__filename, '.js')) -var fixture = new Tacks(Dir({ - 'working-dir': Dir({ - 'node_modules': Dir({}) // so it doesn't try to install into npm's own node_modules - }), - 'test-module': Dir({ - 'package.json': File({ - name: '@test/linked', - version: '1.0.0', - bin: { - linked: './index.js' - } - }), - 'index.js': File("module.exports = function () { console.log('whoop whoop') }") - }), - 'global-dir': Dir({}), - 'linked-global-dir': Symlink('global-dir') -})) - -var workingDir = resolve(base, 'working-dir') -var toInstall = resolve(base, 'test-module') -var linkedGlobal = resolve(base, 'linked-global-dir') - -var env = extend({}, process.env) - -// We set the global install location via env var here -// instead of passing it in via `--prefix` because -// `--prefix` ALSO changes the current package location. -// And we don't ue the PREFIX env var because -// npm_config_prefix takes precedence over it and is -// passed in when running from the npm test suite. -env.npm_config_prefix = linkedGlobal -var EXEC_OPTS = { - cwd: workingDir, - env: env -} - -test('setup', function (t) { - cleanup() - setup() - - t.end() -}) - -test('install and link', function (t) { - // link our test module into the global folder - common.npm( - [ - '--loglevel', 'error', - 'link', - toInstall - ], - EXEC_OPTS, - function (er, code) { - if (er) throw er - t.is(code, 0, 'link succeeded') - var globalBin = resolve(linkedGlobal, isWindows ? '.' : 'bin', 'linked') - var globalModule = resolve(linkedGlobal, isWindows ? '.' : 'lib', 'node_modules', '@test', 'linked') - var localBin = resolve(workingDir, 'node_modules', '.bin', 'linked') - var localModule = resolve(workingDir, 'node_modules', '@test', 'linked') - try { - t.ok(fs.statSync(globalBin), 'global bin exists') - t.is(fs.lstatSync(globalModule).isSymbolicLink(), true, 'global module is link') - t.ok(fs.statSync(localBin), 'local bin exists') - t.is(fs.lstatSync(localModule).isSymbolicLink(), true, 'local module is link') - } catch (ex) { - t.ifError(ex, 'linking happened') - } - if (code !== 0) return t.end() - - // and try removing it and make sure that succeeds - common.npm( - [ - '--global', - '--loglevel', 'error', - 'rm', '@test/linked' - ], - EXEC_OPTS, - function (er, code) { - if (er) throw er - t.is(code, 0, 'rm succeeded') - t.throws(function () { fs.statSync(globalBin) }, 'global bin removed') - t.throws(function () { fs.statSync(globalModule) }, 'global module removed') - t.end() - } - ) - } - ) -}) - -test('cleanup', function (t) { - cleanup() - - t.end() -}) - -function cleanup () { - fixture.remove(base) - rimraf.sync(base) -} - -function setup () { - fixture.create(base) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-overeager.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-overeager.js deleted file mode 100644 index c266f1c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-overeager.js +++ /dev/null @@ -1,59 +0,0 @@ -var resolve = require('path').resolve -var fs = require('graceful-fs') -var test = require('tap').test -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') - -var common = require('../common-tap.js') - -var pkg = resolve(__dirname, 'gently-rm-overeager') -var dep = resolve(__dirname, 'test-whoops') - -var EXEC_OPTS = { cwd: pkg } - -var fixture = { - name: '@test/whoops', - version: '1.0.0', - scripts: { - postinstall: 'echo \'nope\' && exit 1' - } -} - -test('setup', function (t) { - cleanup() - setup() - - t.end() -}) - -test('cache add', function (t) { - common.npm(['install', '../test-whoops'], EXEC_OPTS, function (er, c) { - t.ifError(er, "test-whoops install didn't explode") - t.ok(c, 'test-whoops install also failed') - fs.readdir(pkg, function (er, files) { - t.ifError(er, 'package directory is still there') - t.deepEqual(files, ['npm-debug.log'], 'only debug log remains') - - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) - rimraf.sync(dep) -} - -function setup () { - mkdirp.sync(pkg) - // so it doesn't try to install into npm's own node_modules - mkdirp.sync(resolve(pkg, 'node_modules')) - mkdirp.sync(dep) - fs.writeFileSync(resolve(dep, 'package.json'), JSON.stringify(fixture)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-symlinked-global-dir.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-symlinked-global-dir.js deleted file mode 100644 index b159a4ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gently-rm-symlinked-global-dir.js +++ /dev/null @@ -1,125 +0,0 @@ -var common = require('../common-tap.js') - -var resolve = require('path').resolve -var fs = require('graceful-fs') -var test = require('tap').test -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var isWindows = require('../../lib/utils/is-windows.js') - -var pkg = resolve(__dirname, 'gently-rm-linked') -var dep = resolve(__dirname, 'test-linked') -var glb = resolve(__dirname, 'test-global') -var lnk = resolve(__dirname, 'test-global-link') - -var EXEC_OPTS = { cwd: pkg } - -var index = "module.exports = function () { console.log('whoop whoop') }" - -var fixture = { - name: '@test/linked', - version: '1.0.0', - bin: { - linked: './index.js' - } -} - -test('setup', function (t) { - cleanup() - setup() - - t.end() -}) - -test('install and link', function (t) { - common.npm( - [ - '--global', - '--prefix', lnk, - '--loglevel', 'silent', - '--unicode', 'false', - 'install', '../test-linked' - ], - EXEC_OPTS, - function (er, code, stdout, stderr) { - t.ifError(er, "test-linked install didn't explode") - t.notOk(code, 'test-linked install also failed') - t.notOk(stderr, 'no log output') - - verify(t, stdout) - - // again, to make sure unlinking works properlyt - common.npm( - [ - '--global', - '--prefix', lnk, - '--loglevel', 'silent', - '--unicode', 'false', - 'install', '../test-linked' - ], - EXEC_OPTS, - function (er, code, stdout, stderr) { - t.ifError(er, "test-linked install didn't explode") - t.notOk(code, 'test-linked install also failed') - t.notOk(stderr, 'no log output') - - verify(t, stdout) - - fs.readdir(pkg, function (er, files) { - t.ifError(er, 'package directory is still there') - t.deepEqual(files, ['node_modules'], 'only stub modules dir remains') - - t.end() - }) - } - ) - } - ) -}) - -test('cleanup', function (t) { - cleanup() - - t.end() -}) - -function removeBlank (line) { - return line !== '' -} - -function resolvePath () { - return resolve.apply(null, Array.prototype.slice.call(arguments) - .filter(function (arg) { return arg })) -} - -function verify (t, stdout) { - var binPath = resolvePath(lnk, !isWindows && 'bin', 'linked') - var pkgPath = resolvePath(lnk, !isWindows && 'lib', 'node_modules', '@test', 'linked') - var trgPath = resolvePath(pkgPath, 'index.js') - t.deepEqual( - stdout.split('\n').filter(removeBlank), - [ binPath + ' -> ' + trgPath, - resolvePath(lnk, !isWindows && 'lib'), - '`-- @test/linked@1.0.0 ' - ], - 'got expected install output' - ) -} - -function cleanup () { - rimraf.sync(pkg) - rimraf.sync(dep) - rimraf.sync(lnk) - rimraf.sync(glb) -} - -function setup () { - mkdirp.sync(pkg) - mkdirp.sync(glb) - fs.symlinkSync(glb, lnk, 'junction') - // so it doesn't try to install into npm's own node_modules - mkdirp.sync(resolve(pkg, 'node_modules')) - mkdirp.sync(dep) - fs.writeFileSync(resolve(dep, 'package.json'), JSON.stringify(fixture)) - fs.writeFileSync(resolve(dep, 'index.js'), index) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/get.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/get.js deleted file mode 100644 index 62bb05fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/get.js +++ /dev/null @@ -1,124 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var cacheFile = require('npm-cache-filename') -var npm = require('../../') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var path = require('path') -var mr = require('npm-registry-mock') -var fs = require('graceful-fs') - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var TIMEOUT = 3600 -var FOLLOW = false -var STALE_OK = true -var TOKEN = 'lolbutts' -var AUTH = { token: TOKEN } -var PARAMS = { - timeout: TIMEOUT, - follow: FOLLOW, - staleOk: STALE_OK, - auth: AUTH -} -var PKG_DIR = path.resolve(__dirname, 'get-basic') -var CACHE_DIR = path.resolve(PKG_DIR, 'cache') -var BIGCO_SAMPLE = { - name: '@bigco/sample', - version: '1.2.3' -} - -// mock server reference -var server - -var mocks = { - 'get': { - '/@bigco%2fsample/1.2.3': [200, BIGCO_SAMPLE] - } -} - -var mapper = cacheFile(CACHE_DIR) - -function getCachePath (uri) { - return path.join(mapper(uri), '.cache.json') -} - -test('setup', function (t) { - mkdirp.sync(CACHE_DIR) - - mr({port: common.port, mocks: mocks}, function (er, s) { - t.ifError(er) - npm.load({cache: CACHE_DIR, registry: common.registry}, function (er) { - t.ifError(er) - server = s - t.end() - }) - }) -}) - -test('get call contract', function (t) { - t.throws(function () { - npm.registry.get(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - npm.registry.get([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - npm.registry.get(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - npm.registry.get(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - npm.registry.get(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - npm.registry.get(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.end() -}) - -test('basic request', function (t) { - t.plan(9) - - var versioned = common.registry + '/underscore/1.3.3' - npm.registry.get(versioned, PARAMS, function (er, data) { - t.ifError(er, 'loaded specified version underscore data') - t.equal(data.version, '1.3.3') - fs.stat(getCachePath(versioned), function (er) { - t.ifError(er, 'underscore 1.3.3 cache data written') - }) - }) - - var rollup = common.registry + '/underscore' - npm.registry.get(rollup, PARAMS, function (er, data) { - t.ifError(er, 'loaded all metadata') - t.deepEqual(data.name, 'underscore') - fs.stat(getCachePath(rollup), function (er) { - t.ifError(er, 'underscore rollup cache data written') - }) - }) - - var scoped = common.registry + '/@bigco%2fsample/1.2.3' - npm.registry.get(scoped, PARAMS, function (er, data) { - t.ifError(er, 'loaded all metadata') - t.equal(data.name, '@bigco/sample') - fs.stat(getCachePath(scoped), function (er) { - t.ifError(er, 'scoped cache data written') - }) - }) -}) - -test('cleanup', function (t) { - server.close() - rimraf.sync(PKG_DIR) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-short-shortcut-package.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-short-shortcut-package.js deleted file mode 100644 index 02457b4d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-short-shortcut-package.js +++ /dev/null @@ -1,84 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'gist-short-shortcut-package') - -var json = { - name: 'gist-short-shortcut-package', - version: '0.0.0', - dependencies: { - 'private-gist': 'gist:deadbeef' - } -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('gist-short-shortcut-package', function (t) { - var cloneUrls = [ - ['git://gist.github.com/deadbeef.git', 'GitHub gist shortcuts try git URLs first'], - ['https://gist.github.com/deadbeef.git', 'GitHub gist shortcuts try HTTPS URLs second'], - ['git@gist.github.com:/deadbeef.git', 'GitHub gist shortcuts try SSH third'] - ] - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args[0] !== 'clone') return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[3], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error()) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - npm.commands.install([], function (er, result) { - t.ok(er, 'mocked install failed as expected') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-short-shortcut.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-short-shortcut.js deleted file mode 100644 index 58dcf78e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-short-shortcut.js +++ /dev/null @@ -1,81 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'gist-short-shortcut') - -var json = { - name: 'gist-short-shortcut', - version: '0.0.0' -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('gist-shortcut', function (t) { - var cloneUrls = [ - ['git://gist.github.com/deadbeef.git', 'GitHub gist shortcuts try git URLs first'], - ['https://gist.github.com/deadbeef.git', 'GitHub gist shortcuts try HTTPS URLs second'], - ['git@gist.github.com:/deadbeef.git', 'GitHub gist shortcuts try SSH third'] - ] - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args[0] !== 'clone') return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[3], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error('execFile mock fails on purpose')) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - npm.commands.install(['gist:deadbeef'], function (er, result) { - t.ok(er, 'mocked install failed as expected') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-shortcut-package.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-shortcut-package.js deleted file mode 100644 index 370476ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-shortcut-package.js +++ /dev/null @@ -1,84 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'gist-shortcut-package') - -var json = { - name: 'gist-shortcut-package', - version: '0.0.0', - dependencies: { - 'private-gist': 'gist:foo/deadbeef' - } -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('gist-shortcut-package', function (t) { - var cloneUrls = [ - ['git://gist.github.com/deadbeef.git', 'GitHub gist shortcuts try git URLs first'], - ['https://gist.github.com/deadbeef.git', 'GitHub gist shortcuts try HTTPS URLs second'], - ['git@gist.github.com:/deadbeef.git', 'GitHub gist shortcuts try SSH third'] - ] - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args[0] !== 'clone') return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[3], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error()) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - npm.commands.install([], function (er, result) { - t.ok(er, 'mocked install failed as expected') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-shortcut.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-shortcut.js deleted file mode 100644 index e975a09b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gist-shortcut.js +++ /dev/null @@ -1,81 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'gist-shortcut') - -var json = { - name: 'gist-shortcut', - version: '0.0.0' -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('gist-shortcut', function (t) { - var cloneUrls = [ - ['git://gist.github.com/deadbeef.git', 'GitHub gist shortcuts try git URLs first'], - ['https://gist.github.com/deadbeef.git', 'GitHub gist shortcuts try HTTPS URLs second'], - ['git@gist.github.com:/deadbeef.git', 'GitHub gist shortcuts try SSH third'] - ] - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args[0] !== 'clone') return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[3], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error()) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - npm.commands.install(['gist:foo/deadbeef'], function (er, result) { - t.ok(er, 'mocked install failed as expected') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-cache-locking.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-cache-locking.js deleted file mode 100644 index 29ab5709..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-cache-locking.js +++ /dev/null @@ -1,45 +0,0 @@ -var test = require('tap').test -var common = require('../common-tap') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var pkg = path.resolve(__dirname, 'git-cache-locking') -var tmp = path.join(pkg, 'tmp') -var cache = path.join(pkg, 'cache') -var shallowClone = Object.assign || require('util')._extend - -test('setup', function (t) { - rimraf.sync(pkg) - mkdirp.sync(path.resolve(pkg, 'node_modules')) - t.end() -}) - -test('git-cache-locking: install a git dependency', function (t) { - // disable git integration tests on Travis. - if (process.env.TRAVIS) return t.end() - - var gitEnv = shallowClone({}, process.env) - gitEnv.npm_config_cache = cache - gitEnv.npm_config_tmp = tmp - gitEnv.npm_config_prefix = pkg - gitEnv.npm_config_global = 'false' - - // package c depends on a.git#master and b.git#master - // package b depends on a.git#master - common.npm([ - 'install', - 'git://github.com/nigelzor/npm-4503-c.git' - ], { - cwd: pkg, - env: gitEnv - }, function (err, code, stdout, stderr) { - if (err) throw err - t.equal(0, code, 'npm install should succeed') - t.end() - }) -}) - -test('cleanup', function (t) { - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-cache-no-hooks.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-cache-no-hooks.js deleted file mode 100644 index 0021064c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-cache-no-hooks.js +++ /dev/null @@ -1,50 +0,0 @@ -var test = require('tap').test -var fs = require('fs') -var path = require('path') -var common = require('../common-tap.js') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var pkg = path.resolve(__dirname, 'git-cache-no-hooks') -var osenv = require('osenv') -var tmp = path.join(pkg, 'tmp') -var cache = path.join(pkg, 'cache') - -test('setup', function (t) { - rimraf.sync(pkg) - mkdirp.sync(pkg) - mkdirp.sync(cache) - mkdirp.sync(tmp) - mkdirp.sync(path.resolve(pkg, 'node_modules')) - t.end() -}) - -test('git-cache-no-hooks: install a git dependency', function (t) { - // disable git integration tests on Travis. - if (process.env.TRAVIS) return t.end() - - common.npm([ - 'install', 'git://github.com/nigelzor/npm-4503-a.git', - '--cache', cache, - '--tmp', tmp - ], { - cwd: pkg - }, function (err, code, stdout, stderr) { - t.ifErr(err, 'npm completed') - t.equal(stderr, '', 'no error output') - t.equal(code, 0, 'npm install should succeed') - - // verify permissions on git hooks - var repoDir = 'git-github-com-nigelzor-npm-4503-a-git-40c5cb24' - var hooksPath = path.join(cache, '_git-remotes', repoDir, 'hooks') - fs.readdir(hooksPath, function (err) { - t.equal(err && err.code, 'ENOENT', 'hooks are not brought along with repo') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-dependency-install-link.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-dependency-install-link.js deleted file mode 100644 index 1bf839f3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-dependency-install-link.js +++ /dev/null @@ -1,179 +0,0 @@ -var fs = require('fs') -var resolve = require('path').resolve - -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test -var readJson = require('read-package-json') -var mr = require('npm-registry-mock') - -var npm = require('../../lib/npm.js') -var common = require('../common-tap.js') - -var pkg = resolve(__dirname, 'git-dependency-install-link') -var repo = resolve(__dirname, 'git-dependency-install-link-repo') -var prefix = resolve(__dirname, 'git-dependency-install-link-prefix') -var cache = resolve(pkg, 'cache') - -var daemon -var daemonPID -var git -var mockRegistry - -var EXEC_OPTS = { - registry: common.registry, - cwd: pkg, - cache: cache -} -process.env.npm_config_prefix = prefix - -var pjParent = JSON.stringify({ - name: 'parent', - version: '1.2.3', - dependencies: { - 'child': 'git://localhost:1234/child.git' - } -}, null, 2) + '\n' - -var pjChild = JSON.stringify({ - name: 'child', - version: '1.0.3' -}, null, 2) + '\n' - -test('setup', function (t) { - bootstrap() - setup(function (er, r) { - t.ifError(er, 'git started up successfully') - - if (!er) { - daemon = r[r.length - 2] - daemonPID = r[r.length - 1] - } - - mr({ - port: common.port - }, function (er, server) { - t.ifError(er, 'started mock registry') - mockRegistry = server - - t.end() - }) - }) -}) - -test('install from git repo [no --link]', function (t) { - process.chdir(pkg) - - common.npm(['install'], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, 'npm install failed') - - t.dissimilar(stderr, /Command failed:/, 'expect git to succeed') - t.dissimilar(stderr, /version not found/, 'should not go to repository') - - readJson(resolve(pkg, 'node_modules', 'child', 'package.json'), function (err, data) { - t.ifError(err, 'error reading child package.json') - - t.equal(data && data.version, '1.0.3') - t.end() - }) - }) -}) - -test('install from git repo [with --link]', function (t) { - process.chdir(pkg) - rimraf.sync(resolve(pkg, 'node_modules')) - - common.npm(['install', '--link'], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, 'npm install --link failed') - t.equal(code, 0, 'npm install --link returned non-0 code') - - t.dissimilar(stderr, /Command failed:/, 'expect git to succeed') - t.dissimilar(stderr, /version not found/, 'should not go to repository') - t.equal(stderr, '', 'no actual output on stderr') - - readJson(resolve(pkg, 'node_modules', 'child', 'package.json'), function (err, data) { - t.ifError(err, 'error reading child package.json') - - t.equal(data && data.version, '1.0.3') - t.end() - }) - }) -}) - -test('clean', function (t) { - mockRegistry.close() - daemon.on('close', function () { - cleanup() - t.end() - }) - process.kill(daemonPID) -}) - -function bootstrap () { - rimraf.sync(repo) - rimraf.sync(pkg) - mkdirp.sync(pkg) - mkdirp.sync(cache) - - fs.writeFileSync(resolve(pkg, 'package.json'), pjParent) -} - -function setup (cb) { - mkdirp.sync(repo) - fs.writeFileSync(resolve(repo, 'package.json'), pjChild) - npm.load({ - link: true, - prefix: pkg, - loglevel: 'silent' - }, function () { - git = require('../../lib/utils/git.js') - - function startDaemon (cb) { - // start git server - var d = git.spawn( - [ - 'daemon', - '--verbose', - '--listen=localhost', - '--export-all', - '--base-path=.', - '--reuseaddr', - '--port=1234' - ], - { - cwd: pkg, - env: process.env, - stdio: ['pipe', 'pipe', 'pipe'] - } - ) - d.stderr.on('data', childFinder) - - function childFinder (c) { - var cpid = c.toString().match(/^\[(\d+)\]/) - if (cpid[1]) { - this.removeListener('data', childFinder) - cb(null, [d, cpid[1]]) - } - } - } - - common.makeGitRepo({ - path: repo, - commands: [ - git.chainableExec( - ['clone', '--bare', repo, 'child.git'], - { cwd: pkg, env: process.env } - ), - startDaemon - ] - }, cb) - }) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(repo) - rimraf.sync(prefix) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-npmignore.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-npmignore.js deleted file mode 100644 index 6b99bdf1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-npmignore.js +++ /dev/null @@ -1,195 +0,0 @@ -var child_process = require('child_process') -var readdir = require('graceful-fs').readdirSync -var path = require('path') -var resolve = require('path').resolve - -var rimraf = require('rimraf') -var test = require('tap').test -var which = require('which') - -var common = require('../common-tap.js') -var escapeArg = require('../../lib/utils/escape-arg.js') -var Tacks = require('tacks') -var Dir = Tacks.Dir -var File = Tacks.File - -var fixture = new Tacks(Dir({ - deps: Dir({ - gitch: Dir({ - '.npmignore': File( - 't.js\n' - ), - '.gitignore': File( - 'node_modules/\n' - ), - 'a.js': File( - "console.log('hi');" - ), - 't.js': File( - "require('tap').test(function (t) { t.pass('I am a test!'); t.end(); });" - ), - 'package.json': File({ - name: 'gitch', - version: '1.0.0', - private: true, - main: 'a.js' - }) - }) - }), - 'node_modules': Dir({ - }) -})) - -var testdir = resolve(__dirname, path.basename(__filename, '.js')) -var dep = resolve(testdir, 'deps', 'gitch') -var packname = 'gitch-1.0.0.tgz' -var packed = resolve(testdir, packname) -var modules = resolve(testdir, 'node_modules') -var installed = resolve(modules, 'gitch') -var expected = [ - 'a.js', - 'package.json', - '.npmignore' -].sort() - -var NPM_OPTS = { cwd: testdir } - -function exec (todo, opts, cb) { - console.log(' # EXEC:', todo) - child_process.exec(todo, opts, cb) -} - -test('setup', function (t) { - setup(function (er) { - t.ifError(er, 'setup ran OK') - - t.end() - }) -}) - -test('npm pack directly from directory', function (t) { - packInstallTest(dep, t) -}) - -test('npm pack via git', function (t) { - var urlPath = dep - .replace(/\\/g, '/') // fixup slashes for Windows - .replace(/^\/+/, '') // remove any leading slashes - packInstallTest('git+file:///' + urlPath, t) -}) - -test('cleanup', function (t) { - cleanup() - - t.end() -}) - -function packInstallTest (spec, t) { - console.log(' # pack', spec) - common.npm( - [ - '--loglevel', 'error', - 'pack', spec - ], - NPM_OPTS, - function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'npm pack exited cleanly') - t.is(stderr, '', 'npm pack ran silently') - t.is(stdout.trim(), packname, 'got expected package name') - - common.npm( - [ - '--loglevel', 'error', - 'install', packed - ], - NPM_OPTS, - function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'npm install exited cleanly') - t.is(stderr, '', 'npm install ran silently') - - var actual = readdir(installed).sort() - t.isDeeply(actual, expected, 'no unexpected files in packed directory') - - rimraf(packed, function () { - t.end() - }) - } - ) - } - ) -} - -function cleanup () { - fixture.remove(testdir) - rimraf.sync(testdir) -} - -function setup (cb) { - cleanup() - - fixture.create(testdir) - - common.npm( - [ - '--loglevel', 'error', - 'cache', 'clean' - ], - NPM_OPTS, - function (er, code, _, stderr) { - if (er) return cb(er) - if (code) return cb(new Error('npm cache nonzero exit: ' + code)) - if (stderr) return cb(new Error('npm cache clean error: ' + stderr)) - - which('git', function found (er, gitPath) { - if (er) return cb(er) - - var git = escapeArg(gitPath) - - exec(git + ' init', {cwd: dep}, init) - - function init (er, _, stderr) { - if (er) return cb(er) - if (stderr) return cb(new Error('git init error: ' + stderr)) - - exec(git + " config user.name 'Phantom Faker'", {cwd: dep}, user) - } - - function user (er, _, stderr) { - if (er) return cb(er) - if (stderr) return cb(new Error('git config error: ' + stderr)) - - exec(git + ' config user.email nope@not.real', {cwd: dep}, email) - } - - function email (er, _, stderr) { - if (er) return cb(er) - if (stderr) return cb(new Error('git config error: ' + stderr)) - - exec(git + ' config core.autocrlf input', {cwd: dep}, autocrlf) - } - - function autocrlf (er, _, stderr) { - if (er) return cb(er) - if (stderr) return cb(new Error('git config error: ' + stderr)) - - exec(git + ' add .', {cwd: dep}, addAll) - } - - function addAll (er, _, stderr) { - if (er) return cb(er) - if (stderr) return cb(new Error('git add . error: ' + stderr)) - - exec(git + ' commit -m boot', {cwd: dep}, commit) - } - - function commit (er, _, stderr) { - if (er) return cb(er) - if (stderr) return cb(new Error('git commit error: ' + stderr)) - cb() - } - }) - } - ) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-races.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-races.js deleted file mode 100644 index 6bbfe78b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/git-races.js +++ /dev/null @@ -1,212 +0,0 @@ -var execFile = require('child_process').execFile -var path = require('path') -var zlib = require('zlib') - -var asyncMap = require('slide').asyncMap -var deepEqual = require('deep-equal') -var fs = require('graceful-fs') -var mkdirp = require('mkdirp') -var once = require('once') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var tar = require('tar') -var test = require('tap').test -var tmpdir = require('osenv').tmpdir -var which = require('which') - -var wd = path.resolve(tmpdir(), 'git-races') -var fixtures = path.resolve(__dirname, '../fixtures') -var testcase = 'github-com-BryanDonovan-npm-git-test' -var testcase_git = path.resolve(wd, testcase + '.git') -var testcase_path = path.resolve(wd, testcase) -var testcase_tgz = path.resolve(fixtures, testcase + '.git.tar.gz') - -var testtarballs = [] -var testrepos = {} -var testurls = {} - -/* -This test is specifically for #7202, where the bug was if you tried installing multiple git urls that -pointed at the same repo but had different comittishes, you'd sometimes get the wrong version. -The test cases, provided by @BryanDonovan, have a dependency tree like this: - - top - bar#4.0.0 - buzz#3.0.0 - foo#3.0.0 - buzz#3.0.0 - foo#4.0.0 - buzz#2.0.0 - -But what would happen is that buzz#2.0.0 would end up installed under bar#4.0.0. - -bar#4.0.0 shouldn't have gotten its own copy if buzz, and if it did, it shouldn've been buzz#3.0.0 -*/ - -;['bar', 'foo', 'buzz'].forEach(function (name) { - var mockurl = 'ssh://git@github.com/BryanDonovan/dummy-npm-' + name + '.git' - var realrepo = path.resolve(wd, 'github-com-BryanDonovan-dummy-npm-' + name + '.git') - var tgz = path.resolve(fixtures, 'github-com-BryanDonovan-dummy-npm-' + name + '.git.tar.gz') - - testrepos[mockurl] = realrepo - testtarballs.push(tgz) -}) - -function cleanup () { - process.chdir(tmpdir()) - rimraf.sync(wd) -} - -var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - // If it's a clone we swap any requests for any of the urls we're mocking - // with the path to the bare repo - if (args[0] === 'clone') { - var m2 = args.length - 2 - var m1 = args.length - 1 - if (testrepos[args[m2]]) { - testurls[args[m1]] = args[m2] - args[m2] = testrepos[args[m2]] - } - execFile(cmd, args, options, cb) - // here, we intercept npm validating the remote origin url on one of the - // clones we've done previously and return the original url that was requested - } else if (args[0] === 'config' && args[1] === '--get' && args[2] === 'remote.origin.url') { - process.nextTick(function () { - cb(null, testurls[options.cwd], '') - }) - } else { - execFile(cmd, args, options, cb) - } - } - } -}) - -function extract (tarball, target, cb) { - cb = once(cb) - fs.createReadStream(tarball).on('error', function (er) { cb(er) }) - .pipe(zlib.createGunzip()).on('error', function (er) { cb(er) }) - .pipe(tar.Extract({path: target})).on('error', function (er) { cb(er) }) - .on('end', function () { - cb() - }) -} - -// Copied from lib/utils/git, because we need to use -// it before calling npm.load and lib/utils/git uses npm.js -// which doesn't allow that. =( =( - -function prefixGitArgs () { - return process.platform === 'win32' ? ['-c', 'core.longpaths=true'] : [] -} - -var gitcmd - -function execGit (args, options, cb) { - var fullArgs = prefixGitArgs().concat(args || []) - return execFile(gitcmd, fullArgs, options, cb) -} - -function gitWhichAndExec (args, options, cb) { - if (gitcmd) return execGit(args, options, cb) - - which('git', function (err, pathtogit) { - if (err) { - err.code = 'ENOGIT' - return cb(err) - } - gitcmd = pathtogit - - execGit(args, options, cb) - }) -} - -function andClone (gitdir, repodir, cb) { - return function (er) { - if (er) return cb(er) - gitWhichAndExec(['clone', gitdir, repodir], {}, cb) - } -} - -function setup (cb) { - cleanup() - mkdirp.sync(wd) - - extract(testcase_tgz, wd, andClone(testcase_git, testcase_path, andExtractPackages)) - - function andExtractPackages (er) { - if (er) return cb(er) - asyncMap(testtarballs, function (tgz, done) { - extract(tgz, wd, done) - }, andChdir) - } - function andChdir (er) { - if (er) return cb(er) - process.chdir(testcase_path) - andLoadNpm() - } - function andLoadNpm () { - var opts = { - cache: path.resolve(wd, 'cache') - } - npm.load(opts, cb) - } -} - -// there are two (sic) valid trees that can result we don't care which one we -// get in npm@2 -var oneTree = [ - 'npm-git-test@1.0.0', [ - ['dummy-npm-bar@4.0.0', [ - ['dummy-npm-foo@3.0.0', []] - ]], - ['dummy-npm-buzz@3.0.0', []], - ['dummy-npm-foo@4.0.0', [ - ['dummy-npm-buzz@2.0.0', []] - ]] - ] -] -var otherTree = [ - 'npm-git-test@1.0.0', [ - ['dummy-npm-bar@4.0.0', [ - ['dummy-npm-buzz@3.0.0', []], - ['dummy-npm-foo@3.0.0', []] - ]], - ['dummy-npm-buzz@3.0.0', []], - ['dummy-npm-foo@4.0.0', [ - ['dummy-npm-buzz@2.0.0', []] - ]] - ] -] - -function toSimple (tree) { - var deps = [] - Object.keys(tree.dependencies || {}).forEach(function (dep) { - deps.push(toSimple(tree.dependencies[dep])) - }) - return [ tree['name'] + '@' + tree['version'], deps ] -} - -test('setup', function (t) { - setup(function (er) { - t.ifError(er, 'setup ran OK') - t.end() - }) -}) - -test('correct versions are installed for git dependency', function (t) { - t.plan(3) - t.comment('test for https://github.com/npm/npm/issues/7202') - npm.commands.install([], function (er) { - t.ifError(er, 'installed OK') - npm.commands.ls([], true, function (er, result) { - t.ifError(er, 'ls OK') - var simplified = toSimple(result) - t.ok( - deepEqual(simplified, oneTree) || deepEqual(simplified, otherTree), - 'install tree is correct' - ) - }) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/github-shortcut-package.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/github-shortcut-package.js deleted file mode 100644 index 13c6806b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/github-shortcut-package.js +++ /dev/null @@ -1,84 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'github-shortcut-package') - -var json = { - name: 'github-shortcut-package', - version: '0.0.0', - dependencies: { - 'private': 'foo/private' - } -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('github-shortcut-package', function (t) { - var cloneUrls = [ - ['git://github.com/foo/private.git', 'GitHub shortcuts try git URLs first'], - ['https://github.com/foo/private.git', 'GitHub shortcuts try HTTPS URLs second'], - ['git@github.com:foo/private.git', 'GitHub shortcuts try SSH third'] - ] - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args[0] !== 'clone') return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[3], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error()) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - npm.commands.install([], function (er, result) { - t.ok(er, 'mocked install failed as expected') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/github-shortcut.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/github-shortcut.js deleted file mode 100644 index c0a67d21..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/github-shortcut.js +++ /dev/null @@ -1,81 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'github-shortcut') - -var json = { - name: 'github-shortcut', - version: '0.0.0' -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('github-shortcut', function (t) { - var cloneUrls = [ - ['git://github.com/foo/private.git', 'GitHub shortcuts try git URLs first'], - ['https://github.com/foo/private.git', 'GitHub shortcuts try HTTPS URLs second'], - ['git@github.com:foo/private.git', 'GitHub shortcuts try SSH third'] - ] - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args.indexOf('clone') === -1) return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[args.length - 2], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error('execFile mock fails on purpose')) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - t.plan(1 + cloneUrls.length) - npm.load(opts, function (err) { - t.ifError(err, 'npm loaded without error') - npm.commands.install(['foo/private'], function (er, result) { - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gitlab-shortcut-package.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gitlab-shortcut-package.js deleted file mode 100644 index 76cd7f91..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gitlab-shortcut-package.js +++ /dev/null @@ -1,83 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'gitlab-shortcut-package') - -var json = { - name: 'gitlab-shortcut-package', - version: '0.0.0', - dependencies: { - 'private': 'gitlab:foo/private' - } -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('gitlab-shortcut-package', function (t) { - var cloneUrls = [ - ['https://gitlab.com/foo/private.git', 'GitLab shortcuts try HTTPS URLs second'], - ['git@gitlab.com:foo/private.git', 'GitLab shortcuts try SSH first'] - ] - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args[0] !== 'clone') return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[3], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error()) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - npm.commands.install([], function (er, result) { - t.ok(er, 'mocked install failed as expected') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gitlab-shortcut.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gitlab-shortcut.js deleted file mode 100644 index 96da268e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/gitlab-shortcut.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict' -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var requireInject = require('require-inject') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'gitlab-shortcut') - -var json = { - name: 'gitlab-shortcut', - version: '0.0.0' -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('gitlab-shortcut', function (t) { - var cloneUrls = [ - ['https://gitlab.com/foo/private.git', 'GitLab shortcuts try HTTPS URLs second'], - ['git@gitlab.com:foo/private.git', 'GitLab shortcuts try SSH first'] - ] - var npm = requireInject.installGlobally('../../lib/npm.js', { - 'child_process': { - 'execFile': function (cmd, args, options, cb) { - process.nextTick(function () { - if (args[0] !== 'clone') return cb(null, '', '') - var cloneUrl = cloneUrls.shift() - if (cloneUrl) { - t.is(args[3], cloneUrl[0], cloneUrl[1]) - } else { - t.fail('too many attempts to clone') - } - cb(new Error('execFile mock fails on purpose')) - }) - } - } - }) - - var opts = { - cache: path.resolve(pkg, 'cache'), - prefix: pkg, - registry: common.registry, - loglevel: 'silent' - } - npm.load(opts, function (er) { - t.ifError(er, 'npm loaded without error') - npm.commands.install(['gitlab:foo/private'], function (er, result) { - t.ok(er, 'mocked install failed as expected') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/global-prefix-set-in-userconfig.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/global-prefix-set-in-userconfig.js deleted file mode 100644 index 422bcb24..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/global-prefix-set-in-userconfig.js +++ /dev/null @@ -1,36 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var rimraf = require('rimraf') -var prefix = __filename.replace(/\.js$/, '') -var rcfile = __filename.replace(/\.js$/, '.npmrc') -var fs = require('fs') -var conf = 'prefix = ' + prefix + '\n' - -test('setup', function (t) { - rimraf.sync(prefix) - fs.writeFileSync(rcfile, conf) - t.pass('ready') - t.end() -}) - -test('run command', function (t) { - var args = ['prefix', '-g', '--userconfig=' + rcfile] - common.npm(args, {env: {}}, function (er, code, so) { - if (er) throw er - t.notOk(code, 'npm prefix exited with code 0') - t.equal(so.trim(), prefix) - t.end() - }) -}) - -test('made dir', function (t) { - t.ok(fs.statSync(prefix).isDirectory()) - t.end() -}) - -test('cleanup', function (t) { - rimraf.sync(prefix) - rimraf.sync(rcfile) - t.pass('clean') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/graceful-restart.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/graceful-restart.js deleted file mode 100644 index 56513fbf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/graceful-restart.js +++ /dev/null @@ -1,119 +0,0 @@ -var fs = require('fs') -var resolve = require('path').resolve - -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = resolve(__dirname, 'graceful-restart') - -var outGraceless = [ - 'prerestart', - 'prestop', - 'stop', - 'poststop', - 'prestart', - 'start', - 'poststart', - 'postrestart', - '' -].join('\n') - -var outGraceful = [ - 'prerestart', - 'restart', - 'postrestart', - '' -].join('\n') - -var pjGraceless = JSON.stringify({ - name: 'graceless', - version: '1.2.3', - scripts: { - 'prestop': 'echo prestop', - 'stop': 'echo stop', - 'poststop': 'echo poststop', - 'prerestart': 'echo prerestart', - 'postrestart': 'echo postrestart', - 'prestart': 'echo prestart', - 'start': 'echo start', - 'poststart': 'echo poststart' - } -}, null, 2) + '\n' - -var pjGraceful = JSON.stringify({ - name: 'graceful', - version: '1.2.3', - scripts: { - 'prestop': 'echo prestop', - 'stop': 'echo stop', - 'poststop': 'echo poststop', - 'prerestart': 'echo prerestart', - 'restart': 'echo restart', - 'postrestart': 'echo postrestart', - 'prestart': 'echo prestart', - 'start': 'echo start', - 'poststart': 'echo poststart' - } -}, null, 2) + '\n' - -test('setup', function (t) { - bootstrap() - t.end() -}) - -test('graceless restart', function (t) { - fs.writeFileSync(resolve(pkg, 'package.json'), pjGraceless) - createChild(['run-script', 'restart'], function (err, code, out) { - t.ifError(err, 'restart finished successfully') - t.equal(code, 0, 'npm run-script exited with code') - t.equal(out.replace(/\r/g, ''), outGraceless, 'expected all scripts to run') - t.end() - }) -}) - -test('graceful restart', function (t) { - fs.writeFileSync(resolve(pkg, 'package.json'), pjGraceful) - createChild(['run-script', 'restart'], function (err, code, out) { - t.ifError(err, 'restart finished successfully') - t.equal(code, 0, 'npm run-script exited with code') - t.equal(out.replace(/\r/g, ''), outGraceful, 'expected only *restart scripts to run') - t.end() - }) -}) - -test('clean', function (t) { - cleanup() - t.end() -}) - -function bootstrap () { - mkdirp.sync(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function createChild (args, cb) { - var env = { - HOME: process.env.HOME, - Path: process.env.PATH, - PATH: process.env.PATH, - 'npm_config_loglevel': 'silent' - } - - if (process.platform === 'win32') { - env.npm_config_cache = '%APPDATA%\\npm-cache' - } - - return common.npm(args, { - cwd: pkg, - stdio: ['ignore', 'pipe', 'ignore'], - env: env - }, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ignore-install-link.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ignore-install-link.js deleted file mode 100644 index 684c6a05..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ignore-install-link.js +++ /dev/null @@ -1,74 +0,0 @@ -if (process.platform === 'win32') { - console.log('ok - symlinks are weird on windows, skip this test') - process.exit(0) -} -var common = require('../common-tap.js') -var test = require('tap').test -var path = require('path') -var fs = require('fs') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') - -var root = path.resolve(__dirname, 'ignore-install-link') -var pkg = path.resolve(root, 'pkg') -var dep = path.resolve(root, 'dep') -var target = path.resolve(pkg, 'node_modules', 'dep') -var cache = path.resolve(root, 'cache') -var globalPath = path.resolve(root, 'global') - -var pkgj = { - 'name': 'pkg', - 'version': '1.2.3', - 'dependencies': { - 'dep': '1.2.3' - } -} -var depj = { 'name': 'dep', 'version': '1.2.3' } - -var myreg = require('http').createServer(function (q, s) { - s.statusCode = 403 - s.end(JSON.stringify({'error': 'forbidden'}) + '\n') -}).listen(common.port) - -test('setup', function (t) { - rimraf.sync(root) - mkdirp.sync(root) - mkdirp.sync(path.resolve(pkg, 'node_modules')) - mkdirp.sync(dep) - mkdirp.sync(cache) - mkdirp.sync(globalPath) - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify(pkgj)) - fs.writeFileSync(path.resolve(dep, 'package.json'), JSON.stringify(depj)) - fs.symlinkSync(dep, target, 'dir') - t.end() -}) - -test('ignore install if package is linked', function (t) { - common.npm(['install'], { - cwd: pkg, - env: { - PATH: process.env.PATH || process.env.Path, - HOME: process.env.HOME, - 'npm_config_prefix': globalPath, - 'npm_config_cache': cache, - 'npm_config_registry': common.registry, - 'npm_config_loglevel': 'silent' - }, - stdio: 'inherit' - }, function (er, code) { - if (er) throw er - t.equal(code, 0, 'npm install exited with code') - t.end() - }) -}) - -test('still a symlink', function (t) { - t.equal(true, fs.lstatSync(target).isSymbolicLink()) - t.end() -}) - -test('cleanup', function (t) { - rimraf.sync(root) - myreg.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ignore-scripts.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ignore-scripts.js deleted file mode 100644 index 8c0d3501..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ignore-scripts.js +++ /dev/null @@ -1,124 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -// ignore-scripts/package.json has scripts that always exit with non-zero error -// codes. -var pkg = path.resolve(__dirname, 'ignore-scripts') - -var gypfile = 'bad_binding_file\n' -var json = { - author: 'Milton the Aussie', - name: 'ignore-scripts', - version: '0.0.0', - scripts: { - prepublish: 'exit 123', - publish: 'exit 123', - postpublish: 'exit 123', - preinstall: 'exit 123', - install: 'exit 123', - postinstall: 'exit 123', - preuninstall: 'exit 123', - uninstall: 'exit 123', - postuninstall: 'exit 123', - pretest: 'exit 123', - test: 'exit 123', - posttest: 'exit 123', - prestop: 'exit 123', - stop: 'exit 123', - poststop: 'exit 123', - prestart: 'exit 123', - start: 'exit 123', - poststart: 'exit 123', - prerestart: 'exit 123', - restart: 'exit 123', - postrestart: 'exit 123', - preversion: 'exit 123', - version: 'exit 123', - postversion: 'exit 123' - } -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('ignore-scripts: install using the option', function (t) { - createChild(['install', '--ignore-scripts'], function (err, code) { - t.ifError(err, 'install with scripts ignored finished successfully') - t.equal(code, 0, 'npm install exited with code') - t.end() - }) -}) - -test('ignore-scripts: install NOT using the option', function (t) { - createChild(['install'], function (err, code) { - t.ifError(err, 'install with scripts successful') - t.notEqual(code, 0, 'npm install exited with code') - t.end() - }) -}) - -var scripts = [ - 'prepublish', 'publish', 'postpublish', - 'preinstall', 'install', 'postinstall', - 'preuninstall', 'uninstall', 'postuninstall', - 'pretest', 'test', 'posttest', - 'prestop', 'stop', 'poststop', - 'prestart', 'start', 'poststart', - 'prerestart', 'restart', 'postrestart', - 'preversion', 'version', 'postversion' -] - -scripts.forEach(function (script) { - test('ignore-scripts: run-script ' + script + ' using the option', function (t) { - createChild(['--ignore-scripts', 'run-script', script], function (err, code, stdout, stderr) { - t.ifError(err, 'run-script ' + script + ' with ignore-scripts successful') - t.equal(code, 0, 'npm run-script exited with code') - t.end() - }) - }) -}) - -scripts.forEach(function (script) { - test('ignore-scripts: run-script ' + script + ' NOT using the option', function (t) { - createChild(['run-script', script], function (err, code) { - t.ifError(err, 'run-script ' + script + ' finished successfully') - t.notEqual(code, 0, 'npm run-script exited with code') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync(path.join(pkg, 'binding.gyp'), gypfile) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) -} - -function createChild (args, cb) { - return common.npm( - args.concat(['--loglevel', 'silent']), - { cwd: pkg }, - cb - ) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ignore-shrinkwrap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ignore-shrinkwrap.js deleted file mode 100644 index 9468162e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ignore-shrinkwrap.js +++ /dev/null @@ -1,135 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = require('path').join(__dirname, 'ignore-shrinkwrap') - -var EXEC_OPTS = { cwd: pkg } - -var customMocks = { - 'get': { - '/package.js': [200, { ente: true }], - '/shrinkwrap.js': [200, { ente: true }] - } -} - -var json = { - author: 'Rocko Artischocko', - name: 'ignore-shrinkwrap', - version: '0.0.0', - dependencies: { - 'npm-test-ignore-shrinkwrap-file': 'http://localhost:1337/package.js' - } -} - -var shrinkwrap = { - name: 'ignore-shrinkwrap', - version: '0.0.0', - dependencies: { - 'npm-test-ignore-shrinkwrap-file': { - version: '1.2.3', - from: 'http://localhost:1337/shrinkwrap.js', - resolved: 'http://localhost:1337/shrinkwrap.js', - dependencies: { - opener: { - version: '1.3.0', - from: 'opener@1.3.0' - } - } - } - } -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('npm install --no-shrinkwrap', function (t) { - mr({ port: common.port, mocks: customMocks }, function (err, s) { - t.ifError(err, 'mock registry bootstrapped without issue') - s._server.on('request', function (req) { - switch (req.url) { - case '/shrinkwrap.js': - t.fail('npm-shrinkwrap.json used instead of package.json') - break - case '/package.js': - t.pass('package.json used') - } - }) - - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - 'install', '--no-shrinkwrap' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm ran without issue') - t.ok(code, "install isn't going to succeed") - s.close() - t.end() - } - ) - }) -}) - -test('npm install (with shrinkwrap)', function (t) { - mr({ port: common.port, mocks: customMocks }, function (err, s) { - t.ifError(err, 'mock registry bootstrapped without issue') - s._server.on('request', function (req) { - switch (req.url) { - case '/shrinkwrap.js': - t.pass('shrinkwrap used') - break - case '/package.js': - t.fail('shrinkwrap ignored') - } - }) - - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - 'install' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm ran without issue') - t.ok(code, "install isn't going to succeed") - s.close() - t.end() - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - fs.writeFileSync( - path.join(pkg, 'npm-shrinkwrap.json'), - JSON.stringify(shrinkwrap, null, 2) - ) - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/init-interrupt.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/init-interrupt.js deleted file mode 100644 index 799ff071..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/init-interrupt.js +++ /dev/null @@ -1,57 +0,0 @@ -// if 'npm init' is interrupted with ^C, don't report -// 'init written successfully' -var test = require('tap').test -var path = require('path') -var osenv = require('osenv') -var rimraf = require('rimraf') -var npmlog = require('npmlog') -var requireInject = require('require-inject') - -var npm = require('../../lib/npm.js') - -var PKG_DIR = path.resolve(__dirname, 'init-interrupt') - -test('setup', function (t) { - cleanup() - - t.end() -}) - -test('issue #6684 remove confusing message', function (t) { - var initJsonMock = function (dir, input, config, cb) { - process.nextTick(function () { - cb({ message: 'canceled' }) - }) - } - initJsonMock.yes = function () { return true } - - npm.load({ loglevel: 'silent' }, function () { - var log = '' - var init = requireInject('../../lib/init', { - 'init-package-json': initJsonMock - }) - - // capture log messages - npmlog.on('log', function (chunk) { log += chunk.message + '\n' }) - - init([], function (err, code) { - t.ifError(err, 'init ran successfully') - t.notOk(code, 'exited without issue') - t.notSimilar(log, /written successfully/, 'no success message written') - t.similar(log, /canceled/, 'alerted that init was canceled') - - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(PKG_DIR) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-actions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-actions.js deleted file mode 100644 index c71b0044..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-actions.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict' -var npm = require('../../lib/npm.js') -var log = require('npmlog') -var test = require('tap').test - -var mockLog = { - finish: function () {}, - silly: function () {} -} - -var actions -test('setup', function (t) { - npm.load(function () { - log.disableProgress() - actions = require('../../lib/install/actions.js').actions - t.end() - }) -}) - -test('->optdep:a->dep:b', function (t) { - var moduleA = { - name: 'a', - path: '/', - package: { - scripts: { - postinstall: 'false' - }, - dependencies: { - b: '*' - } - } - } - var moduleB = { - name: 'b', - path: '/', - package: {}, - requires: [], - requiredBy: [moduleA] - } - moduleA.requires = [moduleB] - - var tree = { - path: '/', - package: { - optionalDependencies: { - a: '*' - } - }, - children: [moduleA, moduleB], - requires: [moduleA] - } - moduleA.requiredBy = [tree] - - t.plan(3) - actions.postinstall('/', '/', moduleA, mockLog, function (er) { - t.ok(er && er.code === 'ELIFECYCLE', 'Lifecycle failed') - t.ok(moduleA.failed, 'moduleA (optional dep) is marked failed') - t.ok(moduleB.failed, 'moduleB (direct dep of moduleA) is marked as failed') - t.end() - }) -}) - -test('->dep:b,->optdep:a->dep:b', function (t) { - var moduleA = { - name: 'a', - path: '/', - package: { - scripts: { - postinstall: 'false' - }, - dependencies: { - b: '*' - } - } - } - var moduleB = { - name: 'b', - path: '/', - package: {}, - requires: [], - requiredBy: [moduleA] - } - moduleA.requires = [moduleB] - - var tree = { - path: '/', - package: { - dependencies: { - b: '*' - }, - optionalDependencies: { - a: '*' - } - }, - children: [moduleA, moduleB], - requires: [moduleA, moduleB] - } - moduleA.requiredBy = [tree] - moduleB.requiredBy.push(tree) - - t.plan(3) - actions.postinstall('/', '/', moduleA, mockLog, function (er) { - t.ok(er && er.code === 'ELIFECYCLE', 'Lifecycle failed') - t.ok(moduleA.failed, 'moduleA (optional dep) is marked failed') - t.ok(!moduleB.failed, 'moduleB (direct dep of moduleA) is marked as failed') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-at-locally.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-at-locally.js deleted file mode 100644 index 8745c4d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-at-locally.js +++ /dev/null @@ -1,69 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.join(__dirname, 'install-at-locally') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'install-at-locally-mock', - version: '0.0.0' -} - -test('setup', function (t) { - cleanup() - t.end() -}) - -test('\'npm install ./package@1.2.3\' should install local pkg', function (t) { - var target = './package@1.2.3' - setup(target) - common.npm(['install', '--loglevel=silent', target], EXEC_OPTS, function (err, code) { - var p = path.resolve(pkg, 'node_modules/install-at-locally-mock/package.json') - t.ifError(err, 'install local package successful') - t.equal(code, 0, 'npm install exited with code') - t.ok(JSON.parse(fs.readFileSync(p, 'utf8'))) - t.end() - }) -}) - -test('\'npm install install/at/locally@./package@1.2.3\' should install local pkg', function (t) { - var target = 'install/at/locally@./package@1.2.3' - setup(target) - common.npm(['install', target], EXEC_OPTS, function (err, code) { - var p = path.resolve(pkg, 'node_modules/install-at-locally-mock/package.json') - t.ifError(err, 'install local package in explicit directory successful') - t.equal(code, 0, 'npm install exited with code') - t.ok(JSON.parse(fs.readFileSync(p, 'utf8'))) - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup (target) { - cleanup() - var root = path.resolve(pkg, target) - mkdirp.sync(root) - fs.writeFileSync( - path.join(root, 'package.json'), - JSON.stringify(json, null, 2) - ) - mkdirp.sync(path.resolve(pkg, 'node_modules')) - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-bad-dep-format.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-bad-dep-format.js deleted file mode 100644 index 01d253c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-bad-dep-format.js +++ /dev/null @@ -1,58 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var json = { - author: 'John Foo', - name: 'bad-dep-format', - version: '0.0.0', - dependencies: { - 'not-legit': 'npm:not-legit@1.0' - } -} - -test('invalid url format returns appropriate error', function (t) { - setup(json) - common.npm(['install'], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'install ran without error') - t.equals(code, 1, 'inall exited with code 1') - t.match(stderr, - /ERR.*Unsupported URL Type/, - 'Error should report that invalid url-style formats are used') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup (json) { - cleanup() - process.chdir(mkPkg(json)) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - var pkgs = [json] - pkgs.forEach(function (json) { - rimraf.sync(path.resolve(__dirname, json.name)) - }) -} - -function mkPkg (json) { - var pkgPath = path.resolve(__dirname, json.name) - mkdirp.sync(pkgPath) - fs.writeFileSync( - path.join(pkgPath, 'package.json'), - JSON.stringify(json, null, 2) - ) - return pkgPath -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-bad-man.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-bad-man.js deleted file mode 100644 index 226d0b24..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-bad-man.js +++ /dev/null @@ -1,81 +0,0 @@ -var fs = require('fs') -var resolve = require('path').resolve - -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = resolve(__dirname, 'install-bad-man') -var target = resolve(__dirname, 'install-bad-man-target') - -var EXEC_OPTS = { - cwd: target -} - -var json = { - name: 'install-bad-man', - version: '1.2.3', - man: [ './install-bad-man.1.lol' ] -} - -common.pendIfWindows('man pages do not get installed on Windows') - -test('setup', function (t) { - setup() - t.pass('setup ran') - t.end() -}) - -test("install from repo on 'OS X'", function (t) { - common.npm( - [ - 'install', - '--prefix', target, - '--global', - pkg - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm command ran from test') - t.equals(code, 1, 'install exited with failure (1)') - t.notOk(stdout, 'no output indicating success') - t.notOk( - stderr.match(/Cannot read property '1' of null/), - 'no longer has cryptic error output' - ) - t.ok( - stderr.match(/install-bad-man\.1\.lol is not a valid name/), - 'got expected error output' - ) - - t.end() - } - ) -}) - -test('clean', function (t) { - cleanup() - t.pass('cleaned up') - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - // make sure it installs locally - mkdirp.sync(resolve(target, 'node_modules')) - fs.writeFileSync( - resolve(pkg, 'package.json'), - JSON.stringify(json, null, 2) + '\n' - ) - fs.writeFileSync(resolve(pkg, 'install-bad-man.1.lol'), 'lol\n') -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) - rimraf.sync(target) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-only-development.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-only-development.js deleted file mode 100644 index ff9d05f5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-only-development.js +++ /dev/null @@ -1,115 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') -var existsSync = fs.existsSync || path.existsSync - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.join(__dirname, 'install-cli-development') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'install-cli-development', - description: 'fixture', - version: '0.0.0', - dependencies: { - dependency: 'file:./dependency' - }, - devDependencies: { - 'dev-dependency': 'file:./dev-dependency' - } -} - -var dependency = { - name: 'dependency', - description: 'fixture', - version: '0.0.0' -} - -var devDependency = { - name: 'dev-dependency', - description: 'fixture', - version: '0.0.0' -} - -test('setup', function (t) { - setup() - t.pass('setup ran') - t.end() -}) - -test('\'npm install --only=development\' should only install devDependencies', function (t) { - common.npm(['install', '--only=development'], EXEC_OPTS, function (err, code) { - t.ifError(err, 'install development successful') - t.equal(code, 0, 'npm install did not raise error code') - t.ok( - JSON.parse(fs.readFileSync( - path.resolve(pkg, 'node_modules/dev-dependency/package.json'), 'utf8') - ), - 'devDependency was installed' - ) - t.notOk( - existsSync(path.resolve(pkg, 'node_modules/dependency/package.json')), - 'dependency was NOT installed' - ) - t.end() - }) -}) - -test('\'npm install --only=development\' should only install devDependencies regardless of npm.config.get(\'production\')', function (t) { - cleanup() - setup() - - common.npm(['install', '--only=development', '--production'], EXEC_OPTS, function (err, code) { - t.ifError(err, 'install development successful') - t.equal(code, 0, 'npm install did not raise error code') - t.ok( - JSON.parse(fs.readFileSync( - path.resolve(pkg, 'node_modules/dev-dependency/package.json'), 'utf8') - ), - 'devDependency was installed' - ) - t.notOk( - existsSync(path.resolve(pkg, 'node_modules/dependency/package.json')), - 'dependency was NOT installed' - ) - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.pass('cleaned up') - t.end() -}) - -function setup () { - mkdirp.sync(path.join(pkg, 'dependency')) - fs.writeFileSync( - path.join(pkg, 'dependency', 'package.json'), - JSON.stringify(dependency, null, 2) - ) - - mkdirp.sync(path.join(pkg, 'dev-dependency')) - fs.writeFileSync( - path.join(pkg, 'dev-dependency', 'package.json'), - JSON.stringify(devDependency, null, 2) - ) - - mkdirp.sync(path.join(pkg, 'node_modules')) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-only-production.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-only-production.js deleted file mode 100644 index 7f46a23e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-only-production.js +++ /dev/null @@ -1,88 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') -var existsSync = fs.existsSync || path.existsSync - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.join(__dirname, 'install-cli-only-production') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'install-cli-only-production', - description: 'fixture', - version: '0.0.0', - scripts: { - prepublish: 'exit 123' - }, - dependencies: { - dependency: 'file:./dependency' - }, - devDependencies: { - 'dev-dependency': 'file:./dev-dependency' - } -} - -var dependency = { - name: 'dependency', - description: 'fixture', - version: '0.0.0' -} - -var devDependency = { - name: 'dev-dependency', - description: 'fixture', - version: '0.0.0' -} - -test('setup', function (t) { - mkdirp.sync(path.join(pkg, 'dependency')) - fs.writeFileSync( - path.join(pkg, 'dependency', 'package.json'), - JSON.stringify(dependency, null, 2) - ) - - mkdirp.sync(path.join(pkg, 'devDependency')) - fs.writeFileSync( - path.join(pkg, 'devDependency', 'package.json'), - JSON.stringify(devDependency, null, 2) - ) - - mkdirp.sync(path.join(pkg, 'node_modules')) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - process.chdir(pkg) - t.end() -}) - -test('\'npm install --only=production\' should only install dependencies', function (t) { - common.npm(['install', '--only=production'], EXEC_OPTS, function (err, code) { - t.ifError(err, 'install production successful') - t.equal(code, 0, 'npm install did not raise error code') - t.ok( - JSON.parse(fs.readFileSync( - path.resolve(pkg, 'node_modules/dependency/package.json'), 'utf8') - ), - 'dependency was installed' - ) - t.notOk( - existsSync(path.resolve(pkg, 'node_modules/dev-dependency/package.json')), - 'devDependency was NOT installed' - ) - t.end() - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-production-nosave.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-production-nosave.js deleted file mode 100644 index cf69ad3f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-production-nosave.js +++ /dev/null @@ -1,69 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var server - -var pkg = path.join(__dirname, 'install-cli-production-nosave') - -var EXEC_OPTS = { cwd: pkg } - -var PACKAGE_JSON1 = { - name: 'install-cli-production-nosave', - version: '0.0.1', - dependencies: { - } -} - -test('setup', function (t) { - setup() - mr({ port: common.port }, function (er, s) { - t.ifError(er, 'started mock registry') - server = s - t.end() - }) -}) - -test('install --production <module> without --save exits successfully', function (t) { - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - 'install', '--production', 'underscore' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'npm install exited with code 0') - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(path.resolve(pkg, 'node_modules')) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(PACKAGE_JSON1, null, 2) - ) - - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-production.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-production.js deleted file mode 100644 index a1fdac6e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-production.js +++ /dev/null @@ -1,88 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') -var existsSync = fs.existsSync || path.existsSync - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.join(__dirname, 'install-cli-production') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'install-cli-production', - description: 'fixture', - version: '0.0.0', - scripts: { - prepublish: 'exit 123' - }, - dependencies: { - dependency: 'file:./dependency' - }, - devDependencies: { - 'dev-dependency': 'file:./dev-dependency' - } -} - -var dependency = { - name: 'dependency', - description: 'fixture', - version: '0.0.0' -} - -var devDependency = { - name: 'dev-dependency', - description: 'fixture', - version: '0.0.0' -} - -test('setup', function (t) { - mkdirp.sync(path.join(pkg, 'dependency')) - fs.writeFileSync( - path.join(pkg, 'dependency', 'package.json'), - JSON.stringify(dependency, null, 2) - ) - - mkdirp.sync(path.join(pkg, 'dev-dependency')) - fs.writeFileSync( - path.join(pkg, 'dev-dependency', 'package.json'), - JSON.stringify(devDependency, null, 2) - ) - - mkdirp.sync(path.join(pkg, 'node_modules')) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - process.chdir(pkg) - t.end() -}) - -test('\'npm install --production\' should only install dependencies', function (t) { - common.npm(['install', '--production'], EXEC_OPTS, function (err, code) { - t.ifError(err, 'install production successful') - t.equal(code, 0, 'npm install did not raise error code') - t.ok( - JSON.parse(fs.readFileSync( - path.resolve(pkg, 'node_modules/dependency/package.json'), 'utf8') - ), - 'dependency was installed' - ) - t.notOk( - existsSync(path.resolve(pkg, 'node_modules/dev-dependency/package.json')), - 'devDependency was NOT installed' - ) - t.end() - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-unicode.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-unicode.js deleted file mode 100644 index 01a5f4a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-cli-unicode.js +++ /dev/null @@ -1,71 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var server - -var pkg = path.resolve(__dirname, 'install-cli-unicode') - -function hasOnlyAscii (s) { - return /^[\000-\177]*$/.test(s) -} - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'install-cli', - description: 'fixture', - version: '0.0.1', - dependencies: { - read: '1.0.5' - } -} - -test('setup', function (t) { - rimraf.sync(pkg) - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - mr({ port: common.port }, function (er, s) { - server = s - t.end() - }) -}) - -test('does not use unicode with --unicode false', function (t) { - common.npm( - [ - '--unicode', 'false', - '--registry', common.registry, - '--loglevel', 'silent', - 'install', 'optimist' - ], - EXEC_OPTS, - function (err, code, stdout) { - t.ifError(err, 'install package read without unicode success') - t.notOk(code, 'npm install exited with code 0') - t.ifError(err, 'npm install ran without issue') - t.ok(stdout, 'got some output') - t.ok(hasOnlyAscii(stdout), 'only ASCII in install output') - - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-from-local.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-from-local.js deleted file mode 100644 index 3cac382a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-from-local.js +++ /dev/null @@ -1,98 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -var root = path.join(__dirname, 'install-from-local') -var pkg = path.join(root, 'package-with-local-paths') - -var EXEC_OPTS = { cwd: pkg } - -var localPaths = { - name: 'package-with-local-paths', - version: '0.0.0', - dependencies: { - 'package-local-dependency': 'file:../package-local-dependency' - }, - devDependencies: { - 'package-local-dev-dependency': 'file:../package-local-dev-dependency' - } -} - -var localDependency = { - name: 'package-local-dependency', - version: '0.0.0', - description: 'Test for local installs' -} - -var localDevDependency = { - name: 'package-local-dev-dependency', - version: '0.0.0', - description: 'Test for local installs' -} - -test('setup', function (t) { - rimraf.sync(pkg) - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(localPaths, null, 2) - ) - - mkdirp.sync(path.join(root, 'package-local-dependency')) - fs.writeFileSync( - path.join(root, 'package-local-dependency', 'package.json'), - JSON.stringify(localDependency, null, 2) - ) - - mkdirp.sync(path.join(root, 'package-local-dev-dependency')) - fs.writeFileSync( - path.join(root, 'package-local-dev-dependency', 'package.json'), - JSON.stringify(localDevDependency, null, 2) - ) - - process.chdir(pkg) - t.end() -}) - -test('\'npm install\' should install local packages', function (t) { - common.npm( - [ - 'install', '.' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'error should not exist') - t.notOk(code, 'npm install exited with code 0') - var dependencyPackageJson = path.resolve( - pkg, - 'node_modules/package-local-dependency/package.json' - ) - t.ok( - JSON.parse(fs.readFileSync(dependencyPackageJson, 'utf8')), - 'package with local dependency installed' - ) - - var devDependencyPackageJson = path.resolve( - pkg, 'node_modules/package-local-dev-dependency/package.json' - ) - t.ok( - JSON.parse(fs.readFileSync(devDependencyPackageJson, 'utf8')), - 'package with local dev dependency installed' - ) - - t.end() - } - ) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - rimraf.sync(root) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-into-likenamed-folder.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-into-likenamed-folder.js deleted file mode 100644 index 187d5fbf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-into-likenamed-folder.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('graceful-fs') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test -var common = require('../common-tap.js') - -var base = path.join(__dirname, path.basename(__filename, '.js')) -var moduleDir = path.join(base, 'example-src') -var destDir = path.join(base, 'example') -var moduleJson = { - name: 'example', - version: '1.0.0' -} - -function setup () { - cleanup() - mkdirp.sync(moduleDir) - mkdirp.sync(path.join(destDir, 'node_modules')) - fs.writeFileSync(path.join(moduleDir, 'package.json'), JSON.stringify(moduleJson)) -} - -function cleanup () { - rimraf.sync(base) -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('like-named', function (t) { - common.npm(['install', '../example-src'], {cwd: destDir}, function (er, code, stdout, stderr) { - t.is(code, 0, 'no error code') - t.is(stderr, '', 'no error output') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-link-scripts.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-link-scripts.js deleted file mode 100644 index acc88b4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-link-scripts.js +++ /dev/null @@ -1,132 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.join(__dirname, 'install-link-scripts') -var tmp = path.join(pkg, 'tmp') -var dep = path.join(pkg, 'dep') - -var json = { - name: 'install-link-scripts', - version: '1.0.0', - description: 'a test', - repository: 'git://github.com/npm/npm.git', - license: 'ISC' -} - -var dependency = { - name: 'dep', - version: '1.0.0', - scripts: { - install: 'node ./bin/foo' - } -} - -var foo = function () { /* -#!/usr/bin/env node - -console.log('hey sup') -*/ }.toString().split('\n').slice(1, -1).join('\n') - -process.env.npm_config_prefix = tmp - -test('plain install', function (t) { - setup() - - common.npm( - [ - 'install', dep, - '--tmp', tmp - ], - { cwd: pkg }, - function (err, code, stdout, stderr) { - t.ifErr(err, 'npm install ' + dep + ' finished without error') - t.equal(code, 0, 'exited ok') - t.notOk(stderr, 'no output stderr') - t.match(stdout, /hey sup/, 'postinstall script for dep ran') - t.end() - } - ) -}) - -test('link', function (t) { - setup() - - common.npm( - [ - 'link', - '--tmp', tmp - ], - { cwd: dep }, - function (err, code, stdout, stderr) { - t.ifErr(err, 'npm link finished without error') - t.equal(code, 0, 'exited ok') - t.notOk(stderr, 'no output stderr') - t.match(stdout, /hey sup/, 'script ran') - t.end() - } - ) -}) - -test('install --link', function (t) { - setup() - - common.npm( - [ - 'link', - '--tmp', tmp - ], - { cwd: dep }, - function (err, code, stdout, stderr) { - t.ifErr(err, 'npm link finished without error') - - common.npm( - [ - 'install', '--link', dependency.name, - '--tmp', tmp - ], - { cwd: pkg }, - function (err, code, stdout, stderr) { - t.ifErr(err, 'npm install --link finished without error') - t.equal(code, 0, 'exited ok') - t.notOk(stderr, 'no output stderr') - t.notMatch(stdout, /hey sup/, "script didn't run") - t.end() - } - ) - } - ) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(tmp) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - mkdirp.sync(path.join(dep, 'bin')) - fs.writeFileSync( - path.join(dep, 'package.json'), - JSON.stringify(dependency, null, 2) - ) - fs.writeFileSync(path.join(dep, 'bin', 'foo'), foo) - fs.chmod(path.join(dep, 'bin', 'foo'), '0755') -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-local-dep-cycle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-local-dep-cycle.js deleted file mode 100644 index 1f76ad95..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-local-dep-cycle.js +++ /dev/null @@ -1,79 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('graceful-fs') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test -var common = require('../common-tap.js') - -var base = path.join(__dirname, path.basename(__filename, '.js')) - -var baseJSON = { - name: 'base', - version: '1.0.0', - dependencies: { - a: 'file:a/', - b: 'file:b/' - } -} - -var aPath = path.join(base, 'a') -var aJSON = { - name: 'a', - version: '1.0.0', - dependencies: { - b: 'file:../b', - c: 'file:../c' - } -} - -var bPath = path.join(base, 'b') -var bJSON = { - name: 'b', - version: '1.0.0' -} - -var cPath = path.join(base, 'c') -var cJSON = { - name: 'c', - version: '1.0.0', - dependencies: { - b: 'file:../b' - } -} - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -test('install', function (t) { - common.npm(['install'], {cwd: base}, function (er, code, stdout, stderr) { - t.ifError(er, 'npm config ran without issue') - t.is(code, 0, 'exited with a non-error code') - t.is(stderr, '', 'Ran without errors') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function saveJson (pkgPath, json) { - mkdirp.sync(pkgPath) - fs.writeFileSync(path.join(pkgPath, 'package.json'), JSON.stringify(json, null, 2)) -} - -function setup () { - saveJson(base, baseJSON) - saveJson(aPath, aJSON) - saveJson(bPath, bJSON) - saveJson(cPath, cJSON) -} - -function cleanup () { - rimraf.sync(base) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-man.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-man.js deleted file mode 100644 index d24819ca..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-man.js +++ /dev/null @@ -1,77 +0,0 @@ -var fs = require('fs') -var resolve = require('path').resolve - -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = resolve(__dirname, 'install-man') -var target = resolve(__dirname, 'install-man-target') - -common.pendIfWindows('man pages do not get installed on Windows') - -var EXEC_OPTS = { - cwd: target -} - -var json = { - name: 'install-man', - version: '1.2.3', - man: [ './install-man.1' ] -} - -test('setup', function (t) { - setup() - t.pass('setup ran') - t.end() -}) - -test('install man page', function (t) { - common.npm( - [ - 'install', - '--prefix', target, - '--global', - pkg - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm command ran from test') - t.equals(code, 0, 'install exited with success (0)') - t.ok(stdout, 'output indicating success') - t.ok( - fs.existsSync(resolve(target, 'share', 'man', 'man1', 'install-man.1')), - 'man page link was created' - ) - - t.end() - } - ) -}) - -test('clean', function (t) { - cleanup() - t.pass('cleaned up') - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - // make sure it installs locally - mkdirp.sync(resolve(target, 'node_modules')) - fs.writeFileSync( - resolve(pkg, 'package.json'), - JSON.stringify(json, null, 2) + '\n' - ) - fs.writeFileSync(resolve(pkg, 'install-man.1'), 'THIS IS A MANPAGE\n') -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) - rimraf.sync(target) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-noargs-dev.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-noargs-dev.js deleted file mode 100644 index f16a7498..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-noargs-dev.js +++ /dev/null @@ -1,109 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var server - -var pkg = path.join(__dirname, 'install-noargs-dev') - -var EXEC_OPTS = { cwd: pkg } - -var PACKAGE_JSON1 = { - name: 'install-noargs-dev', - version: '0.0.1', - devDependencies: { - 'underscore': '1.3.1' - } -} - -var PACKAGE_JSON2 = { - name: 'install-noargs-dev', - version: '0.0.2', - devDependencies: { - 'underscore': '1.5.1' - } -} - -test('setup', function (t) { - setup() - mr({ port: common.port }, function (er, s) { - t.ifError(er, 'started mock registry') - server = s - t.end() - }) -}) - -test('install noargs installs devDependencies', function (t) { - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - 'install' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'npm install exited with code 0') - - var p = path.join(pkg, 'node_modules', 'underscore', 'package.json') - var pkgJson = JSON.parse(fs.readFileSync(p)) - - t.equal(pkgJson.version, '1.3.1') - t.end() - } - ) -}) - -test('install noargs installs updated devDependencies', function (t) { - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(PACKAGE_JSON2, null, 2) - ) - - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - 'install' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'npm install exited with code 0') - - var p = path.join(pkg, 'node_modules', 'underscore', 'package.json') - var pkgJson = JSON.parse(fs.readFileSync(p)) - - t.equal(pkgJson.version, '1.5.1') - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(path.resolve(pkg, 'node_modules')) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(PACKAGE_JSON1, null, 2) - ) - - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-order.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-order.js deleted file mode 100644 index c1c4e9dc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-order.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict' -var test = require('tap').test -var sortActions = require('../../lib/install/diff-trees.js').sortActions - -var a = { - package: {_location: '/a', _requiredBy: []} -} -var b = { - package: {_location: '/b', _requiredBy: []} -} -var c = { - package: {_location: '/c', _requiredBy: ['/a', '/b']} -} - -test('install-order when installing deps', function (t) { - var plain = [ - ['add', a], - ['add', b], - ['add', c]] - var sorted = [ - ['add', c], - ['add', a], - ['add', b]] - t.isDeeply(sortActions(plain), sorted) - t.end() -}) - -test('install-order when not installing deps', function (t) { - var plain = [ - ['add', a], - ['add', b]] - var sorted = [ - ['add', a], - ['add', b]] - t.isDeeply(sortActions(plain), sorted) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-package-json-order.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-package-json-order.js deleted file mode 100644 index 93977c6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-package-json-order.js +++ /dev/null @@ -1,62 +0,0 @@ -var test = require('tap').test -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var spawn = require('child_process').spawn -var npm = require.resolve('../../bin/npm-cli.js') -var node = process.execPath -var pkg = path.resolve(__dirname, 'install-package-json-order') -var workdir = path.join(pkg, 'workdir') -var tmp = path.join(pkg, 'tmp') -var cache = path.join(pkg, 'cache') -var fs = require('fs') -var osenv = require('osenv') - -test('package.json sorting after install', function (t) { - var packageJson = path.resolve(pkg, 'package.json') - var installedPackage = path.resolve(workdir, - 'node_modules/install-package-json-order/package.json') - - cleanup() - mkdirp.sync(cache) - mkdirp.sync(tmp) - mkdirp.sync(workdir) - setup() - - var before = JSON.parse(fs.readFileSync(packageJson).toString()) - var child = spawn(node, [npm, 'install', pkg], { cwd: workdir }) - - child.on('close', function (code) { - t.equal(code, 0, 'npm install exited with code') - var result = fs.readFileSync(installedPackage, 'utf8') - var resultAsJson = JSON.parse(result) - t.same(resultAsJson.array, before.array) - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.pass('cleaned up') - t.end() -}) - -function setup () { - mkdirp.sync(pkg) - - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ - 'name': 'install-package-json-order', - 'version': '0.0.0', - 'array': [ 'one', 'two', 'three' ] - }, null, 2), 'utf8') - fs.writeFileSync(path.resolve(workdir, 'package.json'), JSON.stringify({ - 'name': 'install-package-json-order-work', - 'version': '0.0.0' - }, null, 2), 'utf8') -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(cache) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-parse-error.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-parse-error.js deleted file mode 100644 index 72d19efc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-parse-error.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict' -var path = require('path') -var test = require('tap').test -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir -var common = require('../common-tap.js') - -var testdir = path.join(__dirname, path.basename(__filename, '.js')) - -var fixture = new Tacks(Dir({ - 'package.json': File( - '{\n' + - "'name': 'some-name',\n" + - "'dependencies': {}\n" + - '}' - ), - 'node_modules': Dir() -})) - -function setup () { - fixture.create(testdir) -} - -function cleanup () { - fixture.remove(testdir) -} - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -test('failing to parse package.json should be error', function (t) { - common.npm( - ['install'], - {cwd: testdir}, - function (err, code, stdout, stderr) { - if (err) throw err - t.equal(code, 1, 'exit not ok') - t.similar(stderr, /npm ERR! Failed to parse json/) - t.end() - } - ) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-preferglobal-warnings.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-preferglobal-warnings.js deleted file mode 100644 index 9cd2644c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-preferglobal-warnings.js +++ /dev/null @@ -1,131 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var preferGlobalJson = { - name: 'npm-test-preferglobal-dep', - version: '0.0.0', - preferGlobal: true -} - -var dependenciesJson = { - name: 'npm-test-preferglobal-dependency-check', - version: '0.0.0', - dependencies: { - 'npm-test-preferglobal-dep': 'file:../' + preferGlobalJson.name - } -} - -var devDependenciesJson = { - name: 'npm-test-preferglobal-devDependency-check', - version: '0.0.0', - devDependencies: { - 'npm-test-preferglobal-dep': 'file:../' + preferGlobalJson.name - } -} - -var emptyPackage = { - name: 'npm-test-preferglobal-empty-package', - version: '0.0.0' -} - -test('install a preferGlobal dependency without warning', function (t) { - setup(dependenciesJson) - common.npm([ - 'install', - '--loglevel=warn' - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'packages were installed') - t.notMatch( - stderr, - /WARN.*prefer global/, - 'install should not warn when dependency is preferGlobal') - t.end() - }) -}) - -test('install a preferGlobal dependency without warning', function (t) { - setup(devDependenciesJson) - common.npm([ - 'install', - '--loglevel=warn' - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'packages were installed') - t.notMatch( - stderr, - /WARN.*prefer global/, - 'install should not warn when devDependency is preferGlobal') - t.end() - }) -}) - -test('warn if a preferGlobal package is being installed direct', function (t) { - setup(emptyPackage) - common.npm([ - 'install', - 'file:../' + preferGlobalJson.name, - '--loglevel=warn' - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'packages were installed') - t.match( - stderr, - /WARN.*prefer global/, - 'install should warn when new package is preferGlobal') - t.end() - }) -}) - -test('warn if a preferGlobal package is being saved', function (t) { - setup(emptyPackage) - common.npm([ - 'install', - 'file:../' + preferGlobalJson.name, - '--save', - '--loglevel=warn' - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'packages were installed') - t.match( - stderr, - /WARN.*prefer global/, - 'install should warn when new package is preferGlobal') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup (json) { - cleanup() - mkPkg(preferGlobalJson) - process.chdir(mkPkg(json)) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - var pkgs = [preferGlobalJson, - dependenciesJson, - devDependenciesJson, - emptyPackage] - pkgs.forEach(function (json) { - rimraf.sync(path.resolve(__dirname, json.name)) - }) -} - -function mkPkg (json) { - var pkgPath = path.resolve(__dirname, json.name) - mkdirp.sync(pkgPath) - fs.writeFileSync( - path.join(pkgPath, 'package.json'), - JSON.stringify(json, null, 2) - ) - return pkgPath -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-report-just-installed.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-report-just-installed.js deleted file mode 100644 index fb3bc65d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-report-just-installed.js +++ /dev/null @@ -1,76 +0,0 @@ -'use strict' -var path = require('path') -var test = require('tap').test -var Tacks = require('tacks') -var Dir = Tacks.Dir -var File = Tacks.File -var common = require('../common-tap.js') - -var testdir = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixture = new Tacks(Dir({ - node_modules: Dir({ - a: Dir({ - 'package.json': File({ - name: 'a', - version: '1.0.0', - dependencies: { - b: '1.0.0' - } - }), - node_modules: Dir({ - b: Dir({ - 'package.json': File({ - name: 'b', - version: '1.0.0' - }) - }) - }) - }) - }), - 'b-src': Dir({ - 'package.json': File({ - name: 'b', - version: '1.0.0' - }) - }) -})) - -function setup () { - cleanup() - fixture.create(testdir) -} - -function cleanup () { - fixture.remove(testdir) -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('install-report', function (t) { - common.npm(['install', '--json', 'b-src'], {cwd: testdir}, function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'installed successfully') - t.is(stderr, '', 'no warnings') - try { - var report = JSON.parse(stdout) - t.pass('stdout was json') - } catch (ex) { - t.fail('stdout was json') - console.error(ex) - t.skip(2) - return t.end() - } - var depNames = Object.keys(report.dependencies) - t.is(depNames.length, 1, 'one dependency reported as installed') - t.ok(report.dependencies.b, 'that dependency was `b`') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-save-exact.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-save-exact.js deleted file mode 100644 index 14e32f0f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-save-exact.js +++ /dev/null @@ -1,114 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var server - -var pkg = path.join(__dirname, 'install-save-exact') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'install-save-exact', - version: '0.0.1', - description: 'fixture' -} - -test('setup', function (t) { - setup() - mr({ port: common.port }, function (er, s) { - server = s - t.end() - }) -}) - -test('\'npm install --save --save-exact\' should install local pkg', function (t) { - common.npm( - [ - '--loglevel', 'silent', - '--registry', common.registry, - '--save', - '--save-exact', - 'install', 'underscore@1.3.1' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm ran without issue') - t.notOk(code, 'npm install exited without raising an error code') - - var p = path.resolve(pkg, 'node_modules/underscore/package.json') - t.ok(JSON.parse(fs.readFileSync(p))) - - p = path.resolve(pkg, 'package.json') - var pkgJson = JSON.parse(fs.readFileSync(p, 'utf8')) - - t.same( - pkgJson.dependencies, - { 'underscore': '1.3.1' }, - 'underscore dependency should specify exactly 1.3.1' - ) - - t.end() - } - ) -}) - -test('\'npm install --save-dev --save-exact\' should install local pkg', function (t) { - setup() - - common.npm( - [ - '--loglevel', 'silent', - '--registry', common.registry, - '--save-dev', - '--save-exact', - 'install', 'underscore@1.3.1' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm ran without issue') - t.notOk(code, 'npm install exited without raising an error code') - - var p = path.resolve(pkg, 'node_modules/underscore/package.json') - t.ok(JSON.parse(fs.readFileSync(p))) - - p = path.resolve(pkg, 'package.json') - var pkgJson = JSON.parse(fs.readFileSync(p, 'utf8')) - - t.same( - pkgJson.devDependencies, - { 'underscore': '1.3.1' }, - 'underscore dependency should specify exactly 1.3.1' - ) - - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(path.resolve(pkg, 'node_modules')) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-save-local.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-save-local.js deleted file mode 100644 index 1bc739cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-save-local.js +++ /dev/null @@ -1,126 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var root = path.join(__dirname, 'install-save-local') -var pkg = path.join(root, 'package') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'install-save-local', - version: '0.0.0' -} - -var localDependency = { - name: 'package-local-dependency', - version: '0.0.0' -} - -var localDevDependency = { - name: 'package-local-dev-dependency', - version: '0.0.0' -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('\'npm install --save ../local/path\' should save to package.json', function (t) { - common.npm( - [ - '--loglevel', 'silent', - '--save', - 'install', '../package-local-dependency' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'npm install exited with code 0') - - var dependencyPackageJson = path.join( - pkg, 'node_modules', 'package-local-dependency', 'package.json' - ) - t.ok(JSON.parse(fs.readFileSync(dependencyPackageJson, 'utf8'))) - - var pkgJson = JSON.parse(fs.readFileSync(pkg + '/package.json', 'utf8')) - t.is(Object.keys(pkgJson.dependencies).length, 1, 'only one dep') - t.ok( - /file:.*?[/\\]package-local-dependency$/.test(pkgJson.dependencies['package-local-dependency']), - 'local package saved correctly' - ) - t.end() - } - ) -}) - -test('\'npm install --save-dev ../local/path\' should save to package.json', function (t) { - setup() - common.npm( - [ - '--loglevel', 'silent', - '--save-dev', - 'install', '../package-local-dev-dependency' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'npm install exited with code 0') - - var dependencyPackageJson = path.resolve( - pkg, 'node_modules', 'package-local-dev-dependency', 'package.json' - ) - t.ok(JSON.parse(fs.readFileSync(dependencyPackageJson, 'utf8'))) - - var pkgJson = JSON.parse(fs.readFileSync(pkg + '/package.json', 'utf8')) - t.is(Object.keys(pkgJson.devDependencies).length, 1, 'only one dep') - t.ok( - /file:.*?[/\\]package-local-dev-dependency$/.test(pkgJson.devDependencies['package-local-dev-dependency']), - 'local package saved correctly' - ) - - t.end() - } - ) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - process.chdir(__dirname) - rimraf.sync(root) -} - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - mkdirp.sync(path.join(root, 'package-local-dependency')) - fs.writeFileSync( - path.join(root, 'package-local-dependency', 'package.json'), - JSON.stringify(localDependency, null, 2) - ) - - mkdirp.sync(path.join(root, 'package-local-dev-dependency')) - fs.writeFileSync( - path.join(root, 'package-local-dev-dependency', 'package.json'), - JSON.stringify(localDevDependency, null, 2) - ) - - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-save-prefix.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-save-prefix.js deleted file mode 100644 index b669c5fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-save-prefix.js +++ /dev/null @@ -1,178 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var server - -var pkg = path.join(__dirname, 'install-save-prefix') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'install-save-prefix', - version: '0.0.1' -} - -test('setup', function (t) { - setup() - mr({ port: common.port }, function (er, s) { - t.ifError(er, 'started mock registry') - server = s - t.end() - }) -}) - -test('install --save with \'^\' save prefix should accept minor updates', function (t) { - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - '--save-prefix', '^', - '--save', - 'install', 'underscore@latest' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'npm install exited with code 0') - - var p = path.join(pkg, 'node_modules', 'underscore', 'package.json') - t.ok(JSON.parse(fs.readFileSync(p))) - - var pkgJson = JSON.parse(fs.readFileSync( - path.join(pkg, 'package.json'), - 'utf8' - )) - t.deepEqual( - pkgJson.dependencies, - { 'underscore': '^1.5.1' }, - 'got expected save prefix and version of 1.5.1' - ) - t.end() - } - ) -}) - -test('install --save-dev with \'^\' save prefix should accept minor dev updates', function (t) { - setup() - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - '--save-prefix', '^', - '--save-dev', - 'install', 'underscore@1.3.1' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'npm install exited with code 0') - - var p = path.join(pkg, 'node_modules', 'underscore', 'package.json') - t.ok(JSON.parse(fs.readFileSync(p))) - - var pkgJson = JSON.parse(fs.readFileSync( - path.join(pkg, 'package.json'), - 'utf8' - )) - t.deepEqual( - pkgJson.devDependencies, - { 'underscore': '^1.3.1' }, - 'got expected save prefix and version of 1.3.1' - ) - t.end() - } - ) -}) - -test('install --save with \'~\' save prefix should accept patch updates', function (t) { - setup() - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - '--save-prefix', '~', - '--save', - 'install', 'underscore@1.3.1' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'npm install exited with code 0') - - var p = path.join(pkg, 'node_modules', 'underscore', 'package.json') - t.ok(JSON.parse(fs.readFileSync(p))) - - var pkgJson = JSON.parse(fs.readFileSync( - path.join(pkg, 'package.json'), - 'utf8' - )) - t.deepEqual( - pkgJson.dependencies, - { 'underscore': '~1.3.1' }, - 'got expected save prefix and version of 1.3.1' - ) - t.end() - } - ) -}) - -test('install --save-dev with \'~\' save prefix should accept patch updates', function (t) { - setup() - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - '--save-prefix', '~', - '--save-dev', - 'install', 'underscore@1.3.1' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'npm install exited with code 0') - - var p = path.join(pkg, 'node_modules', 'underscore', 'package.json') - t.ok(JSON.parse(fs.readFileSync(p))) - - var pkgJson = JSON.parse(fs.readFileSync( - path.join(pkg, 'package.json'), - 'utf8' - )) - t.deepEqual( - pkgJson.devDependencies, - { 'underscore': '~1.3.1' }, - 'got expected save prefix and version of 1.3.1' - ) - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(path.resolve(pkg, 'node_modules')) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-scoped-already-installed.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-scoped-already-installed.js deleted file mode 100644 index 58966b04..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-scoped-already-installed.js +++ /dev/null @@ -1,139 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') -var existsSync = fs.existsSync || path.existsSync - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -var root = path.join(__dirname, 'install-scoped-already-installed') -var pkg = path.join(root, 'package-with-scoped-paths') -var modules = path.join(pkg, 'node_modules') - -var EXEC_OPTS = { cwd: pkg } - -var scopedPaths = { - name: 'package-with-scoped-paths', - version: '0.0.0', - dependencies: { - 'package-local-dependency': 'file:../package-local-dependency', - '@scoped/package-scoped-dependency': 'file:../package-scoped-dependency' - } -} - -var localDependency = { - name: 'package-local-dependency', - version: '0.0.0', - description: 'Test for local installs' -} - -var scopedDependency = { - name: '@scoped/package-scoped-dependency', - version: '0.0.0', - description: 'Test for local installs' -} - -test('setup', function (t) { - rimraf.sync(root) - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(scopedPaths, null, 2) - ) - - mkdirp.sync(path.join(root, 'package-local-dependency')) - fs.writeFileSync( - path.join(root, 'package-local-dependency', 'package.json'), - JSON.stringify(localDependency, null, 2) - ) - - mkdirp.sync(path.join(root, 'package-scoped-dependency')) - fs.writeFileSync( - path.join(root, 'package-scoped-dependency', 'package.json'), - JSON.stringify(scopedDependency, null, 2) - ) - - process.chdir(pkg) - t.end() -}) - -test('installing already installed local scoped package', function (t) { - common.npm( - [ - '--loglevel', 'silent', - '--parseable', - 'install' - ], - EXEC_OPTS, - function (err, code, stdout) { - var installed = parseNpmInstallOutput(stdout) - t.ifError(err, 'install ran to completion without error') - t.notOk(code, 'npm install exited with code 0') - t.ok( - existsSync(path.join(modules, '@scoped', 'package-scoped-dependency', 'package.json')), - 'package installed' - ) - t.ok( - contains(installed, 'node_modules/@scoped/package-scoped-dependency'), - 'installed @scoped/package-scoped-dependency' - ) - t.ok( - contains(installed, 'node_modules/package-local-dependency'), - 'installed package-local-dependency' - ) - - common.npm( - [ - '--loglevel', 'silent', - '--parseable', - 'install' - ], - EXEC_OPTS, - function (err, code, stdout) { - t.ifError(err, 'install ran to completion without error') - t.notOk(code, 'npm install raised no error code') - - installed = parseNpmInstallOutput(stdout) - - t.ok( - existsSync(path.join(modules, '@scoped', 'package-scoped-dependency', 'package.json')), - 'package installed' - ) - - t.notOk( - contains(installed, 'node_modules/@scoped/package-scoped-dependency'), - 'did not reinstall @scoped/package-scoped-dependency' - ) - t.notOk( - contains(installed, 'node_modules/package-local-dependency'), - 'did not reinstall package-local-dependency' - ) - t.end() - } - ) - } - ) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - rimraf.sync(root) - t.end() -}) - -function contains (list, element) { - var matcher = new RegExp(element.replace(/\//g, '[\\\\/]') + '$') - for (var i = 0; i < list.length; ++i) { - if (matcher.test(list[i])) { - return true - } - } - return false -} - -function parseNpmInstallOutput (stdout) { - return stdout.trim().split(/\n\n|\s+/) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-scoped-link.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-scoped-link.js deleted file mode 100644 index 9171b8f4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-scoped-link.js +++ /dev/null @@ -1,86 +0,0 @@ -var exec = require('child_process').exec -var fs = require('graceful-fs') -var path = require('path') -var existsSync = fs.existsSync || path.existsSync - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var escapeExecPath = require('../../lib/utils/escape-exec-path') - -var common = require('../common-tap.js') - -var pkg = path.join(__dirname, 'install-scoped-link') -var work = path.join(__dirname, 'install-scoped-link-TEST') -var modules = path.join(work, 'node_modules') - -var EXEC_OPTS = { cwd: work } - -var world = '#!/usr/bin/env node\nconsole.log("hello blrbld")\n' - -var json = { - name: '@scoped/package', - version: '0.0.0', - bin: { - hello: './world.js' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - fs.writeFileSync(path.join(pkg, 'world.js'), world) - - mkdirp.sync(modules) - process.chdir(work) - - t.end() -}) - -test('installing package with links', function (t) { - common.npm( - [ - '--loglevel', 'silent', - 'install', pkg - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'install ran to completion without error') - t.notOk(code, 'npm install exited with code 0') - - t.ok( - existsSync(path.join(modules, '@scoped', 'package', 'package.json')), - 'package installed' - ) - t.ok(existsSync(path.join(modules, '.bin')), 'binary link directory exists') - - var hello = path.join(modules, '.bin', 'hello') - t.ok(existsSync(hello), 'binary link exists') - - exec(escapeExecPath(hello), function (err, stdout, stderr) { - t.ifError(err, 'command ran fine') - t.notOk(stderr, 'got no error output back') - t.equal(stdout, 'hello blrbld\n', 'output was as expected') - - t.end() - }) - } - ) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(work) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-scoped-with-peer-dependency.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-scoped-with-peer-dependency.js deleted file mode 100644 index 71584b11..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-scoped-with-peer-dependency.js +++ /dev/null @@ -1,59 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var pkg = path.join(__dirname, 'install-scoped-with-peer-dependency') -var local = path.join(pkg, 'package') - -var EXEC_OPTS = { } - -var json = { - name: '@scope/package', - version: '0.0.0', - peerDependencies: { - underscore: '*' - } -} - -test('setup', function (t) { - setup() - - t.end() -}) - -test('it should install peerDependencies in same tree level as the parent package', function (t) { - common.npm(['install', '--loglevel=warn', './package'], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, 'install local package successful') - t.equal(code, 0, 'npm install exited with code') - t.match(stderr, /npm WARN @scope[/]package@0[.]0[.]0 requires a peer of underscore@[*] but none was installed[.]\n/, - 'npm install warned about unresolved peer dep') - - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(local) - mkdirp.sync(path.resolve(pkg, 'node_modules')) - fs.writeFileSync( - path.join(local, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-with-dev-dep-duplicate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-with-dev-dep-duplicate.js deleted file mode 100644 index 41eb8233..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/install-with-dev-dep-duplicate.js +++ /dev/null @@ -1,90 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var npm = npm = require('../../') - -var pkg = path.resolve(__dirname, 'dev-dep-duplicate') - -var json = { - author: 'Anders Janmyr', - name: 'dev-dep-duplicate', - version: '0.0.0', - dependencies: { - underscore: '1.5.1' - }, - devDependencies: { - underscore: '1.3.1' - } -} - -var expected = { - name: 'dev-dep-duplicate', - version: '0.0.0', - dependencies: { - underscore: { - version: '1.5.1', - from: 'underscore@1.5.1', - resolved: common.registry + '/underscore/-/underscore-1.5.1.tgz', - invalid: true - } - } -} - -test('prefers version from dependencies over devDependencies', function (t) { - t.plan(1) - - mr({ port: common.port }, function (er, s) { - setup(function (err) { - if (err) return t.fail(err) - - npm.install('.', function (err) { - if (err) return t.fail(err) - - npm.commands.ls([], true, function (err, _, results) { - if (err) return t.fail(err) - - // these contain full paths so we can't do an exact match - // with them - delete results.problems - delete results.dependencies.underscore.problems - t.deepEqual(results, expected) - s.close() - t.end() - }) - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup (cb) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) - - var opts = { - cache: path.resolve(pkg, 'cache'), - registry: common.registry - } - npm.load(opts, cb) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/invalid-cmd-exit-code.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/invalid-cmd-exit-code.js deleted file mode 100644 index f4bb444a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/invalid-cmd-exit-code.js +++ /dev/null @@ -1,28 +0,0 @@ -var test = require('tap').test -var common = require('../common-tap.js') - -var opts = { cwd: process.cwd() } - -test('npm asdf should return exit code 1', function (t) { - common.npm(['asdf'], opts, function (er, c) { - if (er) throw er - t.ok(c, 'exit code should not be zero') - t.end() - }) -}) - -test('npm help should return exit code 0', function (t) { - common.npm(['help'], opts, function (er, c) { - if (er) throw er - t.equal(c, 0, 'exit code should be 0') - t.end() - }) -}) - -test('npm help fadf should return exit code 0', function (t) { - common.npm(['help', 'fadf'], opts, function (er, c) { - if (er) throw er - t.equal(c, 0, 'exit code should be 0') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/is-fs-access-available.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/is-fs-access-available.js deleted file mode 100644 index 3c1b30ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/is-fs-access-available.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict' -var fs = require('fs') -var test = require('tap').test -var requireInject = require('require-inject') -var semver = require('semver') -var extend = Object.assign || require('util')._extend - -var globalProcess = global.process - -function loadIsFsAccessAvailable (newProcess, newFs) { - global.process = extend(extend({}, global.process), newProcess) - var mocks = {fs: extend(extend({}, fs), newFs)} - var isFsAccessAvailable = requireInject('../../lib/install/is-fs-access-available.js', mocks) - global.process = globalProcess - return isFsAccessAvailable -} - -var fsWithAccess = {access: function () {}} -var fsWithoutAccess = {access: undefined} - -if (semver.lt(process.version, '0.12.0')) { - test('skipping', function (t) { - t.pass('skipping all tests on < 0.12.0 due to process not being injectable') - t.end() - }) -} else { - test('mac + !fs.access', function (t) { - var isFsAccessAvailable = loadIsFsAccessAvailable({platform: 'darwin'}, fsWithoutAccess) - t.is(isFsAccessAvailable, false, 'not available') - t.end() - }) - - test('mac + fs.access', function (t) { - var isFsAccessAvailable = loadIsFsAccessAvailable({platform: 'darwin'}, fsWithAccess) - t.is(isFsAccessAvailable, true, 'available') - t.end() - }) - - test('windows + !fs.access', function (t) { - var isFsAccessAvailable = loadIsFsAccessAvailable({platform: 'win32'}, fsWithoutAccess) - t.is(isFsAccessAvailable, false, 'not available') - t.end() - }) - - test('windows + fs.access + node 0.12.7', function (t) { - var isFsAccessAvailable = loadIsFsAccessAvailable({platform: 'win32', version: '0.12.7'}, fsWithAccess) - t.is(isFsAccessAvailable, false, 'not available') - t.end() - }) - - test('windows + fs.access + node 2.4.0', function (t) { - var isFsAccessAvailable = loadIsFsAccessAvailable({platform: 'win32', version: '2.4.0'}, fsWithAccess) - t.is(isFsAccessAvailable, true, 'available') - t.end() - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/it.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/it.js deleted file mode 100644 index 6fc2a6fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/it.js +++ /dev/null @@ -1,77 +0,0 @@ -var join = require('path').join -var statSync = require('graceful-fs').statSync -var writeFileSync = require('graceful-fs').writeFileSync - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -var pkg = join(__dirname, 'run-script') -var installed = join(pkg, 'node_modules', 'underscore', 'package.json') - -var json = { - name: 'npm-it-test', - dependencies: { - underscore: '1.5.1' - }, - scripts: { - test: 'echo hax' - } -} - -var server - -test('run up the mock registry', function (t) { - mr({ port: common.port }, function (err, s) { - if (err) throw err - server = s - t.end() - }) -}) - -test('npm install-test', function (t) { - setup() - common.npm('install-test', { cwd: pkg }, function (err, code, stdout, stderr) { - if (err) throw err - t.equal(code, 0, 'command ran without error') - t.ok(statSync(installed), 'package was installed') - t.equal(require(installed).version, '1.5.1', 'underscore got installed as expected') - t.match(stdout, /hax/, 'found expected test output') - t.notOk(stderr, 'stderr should be empty') - t.end() - }) -}) - -test('npm it (the form most people will use)', function (t) { - setup() - common.npm('it', { cwd: pkg }, function (err, code, stdout, stderr) { - if (err) throw err - t.equal(code, 0, 'command ran without error') - t.ok(statSync(installed), 'package was installed') - t.equal(require(installed).version, '1.5.1', 'underscore got installed as expected') - t.match(stdout, /hax/, 'found expected test output') - t.notOk(stderr, 'stderr should be empty') - t.end() - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - server.close() - cleanup() - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(pkg) - writeFileSync(join(pkg, 'package.json'), JSON.stringify(json, null, 2)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-array-bin.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-array-bin.js deleted file mode 100644 index 3e421ee2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-array-bin.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-array-bin') -var modulepath = path.resolve(basepath, 'node_modules') -var installedpath = path.resolve(modulepath, 'npm-test-array-bin') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir -var fixture = new Tacks( - Dir({ - bin: Dir({ - 'array-bin': File( - '#!/usr/bin/env node\n' + - "console.log('test ran ok')\n" - ) - }), - 'package.json': File({ - name: 'npm-test-array-bin', - version: '1.2.5', - bin: [ - 'bin/array-bin' - ], - scripts: { - test: 'node test.js' - } - }), - 'test.js': File( - "require('child_process').exec('array-bin', { env: process.env },\n" + - ' function (err, stdout, stderr) {\n' + - " if (err && err.code) throw new Error('exited badly with code = ' + err.code)\n" + - ' console.log(stdout)\n' + - ' console.error(stderr)\n' + - ' }\n' + - ')\n' - ) - }) -) -test('setup', function (t) { - setup() - t.done() -}) -test('array-bin', function (t) { - common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest) - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'install went ok') - t.equal(stderr, '', 'no error output') - common.npm(['test'], {cwd: installedpath}, testCheckAndRemove) - } - function testCheckAndRemove (err, code, stdout, stderr) { - t.ifError(err, 'npm test on array bin') - t.equal(code, 0, 'exited OK') - t.equal(stderr.trim(), '', 'no error output') - t.match(stdout, /test ran ok/, 'child script ran properly') - common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone) - } - function removeCheckAndDone (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'remove went ok') - t.done() - } -}) -test('cleanup', function (t) { - cleanup() - t.done() -}) -function setup () { - cleanup() - fixture.create(fixturepath) - mkdirp.sync(modulepath) -} -function cleanup () { - fixture.remove(fixturepath) - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-bundled-git.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-bundled-git.js deleted file mode 100644 index 15fbac84..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-bundled-git.js +++ /dev/null @@ -1,99 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-bundled-git') -var modulepath = path.resolve(basepath, 'node_modules') -var installedpath = path.resolve(modulepath, 'npm-test-bundled-git') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var minimatchExpected = { - name: 'minimatch', - description: 'a glob matcher in javascript', - version: '0.2.1', - repository: { - type: 'git', - url: 'git://github.com/isaacs/minimatch.git' - }, - main: 'minimatch.js', - scripts: { - test: 'tap test' - }, - engines: { - node: '*' - }, - dependencies: { - 'lru-cache': '~1.0.5' - }, - devDependencies: { - tap: '~0.1.3' - }, - licenses: [ - { - type: 'MIT', - url: 'http://github.com/isaacs/minimatch/raw/master/LICENSE' - } - ] -} - -var fixture = new Tacks( - Dir({ - README: File( - 'just an npm test\n' - ), - 'package.json': File({ - name: 'npm-test-bundled-git', - scripts: { - test: 'node test.js' - }, - version: '1.2.5', - dependencies: { - glob: 'git://github.com/isaacs/node-glob.git#npm-test' - }, - bundledDependencies: [ - 'glob' - ] - }) - }) -) -test('setup', function (t) { - setup() - t.done() -}) -test('bundled-git', function (t) { - common.npm(['install', '--global-style', fixturepath], {cwd: basepath}, installCheckAndTest) - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'install went ok') - - var actual = require(path.resolve(installedpath, 'node_modules/glob/node_modules/minimatch/package.json')) - Object.keys(minimatchExpected).forEach(function (key) { - t.isDeeply(actual[key], minimatchExpected[key], key + ' set to the right value') - }) - - common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone) - } - function removeCheckAndDone (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'remove went ok') - t.done() - } -}) -test('cleanup', function (t) { - cleanup() - t.done() -}) -function setup () { - cleanup() - fixture.create(fixturepath) - mkdirp.sync(modulepath) -} -function cleanup () { - fixture.remove(fixturepath) - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-dir-bin.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-dir-bin.js deleted file mode 100644 index e9e6bdfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-dir-bin.js +++ /dev/null @@ -1,79 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-dir-bin') -var modulepath = path.resolve(basepath, 'node_modules') -var installedpath = path.resolve(modulepath, 'npm-test-dir-bin') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir -var fixture = new Tacks( - Dir({ - bin: Dir({ - 'dir-bin': File( - '#!/usr/bin/env node\n' + - "console.log('test ran ok')\n" - ) - }), - 'package.json': File({ - name: 'npm-test-dir-bin', - version: '1.2.5', - directories: { - bin: './bin' - }, - scripts: { - test: 'node test.js' - } - }), - 'test.js': File( - "require('child_process').exec('dir-bin', { env: process.env },\n" + - ' function (err, stdout, stderr) {\n' + - " if (err && err.code) throw new Error('exited badly with code = ' + err.code)\n" + - ' console.log(stdout)\n' + - ' console.error(stderr)\n' + - ' }\n' + - ')\n' - ) - }) -) -test('setup', function (t) { - setup() - t.done() -}) -test('dir-bin', function (t) { - common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest) - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'install went ok') - common.npm(['test'], {cwd: installedpath}, testCheckAndRemove) - } - function testCheckAndRemove (err, code, stdout, stderr) { - t.ifError(err, 'npm test on array bin') - t.equal(code, 0, 'exited OK') - t.equal(stderr.trim(), '', 'no error output') - t.match(stdout, /test ran ok/, 'child script ran properly') - common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone) - } - function removeCheckAndDone (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'remove went ok') - t.done() - } -}) -test('cleanup', function (t) { - cleanup() - t.done() -}) -function setup () { - cleanup() - fixture.create(fixturepath) - mkdirp.sync(modulepath) -} -function cleanup () { - fixture.remove(fixturepath) - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-ignore-nested-nm.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-ignore-nested-nm.js deleted file mode 100644 index 095c41ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-ignore-nested-nm.js +++ /dev/null @@ -1,64 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-ignore-nested-nm') -var modulepath = path.resolve(basepath, 'node_modules') -var installedpath = path.resolve(modulepath, 'npm-test-ignore-nested-nm') -var fs = require('graceful-fs') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var fileData = 'I WILL NOT BE IGNORED!\n' -var fixture = new Tacks( - Dir({ - lib: Dir({ - node_modules: Dir({ - foo: File(fileData) - }) - }), - 'package.json': File({ - name: 'npm-test-ignore-nested-nm', - version: '1.2.5' - }) - }) -) -test('setup', function (t) { - setup() - t.done() -}) -test('ignore-nested-nm', function (t) { - common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest) - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'install went ok') - var foopath = path.resolve(installedpath, 'lib/node_modules/foo') - fs.readFile(foopath, function (err, data) { - t.ifError(err, 'file read successfully') - t.equal(data.toString(), fileData) - common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone) - }) - } - function removeCheckAndDone (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'remove went ok') - t.done() - } -}) -test('cleanup', function (t) { - cleanup() - t.done() -}) -function setup () { - cleanup() - fixture.create(fixturepath) - mkdirp.sync(modulepath) -} -function cleanup () { - fixture.remove(fixturepath) - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-missing-bindir.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-missing-bindir.js deleted file mode 100644 index 2285f8d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-missing-bindir.js +++ /dev/null @@ -1,78 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('fs') -var test = require('tap').test -var common = require('../common-tap.js') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-missing-bindir') -var modulepath = path.resolve(basepath, 'node_modules') -var installedpath = path.resolve(modulepath, 'npm-test-missing-bindir') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var fixture = new Tacks( - Dir({ - README: File( - 'just an npm test\n' - ), - 'package.json': File({ - name: 'npm-test-missing-bindir', - version: '0.0.0', - directories: { - bin: './not-found' - } - }) - }) -) - -test('setup', function (t) { - setup() - t.done() -}) - -function installedExists (filename) { - try { - fs.statSync(path.resolve(installedpath, filename)) - return true - } catch (ex) { - console.log(ex) - return false - } -} - -test('missing-bindir', function (t) { - common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest) - - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'install went ok') - t.is(installedExists('README'), true, 'README') - t.is(installedExists('package.json'), true, 'package.json') - common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone) - } - - function removeCheckAndDone (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'remove went ok') - t.done() - } -}) - -test('cleanup', function (t) { - cleanup() - t.done() -}) - -function setup () { - cleanup() - fixture.create(fixturepath) - mkdirp.sync(modulepath) -} - -function cleanup () { - fixture.remove(fixturepath) - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-no-auth-leak.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-no-auth-leak.js deleted file mode 100644 index f8372392..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-no-auth-leak.js +++ /dev/null @@ -1,75 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var fixture = new Tacks( - Dir({ - README: File( - 'just an npm test\n' - ), - 'package.json': File({ - name: 'npm-test-no-auth-leak', - version: '0.0.0', - scripts: { - test: 'node test.js' - } - }), - '.npmrc': File( - 'auth=abc', - 'authCrypt=def', - 'password=xyz', - '//registry.npmjs.org/:_authToken=nopenope' - ), - 'test.js': File( - 'var authTokenKeys = Object.keys(process.env)\n' + - ' .filter(function (key) { return /authToken/.test(key) })\n' + - 'console.log(JSON.stringify({\n' + - ' password: process.env.npm_config__password || null,\n' + - ' auth: process.env.npm_config__auth || null,\n' + - ' authCrypt: process.env.npm_config__authCrypt || null ,\n' + - ' authToken: authTokenKeys && process.env[authTokenKeys[0]] || null\n' + - '}))' - ) - }) -) - -test('setup', function (t) { - setup() - t.done() -}) - -test('no-auth-leak', function (t) { - common.npm(['test'], {cwd: basepath}, function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'test ran ok') - if (stderr) console.log(stderr) - var matchResult = /^[^{]*(\{(?:.|\n)*\})[^}]*$/ - t.like(stdout, matchResult, 'got results with a JSON chunk in them') - var stripped = stdout.replace(matchResult, '$1') - var result = JSON.parse(stripped) - t.is(result.password, null, 'password') - t.is(result.auth, null, 'auth') - t.is(result.authCrypt, null, 'authCrypt') - t.is(result.authToken, null, 'authToken') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.done() -}) - -function setup () { - cleanup() - fixture.create(basepath) -} - -function cleanup () { - fixture.remove(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-npm-self-install.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-npm-self-install.js deleted file mode 100644 index 57880496..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-npm-self-install.js +++ /dev/null @@ -1,107 +0,0 @@ -'use strict' -var test = require('tap').test -var fs = require('graceful-fs') -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var npmpath = path.resolve(__dirname, '../..') -var basepath = path.resolve(osenv.tmpdir(), path.basename(__filename, '.js')) -var globalpath = path.resolve(basepath, 'global') -var extend = Object.assign || require('util')._extend -var isWin32 = process.platform === 'win32' - -test('setup', function (t) { - setup() - t.done() -}) - -var tarball - -test('build-tarball', function (t) { - common.npm(['pack'], {cwd: npmpath, stdio: ['ignore', 'pipe', process.stderr]}, function (err, code, stdout) { - if (err) throw err - t.is(code, 0, 'pack went ok') - tarball = path.resolve(npmpath, stdout.trim().replace(/^(?:.|\n)*(?:^|\n)(.*?[.]tgz)$/, '$1')) - t.match(tarball, /[.]tgz$/, 'got a tarball') - t.done() - }) -}) - -function exists () { - try { - fs.statSync(path.resolve.apply(null, arguments)) - return true - } catch (ex) { - return false - } -} - -test('npm-self-install', function (t) { - if (!tarball) return t.done() - - var env = extend({}, process.env) - var pathsep = isWin32 ? ';' : ':' - env.npm_config_prefix = globalpath - env.npm_config_global = 'true' - env.npm_config_npat = 'false' - env.NODE_PATH = null - env.npm_config_user_agent = null - env.npm_config_color = 'always' - env.npm_config_progress = 'always' - var PATH = env.PATH ? env.PATH.split(pathsep) : [] - var binpath = isWin32 ? globalpath : path.join(globalpath, 'bin') - var cmdname = isWin32 ? 'npm.cmd' : 'npm' - PATH.unshift(binpath) - env.PATH = PATH.join(pathsep) - - var opts = {cwd: basepath, env: env, stdio: ['ignore', 'ignore', process.stderr]} - - common.npm(['install', '--ignore-scripts', tarball], opts, installCheckAndTest) - function installCheckAndTest (err, code) { - if (err) throw err - t.is(code, 0, 'install went ok') - t.is(exists(binpath, cmdname), true, 'binary was installed') - t.is(exists(globalpath, isWin32 ? '' : 'lib', 'node_modules', 'npm'), true, 'module path exists') - common.npm(['ls', '--json', '--depth=0'], {cwd: basepath, env: env}, lsCheckAndRemove) - } - function lsCheckAndRemove (err, code, stdout, stderr) { - t.ifError(err, 'npm test on array bin') - t.equal(code, 0, 'exited OK') - t.equal(stderr.trim(), '', 'no error output') - var installed = JSON.parse(stdout.trim()) - t.is(Object.keys(installed.dependencies).length, 1, 'one thing installed') - t.is(path.resolve(globalpath, installed.dependencies.npm.from), tarball, 'and it was our npm tarball') - common.npm(['rm', 'npm'], {cwd: basepath, env: env}, removeCheck) - } - function removeCheck (err, code) { - if (err) throw err - t.is(code, 0, 'remove went ok') - common.npm(['ls', '--json', '--depth=0'], {cwd: basepath, env: env}, andDone) - } - function andDone (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'remove went ok') - t.equal(stderr.trim(), '', 'no error output') - var installed = JSON.parse(stdout.trim()) - t.ok(!installed.dependencies || installed.dependencies.length === 0, 'nothing left') - t.is(exists(binpath, cmdname), false, 'binary was removed') - t.is(exists(globalpath, 'lib', 'node_modules', 'npm'), false, 'module was entirely removed') - t.done() - } -}) - -test('cleanup', function (t) { - cleanup() - t.done() -}) - -function setup () { - cleanup() - mkdirp.sync(globalpath) -} - -function cleanup () { - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-optional-deps.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-optional-deps.js deleted file mode 100644 index 80ad7cc4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-optional-deps.js +++ /dev/null @@ -1,79 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('fs') -var test = require('tap').test -var common = require('../common-tap.js') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-optional-deps') -var modulepath = path.resolve(basepath, 'node_modules') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var fixture = new Tacks( - Dir({ - README: File( - 'just an npm test\n' - ), - 'package.json': File({ - name: 'npm-test-optional-deps', - version: '1.2.5', - optionalDependencies: { - 'npm-test-foobarzaaakakaka': 'http://example.com/', - async: '10.999.14234', - mkdirp: '0.3.5', - optimist: 'some invalid version 99 #! $$ x y z', - 'npm-test-failer': '*' - } - }) - }) -) - -var server - -test('setup', function (t) { - setup() - mr({port: common.port}, function (err, s) { - if (err) throw err - server = s - t.done() - }) -}) - -test('optional-deps', function (t) { - server.get('/npm-test-failer').reply(404, {error: 'nope'}) - - var opts = ['--registry=' + common.registry, '--timeout=100'] - common.npm(opts.concat(['install', fixturepath]), {cwd: basepath}, installCheckAndTest) - - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - if (stderr) console.error(stderr) - server.done() - t.is(code, 0, 'install went ok') - var dir = fs.readdirSync(modulepath).sort() - t.isDeeply(dir, ['mkdirp', 'npm-test-optional-deps'], 'only one optional dep should be there') - t.is(require(path.resolve(modulepath, 'mkdirp', 'package.json')).version, '0.3.5', 'mkdirp version right') - t.done() - } -}) - -test('cleanup', function (t) { - cleanup() - server.close() - t.done() -}) - -function setup () { - cleanup() - fixture.create(fixturepath) - mkdirp.sync(modulepath) -} - -function cleanup () { - fixture.remove(fixturepath) - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-platform-all.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-platform-all.js deleted file mode 100644 index 2bfb19a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-platform-all.js +++ /dev/null @@ -1,73 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-platform-all') -var modulepath = path.resolve(basepath, 'node_modules') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var fixture = new Tacks( - Dir({ - README: File( - 'just an npm test\n' - ), - 'package.json': File({ - name: 'npm-test-platform-all', - version: '9.9.9-9', - homepage: 'http://www.zombo.com/', - os: [ - 'darwin', - 'linux', - 'win32', - 'solaris', - 'haiku', - 'sunos', - 'freebsd', - 'openbsd', - 'netbsd' - ], - cpu: [ - 'arm', - 'mips', - 'ia32', - 'x64', - 'sparc' - ] - }) - }) -) - -test('setup', function (t) { - setup() - t.done() -}) - -test('platform-all', function (t) { - common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest) - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - t.is(stderr, '', 'no error messages') - t.is(code, 0, 'install went ok') - t.done() - } -}) - -test('cleanup', function (t) { - cleanup() - t.done() -}) - -function setup () { - cleanup() - fixture.create(fixturepath) - mkdirp.sync(modulepath) -} -function cleanup () { - fixture.remove(fixturepath) - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-platform.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-platform.js deleted file mode 100644 index 4e94148b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-platform.js +++ /dev/null @@ -1,64 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-platform') -var modulepath = path.resolve(basepath, 'node_modules') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var fixture = new Tacks( - Dir({ - README: File( - 'just an npm test\n' - ), - 'package.json': File({ - name: 'npm-test-platform', - version: '9.9.9-9', - homepage: 'http://www.youtube.com/watch?v=dQw4w9WgXcQ', - os: [ - '!this_is_not_a_real_os', - '!neither_is_this' - ], - cpu: [ - '!this_is_not_a_real_cpu', - '!this_isnt_either' - ] - }) - }) -) - -test('setup', function (t) { - setup() - t.done() -}) - -test('platform', function (t) { - common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest) - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - console.error(stderr) - t.is(code, 0, 'install went ok') - t.done() - } -}) - -test('cleanup', function (t) { - cleanup() - t.done() -}) - -function setup () { - cleanup() - fixture.create(fixturepath) - mkdirp.sync(modulepath) -} - -function cleanup () { - fixture.remove(fixturepath) - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-private.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-private.js deleted file mode 100644 index 5e7817bf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-private.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-private') -var modulepath = path.resolve(basepath, 'node_modules') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var fixture = new Tacks( - Dir({ - README: File( - 'just an npm test\n' - ), - 'package.json': File({ - name: 'npm-test-private', - version: '9.9.9-9', - homepage: 'http://www.youtube.com/watch?v=1MLry6Cn_D4', - private: 'true' - }) - }) -) - -test('setup', function (t) { - setup() - t.done() -}) - -test('private', function (t) { - common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest) - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - console.error(stderr) - console.log(stdout) - t.is(code, 0, 'install went ok') - t.done() - } -}) - -test('cleanup', function (t) { - cleanup() - t.done() -}) - -function setup () { - cleanup() - fixture.create(fixturepath) - mkdirp.sync(modulepath) -} - -function cleanup () { - fixture.remove(fixturepath) - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-shrinkwrap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-shrinkwrap.js deleted file mode 100644 index 6f530303..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-shrinkwrap.js +++ /dev/null @@ -1,132 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var fixture = new Tacks( - Dir({ - README: File( - 'just an npm test\n' - ), - 'npm-shrinkwrap.json': File({ - name: 'npm-test-shrinkwrap', - version: '0.0.0', - dependencies: { - glob: { - version: '3.1.5', - from: 'git://github.com/isaacs/node-glob.git#npm-test', - resolved: 'git://github.com/isaacs/node-glob.git#67bda227fd7a559cca5620307c7d30a6732a792f', - dependencies: { - 'graceful-fs': { - version: '1.1.5', - resolved: 'https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.5.tgz', - dependencies: { - 'fast-list': { - version: '1.0.2', - resolved: 'https://registry.npmjs.org/fast-list/-/fast-list-1.0.2.tgz' - } - } - }, - inherits: { - version: '1.0.0', - resolved: 'https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz' - }, - minimatch: { - version: '0.2.1', - dependencies: { - 'lru-cache': { - version: '1.0.5' - } - } - } - } - }, - minimatch: { - version: '0.1.5', - resolved: 'https://registry.npmjs.org/minimatch/-/minimatch-0.1.5.tgz', - dependencies: { - 'lru-cache': { - version: '1.0.5', - resolved: 'https://registry.npmjs.org/lru-cache/-/lru-cache-1.0.5.tgz' - } - } - }, - 'npm-test-single-file': { - version: '1.2.3', - resolved: 'https://gist.github.com/isaacs/1837112/raw/9ef57a59fc22aeb1d1ca346b68826dcb638b8416/index.js' - } - } - }), - 'package.json': File({ - author: 'Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)', - name: 'npm-test-shrinkwrap', - version: '0.0.0', - dependencies: { - 'npm-test-single-file': 'https://gist.github.com/isaacs/1837112/raw/9ef57a59fc22aeb1d1ca346b68826dcb638b8416/index.js', - glob: 'git://github.com/isaacs/node-glob.git#npm-test', - minimatch: '~0.1.0' - }, - scripts: { - test: 'node test.js' - } - }) - }) -) - -test('setup', function (t) { - setup() - t.done() -}) - -test('shrinkwrap', function (t) { - common.npm(['install'], {cwd: basepath}, installCheckAndTest) - - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - console.error(stderr) - t.is(code, 0, 'install went ok') - - common.npm(['ls', '--json'], {cwd: basepath}, verifyLsMatchesShrinkwrap) - } - - function verifyLsMatchesShrinkwrap (err, code, stdout, stderr) { - if (err) throw err - console.error(stderr) - t.is(code, 0, 'ls went ok') - var actual = JSON.parse(stdout) - var expected = require(path.resolve(basepath, 'npm-shrinkwrap.json')) - // from is expected to vary - t.isDeeply(rmFrom(actual), rmFrom(expected)) - t.done() - } - - function rmFrom (obj) { - for (var i in obj) { - if (i === 'from') { - delete obj[i] - } else if (i === 'dependencies') { - for (var j in obj[i]) { - rmFrom(obj[i][j]) - } - } - } - } -}) - -test('cleanup', function (t) { - cleanup() - t.done() -}) - -function setup () { - cleanup() - fixture.create(basepath) -} - -function cleanup () { - fixture.remove(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-test-package.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-test-package.js deleted file mode 100644 index d94666b4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-test-package.js +++ /dev/null @@ -1,70 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-test-package') -var modulepath = path.resolve(basepath, 'node_modules') -var installedpath = path.resolve(modulepath, 'npm-test-test-package') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var fixture = new Tacks( - Dir({ - README: File( - 'just an npm test\n' - ), - 'package.json': File({ - name: 'npm-test-test-package', - author: 'Testy McMock', - version: '1.2.3-99-b', - description: "This is a test package used for debugging. It has some random data and that's all." - }) - }) -) - -test('setup', function (t) { - setup() - t.done() -}) - -test('test-package', function (t) { - common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest) - - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'install went ok') - common.npm(['test'], {cwd: installedpath}, testCheckAndRemove) - } - - function testCheckAndRemove (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'npm test w/o test is ok') - common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone) - } - - function removeCheckAndDone (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'remove went ok') - t.done() - } -}) - -test('cleanup', function (t) { - cleanup() - t.done() -}) - -function setup () { - cleanup() - fixture.create(fixturepath) - mkdirp.sync(modulepath) -} - -function cleanup () { - fixture.remove(fixturepath) - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-url-dep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-url-dep.js deleted file mode 100644 index 46378cd3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/legacy-url-dep.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict' -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-url-dep') -var modulepath = path.resolve(basepath, 'node_modules') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var fixture = new Tacks( - Dir({ - README: File( - 'just an npm test\n' - ), - 'package.json': File({ - name: 'npm-test-url-dep', - version: '1.2.3', - dependencies: { - jsonify: 'https://github.com/substack/jsonify/tarball/master', - sax: 'isaacs/sax-js', - 'canonical-host': 'git://github.com/isaacs/canonical-host' - } - }) - }) -) - -test('setup', function (t) { - setup() - t.done() -}) - -test('url-dep', function (t) { - common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest) - function installCheckAndTest (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'install went ok') - t.done() - } -}) - -test('cleanup', function (t) { - cleanup() - t.done() -}) - -function setup () { - cleanup() - fixture.create(fixturepath) - mkdirp.sync(modulepath) -} - -function cleanup () { - fixture.remove(fixturepath) - rimraf.sync(basepath) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/lifecycle-path.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/lifecycle-path.js deleted file mode 100644 index 3264fe87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/lifecycle-path.js +++ /dev/null @@ -1,83 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var isWindows = require('../../lib/utils/is-windows.js') - -var pkg = path.resolve(__dirname, 'lifecycle-path') - -var PATH -if (isWindows) { - // On Windows the 'comspec' environment variable is used, - // so cmd.exe does not need to be on the path. - PATH = path.dirname(process.env.ComSpec) -} else { - // On non-Windows, without the path to the shell, nothing usually works. - PATH = '/bin:/usr/bin' -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify({}, null, 2) - ) - t.end() -}) - -test('make sure the path is correct', function (t) { - common.npm(['run-script', 'env'], { - cwd: pkg, - env: { - PATH: PATH - }, - stdio: [ 0, 'pipe', 2 ] - }, function (er, code, stdout) { - if (er) throw er - t.equal(code, 0, 'exit code') - var lineMatch = function (line) { - return /^PATH=/i.test(line) - } - // extract just the path value - stdout = stdout.split(/\r?\n/).filter(lineMatch).pop().replace(/^PATH=/, '') - var pathSplit = process.platform === 'win32' ? ';' : ':' - var root = path.resolve(__dirname, '../..') - var actual = stdout.split(pathSplit).map(function (p) { - if (p.indexOf(root) === 0) { - p = '{{ROOT}}' + p.substr(root.length) - } - return p.replace(/\\/g, '/') - }) - // spawn-wrap adds itself to the path when coverage is enabled - actual = actual.filter(function (p) { - return !p.match(/\.node-spawn-wrap/) - }) - - // get the ones we tacked on, then the system-specific requirements - var expect = [ - '{{ROOT}}/bin/node-gyp-bin', - '{{ROOT}}/test/tap/lifecycle-path/node_modules/.bin', - path.dirname(process.execPath) - ].concat(PATH.split(pathSplit)).map(function (p) { - return p.replace(/\\/g, '/') - }) - t.same(actual, expect) - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/lifecycle-signal.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/lifecycle-signal.js deleted file mode 100644 index 68fe9db2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/lifecycle-signal.js +++ /dev/null @@ -1,83 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') -var spawn = require('child_process').spawn - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var node = process.execPath -var npm = require.resolve('../../bin/npm-cli.js') - -var pkg = path.resolve(__dirname, 'lifecycle-signal') - -var json = { - name: 'lifecycle-signal', - version: '1.2.5', - scripts: { - preinstall: 'node -e "process.kill(process.pid,\'SIGSEGV\')"', - forever: 'node -e "console.error(process.pid);setInterval(function(){},1000)"' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - process.chdir(pkg) - t.end() -}) - -test('lifecycle signal abort', function (t) { - // windows does not use lifecycle signals, abort - if (process.platform === 'win32' || process.env.TRAVIS) return t.end() - - var child = spawn(node, [npm, 'install'], { - cwd: pkg - }) - child.on('close', function (code, signal) { - t.equal(code, null) - t.equal(signal, 'SIGSEGV') - t.end() - }) -}) - -test('lifecycle propagate signal term to child', function (t) { - // windows does not use lifecycle signals, abort - if (process.platform === 'win32' || process.env.TRAVIS) return t.end() - - var innerChildPid - var child = spawn(npm, ['run', 'forever'], { - cwd: pkg - }) - child.stderr.on('data', function (data) { - innerChildPid = parseInt(data.toString(), 10) - t.doesNotThrow(function () { - process.kill(innerChildPid, 0) // inner child should be running - }) - child.kill() // send SIGTERM to npm - }) - child.on('exit', function (code, signal) { - t.equal(code, null) - t.equal(signal, 'SIGTERM') - t.throws(function () { - process.kill(innerChildPid, 0) // SIGTERM should have reached inner child - }) - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/lifecycle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/lifecycle.js deleted file mode 100644 index 1a98bf3d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/lifecycle.js +++ /dev/null @@ -1,44 +0,0 @@ -var test = require('tap').test -var npm = require('../../') -var lifecycle = require('../../lib/utils/lifecycle') - -test('lifecycle: make env correctly', function (t) { - npm.load({enteente: Infinity}, function () { - var env = lifecycle.makeEnv({}, null, process.env) - - t.equal('Infinity', env.npm_config_enteente) - t.end() - }) -}) - -test('lifecycle : accepts wd for package that matches project\'s name', function (t) { - npm.load({}, function () { - var wd = '/opt/my-time/node_modules/time' - var pkg = {name: 'time'} - - t.equal(lifecycle._incorrectWorkingDirectory(wd, pkg), false) - t.end() - }) -}) - -test('lifecycle : accepts wd for package that doesn\'t match project\'s name', function (t) { - npm.load({}, function () { - var wd = '/opt/my-project/node_modules/time' - var pkg = {name: 'time'} - - t.equal(lifecycle._incorrectWorkingDirectory(wd, pkg), false) - t.end() - }) -}) - -test('lifecycle : rejects wd for ', function (t) { - npm.load({}, function () { - var wd = '/opt/my-time/node_modules/time/invalid' - var pkg = { - name: 'time' - } - - t.equal(lifecycle._incorrectWorkingDirectory(wd, pkg), true) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/link.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/link.js deleted file mode 100644 index e2f54552..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/link.js +++ /dev/null @@ -1,210 +0,0 @@ -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var path = require('path') -var rimraf = require('rimraf') -var test = require('tap').test -var lstatSync = require('fs').lstatSync -var writeFileSync = require('fs').writeFileSync - -var common = require('../common-tap.js') - -var link = path.join(__dirname, 'link') -var linkScoped = path.join(__dirname, 'link-scoped') -var linkInstall = path.join(__dirname, 'link-install') -var linkInside = path.join(linkInstall, 'node_modules', 'inside') -var linkRoot = path.join(__dirname, 'link-root') - -var config = 'prefix = ' + linkRoot -var configPath = path.join(link, '_npmrc') - -var OPTS = { - env: { - 'npm_config_userconfig': configPath - } -} - -var readJSON = { - name: 'foo', - version: '1.0.0', - description: '', - main: 'index.js', - scripts: { - test: 'echo \"Error: no test specified\" && exit 1' - }, - author: '', - license: 'ISC' -} - -var readScopedJSON = { - name: '@scope/foo', - version: '1.0.0', - description: '', - main: 'index.js', - scripts: { - test: 'echo \"Error: no test specified\" && exit 1' - }, - author: '', - license: 'ISC' -} - -var installJSON = { - name: 'bar', - version: '1.0.0', - description: '', - main: 'index.js', - scripts: { - test: 'echo \"Error: no test specified\" && exit 1' - }, - author: '', - license: 'ISC' -} - -var insideInstallJSON = { - name: 'inside', - version: '1.0.0', - description: '', - main: 'index.js', - scripts: { - test: 'echo \"Error: no test specified\" && exit 1' - }, - author: '', - license: 'ISC' -} - -test('setup', function (t) { - setup() - common.npm(['ls', '-g', '--depth=0'], OPTS, function (err, c, out) { - t.ifError(err) - t.equal(c, 0, 'set up ok') - t.notOk(out.match(/UNMET DEPENDENCY foo@/), "foo isn't in global") - t.end() - }) -}) - -test('create global link', function (t) { - process.chdir(link) - common.npm(['link'], OPTS, function (err, c, out) { - t.ifError(err, 'link has no error') - common.npm(['ls', '-g'], OPTS, function (err, c, out, stderr) { - t.ifError(err) - t.equal(c, 0) - t.equal(stderr, '', 'got expected stderr') - t.has(out, /foo@1.0.0/, 'creates global link ok') - t.end() - }) - }) -}) - -test('create global inside link', function (t) { - process.chdir(linkInside) - common.npm(['link'], OPTS, function (err, c, out) { - t.ifError(err, 'link has no error') - common.npm(['ls', '-g'], OPTS, function (err, c, out, stderr) { - t.ifError(err) - t.equal(c, 0) - t.equal(stderr, '', 'got expected stderr') - t.has(out, /inside@1.0.0/, 'creates global inside link ok') - t.end() - }) - }) -}) - -test('create scoped global link', function (t) { - process.chdir(linkScoped) - common.npm(['link'], OPTS, function (err, c, out) { - t.ifError(err, 'link has no error') - common.npm(['ls', '-g'], OPTS, function (err, c, out, stderr) { - t.ifError(err) - t.equal(c, 0) - t.equal(stderr, '', 'got expected stderr') - t.has(out, /@scope[/]foo@1.0.0/, 'creates global link ok') - t.end() - }) - }) -}) - -test('link-install the package', function (t) { - process.chdir(linkInstall) - common.npm(['link', 'foo'], OPTS, function (err) { - t.ifError(err, 'link-install has no error') - common.npm(['ls'], OPTS, function (err, c, out) { - t.ifError(err) - t.equal(c, 1) - t.has(out, /foo@1.0.0/, 'link-install ok') - t.end() - }) - }) -}) - -test('link-inside-install fails', function (t) { - process.chdir(linkInstall) - t.notOk(lstatSync(linkInside).isSymbolicLink(), 'directory for linked package is not a symlink to begin with') - common.npm(['link', 'inside'], OPTS, function (err, code) { - t.ifError(err, 'npm removed the linked package without error') - t.notEqual(code, 0, 'link operation failed') - t.notOk(lstatSync(linkInside).isSymbolicLink(), 'directory for linked package has not turned into a symlink') - t.end() - }) -}) - -test('link-install the scoped package', function (t) { - process.chdir(linkInstall) - common.npm(['link', linkScoped], OPTS, function (err) { - t.ifError(err, 'link-install has no error') - common.npm(['ls'], OPTS, function (err, c, out) { - t.ifError(err) - t.equal(c, 1) - t.has(out, /@scope[/]foo@1.0.0/, 'link-install ok') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - common.npm(['rm', 'foo'], OPTS, function (err, code) { - t.ifError(err, 'npm removed the linked package without error') - t.equal(code, 0, 'cleanup foo in local ok') - common.npm(['rm', '-g', 'foo'], OPTS, function (err, code) { - t.ifError(err, 'npm removed the global package without error') - t.equal(code, 0, 'cleanup foo in global ok') - - cleanup() - t.end() - }) - }) -}) - -function cleanup () { - rimraf.sync(linkRoot) - rimraf.sync(link) - rimraf.sync(linkScoped) - rimraf.sync(linkInstall) - rimraf.sync(linkInside) -} - -function setup () { - cleanup() - mkdirp.sync(linkRoot) - mkdirp.sync(link) - writeFileSync( - path.join(link, 'package.json'), - JSON.stringify(readJSON, null, 2) - ) - mkdirp.sync(linkScoped) - writeFileSync( - path.join(linkScoped, 'package.json'), - JSON.stringify(readScopedJSON, null, 2) - ) - mkdirp.sync(linkInstall) - writeFileSync( - path.join(linkInstall, 'package.json'), - JSON.stringify(installJSON, null, 2) - ) - mkdirp.sync(linkInside) - writeFileSync( - path.join(linkInside, 'package.json'), - JSON.stringify(insideInstallJSON, null, 2) - ) - writeFileSync(configPath, config) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/locker.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/locker.js deleted file mode 100644 index 8c548095..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/locker.js +++ /dev/null @@ -1,89 +0,0 @@ -var test = require('tap').test -var path = require('path') -var fs = require('graceful-fs') -var crypto = require('crypto') -var rimraf = require('rimraf') -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var npm = require('../../') -var locker = require('../../lib/utils/locker.js') -var lock = locker.lock -var unlock = locker.unlock - -var pkg = path.join(__dirname, '/locker') -var cache = path.join(pkg, '/cache') -var tmp = path.join(pkg, '/tmp') -var nm = path.join(pkg, '/node_modules') - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(cache) - mkdirp.sync(tmp) - t.end() -}) - -test('locking file puts lock in correct place', function (t) { - npm.load({cache: cache, tmpdir: tmp}, function (er) { - t.ifError(er, 'npm bootstrapped OK') - - var n = 'correct' - var c = n.replace(/[^a-zA-Z0-9]+/g, '-').replace(/^-+|-+$/g, '') - var p = path.resolve(nm, n) - var h = crypto.createHash('sha1').update(p).digest('hex') - var l = c.substr(0, 24) + '-' + h.substr(0, 16) + '.lock' - var v = path.join(cache, '_locks', l) - - lock(nm, n, function (er) { - t.ifError(er, 'locked path') - - fs.exists(v, function (found) { - t.ok(found, 'lock found OK') - - unlock(nm, n, function (er) { - t.ifError(er, 'unlocked path') - - fs.exists(v, function (found) { - t.notOk(found, 'lock deleted OK') - t.end() - }) - }) - }) - }) - }) -}) - -test('unlocking out of order errors out', function (t) { - npm.load({cache: cache, tmpdir: tmp}, function (er) { - t.ifError(er, 'npm bootstrapped OK') - - var n = 'busted' - var c = n.replace(/[^a-zA-Z0-9]+/g, '-').replace(/^-+|-+$/g, '') - var p = path.resolve(nm, n) - var h = crypto.createHash('sha1').update(p).digest('hex') - var l = c.substr(0, 24) + '-' + h.substr(0, 16) + '.lock' - var v = path.join(cache, '_locks', l) - - fs.exists(v, function (found) { - t.notOk(found, 'no lock to unlock') - - t.throws(function () { - unlock(nm, n, function () { - t.fail("shouldn't get here") - t.end() - }) - }, 'blew up as expected') - - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/logout-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/logout-scoped.js deleted file mode 100644 index db993204..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/logout-scoped.js +++ /dev/null @@ -1,70 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'logout') -var outfile = path.join(pkg, '_npmrc') -var opts = { cwd: pkg } - -var contents = function () { /* -foo=boo -@bar:registry=http://localhost:1337 -//localhost:1337/:_authToken=glarb -*/ }.toString().split('\n').slice(1, -1).join('\n') - -function mocks (server) { - server.delete('/-/user/token/glarb') - .reply(200, {}) -} - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -test('npm logout', function (t) { - mr({ port: common.port, plugin: mocks }, function (err, s) { - if (err) throw err - - common.npm( - [ - 'logout', - '--registry', common.registry, - '--scope', '@bar', - '--loglevel', 'silent', - '--userconfig', outfile - ], - opts, - function (err, code) { - t.ifError(err, 'no error output') - t.notOk(code, 'exited OK') - - var config = fs.readFileSync(outfile, 'utf8') - t.equal(config.trim(), 'foo=boo', 'creds gone') - s.close() - t.end() - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - mkdirp.sync(pkg) - fs.writeFileSync(outfile, contents) -} - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/logout.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/logout.js deleted file mode 100644 index d62cb4ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/logout.js +++ /dev/null @@ -1,68 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'logout') -var outfile = path.join(pkg, '_npmrc') -var opts = { cwd: pkg } - -var contents = function () { /* -foo=boo -//localhost:1337/:_authToken=glarb -*/ }.toString().split('\n').slice(1, -1).join('\n') - -function mocks (server) { - server.delete('/-/user/token/glarb') - .reply(200, {}) -} - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -test('npm logout', function (t) { - mr({ port: common.port, plugin: mocks }, function (err, s) { - if (err) throw err - - common.npm( - [ - 'logout', - '--registry', common.registry, - '--loglevel', 'silent', - '--userconfig', outfile - ], - opts, - function (err, code) { - t.ifError(err, 'no error output') - t.notOk(code, 'exited OK') - - var config = fs.readFileSync(outfile, 'utf8') - t.notMatch(config, /localhost/, 'creds gone') - s.close() - t.end() - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - mkdirp.sync(pkg) - fs.writeFileSync(outfile, contents) -} - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-depth-cli.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-depth-cli.js deleted file mode 100644 index 87eafced..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-depth-cli.js +++ /dev/null @@ -1,214 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, 'ls-depth-cli') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'ls-depth-cli', - version: '0.0.0', - dependencies: { - 'test-package-with-one-dep': '0.0.0' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - mr({ port: common.port }, function (er, s) { - common.npm( - [ - '--registry', common.registry, - 'install' - ], - EXEC_OPTS, - function (er, c) { - t.ifError(er, 'setup installation ran without issue') - t.equal(c, 0) - s.close() - t.end() - } - ) - }) -}) - -test('npm ls --depth=0', function (t) { - common.npm( - ['ls', '--depth=0'], - EXEC_OPTS, - function (er, c, out) { - t.ifError(er, 'npm ls ran without issue') - t.equal(c, 0, 'ls ran without raising error code') - t.has( - out, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.doesNotHave( - out, - /test-package@0\.0\.0/, - 'output not contains test-package@0.0.0' - ) - t.end() - } - ) -}) - -test('npm ls --depth=1', function (t) { - common.npm( - ['ls', '--depth=1'], - EXEC_OPTS, - function (er, c, out) { - t.ifError(er, 'npm ls ran without issue') - t.equal(c, 0, 'ls ran without raising error code') - t.has( - out, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.has( - out, - /test-package@0\.0\.0/, - 'output contains test-package@0.0.0' - ) - t.end() - } - ) -}) - -test('npm ls --depth=Infinity', function (t) { - // travis has a preconfigured depth=0, in general we can not depend - // on the default value in all environments, so explictly set it here - common.npm( - ['ls', '--depth=Infinity'], - EXEC_OPTS, - function (er, c, out) { - t.ifError(er, 'npm ls ran without issue') - t.equal(c, 0, 'ls ran without raising error code') - t.has( - out, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.has( - out, - /test-package@0\.0\.0/, - 'output contains test-package@0.0.0' - ) - t.end() - } - ) -}) - -test('npm ls --depth=0 --json', function (t) { - common.npm( - ['ls', '--depth=0', '--json'], - EXEC_OPTS, - function (er, c, out) { - t.ifError(er, 'npm ls ran without issue') - t.equal(c, 0, 'ls ran without raising error code') - t.has( - out, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.doesNotHave( - out, - /test-package@0\.0\.0/, - 'output not contains test-package@0.0.0' - ) - t.end() - } - ) -}) - -test('npm ls --depth=Infinity --json', function (t) { - // travis has a preconfigured depth=0, in general we can not depend - // on the default value in all environments, so explictly set it here - common.npm( - ['ls', '--depth=Infinity', '--json'], - EXEC_OPTS, - function (er, c, out) { - t.ifError(er, 'npm ls ran without issue') - t.equal(c, 0, 'ls ran without raising error code') - t.has( - out, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.has( - out, - /test-package@0\.0\.0/, - 'output contains test-package@0.0.0' - ) - t.end() - } - ) -}) - -test('npm ls --depth=0 --parseable --long', function (t) { - common.npm( - ['ls', '--depth=0', '--parseable', '--long'], - EXEC_OPTS, - function (er, c, out) { - t.ifError(er, 'npm ls ran without issue') - t.equal(c, 0, 'ls ran without raising error code') - t.has( - out, - /.*test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep' - ) - t.doesNotHave( - out, - /.*test-package@0\.0\.0/, - 'output not contains test-package' - ) - t.end() - } - ) -}) - -test('npm ls --depth=1 --parseable --long', function (t) { - common.npm( - ['ls', '--depth=1', '--parseable', '--long'], - EXEC_OPTS, - function (er, c, out) { - t.ifError(er, 'npm ls ran without issue') - t.equal(c, 0, 'ls ran without raising error code') - t.has( - out, - /.*test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep' - ) - t.has( - out, - /.*test-package@0\.0\.0/, - 'output not contains test-package' - ) - t.end() - } - ) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-depth-unmet.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-depth-unmet.js deleted file mode 100644 index 6511cdb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-depth-unmet.js +++ /dev/null @@ -1,172 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, 'ls-depth-unmet') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'ls-depth-umnet', - author: 'Evan You', - version: '0.0.0', - dependencies: { - 'test-package-with-one-dep': '0.0.0', - underscore: '1.5.1', - optimist: '0.6.0' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - mr({ port: common.port }, function (er, s) { - common.npm( - [ - '--registry', common.registry, - 'install', 'underscore@1.3.1', 'mkdirp', 'test-package-with-one-dep' - ], - EXEC_OPTS, - function (er, c) { - t.ifError(er, 'setup installation ran without issue') - t.equal(c, 0) - s.close() - t.end() - } - ) - }) -}) - -test('npm ls --depth=0', function (t) { - common.npm( - ['ls', '--depth=0'], - EXEC_OPTS, - function (er, c, out) { - t.ifError(er, 'setup installation ran without issue') - t.equal(c, 1, 'ls barfed') - t.has( - out, - /UNMET DEPENDENCY optimist@0\.6\.0/, - 'output contains optimist@0.6.0 and labeled as unmet dependency' - ) - t.has( - out, - /mkdirp@0\.3\.5 extraneous/, - 'output contains mkdirp@0.3.5 and labeled as extraneous' - ) - t.has( - out, - /underscore@1\.3\.1 invalid/, - 'output contains underscore@1.3.1 and labeled as invalid' - ) - t.has( - out, - /test-package-with-one-dep@0\.0\.0\n/, - 'output contains test-package-with-one-dep@0.0.0 and has no labels' - ) - t.doesNotHave( - out, - /test-package@0\.0\.0/, - 'output does not contain test-package@0.0.0 which is at depth=1' - ) - t.end() - } - ) -}) - -test('npm ls --depth=1', function (t) { - common.npm( - ['ls', '--depth=1'], - EXEC_OPTS, - function (er, c, out) { - t.ifError(er, 'setup installation ran without issue') - t.equal(c, 1, 'ls barfed') - t.has( - out, - /UNMET DEPENDENCY optimist@0\.6\.0/, - 'output contains optimist@0.6.0 and labeled as unmet dependency' - ) - t.has( - out, - /mkdirp@0\.3\.5 extraneous/, - 'output contains mkdirp@0.3.5 and labeled as extraneous' - ) - t.has( - out, - /underscore@1\.3\.1 invalid/, - 'output contains underscore@1.3.1 and labeled as invalid' - ) - t.has( - out, - /test-package-with-one-dep@0\.0\.0\n/, - 'output contains test-package-with-one-dep@0.0.0 and has no labels' - ) - t.has( - out, - /test-package@0\.0\.0/, - 'output contains test-package@0.0.0 which is at depth=1' - ) - t.end() - } - ) -}) - -test('npm ls --depth=Infinity', function (t) { - // travis has a preconfigured depth=0, in general we can not depend - // on the default value in all environments, so explictly set it here - common.npm( - ['ls', '--depth=Infinity'], - EXEC_OPTS, - function (er, c, out) { - t.ifError(er, 'setup installation ran without issue') - t.equal(c, 1, 'ls barfed') - t.has( - out, - /UNMET DEPENDENCY optimist@0\.6\.0/, - 'output contains optimist@0.6.0 and labeled as unmet dependency' - ) - t.has( - out, - /mkdirp@0\.3\.5 extraneous/, - 'output contains mkdirp@0.3.5 and labeled as extraneous' - ) - t.has( - out, - /underscore@1\.3\.1 invalid/, - 'output contains underscore@1.3.1 and labeled as invalid' - ) - t.has( - out, - /test-package-with-one-dep@0\.0\.0\n/, - 'output contains test-package-with-one-dep@0.0.0 and has no labels' - ) - t.has( - out, - /test-package@0\.0\.0/, - 'output contains test-package@0.0.0 which is at depth=1' - ) - t.end() - } - ) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-env.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-env.js deleted file mode 100644 index 29058d92..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-env.js +++ /dev/null @@ -1,135 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, 'ls-depth') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'ls-env', - version: '0.0.0', - dependencies: { - 'test-package-with-one-dep': '0.0.0' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - mr({port: common.port}, function (er, s) { - common.npm( - [ - '--registry', common.registry, - 'install' - ], - EXEC_OPTS, - function (er, c) { - t.ifError(er, 'install ran without issue') - t.equal(c, 0) - s.close() - t.end() - } - ) - }) -}) - -test('npm ls --dev', function (t) { - common.npm(['ls', '--dev'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --dev ran without issue') - t.equal(code, 0) - t.has(stdout, /(empty)/, 'output contains (empty)') - t.end() - }) -}) - -test('npm ls --only=development', function (t) { - common.npm(['ls', '--only=development'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --only=development ran without issue') - t.equal(code, 0) - t.has(stdout, /(empty)/, 'output contains (empty)') - t.end() - }) -}) - -test('npm ls --only=dev', function (t) { - common.npm(['ls', '--only=dev'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --only=dev ran without issue') - t.equal(code, 0) - t.has(stdout, /(empty)/, 'output contains (empty)') - t.end() - }) -}) - -test('npm ls --production', function (t) { - common.npm(['ls', '--production'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --production ran without issue') - t.notOk(code, 'npm exited ok') - t.has( - stdout, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.end() - }) -}) - -test('npm ls --prod', function (t) { - common.npm(['ls', '--prod'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --prod ran without issue') - t.notOk(code, 'npm exited ok') - t.has( - stdout, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.end() - }) -}) - -test('npm ls --only=production', function (t) { - common.npm(['ls', '--only=production'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --only=production ran without issue') - t.notOk(code, 'npm exited ok') - t.has( - stdout, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.end() - }) -}) - -test('npm ls --only=prod', function (t) { - common.npm(['ls', '--only=prod'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --only=prod ran without issue') - t.notOk(code, 'npm exited ok') - t.has( - stdout, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-l-depth-0.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-l-depth-0.js deleted file mode 100644 index 39585209..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-l-depth-0.js +++ /dev/null @@ -1,116 +0,0 @@ -var cat = require('graceful-fs').writeFileSync -var resolve = require('path').resolve - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test -var tmpdir = require('osenv').tmpdir - -var common = require('../common-tap.js') - -var pkg = resolve(__dirname, 'ls-l-depth-0') -var dep = resolve(pkg, 'deps', 'glock') -var modules = resolve(pkg, 'node_modules') - -var expected = - '\n' + - '│ ' + pkg + '\n' + - '│ \n' + - '└── glock@1.8.7\n' + - ' an inexplicably hostile sample package\n' + - ' git+https://github.com/npm/glo.ck.git\n' + - ' https://glo.ck\n' + - '\n' - -var server - -var EXEC_OPTS = { cwd: pkg } - -var fixture = { - 'name': 'glock', - 'version': '1.8.7', - 'private': true, - 'description': 'an inexplicably hostile sample package', - 'homepage': 'https://glo.ck', - 'repository': 'https://github.com/npm/glo.ck', - 'dependencies': { - 'underscore': '1.5.1' - } -} - -test('setup', function (t) { - setup() - mr({ port: common.port }, function (er, s) { - server = s - - t.end() - }) -}) - -test('#6311: npm ll --depth=0 duplicates listing', function (t) { - common.npm( - [ - '--loglevel', 'silent', - '--registry', common.registry, - '--unicode=true', - 'install', dep - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm install ran without error') - t.notOk(code, 'npm install exited cleanly') - t.notOk(stderr, 'npm install ran silently') - t.equal( - stdout.trim(), - resolve(__dirname, 'ls-l-depth-0') + - '\n└─┬ glock@1.8.7 ' + - '\n └── underscore@1.5.1', - 'got expected install output' - ) - - common.npm( - [ - '--loglevel', 'silent', - 'ls', '--long', - '--unicode=true', - '--depth', '0' - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm ll ran without error') - t.is(code, 0, 'npm ll exited cleanly') - t.notOk(stderr, 'npm ll ran silently') - t.equal( - stdout, - expected, - 'got expected package name' - ) - - t.end() - } - ) - } - ) -}) - -test('cleanup', function (t) { - cleanup() - server.close() - - t.end() -}) - -function cleanup () { - process.chdir(tmpdir()) - rimraf.sync(pkg) -} - -function setup () { - cleanup() - - mkdirp.sync(modules) - mkdirp.sync(dep) - - cat(resolve(dep, 'package.json'), JSON.stringify(fixture)) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-no-results.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-no-results.js deleted file mode 100644 index 9792774c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-no-results.js +++ /dev/null @@ -1,12 +0,0 @@ -var test = require('tap').test -var spawn = require('child_process').spawn -var node = process.execPath -var npm = require.resolve('../../') -var args = [ npm, 'ls', 'ceci n’est pas une package' ] -test('ls exits non-zero when nothing found', function (t) { - var child = spawn(node, args) - child.on('exit', function (code) { - t.notEqual(code, 0) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-production-and-dev.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-production-and-dev.js deleted file mode 100644 index 80d67ea5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-production-and-dev.js +++ /dev/null @@ -1,172 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, 'ls-depth') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'ls-env', - version: '0.0.0', - dependencies: { - 'test-package-with-one-dep': '0.0.0', - 'test-repo-url-ssh': '0.0.1' - }, - devDependencies: { - 'test-package-with-one-dep': '0.0.0', - 'test-repo-url-https': '0.0.1' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - mr({port: common.port}, function (er, s) { - common.npm( - [ - '--registry', common.registry, - 'install' - ], - EXEC_OPTS, - function (er, c) { - t.ifError(er, 'install ran without issue') - t.equal(c, 0) - s.close() - t.end() - } - ) - }) -}) - -test('npm ls --dev', function (t) { - common.npm(['ls', '--dev'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --dev ran without issue') - t.equal(code, 0) - t.has( - stdout, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.has( - stdout, - /test-repo-url-https@0\.0\.1/, - 'output contains test-repo-url-https@0.0.1' - ) - t.doesNotHave( - stdout, - /test-repo-url-ssh@0\.0\.1/, - 'output does NOT contain test-repo-url-ssh@0.0.1' - ) - t.end() - }) -}) - -test('npm ls --only=development', function (t) { - common.npm(['ls', '--only=development'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --only=development ran without issue') - t.equal(code, 0) - t.has( - stdout, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.end() - }) -}) - -test('npm ls --only=dev', function (t) { - common.npm(['ls', '--only=dev'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --only=dev ran without issue') - t.equal(code, 0) - t.has( - stdout, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.end() - }) -}) - -test('npm ls --production', function (t) { - common.npm(['ls', '--production'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --production ran without issue') - t.notOk(code, 'npm exited ok') - t.has( - stdout, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.has( - stdout, - /test-repo-url-ssh@0\.0\.1/, - 'output contains test-repo-url-ssh@0.0.1' - ) - t.doesNotHave( - stdout, - /test-repo-url-https@0\.0\.1/, - 'output does NOT contain test-repo-url-https@0.0.1' - ) - t.end() - }) -}) - -test('npm ls --prod', function (t) { - common.npm(['ls', '--prod'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --prod ran without issue') - t.notOk(code, 'npm exited ok') - t.has( - stdout, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.end() - }) -}) - -test('npm ls --only=production', function (t) { - common.npm(['ls', '--only=production'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --only=production ran without issue') - t.notOk(code, 'npm exited ok') - t.has( - stdout, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.end() - }) -}) - -test('npm ls --only=prod', function (t) { - common.npm(['ls', '--only=prod'], EXEC_OPTS, function (er, code, stdout) { - t.ifError(er, 'ls --only=prod ran without issue') - t.notOk(code, 'npm exited ok') - t.has( - stdout, - /test-package-with-one-dep@0\.0\.0/, - 'output contains test-package-with-one-dep@0.0.0' - ) - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-top-errors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-top-errors.js deleted file mode 100644 index 69b8b299..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls-top-errors.js +++ /dev/null @@ -1,71 +0,0 @@ -'use strict' -var fs = require('fs') -var path = require('path') - -var test = require('tap').test -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') - -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, path.basename(__filename, '.js')) -var pathModA = path.join(pkg, 'node_modules', 'moduleA') -var pathModB = path.join(pkg, 'node_modules', 'moduleB') - -var modA = { - name: 'moduleA', - version: '1.0.0', - _requiredBy: [ '#USER', '/moduleB' ], - dependencies: { - moduleB: '1.0.0' - } -} -var modB = { - name: 'moduleB', - version: '1.0.0', - _requiredBy: [ '/moduleA' ], - dependencies: { - moduleA: '1.0.0' - } -} - -function setup () { - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - '{broken json' - ) - mkdirp.sync(pathModA) - fs.writeFileSync( - path.join(pathModA, 'package.json'), - JSON.stringify(modA, null, 2) - ) - mkdirp.sync(pathModB) - fs.writeFileSync( - path.join(pathModB, 'package.json'), - JSON.stringify(modB, null, 2) - ) -} - -function cleanup () { - rimraf.sync(pkg) -} - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -test('ls-top-errors', function (t) { - common.npm(['ls'], {cwd: pkg}, function (er, code, stdout, stderr) { - t.ifErr(er, 'install finished successfully') - t.match(stderr, /Failed to parse json/) - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls.js deleted file mode 100644 index acec723a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ls.js +++ /dev/null @@ -1,188 +0,0 @@ -'use strict' -var test = require('tap').test -var path = require('path') -var rimraf = require('rimraf') -var common = require('../common-tap.js') -var basepath = path.resolve(__dirname, path.basename(__filename, '.js')) -var fixturepath = path.resolve(basepath, 'npm-test-files') -var pkgpath = path.resolve(fixturepath, 'npm-test-ls') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -test('ls without arg', function (t) { - var fixture = new Tacks( - Dir({ - 'npm-test-ls': Dir({ - 'package.json': File({ - name: 'npm-test-ls', - version: '1.0.0', - dependencies: { - 'dep': 'file:../dep' - } - }) - }), - 'dep': Dir({ - 'package.json': File({ - name: 'dep', - version: '1.0.0' - }) - }) - }) - ) - withFixture(t, fixture, function (done) { - common.npm([ - 'ls', '--json' - ], { - cwd: pkgpath - }, function (err, code, stdout, stderr) { - t.ifErr(err, 'ls succeeded') - t.equal(0, code, 'exit 0 on ls') - var pkg = JSON.parse(stdout) - var deps = pkg.dependencies - t.ok(deps.dep, 'dep present') - done() - }) - }) -}) - -test('ls with filter arg', function (t) { - var fixture = new Tacks( - Dir({ - 'npm-test-ls': Dir({ - 'package.json': File({ - name: 'npm-test-ls', - version: '1.0.0', - dependencies: { - 'dep': 'file:../dep' - } - }) - }), - 'dep': Dir({ - 'package.json': File({ - name: 'dep', - version: '1.0.0' - }) - }), - 'otherdep': Dir({ - 'package.json': File({ - name: 'otherdep', - version: '1.0.0' - }) - }) - }) - ) - withFixture(t, fixture, function (done) { - common.npm([ - 'ls', 'dep', - '--json' - ], { - cwd: path.join(fixturepath, 'npm-test-ls') - }, function (err, code, stdout, stderr) { - t.ifErr(err, 'ls succeeded') - t.equal(0, code, 'exit 0 on ls') - var pkg = JSON.parse(stdout) - var deps = pkg.dependencies - t.ok(deps.dep, 'dep present') - t.notOk(deps.otherdep, 'other dep not present') - done() - }) - }) -}) - -test('ls with missing filtered arg', function (t) { - var fixture = new Tacks( - Dir({ - 'npm-test-ls': Dir({ - 'package.json': File({ - name: 'npm-test-ls', - version: '1.0.0', - dependencies: { - 'dep': 'file:../dep' - } - }) - }), - 'dep': Dir({ - 'package.json': File({ - name: 'dep', - version: '1.0.0' - }) - }) - }) - ) - withFixture(t, fixture, function (done) { - common.npm([ - 'ls', 'notadep', - '--json' - ], { - cwd: path.join(fixturepath, 'npm-test-ls') - }, function (err, code, stdout, stderr) { - t.ifErr(err, 'ls succeeded') - t.equal(1, code, 'exit 1 on ls') - var pkg = JSON.parse(stdout) - var deps = pkg.dependencies - t.notOk(deps, 'deps missing') - t.done() - }) - }) -}) - -test('ls with prerelease pkg', function (t) { - var fixture = new Tacks( - Dir({ - 'npm-test-ls': Dir({ - 'package.json': File({ - name: 'npm-test-ls', - version: '1.0.0', - dependencies: { - 'dep': 'file:../dep' - } - }) - }), - 'dep': Dir({ - 'package.json': File({ - name: 'dep', - version: '1.0.0-pre' - }) - }) - }) - ) - withFixture(t, fixture, function (done) { - common.npm([ - 'ls', 'dep', - '--json' - ], { - cwd: path.join(fixturepath, 'npm-test-ls') - }, function (err, code, stdout, stderr) { - t.ifErr(err, 'ls succeeded') - t.equal(0, code, 'exit 0 on ls') - var pkg = JSON.parse(stdout) - var deps = pkg.dependencies - t.ok(deps.dep, 'dep present') - t.done() - }) - }) -}) - -test('cleanup', function (t) { - rimraf.sync(basepath) - t.done() -}) - -function withFixture (t, fixture, tester) { - fixture.create(fixturepath) - common.npm(['install'], { - cwd: path.join(fixturepath, 'npm-test-ls') - }, checkAndTest) - function checkAndTest (err, code) { - if (err) throw err - t.is(code, 0, 'install went ok') - tester(removeAndDone) - } - function removeAndDone (err) { - if (err) throw err - fixture.remove(fixturepath) - rimraf.sync(basepath) - t.done() - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/map-to-registry.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/map-to-registry.js deleted file mode 100644 index d9677bd7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/map-to-registry.js +++ /dev/null @@ -1,166 +0,0 @@ -var test = require('tap').test -var npm = require('../../') - -var common = require('../common-tap.js') -var mapRegistry = require('../../lib/utils/map-to-registry.js') - -var creds = { - '//registry.npmjs.org/:username': 'u', - '//registry.npmjs.org/:_password': new Buffer('p').toString('base64'), - '//registry.npmjs.org/:email': 'e', - cache: common.npm_config_cache -} -test('setup', function (t) { - npm.load(creds, function (err) { - t.ifError(err) - t.end() - }) -}) - -test('mapRegistryToURI', function (t) { - t.plan(16) - - mapRegistry('basic', npm.config, function (er, uri, auth, registry) { - t.ifError(er, 'mapRegistryToURI worked') - t.equal(uri, 'https://registry.npmjs.org/basic') - t.deepEqual(auth, { - scope: '//registry.npmjs.org/', - token: undefined, - username: 'u', - password: 'p', - email: 'e', - auth: 'dTpw', - alwaysAuth: false - }) - t.equal(registry, 'https://registry.npmjs.org/') - }) - - npm.config.set('scope', 'test') - npm.config.set('@test:registry', 'http://reg.npm/design/-/rewrite/') - npm.config.set('//reg.npm/design/-/rewrite/:_authToken', 'a-token') - mapRegistry('simple', npm.config, function (er, uri, auth, registry) { - t.ifError(er, 'mapRegistryToURI worked') - t.equal(uri, 'http://reg.npm/design/-/rewrite/simple') - t.deepEqual(auth, { - scope: '//reg.npm/design/-/rewrite/', - token: 'a-token', - username: undefined, - password: undefined, - email: undefined, - auth: undefined, - alwaysAuth: false - }) - t.equal(registry, 'http://reg.npm/design/-/rewrite/') - }) - - npm.config.set('scope', '') - npm.config.set('@test2:registry', 'http://reg.npm/-/rewrite/') - npm.config.set('//reg.npm/-/rewrite/:_authToken', 'b-token') - mapRegistry('@test2/easy', npm.config, function (er, uri, auth, registry) { - t.ifError(er, 'mapRegistryToURI worked') - t.equal(uri, 'http://reg.npm/-/rewrite/@test2%2feasy') - t.deepEqual(auth, { - scope: '//reg.npm/-/rewrite/', - token: 'b-token', - username: undefined, - password: undefined, - email: undefined, - auth: undefined, - alwaysAuth: false - }) - t.equal(registry, 'http://reg.npm/-/rewrite/') - }) - - npm.config.set('scope', 'test') - npm.config.set('@test3:registry', 'http://reg.npm/design/-/rewrite/relative') - npm.config.set('//reg.npm/design/-/rewrite/:_authToken', 'c-token') - mapRegistry('@test3/basic', npm.config, function (er, uri, auth, registry) { - t.ifError(er, 'mapRegistryToURI worked') - t.equal(uri, 'http://reg.npm/design/-/rewrite/relative/@test3%2fbasic') - t.deepEqual(auth, { - scope: '//reg.npm/design/-/rewrite/', - token: 'c-token', - username: undefined, - password: undefined, - email: undefined, - auth: undefined, - alwaysAuth: false - }) - t.equal(registry, 'http://reg.npm/design/-/rewrite/relative/') - }) -}) - -test('mapToRegistry token scoping', function (t) { - npm.config.set('scope', '') - npm.config.set('registry', 'https://reg.npm/') - npm.config.set('//reg.npm/:_authToken', 'r-token') - - t.test('pass token to registry host', function (t) { - mapRegistry( - 'https://reg.npm/packages/e/easy-1.0.0.tgz', - npm.config, - function (er, uri, auth, registry) { - t.ifError(er, 'mapRegistryToURI worked') - t.equal(uri, 'https://reg.npm/packages/e/easy-1.0.0.tgz') - t.deepEqual(auth, { - scope: '//reg.npm/', - token: 'r-token', - username: undefined, - password: undefined, - email: undefined, - auth: undefined, - alwaysAuth: false - }) - t.equal(registry, 'https://reg.npm/') - } - ) - t.end() - }) - - t.test("don't pass token to non-registry host", function (t) { - mapRegistry( - 'https://butts.lol/packages/e/easy-1.0.0.tgz', - npm.config, - function (er, uri, auth, registry) { - t.ifError(er, 'mapRegistryToURI worked') - t.equal(uri, 'https://butts.lol/packages/e/easy-1.0.0.tgz') - t.deepEqual(auth, { - scope: '//reg.npm/', - token: undefined, - username: undefined, - password: undefined, - email: undefined, - auth: undefined, - alwaysAuth: false - }) - t.equal(registry, 'https://reg.npm/') - } - ) - t.end() - }) - - t.test('pass token to non-registry host with always-auth', function (t) { - npm.config.set('always-auth', true) - mapRegistry( - 'https://butts.lol/packages/e/easy-1.0.0.tgz', - npm.config, - function (er, uri, auth, registry) { - t.ifError(er, 'mapRegistryToURI worked') - t.equal(uri, 'https://butts.lol/packages/e/easy-1.0.0.tgz') - t.deepEqual(auth, { - scope: '//reg.npm/', - token: 'r-token', - username: undefined, - password: undefined, - email: undefined, - auth: undefined, - alwaysAuth: true - }) - t.equal(registry, 'https://reg.npm/') - } - ) - t.end() - }) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/nerf-dart.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/nerf-dart.js deleted file mode 100644 index a6df7272..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/nerf-dart.js +++ /dev/null @@ -1,32 +0,0 @@ -// taken from https://raw.githubusercontent.com/indexzero/npm/bd3cad01fbd3ab481d2f5da441b9eead16029123/test/tap/config-nerf-dart.js -// originally written by Charlie Robbins, https://github.com/indexzero -var test = require('tap').test -var toNerfDart = require('../../lib/config/nerf-dart.js') - -function validNerfDart (uri, valid) { - if (!valid) valid = '//registry.npmjs.org/' - test(uri, function (t) { - t.equal(toNerfDart(uri), valid) - t.end() - }) -} - -validNerfDart('http://registry.npmjs.org') -validNerfDart('http://registry.npmjs.org/some-package') -validNerfDart('http://registry.npmjs.org/some-package?write=true') -validNerfDart('http://user:pass@registry.npmjs.org/some-package?write=true') -validNerfDart('http://registry.npmjs.org/#random-hash') -validNerfDart('http://registry.npmjs.org/some-package#random-hash') - -validNerfDart( - 'http://relative.couchapp.npm/design/-/rewrite/', - '//relative.couchapp.npm/design/-/rewrite/' -) -validNerfDart( - 'http://relative.couchapp.npm:8080/design/-/rewrite/', - '//relative.couchapp.npm:8080/design/-/rewrite/' -) -validNerfDart( - 'http://relative.couchapp.npm:8080/design/-/rewrite/some-package', - '//relative.couchapp.npm:8080/design/-/rewrite/' -) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/nested-extraneous.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/nested-extraneous.js deleted file mode 100644 index 99d4bea5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/nested-extraneous.js +++ /dev/null @@ -1,53 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var mkdirp = require('mkdirp') -var fs = require('fs') -var rimraf = require('rimraf') -var path = require('path') - -var pkg = path.resolve(__dirname, 'nested-extraneous') -var pj = { - name: 'nested-extraneous', - version: '1.2.3' -} - -var dep = path.resolve(pkg, 'node_modules', 'dep') -var deppj = { - name: 'nested-extraneous-dep', - version: '1.2.3', - dependencies: { - 'nested-extra-depdep': '*' - } -} - -var depdep = path.resolve(dep, 'node_modules', 'depdep') -var depdeppj = { - name: 'nested-extra-depdep', - version: '1.2.3' -} - -test('setup', function (t) { - rimraf.sync(pkg) - mkdirp.sync(depdep) - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify(pj)) - fs.writeFileSync(path.resolve(dep, 'package.json'), JSON.stringify(deppj)) - fs.writeFileSync(path.resolve(depdep, 'package.json'), JSON.stringify(depdeppj)) - t.end() -}) - -test('test', function (t) { - common.npm(['ls'], { - cwd: pkg - }, function (er, code, sto, ste) { - if (er) throw er - t.notEqual(code, 0) - t.notSimilar(ste, /depdep/) - t.notSimilar(sto, /depdep/) - t.end() - }) -}) - -test('clean', function (t) { - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/no-global-warns.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/no-global-warns.js deleted file mode 100644 index cae62fff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/no-global-warns.js +++ /dev/null @@ -1,70 +0,0 @@ -'use strict' -var path = require('path') -var test = require('tap').test -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var writeFileSync = require('fs').writeFileSync -var common = require('../common-tap.js') - -var base = path.join(__dirname, path.basename(__filename, '.js')) -var mockGlobal = path.join(base, 'global') -var toInstall = path.join(base, 'to-install') - -var config = 'prefix = ' + base -var configPath = path.join(base, '_npmrc') - -var OPTS = { } - -var installJSON = { - name: 'to-install', - version: '1.0.0', - description: '', - main: 'index.js', - scripts: { - test: 'echo \"Error: no test specified\" && exit 1' - }, - author: '', - license: 'ISC' -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('no-global-warns', function (t) { - common.npm( - [ - 'install', '-g', - '--userconfig=' + configPath, - toInstall - ], - OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'installed w/o error') - t.is(stderr, '', 'no warnings printed to stderr') - t.end() - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - cleanup() - t.end() -}) - -function cleanup () { - rimraf.sync(base) -} - -function setup () { - cleanup() - mkdirp.sync(mockGlobal) - mkdirp.sync(toInstall) - writeFileSync( - path.join(toInstall, 'package.json'), - JSON.stringify(installJSON, null, 2) - ) - writeFileSync(configPath, config) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/no-scan-full-global-dir.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/no-scan-full-global-dir.js deleted file mode 100644 index ca051fc6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/no-scan-full-global-dir.js +++ /dev/null @@ -1,100 +0,0 @@ -'use strict' -var fs = require('fs') -var path = require('path') -var test = require('tap').test -var requireInject = require('require-inject') -var osenv = require('osenv') -var inherits = require('inherits') -var npm = require('../../lib/npm.js') - -var packages = { - test: {package: {name: 'test'}, path: __dirname, children: ['abc', 'def', 'ghi', 'jkl']}, - abc: {package: {name: 'abc'}, path: path.join(__dirname, 'node_modules', 'abc')}, - def: {package: {name: 'def'}, path: path.join(__dirname, 'node_modules', 'def')}, - ghi: {package: {name: 'ghi'}, path: path.join(__dirname, 'node_modules', 'ghi')}, - jkl: {package: {name: 'jkl'}, path: path.join(__dirname, 'node_modules', 'jkl')} -} -var dirs = {} -var files = {} -Object.keys(packages).forEach(function (name) { - dirs[path.join(packages[name].path, 'node_modules')] = packages[name].children || [] - files[path.join(packages[name].path, 'package.json')] = packages[name].package -}) - -process.chdir(osenv.tmpdir()) - -var mockReaddir = function (name, cb) { - if (dirs[name]) return cb(null, dirs[name]) - var er = new Error('No such mock: ' + name) - er.code = 'ENOENT' - cb(er) -} -var mockReadPackageJson = function (file, cb) { - if (files[file]) return cb(null, files[file]) - var er = new Error('No such mock: ' + file) - er.code = 'ENOENT' - cb(er) -} -var mockFs = Object.create(fs) -mockFs.realpath = function (dir, cb) { - return cb(null, dir) -} - -test('setup', function (t) { - npm.load(function () { - t.pass('npm loaded') - t.end() - }) -}) - -function loadArgMetadata (cb) { - this.args = this.args.map(function (arg) { return {name: arg} }) - cb() -} - -test('installer', function (t) { - t.plan(1) - var installer = requireInject('../../lib/install.js', { - 'fs': mockFs, - 'readdir-scoped-modules': mockReaddir, - 'read-package-json': mockReadPackageJson - }) - - var Installer = installer.Installer - var TestInstaller = function () { - Installer.apply(this, arguments) - this.global = true - } - inherits(TestInstaller, Installer) - TestInstaller.prototype.loadArgMetadata = loadArgMetadata - - var inst = new TestInstaller(__dirname, false, ['def', 'abc']) - inst.loadCurrentTree(function () { - var kids = inst.currentTree.children.map(function (child) { return child.package.name }) - t.isDeeply(kids, ['abc', 'def']) - t.end() - }) -}) - -test('uninstaller', function (t) { - t.plan(1) - var uninstaller = requireInject('../../lib/uninstall.js', { - 'fs': mockFs, - 'readdir-scoped-modules': mockReaddir, - 'read-package-json': mockReadPackageJson - }) - - var Uninstaller = uninstaller.Uninstaller - var TestUninstaller = function () { - Uninstaller.apply(this, arguments) - this.global = true - } - inherits(TestUninstaller, Uninstaller) - - var uninst = new TestUninstaller(__dirname, false, ['ghi', 'jkl']) - uninst.loadCurrentTree(function () { - var kids = uninst.currentTree.children.map(function (child) { return child.package.name }) - t.isDeeply(kids, ['ghi', 'jkl']) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/noargs-install-config-save.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/noargs-install-config-save.js deleted file mode 100644 index 074d5e84..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/noargs-install-config-save.js +++ /dev/null @@ -1,78 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var path = require('path') -var fs = require('fs') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') - -var mr = require('npm-registry-mock') - -var pkg = path.resolve(process.env.npm_config_tmp || '/tmp', - 'noargs-install-config-save') - -function writePackageJson () { - rimraf.sync(pkg) - mkdirp.sync(pkg) - mkdirp.sync(pkg + '/cache') - - fs.writeFileSync(pkg + '/package.json', JSON.stringify({ - 'author': 'Rocko Artischocko', - 'name': 'noargs', - 'version': '0.0.0', - 'devDependencies': { - 'underscore': '1.3.1' - } - }), 'utf8') -} - -var env = { - 'npm_config_save': true, - 'npm_config_registry': common.registry, - 'npm_config_cache': pkg + '/cache', - HOME: process.env.HOME, - Path: process.env.PATH, - PATH: process.env.PATH -} -var OPTS = { - cwd: pkg, - env: env -} - -test('does not update the package.json with empty arguments', function (t) { - writePackageJson() - t.plan(2) - - mr({ port: common.port }, function (er, s) { - common.npm('install', OPTS, function (er, code, stdout, stderr) { - if (er) throw er - t.is(code, 0) - if (code !== 0) { - console.error('#', stdout) - console.error('#', stderr) - } - var text = JSON.stringify(fs.readFileSync(pkg + '/package.json', 'utf8')) - s.close() - t.equal(text.indexOf('"dependencies'), -1, 'dependencies do not exist in file') - }) - }) -}) - -test('updates the package.json (adds dependencies) with an argument', function (t) { - writePackageJson() - t.plan(2) - - mr({ port: common.port }, function (er, s) { - common.npm(['install', 'underscore'], OPTS, function (er, code, stdout, stderr) { - if (er) throw er - t.is(code, 0) - s.close() - var text = JSON.stringify(fs.readFileSync(pkg + '/package.json', 'utf8')) - t.notEqual(text.indexOf('"dependencies'), -1, 'dependencies exist in file') - }) - }) -}) - -test('cleanup', function (t) { - rimraf.sync(pkg + '/cache') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/normalize-package-explode.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/normalize-package-explode.js deleted file mode 100644 index 57faec8b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/normalize-package-explode.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict' -var test = require('tap').test -var log = require('npmlog') -var npm = require('../../lib/npm.js') - -var idealTree = { - package: { - name: 'a b c', - version: '3.what' - }, - children: [], - warnings: [] -} - -test('setup', function (t) { - npm.load({}, t.end) -}) - -test('validate-tree', function (t) { - log.disableProgress() - var validateTree = require('../../lib/install/validate-tree.js') - validateTree(idealTree, log.newGroup('validate'), function (er) { - t.pass("we didn't crash") - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/npm-api-not-loaded-error.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/npm-api-not-loaded-error.js deleted file mode 100644 index 48b71e52..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/npm-api-not-loaded-error.js +++ /dev/null @@ -1,47 +0,0 @@ -var test = require('tap').test -var npm = require('../..') -var path = require('path') -var rimraf = require('rimraf') -var npmrc = path.join(__dirname, 'npmrc') -var fs = require('fs') - -test('setup', function (t) { - fs.writeFileSync(npmrc, 'foo = bar\n', 'ascii') - t.end() -}) - -test('calling set/get on config pre-load should throw', function (t) { - var threw = true - try { - npm.config.get('foo') - threw = false - } catch (er) { - t.equal(er.message, 'npm.load() required') - } finally { - t.ok(threw, 'get before load should throw') - } - - threw = true - try { - npm.config.set('foo', 'bar') - threw = false - } catch (er) { - t.equal(er.message, 'npm.load() required') - } finally { - t.ok(threw, 'set before load should throw') - } - - npm.load({ userconfig: npmrc }, function (er) { - if (er) throw er - - t.equal(npm.config.get('foo'), 'bar') - npm.config.set('foo', 'baz') - t.equal(npm.config.get('foo'), 'baz') - t.end() - }) -}) - -test('cleanup', function (t) { - rimraf.sync(npmrc) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/onload.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/onload.js deleted file mode 100644 index 8d2b6c74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/onload.js +++ /dev/null @@ -1,39 +0,0 @@ -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var common = require('../common-tap.js') -var opts = { cwd: __dirname } -var binDir = '../../node_modules/.bin' -var fixture = path.resolve(__dirname, binDir) -var onload = path.resolve(__dirname, '../fixtures/onload.js') - -test('setup', function (t) { - rimraf.sync(path.join(__dirname, 'node_modules')) - t.end() -}) - -test('npm bin with valid onload script', function (t) { - var args = ['--onload', onload, 'bin'] - common.npm(args, opts, function (err, code, stdout, stderr) { - t.ifError(err, 'bin ran without issue') - t.equal(stderr.trim(), 'called onload') - t.equal(code, 0, 'exit ok') - t.equal(stdout, fixture + '\n') - t.end() - }) -}) - -test('npm bin with invalid onload script', function (t) { - var onloadScript = onload + 'jsfd' - var args = ['--onload', onloadScript, '--loglevel=warn', 'bin'] - common.npm(args, opts, function (err, code, stdout, stderr) { - t.ifError(err, 'bin ran without issue') - t.match(stderr, /npm WARN onload-script failed to require onload script/) - t.match(stderr, /MODULE_NOT_FOUND/) - t.notEqual(stderr.indexOf(onloadScript), -1) - t.equal(code, 0, 'exit ok') - var res = path.resolve(stdout) - t.equal(res, fixture + '\n') - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/optional-metadep-rollback-collision.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/optional-metadep-rollback-collision.js deleted file mode 100644 index a9294858..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/optional-metadep-rollback-collision.js +++ /dev/null @@ -1,239 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'optional-metadep-rollback-collision') -var deps = path.resolve(pkg, 'deps') -var opdep = path.resolve(pkg, 'node_modules', 'opdep') -var cache = path.resolve(pkg, 'cache') -var pidfile = path.resolve(pkg, 'child.pid') - -var json = { - name: 'optional-metadep-rollback-collision', - version: '1.0.0', - description: 'let\'s just see about that race condition', - optionalDependencies: { - opdep: 'file:./deps/opdep' - } -} - -var d1 = { - name: 'd1', - version: '1.0.0', - description: 'I FAIL CONSTANTLY', - scripts: { - preinstall: 'sleep 1' - }, - dependencies: { - foo: 'http://localhost:8080/' - } -} - -var d2 = { - name: 'd2', - version: '1.0.0', - description: 'how do you *really* know you exist?', - scripts: { - postinstall: 'node blart.js' - }, - dependencies: { - 'graceful-fs': '^3.0.2', - mkdirp: '^0.5.0', - rimraf: '^2.2.8' - } -} - -var opdep_json = { - name: 'opdep', - version: '1.0.0', - description: 'To explode, of course!', - main: 'index.js', - scripts: { - preinstall: 'node bad-server.js' - }, - dependencies: { - d1: 'file:../d1', - d2: 'file:../d2' - } -} - -var badServer = function () { /* -var createServer = require('http').createServer -var spawn = require('child_process').spawn -var fs = require('fs') -var path = require('path') -var pidfile = path.resolve(__dirname, '..', '..', 'child.pid') - -if (process.argv[2]) { - console.log('ok') - createServer(function (req, res) { - setTimeout(function () { - res.writeHead(404) - res.end() - }, 1000) - this.close() - }).listen(8080) -} else { - var child = spawn( - process.execPath, - [__filename, 'whatever'], - { - stdio: [0, 1, 2], - detached: true - } - ) - child.unref() - - // kill any prior children, if existing. - try { - var pid = +fs.readFileSync(pidfile) - process.kill(pid, 'SIGKILL') - } catch (er) {} - - fs.writeFileSync(pidfile, child.pid + '\n') -} -*/ }.toString().split('\n').slice(1, -1).join('\n') - -var blart = function () { /* -var rando = require('crypto').randomBytes -var resolve = require('path').resolve - -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var writeFile = require('graceful-fs').writeFile - -var BASEDIR = resolve(__dirname, 'arena') - -var keepItGoingLouder = {} -var writers = 0 -var errors = 0 - -function gensym () { return rando(16).toString('hex') } - -function writeAlmostForever (filename) { - if (!keepItGoingLouder[filename]) { - writers-- - if (writers < 1) return done() - } else { - writeFile(filename, keepItGoingLouder[filename], function (err) { - if (err) errors++ - - writeAlmostForever(filename) - }) - } -} - -function done () { - rimraf(BASEDIR, function () { - if (errors > 0) console.log('not ok - %d errors', errors) - else console.log('ok') - }) -} - -mkdirp(BASEDIR, function go () { - for (var i = 0; i < 16; i++) { - var filename = resolve(BASEDIR, gensym() + '.txt') - - keepItGoingLouder[filename] = '' - for (var j = 0; j < 512; j++) keepItGoingLouder[filename] += filename - - writers++ - writeAlmostForever(filename) - } - - setTimeout(function viktor () { - // kill all the writers - keepItGoingLouder = {} - }, 3 * 1000) -}) -*/ }.toString().split('\n').slice(1, -1).join('\n') -test('setup', function (t) { - cleanup() - - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - mkdirp.sync(path.join(deps, 'd1')) - fs.writeFileSync( - path.join(deps, 'd1', 'package.json'), - JSON.stringify(d1, null, 2) - ) - - mkdirp.sync(path.join(deps, 'd2')) - fs.writeFileSync( - path.join(deps, 'd2', 'package.json'), - JSON.stringify(d2, null, 2) - ) - fs.writeFileSync(path.join(deps, 'd2', 'blart.js'), blart) - - mkdirp.sync(path.join(deps, 'opdep')) - fs.writeFileSync( - path.join(deps, 'opdep', 'package.json'), - JSON.stringify(opdep_json, null, 2) - ) - fs.writeFileSync(path.join(deps, 'opdep', 'bad-server.js'), badServer) - - t.end() -}) - -test('go go test racer', function (t) { - common.npm( - [ - '--prefix', pkg, - '--fetch-retries', '0', - '--loglevel', 'silent', - '--cache', cache, - 'install' - ], - { - cwd: pkg, - env: { - PATH: process.env.PATH, - Path: process.env.Path - }, - stdio: [0, 'pipe', 2] - }, - function (er, code, stdout, stderr) { - t.ifError(er, 'install ran to completion without error') - t.is(code, 0, 'npm install exited with code 0') - t.is(stderr, '') - - // stdout should be empty, because we only have one, optional, dep and - // if it fails we shouldn't try installing anything - t.equal(stdout, '') - t.notOk(/not ok/.test(stdout), 'should not contain the string \'not ok\'') - t.end() - } - ) -}) - -test('verify results', function (t) { - t.throws(function () { - fs.statSync(opdep) - }) - t.end() -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - try { - var pid = +fs.readFileSync(pidfile) - process.kill(pid, 'SIGKILL') - } catch (er) {} - - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-color.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-color.js deleted file mode 100644 index a0da3370..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-color.js +++ /dev/null @@ -1,75 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'outdated-color') - -var EXEC_OPTS = { cwd: pkg } - -function hasControlCodes (str) { - return str.length !== ansiTrim(str).length -} - -function ansiTrim (str) { - var r = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' + - '\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g') - return str.replace(r, '') -} - -var json = { - name: 'outdated-color', - description: 'fixture', - version: '0.0.1', - dependencies: { - underscore: '1.3.1' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - process.chdir(pkg) - t.end() -}) - -// note hard to automate tests for color = true -// as npm kills the color config when it detects -// it's not running in a tty -test('does not use ansi styling', function (t) { - t.plan(4) - mr({ port: common.port }, function (er, s) { // create mock registry. - common.npm( - [ - '--registry', common.registry, - 'outdated', 'underscore' - ], - EXEC_OPTS, - function (err, code, stdout) { - t.ifError(err) - t.notOk(code, 'npm outdated exited with code 0') - t.ok(stdout, stdout.length) - t.ok(!hasControlCodes(stdout)) - s.close() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-depth-deep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-depth-deep.js deleted file mode 100644 index 682b1ca9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-depth-deep.js +++ /dev/null @@ -1,92 +0,0 @@ -var common = require('../common-tap') -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var mr = require('npm-registry-mock') -var pkg = path.resolve(__dirname, 'outdated-depth-deep') -var cache = path.resolve(pkg, 'cache') - -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var fs = require('fs') - -var pj = JSON.stringify({ - 'name': 'whatever', - 'description': 'yeah idk', - 'version': '1.2.3', - 'main': 'index.js', - 'dependencies': { - 'underscore': '1.3.1', - 'npm-test-peer-deps': '0.0.0' - }, - 'repository': 'git://github.com/luk-/whatever' -}, null, 2) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup () { - mkdirp.sync(pkg) - process.chdir(pkg) - fs.writeFileSync(path.resolve(pkg, 'package.json'), pj) -} - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -test('outdated depth deep (9999)', function (t) { - var conf = [ - '--registry', common.registry, - '--cache', cache - ] - - var server - mr({ port: common.port }, thenTopLevelInstall) - - function thenTopLevelInstall (err, s) { - if (err) throw err - server = s - common.npm(conf.concat(['install', '.']), {cwd: pkg}, thenDeepInstall) - } - - function thenDeepInstall (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'install completed successfully') - t.is('', stderr, 'no error output') - var depPath = path.join(pkg, 'node_modules', 'npm-test-peer-deps') - common.npm(conf.concat(['install', 'underscore']), {cwd: depPath}, thenRunOutdated) - } - - function thenRunOutdated (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'deep install completed successfully') - t.is('', stderr, 'no error output') - common.npm(conf.concat(['outdated', '--depth', 9999]), {cwd: pkg}, thenValidateOutput) - } - - function thenValidateOutput (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'outdated completed successfully') - t.is('', stderr, 'no error output') - t.match( - stdout, - /underscore.*1\.3\.1.*1\.3\.1.*1\.5\.1.*whatever\n/g, - 'child package listed') - t.match( - stdout, - /underscore.*1\.3\.1.*1\.3\.1.*1\.5\.1.*whatever > npm-test-peer-deps/g, - 'child package listed') - server.close() - t.end() - } -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-depth-integer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-depth-integer.js deleted file mode 100644 index 32bf785f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-depth-integer.js +++ /dev/null @@ -1,78 +0,0 @@ -var common = require('../common-tap') -var test = require('tap').test -var rimraf = require('rimraf') -var npm = require('../../') -var mr = require('npm-registry-mock') -var path = require('path') -var pkg = path.resolve('outdated-depth-integer') - -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var fs = require('fs') - -var pj = JSON.stringify({ - 'name': 'whatever', - 'description': 'yeah idk', - 'version': '1.2.3', - 'main': 'index.js', - 'dependencies': { - 'underscore': '1.3.1' - }, - 'repository': 'git://github.com/luk-/whatever' -}, null, 2) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup () { - mkdirp.sync(pkg) - process.chdir(pkg) - fs.writeFileSync('package.json', pj) -} - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -test('outdated depth integer', function (t) { - // todo: update with test-package-with-one-dep once the new - // npm-registry-mock is published - var expected = [[ - pkg, - 'underscore', - undefined, // no version installed - '1.3.1', // wanted - '1.5.1', // latest - '1.3.1', - null - ]] - - mr({ port: common.port }, function (er, s) { - npm.load({ - cache: pkg + '/cache', - loglevel: 'silent', - registry: common.registry, - depth: 5 - } - , function () { - npm.install('request@0.9.0', function (er) { - if (er) throw new Error(er) - npm.outdated(function (err, d) { - if (err) throw new Error(err) - t.deepEqual(d, expected) - s.close() - t.end() - }) - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-depth.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-depth.js deleted file mode 100644 index 13220dfa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-depth.js +++ /dev/null @@ -1,76 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../') -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, 'outdated-depth') - -var json = { - name: 'outdated-depth', - version: '1.2.3', - dependencies: { - underscore: '1.3.1', - 'npm-test-peer-deps': '0.0.0' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) - - t.end() -}) - -test('outdated depth zero', function (t) { - var expected = [ - pkg, - 'underscore', - '1.3.1', - '1.3.1', - '1.5.1', - '1.3.1', - null - ] - - mr({ port: common.port }, function (er, s) { - npm.load( - { - loglevel: 'silent', - registry: common.registry - }, - function () { - npm.install('.', function (er) { - if (er) throw new Error(er) - npm.outdated(function (err, d) { - if (err) throw new Error(err) - t.deepEqual(d[0], expected) - s.close() - t.end() - }) - }) - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-git.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-git.js deleted file mode 100644 index 1a61a0c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-git.js +++ /dev/null @@ -1,58 +0,0 @@ -var path = require('path') - -var test = require('tap').test -var mkdirp = require('mkdirp') -var fs = require('graceful-fs') -var rimraf = require('rimraf') - -var common = require('../common-tap.js') -var npm = require('../../') - -// config -var pkg = path.resolve(__dirname, 'outdated-git') -var cache = path.resolve(pkg, 'cache') -var json = { - name: 'outdated-git', - author: 'Rocko Artischocko', - description: 'fixture', - version: '0.0.1', - main: 'index.js', - dependencies: { - 'foo-github': 'robertkowalski/foo', - 'foo-private': 'git://github.com/robertkowalski/foo-private.git', - 'foo-private-credentials': 'git://user:pass@github.com/robertkowalski/foo-private.git' - } -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('discovers new versions in outdated', function (t) { - process.chdir(pkg) - t.plan(5) - npm.load({cache: cache, registry: common.registry, loglevel: 'silent'}, function () { - npm.commands.outdated([], function (er, d) { - t.equal(d[0][3], 'git') - t.equal(d[0][4], 'git') - t.equal(d[0][5], 'github:robertkowalski/foo') - t.equal(d[1][5], 'git://github.com/robertkowalski/foo-private.git') - t.equal(d[2][5], 'git://user:pass@github.com/robertkowalski/foo-private.git') - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - mkdirp.sync(cache) - fs.writeFileSync(path.join(pkg, 'package.json'), JSON.stringify(json, null, 2), 'utf8') -} - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-include-devdependencies.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-include-devdependencies.js deleted file mode 100644 index 7ab00884..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-include-devdependencies.js +++ /dev/null @@ -1,55 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../') -var common = require('../common-tap.js') - -// config -var pkg = path.resolve(__dirname, 'outdated-include-devdependencies') -var cache = path.resolve(pkg, 'cache') - -var json = { - author: 'Rocko Artischocko', - name: 'ignore-shrinkwrap', - version: '0.0.0', - devDependencies: { - underscore: '>=1.3.1' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(cache) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - t.end() -}) - -test('includes devDependencies in outdated', function (t) { - process.chdir(pkg) - mr({ port: common.port }, function (er, s) { - npm.load({ cache: cache, registry: common.registry }, function () { - npm.outdated(function (er, d) { - t.equal('1.5.1', d[0][3]) - s.close() - t.end() - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-json.js deleted file mode 100644 index 2dd6867e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-json.js +++ /dev/null @@ -1,105 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var server - -var pkg = path.resolve(__dirname, 'outdated-json') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'outdated-json', - author: 'Rockbert', - version: '0.0.0', - dependencies: { - underscore: '~1.3.1' - }, - devDependencies: { - request: '~0.9.0' - } -} - -var expected = { - underscore: { - current: '1.3.3', - wanted: '1.3.3', - latest: '1.5.1', - location: 'node_modules' + path.sep + 'underscore' - }, - request: { - current: '0.9.5', - wanted: '0.9.5', - latest: '2.27.0', - location: 'node_modules' + path.sep + 'request' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) - mr({ port: common.port }, function (er, s) { - t.ifError(er, 'mock registry should never fail to start') - server = s - common.npm( - [ - '--registry', common.registry, - '--silent', - 'install' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'npm install ran without raising error code') - - t.end() - } - ) - }) -}) - -test('it should log json data', function (t) { - common.npm( - [ - '--registry', common.registry, - '--silent', - '--json', - 'outdated' - ], - EXEC_OPTS, - function (err, code, stdout) { - t.ifError(err, 'npm outdated ran without issue') - t.notOk(code, 'npm outdated ran without raising error code') - var out - t.doesNotThrow(function () { - out = JSON.parse(stdout) - }, 'output correctly parsed as JSON') - t.deepEqual(out, expected) - - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -function cleanup () { - // windows fix for locked files - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-local.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-local.js deleted file mode 100644 index 067696ca..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-local.js +++ /dev/null @@ -1,193 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var npm = require('../../') -var rimraf = require('rimraf') -var path = require('path') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var fs = require('graceful-fs') - -var pkg = path.resolve(__dirname, 'outdated-local') -var pkgLocal = path.resolve(pkg, 'local-module') -var pkgScopedLocal = path.resolve(pkg, 'another-local-module') -var pkgLocalUnderscore = path.resolve(pkg, 'underscore') -var pkgLocalOptimist = path.resolve(pkg, 'optimist') - -var pjParent = JSON.stringify({ - name: 'outdated-local', - version: '1.0.0', - dependencies: { - 'local-module': 'file:local-module', // updated locally, not on repo - '@scoped/another-local-module': 'file:another-local-module', // updated locally, scoped, not on repo - 'underscore': 'file:underscore', // updated locally, updated but lesser version on repo - 'optimist': 'file:optimist' // updated locally, updated and greater version on repo - } -}, null, 2) + '\n' - -var pjLocal = JSON.stringify({ - name: 'local-module', - version: '1.0.0' -}, null, 2) + '\n' - -var pjLocalBumped = JSON.stringify({ - name: 'local-module', - version: '1.1.0' -}, null, 2) + '\n' - -var pjScopedLocal = JSON.stringify({ - name: '@scoped/another-local-module', - version: '1.0.0' -}, null, 2) + '\n' - -var pjScopedLocalBumped = JSON.stringify({ - name: '@scoped/another-local-module', - version: '1.2.0' -}, null, 2) + '\n' - -var pjLocalUnderscore = JSON.stringify({ - name: 'underscore', - version: '1.3.1' -}, null, 2) + '\n' - -var pjLocalUnderscoreBumped = JSON.stringify({ - name: 'underscore', - version: '1.6.1' -}, null, 2) + '\n' - -var pjLocalOptimist = JSON.stringify({ - name: 'optimist', - version: '0.4.0' -}, null, 2) + '\n' - -var pjLocalOptimistBumped = JSON.stringify({ - name: 'optimist', - version: '0.5.0' -}, null, 2) + '\n' - -function mocks (server) { - server.get('/local-module') - .reply(404) - server.get('/@scoped%2fanother-local-module') - .reply(404) -} - -test('setup', function (t) { - bootstrap() - t.end() -}) - -test('outdated support local modules', function (t) { - t.plan(4) - process.chdir(pkg) - mr({ port: common.port, plugin: mocks }, function (err, s) { - t.ifError(err, 'mock registry started without problems') - - function verify (actual, expected) { - for (var i = 0; i < expected.length; i++) { - var current = expected[i] - - var found = false - for (var j = 0; j < actual.length; j++) { - var target = actual[j] - - var k - for (k = 0; k < current.length; k++) { - if (current[k] !== target[k]) break - } - if (k === current.length) found = true - } - - if (!found) return false - } - - return true - } - - npm.load( - { - loglevel: 'silent', - parseable: true, - registry: common.registry - }, - function () { - npm.install('.', function (err) { - t.ifError(err, 'install success') - bumpLocalModules() - npm.outdated(function (er, d) { - t.ifError(er, 'outdated success') - t.ok(verify(d, [ - [ - path.resolve(__dirname, 'outdated-local'), - 'local-module', - '1.0.0', - '1.1.0', - '1.1.0', - 'file:local-module' - ], - [ - path.resolve(__dirname, 'outdated-local'), - '@scoped/another-local-module', - '1.0.0', - '1.2.0', - '1.2.0', - 'file:another-local-module' - ], - [ - path.resolve(__dirname, 'outdated-local'), - 'underscore', - '1.3.1', - '1.6.1', - '1.5.1', - 'file:underscore' - ], - [ - path.resolve(__dirname, 'outdated-local'), - 'optimist', - '0.4.0', - '0.6.0', - '0.6.0', - 'optimist@0.6.0' - ] - ]), 'got expected outdated output') - s.close() - }) - }) - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function bootstrap () { - mkdirp.sync(pkg) - fs.writeFileSync(path.resolve(pkg, 'package.json'), pjParent) - - mkdirp.sync(pkgLocal) - fs.writeFileSync(path.resolve(pkgLocal, 'package.json'), pjLocal) - - mkdirp.sync(pkgScopedLocal) - fs.writeFileSync(path.resolve(pkgScopedLocal, 'package.json'), pjScopedLocal) - - mkdirp.sync(pkgLocalUnderscore) - fs.writeFileSync(path.resolve(pkgLocalUnderscore, 'package.json'), pjLocalUnderscore) - - mkdirp.sync(pkgLocalOptimist) - fs.writeFileSync(path.resolve(pkgLocalOptimist, 'package.json'), pjLocalOptimist) -} - -function bumpLocalModules () { - fs.writeFileSync(path.resolve(pkgLocal, 'package.json'), pjLocalBumped) - fs.writeFileSync(path.resolve(pkgScopedLocal, 'package.json'), pjScopedLocalBumped) - fs.writeFileSync(path.resolve(pkgLocalUnderscore, 'package.json'), pjLocalUnderscoreBumped) - fs.writeFileSync(path.resolve(pkgLocalOptimist, 'package.json'), pjLocalOptimistBumped) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-long.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-long.js deleted file mode 100644 index 87e1f23b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-long.js +++ /dev/null @@ -1,101 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var npm = require('../../') - -// config -var pkg = path.resolve(__dirname, 'outdated-long') -var cache = path.resolve(pkg, 'cache') - -var json = { - name: 'outdated-long', - description: 'fixture', - version: '0.0.1', - dependencies: { - underscore: '1.3.1' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(cache) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - process.chdir(pkg) - t.end() -}) - -test('it should not throw', function (t) { - var originalLog = console.log - - var output = [] - var expOut = [ - path.resolve(pkg, 'node_modules', 'underscore'), - path.resolve(pkg, 'node_modules', 'underscore') + - ':underscore@1.3.1' + - ':underscore@1.3.1' + - ':underscore@1.5.1' + - ':dependencies' - ] - - var expData = [ - [ - pkg, - 'underscore', - '1.3.1', - '1.3.1', - '1.5.1', - '1.3.1', - 'dependencies' - ] - ] - - console.log = function () { - output.push.apply(output, arguments) - } - mr({ port: common.port }, function (er, s) { - npm.load( - { - cache: 'cache', - loglevel: 'silent', - parseable: true, - registry: common.registry - }, - function () { - npm.install('.', function (err) { - t.ifError(err, 'install success') - npm.config.set('long', true) - npm.outdated(function (er, d) { - t.ifError(er, 'outdated success') - - console.log = originalLog - - t.same(output, expOut) - t.same(d, expData) - - s.close() - t.end() - }) - }) - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-new-versions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-new-versions.js deleted file mode 100644 index c6fbd426..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-new-versions.js +++ /dev/null @@ -1,62 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var npm = require('../../') - -var pkg = path.resolve(__dirname, 'outdated-new-versions') -var cache = path.resolve(pkg, 'cache') - -var json = { - name: 'new-versions-with-outdated', - author: 'Rockbert', - version: '0.0.0', - dependencies: { - underscore: '~1.3.1' - }, - devDependencies: { - request: '~0.9.0' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(cache) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - t.end() -}) - -test('dicovers new versions in outdated', function (t) { - process.chdir(pkg) - t.plan(2) - - mr({ port: common.port }, function (er, s) { - npm.load({ cache: cache, registry: common.registry }, function () { - npm.outdated(function (er, d) { - for (var i = 0; i < d.length; i++) { - if (d[i][1] === 'underscore') t.equal('1.5.1', d[i][4]) - if (d[i][1] === 'request') t.equal('2.27.0', d[i][4]) - } - s.close() - t.end() - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-notarget.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-notarget.js deleted file mode 100644 index 14388a80..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-notarget.js +++ /dev/null @@ -1,47 +0,0 @@ -// Fixes Issue #1770 -var common = require('../common-tap.js') -var test = require('tap').test -var npm = require('../../') -var osenv = require('osenv') -var path = require('path') -var fs = require('fs') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var pkg = path.resolve(__dirname, 'outdated-notarget') -var cache = path.resolve(pkg, 'cache') -var mr = require('npm-registry-mock') - -test('outdated-target: if no viable version is found, show error', function (t) { - t.plan(1) - setup() - mr({ port: common.port }, function (er, s) { - npm.load({ cache: cache, registry: common.registry }, function () { - npm.commands.update(function (er) { - t.equal(er.code, 'ETARGET') - s.close() - t.end() - }) - }) - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) - t.end() -}) - -function setup () { - mkdirp.sync(pkg) - mkdirp.sync(cache) - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ - author: 'Evan Lucas', - name: 'outdated-notarget', - version: '0.0.0', - description: 'Test for outdated-target', - dependencies: { - underscore: '~199.7.1' - } - }), 'utf8') - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-private.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-private.js deleted file mode 100644 index 1d5e460c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-private.js +++ /dev/null @@ -1,113 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var npm = require('../../') -var rimraf = require('rimraf') -var path = require('path') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var fs = require('graceful-fs') - -var pkg = path.resolve(__dirname, 'outdated-private') -var pkgLocalPrivate = path.resolve(pkg, 'local-private') -var pkgScopedLocalPrivate = path.resolve(pkg, 'another-local-private') -var pkgLocalUnderscore = path.resolve(pkg, 'underscore') - -var pjParent = JSON.stringify({ - name: 'outdated-private', - version: '1.0.0', - dependencies: { - 'local-private': 'file:local-private', - '@scoped/another-local-private': 'file:another-local-private', - 'underscore': 'file:underscore' - } -}, null, 2) + '\n' - -var pjLocalPrivate = JSON.stringify({ - name: 'local-private', - version: '1.0.0', - 'private': true -}, null, 2) + '\n' - -var pjLocalPrivateBumped = JSON.stringify({ - name: 'local-private', - version: '1.1.0', - 'private': true -}, null, 2) + '\n' - -var pjScopedLocalPrivate = JSON.stringify({ - name: '@scoped/another-local-private', - version: '1.0.0', - 'private': true -}, null, 2) + '\n' - -var pjLocalUnderscore = JSON.stringify({ - name: 'underscore', - version: '1.3.1' -}, null, 2) + '\n' - -test('setup', function (t) { - bootstrap() - t.end() -}) - -test('outdated ignores private modules', function (t) { - t.plan(3) - process.chdir(pkg) - mr({ port: common.port }, function (er, s) { - npm.load( - { - loglevel: 'silent', - parseable: true, - registry: common.registry - }, - function () { - npm.install('.', function (err) { - t.ifError(err, 'install success') - bumpLocalPrivate() - npm.outdated(function (er, d) { - t.ifError(er, 'outdated success') - t.deepEqual(d, [[ - path.resolve(__dirname, 'outdated-private'), - 'underscore', - '1.3.1', - '1.5.1', - '1.5.1', - 'underscore@1.5.1', - null - ]]) - s.close() - }) - }) - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function bootstrap () { - mkdirp.sync(pkg) - fs.writeFileSync(path.resolve(pkg, 'package.json'), pjParent) - - mkdirp.sync(pkgLocalPrivate) - fs.writeFileSync(path.resolve(pkgLocalPrivate, 'package.json'), pjLocalPrivate) - - mkdirp.sync(pkgScopedLocalPrivate) - fs.writeFileSync(path.resolve(pkgScopedLocalPrivate, 'package.json'), pjScopedLocalPrivate) - - mkdirp.sync(pkgLocalUnderscore) - fs.writeFileSync(path.resolve(pkgLocalUnderscore, 'package.json'), pjLocalUnderscore) -} - -function bumpLocalPrivate () { - fs.writeFileSync(path.resolve(pkgLocalPrivate, 'package.json'), pjLocalPrivateBumped) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-symlink.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-symlink.js deleted file mode 100644 index 809cfec2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated-symlink.js +++ /dev/null @@ -1,103 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'outdated-symlink') -var cache = path.resolve(pkg, 'cache') -var extend = Object.assign || require('util')._extend - -var fakeRoot = path.join(pkg, 'fakeRoot') -var OPTS = { - env: extend(extend({}, process.env), { - 'npm_config_prefix': fakeRoot - }) -} - -var json = { - name: 'my-local-package', - description: 'fixture', - version: '1.0.0' -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(cache) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) - common.npm(['install', '-g', 'async@0.2.9', 'underscore@1.3.1'], OPTS, function (err, code, stdout, stderr) { - if (err) throw err - t.comment(stdout) - t.comment(stderr) - common.npm(['link'], OPTS, function (err, code, stdout, stderr) { - if (err) throw err - t.comment(stdout) - t.comment(stderr) - t.is(code, 0) - common.npm(['ls', '-g'], OPTS, function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0) - t.is(stderr, '', 'got expected stderr') - t.match(stdout, /my-local-package@1.0.0/, 'creates global link ok') - t.end() - }) - }) - }) -}) - -test('when outdated is called linked packages should be displayed as such', function (t) { - var regOutLinked = /my-local-package\s*1.0.0\s*linked\s*linked\n/ - var regOutInstallOne = /async\s*0.2.9\s*0.2.9\s*0.2.10\n/ - var regOutInstallTwo = /underscore\s*1.3.1\s*1.3.1\s*1.5.1\n/ - - mr({ port: common.port }, function (er, s) { - common.npm( - [ - '--registry', common.registry, - 'outdated', '-g' - ], - OPTS, - function (err, c, out, stderr) { - if (err) throw err - t.is(stderr, '') - t.match(out, regOutLinked, 'Global Link format as expected') - t.match(out, regOutInstallOne, 'Global Install format as expected') - t.match(out, regOutInstallTwo, 'Global Install format as expected') - s.close() - t.end() - } - ) - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - common.npm(['rm', 'outdated'], OPTS, function (err, code, stdout, stderr) { - if (err) throw err - t.comment(stdout) - t.comment(stderr) - t.is(code, 0, 'cleanup outdated in local ok') - common.npm(['rm', '-g', 'outdated', 'async', 'underscore'], OPTS, function (err, code) { - if (err) throw err - t.comment(stdout) - t.comment(stderr) - t.is(code, 0, 'cleanup outdated in global ok') - - cleanup() - t.end() - }) - }) -}) - -function cleanup () { - rimraf.sync(pkg) - rimraf.sync(fakeRoot) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated.js deleted file mode 100644 index 3a46705e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/outdated.js +++ /dev/null @@ -1,130 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../') -var common = require('../common-tap.js') - -// config -var pkg = path.resolve(__dirname, 'outdated') -var cache = path.resolve(pkg, 'cache') -var originalLog - -var json = { - name: 'outdated', - description: 'fixture', - version: '0.0.1', - dependencies: { - underscore: '1.3.1', - async: '0.2.9', - checker: '0.5.1' - } -} - -test('setup', function (t) { - cleanup() - originalLog = console.log - mkdirp.sync(cache) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - process.chdir(pkg) - t.end() -}) - -test('it should not throw', function (t) { - var output = [] - var expOut = [ - path.resolve(pkg, 'node_modules', 'async') + - ':async@0.2.9' + - ':async@0.2.9' + - ':async@0.2.10' + - '\n' + - path.resolve(pkg, 'node_modules', 'checker') + - ':checker@0.5.1' + - ':checker@0.5.1' + - ':checker@0.5.2' + - '\n' + - path.resolve(pkg, 'node_modules', 'underscore') + - ':underscore@1.3.1' + - ':underscore@1.3.1' + - ':underscore@1.5.1' - ] - - var expData = [ - [ - pkg, - 'async', - '0.2.9', - '0.2.9', - '0.2.10', - '0.2.9', - null - ], - [ - pkg, - 'checker', - '0.5.1', - '0.5.1', - '0.5.2', - '0.5.1', - null - ], - [ - pkg, - 'underscore', - '1.3.1', - '1.3.1', - '1.5.1', - '1.3.1', - null - ] - ] - - console.log = function () {} - mr({ port: common.port }, function (er, s) { - npm.load( - { - cache: 'cache', - loglevel: 'silent', - parseable: true, - registry: common.registry - }, - function () { - npm.install('.', function (err) { - t.ifError(err, 'install success') - console.log = function () { - output.push.apply(output, arguments) - } - npm.outdated(function (er, d) { - t.ifError(er, 'outdated success') - output = output.map(function (x) { return x.replace(/\r/g, '') }) - console.log = originalLog - - t.same(output, expOut) - t.same(d, expData) - - s.close() - t.end() - }) - }) - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - console.log = originalLog - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/override-bundled.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/override-bundled.js deleted file mode 100644 index e23c8255..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/override-bundled.js +++ /dev/null @@ -1,158 +0,0 @@ -'use strict' -var test = require('tap').test -var fs = require('fs') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var path = require('path') -var common = require('../common-tap.js') - -var testname = path.basename(__filename, '.js') -var testdir = path.resolve(__dirname, testname) -var testmod = path.resolve(testdir, 'top-test') - -var bundleupdatesrc = path.resolve(testmod, 'bundle-update') -var bundleupdateNEW = path.resolve(bundleupdatesrc, 'NEW') -var bundleupdateNEWpostinstall = path.resolve(testdir, 'node_modules', 'top-test', 'node_modules', 'bundle-update', 'NEW') -var bundleupdatebad = path.resolve(testmod, 'node_modules', 'bundle-update') - -var bundlekeepsrc = path.resolve(testmod, 'bundle-keep') -var bundlekeep = path.resolve(testmod, 'node_modules', 'bundle-keep') -var bundlekeepOLD = path.resolve(bundlekeep, 'OLD') -var bundlekeepOLDpostinstall = path.resolve(testdir, 'node_modules', 'top-test', 'node_modules', 'bundle-keep', 'OLD') - -var bundledeepsrc = path.resolve(testmod, 'bundle-deep') -var bundledeep = path.resolve(testmod, 'node_modules', 'bundle-deep') -var bundledeepOLD = path.resolve(bundledeep, 'OLD') -var bundledeepOLDpostinstall = path.resolve(testdir, 'node_modules', 'top-test', 'node_modules', 'bundle-deep', 'OLD') - -var bundledeepupdatesrc = path.resolve(testmod, 'bundle-deep-update') -var bundledeepupdate = path.resolve(bundledeep, 'node_modules', 'bundle-deep-update') -var bundledeepupdateNEW = path.resolve(bundledeepupdatesrc, 'NEW') -var bundledeepupdateNEWpostinstall = path.resolve(testdir, 'node_modules', 'top-test', - 'node_modules', 'bundle-deep', 'node_modules', 'bundle-deep-update', 'NEW') - -var testjson = { - dependencies: {'top-test': 'file:top-test/'} -} - -var testmodjson = { - name: 'top-test', - version: '1.0.0', - dependencies: { - 'bundle-update': bundleupdatesrc, - 'bundle-keep': bundlekeepsrc, - 'bundle-deep': bundledeepsrc - }, - bundledDependencies: ['bundle-update', 'bundle-keep', 'bundle-deep'] -} -var bundlejson = { - name: 'bundle-update', - version: '1.0.0' -} - -var bundlekeepjson = { - name: 'bundle-keep', - version: '1.0.0', - _requested: { - rawSpec: bundlekeepsrc - } -} -var bundledeepjson = { - name: 'bundle-deep', - version: '1.0.0', - dependencies: { - 'bundle-deep-update': bundledeepupdatesrc - }, - _requested: { - rawSpec: bundledeepsrc - } -} - -var bundledeepupdatejson = { - version: '1.0.0', - name: 'bundle-deep-update' -} - -function writepjs (dir, content) { - fs.writeFileSync(path.join(dir, 'package.json'), JSON.stringify(content, null, 2)) -} - -function setup () { - mkdirp.sync(testdir) - writepjs(testdir, testjson) - mkdirp.sync(testmod) - writepjs(testmod, testmodjson) - - mkdirp.sync(bundleupdatesrc) - writepjs(bundleupdatesrc, bundlejson) - fs.writeFileSync(bundleupdateNEW, '') - mkdirp.sync(bundleupdatebad) - writepjs(bundleupdatebad, bundlejson) - - mkdirp.sync(bundlekeepsrc) - writepjs(bundlekeepsrc, bundlekeepjson) - mkdirp.sync(bundlekeep) - writepjs(bundlekeep, bundlekeepjson) - fs.writeFileSync(bundlekeepOLD, '') - - mkdirp.sync(bundledeepsrc) - writepjs(bundledeepsrc, bundledeepjson) - mkdirp.sync(bundledeep) - writepjs(bundledeep, bundledeepjson) - fs.writeFileSync(bundledeepOLD, '') - - mkdirp.sync(bundledeepupdatesrc) - writepjs(bundledeepupdatesrc, bundledeepupdatejson) - mkdirp.sync(bundledeepupdate) - writepjs(bundledeepupdate, bundledeepupdatejson) - fs.writeFileSync(bundledeepupdateNEW, '') -} - -function cleanup () { - rimraf.sync(testdir) -} - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -test('bundled', function (t) { - common.npm(['install', '--loglevel=warn'], {cwd: testdir}, function (err, code, stdout, stderr) { - if (err) throw err - t.plan(8) - t.is(code, 0, 'npm itself completed ok') - - // This tests that after the install we have a freshly installed version - // of `bundle-update` (in alignment with the package.json), instead of the - // version that was bundled with `top-test`. - // If npm doesn't do this, and selects the bundled version, things go very - // wrong because npm thinks it has a different module (with different - // metadata) installed in that location and will go off and try to do - // _things_ to it. Things like chmod in particular, which in turn results - // in the dreaded ENOENT errors. - t.like(stderr, new RegExp('npm WARN ' + testname), "didn't stomp on other warnings") - t.like(stderr, /npm WARN.*bundle-update/, 'included update warning about bundled dep') - t.like(stderr, /npm WARN.*bundle-deep-update/, 'included update warning about deeply bundled dep') - fs.stat(bundleupdateNEWpostinstall, function (missing) { - t.ok(!missing, 'package.json overrode bundle') - }) - fs.stat(bundledeepupdateNEWpostinstall, function (missing) { - t.ok(!missing, 'deep package.json overrode bundle') - }) - // Relatedly, when upgrading, if a bundled module is replacing an existing - // module we want to choose the bundled version, not the version we're replacing. - fs.stat(bundlekeepOLDpostinstall, function (missing) { - t.ok(!missing, 'no override when package.json matches') - }) - fs.stat(bundledeepOLDpostinstall, function (missing) { - t.ok(!missing, 'deep no override when package.json matches') - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/owner.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/owner.js deleted file mode 100644 index 4bef1a0d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/owner.js +++ /dev/null @@ -1,163 +0,0 @@ -var mr = require('npm-registry-mock') -var test = require('tap').test - -var common = require('../common-tap.js') - -var server - -var EXEC_OPTS = {} - -var jashkenas = { - name: 'jashkenas', - email: 'jashkenas@gmail.com' -} - -var othiym23 = { - name: 'othiym23', - email: 'forrest@npmjs.com' -} - -var bcoe = { - name: 'bcoe', - email: 'ben@npmjs.com' -} - -function shrt (user) { - return user.name + ' <' + user.email + '>\n' -} - -function mocks (server) { - server.get('/-/user/org.couchdb.user:othiym23') - .many().reply(200, othiym23) - - // test 1 - server.get('/underscore') - .reply(200, { _id: 'underscore', _rev: 1, maintainers: [jashkenas] }) - server.put( - '/underscore/-rev/1', - { _id: 'underscore', _rev: 1, maintainers: [jashkenas, othiym23] }, - {} - ).reply(200, { _id: 'underscore', _rev: 2, maintainers: [jashkenas, othiym23] }) - - // test 2 - server.get('/@xxx%2fscoped') - .reply(200, { _id: '@xxx/scoped', _rev: 1, maintainers: [bcoe] }) - server.put( - '/@xxx%2fscoped/-rev/1', - { _id: '@xxx/scoped', _rev: 1, maintainers: [bcoe, othiym23] }, - {} - ).reply(200, { _id: '@xxx/scoped', _rev: 2, maintainers: [bcoe, othiym23] }) - - // test 3 - server.get('/underscore') - .reply(200, { _id: 'underscore', _rev: 2, maintainers: [jashkenas, othiym23] }) - - // test 4 - server.get('/underscore') - .reply(200, { _id: 'underscore', _rev: 2, maintainers: [jashkenas, othiym23] }) - server.put( - '/underscore/-rev/2', - { _id: 'underscore', _rev: 2, maintainers: [jashkenas] }, - {} - ).reply(200, { _id: 'underscore', _rev: 3, maintainers: [jashkenas] }) -} - -test('setup', function (t) { - common.npm( - [ - '--loglevel', 'silent', - 'cache', 'clean' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm cache clean ran without error') - t.notOk(code, 'npm cache clean exited cleanly') - - mr({ port: common.port, plugin: mocks }, function (er, s) { - server = s - t.end() - }) - } - ) -}) - -test('npm owner add', function (t) { - common.npm( - [ - '--loglevel', 'silent', - '--registry', common.registry, - 'owner', 'add', 'othiym23', 'underscore' - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm owner add ran without error') - t.notOk(code, 'npm owner add exited cleanly') - t.notOk(stderr, 'npm owner add ran silently') - t.equal(stdout, '+ othiym23 (underscore)\n', 'got expected add output') - - t.end() - } - ) -}) - -test('npm owner add (scoped)', function (t) { - common.npm( - [ - '--loglevel', 'silent', - '--registry', common.registry, - 'owner', 'add', 'othiym23', '@xxx/scoped' - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm owner add (scoped) ran without error') - t.notOk(code, 'npm owner add (scoped) exited cleanly') - t.notOk(stderr, 'npm owner add (scoped) ran silently') - t.equal(stdout, '+ othiym23 (@xxx/scoped)\n', 'got expected scoped add output') - - t.end() - } - ) -}) - -test('npm owner ls', function (t) { - common.npm( - [ - '--loglevel', 'silent', - '--registry', common.registry, - 'owner', 'ls', 'underscore' - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm owner ls ran without error') - t.notOk(code, 'npm owner ls exited cleanly') - t.notOk(stderr, 'npm owner ls ran silently') - t.equal(stdout, shrt(jashkenas) + shrt(othiym23), 'got expected ls output') - - t.end() - } - ) -}) - -test('npm owner rm', function (t) { - common.npm( - [ - '--loglevel', 'silent', - '--registry', common.registry, - 'owner', 'rm', 'othiym23', 'underscore' - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm owner rm ran without error') - t.notOk(code, 'npm owner rm exited cleanly') - t.notOk(stderr, 'npm owner rm ran silently') - t.equal(stdout, '- othiym23 (underscore)\n', 'got expected rm output') - - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/pack-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/pack-scoped.js deleted file mode 100644 index 05b9d12a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/pack-scoped.js +++ /dev/null @@ -1,81 +0,0 @@ -// verify that prepublish runs on pack and publish -var test = require('tap').test -var common = require('../common-tap') -var fs = require('graceful-fs') -var join = require('path').join -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') - -var pkg = join(__dirname, 'scoped_package') -var manifest = join(pkg, 'package.json') -var tmp = join(pkg, 'tmp') -var cache = join(pkg, 'cache') - -var data = { - name: '@scope/generic-package', - version: '90000.100001.5' -} - -test('setup', function (t) { - var n = 0 - - rimraf.sync(pkg) - - mkdirp(pkg, then()) - mkdirp(cache, then()) - mkdirp(tmp, then()) - - function then () { - n++ - return function (er) { - t.ifError(er) - if (--n === 0) next() - } - } - - function next () { - fs.writeFile(manifest, JSON.stringify(data), 'ascii', done) - } - - function done (er) { - t.ifError(er) - - t.pass('setup done') - t.end() - } -}) - -test('test', function (t) { - var env = { - 'npm_config_cache': cache, - 'npm_config_tmp': tmp, - 'npm_config_prefix': pkg, - 'npm_config_global': 'false' - } - - for (var i in process.env) { - if (!/^npm_config_/.test(i)) env[i] = process.env[i] - } - - common.npm([ - 'pack', - '--loglevel', 'warn' - ], { - cwd: pkg, - env: env - }, function (err, code, stdout, stderr) { - t.ifErr(err, 'npm pack finished without error') - t.equal(code, 0, 'npm pack exited ok') - t.notOk(stderr, 'got stderr data: ' + JSON.stringify('' + stderr)) - stdout = stdout.trim() - var regex = new RegExp('scope-generic-package-90000.100001.5.tgz', 'ig') - t.ok(stdout.match(regex), 'found package') - t.end() - }) -}) - -test('cleanup', function (t) { - rimraf.sync(pkg) - t.pass('cleaned up') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps-invalid.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps-invalid.js deleted file mode 100644 index 39ad612e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps-invalid.js +++ /dev/null @@ -1,100 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../') -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, 'peer-deps-invalid') -var cache = path.resolve(pkg, 'cache') - -var json = { - author: 'Domenic Denicola <domenic@domenicdenicola.com> (http://domenicdenicola.com/)', - name: 'peer-deps-invalid', - version: '0.0.0', - dependencies: { - 'npm-test-peer-deps-file': 'http://localhost:1337/ok.js', - 'npm-test-peer-deps-file-invalid': 'http://localhost:1337/invalid.js' - } -} - -var fileFail = function () { -/**package -* { "name": "npm-test-peer-deps-file-invalid" -* , "main": "index.js" -* , "version": "1.2.3" -* , "description":"This one should conflict with the other one" -* , "peerDependencies": { "underscore": "1.3.3" } -* } -**/ - module.exports = 'I\'m just a lonely index, naked as the day I was born.' -}.toString().split('\n').slice(1, -1).join('\n') - -var fileOK = function () { -/**package -* { "name": "npm-test-peer-deps-file" -* , "main": "index.js" -* , "version": "1.2.3" -* , "description":"No package.json in sight!" -* , "peerDependencies": { "underscore": "1.3.1" } -* , "dependencies": { "mkdirp": "0.3.5" } -* } -**/ - module.exports = 'I\'m just a lonely index, naked as the day I was born.' -}.toString().split('\n').slice(1, -1).join('\n') - -test('setup', function (t) { - cleanup() - mkdirp.sync(cache) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - fs.writeFileSync(path.join(pkg, 'file-ok.js'), fileOK) - fs.writeFileSync(path.join(pkg, 'file-fail.js'), fileFail) - - process.chdir(pkg) - t.end() -}) - -test('installing dependencies that have conflicting peerDependencies', function (t) { - var customMocks = { - 'get': { - '/ok.js': [200, path.join(pkg, 'file-ok.js')], - '/invalid.js': [200, path.join(pkg, 'file-fail.js')] - } - } - mr({port: common.port, mocks: customMocks}, function (err, s) { - t.ifError(err, 'mock registry started') - npm.load( - { - cache: cache, - registry: common.registry - }, - function () { - npm.commands.install([], function (err, additions, tree) { - t.error(err) - var invalid = tree.warnings.filter(function (warning) { return warning.code === 'EPEERINVALID' }) - t.is(invalid.length, 2) - s.close() - t.end() - }) - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps-toplevel.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps-toplevel.js deleted file mode 100644 index 1c958673..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps-toplevel.js +++ /dev/null @@ -1,115 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var npm = npm = require('../../') - -var pkg = path.resolve(__dirname, 'peer-deps-toplevel') - -var expected = { - name: 'npm-test-peer-deps-toplevel', - version: '0.0.0', - problems: [ - 'peer dep missing: mkdirp@*, required by npm-test-peer-deps-toplevel@0.0.0', - 'peer dep missing: request@0.9.x, required by npm-test-peer-deps@0.0.0' - ], - dependencies: { - 'npm-test-peer-deps': { - version: '0.0.0', - from: 'npm-test-peer-deps@*', - resolved: common.registry + '/npm-test-peer-deps/-/npm-test-peer-deps-0.0.0.tgz', - dependencies: { - underscore: { - version: '1.3.1', - from: 'underscore@1.3.1', - resolved: common.registry + '/underscore/-/underscore-1.3.1.tgz' - } - } - }, - mkdirp: { - peerMissing: true, - required: { - _id: 'mkdirp@*', - name: 'mkdirp', - version: '*', - peerMissing: [ - {requiredBy: 'npm-test-peer-deps-toplevel@0.0.0', requires: 'mkdirp@*'} - ], - dependencies: {} - } - }, - request: { - peerMissing: true, - required: { - _id: 'request@0.9.x', - dependencies: {}, - name: 'request', - peerMissing: [ - {requiredBy: 'npm-test-peer-deps@0.0.0', requires: 'request@0.9.x'} - ], - version: '0.9.x' - } - } - } -} - -var json = { - author: 'Domenic Denicola', - name: 'npm-test-peer-deps-toplevel', - version: '0.0.0', - dependencies: { - 'npm-test-peer-deps': '*' - }, - peerDependencies: { - mkdirp: '*' - } -} - -test('installs the peer dependency directory structure', function (t) { - mr({ port: common.port }, function (er, s) { - setup(function (err) { - t.ifError(err, 'setup ran successfully') - - npm.install('.', function (err) { - t.ifError(err, 'packages were installed') - - npm.commands.ls([], true, function (err, _, results) { - t.ifError(err, 'listed tree without problems') - - t.deepEqual(results, expected, 'got expected output from ls') - s.close() - t.end() - }) - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup (cb) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) - - var opts = { cache: path.resolve(pkg, 'cache'), registry: common.registry } - npm.load(opts, cb) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps-without-package-json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps-without-package-json.js deleted file mode 100644 index ad863e9f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps-without-package-json.js +++ /dev/null @@ -1,79 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../') -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'peer-deps-without-package-json') -var cache = path.resolve(pkg, 'cache') -var nodeModules = path.resolve(pkg, 'node_modules') - -var fileJS = function () { -/**package -* { "name": "npm-test-peer-deps-file" -* , "main": "index.js" -* , "version": "1.2.3" -* , "description":"No package.json in sight!" -* , "peerDependencies": { "underscore": "1.3.1" } -* , "dependencies": { "mkdirp": "0.3.5" } -* } -**/ - - module.exports = 'I\'m just a lonely index, naked as the day I was born.' -}.toString().split('\n').slice(1, -1).join('\n') - -test('setup', function (t) { - t.comment('test for https://github.com/npm/npm/issues/3049') - cleanup() - mkdirp.sync(cache) - mkdirp.sync(nodeModules) - fs.writeFileSync(path.join(pkg, 'file-js.js'), fileJS) - process.chdir(pkg) - - t.end() -}) - -test('installing a peerDeps-using package without package.json', function (t) { - var customMocks = { - 'get': { - '/ok.js': [200, path.join(pkg, 'file-js.js')] - } - } - mr({port: common.port, mocks: customMocks}, function (err, s) { - t.ifError(err, 'mock registry booted') - npm.load({ - registry: common.registry, - cache: cache - }, function () { - npm.install(common.registry + '/ok.js', function (err, additions, result) { - t.ifError(err, 'installed ok.js') - - t.ok( - fs.existsSync(path.join(nodeModules, 'npm-test-peer-deps-file')), - 'passive peer dep installed' - ) - var invalid = result.warnings.filter(function (warning) { return warning.code === 'EPEERINVALID' }) - t.is(invalid.length, 1, 'got a warning for a missing/invalid peer dep') - - t.end() - s.close() // shutdown mock registry. - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps.js deleted file mode 100644 index c319c32e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/peer-deps.js +++ /dev/null @@ -1,67 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var npm = npm = require('../../') - -var pkg = path.resolve(__dirname, 'peer-deps') - -var expected = [ 'peer dep missing: request@0.9.x, required by npm-test-peer-deps@0.0.0' ] - -var json = { - author: 'Domenic Denicola', - name: 'npm-test-peer-deps-installer', - version: '0.0.0', - dependencies: { - 'npm-test-peer-deps': '*' - } -} - -test('installs the peer dependency directory structure', function (t) { - mr({ port: common.port }, function (er, s) { - setup(function (err) { - if (err) return t.fail(err) - - npm.install('.', function (err) { - if (err) return t.fail(err) - - npm.commands.ls([], true, function (err, _, results) { - if (err) return t.fail(err) - - t.deepEqual(results.problems, expected) - s.close() - t.end() - }) - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup (cb) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) - - var opts = { cache: path.resolve(pkg, 'cache'), registry: common.registry } - npm.load(opts, cb) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ping.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ping.js deleted file mode 100644 index 13fc4bec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/ping.js +++ /dev/null @@ -1,68 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'ping') -var opts = { cwd: pkg } - -var outfile = path.join(pkg, '_npmrc') - -var contents = function () { -}.toString().split('\n').slice(1, -1).join('\n') - -var pingResponse = { - host: 'registry.npmjs.org', - ok: true, - username: null, - peer: 'example.com' -} - -function mocks (server) { - server.get('/-/ping?write=true').reply(200, JSON.stringify(pingResponse)) -} - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -test('npm ping', function (t) { - mr({ port: common.port, plugin: mocks }, function (err, s) { - if (err) throw err - - common.npm([ - 'ping', - '--registry', common.registry, - '--loglevel', 'silent', - '--userconfig', outfile - ], opts, function (err, code, stdout) { - s.close() - t.ifError(err, 'no error output') - t.notOk(code, 'exited OK') - - t.same(JSON.parse(stdout), pingResponse) - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - mkdirp.sync(pkg) - fs.writeFileSync(outfile, contents) -} - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/prepublish.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/prepublish.js deleted file mode 100644 index 556d01eb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/prepublish.js +++ /dev/null @@ -1,84 +0,0 @@ -// verify that prepublish runs on pack and publish -var common = require('../common-tap') -var test = require('tap').test -var fs = require('graceful-fs') -var join = require('path').join -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') - -var pkg = join(__dirname, 'prepublish_package') -var tmp = join(pkg, 'tmp') -var cache = join(pkg, 'cache') - -test('setup', function (t) { - var n = 0 - cleanup() - mkdirp(pkg, then()) - mkdirp(cache, then()) - mkdirp(tmp, then()) - function then () { - n++ - return function (er) { - if (er) throw er - if (--n === 0) next() - } - } - - function next () { - fs.writeFile(join(pkg, 'package.json'), JSON.stringify({ - name: 'npm-test-prepublish', - version: '1.2.5', - scripts: { prepublish: 'echo ok' } - }), 'ascii', function (er) { - if (er) throw er - - t.pass('setup done') - t.end() - }) - } -}) - -test('test', function (t) { - var env = { - 'npm_config_cache': cache, - 'npm_config_tmp': tmp, - 'npm_config_prefix': pkg, - 'npm_config_global': 'false' - } - - for (var i in process.env) { - if (!/^npm_config_/.test(i)) { - env[i] = process.env[i] - } - } - - common.npm([ - 'pack', - '--loglevel', 'warn' - ], { cwd: pkg, env: env }, function (err, code, stdout, stderr) { - t.equal(code, 0, 'pack finished successfully') - t.ifErr(err, 'pack finished successfully') - - t.notOk(stderr, 'got stderr data:' + JSON.stringify('' + stderr)) - var c = stdout.trim() - var regex = new RegExp('' + - '> npm-test-prepublish@1.2.5 prepublish [^\\r\\n]+\\r?\\n' + - '> echo ok\\r?\\n' + - '\\r?\\n' + - 'ok\\r?\\n' + - 'npm-test-prepublish-1.2.5.tgz', 'ig') - - t.ok(c.match(regex)) - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.pass('cleaned up') - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/progress-config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/progress-config.js deleted file mode 100644 index 634c9e85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/progress-config.js +++ /dev/null @@ -1,93 +0,0 @@ -'use strict' -var path = require('path') -var test = require('tap').test -var log = require('npmlog') -var fs = require('graceful-fs') -var configName = path.join(__dirname, path.basename(__filename, '.js')) + '-npmrc' - -// We use requireInject to get a fresh copy of -// the npm singleton each time we require it. -// If we didn't, we'd have shared state between -// these various tests. -var requireInject = require('require-inject') - -// Make sure existing environment vars don't muck up the test -process.env = {} - -function hasOnlyAscii (s) { - return /^[\000-\177]*$/.test(s) -} - -test('setup', function (t) { - fs.writeFileSync(configName, '') - t.done() -}) - -test('disabled', function (t) { - t.plan(1) - var npm = requireInject('../../lib/npm.js', {}) - npm.load({userconfig: configName, progress: false}, function () { - t.is(log.progressEnabled, false, 'should be disabled') - }) -}) - -test('enabled', function (t) { - t.plan(1) - var npm = requireInject('../../lib/npm.js', {}) - npm.load({userconfig: configName, progress: true}, function () { - t.is(log.progressEnabled, true, 'should be enabled') - }) -}) - -test('default', function (t) { - t.plan(1) - var npm = requireInject('../../lib/npm.js', {}) - npm.load({userconfig: configName}, function () { - t.is(log.progressEnabled, true, 'should be enabled') - }) -}) - -test('default-travis', function (t) { - t.plan(1) - global.process.env.TRAVIS = 'true' - var npm = requireInject('../../lib/npm.js', {}) - npm.load({userconfig: configName}, function () { - t.is(log.progressEnabled, false, 'should be disabled') - delete global.process.env.TRAVIS - }) -}) - -test('default-ci', function (t) { - t.plan(1) - global.process.env.CI = 'true' - var npm = requireInject('../../lib/npm.js', {}) - npm.load({userconfig: configName}, function () { - t.is(log.progressEnabled, false, 'should be disabled') - delete global.process.env.CI - }) -}) - -test('unicode-true', function (t) { - t.plan(6) - var npm = requireInject('../../lib/npm.js', {}) - npm.load({userconfig: configName, unicode: true}, function () { - Object.keys(log.gauge.theme).forEach(function (key) { - t.notOk(hasOnlyAscii(log.gauge.theme[key]), 'only unicode') - }) - }) -}) - -test('unicode-false', function (t) { - t.plan(6) - var npm = requireInject('../../lib/npm.js', {}) - npm.load({userconfig: configName, unicode: false}, function () { - Object.keys(log.gauge.theme).forEach(function (key) { - t.ok(hasOnlyAscii(log.gauge.theme[key]), 'only ASCII') - }) - }) -}) - -test('cleanup', function (t) { - fs.unlinkSync(configName) - t.done() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/prune.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/prune.js deleted file mode 100644 index 23c8548d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/prune.js +++ /dev/null @@ -1,131 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') -var server - -var pkg = path.resolve(__dirname, 'prune') -var cache = path.resolve(pkg, 'cache') - -var json = { - name: 'prune', - description: 'fixture', - version: '0.0.1', - main: 'index.js', - dependencies: { - underscore: '1.3.1' - }, - devDependencies: { - mkdirp: '*' - } -} - -var EXEC_OPTS = { - cwd: pkg, - npm_config_depth: 'Infinity' -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(cache) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - mr({ port: common.port }, function (er, s) { - server = s - t.end() - }) -}) - -test('npm install', function (t) { - common.npm([ - 'install', - '--cache', cache, - '--registry', common.registry, - '--loglevel', 'silent', - '--production', 'false' - ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifErr(err, 'install finished successfully') - t.notOk(code, 'exit ok') - t.notOk(stderr, 'Should not get data on stderr: ' + stderr) - t.end() - }) -}) - -test('npm install test-package', function (t) { - common.npm([ - 'install', 'test-package', - '--cache', cache, - '--registry', common.registry, - '--loglevel', 'silent', - '--production', 'false' - ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifErr(err, 'install finished successfully') - t.notOk(code, 'exit ok') - t.notOk(stderr, 'Should not get data on stderr: ' + stderr) - t.end() - }) -}) - -test('verify installs', function (t) { - var dirs = fs.readdirSync(pkg + '/node_modules').sort() - t.same(dirs, [ 'test-package', 'mkdirp', 'underscore' ].sort()) - t.end() -}) - -test('npm prune', function (t) { - common.npm([ - 'prune', - '--loglevel', 'silent', - '--production', 'false' - ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifErr(err, 'prune finished successfully') - t.notOk(code, 'exit ok') - t.notOk(stderr, 'Should not get data on stderr: ' + stderr) - t.end() - }) -}) - -test('verify installs', function (t) { - var dirs = fs.readdirSync(pkg + '/node_modules').sort() - t.same(dirs, [ 'mkdirp', 'underscore' ]) - t.end() -}) - -test('npm prune', function (t) { - common.npm([ - 'prune', - '--loglevel', 'silent', - '--production' - ], EXEC_OPTS, function (err, code, stderr) { - t.ifErr(err, 'prune finished successfully') - t.notOk(code, 'exit ok') - t.equal(stderr, 'unbuild mkdirp@0.3.5\n') - t.end() - }) -}) - -test('verify installs', function (t) { - var dirs = fs.readdirSync(pkg + '/node_modules').sort() - t.same(dirs, [ 'underscore' ]) - t.end() -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.pass('cleaned up') - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-access-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-access-scoped.js deleted file mode 100644 index 17339ced..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-access-scoped.js +++ /dev/null @@ -1,73 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var test = require('tap').test -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var mr = require('npm-registry-mock') -var common = require('../common-tap') -var server - -var pkg = path.join(__dirname, 'publish-access') - -test('setup', function (t) { - mr({port: common.port, throwOnUnmatched: true}, function (err, s) { - t.ifError(err, 'registry mocked successfully') - t.pass('setup done') - server = s - t.end() - }) -}) - -test('scoped packages pass public access if set', function (t) { - server.filteringRequestBody(function (body) { - t.doesNotThrow(function () { - var parsed = JSON.parse(body) - t.equal(parsed.access, 'public', 'access level is correct') - }, 'converted body back into object') - return true - }).put('/@bigco%2fpublish-access', true).reply(201, {ok: true}) - - mkdirp(path.join(pkg, 'cache'), function () { - fs.writeFile( - path.join(pkg, 'package.json'), - JSON.stringify({ - name: '@bigco/publish-access', - version: '1.2.5', - public: true - }), - 'ascii', - function (er) { - t.ifError(er, 'package file written') - common.npm( - [ - 'publish', - '--access', 'public', - '--cache', path.join(pkg, 'cache'), - '--loglevel', 'silly', - '--registry', common.registry - ], - { - cwd: pkg - }, - function (er) { - t.ifError(er, 'published without error') - - server.done() - t.end() - } - ) - } - ) - }) -}) - -test('cleanup', function (t) { - process.chdir(__dirname) - server.close() - rimraf(pkg, function (er) { - t.ifError(er) - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-access-unscoped-restricted-fails.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-access-unscoped-restricted-fails.js deleted file mode 100644 index 660d0f48..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-access-unscoped-restricted-fails.js +++ /dev/null @@ -1,38 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var test = require('tap').test -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var common = require('../common-tap.js') - -var pkg = path.join(__dirname, 'publish-access-unscoped') - -test('setup', function (t) { - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify({ - name: 'publish-access', - version: '1.2.5' - })) - t.pass('setup done') - t.end() -}) - -test('unscoped packages cannot be restricted', function (t) { - var args = ['--access=restricted', '--loglevel=warn', '--registry=' + common.registry] - var opts = {stdio: [0, 1, 'pipe'], cwd: pkg} - common.npm(['publish'].concat(args), opts, function (err, code, stdout, stderr) { - if (err) throw err - t.notEqual(code, 0, 'publish not successful') - t.match(stderr, "Can't restrict access to unscoped packages.") - - t.end() - }) -}) - -test('cleanup', function (t) { - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-access-unscoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-access-unscoped.js deleted file mode 100644 index 1766f61f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-access-unscoped.js +++ /dev/null @@ -1,73 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var test = require('tap').test -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var mr = require('npm-registry-mock') -var common = require('../common-tap') -var server - -var pkg = path.join(__dirname, 'publish-access-unscoped') - -test('setup', function (t) { - mr({port: common.port, throwOnUnmatched: true}, function (err, s) { - t.ifError(err, 'registry mocked successfully') - t.pass('setup done') - server = s - t.end() - }) -}) - -test('unscoped packages can be explicitly set as public', function (t) { - server.filteringRequestBody(function (body) { - t.doesNotThrow(function () { - var parsed = JSON.parse(body) - t.equal(parsed.access, 'public', 'access level is correct') - }, 'converted body back into object') - return true - }).put('/publish-access', true).reply(201, {ok: true}) - - mkdirp(path.join(pkg, 'cache'), function () { - fs.writeFile( - path.join(pkg, 'package.json'), - JSON.stringify({ - name: 'publish-access', - version: '1.2.5', - public: true - }), - 'ascii', - function (er) { - t.ifError(er, 'package file written') - common.npm( - [ - 'publish', - '--access', 'public', - '--cache', path.join(pkg, 'cache'), - '--loglevel', 'silly', - '--registry', common.registry - ], - { - cwd: pkg - }, - function (er) { - t.ifError(er, 'published without error') - - server.done() - t.end() - } - ) - } - ) - }) -}) - -test('cleanup', function (t) { - process.chdir(__dirname) - server.close() - rimraf(pkg, function (er) { - t.ifError(er) - - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-config.js deleted file mode 100644 index 399fd0f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-config.js +++ /dev/null @@ -1,59 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var fs = require('fs') -var osenv = require('osenv') -var pkg = process.env.npm_config_tmp || '/tmp' -pkg += '/npm-test-publish-config' - -require('mkdirp').sync(pkg) - -fs.writeFileSync(pkg + '/package.json', JSON.stringify({ - name: 'npm-test-publish-config', - version: '1.2.3', - publishConfig: { registry: common.registry } -}), 'utf8') - -fs.writeFileSync(pkg + '/fixture_npmrc', - '//localhost:1337/:email = fancy@feast.net\n' + - '//localhost:1337/:username = fancy\n' + - '//localhost:1337/:_password = ' + new Buffer('feast').toString('base64') + '\n' + - 'registry = http://localhost:1337/') - -test(function (t) { - var child - t.plan(4) - require('http').createServer(function (req, res) { - t.pass('got request on the fakey fake registry') - this.close() - res.statusCode = 500 - res.end(JSON.stringify({ - error: 'sshhh. naptime nao. \\^O^/ <(YAWWWWN!)' - })) - child.kill('SIGINT') - }).listen(common.port, function () { - t.pass('server is listening') - - // don't much care about listening to the child's results - // just wanna make sure it hits the server we just set up. - // - // there are plenty of other tests to verify that publish - // itself functions normally. - // - // Make sure that we don't sit around waiting for lock files - child = common.npm(['publish', '--userconfig=' + pkg + '/fixture_npmrc'], { - cwd: pkg, - stdio: 'inherit', - env: { - 'npm_config_cache_lock_stale': 1000, - 'npm_config_cache_lock_wait': 1000, - HOME: process.env.HOME, - Path: process.env.PATH, - PATH: process.env.PATH, - USERPROFILE: osenv.home() - } - }, function (err, code) { - t.ifError(err, 'publish command finished successfully') - t.notOk(code, 'npm install exited with code 0') - }) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-invalid-semver-tag.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-invalid-semver-tag.js deleted file mode 100644 index 21543869..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-invalid-semver-tag.js +++ /dev/null @@ -1,79 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var npm = require('../../lib/npm.js') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var path = require('path') -var fs = require('fs') -var mr = require('npm-registry-mock') - -var osenv = require('osenv') - -var PKG_DIR = path.resolve(__dirname, 'publish-invalid-semver-tag') -var CACHE_DIR = path.resolve(PKG_DIR, 'cache') - -var DEFAULT_PKG = { - 'name': 'examples', - 'version': '1.2.3' -} - -var mockServer - -function resetPackage (options) { - rimraf.sync(CACHE_DIR) - mkdirp.sync(CACHE_DIR) - - fs.writeFileSync(path.resolve(PKG_DIR, 'package.json'), DEFAULT_PKG) -} - -test('setup', function (t) { - process.chdir(osenv.tmpdir()) - mkdirp.sync(PKG_DIR) - process.chdir(PKG_DIR) - - resetPackage({}) - - mr({ port: common.port }, function (er, server) { - npm.load({ - cache: CACHE_DIR, - registry: common.registry, - cwd: PKG_DIR - }, function (err) { - t.ifError(err, 'started server') - mockServer = server - - t.end() - }) - }) -}) - -test('attempt publish with semver-like version', function (t) { - resetPackage({}) - - npm.config.set('tag', 'v1.x') - npm.commands.publish([], function (err) { - t.notEqual(err, null) - t.same(err.message, 'Tag name must not be a valid SemVer range: v1.x') - t.end() - }) -}) - -test('attempt publish with semver-like version', function (t) { - resetPackage({}) - - npm.config.set('tag', '1.2.3') - npm.commands.publish([], function (err) { - t.notEqual(err, null) - t.same(err.message, 'Tag name must not be a valid SemVer range: 1.2.3') - t.end() - }) -}) - -test('cleanup', function (t) { - mockServer.close() - - process.chdir(osenv.tmpdir()) - rimraf.sync(PKG_DIR) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-scoped.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-scoped.js deleted file mode 100644 index c2a8301b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/publish-scoped.js +++ /dev/null @@ -1,91 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var test = require('tap').test -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var common = require('../common-tap') -var mr = require('npm-registry-mock') - -var pkg = path.join(__dirname, 'prepublish_package') - -var server - -function setup () { - cleanup() - mkdirp.sync(path.join(pkg, 'cache')) - - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify({ - name: '@bigco/publish-organized', - version: '1.2.5' - }, null, 2), - 'ascii') -} - -test('setup', function (t) { - setup() - mr({port: common.port, throwOnUnmatched: true}, function (err, s) { - t.ifError(err, 'registry mocked successfully') - server = s - t.end() - }) -}) - -test('npm publish should honor scoping', function (t) { - server.filteringRequestBody(verify) - .put('/@bigco%2fpublish-organized', true) - .reply(201, {ok: true}) - - var configuration = [ - 'progress=false', - 'cache=' + path.join(pkg, 'cache'), - 'registry=http://nonexistent.lvh.me', - '//localhost:1337/:username=username', - '//localhost:1337/:_password=' + new Buffer('password').toString('base64'), - '//localhost:1337/:email=' + 'ogd@aoaioxxysz.net', - '@bigco:registry=' + common.registry - ] - var configFile = path.join(pkg, '.npmrc') - - fs.writeFileSync(configFile, configuration.join('\n') + '\n') - - common.npm(['publish'], {'cwd': pkg}, function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'published without error') - server.done() - t.end() - }) - - function verify (body) { - t.doesNotThrow(function () { - var parsed = JSON.parse(body) - var current = parsed.versions['1.2.5'] - t.equal( - current._npmVersion, - require(path.resolve(__dirname, '../../package.json')).version, - 'npm version is correct' - ) - - t.equal( - current._nodeVersion, - process.versions.node, - 'node version is correct' - ) - }, 'converted body back into object') - - return true - } -}) - -test('cleanup', function (t) { - server.close() - t.end() - cleanup() -}) - -function cleanup () { - process.chdir(__dirname) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/pwd-prefix.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/pwd-prefix.js deleted file mode 100644 index 1b59f5c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/pwd-prefix.js +++ /dev/null @@ -1,35 +0,0 @@ -// This test ensures that a few commands do the same -// thing when the cwd is where package.json is, and when -// the package.json is one level up. - -var test = require('tap').test -var common = require('../common-tap.js') -var path = require('path') -var root = path.resolve(__dirname, '../..') -var lib = path.resolve(root, 'lib') -var commands = ['run', 'version'] - -commands.forEach(function (cmd) { - // Should get the same stdout and stderr each time - var stdout, stderr - - test(cmd + ' in root', function (t) { - common.npm([cmd], {cwd: root}, function (er, code, so, se) { - if (er) throw er - t.notOk(code, 'npm ' + cmd + ' exited with code 0') - stdout = so - stderr = se - t.end() - }) - }) - - test(cmd + ' in lib', function (t) { - common.npm([cmd], {cwd: lib}, function (er, code, so, se) { - if (er) throw er - t.notOk(code, 'npm ' + cmd + ' exited with code 0') - t.equal(so, stdout) - t.equal(se, stderr) - t.end() - }) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/referer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/referer.js deleted file mode 100644 index 8c3dbed7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/referer.js +++ /dev/null @@ -1,23 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var http = require('http') - -test('should send referer http header', function (t) { - http.createServer(function (q, s) { - t.equal(q.headers.referer, 'install foo') - s.statusCode = 404 - s.end(JSON.stringify({error: 'whatever'})) - this.close() - }).listen(common.port, function () { - var reg = 'http://localhost:' + common.port - var args = [ 'install', 'foo', '--registry', reg ] - common.npm(args, {}, function (er, code) { - if (er) { - throw er - } - // should not have ended nicely, since we returned an error - t.ok(code) - t.end() - }) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/registry.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/registry.js deleted file mode 100644 index d8ec4a20..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/registry.js +++ /dev/null @@ -1,74 +0,0 @@ -// Run all the tests in the `npm-registry-couchapp` suite -// This verifies that the server-side stuff still works. - -var common = require('../common-tap') -var test = require('tap').test - -var npmExec = require.resolve('../../bin/npm-cli.js') -var path = require('path') -var ca = path.resolve(__dirname, '../../node_modules/npm-registry-couchapp') - -var which = require('which') - -var v = process.versions.node.split('.').map(function (n) { return parseInt(n, 10) }) -if (v[0] === 0 && v[1] < 10) { - console.error( - 'WARNING: need a recent Node for npm-registry-couchapp tests to run, have', - process.versions.node - ) -} else { - which('couchdb', function (er) { - if (er) { - console.error('WARNING: need couch to run test: ' + er.message) - } else { - runTests() - } - }) -} - -var extend = Object.assign || require('util')._extend - -function runTests () { - var env = extend({ TAP: 1 }, process.env) - env.npm = npmExec - // TODO: fix tap and / or nyc to handle nested invocations properly - env.COVERALLS_REPO_TOKEN = '' - - var opts = { - cwd: ca, - stdio: 'inherit' - } - common.npm(['install'], opts, function (err, code) { - if (err) { throw err } - if (code) { - return test('need install to work', function (t) { - t.fail('install failed with: ' + code) - t.end() - }) - } else { - opts = { - cwd: ca, - env: env, - stdio: 'inherit' - } - common.npm(['test', '--', '-Rtap', '--no-coverage'], opts, function (err, code) { - if (err) { throw err } - if (code) { - return test('need test to work', function (t) { - t.fail('test failed with: ' + code) - t.end() - }) - } - opts = { - cwd: ca, - env: env, - stdio: 'inherit' - } - common.npm(['prune', '--production'], opts, function (err, code) { - if (err) { throw err } - process.exit(code || 0) - }) - }) - } - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/repo.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/repo.js deleted file mode 100644 index e2751573..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/repo.js +++ /dev/null @@ -1,139 +0,0 @@ -var common = require('../common-tap.js') -var mr = require('npm-registry-mock') - -var test = require('tap').test -var rimraf = require('rimraf') -var fs = require('fs') -var path = require('path') -var fakeBrowser = path.join(__dirname, '_script.sh') -var outFile = path.join(__dirname, '/_output') - -var opts = { cwd: __dirname } - -common.pendIfWindows('This is trickier to convert without opening new shells') - -test('setup', function (t) { - var s = '#!/usr/bin/env bash\n' + - 'echo \"$@\" > ' + JSON.stringify(__dirname) + '/_output\n' - fs.writeFileSync(fakeBrowser, s, 'ascii') - fs.chmodSync(fakeBrowser, '0755') - t.pass('made script') - t.end() -}) - -test('npm repo underscore', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm([ - 'repo', 'underscore', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + fakeBrowser - ], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'repo command ran without error') - t.equal(code, 0, 'exit ok') - var res = fs.readFileSync(outFile, 'ascii') - s.close() - t.equal(res, 'https://github.com/jashkenas/underscore\n') - rimraf.sync(outFile) - t.end() - }) - }) -}) - -test('npm repo optimist - github (https://)', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm([ - 'repo', 'optimist', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + fakeBrowser - ], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'repo command ran without error') - t.equal(code, 0, 'exit ok') - var res = fs.readFileSync(outFile, 'ascii') - s.close() - t.equal(res, 'https://github.com/substack/node-optimist\n') - rimraf.sync(outFile) - t.end() - }) - }) -}) - -test('npm repo npm-test-peer-deps - no repo', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm([ - 'repo', 'npm-test-peer-deps', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + fakeBrowser - ], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'repo command ran without error') - t.equal(code, 1, 'exit not ok') - s.close() - t.end() - }) - }) -}) - -test('npm repo test-repo-url-http - non-github (http://)', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm([ - 'repo', 'test-repo-url-http', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + fakeBrowser - ], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'repo command ran without error') - t.equal(code, 0, 'exit ok') - var res = fs.readFileSync(outFile, 'ascii') - s.close() - t.equal(res, 'http://gitlab.com/evanlucas/test-repo-url-http\n') - rimraf.sync(outFile) - t.end() - }) - }) -}) - -test('npm repo test-repo-url-https - non-github (https://)', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm([ - 'repo', 'test-repo-url-https', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + fakeBrowser - ], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'repo command ran without error') - t.equal(code, 0, 'exit ok') - var res = fs.readFileSync(outFile, 'ascii') - s.close() - t.equal(res, 'https://gitlab.com/evanlucas/test-repo-url-https\n') - rimraf.sync(outFile) - t.end() - }) - }) -}) - -test('npm repo test-repo-url-ssh - non-github (ssh://)', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm([ - 'repo', 'test-repo-url-ssh', - '--registry=' + common.registry, - '--loglevel=silent', - '--browser=' + fakeBrowser - ], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'repo command ran without error') - t.equal(code, 0, 'exit ok') - var res = fs.readFileSync(outFile, 'ascii') - s.close() - t.equal(res, 'https://gitlab.com/evanlucas/test-repo-url-ssh\n') - rimraf.sync(outFile) - t.end() - }) - }) -}) - -test('cleanup', function (t) { - fs.unlinkSync(fakeBrowser) - t.pass('cleaned up') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/retry-on-stale-cache.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/retry-on-stale-cache.js deleted file mode 100644 index 3a7f5c20..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/retry-on-stale-cache.js +++ /dev/null @@ -1,195 +0,0 @@ -var path = require('path') - -var mr = require('npm-registry-mock') -var test = require('tap').test -var common = require('../common-tap') -var extend = Object.assign || require('util')._extend -var Tacks = require('tacks') -var Dir = Tacks.Dir -var File = Tacks.File - -var workdir = path.join(__dirname, path.basename(__filename, '.js')) -var cachedir = path.join(workdir, 'cache') -var modulesdir = path.join(workdir, 'modules') -var oldModule = path.join(modulesdir, 'good-night-0.1.0.tgz') -var newModule = path.join(modulesdir, 'good-night-1.0.0.tgz') - -var config = [ - '--cache', cachedir, - '--prefix', workdir, - '--registry', common.registry -] - -var fixture = new Tacks(Dir({ - 'cache': Dir(), - 'modules': Dir({ - 'good-night-0.1.0.tgz': File(new Buffer( - '1f8b0800000000000003ed934f4bc43010c57beea7187a59056dd36eff80' + - 'de85050541c1f3d8c634da4e4a925a8af8dd6db7bb8ba0e0c15559e9eff2' + - '206f929909bc06f327143c6826f51f8d2267cf30c6d2388641c32c61ef75' + - '4d9426e084519a25491645cbcc61e192c5d1e0ef7b90cf688d453d8cf2dd' + - '77a65d60a707c28b0b031e61cdbd33f08452c52949515aef64729eb93652' + - 'd168323ff4d9f6bce026d7b2b11bafef11b1eb3a221a2aa6126c6da9f4e8' + - '5e691f6e908a1a697b5ff346196995eec7023399c1c7fe95cc3999f57077' + - 'b717d7979efbeafef5a7fd2336b90f6a943484ff477a7c917f96c5bbfc87' + - '493ae63f627138e7ff37c815195571bf52e268b1820e0d0825498055d069' + - '6939d8521ab86f2dace0815715a0a9386f16c7e7730c676666660e9837c0' + - 'f6795d000c0000', - 'hex' - )), - 'good-night-1.0.0.tgz': File(new Buffer( - '1f8b0800000000000003ed954d6bc24010863dfb2bb6b9a8503793b849a0' + - 'eda5979efa052d484184252e495a331b76d78a94fef76e8cf683163cd42a' + - '957d2e03796777268187543c7de299f0aba6d2472db1b5650020668cd81a' + - '24117cae4bc23822ad208c93284a1208c216040318c436dff6223f31d386' + - '2bbbca6fef69de85bcd77fc24b9b583ce4a5f04e88974939e96391e5c63b' + - '6e9267a17421b10e030a14d6cf2742a7aaa8cc2a5b2c38e7f3f91c116d47' + - 'd3c2672697aa4eaf1425771c2725c7f579252aa90b23d5a26ed04de87f9f' + - '3f2d52817ab9dcf0fee2f6d26bbfb6f7fdd10e8895f77ec90bb4f2ffc98c' + - '0dfe439c7cf81fc4b5ff213070feef8254a2965341a732eb76b4cef39c12' + - 'e456eb52d82a29198dc637639f9c751fce8796eba35ea777ea0c3c14d6fe' + - '532314f62ba9ccf6676cf21fbefcff59ed3f4b22e7ff2e60110bc37d2fe1' + - '70381c8e9df306642df14500100000', - 'hex' - )) - }) -})) - -var server - -// In this test we mock a situation where the user has a package in his cache, -// a newer version of the package is published, and the user tried to install -// said new version while requestion that the cache be used. -// npm should see that it doesn't have the package in its cache and hit the -// registry. -var onlyOldMetadata = { - 'name': 'good-night', - 'dist-tags': { - 'latest': '0.1.0' - }, - 'versions': { - '0.1.0': { - 'name': 'good-night', - 'version': '0.1.0', - 'dist': { - 'shasum': '2a746d49dd074ba0ec2d6ff13babd40c658d89eb', - 'tarball': 'http://localhost:' + common.port + '/good-night/-/good-night-0.1.0.tgz' - } - } - } -} - -var oldAndNewMetadata = extend({}, onlyOldMetadata) -oldAndNewMetadata['dist-tags'] = { latest: '1.0.0' } -oldAndNewMetadata.versions = extend({ - '1.0.0': { - 'name': 'good-night', - 'version': '1.0.0', - 'dist': { - 'shasum': 'f377bf002a0a8fc4085d347a160a790b76896bc3', - 'tarball': 'http://localhost:' + common.port + '/good-night/-/good-night-1.0.0.tgz' - } - } -}, oldAndNewMetadata.versions) - -function setup () { - cleanup() - fixture.create(workdir) -} - -function cleanup () { - fixture.remove(workdir) -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('setup initial server', function (t) { - mr({ - port: common.port, - throwOnUnmatched: true - }, function (err, s) { - t.ifError(err, 'registry mocked successfully') - server = s - - server.get('/good-night') - .many({ min: 1, max: 1 }) - .reply(200, onlyOldMetadata) - server.get('/good-night/-/good-night-0.1.0.tgz') - .many({ min: 1, max: 1 }) - .replyWithFile(200, oldModule) - - t.end() - }) -}) - -test('install initial version', function (t) { - common.npm(config.concat([ - 'install', 'good-night' - ]), {stdio: 'inherit'}, function (err, code) { - if (err) throw err - t.is(code, 0, 'initial install succeeded') - server.done() - t.end() - }) -}) - -test('cleanup initial server', function (t) { - server.close() - t.end() -}) - -test('setup new server', function (t) { - mr({ - port: common.port, - throwOnUnmatched: true - }, function (err, s) { - t.ifError(err, 'registry mocked successfully') - server = s - - server.get('/good-night') - .many({ min: 1, max: 1 }) - .reply(200, oldAndNewMetadata) - - server.get('/good-night/-/good-night-1.0.0.tgz') - .many({ min: 1, max: 1 }) - .replyWithFile(200, newModule) - - t.end() - }) -}) - -test('install new version', function (t) { - common.npm(config.concat([ - '--cache-min', 'Infinity', - 'install', 'good-night@1.0.0' - ]), {stdio: 'inherit'}, function (err, code) { - if (err) throw err - t.is(code, 0, 'install succeeded') - - t.end() - }) -}) - -test('install does not hit server again', function (t) { - // The mock server route definitions ensure we don't hit the server again - common.npm(config.concat([ - '--cache-min', 'Infinity', - 'install', 'good-night' - ]), {stdio: [0, 'pipe', 2]}, function (err, code, stdout) { - if (err) throw err - t.is(code, 0, 'install succeeded') - - t.match(stdout, /@1\.0\.0/, 'installed latest version') - server.done() - t.end() - }) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/rm-linked.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/rm-linked.js deleted file mode 100644 index 381d7bc6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/rm-linked.js +++ /dev/null @@ -1,148 +0,0 @@ -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var path = require('path') -var rimraf = require('rimraf') -var test = require('tap').test -var writeFileSync = require('fs').writeFileSync - -var common = require('../common-tap.js') - -var link = path.join(__dirname, 'rmlinked') -var linkDep = path.join(link, 'node_modules', 'baz') -var linkInstall = path.join(__dirname, 'rmlinked-install') -var linkRoot = path.join(__dirname, 'rmlinked-root') - -var config = 'prefix = ' + linkRoot -var configPath = path.join(link, '_npmrc') - -var OPTS = { - env: { - 'npm_config_userconfig': configPath - } -} - -var linkedJSON = { - name: 'foo', - version: '1.0.0', - description: '', - main: 'index.js', - scripts: { - test: 'echo \"Error: no test specified\" && exit 1' - }, - dependencies: { - 'baz': '1.0.0' - }, - author: '', - license: 'ISC' -} - -var linkedDepJSON = { - name: 'baz', - version: '1.0.0', - description: '', - main: 'index.js', - scripts: { - test: 'echo \"Error: no test specified\" && exit 1' - }, - author: '', - license: 'ISC' -} - -var installJSON = { - name: 'bar', - version: '1.0.0', - description: '', - main: 'index.js', - scripts: { - test: 'echo \"Error: no test specified\" && exit 1' - }, - dependencies: { - 'foo': '1.0.0' - }, - author: '', - license: 'ISC' -} - -test('setup', function (t) { - setup() - common.npm(['ls', '-g', '--depth=0'], OPTS, function (err, code, stdout, stderr) { - if (err) throw err - t.comment(stdout) - t.comment(stderr) - t.is(code, 0, 'ls -g') - t.notMatch(stdout, /UNMET DEPENDENCY foo@/, "foo isn't in global") - t.end() - }) -}) - -test('creates global link', function (t) { - process.chdir(link) - common.npm(['link'], OPTS, function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'link') - t.comment(stdout) - t.comment(stderr) - common.npm(['ls', '-g'], OPTS, function (err, code, stdout, stderr) { - if (err) throw err - t.comment(stdout) - t.comment(stderr) - t.is(code, 0, 'ls -g') - t.equal(stderr, '', 'got expected stderr') - t.match(stdout, /foo@1.0.0/, 'creates global link ok') - t.end() - }) - }) -}) - -test('uninstall the global linked package', function (t) { - process.chdir(osenv.tmpdir()) - common.npm(['uninstall', '-g', 'foo'], OPTS, function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'uninstall -g foo') - t.comment(stdout) - t.comment(stderr) - process.chdir(link) - common.npm(['ls'], OPTS, function (err, code, stdout) { - if (err) throw err - t.is(code, 0, 'ls') - t.comment(stdout) - t.comment(stderr) - t.match(stdout, /baz@1.0.0/, "uninstall didn't remove dep") - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - try { rimraf.sync(linkRoot) } catch (e) { } - try { rimraf.sync(linkDep) } catch (e) { } - try { rimraf.sync(link) } catch (e) { } - try { rimraf.sync(linkInstall) } catch (e) { } -} - -function setup () { - cleanup() - mkdirp.sync(linkRoot) - mkdirp.sync(link) - writeFileSync( - path.join(link, 'package.json'), - JSON.stringify(linkedJSON, null, 2) - ) - mkdirp.sync(linkDep) - writeFileSync( - path.join(linkDep, 'package.json'), - JSON.stringify(linkedDepJSON, null, 2) - ) - mkdirp.sync(linkInstall) - writeFileSync( - path.join(linkInstall, 'package.json'), - JSON.stringify(installJSON, null, 2) - ) - writeFileSync(configPath, config) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/run-script-filter-private.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/run-script-filter-private.js deleted file mode 100644 index 631759c1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/run-script-filter-private.js +++ /dev/null @@ -1,52 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, 'run-script-filter-private') - -var opts = { cwd: pkg } - -var json = { - name: 'run-script-filter-private', - version: '1.2.3' -} - -var npmrc = '//blah.com:_harsh=realms\n' - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.resolve(pkg, 'package.json'), - JSON.stringify(json, null, 2) + '\n' - ) - fs.writeFileSync( - path.resolve(pkg, '.npmrc'), - npmrc - ) - t.end() -}) - -test('npm run-script env', function (t) { - common.npm(['run-script', 'env'], opts, function (er, code, stdout, stderr) { - t.ifError(er, 'using default env script') - t.notOk(stderr, 'should not generate errors') - t.ok(stdout.indexOf('npm_config_init_version') > 0, 'expected values in var list') - t.notMatch(stdout, /harsh/, 'unexpected config not there') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/run-script.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/run-script.js deleted file mode 100644 index 3892337c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/run-script.js +++ /dev/null @@ -1,329 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var test = require('tap').test -var rimraf = require('rimraf') - -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, 'run-script') -var cache = path.resolve(pkg, 'cache') -var tmp = path.resolve(pkg, 'tmp') - -var opts = { cwd: pkg } - -var fullyPopulated = { - 'name': 'runscript', - 'version': '1.2.3', - 'scripts': { - 'start': 'node -e "console.log(process.argv[1] || \'start\')"', - 'prewith-pre': 'node -e "console.log(process.argv[1] || \'pre\')"', - 'with-pre': 'node -e "console.log(process.argv[1] || \'main\')"', - 'with-post': 'node -e "console.log(process.argv[1] || \'main\')"', - 'postwith-post': 'node -e "console.log(process.argv[1] || \'post\')"', - 'prewith-both': 'node -e "console.log(process.argv[1] || \'pre\')"', - 'with-both': 'node -e "console.log(process.argv[1] || \'main\')"', - 'postwith-both': 'node -e "console.log(process.argv[1] || \'post\')"', - 'stop': 'node -e "console.log(process.argv[1] || \'stop\')"', - 'env-vars': 'node -e "console.log(process.env.run_script_foo_var)"', - 'npm-env-vars': 'node -e "console.log(process.env.npm_run_script_foo_var)"', - 'package-env-vars': 'node -e "console.log(process.env.run_script_foo_var)"', - 'prefixed-package-env-vars': 'node -e "console.log(process.env.npm_package_run_script_foo_var)"' - }, - 'run_script_foo_var': 'run_script_test_foo_val' -} - -var lifecycleOnly = { - name: 'scripted', - version: '1.2.3', - scripts: { - 'prestart': 'echo prestart' - } -} - -var directOnly = { - name: 'scripted', - version: '1.2.3', - scripts: { - 'whoa': 'echo whoa' - } -} - -var both = { - name: 'scripted', - version: '1.2.3', - scripts: { - 'prestart': 'echo prestart', - 'whoa': 'echo whoa' - } -} - -var preversionOnly = { - name: 'scripted', - version: '1.2.3', - scripts: { - 'preversion': 'echo preversion' - } -} - -function testOutput (t, command, er, code, stdout, stderr) { - var lines - - if (er) throw er - - if (stderr) { - throw new Error('npm ' + command + ' stderr: ' + stderr.toString()) - } - - lines = stdout.trim().split('\n') - stdout = lines.filter(function (line) { - return line.trim() !== '' && line[0] !== '>' - }).join(';') - - t.equal(stdout, command) - t.end() -} - -function writeMetadata (object) { - fs.writeFileSync( - path.resolve(pkg, 'package.json'), - JSON.stringify(object, null, 2) + '\n' - ) -} - -function cleanup () { - rimraf.sync(pkg) -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(cache) - mkdirp.sync(tmp) - writeMetadata(fullyPopulated) - t.end() -}) - -test('npm run-script start', function (t) { - common.npm(['run-script', 'start'], opts, testOutput.bind(null, t, 'start')) -}) - -test('npm run-script with args', function (t) { - common.npm(['run-script', 'start', '--', 'stop'], opts, testOutput.bind(null, t, 'stop')) -}) - -test('npm run-script with args that contain spaces', function (t) { - common.npm(['run-script', 'start', '--', 'hello world'], opts, testOutput.bind(null, t, 'hello world')) -}) - -test('npm run-script with args that contain single quotes', function (t) { - common.npm(['run-script', 'start', '--', 'they"re awesome'], opts, testOutput.bind(null, t, 'they"re awesome')) -}) - -test('npm run-script with args that contain double quotes', function (t) { - common.npm(['run-script', 'start', '--', 'what"s "up"?'], opts, testOutput.bind(null, t, 'what"s "up"?')) -}) - -test('npm run-script with args that contain ticks', function (t) { - common.npm(['run-script', 'start', '--', 'what\'s \'up\'?'], opts, testOutput.bind(null, t, 'what\'s \'up\'?')) -}) - -test('npm run-script with pre script', function (t) { - common.npm(['run-script', 'with-post'], opts, testOutput.bind(null, t, 'main;post')) -}) - -test('npm run-script with post script', function (t) { - common.npm(['run-script', 'with-pre'], opts, testOutput.bind(null, t, 'pre;main')) -}) - -test('npm run-script with both pre and post script', function (t) { - common.npm(['run-script', 'with-both'], opts, testOutput.bind(null, t, 'pre;main;post')) -}) - -test('npm run-script with both pre and post script and with args', function (t) { - common.npm(['run-script', 'with-both', '--', 'an arg'], opts, testOutput.bind(null, t, 'pre;an arg;post')) -}) - -test('npm run-script explicitly call pre script with arg', function (t) { - common.npm(['run-script', 'prewith-pre', '--', 'an arg'], opts, testOutput.bind(null, t, 'an arg')) -}) - -test('npm run-script test', function (t) { - common.npm(['run-script', 'test'], opts, function (er, code, stdout, stderr) { - t.ifError(er, 'npm run-script test ran without issue') - t.notOk(stderr, 'should not generate errors') - t.end() - }) -}) - -test('npm run-script env', function (t) { - common.npm(['run-script', 'env'], opts, function (er, code, stdout, stderr) { - t.ifError(er, 'using default env script') - t.notOk(stderr, 'should not generate errors') - t.ok(stdout.indexOf('npm_config_init_version') > 0, 'expected values in var list') - t.end() - }) -}) - -test('npm run-script nonexistent-script', function (t) { - common.npm(['run-script', 'nonexistent-script'], opts, function (er, code, stdout, stderr) { - t.ifError(er, 'npm run-script nonexistent-script did not cause npm to explode') - t.ok(stderr, 'should generate errors') - t.end() - }) -}) - -test('npm run-script restart when there isn\'t restart', function (t) { - common.npm(['run-script', 'restart'], opts, testOutput.bind(null, t, 'stop;start')) -}) - -test('npm run-script nonexistent-script with --if-present flag', function (t) { - common.npm(['run-script', '--if-present', 'nonexistent-script'], opts, function (er, code, stdout, stderr) { - t.ifError(er, 'npm run-script --if-present non-existent-script ran without issue') - t.notOk(stderr, 'should not generate errors') - t.end() - }) -}) - -test('npm run-script env vars accessible', function (t) { - process.env.run_script_foo_var = 'run_script_test_foo_val' - common.npm(['run-script', 'env-vars'], { - cwd: pkg - }, function (err, code, stdout, stderr) { - t.ifError(err, 'ran run-script without crashing') - t.equal(code, 0, 'exited normally') - t.equal(stderr, '', 'no error output') - t.match(stdout, - new RegExp(process.env.run_script_foo_var), - 'script had env access') - t.end() - }) -}) - -test('npm run-script package.json vars injected', function (t) { - common.npm(['run-script', 'package-env-vars'], { - cwd: pkg - }, function (err, code, stdout, stderr) { - t.ifError(err, 'ran run-script without crashing') - t.equal(code, 0, 'exited normally') - t.equal(stderr, '', 'no error output') - t.match(stdout, - new RegExp(fullyPopulated.run_script_foo_var), - 'script injected package.json value') - t.end() - }) -}) - -test('npm run-script package.json vars injected with prefix', function (t) { - common.npm(['run-script', 'prefixed-package-env-vars'], { - cwd: pkg - }, function (err, code, stdout, stderr) { - t.ifError(err, 'ran run-script without crashing') - t.equal(code, 0, 'exited normally') - t.equal(stderr, '', 'no error output') - t.match(stdout, - new RegExp(fullyPopulated.run_script_foo_var), - 'script injected npm_package-prefixed package.json value') - t.end() - }) -}) - -test('npm run-script env vars stripped npm-prefixed', function (t) { - process.env.npm_run_script_foo_var = 'run_script_test_foo_val' - common.npm(['run-script', 'npm-env-vars'], { - cwd: pkg - }, function (err, code, stdout, stderr) { - t.ifError(err, 'ran run-script without crashing') - t.equal(code, 0, 'exited normally') - t.equal(stderr, '', 'no error output') - t.notMatch(stdout, - new RegExp(process.env.npm_run_script_foo_var), - 'script stripped npm-prefixed env var') - t.end() - }) -}) - -test('npm run-script no-params (lifecycle only)', function (t) { - var expected = [ - 'Lifecycle scripts included in scripted:', - ' prestart', - ' echo prestart', - '' - ].join('\n') - - writeMetadata(lifecycleOnly) - - common.npm(['run-script'], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'ran run-script without parameters without crashing') - t.notOk(code, 'npm exited without error code') - t.notOk(stderr, 'npm printed nothing to stderr') - t.equal(stdout, expected, 'got expected output') - t.end() - }) -}) - -test('npm run-script no-params (preversion only)', function (t) { - var expected = [ - 'Lifecycle scripts included in scripted:', - ' preversion', - ' echo preversion', - '' - ].join('\n') - - writeMetadata(preversionOnly) - - common.npm(['run-script'], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'ran run-script without parameters without crashing') - t.notOk(code, 'npm exited without error code') - t.notOk(stderr, 'npm printed nothing to stderr') - t.equal(stdout, expected, 'got expected output') - t.end() - }) -}) - -test('npm run-script no-params (direct only)', function (t) { - var expected = [ - 'Scripts available in scripted via `npm run-script`:', - ' whoa', - ' echo whoa', - '' - ].join('\n') - - writeMetadata(directOnly) - - common.npm(['run-script'], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'ran run-script without parameters without crashing') - t.notOk(code, 'npm exited without error code') - t.notOk(stderr, 'npm printed nothing to stderr') - t.equal(stdout, expected, 'got expected output') - t.end() - }) -}) - -test('npm run-script no-params (direct only)', function (t) { - var expected = [ - 'Lifecycle scripts included in scripted:', - ' prestart', - ' echo prestart', - '', - 'available via `npm run-script`:', - ' whoa', - ' echo whoa', - '' - ].join('\n') - - writeMetadata(both) - - common.npm(['run-script'], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'ran run-script without parameters without crashing') - t.notOk(code, 'npm exited without error code') - t.notOk(stderr, 'npm printed nothing to stderr') - t.equal(stdout, expected, 'got expected output') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/scripts-whitespace-windows.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/scripts-whitespace-windows.js deleted file mode 100644 index 27a04601..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/scripts-whitespace-windows.js +++ /dev/null @@ -1,103 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, 'scripts-whitespace-windows') -var tmp = path.resolve(pkg, 'tmp') -var cache = path.resolve(pkg, 'cache') -var dep = path.resolve(pkg, 'dep') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'scripts-whitespace-windows', - version: '1.0.0', - description: 'a test', - repository: 'git://github.com/robertkowalski/bogus', - scripts: { - foo: 'foo --title \"Analysis of\" --recurse -d report src' - }, - dependencies: { - 'scripts-whitespace-windows-dep': '0.0.1' - }, - license: 'WTFPL' -} - -var dependency = { - name: 'scripts-whitespace-windows-dep', - version: '0.0.1', - bin: [ 'bin/foo' ] -} - -var extend = Object.assign || require('util')._extend - -var foo = function () { /* -#!/usr/bin/env node - -if (process.argv.length === 8) - console.log('npm-test-fine') -*/ }.toString().split('\n').slice(1, -1).join('\n') - -test('setup', function (t) { - cleanup() - mkdirp.sync(tmp) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - fs.writeFileSync( - path.join(pkg, 'README.md'), - "### THAT'S RIGHT\n" - ) - - mkdirp.sync(path.join(dep, 'bin')) - fs.writeFileSync( - path.join(dep, 'package.json'), - JSON.stringify(dependency, null, 2) - ) - fs.writeFileSync(path.join(dep, 'bin', 'foo'), foo) - - common.npm(['i', dep], { - cwd: pkg, - env: extend({ - npm_config_cache: cache, - npm_config_tmp: tmp, - npm_config_prefix: pkg, - npm_config_global: 'false' - }, process.env) - }, function (err, code, stdout, stderr) { - t.ifErr(err, 'npm i ' + dep + ' finished without error') - t.equal(code, 0, 'npm i ' + dep + ' exited ok') - t.notOk(stderr, 'no output stderr') - t.end() - }) -}) - -test('test', function (t) { - common.npm(['run', 'foo'], EXEC_OPTS, function (err, code, stdout, stderr) { - stderr = stderr.trim() - if (stderr) console.error(stderr) - t.ifErr(err, 'npm run finished without error') - t.equal(code, 0, 'npm run exited ok') - t.notOk(stderr, 'no output stderr: ' + stderr) - stdout = stdout.trim() - t.ok(/npm-test-fine/.test(stdout)) - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/search.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/search.js deleted file mode 100644 index 138517c3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/search.js +++ /dev/null @@ -1,290 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'search') -var cache = path.resolve(pkg, 'cache') -var registryCache = path.resolve(cache, 'localhost_1337', '-', 'all') -var cacheJsonFile = path.resolve(registryCache, '.cache.json') - -var timeMock = { - epoch: 1411727900, - future: 1411727900 + 100, - all: 1411727900 + 25, - since: 0 // filled by since server callback -} - -var EXEC_OPTS = {} - -var mocks = { - /* Since request, always response with an _update time > the time requested */ - sinceFuture: function (server) { - server.filteringPathRegEx(/startkey=[^&]*/g, function (s) { - var _allMock = JSON.parse(JSON.stringify(allMock)) - timeMock.since = _allMock._updated = s.replace('startkey=', '') - server.get('/-/all/since?stale=update_after&' + s) - .reply(200, _allMock) - return s - }) - }, - allFutureUpdatedOnly: function (server) { - server.get('/-/all') - .reply(200, stringifyUpdated(timeMock.future)) - }, - all: function (server) { - server.get('/-/all') - .reply(200, allMock) - } -} - -test('No previous cache, init cache triggered by first search', function (t) { - cleanup() - - mr({ port: common.port, plugin: mocks.allFutureUpdatedOnly }, function (err, s) { - t.ifError(err, 'mock registry started') - common.npm([ - 'search', 'do not do extra search work on my behalf', - '--registry', common.registry, - '--cache', cache, - '--loglevel', 'silent', - '--color', 'always' - ], - EXEC_OPTS, - function (err, code) { - s.close() - t.equal(code, 0, 'search finished successfully') - t.ifErr(err, 'search finished successfully') - - t.ok( - fs.existsSync(cacheJsonFile), - cacheJsonFile + ' expected to have been created' - ) - - var cacheData = JSON.parse(fs.readFileSync(cacheJsonFile, 'utf8')) - t.equal(cacheData._updated, String(timeMock.future)) - t.end() - }) - }) -}) - -test('no arguments provided should error', function (t) { - common.npm(['search'], [], function (err, code, stdout, stderr) { - if (err) throw err - t.equal(code, 1, 'search finished unsuccessfully') - - t.match( - stderr, - /search must be called with arguments/, - 'should have correct error message' - ) - t.end() - }) -}) - -test('previous cache, _updated set, should trigger since request', function (t) { - setupCache() - - function m (server) { - [ mocks.all, mocks.sinceFuture ].forEach(function (m) { - m(server) - }) - } - mr({ port: common.port, plugin: m }, function (err, s) { - t.ifError(err, 'mock registry started') - common.npm([ - 'search', 'do not do extra search work on my behalf', - '--registry', common.registry, - '--cache', cache, - '--loglevel', 'silly', - '--color', 'always' - ], - EXEC_OPTS, - function (err, code) { - s.close() - t.equal(code, 0, 'search finished successfully') - t.ifErr(err, 'search finished successfully') - - var cacheData = JSON.parse(fs.readFileSync(cacheJsonFile, 'utf8')) - t.equal( - cacheData._updated, - timeMock.since, - 'cache update time gotten from since response' - ) - t.end() - }) - }) -}) - -var searches = [ - { - term: 'f36b6a6123da50959741e2ce4d634f96ec668c56', - description: 'non-regex', - location: 241 - }, - { - term: '/f36b6a6123da50959741e2ce4d634f96ec668c56/', - description: 'regex', - location: 241 - } -] - -searches.forEach(function (search) { - test(search.description + ' search in color', function (t) { - cleanup() - mr({ port: common.port, plugin: mocks.all }, function (er, s) { - common.npm([ - 'search', search.term, - '--registry', common.registry, - '--cache', cache, - '--loglevel', 'silent', - '--color', 'always' - ], - EXEC_OPTS, - function (err, code, stdout) { - s.close() - t.equal(code, 0, 'search finished successfully') - t.ifErr(err, 'search finished successfully') - // \033 == \u001B - var markStart = '\u001B\\[[0-9][0-9]m' - var markEnd = '\u001B\\[0m' - - var re = new RegExp(markStart + '.*?' + markEnd) - - var cnt = stdout.search(re) - t.equal( - cnt, - search.location, - search.description + ' search for ' + search.term - ) - t.end() - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setupCache () { - cleanup() - mkdirp.sync(cache) - mkdirp.sync(registryCache) - var res = fs.writeFileSync(cacheJsonFile, stringifyUpdated(timeMock.epoch)) - if (res) throw new Error('Creating cache file failed') -} - -function stringifyUpdated (time) { - return JSON.stringify({ _updated: String(time) }) -} - -var allMock = { - '_updated': timeMock.all, - 'generator-frontcow': { - 'name': 'generator-frontcow', - 'description': 'f36b6a6123da50959741e2ce4d634f96ec668c56 This is a fake description to ensure we do not accidentally search the real npm registry or use some kind of cache', - 'dist-tags': { - 'latest': '0.1.19' - }, - 'maintainers': [ - { - 'name': 'bcabanes', - 'email': 'contact@benjamincabanes.com' - } - ], - 'homepage': 'https://github.com/bcabanes/generator-frontcow', - 'keywords': [ - 'sass', - 'frontend', - 'yeoman-generator', - 'atomic', - 'design', - 'sass', - 'foundation', - 'foundation5', - 'atomic design', - 'bourbon', - 'polyfill', - 'font awesome' - ], - 'repository': { - 'type': 'git', - 'url': 'https://github.com/bcabanes/generator-frontcow' - }, - 'author': { - 'name': 'ben', - 'email': 'contact@benjamincabanes.com', - 'url': 'https://github.com/bcabanes' - }, - 'bugs': { - 'url': 'https://github.com/bcabanes/generator-frontcow/issues' - }, - 'license': 'MIT', - 'readmeFilename': 'README.md', - 'time': { - 'modified': '2014-10-03T02:26:18.406Z' - }, - 'versions': { - '0.1.19': 'latest' - } - }, - 'marko': { - 'name': 'marko', - 'description': 'Marko is an extensible, streaming, asynchronous, high performance, HTML-based templating language that can be used in Node.js or in the browser.', - 'dist-tags': { - 'latest': '1.2.16' - }, - 'maintainers': [ - { - 'name': 'pnidem', - 'email': 'pnidem@gmail.com' - }, - { - 'name': 'philidem', - 'email': 'phillip.idem@gmail.com' - } - ], - 'homepage': 'https://github.com/raptorjs/marko', - 'keywords': [ - 'templating', - 'template', - 'async', - 'streaming' - ], - 'repository': { - 'type': 'git', - 'url': 'https://github.com/raptorjs/marko.git' - }, - 'author': { - 'name': 'Patrick Steele-Idem', - 'email': 'pnidem@gmail.com' - }, - 'bugs': { - 'url': 'https://github.com/raptorjs/marko/issues' - }, - 'license': 'Apache License v2.0', - 'readmeFilename': 'README.md', - 'users': { - 'pnidem': true - }, - 'time': { - 'modified': '2014-10-03T02:27:31.775Z' - }, - 'versions': { - '1.2.16': 'latest' - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/semver-doc.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/semver-doc.js deleted file mode 100644 index 31c75fff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/semver-doc.js +++ /dev/null @@ -1,12 +0,0 @@ -var test = require('tap').test - -test('semver doc is up to date', function (t) { - var path = require('path') - var moddoc = path.join(__dirname, '../../node_modules/semver/README.md') - var mydoc = path.join(__dirname, '../../doc/misc/semver.md') - var fs = require('fs') - var mod = fs.readFileSync(moddoc, 'utf8').replace(/semver\(1\)/, 'semver(7)') - var my = fs.readFileSync(mydoc, 'utf8') - t.equal(my, mod) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/semver-tag.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/semver-tag.js deleted file mode 100644 index b4feb751..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/semver-tag.js +++ /dev/null @@ -1,15 +0,0 @@ -// should not allow tagging with a valid semver range -var common = require('../common-tap.js') -var test = require('tap').test - -test('try to tag with semver range as tag name', function (t) { - var cmd = ['tag', 'zzzz@1.2.3', 'v2.x', '--registry=http://localhost'] - common.npm(cmd, { - stdio: 'pipe' - }, function (er, code, so, se) { - if (er) throw er - t.similar(se, /Tag name must not be a valid SemVer range: v2.x\n/) - t.equal(code, 1) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-dev-dependency.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-dev-dependency.js deleted file mode 100644 index 33281346..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-dev-dependency.js +++ /dev/null @@ -1,93 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'shrinkwrap-dev-dependency') - -var opts = [ - '--cache', path.resolve(pkg, 'cache'), - '--registry', common.registry -] - -var desired = { - name: 'npm-test-shrinkwrap-dev-dependency', - version: '0.0.0', - dependencies: { - request: { - version: '0.9.0', - from: 'request@0.9.0', - resolved: common.registry + '/request/-/request-0.9.0.tgz' - }, - underscore: { - version: '1.3.1', - from: 'underscore@1.3.1', - resolved: common.registry + '/underscore/-/underscore-1.3.1.tgz' - } - } -} - -var json = { - author: 'Domenic Denicola', - name: 'npm-test-shrinkwrap-dev-dependency', - version: '0.0.0', - dependencies: { - request: '0.9.0', - underscore: '1.3.1' - }, - devDependencies: { - underscore: '1.5.1' - } -} - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync(path.join(pkg, 'package.json'), JSON.stringify(json, null, 2)) - process.chdir(pkg) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -test('setup', function (t) { - setup() - t.end() -}) - -test("shrinkwrap doesn't strip out the dependency", function (t) { - t.plan(3) - setup() - - mr({port: common.port}, function (er, s) { - common.npm(opts.concat(['install', '.']), {stdio: [0, 'pipe', 2]}, function (err, code) { - if (err) throw err - if (!t.is(code, 0)) return (s.close(), t.end()) - common.npm(opts.concat(['shrinkwrap']), {stdio: [0, 2, 2]}, function (err, code) { - if (err) throw err - t.is(code, 0) - try { - var results = JSON.parse(fs.readFileSync(path.join(pkg, 'npm-shrinkwrap.json'))) - } catch (ex) { - t.comment(ex) - } - t.deepEqual(results, desired) - s.close() - t.end() - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-empty-deps.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-empty-deps.js deleted file mode 100644 index cf7e9a6e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-empty-deps.js +++ /dev/null @@ -1,77 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'shrinkwrap-empty-deps') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - author: 'Rockbert', - name: 'shrinkwrap-empty-deps', - version: '0.0.0', - dependencies: {}, - devDependencies: {} -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - process.chdir(pkg) - t.end() -}) - -test('returns a list of removed items', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - 'shrinkwrap' - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'shrinkwrap ran without issue') - t.notOk(code, 'shrinkwrap ran without raising error code') - - fs.readFile(path.resolve(pkg, 'npm-shrinkwrap.json'), function (err, desired) { - t.ifError(err, 'read npm-shrinkwrap.json without issue') - t.same( - { - 'name': 'shrinkwrap-empty-deps', - 'version': '0.0.0' - }, - JSON.parse(desired), - 'shrinkwrap handled empty deps without exploding' - ) - - s.close() - t.end() - }) - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-local-dependency.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-local-dependency.js deleted file mode 100644 index 8d7c0712..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-local-dependency.js +++ /dev/null @@ -1,121 +0,0 @@ -var test = require('tap').test -var path = require('path') -var fs = require('fs') -var osenv = require('osenv') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var common = require('../common-tap.js') - -var PKG_DIR = path.resolve(__dirname, 'shrinkwrap-local-dependency') -var CACHE_DIR = path.resolve(PKG_DIR, 'cache') -var DEP_DIR = path.resolve(PKG_DIR, 'dep') - -var desired = { - 'name': 'npm-test-shrinkwrap-local-dependency', - 'version': '0.0.0', - 'dependencies': { - 'npm-test-shrinkwrap-local-dependency-dep': { - 'version': '0.0.0', - 'from': 'dep', - 'resolved': 'file:dep' - } - } -} - -var root = { - 'author': 'Thomas Torp', - 'name': 'npm-test-shrinkwrap-local-dependency', - 'version': '0.0.0', - 'dependencies': { - 'npm-test-shrinkwrap-local-dependency-dep': 'file:./dep' - } -} - -var dependency = { - 'author': 'Thomas Torp', - 'name': 'npm-test-shrinkwrap-local-dependency-dep', - 'version': '0.0.0' -} - -test('shrinkwrap uses resolved with file: on local deps', function (t) { - setup() - - common.npm( - ['--cache=' + CACHE_DIR, '--loglevel=silent', 'install', '.'], - {}, - function (err, code) { - t.ifError(err, 'npm install worked') - t.equal(code, 0, 'npm exited normally') - - common.npm( - ['--cache=' + CACHE_DIR, '--loglevel=silent', 'shrinkwrap'], - {}, - function (err, code) { - t.ifError(err, 'npm shrinkwrap worked') - t.equal(code, 0, 'npm exited normally') - - fs.readFile('npm-shrinkwrap.json', { encoding: 'utf8' }, function (err, data) { - t.ifError(err, 'read file correctly') - t.deepEqual(JSON.parse(data), desired, 'shrinkwrap looks correct') - - t.end() - }) - } - ) - } - ) -}) - -test("'npm install' should install local packages from shrinkwrap", function (t) { - cleanNodeModules() - - common.npm( - ['--cache=' + CACHE_DIR, '--loglevel=silent', 'install', '.'], - {}, - function (err, code) { - t.ifError(err, 'install ran correctly') - t.notOk(code, 'npm install exited with code 0') - var dependencyPackageJson = path.resolve( - PKG_DIR, - 'node_modules/npm-test-shrinkwrap-local-dependency-dep/package.json' - ) - t.ok( - JSON.parse(fs.readFileSync(dependencyPackageJson, 'utf8')), - 'package with local dependency installed from shrinkwrap' - ) - - t.end() - } - ) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(PKG_DIR) - mkdirp.sync(CACHE_DIR) - mkdirp.sync(DEP_DIR) - fs.writeFileSync( - path.resolve(PKG_DIR, 'package.json'), - JSON.stringify(root, null, 2) - ) - fs.writeFileSync( - path.resolve(DEP_DIR, 'package.json'), - JSON.stringify(dependency, null, 2) - ) - process.chdir(PKG_DIR) -} - -function cleanNodeModules () { - rimraf.sync(path.resolve(PKG_DIR, 'node_modules')) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - cleanNodeModules() - rimraf.sync(PKG_DIR) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-nested.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-nested.js deleted file mode 100644 index 92c81f29..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-nested.js +++ /dev/null @@ -1,153 +0,0 @@ -'use strict' -var test = require('tap').test -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir -var fs = require('fs') -var path = require('path') -var common = require('../common-tap.js') - -var testdir = path.resolve(__dirname, path.basename(__filename, '.js')) -var modAdir = path.resolve(testdir, 'modA') -var modB1dir = path.resolve(testdir, 'modB@1') -var modB2dir = path.resolve(testdir, 'modB@2') -var modCdir = path.resolve(testdir, 'modC') - -var fixture = new Tacks(Dir({ - 'package.json': File({ - dependencies: { - modA: 'file://' + modAdir, - modC: 'file://' + modCdir - } - }), - 'npm-shrinkwrap.json': File({ - dependencies: { - modA: { - version: '1.0.0', - from: 'modA', - resolved: 'file://' + modAdir - }, - modB: { - version: '1.0.0', - from: 'modB@1', - resolved: 'file://' + modB1dir - } - } - }), - 'modA': Dir({ - 'package.json': File({ - name: 'modA', - version: '1.0.0', - dependencies: { - 'modB': 'file://' + modB1dir - } - }) - }), - 'modB@1': Dir({ - 'package.json': File({ - name: 'modB', - version: '1.0.0' - }), - 'B1': File('') - }), - 'modB@2': Dir({ - 'package.json': File({ - name: 'modB', - version: '2.0.0' - }), - 'B2': File('') - }), - 'modC': Dir({ - 'package.json': File({ - name: 'modC', - version: '1.0.0', - dependencies: { - 'modB': 'file://' + modB2dir - } - }) - }) -})) - -var newShrinkwrap = new Tacks(Dir({ - 'npm-shrinkwrap.json': File({ - dependencies: { - modA: { - version: '1.0.0', - from: 'modA', - resolved: 'file://' + modAdir - }, - modB: { - version: '1.0.0', - from: 'modB@1', - resolved: 'file://' + modB1dir - }, - modC: { - version: '1.0.0', - from: 'modC', - resolved: 'file://' + modCdir, - dependencies: { - modB: { - version: '1.0.0', - from: 'modB@1', - resolved: 'file://' + modB1dir - } - } - } - } - }), - 'node_modules': Dir({ - 'modB@1': Dir({ - 'package.json': File({ - _requested: { - name: 'modB', - raw: 'modB@file:' + modB1dir, - rawSpec: 'file:' + modB1dir, - scope: null, - spec: modB1dir, - type: 'directory' - }, - dependencies: { }, - devDependencies: { }, - name: 'modB', - optionalDependencies: { }, - readme: 'ERROR: No README data found!', - version: '1.0.0' - }) - }) - }) -})) - -function setup () { - fixture.create(testdir) -} - -function cleanup () { - fixture.remove(testdir) -} - -test('setup', function (t) { - cleanup() - setup() - common.npm(['install'], {cwd: testdir, stdio: [0, 2, 2]}, function (err, code) { - if (err) throw err - t.is(code, 0) - t.end() - }) -}) - -test('incremental install', function (t) { - newShrinkwrap.create(testdir) - common.npm(['install'], {cwd: testdir, stdio: [0, 2, 2]}, function (err, code) { - if (err) throw err - t.is(code, 0, 'npm itself completed ok') - fs.stat(path.join(testdir, 'node_modules', 'modC', 'node_modules', 'modB', 'B1'), function (missing) { - t.ok(!missing, 'modC got the updated version of modB') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-optional-dependency.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-optional-dependency.js deleted file mode 100644 index ee44b9a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-optional-dependency.js +++ /dev/null @@ -1,101 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var npm = npm = require('../../') - -var pkg = path.resolve(__dirname, 'shrinkwrap-optional-dependency') - -test('shrinkwrap does not fail on missing optional dependency', function (t) { - t.plan(1) - - var mocks = { - get: { - '/random-package': [404, {}] - } - } - - mr({port: common.port, mocks: mocks}, function (er, s) { - function fail (err) { - s.close() // Close on failure to allow node to exit - t.fail(err) - } - - setup(function (err) { - if (err) return fail(err) - - // Install without the optional dependency - npm.install('.', function (err) { - if (err) return fail(err) - - // Pretend the optional dependency was specified, but somehow failed to load: - json.optionalDependencies = { - 'random-package': '0.0.0' - } - writePackage() - - npm.commands.shrinkwrap([], true, function (err, results) { - if (err) return fail(err) - - t.deepEqual(results, desired) - s.close() - t.end() - }) - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -var desired = { - name: 'npm-test-shrinkwrap-optional-dependency', - version: '0.0.0', - dependencies: { - 'test-package': { - version: '0.0.0', - from: 'test-package@0.0.0', - resolved: common.registry + '/test-package/-/test-package-0.0.0.tgz' - } - } -} - -var json = { - author: 'Maximilian Antoni', - name: 'npm-test-shrinkwrap-optional-dependency', - version: '0.0.0', - dependencies: { - 'test-package': '0.0.0' - } -} - -function writePackage () { - fs.writeFileSync(path.join(pkg, 'package.json'), JSON.stringify(json, null, 2)) -} - -function setup (cb) { - cleanup() - mkdirp.sync(pkg) - writePackage() - process.chdir(pkg) - - var opts = { - cache: path.resolve(pkg, 'cache'), - registry: common.registry - } - npm.load(opts, cb) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-prod-dependency-also.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-prod-dependency-also.js deleted file mode 100644 index 723960ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-prod-dependency-also.js +++ /dev/null @@ -1,101 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var pkg = path.resolve(__dirname, path.basename(__filename, '.js')) -var opts = [ - '--cache=' + path.resolve(pkg, 'cache'), - '--registry=' + common.registry -] - -function reportOutput (t, fh, out) { - var trimmed = out.trim() - if (!trimmed.length) return - var prefix = fh + '> ' - t.comment(prefix + trimmed.split(/\n/).join('\n' + prefix)) -} - -var server -test("shrinkwrap --also=development doesn't strip out prod dependencies", function (t) { - t.plan(4) - - mr({port: common.port}, function (er, s) { - server = s - setup() - common.npm(['install', '.'].concat(opts), {cwd: pkg}, function (err, code, stdout, stderr) { - if (err) return t.fail(err) - t.is(code, 0, 'install') - reportOutput(t, 'out', stdout) - reportOutput(t, 'err', stderr) - common.npm(['shrinkwrap', '--also=development'].concat(opts), {cwd: pkg}, function (err, code, stdout, stderr) { - if (err) return t.fail(err) - var ok = t.is(code, 0, 'shrinkwrap') - reportOutput(t, 'out', stdout) - reportOutput(t, 'err', stderr) - if (ok) { - try { - var results = JSON.parse(fs.readFileSync(path.join(pkg, 'npm-shrinkwrap.json'))) - t.pass('read shrinkwrap') - } catch (ex) { - t.ifError(ex, 'read shrinkwrap') - } - } - t.deepEqual(results, desired, 'results have dev dep') - s.done() - t.end() - }) - }) - }) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -var desired = { - name: 'npm-test-shrinkwrap-prod-dependency', - version: '0.0.0', - dependencies: { - request: { - version: '0.9.0', - from: 'request@0.9.0', - resolved: common.registry + '/request/-/request-0.9.0.tgz' - }, - underscore: { - version: '1.5.1', - from: 'underscore@1.5.1', - resolved: common.registry + '/underscore/-/underscore-1.5.1.tgz' - } - } -} - -var json = { - author: 'Domenic Denicola', - name: 'npm-test-shrinkwrap-prod-dependency', - version: '0.0.0', - dependencies: { - request: '0.9.0' - }, - devDependencies: { - underscore: '1.5.1' - } -} - -function setup (opts) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync(path.join(pkg, 'package.json'), JSON.stringify(json, null, 2)) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-prod-dependency.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-prod-dependency.js deleted file mode 100644 index 5bc83437..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-prod-dependency.js +++ /dev/null @@ -1,93 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = npm = require('../../') - -var common = require('../common-tap.js') -var pkg = path.resolve(__dirname, 'shrinkwrap-prod-dependency') - -test("shrinkwrap --dev doesn't strip out prod dependencies", function (t) { - t.plan(1) - - mr({port: common.port}, function (er, s) { - setup({}, function (err) { - if (err) return t.fail(err) - - npm.install('.', function (err) { - if (err) return t.fail(err) - - npm.config.set('dev', true) - npm.commands.shrinkwrap([], true, function (err, results) { - if (err) return t.fail(err) - - t.deepEqual(results, desired) - s.close() - t.end() - }) - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -var desired = { - name: 'npm-test-shrinkwrap-prod-dependency', - version: '0.0.0', - dependencies: { - request: { - version: '0.9.0', - from: 'request@0.9.0', - resolved: common.registry + '/request/-/request-0.9.0.tgz' - }, - underscore: { - version: '1.5.1', - from: 'underscore@1.5.1', - resolved: common.registry + '/underscore/-/underscore-1.5.1.tgz' - } - } -} - -var json = { - author: 'Domenic Denicola', - name: 'npm-test-shrinkwrap-prod-dependency', - version: '0.0.0', - dependencies: { - request: '0.9.0' - }, - devDependencies: { - underscore: '1.5.1' - } -} - -function setup (opts, cb) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync(path.join(pkg, 'package.json'), JSON.stringify(json, null, 2)) - process.chdir(pkg) - - var allOpts = { - cache: path.resolve(pkg, 'cache'), - registry: common.registry - } - - for (var key in opts) { - allOpts[key] = opts[key] - } - - npm.load(allOpts, cb) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-save-with-existing-dev-deps.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-save-with-existing-dev-deps.js deleted file mode 100644 index fa889557..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-save-with-existing-dev-deps.js +++ /dev/null @@ -1,87 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var base = path.resolve(__dirname, path.basename(__filename, '.js')) -var installme = path.join(base, 'installme') -var installme_pkg = path.join(installme, 'package.json') -var example = path.join(base, 'example') -var example_shrinkwrap = path.join(example, 'npm-shrinkwrap.json') -var example_pkg = path.join(example, 'package.json') -var installed = path.join(example, 'node_modules', 'installed') -var installed_pkg = path.join(installed, 'package.json') - -var EXEC_OPTS = { cwd: example } - -var installme_pkg_json = { - name: 'installme', - version: '1.0.0', - dependencies: {} -} - -var example_pkg_json = { - name: 'example', - version: '1.0.0', - dependencies: {}, - devDependencies: { - 'installed': '1.0' - } -} - -var example_shrinkwrap_json = { - name: 'example', - version: '1.0.0', - dependencies: { - installed: { - version: '1.0.0' - } - } -} - -var installed_pkg_json = { - _id: 'installed@1.0.0', - name: 'installed', - version: '1.0.0' -} - -function writeJson (filename, obj) { - mkdirp.sync(path.dirname(filename)) - fs.writeFileSync(filename, JSON.stringify(obj, null, 2)) -} - -test('setup', function (t) { - cleanup() - writeJson(installme_pkg, installme_pkg_json) - writeJson(example_pkg, example_pkg_json) - writeJson(example_shrinkwrap, example_shrinkwrap_json) - writeJson(installed_pkg, installed_pkg_json) - t.end() -}) - -test('install --save leaves dev deps alone', function (t) { - common.npm(['install', '--save', 'file://' + installme], EXEC_OPTS, function (er, code, stdout, stderr) { - t.ifError(er, "spawn didn't catch fire") - t.is(code, 0, 'install completed ok') - t.is(stderr, '', 'install completed without error output') - var shrinkwrap = JSON.parse(fs.readFileSync(example_shrinkwrap)) - t.ok(shrinkwrap.dependencies.installed, "save new install didn't remove dev dep") - t.ok(shrinkwrap.dependencies.installme, 'save new install DID add new dep') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(base) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-scoped-auth.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-scoped-auth.js deleted file mode 100644 index a469bc83..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-scoped-auth.js +++ /dev/null @@ -1,115 +0,0 @@ -var resolve = require('path').resolve -var writeFileSync = require('graceful-fs').writeFileSync - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var toNerfDart = require('../../lib/config/nerf-dart.js') - -var pkg = resolve(__dirname, 'shrinkwrap-scoped-auth') -var outfile = resolve(pkg, '_npmrc') -var modules = resolve(pkg, 'node_modules') -var tarballPath = '/scoped-underscore/-/scoped-underscore-1.3.1.tgz' -var tarballURL = common.registry + tarballPath -var tarball = resolve(__dirname, '../fixtures/scoped-underscore-1.3.1.tgz') - -var server - -function mocks (server) { - var auth = 'Bearer 0xabad1dea' - server.get(tarballPath, { authorization: auth }).replyWithFile(200, tarball) - server.get(tarballPath).reply(401, { - error: 'unauthorized', - reason: 'You are not authorized to access this db.' - }) -} - -test('setup', function (t) { - mr({ port: common.port, plugin: mocks }, function (er, s) { - server = s - t.ok(s, 'set up mock registry') - setup() - t.end() - }) -}) - -test('authed npm install with shrinkwrapped scoped package', function (t) { - common.npm( - [ - 'install', - '--loglevel', 'warn', - '--json', - '--fetch-retries', 0, - '--userconfig', outfile - ], - {cwd: pkg}, - function (err, code, stdout, stderr) { - if (err) throw err - if (stderr) t.comment(stderr) - t.equal(code, 0, 'npm install exited OK') - try { - var results = JSON.parse(stdout) - } catch (ex) { - console.error('#', ex) - t.ifError(ex, 'stdout was valid JSON') - } - - if (results) { - var installedversion = { - 'version': '1.3.1', - 'from': '>=1.3.1 <2', - 'resolved': 'http://localhost:1337/scoped-underscore/-/scoped-underscore-1.3.1.tgz' - } - t.isDeeply(results.dependencies['@scoped/underscore'], installedversion, '@scoped/underscore installed') - } - - t.end() - } - ) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -var contents = '@scoped:registry=' + common.registry + '\n' + - toNerfDart(common.registry) + ':_authToken=0xabad1dea\n' - -var json = { - name: 'test-package-install', - version: '1.0.0' -} - -var shrinkwrap = { - name: 'test-package-install', - version: '1.0.0', - dependencies: { - '@scoped/underscore': { - resolved: tarballURL, - from: '>=1.3.1 <2', - version: '1.3.1' - } - } -} - -function setup () { - cleanup() - mkdirp.sync(modules) - writeFileSync(resolve(pkg, 'package.json'), JSON.stringify(json, null, 2) + '\n') - writeFileSync(outfile, contents) - writeFileSync( - resolve(pkg, 'npm-shrinkwrap.json'), - JSON.stringify(shrinkwrap, null, 2) + '\n' - ) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-shared-dev-dependency.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-shared-dev-dependency.js deleted file mode 100644 index a6cddae3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-shared-dev-dependency.js +++ /dev/null @@ -1,90 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var npm = npm = require('../../') - -var pkg = path.resolve(__dirname, 'shrinkwrap-shared-dev-dependency') - -test("shrinkwrap doesn't strip out the shared dependency", function (t) { - t.plan(1) - - mr({ port: common.port }, function (er, s) { - setup(function (err) { - if (err) return t.fail(err) - - npm.install('.', function (err) { - if (err) return t.fail(err) - - npm.commands.shrinkwrap([], true, function (err, results) { - if (err) return t.fail(err) - - t.deepEqual(results, desired) - s.close() - t.end() - }) - }) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -var desired = { - name: 'npm-test-shrinkwrap-shared-dev-dependency', - version: '0.0.0', - dependencies: { - 'test-package-with-one-dep': { - version: '0.0.0', - from: 'test-package-with-one-dep@0.0.0', - resolved: common.registry + - '/test-package-with-one-dep/-/test-package-with-one-dep-0.0.0.tgz' - }, - 'test-package': { - version: '0.0.0', - from: 'test-package@0.0.0', - resolved: common.registry + '/test-package/-/test-package-0.0.0.tgz' - } - } -} - -var json = { - author: 'Domenic Denicola', - name: 'npm-test-shrinkwrap-shared-dev-dependency', - version: '0.0.0', - dependencies: { - 'test-package-with-one-dep': '0.0.0' - }, - devDependencies: { - 'test-package': '0.0.0' - } -} - -function setup (cb) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync(path.join(pkg, 'package.json'), JSON.stringify(json, null, 2)) - process.chdir(pkg) - - var opts = { - cache: path.resolve(pkg, 'cache'), - registry: common.registry, - // important to make sure devDependencies don't get stripped - dev: true - } - npm.load(opts, cb) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-version-match.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-version-match.js deleted file mode 100644 index 7d9fed72..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/shrinkwrap-version-match.js +++ /dev/null @@ -1,112 +0,0 @@ -'use strict' -var test = require('tap').test -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir -var fs = require('fs') -var path = require('path') -var common = require('../common-tap.js') - -var testdir = path.resolve(__dirname, path.basename(__filename, '.js')) -var modAdir = path.resolve(testdir, 'modA') -var modB1dir = path.resolve(testdir, 'modB@1') -var modB2dir = path.resolve(testdir, 'modB@2') -var modCdir = path.resolve(testdir, 'modC') - -var fixture = new Tacks(Dir({ - 'package.json': File({ - dependencies: { - modA: 'file://' + modAdir, - modC: 'file://' + modCdir - } - }), - 'npm-shrinkwrap.json': File({ - dependencies: { - modA: { - version: '1.0.0', - from: 'modA', - resolved: 'file://' + modAdir - }, - modB: { - version: '1.0.0', - from: 'modB@1', - resolved: 'file://' + modB1dir - } - } - }), - 'modA': Dir({ - 'package.json': File({ - name: 'modA', - version: '1.0.0', - dependencies: { - 'modB': 'file://' + modB1dir - } - }) - }), - 'modB@1': Dir({ - 'package.json': File({ - name: 'modB', - version: '1.0.0' - }), - 'B1': File('') - }), - 'modB@2': Dir({ - 'package.json': File({ - name: 'modB', - version: '2.0.0' - }), - 'B2': File('') - }), - 'modC': Dir({ - 'package.json': File({ - name: 'modC', - version: '1.0.0', - dependencies: { - 'modB': 'file://' + modB2dir - } - }) - }) -})) - -function setup () { - fixture.create(testdir) -} - -function cleanup () { - fixture.remove(testdir) -} - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -// Shrinkwraps need to let you override dependency versions specified in -// package.json files. Indeed, this was already supported, but it was a bit -// to keen on this. Previously, if you had a dep in your shrinkwrap then -// anything that required that dependency would count as a match, regardless -// of version. - -// This test ensures that the broad matching is not done when the matched -// module is not a direct child of the module doing the requiring. - -test('bundled', function (t) { - common.npm(['install'], {cwd: testdir}, function (err, code, out, stderr) { - t.is(err, null, 'No fatal errors running npm') - t.is(code, 0, 'npm itself completed ok') - // Specifically, if B2 exists (or the modB directory under modC at all) - // that means modC was given its own copy of modB. Without the patch - // that went with this test, it wouldn't have been installed because npm - // would have consider modB@1 to have fulfilled modC's requirement. - fs.stat(path.join(testdir, 'node_modules', 'modC', 'node_modules', 'modB', 'B2'), function (missing) { - t.ok(!missing, 'modC got the right version of modB') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/sorted-package-json.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/sorted-package-json.js deleted file mode 100644 index 557f3dc5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/sorted-package-json.js +++ /dev/null @@ -1,89 +0,0 @@ -var test = require('tap').test -var path = require('path') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var pkg = path.resolve(__dirname, 'sorted-package-json') -var tmp = path.join(pkg, 'tmp') -var cache = path.join(pkg, 'cache') -var fs = require('fs') -var common = require('../common-tap.js') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var packageJson = path.resolve(pkg, 'package.json') - -test('setup', function (t) { - setup() - t.pass('setup success') - t.done() -}) - -test('sorting dependencies', function (t) { - var before = JSON.parse(fs.readFileSync(packageJson).toString()) - - mr({ port: common.port }, function (er, s) { - // underscore is already in the package.json, - // but --save will trigger a rewrite with sort - common.npm([ - 'install', - '--save', 'underscore@1.3.3', - '--no-progress', - '--cache', cache, - '--tmp', tmp, - '--registry', common.registry - ], { - cwd: pkg - }, function (err, code, stdout, stderr) { - t.ifError(err, 'no error') - t.equal(code, 0, 'npm install exited with code') - var result = fs.readFileSync(packageJson).toString() - var resultAsJson = JSON.parse(result) - - s.close() - - t.same(Object.keys(resultAsJson.dependencies), - Object.keys(before.dependencies).sort()) - - t.notSame(Object.keys(resultAsJson.dependencies), - Object.keys(before.dependencies)) - - t.ok(resultAsJson.dependencies.underscore) - t.ok(resultAsJson.dependencies.request) - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.pass('cleaned up') - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - - fs.writeFileSync(packageJson, JSON.stringify({ - 'name': 'sorted-package-json', - 'version': '0.0.0', - 'description': '', - 'main': 'index.js', - 'scripts': { - 'test': 'echo \'Error: no test specified\' && exit 1' - }, - 'author': 'Rocko Artischocko', - 'license': 'ISC', - 'dependencies': { - 'underscore': '^1.3.3', - 'request': '^0.9.0' - } - }, null, 2), 'utf8') -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(cache) - rimraf.sync(pkg) - mkdirp.sync(cache) - mkdirp.sync(tmp) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/spawn-enoent-help.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/spawn-enoent-help.js deleted file mode 100644 index d4a6fcdd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/spawn-enoent-help.js +++ /dev/null @@ -1,36 +0,0 @@ -var path = require('path') -var test = require('tap').test -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'spawn-enoent-help') - -common.pendIfWindows('man pages are not built on Windows') - -test('setup', function (t) { - rimraf.sync(pkg) - mkdirp.sync(pkg) - t.end() -}) - -test('enoent help', function (t) { - common.npm(['help', 'config'], { - cwd: pkg, - env: { - PATH: '', - Path: '', - 'npm_config_loglevel': 'warn', - 'npm_config_viewer': 'woman' - } - }, function (er, code, sout, serr) { - t.similar(serr, /Check if the file 'emacsclient' is present./) - t.equal(global.cooked, undefined, "Don't leak into global scope") - t.end() - }) -}) - -test('clean', function (t) { - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/spawn-enoent.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/spawn-enoent.js deleted file mode 100644 index 320e477e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/spawn-enoent.js +++ /dev/null @@ -1,39 +0,0 @@ -var path = require('path') -var test = require('tap').test -var fs = require('fs') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'spawn-enoent') -var pj = JSON.stringify({ - name: 'x', - version: '1.2.3', - scripts: { start: 'wharble-garble-blorst' } -}, null, 2) + '\n' - -test('setup', function (t) { - rimraf.sync(pkg) - mkdirp.sync(pkg) - fs.writeFileSync(pkg + '/package.json', pj) - t.end() -}) - -test('enoent script', function (t) { - common.npm(['start'], { - cwd: pkg, - env: { - PATH: process.env.PATH, - Path: process.env.Path, - 'npm_config_loglevel': 'warn' - } - }, function (er, code, sout, serr) { - t.similar(serr, /npm ERR! Failed at the x@1\.2\.3 start script 'wharble-garble-blorst'\./) - t.end() - }) -}) - -test('clean', function (t) { - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/splat-with-only-prerelease-to-latest.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/splat-with-only-prerelease-to-latest.js deleted file mode 100644 index 2598d557..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/splat-with-only-prerelease-to-latest.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict' -var test = require('tap').test -var npm = require('../../lib/npm') -var stream = require('readable-stream') - -var moduleName = 'xyzzy-wibble' -var testModule = { - name: moduleName, - 'dist-tags': { - latest: '1.3.0-a' - }, - versions: { - '1.0.0-a': { - name: moduleName, - version: '1.0.0-a', - dist: { - shasum: 'da39a3ee5e6b4b0d3255bfef95601890afd80709', - tarball: 'http://registry.npmjs.org/aproba/-/xyzzy-wibble-1.0.0-a.tgz' - } - }, - '1.1.0-a': { - name: moduleName, - version: '1.1.0-a', - dist: { - shasum: 'da39a3ee5e6b4b0d3255bfef95601890afd80709', - tarball: 'http://registry.npmjs.org/aproba/-/xyzzy-wibble-1.1.0-a.tgz' - } - }, - '1.2.0-a': { - name: moduleName, - version: '1.2.0-a', - dist: { - shasum: 'da39a3ee5e6b4b0d3255bfef95601890afd80709', - tarball: 'http://registry.npmjs.org/aproba/-/xyzzy-wibble-1.2.0-a.tgz' - } - }, - '1.3.0-a': { - name: moduleName, - version: '1.3.0-a', - dist: { - shasum: 'da39a3ee5e6b4b0d3255bfef95601890afd80709', - tarball: 'http://registry.npmjs.org/aproba/-/xyzzy-wibble-1.3.0-a.tgz' - } - } - } -} - -var lastFetched -test('setup', function (t) { - npm.load(function () { - npm.config.set('loglevel', 'silly') - npm.registry = { - get: function (uri, opts, cb) { - setTimeout(function () { - cb(null, testModule, null, {statusCode: 200}) - }) - }, - fetch: function (u, opts, cb) { - lastFetched = u - setTimeout(function () { - var empty = new stream.Readable() - empty.push(null) - cb(null, empty) - }) - } - } - t.end() - }) -}) - -test('splat', function (t) { - t.plan(4) - var addNamed = require('../../lib/cache/add-named.js') - addNamed('xyzzy-wibble', '*', testModule, function (err, pkg) { - t.error(err, 'Succesfully resolved a splat package') - t.is(pkg.name, moduleName) - t.is(pkg.version, testModule['dist-tags'].latest) - t.is(lastFetched, 'https://registry.npmjs.org/aproba/-/xyzzy-wibble-1.3.0-a.tgz') - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/startstop.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/startstop.js deleted file mode 100644 index b17a303c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/startstop.js +++ /dev/null @@ -1,74 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') - -var pkg = path.resolve(__dirname, 'startstop') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'startstop', - version: '1.2.3', - scripts: { - start: 'node -e \"console.log(\'start\')\"', - stop: 'node -e \"console.log(\'stop\')\"' - } -} - -function testOutput (t, command, er, code, stdout, stderr) { - t.notOk(code, 'npm ' + command + ' exited with code 0') - - if (stderr) throw new Error('npm ' + command + ' stderr: ' + stderr.toString()) - - stdout = stdout.trim().split(/\n|\r/) - stdout = stdout[stdout.length - 1] - t.equal(stdout, command) - t.end() -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - t.end() -}) - -test('npm start', function (t) { - common.npm(['start'], EXEC_OPTS, testOutput.bind(null, t, 'start')) -}) - -test('npm stop', function (t) { - common.npm(['stop'], EXEC_OPTS, testOutput.bind(null, t, 'stop')) -}) - -test('npm restart', function (t) { - common.npm(['restart'], EXEC_OPTS, function (er, c, stdout) { - if (er) throw er - - var output = stdout.split('\n').filter(function (val) { - return val.match(/^s/) - }) - - t.same(output.sort(), ['start', 'stop'].sort()) - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/symlink-cycle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/symlink-cycle.js deleted file mode 100644 index 62aa8e06..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/symlink-cycle.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict' -var fs = require('fs') -var path = require('path') -var test = require('tap').test -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var writeFileSync = require('fs').writeFileSync -var common = require('../common-tap.js') - -var base = path.join(__dirname, path.basename(__filename, '.js')) -var cycle = path.join(base, 'cycle') - -var cycleJSON = { - name: 'cycle', - version: '1.0.0', - description: '', - main: 'index.js', - scripts: { - test: 'echo \"Error: no test specified\" && exit 1' - }, - dependencies: { - 'cycle': '*' - }, - author: '', - license: 'ISC' -} - -test('setup', function (t) { - setup() - t.end() -}) - -test('ls', function (t) { - process.chdir(cycle) - common.npm(['ls'], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'installed w/o error') - t.is(stderr, '', 'no warnings printed to stderr') - t.end() - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - cleanup() - t.end() -}) - -function cleanup () { - rimraf.sync(base) -} - -function setup () { - cleanup() - mkdirp.sync(path.join(cycle, 'node_modules')) - writeFileSync( - path.join(cycle, 'package.json'), - JSON.stringify(cycleJSON, null, 2) - ) - fs.symlinkSync(cycle, path.join(cycle, 'node_modules', 'cycle'), 'junction') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/tag-version-prefix.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/tag-version-prefix.js deleted file mode 100644 index 9035e9fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/tag-version-prefix.js +++ /dev/null @@ -1,92 +0,0 @@ -var common = require('../common-tap.js') -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../lib/npm.js') - -var pkg = path.resolve(__dirname, 'version-message-config') -var cache = path.resolve(pkg, 'cache') -var npmrc = path.resolve(pkg, '.npmrc') -var packagePath = path.resolve(pkg, 'package.json') - -var json = { name: 'blah', version: '0.1.2' } - -var configContents = 'sign-git-tag=false\nmessage=":bookmark: %s"\n' - -test('npm version <semver> with message config', function (t) { - setup() - - npm.load({ prefix: pkg, userconfig: npmrc }, function () { - var git = require('../../lib/utils/git.js') - - common.makeGitRepo({ path: pkg }, function (er) { - t.ifErr(er, 'git bootstrap ran without error') - - common.npm( - [ - '--userconfig', npmrc, - 'config', - 'set', - 'tag-version-prefix', - 'q' - ], - { cwd: pkg, env: { PATH: process.env.PATH } }, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm config ran without issue') - t.notOk(code, 'exited with a non-error code') - t.notOk(stderr, 'no error output') - - common.npm( - [ - 'version', - 'patch', - '--loglevel', 'silent' - // package config is picked up from env - ], - { cwd: pkg, env: { PATH: process.env.PATH } }, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm version ran without issue') - t.notOk(code, 'exited with a non-error code') - t.notOk(stderr, 'no error output') - - git.whichAndExec( - ['tag'], - { cwd: pkg, env: process.env }, - function (er, tags, stderr) { - t.ok(tags.match(/q0\.1\.3/g), 'tag was created by version' + tags) - t.end() - } - ) - } - ) - } - ) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - // windows fix for locked files - process.chdir(osenv.tmpdir()) - - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(cache) - process.chdir(pkg) - - fs.writeFileSync(packagePath, JSON.stringify(json), 'utf8') - fs.writeFileSync(npmrc, configContents, 'ascii') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/team.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/team.js deleted file mode 100644 index b13fa86e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/team.js +++ /dev/null @@ -1,133 +0,0 @@ -var mr = require('npm-registry-mock') - -var test = require('tap').test -var common = require('../common-tap.js') - -var server - -test('setup', function (t) { - mr({port: common.port}, function (err, s) { - t.ifError(err, 'registry mocked successfully') - server = s - t.end() - }) -}) - -test('team create basic', function (t) { - var teamData = { - name: 'test', - scope_id: 1234, - created: '2015-07-23T18:07:49.959Z', - updated: '2015-07-23T18:07:49.959Z', - deleted: null - } - server.put('/-/org/myorg/team', JSON.stringify({ - name: teamData.name - })).reply(200, teamData) - common.npm([ - 'team', 'create', 'myorg:' + teamData.name, - '--registry', common.registry, - '--loglevel', 'silent' - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'npm team') - t.equal(code, 0, 'exited OK') - t.equal(stderr, '', 'no error output') - t.same(JSON.parse(stdout), teamData) - t.end() - }) -}) - -test('team destroy', function (t) { - var teamData = { - name: 'myteam', - scope_id: 1234, - created: '2015-07-23T18:07:49.959Z', - updated: '2015-07-23T18:07:49.959Z', - deleted: '2015-07-23T18:27:27.178Z' - } - server.delete('/-/team/myorg/' + teamData.name).reply(200, teamData) - common.npm([ - 'team', 'destroy', 'myorg:' + teamData.name, - '--registry', common.registry, - '--loglevel', 'silent' - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'npm team') - t.equal(code, 0, 'exited OK') - t.equal(stderr, '', 'no error output') - t.same(JSON.parse(stdout), teamData) - t.end() - }) -}) - -test('team add', function (t) { - var user = 'zkat' - server.put('/-/team/myorg/myteam/user', JSON.stringify({ - user: user - })).reply(200) - common.npm([ - 'team', 'add', 'myorg:myteam', user, - '--registry', common.registry, - '--loglevel', 'silent' - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'npm team') - t.equal(code, 0, 'exited OK') - t.equal(stderr, '', 'no error output') - t.end() - }) -}) - -test('team rm', function (t) { - var user = 'zkat' - server.delete('/-/team/myorg/myteam/user', JSON.stringify({ - user: user - })).reply(200) - common.npm([ - 'team', 'rm', 'myorg:myteam', user, - '--registry', common.registry, - '--loglevel', 'silent' - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'npm team') - t.equal(code, 0, 'exited OK') - t.equal(stderr, '', 'no error output') - t.end() - }) -}) - -test('team ls (on org)', function (t) { - var teams = ['myorg:team1', 'myorg:team2', 'myorg:team3'] - server.get('/-/org/myorg/team?format=cli').reply(200, teams) - common.npm([ - 'team', 'ls', 'myorg', - '--registry', common.registry, - '--loglevel', 'silent' - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'npm team') - t.equal(code, 0, 'exited OK') - t.equal(stderr, '', 'no error output') - t.same(JSON.parse(stdout), teams) - t.end() - }) -}) - -test('team ls (on team)', function (t) { - var users = ['zkat', 'bcoe'] - server.get('/-/team/myorg/myteam/user?format=cli').reply(200, users) - common.npm([ - 'team', 'ls', 'myorg:myteam', - '--registry', common.registry, - '--loglevel', 'silent' - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'npm team') - t.equal(code, 0, 'exited OK') - t.equal(stderr, '', 'no error output') - t.same(JSON.parse(stdout), users) - t.end() - }) -}) - -test('cleanup', function (t) { - t.pass('cleaned up') - server.done() - server.close() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/test-run-ls.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/test-run-ls.js deleted file mode 100644 index ea495879..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/test-run-ls.js +++ /dev/null @@ -1,33 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var path = require('path') -var cwd = path.resolve(__dirname, '..', '..') -var testscript = require('../../package.json').scripts.test -var tsregexp = testscript.replace(/([\[\.\*\]])/g, '\\$1') - -test('default', function (t) { - common.npm(['run'], { cwd: cwd }, function (er, code, so) { - if (er) throw er - t.notOk(code) - t.similar(so, new RegExp('\\n test\\n ' + tsregexp + '\\n')) - t.end() - }) -}) - -test('parseable', function (t) { - common.npm(['run', '-p'], { cwd: cwd }, function (er, code, so) { - if (er) throw er - t.notOk(code) - t.similar(so, new RegExp('\\ntest:' + tsregexp + '\\n')) - t.end() - }) -}) - -test('parseable', function (t) { - common.npm(['run', '--json'], { cwd: cwd }, function (er, code, so) { - if (er) throw er - t.notOk(code) - t.equal(JSON.parse(so).test, testscript) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/tree-style.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/tree-style.js deleted file mode 100644 index b2bf0ce7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/tree-style.js +++ /dev/null @@ -1,116 +0,0 @@ -'use strict' -var test = require('tap').test -var path = require('path') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var fs = require('graceful-fs') -var common = require('../common-tap') - -var base = path.resolve(__dirname, path.basename(__filename, '.js')) -var modA = path.resolve(base, 'modA') -var modB = path.resolve(base, 'modB') -var modC = path.resolve(base, 'modC') -var testNormal = path.resolve(base, 'testNormal') -var testGlobal = path.resolve(base, 'testGlobal') -var testLegacy = path.resolve(base, 'testLegacy') - -var json = { - 'name': 'test-tree-style', - 'version': '1.0.0', - 'dependencies': { - 'modA': modA - } -} - -var modAJson = { - 'name': 'modA', - 'version': '1.0.0', - 'dependencies': { - 'modB': modB - } -} - -var modBJson = { - 'name': 'modB', - 'version': '1.0.0', - 'dependencies': { - 'modC': modC - } -} - -var modCJson = { - 'name': 'modC', - 'version': '1.0.0' -} - -function modJoin () { - var modules = Array.prototype.slice.call(arguments) - return modules.reduce(function (a, b) { - return path.resolve(a, 'node_modules', b) - }) -} - -function writeJson (mod, data) { - fs.writeFileSync(path.resolve(mod, 'package.json'), JSON.stringify(data)) -} - -function setup () { - cleanup() - ;[modA, modB, modC, testNormal, testGlobal, testLegacy].forEach(function (mod) { - mkdirp.sync(mod) - }) - writeJson(modA, modAJson) - writeJson(modB, modBJson) - writeJson(modC, modCJson) - ;[testNormal, testGlobal, testLegacy].forEach(function (mod) { writeJson(mod, json) }) -} - -function cleanup () { - rimraf.sync(base) -} - -test('setup', function (t) { - setup() - t.end() -}) - -function exists (t, filepath, msg) { - try { - fs.statSync(filepath) - t.pass(msg) - return true - } catch (ex) { - t.fail(msg, {found: null, wanted: 'exists', compare: 'fs.stat(' + filepath + ')'}) - return false - } -} - -test('tree-style', function (t) { - t.plan(12) - common.npm(['install'], {cwd: testNormal}, function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'normal install; result code') - t.is(stderr, '', 'normal install; no errors') - exists(t, modJoin(testNormal, 'modA'), 'normal install; module A') - exists(t, modJoin(testNormal, 'modB'), 'normal install; module B') - exists(t, modJoin(testNormal, 'modC'), 'normal install; module C') - }) - common.npm(['install', '--global-style'], {cwd: testGlobal}, function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'global-style install; result code') - t.is(stderr, '', 'global-style install; no errors') - exists(t, modJoin(testGlobal, 'modA', 'modB'), 'global-style install; module B') - exists(t, modJoin(testGlobal, 'modA', 'modC'), 'global-style install; module C') - }) - common.npm(['install', '--legacy-bundling'], {cwd: testLegacy}, function (err, code, stdout, stderr) { - if (err) throw err - t.is(code, 0, 'legacy-bundling install; result code') - t.is(stderr, '', 'legacy-bundling install; no errors') - exists(t, modJoin(testLegacy, 'modA', 'modB', 'modC'), 'legacy-bundling install; module C') - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/umask-lifecycle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/umask-lifecycle.js deleted file mode 100644 index c4c32336..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/umask-lifecycle.js +++ /dev/null @@ -1,61 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test -var sprintf = require('sprintf-js').sprintf - -var escapeExecPath = require('../../lib/utils/escape-exec-path.js') -var escapeArg = require('../../lib/utils/escape-arg.js') -var common = require('../common-tap.js') -var pkg = path.resolve(__dirname, 'umask-lifecycle') - -var nodeCmd = escapeExecPath(common.nodeBin) -var npmCmd = nodeCmd + ' ' + escapeArg(common.bin) -var umaskScript = npmCmd + ' config get umask && ' + nodeCmd + ' -pe "[process.env.npm_config_umask, process.umask()]"' - -var pj = JSON.stringify({ - name: 'x', - version: '1.2.3', - scripts: { umask: umaskScript } -}, null, 2) + '\n' - -var umask = process.umask() -var expected = [ - '', - '> x@1.2.3 umask ' + path.join(__dirname, 'umask-lifecycle'), - '> ' + umaskScript, - '', - sprintf('%04o', umask), - "[ '" + sprintf('%04o', umask) + "', " + - sprintf('%d', umask) + ' ]', - '' -].join('\n') - -test('setup', function (t) { - rimraf.sync(pkg) - mkdirp.sync(pkg) - fs.writeFileSync(pkg + '/package.json', pj) - t.end() -}) - -test('umask script', function (t) { - common.npm(['run', 'umask'], { - cwd: pkg, - env: { - PATH: process.env.PATH, - Path: process.env.Path, - 'npm_config_loglevel': 'warn' - } - }, function (er, code, sout, serr) { - t.equal(sout, expected) - t.equal(serr, '') - t.end() - }) -}) - -test('clean', function (t) { - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-in-reverse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-in-reverse.js deleted file mode 100644 index 2d8fe2bc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-in-reverse.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict' -var test = require('tap').test -var requireInject = require('require-inject') -var log = require('npmlog') - -/* -The remove actions need to happen in the opposite of their normally defined -order. That is, they need to go shallow -> deep. -*/ - -var removed = [] -var npm = requireInject.installGlobally('../../lib/npm.js', { - '../../lib/install/action/remove.js': function (top, buildpath, pkg, log, next) { - removed.push(pkg.package.name) - next() - } -}) - -test('setup', function (t) { - npm.load(function () { - t.pass('npm loaded') - t.end() - }) -}) - -test('abc', function (t) { - var Installer = require('../../lib/install.js').Installer - var inst = new Installer(__dirname, false, []) - inst.progress = {executeActions: log} - inst.todo = [ - ['remove', {package: {name: 'first'}}], - ['remove', {package: {name: 'second'}}] - ] - inst.executeActions(function () { - t.isDeeply(removed, ['second', 'first']) - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-link-clean.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-link-clean.js deleted file mode 100644 index eccdac8b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-link-clean.js +++ /dev/null @@ -1,117 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') -var existsSync = fs.existsSync || path.existsSync - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.join(__dirname, 'uninstall-link-clean') -var dep = path.join(__dirname, 'dep') -var work = path.join(__dirname, 'uninstall-link-clean-TEST') -var modules = path.join(work, 'node_modules') - -var EXEC_OPTS = { cwd: work } - -var world = 'console.log("hello blrbld")\n' - -var json = { - name: 'package', - version: '0.0.0', - bin: { - hello: './world.js' - }, - dependencies: { - 'dep': 'file:../dep' - } -} - -var pjDep = { - name: 'dep', - version: '0.0.0', - bin: { - hello: './world.js' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - fs.writeFileSync(path.join(pkg, 'world.js'), world) - - mkdirp.sync(dep) - fs.writeFileSync( - path.join(dep, 'package.json'), - JSON.stringify(pjDep, null, 2) - ) - fs.writeFileSync(path.join(dep, 'world.js'), world) - - mkdirp.sync(modules) - process.chdir(work) - - t.end() -}) - -test('installing package with links', function (t) { - common.npm( - [ - '--loglevel', 'silent', - 'install', pkg - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'install ran to completion without error') - t.notOk(code, 'npm install exited with code 0') - - t.ok( - existsSync(path.join(modules, 'package', 'package.json')), - 'package installed' - ) - t.ok(existsSync(path.join(modules, '.bin')), 'binary link directory exists') - t.ok(existsSync(path.join(modules, 'package', 'node_modules', '.bin')), - 'nested binary link directory exists') - - t.end() - } - ) -}) - -test('uninstalling package with links', function (t) { - common.npm( - [ - '--loglevel', 'silent', - 'uninstall', 'package' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'uninstall ran to completion without error') - t.notOk(code, 'npm uninstall exited with code 0') - - t.notOk(existsSync(path.join(modules, 'package')), - 'package directory no longer exists') - t.notOk(existsSync(path.join(modules, 'package', 'node_modules', '.bin')), - 'nested binary link directory no longer exists') - - t.end() - } - ) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(dep) - rimraf.sync(work) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-package.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-package.js deleted file mode 100644 index 549b403c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-package.js +++ /dev/null @@ -1,79 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.join(__dirname, 'uninstall-package') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'uninstall-package', - version: '0.0.0', - dependencies: { - underscore: '~1.3.1', - request: '~0.9.0' - } -} - -test('setup', function (t) { - cleanup() - mkdirp.sync(pkg) - process.chdir(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - t.end() -}) - -test('returns a list of removed items', function (t) { - mr({ port: common.port }, function (er, s) { - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - 'install', '.' - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'install ran without issue') - t.notOk(code, 'install ran without raising error code') - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - 'uninstall', 'underscore', 'request', 'lala' - ], - EXEC_OPTS, - function (err, code, stdout, stderr) { - t.ifError(err, 'uninstall ran without issue') - t.notOk(code, 'uninstall ran without raising error code') - t.has(stdout, /- underscore@1.3.3/, 'underscore uninstalled') - t.has(stdout, /- request@0.9.5/, 'request uninstalled') - - s.close() - t.end() - } - ) - } - ) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-save.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-save.js deleted file mode 100644 index c097659d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/uninstall-save.js +++ /dev/null @@ -1,110 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var server - -var pkg = path.join(__dirname, 'uninstall-save') - -var EXEC_OPTS = { cwd: pkg } - -var json = { - name: 'uninstall-save', - version: '0.0.1' -} - -test('setup', function (t) { - setup() - mr({ port: common.port }, function (er, s) { - t.ifError(er, 'started mock registry') - server = s - t.end() - }) -}) - -test('uninstall --save removes rm-ed package from package.json', function (t) { - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'silent', - '--save-prefix', '^', - '--save', - 'install', 'underscore@latest' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'npm install exited with code 0') - - var p = path.join(pkg, 'node_modules', 'underscore', 'package.json') - t.ok(JSON.parse(fs.readFileSync(p))) - - var pkgJson = JSON.parse(fs.readFileSync( - path.join(pkg, 'package.json'), - 'utf8' - )) - t.deepEqual( - pkgJson.dependencies, - { 'underscore': '^1.5.1' }, - 'got expected save prefix and version of 1.5.1' - ) - - var installed = path.join(pkg, 'node_modules', 'underscore') - rimraf.sync(installed) - - common.npm( - [ - '--registry', common.registry, - '--loglevel', 'debug', - '--save', - 'uninstall', 'underscore' - ], - EXEC_OPTS, - function (err, code) { - t.ifError(err, 'npm uninstall ran without issue') - - var pkgJson = JSON.parse(fs.readFileSync( - path.join(pkg, 'package.json'), - 'utf8' - )) - - t.deepEqual( - pkgJson.dependencies, - { }, - 'dependency removed as expected' - ) - - t.end() - } - ) - } - ) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(path.resolve(pkg, 'node_modules')) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-child-path.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-child-path.js deleted file mode 100644 index 902e8f5e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-child-path.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict' -var test = require('tap').test -var childPath = require('../../lib/utils/child-path.js') -var path = require('path') - -test('childPath', function (t) { - t.is( - path.resolve(childPath('/path/to', {name: 'abc'})), - path.resolve('/path/to/node_modules/abc'), - 'basic use') - t.is( - path.resolve(childPath('/path/to', {package: {name: '@zed/abc'}})), - path.resolve('/path/to/node_modules/@zed/abc'), - 'scoped use') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-deps-removeObsoleteDep.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-deps-removeObsoleteDep.js deleted file mode 100644 index 2e34fd73..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-deps-removeObsoleteDep.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict' -var test = require('tap').test -var requireInject = require('require-inject') - -// we're just mocking to avoid having to call `npm.load` -var deps = requireInject('../../lib/install/deps.js', { - '../../lib/npm.js': { - config: { - get: function () { return 'mock' } - } - } -}) - -var removeObsoleteDep = deps._removeObsoleteDep - -test('removeObsoleteDep', function (t) { - var child1 = {requiredBy: []} - var test1 = { - removed: true, - requires: [ child1 ] - } - removeObsoleteDep(test1) - t.is(child1.removed, undefined, 'no recursion on deps flagged as removed already') - - var child2 = {requiredBy: []} - var test2 = { - requires: [ child2 ] - } - child2.requiredBy.push(test2) - removeObsoleteDep(test2) - t.is(child2.removed, true, 'required by no other modules, removing') - - var child3 = {requiredBy: ['NOTEMPTY']} - var test3 = { - requires: [ child3 ] - } - child3.requiredBy.push(test3) - removeObsoleteDep(test3) - t.is(child3.removed, undefined, 'required by other modules, keeping') - t.done() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-deps-replaceModule.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-deps-replaceModule.js deleted file mode 100644 index d38aa998..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-deps-replaceModule.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict' -var test = require('tap').test -var npm = require('../../lib/npm') - -test('setup', function (t) { - npm.load({}, t.done) -}) - -test('replaceModule', function (t) { - var replaceModule = require('../../lib/install/deps')._replaceModule - var mods = [] - for (var ii = 0; ii < 10; ++ii) { - mods.push({package: {name: ii}}) - } - - var test = {} - test.A = mods.slice(0, 4) - replaceModule(test, 'A', mods[2]) - t.isDeeply(test.A, mods.slice(0, 4), 'replacing an existing module leaves the order alone') - replaceModule(test, 'A', mods[7]) - t.isDeeply(test.A, mods.slice(0, 4).concat(mods[7]), 'replacing a new module appends') - - test.B = mods.slice(0, 4) - var replacement = {package: {name: 1}, isReplacement: true} - replaceModule(test, 'B', replacement) - t.isDeeply(test.B, [mods[0], replacement, mods[2], mods[3]], 'replacing existing module swaps out for the new version') - - replaceModule(test, 'C', mods[7]) - t.isDeeply(test.C, [mods[7]], 'replacing when the key does not exist yet, causes its creation') - t.end() -}) - -test('replaceModuleName', function (t) { - var replaceModuleName = require('../../lib/install/deps')._replaceModuleName - var mods = [] - for (var ii = 0; ii < 10; ++ii) { - mods.push('pkg' + ii) - } - - var test = {} - test.A = mods.slice(0, 4) - replaceModuleName(test, 'A', mods[2]) - t.isDeeply(test.A, mods.slice(0, 4), 'replacing an existing module leaves the order alone') - replaceModuleName(test, 'A', mods[7]) - t.isDeeply(test.A, mods.slice(0, 4).concat(mods[7]), 'replacing a new module appends') - - replaceModuleName(test, 'C', mods[7]) - t.isDeeply(test.C, [mods[7]], 'replacing when the key does not exist yet, causes its creation') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-gentlyrm.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-gentlyrm.js deleted file mode 100644 index 8ea0a11f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-gentlyrm.js +++ /dev/null @@ -1,387 +0,0 @@ -'use strict' -var test = require('tap').test -var requireInject = require('require-inject') -var path = require('path') - -function error (code) { - var er = new Error() - er.code = code - return er -} - -function platformPath (unixPath) { - if (unixPath[0] === '/') { - return path.resolve(unixPath) - } else { - return path.join.apply(path, unixPath.split('/')) - } -} - -function makeObjUsePlatformPaths (obj) { - if (typeof obj === 'string') { - return platformPath(obj) - } else if (obj == null || typeof obj !== 'object') { - return obj - } else { - Object.keys(obj).forEach(function (key) { - var newKey = platformPath(key) - obj[key] = makeObjUsePlatformPaths(obj[key]) - if (newKey !== key) { - obj[newKey] = obj[key] - delete obj[key] - } - }) - } - return obj -} - -function makeArgsUsePlatformPaths (fn) { - return function () { - var args = Array.prototype.slice.call(arguments) - return fn.apply(null, makeObjUsePlatformPaths(args)) - } -} - -function pathIs (t, arg1, arg2, msg) { - t.is(arg1, makeObjUsePlatformPaths(arg2), msg) -} - -function pathIsDeeply (t, arg1, arg2, msg) { - t.isDeeply(arg1, makeObjUsePlatformPaths(arg2), msg) -} - -function mockWith (fixture) { - makeObjUsePlatformPaths(fixture) - return { - '../../lib/npm.js': {}, - 'graceful-fs': { - lstat: function (path, cb) { - path = platformPath(path) - var entry = fixture[path] - if (!entry) return cb(error('ENOENT')) - cb(null, { - isDirectory: function () { return entry.type === 'directory' }, - isSymbolicLink: function () { return entry.type === 'symlink' }, - isFile: function () { return entry.type === 'file' || entry.type === 'cmdshim' || entry.type === 'error' } - }) - }, - readlink: function (path, cb) { - path = platformPath(path) - var entry = fixture[path] - if (!entry) return cb(error('ENOENT')) - if (entry.type !== 'symlink') return cb(error('EINVAL')) - cb(null, entry.dest) - } - }, - 'read-cmd-shim': function (path, cb) { - path = platformPath(path) - var entry = fixture[path] - if (!entry) return cb(error('ENOENT')) - if (entry.type === 'directory') return cb(error('EISDIR')) - if (entry.type === 'error') return cb(error(entry.code)) - if (entry.type !== 'cmdshim') return cb(error('ENOTASHIM')) - cb(null, entry.dest) - } - } -} - -test('readLinkOrShim', function (t) { - t.plan(10) - - var mocks = mockWith({ - '/path/to/directory': { type: 'directory' }, - '/path/to/link': { type: 'symlink', dest: '../to/file' }, - '/path/to/file': { type: 'file' }, - '/path/to/cmdshim': { type: 'cmdshim', dest: '../to/file' }, - '/path/to/invalid': { type: 'error', code: 'EINVAL' } - }) - - var gentlyRm = requireInject('../../lib/utils/gently-rm.js', mocks) - var readLinkOrShim = makeArgsUsePlatformPaths(gentlyRm._readLinkOrShim) - - readLinkOrShim('/path/to/nowhere', function (er, path) { - t.is(er && er.code, 'ENOENT', 'missing files are errors') - }) - readLinkOrShim('/path/to/invalid', function (er, path) { - t.is(er && er.code, 'EINVAL', 'other errors pass through too') - }) - readLinkOrShim('/path/to/directory', function (er, path) { - t.ifError(er, "reading dirs isn't an error") - pathIs(t, path, null, 'reading non links/cmdshims gives us null') - }) - readLinkOrShim('/path/to/file', function (er, path) { - t.ifError(er, "reading non-cmdshim files isn't an error") - pathIs(t, path, null, 'reading non links/cmdshims gives us null') - }) - readLinkOrShim('/path/to/link', function (er, path) { - t.ifError(er, "reading links isn't an error") - pathIs(t, path, '../to/file', 'reading links works') - }) - readLinkOrShim('/path/to/cmdshim', function (er, path) { - t.ifError(er, "reading cmdshims isn't an error") - pathIs(t, path, '../to/file', 'reading cmdshims works') - }) - t.done() -}) - -test('resolveSymlink', function (t) { - t.plan(9) - - var mocks = mockWith({ - '/path/to/directory': { type: 'directory' }, - '/path/to/link': { type: 'symlink', dest: '../to/file' }, - '/path/to/file': { type: 'file' }, - '/path/to/cmdshim': { type: 'cmdshim', dest: '../to/file' } - }) - - var gentlyRm = requireInject('../../lib/utils/gently-rm.js', mocks) - var resolveSymlink = makeArgsUsePlatformPaths(gentlyRm._resolveSymlink) - - resolveSymlink('/path/to/nowhere', function (er, path) { - t.is(er && er.code, 'ENOENT', 'missing files are errors') - }) - - // these aren't symlinks so we get back what we passed in - resolveSymlink('/path/to/directory', function (er, path) { - t.ifError(er, "reading dirs isn't an error") - pathIs(t, path, '/path/to/directory', 'reading non links/cmdshims gives us path we passed in') - }) - resolveSymlink('/path/to/file', function (er, path) { - t.ifError(er, "reading non-cmdshim files isn't an error") - pathIs(t, path, '/path/to/file', 'reading non links/cmdshims gives us the path we passed in') - }) - - // these are symlinks so the resolved version is platform specific - resolveSymlink('/path/to/link', function (er, path) { - t.ifError(er, "reading links isn't an error") - pathIs(t, path, '/path/to/file', 'reading links works') - }) - resolveSymlink('/path/to/cmdshim', function (er, path) { - t.ifError(er, "reading cmdshims isn't an error") - pathIs(t, path, '/path/to/file', 'reading cmdshims works') - }) - t.done() -}) - -test('readAllLinks', function (t) { - t.plan(16) - - var mocks = mockWith({ - '/path/to/directory': { type: 'directory' }, - '/path/to/link': { type: 'symlink', dest: '../to/file' }, - '/path/to/file': { type: 'file' }, - '/path/to/cmdshim': { type: 'cmdshim', dest: '../to/file' }, - '/path/to/linktolink': { type: 'symlink', dest: 'link' }, - '/path/to/linktolink^2': { type: 'symlink', dest: 'linktolink' }, - '/path/to/linktocmdshim': { type: 'symlink', dest: 'cmdshim' }, - '/path/to/linktobad': { type: 'symlink', dest: '/does/not/exist' } - }) - - var gentlyRm = requireInject('../../lib/utils/gently-rm.js', mocks) - var readAllLinks = makeArgsUsePlatformPaths(gentlyRm._readAllLinks) - - readAllLinks('/path/to/nowhere', function (er, path) { - t.is(er && er.code, 'ENOENT', 'missing files are errors') - }) - readAllLinks('/path/to/directory', function (er, path) { - t.ifError(er, "reading dirs isn't an error") - pathIsDeeply(t, path, ['/path/to/directory'], 'reading non links/cmdshims gives us path we passed in') - }) - readAllLinks('/path/to/file', function (er, path) { - t.ifError(er, "reading non-cmdshim files isn't an error") - pathIsDeeply(t, path, ['/path/to/file'], 'reading non links/cmdshims gives us the path we passed in') - }) - readAllLinks('/path/to/linktobad', function (er, path) { - t.is(er && er.code, 'ENOENT', 'links to missing files are errors') - }) - readAllLinks('/path/to/link', function (er, results) { - t.ifError(er, "reading links isn't an error") - pathIsDeeply(t, results, ['/path/to/link', '/path/to/file'], 'reading links works') - }) - readAllLinks('/path/to/cmdshim', function (er, path) { - t.ifError(er, "reading cmdshims isn't an error") - pathIsDeeply(t, path, ['/path/to/cmdshim', '/path/to/file'], 'reading cmdshims works') - }) - readAllLinks('/path/to/linktolink', function (er, path) { - t.ifError(er, "reading link to link isn't an error") - pathIsDeeply(t, path, ['/path/to/linktolink', '/path/to/link', '/path/to/file'], 'reading link to link works') - }) - readAllLinks('/path/to/linktolink^2', function (er, path) { - t.ifError(er, "reading link to link to link isn't an error") - pathIsDeeply(t, path, ['/path/to/linktolink^2', '/path/to/linktolink', '/path/to/link', '/path/to/file'], 'reading link to link to link works') - }) - readAllLinks('/path/to/linktocmdshim', function (er, path) { - t.ifError(er, "reading link to cmdshim isn't an error") - pathIsDeeply(t, path, ['/path/to/linktocmdshim', '/path/to/cmdshim', '/path/to/file'], 'reading link to cmdshim works') - }) - t.done() -}) - -test('areAnyInsideAny', function (t) { - var gentlyRm = requireInject('../../lib/utils/gently-rm.js', mockWith({})) - var areAnyInsideAny = makeArgsUsePlatformPaths(gentlyRm._areAnyInsideAny) - - var noneOneToOne = areAnyInsideAny(['/abc'], ['/xyz']) - t.is(noneOneToOne, false, 'none inside: one to one') - var noneOneToMany = areAnyInsideAny(['/abc'], ['/rst', '/uvw', '/xyz']) - t.is(noneOneToMany, false, 'none inside: one to many') - var noneManyToOne = areAnyInsideAny(['/abc', '/def', '/ghi'], ['/xyz']) - t.is(noneManyToOne, false, 'none inside: many to one') - var noneManyToMany = areAnyInsideAny(['/abc', '/def', '/ghi'], ['/rst', '/uvw', '/xyz']) - t.is(noneManyToMany, false, 'none inside: many to many') - - var oneToOne = areAnyInsideAny(['/one/toOne'], ['/one']) - pathIsDeeply(t, oneToOne, {target: '/one/toOne', path: '/one'}, 'first: one to one') - - var firstOneToMany = areAnyInsideAny(['/abc/def'], ['/abc', '/def', '/ghi']) - pathIsDeeply(t, firstOneToMany, {target: '/abc/def', path: '/abc'}, 'first: one to many') - var secondOneToMany = areAnyInsideAny(['/def/ghi'], ['/abc', '/def', '/ghi']) - pathIsDeeply(t, secondOneToMany, {target: '/def/ghi', path: '/def'}, 'second: one to many') - var lastOneToMany = areAnyInsideAny(['/ghi/jkl'], ['/abc', '/def', '/ghi']) - pathIsDeeply(t, lastOneToMany, {target: '/ghi/jkl', path: '/ghi'}, 'last: one to many') - - var firstManyToOne = areAnyInsideAny(['/abc/def', '/uvw/def', '/xyz/def'], ['/abc']) - pathIsDeeply(t, firstManyToOne, {target: '/abc/def', path: '/abc'}, 'first: many to one') - var secondManyToOne = areAnyInsideAny(['/abc/def', '/uvw/def', '/xyz/def'], ['/uvw']) - pathIsDeeply(t, secondManyToOne, {target: '/uvw/def', path: '/uvw'}, 'second: many to one') - var lastManyToOne = areAnyInsideAny(['/abc/def', '/uvw/def', '/xyz/def'], ['/xyz']) - pathIsDeeply(t, lastManyToOne, {target: '/xyz/def', path: '/xyz'}, 'last: many to one') - - var firstToFirst = areAnyInsideAny(['/abc/def', '/uvw/def', '/xyz/def'], ['/abc', '/uvw', '/xyz']) - pathIsDeeply(t, firstToFirst, {target: '/abc/def', path: '/abc'}, 'first to first: many to many') - var firstToSecond = areAnyInsideAny(['/abc/def', '/uvw/def', '/xyz/def'], ['/nope', '/abc', '/xyz']) - pathIsDeeply(t, firstToSecond, {target: '/abc/def', path: '/abc'}, 'first to second: many to many') - var firstToLast = areAnyInsideAny(['/abc/def', '/uvw/def', '/xyz/def'], ['/nope', '/nooo', '/abc']) - pathIsDeeply(t, firstToLast, {target: '/abc/def', path: '/abc'}, 'first to last: many to many') - - var secondToFirst = areAnyInsideAny(['/!!!', '/abc/def', '/xyz/def'], ['/abc', '/uvw', '/xyz']) - pathIsDeeply(t, secondToFirst, {target: '/abc/def', path: '/abc'}, 'second to first: many to many') - var secondToSecond = areAnyInsideAny(['/!!!', '/abc/def', '/xyz/def'], ['/nope', '/abc', '/xyz']) - pathIsDeeply(t, secondToSecond, {target: '/abc/def', path: '/abc'}, 'second to second: many to many') - var secondToLast = areAnyInsideAny(['/!!!', '/abc/def', '/uvw/def'], ['/nope', '/nooo', '/abc']) - pathIsDeeply(t, secondToLast, {target: '/abc/def', path: '/abc'}, 'second to last: many to many') - - var lastToFirst = areAnyInsideAny(['/!!!', '/???', '/abc/def'], ['/abc', '/uvw', '/xyz']) - pathIsDeeply(t, lastToFirst, {target: '/abc/def', path: '/abc'}, 'last to first: many to many') - var lastToSecond = areAnyInsideAny(['/!!!', '/???', '/abc/def'], ['/nope', '/abc', '/xyz']) - pathIsDeeply(t, lastToSecond, {target: '/abc/def', path: '/abc'}, 'last to second: many to many') - var lastToLast = areAnyInsideAny(['/!!!', '/???', '/abc/def'], ['/nope', '/nooo', '/abc']) - pathIsDeeply(t, lastToLast, {target: '/abc/def', path: '/abc'}, 'last to last: many to many') - - t.done() -}) - -test('isEverInside', function (t) { - t.plan(15) - - var mocks = mockWith({ - '/path/other/link': { type: 'symlink', dest: '../to/file' }, - '/path/to/file': { type: 'file' }, - '/path/to': { type: 'directory' }, - '/linkpath': { type: 'symlink', dest: '../path/to' }, - '/path/to/invalid': { type: 'error', code: 'EINVAL' } - }) - - var gentlyRm = requireInject('../../lib/utils/gently-rm.js', mocks) - var isEverInside = makeArgsUsePlatformPaths(gentlyRm._isEverInside) - - isEverInside('/path/to/file', ['/path/to', '/path/to/invalid'], function (er, inside) { - t.ifError(er) - pathIsDeeply(t, inside, {target: '/path/to/file', path: '/path/to'}, 'bad paths are ignored if something matches') - }) - - isEverInside('/path/to/invalid', ['/path/to/invalid'], function (er, inside) { - t.is(er && er.code, 'EINVAL', 'errors bubble out') - }) - - isEverInside('/path/to/file', ['/ten'], function (er, inside) { - t.ifError(er) - t.is(inside, false, 'not inside') - }) - isEverInside('/path/to/nowhere', ['/ten'], function (er, inside) { - t.ifError(er) - t.is(inside, false, 'missing target') - }) - - isEverInside('/path/to/file', ['/path/to'], function (er, inside) { - t.ifError(er) - pathIsDeeply(t, inside, {target: '/path/to/file', path: '/path/to'}, 'plain file in plain path') - }) - isEverInside('/path/other/link', ['/path/to'], function (er, inside) { - t.ifError(er) - pathIsDeeply(t, inside, {target: '/path/to/file', path: '/path/to'}, 'link in plain path') - }) - - isEverInside('/path/to/file', ['/linkpath'], function (er, inside) { - t.ifError(er) - pathIsDeeply(t, inside, {target: '/path/to/file', path: '/path/to'}, 'plain file in link path') - }) - isEverInside('/path/other/link', ['/linkpath'], function (er, inside) { - t.ifError(er) - pathIsDeeply(t, inside, {target: '/path/to/file', path: '/path/to'}, 'link in link path') - }) - - t.done() -}) - -test('isSafeToRm', function (t) { - var gentlyRm = requireInject('../../lib/utils/gently-rm.js', mockWith({})) - var isSafeToRm = makeArgsUsePlatformPaths(gentlyRm._isSafeToRm) - - t.plan(12) - - function testIsSafeToRm (t, parent, target, shouldPath, shouldBase, msg) { - isSafeToRm(parent, target, function (er, path, base) { - t.ifError(er, msg + ' no error') - pathIs(t, path, shouldPath, msg + ' path') - pathIs(t, base, shouldBase, msg + ' base') - }) - } - - function testNotIsSafeToRm (t, parent, target, msg) { - isSafeToRm(parent, target, function (er) { - t.is(er && er.code, 'EEXIST', msg + ' error') - }) - } - - var unmanagedParent = {path: '/foo', managed: false} - var managedParent = {path: '/foo', managed: true} - var targetInParent = { - path: '/foo/bar/baz', - inParent: { - target: '/foo/bar/baz', - path: '/foo' - } - } - var targetLinkInParent = { - path: '/foo/bar/baz', - inParent: { - target: '/other/area/baz', - path: '/other/area' - } - } - var targetManagedLinkNotInParent = { - path: '/foo/bar/baz', - managed: true, - inParent: false, - symlink: '/foo/bar/bark' - } - var targetUnmanagedLink = { - path: '/not/managed/baz', - managed: false, - inParent: false, - symlink: '/not/managed/foo' - } - var targetUnmanagedFile = { - path: '/not/managed/baz', - managed: false, - inParent: false, - symlink: false - } - testNotIsSafeToRm(t, unmanagedParent, targetInParent, 'unmanaged parent') - testIsSafeToRm(t, managedParent, targetInParent, '/foo/bar/baz', '/foo', 'path is in parent') - testIsSafeToRm(t, managedParent, targetLinkInParent, '/foo/bar/baz', '/foo/bar', 'path links to parent') - testIsSafeToRm(t, managedParent, targetManagedLinkNotInParent, undefined, undefined, 'managed but not owned by package') - testNotIsSafeToRm(t, managedParent, targetUnmanagedLink, 'unmanaged link') - testNotIsSafeToRm(t, managedParent, targetUnmanagedFile, 'unmanaged file') -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-link.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-link.js deleted file mode 100644 index e4b90940..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-link.js +++ /dev/null @@ -1,281 +0,0 @@ -'use strict' -var util = require('util') -var test = require('tap').test -var requireInject = require('require-inject') -var dezalgo = require('dezalgo') -var mkdirp = require('mkdirp') -var path = require('path') - -test('gently/force', function (t) { - t.plan(5) - - linkOk(t, 'gently=true, force=false, works', { - // args - from: 'wibble', - to: '/foo/bar/baz', - gently: true, - abs: true, - force: false, - - // expect - rm: {'/foo/bar/baz': {gently: true}}, - mkdir: {'/foo/bar': true}, - lstat: {'/foo/bar/wibble': {isLink: false}}, - stat: {'/foo/bar/wibble': true}, - symlink: {'/foo/bar/wibble': {'/foo/bar/baz': 'junction'}}, - readlink: {} - }) - - linkNotOk(t, 'gently=true, force=false, does not work', { - // args - from: 'wibble', - to: '/foo/bar/baz', - gently: true, - abs: true, - force: false, - - // expect - rm: {'/foo/bar/baz': {gently: false}}, - mkdir: {'/foo/bar': true}, - lstat: {'/foo/bar/wibble': {isLink: false}}, - stat: {'/foo/bar/wibble': true}, - symlink: {'/foo/bar/wibble': {'/foo/bar/baz': 'junction'}}, - readlink: {} - }) - - linkOk(t, 'gently=false, force=false, aok', { - // args - from: 'wibble', - to: '/foo/bar/baz', - gently: false, - abs: true, - force: false, - - // expect - rm: {'/foo/bar/baz': {gently: false}}, - mkdir: {'/foo/bar': true}, - lstat: {'/foo/bar/wibble': {isLink: false}}, - stat: {'/foo/bar/wibble': true}, - symlink: {'/foo/bar/wibble': {'/foo/bar/baz': 'junction'}}, - readlink: {} - }) - - linkOk(t, 'gently=true, force=true, aok', { - // args - from: 'wibble', - to: '/foo/bar/baz', - gently: true, - abs: true, - force: true, - - // expect - rm: {'/foo/bar/baz': {gently: false}}, - mkdir: {'/foo/bar': true}, - lstat: {'/foo/bar/wibble': {isLink: false}}, - stat: {'/foo/bar/wibble': true}, - symlink: {'/foo/bar/wibble': {'/foo/bar/baz': 'junction'}}, - readlink: {} - }) - - linkOk(t, 'gently=false, force=true, aok', { - // args - from: 'wibble', - to: '/foo/bar/baz', - gently: false, - abs: true, - force: true, - - // expect - rm: {'/foo/bar/baz': {gently: false}}, - mkdir: {'/foo/bar': true}, - lstat: {'/foo/bar/wibble': {isLink: false}}, - stat: {'/foo/bar/wibble': true}, - symlink: {'/foo/bar/wibble': {'/foo/bar/baz': 'junction'}}, - readlink: {} - }) -}) - -test('abs, noabs', function (t) { - t.plan(4) - - linkOk(t, 'abs', { - // args - from: 'wibble', - to: '/foo/bar/baz', - gently: true, - abs: true, - force: false, - - // expect - rm: {'/foo/bar/baz': {gently: true}}, - mkdir: {'/foo/bar': true}, - lstat: {'/foo/bar/wibble': {isLink: false}}, - stat: {'/foo/bar/wibble': true}, - symlink: {'/foo/bar/wibble': {'/foo/bar/baz': 'junction'}}, - readlink: {} - }) - - linkOk(t, 'relative', { - // args - from: 'wibble', - to: '/foo/bar/baz', - gently: true, - abs: false, - force: false, - - // expect - rm: {'/foo/bar/baz': {gently: true}}, - mkdir: {'/foo/bar': true}, - lstat: {'/foo/bar/wibble': {isLink: false}}, - stat: {'/foo/bar/wibble': true}, - symlink: {'wibble': {'/foo/bar/baz': 'junction'}}, - readlink: {} - }) - - linkOk(t, 'relative ..', { - // args - from: '../wibble/bark/blump', - to: '/foo/bar/baz', - gently: true, - abs: false, - force: false, - - // expect - rm: {'/foo/bar/baz': {gently: true}}, - mkdir: {'/foo/bar': true}, - lstat: {'/foo/wibble/bark/blump': {isLink: false}}, - stat: {'/foo/wibble/bark/blump': true}, - symlink: {'../wibble/bark/blump': {'/foo/bar/baz': 'junction'}}, - readlink: {} - }) - - linkOk(t, 'relative .. deep', { - // args - from: 'zib/zap/../../../wibble/bark/blump', - to: '/foo/bar/baz', - gently: true, - abs: false, - force: false, - - // expect - rm: {'/foo/bar/baz': {gently: true}}, - mkdir: {'/foo/bar': true}, - lstat: {'/foo/wibble/bark/blump': {isLink: false}}, - stat: {'/foo/wibble/bark/blump': true}, - symlink: {'../wibble/bark/blump': {'/foo/bar/baz': 'junction'}}, - readlink: {} - }) -}) - -function linkOk (t, msg, opts) { - testLink(opts, function (err) { - t.ifError(err, msg) - }) -} - -function linkNotOk (t, msg, opts) { - testLink(opts, function (err) { - t.ok(err, msg) - }) -} - -function platformPath (unixPath) { - if (unixPath[0] === '/') { - return path.resolve(unixPath) - } else { - return path.join.apply(path, unixPath.split('/')) - } -} - -function platformerize (obj) { - Object.keys(obj).forEach(function (key) { - var newKey = platformPath(key) - if (typeof obj[key] === 'object') { - platformerize(obj[key]) - } else if (typeof obj[key] === 'string') { - obj[key] = platformPath(obj[key]) - } - if (newKey !== key) { - obj[newKey] = obj[key] - delete obj[key] - } - }) -} - -function testLink (opts, cb) { - var mkdirpMock = dezalgo(function (dir, cb) { - if (opts.mkdir[dir]) { - cb() - } else { - cb(new Error('mkdirp failed: ' + util.inspect(dir))) - } - }) - // sync version used by istanbul for test coverage - // we shouldn't have to do this ;.; - // require-inject and/or instanbul will need patching - mkdirpMock.sync = mkdirp.sync - - // convert any paths in our opts into platform specific paths, for windows support. - platformerize(opts) - - var link = requireInject('../../lib/utils/link.js', { - '../../lib/npm.js': { - config: { - get: function (name) { - if (name !== 'force') return new Error('unknown config key: ' + name) - return opts.force - } - } - }, - '../../lib/utils/gently-rm.js': dezalgo(function (toRemove, gently, cb) { - if (opts.rm[toRemove] && opts.rm[toRemove].gently === gently) { - cb() - } else { - cb(new Error('Removing toRemove: ' + util.inspect(toRemove) + - ' gently: ' + util.inspect(gently) + - ' not allowed: ' + util.inspect(opts.rm))) - } - }), - 'mkdirp': mkdirpMock, - 'graceful-fs': { - 'stat': dezalgo(function (file, cb) { - if (opts.stat[file]) { - cb(null, {}) - } else { - cb(new Error('stat failed for: ' + util.inspect(file))) - } - }), - 'lstat': dezalgo(function (file, cb) { - if (opts.lstat[file]) { - var linkStat = opts.lstat[file] - cb(null, { - isSymbolicLink: function () { - return linkStat.isLink - } - }) - } else { - cb(new Error('lstat failed for: ' + util.inspect(file))) - } - }), - 'symlink': dezalgo(function (from, to, type, cb) { - if (!cb) { - cb = type - type = null - } - if (opts.symlink[from] && opts.symlink[from][to] === type) { - cb() - } else { - cb(new Error('symlink failed from: ' + util.inspect(from) + ' to: ' + util.inspect(to) + ' type: ' + util.inspect(type))) - } - }), - 'readlink': function (file, cb) { - if (opts.readlink[file]) { - cb() - } else { - cb(new Error('readlink failed for: ' + util.inspect(file))) - } - } - } - }) - link(opts.from, opts.to, opts.gently, opts.abs, cb) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-module-name.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-module-name.js deleted file mode 100644 index 59d4b44f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-module-name.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict' -var test = require('tap').test -var moduleName = require('../../lib/utils/module-name.js') - -test('pathToPackageName', function (t) { - var pathToPackageName = moduleName.test.pathToPackageName - t.is(pathToPackageName('/foo/bar/baz/bark'), 'bark', 'simple module name') - t.is(pathToPackageName('/foo/bar/@baz/bark'), '@baz/bark', 'scoped module name') - t.is(pathToPackageName('/foo'), 'foo', 'module at top') - t.is(pathToPackageName('/@foo'), '@foo', 'invalid module at top') - t.is(pathToPackageName('/'), '', 'root, empty result') - t.is(pathToPackageName(''), '', 'empty, empty') - t.is(pathToPackageName(undefined), '', 'undefined is empty') - t.is(pathToPackageName(null), '', 'null is empty') - t.done() -}) - -test('isNotEmpty', function (t) { - var isNotEmpty = moduleName.test.isNotEmpty - t.is(isNotEmpty('abc'), true, 'string is not empty') - t.is(isNotEmpty(''), false, 'empty string is empty') - t.is(isNotEmpty(null), false, 'null is empty') - t.is(isNotEmpty(undefined), false, 'undefined is empty') - t.is(isNotEmpty(0), true, 'zero is not empty') - t.is(isNotEmpty(true), true, 'true is not empty') - t.is(isNotEmpty([]), true, 'empty array is not empty') - t.is(isNotEmpty({}), true, 'object is not empty') - t.done() -}) - -test('moduleName', function (t) { - t.is(moduleName({package: {name: 'foo'}}), 'foo', 'package named') - t.is(moduleName({name: 'foo'}), 'foo', 'package named, no tree') - t.is(moduleName({path: '/foo/bar'}), 'bar', 'path named') - t.is(moduleName({}), '!invalid#1', 'no named') - t.is(moduleName({path: '/'}), '!invalid#2', 'invalid named') - var obj = {} - t.is(moduleName(obj), moduleName(obj), 'once computed, an invalid module name will not change') - t.done() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-package-id.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-package-id.js deleted file mode 100644 index 19590d82..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unit-package-id.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict' -var test = require('tap').test -var packageId = require('../../lib/utils/package-id.js') - -test('packageId', function (t) { - t.is(packageId({package: {_id: 'abc@123'}}), 'abc@123', 'basic') - t.is(packageId({_id: 'abc@123'}), 'abc@123', 'basic no tree') - t.is(packageId({package: {name: 'abc', version: '123'}}), 'abc@123', 'computed') - t.is(packageId({package: {_id: '@', name: 'abc', version: '123'}}), 'abc@123', 'computed, ignore invalid id') - t.is(packageId({package: {name: 'abc'}}), 'abc', 'no version') - t.is(packageId({package: {version: '123'}}), '!invalid#1@123', 'version, no name') - t.is(packageId({package: {version: '123'}, path: '/path/to/abc'}), 'abc@123', 'version path-name') - t.is(packageId({package: {version: '123'}, path: '/path/@to/abc'}), '@to/abc@123', 'version scoped-path-name') - t.is(packageId({path: '/path/to/abc'}), 'abc', 'path name, no version') - t.is(packageId({}), '!invalid#2', 'nothing') - t.done() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unpack-foreign-tarball.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unpack-foreign-tarball.js deleted file mode 100644 index d128e94d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unpack-foreign-tarball.js +++ /dev/null @@ -1,87 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var test = require('tap').test -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') - -var common = require('../common-tap.js') - -var fixtures = path.resolve(__dirname, '..', 'fixtures') - -var pkg = path.resolve(__dirname, 'unpack-foreign-tarball') -var nm = path.resolve(pkg, 'node_modules') -var target = path.resolve(nm, 'npm-test-gitignore') -var cache = path.resolve(pkg, 'cache') -var tmp = path.resolve(pkg, 'tmp') - -var EXEC_OPTS = { - env: { - 'npm_config_cache': cache, - 'npm_config_tmp': tmp - }, - cwd: pkg -} - -function verify (t, files, err, code) { - if (code) { - t.fail('exited with failure: ' + code) - return t.end() - } - var actual = fs.readdirSync(target).sort() - var expect = files.concat(['.npmignore', 'package.json']).sort() - t.same(actual, expect) - t.end() -} - -test('setup', function (t) { - setup() - t.comment('test for https://github.com/npm/npm/issues/5658') - t.end() -}) - -test('npmignore only', function (t) { - var file = path.resolve(fixtures, 'npmignore.tgz') - common.npm(['install', file], EXEC_OPTS, verify.bind(null, t, ['foo'])) -}) - -test('gitignore only', function (t) { - setup() - var file = path.resolve(fixtures, 'gitignore.tgz') - common.npm(['install', file], EXEC_OPTS, verify.bind(null, t, ['foo'])) -}) - -test('gitignore and npmignore', function (t) { - setup() - var file = path.resolve(fixtures, 'gitignore-and-npmignore.tgz') - common.npm(['install', file], EXEC_OPTS, verify.bind(null, t, ['foo', 'bar'])) -}) - -test('gitignore and npmignore, not gzipped 1/2', function (t) { - setup() - var file = path.resolve(fixtures, 'gitignore-and-npmignore.tar') - common.npm(['install', file], EXEC_OPTS, verify.bind(null, t, ['foo', 'bar'])) -}) - -test('gitignore and npmignore, not gzipped 2/2', function (t) { - setup() - var file = path.resolve(fixtures, 'gitignore-and-npmignore-2.tar') - common.npm(['install', file], EXEC_OPTS, verify.bind(null, t, ['foo', 'bar'])) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(nm) - mkdirp.sync(tmp) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unpublish-config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unpublish-config.js deleted file mode 100644 index 92a0c731..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/unpublish-config.js +++ /dev/null @@ -1,82 +0,0 @@ -var fs = require('graceful-fs') -var http = require('http') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var pkg = path.join(__dirname, 'npm-test-unpublish-config') -var fixturePath = path.join(pkg, 'fixture_npmrc') - -var common = require('../common-tap.js') - -var json = { - name: 'npm-test-unpublish-config', - version: '1.2.3', - publishConfig: { registry: common.registry } -} - -test('setup', function (t) { - mkdirp.sync(pkg) - - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json), 'utf8' - ) - fs.writeFileSync( - fixturePath, - '//localhost:1337/:_authToken = beeeeeeeeeeeeef\n' + - 'registry = http://lvh.me:4321/registry/path\n' - ) - - t.end() -}) - -test('cursory test of unpublishing with config', function (t) { - var child - t.plan(4) - http.createServer(function (req, res) { - t.pass('got request on the fakey fake registry') - this.close() - res.statusCode = 500 - res.end(JSON.stringify({ - error: 'shh no tears, only dreams now' - })) - child.kill('SIGINT') - }).listen(common.port, function () { - t.pass('server is listening') - - child = common.npm( - [ - '--userconfig', fixturePath, - '--loglevel', 'silent', - '--force', - 'unpublish' - ], - { - cwd: pkg, - stdio: 'inherit', - env: { - 'npm_config_cache_lock_stale': 1000, - 'npm_config_cache_lock_wait': 1000, - HOME: process.env.HOME, - Path: process.env.PATH, - PATH: process.env.PATH, - USERPROFILE: osenv.home() - } - }, - function (err, code) { - t.ifError(err, 'publish command finished successfully') - t.notOk(code, 'npm install exited with code 0') - } - ) - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-examples.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-examples.js deleted file mode 100644 index 54844789..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-examples.js +++ /dev/null @@ -1,227 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var path = require('path') -var mr = require('npm-registry-mock') - -var osenv = require('osenv') - -var requireInject = require('require-inject') - -var PKG_DIR = path.resolve(__dirname, 'update-examples') -var CACHE_DIR = path.resolve(PKG_DIR, 'cache') - -// ** constant templates for mocks ** -var DEFAULT_PKG = { - 'name': 'update-examples', - 'version': '1.2.3', - 'dependencies': { - 'dep1': '*' - } -} - -var DEP_PKG = { - name: 'dep1', - version: '1.1.1', - _from: '^1.1.1' -} - -var INSTALLED = { - path: '/mock/root', - realpath: '/mock/root', - isLink: false, - package: DEFAULT_PKG, - children: [ - { - path: '/mock/root/node_modules/dep1', - realpath: '/mock/root/node_modules/dep1', - isLink: false, - package: DEP_PKG, - children: [] - } - ] -} - -var DEP1_REGISTRY = { name: 'dep1', - 'dist-tags': { latest: '1.2.2' }, - versions: { - '1.2.2': { version: '1.2.2' }, - '1.2.1': { version: '1.2.1' }, - '1.2.0': { version: '1.2.0' }, - '1.1.2': { version: '1.1.2' }, - '1.1.1': { version: '1.1.1' }, - '1.0.0': { version: '1.0.0' }, - '0.4.1': { version: '0.4.1' }, - '0.4.0': { version: '0.4.0' }, - '0.2.0': { version: '0.2.0' } - } -} - -var registryMocks = { - 'get': { - '/dep1': [200, DEP1_REGISTRY] - } -} - -// ** dynamic mocks, cloned from templates and modified ** -var mockServer -var mockDepJson = clone(DEP_PKG) -var mockInstalled = clone(INSTALLED) -var mockParentJson = clone(DEFAULT_PKG) - -// target -var installAskedFor - -function clone (a) { - return extend({}, a) -} - -function extend (a, b) { - for (var key in b) { - a[key] = b[key] - } - return a -} - -function resetPackage (options) { - rimraf.sync(CACHE_DIR) - mkdirp.sync(CACHE_DIR) - - installAskedFor = undefined - - mockParentJson = clone(DEFAULT_PKG) - mockInstalled = clone(INSTALLED) - mockDepJson = clone(DEP_PKG) - - if (options.wanted) { - mockParentJson.dependencies.dep1 = options.wanted - mockInstalled.package.dependencies.dep1 = options.wanted - mockDepJson._from = options.wanted - } - - if (options.installed) { - mockInstalled.package.dependencies.dep1 = options.installed - mockInstalled.children[0].package.version = options.installed - mockDepJson.version = options.installed - } -} - -function mockReadPackageTree (dir, cb) { - cb(null, mockInstalled) -} - -function mockReadJson (file, cb) { - cb(null, file.match(/dep1/) ? mockDepJson : mockParentJson) -} - -function mockCommand (npm, name, fn) { - delete npm.commands[name] - npm.commands[name] = fn -} - -function mockInstaller (where, dryrun, what) { - installAskedFor = what[0] -} -mockInstaller.prototype = {} -mockInstaller.prototype.run = function (cb) { - cb() -} - -var npm = requireInject.installGlobally('../../lib/npm.js', { - 'read-package-tree': mockReadPackageTree, - 'read-package-json': mockReadJson, - '../../lib/install': { - Installer: mockInstaller - } -}) - -test('setup', function (t) { - t.plan(5) - process.chdir(osenv.tmpdir()) - mkdirp.sync(PKG_DIR) - process.chdir(PKG_DIR) - t.pass('made ' + PKG_DIR) - - resetPackage({}) - - mr({ port: common.port, mocks: registryMocks }, function (er, server) { - t.pass('mock registry active') - npm.load({ cache: CACHE_DIR, - registry: common.registry, - cwd: PKG_DIR }, function (err) { - t.ifError(err, 'started server') - mockServer = server - - t.pass('npm.load complete') - - mockCommand(npm, 'install', function mockInstall (where, what, cb) { - installAskedFor = what - cb(null) - }) - - t.pass('mocks configured') - t.end() - }) - }) -}) - -test('update caret dependency to latest', function (t) { - resetPackage({ wanted: '^1.1.1' }) - - npm.config.set('loglevel', 'silly') - npm.commands.update([], function (err) { - t.ifError(err) - t.equal(installAskedFor, 'dep1@1.2.2', 'should want to install dep@1.2.2') - t.end() - }) -}) - -test('update tilde dependency to latest', function (t) { - resetPackage({ wanted: '~1.1.1' }) - - npm.commands.update([], function (err) { - t.ifError(err) - t.equal(installAskedFor, 'dep1@1.1.2', 'should want to install dep@1.1.2') - t.end() - }) -}) - -test('hold tilde dependency at wanted (#6441)', function (t) { - resetPackage({ wanted: '~1.1.2', installed: '1.1.2' }) - - npm.commands.update([], function (err) { - t.ifError(err) - t.notOk(installAskedFor, 'should not want to install anything') - t.end() - }) -}) - -test('update old caret dependency with no newer', function (t) { - resetPackage({ wanted: '^0.2.0', installed: '^0.2.0' }) - - npm.commands.update([], function (err) { - t.ifError(err) - t.equal(installAskedFor, 'dep1@0.2.0', 'should want to install dep@0.2.0') - t.end() - }) -}) - -test('update old caret dependency with newer', function (t) { - resetPackage({ wanted: '^0.4.0', installed: '^0.4.0' }) - - npm.commands.update([], function (err) { - t.ifError(err) - t.equal(installAskedFor, 'dep1@0.4.1', 'should want to install dep@0.4.1') - t.end() - }) -}) - -test('cleanup', function (t) { - mockServer.close() - - process.chdir(osenv.tmpdir()) - rimraf.sync(PKG_DIR) - - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-index.js deleted file mode 100644 index 91b2f787..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-index.js +++ /dev/null @@ -1,195 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var npm = require('../../') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var path = require('path') -var mr = require('npm-registry-mock') - -var updateIndex = require('../../lib/cache/update-index.js') - -var PKG_DIR = path.resolve(__dirname, 'get-basic') -var CACHE_DIR = path.resolve(PKG_DIR, 'cache') - -var server - -var mocks = { - basic: function (mock) { - mock.get('/-/all').reply(200, allMock) - }, - auth: function (mock) { - var littleBobbyTablesAuth = new Buffer('bobby:tables').toString('base64') - var auth = 'Basic ' + littleBobbyTablesAuth - mock.get('/-/all', { authorization: auth }).reply(200, allMock) - mock.get('/-/all').reply(401, { - error: 'unauthorized', - reason: 'You are not authorized to access this db.' - }) - } -} - -var allMock = { - '_updated': 1411727900 + 25, - 'generator-frontcow': { - 'name': 'generator-frontcow', - 'description': 'f36b6a6123da50959741e2ce4d634f96ec668c56 This is a fake description to ensure we do not accidentally search the real npm registry or use some kind of cache', - 'dist-tags': { - 'latest': '0.1.19' - }, - 'maintainers': [ - { - 'name': 'bcabanes', - 'email': 'contact@benjamincabanes.com' - } - ], - 'homepage': 'https://github.com/bcabanes/generator-frontcow', - 'keywords': [ - 'sass', - 'frontend', - 'yeoman-generator', - 'atomic', - 'design', - 'sass', - 'foundation', - 'foundation5', - 'atomic design', - 'bourbon', - 'polyfill', - 'font awesome' - ], - 'repository': { - 'type': 'git', - 'url': 'https://github.com/bcabanes/generator-frontcow' - }, - 'author': { - 'name': 'ben', - 'email': 'contact@benjamincabanes.com', - 'url': 'https://github.com/bcabanes' - }, - 'bugs': { - 'url': 'https://github.com/bcabanes/generator-frontcow/issues' - }, - 'license': 'MIT', - 'readmeFilename': 'README.md', - 'time': { - 'modified': '2014-10-03T02:26:18.406Z' - }, - 'versions': { - '0.1.19': 'latest' - } - }, - 'marko': { - 'name': 'marko', - 'description': 'Marko is an extensible, streaming, asynchronous, high performance, HTML-based templating language that can be used in Node.js or in the browser.', - 'dist-tags': { - 'latest': '1.2.16' - }, - 'maintainers': [ - { - 'name': 'pnidem', - 'email': 'pnidem@gmail.com' - }, - { - 'name': 'philidem', - 'email': 'phillip.idem@gmail.com' - } - ], - 'homepage': 'https://github.com/raptorjs/marko', - 'keywords': [ - 'templating', - 'template', - 'async', - 'streaming' - ], - 'repository': { - 'type': 'git', - 'url': 'https://github.com/raptorjs/marko.git' - }, - 'author': { - 'name': 'Patrick Steele-Idem', - 'email': 'pnidem@gmail.com' - }, - 'bugs': { - 'url': 'https://github.com/raptorjs/marko/issues' - }, - 'license': 'Apache License v2.0', - 'readmeFilename': 'README.md', - 'users': { - 'pnidem': true - }, - 'time': { - 'modified': '2014-10-03T02:27:31.775Z' - }, - 'versions': { - '1.2.16': 'latest' - } - } -} - -function setup (t, mock, extra) { - mkdirp.sync(CACHE_DIR) - mr({ port: common.port, plugin: mock }, function (er, s) { - npm.load({ cache: CACHE_DIR, registry: common.registry }, function (err) { - if (extra) { - Object.keys(extra).forEach(function (k) { - npm.config.set(k, extra[k], 'user') - }) - } - t.ifError(err, 'no error') - server = s - t.end() - }) - }) -} - -function cleanup (t) { - server.close(function () { - rimraf.sync(PKG_DIR) - - t.end() - }) -} - -test('setup basic', function (t) { - setup(t, mocks.basic) -}) - -test('request basic', function (t) { - updateIndex(0, function (er) { - t.ifError(er, 'no error') - t.end() - }) -}) - -test('cleanup basic', cleanup) - -test('setup auth', function (t) { - setup(t, mocks.auth) -}) - -test('request auth failure', function (t) { - updateIndex(0, function (er) { - t.equals(er.code, 'E401', 'gotta get that auth') - t.ok(/^unauthorized/.test(er.message), 'unauthorized message') - t.end() - }) -}) - -test('cleanup auth failure', cleanup) - -test('setup auth', function (t) { - // mimic as if alwaysAuth had been set - setup(t, mocks.auth, { - _auth: new Buffer('bobby:tables').toString('base64'), - 'always-auth': true - }) -}) - -test('request auth success', function (t) { - updateIndex(0, function (er) { - t.ifError(er, 'no error') - t.end() - }) -}) - -test('cleanup auth', cleanup) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-path.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-path.js deleted file mode 100644 index 1578669a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-path.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict' -var test = require('tap').test -var requireInject = require('require-inject') - -var mockNpm = { - config: { - get: function (key) { - return false - } - }, - commands: { - outdated: function (args, silent, cb) { - cb(null, [ - [{path: '/incorrect', parent: {path: '/correct'}}, 'abc', '1.0.0', '1.1.0', '1.1.0', '^1.1.0'] - ]) - } - } -} - -// What we're testing here is that updates use the parent module's path to -// install from. -test('update', function (t) { - var update = requireInject('../../lib/update.js', { - '../../lib/npm.js': mockNpm, - '../../lib/install.js': { - 'Installer': function (where, dryrun, args) { - t.is(where, '/correct', 'We should be installing to the parent of the modules being updated') - this.run = function (cb) { cb() } - } - } - }) - update(['abc'], function () { - t.end() - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-save.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-save.js deleted file mode 100644 index f01fa0f5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-save.js +++ /dev/null @@ -1,219 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var server - -var pkg = path.resolve(__dirname, 'update-save') -var cache = path.resolve(pkg, 'cache') - -var EXEC_OPTS = { - cwd: pkg, - stdio: 'ignore', - env: { - npm_config_registry: common.registry, - npm_config_loglevel: 'verbose', - npm_config_save_prefix: '^' - } -} - -var json = { - name: 'update-save-example', - version: '1.2.3', - dependencies: { - mkdirp: '~0.3.0' - }, - devDependencies: { - underscore: '~1.3.1' - } -} - -function clone (a) { - return extend({}, a) -} - -function extend (a, b) { - for (var key in b) { a[key] = b[key] } - return a -} - -test('setup', function (t) { - setup() - - mr({ port: common.port }, function (er, s) { - t.ifError(er) - server = s - t.end() - }) -}) - -test('update regular dependencies only', function (t) { - setup() - - common.npm(['update', '--save'], EXEC_OPTS, function (err, code) { - t.ifError(err) - t.notOk(code, 'npm update exited with code 0') - - var pkgdata = JSON.parse(fs.readFileSync(path.join(pkg, 'package.json'), 'utf8')) - t.deepEqual( - pkgdata.dependencies, - { mkdirp: '^0.3.5' }, - 'only dependencies updated' - ) - t.deepEqual( - pkgdata.devDependencies, - json.devDependencies, - 'dev dependencies should be untouched' - ) - t.deepEqual( - pkgdata.optionalDependencies, - json.optionalDependencies, - 'optional dependencies should be untouched' - ) - - t.end() - }) -}) - -test('update devDependencies only', function (t) { - setup() - - common.npm(['update', '--save-dev'], EXEC_OPTS, function (err, code) { - t.ifError(err) - t.notOk(code, 'npm update exited with code 0') - - var pkgdata = JSON.parse(fs.readFileSync(path.join(pkg, 'package.json'), 'utf8')) - t.deepEqual( - pkgdata.dependencies, - json.dependencies, - 'dependencies should be untouched' - ) - t.deepEqual( - pkgdata.devDependencies, - { underscore: '^1.3.3' }, - 'dev dependencies should be updated' - ) - t.deepEqual( - pkgdata.optionalDependencies, - json.optionalDependencies, - 'optional dependencies should be untouched' - ) - - t.end() - }) -}) - -test('update optionalDependencies only', function (t) { - setup({ optionalDependencies: { underscore: '~1.3.1' } }) - - common.npm(['update', '--save-optional'], EXEC_OPTS, function (err, code) { - t.ifError(err) - t.notOk(code, 'npm update exited with code 0') - - var pkgdata = JSON.parse(fs.readFileSync(path.join(pkg, 'package.json'), 'utf8')) - t.deepEqual( - pkgdata.dependencies, - json.dependencies, - 'dependencies should be untouched' - ) - t.deepEqual( - pkgdata.devDependencies, - json.devDependencies, - 'dev dependencies should be untouched' - ) - t.deepEqual( - pkgdata.optionalDependencies, - { underscore: '^1.3.3' }, - 'optional dependencies should be updated' - ) - - t.end() - }) -}) - -test('optionalDependencies are merged into dependencies during --save', function (t) { - var cloned = setup({ optionalDependencies: { underscore: '~1.3.1' } }) - - common.npm(['update', '--save'], EXEC_OPTS, function (err, code) { - t.ifError(err) - t.notOk(code, 'npm update exited with code 0') - - var pkgdata = JSON.parse(fs.readFileSync(path.join(pkg, 'package.json'), 'utf8')) - t.deepEqual( - pkgdata.dependencies, - { mkdirp: '^0.3.5' }, - 'dependencies should not include optional dependencies' - ) - t.deepEqual( - pkgdata.devDependencies, - cloned.devDependencies, - 'dev dependencies should be untouched' - ) - t.deepEqual( - pkgdata.optionalDependencies, - cloned.optionalDependencies, - 'optional dependencies should be untouched' - ) - - t.end() - }) -}) - -test('semver prefix is replaced with configured save-prefix', function (t) { - setup() - - common.npm(['update', '--save', '--save-prefix', '~'], EXEC_OPTS, function (err, code) { - t.ifError(err) - t.notOk(code, 'npm update exited with code 0') - - var pkgdata = JSON.parse(fs.readFileSync(path.join(pkg, 'package.json'), 'utf8')) - t.deepEqual( - pkgdata.dependencies, - { mkdirp: '~0.3.5' }, - 'dependencies should be updated' - ) - t.deepEqual( - pkgdata.devDependencies, - json.devDependencies, - 'dev dependencies should be untouched' - ) - t.deepEqual( - pkgdata.optionalDependencies, - json.optionalDependencies, - 'optional dependencies should be updated' - ) - - t.end() - }) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup (extendWith) { - cleanup() - mkdirp.sync(cache) - process.chdir(pkg) - - var template = clone(json) - extend(template, extendWith) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(template, null, 2) - ) - return template -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-symlink.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-symlink.js deleted file mode 100644 index 1447fde6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/update-symlink.js +++ /dev/null @@ -1,91 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') -var osenv = require('osenv') -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'update-symlink') -var originalLog - -var fakeRoot = path.join(__dirname, 'fakeRoot') -var OPTS = { - env: { - 'npm_config_prefix': fakeRoot - } -} - -var jsonLocal = { - name: 'my-local-package', - description: 'fixture', - version: '1.0.0', - dependencies: { - 'async': '*', - 'underscore': '*' - } -} - -test('setup', function (t) { - cleanup() - originalLog = console.log - mkdirp.sync(pkg) - common.npm(['install', '-g', 'underscore@1.3.1'], OPTS, function (err, c, out) { - t.ifError(err, 'global install did not error') - process.chdir(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(jsonLocal, null, 2) - ) - common.npm(['link', 'underscore'], OPTS, function (err, c, out) { - t.ifError(err, 'link did not error') - common.npm(['install', 'async@0.2.9'], OPTS, function (err, c, out) { - t.ifError(err, 'local install did not error') - common.npm(['ls'], OPTS, function (err, c, out, stderr) { - t.ifError(err) - t.equal(c, 0) - t.equal(stderr, '', 'got expected stderr') - t.has(out, /async@0.2.9/, 'installed ok') - t.has(out, /underscore@1.3.1/, 'creates local link ok') - t.end() - }) - }) - }) - }) -}) - -test('when update is called linked packages should be excluded', function (t) { - console.log = function () {} - mr({ port: common.port }, function (er, s) { - common.npm(['update'], OPTS, function (err, c, out, stderr) { - t.ifError(err) - t.has(out, /async@1.5.2/, 'updated ok') - t.doesNotHave(stderr, /ERR!/, 'no errors in stderr') - s.close() - t.end() - }) - }) -}) - -test('cleanup', function (t) { - common.npm(['rm', 'underscore', 'async'], OPTS, function (err, code) { - t.ifError(err, 'npm removed the linked package without error') - t.equal(code, 0, 'cleanup in local ok') - process.chdir(osenv.tmpdir()) - common.npm(['rm', '-g', 'underscore'], OPTS, function (err, code) { - t.ifError(err, 'npm removed the global package without error') - t.equal(code, 0, 'cleanup in global ok') - - console.log = originalLog - cleanup() - t.end() - }) - }) -}) - -function cleanup () { - rimraf.sync(pkg) - rimraf.sync(fakeRoot) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/url-dependencies.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/url-dependencies.js deleted file mode 100644 index bc54da71..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/url-dependencies.js +++ /dev/null @@ -1,113 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap') -var server - -var pkg = path.resolve(__dirname, 'url-dependencies') - -var json = { - author: 'Steve Mason', - name: 'url-dependencies', - version: '0.0.0', - dependencies: { - underscore: common.registry + '/underscore/-/underscore-1.3.1.tgz' - } -} - -var mockRoutes = { - 'get': { - '/underscore/-/underscore-1.3.1.tgz': [200] - } -} - -test('setup', function (t) { - mr({ port: common.port, mocks: mockRoutes }, function (er, s) { - server = s - t.end() - }) -}) - -test('url-dependencies: download first time', function (t) { - setup() - - performInstall(t, function (output) { - if (!tarballWasFetched(output)) { - t.fail('Tarball was not fetched') - } else { - t.pass('Tarball was fetched') - } - t.end() - }) -}) - -test('url-dependencies: do not download subsequent times', function (t) { - setup() - - performInstall(t, function () { - performInstall(t, function (output) { - if (tarballWasFetched(output)) { - t.fail('Tarball was fetched second time around') - } else { - t.pass('Tarball was not fetched') - } - t.end() - }) - }) -}) - -test('cleanup', function (t) { - server.close() - cleanup() - t.end() -}) - -function cleanup () { - // windows fix for locked files - process.chdir(osenv.tmpdir()) - rimraf.sync(path.resolve(pkg)) -} - -function setup () { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) -} - -function tarballWasFetched (output) { - return output.indexOf( - 'http fetch GET ' + - common.registry + - '/underscore/-/underscore-1.3.1.tgz' - ) > -1 -} - -function performInstall (t, cb) { - var opts = { - cwd: pkg, - env: { - npm_config_registry: common.registry, - npm_config_cache_lock_stale: 1000, - npm_config_cache_lock_wait: 1000, - npm_config_loglevel: 'http', - HOME: process.env.HOME, - Path: process.env.PATH, - PATH: process.env.PATH - } - } - common.npm(['install'], opts, function (err, code, stdout, stderr) { - t.ifError(err, 'install success') - t.notOk(code, 'npm install exited with code 0') - - cb(stderr) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/verify-no-lifecycle-on-repo.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/verify-no-lifecycle-on-repo.js deleted file mode 100644 index eedaa756..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/verify-no-lifecycle-on-repo.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict' -var path = require('path') -var fs = require('graceful-fs') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var test = require('tap').test -var requireInject = require('require-inject') -require('../common-tap.js') - -var base = path.join(__dirname, path.basename(__filename, '.js')) - -var baseJSON = { - name: 'base', - version: '1.0.0', - repository: { - type: 'git', - url: 'http://example.com' - }, - scripts: { - prepublish: 'false' - } -} - -var lastOpened -var npm = requireInject.installGlobally('../../lib/npm.js', { - '../../lib/utils/lifecycle.js': function (pkg, stage, wd, unsafe, failOk, cb) { - cb(new Error("Shouldn't be calling lifecycle scripts")) - }, - opener: function (url, options, cb) { - lastOpened = {url: url, options: options} - cb() - } -}) - -test('setup', function (t) { - cleanup() - setup() - t.end() -}) - -test('repo', function (t) { - process.chdir(base) - npm.load({browser: 'echo'}, function () { - npm.commands.repo([], function (err) { - t.ifError(err, 'no errors') - t.match(lastOpened.url, baseJSON.repository.url, 'opened the right url') - t.is(lastOpened.options.command, 'echo', 'opened with a specified browser') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function saveJson (pkgPath, json) { - mkdirp.sync(pkgPath) - fs.writeFileSync(path.join(pkgPath, 'package.json'), JSON.stringify(json, null, 2)) -} - -function setup () { - saveJson(base, baseJSON) -} - -function cleanup () { - rimraf.sync(base) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-from-git.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-from-git.js deleted file mode 100644 index 6f2c794c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-from-git.js +++ /dev/null @@ -1,224 +0,0 @@ -var common = require('../common-tap.js') -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../lib/npm.js') - -var pkg = path.resolve(__dirname, 'version-from-git') -var packagePath = path.resolve(pkg, 'package.json') -var cache = path.resolve(pkg, 'cache') - -var json = { name: 'cat', version: '0.1.2' } - -test('npm version from-git with a valid tag creates a new commit', function (t) { - var version = '1.2.3' - setup() - createTag(t, version, runVersion) - - function runVersion (er) { - t.ifError(er, 'git tag ran without error') - npm.config.set('sign-git-tag', false) - npm.commands.version(['from-git'], checkVersion) - } - - function checkVersion (er) { - var git = require('../../lib/utils/git.js') - t.ifError(er, 'version command ran without error') - git.whichAndExec( - ['log'], - { cwd: pkg, env: process.env }, - checkCommit - ) - } - - function checkCommit (er, log, stderr) { - t.ifError(er, 'git log ran without issue') - t.notOk(stderr, 'no error output') - t.ok(log.indexOf(version) !== -1, 'commit was created') - t.end() - } -}) - -test('npm version from-git with a valid tag updates the package.json version', function (t) { - var version = '1.2.3' - setup() - createTag(t, version, runVersion) - - function runVersion (er) { - t.ifError(er, 'git tag ran without error') - npm.config.set('sign-git-tag', false) - npm.commands.version(['from-git'], checkManifest) - } - - function checkManifest (er) { - t.ifError(er, 'npm run version ran without error') - fs.readFile(path.resolve(pkg, 'package.json'), 'utf8', function (er, data) { - t.ifError(er, 'read manifest without error') - var manifest = JSON.parse(data) - t.equal(manifest.version, version, 'updated the package.json version') - t.done() - }) - } -}) - -test('npm version from-git strips tag-version-prefix', function (t) { - var version = '1.2.3' - var prefix = 'custom-' - var tag = prefix + version - setup() - createTag(t, tag, runVersion) - - function runVersion (er) { - t.ifError(er, 'git tag ran without error') - npm.config.set('sign-git-tag', false) - npm.config.set('tag-version-prefix', prefix) - npm.commands.version(['from-git'], checkVersion) - } - - function checkVersion (er) { - var git = require('../../lib/utils/git.js') - t.ifError(er, 'version command ran without error') - git.whichAndExec( - ['log', '--pretty=medium'], - { cwd: pkg, env: process.env }, - checkCommit - ) - } - - function checkCommit (er, log, stderr) { - t.ifError(er, 'git log ran without issue') - t.notOk(stderr, 'no error output') - t.ok(log.indexOf(tag) === -1, 'commit should not include prefix') - t.ok(log.indexOf(version) !== -1, 'commit should include version') - t.end() - } -}) - -test('npm version from-git only strips tag-version-prefix if it is a prefix', function (t) { - var prefix = 'test' - var version = '1.2.3-' + prefix - setup() - createTag(t, version, runVersion) - - function runVersion (er) { - t.ifError(er, 'git tag ran without error') - npm.config.set('sign-git-tag', false) - npm.config.set('tag-version-prefix', prefix) - npm.commands.version(['from-git'], checkVersion) - } - - function checkVersion (er) { - var git = require('../../lib/utils/git.js') - t.ifError(er, 'version command ran without error') - git.whichAndExec( - ['log'], - { cwd: pkg, env: process.env }, - checkCommit - ) - } - - function checkCommit (er, log, stderr) { - t.ifError(er, 'git log ran without issue') - t.notOk(stderr, 'no error output') - t.ok(log.indexOf(version) !== -1, 'commit should include the full version') - t.end() - } -}) - -test('npm version from-git with an existing version', function (t) { - var tag = 'v' + json.version - setup() - createTag(t, tag, runVersion) - - function runVersion (er) { - t.ifError(er, 'git tag ran without error') - npm.config.set('sign-git-tag', false) - npm.commands.version(['from-git'], checkVersion) - } - - function checkVersion (er) { - t.equal(er.message, 'Version not changed') - t.done() - } -}) - -test('npm version from-git with an invalid version tag', function (t) { - var tag = 'invalidversion' - setup() - createTag(t, tag, runVersion) - - function runVersion (er) { - t.ifError(er, 'git tag ran without error') - npm.config.set('sign-git-tag', false) - npm.commands.version(['from-git'], checkVersion) - } - - function checkVersion (er) { - t.equal(er.message, tag + ' is not a valid version') - t.done() - } -}) - -test('npm version from-git without any versions', function (t) { - setup() - createGitRepo(t, runVersion) - - function runVersion (er) { - t.ifError(er, 'created git repo without errors') - npm.config.set('sign-git-tag', false) - npm.commands.version(['from-git'], checkVersion) - } - - function checkVersion (er) { - t.equal(er.message, 'No tags found') - t.done() - } -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - // windows fix for locked files - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(cache) - process.chdir(pkg) - fs.writeFileSync(packagePath, JSON.stringify(json), 'utf8') -} - -function createGitRepo (t, cb) { - npm.load({ cache: cache }, function (er) { - t.ifError(er, 'npm load ran without issue') - common.makeGitRepo({ - path: pkg, - added: ['package.json'] - }, cb) - }) -} - -function createTag (t, tag, cb) { - var opts = { cwd: pkg, env: { PATH: process.env.PATH } } - npm.load({ cache: cache }, function (er) { - t.ifError(er, 'npm load ran without issue') - - // git must be called after npm.load because it uses config - var git = require('../../lib/utils/git.js') - common.makeGitRepo({ - path: pkg, - added: ['package.json'], - commands: [git.chainableExec(['tag', tag, '-am', tag], opts)] - }, cb) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-git-not-clean.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-git-not-clean.js deleted file mode 100644 index 22ffb7c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-git-not-clean.js +++ /dev/null @@ -1,96 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var npm = require('../../') -var osenv = require('osenv') -var path = require('path') -var fs = require('fs') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var which = require('which') -var spawn = require('child_process').spawn - -var pkg = path.resolve(__dirname, 'version-git-not-clean') -var cache = path.resolve(pkg, 'cache') - -test('npm version <semver> with working directory not clean', function (t) { - setup() - npm.load({ cache: cache, registry: common.registry, prefix: pkg }, function () { - which('git', function (err, git) { - t.ifError(err, 'git found') - - function addPackageJSON (_cb) { - var data = JSON.stringify({ name: 'blah', version: '0.1.2' }) - fs.writeFile('package.json', data, function () { - var child = spawn(git, ['add', 'package.json']) - child.on('exit', function () { - var child2 = spawn(git, ['commit', 'package.json', '-m', 'init']) - var out = '' - child2.stdout.on('data', function (d) { - out += d.toString() - }) - child2.on('exit', function () { - return _cb(out) - }) - }) - }) - } - - common.makeGitRepo({path: pkg}, function () { - addPackageJSON(function () { - var data = JSON.stringify({ name: 'blah', version: '0.1.3' }) - fs.writeFile('package.json', data, function () { - npm.commands.version(['patch'], function (err) { - if (!err) { - t.fail('should fail on non-clean working directory') - } else { - t.ok(err.message.match(/Git working directory not clean./)) - t.ok(err.message.match(/M package.json/)) - } - t.end() - }) - }) - }) - }) - }) - }) -}) - -test('npm version <semver> --force with working directory not clean', function (t) { - common.npm( - [ - '--force', - '--no-sign-git-tag', - '--registry', common.registry, - '--prefix', pkg, - 'version', - 'patch' - ], - { cwd: pkg, env: {PATH: process.env.PATH} }, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm version ran without issue') - t.notOk(code, 'exited with a non-error code') - var errorLines = stderr.trim().split('\n') - .map(function (line) { - return line.trim() - }) - .filter(function (line) { - return !line.indexOf('using --force') - }) - t.notOk(errorLines.length, 'no error output') - t.end() - }) -}) - -test('cleanup', function (t) { - // windows fix for locked files - process.chdir(osenv.tmpdir()) - - rimraf.sync(pkg) - t.end() -}) - -function setup () { - mkdirp.sync(pkg) - mkdirp.sync(cache) - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-lifecycle.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-lifecycle.js deleted file mode 100644 index 3b4fb50b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-lifecycle.js +++ /dev/null @@ -1,188 +0,0 @@ -var fs = require('graceful-fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var common = require('../common-tap.js') -var npm = require('../../') -var pkg = path.resolve(__dirname, 'version-lifecycle') -var cache = path.resolve(pkg, 'cache') -var npmrc = path.resolve(pkg, './.npmrc') -var configContents = 'sign-git-tag=false\n' - -test('npm version <semver> with failing preversion lifecycle script', function (t) { - setup() - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ - author: 'Alex Wolfe', - name: 'version-lifecycle', - version: '0.0.0', - description: 'Test for npm version if preversion script fails', - scripts: { - preversion: 'node ./fail.js' - } - }), 'utf8') - fs.writeFileSync(path.resolve(pkg, 'fail.js'), 'process.exit(50)', 'utf8') - npm.load({cache: cache, 'sign-git-tag': false, registry: common.registry}, function () { - var version = require('../../lib/version') - version(['patch'], function (err) { - t.ok(err) - t.ok(err.message.match(/Exit status 50/)) - t.end() - }) - }) -}) - -test('npm version <semver> with failing version lifecycle script', function (t) { - setup() - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ - author: 'Alex Wolfe', - name: 'version-lifecycle', - version: '0.0.0', - description: 'Test for npm version if postversion script fails', - scripts: { - version: 'node ./fail.js' - } - }), 'utf8') - fs.writeFileSync(path.resolve(pkg, 'fail.js'), 'process.exit(50)', 'utf8') - npm.load({cache: cache, 'sign-git-tag': false, registry: common.registry}, function () { - var version = require('../../lib/version') - version(['patch'], function (err) { - t.ok(err) - t.ok(err.message.match(/Exit status 50/)) - t.end() - }) - }) -}) - -test('npm version <semver> with failing postversion lifecycle script', function (t) { - setup() - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ - author: 'Alex Wolfe', - name: 'version-lifecycle', - version: '0.0.0', - description: 'Test for npm version if postversion script fails', - scripts: { - postversion: 'node ./fail.js' - } - }), 'utf8') - fs.writeFileSync(path.resolve(pkg, 'fail.js'), 'process.exit(50)', 'utf8') - npm.load({cache: cache, 'sign-git-tag': false, registry: common.registry}, function () { - var version = require('../../lib/version') - version(['patch'], function (err) { - t.ok(err) - t.ok(err.message.match(/Exit status 50/)) - t.end() - }) - }) -}) - -test('npm version <semver> execution order', function (t) { - setup() - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ - author: 'Alex Wolfe', - name: 'version-lifecycle', - version: '0.0.0', - description: 'Test for npm version if postversion script fails', - scripts: { - preversion: 'node ./preversion.js', - version: 'node ./version.js', - postversion: 'node ./postversion.js' - } - }), 'utf8') - makeScript('preversion') - makeScript('version') - makeScript('postversion') - npm.load({cache: cache, 'sign-git-tag': false, registry: common.registry}, function () { - common.makeGitRepo({path: pkg}, function (err, git) { - t.ifError(err, 'git bootstrap ran without error') - - var version = require('../../lib/version') - version(['patch'], function (err) { - t.ifError(err, 'version command complete') - - t.equal('0.0.0', readPackage('preversion').version, 'preversion') - t.deepEqual(readStatus('preversion', t), { - 'preversion-package.json': 'A' - }) - - t.equal('0.0.1', readPackage('version').version, 'version') - t.deepEqual(readStatus('version', t), { - 'package.json': 'M', - 'preversion-package.json': 'A', - 'version-package.json': 'A' - }) - - t.equal('0.0.1', readPackage('postversion').version, 'postversion') - t.deepEqual(readStatus('postversion', t), { - 'postversion-package.json': 'A' - }) - t.end() - }) - }) - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) - t.end() -}) - -function setup () { - mkdirp.sync(pkg) - mkdirp.sync(path.join(pkg, 'node_modules')) - mkdirp.sync(cache) - fs.writeFileSync(npmrc, configContents, 'ascii') - process.chdir(pkg) -} - -function makeScript (lifecycle) { - function contents (lifecycle) { - var fs = require('fs') - var exec = require('child_process').exec - fs.createReadStream('package.json') - .pipe(fs.createWriteStream(lifecycle + '-package.json')) - .on('close', function () { - exec( - 'git add ' + lifecycle + '-package.json', - function () { - exec( - 'git status --porcelain', - function (err, stdout) { - if (err) throw err - fs.writeFileSync(lifecycle + '-git.txt', stdout) - } - ) - } - ) - }) - } - var scriptPath = path.join(pkg, lifecycle + '.js') - fs.writeFileSync( - scriptPath, - '(' + contents.toString() + ')(\'' + lifecycle + '\')', - 'utf-8') -} - -function readPackage (lifecycle) { - return JSON.parse(fs.readFileSync(path.join(pkg, lifecycle + '-package.json'), 'utf-8')) -} - -function readStatus (lifecycle, t) { - var status = {} - fs.readFileSync(path.join(pkg, lifecycle + '-git.txt'), 'utf-8') - .trim() - .split('\n') - .forEach(function (line) { - line = line.trim() - if (line && !line.match(/^\?\? /)) { - var parts = line.split(/\s+/) - t.equal(parts.length, 2, lifecycle + ' : git status has too many words : ' + line) - status[parts[1].trim()] = parts[0].trim() - } - }) - return status -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-message-config.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-message-config.js deleted file mode 100644 index fca0d5d9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-message-config.js +++ /dev/null @@ -1,76 +0,0 @@ -var common = require('../common-tap.js') -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../lib/npm.js') - -var pkg = path.resolve(__dirname, 'version-message-config') -var cache = path.resolve(pkg, 'cache') -var npmrc = path.resolve(pkg, '.npmrc') -var packagePath = path.resolve(pkg, 'package.json') - -var json = { name: 'blah', version: '0.1.2' } - -var configContents = 'sign-git-tag=false\nmessage=":bookmark: %s"\n' - -test('npm version <semver> with message config', function (t) { - setup() - - npm.load({ prefix: pkg, userconfig: npmrc }, function () { - var git = require('../../lib/utils/git.js') - - common.makeGitRepo({ path: pkg }, function (er) { - t.ifErr(er, 'git bootstrap ran without error') - - common.npm( - [ - 'version', - 'patch', - '--loglevel', 'silent' - // package config is picked up from env - ], - { cwd: pkg, env: { PATH: process.env.PATH } }, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm version ran without issue') - t.notOk(code, 'exited with a non-error code') - t.notOk(stderr, 'no error output') - - git.whichAndExec( - ['log'], - { cwd: pkg, env: process.env }, - function (er, log, stderr) { - t.ok(log.match(/:bookmark: 0\.1\.3/g), 'config was picked up by version') - t.end() - } - ) - } - ) - }) - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - // windows fix for locked files - process.chdir(osenv.tmpdir()) - - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(cache) - process.chdir(pkg) - - fs.writeFileSync(packagePath, JSON.stringify(json), 'utf8') - fs.writeFileSync(npmrc, configContents, 'ascii') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-no-git.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-no-git.js deleted file mode 100644 index 0a859c7a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-no-git.js +++ /dev/null @@ -1,54 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var npm = require('../../') -var osenv = require('osenv') -var path = require('path') -var fs = require('fs') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') -var requireInject = require('require-inject') - -var pkg = path.resolve(__dirname, 'version-no-git') -var cache = path.resolve(pkg, 'cache') -var gitDir = path.resolve(pkg, '.git') - -test('npm version <semver> in a git repo without the git binary', function (t) { - setup() - npm.load({cache: cache, registry: common.registry}, function () { - var version = requireInject('../../lib/version', { - which: function (cmd, cb) { - process.nextTick(function () { - cb(new Error('ENOGIT!')) - }) - } - }) - - version(['patch'], function (err) { - if (!t.error(err)) return t.end() - var p = path.resolve(pkg, 'package') - var testPkg = require(p) - t.equal('0.0.1', testPkg.version, '\'' + testPkg.version + '\' === \'0.0.1\'') - t.end() - }) - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - - rimraf.sync(pkg) - t.end() -}) - -function setup () { - mkdirp.sync(pkg) - mkdirp.sync(cache) - mkdirp.sync(gitDir) - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ - author: 'Terin Stock', - name: 'version-no-git-test', - version: '0.0.0', - description: "Test for npm version if git binary doesn't exist" - }), 'utf8') - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-no-package.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-no-package.js deleted file mode 100644 index e4eeda0e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-no-package.js +++ /dev/null @@ -1,44 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var osenv = require('osenv') -var path = require('path') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') - -var pkg = path.resolve(__dirname, 'version-no-package') - -test('setup', function (t) { - setup() - t.end() -}) - -test('npm version in a prefix with no package.json', function (t) { - setup() - common.npm( - ['version', '--json', '--prefix', pkg], - { cwd: pkg }, - function (er, code, stdout, stderr) { - t.ifError(er, "npm version doesn't care that there's no package.json") - t.notOk(code, 'npm version ran without barfing') - t.ok(stdout, 'got version output') - t.notOk(stderr, 'no error output') - t.doesNotThrow(function () { - var metadata = JSON.parse(stdout) - t.equal(metadata.node, process.versions.node, 'node versions match') - }, 'able to reconstitute version object from stdout') - t.end() - } - ) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - - rimraf.sync(pkg) - t.end() -}) - -function setup () { - mkdirp.sync(pkg) - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-no-tags.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-no-tags.js deleted file mode 100644 index 755e640c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-no-tags.js +++ /dev/null @@ -1,71 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var npm = require('../../') -var osenv = require('osenv') -var path = require('path') -var fs = require('fs') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var which = require('which') -var spawn = require('child_process').spawn - -var pkg = path.resolve(__dirname, 'version-no-tags') -var cache = path.resolve(pkg, 'cache') - -test('npm version <semver> without git tag', function (t) { - setup() - npm.load({ cache: cache, registry: common.registry }, function () { - which('git', function (err, git) { - t.ifError(err, 'git found on system') - function tagExists (tag, _cb) { - var child1 = spawn(git, ['tag', '-l', tag]) - var out = '' - child1.stdout.on('data', function (d) { - out += d.toString() - }) - child1.on('exit', function () { - return _cb(null, Boolean(~out.indexOf(tag))) - }) - } - - var child2 = spawn(git, ['init']) - child2.stdout.pipe(process.stdout) - child2.on('exit', function () { - npm.config.set('git-tag-version', false) - npm.commands.version(['patch'], function (err) { - if (err) return t.fail('Error perform version patch') - var p = path.resolve(pkg, 'package') - var testPkg = require(p) - if (testPkg.version !== '0.0.1') t.fail(testPkg.version + ' !== \'0.0.1\'') - t.equal('0.0.1', testPkg.version) - tagExists('v0.0.1', function (err, exists) { - t.ifError(err, 'tag found to exist') - t.equal(exists, false, 'git tag DOES exist') - t.pass('git tag does not exist') - t.end() - }) - }) - }) - }) - }) -}) - -test('cleanup', function (t) { - // windows fix for locked files - process.chdir(osenv.tmpdir()) - - rimraf.sync(pkg) - t.end() -}) - -function setup () { - mkdirp.sync(pkg) - mkdirp.sync(cache) - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ - author: 'Evan Lucas', - name: 'version-no-tags-test', - version: '0.0.0', - description: 'Test for git-tag-version flag' - }), 'utf8') - process.chdir(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-sub-directory.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-sub-directory.js deleted file mode 100644 index 52074a18..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-sub-directory.js +++ /dev/null @@ -1,74 +0,0 @@ -var common = require('../common-tap.js') -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../lib/npm.js') - -var pkg = path.resolve(__dirname, 'version-sub-directory') -var subDirectory = path.resolve(pkg, 'sub-directory') -var packagePath = path.resolve(pkg, 'package.json') -var cache = path.resolve(pkg, 'cache') - -var json = { name: 'cat', version: '0.1.2' } - -test('npm version <semver> from a subdirectory', function (t) { - setup() - npmLoad() - - function npmLoad () { - npm.load({ cache: cache }, function () { - common.makeGitRepo({ - path: pkg, - added: ['package.json'] - }, version) - }) - } - - function version (er, stdout, stderr) { - t.ifError(er, 'git repo initialized without issue') - t.notOk(stderr, 'no error output') - npm.config.set('sign-git-tag', false) - npm.commands.version(['patch'], checkVersion) - } - - function checkVersion (er) { - var git = require('../../lib/utils/git.js') - t.ifError(er, 'version command ran without error') - git.whichAndExec( - ['log'], - { cwd: pkg, env: process.env }, - checkCommit - ) - } - - function checkCommit (er, log, stderr) { - t.ifError(er, 'git log ran without issue') - t.notOk(stderr, 'no error output') - t.ok(log.match(/0\.1\.3/g), 'commited from subdirectory') - t.end() - } -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function cleanup () { - // windows fix for locked files - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} - -function setup () { - cleanup() - mkdirp.sync(cache) - mkdirp.sync(subDirectory) - process.chdir(subDirectory) - fs.writeFileSync(packagePath, JSON.stringify(json), 'utf8') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-update-shrinkwrap.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-update-shrinkwrap.js deleted file mode 100644 index d9f54d68..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/version-update-shrinkwrap.js +++ /dev/null @@ -1,138 +0,0 @@ -var fs = require('fs') -var path = require('path') - -var mkdirp = require('mkdirp') -var osenv = require('osenv') -var rimraf = require('rimraf') -var test = require('tap').test - -var npm = require('../../') -var common = require('../common-tap.js') - -var pkg = path.resolve(__dirname, 'version-shrinkwrap') -var cache = path.resolve(pkg, 'cache') - -test('npm version <semver> updates shrinkwrap - no git', function (t) { - setup() - npm.load({ cache: pkg + '/cache', registry: common.registry }, function () { - npm.commands.version(['patch'], function (err) { - if (err) return t.fail('Error perform version patch') - var shrinkwrap = require(path.resolve(pkg, 'npm-shrinkwrap.json')) - t.equal(shrinkwrap.version, '0.0.1', 'got expected version') - t.end() - }) - }) -}) - -test('npm version <semver> updates git works with no shrinkwrap', function (t) { - setup() - rimraf.sync(path.resolve(pkg, 'npm-shrinkwrap.json')) - - npm.config.set('sign-git-tag', false) - - common.makeGitRepo({ - path: pkg, - added: ['package.json'] - }, version) - - function version (er, stdout, stderr) { - t.ifError(er, 'git repo initialized without issue') - t.notOk(stderr, 'no error output') - - npm.commands.version(['patch'], checkCommit) - } - - function checkCommit (er) { - t.ifError(er, 'version command ran without error') - - var shrinkwrap = require(path.resolve(pkg, 'npm-shrinkwrap.json')) - t.equal(shrinkwrap.version, '0.0.1', 'got expected version') - - var opts = { cwd: pkg, env: { PATH: process.env.PATH } } - var git = require('../../lib/utils/git.js') - git.whichAndExec( - ['show', 'HEAD', '--name-only'], - opts, - function (er, stdout, stderr) { - t.ifError(er, 'git show ran without issues') - t.notOk(stderr, 'no error output') - - var lines = stdout.split('\n') - t.notEqual(lines.indexOf('package.json'), -1, 'package.json commited') - t.equal(lines.indexOf('npm-shrinkwrap.json'), -1, 'npm-shrinkwrap.json not present') - - t.end() - } - ) - } -}) - -test('npm version <semver> updates shrinkwrap and updates git', function (t) { - setup() - - npm.config.set('sign-git-tag', false) - - common.makeGitRepo({ - path: pkg, - added: ['package.json', 'npm-shrinkwrap.json'] - }, version) - - function version (er, stdout, stderr) { - t.ifError(er, 'git repo initialized without issue') - t.notOk(stderr, 'no error output') - - npm.commands.version(['patch'], checkCommit) - } - - function checkCommit (er) { - t.ifError(er, 'version command ran without error') - - var shrinkwrap = require(path.resolve(pkg, 'npm-shrinkwrap.json')) - t.equal(shrinkwrap.version, '0.0.1', 'got expected version') - - var git = require('../../lib/utils/git.js') - var opts = { cwd: pkg, env: { PATH: process.env.PATH } } - git.whichAndExec( - ['show', 'HEAD', '--name-only'], - opts, - function (er, stdout, stderr) { - t.ifError(er, 'git show ran without issues') - t.notOk(stderr, 'no error output') - - var lines = stdout.split('\n') - t.notEqual(lines.indexOf('package.json'), -1, 'package.json commited') - t.notEqual(lines.indexOf('npm-shrinkwrap.json'), -1, 'npm-shrinkwrap.json commited') - - t.end() - } - ) - } -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) - -function setup () { - cleanup() - mkdirp.sync(pkg) - mkdirp.sync(cache) - var contents = { - author: 'Nathan Bowser && Faiq Raza', - name: 'version-with-shrinkwrap-test', - version: '0.0.0', - description: 'Test for version with shrinkwrap update' - } - - fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify(contents), 'utf8') - fs.writeFileSync(path.resolve(pkg, 'npm-shrinkwrap.json'), JSON.stringify(contents), 'utf8') - process.chdir(pkg) -} - -function cleanup () { - // windows fix for locked files - process.chdir(osenv.tmpdir()) - rimraf.sync(cache) - rimraf.sync(pkg) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/view.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/view.js deleted file mode 100644 index e80031b1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/view.js +++ /dev/null @@ -1,385 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var osenv = require('osenv') -var path = require('path') -var fs = require('fs') -var rimraf = require('rimraf') -var mkdirp = require('mkdirp') -var tmp = osenv.tmpdir() -var t1dir = path.resolve(tmp, 'view-local-no-pkg') -var t2dir = path.resolve(tmp, 'view-local-notmine') -var t3dir = path.resolve(tmp, 'view-local-mine') -var mr = require('npm-registry-mock') - -test('setup', function (t) { - mkdirp.sync(t1dir) - mkdirp.sync(t2dir) - mkdirp.sync(t3dir) - - fs.writeFileSync(t2dir + '/package.json', JSON.stringify({ - author: 'Evan Lucas', - name: 'test-repo-url-https', - version: '0.0.1' - }), 'utf8') - - fs.writeFileSync(t3dir + '/package.json', JSON.stringify({ - author: 'Evan Lucas', - name: 'biscuits', - version: '0.0.1' - }), 'utf8') - - t.pass('created fixtures') - t.end() -}) - -function plugin (server) { - server - .get('/biscuits') - .many() - .reply(404, {'error': 'version not found'}) -} - -test('npm view . in global mode', function (t) { - process.chdir(t1dir) - common.npm([ - 'view', - '.', - '--registry=' + common.registry, - '--global' - ], { cwd: t1dir }, function (err, code, stdout, stderr) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 1, 'exit not ok') - t.similar(stderr, /Cannot use view command in global mode./m) - t.end() - }) -}) - -test('npm view --global', function (t) { - process.chdir(t1dir) - common.npm([ - 'view', - '--registry=' + common.registry, - '--global' - ], { cwd: t1dir }, function (err, code, stdout, stderr) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 1, 'exit not ok') - t.similar(stderr, /Cannot use view command in global mode./m) - t.end() - }) -}) - -test('npm view . with no package.json', function (t) { - process.chdir(t1dir) - common.npm([ - 'view', - '.', - '--registry=' + common.registry - ], { cwd: t1dir }, function (err, code, stdout, stderr) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 1, 'exit not ok') - t.similar(stderr, /Invalid package.json/m) - t.end() - }) -}) - -test('npm view . with no published package', function (t) { - process.chdir(t3dir) - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - '.', - '--registry=' + common.registry - ], { cwd: t3dir }, function (err, code, stdout, stderr) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 1, 'exit not ok') - t.similar(stderr, /version not found/m) - s.close() - t.end() - }) - }) -}) - -test('npm view .', function (t) { - process.chdir(t2dir) - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - '.', - '--registry=' + common.registry - ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 0, 'exit ok') - var re = new RegExp("name: 'test-repo-url-https'") - t.similar(stdout, re) - s.close() - t.end() - }) - }) -}) - -test('npm view . select fields', function (t) { - process.chdir(t2dir) - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - '.', - 'main', - '--registry=' + common.registry - ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 0, 'exit ok') - t.equal(stdout.trim(), 'index.js', 'should print `index.js`') - s.close() - t.end() - }) - }) -}) - -test('npm view .@<version>', function (t) { - process.chdir(t2dir) - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - '.@0.0.0', - 'version', - '--registry=' + common.registry - ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 0, 'exit ok') - t.equal(stdout.trim(), '0.0.0', 'should print `0.0.0`') - s.close() - t.end() - }) - }) -}) - -test('npm view .@<version> version --json', function (t) { - process.chdir(t2dir) - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - '.@0.0.0', - 'version', - '--json', - '--registry=' + common.registry - ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 0, 'exit ok') - t.equal(stdout.trim(), '"0.0.0"', 'should print `"0.0.0"`') - s.close() - t.end() - }) - }) -}) - -test('npm view . --json author name version', function (t) { - process.chdir(t2dir) - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - '.', - 'author', - 'name', - 'version', - '--json', - '--registry=' + common.registry - ], { cwd: t2dir }, function (err, code, stdout) { - var expected = JSON.stringify({ - author: 'Evan Lucas <evanlucas@me.com>', - name: 'test-repo-url-https', - version: '0.0.1' - }, null, 2) - t.ifError(err, 'view command finished successfully') - t.equal(code, 0, 'exit ok') - t.equal(stdout.trim(), expected, 'should print ' + expected) - s.close() - t.end() - }) - }) -}) - -test('npm view .@<version> --json author name version', function (t) { - process.chdir(t2dir) - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - '.@0.0.0', - 'author', - 'name', - 'version', - '--json', - '--registry=' + common.registry - ], { cwd: t2dir }, function (err, code, stdout) { - var expected = JSON.stringify({ - author: 'Evan Lucas <evanlucas@me.com>', - name: 'test-repo-url-https', - version: '0.0.0' - }, null, 2) - t.ifError(err, 'view command finished successfully') - t.equal(code, 0, 'exit ok') - t.equal(stdout.trim(), expected, 'should print ' + expected) - s.close() - t.end() - }) - }) -}) - -test('npm view <package name>', function (t) { - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - 'underscore', - '--registry=' + common.registry - ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 0, 'exit ok') - var re = new RegExp("name: 'underscore'") - t.similar(stdout, re, 'should have name `underscore`') - s.close() - t.end() - }) - }) -}) - -test('npm view <package name> --global', function (t) { - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - 'underscore', - '--global', - '--registry=' + common.registry - ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 0, 'exit ok') - var re = new RegExp("name: 'underscore'") - t.similar(stdout, re, 'should have name `underscore`') - s.close() - t.end() - }) - }) -}) - -test('npm view <package name>@<semver range> versions', function (t) { - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - 'underscore@^1.5.0', - 'versions', - '--registry=' + common.registry - ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 0, 'exit ok') - var re = new RegExp('1.5.0') - t.similar(stdout, re, 'should have version `1.5.0`') - s.close() - t.end() - }) - }) -}) - -test('npm view <package name> --json', function (t) { - t.plan(3) - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - 'underscore', - '--json', - '--registry=' + common.registry - ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 0, 'exit ok') - s.close() - try { - var out = JSON.parse(stdout.trim()) - t.similar(out, { - maintainers: ['jashkenas <jashkenas@gmail.com>'] - }, 'should have the same maintainer') - } catch (er) { - t.fail('Unable to parse JSON') - } - }) - }) -}) - -test('npm view <package name> <field>', function (t) { - mr({ port: common.port, plugin: plugin }, function (er, s) { - common.npm([ - 'view', - 'underscore', - 'homepage', - '--registry=' + common.registry - ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 0, 'exit ok') - t.equal(stdout.trim(), 'http://underscorejs.org', - 'homepage should equal `http://underscorejs.org`') - s.close() - t.end() - }) - }) -}) - -test('npm view with invalid package name', function (t) { - var invalidName = 'InvalidPackage' - var obj = {} - obj['/' + invalidName] = [404, {'error': 'not found'}] - - mr({ port: common.port, mocks: { 'get': obj } }, function (er, s) { - common.npm([ - 'view', - invalidName, - '--registry=' + common.registry - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 1, 'exit not ok') - - t.similar(stderr, new RegExp('is not in the npm registry'), - 'Package should NOT be found') - - t.dissimilar(stderr, new RegExp('use the name yourself!'), - 'Suggestion should not be there') - - t.similar(stderr, new RegExp('name can no longer contain capital letters'), - 'Suggestion about Capital letter should be there') - - s.close() - t.end() - }) - }) -}) - -test('npm view with valid but non existent package name', function (t) { - mr({ port: common.port, mocks: { - 'get': { - '/valid-but-non-existent-package': [404, {'error': 'not found'}] - } - }}, function (er, s) { - common.npm([ - 'view', - 'valid-but-non-existent-package', - '--registry=' + common.registry - ], {}, function (err, code, stdout, stderr) { - t.ifError(err, 'view command finished successfully') - t.equal(code, 1, 'exit not ok') - - t.similar(stderr, - new RegExp("'valid-but-non-existent-package' is not in the npm registry\."), - 'Package should NOT be found') - - t.similar(stderr, new RegExp('use the name yourself!'), - 'Suggestion should be there') - - s.close() - t.end() - }) - }) -}) - -test('cleanup', function (t) { - process.chdir(osenv.tmpdir()) - rimraf.sync(t1dir) - rimraf.sync(t2dir) - rimraf.sync(t3dir) - t.pass('cleaned up') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/whoami.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/whoami.js deleted file mode 100644 index 268e0f94..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/whoami.js +++ /dev/null @@ -1,77 +0,0 @@ -var common = require('../common-tap.js') - -var fs = require('fs') -var path = require('path') -var createServer = require('http').createServer - -var test = require('tap').test -var rimraf = require('rimraf') - -var opts = { cwd: __dirname } - -var FIXTURE_PATH = path.resolve(__dirname, 'fixture_npmrc') - -test('npm whoami with basic auth', function (t) { - var s = '//registry.lvh.me/:username = wombat\n' + - '//registry.lvh.me/:_password = YmFkIHBhc3N3b3Jk\n' + - '//registry.lvh.me/:email = lindsay@wdu.org.au\n' - fs.writeFileSync(FIXTURE_PATH, s, 'ascii') - fs.chmodSync(FIXTURE_PATH, '0444') - - common.npm( - [ - 'whoami', - '--userconfig=' + FIXTURE_PATH, - '--registry=http://registry.lvh.me/' - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err) - - t.equal(stderr, '', 'got nothing on stderr') - t.equal(code, 0, 'exit ok') - t.equal(stdout, 'wombat\n', 'got username') - rimraf.sync(FIXTURE_PATH) - t.end() - } - ) -}) - -test('npm whoami with bearer auth', { timeout: 2 * 1000 }, function (t) { - var s = '//localhost:' + common.port + - '/:_authToken = wombat-developers-union\n' - fs.writeFileSync(FIXTURE_PATH, s, 'ascii') - fs.chmodSync(FIXTURE_PATH, '0444') - - function verify (req, res) { - t.equal(req.method, 'GET') - t.equal(req.url, '/-/whoami') - - res.setHeader('content-type', 'application/json') - res.writeHeader(200) - res.end(JSON.stringify({ username: 'wombat' }), 'utf8') - } - - var server = createServer(verify) - - server.listen(common.port, function () { - common.npm( - [ - 'whoami', - '--userconfig=' + FIXTURE_PATH, - '--registry=http://localhost:' + common.port + '/' - ], - opts, - function (err, code, stdout, stderr) { - t.ifError(err) - - t.equal(stderr, '', 'got nothing on stderr') - t.equal(code, 0, 'exit ok') - t.equal(stdout, 'wombat\n', 'got username') - rimraf.sync(FIXTURE_PATH) - server.close() - t.end() - } - ) - }) -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/zz-cleanup.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/zz-cleanup.js deleted file mode 100644 index e1020aa3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/npm/test/tap/zz-cleanup.js +++ /dev/null @@ -1,8 +0,0 @@ -var common = require('../common-tap') -var test = require('tap').test -var rimraf = require('rimraf') - -test('cleanup', function (t) { - rimraf.sync(common.npm_config_cache) - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/CHANGELOG.md deleted file mode 100644 index c7040fd9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/CHANGELOG.md +++ /dev/null @@ -1,265 +0,0 @@ -### 3.5.0 (February 12, 2016) - -Adds: - -- `unverified` - -Refines: - -- `verified` - -### 3.4.1 (January 24, 2016) - -This includes various SVG viewport refinements. - -Refines: - -- `thumbs-down` -- `logo-github` - -### 3.4.0 (January 22, 2016) - -Adds: - -- `verified` -- `smiley` - -Removes: - -- `color-mode` - -Refines: - -- `primitive-dot` -- `horizontal-rule` -- `triangle-down` -- `triangle-up` -- `triangle-left` -- `triangle-right` -- `globe` -- `flame` -- `comment-discussion` - -### 3.3.0 (November 12, 2015) - -Adds: - -- `logo-gist` - -Resizes all our SVG to be 16x16 instead of 1024x1024 - -### 3.2.0 (November 6, 2015) - -Adds: - -- `bold` -- `text-size` -- `italic` -- `tasklist` - -It also normalizes some styling in: - -- `list-unordered` -- `list-ordered` -- `quote` -- `mention` -- `bookmark` -- `threebars` - -Removes - -- `screen-normal` -- `screen-full` - - -### 3.1.0 (August 13, 2015) - -Adds - -- `shield` - -This thickens stroke widths slightly on the following icons: - -- `circle-slash` -- `clock` -- `cloud-upload` -- `cloud-download` -- `dashboard` -- `info` -- `issue-closed` -- `issue` -- `issue-reopened` -- `history` -- `question` -- `search` - -Fills `comment-discussion` - -Thickens `x` to match `checkmark` - -### 3.0.1 (August 10, 2015) - -Some files were missing in `3.0.0` - -### 3.0.0 (August 10, 2015) - -Removes - -- `microscope` -- `beer` -- `split` -- `puzzle` -- `steps` -- `podium` -- `timer` -- all `alignment` icons -- all `move` icons -- all `playback` icons -- all `jump` icons - -Adds - -- `beaker` -- `bell` -- `desktop-download` -- `watch` - -Line-weight changes, sizing normalization, and new drawings - -- `circle-slash` -- `lock` -- `cloud-upload` -- `cloud-download` -- `plus` -- `✕` -- `broadcast` -- `lock` -- all `repo` icons -- organization -- person -- all `chevrons` & `triangles` -- all `diff` icons -- `clippy` -- all `issue` and circular icons -- `rss` -- `ruby` -- `cancel` -- `settings` -- `mirror` -- `external-link` -- `history` -- `gear` -- `settings` -- `info` -- `history` -- `package` -- `gist-secret` -- `rocket` -- `law` -- `telescope` -- `search` -- `tag` -- `normal-screen` -- `iphone` -- `no-new-line` -- `desktop` -- all `git` icons -- `circuit-board` -- `heart` -- `home` -- `briefcase` -- `wiki` -- `bookmark` -- `briefcase` -- `calendar` -- `color-mode` -- `comment` -- `discussions` -- `credit-card` -- `dashboard` -- `camera` -- `video` -- `bug` -- `desktop` -- `ellipses` -- `eye` -- all `files` & `folders` -- `fold` -- `unfold` -- `gift` -- `graph` -- `hubot` -- `inbox` -- `jersey` -- `keyboard` -- `light-bulb` -- `link` -- `location` -- `mail` -- `mail-read` -- `marker` -- `plug` -- `mute` -- `pencil` -- `push-pin` -- `fullscreen` -- `unfullscreen` -- `server` -- `sign-in` -- `sign-out` -- `tag` -- `terminal` -- `thumbs-up` -- `thumbs-down` -- `trash` -- `unmute` -- `versions` -- `gist` -- `key` -- `megaphone` -- `checklist` - -## 2.4.1 (June 2, 2015) - -- Add the scss file I forgot to include - -## 2.4.0 (June 2, 2015) - -- Add `octicons.scss` -- Revert path changes to `sprockets-octicons.scss`, as they broke octicons in sprockets. - -## 2.3.0 (May 28, 2015) - -- Add a path variable to `sprockets-octicons.scss` to be consistent with octicons.less` - -## 2.2.3 (May 21, 2015) - -- Use SPDX license identifiers in package.json - -## 2.2.2 (April 1, 2015) - -Fixes file icons for - -- `file-binary` -- `file-code` -- `file-media` -- `file-pdf` -- `file-symlink-file` -- `file-text` -- `file-zip` - -## 2.2.1 (March 30, 2015) - -- Fix vector artifact and smooth curves in `mark-github` - -## 2.2.0 (Feb 18, 2015) - -- Add two new icons: `thumbsup` and `thumbsdown` - -## 2.0.1 (June 16, 2014) - -- Add mention of github.com/logos to the license - -## 2.0.0 (June 16, 2014) - -- Hello world diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/CONTRIBUTING.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/CONTRIBUTING.md deleted file mode 100644 index 57694316..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/CONTRIBUTING.md +++ /dev/null @@ -1,3 +0,0 @@ -The contents of */octicons* */svg* are generated by an automated process. Changes to these files may be accepted, but may also be overwritten. - -Octicons is GitHub's icon font. At this time, new icons will only add icons when they are needed for GitHub products. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/LICENSE.txt deleted file mode 100644 index 2fe49fa0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/LICENSE.txt +++ /dev/null @@ -1,9 +0,0 @@ -(c) 2012-2016 GitHub - -When using the GitHub logos, be sure to follow the GitHub logo guidelines (https://github.com/logos) - -Font License: SIL OFL 1.1 (http://scripts.sil.org/OFL) -Applies to all font files - -Code License: MIT (http://choosealicense.com/licenses/mit/) -Applies to all other files diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/README.md deleted file mode 100644 index 04b3520b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/README.md +++ /dev/null @@ -1,138 +0,0 @@ -# Octicons! - -This is the [Bower][bower] package for [GitHub Octicons][octicons]. - -## Add Octicons to your project - -1. Create a new file called *bower.json* (if you don't have one already). - -2. Add a new line for the Octicon dependency, pointing to the correct repository: - - ``` json - { - "name": "my_great_project", - "dependencies": { - "octicons": "*" - } - } - ``` - -3. Run `bower install`. The Octicons styles will be downloaded to *bower_components/octicons*. - -4. Link to the `octicons.css` stylesheet in the `<head>` of your `<html>` page: - - ``` html - <link rel="stylesheet" href="bower_components/octicons/octicons/octicons.css"> - ``` - -4. Simply use an icon in your HTML page: - - ``` html - <span class="octicon octicon-microscope"></span> - ``` - -### Rails' asset pipeline - -Octicons includes a stylesheet specifically for [Rails 4/Sprockets][sprockets]. - -1. Create a new file called *vendor/assets/bower.json* (if you don't have one already). - -2. Add a new line for the Octicon dependency, pointing to the correct repository: - - ``` json - { - "name": "my_great_project", - "dependencies": { - "octicons": "*" - } - } - ``` - -3. `cd` into `vendor/assets` and run `bower install`. The Octicons styles will be downloaded to *vendor/assets/bower_components/octicons*. - -4. Open your config/application.rb, and add this line inside your Application: - - ``` ruby - config.assets.precompile += %w(*.svg *.eot *.woff *.ttf) - ``` - -5. In your application stylesheet, require `sprockets-octicons`: - - ``` css - /* - = require sprockets-octicons - */ - ``` - -6. Simply use an icon in your HTML page: - - ``` html - <span class="octicon octicon-flame"></span> - ``` - -7. If you want a view helper, add something like this to *app/helpers/application_helper.rb*: - - ``` ruby - def octicon(code) - content_tag :span, '', :class => "octicon octicon-#{code.to_s.dasherize}" - end - ``` - -## Installing locally - -It's easy to install octicons locally if you have [Homebrew](http://brew.sh/) installed. Simply run the following commands: - -``` -brew install caskroom/cask/brew-cask -brew tap "caskroom/fonts" -brew cask install "font-octicons" -``` - -## Best practices - -- Octicons look best in sizes that are multiples of 16px. You can update the size using the `font-size` CSS property. For example: - - ``` css - .octicon { - font-size: 32px; - } - ``` - -- Octicons are not monospaced. This lets them work well next to type, but it means they won’t stack nicely by default. If you intend to stack octicons, such as in navigation, you will want to add some CSS to make them the same width, and centered. For example: - - ``` css - .navigation .octicon { - width: 16px; - text-align: center; - } - ``` - -### Resources - -- [octicons.github.com](http://octicons.github.com/) - the Octicons website -- Read why [icon fonts are awesome](http://css-tricks.com/examples/IconFont/) -- How to compose your [HTML for icon font usage](http://css-tricks.com/html-for-icon-font-usage/) -- [sketch-octicons](https://github.com/JuanitoFatas/sketch-octicons) - Octicons icons as Sketch Symbols - -## Why can't I see the characters in Font Book?? - -Give this a try, you should be all set: - -![](http://cl.ly/image/2r1B1F2l3Q0D/content#png) - -## FAQ - -Check out [issues with the FAQ label](https://github.com/github/octicons/issues?q=is%3Aclosed+is%3Aissue+label%3AFAQ). - -## Versions - -Octicons operates similarly to [Semver](http://semver.org/) with the following version convention: - -- Major: Breaking changes — removed icons, markup changes, unicode switches, css renames, icon redesigns -- Minor: Non-breaking changes — new icons, new aliases, minor icon changes -- Patch: Unnoticeable tweaks — slight visual changes, package updates - - -[octicons]: http://octicons.github.com -[bower]: http://bower.io/ -[sprockets]: http://guides.rubyonrails.org/asset_pipeline.html diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/bower.json deleted file mode 100644 index 5b9fc4f8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/bower.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "octicons", - "description": "GitHub's icon font", - "license": [ - "OFL-1.1", - "MIT" - ], - "homepage": "https://octicons.github.com", - "authors": [ - "GitHub <support@github.com>" - ], - "main": [ - "octicons/sprockets-octicons.scss", - "octicons/octicons.eot", - "octicons/octicons.svg", - "octicons/octicons.ttf", - "octicons/octicons.woff" - ], - "keywords": [ - "GitHub", - "icons", - "font", - "web font", - "icon font" - ], - "ignore": [ - "**/.*", - "bower_components" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/README.md deleted file mode 100644 index 10070733..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/README.md +++ /dev/null @@ -1 +0,0 @@ -If you intend to install Octicons locally, install `octicons-local.ttf`. It should appear as “github-octicons” in your font list. It is specially designed not to conflict with GitHub's web fonts. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons-local.ttf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons-local.ttf deleted file mode 100644 index 8ab962f6..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons-local.ttf and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.css deleted file mode 100644 index c49658eb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.css +++ /dev/null @@ -1,226 +0,0 @@ -@font-face { - font-family: 'octicons'; - src: url('octicons.eot?#iefix') format('embedded-opentype'), - url('octicons.woff') format('woff'), - url('octicons.ttf') format('truetype'), - url('octicons.svg#octicons') format('svg'); - font-weight: normal; - font-style: normal; -} - -/* - -.octicon is optimized for 16px. -.mega-octicon is optimized for 32px but can be used larger. - -*/ -.octicon, .mega-octicon { - font: normal normal normal 16px/1 octicons; - display: inline-block; - text-decoration: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.mega-octicon { font-size: 32px; } - -.octicon-alert:before { content: '\f02d'} /*  */ -.octicon-arrow-down:before { content: '\f03f'} /*  */ -.octicon-arrow-left:before { content: '\f040'} /*  */ -.octicon-arrow-right:before { content: '\f03e'} /*  */ -.octicon-arrow-small-down:before { content: '\f0a0'} /*  */ -.octicon-arrow-small-left:before { content: '\f0a1'} /*  */ -.octicon-arrow-small-right:before { content: '\f071'} /*  */ -.octicon-arrow-small-up:before { content: '\f09f'} /*  */ -.octicon-arrow-up:before { content: '\f03d'} /*  */ -.octicon-microscope:before, -.octicon-beaker:before { content: '\f0dd'} /*  */ -.octicon-bell:before { content: '\f0de'} /*  */ -.octicon-bold:before { content: '\f0e2'} /*  */ -.octicon-book:before { content: '\f007'} /*  */ -.octicon-bookmark:before { content: '\f07b'} /*  */ -.octicon-briefcase:before { content: '\f0d3'} /*  */ -.octicon-broadcast:before { content: '\f048'} /*  */ -.octicon-browser:before { content: '\f0c5'} /*  */ -.octicon-bug:before { content: '\f091'} /*  */ -.octicon-calendar:before { content: '\f068'} /*  */ -.octicon-check:before { content: '\f03a'} /*  */ -.octicon-checklist:before { content: '\f076'} /*  */ -.octicon-chevron-down:before { content: '\f0a3'} /*  */ -.octicon-chevron-left:before { content: '\f0a4'} /*  */ -.octicon-chevron-right:before { content: '\f078'} /*  */ -.octicon-chevron-up:before { content: '\f0a2'} /*  */ -.octicon-circle-slash:before { content: '\f084'} /*  */ -.octicon-circuit-board:before { content: '\f0d6'} /*  */ -.octicon-clippy:before { content: '\f035'} /*  */ -.octicon-clock:before { content: '\f046'} /*  */ -.octicon-cloud-download:before { content: '\f00b'} /*  */ -.octicon-cloud-upload:before { content: '\f00c'} /*  */ -.octicon-code:before { content: '\f05f'} /*  */ -.octicon-comment-add:before, -.octicon-comment:before { content: '\f02b'} /*  */ -.octicon-comment-discussion:before { content: '\f04f'} /*  */ -.octicon-credit-card:before { content: '\f045'} /*  */ -.octicon-dash:before { content: '\f0ca'} /*  */ -.octicon-dashboard:before { content: '\f07d'} /*  */ -.octicon-database:before { content: '\f096'} /*  */ -.octicon-clone:before, -.octicon-desktop-download:before { content: '\f0dc'} /*  */ -.octicon-device-camera:before { content: '\f056'} /*  */ -.octicon-device-camera-video:before { content: '\f057'} /*  */ -.octicon-device-desktop:before { content: '\f27c'} /*  */ -.octicon-device-mobile:before { content: '\f038'} /*  */ -.octicon-diff:before { content: '\f04d'} /*  */ -.octicon-diff-added:before { content: '\f06b'} /*  */ -.octicon-diff-ignored:before { content: '\f099'} /*  */ -.octicon-diff-modified:before { content: '\f06d'} /*  */ -.octicon-diff-removed:before { content: '\f06c'} /*  */ -.octicon-diff-renamed:before { content: '\f06e'} /*  */ -.octicon-ellipsis:before { content: '\f09a'} /*  */ -.octicon-eye-unwatch:before, -.octicon-eye-watch:before, -.octicon-eye:before { content: '\f04e'} /*  */ -.octicon-file-binary:before { content: '\f094'} /*  */ -.octicon-file-code:before { content: '\f010'} /*  */ -.octicon-file-directory:before { content: '\f016'} /*  */ -.octicon-file-media:before { content: '\f012'} /*  */ -.octicon-file-pdf:before { content: '\f014'} /*  */ -.octicon-file-submodule:before { content: '\f017'} /*  */ -.octicon-file-symlink-directory:before { content: '\f0b1'} /*  */ -.octicon-file-symlink-file:before { content: '\f0b0'} /*  */ -.octicon-file-text:before { content: '\f011'} /*  */ -.octicon-file-zip:before { content: '\f013'} /*  */ -.octicon-flame:before { content: '\f0d2'} /*  */ -.octicon-fold:before { content: '\f0cc'} /*  */ -.octicon-gear:before { content: '\f02f'} /*  */ -.octicon-gift:before { content: '\f042'} /*  */ -.octicon-gist:before { content: '\f00e'} /*  */ -.octicon-gist-secret:before { content: '\f08c'} /*  */ -.octicon-git-branch-create:before, -.octicon-git-branch-delete:before, -.octicon-git-branch:before { content: '\f020'} /*  */ -.octicon-git-commit:before { content: '\f01f'} /*  */ -.octicon-git-compare:before { content: '\f0ac'} /*  */ -.octicon-git-merge:before { content: '\f023'} /*  */ -.octicon-git-pull-request-abandoned:before, -.octicon-git-pull-request:before { content: '\f009'} /*  */ -.octicon-globe:before { content: '\f0b6'} /*  */ -.octicon-graph:before { content: '\f043'} /*  */ -.octicon-heart:before { content: '\2665'} /* ♥ */ -.octicon-history:before { content: '\f07e'} /*  */ -.octicon-home:before { content: '\f08d'} /*  */ -.octicon-horizontal-rule:before { content: '\f070'} /*  */ -.octicon-hubot:before { content: '\f09d'} /*  */ -.octicon-inbox:before { content: '\f0cf'} /*  */ -.octicon-info:before { content: '\f059'} /*  */ -.octicon-issue-closed:before { content: '\f028'} /*  */ -.octicon-issue-opened:before { content: '\f026'} /*  */ -.octicon-issue-reopened:before { content: '\f027'} /*  */ -.octicon-italic:before { content: '\f0e4'} /*  */ -.octicon-jersey:before { content: '\f019'} /*  */ -.octicon-key:before { content: '\f049'} /*  */ -.octicon-keyboard:before { content: '\f00d'} /*  */ -.octicon-law:before { content: '\f0d8'} /*  */ -.octicon-light-bulb:before { content: '\f000'} /*  */ -.octicon-link:before { content: '\f05c'} /*  */ -.octicon-link-external:before { content: '\f07f'} /*  */ -.octicon-list-ordered:before { content: '\f062'} /*  */ -.octicon-list-unordered:before { content: '\f061'} /*  */ -.octicon-location:before { content: '\f060'} /*  */ -.octicon-gist-private:before, -.octicon-mirror-private:before, -.octicon-git-fork-private:before, -.octicon-lock:before { content: '\f06a'} /*  */ -.octicon-logo-gist:before { content: '\f0ad'} /*  */ -.octicon-logo-github:before { content: '\f092'} /*  */ -.octicon-mail:before { content: '\f03b'} /*  */ -.octicon-mail-read:before { content: '\f03c'} /*  */ -.octicon-mail-reply:before { content: '\f051'} /*  */ -.octicon-mark-github:before { content: '\f00a'} /*  */ -.octicon-markdown:before { content: '\f0c9'} /*  */ -.octicon-megaphone:before { content: '\f077'} /*  */ -.octicon-mention:before { content: '\f0be'} /*  */ -.octicon-milestone:before { content: '\f075'} /*  */ -.octicon-mirror-public:before, -.octicon-mirror:before { content: '\f024'} /*  */ -.octicon-mortar-board:before { content: '\f0d7'} /*  */ -.octicon-mute:before { content: '\f080'} /*  */ -.octicon-no-newline:before { content: '\f09c'} /*  */ -.octicon-octoface:before { content: '\f008'} /*  */ -.octicon-organization:before { content: '\f037'} /*  */ -.octicon-package:before { content: '\f0c4'} /*  */ -.octicon-paintcan:before { content: '\f0d1'} /*  */ -.octicon-pencil:before { content: '\f058'} /*  */ -.octicon-person-add:before, -.octicon-person-follow:before, -.octicon-person:before { content: '\f018'} /*  */ -.octicon-pin:before { content: '\f041'} /*  */ -.octicon-plug:before { content: '\f0d4'} /*  */ -.octicon-repo-create:before, -.octicon-gist-new:before, -.octicon-file-directory-create:before, -.octicon-file-add:before, -.octicon-plus:before { content: '\f05d'} /*  */ -.octicon-primitive-dot:before { content: '\f052'} /*  */ -.octicon-primitive-square:before { content: '\f053'} /*  */ -.octicon-pulse:before { content: '\f085'} /*  */ -.octicon-question:before { content: '\f02c'} /*  */ -.octicon-quote:before { content: '\f063'} /*  */ -.octicon-radio-tower:before { content: '\f030'} /*  */ -.octicon-repo-delete:before, -.octicon-repo:before { content: '\f001'} /*  */ -.octicon-repo-clone:before { content: '\f04c'} /*  */ -.octicon-repo-force-push:before { content: '\f04a'} /*  */ -.octicon-gist-fork:before, -.octicon-repo-forked:before { content: '\f002'} /*  */ -.octicon-repo-pull:before { content: '\f006'} /*  */ -.octicon-repo-push:before { content: '\f005'} /*  */ -.octicon-rocket:before { content: '\f033'} /*  */ -.octicon-rss:before { content: '\f034'} /*  */ -.octicon-ruby:before { content: '\f047'} /*  */ -.octicon-search-save:before, -.octicon-search:before { content: '\f02e'} /*  */ -.octicon-server:before { content: '\f097'} /*  */ -.octicon-settings:before { content: '\f07c'} /*  */ -.octicon-shield:before { content: '\f0e1'} /*  */ -.octicon-log-in:before, -.octicon-sign-in:before { content: '\f036'} /*  */ -.octicon-log-out:before, -.octicon-sign-out:before { content: '\f032'} /*  */ -.octicon-smiley:before { content: '\f0e7'} /*  */ -.octicon-squirrel:before { content: '\f0b2'} /*  */ -.octicon-star-add:before, -.octicon-star-delete:before, -.octicon-star:before { content: '\f02a'} /*  */ -.octicon-stop:before { content: '\f08f'} /*  */ -.octicon-repo-sync:before, -.octicon-sync:before { content: '\f087'} /*  */ -.octicon-tag-remove:before, -.octicon-tag-add:before, -.octicon-tag:before { content: '\f015'} /*  */ -.octicon-tasklist:before { content: '\f0e5'} /*  */ -.octicon-telescope:before { content: '\f088'} /*  */ -.octicon-terminal:before { content: '\f0c8'} /*  */ -.octicon-text-size:before { content: '\f0e3'} /*  */ -.octicon-three-bars:before { content: '\f05e'} /*  */ -.octicon-thumbsdown:before { content: '\f0db'} /*  */ -.octicon-thumbsup:before { content: '\f0da'} /*  */ -.octicon-tools:before { content: '\f031'} /*  */ -.octicon-trashcan:before { content: '\f0d0'} /*  */ -.octicon-triangle-down:before { content: '\f05b'} /*  */ -.octicon-triangle-left:before { content: '\f044'} /*  */ -.octicon-triangle-right:before { content: '\f05a'} /*  */ -.octicon-triangle-up:before { content: '\f0aa'} /*  */ -.octicon-unfold:before { content: '\f039'} /*  */ -.octicon-unmute:before { content: '\f0ba'} /*  */ -.octicon-unverified:before { content: '\f0e8'} /*  */ -.octicon-verified:before { content: '\f0e6'} /*  */ -.octicon-versions:before { content: '\f064'} /*  */ -.octicon-watch:before { content: '\f0e0'} /*  */ -.octicon-remove-close:before, -.octicon-x:before { content: '\f081'} /*  */ -.octicon-zap:before { content: '\26A1'} /* ⚡ */ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.eot b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.eot deleted file mode 100644 index 97502f12..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.eot and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.less b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.less deleted file mode 100644 index 1262a6c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.less +++ /dev/null @@ -1,225 +0,0 @@ -@octicons-font-path: "."; -@octicons-version: "22dab811a5aa6c7ae0f71074a3480b993f7ef79b"; - -@font-face { - font-family: 'octicons'; - src: ~"url('@{octicons-font-path}/octicons.eot?#iefix&v=@{octicons-version}') format('embedded-opentype')", - ~"url('@{octicons-font-path}/octicons.woff?v=@{octicons-version}') format('woff')", - ~"url('@{octicons-font-path}/octicons.ttf?v=@{octicons-version}') format('truetype')", - ~"url('@{octicons-font-path}/octicons.svg?v=@{octicons-version}#octicons') format('svg')"; - font-weight: normal; - font-style: normal; -} - -// .octicon is optimized for 16px. -// .mega-octicon is optimized for 32px but can be used larger. -.octicon, .mega-octicon { - font: normal normal normal 16px/1 octicons; - display: inline-block; - text-decoration: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.mega-octicon { font-size: 32px; } - -.octicon-alert:before { content: '\f02d'} /*  */ -.octicon-arrow-down:before { content: '\f03f'} /*  */ -.octicon-arrow-left:before { content: '\f040'} /*  */ -.octicon-arrow-right:before { content: '\f03e'} /*  */ -.octicon-arrow-small-down:before { content: '\f0a0'} /*  */ -.octicon-arrow-small-left:before { content: '\f0a1'} /*  */ -.octicon-arrow-small-right:before { content: '\f071'} /*  */ -.octicon-arrow-small-up:before { content: '\f09f'} /*  */ -.octicon-arrow-up:before { content: '\f03d'} /*  */ -.octicon-microscope:before, -.octicon-beaker:before { content: '\f0dd'} /*  */ -.octicon-bell:before { content: '\f0de'} /*  */ -.octicon-bold:before { content: '\f0e2'} /*  */ -.octicon-book:before { content: '\f007'} /*  */ -.octicon-bookmark:before { content: '\f07b'} /*  */ -.octicon-briefcase:before { content: '\f0d3'} /*  */ -.octicon-broadcast:before { content: '\f048'} /*  */ -.octicon-browser:before { content: '\f0c5'} /*  */ -.octicon-bug:before { content: '\f091'} /*  */ -.octicon-calendar:before { content: '\f068'} /*  */ -.octicon-check:before { content: '\f03a'} /*  */ -.octicon-checklist:before { content: '\f076'} /*  */ -.octicon-chevron-down:before { content: '\f0a3'} /*  */ -.octicon-chevron-left:before { content: '\f0a4'} /*  */ -.octicon-chevron-right:before { content: '\f078'} /*  */ -.octicon-chevron-up:before { content: '\f0a2'} /*  */ -.octicon-circle-slash:before { content: '\f084'} /*  */ -.octicon-circuit-board:before { content: '\f0d6'} /*  */ -.octicon-clippy:before { content: '\f035'} /*  */ -.octicon-clock:before { content: '\f046'} /*  */ -.octicon-cloud-download:before { content: '\f00b'} /*  */ -.octicon-cloud-upload:before { content: '\f00c'} /*  */ -.octicon-code:before { content: '\f05f'} /*  */ -.octicon-comment-add:before, -.octicon-comment:before { content: '\f02b'} /*  */ -.octicon-comment-discussion:before { content: '\f04f'} /*  */ -.octicon-credit-card:before { content: '\f045'} /*  */ -.octicon-dash:before { content: '\f0ca'} /*  */ -.octicon-dashboard:before { content: '\f07d'} /*  */ -.octicon-database:before { content: '\f096'} /*  */ -.octicon-clone:before, -.octicon-desktop-download:before { content: '\f0dc'} /*  */ -.octicon-device-camera:before { content: '\f056'} /*  */ -.octicon-device-camera-video:before { content: '\f057'} /*  */ -.octicon-device-desktop:before { content: '\f27c'} /*  */ -.octicon-device-mobile:before { content: '\f038'} /*  */ -.octicon-diff:before { content: '\f04d'} /*  */ -.octicon-diff-added:before { content: '\f06b'} /*  */ -.octicon-diff-ignored:before { content: '\f099'} /*  */ -.octicon-diff-modified:before { content: '\f06d'} /*  */ -.octicon-diff-removed:before { content: '\f06c'} /*  */ -.octicon-diff-renamed:before { content: '\f06e'} /*  */ -.octicon-ellipsis:before { content: '\f09a'} /*  */ -.octicon-eye-unwatch:before, -.octicon-eye-watch:before, -.octicon-eye:before { content: '\f04e'} /*  */ -.octicon-file-binary:before { content: '\f094'} /*  */ -.octicon-file-code:before { content: '\f010'} /*  */ -.octicon-file-directory:before { content: '\f016'} /*  */ -.octicon-file-media:before { content: '\f012'} /*  */ -.octicon-file-pdf:before { content: '\f014'} /*  */ -.octicon-file-submodule:before { content: '\f017'} /*  */ -.octicon-file-symlink-directory:before { content: '\f0b1'} /*  */ -.octicon-file-symlink-file:before { content: '\f0b0'} /*  */ -.octicon-file-text:before { content: '\f011'} /*  */ -.octicon-file-zip:before { content: '\f013'} /*  */ -.octicon-flame:before { content: '\f0d2'} /*  */ -.octicon-fold:before { content: '\f0cc'} /*  */ -.octicon-gear:before { content: '\f02f'} /*  */ -.octicon-gift:before { content: '\f042'} /*  */ -.octicon-gist:before { content: '\f00e'} /*  */ -.octicon-gist-secret:before { content: '\f08c'} /*  */ -.octicon-git-branch-create:before, -.octicon-git-branch-delete:before, -.octicon-git-branch:before { content: '\f020'} /*  */ -.octicon-git-commit:before { content: '\f01f'} /*  */ -.octicon-git-compare:before { content: '\f0ac'} /*  */ -.octicon-git-merge:before { content: '\f023'} /*  */ -.octicon-git-pull-request-abandoned:before, -.octicon-git-pull-request:before { content: '\f009'} /*  */ -.octicon-globe:before { content: '\f0b6'} /*  */ -.octicon-graph:before { content: '\f043'} /*  */ -.octicon-heart:before { content: '\2665'} /* ♥ */ -.octicon-history:before { content: '\f07e'} /*  */ -.octicon-home:before { content: '\f08d'} /*  */ -.octicon-horizontal-rule:before { content: '\f070'} /*  */ -.octicon-hubot:before { content: '\f09d'} /*  */ -.octicon-inbox:before { content: '\f0cf'} /*  */ -.octicon-info:before { content: '\f059'} /*  */ -.octicon-issue-closed:before { content: '\f028'} /*  */ -.octicon-issue-opened:before { content: '\f026'} /*  */ -.octicon-issue-reopened:before { content: '\f027'} /*  */ -.octicon-italic:before { content: '\f0e4'} /*  */ -.octicon-jersey:before { content: '\f019'} /*  */ -.octicon-key:before { content: '\f049'} /*  */ -.octicon-keyboard:before { content: '\f00d'} /*  */ -.octicon-law:before { content: '\f0d8'} /*  */ -.octicon-light-bulb:before { content: '\f000'} /*  */ -.octicon-link:before { content: '\f05c'} /*  */ -.octicon-link-external:before { content: '\f07f'} /*  */ -.octicon-list-ordered:before { content: '\f062'} /*  */ -.octicon-list-unordered:before { content: '\f061'} /*  */ -.octicon-location:before { content: '\f060'} /*  */ -.octicon-gist-private:before, -.octicon-mirror-private:before, -.octicon-git-fork-private:before, -.octicon-lock:before { content: '\f06a'} /*  */ -.octicon-logo-gist:before { content: '\f0ad'} /*  */ -.octicon-logo-github:before { content: '\f092'} /*  */ -.octicon-mail:before { content: '\f03b'} /*  */ -.octicon-mail-read:before { content: '\f03c'} /*  */ -.octicon-mail-reply:before { content: '\f051'} /*  */ -.octicon-mark-github:before { content: '\f00a'} /*  */ -.octicon-markdown:before { content: '\f0c9'} /*  */ -.octicon-megaphone:before { content: '\f077'} /*  */ -.octicon-mention:before { content: '\f0be'} /*  */ -.octicon-milestone:before { content: '\f075'} /*  */ -.octicon-mirror-public:before, -.octicon-mirror:before { content: '\f024'} /*  */ -.octicon-mortar-board:before { content: '\f0d7'} /*  */ -.octicon-mute:before { content: '\f080'} /*  */ -.octicon-no-newline:before { content: '\f09c'} /*  */ -.octicon-octoface:before { content: '\f008'} /*  */ -.octicon-organization:before { content: '\f037'} /*  */ -.octicon-package:before { content: '\f0c4'} /*  */ -.octicon-paintcan:before { content: '\f0d1'} /*  */ -.octicon-pencil:before { content: '\f058'} /*  */ -.octicon-person-add:before, -.octicon-person-follow:before, -.octicon-person:before { content: '\f018'} /*  */ -.octicon-pin:before { content: '\f041'} /*  */ -.octicon-plug:before { content: '\f0d4'} /*  */ -.octicon-repo-create:before, -.octicon-gist-new:before, -.octicon-file-directory-create:before, -.octicon-file-add:before, -.octicon-plus:before { content: '\f05d'} /*  */ -.octicon-primitive-dot:before { content: '\f052'} /*  */ -.octicon-primitive-square:before { content: '\f053'} /*  */ -.octicon-pulse:before { content: '\f085'} /*  */ -.octicon-question:before { content: '\f02c'} /*  */ -.octicon-quote:before { content: '\f063'} /*  */ -.octicon-radio-tower:before { content: '\f030'} /*  */ -.octicon-repo-delete:before, -.octicon-repo:before { content: '\f001'} /*  */ -.octicon-repo-clone:before { content: '\f04c'} /*  */ -.octicon-repo-force-push:before { content: '\f04a'} /*  */ -.octicon-gist-fork:before, -.octicon-repo-forked:before { content: '\f002'} /*  */ -.octicon-repo-pull:before { content: '\f006'} /*  */ -.octicon-repo-push:before { content: '\f005'} /*  */ -.octicon-rocket:before { content: '\f033'} /*  */ -.octicon-rss:before { content: '\f034'} /*  */ -.octicon-ruby:before { content: '\f047'} /*  */ -.octicon-search-save:before, -.octicon-search:before { content: '\f02e'} /*  */ -.octicon-server:before { content: '\f097'} /*  */ -.octicon-settings:before { content: '\f07c'} /*  */ -.octicon-shield:before { content: '\f0e1'} /*  */ -.octicon-log-in:before, -.octicon-sign-in:before { content: '\f036'} /*  */ -.octicon-log-out:before, -.octicon-sign-out:before { content: '\f032'} /*  */ -.octicon-smiley:before { content: '\f0e7'} /*  */ -.octicon-squirrel:before { content: '\f0b2'} /*  */ -.octicon-star-add:before, -.octicon-star-delete:before, -.octicon-star:before { content: '\f02a'} /*  */ -.octicon-stop:before { content: '\f08f'} /*  */ -.octicon-repo-sync:before, -.octicon-sync:before { content: '\f087'} /*  */ -.octicon-tag-remove:before, -.octicon-tag-add:before, -.octicon-tag:before { content: '\f015'} /*  */ -.octicon-tasklist:before { content: '\f0e5'} /*  */ -.octicon-telescope:before { content: '\f088'} /*  */ -.octicon-terminal:before { content: '\f0c8'} /*  */ -.octicon-text-size:before { content: '\f0e3'} /*  */ -.octicon-three-bars:before { content: '\f05e'} /*  */ -.octicon-thumbsdown:before { content: '\f0db'} /*  */ -.octicon-thumbsup:before { content: '\f0da'} /*  */ -.octicon-tools:before { content: '\f031'} /*  */ -.octicon-trashcan:before { content: '\f0d0'} /*  */ -.octicon-triangle-down:before { content: '\f05b'} /*  */ -.octicon-triangle-left:before { content: '\f044'} /*  */ -.octicon-triangle-right:before { content: '\f05a'} /*  */ -.octicon-triangle-up:before { content: '\f0aa'} /*  */ -.octicon-unfold:before { content: '\f039'} /*  */ -.octicon-unmute:before { content: '\f0ba'} /*  */ -.octicon-unverified:before { content: '\f0e8'} /*  */ -.octicon-verified:before { content: '\f0e6'} /*  */ -.octicon-versions:before { content: '\f064'} /*  */ -.octicon-watch:before { content: '\f0e0'} /*  */ -.octicon-remove-close:before, -.octicon-x:before { content: '\f081'} /*  */ -.octicon-zap:before { content: '\26A1'} /* ⚡ */ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.scss b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.scss deleted file mode 100644 index 972ed5cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.scss +++ /dev/null @@ -1,225 +0,0 @@ -$octicons-font-path: "." !default; -$octicons-version: "22dab811a5aa6c7ae0f71074a3480b993f7ef79b"; - -@font-face { - font-family: 'octicons'; - src: url('#{$octicons-font-path}/octicons.eot?#iefix&v=#{$octicons-version}') format('embedded-opentype'), - url('#{$octicons-font-path}/octicons.woff?v=#{$octicons-version}') format('woff'), - url('#{$octicons-font-path}/octicons.ttf?v=#{$octicons-version}') format('truetype'), - url('#{$octicons-font-path}/octicons.svg?v=#{$octicons-version}#octicons') format('svg'); - font-weight: normal; - font-style: normal; -} - -// .octicon is optimized for 16px. -// .mega-octicon is optimized for 32px but can be used larger. -.octicon, .mega-octicon { - font: normal normal normal 16px/1 octicons; - display: inline-block; - text-decoration: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.mega-octicon { font-size: 32px; } - -.octicon-alert:before { content: '\f02d'} /*  */ -.octicon-arrow-down:before { content: '\f03f'} /*  */ -.octicon-arrow-left:before { content: '\f040'} /*  */ -.octicon-arrow-right:before { content: '\f03e'} /*  */ -.octicon-arrow-small-down:before { content: '\f0a0'} /*  */ -.octicon-arrow-small-left:before { content: '\f0a1'} /*  */ -.octicon-arrow-small-right:before { content: '\f071'} /*  */ -.octicon-arrow-small-up:before { content: '\f09f'} /*  */ -.octicon-arrow-up:before { content: '\f03d'} /*  */ -.octicon-microscope:before, -.octicon-beaker:before { content: '\f0dd'} /*  */ -.octicon-bell:before { content: '\f0de'} /*  */ -.octicon-bold:before { content: '\f0e2'} /*  */ -.octicon-book:before { content: '\f007'} /*  */ -.octicon-bookmark:before { content: '\f07b'} /*  */ -.octicon-briefcase:before { content: '\f0d3'} /*  */ -.octicon-broadcast:before { content: '\f048'} /*  */ -.octicon-browser:before { content: '\f0c5'} /*  */ -.octicon-bug:before { content: '\f091'} /*  */ -.octicon-calendar:before { content: '\f068'} /*  */ -.octicon-check:before { content: '\f03a'} /*  */ -.octicon-checklist:before { content: '\f076'} /*  */ -.octicon-chevron-down:before { content: '\f0a3'} /*  */ -.octicon-chevron-left:before { content: '\f0a4'} /*  */ -.octicon-chevron-right:before { content: '\f078'} /*  */ -.octicon-chevron-up:before { content: '\f0a2'} /*  */ -.octicon-circle-slash:before { content: '\f084'} /*  */ -.octicon-circuit-board:before { content: '\f0d6'} /*  */ -.octicon-clippy:before { content: '\f035'} /*  */ -.octicon-clock:before { content: '\f046'} /*  */ -.octicon-cloud-download:before { content: '\f00b'} /*  */ -.octicon-cloud-upload:before { content: '\f00c'} /*  */ -.octicon-code:before { content: '\f05f'} /*  */ -.octicon-comment-add:before, -.octicon-comment:before { content: '\f02b'} /*  */ -.octicon-comment-discussion:before { content: '\f04f'} /*  */ -.octicon-credit-card:before { content: '\f045'} /*  */ -.octicon-dash:before { content: '\f0ca'} /*  */ -.octicon-dashboard:before { content: '\f07d'} /*  */ -.octicon-database:before { content: '\f096'} /*  */ -.octicon-clone:before, -.octicon-desktop-download:before { content: '\f0dc'} /*  */ -.octicon-device-camera:before { content: '\f056'} /*  */ -.octicon-device-camera-video:before { content: '\f057'} /*  */ -.octicon-device-desktop:before { content: '\f27c'} /*  */ -.octicon-device-mobile:before { content: '\f038'} /*  */ -.octicon-diff:before { content: '\f04d'} /*  */ -.octicon-diff-added:before { content: '\f06b'} /*  */ -.octicon-diff-ignored:before { content: '\f099'} /*  */ -.octicon-diff-modified:before { content: '\f06d'} /*  */ -.octicon-diff-removed:before { content: '\f06c'} /*  */ -.octicon-diff-renamed:before { content: '\f06e'} /*  */ -.octicon-ellipsis:before { content: '\f09a'} /*  */ -.octicon-eye-unwatch:before, -.octicon-eye-watch:before, -.octicon-eye:before { content: '\f04e'} /*  */ -.octicon-file-binary:before { content: '\f094'} /*  */ -.octicon-file-code:before { content: '\f010'} /*  */ -.octicon-file-directory:before { content: '\f016'} /*  */ -.octicon-file-media:before { content: '\f012'} /*  */ -.octicon-file-pdf:before { content: '\f014'} /*  */ -.octicon-file-submodule:before { content: '\f017'} /*  */ -.octicon-file-symlink-directory:before { content: '\f0b1'} /*  */ -.octicon-file-symlink-file:before { content: '\f0b0'} /*  */ -.octicon-file-text:before { content: '\f011'} /*  */ -.octicon-file-zip:before { content: '\f013'} /*  */ -.octicon-flame:before { content: '\f0d2'} /*  */ -.octicon-fold:before { content: '\f0cc'} /*  */ -.octicon-gear:before { content: '\f02f'} /*  */ -.octicon-gift:before { content: '\f042'} /*  */ -.octicon-gist:before { content: '\f00e'} /*  */ -.octicon-gist-secret:before { content: '\f08c'} /*  */ -.octicon-git-branch-create:before, -.octicon-git-branch-delete:before, -.octicon-git-branch:before { content: '\f020'} /*  */ -.octicon-git-commit:before { content: '\f01f'} /*  */ -.octicon-git-compare:before { content: '\f0ac'} /*  */ -.octicon-git-merge:before { content: '\f023'} /*  */ -.octicon-git-pull-request-abandoned:before, -.octicon-git-pull-request:before { content: '\f009'} /*  */ -.octicon-globe:before { content: '\f0b6'} /*  */ -.octicon-graph:before { content: '\f043'} /*  */ -.octicon-heart:before { content: '\2665'} /* ♥ */ -.octicon-history:before { content: '\f07e'} /*  */ -.octicon-home:before { content: '\f08d'} /*  */ -.octicon-horizontal-rule:before { content: '\f070'} /*  */ -.octicon-hubot:before { content: '\f09d'} /*  */ -.octicon-inbox:before { content: '\f0cf'} /*  */ -.octicon-info:before { content: '\f059'} /*  */ -.octicon-issue-closed:before { content: '\f028'} /*  */ -.octicon-issue-opened:before { content: '\f026'} /*  */ -.octicon-issue-reopened:before { content: '\f027'} /*  */ -.octicon-italic:before { content: '\f0e4'} /*  */ -.octicon-jersey:before { content: '\f019'} /*  */ -.octicon-key:before { content: '\f049'} /*  */ -.octicon-keyboard:before { content: '\f00d'} /*  */ -.octicon-law:before { content: '\f0d8'} /*  */ -.octicon-light-bulb:before { content: '\f000'} /*  */ -.octicon-link:before { content: '\f05c'} /*  */ -.octicon-link-external:before { content: '\f07f'} /*  */ -.octicon-list-ordered:before { content: '\f062'} /*  */ -.octicon-list-unordered:before { content: '\f061'} /*  */ -.octicon-location:before { content: '\f060'} /*  */ -.octicon-gist-private:before, -.octicon-mirror-private:before, -.octicon-git-fork-private:before, -.octicon-lock:before { content: '\f06a'} /*  */ -.octicon-logo-gist:before { content: '\f0ad'} /*  */ -.octicon-logo-github:before { content: '\f092'} /*  */ -.octicon-mail:before { content: '\f03b'} /*  */ -.octicon-mail-read:before { content: '\f03c'} /*  */ -.octicon-mail-reply:before { content: '\f051'} /*  */ -.octicon-mark-github:before { content: '\f00a'} /*  */ -.octicon-markdown:before { content: '\f0c9'} /*  */ -.octicon-megaphone:before { content: '\f077'} /*  */ -.octicon-mention:before { content: '\f0be'} /*  */ -.octicon-milestone:before { content: '\f075'} /*  */ -.octicon-mirror-public:before, -.octicon-mirror:before { content: '\f024'} /*  */ -.octicon-mortar-board:before { content: '\f0d7'} /*  */ -.octicon-mute:before { content: '\f080'} /*  */ -.octicon-no-newline:before { content: '\f09c'} /*  */ -.octicon-octoface:before { content: '\f008'} /*  */ -.octicon-organization:before { content: '\f037'} /*  */ -.octicon-package:before { content: '\f0c4'} /*  */ -.octicon-paintcan:before { content: '\f0d1'} /*  */ -.octicon-pencil:before { content: '\f058'} /*  */ -.octicon-person-add:before, -.octicon-person-follow:before, -.octicon-person:before { content: '\f018'} /*  */ -.octicon-pin:before { content: '\f041'} /*  */ -.octicon-plug:before { content: '\f0d4'} /*  */ -.octicon-repo-create:before, -.octicon-gist-new:before, -.octicon-file-directory-create:before, -.octicon-file-add:before, -.octicon-plus:before { content: '\f05d'} /*  */ -.octicon-primitive-dot:before { content: '\f052'} /*  */ -.octicon-primitive-square:before { content: '\f053'} /*  */ -.octicon-pulse:before { content: '\f085'} /*  */ -.octicon-question:before { content: '\f02c'} /*  */ -.octicon-quote:before { content: '\f063'} /*  */ -.octicon-radio-tower:before { content: '\f030'} /*  */ -.octicon-repo-delete:before, -.octicon-repo:before { content: '\f001'} /*  */ -.octicon-repo-clone:before { content: '\f04c'} /*  */ -.octicon-repo-force-push:before { content: '\f04a'} /*  */ -.octicon-gist-fork:before, -.octicon-repo-forked:before { content: '\f002'} /*  */ -.octicon-repo-pull:before { content: '\f006'} /*  */ -.octicon-repo-push:before { content: '\f005'} /*  */ -.octicon-rocket:before { content: '\f033'} /*  */ -.octicon-rss:before { content: '\f034'} /*  */ -.octicon-ruby:before { content: '\f047'} /*  */ -.octicon-search-save:before, -.octicon-search:before { content: '\f02e'} /*  */ -.octicon-server:before { content: '\f097'} /*  */ -.octicon-settings:before { content: '\f07c'} /*  */ -.octicon-shield:before { content: '\f0e1'} /*  */ -.octicon-log-in:before, -.octicon-sign-in:before { content: '\f036'} /*  */ -.octicon-log-out:before, -.octicon-sign-out:before { content: '\f032'} /*  */ -.octicon-smiley:before { content: '\f0e7'} /*  */ -.octicon-squirrel:before { content: '\f0b2'} /*  */ -.octicon-star-add:before, -.octicon-star-delete:before, -.octicon-star:before { content: '\f02a'} /*  */ -.octicon-stop:before { content: '\f08f'} /*  */ -.octicon-repo-sync:before, -.octicon-sync:before { content: '\f087'} /*  */ -.octicon-tag-remove:before, -.octicon-tag-add:before, -.octicon-tag:before { content: '\f015'} /*  */ -.octicon-tasklist:before { content: '\f0e5'} /*  */ -.octicon-telescope:before { content: '\f088'} /*  */ -.octicon-terminal:before { content: '\f0c8'} /*  */ -.octicon-text-size:before { content: '\f0e3'} /*  */ -.octicon-three-bars:before { content: '\f05e'} /*  */ -.octicon-thumbsdown:before { content: '\f0db'} /*  */ -.octicon-thumbsup:before { content: '\f0da'} /*  */ -.octicon-tools:before { content: '\f031'} /*  */ -.octicon-trashcan:before { content: '\f0d0'} /*  */ -.octicon-triangle-down:before { content: '\f05b'} /*  */ -.octicon-triangle-left:before { content: '\f044'} /*  */ -.octicon-triangle-right:before { content: '\f05a'} /*  */ -.octicon-triangle-up:before { content: '\f0aa'} /*  */ -.octicon-unfold:before { content: '\f039'} /*  */ -.octicon-unmute:before { content: '\f0ba'} /*  */ -.octicon-unverified:before { content: '\f0e8'} /*  */ -.octicon-verified:before { content: '\f0e6'} /*  */ -.octicon-versions:before { content: '\f064'} /*  */ -.octicon-watch:before { content: '\f0e0'} /*  */ -.octicon-remove-close:before, -.octicon-x:before { content: '\f081'} /*  */ -.octicon-zap:before { content: '\26A1'} /* ⚡ */ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.svg deleted file mode 100644 index 09087066..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.svg +++ /dev/null @@ -1,188 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg"> -<metadata> -(c) 2012-2016 GitHub - -When using the GitHub logos, be sure to follow the GitHub logo guidelines (https://github.com/logos) - -Font License: SIL OFL 1.1 (http://scripts.sil.org/OFL) -Applies to all font files - -Code License: MIT (http://choosealicense.com/licenses/mit/) -Applies to all other files -</metadata> -<defs> -<font id="octicons" horiz-adv-x="1024" > -<font-face font-family="octicons" font-weight="400" font-stretch="normal" units-per-em="1024" ascent="832" descent="-192" /> -<missing-glyph d="M512 832C229.25 832 0 602.75 0 320c0-226.25 146.688-418.125 350.156-485.812 25.594-4.688 34.938 11.125 34.938 24.625 0 12.188-0.469 52.562-0.719 95.312C242-76.81200000000001 211.906 14.5 211.906 14.5c-23.312 59.125-56.844 74.875-56.844 74.875-46.531 31.75 3.53 31.125 3.53 31.125 51.406-3.562 78.47-52.75 78.47-52.75 45.688-78.25 119.875-55.625 149-42.5 4.654 33 17.904 55.625 32.5 68.375C304.906 106.56200000000001 185.344 150.5 185.344 346.688c0 55.938 19.969 101.562 52.656 137.406-5.219 13-22.844 65.094 5.062 135.562 0 0 42.938 13.75 140.812-52.5 40.812 11.406 84.594 17.031 128.125 17.219 43.5-0.188 87.312-5.875 128.188-17.281 97.688 66.312 140.688 52.5 140.688 52.5 28-70.531 10.375-122.562 5.125-135.5 32.812-35.844 52.625-81.469 52.625-137.406 0-196.688-119.75-240-233.812-252.688 18.438-15.875 34.75-47 34.75-94.75 0-68.438-0.688-123.625-0.688-140.5 0-13.625 9.312-29.562 35.25-24.562C877.438-98 1024 93.875 1024 320 1024 602.75 794.75 832 512 832z" horiz-adv-x="1024" /> -<glyph glyph-name="alert" unicode="" d="M1005.854 31.753000000000043l-438.286 767C556.173 818.694 534.967 831 512 831s-44.173-12.306-55.567-32.247l-438.286-767c-11.319-19.809-11.238-44.144 0.213-63.876C29.811-51.85500000000002 50.899-64 73.714-64h876.572c22.814 0 43.903 12.145 55.354 31.877S1017.173 11.94399999999996 1005.854 31.753000000000043zM576 64H448V192h128V64zM576 256H448V512h128V256z" horiz-adv-x="1024" /> -<glyph glyph-name="arrow-down" unicode="" d="M448 384V640H192v-256H0l320-384 320 384H448z" horiz-adv-x="640" /> -<glyph glyph-name="arrow-left" unicode="" d="M384 448V640L0 320l384-320V192h256V448H384z" horiz-adv-x="640" /> -<glyph glyph-name="arrow-right" unicode="" d="M640 320L256 640v-192H0v-256h256v-192L640 320z" horiz-adv-x="640" /> -<glyph glyph-name="arrow-small-down" unicode="" d="M256 384V512H128v-128H0l192-256 192 256H256z" horiz-adv-x="384" /> -<glyph glyph-name="arrow-small-left" unicode="" d="M256 384V512L0 320l256-192V256h128V384H256z" horiz-adv-x="384" /> -<glyph glyph-name="arrow-small-right" unicode="" d="M384 320L128 512v-128H0v-128h128v-128L384 320z" horiz-adv-x="384" /> -<glyph glyph-name="arrow-small-up" unicode="" d="M192 512L0 256h128v-128h128V256h128L192 512z" horiz-adv-x="384" /> -<glyph glyph-name="arrow-up" unicode="" d="M320 640L0 256h192v-256h256V256h192L320 640z" horiz-adv-x="640" /> -<glyph glyph-name="beaker" unicode="" d="M920-102L704 384V640h64v64H192v-64h64v-256L40-102c-19-42 12-90 58-90h764c46 0 77 48 58 90zM240 192l80 192V640h320v-256l80-192H240z m272 128h64v-64h-64v64z m-64 64h-64v64h64v-64z m0 192h64v-64h-64v64z m0 192h-64V832h64v-64z" horiz-adv-x="1024" /> -<glyph glyph-name="bell" unicode="" d="M896 64v-64H0v64l47 37c49 49 52 163 76 283 49 241 261 320 261 320 0 35 29 64 64 64s64-29 64-64c0 0 217-79 266-320 24-120 27-234 76-283l42-37z m-448-256c71 0 128 57 128 128H320c0-71 57-128 128-128z" horiz-adv-x="896" /> -<glyph glyph-name="bold" unicode="" d="M0 704h245c159 0 275-48 275-189 0-73-40-143-107-167v-4c85-19 147-79 147-183 0-153-126-225-295-225H0V704z m234-317c107 0 152 42 152 108 0 75-50 103-150 103H136v-211h98z m17-345c113 0 176 41 176 127 0 81-61 116-176 116H136v-243h115z" horiz-adv-x="640" /> -<glyph glyph-name="book" unicode="" d="M128 512h256v-64H128v64z m0-192h256v64H128v-64z m0-128h256v64H128v-64z m704 320H576v-64h256v64z m0-128H576v-64h256v64z m0-128H576v-64h256v64z m128 384v-576c0-35-29-64-64-64H544l-64-64-64 64H64c-35 0-64 29-64 64V640c0 35 29 64 64 64h352l64-64 64 64h352c35 0 64-29 64-64z m-512-32l-32 32H64v-576h384V608z m448 32H544l-32-32v-544h384V640z" horiz-adv-x="1024" /> -<glyph glyph-name="bookmark" unicode="" d="M576 832H64C17 832 0 815 0 768v-960l320 198 320-198V768c0 47-17 64-64 64z m-50-272l-119-87 46-138c4-14-1-18-13-11l-120 86-120-86c-12-7-16-3-13 11l46 138-119 87c-11 10-9 15 6 15l147 2 45 138h16l45-138 147-2c15 0 17-5 6-15z" horiz-adv-x="640" /> -<glyph glyph-name="briefcase" unicode="" d="M576 576v64c0 35-29 64-64 64H384c-35 0-64-29-64-64v-64H64c-35 0-64-29-64-64v-512c0-35 29-64 64-64h768c35 0 64 29 64 64V512c0 35-29 64-64 64H576z m-192 64h128v-64H384v64z m448-384H512v-64H384v64H64V512h64v-192h640V512h64v-256z" horiz-adv-x="896" /> -<glyph glyph-name="broadcast" unicode="" d="M576 256h-64c35 0 64 29 64 64v64c0 35-29 64-64 64h-64c-35 0-64-29-64-64v-64c0-35 29-64 64-64h-64c-35 0-64-29-64-64v-128h64v-192c0-35 29-64 64-64h64c35 0 64 29 64 64V64h64V192c0 35-29 64-64 64zM448 384h64v-64h-64v64z m128-256h-64v-256h-64V128h-64v64h192v-64z m134 224c0 127-103 230-230 230S250 479 250 352c0-18 2-35 6-52v-127c-39 49-64 111-64 179 0 159 129 288 288 288s288-129 288-288c0-68-25-130-64-179V300c4 17 6 34 6 52z m250 0c0-184-104-344-256-424v67c119 74 198 206 198 357 0 233-189 422-422 422S58 585 58 352c0-151 79-283 198-357v-67C104 8 0 168 0 352 0 617 215 832 480 832s480-215 480-480z" horiz-adv-x="1024" /> -<glyph glyph-name="browser" unicode="" d="M320 640h64v-64h-64V640zM192 640h64v-64h-64V640zM64 640h64v-64H64V640zM832 0H64V512h768V0zM832 576H448v64h384V576zM896 640c0 35.35-28.65 64-64 64H64c-35.35 0-64-28.65-64-64v-640c0-35.35 28.65-64 64-64h768c35.35 0 64 28.65 64 64V640z" horiz-adv-x="896" /> -<glyph glyph-name="bug" unicode="" d="M704 192h192v64H704v64l203 66-22 60-181-62v64c0 35-29 64-64 64v64c0 31-23 56-53 62l66 66h115V768H627L499 640h-38L333 768H192v-64h115l66-66c-30-6-53-31-53-62v-64c-35 0-64-29-64-64v-64L75 446l-22-60 203-66v-64H64v-64h192v-64L53 62l22-60 181 62v-64c0-35 29-64 64-64h64l64 64V448h64v-448l64-64h64c35 0 64 29 64 64v64l181-62 22 60-203 66v64zM576 512H384v64h192v-64z" horiz-adv-x="1024" /> -<glyph glyph-name="calendar" unicode="" d="M768 704h-64v-96c0-18-14-32-32-32H544c-18 0-32 14-32 32v96H320v-96c0-18-14-32-32-32H160c-18 0-32 14-32 32v96H64c-35 0-64-29-64-64v-704c0-35 29-64 64-64h704c35 0 64 29 64 64V640c0 35-29 64-64 64z m0-768H64V512h704v-576zM256 640h-64V768h64v-128z m384 0h-64V768h64v-128zM320 384h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64zM192 256h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64zM192 128h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64zM192 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z" horiz-adv-x="896" /> -<glyph glyph-name="check" unicode="" d="M768 512L256 0 0 256l96 96 160-160 416 416 96-96z" horiz-adv-x="768" /> -<glyph glyph-name="checklist" unicode="" d="M1024 288L640-96 448 96l96 96 96-96 288 288 96-96zM365 51l51-51H128c-35 0-64 29-64 64V640c0 35 29 64 64 64h448c35 0 64-29 64-64v-416l-51 51c-25 25-66 25-91 0L365 141c-25-25-25-65 0-90zM256 576h320v64H256v-64z m0-128h320v64H256v-64z m0-128h192v64H256v-64z m-64-64h-64v-64h64v64z m0 128h-64v-64h64v64z m0 128h-64v-64h64v64z m0 128h-64v-64h64v64z" horiz-adv-x="1024" /> -<glyph glyph-name="chevron-down" unicode="" d="M320 128L0 448l96 96 224-240 224 240 96-96-320-320z" horiz-adv-x="640" /> -<glyph glyph-name="chevron-left" unicode="" d="M352 640l96-96-240-224 240-224-96-96L32 320l320 320z" horiz-adv-x="512" /> -<glyph glyph-name="chevron-right" unicode="" d="M480 320L160 0l-96 96 240 224L64 544l96 96 320-320z" horiz-adv-x="512" /> -<glyph glyph-name="chevron-up" unicode="" d="M640 256l-96-96-224 240L96 160 0 256l320 320 320-320z" horiz-adv-x="640" /> -<glyph glyph-name="circle-slash" unicode="" d="M448 768C201 768 0 567 0 320s201-448 448-448 448 201 448 448S695 768 448 768z m0-83c83 0 160-28 222-75L158 98c-47 62-75 139-75 222 0 201 164 365 365 365z m0-730c-83 0-160 28-222 75l512 512c47-62 75-139 75-222 0-201-164-365-365-365z" horiz-adv-x="896" /> -<glyph glyph-name="circuit-board" unicode="" d="M192 512c0 35 29 64 64 64s64-29 64-64-29-64-64-64-64 29-64 64z m512 0c0 35-29 64-64 64s-64-29-64-64 29-64 64-64 64 29 64 64z m0-384c0 35-29 64-64 64s-64-29-64-64 29-64 64-64 64 29 64 64zM832 768H320v-139c23-12 41-30 53-53h150c27 50 85 82 150 67 48-12 87-51 98-99 20-88-46-166-131-166-51 0-95 28-117 70H373c-27-51-85-82-150-66-47 11-86 50-97 97-16 65 15 123 66 150V768H64C29 768 0 739 0 704v-768c0-35 29-64 64-64l320 320h139c27 50 85 82 150 67 48-12 87-51 98-99 20-88-46-166-131-166-51 0-95 28-117 70h-75L256-128h576c35 0 64 29 64 64V704c0 35-29 64-64 64z" horiz-adv-x="896" /> -<glyph glyph-name="clippy" unicode="" d="M128 64h256v-64H128v64z m320 384H128v-64h320v64z m128-192V384L384 192l192-192V128h320V256H576z m-288 64H128v-64h160v64zM128 128h160v64H128v-64z m576-64h64v-128c-1-18-7-33-19-45s-27-18-45-19H64c-35 0-64 29-64 64V640c0 35 29 64 64 64h192C256 775 313 832 384 832s128-57 128-128h192c35 0 64-29 64-64v-320h-64V512H64v-576h640V64zM128 576h512c0 35-29 64-64 64h-64c-35 0-64 29-64 64s-29 64-64 64-64-29-64-64-29-64-64-64h-64c-35 0-64-29-64-64z" horiz-adv-x="896" /> -<glyph glyph-name="clock" unicode="" d="M512 320h192v-128H448c-35 0-64 29-64 64V576h128v-256z m-64 365c201 0 365-164 365-365S649-45 448-45 83 119 83 320s164 365 365 365m0 83C201 768 0 567 0 320s201-448 448-448 448 201 448 448S695 768 448 768z" horiz-adv-x="896" /> -<glyph glyph-name="cloud-download" unicode="" d="M576 0h128l-192-192-192 192h128V320h128v-320z m192 512c0 28-58 192-288 192-155 0-288-123-288-256C65 448 0 351 0 256c0-98 64-192 192-192 28 0 170 0 192 0v83H192C88 147 83 238 83 256c0 11 3 109 109 109h83v83c0 89 100 173 205 173 163 0 200-99 205-115v-77h83c52 0 173-14 173-141 0-134-144-141-173-141H640v-83c24 0 127 0 128 0 133 0 256 74 256 224 0 156-123 224-256 224z" horiz-adv-x="1024" /> -<glyph glyph-name="cloud-upload" unicode="" d="M448 256H320l192 192 192-192H576v-320H448V256z m320 256c0 28-58 192-288 192-155 0-288-123-288-256C65 448 0 351 0 256c0-98 64-192 192-192 28 0 170 0 192 0v83H192C88 147 83 238 83 256c0 11 3 109 109 109h83v83c0 89 100 173 205 173 163 0 200-99 205-115v-77h83c52 0 173-14 173-141 0-134-144-141-173-141H640v-83c24 0 127 0 128 0 133 0 256 74 256 224 0 156-123 224-256 224z" horiz-adv-x="1024" /> -<glyph glyph-name="code" unicode="" d="M608 640l-96-96 224-224L512 96l96-96 288 320L608 640zM288 640L0 320l288-320 96 96L160 320l224 224L288 640z" horiz-adv-x="896" /> -<glyph glyph-name="comment" unicode="" d="M832 704H64c-35 0-64-29-64-64v-512c0-35 29-64 64-64h128v-224l224 224h416c35 0 64 29 64 64V640c0 35-29 64-64 64z m0-576H384L256 0V128H64V640h768v-512z" horiz-adv-x="896" /> -<glyph glyph-name="comment-discussion" unicode="" d="M960 704H384c-35 0-64-29-64-64v-128H64c-35 0-64-29-64-64v-384c0-35 29-64 64-64h64v-192l192 192h256c35 0 64 29 64 64V192h64l192-192V192h64c35 0 64 29 64 64V640c0 35-29 64-64 64zM576 64H288l-96-96v96H64V448h256v-192c0-35 29-64 64-64h192v-128z m384 192H832v-96l-96 96H384V640h576v-384z" horiz-adv-x="1024" /> -<glyph glyph-name="credit-card" unicode="" d="M768 256H128v64h640v-64z m256 384v-576c0-35-29-64-64-64H64c-35 0-64 29-64 64V640c0 35 29 64 64 64h896c35 0 64-29 64-64z m-64-192H64v-384h896V448z m0 192H64v-64h896v64zM384 192H128v-64h256v64z" horiz-adv-x="1024" /> -<glyph glyph-name="dash" unicode="" d="M0 384v-128h512V384H0z" horiz-adv-x="512" /> -<glyph glyph-name="dashboard" unicode="" d="M512 512h-64v64h64v-64z m256-192h-64v-64h64v64zM320 512h-64v-64h64v64z m-64-192h-64v-64h64v64z m704 352l-32 32-416-320c-4 1-64 0-64 0-35 0-64-29-64-64v-64c0-35 29-64 64-64h64c35 0 64 29 64 64v59l384 357zM858 410c12-39 19-80 19-122 0-219-178-397-397-397S83 69 83 288s178 397 397 397c77 0 148-22 209-60l60 60c-76 52-169 83-269 83C215 768 0 553 0 288s215-480 480-480 480 215 480 480c0 66-13 129-38 186l-64-64z" horiz-adv-x="1024" /> -<glyph glyph-name="database" unicode="" d="M384-128C171.969-128 0-70.625 0 0c0 38.625 0 80.875 0 128 0 11.125 5.562 21.688 13.562 32C56.375 104.875 205.25 64 384 64s327.625 40.875 370.438 96c8-10.312 13.562-20.875 13.562-32 0-37.062 0-76.375 0-128C768-70.625 596-128 384-128zM384 128C171.969 128 0 185.375 0 256c0 38.656 0 80.844 0 128 0 6.781 2.562 13.375 6 19.906l0 0C7.938 408 10.5 412.031 13.562 416 56.375 360.906 205.25 320 384 320s327.625 40.906 370.438 96c3.062-3.969 5.625-8 7.562-12.094l0 0c3.438-6.531 6-13.125 6-19.906 0-37.062 0-76.344 0-128C768 185.375 596 128 384 128zM384 384C171.969 384 0 441.344 0 512c0 20.219 0 41.594 0 64 0 20.344 0 41.469 0 64C0 710.656 171.969 768 384 768c212 0 384-57.344 384-128 0-19.969 0-41.156 0-64 0-19.594 0-40.25 0-64C768 441.344 596 384 384 384zM384 704c-141.375 0-256-28.594-256-64s114.625-64 256-64 256 28.594 256 64S525.375 704 384 704z" horiz-adv-x="768" /> -<glyph glyph-name="desktop-download" unicode="" d="M256 448h192V832h128v-384h192L512 192 256 448z m704 256H704v-64h256v-512H64V640h256v64H64c-35 0-64-29-64-64v-576c0-35 29-64 64-64h342c-16-39-55-89-150-128h512c-95 39-134 89-150 128h342c35 0 64 29 64 64V640c0 35-29 64-64 64z" horiz-adv-x="1024" /> -<glyph glyph-name="device-camera" unicode="" d="M960 640H448c0 35-29 64-64 64H128c-35 0-64-29-64-64-35 0-64-29-64-64v-576c0-35 29-64 64-64h896c35 0 64 29 64 64V576c0 35-29 64-64 64zM384 512H128v64h256v-64z m288-448c-124 0-224 100-224 224s100 224 224 224 224-100 224-224-100-224-224-224z m160 224c0-88-72-160-160-160s-160 72-160 160 72 160 160 160 160-72 160-160z" horiz-adv-x="1024" /> -<glyph glyph-name="device-camera-video" unicode="" d="M973 634L640 402V576c0 35-29 64-64 64H64c-35 0-64-29-64-64v-576c0-35 29-64 64-64h512c35 0 64 29 64 64V174l333-232c21-15 51 0 51 26V608c0 26-30 41-51 26z" horiz-adv-x="1024" /> -<glyph glyph-name="device-desktop" unicode="" d="M960 704H64c-35 0-64-29-64-64v-576c0-35 29-64 64-64h342c-16-39-55-89-150-128h512c-95 39-134 89-150 128h342c35 0 64 29 64 64V640c0 35-29 64-64 64z m0-576H64V640h896v-512z" horiz-adv-x="1024" /> -<glyph glyph-name="device-mobile" unicode="" d="M576 832H64C29 832 0 803 0 768v-896c0-35 29-64 64-64h512c35 0 64 29 64 64V768c0 35-29 64-64 64zM320-147c-46 0-83 37-83 83s37 83 83 83 83-37 83-83-37-83-83-83z m256 211H64V704h512v-640z" horiz-adv-x="640" /> -<glyph glyph-name="diff" unicode="" d="M384 384h128v-64H384v-128h-64V320H192v64h128V512h64v-128zM192 0h320v64H192v-64z m288 704l224-224v-608c0-35-29-64-64-64H64c-35 0-64 29-64 64V640c0 35 29 64 64 64h416z m160-256L448 640H64v-768h576V448zM544 832S192 832 192 832v-64h320l256-256v-512h64V544L544 832z" horiz-adv-x="896" /> -<glyph glyph-name="diff-added" unicode="" d="M832 768H64C29 768 0 739 0 704v-768c0-35 29-64 64-64h768c35 0 64 29 64 64V704c0 35-29 64-64 64z m0-832H64V704h768v-768zM384 256H192V384h192V576h128v-192h192v-128H512v-192H384V256z" horiz-adv-x="896" /> -<glyph glyph-name="diff-ignored" unicode="" d="M832 768H64C29 768 0 739 0 704v-768c0-35 29-64 64-64h768c35 0 64 29 64 64V704c0 35-29 64-64 64z m0-832H64V704h768v-768zM288 64h-96v96l416 416h96v-96L288 64z" horiz-adv-x="896" /> -<glyph glyph-name="diff-modified" unicode="" d="M832 768H64C29 768 0 739 0 704v-768c0-35 29-64 64-64h768c35 0 64 29 64 64V704c0 35-29 64-64 64z m0-832H64V704h768v-768zM256 320c0 106 86 192 192 192s192-86 192-192-86-192-192-192-192 86-192 192z" horiz-adv-x="896" /> -<glyph glyph-name="diff-removed" unicode="" d="M832 768H64C29 768 0 739 0 704v-768c0-35 29-64 64-64h768c35 0 64 29 64 64V704c0 35-29 64-64 64z m0-832H64V704h768v-768zM704 256H192V384h512v-128z" horiz-adv-x="896" /> -<glyph glyph-name="diff-renamed" unicode="" d="M384 256H192V384h192V576l320-256-320-256V256z m512 448v-768c0-35-29-64-64-64H64c-35 0-64 29-64 64V704c0 35 29 64 64 64h768c35 0 64-29 64-64z m-64 0H64v-768h768V704z" horiz-adv-x="896" /> -<glyph glyph-name="ellipsis" unicode="" d="M704 512H64c-35 0-64-29-64-64v-256c0-35 29-64 64-64h640c35 0 64 29 64 64V448c0 35-29 64-64 64zM256 256H128V384h128v-128z m192 0H320V384h128v-128z m192 0H512V384h128v-128z" horiz-adv-x="768" /> -<glyph glyph-name="eye" unicode="" d="M516 704C192 704 0 320 0 320s192-384 516-384c316 0 508 384 508 384S832 704 516 704z m-4-640c-141 0-256 114-256 256 0 141 115 256 256 256 142 0 256-115 256-256 0-142-114-256-256-256z m128 256c0-71-57-128-128-128s-128 57-128 128 57 128 128 128 128-57 128-128z" horiz-adv-x="1024" /> -<glyph glyph-name="file-binary" unicode="" d="M256 64h64v-64H128v64h64V192h-64v64h128v-192z m512 480v-608c0-35-29-64-64-64H64c-35 0-64 29-64 64V704c0 35 29 64 64 64h480l224-224z m-64-32L512 704H64v-768h640V512z m-192 64H384v-64h64v-128h-64v-64h192v64h-64V576z m-384 0h192v-256H128V576z m64-192h64V512h-64v-128z m192-128h192v-256H384V256z m64-192h64V192h-64v-128z" horiz-adv-x="768" /> -<glyph glyph-name="file-code" unicode="" d="M544 768H64C29 768 0 739 0 704v-768c0-35 29-64 64-64h640c35 0 64 29 64 64V544L544 768z m160-832H64V704h448l192-192v-576zM320 385l-96-97 96-96-32-64-160 160 160 160 32-63z m160 63l160-160-160-160-32 63 96 97-96 96 32 64z" horiz-adv-x="768" /> -<glyph glyph-name="file-directory" unicode="" d="M832 576H448v64c0 42-20 64-64 64H64c-35 0-64-29-64-64v-640c0-35 29-64 64-64h768c35 0 64 29 64 64V512c0 35-29 64-64 64z m-448 0H64v64h320v-64z" horiz-adv-x="896" /> -<glyph glyph-name="file-media" unicode="" d="M384 512h128v-128H384V512z m384 32v-608c0-35-29-64-64-64H64c-35 0-64 29-64 64V704c0 35 29 64 64 64h480l224-224z m-64-32L512 704H64v-704l192 320 128-256 128 128 192-192V512z" horiz-adv-x="768" /> -<glyph glyph-name="file-pdf" unicode="" d="M544 768H64C29 768 0 739 0 704v-768c0-35 29-64 64-64h640c35 0 64 29 64 64V544L544 768zM64 704h256c-7-2-13-6-20-13-6-6-11-16-15-30-7-25-9-57-6-94s11-75 22-115c-15-47-39-103-71-170s-51-106-58-118c-9-3-23-9-44-19-21-9-42-23-64-41V704z m283-307c29-72 54-117 75-134s41-29 60-34c-41-6-79-13-116-21-36-8-75-21-116-38 1 1 14 28 39 80s45 101 58 147z m357-461H96c-4 0-8 1-11 2 13 4 29 13 47 28 29 24 67 74 114 152 20 8 37 15 52 20l27 9c29 8 60 15 92 21 32 5 64 10 95 13 29-14 58-25 89-34 31-8 58-13 79-15 9 0 17 1 24 2v-198z m0 311c-12 7-26 13-41 18-15 4-31 6-48 7-25 0-51-2-79-5-15 4-36 18-63 41s-55 73-84 149c8 53 12 95 13 126s1 47 0 48c3 26-2 45-13 56s-24 17-39 17h162l192-192v-265z" horiz-adv-x="768" /> -<glyph glyph-name="file-submodule" unicode="" d="M640 384H256v-448h576c35 0 64 29 64 64V320H640v64z m-64-128H320v64h256v-64z m256 320H448v64c0 42-20 64-64 64H64c-35 0-64-29-64-64v-640c0-35 29-64 64-64h128V384c0 35 29 64 64 64h384c35 0 64-29 64-64h192V512c0 35-29 64-64 64z m-448 0H64v64h320v-64z" horiz-adv-x="896" /> -<glyph glyph-name="file-symlink-directory" unicode="" d="M832 576H448v64c0 42-20 64-64 64H64c-35 0-64-29-64-64v-640c0-35 29-64 64-64h768c35 0 64 29 64 64V512c0 35-29 64-64 64zM64 640h320v-64H64v64z m384-576V192c-63 1-118-14-163-45s-76-80-93-147c1 105 25 184 72 239 47 54 108 81 184 81V448l256-192-256-192z" horiz-adv-x="896" /> -<glyph glyph-name="file-symlink-file" unicode="" d="M544 768H64C29 768 0 739 0 704v-768c0-35 29-64 64-64h640c35 0 64 29 64 64V544L544 768z m160-832H64V704h448l192-192v-576zM384 544l256-192-256-192V288c-63 1-118-14-163-45s-76-80-93-147c1 105 25 184 72 239 47 54 108 81 184 81V544z" horiz-adv-x="768" /> -<glyph glyph-name="file-text" unicode="" d="M384 512H128v64h256v-64zM128 320h448v64H128v-64z m0-128h448v64H128v-64z m0-128h448v64H128v-64z m640 480v-608c0-35-29-64-64-64H64c-35 0-64 29-64 64V704c0 35 29 64 64 64h480l224-224z m-64-32L512 704H64v-768h640V512z" horiz-adv-x="768" /> -<glyph glyph-name="file-zip" unicode="" d="M544 768H64C29 768 0 739 0 704v-768c0-35 29-64 64-64h640c35 0 64 29 64 64V544L544 768z m160-832H64V704h192v-64h64v64h192l192-192v-576zM320 576v64h64v-64h-64z m-64 0h64v-64h-64v64z m64-128v64h64v-64h-64z m-64 0h64v-64h-64v64z m64-128v64h64v-64h-64z m-64-82c-38-22-64-63-64-110v-64h256v64c0 71-57 128-128 128v64h-64v-82z m128-46v-64H256v64h128z" horiz-adv-x="768" /> -<glyph glyph-name="flame" unicode="" d="M323 812c52-139 26-216-33-276-63-67-163-117-232-215-93-131-109-418 226-493-141 74-171 289-19 423-39-130 34-213 124-183 89 30 147-34 145-107-1-50-20-92-72-116 219 38 306 219 306 356 0 182-162 206-80 359-97-8-130-72-121-176 6-69-65-115-119-85-43 26-42 76-4 114 80 79 112 262-120 398l-1 1z" horiz-adv-x="768" /> -<glyph glyph-name="fold" unicode="" d="M448 256l192-192H512v-192H384V64H256l192 192z m192 384H512V832H384v-192H256l192-192 192 192z m256-128c0 35-29 64-64 64H672l-64-64h192L672 384H224L96 512h192l-64 64H64c-35 0-64-29-64-64l160-160L0 192c0-35 29-64 64-64h160l64 64H96l128 128h448l128-128H608l64-64h160c35 0 64 29 64 64L736 352l160 160z" horiz-adv-x="896" /> -<glyph glyph-name="gear" unicode="" d="M896 271V373l-124 41-29 70 56 118-72 72-116-58-70 29-44 123H395l-40-124-71-29-118 56-72-72 58-116-29-70L0 369v-102l124-41 29-70-56-118 72-72 116 58 70-29 44-123h102l40 124 71 29 118-56 72 72-59 116 30 70 123 44zM448 128c-106 0-192 86-192 192s86 192 192 192 192-86 192-192-86-192-192-192z" horiz-adv-x="896" /> -<glyph glyph-name="gift" unicode="" d="M832 576h-88c12 21 21 43 23 58 4 43-7 78-33 103-23 24-52 31-87 31-3 0-5 0-7 0-34-1-71-16-98-37s-47-46-62-77c-15 31-35 56-62 77s-64 37-98 37c-1 0-2 0-2 0-36 0-68-6-92-31-26-25-37-60-33-103 2-15 11-37 23-58h-88c-35 0-64-29-64-64v-192h64v-320c0-35 29-64 64-64h576c35 0 64 29 64 64V320h64V512c0 35-29 64-64 64z m-306 56c11 23 27 43 48 59 19 15 46 25 67 26h6c29 0 42-7 51-16s21-25 19-61c-3-12-16-39-32-64H500l26 56z m-264 69c8 8 20 16 58 16 20 0 46-11 66-26 21-16 37-35 48-59l27-56H275c-16 25-29 52-32 64-2 36 10 52 19 61z m186-701H192V320h256v-320z m0 384H128V512h320v-128z m320-384H512V320h256v-320z m64 384H512V512h320v-128z" horiz-adv-x="896" /> -<glyph glyph-name="gist" unicode="" d="M480 512l160-160-160-160-48 48 112 112-112 112 48 48z m-192 0L128 352l160-160 48 48-112 112 112 112-48 48zM0 0V704c0 35 29 64 64 64h640c35 0 64-29 64-64v-704c0-35-29-64-64-64H64c-35 0-64 29-64 64z m64 0h640V704H64v-704z" horiz-adv-x="768" /> -<glyph glyph-name="gist-secret" unicode="" d="M512 160l64-224H320l64 224-48 96h224l-48-96z m128 288H256l-128-64h640l-128 64z m-64 256l-128-64-128 64-64-192h384l-64 192z m258-496l-194 48 64-128-128-192h206c29 0 55 20 62 48l36 146c9 34-12 69-46 78z m-578 48L62 208c-34-9-55-44-46-78l36-146c7-28 33-48 62-48h206L192 128l64 128z" horiz-adv-x="896" /> -<glyph glyph-name="git-branch" unicode="" d="M640 512c0 71-57 128-128 128s-128-57-128-128c0-47 26-88 64-110v-19c-1-33-15-63-40-88s-55-39-88-40c-53-1-95-10-128-29V530c38 22 64 63 64 110 0 71-57 128-128 128S0 711 0 640c0-47 26-88 64-110v-420C26 88 0 47 0 0c0-71 57-128 128-128s128 57 128 128c0 34-13 64-34 87 6 4 31 26 38 30 16 7 36 11 60 11 67 3 125 29 176 80s77 127 80 193h-1c39 23 65 64 65 111zM128 717c42 0 77-35 77-77s-35-77-77-77-77 35-77 77 35 77 77 77z m0-794c-42 0-77 35-77 77s35 77 77 77 77-35 77-77-35-77-77-77z m384 512c-42 0-77 35-77 77s35 77 77 77 77-35 77-77-35-77-77-77z" horiz-adv-x="640" /> -<glyph glyph-name="git-commit" unicode="" d="M695 384c-29 110-128 192-247 192s-218-82-247-192H0v-128h201c29-110 128-192 247-192s218 82 247 192h201V384H695zM448 179c-78 0-141 63-141 141s63 141 141 141 141-63 141-141-63-141-141-141z" horiz-adv-x="896" /> -<glyph glyph-name="git-compare" unicode="" d="M320 64h-64c-17 1-31 7-44 20s-19 27-20 44V530c38 22 64 63 64 110 0 71-57 128-128 128S0 711 0 640c0-47 26-88 64-110 0-111 0-402 0-402 2-50 22-94 60-132s82-58 132-60c0 0 65 0 64 0v-128l192 192-192 192v-128zM128 717c42 0 77-35 77-77s-35-77-77-77-77 35-77 77 35 77 77 77z m704-607c0 111 0 402 0 402-2 50-22 94-60 132s-82 58-132 60c0 0-65 0-64 0V832L384 640l192-192V576h64c17-1 31-7 44-20s19-27 20-44v-402c-38-22-64-63-64-110 0-71 57-128 128-128s128 57 128 128c0 47-26 88-64 110z m-64-187c-42 0-77 35-77 77s35 77 77 77 77-35 77-77-35-77-77-77z" horiz-adv-x="896" /> -<glyph glyph-name="git-merge" unicode="" d="M640 384c-47 0-88-26-111-65v1c-67 1-145 23-200 65-48 37-96 103-121 156 29 23 48 59 48 99 0 71-57 128-128 128S0 711 0 640c0-47 26-88 64-110v-420C26 88 0 47 0 0c0-71 57-128 128-128s128 57 128 128c0 47-26 88-64 110V341c43-45 92-81 147-108s130-40 190-41v1c23-39 64-65 111-65 71 0 128 57 128 128s-57 128-128 128zM205 0c0-42-35-77-77-77s-77 35-77 77 35 77 77 77 77-35 77-77z m-77 563c-42 0-77 35-77 77s35 77 77 77 77-35 77-77-35-77-77-77z m512-384c-42 0-77 35-77 77s35 77 77 77 77-35 77-77-35-77-77-77z" horiz-adv-x="768" /> -<glyph glyph-name="git-pull-request" unicode="" d="M704 110c0 111 0 402 0 402-2 50-22 94-60 132s-82 58-132 60c0 0-65 0-64 0V832L256 640l192-192V576h64c17-1 31-7 44-20s19-27 20-44v-402c-38-22-64-63-64-110 0-71 57-128 128-128s128 57 128 128c0 47-26 88-64 110z m-64-187c-42 0-77 35-77 77s35 77 77 77 77-35 77-77-35-77-77-77zM256 640c0 71-57 128-128 128S0 711 0 640c0-47 26-88 64-110 0-99 0-356 0-420-38-22-64-63-64-110 0-71 57-128 128-128s128 57 128 128c0 47-26 88-64 110V530c38 22 64 63 64 110z m-51-640c0-42-35-77-77-77s-77 35-77 77 35 77 77 77 77-35 77-77z m-77 563c-42 0-77 35-77 77s35 77 77 77 77-35 77-77-35-77-77-77z" horiz-adv-x="768" /> -<glyph glyph-name="globe" unicode="" d="M448 768C201 768 0 567 0 320s201-448 448-448c31 0 60 3 88 9-11 5-13 47-1 70 12 26 52 93 13 115s-28 32-52 58-14 30-16 37c-5 22 23 57 25 60 1 4 1 17 0 21 0 5-17 14-22 15-4 0-7-7-13-8s-32 16-38 21-9 15-17 22c-8 8-9 2-21 7s-51 20-82 31c-31 12-33 30-33 42-1 13-19 30-27 43-9 13-10 30-13 26s16-50 13-52c-3-1-10 13-19 24-9 12 9 6-19 61s9 83 11 112 24-11 12 8 0 57-9 71c-8 14-56-16-56-16 1 14 44 37 74 59s50 4 74-3c25-8 26-6 18 3-8 8 4 11 23 8 18-3 24-26 53-23 30 2 3-6 7-14s-4-7-24-19c-19-13 1-14 35-39s24 16 20 35 25 4 25 4c21-14 17-1 32-5s58-41 58-41c-53-28-20-31-11-38s-18-19-18-19c-11 11-12-1-19-5s-1-14-1-14c-36-6-28-44-27-53 0-9-24-23-30-37-6-13 16-41 4-42-12-2-22 42-84 26-19-5-60-26-38-69 23-44 59 12 71 6s-4-34-1-35 34-1 36-39 49-34 59-35c11 0 45 28 49 29 4 2 24 18 66-6 42-23 63-20 77-30s5-30 18-37 68 2 82-20-56-134-78-146-31-41-54-59-52-41-81-58c-26-15-30-42-42-51 201 45 351 224 351 438 0 247-201 448-448 448z m105-420c-6-2-18-14-50 5-31 19-52 15-55 18 0 0-3 7 11 9 28 3 63-26 71-26s12 8 26 3 3-8-3-9zM406 723c-3 2 2 5 6 9 2 2 1 7 3 9 7 7 39 16 33-2-7-17-37-19-42-16z m79-57c-12 1-37 3-33 9 19 18-6 24-22 24-16 1-22 10-14 12s39-1 45-5c5-4 33-16 35-24 1-8 0-16-11-16z m94 3c-9-6-53 26-61 33-36 31-57 20-64 26s-5 12 7 22 44-4 64-6c19-2 42-17 42-35 1-16 21-32 12-40z" horiz-adv-x="896" /> -<glyph glyph-name="graph" unicode="" d="M1024-64v-64H0V832h64v-896h960z m-704 64H192V320h128v-320z m256 0H448V640h128v-640z m256 0H704V448h128v-448z" horiz-adv-x="1024" /> -<glyph glyph-name="heart" unicode="♥" d="M717 576c-33 40-80 61-141 64-62 0-108-27-141-64s-50-59-51-64c-1 5-18 27-51 64s-75 64-141 64c-61-3-108-24-141-64-33-39-50-82-51-128 0-33 6-97 43-171s150-188 341-341c191 153 305 267 342 341s42 139 42 171c-1 46-18 89-51 129z" horiz-adv-x="768" /> -<glyph glyph-name="history" unicode="" d="M512 0H384V448h320v-128H512v-320zM448 768c-140 0-264-65-346-166L0 704v-256h256l-96 96c67 85 171 141 288 141 201 0 365-164 365-365S649-45 448-45 83 119 83 320c0 22 2 43 6 64H5c-3-21-5-42-5-64 0-247 201-448 448-448s448 201 448 448S695 768 448 768z" horiz-adv-x="896" /> -<glyph glyph-name="home" unicode="" d="M1024 256L832 448V704H704v-128L512 768 0 256h128l64-320c0-35 29-64 64-64h512c35 0 64 29 64 64l64 320h128zM768-64H576V192H448v-256H256l-76 404 332 332 332-332-76-404z" horiz-adv-x="1024" /> -<glyph glyph-name="horizontal-rule" unicode="" d="M64 384h128v-128h64V640h-64v-192H64V640H0v-384h64V384z m576-128V384h-64v-128h64z m0 192V576h-64v-128h64z m-192 0V576h128v64H384v-384h64V384h128v64H448zM0 0h640V128H0v-128z" horiz-adv-x="640" /> -<glyph glyph-name="hubot" unicode="" d="M192 448c-35 0-64-29-64-64v-128c0-35 29-64 64-64h512c35 0 64 29 64 64V384c0 35-29 64-64 64H192z m512-112l-80-80h-96l-80 80-80-80h-96l-80 80v48h48l80-80 80 80h96l80-80 80 80h48v-48zM320 128h256v-64H320v64z m128 576C201 704 0 518 0 288v-288c0-35 29-64 64-64h768c35 0 64 29 64 64V288c0 230-201 416-448 416z m384-704H64V288c0 198 169 358 384 358s384-160 384-358v-288z" horiz-adv-x="896" /> -<glyph glyph-name="inbox" unicode="" d="M896 256l-72 457c-5 31-32 55-64 55H136c-32 0-59-24-64-55L0 256v-320c0-35 29-64 64-64h768c35 0 64 29 64 64V256z m-210-35l-28-57c-11-22-33-36-58-36H295c-24 0-46 14-57 35l-28 58c-11 21-33 35-57 35H64l64 448h640l64-448h-88c-25 0-47-14-58-35z" horiz-adv-x="896" /> -<glyph glyph-name="info" unicode="" d="M403 468c-12 12-18 27-18 45s6 33 18 45 27 18 45 18 33-6 45-18 18-27 18-45-6-33-18-45-27-19-45-19-33 7-45 19z m109-147c-1 16-7 31-20 44-13 12-27 19-44 20h-64c-17-1-31-8-44-20-13-13-19-28-20-44h64v-192c1-17 7-32 20-44 13-13 27-20 44-20h64c17 0 31 7 44 20 13 12 19 27 20 44h-64V321z m-64 364C247 685 83 522 83 321s164-365 365-365 365 163 365 365-164 364-365 364m0 84c247 0 448-201 448-448S695-127 448-127 0 73 0 321 201 769 448 769z" horiz-adv-x="896" /> -<glyph glyph-name="issue-closed" unicode="" d="M448 192h128v-128H448V192z m128 384H448v-320h128V576z m96-96l-64-64 160-160 256 288-64 64-192-224-96 96zM512-45c-201 0-365 164-365 365s164 365 365 365c117 0 221-56 288-141l59 59C777 704 652 768 512 768 265 768 64 567 64 320s201-448 448-448 448 201 448 448l-97-97c-42-154-183-268-351-268z" horiz-adv-x="1024" /> -<glyph glyph-name="issue-opened" unicode="" d="M448 685c201 0 365-164 365-365S649-45 448-45 83 119 83 320s164 365 365 365m0 83C201 768 0 567 0 320s201-448 448-448 448 201 448 448S695 768 448 768z m64-192H384v-320h128V576z m0-384H384v-128h128V192z" horiz-adv-x="896" /> -<glyph glyph-name="issue-reopened" unicode="" d="M512 256H384V576h128v-320zM384 64h128V192H384v-128z m405 128H640l96-96c-67-85-171-141-288-141-201 0-365 164-365 365 0 22 2 43 6 64H5c-3-21-5-42-5-64 0-247 201-448 448-448 140 0 264 65 346 166l102-102V192H789zM107 448h149l-96 96c67 85 171 141 288 141 201 0 365-164 365-365 0-22-2-43-6-64h84c3 21 5 42 5 64 0 247-201 448-448 448-140 0-264-65-346-166L0 704v-256h107z" horiz-adv-x="896" /> -<glyph glyph-name="italic" unicode="" d="M180 512h127L192-64H64l116 576z m23 173c0 45 37 83 85 83 36 0 72-24 72-66 0-48-38-83-85-83-37 0-72 24-72 66z" horiz-adv-x="384" /> -<glyph glyph-name="jersey" unicode="" d="M224 448l-32-32v-320l32-32h128l32 32V416l-32 32H224z m96-320h-64V384h64v-256z m401 464c-14 88-20 168-17 240H513c0-17-8-31-25-44-16-13-40-19-72-19s-56 6-72 19c-15 13-23 27-23 44H128c3-72-2-152-16-240-13-88-51-136-112-144v-576c1-17 7-31 20-44s27-19 44-20h704c17 1 31 7 44 20s19 27 20 44V448c-61 8-98 56-112 144z m47-720H64V384c57 32 95 80 110 144s20 144 18 240h64c-1-50 10-94 33-132 23-37 65-57 128-60 63 1 105 21 128 60 23 38 32 82 31 132h64c1-91 8-163 21-216 13-52 44-128 107-168v-512zM480 448l-32-32v-320l32-32h128l32 32V416l-32 32H480z m96-320h-64V384h64v-256z" horiz-adv-x="896" /> -<glyph glyph-name="key" unicode="" d="M821 693c-48 48-108 73-181 75-72-2-133-27-181-75s-72-108-74-181c0-19 2-38 6-57L0 64v-64l64-64h128l64 64v64h64v64h64v64h128l70 71c19-5 38-7 58-7 73 2 133 27 181 75s73 108 75 181c-2 73-27 133-75 181zM704 488c-49 0-88 39-88 88s39 88 88 88 88-39 88-88-39-88-88-88z" horiz-adv-x="896" /> -<glyph glyph-name="keyboard" unicode="" d="M640 512h-64v64h64v-64z m-448-64h-64v-64h64v64z m320 128h-64v-64h64v64z m-256 0H128v-64h128v64z m512-448h128v64H768v-64zM512 384h64v64h-64v-64zM256 192H128v-64h128v64z m512 384h-64v-64h64v64z m128 0h-64v-64h64v64zM768 256h128V448H768v-192z m256 384v-576c0-35-29-64-64-64H64c-35 0-64 29-64 64V640c0 35 29 64 64 64h896c35 0 64-29 64-64z m-64 0H64v-576h896V640zM384 384h64v64h-64v-64z m0 192h-64v-64h64v64zM256 384h64v64h-64v-64z m64-256h384v64H320v-64z m320 256h64v64h-64v-64z m-448-64h-64v-64h64v64z m320 0v-64h64v64h-64z m-128 0v-64h64v64h-64z m-64 0h-64v-64h64v64z m320-64h64v64h-64v-64z" horiz-adv-x="1024" /> -<glyph glyph-name="law" unicode="" d="M448 576c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z m448-384c0-71-57-128-128-128h-64c-71 0-128 57-128 128l128 256h-64c-35 0-64 29-64 64h-64v-512c27 0 64-29 64-64h64c27 0 64-29 64-64H192c0 35 37 64 64 64h64c0 35 37 64 64 64h2l-2 512h-64c0-35-29-64-64-64h-64l128-256c0-71-57-128-128-128h-64C57 64 0 121 0 192l128 256H64v64h192c0 35 29 64 64 64h256c35 0 64-29 64-64h192v-64h-64l128-256zM160 384L64 192h192l-96 192z m672-192l-96 192-96-192h192z" horiz-adv-x="896" /> -<glyph glyph-name="light-bulb" unicode="" d="M352 832C159 832 0 692 0 512c0-59 35-144 64-192 86-144 114-178 128-256v-64h320v64c14 78 42 112 128 256 29 48 64 133 64 192C704 692 545 832 352 832z m233-479c-16-28-30-51-43-71-55-90-80-132-93-207-1-3-1-7-1-11H256c0 4 0 8-1 11-13 75-38 117-93 207-13 20-27 43-43 71-27 45-55 117-55 159C64 653 193 768 352 768c78 0 151-27 206-76 53-48 82-112 82-180 0-42-28-114-55-159zM192-64h320c-15-73-83-128-160-128s-145 55-160 128z" horiz-adv-x="768" /> -<glyph glyph-name="link" unicode="" d="M256 256h64v-64h-64c-96 0-192 108-192 224s99 224 192 224h256c93 0 192-108 192-224 0-90-58-174-128-208v74c37 29 64 81 64 134 0 82-65 160-128 160H256c-63 0-128-78-128-160s64-160 128-160z m576 192h-64v-64h64c64 0 128-78 128-160s-65-160-128-160H576c-63 0-128 78-128 160 0 53 27 105 64 134v74c-70-34-128-118-128-208 0-116 99-224 192-224h256c93 0 192 108 192 224s-96 224-192 224z" horiz-adv-x="1024" /> -<glyph glyph-name="link-external" unicode="" d="M704 192h64v-192c0-35-29-64-64-64H64c-35 0-64 29-64 64V640c0 35 29 64 64 64h192v-64H64v-640h640V192zM384 704l144-144-208-208 96-96 208 208 144-144V704H384z" horiz-adv-x="768" /> -<glyph glyph-name="list-ordered" unicode="" d="M768 0c0-38 0-64-38-64H294c-38 0-38 26-38 64s0 64 38 64h436c38 0 38-26 38-64zM294 576h436c38 0 38 26 38 64s0 64-38 64H294c-38 0-38-26-38-64s0-64 38-64z m436-192H294c-38 0-38-26-38-64s0-64 38-64h436c38 0 38 26 38 64s0 64-38 64zM128 768H82C63 756 45 752 16 746v-42h48v-137H10v-55h182v55h-64V768z m16-520c-11 0-29-2-42-4 34 36 73 80 73 121-1 50-36 83-87 83-38 0-62-13-88-41l37-37c12 12 24 24 41 24 18 0 31-10 31-33 0-34-49-77-109-132v-37h192l-6 56h-42z m-5-242v2c28 12 41 30 41 55 0 45-36 71-92 71-31 0-57-12-82-33l35-41c16 13 28 20 44 20 17 0 27-8 27-23 0-17-13-28-55-28v-48c53 0 63-11 63-30 0-16-15-24-37-24-18 0-36 9-52 24L0-92c19-23 49-36 90-36 53 0 98 26 98 74 0 32-20 52-49 60z" horiz-adv-x="768" /> -<glyph glyph-name="list-unordered" unicode="" d="M128 0c0-38 0-64-38-64H38c-38 0-38 26-38 64s0 64 38 64h52c38 0 38-26 38-64z m166 576h436c38 0 38 26 38 64s0 64-38 64H294c-38 0-38-26-38-64s0-64 38-64zM90 384H38c-38 0-38-26-38-64s0-64 38-64h52c38 0 38 26 38 64s0 64-38 64z m0 320H38c-38 0-38-26-38-64s0-64 38-64h52c38 0 38 26 38 64s0 64-38 64z m640-320H294c-38 0-38-26-38-64s0-64 38-64h436c38 0 38 26 38 64s0 64-38 64z m0-320H294c-38 0-38-26-38-64s0-64 38-64h436c38 0 38 26 38 64s0 64-38 64z" horiz-adv-x="768" /> -<glyph glyph-name="location" unicode="" d="M384 832C172 832 0 672 0 480c0-289 384-672 384-672s384 383 384 672C768 672 596 832 384 832z m0-931C265 31 64 292 64 480 64 639 208 768 384 768c86 0 167-31 228-87 59-55 92-126 92-201 0-188-201-449-320-579z m128 579c0-71-57-128-128-128s-128 57-128 128 57 128 128 128 128-57 128-128z" horiz-adv-x="768" /> -<glyph glyph-name="lock" unicode="" d="M256 0h-64v64h64v-64z m512 384v-448c0-35-29-64-64-64H64c-35 0-64 29-64 64V384c0 35 29 64 64 64h64V576C128 717 243 832 384 832s256-115 256-256v-128h64c35 0 64-29 64-64z m-525 64h282V576c0 78-63 141-141 141s-141-63-141-141v-128z m461-64H128v-448h576V384z m-448-64h-64v-64h64v64z m0-128h-64v-64h64v64z" horiz-adv-x="768" /> -<glyph glyph-name="logo-gist" unicode="" d="M301 401h157v-257c-35-17-105-22-162-22-164 0-222 141-222 323S132 769 296 769c82 0 132-15 210-47V790C465 811 400 832 296 832 72 832 0 660 0 446s71-386 296-386c105 0 180 17 230 41V465H301v-64z m409-238V572h-67v-402c0-80 37-110 110-110v57c-31 0-43 10-43 45v1z m16 558c0 28-21 50-50 50s-49-22-49-50 21-50 49-50 50 22 50 50z m278-364c-96 8-114 31-114 75 0 49 21 86 120 86 67 0 106-10 145-23v60c-44 19-97 25-144 25-141 0-187-77-187-148 0-69 30-120 175-133 99-8 113-40 113-86 0-47-28-91-132-91-71 0-119 12-149 23v-60c32-13 101-25 149-25 152 0 201 77 201 154 0 82-34 130-176 143h-1z m549 158v55h-155V730l-69-20v-135l-100-28v-31h100v-320c0-98 76-136 160-136 12 0 33 1 44 3v57c-12-2-26-2-39-2-62 0-96 25-96 86V516h155v-1z" horiz-adv-x="1600" /> -<glyph glyph-name="logo-github" unicode="" d="M553 500H312c-7 0-12-5-12-11v-118c0-6 5-11 12-11h94v-147s-21-7-80-7c-69 0-165 25-165 237s101 239 195 239c81 0 116-14 139-21 7-2 13 5 13 11l27 114c0 3-1 6-4 9-9 6-65 37-205 37C165 832 0 764 0 435s189-379 348-379c132 0 212 57 212 57 3 1 4 6 4 8V489c0 6-5 11-12 11h1zM1773 804h-136c-6 0-11-5-11-11v-262h-212V793c0 6-5 11-11 11h-136c-6 0-11-5-11-11v-711c0-6 6-11 11-11h136c6 0 11 5 11 11V386h212l-1-304c0-6 5-11 11-11h136c6 0 11 5 11 11V793c0 6-5 11-11 11h1zM716 788c-49 0-88-39-88-88s39-88 88-88c48 0 87 39 87 88s-39 88-87 88z m78-227c0 6-5 11-11 11H647c-6 0-11-6-11-13 0 0 0-395 0-470 0-13 8-17 19-17 0 0 58 0 123 0 13 0 16 6 16 17 0 25 0 471 0 471v1z m1505 10h-134c-7 0-11-5-11-12v-348s-35-25-83-25-62 22-62 70c0 47 0 304 0 304 0 6-5 11-11 11h-137c-6 0-11-5-11-11 0 0 0-186 0-327s79-176 187-176c89 0 161 49 161 49s3-25 5-29c1-3 6-6 10-6h86c7 0 11 5 11 11l1 478c0 6-5 11-12 11z m369 16c-77 0-129-34-129-34V794c0 6-5 11-11 11h-136c-6 0-11-5-11-11l-1-711c0-6 6-11 12-11h95c4 0 7 1 9 5 3 4 6 33 6 33s56-53 161-53c124 0 195 63 195 282s-113 248-190 248z m-53-401c-47 1-78 23-78 23V434s31 19 69 22c49 5 96-10 96-126 0-122-21-146-87-144z m-1429 3c-6 0-21-3-37-3-50 0-67 23-67 53s0 200 0 200h102c6 0 10 5 10 12V560c0 6-5 11-10 11h-102V706c0 5-3 8-9 8H935c-6 0-9-3-9-8v-139s-70-17-74-18c-5-1-8-6-8-11v-87c0-7 5-12 11-12h71s0-92 0-210c0-156 109-172 183-172 34 0 75 11 81 14 4 1 6 6 6 10v96c0 7-5 12-11 12h1z" horiz-adv-x="2880" /> -<glyph glyph-name="mail" unicode="" d="M0 576v-512c0-35 29-64 64-64h768c35 0 64 29 64 64V576c0 35-29 64-64 64H64c-35 0-64-29-64-64z m832 0L448 256 64 576h768zM64 480l256-192L64 96V480z m64-416l224 192 96-96 96 96 224-192H128z m704 32L576 288l256 192v-384z" horiz-adv-x="896" /> -<glyph glyph-name="mail-read" unicode="" d="M384 512H256v64h128v-64z m192-64H256v-64h320v64z m320 31v-543c0-35-29-64-64-64H64c-35 0-64 29-64 64V479c0 21 10 40 27 52l101 72v37c0 35 29 64 64 64h77L448 832l179-128h77c35 0 64-29 64-64v-37l101-72c17-12 27-31 27-52zM192 352l256-160 256 160V640H192v-288zM64-32l288 192L64 352v-384z m704-32L448 128 128-64h640z m64 416L544 160l288-192V352z" horiz-adv-x="896" /> -<glyph glyph-name="mail-reply" unicode="" d="M384 672l-384-288 384-288v192c111 0 329-61 384-280 0 291-196 451-384 472v192z" horiz-adv-x="768" /> -<glyph glyph-name="mark-github" unicode="" d="M512 832C229.252 832 0 602.748 0 320c0-226.251 146.688-418.126 350.155-485.813 25.593-4.686 34.937 11.125 34.937 24.626 0 12.188-0.469 52.562-0.718 95.314-128.708-23.46-161.707 31.541-172.469 60.373-5.525 14.809-30.407 60.249-52.398 72.263-17.988 9.828-43.26 33.237-0.917 33.735 40.434 0.476 69.348-37.308 78.471-52.75 45.938-77.749 119.876-55.627 148.999-42.5 4.654 32.999 17.902 55.627 32.501 68.373-113.657 12.939-233.22 56.875-233.22 253.063 0 55.94 19.968 101.561 52.658 137.404-5.22 12.999-22.844 65.095 5.063 135.563 0 0 42.937 13.749 140.811-52.501 40.811 11.406 84.594 17.031 128.124 17.22 43.499-0.188 87.314-5.874 128.188-17.28 97.689 66.311 140.686 52.501 140.686 52.501 28-70.532 10.375-122.564 5.124-135.499 32.811-35.844 52.626-81.468 52.626-137.404 0-196.686-119.751-240-233.813-252.686 18.439-15.876 34.748-47.001 34.748-94.748 0-68.437-0.686-123.627-0.686-140.501 0-13.625 9.312-29.561 35.25-24.562C877.436-97.99800000000005 1024 93.87400000000002 1024 320 1024 602.748 794.748 832 512 832z" horiz-adv-x="1024" /> -<glyph glyph-name="markdown" unicode="" d="M950.154 640H73.846C33.127 640 0 606.873 0 566.154v-492.308C0 33.125 33.127 0 73.846 0h876.308c40.721 0 73.846 33.125 73.846 73.846V566.154C1024 606.873 990.875 640 950.154 640zM576 128.125L448 128V320l-96-123.077L256 320v-192H128V512h128l96-128 96 128 128 0.125V128.125zM767.091 96.125L608 320h96V512h128v-192h96L767.091 96.125z" horiz-adv-x="1024" /> -<glyph glyph-name="megaphone" unicode="" d="M640 768c-11 0-23-3-33-9-92-56-319-220-415-247-88 0-192-43-192-160s104-160 192-160c19-5 41-15 64-26v-294h128V93c86-55 172-117 223-148 10-6 22-9 33-9 33 0 64 27 64 64V704c0 37-31 64-64 64z m0-768c-24 15-57 37-96 64-10 7-21 14-32 22V620c10 7 20 13 30 20 39 26 74 49 98 64v-704z m128 384h256v-64H768v64z m0-128l256-128v-64L768 192v64z m256 384v-64L768 448v64l256 128z" horiz-adv-x="1024" /> -<glyph glyph-name="mention" unicode="" d="M421-128c80 0 161 20 228 60l-27 60c-54-33-121-53-194-53-207 0-361 133-361 366C67 585 274 765 488 765c221 0 334-140 334-333 0-153-86-247-160-247-67 0-87 47-67 140l47 240h-67l-7-46c-26 40-60 53-100 53-140 0-234-153-234-280 0-107 60-167 147-167 54 0 107 34 147 80 7-60 60-93 127-93 107 0 241 107 241 320C896 665 742 832 501 832 234 832 0 619 0 299c0-280 187-427 421-427z m-20 320c-47 0-87 33-87 107 0 93 60 206 154 206 33 0 54-13 80-53l-33-193c-40-47-80-67-114-67z" horiz-adv-x="896" /> -<glyph glyph-name="milestone" unicode="" d="M512 704H384V832h128v-128z m256-320H128c-35 0-64 29-64 64V576c0 35 29 64 64 64h640l128-128-128-128zM512 576H384v-128h128V576z m-128-768h128V320H384v-512z" horiz-adv-x="896" /> -<glyph glyph-name="mirror" unicode="" d="M992 531L544 832 96 531c-19-12-32-29-32-51v-672l480 256 480-256V480c0 22-13 39-32 51z m-32-627L576 112v80h-64v-80L128-96V480L512 736v-288h64V736l384-256v-576zM384 384h320V512l192-192-192-192V256H384v-128L192 320l192 192v-128z" horiz-adv-x="1024" /> -<glyph glyph-name="mortar-board" unicode="" d="M501 244l-245 76s0-96 0-160 115-96 256-96 256 32 256 96 0 160 0 160l-245-76c-7-2-15-2-23 0h1z m18 409c-4 1-9 1-13 0l-489-152c-21-7-21-36 0-43l111-35v-113c-19-11-32-32-32-55 0-12 3-23 9-32-5-9-9-20-9-32v-165c0-35 128-35 128 0v165c0 12-3 23-9 32 5 9 9 20 9 32 0 24-13 44-32 55v93l313-98c4-1 9-1 13 0l489 152c21 7 21 36 0 43l-488 153z m-6-205c-35 0-64 14-64 32s29 32 64 32 64-14 64-32-29-32-64-32z" horiz-adv-x="1024" /> -<glyph glyph-name="mute" unicode="" d="M512 652v-664c0-43-52-64-82-34L192 192H64c-35 0-64 29-64 64V384c0 35 29 64 64 64h128l238 238c30 30 82 9 82-34z m482-206l-68 68-126-126-126 126-68-68 126-126-126-126 68-68 126 126 126-126 68 68-126 126 126 126z" horiz-adv-x="1024" /> -<glyph glyph-name="no-newline" unicode="" d="M1024 512v-192c0-35-29-64-64-64H768v-128L576 320l192 192v-128h128V512h128zM512 320c0-141-115-256-256-256S0 179 0 320s115 256 256 256 256-115 256-256zM96 214l266 266c-31 20-67 32-106 32-106 0-192-86-192-192 0-39 12-75 32-106z m352 106c0 39-12 75-32 106L150 160c31-20 67-32 106-32 106 0 192 86 192 192z" horiz-adv-x="1024" /> -<glyph glyph-name="octoface" unicode="" d="M940.812 554.312c8.25 20.219 35.375 101.75-8.562 211.906 0 0-67.375 21.312-219.875-82.906C648.5 700.875 579.875 703.5 512 703.5c-67.906 0-136.438-2.625-200.5-20.25C159.031 787.531 91.719 766.219 91.719 766.219 47.812 656 74.938 574.531 83.188 554.312 31.5 498.438 0 427.125 0 339.656 0 10.437999999999988 213.25-64 510.844-64 808.562-64 1024 10.437999999999988 1024 339.656 1024 427.125 992.5 498.438 940.812 554.312zM512-1c-211.406 0-382.781 9.875-382.781 214.688 0 48.938 24.062 94.595 65.344 132.312 68.75 62.969 185.281 29.688 317.438 29.688 132.25 0 248.625 33.281 317.438-29.625 41.312-37.78 65.438-83.312 65.438-132.312C894.875 8.875 723.375-1 512-1zM351.156 319.562c-42.469 0-76.906-51.062-76.906-114.188s34.438-114.312 76.906-114.312c42.375 0 76.812 51.188 76.812 114.312S393.531 319.562 351.156 319.562zM672.875 319.562C630.5 319.562 596 268.5 596 205.375s34.5-114.312 76.875-114.312 76.812 51.188 76.812 114.312C749.75 268.5 715.312 319.562 672.875 319.562z" horiz-adv-x="1024" /> -<glyph glyph-name="organization" unicode="" d="M304 515c35-41 86-67 144-67s109 26 144 67c22-40 64-67 112-67 71 0 128 57 128 128s-57 128-128 128c-26 0-49-8-69-21C615 768 539 832 448 832S281 768 261 683c-20 13-43 21-69 21-71 0-128-57-128-128s57-128 128-128c48 0 90 27 112 67z m333 97c13 24 38 41 67 41 42 0 77-35 77-77s-35-77-77-77-75 34-76 75c4 12 7 25 9 38zM448 769c71 0 129-58 129-129s-58-129-129-129-129 58-129 129S377 769 448 769zM192 499c-42 0-77 35-77 77s35 77 77 77c29 0 54-17 67-41 2-13 5-26 9-38-1-41-34-75-76-75z m640-51H64c-35 0-64-29-64-64v-192c0-35 29-64 64-64v-128c0-35 29-64 64-64h64c35 0 64 29 64 64v64h64v-192c0-35 29-64 64-64h128c35 0 64 29 64 64V64h64v-64c0-35 29-64 64-64h64c35 0 64 29 64 64V128c35 0 64 29 64 64V384c0 35-29 64-64 64zM192 0h-64V192H64V384h128v-384z m448 128h-64V256h-64v-384H384V256h-64v-128h-64V384h384v-256z m192 64h-64v-192h-64V384h128v-192z" horiz-adv-x="896" /> -<glyph glyph-name="package" unicode="" d="M0 559v-478c0-29 19-54 48-62l416-111c10-3 22-3 32 0l416 111c29 8 48 33 48 62V559c0 29-19 54-48 62L496 732c-10 2-22 2-32 0L48 621c-29-8-48-33-48-62z m448-582L64 79V512l384-103v-432zM64 576l160 43 416-111-160-43L64 576z m832-497L512-23V409l128 35v-156l128 34V478l128 34v-433zM768 542L352 653l128 34 416-111-128-34z" horiz-adv-x="1024" /> -<glyph glyph-name="paintcan" unicode="" d="M384 832C171.923 832 0 660.077 0 448v-64c0-35.346 28.654-64 64-64v-320c0-70.692 143.269-128 320-128s320 57.308 320 128V320c35.346 0 64 28.654 64 64v64C768 660.077 596.077 832 384 832zM576 192v-32c0-17.673-14.327-32-32-32s-32 14.327-32 32v32c0 17.673-14.327 32-32 32s-32-14.327-32-32v-160c0-17.673-14.327-32-32-32s-32 14.327-32 32V160c0 17.673-14.327 32-32 32s-32-14.327-32-32v-32c0-35.346-28.654-64-64-64s-64 28.654-64 64v64c-35.346 0-64 28.654-64 64V371.193C186.382 340.108 279.318 320 384 320s197.618 20.108 256 51.193V256C640 220.654 611.346 192 576 192zM384 384c-107.433 0-199.393 26.474-237.372 64 37.979 37.526 129.939 64 237.372 64s199.393-26.474 237.372-64C583.393 410.474 491.433 384 384 384zM384 576c-176.62 0-319.816-57.236-319.996-127.867-0.001 0.001-0.002 0.001-0.003 0.002C64.075 624.804 207.314 768 384 768c176.731 0 320-143.269 320-320C704 518.692 560.731 576 384 576z" horiz-adv-x="768" /> -<glyph glyph-name="pencil" unicode="" d="M0 64v-192h192l512 512-192 192L0 64z m192-128H64V64h64v-64h64v-64z m659 595l-83-83-192 192 83 83c25 25 65 25 90 0l102-102c25-25 25-65 0-90z" horiz-adv-x="896" /> -<glyph glyph-name="person" unicode="" d="M448 448H64c-35 0-64-29-64-64v-320h128v-192c0-35 29-64 64-64h128c35 0 64 29 64 64V64h128V384c0 35-29 64-64 64z m0-320h-64V256h-64v-384H192V256h-64v-128H64V384h384v-256z m0 512C448 746 362 832 256 832S64 746 64 640s86-192 192-192 192 86 192 192zM256 512c-71 0-128 57-128 128S185 768 256 768s128-57 128-128-57-128-128-128z" horiz-adv-x="512" /> -<glyph glyph-name="pin" unicode="" d="M640 755v-51l32-64-288-192H141c-28 0-43-34-22-55l201-201L64-128l320 256 201-201c21-21 55-6 55 22V192l192 288 64-32h51c28 0 43 34 22 55L695 777c-21 21-55 6-55-22z" horiz-adv-x="1024" /> -<glyph glyph-name="plug" unicode="" d="M960 448v64H704V640H576v-64H448c-66 0-113-52-128-128l-64-64c-106 0-192-86-192-192v-128h64V192c0 71 57 128 128 128l64-64c16-74 63-128 128-128h128v-64h128V192h256v64H704V448h256z" horiz-adv-x="1024" /> -<glyph glyph-name="plus" unicode="" d="M768 256H448v-320H320V256H0V384h320V704h128v-320h320v-128z" horiz-adv-x="768" /> -<glyph glyph-name="primitive-dot" unicode="" d="M0 320c0 141 115 256 256 256s256-115 256-256-115-256-256-256S0 179 0 320z" horiz-adv-x="512" /> -<glyph glyph-name="primitive-square" unicode="" d="M512 64H0V576h512V64z" horiz-adv-x="512" /> -<glyph glyph-name="pulse" unicode="" d="M736 320.062L563.188 486.406 422.406 288 352 729.594 152.438 320.062H0V192h230.406L288 307.188l57.594-345.562L576 288l102.375-96H896V320.062H736z" horiz-adv-x="896" /> -<glyph glyph-name="question" unicode="" d="M384 192h128v-128H384V192z m256 224c0-137-128-160-128-160H384c0 35 29 64 64 64h32c18 0 32 14 32 32v64c0 18-14 32-32 32h-64c-18 0-32-14-32-32v-32H256c0 96 96 192 192 192s192-64 192-160zM448 685c201 0 365-164 365-365S649-45 448-45 83 119 83 320s164 365 365 365m0 83C201 768 0 567 0 320s201-448 448-448 448 201 448 448S695 768 448 768z" horiz-adv-x="896" /> -<glyph glyph-name="quote" unicode="" d="M394 629C239 529 163 426 163 254c10 3 19 3 28 3 81 0 160-55 160-154 0-103-66-167-160-167C70-64 0 33 0 208 0 451 112 626 321 747l73-118z m448 0C687 529 611 426 611 254c10 3 19 3 28 3 81 0 160-55 160-154 0-103-66-167-160-167-121 0-191 97-191 272 0 243 112 418 321 539l73-118z" horiz-adv-x="896" /> -<glyph glyph-name="radio-tower" unicode="" d="M306.838 441.261c15.868 16.306 15.868 42.731 0 59.037-20.521 21.116-30.643 48.417-30.705 76.124 0.062 27.77 10.183 55.039 30.705 76.186 15.868 16.337 15.868 42.764 0 59.069-7.934 8.184-18.272 12.275-28.706 12.275-10.371 0-20.804-4.029-28.738-12.213-36.266-37.297-54.633-86.433-54.57-135.317-0.062-48.792 18.305-97.927 54.57-135.161C265.262 424.955 290.97 424.955 306.838 441.261zM149.093 798.858c-8.121 8.309-18.68 12.463-29.3 12.463-10.558 0-21.179-4.154-29.237-12.463C30.8 737.509 0.751 656.856 0.813 576.422 0.751 496.081 30.8 415.272 90.494 353.985c16.181-16.618 42.356-16.618 58.537 0 16.118 16.587 16.118 43.513 0 60.067-43.7 44.98-65.44 103.456-65.44 162.368s21.74 117.449 65.44 162.368C165.149 755.439 165.149 782.365 149.093 798.858zM513.031 472.153c57.351 0 103.956 46.574 103.956 103.956 0 57.382-46.605 103.955-103.956 103.955-57.381 0-103.956-46.573-103.956-103.955C409.076 518.727 455.65 472.153 513.031 472.153zM933.539 798.233c-16.181 16.618-42.355 16.618-58.475 0-16.181-16.587-16.181-43.513 0-60.068 43.668-44.918 65.409-103.456 65.409-162.368 0-58.85-21.805-117.387-65.473-162.306-16.117-16.618-16.117-43.575 0.062-60.068 8.059-8.309 18.616-12.463 29.237-12.463 10.558 0 21.178 4.154 29.236 12.463 59.726 61.287 89.774 142.096 89.649 222.437C1023.313 656.138 993.264 736.947 933.539 798.233zM513.281 389.127L513.281 389.127c-26.489-0.062-53.04 6.466-77.091 19.429L235.057-127.59000000000003h95.209l54.819 63.973h255.891l53.977-63.973h95.272L589.124 408.431C565.384 395.655 539.395 389.127 513.281 389.127zM512.656 358.483L577.004 128.29999999999995H449.059L512.656 358.483zM385.086 0.3550000000000182l63.974 63.973h127.944l63.974-63.973H385.086zM717.194 710.958c-15.868-16.306-15.868-42.731 0-59.037 20.491-21.116 30.611-48.511 30.674-76.124-0.062-27.77-10.183-55.102-30.674-76.187-15.868-16.336-15.868-42.763 0-59.068 7.871-8.184 18.242-12.213 28.737-12.213 10.309 0 20.741 4.029 28.675 12.213 36.298 37.234 54.665 86.433 54.54 135.255 0.125 48.792-18.181 97.927-54.54 135.161C758.801 727.264 733.062 727.264 717.194 710.958z" horiz-adv-x="1024" /> -<glyph glyph-name="repo" unicode="" d="M256 256h-64v64h64v-64z m0 192h-64v-64h64v64z m0 128h-64v-64h64v64z m0 128h-64v-64h64v64z m512 64v-768c0-35-29-64-64-64H384v-128l-96 96-96-96V-64H64c-35 0-64 29-64 64V768C0 803 29 832 64 832h640c35 0 64-29 64-64z m-64-640H64v-128h128v64h192v-64h320V128z m0 640H128v-576h576V768z" horiz-adv-x="768" /> -<glyph glyph-name="repo-clone" unicode="" d="M960 832H576v-448c0-35 29-64 64-64h64v-64h64v64h192c35 0 64 29 64 64V768c0 35-29 64-64 64zM704 384h-64v64h64v-64z m256 0H768v64h192v-64z m0 128H704V768h256v-256z m-704 0h-64v64h64v-64z m0 128h-64v64h64v-64zM128 768h384V832H64C29 832 0 803 0 768v-768c0-35 29-64 64-64h128v-128l96 96 96-96V-64h320c35 0 64 29 64 64V192H128V768z m576-640v-128H384v64H192v-64H64V128h640zM192 320h64v-64h-64v64z m64 64h-64v64h64v-64z" horiz-adv-x="1024" /> -<glyph glyph-name="repo-force-push" unicode="" d="M640 256H512v-448H384V256H256l144 192H256l192 256 192-256H496l144-192zM704 832H64C29 832 0 803 0 768v-768c0-35 29-64 64-64h256v64H64V128h256v64H128V768h576v-576H576v-64h128v-128H576v-64h128c35 0 64 29 64 64V768c0 35-29 64-64 64z" horiz-adv-x="768" /> -<glyph glyph-name="repo-forked" unicode="" d="M512 768c-71 0-128-57-128-128 0-47 26-88 64-110v-82L320 320 192 448v82c38 22 64 63 64 110 0 71-57 128-128 128S0 711 0 640c0-47 26-88 64-110v-114l192-192v-114c-38-22-64-63-64-110 0-71 57-128 128-128s128 57 128 128c0 47-26 88-64 110V224l192 192V530c38 22 64 63 64 110 0 71-57 128-128 128zM128 563c-42 0-77 35-77 77s35 77 77 77 77-35 77-77-35-77-77-77z m192-640c-42 0-77 35-77 77s35 77 77 77 77-35 77-77-35-77-77-77z m192 640c-42 0-77 35-77 77s35 77 77 77 77-35 77-77-35-77-77-77z" horiz-adv-x="640" /> -<glyph glyph-name="repo-pull" unicode="" d="M832 320V448H448V576h384V704l192-192-192-192zM256 704h-64v-64h64v64z m448-320h64v-384c0-35-29-64-64-64H384v-128l-96 96-96-96V-64H64c-35 0-64 29-64 64V768C0 803 29 832 64 832h640c35 0 64-29 64-64v-128h-64V768H128v-576h576V384z m0-256H64v-128h128v64h192v-64h320V128zM256 448h-64v-64h64v64z m0 128h-64v-64h64v64z m-64-320h64v64h-64v-64z" horiz-adv-x="1024" /> -<glyph glyph-name="repo-push" unicode="" d="M256 640h-64v64h64v-64z m-64-128h64v64h-64v-64z m256 0L256 256h128v-448h128V256h128L448 512zM704 832H64C29 832 0 803 0 768v-768c0-35 29-64 64-64h256v64H64V128h256v64H128V768h577l-1-576H576v-64h128v-128H576v-64h128c35 0 64 29 64 64V768c0 35-29 64-64 64z" horiz-adv-x="768" /> -<glyph glyph-name="rocket" unicode="" d="M1024 832s-6-24-19-68c-13-45-35-101-68-170-45 5-81 21-106 46s-40 60-45 105c69 33 125 56 169 69 45 13 69 18 69 18zM779 587c-17 17-30 35-40 56-10 20-17 42-22 65-37-21-74-45-111-72-37-28-73-60-108-95-45-45-85-116-114-157H192L0 192h192l128 128c-22-49-65-191-64-192l64-64c1-1 143 41 192 64L384 0v-192l192 192V192c41 29 112 70 157 114 35 35 67 72 94 109 28 37 52 74 73 110-23 5-45 12-66 22-20 10-38 23-55 40z" horiz-adv-x="1024" /> -<glyph glyph-name="rss" unicode="" d="M128 0H0V128c71 0 128-57 128-128zM0 640v-64c318 0 576-258 576-576h64c0 353-287 640-640 640z m0-256v-64c176 0 320-144 320-320h64c0 212-172 384-384 384z" horiz-adv-x="640" /> -<glyph glyph-name="ruby" unicode="" d="M832 448L512 128V576h192l128-128z m192 0L512-64 0 448l256 256h512l256-256zM512 32l416 416-192 192H288L96 448l416-416z" horiz-adv-x="1024" /> -<glyph glyph-name="search" unicode="" d="M1005-83L761 162c45 63 71 139 71 222 0 212-172 384-384 384S64 596 64 384s172-384 384-384c83 0 159 26 222 71l245-244c12-13 29-19 45-19s33 6 45 19c25 25 25 65 0 90zM448 83c-166 0-301 135-301 301s135 301 301 301 301-135 301-301-135-301-301-301z" horiz-adv-x="1024" /> -<glyph glyph-name="server" unicode="" d="M704 448H64c-35 0-64-29-64-64v-128c0-35 29-64 64-64h640c35 0 64 29 64 64V384c0 35-29 64-64 64zM128 256H64V384h64v-128z m128 0h-64V384h64v-128z m128 0h-64V384h64v-128z m128 0h-64V384h64v-128zM704 768H64C29 768 0 739 0 704v-128c0-35 29-64 64-64h640c35 0 64 29 64 64V704c0 35-29 64-64 64zM128 576H64V704h64v-128z m128 0h-64V704h64v-128z m128 0h-64V704h64v-128z m128 0h-64V704h64v-128z m192 64h-64v64h64v-64z m0-512H64c-35 0-64-29-64-64v-128c0-35 29-64 64-64h640c35 0 64 29 64 64V64c0 35-29 64-64 64zM128-64H64V64h64v-128z m128 0h-64V64h64v-128z m128 0h-64V64h64v-128z m128 0h-64V64h64v-128z" horiz-adv-x="768" /> -<glyph glyph-name="settings" unicode="" d="M192 384h-64V704h64v-320z m-64-448h64V128h-64v-192z m320 0h64V320h-64v-384z m320 0h64V64h-64v-128z m64 768h-64v-384h64V704z m-320 0h-64v-128h64V704zM256 320H64c-35 0-64-29-64-64s29-64 64-64h192c35 0 64 29 64 64s-29 64-64 64z m320 192H384c-35 0-64-29-64-64s29-64 64-64h192c35 0 64 29 64 64s-29 64-64 64z m320-256H704c-35 0-64-29-64-64s29-64 64-64h192c35 0 64 29 64 64s-29 64-64 64z" horiz-adv-x="1024" /> -<glyph glyph-name="shield" unicode="" d="M448 832L0 704v-385c0-299 340-511 448-511s448 212 448 511V704L448 832zM320 128l73 179c3 15-4 30-16 38-36 23-57 61-57 103 0 70 57 128 127 128 69 0 129-58 129-128 0-42-21-80-57-103-12-8-19-23-16-38l73-179H320z" horiz-adv-x="896" /> -<glyph glyph-name="sign-in" unicode="" d="M384 400v-336h256V320h64v-256c0-35-29-64-64-64H384v-192L35-18c-21 11-35 33-35 58V768C0 803 29 832 64 832h576c35 0 64-29 64-64v-192h-64V768H128l256-128v-144l192 144v-128h256v-128H576v-128L384 400z" horiz-adv-x="896" /> -<glyph glyph-name="sign-out" unicode="" d="M768 256V384H512V512h256V640l256-192-256-192zM640 64H384V640L128 768h512v-192h64V768c0 35-29 64-64 64H64C29 832 0 803 0 768v-728c0-25 14-47 35-58l349-174V0h256c35 0 64 29 64 64V320h-64v-256z" horiz-adv-x="1024" /> -<glyph glyph-name="smiley" unicode="" d="M512 832C229 832 0 603 0 320s229-512 512-512 512 229 512 512S795 832 512 832z m308-820c-40-40-87-71-139-93-53-23-110-34-169-34s-116 11-169 34c-52 22-99 53-139 93s-71 87-93 139c-23 53-34 110-34 169s11 116 34 169c22 52 53 99 93 139s87 71 139 93c53 23 110 34 169 34s116-11 169-34c52-22 99-53 139-93s71-87 93-139c23-53 34-110 34-169s-11-116-34-169c-22-52-53-99-93-139zM256 461v38c0 42 34 76 77 76h38c42 0 76-34 76-76v-38c0-43-34-77-76-77h-38c-43 0-77 34-77 77z m320 0v38c0 42 34 76 77 76h38c42 0 76-34 76-76v-38c0-43-34-77-76-77h-38c-43 0-77 34-77 77z m256-269c-46-120-186-192-320-192s-274 72-320 192c-9 25 15 64 42 64h550c26 0 57-39 48-64z" horiz-adv-x="1024" /> -<glyph glyph-name="squirrel" unicode="" d="M768 768c-141.385 0-256-83.75-256-186.875C512 457.25 544 387 512 192c0 288-177 405.783-256 405.783 3.266 32.17-30.955 42.217-30.955 42.217s-14-7.124-19.354-21.583c-17.231 20.053-36.154 17.54-36.154 17.54l-8.491-37.081c0 0-117.045-40.876-118.635-206.292C56 371 141.311 353.898 201.887 364.882c57.157-2.956 42.991-50.648 30.193-63.446C178.083 247.438 128 320 64 320s-64-64 0-64 64-64 192-64c-198-77 0-256 0-256h-64c-64 0-64-64-64-64s256 0 384 0c192 0 320 64 320 222.182 0 54.34-27.699 114.629-64 162.228C697.057 349.433 782.453 427.566 832 384s192-64 192 128C1024 653.385 909.385 768 768 768zM160 448c-17.674 0-32 14.327-32 32 0 17.674 14.326 32 32 32 17.673 0 32-14.326 32-32C192 462.327 177.673 448 160 448z" horiz-adv-x="1024" /> -<glyph glyph-name="star" unicode="" d="M896 448l-313.5 40.781L448 768 313.469 488.781 0 448l230.469-208.875L171-63.93799999999999l277 148.812 277.062-148.812L665.5 239.125 896 448z" horiz-adv-x="896" /> -<glyph glyph-name="stop" unicode="" d="M640 768H256L0 512v-384l256-256h384l256 256V512L640 768z m192-608L608-64H288L64 160V480l224 224h320l224-224v-320zM384 576h128v-320H384V576z m0-384h128v-128H384V192z" horiz-adv-x="896" /> -<glyph glyph-name="sync" unicode="" d="M655.461 358.531c11.875-81.719-13.062-167.781-76.812-230.594-94.188-92.938-239.5-104.375-346.375-34.562l74.875 73L31.96 204.75 70.367-64l84.031 80.5c150.907-111.25 364.938-100.75 502.063 34.562 79.5 78.438 115.75 182.562 111.25 285.312L655.461 358.531zM189.46 511.938c94.156 92.938 239.438 104.438 346.313 34.562l-75-72.969 275.188-38.406L697.586 704l-83.938-80.688C462.711 734.656 248.742 724.031 111.585 588.75 32.085 510.344-4.133 406.219 0.335 303.5l112.25-22.125C100.71 363.125 125.71 449.094 189.46 511.938z" horiz-adv-x="768.051" /> -<glyph glyph-name="tag" unicode="" d="M431 657c-30 30-71 47-113 47H160C72 704 0 632 0 544v-158c0-42 17-83 47-113l388-388c25-25 65-25 90 0l294 294c25 25 25 65 0 90L431 657zM88 314c-20 19-30 45-30 72V544c0 56 46 102 102 102h158c27 0 53-10 72-30l393-392-303-303L88 314z m40 262h128v-128H128V576z" horiz-adv-x="896" /> -<glyph glyph-name="tasklist" unicode="" d="M986 256H486c-38 0-38 26-38 64s0 64 38 64h500c38 0 38-26 38-64s0-64-38-64zM614 576c-38 0-38 26-38 64s0 64 38 64h372c38 0 38-26 38-64s0-64-38-64H614zM0 582l90 83 102-102L454 832l90-90-352-352L0 582z m486-518h500c38 0 38-26 38-64s0-64-38-64H486c-38 0-38 26-38 64s0 64 38 64z" horiz-adv-x="1024" /> -<glyph glyph-name="telescope" unicode="" d="M512 256l192-384h-64L512 128v-320h-64V192L320-128h-64l128 320 128 64zM448 832h-64v-64h64V832zM320 640h-64v-64h64v64zM128 768H64v-64h64V768zM40 256c-14-10-18-28-10-43l35-59c8-15 26-20 41-13l89 42-74 128-81-55z m505 345L174 348l79-137 405 194-113 196z m270-82l-94 161c-9 16-30 21-46 11l-77-53 118-205 85 41c17 8 23 28 14 45z" horiz-adv-x="896" /> -<glyph glyph-name="terminal" unicode="" d="M448 192h256v-64H448v64z m-192-64l192 192-192 192-48-48 144-144-144-144 48-48z m640 512v-640c0-35-29-64-64-64H64c-35 0-64 29-64 64V640c0 35 29 64 64 64h768c35 0 64-29 64-64z m-64 0H64v-640h768V640z" horiz-adv-x="896" /> -<glyph glyph-name="text-size" unicode="" d="M1150-64h-144l-61 208H685l-61-208H480l-44 149H226l-45-149H42l211 614h160l139-406 185 560h161l252-768zM407 184s-65 231-75 263h-5l-72-263h152z m507 67l-97 347h-4l-96-347h197z" horiz-adv-x="1152" /> -<glyph glyph-name="three-bars" unicode="" d="M730 256H38c-38 0-38 26-38 64s0 64 38 64h692c38 0 38-26 38-64s0-64-38-64z m0 256H38c-38 0-38 26-38 64s0 64 38 64h692c38 0 38-26 38-64s0-64-38-64zM38 128h692c38 0 38-26 38-64s0-64-38-64H38c-38 0-38 26-38 64s0 64 38 64z" horiz-adv-x="768" /> -<glyph glyph-name="thumbsdown" unicode="" d="M1023 331l-62 381C950 800 840 832 768 832H364c-13 0-24-3-34-9l-92-55H128C60 768 0 708 0 640v-256c0-68 60-129 128-128h128c58 0 89-29 153-99 58-64 56-115 40-209-5-32 4-64 27-91 25-30 63-49 100-49 117 0 192 238 192 321l-1 63c1 0 1 0 1 0h129c74 0 125 51 127 126 0 4 1 8-1 13z m-126-76H769c-45 0-66-18-66-62l2-66c0-81-75-256-128-256-32 0-69 32-64 64 16 101 22 178-57 265-65 72-113 120-200 120V704l107 64h405c47 0 125-20 128-64l1-1 64-384c-2-41-24-64-64-64z" horiz-adv-x="1024" /> -<glyph glyph-name="thumbsup" unicode="" d="M896 448H768s0 0-1 0l1 63c0 83-75 321-192 321-37 0-75-19-100-49-23-26-32-58-27-90 16-95 18-146-40-210-64-70-95-99-153-99H128C60 384 0 324 0 256v-256c0-68 60-128 128-128h110l92-55c10-6 21-9 33-9h405c72 0 182 32 192 120l63 381c1 5 1 9 1 13-2 75-54 126-128 126z m0-512c-3-44-81-64-128-64H363l-107 64V320c87 0 135 48 200 120 79 87 73 164 56 264-5 32 32 64 64 64 53 0 128-175 128-256l-1-66c0-44 21-62 65-62h128c40 0 63-23 64-64l-64-384z" horiz-adv-x="1024" /> -<glyph glyph-name="tools" unicode="" d="M286.547 366.984c16.843-16.812 81.716-85.279 81.716-85.279l35.968 37.093-56.373 58.248L456.072 491.98c0 0-48.842 47.623-27.468 28.655 20.438 75.903 1.812 160.589-55.842 220.243C315.608 800.064 234.392 819.47 161.425 799.096l123.653-127.715-32.53-125.309-121.06-33.438L7.898 640.3820000000001c-19.718-75.436-0.969-159.339 56.311-218.556C124.302 359.703 210.83 341.453 286.547 366.984zM698.815 242.769L549.694 95.46100000000001l245.932-254.805c20.062-20.812 46.498-31.188 72.872-31.188 26.25 0 52.624 10.375 72.811 31.188 40.249 41.624 40.249 108.997 0 150.62L698.815 242.769zM1023.681 670.162L867.06 832.001 405.387 354.703l56.373-58.248L185.425 10.839000000000055l-63.154-33.749-89.217-145.559 22.719-23.562 140.839 92.247 32.655 65.312 276.336 285.554 56.404-58.248L1023.681 670.162z" horiz-adv-x="1024" /> -<glyph glyph-name="trashcan" unicode="" d="M640 704H512c0 35-29 64-64 64H256c-35 0-64-29-64-64H64c-35 0-64-29-64-64v-64c0-35 29-64 64-64v-576c0-35 29-64 64-64h448c35 0 64 29 64 64V512c35 0 64 29 64 64v64c0 35-29 64-64 64z m-64-768H128V512h64v-512h64V512h64v-512h64V512h64v-512h64V512h64v-576z m64 640H64v64h576v-64z" horiz-adv-x="768" /> -<glyph glyph-name="triangle-down" unicode="" d="M0 512l384-384 384 384H0z" horiz-adv-x="768" /> -<glyph glyph-name="triangle-left" unicode="" d="M384 704L0 320l384-384V704z" horiz-adv-x="384" /> -<glyph glyph-name="triangle-right" unicode="" d="M0-64l384 384L0 704v-768z" horiz-adv-x="384" /> -<glyph glyph-name="triangle-up" unicode="" d="M768 128L384 512 0 128h768z" horiz-adv-x="768" /> -<glyph glyph-name="unfold" unicode="" d="M736 288l160-160c0-35-29-64-64-64H576v64h224L672 256H224L96 128h224v-64H64c-35 0-64 29-64 64l160 160L0 448c0 35 29 64 64 64h256v-64H96l128-128h448l128 128H576v64h256c35 0 64-29 64-64L736 288z m-352 96h128V576h128L448 768 256 576h128v-192z m128-192H384v-192H256l192-192 192 192H512V192z" horiz-adv-x="896" /> -<glyph glyph-name="unmute" unicode="" d="M704 319c0-70-29-134-75-181l-43 43c35 36 57 84 57 138s-22 103-57 138l43 43c46-46 75-110 75-181zM430 686L192 448H64c-35 0-64-29-64-64v-128c0-35 29-64 64-64h128l238-238c30-30 82-9 82 34V652c0 43-52 64-82 34z m380-5l-43-43c82-82 132-194 132-319 0-124-50-237-132-319l43-43c93 93 150 221 150 362 0 142-57 270-150 362z m-90-90l-44-43c59-59 95-140 95-229s-36-170-95-228l44-43c69 69 112 165 112 271s-43 202-112 272z" horiz-adv-x="1024" /> -<glyph glyph-name="unverified" unicode="" d="M1003 380l-69 86c-11 14-18 31-20 49l-12 109c-5 45-40 80-85 85l-109 12c-19 2-36 10-50 21l-86 69c-35 28-85 28-120 0l-86-69c-14-11-31-18-49-20l-109-12c-45-5-80-40-85-85l-12-109c-2-19-10-36-21-50l-69-86c-28-35-28-85 0-120l69-86c11-14 18-31 20-49l12-109c5-45 40-80 85-85l109-12c19-2 36-10 50-21l86-69c35-28 85-28 120 0l86 69c14 11 31 18 49 20l109 12c45 5 80 40 85 85l12 109c2 19 10 36 21 50l69 86c28 35 28 85 0 120zM576 96c0-18-14-32-32-32h-64c-17 0-32 14-32 32v64c0 18 15 32 32 32h64c18 0 32-14 32-32v-64z m100 313c-4-11-11-21-19-30-8-10-9-12-21-24-10-11-20-19-33-29-7-6-13-12-18-17s-9-11-12-17-5-12-7-19-2-8-2-16H456c0 14 0 20 2 31 2 12 5 23 9 33 4 9 9 18 16 27 7 8 15 16 26 24 17 12 23 19 31 33s13 24 13 38c0 17-4 29-13 37-8 8-20 12-37 12-6 0-12-1-19-3s-11-6-16-10-9-7-13-13-6-9-6-18H321c0 24 8 36 17 53 10 17 23 32 39 43s35 19 56 24 45 8 70 8c28 0 53-3 75-8 22-6 40-14 56-25 15-11 26-24 35-40 8-16 12-35 12-56 0-14 0-27-5-38z" horiz-adv-x="1024" /> -<glyph glyph-name="verified" unicode="" d="M1003 380l-69 86c-11 14-18 31-20 49l-12 109c-5 45-40 80-85 85l-109 12c-19 2-36 10-50 21l-86 69c-35 28-85 28-120 0l-86-69c-14-11-31-18-49-20l-109-12c-45-5-80-40-85-85l-12-109c-2-19-10-36-21-50l-69-86c-28-35-28-85 0-120l69-86c11-14 18-31 20-49l12-109c5-45 40-80 85-85l109-12c19-2 36-10 50-21l86-69c35-28 85-28 120 0l86 69c14 11 31 18 49 20l109 12c45 5 80 40 85 85l12 109c2 19 10 36 21 50l69 86c28 35 28 85 0 120zM416 64L192 288l96 96 128-128 320 320 96-99-416-413z" horiz-adv-x="1024" /> -<glyph glyph-name="versions" unicode="" d="M832 640H448c-35 0-64-29-64-64v-512c0-35 29-64 64-64h384c35 0 64 29 64 64V576c0 35-29 64-64 64z m-64-512H512V512h256v-384zM256 576h64v-64h-64v-384h64v-64h-64c-35 0-64 29-64 64V512c0 35 29 64 64 64zM64 512h64v-64H64v-256h64v-64H64c-35 0-64 29-64 64V448c0 35 29 64 64 64z" horiz-adv-x="896" /> -<glyph glyph-name="watch" unicode="" d="M384 320h128v-64H320V512h64v-192z m384 0c0-142-77-266-192-332v-116c0-35-29-64-64-64H256c-35 0-64 29-64 64V-12C77 54 0 178 0 320s77 266 192 332V768c0 35 29 64 64 64h256c35 0 64-29 64-64v-116c115-66 192-190 192-332z m-64 0c0 177-143 320-320 320S64 497 64 320s143-320 320-320 320 143 320 320z" horiz-adv-x="768" /> -<glyph glyph-name="x" unicode="" d="M479 320l240-240-95-95-240 240-240-240-95 95 240 240L49 560l95 95 240-240 240 240 95-95-240-240z" horiz-adv-x="768" /> -<glyph glyph-name="zap" unicode="⚡" d="M640 384H384L576 832 0 256h256L64-192 640 384z" horiz-adv-x="640" /> -</font> -</defs> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.ttf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.ttf deleted file mode 100644 index 0a62bb9e..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.ttf and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.woff b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.woff deleted file mode 100644 index a5d36a43..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/octicons.woff and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/sprockets-octicons.scss b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/sprockets-octicons.scss deleted file mode 100644 index 06e6012f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/octicons/sprockets-octicons.scss +++ /dev/null @@ -1,222 +0,0 @@ -@font-face { - font-family: 'octicons'; - src: font-url('octicons.eot?#iefix') format('embedded-opentype'), - font-url('octicons.woff') format('woff'), - font-url('octicons.ttf') format('truetype'), - font-url('octicons.svg#octicons') format('svg'); - font-weight: normal; - font-style: normal; -} - -// .octicon is optimized for 16px. -// .mega-octicon is optimized for 32px but can be used larger. -.octicon, .mega-octicon { - font: normal normal normal 16px/1 octicons; - display: inline-block; - text-decoration: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.mega-octicon { font-size: 32px; } - -.octicon-alert:before { content: '\f02d'} /*  */ -.octicon-arrow-down:before { content: '\f03f'} /*  */ -.octicon-arrow-left:before { content: '\f040'} /*  */ -.octicon-arrow-right:before { content: '\f03e'} /*  */ -.octicon-arrow-small-down:before { content: '\f0a0'} /*  */ -.octicon-arrow-small-left:before { content: '\f0a1'} /*  */ -.octicon-arrow-small-right:before { content: '\f071'} /*  */ -.octicon-arrow-small-up:before { content: '\f09f'} /*  */ -.octicon-arrow-up:before { content: '\f03d'} /*  */ -.octicon-microscope:before, -.octicon-beaker:before { content: '\f0dd'} /*  */ -.octicon-bell:before { content: '\f0de'} /*  */ -.octicon-bold:before { content: '\f0e2'} /*  */ -.octicon-book:before { content: '\f007'} /*  */ -.octicon-bookmark:before { content: '\f07b'} /*  */ -.octicon-briefcase:before { content: '\f0d3'} /*  */ -.octicon-broadcast:before { content: '\f048'} /*  */ -.octicon-browser:before { content: '\f0c5'} /*  */ -.octicon-bug:before { content: '\f091'} /*  */ -.octicon-calendar:before { content: '\f068'} /*  */ -.octicon-check:before { content: '\f03a'} /*  */ -.octicon-checklist:before { content: '\f076'} /*  */ -.octicon-chevron-down:before { content: '\f0a3'} /*  */ -.octicon-chevron-left:before { content: '\f0a4'} /*  */ -.octicon-chevron-right:before { content: '\f078'} /*  */ -.octicon-chevron-up:before { content: '\f0a2'} /*  */ -.octicon-circle-slash:before { content: '\f084'} /*  */ -.octicon-circuit-board:before { content: '\f0d6'} /*  */ -.octicon-clippy:before { content: '\f035'} /*  */ -.octicon-clock:before { content: '\f046'} /*  */ -.octicon-cloud-download:before { content: '\f00b'} /*  */ -.octicon-cloud-upload:before { content: '\f00c'} /*  */ -.octicon-code:before { content: '\f05f'} /*  */ -.octicon-comment-add:before, -.octicon-comment:before { content: '\f02b'} /*  */ -.octicon-comment-discussion:before { content: '\f04f'} /*  */ -.octicon-credit-card:before { content: '\f045'} /*  */ -.octicon-dash:before { content: '\f0ca'} /*  */ -.octicon-dashboard:before { content: '\f07d'} /*  */ -.octicon-database:before { content: '\f096'} /*  */ -.octicon-clone:before, -.octicon-desktop-download:before { content: '\f0dc'} /*  */ -.octicon-device-camera:before { content: '\f056'} /*  */ -.octicon-device-camera-video:before { content: '\f057'} /*  */ -.octicon-device-desktop:before { content: '\f27c'} /*  */ -.octicon-device-mobile:before { content: '\f038'} /*  */ -.octicon-diff:before { content: '\f04d'} /*  */ -.octicon-diff-added:before { content: '\f06b'} /*  */ -.octicon-diff-ignored:before { content: '\f099'} /*  */ -.octicon-diff-modified:before { content: '\f06d'} /*  */ -.octicon-diff-removed:before { content: '\f06c'} /*  */ -.octicon-diff-renamed:before { content: '\f06e'} /*  */ -.octicon-ellipsis:before { content: '\f09a'} /*  */ -.octicon-eye-unwatch:before, -.octicon-eye-watch:before, -.octicon-eye:before { content: '\f04e'} /*  */ -.octicon-file-binary:before { content: '\f094'} /*  */ -.octicon-file-code:before { content: '\f010'} /*  */ -.octicon-file-directory:before { content: '\f016'} /*  */ -.octicon-file-media:before { content: '\f012'} /*  */ -.octicon-file-pdf:before { content: '\f014'} /*  */ -.octicon-file-submodule:before { content: '\f017'} /*  */ -.octicon-file-symlink-directory:before { content: '\f0b1'} /*  */ -.octicon-file-symlink-file:before { content: '\f0b0'} /*  */ -.octicon-file-text:before { content: '\f011'} /*  */ -.octicon-file-zip:before { content: '\f013'} /*  */ -.octicon-flame:before { content: '\f0d2'} /*  */ -.octicon-fold:before { content: '\f0cc'} /*  */ -.octicon-gear:before { content: '\f02f'} /*  */ -.octicon-gift:before { content: '\f042'} /*  */ -.octicon-gist:before { content: '\f00e'} /*  */ -.octicon-gist-secret:before { content: '\f08c'} /*  */ -.octicon-git-branch-create:before, -.octicon-git-branch-delete:before, -.octicon-git-branch:before { content: '\f020'} /*  */ -.octicon-git-commit:before { content: '\f01f'} /*  */ -.octicon-git-compare:before { content: '\f0ac'} /*  */ -.octicon-git-merge:before { content: '\f023'} /*  */ -.octicon-git-pull-request-abandoned:before, -.octicon-git-pull-request:before { content: '\f009'} /*  */ -.octicon-globe:before { content: '\f0b6'} /*  */ -.octicon-graph:before { content: '\f043'} /*  */ -.octicon-heart:before { content: '\2665'} /* ♥ */ -.octicon-history:before { content: '\f07e'} /*  */ -.octicon-home:before { content: '\f08d'} /*  */ -.octicon-horizontal-rule:before { content: '\f070'} /*  */ -.octicon-hubot:before { content: '\f09d'} /*  */ -.octicon-inbox:before { content: '\f0cf'} /*  */ -.octicon-info:before { content: '\f059'} /*  */ -.octicon-issue-closed:before { content: '\f028'} /*  */ -.octicon-issue-opened:before { content: '\f026'} /*  */ -.octicon-issue-reopened:before { content: '\f027'} /*  */ -.octicon-italic:before { content: '\f0e4'} /*  */ -.octicon-jersey:before { content: '\f019'} /*  */ -.octicon-key:before { content: '\f049'} /*  */ -.octicon-keyboard:before { content: '\f00d'} /*  */ -.octicon-law:before { content: '\f0d8'} /*  */ -.octicon-light-bulb:before { content: '\f000'} /*  */ -.octicon-link:before { content: '\f05c'} /*  */ -.octicon-link-external:before { content: '\f07f'} /*  */ -.octicon-list-ordered:before { content: '\f062'} /*  */ -.octicon-list-unordered:before { content: '\f061'} /*  */ -.octicon-location:before { content: '\f060'} /*  */ -.octicon-gist-private:before, -.octicon-mirror-private:before, -.octicon-git-fork-private:before, -.octicon-lock:before { content: '\f06a'} /*  */ -.octicon-logo-gist:before { content: '\f0ad'} /*  */ -.octicon-logo-github:before { content: '\f092'} /*  */ -.octicon-mail:before { content: '\f03b'} /*  */ -.octicon-mail-read:before { content: '\f03c'} /*  */ -.octicon-mail-reply:before { content: '\f051'} /*  */ -.octicon-mark-github:before { content: '\f00a'} /*  */ -.octicon-markdown:before { content: '\f0c9'} /*  */ -.octicon-megaphone:before { content: '\f077'} /*  */ -.octicon-mention:before { content: '\f0be'} /*  */ -.octicon-milestone:before { content: '\f075'} /*  */ -.octicon-mirror-public:before, -.octicon-mirror:before { content: '\f024'} /*  */ -.octicon-mortar-board:before { content: '\f0d7'} /*  */ -.octicon-mute:before { content: '\f080'} /*  */ -.octicon-no-newline:before { content: '\f09c'} /*  */ -.octicon-octoface:before { content: '\f008'} /*  */ -.octicon-organization:before { content: '\f037'} /*  */ -.octicon-package:before { content: '\f0c4'} /*  */ -.octicon-paintcan:before { content: '\f0d1'} /*  */ -.octicon-pencil:before { content: '\f058'} /*  */ -.octicon-person-add:before, -.octicon-person-follow:before, -.octicon-person:before { content: '\f018'} /*  */ -.octicon-pin:before { content: '\f041'} /*  */ -.octicon-plug:before { content: '\f0d4'} /*  */ -.octicon-repo-create:before, -.octicon-gist-new:before, -.octicon-file-directory-create:before, -.octicon-file-add:before, -.octicon-plus:before { content: '\f05d'} /*  */ -.octicon-primitive-dot:before { content: '\f052'} /*  */ -.octicon-primitive-square:before { content: '\f053'} /*  */ -.octicon-pulse:before { content: '\f085'} /*  */ -.octicon-question:before { content: '\f02c'} /*  */ -.octicon-quote:before { content: '\f063'} /*  */ -.octicon-radio-tower:before { content: '\f030'} /*  */ -.octicon-repo-delete:before, -.octicon-repo:before { content: '\f001'} /*  */ -.octicon-repo-clone:before { content: '\f04c'} /*  */ -.octicon-repo-force-push:before { content: '\f04a'} /*  */ -.octicon-gist-fork:before, -.octicon-repo-forked:before { content: '\f002'} /*  */ -.octicon-repo-pull:before { content: '\f006'} /*  */ -.octicon-repo-push:before { content: '\f005'} /*  */ -.octicon-rocket:before { content: '\f033'} /*  */ -.octicon-rss:before { content: '\f034'} /*  */ -.octicon-ruby:before { content: '\f047'} /*  */ -.octicon-search-save:before, -.octicon-search:before { content: '\f02e'} /*  */ -.octicon-server:before { content: '\f097'} /*  */ -.octicon-settings:before { content: '\f07c'} /*  */ -.octicon-shield:before { content: '\f0e1'} /*  */ -.octicon-log-in:before, -.octicon-sign-in:before { content: '\f036'} /*  */ -.octicon-log-out:before, -.octicon-sign-out:before { content: '\f032'} /*  */ -.octicon-smiley:before { content: '\f0e7'} /*  */ -.octicon-squirrel:before { content: '\f0b2'} /*  */ -.octicon-star-add:before, -.octicon-star-delete:before, -.octicon-star:before { content: '\f02a'} /*  */ -.octicon-stop:before { content: '\f08f'} /*  */ -.octicon-repo-sync:before, -.octicon-sync:before { content: '\f087'} /*  */ -.octicon-tag-remove:before, -.octicon-tag-add:before, -.octicon-tag:before { content: '\f015'} /*  */ -.octicon-tasklist:before { content: '\f0e5'} /*  */ -.octicon-telescope:before { content: '\f088'} /*  */ -.octicon-terminal:before { content: '\f0c8'} /*  */ -.octicon-text-size:before { content: '\f0e3'} /*  */ -.octicon-three-bars:before { content: '\f05e'} /*  */ -.octicon-thumbsdown:before { content: '\f0db'} /*  */ -.octicon-thumbsup:before { content: '\f0da'} /*  */ -.octicon-tools:before { content: '\f031'} /*  */ -.octicon-trashcan:before { content: '\f0d0'} /*  */ -.octicon-triangle-down:before { content: '\f05b'} /*  */ -.octicon-triangle-left:before { content: '\f044'} /*  */ -.octicon-triangle-right:before { content: '\f05a'} /*  */ -.octicon-triangle-up:before { content: '\f0aa'} /*  */ -.octicon-unfold:before { content: '\f039'} /*  */ -.octicon-unmute:before { content: '\f0ba'} /*  */ -.octicon-unverified:before { content: '\f0e8'} /*  */ -.octicon-verified:before { content: '\f0e6'} /*  */ -.octicon-versions:before { content: '\f064'} /*  */ -.octicon-watch:before { content: '\f0e0'} /*  */ -.octicon-remove-close:before, -.octicon-x:before { content: '\f081'} /*  */ -.octicon-zap:before { content: '\26A1'} /* ⚡ */ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/package.json deleted file mode 100644 index baaaf738..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "octicons", - "version": "3.5.0", - "description": "GitHub's icon font", - "main": "README.md", - "repository": { - "type": "git", - "url": "git+https://github.com/github/octicons.git" - }, - "keywords": [ - "GitHub", - "icons", - "font", - "web font", - "icon font" - ], - "author": { - "name": "GitHub", - "email": "support@github.com" - }, - "license": "(OFL-1.1 AND MIT)", - "bugs": { - "url": "https://github.com/github/octicons/issues" - }, - "homepage": "https://octicons.github.com", - "gitHead": "accaab3b0161b207caf28723fbcb0df69d288e7c", - "_id": "octicons@3.5.0", - "scripts": {}, - "_shasum": "f7ff5935674d8b114f6d80c454bfaa01797a4e30", - "_from": "octicons@>=3.5.0 <3.6.0", - "_npmVersion": "2.14.12", - "_nodeVersion": "4.2.6", - "_npmUser": { - "name": "aaronshekey", - "email": "aaronshekey@github.com" - }, - "dist": { - "shasum": "f7ff5935674d8b114f6d80c454bfaa01797a4e30", - "tarball": "https://registry.npmjs.org/octicons/-/octicons-3.5.0.tgz" - }, - "maintainers": [ - { - "name": "aaronshekey", - "email": "aaronshekey@github.com" - }, - { - "name": "cameronmcefee", - "email": "cameron@github.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/octicons-3.5.0.tgz_1455296790573_0.036151002161204815" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/octicons/-/octicons-3.5.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/alert.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/alert.svg deleted file mode 100644 index 9ca8a76a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/alert.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15.72 12.5l-6.85-11.98C8.69 0.21 8.36 0.02 8 0.02s-0.69 0.19-0.87 0.5l-6.85 11.98c-0.18 0.31-0.18 0.69 0 1C0.47 13.81 0.8 14 1.15 14h13.7c0.36 0 0.69-0.19 0.86-0.5S15.89 12.81 15.72 12.5zM9 12H7V10h2V12zM9 9H7V5h2V9z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-down.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-down.svg deleted file mode 100644 index 6e109a4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-down.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M7 7V3H3v4H0l5 6 5-6H7z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-left.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-left.svg deleted file mode 100644 index 0bcd2778..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-left.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 6V3L0 8l6 5V10h4V6H6z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-right.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-right.svg deleted file mode 100644 index 121026dc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-right.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 8L4 3v3H0v4h4v3L10 8z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-down.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-down.svg deleted file mode 100644 index 79e8afe3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-down.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="6" xmlns="http://www.w3.org/2000/svg"> - <path d="M4 7V5H2v2H0l3 4 3-4H4z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-left.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-left.svg deleted file mode 100644 index 509cf7dc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-left.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="6" xmlns="http://www.w3.org/2000/svg"> - <path d="M4 7V5L0 8l4 3V9h2V7H4z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-right.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-right.svg deleted file mode 100644 index 1869c6c5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-right.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="6" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 8L2 5v2H0v2h2v2L6 8z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-up.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-up.svg deleted file mode 100644 index 7b8df6e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-small-up.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="6" xmlns="http://www.w3.org/2000/svg"> - <path d="M3 5L0 9h2v2h2V9h2L3 5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-up.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-up.svg deleted file mode 100644 index 22540b5c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/arrow-up.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M5 3L0 9h3v4h4V9h3L5 3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/beaker.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/beaker.svg deleted file mode 100644 index ba8cd57e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/beaker.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M14.38 14.59L11 7V3h1v-1H3v1h1v4L0.63 14.59c-0.3 0.66 0.19 1.41 0.91 1.41h11.94c0.72 0 1.2-0.75 0.91-1.41zM3.75 10l1.25-3V3h5v4l1.25 3H3.75z m4.25-2h1v1h-1v-1z m-1-1h-1v-1h1v1z m0-3h1v1h-1v-1z m0-3h-1V0h1v1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bell.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bell.svg deleted file mode 100644 index 8b04e14f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bell.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M14 12v1H0v-1l0.73-0.58c0.77-0.77 0.81-2.55 1.19-4.42 0.77-3.77 4.08-5 4.08-5 0-0.55 0.45-1 1-1s1 0.45 1 1c0 0 3.39 1.23 4.16 5 0.38 1.88 0.42 3.66 1.19 4.42l0.66 0.58z m-7 4c1.11 0 2-0.89 2-2H5c0 1.11 0.89 2 2 2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bold.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bold.svg deleted file mode 100644 index d9f12d17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bold.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M0 2h3.83c2.48 0 4.3 0.75 4.3 2.95 0 1.14-0.63 2.23-1.67 2.61v0.06c1.33 0.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H0V2z m3.66 4.95c1.67 0 2.38-0.66 2.38-1.69 0-1.17-0.78-1.61-2.34-1.61H2.13v3.3h1.53z m0.27 5.39c1.77 0 2.75-0.64 2.75-1.98 0-1.27-0.95-1.81-2.75-1.81H2.13v3.8h1.8z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/book.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/book.svg deleted file mode 100644 index 3bdf48ca..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/book.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M2 5h4v1H2v-1z m0 3h4v-1H2v1z m0 2h4v-1H2v1z m11-5H9v1h4v-1z m0 2H9v1h4v-1z m0 2H9v1h4v-1z m2-6v9c0 0.55-0.45 1-1 1H8.5l-1 1-1-1H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h5.5l1 1 1-1h5.5c0.55 0 1 0.45 1 1z m-8 0.5l-0.5-0.5H1v9h6V3.5z m7-0.5H8.5l-0.5 0.5v8.5h6V3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bookmark.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bookmark.svg deleted file mode 100644 index 7532b6de..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bookmark.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M9 0H1C0.27 0 0 0.27 0 1v15l5-3.09 5 3.09V1c0-0.73-0.27-1-1-1z m-0.78 4.25l-1.86 1.36 0.72 2.16c0.06 0.22-0.02 0.28-0.2 0.17l-1.88-1.34-1.88 1.34c-0.19 0.11-0.25 0.05-0.2-0.17l0.72-2.16-1.86-1.36c-0.17-0.16-0.14-0.23 0.09-0.23l2.3-0.03 0.7-2.16h0.25l0.7 2.16 2.3 0.03c0.23 0 0.27 0.08 0.09 0.23z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/briefcase.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/briefcase.svg deleted file mode 100644 index 2cc4e429..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/briefcase.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M9 4v-1c0-0.55-0.45-1-1-1H6c-0.55 0-1 0.45-1 1v1H1c-0.55 0-1 0.45-1 1v8c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V5c0-0.55-0.45-1-1-1H9z m-3-1h2v1H6v-1z m7 6H8v1H6v-1H1V5h1v3h10V5h1v4z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/broadcast.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/broadcast.svg deleted file mode 100644 index cfb4126d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/broadcast.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M9 9h-1c0.55 0 1-0.45 1-1v-1c0-0.55-0.45-1-1-1h-1c-0.55 0-1 0.45-1 1v1c0 0.55 0.45 1 1 1h-1c-0.55 0-1 0.45-1 1v2h1v3c0 0.55 0.45 1 1 1h1c0.55 0 1-0.45 1-1V12h1V10c0-0.55-0.45-1-1-1zM7 7h1v1h-1v-1z m2 4h-1v4h-1V11h-1v-1h3v1z m2.09-3.5c0-1.98-1.61-3.59-3.59-3.59S3.91 5.52 3.91 7.5c0 0.28 0.03 0.55 0.09 0.81v1.98c-0.61-0.77-1-1.73-1-2.8 0-2.48 2.02-4.5 4.5-4.5s4.5 2.02 4.5 4.5c0 1.06-0.39 2.03-1 2.8V8.31c0.06-0.27 0.09-0.53 0.09-0.81z m3.91 0c0 2.88-1.63 5.38-4 6.63v-1.05c1.86-1.16 3.09-3.22 3.09-5.58 0-3.64-2.95-6.59-6.59-6.59S0.91 3.86 0.91 7.5c0 2.36 1.23 4.42 3.09 5.58v1.05C1.63 12.88 0 10.38 0 7.5 0 3.36 3.36 0 7.5 0s7.5 3.36 7.5 7.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/browser.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/browser.svg deleted file mode 100644 index 68a9e578..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/browser.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M5 3h1v1h-1V3zM3 3h1v1h-1V3zM1 3h1v1H1V3zM13 13H1V5h12V13zM13 4H7v-1h6V4zM14 3c0-0.55-0.45-1-1-1H1c-0.55 0-1 0.45-1 1v10c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bug.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bug.svg deleted file mode 100644 index 3bb0eeb5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/bug.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M11 10h3v-1H11v-1l3.17-1.03-0.34-0.94-2.83 0.97v-1c0-0.55-0.45-1-1-1v-1c0-0.48-0.36-0.88-0.83-0.97l1.03-1.03h1.8V1H9.8L7.8 3h-0.59L5.2 1H3v1h1.8l1.03 1.03c-0.47 0.09-0.83 0.48-0.83 0.97v1c-0.55 0-1 0.45-1 1v1L1.17 6.03l-0.34 0.94 3.17 1.03v1H1v1h3v1L0.83 12.03l0.34 0.94 2.83-0.97v1c0 0.55 0.45 1 1 1h1l1-1V6h1v7l1 1h1c0.55 0 1-0.45 1-1v-1l2.83 0.97 0.34-0.94-3.17-1.03v-1zM9 5H6v-1h3v1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/calendar.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/calendar.svg deleted file mode 100644 index bd354547..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/calendar.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M12 2h-1v1.5c0 0.28-0.22 0.5-0.5 0.5H8.5c-0.28 0-0.5-0.22-0.5-0.5v-1.5H5v1.5c0 0.28-0.22 0.5-0.5 0.5H2.5c-0.28 0-0.5-0.22-0.5-0.5v-1.5H1c-0.55 0-1 0.45-1 1v11c0 0.55 0.45 1 1 1h11c0.55 0 1-0.45 1-1V3c0-0.55-0.45-1-1-1z m0 12H1V5h11v9zM4 3h-1V1h1v2z m6 0h-1V1h1v2zM5 7h-1v-1h1v1z m2 0h-1v-1h1v1z m2 0h-1v-1h1v1z m2 0h-1v-1h1v1zM3 9h-1v-1h1v1z m2 0h-1v-1h1v1z m2 0h-1v-1h1v1z m2 0h-1v-1h1v1z m2 0h-1v-1h1v1zM3 11h-1v-1h1v1z m2 0h-1v-1h1v1z m2 0h-1v-1h1v1z m2 0h-1v-1h1v1z m2 0h-1v-1h1v1zM3 13h-1v-1h1v1z m2 0h-1v-1h1v1z m2 0h-1v-1h1v1z m2 0h-1v-1h1v1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/check.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/check.svg deleted file mode 100644 index 33861fd2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/check.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 1.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/checklist.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/checklist.svg deleted file mode 100644 index 1d8b28eb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/checklist.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M16 8.5L10 14.5 7 11.5l1.5-1.5 1.5 1.5 4.5-4.5 1.5 1.5zM5.7 12.2l0.8 0.8H2c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h7c0.55 0 1 0.45 1 1v6.5l-0.8-0.8c-0.39-0.39-1.03-0.39-1.42 0L5.7 10.8c-0.39 0.39-0.39 1.02 0 1.41zM4 4h5v-1H4v1z m0 2h5v-1H4v1z m0 2h3v-1H4v1z m-1 1h-1v1h1v-1z m0-2h-1v1h1v-1z m0-2h-1v1h1v-1z m0-2h-1v1h1v-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-down.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-down.svg deleted file mode 100644 index c5603db5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-down.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M5 11L0 6l1.5-1.5 3.5 3.75 3.5-3.75 1.5 1.5-5 5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-left.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-left.svg deleted file mode 100644 index 67353d66..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-left.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="8" xmlns="http://www.w3.org/2000/svg"> - <path d="M5.5 3l1.5 1.5-3.75 3.5 3.75 3.5-1.5 1.5L0.5 8l5-5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-right.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-right.svg deleted file mode 100644 index 48d9b503..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-right.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="8" xmlns="http://www.w3.org/2000/svg"> - <path d="M7.5 8L2.5 13l-1.5-1.5 3.75-3.5L1 4.5l1.5-1.5 5 5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-up.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-up.svg deleted file mode 100644 index 9359cbc2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/chevron-up.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 9l-1.5 1.5-3.5-3.75L1.5 10.5 0 9l5-5 5 5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/circle-slash.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/circle-slash.svg deleted file mode 100644 index 3dc2a079..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/circle-slash.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7S10.86 1 7 1z m0 1.3c1.3 0 2.5 0.44 3.47 1.17L2.47 11.47c-0.73-0.97-1.17-2.17-1.17-3.47 0-3.14 2.56-5.7 5.7-5.7z m0 11.41c-1.3 0-2.5-0.44-3.47-1.17l8-8c0.73 0.97 1.17 2.17 1.17 3.47 0 3.14-2.56 5.7-5.7 5.7z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/circuit-board.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/circuit-board.svg deleted file mode 100644 index e8f3e408..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/circuit-board.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M3 5c0-0.55 0.45-1 1-1s1 0.45 1 1-0.45 1-1 1-1-0.45-1-1z m8 0c0-0.55-0.45-1-1-1s-1 0.45-1 1 0.45 1 1 1 1-0.45 1-1z m0 6c0-0.55-0.45-1-1-1s-1 0.45-1 1 0.45 1 1 1 1-0.45 1-1zM13 1H5v2.17c0.36 0.19 0.64 0.47 0.83 0.83h2.34c0.42-0.78 1.33-1.28 2.34-1.05 0.75 0.19 1.36 0.8 1.53 1.55 0.31 1.38-0.72 2.59-2.05 2.59-0.8 0-1.48-0.44-1.83-1.09H5.83c-0.42 0.8-1.33 1.28-2.34 1.03-0.73-0.17-1.34-0.78-1.52-1.52-0.25-1.02 0.23-1.92 1.03-2.34V1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1l5-5h2.17c0.42-0.78 1.33-1.28 2.34-1.05 0.75 0.19 1.36 0.8 1.53 1.55 0.31 1.38-0.72 2.59-2.05 2.59-0.8 0-1.48-0.44-1.83-1.09h-1.17L4 15h9c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/clippy.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/clippy.svg deleted file mode 100644 index 854761d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/clippy.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M2 12h4v1H2v-1z m5-6H2v1h5v-1z m2 3V7L6 10l3 3V11h5V9H9z m-4.5-1H2v1h2.5v-1zM2 11h2.5v-1H2v1z m9 1h1v2c-0.02 0.28-0.11 0.52-0.3 0.7s-0.42 0.28-0.7 0.3H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h3C4 0.89 4.89 0 6 0s2 0.89 2 2h3c0.55 0 1 0.45 1 1v5h-1V5H1v9h10V12zM2 4h8c0-0.55-0.45-1-1-1h-1c-0.55 0-1-0.45-1-1s-0.45-1-1-1-1 0.45-1 1-0.45 1-1 1h-1c-0.55 0-1 0.45-1 1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/clock.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/clock.svg deleted file mode 100644 index 6e098fe6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/clock.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 8h3v2H7c-0.55 0-1-0.45-1-1V4h2v4z m-1-5.7c3.14 0 5.7 2.56 5.7 5.7S10.14 13.7 7 13.7 1.3 11.14 1.3 8s2.56-5.7 5.7-5.7m0-1.3C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7S10.86 1 7 1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/cloud-download.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/cloud-download.svg deleted file mode 100644 index bd66fdb4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/cloud-download.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M9 13h2l-3 3-3-3h2V8h2v5z m3-8c0-0.44-0.91-3-4.5-3-2.42 0-4.5 1.92-4.5 4C1.02 6 0 7.52 0 9c0 1.53 1 3 3 3 0.44 0 2.66 0 3 0v-1.3H3C1.38 10.7 1.3 9.28 1.3 9c0-0.17 0.05-1.7 1.7-1.7h1.3v-1.3c0-1.39 1.56-2.7 3.2-2.7 2.55 0 3.13 1.55 3.2 1.8v1.2h1.3c0.81 0 2.7 0.22 2.7 2.2 0 2.09-2.25 2.2-2.7 2.2H10v1.3c0.38 0 1.98 0 2 0 2.08 0 4-1.16 4-3.5 0-2.44-1.92-3.5-4-3.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/cloud-upload.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/cloud-upload.svg deleted file mode 100644 index 486db394..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/cloud-upload.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M7 9H5l3-3 3 3H9v5H7V9z m5-4c0-0.44-0.91-3-4.5-3-2.42 0-4.5 1.92-4.5 4C1.02 6 0 7.52 0 9c0 1.53 1 3 3 3 0.44 0 2.66 0 3 0v-1.3H3C1.38 10.7 1.3 9.28 1.3 9c0-0.17 0.05-1.7 1.7-1.7h1.3v-1.3c0-1.39 1.56-2.7 3.2-2.7 2.55 0 3.13 1.55 3.2 1.8v1.2h1.3c0.81 0 2.7 0.22 2.7 2.2 0 2.09-2.25 2.2-2.7 2.2H10v1.3c0.38 0 1.98 0 2 0 2.08 0 4-1.16 4-3.5 0-2.44-1.92-3.5-4-3.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/code.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/code.svg deleted file mode 100644 index a6c1f621..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/code.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M9.5 3l-1.5 1.5 3.5 3.5L8 11.5l1.5 1.5 4.5-5L9.5 3zM4.5 3L0 8l4.5 5 1.5-1.5L2.5 8l3.5-3.5L4.5 3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/comment-discussion.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/comment-discussion.svg deleted file mode 100644 index 64bfb6fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/comment-discussion.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15 2H6c-0.55 0-1 0.45-1 1v2H1c-0.55 0-1 0.45-1 1v6c0 0.55 0.45 1 1 1h1v3l3-3h4c0.55 0 1-0.45 1-1V10h1l3 3V10h1c0.55 0 1-0.45 1-1V3c0-0.55-0.45-1-1-1zM9 12H4.5l-1.5 1.5v-1.5H1V6h4v3c0 0.55 0.45 1 1 1h3v2z m6-3H13v1.5l-1.5-1.5H6V3h9v6z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/comment.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/comment.svg deleted file mode 100644 index c655686e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/comment.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M13 2H1c-0.55 0-1 0.45-1 1v8c0 0.55 0.45 1 1 1h2v3.5l3.5-3.5h6.5c0.55 0 1-0.45 1-1V3c0-0.55-0.45-1-1-1z m0 9H6L4 13V11H1V3h12v8z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/credit-card.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/credit-card.svg deleted file mode 100644 index 1c5a78a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/credit-card.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M12 9H2v-1h10v1z m4-6v9c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h14c0.55 0 1 0.45 1 1z m-1 3H1v6h14V6z m0-3H1v1h14v-1zM6 10H2v1h4v-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/dash.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/dash.svg deleted file mode 100644 index d02c6a0e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/dash.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="8" xmlns="http://www.w3.org/2000/svg"> - <path d="M0 7v2h8V7H0z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/dashboard.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/dashboard.svg deleted file mode 100644 index 13e066c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/dashboard.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 5h-1v-1h1v1z m4 3h-1v1h1v-1zM5 5h-1v1h1v-1z m-1 3h-1v1h1v-1z m11-5.5l-0.5-0.5-6.5 5c-0.06-0.02-1 0-1 0-0.55 0-1 0.45-1 1v1c0 0.55 0.45 1 1 1h1c0.55 0 1-0.45 1-1v-0.92l6-5.58zM13.41 6.59c0.19 0.61 0.3 1.25 0.3 1.91 0 3.42-2.78 6.2-6.2 6.2S1.3 11.92 1.3 8.5s2.78-6.2 6.2-6.2c1.2 0 2.31 0.34 3.27 0.94l0.94-0.94c-1.19-0.81-2.64-1.3-4.2-1.3C3.36 1 0 4.36 0 8.5s3.36 7.5 7.5 7.5 7.5-3.36 7.5-7.5c0-1.03-0.2-2.02-0.59-2.91l-1 1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/database.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/database.svg deleted file mode 100644 index 499c79ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/database.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 15C2.69 15 0 14.1 0 13c0-0.6 0-1.26 0-2 0-0.17 0.09-0.34 0.21-0.5C0.88 11.36 3.21 12 6 12s5.12-0.64 5.79-1.5c0.13 0.16 0.21 0.33 0.21 0.5 0 0.58 0 1.19 0 2C12 14.1 9.31 15 6 15zM6 11C2.69 11 0 10.1 0 9c0-0.6 0-1.26 0-2 0-0.11 0.04-0.21 0.09-0.31l0 0C0.12 6.63 0.16 6.56 0.21 6.5 0.88 7.36 3.21 8 6 8s5.12-0.64 5.79-1.5c0.05 0.06 0.09 0.13 0.12 0.19l0 0c0.05 0.1 0.09 0.21 0.09 0.31 0 0.58 0 1.19 0 2C12 10.1 9.31 11 6 11zM6 7C2.69 7 0 6.1 0 5c0-0.32 0-0.65 0-1 0-0.32 0-0.65 0-1C0 1.9 2.69 1 6 1c3.31 0 6 0.9 6 2 0 0.31 0 0.64 0 1 0 0.31 0 0.63 0 1C12 6.1 9.31 7 6 7zM6 2c-2.21 0-4 0.45-4 1s1.79 1 4 1 4-0.45 4-1S8.21 2 6 2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/desktop-download.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/desktop-download.svg deleted file mode 100644 index 54610068..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/desktop-download.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M4 6h3V0h2v6h3L8 10 4 6z m11-4H11v1h4v8H1V3h4v-1H1c-0.55 0-1 0.45-1 1v9c0 0.55 0.45 1 1 1h5.34c-0.25 0.61-0.86 1.39-2.34 2h8c-1.48-0.61-2.09-1.39-2.34-2h5.34c0.55 0 1-0.45 1-1V3c0-0.55-0.45-1-1-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-camera-video.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-camera-video.svg deleted file mode 100644 index 5b50b5df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-camera-video.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15.2 3.09L10 6.72V4c0-0.55-0.45-1-1-1H1c-0.55 0-1 0.45-1 1v9c0 0.55 0.45 1 1 1h8c0.55 0 1-0.45 1-1V10.28l5.2 3.63c0.33 0.23 0.8 0 0.8-0.41V3.5c0-0.41-0.47-0.64-0.8-0.41z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-camera.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-camera.svg deleted file mode 100644 index 054a4cc7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-camera.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15 3H7c0-0.55-0.45-1-1-1H2c-0.55 0-1 0.45-1 1-0.55 0-1 0.45-1 1v9c0 0.55 0.45 1 1 1h14c0.55 0 1-0.45 1-1V4c0-0.55-0.45-1-1-1zM6 5H2v-1h4v1z m4.5 7c-1.94 0-3.5-1.56-3.5-3.5s1.56-3.5 3.5-3.5 3.5 1.56 3.5 3.5-1.56 3.5-3.5 3.5z m2.5-3.5c0 1.38-1.13 2.5-2.5 2.5s-2.5-1.13-2.5-2.5 1.13-2.5 2.5-2.5 2.5 1.13 2.5 2.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-desktop.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-desktop.svg deleted file mode 100644 index 743f6291..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-desktop.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15 2H1c-0.55 0-1 0.45-1 1v9c0 0.55 0.45 1 1 1h5.34c-0.25 0.61-0.86 1.39-2.34 2h8c-1.48-0.61-2.09-1.39-2.34-2h5.34c0.55 0 1-0.45 1-1V3c0-0.55-0.45-1-1-1z m0 9H1V3h14v8z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-mobile.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-mobile.svg deleted file mode 100644 index e7c6b1ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/device-mobile.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M9 0H1C0.45 0 0 0.45 0 1v14c0 0.55 0.45 1 1 1h8c0.55 0 1-0.45 1-1V1c0-0.55-0.45-1-1-1zM5 15.3c-0.72 0-1.3-0.58-1.3-1.3s0.58-1.3 1.3-1.3 1.3 0.58 1.3 1.3-0.58 1.3-1.3 1.3z m4-3.3H1V2h8v10z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-added.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-added.svg deleted file mode 100644 index 50671b9c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-added.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM6 9H3V7h3V4h2v3h3v2H8v3H6V9z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-ignored.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-ignored.svg deleted file mode 100644 index 7d9678d0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-ignored.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM4.5 12h-1.5v-1.5l6.5-6.5h1.5v1.5L4.5 12z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-modified.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-modified.svg deleted file mode 100644 index 20d9f33c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-modified.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM4 8c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3-3-1.34-3-3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-removed.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-removed.svg deleted file mode 100644 index 1ca63501..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-removed.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM11 9H3V7h8v2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-renamed.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-renamed.svg deleted file mode 100644 index 8971d57a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff-renamed.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 9H3V7h3V4l5 4-5 4V9z m8-7v12c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h12c0.55 0 1 0.45 1 1z m-1 0H1v12h12V2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff.svg deleted file mode 100644 index 21dbd506..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/diff.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 7h2v1H6v2h-1V8H3v-1h2V5h1v2zM3 13h5v-1H3v1z m4.5-11l3.5 3.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h6.5z m2.5 4L7 3H1v12h9V6zM8.5 0S3 0 3 0v1h5l4 4v8h1V4.5L8.5 0z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/ellipsis.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/ellipsis.svg deleted file mode 100644 index 1486f0b2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/ellipsis.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M11 5H1c-0.55 0-1 0.45-1 1v4c0 0.55 0.45 1 1 1h10c0.55 0 1-0.45 1-1V6c0-0.55-0.45-1-1-1zM4 9H2V7h2v2z m3 0H5V7h2v2z m3 0H8V7h2v2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/eye.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/eye.svg deleted file mode 100644 index ee886471..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/eye.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6c4.94 0 7.94-6 7.94-6S13 2 8.06 2z m-0.06 10c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4z m2-4c0 1.11-0.89 2-2 2s-2-0.89-2-2 0.89-2 2-2 2 0.89 2 2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-binary.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-binary.svg deleted file mode 100644 index d1f2081b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-binary.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M4 12h1v1H2v-1h1V10h-1v-1h2v3z m8-7.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h7.5l3.5 3.5z m-1 0.5L8 2H1v12h10V5z m-3-1H6v1h1v2h-1v1h3v-1h-1V4z m-6 0h3v4H2V4z m1 3h1V5h-1v2z m3 2h3v4H6V9z m1 3h1V10h-1v2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-code.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-code.svg deleted file mode 100644 index 63832e2d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-code.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M8.5 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h10c0.55 0 1-0.45 1-1V4.5L8.5 1z m2.5 13H1V2h7l3 3v9zM5 6.98l-1.5 1.52 1.5 1.5-0.5 1-2.5-2.5 2.5-2.5 0.5 0.98z m2.5-0.98l2.5 2.5-2.5 2.5-0.5-0.98 1.5-1.52-1.5-1.5 0.5-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-directory.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-directory.svg deleted file mode 100644 index 5f76d714..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-directory.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M13 4H7v-1c0-0.66-0.31-1-1-1H1c-0.55 0-1 0.45-1 1v10c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V5c0-0.55-0.45-1-1-1z m-7 0H1v-1h5v1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-media.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-media.svg deleted file mode 100644 index fd6ef8d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-media.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 5h2v2H6V5z m6-0.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h7.5l3.5 3.5z m-1 0.5L8 2H1v11l3-5 2 4 2-2 3 3V5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-pdf.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-pdf.svg deleted file mode 100644 index aa826ff5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-pdf.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M8.5 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h10c0.55 0 1-0.45 1-1V4.5L8.5 1zM1 2h4c-0.11 0.03-0.2 0.09-0.31 0.2-0.09 0.09-0.17 0.25-0.23 0.47-0.11 0.39-0.14 0.89-0.09 1.47s0.17 1.17 0.34 1.8c-0.23 0.73-0.61 1.61-1.11 2.66s-0.8 1.66-0.91 1.84c-0.14 0.05-0.36 0.14-0.69 0.3-0.33 0.14-0.66 0.36-1 0.64V2z m4.42 4.8c0.45 1.13 0.84 1.83 1.17 2.09s0.64 0.45 0.94 0.53c-0.64 0.09-1.23 0.2-1.81 0.33-0.56 0.13-1.17 0.33-1.81 0.59 0.02-0.02 0.22-0.44 0.61-1.25s0.7-1.58 0.91-2.3z m5.58 7.2H1.5c-0.06 0-0.13-0.02-0.17-0.03 0.2-0.06 0.45-0.2 0.73-0.44 0.45-0.38 1.05-1.16 1.78-2.38 0.31-0.13 0.58-0.23 0.81-0.31l0.42-0.14c0.45-0.13 0.94-0.23 1.44-0.33 0.5-0.08 1-0.16 1.48-0.2 0.45 0.22 0.91 0.39 1.39 0.53 0.48 0.13 0.91 0.2 1.23 0.23 0.14 0 0.27-0.02 0.38-0.03v3.09z m0-4.86c-0.19-0.11-0.41-0.2-0.64-0.28-0.23-0.06-0.48-0.09-0.75-0.11-0.39 0-0.8 0.03-1.23 0.08-0.23-0.06-0.56-0.28-0.98-0.64s-0.86-1.14-1.31-2.33c0.13-0.83 0.19-1.48 0.2-1.97s0.02-0.73 0-0.75c0.05-0.41-0.03-0.7-0.2-0.88s-0.38-0.27-0.61-0.27h2.53l3 3v4.14z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-submodule.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-submodule.svg deleted file mode 100644 index 1a153fc5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-submodule.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 7H4v7h9c0.55 0 1-0.45 1-1V8H10v-1z m-1 2H5v-1h4v1z m4-5H7v-1c0-0.66-0.31-1-1-1H1c-0.55 0-1 0.45-1 1v10c0 0.55 0.45 1 1 1h2V7c0-0.55 0.45-1 1-1h6c0.55 0 1 0.45 1 1h3V5c0-0.55-0.45-1-1-1z m-7 0H1v-1h5v1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-symlink-directory.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-symlink-directory.svg deleted file mode 100644 index 4613a295..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-symlink-directory.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M13 4H7v-1c0-0.66-0.31-1-1-1H1c-0.55 0-1 0.45-1 1v10c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V5c0-0.55-0.45-1-1-1zM1 3h5v1H1v-1z m6 9V10c-0.98-0.02-1.84 0.22-2.55 0.7s-1.19 1.25-1.45 2.3c0.02-1.64 0.39-2.88 1.13-3.73 0.73-0.84 1.69-1.27 2.88-1.27V6l4 3-4 3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-symlink-file.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-symlink-file.svg deleted file mode 100644 index 80cff32c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-symlink-file.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M8.5 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h10c0.55 0 1-0.45 1-1V4.5L8.5 1z m2.5 13H1V2h7l3 3v9zM6 4.5l4 3-4 3V8.5c-0.98-0.02-1.84 0.22-2.55 0.7s-1.19 1.25-1.45 2.3c0.02-1.64 0.39-2.88 1.13-3.73 0.73-0.84 1.69-1.27 2.88-1.27V4.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-text.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-text.svg deleted file mode 100644 index c21fee43..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-text.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 5H2v-1h4v1zM2 8h7v-1H2v1z m0 2h7v-1H2v1z m0 2h7v-1H2v1z m10-7.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h7.5l3.5 3.5z m-1 0.5L8 2H1v12h10V5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-zip.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-zip.svg deleted file mode 100644 index 34c10bd0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/file-zip.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M8.5 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h10c0.55 0 1-0.45 1-1V4.5L8.5 1z m2.5 13H1V2h3v1h1v-1h3l3 3v9zM5 4v-1h1v1h-1z m-1 0h1v1h-1v-1z m1 2v-1h1v1h-1z m-1 0h1v1h-1v-1z m1 2v-1h1v1h-1z m-1 1.28c-0.59 0.34-1 0.98-1 1.72v1h4v-1c0-1.11-0.89-2-2-2v-1h-1v1.28z m2 0.72v1H4v-1h2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/flame.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/flame.svg deleted file mode 100644 index cc1b1431..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/flame.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M5.05 0.31c0.81 2.17 0.41 3.38-0.52 4.31-0.98 1.05-2.55 1.83-3.63 3.36-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-0.3-6.61-0.61 2.03 0.53 3.33 1.94 2.86 1.39-0.47 2.3 0.53 2.27 1.67-0.02 0.78-0.31 1.44-1.13 1.81 3.42-0.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52 0.13-2.03 1.13-1.89 2.75 0.09 1.08-1.02 1.8-1.86 1.33-0.67-0.41-0.66-1.19-0.06-1.78 1.25-1.23 1.75-4.09-1.88-6.22l-0.02-0.02z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/fold.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/fold.svg deleted file mode 100644 index 2da36698..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/fold.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M7 9l3 3H8v3H6V12H4l3-3z m3-6H8V0H6v3H4l3 3 3-3z m4 2c0-0.55-0.45-1-1-1H10.5l-1 1h3L10.5 7H3.5L1.5 5h3l-1-1H1c-0.55 0-1 0.45-1 1l2.5 2.5L0 10c0 0.55 0.45 1 1 1h2.5l1-1H1.5l2-2h7l2 2H9.5l1 1h2.5c0.55 0 1-0.45 1-1L11.5 7.5l2.5-2.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gear.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gear.svg deleted file mode 100644 index 9dc5f852..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gear.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M14 8.77V7.17l-1.94-0.64-0.45-1.09 0.88-1.84-1.13-1.13-1.81 0.91-1.09-0.45-0.69-1.92H6.17l-0.63 1.94-1.11 0.45-1.84-0.88-1.13 1.13 0.91 1.81-0.45 1.09L0 7.23v1.59l1.94 0.64 0.45 1.09-0.88 1.84 1.13 1.13 1.81-0.91 1.09 0.45 0.69 1.92h1.59l0.63-1.94 1.11-0.45 1.84 0.88 1.13-1.13-0.92-1.81 0.47-1.09 1.92-0.69zM7 11c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gift.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gift.svg deleted file mode 100644 index 8dd55ae4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gift.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M13 4h-1.38c0.19-0.33 0.33-0.67 0.36-0.91 0.06-0.67-0.11-1.22-0.52-1.61-0.36-0.38-0.81-0.48-1.36-0.48-0.05 0-0.08 0-0.11 0-0.53 0.02-1.11 0.25-1.53 0.58s-0.73 0.72-0.97 1.2c-0.23-0.48-0.55-0.88-0.97-1.2s-1-0.58-1.53-0.58c-0.02 0-0.03 0-0.03 0-0.56 0-1.06 0.09-1.44 0.48-0.41 0.39-0.58 0.94-0.52 1.61 0.03 0.23 0.17 0.58 0.36 0.91h-1.38c-0.55 0-1 0.45-1 1v3h1v5c0 0.55 0.45 1 1 1h9c0.55 0 1-0.45 1-1V8h1V5c0-0.55-0.45-1-1-1z m-4.78-0.88c0.17-0.36 0.42-0.67 0.75-0.92 0.3-0.23 0.72-0.39 1.05-0.41h0.09c0.45 0 0.66 0.11 0.8 0.25s0.33 0.39 0.3 0.95c-0.05 0.19-0.25 0.61-0.5 1H7.81l0.41-0.88z m-4.13-1.08c0.13-0.13 0.31-0.25 0.91-0.25 0.31 0 0.72 0.17 1.03 0.41 0.33 0.25 0.58 0.55 0.75 0.92l0.42 0.88H4.3c-0.25-0.39-0.45-0.81-0.5-1-0.03-0.56 0.16-0.81 0.3-0.95z m2.91 10.95H3V8h4v5z m0-6H2V5h5v2z m5 6H8V8h4v5z m1-6H8V5h5v2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gist-secret.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gist-secret.svg deleted file mode 100644 index 1871961f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gist-secret.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 10.5l1 3.5H5l1-3.5-0.75-1.5h3.5l-0.75 1.5z m2-4.5H4l-2 1h10l-2-1z m-1-4l-2 1-2-1-1 3h6l-1-3z m4.03 7.75l-3.03-0.75 1 2-2 3h3.22c0.45 0 0.86-0.31 0.97-0.75l0.56-2.28c0.14-0.53-0.19-1.08-0.72-1.22z m-9.03-0.75L0.97 9.75c-0.53 0.14-0.86 0.69-0.72 1.22l0.56 2.28c0.11 0.44 0.52 0.75 0.97 0.75h3.22L3 11l1-2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gist.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gist.svg deleted file mode 100644 index a5b9062e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/gist.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M7.5 5l2.5 2.5-2.5 2.5-0.75-0.75 1.75-1.75-1.75-1.75 0.75-0.75z m-3 0L2 7.5l2.5 2.5 0.75-0.75-1.75-1.75 1.75-1.75-0.75-0.75zM0 13V2c0-0.55 0.45-1 1-1h10c0.55 0 1 0.45 1 1v11c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1z m1 0h10V2H1v11z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-branch.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-branch.svg deleted file mode 100644 index cda8be1b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-branch.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 5c0-1.11-0.89-2-2-2s-2 0.89-2 2c0 0.73 0.41 1.38 1 1.72v0.3c-0.02 0.52-0.23 0.98-0.63 1.38s-0.86 0.61-1.38 0.63c-0.83 0.02-1.48 0.16-2 0.45V4.72c0.59-0.34 1-0.98 1-1.72 0-1.11-0.89-2-2-2S0 1.89 0 3c0 0.73 0.41 1.38 1 1.72v6.56C0.41 11.63 0 12.27 0 13c0 1.11 0.89 2 2 2s2-0.89 2-2c0-0.53-0.2-1-0.53-1.36 0.09-0.06 0.48-0.41 0.59-0.47 0.25-0.11 0.56-0.17 0.94-0.17 1.05-0.05 1.95-0.45 2.75-1.25s1.2-1.98 1.25-3.02h-0.02c0.61-0.36 1.02-1 1.02-1.73zM2 1.8c0.66 0 1.2 0.55 1.2 1.2s-0.55 1.2-1.2 1.2-1.2-0.55-1.2-1.2 0.55-1.2 1.2-1.2z m0 12.41c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2-0.55 1.2-1.2 1.2z m6-8c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2-0.55 1.2-1.2 1.2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-commit.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-commit.svg deleted file mode 100644 index d6c31343..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-commit.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M10.86 7c-0.45-1.72-2-3-3.86-3s-3.41 1.28-3.86 3H0v2h3.14c0.45 1.72 2 3 3.86 3s3.41-1.28 3.86-3h3.14V7H10.86zM7 10.2c-1.22 0-2.2-0.98-2.2-2.2s0.98-2.2 2.2-2.2 2.2 0.98 2.2 2.2-0.98 2.2-2.2 2.2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-compare.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-compare.svg deleted file mode 100644 index fa8d1547..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-compare.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M5 12h-1c-0.27-0.02-0.48-0.11-0.69-0.31s-0.3-0.42-0.31-0.69V4.72c0.59-0.34 1-0.98 1-1.72 0-1.11-0.89-2-2-2S0 1.89 0 3c0 0.73 0.41 1.38 1 1.72 0 1.73 0 6.28 0 6.28 0.03 0.78 0.34 1.47 0.94 2.06s1.28 0.91 2.06 0.94c0 0 1.02 0 1 0v2l3-3-3-3v2zM2 1.8c0.66 0 1.2 0.55 1.2 1.2s-0.55 1.2-1.2 1.2-1.2-0.55-1.2-1.2 0.55-1.2 1.2-1.2z m11 9.48c0-1.73 0-6.28 0-6.28-0.03-0.78-0.34-1.47-0.94-2.06s-1.28-0.91-2.06-0.94c0 0-1.02 0-1 0V0L6 3l3 3V4h1c0.27 0.02 0.48 0.11 0.69 0.31s0.3 0.42 0.31 0.69v6.28c-0.59 0.34-1 0.98-1 1.72 0 1.11 0.89 2 2 2s2-0.89 2-2c0-0.73-0.41-1.38-1-1.72z m-1 2.92c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2-0.55 1.2-1.2 1.2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-merge.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-merge.svg deleted file mode 100644 index 3457b22f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-merge.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 7c-0.73 0-1.38 0.41-1.73 1.02v-0.02c-1.05-0.02-2.27-0.36-3.13-1.02-0.75-0.58-1.5-1.61-1.89-2.44 0.45-0.36 0.75-0.92 0.75-1.55 0-1.11-0.89-2-2-2S0 1.89 0 3c0 0.73 0.41 1.38 1 1.72v6.56C0.41 11.63 0 12.27 0 13c0 1.11 0.89 2 2 2s2-0.89 2-2c0-0.73-0.41-1.38-1-1.72V7.67c0.67 0.7 1.44 1.27 2.3 1.69s2.03 0.63 2.97 0.64v-0.02c0.36 0.61 1 1.02 1.73 1.02 1.11 0 2-0.89 2-2s-0.89-2-2-2zM3.2 13c0 0.66-0.55 1.2-1.2 1.2s-1.2-0.55-1.2-1.2 0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2z m-1.2-8.8c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2-0.55 1.2-1.2 1.2z m8 6c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2-0.55 1.2-1.2 1.2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-pull-request.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-pull-request.svg deleted file mode 100644 index 037116fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/git-pull-request.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M11 11.28c0-1.73 0-6.28 0-6.28-0.03-0.78-0.34-1.47-0.94-2.06s-1.28-0.91-2.06-0.94c0 0-1.02 0-1 0V0L4 3l3 3V4h1c0.27 0.02 0.48 0.11 0.69 0.31s0.3 0.42 0.31 0.69v6.28c-0.59 0.34-1 0.98-1 1.72 0 1.11 0.89 2 2 2s2-0.89 2-2c0-0.73-0.41-1.38-1-1.72z m-1 2.92c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2-0.55 1.2-1.2 1.2zM4 3c0-1.11-0.89-2-2-2S0 1.89 0 3c0 0.73 0.41 1.38 1 1.72 0 1.55 0 5.56 0 6.56-0.59 0.34-1 0.98-1 1.72 0 1.11 0.89 2 2 2s2-0.89 2-2c0-0.73-0.41-1.38-1-1.72V4.72c0.59-0.34 1-0.98 1-1.72z m-0.8 10c0 0.66-0.55 1.2-1.2 1.2s-1.2-0.55-1.2-1.2 0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2z m-1.2-8.8c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2-0.55 1.2-1.2 1.2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/globe.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/globe.svg deleted file mode 100644 index dff458db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/globe.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M7 1C3.14 1 0 4.14 0 8s3.14 7 7 7c0.48 0 0.94-0.05 1.38-0.14-0.17-0.08-0.2-0.73-0.02-1.09 0.19-0.41 0.81-1.45 0.2-1.8s-0.44-0.5-0.81-0.91-0.22-0.47-0.25-0.58c-0.08-0.34 0.36-0.89 0.39-0.94 0.02-0.06 0.02-0.27 0-0.33 0-0.08-0.27-0.22-0.34-0.23-0.06 0-0.11 0.11-0.2 0.13s-0.5-0.25-0.59-0.33-0.14-0.23-0.27-0.34c-0.13-0.13-0.14-0.03-0.33-0.11s-0.8-0.31-1.28-0.48c-0.48-0.19-0.52-0.47-0.52-0.66-0.02-0.2-0.3-0.47-0.42-0.67-0.14-0.2-0.16-0.47-0.2-0.41s0.25 0.78 0.2 0.81c-0.05 0.02-0.16-0.2-0.3-0.38-0.14-0.19 0.14-0.09-0.3-0.95s0.14-1.3 0.17-1.75 0.38 0.17 0.19-0.13 0-0.89-0.14-1.11c-0.13-0.22-0.88 0.25-0.88 0.25 0.02-0.22 0.69-0.58 1.16-0.92s0.78-0.06 1.16 0.05c0.39 0.13 0.41 0.09 0.28-0.05-0.13-0.13 0.06-0.17 0.36-0.13 0.28 0.05 0.38 0.41 0.83 0.36 0.47-0.03 0.05 0.09 0.11 0.22s-0.06 0.11-0.38 0.3c-0.3 0.2 0.02 0.22 0.55 0.61s0.38-0.25 0.31-0.55 0.39-0.06 0.39-0.06c0.33 0.22 0.27 0.02 0.5 0.08s0.91 0.64 0.91 0.64c-0.83 0.44-0.31 0.48-0.17 0.59s-0.28 0.3-0.28 0.3c-0.17-0.17-0.19 0.02-0.3 0.08s-0.02 0.22-0.02 0.22c-0.56 0.09-0.44 0.69-0.42 0.83 0 0.14-0.38 0.36-0.47 0.58-0.09 0.2 0.25 0.64 0.06 0.66-0.19 0.03-0.34-0.66-1.31-0.41-0.3 0.08-0.94 0.41-0.59 1.08 0.36 0.69 0.92-0.19 1.11-0.09s-0.06 0.53-0.02 0.55 0.53 0.02 0.56 0.61 0.77 0.53 0.92 0.55c0.17 0 0.7-0.44 0.77-0.45 0.06-0.03 0.38-0.28 1.03 0.09 0.66 0.36 0.98 0.31 1.2 0.47s0.08 0.47 0.28 0.58 1.06-0.03 1.28 0.31-0.88 2.09-1.22 2.28-0.48 0.64-0.84 0.92-0.81 0.64-1.27 0.91c-0.41 0.23-0.47 0.66-0.66 0.8 3.14-0.7 5.48-3.5 5.48-6.84 0-3.86-3.14-7-7-7z m1.64 6.56c-0.09 0.03-0.28 0.22-0.78-0.08-0.48-0.3-0.81-0.23-0.86-0.28 0 0-0.05-0.11 0.17-0.14 0.44-0.05 0.98 0.41 1.11 0.41s0.19-0.13 0.41-0.05 0.05 0.13-0.05 0.14zM6.34 1.7c-0.05-0.03 0.03-0.08 0.09-0.14 0.03-0.03 0.02-0.11 0.05-0.14 0.11-0.11 0.61-0.25 0.52 0.03-0.11 0.27-0.58 0.3-0.66 0.25z m1.23 0.89c-0.19-0.02-0.58-0.05-0.52-0.14 0.3-0.28-0.09-0.38-0.34-0.38-0.25-0.02-0.34-0.16-0.22-0.19s0.61 0.02 0.7 0.08c0.08 0.06 0.52 0.25 0.55 0.38 0.02 0.13 0 0.25-0.17 0.25z m1.47-0.05c-0.14 0.09-0.83-0.41-0.95-0.52-0.56-0.48-0.89-0.31-1-0.41s-0.08-0.19 0.11-0.34 0.69 0.06 1 0.09c0.3 0.03 0.66 0.27 0.66 0.55 0.02 0.25 0.33 0.5 0.19 0.63z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/graph.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/graph.svg deleted file mode 100644 index 99c9fddb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/graph.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M16 14v1H0V0h1v14h15z m-11-1H3V8h2v5z m4 0H7V3h2v10z m4 0H11V6h2v7z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/heart.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/heart.svg deleted file mode 100644 index 4a831003..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/heart.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M11.2 4c-0.52-0.63-1.25-0.95-2.2-1-0.97 0-1.69 0.42-2.2 1s-0.78 0.92-0.8 1c-0.02-0.08-0.28-0.42-0.8-1s-1.17-1-2.2-1c-0.95 0.05-1.69 0.38-2.2 1-0.52 0.61-0.78 1.28-0.8 2 0 0.52 0.09 1.52 0.67 2.67s2.34 2.94 5.33 5.33c2.98-2.39 4.77-4.17 5.34-5.33s0.66-2.17 0.66-2.67c-0.02-0.72-0.28-1.39-0.8-2.02z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/history.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/history.svg deleted file mode 100644 index b11d8be3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/history.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 13H6V6h5v2H8v5zM7 1c-2.19 0-4.13 1.02-5.41 2.59L0 2v4h4l-1.5-1.5c1.05-1.33 2.67-2.2 4.5-2.2 3.14 0 5.7 2.56 5.7 5.7S10.14 13.7 7 13.7 1.3 11.14 1.3 8c0-0.34 0.03-0.67 0.09-1H0.08c-0.05 0.33-0.08 0.66-0.08 1 0 3.86 3.14 7 7 7s7-3.14 7-7S10.86 1 7 1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/home.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/home.svg deleted file mode 100644 index 1cd130e9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/home.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M16 9L13 6V2H11v2L8 1 0 9h2l1 5c0 0.55 0.45 1 1 1h8c0.55 0 1-0.45 1-1l1-5h2zM12 14H9V10H7v4H4l-1.19-6.31 5.19-5.19 5.19 5.19-1.19 6.31z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/horizontal-rule.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/horizontal-rule.svg deleted file mode 100644 index f2a5ffd1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/horizontal-rule.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M1 7h2v2h1V3h-1v3H1V3H0v6h1V7z m9 2V7h-1v2h1z m0-3V4h-1v2h1z m-3 0V4h2v-1H6v6h1V7h2v-1H7zM0 13h10V11H0v2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/hubot.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/hubot.svg deleted file mode 100644 index 15682a60..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/hubot.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M3 6c-0.55 0-1 0.45-1 1v2c0 0.55 0.45 1 1 1h8c0.55 0 1-0.45 1-1V7c0-0.55-0.45-1-1-1H3z m8 1.75l-1.25 1.25h-1.5l-1.25-1.25-1.25 1.25h-1.5l-1.25-1.25v-0.75h0.75l1.25 1.25 1.25-1.25h1.5l1.25 1.25 1.25-1.25h0.75v0.75zM5 11h4v1H5v-1z m2-9C3.14 2 0 4.91 0 8.5v4.5c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V8.5c0-3.59-3.14-6.5-7-6.5z m6 11H1V8.5c0-3.09 2.64-5.59 6-5.59s6 2.5 6 5.59v4.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/inbox.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/inbox.svg deleted file mode 100644 index 6cb86133..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/inbox.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M14 9l-1.13-7.14c-0.08-0.48-0.5-0.86-1-0.86H2.13c-0.5 0-0.92 0.38-1 0.86L0 9v5c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V9z m-3.28 0.55l-0.44 0.89c-0.17 0.34-0.52 0.56-0.91 0.56H4.61c-0.38 0-0.72-0.22-0.89-0.55l-0.44-0.91c-0.17-0.33-0.52-0.55-0.89-0.55H1l1-7h10l1 7h-1.38c-0.39 0-0.73 0.22-0.91 0.55z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/info.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/info.svg deleted file mode 100644 index 4e96ba0d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/info.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M6.3 5.69c-0.19-0.19-0.28-0.42-0.28-0.7s0.09-0.52 0.28-0.7 0.42-0.28 0.7-0.28 0.52 0.09 0.7 0.28 0.28 0.42 0.28 0.7-0.09 0.52-0.28 0.7-0.42 0.3-0.7 0.3-0.52-0.11-0.7-0.3z m1.7 2.3c-0.02-0.25-0.11-0.48-0.31-0.69-0.2-0.19-0.42-0.3-0.69-0.31h-1c-0.27 0.02-0.48 0.13-0.69 0.31-0.2 0.2-0.3 0.44-0.31 0.69h1v3c0.02 0.27 0.11 0.5 0.31 0.69 0.2 0.2 0.42 0.31 0.69 0.31h1c0.27 0 0.48-0.11 0.69-0.31 0.2-0.19 0.3-0.42 0.31-0.69h-1V7.98z m-1-5.69C3.86 2.3 1.3 4.84 1.3 7.98s2.56 5.7 5.7 5.7 5.7-2.55 5.7-5.7-2.56-5.69-5.7-5.69m0-1.31c3.86 0 7 3.14 7 7S10.86 14.98 7 14.98 0 11.86 0 7.98 3.14 0.98 7 0.98z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/issue-closed.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/issue-closed.svg deleted file mode 100644 index d9297401..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/issue-closed.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M7 10h2v2H7V10z m2-6H7v5h2V4z m1.5 1.5l-1 1 2.5 2.5 4-4.5-1-1-3 3.5-1.5-1.5zM8 13.7c-3.14 0-5.7-2.56-5.7-5.7s2.56-5.7 5.7-5.7c1.83 0 3.45 0.88 4.5 2.2l0.92-0.92C12.14 2 10.19 1 8 1 4.14 1 1 4.14 1 8s3.14 7 7 7 7-3.14 7-7l-1.52 1.52c-0.66 2.41-2.86 4.19-5.48 4.19z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/issue-opened.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/issue-opened.svg deleted file mode 100644 index b3100f0f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/issue-opened.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7S10.14 13.7 7 13.7 1.3 11.14 1.3 8s2.56-5.7 5.7-5.7m0-1.3C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7S10.86 1 7 1z m1 3H6v5h2V4z m0 6H6v2h2V10z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/issue-reopened.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/issue-reopened.svg deleted file mode 100644 index ec08924f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/issue-reopened.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 9H6V4h2v5zM6 12h2V10H6v2z m6.33-2H10l1.5 1.5c-1.05 1.33-2.67 2.2-4.5 2.2-3.14 0-5.7-2.56-5.7-5.7 0-0.34 0.03-0.67 0.09-1H0.08c-0.05 0.33-0.08 0.66-0.08 1 0 3.86 3.14 7 7 7 2.19 0 4.13-1.02 5.41-2.59l1.59 1.59V10H12.33zM1.67 6h2.33l-1.5-1.5c1.05-1.33 2.67-2.2 4.5-2.2 3.14 0 5.7 2.56 5.7 5.7 0 0.34-0.03 0.67-0.09 1h1.31c0.05-0.33 0.08-0.66 0.08-1 0-3.86-3.14-7-7-7-2.19 0-4.13 1.02-5.41 2.59L0 2v4h1.67z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/italic.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/italic.svg deleted file mode 100644 index 96d1f51a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/italic.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="6" xmlns="http://www.w3.org/2000/svg"> - <path d="M2.81 5h1.98L3 14H1l1.81-9z m0.36-2.7c0-0.7 0.58-1.3 1.33-1.3 0.56 0 1.13 0.38 1.13 1.03 0 0.75-0.59 1.3-1.33 1.3-0.58 0-1.13-0.38-1.13-1.03z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/jersey.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/jersey.svg deleted file mode 100644 index c7cea070..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/jersey.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M3.5 6l-0.5 0.5v5l0.5 0.5h2l0.5-0.5V6.5l-0.5-0.5H3.5z m1.5 5h-1V7h1v4z m6.27-7.25c-0.22-1.38-0.31-2.63-0.27-3.75H8.02c0 0.27-0.13 0.48-0.39 0.69-0.25 0.2-0.63 0.3-1.13 0.3s-0.88-0.09-1.13-0.3c-0.23-0.2-0.36-0.42-0.36-0.69H2c0.05 1.13-0.03 2.38-0.25 3.75-0.2 1.38-0.8 2.13-1.75 2.25v9c0.02 0.27 0.11 0.48 0.31 0.69s0.42 0.3 0.69 0.31h11c0.27-0.02 0.48-0.11 0.69-0.31s0.3-0.42 0.31-0.69V6c-0.95-0.13-1.53-0.88-1.75-2.25z m0.73 11.25H1V7c0.89-0.5 1.48-1.25 1.72-2.25s0.31-2.25 0.28-3.75h1c-0.02 0.78 0.16 1.47 0.52 2.06 0.36 0.58 1.02 0.89 2 0.94 0.98-0.02 1.64-0.33 2-0.94 0.36-0.59 0.5-1.28 0.48-2.06h1c0.02 1.42 0.13 2.55 0.33 3.38 0.2 0.81 0.69 2 1.67 2.63v8zM7.5 6l-0.5 0.5v5l0.5 0.5h2l0.5-0.5V6.5l-0.5-0.5H7.5z m1.5 5h-1V7h1v4z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/key.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/key.svg deleted file mode 100644 index c1f69201..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/key.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M12.83 2.17c-0.75-0.75-1.69-1.14-2.83-1.17-1.13 0.03-2.08 0.42-2.83 1.17s-1.13 1.69-1.16 2.83c0 0.3 0.03 0.59 0.09 0.89L0 12v1l1 1h2l1-1v-1h1v-1h1v-1h2l1.09-1.11c0.3 0.08 0.59 0.11 0.91 0.11 1.14-0.03 2.08-0.42 2.83-1.17s1.14-1.69 1.17-2.83c-0.03-1.14-0.42-2.08-1.17-2.83zM11 5.38c-0.77 0-1.38-0.61-1.38-1.38s0.61-1.38 1.38-1.38 1.38 0.61 1.38 1.38-0.61 1.38-1.38 1.38z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/keyboard.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/keyboard.svg deleted file mode 100644 index 8cfb2094..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/keyboard.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 5h-1v-1h1v1z m-7 1h-1v1h1v-1z m5-2h-1v1h1v-1z m-4 0H2v1h2v-1z m8 7h2v-1H12v1zM8 7h1v-1h-1v1zM4 10H2v1h2v-1z m8-6h-1v1h1v-1z m2 0h-1v1h1v-1zM12 9h2V6H12v3z m4-6v9c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h14c0.55 0 1 0.45 1 1z m-1 0H1v9h14V3zM6 7h1v-1h-1v1z m0-3h-1v1h1v-1zM4 7h1v-1h-1v1z m1 4h6v-1H5v1z m5-4h1v-1h-1v1z m-7 1h-1v1h1v-1z m5 0v1h1v-1h-1z m-2 0v1h1v-1h-1z m-1 0h-1v1h1v-1z m5 1h1v-1h-1v1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/law.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/law.svg deleted file mode 100644 index b7d1207b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/law.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M7 4c-0.83 0-1.5-0.67-1.5-1.5s0.67-1.5 1.5-1.5 1.5 0.67 1.5 1.5-0.67 1.5-1.5 1.5z m7 6c0 1.11-0.89 2-2 2h-1c-1.11 0-2-0.89-2-2l2-4h-1c-0.55 0-1-0.45-1-1h-1v8c0.42 0 1 0.45 1 1h1c0.42 0 1 0.45 1 1H3c0-0.55 0.58-1 1-1h1c0-0.55 0.58-1 1-1h0.03l-0.03-8h-1c0 0.55-0.45 1-1 1h-1l2 4c0 1.11-0.89 2-2 2h-1C0.89 12 0 11.11 0 10l2-4H1v-1h3c0-0.55 0.45-1 1-1h4c0.55 0 1 0.45 1 1h3v1h-1l2 4zM2.5 7L1 10h3l-1.5-3z m10.5 3l-1.5-3-1.5 3h3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/light-bulb.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/light-bulb.svg deleted file mode 100644 index d305f792..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/light-bulb.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M5.5 0C2.48 0 0 2.19 0 5c0 0.92 0.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c0.22-1.22 0.66-1.75 2-4 0.45-0.75 1-2.08 1-3C11 2.19 8.52 0 5.5 0z m3.64 7.48c-0.25 0.44-0.47 0.8-0.67 1.11-0.86 1.41-1.25 2.06-1.45 3.23-0.02 0.05-0.02 0.11-0.02 0.17H4c0-0.06 0-0.13-0.02-0.17-0.2-1.17-0.59-1.83-1.45-3.23-0.2-0.31-0.42-0.67-0.67-1.11-0.42-0.7-0.86-1.83-0.86-2.48C1 2.8 3.02 1 5.5 1c1.22 0 2.36 0.42 3.22 1.19 0.83 0.75 1.28 1.75 1.28 2.81 0 0.66-0.44 1.78-0.86 2.48zM3 14h5c-0.23 1.14-1.3 2-2.5 2s-2.27-0.86-2.5-2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/link-external.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/link-external.svg deleted file mode 100644 index d68b0b48..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/link-external.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M11 10h1v3c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h3v1H1v10h10V10zM6 2l2.25 2.25-3.25 3.25 1.5 1.5 3.25-3.25 2.25 2.25V2H6z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/link.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/link.svg deleted file mode 100644 index 77bcdc91..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/link.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/list-ordered.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/list-ordered.svg deleted file mode 100644 index 623011d0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/list-ordered.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M12 13c0 0.59 0 1-0.59 1H4.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1h6.81c0.59 0 0.59 0.41 0.59 1zM4.59 4h6.81c0.59 0 0.59-0.41 0.59-1s0-1-0.59-1H4.59c-0.59 0-0.59 0.41-0.59 1s0 1 0.59 1z m6.81 3H4.59c-0.59 0-0.59 0.41-0.59 1s0 1 0.59 1h6.81c0.59 0 0.59-0.41 0.59-1s0-1-0.59-1zM2 1H1.28C0.98 1.19 0.7 1.25 0.25 1.34v0.66h0.75v2.14H0.16v0.86h2.84v-0.86h-1V1z m0.25 8.13c-0.17 0-0.45 0.03-0.66 0.06 0.53-0.56 1.14-1.25 1.14-1.89-0.02-0.78-0.56-1.3-1.36-1.3-0.59 0-0.97 0.2-1.38 0.64l0.58 0.58c0.19-0.19 0.38-0.38 0.64-0.38 0.28 0 0.48 0.16 0.48 0.52 0 0.53-0.77 1.2-1.7 2.06v0.58h3l-0.09-0.88h-0.66z m-0.08 3.78v-0.03c0.44-0.19 0.64-0.47 0.64-0.86 0-0.7-0.56-1.11-1.44-1.11-0.48 0-0.89 0.19-1.28 0.52l0.55 0.64c0.25-0.2 0.44-0.31 0.69-0.31 0.27 0 0.42 0.13 0.42 0.36 0 0.27-0.2 0.44-0.86 0.44v0.75c0.83 0 0.98 0.17 0.98 0.47 0 0.25-0.23 0.38-0.58 0.38-0.28 0-0.56-0.14-0.81-0.38L0 14.44c0.3 0.36 0.77 0.56 1.41 0.56 0.83 0 1.53-0.41 1.53-1.16 0-0.5-0.31-0.81-0.77-0.94z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/list-unordered.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/list-unordered.svg deleted file mode 100644 index 4451791f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/list-unordered.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M2 13c0 0.59 0 1-0.59 1H0.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1h0.81c0.59 0 0.59 0.41 0.59 1z m2.59-9h6.81c0.59 0 0.59-0.41 0.59-1s0-1-0.59-1H4.59c-0.59 0-0.59 0.41-0.59 1s0 1 0.59 1zM1.41 7H0.59c-0.59 0-0.59 0.41-0.59 1s0 1 0.59 1h0.81c0.59 0 0.59-0.41 0.59-1s0-1-0.59-1z m0-5H0.59c-0.59 0-0.59 0.41-0.59 1s0 1 0.59 1h0.81c0.59 0 0.59-0.41 0.59-1s0-1-0.59-1z m10 5H4.59c-0.59 0-0.59 0.41-0.59 1s0 1 0.59 1h6.81c0.59 0 0.59-0.41 0.59-1s0-1-0.59-1z m0 5H4.59c-0.59 0-0.59 0.41-0.59 1s0 1 0.59 1h6.81c0.59 0 0.59-0.41 0.59-1s0-1-0.59-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/location.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/location.svg deleted file mode 100644 index 6a3f493d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/location.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 0C2.69 0 0 2.5 0 5.5c0 4.52 6 10.5 6 10.5s6-5.98 6-10.5C12 2.5 9.31 0 6 0z m0 14.55C4.14 12.52 1 8.44 1 5.5 1 3.02 3.25 1 6 1c1.34 0 2.61 0.48 3.56 1.36 0.92 0.86 1.44 1.97 1.44 3.14 0 2.94-3.14 7.02-5 9.05z m2-9.05c0 1.11-0.89 2-2 2s-2-0.89-2-2 0.89-2 2-2 2 0.89 2 2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/lock.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/lock.svg deleted file mode 100644 index b5cce975..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/lock.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M4 13h-1v-1h1v1z m8-6v7c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V7c0-0.55 0.45-1 1-1h1V4C2 1.8 3.8 0 6 0s4 1.8 4 4v2h1c0.55 0 1 0.45 1 1z m-8.2-1h4.41V4c0-1.22-0.98-2.2-2.2-2.2s-2.2 0.98-2.2 2.2v2z m7.2 1H2v7h9V7z m-7 1h-1v1h1v-1z m0 2h-1v1h1v-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/logo-gist.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/logo-gist.svg deleted file mode 100644 index 8b0493ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/logo-gist.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="25" xmlns="http://www.w3.org/2000/svg"> - <path d="M4.7 6.73h2.45v4.02c-0.55 0.27-1.64 0.34-2.53 0.34-2.56 0-3.47-2.2-3.47-5.05S2.06 0.98 4.63 0.98c1.28 0 2.06 0.23 3.28 0.73V0.66C7.27 0.33 6.25 0 4.63 0 1.13 0 0 2.69 0 6.03s1.11 6.03 4.63 6.03c1.64 0 2.81-0.27 3.59-0.64V5.73H4.7v1z m6.39 3.72V4.06h-1.05v6.28c0 1.25 0.58 1.72 1.72 1.72v-0.89c-0.48 0-0.67-0.16-0.67-0.7v-0.02z m0.25-8.72c0-0.44-0.33-0.78-0.78-0.78s-0.77 0.34-0.77 0.78 0.33 0.78 0.77 0.78 0.78-0.34 0.78-0.78z m4.34 5.69c-1.5-0.13-1.78-0.48-1.78-1.17 0-0.77 0.33-1.34 1.88-1.34 1.05 0 1.66 0.16 2.27 0.36v-0.94c-0.69-0.3-1.52-0.39-2.25-0.39-2.2 0-2.92 1.2-2.92 2.31 0 1.08 0.47 1.88 2.73 2.08 1.55 0.13 1.77 0.63 1.77 1.34 0 0.73-0.44 1.42-2.06 1.42-1.11 0-1.86-0.19-2.33-0.36v0.94c0.5 0.2 1.58 0.39 2.33 0.39 2.38 0 3.14-1.2 3.14-2.41 0-1.28-0.53-2.03-2.75-2.23h-0.02z m8.58-2.47v-0.86h-2.42V1.59l-1.08 0.31v2.11l-1.56 0.44v0.48h1.56v5c0 1.53 1.19 2.13 2.5 2.13 0.19 0 0.52-0.02 0.69-0.05v-0.89c-0.19 0.03-0.41 0.03-0.61 0.03-0.97 0-1.5-0.39-1.5-1.34V4.94h2.42v0.02z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/logo-github.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/logo-github.svg deleted file mode 100644 index 50ae8218..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/logo-github.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="45" xmlns="http://www.w3.org/2000/svg"> - <path d="M8.64 5.19H4.88c-0.11 0-0.19 0.08-0.19 0.17v1.84c0 0.09 0.08 0.17 0.19 0.17h1.47v2.3s-0.33 0.11-1.25 0.11c-1.08 0-2.58-0.39-2.58-3.7s1.58-3.73 3.05-3.73c1.27 0 1.81 0.22 2.17 0.33 0.11 0.03 0.2-0.08 0.2-0.17l0.42-1.78c0-0.05-0.02-0.09-0.06-0.14-0.14-0.09-1.02-0.58-3.2-0.58C2.58 0 0 1.06 0 6.2s2.95 5.92 5.44 5.92c2.06 0 3.31-0.89 3.31-0.89 0.05-0.02 0.06-0.09 0.06-0.13V5.36c0-0.09-0.08-0.17-0.19-0.17h0.02zM27.7 0.44h-2.13c-0.09 0-0.17 0.08-0.17 0.17v4.09h-3.31V0.61c0-0.09-0.08-0.17-0.17-0.17h-2.13c-0.09 0-0.17 0.08-0.17 0.17v11.11c0 0.09 0.09 0.17 0.17 0.17h2.13c0.09 0 0.17-0.08 0.17-0.17V6.97h3.31l-0.02 4.75c0 0.09 0.08 0.17 0.17 0.17h2.13c0.09 0 0.17-0.08 0.17-0.17V0.61c0-0.09-0.08-0.17-0.17-0.17h0.02zM11.19 0.69c-0.77 0-1.38 0.61-1.38 1.38s0.61 1.38 1.38 1.38c0.75 0 1.36-0.61 1.36-1.38s-0.61-1.38-1.36-1.38z m1.22 3.55c0-0.09-0.08-0.17-0.17-0.17H10.11c-0.09 0-0.17 0.09-0.17 0.2 0 0 0 6.17 0 7.34 0 0.2 0.13 0.27 0.3 0.27 0 0 0.91 0 1.92 0 0.2 0 0.25-0.09 0.25-0.27 0-0.39 0-7.36 0-7.36v-0.02z m23.52-0.16h-2.09c-0.11 0-0.17 0.08-0.17 0.19v5.44s-0.55 0.39-1.3 0.39-0.97-0.34-0.97-1.09c0-0.73 0-4.75 0-4.75 0-0.09-0.08-0.17-0.17-0.17h-2.14c-0.09 0-0.17 0.08-0.17 0.17 0 0 0 2.91 0 5.11s1.23 2.75 2.92 2.75c1.39 0 2.52-0.77 2.52-0.77s0.05 0.39 0.08 0.45c0.02 0.05 0.09 0.09 0.16 0.09h1.34c0.11 0 0.17-0.08 0.17-0.17l0.02-7.47c0-0.09-0.08-0.17-0.19-0.17z m5.77-0.25c-1.2 0-2.02 0.53-2.02 0.53V0.59c0-0.09-0.08-0.17-0.17-0.17h-2.13c-0.09 0-0.17 0.08-0.17 0.17l-0.02 11.11c0 0.09 0.09 0.17 0.19 0.17h1.48c0.06 0 0.11-0.02 0.14-0.08 0.05-0.06 0.09-0.52 0.09-0.52s0.88 0.83 2.52 0.83c1.94 0 3.05-0.98 3.05-4.41s-1.77-3.88-2.97-3.88z m-0.83 6.27c-0.73-0.02-1.22-0.36-1.22-0.36V6.22s0.48-0.3 1.08-0.34c0.77-0.08 1.5 0.16 1.5 1.97 0 1.91-0.33 2.28-1.36 2.25z m-22.33-0.05c-0.09 0-0.33 0.05-0.58 0.05-0.78 0-1.05-0.36-1.05-0.83s0-3.13 0-3.13h1.59c0.09 0 0.16-0.08 0.16-0.19V4.25c0-0.09-0.08-0.17-0.16-0.17h-1.59V1.97c0-0.08-0.05-0.13-0.14-0.13H14.61c-0.09 0-0.14 0.05-0.14 0.13v2.17s-1.09 0.27-1.16 0.28c-0.08 0.02-0.13 0.09-0.13 0.17v1.36c0 0.11 0.08 0.19 0.17 0.19h1.11s0 1.44 0 3.28c0 2.44 1.7 2.69 2.86 2.69 0.53 0 1.17-0.17 1.27-0.22 0.06-0.02 0.09-0.09 0.09-0.16v-1.5c0-0.11-0.08-0.19-0.17-0.19h0.02z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mail-read.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mail-read.svg deleted file mode 100644 index d3ad7ed0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mail-read.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 5H4v-1h2v1z m3 1H4v1h5v-1z m5-0.48v8.48c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V5.52c0-0.33 0.16-0.63 0.42-0.81l1.58-1.13v-0.58c0-0.55 0.45-1 1-1h1.2L7 0l2.8 2h1.2c0.55 0 1 0.45 1 1v0.58l1.58 1.13c0.27 0.19 0.42 0.48 0.42 0.81zM3 7.5l4 2.5 4-2.5V3H3v4.5zM1 13.5l4.5-3L1 7.5v6z m11 0.5L7 11 2 14h10z m1-6.5L8.5 10.5l4.5 3V7.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mail-reply.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mail-reply.svg deleted file mode 100644 index b2eff7da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mail-reply.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 2.5l-6 4.5 6 4.5v-3c1.73 0 5.14 0.95 6 4.38 0-4.55-3.06-7.05-6-7.38v-3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mail.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mail.svg deleted file mode 100644 index d6d3ded4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mail.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M0 4v8c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V4c0-0.55-0.45-1-1-1H1c-0.55 0-1 0.45-1 1z m13 0L7 9 1 4h12zM1 5.5l4 3L1 11.5V5.5z m1 6.5l3.5-3 1.5 1.5 1.5-1.5 3.5 3H2z m11-0.5L9 8.5l4-3v6z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mark-github.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mark-github.svg deleted file mode 100644 index b0509240..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mark-github.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59 0.4 0.07 0.55-0.17 0.55-0.38 0-0.19-0.01-0.82-0.01-1.49-2.01 0.37-2.53-0.49-2.69-0.94-0.09-0.23-0.48-0.94-0.82-1.13-0.28-0.15-0.68-0.52-0.01-0.53 0.63-0.01 1.08 0.58 1.23 0.82 0.72 1.21 1.87 0.87 2.33 0.66 0.07-0.52 0.28-0.87 0.51-1.07-1.78-0.2-3.64-0.89-3.64-3.95 0-0.87 0.31-1.59 0.82-2.15-0.08-0.2-0.36-1.02 0.08-2.12 0 0 0.67-0.21 2.2 0.82 0.64-0.18 1.32-0.27 2-0.27 0.68 0 1.36 0.09 2 0.27 1.53-1.04 2.2-0.82 2.2-0.82 0.44 1.1 0.16 1.92 0.08 2.12 0.51 0.56 0.82 1.27 0.82 2.15 0 3.07-1.87 3.75-3.65 3.95 0.29 0.25 0.54 0.73 0.54 1.48 0 1.07-0.01 1.93-0.01 2.2 0 0.21 0.15 0.46 0.55 0.38C13.71 14.53 16 11.53 16 8 16 3.58 12.42 0 8 0z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/markdown.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/markdown.svg deleted file mode 100644 index cec91e89..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/markdown.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M14.85 3H1.15C0.52 3 0 3.52 0 4.15v7.69C0 12.48 0.52 13 1.15 13h13.69c0.64 0 1.15-0.52 1.15-1.15V4.15C16 3.52 15.48 3 14.85 3zM9 11L7 11V8l-1.5 1.92L4 8v3H2V5h2l1.5 2 1.5-2 2 0V11zM11.99 11.5L9.5 8h1.5V5h2v3h1.5L11.99 11.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/megaphone.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/megaphone.svg deleted file mode 100644 index 980581aa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/megaphone.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 1c-0.17 0-0.36 0.05-0.52 0.14-1.44 0.88-4.98 3.44-6.48 3.86-1.38 0-3 0.67-3 2.5s1.63 2.5 3 2.5c0.3 0.08 0.64 0.23 1 0.41v4.59h2V11.55c1.34 0.86 2.69 1.83 3.48 2.31 0.16 0.09 0.34 0.14 0.52 0.14 0.52 0 1-0.42 1-1V2c0-0.58-0.48-1-1-1z m0 12c-0.38-0.23-0.89-0.58-1.5-1-0.16-0.11-0.33-0.22-0.5-0.34V3.31c0.16-0.11 0.31-0.2 0.47-0.31 0.61-0.41 1.16-0.77 1.53-1v11z m2-6h4v1H12v-1z m0 2l4 2v1L12 10v-1z m4-6v1L12 6v-1l4-2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mention.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mention.svg deleted file mode 100644 index ea2e6966..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mention.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M6.58 15c1.25 0 2.52-0.31 3.56-0.94l-0.42-0.94c-0.84 0.52-1.89 0.83-3.03 0.83-3.23 0-5.64-2.08-5.64-5.72C1.05 3.86 4.28 1.05 7.63 1.05c3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-0.73-1.05-2.19l0.73-3.75h-1.05l-0.11 0.72c-0.41-0.63-0.94-0.83-1.56-0.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67 0.94 2.61 2.3 2.61 0.84 0 1.67-0.53 2.3-1.25 0.11 0.94 0.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33c0 4.38 2.92 6.67 6.58 6.67z m-0.31-5c-0.73 0-1.36-0.52-1.36-1.67 0-1.45 0.94-3.22 2.41-3.22 0.52 0 0.84 0.2 1.25 0.83l-0.52 3.02c-0.63 0.73-1.25 1.05-1.78 1.05z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/milestone.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/milestone.svg deleted file mode 100644 index 687ef00e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/milestone.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 2H6V0h2v2z m4 5H2c-0.55 0-1-0.45-1-1V4c0-0.55 0.45-1 1-1h10l2 2-2 2zM8 4H6v2h2V4z m-2 12h2V8H6v8z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mirror.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mirror.svg deleted file mode 100644 index 242e89ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mirror.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15.5 4.7L8.5 0 1.5 4.7c-0.3 0.19-0.5 0.45-0.5 0.8v10.5l7.5-4 7.5 4V5.5c0-0.34-0.2-0.61-0.5-0.8z m-0.5 9.8L9 11.25v-1.25h-1v1.25L2 14.5V5.5L8 1.5v4.5h1V1.5l6 4v9zM6 7h5V5l3 3-3 3V9H6v2L3 8l3-3v2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mortar-board.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mortar-board.svg deleted file mode 100644 index 01a07f0d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mortar-board.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M7.83 9.19l-3.83-1.19s0 1.5 0 2.5 1.8 1.5 4 1.5 4-0.5 4-1.5 0-2.5 0-2.5l-3.83 1.19c-0.11 0.03-0.23 0.03-0.36 0h0.02z m0.28-6.39c-0.06-0.02-0.14-0.02-0.2 0l-7.64 2.38c-0.33 0.11-0.33 0.56 0 0.67l1.73 0.55v1.77c-0.3 0.17-0.5 0.5-0.5 0.86 0 0.19 0.05 0.36 0.14 0.5-0.08 0.14-0.14 0.31-0.14 0.5v2.58c0 0.55 2 0.55 2 0v-2.58c0-0.19-0.05-0.36-0.14-0.5 0.08-0.14 0.14-0.31 0.14-0.5 0-0.38-0.2-0.69-0.5-0.86v-1.45l4.89 1.53c0.06 0.02 0.14 0.02 0.2 0l7.64-2.38c0.33-0.11 0.33-0.56 0-0.67l-7.63-2.39z m-0.09 3.2c-0.55 0-1-0.22-1-0.5s0.45-0.5 1-0.5 1 0.22 1 0.5-0.45 0.5-1 0.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mute.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mute.svg deleted file mode 100644 index 07ea0d39..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/mute.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 2.81v10.38c0 0.67-0.81 1-1.28 0.53L3 10H1c-0.55 0-1-0.45-1-1V7c0-0.55 0.45-1 1-1h2l3.72-3.72c0.47-0.47 1.28-0.14 1.28 0.53z m7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06 1.97 1.97-1.97 1.97 1.06 1.06 1.97-1.97 1.97 1.97 1.06-1.06-1.97-1.97 1.97-1.97z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/no-newline.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/no-newline.svg deleted file mode 100644 index d0a56e07..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/no-newline.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M16 5v3c0 0.55-0.45 1-1 1H12v2L9 8l3-3v2h2V5h2zM8 8c0 2.2-1.8 4-4 4S0 10.2 0 8s1.8-4 4-4 4 1.8 4 4zM1.5 9.66l4.16-4.16c-0.48-0.31-1.05-0.5-1.66-0.5-1.66 0-3 1.34-3 3 0 0.61 0.19 1.17 0.5 1.66z m5.5-1.66c0-0.61-0.19-1.17-0.5-1.66L2.34 10.5c0.48 0.31 1.05 0.5 1.66 0.5 1.66 0 3-1.34 3-3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/octoface.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/octoface.svg deleted file mode 100644 index e93d0e22..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/octoface.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M14.7 4.34c0.13-0.32 0.55-1.59-0.13-3.31 0 0-1.05-0.33-3.44 1.3C10.13 2.05 9.06 2.01 8 2.01c-1.06 0-2.13 0.04-3.13 0.32C2.48 0.69 1.43 1.03 1.43 1.03 0.75 2.75 1.17 4.02 1.3 4.34 0.49 5.21 0 6.33 0 7.69 0 12.84 3.33 14 7.98 14 12.63 14 16 12.84 16 7.69 16 6.33 15.51 5.21 14.7 4.34zM8 13.02c-3.3 0-5.98-0.15-5.98-3.35 0-0.76 0.38-1.48 1.02-2.07 1.07-0.98 2.9-0.46 4.96-0.46 2.07 0 3.88-0.52 4.96 0.46 0.65 0.59 1.02 1.3 1.02 2.07C13.98 12.86 11.3 13.02 8 13.02zM5.49 8.01c-0.66 0-1.2 0.8-1.2 1.78s0.54 1.79 1.2 1.79c0.66 0 1.2-0.8 1.2-1.79S6.15 8.01 5.49 8.01zM10.51 8.01C9.85 8.01 9.31 8.8 9.31 9.79s0.54 1.79 1.2 1.79 1.2-0.8 1.2-1.79C11.71 8.8 11.18 8.01 10.51 8.01z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/organization.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/organization.svg deleted file mode 100644 index cd2f115a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/organization.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M4.75 4.95c0.55 0.64 1.34 1.05 2.25 1.05s1.7-0.41 2.25-1.05c0.34 0.63 1 1.05 1.75 1.05 1.11 0 2-0.89 2-2s-0.89-2-2-2c-0.41 0-0.77 0.13-1.08 0.33C9.61 1 8.42 0 7 0S4.39 1 4.08 2.33c-0.31-0.2-0.67-0.33-1.08-0.33-1.11 0-2 0.89-2 2s0.89 2 2 2c0.75 0 1.41-0.42 1.75-1.05z m5.2-1.52c0.2-0.38 0.59-0.64 1.05-0.64 0.66 0 1.2 0.55 1.2 1.2s-0.55 1.2-1.2 1.2-1.17-0.53-1.19-1.17c0.06-0.19 0.11-0.39 0.14-0.59zM7 0.98c1.11 0 2.02 0.91 2.02 2.02s-0.91 2.02-2.02 2.02-2.02-0.91-2.02-2.02S5.89 0.98 7 0.98zM3 5.2c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2c0.45 0 0.84 0.27 1.05 0.64 0.03 0.2 0.08 0.41 0.14 0.59-0.02 0.64-0.53 1.17-1.19 1.17z m10 0.8H1c-0.55 0-1 0.45-1 1v3c0 0.55 0.45 1 1 1v2c0 0.55 0.45 1 1 1h1c0.55 0 1-0.45 1-1v-1h1v3c0 0.55 0.45 1 1 1h2c0.55 0 1-0.45 1-1V12h1v1c0 0.55 0.45 1 1 1h1c0.55 0 1-0.45 1-1V11c0.55 0 1-0.45 1-1V7c0-0.55-0.45-1-1-1zM3 13h-1V10H1V7h2v6z m7-2h-1V9h-1v6H6V9h-1v2h-1V7h6v4z m3-1h-1v3h-1V7h2v3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/package.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/package.svg deleted file mode 100644 index 73236685..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/package.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M0 4.27v7.47c0 0.45 0.3 0.84 0.75 0.97l6.5 1.73c0.16 0.05 0.34 0.05 0.5 0l6.5-1.73c0.45-0.13 0.75-0.52 0.75-0.97V4.27c0-0.45-0.3-0.84-0.75-0.97L7.75 1.56c-0.16-0.03-0.34-0.03-0.5 0L0.75 3.3c-0.45 0.13-0.75 0.52-0.75 0.97z m7 9.09L1 11.77V5l6 1.61v6.75zM1 4l2.5-0.67 6.5 1.73-2.5 0.67L1 4z m13 7.77L8 13.36V6.61l2-0.55v2.44l2-0.53V5.53l2-0.53v6.77zM12 4.53L5.5 2.8l2-0.53 6.5 1.73-2 0.53z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/paintcan.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/paintcan.svg deleted file mode 100644 index f5786373..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/paintcan.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 0C2.69 0 0 2.69 0 6v1c0 0.55 0.45 1 1 1v5c0 1.1 2.24 2 5 2s5-0.9 5-2V8c0.55 0 1-0.45 1-1v-1C12 2.69 9.31 0 6 0zM9 10v0.5c0 0.28-0.22 0.5-0.5 0.5s-0.5-0.22-0.5-0.5v-0.5c0-0.28-0.22-0.5-0.5-0.5s-0.5 0.22-0.5 0.5v2.5c0 0.28-0.22 0.5-0.5 0.5s-0.5-0.22-0.5-0.5V10.5c0-0.28-0.22-0.5-0.5-0.5s-0.5 0.22-0.5 0.5v0.5c0 0.55-0.45 1-1 1s-1-0.45-1-1v-1c-0.55 0-1-0.45-1-1V7.2C2.91 7.69 4.36 8 6 8s3.09-0.31 4-0.8V9C10 9.55 9.55 10 9 10zM6 7c-1.68 0-3.12-0.41-3.71-1 0.59-0.59 2.03-1 3.71-1s3.12 0.41 3.71 1C9.12 6.59 7.68 7 6 7zM6 4c-2.76 0-5 0.89-5 2 0 0 0 0 0 0C1 3.24 3.24 1 6 1c2.76 0 5 2.24 5 5C11 4.9 8.76 4 6 4z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/pencil.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/pencil.svg deleted file mode 100644 index 6c3c0b4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/pencil.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M0 12v3h3l8-8-3-3L0 12z m3 2H1V12h1v1h1v1z m10.3-9.3l-1.3 1.3-3-3 1.3-1.3c0.39-0.39 1.02-0.39 1.41 0l1.59 1.59c0.39 0.39 0.39 1.02 0 1.41z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/person.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/person.svg deleted file mode 100644 index 554607f5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/person.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="8" xmlns="http://www.w3.org/2000/svg"> - <path d="M7 6H1c-0.55 0-1 0.45-1 1v5h2v3c0 0.55 0.45 1 1 1h2c0.55 0 1-0.45 1-1V12h2V7c0-0.55-0.45-1-1-1z m0 5h-1V9h-1v6H3V9h-1v2H1V7h6v4z m0-8C7 1.34 5.66 0 4 0S1 1.34 1 3s1.34 3 3 3 3-1.34 3-3zM4 5c-1.11 0-2-0.89-2-2S2.89 1 4 1s2 0.89 2 2-0.89 2-2 2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/pin.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/pin.svg deleted file mode 100644 index 2f630cda..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/pin.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 1.2v0.8l0.5 1-4.5 3H2.2c-0.44 0-0.67 0.53-0.34 0.86l3.14 3.14L1 15l5-4 3.14 3.14c0.33 0.33 0.86 0.09 0.86-0.34V10l3-4.5 1 0.5h0.8c0.44 0 0.67-0.53 0.34-0.86L10.86 0.86c-0.33-0.33-0.86-0.09-0.86 0.34z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/plug.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/plug.svg deleted file mode 100644 index 0a70bf58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/plug.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15 6v-1H11V3H9v1H7c-1.03 0-1.77 0.81-2 2l-1 1c-1.66 0-3 1.34-3 3v2h1V10c0-1.11 0.89-2 2-2l1 1c0.25 1.16 0.98 2 2 2h2v1h2V10h4v-1H11V6h4z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/plus.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/plus.svg deleted file mode 100644 index f6a18d16..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/plus.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M12 9H7v5H5V9H0V7h5V2h2v5h5v2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/primitive-dot.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/primitive-dot.svg deleted file mode 100644 index f0a225d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/primitive-dot.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="8" xmlns="http://www.w3.org/2000/svg"> - <path d="M0 8c0-2.2 1.8-4 4-4s4 1.8 4 4-1.8 4-4 4S0 10.2 0 8z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/primitive-square.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/primitive-square.svg deleted file mode 100644 index 36052d4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/primitive-square.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="8" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 12H0V4h8V12z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/pulse.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/pulse.svg deleted file mode 100644 index f4002090..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/pulse.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M11.5 8L8.8 5.4 6.6 8.5 5.5 1.6 2.38 8H0V10h3.6L4.5 8.2l0.9 5.4L9 8.5l1.6 1.5H14V8H11.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/question.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/question.svg deleted file mode 100644 index c0dcade2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/question.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 10h2v2H6V10z m4-3.5c0 2.14-2 2.5-2 2.5H6c0-0.55 0.45-1 1-1h0.5c0.28 0 0.5-0.22 0.5-0.5v-1c0-0.28-0.22-0.5-0.5-0.5h-1c-0.28 0-0.5 0.22-0.5 0.5v0.5H4c0-1.5 1.5-3 3-3s3 1 3 2.5zM7 2.3c3.14 0 5.7 2.56 5.7 5.7S10.14 13.7 7 13.7 1.3 11.14 1.3 8s2.56-5.7 5.7-5.7m0-1.3C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7S10.86 1 7 1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/quote.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/quote.svg deleted file mode 100644 index cc14a1b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/quote.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M6.16 3.17C3.73 4.73 2.55 6.34 2.55 9.03c0.16-0.05 0.3-0.05 0.44-0.05 1.27 0 2.5 0.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61C1.09 14 0 12.48 0 9.75 0 5.95 1.75 3.22 5.02 1.33l1.14 1.84z m7 0C10.73 4.73 9.55 6.34 9.55 9.03c0.16-0.05 0.3-0.05 0.44-0.05 1.27 0 2.5 0.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/radio-tower.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/radio-tower.svg deleted file mode 100644 index bfbd4f74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/radio-tower.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M4.79 6.11c0.25-0.25 0.25-0.67 0-0.92-0.32-0.33-0.48-0.76-0.48-1.19 0-0.43 0.16-0.86 0.48-1.19 0.25-0.26 0.25-0.67 0-0.92-0.12-0.13-0.29-0.19-0.45-0.19-0.16 0-0.33 0.06-0.45 0.19-0.57 0.58-0.85 1.35-0.85 2.11 0 0.76 0.29 1.53 0.85 2.11C4.14 6.36 4.55 6.36 4.79 6.11zM2.33 0.52c-0.13-0.13-0.29-0.19-0.46-0.19-0.16 0-0.33 0.06-0.46 0.19C0.48 1.48 0.01 2.74 0.01 3.99 0.01 5.25 0.48 6.51 1.41 7.47c0.25 0.26 0.66 0.26 0.91 0 0.25-0.26 0.25-0.68 0-0.94-0.68-0.7-1.02-1.62-1.02-2.54s0.34-1.84 1.02-2.54C2.58 1.2 2.58 0.78 2.33 0.52zM8.02 5.62c0.9 0 1.62-0.73 1.62-1.62 0-0.9-0.73-1.62-1.62-1.62-0.9 0-1.62 0.73-1.62 1.62C6.39 4.89 7.12 5.62 8.02 5.62zM14.59 0.53c-0.25-0.26-0.66-0.26-0.91 0-0.25 0.26-0.25 0.68 0 0.94 0.68 0.7 1.02 1.62 1.02 2.54 0 0.92-0.34 1.83-1.02 2.54-0.25 0.26-0.25 0.68 0 0.94 0.13 0.13 0.29 0.19 0.46 0.19 0.16 0 0.33-0.06 0.46-0.19 0.93-0.96 1.4-2.22 1.4-3.48C15.99 2.75 15.52 1.49 14.59 0.53zM8.02 6.92L8.02 6.92c-0.41 0-0.83-0.1-1.2-0.3L3.67 14.99h1.49l0.86-1h4l0.84 1h1.49L9.21 6.62C8.83 6.82 8.43 6.92 8.02 6.92zM8.01 7.4L9.02 11H7.02L8.01 7.4zM6.02 12.99l1-1h2l1 1H6.02zM11.21 1.89c-0.25 0.25-0.25 0.67 0 0.92 0.32 0.33 0.48 0.76 0.48 1.19 0 0.43-0.16 0.86-0.48 1.19-0.25 0.26-0.25 0.67 0 0.92 0.12 0.13 0.29 0.19 0.45 0.19 0.16 0 0.32-0.06 0.45-0.19 0.57-0.58 0.85-1.35 0.85-2.11 0-0.76-0.28-1.53-0.85-2.11C11.86 1.64 11.45 1.64 11.21 1.89z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-clone.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-clone.svg deleted file mode 100644 index 3026db94..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-clone.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15 0H9v7c0 0.55 0.45 1 1 1h1v1h1v-1h3c0.55 0 1-0.45 1-1V1c0-0.55-0.45-1-1-1zM11 7h-1v-1h1v1z m4 0H12v-1h3v1z m0-2H11V1h4v4z m-11 0h-1v-1h1v1z m0-2h-1v-1h1v1zM2 1h6V0H1C0.45 0 0 0.45 0 1v12c0 0.55 0.45 1 1 1h2v2l1.5-1.5 1.5 1.5V14h5c0.55 0 1-0.45 1-1V10H2V1z m9 10v2H6v-1H3v1H1V11h10zM3 8h1v1h-1v-1z m1-1h-1v-1h1v1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-force-push.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-force-push.svg deleted file mode 100644 index dc40cdd0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-force-push.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 9H8v7H6V9H4l2.25-3H4l3-4 3 4H7.75l2.25 3zM11 0H1C0.45 0 0 0.45 0 1v12c0 0.55 0.45 1 1 1h4v-1H1V11h4v-1H2V1h9v9H9v1h2v2H9v1h2c0.55 0 1-0.45 1-1V1c0-0.55-0.45-1-1-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-forked.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-forked.svg deleted file mode 100644 index 227ec68b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-forked.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 1c-1.11 0-2 0.89-2 2 0 0.73 0.41 1.38 1 1.72v1.28L5 8 3 6v-1.28c0.59-0.34 1-0.98 1-1.72 0-1.11-0.89-2-2-2S0 1.89 0 3c0 0.73 0.41 1.38 1 1.72v1.78l3 3v1.78c-0.59 0.34-1 0.98-1 1.72 0 1.11 0.89 2 2 2s2-0.89 2-2c0-0.73-0.41-1.38-1-1.72V9.5l3-3V4.72c0.59-0.34 1-0.98 1-1.72 0-1.11-0.89-2-2-2zM2 4.2c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2-0.55 1.2-1.2 1.2z m3 10c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2-0.55 1.2-1.2 1.2z m3-10c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 1.2 0.55 1.2 1.2-0.55 1.2-1.2 1.2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-pull.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-pull.svg deleted file mode 100644 index e8add589..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-pull.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M13 8V6H7V4h6V2l3 3-3 3zM4 2h-1v1h1v-1z m7 5h1v6c0 0.55-0.45 1-1 1H6v2l-1.5-1.5-1.5 1.5V14H1c-0.55 0-1-0.45-1-1V1C0 0.45 0.45 0 1 0h10c0.55 0 1 0.45 1 1v2h-1V1H2v9h9V7z m0 4H1v2h2v-1h3v1h5V11zM4 6h-1v1h1v-1z m0-2h-1v1h1v-1z m-1 5h1v-1h-1v1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-push.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-push.svg deleted file mode 100644 index e99ac481..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo-push.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M4 3h-1v-1h1v1z m-1 2h1v-1h-1v1z m4 0L4 9h2v7h2V9h2L7 5zM11 0H1C0.45 0 0 0.45 0 1v12c0 0.55 0.45 1 1 1h4v-1H1V11h4v-1H2V1h9.02l-0.02 9H9v1h2v2H9v1h2c0.55 0 1-0.45 1-1V1c0-0.55-0.45-1-1-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo.svg deleted file mode 100644 index cd676df8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/repo.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M4 9h-1v-1h1v1z m0-3h-1v1h1v-1z m0-2h-1v1h1v-1z m0-2h-1v1h1v-1z m8-1v12c0 0.55-0.45 1-1 1H6v2l-1.5-1.5-1.5 1.5V14H1c-0.55 0-1-0.45-1-1V1C0 0.45 0.45 0 1 0h10c0.55 0 1 0.45 1 1z m-1 10H1v2h2v-1h3v1h5V11z m0-10H2v9h9V1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/rocket.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/rocket.svg deleted file mode 100644 index 57749d74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/rocket.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M16 0s-0.09 0.38-0.3 1.06c-0.2 0.7-0.55 1.58-1.06 2.66-0.7-0.08-1.27-0.33-1.66-0.72s-0.63-0.94-0.7-1.64c1.08-0.52 1.95-0.88 2.64-1.08 0.7-0.2 1.08-0.28 1.08-0.28zM12.17 3.83c-0.27-0.27-0.47-0.55-0.63-0.88-0.16-0.31-0.27-0.66-0.34-1.02-0.58 0.33-1.16 0.7-1.73 1.13-0.58 0.44-1.14 0.94-1.69 1.48-0.7 0.7-1.33 1.81-1.78 2.45H3L0 10h3l2-2c-0.34 0.77-1.02 2.98-1 3l1 1c0.02 0.02 2.23-0.64 3-1L6 13v3l3-3V10c0.64-0.45 1.75-1.09 2.45-1.78 0.55-0.55 1.05-1.13 1.47-1.7 0.44-0.58 0.81-1.16 1.14-1.72-0.36-0.08-0.7-0.19-1.03-0.34-0.31-0.16-0.59-0.36-0.86-0.63z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/rss.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/rss.svg deleted file mode 100644 index 22a88187..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/rss.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M2 13H0V11c1.11 0 2 0.89 2 2zM0 3v1c4.97 0 9 4.03 9 9h1c0-5.52-4.48-10-10-10z m0 4v1c2.75 0 5 2.25 5 5h1c0-3.31-2.69-6-6-6z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/ruby.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/ruby.svg deleted file mode 100644 index 7888b51f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/ruby.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M13 6L8 11V4h3l2 2z m3 0L8 14 0 6l4-4h8l4 4zM8 12.5l6.5-6.5-3-3H4.5L1.5 6l6.5 6.5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/search.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/search.svg deleted file mode 100644 index ba4e4cfd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/search.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15.7 14.3L11.89 10.47c0.7-0.98 1.11-2.17 1.11-3.47 0-3.31-2.69-6-6-6S1 3.69 1 7s2.69 6 6 6c1.3 0 2.48-0.41 3.47-1.11l3.83 3.81c0.19 0.2 0.45 0.3 0.7 0.3s0.52-0.09 0.7-0.3c0.39-0.39 0.39-1.02 0-1.41zM7 11.7c-2.59 0-4.7-2.11-4.7-4.7s2.11-4.7 4.7-4.7 4.7 2.11 4.7 4.7-2.11 4.7-4.7 4.7z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/server.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/server.svg deleted file mode 100644 index 952dbf6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/server.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M11 6H1c-0.55 0-1 0.45-1 1v2c0 0.55 0.45 1 1 1h10c0.55 0 1-0.45 1-1V7c0-0.55-0.45-1-1-1zM2 9H1V7h1v2z m2 0h-1V7h1v2z m2 0h-1V7h1v2z m2 0h-1V7h1v2zM11 1H1C0.45 1 0 1.45 0 2v2c0 0.55 0.45 1 1 1h10c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1zM2 4H1V2h1v2z m2 0h-1V2h1v2z m2 0h-1V2h1v2z m2 0h-1V2h1v2z m3-1h-1v-1h1v1z m0 8H1c-0.55 0-1 0.45-1 1v2c0 0.55 0.45 1 1 1h10c0.55 0 1-0.45 1-1V12c0-0.55-0.45-1-1-1zM2 14H1V12h1v2z m2 0h-1V12h1v2z m2 0h-1V12h1v2z m2 0h-1V12h1v2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/settings.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/settings.svg deleted file mode 100644 index 6d792c69..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/settings.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M3 7h-1V2h1v5z m-1 7h1V11h-1v3z m5 0h1V8h-1v6z m5 0h1V12h-1v2z m1-12h-1v6h1V2z m-5 0h-1v2h1V2zM4 8H1c-0.55 0-1 0.45-1 1s0.45 1 1 1h3c0.55 0 1-0.45 1-1s-0.45-1-1-1z m5-3H6c-0.55 0-1 0.45-1 1s0.45 1 1 1h3c0.55 0 1-0.45 1-1s-0.45-1-1-1z m5 4H11c-0.55 0-1 0.45-1 1s0.45 1 1 1h3c0.55 0 1-0.45 1-1s-0.45-1-1-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/shield.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/shield.svg deleted file mode 100644 index 47c531e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/shield.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M7 0L0 2v6.02c0 4.67 5.31 7.98 7 7.98s7-3.31 7-7.98V2L7 0zM5 11l1.14-2.8c0.05-0.23-0.06-0.47-0.25-0.59-0.56-0.36-0.89-0.95-0.89-1.61 0-1.09 0.89-2 1.98-2 1.08 0 2.02 0.91 2.02 2 0 0.66-0.33 1.25-0.89 1.61-0.19 0.13-0.3 0.36-0.25 0.59l1.14 2.8H5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/sign-in.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/sign-in.svg deleted file mode 100644 index 63997a5d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/sign-in.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 6.75v5.25h4V8h1v4c0 0.55-0.45 1-1 1H6v3L0.55 13.28c-0.33-0.17-0.55-0.52-0.55-0.91V1C0 0.45 0.45 0 1 0h9c0.55 0 1 0.45 1 1v3h-1V1H2l4 2v2.25l3-2.25v2h4v2H9v2L6 6.75z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/sign-out.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/sign-out.svg deleted file mode 100644 index 3b635d23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/sign-out.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M12 9V7H8V5h4V3l4 3-4 3zM10 12H6V3L2 1h8v3h1V1c0-0.55-0.45-1-1-1H1C0.45 0 0 0.45 0 1v11.38c0 0.39 0.22 0.73 0.55 0.91l5.45 2.72V13h4c0.55 0 1-0.45 1-1V8h-1v4z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/smiley.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/smiley.svg deleted file mode 100644 index 2c39b5f4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/smiley.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8S12.42 0 8 0z m4.81 12.81c-0.63 0.63-1.36 1.11-2.17 1.45-0.83 0.36-1.72 0.53-2.64 0.53s-1.81-0.17-2.64-0.53c-0.81-0.34-1.55-0.83-2.17-1.45s-1.11-1.36-1.45-2.17c-0.36-0.83-0.53-1.72-0.53-2.64s0.17-1.81 0.53-2.64c0.34-0.81 0.83-1.55 1.45-2.17s1.36-1.11 2.17-1.45c0.83-0.36 1.72-0.53 2.64-0.53s1.81 0.17 2.64 0.53c0.81 0.34 1.55 0.83 2.17 1.45s1.11 1.36 1.45 2.17c0.36 0.83 0.53 1.72 0.53 2.64s-0.17 1.81-0.53 2.64c-0.34 0.81-0.83 1.55-1.45 2.17zM4 5.8v-0.59c0-0.66 0.53-1.19 1.2-1.19h0.59c0.66 0 1.19 0.53 1.19 1.19v0.59c0 0.67-0.53 1.2-1.19 1.2h-0.59c-0.67 0-1.2-0.53-1.2-1.2z m5 0v-0.59c0-0.66 0.53-1.19 1.2-1.19h0.59c0.66 0 1.19 0.53 1.19 1.19v0.59c0 0.67-0.53 1.2-1.19 1.2h-0.59c-0.67 0-1.2-0.53-1.2-1.2z m4 4.2c-0.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-0.14-0.39 0.23-1 0.66-1h8.59c0.41 0 0.89 0.61 0.75 1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/squirrel.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/squirrel.svg deleted file mode 100644 index 39cbc377..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/squirrel.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M12 1c-2.21 0-4 1.31-4 2.92C8 5.86 8.5 6.95 8 10c0-4.5-2.77-6.34-4-6.34 0.05-0.5-0.48-0.66-0.48-0.66s-0.22 0.11-0.3 0.34c-0.27-0.31-0.56-0.27-0.56-0.27l-0.13 0.58c0 0-1.83 0.64-1.85 3.22C0.88 7.2 2.21 7.47 3.15 7.3c0.89 0.05 0.67 0.79 0.47 0.99C2.78 9.13 2 8 1 8s-1 1 0 1 1 1 3 1c-3.09 1.2 0 4 0 4h-1c-1 0-1 1-1 1s4 0 6 0c3 0 5-1 5-3.47 0-0.85-0.43-1.79-1-2.53C10.89 7.54 12.23 6.32 13 7s3 1 3-2C16 2.79 14.21 1 12 1zM2.5 6c-0.28 0-0.5-0.22-0.5-0.5 0-0.28 0.22-0.5 0.5-0.5 0.28 0 0.5 0.22 0.5 0.5C3 5.78 2.78 6 2.5 6z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/star.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/star.svg deleted file mode 100644 index f41ecba4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/star.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M14 6l-4.9-0.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14l4.33-2.33 4.33 2.33L10.4 9.26 14 6z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/stop.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/stop.svg deleted file mode 100644 index a52795a6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/stop.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 1H4L0 5v6l4 4h6l4-4V5L10 1z m3 9.5L9.5 14H4.5L1 10.5V5.5l3.5-3.5h5l3.5 3.5v5zM6 4h2v5H6V4z m0 6h2v2H6V10z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/sync.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/sync.svg deleted file mode 100644 index 45a8f602..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/sync.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12.000796875" xmlns="http://www.w3.org/2000/svg"> - <path d="M10.24 7.4c0.19 1.28-0.2 2.62-1.2 3.6-1.47 1.45-3.74 1.63-5.41 0.54l1.17-1.14L0.5 9.8 1.1 14l1.31-1.26c2.36 1.74 5.7 1.57 7.84-0.54 1.24-1.23 1.81-2.85 1.74-4.46L10.24 7.4zM2.96 5c1.47-1.45 3.74-1.63 5.41-0.54l-1.17 1.14 4.3 0.6L10.9 2l-1.31 1.26C7.23 1.52 3.89 1.69 1.74 3.8 0.5 5.03-0.06 6.65 0.01 8.26l1.75 0.35C1.57 7.33 1.96 5.98 2.96 5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/tag.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/tag.svg deleted file mode 100644 index 9ef6cbb4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/tag.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M6.73 2.73c-0.47-0.47-1.11-0.73-1.77-0.73H2.5C1.13 2 0 3.13 0 4.5v2.47c0 0.66 0.27 1.3 0.73 1.77l6.06 6.06c0.39 0.39 1.02 0.39 1.41 0l4.59-4.59c0.39-0.39 0.39-1.02 0-1.41L6.73 2.73zM1.38 8.09c-0.31-0.3-0.47-0.7-0.47-1.13V4.5c0-0.88 0.72-1.59 1.59-1.59h2.47c0.42 0 0.83 0.16 1.13 0.47l6.14 6.13-4.73 4.73L1.38 8.09z m0.63-4.09h2v2H2V4z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/tasklist.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/tasklist.svg deleted file mode 100644 index 166dcb80..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/tasklist.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15.41 9H7.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1h7.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1zM9.59 4c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1h5.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1H9.59zM0 3.91l1.41-1.3 1.59 1.59L7.09 0l1.41 1.41-5.5 5.5L0 3.91z m7.59 8.09h7.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1H7.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/telescope.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/telescope.svg deleted file mode 100644 index fb65f7f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/telescope.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M8 9l3 6h-1L8 11v5h-1V10L5 15h-1l2-5 2-1zM7 0h-1v1h1V0zM5 3h-1v1h1v-1zM2 1H1v1h1V1zM0.63 9c-0.22 0.16-0.28 0.44-0.16 0.67l0.55 0.92c0.13 0.23 0.41 0.31 0.64 0.2l1.39-0.66-1.16-2-1.27 0.86z m7.89-5.39L2.72 7.56l1.23 2.14 6.33-3.03-1.77-3.06z m4.22 1.28l-1.47-2.52c-0.14-0.25-0.47-0.33-0.72-0.17l-1.2 0.83 1.84 3.2 1.33-0.64c0.27-0.13 0.36-0.44 0.22-0.7z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/terminal.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/terminal.svg deleted file mode 100644 index f816c84d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/terminal.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M7 10h4v1H7v-1z m-3 1l3-3-3-3-0.75 0.75 2.25 2.25-2.25 2.25 0.75 0.75z m10-8v10c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h12c0.55 0 1 0.45 1 1z m-1 0H1v10h12V3z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/text-size.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/text-size.svg deleted file mode 100644 index 696ac2b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/text-size.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="18" xmlns="http://www.w3.org/2000/svg"> - <path d="M17.97 14h-2.25l-0.95-3.25H10.7l-0.95 3.25H7.5l-0.69-2.33H3.53l-0.7 2.33H0.66l3.3-9.59h2.5l2.17 6.34 2.89-8.75h2.52l3.94 12zM6.36 10.13s-1.02-3.61-1.17-4.11h-0.08l-1.13 4.11h2.38z m7.92-1.05l-1.52-5.42h-0.06l-1.5 5.42h3.08z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/three-bars.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/three-bars.svg deleted file mode 100644 index 7a07cb22..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/three-bars.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M11.41 9H0.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1h10.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1z m0-4H0.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1h10.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1zM0.59 11h10.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1H0.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/thumbsdown.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/thumbsdown.svg deleted file mode 100644 index 411a7b46..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/thumbsdown.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15.98 7.83l-0.97-5.95C14.84 0.5 13.13 0 12 0H5.69c-0.2 0-0.38 0.05-0.53 0.14l-1.44 0.86H2C0.94 1 0 1.94 0 3v4c0 1.06 0.94 2.02 2 2h2c0.91 0 1.39 0.45 2.39 1.55 0.91 1 0.88 1.8 0.63 3.27-0.08 0.5 0.06 1 0.42 1.42 0.39 0.47 0.98 0.77 1.56 0.77 1.83 0 3-3.72 3-5.02l-0.02-0.98c0.02 0 0.02 0 0.02 0h2.02c1.16 0 1.95-0.8 1.98-1.97 0-0.06 0.02-0.13-0.02-0.2z m-1.97 1.19H12.02c-0.7 0-1.03 0.28-1.03 0.97l0.03 1.03c0 1.27-1.17 4-2 4-0.5 0-1.08-0.5-1-1 0.25-1.58 0.34-2.78-0.89-4.14-1.02-1.13-1.77-1.88-3.13-1.88V2l1.67-1h6.33c0.73 0 1.95 0.31 2 1l0.02 0.02 1 6c-0.03 0.64-0.38 1-1 1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/thumbsup.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/thumbsup.svg deleted file mode 100644 index 6353f729..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/thumbsup.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M14 6H12s0 0-0.02 0l0.02-0.98c0-1.3-1.17-5.02-3-5.02-0.58 0-1.17 0.3-1.56 0.77-0.36 0.41-0.5 0.91-0.42 1.41 0.25 1.48 0.28 2.28-0.63 3.28-1 1.09-1.48 1.55-2.39 1.55H2C0.94 7 0 7.94 0 9v4c0 1.06 0.94 2 2 2h1.72l1.44 0.86c0.16 0.09 0.33 0.14 0.52 0.14h6.33c1.13 0 2.84-0.5 3-1.88l0.98-5.95c0.02-0.08 0.02-0.14 0.02-0.2-0.03-1.17-0.84-1.97-2-1.97z m0 8c-0.05 0.69-1.27 1-2 1H5.67l-1.67-1V8c1.36 0 2.11-0.75 3.13-1.88 1.23-1.36 1.14-2.56 0.88-4.13-0.08-0.5 0.5-1 1-1 0.83 0 2 2.73 2 4l-0.02 1.03c0 0.69 0.33 0.97 1.02 0.97h2c0.63 0 0.98 0.36 1 1l-1 6z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/tools.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/tools.svg deleted file mode 100644 index 589deaf6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/tools.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M4.48 7.27c0.26 0.26 1.28 1.33 1.28 1.33l0.56-0.58-0.88-0.91L7.13 5.31c0 0-0.76-0.74-0.43-0.45 0.32-1.19 0.03-2.51-0.87-3.44C4.93 0.5 3.66 0.2 2.52 0.51l1.93 2-0.51 1.96-1.89 0.52L0.12 2.99c-0.31 1.18-0.02 2.49 0.88 3.41C1.94 7.38 3.29 7.66 4.48 7.27zM10.92 9.21L8.59 11.51l3.84 3.98c0.31 0.33 0.73 0.49 1.14 0.49 0.41 0 0.82-0.16 1.14-0.49 0.63-0.65 0.63-1.7 0-2.35L10.92 9.21zM16 2.53L13.55 0 6.33 7.46l0.88 0.91L2.9 12.83l-0.99 0.53-1.39 2.27 0.35 0.37 2.2-1.44 0.51-1.02 4.32-4.46 0.88 0.91L16 2.53z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/trashcan.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/trashcan.svg deleted file mode 100644 index a89f1b95..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/trashcan.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 2H8c0-0.55-0.45-1-1-1H4c-0.55 0-1 0.45-1 1H1c-0.55 0-1 0.45-1 1v1c0 0.55 0.45 1 1 1v9c0 0.55 0.45 1 1 1h7c0.55 0 1-0.45 1-1V5c0.55 0 1-0.45 1-1v-1c0-0.55-0.45-1-1-1z m-1 12H2V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9z m1-10H1v-1h9v1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-down.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-down.svg deleted file mode 100644 index 3901ab26..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-down.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M0 5l6 6 6-6H0z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-left.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-left.svg deleted file mode 100644 index 4dd180e9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-left.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="6" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 2L0 8l6 6V2z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-right.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-right.svg deleted file mode 100644 index 1f0fd100..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-right.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="6" xmlns="http://www.w3.org/2000/svg"> - <path d="M0 14l6-6L0 2v12z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-up.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-up.svg deleted file mode 100644 index 7c1fe119..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/triangle-up.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M12 11L6 5 0 11h12z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/unfold.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/unfold.svg deleted file mode 100644 index 7d4a9dc0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/unfold.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M11.5 8.5l2.5 2.5c0 0.55-0.45 1-1 1H9v-1h3.5L10.5 9H3.5L1.5 11h3.5v1H1c-0.55 0-1-0.45-1-1l2.5-2.5L0 6c0-0.55 0.45-1 1-1h4v1H1.5l2 2h7l2-2H9v-1h4c0.55 0 1 0.45 1 1L11.5 8.5z m-5.5-1.5h2V4h2L7 1 4 4h2v3z m2 3H6v3H4l3 3 3-3H8V10z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/unmute.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/unmute.svg deleted file mode 100644 index c3c960a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/unmute.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M11 8.02c0 1.09-0.45 2.09-1.17 2.83l-0.67-0.67c0.55-0.56 0.89-1.31 0.89-2.16s-0.34-1.61-0.89-2.16l0.67-0.67c0.72 0.72 1.17 1.72 1.17 2.83zM6.72 2.28L3 6H1c-0.55 0-1 0.45-1 1v2c0 0.55 0.45 1 1 1h2l3.72 3.72c0.47 0.47 1.28 0.14 1.28-0.53V2.81c0-0.67-0.81-1-1.28-0.53z m5.94 0.08l-0.67 0.67c1.28 1.28 2.06 3.03 2.06 4.98 0 1.94-0.78 3.7-2.06 4.98l0.67 0.67c1.45-1.45 2.34-3.45 2.34-5.66 0-2.22-0.89-4.22-2.34-5.66z m-1.41 1.41l-0.69 0.67c0.92 0.92 1.48 2.19 1.48 3.58s-0.56 2.66-1.48 3.56l0.69 0.67c1.08-1.08 1.75-2.58 1.75-4.23s-0.67-3.16-1.75-4.25z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/unverified.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/unverified.svg deleted file mode 100644 index 5411aedc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/unverified.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15.67 7.06l-1.08-1.34c-0.17-0.22-0.28-0.48-0.31-0.77l-0.19-1.7c-0.08-0.7-0.63-1.25-1.33-1.33l-1.7-0.19c-0.3-0.03-0.56-0.16-0.78-0.33l-1.34-1.08c-0.55-0.44-1.33-0.44-1.88 0l-1.34 1.08c-0.22 0.17-0.48 0.28-0.77 0.31l-1.7 0.19c-0.7 0.08-1.25 0.63-1.33 1.33l-0.19 1.7c-0.03 0.3-0.16 0.56-0.33 0.78l-1.08 1.34c-0.44 0.55-0.44 1.33 0 1.88l1.08 1.34c0.17 0.22 0.28 0.48 0.31 0.77l0.19 1.7c0.08 0.7 0.63 1.25 1.33 1.33l1.7 0.19c0.3 0.03 0.56 0.16 0.78 0.33l1.34 1.08c0.55 0.44 1.33 0.44 1.88 0l1.34-1.08c0.22-0.17 0.48-0.28 0.77-0.31l1.7-0.19c0.7-0.08 1.25-0.63 1.33-1.33l0.19-1.7c0.03-0.3 0.16-0.56 0.33-0.78l1.08-1.34c0.44-0.55 0.44-1.33 0-1.88zM9 11.5c0 0.28-0.22 0.5-0.5 0.5h-1c-0.27 0-0.5-0.22-0.5-0.5v-1c0-0.28 0.23-0.5 0.5-0.5h1c0.28 0 0.5 0.22 0.5 0.5v1z m1.56-4.89c-0.06 0.17-0.17 0.33-0.3 0.47-0.13 0.16-0.14 0.19-0.33 0.38-0.16 0.17-0.31 0.3-0.52 0.45-0.11 0.09-0.2 0.19-0.28 0.27s-0.14 0.17-0.19 0.27-0.08 0.19-0.11 0.3-0.03 0.13-0.03 0.25H7.13c0-0.22 0-0.31 0.03-0.48 0.03-0.19 0.08-0.36 0.14-0.52 0.06-0.14 0.14-0.28 0.25-0.42 0.11-0.13 0.23-0.25 0.41-0.38 0.27-0.19 0.36-0.3 0.48-0.52s0.2-0.38 0.2-0.59c0-0.27-0.06-0.45-0.2-0.58-0.13-0.13-0.31-0.19-0.58-0.19-0.09 0-0.19 0.02-0.3 0.05s-0.17 0.09-0.25 0.16-0.14 0.11-0.2 0.2-0.09 0.14-0.09 0.28H5.02c0-0.38 0.13-0.56 0.27-0.83 0.16-0.27 0.36-0.5 0.61-0.67s0.55-0.3 0.88-0.38 0.7-0.13 1.09-0.13c0.44 0 0.83 0.05 1.17 0.13 0.34 0.09 0.63 0.22 0.88 0.39 0.23 0.17 0.41 0.38 0.55 0.63 0.13 0.25 0.19 0.55 0.19 0.88 0 0.22 0 0.42-0.08 0.59z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/verified.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/verified.svg deleted file mode 100644 index 489d6a97..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/verified.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"> - <path d="M15.67 7.06l-1.08-1.34c-0.17-0.22-0.28-0.48-0.31-0.77l-0.19-1.7c-0.08-0.7-0.63-1.25-1.33-1.33l-1.7-0.19c-0.3-0.03-0.56-0.16-0.78-0.33l-1.34-1.08c-0.55-0.44-1.33-0.44-1.88 0l-1.34 1.08c-0.22 0.17-0.48 0.28-0.77 0.31l-1.7 0.19c-0.7 0.08-1.25 0.63-1.33 1.33l-0.19 1.7c-0.03 0.3-0.16 0.56-0.33 0.78l-1.08 1.34c-0.44 0.55-0.44 1.33 0 1.88l1.08 1.34c0.17 0.22 0.28 0.48 0.31 0.77l0.19 1.7c0.08 0.7 0.63 1.25 1.33 1.33l1.7 0.19c0.3 0.03 0.56 0.16 0.78 0.33l1.34 1.08c0.55 0.44 1.33 0.44 1.88 0l1.34-1.08c0.22-0.17 0.48-0.28 0.77-0.31l1.7-0.19c0.7-0.08 1.25-0.63 1.33-1.33l0.19-1.7c0.03-0.3 0.16-0.56 0.33-0.78l1.08-1.34c0.44-0.55 0.44-1.33 0-1.88zM6.5 12L3 8.5l1.5-1.5 2 2 5-5 1.5 1.55-6.5 6.45z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/versions.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/versions.svg deleted file mode 100644 index e7a93e3a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/versions.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="14" xmlns="http://www.w3.org/2000/svg"> - <path d="M13 3H7c-0.55 0-1 0.45-1 1v8c0 0.55 0.45 1 1 1h6c0.55 0 1-0.45 1-1V4c0-0.55-0.45-1-1-1z m-1 8H8V5h4v6zM4 4h1v1h-1v6h1v1h-1c-0.55 0-1-0.45-1-1V5c0-0.55 0.45-1 1-1zM1 5h1v1H1v4h1v1H1c-0.55 0-1-0.45-1-1V6c0-0.55 0.45-1 1-1z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/watch.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/watch.svg deleted file mode 100644 index d1cbb385..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/watch.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M6 8h2v1H5V5h1v3z m6 0c0 2.22-1.2 4.16-3 5.19v1.81c0 0.55-0.45 1-1 1H4c-0.55 0-1-0.45-1-1V13.19C1.2 12.16 0 10.22 0 8s1.2-4.16 3-5.19V1c0-0.55 0.45-1 1-1h4c0.55 0 1 0.45 1 1v1.81c1.8 1.03 3 2.97 3 5.19z m-1 0c0-2.77-2.23-5-5-5S1 5.23 1 8s2.23 5 5 5 5-2.23 5-5z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/x.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/x.svg deleted file mode 100644 index 9c687044..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/x.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="12" xmlns="http://www.w3.org/2000/svg"> - <path d="M7.48 8l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75-1.48-1.48 3.75-3.75L0.77 4.25l1.48-1.48 3.75 3.75 3.75-3.75 1.48 1.48-3.75 3.75z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/zap.svg b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/zap.svg deleted file mode 100644 index 866d50b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/octicons/svg/zap.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg height="16" width="10" xmlns="http://www.w3.org/2000/svg"> - <path d="M10 7H6L9 0 0 9h4L1 16 10 7z" /> -</svg> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/.jshintignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/.jshintignore deleted file mode 100644 index 651665bb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/.jshintignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -.git diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/.jshintrc deleted file mode 100644 index 765fb34a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/.jshintrc +++ /dev/null @@ -1,27 +0,0 @@ -{ - "bitwise": true, - "curly": true, - "eqeqeq": true, - "forin": true, - "immed": true, - "latedef": false, - "newcap": true, - "noarg": true, - "noempty": false, - "nonew": true, - "plusplus": false, - "regexp": false, - "undef": true, - "strict": false, - "trailing": true, - - "eqnull": true, - "laxcomma": true, - - "node": true, - - "onevar": true, - "white": true, - - "indent": 2 -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/.npmignore deleted file mode 100644 index 9daeafb9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/.npmignore +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/LICENSE deleted file mode 100644 index 58b5cd24..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2012 Jay Jordan - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/README.md deleted file mode 100644 index 4fc0d54e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# open - -Open a file or url in the user's preferred application. - -# Usage - -```javascript -var open = require("open"); -open("http://www.google.com"); -``` - -`open` taks an optional argument specifying the program to be used to open the -file or URL. - -```javascript -open("http://www.google.com", "firefox"); -``` - -# Installation - - npm install open - -# How it works - -- on `win32` uses `start` -- on `darwin` uses `open` -- otherwise uses the `xdg-open` script from [freedesktop.org](http://portland.freedesktop.org/xdg-utils-1.0/xdg-open.html) - -# Warning - -The same care should be taken when calling open as if you were calling -[child_process.exec](http://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback) -directly. If it is an executable it will run in a new shell. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/lib/open.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/lib/open.js deleted file mode 100644 index 667bc175..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/lib/open.js +++ /dev/null @@ -1,63 +0,0 @@ -var exec = require('child_process').exec - , path = require('path') - ; - - -/** - * open a file or uri using the default application for the file type. - * - * @return {ChildProcess} - the child process object. - * @param {string} target - the file/uri to open. - * @param {string} appName - (optional) the application to be used to open the - * file (for example, "chrome", "firefox") - * @param {function(Error)} callback - called with null on success, or - * an error object that contains a property 'code' with the exit - * code of the process. - */ - -module.exports = open; - -function open(target, appName, callback) { - var opener; - - if (typeof(appName) === 'function') { - callback = appName; - appName = null; - } - - switch (process.platform) { - case 'darwin': - if (appName) { - opener = 'open -a "' + escape(appName) + '"'; - } else { - opener = 'open'; - } - break; - case 'win32': - // if the first parameter to start is quoted, it uses that as the title - // so we pass a blank title so we can quote the file we are opening - if (appName) { - opener = 'start "" "' + escape(appName) + '"'; - } else { - opener = 'start ""'; - } - break; - default: - if (appName) { - opener = escape(appName); - } else { - // use Portlands xdg-open everywhere else - opener = path.join(__dirname, '../vendor/xdg-open'); - } - break; - } - - if (process.env.SUDO_USER) { - opener = 'sudo -u ' + process.env.SUDO_USER + ' ' + opener; - } - return exec(opener + ' "' + escape(target) + '"', callback); -} - -function escape(s) { - return s.replace(/"/g, '\\\"'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/package.json deleted file mode 100644 index 9c35a845..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "open", - "version": "0.0.5", - "description": "open a file or url in the user's preferred application", - "keywords": [ - "start", - "open", - "browser", - "editor", - "default" - ], - "homepage": "https://github.com/jjrdn/node-open", - "author": { - "name": "J Jordan", - "email": "jjrdn@styosis.com" - }, - "license": "MIT", - "contributors": [ - { - "name": "Victor Costan", - "email": "victor@costan.us", - "url": "http://www.costan.us" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/pwnall/node-open.git" - }, - "bugs": { - "url": "https://github.com/pwnall/node-open/issues" - }, - "engines": { - "node": ">= 0.6.0" - }, - "dependencies": {}, - "devDependencies": { - "mocha": "*" - }, - "optionalDependencies": {}, - "main": "lib/open.js", - "scripts": { - "test": "node_modules/mocha/bin/mocha" - }, - "_id": "open@0.0.5", - "dist": { - "shasum": "42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc", - "tarball": "https://registry.npmjs.org/open/-/open-0.0.5.tgz" - }, - "_from": "open@>=0.0.5 <0.1.0", - "_npmVersion": "1.4.3", - "_npmUser": { - "name": "pwnall", - "email": "costan@gmail.com" - }, - "maintainers": [ - { - "name": "jjrdn", - "email": "jjrdn@styosis.com" - }, - { - "name": "pwnall", - "email": "costan@gmail.com" - } - ], - "directories": {}, - "_shasum": "42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc", - "_resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/vendor/xdg-open b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/vendor/xdg-open deleted file mode 100755 index 13caac1a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/open/vendor/xdg-open +++ /dev/null @@ -1,767 +0,0 @@ -#!/bin/sh -#--------------------------------------------- -# xdg-open -# -# Utility script to open a URL in the registered default application. -# -# Refer to the usage() function below for usage. -# -# Copyright 2009-2010, Fathi Boudra <fabo@freedesktop.org> -# Copyright 2009-2010, Rex Dieter <rdieter@fedoraproject.org> -# Copyright 2006, Kevin Krammer <kevin.krammer@gmx.at> -# Copyright 2006, Jeremy White <jwhite@codeweavers.com> -# -# LICENSE: -# -# 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. -# -#--------------------------------------------- - -manualpage() -{ -cat << _MANUALPAGE -Name - - xdg-open -- opens a file or URL in the user's preferred - application - -Synopsis - - xdg-open { file | URL } - - xdg-open { --help | --manual | --version } - -Description - - xdg-open opens a file or URL in the user's preferred - application. If a URL is provided the URL will be opened in the - user's preferred web browser. If a file is provided the file - will be opened in the preferred application for files of that - type. xdg-open supports file, ftp, http and https URLs. - - xdg-open is for use inside a desktop session only. It is not - recommended to use xdg-open as root. - -Options - - --help - Show command synopsis. - - --manual - Show this manual page. - - --version - Show the xdg-utils version information. - -Exit Codes - - An exit code of 0 indicates success while a non-zero exit code - indicates failure. The following failure codes can be returned: - - 1 - Error in command line syntax. - - 2 - One of the files passed on the command line did not - exist. - - 3 - A required tool could not be found. - - 4 - The action failed. - -Examples - -xdg-open 'http://www.freedesktop.org/' - - Opens the freedesktop.org website in the user's default - browser. - -xdg-open /tmp/foobar.png - - Opens the PNG image file /tmp/foobar.png in the user's default - image viewing application. -_MANUALPAGE -} - -usage() -{ -cat << _USAGE - xdg-open -- opens a file or URL in the user's preferred - application - -Synopsis - - xdg-open { file | URL } - - xdg-open { --help | --manual | --version } - -_USAGE -} - -#@xdg-utils-common@ - -#---------------------------------------------------------------------------- -# Common utility functions included in all XDG wrapper scripts -#---------------------------------------------------------------------------- - -DEBUG() -{ - [ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && return 0; - [ ${XDG_UTILS_DEBUG_LEVEL} -lt $1 ] && return 0; - shift - echo "$@" >&2 -} - -# This handles backslashes but not quote marks. -first_word() -{ - read first rest - echo "$first" -} - -#------------------------------------------------------------- -# map a binary to a .desktop file -binary_to_desktop_file() -{ - search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" - binary="`which "$1"`" - binary="`readlink -f "$binary"`" - base="`basename "$binary"`" - IFS=: - for dir in $search; do - unset IFS - [ "$dir" ] || continue - [ -d "$dir/applications" ] || [ -d "$dir/applnk" ] || continue - for file in "$dir"/applications/*.desktop "$dir"/applications/*/*.desktop "$dir"/applnk/*.desktop "$dir"/applnk/*/*.desktop; do - [ -r "$file" ] || continue - # Check to make sure it's worth the processing. - grep -q "^Exec.*$base" "$file" || continue - # Make sure it's a visible desktop file (e.g. not "preferred-web-browser.desktop"). - grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue - command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`" - command="`which "$command"`" - if [ x"`readlink -f "$command"`" = x"$binary" ]; then - # Fix any double slashes that got added path composition - echo "$file" | sed -e 's,//*,/,g' - return - fi - done - done -} - -#------------------------------------------------------------- -# map a .desktop file to a binary -## FIXME: handle vendor dir case -desktop_file_to_binary() -{ - search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" - desktop="`basename "$1"`" - IFS=: - for dir in $search; do - unset IFS - [ "$dir" ] && [ -d "$dir/applications" ] || continue - file="$dir/applications/$desktop" - [ -r "$file" ] || continue - # Remove any arguments (%F, %f, %U, %u, etc.). - command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`" - command="`which "$command"`" - readlink -f "$command" - return - done -} - -#------------------------------------------------------------- -# Exit script on successfully completing the desired operation - -exit_success() -{ - if [ $# -gt 0 ]; then - echo "$@" - echo - fi - - exit 0 -} - - -#----------------------------------------- -# Exit script on malformed arguments, not enough arguments -# or missing required option. -# prints usage information - -exit_failure_syntax() -{ - if [ $# -gt 0 ]; then - echo "xdg-open: $@" >&2 - echo "Try 'xdg-open --help' for more information." >&2 - else - usage - echo "Use 'man xdg-open' or 'xdg-open --manual' for additional info." - fi - - exit 1 -} - -#------------------------------------------------------------- -# Exit script on missing file specified on command line - -exit_failure_file_missing() -{ - if [ $# -gt 0 ]; then - echo "xdg-open: $@" >&2 - fi - - exit 2 -} - -#------------------------------------------------------------- -# Exit script on failure to locate necessary tool applications - -exit_failure_operation_impossible() -{ - if [ $# -gt 0 ]; then - echo "xdg-open: $@" >&2 - fi - - exit 3 -} - -#------------------------------------------------------------- -# Exit script on failure returned by a tool application - -exit_failure_operation_failed() -{ - if [ $# -gt 0 ]; then - echo "xdg-open: $@" >&2 - fi - - exit 4 -} - -#------------------------------------------------------------ -# Exit script on insufficient permission to read a specified file - -exit_failure_file_permission_read() -{ - if [ $# -gt 0 ]; then - echo "xdg-open: $@" >&2 - fi - - exit 5 -} - -#------------------------------------------------------------ -# Exit script on insufficient permission to write a specified file - -exit_failure_file_permission_write() -{ - if [ $# -gt 0 ]; then - echo "xdg-open: $@" >&2 - fi - - exit 6 -} - -check_input_file() -{ - if [ ! -e "$1" ]; then - exit_failure_file_missing "file '$1' does not exist" - fi - if [ ! -r "$1" ]; then - exit_failure_file_permission_read "no permission to read file '$1'" - fi -} - -check_vendor_prefix() -{ - file_label="$2" - [ -n "$file_label" ] || file_label="filename" - file=`basename "$1"` - case "$file" in - [a-zA-Z]*-*) - return - ;; - esac - - echo "xdg-open: $file_label '$file' does not have a proper vendor prefix" >&2 - echo 'A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated' >&2 - echo 'with a dash ("-"). An example '"$file_label"' is '"'example-$file'" >&2 - echo "Use --novendor to override or 'xdg-open --manual' for additional info." >&2 - exit 1 -} - -check_output_file() -{ - # if the file exists, check if it is writeable - # if it does not exists, check if we are allowed to write on the directory - if [ -e "$1" ]; then - if [ ! -w "$1" ]; then - exit_failure_file_permission_write "no permission to write to file '$1'" - fi - else - DIR=`dirname "$1"` - if [ ! -w "$DIR" ] || [ ! -x "$DIR" ]; then - exit_failure_file_permission_write "no permission to create file '$1'" - fi - fi -} - -#---------------------------------------- -# Checks for shared commands, e.g. --help - -check_common_commands() -{ - while [ $# -gt 0 ] ; do - parm="$1" - shift - - case "$parm" in - --help) - usage - echo "Use 'man xdg-open' or 'xdg-open --manual' for additional info." - exit_success - ;; - - --manual) - manualpage - exit_success - ;; - - --version) - echo "xdg-open 1.1.0 rc1" - exit_success - ;; - esac - done -} - -check_common_commands "$@" - -[ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && unset XDG_UTILS_DEBUG_LEVEL; -if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then - # Be silent - xdg_redirect_output=" > /dev/null 2> /dev/null" -else - # All output to stderr - xdg_redirect_output=" >&2" -fi - -#-------------------------------------- -# Checks for known desktop environments -# set variable DE to the desktop environments name, lowercase - -detectDE() -{ - # see https://bugs.freedesktop.org/show_bug.cgi?id=34164 - unset GREP_OPTIONS - - if [ -n "${XDG_CURRENT_DESKTOP}" ]; then - case "${XDG_CURRENT_DESKTOP}" in - GNOME) - DE=gnome; - ;; - KDE) - DE=kde; - ;; - LXDE) - DE=lxde; - ;; - XFCE) - DE=xfce - esac - fi - - if [ x"$DE" = x"" ]; then - # classic fallbacks - if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; - elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; - elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate; - elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome; - elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce; - elif xprop -root 2> /dev/null | grep -i '^xfce_desktop_window' >/dev/null 2>&1; then DE=xfce - fi - fi - - if [ x"$DE" = x"" ]; then - # fallback to checking $DESKTOP_SESSION - case "$DESKTOP_SESSION" in - gnome) - DE=gnome; - ;; - LXDE|Lubuntu) - DE=lxde; - ;; - xfce|xfce4|'Xfce Session') - DE=xfce; - ;; - esac - fi - - if [ x"$DE" = x"" ]; then - # fallback to uname output for other platforms - case "$(uname 2>/dev/null)" in - Darwin) - DE=darwin; - ;; - esac - fi - - if [ x"$DE" = x"gnome" ]; then - # gnome-default-applications-properties is only available in GNOME 2.x - # but not in GNOME 3.x - which gnome-default-applications-properties > /dev/null 2>&1 || DE="gnome3" - fi -} - -#---------------------------------------------------------------------------- -# kfmclient exec/openURL can give bogus exit value in KDE <= 3.5.4 -# It also always returns 1 in KDE 3.4 and earlier -# Simply return 0 in such case - -kfmclient_fix_exit_code() -{ - version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'` - major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'` - minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'` - release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'` - test "$major" -gt 3 && return $1 - test "$minor" -gt 5 && return $1 - test "$release" -gt 4 && return $1 - return 0 -} - -# This handles backslashes but not quote marks. -first_word() -{ - read first rest - echo "$first" -} - -last_word() -{ - read first rest - echo "$rest" -} - -open_darwin() -{ - open "$1" - - if [ $? -eq 0 ]; then - exit_success - else - exit_failure_operation_failed - fi -} - -open_kde() -{ - if kde-open -v 2>/dev/null 1>&2; then - kde-open "$1" - else - if [ x"$KDE_SESSION_VERSION" = x"4" ]; then - kfmclient openURL "$1" - else - kfmclient exec "$1" - kfmclient_fix_exit_code $? - fi - fi - - if [ $? -eq 0 ]; then - exit_success - else - exit_failure_operation_failed - fi -} - -open_gnome() -{ - if gvfs-open --help 2>/dev/null 1>&2; then - gvfs-open "$1" - else - gnome-open "$1" - fi - - if [ $? -eq 0 ]; then - exit_success - else - exit_failure_operation_failed - fi -} - -open_mate() -{ - if gvfs-open --help 2>/dev/null 1>&2; then - gvfs-open "$1" - else - mate-open "$1" - fi - - if [ $? -eq 0 ]; then - exit_success - else - exit_failure_operation_failed - fi -} - -open_xfce() -{ - exo-open "$1" - - if [ $? -eq 0 ]; then - exit_success - else - exit_failure_operation_failed - fi -} - -#----------------------------------------- -# Recursively search .desktop file - -search_desktop_file() -{ - local default="$1" - local dir="$2" - local arg="$3" - - local file="" - # look for both vendor-app.desktop, vendor/app.desktop - if [ -r "$dir/$default" ]; then - file="$dir/$default" - elif [ -r "$dir/`echo $default | sed -e 's|-|/|'`" ]; then - file="$dir/`echo $default | sed -e 's|-|/|'`" - fi - - if [ -r "$file" ] ; then - command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`" - command_exec=`which $command 2>/dev/null` - arguments="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | last_word`" - arg_one="`echo $arg | sed 's/&/\\\\&/g'`" - arguments_exec="`echo $arguments | sed -e 's*%[fFuU]*"'"$arg_one"'"*g'`" - - if [ -x "$command_exec" ] ; then - if echo $arguments | grep -iq '%[fFuU]' ; then - echo START $command_exec $arguments_exec - eval $command_exec $arguments_exec - else - echo START $command_exec $arguments_exec "$arg" - eval $command_exec $arguments_exec "$arg" - fi - - if [ $? -eq 0 ]; then - exit_success - fi - fi - fi - - for d in $dir/*/; do - [ -d "$d" ] && search_desktop_file "$default" "$d" "$arg" - done -} - - -open_generic_xdg_mime() -{ - filetype="$2" - default=`xdg-mime query default "$filetype"` - if [ -n "$default" ] ; then - xdg_user_dir="$XDG_DATA_HOME" - [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share" - - xdg_system_dirs="$XDG_DATA_DIRS" - [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ - -DEBUG 3 "$xdg_user_dir:$xdg_system_dirs" - for x in `echo "$xdg_user_dir:$xdg_system_dirs" | sed 's/:/ /g'`; do - search_desktop_file "$default" "$x/applications/" "$1" - done - fi -} - -open_generic_xdg_file_mime() -{ - filetype=`xdg-mime query filetype "$1" | sed "s/;.*//"` - open_generic_xdg_mime "$1" "$filetype" -} - -open_generic_xdg_x_scheme_handler() -{ - scheme="`echo $1 | sed -n 's/\(^[[:alnum:]+\.-]*\):.*$/\1/p'`" - if [ -n $scheme ]; then - filetype="x-scheme-handler/$scheme" - open_generic_xdg_mime "$1" "$filetype" - fi -} - -open_generic() -{ - # Paths or file:// URLs - if (echo "$1" | grep -q '^file://' || - ! echo "$1" | egrep -q '^[[:alpha:]+\.\-]+:'); then - - local file="$1" - - # Decode URLs - if echo "$file" | grep -q '^file:///'; then - file=${file#file://} - file="$(printf "$(echo "$file" | sed -e 's@%\([a-f0-9A-F]\{2\}\)@\\x\1@g')")" - fi - check_input_file "$file" - - open_generic_xdg_file_mime "$file" - - if [ -f /etc/debian_version ] && - which run-mailcap 2>/dev/null 1>&2; then - run-mailcap --action=view "$file" - if [ $? -eq 0 ]; then - exit_success - fi - fi - - if mimeopen -v 2>/dev/null 1>&2; then - mimeopen -L -n "$file" - if [ $? -eq 0 ]; then - exit_success - fi - fi - fi - - open_generic_xdg_x_scheme_handler "$1" - - IFS=":" - for browser in $BROWSER; do - if [ x"$browser" != x"" ]; then - - browser_with_arg=`printf "$browser" "$1" 2>/dev/null` - if [ $? -ne 0 ]; then - browser_with_arg=$browser; - fi - - if [ x"$browser_with_arg" = x"$browser" ]; then - eval '$browser $1'$xdg_redirect_output; - else eval '$browser_with_arg'$xdg_redirect_output; - fi - - if [ $? -eq 0 ]; then - exit_success; - fi - fi - done - - exit_failure_operation_impossible "no method available for opening '$1'" -} - -open_lxde() -{ - # pcmanfm only knows how to handle file:// urls and filepaths, it seems. - if (echo "$1" | grep -q '^file://' || - ! echo "$1" | egrep -q '^[[:alpha:]+\.\-]+:') - then - local file="$(echo "$1" | sed 's%^file://%%')" - - # handle relative paths - if ! echo "$file" | grep -q '^/'; then - file="$(pwd)/$file" - fi - - pcmanfm "$file" - - else - open_generic "$1" - fi - - if [ $? -eq 0 ]; then - exit_success - else - exit_failure_operation_failed - fi -} - -[ x"$1" != x"" ] || exit_failure_syntax - -url= -while [ $# -gt 0 ] ; do - parm="$1" - shift - - case "$parm" in - -*) - exit_failure_syntax "unexpected option '$parm'" - ;; - - *) - if [ -n "$url" ] ; then - exit_failure_syntax "unexpected argument '$parm'" - fi - url="$parm" - ;; - esac -done - -if [ -z "${url}" ] ; then - exit_failure_syntax "file or URL argument missing" -fi - -detectDE - -if [ x"$DE" = x"" ]; then - DE=generic -fi - -DEBUG 2 "Selected DE $DE" - -# if BROWSER variable is not set, check some well known browsers instead -if [ x"$BROWSER" = x"" ]; then - BROWSER=links2:elinks:links:lynx:w3m - if [ -n "$DISPLAY" ]; then - BROWSER=x-www-browser:firefox:seamonkey:mozilla:epiphany:konqueror:chromium-browser:google-chrome:$BROWSER - fi -fi - -case "$DE" in - kde) - open_kde "$url" - ;; - - gnome*) - open_gnome "$url" - ;; - - mate) - open_mate "$url" - ;; - - xfce) - open_xfce "$url" - ;; - - lxde) - open_lxde "$url" - ;; - - generic) - open_generic "$url" - ;; - - *) - exit_failure_operation_impossible "no method available for opening '$url'" - ;; -esac diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/index.js deleted file mode 100644 index 33066166..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/index.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; -var os = require('os'); - -function homedir() { - var env = process.env; - var home = env.HOME; - var user = env.LOGNAME || env.USER || env.LNAME || env.USERNAME; - - if (process.platform === 'win32') { - return env.USERPROFILE || env.HOMEDRIVE + env.HOMEPATH || home || null; - } - - if (process.platform === 'darwin') { - return home || (user ? '/Users/' + user : null); - } - - if (process.platform === 'linux') { - return home || (process.getuid() === 0 ? '/root' : (user ? '/home/' + user : null)); - } - - return home || null; -} - -module.exports = typeof os.homedir === 'function' ? os.homedir : homedir; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/package.json deleted file mode 100644 index 7ee87c35..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "os-homedir", - "version": "1.0.2", - "description": "Node.js 4 `os.homedir()` ponyfill", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/os-homedir.git" - }, - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "builtin", - "core", - "ponyfill", - "polyfill", - "shim", - "os", - "homedir", - "home", - "dir", - "directory", - "folder", - "user", - "path" - ], - "devDependencies": { - "ava": "*", - "path-exists": "^2.0.0", - "xo": "^0.16.0" - }, - "gitHead": "b1b0ae70a5965fef7005ff6509a5dd1a78c95e36", - "bugs": { - "url": "https://github.com/sindresorhus/os-homedir/issues" - }, - "homepage": "https://github.com/sindresorhus/os-homedir#readme", - "_id": "os-homedir@1.0.2", - "_shasum": "ffbc4988336e0e833de0c168c7ef152121aa7fb3", - "_from": "os-homedir@>=1.0.1 <1.1.0", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.6.0", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "ffbc4988336e0e833de0c168c7ef152121aa7fb3", - "tarball": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" - }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/os-homedir-1.0.2.tgz_1475211519628_0.7873868853785098" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/readme.md deleted file mode 100644 index 856ae615..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/os-homedir/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# os-homedir [![Build Status](https://travis-ci.org/sindresorhus/os-homedir.svg?branch=master)](https://travis-ci.org/sindresorhus/os-homedir) - -> Node.js 4 [`os.homedir()`](https://nodejs.org/api/os.html#os_os_homedir) [ponyfill](https://ponyfill.com) - - -## Install - -``` -$ npm install --save os-homedir -``` - - -## Usage - -```js -const osHomedir = require('os-homedir'); - -console.log(osHomedir()); -//=> '/Users/sindresorhus' -``` - - -## Related - -- [user-home](https://github.com/sindresorhus/user-home) - Same as this module but caches the result -- [home-or-tmp](https://github.com/sindresorhus/home-or-tmp) - Get the user home directory with fallback to the system temp directory - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/LICENSE deleted file mode 100644 index d8ebfcf1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2011-2014 Jared Hanson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/README.md deleted file mode 100644 index 7ab1b665..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# passport-local - -[![Build](https://travis-ci.org/jaredhanson/passport-local.png)](https://travis-ci.org/jaredhanson/passport-local) -[![Coverage](https://coveralls.io/repos/jaredhanson/passport-local/badge.png)](https://coveralls.io/r/jaredhanson/passport-local) -[![Quality](https://codeclimate.com/github/jaredhanson/passport-local.png)](https://codeclimate.com/github/jaredhanson/passport-local) -[![Dependencies](https://david-dm.org/jaredhanson/passport-local.png)](https://david-dm.org/jaredhanson/passport-local) -[![Tips](http://img.shields.io/gittip/jaredhanson.png)](https://www.gittip.com/jaredhanson/) - - -[Passport](http://passportjs.org/) strategy for authenticating with a username -and password. - -This module lets you authenticate using a username and password in your Node.js -applications. By plugging into Passport, local authentication can be easily and -unobtrusively integrated into any application or framework that supports -[Connect](http://www.senchalabs.org/connect/)-style middleware, including -[Express](http://expressjs.com/). - -## Install - - $ npm install passport-local - -## Usage - -#### Configure Strategy - -The local authentication strategy authenticates users using a username and -password. The strategy requires a `verify` callback, which accepts these -credentials and calls `done` providing a user. - - passport.use(new LocalStrategy( - function(username, password, done) { - User.findOne({ username: username }, function (err, user) { - if (err) { return done(err); } - if (!user) { return done(null, false); } - if (!user.verifyPassword(password)) { return done(null, false); } - return done(null, user); - }); - } - )); - -#### Authenticate Requests - -Use `passport.authenticate()`, specifying the `'local'` strategy, to -authenticate requests. - -For example, as route middleware in an [Express](http://expressjs.com/) -application: - - app.post('/login', - passport.authenticate('local', { failureRedirect: '/login' }), - function(req, res) { - res.redirect('/'); - }); - -## Examples - -For complete, working examples, refer to the multiple [examples](https://github.com/jaredhanson/passport-local/tree/master/examples) included. - -## Tests - - $ npm install - $ npm test - -## Credits - - - [Jared Hanson](http://github.com/jaredhanson) - -## License - -[The MIT License](http://opensource.org/licenses/MIT) - -Copyright (c) 2011-2014 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/lib/index.js deleted file mode 100644 index a6fdfa74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/lib/index.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Module dependencies. - */ -var Strategy = require('./strategy'); - - -/** - * Expose `Strategy` directly from package. - */ -exports = module.exports = Strategy; - -/** - * Export constructors. - */ -exports.Strategy = Strategy; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/lib/strategy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/lib/strategy.js deleted file mode 100644 index e54e92a8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/lib/strategy.js +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Module dependencies. - */ -var passport = require('passport-strategy') - , util = require('util') - , lookup = require('./utils').lookup; - - -/** - * `Strategy` constructor. - * - * The local authentication strategy authenticates requests based on the - * credentials submitted through an HTML-based login form. - * - * Applications must supply a `verify` callback which accepts `username` and - * `password` credentials, and then calls the `done` callback supplying a - * `user`, which should be set to `false` if the credentials are not valid. - * If an exception occured, `err` should be set. - * - * Optionally, `options` can be used to change the fields in which the - * credentials are found. - * - * Options: - * - `usernameField` field name where the username is found, defaults to _username_ - * - `passwordField` field name where the password is found, defaults to _password_ - * - `passReqToCallback` when `true`, `req` is the first argument to the verify callback (default: `false`) - * - * Examples: - * - * passport.use(new LocalStrategy( - * function(username, password, done) { - * User.findOne({ username: username, password: password }, function (err, user) { - * done(err, user); - * }); - * } - * )); - * - * @param {Object} options - * @param {Function} verify - * @api public - */ -function Strategy(options, verify) { - if (typeof options == 'function') { - verify = options; - options = {}; - } - if (!verify) { throw new TypeError('LocalStrategy requires a verify callback'); } - - this._usernameField = options.usernameField || 'username'; - this._passwordField = options.passwordField || 'password'; - - passport.Strategy.call(this); - this.name = 'local'; - this._verify = verify; - this._passReqToCallback = options.passReqToCallback; -} - -/** - * Inherit from `passport.Strategy`. - */ -util.inherits(Strategy, passport.Strategy); - -/** - * Authenticate request based on the contents of a form submission. - * - * @param {Object} req - * @api protected - */ -Strategy.prototype.authenticate = function(req, options) { - options = options || {}; - var username = lookup(req.body, this._usernameField) || lookup(req.query, this._usernameField); - var password = lookup(req.body, this._passwordField) || lookup(req.query, this._passwordField); - - if (!username || !password) { - return this.fail({ message: options.badRequestMessage || 'Missing credentials' }, 400); - } - - var self = this; - - function verified(err, user, info) { - if (err) { return self.error(err); } - if (!user) { return self.fail(info); } - self.success(user, info); - } - - try { - if (self._passReqToCallback) { - this._verify(req, username, password, verified); - } else { - this._verify(username, password, verified); - } - } catch (ex) { - return self.error(ex); - } -}; - - -/** - * Expose `Strategy`. - */ -module.exports = Strategy; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/lib/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/lib/utils.js deleted file mode 100644 index 38f10a49..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/lib/utils.js +++ /dev/null @@ -1,11 +0,0 @@ -exports.lookup = function(obj, field) { - if (!obj) { return null; } - var chain = field.split(']').join('').split('['); - for (var i = 0, len = chain.length; i < len; i++) { - var prop = obj[chain[i]]; - if (typeof(prop) === 'undefined') { return null; } - if (typeof(prop) !== 'object') { return prop; } - obj = prop; - } - return null; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/.jshintrc deleted file mode 100644 index a07354b1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/.jshintrc +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node": true, - - "bitwise": true, - "camelcase": true, - "curly": true, - "forin": true, - "immed": true, - "latedef": true, - "newcap": true, - "noarg": true, - "noempty": true, - "nonew": true, - "quotmark": "single", - "undef": true, - "unused": true, - "trailing": true, - - "laxcomma": true -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/.travis.yml deleted file mode 100644 index 45f86244..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: "node_js" -node_js: - - "0.4" - - "0.6" - - "0.8" - - "0.10" - -before_install: - - "npm install istanbul -g" - - "npm install coveralls -g" - -script: "make ci-travis" - -after_success: - - "make submit-coverage-to-coveralls" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/LICENSE deleted file mode 100644 index ec885b56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2011-2013 Jared Hanson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/README.md deleted file mode 100644 index 71de07f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# passport-strategy - -[![Build](https://travis-ci.org/jaredhanson/passport-strategy.png)](http://travis-ci.org/jaredhanson/passport-strategy) -[![Coverage](https://coveralls.io/repos/jaredhanson/passport-strategy/badge.png)](https://coveralls.io/r/jaredhanson/passport-strategy) -[![Dependencies](https://david-dm.org/jaredhanson/passport-strategy.png)](http://david-dm.org/jaredhanson/passport-strategy) - - -An abstract class implementing [Passport](http://passportjs.org/)'s strategy -API. - -## Install - - $ npm install passport-strategy - -## Usage - -This module exports an abstract `Strategy` class that is intended to be -subclassed when implementing concrete authentication strategies. Once -implemented, such strategies can be used by applications that utilize Passport -middleware for authentication. - -#### Subclass Strategy - -Create a new `CustomStrategy` constructor which inherits from `Strategy`: - -```javascript -var util = require('util') - , Strategy = require('passport-strategy'); - -function CustomStrategy(...) { - Strategy.call(this); -} - -util.inherits(CustomStrategy, Strategy); -``` - -#### Implement Authentication - -Implement `autheticate()`, performing the necessary operations required by the -authentication scheme or protocol being implemented. - -```javascript -CustomStrategy.prototype.authenticate = function(req, options) { - // TODO: authenticate request -} -``` - -## Tests - - $ npm install - $ npm test - -## Credits - - - [Jared Hanson](http://github.com/jaredhanson) - -## License - -[The MIT License](http://opensource.org/licenses/MIT) - -Copyright (c) 2011-2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/lib/index.js deleted file mode 100644 index a6fdfa74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/lib/index.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Module dependencies. - */ -var Strategy = require('./strategy'); - - -/** - * Expose `Strategy` directly from package. - */ -exports = module.exports = Strategy; - -/** - * Export constructors. - */ -exports.Strategy = Strategy; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/lib/strategy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/lib/strategy.js deleted file mode 100644 index 5a7eb28b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/lib/strategy.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Creates an instance of `Strategy`. - * - * @constructor - * @api public - */ -function Strategy() { -} - -/** - * Authenticate request. - * - * This function must be overridden by subclasses. In abstract form, it always - * throws an exception. - * - * @param {Object} req The request to authenticate. - * @param {Object} [options] Strategy-specific options. - * @api public - */ -Strategy.prototype.authenticate = function(req, options) { - throw new Error('Strategy#authenticate must be overridden by subclass'); -}; - - -/** - * Expose `Strategy`. - */ -module.exports = Strategy; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/package.json deleted file mode 100644 index 05b97087..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/node_modules/passport-strategy/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "passport-strategy", - "version": "1.0.0", - "description": "An abstract class implementing Passport's strategy API.", - "keywords": [ - "passport", - "strategy" - ], - "repository": { - "type": "git", - "url": "git://github.com/jaredhanson/passport-strategy.git" - }, - "bugs": { - "url": "http://github.com/jaredhanson/passport-strategy/issues" - }, - "author": { - "name": "Jared Hanson", - "email": "jaredhanson@gmail.com", - "url": "http://www.jaredhanson.net/" - }, - "licenses": [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/MIT" - } - ], - "main": "./lib", - "dependencies": {}, - "devDependencies": { - "mocha": "1.x.x", - "chai": "1.x.x" - }, - "engines": { - "node": ">= 0.4.0" - }, - "scripts": { - "test": "mocha --reporter spec --require test/bootstrap/node test/*.test.js" - }, - "testling": { - "browsers": [ - "chrome/latest" - ], - "harness": "mocha", - "files": [ - "test/bootstrap/testling.js", - "test/*.test.js" - ] - }, - "readme": "# passport-strategy\n\n[![Build](https://travis-ci.org/jaredhanson/passport-strategy.png)](http://travis-ci.org/jaredhanson/passport-strategy)\n[![Coverage](https://coveralls.io/repos/jaredhanson/passport-strategy/badge.png)](https://coveralls.io/r/jaredhanson/passport-strategy)\n[![Dependencies](https://david-dm.org/jaredhanson/passport-strategy.png)](http://david-dm.org/jaredhanson/passport-strategy)\n\n\nAn abstract class implementing [Passport](http://passportjs.org/)'s strategy\nAPI.\n\n## Install\n\n $ npm install passport-strategy\n\n## Usage\n\nThis module exports an abstract `Strategy` class that is intended to be\nsubclassed when implementing concrete authentication strategies. Once\nimplemented, such strategies can be used by applications that utilize Passport\nmiddleware for authentication.\n\n#### Subclass Strategy\n\nCreate a new `CustomStrategy` constructor which inherits from `Strategy`:\n\n```javascript\nvar util = require('util')\n , Strategy = require('passport-strategy');\n\nfunction CustomStrategy(...) {\n Strategy.call(this);\n}\n\nutil.inherits(CustomStrategy, Strategy);\n```\n\n#### Implement Authentication\n\nImplement `autheticate()`, performing the necessary operations required by the\nauthentication scheme or protocol being implemented.\n\n```javascript\nCustomStrategy.prototype.authenticate = function(req, options) {\n // TODO: authenticate request\n}\n```\n\n## Tests\n\n $ npm install\n $ npm test\n\n## Credits\n\n - [Jared Hanson](http://github.com/jaredhanson)\n\n## License\n\n[The MIT License](http://opensource.org/licenses/MIT)\n\nCopyright (c) 2011-2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)>\n", - "readmeFilename": "README.md", - "_id": "passport-strategy@1.0.0", - "dist": { - "shasum": "b5539aa8fc225a3d1ad179476ddf236b440f52e4", - "tarball": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz" - }, - "_from": "passport-strategy@>=1.0.0 <2.0.0", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - }, - "maintainers": [ - { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - } - ], - "directories": {}, - "_shasum": "b5539aa8fc225a3d1ad179476ddf236b440f52e4", - "_resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", - "homepage": "https://github.com/jaredhanson/passport-strategy#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/package.json deleted file mode 100644 index 5ab016aa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport-local/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "passport-local", - "version": "1.0.0", - "description": "Local username and password authentication strategy for Passport.", - "keywords": [ - "passport", - "local", - "auth", - "authn", - "authentication", - "username", - "password" - ], - "author": { - "name": "Jared Hanson", - "email": "jaredhanson@gmail.com", - "url": "http://www.jaredhanson.net/" - }, - "repository": { - "type": "git", - "url": "git://github.com/jaredhanson/passport-local.git" - }, - "bugs": { - "url": "http://github.com/jaredhanson/passport-local/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/MIT" - } - ], - "main": "./lib", - "dependencies": { - "passport-strategy": "1.x.x" - }, - "devDependencies": { - "mocha": "1.x.x", - "chai": "1.x.x", - "chai-passport-strategy": "0.1.x" - }, - "engines": { - "node": ">= 0.4.0" - }, - "scripts": { - "test": "mocha --reporter spec --require test/bootstrap/node test/*.test.js" - }, - "_id": "passport-local@1.0.0", - "dist": { - "shasum": "1fe63268c92e75606626437e3b906662c15ba6ee", - "tarball": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz" - }, - "_from": "passport-local@>=1.0.0 <1.1.0", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - }, - "maintainers": [ - { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - } - ], - "directories": {}, - "_shasum": "1fe63268c92e75606626437e3b906662c15ba6ee", - "_resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/jaredhanson/passport-local#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/LICENSE deleted file mode 100644 index b28e9016..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2011-2015 Jared Hanson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/authenticator.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/authenticator.js deleted file mode 100644 index 43b870bc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/authenticator.js +++ /dev/null @@ -1,461 +0,0 @@ -/** - * Module dependencies. - */ -var SessionStrategy = require('./strategies/session'); - - -/** - * `Authenticator` constructor. - * - * @api public - */ -function Authenticator() { - this._key = 'passport'; - this._strategies = {}; - this._serializers = []; - this._deserializers = []; - this._infoTransformers = []; - this._framework = null; - this._userProperty = 'user'; - - this.init(); -} - -/** - * Initialize authenticator. - * - * @api protected - */ -Authenticator.prototype.init = function() { - this.framework(require('./framework/connect')()); - this.use(new SessionStrategy()); -}; - -/** - * Utilize the given `strategy` with optional `name`, overridding the strategy's - * default name. - * - * Examples: - * - * passport.use(new TwitterStrategy(...)); - * - * passport.use('api', new http.BasicStrategy(...)); - * - * @param {String|Strategy} name - * @param {Strategy} strategy - * @return {Authenticator} for chaining - * @api public - */ -Authenticator.prototype.use = function(name, strategy) { - if (!strategy) { - strategy = name; - name = strategy.name; - } - if (!name) { throw new Error('Authentication strategies must have a name'); } - - this._strategies[name] = strategy; - return this; -}; - -/** - * Un-utilize the `strategy` with given `name`. - * - * In typical applications, the necessary authentication strategies are static, - * configured once and always available. As such, there is often no need to - * invoke this function. - * - * However, in certain situations, applications may need dynamically configure - * and de-configure authentication strategies. The `use()`/`unuse()` - * combination satisfies these scenarios. - * - * Examples: - * - * passport.unuse('legacy-api'); - * - * @param {String} name - * @return {Authenticator} for chaining - * @api public - */ -Authenticator.prototype.unuse = function(name) { - delete this._strategies[name]; - return this; -}; - -/** - * Setup Passport to be used under framework. - * - * By default, Passport exposes middleware that operate using Connect-style - * middleware using a `fn(req, res, next)` signature. Other popular frameworks - * have different expectations, and this function allows Passport to be adapted - * to operate within such environments. - * - * If you are using a Connect-compatible framework, including Express, there is - * no need to invoke this function. - * - * Examples: - * - * passport.framework(require('hapi-passport')()); - * - * @param {Object} name - * @return {Authenticator} for chaining - * @api public - */ -Authenticator.prototype.framework = function(fw) { - this._framework = fw; - return this; -}; - -/** - * Passport's primary initialization middleware. - * - * This middleware must be in use by the Connect/Express application for - * Passport to operate. - * - * Options: - * - `userProperty` Property to set on `req` upon login, defaults to _user_ - * - * Examples: - * - * app.use(passport.initialize()); - * - * app.use(passport.initialize({ userProperty: 'currentUser' })); - * - * @param {Object} options - * @return {Function} middleware - * @api public - */ -Authenticator.prototype.initialize = function(options) { - options = options || {}; - this._userProperty = options.userProperty || 'user'; - - return this._framework.initialize(this, options); -}; - -/** - * Middleware that will authenticate a request using the given `strategy` name, - * with optional `options` and `callback`. - * - * Examples: - * - * passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' })(req, res); - * - * passport.authenticate('local', function(err, user) { - * if (!user) { return res.redirect('/login'); } - * res.end('Authenticated!'); - * })(req, res); - * - * passport.authenticate('basic', { session: false })(req, res); - * - * app.get('/auth/twitter', passport.authenticate('twitter'), function(req, res) { - * // request will be redirected to Twitter - * }); - * app.get('/auth/twitter/callback', passport.authenticate('twitter'), function(req, res) { - * res.json(req.user); - * }); - * - * @param {String} strategy - * @param {Object} options - * @param {Function} callback - * @return {Function} middleware - * @api public - */ -Authenticator.prototype.authenticate = function(strategy, options, callback) { - return this._framework.authenticate(this, strategy, options, callback); -}; - -/** - * Middleware that will authorize a third-party account using the given - * `strategy` name, with optional `options`. - * - * If authorization is successful, the result provided by the strategy's verify - * callback will be assigned to `req.account`. The existing login session and - * `req.user` will be unaffected. - * - * This function is particularly useful when connecting third-party accounts - * to the local account of a user that is currently authenticated. - * - * Examples: - * - * passport.authorize('twitter-authz', { failureRedirect: '/account' }); - * - * @param {String} strategy - * @param {Object} options - * @return {Function} middleware - * @api public - */ -Authenticator.prototype.authorize = function(strategy, options, callback) { - options = options || {}; - options.assignProperty = 'account'; - - var fn = this._framework.authorize || this._framework.authenticate; - return fn(this, strategy, options, callback); -}; - -/** - * Middleware that will restore login state from a session. - * - * Web applications typically use sessions to maintain login state between - * requests. For example, a user will authenticate by entering credentials into - * a form which is submitted to the server. If the credentials are valid, a - * login session is established by setting a cookie containing a session - * identifier in the user's web browser. The web browser will send this cookie - * in subsequent requests to the server, allowing a session to be maintained. - * - * If sessions are being utilized, and a login session has been established, - * this middleware will populate `req.user` with the current user. - * - * Note that sessions are not strictly required for Passport to operate. - * However, as a general rule, most web applications will make use of sessions. - * An exception to this rule would be an API server, which expects each HTTP - * request to provide credentials in an Authorization header. - * - * Examples: - * - * app.use(connect.cookieParser()); - * app.use(connect.session({ secret: 'keyboard cat' })); - * app.use(passport.initialize()); - * app.use(passport.session()); - * - * Options: - * - `pauseStream` Pause the request stream before deserializing the user - * object from the session. Defaults to _false_. Should - * be set to true in cases where middleware consuming the - * request body is configured after passport and the - * deserializeUser method is asynchronous. - * - * @param {Object} options - * @return {Function} middleware - * @api public - */ -Authenticator.prototype.session = function(options) { - return this.authenticate('session', options); -}; - -/** - * Registers a function used to serialize user objects into the session. - * - * Examples: - * - * passport.serializeUser(function(user, done) { - * done(null, user.id); - * }); - * - * @api public - */ -Authenticator.prototype.serializeUser = function(fn, req, done) { - if (typeof fn === 'function') { - return this._serializers.push(fn); - } - - // private implementation that traverses the chain of serializers, attempting - // to serialize a user - var user = fn; - - // For backwards compatibility - if (typeof req === 'function') { - done = req; - req = undefined; - } - - var stack = this._serializers; - (function pass(i, err, obj) { - // serializers use 'pass' as an error to skip processing - if ('pass' === err) { - err = undefined; - } - // an error or serialized object was obtained, done - if (err || obj || obj === 0) { return done(err, obj); } - - var layer = stack[i]; - if (!layer) { - return done(new Error('Failed to serialize user into session')); - } - - - function serialized(e, o) { - pass(i + 1, e, o); - } - - try { - var arity = layer.length; - if (arity == 3) { - layer(req, user, serialized); - } else { - layer(user, serialized); - } - } catch(e) { - return done(e); - } - })(0); -}; - -/** - * Registers a function used to deserialize user objects out of the session. - * - * Examples: - * - * passport.deserializeUser(function(id, done) { - * User.findById(id, function (err, user) { - * done(err, user); - * }); - * }); - * - * @api public - */ -Authenticator.prototype.deserializeUser = function(fn, req, done) { - if (typeof fn === 'function') { - return this._deserializers.push(fn); - } - - // private implementation that traverses the chain of deserializers, - // attempting to deserialize a user - var obj = fn; - - // For backwards compatibility - if (typeof req === 'function') { - done = req; - req = undefined; - } - - var stack = this._deserializers; - (function pass(i, err, user) { - // deserializers use 'pass' as an error to skip processing - if ('pass' === err) { - err = undefined; - } - // an error or deserialized user was obtained, done - if (err || user) { return done(err, user); } - // a valid user existed when establishing the session, but that user has - // since been removed - if (user === null || user === false) { return done(null, false); } - - var layer = stack[i]; - if (!layer) { - return done(new Error('Failed to deserialize user out of session')); - } - - - function deserialized(e, u) { - pass(i + 1, e, u); - } - - try { - var arity = layer.length; - if (arity == 3) { - layer(req, obj, deserialized); - } else { - layer(obj, deserialized); - } - } catch(e) { - return done(e); - } - })(0); -}; - -/** - * Registers a function used to transform auth info. - * - * In some circumstances authorization details are contained in authentication - * credentials or loaded as part of verification. - * - * For example, when using bearer tokens for API authentication, the tokens may - * encode (either directly or indirectly in a database), details such as scope - * of access or the client to which the token was issued. - * - * Such authorization details should be enforced separately from authentication. - * Because Passport deals only with the latter, this is the responsiblity of - * middleware or routes further along the chain. However, it is not optimal to - * decode the same data or execute the same database query later. To avoid - * this, Passport accepts optional `info` along with the authenticated `user` - * in a strategy's `success()` action. This info is set at `req.authInfo`, - * where said later middlware or routes can access it. - * - * Optionally, applications can register transforms to proccess this info, - * which take effect prior to `req.authInfo` being set. This is useful, for - * example, when the info contains a client ID. The transform can load the - * client from the database and include the instance in the transformed info, - * allowing the full set of client properties to be convieniently accessed. - * - * If no transforms are registered, `info` supplied by the strategy will be left - * unmodified. - * - * Examples: - * - * passport.transformAuthInfo(function(info, done) { - * Client.findById(info.clientID, function (err, client) { - * info.client = client; - * done(err, info); - * }); - * }); - * - * @api public - */ -Authenticator.prototype.transformAuthInfo = function(fn, req, done) { - if (typeof fn === 'function') { - return this._infoTransformers.push(fn); - } - - // private implementation that traverses the chain of transformers, - // attempting to transform auth info - var info = fn; - - // For backwards compatibility - if (typeof req === 'function') { - done = req; - req = undefined; - } - - var stack = this._infoTransformers; - (function pass(i, err, tinfo) { - // transformers use 'pass' as an error to skip processing - if ('pass' === err) { - err = undefined; - } - // an error or transformed info was obtained, done - if (err || tinfo) { return done(err, tinfo); } - - var layer = stack[i]; - if (!layer) { - // if no transformers are registered (or they all pass), the default - // behavior is to use the un-transformed info as-is - return done(null, info); - } - - - function transformed(e, t) { - pass(i + 1, e, t); - } - - try { - var arity = layer.length; - if (arity == 1) { - // sync - var t = layer(info); - transformed(null, t); - } else if (arity == 3) { - layer(req, info, transformed); - } else { - layer(info, transformed); - } - } catch(e) { - return done(e); - } - })(0); -}; - -/** - * Return strategy with given `name`. - * - * @param {String} name - * @return {Strategy} - * @api private - */ -Authenticator.prototype._strategy = function(name) { - return this._strategies[name]; -}; - - -/** - * Expose `Authenticator`. - */ -module.exports = Authenticator; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/errors/authenticationerror.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/errors/authenticationerror.js deleted file mode 100644 index 04cbbe5f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/errors/authenticationerror.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * `AuthenticationError` error. - * - * @api private - */ -function AuthenticationError(message, status) { - Error.call(this); - Error.captureStackTrace(this, arguments.callee); - this.name = 'AuthenticationError'; - this.message = message; - this.status = status || 401; -} - -/** - * Inherit from `Error`. - */ -AuthenticationError.prototype.__proto__ = Error.prototype; - - -/** - * Expose `AuthenticationError`. - */ -module.exports = AuthenticationError; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/framework/connect.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/framework/connect.js deleted file mode 100644 index 5c5beb09..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/framework/connect.js +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Module dependencies. - */ -var initialize = require('../middleware/initialize') - , authenticate = require('../middleware/authenticate'); - -/** - * Framework support for Connect/Express. - * - * This module provides support for using Passport with Express. It exposes - * middleware that conform to the `fn(req, res, next)` signature and extends - * Node's built-in HTTP request object with useful authentication-related - * functions. - * - * @return {Object} - * @api protected - */ -exports = module.exports = function() { - - // HTTP extensions. - exports.__monkeypatchNode(); - - return { - initialize: initialize, - authenticate: authenticate - }; -}; - -exports.__monkeypatchNode = function() { - var http = require('http'); - var IncomingMessageExt = require('../http/request'); - - http.IncomingMessage.prototype.login = - http.IncomingMessage.prototype.logIn = IncomingMessageExt.logIn; - http.IncomingMessage.prototype.logout = - http.IncomingMessage.prototype.logOut = IncomingMessageExt.logOut; - http.IncomingMessage.prototype.isAuthenticated = IncomingMessageExt.isAuthenticated; - http.IncomingMessage.prototype.isUnauthenticated = IncomingMessageExt.isUnauthenticated; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/http/request.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/http/request.js deleted file mode 100644 index b6fc99ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/http/request.js +++ /dev/null @@ -1,108 +0,0 @@ -/** - * Module dependencies. - */ -//var http = require('http') -// , req = http.IncomingMessage.prototype; - - -var req = exports = module.exports = {}; - -/** - * Intiate a login session for `user`. - * - * Options: - * - `session` Save login state in session, defaults to _true_ - * - * Examples: - * - * req.logIn(user, { session: false }); - * - * req.logIn(user, function(err) { - * if (err) { throw err; } - * // session saved - * }); - * - * @param {User} user - * @param {Object} options - * @param {Function} done - * @api public - */ -req.login = -req.logIn = function(user, options, done) { - if (typeof options == 'function') { - done = options; - options = {}; - } - options = options || {}; - - var property = 'user'; - if (this._passport && this._passport.instance) { - property = this._passport.instance._userProperty || 'user'; - } - var session = (options.session === undefined) ? true : options.session; - - this[property] = user; - if (session) { - if (!this._passport) { throw new Error('passport.initialize() middleware not in use'); } - if (typeof done != 'function') { throw new Error('req#login requires a callback function'); } - - var self = this; - this._passport.instance.serializeUser(user, this, function(err, obj) { - if (err) { self[property] = null; return done(err); } - if (!self._passport.session) { - self._passport.session = {}; - } - self._passport.session.user = obj; - if (!self.session) { - self.session = {}; - } - self.session[self._passport.instance._key] = self._passport.session; - done(); - }); - } else { - done && done(); - } -}; - -/** - * Terminate an existing login session. - * - * @api public - */ -req.logout = -req.logOut = function() { - var property = 'user'; - if (this._passport && this._passport.instance) { - property = this._passport.instance._userProperty || 'user'; - } - - this[property] = null; - if (this._passport && this._passport.session) { - delete this._passport.session.user; - } -}; - -/** - * Test if request is authenticated. - * - * @return {Boolean} - * @api public - */ -req.isAuthenticated = function() { - var property = 'user'; - if (this._passport && this._passport.instance) { - property = this._passport.instance._userProperty || 'user'; - } - - return (this[property]) ? true : false; -}; - -/** - * Test if request is unauthenticated. - * - * @return {Boolean} - * @api public - */ -req.isUnauthenticated = function() { - return !this.isAuthenticated(); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/index.js deleted file mode 100644 index ab174691..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/index.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Module dependencies. - */ -var Passport = require('./authenticator') - , SessionStrategy = require('./strategies/session'); - - -/** - * Export default singleton. - * - * @api public - */ -exports = module.exports = new Passport(); - -/** - * Expose constructors. - */ -exports.Passport = -exports.Authenticator = Passport; -exports.Strategy = require('passport-strategy'); - -/** - * Expose strategies. - */ -exports.strategies = {}; -exports.strategies.SessionStrategy = SessionStrategy; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/middleware/authenticate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/middleware/authenticate.js deleted file mode 100644 index db0cb18d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/middleware/authenticate.js +++ /dev/null @@ -1,351 +0,0 @@ -/** - * Module dependencies. - */ -var http = require('http') - , IncomingMessageExt = require('../http/request') - , AuthenticationError = require('../errors/authenticationerror'); - - -/** - * Authenticates requests. - * - * Applies the `name`ed strategy (or strategies) to the incoming request, in - * order to authenticate the request. If authentication is successful, the user - * will be logged in and populated at `req.user` and a session will be - * established by default. If authentication fails, an unauthorized response - * will be sent. - * - * Options: - * - `session` Save login state in session, defaults to _true_ - * - `successRedirect` After successful login, redirect to given URL - * - `failureRedirect` After failed login, redirect to given URL - * - `assignProperty` Assign the object provided by the verify callback to given property - * - * An optional `callback` can be supplied to allow the application to overrride - * the default manner in which authentication attempts are handled. The - * callback has the following signature, where `user` will be set to the - * authenticated user on a successful authentication attempt, or `false` - * otherwise. An optional `info` argument will be passed, containing additional - * details provided by the strategy's verify callback. - * - * app.get('/protected', function(req, res, next) { - * passport.authenticate('local', function(err, user, info) { - * if (err) { return next(err) } - * if (!user) { return res.redirect('/signin') } - * res.redirect('/account'); - * })(req, res, next); - * }); - * - * Note that if a callback is supplied, it becomes the application's - * responsibility to log-in the user, establish a session, and otherwise perform - * the desired operations. - * - * Examples: - * - * passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' }); - * - * passport.authenticate('basic', { session: false }); - * - * passport.authenticate('twitter'); - * - * @param {String|Array} name - * @param {Object} options - * @param {Function} callback - * @return {Function} - * @api public - */ -module.exports = function authenticate(passport, name, options, callback) { - if (typeof options == 'function') { - callback = options; - options = {}; - } - options = options || {}; - - var multi = true; - - // Cast `name` to an array, allowing authentication to pass through a chain of - // strategies. The first strategy to succeed, redirect, or error will halt - // the chain. Authentication failures will proceed through each strategy in - // series, ultimately failing if all strategies fail. - // - // This is typically used on API endpoints to allow clients to authenticate - // using their preferred choice of Basic, Digest, token-based schemes, etc. - // It is not feasible to construct a chain of multiple strategies that involve - // redirection (for example both Facebook and Twitter), since the first one to - // redirect will halt the chain. - if (!Array.isArray(name)) { - name = [ name ]; - multi = false; - } - - return function authenticate(req, res, next) { - if (http.IncomingMessage.prototype.logIn - && http.IncomingMessage.prototype.logIn !== IncomingMessageExt.logIn) { - require('../framework/connect').__monkeypatchNode(); - } - - - // accumulator for failures from each strategy in the chain - var failures = []; - - function allFailed() { - if (callback) { - if (!multi) { - return callback(null, false, failures[0].challenge, failures[0].status); - } else { - var challenges = failures.map(function(f) { return f.challenge; }); - var statuses = failures.map(function(f) { return f.status; }); - return callback(null, false, challenges, statuses); - } - } - - // Strategies are ordered by priority. For the purpose of flashing a - // message, the first failure will be displayed. - var failure = failures[0] || {} - , challenge = failure.challenge || {} - , msg; - - if (options.failureFlash) { - var flash = options.failureFlash; - if (typeof flash == 'string') { - flash = { type: 'error', message: flash }; - } - flash.type = flash.type || 'error'; - - var type = flash.type || challenge.type || 'error'; - msg = flash.message || challenge.message || challenge; - if (typeof msg == 'string') { - req.flash(type, msg); - } - } - if (options.failureMessage) { - msg = options.failureMessage; - if (typeof msg == 'boolean') { - msg = challenge.message || challenge; - } - if (typeof msg == 'string') { - req.session.messages = req.session.messages || []; - req.session.messages.push(msg); - } - } - if (options.failureRedirect) { - return res.redirect(options.failureRedirect); - } - - // When failure handling is not delegated to the application, the default - // is to respond with 401 Unauthorized. Note that the WWW-Authenticate - // header will be set according to the strategies in use (see - // actions#fail). If multiple strategies failed, each of their challenges - // will be included in the response. - var rchallenge = [] - , rstatus, status; - - for (var j = 0, len = failures.length; j < len; j++) { - failure = failures[j]; - challenge = failure.challenge; - status = failure.status; - - rstatus = rstatus || status; - if (typeof challenge == 'string') { - rchallenge.push(challenge); - } - } - - res.statusCode = rstatus || 401; - if (res.statusCode == 401 && rchallenge.length) { - res.setHeader('WWW-Authenticate', rchallenge); - } - if (options.failWithError) { - return next(new AuthenticationError(http.STATUS_CODES[res.statusCode], rstatus)); - } - res.end(http.STATUS_CODES[res.statusCode]); - } - - (function attempt(i) { - var layer = name[i]; - // If no more strategies exist in the chain, authentication has failed. - if (!layer) { return allFailed(); } - - // Get the strategy, which will be used as prototype from which to create - // a new instance. Action functions will then be bound to the strategy - // within the context of the HTTP request/response pair. - var prototype = passport._strategy(layer); - if (!prototype) { return next(new Error('Unknown authentication strategy "' + layer + '"')); } - - var strategy = Object.create(prototype); - - - // ----- BEGIN STRATEGY AUGMENTATION ----- - // Augment the new strategy instance with action functions. These action - // functions are bound via closure the the request/response pair. The end - // goal of the strategy is to invoke *one* of these action methods, in - // order to indicate successful or failed authentication, redirect to a - // third-party identity provider, etc. - - /** - * Authenticate `user`, with optional `info`. - * - * Strategies should call this function to successfully authenticate a - * user. `user` should be an object supplied by the application after it - * has been given an opportunity to verify credentials. `info` is an - * optional argument containing additional user information. This is - * useful for third-party authentication strategies to pass profile - * details. - * - * @param {Object} user - * @param {Object} info - * @api public - */ - strategy.success = function(user, info) { - if (callback) { - return callback(null, user, info); - } - - info = info || {}; - var msg; - - if (options.successFlash) { - var flash = options.successFlash; - if (typeof flash == 'string') { - flash = { type: 'success', message: flash }; - } - flash.type = flash.type || 'success'; - - var type = flash.type || info.type || 'success'; - msg = flash.message || info.message || info; - if (typeof msg == 'string') { - req.flash(type, msg); - } - } - if (options.successMessage) { - msg = options.successMessage; - if (typeof msg == 'boolean') { - msg = info.message || info; - } - if (typeof msg == 'string') { - req.session.messages = req.session.messages || []; - req.session.messages.push(msg); - } - } - if (options.assignProperty) { - req[options.assignProperty] = user; - return next(); - } - - req.logIn(user, options, function(err) { - if (err) { return next(err); } - - function complete() { - if (options.successReturnToOrRedirect) { - var url = options.successReturnToOrRedirect; - if (req.session && req.session.returnTo) { - url = req.session.returnTo; - delete req.session.returnTo; - } - return res.redirect(url); - } - if (options.successRedirect) { - return res.redirect(options.successRedirect); - } - next(); - } - - if (options.authInfo !== false) { - passport.transformAuthInfo(info, req, function(err, tinfo) { - if (err) { return next(err); } - req.authInfo = tinfo; - complete(); - }); - } else { - complete(); - } - }); - }; - - /** - * Fail authentication, with optional `challenge` and `status`, defaulting - * to 401. - * - * Strategies should call this function to fail an authentication attempt. - * - * @param {String} challenge - * @param {Number} status - * @api public - */ - strategy.fail = function(challenge, status) { - if (typeof challenge == 'number') { - status = challenge; - challenge = undefined; - } - - // push this failure into the accumulator and attempt authentication - // using the next strategy - failures.push({ challenge: challenge, status: status }); - attempt(i + 1); - }; - - /** - * Redirect to `url` with optional `status`, defaulting to 302. - * - * Strategies should call this function to redirect the user (via their - * user agent) to a third-party website for authentication. - * - * @param {String} url - * @param {Number} status - * @api public - */ - strategy.redirect = function(url, status) { - // NOTE: Do not use `res.redirect` from Express, because it can't decide - // what it wants. - // - // Express 2.x: res.redirect(url, status) - // Express 3.x: res.redirect(status, url) -OR- res.redirect(url, status) - // - as of 3.14.0, deprecated warnings are issued if res.redirect(url, status) - // is used - // Express 4.x: res.redirect(status, url) - // - all versions (as of 4.8.7) continue to accept res.redirect(url, status) - // but issue deprecated versions - - res.statusCode = status || 302; - res.setHeader('Location', url); - res.setHeader('Content-Length', '0'); - res.end(); - }; - - /** - * Pass without making a success or fail decision. - * - * Under most circumstances, Strategies should not need to call this - * function. It exists primarily to allow previous authentication state - * to be restored, for example from an HTTP session. - * - * @api public - */ - strategy.pass = function() { - next(); - }; - - /** - * Internal error while performing authentication. - * - * Strategies should call this function when an internal error occurs - * during the process of performing authentication; for example, if the - * user directory is not available. - * - * @param {Error} err - * @api public - */ - strategy.error = function(err) { - if (callback) { - return callback(err); - } - - next(err); - }; - - // ----- END STRATEGY AUGMENTATION ----- - - strategy.authenticate(req, options); - })(0); // attempt - }; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/middleware/initialize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/middleware/initialize.js deleted file mode 100644 index 53ce3d86..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/middleware/initialize.js +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Passport initialization. - * - * Intializes Passport for incoming requests, allowing authentication strategies - * to be applied. - * - * If sessions are being utilized, applications must set up Passport with - * functions to serialize a user into and out of a session. For example, a - * common pattern is to serialize just the user ID into the session (due to the - * fact that it is desirable to store the minimum amount of data in a session). - * When a subsequent request arrives for the session, the full User object can - * be loaded from the database by ID. - * - * Note that additional middleware is required to persist login state, so we - * must use the `connect.session()` middleware _before_ `passport.initialize()`. - * - * If sessions are being used, this middleware must be in use by the - * Connect/Express application for Passport to operate. If the application is - * entirely stateless (not using sessions), this middleware is not necessary, - * but its use will not have any adverse impact. - * - * Examples: - * - * app.use(connect.cookieParser()); - * app.use(connect.session({ secret: 'keyboard cat' })); - * app.use(passport.initialize()); - * app.use(passport.session()); - * - * passport.serializeUser(function(user, done) { - * done(null, user.id); - * }); - * - * passport.deserializeUser(function(id, done) { - * User.findById(id, function (err, user) { - * done(err, user); - * }); - * }); - * - * @return {Function} - * @api public - */ -module.exports = function initialize(passport) { - - return function initialize(req, res, next) { - req._passport = {}; - req._passport.instance = passport; - - if (req.session && req.session[passport._key]) { - // load data from existing session - req._passport.session = req.session[passport._key]; - } - - next(); - }; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/strategies/session.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/strategies/session.js deleted file mode 100644 index f2db3387..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/lib/strategies/session.js +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Module dependencies. - */ -var pause = require('pause') - , util = require('util') - , Strategy = require('passport-strategy'); - - -/** - * `SessionStrategy` constructor. - * - * @api public - */ -function SessionStrategy() { - Strategy.call(this); - this.name = 'session'; -} - -/** - * Inherit from `Strategy`. - */ -util.inherits(SessionStrategy, Strategy); - -/** - * Authenticate request based on the current session state. - * - * The session authentication strategy uses the session to restore any login - * state across requests. If a login session has been established, `req.user` - * will be populated with the current user. - * - * This strategy is registered automatically by Passport. - * - * @param {Object} req - * @param {Object} options - * @api protected - */ -SessionStrategy.prototype.authenticate = function(req, options) { - if (!req._passport) { return this.error(new Error('passport.initialize() middleware not in use')); } - options = options || {}; - - var self = this, - su; - if (req._passport.session) { - su = req._passport.session.user; - } - - if (su || su === 0) { - // NOTE: Stream pausing is desirable in the case where later middleware is - // listening for events emitted from request. For discussion on the - // matter, refer to: https://github.com/jaredhanson/passport/pull/106 - - var paused = options.pauseStream ? pause(req) : null; - req._passport.instance.deserializeUser(su, req, function(err, user) { - if (err) { return self.error(err); } - if (!user) { - delete req._passport.session.user; - self.pass(); - if (paused) { - paused.resume(); - } - return; - } - var property = req._passport.instance._userProperty || 'user'; - req[property] = user; - self.pass(); - if (paused) { - paused.resume(); - } - }); - } else { - self.pass(); - } -}; - - -/** - * Expose `SessionStrategy`. - */ -module.exports = SessionStrategy; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/.jshintrc deleted file mode 100644 index a07354b1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/.jshintrc +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node": true, - - "bitwise": true, - "camelcase": true, - "curly": true, - "forin": true, - "immed": true, - "latedef": true, - "newcap": true, - "noarg": true, - "noempty": true, - "nonew": true, - "quotmark": "single", - "undef": true, - "unused": true, - "trailing": true, - - "laxcomma": true -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/.travis.yml deleted file mode 100644 index 45f86244..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: "node_js" -node_js: - - "0.4" - - "0.6" - - "0.8" - - "0.10" - -before_install: - - "npm install istanbul -g" - - "npm install coveralls -g" - -script: "make ci-travis" - -after_success: - - "make submit-coverage-to-coveralls" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/LICENSE deleted file mode 100644 index ec885b56..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2011-2013 Jared Hanson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/README.md deleted file mode 100644 index 71de07f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# passport-strategy - -[![Build](https://travis-ci.org/jaredhanson/passport-strategy.png)](http://travis-ci.org/jaredhanson/passport-strategy) -[![Coverage](https://coveralls.io/repos/jaredhanson/passport-strategy/badge.png)](https://coveralls.io/r/jaredhanson/passport-strategy) -[![Dependencies](https://david-dm.org/jaredhanson/passport-strategy.png)](http://david-dm.org/jaredhanson/passport-strategy) - - -An abstract class implementing [Passport](http://passportjs.org/)'s strategy -API. - -## Install - - $ npm install passport-strategy - -## Usage - -This module exports an abstract `Strategy` class that is intended to be -subclassed when implementing concrete authentication strategies. Once -implemented, such strategies can be used by applications that utilize Passport -middleware for authentication. - -#### Subclass Strategy - -Create a new `CustomStrategy` constructor which inherits from `Strategy`: - -```javascript -var util = require('util') - , Strategy = require('passport-strategy'); - -function CustomStrategy(...) { - Strategy.call(this); -} - -util.inherits(CustomStrategy, Strategy); -``` - -#### Implement Authentication - -Implement `autheticate()`, performing the necessary operations required by the -authentication scheme or protocol being implemented. - -```javascript -CustomStrategy.prototype.authenticate = function(req, options) { - // TODO: authenticate request -} -``` - -## Tests - - $ npm install - $ npm test - -## Credits - - - [Jared Hanson](http://github.com/jaredhanson) - -## License - -[The MIT License](http://opensource.org/licenses/MIT) - -Copyright (c) 2011-2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/lib/index.js deleted file mode 100644 index a6fdfa74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/lib/index.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Module dependencies. - */ -var Strategy = require('./strategy'); - - -/** - * Expose `Strategy` directly from package. - */ -exports = module.exports = Strategy; - -/** - * Export constructors. - */ -exports.Strategy = Strategy; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/lib/strategy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/lib/strategy.js deleted file mode 100644 index 5a7eb28b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/lib/strategy.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Creates an instance of `Strategy`. - * - * @constructor - * @api public - */ -function Strategy() { -} - -/** - * Authenticate request. - * - * This function must be overridden by subclasses. In abstract form, it always - * throws an exception. - * - * @param {Object} req The request to authenticate. - * @param {Object} [options] Strategy-specific options. - * @api public - */ -Strategy.prototype.authenticate = function(req, options) { - throw new Error('Strategy#authenticate must be overridden by subclass'); -}; - - -/** - * Expose `Strategy`. - */ -module.exports = Strategy; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/package.json deleted file mode 100644 index 05b97087..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/passport-strategy/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "passport-strategy", - "version": "1.0.0", - "description": "An abstract class implementing Passport's strategy API.", - "keywords": [ - "passport", - "strategy" - ], - "repository": { - "type": "git", - "url": "git://github.com/jaredhanson/passport-strategy.git" - }, - "bugs": { - "url": "http://github.com/jaredhanson/passport-strategy/issues" - }, - "author": { - "name": "Jared Hanson", - "email": "jaredhanson@gmail.com", - "url": "http://www.jaredhanson.net/" - }, - "licenses": [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/MIT" - } - ], - "main": "./lib", - "dependencies": {}, - "devDependencies": { - "mocha": "1.x.x", - "chai": "1.x.x" - }, - "engines": { - "node": ">= 0.4.0" - }, - "scripts": { - "test": "mocha --reporter spec --require test/bootstrap/node test/*.test.js" - }, - "testling": { - "browsers": [ - "chrome/latest" - ], - "harness": "mocha", - "files": [ - "test/bootstrap/testling.js", - "test/*.test.js" - ] - }, - "readme": "# passport-strategy\n\n[![Build](https://travis-ci.org/jaredhanson/passport-strategy.png)](http://travis-ci.org/jaredhanson/passport-strategy)\n[![Coverage](https://coveralls.io/repos/jaredhanson/passport-strategy/badge.png)](https://coveralls.io/r/jaredhanson/passport-strategy)\n[![Dependencies](https://david-dm.org/jaredhanson/passport-strategy.png)](http://david-dm.org/jaredhanson/passport-strategy)\n\n\nAn abstract class implementing [Passport](http://passportjs.org/)'s strategy\nAPI.\n\n## Install\n\n $ npm install passport-strategy\n\n## Usage\n\nThis module exports an abstract `Strategy` class that is intended to be\nsubclassed when implementing concrete authentication strategies. Once\nimplemented, such strategies can be used by applications that utilize Passport\nmiddleware for authentication.\n\n#### Subclass Strategy\n\nCreate a new `CustomStrategy` constructor which inherits from `Strategy`:\n\n```javascript\nvar util = require('util')\n , Strategy = require('passport-strategy');\n\nfunction CustomStrategy(...) {\n Strategy.call(this);\n}\n\nutil.inherits(CustomStrategy, Strategy);\n```\n\n#### Implement Authentication\n\nImplement `autheticate()`, performing the necessary operations required by the\nauthentication scheme or protocol being implemented.\n\n```javascript\nCustomStrategy.prototype.authenticate = function(req, options) {\n // TODO: authenticate request\n}\n```\n\n## Tests\n\n $ npm install\n $ npm test\n\n## Credits\n\n - [Jared Hanson](http://github.com/jaredhanson)\n\n## License\n\n[The MIT License](http://opensource.org/licenses/MIT)\n\nCopyright (c) 2011-2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)>\n", - "readmeFilename": "README.md", - "_id": "passport-strategy@1.0.0", - "dist": { - "shasum": "b5539aa8fc225a3d1ad179476ddf236b440f52e4", - "tarball": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz" - }, - "_from": "passport-strategy@>=1.0.0 <2.0.0", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - }, - "maintainers": [ - { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - } - ], - "directories": {}, - "_shasum": "b5539aa8fc225a3d1ad179476ddf236b440f52e4", - "_resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", - "homepage": "https://github.com/jaredhanson/passport-strategy#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/.npmignore deleted file mode 100644 index f1250e58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -support -test -examples -*.sock diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/History.md deleted file mode 100644 index c8aa68fa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/History.md +++ /dev/null @@ -1,5 +0,0 @@ - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/Makefile deleted file mode 100644 index 4e9c8d36..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/Makefile +++ /dev/null @@ -1,7 +0,0 @@ - -test: - @./node_modules/.bin/mocha \ - --require should \ - --reporter spec - -.PHONY: test \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/Readme.md deleted file mode 100644 index 1cdd68a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/Readme.md +++ /dev/null @@ -1,29 +0,0 @@ - -# pause - - Pause streams... - -## License - -(The MIT License) - -Copyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca> - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/index.js deleted file mode 100644 index 1b7b3794..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/index.js +++ /dev/null @@ -1,29 +0,0 @@ - -module.exports = function(obj){ - var onData - , onEnd - , events = []; - - // buffer data - obj.on('data', onData = function(data, encoding){ - events.push(['data', data, encoding]); - }); - - // buffer end - obj.on('end', onEnd = function(data, encoding){ - events.push(['end', data, encoding]); - }); - - return { - end: function(){ - obj.removeListener('data', onData); - obj.removeListener('end', onEnd); - }, - resume: function(){ - this.end(); - for (var i = 0, len = events.length; i < len; ++i) { - obj.emit.apply(obj, events[i]); - } - } - }; -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/package.json deleted file mode 100644 index 77fe974a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/node_modules/pause/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "pause", - "version": "0.0.1", - "description": "Pause streams...", - "keywords": [], - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "dependencies": {}, - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "main": "index", - "_id": "pause@0.0.1", - "dist": { - "shasum": "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d", - "tarball": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, - "_shasum": "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d", - "_resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", - "_from": "pause@0.0.1", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/package.json deleted file mode 100644 index 441f8d3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/passport/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "passport", - "version": "0.3.2", - "description": "Simple, unobtrusive authentication for Node.js.", - "keywords": [ - "express", - "connect", - "auth", - "authn", - "authentication" - ], - "author": { - "name": "Jared Hanson", - "email": "jaredhanson@gmail.com", - "url": "http://www.jaredhanson.net/" - }, - "homepage": "http://passportjs.org/", - "repository": { - "type": "git", - "url": "git://github.com/jaredhanson/passport.git" - }, - "bugs": { - "url": "http://github.com/jaredhanson/passport/issues" - }, - "license": "MIT", - "licenses": [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/MIT" - } - ], - "main": "./lib", - "dependencies": { - "passport-strategy": "1.x.x", - "pause": "0.0.1" - }, - "devDependencies": { - "mocha": "2.x.x", - "chai": "2.x.x", - "chai-connect-middleware": "0.3.x", - "chai-passport-strategy": "0.2.x", - "proxyquire": "1.x.x" - }, - "engines": { - "node": ">= 0.4.0" - }, - "scripts": { - "test": "mocha --reporter spec --require test/bootstrap/node test/*.test.js test/**/*.test.js" - }, - "gitHead": "ee57813037914642906aa9ed9e1c9ecbebf905ff", - "_id": "passport@0.3.2", - "_shasum": "9dd009f915e8fe095b0124a01b8f82da07510102", - "_from": "passport@>=0.3.2 <0.4.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - }, - "maintainers": [ - { - "name": "jaredhanson", - "email": "jaredhanson@gmail.com" - } - ], - "dist": { - "shasum": "9dd009f915e8fe095b0124a01b8f82da07510102", - "tarball": "https://registry.npmjs.org/passport/-/passport-0.3.2.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/passport/-/passport-0.3.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.eslintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.eslintrc deleted file mode 100644 index 248f817d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.eslintrc +++ /dev/null @@ -1,64 +0,0 @@ -{ - "env": { - "node": true, - "mocha": true, - }, - "rules": { - "block-scoped-var": 2, - "dot-notation": [ - 2, - { - "allowKeywords": true - } - ], - "eqeqeq": [ - 2, - "allow-null" - ], - "guard-for-in": 2, - "new-cap": 2, - "no-caller": 2, - "no-cond-assign": [ - 2, - "except-parens" - ], - "no-debugger": 2, - "no-empty": 2, - "no-eval": 2, - "no-extend-native": 2, - "no-extra-parens": 2, - "no-irregular-whitespace": 2, - "no-iterator": 2, - "no-loop-func": 2, - "no-multi-str": 2, - "no-new": 2, - "no-proto": 2, - "no-script-url": 2, - "no-sequences": 2, - "no-shadow": 2, - "no-undef": 2, - "no-unused-vars": [ - 2, - {"args": "none"} - ], - "no-with": 2, - "quotes": [ - 2, - "single", - "avoid-escape" - ], - "semi": [ - 0, - "never" - ], - "strict": [ - 2, - "global" - ], - "valid-typeof": 2, - "wrap-iife": [ - 2, - "inside" - ] - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.gitmodules b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.gitmodules deleted file mode 100644 index 1e6464ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "docs/_sentryext"] - path = docs/_sentryext - url = https://github.com/getsentry/sentry-doc-support diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/.name b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/.name deleted file mode 100644 index 5145c68b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -raven-node \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/encodings.xml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/encodings.xml deleted file mode 100644 index 97626ba4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="Encoding"> - <file url="PROJECT" charset="UTF-8" /> - </component> -</project> \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/misc.xml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/misc.xml deleted file mode 100644 index 72abef0a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/misc.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="ProjectLevelVcsManager" settingsEditedManually="false"> - <OptionsSetting value="true" id="Add" /> - <OptionsSetting value="true" id="Remove" /> - <OptionsSetting value="true" id="Checkout" /> - <OptionsSetting value="true" id="Update" /> - <OptionsSetting value="true" id="Status" /> - <OptionsSetting value="true" id="Edit" /> - <ConfirmationsSetting value="0" id="Add" /> - <ConfirmationsSetting value="0" id="Remove" /> - </component> -</project> \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/modules.xml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/modules.xml deleted file mode 100644 index 892402db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="ProjectModuleManager"> - <modules> - <module fileurl="file://$PROJECT_DIR$/.idea/raven-node.iml" filepath="$PROJECT_DIR$/.idea/raven-node.iml" /> - </modules> - </component> -</project> \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/raven-node.iml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/raven-node.iml deleted file mode 100644 index af19061b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/raven-node.iml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module type="WEB_MODULE" version="4"> - <component name="NewModuleRootManager"> - <content url="file://$MODULE_DIR$"> - <excludeFolder url="file://$MODULE_DIR$/node_modules" /> - </content> - <orderEntry type="inheritedJdk" /> - <orderEntry type="sourceFolder" forTests="false" /> - </component> -</module> \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/vcs.xml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/vcs.xml deleted file mode 100644 index 94a25f7f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="VcsDirectoryMappings"> - <mapping directory="$PROJECT_DIR$" vcs="Git" /> - </component> -</project> \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/workspace.xml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/workspace.xml deleted file mode 100644 index 665e4556..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.idea/workspace.xml +++ /dev/null @@ -1,719 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="ChangeListManager"> - <list default="true" id="c7c017db-c874-41b8-ad76-2b59667da82b" name="Default" comment="" /> - <ignored path="raven-node.iws" /> - <ignored path=".idea/workspace.xml" /> - <ignored path=".idea/dataSources.local.xml" /> - <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> - <option name="TRACKING_ENABLED" value="true" /> - <option name="SHOW_DIALOG" value="false" /> - <option name="HIGHLIGHT_CONFLICTS" value="true" /> - <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> - <option name="LAST_RESOLUTION" value="IGNORE" /> - </component> - <component name="ChangesViewManager" flattened_view="true" show_ignored="false" /> - <component name="CreatePatchCommitExecutor"> - <option name="PATCH_PATH" value="" /> - </component> - <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" /> - <component name="FavoritesManager"> - <favorites_list name="raven-node" /> - </component> - <component name="FileEditorManager"> - <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> - <file leaf-file-name="client.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/lib/client.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="782"> - <caret line="134" column="40" selection-start-line="134" selection-start-column="40" selection-end-line="134" selection-end-column="40" /> - <folding> - <marker date="1462840154000" expanded="true" signature="7341:7344" placeholder="{...}" /> - </folding> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="parsers.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/lib/parsers.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="345"> - <caret line="36" column="26" selection-start-line="36" selection-start-column="26" selection-end-line="36" selection-end-column="26" /> - <folding> - <marker date="1462926603000" expanded="true" signature="175:249" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="317:366" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="360:366" placeholder="{...}" /> - </folding> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="History.md" pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/History.md"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="360"> - <caret line="24" column="61" selection-start-line="24" selection-start-column="61" selection-end-line="24" selection-end-column="61" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="package.json" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/package.json"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="128"> - <caret line="11" column="20" selection-start-line="11" selection-start-column="20" selection-end-line="11" selection-end-column="20" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="raven.parsers.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/test/raven.parsers.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="263"> - <caret line="425" column="27" selection-start-line="425" selection-start-column="27" selection-end-line="425" selection-end-column="27" /> - <folding> - <marker date="1462926603000" expanded="true" signature="12847:13311" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="12859:12901" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="12912:13305" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="12971:13295" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13383:13640" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13395:13439" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13450:13634" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13488:13527" placeholder="{"culprit": 'foobar'...}" /> - <marker date="1462926603000" expanded="true" signature="13546:13624" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13710:13917" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13722:13764" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13775:13911" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13834:13901" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13977:14544" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13985:14005" placeholder="/*...*/" /> - <marker date="1462926603000" expanded="true" signature="14016:14070" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14081:14538" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14140:14528" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14623:15437" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14635:14678" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14689:15431" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14748:15421" placeholder="{...}" /> - </folding> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="run.coffee" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/test/run.coffee"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="240"> - <caret line="16" column="0" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="index.rst" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/docs/index.rst"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1605"> - <caret line="107" column="43" selection-start-line="107" selection-start-column="37" selection-end-line="107" selection-end-column="43" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="raven.client.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/test/raven.client.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="120"> - <caret line="269" column="0" selection-start-line="269" selection-start-column="0" selection-end-line="341" selection-end-column="5" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="raven.utils.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/test/raven.utils.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="525"> - <caret line="35" column="137" selection-start-line="35" selection-start-column="137" selection-end-line="35" selection-end-column="137" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="utils.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/lib/utils.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1092"> - <caret line="96" column="33" selection-start-line="96" selection-start-column="33" selection-end-line="96" selection-end-column="33" /> - <folding /> - </state> - </provider> - </entry> - </file> - </leaf> - </component> - <component name="Git.Settings"> - <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> - </component> - <component name="IdeDocumentHistory"> - <option name="CHANGED_PATHS"> - <list> - <option value="$PROJECT_DIR$/.eslintrc" /> - <option value="$PROJECT_DIR$/index.js" /> - <option value="$PROJECT_DIR$/lib/middleware/connect.js" /> - <option value="$PROJECT_DIR$/test/raven.utils.js" /> - <option value="$PROJECT_DIR$/lib/utils.js" /> - <option value="$PROJECT_DIR$/lib/transports.js" /> - <option value="$PROJECT_DIR$/test/run.coffee" /> - <option value="$PROJECT_DIR$/docs/usage.rst" /> - <option value="$PROJECT_DIR$/docs/index.rst" /> - <option value="$PROJECT_DIR$/lib/client.js" /> - <option value="$PROJECT_DIR$/test/raven.parsers.js" /> - <option value="$PROJECT_DIR$/test/raven.client.js" /> - <option value="$PROJECT_DIR$/lib/parsers.js" /> - <option value="$PROJECT_DIR$/package.json" /> - <option value="$PROJECT_DIR$/History.md" /> - </list> - </option> - </component> - <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" /> - <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER"> - <package-json value="$PROJECT_DIR$/package.json" /> - </component> - <component name="JsGulpfileManager"> - <detection-done>true</detection-done> - <sorting>DEFINITION_ORDER</sorting> - </component> - <component name="ProjectFrameBounds"> - <option name="y" value="874" /> - <option name="width" value="1440" /> - <option name="height" value="873" /> - </component> - <component name="ProjectLevelVcsManager" settingsEditedManually="false"> - <OptionsSetting value="true" id="Add" /> - <OptionsSetting value="true" id="Remove" /> - <OptionsSetting value="true" id="Checkout" /> - <OptionsSetting value="true" id="Update" /> - <OptionsSetting value="true" id="Status" /> - <OptionsSetting value="true" id="Edit" /> - <ConfirmationsSetting value="0" id="Add" /> - <ConfirmationsSetting value="0" id="Remove" /> - </component> - <component name="ProjectView"> - <navigator currentView="Scope" currentSubView="Project Files" proportions="" version="1"> - <flattenPackages /> - <showMembers /> - <showModules /> - <showLibraryContents /> - <hideEmptyPackages /> - <abbreviatePackageNames /> - <autoscrollToSource /> - <autoscrollFromSource /> - <sortByType /> - <manualOrder /> - <foldersAlwaysOnTop value="true" /> - </navigator> - <panes> - <pane id="ProjectPane"> - <subPane> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="raven-node" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - </PATH> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="raven-node" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="raven-node" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - </PATH> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="raven-node" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="raven-node" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="test" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - </PATH> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="raven-node" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="raven-node" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="lib" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - </PATH> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="raven-node" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="raven-node" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="docs" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - </PATH> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="raven-node" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="raven-node" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="bin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - </PATH> - </subPane> - </pane> - <pane id="Scratches" /> - <pane id="Scope"> - <subPane subId="Project Files"> - <PATH> - <PATH_ELEMENT USER_OBJECT="Root"> - <option name="myItemId" value="" /> - <option name="myItemType" value="" /> - </PATH_ELEMENT> - <PATH_ELEMENT USER_OBJECT="raven-node"> - <option name="myItemId" value="" /> - <option name="myItemType" value="" /> - </PATH_ELEMENT> - </PATH> - <PATH> - <PATH_ELEMENT USER_OBJECT="Root"> - <option name="myItemId" value="" /> - <option name="myItemType" value="" /> - </PATH_ELEMENT> - <PATH_ELEMENT USER_OBJECT="raven-node"> - <option name="myItemId" value="" /> - <option name="myItemType" value="" /> - </PATH_ELEMENT> - <PATH_ELEMENT USER_OBJECT="test"> - <option name="myItemId" value="" /> - <option name="myItemType" value="" /> - </PATH_ELEMENT> - </PATH> - </subPane> - </pane> - </panes> - </component> - <component name="PropertiesComponent"> - <property name="WebServerToolWindowFactoryState" value="false" /> - <property name="HbShouldOpenHtmlAsHb" value="" /> - <property name="js-jscs-nodeInterpreter" value="$USER_HOME$/.nvm/versions/node/v5.2.0/bin/node" /> - </component> - <component name="RunManager"> - <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug"> - <method /> - </configuration> - <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js"> - <node-interpreter>project</node-interpreter> - <node-options /> - <gulpfile /> - <tasks /> - <arguments /> - <envs /> - <method /> - </configuration> - <configuration default="true" type="js.build_tools.npm" factoryName="npm"> - <command value="run-script" /> - <scripts /> - <node-interpreter value="project" /> - <envs /> - <method /> - </configuration> - </component> - <component name="ShelveChangesManager" show_recycled="false"> - <option name="remove_strategy" value="false" /> - </component> - <component name="SvnConfiguration"> - <configuration /> - </component> - <component name="TaskManager"> - <task active="true" id="Default" summary="Default task"> - <changelist id="c7c017db-c874-41b8-ad76-2b59667da82b" name="Default" comment="" /> - <created>1453148723981</created> - <option name="number" value="Default" /> - <option name="presentableId" value="Default" /> - <updated>1453148723981</updated> - </task> - <servers /> - </component> - <component name="ToolWindowManager"> - <frame x="0" y="874" width="1440" height="873" extended-state="0" /> - <editor active="true" /> - <layout> - <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2048611" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> - <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.47139305" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> - <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> - <window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> - <window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> - <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> - <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> - <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> - <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> - <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> - <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> - <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.6306818" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> - </layout> - </component> - <component name="Vcs.Log.UiProperties"> - <option name="RECENTLY_FILTERED_USER_GROUPS"> - <collection /> - </option> - <option name="RECENTLY_FILTERED_BRANCH_GROUPS"> - <collection /> - </option> - </component> - <component name="VcsContentAnnotationSettings"> - <option name="myLimit" value="2678400000" /> - </component> - <component name="XDebuggerManager"> - <breakpoint-manager> - <breakpoints> - <line-breakpoint enabled="true" type="javascript"> - <url>file://$PROJECT_DIR$/test/raven.client.js</url> - <line>343</line> - <option name="timeStamp" value="1" /> - </line-breakpoint> - </breakpoints> - <option name="time" value="2" /> - </breakpoint-manager> - <watches-manager /> - </component> - <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/lib/client.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding> - <marker date="1462840154000" expanded="true" signature="7341:7344" placeholder="{...}" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/lib/transports.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="120"> - <caret line="8" column="27" selection-start-line="8" selection-start-column="27" selection-end-line="8" selection-end-column="27" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/History.md"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="345"> - <caret line="23" column="20" selection-start-line="23" selection-start-column="20" selection-end-line="23" selection-end-column="20" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/test/run.coffee"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="240"> - <caret line="16" column="0" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/docs/index.rst"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1605"> - <caret line="107" column="43" selection-start-line="107" selection-start-column="37" selection-end-line="107" selection-end-column="43" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/docs/usage.rst"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="2415"> - <caret line="161" column="0" selection-start-line="161" selection-start-column="0" selection-end-line="161" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/test/raven.client.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="3810"> - <caret line="254" column="7" selection-start-line="254" selection-start-column="7" selection-end-line="254" selection-end-column="7" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/test/raven.utils.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="525"> - <caret line="35" column="137" selection-start-line="35" selection-start-column="137" selection-end-line="35" selection-end-column="137" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/lib/utils.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1440"> - <caret line="96" column="33" selection-start-line="96" selection-start-column="33" selection-end-line="96" selection-end-column="33" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/lib/client.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1620"> - <caret line="108" column="0" selection-start-line="108" selection-start-column="0" selection-end-line="108" selection-end-column="0" /> - <folding> - <marker date="1462840154000" expanded="true" signature="7341:7344" placeholder="{...}" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/lib/transports.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="120"> - <caret line="8" column="27" selection-start-line="8" selection-start-column="27" selection-end-line="8" selection-end-column="27" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/History.md"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="345"> - <caret line="23" column="20" selection-start-line="23" selection-start-column="20" selection-end-line="23" selection-end-column="20" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/test/run.coffee"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="240"> - <caret line="16" column="0" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/docs/index.rst"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/docs/usage.rst"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="2415"> - <caret line="161" column="0" selection-start-line="161" selection-start-column="0" selection-end-line="161" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/test/raven.client.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="3810"> - <caret line="254" column="7" selection-start-line="254" selection-start-column="7" selection-end-line="254" selection-end-column="7" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/test/raven.utils.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="525"> - <caret line="35" column="137" selection-start-line="35" selection-start-column="137" selection-end-line="35" selection-end-column="137" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/lib/utils.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1440"> - <caret line="96" column="33" selection-start-line="96" selection-start-column="33" selection-end-line="96" selection-end-column="33" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/index.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="0"> - <caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/.travis.yml"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="0"> - <caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/lib/middleware/connect.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="0"> - <caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/LICENSE"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="0"> - <caret line="9" column="0" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/lib/transports.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="120"> - <caret line="8" column="27" selection-start-line="8" selection-start-column="27" selection-end-line="8" selection-end-column="27" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/docs/usage.rst"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="2415"> - <caret line="161" column="0" selection-start-line="161" selection-start-column="0" selection-end-line="161" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/test/run.coffee"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="240"> - <caret line="16" column="0" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/docs/index.rst"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1605"> - <caret line="107" column="43" selection-start-line="107" selection-start-column="37" selection-end-line="107" selection-end-column="43" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/test/raven.utils.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="525"> - <caret line="35" column="137" selection-start-line="35" selection-start-column="137" selection-end-line="35" selection-end-column="137" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/lib/utils.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1092"> - <caret line="96" column="33" selection-start-line="96" selection-start-column="33" selection-end-line="96" selection-end-column="33" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/lib/client.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="782"> - <caret line="134" column="40" selection-start-line="134" selection-start-column="40" selection-end-line="134" selection-end-column="40" /> - <folding> - <marker date="1462840154000" expanded="true" signature="7341:7344" placeholder="{...}" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/test/raven.client.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="120"> - <caret line="269" column="0" selection-start-line="269" selection-start-column="0" selection-end-line="341" selection-end-column="5" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/test/raven.parsers.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="263"> - <caret line="425" column="27" selection-start-line="425" selection-start-column="27" selection-end-line="425" selection-end-column="27" /> - <folding> - <marker date="1462926603000" expanded="true" signature="12847:13311" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="12859:12901" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="12912:13305" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="12971:13295" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13383:13640" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13395:13439" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13450:13634" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13488:13527" placeholder="{"culprit": 'foobar'...}" /> - <marker date="1462926603000" expanded="true" signature="13546:13624" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13710:13917" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13722:13764" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13775:13911" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13834:13901" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13977:14544" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="13985:14005" placeholder="/*...*/" /> - <marker date="1462926603000" expanded="true" signature="14016:14070" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14081:14538" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14140:14528" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14623:15437" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14635:14678" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14689:15431" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="14748:15421" placeholder="{...}" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/lib/parsers.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="345"> - <caret line="36" column="26" selection-start-line="36" selection-start-column="26" selection-end-line="36" selection-end-column="26" /> - <folding> - <marker date="1462926603000" expanded="true" signature="175:249" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="317:366" placeholder="{...}" /> - <marker date="1462926603000" expanded="true" signature="360:366" placeholder="{...}" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/package.json"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="128"> - <caret line="11" column="20" selection-start-line="11" selection-start-column="20" selection-end-line="11" selection-end-column="20" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/History.md"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="360"> - <caret line="24" column="61" selection-start-line="24" selection-start-column="61" selection-end-line="24" selection-end-column="61" /> - <folding /> - </state> - </provider> - </entry> - </component> -</project> \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.npmignore deleted file mode 100644 index c4f7f8c7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/.npmignore +++ /dev/null @@ -1,8 +0,0 @@ -test -working -.travis.yml -README.md -History.md -Makefile -test/ -working/ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/AUTHORS b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/AUTHORS deleted file mode 100644 index 9b60c17e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -https://github.com/mattrobenolt/raven-node/graphs/contributors diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/History.md deleted file mode 100644 index 0a748665..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/History.md +++ /dev/null @@ -1,149 +0,0 @@ -# 0.11.0 - 5/5/2016 - * `captureError` renamed to `captureException` to match raven-js (alias exists for backwards compat) - * `parsers.parseError` now coerces Error type to string. [See #155] - -# 0.10.0 - 1/24/2016 - * Now supports global context for extra data, tags, user [See #141] - * Added `setUserContext`, `setExtraContext`, `setTagsContext` - -# 0.9.0 - 11/23/2015 - * Always coerce req.body to string. [See 2061d4efbf269c5e2096f2b7b55f5af2249c4aa7] - * Allow passing options to HTTP transports. [See #123] - * Fixed tests for node 4.0/5.0 - * Don't send a body for GET/HEAD requests unless one has been passed. [See 0476a6e9818135b8b258b0be0724c369fe30e3c7] - -# 0.8.1 - 06/15/2015 - * Fixed a missing `domain` import in the Express/Connect middleware [See #120] - -# 0.8.0 - 06/15/2015 - * Drop support for node 0.6 - * Remove `SENTRY_SITE` environment variable usage - * Fixed `express deprecated req.host: Use req.hostname instead` warning [See #101] - * Allow passing custom `ca` options for an https request [See #110 #108] - * Use newer API endpoint [See #105] - * Added support for Sentry's new Releases feature - * Update Express/Connect middleware to support domains [See #116] - -# 0.7.3 - 03/05/2015 - * When calling `captureError` without an Error, generate a fake `Error` object to pull stacktrace from. [See #87] - * Prevent `patchGlobal` from causing recursion [See #84] - * Fixed issues arond capturing tags. - * Removed deprecated `site` parameter. - * Allow explicitly declaring the `culprit` [See #107] - * Publicly export out the various parsers [See #111] - * Support for iojs and node 0.12 - -# 0.7.2 - 09/09/2014 - * Added `dataCallback` option to Client configuration. See: https://github.com/getsentry/raven-node#pre-processing-data - -# 0.7.1 - 08/24/2014 - * Fixed package.json to not install junk from `optionalDependencies`. TIL `optionalDependencies` are still installed. [See #89] - -# 0.7.0 - 06/24/2014 - * Moved from mattrobenolt/raven-node into getsentry/raven-node - * Bumped to sentry protocol version 5 - * Capture all properties off of an Error object and send them along as as `extra` [See #72] - * Better feature detection support for capturing request parameters. Adds support for use in Koa. [See #78 #79] - -# 0.6.3 - 04/02/2014 - * Fix another issue that was breaking when running Raven from the REPL [See #66] - * Add additional meta data on the error callbacks [See #67 #73] - -# 0.6.2 - 02/14/2014 - * Allow overriding the logger name for an individual event - * Update lsmod to not break when running Raven from the REPL - * Added a `raven` bin so you can run `raven test [DSN]` - -# 0.6.1 - 01/23/2014 - * Use lsmod for getting the list of installed modules [See #55] - * Parse cookies on the http request always [See #56] - * Use `stack-trace` to assist in capturing stacks. This should fix compat with the New Relic plugin [See #57] - -# 0.6.0 - 11/9/2013 - * Updated sentry protocol to version 4 (Requires Sentry 6.0+ now) - * Module names now include the full path - * Attach client IP address to env object - -# 0.5.6 - 11/8/2013 - * Include module and function name in stacktrace culprit - -# 0.5.5 - 11/8/2013 - * Only record exceptions for 500 status codes from Connect middleware - -# 0.5.4 - 10/13/2013 - * Fix DSN parser when using Sentry at a non-root URL, thanks @rcoup [See #44] - -# 0.5.3 - 10/4/2013 - * Bump raw-stacktrace version - -# 0.5.2 - 9/10/2013 - * Fix compatibilities with CoffeeScript [Fixes #47] [Fixes #50] - * Doesnt chose on circular references - -# 0.5.1 - 5/1/2013 - * Add support for third party transports, thanks @crankycoder - -# 0.5.0 - 4/8/2013 - * Remove NODE_ENV entirely, fixes many issues since people have different opinions on wtf this means - * Several fixes in collecting a better stack trace, thanks @azylman - * Pass exception through to the patchGlobal callback, thanks @ktmud [See #28] - * Official 0.10 support! - * Other misc things. https://github.com/mattrobenolt/raven-node/compare/v0.4.7...v0.5.0 - -# 0.4.7 - 1/13/2013 - * Actually disable when NODE_ENV does not equal 'production' [Fixes #25] - -# 0.4.6 - 1/13/2013 - * Added `platform=node` to payload for Sentry 5.1 - -# 0.4.5 - 12/05/2012 - * Resolve `node_modules` path properly [Fixes #23] - -# 0.4.4 - 11/10/2012 - * Prevent 'error' event from bubbling up due to no listeners [See #22] - * Augment 'error' event emitter with an actual Error object [See #22] - -# 0.4.3 - 10/02/2012 - * Allow a callback to be given to `patchGlobal()` [Fixes #19] - * Removed old `patch_global()` alias - -# 0.4.2 - 9/29/2012 - * Added test coverage to `patchGlobal()` - * Quit using my own deprecated `get_ident()` method inside `patchGlobal` - * Send string errors as a normal message to prevent Sentry server from crying [Fixes #18] - -# 0.4.1 - 9/3/2012 - * patchGlobal() was actually broken. :( Thanks @ligthyear [Fixes #17] - -# 0.4.0 - 8/14/2012 - * Silence and disable Raven/Sentry when using a non-existent or falsey DSN value - -# 0.3.0 - 6/23/2012 - * Separate transports out into their own module for portability - * Added UDP transport [Fixes #10] - * Ignore sub-transports, such as gevent+https, raven sees it as just https - -# 0.2.4 - 6/16/2012 - * Added parsing DSNs with non-standard port. [Fixes #4] - * Added BSD license - -# 0.2.3 - 3/30/2012 - * Prevent any potentially odd stack traces from causing Raven to crash. [Fixes #2] - -# 0.2.2 - 3/22/2012 - * raven.Client now emits `logged` and `error` events. - -# 0.2.1 - 3/22/2012 - * Fixed connect/express middleware, thanks Almad! - -# 0.2.0 - 3/18/2012 - * Renamed all methods to follow `client.capture*()` pattern. (Sorry if you were already using it!) - * All `npm` installed modules are shoved into Sentry for debugging - * Toggle actual sending based on `NODE_ENV` variable. Check README for information. - * Fixes for more types of stack traces. - * Added `client.captureQuery()` - * Support for `SENTRY_DSN`, `SENTRY_NAME`, and `SENTRY_SITE` enviornment variables - * More test coverage - -# 0.1.0 - 3/17/2012 - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/LICENSE deleted file mode 100644 index 77d737df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -Copyright (c) 2013, Matt Robenolt -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. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/README.md deleted file mode 100644 index cee68da8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# raven-node [![Build Status](https://travis-ci.org/getsentry/raven-node.svg?branch=master)](https://travis-ci.org/getsentry/raven-node) - -raven-node is a Node.js client for [Sentry](https://getsentry.com/). - -## Resources - -* [Documentation](https://docs.getsentry.com/hosted/clients/node/) -* [Bug Tracker](https://github.com/getsentry/raven-node/issues) -* [IRC](irc://chat.freenode.net/sentry) (chat.freenode.net, #sentry) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/bin/raven b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/bin/raven deleted file mode 100755 index 8207d8cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/bin/raven +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env node - -var os = require('os'); -var raven = require('../'); - -function usage() { - var path = require('path'); - console.log('usage:', path.basename(process.argv[1]), 'test [SENTRY_DSN]'); -} - -if (process.argv[2] !== 'test') { - usage(); - process.exit(1); -} - -var dsn = process.argv.slice(3).join(' ') || process.env.SENTRY_DSN; -if (!dsn) { - usage(); - console.log(); - console.log('Error: No configuration detected!'); - console.log('You must either pass a DSN to the command or set the SENTRY_DSN environment variable.'); - process.exit(1); -} - -console.log('Using DSN configuration:'); -console.log(' ', dsn); -console.log(); - -var client = new raven.Client(dsn); - -console.log('Sending a test message...'); - -client.on('logged', function(result) { - console.log('success!'); - console.log('Event ID was', client.getIdent(result)); -}); -client.on('error', function(err) { - console.log('error!'); - throw err; -}); - -try { - test -} catch (ex) { - client.captureException(ex, { - message: 'This is a test message generated using ``raven test``', - level: 'info', - logger: 'sentry.test', - culprit: 'bin:raven at main', - request: { - method: 'GET', - url: 'http://example.com' - }, - extra: { - user: process.getuid && process.getuid(), - loadavg: os.loadavg() - } - }); -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/coffeescript.rst b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/coffeescript.rst deleted file mode 100644 index 9190999c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/coffeescript.rst +++ /dev/null @@ -1,24 +0,0 @@ -CoffeeScript -============ - -In order to use raven-node with coffee-script or another library which overwrites -Error.prepareStackTrace you might run into the exception "Traceback does not -support Error.prepareStackTrace being defined already." - -In order to not have raven-node (and the underlying raw-stacktrace library) require -Traceback you can pass your own stackFunction in the options. For example: - -.. code-block:: coffeescript - - client = new raven.Client('___DSN___', { - stackFunction: {{ Your stack function }} - }); - - -So for example: - -.. code-block:: coffeescript - - client = new raven.Client('___DSN___', { - stackFunction: Error.prepareStackTrace - }); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/conf.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/conf.py deleted file mode 100644 index a38571e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/conf.py +++ /dev/null @@ -1,249 +0,0 @@ -# -*- coding: utf-8 -*- -# -# raven-node documentation build configuration file, created by -# sphinx-quickstart on Mon Jan 21 21:04:27 2013. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os, datetime - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'raven-node' -copyright = u'%s, Sentry' % datetime.date.today().year - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# - -import json -# The full version, including alpha/beta/rc tags. -release = json.load(open('../package.json'))['version'] -# The short X.Y version. -version = release.rsplit('.', 1)[0] - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'default' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# "<project> v<release> documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a <link> tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'raven-nodedoc' - - -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'raven-node.tex', u'raven-node Documentation', - u'Matt Robenolt', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'raven-node', u'raven-node Documentation', - [u'Sentry'], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------------ - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'raven-node', u'raven-node Documentation', - u'Sentry', 'raven-node', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -if os.environ.get('SENTRY_FEDERATED_DOCS') != '1': - sys.path.insert(0, os.path.abspath('_sentryext')) - import sentryext - sentryext.activate() diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/config.rst b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/config.rst deleted file mode 100644 index 3904dc24..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/config.rst +++ /dev/null @@ -1,63 +0,0 @@ -Configuration -============= - -Configuration is passed as the second argument of the ``raven.Client`` constructor: - -.. code-block:: javascript - - var raven = require("raven"); - - new raven.Client(String dsn[, Object options]) - -Optional settings ------------------ - -.. describe:: logger - - The name of the logger used by Sentry. Default: ``''`` - - .. code-block:: javascript - - { - logger: 'default' - } - -.. describe:: release - - Track the version of your application in Sentry. - - .. code-block:: javascript - - { - release: '721e41770371db95eee98ca2707686226b993eda' - } - -.. describe:: dataCallback - - A function that allows mutation of the data payload right before being - sent to Sentry. - - .. code-block:: javascript - - { - dataCallback: function(data) { - // remove references to the environment - delete data.request.env; - return data; - } - } - -Environment Variables ---------------------- - -.. describe:: SENTRY_DSN - - Optionally declare the DSN to use for the client through the environment. Initializing the client in your app won't require setting the DSN. - -.. describe:: SENTRY_NAME - - Optionally set the name for the client to use. [What is name?](http://raven.readthedocs.org/en/latest/config/index.html#name) - -.. describe:: SENTRY_RELEASE - - Optionally set the application release version for the client to use, this is usually a Git SHA hash. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/index.rst b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/index.rst deleted file mode 100644 index 1541afde..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/index.rst +++ /dev/null @@ -1,109 +0,0 @@ -.. sentry:edition:: self - - raven-node - ========== - -.. sentry:edition:: hosted, on-premise - - .. class:: platform-node - - Node.js - ======= - -raven-node is a Sentry's officially supported Node.js SDK. - -**Note**: If you're using JavaScript in the browser, you'll need -`raven-js <https://github.com/getsentry/raven-js>`_. - -Installation ------------- - -Raven is distributed via ``npm``: - -.. code-block:: bash - - $ npm install raven --save - -Configuring the Client ----------------------- - -Next you need to initialize the Raven client and configure it to use your `Sentry DSN -<https://docs.getsentry.com/hosted/quickstart/#configure-the-dsn>`_: - -.. code-block:: javascript - - var raven = require('raven'); - var client = new raven.Client('___DSN___'); - -You can optionally pass an object of configuration options as the 2nd argument to `Client`. For -more information, see :doc:`config`. - -Reporting Errors ----------------- - -To get started passing errors to Raven, it is recommended to initialize Raven's global error handler using -``patchGlobal``. This will cause any uncaught exception which would bubble up to the Node runtime to be -captured and processed by Raven. - -.. code-block:: javascript - - client.patchGlobal(); - -Additionally, you can manually capture and report potentially problematic code with ``try...catch`` and - ``captureException``: - -.. code-block:: javascript - - try { - doSomething(a[0]) - } catch(e) { - client.captureException(e) - } - -The ``captureException`` method optionally takes an object of configuration options as the 2nd argument. For more information, and to learn about other methods provided by the Raven API, see :doc:`usage`. - -Adding Context --------------- - -While a user is logged in, you can tell Sentry to associate errors with -user data. This data is then submitted with each error which allows you -to figure out which users are affected. - -.. code-block:: javascript - - client.setUserContext({ - email: 'matt@example.com', - id: '123' - }) - -If at any point, the user becomes unauthenticated, you can call -``client.setUserContext()`` with no arguments to remove their data. - -Other similar methods are ``client.setExtraContext`` and -``client.setTagsContext``. See :ref:`raven-node-additional-context` for more info. - -Middleware and Integrations ---------------------------- - -If you're using Node.js with a web server framework/library like Connect, Express, or Koa, it is recommended -to configure one of Raven's server middleware integrations. See doc:`integrations/index`. - -Deep Dive ---------- - -For more detailed information about how to get most out of Raven.js there -is additional documentation available that covers all the rest: - -.. toctree:: - :maxdepth: 2 - :titlesonly: - - config - usage - integrations/index - coffeescript - -Resources: - -* `Bug Tracker <http://github.com/getsentry/raven-node/issues>`_ -* `Github Project <http://github.com/getsentry/raven-node>`_ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/connect.rst b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/connect.rst deleted file mode 100644 index cda75637..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/connect.rst +++ /dev/null @@ -1,33 +0,0 @@ -Connect -======= - -.. code-block:: javascript - - var connect = require('connect'); - var raven = require('raven'); - - function mainHandler(req, res) { - throw new Error('Broke!'); - } - - function onError(err, req, res, next) { - // The error id is attached to `res.sentry` to be returned - // and optionally displayed to the user for support. - res.statusCode = 500; - res.end(res.sentry+'\n'); - } - - connect( - // The request handler be the first item - raven.middleware.connect.requestHandler('___DSN___'), - - connect.bodyParser(), - connect.cookieParser(), - mainHandler, - - // The error handler must be before any other error middleware - raven.middleware.connect.errorHandler('___DSN___'), - - // Optional fallthrough error handler - onError, - ).listen(3000); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/express.rst b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/express.rst deleted file mode 100644 index e5abc0ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/express.rst +++ /dev/null @@ -1,29 +0,0 @@ -Express -======= - -.. code-block:: javascript - - var app = require('express')(); - var raven = require('raven'); - - function onError(err, req, res, next) { - // The error id is attached to `res.sentry` to be returned - // and optionally displayed to the user for support. - res.statusCode = 500; - res.end(res.sentry+'\n'); - } - - // The request handler must be the first item - app.use(raven.middleware.express.requestHandler('{{ SENTRY_DSN }}')); - - app.get('/', function mainHandler(req, res) { - throw new Error('Broke!'); - }); - - // The error handler must be before any other error middleware - app.use(raven.middleware.express.errorHandler('{{ SENTRY_DSN }}')); - - // Optional fallthrough error handler - app.use(onError); - - app.listen(3000); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/index.rst b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/index.rst deleted file mode 100644 index b2fcb57f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -Integrations -============ - -.. toctree:: - :maxdepth: 1 - - connect - express - koa diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/koa.rst b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/koa.rst deleted file mode 100644 index d7cd3860..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/integrations/koa.rst +++ /dev/null @@ -1,16 +0,0 @@ -Koa -=== - -.. code-block:: javascript - - var koa = require('koa'); - var raven = require('raven'); - - var app = koa(); - var sentry = new raven.Client('___DSN___'); - - app.on('error', function(err) { - sentry.captureException(err); - }); - - app.listen(3000); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/make.bat b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/make.bat deleted file mode 100644 index 4e6d1ee0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/make.bat +++ /dev/null @@ -1,190 +0,0 @@ -@ECHO OFF - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set BUILDDIR=_build -set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . -set I18NSPHINXOPTS=%SPHINXOPTS% . -if NOT "%PAPER%" == "" ( - set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% - set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% -) - -if "%1" == "" goto help - -if "%1" == "help" ( - :help - echo.Please use `make ^<target^>` where ^<target^> is one of - echo. html to make standalone HTML files - echo. dirhtml to make HTML files named index.html in directories - echo. singlehtml to make a single large HTML file - echo. pickle to make pickle files - echo. json to make JSON files - echo. htmlhelp to make HTML files and a HTML help project - echo. qthelp to make HTML files and a qthelp project - echo. devhelp to make HTML files and a Devhelp project - echo. epub to make an epub - echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter - echo. text to make text files - echo. man to make manual pages - echo. texinfo to make Texinfo files - echo. gettext to make PO message catalogs - echo. changes to make an overview over all changed/added/deprecated items - echo. linkcheck to check all external links for integrity - echo. doctest to run all doctests embedded in the documentation if enabled - goto end -) - -if "%1" == "clean" ( - for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i - del /q /s %BUILDDIR%\* - goto end -) - -if "%1" == "html" ( - %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/html. - goto end -) - -if "%1" == "dirhtml" ( - %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. - goto end -) - -if "%1" == "singlehtml" ( - %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. - goto end -) - -if "%1" == "pickle" ( - %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the pickle files. - goto end -) - -if "%1" == "json" ( - %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the JSON files. - goto end -) - -if "%1" == "htmlhelp" ( - %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run HTML Help Workshop with the ^ -.hhp project file in %BUILDDIR%/htmlhelp. - goto end -) - -if "%1" == "qthelp" ( - %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run "qcollectiongenerator" with the ^ -.qhcp project file in %BUILDDIR%/qthelp, like this: - echo.^> qcollectiongenerator %BUILDDIR%\qthelp\raven-node.qhcp - echo.To view the help file: - echo.^> assistant -collectionFile %BUILDDIR%\qthelp\raven-node.ghc - goto end -) - -if "%1" == "devhelp" ( - %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. - goto end -) - -if "%1" == "epub" ( - %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The epub file is in %BUILDDIR%/epub. - goto end -) - -if "%1" == "latex" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "text" ( - %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The text files are in %BUILDDIR%/text. - goto end -) - -if "%1" == "man" ( - %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The manual pages are in %BUILDDIR%/man. - goto end -) - -if "%1" == "texinfo" ( - %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. - goto end -) - -if "%1" == "gettext" ( - %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The message catalogs are in %BUILDDIR%/locale. - goto end -) - -if "%1" == "changes" ( - %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes - if errorlevel 1 exit /b 1 - echo. - echo.The overview file is in %BUILDDIR%/changes. - goto end -) - -if "%1" == "linkcheck" ( - %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck - if errorlevel 1 exit /b 1 - echo. - echo.Link check complete; look for any errors in the above output ^ -or in %BUILDDIR%/linkcheck/output.txt. - goto end -) - -if "%1" == "doctest" ( - %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest - if errorlevel 1 exit /b 1 - echo. - echo.Testing of doctests in the sources finished, look at the ^ -results in %BUILDDIR%/doctest/output.txt. - goto end -) - -:end diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/sentry-doc-config.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/sentry-doc-config.json deleted file mode 100644 index ac1c0ef0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/sentry-doc-config.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "support_level": "production", - "platforms": { - "node": { - "name": "Node.js", - "type": "language", - "doc_link": "", - "wizard": [ - "index#installation", - "index#configuring-the-client", - "index#reporting-errors" - ] - }, - "node.express": { - "name": "Express", - "type": "framework", - "doc_link": "integrations/express/", - "wizard": [ - "index#installation", - "integrations/express#express" - ] - }, - "node.koa": { - "name": "Koa", - "type": "framework", - "doc_link": "integrations/koa/", - "wizard": [ - "index#installation", - "integrations/koa#koa" - ] - }, - "node.connect": { - "name": "Connect", - "type": "framework", - "doc_link": "integrations/connect/", - "wizard": [ - "index#installation", - "integrations/connect#connect" - ] - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/usage.rst b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/usage.rst deleted file mode 100644 index 7f33b868..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/docs/usage.rst +++ /dev/null @@ -1,201 +0,0 @@ -Usage -===== - -Capturing Errors ----------------- - -.. code-block:: javascript - - try { - doSomething(a[0]) - } catch (err) { - client.captureException(err) - } - -Capturing Messages ------------------- - -.. code-block:: javascript - - client.captureMessage('Broken!') - -.. _raven-node-additional-context: - -Optional Attributes -------------------- - -All optional attributes are passed as part of the options to ``captureException`` and ``captureMessage``. - -.. describe:: extra - - Additional context for this event. Must be a mapping. Children can be any native JSON type. - - .. code-block:: javascript - - { - extra: {'key': 'value'} - } - - You can also set extra data globally to be merged in with future events with ``setExtraContext``: - - .. code-block:: javascript - - client.setExtraContext({ foo: "bar" }) - -.. describe:: tags - - Tags to index with this event. Must be a mapping of strings. - - .. code-block:: javascript - - { - tags: {'key': 'value'} - } - - You can also set tags globally to be merged in with future exceptions events with ``setTagsContext``: - - .. code-block:: javascript - - client.setTagsContext({ key: "value" }); - -.. describe:: fingerprint - - The fingerprint for grouping this event. - - .. code-block:: javascript - - { - // dont group events from the same NODE_ENV together - fingerprint: ['{{ default }}', process.env.NODE_ENV] - } - -.. describe:: level - - The level of the event. Defaults to ``error``. - - .. code-block:: javascript - - { - level: 'warning' - } - - Sentry is aware of the following levels: - - * debug (the least serious) - * info - * warning - * error - * fatal (the most serious) - -Tracking Users --------------- - -While a user is logged in, you can tell Sentry to associate errors with -user data. - -.. code-block:: javascript - - client.setUserContext({ - email: 'matt@example.com', - id: '123' - }) - -If at any point, the user becomes unauthenticated, you can call -``client.setUserContext()`` with no arguments to remove their data. *This -would only really be useful in a large web app where the user logs in/out -without a page reload.* - -This data is generally submitted with each error or message and allows you -to figure out which errors are affected by problems. - -Event IDs ---------- - -To make referencing an event easy (both by the developer and customer), you can grab -the event ID using a callback: - - -.. code-block:: javascript - - client.captureMessage('Hello, world!', function(result) { - console.log(client.getIdent(result)); - }); - -.. code-block:: javascript - - client.captureException(new Error('Broke!'), function(result) { - console.log(client.getIdent(result)); - }); - - -.. note:: - - ``captureMessage`` will also return the result directly without the need for a callback, - such as: ``var result = client.captureMessage('Hello, world!');`` - -Global Error Handler --------------------- - -It is recommended that you install the global error handler, which will ensure any exceptions -that are unhandled will get reported: - -.. code-block:: javascript - - client.patchGlobal(); - // or - raven.patchGlobal(client); - // or - raven.patchGlobal('___DSN___'); - -Generally you don't want to leave the process running after receiving an -`uncaughtException` (http://nodejs.org/api/process.html#process_event_uncaughtexception), -so an optional callback is provided to allow you to hook in something like: - -.. code-block:: javascript - - client.patchGlobal(function() { - console.log('Bye, bye, world.'); - process.exit(1); - }); - -The callback is called **after** the event has been sent to the Sentry server. - -Events ------- - -If you really care if the event was logged or errored out, Client emits two events, `logged` and `error`: - -.. code-block:: javascript - - client.on('logged', function(){ - console.log('Yay, it worked!'); - }); - - client.on('error', function(e){ - // The event contains information about the failure: - // e.reason -- raw response body - // e.statusCode -- response status code - // e.response -- raw http response object - - console.log('uh oh, couldnt record the event'); - }) - - client.captureMessage('Boom'); - -Configuring the HTTP Transport ------------------------------- - -.. code-block:: javascript - - var client = new raven.Client('___DSN___', { - transport: new raven.transports.HTTPSTransport({rejectUnauthorized: false}) - }); - -Disable Raven -------------- - -Passing any falsey value as the DSN will disable sending events upstream: - -.. code-block:: javascript - - client = new raven.Client(process.env.NODE_ENV === 'production' && '___DSN___') diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/index.js deleted file mode 100644 index 1e9a597e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/index.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -module.exports = require('./lib/client'); -module.exports.utils = require('./lib/utils'); -module.exports.middleware = { - connect: require('./lib/middleware/connect') -}; -// friendly alias for "raven.middleware.express" -module.exports.middleware.express = module.exports.middleware.connect; -module.exports.transports = require('./lib/transports'); -module.exports.parsers = require('./lib/parsers'); - -// To infinity and beyond -Error.stackTraceLimit = Infinity; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/client.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/client.js deleted file mode 100644 index afb2ec88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/client.js +++ /dev/null @@ -1,266 +0,0 @@ -'use strict'; - -var parsers = require('./parsers'); -var zlib = require('zlib'); -var utils = require('./utils'); -var uuid = require('node-uuid'); -var transports = require('./transports'); -var node_util = require('util'); // node_util to avoid confusion with "utils" -var events = require('events'); - -module.exports.version = require('../package.json').version; - -var extend = Object.assign || function(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - return target; -}; - -var Client = function Client(dsn, options) { - if (arguments.length === 0) { - // no arguments, use default from environment - dsn = process.env.SENTRY_DSN; - options = {}; - } - if (typeof dsn === 'object') { - // They must only be passing through options - options = dsn; - dsn = process.env.SENTRY_DSN; - } - options = options || {}; - - this.raw_dsn = dsn; - this.dsn = utils.parseDSN(dsn); - this.name = options.name || process.env.SENTRY_NAME || require('os').hostname(); - this.root = options.root || process.cwd(); - this.transport = options.transport || transports[this.dsn.protocol]; - this.release = options.release || process.env.SENTRY_RELEASE || ''; - - this.loggerName = options.logger || ''; - this.dataCallback = options.dataCallback; - - if (this.dsn.protocol === 'https') { - // In case we want to provide our own SSL certificates / keys - this.ca = options.ca || null; - } - - // enabled if a dsn is set - this._enabled = !!this.dsn; - - var globalContext = this._globalContext = {}; - if (options.tags) { - globalContext.tags = options.tags; - } - if (options.extra) { - globalContext.extra = options.extra; - } - - this.on('error', function(e) {}); // noop -}; -node_util.inherits(Client, events.EventEmitter); -var proto = Client.prototype; - -module.exports.Client = Client; - -proto.getIdent = - proto.get_ident = function getIdent(result) { - return result.id; - }; - -proto.process = function process(kwargs) { - kwargs.modules = utils.getModules(); - kwargs.server_name = kwargs.server_name || this.name; - - if (typeof process.version !== 'undefined') { - kwargs.extra.node = process.version; - } - - kwargs.extra = extend({}, this._globalContext.extra, kwargs.extra); - kwargs.tags = extend({}, this._globalContext.tags, kwargs.tags); - - kwargs.logger = kwargs.logger || this.loggerName; - kwargs.event_id = uuid().replace(/-/g, ''); - kwargs.timestamp = new Date().toISOString().split('.')[0]; - kwargs.project = this.dsn.project_id; - kwargs.platform = 'node'; - - if (this._globalContext.user) { - kwargs.user = this._globalContext.user || kwargs.user; - } - - // Only include release information if it is set - if (this.release) { - kwargs.release = this.release; - } - - var ident = { - 'id': kwargs.event_id - }; - - if (this.dataCallback) { - kwargs = this.dataCallback(kwargs); - } - - // this will happen asynchronously. We don't care about it's response. - this._enabled && this.send(kwargs, ident); - - return ident; -}; - -proto.send = function send(kwargs, ident) { - var self = this; - - // stringify, but don't choke on circular references, see: http://stackoverflow.com/questions/11616630/json-stringify-avoid-typeerror-converting-circular-structure-to-json - var cache = []; - var skwargs = JSON.stringify(kwargs, function(k, v) { - if (typeof v === 'object' && v !== null) { - if (cache.indexOf(v) !== -1) return; - cache.push(v); - } - return v; - }); - - zlib.deflate(skwargs, function(err, buff) { - var message = buff.toString('base64'), - timestamp = new Date().getTime(), - headers = { - 'X-Sentry-Auth': utils.getAuthHeader(timestamp, self.dsn.public_key, self.dsn.private_key), - 'Content-Type': 'application/octet-stream', - 'Content-Length': message.length - }; - - self.transport.send(self, message, headers, ident); - }); -}; - -proto.captureMessage = function captureMessage(message, kwargs, cb) { - if (!cb && typeof kwargs === 'function') { - cb = kwargs; - kwargs = {}; - } else { - kwargs = kwargs || {}; - } - var result = this.process(parsers.parseText(message, kwargs)); - cb && cb(result); - return result; -}; - -proto.captureException = function captureError(err, kwargs, cb) { - if (!(err instanceof Error)) { - // This handles when someone does: - // throw "something awesome"; - // We synthesize an Error here so we can extract a (rough) stack trace. - err = new Error(err); - } - - var self = this; - if (!cb && typeof kwargs === 'function') { - cb = kwargs; - kwargs = {}; - } else { - kwargs = kwargs || {}; - } - parsers.parseError(err, kwargs, function(kw) { - var result = self.process(kw); - cb && cb(result); - }); -}; -proto.captureError = proto.captureException; // legacy alias - -proto.captureQuery = function captureQuery(query, engine, kwargs, cb) { - if (!cb && typeof kwargs === 'function') { - cb = kwargs; - kwargs = {}; - } else { - kwargs = kwargs || {}; - } - var result = this.process(parsers.parseQuery(query, engine, kwargs)); - cb && cb(result); - return result; -}; - -/* - * Set/clear a user to be sent along with the payload. - * - * @param {object} user An object representing user data [optional] - * @return {Raven} - */ -proto.setUserContext = function setUserContext(user) { - this._globalContext.user = user; -}; - -/* - * Merge extra attributes to be sent along with the payload. - * - * @param {object} extra An object representing extra data [optional] - * @return {Raven} - */ -proto.setExtraContext = function setExtraContext(extra) { - this._globalContext.extra = extend({}, this._globalContext.extra, extra); - return this; -}; - -/* - * Merge tags to be sent along with the payload. - * - * @param {object} tags An object representing tags [optional] - * @return {Raven} - */ -proto.setTagsContext = function setTagsContext(tags) { - this._globalContext.tags = extend({}, this._globalContext.tags, tags); - return this; -}; - -proto.patchGlobal = function patchGlobal(cb) { - module.exports.patchGlobal(this, cb); - return this; -}; - -module.exports.patchGlobal = function patchGlobal(client, cb) { - // handle when the first argument is the callback, with no client specified - if (typeof client === 'function') { - cb = client; - client = new Client(); - // first argument is a string DSN - } else if (typeof client === 'string') { - client = new Client(client); - } - // at the end, if we still don't have a Client, let's make one! - !(client instanceof Client) && (client = new Client()); - - var called = false; - process.on('uncaughtException', function(err) { - if (cb) { // bind event listeners only if a callback was supplied - var onLogged = function onLogged() { - called = false; - cb(true, err); - }; - - var onError = function onError() { - called = false; - cb(false, err); - }; - - if (called) { - client.removeListener('logged', onLogged); - client.removeListener('error', onError); - return cb(false, err); - } - - client.once('logged', onLogged); - client.once('error', onError); - } - - called = true; - - client.captureError(err, function(result) { - node_util.log('uncaughtException: ' + client.getIdent(result)); - }); - }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/middleware/connect.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/middleware/connect.js deleted file mode 100644 index c2a7ba04..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/middleware/connect.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var raven = require('../client'); -var parsers = require('../parsers'); - -// Legacy support -var connectMiddleware = function(client) { - return connectMiddleware.errorHandler(client); -}; - -// Error handler. This should be the last item listed in middleware, but -// before any other error handlers. -connectMiddleware.errorHandler = function(client) { - client = client instanceof raven.Client ? client : new raven.Client(client); - return function(err, req, res, next) { - var status = err.status || err.statusCode || err.status_code || 500; - - // skip anything not marked as an internal server error - if (status < 500) return next(err); - - var kwargs = parsers.parseRequest(req); - client.captureError(err, kwargs, function(result) { - res.sentry = client.getIdent(result); - next(err, req, res); - }); - }; -}; - -// Ensures asynchronous exceptions are routed to the errorHandler. This -// should be the **first** item listed in middleware. -connectMiddleware.requestHandler = function(client) { - var domain = require('domain'); - return function(req, res, next) { - var reqDomain = domain.create(); - reqDomain.on('error', next); - return reqDomain.run(next); - }; -}; - -module.exports = connectMiddleware; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/parsers.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/parsers.js deleted file mode 100644 index 18690b8c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/parsers.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var cookie = require('cookie'); -var urlParser = require('url'); -var utils = require('./utils'); - -module.exports.parseText = function parseText(message, kwargs) { - kwargs = kwargs || {}; - kwargs.message = message; - - return kwargs; -}; - -module.exports.parseError = function parseError(err, kwargs, cb) { - utils.parseStack(err, function(frames) { - var name = err.name + ''; - if (typeof kwargs.message === 'undefined') { - kwargs.message = name + ': ' + (err.message || '<no message>'); - } - kwargs.exception = [{ - type: name, - value: err.message, - stacktrace: { - frames: frames - } - }]; - - // Save additional error properties to `extra` under the error type (e.g. `extra.AttributeError`) - var extraErrorProps; - for (var key in err) { - if (err.hasOwnProperty(key)) { - if (key !== 'name' && key !== 'message' && key !== 'stack') { - extraErrorProps = extraErrorProps || {}; - extraErrorProps[key] = err[key]; - } - } - } - if (extraErrorProps) { - kwargs.extra = kwargs.extra || {}; - kwargs.extra[name] = extraErrorProps; - } - - for (var n = frames.length - 1; n >= 0; n--) { - if (frames[n].in_app) { - kwargs.culprit = kwargs.culprit || utils.getCulprit(frames[n]); - break; - } - } - - cb(kwargs); - }); -}; - -module.exports.parseQuery = function parseQuery(query, engine, kwargs) { - kwargs = kwargs || {}; - kwargs.message = query; - kwargs.query = { - query: query, - engine: engine - }; - return kwargs; -}; - -module.exports.parseRequest = function parseRequest(req, kwargs) { - kwargs = kwargs || {}; - - // headers: - // - // node: req.headers - // express: req.headers - // koa: req.header - // - var headers = req.headers || req.header || {}; - - // method: - // - // node: req.method - // express: req.method - // koa: req.method - // - var method = req.method; - - // host: - // - // node: req.headers.host - // express: req.hostname in > 4 and req.host in < 4 - // koa: req.host - // - var host = req.hostname || req.host || headers.host || '<no host>'; - - // protocol: - // - // node: <n/a> - // express: req.protocol - // koa: req.protocol - // - var protocol = 'https' === req.protocol || true === req.secure || true === (req.socket || {}).encrypted ? 'https' : 'http'; - - // url (including path and query string): - // - // node: req.originalUrl - // express: req.originalUrl - // koa: req.url - // - var originalUrl = req.originalUrl || req.url; - - // absolute url - var url = protocol + '://' + host + originalUrl; - - // query string - // - // node: req.url (raw) - // express: req.query - // koa: req.query - // - var query = req.query || urlParser.parse(originalUrl || '', true).query; - - // cookies: - // - // node: req.headers.cookie - // express: req.headers.cookie - // koa: req.headers.cookie - // - var cookies = cookie.parse(headers.cookie || ''); - - // body data: - // - // node: req.body - // express: req.body - // koa: req.body - // - var data = req.body; - if (['GET', 'HEAD'].indexOf(method) === -1) { - if (typeof data === 'undefined') { - data = '<unavailable>'; - } - } - - if (data && {}.toString.call(data) !== '[object String]') { - // Make sure the request body is a string - data = JSON.stringify(data); - } - - // client ip: - // - // node: req.connection.remoteAddress - // express: req.ip - // koa: req.ip - // - var ip = req.ip || (req.connection || {}).remoteAddress; - - // http interface - var http = { - method: method, - query_string: query, - headers: headers, - cookies: cookies, - data: data, - url: url, - env: process.env - }; - - // add remote ip - http.env.REMOTE_ADDR = ip; - - // expose http interface - kwargs.request = http; - - return kwargs; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/transports.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/transports.js deleted file mode 100644 index 5464224a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/transports.js +++ /dev/null @@ -1,90 +0,0 @@ -'use strict'; - -var events = require('events'); -var util = require('util'); - -function Transport() {} -util.inherits(Transport, events.EventEmitter); - -var http = require('http'); - -function HTTPTransport(options) { - this.defaultPort = 80; - this.transport = http; - this.options = options || {}; -} -util.inherits(HTTPTransport, Transport); -HTTPTransport.prototype.send = function(client, message, headers, ident) { - var options = { - hostname: client.dsn.host, - path: client.dsn.path + 'api/' + client.dsn.project_id + '/store/', - headers: headers, - method: 'POST', - port: client.dsn.port || this.defaultPort, - ca: client.ca - }; - for (var key in this.options) { - if (this.options.hasOwnProperty(key)) { - options[key] = this.options[key]; - } - } - var req = this.transport.request(options, function(res) { - res.setEncoding('utf8'); - if (res.statusCode >= 200 && res.statusCode < 300) { - client.emit('logged', ident); - } else { - var reason = res.headers['x-sentry-error']; - var e = new Error('HTTP Error (' + res.statusCode + '): ' + reason); - e.response = res; - e.statusCode = res.statusCode; - e.reason = reason; - e.sendMessage = message; - e.requestHeaders = headers; - e.ident = ident; - client.emit('error', e); - } - // force the socket to drain - var noop = function() {}; - res.on('data', noop); - res.on('end', noop); - }); - req.on('error', function(e) { - client.emit('error', e); - }); - req.end(message); -}; - -var https = require('https'); - -function HTTPSTransport(options) { - this.defaultPort = 443; - this.transport = https; - this.options = options || {}; -} -util.inherits(HTTPSTransport, HTTPTransport); - -var dgram = require('dgram'); - -function UDPTransport() { - this.defaultPort = 12345; -} -util.inherits(UDPTransport, Transport); -UDPTransport.prototype.send = function(client, message, headers, ident) { - message = new Buffer(headers['X-Sentry-Auth'] + '\n\n' + message); - - var udp = dgram.createSocket('udp4'); - udp.send(message, 0, message.length, client.dsn.port || this.defaultPort, client.dsn.host, function(e, bytes) { - if (e) { - return client.emit('error', e); - } - client.emit('logged', ident); - udp.close(); - }); -}; - -module.exports.http = new HTTPTransport(); -module.exports.https = new HTTPSTransport(); -module.exports.udp = new UDPTransport(); -module.exports.Transport = Transport; -module.exports.HTTPTransport = HTTPTransport; -module.exports.HTTPSTransport = HTTPSTransport; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/utils.js deleted file mode 100644 index 713b03d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/lib/utils.js +++ /dev/null @@ -1,182 +0,0 @@ -'use strict'; - -var raven = require('./client'); -var fs = require('fs'); -var url = require('url'); -var transports = require('./transports'); -var path = require('path'); -var lsmod = require('lsmod'); -var stacktrace = require('stack-trace'); - -var protocolMap = { - 'http': 80, - 'https': 443 -}; - -module.exports.getAuthHeader = function getAuthHeader(timestamp, api_key, api_secret) { - var header = ['Sentry sentry_version=5']; - header.push('sentry_timestamp=' + timestamp); - header.push('sentry_client=raven-node/' + raven.version); - header.push('sentry_key=' + api_key); - header.push('sentry_secret=' + api_secret); - return header.join(', '); -}; - -module.exports.parseDSN = function parseDSN(dsn) { - if (!dsn) { - // Let a falsey value return false explicitly - return false; - } - try { - var parsed = url.parse(dsn), - response = { - protocol: parsed.protocol.slice(0, -1), - public_key: parsed.auth.split(':')[0], - private_key: parsed.auth.split(':')[1], - host: parsed.host.split(':')[0] - }; - - if (~response.protocol.indexOf('+')) { - response.protocol = response.protocol.split('+')[1]; - } - - if (!transports.hasOwnProperty(response.protocol)) { - throw new Error('Invalid transport'); - } - - var index = parsed.pathname.lastIndexOf('/'); - response.path = parsed.pathname.substr(0, index + 1); - response.project_id = parsed.pathname.substr(index + 1); - response.port = ~~parsed.port || protocolMap[response.protocol] || 443; - return response; - } catch (e) { - throw new Error('Invalid Sentry DSN: ' + dsn); - } -}; - -module.exports.getCulprit = function getCulprit(frame) { - if (frame.module || frame.function) - return (frame.module || '?') + ' at ' + (frame.function || '?'); - return '<unknown>'; -}; - -var module_cache; -module.exports.getModules = function getModules() { - if (module_cache) { - return module_cache; - } - - return module_cache = lsmod(); -}; - - -var LINES_OF_CONTEXT = 7; - -function getFunction(line) { - try { - return line.getFunctionName() || - line.getTypeName() + '.' + (line.getMethodName() || '<anonymous>'); - } catch (e) { - // This seems to happen sometimes when using 'use strict', - // stemming from `getTypeName`. - // [TypeError: Cannot read property 'constructor' of undefined] - return '<anonymous>'; - } -} - -var main_module = (require.main && path.dirname(require.main.filename) || process.cwd()) + '/'; - -function getModule(filename, base) { - if (!base) base = main_module; - - // It's specifically a module - var file = path.basename(filename, '.js'); - filename = path.dirname(filename); - var n = filename.lastIndexOf('/node_modules/'); - if (n > -1) { - // /node_modules/ is 14 chars - return filename.substr(n + 14).replace(/\//g, '.') + ':' + file; - } - // Let's see if it's a part of the main module - // To be a part of main module, it has to share the same base - n = (filename + '/').lastIndexOf(base, 0); - if (n === 0) { - var module = filename.substr(base.length).replace(/\//g, '.'); - if (module) module += ':'; - module += file; - return module - } - return file; -} - -function parseStack(err, cb) { - var frames = [], - cache = {} - - if (!err) { - return cb(frames); - } - - var stack = stacktrace.parse(err); - - // check to make sure that the stack is what we need it to be. - if (!stack || !Array.isArray(stack) || !stack.length || !stack[0].getFileName) { - // lol, stack is fucked - return cb(frames); - } - - var callbacks = stack.length; - - // Sentry requires the stack trace to be from oldest to newest - stack.reverse(); - - stack.forEach(function(line, index) { - var frame = { - filename: line.getFileName() || '', - lineno: line.getLineNumber(), - 'function': getFunction(line), - }, - isInternal = line.isNative() || - frame.filename[0] !== '/' && - frame.filename[0] !== '.'; - - // in_app is all that's not an internal Node function or a module within node_modules - frame.in_app = !isInternal && !~frame.filename.indexOf('node_modules/'); - - // Extract a module name based on the filename - if (frame.filename) frame.module = getModule(frame.filename); - - // internal Node files are not full path names. Ignore them. - if (isInternal) { - frames[index] = frame; - if (--callbacks === 0) cb(frames); - return; - } - - if (frame.filename in cache) { - parseLines(cache[frame.filename]); - if (--callbacks === 0) cb(frames); - return; - } - - fs.readFile(frame.filename, function(_err, file) { - if (!_err) { - file = file.toString().split('\n'); - cache[frame.filename] = file; - parseLines(file, frame); - } - frames[index] = frame; - if (--callbacks === 0) cb(frames); - }); - - function parseLines(lines) { - frame.pre_context = lines.slice(Math.max(0, frame.lineno - (LINES_OF_CONTEXT + 1)), frame.lineno - 1); - frame.context_line = lines[frame.lineno - 1]; - frame.post_context = lines.slice(frame.lineno, frame.lineno + LINES_OF_CONTEXT); - } - }); -} - -// expose basically for testing because I don't know what I'm doing -module.exports.parseStack = parseStack; -module.exports.getModule = getModule; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/.bin/uuid b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/.bin/uuid deleted file mode 120000 index 80eb14aa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/.bin/uuid +++ /dev/null @@ -1 +0,0 @@ -../node-uuid/bin/uuid \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/.travis.yml deleted file mode 100644 index 9400c118..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - "0.6" - - "0.8" - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/LICENSE deleted file mode 100644 index 249d9def..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -// MIT License - -Copyright (C) Roman Shtylman <shtylman@gmail.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/README.md deleted file mode 100644 index 5187ed1c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# cookie [![Build Status](https://secure.travis-ci.org/shtylman/node-cookie.png?branch=master)](http://travis-ci.org/shtylman/node-cookie) # - -cookie is a basic cookie parser and serializer. It doesn't make assumptions about how you are going to deal with your cookies. It basically just provides a way to read and write the HTTP cookie headers. - -See [RFC6265](http://tools.ietf.org/html/rfc6265) for details about the http header for cookies. - -## how? - -``` -npm install cookie -``` - -```javascript -var cookie = require('cookie'); - -var hdr = cookie.serialize('foo', 'bar'); -// hdr = 'foo=bar'; - -var cookies = cookie.parse('foo=bar; cat=meow; dog=ruff'); -// cookies = { foo: 'bar', cat: 'meow', dog: 'ruff' }; -``` - -## more - -The serialize function takes a third parameter, an object, to set cookie options. See the RFC for valid values. - -### path -> cookie path - -### expires -> absolute expiration date for the cookie (Date object) - -### maxAge -> relative max age of the cookie from when the client receives it (seconds) - -### domain -> domain for the cookie - -### secure -> true or false - -### httpOnly -> true or false - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/index.js deleted file mode 100644 index 16bdb65d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/index.js +++ /dev/null @@ -1,70 +0,0 @@ - -/// Serialize the a name value pair into a cookie string suitable for -/// http headers. An optional options object specified cookie parameters -/// -/// serialize('foo', 'bar', { httpOnly: true }) -/// => "foo=bar; httpOnly" -/// -/// @param {String} name -/// @param {String} val -/// @param {Object} options -/// @return {String} -var serialize = function(name, val, opt){ - opt = opt || {}; - var enc = opt.encode || encode; - var pairs = [name + '=' + enc(val)]; - - if (opt.maxAge) pairs.push('Max-Age=' + opt.maxAge); - if (opt.domain) pairs.push('Domain=' + opt.domain); - if (opt.path) pairs.push('Path=' + opt.path); - if (opt.expires) pairs.push('Expires=' + opt.expires.toUTCString()); - if (opt.httpOnly) pairs.push('HttpOnly'); - if (opt.secure) pairs.push('Secure'); - - return pairs.join('; '); -}; - -/// Parse the given cookie header string into an object -/// The object has the various cookies as keys(names) => values -/// @param {String} str -/// @return {Object} -var parse = function(str, opt) { - opt = opt || {}; - var obj = {} - var pairs = str.split(/[;,] */); - var dec = opt.decode || decode; - - pairs.forEach(function(pair) { - var eq_idx = pair.indexOf('=') - - // skip things that don't look like key=value - if (eq_idx < 0) { - return; - } - - var key = pair.substr(0, eq_idx).trim() - var val = pair.substr(++eq_idx, pair.length).trim(); - - // quoted values - if ('"' == val[0]) { - val = val.slice(1, -1); - } - - // only assign once - if (undefined == obj[key]) { - try { - obj[key] = dec(val); - } catch (e) { - obj[key] = val; - } - } - }); - - return obj; -}; - -var encode = encodeURIComponent; -var decode = decodeURIComponent; - -module.exports.serialize = serialize; -module.exports.parse = parse; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/package.json deleted file mode 100644 index 8b8d3912..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "author": { - "name": "Roman Shtylman", - "email": "shtylman@gmail.com" - }, - "name": "cookie", - "description": "cookie parsing and serialization", - "version": "0.1.0", - "repository": { - "type": "git", - "url": "git://github.com/shtylman/node-cookie.git" - }, - "keywords": [ - "cookie", - "cookies" - ], - "main": "index.js", - "scripts": { - "test": "mocha" - }, - "dependencies": {}, - "devDependencies": { - "mocha": "1.x.x" - }, - "optionalDependencies": {}, - "engines": { - "node": "*" - }, - "_id": "cookie@0.1.0", - "dist": { - "shasum": "90eb469ddce905c866de687efc43131d8801f9d0", - "tarball": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz" - }, - "_from": "cookie@0.1.0", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "shtylman", - "email": "shtylman@gmail.com" - }, - "maintainers": [ - { - "name": "shtylman", - "email": "shtylman@gmail.com" - } - ], - "directories": {}, - "_shasum": "90eb469ddce905c866de687efc43131d8801f9d0", - "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", - "bugs": { - "url": "https://github.com/shtylman/node-cookie/issues" - }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/shtylman/node-cookie#readme" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/test/mocha.opts b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/test/mocha.opts deleted file mode 100644 index e2bfcc5a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/test/mocha.opts +++ /dev/null @@ -1 +0,0 @@ ---ui qunit diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/test/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/test/parse.js deleted file mode 100644 index c6c27a20..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/test/parse.js +++ /dev/null @@ -1,44 +0,0 @@ - -var assert = require('assert'); - -var cookie = require('..'); - -suite('parse'); - -test('basic', function() { - assert.deepEqual({ foo: 'bar' }, cookie.parse('foo=bar')); - assert.deepEqual({ foo: '123' }, cookie.parse('foo=123')); -}); - -test('ignore spaces', function() { - assert.deepEqual({ FOO: 'bar', baz: 'raz' }, - cookie.parse('FOO = bar; baz = raz')); -}); - -test('escaping', function() { - assert.deepEqual({ foo: 'bar=123456789&name=Magic+Mouse' }, - cookie.parse('foo="bar=123456789&name=Magic+Mouse"')); - - assert.deepEqual({ email: ' ",;/' }, - cookie.parse('email=%20%22%2c%3b%2f')); -}); - -test('ignore escaping error and return original value', function() { - assert.deepEqual({ foo: '%1', bar: 'bar' }, cookie.parse('foo=%1;bar=bar')); -}); - -test('ignore non values', function() { - assert.deepEqual({ foo: '%1', bar: 'bar' }, cookie.parse('foo=%1;bar=bar;HttpOnly;Secure')); -}); - -test('unencoded', function() { - assert.deepEqual({ foo: 'bar=123456789&name=Magic+Mouse' }, - cookie.parse('foo="bar=123456789&name=Magic+Mouse"',{ - decode: function(value) { return value; } - })); - - assert.deepEqual({ email: '%20%22%2c%3b%2f' }, - cookie.parse('email=%20%22%2c%3b%2f',{ - decode: function(value) { return value; } - })); -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/test/serialize.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/test/serialize.js deleted file mode 100644 index 86bb8c93..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/cookie/test/serialize.js +++ /dev/null @@ -1,64 +0,0 @@ -// builtin -var assert = require('assert'); - -var cookie = require('..'); - -suite('serialize'); - -test('basic', function() { - assert.equal('foo=bar', cookie.serialize('foo', 'bar')); - assert.equal('foo=bar%20baz', cookie.serialize('foo', 'bar baz')); -}); - -test('path', function() { - assert.equal('foo=bar; Path=/', cookie.serialize('foo', 'bar', { - path: '/' - })); -}); - -test('secure', function() { - assert.equal('foo=bar; Secure', cookie.serialize('foo', 'bar', { - secure: true - })); - - assert.equal('foo=bar', cookie.serialize('foo', 'bar', { - secure: false - })); -}); - -test('domain', function() { - assert.equal('foo=bar; Domain=example.com', cookie.serialize('foo', 'bar', { - domain: 'example.com' - })); -}); - -test('httpOnly', function() { - assert.equal('foo=bar; HttpOnly', cookie.serialize('foo', 'bar', { - httpOnly: true - })); -}); - -test('maxAge', function() { - assert.equal('foo=bar; Max-Age=1000', cookie.serialize('foo', 'bar', { - maxAge: 1000 - })); -}); - -test('escaping', function() { - assert.deepEqual('cat=%2B%20', cookie.serialize('cat', '+ ')); -}); - -test('parse->serialize', function() { - - assert.deepEqual({ cat: 'foo=123&name=baz five' }, cookie.parse( - cookie.serialize('cat', 'foo=123&name=baz five'))); - - assert.deepEqual({ cat: ' ";/' }, cookie.parse( - cookie.serialize('cat', ' ";/'))); -}); - -test('unencoded', function() { - assert.deepEqual('cat=+ ', cookie.serialize('cat', '+ ', { - encode: function(value) { return value; } - })); -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/.travis.yml deleted file mode 100644 index 9400c118..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - "0.6" - - "0.8" - - "0.10" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/README.md deleted file mode 100644 index d54c5d30..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# lsmod [![Build Status](https://secure.travis-ci.org/defunctzombie/node-lsmod.png?branch=master)](https://travis-ci.org/defunctzombie/node-lsmod) - -lsmod fetches the list of modules and the versions loaded by the entry file for your node.js app. - -## use - -```javascript -var lsmod = require('lsmod'); - -// get an object with module version information -var modules = lsmod(); - -// modules is an object `key:version` -{ - express: '3.0.5', - hbs: '2.0.1' -} -``` - -Note that the version is the actual installed version and not the dependency version string. - -## install via [npm](https://npmjs.org) - -``` -npm install lsmod -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/index.js deleted file mode 100644 index 42a9be6d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/index.js +++ /dev/null @@ -1,55 +0,0 @@ -// builtin -var fs = require('fs'); -var path = require('path'); - -// node 0.6 support -fs.existsSync = fs.existsSync || path.existsSync; - -// main_paths are the paths where our mainprog will be able to load from -// we store these to avoid grabbing the modules that were loaded as a result -// of a dependency module loading its dependencies, we only care about deps our -// mainprog loads -var main_paths = require.main && require.main.paths || []; - -module.exports = function() { - var paths = Object.keys(require.cache || []); - - // module information - var infos = {}; - - // paths we have already inspected to avoid traversing again - var seen = {}; - - paths.forEach(function(p) { - var dir = p; - - (function updir() { - var orig = dir; - dir = path.dirname(orig); - - if (!dir || orig === dir || seen[orig]) { - return; - } - else if (main_paths.indexOf(dir) < 0) { - return updir(); - } - - var pkgfile = path.join(orig, 'package.json'); - var exists = fs.existsSync(pkgfile); - - seen[orig] = true; - - // travel up the tree if no package.json here - if (!exists) { - return updir(); - } - - try { - var info = JSON.parse(fs.readFileSync(pkgfile, 'utf8')); - infos[info.name] = info.version; - } catch (e) {}; - })(); - }); - - return infos; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/package.json deleted file mode 100644 index b74dd948..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "lsmod", - "version": "1.0.0", - "description": "fetch list of modules and versions installed for the project root", - "main": "index.js", - "scripts": { - "test": "mocha --ui qunit" - }, - "repository": { - "type": "git", - "url": "git://github.com/shtylman/node-lsmod.git" - }, - "keywords": [ - "modules", - "runtime" - ], - "devDependencies": { - "mocha": "1.7.4" - }, - "author": { - "name": "Roman Shtylman", - "email": "shtylman@gmail.com" - }, - "license": "MIT", - "gitHead": "2348f08779ffc6c4f4da09e115d7cba824d559df", - "bugs": { - "url": "https://github.com/shtylman/node-lsmod/issues" - }, - "homepage": "https://github.com/shtylman/node-lsmod#readme", - "_id": "lsmod@1.0.0", - "_shasum": "9a00f76dca36eb23fa05350afe1b585d4299e64b", - "_from": "lsmod@1.0.0", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - }, - "dist": { - "shasum": "9a00f76dca36eb23fa05350afe1b585d4299e64b", - "tarball": "https://registry.npmjs.org/lsmod/-/lsmod-1.0.0.tgz" - }, - "maintainers": [ - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/lsmod-1.0.0.tgz_1462744301549_0.14080407982692122" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/lsmod/-/lsmod-1.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/test.js deleted file mode 100644 index 5d7e5f32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/lsmod/test.js +++ /dev/null @@ -1,19 +0,0 @@ -// mocha puts itself as main, we don't want that -require.main.paths.shift(); -require.main.paths.shift(); - -var assert = require('assert'); -var lsmod = require('./'); - -test('basic', function() { - var modules = lsmod(); - - // our own module is not present because it is not in node_modules - assert.equal(modules.lsmod, undefined); - - // mocha is the only thing we have - assert.equal(modules.mocha, '1.7.4'); - - // diff is a dep of mocha and we should not get it as a result - assert.equal(modules.diff, undefined); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/.npmignore deleted file mode 100644 index 88861393..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -.DS_Store -.nyc_output -coverage diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/LICENSE.md deleted file mode 100644 index 652609b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2010-2012 Robert Kieffer - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/README.md deleted file mode 100644 index 5cd85550..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/README.md +++ /dev/null @@ -1,254 +0,0 @@ -# node-uuid - -Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS. - -Features: - -* Generate RFC4122 version 1 or version 4 UUIDs -* Runs in node.js and all browsers. -* Registered as a [ComponentJS](https://github.com/component/component) [component](https://github.com/component/component/wiki/Components) ('broofa/node-uuid'). -* Cryptographically strong random # generation - * `crypto.randomBytes(n)` in node.js - * `window.crypto.getRandomValues(ta)` in [supported browsers](https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues#Browser_Compatibility) -* 1.1K minified and gzip'ed (Want something smaller? Check this [crazy shit](https://gist.github.com/982883) out! ) -* [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html) -* Comes with a Command Line Interface for generating uuids on the command line - -## Getting Started - -Install it in your browser: - -```html -<script src="uuid.js"></script> -``` - -Or in node.js: - -``` -npm install node-uuid -``` - -```javascript -var uuid = require('node-uuid'); -``` - -Then create some ids ... - -```javascript -// Generate a v1 (time-based) id -uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' - -// Generate a v4 (random) id -uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1' -``` - -## API - -### uuid.v1([`options` [, `buffer` [, `offset`]]]) - -Generate and return a RFC4122 v1 (timestamp-based) UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - - * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1. - * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used. - * `msecs` - (Number | Date) Time in milliseconds since unix Epoch. Default: The current time is used. - * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2. - -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Notes: - -1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.) - -Example: Generate string UUID with fully-specified options - -```javascript -uuid.v1({ - node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], - clockseq: 0x1234, - msecs: new Date('2011-11-01').getTime(), - nsecs: 5678 -}); // -> "710b962e-041c-11e1-9234-0123456789ab" -``` - -Example: In-place generation of two binary IDs - -```javascript -// Generate two ids in an array -var arr = new Array(32); // -> [] -uuid.v1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15] -uuid.v1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15] - -// Optionally use uuid.unparse() to get stringify the ids -uuid.unparse(buffer); // -> '02a2ce90-1432-11e1-8558-0b488e4fc115' -uuid.unparse(buffer, 16) // -> '02a31cb0-1432-11e1-8558-0b488e4fc115' -``` - -### uuid.v4([`options` [, `buffer` [, `offset`]]]) - -Generate and return a RFC4122 v4 UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - - * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values - * `rng` - (Function) Random # generator to use. Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values. - -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Example: Generate string UUID with fully-specified options - -```javascript -uuid.v4({ - random: [ - 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, - 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36 - ] -}); -// -> "109156be-c4fb-41ea-b1b4-efe1671c5836" -``` - -Example: Generate two IDs in a single buffer - -```javascript -var buffer = new Array(32); // (or 'new Buffer' in node.js) -uuid.v4(null, buffer, 0); -uuid.v4(null, buffer, 16); -``` - -### uuid.parse(id[, buffer[, offset]]) -### uuid.unparse(buffer[, offset]) - -Parse and unparse UUIDs - - * `id` - (String) UUID(-like) string - * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used - * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0 - -Example parsing and unparsing a UUID string - -```javascript -var bytes = uuid.parse('797ff043-11eb-11e1-80d6-510998755d10'); // -> <Buffer 79 7f f0 43 11 eb 11 e1 80 d6 51 09 98 75 5d 10> -var string = uuid.unparse(bytes); // -> '797ff043-11eb-11e1-80d6-510998755d10' -``` - -### uuid.noConflict() - -(Browsers only) Set `uuid` property back to it's previous value. - -Returns the node-uuid object. - -Example: - -```javascript -var myUuid = uuid.noConflict(); -myUuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' -``` - -## Deprecated APIs - -Support for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version. - -### uuid([format [, buffer [, offset]]]) - -uuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary). - -### uuid.BufferClass - -The class of container created when generating binary uuid data if no buffer argument is specified. This is expected to go away, with no replacement API. - -## Command Line Interface - -To use the executable, it's probably best to install this library globally. - -`npm install -g node-uuid` - -Usage: - -``` -USAGE: uuid [version] [options] - - -options: - ---help Display this message and exit -``` - -`version` must be an RFC4122 version that is supported by this library, which is currently version 1 and version 4 (denoted by "v1" and "v4", respectively). `version` defaults to version 4 when not supplied. - -### Examples - -``` -> uuid -3a91f950-dec8-4688-ba14-5b7bbfc7a563 -``` - -``` -> uuid v1 -9d0b43e0-7696-11e3-964b-250efa37a98e -``` - -``` -> uuid v4 -6790ac7c-24ac-4f98-8464-42f6d98a53ae -``` - -## Testing - -In node.js - -``` -npm test -``` - -In Browser - -``` -open test/test.html -``` - -### Benchmarking - -Requires node.js - -``` -npm install uuid uuid-js -node benchmark/benchmark.js -``` - -For a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark) - -For browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance). - -## Release notes - -### 1.4.6 - -* Properly detect node crypto and whatwg crypto -* Workaround phantomjs/browserify bug -* Explicit check for `window` rather implicit this-global -* Issue warning if Math.random() is being used -* "use strict"; -* A few jshint / stylistic updates (=== and such) - -### 1.4.0 - -* Improved module context detection -* Removed public RNG functions - -### 1.3.2 - -* Improve tests and handling of v1() options (Issue #24) -* Expose RNG option to allow for perf testing with different generators - -### 1.3.0 - -* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)! -* Support for node.js crypto API -* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/README.md deleted file mode 100644 index aaeb2ea0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# node-uuid Benchmarks - -### Results - -To see the results of our benchmarks visit https://github.com/broofa/node-uuid/wiki/Benchmark - -### Run them yourself - -node-uuid comes with some benchmarks to measure performance of generating UUIDs. These can be run using node.js. node-uuid is being benchmarked against some other uuid modules, that are available through npm namely `uuid` and `uuid-js`. - -To prepare and run the benchmark issue; - -``` -npm install uuid uuid-js -node benchmark/benchmark.js -``` - -You'll see an output like this one: - -``` -# v4 -nodeuuid.v4(): 854700 uuids/second -nodeuuid.v4('binary'): 788643 uuids/second -nodeuuid.v4('binary', buffer): 1336898 uuids/second -uuid(): 479386 uuids/second -uuid('binary'): 582072 uuids/second -uuidjs.create(4): 312304 uuids/second - -# v1 -nodeuuid.v1(): 938086 uuids/second -nodeuuid.v1('binary'): 683060 uuids/second -nodeuuid.v1('binary', buffer): 1644736 uuids/second -uuidjs.create(1): 190621 uuids/second -``` - -* The `uuid()` entries are for Nikhil Marathe's [uuid module](https://bitbucket.org/nikhilm/uuidjs) which is a wrapper around the native libuuid library. -* The `uuidjs()` entries are for Patrick Negri's [uuid-js module](https://github.com/pnegri/uuid-js) which is a pure javascript implementation based on [UUID.js](https://github.com/LiosK/UUID.js) by LiosK. - -If you want to get more reliable results you can run the benchmark multiple times and write the output into a log file: - -``` -for i in {0..9}; do node benchmark/benchmark.js >> benchmark/bench_0.4.12.log; done; -``` - -If you're interested in how performance varies between different node versions, you can issue the above command multiple times. - -You can then use the shell script `bench.sh` provided in this directory to calculate the averages over all benchmark runs and draw a nice plot: - -``` -(cd benchmark/ && ./bench.sh) -``` - -This assumes you have [gnuplot](http://www.gnuplot.info/) and [ImageMagick](http://www.imagemagick.org/) installed. You'll find a nice `bench.png` graph in the `benchmark/` directory then. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/bench.gnu b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/bench.gnu deleted file mode 100644 index a342fbbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/bench.gnu +++ /dev/null @@ -1,174 +0,0 @@ -#!/opt/local/bin/gnuplot -persist -# -# -# G N U P L O T -# Version 4.4 patchlevel 3 -# last modified March 2011 -# System: Darwin 10.8.0 -# -# Copyright (C) 1986-1993, 1998, 2004, 2007-2010 -# Thomas Williams, Colin Kelley and many others -# -# gnuplot home: http://www.gnuplot.info -# faq, bugs, etc: type "help seeking-assistance" -# immediate help: type "help" -# plot window: hit 'h' -set terminal postscript eps noenhanced defaultplex \ - leveldefault color colortext \ - solid linewidth 1.2 butt noclip \ - palfuncparam 2000,0.003 \ - "Helvetica" 14 -set output 'bench.eps' -unset clip points -set clip one -unset clip two -set bar 1.000000 front -set border 31 front linetype -1 linewidth 1.000 -set xdata -set ydata -set zdata -set x2data -set y2data -set timefmt x "%d/%m/%y,%H:%M" -set timefmt y "%d/%m/%y,%H:%M" -set timefmt z "%d/%m/%y,%H:%M" -set timefmt x2 "%d/%m/%y,%H:%M" -set timefmt y2 "%d/%m/%y,%H:%M" -set timefmt cb "%d/%m/%y,%H:%M" -set boxwidth -set style fill empty border -set style rectangle back fc lt -3 fillstyle solid 1.00 border lt -1 -set style circle radius graph 0.02, first 0, 0 -set dummy x,y -set format x "% g" -set format y "% g" -set format x2 "% g" -set format y2 "% g" -set format z "% g" -set format cb "% g" -set angles radians -unset grid -set key title "" -set key outside left top horizontal Right noreverse enhanced autotitles columnhead nobox -set key noinvert samplen 4 spacing 1 width 0 height 0 -set key maxcolumns 2 maxrows 0 -unset label -unset arrow -set style increment default -unset style line -set style line 1 linetype 1 linewidth 2.000 pointtype 1 pointsize default pointinterval 0 -unset style arrow -set style histogram clustered gap 2 title offset character 0, 0, 0 -unset logscale -set offsets graph 0.05, 0.15, 0, 0 -set pointsize 1.5 -set pointintervalbox 1 -set encoding default -unset polar -unset parametric -unset decimalsign -set view 60, 30, 1, 1 -set samples 100, 100 -set isosamples 10, 10 -set surface -unset contour -set clabel '%8.3g' -set mapping cartesian -set datafile separator whitespace -unset hidden3d -set cntrparam order 4 -set cntrparam linear -set cntrparam levels auto 5 -set cntrparam points 5 -set size ratio 0 1,1 -set origin 0,0 -set style data points -set style function lines -set xzeroaxis linetype -2 linewidth 1.000 -set yzeroaxis linetype -2 linewidth 1.000 -set zzeroaxis linetype -2 linewidth 1.000 -set x2zeroaxis linetype -2 linewidth 1.000 -set y2zeroaxis linetype -2 linewidth 1.000 -set ticslevel 0.5 -set mxtics default -set mytics default -set mztics default -set mx2tics default -set my2tics default -set mcbtics default -set xtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set xtics norangelimit -set xtics () -set ytics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set ytics autofreq norangelimit -set ztics border in scale 1,0.5 nomirror norotate offset character 0, 0, 0 -set ztics autofreq norangelimit -set nox2tics -set noy2tics -set cbtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 -set cbtics autofreq norangelimit -set title "" -set title offset character 0, 0, 0 font "" norotate -set timestamp bottom -set timestamp "" -set timestamp offset character 0, 0, 0 font "" norotate -set rrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] ) -set autoscale rfixmin -set autoscale rfixmax -set trange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] ) -set autoscale tfixmin -set autoscale tfixmax -set urange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale ufixmin -set autoscale ufixmax -set vrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale vfixmin -set autoscale vfixmax -set xlabel "" -set xlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate -set x2label "" -set x2label offset character 0, 0, 0 font "" textcolor lt -1 norotate -set xrange [ * : * ] noreverse nowriteback # (currently [-0.150000:3.15000] ) -set autoscale xfixmin -set autoscale xfixmax -set x2range [ * : * ] noreverse nowriteback # (currently [0.00000:3.00000] ) -set autoscale x2fixmin -set autoscale x2fixmax -set ylabel "" -set ylabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set y2label "" -set y2label offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set yrange [ 0.00000 : 1.90000e+06 ] noreverse nowriteback # (currently [:] ) -set autoscale yfixmin -set autoscale yfixmax -set y2range [ * : * ] noreverse nowriteback # (currently [0.00000:1.90000e+06] ) -set autoscale y2fixmin -set autoscale y2fixmax -set zlabel "" -set zlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate -set zrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) -set autoscale zfixmin -set autoscale zfixmax -set cblabel "" -set cblabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set cbrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] ) -set autoscale cbfixmin -set autoscale cbfixmax -set zero 1e-08 -set lmargin -1 -set bmargin -1 -set rmargin -1 -set tmargin -1 -set pm3d explicit at s -set pm3d scansautomatic -set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean -set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB -set palette rgbformulae 7, 5, 15 -set colorbox default -set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault -set loadpath -set fontpath -set fit noerrorvariables -GNUTERM = "aqua" -plot 'bench_results.txt' using 2:xticlabel(1) w lp lw 2, '' using 3:xticlabel(1) w lp lw 2, '' using 4:xticlabel(1) w lp lw 2, '' using 5:xticlabel(1) w lp lw 2, '' using 6:xticlabel(1) w lp lw 2, '' using 7:xticlabel(1) w lp lw 2, '' using 8:xticlabel(1) w lp lw 2, '' using 9:xticlabel(1) w lp lw 2 -# EOF diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/bench.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/bench.sh deleted file mode 100755 index d870a0cb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/bench.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -# for a given node version run: -# for i in {0..9}; do node benchmark.js >> bench_0.6.2.log; done; - -PATTERNS=('nodeuuid.v1()' "nodeuuid.v1('binary'," 'nodeuuid.v4()' "nodeuuid.v4('binary'," "uuid()" "uuid('binary')" 'uuidjs.create(1)' 'uuidjs.create(4)' '140byte') -FILES=(node_uuid_v1_string node_uuid_v1_buf node_uuid_v4_string node_uuid_v4_buf libuuid_v4_string libuuid_v4_binary uuidjs_v1_string uuidjs_v4_string 140byte_es) -INDICES=(2 3 2 3 2 2 2 2 2) -VERSIONS=$( ls bench_*.log | sed -e 's/^bench_\([0-9\.]*\)\.log/\1/' | tr "\\n" " " ) -TMPJOIN="tmp_join" -OUTPUT="bench_results.txt" - -for I in ${!FILES[*]}; do - F=${FILES[$I]} - P=${PATTERNS[$I]} - INDEX=${INDICES[$I]} - echo "version $F" > $F - for V in $VERSIONS; do - (VAL=$( grep "$P" bench_$V.log | LC_ALL=en_US awk '{ sum += $'$INDEX' } END { print sum/NR }' ); echo $V $VAL) >> $F - done - if [ $I == 0 ]; then - cat $F > $TMPJOIN - else - join $TMPJOIN $F > $OUTPUT - cp $OUTPUT $TMPJOIN - fi - rm $F -done - -rm $TMPJOIN - -gnuplot bench.gnu -convert -density 200 -resize 800x560 -flatten bench.eps bench.png -rm bench.eps diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/benchmark-native.c b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/benchmark-native.c deleted file mode 100644 index dbfc75f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/benchmark-native.c +++ /dev/null @@ -1,34 +0,0 @@ -/* -Test performance of native C UUID generation - -To Compile: cc -luuid benchmark-native.c -o benchmark-native -*/ - -#include <stdio.h> -#include <unistd.h> -#include <sys/time.h> -#include <uuid/uuid.h> - -int main() { - uuid_t myid; - char buf[36+1]; - int i; - struct timeval t; - double start, finish; - - gettimeofday(&t, NULL); - start = t.tv_sec + t.tv_usec/1e6; - - int n = 2e5; - for (i = 0; i < n; i++) { - uuid_generate(myid); - uuid_unparse(myid, buf); - } - - gettimeofday(&t, NULL); - finish = t.tv_sec + t.tv_usec/1e6; - double dur = finish - start; - - printf("%d uuids/sec", (int)(n/dur)); - return 0; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/benchmark.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/benchmark.js deleted file mode 100644 index 40e6efbe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/benchmark/benchmark.js +++ /dev/null @@ -1,84 +0,0 @@ -try { - var nodeuuid = require('../uuid'); -} catch (e) { - console.error('node-uuid require failed - skipping tests'); -} - -try { - var uuid = require('uuid'); -} catch (e) { - console.error('uuid require failed - skipping tests'); -} - -try { - var uuidjs = require('uuid-js'); -} catch (e) { - console.error('uuid-js require failed - skipping tests'); -} - -var N = 5e5; - -function rate(msg, t) { - console.log(msg + ': ' + - (N / (Date.now() - t) * 1e3 | 0) + - ' uuids/second'); -} - -console.log('# v4'); - -// node-uuid - string form -if (nodeuuid) { - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4(); - rate('nodeuuid.v4() - using node.js crypto RNG', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4({rng: nodeuuid.mathRNG}); - rate('nodeuuid.v4() - using Math.random() RNG', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary'); - rate('nodeuuid.v4(\'binary\')', t); - - var buffer = new nodeuuid.BufferClass(16); - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary', buffer); - rate('nodeuuid.v4(\'binary\', buffer)', t); -} - -// libuuid - string form -if (uuid) { - for (var i = 0, t = Date.now(); i < N; i++) uuid(); - rate('uuid()', t); - - for (var i = 0, t = Date.now(); i < N; i++) uuid('binary'); - rate('uuid(\'binary\')', t); -} - -// uuid-js - string form -if (uuidjs) { - for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(4); - rate('uuidjs.create(4)', t); -} - -// 140byte.es -for (var i = 0, t = Date.now(); i < N; i++) 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(s,r){r=Math.random()*16|0;return (s=='x'?r:r&0x3|0x8).toString(16)}); -rate('140byte.es_v4', t); - -console.log(''); -console.log('# v1'); - -// node-uuid - v1 string form -if (nodeuuid) { - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1(); - rate('nodeuuid.v1()', t); - - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary'); - rate('nodeuuid.v1(\'binary\')', t); - - var buffer = new nodeuuid.BufferClass(16); - for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary', buffer); - rate('nodeuuid.v1(\'binary\', buffer)', t); -} - -// uuid-js - v1 string form -if (uuidjs) { - for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(1); - rate('uuidjs.create(1)', t); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/bin/uuid b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/bin/uuid deleted file mode 100755 index f732e991..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/bin/uuid +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env node - -var path = require('path'); -var uuid = require(path.join(__dirname, '..')); - -var arg = process.argv[2]; - -if ('--help' === arg) { - console.log('\n USAGE: uuid [version] [options]\n\n'); - console.log(' options:\n'); - console.log(' --help Display this message and exit\n'); - process.exit(0); -} - -if (null == arg) { - console.log(uuid()); - process.exit(0); -} - -if ('v1' !== arg && 'v4' !== arg) { - console.error('Version must be RFC4122 version 1 or version 4, denoted as "v1" or "v4"'); - process.exit(1); -} - -console.log(uuid[arg]()); -process.exit(0); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/bower.json deleted file mode 100644 index c0925e19..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/bower.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "node-uuid", - "version": "1.4.7", - "homepage": "https://github.com/broofa/node-uuid", - "authors": [ - "Robert Kieffer <robert@broofa.com>" - ], - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "main": "uuid.js", - "keywords": [ - "uuid", - "gid", - "rfc4122" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/component.json deleted file mode 100644 index 3ff46336..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/component.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "node-uuid", - "repo": "broofa/node-uuid", - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "version": "1.4.7", - "author": "Robert Kieffer <robert@broofa.com>", - "contributors": [ - { - "name": "Christoph Tavan <dev@tavan.de>", - "github": "https://github.com/ctavan" - } - ], - "keywords": [ - "uuid", - "guid", - "rfc4122" - ], - "dependencies": {}, - "development": {}, - "main": "uuid.js", - "scripts": [ - "uuid.js" - ], - "license": "MIT" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/package.json deleted file mode 100644 index d1a7dc3a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "author": { - "name": "Robert Kieffer", - "email": "robert@broofa.com" - }, - "bin": { - "uuid": "./bin/uuid" - }, - "bugs": { - "url": "https://github.com/broofa/node-uuid/issues" - }, - "contributors": [ - { - "name": "AJ ONeal", - "email": "coolaj86@gmail.com" - }, - { - "name": "Christoph Tavan", - "email": "dev@tavan.de" - } - ], - "dependencies": {}, - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "devDependencies": { - "nyc": "^2.2.0" - }, - "directories": {}, - "homepage": "https://github.com/broofa/node-uuid", - "installable": true, - "keywords": [ - "guid", - "rfc4122", - "uuid" - ], - "lib": ".", - "licenses": [ - { - "type": "MIT", - "url": "https://raw.github.com/broofa/node-uuid/master/LICENSE.md" - } - ], - "main": "./uuid.js", - "maintainers": [ - { - "name": "broofa", - "email": "robert@broofa.com" - }, - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - } - ], - "name": "node-uuid", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/broofa/node-uuid.git" - }, - "scripts": { - "coverage": "nyc npm test && nyc report", - "test": "node test/test.js" - }, - "url": "http://github.com/broofa/node-uuid", - "version": "1.4.7", - "gitHead": "309512573ec1c60143c257157479a20f7f1f51cd", - "_id": "node-uuid@1.4.7", - "_shasum": "6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f", - "_from": "node-uuid@>=1.4.1 <1.5.0", - "_npmVersion": "3.3.6", - "_nodeVersion": "5.0.0", - "_npmUser": { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - "dist": { - "shasum": "6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f", - "tarball": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - }, - "_resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/test/compare_v1.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/test/compare_v1.js deleted file mode 100644 index 05af8221..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/test/compare_v1.js +++ /dev/null @@ -1,63 +0,0 @@ -var assert = require('assert'), - nodeuuid = require('../uuid'), - uuidjs = require('uuid-js'), - libuuid = require('uuid').generate, - util = require('util'), - exec = require('child_process').exec, - os = require('os'); - -// On Mac Os X / macports there's only the ossp-uuid package that provides uuid -// On Linux there's uuid-runtime which provides uuidgen -var uuidCmd = os.type() === 'Darwin' ? 'uuid -1' : 'uuidgen -t'; - -function compare(ids) { - console.log(ids); - for (var i = 0; i < ids.length; i++) { - var id = ids[i].split('-'); - id = [id[2], id[1], id[0]].join(''); - ids[i] = id; - } - var sorted = ([].concat(ids)).sort(); - - if (sorted.toString() !== ids.toString()) { - console.log('Warning: sorted !== ids'); - } else { - console.log('everything in order!'); - } -} - -// Test time order of v1 uuids -var ids = []; -while (ids.length < 10e3) ids.push(nodeuuid.v1()); - -var max = 10; -console.log('node-uuid:'); -ids = []; -for (var i = 0; i < max; i++) ids.push(nodeuuid.v1()); -compare(ids); - -console.log(''); -console.log('uuidjs:'); -ids = []; -for (var i = 0; i < max; i++) ids.push(uuidjs.create(1).toString()); -compare(ids); - -console.log(''); -console.log('libuuid:'); -ids = []; -var count = 0; -var last = function() { - compare(ids); -} -var cb = function(err, stdout, stderr) { - ids.push(stdout.substring(0, stdout.length-1)); - count++; - if (count < max) { - return next(); - } - last(); -}; -var next = function() { - exec(uuidCmd, cb); -}; -next(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/test/test.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/test/test.html deleted file mode 100644 index d80326ec..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/test/test.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> - <head> - <style> - div { - font-family: monospace; - font-size: 8pt; - } - div.log {color: #444;} - div.warn {color: #550;} - div.error {color: #800; font-weight: bold;} - </style> - <script src="../uuid.js"></script> - </head> - <body> - <script src="./test.js"></script> - </body> -</html> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/test/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/test/test.js deleted file mode 100644 index 5f1113d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/test/test.js +++ /dev/null @@ -1,231 +0,0 @@ -if (!this.uuid) { - // node.js - uuid = require('../uuid'); - if (!/_rb/.test(uuid._rng.toString())) { - throw new Error("should use crypto for node.js"); - } -} - -// -// x-platform log/assert shims -// - -function _log(msg, type) { - type = type || 'log'; - - if (typeof(document) != 'undefined') { - document.write('<div class="' + type + '">' + msg.replace(/\n/g, '<br />') + '</div>'); - } - if (typeof(console) != 'undefined') { - var color = { - log: '\033[39m', - warn: '\033[33m', - error: '\033[31m' - }; - console[type](color[type] + msg + color.log); - } -} - -function log(msg) {_log(msg, 'log');} -function warn(msg) {_log(msg, 'warn');} -function error(msg) {_log(msg, 'error');} - -function assert(res, msg) { - if (!res) { - error('FAIL: ' + msg); - } else { - log('Pass: ' + msg); - } -} - -// -// Unit tests -// - -// Verify ordering of v1 ids created with explicit times -var TIME = 1321644961388; // 2011-11-18 11:36:01.388-08:00 - -function compare(name, ids) { - ids = ids.map(function(id) { - return id.split('-').reverse().join('-'); - }).sort(); - var sorted = ([].concat(ids)).sort(); - - assert(sorted.toString() == ids.toString(), name + ' have expected order'); -} - -// Verify ordering of v1 ids created using default behavior -compare('uuids with current time', [ - uuid.v1(), - uuid.v1(), - uuid.v1(), - uuid.v1(), - uuid.v1() -]); - -// Verify ordering of v1 ids created with explicit times -compare('uuids with time option', [ - uuid.v1({msecs: TIME - 10*3600*1000}), - uuid.v1({msecs: TIME - 1}), - uuid.v1({msecs: TIME}), - uuid.v1({msecs: TIME + 1}), - uuid.v1({msecs: TIME + 28*24*3600*1000}) -]); - -assert( - uuid.v1({msecs: TIME}) != uuid.v1({msecs: TIME}), - 'IDs created at same msec are different' -); - -// Verify throw if too many ids created -var thrown = false; -try { - uuid.v1({msecs: TIME, nsecs: 10000}); -} catch (e) { - thrown = true; -} -assert(thrown, 'Exception thrown when > 10K ids created in 1 ms'); - -// Verify clock regression bumps clockseq -var uidt = uuid.v1({msecs: TIME}); -var uidtb = uuid.v1({msecs: TIME - 1}); -assert( - parseInt(uidtb.split('-')[3], 16) - parseInt(uidt.split('-')[3], 16) === 1, - 'Clock regression by msec increments the clockseq' -); - -// Verify clock regression bumps clockseq -var uidtn = uuid.v1({msecs: TIME, nsecs: 10}); -var uidtnb = uuid.v1({msecs: TIME, nsecs: 9}); -assert( - parseInt(uidtnb.split('-')[3], 16) - parseInt(uidtn.split('-')[3], 16) === 1, - 'Clock regression by nsec increments the clockseq' -); - -// Verify explicit options produce expected id -var id = uuid.v1({ - msecs: 1321651533573, - nsecs: 5432, - clockseq: 0x385c, - node: [ 0x61, 0xcd, 0x3c, 0xbb, 0x32, 0x10 ] -}); -assert(id == 'd9428888-122b-11e1-b85c-61cd3cbb3210', 'Explicit options produce expected id'); - -// Verify adjacent ids across a msec boundary are 1 time unit apart -var u0 = uuid.v1({msecs: TIME, nsecs: 9999}); -var u1 = uuid.v1({msecs: TIME + 1, nsecs: 0}); - -var before = u0.split('-')[0], after = u1.split('-')[0]; -var dt = parseInt(after, 16) - parseInt(before, 16); -assert(dt === 1, 'Ids spanning 1ms boundary are 100ns apart'); - -// -// Test parse/unparse -// - -id = '00112233445566778899aabbccddeeff'; -assert(uuid.unparse(uuid.parse(id.substr(0,10))) == - '00112233-4400-0000-0000-000000000000', 'Short parse'); -assert(uuid.unparse(uuid.parse('(this is the uuid -> ' + id + id)) == - '00112233-4455-6677-8899-aabbccddeeff', 'Dirty parse'); - -// -// Perf tests -// - -var generators = { - v1: uuid.v1, - v4: uuid.v4 -}; - -var UUID_FORMAT = { - v1: /[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i, - v4: /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i -}; - -var N = 1e4; - -// Get %'age an actual value differs from the ideal value -function divergence(actual, ideal) { - return Math.round(100*100*(actual - ideal)/ideal)/100; -} - -function rate(msg, t) { - log(msg + ': ' + (N / (Date.now() - t) * 1e3 | 0) + ' uuids\/second'); -} - -for (var version in generators) { - var counts = {}, max = 0; - var generator = generators[version]; - var format = UUID_FORMAT[version]; - - log('\nSanity check ' + N + ' ' + version + ' uuids'); - for (var i = 0, ok = 0; i < N; i++) { - id = generator(); - if (!format.test(id)) { - throw Error(id + ' is not a valid UUID string'); - } - - if (id != uuid.unparse(uuid.parse(id))) { - assert(fail, id + ' is not a valid id'); - } - - // Count digits for our randomness check - if (version == 'v4') { - var digits = id.replace(/-/g, '').split(''); - for (var j = digits.length-1; j >= 0; j--) { - var c = digits[j]; - max = Math.max(max, counts[c] = (counts[c] || 0) + 1); - } - } - } - - // Check randomness for v4 UUIDs - if (version == 'v4') { - // Limit that we get worried about randomness. (Purely empirical choice, this!) - var limit = 2*100*Math.sqrt(1/N); - - log('\nChecking v4 randomness. Distribution of Hex Digits (% deviation from ideal)'); - - for (var i = 0; i < 16; i++) { - var c = i.toString(16); - var bar = '', n = counts[c], p = Math.round(n/max*100|0); - - // 1-3,5-8, and D-F: 1:16 odds over 30 digits - var ideal = N*30/16; - if (i == 4) { - // 4: 1:1 odds on 1 digit, plus 1:16 odds on 30 digits - ideal = N*(1 + 30/16); - } else if (i >= 8 && i <= 11) { - // 8-B: 1:4 odds on 1 digit, plus 1:16 odds on 30 digits - ideal = N*(1/4 + 30/16); - } else { - // Otherwise: 1:16 odds on 30 digits - ideal = N*30/16; - } - var d = divergence(n, ideal); - - // Draw bar using UTF squares (just for grins) - var s = n/max*50 | 0; - while (s--) bar += '='; - - assert(Math.abs(d) < limit, c + ' |' + bar + '| ' + counts[c] + ' (' + d + '% < ' + limit + '%)'); - } - } -} - -// Perf tests -for (var version in generators) { - log('\nPerformance testing ' + version + ' UUIDs'); - var generator = generators[version]; - var buf = new uuid.BufferClass(16); - - for (var i = 0, t = Date.now(); i < N; i++) generator(); - rate('uuid.' + version + '()', t); - - for (var i = 0, t = Date.now(); i < N; i++) generator('binary'); - rate('uuid.' + version + '(\'binary\')', t); - - for (var i = 0, t = Date.now(); i < N; i++) generator('binary', buf); - rate('uuid.' + version + '(\'binary\', buffer)', t); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/uuid.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/uuid.js deleted file mode 100644 index 89c5b8fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/node-uuid/uuid.js +++ /dev/null @@ -1,272 +0,0 @@ -// uuid.js -// -// Copyright (c) 2010-2012 Robert Kieffer -// MIT License - http://opensource.org/licenses/mit-license.php - -/*global window, require, define */ -(function(_window) { - 'use strict'; - - // Unique ID creation requires a high quality random # generator. We feature - // detect to determine the best RNG source, normalizing to a function that - // returns 128-bits of randomness, since that's what's usually required - var _rng, _mathRNG, _nodeRNG, _whatwgRNG, _previousRoot; - - function setupBrowser() { - // Allow for MSIE11 msCrypto - var _crypto = _window.crypto || _window.msCrypto; - - if (!_rng && _crypto && _crypto.getRandomValues) { - // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto - // - // Moderately fast, high quality - try { - var _rnds8 = new Uint8Array(16); - _whatwgRNG = _rng = function whatwgRNG() { - _crypto.getRandomValues(_rnds8); - return _rnds8; - }; - _rng(); - } catch(e) {} - } - - if (!_rng) { - // Math.random()-based (RNG) - // - // If all else fails, use Math.random(). It's fast, but is of unspecified - // quality. - var _rnds = new Array(16); - _mathRNG = _rng = function() { - for (var i = 0, r; i < 16; i++) { - if ((i & 0x03) === 0) { r = Math.random() * 0x100000000; } - _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - - return _rnds; - }; - if ('undefined' !== typeof console && console.warn) { - console.warn("[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()"); - } - } - } - - function setupNode() { - // Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html - // - // Moderately fast, high quality - if ('function' === typeof require) { - try { - var _rb = require('crypto').randomBytes; - _nodeRNG = _rng = _rb && function() {return _rb(16);}; - _rng(); - } catch(e) {} - } - } - - if (_window) { - setupBrowser(); - } else { - setupNode(); - } - - // Buffer class to use - var BufferClass = ('function' === typeof Buffer) ? Buffer : Array; - - // Maps for number <-> hex string conversion - var _byteToHex = []; - var _hexToByte = {}; - for (var i = 0; i < 256; i++) { - _byteToHex[i] = (i + 0x100).toString(16).substr(1); - _hexToByte[_byteToHex[i]] = i; - } - - // **`parse()` - Parse a UUID into it's component bytes** - function parse(s, buf, offset) { - var i = (buf && offset) || 0, ii = 0; - - buf = buf || []; - s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) { - if (ii < 16) { // Don't overflow! - buf[i + ii++] = _hexToByte[oct]; - } - }); - - // Zero out remaining bytes if string was short - while (ii < 16) { - buf[i + ii++] = 0; - } - - return buf; - } - - // **`unparse()` - Convert UUID byte array (ala parse()) into a string** - function unparse(buf, offset) { - var i = offset || 0, bth = _byteToHex; - return bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + '-' + - bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]] + - bth[buf[i++]] + bth[buf[i++]]; - } - - // **`v1()` - Generate time-based UUID** - // - // Inspired by https://github.com/LiosK/UUID.js - // and http://docs.python.org/library/uuid.html - - // random #'s we need to init node and clockseq - var _seedBytes = _rng(); - - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - var _nodeId = [ - _seedBytes[0] | 0x01, - _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5] - ]; - - // Per 4.2.2, randomize (14 bit) clockseq - var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff; - - // Previous uuid creation time - var _lastMSecs = 0, _lastNSecs = 0; - - // See https://github.com/broofa/node-uuid for API details - function v1(options, buf, offset) { - var i = buf && offset || 0; - var b = buf || []; - - options = options || {}; - - var clockseq = (options.clockseq != null) ? options.clockseq : _clockseq; - - // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - var msecs = (options.msecs != null) ? options.msecs : new Date().getTime(); - - // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - var nsecs = (options.nsecs != null) ? options.nsecs : _lastNSecs + 1; - - // Time since last uuid creation (in msecs) - var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; - - // Per 4.2.1.2, Bump clockseq on clock regression - if (dt < 0 && options.clockseq == null) { - clockseq = clockseq + 1 & 0x3fff; - } - - // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) { - nsecs = 0; - } - - // Per 4.2.1.2 Throw error if too many uuids are requested - if (nsecs >= 10000) { - throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; - - // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - msecs += 12219292800000; - - // `time_low` - var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; - - // `time_mid` - var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; - - // `time_high_and_version` - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - b[i++] = tmh >>> 16 & 0xff; - - // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - b[i++] = clockseq >>> 8 | 0x80; - - // `clock_seq_low` - b[i++] = clockseq & 0xff; - - // `node` - var node = options.node || _nodeId; - for (var n = 0; n < 6; n++) { - b[i + n] = node[n]; - } - - return buf ? buf : unparse(b); - } - - // **`v4()` - Generate random UUID** - - // See https://github.com/broofa/node-uuid for API details - function v4(options, buf, offset) { - // Deprecated - 'format' argument, as supported in v1.2 - var i = buf && offset || 0; - - if (typeof(options) === 'string') { - buf = (options === 'binary') ? new BufferClass(16) : null; - options = null; - } - options = options || {}; - - var rnds = options.random || (options.rng || _rng)(); - - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = (rnds[6] & 0x0f) | 0x40; - rnds[8] = (rnds[8] & 0x3f) | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ii++) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || unparse(rnds); - } - - // Export public API - var uuid = v4; - uuid.v1 = v1; - uuid.v4 = v4; - uuid.parse = parse; - uuid.unparse = unparse; - uuid.BufferClass = BufferClass; - uuid._rng = _rng; - uuid._mathRNG = _mathRNG; - uuid._nodeRNG = _nodeRNG; - uuid._whatwgRNG = _whatwgRNG; - - if (('undefined' !== typeof module) && module.exports) { - // Publish as node.js module - module.exports = uuid; - } else if (typeof define === 'function' && define.amd) { - // Publish as AMD module - define(function() {return uuid;}); - - - } else { - // Publish as global (in browsers) - _previousRoot = _window.uuid; - - // **`noConflict()` - (browser only) to reset global 'uuid' var** - uuid.noConflict = function() { - _window.uuid = _previousRoot; - return uuid; - }; - - _window.uuid = uuid; - } -})('undefined' !== typeof window ? window : null); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/.npmignore deleted file mode 100644 index b59f7e3a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/.npmignore +++ /dev/null @@ -1 +0,0 @@ -test/ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/License b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/License deleted file mode 100644 index 11ec094e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Felix Geisendörfer (felix@debuggable.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/Makefile deleted file mode 100644 index a7ce31d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -SHELL := /bin/bash - -test: - @./test/run.js - -release: - git push - git push --tags - npm publish . - -.PHONY: test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/Readme.md deleted file mode 100644 index fcd1b97c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/Readme.md +++ /dev/null @@ -1,98 +0,0 @@ -# stack-trace - -Get v8 stack traces as an array of CallSite objects. - -## Install - -``` bash -npm install stack-trace -``` - -## Usage - -The stack-trace module makes it easy for you to capture the current stack: - -``` javascript -var stackTrace = require('stack-trace'); -var trace = stackTrace.get(); - -require('assert').strictEqual(trace[0].getFileName(), __filename); -``` - -However, sometimes you have already popped the stack you are interested in, -and all you have left is an `Error` object. This module can help: - -``` javascript -var stackTrace = require('stack-trace'); -var err = new Error('something went wrong'); -var trace = stackTrace.parse(err); - -require('assert').strictEqual(trace[0].getFileName(), __filename); -``` - -Please note that parsing the `Error#stack` property is not perfect, only -certain properties can be retrieved with it as noted in the API docs below. - -## Long stack traces - -stack-trace works great with [long-stack-traces][], when parsing an `err.stack` -that has crossed the event loop boundary, a `CallSite` object returning -`'----------------------------------------'` for `getFileName()` is created. -All other methods of the event loop boundary call site return `null`. - -[long-stack-traces]: https://github.com/tlrobinson/long-stack-traces - -## API - -### stackTrace.get([belowFn]) - -Returns an array of `CallSite` objects, where element `0` is the current call -site. - -When passing a function on the current stack as the `belowFn` parameter, the -returned array will only include `CallSite` objects below this function. - -### stackTrace.parse(err) - -Parses the `err.stack` property of an `Error` object into an array compatible -with those returned by `stackTrace.get()`. However, only the following methods -are implemented on the returned `CallSite` objects. - -* getTypeName -* getFunctionName -* getMethodName -* getFileName -* getLineNumber -* getColumnNumber -* isNative - -Note: Except `getFunctionName()`, all of the above methods return exactly the -same values as you would get from `stackTrace.get()`. `getFunctionName()` -is sometimes a little different, but still useful. - -### CallSite - -The official v8 CallSite object API can be found [here][v8stackapi]. A quick -excerpt: - -> A CallSite object defines the following methods: -> -> * **getThis**: returns the value of this -> * **getTypeName**: returns the type of this as a string. This is the name of the function stored in the constructor field of this, if available, otherwise the object's [[Class]] internal property. -> * **getFunction**: returns the current function -> * **getFunctionName**: returns the name of the current function, typically its name property. If a name property is not available an attempt will be made to try to infer a name from the function's context. -> * **getMethodName**: returns the name of the property of this or one of its prototypes that holds the current function -> * **getFileName**: if this function was defined in a script returns the name of the script -> * **getLineNumber**: if this function was defined in a script returns the current line number -> * **getColumnNumber**: if this function was defined in a script returns the current column number -> * **getEvalOrigin**: if this function was created using a call to eval returns a CallSite object representing the location where eval was called -> * **isToplevel**: is this a toplevel invocation, that is, is this the global object? -> * **isEval**: does this call take place in code defined by a call to eval? -> * **isNative**: is this call in native V8 code? -> * **isConstructor**: is this a constructor call? - -[v8stackapi]: http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi - -## License - -stack-trace is licensed under the MIT license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/lib/stack-trace.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/lib/stack-trace.js deleted file mode 100644 index 583002ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/lib/stack-trace.js +++ /dev/null @@ -1,111 +0,0 @@ -exports.get = function(belowFn) { - var oldLimit = Error.stackTraceLimit; - Error.stackTraceLimit = Infinity; - - var dummyObject = {}; - - var v8Handler = Error.prepareStackTrace; - Error.prepareStackTrace = function(dummyObject, v8StackTrace) { - return v8StackTrace; - }; - Error.captureStackTrace(dummyObject, belowFn || exports.get); - - var v8StackTrace = dummyObject.stack; - Error.prepareStackTrace = v8Handler; - Error.stackTraceLimit = oldLimit; - - return v8StackTrace; -}; - -exports.parse = function(err) { - if (!err.stack) { - return []; - } - - var self = this; - var lines = err.stack.split('\n').slice(1); - - return lines - .map(function(line) { - if (line.match(/^\s*[-]{4,}$/)) { - return self._createParsedCallSite({ - fileName: line, - lineNumber: null, - functionName: null, - typeName: null, - methodName: null, - columnNumber: null, - 'native': null, - }); - } - - var lineMatch = line.match(/at (?:([^\s]+)\s+)?\(?(?:(.+?):(\d+):(\d+)|([^)]+))\)?/); - if (!lineMatch) { - return; - } - - var object = null; - var method = null; - var functionName = null; - var typeName = null; - var methodName = null; - var isNative = (lineMatch[5] === 'native'); - - if (lineMatch[1]) { - var methodMatch = lineMatch[1].match(/([^\.]+)(?:\.(.+))?/); - object = methodMatch[1]; - method = methodMatch[2]; - functionName = lineMatch[1]; - typeName = 'Object'; - } - - if (method) { - typeName = object; - methodName = method; - } - - if (method === '<anonymous>') { - methodName = null; - functionName = ''; - } - - var properties = { - fileName: lineMatch[2] || null, - lineNumber: parseInt(lineMatch[3], 10) || null, - functionName: functionName, - typeName: typeName, - methodName: methodName, - columnNumber: parseInt(lineMatch[4], 10) || null, - 'native': isNative, - }; - - return self._createParsedCallSite(properties); - }) - .filter(function(callSite) { - return !!callSite; - }); -}; - -exports._createParsedCallSite = function(properties) { - var methods = {}; - for (var property in properties) { - var prefix = 'get'; - if (property === 'native') { - prefix = 'is'; - } - var method = prefix + property.substr(0, 1).toUpperCase() + property.substr(1); - - (function(property) { - methods[method] = function() { - return properties[property]; - } - })(property); - } - - var callSite = Object.create(methods); - for (var property in properties) { - callSite[property] = properties[property]; - } - - return callSite; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/package.json deleted file mode 100644 index d8a642fb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/node_modules/stack-trace/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "author": { - "name": "Felix Geisendörfer", - "email": "felix@debuggable.com", - "url": "http://debuggable.com/" - }, - "name": "stack-trace", - "description": "Get v8 stack traces as an array of CallSite objects.", - "version": "0.0.7", - "homepage": "https://github.com/felixge/node-stack-trace", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-stack-trace.git" - }, - "main": "./lib/stack-trace", - "engines": { - "node": "*" - }, - "dependencies": {}, - "devDependencies": { - "far": "0.0.3", - "long-stack-traces": "0.1.2" - }, - "bugs": { - "url": "https://github.com/felixge/node-stack-trace/issues" - }, - "_id": "stack-trace@0.0.7", - "dist": { - "shasum": "c72e089744fc3659f508cdce3621af5634ec0fff", - "tarball": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz" - }, - "_from": "stack-trace@0.0.7", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "tim-smart", - "email": "tim@fostle.com" - }, - "maintainers": [ - { - "name": "felixge", - "email": "felix@debuggable.com" - }, - { - "name": "tim-smart", - "email": "tim@fostle.com" - } - ], - "directories": {}, - "_shasum": "c72e089744fc3659f508cdce3621af5634ec0fff", - "_resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/package.json deleted file mode 100644 index 196466d3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/raven/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "name": "raven", - "description": "A standalone (Node.js) client for Sentry", - "keywords": [ - "raven", - "sentry", - "python", - "errors", - "debugging", - "exceptions" - ], - "version": "0.11.0", - "repository": { - "type": "git", - "url": "git://github.com/getsentry/raven-node.git" - }, - "author": { - "name": "Matt Robenolt", - "email": "matt@ydekproductions.com" - }, - "license": "BSD", - "main": "index", - "bin": { - "raven": "./bin/raven" - }, - "scripts": { - "pretest": "npm install && npm run lint", - "test": "NODE_ENV=test mocha --reporter dot && NODE_ENV=test node_modules/coffee-script/bin/coffee ./test/run.coffee", - "lint": "node_modules/eslint/bin/eslint.js ." - }, - "engines": { - "node": ">= 0.8.0" - }, - "dependencies": { - "cookie": "0.1.0", - "lsmod": "1.0.0", - "node-uuid": "~1.4.1", - "stack-trace": "0.0.7" - }, - "devDependencies": { - "coffee-script": "~1.10.0", - "connect": "*", - "eslint": "1.10.3", - "express": "*", - "glob": "~3.1.13", - "koa": "*", - "mocha": "*", - "mock-udp": "*", - "nock": "~0.28.2", - "should": "~3.3.1" - }, - "contributors": [ - { - "name": "https://github.com/mattrobenolt/raven-node/graphs/contributors" - } - ], - "gitHead": "aa6ac5082272d6dd1f41f8e0231fc754adb72974", - "bugs": { - "url": "https://github.com/getsentry/raven-node/issues" - }, - "homepage": "https://github.com/getsentry/raven-node#readme", - "_id": "raven@0.11.0", - "_shasum": "32981138a93e4c8ad08cfc17e46b85b453dc107b", - "_from": "raven@>=0.11.0 <0.12.0", - "_npmVersion": "2.15.1", - "_nodeVersion": "4.4.3", - "_npmUser": { - "name": "benvinegar", - "email": "ben@benv.ca" - }, - "dist": { - "shasum": "32981138a93e4c8ad08cfc17e46b85b453dc107b", - "tarball": "https://registry.npmjs.org/raven/-/raven-0.11.0.tgz" - }, - "maintainers": [ - { - "name": "benvinegar", - "email": "ben@benv.ca" - }, - { - "name": "mattrobenolt", - "email": "m@robenolt.com" - }, - { - "name": "zeeg", - "email": "dcramer@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/raven-0.11.0.tgz_1462990369059_0.2111605724785477" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/raven/-/raven-0.11.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/.npmignore deleted file mode 100644 index 13abef4f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -node_modules/* -npm_debug.log diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/LICENSE.APACHE2 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/LICENSE.APACHE2 deleted file mode 100644 index 6366c047..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/LICENSE.APACHE2 +++ /dev/null @@ -1,15 +0,0 @@ -Apache License, Version 2.0 - -Copyright (c) 2011 Dominic Tarr - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/LICENSE.BSD b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/LICENSE.BSD deleted file mode 100644 index 96bb796a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/LICENSE.BSD +++ /dev/null @@ -1,26 +0,0 @@ -Copyright (c) 2013, Dominic Tarr -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. 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. - -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. - -The views and conclusions contained in the software and documentation are those -of the authors and should not be interpreted as representing official policies, -either expressed or implied, of the FreeBSD Project. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/LICENSE.MIT b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/LICENSE.MIT deleted file mode 100644 index 6eafbd73..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/LICENSE.MIT +++ /dev/null @@ -1,24 +0,0 @@ -The MIT License - -Copyright (c) 2011 Dominic Tarr - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/README.md deleted file mode 100644 index 65a5f068..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/README.md +++ /dev/null @@ -1,149 +0,0 @@ -# rc - -The non-configurable configuration loader for lazy people. - -## Usage - -The only option is to pass rc the name of your app, and your default configuration. - -```javascript -var conf = require('rc')(appname, { - //defaults go here. - port: 2468, - - //defaults which are objects will be merged, not replaced - views: { - engine: 'jade' - } -}); -``` - -`rc` will return your configuration options merged with the defaults you specify. -If you pass in a predefined defaults object, it will be mutated: - -```javascript -var conf = {}; -require('rc')(appname, conf); -``` - -If `rc` finds any config files for your app, the returned config object will have -a `configs` array containing their paths: - -```javascript -var appCfg = require('rc')(appname, conf); -appCfg.configs[0] // /etc/appnamerc -appCfg.configs[1] // /home/dominictarr/.config/appname -appCfg.config // same as appCfg.configs[appCfg.configs.length - 1] -``` - -## Standards - -Given your application name (`appname`), rc will look in all the obvious places for configuration. - - * command line arguments (parsed by minimist) - * environment variables prefixed with `${appname}_` - * or use "\_\_" to indicate nested properties <br/> _(e.g. `appname_foo__bar__baz` => `foo.bar.baz`)_ - * if you passed an option `--config file` then from that file - * a local `.${appname}rc` or the first found looking in `./ ../ ../../ ../../../` etc. - * `$HOME/.${appname}rc` - * `$HOME/.${appname}/config` - * `$HOME/.config/${appname}` - * `$HOME/.config/${appname}/config` - * `/etc/${appname}rc` - * `/etc/${appname}/config` - * the defaults object you passed in. - -All configuration sources that were found will be flattened into one object, -so that sources **earlier** in this list override later ones. - - -## Configuration File Formats - -Configuration files (e.g. `.appnamerc`) may be in either [json](http://json.org/example) or [ini](http://en.wikipedia.org/wiki/INI_file) format. The example configurations below are equivalent: - - -#### Formatted as `ini` - -``` -; You can include comments in `ini` format if you want. - -dependsOn=0.10.0 - - -; `rc` has built-in support for ini sections, see? - -[commands] - www = ./commands/www - console = ./commands/repl - - -; You can even do nested sections - -[generators.options] - engine = ejs - -[generators.modules] - new = generate-new - engine = generate-backend - -``` - -#### Formatted as `json` - -```javascript -{ - // You can even comment your JSON, if you want - "dependsOn": "0.10.0", - "commands": { - "www": "./commands/www", - "console": "./commands/repl" - }, - "generators": { - "options": { - "engine": "ejs" - }, - "modules": { - "new": "generate-new", - "backend": "generate-backend" - } - } -} -``` - -Comments are stripped from JSON config via [strip-json-comments](https://github.com/sindresorhus/strip-json-comments). - -> Since ini, and env variables do not have a standard for types, your application needs be prepared for strings. - - - -## Advanced Usage - -#### Pass in your own `argv` - -You may pass in your own `argv` as the third argument to `rc`. This is in case you want to [use your own command-line opts parser](https://github.com/dominictarr/rc/pull/12). - -```javascript -require('rc')(appname, defaults, customArgvParser); -``` - -## Pass in your own parser - -If you have a special need to use a non-standard parser, -you can do so by passing in the parser as the 4th argument. -(leave the 3rd as null to get the default args parser) - -```javascript -require('rc')(appname, defaults, null, parser); -``` - -This may also be used to force a more strict format, -such as strict, valid JSON only. - -## Note on Performance - -`rc` is running `fs.statSync`-- so make sure you don't use it in a hot code path (e.g. a request handler) - - -## License - -Multi-licensed under the two-clause BSD License, MIT License, or Apache License, version 2.0 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/browser.js deleted file mode 100644 index 8c230c5c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/browser.js +++ /dev/null @@ -1,7 +0,0 @@ - -// when this is loaded into the browser, -// just use the defaults... - -module.exports = function (name, defaults) { - return defaults -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/index.js deleted file mode 100755 index 6f8f1139..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/index.js +++ /dev/null @@ -1,60 +0,0 @@ -#! /usr/bin/env node -var cc = require('./lib/utils') -var join = require('path').join -var deepExtend = require('deep-extend') -var etc = '/etc' -var win = process.platform === "win32" -var home = win - ? process.env.USERPROFILE - : process.env.HOME - -module.exports = function (name, defaults, argv, parse) { - if('string' !== typeof name) - throw new Error('rc(name): name *must* be string') - if(!argv) - argv = require('minimist')(process.argv.slice(2)) - defaults = ( - 'string' === typeof defaults - ? cc.json(defaults) : defaults - ) || {} - - parse = parse || cc.parse - - var env = cc.env(name + '_') - - var configs = [defaults] - var configFiles = [] - function addConfigFile (file) { - if (configFiles.indexOf(file) >= 0) return - var fileConfig = cc.file(file) - if (fileConfig) { - configs.push(parse(fileConfig)) - configFiles.push(file) - } - } - - // which files do we look at? - if (!win) - [join(etc, name, 'config'), - join(etc, name + 'rc')].forEach(addConfigFile) - if (home) - [join(home, '.config', name, 'config'), - join(home, '.config', name), - join(home, '.' + name, 'config'), - join(home, '.' + name + 'rc')].forEach(addConfigFile) - addConfigFile(cc.find('.'+name+'rc')) - if (env.config) addConfigFile(env.config) - if (argv.config) addConfigFile(argv.config) - - return deepExtend.apply(null, configs.concat([ - env, - argv, - configFiles.length ? {configs: configFiles, config: configFiles[configFiles.length - 1]} : undefined, - ])) -} - -if(!module.parent) { - console.log( - JSON.stringify(module.exports(process.argv[2]), false, 2) - ) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/lib/utils.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/lib/utils.js deleted file mode 100644 index ae6dec0b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/lib/utils.js +++ /dev/null @@ -1,103 +0,0 @@ -'use strict'; -var fs = require('fs') -var ini = require('ini') -var path = require('path') -var stripJsonComments = require('strip-json-comments') - -var parse = exports.parse = function (content) { - - //if it ends in .json or starts with { then it must be json. - //must be done this way, because ini accepts everything. - //can't just try and parse it and let it throw if it's not ini. - //everything is ini. even json with a syntax error. - - if(/^\s*{/.test(content)) - return JSON.parse(stripJsonComments(content)) - return ini.parse(content) - -} - -var file = exports.file = function () { - var args = [].slice.call(arguments).filter(function (arg) { return arg != null }) - - //path.join breaks if it's a not a string, so just skip this. - for(var i in args) - if('string' !== typeof args[i]) - return - - var file = path.join.apply(null, args) - var content - try { - return fs.readFileSync(file,'utf-8') - } catch (err) { - return - } -} - -var json = exports.json = function () { - var content = file.apply(null, arguments) - return content ? parse(content) : null -} - -var env = exports.env = function (prefix, env) { - env = env || process.env - var obj = {} - var l = prefix.length - for(var k in env) { - if((k.indexOf(prefix)) === 0) { - - var keypath = k.substring(l).split('__') - - // Trim empty strings from keypath array - var _emptyStringIndex - while ((_emptyStringIndex=keypath.indexOf('')) > -1) { - keypath.splice(_emptyStringIndex, 1) - } - - var cursor = obj - keypath.forEach(function _buildSubObj(_subkey,i){ - - // (check for _subkey first so we ignore empty strings) - // (check for cursor to avoid assignment to primitive objects) - if (!_subkey || typeof cursor !== 'object') - return - - // If this is the last key, just stuff the value in there - // Assigns actual value from env variable to final key - // (unless it's just an empty string- in that case use the last valid key) - if (i === keypath.length-1) - cursor[_subkey] = env[k] - - - // Build sub-object if nothing already exists at the keypath - if (cursor[_subkey] === undefined) - cursor[_subkey] = {} - - // Increment cursor used to track the object at the current depth - cursor = cursor[_subkey] - - }) - - } - - } - - return obj -} - -var find = exports.find = function () { - var rel = path.join.apply(null, [].slice.call(arguments)) - - function find(start, rel) { - var file = path.join(start, rel) - try { - fs.statSync(file) - return file - } catch (err) { - if(path.dirname(start) !== start) // root - return find(path.dirname(start), rel) - } - } - return find(process.cwd(), rel) -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/.bin/strip-json-comments b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/.bin/strip-json-comments deleted file mode 120000 index 63d549f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/.bin/strip-json-comments +++ /dev/null @@ -1 +0,0 @@ -../strip-json-comments/cli.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/CHANGELOG.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/CHANGELOG.md deleted file mode 100644 index f3efe0b2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/CHANGELOG.md +++ /dev/null @@ -1,21 +0,0 @@ -Changelog -========= - -v0.4.1 ------- - -- Removed test code from <b>npm</b> package - ([see pull request #21](https://github.com/unclechu/node-deep-extend/pull/21)); -- Increased minimal version of Node from 0.4.0 to 0.12.0 - (because can't run tests on lesser version anyway). - -v0.4.0 ------- - -Broken backward compatibility with v0.3.x - -- Fixed bug with extending arrays instead of cloning; -- Deep cloning for arrays; -- Check for own property; -- Fixed some documentation issues; -- Strict JS mode. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/LICENSE deleted file mode 100644 index acc4662e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-2015, Viacheslav Lotsmanov - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/README.md deleted file mode 100644 index cc17c9cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/README.md +++ /dev/null @@ -1,90 +0,0 @@ -Deep Extend -=========== - -Recursive object extending. - -[![NPM](https://nodei.co/npm/deep-extend.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/deep-extend/) -[![NPM](https://nodei.co/npm-dl/deep-extend.png?height=3)](https://nodei.co/npm/deep-extend/) - -Install -------- - -```bash -$ npm install deep-extend -``` - -Usage ------ - -```javascript -var deepExtend = require('deep-extend'); -var obj1 = { - a: 1, - b: 2, - d: { - a: 1, - b: [], - c: { test1: 123, test2: 321 } - }, - f: 5, - g: 123, - i: 321, - j: [1, 2] -}; -var obj2 = { - b: 3, - c: 5, - d: { - b: { first: 'one', second: 'two' }, - c: { test2: 222 } - }, - e: { one: 1, two: 2 }, - f: [], - g: (void 0), - h: /abc/g, - i: null, - j: [3, 4] -}; - -deepExtend(obj1, obj2); - -console.log(obj1); -/* -{ a: 1, - b: 3, - d: - { a: 1, - b: { first: 'one', second: 'two' }, - c: { test1: 123, test2: 222 } }, - f: null, - g: undefined, - c: 5, - e: { one: 1, two: 2 }, - h: /abc/g, - i: null, - j: [3, 4] } -*/ -``` - -Unit testing ------------- - -```bash -$ npm test -``` - -Changelog ---------- - -[CHANGELOG.md](./CHANGELOG.md) - -Any issues? ------------ - -Please, report about issues -[here](https://github.com/unclechu/node-deep-extend/issues). - -License -------- - -[MIT](./LICENSE) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/index.js deleted file mode 100644 index 762d81e9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/deep-extend'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/lib/deep-extend.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/lib/deep-extend.js deleted file mode 100644 index 522461d4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/lib/deep-extend.js +++ /dev/null @@ -1,144 +0,0 @@ -/*! - * @description Recursive object extending - * @author Viacheslav Lotsmanov <lotsmanov89@gmail.com> - * @license MIT - * - * The MIT License (MIT) - * - * Copyright (c) 2013-2015 Viacheslav Lotsmanov - * - * 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. - */ - -'use strict'; - -function isSpecificValue(val) { - return ( - val instanceof Buffer - || val instanceof Date - || val instanceof RegExp - ) ? true : false; -} - -function cloneSpecificValue(val) { - if (val instanceof Buffer) { - var x = new Buffer(val.length); - val.copy(x); - return x; - } else if (val instanceof Date) { - return new Date(val.getTime()); - } else if (val instanceof RegExp) { - return new RegExp(val); - } else { - throw new Error('Unexpected situation'); - } -} - -/** - * Recursive cloning array. - */ -function deepCloneArray(arr) { - var clone = []; - arr.forEach(function (item, index) { - if (typeof item === 'object' && item !== null) { - if (Array.isArray(item)) { - clone[index] = deepCloneArray(item); - } else if (isSpecificValue(item)) { - clone[index] = cloneSpecificValue(item); - } else { - clone[index] = deepExtend({}, item); - } - } else { - clone[index] = item; - } - }); - return clone; -} - -/** - * Extening object that entered in first argument. - * - * Returns extended object or false if have no target object or incorrect type. - * - * If you wish to clone source object (without modify it), just use empty new - * object as first argument, like this: - * deepExtend({}, yourObj_1, [yourObj_N]); - */ -var deepExtend = module.exports = function (/*obj_1, [obj_2], [obj_N]*/) { - if (arguments.length < 1 || typeof arguments[0] !== 'object') { - return false; - } - - if (arguments.length < 2) { - return arguments[0]; - } - - var target = arguments[0]; - - // convert arguments to array and cut off target object - var args = Array.prototype.slice.call(arguments, 1); - - var val, src, clone; - - args.forEach(function (obj) { - // skip argument if it is array or isn't object - if (typeof obj !== 'object' || Array.isArray(obj)) { - return; - } - - Object.keys(obj).forEach(function (key) { - src = target[key]; // source value - val = obj[key]; // new value - - // recursion prevention - if (val === target) { - return; - - /** - * if new value isn't object then just overwrite by new value - * instead of extending. - */ - } else if (typeof val !== 'object' || val === null) { - target[key] = val; - return; - - // just clone arrays (and recursive clone objects inside) - } else if (Array.isArray(val)) { - target[key] = deepCloneArray(val); - return; - - // custom cloning and overwrite for specific objects - } else if (isSpecificValue(val)) { - target[key] = cloneSpecificValue(val); - return; - - // overwrite by new value if source isn't object or array - } else if (typeof src !== 'object' || src === null || Array.isArray(src)) { - target[key] = deepExtend({}, val); - return; - - // source value and new value is objects both, extending... - } else { - target[key] = deepExtend(src, val); - return; - } - }); - }); - - return target; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/package.json deleted file mode 100644 index 2b17036f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/deep-extend/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "deep-extend", - "description": "Recursive object extending", - "license": "MIT", - "version": "0.4.1", - "homepage": "https://github.com/unclechu/node-deep-extend", - "keywords": [ - "deep-extend", - "extend", - "deep", - "recursive", - "xtend", - "clone", - "merge", - "json" - ], - "licenses": [ - { - "type": "MIT", - "url": "https://raw.githubusercontent.com/unclechu/node-deep-extend/master/LICENSE" - } - ], - "repository": { - "type": "git", - "url": "git://github.com/unclechu/node-deep-extend.git" - }, - "author": { - "name": "Viacheslav Lotsmanov", - "email": "lotsmanov89@gmail.com" - }, - "bugs": { - "url": "https://github.com/unclechu/node-deep-extend/issues" - }, - "contributors": [ - { - "name": "Romain Prieto", - "url": "https://github.com/rprieto" - }, - { - "name": "Max Maximov", - "url": "https://github.com/maxmaximov" - } - ], - "main": "lib/deep-extend.js", - "engines": { - "node": ">=0.12.0", - "iojs": ">=1.0.0" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "mocha": "^2.2.1", - "should": "^5.2.0" - }, - "directories": { - "lib": "./lib/", - "test": "./test/" - }, - "files": [ - "lib/deep-extend.js", - "index.js" - ], - "gitHead": "08e39356bba769744c669eb219a31fee07decd19", - "_id": "deep-extend@0.4.1", - "_shasum": "efe4113d08085f4e6f9687759810f807469e2253", - "_from": "deep-extend@>=0.4.0 <0.5.0", - "_npmVersion": "2.5.1", - "_nodeVersion": "0.12.0", - "_npmUser": { - "name": "unclechu", - "email": "lotsmanov89@gmail.com" - }, - "dist": { - "shasum": "efe4113d08085f4e6f9687759810f807469e2253", - "tarball": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz" - }, - "maintainers": [ - { - "name": "unclechu", - "email": "lotsmanov89@gmail.com" - } - ], - "_resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/README.md deleted file mode 100644 index 33df2582..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/README.md +++ /dev/null @@ -1,102 +0,0 @@ -An ini format parser and serializer for node. - -Sections are treated as nested objects. Items before the first -heading are saved on the object directly. - -## Usage - -Consider an ini-file `config.ini` that looks like this: - - ; this comment is being ignored - scope = global - - [database] - user = dbuser - password = dbpassword - database = use_this_database - - [paths.default] - datadir = /var/lib/data - array[] = first value - array[] = second value - array[] = third value - -You can read, manipulate and write the ini-file like so: - - var fs = require('fs') - , ini = require('ini') - - var config = ini.parse(fs.readFileSync('./config.ini', 'utf-8')) - - config.scope = 'local' - config.database.database = 'use_another_database' - config.paths.default.tmpdir = '/tmp' - delete config.paths.default.datadir - config.paths.default.array.push('fourth value') - - fs.writeFileSync('./config_modified.ini', ini.stringify(config, { section: 'section' })) - -This will result in a file called `config_modified.ini` being written -to the filesystem with the following content: - - [section] - scope=local - [section.database] - user=dbuser - password=dbpassword - database=use_another_database - [section.paths.default] - tmpdir=/tmp - array[]=first value - array[]=second value - array[]=third value - array[]=fourth value - - -## API - -### decode(inistring) - -Decode the ini-style formatted `inistring` into a nested object. - -### parse(inistring) - -Alias for `decode(inistring)` - -### encode(object, [options]) - -Encode the object `object` into an ini-style formatted string. If the -optional parameter `section` is given, then all top-level properties -of the object are put into this section and the `section`-string is -prepended to all sub-sections, see the usage example above. - -The `options` object may contain the following: - -* `section` A string which will be the first `section` in the encoded - ini data. Defaults to none. -* `whitespace` Boolean to specify whether to put whitespace around the - `=` character. By default, whitespace is omitted, to be friendly to - some persnickety old parsers that don't tolerate it well. But some - find that it's more human-readable and pretty with the whitespace. - -For backwards compatibility reasons, if a `string` options is passed -in, then it is assumed to be the `section` value. - -### stringify(object, [options]) - -Alias for `encode(object, [options])` - -### safe(val) - -Escapes the string `val` such that it is safe to be used as a key or -value in an ini-file. Basically escapes quotes. For example - - ini.safe('"unsafe string"') - -would result in - - "\"unsafe string\"" - -### unsafe(val) - -Unescapes the string `val` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/ini.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/ini.js deleted file mode 100644 index ddf5bd9c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/ini.js +++ /dev/null @@ -1,190 +0,0 @@ - -exports.parse = exports.decode = decode -exports.stringify = exports.encode = encode - -exports.safe = safe -exports.unsafe = unsafe - -var eol = process.platform === "win32" ? "\r\n" : "\n" - -function encode (obj, opt) { - var children = [] - , out = "" - - if (typeof opt === "string") { - opt = { - section: opt, - whitespace: false - } - } else { - opt = opt || {} - opt.whitespace = opt.whitespace === true - } - - var separator = opt.whitespace ? " = " : "=" - - Object.keys(obj).forEach(function (k, _, __) { - var val = obj[k] - if (val && Array.isArray(val)) { - val.forEach(function(item) { - out += safe(k + "[]") + separator + safe(item) + "\n" - }) - } - else if (val && typeof val === "object") { - children.push(k) - } else { - out += safe(k) + separator + safe(val) + eol - } - }) - - if (opt.section && out.length) { - out = "[" + safe(opt.section) + "]" + eol + out - } - - children.forEach(function (k, _, __) { - var nk = dotSplit(k).join('\\.') - var section = (opt.section ? opt.section + "." : "") + nk - var child = encode(obj[k], { - section: section, - whitespace: opt.whitespace - }) - if (out.length && child.length) { - out += eol - } - out += child - }) - - return out -} - -function dotSplit (str) { - return str.replace(/\1/g, '\u0002LITERAL\\1LITERAL\u0002') - .replace(/\\\./g, '\u0001') - .split(/\./).map(function (part) { - return part.replace(/\1/g, '\\.') - .replace(/\2LITERAL\\1LITERAL\2/g, '\u0001') - }) -} - -function decode (str) { - var out = {} - , p = out - , section = null - , state = "START" - // section |key = value - , re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i - , lines = str.split(/[\r\n]+/g) - , section = null - - lines.forEach(function (line, _, __) { - if (!line || line.match(/^\s*[;#]/)) return - var match = line.match(re) - if (!match) return - if (match[1] !== undefined) { - section = unsafe(match[1]) - p = out[section] = out[section] || {} - return - } - var key = unsafe(match[2]) - , value = match[3] ? unsafe((match[4] || "")) : true - switch (value) { - case 'true': - case 'false': - case 'null': value = JSON.parse(value) - } - - // Convert keys with '[]' suffix to an array - if (key.length > 2 && key.slice(-2) === "[]") { - key = key.substring(0, key.length - 2) - if (!p[key]) { - p[key] = [] - } - else if (!Array.isArray(p[key])) { - p[key] = [p[key]] - } - } - - // safeguard against resetting a previously defined - // array by accidentally forgetting the brackets - if (Array.isArray(p[key])) { - p[key].push(value) - } - else { - p[key] = value - } - }) - - // {a:{y:1},"a.b":{x:2}} --> {a:{y:1,b:{x:2}}} - // use a filter to return the keys that have to be deleted. - Object.keys(out).filter(function (k, _, __) { - if (!out[k] || typeof out[k] !== "object" || Array.isArray(out[k])) return false - // see if the parent section is also an object. - // if so, add it to that, and mark this one for deletion - var parts = dotSplit(k) - , p = out - , l = parts.pop() - , nl = l.replace(/\\\./g, '.') - parts.forEach(function (part, _, __) { - if (!p[part] || typeof p[part] !== "object") p[part] = {} - p = p[part] - }) - if (p === out && nl === l) return false - p[nl] = out[k] - return true - }).forEach(function (del, _, __) { - delete out[del] - }) - - return out -} - -function isQuoted (val) { - return (val.charAt(0) === "\"" && val.slice(-1) === "\"") - || (val.charAt(0) === "'" && val.slice(-1) === "'") -} - -function safe (val) { - return ( typeof val !== "string" - || val.match(/[=\r\n]/) - || val.match(/^\[/) - || (val.length > 1 - && isQuoted(val)) - || val !== val.trim() ) - ? JSON.stringify(val) - : val.replace(/;/g, '\\;').replace(/#/g, "\\#") -} - -function unsafe (val, doUnesc) { - val = (val || "").trim() - if (isQuoted(val)) { - // remove the single quotes before calling JSON.parse - if (val.charAt(0) === "'") { - val = val.substr(1, val.length - 2); - } - try { val = JSON.parse(val) } catch (_) {} - } else { - // walk the val to find the first not-escaped ; character - var esc = false - var unesc = ""; - for (var i = 0, l = val.length; i < l; i++) { - var c = val.charAt(i) - if (esc) { - if ("\\;#".indexOf(c) !== -1) - unesc += c - else - unesc += "\\" + c - esc = false - } else if (";#".indexOf(c) !== -1) { - break - } else if (c === "\\") { - esc = true - } else { - unesc += c - } - } - if (esc) - unesc += "\\" - return unesc - } - return val -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/package.json deleted file mode 100644 index b6934001..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/ini/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "ini", - "description": "An ini encoder/decoder for node", - "version": "1.3.4", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/ini.git" - }, - "main": "ini.js", - "scripts": { - "test": "tap test/*.js" - }, - "engines": { - "node": "*" - }, - "dependencies": {}, - "devDependencies": { - "tap": "^1.2.0" - }, - "license": "ISC", - "files": [ - "ini.js" - ], - "gitHead": "4a3001abc4c608e51add9f1d2b2cadf02b8e6dea", - "bugs": { - "url": "https://github.com/isaacs/ini/issues" - }, - "homepage": "https://github.com/isaacs/ini#readme", - "_id": "ini@1.3.4", - "_shasum": "0537cb79daf59b59a1a517dff706c86ec039162e", - "_from": "ini@>=1.3.0 <1.4.0", - "_npmVersion": "2.10.1", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "0537cb79daf59b59a1a517dff706c86ec039162e", - "tarball": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/.travis.yml deleted file mode 100644 index 74c57bf1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.12" - - "iojs" -before_install: - - npm install -g npm@~1.4.6 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/example/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/example/parse.js deleted file mode 100644 index abff3e8e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/example/parse.js +++ /dev/null @@ -1,2 +0,0 @@ -var argv = require('../')(process.argv.slice(2)); -console.dir(argv); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/index.js deleted file mode 100644 index 6a0559d5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/index.js +++ /dev/null @@ -1,236 +0,0 @@ -module.exports = function (args, opts) { - if (!opts) opts = {}; - - var flags = { bools : {}, strings : {}, unknownFn: null }; - - if (typeof opts['unknown'] === 'function') { - flags.unknownFn = opts['unknown']; - } - - if (typeof opts['boolean'] === 'boolean' && opts['boolean']) { - flags.allBools = true; - } else { - [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { - flags.bools[key] = true; - }); - } - - var aliases = {}; - Object.keys(opts.alias || {}).forEach(function (key) { - aliases[key] = [].concat(opts.alias[key]); - aliases[key].forEach(function (x) { - aliases[x] = [key].concat(aliases[key].filter(function (y) { - return x !== y; - })); - }); - }); - - [].concat(opts.string).filter(Boolean).forEach(function (key) { - flags.strings[key] = true; - if (aliases[key]) { - flags.strings[aliases[key]] = true; - } - }); - - var defaults = opts['default'] || {}; - - var argv = { _ : [] }; - Object.keys(flags.bools).forEach(function (key) { - setArg(key, defaults[key] === undefined ? false : defaults[key]); - }); - - var notFlags = []; - - if (args.indexOf('--') !== -1) { - notFlags = args.slice(args.indexOf('--')+1); - args = args.slice(0, args.indexOf('--')); - } - - function argDefined(key, arg) { - return (flags.allBools && /^--[^=]+$/.test(arg)) || - flags.strings[key] || flags.bools[key] || aliases[key]; - } - - function setArg (key, val, arg) { - if (arg && flags.unknownFn && !argDefined(key, arg)) { - if (flags.unknownFn(arg) === false) return; - } - - var value = !flags.strings[key] && isNumber(val) - ? Number(val) : val - ; - setKey(argv, key.split('.'), value); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), value); - }); - } - - function setKey (obj, keys, value) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - if (o[key] === undefined) o[key] = {}; - o = o[key]; - }); - - var key = keys[keys.length - 1]; - if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') { - o[key] = value; - } - else if (Array.isArray(o[key])) { - o[key].push(value); - } - else { - o[key] = [ o[key], value ]; - } - } - - function aliasIsBoolean(key) { - return aliases[key].some(function (x) { - return flags.bools[x]; - }); - } - - for (var i = 0; i < args.length; i++) { - var arg = args[i]; - - if (/^--.+=/.test(arg)) { - // Using [\s\S] instead of . because js doesn't support the - // 'dotall' regex modifier. See: - // http://stackoverflow.com/a/1068308/13216 - var m = arg.match(/^--([^=]+)=([\s\S]*)$/); - var key = m[1]; - var value = m[2]; - if (flags.bools[key]) { - value = value !== 'false'; - } - setArg(key, value, arg); - } - else if (/^--no-.+/.test(arg)) { - var key = arg.match(/^--no-(.+)/)[1]; - setArg(key, false, arg); - } - else if (/^--.+/.test(arg)) { - var key = arg.match(/^--(.+)/)[1]; - var next = args[i + 1]; - if (next !== undefined && !/^-/.test(next) - && !flags.bools[key] - && !flags.allBools - && (aliases[key] ? !aliasIsBoolean(key) : true)) { - setArg(key, next, arg); - i++; - } - else if (/^(true|false)$/.test(next)) { - setArg(key, next === 'true', arg); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true, arg); - } - } - else if (/^-[^-]+/.test(arg)) { - var letters = arg.slice(1,-1).split(''); - - var broken = false; - for (var j = 0; j < letters.length; j++) { - var next = arg.slice(j+2); - - if (next === '-') { - setArg(letters[j], next, arg) - continue; - } - - if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) { - setArg(letters[j], next.split('=')[1], arg); - broken = true; - break; - } - - if (/[A-Za-z]/.test(letters[j]) - && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { - setArg(letters[j], next, arg); - broken = true; - break; - } - - if (letters[j+1] && letters[j+1].match(/\W/)) { - setArg(letters[j], arg.slice(j+2), arg); - broken = true; - break; - } - else { - setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg); - } - } - - var key = arg.slice(-1)[0]; - if (!broken && key !== '-') { - if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1]) - && !flags.bools[key] - && (aliases[key] ? !aliasIsBoolean(key) : true)) { - setArg(key, args[i+1], arg); - i++; - } - else if (args[i+1] && /true|false/.test(args[i+1])) { - setArg(key, args[i+1] === 'true', arg); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true, arg); - } - } - } - else { - if (!flags.unknownFn || flags.unknownFn(arg) !== false) { - argv._.push( - flags.strings['_'] || !isNumber(arg) ? arg : Number(arg) - ); - } - if (opts.stopEarly) { - argv._.push.apply(argv._, args.slice(i + 1)); - break; - } - } - } - - Object.keys(defaults).forEach(function (key) { - if (!hasKey(argv, key.split('.'))) { - setKey(argv, key.split('.'), defaults[key]); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), defaults[key]); - }); - } - }); - - if (opts['--']) { - argv['--'] = new Array(); - notFlags.forEach(function(key) { - argv['--'].push(key); - }); - } - else { - notFlags.forEach(function(key) { - argv._.push(key); - }); - } - - return argv; -}; - -function hasKey (obj, keys) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - o = (o[key] || {}); - }); - - var key = keys[keys.length - 1]; - return key in o; -} - -function isNumber (x) { - if (typeof x === 'number') return true; - if (/^0x[0-9a-f]+$/i.test(x)) return true; - return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/package.json deleted file mode 100644 index 28d13924..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "minimist", - "version": "1.2.0", - "description": "parse argument options", - "main": "index.js", - "devDependencies": { - "covert": "^1.0.0", - "tap": "~0.4.0", - "tape": "^3.5.0" - }, - "scripts": { - "test": "tap test/*.js", - "coverage": "covert test/*.js" - }, - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/6..latest", - "ff/5", - "firefox/latest", - "chrome/10", - "chrome/latest", - "safari/5.1", - "safari/latest", - "opera/12" - ] - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/minimist.git" - }, - "homepage": "https://github.com/substack/minimist", - "keywords": [ - "argv", - "getopt", - "parser", - "optimist" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "gitHead": "dc624482fcfec5bc669c68cdb861f00573ed4e64", - "bugs": { - "url": "https://github.com/substack/minimist/issues" - }, - "_id": "minimist@1.2.0", - "_shasum": "a35008b20f41383eec1fb914f4cd5df79a264284", - "_from": "minimist@>=1.2.0 <2.0.0", - "_npmVersion": "3.2.2", - "_nodeVersion": "2.4.0", - "_npmUser": { - "name": "substack", - "email": "substack@gmail.com" - }, - "dist": { - "shasum": "a35008b20f41383eec1fb914f4cd5df79a264284", - "tarball": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/readme.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/readme.markdown deleted file mode 100644 index 30a74cf8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/readme.markdown +++ /dev/null @@ -1,91 +0,0 @@ -# minimist - -parse argument options - -This module is the guts of optimist's argument parser without all the -fanciful decoration. - -[![browser support](https://ci.testling.com/substack/minimist.png)](http://ci.testling.com/substack/minimist) - -[![build status](https://secure.travis-ci.org/substack/minimist.png)](http://travis-ci.org/substack/minimist) - -# example - -``` js -var argv = require('minimist')(process.argv.slice(2)); -console.dir(argv); -``` - -``` -$ node example/parse.js -a beep -b boop -{ _: [], a: 'beep', b: 'boop' } -``` - -``` -$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz -{ _: [ 'foo', 'bar', 'baz' ], - x: 3, - y: 4, - n: 5, - a: true, - b: true, - c: true, - beep: 'boop' } -``` - -# methods - -``` js -var parseArgs = require('minimist') -``` - -## var argv = parseArgs(args, opts={}) - -Return an argument object `argv` populated with the array arguments from `args`. - -`argv._` contains all the arguments that didn't have an option associated with -them. - -Numeric-looking arguments will be returned as numbers unless `opts.string` or -`opts.boolean` is set for that argument name. - -Any arguments after `'--'` will not be parsed and will end up in `argv._`. - -options can be: - -* `opts.string` - a string or array of strings argument names to always treat as -strings -* `opts.boolean` - a boolean, string or array of strings to always treat as -booleans. if `true` will treat all double hyphenated arguments without equal signs -as boolean (e.g. affects `--foo`, not `-f` or `--foo=bar`) -* `opts.alias` - an object mapping string names to strings or arrays of string -argument names to use as aliases -* `opts.default` - an object mapping string argument names to default values -* `opts.stopEarly` - when true, populate `argv._` with everything after the -first non-option -* `opts['--']` - when true, populate `argv._` with everything before the `--` -and `argv['--']` with everything after the `--`. Here's an example: -* `opts.unknown` - a function which is invoked with a command line parameter not -defined in the `opts` configuration object. If the function returns `false`, the -unknown option is not added to `argv`. - -``` -> require('./')('one two three -- four five --six'.split(' '), { '--': true }) -{ _: [ 'one', 'two', 'three' ], - '--': [ 'four', 'five', '--six' ] } -``` - -Note that with `opts['--']` set, parsing for arguments still stops after the -`--`. - -# install - -With [npm](https://npmjs.org) do: - -``` -npm install minimist -``` - -# license - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/all_bool.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/all_bool.js deleted file mode 100644 index ac835483..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/all_bool.js +++ /dev/null @@ -1,32 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('flag boolean true (default all --args to boolean)', function (t) { - var argv = parse(['moo', '--honk', 'cow'], { - boolean: true - }); - - t.deepEqual(argv, { - honk: true, - _: ['moo', 'cow'] - }); - - t.deepEqual(typeof argv.honk, 'boolean'); - t.end(); -}); - -test('flag boolean true only affects double hyphen arguments without equals signs', function (t) { - var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], { - boolean: true - }); - - t.deepEqual(argv, { - honk: true, - tacos: 'good', - p: 55, - _: ['moo', 'cow'] - }); - - t.deepEqual(typeof argv.honk, 'boolean'); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/bool.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/bool.js deleted file mode 100644 index 14b0717c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/bool.js +++ /dev/null @@ -1,166 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('flag boolean default false', function (t) { - var argv = parse(['moo'], { - boolean: ['t', 'verbose'], - default: { verbose: false, t: false } - }); - - t.deepEqual(argv, { - verbose: false, - t: false, - _: ['moo'] - }); - - t.deepEqual(typeof argv.verbose, 'boolean'); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); - -}); - -test('boolean groups', function (t) { - var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], { - boolean: ['x','y','z'] - }); - - t.deepEqual(argv, { - x : true, - y : false, - z : true, - _ : [ 'one', 'two', 'three' ] - }); - - t.deepEqual(typeof argv.x, 'boolean'); - t.deepEqual(typeof argv.y, 'boolean'); - t.deepEqual(typeof argv.z, 'boolean'); - t.end(); -}); -test('boolean and alias with chainable api', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - herp: { alias: 'h', boolean: true } - }; - var aliasedArgv = parse(aliased, { - boolean: 'herp', - alias: { h: 'herp' } - }); - var propertyArgv = parse(regular, { - boolean: 'herp', - alias: { h: 'herp' } - }); - var expected = { - herp: true, - h: true, - '_': [ 'derp' ] - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -test('boolean and alias with options hash', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - alias: { 'h': 'herp' }, - boolean: 'herp' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var expected = { - herp: true, - h: true, - '_': [ 'derp' ] - }; - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -test('boolean and alias array with options hash', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var alt = [ '--harp', 'derp' ]; - var opts = { - alias: { 'h': ['herp', 'harp'] }, - boolean: 'h' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var altPropertyArgv = parse(alt, opts); - var expected = { - harp: true, - herp: true, - h: true, - '_': [ 'derp' ] - }; - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.same(altPropertyArgv, expected); - t.end(); -}); - -test('boolean and alias using explicit true', function (t) { - var aliased = [ '-h', 'true' ]; - var regular = [ '--herp', 'true' ]; - var opts = { - alias: { h: 'herp' }, - boolean: 'h' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var expected = { - herp: true, - h: true, - '_': [ ] - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -// regression, see https://github.com/substack/node-optimist/issues/71 -test('boolean and --x=true', function(t) { - var parsed = parse(['--boool', '--other=true'], { - boolean: 'boool' - }); - - t.same(parsed.boool, true); - t.same(parsed.other, 'true'); - - parsed = parse(['--boool', '--other=false'], { - boolean: 'boool' - }); - - t.same(parsed.boool, true); - t.same(parsed.other, 'false'); - t.end(); -}); - -test('boolean --boool=true', function (t) { - var parsed = parse(['--boool=true'], { - default: { - boool: false - }, - boolean: ['boool'] - }); - - t.same(parsed.boool, true); - t.end(); -}); - -test('boolean --boool=false', function (t) { - var parsed = parse(['--boool=false'], { - default: { - boool: true - }, - boolean: ['boool'] - }); - - t.same(parsed.boool, false); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/dash.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/dash.js deleted file mode 100644 index 5a4fa5be..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/dash.js +++ /dev/null @@ -1,31 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('-', function (t) { - t.plan(5); - t.deepEqual(parse([ '-n', '-' ]), { n: '-', _: [] }); - t.deepEqual(parse([ '-' ]), { _: [ '-' ] }); - t.deepEqual(parse([ '-f-' ]), { f: '-', _: [] }); - t.deepEqual( - parse([ '-b', '-' ], { boolean: 'b' }), - { b: true, _: [ '-' ] } - ); - t.deepEqual( - parse([ '-s', '-' ], { string: 's' }), - { s: '-', _: [] } - ); -}); - -test('-a -- b', function (t) { - t.plan(3); - t.deepEqual(parse([ '-a', '--', 'b' ]), { a: true, _: [ 'b' ] }); - t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); - t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); -}); - -test('move arguments after the -- into their own `--` array', function(t) { - t.plan(1); - t.deepEqual( - parse([ '--name', 'John', 'before', '--', 'after' ], { '--': true }), - { name: 'John', _: [ 'before' ], '--': [ 'after' ] }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/default_bool.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/default_bool.js deleted file mode 100644 index 780a3112..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/default_bool.js +++ /dev/null @@ -1,35 +0,0 @@ -var test = require('tape'); -var parse = require('../'); - -test('boolean default true', function (t) { - var argv = parse([], { - boolean: 'sometrue', - default: { sometrue: true } - }); - t.equal(argv.sometrue, true); - t.end(); -}); - -test('boolean default false', function (t) { - var argv = parse([], { - boolean: 'somefalse', - default: { somefalse: false } - }); - t.equal(argv.somefalse, false); - t.end(); -}); - -test('boolean default to null', function (t) { - var argv = parse([], { - boolean: 'maybe', - default: { maybe: null } - }); - t.equal(argv.maybe, null); - var argv = parse(['--maybe'], { - boolean: 'maybe', - default: { maybe: null } - }); - t.equal(argv.maybe, true); - t.end(); - -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/dotted.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/dotted.js deleted file mode 100644 index d8b3e856..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/dotted.js +++ /dev/null @@ -1,22 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('dotted alias', function (t) { - var argv = parse(['--a.b', '22'], {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); - t.equal(argv.a.b, 22); - t.equal(argv.aa.bb, 22); - t.end(); -}); - -test('dotted default', function (t) { - var argv = parse('', {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); - t.equal(argv.a.b, 11); - t.equal(argv.aa.bb, 11); - t.end(); -}); - -test('dotted default with no alias', function (t) { - var argv = parse('', {default: {'a.b': 11}}); - t.equal(argv.a.b, 11); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/kv_short.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/kv_short.js deleted file mode 100644 index f813b305..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/kv_short.js +++ /dev/null @@ -1,16 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('short -k=v' , function (t) { - t.plan(1); - - var argv = parse([ '-b=123' ]); - t.deepEqual(argv, { b: 123, _: [] }); -}); - -test('multi short -k=v' , function (t) { - t.plan(1); - - var argv = parse([ '-a=whatever', '-b=robots' ]); - t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/long.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/long.js deleted file mode 100644 index 5d3a1e09..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/long.js +++ /dev/null @@ -1,31 +0,0 @@ -var test = require('tape'); -var parse = require('../'); - -test('long opts', function (t) { - t.deepEqual( - parse([ '--bool' ]), - { bool : true, _ : [] }, - 'long boolean' - ); - t.deepEqual( - parse([ '--pow', 'xixxle' ]), - { pow : 'xixxle', _ : [] }, - 'long capture sp' - ); - t.deepEqual( - parse([ '--pow=xixxle' ]), - { pow : 'xixxle', _ : [] }, - 'long capture eq' - ); - t.deepEqual( - parse([ '--host', 'localhost', '--port', '555' ]), - { host : 'localhost', port : 555, _ : [] }, - 'long captures sp' - ); - t.deepEqual( - parse([ '--host=localhost', '--port=555' ]), - { host : 'localhost', port : 555, _ : [] }, - 'long captures eq' - ); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/num.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/num.js deleted file mode 100644 index 2cc77f4d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/num.js +++ /dev/null @@ -1,36 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('nums', function (t) { - var argv = parse([ - '-x', '1234', - '-y', '5.67', - '-z', '1e7', - '-w', '10f', - '--hex', '0xdeadbeef', - '789' - ]); - t.deepEqual(argv, { - x : 1234, - y : 5.67, - z : 1e7, - w : '10f', - hex : 0xdeadbeef, - _ : [ 789 ] - }); - t.deepEqual(typeof argv.x, 'number'); - t.deepEqual(typeof argv.y, 'number'); - t.deepEqual(typeof argv.z, 'number'); - t.deepEqual(typeof argv.w, 'string'); - t.deepEqual(typeof argv.hex, 'number'); - t.deepEqual(typeof argv._[0], 'number'); - t.end(); -}); - -test('already a number', function (t) { - var argv = parse([ '-x', 1234, 789 ]); - t.deepEqual(argv, { x : 1234, _ : [ 789 ] }); - t.deepEqual(typeof argv.x, 'number'); - t.deepEqual(typeof argv._[0], 'number'); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/parse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/parse.js deleted file mode 100644 index 7b4a2a17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/parse.js +++ /dev/null @@ -1,197 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('parse args', function (t) { - t.deepEqual( - parse([ '--no-moo' ]), - { moo : false, _ : [] }, - 'no' - ); - t.deepEqual( - parse([ '-v', 'a', '-v', 'b', '-v', 'c' ]), - { v : ['a','b','c'], _ : [] }, - 'multi' - ); - t.end(); -}); - -test('comprehensive', function (t) { - t.deepEqual( - parse([ - '--name=meowmers', 'bare', '-cats', 'woo', - '-h', 'awesome', '--multi=quux', - '--key', 'value', - '-b', '--bool', '--no-meep', '--multi=baz', - '--', '--not-a-flag', 'eek' - ]), - { - c : true, - a : true, - t : true, - s : 'woo', - h : 'awesome', - b : true, - bool : true, - key : 'value', - multi : [ 'quux', 'baz' ], - meep : false, - name : 'meowmers', - _ : [ 'bare', '--not-a-flag', 'eek' ] - } - ); - t.end(); -}); - -test('flag boolean', function (t) { - var argv = parse([ '-t', 'moo' ], { boolean: 't' }); - t.deepEqual(argv, { t : true, _ : [ 'moo' ] }); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); -}); - -test('flag boolean value', function (t) { - var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], { - boolean: [ 't', 'verbose' ], - default: { verbose: true } - }); - - t.deepEqual(argv, { - verbose: false, - t: true, - _: ['moo'] - }); - - t.deepEqual(typeof argv.verbose, 'boolean'); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); -}); - -test('newlines in params' , function (t) { - var args = parse([ '-s', "X\nX" ]) - t.deepEqual(args, { _ : [], s : "X\nX" }); - - // reproduce in bash: - // VALUE="new - // line" - // node program.js --s="$VALUE" - args = parse([ "--s=X\nX" ]) - t.deepEqual(args, { _ : [], s : "X\nX" }); - t.end(); -}); - -test('strings' , function (t) { - var s = parse([ '-s', '0001234' ], { string: 's' }).s; - t.equal(s, '0001234'); - t.equal(typeof s, 'string'); - - var x = parse([ '-x', '56' ], { string: 'x' }).x; - t.equal(x, '56'); - t.equal(typeof x, 'string'); - t.end(); -}); - -test('stringArgs', function (t) { - var s = parse([ ' ', ' ' ], { string: '_' })._; - t.same(s.length, 2); - t.same(typeof s[0], 'string'); - t.same(s[0], ' '); - t.same(typeof s[1], 'string'); - t.same(s[1], ' '); - t.end(); -}); - -test('empty strings', function(t) { - var s = parse([ '-s' ], { string: 's' }).s; - t.equal(s, ''); - t.equal(typeof s, 'string'); - - var str = parse([ '--str' ], { string: 'str' }).str; - t.equal(str, ''); - t.equal(typeof str, 'string'); - - var letters = parse([ '-art' ], { - string: [ 'a', 't' ] - }); - - t.equal(letters.a, ''); - t.equal(letters.r, true); - t.equal(letters.t, ''); - - t.end(); -}); - - -test('string and alias', function(t) { - var x = parse([ '--str', '000123' ], { - string: 's', - alias: { s: 'str' } - }); - - t.equal(x.str, '000123'); - t.equal(typeof x.str, 'string'); - t.equal(x.s, '000123'); - t.equal(typeof x.s, 'string'); - - var y = parse([ '-s', '000123' ], { - string: 'str', - alias: { str: 's' } - }); - - t.equal(y.str, '000123'); - t.equal(typeof y.str, 'string'); - t.equal(y.s, '000123'); - t.equal(typeof y.s, 'string'); - t.end(); -}); - -test('slashBreak', function (t) { - t.same( - parse([ '-I/foo/bar/baz' ]), - { I : '/foo/bar/baz', _ : [] } - ); - t.same( - parse([ '-xyz/foo/bar/baz' ]), - { x : true, y : true, z : '/foo/bar/baz', _ : [] } - ); - t.end(); -}); - -test('alias', function (t) { - var argv = parse([ '-f', '11', '--zoom', '55' ], { - alias: { z: 'zoom' } - }); - t.equal(argv.zoom, 55); - t.equal(argv.z, argv.zoom); - t.equal(argv.f, 11); - t.end(); -}); - -test('multiAlias', function (t) { - var argv = parse([ '-f', '11', '--zoom', '55' ], { - alias: { z: [ 'zm', 'zoom' ] } - }); - t.equal(argv.zoom, 55); - t.equal(argv.z, argv.zoom); - t.equal(argv.z, argv.zm); - t.equal(argv.f, 11); - t.end(); -}); - -test('nested dotted objects', function (t) { - var argv = parse([ - '--foo.bar', '3', '--foo.baz', '4', - '--foo.quux.quibble', '5', '--foo.quux.o_O', - '--beep.boop' - ]); - - t.same(argv.foo, { - bar : 3, - baz : 4, - quux : { - quibble : 5, - o_O : true - } - }); - t.same(argv.beep, { boop : true }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/parse_modified.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/parse_modified.js deleted file mode 100644 index ab620dc5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/parse_modified.js +++ /dev/null @@ -1,9 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('parse with modifier functions' , function (t) { - t.plan(1); - - var argv = parse([ '-b', '123' ], { boolean: 'b' }); - t.deepEqual(argv, { b: true, _: [123] }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/short.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/short.js deleted file mode 100644 index d513a1c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/short.js +++ /dev/null @@ -1,67 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('numeric short args', function (t) { - t.plan(2); - t.deepEqual(parse([ '-n123' ]), { n: 123, _: [] }); - t.deepEqual( - parse([ '-123', '456' ]), - { 1: true, 2: true, 3: 456, _: [] } - ); -}); - -test('short', function (t) { - t.deepEqual( - parse([ '-b' ]), - { b : true, _ : [] }, - 'short boolean' - ); - t.deepEqual( - parse([ 'foo', 'bar', 'baz' ]), - { _ : [ 'foo', 'bar', 'baz' ] }, - 'bare' - ); - t.deepEqual( - parse([ '-cats' ]), - { c : true, a : true, t : true, s : true, _ : [] }, - 'group' - ); - t.deepEqual( - parse([ '-cats', 'meow' ]), - { c : true, a : true, t : true, s : 'meow', _ : [] }, - 'short group next' - ); - t.deepEqual( - parse([ '-h', 'localhost' ]), - { h : 'localhost', _ : [] }, - 'short capture' - ); - t.deepEqual( - parse([ '-h', 'localhost', '-p', '555' ]), - { h : 'localhost', p : 555, _ : [] }, - 'short captures' - ); - t.end(); -}); - -test('mixed short bool and capture', function (t) { - t.same( - parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), - { - f : true, p : 555, h : 'localhost', - _ : [ 'script.js' ] - } - ); - t.end(); -}); - -test('short and long', function (t) { - t.deepEqual( - parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), - { - f : true, p : 555, h : 'localhost', - _ : [ 'script.js' ] - } - ); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/stop_early.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/stop_early.js deleted file mode 100644 index bdf9fbcb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/stop_early.js +++ /dev/null @@ -1,15 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('stops parsing on the first non-option when stopEarly is set', function (t) { - var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], { - stopEarly: true - }); - - t.deepEqual(argv, { - aaa: 'bbb', - _: ['ccc', '--ddd'] - }); - - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/unknown.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/unknown.js deleted file mode 100644 index 462a36bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/unknown.js +++ /dev/null @@ -1,102 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('boolean and alias is not unknown', function (t) { - var unknown = []; - function unknownFn(arg) { - unknown.push(arg); - return false; - } - var aliased = [ '-h', 'true', '--derp', 'true' ]; - var regular = [ '--herp', 'true', '-d', 'true' ]; - var opts = { - alias: { h: 'herp' }, - boolean: 'h', - unknown: unknownFn - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - - t.same(unknown, ['--derp', '-d']); - t.end(); -}); - -test('flag boolean true any double hyphen argument is not unknown', function (t) { - var unknown = []; - function unknownFn(arg) { - unknown.push(arg); - return false; - } - var argv = parse(['--honk', '--tacos=good', 'cow', '-p', '55'], { - boolean: true, - unknown: unknownFn - }); - t.same(unknown, ['--tacos=good', 'cow', '-p']); - t.same(argv, { - honk: true, - _: [] - }); - t.end(); -}); - -test('string and alias is not unknown', function (t) { - var unknown = []; - function unknownFn(arg) { - unknown.push(arg); - return false; - } - var aliased = [ '-h', 'hello', '--derp', 'goodbye' ]; - var regular = [ '--herp', 'hello', '-d', 'moon' ]; - var opts = { - alias: { h: 'herp' }, - string: 'h', - unknown: unknownFn - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - - t.same(unknown, ['--derp', '-d']); - t.end(); -}); - -test('default and alias is not unknown', function (t) { - var unknown = []; - function unknownFn(arg) { - unknown.push(arg); - return false; - } - var aliased = [ '-h', 'hello' ]; - var regular = [ '--herp', 'hello' ]; - var opts = { - default: { 'h': 'bar' }, - alias: { 'h': 'herp' }, - unknown: unknownFn - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - - t.same(unknown, []); - t.end(); - unknownFn(); // exercise fn for 100% coverage -}); - -test('value following -- is not unknown', function (t) { - var unknown = []; - function unknownFn(arg) { - unknown.push(arg); - return false; - } - var aliased = [ '--bad', '--', 'good', 'arg' ]; - var opts = { - '--': true, - unknown: unknownFn - }; - var argv = parse(aliased, opts); - - t.same(unknown, ['--bad']); - t.same(argv, { - '--': ['good', 'arg'], - '_': [] - }) - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/whitespace.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/whitespace.js deleted file mode 100644 index 8a52a58c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/minimist/test/whitespace.js +++ /dev/null @@ -1,8 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('whitespace should be whitespace' , function (t) { - t.plan(1); - var x = parse([ '-x', '\t' ]).x; - t.equal(x, '\t'); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/cli.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/cli.js deleted file mode 100755 index aec5aa20..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/cli.js +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env node -'use strict'; -var fs = require('fs'); -var strip = require('./strip-json-comments'); -var input = process.argv[2]; - - -function getStdin(cb) { - var ret = ''; - - process.stdin.setEncoding('utf8'); - - process.stdin.on('data', function (data) { - ret += data; - }); - - process.stdin.on('end', function () { - cb(ret); - }); -} - -if (process.argv.indexOf('-h') !== -1 || process.argv.indexOf('--help') !== -1) { - console.log('strip-json-comments input-file > output-file'); - console.log('or'); - console.log('strip-json-comments < input-file > output-file'); - return; -} - -if (process.argv.indexOf('-v') !== -1 || process.argv.indexOf('--version') !== -1) { - console.log(require('./package').version); - return; -} - -if (input) { - process.stdout.write(strip(fs.readFileSync(input, 'utf8'))); - return; -} - -getStdin(function (data) { - process.stdout.write(strip(data)); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/package.json deleted file mode 100644 index 7b5e9430..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/package.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "name": "strip-json-comments", - "version": "1.0.4", - "description": "Strip comments from JSON. Lets you use comments in your JSON files!", - "keywords": [ - "json", - "strip", - "remove", - "delete", - "trim", - "comments", - "multiline", - "parse", - "config", - "configuration", - "conf", - "settings", - "util", - "env", - "environment", - "cli", - "bin" - ], - "license": "MIT", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "files": [ - "cli.js", - "strip-json-comments.js" - ], - "main": "strip-json-comments", - "bin": { - "strip-json-comments": "cli.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/strip-json-comments.git" - }, - "scripts": { - "test": "mocha --ui tdd" - }, - "devDependencies": { - "mocha": "*" - }, - "engines": { - "node": ">=0.8.0" - }, - "gitHead": "f58348696368583cc5bb18525fe31eacc9bd00e1", - "bugs": { - "url": "https://github.com/sindresorhus/strip-json-comments/issues" - }, - "homepage": "https://github.com/sindresorhus/strip-json-comments", - "_id": "strip-json-comments@1.0.4", - "_shasum": "1e15fbcac97d3ee99bf2d73b4c656b082bbafb91", - "_from": "strip-json-comments@>=1.0.4 <1.1.0", - "_npmVersion": "2.11.2", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "1e15fbcac97d3ee99bf2d73b4c656b082bbafb91", - "tarball": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" - }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/readme.md deleted file mode 100644 index 63ce165b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/readme.md +++ /dev/null @@ -1,80 +0,0 @@ -# strip-json-comments [![Build Status](https://travis-ci.org/sindresorhus/strip-json-comments.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-json-comments) - -> Strip comments from JSON. Lets you use comments in your JSON files! - -This is now possible: - -```js -{ - // rainbows - "unicorn": /* ❤ */ "cake" -} -``` - -It will remove single-line comments `//` and multi-line comments `/**/`. - -Also available as a [gulp](https://github.com/sindresorhus/gulp-strip-json-comments)/[grunt](https://github.com/sindresorhus/grunt-strip-json-comments)/[broccoli](https://github.com/sindresorhus/broccoli-strip-json-comments) plugin. - -- - -*There's also [`json-comments`](https://npmjs.org/package/json-comments), but it's only for Node.js, inefficient, bloated as it also minifies, and comes with a `require` hook, which is :(* - - -## Install - -```sh -$ npm install --save strip-json-comments -``` - -```sh -$ bower install --save strip-json-comments -``` - -```sh -$ component install sindresorhus/strip-json-comments -``` - - -## Usage - -```js -var json = '{/*rainbows*/"unicorn":"cake"}'; -JSON.parse(stripJsonComments(json)); -//=> {unicorn: 'cake'} -``` - - -## API - -### stripJsonComments(input) - -#### input - -Type: `string` - -Accepts a string with JSON and returns a string without comments. - - -## CLI - -```sh -$ npm install --global strip-json-comments -``` - -```sh -$ strip-json-comments --help - -strip-json-comments input-file > output-file -# or -strip-json-comments < input-file > output-file -``` - - -## Related - -- [`strip-css-comments`](https://github.com/sindresorhus/strip-css-comments) - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/strip-json-comments.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/strip-json-comments.js deleted file mode 100644 index eb77ce74..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/node_modules/strip-json-comments/strip-json-comments.js +++ /dev/null @@ -1,73 +0,0 @@ -/*! - strip-json-comments - Strip comments from JSON. Lets you use comments in your JSON files! - https://github.com/sindresorhus/strip-json-comments - by Sindre Sorhus - MIT License -*/ -(function () { - 'use strict'; - - var singleComment = 1; - var multiComment = 2; - - function stripJsonComments(str) { - var currentChar; - var nextChar; - var insideString = false; - var insideComment = false; - var ret = ''; - - for (var i = 0; i < str.length; i++) { - currentChar = str[i]; - nextChar = str[i + 1]; - - if (!insideComment && currentChar === '"') { - var escaped = str[i - 1] === '\\' && str[i - 2] !== '\\'; - if (!insideComment && !escaped && currentChar === '"') { - insideString = !insideString; - } - } - - if (insideString) { - ret += currentChar; - continue; - } - - if (!insideComment && currentChar + nextChar === '//') { - insideComment = singleComment; - i++; - } else if (insideComment === singleComment && currentChar + nextChar === '\r\n') { - insideComment = false; - i++; - ret += currentChar; - ret += nextChar; - continue; - } else if (insideComment === singleComment && currentChar === '\n') { - insideComment = false; - } else if (!insideComment && currentChar + nextChar === '/*') { - insideComment = multiComment; - i++; - continue; - } else if (insideComment === multiComment && currentChar + nextChar === '*/') { - insideComment = false; - i++; - continue; - } - - if (insideComment) { - continue; - } - - ret += currentChar; - } - - return ret; - } - - if (typeof module !== 'undefined' && module.exports) { - module.exports = stripJsonComments; - } else { - window.stripJsonComments = stripJsonComments; - } -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/package.json deleted file mode 100644 index 7a536165..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "rc", - "version": "1.1.6", - "description": "hardwired configuration loader", - "main": "index.js", - "browserify": "browser.js", - "scripts": { - "test": "set -e; node test/test.js; node test/ini.js; node test/nested-env-vars.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/dominictarr/rc.git" - }, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "keywords": [ - "config", - "rc", - "unix", - "defaults" - ], - "bin": { - "rc": "./index.js" - }, - "author": { - "name": "Dominic Tarr", - "email": "dominic.tarr@gmail.com", - "url": "dominictarr.com" - }, - "dependencies": { - "deep-extend": "~0.4.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~1.0.4" - }, - "gitHead": "132062de0e61881a025cc4784d9a2798409c2bf1", - "bugs": { - "url": "https://github.com/dominictarr/rc/issues" - }, - "homepage": "https://github.com/dominictarr/rc#readme", - "_id": "rc@1.1.6", - "_shasum": "43651b76b6ae53b5c802f1151fa3fc3b059969c9", - "_from": "rc@>=1.1.6 <1.2.0", - "_npmVersion": "3.5.1", - "_nodeVersion": "4.2.3", - "_npmUser": { - "name": "dominictarr", - "email": "dominic.tarr@gmail.com" - }, - "dist": { - "shasum": "43651b76b6ae53b5c802f1151fa3fc3b059969c9", - "tarball": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz" - }, - "maintainers": [ - { - "name": "dominictarr", - "email": "dominic.tarr@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/test/ini.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/test/ini.js deleted file mode 100644 index e6857f8b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/test/ini.js +++ /dev/null @@ -1,16 +0,0 @@ -var cc =require('../lib/utils') -var INI = require('ini') -var assert = require('assert') - -function test(obj) { - - var _json, _ini - var json = cc.parse (_json = JSON.stringify(obj)) - var ini = cc.parse (_ini = INI.stringify(obj)) - console.log(_ini, _json) - assert.deepEqual(json, ini) -} - - -test({hello: true}) - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/test/nested-env-vars.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/test/nested-env-vars.js deleted file mode 100644 index f576fb15..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/test/nested-env-vars.js +++ /dev/null @@ -1,40 +0,0 @@ - -var n = 'rc'+Math.random() -var assert = require('assert') - - -// Basic usage -process.env[n+'_someOpt__a'] = 42 -process.env[n+'_someOpt__x__'] = 99 -process.env[n+'_someOpt__a__b'] = 186 -process.env[n+'_someOpt__a__b__c'] = 243 -process.env[n+'_someOpt__x__y'] = 1862 -process.env[n+'_someOpt__z'] = 186577 - -// Should ignore empty strings from orphaned '__' -process.env[n+'_someOpt__z__x__'] = 18629 -process.env[n+'_someOpt__w__w__'] = 18629 - -// Leading '__' should ignore everything up to 'z' -process.env[n+'___z__i__'] = 9999 - -var config = require('../')(n, { - option: true -}) - -console.log('\n\n------ nested-env-vars ------\n',config) - -assert.equal(config.option, true) -assert.equal(config.someOpt.a, 42) -assert.equal(config.someOpt.x, 99) -// Should not override `a` once it's been set -assert.equal(config.someOpt.a/*.b*/, 42) -// Should not override `x` once it's been set -assert.equal(config.someOpt.x/*.y*/, 99) -assert.equal(config.someOpt.z, 186577) -// Should not override `z` once it's been set -assert.equal(config.someOpt.z/*.x*/, 186577) -assert.equal(config.someOpt.w.w, 18629) -assert.equal(config.z.i, 9999) - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/test/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/test/test.js deleted file mode 100644 index 4f633518..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rc/test/test.js +++ /dev/null @@ -1,59 +0,0 @@ - -var n = 'rc'+Math.random() -var assert = require('assert') - -process.env[n+'_envOption'] = 42 - -var config = require('../')(n, { - option: true -}) - -console.log(config) - -assert.equal(config.option, true) -assert.equal(config.envOption, 42) - -var customArgv = require('../')(n, { - option: true -}, { // nopt-like argv - option: false, - envOption: 24, - argv: { - remain: [], - cooked: ['--no-option', '--envOption', '24'], - original: ['--no-option', '--envOption=24'] - } -}) - -console.log(customArgv) - -assert.equal(customArgv.option, false) -assert.equal(customArgv.envOption, 24) - -var fs = require('fs') -var path = require('path') -var jsonrc = path.resolve('.' + n + 'rc'); - -fs.writeFileSync(jsonrc, [ - '{', - '// json overrides default', - '"option": false,', - '/* env overrides json */', - '"envOption": 24', - '}' -].join('\n')); - -var commentedJSON = require('../')(n, { - option: true -}) - -fs.unlinkSync(jsonrc); - -console.log(commentedJSON) - -assert.equal(commentedJSON.option, false) -assert.equal(commentedJSON.envOption, 42) - -assert.equal(commentedJSON.config, jsonrc) -assert.equal(commentedJSON.configs.length, 1) -assert.equal(commentedJSON.configs[0], jsonrc) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/README.md deleted file mode 100644 index 423b8cf8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/README.md +++ /dev/null @@ -1,101 +0,0 @@ -[![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) - -The [UNIX command](http://en.wikipedia.org/wiki/Rm_(Unix)) `rm -rf` for node. - -Install with `npm install rimraf`, or just drop rimraf.js somewhere. - -## API - -`rimraf(f, [opts], callback)` - -The first parameter will be interpreted as a globbing pattern for files. If you -want to disable globbing you can do so with `opts.disableGlob` (defaults to -`false`). This might be handy, for instance, if you have filenames that contain -globbing wildcard characters. - -The callback will be called with an error if there is one. Certain -errors are handled for you: - -* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of - `opts.maxBusyTries` times before giving up, adding 100ms of wait - between each attempt. The default `maxBusyTries` is 3. -* `ENOENT` - If the file doesn't exist, rimraf will return - successfully, since your desired outcome is already the case. -* `EMFILE` - Since `readdir` requires opening a file descriptor, it's - possible to hit `EMFILE` if too many file descriptors are in use. - In the sync case, there's nothing to be done for this. But in the - async case, rimraf will gradually back off with timeouts up to - `opts.emfileWait` ms, which defaults to 1000. - -## options - -* unlink, chmod, stat, lstat, rmdir, readdir, - unlinkSync, chmodSync, statSync, lstatSync, rmdirSync, readdirSync - - In order to use a custom file system library, you can override - specific fs functions on the options object. - - If any of these functions are present on the options object, then - the supplied function will be used instead of the default fs - method. - - Sync methods are only relevant for `rimraf.sync()`, of course. - - For example: - - ```javascript - var myCustomFS = require('some-custom-fs') - - rimraf('some-thing', myCustomFS, callback) - ``` - -* maxBusyTries - - If an `EBUSY`, `ENOTEMPTY`, or `EPERM` error code is encountered - on Windows systems, then rimraf will retry with a linear backoff - wait of 100ms longer on each try. The default maxBusyTries is 3. - - Only relevant for async usage. - -* emfileWait - - If an `EMFILE` error is encountered, then rimraf will retry - repeatedly with a linear backoff of 1ms longer on each try, until - the timeout counter hits this max. The default limit is 1000. - - If you repeatedly encounter `EMFILE` errors, then consider using - [graceful-fs](http://npm.im/graceful-fs) in your program. - - Only relevant for async usage. - -* glob - - Set to `false` to disable [glob](http://npm.im/glob) pattern - matching. - - Set to an object to pass options to the glob module. The default - glob options are `{ nosort: true, silent: true }`. - - Glob version 6 is used in this module. - - Relevant for both sync and async usage. - -* disableGlob - - Set to any non-falsey value to disable globbing entirely. - (Equivalent to setting `glob: false`.) - -## rimraf.sync - -It can remove stuff synchronously, too. But that's not so good. Use -the async API. It's better. - -## CLI - -If installed with `npm install rimraf -g` it can be used as a global -command `rimraf <path> [<path> ...]` which is useful for cross platform support. - -## mkdirp - -If you need to create a directory recursively, check out -[mkdirp](https://github.com/substack/node-mkdirp). diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/bin.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/bin.js deleted file mode 100755 index 1bd5a0d1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/bin.js +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env node - -var rimraf = require('./') - -var help = false -var dashdash = false -var args = process.argv.slice(2).filter(function(arg) { - if (dashdash) - return !!arg - else if (arg === '--') - dashdash = true - else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/)) - help = true - else - return !!arg -}); - -if (help || args.length === 0) { - // If they didn't ask for help, then this is not a "success" - var log = help ? console.log : console.error - log('Usage: rimraf <path> [<path> ...]') - log('') - log(' Deletes all files and folders at "path" recursively.') - log('') - log('Options:') - log('') - log(' -h, --help Display this usage info') - process.exit(help ? 0 : 1) -} else - go(0) - -function go (n) { - if (n >= args.length) - return - rimraf(args[n], function (er) { - if (er) - throw er - go(n+1) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/README.md deleted file mode 100644 index baa1d1ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/README.md +++ /dev/null @@ -1,368 +0,0 @@ -# Glob - -Match files using the patterns the shell uses, like stars and stuff. - -[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master) - -This is a glob implementation in JavaScript. It uses the `minimatch` -library to do its matching. - -![](oh-my-glob.gif) - -## Usage - -Install with npm - -``` -npm i glob -``` - -```javascript -var glob = require("glob") - -// options is optional -glob("**/*.js", options, function (er, files) { - // files is an array of filenames. - // If the `nonull` option is set, and nothing - // was found, then files is ["**/*.js"] - // er is an error object or null. -}) -``` - -## Glob Primer - -"Globs" are the patterns you type when you do stuff like `ls *.js` on -the command line, or put `build/*` in a `.gitignore` file. - -Before parsing the path part patterns, braced sections are expanded -into a set. Braced sections start with `{` and end with `}`, with any -number of comma-delimited sections within. Braced sections may contain -slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`. - -The following characters have special magic meaning when used in a -path portion: - -* `*` Matches 0 or more characters in a single path portion -* `?` Matches 1 character -* `[...]` Matches a range of characters, similar to a RegExp range. - If the first character of the range is `!` or `^` then it matches - any character not in the range. -* `!(pattern|pattern|pattern)` Matches anything that does not match - any of the patterns provided. -* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the - patterns provided. -* `+(pattern|pattern|pattern)` Matches one or more occurrences of the - patterns provided. -* `*(a|b|c)` Matches zero or more occurrences of the patterns provided -* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns - provided -* `**` If a "globstar" is alone in a path portion, then it matches - zero or more directories and subdirectories searching for matches. - It does not crawl symlinked directories. - -### Dots - -If a file or directory path portion has a `.` as the first character, -then it will not match any glob pattern unless that pattern's -corresponding path part also has a `.` as its first character. - -For example, the pattern `a/.*/c` would match the file at `a/.b/c`. -However the pattern `a/*/c` would not, because `*` does not start with -a dot character. - -You can make glob treat dots as normal characters by setting -`dot:true` in the options. - -### Basename Matching - -If you set `matchBase:true` in the options, and the pattern has no -slashes in it, then it will seek for any file anywhere in the tree -with a matching basename. For example, `*.js` would match -`test/simple/basic.js`. - -### Empty Sets - -If no matching files are found, then an empty array is returned. This -differs from the shell, where the pattern itself is returned. For -example: - - $ echo a*s*d*f - a*s*d*f - -To get the bash-style behavior, set the `nonull:true` in the options. - -### See Also: - -* `man sh` -* `man bash` (Search for "Pattern Matching") -* `man 3 fnmatch` -* `man 5 gitignore` -* [minimatch documentation](https://github.com/isaacs/minimatch) - -## glob.hasMagic(pattern, [options]) - -Returns `true` if there are any special characters in the pattern, and -`false` otherwise. - -Note that the options affect the results. If `noext:true` is set in -the options object, then `+(a|b)` will not be considered a magic -pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}` -then that is considered magical, unless `nobrace:true` is set in the -options. - -## glob(pattern, [options], cb) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* `cb` `{Function}` - * `err` `{Error | null}` - * `matches` `{Array<String>}` filenames found matching the pattern - -Perform an asynchronous glob search. - -## glob.sync(pattern, [options]) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* return: `{Array<String>}` filenames found matching the pattern - -Perform a synchronous glob search. - -## Class: glob.Glob - -Create a Glob object by instantiating the `glob.Glob` class. - -```javascript -var Glob = require("glob").Glob -var mg = new Glob(pattern, options, cb) -``` - -It's an EventEmitter, and starts walking the filesystem to find matches -immediately. - -### new glob.Glob(pattern, [options], [cb]) - -* `pattern` `{String}` pattern to search for -* `options` `{Object}` -* `cb` `{Function}` Called when an error occurs, or matches are found - * `err` `{Error | null}` - * `matches` `{Array<String>}` filenames found matching the pattern - -Note that if the `sync` flag is set in the options, then matches will -be immediately available on the `g.found` member. - -### Properties - -* `minimatch` The minimatch object that the glob uses. -* `options` The options object passed in. -* `aborted` Boolean which is set to true when calling `abort()`. There - is no way at this time to continue a glob search after aborting, but - you can re-use the statCache to avoid having to duplicate syscalls. -* `cache` Convenience object. Each field has the following possible - values: - * `false` - Path does not exist - * `true` - Path exists - * `'FILE'` - Path exists, and is not a directory - * `'DIR'` - Path exists, and is a directory - * `[file, entries, ...]` - Path exists, is a directory, and the - array value is the results of `fs.readdir` -* `statCache` Cache of `fs.stat` results, to prevent statting the same - path multiple times. -* `symlinks` A record of which paths are symbolic links, which is - relevant in resolving `**` patterns. -* `realpathCache` An optional object which is passed to `fs.realpath` - to minimize unnecessary syscalls. It is stored on the instantiated - Glob object, and may be re-used. - -### Events - -* `end` When the matching is finished, this is emitted with all the - matches found. If the `nonull` option is set, and no match was found, - then the `matches` list contains the original pattern. The matches - are sorted, unless the `nosort` flag is set. -* `match` Every time a match is found, this is emitted with the specific - thing that matched. It is not deduplicated or resolved to a realpath. -* `error` Emitted when an unexpected error is encountered, or whenever - any fs error occurs if `options.strict` is set. -* `abort` When `abort()` is called, this event is raised. - -### Methods - -* `pause` Temporarily stop the search -* `resume` Resume the search -* `abort` Stop the search forever - -### Options - -All the options that can be passed to Minimatch can also be passed to -Glob to change pattern matching behavior. Also, some have been added, -or have glob-specific ramifications. - -All options are false by default, unless otherwise noted. - -All options are added to the Glob object, as well. - -If you are running many `glob` operations, you can pass a Glob object -as the `options` argument to a subsequent operation to shortcut some -`stat` and `readdir` calls. At the very least, you may pass in shared -`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that -parallel glob operations will be sped up by sharing information about -the filesystem. - -* `cwd` The current working directory in which to search. Defaults - to `process.cwd()`. -* `root` The place where patterns starting with `/` will be mounted - onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix - systems, and `C:\` or some such on Windows.) -* `dot` Include `.dot` files in normal matches and `globstar` matches. - Note that an explicit dot in a portion of the pattern will always - match dot files. -* `nomount` By default, a pattern starting with a forward-slash will be - "mounted" onto the root setting, so that a valid filesystem path is - returned. Set this flag to disable that behavior. -* `mark` Add a `/` character to directory matches. Note that this - requires additional stat calls. -* `nosort` Don't sort the results. -* `stat` Set to true to stat *all* results. This reduces performance - somewhat, and is completely unnecessary, unless `readdir` is presumed - to be an untrustworthy indicator of file existence. -* `silent` When an unusual error is encountered when attempting to - read a directory, a warning will be printed to stderr. Set the - `silent` option to true to suppress these warnings. -* `strict` When an unusual error is encountered when attempting to - read a directory, the process will just continue on in search of - other matches. Set the `strict` option to raise an error in these - cases. -* `cache` See `cache` property above. Pass in a previously generated - cache object to save some fs calls. -* `statCache` A cache of results of filesystem information, to prevent - unnecessary stat calls. While it should not normally be necessary - to set this, you may pass the statCache from one glob() call to the - options object of another, if you know that the filesystem will not - change between calls. (See "Race Conditions" below.) -* `symlinks` A cache of known symbolic links. You may pass in a - previously generated `symlinks` object to save `lstat` calls when - resolving `**` matches. -* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead. -* `nounique` In some cases, brace-expanded patterns can result in the - same file showing up multiple times in the result set. By default, - this implementation prevents duplicates in the result set. Set this - flag to disable that behavior. -* `nonull` Set to never return an empty set, instead returning a set - containing the pattern itself. This is the default in glob(3). -* `debug` Set to enable debug logging in minimatch and glob. -* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets. -* `noglobstar` Do not match `**` against multiple filenames. (Ie, - treat it as a normal `*` instead.) -* `noext` Do not match `+(a|b)` "extglob" patterns. -* `nocase` Perform a case-insensitive match. Note: on - case-insensitive filesystems, non-magic patterns will match by - default, since `stat` and `readdir` will not raise errors. -* `matchBase` Perform a basename-only match if the pattern does not - contain any slash characters. That is, `*.js` would be treated as - equivalent to `**/*.js`, matching all js files in all directories. -* `nodir` Do not match directories, only files. (Note: to match - *only* directories, simply put a `/` at the end of the pattern.) -* `ignore` Add a pattern or an array of glob patterns to exclude matches. - Note: `ignore` patterns are *always* in `dot:true` mode, regardless - of any other settings. -* `follow` Follow symlinked directories when expanding `**` patterns. - Note that this can result in a lot of duplicate references in the - presence of cyclic links. -* `realpath` Set to true to call `fs.realpath` on all of the results. - In the case of a symlink that cannot be resolved, the full absolute - path to the matched entry is returned (though it will usually be a - broken symlink) -* `absolute` Set to true to always receive absolute paths for matched - files. Unlike `realpath`, this also affects the values returned in - the `match` event. - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between node-glob and other -implementations, and are intentional. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.3, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -Note that symlinked directories are not crawled as part of a `**`, -though their contents may match against subsequent portions of the -pattern. This prevents infinite loops and duplicates and the like. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then glob returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. - -### Comments and Negation - -Previously, this module let you mark a pattern as a "comment" if it -started with a `#` character, or a "negated" pattern if it started -with a `!` character. - -These options were deprecated in version 5, and removed in version 6. - -To specify things that should not match, use the `ignore` option. - -## Windows - -**Please only use forward-slashes in glob expressions.** - -Though windows uses either `/` or `\` as its path separator, only `/` -characters are used by this glob implementation. You must use -forward-slashes **only** in glob expressions. Back-slashes will always -be interpreted as escape characters, not path separators. - -Results from absolute patterns such as `/foo/*` are mounted onto the -root setting using `path.join`. On windows, this will by default result -in `/foo/*` matching `C:\foo\bar.txt`. - -## Race Conditions - -Glob searching, by its very nature, is susceptible to race conditions, -since it relies on directory walking and such. - -As a result, it is possible that a file that exists when glob looks for -it may have been deleted or modified by the time it returns the result. - -As part of its internal implementation, this program caches all stat -and readdir calls that it makes, in order to cut down on system -overhead. However, this also makes it even more susceptible to races, -especially if the cache or statCache objects are reused between glob -calls. - -Users are thus advised not to use a glob result as a guarantee of -filesystem state in the face of rapid changes. For the vast majority -of operations, this is never a problem. - -## Contributing - -Any change to behavior (including bugfixes) must come with a test. - -Patches that fail tests or reduce performance will be rejected. - -``` -# to run tests -npm test - -# to re-generate test fixtures -npm run test-regen - -# to benchmark against bash/zsh -npm run bench - -# to profile javascript -npm run prof -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/changelog.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/changelog.md deleted file mode 100644 index 41636771..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/changelog.md +++ /dev/null @@ -1,67 +0,0 @@ -## 7.0 - -- Raise error if `options.cwd` is specified, and not a directory - -## 6.0 - -- Remove comment and negation pattern support -- Ignore patterns are always in `dot:true` mode - -## 5.0 - -- Deprecate comment and negation patterns -- Fix regression in `mark` and `nodir` options from making all cache - keys absolute path. -- Abort if `fs.readdir` returns an error that's unexpected -- Don't emit `match` events for ignored items -- Treat ENOTSUP like ENOTDIR in readdir - -## 4.5 - -- Add `options.follow` to always follow directory symlinks in globstar -- Add `options.realpath` to call `fs.realpath` on all results -- Always cache based on absolute path - -## 4.4 - -- Add `options.ignore` -- Fix handling of broken symlinks - -## 4.3 - -- Bump minimatch to 2.x -- Pass all tests on Windows - -## 4.2 - -- Add `glob.hasMagic` function -- Add `options.nodir` flag - -## 4.1 - -- Refactor sync and async implementations for performance -- Throw if callback provided to sync glob function -- Treat symbolic links in globstar results the same as Bash 4.3 - -## 4.0 - -- Use `^` for dependency versions (bumped major because this breaks - older npm versions) -- Ensure callbacks are only ever called once -- switch to ISC license - -## 3.x - -- Rewrite in JavaScript -- Add support for setting root, cwd, and windows support -- Cache many fs calls -- Add globstar support -- emit match events - -## 2.x - -- Use `glob.h` and `fnmatch.h` from NetBSD - -## 1.x - -- `glob.h` static binding. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/common.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/common.js deleted file mode 100644 index 66651bb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/common.js +++ /dev/null @@ -1,240 +0,0 @@ -exports.alphasort = alphasort -exports.alphasorti = alphasorti -exports.setopts = setopts -exports.ownProp = ownProp -exports.makeAbs = makeAbs -exports.finish = finish -exports.mark = mark -exports.isIgnored = isIgnored -exports.childrenIgnored = childrenIgnored - -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} - -var path = require("path") -var minimatch = require("minimatch") -var isAbsolute = require("path-is-absolute") -var Minimatch = minimatch.Minimatch - -function alphasorti (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()) -} - -function alphasort (a, b) { - return a.localeCompare(b) -} - -function setupIgnores (self, options) { - self.ignore = options.ignore || [] - - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore] - - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap) - } -} - -// ignore patterns are always in dot:true mode. -function ignoreMap (pattern) { - var gmatcher = null - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, '') - gmatcher = new Minimatch(gpattern, { dot: true }) - } - - return { - matcher: new Minimatch(pattern, { dot: true }), - gmatcher: gmatcher - } -} - -function setopts (self, pattern, options) { - if (!options) - options = {} - - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") - } - pattern = "**/" + pattern - } - - self.silent = !!options.silent - self.pattern = pattern - self.strict = options.strict !== false - self.realpath = !!options.realpath - self.realpathCache = options.realpathCache || Object.create(null) - self.follow = !!options.follow - self.dot = !!options.dot - self.mark = !!options.mark - self.nodir = !!options.nodir - if (self.nodir) - self.mark = true - self.sync = !!options.sync - self.nounique = !!options.nounique - self.nonull = !!options.nonull - self.nosort = !!options.nosort - self.nocase = !!options.nocase - self.stat = !!options.stat - self.noprocess = !!options.noprocess - self.absolute = !!options.absolute - - self.maxLength = options.maxLength || Infinity - self.cache = options.cache || Object.create(null) - self.statCache = options.statCache || Object.create(null) - self.symlinks = options.symlinks || Object.create(null) - - setupIgnores(self, options) - - self.changedCwd = false - var cwd = process.cwd() - if (!ownProp(options, "cwd")) - self.cwd = cwd - else { - self.cwd = path.resolve(options.cwd) - self.changedCwd = self.cwd !== cwd - } - - self.root = options.root || path.resolve(self.cwd, "/") - self.root = path.resolve(self.root) - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/") - - // TODO: is an absolute `cwd` supposed to be resolved against `root`? - // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test') - self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd) - if (process.platform === "win32") - self.cwdAbs = self.cwdAbs.replace(/\\/g, "/") - self.nomount = !!options.nomount - - // disable comments and negation in Minimatch. - // Note that they are not supported in Glob itself anyway. - options.nonegate = true - options.nocomment = true - - self.minimatch = new Minimatch(pattern, options) - self.options = self.minimatch.options -} - -function finish (self) { - var nou = self.nounique - var all = nou ? [] : Object.create(null) - - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i] - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i] - if (nou) - all.push(literal) - else - all[literal] = true - } - } else { - // had matches - var m = Object.keys(matches) - if (nou) - all.push.apply(all, m) - else - m.forEach(function (m) { - all[m] = true - }) - } - } - - if (!nou) - all = Object.keys(all) - - if (!self.nosort) - all = all.sort(self.nocase ? alphasorti : alphasort) - - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]) - } - if (self.nodir) { - all = all.filter(function (e) { - var notDir = !(/\/$/.test(e)) - var c = self.cache[e] || self.cache[makeAbs(self, e)] - if (notDir && c) - notDir = c !== 'DIR' && !Array.isArray(c) - return notDir - }) - } - } - - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }) - - self.found = all -} - -function mark (self, p) { - var abs = makeAbs(self, p) - var c = self.cache[abs] - var m = p - if (c) { - var isDir = c === 'DIR' || Array.isArray(c) - var slash = p.slice(-1) === '/' - - if (isDir && !slash) - m += '/' - else if (!isDir && slash) - m = m.slice(0, -1) - - if (m !== p) { - var mabs = makeAbs(self, m) - self.statCache[mabs] = self.statCache[abs] - self.cache[mabs] = self.cache[abs] - } - } - - return m -} - -// lotta situps... -function makeAbs (self, f) { - var abs = f - if (f.charAt(0) === '/') { - abs = path.join(self.root, f) - } else if (isAbsolute(f) || f === '') { - abs = f - } else if (self.changedCwd) { - abs = path.resolve(self.cwd, f) - } else { - abs = path.resolve(f) - } - - if (process.platform === 'win32') - abs = abs.replace(/\\/g, '/') - - return abs -} - - -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/glob.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/glob.js deleted file mode 100644 index bfdd7a11..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/glob.js +++ /dev/null @@ -1,792 +0,0 @@ -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. - -module.exports = glob - -var fs = require('fs') -var rp = require('fs.realpath') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var inherits = require('inherits') -var EE = require('events').EventEmitter -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var globSync = require('./sync.js') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var inflight = require('inflight') -var util = require('util') -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -var once = require('once') - -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {} - if (!options) options = {} - - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return globSync(pattern, options) - } - - return new Glob(pattern, options, cb) -} - -glob.sync = globSync -var GlobSync = glob.GlobSync = globSync.GlobSync - -// old api surface -glob.glob = glob - -function extend (origin, add) { - if (add === null || typeof add !== 'object') { - return origin - } - - var keys = Object.keys(add) - var i = keys.length - while (i--) { - origin[keys[i]] = add[keys[i]] - } - return origin -} - -glob.hasMagic = function (pattern, options_) { - var options = extend({}, options_) - options.noprocess = true - - var g = new Glob(pattern, options) - var set = g.minimatch.set - - if (!pattern) - return false - - if (set.length > 1) - return true - - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } - - return false -} - -glob.Glob = Glob -inherits(Glob, EE) -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync(pattern, options) - } - - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) - - setopts(this, pattern, options) - this._didRealPath = false - - // process each pattern in the minimatch set - var n = this.minimatch.set.length - - // The matches are stored as {<filename>: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n) - - if (typeof cb === 'function') { - cb = once(cb) - this.on('error', cb) - this.on('end', function (matches) { - cb(null, matches) - }) - } - - var self = this - var n = this.minimatch.set.length - this._processing = 0 - this.matches = new Array(n) - - this._emitQueue = [] - this._processQueue = [] - this.paused = false - - if (this.noprocess) - return this - - if (n === 0) - return done() - - var sync = true - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done) - } - sync = false - - function done () { - --self._processing - if (self._processing <= 0) { - if (sync) { - process.nextTick(function () { - self._finish() - }) - } else { - self._finish() - } - } - } -} - -Glob.prototype._finish = function () { - assert(this instanceof Glob) - if (this.aborted) - return - - if (this.realpath && !this._didRealpath) - return this._realpath() - - common.finish(this) - this.emit('end', this.found) -} - -Glob.prototype._realpath = function () { - if (this._didRealpath) - return - - this._didRealpath = true - - var n = this.matches.length - if (n === 0) - return this._finish() - - var self = this - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next) - - function next () { - if (--n === 0) - self._finish() - } -} - -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index] - if (!matchset) - return cb() - - var found = Object.keys(matchset) - var self = this - var n = found.length - - if (n === 0) - return cb() - - var set = this.matches[index] = Object.create(null) - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p) - rp.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true - else if (er.syscall === 'stat') - set[p] = true - else - self.emit('error', er) // srsly wtf right here - - if (--n === 0) { - self.matches[index] = set - cb() - } - }) - }) -} - -Glob.prototype._mark = function (p) { - return common.mark(this, p) -} - -Glob.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -Glob.prototype.abort = function () { - this.aborted = true - this.emit('abort') -} - -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true - this.emit('pause') - } -} - -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume') - this.paused = false - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0) - this._emitQueue.length = 0 - for (var i = 0; i < eq.length; i ++) { - var e = eq[i] - this._emitMatch(e[0], e[1]) - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0) - this._processQueue.length = 0 - for (var i = 0; i < pq.length; i ++) { - var p = pq[i] - this._processing-- - this._process(p[0], p[1], p[2], p[3]) - } - } - } -} - -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert(this instanceof Glob) - assert(typeof cb === 'function') - - if (this.aborted) - return - - this._processing++ - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]) - return - } - - //console.error('PROCESS %d', this._processing, pattern) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // see if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip _processing - if (childrenIgnored(this, read)) - return cb() - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) -} - -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return cb() - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - this._process([e].concat(remain), index, inGlobStar, cb) - } - cb() -} - -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return - - if (isIgnored(this, e)) - return - - if (this.paused) { - this._emitQueue.push([index, e]) - return - } - - var abs = isAbsolute(e) ? e : this._makeAbs(e) - - if (this.mark) - e = this._mark(e) - - if (this.absolute) - e = abs - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - - var st = this.statCache[abs] - if (st) - this.emit('stat', e, st) - - this.emit('match', e) -} - -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return - - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) - - var lstatkey = 'lstat\0' + abs - var self = this - var lstatcb = inflight(lstatkey, lstatcb_) - - if (lstatcb) - fs.lstat(abs, lstatcb) - - function lstatcb_ (er, lstat) { - if (er && er.code === 'ENOENT') - return cb() - - var isSym = lstat && lstat.isSymbolicLink() - self.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && lstat && !lstat.isDirectory()) { - self.cache[abs] = 'FILE' - cb() - } else - self._readdir(abs, false, cb) - } -} - -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return - - cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) - if (!cb) - return - - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return cb() - - if (Array.isArray(c)) - return cb(null, c) - } - - var self = this - fs.readdir(abs, readdirCb(this, abs, cb)) -} - -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb) - else - self._readdirEntries(abs, entries, cb) - } -} - -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return - - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - return cb(null, entries) -} - -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return - - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f) - this.cache[abs] = 'FILE' - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd) - error.path = this.cwd - error.code = er.code - this.emit('error', error) - this.abort() - } - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) { - this.emit('error', er) - // If the error is handled, then we abort - // if not, we threw out of here - this.abort() - } - if (!this.silent) - console.error('glob error', er) - break - } - - return cb() -} - -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - - -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb) - - var isSym = this.symlinks[abs] - var len = entries.length - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true, cb) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true, cb) - } - - cb() -} - -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb) - }) -} -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { - - //console.error('ps2', prefix, exists) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) - cb() -} - -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return cb() - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) - - if (needDir && c === 'FILE') - return cb() - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE' - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } - - var self = this - var statcb = inflight('stat\0' + abs, lstatcb_) - if (statcb) - fs.lstat(abs, statcb) - - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return fs.stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb) - else - self._stat2(f, abs, er, stat, cb) - }) - } else { - self._stat2(f, abs, er, lstat, cb) - } - } -} - -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { - this.statCache[abs] = false - return cb() - } - - var needDir = f.slice(-1) === '/' - this.statCache[abs] = stat - - if (abs.slice(-1) === '/' && stat && !stat.isDirectory()) - return cb(null, false, stat) - - var c = true - if (stat) - c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c === 'FILE') - return cb() - - return cb(null, c, stat) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/LICENSE deleted file mode 100644 index 5bd884c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/LICENSE +++ /dev/null @@ -1,43 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ----- - -This library bundles a version of the `fs.realpath` and `fs.realpathSync` -methods from Node.js v0.10 under the terms of the Node.js MIT license. - -Node's license follows, also included at the header of `old.js` which contains -the licensed code: - - Copyright Joyent, Inc. and other Node contributors. - - 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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/README.md deleted file mode 100644 index a42ceac6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# fs.realpath - -A backwards-compatible fs.realpath for Node v6 and above - -In Node v6, the JavaScript implementation of fs.realpath was replaced -with a faster (but less resilient) native implementation. That raises -new and platform-specific errors and cannot handle long or excessively -symlink-looping paths. - -This module handles those cases by detecting the new errors and -falling back to the JavaScript implementation. On versions of Node -prior to v6, it has no effect. - -## USAGE - -```js -var rp = require('fs.realpath') - -// async version -rp.realpath(someLongAndLoopingPath, function (er, real) { - // the ELOOP was handled, but it was a bit slower -}) - -// sync version -var real = rp.realpathSync(someLongAndLoopingPath) - -// monkeypatch at your own risk! -// This replaces the fs.realpath/fs.realpathSync builtins -rp.monkeypatch() - -// un-do the monkeypatching -rp.unmonkeypatch() -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/index.js deleted file mode 100644 index b09c7c7e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/index.js +++ /dev/null @@ -1,66 +0,0 @@ -module.exports = realpath -realpath.realpath = realpath -realpath.sync = realpathSync -realpath.realpathSync = realpathSync -realpath.monkeypatch = monkeypatch -realpath.unmonkeypatch = unmonkeypatch - -var fs = require('fs') -var origRealpath = fs.realpath -var origRealpathSync = fs.realpathSync - -var version = process.version -var ok = /^v[0-5]\./.test(version) -var old = require('./old.js') - -function newError (er) { - return er && er.syscall === 'realpath' && ( - er.code === 'ELOOP' || - er.code === 'ENOMEM' || - er.code === 'ENAMETOOLONG' - ) -} - -function realpath (p, cache, cb) { - if (ok) { - return origRealpath(p, cache, cb) - } - - if (typeof cache === 'function') { - cb = cache - cache = null - } - origRealpath(p, cache, function (er, result) { - if (newError(er)) { - old.realpath(p, cache, cb) - } else { - cb(er, result) - } - }) -} - -function realpathSync (p, cache) { - if (ok) { - return origRealpathSync(p, cache) - } - - try { - return origRealpathSync(p, cache) - } catch (er) { - if (newError(er)) { - return old.realpathSync(p, cache) - } else { - throw er - } - } -} - -function monkeypatch () { - fs.realpath = realpath - fs.realpathSync = realpathSync -} - -function unmonkeypatch () { - fs.realpath = origRealpath - fs.realpathSync = origRealpathSync -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/old.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/old.js deleted file mode 100644 index b40305e7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/old.js +++ /dev/null @@ -1,303 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// 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. - -var pathModule = require('path'); -var isWindows = process.platform === 'win32'; -var fs = require('fs'); - -// JavaScript implementation of realpath, ported from node pre-v6 - -var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); - -function rethrow() { - // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and - // is fairly slow to generate. - var callback; - if (DEBUG) { - var backtrace = new Error; - callback = debugCallback; - } else - callback = missingCallback; - - return callback; - - function debugCallback(err) { - if (err) { - backtrace.message = err.message; - err = backtrace; - missingCallback(err); - } - } - - function missingCallback(err) { - if (err) { - if (process.throwDeprecation) - throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs - else if (!process.noDeprecation) { - var msg = 'fs: missing callback ' + (err.stack || err.message); - if (process.traceDeprecation) - console.trace(msg); - else - console.error(msg); - } - } - } -} - -function maybeCallback(cb) { - return typeof cb === 'function' ? cb : rethrow(); -} - -var normalize = pathModule.normalize; - -// Regexp that finds the next partion of a (partial) path -// result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] -if (isWindows) { - var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; -} else { - var nextPartRe = /(.*?)(?:[\/]+|$)/g; -} - -// Regex to find the device root, including trailing slash. E.g. 'c:\\'. -if (isWindows) { - var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; -} else { - var splitRootRe = /^[\/]*/; -} - -exports.realpathSync = function realpathSync(p, cache) { - // make p is absolute - p = pathModule.resolve(p); - - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return cache[p]; - } - - var original = p, - seenLinks = {}, - knownHard = {}; - - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; - - start(); - - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; - - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs.lstatSync(base); - knownHard[base] = true; - } - } - - // walk down the path, swapping out linked pathparts for their real - // values - // NB: p.length changes. - while (pos < p.length) { - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; - - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - continue; - } - - var resolvedLink; - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // some known symbolic link. no need to stat again. - resolvedLink = cache[base]; - } else { - var stat = fs.lstatSync(base); - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - continue; - } - - // read the link if it wasn't read before - // dev/ino always return 0 on windows, so skip the check. - var linkTarget = null; - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - linkTarget = seenLinks[id]; - } - } - if (linkTarget === null) { - fs.statSync(base); - linkTarget = fs.readlinkSync(base); - } - resolvedLink = pathModule.resolve(previous, linkTarget); - // track this, if given a cache. - if (cache) cache[base] = resolvedLink; - if (!isWindows) seenLinks[id] = linkTarget; - } - - // resolve the link, then start over - p = pathModule.resolve(resolvedLink, p.slice(pos)); - start(); - } - - if (cache) cache[original] = p; - - return p; -}; - - -exports.realpath = function realpath(p, cache, cb) { - if (typeof cb !== 'function') { - cb = maybeCallback(cache); - cache = null; - } - - // make p is absolute - p = pathModule.resolve(p); - - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return process.nextTick(cb.bind(null, null, cache[p])); - } - - var original = p, - seenLinks = {}, - knownHard = {}; - - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; - - start(); - - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; - - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs.lstat(base, function(err) { - if (err) return cb(err); - knownHard[base] = true; - LOOP(); - }); - } else { - process.nextTick(LOOP); - } - } - - // walk down the path, swapping out linked pathparts for their real - // values - function LOOP() { - // stop if scanned past end of path - if (pos >= p.length) { - if (cache) cache[original] = p; - return cb(null, p); - } - - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; - - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - return process.nextTick(LOOP); - } - - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // known symbolic link. no need to stat again. - return gotResolvedLink(cache[base]); - } - - return fs.lstat(base, gotStat); - } - - function gotStat(err, stat) { - if (err) return cb(err); - - // if not a symlink, skip to the next path part - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - return process.nextTick(LOOP); - } - - // stat & read the link if not read before - // call gotTarget as soon as the link target is known - // dev/ino always return 0 on windows, so skip the check. - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - return gotTarget(null, seenLinks[id], base); - } - } - fs.stat(base, function(err) { - if (err) return cb(err); - - fs.readlink(base, function(err, target) { - if (!isWindows) seenLinks[id] = target; - gotTarget(err, target); - }); - }); - } - - function gotTarget(err, target, base) { - if (err) return cb(err); - - var resolvedLink = pathModule.resolve(previous, target); - if (cache) cache[base] = resolvedLink; - gotResolvedLink(resolvedLink); - } - - function gotResolvedLink(resolvedLink) { - // resolve the link, then start over - p = pathModule.resolve(resolvedLink, p.slice(pos)); - start(); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/package.json deleted file mode 100644 index 7db74629..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "fs.realpath", - "version": "1.0.0", - "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails", - "main": "index.js", - "dependencies": {}, - "devDependencies": {}, - "scripts": { - "test": "tap test/*.js --cov" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/fs.realpath.git" - }, - "keywords": [ - "realpath", - "fs", - "polyfill" - ], - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "files": [ - "old.js", - "index.js" - ], - "gitHead": "03e7c884431fe185dfebbc9b771aeca339c1807a", - "bugs": { - "url": "https://github.com/isaacs/fs.realpath/issues" - }, - "homepage": "https://github.com/isaacs/fs.realpath#readme", - "_id": "fs.realpath@1.0.0", - "_shasum": "1504ad2523158caa40db4a2787cb01411994ea4f", - "_from": "fs.realpath@>=1.0.0 <2.0.0", - "_npmVersion": "3.9.1", - "_nodeVersion": "4.4.4", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "1504ad2523158caa40db4a2787cb01411994ea4f", - "tarball": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/fs.realpath-1.0.0.tgz_1466015941059_0.3332864767871797" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/LICENSE deleted file mode 100644 index 05eeeb88..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/README.md deleted file mode 100644 index 6dc89291..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# inflight - -Add callbacks to requests in flight to avoid async duplication - -## USAGE - -```javascript -var inflight = require('inflight') - -// some request that does some stuff -function req(key, callback) { - // key is any random string. like a url or filename or whatever. - // - // will return either a falsey value, indicating that the - // request for this key is already in flight, or a new callback - // which when called will call all callbacks passed to inflightk - // with the same key - callback = inflight(key, callback) - - // If we got a falsey value back, then there's already a req going - if (!callback) return - - // this is where you'd fetch the url or whatever - // callback is also once()-ified, so it can safely be assigned - // to multiple events etc. First call wins. - setTimeout(function() { - callback(null, key) - }, 100) -} - -// only assigns a single setTimeout -// when it dings, all cbs get called -req('foo', cb1) -req('foo', cb2) -req('foo', cb3) -req('foo', cb4) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/inflight.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/inflight.js deleted file mode 100644 index 48202b3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/inflight.js +++ /dev/null @@ -1,54 +0,0 @@ -var wrappy = require('wrappy') -var reqs = Object.create(null) -var once = require('once') - -module.exports = wrappy(inflight) - -function inflight (key, cb) { - if (reqs[key]) { - reqs[key].push(cb) - return null - } else { - reqs[key] = [cb] - return makeres(key) - } -} - -function makeres (key) { - return once(function RES () { - var cbs = reqs[key] - var len = cbs.length - var args = slice(arguments) - - // XXX It's somewhat ambiguous whether a new callback added in this - // pass should be queued for later execution if something in the - // list of callbacks throws, or if it should just be discarded. - // However, it's such an edge case that it hardly matters, and either - // choice is likely as surprising as the other. - // As it happens, we do go ahead and schedule it for later execution. - try { - for (var i = 0; i < len; i++) { - cbs[i].apply(null, args) - } - } finally { - if (cbs.length > len) { - // added more in the interim. - // de-zalgo, just in case, but don't call again. - cbs.splice(0, len) - process.nextTick(function () { - RES.apply(null, args) - }) - } else { - delete reqs[key] - } - } - }) -} - -function slice (args) { - var length = args.length - var array = [] - - for (var i = 0; i < length; i++) array[i] = args[i] - return array -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md deleted file mode 100644 index 98eab252..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# wrappy - -Callback wrapping utility - -## USAGE - -```javascript -var wrappy = require("wrappy") - -// var wrapper = wrappy(wrapperFunction) - -// make sure a cb is called only once -// See also: http://npm.im/once for this specific use case -var once = wrappy(function (cb) { - var called = false - return function () { - if (called) return - called = true - return cb.apply(this, arguments) - } -}) - -function printBoo () { - console.log('boo') -} -// has some rando property -printBoo.iAmBooPrinter = true - -var onlyPrintOnce = once(printBoo) - -onlyPrintOnce() // prints 'boo' -onlyPrintOnce() // does nothing - -// random property is retained! -assert.equal(onlyPrintOnce.iAmBooPrinter, true) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json deleted file mode 100644 index de3bfd53..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "wrappy", - "version": "1.0.2", - "description": "Callback wrapping utility", - "main": "wrappy.js", - "files": [ - "wrappy.js" - ], - "directories": { - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "^2.3.1" - }, - "scripts": { - "test": "tap --coverage test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/wrappy.git" - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/wrappy/issues" - }, - "homepage": "https://github.com/npm/wrappy", - "gitHead": "71d91b6dc5bdeac37e218c2cf03f9ab55b60d214", - "_id": "wrappy@1.0.2", - "_shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "_from": "wrappy@>=1.0.0 <2.0.0", - "_npmVersion": "3.9.1", - "_nodeVersion": "5.10.1", - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" - }, - "dist": { - "shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "tarball": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/wrappy-1.0.2.tgz_1463527848281_0.037129373755306005" - }, - "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js deleted file mode 100644 index bb7e7d6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js +++ /dev/null @@ -1,33 +0,0 @@ -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) - - return wrapper - - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/package.json deleted file mode 100644 index 60911dc1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inflight/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "inflight", - "version": "1.0.6", - "description": "Add callbacks to requests in flight to avoid async duplication", - "main": "inflight.js", - "files": [ - "inflight.js" - ], - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - }, - "devDependencies": { - "tap": "^7.1.2" - }, - "scripts": { - "test": "tap test.js --100" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/inflight.git" - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/inflight/issues" - }, - "homepage": "https://github.com/isaacs/inflight", - "license": "ISC", - "gitHead": "a547881738c8f57b27795e584071d67cf6ac1a57", - "_id": "inflight@1.0.6", - "_shasum": "49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "_from": "inflight@>=1.0.4 <2.0.0", - "_npmVersion": "3.10.7", - "_nodeVersion": "6.5.0", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "tarball": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - }, - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "isaacs", - "email": "i@izs.me" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/inflight-1.0.6.tgz_1476330807696_0.10388551792129874" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/LICENSE deleted file mode 100644 index dea3013d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/README.md deleted file mode 100644 index b1c56658..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/README.md +++ /dev/null @@ -1,42 +0,0 @@ -Browser-friendly inheritance fully compatible with standard node.js -[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). - -This package exports standard `inherits` from node.js `util` module in -node environment, but also provides alternative browser-friendly -implementation through [browser -field](https://gist.github.com/shtylman/4339901). Alternative -implementation is a literal copy of standard one located in standalone -module to avoid requiring of `util`. It also has a shim for old -browsers with no `Object.create` support. - -While keeping you sure you are using standard `inherits` -implementation in node.js environment, it allows bundlers such as -[browserify](https://github.com/substack/node-browserify) to not -include full `util` package to your client code if all you need is -just `inherits` function. It worth, because browser shim for `util` -package is large and `inherits` is often the single function you need -from it. - -It's recommended to use this package instead of -`require('util').inherits` for any code that has chances to be used -not only in node.js but in browser too. - -## usage - -```js -var inherits = require('inherits'); -// then use exactly as the standard one -``` - -## note on version ~1.0 - -Version ~1.0 had completely different motivation and is not compatible -neither with 2.0 nor with standard node.js `inherits`. - -If you are using version ~1.0 and planning to switch to ~2.0, be -careful: - -* new version uses `super_` instead of `super` for referencing - superclass -* new version overwrites current prototype while old one preserves any - existing fields on it diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/inherits.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/inherits.js deleted file mode 100644 index 3b94763a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/inherits.js +++ /dev/null @@ -1,7 +0,0 @@ -try { - var util = require('util'); - if (typeof util.inherits !== 'function') throw ''; - module.exports = util.inherits; -} catch (e) { - module.exports = require('./inherits_browser.js'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/inherits_browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/inherits_browser.js deleted file mode 100644 index c1e78a75..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/inherits_browser.js +++ /dev/null @@ -1,23 +0,0 @@ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/package.json deleted file mode 100644 index ecb5a350..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/inherits/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "inherits", - "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.3", - "keywords": [ - "inheritance", - "class", - "klass", - "oop", - "object-oriented", - "inherits", - "browser", - "browserify" - ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/inherits.git" - }, - "license": "ISC", - "scripts": { - "test": "node test" - }, - "devDependencies": { - "tap": "^7.1.0" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ], - "gitHead": "e05d0fb27c61a3ec687214f0476386b765364d5f", - "bugs": { - "url": "https://github.com/isaacs/inherits/issues" - }, - "homepage": "https://github.com/isaacs/inherits#readme", - "_id": "inherits@2.0.3", - "_shasum": "633c2c83e3da42a502f52466022480f4208261de", - "_from": "inherits@>=2.0.0 <3.0.0", - "_npmVersion": "3.10.7", - "_nodeVersion": "6.5.0", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "633c2c83e3da42a502f52466022480f4208261de", - "tarball": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/inherits-2.0.3.tgz_1473295776489_0.08142363070510328" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/README.md deleted file mode 100644 index ad72b813..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/README.md +++ /dev/null @@ -1,209 +0,0 @@ -# minimatch - -A minimal matching utility. - -[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.svg)](http://travis-ci.org/isaacs/minimatch) - - -This is the matching library used internally by npm. - -It works by converting glob expressions into JavaScript `RegExp` -objects. - -## Usage - -```javascript -var minimatch = require("minimatch") - -minimatch("bar.foo", "*.foo") // true! -minimatch("bar.foo", "*.bar") // false! -minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy! -``` - -## Features - -Supports these glob features: - -* Brace Expansion -* Extended glob matching -* "Globstar" `**` matching - -See: - -* `man sh` -* `man bash` -* `man 3 fnmatch` -* `man 5 gitignore` - -## Minimatch Class - -Create a minimatch object by instantiating the `minimatch.Minimatch` class. - -```javascript -var Minimatch = require("minimatch").Minimatch -var mm = new Minimatch(pattern, options) -``` - -### Properties - -* `pattern` The original pattern the minimatch object represents. -* `options` The options supplied to the constructor. -* `set` A 2-dimensional array of regexp or string expressions. - Each row in the - array corresponds to a brace-expanded pattern. Each item in the row - corresponds to a single path-part. For example, the pattern - `{a,b/c}/d` would expand to a set of patterns like: - - [ [ a, d ] - , [ b, c, d ] ] - - If a portion of the pattern doesn't have any "magic" in it - (that is, it's something like `"foo"` rather than `fo*o?`), then it - will be left as a string rather than converted to a regular - expression. - -* `regexp` Created by the `makeRe` method. A single regular expression - expressing the entire pattern. This is useful in cases where you wish - to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled. -* `negate` True if the pattern is negated. -* `comment` True if the pattern is a comment. -* `empty` True if the pattern is `""`. - -### Methods - -* `makeRe` Generate the `regexp` member if necessary, and return it. - Will return `false` if the pattern is invalid. -* `match(fname)` Return true if the filename matches the pattern, or - false otherwise. -* `matchOne(fileArray, patternArray, partial)` Take a `/`-split - filename, and match it against a single row in the `regExpSet`. This - method is mainly for internal use, but is exposed so that it can be - used by a glob-walker that needs to avoid excessive filesystem calls. - -All other methods are internal, and will be called as necessary. - -### minimatch(path, pattern, options) - -Main export. Tests a path against the pattern using the options. - -```javascript -var isJS = minimatch(file, "*.js", { matchBase: true }) -``` - -### minimatch.filter(pattern, options) - -Returns a function that tests its -supplied argument, suitable for use with `Array.filter`. Example: - -```javascript -var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true})) -``` - -### minimatch.match(list, pattern, options) - -Match against the list of -files, in the style of fnmatch or glob. If nothing is matched, and -options.nonull is set, then return a list containing the pattern itself. - -```javascript -var javascripts = minimatch.match(fileList, "*.js", {matchBase: true})) -``` - -### minimatch.makeRe(pattern, options) - -Make a regular expression object from the pattern. - -## Options - -All options are `false` by default. - -### debug - -Dump a ton of stuff to stderr. - -### nobrace - -Do not expand `{a,b}` and `{1..3}` brace sets. - -### noglobstar - -Disable `**` matching against multiple folder names. - -### dot - -Allow patterns to match filenames starting with a period, even if -the pattern does not explicitly have a period in that spot. - -Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot` -is set. - -### noext - -Disable "extglob" style patterns like `+(a|b)`. - -### nocase - -Perform a case-insensitive match. - -### nonull - -When a match is not found by `minimatch.match`, return a list containing -the pattern itself if this option is set. When not set, an empty list -is returned if there are no matches. - -### matchBase - -If set, then patterns without slashes will be matched -against the basename of the path if it contains slashes. For example, -`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. - -### nocomment - -Suppress the behavior of treating `#` at the start of a pattern as a -comment. - -### nonegate - -Suppress the behavior of treating a leading `!` character as negation. - -### flipNegate - -Returns from negate expressions the same as if they were not negated. -(Ie, true on a hit, false on a miss.) - - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between minimatch and other -implementations, and are intentional. - -If the pattern starts with a `!` character, then it is negated. Set the -`nonegate` flag to suppress this behavior, and treat leading `!` -characters normally. This is perhaps relevant if you wish to start the -pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` -characters at the start of a pattern will negate the pattern multiple -times. - -If a pattern starts with `#`, then it is treated as a comment, and -will not match anything. Use `\#` to match a literal `#` at the -start of a line, or set the `nocomment` flag to suppress this behavior. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.1, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then minimatch.match returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/minimatch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/minimatch.js deleted file mode 100644 index 5b5f8cf4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/minimatch.js +++ /dev/null @@ -1,923 +0,0 @@ -module.exports = minimatch -minimatch.Minimatch = Minimatch - -var path = { sep: '/' } -try { - path = require('path') -} catch (er) {} - -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} -var expand = require('brace-expansion') - -var plTypes = { - '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, - '?': { open: '(?:', close: ')?' }, - '+': { open: '(?:', close: ')+' }, - '*': { open: '(?:', close: ')*' }, - '@': { open: '(?:', close: ')' } -} - -// any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]' - -// * => any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } - - // "" only matches "" - if (pattern.trim() === '') return p === '' - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } - - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') - } - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function () {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new TypeError('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - if (pattern.length > 1024 * 64) { - throw new TypeError('pattern is too long') - } - - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - patternListStack.push({ - type: stateChar, - start: i - 1, - reStart: re.length, - open: plTypes[stateChar].open, - close: plTypes[stateChar].close - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - var pl = patternListStack.pop() - // negation is (?:(?!js)[^/]*) - // The others are (?:<pattern>)<type> - re += pl.close - if (pl.type === '!') { - negativeLists.push(pl) - } - pl.reEnd = re.length - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + pl.open.length) - this.debug('setting tail', re, pl) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail, pl, re) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - try { - var regExp = new RegExp('^' + re + '$', flags) - } catch (er) { - // If it was an invalid regular expression, then it can't match - // anything. This trick looks for a character after the end of - // the string, which is of course impossible, except in multi-line - // mode, but it's not a /m regex. - return new RegExp('$.') - } - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md deleted file mode 100644 index 17939297..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js deleted file mode 100644 index 955f27c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,201 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); - } - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = /^(.*,)+(.+)?$/.test(m.body); - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore deleted file mode 100644 index ae5d8c36..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -test -.gitignore -.travis.yml -Makefile -example.js diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e41..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md deleted file mode 100644 index 08e918c0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `<b>` and `</b>`. Supports regular expressions as well! - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[ <a index>, <b index> ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js deleted file mode 100644 index e8d85870..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +++ /dev/null @@ -1,58 +0,0 @@ -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json deleted file mode 100644 index 2557ddab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "balanced-match", - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "version": "0.4.2", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "homepage": "https://github.com/juliangruber/balanced-match", - "main": "index.js", - "scripts": { - "test": "make test" - }, - "dependencies": {}, - "devDependencies": { - "tape": "^4.6.0" - }, - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "gitHead": "57c2ea29d89a2844ae3bdcc637c6e2cbb73725e2", - "bugs": { - "url": "https://github.com/juliangruber/balanced-match/issues" - }, - "_id": "balanced-match@0.4.2", - "_shasum": "cb3f3e3c732dc0f01ee70b403f302e61d7709838", - "_from": "balanced-match@>=0.4.1 <0.5.0", - "_npmVersion": "2.15.8", - "_nodeVersion": "4.4.7", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "dist": { - "shasum": "cb3f3e3c732dc0f01ee70b403f302e61d7709838", - "tarball": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/balanced-match-0.4.2.tgz_1468834991581_0.6590619895141572" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml deleted file mode 100644 index f1d0f13c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +++ /dev/null @@ -1,62 +0,0 @@ -concat-map -========== - -Concatenative mapdashery. - -[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) - -[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) - -example -======= - -``` js -var concatMap = require('concat-map'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); -``` - -*** - -``` -[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] -``` - -methods -======= - -``` js -var concatMap = require('concat-map') -``` - -concatMap(xs, fn) ------------------ - -Return an array of concatenated elements by calling `fn(x, i)` for each element -`x` and each index `i` in the array `xs`. - -When `fn(x, i)` returns an array, its result will be concatenated with the -result array. If `fn(x, i)` returns anything else, that value will be pushed -onto the end of the result array. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install concat-map -``` - -license -======= - -MIT - -notes -===== - -This module was written while sitting high above the ground in a tree. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js deleted file mode 100644 index 33656217..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js deleted file mode 100644 index b29a7812..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json deleted file mode 100644 index da4330e5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "concat-map", - "description": "concatenative mapdashery", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-concat-map.git" - }, - "main": "index.js", - "keywords": [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "directories": { - "example": "example", - "test": "test" - }, - "scripts": { - "test": "tape test/*.js" - }, - "devDependencies": { - "tape": "~2.4.0" - }, - "license": "MIT", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "testling": { - "files": "test/*.js", - "browsers": { - "ie": [ - 6, - 7, - 8, - 9 - ], - "ff": [ - 3.5, - 10, - 15 - ], - "chrome": [ - 10, - 22 - ], - "safari": [ - 5.1 - ], - "opera": [ - 12 - ] - } - }, - "bugs": { - "url": "https://github.com/substack/node-concat-map/issues" - }, - "homepage": "https://github.com/substack/node-concat-map", - "_id": "concat-map@0.0.1", - "dist": { - "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "tarball": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "_from": "concat-map@0.0.1", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd7022..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json deleted file mode 100644 index e00a73ad..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "brace-expansion", - "description": "Brace expansion as known from sh/bash", - "version": "1.1.6", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "homepage": "https://github.com/juliangruber/brace-expansion", - "main": "index.js", - "scripts": { - "test": "tape test/*.js", - "gentest": "bash test/generate.sh" - }, - "dependencies": { - "balanced-match": "^0.4.1", - "concat-map": "0.0.1" - }, - "devDependencies": { - "tape": "^4.6.0" - }, - "keywords": [], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "gitHead": "791262fa06625e9c5594cde529a21d82086af5f2", - "bugs": { - "url": "https://github.com/juliangruber/brace-expansion/issues" - }, - "_id": "brace-expansion@1.1.6", - "_shasum": "7197d7eaa9b87e648390ea61fc66c84427420df9", - "_from": "brace-expansion@>=1.0.0 <2.0.0", - "_npmVersion": "2.15.8", - "_nodeVersion": "4.4.7", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "dist": { - "shasum": "7197d7eaa9b87e648390ea61fc66c84427420df9", - "tarball": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/brace-expansion-1.1.6.tgz_1469047715600_0.9362958471756428" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/package.json deleted file mode 100644 index 0f48702f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/minimatch/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "name": "minimatch", - "description": "a glob matcher in javascript", - "version": "3.0.3", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" - }, - "main": "minimatch.js", - "scripts": { - "posttest": "standard minimatch.js test/*.js", - "test": "tap test/*.js" - }, - "engines": { - "node": "*" - }, - "dependencies": { - "brace-expansion": "^1.0.0" - }, - "devDependencies": { - "standard": "^3.7.2", - "tap": "^5.6.0" - }, - "license": "ISC", - "files": [ - "minimatch.js" - ], - "gitHead": "eed89491bd4a4e6bc463aac0dfb5c29ef0d1dc13", - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" - }, - "homepage": "https://github.com/isaacs/minimatch#readme", - "_id": "minimatch@3.0.3", - "_shasum": "2a4e4090b96b2db06a9d7df01055a62a77c9b774", - "_from": "minimatch@>=3.0.2 <4.0.0", - "_npmVersion": "3.10.6", - "_nodeVersion": "4.4.4", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "2a4e4090b96b2db06a9d7df01055a62a77c9b774", - "tarball": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/minimatch-3.0.3.tgz_1470678322731_0.1892083385027945" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/README.md deleted file mode 100644 index 1f1ffca9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# once - -Only call a function once. - -## usage - -```javascript -var once = require('once') - -function load (file, cb) { - cb = once(cb) - loader.load('file') - loader.once('load', cb) - loader.once('error', cb) -} -``` - -Or add to the Function.prototype in a responsible way: - -```javascript -// only has to be done once -require('once').proto() - -function load (file, cb) { - cb = cb.once() - loader.load('file') - loader.once('load', cb) - loader.once('error', cb) -} -``` - -Ironically, the prototype feature makes this module twice as -complicated as necessary. - -To check whether you function has been called, use `fn.called`. Once the -function is called for the first time the return value of the original -function is saved in `fn.value` and subsequent calls will continue to -return this value. - -```javascript -var once = require('once') - -function load (cb) { - cb = once(cb) - var stream = createStream() - stream.once('data', cb) - stream.once('end', function () { - if (!cb.called) cb(new Error('not found')) - }) -} -``` - -## `once.strict(func)` - -Throw an error if the function is called twice. - -Some functions are expected to be called only once. Using `once` for them would -potentially hide logical errors. - -In the example below, the `greet` function has to call the callback only once: - -```javascript -function greet (name, cb) { - // return is missing from the if statement - // when no name is passed, the callback is called twice - if (!name) cb('Hello anonymous') - cb('Hello ' + name) -} - -function log (msg) { - console.log(msg) -} - -// this will print 'Hello anonymous' but the logical error will be missed -greet(null, once(msg)) - -// once.strict will print 'Hello anonymous' and throw an error when the callback will be called the second time -greet(null, once.strict(msg)) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/README.md deleted file mode 100644 index 98eab252..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# wrappy - -Callback wrapping utility - -## USAGE - -```javascript -var wrappy = require("wrappy") - -// var wrapper = wrappy(wrapperFunction) - -// make sure a cb is called only once -// See also: http://npm.im/once for this specific use case -var once = wrappy(function (cb) { - var called = false - return function () { - if (called) return - called = true - return cb.apply(this, arguments) - } -}) - -function printBoo () { - console.log('boo') -} -// has some rando property -printBoo.iAmBooPrinter = true - -var onlyPrintOnce = once(printBoo) - -onlyPrintOnce() // prints 'boo' -onlyPrintOnce() // does nothing - -// random property is retained! -assert.equal(onlyPrintOnce.iAmBooPrinter, true) -``` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/package.json deleted file mode 100644 index de3bfd53..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "wrappy", - "version": "1.0.2", - "description": "Callback wrapping utility", - "main": "wrappy.js", - "files": [ - "wrappy.js" - ], - "directories": { - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "^2.3.1" - }, - "scripts": { - "test": "tap --coverage test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/wrappy.git" - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/wrappy/issues" - }, - "homepage": "https://github.com/npm/wrappy", - "gitHead": "71d91b6dc5bdeac37e218c2cf03f9ab55b60d214", - "_id": "wrappy@1.0.2", - "_shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "_from": "wrappy@>=1.0.0 <2.0.0", - "_npmVersion": "3.9.1", - "_nodeVersion": "5.10.1", - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" - }, - "dist": { - "shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "tarball": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/wrappy-1.0.2.tgz_1463527848281_0.037129373755306005" - }, - "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js deleted file mode 100644 index bb7e7d6f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +++ /dev/null @@ -1,33 +0,0 @@ -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) - - return wrapper - - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/once.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/once.js deleted file mode 100644 index 23540673..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/once.js +++ /dev/null @@ -1,42 +0,0 @@ -var wrappy = require('wrappy') -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/package.json deleted file mode 100644 index 98009972..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/once/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "once", - "version": "1.4.0", - "description": "Run a function exactly one time", - "main": "once.js", - "directories": { - "test": "test" - }, - "dependencies": { - "wrappy": "1" - }, - "devDependencies": { - "tap": "^7.0.1" - }, - "scripts": { - "test": "tap test/*.js" - }, - "files": [ - "once.js" - ], - "repository": { - "type": "git", - "url": "git://github.com/isaacs/once.git" - }, - "keywords": [ - "once", - "function", - "one", - "single" - ], - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "gitHead": "0e614d9f5a7e6f0305c625f6b581f6d80b33b8a6", - "bugs": { - "url": "https://github.com/isaacs/once/issues" - }, - "homepage": "https://github.com/isaacs/once#readme", - "_id": "once@1.4.0", - "_shasum": "583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "_from": "once@>=1.3.0 <2.0.0", - "_npmVersion": "3.10.7", - "_nodeVersion": "6.5.0", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "tarball": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/once-1.4.0.tgz_1473196269128_0.537820661207661" - }, - "_resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/index.js deleted file mode 100644 index 22aa6c35..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/index.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -function posix(path) { - return path.charAt(0) === '/'; -} - -function win32(path) { - // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; - var result = splitDeviceRe.exec(path); - var device = result[1] || ''; - var isUnc = Boolean(device && device.charAt(1) !== ':'); - - // UNC paths are always absolute - return Boolean(result[2] || isUnc); -} - -module.exports = process.platform === 'win32' ? win32 : posix; -module.exports.posix = posix; -module.exports.win32 = win32; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/license b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/license deleted file mode 100644 index 654d0bfe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/package.json deleted file mode 100644 index 851195e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "path-is-absolute", - "version": "1.0.1", - "description": "Node.js 0.12 path.isAbsolute() ponyfill", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/path-is-absolute.git" - }, - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "xo && node test.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "path", - "paths", - "file", - "dir", - "absolute", - "isabsolute", - "is-absolute", - "built-in", - "util", - "utils", - "core", - "ponyfill", - "polyfill", - "shim", - "is", - "detect", - "check" - ], - "devDependencies": { - "xo": "^0.16.0" - }, - "gitHead": "edc91d348b21dac2ab65ea2fbec2868e2eff5eb6", - "bugs": { - "url": "https://github.com/sindresorhus/path-is-absolute/issues" - }, - "homepage": "https://github.com/sindresorhus/path-is-absolute#readme", - "_id": "path-is-absolute@1.0.1", - "_shasum": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "_from": "path-is-absolute@>=1.0.0 <2.0.0", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.6.0", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "tarball": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/path-is-absolute-1.0.1.tgz_1475210523565_0.9876507974695414" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/readme.md deleted file mode 100644 index 8dbdf5fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/readme.md +++ /dev/null @@ -1,59 +0,0 @@ -# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute) - -> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) [ponyfill](https://ponyfill.com) - - -## Install - -``` -$ npm install --save path-is-absolute -``` - - -## Usage - -```js -const pathIsAbsolute = require('path-is-absolute'); - -// Running on Linux -pathIsAbsolute('/home/foo'); -//=> true -pathIsAbsolute('C:/Users/foo'); -//=> false - -// Running on Windows -pathIsAbsolute('C:/Users/foo'); -//=> true -pathIsAbsolute('/home/foo'); -//=> false - -// Running on any OS -pathIsAbsolute.posix('/home/foo'); -//=> true -pathIsAbsolute.posix('C:/Users/foo'); -//=> false -pathIsAbsolute.win32('C:/Users/foo'); -//=> true -pathIsAbsolute.win32('/home/foo'); -//=> false -``` - - -## API - -See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path). - -### pathIsAbsolute(path) - -### pathIsAbsolute.posix(path) - -POSIX specific version. - -### pathIsAbsolute.win32(path) - -Windows specific version. - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/package.json deleted file mode 100644 index ba45a3da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/package.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "glob", - "description": "a little globber", - "version": "7.1.1", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" - }, - "main": "glob.js", - "files": [ - "glob.js", - "sync.js", - "common.js" - ], - "engines": { - "node": "*" - }, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "devDependencies": { - "mkdirp": "0", - "rimraf": "^2.2.8", - "tap": "^7.1.2", - "tick": "0.0.6" - }, - "scripts": { - "prepublish": "npm run benchclean", - "profclean": "rm -f v8.log profile.txt", - "test": "tap test/*.js --cov", - "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js", - "bench": "bash benchmark.sh", - "prof": "bash prof.sh && cat profile.txt", - "benchclean": "node benchclean.js" - }, - "license": "ISC", - "gitHead": "bc8d43b736a98a9e289fdfceee9266cff35e5742", - "bugs": { - "url": "https://github.com/isaacs/node-glob/issues" - }, - "homepage": "https://github.com/isaacs/node-glob#readme", - "_id": "glob@7.1.1", - "_shasum": "805211df04faaf1c63a3600306cdf5ade50b2ec8", - "_from": "glob@>=7.0.5 <8.0.0", - "_npmVersion": "3.10.7", - "_nodeVersion": "6.5.0", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "805211df04faaf1c63a3600306cdf5ade50b2ec8", - "tarball": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/glob-7.1.1.tgz_1475876991562_0.924720095237717" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/sync.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/sync.js deleted file mode 100644 index c952134b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/node_modules/glob/sync.js +++ /dev/null @@ -1,486 +0,0 @@ -module.exports = globSync -globSync.GlobSync = GlobSync - -var fs = require('fs') -var rp = require('fs.realpath') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var Glob = require('./glob.js').Glob -var util = require('util') -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - return new GlobSync(pattern, options).found -} - -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts(this, pattern, options) - - if (this.noprocess) - return this - - var n = this.minimatch.set.length - this.matches = new Array(n) - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false) - } - this._finish() -} - -GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) - if (this.realpath) { - var self = this - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null) - for (var p in matchset) { - try { - p = self._makeAbs(p) - var real = rp.realpathSync(p, self.realpathCache) - set[real] = true - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true - else - throw er - } - } - }) - } - common.finish(this) -} - - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // See if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip processing - if (childrenIgnored(this, read)) - return - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar) -} - - -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar) - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) - newPattern = [prefix, e] - else - newPattern = [e] - this._process(newPattern.concat(remain), index, inGlobStar) - } -} - - -GlobSync.prototype._emitMatch = function (index, e) { - if (isIgnored(this, e)) - return - - var abs = this._makeAbs(e) - - if (this.mark) - e = this._mark(e) - - if (this.absolute) { - e = abs - } - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - - if (this.stat) - this._stat(e) -} - - -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) - - var entries - var lstat - var stat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - if (er.code === 'ENOENT') { - // lstat failed, doesn't exist - return null - } - } - - var isSym = lstat && lstat.isSymbolicLink() - this.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && lstat && !lstat.isDirectory()) - this.cache[abs] = 'FILE' - else - entries = this._readdir(abs, false) - - return entries -} - -GlobSync.prototype._readdir = function (abs, inGlobStar) { - var entries - - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return null - - if (Array.isArray(c)) - return c - } - - try { - return this._readdirEntries(abs, fs.readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er) - return null - } -} - -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - - // mark and cache dir-ness - return entries -} - -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f) - this.cache[abs] = 'FILE' - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd) - error.path = this.cwd - error.code = er.code - throw error - } - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) - throw er - if (!this.silent) - console.error('glob error', er) - break - } -} - -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - - var entries = this._readdir(abs, inGlobStar) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false) - - var len = entries.length - var isSym = this.symlinks[abs] - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true) - } -} - -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) -} - -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return false - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c - - if (needDir && c === 'FILE') - return false - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (!stat) { - var lstat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { - this.statCache[abs] = false - return false - } - } - - if (lstat && lstat.isSymbolicLink()) { - try { - stat = fs.statSync(abs) - } catch (er) { - stat = lstat - } - } else { - stat = lstat - } - } - - this.statCache[abs] = stat - - var c = true - if (stat) - c = stat.isDirectory() ? 'DIR' : 'FILE' - - this.cache[abs] = this.cache[abs] || c - - if (needDir && c === 'FILE') - return false - - return c -} - -GlobSync.prototype._mark = function (p) { - return common.mark(this, p) -} - -GlobSync.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/package.json deleted file mode 100644 index 6c673faf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "rimraf", - "version": "2.5.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": "tap test/*.js" - }, - "bin": { - "rimraf": "./bin.js" - }, - "dependencies": { - "glob": "^7.0.5" - }, - "files": [ - "LICENSE", - "README.md", - "bin.js", - "rimraf.js" - ], - "devDependencies": { - "mkdirp": "^0.5.1", - "tap": "^6.1.1" - }, - "gitHead": "2af08bbbd0a03549b278414309dc5d8097699443", - "bugs": { - "url": "https://github.com/isaacs/rimraf/issues" - }, - "homepage": "https://github.com/isaacs/rimraf#readme", - "_id": "rimraf@2.5.4", - "_shasum": "96800093cbf1a0c86bd95b4625467535c29dfa04", - "_from": "rimraf@>=2.5.2 <2.6.0", - "_npmVersion": "3.10.6", - "_nodeVersion": "4.4.4", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "96800093cbf1a0c86bd95b4625467535c29dfa04", - "tarball": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/rimraf-2.5.4.tgz_1469206941888_0.8645927573088557" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/rimraf.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/rimraf.js deleted file mode 100644 index 5d9a5768..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/rimraf/rimraf.js +++ /dev/null @@ -1,343 +0,0 @@ -module.exports = rimraf -rimraf.sync = rimrafSync - -var assert = require("assert") -var path = require("path") -var fs = require("fs") -var glob = require("glob") - -var defaultGlobOpts = { - nosort: true, - silent: true -} - -// for EMFILE handling -var timeout = 0 - -var isWindows = (process.platform === "win32") - -function defaults (options) { - var methods = [ - 'unlink', - 'chmod', - 'stat', - 'lstat', - 'rmdir', - 'readdir' - ] - methods.forEach(function(m) { - options[m] = options[m] || fs[m] - m = m + 'Sync' - options[m] = options[m] || fs[m] - }) - - options.maxBusyTries = options.maxBusyTries || 3 - options.emfileWait = options.emfileWait || 1000 - if (options.glob === false) { - options.disableGlob = true - } - options.disableGlob = options.disableGlob || false - options.glob = options.glob || defaultGlobOpts -} - -function rimraf (p, options, cb) { - if (typeof options === 'function') { - cb = options - options = {} - } - - assert(p, 'rimraf: missing path') - assert.equal(typeof p, 'string', 'rimraf: path should be a string') - assert.equal(typeof cb, 'function', 'rimraf: callback function required') - assert(options, 'rimraf: invalid options argument provided') - assert.equal(typeof options, 'object', 'rimraf: options should be object') - - defaults(options) - - var busyTries = 0 - var errState = null - var n = 0 - - if (options.disableGlob || !glob.hasMagic(p)) - return afterGlob(null, [p]) - - options.lstat(p, function (er, stat) { - if (!er) - return afterGlob(null, [p]) - - glob(p, options.glob, afterGlob) - }) - - function next (er) { - errState = errState || er - if (--n === 0) - cb(errState) - } - - function afterGlob (er, results) { - if (er) - return cb(er) - - n = results.length - if (n === 0) - return cb() - - results.forEach(function (p) { - rimraf_(p, options, function CB (er) { - if (er) { - if (isWindows && (er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") && - busyTries < options.maxBusyTries) { - busyTries ++ - var time = busyTries * 100 - // try again, with the same exact callback as this one. - return setTimeout(function () { - rimraf_(p, options, CB) - }, time) - } - - // this one won't happen if graceful-fs is used. - if (er.code === "EMFILE" && timeout < options.emfileWait) { - return setTimeout(function () { - rimraf_(p, options, CB) - }, timeout ++) - } - - // already gone - if (er.code === "ENOENT") er = null - } - - timeout = 0 - next(er) - }) - }) - } -} - -// Two possible strategies. -// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR -// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR -// -// Both result in an extra syscall when you guess wrong. However, there -// are likely far more normal files in the world than directories. This -// is based on the assumption that a the average number of files per -// directory is >= 1. -// -// If anyone ever complains about this, then I guess the strategy could -// be made configurable somehow. But until then, YAGNI. -function rimraf_ (p, options, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') - - // sunos lets the root user unlink directories, which is... weird. - // so we have to lstat here and make sure it's not a dir. - options.lstat(p, function (er, st) { - if (er && er.code === "ENOENT") - return cb(null) - - // Windows can EPERM on stat. Life is suffering. - if (er && er.code === "EPERM" && isWindows) - fixWinEPERM(p, options, er, cb) - - if (st && st.isDirectory()) - return rmdir(p, options, er, cb) - - options.unlink(p, function (er) { - if (er) { - if (er.code === "ENOENT") - return cb(null) - if (er.code === "EPERM") - return (isWindows) - ? fixWinEPERM(p, options, er, cb) - : rmdir(p, options, er, cb) - if (er.code === "EISDIR") - return rmdir(p, options, er, cb) - } - return cb(er) - }) - }) -} - -function fixWinEPERM (p, options, er, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') - if (er) - assert(er instanceof Error) - - options.chmod(p, 666, function (er2) { - if (er2) - cb(er2.code === "ENOENT" ? null : er) - else - options.stat(p, function(er3, stats) { - if (er3) - cb(er3.code === "ENOENT" ? null : er) - else if (stats.isDirectory()) - rmdir(p, options, er, cb) - else - options.unlink(p, cb) - }) - }) -} - -function fixWinEPERMSync (p, options, er) { - assert(p) - assert(options) - if (er) - assert(er instanceof Error) - - try { - options.chmodSync(p, 666) - } catch (er2) { - if (er2.code === "ENOENT") - return - else - throw er - } - - try { - var stats = options.statSync(p) - } catch (er3) { - if (er3.code === "ENOENT") - return - else - throw er - } - - if (stats.isDirectory()) - rmdirSync(p, options, er) - else - options.unlinkSync(p) -} - -function rmdir (p, options, originalEr, cb) { - assert(p) - assert(options) - if (originalEr) - assert(originalEr instanceof Error) - assert(typeof cb === 'function') - - // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) - // if we guessed wrong, and it's not a directory, then - // raise the original error. - options.rmdir(p, function (er) { - if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) - rmkids(p, options, cb) - else if (er && er.code === "ENOTDIR") - cb(originalEr) - else - cb(er) - }) -} - -function rmkids(p, options, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') - - options.readdir(p, function (er, files) { - if (er) - return cb(er) - var n = files.length - if (n === 0) - return options.rmdir(p, cb) - var errState - files.forEach(function (f) { - rimraf(path.join(p, f), options, function (er) { - if (errState) - return - if (er) - return cb(errState = er) - if (--n === 0) - options.rmdir(p, cb) - }) - }) - }) -} - -// this looks simpler, and is strictly *faster*, but will -// tie up the JavaScript thread and fail on excessively -// deep directory trees. -function rimrafSync (p, options) { - options = options || {} - defaults(options) - - assert(p, 'rimraf: missing path') - assert.equal(typeof p, 'string', 'rimraf: path should be a string') - assert(options, 'rimraf: missing options') - assert.equal(typeof options, 'object', 'rimraf: options should be object') - - var results - - if (options.disableGlob || !glob.hasMagic(p)) { - results = [p] - } else { - try { - options.lstatSync(p) - results = [p] - } catch (er) { - results = glob.sync(p, options.glob) - } - } - - if (!results.length) - return - - for (var i = 0; i < results.length; i++) { - var p = results[i] - - try { - var st = options.lstatSync(p) - } catch (er) { - if (er.code === "ENOENT") - return - - // Windows can EPERM on stat. Life is suffering. - if (er.code === "EPERM" && isWindows) - fixWinEPERMSync(p, options, er) - } - - try { - // sunos lets the root user unlink directories, which is... weird. - if (st && st.isDirectory()) - rmdirSync(p, options, null) - else - options.unlinkSync(p) - } catch (er) { - if (er.code === "ENOENT") - return - if (er.code === "EPERM") - return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er) - if (er.code !== "EISDIR") - throw er - rmdirSync(p, options, er) - } - } -} - -function rmdirSync (p, options, originalEr) { - assert(p) - assert(options) - if (originalEr) - assert(originalEr instanceof Error) - - try { - options.rmdirSync(p) - } catch (er) { - if (er.code === "ENOENT") - return - if (er.code === "ENOTDIR") - throw originalEr - if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") - rmkidsSync(p, options) - } -} - -function rmkidsSync (p, options) { - assert(p) - assert(options) - options.readdirSync(p).forEach(function (f) { - rimrafSync(path.join(p, f), options) - }) - options.rmdirSync(p, options) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/.npmignore deleted file mode 100644 index 534108e3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules/ -coverage/ -.nyc_output/ -nyc_output/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/.travis.yml deleted file mode 100644 index 9c1a7b6c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -sudo: false -language: node_js -node_js: - - '0.10' - - '0.12' - - '4' - - '5' diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/README.md deleted file mode 100644 index ab6a1559..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/README.md +++ /dev/null @@ -1,344 +0,0 @@ -semver(1) -- The semantic versioner for npm -=========================================== - -## Usage - - $ npm install semver - - semver.valid('1.2.3') // '1.2.3' - semver.valid('a.b.c') // null - semver.clean(' =v1.2.3 ') // '1.2.3' - semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true - semver.gt('1.2.3', '9.8.7') // false - semver.lt('1.2.3', '9.8.7') // true - -As a command-line utility: - - $ semver -h - - SemVer 5.1.0 - - A JavaScript implementation of the http://semver.org/ specification - Copyright Isaac Z. Schlueter - - Usage: semver [options] <version> [<version> [...]] - Prints valid versions sorted by SemVer precedence - - Options: - -r --range <range> - Print versions that match the specified range. - - -i --increment [<level>] - Increment a version by the specified level. Level can - be one of: major, minor, patch, premajor, preminor, - prepatch, or prerelease. Default level is 'patch'. - Only one version may be specified. - - --preid <identifier> - Identifier to be used to prefix premajor, preminor, - prepatch or prerelease version increments. - - -l --loose - Interpret versions and ranges loosely - - Program exits successfully if any valid version satisfies - all supplied ranges, and prints all satisfying versions. - - If no satisfying versions are found, then exits failure. - - Versions are printed in ascending order, so supplying - multiple versions to the utility will just sort them. - -## Versions - -A "version" is described by the `v2.0.0` specification found at -<http://semver.org/>. - -A leading `"="` or `"v"` character is stripped off and ignored. - -## Ranges - -A `version range` is a set of `comparators` which specify versions -that satisfy the range. - -A `comparator` is composed of an `operator` and a `version`. The set -of primitive `operators` is: - -* `<` Less than -* `<=` Less than or equal to -* `>` Greater than -* `>=` Greater than or equal to -* `=` Equal. If no operator is specified, then equality is assumed, - so this operator is optional, but MAY be included. - -For example, the comparator `>=1.2.7` would match the versions -`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` -or `1.1.0`. - -Comparators can be joined by whitespace to form a `comparator set`, -which is satisfied by the **intersection** of all of the comparators -it includes. - -A range is composed of one or more comparator sets, joined by `||`. A -version matches a range if and only if every comparator in at least -one of the `||`-separated comparator sets is satisfied by the version. - -For example, the range `>=1.2.7 <1.3.0` would match the versions -`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, -or `1.1.0`. - -The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, -`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. - -### Prerelease Tags - -If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then -it will only be allowed to satisfy comparator sets if at least one -comparator with the same `[major, minor, patch]` tuple also has a -prerelease tag. - -For example, the range `>1.2.3-alpha.3` would be allowed to match the -version `1.2.3-alpha.7`, but it would *not* be satisfied by -`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater -than" `1.2.3-alpha.3` according to the SemVer sort rules. The version -range only accepts prerelease tags on the `1.2.3` version. The -version `3.4.5` *would* satisfy the range, because it does not have a -prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. - -The purpose for this behavior is twofold. First, prerelease versions -frequently are updated very quickly, and contain many breaking changes -that are (by the author's design) not yet fit for public consumption. -Therefore, by default, they are excluded from range matching -semantics. - -Second, a user who has opted into using a prerelease version has -clearly indicated the intent to use *that specific* set of -alpha/beta/rc versions. By including a prerelease tag in the range, -the user is indicating that they are aware of the risk. However, it -is still not appropriate to assume that they have opted into taking a -similar risk on the *next* set of prerelease versions. - -#### Prerelease Identifiers - -The method `.inc` takes an additional `identifier` string argument that -will append the value of the string as a prerelease identifier: - -```javascript -> semver.inc('1.2.3', 'prerelease', 'beta') -'1.2.4-beta.0' -``` - -command-line example: - -```shell -$ semver 1.2.3 -i prerelease --preid beta -1.2.4-beta.0 -``` - -Which then can be used to increment further: - -```shell -$ semver 1.2.4-beta.0 -i prerelease -1.2.4-beta.1 -``` - -### Advanced Range Syntax - -Advanced range syntax desugars to primitive comparators in -deterministic ways. - -Advanced ranges may be combined in the same way as primitive -comparators using white space or `||`. - -#### Hyphen Ranges `X.Y.Z - A.B.C` - -Specifies an inclusive set. - -* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` - -If a partial version is provided as the first version in the inclusive -range, then the missing pieces are replaced with zeroes. - -* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` - -If a partial version is provided as the second version in the -inclusive range, then all versions that start with the supplied parts -of the tuple are accepted, but nothing that would be greater than the -provided tuple parts. - -* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0` -* `1.2.3 - 2` := `>=1.2.3 <3.0.0` - -#### X-Ranges `1.2.x` `1.X` `1.2.*` `*` - -Any of `X`, `x`, or `*` may be used to "stand in" for one of the -numeric values in the `[major, minor, patch]` tuple. - -* `*` := `>=0.0.0` (Any version satisfies) -* `1.x` := `>=1.0.0 <2.0.0` (Matching major version) -* `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions) - -A partial version range is treated as an X-Range, so the special -character is in fact optional. - -* `""` (empty string) := `*` := `>=0.0.0` -* `1` := `1.x.x` := `>=1.0.0 <2.0.0` -* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0` - -#### Tilde Ranges `~1.2.3` `~1.2` `~1` - -Allows patch-level changes if a minor version is specified on the -comparator. Allows minor-level changes if not. - -* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0` -* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`) -* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`) -* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0` -* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`) -* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`) -* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in - the `1.2.3` version will be allowed, if they are greater than or - equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but - `1.2.4-beta.2` would not, because it is a prerelease of a - different `[major, minor, patch]` tuple. - -#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` - -Allows changes that do not modify the left-most non-zero digit in the -`[major, minor, patch]` tuple. In other words, this allows patch and -minor updates for versions `1.0.0` and above, patch updates for -versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. - -Many authors treat a `0.x` version as if the `x` were the major -"breaking-change" indicator. - -Caret ranges are ideal when an author may make breaking changes -between `0.2.4` and `0.3.0` releases, which is a common practice. -However, it presumes that there will *not* be breaking changes between -`0.2.4` and `0.2.5`. It allows for changes that are presumed to be -additive (but non-breaking), according to commonly observed practices. - -* `^1.2.3` := `>=1.2.3 <2.0.0` -* `^0.2.3` := `>=0.2.3 <0.3.0` -* `^0.0.3` := `>=0.0.3 <0.0.4` -* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in - the `1.2.3` version will be allowed, if they are greater than or - equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but - `1.2.4-beta.2` would not, because it is a prerelease of a - different `[major, minor, patch]` tuple. -* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4` Note that prereleases in the - `0.0.3` version *only* will be allowed, if they are greater than or - equal to `beta`. So, `0.0.3-pr.2` would be allowed. - -When parsing caret ranges, a missing `patch` value desugars to the -number `0`, but will allow flexibility within that value, even if the -major and minor versions are both `0`. - -* `^1.2.x` := `>=1.2.0 <2.0.0` -* `^0.0.x` := `>=0.0.0 <0.1.0` -* `^0.0` := `>=0.0.0 <0.1.0` - -A missing `minor` and `patch` values will desugar to zero, but also -allow flexibility within those values, even if the major version is -zero. - -* `^1.x` := `>=1.0.0 <2.0.0` -* `^0.x` := `>=0.0.0 <1.0.0` - -### Range Grammar - -Putting all this together, here is a Backus-Naur grammar for ranges, -for the benefit of parser authors: - -```bnf -range-set ::= range ( logical-or range ) * -logical-or ::= ( ' ' ) * '||' ( ' ' ) * -range ::= hyphen | simple ( ' ' simple ) * | '' -hyphen ::= partial ' - ' partial -simple ::= primitive | partial | tilde | caret -primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial -partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? -xr ::= 'x' | 'X' | '*' | nr -nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * -tilde ::= '~' partial -caret ::= '^' partial -qualifier ::= ( '-' pre )? ( '+' build )? -pre ::= parts -build ::= parts -parts ::= part ( '.' part ) * -part ::= nr | [-0-9A-Za-z]+ -``` - -## Functions - -All methods and classes take a final `loose` boolean argument that, if -true, will be more forgiving about not-quite-valid semver strings. -The resulting output will always be 100% strict, of course. - -Strict-mode Comparators and Ranges will be strict about the SemVer -strings that they parse. - -* `valid(v)`: Return the parsed version, or null if it's not valid. -* `inc(v, release)`: Return the version incremented by the release - type (`major`, `premajor`, `minor`, `preminor`, `patch`, - `prepatch`, or `prerelease`), or null if it's not valid - * `premajor` in one call will bump the version up to the next major - version and down to a prerelease of that major version. - `preminor`, and `prepatch` work the same way. - * If called from a non-prerelease version, the `prerelease` will work the - same as `prepatch`. It increments the patch version, then makes a - prerelease. If the input version is already a prerelease it simply - increments it. -* `major(v)`: Return the major version number. -* `minor(v)`: Return the minor version number. -* `patch(v)`: Return the patch version number. - -### Comparison - -* `gt(v1, v2)`: `v1 > v2` -* `gte(v1, v2)`: `v1 >= v2` -* `lt(v1, v2)`: `v1 < v2` -* `lte(v1, v2)`: `v1 <= v2` -* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, - even if they're not the exact same string. You already know how to - compare strings. -* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. -* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call - the corresponding function above. `"==="` and `"!=="` do simple - string comparison, but are included for completeness. Throws if an - invalid comparison string is provided. -* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if - `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. -* `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions - in descending order when passed to `Array.sort()`. -* `diff(v1, v2)`: Returns difference between two versions by the release type - (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), - or null if the versions are the same. - - -### Ranges - -* `validRange(range)`: Return the valid range or null if it's not valid -* `satisfies(version, range)`: Return true if the version satisfies the - range. -* `maxSatisfying(versions, range)`: Return the highest version in the list - that satisfies the range, or `null` if none of them do. -* `gtr(version, range)`: Return `true` if version is greater than all the - versions possible in the range. -* `ltr(version, range)`: Return `true` if version is less than all the - versions possible in the range. -* `outside(version, range, hilo)`: Return true if the version is outside - the bounds of the range in either the high or low direction. The - `hilo` argument must be either the string `'>'` or `'<'`. (This is - the function called by `gtr` and `ltr`.) - -Note that, since ranges may be non-contiguous, a version might not be -greater than a range, less than a range, *or* satisfy a range! For -example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` -until `2.0.0`, so the version `1.2.10` would not be greater than the -range (because `2.0.1` satisfies, which is higher), nor less than the -range (since `1.2.8` satisfies, which is lower), and it also does not -satisfy the range. - -If you want to know if a version satisfies or does not satisfy a -range, use the `satisfies(version, range)` function. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/bin/semver b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/bin/semver deleted file mode 100755 index c5f2e857..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/bin/semver +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/env node -// Standalone semver comparison program. -// Exits successfully and prints matching version(s) if -// any supplied version is valid and passes all tests. - -var argv = process.argv.slice(2) - , versions = [] - , range = [] - , gt = [] - , lt = [] - , eq = [] - , inc = null - , version = require("../package.json").version - , loose = false - , identifier = undefined - , semver = require("../semver") - , reverse = false - -main() - -function main () { - if (!argv.length) return help() - while (argv.length) { - var a = argv.shift() - var i = a.indexOf('=') - if (i !== -1) { - a = a.slice(0, i) - argv.unshift(a.slice(i + 1)) - } - switch (a) { - case "-rv": case "-rev": case "--rev": case "--reverse": - reverse = true - break - case "-l": case "--loose": - loose = true - break - case "-v": case "--version": - versions.push(argv.shift()) - break - case "-i": case "--inc": case "--increment": - switch (argv[0]) { - case "major": case "minor": case "patch": case "prerelease": - case "premajor": case "preminor": case "prepatch": - inc = argv.shift() - break - default: - inc = "patch" - break - } - break - case "--preid": - identifier = argv.shift() - break - case "-r": case "--range": - range.push(argv.shift()) - break - case "-h": case "--help": case "-?": - return help() - default: - versions.push(a) - break - } - } - - versions = versions.filter(function (v) { - return semver.valid(v, loose) - }) - if (!versions.length) return fail() - if (inc && (versions.length !== 1 || range.length)) - return failInc() - - for (var i = 0, l = range.length; i < l ; i ++) { - versions = versions.filter(function (v) { - return semver.satisfies(v, range[i], loose) - }) - if (!versions.length) return fail() - } - return success(versions) -} - -function failInc () { - console.error("--inc can only be used on a single version with no range") - fail() -} - -function fail () { process.exit(1) } - -function success () { - var compare = reverse ? "rcompare" : "compare" - versions.sort(function (a, b) { - return semver[compare](a, b, loose) - }).map(function (v) { - return semver.clean(v, loose) - }).map(function (v) { - return inc ? semver.inc(v, inc, loose, identifier) : v - }).forEach(function (v,i,_) { console.log(v) }) -} - -function help () { - console.log(["SemVer " + version - ,"" - ,"A JavaScript implementation of the http://semver.org/ specification" - ,"Copyright Isaac Z. Schlueter" - ,"" - ,"Usage: semver [options] <version> [<version> [...]]" - ,"Prints valid versions sorted by SemVer precedence" - ,"" - ,"Options:" - ,"-r --range <range>" - ," Print versions that match the specified range." - ,"" - ,"-i --increment [<level>]" - ," Increment a version by the specified level. Level can" - ," be one of: major, minor, patch, premajor, preminor," - ," prepatch, or prerelease. Default level is 'patch'." - ," Only one version may be specified." - ,"" - ,"--preid <identifier>" - ," Identifier to be used to prefix premajor, preminor," - ," prepatch or prerelease version increments." - ,"" - ,"-l --loose" - ," Interpret versions and ranges loosely" - ,"" - ,"Program exits successfully if any valid version satisfies" - ,"all supplied ranges, and prints all satisfying versions." - ,"" - ,"If no satisfying versions are found, then exits failure." - ,"" - ,"Versions are printed in ascending order, so supplying" - ,"multiple versions to the utility will just sort them." - ].join("\n")) -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/package.json deleted file mode 100644 index 9e565cd9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "semver", - "version": "5.1.1", - "description": "The semantic version parser used by npm.", - "main": "semver.js", - "scripts": { - "test": "tap test/*.js" - }, - "devDependencies": { - "tap": "^2.0.0" - }, - "license": "ISC", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/node-semver.git" - }, - "bin": { - "semver": "./bin/semver" - }, - "gitHead": "ad1d3658a1b5749c38b9d21280c629f4fa2fee54", - "bugs": { - "url": "https://github.com/npm/node-semver/issues" - }, - "homepage": "https://github.com/npm/node-semver#readme", - "_id": "semver@5.1.1", - "_shasum": "a3292a373e6f3e0798da0b20641b9a9c5bc47e19", - "_from": "semver@>=5.1.0 <5.2.0", - "_npmVersion": "3.10.2", - "_nodeVersion": "4.4.4", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "a3292a373e6f3e0798da0b20641b9a9c5bc47e19", - "tarball": "https://registry.npmjs.org/semver/-/semver-5.1.1.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/semver-5.1.1.tgz_1466704850953_0.017174890032038093" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/semver/-/semver-5.1.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/range.bnf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/range.bnf deleted file mode 100644 index 25ebd5c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/range.bnf +++ /dev/null @@ -1,16 +0,0 @@ -range-set ::= range ( logical-or range ) * -logical-or ::= ( ' ' ) * '||' ( ' ' ) * -range ::= hyphen | simple ( ' ' simple ) * | '' -hyphen ::= partial ' - ' partial -simple ::= primitive | partial | tilde | caret -primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial -partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? -xr ::= 'x' | 'X' | '*' | nr -nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * -tilde ::= '~' partial -caret ::= '^' partial -qualifier ::= ( '-' pre )? ( '+' build )? -pre ::= parts -build ::= parts -parts ::= part ( '.' part ) * -part ::= nr | [-0-9A-Za-z]+ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/semver.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/semver.js deleted file mode 100644 index d9d8713b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/semver.js +++ /dev/null @@ -1,1188 +0,0 @@ -exports = module.exports = SemVer; - -// The debug function is excluded entirely from the minified version. -/* nomin */ var debug; -/* nomin */ if (typeof process === 'object' && - /* nomin */ process.env && - /* nomin */ process.env.NODE_DEBUG && - /* nomin */ /\bsemver\b/i.test(process.env.NODE_DEBUG)) - /* nomin */ debug = function() { - /* nomin */ var args = Array.prototype.slice.call(arguments, 0); - /* nomin */ args.unshift('SEMVER'); - /* nomin */ console.log.apply(console, args); - /* nomin */ }; -/* nomin */ else - /* nomin */ debug = function() {}; - -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -exports.SEMVER_SPEC_VERSION = '2.0.0'; - -var MAX_LENGTH = 256; -var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; - -// The actual regexps go on exports.re -var re = exports.re = []; -var src = exports.src = []; -var R = 0; - -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. - -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. - -var NUMERICIDENTIFIER = R++; -src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'; -var NUMERICIDENTIFIERLOOSE = R++; -src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'; - - -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. - -var NONNUMERICIDENTIFIER = R++; -src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'; - - -// ## Main Version -// Three dot-separated numeric identifiers. - -var MAINVERSION = R++; -src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + - '(' + src[NUMERICIDENTIFIER] + ')\\.' + - '(' + src[NUMERICIDENTIFIER] + ')'; - -var MAINVERSIONLOOSE = R++; -src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[NUMERICIDENTIFIERLOOSE] + ')'; - -// ## Pre-release Version Identifier -// A numeric identifier, or a non-numeric identifier. - -var PRERELEASEIDENTIFIER = R++; -src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + - '|' + src[NONNUMERICIDENTIFIER] + ')'; - -var PRERELEASEIDENTIFIERLOOSE = R++; -src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + - '|' + src[NONNUMERICIDENTIFIER] + ')'; - - -// ## Pre-release Version -// Hyphen, followed by one or more dot-separated pre-release version -// identifiers. - -var PRERELEASE = R++; -src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + - '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'; - -var PRERELEASELOOSE = R++; -src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + - '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'; - -// ## Build Metadata Identifier -// Any combination of digits, letters, or hyphens. - -var BUILDIDENTIFIER = R++; -src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'; - -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. - -var BUILD = R++; -src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + - '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'; - - -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. - -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. - -var FULL = R++; -var FULLPLAIN = 'v?' + src[MAINVERSION] + - src[PRERELEASE] + '?' + - src[BUILD] + '?'; - -src[FULL] = '^' + FULLPLAIN + '$'; - -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. -var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + - src[PRERELEASELOOSE] + '?' + - src[BUILD] + '?'; - -var LOOSE = R++; -src[LOOSE] = '^' + LOOSEPLAIN + '$'; - -var GTLT = R++; -src[GTLT] = '((?:<|>)?=?)'; - -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. -var XRANGEIDENTIFIERLOOSE = R++; -src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'; -var XRANGEIDENTIFIER = R++; -src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'; - -var XRANGEPLAIN = R++; -src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + - '(?:' + src[PRERELEASE] + ')?' + - src[BUILD] + '?' + - ')?)?'; - -var XRANGEPLAINLOOSE = R++; -src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:' + src[PRERELEASELOOSE] + ')?' + - src[BUILD] + '?' + - ')?)?'; - -var XRANGE = R++; -src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'; -var XRANGELOOSE = R++; -src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'; - -// Tilde ranges. -// Meaning is "reasonably at or greater than" -var LONETILDE = R++; -src[LONETILDE] = '(?:~>?)'; - -var TILDETRIM = R++; -src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'; -re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g'); -var tildeTrimReplace = '$1~'; - -var TILDE = R++; -src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'; -var TILDELOOSE = R++; -src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'; - -// Caret ranges. -// Meaning is "at least and backwards compatible with" -var LONECARET = R++; -src[LONECARET] = '(?:\\^)'; - -var CARETTRIM = R++; -src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'; -re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g'); -var caretTrimReplace = '$1^'; - -var CARET = R++; -src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'; -var CARETLOOSE = R++; -src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'; - -// A simple gt/lt/eq thing, or just "" to indicate "any version" -var COMPARATORLOOSE = R++; -src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'; -var COMPARATOR = R++; -src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'; - - -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` -var COMPARATORTRIM = R++; -src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + - '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'; - -// this one has to use the /g flag -re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g'); -var comparatorTrimReplace = '$1$2$3'; - - -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -var HYPHENRANGE = R++; -src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAIN] + ')' + - '\\s*$'; - -var HYPHENRANGELOOSE = R++; -src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s*$'; - -// Star ranges basically just allow anything at all. -var STAR = R++; -src[STAR] = '(<|>)?=?\\s*\\*'; - -// Compile to actual regexp objects. -// All are flag-free, unless they were created above with a flag. -for (var i = 0; i < R; i++) { - debug(i, src[i]); - if (!re[i]) - re[i] = new RegExp(src[i]); -} - -exports.parse = parse; -function parse(version, loose) { - if (version instanceof SemVer) - return version; - - if (typeof version !== 'string') - return null; - - if (version.length > MAX_LENGTH) - return null; - - var r = loose ? re[LOOSE] : re[FULL]; - if (!r.test(version)) - return null; - - try { - return new SemVer(version, loose); - } catch (er) { - return null; - } -} - -exports.valid = valid; -function valid(version, loose) { - var v = parse(version, loose); - return v ? v.version : null; -} - - -exports.clean = clean; -function clean(version, loose) { - var s = parse(version.trim().replace(/^[=v]+/, ''), loose); - return s ? s.version : null; -} - -exports.SemVer = SemVer; - -function SemVer(version, loose) { - if (version instanceof SemVer) { - if (version.loose === loose) - return version; - else - version = version.version; - } else if (typeof version !== 'string') { - throw new TypeError('Invalid Version: ' + version); - } - - if (version.length > MAX_LENGTH) - throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') - - if (!(this instanceof SemVer)) - return new SemVer(version, loose); - - debug('SemVer', version, loose); - this.loose = loose; - var m = version.trim().match(loose ? re[LOOSE] : re[FULL]); - - if (!m) - throw new TypeError('Invalid Version: ' + version); - - this.raw = version; - - // these are actually numbers - this.major = +m[1]; - this.minor = +m[2]; - this.patch = +m[3]; - - if (this.major > MAX_SAFE_INTEGER || this.major < 0) - throw new TypeError('Invalid major version') - - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) - throw new TypeError('Invalid minor version') - - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) - throw new TypeError('Invalid patch version') - - // numberify any prerelease numeric ids - if (!m[4]) - this.prerelease = []; - else - this.prerelease = m[4].split('.').map(function(id) { - if (/^[0-9]+$/.test(id)) { - var num = +id - if (num >= 0 && num < MAX_SAFE_INTEGER) - return num - } - return id; - }); - - this.build = m[5] ? m[5].split('.') : []; - this.format(); -} - -SemVer.prototype.format = function() { - this.version = this.major + '.' + this.minor + '.' + this.patch; - if (this.prerelease.length) - this.version += '-' + this.prerelease.join('.'); - return this.version; -}; - -SemVer.prototype.toString = function() { - return this.version; -}; - -SemVer.prototype.compare = function(other) { - debug('SemVer.compare', this.version, this.loose, other); - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - return this.compareMain(other) || this.comparePre(other); -}; - -SemVer.prototype.compareMain = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - return compareIdentifiers(this.major, other.major) || - compareIdentifiers(this.minor, other.minor) || - compareIdentifiers(this.patch, other.patch); -}; - -SemVer.prototype.comparePre = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - // NOT having a prerelease is > having one - if (this.prerelease.length && !other.prerelease.length) - return -1; - else if (!this.prerelease.length && other.prerelease.length) - return 1; - else if (!this.prerelease.length && !other.prerelease.length) - return 0; - - var i = 0; - do { - var a = this.prerelease[i]; - var b = other.prerelease[i]; - debug('prerelease compare', i, a, b); - if (a === undefined && b === undefined) - return 0; - else if (b === undefined) - return 1; - else if (a === undefined) - return -1; - else if (a === b) - continue; - else - return compareIdentifiers(a, b); - } while (++i); -}; - -// preminor will bump the version up to the next minor release, and immediately -// down to pre-release. premajor and prepatch work the same way. -SemVer.prototype.inc = function(release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc('pre', identifier); - break; - case 'preminor': - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc('pre', identifier); - break; - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0; - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case 'prerelease': - if (this.prerelease.length === 0) - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) - this.major++; - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break; - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) - this.minor++; - this.patch = 0; - this.prerelease = []; - break; - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) - this.patch++; - this.prerelease = []; - break; - // This probably shouldn't be used publicly. - // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. - case 'pre': - if (this.prerelease.length === 0) - this.prerelease = [0]; - else { - var i = this.prerelease.length; - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++; - i = -2; - } - } - if (i === -1) // didn't increment anything - this.prerelease.push(0); - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) - this.prerelease = [identifier, 0]; - } else - this.prerelease = [identifier, 0]; - } - break; - - default: - throw new Error('invalid increment argument: ' + release); - } - this.format(); - this.raw = this.version; - return this; -}; - -exports.inc = inc; -function inc(version, release, loose, identifier) { - if (typeof(loose) === 'string') { - identifier = loose; - loose = undefined; - } - - try { - return new SemVer(version, loose).inc(release, identifier).version; - } catch (er) { - return null; - } -} - -exports.diff = diff; -function diff(version1, version2) { - if (eq(version1, version2)) { - return null; - } else { - var v1 = parse(version1); - var v2 = parse(version2); - if (v1.prerelease.length || v2.prerelease.length) { - for (var key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return 'pre'+key; - } - } - } - return 'prerelease'; - } - for (var key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return key; - } - } - } - } -} - -exports.compareIdentifiers = compareIdentifiers; - -var numeric = /^[0-9]+$/; -function compareIdentifiers(a, b) { - var anum = numeric.test(a); - var bnum = numeric.test(b); - - if (anum && bnum) { - a = +a; - b = +b; - } - - return (anum && !bnum) ? -1 : - (bnum && !anum) ? 1 : - a < b ? -1 : - a > b ? 1 : - 0; -} - -exports.rcompareIdentifiers = rcompareIdentifiers; -function rcompareIdentifiers(a, b) { - return compareIdentifiers(b, a); -} - -exports.major = major; -function major(a, loose) { - return new SemVer(a, loose).major; -} - -exports.minor = minor; -function minor(a, loose) { - return new SemVer(a, loose).minor; -} - -exports.patch = patch; -function patch(a, loose) { - return new SemVer(a, loose).patch; -} - -exports.compare = compare; -function compare(a, b, loose) { - return new SemVer(a, loose).compare(b); -} - -exports.compareLoose = compareLoose; -function compareLoose(a, b) { - return compare(a, b, true); -} - -exports.rcompare = rcompare; -function rcompare(a, b, loose) { - return compare(b, a, loose); -} - -exports.sort = sort; -function sort(list, loose) { - return list.sort(function(a, b) { - return exports.compare(a, b, loose); - }); -} - -exports.rsort = rsort; -function rsort(list, loose) { - return list.sort(function(a, b) { - return exports.rcompare(a, b, loose); - }); -} - -exports.gt = gt; -function gt(a, b, loose) { - return compare(a, b, loose) > 0; -} - -exports.lt = lt; -function lt(a, b, loose) { - return compare(a, b, loose) < 0; -} - -exports.eq = eq; -function eq(a, b, loose) { - return compare(a, b, loose) === 0; -} - -exports.neq = neq; -function neq(a, b, loose) { - return compare(a, b, loose) !== 0; -} - -exports.gte = gte; -function gte(a, b, loose) { - return compare(a, b, loose) >= 0; -} - -exports.lte = lte; -function lte(a, b, loose) { - return compare(a, b, loose) <= 0; -} - -exports.cmp = cmp; -function cmp(a, op, b, loose) { - var ret; - switch (op) { - case '===': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a === b; - break; - case '!==': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a !== b; - break; - case '': case '=': case '==': ret = eq(a, b, loose); break; - case '!=': ret = neq(a, b, loose); break; - case '>': ret = gt(a, b, loose); break; - case '>=': ret = gte(a, b, loose); break; - case '<': ret = lt(a, b, loose); break; - case '<=': ret = lte(a, b, loose); break; - default: throw new TypeError('Invalid operator: ' + op); - } - return ret; -} - -exports.Comparator = Comparator; -function Comparator(comp, loose) { - if (comp instanceof Comparator) { - if (comp.loose === loose) - return comp; - else - comp = comp.value; - } - - if (!(this instanceof Comparator)) - return new Comparator(comp, loose); - - debug('comparator', comp, loose); - this.loose = loose; - this.parse(comp); - - if (this.semver === ANY) - this.value = ''; - else - this.value = this.operator + this.semver.version; - - debug('comp', this); -} - -var ANY = {}; -Comparator.prototype.parse = function(comp) { - var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var m = comp.match(r); - - if (!m) - throw new TypeError('Invalid comparator: ' + comp); - - this.operator = m[1]; - if (this.operator === '=') - this.operator = ''; - - // if it literally is just '>' or '' then allow anything. - if (!m[2]) - this.semver = ANY; - else - this.semver = new SemVer(m[2], this.loose); -}; - -Comparator.prototype.toString = function() { - return this.value; -}; - -Comparator.prototype.test = function(version) { - debug('Comparator.test', version, this.loose); - - if (this.semver === ANY) - return true; - - if (typeof version === 'string') - version = new SemVer(version, this.loose); - - return cmp(version, this.operator, this.semver, this.loose); -}; - - -exports.Range = Range; -function Range(range, loose) { - if ((range instanceof Range) && range.loose === loose) - return range; - - if (!(this instanceof Range)) - return new Range(range, loose); - - this.loose = loose; - - // First, split based on boolean or || - this.raw = range; - this.set = range.split(/\s*\|\|\s*/).map(function(range) { - return this.parseRange(range.trim()); - }, this).filter(function(c) { - // throw out any that are not relevant for whatever reason - return c.length; - }); - - if (!this.set.length) { - throw new TypeError('Invalid SemVer Range: ' + range); - } - - this.format(); -} - -Range.prototype.format = function() { - this.range = this.set.map(function(comps) { - return comps.join(' ').trim(); - }).join('||').trim(); - return this.range; -}; - -Range.prototype.toString = function() { - return this.range; -}; - -Range.prototype.parseRange = function(range) { - var loose = this.loose; - range = range.trim(); - debug('range', range, loose); - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]; - range = range.replace(hr, hyphenReplace); - debug('hyphen replace', range); - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace); - debug('comparator trim', range, re[COMPARATORTRIM]); - - // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[TILDETRIM], tildeTrimReplace); - - // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[CARETTRIM], caretTrimReplace); - - // normalize spaces - range = range.split(/\s+/).join(' '); - - // At this point, the range is completely trimmed and - // ready to be split into comparators. - - var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var set = range.split(' ').map(function(comp) { - return parseComparator(comp, loose); - }).join(' ').split(/\s+/); - if (this.loose) { - // in loose mode, throw out any that are not valid comparators - set = set.filter(function(comp) { - return !!comp.match(compRe); - }); - } - set = set.map(function(comp) { - return new Comparator(comp, loose); - }); - - return set; -}; - -// Mostly just for testing and legacy API reasons -exports.toComparators = toComparators; -function toComparators(range, loose) { - return new Range(range, loose).set.map(function(comp) { - return comp.map(function(c) { - return c.value; - }).join(' ').trim().split(' '); - }); -} - -// comprised of xranges, tildes, stars, and gtlt's at this point. -// already replaced the hyphen ranges -// turn into a set of JUST comparators. -function parseComparator(comp, loose) { - debug('comp', comp); - comp = replaceCarets(comp, loose); - debug('caret', comp); - comp = replaceTildes(comp, loose); - debug('tildes', comp); - comp = replaceXRanges(comp, loose); - debug('xrange', comp); - comp = replaceStars(comp, loose); - debug('stars', comp); - return comp; -} - -function isX(id) { - return !id || id.toLowerCase() === 'x' || id === '*'; -} - -// ~, ~> --> * (any, kinda silly) -// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 -// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 -// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 -// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 -// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 -function replaceTildes(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceTilde(comp, loose); - }).join(' '); -} - -function replaceTilde(comp, loose) { - var r = loose ? re[TILDELOOSE] : re[TILDE]; - return comp.replace(r, function(_, M, m, p, pr) { - debug('tilde', comp, _, M, m, p, pr); - var ret; - - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) - // ~1.2 == >=1.2.0 <1.3.0 - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else if (pr) { - debug('replaceTilde pr', pr); - if (pr.charAt(0) !== '-') - pr = '-' + pr; - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - // ~1.2.3 == >=1.2.3 <1.3.0 - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - - debug('tilde return', ret); - return ret; - }); -} - -// ^ --> * (any, kinda silly) -// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 -// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 -// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 -// ^1.2.3 --> >=1.2.3 <2.0.0 -// ^1.2.0 --> >=1.2.0 <2.0.0 -function replaceCarets(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceCaret(comp, loose); - }).join(' '); -} - -function replaceCaret(comp, loose) { - debug('caret', comp, loose); - var r = loose ? re[CARETLOOSE] : re[CARET]; - return comp.replace(r, function(_, M, m, p, pr) { - debug('caret', comp, _, M, m, p, pr); - var ret; - - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) { - if (M === '0') - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else - ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'; - } else if (pr) { - debug('replaceCaret pr', pr); - if (pr.charAt(0) !== '-') - pr = '-' + pr; - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + (+M + 1) + '.0.0'; - } else { - debug('no pr'); - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + (+M + 1) + '.0.0'; - } - - debug('caret return', ret); - return ret; - }); -} - -function replaceXRanges(comp, loose) { - debug('replaceXRanges', comp, loose); - return comp.split(/\s+/).map(function(comp) { - return replaceXRange(comp, loose); - }).join(' '); -} - -function replaceXRange(comp, loose) { - comp = comp.trim(); - var r = loose ? re[XRANGELOOSE] : re[XRANGE]; - return comp.replace(r, function(ret, gtlt, M, m, p, pr) { - debug('xRange', comp, ret, gtlt, M, m, p, pr); - var xM = isX(M); - var xm = xM || isX(m); - var xp = xm || isX(p); - var anyX = xp; - - if (gtlt === '=' && anyX) - gtlt = ''; - - if (xM) { - if (gtlt === '>' || gtlt === '<') { - // nothing is allowed - ret = '<0.0.0'; - } else { - // nothing is forbidden - ret = '*'; - } - } else if (gtlt && anyX) { - // replace X with 0 - if (xm) - m = 0; - if (xp) - p = 0; - - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - // >1.2.3 => >= 1.2.4 - gtlt = '>='; - if (xm) { - M = +M + 1; - m = 0; - p = 0; - } else if (xp) { - m = +m + 1; - p = 0; - } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = '<' - if (xm) - M = +M + 1 - else - m = +m + 1 - } - - ret = gtlt + M + '.' + m + '.' + p; - } else if (xm) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - } else if (xp) { - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - } - - debug('xRange return', ret); - - return ret; - }); -} - -// Because * is AND-ed with everything else in the comparator, -// and '' means "any version", just remove the *s entirely. -function replaceStars(comp, loose) { - debug('replaceStars', comp, loose); - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[STAR], ''); -} - -// This function is passed to string.replace(re[HYPHENRANGE]) -// M, m, patch, prerelease, build -// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 -// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do -// 1.2 - 3.4 => >=1.2.0 <3.5.0 -function hyphenReplace($0, - from, fM, fm, fp, fpr, fb, - to, tM, tm, tp, tpr, tb) { - - if (isX(fM)) - from = ''; - else if (isX(fm)) - from = '>=' + fM + '.0.0'; - else if (isX(fp)) - from = '>=' + fM + '.' + fm + '.0'; - else - from = '>=' + from; - - if (isX(tM)) - to = ''; - else if (isX(tm)) - to = '<' + (+tM + 1) + '.0.0'; - else if (isX(tp)) - to = '<' + tM + '.' + (+tm + 1) + '.0'; - else if (tpr) - to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr; - else - to = '<=' + to; - - return (from + ' ' + to).trim(); -} - - -// if ANY of the sets match ALL of its comparators, then pass -Range.prototype.test = function(version) { - if (!version) - return false; - - if (typeof version === 'string') - version = new SemVer(version, this.loose); - - for (var i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version)) - return true; - } - return false; -}; - -function testSet(set, version) { - for (var i = 0; i < set.length; i++) { - if (!set[i].test(version)) - return false; - } - - if (version.prerelease.length) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (var i = 0; i < set.length; i++) { - debug(set[i].semver); - if (set[i].semver === ANY) - continue; - - if (set[i].semver.prerelease.length > 0) { - var allowed = set[i].semver; - if (allowed.major === version.major && - allowed.minor === version.minor && - allowed.patch === version.patch) - return true; - } - } - - // Version has a -pre, but it's not one of the ones we like. - return false; - } - - return true; -} - -exports.satisfies = satisfies; -function satisfies(version, range, loose) { - try { - range = new Range(range, loose); - } catch (er) { - return false; - } - return range.test(version); -} - -exports.maxSatisfying = maxSatisfying; -function maxSatisfying(versions, range, loose) { - return versions.filter(function(version) { - return satisfies(version, range, loose); - }).sort(function(a, b) { - return rcompare(a, b, loose); - })[0] || null; -} - -exports.validRange = validRange; -function validRange(range, loose) { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, loose).range || '*'; - } catch (er) { - return null; - } -} - -// Determine if version is less than all the versions possible in the range -exports.ltr = ltr; -function ltr(version, range, loose) { - return outside(version, range, '<', loose); -} - -// Determine if version is greater than all the versions possible in the range. -exports.gtr = gtr; -function gtr(version, range, loose) { - return outside(version, range, '>', loose); -} - -exports.outside = outside; -function outside(version, range, hilo, loose) { - version = new SemVer(version, loose); - range = new Range(range, loose); - - var gtfn, ltefn, ltfn, comp, ecomp; - switch (hilo) { - case '>': - gtfn = gt; - ltefn = lte; - ltfn = lt; - comp = '>'; - ecomp = '>='; - break; - case '<': - gtfn = lt; - ltefn = gte; - ltfn = gt; - comp = '<'; - ecomp = '<='; - break; - default: - throw new TypeError('Must provide a hilo val of "<" or ">"'); - } - - // If it satisifes the range it is not outside - if (satisfies(version, range, loose)) { - return false; - } - - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. - - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i]; - - var high = null; - var low = null; - - comparators.forEach(function(comparator) { - if (comparator.semver === ANY) { - comparator = new Comparator('>=0.0.0') - } - high = high || comparator; - low = low || comparator; - if (gtfn(comparator.semver, high.semver, loose)) { - high = comparator; - } else if (ltfn(comparator.semver, low.semver, loose)) { - low = comparator; - } - }); - - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) { - return false; - } - - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - if ((!low.operator || low.operator === comp) && - ltefn(version, low.semver)) { - return false; - } else if (low.operator === ecomp && ltfn(version, low.semver)) { - return false; - } - } - return true; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/big-numbers.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/big-numbers.js deleted file mode 100644 index c051864b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/big-numbers.js +++ /dev/null @@ -1,31 +0,0 @@ -var test = require('tap').test -var semver = require('../') - -test('long version is too long', function (t) { - var v = '1.2.' + new Array(256).join('1') - t.throws(function () { - new semver.SemVer(v) - }) - t.equal(semver.valid(v, false), null) - t.equal(semver.valid(v, true), null) - t.equal(semver.inc(v, 'patch'), null) - t.end() -}) - -test('big number is like too long version', function (t) { - var v = '1.2.' + new Array(100).join('1') - t.throws(function () { - new semver.SemVer(v) - }) - t.equal(semver.valid(v, false), null) - t.equal(semver.valid(v, true), null) - t.equal(semver.inc(v, 'patch'), null) - t.end() -}) - -test('parsing null does not throw', function (t) { - t.equal(semver.parse(null), null) - t.equal(semver.parse({}), null) - t.equal(semver.parse(new semver.SemVer('1.2.3')).version, '1.2.3') - t.end() -}) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/clean.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/clean.js deleted file mode 100644 index 9e268de9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/clean.js +++ /dev/null @@ -1,29 +0,0 @@ -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var clean = semver.clean; - -test('\nclean tests', function(t) { - // [range, version] - // Version should be detectable despite extra characters - [ - ['1.2.3', '1.2.3'], - [' 1.2.3 ', '1.2.3'], - [' 1.2.3-4 ', '1.2.3-4'], - [' 1.2.3-pre ', '1.2.3-pre'], - [' =v1.2.3 ', '1.2.3'], - ['v1.2.3', '1.2.3'], - [' v1.2.3 ', '1.2.3'], - ['\t1.2.3', '1.2.3'], - ['>1.2.3', null], - ['~1.2.3', null], - ['<=1.2.3', null], - ['1.2.x', null] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var msg = 'clean(' + range + ') = ' + version; - t.equal(clean(range), version, msg); - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/gtr.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/gtr.js deleted file mode 100644 index bbb87896..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/gtr.js +++ /dev/null @@ -1,173 +0,0 @@ -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var gtr = semver.gtr; - -test('\ngtr tests', function(t) { - // [range, version, loose] - // Version should be greater than range - [ - ['~1.2.2', '1.3.0'], - ['~0.6.1-1', '0.7.1-1'], - ['1.0.0 - 2.0.0', '2.0.1'], - ['1.0.0', '1.0.1-beta1'], - ['1.0.0', '2.0.0'], - ['<=2.0.0', '2.1.1'], - ['<=2.0.0', '3.2.9'], - ['<2.0.0', '2.0.0'], - ['0.1.20 || 1.2.4', '1.2.5'], - ['2.x.x', '3.0.0'], - ['1.2.x', '1.3.0'], - ['1.2.x || 2.x', '3.0.0'], - ['2.*.*', '5.0.1'], - ['1.2.*', '1.3.3'], - ['1.2.* || 2.*', '4.0.0'], - ['2', '3.0.0'], - ['2.3', '2.4.2'], - ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.5.5'], - ['~>3.2.1', '3.3.0'], // >=3.2.1 <3.3.0 - ['~1', '2.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '2.2.4'], - ['~> 1', '3.2.3'], - ['~1.0', '1.1.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '1.1.0'], - ['<1.2', '1.2.0'], - ['< 1.2', '1.2.1'], - ['1', '2.0.0beta', true], - ['~v0.5.4-pre', '0.6.0'], - ['~v0.5.4-pre', '0.6.1-pre'], - ['=0.7.x', '0.8.0'], - ['=0.7.x', '0.8.0-asdf'], - ['<0.7.x', '0.7.0'], - ['~1.2.2', '1.3.0'], - ['1.0.0 - 2.0.0', '2.2.3'], - ['1.0.0', '1.0.1'], - ['<=2.0.0', '3.0.0'], - ['<=2.0.0', '2.9999.9999'], - ['<=2.0.0', '2.2.9'], - ['<2.0.0', '2.9999.9999'], - ['<2.0.0', '2.2.9'], - ['2.x.x', '3.1.3'], - ['1.2.x', '1.3.3'], - ['1.2.x || 2.x', '3.1.3'], - ['2.*.*', '3.1.3'], - ['1.2.*', '1.3.3'], - ['1.2.* || 2.*', '3.1.3'], - ['2', '3.1.2'], - ['2.3', '2.4.1'], - ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0 - ['~>3.2.1', '3.3.2'], // >=3.2.1 <3.3.0 - ['~1', '2.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '2.2.3'], - ['~1.0', '1.1.0'], // >=1.0.0 <1.1.0 - ['<1', '1.0.0'], - ['1', '2.0.0beta', true], - ['<1', '1.0.0beta', true], - ['< 1', '1.0.0beta', true], - ['=0.7.x', '0.8.2'], - ['<0.7.x', '0.7.2'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'gtr(' + version + ', ' + range + ', ' + loose + ')'; - t.ok(gtr(version, range, loose), msg); - }); - t.end(); -}); - -test('\nnegative gtr tests', function(t) { - // [range, version, loose] - // Version should NOT be greater than range - [ - ['~0.6.1-1', '0.6.1-1'], - ['1.0.0 - 2.0.0', '1.2.3'], - ['1.0.0 - 2.0.0', '0.9.9'], - ['1.0.0', '1.0.0'], - ['>=*', '0.2.4'], - ['', '1.0.0', true], - ['*', '1.2.3'], - ['*', 'v1.2.3-foo'], - ['>=1.0.0', '1.0.0'], - ['>=1.0.0', '1.0.1'], - ['>=1.0.0', '1.1.0'], - ['>1.0.0', '1.0.1'], - ['>1.0.0', '1.1.0'], - ['<=2.0.0', '2.0.0'], - ['<=2.0.0', '1.9999.9999'], - ['<=2.0.0', '0.2.9'], - ['<2.0.0', '1.9999.9999'], - ['<2.0.0', '0.2.9'], - ['>= 1.0.0', '1.0.0'], - ['>= 1.0.0', '1.0.1'], - ['>= 1.0.0', '1.1.0'], - ['> 1.0.0', '1.0.1'], - ['> 1.0.0', '1.1.0'], - ['<= 2.0.0', '2.0.0'], - ['<= 2.0.0', '1.9999.9999'], - ['<= 2.0.0', '0.2.9'], - ['< 2.0.0', '1.9999.9999'], - ['<\t2.0.0', '0.2.9'], - ['>=0.1.97', 'v0.1.97'], - ['>=0.1.97', '0.1.97'], - ['0.1.20 || 1.2.4', '1.2.4'], - ['0.1.20 || >1.2.4', '1.2.4'], - ['0.1.20 || 1.2.4', '1.2.3'], - ['0.1.20 || 1.2.4', '0.1.20'], - ['>=0.2.3 || <0.0.1', '0.0.0'], - ['>=0.2.3 || <0.0.1', '0.2.3'], - ['>=0.2.3 || <0.0.1', '0.2.4'], - ['||', '1.3.4'], - ['2.x.x', '2.1.3'], - ['1.2.x', '1.2.3'], - ['1.2.x || 2.x', '2.1.3'], - ['1.2.x || 2.x', '1.2.3'], - ['x', '1.2.3'], - ['2.*.*', '2.1.3'], - ['1.2.*', '1.2.3'], - ['1.2.* || 2.*', '2.1.3'], - ['1.2.* || 2.*', '1.2.3'], - ['1.2.* || 2.*', '1.2.3'], - ['*', '1.2.3'], - ['2', '2.1.2'], - ['2.3', '2.3.1'], - ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.4.5'], - ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0 - ['~1', '1.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '1.2.3'], - ['~> 1', '1.2.3'], - ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '1.0.2'], - ['>=1', '1.0.0'], - ['>= 1', '1.0.0'], - ['<1.2', '1.1.1'], - ['< 1.2', '1.1.1'], - ['1', '1.0.0beta', true], - ['~v0.5.4-pre', '0.5.5'], - ['~v0.5.4-pre', '0.5.4'], - ['=0.7.x', '0.7.2'], - ['>=0.7.x', '0.7.2'], - ['=0.7.x', '0.7.0-asdf'], - ['>=0.7.x', '0.7.0-asdf'], - ['<=0.7.x', '0.6.2'], - ['>0.2.3 >0.2.4 <=0.2.5', '0.2.5'], - ['>=0.2.3 <=0.2.4', '0.2.4'], - ['1.0.0 - 2.0.0', '2.0.0'], - ['^1', '0.0.0-0'], - ['^3.0.0', '2.0.0'], - ['^1.0.0 || ~2.0.1', '2.0.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', true], - ['^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', true], - ['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = '!gtr(' + version + ', ' + range + ', ' + loose + ')'; - t.notOk(gtr(version, range, loose), msg); - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/index.js deleted file mode 100644 index 47c3f5f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/index.js +++ /dev/null @@ -1,698 +0,0 @@ -'use strict'; - -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var eq = semver.eq; -var gt = semver.gt; -var lt = semver.lt; -var neq = semver.neq; -var cmp = semver.cmp; -var gte = semver.gte; -var lte = semver.lte; -var satisfies = semver.satisfies; -var validRange = semver.validRange; -var inc = semver.inc; -var diff = semver.diff; -var replaceStars = semver.replaceStars; -var toComparators = semver.toComparators; -var SemVer = semver.SemVer; -var Range = semver.Range; - -test('\ncomparison tests', function(t) { - // [version1, version2] - // version1 should be greater than version2 - [['0.0.0', '0.0.0-foo'], - ['0.0.1', '0.0.0'], - ['1.0.0', '0.9.9'], - ['0.10.0', '0.9.0'], - ['0.99.0', '0.10.0'], - ['2.0.0', '1.2.3'], - ['v0.0.0', '0.0.0-foo', true], - ['v0.0.1', '0.0.0', true], - ['v1.0.0', '0.9.9', true], - ['v0.10.0', '0.9.0', true], - ['v0.99.0', '0.10.0', true], - ['v2.0.0', '1.2.3', true], - ['0.0.0', 'v0.0.0-foo', true], - ['0.0.1', 'v0.0.0', true], - ['1.0.0', 'v0.9.9', true], - ['0.10.0', 'v0.9.0', true], - ['0.99.0', 'v0.10.0', true], - ['2.0.0', 'v1.2.3', true], - ['1.2.3', '1.2.3-asdf'], - ['1.2.3', '1.2.3-4'], - ['1.2.3', '1.2.3-4-foo'], - ['1.2.3-5-foo', '1.2.3-5'], - ['1.2.3-5', '1.2.3-4'], - ['1.2.3-5-foo', '1.2.3-5-Foo'], - ['3.0.0', '2.7.2+asdf'], - ['1.2.3-a.10', '1.2.3-a.5'], - ['1.2.3-a.b', '1.2.3-a.5'], - ['1.2.3-a.b', '1.2.3-a'], - ['1.2.3-a.b.c.10.d.5', '1.2.3-a.b.c.5.d.100'], - ['1.2.3-r2', '1.2.3-r100'], - ['1.2.3-r100', '1.2.3-R2'] - ].forEach(function(v) { - var v0 = v[0]; - var v1 = v[1]; - var loose = v[2]; - t.ok(gt(v0, v1, loose), "gt('" + v0 + "', '" + v1 + "')"); - t.ok(lt(v1, v0, loose), "lt('" + v1 + "', '" + v0 + "')"); - t.ok(!gt(v1, v0, loose), "!gt('" + v1 + "', '" + v0 + "')"); - t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')"); - t.ok(eq(v0, v0, loose), "eq('" + v0 + "', '" + v0 + "')"); - t.ok(eq(v1, v1, loose), "eq('" + v1 + "', '" + v1 + "')"); - t.ok(neq(v0, v1, loose), "neq('" + v0 + "', '" + v1 + "')"); - t.ok(cmp(v1, '==', v1, loose), "cmp('" + v1 + "' == '" + v1 + "')"); - t.ok(cmp(v0, '>=', v1, loose), "cmp('" + v0 + "' >= '" + v1 + "')"); - t.ok(cmp(v1, '<=', v0, loose), "cmp('" + v1 + "' <= '" + v0 + "')"); - t.ok(cmp(v0, '!=', v1, loose), "cmp('" + v0 + "' != '" + v1 + "')"); - }); - t.end(); -}); - -test('\nequality tests', function(t) { - // [version1, version2] - // version1 should be equivalent to version2 - [['1.2.3', 'v1.2.3', true], - ['1.2.3', '=1.2.3', true], - ['1.2.3', 'v 1.2.3', true], - ['1.2.3', '= 1.2.3', true], - ['1.2.3', ' v1.2.3', true], - ['1.2.3', ' =1.2.3', true], - ['1.2.3', ' v 1.2.3', true], - ['1.2.3', ' = 1.2.3', true], - ['1.2.3-0', 'v1.2.3-0', true], - ['1.2.3-0', '=1.2.3-0', true], - ['1.2.3-0', 'v 1.2.3-0', true], - ['1.2.3-0', '= 1.2.3-0', true], - ['1.2.3-0', ' v1.2.3-0', true], - ['1.2.3-0', ' =1.2.3-0', true], - ['1.2.3-0', ' v 1.2.3-0', true], - ['1.2.3-0', ' = 1.2.3-0', true], - ['1.2.3-1', 'v1.2.3-1', true], - ['1.2.3-1', '=1.2.3-1', true], - ['1.2.3-1', 'v 1.2.3-1', true], - ['1.2.3-1', '= 1.2.3-1', true], - ['1.2.3-1', ' v1.2.3-1', true], - ['1.2.3-1', ' =1.2.3-1', true], - ['1.2.3-1', ' v 1.2.3-1', true], - ['1.2.3-1', ' = 1.2.3-1', true], - ['1.2.3-beta', 'v1.2.3-beta', true], - ['1.2.3-beta', '=1.2.3-beta', true], - ['1.2.3-beta', 'v 1.2.3-beta', true], - ['1.2.3-beta', '= 1.2.3-beta', true], - ['1.2.3-beta', ' v1.2.3-beta', true], - ['1.2.3-beta', ' =1.2.3-beta', true], - ['1.2.3-beta', ' v 1.2.3-beta', true], - ['1.2.3-beta', ' = 1.2.3-beta', true], - ['1.2.3-beta+build', ' = 1.2.3-beta+otherbuild', true], - ['1.2.3+build', ' = 1.2.3+otherbuild', true], - ['1.2.3-beta+build', '1.2.3-beta+otherbuild'], - ['1.2.3+build', '1.2.3+otherbuild'], - [' v1.2.3+build', '1.2.3+otherbuild'] - ].forEach(function(v) { - var v0 = v[0]; - var v1 = v[1]; - var loose = v[2]; - t.ok(eq(v0, v1, loose), "eq('" + v0 + "', '" + v1 + "')"); - t.ok(!neq(v0, v1, loose), "!neq('" + v0 + "', '" + v1 + "')"); - t.ok(cmp(v0, '==', v1, loose), 'cmp(' + v0 + '==' + v1 + ')'); - t.ok(!cmp(v0, '!=', v1, loose), '!cmp(' + v0 + '!=' + v1 + ')'); - t.ok(!cmp(v0, '===', v1, loose), '!cmp(' + v0 + '===' + v1 + ')'); - t.ok(cmp(v0, '!==', v1, loose), 'cmp(' + v0 + '!==' + v1 + ')'); - t.ok(!gt(v0, v1, loose), "!gt('" + v0 + "', '" + v1 + "')"); - t.ok(gte(v0, v1, loose), "gte('" + v0 + "', '" + v1 + "')"); - t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')"); - t.ok(lte(v0, v1, loose), "lte('" + v0 + "', '" + v1 + "')"); - }); - t.end(); -}); - - -test('\nrange tests', function(t) { - // [range, version] - // version should be included by range - [['1.0.0 - 2.0.0', '1.2.3'], - ['^1.2.3+build', '1.2.3'], - ['^1.2.3+build', '1.3.0'], - ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3'], - ['1.2.3pre+asdf - 2.4.3-pre+asdf', '1.2.3', true], - ['1.2.3-pre+asdf - 2.4.3pre+asdf', '1.2.3', true], - ['1.2.3pre+asdf - 2.4.3pre+asdf', '1.2.3', true], - ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3-pre.2'], - ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '2.4.3-alpha'], - ['1.2.3+asdf - 2.4.3+asdf', '1.2.3'], - ['1.0.0', '1.0.0'], - ['>=*', '0.2.4'], - ['', '1.0.0'], - ['*', '1.2.3'], - ['*', 'v1.2.3', true], - ['>=1.0.0', '1.0.0'], - ['>=1.0.0', '1.0.1'], - ['>=1.0.0', '1.1.0'], - ['>1.0.0', '1.0.1'], - ['>1.0.0', '1.1.0'], - ['<=2.0.0', '2.0.0'], - ['<=2.0.0', '1.9999.9999'], - ['<=2.0.0', '0.2.9'], - ['<2.0.0', '1.9999.9999'], - ['<2.0.0', '0.2.9'], - ['>= 1.0.0', '1.0.0'], - ['>= 1.0.0', '1.0.1'], - ['>= 1.0.0', '1.1.0'], - ['> 1.0.0', '1.0.1'], - ['> 1.0.0', '1.1.0'], - ['<= 2.0.0', '2.0.0'], - ['<= 2.0.0', '1.9999.9999'], - ['<= 2.0.0', '0.2.9'], - ['< 2.0.0', '1.9999.9999'], - ['<\t2.0.0', '0.2.9'], - ['>=0.1.97', 'v0.1.97', true], - ['>=0.1.97', '0.1.97'], - ['0.1.20 || 1.2.4', '1.2.4'], - ['>=0.2.3 || <0.0.1', '0.0.0'], - ['>=0.2.3 || <0.0.1', '0.2.3'], - ['>=0.2.3 || <0.0.1', '0.2.4'], - ['||', '1.3.4'], - ['2.x.x', '2.1.3'], - ['1.2.x', '1.2.3'], - ['1.2.x || 2.x', '2.1.3'], - ['1.2.x || 2.x', '1.2.3'], - ['x', '1.2.3'], - ['2.*.*', '2.1.3'], - ['1.2.*', '1.2.3'], - ['1.2.* || 2.*', '2.1.3'], - ['1.2.* || 2.*', '1.2.3'], - ['*', '1.2.3'], - ['2', '2.1.2'], - ['2.3', '2.3.1'], - ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.4.5'], - ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0, - ['~1', '1.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '1.2.3'], - ['~> 1', '1.2.3'], - ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0, - ['~ 1.0', '1.0.2'], - ['~ 1.0.3', '1.0.12'], - ['>=1', '1.0.0'], - ['>= 1', '1.0.0'], - ['<1.2', '1.1.1'], - ['< 1.2', '1.1.1'], - ['~v0.5.4-pre', '0.5.5'], - ['~v0.5.4-pre', '0.5.4'], - ['=0.7.x', '0.7.2'], - ['<=0.7.x', '0.7.2'], - ['>=0.7.x', '0.7.2'], - ['<=0.7.x', '0.6.2'], - ['~1.2.1 >=1.2.3', '1.2.3'], - ['~1.2.1 =1.2.3', '1.2.3'], - ['~1.2.1 1.2.3', '1.2.3'], - ['~1.2.1 >=1.2.3 1.2.3', '1.2.3'], - ['~1.2.1 1.2.3 >=1.2.3', '1.2.3'], - ['~1.2.1 1.2.3', '1.2.3'], - ['>=1.2.1 1.2.3', '1.2.3'], - ['1.2.3 >=1.2.1', '1.2.3'], - ['>=1.2.3 >=1.2.1', '1.2.3'], - ['>=1.2.1 >=1.2.3', '1.2.3'], - ['>=1.2', '1.2.8'], - ['^1.2.3', '1.8.1'], - ['^0.1.2', '0.1.2'], - ['^0.1', '0.1.2'], - ['^1.2', '1.4.2'], - ['^1.2 ^1', '1.4.2'], - ['^1.2.3-alpha', '1.2.3-pre'], - ['^1.2.0-alpha', '1.2.0-pre'], - ['^0.0.1-alpha', '0.0.1-beta'] - ].forEach(function(v) { - var range = v[0]; - var ver = v[1]; - var loose = v[2]; - t.ok(satisfies(ver, range, loose), range + ' satisfied by ' + ver); - }); - t.end(); -}); - -test('\nnegative range tests', function(t) { - // [range, version] - // version should not be included by range - [['1.0.0 - 2.0.0', '2.2.3'], - ['1.2.3+asdf - 2.4.3+asdf', '1.2.3-pre.2'], - ['1.2.3+asdf - 2.4.3+asdf', '2.4.3-alpha'], - ['^1.2.3+build', '2.0.0'], - ['^1.2.3+build', '1.2.0'], - ['^1.2.3', '1.2.3-pre'], - ['^1.2', '1.2.0-pre'], - ['>1.2', '1.3.0-beta'], - ['<=1.2.3', '1.2.3-beta'], - ['^1.2.3', '1.2.3-beta'], - ['=0.7.x', '0.7.0-asdf'], - ['>=0.7.x', '0.7.0-asdf'], - ['1', '1.0.0beta', true], - ['<1', '1.0.0beta', true], - ['< 1', '1.0.0beta', true], - ['1.0.0', '1.0.1'], - ['>=1.0.0', '0.0.0'], - ['>=1.0.0', '0.0.1'], - ['>=1.0.0', '0.1.0'], - ['>1.0.0', '0.0.1'], - ['>1.0.0', '0.1.0'], - ['<=2.0.0', '3.0.0'], - ['<=2.0.0', '2.9999.9999'], - ['<=2.0.0', '2.2.9'], - ['<2.0.0', '2.9999.9999'], - ['<2.0.0', '2.2.9'], - ['>=0.1.97', 'v0.1.93', true], - ['>=0.1.97', '0.1.93'], - ['0.1.20 || 1.2.4', '1.2.3'], - ['>=0.2.3 || <0.0.1', '0.0.3'], - ['>=0.2.3 || <0.0.1', '0.2.2'], - ['2.x.x', '1.1.3'], - ['2.x.x', '3.1.3'], - ['1.2.x', '1.3.3'], - ['1.2.x || 2.x', '3.1.3'], - ['1.2.x || 2.x', '1.1.3'], - ['2.*.*', '1.1.3'], - ['2.*.*', '3.1.3'], - ['1.2.*', '1.3.3'], - ['1.2.* || 2.*', '3.1.3'], - ['1.2.* || 2.*', '1.1.3'], - ['2', '1.1.2'], - ['2.3', '2.4.1'], - ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.3.9'], - ['~>3.2.1', '3.3.2'], // >=3.2.1 <3.3.0 - ['~>3.2.1', '3.2.0'], // >=3.2.1 <3.3.0 - ['~1', '0.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '2.2.3'], - ['~1.0', '1.1.0'], // >=1.0.0 <1.1.0 - ['<1', '1.0.0'], - ['>=1.2', '1.1.1'], - ['1', '2.0.0beta', true], - ['~v0.5.4-beta', '0.5.4-alpha'], - ['=0.7.x', '0.8.2'], - ['>=0.7.x', '0.6.2'], - ['<0.7.x', '0.7.2'], - ['<1.2.3', '1.2.3-beta'], - ['=1.2.3', '1.2.3-beta'], - ['>1.2', '1.2.8'], - ['^1.2.3', '2.0.0-alpha'], - ['^1.2.3', '1.2.2'], - ['^1.2', '1.1.9'], - ['*', 'v1.2.3-foo', true], - // invalid ranges never satisfied! - ['blerg', '1.2.3'], - ['git+https://user:password0123@github.com/foo', '123.0.0', true], - ['^1.2.3', '2.0.0-pre'] - ].forEach(function(v) { - var range = v[0]; - var ver = v[1]; - var loose = v[2]; - var found = satisfies(ver, range, loose); - t.ok(!found, ver + ' not satisfied by ' + range); - }); - t.end(); -}); - -test('\nincrement versions test', function(t) { -// [version, inc, result, identifier] -// inc(version, inc) -> result - [['1.2.3', 'major', '2.0.0'], - ['1.2.3', 'minor', '1.3.0'], - ['1.2.3', 'patch', '1.2.4'], - ['1.2.3tag', 'major', '2.0.0', true], - ['1.2.3-tag', 'major', '2.0.0'], - ['1.2.3', 'fake', null], - ['1.2.0-0', 'patch', '1.2.0'], - ['fake', 'major', null], - ['1.2.3-4', 'major', '2.0.0'], - ['1.2.3-4', 'minor', '1.3.0'], - ['1.2.3-4', 'patch', '1.2.3'], - ['1.2.3-alpha.0.beta', 'major', '2.0.0'], - ['1.2.3-alpha.0.beta', 'minor', '1.3.0'], - ['1.2.3-alpha.0.beta', 'patch', '1.2.3'], - ['1.2.4', 'prerelease', '1.2.5-0'], - ['1.2.3-0', 'prerelease', '1.2.3-1'], - ['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1'], - ['1.2.3-alpha.1', 'prerelease', '1.2.3-alpha.2'], - ['1.2.3-alpha.2', 'prerelease', '1.2.3-alpha.3'], - ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-alpha.1.beta'], - ['1.2.3-alpha.1.beta', 'prerelease', '1.2.3-alpha.2.beta'], - ['1.2.3-alpha.2.beta', 'prerelease', '1.2.3-alpha.3.beta'], - ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-alpha.10.1.beta'], - ['1.2.3-alpha.10.1.beta', 'prerelease', '1.2.3-alpha.10.2.beta'], - ['1.2.3-alpha.10.2.beta', 'prerelease', '1.2.3-alpha.10.3.beta'], - ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-alpha.10.beta.1'], - ['1.2.3-alpha.10.beta.1', 'prerelease', '1.2.3-alpha.10.beta.2'], - ['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3'], - ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta'], - ['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta'], - ['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta'], - ['1.2.0', 'prepatch', '1.2.1-0'], - ['1.2.0-1', 'prepatch', '1.2.1-0'], - ['1.2.0', 'preminor', '1.3.0-0'], - ['1.2.3-1', 'preminor', '1.3.0-0'], - ['1.2.0', 'premajor', '2.0.0-0'], - ['1.2.3-1', 'premajor', '2.0.0-0'], - ['1.2.0-1', 'minor', '1.2.0'], - ['1.0.0-1', 'major', '1.0.0'], - - ['1.2.3', 'major', '2.0.0', false, 'dev'], - ['1.2.3', 'minor', '1.3.0', false, 'dev'], - ['1.2.3', 'patch', '1.2.4', false, 'dev'], - ['1.2.3tag', 'major', '2.0.0', true, 'dev'], - ['1.2.3-tag', 'major', '2.0.0', false, 'dev'], - ['1.2.3', 'fake', null, false, 'dev'], - ['1.2.0-0', 'patch', '1.2.0', false, 'dev'], - ['fake', 'major', null, false, 'dev'], - ['1.2.3-4', 'major', '2.0.0', false, 'dev'], - ['1.2.3-4', 'minor', '1.3.0', false, 'dev'], - ['1.2.3-4', 'patch', '1.2.3', false, 'dev'], - ['1.2.3-alpha.0.beta', 'major', '2.0.0', false, 'dev'], - ['1.2.3-alpha.0.beta', 'minor', '1.3.0', false, 'dev'], - ['1.2.3-alpha.0.beta', 'patch', '1.2.3', false, 'dev'], - ['1.2.4', 'prerelease', '1.2.5-dev.0', false, 'dev'], - ['1.2.3-0', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.0', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1', false, 'alpha'], - ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-alpha.1.beta', false, 'alpha'], - ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-alpha.10.1.beta', false, 'alpha'], - ['1.2.3-alpha.10.1.beta', 'prerelease', '1.2.3-alpha.10.2.beta', false, 'alpha'], - ['1.2.3-alpha.10.2.beta', 'prerelease', '1.2.3-alpha.10.3.beta', false, 'alpha'], - ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-alpha.10.beta.1', false, 'alpha'], - ['1.2.3-alpha.10.beta.1', 'prerelease', '1.2.3-alpha.10.beta.2', false, 'alpha'], - ['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3', false, 'alpha'], - ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta', false, 'alpha'], - ['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta', false, 'alpha'], - ['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta', false, 'alpha'], - ['1.2.0', 'prepatch', '1.2.1-dev.0', false, 'dev'], - ['1.2.0-1', 'prepatch', '1.2.1-dev.0', false, 'dev'], - ['1.2.0', 'preminor', '1.3.0-dev.0', false, 'dev'], - ['1.2.3-1', 'preminor', '1.3.0-dev.0', false, 'dev'], - ['1.2.0', 'premajor', '2.0.0-dev.0', false, 'dev'], - ['1.2.3-1', 'premajor', '2.0.0-dev.0', false, 'dev'], - ['1.2.0-1', 'minor', '1.2.0', false, 'dev'], - ['1.0.0-1', 'major', '1.0.0', false, 'dev'], - ['1.2.3-dev.bar', 'prerelease', '1.2.3-dev.0', false, 'dev'] - - ].forEach(function(v) { - var pre = v[0]; - var what = v[1]; - var wanted = v[2]; - var loose = v[3]; - var id = v[4]; - var found = inc(pre, what, loose, id); - var cmd = 'inc(' + pre + ', ' + what + ', ' + id + ')'; - t.equal(found, wanted, cmd + ' === ' + wanted); - - var parsed = semver.parse(pre, loose); - if (wanted) { - parsed.inc(what, id); - t.equal(parsed.version, wanted, cmd + ' object version updated'); - t.equal(parsed.raw, wanted, cmd + ' object raw field updated'); - } else if (parsed) { - t.throws(function () { - parsed.inc(what, id) - }) - } else { - t.equal(parsed, null) - } - }); - - t.end(); -}); - -test('\ndiff versions test', function(t) { -// [version1, version2, result] -// diff(version1, version2) -> result - [['1.2.3', '0.2.3', 'major'], - ['1.4.5', '0.2.3', 'major'], - ['1.2.3', '2.0.0-pre', 'premajor'], - ['1.2.3', '1.3.3', 'minor'], - ['1.0.1', '1.1.0-pre', 'preminor'], - ['1.2.3', '1.2.4', 'patch'], - ['1.2.3', '1.2.4-pre', 'prepatch'], - ['0.0.1', '0.0.1-pre', 'prerelease'], - ['0.0.1', '0.0.1-pre-2', 'prerelease'], - ['1.1.0', '1.1.0-pre', 'prerelease'], - ['1.1.0-pre-1', '1.1.0-pre-2', 'prerelease'], - ['1.0.0', '1.0.0', null] - - ].forEach(function(v) { - var version1 = v[0]; - var version2 = v[1]; - var wanted = v[2]; - var found = diff(version1, version2); - var cmd = 'diff(' + version1 + ', ' + version2 + ')'; - t.equal(found, wanted, cmd + ' === ' + wanted); - }); - - t.end(); -}); - -test('\nvalid range test', function(t) { - // [range, result] - // validRange(range) -> result - // translate ranges into their canonical form - [['1.0.0 - 2.0.0', '>=1.0.0 <=2.0.0'], - ['1.0.0', '1.0.0'], - ['>=*', '*'], - ['', '*'], - ['*', '*'], - ['*', '*'], - ['>=1.0.0', '>=1.0.0'], - ['>1.0.0', '>1.0.0'], - ['<=2.0.0', '<=2.0.0'], - ['1', '>=1.0.0 <2.0.0'], - ['<=2.0.0', '<=2.0.0'], - ['<=2.0.0', '<=2.0.0'], - ['<2.0.0', '<2.0.0'], - ['<2.0.0', '<2.0.0'], - ['>= 1.0.0', '>=1.0.0'], - ['>= 1.0.0', '>=1.0.0'], - ['>= 1.0.0', '>=1.0.0'], - ['> 1.0.0', '>1.0.0'], - ['> 1.0.0', '>1.0.0'], - ['<= 2.0.0', '<=2.0.0'], - ['<= 2.0.0', '<=2.0.0'], - ['<= 2.0.0', '<=2.0.0'], - ['< 2.0.0', '<2.0.0'], - ['< 2.0.0', '<2.0.0'], - ['>=0.1.97', '>=0.1.97'], - ['>=0.1.97', '>=0.1.97'], - ['0.1.20 || 1.2.4', '0.1.20||1.2.4'], - ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'], - ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'], - ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'], - ['||', '||'], - ['2.x.x', '>=2.0.0 <3.0.0'], - ['1.2.x', '>=1.2.0 <1.3.0'], - ['1.2.x || 2.x', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'], - ['1.2.x || 2.x', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'], - ['x', '*'], - ['2.*.*', '>=2.0.0 <3.0.0'], - ['1.2.*', '>=1.2.0 <1.3.0'], - ['1.2.* || 2.*', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'], - ['*', '*'], - ['2', '>=2.0.0 <3.0.0'], - ['2.3', '>=2.3.0 <2.4.0'], - ['~2.4', '>=2.4.0 <2.5.0'], - ['~2.4', '>=2.4.0 <2.5.0'], - ['~>3.2.1', '>=3.2.1 <3.3.0'], - ['~1', '>=1.0.0 <2.0.0'], - ['~>1', '>=1.0.0 <2.0.0'], - ['~> 1', '>=1.0.0 <2.0.0'], - ['~1.0', '>=1.0.0 <1.1.0'], - ['~ 1.0', '>=1.0.0 <1.1.0'], - ['^0', '>=0.0.0 <1.0.0'], - ['^ 1', '>=1.0.0 <2.0.0'], - ['^0.1', '>=0.1.0 <0.2.0'], - ['^1.0', '>=1.0.0 <2.0.0'], - ['^1.2', '>=1.2.0 <2.0.0'], - ['^0.0.1', '>=0.0.1 <0.0.2'], - ['^0.0.1-beta', '>=0.0.1-beta <0.0.2'], - ['^0.1.2', '>=0.1.2 <0.2.0'], - ['^1.2.3', '>=1.2.3 <2.0.0'], - ['^1.2.3-beta.4', '>=1.2.3-beta.4 <2.0.0'], - ['<1', '<1.0.0'], - ['< 1', '<1.0.0'], - ['>=1', '>=1.0.0'], - ['>= 1', '>=1.0.0'], - ['<1.2', '<1.2.0'], - ['< 1.2', '<1.2.0'], - ['1', '>=1.0.0 <2.0.0'], - ['>01.02.03', '>1.2.3', true], - ['>01.02.03', null], - ['~1.2.3beta', '>=1.2.3-beta <1.3.0', true], - ['~1.2.3beta', null], - ['^ 1.2 ^ 1', '>=1.2.0 <2.0.0 >=1.0.0 <2.0.0'] - ].forEach(function(v) { - var pre = v[0]; - var wanted = v[1]; - var loose = v[2]; - var found = validRange(pre, loose); - - t.equal(found, wanted, 'validRange(' + pre + ') === ' + wanted); - }); - - t.end(); -}); - -test('\ncomparators test', function(t) { - // [range, comparators] - // turn range into a set of individual comparators - [['1.0.0 - 2.0.0', [['>=1.0.0', '<=2.0.0']]], - ['1.0.0', [['1.0.0']]], - ['>=*', [['']]], - ['', [['']]], - ['*', [['']]], - ['*', [['']]], - ['>=1.0.0', [['>=1.0.0']]], - ['>=1.0.0', [['>=1.0.0']]], - ['>=1.0.0', [['>=1.0.0']]], - ['>1.0.0', [['>1.0.0']]], - ['>1.0.0', [['>1.0.0']]], - ['<=2.0.0', [['<=2.0.0']]], - ['1', [['>=1.0.0', '<2.0.0']]], - ['<=2.0.0', [['<=2.0.0']]], - ['<=2.0.0', [['<=2.0.0']]], - ['<2.0.0', [['<2.0.0']]], - ['<2.0.0', [['<2.0.0']]], - ['>= 1.0.0', [['>=1.0.0']]], - ['>= 1.0.0', [['>=1.0.0']]], - ['>= 1.0.0', [['>=1.0.0']]], - ['> 1.0.0', [['>1.0.0']]], - ['> 1.0.0', [['>1.0.0']]], - ['<= 2.0.0', [['<=2.0.0']]], - ['<= 2.0.0', [['<=2.0.0']]], - ['<= 2.0.0', [['<=2.0.0']]], - ['< 2.0.0', [['<2.0.0']]], - ['<\t2.0.0', [['<2.0.0']]], - ['>=0.1.97', [['>=0.1.97']]], - ['>=0.1.97', [['>=0.1.97']]], - ['0.1.20 || 1.2.4', [['0.1.20'], ['1.2.4']]], - ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]], - ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]], - ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]], - ['||', [[''], ['']]], - ['2.x.x', [['>=2.0.0', '<3.0.0']]], - ['1.2.x', [['>=1.2.0', '<1.3.0']]], - ['1.2.x || 2.x', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['1.2.x || 2.x', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['x', [['']]], - ['2.*.*', [['>=2.0.0', '<3.0.0']]], - ['1.2.*', [['>=1.2.0', '<1.3.0']]], - ['1.2.* || 2.*', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['1.2.* || 2.*', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['*', [['']]], - ['2', [['>=2.0.0', '<3.0.0']]], - ['2.3', [['>=2.3.0', '<2.4.0']]], - ['~2.4', [['>=2.4.0', '<2.5.0']]], - ['~2.4', [['>=2.4.0', '<2.5.0']]], - ['~>3.2.1', [['>=3.2.1', '<3.3.0']]], - ['~1', [['>=1.0.0', '<2.0.0']]], - ['~>1', [['>=1.0.0', '<2.0.0']]], - ['~> 1', [['>=1.0.0', '<2.0.0']]], - ['~1.0', [['>=1.0.0', '<1.1.0']]], - ['~ 1.0', [['>=1.0.0', '<1.1.0']]], - ['~ 1.0.3', [['>=1.0.3', '<1.1.0']]], - ['~> 1.0.3', [['>=1.0.3', '<1.1.0']]], - ['<1', [['<1.0.0']]], - ['< 1', [['<1.0.0']]], - ['>=1', [['>=1.0.0']]], - ['>= 1', [['>=1.0.0']]], - ['<1.2', [['<1.2.0']]], - ['< 1.2', [['<1.2.0']]], - ['1', [['>=1.0.0', '<2.0.0']]], - ['1 2', [['>=1.0.0', '<2.0.0', '>=2.0.0', '<3.0.0']]], - ['1.2 - 3.4.5', [['>=1.2.0', '<=3.4.5']]], - ['1.2.3 - 3.4', [['>=1.2.3', '<3.5.0']]], - ['1.2.3 - 3', [['>=1.2.3', '<4.0.0']]], - ['>*', [['<0.0.0']]], - ['<*', [['<0.0.0']]] - ].forEach(function(v) { - var pre = v[0]; - var wanted = v[1]; - var found = toComparators(v[0]); - var jw = JSON.stringify(wanted); - t.equivalent(found, wanted, 'toComparators(' + pre + ') === ' + jw); - }); - - t.end(); -}); - -test('\ninvalid version numbers', function(t) { - ['1.2.3.4', - 'NOT VALID', - 1.2, - null, - 'Infinity.NaN.Infinity' - ].forEach(function(v) { - t.throws(function() { - new SemVer(v); - }, {name:'TypeError', message:'Invalid Version: ' + v}); - }); - - t.end(); -}); - -test('\nstrict vs loose version numbers', function(t) { - [['=1.2.3', '1.2.3'], - ['01.02.03', '1.2.3'], - ['1.2.3-beta.01', '1.2.3-beta.1'], - [' =1.2.3', '1.2.3'], - ['1.2.3foo', '1.2.3-foo'] - ].forEach(function(v) { - var loose = v[0]; - var strict = v[1]; - t.throws(function() { - new SemVer(loose); - }); - var lv = new SemVer(loose, true); - t.equal(lv.version, strict); - t.ok(eq(loose, strict, true)); - t.throws(function() { - eq(loose, strict); - }); - t.throws(function() { - new SemVer(strict).compare(loose); - }); - }); - t.end(); -}); - -test('\nstrict vs loose ranges', function(t) { - [['>=01.02.03', '>=1.2.3'], - ['~1.02.03beta', '>=1.2.3-beta <1.3.0'] - ].forEach(function(v) { - var loose = v[0]; - var comps = v[1]; - t.throws(function() { - new Range(loose); - }); - t.equal(new Range(loose, true).range, comps); - }); - t.end(); -}); - -test('\nmax satisfying', function(t) { - [[['1.2.3', '1.2.4'], '1.2', '1.2.4'], - [['1.2.4', '1.2.3'], '1.2', '1.2.4'], - [['1.2.3', '1.2.4', '1.2.5', '1.2.6'], '~1.2.3', '1.2.6'], - [['1.1.0', '1.2.0', '1.2.1', '1.3.0', '2.0.0b1', '2.0.0b2', '2.0.0b3', '2.0.0', '2.1.0'], '~2.0.0', '2.0.0', true] - ].forEach(function(v) { - var versions = v[0]; - var range = v[1]; - var expect = v[2]; - var loose = v[3]; - var actual = semver.maxSatisfying(versions, range, loose); - t.equal(actual, expect); - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/ltr.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/ltr.js deleted file mode 100644 index 0f7167d6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/ltr.js +++ /dev/null @@ -1,181 +0,0 @@ -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var ltr = semver.ltr; - -test('\nltr tests', function(t) { - // [range, version, loose] - // Version should be less than range - [ - ['~1.2.2', '1.2.1'], - ['~0.6.1-1', '0.6.1-0'], - ['1.0.0 - 2.0.0', '0.0.1'], - ['1.0.0-beta.2', '1.0.0-beta.1'], - ['1.0.0', '0.0.0'], - ['>=2.0.0', '1.1.1'], - ['>=2.0.0', '1.2.9'], - ['>2.0.0', '2.0.0'], - ['0.1.20 || 1.2.4', '0.1.5'], - ['2.x.x', '1.0.0'], - ['1.2.x', '1.1.0'], - ['1.2.x || 2.x', '1.0.0'], - ['2.*.*', '1.0.1'], - ['1.2.*', '1.1.3'], - ['1.2.* || 2.*', '1.1.9999'], - ['2', '1.0.0'], - ['2.3', '2.2.2'], - ['~2.4', '2.3.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.3.5'], - ['~>3.2.1', '3.2.0'], // >=3.2.1 <3.3.0 - ['~1', '0.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '0.2.4'], - ['~> 1', '0.2.3'], - ['~1.0', '0.1.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '0.1.0'], - ['>1.2', '1.2.0'], - ['> 1.2', '1.2.1'], - ['1', '0.0.0beta', true], - ['~v0.5.4-pre', '0.5.4-alpha'], - ['~v0.5.4-pre', '0.5.4-alpha'], - ['=0.7.x', '0.6.0'], - ['=0.7.x', '0.6.0-asdf'], - ['>=0.7.x', '0.6.0'], - ['~1.2.2', '1.2.1'], - ['1.0.0 - 2.0.0', '0.2.3'], - ['1.0.0', '0.0.1'], - ['>=2.0.0', '1.0.0'], - ['>=2.0.0', '1.9999.9999'], - ['>=2.0.0', '1.2.9'], - ['>2.0.0', '2.0.0'], - ['>2.0.0', '1.2.9'], - ['2.x.x', '1.1.3'], - ['1.2.x', '1.1.3'], - ['1.2.x || 2.x', '1.1.3'], - ['2.*.*', '1.1.3'], - ['1.2.*', '1.1.3'], - ['1.2.* || 2.*', '1.1.3'], - ['2', '1.9999.9999'], - ['2.3', '2.2.1'], - ['~2.4', '2.3.0'], // >=2.4.0 <2.5.0 - ['~>3.2.1', '2.3.2'], // >=3.2.1 <3.3.0 - ['~1', '0.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '0.2.3'], - ['~1.0', '0.0.0'], // >=1.0.0 <1.1.0 - ['>1', '1.0.0'], - ['2', '1.0.0beta', true], - ['>1', '1.0.0beta', true], - ['> 1', '1.0.0beta', true], - ['=0.7.x', '0.6.2'], - ['=0.7.x', '0.7.0-asdf'], - ['^1', '1.0.0-0'], - ['>=0.7.x', '0.7.0-asdf'], - ['1', '1.0.0beta', true], - ['>=0.7.x', '0.6.2'], - ['>1.2.3', '1.3.0-alpha'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'ltr(' + version + ', ' + range + ', ' + loose + ')'; - t.ok(ltr(version, range, loose), msg); - }); - t.end(); -}); - -test('\nnegative ltr tests', function(t) { - // [range, version, loose] - // Version should NOT be less than range - [ - ['~ 1.0', '1.1.0'], - ['~0.6.1-1', '0.6.1-1'], - ['1.0.0 - 2.0.0', '1.2.3'], - ['1.0.0 - 2.0.0', '2.9.9'], - ['1.0.0', '1.0.0'], - ['>=*', '0.2.4'], - ['', '1.0.0', true], - ['*', '1.2.3'], - ['>=1.0.0', '1.0.0'], - ['>=1.0.0', '1.0.1'], - ['>=1.0.0', '1.1.0'], - ['>1.0.0', '1.0.1'], - ['>1.0.0', '1.1.0'], - ['<=2.0.0', '2.0.0'], - ['<=2.0.0', '1.9999.9999'], - ['<=2.0.0', '0.2.9'], - ['<2.0.0', '1.9999.9999'], - ['<2.0.0', '0.2.9'], - ['>= 1.0.0', '1.0.0'], - ['>= 1.0.0', '1.0.1'], - ['>= 1.0.0', '1.1.0'], - ['> 1.0.0', '1.0.1'], - ['> 1.0.0', '1.1.0'], - ['<= 2.0.0', '2.0.0'], - ['<= 2.0.0', '1.9999.9999'], - ['<= 2.0.0', '0.2.9'], - ['< 2.0.0', '1.9999.9999'], - ['<\t2.0.0', '0.2.9'], - ['>=0.1.97', 'v0.1.97'], - ['>=0.1.97', '0.1.97'], - ['0.1.20 || 1.2.4', '1.2.4'], - ['0.1.20 || >1.2.4', '1.2.4'], - ['0.1.20 || 1.2.4', '1.2.3'], - ['0.1.20 || 1.2.4', '0.1.20'], - ['>=0.2.3 || <0.0.1', '0.0.0'], - ['>=0.2.3 || <0.0.1', '0.2.3'], - ['>=0.2.3 || <0.0.1', '0.2.4'], - ['||', '1.3.4'], - ['2.x.x', '2.1.3'], - ['1.2.x', '1.2.3'], - ['1.2.x || 2.x', '2.1.3'], - ['1.2.x || 2.x', '1.2.3'], - ['x', '1.2.3'], - ['2.*.*', '2.1.3'], - ['1.2.*', '1.2.3'], - ['1.2.* || 2.*', '2.1.3'], - ['1.2.* || 2.*', '1.2.3'], - ['1.2.* || 2.*', '1.2.3'], - ['*', '1.2.3'], - ['2', '2.1.2'], - ['2.3', '2.3.1'], - ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.4.5'], - ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0 - ['~1', '1.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '1.2.3'], - ['~> 1', '1.2.3'], - ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '1.0.2'], - ['>=1', '1.0.0'], - ['>= 1', '1.0.0'], - ['<1.2', '1.1.1'], - ['< 1.2', '1.1.1'], - ['~v0.5.4-pre', '0.5.5'], - ['~v0.5.4-pre', '0.5.4'], - ['=0.7.x', '0.7.2'], - ['>=0.7.x', '0.7.2'], - ['<=0.7.x', '0.6.2'], - ['>0.2.3 >0.2.4 <=0.2.5', '0.2.5'], - ['>=0.2.3 <=0.2.4', '0.2.4'], - ['1.0.0 - 2.0.0', '2.0.0'], - ['^3.0.0', '4.0.0'], - ['^1.0.0 || ~2.0.1', '2.0.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', true], - ['^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', true], - ['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0'], - ['^1.0.0alpha', '1.0.0beta', true], - ['~1.0.0alpha', '1.0.0beta', true], - ['^1.0.0-alpha', '1.0.0beta', true], - ['~1.0.0-alpha', '1.0.0beta', true], - ['^1.0.0-alpha', '1.0.0-beta'], - ['~1.0.0-alpha', '1.0.0-beta'], - ['=0.1.0', '1.0.0'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = '!ltr(' + version + ', ' + range + ', ' + loose + ')'; - t.notOk(ltr(version, range, loose), msg); - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/major-minor-patch.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/major-minor-patch.js deleted file mode 100644 index e9d4039c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/semver/test/major-minor-patch.js +++ /dev/null @@ -1,72 +0,0 @@ -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); - -test('\nmajor tests', function(t) { - // [range, version] - // Version should be detectable despite extra characters - [ - ['1.2.3', 1], - [' 1.2.3 ', 1], - [' 2.2.3-4 ', 2], - [' 3.2.3-pre ', 3], - ['v5.2.3', 5], - [' v8.2.3 ', 8], - ['\t13.2.3', 13], - ['=21.2.3', 21, true], - ['v=34.2.3', 34, true] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'major(' + range + ') = ' + version; - t.equal(semver.major(range, loose), version, msg); - }); - t.end(); -}); - -test('\nminor tests', function(t) { - // [range, version] - // Version should be detectable despite extra characters - [ - ['1.1.3', 1], - [' 1.1.3 ', 1], - [' 1.2.3-4 ', 2], - [' 1.3.3-pre ', 3], - ['v1.5.3', 5], - [' v1.8.3 ', 8], - ['\t1.13.3', 13], - ['=1.21.3', 21, true], - ['v=1.34.3', 34, true] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'minor(' + range + ') = ' + version; - t.equal(semver.minor(range, loose), version, msg); - }); - t.end(); -}); - -test('\npatch tests', function(t) { - // [range, version] - // Version should be detectable despite extra characters - [ - ['1.2.1', 1], - [' 1.2.1 ', 1], - [' 1.2.2-4 ', 2], - [' 1.2.3-pre ', 3], - ['v1.2.5', 5], - [' v1.2.8 ', 8], - ['\t1.2.13', 13], - ['=1.2.21', 21, true], - ['v=1.2.34', 34, true] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'patch(' + range + ') = ' + version; - t.equal(semver.patch(range, loose), version, msg); - }); - t.end(); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/HISTORY.md deleted file mode 100644 index b34fe9fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/HISTORY.md +++ /dev/null @@ -1,309 +0,0 @@ -1.10.3 / 2016-05-30 -=================== - - * deps: send@0.13.2 - - Fix invalid `Content-Type` header when `send.mime.default_type` unset - -1.10.2 / 2016-01-19 -=================== - - * deps: parseurl@~1.3.1 - - perf: enable strict mode - -1.10.1 / 2016-01-16 -=================== - - * deps: escape-html@~1.0.3 - - perf: enable strict mode - - perf: optimize string replacement - - perf: use faster string coercion - * deps: send@0.13.1 - - deps: depd@~1.1.0 - - deps: destroy@~1.0.4 - - deps: escape-html@~1.0.3 - - deps: range-parser@~1.0.3 - -1.10.0 / 2015-06-17 -=================== - - * Add `fallthrough` option - - Allows declaring this middleware is the final destination - - Provides better integration with Express patterns - * Fix reading options from options prototype - * Improve the default redirect response headers - * deps: escape-html@1.0.2 - * deps: send@0.13.0 - - Allow Node.js HTTP server to set `Date` response header - - Fix incorrectly removing `Content-Location` on 304 response - - Improve the default redirect response headers - - Send appropriate headers on default error response - - Use `http-errors` for standard emitted errors - - Use `statuses` instead of `http` module for status messages - - deps: escape-html@1.0.2 - - deps: etag@~1.7.0 - - deps: fresh@0.3.0 - - deps: on-finished@~2.3.0 - - perf: enable strict mode - - perf: remove unnecessary array allocations - * perf: enable strict mode - * perf: remove argument reassignment - -1.9.3 / 2015-05-14 -================== - - * deps: send@0.12.3 - - deps: debug@~2.2.0 - - deps: depd@~1.0.1 - - deps: etag@~1.6.0 - - deps: ms@0.7.1 - - deps: on-finished@~2.2.1 - -1.9.2 / 2015-03-14 -================== - - * deps: send@0.12.2 - - Throw errors early for invalid `extensions` or `index` options - - deps: debug@~2.1.3 - -1.9.1 / 2015-02-17 -================== - - * deps: send@0.12.1 - - Fix regression sending zero-length files - -1.9.0 / 2015-02-16 -================== - - * deps: send@0.12.0 - - Always read the stat size from the file - - Fix mutating passed-in `options` - - deps: mime@1.3.4 - -1.8.1 / 2015-01-20 -================== - - * Fix redirect loop in Node.js 0.11.14 - * deps: send@0.11.1 - - Fix root path disclosure - -1.8.0 / 2015-01-05 -================== - - * deps: send@0.11.0 - - deps: debug@~2.1.1 - - deps: etag@~1.5.1 - - deps: ms@0.7.0 - - deps: on-finished@~2.2.0 - -1.7.2 / 2015-01-02 -================== - - * Fix potential open redirect when mounted at root - -1.7.1 / 2014-10-22 -================== - - * deps: send@0.10.1 - - deps: on-finished@~2.1.1 - -1.7.0 / 2014-10-15 -================== - - * deps: send@0.10.0 - - deps: debug@~2.1.0 - - deps: depd@~1.0.0 - - deps: etag@~1.5.0 - -1.6.5 / 2015-02-04 -================== - - * Fix potential open redirect when mounted at root - - Back-ported from v1.7.2 - -1.6.4 / 2014-10-08 -================== - - * Fix redirect loop when index file serving disabled - -1.6.3 / 2014-09-24 -================== - - * deps: send@0.9.3 - - deps: etag@~1.4.0 - -1.6.2 / 2014-09-15 -================== - - * deps: send@0.9.2 - - deps: depd@0.4.5 - - deps: etag@~1.3.1 - - deps: range-parser@~1.0.2 - -1.6.1 / 2014-09-07 -================== - - * deps: send@0.9.1 - - deps: fresh@0.2.4 - -1.6.0 / 2014-09-07 -================== - - * deps: send@0.9.0 - - Add `lastModified` option - - Use `etag` to generate `ETag` header - - deps: debug@~2.0.0 - -1.5.4 / 2014-09-04 -================== - - * deps: send@0.8.5 - - Fix a path traversal issue when using `root` - - Fix malicious path detection for empty string path - -1.5.3 / 2014-08-17 -================== - - * deps: send@0.8.3 - -1.5.2 / 2014-08-14 -================== - - * deps: send@0.8.2 - - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` - -1.5.1 / 2014-08-09 -================== - - * Fix parsing of weird `req.originalUrl` values - * deps: parseurl@~1.3.0 - * deps: utils-merge@1.0.0 - -1.5.0 / 2014-08-05 -================== - - * deps: send@0.8.1 - - Add `extensions` option - -1.4.4 / 2014-08-04 -================== - - * deps: send@0.7.4 - - Fix serving index files without root dir - -1.4.3 / 2014-07-29 -================== - - * deps: send@0.7.3 - - Fix incorrect 403 on Windows and Node.js 0.11 - -1.4.2 / 2014-07-27 -================== - - * deps: send@0.7.2 - - deps: depd@0.4.4 - -1.4.1 / 2014-07-26 -================== - - * deps: send@0.7.1 - - deps: depd@0.4.3 - -1.4.0 / 2014-07-21 -================== - - * deps: parseurl@~1.2.0 - - Cache URLs based on original value - - Remove no-longer-needed URL mis-parse work-around - - Simplify the "fast-path" `RegExp` - * deps: send@0.7.0 - - Add `dotfiles` option - - deps: debug@1.0.4 - - deps: depd@0.4.2 - -1.3.2 / 2014-07-11 -================== - - * deps: send@0.6.0 - - Cap `maxAge` value to 1 year - - deps: debug@1.0.3 - -1.3.1 / 2014-07-09 -================== - - * deps: parseurl@~1.1.3 - - faster parsing of href-only URLs - -1.3.0 / 2014-06-28 -================== - - * Add `setHeaders` option - * Include HTML link in redirect response - * deps: send@0.5.0 - - Accept string for `maxAge` (converted by `ms`) - -1.2.3 / 2014-06-11 -================== - - * deps: send@0.4.3 - - Do not throw un-catchable error on file open race condition - - Use `escape-html` for HTML escaping - - deps: debug@1.0.2 - - deps: finished@1.2.2 - - deps: fresh@0.2.2 - -1.2.2 / 2014-06-09 -================== - - * deps: send@0.4.2 - - fix "event emitter leak" warnings - - deps: debug@1.0.1 - - deps: finished@1.2.1 - -1.2.1 / 2014-06-02 -================== - - * use `escape-html` for escaping - * deps: send@0.4.1 - - Send `max-age` in `Cache-Control` in correct format - -1.2.0 / 2014-05-29 -================== - - * deps: send@0.4.0 - - Calculate ETag with md5 for reduced collisions - - Fix wrong behavior when index file matches directory - - Ignore stream errors after request ends - - Skip directories in index file search - - deps: debug@0.8.1 - -1.1.0 / 2014-04-24 -================== - - * Accept options directly to `send` module - * deps: send@0.3.0 - -1.0.4 / 2014-04-07 -================== - - * Resolve relative paths at middleware setup - * Use parseurl to parse the URL from request - -1.0.3 / 2014-03-20 -================== - - * Do not rely on connect-like environments - -1.0.2 / 2014-03-06 -================== - - * deps: send@0.2.0 - -1.0.1 / 2014-03-05 -================== - - * Add mime export for back-compat - -1.0.0 / 2014-03-05 -================== - - * Genesis from `connect` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/LICENSE deleted file mode 100644 index d8cce679..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -(The MIT License) - -Copyright (c) 2010 Sencha Inc. -Copyright (c) 2011 LearnBoost -Copyright (c) 2011 TJ Holowaychuk -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/README.md deleted file mode 100644 index 62104b12..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/README.md +++ /dev/null @@ -1,236 +0,0 @@ -# serve-static - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Linux Build][travis-image]][travis-url] -[![Windows Build][appveyor-image]][appveyor-url] -[![Test Coverage][coveralls-image]][coveralls-url] -[![Gratipay][gratipay-image]][gratipay-url] - -## Install - -```sh -$ npm install serve-static -``` - -## API - -```js -var serveStatic = require('serve-static') -``` - -### serveStatic(root, options) - -Create a new middleware function to serve files from within a given root -directory. The file to serve will be determined by combining `req.url` -with the provided root directory. When a file is not found, instead of -sending a 404 response, this module will instead call `next()` to move on -to the next middleware, allowing for stacking and fall-backs. - -#### Options - -##### dotfiles - - Set how "dotfiles" are treated when encountered. A dotfile is a file -or directory that begins with a dot ("."). Note this check is done on -the path itself without checking if the path actually exists on the -disk. If `root` is specified, only the dotfiles above the root are -checked (i.e. the root itself can be within a dotfile when set -to "deny"). - - - `'allow'` No special treatment for dotfiles. - - `'deny'` Deny a request for a dotfile and 403/`next()`. - - `'ignore'` Pretend like the dotfile does not exist and 404/`next()`. - -The default value is similar to `'ignore'`, with the exception that this -default will not ignore the files within a directory that begins with a dot. - -##### etag - -Enable or disable etag generation, defaults to true. - -##### extensions - -Set file extension fallbacks. When set, if a file is not found, the given -extensions will be added to the file name and search for. The first that -exists will be served. Example: `['html', 'htm']`. - -The default value is `false`. - -##### fallthrough - -Set the middleware to have client errors fall-through as just unhandled -requests, otherwise forward a client error. The difference is that client -errors like a bad request or a request to a non-existent file will cause -this middleware to simply `next()` to your next middleware when this value -is `true`. When this value is `false`, these errors (even 404s), will invoke -`next(err)`. - -Typically `true` is desired such that multiple physical directories can be -mapped to the same web address or for routes to fill in non-existent files. - -The value `false` can be used if this middleware is mounted at a path that -is designed to be strictly a single file system directory, which allows for -short-circuiting 404s for less overhead. This middleware will also reply to -all methods. - -The default value is `true`. - -##### index - -By default this module will send "index.html" files in response to a request -on a directory. To disable this set `false` or to supply a new index pass a -string or an array in preferred order. - -##### lastModified - -Enable or disable `Last-Modified` header, defaults to true. Uses the file -system's last modified value. - -##### maxAge - -Provide a max-age in milliseconds for http caching, defaults to 0. This -can also be a string accepted by the [ms](https://www.npmjs.org/package/ms#readme) -module. - -##### redirect - -Redirect to trailing "/" when the pathname is a dir. Defaults to `true`. - -##### setHeaders - -Function to set custom headers on response. Alterations to the headers need to -occur synchronously. The function is called as `fn(res, path, stat)`, where -the arguments are: - - - `res` the response object - - `path` the file path that is being sent - - `stat` the stat object of the file that is being sent - -## Examples - -### Serve files with vanilla node.js http server - -```js -var finalhandler = require('finalhandler') -var http = require('http') -var serveStatic = require('serve-static') - -// Serve up public/ftp folder -var serve = serveStatic('public/ftp', {'index': ['index.html', 'index.htm']}) - -// Create server -var server = http.createServer(function(req, res){ - var done = finalhandler(req, res) - serve(req, res, done) -}) - -// Listen -server.listen(3000) -``` - -### Serve all files as downloads - -```js -var contentDisposition = require('content-disposition') -var finalhandler = require('finalhandler') -var http = require('http') -var serveStatic = require('serve-static') - -// Serve up public/ftp folder -var serve = serveStatic('public/ftp', { - 'index': false, - 'setHeaders': setHeaders -}) - -// Set header to force download -function setHeaders(res, path) { - res.setHeader('Content-Disposition', contentDisposition(path)) -} - -// Create server -var server = http.createServer(function(req, res){ - var done = finalhandler(req, res) - serve(req, res, done) -}) - -// Listen -server.listen(3000) -``` - -### Serving using express - -#### Simple - -This is a simple example of using Express. - -```js -var express = require('express') -var serveStatic = require('serve-static') - -var app = express() - -app.use(serveStatic('public/ftp', {'index': ['default.html', 'default.htm']})) -app.listen(3000) -``` - -#### Multiple roots - -This example shows a simple way to search through multiple directories. -Files are look for in `public-optimized/` first, then `public/` second as -a fallback. - -```js -var express = require('express') -var serveStatic = require('serve-static') - -var app = express() - -app.use(serveStatic(__dirname + '/public-optimized')) -app.use(serveStatic(__dirname + '/public')) -app.listen(3000) -``` - -#### Different settings for paths - -This example shows how to set a different max age depending on the served -file type. In this example, HTML files are not cached, while everything else -is for 1 day. - -```js -var express = require('express') -var serveStatic = require('serve-static') - -var app = express() - -app.use(serveStatic(__dirname + '/public', { - maxAge: '1d', - setHeaders: setCustomCacheControl -})) - -app.listen(3000) - -function setCustomCacheControl(res, path) { - if (serveStatic.mime.lookup(path) === 'text/html') { - // Custom Cache-Control for HTML files - res.setHeader('Cache-Control', 'public, max-age=0') - } -} -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/serve-static.svg -[npm-url]: https://npmjs.org/package/serve-static -[travis-image]: https://img.shields.io/travis/expressjs/serve-static/master.svg?label=linux -[travis-url]: https://travis-ci.org/expressjs/serve-static -[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/serve-static/master.svg?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/serve-static -[coveralls-image]: https://img.shields.io/coveralls/expressjs/serve-static/master.svg -[coveralls-url]: https://coveralls.io/r/expressjs/serve-static -[downloads-image]: https://img.shields.io/npm/dm/serve-static.svg -[downloads-url]: https://npmjs.org/package/serve-static -[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg -[gratipay-url]: https://gratipay.com/dougwilson/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/index.js deleted file mode 100644 index 5cebe749..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/index.js +++ /dev/null @@ -1,187 +0,0 @@ -/*! - * serve-static - * Copyright(c) 2010 Sencha Inc. - * Copyright(c) 2011 TJ Holowaychuk - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var escapeHtml = require('escape-html') -var parseUrl = require('parseurl') -var resolve = require('path').resolve -var send = require('send') -var url = require('url') - -/** - * Module exports. - * @public - */ - -module.exports = serveStatic -module.exports.mime = send.mime - -/** - * @param {string} root - * @param {object} [options] - * @return {function} - * @public - */ - -function serveStatic (root, options) { - if (!root) { - throw new TypeError('root path required') - } - - if (typeof root !== 'string') { - throw new TypeError('root path must be a string') - } - - // copy options object - var opts = Object.create(options || null) - - // fall-though - var fallthrough = opts.fallthrough !== false - - // default redirect - var redirect = opts.redirect !== false - - // headers listener - var setHeaders = opts.setHeaders - - if (setHeaders && typeof setHeaders !== 'function') { - throw new TypeError('option setHeaders must be function') - } - - // setup options for send - opts.maxage = opts.maxage || opts.maxAge || 0 - opts.root = resolve(root) - - // construct directory listener - var onDirectory = redirect - ? createRedirectDirectoryListener() - : createNotFoundDirectoryListener() - - return function serveStatic (req, res, next) { - if (req.method !== 'GET' && req.method !== 'HEAD') { - if (fallthrough) { - return next() - } - - // method not allowed - res.statusCode = 405 - res.setHeader('Allow', 'GET, HEAD') - res.setHeader('Content-Length', '0') - res.end() - return - } - - var forwardError = !fallthrough - var originalUrl = parseUrl.original(req) - var path = parseUrl(req).pathname - - // make sure redirect occurs at mount - if (path === '/' && originalUrl.pathname.substr(-1) !== '/') { - path = '' - } - - // create send stream - var stream = send(req, path, opts) - - // add directory handler - stream.on('directory', onDirectory) - - // add headers listener - if (setHeaders) { - stream.on('headers', setHeaders) - } - - // add file listener for fallthrough - if (fallthrough) { - stream.on('file', function onFile () { - // once file is determined, always forward error - forwardError = true - }) - } - - // forward errors - stream.on('error', function error (err) { - if (forwardError || !(err.statusCode < 500)) { - next(err) - return - } - - next() - }) - - // pipe - stream.pipe(res) - } -} - -/** - * Collapse all leading slashes into a single slash - * @private - */ -function collapseLeadingSlashes (str) { - for (var i = 0; i < str.length; i++) { - if (str[i] !== '/') { - break - } - } - - return i > 1 - ? '/' + str.substr(i) - : str -} - -/** - * Create a directory listener that just 404s. - * @private - */ - -function createNotFoundDirectoryListener () { - return function notFound () { - this.error(404) - } -} - -/** - * Create a directory listener that performs a redirect. - * @private - */ - -function createRedirectDirectoryListener () { - return function redirect () { - if (this.hasTrailingSlash()) { - this.error(404) - return - } - - // get original URL - var originalUrl = parseUrl.original(this.req) - - // append trailing slash - originalUrl.path = null - originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + '/') - - // reformat the URL - var loc = url.format(originalUrl) - var msg = 'Redirecting to <a href="' + escapeHtml(loc) + '">' + escapeHtml(loc) + '</a>\n' - var res = this.res - - // send redirect response - res.statusCode = 303 - res.setHeader('Content-Type', 'text/html; charset=UTF-8') - res.setHeader('Content-Length', Buffer.byteLength(msg)) - res.setHeader('X-Content-Type-Options', 'nosniff') - res.setHeader('Location', loc) - res.end(msg) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/LICENSE deleted file mode 100644 index 2e70de97..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2013 TJ Holowaychuk -Copyright (c) 2015 Andreas Lubbe -Copyright (c) 2015 Tiancheng "Timothy" Gu - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/Readme.md deleted file mode 100644 index 653d9eaa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/Readme.md +++ /dev/null @@ -1,43 +0,0 @@ - -# escape-html - - Escape string for use in HTML - -## Example - -```js -var escape = require('escape-html'); -var html = escape('foo & bar'); -// -> foo & bar -``` - -## Benchmark - -``` -$ npm run-script bench - -> escape-html@1.0.3 bench nodejs-escape-html -> node benchmark/index.js - - - http_parser@1.0 - node@0.10.33 - v8@3.14.5.9 - ares@1.9.0-DEV - uv@0.10.29 - zlib@1.2.3 - modules@11 - openssl@1.0.1j - - 1 test completed. - 2 tests completed. - 3 tests completed. - - no special characters x 19,435,271 ops/sec ±0.85% (187 runs sampled) - single special character x 6,132,421 ops/sec ±0.67% (194 runs sampled) - many special characters x 3,175,826 ops/sec ±0.65% (193 runs sampled) -``` - -## License - - MIT \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/index.js deleted file mode 100644 index bf9e226f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/index.js +++ /dev/null @@ -1,78 +0,0 @@ -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ - -'use strict'; - -/** - * Module variables. - * @private - */ - -var matchHtmlRegExp = /["'&<>]/; - -/** - * Module exports. - * @public - */ - -module.exports = escapeHtml; - -/** - * Escape special characters in the given string of html. - * - * @param {string} string The string to escape for inserting into HTML - * @return {string} - * @public - */ - -function escapeHtml(string) { - var str = '' + string; - var match = matchHtmlRegExp.exec(str); - - if (!match) { - return str; - } - - var escape; - var html = ''; - var index = 0; - var lastIndex = 0; - - for (index = match.index; index < str.length; index++) { - switch (str.charCodeAt(index)) { - case 34: // " - escape = '"'; - break; - case 38: // & - escape = '&'; - break; - case 39: // ' - escape = '''; - break; - case 60: // < - escape = '<'; - break; - case 62: // > - escape = '>'; - break; - default: - continue; - } - - if (lastIndex !== index) { - html += str.substring(lastIndex, index); - } - - lastIndex = index + 1; - html += escape; - } - - return lastIndex !== index - ? html + str.substring(lastIndex, index) - : html; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/package.json deleted file mode 100644 index 3f418d6d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/escape-html/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "escape-html", - "description": "Escape string for use in HTML", - "version": "1.0.3", - "license": "MIT", - "keywords": [ - "escape", - "html", - "utility" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/component/escape-html.git" - }, - "devDependencies": { - "benchmark": "1.0.0", - "beautify-benchmark": "0.2.4" - }, - "files": [ - "LICENSE", - "Readme.md", - "index.js" - ], - "scripts": { - "bench": "node benchmark/index.js" - }, - "gitHead": "7ac2ea3977fcac3d4c5be8d2a037812820c65f28", - "bugs": { - "url": "https://github.com/component/escape-html/issues" - }, - "homepage": "https://github.com/component/escape-html", - "_id": "escape-html@1.0.3", - "_shasum": "0258eae4d3d0c0974de1c169188ef0051d1d1988", - "_from": "escape-html@>=1.0.3 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "0258eae4d3d0c0974de1c169188ef0051d1d1988", - "tarball": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/HISTORY.md deleted file mode 100644 index 395041ee..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/HISTORY.md +++ /dev/null @@ -1,47 +0,0 @@ -1.3.1 / 2016-01-17 -================== - - * perf: enable strict mode - -1.3.0 / 2014-08-09 -================== - - * Add `parseurl.original` for parsing `req.originalUrl` with fallback - * Return `undefined` if `req.url` is `undefined` - -1.2.0 / 2014-07-21 -================== - - * Cache URLs based on original value - * Remove no-longer-needed URL mis-parse work-around - * Simplify the "fast-path" `RegExp` - -1.1.3 / 2014-07-08 -================== - - * Fix typo - -1.1.2 / 2014-07-08 -================== - - * Seriously fix Node.js 0.8 compatibility - -1.1.1 / 2014-07-08 -================== - - * Fix Node.js 0.8 compatibility - -1.1.0 / 2014-07-08 -================== - - * Incorporate URL href-only parse fast-path - -1.0.1 / 2014-03-08 -================== - - * Add missing `require` - -1.0.0 / 2014-03-08 -================== - - * Genesis from `connect` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/LICENSE deleted file mode 100644 index ec7dfe7b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ - -(The MIT License) - -Copyright (c) 2014 Jonathan Ong <me@jongleberry.com> -Copyright (c) 2014 Douglas Christopher Wilson <doug@somethingdoug.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/README.md deleted file mode 100644 index f4796ebb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/README.md +++ /dev/null @@ -1,120 +0,0 @@ -# parseurl - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Parse a URL with memoization. - -## Install - -```bash -$ npm install parseurl -``` - -## API - -```js -var parseurl = require('parseurl') -``` - -### parseurl(req) - -Parse the URL of the given request object (looks at the `req.url` property) -and return the result. The result is the same as `url.parse` in Node.js core. -Calling this function multiple times on the same `req` where `req.url` does -not change will return a cached parsed object, rather than parsing again. - -### parseurl.original(req) - -Parse the original URL of the given request object and return the result. -This works by trying to parse `req.originalUrl` if it is a string, otherwise -parses `req.url`. The result is the same as `url.parse` in Node.js core. -Calling this function multiple times on the same `req` where `req.originalUrl` -does not change will return a cached parsed object, rather than parsing again. - -## Benchmark - -```bash -$ npm run-script bench - -> parseurl@1.3.1 bench nodejs-parseurl -> node benchmark/index.js - -> node benchmark/fullurl.js - - Parsing URL "http://localhost:8888/foo/bar?user=tj&pet=fluffy" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 1,290,780 ops/sec ±0.46% (195 runs sampled) - nativeurl x 56,401 ops/sec ±0.22% (196 runs sampled) - parseurl x 55,231 ops/sec ±0.22% (194 runs sampled) - -> node benchmark/pathquery.js - - Parsing URL "/foo/bar?user=tj&pet=fluffy" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 1,986,668 ops/sec ±0.27% (190 runs sampled) - nativeurl x 98,740 ops/sec ±0.21% (195 runs sampled) - parseurl x 2,628,171 ops/sec ±0.36% (195 runs sampled) - -> node benchmark/samerequest.js - - Parsing URL "/foo/bar?user=tj&pet=fluffy" on same request object - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 2,184,468 ops/sec ±0.40% (194 runs sampled) - nativeurl x 99,437 ops/sec ±0.71% (194 runs sampled) - parseurl x 10,498,005 ops/sec ±0.61% (186 runs sampled) - -> node benchmark/simplepath.js - - Parsing URL "/foo/bar" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 4,535,825 ops/sec ±0.27% (191 runs sampled) - nativeurl x 98,769 ops/sec ±0.54% (191 runs sampled) - parseurl x 4,164,865 ops/sec ±0.34% (192 runs sampled) - -> node benchmark/slash.js - - Parsing URL "/" - - 1 test completed. - 2 tests completed. - 3 tests completed. - - fasturl x 4,908,405 ops/sec ±0.42% (191 runs sampled) - nativeurl x 100,945 ops/sec ±0.59% (188 runs sampled) - parseurl x 4,333,208 ops/sec ±0.27% (194 runs sampled) -``` - -## License - - [MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/parseurl.svg -[npm-url]: https://npmjs.org/package/parseurl -[node-version-image]: https://img.shields.io/node/v/parseurl.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/pillarjs/parseurl/master.svg -[travis-url]: https://travis-ci.org/pillarjs/parseurl -[coveralls-image]: https://img.shields.io/coveralls/pillarjs/parseurl/master.svg -[coveralls-url]: https://coveralls.io/r/pillarjs/parseurl?branch=master -[downloads-image]: https://img.shields.io/npm/dm/parseurl.svg -[downloads-url]: https://npmjs.org/package/parseurl diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/index.js deleted file mode 100644 index 56cc6ec7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/index.js +++ /dev/null @@ -1,138 +0,0 @@ -/*! - * parseurl - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - */ - -var url = require('url') -var parse = url.parse -var Url = url.Url - -/** - * Pattern for a simple path case. - * See: https://github.com/joyent/node/pull/7878 - */ - -var simplePathRegExp = /^(\/\/?(?!\/)[^\?#\s]*)(\?[^#\s]*)?$/ - -/** - * Exports. - */ - -module.exports = parseurl -module.exports.original = originalurl - -/** - * Parse the `req` url with memoization. - * - * @param {ServerRequest} req - * @return {Object} - * @api public - */ - -function parseurl(req) { - var url = req.url - - if (url === undefined) { - // URL is undefined - return undefined - } - - var parsed = req._parsedUrl - - if (fresh(url, parsed)) { - // Return cached URL parse - return parsed - } - - // Parse the URL - parsed = fastparse(url) - parsed._raw = url - - return req._parsedUrl = parsed -}; - -/** - * Parse the `req` original url with fallback and memoization. - * - * @param {ServerRequest} req - * @return {Object} - * @api public - */ - -function originalurl(req) { - var url = req.originalUrl - - if (typeof url !== 'string') { - // Fallback - return parseurl(req) - } - - var parsed = req._parsedOriginalUrl - - if (fresh(url, parsed)) { - // Return cached URL parse - return parsed - } - - // Parse the URL - parsed = fastparse(url) - parsed._raw = url - - return req._parsedOriginalUrl = parsed -}; - -/** - * Parse the `str` url with fast-path short-cut. - * - * @param {string} str - * @return {Object} - * @api private - */ - -function fastparse(str) { - // Try fast path regexp - // See: https://github.com/joyent/node/pull/7878 - var simplePath = typeof str === 'string' && simplePathRegExp.exec(str) - - // Construct simple URL - if (simplePath) { - var pathname = simplePath[1] - var search = simplePath[2] || null - var url = Url !== undefined - ? new Url() - : {} - url.path = str - url.href = str - url.pathname = pathname - url.search = search - url.query = search && search.substr(1) - - return url - } - - return parse(str) -} - -/** - * Determine if parsed is still fresh for url. - * - * @param {string} url - * @param {object} parsedUrl - * @return {boolean} - * @api private - */ - -function fresh(url, parsedUrl) { - return typeof parsedUrl === 'object' - && parsedUrl !== null - && (Url === undefined || parsedUrl instanceof Url) - && parsedUrl._raw === url -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/package.json deleted file mode 100644 index 7f57caaf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/parseurl/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "parseurl", - "description": "parse a url with memoization", - "version": "1.3.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "repository": { - "type": "git", - "url": "git+https://github.com/pillarjs/parseurl.git" - }, - "license": "MIT", - "devDependencies": { - "benchmark": "2.0.0", - "beautify-benchmark": "0.2.4", - "fast-url-parser": "1.1.3", - "istanbul": "0.4.2", - "mocha": "~1.21.5" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "bench": "node benchmark/index.js", - "test": "mocha --check-leaks --bail --reporter spec test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec test/" - }, - "gitHead": "6d22d376d75b927ab2b5347ce3a1d6735133dd43", - "bugs": { - "url": "https://github.com/pillarjs/parseurl/issues" - }, - "homepage": "https://github.com/pillarjs/parseurl", - "_id": "parseurl@1.3.1", - "_shasum": "c8ab8c9223ba34888aa64a297b28853bec18da56", - "_from": "parseurl@>=1.3.1 <1.4.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "mscdex", - "email": "mscdex@mscdex.net" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - } - ], - "dist": { - "shasum": "c8ab8c9223ba34888aa64a297b28853bec18da56", - "tarball": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/HISTORY.md deleted file mode 100644 index 35aef469..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/HISTORY.md +++ /dev/null @@ -1,315 +0,0 @@ -0.13.2 / 2016-03-05 -=================== - - * Fix invalid `Content-Type` header when `send.mime.default_type` unset - -0.13.1 / 2016-01-16 -=================== - - * deps: depd@~1.1.0 - - Support web browser loading - - perf: enable strict mode - * deps: destroy@~1.0.4 - - perf: enable strict mode - * deps: escape-html@~1.0.3 - - perf: enable strict mode - - perf: optimize string replacement - - perf: use faster string coercion - * deps: range-parser@~1.0.3 - - perf: enable strict mode - -0.13.0 / 2015-06-16 -=================== - - * Allow Node.js HTTP server to set `Date` response header - * Fix incorrectly removing `Content-Location` on 304 response - * Improve the default redirect response headers - * Send appropriate headers on default error response - * Use `http-errors` for standard emitted errors - * Use `statuses` instead of `http` module for status messages - * deps: escape-html@1.0.2 - * deps: etag@~1.7.0 - - Improve stat performance by removing hashing - * deps: fresh@0.3.0 - - Add weak `ETag` matching support - * deps: on-finished@~2.3.0 - - Add defined behavior for HTTP `CONNECT` requests - - Add defined behavior for HTTP `Upgrade` requests - - deps: ee-first@1.1.1 - * perf: enable strict mode - * perf: remove unnecessary array allocations - -0.12.3 / 2015-05-13 -=================== - - * deps: debug@~2.2.0 - - deps: ms@0.7.1 - * deps: depd@~1.0.1 - * deps: etag@~1.6.0 - - Improve support for JXcore - - Support "fake" stats objects in environments without `fs` - * deps: ms@0.7.1 - - Prevent extraordinarily long inputs - * deps: on-finished@~2.2.1 - -0.12.2 / 2015-03-13 -=================== - - * Throw errors early for invalid `extensions` or `index` options - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - -0.12.1 / 2015-02-17 -=================== - - * Fix regression sending zero-length files - -0.12.0 / 2015-02-16 -=================== - - * Always read the stat size from the file - * Fix mutating passed-in `options` - * deps: mime@1.3.4 - -0.11.1 / 2015-01-20 -=================== - - * Fix `root` path disclosure - -0.11.0 / 2015-01-05 -=================== - - * deps: debug@~2.1.1 - * deps: etag@~1.5.1 - - deps: crc@3.2.1 - * deps: ms@0.7.0 - - Add `milliseconds` - - Add `msecs` - - Add `secs` - - Add `mins` - - Add `hrs` - - Add `yrs` - * deps: on-finished@~2.2.0 - -0.10.1 / 2014-10-22 -=================== - - * deps: on-finished@~2.1.1 - - Fix handling of pipelined requests - -0.10.0 / 2014-10-15 -=================== - - * deps: debug@~2.1.0 - - Implement `DEBUG_FD` env variable support - * deps: depd@~1.0.0 - * deps: etag@~1.5.0 - - Improve string performance - - Slightly improve speed for weak ETags over 1KB - -0.9.3 / 2014-09-24 -================== - - * deps: etag@~1.4.0 - - Support "fake" stats objects - -0.9.2 / 2014-09-15 -================== - - * deps: depd@0.4.5 - * deps: etag@~1.3.1 - * deps: range-parser@~1.0.2 - -0.9.1 / 2014-09-07 -================== - - * deps: fresh@0.2.4 - -0.9.0 / 2014-09-07 -================== - - * Add `lastModified` option - * Use `etag` to generate `ETag` header - * deps: debug@~2.0.0 - -0.8.5 / 2014-09-04 -================== - - * Fix malicious path detection for empty string path - -0.8.4 / 2014-09-04 -================== - - * Fix a path traversal issue when using `root` - -0.8.3 / 2014-08-16 -================== - - * deps: destroy@1.0.3 - - renamed from dethroy - * deps: on-finished@2.1.0 - -0.8.2 / 2014-08-14 -================== - - * Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` - * deps: dethroy@1.0.2 - -0.8.1 / 2014-08-05 -================== - - * Fix `extensions` behavior when file already has extension - -0.8.0 / 2014-08-05 -================== - - * Add `extensions` option - -0.7.4 / 2014-08-04 -================== - - * Fix serving index files without root dir - -0.7.3 / 2014-07-29 -================== - - * Fix incorrect 403 on Windows and Node.js 0.11 - -0.7.2 / 2014-07-27 -================== - - * deps: depd@0.4.4 - - Work-around v8 generating empty stack traces - -0.7.1 / 2014-07-26 -================== - - * deps: depd@0.4.3 - - Fix exception when global `Error.stackTraceLimit` is too low - -0.7.0 / 2014-07-20 -================== - - * Deprecate `hidden` option; use `dotfiles` option - * Add `dotfiles` option - * deps: debug@1.0.4 - * deps: depd@0.4.2 - - Add `TRACE_DEPRECATION` environment variable - - Remove non-standard grey color from color output - - Support `--no-deprecation` argument - - Support `--trace-deprecation` argument - -0.6.0 / 2014-07-11 -================== - - * Deprecate `from` option; use `root` option - * Deprecate `send.etag()` -- use `etag` in `options` - * Deprecate `send.hidden()` -- use `hidden` in `options` - * Deprecate `send.index()` -- use `index` in `options` - * Deprecate `send.maxage()` -- use `maxAge` in `options` - * Deprecate `send.root()` -- use `root` in `options` - * Cap `maxAge` value to 1 year - * deps: debug@1.0.3 - - Add support for multiple wildcards in namespaces - -0.5.0 / 2014-06-28 -================== - - * Accept string for `maxAge` (converted by `ms`) - * Add `headers` event - * Include link in default redirect response - * Use `EventEmitter.listenerCount` to count listeners - -0.4.3 / 2014-06-11 -================== - - * Do not throw un-catchable error on file open race condition - * Use `escape-html` for HTML escaping - * deps: debug@1.0.2 - - fix some debugging output colors on node.js 0.8 - * deps: finished@1.2.2 - * deps: fresh@0.2.2 - -0.4.2 / 2014-06-09 -================== - - * fix "event emitter leak" warnings - * deps: debug@1.0.1 - * deps: finished@1.2.1 - -0.4.1 / 2014-06-02 -================== - - * Send `max-age` in `Cache-Control` in correct format - -0.4.0 / 2014-05-27 -================== - - * Calculate ETag with md5 for reduced collisions - * Fix wrong behavior when index file matches directory - * Ignore stream errors after request ends - - Goodbye `EBADF, read` - * Skip directories in index file search - * deps: debug@0.8.1 - -0.3.0 / 2014-04-24 -================== - - * Fix sending files with dots without root set - * Coerce option types - * Accept API options in options object - * Set etags to "weak" - * Include file path in etag - * Make "Can't set headers after they are sent." catchable - * Send full entity-body for multi range requests - * Default directory access to 403 when index disabled - * Support multiple index paths - * Support "If-Range" header - * Control whether to generate etags - * deps: mime@1.2.11 - -0.2.0 / 2014-01-29 -================== - - * update range-parser and fresh - -0.1.4 / 2013-08-11 -================== - - * update fresh - -0.1.3 / 2013-07-08 -================== - - * Revert "Fix fd leak" - -0.1.2 / 2013-07-03 -================== - - * Fix fd leak - -0.1.0 / 2012-08-25 -================== - - * add options parameter to send() that is passed to fs.createReadStream() [kanongil] - -0.0.4 / 2012-08-16 -================== - - * allow custom "Accept-Ranges" definition - -0.0.3 / 2012-07-16 -================== - - * fix normalization of the root directory. Closes #3 - -0.0.2 / 2012-07-09 -================== - - * add passing of req explicitly for now (YUCK) - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/LICENSE deleted file mode 100644 index e4d595b3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2012 TJ Holowaychuk -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/README.md deleted file mode 100644 index d2415559..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/README.md +++ /dev/null @@ -1,234 +0,0 @@ -# send - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Linux Build][travis-image]][travis-url] -[![Windows Build][appveyor-image]][appveyor-url] -[![Test Coverage][coveralls-image]][coveralls-url] -[![Gratipay][gratipay-image]][gratipay-url] - -Send is a library for streaming files from the file system as a http response -supporting partial responses (Ranges), conditional-GET negotiation, high test -coverage, and granular events which may be leveraged to take appropriate actions -in your application or framework. - -Looking to serve up entire folders mapped to URLs? Try [serve-static](https://www.npmjs.org/package/serve-static). - -## Installation - -```bash -$ npm install send -``` - -## API - -```js -var send = require('send') -``` - -### send(req, path, [options]) - -Create a new `SendStream` for the given path to send to a `res`. The `req` is -the Node.js HTTP request and the `path` is a urlencoded path to send (urlencoded, -not the actual file-system path). - -#### Options - -##### dotfiles - -Set how "dotfiles" are treated when encountered. A dotfile is a file -or directory that begins with a dot ("."). Note this check is done on -the path itself without checking if the path actually exists on the -disk. If `root` is specified, only the dotfiles above the root are -checked (i.e. the root itself can be within a dotfile when when set -to "deny"). - - - `'allow'` No special treatment for dotfiles. - - `'deny'` Send a 403 for any request for a dotfile. - - `'ignore'` Pretend like the dotfile does not exist and 404. - -The default value is _similar_ to `'ignore'`, with the exception that -this default will not ignore the files within a directory that begins -with a dot, for backward-compatibility. - -##### end - -Byte offset at which the stream ends, defaults to the length of the file -minus 1. The end is inclusive in the stream, meaning `end: 3` will include -the 4th byte in the stream. - -##### etag - -Enable or disable etag generation, defaults to true. - -##### extensions - -If a given file doesn't exist, try appending one of the given extensions, -in the given order. By default, this is disabled (set to `false`). An -example value that will serve extension-less HTML files: `['html', 'htm']`. -This is skipped if the requested file already has an extension. - -##### index - -By default send supports "index.html" files, to disable this -set `false` or to supply a new index pass a string or an array -in preferred order. - -##### lastModified - -Enable or disable `Last-Modified` header, defaults to true. Uses the file -system's last modified value. - -##### maxAge - -Provide a max-age in milliseconds for http caching, defaults to 0. -This can also be a string accepted by the -[ms](https://www.npmjs.org/package/ms#readme) module. - -##### root - -Serve files relative to `path`. - -##### start - -Byte offset at which the stream starts, defaults to 0. The start is inclusive, -meaning `start: 2` will include the 3rd byte in the stream. - -#### Events - -The `SendStream` is an event emitter and will emit the following events: - - - `error` an error occurred `(err)` - - `directory` a directory was requested - - `file` a file was requested `(path, stat)` - - `headers` the headers are about to be set on a file `(res, path, stat)` - - `stream` file streaming has started `(stream)` - - `end` streaming has completed - -#### .pipe - -The `pipe` method is used to pipe the response into the Node.js HTTP response -object, typically `send(req, path, options).pipe(res)`. - -### .mime - -The `mime` export is the global instance of of the -[`mime` npm module](https://www.npmjs.com/package/mime). - -This is used to configure the MIME types that are associated with file extensions -as well as other options for how to resolve the MIME type of a file (like the -default type to use for an unknown file extension). - -## Error-handling - -By default when no `error` listeners are present an automatic response will be -made, otherwise you have full control over the response, aka you may show a 5xx -page etc. - -## Caching - -It does _not_ perform internal caching, you should use a reverse proxy cache -such as Varnish for this, or those fancy things called CDNs. If your -application is small enough that it would benefit from single-node memory -caching, it's small enough that it does not need caching at all ;). - -## Debugging - -To enable `debug()` instrumentation output export __DEBUG__: - -``` -$ DEBUG=send node app -``` - -## Running tests - -``` -$ npm install -$ npm test -``` - -## Examples - -### Small example - -```js -var http = require('http'); -var send = require('send'); - -var app = http.createServer(function(req, res){ - send(req, req.url).pipe(res); -}).listen(3000); -``` - -### Custom file types - -```js -var http = require('http'); -var send = require('send'); - -// Default unknown types to text/plain -send.mime.default_type = 'text/plain'; - -// Add a custom type -send.mime.define({ - 'application/x-my-type': ['x-mt', 'x-mtt'] -}); - -var app = http.createServer(function(req, res){ - send(req, req.url).pipe(res); -}).listen(3000); -``` - -### Serving from a root directory with custom error-handling - -```js -var http = require('http'); -var send = require('send'); -var url = require('url'); - -var app = http.createServer(function(req, res){ - // your custom error-handling logic: - function error(err) { - res.statusCode = err.status || 500; - res.end(err.message); - } - - // your custom headers - function headers(res, path, stat) { - // serve all files for download - res.setHeader('Content-Disposition', 'attachment'); - } - - // your custom directory handling logic: - function redirect() { - res.statusCode = 301; - res.setHeader('Location', req.url + '/'); - res.end('Redirecting to ' + req.url + '/'); - } - - // transfer arbitrary files from within - // /www/example.com/public/* - send(req, url.parse(req.url).pathname, {root: '/www/example.com/public'}) - .on('error', error) - .on('directory', redirect) - .on('headers', headers) - .pipe(res); -}).listen(3000); -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/send.svg -[npm-url]: https://npmjs.org/package/send -[travis-image]: https://img.shields.io/travis/pillarjs/send/master.svg?label=linux -[travis-url]: https://travis-ci.org/pillarjs/send -[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/send/master.svg?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/send -[coveralls-image]: https://img.shields.io/coveralls/pillarjs/send/master.svg -[coveralls-url]: https://coveralls.io/r/pillarjs/send?branch=master -[downloads-image]: https://img.shields.io/npm/dm/send.svg -[downloads-url]: https://npmjs.org/package/send -[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg -[gratipay-url]: https://www.gratipay.com/dougwilson/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/index.js deleted file mode 100644 index a4e5af85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/index.js +++ /dev/null @@ -1,829 +0,0 @@ -/*! - * send - * Copyright(c) 2012 TJ Holowaychuk - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var createError = require('http-errors') -var debug = require('debug')('send') -var deprecate = require('depd')('send') -var destroy = require('destroy') -var escapeHtml = require('escape-html') - , parseRange = require('range-parser') - , Stream = require('stream') - , mime = require('mime') - , fresh = require('fresh') - , path = require('path') - , fs = require('fs') - , normalize = path.normalize - , join = path.join -var etag = require('etag') -var EventEmitter = require('events').EventEmitter; -var ms = require('ms'); -var onFinished = require('on-finished') -var statuses = require('statuses') - -/** - * Variables. - */ -var extname = path.extname -var maxMaxAge = 60 * 60 * 24 * 365 * 1000; // 1 year -var resolve = path.resolve -var sep = path.sep -var toString = Object.prototype.toString -var upPathRegexp = /(?:^|[\\\/])\.\.(?:[\\\/]|$)/ - -/** - * Module exports. - * @public - */ - -module.exports = send -module.exports.mime = mime - -/** - * Shim EventEmitter.listenerCount for node.js < 0.10 - */ - -/* istanbul ignore next */ -var listenerCount = EventEmitter.listenerCount - || function(emitter, type){ return emitter.listeners(type).length; }; - -/** - * Return a `SendStream` for `req` and `path`. - * - * @param {object} req - * @param {string} path - * @param {object} [options] - * @return {SendStream} - * @public - */ - -function send(req, path, options) { - return new SendStream(req, path, options); -} - -/** - * Initialize a `SendStream` with the given `path`. - * - * @param {Request} req - * @param {String} path - * @param {object} [options] - * @private - */ - -function SendStream(req, path, options) { - var opts = options || {} - - this.options = opts - this.path = path - this.req = req - - this._etag = opts.etag !== undefined - ? Boolean(opts.etag) - : true - - this._dotfiles = opts.dotfiles !== undefined - ? opts.dotfiles - : 'ignore' - - if (this._dotfiles !== 'ignore' && this._dotfiles !== 'allow' && this._dotfiles !== 'deny') { - throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"') - } - - this._hidden = Boolean(opts.hidden) - - if (opts.hidden !== undefined) { - deprecate('hidden: use dotfiles: \'' + (this._hidden ? 'allow' : 'ignore') + '\' instead') - } - - // legacy support - if (opts.dotfiles === undefined) { - this._dotfiles = undefined - } - - this._extensions = opts.extensions !== undefined - ? normalizeList(opts.extensions, 'extensions option') - : [] - - this._index = opts.index !== undefined - ? normalizeList(opts.index, 'index option') - : ['index.html'] - - this._lastModified = opts.lastModified !== undefined - ? Boolean(opts.lastModified) - : true - - this._maxage = opts.maxAge || opts.maxage - this._maxage = typeof this._maxage === 'string' - ? ms(this._maxage) - : Number(this._maxage) - this._maxage = !isNaN(this._maxage) - ? Math.min(Math.max(0, this._maxage), maxMaxAge) - : 0 - - this._root = opts.root - ? resolve(opts.root) - : null - - if (!this._root && opts.from) { - this.from(opts.from) - } -} - -/** - * Inherits from `Stream.prototype`. - */ - -SendStream.prototype.__proto__ = Stream.prototype; - -/** - * Enable or disable etag generation. - * - * @param {Boolean} val - * @return {SendStream} - * @api public - */ - -SendStream.prototype.etag = deprecate.function(function etag(val) { - val = Boolean(val); - debug('etag %s', val); - this._etag = val; - return this; -}, 'send.etag: pass etag as option'); - -/** - * Enable or disable "hidden" (dot) files. - * - * @param {Boolean} path - * @return {SendStream} - * @api public - */ - -SendStream.prototype.hidden = deprecate.function(function hidden(val) { - val = Boolean(val); - debug('hidden %s', val); - this._hidden = val; - this._dotfiles = undefined - return this; -}, 'send.hidden: use dotfiles option'); - -/** - * Set index `paths`, set to a falsy - * value to disable index support. - * - * @param {String|Boolean|Array} paths - * @return {SendStream} - * @api public - */ - -SendStream.prototype.index = deprecate.function(function index(paths) { - var index = !paths ? [] : normalizeList(paths, 'paths argument'); - debug('index %o', paths); - this._index = index; - return this; -}, 'send.index: pass index as option'); - -/** - * Set root `path`. - * - * @param {String} path - * @return {SendStream} - * @api public - */ - -SendStream.prototype.root = function(path){ - path = String(path); - this._root = resolve(path) - return this; -}; - -SendStream.prototype.from = deprecate.function(SendStream.prototype.root, - 'send.from: pass root as option'); - -SendStream.prototype.root = deprecate.function(SendStream.prototype.root, - 'send.root: pass root as option'); - -/** - * Set max-age to `maxAge`. - * - * @param {Number} maxAge - * @return {SendStream} - * @api public - */ - -SendStream.prototype.maxage = deprecate.function(function maxage(maxAge) { - maxAge = typeof maxAge === 'string' - ? ms(maxAge) - : Number(maxAge); - if (isNaN(maxAge)) maxAge = 0; - if (Infinity == maxAge) maxAge = 60 * 60 * 24 * 365 * 1000; - debug('max-age %d', maxAge); - this._maxage = maxAge; - return this; -}, 'send.maxage: pass maxAge as option'); - -/** - * Emit error with `status`. - * - * @param {number} status - * @param {Error} [error] - * @private - */ - -SendStream.prototype.error = function error(status, error) { - // emit if listeners instead of responding - if (listenerCount(this, 'error') !== 0) { - return this.emit('error', createError(error, status, { - expose: false - })) - } - - var res = this.res - var msg = statuses[status] - - // wipe all existing headers - res._headers = null - - // send basic response - res.statusCode = status - res.setHeader('Content-Type', 'text/plain; charset=UTF-8') - res.setHeader('Content-Length', Buffer.byteLength(msg)) - res.setHeader('X-Content-Type-Options', 'nosniff') - res.end(msg) -} - -/** - * Check if the pathname ends with "/". - * - * @return {Boolean} - * @api private - */ - -SendStream.prototype.hasTrailingSlash = function(){ - return '/' == this.path[this.path.length - 1]; -}; - -/** - * Check if this is a conditional GET request. - * - * @return {Boolean} - * @api private - */ - -SendStream.prototype.isConditionalGET = function(){ - return this.req.headers['if-none-match'] - || this.req.headers['if-modified-since']; -}; - -/** - * Strip content-* header fields. - * - * @private - */ - -SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields() { - var res = this.res - var headers = Object.keys(res._headers || {}) - - for (var i = 0; i < headers.length; i++) { - var header = headers[i] - if (header.substr(0, 8) === 'content-' && header !== 'content-location') { - res.removeHeader(header) - } - } -} - -/** - * Respond with 304 not modified. - * - * @api private - */ - -SendStream.prototype.notModified = function(){ - var res = this.res; - debug('not modified'); - this.removeContentHeaderFields(); - res.statusCode = 304; - res.end(); -}; - -/** - * Raise error that headers already sent. - * - * @api private - */ - -SendStream.prototype.headersAlreadySent = function headersAlreadySent(){ - var err = new Error('Can\'t set headers after they are sent.'); - debug('headers already sent'); - this.error(500, err); -}; - -/** - * Check if the request is cacheable, aka - * responded with 2xx or 304 (see RFC 2616 section 14.2{5,6}). - * - * @return {Boolean} - * @api private - */ - -SendStream.prototype.isCachable = function(){ - var res = this.res; - return (res.statusCode >= 200 && res.statusCode < 300) || 304 == res.statusCode; -}; - -/** - * Handle stat() error. - * - * @param {Error} error - * @private - */ - -SendStream.prototype.onStatError = function onStatError(error) { - switch (error.code) { - case 'ENAMETOOLONG': - case 'ENOENT': - case 'ENOTDIR': - this.error(404, error) - break - default: - this.error(500, error) - break - } -} - -/** - * Check if the cache is fresh. - * - * @return {Boolean} - * @api private - */ - -SendStream.prototype.isFresh = function(){ - return fresh(this.req.headers, this.res._headers); -}; - -/** - * Check if the range is fresh. - * - * @return {Boolean} - * @api private - */ - -SendStream.prototype.isRangeFresh = function isRangeFresh(){ - var ifRange = this.req.headers['if-range']; - - if (!ifRange) return true; - - return ~ifRange.indexOf('"') - ? ~ifRange.indexOf(this.res._headers['etag']) - : Date.parse(this.res._headers['last-modified']) <= Date.parse(ifRange); -}; - -/** - * Redirect to path. - * - * @param {string} path - * @private - */ - -SendStream.prototype.redirect = function redirect(path) { - if (listenerCount(this, 'directory') !== 0) { - this.emit('directory') - return - } - - if (this.hasTrailingSlash()) { - this.error(403) - return - } - - var loc = path + '/' - var msg = 'Redirecting to <a href="' + escapeHtml(loc) + '">' + escapeHtml(loc) + '</a>\n' - var res = this.res - - // redirect - res.statusCode = 301 - res.setHeader('Content-Type', 'text/html; charset=UTF-8') - res.setHeader('Content-Length', Buffer.byteLength(msg)) - res.setHeader('X-Content-Type-Options', 'nosniff') - res.setHeader('Location', loc) - res.end(msg) -} - -/** - * Pipe to `res. - * - * @param {Stream} res - * @return {Stream} res - * @api public - */ - -SendStream.prototype.pipe = function(res){ - var self = this - , args = arguments - , root = this._root; - - // references - this.res = res; - - // decode the path - var path = decode(this.path) - if (path === -1) return this.error(400) - - // null byte(s) - if (~path.indexOf('\0')) return this.error(400); - - var parts - if (root !== null) { - // malicious path - if (upPathRegexp.test(normalize('.' + sep + path))) { - debug('malicious path "%s"', path) - return this.error(403) - } - - // join / normalize from optional root dir - path = normalize(join(root, path)) - root = normalize(root + sep) - - // explode path parts - parts = path.substr(root.length).split(sep) - } else { - // ".." is malicious without "root" - if (upPathRegexp.test(path)) { - debug('malicious path "%s"', path) - return this.error(403) - } - - // explode path parts - parts = normalize(path).split(sep) - - // resolve the path - path = resolve(path) - } - - // dotfile handling - if (containsDotFile(parts)) { - var access = this._dotfiles - - // legacy support - if (access === undefined) { - access = parts[parts.length - 1][0] === '.' - ? (this._hidden ? 'allow' : 'ignore') - : 'allow' - } - - debug('%s dotfile "%s"', access, path) - switch (access) { - case 'allow': - break - case 'deny': - return this.error(403) - case 'ignore': - default: - return this.error(404) - } - } - - // index file support - if (this._index.length && this.path[this.path.length - 1] === '/') { - this.sendIndex(path); - return res; - } - - this.sendFile(path); - return res; -}; - -/** - * Transfer `path`. - * - * @param {String} path - * @api public - */ - -SendStream.prototype.send = function(path, stat){ - var len = stat.size; - var options = this.options - var opts = {} - var res = this.res; - var req = this.req; - var ranges = req.headers.range; - var offset = options.start || 0; - - if (res._header) { - // impossible to send now - return this.headersAlreadySent(); - } - - debug('pipe "%s"', path) - - // set header fields - this.setHeader(path, stat); - - // set content-type - this.type(path); - - // conditional GET support - if (this.isConditionalGET() - && this.isCachable() - && this.isFresh()) { - return this.notModified(); - } - - // adjust len to start/end options - len = Math.max(0, len - offset); - if (options.end !== undefined) { - var bytes = options.end - offset + 1; - if (len > bytes) len = bytes; - } - - // Range support - if (ranges) { - ranges = parseRange(len, ranges); - - // If-Range support - if (!this.isRangeFresh()) { - debug('range stale'); - ranges = -2; - } - - // unsatisfiable - if (-1 == ranges) { - debug('range unsatisfiable'); - res.setHeader('Content-Range', 'bytes */' + stat.size); - return this.error(416); - } - - // valid (syntactically invalid/multiple ranges are treated as a regular response) - if (-2 != ranges && ranges.length === 1) { - debug('range %j', ranges); - - // Content-Range - res.statusCode = 206; - res.setHeader('Content-Range', 'bytes ' - + ranges[0].start - + '-' - + ranges[0].end - + '/' - + len); - - offset += ranges[0].start; - len = ranges[0].end - ranges[0].start + 1; - } - } - - // clone options - for (var prop in options) { - opts[prop] = options[prop] - } - - // set read options - opts.start = offset - opts.end = Math.max(offset, offset + len - 1) - - // content-length - res.setHeader('Content-Length', len); - - // HEAD support - if ('HEAD' == req.method) return res.end(); - - this.stream(path, opts) -}; - -/** - * Transfer file for `path`. - * - * @param {String} path - * @api private - */ -SendStream.prototype.sendFile = function sendFile(path) { - var i = 0 - var self = this - - debug('stat "%s"', path); - fs.stat(path, function onstat(err, stat) { - if (err && err.code === 'ENOENT' - && !extname(path) - && path[path.length - 1] !== sep) { - // not found, check extensions - return next(err) - } - if (err) return self.onStatError(err) - if (stat.isDirectory()) return self.redirect(self.path) - self.emit('file', path, stat) - self.send(path, stat) - }) - - function next(err) { - if (self._extensions.length <= i) { - return err - ? self.onStatError(err) - : self.error(404) - } - - var p = path + '.' + self._extensions[i++] - - debug('stat "%s"', p) - fs.stat(p, function (err, stat) { - if (err) return next(err) - if (stat.isDirectory()) return next() - self.emit('file', p, stat) - self.send(p, stat) - }) - } -} - -/** - * Transfer index for `path`. - * - * @param {String} path - * @api private - */ -SendStream.prototype.sendIndex = function sendIndex(path){ - var i = -1; - var self = this; - - function next(err){ - if (++i >= self._index.length) { - if (err) return self.onStatError(err); - return self.error(404); - } - - var p = join(path, self._index[i]); - - debug('stat "%s"', p); - fs.stat(p, function(err, stat){ - if (err) return next(err); - if (stat.isDirectory()) return next(); - self.emit('file', p, stat); - self.send(p, stat); - }); - } - - next(); -}; - -/** - * Stream `path` to the response. - * - * @param {String} path - * @param {Object} options - * @api private - */ - -SendStream.prototype.stream = function(path, options){ - // TODO: this is all lame, refactor meeee - var finished = false; - var self = this; - var res = this.res; - var req = this.req; - - // pipe - var stream = fs.createReadStream(path, options); - this.emit('stream', stream); - stream.pipe(res); - - // response finished, done with the fd - onFinished(res, function onfinished(){ - finished = true; - destroy(stream); - }); - - // error handling code-smell - stream.on('error', function onerror(err){ - // request already finished - if (finished) return; - - // clean up stream - finished = true; - destroy(stream); - - // error - self.onStatError(err); - }); - - // end - stream.on('end', function onend(){ - self.emit('end'); - }); -}; - -/** - * Set content-type based on `path` - * if it hasn't been explicitly set. - * - * @param {String} path - * @api private - */ - -SendStream.prototype.type = function type(path) { - var res = this.res; - - if (res.getHeader('Content-Type')) return; - - var type = mime.lookup(path); - - if (!type) { - debug('no content-type'); - return; - } - - var charset = mime.charsets.lookup(type); - - debug('content-type %s', type); - res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : '')); -}; - -/** - * Set response header fields, most - * fields may be pre-defined. - * - * @param {String} path - * @param {Object} stat - * @api private - */ - -SendStream.prototype.setHeader = function setHeader(path, stat){ - var res = this.res; - - this.emit('headers', res, path, stat); - - if (!res.getHeader('Accept-Ranges')) res.setHeader('Accept-Ranges', 'bytes'); - if (!res.getHeader('Cache-Control')) res.setHeader('Cache-Control', 'public, max-age=' + Math.floor(this._maxage / 1000)); - - if (this._lastModified && !res.getHeader('Last-Modified')) { - var modified = stat.mtime.toUTCString() - debug('modified %s', modified) - res.setHeader('Last-Modified', modified) - } - - if (this._etag && !res.getHeader('ETag')) { - var val = etag(stat) - debug('etag %s', val) - res.setHeader('ETag', val) - } -}; - -/** - * Determine if path parts contain a dotfile. - * - * @api private - */ - -function containsDotFile(parts) { - for (var i = 0; i < parts.length; i++) { - if (parts[i][0] === '.') { - return true - } - } - - return false -} - -/** - * decodeURIComponent. - * - * Allows V8 to only deoptimize this fn instead of all - * of send(). - * - * @param {String} path - * @api private - */ - -function decode(path) { - try { - return decodeURIComponent(path) - } catch (err) { - return -1 - } -} - -/** - * Normalize the index option into an array. - * - * @param {boolean|string|array} val - * @param {string} name - * @private - */ - -function normalizeList(val, name) { - var list = [].concat(val || []) - - for (var i = 0; i < list.length; i++) { - if (typeof list[i] !== 'string') { - throw new TypeError(name + ' must be array of strings or false') - } - } - - return list -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/.bin/mime b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/.bin/mime deleted file mode 120000 index fbb7ee0e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/.bin/mime +++ /dev/null @@ -1 +0,0 @@ -../mime/cli.js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/.jshintrc deleted file mode 100644 index 299877f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/.jshintrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "laxbreak": true -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/.npmignore deleted file mode 100644 index 7e6163db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -support -test -examples -example -*.sock -dist diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/History.md deleted file mode 100644 index 854c9711..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/History.md +++ /dev/null @@ -1,195 +0,0 @@ - -2.2.0 / 2015-05-09 -================== - - * package: update "ms" to v0.7.1 (#202, @dougwilson) - * README: add logging to file example (#193, @DanielOchoa) - * README: fixed a typo (#191, @amir-s) - * browser: expose `storage` (#190, @stephenmathieson) - * Makefile: add a `distclean` target (#189, @stephenmathieson) - -2.1.3 / 2015-03-13 -================== - - * Updated stdout/stderr example (#186) - * Updated example/stdout.js to match debug current behaviour - * Renamed example/stderr.js to stdout.js - * Update Readme.md (#184) - * replace high intensity foreground color for bold (#182, #183) - -2.1.2 / 2015-03-01 -================== - - * dist: recompile - * update "ms" to v0.7.0 - * package: update "browserify" to v9.0.3 - * component: fix "ms.js" repo location - * changed bower package name - * updated documentation about using debug in a browser - * fix: security error on safari (#167, #168, @yields) - -2.1.1 / 2014-12-29 -================== - - * browser: use `typeof` to check for `console` existence - * browser: check for `console.log` truthiness (fix IE 8/9) - * browser: add support for Chrome apps - * Readme: added Windows usage remarks - * Add `bower.json` to properly support bower install - -2.1.0 / 2014-10-15 -================== - - * node: implement `DEBUG_FD` env variable support - * package: update "browserify" to v6.1.0 - * package: add "license" field to package.json (#135, @panuhorsmalahti) - -2.0.0 / 2014-09-01 -================== - - * package: update "browserify" to v5.11.0 - * node: use stderr rather than stdout for logging (#29, @stephenmathieson) - -1.0.4 / 2014-07-15 -================== - - * dist: recompile - * example: remove `console.info()` log usage - * example: add "Content-Type" UTF-8 header to browser example - * browser: place %c marker after the space character - * browser: reset the "content" color via `color: inherit` - * browser: add colors support for Firefox >= v31 - * debug: prefer an instance `log()` function over the global one (#119) - * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) - -1.0.3 / 2014-07-09 -================== - - * Add support for multiple wildcards in namespaces (#122, @seegno) - * browser: fix lint - -1.0.2 / 2014-06-10 -================== - - * browser: update color palette (#113, @gscottolson) - * common: make console logging function configurable (#108, @timoxley) - * node: fix %o colors on old node <= 0.8.x - * Makefile: find node path using shell/which (#109, @timoxley) - -1.0.1 / 2014-06-06 -================== - - * browser: use `removeItem()` to clear localStorage - * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) - * package: add "contributors" section - * node: fix comment typo - * README: list authors - -1.0.0 / 2014-06-04 -================== - - * make ms diff be global, not be scope - * debug: ignore empty strings in enable() - * node: make DEBUG_COLORS able to disable coloring - * *: export the `colors` array - * npmignore: don't publish the `dist` dir - * Makefile: refactor to use browserify - * package: add "browserify" as a dev dependency - * Readme: add Web Inspector Colors section - * node: reset terminal color for the debug content - * node: map "%o" to `util.inspect()` - * browser: map "%j" to `JSON.stringify()` - * debug: add custom "formatters" - * debug: use "ms" module for humanizing the diff - * Readme: add "bash" syntax highlighting - * browser: add Firebug color support - * browser: add colors for WebKit browsers - * node: apply log to `console` - * rewrite: abstract common logic for Node & browsers - * add .jshintrc file - -0.8.1 / 2014-04-14 -================== - - * package: re-add the "component" section - -0.8.0 / 2014-03-30 -================== - - * add `enable()` method for nodejs. Closes #27 - * change from stderr to stdout - * remove unnecessary index.js file - -0.7.4 / 2013-11-13 -================== - - * remove "browserify" key from package.json (fixes something in browserify) - -0.7.3 / 2013-10-30 -================== - - * fix: catch localStorage security error when cookies are blocked (Chrome) - * add debug(err) support. Closes #46 - * add .browser prop to package.json. Closes #42 - -0.7.2 / 2013-02-06 -================== - - * fix package.json - * fix: Mobile Safari (private mode) is broken with debug - * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript - -0.7.1 / 2013-02-05 -================== - - * add repository URL to package.json - * add DEBUG_COLORED to force colored output - * add browserify support - * fix component. Closes #24 - -0.7.0 / 2012-05-04 -================== - - * Added .component to package.json - * Added debug.component.js build - -0.6.0 / 2012-03-16 -================== - - * Added support for "-" prefix in DEBUG [Vinay Pulim] - * Added `.enabled` flag to the node version [TooTallNate] - -0.5.0 / 2012-02-02 -================== - - * Added: humanize diffs. Closes #8 - * Added `debug.disable()` to the CS variant - * Removed padding. Closes #10 - * Fixed: persist client-side variant again. Closes #9 - -0.4.0 / 2012-02-01 -================== - - * Added browser variant support for older browsers [TooTallNate] - * Added `debug.enable('project:*')` to browser variant [TooTallNate] - * Added padding to diff (moved it to the right) - -0.3.0 / 2012-01-26 -================== - - * Added millisecond diff when isatty, otherwise UTC string - -0.2.0 / 2012-01-22 -================== - - * Added wildcard support - -0.1.0 / 2011-12-02 -================== - - * Added: remove colors unless stderr isatty [TooTallNate] - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/Makefile deleted file mode 100644 index 5cf4a596..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/Makefile +++ /dev/null @@ -1,36 +0,0 @@ - -# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 -THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) -THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) - -# BIN directory -BIN := $(THIS_DIR)/node_modules/.bin - -# applications -NODE ?= $(shell which node) -NPM ?= $(NODE) $(shell which npm) -BROWSERIFY ?= $(NODE) $(BIN)/browserify - -all: dist/debug.js - -install: node_modules - -clean: - @rm -rf dist - -dist: - @mkdir -p $@ - -dist/debug.js: node_modules browser.js debug.js dist - @$(BROWSERIFY) \ - --standalone debug \ - . > $@ - -distclean: clean - @rm -rf node_modules - -node_modules: package.json - @NODE_ENV= $(NPM) install - @touch node_modules - -.PHONY: all install clean distclean diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/Readme.md deleted file mode 100644 index b4f45e3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/Readme.md +++ /dev/null @@ -1,188 +0,0 @@ -# debug - - tiny node.js debugging utility modelled after node core's debugging technique. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - - With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility. - -Example _app.js_: - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %s', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example _worker.js_: - -```js -var debug = require('debug')('worker'); - -setInterval(function(){ - debug('doing some work'); -}, 1000); -``` - - The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: - - ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) - - ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) - -#### Windows note - - On Windows the environment variable is set using the `set` command. - - ```cmd - set DEBUG=*,-not_this - ``` - -Then, run the program to be debugged as usual. - -## Millisecond diff - - When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) - - When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: - - ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) - -## Conventions - - If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". - -## Wildcards - - The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - - You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:". - -## Browser support - - Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include: - -```js -window.myDebug = require("debug"); -``` - - ("debug" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console: - -```js -myDebug.enable("worker:*") -``` - - Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - -#### Web Inspector Colors - - Colors are also enabled on "Web Inspectors" that understand the `%c` formatting - option. These are WebKit web inspectors, Firefox ([since version - 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) - and the Firebug plugin for Firefox (any version). - - Colored output looks something like: - - ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png) - -### stderr vs stdout - -You can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally: - -Example _stdout.js_: - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -### Save debug output to a file - -You can save all debug statements to a file by piping them. - -Example: - -```bash -$ DEBUG_FD=3 node your-app.js 3> whatever.log -``` - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - -## License - -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/bower.json deleted file mode 100644 index 6af573ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "visionmedia-debug", - "main": "dist/debug.js", - "version": "2.2.0", - "homepage": "https://github.com/visionmedia/debug", - "authors": [ - "TJ Holowaychuk <tj@vision-media.ca>" - ], - "description": "visionmedia-debug", - "moduleType": [ - "amd", - "es6", - "globals", - "node" - ], - "keywords": [ - "visionmedia", - "debug" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/browser.js deleted file mode 100644 index 7c764522..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/browser.js +++ /dev/null @@ -1,168 +0,0 @@ - -/** - * This is the web browser implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - -/** - * Colors. - */ - -exports.colors = [ - 'lightseagreen', - 'forestgreen', - 'goldenrod', - 'dodgerblue', - 'darkorchid', - 'crimson' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -function useColors() { - // is webkit? http://stackoverflow.com/a/16459606/376773 - return ('WebkitAppearance' in document.documentElement.style) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (window.console && (console.firebug || (console.exception && console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31); -} - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - return JSON.stringify(v); -}; - - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); - - if (!useColors) return args; - - var c = 'color: ' + this.color; - args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1)); - - // the final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - var index = 0; - var lastC = 0; - args[0].replace(/%[a-z%]/g, function(match) { - if ('%%' === match) return; - index++; - if ('%c' === match) { - // we only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); - return args; -} - -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ - -function log() { - // this hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - try { - if (null == namespaces) { - exports.storage.removeItem('debug'); - } else { - exports.storage.debug = namespaces; - } - } catch(e) {} -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - var r; - try { - r = exports.storage.debug; - } catch(e) {} - return r; -} - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage(){ - try { - return window.localStorage; - } catch (e) {} -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/component.json deleted file mode 100644 index ca106372..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "debug", - "repo": "visionmedia/debug", - "description": "small debugging utility", - "version": "2.2.0", - "keywords": [ - "debug", - "log", - "debugger" - ], - "main": "browser.js", - "scripts": [ - "browser.js", - "debug.js" - ], - "dependencies": { - "rauchg/ms.js": "0.7.1" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/debug.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/debug.js deleted file mode 100644 index 7571a860..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/debug.js +++ /dev/null @@ -1,197 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = debug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = require('ms'); - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lowercased letter, i.e. "n". - */ - -exports.formatters = {}; - -/** - * Previously assigned color. - */ - -var prevColor = 0; - -/** - * Previous log timestamp. - */ - -var prevTime; - -/** - * Select a color. - * - * @return {Number} - * @api private - */ - -function selectColor() { - return exports.colors[prevColor++ % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function debug(namespace) { - - // define the `disabled` version - function disabled() { - } - disabled.enabled = false; - - // define the `enabled` version - function enabled() { - - var self = enabled; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // add the `color` if not set - if (null == self.useColors) self.useColors = exports.useColors(); - if (null == self.color && self.useColors) self.color = selectColor(); - - var args = Array.prototype.slice.call(arguments); - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %o - args = ['%o'].concat(args); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - if ('function' === typeof exports.formatArgs) { - args = exports.formatArgs.apply(self, args); - } - var logFn = enabled.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - enabled.enabled = true; - - var fn = exports.enabled(namespace) ? enabled : disabled; - - fn.namespace = namespace; - - return fn; -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - var split = (namespaces || '').split(/[\s,]+/); - var len = split.length; - - for (var i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/node.js deleted file mode 100644 index 1d392a81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/node.js +++ /dev/null @@ -1,209 +0,0 @@ - -/** - * Module dependencies. - */ - -var tty = require('tty'); -var util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -/** - * The file descriptor to write the `debug()` calls to. - * Set the `DEBUG_FD` env variable to override with another value. i.e.: - * - * $ DEBUG_FD=3 node script.js 3>debug.log - */ - -var fd = parseInt(process.env.DEBUG_FD, 10) || 2; -var stream = 1 === fd ? process.stdout : - 2 === fd ? process.stderr : - createWritableStdioStream(fd); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - var debugColors = (process.env.DEBUG_COLORS || '').trim().toLowerCase(); - if (0 === debugColors.length) { - return tty.isatty(fd); - } else { - return '0' !== debugColors - && 'no' !== debugColors - && 'false' !== debugColors - && 'disabled' !== debugColors; - } -} - -/** - * Map %o to `util.inspect()`, since Node doesn't do that out of the box. - */ - -var inspect = (4 === util.inspect.length ? - // node <= 0.8.x - function (v, colors) { - return util.inspect(v, void 0, void 0, colors); - } : - // node > 0.8.x - function (v, colors) { - return util.inspect(v, { colors: colors }); - } -); - -exports.formatters.o = function(v) { - return inspect(v, this.useColors) - .replace(/\s*\n\s*/g, ' '); -}; - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - var name = this.namespace; - - if (useColors) { - var c = this.color; - - args[0] = ' \u001b[3' + c + ';1m' + name + ' ' - + '\u001b[0m' - + args[0] + '\u001b[3' + c + 'm' - + ' +' + exports.humanize(this.diff) + '\u001b[0m'; - } else { - args[0] = new Date().toUTCString() - + ' ' + name + ' ' + args[0]; - } - return args; -} - -/** - * Invokes `console.error()` with the specified arguments. - */ - -function log() { - return stream.write(util.format.apply(this, arguments) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - if (null == namespaces) { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } else { - process.env.DEBUG = namespaces; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Copied from `node/src/node.js`. - * - * XXX: It's lame that node doesn't expose this API out-of-the-box. It also - * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. - */ - -function createWritableStdioStream (fd) { - var stream; - var tty_wrap = process.binding('tty_wrap'); - - // Note stream._type is used for test-module-load-list.js - - switch (tty_wrap.guessHandleType(fd)) { - case 'TTY': - stream = new tty.WriteStream(fd); - stream._type = 'tty'; - - // Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - case 'FILE': - var fs = require('fs'); - stream = new fs.SyncWriteStream(fd, { autoClose: false }); - stream._type = 'fs'; - break; - - case 'PIPE': - case 'TCP': - var net = require('net'); - stream = new net.Socket({ - fd: fd, - readable: false, - writable: true - }); - - // FIXME Should probably have an option in net.Socket to create a - // stream from an existing fd which is writable only. But for now - // we'll just add this hack and set the `readable` member to false. - // Test: ./node test/fixtures/echo.js < /etc/passwd - stream.readable = false; - stream.read = null; - stream._type = 'pipe'; - - // FIXME Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - default: - // Probably an error on in uv_guess_handle() - throw new Error('Implement me. Unknown stream file type!'); - } - - // For supporting legacy API we put the FD here. - stream.fd = fd; - - stream._isStdio = true; - - return stream; -} - -/** - * Enable namespaces listed in `process.env.DEBUG` initially. - */ - -exports.enable(load()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/package.json deleted file mode 100644 index f2148c9e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/debug/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "debug", - "version": "2.2.0", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" - ], - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "contributors": [ - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io" - } - ], - "license": "MIT", - "dependencies": { - "ms": "0.7.1" - }, - "devDependencies": { - "browserify": "9.0.3", - "mocha": "*" - }, - "main": "./node.js", - "browser": "./browser.js", - "component": { - "scripts": { - "debug/index.js": "browser.js", - "debug/debug.js": "debug.js" - } - }, - "gitHead": "b38458422b5aa8aa6d286b10dfe427e8a67e2b35", - "bugs": { - "url": "https://github.com/visionmedia/debug/issues" - }, - "homepage": "https://github.com/visionmedia/debug", - "_id": "debug@2.2.0", - "scripts": {}, - "_shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "_from": "debug@>=2.2.0 <2.3.0", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "dist": { - "shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "tarball": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/History.md deleted file mode 100644 index ace11715..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/History.md +++ /dev/null @@ -1,84 +0,0 @@ -1.1.0 / 2015-09-14 -================== - - * Enable strict mode in more places - * Support io.js 3.x - * Support io.js 2.x - * Support web browser loading - - Requires bundler like Browserify or webpack - -1.0.1 / 2015-04-07 -================== - - * Fix `TypeError`s when under `'use strict'` code - * Fix useless type name on auto-generated messages - * Support io.js 1.x - * Support Node.js 0.12 - -1.0.0 / 2014-09-17 -================== - - * No changes - -0.4.5 / 2014-09-09 -================== - - * Improve call speed to functions using the function wrapper - * Support Node.js 0.6 - -0.4.4 / 2014-07-27 -================== - - * Work-around v8 generating empty stack traces - -0.4.3 / 2014-07-26 -================== - - * Fix exception when global `Error.stackTraceLimit` is too low - -0.4.2 / 2014-07-19 -================== - - * Correct call site for wrapped functions and properties - -0.4.1 / 2014-07-19 -================== - - * Improve automatic message generation for function properties - -0.4.0 / 2014-07-19 -================== - - * Add `TRACE_DEPRECATION` environment variable - * Remove non-standard grey color from color output - * Support `--no-deprecation` argument - * Support `--trace-deprecation` argument - * Support `deprecate.property(fn, prop, message)` - -0.3.0 / 2014-06-16 -================== - - * Add `NO_DEPRECATION` environment variable - -0.2.0 / 2014-06-15 -================== - - * Add `deprecate.property(obj, prop, message)` - * Remove `supports-color` dependency for node.js 0.8 - -0.1.0 / 2014-06-15 -================== - - * Add `deprecate.function(fn, message)` - * Add `process.on('deprecation', fn)` emitter - * Automatically generate message when omitted from `deprecate()` - -0.0.1 / 2014-06-15 -================== - - * Fix warning for dynamic calls at singe call site - -0.0.0 / 2014-06-15 -================== - - * Initial implementation diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/LICENSE deleted file mode 100644 index 142ede38..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/Readme.md deleted file mode 100644 index 09bb9799..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/Readme.md +++ /dev/null @@ -1,281 +0,0 @@ -# depd - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Linux Build][travis-image]][travis-url] -[![Windows Build][appveyor-image]][appveyor-url] -[![Coverage Status][coveralls-image]][coveralls-url] -[![Gratipay][gratipay-image]][gratipay-url] - -Deprecate all the things - -> With great modules comes great responsibility; mark things deprecated! - -## Install - -This module is installed directly using `npm`: - -```sh -$ npm install depd -``` - -This module can also be bundled with systems like -[Browserify](http://browserify.org/) or [webpack](https://webpack.github.io/), -though by default this module will alter it's API to no longer display or -track deprecations. - -## API - -```js -var deprecate = require('depd')('my-module') -``` - -This library allows you to display deprecation messages to your users. -This library goes above and beyond with deprecation warnings by -introspection of the call stack (but only the bits that it is interested -in). - -Instead of just warning on the first invocation of a deprecated -function and never again, this module will warn on the first invocation -of a deprecated function per unique call site, making it ideal to alert -users of all deprecated uses across the code base, rather than just -whatever happens to execute first. - -The deprecation warnings from this module also include the file and line -information for the call into the module that the deprecated function was -in. - -**NOTE** this library has a similar interface to the `debug` module, and -this module uses the calling file to get the boundary for the call stacks, -so you should always create a new `deprecate` object in each file and not -within some central file. - -### depd(namespace) - -Create a new deprecate function that uses the given namespace name in the -messages and will display the call site prior to the stack entering the -file this function was called from. It is highly suggested you use the -name of your module as the namespace. - -### deprecate(message) - -Call this function from deprecated code to display a deprecation message. -This message will appear once per unique caller site. Caller site is the -first call site in the stack in a different file from the caller of this -function. - -If the message is omitted, a message is generated for you based on the site -of the `deprecate()` call and will display the name of the function called, -similar to the name displayed in a stack trace. - -### deprecate.function(fn, message) - -Call this function to wrap a given function in a deprecation message on any -call to the function. An optional message can be supplied to provide a custom -message. - -### deprecate.property(obj, prop, message) - -Call this function to wrap a given property on object in a deprecation message -on any accessing or setting of the property. An optional message can be supplied -to provide a custom message. - -The method must be called on the object where the property belongs (not -inherited from the prototype). - -If the property is a data descriptor, it will be converted to an accessor -descriptor in order to display the deprecation message. - -### process.on('deprecation', fn) - -This module will allow easy capturing of deprecation errors by emitting the -errors as the type "deprecation" on the global `process`. If there are no -listeners for this type, the errors are written to STDERR as normal, but if -there are any listeners, nothing will be written to STDERR and instead only -emitted. From there, you can write the errors in a different format or to a -logging source. - -The error represents the deprecation and is emitted only once with the same -rules as writing to STDERR. The error has the following properties: - - - `message` - This is the message given by the library - - `name` - This is always `'DeprecationError'` - - `namespace` - This is the namespace the deprecation came from - - `stack` - This is the stack of the call to the deprecated thing - -Example `error.stack` output: - -``` -DeprecationError: my-cool-module deprecated oldfunction - at Object.<anonymous> ([eval]-wrapper:6:22) - at Module._compile (module.js:456:26) - at evalScript (node.js:532:25) - at startup (node.js:80:7) - at node.js:902:3 -``` - -### process.env.NO_DEPRECATION - -As a user of modules that are deprecated, the environment variable `NO_DEPRECATION` -is provided as a quick solution to silencing deprecation warnings from being -output. The format of this is similar to that of `DEBUG`: - -```sh -$ NO_DEPRECATION=my-module,othermod node app.js -``` - -This will suppress deprecations from being output for "my-module" and "othermod". -The value is a list of comma-separated namespaces. To suppress every warning -across all namespaces, use the value `*` for a namespace. - -Providing the argument `--no-deprecation` to the `node` executable will suppress -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not suppress the deperecations given to any "deprecation" -event listeners, just the output to STDERR. - -### process.env.TRACE_DEPRECATION - -As a user of modules that are deprecated, the environment variable `TRACE_DEPRECATION` -is provided as a solution to getting more detailed location information in deprecation -warnings by including the entire stack trace. The format of this is the same as -`NO_DEPRECATION`: - -```sh -$ TRACE_DEPRECATION=my-module,othermod node app.js -``` - -This will include stack traces for deprecations being output for "my-module" and -"othermod". The value is a list of comma-separated namespaces. To trace every -warning across all namespaces, use the value `*` for a namespace. - -Providing the argument `--trace-deprecation` to the `node` executable will trace -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not trace the deperecations silenced by `NO_DEPRECATION`. - -## Display - -![message](files/message.png) - -When a user calls a function in your library that you mark deprecated, they -will see the following written to STDERR (in the given colors, similar colors -and layout to the `debug` module): - -``` -bright cyan bright yellow -| | reset cyan -| | | | -▼ ▼ ▼ ▼ -my-cool-module deprecated oldfunction [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ -| | | | -namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -If the user redirects their STDERR to a file or somewhere that does not support -colors, they see (similar layout to the `debug` module): - -``` -Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ ▲ -| | | | | -timestamp of message namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -## Examples - -### Deprecating all calls to a function - -This will display a deprecated message about "oldfunction" being deprecated -from "my-module" on STDERR. - -```js -var deprecate = require('depd')('my-cool-module') - -// message automatically derived from function name -// Object.oldfunction -exports.oldfunction = deprecate.function(function oldfunction() { - // all calls to function are deprecated -}) - -// specific message -exports.oldfunction = deprecate.function(function () { - // all calls to function are deprecated -}, 'oldfunction') -``` - -### Conditionally deprecating a function call - -This will display a deprecated message about "weirdfunction" being deprecated -from "my-module" on STDERR when called with less than 2 arguments. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } -} -``` - -When calling `deprecate` as a function, the warning is counted per call site -within your own module, so you can display different deprecations depending -on different situations and the users will still get all the warnings: - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } else if (typeof arguments[0] !== 'string') { - // calls with non-string first argument are deprecated - deprecate('weirdfunction non-string first arg') - } -} -``` - -### Deprecating property access - -This will display a deprecated message about "oldprop" being deprecated -from "my-module" on STDERR when accessed. A deprecation will be displayed -when setting the value and when getting the value. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.oldprop = 'something' - -// message automatically derives from property name -deprecate.property(exports, 'oldprop') - -// explicit message -deprecate.property(exports, 'oldprop', 'oldprop >= 0.10') -``` - -## License - -[MIT](LICENSE) - -[npm-version-image]: https://img.shields.io/npm/v/depd.svg -[npm-downloads-image]: https://img.shields.io/npm/dm/depd.svg -[npm-url]: https://npmjs.org/package/depd -[travis-image]: https://img.shields.io/travis/dougwilson/nodejs-depd/master.svg?label=linux -[travis-url]: https://travis-ci.org/dougwilson/nodejs-depd -[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/nodejs-depd/master.svg?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/nodejs-depd -[coveralls-image]: https://img.shields.io/coveralls/dougwilson/nodejs-depd/master.svg -[coveralls-url]: https://coveralls.io/r/dougwilson/nodejs-depd?branch=master -[node-image]: https://img.shields.io/node/v/depd.svg -[node-url]: http://nodejs.org/download/ -[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg -[gratipay-url]: https://www.gratipay.com/dougwilson/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/index.js deleted file mode 100644 index fddcae87..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/index.js +++ /dev/null @@ -1,521 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var callSiteToString = require('./lib/compat').callSiteToString -var eventListenerCount = require('./lib/compat').eventListenerCount -var relative = require('path').relative - -/** - * Module exports. - */ - -module.exports = depd - -/** - * Get the path to base files on. - */ - -var basePath = process.cwd() - -/** - * Determine if namespace is contained in the string. - */ - -function containsNamespace(str, namespace) { - var val = str.split(/[ ,]+/) - - namespace = String(namespace).toLowerCase() - - for (var i = 0 ; i < val.length; i++) { - if (!(str = val[i])) continue; - - // namespace contained - if (str === '*' || str.toLowerCase() === namespace) { - return true - } - } - - return false -} - -/** - * Convert a data descriptor to accessor descriptor. - */ - -function convertDataDescriptorToAccessor(obj, prop, message) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - var value = descriptor.value - - descriptor.get = function getter() { return value } - - if (descriptor.writable) { - descriptor.set = function setter(val) { return value = val } - } - - delete descriptor.value - delete descriptor.writable - - Object.defineProperty(obj, prop, descriptor) - - return descriptor -} - -/** - * Create arguments string to keep arity. - */ - -function createArgumentsString(arity) { - var str = '' - - for (var i = 0; i < arity; i++) { - str += ', arg' + i - } - - return str.substr(2) -} - -/** - * Create stack string from stack. - */ - -function createStackString(stack) { - var str = this.name + ': ' + this.namespace - - if (this.message) { - str += ' deprecated ' + this.message - } - - for (var i = 0; i < stack.length; i++) { - str += '\n at ' + callSiteToString(stack[i]) - } - - return str -} - -/** - * Create deprecate for namespace in caller. - */ - -function depd(namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - var stack = getStack() - var site = callSiteLocation(stack[1]) - var file = site[0] - - function deprecate(message) { - // call to self as log - log.call(deprecate, message) - } - - deprecate._file = file - deprecate._ignored = isignored(namespace) - deprecate._namespace = namespace - deprecate._traced = istraced(namespace) - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Determine if namespace is ignored. - */ - -function isignored(namespace) { - /* istanbul ignore next: tested in a child processs */ - if (process.noDeprecation) { - // --no-deprecation support - return true - } - - var str = process.env.NO_DEPRECATION || '' - - // namespace ignored - return containsNamespace(str, namespace) -} - -/** - * Determine if namespace is traced. - */ - -function istraced(namespace) { - /* istanbul ignore next: tested in a child processs */ - if (process.traceDeprecation) { - // --trace-deprecation support - return true - } - - var str = process.env.TRACE_DEPRECATION || '' - - // namespace traced - return containsNamespace(str, namespace) -} - -/** - * Display deprecation message. - */ - -function log(message, site) { - var haslisteners = eventListenerCount(process, 'deprecation') !== 0 - - // abort early if no destination - if (!haslisteners && this._ignored) { - return - } - - var caller - var callFile - var callSite - var i = 0 - var seen = false - var stack = getStack() - var file = this._file - - if (site) { - // provided site - callSite = callSiteLocation(stack[1]) - callSite.name = site.name - file = callSite[0] - } else { - // get call site - i = 2 - site = callSiteLocation(stack[i]) - callSite = site - } - - // get caller of deprecated thing in relation to file - for (; i < stack.length; i++) { - caller = callSiteLocation(stack[i]) - callFile = caller[0] - - if (callFile === file) { - seen = true - } else if (callFile === this._file) { - file = this._file - } else if (seen) { - break - } - } - - var key = caller - ? site.join(':') + '__' + caller.join(':') - : undefined - - if (key !== undefined && key in this._warned) { - // already warned - return - } - - this._warned[key] = true - - // generate automatic message from call site - if (!message) { - message = callSite === site || !callSite.name - ? defaultMessage(site) - : defaultMessage(callSite) - } - - // emit deprecation if listeners exist - if (haslisteners) { - var err = DeprecationError(this._namespace, message, stack.slice(i)) - process.emit('deprecation', err) - return - } - - // format and write message - var format = process.stderr.isTTY - ? formatColor - : formatPlain - var msg = format.call(this, message, caller, stack.slice(i)) - process.stderr.write(msg + '\n', 'utf8') - - return -} - -/** - * Get call site location as array. - */ - -function callSiteLocation(callSite) { - var file = callSite.getFileName() || '<anonymous>' - var line = callSite.getLineNumber() - var colm = callSite.getColumnNumber() - - if (callSite.isEval()) { - file = callSite.getEvalOrigin() + ', ' + file - } - - var site = [file, line, colm] - - site.callSite = callSite - site.name = callSite.getFunctionName() - - return site -} - -/** - * Generate a default message from the site. - */ - -function defaultMessage(site) { - var callSite = site.callSite - var funcName = site.name - - // make useful anonymous name - if (!funcName) { - funcName = '<anonymous@' + formatLocation(site) + '>' - } - - var context = callSite.getThis() - var typeName = context && callSite.getTypeName() - - // ignore useless type name - if (typeName === 'Object') { - typeName = undefined - } - - // make useful type name - if (typeName === 'Function') { - typeName = context.name || typeName - } - - return typeName && callSite.getMethodName() - ? typeName + '.' + funcName - : funcName -} - -/** - * Format deprecation message without color. - */ - -function formatPlain(msg, caller, stack) { - var timestamp = new Date().toUTCString() - - var formatted = timestamp - + ' ' + this._namespace - + ' deprecated ' + msg - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n at ' + callSiteToString(stack[i]) - } - - return formatted - } - - if (caller) { - formatted += ' at ' + formatLocation(caller) - } - - return formatted -} - -/** - * Format deprecation message with color. - */ - -function formatColor(msg, caller, stack) { - var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' // bold cyan - + ' \x1b[33;1mdeprecated\x1b[22;39m' // bold yellow - + ' \x1b[0m' + msg + '\x1b[39m' // reset - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n \x1b[36mat ' + callSiteToString(stack[i]) + '\x1b[39m' // cyan - } - - return formatted - } - - if (caller) { - formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan - } - - return formatted -} - -/** - * Format call site location. - */ - -function formatLocation(callSite) { - return relative(basePath, callSite[0]) - + ':' + callSite[1] - + ':' + callSite[2] -} - -/** - * Get the stack as array of call sites. - */ - -function getStack() { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = Math.max(10, limit) - - // capture the stack - Error.captureStackTrace(obj) - - // slice this function off the top - var stack = obj.stack.slice(1) - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack -} - -/** - * Capture call site stack from v8. - */ - -function prepareObjectStackTrace(obj, stack) { - return stack -} - -/** - * Return a wrapped function in a deprecation message. - */ - -function wrapfunction(fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - var args = createArgumentsString(fn.length) - var deprecate = this - var stack = getStack() - var site = callSiteLocation(stack[1]) - - site.name = fn.name - - var deprecatedfn = eval('(function (' + args + ') {\n' - + '"use strict"\n' - + 'log.call(deprecate, message, site)\n' - + 'return fn.apply(this, arguments)\n' - + '})') - - return deprecatedfn -} - -/** - * Wrap property in a deprecation message. - */ - -function wrapproperty(obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } - - var deprecate = this - var stack = getStack() - var site = callSiteLocation(stack[1]) - - // set site name - site.name = prop - - // convert data descriptor - if ('value' in descriptor) { - descriptor = convertDataDescriptorToAccessor(obj, prop, message) - } - - var get = descriptor.get - var set = descriptor.set - - // wrap getter - if (typeof get === 'function') { - descriptor.get = function getter() { - log.call(deprecate, message, site) - return get.apply(this, arguments) - } - } - - // wrap setter - if (typeof set === 'function') { - descriptor.set = function setter() { - log.call(deprecate, message, site) - return set.apply(this, arguments) - } - } - - Object.defineProperty(obj, prop, descriptor) -} - -/** - * Create DeprecationError for deprecation - */ - -function DeprecationError(namespace, message, stack) { - var error = new Error() - var stackString - - Object.defineProperty(error, 'constructor', { - value: DeprecationError - }) - - Object.defineProperty(error, 'message', { - configurable: true, - enumerable: false, - value: message, - writable: true - }) - - Object.defineProperty(error, 'name', { - enumerable: false, - configurable: true, - value: 'DeprecationError', - writable: true - }) - - Object.defineProperty(error, 'namespace', { - configurable: true, - enumerable: false, - value: namespace, - writable: true - }) - - Object.defineProperty(error, 'stack', { - configurable: true, - enumerable: false, - get: function () { - if (stackString !== undefined) { - return stackString - } - - // prepare stack trace - return stackString = createStackString.call(this, stack) - }, - set: function setter(val) { - stackString = val - } - }) - - return error -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/browser/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/browser/index.js deleted file mode 100644 index f464e052..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/browser/index.js +++ /dev/null @@ -1,79 +0,0 @@ -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = depd - -/** - * Create deprecate for namespace in caller. - */ - -function depd(namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - function deprecate(message) { - // no-op in browser - } - - deprecate._file = undefined - deprecate._ignored = true - deprecate._namespace = namespace - deprecate._traced = false - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Return a wrapped function in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapfunction(fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - return fn -} - -/** - * Wrap property in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapproperty(obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } - - return -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/buffer-concat.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/buffer-concat.js deleted file mode 100644 index 4b733810..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/buffer-concat.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! - * depd - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = bufferConcat - -/** - * Concatenate an array of Buffers. - */ - -function bufferConcat(bufs) { - var length = 0 - - for (var i = 0, len = bufs.length; i < len; i++) { - length += bufs[i].length - } - - var buf = new Buffer(length) - var pos = 0 - - for (var i = 0, len = bufs.length; i < len; i++) { - bufs[i].copy(buf, pos) - pos += bufs[i].length - } - - return buf -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/callsite-tostring.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/callsite-tostring.js deleted file mode 100644 index 9ecef346..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/callsite-tostring.js +++ /dev/null @@ -1,103 +0,0 @@ -/*! - * depd - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = callSiteToString - -/** - * Format a CallSite file location to a string. - */ - -function callSiteFileLocation(callSite) { - var fileName - var fileLocation = '' - - if (callSite.isNative()) { - fileLocation = 'native' - } else if (callSite.isEval()) { - fileName = callSite.getScriptNameOrSourceURL() - if (!fileName) { - fileLocation = callSite.getEvalOrigin() - } - } else { - fileName = callSite.getFileName() - } - - if (fileName) { - fileLocation += fileName - - var lineNumber = callSite.getLineNumber() - if (lineNumber != null) { - fileLocation += ':' + lineNumber - - var columnNumber = callSite.getColumnNumber() - if (columnNumber) { - fileLocation += ':' + columnNumber - } - } - } - - return fileLocation || 'unknown source' -} - -/** - * Format a CallSite to a string. - */ - -function callSiteToString(callSite) { - var addSuffix = true - var fileLocation = callSiteFileLocation(callSite) - var functionName = callSite.getFunctionName() - var isConstructor = callSite.isConstructor() - var isMethodCall = !(callSite.isToplevel() || isConstructor) - var line = '' - - if (isMethodCall) { - var methodName = callSite.getMethodName() - var typeName = getConstructorName(callSite) - - if (functionName) { - if (typeName && functionName.indexOf(typeName) !== 0) { - line += typeName + '.' - } - - line += functionName - - if (methodName && functionName.lastIndexOf('.' + methodName) !== functionName.length - methodName.length - 1) { - line += ' [as ' + methodName + ']' - } - } else { - line += typeName + '.' + (methodName || '<anonymous>') - } - } else if (isConstructor) { - line += 'new ' + (functionName || '<anonymous>') - } else if (functionName) { - line += functionName - } else { - addSuffix = false - line += fileLocation - } - - if (addSuffix) { - line += ' (' + fileLocation + ')' - } - - return line -} - -/** - * Get constructor name of reviver. - */ - -function getConstructorName(obj) { - var receiver = obj.receiver - return (receiver.constructor && receiver.constructor.name) || null -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/event-listener-count.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/event-listener-count.js deleted file mode 100644 index a05fceb7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/event-listener-count.js +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = eventListenerCount - -/** - * Get the count of listeners on an event emitter of a specific type. - */ - -function eventListenerCount(emitter, type) { - return emitter.listeners(type).length -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/index.js deleted file mode 100644 index aa3c1de4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/lib/compat/index.js +++ /dev/null @@ -1,84 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var Buffer = require('buffer') -var EventEmitter = require('events').EventEmitter - -/** - * Module exports. - * @public - */ - -lazyProperty(module.exports, 'bufferConcat', function bufferConcat() { - return Buffer.concat || require('./buffer-concat') -}) - -lazyProperty(module.exports, 'callSiteToString', function callSiteToString() { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - function prepareObjectStackTrace(obj, stack) { - return stack - } - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = 2 - - // capture the stack - Error.captureStackTrace(obj) - - // slice the stack - var stack = obj.stack.slice() - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack[0].toString ? toString : require('./callsite-tostring') -}) - -lazyProperty(module.exports, 'eventListenerCount', function eventListenerCount() { - return EventEmitter.listenerCount || require('./event-listener-count') -}) - -/** - * Define a lazy property. - */ - -function lazyProperty(obj, prop, getter) { - function get() { - var val = getter() - - Object.defineProperty(obj, prop, { - configurable: true, - enumerable: true, - value: val - }) - - return val - } - - Object.defineProperty(obj, prop, { - configurable: true, - enumerable: true, - get: get - }) -} - -/** - * Call toString() on the obj - */ - -function toString(obj) { - return obj.toString() -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/package.json deleted file mode 100644 index edfc0b2a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/depd/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "depd", - "description": "Deprecate all the things", - "version": "1.1.0", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "keywords": [ - "deprecate", - "deprecated" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/dougwilson/nodejs-depd.git" - }, - "browser": "lib/browser/index.js", - "devDependencies": { - "benchmark": "1.0.0", - "beautify-benchmark": "0.2.4", - "istanbul": "0.3.5", - "mocha": "~1.21.5" - }, - "files": [ - "lib/", - "History.md", - "LICENSE", - "index.js", - "Readme.md" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "test": "mocha --reporter spec --bail test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --no-exit test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/" - }, - "gitHead": "78c659de20283e3a6bee92bda455e6daff01686a", - "bugs": { - "url": "https://github.com/dougwilson/nodejs-depd/issues" - }, - "homepage": "https://github.com/dougwilson/nodejs-depd", - "_id": "depd@1.1.0", - "_shasum": "e1bd82c6aab6ced965b97b88b17ed3e528ca18c3", - "_from": "depd@>=1.1.0 <1.2.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "e1bd82c6aab6ced965b97b88b17ed3e528ca18c3", - "tarball": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/README.md deleted file mode 100644 index 6474bc3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# Destroy - -[![NPM version][npm-image]][npm-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] -[![Gittip][gittip-image]][gittip-url] - -Destroy a stream. - -This module is meant to ensure a stream gets destroyed, handling different APIs -and Node.js bugs. - -## API - -```js -var destroy = require('destroy') -``` - -### destroy(stream) - -Destroy the given stream. In most cases, this is identical to a simple -`stream.destroy()` call. The rules are as follows for a given stream: - - 1. If the `stream` is an instance of `ReadStream`, then call `stream.destroy()` - and add a listener to the `open` event to call `stream.close()` if it is - fired. This is for a Node.js bug that will leak a file descriptor if - `.destroy()` is called before `open`. - 2. If the `stream` is not an instance of `Stream`, then nothing happens. - 3. If the `stream` has a `.destroy()` method, then call it. - -The function returns the `stream` passed in as the argument. - -## Example - -```js -var destroy = require('destroy') - -var fs = require('fs') -var stream = fs.createReadStream('package.json') - -// ... and later -destroy(stream) -``` - -[npm-image]: https://img.shields.io/npm/v/destroy.svg?style=flat-square -[npm-url]: https://npmjs.org/package/destroy -[github-tag]: http://img.shields.io/github/tag/stream-utils/destroy.svg?style=flat-square -[github-url]: https://github.com/stream-utils/destroy/tags -[travis-image]: https://img.shields.io/travis/stream-utils/destroy.svg?style=flat-square -[travis-url]: https://travis-ci.org/stream-utils/destroy -[coveralls-image]: https://img.shields.io/coveralls/stream-utils/destroy.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/stream-utils/destroy?branch=master -[license-image]: http://img.shields.io/npm/l/destroy.svg?style=flat-square -[license-url]: LICENSE.md -[downloads-image]: http://img.shields.io/npm/dm/destroy.svg?style=flat-square -[downloads-url]: https://npmjs.org/package/destroy -[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square -[gittip-url]: https://www.gittip.com/jonathanong/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/index.js deleted file mode 100644 index 6da2d26e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/index.js +++ /dev/null @@ -1,75 +0,0 @@ -/*! - * destroy - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var ReadStream = require('fs').ReadStream -var Stream = require('stream') - -/** - * Module exports. - * @public - */ - -module.exports = destroy - -/** - * Destroy a stream. - * - * @param {object} stream - * @public - */ - -function destroy(stream) { - if (stream instanceof ReadStream) { - return destroyReadStream(stream) - } - - if (!(stream instanceof Stream)) { - return stream - } - - if (typeof stream.destroy === 'function') { - stream.destroy() - } - - return stream -} - -/** - * Destroy a ReadStream. - * - * @param {object} stream - * @private - */ - -function destroyReadStream(stream) { - stream.destroy() - - if (typeof stream.close === 'function') { - // node.js core bug work-around - stream.on('open', onOpenClose) - } - - return stream -} - -/** - * On open handler to close stream. - * @private - */ - -function onOpenClose() { - if (typeof this.fd === 'number') { - // actually close down the fd - this.close() - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/package.json deleted file mode 100644 index ec1ed98a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/destroy/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "destroy", - "description": "destroy a stream if possible", - "version": "1.0.4", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/stream-utils/destroy.git" - }, - "devDependencies": { - "istanbul": "0.4.2", - "mocha": "2.3.4" - }, - "scripts": { - "test": "mocha --reporter spec", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" - }, - "files": [ - "index.js", - "LICENSE" - ], - "keywords": [ - "stream", - "streams", - "destroy", - "cleanup", - "leak", - "fd" - ], - "gitHead": "86edea01456f5fa1027f6a47250c34c713cbcc3b", - "bugs": { - "url": "https://github.com/stream-utils/destroy/issues" - }, - "homepage": "https://github.com/stream-utils/destroy", - "_id": "destroy@1.0.4", - "_shasum": "978857442c44749e4206613e37946205826abd80", - "_from": "destroy@>=1.0.4 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "978857442c44749e4206613e37946205826abd80", - "tarball": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/HISTORY.md deleted file mode 100644 index bd0f26df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/HISTORY.md +++ /dev/null @@ -1,71 +0,0 @@ -1.7.0 / 2015-06-08 -================== - - * Always include entity length in ETags for hash length extensions - * Generate non-Stats ETags using MD5 only (no longer CRC32) - * Improve stat performance by removing hashing - * Remove base64 padding in ETags to shorten - * Use MD5 instead of MD4 in weak ETags over 1KB - -1.6.0 / 2015-05-10 -================== - - * Improve support for JXcore - * Remove requirement of `atime` in the stats object - * Support "fake" stats objects in environments without `fs` - -1.5.1 / 2014-11-19 -================== - - * deps: crc@3.2.1 - - Minor fixes - -1.5.0 / 2014-10-14 -================== - - * Improve string performance - * Slightly improve speed for weak ETags over 1KB - -1.4.0 / 2014-09-21 -================== - - * Support "fake" stats objects - * Support Node.js 0.6 - -1.3.1 / 2014-09-14 -================== - - * Use the (new and improved) `crc` for crc32 - -1.3.0 / 2014-08-29 -================== - - * Default strings to strong ETags - * Improve speed for weak ETags over 1KB - -1.2.1 / 2014-08-29 -================== - - * Use the (much faster) `buffer-crc32` for crc32 - -1.2.0 / 2014-08-24 -================== - - * Add support for file stat objects - -1.1.0 / 2014-08-24 -================== - - * Add fast-path for empty entity - * Add weak ETag generation - * Shrink size of generated ETags - -1.0.1 / 2014-08-24 -================== - - * Fix behavior of string containing Unicode - -1.0.0 / 2014-05-18 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/LICENSE deleted file mode 100644 index 142ede38..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/README.md deleted file mode 100644 index 8da9e059..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/README.md +++ /dev/null @@ -1,165 +0,0 @@ -# etag - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create simple ETags - -## Installation - -```sh -$ npm install etag -``` - -## API - -```js -var etag = require('etag') -``` - -### etag(entity, [options]) - -Generate a strong ETag for the given entity. This should be the complete -body of the entity. Strings, `Buffer`s, and `fs.Stats` are accepted. By -default, a strong ETag is generated except for `fs.Stats`, which will -generate a weak ETag (this can be overwritten by `options.weak`). - -```js -res.setHeader('ETag', etag(body)) -``` - -#### Options - -`etag` accepts these properties in the options object. - -##### weak - -Specifies if the generated ETag will include the weak validator mark (that -is, the leading `W/`). The actual entity tag is the same. The default value -is `false`, unless the `entity` is `fs.Stats`, in which case it is `true`. - -## Testing - -```sh -$ npm test -``` - -## Benchmark - -```bash -$ npm run-script bench - -> etag@1.6.0 bench nodejs-etag -> node benchmark/index.js - - http_parser@1.0 - node@0.10.33 - v8@3.14.5.9 - ares@1.9.0-DEV - uv@0.10.29 - zlib@1.2.3 - modules@11 - openssl@1.0.1j - -> node benchmark/body0-100b.js - - 100B body - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* buffer - strong x 289,198 ops/sec ±1.09% (190 runs sampled) -* buffer - weak x 287,838 ops/sec ±0.91% (189 runs sampled) -* string - strong x 284,586 ops/sec ±1.05% (192 runs sampled) -* string - weak x 287,439 ops/sec ±0.82% (192 runs sampled) - -> node benchmark/body1-1kb.js - - 1KB body - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* buffer - strong x 212,423 ops/sec ±0.75% (193 runs sampled) -* buffer - weak x 211,871 ops/sec ±0.74% (194 runs sampled) - string - strong x 205,291 ops/sec ±0.86% (194 runs sampled) - string - weak x 208,463 ops/sec ±0.79% (192 runs sampled) - -> node benchmark/body2-5kb.js - - 5KB body - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* buffer - strong x 92,901 ops/sec ±0.58% (195 runs sampled) -* buffer - weak x 93,045 ops/sec ±0.65% (192 runs sampled) - string - strong x 89,621 ops/sec ±0.68% (194 runs sampled) - string - weak x 90,070 ops/sec ±0.70% (196 runs sampled) - -> node benchmark/body3-10kb.js - - 10KB body - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* buffer - strong x 54,220 ops/sec ±0.85% (192 runs sampled) -* buffer - weak x 54,069 ops/sec ±0.83% (191 runs sampled) - string - strong x 53,078 ops/sec ±0.53% (194 runs sampled) - string - weak x 53,849 ops/sec ±0.47% (197 runs sampled) - -> node benchmark/body4-100kb.js - - 100KB body - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* buffer - strong x 6,673 ops/sec ±0.15% (197 runs sampled) -* buffer - weak x 6,716 ops/sec ±0.12% (198 runs sampled) - string - strong x 6,357 ops/sec ±0.14% (197 runs sampled) - string - weak x 6,344 ops/sec ±0.21% (197 runs sampled) - -> node benchmark/stats.js - - stats - - 1 test completed. - 2 tests completed. - 3 tests completed. - 4 tests completed. - -* real - strong x 1,671,989 ops/sec ±0.13% (197 runs sampled) -* real - weak x 1,681,297 ops/sec ±0.12% (198 runs sampled) - fake - strong x 927,063 ops/sec ±0.14% (198 runs sampled) - fake - weak x 914,461 ops/sec ±0.41% (191 runs sampled) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/etag.svg -[npm-url]: https://npmjs.org/package/etag -[node-version-image]: https://img.shields.io/node/v/etag.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/etag/master.svg -[travis-url]: https://travis-ci.org/jshttp/etag -[coveralls-image]: https://img.shields.io/coveralls/jshttp/etag/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/etag?branch=master -[downloads-image]: https://img.shields.io/npm/dm/etag.svg -[downloads-url]: https://npmjs.org/package/etag diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/index.js deleted file mode 100644 index b582c84c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/index.js +++ /dev/null @@ -1,132 +0,0 @@ -/*! - * etag - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = etag - -/** - * Module dependencies. - * @private - */ - -var crypto = require('crypto') -var Stats = require('fs').Stats - -/** - * Module variables. - * @private - */ - -var base64PadCharRegExp = /=+$/ -var toString = Object.prototype.toString - -/** - * Generate an entity tag. - * - * @param {Buffer|string} entity - * @return {string} - * @private - */ - -function entitytag(entity) { - if (entity.length === 0) { - // fast-path empty - return '"0-1B2M2Y8AsgTpgAmY7PhCfg"' - } - - // compute hash of entity - var hash = crypto - .createHash('md5') - .update(entity, 'utf8') - .digest('base64') - .replace(base64PadCharRegExp, '') - - // compute length of entity - var len = typeof entity === 'string' - ? Buffer.byteLength(entity, 'utf8') - : entity.length - - return '"' + len.toString(16) + '-' + hash + '"' -} - -/** - * Create a simple ETag. - * - * @param {string|Buffer|Stats} entity - * @param {object} [options] - * @param {boolean} [options.weak] - * @return {String} - * @public - */ - -function etag(entity, options) { - if (entity == null) { - throw new TypeError('argument entity is required') - } - - // support fs.Stats object - var isStats = isstats(entity) - var weak = options && typeof options.weak === 'boolean' - ? options.weak - : isStats - - // validate argument - if (!isStats && typeof entity !== 'string' && !Buffer.isBuffer(entity)) { - throw new TypeError('argument entity must be string, Buffer, or fs.Stats') - } - - // generate entity tag - var tag = isStats - ? stattag(entity) - : entitytag(entity) - - return weak - ? 'W/' + tag - : tag -} - -/** - * Determine if object is a Stats object. - * - * @param {object} obj - * @return {boolean} - * @api private - */ - -function isstats(obj) { - // genuine fs.Stats - if (typeof Stats === 'function' && obj instanceof Stats) { - return true - } - - // quack quack - return obj && typeof obj === 'object' - && 'ctime' in obj && toString.call(obj.ctime) === '[object Date]' - && 'mtime' in obj && toString.call(obj.mtime) === '[object Date]' - && 'ino' in obj && typeof obj.ino === 'number' - && 'size' in obj && typeof obj.size === 'number' -} - -/** - * Generate a tag for a stat. - * - * @param {object} stat - * @return {string} - * @private - */ - -function stattag(stat) { - var mtime = stat.mtime.getTime().toString(16) - var size = stat.size.toString(16) - - return '"' + size + '-' + mtime + '"' -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/package.json deleted file mode 100644 index b1b5d225..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/etag/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "etag", - "description": "Create simple ETags", - "version": "1.7.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "David Björklund", - "email": "david.bjorklund@gmail.com" - } - ], - "license": "MIT", - "keywords": [ - "etag", - "http", - "res" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/etag.git" - }, - "devDependencies": { - "benchmark": "1.0.0", - "beautify-benchmark": "0.2.4", - "istanbul": "0.3.14", - "mocha": "~1.21.4", - "seedrandom": "2.3.11" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "a511f5c8c930fd9546dbd88acb080f96bc788cfc", - "bugs": { - "url": "https://github.com/jshttp/etag/issues" - }, - "homepage": "https://github.com/jshttp/etag", - "_id": "etag@1.7.0", - "_shasum": "03d30b5f67dd6e632d2945d30d6652731a34d5d8", - "_from": "etag@>=1.7.0 <1.8.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "03d30b5f67dd6e632d2945d30d6652731a34d5d8", - "tarball": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/HISTORY.md deleted file mode 100644 index 3c95fbb9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/HISTORY.md +++ /dev/null @@ -1,38 +0,0 @@ -0.3.0 / 2015-05-12 -================== - - * Add weak `ETag` matching support - -0.2.4 / 2014-09-07 -================== - - * Support Node.js 0.6 - -0.2.3 / 2014-09-07 -================== - - * Move repository to jshttp - -0.2.2 / 2014-02-19 -================== - - * Revert "Fix for blank page on Safari reload" - -0.2.1 / 2014-01-29 -================== - - * Fix for blank page on Safari reload - -0.2.0 / 2013-08-11 -================== - - * Return stale for `Cache-Control: no-cache` - -0.1.0 / 2012-06-15 -================== - * Add `If-None-Match: *` support - -0.0.1 / 2012-06-10 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/LICENSE deleted file mode 100644 index f5273943..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca> - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/README.md deleted file mode 100644 index 0813e309..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# fresh - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -HTTP response freshness testing - -## Installation - -``` -$ npm install fresh -``` - -## API - -```js -var fresh = require('fresh') -``` - -### fresh(req, res) - - Check freshness of `req` and `res` headers. - - When the cache is "fresh" __true__ is returned, - otherwise __false__ is returned to indicate that - the cache is now stale. - -## Example - -```js -var req = { 'if-none-match': 'tobi' }; -var res = { 'etag': 'luna' }; -fresh(req, res); -// => false - -var req = { 'if-none-match': 'tobi' }; -var res = { 'etag': 'tobi' }; -fresh(req, res); -// => true -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/fresh.svg -[npm-url]: https://npmjs.org/package/fresh -[node-version-image]: https://img.shields.io/node/v/fresh.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/fresh/master.svg -[travis-url]: https://travis-ci.org/jshttp/fresh -[coveralls-image]: https://img.shields.io/coveralls/jshttp/fresh/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/fresh?branch=master -[downloads-image]: https://img.shields.io/npm/dm/fresh.svg -[downloads-url]: https://npmjs.org/package/fresh diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/index.js deleted file mode 100644 index a9008736..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/index.js +++ /dev/null @@ -1,57 +0,0 @@ - -/** - * Expose `fresh()`. - */ - -module.exports = fresh; - -/** - * Check freshness of `req` and `res` headers. - * - * When the cache is "fresh" __true__ is returned, - * otherwise __false__ is returned to indicate that - * the cache is now stale. - * - * @param {Object} req - * @param {Object} res - * @return {Boolean} - * @api public - */ - -function fresh(req, res) { - // defaults - var etagMatches = true; - var notModified = true; - - // fields - var modifiedSince = req['if-modified-since']; - var noneMatch = req['if-none-match']; - var lastModified = res['last-modified']; - var etag = res['etag']; - var cc = req['cache-control']; - - // unconditional request - if (!modifiedSince && !noneMatch) return false; - - // check for no-cache cache request directive - if (cc && cc.indexOf('no-cache') !== -1) return false; - - // parse if-none-match - if (noneMatch) noneMatch = noneMatch.split(/ *, */); - - // if-none-match - if (noneMatch) { - etagMatches = noneMatch.some(function (match) { - return match === '*' || match === etag || match === 'W/' + etag; - }); - } - - // if-modified-since - if (modifiedSince) { - modifiedSince = new Date(modifiedSince); - lastModified = new Date(lastModified); - notModified = lastModified <= modifiedSince; - } - - return !! (etagMatches && notModified); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/package.json deleted file mode 100644 index c0fc6222..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/fresh/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "name": "fresh", - "description": "HTTP response freshness testing", - "version": "0.3.0", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": "http://tjholowaychuk.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "keywords": [ - "fresh", - "http", - "conditional", - "cache" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/fresh.git" - }, - "devDependencies": { - "istanbul": "0.3.9", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "14616c9748368ca08cd6a955dd88ab659b778634", - "bugs": { - "url": "https://github.com/jshttp/fresh/issues" - }, - "homepage": "https://github.com/jshttp/fresh", - "_id": "fresh@0.3.0", - "_shasum": "651f838e22424e7566de161d8358caa199f83d4f", - "_from": "fresh@0.3.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "jonathanong", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "651f838e22424e7566de161d8358caa199f83d4f", - "tarball": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/HISTORY.md deleted file mode 100644 index 4c7087df..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/HISTORY.md +++ /dev/null @@ -1,76 +0,0 @@ -2015-02-02 / 1.3.1 -================== - - * Fix regression where status can be overwritten in `createError` `props` - -2015-02-01 / 1.3.0 -================== - - * Construct errors using defined constructors from `createError` - * Fix error names that are not identifiers - - `createError["I'mateapot"]` is now `createError.ImATeapot` - * Set a meaningful `name` property on constructed errors - -2014-12-09 / 1.2.8 -================== - - * Fix stack trace from exported function - * Remove `arguments.callee` usage - -2014-10-14 / 1.2.7 -================== - - * Remove duplicate line - -2014-10-02 / 1.2.6 -================== - - * Fix `expose` to be `true` for `ClientError` constructor - -2014-09-28 / 1.2.5 -================== - - * deps: statuses@1 - -2014-09-21 / 1.2.4 -================== - - * Fix dependency version to work with old `npm`s - -2014-09-21 / 1.2.3 -================== - - * deps: statuses@~1.1.0 - -2014-09-21 / 1.2.2 -================== - - * Fix publish error - -2014-09-21 / 1.2.1 -================== - - * Support Node.js 0.6 - * Use `inherits` instead of `util` - -2014-09-09 / 1.2.0 -================== - - * Fix the way inheriting functions - * Support `expose` being provided in properties argument - -2014-09-08 / 1.1.0 -================== - - * Default status to 500 - * Support provided `error` to extend - -2014-09-08 / 1.0.1 -================== - - * Fix accepting string message - -2014-09-08 / 1.0.0 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/README.md deleted file mode 100644 index 520271ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/README.md +++ /dev/null @@ -1,63 +0,0 @@ -# http-errors - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create HTTP errors for Express, Koa, Connect, etc. with ease. - -## Example - -```js -var createError = require('http-errors'); - -app.use(function (req, res, next) { - if (!req.user) return next(createError(401, 'Please login to view this page.')); - next(); -}) -``` - -## API - -This is the current API, currently extracted from Koa and subject to change. - -### Error Properties - -- `message` -- `status` and `statusCode` - the status code of the error, defaulting to `500` - -### createError([status], [message], [properties]) - -```js -var err = createError(404, 'This video does not exist!'); -``` - -- `status: 500` - the status code as a number -- `message` - the message of the error, defaulting to node's text for that status code. -- `properties` - custom properties to attach to the object - -### new createError\[code || name\](\[msg]\)) - -```js -var err = new createError.NotFound(); -``` - -- `code` - the status code as a number -- `name` - the name of the error as a "bumpy case", i.e. `NotFound` or `InternalServerError`. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/http-errors.svg?style=flat -[npm-url]: https://npmjs.org/package/http-errors -[node-version-image]: https://img.shields.io/node/v/http-errors.svg?style=flat -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/http-errors.svg?style=flat -[travis-url]: https://travis-ci.org/jshttp/http-errors -[coveralls-image]: https://img.shields.io/coveralls/jshttp/http-errors.svg?style=flat -[coveralls-url]: https://coveralls.io/r/jshttp/http-errors -[downloads-image]: https://img.shields.io/npm/dm/http-errors.svg?style=flat -[downloads-url]: https://npmjs.org/package/http-errors diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/index.js deleted file mode 100644 index d84b1140..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/index.js +++ /dev/null @@ -1,120 +0,0 @@ - -var statuses = require('statuses'); -var inherits = require('inherits'); - -function toIdentifier(str) { - return str.split(' ').map(function (token) { - return token.slice(0, 1).toUpperCase() + token.slice(1) - }).join('').replace(/[^ _0-9a-z]/gi, '') -} - -exports = module.exports = function httpError() { - // so much arity going on ~_~ - var err; - var msg; - var status = 500; - var props = {}; - for (var i = 0; i < arguments.length; i++) { - var arg = arguments[i]; - if (arg instanceof Error) { - err = arg; - status = err.status || err.statusCode || status; - continue; - } - switch (typeof arg) { - case 'string': - msg = arg; - break; - case 'number': - status = arg; - break; - case 'object': - props = arg; - break; - } - } - - if (typeof status !== 'number' || !statuses[status]) { - status = 500 - } - - // constructor - var HttpError = exports[status] - - if (!err) { - // create error - err = HttpError - ? new HttpError(msg) - : new Error(msg || statuses[status]) - Error.captureStackTrace(err, httpError) - } - - if (!HttpError || !(err instanceof HttpError)) { - // add properties to generic error - err.expose = status < 500 - err.status = err.statusCode = status - } - - for (var key in props) { - if (key !== 'status' && key !== 'statusCode') { - err[key] = props[key] - } - } - - return err; -}; - -// create generic error objects -var codes = statuses.codes.filter(function (num) { - return num >= 400; -}); - -codes.forEach(function (code) { - var name = toIdentifier(statuses[code]) - var className = name.match(/Error$/) ? name : name + 'Error' - - if (code >= 500) { - var ServerError = function ServerError(msg) { - var self = new Error(msg != null ? msg : statuses[code]) - Error.captureStackTrace(self, ServerError) - self.__proto__ = ServerError.prototype - Object.defineProperty(self, 'name', { - enumerable: false, - configurable: true, - value: className, - writable: true - }) - return self - } - inherits(ServerError, Error); - ServerError.prototype.status = - ServerError.prototype.statusCode = code; - ServerError.prototype.expose = false; - exports[code] = - exports[name] = ServerError - return; - } - - var ClientError = function ClientError(msg) { - var self = new Error(msg != null ? msg : statuses[code]) - Error.captureStackTrace(self, ClientError) - self.__proto__ = ClientError.prototype - Object.defineProperty(self, 'name', { - enumerable: false, - configurable: true, - value: className, - writable: true - }) - return self - } - inherits(ClientError, Error); - ClientError.prototype.status = - ClientError.prototype.statusCode = code; - ClientError.prototype.expose = true; - exports[code] = - exports[name] = ClientError - return; -}); - -// backwards-compatibility -exports["I'mateapot"] = exports.ImATeapot diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/LICENSE deleted file mode 100644 index dea3013d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/README.md deleted file mode 100644 index b1c56658..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/README.md +++ /dev/null @@ -1,42 +0,0 @@ -Browser-friendly inheritance fully compatible with standard node.js -[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). - -This package exports standard `inherits` from node.js `util` module in -node environment, but also provides alternative browser-friendly -implementation through [browser -field](https://gist.github.com/shtylman/4339901). Alternative -implementation is a literal copy of standard one located in standalone -module to avoid requiring of `util`. It also has a shim for old -browsers with no `Object.create` support. - -While keeping you sure you are using standard `inherits` -implementation in node.js environment, it allows bundlers such as -[browserify](https://github.com/substack/node-browserify) to not -include full `util` package to your client code if all you need is -just `inherits` function. It worth, because browser shim for `util` -package is large and `inherits` is often the single function you need -from it. - -It's recommended to use this package instead of -`require('util').inherits` for any code that has chances to be used -not only in node.js but in browser too. - -## usage - -```js -var inherits = require('inherits'); -// then use exactly as the standard one -``` - -## note on version ~1.0 - -Version ~1.0 had completely different motivation and is not compatible -neither with 2.0 nor with standard node.js `inherits`. - -If you are using version ~1.0 and planning to switch to ~2.0, be -careful: - -* new version uses `super_` instead of `super` for referencing - superclass -* new version overwrites current prototype while old one preserves any - existing fields on it diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits.js deleted file mode 100644 index 3b94763a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits.js +++ /dev/null @@ -1,7 +0,0 @@ -try { - var util = require('util'); - if (typeof util.inherits !== 'function') throw ''; - module.exports = util.inherits; -} catch (e) { - module.exports = require('./inherits_browser.js'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits_browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits_browser.js deleted file mode 100644 index c1e78a75..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/inherits_browser.js +++ /dev/null @@ -1,23 +0,0 @@ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/package.json deleted file mode 100644 index 9146e757..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/node_modules/inherits/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "inherits", - "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.3", - "keywords": [ - "inheritance", - "class", - "klass", - "oop", - "object-oriented", - "inherits", - "browser", - "browserify" - ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/inherits.git" - }, - "license": "ISC", - "scripts": { - "test": "node test" - }, - "devDependencies": { - "tap": "^7.1.0" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ], - "gitHead": "e05d0fb27c61a3ec687214f0476386b765364d5f", - "bugs": { - "url": "https://github.com/isaacs/inherits/issues" - }, - "homepage": "https://github.com/isaacs/inherits#readme", - "_id": "inherits@2.0.3", - "_shasum": "633c2c83e3da42a502f52466022480f4208261de", - "_from": "inherits@>=2.0.1 <2.1.0", - "_npmVersion": "3.10.7", - "_nodeVersion": "6.5.0", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "shasum": "633c2c83e3da42a502f52466022480f4208261de", - "tarball": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/inherits-2.0.3.tgz_1473295776489_0.08142363070510328" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/package.json deleted file mode 100644 index 362434f6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/http-errors/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "http-errors", - "description": "Create HTTP error objects", - "version": "1.3.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Alan Plum", - "email": "me@pluma.io" - }, - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/http-errors.git" - }, - "dependencies": { - "inherits": "~2.0.1", - "statuses": "1" - }, - "devDependencies": { - "istanbul": "0", - "mocha": "1" - }, - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec --bail", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" - }, - "keywords": [ - "http", - "error" - ], - "files": [ - "index.js", - "HISTORY.md", - "LICENSE", - "README.md" - ], - "gitHead": "89a8502b40d5dd42da2908f265275e2eeb8d0699", - "bugs": { - "url": "https://github.com/jshttp/http-errors/issues" - }, - "homepage": "https://github.com/jshttp/http-errors", - "_id": "http-errors@1.3.1", - "_shasum": "197e22cdebd4198585e8694ef6786197b91ed942", - "_from": "http-errors@>=1.3.1 <1.4.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "egeste", - "email": "npm@egeste.net" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "197e22cdebd4198585e8694ef6786197b91ed942", - "tarball": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/.npmignore deleted file mode 100644 index e69de29b..00000000 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/LICENSE deleted file mode 100644 index 451fc455..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010 Benjamin Thomas, Robert Kieffer - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/README.md deleted file mode 100644 index 506fbe55..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/README.md +++ /dev/null @@ -1,90 +0,0 @@ -# mime - -Comprehensive MIME type mapping API based on mime-db module. - -## Install - -Install with [npm](http://github.com/isaacs/npm): - - npm install mime - -## Contributing / Testing - - npm run test - -## Command Line - - mime [path_string] - -E.g. - - > mime scripts/jquery.js - application/javascript - -## API - Queries - -### mime.lookup(path) -Get the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.'). E.g. - -```js -var mime = require('mime'); - -mime.lookup('/path/to/file.txt'); // => 'text/plain' -mime.lookup('file.txt'); // => 'text/plain' -mime.lookup('.TXT'); // => 'text/plain' -mime.lookup('htm'); // => 'text/html' -``` - -### mime.default_type -Sets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.) - -### mime.extension(type) -Get the default extension for `type` - -```js -mime.extension('text/html'); // => 'html' -mime.extension('application/octet-stream'); // => 'bin' -``` - -### mime.charsets.lookup() - -Map mime-type to charset - -```js -mime.charsets.lookup('text/plain'); // => 'UTF-8' -``` - -(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.) - -## API - Defining Custom Types - -Custom type mappings can be added on a per-project basis via the following APIs. - -### mime.define() - -Add custom mime/extension mappings - -```js -mime.define({ - 'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'], - 'application/x-my-type': ['x-mt', 'x-mtt'], - // etc ... -}); - -mime.lookup('x-sft'); // => 'text/x-some-format' -``` - -The first entry in the extensions array is returned by `mime.extension()`. E.g. - -```js -mime.extension('text/x-some-format'); // => 'x-sf' -``` - -### mime.load(filepath) - -Load mappings from an Apache ".types" format file - -```js -mime.load('./my_project.types'); -``` -The .types file format is simple - See the `types` dir for examples. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/build/build.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/build/build.js deleted file mode 100644 index ed5313e3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/build/build.js +++ /dev/null @@ -1,11 +0,0 @@ -var db = require('mime-db'); - -var mapByType = {}; -Object.keys(db).forEach(function(key) { - var extensions = db[key].extensions; - if (extensions) { - mapByType[key] = extensions; - } -}); - -console.log(JSON.stringify(mapByType)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/build/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/build/test.js deleted file mode 100644 index 58b9ba7c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/build/test.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Usage: node test.js - */ - -var mime = require('../mime'); -var assert = require('assert'); -var path = require('path'); - -// -// Test mime lookups -// - -assert.equal('text/plain', mime.lookup('text.txt')); // normal file -assert.equal('text/plain', mime.lookup('TEXT.TXT')); // uppercase -assert.equal('text/plain', mime.lookup('dir/text.txt')); // dir + file -assert.equal('text/plain', mime.lookup('.text.txt')); // hidden file -assert.equal('text/plain', mime.lookup('.txt')); // nameless -assert.equal('text/plain', mime.lookup('txt')); // extension-only -assert.equal('text/plain', mime.lookup('/txt')); // extension-less () -assert.equal('text/plain', mime.lookup('\\txt')); // Windows, extension-less -assert.equal('application/octet-stream', mime.lookup('text.nope')); // unrecognized -assert.equal('fallback', mime.lookup('text.fallback', 'fallback')); // alternate default - -// -// Test extensions -// - -assert.equal('txt', mime.extension(mime.types.text)); -assert.equal('html', mime.extension(mime.types.htm)); -assert.equal('bin', mime.extension('application/octet-stream')); -assert.equal('bin', mime.extension('application/octet-stream ')); -assert.equal('html', mime.extension(' text/html; charset=UTF-8')); -assert.equal('html', mime.extension('text/html; charset=UTF-8 ')); -assert.equal('html', mime.extension('text/html; charset=UTF-8')); -assert.equal('html', mime.extension('text/html ; charset=UTF-8')); -assert.equal('html', mime.extension('text/html;charset=UTF-8')); -assert.equal('html', mime.extension('text/Html;charset=UTF-8')); -assert.equal(undefined, mime.extension('unrecognized')); - -// -// Test node.types lookups -// - -assert.equal('application/font-woff', mime.lookup('file.woff')); -assert.equal('application/octet-stream', mime.lookup('file.buffer')); -assert.equal('audio/mp4', mime.lookup('file.m4a')); -assert.equal('font/opentype', mime.lookup('file.otf')); - -// -// Test charsets -// - -assert.equal('UTF-8', mime.charsets.lookup('text/plain')); -assert.equal(undefined, mime.charsets.lookup(mime.types.js)); -assert.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback')); - -console.log('\nAll tests passed'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/cli.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/cli.js deleted file mode 100755 index 20b1ffeb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/cli.js +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node - -var mime = require('./mime.js'); -var file = process.argv[2]; -var type = mime.lookup(file); - -process.stdout.write(type + '\n'); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/mime.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/mime.js deleted file mode 100644 index 341b6a5c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/mime.js +++ /dev/null @@ -1,108 +0,0 @@ -var path = require('path'); -var fs = require('fs'); - -function Mime() { - // Map of extension -> mime type - this.types = Object.create(null); - - // Map of mime type -> extension - this.extensions = Object.create(null); -} - -/** - * Define mimetype -> extension mappings. Each key is a mime-type that maps - * to an array of extensions associated with the type. The first extension is - * used as the default extension for the type. - * - * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']}); - * - * @param map (Object) type definitions - */ -Mime.prototype.define = function (map) { - for (var type in map) { - var exts = map[type]; - for (var i = 0; i < exts.length; i++) { - if (process.env.DEBUG_MIME && this.types[exts]) { - console.warn(this._loading.replace(/.*\//, ''), 'changes "' + exts[i] + '" extension type from ' + - this.types[exts] + ' to ' + type); - } - - this.types[exts[i]] = type; - } - - // Default extension is the first one we encounter - if (!this.extensions[type]) { - this.extensions[type] = exts[0]; - } - } -}; - -/** - * Load an Apache2-style ".types" file - * - * This may be called multiple times (it's expected). Where files declare - * overlapping types/extensions, the last file wins. - * - * @param file (String) path of file to load. - */ -Mime.prototype.load = function(file) { - this._loading = file; - // Read file and split into lines - var map = {}, - content = fs.readFileSync(file, 'ascii'), - lines = content.split(/[\r\n]+/); - - lines.forEach(function(line) { - // Clean up whitespace/comments, and split into fields - var fields = line.replace(/\s*#.*|^\s*|\s*$/g, '').split(/\s+/); - map[fields.shift()] = fields; - }); - - this.define(map); - - this._loading = null; -}; - -/** - * Lookup a mime type based on extension - */ -Mime.prototype.lookup = function(path, fallback) { - var ext = path.replace(/.*[\.\/\\]/, '').toLowerCase(); - - return this.types[ext] || fallback || this.default_type; -}; - -/** - * Return file extension associated with a mime type - */ -Mime.prototype.extension = function(mimeType) { - var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase(); - return this.extensions[type]; -}; - -// Default instance -var mime = new Mime(); - -// Define built-in types -mime.define(require('./types.json')); - -// Default type -mime.default_type = mime.lookup('bin'); - -// -// Additional API specific to the default instance -// - -mime.Mime = Mime; - -/** - * Lookup a charset based on mime type. - */ -mime.charsets = { - lookup: function(mimeType, fallback) { - // Assume text types are utf8 - return (/^text\//).test(mimeType) ? 'UTF-8' : fallback; - } -}; - -module.exports = mime; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/package.json deleted file mode 100644 index 0679a710..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "author": { - "name": "Robert Kieffer", - "email": "robert@broofa.com", - "url": "http://github.com/broofa" - }, - "scripts": { - "prepublish": "node build/build.js > types.json", - "test": "node build/test.js" - }, - "bin": { - "mime": "cli.js" - }, - "contributors": [ - { - "name": "Benjamin Thomas", - "email": "benjamin@benjaminthomas.org", - "url": "http://github.com/bentomas" - } - ], - "description": "A comprehensive library for mime-type mapping", - "licenses": [ - { - "type": "MIT", - "url": "https://raw.github.com/broofa/node-mime/master/LICENSE" - } - ], - "dependencies": {}, - "devDependencies": { - "mime-db": "^1.2.0" - }, - "keywords": [ - "util", - "mime" - ], - "main": "mime.js", - "name": "mime", - "repository": { - "url": "https://github.com/broofa/node-mime", - "type": "git" - }, - "version": "1.3.4", - "gitHead": "1628f6e0187095009dcef4805c3a49706f137974", - "bugs": { - "url": "https://github.com/broofa/node-mime/issues" - }, - "homepage": "https://github.com/broofa/node-mime", - "_id": "mime@1.3.4", - "_shasum": "115f9e3b6b3daf2959983cb38f149a2d40eb5d53", - "_from": "mime@1.3.4", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "broofa", - "email": "robert@broofa.com" - }, - "maintainers": [ - { - "name": "broofa", - "email": "robert@broofa.com" - }, - { - "name": "bentomas", - "email": "benjamin@benjaminthomas.org" - } - ], - "dist": { - "shasum": "115f9e3b6b3daf2959983cb38f149a2d40eb5d53", - "tarball": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/types.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/types.json deleted file mode 100644 index c674b1c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/mime/types.json +++ /dev/null @@ -1 +0,0 @@ -{"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mdp"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":["woff"],"application/font-woff2":["woff2"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["dmg"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-otf":["otf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-ttf":["ttf","ttc"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["iso"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdownload":["exe","dll","com","bat","msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","wmz","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-nzb":["nzb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-research-info-systems":["ris"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp4":["mp4a","m4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-wav":["wav"],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/opentype":["otf"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jpeg":["jpeg","jpg","jpe"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-mrsid-image":["sid"],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/sgml":["sgml","sgm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["markdown","md","mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-pascal":["p","pas"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/.npmignore deleted file mode 100644 index d1aa0ce4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules -test -History.md -Makefile -component.json diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/History.md deleted file mode 100644 index 32fdfc17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/History.md +++ /dev/null @@ -1,66 +0,0 @@ - -0.7.1 / 2015-04-20 -================== - - * prevent extraordinary long inputs (@evilpacket) - * Fixed broken readme link - -0.7.0 / 2014-11-24 -================== - - * add time abbreviations, updated tests and readme for the new units - * fix example in the readme. - * add LICENSE file - -0.6.2 / 2013-12-05 -================== - - * Adding repository section to package.json to suppress warning from NPM. - -0.6.1 / 2013-05-10 -================== - - * fix singularization [visionmedia] - -0.6.0 / 2013-03-15 -================== - - * fix minutes - -0.5.1 / 2013-02-24 -================== - - * add component namespace - -0.5.0 / 2012-11-09 -================== - - * add short formatting as default and .long option - * add .license property to component.json - * add version to component.json - -0.4.0 / 2012-10-22 -================== - - * add rounding to fix crazy decimals - -0.3.0 / 2012-09-07 -================== - - * fix `ms(<String>)` [visionmedia] - -0.2.0 / 2012-09-03 -================== - - * add component.json [visionmedia] - * add days support [visionmedia] - * add hours support [visionmedia] - * add minutes support [visionmedia] - * add seconds support [visionmedia] - * add ms string support [visionmedia] - * refactor tests to facilitate ms(number) [visionmedia] - -0.1.0 / 2012-03-07 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/LICENSE deleted file mode 100644 index 6c07561b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Guillermo Rauch <rauchg@gmail.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/README.md deleted file mode 100644 index 9b4fd035..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# ms.js: miliseconds conversion utility - -```js -ms('2 days') // 172800000 -ms('1d') // 86400000 -ms('10h') // 36000000 -ms('2.5 hrs') // 9000000 -ms('2h') // 7200000 -ms('1m') // 60000 -ms('5s') // 5000 -ms('100') // 100 -``` - -```js -ms(60000) // "1m" -ms(2 * 60000) // "2m" -ms(ms('10 hours')) // "10h" -``` - -```js -ms(60000, { long: true }) // "1 minute" -ms(2 * 60000, { long: true }) // "2 minutes" -ms(ms('10 hours'), { long: true }) // "10 hours" -``` - -- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download). -- If a number is supplied to `ms`, a string with a unit is returned. -- If a string that contains the number is supplied, it returns it as -a number (e.g: it returns `100` for `'100'`). -- If you pass a string with a number and a valid unit, the number of -equivalent ms is returned. - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/index.js deleted file mode 100644 index 4f927716..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/index.js +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} options - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options){ - options = options || {}; - if ('string' == typeof val) return parse(val); - return options.long - ? long(val) - : short(val); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = '' + str; - if (str.length > 10000) return; - var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str); - if (!match) return; - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function short(ms) { - if (ms >= d) return Math.round(ms / d) + 'd'; - if (ms >= h) return Math.round(ms / h) + 'h'; - if (ms >= m) return Math.round(ms / m) + 'm'; - if (ms >= s) return Math.round(ms / s) + 's'; - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function long(ms) { - return plural(ms, d, 'day') - || plural(ms, h, 'hour') - || plural(ms, m, 'minute') - || plural(ms, s, 'second') - || ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, n, name) { - if (ms < n) return; - if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name; - return Math.ceil(ms / n) + ' ' + name + 's'; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/package.json deleted file mode 100644 index 29c1ba53..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/ms/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "ms", - "version": "0.7.1", - "description": "Tiny ms conversion utility", - "repository": { - "type": "git", - "url": "git://github.com/guille/ms.js.git" - }, - "main": "./index", - "devDependencies": { - "mocha": "*", - "expect.js": "*", - "serve": "*" - }, - "component": { - "scripts": { - "ms/index.js": "index.js" - } - }, - "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909", - "bugs": { - "url": "https://github.com/guille/ms.js/issues" - }, - "homepage": "https://github.com/guille/ms.js", - "_id": "ms@0.7.1", - "scripts": {}, - "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "_from": "ms@0.7.1", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/HISTORY.md deleted file mode 100644 index 98ff0e99..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/HISTORY.md +++ /dev/null @@ -1,88 +0,0 @@ -2.3.0 / 2015-05-26 -================== - - * Add defined behavior for HTTP `CONNECT` requests - * Add defined behavior for HTTP `Upgrade` requests - * deps: ee-first@1.1.1 - -2.2.1 / 2015-04-22 -================== - - * Fix `isFinished(req)` when data buffered - -2.2.0 / 2014-12-22 -================== - - * Add message object to callback arguments - -2.1.1 / 2014-10-22 -================== - - * Fix handling of pipelined requests - -2.1.0 / 2014-08-16 -================== - - * Check if `socket` is detached - * Return `undefined` for `isFinished` if state unknown - -2.0.0 / 2014-08-16 -================== - - * Add `isFinished` function - * Move to `jshttp` organization - * Remove support for plain socket argument - * Rename to `on-finished` - * Support both `req` and `res` as arguments - * deps: ee-first@1.0.5 - -1.2.2 / 2014-06-10 -================== - - * Reduce listeners added to emitters - - avoids "event emitter leak" warnings when used multiple times on same request - -1.2.1 / 2014-06-08 -================== - - * Fix returned value when already finished - -1.2.0 / 2014-06-05 -================== - - * Call callback when called on already-finished socket - -1.1.4 / 2014-05-27 -================== - - * Support node.js 0.8 - -1.1.3 / 2014-04-30 -================== - - * Make sure errors passed as instanceof `Error` - -1.1.2 / 2014-04-18 -================== - - * Default the `socket` to passed-in object - -1.1.1 / 2014-01-16 -================== - - * Rename module to `finished` - -1.1.0 / 2013-12-25 -================== - - * Call callback when called on already-errored socket - -1.0.1 / 2013-12-20 -================== - - * Actually pass the error to the callback - -1.0.0 / 2013-12-20 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/LICENSE deleted file mode 100644 index 5931fd23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2013 Jonathan Ong <me@jongleberry.com> -Copyright (c) 2014 Douglas Christopher Wilson <doug@somethingdoug.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/README.md deleted file mode 100644 index a0e11574..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/README.md +++ /dev/null @@ -1,154 +0,0 @@ -# on-finished - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Execute a callback when a HTTP request closes, finishes, or errors. - -## Install - -```sh -$ npm install on-finished -``` - -## API - -```js -var onFinished = require('on-finished') -``` - -### onFinished(res, listener) - -Attach a listener to listen for the response to finish. The listener will -be invoked only once when the response finished. If the response finished -to an error, the first argument will contain the error. If the response -has already finished, the listener will be invoked. - -Listening to the end of a response would be used to close things associated -with the response, like open files. - -Listener is invoked as `listener(err, res)`. - -```js -onFinished(res, function (err, res) { - // clean up open fds, etc. - // err contains the error is request error'd -}) -``` - -### onFinished(req, listener) - -Attach a listener to listen for the request to finish. The listener will -be invoked only once when the request finished. If the request finished -to an error, the first argument will contain the error. If the request -has already finished, the listener will be invoked. - -Listening to the end of a request would be used to know when to continue -after reading the data. - -Listener is invoked as `listener(err, req)`. - -```js -var data = '' - -req.setEncoding('utf8') -res.on('data', function (str) { - data += str -}) - -onFinished(req, function (err, req) { - // data is read unless there is err -}) -``` - -### onFinished.isFinished(res) - -Determine if `res` is already finished. This would be useful to check and -not even start certain operations if the response has already finished. - -### onFinished.isFinished(req) - -Determine if `req` is already finished. This would be useful to check and -not even start certain operations if the request has already finished. - -## Special Node.js requests - -### HTTP CONNECT method - -The meaning of the `CONNECT` method from RFC 7231, section 4.3.6: - -> The CONNECT method requests that the recipient establish a tunnel to -> the destination origin server identified by the request-target and, -> if successful, thereafter restrict its behavior to blind forwarding -> of packets, in both directions, until the tunnel is closed. Tunnels -> are commonly used to create an end-to-end virtual connection, through -> one or more proxies, which can then be secured using TLS (Transport -> Layer Security, [RFC5246]). - -In Node.js, these request objects come from the `'connect'` event on -the HTTP server. - -When this module is used on a HTTP `CONNECT` request, the request is -considered "finished" immediately, **due to limitations in the Node.js -interface**. This means if the `CONNECT` request contains a request entity, -the request will be considered "finished" even before it has been read. - -There is no such thing as a response object to a `CONNECT` request in -Node.js, so there is no support for for one. - -### HTTP Upgrade request - -The meaning of the `Upgrade` header from RFC 7230, section 6.1: - -> The "Upgrade" header field is intended to provide a simple mechanism -> for transitioning from HTTP/1.1 to some other protocol on the same -> connection. - -In Node.js, these request objects come from the `'upgrade'` event on -the HTTP server. - -When this module is used on a HTTP request with an `Upgrade` header, the -request is considered "finished" immediately, **due to limitations in the -Node.js interface**. This means if the `Upgrade` request contains a request -entity, the request will be considered "finished" even before it has been -read. - -There is no such thing as a response object to a `Upgrade` request in -Node.js, so there is no support for for one. - -## Example - -The following code ensures that file descriptors are always closed -once the response finishes. - -```js -var destroy = require('destroy') -var http = require('http') -var onFinished = require('on-finished') - -http.createServer(function onRequest(req, res) { - var stream = fs.createReadStream('package.json') - stream.pipe(res) - onFinished(res, function (err) { - destroy(stream) - }) -}) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/on-finished.svg -[npm-url]: https://npmjs.org/package/on-finished -[node-version-image]: https://img.shields.io/node/v/on-finished.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/on-finished/master.svg -[travis-url]: https://travis-ci.org/jshttp/on-finished -[coveralls-image]: https://img.shields.io/coveralls/jshttp/on-finished/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/on-finished?branch=master -[downloads-image]: https://img.shields.io/npm/dm/on-finished.svg -[downloads-url]: https://npmjs.org/package/on-finished diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/index.js deleted file mode 100644 index 9abd98f9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/index.js +++ /dev/null @@ -1,196 +0,0 @@ -/*! - * on-finished - * Copyright(c) 2013 Jonathan Ong - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = onFinished -module.exports.isFinished = isFinished - -/** - * Module dependencies. - * @private - */ - -var first = require('ee-first') - -/** - * Variables. - * @private - */ - -/* istanbul ignore next */ -var defer = typeof setImmediate === 'function' - ? setImmediate - : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } - -/** - * Invoke callback when the response has finished, useful for - * cleaning up resources afterwards. - * - * @param {object} msg - * @param {function} listener - * @return {object} - * @public - */ - -function onFinished(msg, listener) { - if (isFinished(msg) !== false) { - defer(listener, null, msg) - return msg - } - - // attach the listener to the message - attachListener(msg, listener) - - return msg -} - -/** - * Determine if message is already finished. - * - * @param {object} msg - * @return {boolean} - * @public - */ - -function isFinished(msg) { - var socket = msg.socket - - if (typeof msg.finished === 'boolean') { - // OutgoingMessage - return Boolean(msg.finished || (socket && !socket.writable)) - } - - if (typeof msg.complete === 'boolean') { - // IncomingMessage - return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable)) - } - - // don't know - return undefined -} - -/** - * Attach a finished listener to the message. - * - * @param {object} msg - * @param {function} callback - * @private - */ - -function attachFinishedListener(msg, callback) { - var eeMsg - var eeSocket - var finished = false - - function onFinish(error) { - eeMsg.cancel() - eeSocket.cancel() - - finished = true - callback(error) - } - - // finished on first message event - eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish) - - function onSocket(socket) { - // remove listener - msg.removeListener('socket', onSocket) - - if (finished) return - if (eeMsg !== eeSocket) return - - // finished on first socket event - eeSocket = first([[socket, 'error', 'close']], onFinish) - } - - if (msg.socket) { - // socket already assigned - onSocket(msg.socket) - return - } - - // wait for socket to be assigned - msg.on('socket', onSocket) - - if (msg.socket === undefined) { - // node.js 0.8 patch - patchAssignSocket(msg, onSocket) - } -} - -/** - * Attach the listener to the message. - * - * @param {object} msg - * @return {function} - * @private - */ - -function attachListener(msg, listener) { - var attached = msg.__onFinished - - // create a private single listener with queue - if (!attached || !attached.queue) { - attached = msg.__onFinished = createListener(msg) - attachFinishedListener(msg, attached) - } - - attached.queue.push(listener) -} - -/** - * Create listener on message. - * - * @param {object} msg - * @return {function} - * @private - */ - -function createListener(msg) { - function listener(err) { - if (msg.__onFinished === listener) msg.__onFinished = null - if (!listener.queue) return - - var queue = listener.queue - listener.queue = null - - for (var i = 0; i < queue.length; i++) { - queue[i](err, msg) - } - } - - listener.queue = [] - - return listener -} - -/** - * Patch ServerResponse.prototype.assignSocket for node.js 0.8. - * - * @param {ServerResponse} res - * @param {function} callback - * @private - */ - -function patchAssignSocket(res, callback) { - var assignSocket = res.assignSocket - - if (typeof assignSocket !== 'function') return - - // res.on('socket', callback) is broken in 0.8 - res.assignSocket = function _assignSocket(socket) { - assignSocket.call(this, socket) - callback(socket) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/README.md deleted file mode 100644 index cbd2478b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# EE First - -[![NPM version][npm-image]][npm-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] -[![Gittip][gittip-image]][gittip-url] - -Get the first event in a set of event emitters and event pairs, -then clean up after itself. - -## Install - -```sh -$ npm install ee-first -``` - -## API - -```js -var first = require('ee-first') -``` - -### first(arr, listener) - -Invoke `listener` on the first event from the list specified in `arr`. `arr` is -an array of arrays, with each array in the format `[ee, ...event]`. `listener` -will be called only once, the first time any of the given events are emitted. If -`error` is one of the listened events, then if that fires first, the `listener` -will be given the `err` argument. - -The `listener` is invoked as `listener(err, ee, event, args)`, where `err` is the -first argument emitted from an `error` event, if applicable; `ee` is the event -emitter that fired; `event` is the string event name that fired; and `args` is an -array of the arguments that were emitted on the event. - -```js -var ee1 = new EventEmitter() -var ee2 = new EventEmitter() - -first([ - [ee1, 'close', 'end', 'error'], - [ee2, 'error'] -], function (err, ee, event, args) { - // listener invoked -}) -``` - -#### .cancel() - -The group of listeners can be cancelled before being invoked and have all the event -listeners removed from the underlying event emitters. - -```js -var thunk = first([ - [ee1, 'close', 'end', 'error'], - [ee2, 'error'] -], function (err, ee, event, args) { - // listener invoked -}) - -// cancel and clean up -thunk.cancel() -``` - -[npm-image]: https://img.shields.io/npm/v/ee-first.svg?style=flat-square -[npm-url]: https://npmjs.org/package/ee-first -[github-tag]: http://img.shields.io/github/tag/jonathanong/ee-first.svg?style=flat-square -[github-url]: https://github.com/jonathanong/ee-first/tags -[travis-image]: https://img.shields.io/travis/jonathanong/ee-first.svg?style=flat-square -[travis-url]: https://travis-ci.org/jonathanong/ee-first -[coveralls-image]: https://img.shields.io/coveralls/jonathanong/ee-first.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/jonathanong/ee-first?branch=master -[license-image]: http://img.shields.io/npm/l/ee-first.svg?style=flat-square -[license-url]: LICENSE.md -[downloads-image]: http://img.shields.io/npm/dm/ee-first.svg?style=flat-square -[downloads-url]: https://npmjs.org/package/ee-first -[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square -[gittip-url]: https://www.gittip.com/jonathanong/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/index.js deleted file mode 100644 index 501287cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/index.js +++ /dev/null @@ -1,95 +0,0 @@ -/*! - * ee-first - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = first - -/** - * Get the first event in a set of event emitters and event pairs. - * - * @param {array} stuff - * @param {function} done - * @public - */ - -function first(stuff, done) { - if (!Array.isArray(stuff)) - throw new TypeError('arg must be an array of [ee, events...] arrays') - - var cleanups = [] - - for (var i = 0; i < stuff.length; i++) { - var arr = stuff[i] - - if (!Array.isArray(arr) || arr.length < 2) - throw new TypeError('each array member must be [ee, events...]') - - var ee = arr[0] - - for (var j = 1; j < arr.length; j++) { - var event = arr[j] - var fn = listener(event, callback) - - // listen to the event - ee.on(event, fn) - // push this listener to the list of cleanups - cleanups.push({ - ee: ee, - event: event, - fn: fn, - }) - } - } - - function callback() { - cleanup() - done.apply(null, arguments) - } - - function cleanup() { - var x - for (var i = 0; i < cleanups.length; i++) { - x = cleanups[i] - x.ee.removeListener(x.event, x.fn) - } - } - - function thunk(fn) { - done = fn - } - - thunk.cancel = cleanup - - return thunk -} - -/** - * Create the event listener. - * @private - */ - -function listener(event, done) { - return function onevent(arg1) { - var args = new Array(arguments.length) - var ee = this - var err = event === 'error' - ? arg1 - : null - - // copy args to prevent arguments escaping scope - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - - done(err, ee, event, args) - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/package.json deleted file mode 100644 index c67faf17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/node_modules/ee-first/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "ee-first", - "description": "return the first event in a set of ee/event pairs", - "version": "1.1.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jonathanong/ee-first.git" - }, - "devDependencies": { - "istanbul": "0.3.9", - "mocha": "2.2.5" - }, - "files": [ - "index.js", - "LICENSE" - ], - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "512e0ce4cc3643f603708f965a97b61b1a9c0441", - "bugs": { - "url": "https://github.com/jonathanong/ee-first/issues" - }, - "homepage": "https://github.com/jonathanong/ee-first", - "_id": "ee-first@1.1.1", - "_shasum": "590c61156b0ae2f4f0255732a158b266bc56b21d", - "_from": "ee-first@1.1.1", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "590c61156b0ae2f4f0255732a158b266bc56b21d", - "tarball": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/package.json deleted file mode 100644 index 97a5680b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/on-finished/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "on-finished", - "description": "Execute a callback when a request closes, finishes, or errors", - "version": "2.3.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/on-finished.git" - }, - "dependencies": { - "ee-first": "1.1.1" - }, - "devDependencies": { - "istanbul": "0.3.9", - "mocha": "2.2.5" - }, - "engines": { - "node": ">= 0.8" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "gitHead": "34babcb58126a416fcf5205768204f2e12699dda", - "bugs": { - "url": "https://github.com/jshttp/on-finished/issues" - }, - "homepage": "https://github.com/jshttp/on-finished", - "_id": "on-finished@2.3.0", - "_shasum": "20f1336481b083cd75337992a16971aa2d906947", - "_from": "on-finished@>=2.3.0 <2.4.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "20f1336481b083cd75337992a16971aa2d906947", - "tarball": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/HISTORY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/HISTORY.md deleted file mode 100644 index f640bea7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/HISTORY.md +++ /dev/null @@ -1,40 +0,0 @@ -unreleased -========== - - * perf: enable strict mode - -1.0.2 / 2014-09-08 -================== - - * Support Node.js 0.6 - -1.0.1 / 2014-09-07 -================== - - * Move repository to jshttp - -1.0.0 / 2013-12-11 -================== - - * Add repository to package.json - * Add MIT license - -0.0.4 / 2012-06-17 -================== - - * Change ret -1 for unsatisfiable and -2 when invalid - -0.0.3 / 2012-06-17 -================== - - * Fix last-byte-pos default to len - 1 - -0.0.2 / 2012-06-14 -================== - - * Add `.type` - -0.0.1 / 2012-06-11 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/LICENSE deleted file mode 100644 index a491841b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 TJ Holowaychuk <vision-media.ca> - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/README.md deleted file mode 100644 index 32f58f69..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# range-parser - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Range header field parser. - -## Installation - -``` -$ npm install range-parser -``` - -## API - -```js -var parseRange = require('range-parser') -``` - -### parseRange(size, header) - -Parse the given `header` string where `size` is the maximum size of the resource. -An array of ranges will be returned or negative numbers indicating an error parsing. - - * `-2` signals a malformed header string - * `-1` signals an invalid range - -```js -// parse header from request -var range = parseRange(req.headers.range) - -// the type of the range -if (range.type === 'bytes') { - // the ranges - range.forEach(function (r) { - // do something with r.start and r.end - }) -} -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/range-parser.svg -[npm-url]: https://npmjs.org/package/range-parser -[node-version-image]: https://img.shields.io/node/v/range-parser.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/range-parser.svg -[travis-url]: https://travis-ci.org/jshttp/range-parser -[coveralls-image]: https://img.shields.io/coveralls/jshttp/range-parser.svg -[coveralls-url]: https://coveralls.io/r/jshttp/range-parser -[downloads-image]: https://img.shields.io/npm/dm/range-parser.svg -[downloads-url]: https://npmjs.org/package/range-parser diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/index.js deleted file mode 100644 index 814e5332..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/index.js +++ /dev/null @@ -1,63 +0,0 @@ -/*! - * range-parser - * Copyright(c) 2012-2014 TJ Holowaychuk - * MIT Licensed - */ - -'use strict'; - -/** - * Module exports. - * @public - */ - -module.exports = rangeParser; - -/** - * Parse "Range" header `str` relative to the given file `size`. - * - * @param {Number} size - * @param {String} str - * @return {Array} - * @public - */ - -function rangeParser(size, str) { - var valid = true; - var i = str.indexOf('='); - - if (-1 == i) return -2; - - var arr = str.slice(i + 1).split(',').map(function(range){ - var range = range.split('-') - , start = parseInt(range[0], 10) - , end = parseInt(range[1], 10); - - // -nnn - if (isNaN(start)) { - start = size - end; - end = size - 1; - // nnn- - } else if (isNaN(end)) { - end = size - 1; - } - - // limit last-byte-pos to current length - if (end > size - 1) end = size - 1; - - // invalid - if (isNaN(start) - || isNaN(end) - || start > end - || start < 0) valid = false; - - return { - start: start, - end: end - }; - }); - - arr.type = str.slice(0, i); - - return valid ? arr : -1; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/package.json deleted file mode 100644 index e6d31386..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/range-parser/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "range-parser", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": "http://tjholowaychuk.com" - }, - "description": "Range header field string parser", - "version": "1.0.3", - "license": "MIT", - "keywords": [ - "range", - "parser", - "http" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/range-parser.git" - }, - "devDependencies": { - "istanbul": "0.4.0", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" - }, - "gitHead": "18e46a3de74afff9f4e22717f11ddd6e9aa6d845", - "bugs": { - "url": "https://github.com/jshttp/range-parser/issues" - }, - "homepage": "https://github.com/jshttp/range-parser", - "_id": "range-parser@1.0.3", - "_shasum": "6872823535c692e2c2a0103826afd82c2e0ff175", - "_from": "range-parser@>=1.0.3 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "jonathanong", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "dist": { - "shasum": "6872823535c692e2c2a0103826afd82c2e0ff175", - "tarball": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/README.md deleted file mode 100644 index f6ae24c7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/README.md +++ /dev/null @@ -1,114 +0,0 @@ -# Statuses - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -HTTP status utility for node. - -## API - -```js -var status = require('statuses'); -``` - -### var code = status(Integer || String) - -If `Integer` or `String` is a valid HTTP code or status message, then the appropriate `code` will be returned. Otherwise, an error will be thrown. - -```js -status(403) // => 'Forbidden' -status('403') // => 'Forbidden' -status('forbidden') // => 403 -status('Forbidden') // => 403 -status(306) // throws, as it's not supported by node.js -``` - -### status.codes - -Returns an array of all the status codes as `Integer`s. - -### var msg = status[code] - -Map of `code` to `status message`. `undefined` for invalid `code`s. - -```js -status[404] // => 'Not Found' -``` - -### var code = status[msg] - -Map of `status message` to `code`. `msg` can either be title-cased or lower-cased. `undefined` for invalid `status message`s. - -```js -status['not found'] // => 404 -status['Not Found'] // => 404 -``` - -### status.redirect[code] - -Returns `true` if a status code is a valid redirect status. - -```js -status.redirect[200] // => undefined -status.redirect[301] // => true -``` - -### status.empty[code] - -Returns `true` if a status code expects an empty body. - -```js -status.empty[200] // => undefined -status.empty[204] // => true -status.empty[304] // => true -``` - -### status.retry[code] - -Returns `true` if you should retry the rest. - -```js -status.retry[501] // => undefined -status.retry[503] // => true -``` - -### statuses/codes.json - -```js -var codes = require('statuses/codes.json'); -``` - -This is a JSON file of the status codes -taken from `require('http').STATUS_CODES`. -This is saved so that codes are consistent even in older node.js versions. -For example, `308` will be added in v0.12. - -## Adding Status Codes - -The status codes are primarily sourced from http://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv. -Additionally, custom codes are added from http://en.wikipedia.org/wiki/List_of_HTTP_status_codes. -These are added manually in the `lib/*.json` files. -If you would like to add a status code, add it to the appropriate JSON file. - -To rebuild `codes.json`, run the following: - -```bash -# update src/iana.json -npm run update -# build codes.json -npm run build -``` - -[npm-image]: https://img.shields.io/npm/v/statuses.svg?style=flat -[npm-url]: https://npmjs.org/package/statuses -[node-version-image]: http://img.shields.io/badge/node.js-%3E%3D_0.6-brightgreen.svg?style=flat -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/statuses.svg?style=flat -[travis-url]: https://travis-ci.org/jshttp/statuses -[coveralls-image]: https://img.shields.io/coveralls/jshttp/statuses.svg?style=flat -[coveralls-url]: https://coveralls.io/r/jshttp/statuses?branch=master -[downloads-image]: http://img.shields.io/npm/dm/statuses.svg?style=flat -[downloads-url]: https://npmjs.org/package/statuses diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/codes.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/codes.json deleted file mode 100644 index 4c45a88a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/codes.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "100": "Continue", - "101": "Switching Protocols", - "102": "Processing", - "200": "OK", - "201": "Created", - "202": "Accepted", - "203": "Non-Authoritative Information", - "204": "No Content", - "205": "Reset Content", - "206": "Partial Content", - "207": "Multi-Status", - "208": "Already Reported", - "226": "IM Used", - "300": "Multiple Choices", - "301": "Moved Permanently", - "302": "Found", - "303": "See Other", - "304": "Not Modified", - "305": "Use Proxy", - "306": "(Unused)", - "307": "Temporary Redirect", - "308": "Permanent Redirect", - "400": "Bad Request", - "401": "Unauthorized", - "402": "Payment Required", - "403": "Forbidden", - "404": "Not Found", - "405": "Method Not Allowed", - "406": "Not Acceptable", - "407": "Proxy Authentication Required", - "408": "Request Timeout", - "409": "Conflict", - "410": "Gone", - "411": "Length Required", - "412": "Precondition Failed", - "413": "Payload Too Large", - "414": "URI Too Long", - "415": "Unsupported Media Type", - "416": "Range Not Satisfiable", - "417": "Expectation Failed", - "418": "I'm a teapot", - "422": "Unprocessable Entity", - "423": "Locked", - "424": "Failed Dependency", - "425": "Unordered Collection", - "426": "Upgrade Required", - "428": "Precondition Required", - "429": "Too Many Requests", - "431": "Request Header Fields Too Large", - "451": "Unavailable For Legal Reasons", - "500": "Internal Server Error", - "501": "Not Implemented", - "502": "Bad Gateway", - "503": "Service Unavailable", - "504": "Gateway Timeout", - "505": "HTTP Version Not Supported", - "506": "Variant Also Negotiates", - "507": "Insufficient Storage", - "508": "Loop Detected", - "509": "Bandwidth Limit Exceeded", - "510": "Not Extended", - "511": "Network Authentication Required" -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/index.js deleted file mode 100644 index b06182d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/index.js +++ /dev/null @@ -1,60 +0,0 @@ - -var codes = require('./codes.json'); - -module.exports = status; - -// [Integer...] -status.codes = Object.keys(codes).map(function (code) { - code = ~~code; - var msg = codes[code]; - status[code] = msg; - status[msg] = status[msg.toLowerCase()] = code; - return code; -}); - -// status codes for redirects -status.redirect = { - 300: true, - 301: true, - 302: true, - 303: true, - 305: true, - 307: true, - 308: true, -}; - -// status codes for empty bodies -status.empty = { - 204: true, - 205: true, - 304: true, -}; - -// status codes for when you should retry the request -status.retry = { - 502: true, - 503: true, - 504: true, -}; - -function status(code) { - if (typeof code === 'number') { - if (!status[code]) throw new Error('invalid status code: ' + code); - return code; - } - - if (typeof code !== 'string') { - throw new TypeError('code must be a number or string'); - } - - // '403' - var n = parseInt(code, 10) - if (!isNaN(n)) { - if (!status[n]) throw new Error('invalid status code: ' + n); - return n; - } - - n = status[code.toLowerCase()]; - if (!n) throw new Error('invalid status message: "' + code + '"'); - return n; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/package.json deleted file mode 100644 index 74fac2e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/node_modules/statuses/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "name": "statuses", - "description": "HTTP status utility", - "version": "1.2.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/statuses.git" - }, - "license": "MIT", - "keywords": [ - "http", - "status", - "code" - ], - "files": [ - "index.js", - "codes.json", - "LICENSE" - ], - "devDependencies": { - "csv-parse": "0.0.6", - "istanbul": "0", - "mocha": "1", - "stream-to-array": "2" - }, - "scripts": { - "build": "node scripts/build.js", - "update": "node scripts/update.js", - "test": "mocha --reporter spec --bail --check-leaks", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks" - }, - "gitHead": "49e6ac7ae4c63ee8186f56cb52112a7eeda28ed7", - "bugs": { - "url": "https://github.com/jshttp/statuses/issues" - }, - "homepage": "https://github.com/jshttp/statuses", - "_id": "statuses@1.2.1", - "_shasum": "dded45cc18256d51ed40aec142489d5c61026d28", - "_from": "statuses@>=1.2.1 <1.3.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "shtylman", - "email": "shtylman@gmail.com" - }, - { - "name": "mscdex", - "email": "mscdex@mscdex.net" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - } - ], - "dist": { - "shasum": "dded45cc18256d51ed40aec142489d5c61026d28", - "tarball": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/package.json deleted file mode 100644 index 0dbeb3e8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/node_modules/send/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "send", - "description": "Better streaming static file server with Range and conditional-GET support", - "version": "0.13.2", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/pillarjs/send.git" - }, - "keywords": [ - "static", - "file", - "server" - ], - "dependencies": { - "debug": "~2.2.0", - "depd": "~1.1.0", - "destroy": "~1.0.4", - "escape-html": "~1.0.3", - "etag": "~1.7.0", - "fresh": "0.3.0", - "http-errors": "~1.3.1", - "mime": "1.3.4", - "ms": "0.7.1", - "on-finished": "~2.3.0", - "range-parser": "~1.0.3", - "statuses": "~1.2.1" - }, - "devDependencies": { - "after": "0.8.1", - "istanbul": "0.4.2", - "mocha": "2.4.5", - "supertest": "1.1.0" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8.0" - }, - "scripts": { - "test": "mocha --check-leaks --reporter spec --bail", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot" - }, - "gitHead": "5a089701b1c49d96084716bdb5465edefa08c906", - "bugs": { - "url": "https://github.com/pillarjs/send/issues" - }, - "homepage": "https://github.com/pillarjs/send", - "_id": "send@0.13.2", - "_shasum": "765e7607c8055452bba6f0b052595350986036de", - "_from": "send@0.13.2", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "765e7607c8055452bba6f0b052595350986036de", - "tarball": "https://registry.npmjs.org/send/-/send-0.13.2.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/send-0.13.2.tgz_1457238386348_0.8199156709015369" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/package.json deleted file mode 100644 index 7bbbfd7f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/serve-static/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "serve-static", - "description": "Serve static files", - "version": "1.10.3", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/expressjs/serve-static.git" - }, - "dependencies": { - "escape-html": "~1.0.3", - "parseurl": "~1.3.1", - "send": "0.13.2" - }, - "devDependencies": { - "eslint": "2.11.1", - "eslint-config-standard": "5.3.1", - "eslint-plugin-promise": "1.3.1", - "eslint-plugin-standard": "1.3.2", - "istanbul": "0.4.3", - "mocha": "2.5.3", - "supertest": "1.1.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">= 0.8.0" - }, - "scripts": { - "lint": "eslint **/*.js", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - }, - "gitHead": "8be028d005967471832109d777daa4b45bd1948b", - "bugs": { - "url": "https://github.com/expressjs/serve-static/issues" - }, - "homepage": "https://github.com/expressjs/serve-static#readme", - "_id": "serve-static@1.10.3", - "_shasum": "ce5a6ecd3101fed5ec09827dac22a9c29bfb0535", - "_from": "serve-static@>=1.10.2 <1.11.0", - "_npmVersion": "2.15.1", - "_nodeVersion": "4.4.3", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "dist": { - "shasum": "ce5a6ecd3101fed5ec09827dac22a9c29bfb0535", - "tarball": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz" - }, - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/serve-static-1.10.3.tgz_1464664781274_0.7150349044241011" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/.jshintrc deleted file mode 100644 index a0cebdb6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/.jshintrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "onevar" : true, - "undef" : true, - "newcap" : true, - "regexp" : true, - "bitwise" : true, - "maxerr" : 50, - "indent" : 4, - "white" : false, - "nomen" : false, - "plusplus" : false -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/.npmignore deleted file mode 100644 index 155a34cc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -dev/ -build.xml diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/.project b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/.project deleted file mode 100644 index 2bc710fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/.project +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>js-signals</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>com.aptana.ide.core.unifiedBuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>com.aptana.projects.webnature</nature> - </natures> -</projectDescription> diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/CHANGELOG.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/CHANGELOG.markdown deleted file mode 100644 index 51f2e4be..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/CHANGELOG.markdown +++ /dev/null @@ -1,294 +0,0 @@ -# JS-Signals Changelog # - - -## v1.0.0 (2012/11/29) ## - - - bump version! API is stable for a long time. (#52) - - - -## v0.9.0 (2012/10/31) ## - - - auto bind `Signal.dispatch()` context. (#47) - - add `SignalBinding.getSignal()`. (#48) - - - -## v0.8.1 (2012/07/31) ## - - - fix AMD `define()` bug introduced on v0.8.0 (#46) - - - -## v0.8.0 (2012/07/31) ## - - - expose Signal constructor for brevity instead of namespace while still - keeping an alias for backwards compatibility. (#44) - - - -## v0.7.4 (2012/02/24) ## - -### Fixes ### - - - changed UMD to use unnamed define.(#41) - - - -## v0.7.3 (2012/02/02) ## - -### Fixes ### - - - `remove()` and `has()` now accepts the `context` as second argument. (#40) - - - -## v0.7.2 (2012/01/12) ## - -### Fixes ### - - - allow `add()` and `addOnce()` same method multiple times if passing - different context. (#39) - - - -## v0.7.1 (2011/11/29) ## - - - Improve `dispatch()` performance if `Signal` doesn't have any listeners. - - - -## v0.7.0 (2011/11/02) ## - -### API changes ### - - - Added: - - `Signal.memorize`. (#29) - - `Signal.forget()`. (#29) - - `Signal.has()`. (#35) - -### Other ### - - - changed the way the code is wrapped to have a single distribution file for - all the environments. (#33) - - - -## v0.6.3 (2011/07/11) ## - -### Fixes ### - - - improved `SignalBinding.detach()` behavior. (#25) - -### API changes ### - - - Added: - - `SignalBinding.prototype.isBound()` (#25) - - `SignalBinding.params` (#28) - - - Removed: - - `SignalBinding.prototype.dispose()` (#27) - -### Other ### - - - minor code cleaning, better error messages. - - - -## v0.6.2 (2011/06/11) ## - -### Fixes ### - - - removing a listener during dispatch was causing an error since listener was - undefined. (#24 - thanks @paullewis) - -### Other ### - - - minor code cleaning. - - renamed distribution files to "signals.js" (#22) - - - -## v0.6.1 (2011/05/03) ## - - - added NPM package.json and CommmonJS wrapper for NPM distribution. (#21 - thanks @tomyan) - - - -## v0.6 (2011/04/09) ## - -### API changes ### - - - Added: - - `Signal.active` - - `SignalBinding.active` - - - Removed: - - `Signal.protytpe.enable()` - - `Signal.protytpe.disable()` - - `Signal.protytpe.isEnabled()` - - `SignalBinding.protytpe.enable()` - - `SignalBinding.protytpe.disable()` - - `SignalBinding.protytpe.isEnabled()` - -### Other ### - - - created AMD wrapped version. - - switched from "module pattern" to a closure with a global export. - - - -## v0.5.3 (2011/02/21) ## - -### API changes ### - - - added priority parameter to `add` and `addOnce`. - -### Other ### - - - improved code structure. - - - -## v0.5.2 (2011/02/18) ## - -### Other ### - - - changed to a module pattern. - - added YUI test coverage. - - improved build and src files structure. - - simplified `remove`, `removeAll`, `add`. - - improved error messages. - - - -## v0.5.1 (2011/01/30) ## - -### API changes ### - - - made `SignalBinding` constructor private. (#15) - - changed params order on `SignalBinding` constructor. - - removed `signals.isDef()`. (#14) - -### Other ### - - - added JSLint to the build process. (#12) - - validated source code using JSLint. (#13) - - improved docs. - - - -## v0.5 (2010/12/03) ## - -### API changes ### - - - Added: - - `SignalBinding.prototype.getListener()` (#3) - - `Signal.prototype.dispose()` (#6) - - `signals.VERSION` - - `signals.isDef()` - - - Removed: - - `SignalBinding.listener` (#3) - - - Renamed: - - `SignalBinding.listenerScope` -> `SignalBinding.context` (#4) - -### Fixes ### - - - Removed unnecessary function names (#5) - - Improved `remove()`, `removeAll()` to dispose binding (#10) - -### Test Changes ### - - - Added different HTML files to test dev/dist/min files. - - Updated test cases to match new API. - -### Other ### - - - Improved source code comments and documentation. - - Small refactoring for better organization and DRY. - - Added error messages for required params. - - Removed unnecessary info from `SignalBinding.toString()`. - - - -## v0.4 (2010/11/27) ## - -### API changes ### - - - Added: - - `SignalBinding.prototype.detach()` - - `SignalBinding.prototype.dispose()` - -### Test Changes ### - - - Added test cases for `detach` and `dispose`. - -### Other ### - - - Improved docs for a few methods. - - Added internal method `Signal.prototype._addBinding()`. - - - -## v0.3 (2010/11/27) ## - -### API changes ### - - - Renamed: - - `Signal.prototype.stopPropagation()` -> `Signal.prototype.halt()` - - `Signal.prototype.pause()` -> `Signal.prototype.disable()` - - `Signal.prototype.resume()` -> `Signal.prototype.enable()` - - `Signal.prototype.isPaused()` -> `Signal.prototype.isEnabled()` - - `SignalBinding.prototype.pause()` -> `SignalBinding.prototype.disable()` - - `SignalBinding.prototype.resume()` -> `SignalBinding.prototype.enable()` - - `SignalBinding.prototype.isPaused()` -> `SignalBinding.prototype.isEnabled()` - -### Fixes ### - - - Calling `halt()` before/after `dispatch()` doesn't affect listeners execution anymore, `halt()` only works during propagation. - -### Test Changes ### - - - updated API calls to reflect new method names. - - added tests that match `halt()` before/after `dispatch()`. - -### Other ### - -Added inline documentation to source code and included an HTML version of the documentation together with distribution files. - - - -## v0.2 (2010/11/26) ## - -### API changes ### - - - Added: - - `Signal.prototype.pause()` - - `Signal.prototype.resume()` - - `Signal.prototype.isPaused()` - - `Signal.prototype.stopPropagation()` - -### Fixes ### - - - `SignalBinding.prototype.isPaused()` - -### Test Changes ### - - - Increased test coverage a lot. - - Tests added: - - pause/resume (for individual bindings and signal) - - stopPropagation (using `return false` and `Signal.prototype.stopPropagation()`) - - `SignalBindings.prototype.isOnce()` - - if same listener added twice returns same binding - -### Other ### - -Small refactoring and code cleaning. - - - -## v0.1 (2010/11/26) ## - - - initial release, support of basic features. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/README.markdown b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/README.markdown deleted file mode 100644 index 0a2e4cf2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/README.markdown +++ /dev/null @@ -1,83 +0,0 @@ - -# JS-Signals # - -Custom event/messaging system for JavaScript inspired by [AS3-Signals](https://github.com/robertpenner/as3-signals). - -For a more in-depth introduction read the [JS-Signals Project Page](http://millermedeiros.github.com/js-signals/) and visit the links below. - - -## Links ## - - * [Project Page](http://millermedeiros.github.com/js-signals/) - * [Wiki](http://github.com/millermedeiros/js-signals/wiki/) - * [Documentation](http://millermedeiros.github.com/js-signals/docs) - * [Changelog](http://github.com/millermedeiros/js-signals/blob/master/CHANGELOG.markdown) - * [CompoundSignal - special Signal kind](https://github.com/millermedeiros/CompoundSignal) - - -## License ## - - * [MIT License](http://www.opensource.org/licenses/mit-license.php) - - -## Distribution Files ## - -You can use the same distribution file for all the evironments, browser script -tag, AMD, CommonJS (since v0.7.0). - -Files inside `dist` folder: - - * docs/index.html : Documentation. - * signals.js : Uncompressed source code with comments. - * signals.min.js : Compressed code. - -You can install JS-Signals on Node.js using [NPM](http://npmjs.org/) - - npm install signals - - -## CompoundSignal - -Note that there is an advanced Signal type called `CompoundSignal` that is -compatible with js-signals v0.7.0+. It's useful for cases where you may need to -execute an action after multiple Signals are dispatched. It was split into its' -own repository since this feature isn't always needed and that way it can be -easily distributed trough npm. - -[CompoundSignal repository](https://github.com/millermedeiros/CompoundSignal) - - - -## Repository Structure ## - -### Folder Structure ### - - dev -> development files - |- build -> files used on the build process - |- src -> source files - |- tests -> unit tests - dist -> distribution files - |- docs -> documentation - -### Branches ### - - master -> always contain code from the latest stable version - release-** -> code canditate for the next stable version (alpha/beta) - develop -> main development branch (nightly) - **other** -> features/hotfixes/experimental, probably non-stable code - - -## Building your own ## - -This project uses [Apache Ant](http://ant.apache.org/) for the build process. If for some reason you need to build a custom version of JS-Signals install Ant and run: - - ant build - -This will delete all JS files inside the `dist` folder, merge/update/compress source files, validate generated code using [JSLint](http://www.jslint.com/) and copy the output to the `dist` folder. - -There is also another ant task that runs the build task and generate -documentation (used before each deploy): - - ant deploy - -**IMPORTANT:** `dist` folder always contain the latest version, regular users should **not** need to run build task. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/files.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/files.html deleted file mode 100644 index 6c8196b1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/files.html +++ /dev/null @@ -1,68 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> - <head> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - - <title>JsDoc Reference - File Index - - - - - - - -

            - - - -
            -

            File Index

            - - - - - -
            -
            -
            - - Documentation generated by JsDoc Toolkit 2.4.0 on Thu Nov 29 2012 17:48:56 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
            - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/index.html deleted file mode 100644 index 47e4b470..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/index.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - JsDoc Reference - Index - - - - - - - - -
            -
            - -
            - -

            Index

            - -

            Classes

            - - -
            - -
            -

            Class Index

            - - -
            - -
            - Built-In Namespace -
            -

            _global_

            - -
            - -
            - -
            - Class -
            -

            Signal

            - -
            - -
            - -
            - Class -
            -

            SignalBinding

            - -
            - -
            - -
            - Namespace -
            -

            signals

            - -
            - -
            - -
            -
            - - Documentation generated by JsDoc Toolkit 2.4.0 on Thu Nov 29 2012 17:48:56 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
            - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/static/default.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/static/default.css deleted file mode 100644 index 0401aef2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/static/default.css +++ /dev/null @@ -1,248 +0,0 @@ -/* - * based on urso jsdoc-simple template: http://github.com/urso/jsdoc-simple - * adapted by Miller Medeiros (http://millermedeiros.com/) - */ - -/* default.css */ -html{ - overflow-y:scroll; -} - -body -{ - font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif; - min-width: 1000px; - max-width: 1400px; - margin:0 auto; -} - -.header -{ - clear: both; - background-color: #ccc; -} - -a -{ - text-decoration: none; - color: #c00; - outline:none; -} - -a:active, a:focus, a:hover{ - color: #333; -} - -h1 -{ - font-size: 1.5em; - font-weight: bold; - padding: 0; - margin: 1em 0 0 .3em; -} - -hr -{ - border: none 0; - border-top: 1px solid #7F8FB1; - height: 1px; -} - -pre.code -{ - display: block; - padding: 8px; - border: 1px dashed #ccc; -} - -#header{ - /*height: 110px;*/ -} - -#index -{ - float: left; - width: 200px; - padding: 20px; -} - -#symbolList -{ - margin: 20px; - width: 200px; - float:right; -} - -#symbolList ul -{ - padding: 0; - margin: 0; - padding-left: 8px; - list-style: none; - font-size: 0.85em; -} - -#symbolList h3 -{ - margin-top:1.2em; - margin-bottom: 0.5em; -} - -#symbolList ul li -{ - padding: 0; - margin: 0; -} - -#content -{ - text-align: left; - padding:0 260px; - margin:0; -} - -.classList -{ - list-style-type: none; - padding: 0; - margin: 0 0 0 8px; - font-family: arial, sans-serif; - font-size: 1em; - overflow: auto; -} - -.classList li -{ - padding: 0; - margin: 0 0 8px 0; -} - -.summaryTable { width: 100%; } - -h1.classTitle -{ - font-size:1.7em; - line-height:1.3em; -} - -h2 { font-size: 1.1em; } -caption, div.sectionTitle -{ - background-color: #ddd; - color: #333; - font-size:1.3em; - text-align: left; - padding: 2px 6px 2px 6px; - margin-top: 1.5em; - border: 1px #ddd solid; -} - -div.sectionTitle { margin-bottom: 8px; } -.summaryTable thead { display: none; } - -.summaryTable td -{ - vertical-align: top; - padding: 4px; - border-bottom: 1px #7F8FB1 solid; - border-right: 1px #7F8FB1 solid; -} - -/*col#summaryAttributes {}*/ -.summaryTable td.attributes -{ - border-left: 1px #7F8FB1 solid; - width: 140px; - text-align: right; -} - -.fixedFont b -{ - color: #c00; -} - -td.attributes, .fixedFont -{ - line-height: 1.1em; - /* color: #002EBE; */ - font-family: "Courier New",Courier,monospace; - font-size: 1.3em; -} - -.modifiers { - float: right; - /* padding: 0 2em 0 2em; */ - padding: 0; - font-size: 0.85em; -} - -.member .description -{ - margin: 0.75em 0 0 0; - padding: 0 0.5em 0 0.5em; -} - -.summaryTable td.nameDescription -{ - text-align: left; - font-size: 1.1em; - line-height: 1.2em; -} - -.summaryTable td.nameDescription, .description -{ - line-height: 15px; - padding: 4px; - padding-left: 4px; -} - -.summaryTable { margin-bottom: 8px; } - -ul.inheritsList -{ - list-style: square; - margin-left: 20px; - padding-left: 0; -} - -.detailList { - margin-left: 20px; - line-height: 15px; -} -.detailList dt { margin-left: 20px; } - -.detailList .heading -{ - font-weight: bold; - padding-bottom: 6px; - margin-left: 0; -} - -.member -{ - border: 1px solid #ccc; - background: #f8f8ff; - margin: 1em 0 1em 0; - padding: 0.75em; -} - -.light, td.attributes, .light a:link, .light a:visited -{ - color: #777; - font-style: italic; -} - -code { - /*display: block; - margin: 1em;*/ - border: 1px solid #ccc; - padding: 2px 5px; - background: #f8f8ff; -} - -.fineprint -{ - text-align: right; - font-size: 10px; - padding:10px 0 20px; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbolindex.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbolindex.html deleted file mode 100644 index 02f80b25..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbolindex.html +++ /dev/null @@ -1,333 +0,0 @@ - - - - - - JsDoc Reference - Index - - - - - - - - - - - - -
            -
            - -
            - -

            Index

            - -

            Classes

            - - -
            - -
            -

            Symbol Index

            -
            -
            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            active - - Signal#active - - SignalBinding#active - -
            add - - Signal#add - -
            addOnce - - Signal#addOnce - -
            context - - SignalBinding#context - -
            detach - - SignalBinding#detach - -
            dispatch - - Signal#dispatch - -
            dispose - - Signal#dispose - -
            execute - - SignalBinding#execute - -
            forget - - Signal#forget - -
            getListener - - SignalBinding#getListener - -
            getNumListeners - - Signal#getNumListeners - -
            getSignal - - SignalBinding#getSignal - -
            halt - - Signal#halt - -
            has - - Signal#has - -
            isBound - - SignalBinding#isBound - -
            isOnce - - SignalBinding#isOnce - -
            memorize - - Signal#memorize - -
            params - - SignalBinding#params - -
            remove - - Signal#remove - -
            removeAll - - Signal#removeAll - -
            Signal - - Signal - - signals.Signal - -
            SignalBinding - - SignalBinding - -
            signals - - signals - -
            toString - - Signal#toString - - SignalBinding#toString - -
            VERSION - - Signal#VERSION - -
            -
            -
            -
            -
            - - Documentation generated by JsDoc Toolkit 2.4.0 on Thu Nov 29 2012 17:48:56 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
            - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/Signal.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/Signal.html deleted file mode 100644 index 83772296..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/Signal.html +++ /dev/null @@ -1,751 +0,0 @@ - - - - - - - JsDoc Reference - Signal - - - - - - - - - - - - - -
            -
            - -
            - -

            Index

            - -

            Classes

            - - -
            - -
            - - -

            - Class -

            - - - - - - - -

            Fields

            - - - - - - - -

            Methods

            - - - - - - - - -
            - -
            - -

            - Class Signal -

            - - -

            - - - - - - -
            Defined in: signals.js. - -

            - - - -
            -
            - Class Detail -
            - -
            - Signal() -
            - -
            -

            Custom event broadcaster -
            - inspired by Robert Penner's AS3 Signals.

            -
            Author: Miller Medeiros. -
            - - - - - - - - - - - - -
            - - - - -
            -
            - Field Detail -
            - -
            - -
            -
            -
            - - {boolean} - active - -
            -
            -

            If Signal is active and should broadcast events.

            - -

            IMPORTANT: Setting this property during a dispatch will only affect the next dispatch, if you want to stop the propagation of a signal use `halt()` instead.

            - - -
            - - - - - - - -
            - -
            - -
            -
            -
            - - {boolean} - memorize - -
            -
            -

            If Signal should keep record of previously dispatched parameters and -automatically execute listener during add()/addOnce() if Signal was -already dispatched before.

            - - -
            - - - - - - - -
            - -
            - -
            -
            -
            - - {String} - VERSION - -
            -
            -

            Signals Version Number

            - - -
            - - - - - - - -
            - -
            - - - - -
            -
            - Method Detail -
            - -
            - -
            -
            -
            - {SignalBinding} - add(listener, listenerContext, priority) - -
            -
            -

            Add a listener to the signal.

            - - -
            - - - - -
            -
            Parameters:
            - -
            - {Function} listener - -
            -
            Signal handler function.
            - -
            - {Object} listenerContext - Optional -
            -
            Context on which listener will be executed (object that should represent the `this` variable inside listener function).
            - -
            - {Number} priority - Optional -
            -
            The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
            - -
            - - - - - -
            -
            Returns:
            - -
            {SignalBinding} An Object representing the binding between the Signal and listener.
            - -
            - - - - -
            - -
            - -
            -
            -
            - {SignalBinding} - addOnce(listener, listenerContext, priority) - -
            -
            -

            Add listener to the signal that should be removed after first execution (will be executed only once).

            - - -
            - - - - -
            -
            Parameters:
            - -
            - {Function} listener - -
            -
            Signal handler function.
            - -
            - {Object} listenerContext - Optional -
            -
            Context on which listener will be executed (object that should represent the `this` variable inside listener function).
            - -
            - {Number} priority - Optional -
            -
            The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
            - -
            - - - - - -
            -
            Returns:
            - -
            {SignalBinding} An Object representing the binding between the Signal and listener.
            - -
            - - - - -
            - -
            - -
            -
            -
            - - dispatch(params) - -
            -
            -

            Dispatch/Broadcast Signal to all listeners added to the queue.

            - - -
            - - - - -
            -
            Parameters:
            - -
            - {...*} params - Optional -
            -
            Parameters that should be passed to each handler.
            - -
            - - - - - - - - -
            - -
            - -
            -
            -
            - - dispose() - -
            -
            -

            Remove all bindings from signal and destroy any reference to external objects (destroy Signal object).

            - -

            IMPORTANT: calling any method on the signal instance after calling dispose will throw errors.

            - - -
            - - - - - - - - - - - -
            - -
            - -
            -
            -
            - - forget() - -
            -
            -

            Forget memorized arguments.

            - - -
            - - - - - - - - - - -
            -
            See:
            - -
            Signal.memorize
            - -
            - - -
            - -
            - -
            -
            -
            - {number} - getNumListeners() - -
            -
            - - - -
            - - - - - - - - -
            -
            Returns:
            - -
            {number} Number of listeners attached to the Signal.
            - -
            - - - - -
            - -
            - -
            -
            -
            - - halt() - -
            -
            -

            Stop propagation of the event, blocking the dispatch to next listeners on the queue.

            - -

            IMPORTANT: should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.

            - - -
            - - - - - - - - - - -
            -
            See:
            - -
            Signal.prototype.disable
            - -
            - - -
            - -
            - -
            -
            -
            - {boolean} - has(listener, context) - -
            -
            -

            Check if listener was attached to Signal.

            - - -
            - - - - -
            -
            Parameters:
            - -
            - {Function} listener - -
            -
            - -
            - {Object} context - Optional -
            -
            - -
            - - - - - -
            -
            Returns:
            - -
            {boolean} if Signal has the specified listener.
            - -
            - - - - -
            - -
            - -
            -
            -
            - {Function} - remove(listener, context) - -
            -
            -

            Remove a single listener from the dispatch queue.

            - - -
            - - - - -
            -
            Parameters:
            - -
            - {Function} listener - -
            -
            Handler function that should be removed.
            - -
            - {Object} context - Optional -
            -
            Execution context (since you can add the same handler multiple times if executing in a different context).
            - -
            - - - - - -
            -
            Returns:
            - -
            {Function} Listener handler function.
            - -
            - - - - -
            - -
            - -
            -
            -
            - - removeAll() - -
            -
            -

            Remove all listeners from the Signal.

            - - -
            - - - - - - - - - - - -
            - -
            - -
            -
            -
            - {string} - toString() - -
            -
            - - - -
            - - - - - - - - -
            -
            Returns:
            - -
            {string} String representation of the object.
            - -
            - - - - -
            - -
            - - - - -
            -
            - - - -
            - - Documentation generated by JsDoc Toolkit 2.4.0 on Thu Nov 29 2012 17:48:56 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
            - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/SignalBinding.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/SignalBinding.html deleted file mode 100644 index e234c673..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/SignalBinding.html +++ /dev/null @@ -1,571 +0,0 @@ - - - - - - - JsDoc Reference - SignalBinding - - - - - - - - - - - - - -
            -
            - -
            - -

            Index

            - -

            Classes

            - - -
            - -
            - - -

            - Class -

            - - - - - - - -

            Fields

            - - - - - - - -

            Methods

            - - - - - - - - -
            - -
            - -

            - Class SignalBinding -

            - - -

            - - - - - - -
            Defined in: signals.js. - -

            - - - -
            -
            - Class Detail -
            - -
            - SignalBinding(signal, listener, isOnce, listenerContext, priority) -
            - -
            -

            Object that represents a binding between a Signal and a listener function. -
            - This is an internal constructor and shouldn't be called by regular users. -
            - inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes.

            -
            Author: Miller Medeiros. -
            - - - - - -
            -
            Parameters:
            - -
            - {Signal} signal - -
            -
            Reference to Signal object that listener is currently bound to.
            - -
            - {Function} listener - -
            -
            Handler function bound to the signal.
            - -
            - {boolean} isOnce - -
            -
            If binding should be executed just once.
            - -
            - {Object} listenerContext - Optional -
            -
            Context on which listener will be executed (object that should represent the `this` variable inside listener function).
            - -
            - {Number} priority - Optional -
            -
            The priority level of the event listener. (default = 0).
            - -
            - - - - - - - - -
            - - - - -
            -
            - Field Detail -
            - -
            - -
            -
            -
            - - {boolean} - active - -
            -
            -

            If binding is active and should be executed.

            - - -
            - - - - - - - -
            - -
            - -
            -
            -
            - - {Object|undefined|null} - context - -
            -
            -

            Context on which listener will be executed (object that should represent the this variable inside listener function).

            - - -
            - - - - - - - -
            - -
            - -
            -
            -
            - - {Array|null} - params - -
            -
            -

            Default parameters passed to listener during Signal.dispatch and SignalBinding.execute. (curried parameters)

            - - -
            - - - - - - - -
            - -
            - - - - -
            -
            - Method Detail -
            - -
            - -
            -
            -
            - {Function|null} - detach() - -
            -
            -

            Detach binding from signal. -- alias to: mySignal.remove(myBinding.getListener());

            - - -
            - - - - - - - - -
            -
            Returns:
            - -
            {Function|null} Handler function bound to the signal or `null` if binding was previously detached.
            - -
            - - - - -
            - -
            - -
            -
            -
            - {*} - execute(paramsArr) - -
            -
            -

            Call listener passing arbitrary parameters.

            - -

            If binding was added using `Signal.addOnce()` it will be automatically removed from signal dispatch queue, this method is used internally for the signal dispatch.

            - - -
            - - - - -
            -
            Parameters:
            - -
            - {Array} paramsArr - Optional -
            -
            Array of parameters that should be passed to the listener
            - -
            - - - - - -
            -
            Returns:
            - -
            {*} Value returned by the listener.
            - -
            - - - - -
            - -
            - -
            -
            -
            - {Function} - getListener() - -
            -
            - - - -
            - - - - - - - - -
            -
            Returns:
            - -
            {Function} Handler function bound to the signal.
            - -
            - - - - -
            - -
            - -
            -
            -
            - {Signal} - getSignal() - -
            -
            - - - -
            - - - - - - - - -
            -
            Returns:
            - -
            {Signal} Signal that listener is currently bound to.
            - -
            - - - - -
            - -
            - -
            -
            -
            - {Boolean} - isBound() - -
            -
            - - - -
            - - - - - - - - -
            -
            Returns:
            - -
            {Boolean} `true` if binding is still bound to the signal and have a listener.
            - -
            - - - - -
            - -
            - -
            -
            -
            - {boolean} - isOnce() - -
            -
            - - - -
            - - - - - - - - -
            -
            Returns:
            - -
            {boolean} If SignalBinding will only be executed once.
            - -
            - - - - -
            - -
            - -
            -
            -
            - {string} - toString() - -
            -
            - - - -
            - - - - - - - - -
            -
            Returns:
            - -
            {string} String representation of the object.
            - -
            - - - - -
            - -
            - - - - -
            -
            - - - -
            - - Documentation generated by JsDoc Toolkit 2.4.0 on Thu Nov 29 2012 17:48:56 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
            - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/_global_.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/_global_.html deleted file mode 100644 index b107d586..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/_global_.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - JsDoc Reference - _global_ - - - - - - - - - - - - - -
            -
            - -
            - -

            Index

            - -

            Classes

            - - -
            - -
            - - - - - - - - - - - - - - - - - - -
            - -
            - -

            - Built-In Namespace _global_ -

            - - -

            - - - - - - -

            - - - - - - - - - - - - -
            -
            - - - -
            - - Documentation generated by JsDoc Toolkit 2.4.0 on Thu Nov 29 2012 17:48:56 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
            - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/signals.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/signals.html deleted file mode 100644 index 3ef15e1f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/signals.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - JsDoc Reference - signals - - - - - - - - - - - - - -
            -
            - -
            - -

            Index

            - -

            Classes

            - - -
            - -
            - - -

            - Namespace -

            - - - - - - - -

            Variables

            - - - - - - - - - - - - - -
            - -
            - -

            - Namespace signals -

            - - -

            - - - - - - -
            Defined in: signals.js. - -

            - - - -
            -
            - Namespace Detail -
            - -
            - signals -
            - -
            -

            Signals namespace

            - -
            - - - - - - - - - - - - -
            - - - - -
            -
            - Field Detail -
            - -
            - -
            -
            <static> -
            - - - signals.Signal - -
            -
            -

            Custom event broadcaster

            - - -
            - - - - - - -
            -
            See:
            - -
            Signal
            - -
            - - -
            - -
            - - - - - - - -
            -
            - - - -
            - - Documentation generated by JsDoc Toolkit 2.4.0 on Thu Nov 29 2012 17:48:56 GMT-0200 (BRST) - | template based on Steffen Siering jsdoc-simple. -
            - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/src/_Users_millermedeiros_Projects__open_source_js-signals_dist_signals.js.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/src/_Users_millermedeiros_Projects__open_source_js-signals_dist_signals.js.html deleted file mode 100644 index 3dec6f72..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/docs/symbols/src/_Users_millermedeiros_Projects__open_source_js-signals_dist_signals.js.html +++ /dev/null @@ -1,453 +0,0 @@ -
              1 /*jslint onevar:true, undef:true, newcap:true, regexp:true, bitwise:true, maxerr:50, indent:4, white:false, nomen:false, plusplus:false */
            -  2 /*global define:false, require:false, exports:false, module:false, signals:false */
            -  3 
            -  4 /** @license
            -  5  * JS Signals <http://millermedeiros.github.com/js-signals/>
            -  6  * Released under the MIT license
            -  7  * Author: Miller Medeiros
            -  8  * Version: 1.0.0 - Build: 268 (2012/11/29 05:48 PM)
            -  9  */
            - 10 
            - 11 (function(global){
            - 12 
            - 13     // SignalBinding -------------------------------------------------
            - 14     //================================================================
            - 15 
            - 16     /**
            - 17      * Object that represents a binding between a Signal and a listener function.
            - 18      * <br />- <strong>This is an internal constructor and shouldn't be called by regular users.</strong>
            - 19      * <br />- inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes.
            - 20      * @author Miller Medeiros
            - 21      * @constructor
            - 22      * @internal
            - 23      * @name SignalBinding
            - 24      * @param {Signal} signal Reference to Signal object that listener is currently bound to.
            - 25      * @param {Function} listener Handler function bound to the signal.
            - 26      * @param {boolean} isOnce If binding should be executed just once.
            - 27      * @param {Object} [listenerContext] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
            - 28      * @param {Number} [priority] The priority level of the event listener. (default = 0).
            - 29      */
            - 30     function SignalBinding(signal, listener, isOnce, listenerContext, priority) {
            - 31 
            - 32         /**
            - 33          * Handler function bound to the signal.
            - 34          * @type Function
            - 35          * @private
            - 36          */
            - 37         this._listener = listener;
            - 38 
            - 39         /**
            - 40          * If binding should be executed just once.
            - 41          * @type boolean
            - 42          * @private
            - 43          */
            - 44         this._isOnce = isOnce;
            - 45 
            - 46         /**
            - 47          * Context on which listener will be executed (object that should represent the `this` variable inside listener function).
            - 48          * @memberOf SignalBinding.prototype
            - 49          * @name context
            - 50          * @type Object|undefined|null
            - 51          */
            - 52         this.context = listenerContext;
            - 53 
            - 54         /**
            - 55          * Reference to Signal object that listener is currently bound to.
            - 56          * @type Signal
            - 57          * @private
            - 58          */
            - 59         this._signal = signal;
            - 60 
            - 61         /**
            - 62          * Listener priority
            - 63          * @type Number
            - 64          * @private
            - 65          */
            - 66         this._priority = priority || 0;
            - 67     }
            - 68 
            - 69     SignalBinding.prototype = {
            - 70 
            - 71         /**
            - 72          * If binding is active and should be executed.
            - 73          * @type boolean
            - 74          */
            - 75         active : true,
            - 76 
            - 77         /**
            - 78          * Default parameters passed to listener during `Signal.dispatch` and `SignalBinding.execute`. (curried parameters)
            - 79          * @type Array|null
            - 80          */
            - 81         params : null,
            - 82 
            - 83         /**
            - 84          * Call listener passing arbitrary parameters.
            - 85          * <p>If binding was added using `Signal.addOnce()` it will be automatically removed from signal dispatch queue, this method is used internally for the signal dispatch.</p>
            - 86          * @param {Array} [paramsArr] Array of parameters that should be passed to the listener
            - 87          * @return {*} Value returned by the listener.
            - 88          */
            - 89         execute : function (paramsArr) {
            - 90             var handlerReturn, params;
            - 91             if (this.active && !!this._listener) {
            - 92                 params = this.params? this.params.concat(paramsArr) : paramsArr;
            - 93                 handlerReturn = this._listener.apply(this.context, params);
            - 94                 if (this._isOnce) {
            - 95                     this.detach();
            - 96                 }
            - 97             }
            - 98             return handlerReturn;
            - 99         },
            -100 
            -101         /**
            -102          * Detach binding from signal.
            -103          * - alias to: mySignal.remove(myBinding.getListener());
            -104          * @return {Function|null} Handler function bound to the signal or `null` if binding was previously detached.
            -105          */
            -106         detach : function () {
            -107             return this.isBound()? this._signal.remove(this._listener, this.context) : null;
            -108         },
            -109 
            -110         /**
            -111          * @return {Boolean} `true` if binding is still bound to the signal and have a listener.
            -112          */
            -113         isBound : function () {
            -114             return (!!this._signal && !!this._listener);
            -115         },
            -116 
            -117         /**
            -118          * @return {boolean} If SignalBinding will only be executed once.
            -119          */
            -120         isOnce : function () {
            -121             return this._isOnce;
            -122         },
            -123 
            -124         /**
            -125          * @return {Function} Handler function bound to the signal.
            -126          */
            -127         getListener : function () {
            -128             return this._listener;
            -129         },
            -130 
            -131         /**
            -132          * @return {Signal} Signal that listener is currently bound to.
            -133          */
            -134         getSignal : function () {
            -135             return this._signal;
            -136         },
            -137 
            -138         /**
            -139          * Delete instance properties
            -140          * @private
            -141          */
            -142         _destroy : function () {
            -143             delete this._signal;
            -144             delete this._listener;
            -145             delete this.context;
            -146         },
            -147 
            -148         /**
            -149          * @return {string} String representation of the object.
            -150          */
            -151         toString : function () {
            -152             return '[SignalBinding isOnce:' + this._isOnce +', isBound:'+ this.isBound() +', active:' + this.active + ']';
            -153         }
            -154 
            -155     };
            -156 
            -157 
            -158 /*global SignalBinding:false*/
            -159 
            -160     // Signal --------------------------------------------------------
            -161     //================================================================
            -162 
            -163     function validateListener(listener, fnName) {
            -164         if (typeof listener !== 'function') {
            -165             throw new Error( 'listener is a required param of {fn}() and should be a Function.'.replace('{fn}', fnName) );
            -166         }
            -167     }
            -168 
            -169     /**
            -170      * Custom event broadcaster
            -171      * <br />- inspired by Robert Penner's AS3 Signals.
            -172      * @name Signal
            -173      * @author Miller Medeiros
            -174      * @constructor
            -175      */
            -176     function Signal() {
            -177         /**
            -178          * @type Array.<SignalBinding>
            -179          * @private
            -180          */
            -181         this._bindings = [];
            -182         this._prevParams = null;
            -183 
            -184         // enforce dispatch to aways work on same context (#47)
            -185         var self = this;
            -186         this.dispatch = function(){
            -187             Signal.prototype.dispatch.apply(self, arguments);
            -188         };
            -189     }
            -190 
            -191     Signal.prototype = {
            -192 
            -193         /**
            -194          * Signals Version Number
            -195          * @type String
            -196          * @const
            -197          */
            -198         VERSION : '1.0.0',
            -199 
            -200         /**
            -201          * If Signal should keep record of previously dispatched parameters and
            -202          * automatically execute listener during `add()`/`addOnce()` if Signal was
            -203          * already dispatched before.
            -204          * @type boolean
            -205          */
            -206         memorize : false,
            -207 
            -208         /**
            -209          * @type boolean
            -210          * @private
            -211          */
            -212         _shouldPropagate : true,
            -213 
            -214         /**
            -215          * If Signal is active and should broadcast events.
            -216          * <p><strong>IMPORTANT:</strong> Setting this property during a dispatch will only affect the next dispatch, if you want to stop the propagation of a signal use `halt()` instead.</p>
            -217          * @type boolean
            -218          */
            -219         active : true,
            -220 
            -221         /**
            -222          * @param {Function} listener
            -223          * @param {boolean} isOnce
            -224          * @param {Object} [listenerContext]
            -225          * @param {Number} [priority]
            -226          * @return {SignalBinding}
            -227          * @private
            -228          */
            -229         _registerListener : function (listener, isOnce, listenerContext, priority) {
            -230 
            -231             var prevIndex = this._indexOfListener(listener, listenerContext),
            -232                 binding;
            -233 
            -234             if (prevIndex !== -1) {
            -235                 binding = this._bindings[prevIndex];
            -236                 if (binding.isOnce() !== isOnce) {
            -237                     throw new Error('You cannot add'+ (isOnce? '' : 'Once') +'() then add'+ (!isOnce? '' : 'Once') +'() the same listener without removing the relationship first.');
            -238                 }
            -239             } else {
            -240                 binding = new SignalBinding(this, listener, isOnce, listenerContext, priority);
            -241                 this._addBinding(binding);
            -242             }
            -243 
            -244             if(this.memorize && this._prevParams){
            -245                 binding.execute(this._prevParams);
            -246             }
            -247 
            -248             return binding;
            -249         },
            -250 
            -251         /**
            -252          * @param {SignalBinding} binding
            -253          * @private
            -254          */
            -255         _addBinding : function (binding) {
            -256             //simplified insertion sort
            -257             var n = this._bindings.length;
            -258             do { --n; } while (this._bindings[n] && binding._priority <= this._bindings[n]._priority);
            -259             this._bindings.splice(n + 1, 0, binding);
            -260         },
            -261 
            -262         /**
            -263          * @param {Function} listener
            -264          * @return {number}
            -265          * @private
            -266          */
            -267         _indexOfListener : function (listener, context) {
            -268             var n = this._bindings.length,
            -269                 cur;
            -270             while (n--) {
            -271                 cur = this._bindings[n];
            -272                 if (cur._listener === listener && cur.context === context) {
            -273                     return n;
            -274                 }
            -275             }
            -276             return -1;
            -277         },
            -278 
            -279         /**
            -280          * Check if listener was attached to Signal.
            -281          * @param {Function} listener
            -282          * @param {Object} [context]
            -283          * @return {boolean} if Signal has the specified listener.
            -284          */
            -285         has : function (listener, context) {
            -286             return this._indexOfListener(listener, context) !== -1;
            -287         },
            -288 
            -289         /**
            -290          * Add a listener to the signal.
            -291          * @param {Function} listener Signal handler function.
            -292          * @param {Object} [listenerContext] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
            -293          * @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
            -294          * @return {SignalBinding} An Object representing the binding between the Signal and listener.
            -295          */
            -296         add : function (listener, listenerContext, priority) {
            -297             validateListener(listener, 'add');
            -298             return this._registerListener(listener, false, listenerContext, priority);
            -299         },
            -300 
            -301         /**
            -302          * Add listener to the signal that should be removed after first execution (will be executed only once).
            -303          * @param {Function} listener Signal handler function.
            -304          * @param {Object} [listenerContext] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
            -305          * @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
            -306          * @return {SignalBinding} An Object representing the binding between the Signal and listener.
            -307          */
            -308         addOnce : function (listener, listenerContext, priority) {
            -309             validateListener(listener, 'addOnce');
            -310             return this._registerListener(listener, true, listenerContext, priority);
            -311         },
            -312 
            -313         /**
            -314          * Remove a single listener from the dispatch queue.
            -315          * @param {Function} listener Handler function that should be removed.
            -316          * @param {Object} [context] Execution context (since you can add the same handler multiple times if executing in a different context).
            -317          * @return {Function} Listener handler function.
            -318          */
            -319         remove : function (listener, context) {
            -320             validateListener(listener, 'remove');
            -321 
            -322             var i = this._indexOfListener(listener, context);
            -323             if (i !== -1) {
            -324                 this._bindings[i]._destroy(); //no reason to a SignalBinding exist if it isn't attached to a signal
            -325                 this._bindings.splice(i, 1);
            -326             }
            -327             return listener;
            -328         },
            -329 
            -330         /**
            -331          * Remove all listeners from the Signal.
            -332          */
            -333         removeAll : function () {
            -334             var n = this._bindings.length;
            -335             while (n--) {
            -336                 this._bindings[n]._destroy();
            -337             }
            -338             this._bindings.length = 0;
            -339         },
            -340 
            -341         /**
            -342          * @return {number} Number of listeners attached to the Signal.
            -343          */
            -344         getNumListeners : function () {
            -345             return this._bindings.length;
            -346         },
            -347 
            -348         /**
            -349          * Stop propagation of the event, blocking the dispatch to next listeners on the queue.
            -350          * <p><strong>IMPORTANT:</strong> should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.</p>
            -351          * @see Signal.prototype.disable
            -352          */
            -353         halt : function () {
            -354             this._shouldPropagate = false;
            -355         },
            -356 
            -357         /**
            -358          * Dispatch/Broadcast Signal to all listeners added to the queue.
            -359          * @param {...*} [params] Parameters that should be passed to each handler.
            -360          */
            -361         dispatch : function (params) {
            -362             if (! this.active) {
            -363                 return;
            -364             }
            -365 
            -366             var paramsArr = Array.prototype.slice.call(arguments),
            -367                 n = this._bindings.length,
            -368                 bindings;
            -369 
            -370             if (this.memorize) {
            -371                 this._prevParams = paramsArr;
            -372             }
            -373 
            -374             if (! n) {
            -375                 //should come after memorize
            -376                 return;
            -377             }
            -378 
            -379             bindings = this._bindings.slice(); //clone array in case add/remove items during dispatch
            -380             this._shouldPropagate = true; //in case `halt` was called before dispatch or during the previous dispatch.
            -381 
            -382             //execute all callbacks until end of the list or until a callback returns `false` or stops propagation
            -383             //reverse loop since listeners with higher priority will be added at the end of the list
            -384             do { n--; } while (bindings[n] && this._shouldPropagate && bindings[n].execute(paramsArr) !== false);
            -385         },
            -386 
            -387         /**
            -388          * Forget memorized arguments.
            -389          * @see Signal.memorize
            -390          */
            -391         forget : function(){
            -392             this._prevParams = null;
            -393         },
            -394 
            -395         /**
            -396          * Remove all bindings from signal and destroy any reference to external objects (destroy Signal object).
            -397          * <p><strong>IMPORTANT:</strong> calling any method on the signal instance after calling dispose will throw errors.</p>
            -398          */
            -399         dispose : function () {
            -400             this.removeAll();
            -401             delete this._bindings;
            -402             delete this._prevParams;
            -403         },
            -404 
            -405         /**
            -406          * @return {string} String representation of the object.
            -407          */
            -408         toString : function () {
            -409             return '[Signal active:'+ this.active +' numListeners:'+ this.getNumListeners() +']';
            -410         }
            -411 
            -412     };
            -413 
            -414 
            -415     // Namespace -----------------------------------------------------
            -416     //================================================================
            -417 
            -418     /**
            -419      * Signals namespace
            -420      * @namespace
            -421      * @name signals
            -422      */
            -423     var signals = Signal;
            -424 
            -425     /**
            -426      * Custom event broadcaster
            -427      * @see Signal
            -428      */
            -429     // alias for backwards compatibility (see #gh-44)
            -430     signals.Signal = Signal;
            -431 
            -432 
            -433 
            -434     //exports to multiple environments
            -435     if(typeof define === 'function' && define.amd){ //AMD
            -436         define(function () { return signals; });
            -437     } else if (typeof module !== 'undefined' && module.exports){ //node
            -438         module.exports = signals;
            -439     } else { //browser
            -440         //use string because of Google closure compiler ADVANCED_MODE
            -441         /*jslint sub:true */
            -442         global['signals'] = signals;
            -443     }
            -444 
            -445 }(this));
            -446 
            \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/signals.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/signals.js deleted file mode 100644 index 2615d262..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/signals.js +++ /dev/null @@ -1,445 +0,0 @@ -/*jslint onevar:true, undef:true, newcap:true, regexp:true, bitwise:true, maxerr:50, indent:4, white:false, nomen:false, plusplus:false */ -/*global define:false, require:false, exports:false, module:false, signals:false */ - -/** @license - * JS Signals - * Released under the MIT license - * Author: Miller Medeiros - * Version: 1.0.0 - Build: 268 (2012/11/29 05:48 PM) - */ - -(function(global){ - - // SignalBinding ------------------------------------------------- - //================================================================ - - /** - * Object that represents a binding between a Signal and a listener function. - *
            - This is an internal constructor and shouldn't be called by regular users. - *
            - inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes. - * @author Miller Medeiros - * @constructor - * @internal - * @name SignalBinding - * @param {Signal} signal Reference to Signal object that listener is currently bound to. - * @param {Function} listener Handler function bound to the signal. - * @param {boolean} isOnce If binding should be executed just once. - * @param {Object} [listenerContext] Context on which listener will be executed (object that should represent the `this` variable inside listener function). - * @param {Number} [priority] The priority level of the event listener. (default = 0). - */ - function SignalBinding(signal, listener, isOnce, listenerContext, priority) { - - /** - * Handler function bound to the signal. - * @type Function - * @private - */ - this._listener = listener; - - /** - * If binding should be executed just once. - * @type boolean - * @private - */ - this._isOnce = isOnce; - - /** - * Context on which listener will be executed (object that should represent the `this` variable inside listener function). - * @memberOf SignalBinding.prototype - * @name context - * @type Object|undefined|null - */ - this.context = listenerContext; - - /** - * Reference to Signal object that listener is currently bound to. - * @type Signal - * @private - */ - this._signal = signal; - - /** - * Listener priority - * @type Number - * @private - */ - this._priority = priority || 0; - } - - SignalBinding.prototype = { - - /** - * If binding is active and should be executed. - * @type boolean - */ - active : true, - - /** - * Default parameters passed to listener during `Signal.dispatch` and `SignalBinding.execute`. (curried parameters) - * @type Array|null - */ - params : null, - - /** - * Call listener passing arbitrary parameters. - *

            If binding was added using `Signal.addOnce()` it will be automatically removed from signal dispatch queue, this method is used internally for the signal dispatch.

            - * @param {Array} [paramsArr] Array of parameters that should be passed to the listener - * @return {*} Value returned by the listener. - */ - execute : function (paramsArr) { - var handlerReturn, params; - if (this.active && !!this._listener) { - params = this.params? this.params.concat(paramsArr) : paramsArr; - handlerReturn = this._listener.apply(this.context, params); - if (this._isOnce) { - this.detach(); - } - } - return handlerReturn; - }, - - /** - * Detach binding from signal. - * - alias to: mySignal.remove(myBinding.getListener()); - * @return {Function|null} Handler function bound to the signal or `null` if binding was previously detached. - */ - detach : function () { - return this.isBound()? this._signal.remove(this._listener, this.context) : null; - }, - - /** - * @return {Boolean} `true` if binding is still bound to the signal and have a listener. - */ - isBound : function () { - return (!!this._signal && !!this._listener); - }, - - /** - * @return {boolean} If SignalBinding will only be executed once. - */ - isOnce : function () { - return this._isOnce; - }, - - /** - * @return {Function} Handler function bound to the signal. - */ - getListener : function () { - return this._listener; - }, - - /** - * @return {Signal} Signal that listener is currently bound to. - */ - getSignal : function () { - return this._signal; - }, - - /** - * Delete instance properties - * @private - */ - _destroy : function () { - delete this._signal; - delete this._listener; - delete this.context; - }, - - /** - * @return {string} String representation of the object. - */ - toString : function () { - return '[SignalBinding isOnce:' + this._isOnce +', isBound:'+ this.isBound() +', active:' + this.active + ']'; - } - - }; - - -/*global SignalBinding:false*/ - - // Signal -------------------------------------------------------- - //================================================================ - - function validateListener(listener, fnName) { - if (typeof listener !== 'function') { - throw new Error( 'listener is a required param of {fn}() and should be a Function.'.replace('{fn}', fnName) ); - } - } - - /** - * Custom event broadcaster - *
            - inspired by Robert Penner's AS3 Signals. - * @name Signal - * @author Miller Medeiros - * @constructor - */ - function Signal() { - /** - * @type Array. - * @private - */ - this._bindings = []; - this._prevParams = null; - - // enforce dispatch to aways work on same context (#47) - var self = this; - this.dispatch = function(){ - Signal.prototype.dispatch.apply(self, arguments); - }; - } - - Signal.prototype = { - - /** - * Signals Version Number - * @type String - * @const - */ - VERSION : '1.0.0', - - /** - * If Signal should keep record of previously dispatched parameters and - * automatically execute listener during `add()`/`addOnce()` if Signal was - * already dispatched before. - * @type boolean - */ - memorize : false, - - /** - * @type boolean - * @private - */ - _shouldPropagate : true, - - /** - * If Signal is active and should broadcast events. - *

            IMPORTANT: Setting this property during a dispatch will only affect the next dispatch, if you want to stop the propagation of a signal use `halt()` instead.

            - * @type boolean - */ - active : true, - - /** - * @param {Function} listener - * @param {boolean} isOnce - * @param {Object} [listenerContext] - * @param {Number} [priority] - * @return {SignalBinding} - * @private - */ - _registerListener : function (listener, isOnce, listenerContext, priority) { - - var prevIndex = this._indexOfListener(listener, listenerContext), - binding; - - if (prevIndex !== -1) { - binding = this._bindings[prevIndex]; - if (binding.isOnce() !== isOnce) { - throw new Error('You cannot add'+ (isOnce? '' : 'Once') +'() then add'+ (!isOnce? '' : 'Once') +'() the same listener without removing the relationship first.'); - } - } else { - binding = new SignalBinding(this, listener, isOnce, listenerContext, priority); - this._addBinding(binding); - } - - if(this.memorize && this._prevParams){ - binding.execute(this._prevParams); - } - - return binding; - }, - - /** - * @param {SignalBinding} binding - * @private - */ - _addBinding : function (binding) { - //simplified insertion sort - var n = this._bindings.length; - do { --n; } while (this._bindings[n] && binding._priority <= this._bindings[n]._priority); - this._bindings.splice(n + 1, 0, binding); - }, - - /** - * @param {Function} listener - * @return {number} - * @private - */ - _indexOfListener : function (listener, context) { - var n = this._bindings.length, - cur; - while (n--) { - cur = this._bindings[n]; - if (cur._listener === listener && cur.context === context) { - return n; - } - } - return -1; - }, - - /** - * Check if listener was attached to Signal. - * @param {Function} listener - * @param {Object} [context] - * @return {boolean} if Signal has the specified listener. - */ - has : function (listener, context) { - return this._indexOfListener(listener, context) !== -1; - }, - - /** - * Add a listener to the signal. - * @param {Function} listener Signal handler function. - * @param {Object} [listenerContext] Context on which listener will be executed (object that should represent the `this` variable inside listener function). - * @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0) - * @return {SignalBinding} An Object representing the binding between the Signal and listener. - */ - add : function (listener, listenerContext, priority) { - validateListener(listener, 'add'); - return this._registerListener(listener, false, listenerContext, priority); - }, - - /** - * Add listener to the signal that should be removed after first execution (will be executed only once). - * @param {Function} listener Signal handler function. - * @param {Object} [listenerContext] Context on which listener will be executed (object that should represent the `this` variable inside listener function). - * @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0) - * @return {SignalBinding} An Object representing the binding between the Signal and listener. - */ - addOnce : function (listener, listenerContext, priority) { - validateListener(listener, 'addOnce'); - return this._registerListener(listener, true, listenerContext, priority); - }, - - /** - * Remove a single listener from the dispatch queue. - * @param {Function} listener Handler function that should be removed. - * @param {Object} [context] Execution context (since you can add the same handler multiple times if executing in a different context). - * @return {Function} Listener handler function. - */ - remove : function (listener, context) { - validateListener(listener, 'remove'); - - var i = this._indexOfListener(listener, context); - if (i !== -1) { - this._bindings[i]._destroy(); //no reason to a SignalBinding exist if it isn't attached to a signal - this._bindings.splice(i, 1); - } - return listener; - }, - - /** - * Remove all listeners from the Signal. - */ - removeAll : function () { - var n = this._bindings.length; - while (n--) { - this._bindings[n]._destroy(); - } - this._bindings.length = 0; - }, - - /** - * @return {number} Number of listeners attached to the Signal. - */ - getNumListeners : function () { - return this._bindings.length; - }, - - /** - * Stop propagation of the event, blocking the dispatch to next listeners on the queue. - *

            IMPORTANT: should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.

            - * @see Signal.prototype.disable - */ - halt : function () { - this._shouldPropagate = false; - }, - - /** - * Dispatch/Broadcast Signal to all listeners added to the queue. - * @param {...*} [params] Parameters that should be passed to each handler. - */ - dispatch : function (params) { - if (! this.active) { - return; - } - - var paramsArr = Array.prototype.slice.call(arguments), - n = this._bindings.length, - bindings; - - if (this.memorize) { - this._prevParams = paramsArr; - } - - if (! n) { - //should come after memorize - return; - } - - bindings = this._bindings.slice(); //clone array in case add/remove items during dispatch - this._shouldPropagate = true; //in case `halt` was called before dispatch or during the previous dispatch. - - //execute all callbacks until end of the list or until a callback returns `false` or stops propagation - //reverse loop since listeners with higher priority will be added at the end of the list - do { n--; } while (bindings[n] && this._shouldPropagate && bindings[n].execute(paramsArr) !== false); - }, - - /** - * Forget memorized arguments. - * @see Signal.memorize - */ - forget : function(){ - this._prevParams = null; - }, - - /** - * Remove all bindings from signal and destroy any reference to external objects (destroy Signal object). - *

            IMPORTANT: calling any method on the signal instance after calling dispose will throw errors.

            - */ - dispose : function () { - this.removeAll(); - delete this._bindings; - delete this._prevParams; - }, - - /** - * @return {string} String representation of the object. - */ - toString : function () { - return '[Signal active:'+ this.active +' numListeners:'+ this.getNumListeners() +']'; - } - - }; - - - // Namespace ----------------------------------------------------- - //================================================================ - - /** - * Signals namespace - * @namespace - * @name signals - */ - var signals = Signal; - - /** - * Custom event broadcaster - * @see Signal - */ - // alias for backwards compatibility (see #gh-44) - signals.Signal = Signal; - - - - //exports to multiple environments - if(typeof define === 'function' && define.amd){ //AMD - define(function () { return signals; }); - } else if (typeof module !== 'undefined' && module.exports){ //node - module.exports = signals; - } else { //browser - //use string because of Google closure compiler ADVANCED_MODE - /*jslint sub:true */ - global['signals'] = signals; - } - -}(this)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/signals.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/signals.min.js deleted file mode 100644 index a4e36e8d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/dist/signals.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - - JS Signals - Released under the MIT license - Author: Miller Medeiros - Version: 1.0.0 - Build: 268 (2012/11/29 05:48 PM) -*/ -(function(i){function h(a,b,c,d,e){this._listener=b;this._isOnce=c;this.context=d;this._signal=a;this._priority=e||0}function g(a,b){if(typeof a!=="function")throw Error("listener is a required param of {fn}() and should be a Function.".replace("{fn}",b));}function e(){this._bindings=[];this._prevParams=null;var a=this;this.dispatch=function(){e.prototype.dispatch.apply(a,arguments)}}h.prototype={active:!0,params:null,execute:function(a){var b;this.active&&this._listener&&(a=this.params?this.params.concat(a): -a,b=this._listener.apply(this.context,a),this._isOnce&&this.detach());return b},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal;delete this._listener;delete this.context},toString:function(){return"[SignalBinding isOnce:"+this._isOnce+ -", isBound:"+this.isBound()+", active:"+this.active+"]"}};e.prototype={VERSION:"1.0.0",memorize:!1,_shouldPropagate:!0,active:!0,_registerListener:function(a,b,c,d){var e=this._indexOfListener(a,c);if(e!==-1){if(a=this._bindings[e],a.isOnce()!==b)throw Error("You cannot add"+(b?"":"Once")+"() then add"+(!b?"":"Once")+"() the same listener without removing the relationship first.");}else a=new h(this,a,b,c,d),this._addBinding(a);this.memorize&&this._prevParams&&a.execute(this._prevParams);return a}, -_addBinding:function(a){var b=this._bindings.length;do--b;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){for(var c=this._bindings.length,d;c--;)if(d=this._bindings[c],d._listener===a&&d.context===b)return c;return-1},has:function(a,b){return this._indexOfListener(a,b)!==-1},add:function(a,b,c){g(a,"add");return this._registerListener(a,!1,b,c)},addOnce:function(a,b,c){g(a,"addOnce");return this._registerListener(a, -!0,b,c)},remove:function(a,b){g(a,"remove");var c=this._indexOfListener(a,b);c!==-1&&(this._bindings[c]._destroy(),this._bindings.splice(c,1));return a},removeAll:function(){for(var a=this._bindings.length;a--;)this._bindings[a]._destroy();this._bindings.length=0},getNumListeners:function(){return this._bindings.length},halt:function(){this._shouldPropagate=!1},dispatch:function(a){if(this.active){var b=Array.prototype.slice.call(arguments),c=this._bindings.length,d;if(this.memorize)this._prevParams= -b;if(c){d=this._bindings.slice();this._shouldPropagate=!0;do c--;while(d[c]&&this._shouldPropagate&&d[c].execute(b)!==!1)}}},forget:function(){this._prevParams=null},dispose:function(){this.removeAll();delete this._bindings;delete this._prevParams},toString:function(){return"[Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}};var f=e;f.Signal=e;typeof define==="function"&&define.amd?define(function(){return f}):typeof module!=="undefined"&&module.exports?module.exports=f:i.signals= -f})(this); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/package.json deleted file mode 100644 index f6871e1e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "signals", - "description": "Custom Event/Messaging System", - "keywords": [ - "js-signals", - "signals", - "pub/sub", - "event", - "publish", - "subscribe", - "observer" - ], - "homepage": "http://millermedeiros.github.com/js-signals/", - "version": "1.0.0", - "author": { - "name": "Miller Medeiros", - "url": "http://blog.millermedeiros.com/" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/millermedeiros/js-signals.git" - }, - "main": "dist/signals.js", - "bugs": { - "url": "https://github.com/millermedeiros/js-signals/issues" - }, - "directories": { - "doc": "./dist/docs" - }, - "licenses": [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/mit-license.php" - } - ], - "readme": "ERROR: No README data found!", - "_id": "signals@1.0.0", - "dist": { - "shasum": "65f0c1599352b35372ecaae5a250e6107376ed69", - "tarball": "https://registry.npmjs.org/signals/-/signals-1.0.0.tgz" - }, - "maintainers": [ - { - "name": "millermedeiros", - "email": "miller@millermedeiros.com" - } - ], - "_shasum": "65f0c1599352b35372ecaae5a250e6107376ed69", - "_resolved": "https://registry.npmjs.org/signals/-/signals-1.0.0.tgz", - "_from": "signals@>=1.0.0 <1.1.0" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/updateDocs.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/updateDocs.sh deleted file mode 100644 index 9bb3487c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/signals/updateDocs.sh +++ /dev/null @@ -1,12 +0,0 @@ -# update docs on gh-pages branch - -git checkout gh-pages -rm -r docs/ -git checkout master dist/docs/ -mkdir docs/ -mv dist/docs/* docs/. -rm -r dist/ -git add -A -git commit -git checkout master - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/.gitmodules b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/.gitmodules deleted file mode 100644 index 8f7f8c10..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/.gitmodules +++ /dev/null @@ -1,9 +0,0 @@ -[submodule "third-party/mocha"] - path = third-party/mocha - url = https://github.com/visionmedia/mocha.git -[submodule "third-party/eve"] - path = third-party/eve - url = https://github.com/adobe-webplatform/eve.git -[submodule "third-party/expect"] - path = third-party/expect - url = https://github.com/LearnBoost/expect.js.git diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/.npmignore deleted file mode 100644 index 8f4bf8a2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -TAGS -*~ -_* -.DS_Store -node_modules -playground -*.svg \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/1.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/1.html deleted file mode 100644 index e32e45da..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/1.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Test - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/CONTRIBUTING b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/CONTRIBUTING deleted file mode 100644 index c02401aa..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/CONTRIBUTING +++ /dev/null @@ -1,3 +0,0 @@ -Contributions to this code are covered by the Adobe contributors -license agreeent. Developers must sign and submit the Adobe CLA in -order to contribute to this project. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/Gruntfile.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/Gruntfile.js deleted file mode 100644 index 415c624b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/Gruntfile.js +++ /dev/null @@ -1,62 +0,0 @@ -module.exports = function(grunt) { - - var pkg = grunt.file.readJSON("package.json"); - - // Project configuration. - grunt.initConfig({ - // Metadata. - pkg: pkg, - banner: grunt.file.read("./src/copy.js") - .replace(/@VERSION/, pkg.version) - .replace(/@DATE/, grunt.template.today("yyyy-mm-dd")) + "\n", - // Task configuration. - uglify: { - options: { - banner: "<%= banner %>", - report: "min" - }, - dist: { - src: "<%= concat.target.dest %>", - dest: "dist/snap.svg-min.js" - } - }, - concat: { - options: { - banner: "<%= banner %>" - }, - target: { - dest: "dist/snap.svg.js", - src: [ - "./node_modules/eve/eve.js", - "./src/amd-banner.js", - "./src/mina.js", - "./src/svg.js", - "./src/element.js", - "./src/matrix.js", - "./src/attr.js", - "./src/class.js", - "./src/attradd.js", - "./src/paper.js", - "./src/path.js", - "./src/set.js", - "./src/equal.js", - "./src/mouse.js", - "./src/filter.js", - "./src/align.js", - "./src/amd-footer.js" - ] - } - }, - exec: { - dr: { - command: "node node_modules/dr.js/dr dr.json" - } - } - }); - - grunt.loadNpmTasks("grunt-contrib-concat"); - grunt.loadNpmTasks("grunt-contrib-uglify"); - grunt.loadNpmTasks("grunt-exec"); - - grunt.registerTask("default", ["concat", "uglify", "exec"]); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/LICENSE deleted file mode 100644 index 86a96fa8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2013 Adobe Systems Incorporated - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/NOTICE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/NOTICE deleted file mode 100644 index b9fb2b28..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/NOTICE +++ /dev/null @@ -1,190 +0,0 @@ -Snap.svg is licensed under the Apache license version 2.0, January 2004 (see LICENSE file). - -Snap.svg uses the following third party libraries that may have licenses -differing from that of Snap.svg itself. You can find the libraries and their -respective licenses below. - - - eve ./node_modules/eve - - https://github.com/adobe-webplatform/eve/ - - Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - Mocha ./node_modules/mocha - - https://github.com/visionmedia/mocha/ - - (The MIT License) - - Copyright (c) 2011-2013 TJ Holowaychuk - - 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. - - - Expect ./node_modules/expect.js - - https://github.com/LearnBoost/expect.js - - (The MIT License) - - Copyright (c) 2011 Guillermo Rauch - - 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. - - - Grunt ./node_modules/grunt - - http://gruntjs.com - - Copyright (c) 2013 "Cowboy" Ben Alman - - 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. - - - - Backbone ./demos/animated-game/js/backbone.js - - http://backbonejs.org/ - - (The MIT License) - - Copyright (c) 2010-2013 Jeremy Ashkenas, DocumentCloud - - 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. - - - - Underscore ./demos/animated-game/js/underscore.js - - http://underscorejs.org - - (The MIT License) - - Copyright (c) 2010-2013 Jeremy Ashkenas, DocumentCloud - - 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. - - - - jQuery ./demos/animated-game/js/jquery-1.9.0.min.js - - http://http://jquery.com/ - - (The MIT License) - - Copyright 2013 jQuery Foundation and other contributors - http://jquery.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/README.md deleted file mode 100644 index 8040710e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/README.md +++ /dev/null @@ -1,68 +0,0 @@ -[Snap.svg](http://snapsvg.io) -====== - -A JavaScript SVG library for the modern web. Learn more at [snapsvg.io](http://snapsvg.io). - -[Follow us on Twitter.](https://twitter.com/snapsvg) - -### Install -* [Bower](http://bower.io/) - `bower install snap.svg` -* Manual Minified - https://github.com/adobe-webplatform/Snap.svg/raw/master/dist/snap.svg-min.js -* Manual Unminified - https://raw.githubusercontent.com/adobe-webplatform/Snap.svg/master/dist/snap.svg.js - - -### Learn - -* [About Snap.svg](http://snapsvg.io/about/) -* [Getting Started](http://snapsvg.io/start/) -* [API Reference](http://snapsvg.io/docs/) - -### Use - -In your HTML file, load simply by: `` -No other scripts are needed. Both the minified and uncompressed (for development) versions are in the `/dist` folder. - -### Build - -Snap.svg uses [Grunt](http://gruntjs.com/) to build. - -* Open the terminal from the Snap.svg directory: - - cd Snap.svg - -* Install its command line interface (CLI) globally: - - npm install -g grunt-cli - -_*You might need to use `sudo npm`, depending on your configuration._ - -* Install dependencies with npm: - - npm install - -_*Snap.svg uses Grunt 0.4.0. You might want to [read](http://gruntjs.com/getting-started) more on their website if you haven’t upgraded since a lot has changed._ - -* Type `grunt` in the command line to build the files. -* The results will be built into the release folder. -* Alternatively type `grunt watch` to have the build run automatically when you make changes to source files. - -### Contribute - -* [Fill out the CLA](http://snapsvg.io/contributions/). -* [Fork](https://help.github.com/articles/fork-a-repo) the repo. -* Create a branch: - - git checkout -b my_branch - -* Add your changes. -* Commit your changes: - - git commit -am "Added some awesome stuff" - -* Push your branch: - - git push origin my_branch - -* Make a [pull request](https://help.github.com/articles/using-pull-requests) to `dev` branch. - -*Note:* Pull requests to other branches than `dev` or without filled CLA wouldn’t be accepted. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/Untitled-1 b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/Untitled-1 deleted file mode 100644 index 3faf3853..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/Untitled-1 +++ /dev/null @@ -1,2 +0,0 @@ -Created with Snap - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/arc.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/arc.html deleted file mode 100644 index 0c31c2e9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/arc.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - Arc3 - - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/bower.json deleted file mode 100644 index 2d97a8f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/bower.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "Snap.svg", - "version": "0.4.0", - "homepage": "http://snapsvg.io", - "authors": [ - "Dmitry Baranovskiy " - ], - "description": "The JavaScript library for modern SVG graphics", - "main": "dist/snap.svg-min.js", - "keywords": [ - "svg", - "snap", - "js", - "javascript" - ], - "license": "Apache 2", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "demos", - "src" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/component.json deleted file mode 100644 index a9fdee3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/component.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "Snap.svg", - "repo": "adobe-webplatform/Snap.svg", - "description": "The JavaScript library for modern SVG graphics.", - "version": "0.3.0", - "keywords": ["svg", "snap", "js", "javascript"], - "dependencies": {}, - "development": {}, - "main": "dist/snap.svg-min.js", - "scripts": [ - "dist/snap.svg-min.js" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/animated-game/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/animated-game/index.html deleted file mode 100755 index cc02f321..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/animated-game/index.html +++ /dev/null @@ -1,1563 +0,0 @@ - - - - - - - - illustration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            -
            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            -
            - - - - - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/animated-game/js/backbone.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/animated-game/js/backbone.js deleted file mode 100644 index 8b4f60c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/animated-game/js/backbone.js +++ /dev/null @@ -1,1570 +0,0 @@ -// Backbone.js 1.0.0 - -// (c) 2010-2013 Jeremy Ashkenas, DocumentCloud Inc. -// Backbone may be freely distributed under the MIT license. -// For all details and documentation: -// http://backbonejs.org - -(function(root, factory) { - // Set up Backbone appropriately for the environment. - if (typeof exports !== 'undefined') { - // Node/CommonJS, no need for jQuery in that case. - factory(root, exports, require('underscore')); - } else if (typeof define === 'function' && define.amd) { - // AMD - define(['underscore', 'jquery', 'exports'], function(_, $, exports) { - // Export global even in AMD case in case this script is loaded with - // others that may still expect a global Backbone. - root.Backbone = factory(root, exports, _, $); - }); - } else { - // Browser globals - root.Backbone = factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$)); - } -}(this, function(root, Backbone, _, $) { - - // Initial Setup - // ------------- - - // Save the previous value of the `Backbone` variable, so that it can be - // restored later on, if `noConflict` is used. - var previousBackbone = root.Backbone; - - // Create local references to array methods we'll want to use later. - var array = []; - var push = array.push; - var slice = array.slice; - var splice = array.splice; - - // Current version of the library. Keep in sync with `package.json`. - Backbone.VERSION = '1.0.0'; - - // For Backbone's purposes, jQuery, Zepto, or Ender owns the `$` variable. - Backbone.$ = $; - - // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable - // to its previous owner. Returns a reference to this Backbone object. - Backbone.noConflict = function() { - root.Backbone = previousBackbone; - return this; - }; - - // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option - // will fake `"PUT"` and `"DELETE"` requests via the `_method` parameter and - // set a `X-Http-Method-Override` header. - Backbone.emulateHTTP = false; - - // Turn on `emulateJSON` to support legacy servers that can't deal with direct - // `application/json` requests ... will encode the body as - // `application/x-www-form-urlencoded` instead and will send the model in a - // form param named `model`. - Backbone.emulateJSON = false; - - // Backbone.Events - // --------------- - - // A module that can be mixed in to *any object* in order to provide it with - // custom events. You may bind with `on` or remove with `off` callback - // functions to an event; `trigger`-ing an event fires all callbacks in - // succession. - // - // var object = {}; - // _.extend(object, Backbone.Events); - // object.on('expand', function(){ alert('expanded'); }); - // object.trigger('expand'); - // - var Events = Backbone.Events = { - - // Bind an event to a `callback` function. Passing `"all"` will bind - // the callback to all events fired. - on: function(name, callback, context) { - if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this; - this._events || (this._events = {}); - var events = this._events[name] || (this._events[name] = []); - events.push({callback: callback, context: context, ctx: context || this}); - return this; - }, - - // Bind an event to only be triggered a single time. After the first time - // the callback is invoked, it will be removed. - once: function(name, callback, context) { - if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this; - var self = this; - var once = _.once(function() { - self.off(name, once); - callback.apply(this, arguments); - }); - once._callback = callback; - return this.on(name, once, context); - }, - - // Remove one or many callbacks. If `context` is null, removes all - // callbacks with that function. If `callback` is null, removes all - // callbacks for the event. If `name` is null, removes all bound - // callbacks for all events. - off: function(name, callback, context) { - var retain, ev, events, names, i, l, j, k; - if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this; - if (!name && !callback && !context) { - this._events = {}; - return this; - } - - names = name ? [name] : _.keys(this._events); - for (i = 0, l = names.length; i < l; i++) { - name = names[i]; - if (events = this._events[name]) { - this._events[name] = retain = []; - if (callback || context) { - for (j = 0, k = events.length; j < k; j++) { - ev = events[j]; - if ((callback && callback !== ev.callback && callback !== ev.callback._callback) || - (context && context !== ev.context)) { - retain.push(ev); - } - } - } - if (!retain.length) delete this._events[name]; - } - } - - return this; - }, - - // Trigger one or many events, firing all bound callbacks. Callbacks are - // passed the same arguments as `trigger` is, apart from the event name - // (unless you're listening on `"all"`, which will cause your callback to - // receive the true name of the event as the first argument). - trigger: function(name) { - if (!this._events) return this; - var args = slice.call(arguments, 1); - if (!eventsApi(this, 'trigger', name, args)) return this; - var events = this._events[name]; - var allEvents = this._events.all; - if (events) triggerEvents(events, args); - if (allEvents) triggerEvents(allEvents, arguments); - return this; - }, - - // Tell this object to stop listening to either specific events ... or - // to every object it's currently listening to. - stopListening: function(obj, name, callback) { - var listeners = this._listeners; - if (!listeners) return this; - var deleteListener = !name && !callback; - if (typeof name === 'object') callback = this; - if (obj) (listeners = {})[obj._listenerId] = obj; - for (var id in listeners) { - listeners[id].off(name, callback, this); - if (deleteListener) delete this._listeners[id]; - } - return this; - } - - }; - - // Regular expression used to split event strings. - var eventSplitter = /\s+/; - - // Implement fancy features of the Events API such as multiple event - // names `"change blur"` and jQuery-style event maps `{change: action}` - // in terms of the existing API. - var eventsApi = function(obj, action, name, rest) { - if (!name) return true; - - // Handle event maps. - if (typeof name === 'object') { - for (var key in name) { - obj[action].apply(obj, [key, name[key]].concat(rest)); - } - return false; - } - - // Handle space separated event names. - if (eventSplitter.test(name)) { - var names = name.split(eventSplitter); - for (var i = 0, l = names.length; i < l; i++) { - obj[action].apply(obj, [names[i]].concat(rest)); - } - return false; - } - - return true; - }; - - // A difficult-to-believe, but optimized internal dispatch function for - // triggering events. Tries to keep the usual cases speedy (most internal - // Backbone events have 3 arguments). - var triggerEvents = function(events, args) { - var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2]; - switch (args.length) { - case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return; - case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return; - case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return; - case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return; - default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); - } - }; - - var listenMethods = {listenTo: 'on', listenToOnce: 'once'}; - - // Inversion-of-control versions of `on` and `once`. Tell *this* object to - // listen to an event in another object ... keeping track of what it's - // listening to. - _.each(listenMethods, function(implementation, method) { - Events[method] = function(obj, name, callback) { - var listeners = this._listeners || (this._listeners = {}); - var id = obj._listenerId || (obj._listenerId = _.uniqueId('l')); - listeners[id] = obj; - if (typeof name === 'object') callback = this; - obj[implementation](name, callback, this); - return this; - }; - }); - - // Aliases for backwards compatibility. - Events.bind = Events.on; - Events.unbind = Events.off; - - // Allow the `Backbone` object to serve as a global event bus, for folks who - // want global "pubsub" in a convenient place. - _.extend(Backbone, Events); - - // Backbone.Model - // -------------- - - // Backbone **Models** are the basic data object in the framework -- - // frequently representing a row in a table in a database on your server. - // A discrete chunk of data and a bunch of useful, related methods for - // performing computations and transformations on that data. - - // Create a new model with the specified attributes. A client id (`cid`) - // is automatically generated and assigned for you. - var Model = Backbone.Model = function(attributes, options) { - var defaults; - var attrs = attributes || {}; - options || (options = {}); - this.cid = _.uniqueId('c'); - this.attributes = {}; - _.extend(this, _.pick(options, modelOptions)); - if (options.parse) attrs = this.parse(attrs, options) || {}; - if (defaults = _.result(this, 'defaults')) { - attrs = _.defaults({}, attrs, defaults); - } - this.set(attrs, options); - this.changed = {}; - this.initialize.apply(this, arguments); - }; - - // A list of options to be attached directly to the model, if provided. - var modelOptions = ['url', 'urlRoot', 'collection']; - - // Attach all inheritable methods to the Model prototype. - _.extend(Model.prototype, Events, { - - // A hash of attributes whose current and previous value differ. - changed: null, - - // The value returned during the last failed validation. - validationError: null, - - // The default name for the JSON `id` attribute is `"id"`. MongoDB and - // CouchDB users may want to set this to `"_id"`. - idAttribute: 'id', - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize: function(){}, - - // Return a copy of the model's `attributes` object. - toJSON: function(options) { - return _.clone(this.attributes); - }, - - // Proxy `Backbone.sync` by default -- but override this if you need - // custom syncing semantics for *this* particular model. - sync: function() { - return Backbone.sync.apply(this, arguments); - }, - - // Get the value of an attribute. - get: function(attr) { - return this.attributes[attr]; - }, - - // Get the HTML-escaped value of an attribute. - escape: function(attr) { - return _.escape(this.get(attr)); - }, - - // Returns `true` if the attribute contains a value that is not null - // or undefined. - has: function(attr) { - return this.get(attr) != null; - }, - - // Set a hash of model attributes on the object, firing `"change"`. This is - // the core primitive operation of a model, updating the data and notifying - // anyone who needs to know about the change in state. The heart of the beast. - set: function(key, val, options) { - var attr, attrs, unset, changes, silent, changing, prev, current; - if (key == null) return this; - - // Handle both `"key", value` and `{key: value}` -style arguments. - if (typeof key === 'object') { - attrs = key; - options = val; - } else { - (attrs = {})[key] = val; - } - - options || (options = {}); - - // Run validation. - if (!this._validate(attrs, options)) return false; - - // Extract attributes and options. - unset = options.unset; - silent = options.silent; - changes = []; - changing = this._changing; - this._changing = true; - - if (!changing) { - this._previousAttributes = _.clone(this.attributes); - this.changed = {}; - } - current = this.attributes, prev = this._previousAttributes; - - // Check for changes of `id`. - if (this.idAttribute in attrs) this.id = attrs[this.idAttribute]; - - // For each `set` attribute, update or delete the current value. - for (attr in attrs) { - val = attrs[attr]; - if (!_.isEqual(current[attr], val)) changes.push(attr); - if (!_.isEqual(prev[attr], val)) { - this.changed[attr] = val; - } else { - delete this.changed[attr]; - } - unset ? delete current[attr] : current[attr] = val; - } - - // Trigger all relevant attribute changes. - if (!silent) { - if (changes.length) this._pending = true; - for (var i = 0, l = changes.length; i < l; i++) { - this.trigger('change:' + changes[i], this, current[changes[i]], options); - } - } - - // You might be wondering why there's a `while` loop here. Changes can - // be recursively nested within `"change"` events. - if (changing) return this; - if (!silent) { - while (this._pending) { - this._pending = false; - this.trigger('change', this, options); - } - } - this._pending = false; - this._changing = false; - return this; - }, - - // Remove an attribute from the model, firing `"change"`. `unset` is a noop - // if the attribute doesn't exist. - unset: function(attr, options) { - return this.set(attr, void 0, _.extend({}, options, {unset: true})); - }, - - // Clear all attributes on the model, firing `"change"`. - clear: function(options) { - var attrs = {}; - for (var key in this.attributes) attrs[key] = void 0; - return this.set(attrs, _.extend({}, options, {unset: true})); - }, - - // Determine if the model has changed since the last `"change"` event. - // If you specify an attribute name, determine if that attribute has changed. - hasChanged: function(attr) { - if (attr == null) return !_.isEmpty(this.changed); - return _.has(this.changed, attr); - }, - - // Return an object containing all the attributes that have changed, or - // false if there are no changed attributes. Useful for determining what - // parts of a view need to be updated and/or what attributes need to be - // persisted to the server. Unset attributes will be set to undefined. - // You can also pass an attributes object to diff against the model, - // determining if there *would be* a change. - changedAttributes: function(diff) { - if (!diff) return this.hasChanged() ? _.clone(this.changed) : false; - var val, changed = false; - var old = this._changing ? this._previousAttributes : this.attributes; - for (var attr in diff) { - if (_.isEqual(old[attr], (val = diff[attr]))) continue; - (changed || (changed = {}))[attr] = val; - } - return changed; - }, - - // Get the previous value of an attribute, recorded at the time the last - // `"change"` event was fired. - previous: function(attr) { - if (attr == null || !this._previousAttributes) return null; - return this._previousAttributes[attr]; - }, - - // Get all of the attributes of the model at the time of the previous - // `"change"` event. - previousAttributes: function() { - return _.clone(this._previousAttributes); - }, - - // Fetch the model from the server. If the server's representation of the - // model differs from its current attributes, they will be overridden, - // triggering a `"change"` event. - fetch: function(options) { - options = options ? _.clone(options) : {}; - if (options.parse === void 0) options.parse = true; - var model = this; - var success = options.success; - options.success = function(resp) { - if (!model.set(model.parse(resp, options), options)) return false; - if (success) success(model, resp, options); - model.trigger('sync', model, resp, options); - }; - wrapError(this, options); - return this.sync('read', this, options); - }, - - // Set a hash of model attributes, and sync the model to the server. - // If the server returns an attributes hash that differs, the model's - // state will be `set` again. - save: function(key, val, options) { - var attrs, method, xhr, attributes = this.attributes; - - // Handle both `"key", value` and `{key: value}` -style arguments. - if (key == null || typeof key === 'object') { - attrs = key; - options = val; - } else { - (attrs = {})[key] = val; - } - - // If we're not waiting and attributes exist, save acts as `set(attr).save(null, opts)`. - if (attrs && (!options || !options.wait) && !this.set(attrs, options)) return false; - - options = _.extend({validate: true}, options); - - // Do not persist invalid models. - if (!this._validate(attrs, options)) return false; - - // Set temporary attributes if `{wait: true}`. - if (attrs && options.wait) { - this.attributes = _.extend({}, attributes, attrs); - } - - // After a successful server-side save, the client is (optionally) - // updated with the server-side state. - if (options.parse === void 0) options.parse = true; - var model = this; - var success = options.success; - options.success = function(resp) { - // Ensure attributes are restored during synchronous saves. - model.attributes = attributes; - var serverAttrs = model.parse(resp, options); - if (options.wait) serverAttrs = _.extend(attrs || {}, serverAttrs); - if (_.isObject(serverAttrs) && !model.set(serverAttrs, options)) { - return false; - } - if (success) success(model, resp, options); - model.trigger('sync', model, resp, options); - }; - wrapError(this, options); - - method = this.isNew() ? 'create' : (options.patch ? 'patch' : 'update'); - if (method === 'patch') options.attrs = attrs; - xhr = this.sync(method, this, options); - - // Restore attributes. - if (attrs && options.wait) this.attributes = attributes; - - return xhr; - }, - - // Destroy this model on the server if it was already persisted. - // Optimistically removes the model from its collection, if it has one. - // If `wait: true` is passed, waits for the server to respond before removal. - destroy: function(options) { - options = options ? _.clone(options) : {}; - var model = this; - var success = options.success; - - var destroy = function() { - model.trigger('destroy', model, model.collection, options); - }; - - options.success = function(resp) { - if (options.wait || model.isNew()) destroy(); - if (success) success(model, resp, options); - if (!model.isNew()) model.trigger('sync', model, resp, options); - }; - - if (this.isNew()) { - options.success(); - return false; - } - wrapError(this, options); - - var xhr = this.sync('delete', this, options); - if (!options.wait) destroy(); - return xhr; - }, - - // Default URL for the model's representation on the server -- if you're - // using Backbone's restful methods, override this to change the endpoint - // that will be called. - url: function() { - var base = _.result(this, 'urlRoot') || _.result(this.collection, 'url') || urlError(); - if (this.isNew()) return base; - return base + (base.charAt(base.length - 1) === '/' ? '' : '/') + encodeURIComponent(this.id); - }, - - // **parse** converts a response into the hash of attributes to be `set` on - // the model. The default implementation is just to pass the response along. - parse: function(resp, options) { - return resp; - }, - - // Create a new model with identical attributes to this one. - clone: function() { - return new this.constructor(this.attributes); - }, - - // A model is new if it has never been saved to the server, and lacks an id. - isNew: function() { - return this.id == null; - }, - - // Check if the model is currently in a valid state. - isValid: function(options) { - return this._validate({}, _.extend(options || {}, { validate: true })); - }, - - // Run validation against the next complete set of model attributes, - // returning `true` if all is well. Otherwise, fire an `"invalid"` event. - _validate: function(attrs, options) { - if (!options.validate || !this.validate) return true; - attrs = _.extend({}, this.attributes, attrs); - var error = this.validationError = this.validate(attrs, options) || null; - if (!error) return true; - this.trigger('invalid', this, error, _.extend(options || {}, {validationError: error})); - return false; - } - - }); - - // Underscore methods that we want to implement on the Model. - var modelMethods = ['keys', 'values', 'pairs', 'invert', 'pick', 'omit']; - - // Mix in each Underscore method as a proxy to `Model#attributes`. - _.each(modelMethods, function(method) { - Model.prototype[method] = function() { - var args = slice.call(arguments); - args.unshift(this.attributes); - return _[method].apply(_, args); - }; - }); - - // Backbone.Collection - // ------------------- - - // If models tend to represent a single row of data, a Backbone Collection is - // more analagous to a table full of data ... or a small slice or page of that - // table, or a collection of rows that belong together for a particular reason - // -- all of the messages in this particular folder, all of the documents - // belonging to this particular author, and so on. Collections maintain - // indexes of their models, both in order, and for lookup by `id`. - - // Create a new **Collection**, perhaps to contain a specific type of `model`. - // If a `comparator` is specified, the Collection will maintain - // its models in sort order, as they're added and removed. - var Collection = Backbone.Collection = function(models, options) { - options || (options = {}); - if (options.url) this.url = options.url; - if (options.model) this.model = options.model; - if (options.comparator !== void 0) this.comparator = options.comparator; - this._reset(); - this.initialize.apply(this, arguments); - if (models) this.reset(models, _.extend({silent: true}, options)); - }; - - // Default options for `Collection#set`. - var setOptions = {add: true, remove: true, merge: true}; - var addOptions = {add: true, merge: false, remove: false}; - - // Define the Collection's inheritable methods. - _.extend(Collection.prototype, Events, { - - // The default model for a collection is just a **Backbone.Model**. - // This should be overridden in most cases. - model: Model, - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize: function(){}, - - // The JSON representation of a Collection is an array of the - // models' attributes. - toJSON: function(options) { - return this.map(function(model){ return model.toJSON(options); }); - }, - - // Proxy `Backbone.sync` by default. - sync: function() { - return Backbone.sync.apply(this, arguments); - }, - - // Add a model, or list of models to the set. - add: function(models, options) { - return this.set(models, _.defaults(options || {}, addOptions)); - }, - - // Remove a model, or a list of models from the set. - remove: function(models, options) { - models = _.isArray(models) ? models.slice() : [models]; - options || (options = {}); - var i, l, index, model; - for (i = 0, l = models.length; i < l; i++) { - model = this.get(models[i]); - if (!model) continue; - delete this._byId[model.id]; - delete this._byId[model.cid]; - index = this.indexOf(model); - this.models.splice(index, 1); - this.length--; - if (!options.silent) { - options.index = index; - model.trigger('remove', model, this, options); - } - this._removeReference(model); - } - return this; - }, - - // Update a collection by `set`-ing a new list of models, adding new ones, - // removing models that are no longer present, and merging models that - // already exist in the collection, as necessary. Similar to **Model#set**, - // the core operation for updating the data contained by the collection. - set: function(models, options) { - options = _.defaults(options || {}, setOptions); - if (options.parse) models = this.parse(models, options); - if (!_.isArray(models)) models = models ? [models] : []; - var i, l, model, attrs, existing, sort; - var at = options.at; - var sortable = this.comparator && (at == null) && options.sort !== false; - var sortAttr = _.isString(this.comparator) ? this.comparator : null; - var toAdd = [], toRemove = [], modelMap = {}; - - // Turn bare objects into model references, and prevent invalid models - // from being added. - for (i = 0, l = models.length; i < l; i++) { - if (!(model = this._prepareModel(models[i], options))) continue; - - // If a duplicate is found, prevent it from being added and - // optionally merge it into the existing model. - if (existing = this.get(model)) { - if (options.remove) modelMap[existing.cid] = true; - if (options.merge) { - existing.set(model.attributes, options); - if (sortable && !sort && existing.hasChanged(sortAttr)) sort = true; - } - - // This is a new model, push it to the `toAdd` list. - } else if (options.add) { - toAdd.push(model); - - // Listen to added models' events, and index models for lookup by - // `id` and by `cid`. - model.on('all', this._onModelEvent, this); - this._byId[model.cid] = model; - if (model.id != null) this._byId[model.id] = model; - } - } - - // Remove nonexistent models if appropriate. - if (options.remove) { - for (i = 0, l = this.length; i < l; ++i) { - if (!modelMap[(model = this.models[i]).cid]) toRemove.push(model); - } - if (toRemove.length) this.remove(toRemove, options); - } - - // See if sorting is needed, update `length` and splice in new models. - if (toAdd.length) { - if (sortable) sort = true; - this.length += toAdd.length; - if (at != null) { - splice.apply(this.models, [at, 0].concat(toAdd)); - } else { - push.apply(this.models, toAdd); - } - } - - // Silently sort the collection if appropriate. - if (sort) this.sort({silent: true}); - - if (options.silent) return this; - - // Trigger `add` events. - for (i = 0, l = toAdd.length; i < l; i++) { - (model = toAdd[i]).trigger('add', model, this, options); - } - - // Trigger `sort` if the collection was sorted. - if (sort) this.trigger('sort', this, options); - return this; - }, - - // When you have more items than you want to add or remove individually, - // you can reset the entire set with a new list of models, without firing - // any granular `add` or `remove` events. Fires `reset` when finished. - // Useful for bulk operations and optimizations. - reset: function(models, options) { - options || (options = {}); - for (var i = 0, l = this.models.length; i < l; i++) { - this._removeReference(this.models[i]); - } - options.previousModels = this.models; - this._reset(); - this.add(models, _.extend({silent: true}, options)); - if (!options.silent) this.trigger('reset', this, options); - return this; - }, - - // Add a model to the end of the collection. - push: function(model, options) { - model = this._prepareModel(model, options); - this.add(model, _.extend({at: this.length}, options)); - return model; - }, - - // Remove a model from the end of the collection. - pop: function(options) { - var model = this.at(this.length - 1); - this.remove(model, options); - return model; - }, - - // Add a model to the beginning of the collection. - unshift: function(model, options) { - model = this._prepareModel(model, options); - this.add(model, _.extend({at: 0}, options)); - return model; - }, - - // Remove a model from the beginning of the collection. - shift: function(options) { - var model = this.at(0); - this.remove(model, options); - return model; - }, - - // Slice out a sub-array of models from the collection. - slice: function(begin, end) { - return this.models.slice(begin, end); - }, - - // Get a model from the set by id. - get: function(obj) { - if (obj == null) return void 0; - return this._byId[obj.id != null ? obj.id : obj.cid || obj]; - }, - - // Get the model at the given index. - at: function(index) { - return this.models[index]; - }, - - // Return models with matching attributes. Useful for simple cases of - // `filter`. - where: function(attrs, first) { - if (_.isEmpty(attrs)) return first ? void 0 : []; - return this[first ? 'find' : 'filter'](function(model) { - for (var key in attrs) { - if (attrs[key] !== model.get(key)) return false; - } - return true; - }); - }, - - // Return the first model with matching attributes. Useful for simple cases - // of `find`. - findWhere: function(attrs) { - return this.where(attrs, true); - }, - - // Force the collection to re-sort itself. You don't need to call this under - // normal circumstances, as the set will maintain sort order as each item - // is added. - sort: function(options) { - if (!this.comparator) throw new Error('Cannot sort a set without a comparator'); - options || (options = {}); - - // Run sort based on type of `comparator`. - if (_.isString(this.comparator) || this.comparator.length === 1) { - this.models = this.sortBy(this.comparator, this); - } else { - this.models.sort(_.bind(this.comparator, this)); - } - - if (!options.silent) this.trigger('sort', this, options); - return this; - }, - - // Figure out the smallest index at which a model should be inserted so as - // to maintain order. - sortedIndex: function(model, value, context) { - value || (value = this.comparator); - var iterator = _.isFunction(value) ? value : function(model) { - return model.get(value); - }; - return _.sortedIndex(this.models, model, iterator, context); - }, - - // Pluck an attribute from each model in the collection. - pluck: function(attr) { - return _.invoke(this.models, 'get', attr); - }, - - // Fetch the default set of models for this collection, resetting the - // collection when they arrive. If `reset: true` is passed, the response - // data will be passed through the `reset` method instead of `set`. - fetch: function(options) { - options = options ? _.clone(options) : {}; - if (options.parse === void 0) options.parse = true; - var success = options.success; - var collection = this; - options.success = function(resp) { - var method = options.reset ? 'reset' : 'set'; - collection[method](resp, options); - if (success) success(collection, resp, options); - collection.trigger('sync', collection, resp, options); - }; - wrapError(this, options); - return this.sync('read', this, options); - }, - - // Create a new instance of a model in this collection. Add the model to the - // collection immediately, unless `wait: true` is passed, in which case we - // wait for the server to agree. - create: function(model, options) { - options = options ? _.clone(options) : {}; - if (!(model = this._prepareModel(model, options))) return false; - if (!options.wait) this.add(model, options); - var collection = this; - var success = options.success; - options.success = function(resp) { - if (options.wait) collection.add(model, options); - if (success) success(model, resp, options); - }; - model.save(null, options); - return model; - }, - - // **parse** converts a response into a list of models to be added to the - // collection. The default implementation is just to pass it through. - parse: function(resp, options) { - return resp; - }, - - // Create a new collection with an identical list of models as this one. - clone: function() { - return new this.constructor(this.models); - }, - - // Private method to reset all internal state. Called when the collection - // is first initialized or reset. - _reset: function() { - this.length = 0; - this.models = []; - this._byId = {}; - }, - - // Prepare a hash of attributes (or other model) to be added to this - // collection. - _prepareModel: function(attrs, options) { - if (attrs instanceof Model) { - if (!attrs.collection) attrs.collection = this; - return attrs; - } - options || (options = {}); - options.collection = this; - var model = new this.model(attrs, options); - if (!model._validate(attrs, options)) { - this.trigger('invalid', this, attrs, options); - return false; - } - return model; - }, - - // Internal method to sever a model's ties to a collection. - _removeReference: function(model) { - if (this === model.collection) delete model.collection; - model.off('all', this._onModelEvent, this); - }, - - // Internal method called every time a model in the set fires an event. - // Sets need to update their indexes when models change ids. All other - // events simply proxy through. "add" and "remove" events that originate - // in other collections are ignored. - _onModelEvent: function(event, model, collection, options) { - if ((event === 'add' || event === 'remove') && collection !== this) return; - if (event === 'destroy') this.remove(model, options); - if (model && event === 'change:' + model.idAttribute) { - delete this._byId[model.previous(model.idAttribute)]; - if (model.id != null) this._byId[model.id] = model; - } - this.trigger.apply(this, arguments); - } - - }); - - // Underscore methods that we want to implement on the Collection. - // 90% of the core usefulness of Backbone Collections is actually implemented - // right here: - var methods = ['forEach', 'each', 'map', 'collect', 'reduce', 'foldl', - 'inject', 'reduceRight', 'foldr', 'find', 'detect', 'filter', 'select', - 'reject', 'every', 'all', 'some', 'any', 'include', 'contains', 'invoke', - 'max', 'min', 'toArray', 'size', 'first', 'head', 'take', 'initial', 'rest', - 'tail', 'drop', 'last', 'without', 'indexOf', 'shuffle', 'lastIndexOf', - 'isEmpty', 'chain']; - - // Mix in each Underscore method as a proxy to `Collection#models`. - _.each(methods, function(method) { - Collection.prototype[method] = function() { - var args = slice.call(arguments); - args.unshift(this.models); - return _[method].apply(_, args); - }; - }); - - // Underscore methods that take a property name as an argument. - var attributeMethods = ['groupBy', 'countBy', 'sortBy']; - - // Use attributes instead of properties. - _.each(attributeMethods, function(method) { - Collection.prototype[method] = function(value, context) { - var iterator = _.isFunction(value) ? value : function(model) { - return model.get(value); - }; - return _[method](this.models, iterator, context); - }; - }); - - // Backbone.View - // ------------- - - // Backbone Views are almost more convention than they are actual code. A View - // is simply a JavaScript object that represents a logical chunk of UI in the - // DOM. This might be a single item, an entire list, a sidebar or panel, or - // even the surrounding frame which wraps your whole app. Defining a chunk of - // UI as a **View** allows you to define your DOM events declaratively, without - // having to worry about render order ... and makes it easy for the view to - // react to specific changes in the state of your models. - - // Creating a Backbone.View creates its initial element outside of the DOM, - // if an existing element is not provided... - var View = Backbone.View = function(options) { - this.cid = _.uniqueId('view'); - this._configure(options || {}); - this._ensureElement(); - this.initialize.apply(this, arguments); - this.delegateEvents(); - }; - - // Cached regex to split keys for `delegate`. - var delegateEventSplitter = /^(\S+)\s*(.*)$/; - - // List of view options to be merged as properties. - var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events']; - - // Set up all inheritable **Backbone.View** properties and methods. - _.extend(View.prototype, Events, { - - // The default `tagName` of a View's element is `"div"`. - tagName: 'div', - - // jQuery delegate for element lookup, scoped to DOM elements within the - // current view. This should be prefered to global lookups where possible. - $: function(selector) { - return this.$el.find(selector); - }, - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize: function(){}, - - // **render** is the core function that your view should override, in order - // to populate its element (`this.el`), with the appropriate HTML. The - // convention is for **render** to always return `this`. - render: function() { - return this; - }, - - // Remove this view by taking the element out of the DOM, and removing any - // applicable Backbone.Events listeners. - remove: function() { - this.$el.remove(); - this.stopListening(); - return this; - }, - - // Change the view's element (`this.el` property), including event - // re-delegation. - setElement: function(element, delegate) { - if (this.$el) this.undelegateEvents(); - this.$el = element instanceof Backbone.$ ? element : Backbone.$(element); - this.el = this.$el[0]; - if (delegate !== false) this.delegateEvents(); - return this; - }, - - // Set callbacks, where `this.events` is a hash of - // - // *{"event selector": "callback"}* - // - // { - // 'mousedown .title': 'edit', - // 'click .button': 'save' - // 'click .open': function(e) { ... } - // } - // - // pairs. Callbacks will be bound to the view, with `this` set properly. - // Uses event delegation for efficiency. - // Omitting the selector binds the event to `this.el`. - // This only works for delegate-able events: not `focus`, `blur`, and - // not `change`, `submit`, and `reset` in Internet Explorer. - delegateEvents: function(events) { - if (!(events || (events = _.result(this, 'events')))) return this; - this.undelegateEvents(); - for (var key in events) { - var method = events[key]; - if (!_.isFunction(method)) method = this[events[key]]; - if (!method) continue; - - var match = key.match(delegateEventSplitter); - var eventName = match[1], selector = match[2]; - method = _.bind(method, this); - eventName += '.delegateEvents' + this.cid; - if (selector === '') { - this.$el.on(eventName, method); - } else { - this.$el.on(eventName, selector, method); - } - } - return this; - }, - - // Clears all callbacks previously bound to the view with `delegateEvents`. - // You usually don't need to use this, but may wish to if you have multiple - // Backbone views attached to the same DOM element. - undelegateEvents: function() { - this.$el.off('.delegateEvents' + this.cid); - return this; - }, - - // Performs the initial configuration of a View with a set of options. - // Keys with special meaning *(e.g. model, collection, id, className)* are - // attached directly to the view. See `viewOptions` for an exhaustive - // list. - _configure: function(options) { - if (this.options) options = _.extend({}, _.result(this, 'options'), options); - _.extend(this, _.pick(options, viewOptions)); - this.options = options; - }, - - // Ensure that the View has a DOM element to render into. - // If `this.el` is a string, pass it through `$()`, take the first - // matching element, and re-assign it to `el`. Otherwise, create - // an element from the `id`, `className` and `tagName` properties. - _ensureElement: function() { - if (!this.el) { - var attrs = _.extend({}, _.result(this, 'attributes')); - if (this.id) attrs.id = _.result(this, 'id'); - if (this.className) attrs['class'] = _.result(this, 'className'); - var $el = Backbone.$('<' + _.result(this, 'tagName') + '>').attr(attrs); - this.setElement($el, false); - } else { - this.setElement(_.result(this, 'el'), false); - } - } - - }); - - // Backbone.sync - // ------------- - - // Override this function to change the manner in which Backbone persists - // models to the server. You will be passed the type of request, and the - // model in question. By default, makes a RESTful Ajax request - // to the model's `url()`. Some possible customizations could be: - // - // * Use `setTimeout` to batch rapid-fire updates into a single request. - // * Send up the models as XML instead of JSON. - // * Persist models via WebSockets instead of Ajax. - // - // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests - // as `POST`, with a `_method` parameter containing the true HTTP method, - // as well as all requests with the body as `application/x-www-form-urlencoded` - // instead of `application/json` with the model in a param named `model`. - // Useful when interfacing with server-side languages like **PHP** that make - // it difficult to read the body of `PUT` requests. - Backbone.sync = function(method, model, options) { - var type = methodMap[method]; - - // Default options, unless specified. - _.defaults(options || (options = {}), { - emulateHTTP: Backbone.emulateHTTP, - emulateJSON: Backbone.emulateJSON - }); - - // Default JSON-request options. - var params = {type: type, dataType: 'json'}; - - // Ensure that we have a URL. - if (!options.url) { - params.url = _.result(model, 'url') || urlError(); - } - - // Ensure that we have the appropriate request data. - if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) { - params.contentType = 'application/json'; - params.data = JSON.stringify(options.attrs || model.toJSON(options)); - } - - // For older servers, emulate JSON by encoding the request into an HTML-form. - if (options.emulateJSON) { - params.contentType = 'application/x-www-form-urlencoded'; - params.data = params.data ? {model: params.data} : {}; - } - - // For older servers, emulate HTTP by mimicking the HTTP method with `_method` - // And an `X-HTTP-Method-Override` header. - if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) { - params.type = 'POST'; - if (options.emulateJSON) params.data._method = type; - var beforeSend = options.beforeSend; - options.beforeSend = function(xhr) { - xhr.setRequestHeader('X-HTTP-Method-Override', type); - if (beforeSend) return beforeSend.apply(this, arguments); - }; - } - - // Don't process data on a non-GET request. - if (params.type !== 'GET' && !options.emulateJSON) { - params.processData = false; - } - - // If we're sending a `PATCH` request, and we're in an old Internet Explorer - // that still has ActiveX enabled by default, override jQuery to use that - // for XHR instead. Remove this line when jQuery supports `PATCH` on IE8. - if (params.type === 'PATCH' && window.ActiveXObject && - !(window.external && window.external.msActiveXFilteringEnabled)) { - params.xhr = function() { - return new ActiveXObject("Microsoft.XMLHTTP"); - }; - } - - // Make the request, allowing the user to override any Ajax options. - var xhr = options.xhr = Backbone.ajax(_.extend(params, options)); - model.trigger('request', model, xhr, options); - return xhr; - }; - - // Map from CRUD to HTTP for our default `Backbone.sync` implementation. - var methodMap = { - 'create': 'POST', - 'update': 'PUT', - 'patch': 'PATCH', - 'delete': 'DELETE', - 'read': 'GET' - }; - - // Set the default implementation of `Backbone.ajax` to proxy through to `$`. - // Override this if you'd like to use a different library. - Backbone.ajax = function() { - return Backbone.$.ajax.apply(Backbone.$, arguments); - }; - - // Backbone.Router - // --------------- - - // Routers map faux-URLs to actions, and fire events when routes are - // matched. Creating a new one sets its `routes` hash, if not set statically. - var Router = Backbone.Router = function(options) { - options || (options = {}); - if (options.routes) this.routes = options.routes; - this._bindRoutes(); - this.initialize.apply(this, arguments); - }; - - // Cached regular expressions for matching named param parts and splatted - // parts of route strings. - var optionalParam = /\((.*?)\)/g; - var namedParam = /(\(\?)?:\w+/g; - var splatParam = /\*\w+/g; - var escapeRegExp = /[\-{}\[\]+?.,\\\^$|#\s]/g; - - // Set up all inheritable **Backbone.Router** properties and methods. - _.extend(Router.prototype, Events, { - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize: function(){}, - - // Manually bind a single named route to a callback. For example: - // - // this.route('search/:query/p:num', 'search', function(query, num) { - // ... - // }); - // - route: function(route, name, callback) { - if (!_.isRegExp(route)) route = this._routeToRegExp(route); - if (_.isFunction(name)) { - callback = name; - name = ''; - } - if (!callback) callback = this[name]; - var router = this; - Backbone.history.route(route, function(fragment) { - var args = router._extractParameters(route, fragment); - callback && callback.apply(router, args); - router.trigger.apply(router, ['route:' + name].concat(args)); - router.trigger('route', name, args); - Backbone.history.trigger('route', router, name, args); - }); - return this; - }, - - // Simple proxy to `Backbone.history` to save a fragment into the history. - navigate: function(fragment, options) { - Backbone.history.navigate(fragment, options); - return this; - }, - - // Bind all defined routes to `Backbone.history`. We have to reverse the - // order of the routes here to support behavior where the most general - // routes can be defined at the bottom of the route map. - _bindRoutes: function() { - if (!this.routes) return; - this.routes = _.result(this, 'routes'); - var route, routes = _.keys(this.routes); - while ((route = routes.pop()) != null) { - this.route(route, this.routes[route]); - } - }, - - // Convert a route string into a regular expression, suitable for matching - // against the current location hash. - _routeToRegExp: function(route) { - route = route.replace(escapeRegExp, '\\$&') - .replace(optionalParam, '(?:$1)?') - .replace(namedParam, function(match, optional){ - return optional ? match : '([^\/]+)'; - }) - .replace(splatParam, '(.*?)'); - return new RegExp('^' + route + '$'); - }, - - // Given a route, and a URL fragment that it matches, return the array of - // extracted decoded parameters. Empty or unmatched parameters will be - // treated as `null` to normalize cross-browser behavior. - _extractParameters: function(route, fragment) { - var params = route.exec(fragment).slice(1); - return _.map(params, function(param) { - return param ? decodeURIComponent(param) : null; - }); - } - - }); - - // Backbone.History - // ---------------- - - // Handles cross-browser history management, based on either - // [pushState](http://diveintohtml5.info/history.html) and real URLs, or - // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange) - // and URL fragments. If the browser supports neither (old IE, natch), - // falls back to polling. - var History = Backbone.History = function() { - this.handlers = []; - _.bindAll(this, 'checkUrl'); - - // Ensure that `History` can be used outside of the browser. - if (typeof window !== 'undefined') { - this.location = window.location; - this.history = window.history; - } - }; - - // Cached regex for stripping a leading hash/slash and trailing space. - var routeStripper = /^[#\/]|\s+$/g; - - // Cached regex for stripping leading and trailing slashes. - var rootStripper = /^\/+|\/+$/g; - - // Cached regex for detecting MSIE. - var isExplorer = /msie [\w.]+/; - - // Cached regex for removing a trailing slash. - var trailingSlash = /\/$/; - - // Has the history handling already been started? - History.started = false; - - // Set up all inheritable **Backbone.History** properties and methods. - _.extend(History.prototype, Events, { - - // The default interval to poll for hash changes, if necessary, is - // twenty times a second. - interval: 50, - - // Gets the true hash value. Cannot use location.hash directly due to bug - // in Firefox where location.hash will always be decoded. - getHash: function(window) { - var match = (window || this).location.href.match(/#(.*)$/); - return match ? match[1] : ''; - }, - - // Get the cross-browser normalized URL fragment, either from the URL, - // the hash, or the override. - getFragment: function(fragment, forcePushState) { - if (fragment == null) { - if (this._hasPushState || !this._wantsHashChange || forcePushState) { - fragment = this.location.pathname; - var root = this.root.replace(trailingSlash, ''); - if (!fragment.indexOf(root)) fragment = fragment.substr(root.length); - } else { - fragment = this.getHash(); - } - } - return fragment.replace(routeStripper, ''); - }, - - // Start the hash change handling, returning `true` if the current URL matches - // an existing route, and `false` otherwise. - start: function(options) { - if (History.started) throw new Error("Backbone.history has already been started"); - History.started = true; - - // Figure out the initial configuration. Do we need an iframe? - // Is pushState desired ... is it available? - this.options = _.extend({}, {root: '/'}, this.options, options); - this.root = this.options.root; - this._wantsHashChange = this.options.hashChange !== false; - this._wantsPushState = !!this.options.pushState; - this._hasPushState = !!(this.options.pushState && this.history && this.history.pushState); - var fragment = this.getFragment(); - var docMode = document.documentMode; - var oldIE = (isExplorer.exec(navigator.userAgent.toLowerCase()) && (!docMode || docMode <= 7)); - - // Normalize root to always include a leading and trailing slash. - this.root = ('/' + this.root + '/').replace(rootStripper, '/'); - - if (oldIE && this._wantsHashChange) { - this.iframe = Backbone.$(' -
            - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/snap-mascot/snap-logo.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/snap-mascot/snap-logo.html deleted file mode 100644 index b5f9fe17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/snap-mascot/snap-logo.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - Snap - - - - - - - - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/snap-mascot/style.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/snap-mascot/style.css deleted file mode 100644 index f0d7869a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/snap-mascot/style.css +++ /dev/null @@ -1,20 +0,0 @@ -html { - overflow: hidden; -} - -body { - background: #eee; - text-align: center; -} - -svg { - display: inline-block; -} - -iframe { - display: inline-block; - border: none; - height: 300px; - width: 400px; - margin: 10px; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/1.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/1.html deleted file mode 100644 index 31a534c8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/1.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - Tutorial - - - - - - - - -
              -
            1. // Simple dashed pattern on circle -var s = Snap("#svg");
            2. -
            3. // This will be our shape. It could be anything. -var bigCircle = s.circle(150, 150, 100);
            4. -
            5. bigCircle.attr({ - stroke: "#000", - strokeWidth: 5 -});
            6. -
            7. // Now let's create pattern -var p = s.path("M110,95,95,110M115,100,100,115").attr({ - fill: "none", - stroke: "#bada55", - strokeWidth: 4 - }); -
            8. -
            9. //This is where our pattern cut will happen: -var cut = s.rect(100, 100, 10, 10).attr({fill: "#fff", opacity: .5})
            10. -
            11. cut.remove();
            12. -
            13. //make it a pattern -var ptrn = p.pattern(100, 100, 10, 10); -//ptrn is an invisible <pattern> element.
            14. -
            15. // Then use it as a fill on the big circle -bigCircle.attr({ - fill: ptrn -});
            16. -
            17. //We still have access to original path for the pattern, lets animate it a bit:
            18. -
            19. p.animate({strokeWidth: 1, stroke: "#FF4136"}, 1e3); -//Note that pattern could have as many elements as you want
            20. -
            - -
            - - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/2.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/2.html deleted file mode 100644 index a0c1ed4d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/2.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - Tutorial - - - - - - - - -
              -
            1. // Simple dashed pattern on circle with mask -var s = Snap("#svg"); -var bigCircle = s.circle(150, 150, 100).attr({ - fill: "#bada55", - stroke: "#000", - strokeWidth: 6 -}); -var p = s.path("M110,95,95,110M115,100,100,115").attr({ - fill: "none", - stroke: "#bada55", - strokeWidth: 4 - }); -var ptrn = p.pattern(100, 100, 10, 10); -bigCircle.attr({ - fill: ptrn -}); -//Here is our circle from the first Snap-bit. -
            2. -
            3. //Lets create a masking circle
            4. -
            5. var ring = s.circle(150, 150, 92).attr({ - fill: "none", - stroke: "#fff", - strokeWidth: 10 -});
            6. -
            7. //This looks correct, but only because our background is white
            8. -
            9. s.rect(0, 150, 300, 30).attr({fill: "#85144B"}).insertBefore(bigCircle); -//Uh-oh, lets try to apply this ring as a mask:
            10. -
            11. bigCircle.attr({ - mask: ring -});
            12. -
            13. //Not exactly what we want. We need to invert the mask
            14. -
            15. var mask = s.mask();
            16. -
            17. // Background rect: -mask.add(s.rect(0, 0, "100%", "100%").attr({fill: "#fff"}));
            18. -
            19. // and our ring, but black -mask.add(ring.attr({stroke: "#000"}));
            20. -
            21. bigCircle.attr({ - mask: mask -});
            22. -
            23. //Now, let’s animate the ring:
            24. -
            25. ring.animate({r: 10}, 1e3);
            26. - -
            - -
            - - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/3.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/3.html deleted file mode 100644 index ebae735b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/3.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - - Tutorial - - - - - - - - -
              -
            1. // Simple dashed pattern on circle with mask -// Lets connect mask and circle together. Also useful if we have a path -// and can’t calculate offset easily. -var s = Snap("#svg"); -// So, lets start with an empty circle. -// It’s important that it will not have any attributes set -var bigCircle = s.circle(150, 150, 100);
            2. -
            3. //----------------------------------------------------- -// Lets use it again for patterned fill -var c1 = bigCircle.use(); -// Create pattern -var p = s.path("M110,95,95,110M115,100,100,115").attr({ - fill: "none", - stroke: "#bada55", - strokeWidth: 4 - }); -var ptrn = p.pattern(100, 100, 10, 10); -// and apply some nice attributes -c1.attr({ - fill: ptrn -});
            4. -
            5. //----------------------------------------------------- -// Lets use it for stroke -var c2 = bigCircle.use(); -c2.attr({ - fill: "none", - stroke: "#000", - strokeWidth: 6 -});
            6. -
            7. // Lets create a masking circle
            8. -
            9. var ring = bigCircle.use(); -ring.attr({ - fill: "none", - stroke: "#000", - strokeWidth: 20 // we need only inner 10px of it -});
            10. -
            11. // Hide bigCircle by moving it to <defs> -bigCircle.toDefs();
            12. -
            13. var mask = s.mask();
            14. -
            15. // Background rect: -mask.add(s.rect(0, 0, "100%", "100%").attr({fill: "#fff"}));
            16. -
            17. // and our ring -mask.add(ring);
            18. -
            19. c1.attr({ - mask: mask -});
            20. -
            21. //Now, let’s animate bigCircle:
            22. -
            23. bigCircle.animate({r: 50}, 5e3, mina.elastic); -// Despite bigCircle is not visible it affect all 3 “uses” of it.
            24. - -
            - -
            - - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/4.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/4.html deleted file mode 100644 index fababe37..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/4.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - Tutorial - - - - - - - - -
              -
            1. // Text on the path -var s = Snap("#svg");
            2. -
            3. // Setting the background -var bg = s.rect(50, 50, 200, 200, 10).attr({fill: "#ccc"});
            4. -
            5. var t = s.text(150, 150, "Test Text").attr({ - font: "30px Helvetica, sans-serif", - textAnchor: "middle", - fill: "#ddd" -});
            6. -
            7. // Lets create a mask
            8. -
            9. var t2 = t.use().attr({ - stroke: "#000", - strokeWidth: 10, - strokeLinecap: "round", - strokeLinejoin: "round" -}); -
            10. -
            11. var mask = s.mask();
            12. -
            13. // Background rect: -mask.add(s.rect(0, 0, "100%", "100%").attr({fill: "#fff"}));
            14. -
            15. // and our ring -mask.add(t2);
            16. -
            17. bg.attr({ - mask: mask -});
            18. -
            19. //Now, let’s animate:
            20. -
            21. t2.animate({strokeWidth: 4}, 5e3, mina.bounce);
            22. - -
            - -
            - - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/index.html deleted file mode 100644 index 758bf057..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/index.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - Tutorial - - - - - - - - -
              -
            1. // First, let's create our drawing surface out of an existing SVG element -// If you want to create a new surface just provide dimensions -// like s = Snap(800, 600); -var s = Snap("#svg");
            2. -
            3. // Let's create a big circle in the middle: -var bigCircle = s.circle(150, 150, 100); -// By default it is black, let's change its attributes
            4. -
            5. bigCircle.attr({ - fill: "#bada55", - stroke: "#000", - strokeWidth: 5 -});
            6. -
            7. // Now let's create another small circle: -var smallCircle = s.circle(100, 150, 70);
            8. -
            9. // Let's put this small circle and another one into a group: -var discs = s.group(smallCircle, s.circle(200, 150, 70));
            10. -
            11. // Now we can change attributes for the whole group -discs.attr({ - fill: "#fff" -});
            12. -
            13. // Now more interesting stuff -// Let's assign this group as a mask for our big circle -bigCircle.attr({ - mask: discs -});
            14. -
            15. // Despite our small circle being part of a group -// and part of a mask we can still access it: -smallCircle.animate({r: 50}, 1000);
            16. -
            17. // We don’t have a reference for second small circle, -// but we can easily grab it with CSS selectors: -discs.select("circle:nth-child(2)").animate({r: 50}, 1000);
            18. -
            19. // Now let's create pattern -var p = s.path("M10-5-10,15M15,0,0,15M0-5-20,15").attr({ - fill: "none", - stroke: "#bada55", - strokeWidth: 5 - }); -// To create a pattern, -// just specify dimensions in the pattern method: -p = p.pattern(0, 0, 10, 10); -// Then use it as a fill on the big circle -bigCircle.attr({ - fill: p -});
            20. -
            21. // We can also grab a pattern from an SVG -// already embedded into our page -discs.attr({ - fill: Snap("#pattern") -});
            22. -
            23. // Let's change the fill of the circles to gradient -// This string means relative radial gradient -// from white to black -discs.attr({fill: "r()#fff-#000"}); -// Note that we have two gradients, one for each circle
            24. -
            25. // If we want them to share one gradient, -// we need to use an absolute gradient with capital R -discs.attr({fill: "R(150, 150, 100)#fff-#000"});
            26. -
            27. // Of course we can animate color as well -p.select("path").animate({stroke: "#f00"}, 1000);
            28. -
            29. // Now let's load an external SVG file: -Snap.load("mascot.svg", function (f) { - // Note that we traverse and change attr before the SVG - // is even added to the page - f.select("polygon[fill='#09B39C']").attr({fill: "#bada55"}); - g = f.select("g"); - s.append(g); - // Making croc draggable. Go ahead drag it around! - g.drag(); - // Obviously drag could take event handlers too - // Looks like our croc is made from more than one polygon... -});
            30. -
            31. // Now let's load an external SVG file: -Snap.load("mascot.svg", function (f) { - // Note that we traverse and change attr before SVG - // is even added to the page - f.selectAll("polygon[fill='#09B39C']").attr({fill: "#bada55"}); - g = f.select("g"); - s.append(g); - // Making croc draggable. Go ahead drag it around! - g.drag(); - // Obviously drag could take event handlers too - // That’s better! selectAll for the rescue. -});
            32. -
            33. // Writing text is as simple as: -s.text(200, 100, "Snap.svg");
            34. -
            35. // Provide an array of strings (or arrays), to generate tspans -var t = s.text(200, 120, ["Snap", ".", "svg"]); -t.selectAll("tspan:nth-child(3)").attr({ - fill: "#900", - "font-size": "20px" -});
            36. -
            - -
            - - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/tutorial.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/tutorial.html deleted file mode 100644 index 25cdb5c4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/demos/tutorial/tutorial.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - Snap.svg - - - - - - - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/dist/snap.svg-min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/dist/snap.svg-min.js deleted file mode 100644 index 2d6ca647..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/dist/snap.svg-min.js +++ /dev/null @@ -1,21 +0,0 @@ -// Snap.svg 0.4.0 -// -// Copyright (c) 2013 – 2015 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// build: 2015-04-07 - -!function(a){var b,c,d="0.4.2",e="hasOwnProperty",f=/[\.\/]/,g=/\s*,\s*/,h="*",i=function(a,b){return a-b},j={n:{}},k=function(){for(var a=0,b=this.length;b>a;a++)if("undefined"!=typeof this[a])return this[a]},l=function(){for(var a=this.length;--a;)if("undefined"!=typeof this[a])return this[a]},m=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=m.listeners(a),j=0,n=[],o={},p=[],q=b;p.firstDefined=k,p.lastDefined=l,b=a,c=0;for(var r=0,s=h.length;s>r;r++)"zIndex"in h[r]&&(n.push(h[r].zIndex),h[r].zIndex<0&&(o[h[r].zIndex]=h[r]));for(n.sort(i);n[j]<0;)if(e=o[n[j++]],p.push(e.apply(d,g)),c)return c=f,p;for(r=0;s>r;r++)if(e=h[r],"zIndex"in e)if(e.zIndex==n[j]){if(p.push(e.apply(d,g)),c)break;do if(j++,e=o[n[j]],e&&p.push(e.apply(d,g)),c)break;while(e)}else o[e.zIndex]=e;else if(p.push(e.apply(d,g)),c)break;return c=f,b=q,p};m._events=j,m.listeners=function(a){var b,c,d,e,g,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,g=m.length;g>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[h]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},m.on=function(a,b){if(a=String(a),"function"!=typeof b)return function(){};for(var c=a.split(g),d=0,e=c.length;e>d;d++)!function(a){for(var c,d=a.split(f),e=j,g=0,h=d.length;h>g;g++)e=e.n,e=e.hasOwnProperty(d[g])&&e[d[g]]||(e[d[g]]={n:{}});for(e.f=e.f||[],g=0,h=e.f.length;h>g;g++)if(e.f[g]==b){c=!0;break}!c&&e.f.push(b)}(c[d]);return function(a){+a==+a&&(b.zIndex=+a)}},m.f=function(a){var b=[].slice.call(arguments,1);return function(){m.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},m.stop=function(){c=1},m.nt=function(a){return a?new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)").test(b):b},m.nts=function(){return b.split(f)},m.off=m.unbind=function(a,b){if(!a)return void(m._events=j={n:{}});var c=a.split(g);if(c.length>1)for(var d=0,i=c.length;i>d;d++)m.off(c[d],b);else{c=a.split(f);var k,l,n,d,i,o,p,q=[j];for(d=0,i=c.length;i>d;d++)for(o=0;od;d++)for(k=q[d];k.n;){if(b){if(k.f){for(o=0,p=k.f.length;p>o;o++)if(k.f[o]==b){k.f.splice(o,1);break}!k.f.length&&delete k.f}for(l in k.n)if(k.n[e](l)&&k.n[l].f){var r=k.n[l].f;for(o=0,p=r.length;p>o;o++)if(r[o]==b){r.splice(o,1);break}!r.length&&delete k.n[l].f}}else{delete k.f;for(l in k.n)k.n[e](l)&&k.n[l].f&&delete k.n[l].f}k=k.n}}},m.once=function(a,b){var c=function(){return m.unbind(a,c),b.apply(this,arguments)};return m.on(a,c)},m.version=d,m.toString=function(){return"You are running Eve "+d},"undefined"!=typeof module&&module.exports?module.exports=m:"function"==typeof define&&define.amd?define("eve",[],function(){return m}):a.eve=m}(this),function(a,b){if("function"==typeof define&&define.amd)define(["eve"],function(c){return b(a,c)});else if("undefined"!=typeof exports){var c=require("eve");module.exports=b(a,c)}else b(a,a.eve)}(window||this,function(a,b){var c=function(b){var c={},d=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},e=Array.isArray||function(a){return a instanceof Array||"[object Array]"==Object.prototype.toString.call(a)},f=0,g="M"+(+new Date).toString(36),h=function(){return g+(f++).toString(36)},i=Date.now||function(){return+new Date},j=function(a){var b=this;if(null==a)return b.s;var c=b.s-a;b.b+=b.dur*c,b.B+=b.dur*c,b.s=a},k=function(a){var b=this;return null==a?b.spd:void(b.spd=a)},l=function(a){var b=this;return null==a?b.dur:(b.s=b.s*a/b.dur,void(b.dur=a))},m=function(){var a=this;delete c[a.id],a.update(),b("mina.stop."+a.id,a)},n=function(){var a=this;a.pdif||(delete c[a.id],a.update(),a.pdif=a.get()-a.b)},o=function(){var a=this;a.pdif&&(a.b=a.get()-a.pdif,delete a.pdif,c[a.id]=a)},p=function(){var a,b=this;if(e(b.start)){a=[];for(var c=0,d=b.start.length;d>c;c++)a[c]=+b.start[c]+(b.end[c]-b.start[c])*b.easing(b.s)}else a=+b.start+(b.end-b.start)*b.easing(b.s);b.set(a)},q=function(){var a=0;for(var e in c)if(c.hasOwnProperty(e)){var f=c[e],g=f.get();a++,f.s=(g-f.b)/(f.dur/f.spd),f.s>=1&&(delete c[e],f.s=1,a--,function(a){setTimeout(function(){b("mina.finish."+a.id,a)})}(f)),f.update()}a&&d(q)},r=function(a,b,e,f,g,i,s){var t={id:h(),start:a,end:b,b:e,s:0,dur:f-e,spd:1,get:g,set:i,easing:s||r.linear,status:j,speed:k,duration:l,stop:m,pause:n,resume:o,update:p};c[t.id]=t;var u,v=0;for(u in c)if(c.hasOwnProperty(u)&&(v++,2==v))break;return 1==v&&d(q),t};return r.time=i,r.getById=function(a){return c[a]||null},r.linear=function(a){return a},r.easeout=function(a){return Math.pow(a,1.7)},r.easein=function(a){return Math.pow(a,.48)},r.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=.48-a/1.04,c=Math.sqrt(.1734+b*b),d=c-b,e=Math.pow(Math.abs(d),1/3)*(0>d?-1:1),f=-c-b,g=Math.pow(Math.abs(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},r.backin=function(a){if(1==a)return 1;var b=1.70158;return a*a*((b+1)*a-b)},r.backout=function(a){if(0==a)return 0;a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},r.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-.075)*Math.PI/.3)+1},r.bounce=function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b},a.mina=r,r}("undefined"==typeof b?function(){}:b),d=function(a){function c(a,b){if(a){if(a.nodeType)return w(a);if(e(a,"array")&&c.set)return c.set.apply(c,a);if(a instanceof s)return a;if(null==b)return a=y.doc.querySelector(String(a)),w(a)}return a=null==a?"100%":a,b=null==b?"100%":b,new v(a,b)}function d(a,b){if(b){if("#text"==a&&(a=y.doc.createTextNode(b.text||b["#text"]||"")),"#comment"==a&&(a=y.doc.createComment(b.text||b["#text"]||"")),"string"==typeof a&&(a=d(a)),"string"==typeof b)return 1==a.nodeType?"xlink:"==b.substring(0,6)?a.getAttributeNS(T,b.substring(6)):"xml:"==b.substring(0,4)?a.getAttributeNS(U,b.substring(4)):a.getAttribute(b):"text"==b?a.nodeValue:null;if(1==a.nodeType){for(var c in b)if(b[z](c)){var e=A(b[c]);e?"xlink:"==c.substring(0,6)?a.setAttributeNS(T,c.substring(6),e):"xml:"==c.substring(0,4)?a.setAttributeNS(U,c.substring(4),e):a.setAttribute(c,e):a.removeAttribute(c)}}else"text"in b&&(a.nodeValue=b.text)}else a=y.doc.createElementNS(U,a);return a}function e(a,b){return b=A.prototype.toLowerCase.call(b),"finite"==b?isFinite(a):"array"==b&&(a instanceof Array||Array.isArray&&Array.isArray(a))?!0:"null"==b&&null===a||b==typeof a&&null!==a||"object"==b&&a===Object(a)||J.call(a).slice(8,-1).toLowerCase()==b}function f(a){if("function"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=f(a[c]));return b}function h(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function i(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join("␀"),g=d.cache=d.cache||{},i=d.count=d.count||[];return g[z](f)?(h(i,f),c?c(g[f]):g[f]):(i.length>=1e3&&delete g[i.shift()],i.push(f),g[f]=a.apply(b,e),c?c(g[f]):g[f])}return d}function j(a,b,c,d,e,f){if(null==e){var g=a-c,h=b-d;return g||h?(180+180*D.atan2(-h,-g)/H+360)%360:0}return j(a,b,e,f)-j(c,d,e,f)}function k(a){return a%360*H/180}function l(a){return 180*a/H%360}function m(a){var b=[];return a=a.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g,function(a,c,d){return d=d.split(/\s*,\s*|\s+/),"rotate"==c&&1==d.length&&d.push(0,0),"scale"==c&&(d.length>2?d=d.slice(0,2):2==d.length&&d.push(0,0),1==d.length&&d.push(d[0],0,0)),b.push("skewX"==c?["m",1,0,D.tan(k(d[0])),1,0,0]:"skewY"==c?["m",1,D.tan(k(d[0])),0,1,0,0]:[c.charAt(0)].concat(d)),a}),b}function n(a,b){var d=ab(a),e=new c.Matrix;if(d)for(var f=0,g=d.length;g>f;f++){var h,i,j,k,l,m=d[f],n=m.length,o=A(m[0]).toLowerCase(),p=m[0]!=o,q=p?e.invert():0;"t"==o&&2==n?e.translate(m[1],0):"t"==o&&3==n?p?(h=q.x(0,0),i=q.y(0,0),j=q.x(m[1],m[2]),k=q.y(m[1],m[2]),e.translate(j-h,k-i)):e.translate(m[1],m[2]):"r"==o?2==n?(l=l||b,e.rotate(m[1],l.x+l.width/2,l.y+l.height/2)):4==n&&(p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.rotate(m[1],j,k)):e.rotate(m[1],m[2],m[3])):"s"==o?2==n||3==n?(l=l||b,e.scale(m[1],m[n-1],l.x+l.width/2,l.y+l.height/2)):4==n?p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.scale(m[1],m[1],j,k)):e.scale(m[1],m[1],m[2],m[3]):5==n&&(p?(j=q.x(m[3],m[4]),k=q.y(m[3],m[4]),e.scale(m[1],m[2],j,k)):e.scale(m[1],m[2],m[3],m[4])):"m"==o&&7==n&&e.add(m[1],m[2],m[3],m[4],m[5],m[6])}return e}function o(a){var b=a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||a.node.parentNode&&w(a.node.parentNode)||c.select("svg")||c(0,0),d=b.select("defs"),e=null==d?!1:d.node;return e||(e=u("defs",b.node).node),e}function p(a){return a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||c.select("svg")}function q(a,b,c){function e(a){if(null==a)return I;if(a==+a)return a;d(j,{width:a});try{return j.getBBox().width}catch(b){return 0}}function f(a){if(null==a)return I;if(a==+a)return a;d(j,{height:a});try{return j.getBBox().height}catch(b){return 0}}function g(d,e){null==b?i[d]=e(a.attr(d)||0):d==b&&(i=e(null==c?a.attr(d)||0:c))}var h=p(a).node,i={},j=h.querySelector(".svg---mgr");switch(j||(j=d("rect"),d(j,{x:-9e9,y:-9e9,width:10,height:10,"class":"svg---mgr",fill:"none"}),h.appendChild(j)),a.type){case"rect":g("rx",e),g("ry",f);case"image":g("width",e),g("height",f);case"text":g("x",e),g("y",f);break;case"circle":g("cx",e),g("cy",f),g("r",e);break;case"ellipse":g("cx",e),g("cy",f),g("rx",e),g("ry",f);break;case"line":g("x1",e),g("x2",e),g("y1",f),g("y2",f);break;case"marker":g("refX",e),g("markerWidth",e),g("refY",f),g("markerHeight",f);break;case"radialGradient":g("fx",e),g("fy",f);break;case"tspan":g("dx",e),g("dy",f);break;default:g(b,e)}return h.removeChild(j),i}function r(a){e(a,"array")||(a=Array.prototype.slice.call(arguments,0));for(var b=0,c=0,d=this.node;this[b];)delete this[b++];for(b=0;bc;c++){var e={type:a[c].type,attr:a[c].attr()},f=a[c].children();b.push(e),f.length&&x(f,e.childNodes=[])}}c.version="0.4.0",c.toString=function(){return"Snap v"+this.version},c._={};var y={win:a.window,doc:a.window.document};c._.glob=y;{var z="hasOwnProperty",A=String,B=parseFloat,C=parseInt,D=Math,E=D.max,F=D.min,G=D.abs,H=(D.pow,D.PI),I=(D.round,""),J=Object.prototype.toString,K=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\))\s*$/i,L=(c._.separator=/[,\s]+/,/[\s]*,[\s]*/),M={hs:1,rg:1},N=/([a-z])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,O=/([rstm])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,P=/(-?\d*\.?\d*(?:e[\-+]?\\d+)?)[\s]*,?[\s]*/gi,Q=0,R="S"+(+new Date).toString(36),S=function(a){return(a&&a.type?a.type:I)+R+(Q++).toString(36)},T="http://www.w3.org/1999/xlink",U="http://www.w3.org/2000/svg",V={};c.url=function(a){return"url('#"+a+"')"}}c._.$=d,c._.id=S,c.format=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),"function"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+""};return function(b,d){return A(b).replace(a,function(a,b){return c(a,b,d)})}}(),c._.clone=f,c._.cacher=i,c.rad=k,c.deg=l,c.sin=function(a){return D.sin(c.rad(a))},c.tan=function(a){return D.tan(c.rad(a))},c.cos=function(a){return D.cos(c.rad(a))},c.asin=function(a){return c.deg(D.asin(a))},c.acos=function(a){return c.deg(D.acos(a))},c.atan=function(a){return c.deg(D.atan(a))},c.atan2=function(a){return c.deg(D.atan2(a))},c.angle=j,c.len=function(a,b,d,e){return Math.sqrt(c.len2(a,b,d,e))},c.len2=function(a,b,c,d){return(a-c)*(a-c)+(b-d)*(b-d)},c.closestPoint=function(a,b,c){function d(a){var d=a.x-b,e=a.y-c;return d*d+e*e}for(var e,f,g,h,i=a.node,j=i.getTotalLength(),k=j/i.pathSegList.numberOfItems*.125,l=1/0,m=0;j>=m;m+=k)(h=d(g=i.getPointAtLength(m))).5;){var n,o,p,q,r,s;(p=f-k)>=0&&(r=d(n=i.getPointAtLength(p)))f)return b-f;if(f>a-c)return b-f+a}return b},c.getRGB=i(function(a){if(!a||(a=A(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};if("none"==a)return{r:-1,g:-1,b:-1,hex:"none",toString:Z};if(!(M[z](a.toLowerCase().substring(0,2))||"#"==a.charAt())&&(a=W(a)),!a)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};var b,d,f,g,h,i,j=a.match(K);return j?(j[2]&&(f=C(j[2].substring(5),16),d=C(j[2].substring(3,5),16),b=C(j[2].substring(1,3),16)),j[3]&&(f=C((h=j[3].charAt(3))+h,16),d=C((h=j[3].charAt(2))+h,16),b=C((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=B(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),f=B(i[2]),"%"==i[2].slice(-1)&&(f*=2.55),"rgba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100)),j[5]?(i=j[5].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsb2rgb(b,d,f,g)):j[6]?(i=j[6].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsla"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsl2rgb(b,d,f,g)):(b=F(D.round(b),255),d=F(D.round(d),255),f=F(D.round(f),255),g=F(E(g,0),1),j={r:b,g:d,b:f,toString:Z},j.hex="#"+(16777216|f|d<<8|b<<16).toString(16).slice(1),j.opacity=e(g,"finite")?g:1,j)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z}},c),c.hsb=i(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=i(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=i(function(a,b,c,d){if(e(d,"finite")){var f=D.round;return"rgba("+[f(a),f(b),f(c),+d.toFixed(2)]+")"}return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)});var W=function(a){var b=y.doc.getElementsByTagName("head")[0]||y.doc.getElementsByTagName("svg")[0],c="rgb(255, 0, 0)";return(W=i(function(a){if("red"==a.toLowerCase())return c;b.style.color=c,b.style.color=a;var d=y.doc.defaultView.getComputedStyle(b,I).getPropertyValue("color");return d==c?null:d}))(a)},X=function(){return"hsb("+[this.h,this.s,this.b]+")"},Y=function(){return"hsl("+[this.h,this.s,this.l]+")"},Z=function(){return 1==this.opacity||null==this.opacity?this.hex:"rgba("+[this.r,this.g,this.b,this.opacity]+")"},$=function(a,b,d){if(null==b&&e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&(d=a.b,b=a.g,a=a.r),null==b&&e(a,string)){var f=c.getRGB(a);a=f.r,b=f.g,d=f.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},_=function(a,b,d,f){a=D.round(255*a),b=D.round(255*b),d=D.round(255*d);var g={r:a,g:b,b:d,opacity:e(f,"finite")?f:1,hex:c.rgb(a,b,d),toString:Z};return e(f,"finite")&&(g.opacity=f),g};c.color=function(a){var b;return e(a,"object")&&"h"in a&&"s"in a&&"b"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):e(a,"object")&&"h"in a&&"s"in a&&"l"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):(e(a,"string")&&(a=c.getRGB(a)),e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&!("error"in a)?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:"none"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1,a.error=1)),a.toString=Z,a},c.hsb2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,d=a.o,a=a.h),a*=360;var f,g,h,i,j;return a=a%360/60,j=c*b,i=j*(1-G(a%2-1)),f=g=h=c-j,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.hsl2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var f,g,h,i,j;return a=a%360/60,j=2*b*(.5>c?c:1-c),i=j*(1-G(a%2-1)),f=g=h=c-j/2,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.rgb2hsb=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=E(a,b,c),g=f-F(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:X}},c.rgb2hsl=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=E(a,b,c),h=F(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:Y}},c.parsePathString=function(a){if(!a)return null;var b=c.path(a);if(b.arr)return c.path.clone(b.arr);var d={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},f=[];return e(a,"array")&&e(a[0],"array")&&(f=c.path.clone(a)),f.length||A(a).replace(N,function(a,b,c){var e=[],g=b.toLowerCase();if(c.replace(P,function(a,b){b&&e.push(+b)}),"m"==g&&e.length>2&&(f.push([b].concat(e.splice(0,2))),g="l",b="m"==b?"l":"L"),"o"==g&&1==e.length&&f.push([b,e[0]]),"r"==g)f.push([b].concat(e));else for(;e.length>=d[g]&&(f.push([b].concat(e.splice(0,d[g]))),d[g]););}),f.toString=c.path.toString,b.arr=c.path.clone(f),f};var ab=c.parseTransformString=function(a){if(!a)return null;var b=[];return e(a,"array")&&e(a[0],"array")&&(b=c.path.clone(a)),b.length||A(a).replace(O,function(a,c,d){{var e=[];c.toLowerCase()}d.replace(P,function(a,b){b&&e.push(+b)}),b.push([c].concat(e))}),b.toString=c.path.toString,b};c._.svgTransform2string=m,c._.rgTransform=/^[a-z][\s]*-?\.?\d/i,c._.transform2matrix=n,c._unit2px=q;y.doc.contains||y.doc.compareDocumentPosition?function(a,b){var c=9==a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a==d||!(!d||1!=d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b;)if(b=b.parentNode,b==a)return!0;return!1};c._.getSomeDefs=o,c._.getSomeSVG=p,c.select=function(a){return a=A(a).replace(/([^\\]):/g,"$1\\:"),w(y.doc.querySelector(a))},c.selectAll=function(a){for(var b=y.doc.querySelectorAll(a),d=(c.set||Array)(),e=0;ei;i++)h[g[i].nodeName]=g[i].nodeValue;return h}if(e(a,"string")){if(!(arguments.length>1))return b("snap.util.getattr."+a,d).firstDefined();var k={};k[a]=c,a=k}for(var l in a)a[z](l)&&b("snap.util.attr."+l,d,a[l]);return d},c.parse=function(a){var b=y.doc.createDocumentFragment(),c=!0,d=y.doc.createElement("div");if(a=A(a),a.match(/^\s*<\s*svg(?:\s|>)/)||(a=""+a+"",c=!1),d.innerHTML=a,a=d.getElementsByTagName("svg")[0])if(c)b=a;else for(;a.firstChild;)b.appendChild(a.firstChild);return new t(b)},c.fragment=function(){for(var a=Array.prototype.slice.call(arguments,0),b=y.doc.createDocumentFragment(),d=0,e=a.length;e>d;d++){var f=a[d];f.node&&f.node.nodeType&&b.appendChild(f.node),f.nodeType&&b.appendChild(f),"string"==typeof f&&b.appendChild(c.parse(f).node)}return new t(b)},c._.make=u,c._.wrap=w,v.prototype.el=function(a,b){var c=u(a,this.node);return b&&c.attr(b),c},s.prototype.children=function(){for(var a=[],b=this.node.childNodes,d=0,e=b.length;e>d;d++)a[d]=c(b[d]);return a},s.prototype.toJSON=function(){var a=[];return x([this],a),a[0]},b.on("snap.util.getattr",function(){var a=b.nt();a=a.substring(a.lastIndexOf(".")+1);var c=a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});return bb[z](c)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(c):d(this.node,a)});var bb={"alignment-baseline":0,"baseline-shift":0,clip:0,"clip-path":0,"clip-rule":0,color:0,"color-interpolation":0,"color-interpolation-filters":0,"color-profile":0,"color-rendering":0,cursor:0,direction:0,display:0,"dominant-baseline":0,"enable-background":0,fill:0,"fill-opacity":0,"fill-rule":0,filter:0,"flood-color":0,"flood-opacity":0,font:0,"font-family":0,"font-size":0,"font-size-adjust":0,"font-stretch":0,"font-style":0,"font-variant":0,"font-weight":0,"glyph-orientation-horizontal":0,"glyph-orientation-vertical":0,"image-rendering":0,kerning:0,"letter-spacing":0,"lighting-color":0,marker:0,"marker-end":0,"marker-mid":0,"marker-start":0,mask:0,opacity:0,overflow:0,"pointer-events":0,"shape-rendering":0,"stop-color":0,"stop-opacity":0,stroke:0,"stroke-dasharray":0,"stroke-dashoffset":0,"stroke-linecap":0,"stroke-linejoin":0,"stroke-miterlimit":0,"stroke-opacity":0,"stroke-width":0,"text-anchor":0,"text-decoration":0,"text-rendering":0,"unicode-bidi":0,visibility:0,"word-spacing":0,"writing-mode":0};b.on("snap.util.attr",function(a){var c=b.nt(),e={};c=c.substring(c.lastIndexOf(".")+1),e[c]=a;var f=c.replace(/-(\w)/gi,function(a,b){return b.toUpperCase()}),g=c.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});bb[z](g)?this.node.style[f]=null==a?I:a:d(this.node,e)}),function(){}(v.prototype),c.ajax=function(a,c,d,f){var g=new XMLHttpRequest,h=S();if(g){if(e(c,"function"))f=d,d=c,c=null;else if(e(c,"object")){var i=[];for(var j in c)c.hasOwnProperty(j)&&i.push(encodeURIComponent(j)+"="+encodeURIComponent(c[j]));c=i.join("&")}return g.open(c?"POST":"GET",a,!0),c&&(g.setRequestHeader("X-Requested-With","XMLHttpRequest"),g.setRequestHeader("Content-type","application/x-www-form-urlencoded")),d&&(b.once("snap.ajax."+h+".0",d),b.once("snap.ajax."+h+".200",d),b.once("snap.ajax."+h+".304",d)),g.onreadystatechange=function(){4==g.readyState&&b("snap.ajax."+h+"."+g.status,f,g)},4==g.readyState?g:(g.send(c),g)}},c.load=function(a,b,d){c.ajax(a,function(a){var e=c.parse(a.responseText);d?b.call(d,e):b(e)})};var cb=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,h=e.clientLeft||d.clientLeft||0,i=b.top+(g.win.pageYOffset||e.scrollTop||d.scrollTop)-f,j=b.left+(g.win.pageXOffset||e.scrollLeft||d.scrollLeft)-h;return{y:i,x:j}};return c.getElementByPoint=function(a,b){var c=this,d=(c.canvas,y.doc.elementFromPoint(a,b));if(y.win.opera&&"svg"==d.tagName){var e=cb(d),f=d.createSVGRect();f.x=a-e.x,f.y=b-e.y,f.width=f.height=1;var g=d.getIntersectionList(f,null);g.length&&(d=g[g.length-1])}return d?w(d):null},c.plugin=function(a){a(c,s,v,y,t)},y.win.Snap=c,c}(a||this);return d.plugin(function(d,e,f,g,h){function i(a,b){if(null==b){var c=!0;if(b=a.node.getAttribute("linearGradient"==a.type||"radialGradient"==a.type?"gradientTransform":"pattern"==a.type?"patternTransform":"transform"),!b)return new d.Matrix;b=d._.svgTransform2string(b)}else b=d._.rgTransform.test(b)?o(b).replace(/\.{3}|\u2026/g,a._.transform||E):d._.svgTransform2string(b),n(b,"array")&&(b=d.path?d.path.toString.call(b):o(b)),a._.transform=b;var e=d._.transform2matrix(b,a.getBBox(1));return c?e:void(a.matrix=e)}function j(a){function b(a,b){var c=q(a.node,b);c=c&&c.match(f),c=c&&c[2],c&&"#"==c.charAt()&&(c=c.substring(1),c&&(h[c]=(h[c]||[]).concat(function(c){var d={};d[b]=URL(c),q(a.node,d)})))}function c(a){var b=q(a.node,"xlink:href");b&&"#"==b.charAt()&&(b=b.substring(1),b&&(h[b]=(h[b]||[]).concat(function(b){a.attr("xlink:href","#"+b)})))}for(var d,e=a.selectAll("*"),f=/^\s*url\(("|'|)(.*)\1\)\s*$/,g=[],h={},i=0,j=e.length;j>i;i++){d=e[i],b(d,"fill"),b(d,"stroke"),b(d,"filter"),b(d,"mask"),b(d,"clip-path"),c(d);var k=q(d.node,"id");k&&(q(d.node,{id:d.id}),g.push({old:k,id:d.id}))}for(i=0,j=g.length;j>i;i++){var l=h[g[i].old];if(l)for(var m=0,n=l.length;n>m;m++)l[m](g[i].id)}}function k(a,b,c){return function(d){var e=d.slice(a,b);return 1==e.length&&(e=e[0]),c?c(e):e}}function l(a){return function(){var b=a?"<"+this.type:"",c=this.node.attributes,d=this.node.childNodes;if(a)for(var e=0,f=c.length;f>e;e++)b+=" "+c[e].name+'="'+c[e].value.replace(/"/g,'\\"')+'"';if(d.length){for(a&&(b+=">"),e=0,f=d.length;f>e;e++)3==d[e].nodeType?b+=d[e].nodeValue:1==d[e].nodeType&&(b+=u(d[e]).toString());a&&(b+="")}else a&&(b+="/>");return b}}var m=e.prototype,n=d.is,o=String,p=d._unit2px,q=d._.$,r=d._.make,s=d._.getSomeDefs,t="hasOwnProperty",u=d._.wrap;m.getBBox=function(a){if(!d.Matrix||!d.path)return this.node.getBBox();var b=this,c=new d.Matrix;if(b.removed)return d._.box();for(;"use"==b.type;)if(a||(c=c.add(b.transform().localMatrix.translate(b.attr("x")||0,b.attr("y")||0))),b.original)b=b.original;else{var e=b.attr("xlink:href");b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf("#")+1))}var f=b._,g=d.path.get[b.type]||d.path.get.deflt;try{return a?(f.bboxwt=g?d.path.getBBox(b.realPath=g(b)):d._.box(b.node.getBBox()),d._.box(f.bboxwt)):(b.realPath=g(b),b.matrix=b.transform().localMatrix,f.bbox=d.path.getBBox(d.path.map(b.realPath,c.add(b.matrix))),d._.box(f.bbox))}catch(h){return d._.box()}};var v=function(){return this.string};m.transform=function(a){var b=this._;if(null==a){for(var c,e=this,f=new d.Matrix(this.node.getCTM()),g=i(this),h=[g],j=new d.Matrix,k=g.toTransformString(),l=o(g)==o(this.matrix)?o(b.transform):k;"svg"!=e.type&&(e=e.parent());)h.push(i(e));for(c=h.length;c--;)j.add(h[c]);return{string:l,globalMatrix:f,totalMatrix:j,localMatrix:g,diffMatrix:f.clone().add(g.invert()),global:f.toTransformString(),total:j.toTransformString(),local:k,toString:v}}return a instanceof d.Matrix?(this.matrix=a,this._.transform=a.toTransformString()):i(this,a),this.node&&("linearGradient"==this.type||"radialGradient"==this.type?q(this.node,{gradientTransform:this.matrix}):"pattern"==this.type?q(this.node,{patternTransform:this.matrix}):q(this.node,{transform:this.matrix})),this},m.parent=function(){return u(this.node.parentNode)},m.append=m.add=function(a){if(a){if("set"==a.type){var b=this;return a.forEach(function(a){b.add(a)}),this}a=u(a),this.node.appendChild(a.node),a.paper=this.paper}return this},m.appendTo=function(a){return a&&(a=u(a),a.append(this)),this},m.prepend=function(a){if(a){if("set"==a.type){var b,c=this;return a.forEach(function(a){b?b.after(a):c.prepend(a),b=a}),this}a=u(a);var d=a.parent();this.node.insertBefore(a.node,this.node.firstChild),this.add&&this.add(),a.paper=this.paper,this.parent()&&this.parent().add(),d&&d.add()}return this},m.prependTo=function(a){return a=u(a),a.prepend(this),this},m.before=function(a){if("set"==a.type){var b=this;return a.forEach(function(a){var c=a.parent();b.node.parentNode.insertBefore(a.node,b.node),c&&c.add()}),this.parent().add(),this}a=u(a);var c=a.parent();return this.node.parentNode.insertBefore(a.node,this.node),this.parent()&&this.parent().add(),c&&c.add(),a.paper=this.paper,this},m.after=function(a){a=u(a);var b=a.parent();return this.node.nextSibling?this.node.parentNode.insertBefore(a.node,this.node.nextSibling):this.node.parentNode.appendChild(a.node),this.parent()&&this.parent().add(),b&&b.add(),a.paper=this.paper,this},m.insertBefore=function(a){a=u(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},m.insertAfter=function(a){a=u(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node.nextSibling),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},m.remove=function(){var a=this.parent();return this.node.parentNode&&this.node.parentNode.removeChild(this.node),delete this.paper,this.removed=!0,a&&a.add(),this},m.select=function(a){return a=o(a).replace(/([^\\]):/g,"$1\\:"),u(this.node.querySelector(a))},m.selectAll=function(a){for(var b=this.node.querySelectorAll(a),c=(d.set||Array)(),e=0;eb;b++)a[b].stop();return this},m.animate=function(a,d,e,f){"function"!=typeof e||e.length||(f=e,e=c.linear),a instanceof w&&(f=a.callback,e=a.easing,d=e.dur,a=a.attr);var g,h,i,j,l=[],m=[],p={},q=this;for(var r in a)if(a[t](r)){q.equal?(j=q.equal(r,o(a[r])),g=j.from,h=j.to,i=j.f):(g=+q.attr(r),h=+a[r]);var s=n(g,"array")?g.length:1;p[r]=k(l.length,l.length+s,i),l=l.concat(g),m=m.concat(h)}var u=c.time(),v=c(l,m,u,u+d,c.time,function(a){var b={};for(var c in p)p[t](c)&&(b[c]=p[c](a));q.attr(b)},e);return q.anims[v.id]=v,v._attrs=a,v._callback=f,b("snap.animcreated."+q.id,v),b.once("mina.finish."+v.id,function(){delete q.anims[v.id],f&&f.call(q)}),b.once("mina.stop."+v.id,function(){delete q.anims[v.id]}),q};var x={};m.data=function(a,c){var e=x[this.id]=x[this.id]||{};if(0==arguments.length)return b("snap.data.get."+this.id,this,e,null),e; -if(1==arguments.length){if(d.is(a,"object")){for(var f in a)a[t](f)&&this.data(f,a[f]);return this}return b("snap.data.get."+this.id,this,e[a],a),e[a]}return e[a]=c,b("snap.data.set."+this.id,this,c,a),this},m.removeData=function(a){return null==a?x[this.id]={}:x[this.id]&&delete x[this.id][a],this},m.outerSVG=m.toString=l(1),m.innerSVG=l(),m.toDataURL=function(){if(a&&a.btoa){var b=this.getBBox(),c=d.format('{contents}',{x:+b.x.toFixed(3),y:+b.y.toFixed(3),width:+b.width.toFixed(3),height:+b.height.toFixed(3),contents:this.outerSVG()});return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(c)))}},h.prototype.select=m.select,h.prototype.selectAll=m.selectAll}),d.plugin(function(a){function b(a,b,d,e,f,g){return null==b&&"[object SVGMatrix]"==c.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,void(this.f=a.f)):void(null!=a?(this.a=+a,this.b=+b,this.c=+d,this.d=+e,this.e=+f,this.f=+g):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0))}var c=Object.prototype.toString,d=String,e=Math,f="";!function(c){function g(a){return a[0]*a[0]+a[1]*a[1]}function h(a){var b=e.sqrt(g(a));a[0]&&(a[0]/=b),a[1]&&(a[1]/=b)}c.add=function(a,c,d,e,f,g){var h,i,j,k,l=[[],[],[]],m=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],n=[[a,d,f],[c,e,g],[0,0,1]];for(a&&a instanceof b&&(n=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),h=0;3>h;h++)for(i=0;3>i;i++){for(k=0,j=0;3>j;j++)k+=m[h][j]*n[j][i];l[h][i]=k}return this.a=l[0][0],this.b=l[1][0],this.c=l[0][1],this.d=l[1][1],this.e=l[0][2],this.f=l[1][2],this},c.invert=function(){var a=this,c=a.a*a.d-a.b*a.c;return new b(a.d/c,-a.b/c,-a.c/c,a.a/c,(a.c*a.f-a.d*a.e)/c,(a.b*a.e-a.a*a.f)/c)},c.clone=function(){return new b(this.a,this.b,this.c,this.d,this.e,this.f)},c.translate=function(a,b){return this.add(1,0,0,1,a,b)},c.scale=function(a,b,c,d){return null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d),this},c.rotate=function(b,c,d){b=a.rad(b),c=c||0,d=d||0;var f=+e.cos(b).toFixed(9),g=+e.sin(b).toFixed(9);return this.add(f,g,-g,f,c,d),this.add(1,0,0,1,-c,-d)},c.x=function(a,b){return a*this.a+b*this.c+this.e},c.y=function(a,b){return a*this.b+b*this.d+this.f},c.get=function(a){return+this[d.fromCharCode(97+a)].toFixed(4)},c.toString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")"},c.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},c.determinant=function(){return this.a*this.d-this.b*this.c},c.split=function(){var b={};b.dx=this.e,b.dy=this.f;var c=[[this.a,this.c],[this.b,this.d]];b.scalex=e.sqrt(g(c[0])),h(c[0]),b.shear=c[0][0]*c[1][0]+c[0][1]*c[1][1],c[1]=[c[1][0]-c[0][0]*b.shear,c[1][1]-c[0][1]*b.shear],b.scaley=e.sqrt(g(c[1])),h(c[1]),b.shear/=b.scaley,this.determinant()<0&&(b.scalex=-b.scalex);var d=-c[0][1],f=c[1][1];return 0>f?(b.rotate=a.deg(e.acos(f)),0>d&&(b.rotate=360-b.rotate)):b.rotate=a.deg(e.asin(d)),b.isSimple=!(+b.shear.toFixed(9)||b.scalex.toFixed(9)!=b.scaley.toFixed(9)&&b.rotate),b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate,b.noRotation=!+b.shear.toFixed(9)&&!b.rotate,b},c.toTransformString=function(a){var b=a||this.split();return+b.shear.toFixed(9)?"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]:(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?"t"+[+b.dx.toFixed(4),+b.dy.toFixed(4)]:f)+(1!=b.scalex||1!=b.scaley?"s"+[b.scalex,b.scaley,0,0]:f)+(b.rotate?"r"+[+b.rotate.toFixed(4),0,0]:f))}}(b.prototype),a.Matrix=b,a.matrix=function(a,c,d,e,f,g){return new b(a,c,d,e,f,g)}}),d.plugin(function(a,c,d,e,f){function g(d){return function(e){if(b.stop(),e instanceof f&&1==e.node.childNodes.length&&("radialGradient"==e.node.firstChild.tagName||"linearGradient"==e.node.firstChild.tagName||"pattern"==e.node.firstChild.tagName)&&(e=e.node.firstChild,n(this).appendChild(e),e=l(e)),e instanceof c)if("radialGradient"==e.type||"linearGradient"==e.type||"pattern"==e.type){e.node.id||p(e.node,{id:e.id});var g=q(e.node.id)}else g=e.attr(d);else if(g=a.color(e),g.error){var h=a(n(this).ownerSVGElement).gradient(e);h?(h.node.id||p(h.node,{id:h.id}),g=q(h.node.id)):g=e}else g=r(g);var i={};i[d]=g,p(this.node,i),this.node.style[d]=t}}function h(a){b.stop(),a==+a&&(a+="px"),this.node.style.fontSize=a}function i(a){for(var b=[],c=a.childNodes,d=0,e=c.length;e>d;d++){var f=c[d];3==f.nodeType&&b.push(f.nodeValue),"tspan"==f.tagName&&b.push(1==f.childNodes.length&&3==f.firstChild.nodeType?f.firstChild.nodeValue:i(f))}return b}function j(){return b.stop(),this.node.style.fontSize}var k=a._.make,l=a._.wrap,m=a.is,n=a._.getSomeDefs,o=/^url\(#?([^)]+)\)$/,p=a._.$,q=a.url,r=String,s=a._.separator,t="";b.on("snap.util.attr.mask",function(a){if(a instanceof c||a instanceof f){if(b.stop(),a instanceof f&&1==a.node.childNodes.length&&(a=a.node.firstChild,n(this).appendChild(a),a=l(a)),"mask"==a.type)var d=a;else d=k("mask",n(this)),d.node.appendChild(a.node);!d.node.id&&p(d.node,{id:d.id}),p(this.node,{mask:q(d.id)})}}),function(a){b.on("snap.util.attr.clip",a),b.on("snap.util.attr.clip-path",a),b.on("snap.util.attr.clipPath",a)}(function(a){if(a instanceof c||a instanceof f){if(b.stop(),"clipPath"==a.type)var d=a;else d=k("clipPath",n(this)),d.node.appendChild(a.node),!d.node.id&&p(d.node,{id:d.id});p(this.node,{"clip-path":q(d.node.id||d.id)})}}),b.on("snap.util.attr.fill",g("fill")),b.on("snap.util.attr.stroke",g("stroke"));var u=/^([lr])(?:\(([^)]*)\))?(.*)$/i;b.on("snap.util.grad.parse",function(a){a=r(a);var b=a.match(u);if(!b)return null;var c=b[1],d=b[2],e=b[3];return d=d.split(/\s*,\s*/).map(function(a){return+a==a?+a:a}),1==d.length&&0==d[0]&&(d=[]),e=e.split("-"),e=e.map(function(a){a=a.split(":");var b={color:a[0]};return a[1]&&(b.offset=parseFloat(a[1])),b}),{type:c,params:d,stops:e}}),b.on("snap.util.attr.d",function(c){b.stop(),m(c,"array")&&m(c[0],"array")&&(c=a.path.toString.call(c)),c=r(c),c.match(/[ruo]/i)&&(c=a.path.toAbsolute(c)),p(this.node,{d:c})})(-1),b.on("snap.util.attr.#text",function(a){b.stop(),a=r(a);for(var c=e.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(c)})(-1),b.on("snap.util.attr.path",function(a){b.stop(),this.attr({d:a})})(-1),b.on("snap.util.attr.class",function(a){b.stop(),this.node.className.baseVal=a})(-1),b.on("snap.util.attr.viewBox",function(a){var c;c=m(a,"object")&&"x"in a?[a.x,a.y,a.width,a.height].join(" "):m(a,"array")?a.join(" "):a,p(this.node,{viewBox:c}),b.stop()})(-1),b.on("snap.util.attr.transform",function(a){this.transform(a),b.stop()})(-1),b.on("snap.util.attr.r",function(a){"rect"==this.type&&(b.stop(),p(this.node,{rx:a,ry:a}))})(-1),b.on("snap.util.attr.textpath",function(a){if(b.stop(),"text"==this.type){var d,e,f;if(!a&&this.textPath){for(e=this.textPath;e.node.firstChild;)this.node.appendChild(e.node.firstChild);return e.remove(),void delete this.textPath}if(m(a,"string")){var g=n(this),h=l(g.parentNode).path(a);g.appendChild(h.node),d=h.id,h.attr({id:d})}else a=l(a),a instanceof c&&(d=a.attr("id"),d||(d=a.id,a.attr({id:d})));if(d)if(e=this.textPath,f=this.node,e)e.attr({"xlink:href":"#"+d});else{for(e=p("textPath",{"xlink:href":"#"+d});f.firstChild;)e.appendChild(f.firstChild);f.appendChild(e),this.textPath=l(e)}}})(-1),b.on("snap.util.attr.text",function(a){if("text"==this.type){for(var c=this.node,d=function(a){var b=p("tspan");if(m(a,"array"))for(var c=0;c1&&(a=Array.prototype.slice.call(arguments,0));var b={};return h(a,"object")&&!h(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polyline",b)},g.polygon=function(a){arguments.length>1&&(a=Array.prototype.slice.call(arguments,0));var b={};return h(a,"object")&&!h(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polygon",b)},function(){function d(){return this.selectAll("stop")}function e(a,b){var d=k("stop"),e={offset:+b+"%"};return a=c.color(a),e["stop-color"]=a.hex,a.opacity<1&&(e["stop-opacity"]=a.opacity),k(d,e),this.node.appendChild(d),this}function f(){if("linearGradient"==this.type){var a=k(this.node,"x1")||0,b=k(this.node,"x2")||1,d=k(this.node,"y1")||0,e=k(this.node,"y2")||0;return c._.box(a,d,math.abs(b-a),math.abs(e-d))}var f=this.node.cx||.5,g=this.node.cy||.5,h=this.node.r||0;return c._.box(f-h,g-h,2*h,2*h)}function h(a,c){function d(a,b){for(var c=(b-l)/(a-m),d=m;a>d;d++)g[d].offset=+(+l+c*(d-m)).toFixed(2);m=a,l=b}var e,f=b("snap.util.grad.parse",null,c).firstDefined();if(!f)return null;f.params.unshift(a),e="l"==f.type.toLowerCase()?i.apply(0,f.params):j.apply(0,f.params),f.type!=f.type.toLowerCase()&&k(e.node,{gradientUnits:"userSpaceOnUse"});var g=f.stops,h=g.length,l=0,m=0;h--;for(var n=0;h>n;n++)"offset"in g[n]&&d(n,g[n].offset);for(g[h].offset=g[h].offset||100,d(h,g[h].offset),n=0;h>=n;n++){var o=g[n];e.addStop(o.color,o.offset)}return e}function i(a,b,g,h,i){var j=c._.make("linearGradient",a);return j.stops=d,j.addStop=e,j.getBBox=f,null!=b&&k(j.node,{x1:b,y1:g,x2:h,y2:i}),j}function j(a,b,g,h,i,j){var l=c._.make("radialGradient",a);return l.stops=d,l.addStop=e,l.getBBox=f,null!=b&&k(l.node,{cx:b,cy:g,r:h}),null!=i&&null!=j&&k(l.node,{fx:i,fy:j}),l}var k=c._.$;g.gradient=function(a){return h(this.defs,a)},g.gradientLinear=function(a,b,c,d){return i(this.defs,a,b,c,d)},g.gradientRadial=function(a,b,c,d,e){return j(this.defs,a,b,c,d,e)},g.toString=function(){var a,b=this.node.ownerDocument,d=b.createDocumentFragment(),e=b.createElement("div"),f=this.node.cloneNode(!0);return d.appendChild(e),e.appendChild(f),c._.$(f,{xmlns:"http://www.w3.org/2000/svg"}),a=e.innerHTML,d.removeChild(d.firstChild),a},g.toDataURL=function(){return a&&a.btoa?"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(this))):void 0},g.clear=function(){for(var a,b=this.node.firstChild;b;)a=b.nextSibling,"defs"!=b.tagName?b.parentNode.removeChild(b):g.clear.call({node:b}),b=a}}()}),d.plugin(function(a,b){function c(a){var b=c.ps=c.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[K](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]}function d(a,b,c,d){return null==a&&(a=b=c=d=0),null==b&&(b=a.y,c=a.width,d=a.height,a=a.x),{x:a,y:b,width:c,w:c,height:d,h:d,x2:a+c,y2:b+d,cx:a+c/2,cy:b+d/2,r1:N.min(c,d)/2,r2:N.max(c,d)/2,r0:N.sqrt(c*c+d*d)/2,path:w(a,b,c,d),vb:[a,b,c,d].join(" ")}}function e(){return this.join(",").replace(L,"$1")}function f(a){var b=J(a);return b.toString=e,b}function g(a,b,c,d,e,f,g,h,j){return null==j?n(a,b,c,d,e,f,g,h):i(a,b,c,d,e,f,g,h,o(a,b,c,d,e,f,g,h,j))}function h(c,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,f,h){a instanceof b&&(a=a.attr("d")),a=E(a);for(var j,k,l,m,n,o="",p={},q=0,r=0,s=a.length;s>r;r++){if(l=a[r],"M"==l[0])j=+l[1],k=+l[2];else{if(m=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6]),q+m>f){if(d&&!p.start){if(n=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6],f-q),o+=["C"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)],h)return o;p.start=o,o=["M"+e(n.x),e(n.y)+"C"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(l[5]),e(l[6])].join(),q+=m,j=+l[5],k=+l[6];continue}if(!c&&!d)return n=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6],f-q)}q+=m,j=+l[5],k=+l[6]}o+=l.shift()+l}return p.end=o,n=c?q:d?p:i(j,k,l[0],l[1],l[2],l[3],l[4],l[5],1)},null,a._.clone)}function i(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/O;return{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}}function j(b,c,e,f,g,h,i,j){a.is(b,"array")||(b=[b,c,e,f,g,h,i,j]);var k=D.apply(null,b);return d(k.min.x,k.min.y,k.max.x-k.min.x,k.max.y-k.min.y)}function k(a,b,c){return b>=a.x&&b<=a.x+a.width&&c>=a.y&&c<=a.y+a.height}function l(a,b){return a=d(a),b=d(b),k(b,a.x,a.y)||k(b,a.x2,a.y)||k(b,a.x,a.y2)||k(b,a.x2,a.y2)||k(a,b.x,b.y)||k(a,b.x2,b.y)||k(a,b.x,b.y2)||k(a,b.x2,b.y2)||(a.xb.x||b.xa.x)&&(a.yb.y||b.ya.y)}function m(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function n(a,b,c,d,e,f,g,h,i){null==i&&(i=1),i=i>1?1:0>i?0:i;for(var j=i/2,k=12,l=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;k>p;p++){var q=j*l[p]+j,r=m(q,a,c,e,g),s=m(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return j*o}function o(a,b,c,d,e,f,g,h,i){if(!(0>i||n(a,b,c,d,e,f,g,h)o;)l/=2,m+=(i>j?1:-1)*l,j=n(a,b,c,d,e,f,g,h,m);return m}}function p(a,b,c,d,e,f,g,h){if(!(Q(a,c)Q(e,g)||Q(b,d)Q(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+Q(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+Q(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+Q(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+Q(f,h).toFixed(2)))return{x:l,y:m}}}}function q(a,b,c){var d=j(a),e=j(b);if(!l(d,e))return c?0:[];for(var f=n.apply(0,a),g=n.apply(0,b),h=~~(f/8),k=~~(g/8),m=[],o=[],q={},r=c?0:[],s=0;h+1>s;s++){var t=i.apply(0,a.concat(s/h));m.push({x:t.x,y:t.y,t:s/h})}for(s=0;k+1>s;s++)t=i.apply(0,b.concat(s/k)),o.push({x:t.x,y:t.y,t:s/k});for(s=0;h>s;s++)for(var u=0;k>u;u++){var v=m[s],w=m[s+1],x=o[u],y=o[u+1],z=S(w.x-v.x)<.001?"y":"x",A=S(y.x-x.x)<.001?"y":"x",B=p(v.x,v.y,w.x,w.y,x.x,x.y,y.x,y.y);if(B){if(q[B.x.toFixed(4)]==B.y.toFixed(4))continue;q[B.x.toFixed(4)]=B.y.toFixed(4);var C=v.t+S((B[z]-v[z])/(w[z]-v[z]))*(w.t-v.t),D=x.t+S((B[A]-x[A])/(y[A]-x[A]))*(y.t-x.t);C>=0&&1>=C&&D>=0&&1>=D&&(c?r++:r.push({x:B.x,y:B.y,t1:C,t2:D}))}}return r}function r(a,b){return t(a,b)}function s(a,b){return t(a,b,1)}function t(a,b,c){a=E(a),b=E(b);for(var d,e,f,g,h,i,j,k,l,m,n=c?0:[],o=0,p=a.length;p>o;o++){var r=a[o];if("M"==r[0])d=h=r[1],e=i=r[2];else{"C"==r[0]?(l=[d,e].concat(r.slice(1)),d=l[6],e=l[7]):(l=[d,e,d,e,h,i,h,i],d=h,e=i);for(var s=0,t=b.length;t>s;s++){var u=b[s];if("M"==u[0])f=j=u[1],g=k=u[2];else{"C"==u[0]?(m=[f,g].concat(u.slice(1)),f=m[6],g=m[7]):(m=[f,g,f,g,j,k,j,k],f=j,g=k);var v=q(l,m,c);if(c)n+=v;else{for(var w=0,x=v.length;x>w;w++)v[w].segment1=o,v[w].segment2=s,v[w].bez1=l,v[w].bez2=m;n=n.concat(v)}}}}}return n}function u(a,b,c){var d=v(a);return k(d,b,c)&&t(a,[["M",b,c],["H",d.x2+10]],1)%2==1}function v(a){var b=c(a);if(b.bbox)return J(b.bbox);if(!a)return d();a=E(a);for(var e,f=0,g=0,h=[],i=[],j=0,k=a.length;k>j;j++)if(e=a[j],"M"==e[0])f=e[1],g=e[2],h.push(f),i.push(g);else{var l=D(f,g,e[1],e[2],e[3],e[4],e[5],e[6]);h=h.concat(l.min.x,l.max.x),i=i.concat(l.min.y,l.max.y),f=e[5],g=e[6]}var m=P.apply(0,h),n=P.apply(0,i),o=Q.apply(0,h),p=Q.apply(0,i),q=d(m,n,o-m,p-n);return b.bbox=J(q),q}function w(a,b,c,d,f){if(f)return[["M",+a+ +f,b],["l",c-2*f,0],["a",f,f,0,0,1,f,f],["l",0,d-2*f],["a",f,f,0,0,1,-f,f],["l",2*f-c,0],["a",f,f,0,0,1,-f,-f],["l",0,2*f-d],["a",f,f,0,0,1,f,-f],["z"]];var g=[["M",a,b],["l",c,0],["l",0,d],["l",-c,0],["z"]];return g.toString=e,g}function x(a,b,c,d,f){if(null==f&&null==d&&(d=c),a=+a,b=+b,c=+c,d=+d,null!=f)var g=Math.PI/180,h=a+c*Math.cos(-d*g),i=a+c*Math.cos(-f*g),j=b+c*Math.sin(-d*g),k=b+c*Math.sin(-f*g),l=[["M",h,j],["A",c,c,0,+(f-d>180),0,i,k]];else l=[["M",a,b],["m",0,-d],["a",c,d,0,1,1,0,2*d],["a",c,d,0,1,1,0,-2*d],["z"]];return l.toString=e,l}function y(b){var d=c(b),g=String.prototype.toLowerCase;if(d.rel)return f(d.rel);a.is(b,"array")&&a.is(b&&b[0],"array")||(b=a.parsePathString(b));var h=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=b[0][1],j=b[0][2],k=i,l=j,m++,h.push(["M",i,j]));for(var n=m,o=b.length;o>n;n++){var p=h[n]=[],q=b[n];if(q[0]!=g.call(q[0]))switch(p[0]=g.call(q[0]),p[0]){case"a":p[1]=q[1],p[2]=q[2],p[3]=q[3],p[4]=q[4],p[5]=q[5],p[6]=+(q[6]-i).toFixed(3),p[7]=+(q[7]-j).toFixed(3);break;case"v":p[1]=+(q[1]-j).toFixed(3);break;case"m":k=q[1],l=q[2];default:for(var r=1,s=q.length;s>r;r++)p[r]=+(q[r]-(r%2?i:j)).toFixed(3)}else{p=h[n]=[],"m"==q[0]&&(k=q[1]+i,l=q[2]+j);for(var t=0,u=q.length;u>t;t++)h[n][t]=q[t]}var v=h[n].length;switch(h[n][0]){case"z":i=k,j=l;break;case"h":i+=+h[n][v-1];break;case"v":j+=+h[n][v-1];break;default:i+=+h[n][v-2],j+=+h[n][v-1]}}return h.toString=e,d.rel=f(h),h}function z(b){var d=c(b);if(d.abs)return f(d.abs);if(I(b,"array")&&I(b&&b[0],"array")||(b=a.parsePathString(b)),!b||!b.length)return[["M",0,0]];var g,h=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=+b[0][1],j=+b[0][2],k=i,l=j,m++,h[0]=["M",i,j]);for(var n,o,p=3==b.length&&"M"==b[0][0]&&"R"==b[1][0].toUpperCase()&&"Z"==b[2][0].toUpperCase(),q=m,r=b.length;r>q;q++){if(h.push(n=[]),o=b[q],g=o[0],g!=g.toUpperCase())switch(n[0]=g.toUpperCase(),n[0]){case"A":n[1]=o[1],n[2]=o[2],n[3]=o[3],n[4]=o[4],n[5]=o[5],n[6]=+o[6]+i,n[7]=+o[7]+j;break;case"V":n[1]=+o[1]+j;break;case"H":n[1]=+o[1]+i;break;case"R":for(var s=[i,j].concat(o.slice(1)),t=2,u=s.length;u>t;t++)s[t]=+s[t]+i,s[++t]=+s[t]+j;h.pop(),h=h.concat(G(s,p));break;case"O":h.pop(),s=x(i,j,o[1],o[2]),s.push(s[0]),h=h.concat(s);break;case"U":h.pop(),h=h.concat(x(i,j,o[1],o[2],o[3])),n=["U"].concat(h[h.length-1].slice(-2));break;case"M":k=+o[1]+i,l=+o[2]+j;default:for(t=1,u=o.length;u>t;t++)n[t]=+o[t]+(t%2?i:j)}else if("R"==g)s=[i,j].concat(o.slice(1)),h.pop(),h=h.concat(G(s,p)),n=["R"].concat(o.slice(-2));else if("O"==g)h.pop(),s=x(i,j,o[1],o[2]),s.push(s[0]),h=h.concat(s);else if("U"==g)h.pop(),h=h.concat(x(i,j,o[1],o[2],o[3])),n=["U"].concat(h[h.length-1].slice(-2));else for(var v=0,w=o.length;w>v;v++)n[v]=o[v];if(g=g.toUpperCase(),"O"!=g)switch(n[0]){case"Z":i=+k,j=+l;break;case"H":i=n[1];break;case"V":j=n[1];break;case"M":k=n[n.length-2],l=n[n.length-1];default:i=n[n.length-2],j=n[n.length-1]}}return h.toString=e,d.abs=f(h),h}function A(a,b,c,d){return[a,b,c,d,c,d]}function B(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]}function C(b,c,d,e,f,g,h,i,j,k){var l,m=120*O/180,n=O/180*(+f||0),o=[],p=a._.cacher(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(b,c,-n),b=l.x,c=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(O/180*f),N.sin(O/180*f),(b-i)/2),r=(c-j)/2,s=q*q/(d*d)+r*r/(e*e);s>1&&(s=N.sqrt(s),d=s*d,e=s*e);var t=d*d,u=e*e,v=(g==h?-1:1)*N.sqrt(S((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*d*r/e+(b+i)/2,x=v*-e*q/d+(c+j)/2,y=N.asin(((c-x)/e).toFixed(9)),z=N.asin(((j-x)/e).toFixed(9));y=w>b?O-y:y,z=w>i?O-z:z,0>y&&(y=2*O+y),0>z&&(z=2*O+z),h&&y>z&&(y-=2*O),!h&&z>y&&(z-=2*O)}var A=z-y;if(S(A)>m){var B=z,D=i,E=j;z=y+m*(h&&z>y?1:-1),i=w+d*N.cos(z),j=x+e*N.sin(z),o=C(i,j,d,e,f,0,h,D,E,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),J=N.tan(A/4),K=4/3*d*J,L=4/3*e*J,M=[b,c],P=[b+K*G,c-L*F],Q=[i+K*I,j-L*H],R=[i,j];if(P[0]=2*M[0]-P[0],P[1]=2*M[1]-P[1],k)return[P,Q,R].concat(o);o=[P,Q,R].concat(o).join().split(",");for(var T=[],U=0,V=o.length;V>U;U++)T[U]=U%2?p(o[U-1],o[U],n).y:p(o[U],o[U+1],n).x;return T}function D(a,b,c,d,e,f,g,h){for(var i,j,k,l,m,n,o,p,q=[],r=[[],[]],s=0;2>s;++s)if(0==s?(j=6*a-12*c+6*e,i=-3*a+9*c-9*e+3*g,k=3*c-3*a):(j=6*b-12*d+6*f,i=-3*b+9*d-9*f+3*h,k=3*d-3*b),S(i)<1e-12){if(S(j)<1e-12)continue;l=-k/j,l>0&&1>l&&q.push(l)}else o=j*j-4*k*i,p=N.sqrt(o),0>o||(m=(-j+p)/(2*i),m>0&&1>m&&q.push(m),n=(-j-p)/(2*i),n>0&&1>n&&q.push(n));for(var t,u=q.length,v=u;u--;)l=q[u],t=1-l,r[0][u]=t*t*t*a+3*t*t*l*c+3*t*l*l*e+l*l*l*g,r[1][u]=t*t*t*b+3*t*t*l*d+3*t*l*l*f+l*l*l*h;return r[0][v]=a,r[1][v]=b,r[0][v+1]=g,r[1][v+1]=h,r[0].length=r[1].length=v+2,{min:{x:P.apply(0,r[0]),y:P.apply(0,r[1])},max:{x:Q.apply(0,r[0]),y:Q.apply(0,r[1])}}}function E(a,b){var d=!b&&c(a);if(!b&&d.curve)return f(d.curve);for(var e=z(a),g=b&&z(b),h={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},i={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},j=(function(a,b,c){var d,e;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null),a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"].concat(C.apply(0,[b.x,b.y].concat(a.slice(1))));break;case"S":"C"==c||"S"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=["C",d,e].concat(a.slice(1));break;case"T":"Q"==c||"T"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=["C"].concat(B(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"].concat(B(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"].concat(A(b.x,b.y,a[1],a[2]));break;case"H":a=["C"].concat(A(b.x,b.y,a[1],b.y));break;case"V":a=["C"].concat(A(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"].concat(A(b.x,b.y,b.X,b.Y))}return a}),k=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)m[b]="A",g&&(n[b]="A"),a.splice(b++,0,["C"].concat(c.splice(0,6)));a.splice(b,1),r=Q(e.length,g&&g.length||0)}},l=function(a,b,c,d,f){a&&b&&"M"==a[f][0]&&"M"!=b[f][0]&&(b.splice(f,0,["M",d.x,d.y]),c.bx=0,c.by=0,c.x=a[f][1],c.y=a[f][2],r=Q(e.length,g&&g.length||0))},m=[],n=[],o="",p="",q=0,r=Q(e.length,g&&g.length||0);r>q;q++){e[q]&&(o=e[q][0]),"C"!=o&&(m[q]=o,q&&(p=m[q-1])),e[q]=j(e[q],h,p),"A"!=m[q]&&"C"==o&&(m[q]="C"),k(e,q),g&&(g[q]&&(o=g[q][0]),"C"!=o&&(n[q]=o,q&&(p=n[q-1])),g[q]=j(g[q],i,p),"A"!=n[q]&&"C"==o&&(n[q]="C"),k(g,q)),l(e,g,h,i,q),l(g,e,i,h,q);var s=e[q],t=g&&g[q],u=s.length,v=g&&t.length;h.x=s[u-2],h.y=s[u-1],h.bx=M(s[u-4])||h.x,h.by=M(s[u-3])||h.y,i.bx=g&&(M(t[v-4])||i.x),i.by=g&&(M(t[v-3])||i.y),i.x=g&&t[v-2],i.y=g&&t[v-1]}return g||(d.curve=f(e)),g?[e,g]:e}function F(a,b){if(!b)return a;var c,d,e,f,g,h,i;for(a=E(a),e=0,g=a.length;g>e;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a}function G(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}var H=b.prototype,I=a.is,J=a._.clone,K="hasOwnProperty",L=/,?([a-z]),?/gi,M=parseFloat,N=Math,O=N.PI,P=N.min,Q=N.max,R=N.pow,S=N.abs,T=h(1),U=h(),V=h(0,1),W=a._unit2px,X={path:function(a){return a.attr("path")},circle:function(a){var b=W(a);return x(b.cx,b.cy,b.r)},ellipse:function(a){var b=W(a);return x(b.cx||0,b.cy||0,b.rx,b.ry)},rect:function(a){var b=W(a);return w(b.x||0,b.y||0,b.width,b.height,b.rx,b.ry)},image:function(a){var b=W(a);return w(b.x||0,b.y||0,b.width,b.height)},line:function(a){return"M"+[a.attr("x1")||0,a.attr("y1")||0,a.attr("x2"),a.attr("y2")]},polyline:function(a){return"M"+a.attr("points")},polygon:function(a){return"M"+a.attr("points")+"z"},deflt:function(a){var b=a.node.getBBox();return w(b.x,b.y,b.width,b.height)}};a.path=c,a.path.getTotalLength=T,a.path.getPointAtLength=U,a.path.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return V(a,b).end;var d=V(a,c,1);return b?V(d,b).end:d},H.getTotalLength=function(){return this.node.getTotalLength?this.node.getTotalLength():void 0},H.getPointAtLength=function(a){return U(this.attr("d"),a)},H.getSubpath=function(b,c){return a.path.getSubpath(this.attr("d"),b,c)},a._.box=d,a.path.findDotsAtSegment=i,a.path.bezierBBox=j,a.path.isPointInsideBBox=k,a.closest=function(b,c,e,f){for(var g=100,h=d(b-g/2,c-g/2,g,g),i=[],j=e[0].hasOwnProperty("x")?function(a){return{x:e[a].x,y:e[a].y}}:function(a){return{x:e[a],y:f[a]}},l=0;1e6>=g&&!l;){for(var m=0,n=e.length;n>m;m++){var o=j(m);if(k(h,o.x,o.y)){l++,i.push(o);break}}l||(g*=2,h=d(b-g/2,c-g/2,g,g))}if(1e6!=g){var p,q=1/0;for(m=0,n=i.length;n>m;m++){var r=a.len(b,c,i[m].x,i[m].y);q>r&&(q=r,i[m].len=r,p=i[m])}return p}},a.path.isBBoxIntersect=l,a.path.intersection=r,a.path.intersectionNumber=s,a.path.isPointInside=u,a.path.getBBox=v,a.path.get=X,a.path.toRelative=y,a.path.toAbsolute=z,a.path.toCubic=E,a.path.map=F,a.path.toString=e,a.path.clone=f}),d.plugin(function(a){var d=Math.max,e=Math.min,f=function(a){if(this.items=[],this.bindings={},this.length=0,this.type="set",a)for(var b=0,c=a.length;c>b;b++)a[b]&&(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},g=f.prototype;g.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],a&&(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},g.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},g.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this},g.animate=function(d,e,f,g){"function"!=typeof f||f.length||(g=f,f=c.linear),d instanceof a._.Animation&&(g=d.callback,f=d.easing,e=f.dur,d=d.attr);var h=arguments;if(a.is(d,"array")&&a.is(h[h.length-1],"array"))var i=!0;var j,k=function(){j?this.b=j:j=this.b},l=0,m=this,n=g&&function(){++l==m.length&&g.call(this) -};return this.forEach(function(a,c){b.once("snap.animcreated."+a.id,k),i?h[c]&&a.animate.apply(a,h[c]):a.animate(d,e,f,n)})},g.remove=function(){for(;this.length;)this.pop().remove();return this},g.bind=function(a,b,c){var d={};if("function"==typeof b)this.bindings[a]=b;else{var e=c||a;this.bindings[a]=function(a){d[e]=a,b.attr(d)}}return this},g.attr=function(a){var b={};for(var c in a)this.bindings[c]?this.bindings[c](a[c]):b[c]=a[c];for(var d=0,e=this.items.length;e>d;d++)this.items[d].attr(b);return this},g.clear=function(){for(;this.length;)this.pop()},g.splice=function(a,b){a=0>a?d(this.length+a,0):a,b=d(0,e(this.length-a,b));var c,g=[],h=[],i=[];for(c=2;cc;c++)h.push(this[a+c]);for(;cc?i[c]:g[c-j];for(c=this.items.length=this.length-=b-j;this[c];)delete this[c++];return new f(h)},g.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0;return!1},g.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},g.getBBox=function(){for(var a=[],b=[],c=[],f=[],g=this.items.length;g--;)if(!this.items[g].removed){var h=this.items[g].getBBox();a.push(h.x),b.push(h.y),c.push(h.x+h.width),f.push(h.y+h.height)}return a=e.apply(0,a),b=e.apply(0,b),c=d.apply(0,c),f=d.apply(0,f),{x:a,y:b,x2:c,y2:f,width:c-a,height:f-b,cx:a+(c-a)/2,cy:b+(f-b)/2}},g.clone=function(a){a=new f;for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},g.toString=function(){return"Snap‘s set"},g.type="set",a.Set=f,a.set=function(){var a=new f;return arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0)),a}}),d.plugin(function(a,c){function d(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case"s":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}}function e(b,c,e){c=p(c).replace(/\.{3}|\u2026/g,b),b=a.parseTransformString(b)||[],c=a.parseTransformString(c)||[];for(var f,g,h,i,l=Math.max(b.length,c.length),m=[],n=[],o=0;l>o;o++){if(h=b[o]||d(c[o]),i=c[o]||d(h),h[0]!=i[0]||"r"==h[0].toLowerCase()&&(h[2]!=i[2]||h[3]!=i[3])||"s"==h[0].toLowerCase()&&(h[3]!=i[3]||h[4]!=i[4])){b=a._.transform2matrix(b,e()),c=a._.transform2matrix(c,e()),m=[["m",b.a,b.b,b.c,b.d,b.e,b.f]],n=[["m",c.a,c.b,c.c,c.d,c.e,c.f]];break}for(m[o]=[],n[o]=[],f=0,g=Math.max(h.length,i.length);g>f;f++)f in h&&(m[o][f]=h[f]),f in i&&(n[o][f]=i[f])}return{from:k(m),to:k(n),f:j(m)}}function f(a){return a}function g(a){return function(b){return+b.toFixed(3)+a}}function h(a){return a.join(" ")}function i(b){return a.rgb(b[0],b[1],b[2])}function j(a){var b,c,d,e,f,g,h=0,i=[];for(b=0,c=a.length;c>b;b++){for(f="[",g=['"'+a[b][0]+'"'],d=1,e=a[b].length;e>d;d++)g[d]="val["+h++ +"]";f+=g+"]",i[b]=f}return Function("val","return Snap.path.toString.call(["+i+"])")}function k(a){for(var b=[],c=0,d=a.length;d>c;c++)for(var e=1,f=a[c].length;f>e;e++)b.push(a[c][e]);return b}function l(a){return isFinite(parseFloat(a))}function m(b,c){return a.is(b,"array")&&a.is(c,"array")?b.toString()==c.toString():!1}var n={},o=/[a-z]+$/i,p=String;n.stroke=n.fill="colour",c.prototype.equal=function(a,c){return b("snap.util.equal",this,a,c).firstDefined()},b.on("snap.util.equal",function(b,c){var d,q,r=p(this.attr(b)||""),s=this;if(l(r)&&l(c))return{from:parseFloat(r),to:parseFloat(c),f:f};if("colour"==n[b])return d=a.color(r),q=a.color(c),{from:[d.r,d.g,d.b,d.opacity],to:[q.r,q.g,q.b,q.opacity],f:i};if("viewBox"==b)return d=this.attr(b).vb.split(" ").map(Number),q=c.split(" ").map(Number),{from:d,to:q,f:h};if("transform"==b||"gradientTransform"==b||"patternTransform"==b)return c instanceof a.Matrix&&(c=c.toTransformString()),a._.rgTransform.test(c)||(c=a._.svgTransform2string(c)),e(r,c,function(){return s.getBBox(1)});if("d"==b||"path"==b)return d=a.path.toCubic(r,c),{from:k(d[0]),to:k(d[1]),f:j(d[0])};if("points"==b)return d=p(r).split(a._.separator),q=p(c).split(a._.separator),{from:d,to:q,f:function(a){return a}};var t=r.match(o),u=p(c).match(o);return t&&m(t,u)?{from:parseFloat(r),to:parseFloat(c),f:g(t)}:{from:this.asPX(b),to:this.asPX(b,c),f:f}})}),d.plugin(function(a,c,d,e){for(var f=c.prototype,g="hasOwnProperty",h=("createTouch"in e.doc),i=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","touchstart","touchmove","touchend","touchcancel"],j={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},k=(function(a,b){var c="y"==a?"scrollTop":"scrollLeft",d=b&&b.node?b.node.ownerDocument:e.doc;return d[c in d.documentElement?"documentElement":"body"][c]}),l=function(){return this.originalEvent.preventDefault()},m=function(){return this.originalEvent.stopPropagation()},n=function(a,b,c,d){var e=h&&j[b]?j[b]:b,f=function(e){var f=k("y",d),i=k("x",d);if(h&&j[g](b))for(var n=0,o=e.targetTouches&&e.targetTouches.length;o>n;n++)if(e.targetTouches[n].target==a||a.contains(e.targetTouches[n].target)){var p=e;e=e.targetTouches[n],e.originalEvent=p,e.preventDefault=l,e.stopPropagation=m;break}var q=e.clientX+i,r=e.clientY+f;return c.call(d,e,q,r)};return b!==e&&a.addEventListener(b,f,!1),a.addEventListener(e,f,!1),function(){return b!==e&&a.removeEventListener(b,f,!1),a.removeEventListener(e,f,!1),!0}},o=[],p=function(a){for(var c,d=a.clientX,e=a.clientY,f=k("y"),g=k("x"),i=o.length;i--;){if(c=o[i],h){for(var j,l=a.touches&&a.touches.length;l--;)if(j=a.touches[l],j.identifier==c.el._drag.id||c.el.node.contains(j.target)){d=j.clientX,e=j.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();{var m=c.el.node;m.nextSibling,m.parentNode,m.style.display}d+=g,e+=f,b("snap.drag.move."+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},q=function(c){a.unmousemove(p).unmouseup(q);for(var d,e=o.length;e--;)d=o[e],d.el._drag={},b("snap.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,c),b.off("snap.drag.*."+d.el.id);o=[]},r=i.length;r--;)!function(b){a[b]=f[b]=function(c,d){if(a.is(c,"function"))this.events=this.events||[],this.events.push({name:b,f:c,unbind:n(this.node||document,b,c,d||this)});else for(var e=0,f=this.events.length;f>e;e++)if(this.events[e].name==b)try{this.events[e].f.call(this)}catch(g){}return this},a["un"+b]=f["un"+b]=function(a){for(var c=this.events||[],d=c.length;d--;)if(c[d].name==b&&(c[d].f==a||!a))return c[d].unbind(),c.splice(d,1),!c.length&&delete this.events,this;return this}}(i[r]);f.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},f.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var s=[];f.drag=function(c,d,e,f,g,h){function i(i,j,l){(i.originalEvent||i).preventDefault(),k._drag.x=j,k._drag.y=l,k._drag.id=i.identifier,!o.length&&a.mousemove(p).mouseup(q),o.push({el:k,move_scope:f,start_scope:g,end_scope:h}),d&&b.on("snap.drag.start."+k.id,d),c&&b.on("snap.drag.move."+k.id,c),e&&b.on("snap.drag.end."+k.id,e),b("snap.drag.start."+k.id,g||f||k,j,l,i)}function j(a,c,d){b("snap.draginit."+k.id,k,a,c,d)}var k=this;if(!arguments.length){var l;return k.drag(function(a,b){this.attr({transform:l+(l?"T":"t")+[a,b]})},function(){l=this.transform().local})}return b.on("snap.draginit."+k.id,i),k._drag={},s.push({el:k,start:i,init:j}),k.mousedown(j),k},f.undrag=function(){for(var c=s.length;c--;)s[c].el==this&&(this.unmousedown(s[c].init),s.splice(c,1),b.unbind("snap.drag.*."+this.id),b.unbind("snap.draginit."+this.id));return!s.length&&a.unmousemove(p).unmouseup(q),this}}),d.plugin(function(a,c,d){var e=(c.prototype,d.prototype),f=/^\s*url\((.+)\)/,g=String,h=a._.$;a.filter={},e.filter=function(b){var d=this;"svg"!=d.type&&(d=d.paper);var e=a.parse(g(b)),f=a._.id(),i=(d.node.offsetWidth,d.node.offsetHeight,h("filter"));return h(i,{id:f,filterUnits:"userSpaceOnUse"}),i.appendChild(e.node),d.defs.appendChild(i),new c(i)},b.on("snap.util.getattr.filter",function(){b.stop();var c=h(this.node,"filter");if(c){var d=g(c).match(f);return d&&a.select(d[1])}}),b.on("snap.util.attr.filter",function(d){if(d instanceof c&&"filter"==d.type){b.stop();var e=d.node.id;e||(h(d.node,{id:d.id}),e=d.id),h(this.node,{filter:a.url(e)})}d&&"none"!=d||(b.stop(),this.node.removeAttribute("filter"))}),a.filter.blur=function(b,c){null==b&&(b=2);var d=null==c?b:[b,c];return a.format('',{def:d})},a.filter.blur.toString=function(){return this()},a.filter.shadow=function(b,c,d,e,f){return"string"==typeof d&&(e=d,f=e,d=4),"string"!=typeof e&&(f=e,e="#000"),e=e||"#000",null==d&&(d=4),null==f&&(f=1),null==b&&(b=0,c=2),null==c&&(c=b),e=a.color(e),a.format('',{color:e,dx:b,dy:c,blur:d,opacity:f})},a.filter.shadow.toString=function(){return this()},a.filter.grayscale=function(b){return null==b&&(b=1),a.format('',{a:.2126+.7874*(1-b),b:.7152-.7152*(1-b),c:.0722-.0722*(1-b),d:.2126-.2126*(1-b),e:.7152+.2848*(1-b),f:.0722-.0722*(1-b),g:.2126-.2126*(1-b),h:.0722+.9278*(1-b)})},a.filter.grayscale.toString=function(){return this()},a.filter.sepia=function(b){return null==b&&(b=1),a.format('',{a:.393+.607*(1-b),b:.769-.769*(1-b),c:.189-.189*(1-b),d:.349-.349*(1-b),e:.686+.314*(1-b),f:.168-.168*(1-b),g:.272-.272*(1-b),h:.534-.534*(1-b),i:.131+.869*(1-b)})},a.filter.sepia.toString=function(){return this()},a.filter.saturate=function(b){return null==b&&(b=1),a.format('',{amount:1-b})},a.filter.saturate.toString=function(){return this()},a.filter.hueRotate=function(b){return b=b||0,a.format('',{angle:b})},a.filter.hueRotate.toString=function(){return this()},a.filter.invert=function(b){return null==b&&(b=1),a.format('',{amount:b,amount2:1-b})},a.filter.invert.toString=function(){return this()},a.filter.brightness=function(b){return null==b&&(b=1),a.format('',{amount:b})},a.filter.brightness.toString=function(){return this()},a.filter.contrast=function(b){return null==b&&(b=1),a.format('',{amount:b,amount2:.5-b/2})},a.filter.contrast.toString=function(){return this()}}),d.plugin(function(a,b){var c=a._.box,d=a.is,e=/^[^a-z]*([tbmlrc])/i,f=function(){return"T"+this.dx+","+this.dy};b.prototype.getAlign=function(a,b){null==b&&d(a,"string")&&(b=a,a=null),a=a||this.paper;var g=a.getBBox?a.getBBox():c(a),h=this.getBBox(),i={};switch(b=b&&b.match(e),b=b?b[1].toLowerCase():"c"){case"t":i.dx=0,i.dy=g.y-h.y;break;case"b":i.dx=0,i.dy=g.y2-h.y2;break;case"m":i.dx=0,i.dy=g.cy-h.cy;break;case"l":i.dx=g.x-h.x,i.dy=0;break;case"r":i.dx=g.x2-h.x2,i.dy=0;break;default:i.dx=g.cx-h.cx,i.dy=0}return i.toString=f,i},b.prototype.align=function(a,b){return this.transform("..."+this.getAlign(a,b))}}),d}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/dist/snap.svg.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/dist/snap.svg.js deleted file mode 100644 index 31e06414..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/dist/snap.svg.js +++ /dev/null @@ -1,8171 +0,0 @@ -// Snap.svg 0.4.0 -// -// Copyright (c) 2013 – 2015 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// build: 2015-04-07 - -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ┌────────────────────────────────────────────────────────────┐ \\ -// │ Eve 0.4.2 - JavaScript Events Library │ \\ -// ├────────────────────────────────────────────────────────────┤ \\ -// │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\ -// └────────────────────────────────────────────────────────────┘ \\ - -(function (glob) { - var version = "0.4.2", - has = "hasOwnProperty", - separator = /[\.\/]/, - comaseparator = /\s*,\s*/, - wildcard = "*", - fun = function () {}, - numsort = function (a, b) { - return a - b; - }, - current_event, - stop, - events = {n: {}}, - firstDefined = function () { - for (var i = 0, ii = this.length; i < ii; i++) { - if (typeof this[i] != "undefined") { - return this[i]; - } - } - }, - lastDefined = function () { - var i = this.length; - while (--i) { - if (typeof this[i] != "undefined") { - return this[i]; - } - } - }, - /*\ - * eve - [ method ] - - * Fires event with given `name`, given scope and other parameters. - - > Arguments - - - name (string) name of the *event*, dot (`.`) or slash (`/`) separated - - scope (object) context for the event handlers - - varargs (...) the rest of arguments will be sent to event handlers - - = (object) array of returned values from the listeners. Array has two methods `.firstDefined()` and `.lastDefined()` to get first or last not `undefined` value. - \*/ - eve = function (name, scope) { - name = String(name); - var e = events, - oldstop = stop, - args = Array.prototype.slice.call(arguments, 2), - listeners = eve.listeners(name), - z = 0, - f = false, - l, - indexed = [], - queue = {}, - out = [], - ce = current_event, - errors = []; - out.firstDefined = firstDefined; - out.lastDefined = lastDefined; - current_event = name; - stop = 0; - for (var i = 0, ii = listeners.length; i < ii; i++) if ("zIndex" in listeners[i]) { - indexed.push(listeners[i].zIndex); - if (listeners[i].zIndex < 0) { - queue[listeners[i].zIndex] = listeners[i]; - } - } - indexed.sort(numsort); - while (indexed[z] < 0) { - l = queue[indexed[z++]]; - out.push(l.apply(scope, args)); - if (stop) { - stop = oldstop; - return out; - } - } - for (i = 0; i < ii; i++) { - l = listeners[i]; - if ("zIndex" in l) { - if (l.zIndex == indexed[z]) { - out.push(l.apply(scope, args)); - if (stop) { - break; - } - do { - z++; - l = queue[indexed[z]]; - l && out.push(l.apply(scope, args)); - if (stop) { - break; - } - } while (l) - } else { - queue[l.zIndex] = l; - } - } else { - out.push(l.apply(scope, args)); - if (stop) { - break; - } - } - } - stop = oldstop; - current_event = ce; - return out; - }; - // Undocumented. Debug only. - eve._events = events; - /*\ - * eve.listeners - [ method ] - - * Internal method which gives you array of all event handlers that will be triggered by the given `name`. - - > Arguments - - - name (string) name of the event, dot (`.`) or slash (`/`) separated - - = (array) array of event handlers - \*/ - eve.listeners = function (name) { - var names = name.split(separator), - e = events, - item, - items, - k, - i, - ii, - j, - jj, - nes, - es = [e], - out = []; - for (i = 0, ii = names.length; i < ii; i++) { - nes = []; - for (j = 0, jj = es.length; j < jj; j++) { - e = es[j].n; - items = [e[names[i]], e[wildcard]]; - k = 2; - while (k--) { - item = items[k]; - if (item) { - nes.push(item); - out = out.concat(item.f || []); - } - } - } - es = nes; - } - return out; - }; - - /*\ - * eve.on - [ method ] - ** - * Binds given event handler with a given name. You can use wildcards “`*`” for the names: - | eve.on("*.under.*", f); - | eve("mouse.under.floor"); // triggers f - * Use @eve to trigger the listener. - ** - > Arguments - ** - - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards - - f (function) event handler function - ** - = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment. - > Example: - | eve.on("mouse", eatIt)(2); - | eve.on("mouse", scream); - | eve.on("mouse", catchIt)(1); - * This will ensure that `catchIt` function will be called before `eatIt`. - * - * If you want to put your handler before non-indexed handlers, specify a negative value. - * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”. - \*/ - eve.on = function (name, f) { - name = String(name); - if (typeof f != "function") { - return function () {}; - } - var names = name.split(comaseparator); - for (var i = 0, ii = names.length; i < ii; i++) { - (function (name) { - var names = name.split(separator), - e = events, - exist; - for (var i = 0, ii = names.length; i < ii; i++) { - e = e.n; - e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}}); - } - e.f = e.f || []; - for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) { - exist = true; - break; - } - !exist && e.f.push(f); - }(names[i])); - } - return function (zIndex) { - if (+zIndex == +zIndex) { - f.zIndex = +zIndex; - } - }; - }; - /*\ - * eve.f - [ method ] - ** - * Returns function that will fire given event with optional arguments. - * Arguments that will be passed to the result function will be also - * concated to the list of final arguments. - | el.onclick = eve.f("click", 1, 2); - | eve.on("click", function (a, b, c) { - | console.log(a, b, c); // 1, 2, [event object] - | }); - > Arguments - - event (string) event name - - varargs (…) and any other arguments - = (function) possible event handler function - \*/ - eve.f = function (event) { - var attrs = [].slice.call(arguments, 1); - return function () { - eve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0))); - }; - }; - /*\ - * eve.stop - [ method ] - ** - * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing. - \*/ - eve.stop = function () { - stop = 1; - }; - /*\ - * eve.nt - [ method ] - ** - * Could be used inside event handler to figure out actual name of the event. - ** - > Arguments - ** - - subname (string) #optional subname of the event - ** - = (string) name of the event, if `subname` is not specified - * or - = (boolean) `true`, if current event’s name contains `subname` - \*/ - eve.nt = function (subname) { - if (subname) { - return new RegExp("(?:\\.|\\/|^)" + subname + "(?:\\.|\\/|$)").test(current_event); - } - return current_event; - }; - /*\ - * eve.nts - [ method ] - ** - * Could be used inside event handler to figure out actual name of the event. - ** - ** - = (array) names of the event - \*/ - eve.nts = function () { - return current_event.split(separator); - }; - /*\ - * eve.off - [ method ] - ** - * Removes given function from the list of event listeners assigned to given name. - * If no arguments specified all the events will be cleared. - ** - > Arguments - ** - - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards - - f (function) event handler function - \*/ - /*\ - * eve.unbind - [ method ] - ** - * See @eve.off - \*/ - eve.off = eve.unbind = function (name, f) { - if (!name) { - eve._events = events = {n: {}}; - return; - } - var names = name.split(comaseparator); - if (names.length > 1) { - for (var i = 0, ii = names.length; i < ii; i++) { - eve.off(names[i], f); - } - return; - } - names = name.split(separator); - var e, - key, - splice, - i, ii, j, jj, - cur = [events]; - for (i = 0, ii = names.length; i < ii; i++) { - for (j = 0; j < cur.length; j += splice.length - 2) { - splice = [j, 1]; - e = cur[j].n; - if (names[i] != wildcard) { - if (e[names[i]]) { - splice.push(e[names[i]]); - } - } else { - for (key in e) if (e[has](key)) { - splice.push(e[key]); - } - } - cur.splice.apply(cur, splice); - } - } - for (i = 0, ii = cur.length; i < ii; i++) { - e = cur[i]; - while (e.n) { - if (f) { - if (e.f) { - for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) { - e.f.splice(j, 1); - break; - } - !e.f.length && delete e.f; - } - for (key in e.n) if (e.n[has](key) && e.n[key].f) { - var funcs = e.n[key].f; - for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) { - funcs.splice(j, 1); - break; - } - !funcs.length && delete e.n[key].f; - } - } else { - delete e.f; - for (key in e.n) if (e.n[has](key) && e.n[key].f) { - delete e.n[key].f; - } - } - e = e.n; - } - } - }; - /*\ - * eve.once - [ method ] - ** - * Binds given event handler with a given name to only run once then unbind itself. - | eve.once("login", f); - | eve("login"); // triggers f - | eve("login"); // no listeners - * Use @eve to trigger the listener. - ** - > Arguments - ** - - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards - - f (function) event handler function - ** - = (function) same return function as @eve.on - \*/ - eve.once = function (name, f) { - var f2 = function () { - eve.unbind(name, f2); - return f.apply(this, arguments); - }; - return eve.on(name, f2); - }; - /*\ - * eve.version - [ property (string) ] - ** - * Current version of the library. - \*/ - eve.version = version; - eve.toString = function () { - return "You are running Eve " + version; - }; - (typeof module != "undefined" && module.exports) ? (module.exports = eve) : (typeof define === "function" && define.amd ? (define("eve", [], function() { return eve; })) : (glob.eve = eve)); -})(this); - -(function (glob, factory) { - // AMD support - if (typeof define == "function" && define.amd) { - // Define as an anonymous module - define(["eve"], function (eve) { - return factory(glob, eve); - }); - } else if (typeof exports != 'undefined') { - // Next for Node.js or CommonJS - var eve = require('eve'); - module.exports = factory(glob, eve); - } else { - // Browser globals (glob is window) - // Snap adds itself to window - factory(glob, glob.eve); - } -}(window || this, function (window, eve) { - -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -var mina = (function (eve) { - var animations = {}, - requestAnimFrame = window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - window.msRequestAnimationFrame || - function (callback) { - setTimeout(callback, 16); - }, - isArray = Array.isArray || function (a) { - return a instanceof Array || - Object.prototype.toString.call(a) == "[object Array]"; - }, - idgen = 0, - idprefix = "M" + (+new Date).toString(36), - ID = function () { - return idprefix + (idgen++).toString(36); - }, - diff = function (a, b, A, B) { - if (isArray(a)) { - res = []; - for (var i = 0, ii = a.length; i < ii; i++) { - res[i] = diff(a[i], b, A[i], B); - } - return res; - } - var dif = (A - a) / (B - b); - return function (bb) { - return a + dif * (bb - b); - }; - }, - timer = Date.now || function () { - return +new Date; - }, - sta = function (val) { - var a = this; - if (val == null) { - return a.s; - } - var ds = a.s - val; - a.b += a.dur * ds; - a.B += a.dur * ds; - a.s = val; - }, - speed = function (val) { - var a = this; - if (val == null) { - return a.spd; - } - a.spd = val; - }, - duration = function (val) { - var a = this; - if (val == null) { - return a.dur; - } - a.s = a.s * val / a.dur; - a.dur = val; - }, - stopit = function () { - var a = this; - delete animations[a.id]; - a.update(); - eve("mina.stop." + a.id, a); - }, - pause = function () { - var a = this; - if (a.pdif) { - return; - } - delete animations[a.id]; - a.update(); - a.pdif = a.get() - a.b; - }, - resume = function () { - var a = this; - if (!a.pdif) { - return; - } - a.b = a.get() - a.pdif; - delete a.pdif; - animations[a.id] = a; - }, - update = function () { - var a = this, - res; - if (isArray(a.start)) { - res = []; - for (var j = 0, jj = a.start.length; j < jj; j++) { - res[j] = +a.start[j] + - (a.end[j] - a.start[j]) * a.easing(a.s); - } - } else { - res = +a.start + (a.end - a.start) * a.easing(a.s); - } - a.set(res); - }, - frame = function () { - var len = 0; - for (var i in animations) if (animations.hasOwnProperty(i)) { - var a = animations[i], - b = a.get(), - res; - len++; - a.s = (b - a.b) / (a.dur / a.spd); - if (a.s >= 1) { - delete animations[i]; - a.s = 1; - len--; - (function (a) { - setTimeout(function () { - eve("mina.finish." + a.id, a); - }); - }(a)); - } - a.update(); - } - len && requestAnimFrame(frame); - }, - /*\ - * mina - [ method ] - ** - * Generic animation of numbers - ** - - a (number) start _slave_ number - - A (number) end _slave_ number - - b (number) start _master_ number (start time in general case) - - B (number) end _master_ number (end time in gereal case) - - get (function) getter of _master_ number (see @mina.time) - - set (function) setter of _slave_ number - - easing (function) #optional easing function, default is @mina.linear - = (object) animation descriptor - o { - o id (string) animation id, - o start (number) start _slave_ number, - o end (number) end _slave_ number, - o b (number) start _master_ number, - o s (number) animation status (0..1), - o dur (number) animation duration, - o spd (number) animation speed, - o get (function) getter of _master_ number (see @mina.time), - o set (function) setter of _slave_ number, - o easing (function) easing function, default is @mina.linear, - o status (function) status getter/setter, - o speed (function) speed getter/setter, - o duration (function) duration getter/setter, - o stop (function) animation stopper - o pause (function) pauses the animation - o resume (function) resumes the animation - o update (function) calles setter with the right value of the animation - o } - \*/ - mina = function (a, A, b, B, get, set, easing) { - var anim = { - id: ID(), - start: a, - end: A, - b: b, - s: 0, - dur: B - b, - spd: 1, - get: get, - set: set, - easing: easing || mina.linear, - status: sta, - speed: speed, - duration: duration, - stop: stopit, - pause: pause, - resume: resume, - update: update - }; - animations[anim.id] = anim; - var len = 0, i; - for (i in animations) if (animations.hasOwnProperty(i)) { - len++; - if (len == 2) { - break; - } - } - len == 1 && requestAnimFrame(frame); - return anim; - }; - /*\ - * mina.time - [ method ] - ** - * Returns the current time. Equivalent to: - | function () { - | return (new Date).getTime(); - | } - \*/ - mina.time = timer; - /*\ - * mina.getById - [ method ] - ** - * Returns an animation by its id - - id (string) animation's id - = (object) See @mina - \*/ - mina.getById = function (id) { - return animations[id] || null; - }; - - /*\ - * mina.linear - [ method ] - ** - * Default linear easing - - n (number) input 0..1 - = (number) output 0..1 - \*/ - mina.linear = function (n) { - return n; - }; - /*\ - * mina.easeout - [ method ] - ** - * Easeout easing - - n (number) input 0..1 - = (number) output 0..1 - \*/ - mina.easeout = function (n) { - return Math.pow(n, 1.7); - }; - /*\ - * mina.easein - [ method ] - ** - * Easein easing - - n (number) input 0..1 - = (number) output 0..1 - \*/ - mina.easein = function (n) { - return Math.pow(n, .48); - }; - /*\ - * mina.easeinout - [ method ] - ** - * Easeinout easing - - n (number) input 0..1 - = (number) output 0..1 - \*/ - mina.easeinout = function (n) { - if (n == 1) { - return 1; - } - if (n == 0) { - return 0; - } - var q = .48 - n / 1.04, - Q = Math.sqrt(.1734 + q * q), - x = Q - q, - X = Math.pow(Math.abs(x), 1 / 3) * (x < 0 ? -1 : 1), - y = -Q - q, - Y = Math.pow(Math.abs(y), 1 / 3) * (y < 0 ? -1 : 1), - t = X + Y + .5; - return (1 - t) * 3 * t * t + t * t * t; - }; - /*\ - * mina.backin - [ method ] - ** - * Backin easing - - n (number) input 0..1 - = (number) output 0..1 - \*/ - mina.backin = function (n) { - if (n == 1) { - return 1; - } - var s = 1.70158; - return n * n * ((s + 1) * n - s); - }; - /*\ - * mina.backout - [ method ] - ** - * Backout easing - - n (number) input 0..1 - = (number) output 0..1 - \*/ - mina.backout = function (n) { - if (n == 0) { - return 0; - } - n = n - 1; - var s = 1.70158; - return n * n * ((s + 1) * n + s) + 1; - }; - /*\ - * mina.elastic - [ method ] - ** - * Elastic easing - - n (number) input 0..1 - = (number) output 0..1 - \*/ - mina.elastic = function (n) { - if (n == !!n) { - return n; - } - return Math.pow(2, -10 * n) * Math.sin((n - .075) * - (2 * Math.PI) / .3) + 1; - }; - /*\ - * mina.bounce - [ method ] - ** - * Bounce easing - - n (number) input 0..1 - = (number) output 0..1 - \*/ - mina.bounce = function (n) { - var s = 7.5625, - p = 2.75, - l; - if (n < (1 / p)) { - l = s * n * n; - } else { - if (n < (2 / p)) { - n -= (1.5 / p); - l = s * n * n + .75; - } else { - if (n < (2.5 / p)) { - n -= (2.25 / p); - l = s * n * n + .9375; - } else { - n -= (2.625 / p); - l = s * n * n + .984375; - } - } - } - return l; - }; - window.mina = mina; - return mina; -})(typeof eve == "undefined" ? function () {} : eve); -// Copyright (c) 2013 - 2015 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var Snap = (function(root) { -Snap.version = "0.4.0"; -/*\ - * Snap - [ method ] - ** - * Creates a drawing surface or wraps existing SVG element. - ** - - width (number|string) width of surface - - height (number|string) height of surface - * or - - DOM (SVGElement) element to be wrapped into Snap structure - * or - - array (array) array of elements (will return set of elements) - * or - - query (string) CSS query selector - = (object) @Element -\*/ -function Snap(w, h) { - if (w) { - if (w.nodeType) { - return wrap(w); - } - if (is(w, "array") && Snap.set) { - return Snap.set.apply(Snap, w); - } - if (w instanceof Element) { - return w; - } - if (h == null) { - w = glob.doc.querySelector(String(w)); - return wrap(w); - } - } - w = w == null ? "100%" : w; - h = h == null ? "100%" : h; - return new Paper(w, h); -} -Snap.toString = function () { - return "Snap v" + this.version; -}; -Snap._ = {}; -var glob = { - win: root.window, - doc: root.window.document -}; -Snap._.glob = glob; -var has = "hasOwnProperty", - Str = String, - toFloat = parseFloat, - toInt = parseInt, - math = Math, - mmax = math.max, - mmin = math.min, - abs = math.abs, - pow = math.pow, - PI = math.PI, - round = math.round, - E = "", - S = " ", - objectToString = Object.prototype.toString, - ISURL = /^url\(['"]?([^\)]+?)['"]?\)$/i, - colourRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\))\s*$/i, - bezierrg = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/, - reURLValue = /^url\(#?([^)]+)\)$/, - separator = Snap._.separator = /[,\s]+/, - whitespace = /[\s]/g, - commaSpaces = /[\s]*,[\s]*/, - hsrg = {hs: 1, rg: 1}, - pathCommand = /([a-z])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/ig, - tCommand = /([rstm])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/ig, - pathValues = /(-?\d*\.?\d*(?:e[\-+]?\\d+)?)[\s]*,?[\s]*/ig, - idgen = 0, - idprefix = "S" + (+new Date).toString(36), - ID = function (el) { - return (el && el.type ? el.type : E) + idprefix + (idgen++).toString(36); - }, - xlink = "http://www.w3.org/1999/xlink", - xmlns = "http://www.w3.org/2000/svg", - hub = {}, - URL = Snap.url = function (url) { - return "url('#" + url + "')"; - }; - -function $(el, attr) { - if (attr) { - if (el == "#text") { - el = glob.doc.createTextNode(attr.text || attr["#text"] || ""); - } - if (el == "#comment") { - el = glob.doc.createComment(attr.text || attr["#text"] || ""); - } - if (typeof el == "string") { - el = $(el); - } - if (typeof attr == "string") { - if (el.nodeType == 1) { - if (attr.substring(0, 6) == "xlink:") { - return el.getAttributeNS(xlink, attr.substring(6)); - } - if (attr.substring(0, 4) == "xml:") { - return el.getAttributeNS(xmlns, attr.substring(4)); - } - return el.getAttribute(attr); - } else if (attr == "text") { - return el.nodeValue; - } else { - return null; - } - } - if (el.nodeType == 1) { - for (var key in attr) if (attr[has](key)) { - var val = Str(attr[key]); - if (val) { - if (key.substring(0, 6) == "xlink:") { - el.setAttributeNS(xlink, key.substring(6), val); - } else if (key.substring(0, 4) == "xml:") { - el.setAttributeNS(xmlns, key.substring(4), val); - } else { - el.setAttribute(key, val); - } - } else { - el.removeAttribute(key); - } - } - } else if ("text" in attr) { - el.nodeValue = attr.text; - } - } else { - el = glob.doc.createElementNS(xmlns, el); - } - return el; -} -Snap._.$ = $; -Snap._.id = ID; -function getAttrs(el) { - var attrs = el.attributes, - name, - out = {}; - for (var i = 0; i < attrs.length; i++) { - if (attrs[i].namespaceURI == xlink) { - name = "xlink:"; - } else { - name = ""; - } - name += attrs[i].name; - out[name] = attrs[i].textContent; - } - return out; -} -function is(o, type) { - type = Str.prototype.toLowerCase.call(type); - if (type == "finite") { - return isFinite(o); - } - if (type == "array" && - (o instanceof Array || Array.isArray && Array.isArray(o))) { - return true; - } - return (type == "null" && o === null) || - (type == typeof o && o !== null) || - (type == "object" && o === Object(o)) || - objectToString.call(o).slice(8, -1).toLowerCase() == type; -} -/*\ - * Snap.format - [ method ] - ** - * Replaces construction of type `{}` to the corresponding argument - ** - - token (string) string to format - - json (object) object which properties are used as a replacement - = (string) formatted string - > Usage - | // this draws a rectangular shape equivalent to "M10,20h40v50h-40z" - | paper.path(Snap.format("M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z", { - | x: 10, - | y: 20, - | dim: { - | width: 40, - | height: 50, - | "negative width": -40 - | } - | })); -\*/ -Snap.format = (function () { - var tokenRegex = /\{([^\}]+)\}/g, - objNotationRegex = /(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g, // matches .xxxxx or ["xxxxx"] to run over object properties - replacer = function (all, key, obj) { - var res = obj; - key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) { - name = name || quotedName; - if (res) { - if (name in res) { - res = res[name]; - } - typeof res == "function" && isFunc && (res = res()); - } - }); - res = (res == null || res == obj ? all : res) + ""; - return res; - }; - return function (str, obj) { - return Str(str).replace(tokenRegex, function (all, key) { - return replacer(all, key, obj); - }); - }; -})(); -function clone(obj) { - if (typeof obj == "function" || Object(obj) !== obj) { - return obj; - } - var res = new obj.constructor; - for (var key in obj) if (obj[has](key)) { - res[key] = clone(obj[key]); - } - return res; -} -Snap._.clone = clone; -function repush(array, item) { - for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) { - return array.push(array.splice(i, 1)[0]); - } -} -function cacher(f, scope, postprocessor) { - function newf() { - var arg = Array.prototype.slice.call(arguments, 0), - args = arg.join("\u2400"), - cache = newf.cache = newf.cache || {}, - count = newf.count = newf.count || []; - if (cache[has](args)) { - repush(count, args); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - count.length >= 1e3 && delete cache[count.shift()]; - count.push(args); - cache[args] = f.apply(scope, arg); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - return newf; -} -Snap._.cacher = cacher; -function angle(x1, y1, x2, y2, x3, y3) { - if (x3 == null) { - var x = x1 - x2, - y = y1 - y2; - if (!x && !y) { - return 0; - } - return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360; - } else { - return angle(x1, y1, x3, y3) - angle(x2, y2, x3, y3); - } -} -function rad(deg) { - return deg % 360 * PI / 180; -} -function deg(rad) { - return rad * 180 / PI % 360; -} -function x_y() { - return this.x + S + this.y; -} -function x_y_w_h() { - return this.x + S + this.y + S + this.width + " \xd7 " + this.height; -} - -/*\ - * Snap.rad - [ method ] - ** - * Transform angle to radians - - deg (number) angle in degrees - = (number) angle in radians -\*/ -Snap.rad = rad; -/*\ - * Snap.deg - [ method ] - ** - * Transform angle to degrees - - rad (number) angle in radians - = (number) angle in degrees -\*/ -Snap.deg = deg; -/*\ - * Snap.sin - [ method ] - ** - * Equivalent to `Math.sin()` only works with degrees, not radians. - - angle (number) angle in degrees - = (number) sin -\*/ -Snap.sin = function (angle) { - return math.sin(Snap.rad(angle)); -}; -/*\ - * Snap.tan - [ method ] - ** - * Equivalent to `Math.tan()` only works with degrees, not radians. - - angle (number) angle in degrees - = (number) tan -\*/ -Snap.tan = function (angle) { - return math.tan(Snap.rad(angle)); -}; -/*\ - * Snap.cos - [ method ] - ** - * Equivalent to `Math.cos()` only works with degrees, not radians. - - angle (number) angle in degrees - = (number) cos -\*/ -Snap.cos = function (angle) { - return math.cos(Snap.rad(angle)); -}; -/*\ - * Snap.asin - [ method ] - ** - * Equivalent to `Math.asin()` only works with degrees, not radians. - - num (number) value - = (number) asin in degrees -\*/ -Snap.asin = function (num) { - return Snap.deg(math.asin(num)); -}; -/*\ - * Snap.acos - [ method ] - ** - * Equivalent to `Math.acos()` only works with degrees, not radians. - - num (number) value - = (number) acos in degrees -\*/ -Snap.acos = function (num) { - return Snap.deg(math.acos(num)); -}; -/*\ - * Snap.atan - [ method ] - ** - * Equivalent to `Math.atan()` only works with degrees, not radians. - - num (number) value - = (number) atan in degrees -\*/ -Snap.atan = function (num) { - return Snap.deg(math.atan(num)); -}; -/*\ - * Snap.atan2 - [ method ] - ** - * Equivalent to `Math.atan2()` only works with degrees, not radians. - - num (number) value - = (number) atan2 in degrees -\*/ -Snap.atan2 = function (num) { - return Snap.deg(math.atan2(num)); -}; -/*\ - * Snap.angle - [ method ] - ** - * Returns an angle between two or three points - > Parameters - - x1 (number) x coord of first point - - y1 (number) y coord of first point - - x2 (number) x coord of second point - - y2 (number) y coord of second point - - x3 (number) #optional x coord of third point - - y3 (number) #optional y coord of third point - = (number) angle in degrees -\*/ -Snap.angle = angle; -/*\ - * Snap.len - [ method ] - ** - * Returns distance between two points - > Parameters - - x1 (number) x coord of first point - - y1 (number) y coord of first point - - x2 (number) x coord of second point - - y2 (number) y coord of second point - = (number) distance -\*/ -Snap.len = function (x1, y1, x2, y2) { - return Math.sqrt(Snap.len2(x1, y1, x2, y2)); -}; -/*\ - * Snap.len2 - [ method ] - ** - * Returns squared distance between two points - > Parameters - - x1 (number) x coord of first point - - y1 (number) y coord of first point - - x2 (number) x coord of second point - - y2 (number) y coord of second point - = (number) distance -\*/ -Snap.len2 = function (x1, y1, x2, y2) { - return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2); -}; -/*\ - * Snap.closestPoint - [ method ] - ** - * Returns closest point to a given one on a given path. - > Parameters - - path (Element) path element - - x (number) x coord of a point - - y (number) y coord of a point - = (object) in format - { - x (number) x coord of the point on the path - y (number) y coord of the point on the path - length (number) length of the path to the point - distance (number) distance from the given point to the path - } -\*/ -// Copied from http://bl.ocks.org/mbostock/8027637 -Snap.closestPoint = function (path, x, y) { - function distance2(p) { - var dx = p.x - x, - dy = p.y - y; - return dx * dx + dy * dy; - } - var pathNode = path.node, - pathLength = pathNode.getTotalLength(), - precision = pathLength / pathNode.pathSegList.numberOfItems * .125, - best, - bestLength, - bestDistance = Infinity; - - // linear scan for coarse approximation - for (var scan, scanLength = 0, scanDistance; scanLength <= pathLength; scanLength += precision) { - if ((scanDistance = distance2(scan = pathNode.getPointAtLength(scanLength))) < bestDistance) { - best = scan, bestLength = scanLength, bestDistance = scanDistance; - } - } - - // binary search for precise estimate - precision *= .5; - while (precision > .5) { - var before, - after, - beforeLength, - afterLength, - beforeDistance, - afterDistance; - if ((beforeLength = bestLength - precision) >= 0 && (beforeDistance = distance2(before = pathNode.getPointAtLength(beforeLength))) < bestDistance) { - best = before, bestLength = beforeLength, bestDistance = beforeDistance; - } else if ((afterLength = bestLength + precision) <= pathLength && (afterDistance = distance2(after = pathNode.getPointAtLength(afterLength))) < bestDistance) { - best = after, bestLength = afterLength, bestDistance = afterDistance; - } else { - precision *= .5; - } - } - - best = { - x: best.x, - y: best.y, - length: bestLength, - distance: Math.sqrt(bestDistance) - }; - return best; -} -/*\ - * Snap.is - [ method ] - ** - * Handy replacement for the `typeof` operator - - o (…) any object or primitive - - type (string) name of the type, e.g., `string`, `function`, `number`, etc. - = (boolean) `true` if given value is of given type -\*/ -Snap.is = is; -/*\ - * Snap.snapTo - [ method ] - ** - * Snaps given value to given grid - - values (array|number) given array of values or step of the grid - - value (number) value to adjust - - tolerance (number) #optional maximum distance to the target value that would trigger the snap. Default is `10`. - = (number) adjusted value -\*/ -Snap.snapTo = function (values, value, tolerance) { - tolerance = is(tolerance, "finite") ? tolerance : 10; - if (is(values, "array")) { - var i = values.length; - while (i--) if (abs(values[i] - value) <= tolerance) { - return values[i]; - } - } else { - values = +values; - var rem = value % values; - if (rem < tolerance) { - return value - rem; - } - if (rem > values - tolerance) { - return value - rem + values; - } - } - return value; -}; -// Colour -/*\ - * Snap.getRGB - [ method ] - ** - * Parses color string as RGB object - - color (string) color string in one of the following formats: - #
              - #
            • Color name (red, green, cornflowerblue, etc)
            • - #
            • #••• — shortened HTML color: (#000, #fc0, etc.)
            • - #
            • #•••••• — full length HTML color: (#000000, #bd2300)
            • - #
            • rgb(•••, •••, •••) — red, green and blue channels values: (rgb(200, 100, 0))
            • - #
            • rgba(•••, •••, •••, •••) — also with opacity
            • - #
            • rgb(•••%, •••%, •••%) — same as above, but in %: (rgb(100%, 175%, 0%))
            • - #
            • rgba(•••%, •••%, •••%, •••%) — also with opacity
            • - #
            • hsb(•••, •••, •••) — hue, saturation and brightness values: (hsb(0.5, 0.25, 1))
            • - #
            • hsba(•••, •••, •••, •••) — also with opacity
            • - #
            • hsb(•••%, •••%, •••%) — same as above, but in %
            • - #
            • hsba(•••%, •••%, •••%, •••%) — also with opacity
            • - #
            • hsl(•••, •••, •••) — hue, saturation and luminosity values: (hsb(0.5, 0.25, 0.5))
            • - #
            • hsla(•••, •••, •••, •••) — also with opacity
            • - #
            • hsl(•••%, •••%, •••%) — same as above, but in %
            • - #
            • hsla(•••%, •••%, •••%, •••%) — also with opacity
            • - #
            - * Note that `%` can be used any time: `rgb(20%, 255, 50%)`. - = (object) RGB object in the following format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #••••••, - o error (boolean) true if string can't be parsed - o } -\*/ -Snap.getRGB = cacher(function (colour) { - if (!colour || !!((colour = Str(colour)).indexOf("-") + 1)) { - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: rgbtoString}; - } - if (colour == "none") { - return {r: -1, g: -1, b: -1, hex: "none", toString: rgbtoString}; - } - !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == "#") && (colour = toHex(colour)); - if (!colour) { - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: rgbtoString}; - } - var res, - red, - green, - blue, - opacity, - t, - values, - rgb = colour.match(colourRegExp); - if (rgb) { - if (rgb[2]) { - blue = toInt(rgb[2].substring(5), 16); - green = toInt(rgb[2].substring(3, 5), 16); - red = toInt(rgb[2].substring(1, 3), 16); - } - if (rgb[3]) { - blue = toInt((t = rgb[3].charAt(3)) + t, 16); - green = toInt((t = rgb[3].charAt(2)) + t, 16); - red = toInt((t = rgb[3].charAt(1)) + t, 16); - } - if (rgb[4]) { - values = rgb[4].split(commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - rgb[1].toLowerCase().slice(0, 4) == "rgba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - } - if (rgb[5]) { - values = rgb[5].split(commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red /= 100); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green /= 100); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue /= 100); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return Snap.hsb2rgb(red, green, blue, opacity); - } - if (rgb[6]) { - values = rgb[6].split(commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red /= 100); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green /= 100); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue /= 100); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsla" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return Snap.hsl2rgb(red, green, blue, opacity); - } - red = mmin(math.round(red), 255); - green = mmin(math.round(green), 255); - blue = mmin(math.round(blue), 255); - opacity = mmin(mmax(opacity, 0), 1); - rgb = {r: red, g: green, b: blue, toString: rgbtoString}; - rgb.hex = "#" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1); - rgb.opacity = is(opacity, "finite") ? opacity : 1; - return rgb; - } - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: rgbtoString}; -}, Snap); -/*\ - * Snap.hsb - [ method ] - ** - * Converts HSB values to a hex representation of the color - - h (number) hue - - s (number) saturation - - b (number) value or brightness - = (string) hex representation of the color -\*/ -Snap.hsb = cacher(function (h, s, b) { - return Snap.hsb2rgb(h, s, b).hex; -}); -/*\ - * Snap.hsl - [ method ] - ** - * Converts HSL values to a hex representation of the color - - h (number) hue - - s (number) saturation - - l (number) luminosity - = (string) hex representation of the color -\*/ -Snap.hsl = cacher(function (h, s, l) { - return Snap.hsl2rgb(h, s, l).hex; -}); -/*\ - * Snap.rgb - [ method ] - ** - * Converts RGB values to a hex representation of the color - - r (number) red - - g (number) green - - b (number) blue - = (string) hex representation of the color -\*/ -Snap.rgb = cacher(function (r, g, b, o) { - if (is(o, "finite")) { - var round = math.round; - return "rgba(" + [round(r), round(g), round(b), +o.toFixed(2)] + ")"; - } - return "#" + (16777216 | b | (g << 8) | (r << 16)).toString(16).slice(1); -}); -var toHex = function (color) { - var i = glob.doc.getElementsByTagName("head")[0] || glob.doc.getElementsByTagName("svg")[0], - red = "rgb(255, 0, 0)"; - toHex = cacher(function (color) { - if (color.toLowerCase() == "red") { - return red; - } - i.style.color = red; - i.style.color = color; - var out = glob.doc.defaultView.getComputedStyle(i, E).getPropertyValue("color"); - return out == red ? null : out; - }); - return toHex(color); -}, -hsbtoString = function () { - return "hsb(" + [this.h, this.s, this.b] + ")"; -}, -hsltoString = function () { - return "hsl(" + [this.h, this.s, this.l] + ")"; -}, -rgbtoString = function () { - return this.opacity == 1 || this.opacity == null ? - this.hex : - "rgba(" + [this.r, this.g, this.b, this.opacity] + ")"; -}, -prepareRGB = function (r, g, b) { - if (g == null && is(r, "object") && "r" in r && "g" in r && "b" in r) { - b = r.b; - g = r.g; - r = r.r; - } - if (g == null && is(r, string)) { - var clr = Snap.getRGB(r); - r = clr.r; - g = clr.g; - b = clr.b; - } - if (r > 1 || g > 1 || b > 1) { - r /= 255; - g /= 255; - b /= 255; - } - - return [r, g, b]; -}, -packageRGB = function (r, g, b, o) { - r = math.round(r * 255); - g = math.round(g * 255); - b = math.round(b * 255); - var rgb = { - r: r, - g: g, - b: b, - opacity: is(o, "finite") ? o : 1, - hex: Snap.rgb(r, g, b), - toString: rgbtoString - }; - is(o, "finite") && (rgb.opacity = o); - return rgb; -}; -/*\ - * Snap.color - [ method ] - ** - * Parses the color string and returns an object featuring the color's component values - - clr (string) color string in one of the supported formats (see @Snap.getRGB) - = (object) Combined RGB/HSB object in the following format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #••••••, - o error (boolean) `true` if string can't be parsed, - o h (number) hue, - o s (number) saturation, - o v (number) value (brightness), - o l (number) lightness - o } -\*/ -Snap.color = function (clr) { - var rgb; - if (is(clr, "object") && "h" in clr && "s" in clr && "b" in clr) { - rgb = Snap.hsb2rgb(clr); - clr.r = rgb.r; - clr.g = rgb.g; - clr.b = rgb.b; - clr.opacity = 1; - clr.hex = rgb.hex; - } else if (is(clr, "object") && "h" in clr && "s" in clr && "l" in clr) { - rgb = Snap.hsl2rgb(clr); - clr.r = rgb.r; - clr.g = rgb.g; - clr.b = rgb.b; - clr.opacity = 1; - clr.hex = rgb.hex; - } else { - if (is(clr, "string")) { - clr = Snap.getRGB(clr); - } - if (is(clr, "object") && "r" in clr && "g" in clr && "b" in clr && !("error" in clr)) { - rgb = Snap.rgb2hsl(clr); - clr.h = rgb.h; - clr.s = rgb.s; - clr.l = rgb.l; - rgb = Snap.rgb2hsb(clr); - clr.v = rgb.b; - } else { - clr = {hex: "none"}; - clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1; - clr.error = 1; - } - } - clr.toString = rgbtoString; - return clr; -}; -/*\ - * Snap.hsb2rgb - [ method ] - ** - * Converts HSB values to an RGB object - - h (number) hue - - s (number) saturation - - v (number) value or brightness - = (object) RGB object in the following format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #•••••• - o } -\*/ -Snap.hsb2rgb = function (h, s, v, o) { - if (is(h, "object") && "h" in h && "s" in h && "b" in h) { - v = h.b; - s = h.s; - o = h.o; - h = h.h; - } - h *= 360; - var R, G, B, X, C; - h = (h % 360) / 60; - C = v * s; - X = C * (1 - abs(h % 2 - 1)); - R = G = B = v - C; - - h = ~~h; - R += [C, X, 0, 0, X, C][h]; - G += [X, C, C, X, 0, 0][h]; - B += [0, 0, X, C, C, X][h]; - return packageRGB(R, G, B, o); -}; -/*\ - * Snap.hsl2rgb - [ method ] - ** - * Converts HSL values to an RGB object - - h (number) hue - - s (number) saturation - - l (number) luminosity - = (object) RGB object in the following format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #•••••• - o } -\*/ -Snap.hsl2rgb = function (h, s, l, o) { - if (is(h, "object") && "h" in h && "s" in h && "l" in h) { - l = h.l; - s = h.s; - h = h.h; - } - if (h > 1 || s > 1 || l > 1) { - h /= 360; - s /= 100; - l /= 100; - } - h *= 360; - var R, G, B, X, C; - h = (h % 360) / 60; - C = 2 * s * (l < .5 ? l : 1 - l); - X = C * (1 - abs(h % 2 - 1)); - R = G = B = l - C / 2; - - h = ~~h; - R += [C, X, 0, 0, X, C][h]; - G += [X, C, C, X, 0, 0][h]; - B += [0, 0, X, C, C, X][h]; - return packageRGB(R, G, B, o); -}; -/*\ - * Snap.rgb2hsb - [ method ] - ** - * Converts RGB values to an HSB object - - r (number) red - - g (number) green - - b (number) blue - = (object) HSB object in the following format: - o { - o h (number) hue, - o s (number) saturation, - o b (number) brightness - o } -\*/ -Snap.rgb2hsb = function (r, g, b) { - b = prepareRGB(r, g, b); - r = b[0]; - g = b[1]; - b = b[2]; - - var H, S, V, C; - V = mmax(r, g, b); - C = V - mmin(r, g, b); - H = (C == 0 ? null : - V == r ? (g - b) / C : - V == g ? (b - r) / C + 2 : - (r - g) / C + 4 - ); - H = ((H + 360) % 6) * 60 / 360; - S = C == 0 ? 0 : C / V; - return {h: H, s: S, b: V, toString: hsbtoString}; -}; -/*\ - * Snap.rgb2hsl - [ method ] - ** - * Converts RGB values to an HSL object - - r (number) red - - g (number) green - - b (number) blue - = (object) HSL object in the following format: - o { - o h (number) hue, - o s (number) saturation, - o l (number) luminosity - o } -\*/ -Snap.rgb2hsl = function (r, g, b) { - b = prepareRGB(r, g, b); - r = b[0]; - g = b[1]; - b = b[2]; - - var H, S, L, M, m, C; - M = mmax(r, g, b); - m = mmin(r, g, b); - C = M - m; - H = (C == 0 ? null : - M == r ? (g - b) / C : - M == g ? (b - r) / C + 2 : - (r - g) / C + 4); - H = ((H + 360) % 6) * 60 / 360; - L = (M + m) / 2; - S = (C == 0 ? 0 : - L < .5 ? C / (2 * L) : - C / (2 - 2 * L)); - return {h: H, s: S, l: L, toString: hsltoString}; -}; - -// Transformations -/*\ - * Snap.parsePathString - [ method ] - ** - * Utility method - ** - * Parses given path string into an array of arrays of path segments - - pathString (string|array) path string or array of segments (in the last case it is returned straight away) - = (array) array of segments -\*/ -Snap.parsePathString = function (pathString) { - if (!pathString) { - return null; - } - var pth = Snap.path(pathString); - if (pth.arr) { - return Snap.path.clone(pth.arr); - } - - var paramCounts = {a: 7, c: 6, o: 2, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, u: 3, z: 0}, - data = []; - if (is(pathString, "array") && is(pathString[0], "array")) { // rough assumption - data = Snap.path.clone(pathString); - } - if (!data.length) { - Str(pathString).replace(pathCommand, function (a, b, c) { - var params = [], - name = b.toLowerCase(); - c.replace(pathValues, function (a, b) { - b && params.push(+b); - }); - if (name == "m" && params.length > 2) { - data.push([b].concat(params.splice(0, 2))); - name = "l"; - b = b == "m" ? "l" : "L"; - } - if (name == "o" && params.length == 1) { - data.push([b, params[0]]); - } - if (name == "r") { - data.push([b].concat(params)); - } else while (params.length >= paramCounts[name]) { - data.push([b].concat(params.splice(0, paramCounts[name]))); - if (!paramCounts[name]) { - break; - } - } - }); - } - data.toString = Snap.path.toString; - pth.arr = Snap.path.clone(data); - return data; -}; -/*\ - * Snap.parseTransformString - [ method ] - ** - * Utility method - ** - * Parses given transform string into an array of transformations - - TString (string|array) transform string or array of transformations (in the last case it is returned straight away) - = (array) array of transformations -\*/ -var parseTransformString = Snap.parseTransformString = function (TString) { - if (!TString) { - return null; - } - var paramCounts = {r: 3, s: 4, t: 2, m: 6}, - data = []; - if (is(TString, "array") && is(TString[0], "array")) { // rough assumption - data = Snap.path.clone(TString); - } - if (!data.length) { - Str(TString).replace(tCommand, function (a, b, c) { - var params = [], - name = b.toLowerCase(); - c.replace(pathValues, function (a, b) { - b && params.push(+b); - }); - data.push([b].concat(params)); - }); - } - data.toString = Snap.path.toString; - return data; -}; -function svgTransform2string(tstr) { - var res = []; - tstr = tstr.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g, function (all, name, params) { - params = params.split(/\s*,\s*|\s+/); - if (name == "rotate" && params.length == 1) { - params.push(0, 0); - } - if (name == "scale") { - if (params.length > 2) { - params = params.slice(0, 2); - } else if (params.length == 2) { - params.push(0, 0); - } - if (params.length == 1) { - params.push(params[0], 0, 0); - } - } - if (name == "skewX") { - res.push(["m", 1, 0, math.tan(rad(params[0])), 1, 0, 0]); - } else if (name == "skewY") { - res.push(["m", 1, math.tan(rad(params[0])), 0, 1, 0, 0]); - } else { - res.push([name.charAt(0)].concat(params)); - } - return all; - }); - return res; -} -Snap._.svgTransform2string = svgTransform2string; -Snap._.rgTransform = /^[a-z][\s]*-?\.?\d/i; -function transform2matrix(tstr, bbox) { - var tdata = parseTransformString(tstr), - m = new Snap.Matrix; - if (tdata) { - for (var i = 0, ii = tdata.length; i < ii; i++) { - var t = tdata[i], - tlen = t.length, - command = Str(t[0]).toLowerCase(), - absolute = t[0] != command, - inver = absolute ? m.invert() : 0, - x1, - y1, - x2, - y2, - bb; - if (command == "t" && tlen == 2){ - m.translate(t[1], 0); - } else if (command == "t" && tlen == 3) { - if (absolute) { - x1 = inver.x(0, 0); - y1 = inver.y(0, 0); - x2 = inver.x(t[1], t[2]); - y2 = inver.y(t[1], t[2]); - m.translate(x2 - x1, y2 - y1); - } else { - m.translate(t[1], t[2]); - } - } else if (command == "r") { - if (tlen == 2) { - bb = bb || bbox; - m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2); - } else if (tlen == 4) { - if (absolute) { - x2 = inver.x(t[2], t[3]); - y2 = inver.y(t[2], t[3]); - m.rotate(t[1], x2, y2); - } else { - m.rotate(t[1], t[2], t[3]); - } - } - } else if (command == "s") { - if (tlen == 2 || tlen == 3) { - bb = bb || bbox; - m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2); - } else if (tlen == 4) { - if (absolute) { - x2 = inver.x(t[2], t[3]); - y2 = inver.y(t[2], t[3]); - m.scale(t[1], t[1], x2, y2); - } else { - m.scale(t[1], t[1], t[2], t[3]); - } - } else if (tlen == 5) { - if (absolute) { - x2 = inver.x(t[3], t[4]); - y2 = inver.y(t[3], t[4]); - m.scale(t[1], t[2], x2, y2); - } else { - m.scale(t[1], t[2], t[3], t[4]); - } - } - } else if (command == "m" && tlen == 7) { - m.add(t[1], t[2], t[3], t[4], t[5], t[6]); - } - } - } - return m; -} -Snap._.transform2matrix = transform2matrix; -Snap._unit2px = unit2px; -var contains = glob.doc.contains || glob.doc.compareDocumentPosition ? - function (a, b) { - var adown = a.nodeType == 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a == bup || !!(bup && bup.nodeType == 1 && ( - adown.contains ? - adown.contains(bup) : - a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16 - )); - } : - function (a, b) { - if (b) { - while (b) { - b = b.parentNode; - if (b == a) { - return true; - } - } - } - return false; - }; -function getSomeDefs(el) { - var p = (el.node.ownerSVGElement && wrap(el.node.ownerSVGElement)) || - (el.node.parentNode && wrap(el.node.parentNode)) || - Snap.select("svg") || - Snap(0, 0), - pdefs = p.select("defs"), - defs = pdefs == null ? false : pdefs.node; - if (!defs) { - defs = make("defs", p.node).node; - } - return defs; -} -function getSomeSVG(el) { - return el.node.ownerSVGElement && wrap(el.node.ownerSVGElement) || Snap.select("svg"); -} -Snap._.getSomeDefs = getSomeDefs; -Snap._.getSomeSVG = getSomeSVG; -function unit2px(el, name, value) { - var svg = getSomeSVG(el).node, - out = {}, - mgr = svg.querySelector(".svg---mgr"); - if (!mgr) { - mgr = $("rect"); - $(mgr, {x: -9e9, y: -9e9, width: 10, height: 10, "class": "svg---mgr", fill: "none"}); - svg.appendChild(mgr); - } - function getW(val) { - if (val == null) { - return E; - } - if (val == +val) { - return val; - } - $(mgr, {width: val}); - try { - return mgr.getBBox().width; - } catch (e) { - return 0; - } - } - function getH(val) { - if (val == null) { - return E; - } - if (val == +val) { - return val; - } - $(mgr, {height: val}); - try { - return mgr.getBBox().height; - } catch (e) { - return 0; - } - } - function set(nam, f) { - if (name == null) { - out[nam] = f(el.attr(nam) || 0); - } else if (nam == name) { - out = f(value == null ? el.attr(nam) || 0 : value); - } - } - switch (el.type) { - case "rect": - set("rx", getW); - set("ry", getH); - case "image": - set("width", getW); - set("height", getH); - case "text": - set("x", getW); - set("y", getH); - break; - case "circle": - set("cx", getW); - set("cy", getH); - set("r", getW); - break; - case "ellipse": - set("cx", getW); - set("cy", getH); - set("rx", getW); - set("ry", getH); - break; - case "line": - set("x1", getW); - set("x2", getW); - set("y1", getH); - set("y2", getH); - break; - case "marker": - set("refX", getW); - set("markerWidth", getW); - set("refY", getH); - set("markerHeight", getH); - break; - case "radialGradient": - set("fx", getW); - set("fy", getH); - break; - case "tspan": - set("dx", getW); - set("dy", getH); - break; - default: - set(name, getW); - } - svg.removeChild(mgr); - return out; -} -/*\ - * Snap.select - [ method ] - ** - * Wraps a DOM element specified by CSS selector as @Element - - query (string) CSS selector of the element - = (Element) the current element -\*/ -Snap.select = function (query) { - query = Str(query).replace(/([^\\]):/g, "$1\\:"); - return wrap(glob.doc.querySelector(query)); -}; -/*\ - * Snap.selectAll - [ method ] - ** - * Wraps DOM elements specified by CSS selector as set or array of @Element - - query (string) CSS selector of the element - = (Element) the current element -\*/ -Snap.selectAll = function (query) { - var nodelist = glob.doc.querySelectorAll(query), - set = (Snap.set || Array)(); - for (var i = 0; i < nodelist.length; i++) { - set.push(wrap(nodelist[i])); - } - return set; -}; - -function add2group(list) { - if (!is(list, "array")) { - list = Array.prototype.slice.call(arguments, 0); - } - var i = 0, - j = 0, - node = this.node; - while (this[i]) delete this[i++]; - for (i = 0; i < list.length; i++) { - if (list[i].type == "set") { - list[i].forEach(function (el) { - node.appendChild(el.node); - }); - } else { - node.appendChild(list[i].node); - } - } - var children = node.childNodes; - for (i = 0; i < children.length; i++) { - this[j++] = wrap(children[i]); - } - return this; -} -// Hub garbage collector every 10s -setInterval(function () { - for (var key in hub) if (hub[has](key)) { - var el = hub[key], - node = el.node; - if (el.type != "svg" && !node.ownerSVGElement || el.type == "svg" && (!node.parentNode || "ownerSVGElement" in node.parentNode && !node.ownerSVGElement)) { - delete hub[key]; - } - } -}, 1e4); -function Element(el) { - if (el.snap in hub) { - return hub[el.snap]; - } - var svg; - try { - svg = el.ownerSVGElement; - } catch(e) {} - /*\ - * Element.node - [ property (object) ] - ** - * Gives you a reference to the DOM object, so you can assign event handlers or just mess around. - > Usage - | // draw a circle at coordinate 10,10 with radius of 10 - | var c = paper.circle(10, 10, 10); - | c.node.onclick = function () { - | c.attr("fill", "red"); - | }; - \*/ - this.node = el; - if (svg) { - this.paper = new Paper(svg); - } - /*\ - * Element.type - [ property (string) ] - ** - * SVG tag name of the given element. - \*/ - this.type = el.tagName || el.nodeName; - var id = this.id = ID(this); - this.anims = {}; - this._ = { - transform: [] - }; - el.snap = id; - hub[id] = this; - if (this.type == "g") { - this.add = add2group; - } - if (this.type in {g: 1, mask: 1, pattern: 1, symbol: 1}) { - for (var method in Paper.prototype) if (Paper.prototype[has](method)) { - this[method] = Paper.prototype[method]; - } - } -} - /*\ - * Element.attr - [ method ] - ** - * Gets or sets given attributes of the element. - ** - - params (object) contains key-value pairs of attributes you want to set - * or - - param (string) name of the attribute - = (Element) the current element - * or - = (string) value of attribute - > Usage - | el.attr({ - | fill: "#fc0", - | stroke: "#000", - | strokeWidth: 2, // CamelCase... - | "fill-opacity": 0.5, // or dash-separated names - | width: "*=2" // prefixed values - | }); - | console.log(el.attr("fill")); // #fc0 - * Prefixed values in format `"+=10"` supported. All four operations - * (`+`, `-`, `*` and `/`) could be used. Optionally you can use units for `+` - * and `-`: `"+=2em"`. - \*/ - Element.prototype.attr = function (params, value) { - var el = this, - node = el.node; - if (!params) { - if (node.nodeType != 1) { - return { - text: node.nodeValue - }; - } - var attr = node.attributes, - out = {}; - for (var i = 0, ii = attr.length; i < ii; i++) { - out[attr[i].nodeName] = attr[i].nodeValue; - } - return out; - } - if (is(params, "string")) { - if (arguments.length > 1) { - var json = {}; - json[params] = value; - params = json; - } else { - return eve("snap.util.getattr." + params, el).firstDefined(); - } - } - for (var att in params) { - if (params[has](att)) { - eve("snap.util.attr." + att, el, params[att]); - } - } - return el; - }; -/*\ - * Snap.parse - [ method ] - ** - * Parses SVG fragment and converts it into a @Fragment - ** - - svg (string) SVG string - = (Fragment) the @Fragment -\*/ -Snap.parse = function (svg) { - var f = glob.doc.createDocumentFragment(), - full = true, - div = glob.doc.createElement("div"); - svg = Str(svg); - if (!svg.match(/^\s*<\s*svg(?:\s|>)/)) { - svg = "" + svg + ""; - full = false; - } - div.innerHTML = svg; - svg = div.getElementsByTagName("svg")[0]; - if (svg) { - if (full) { - f = svg; - } else { - while (svg.firstChild) { - f.appendChild(svg.firstChild); - } - } - } - return new Fragment(f); -}; -function Fragment(frag) { - this.node = frag; -} -/*\ - * Snap.fragment - [ method ] - ** - * Creates a DOM fragment from a given list of elements or strings - ** - - varargs (…) SVG string - = (Fragment) the @Fragment -\*/ -Snap.fragment = function () { - var args = Array.prototype.slice.call(arguments, 0), - f = glob.doc.createDocumentFragment(); - for (var i = 0, ii = args.length; i < ii; i++) { - var item = args[i]; - if (item.node && item.node.nodeType) { - f.appendChild(item.node); - } - if (item.nodeType) { - f.appendChild(item); - } - if (typeof item == "string") { - f.appendChild(Snap.parse(item).node); - } - } - return new Fragment(f); -}; - -function make(name, parent) { - var res = $(name); - parent.appendChild(res); - var el = wrap(res); - return el; -} -function Paper(w, h) { - var res, - desc, - defs, - proto = Paper.prototype; - if (w && w.tagName == "svg") { - if (w.snap in hub) { - return hub[w.snap]; - } - var doc = w.ownerDocument; - res = new Element(w); - desc = w.getElementsByTagName("desc")[0]; - defs = w.getElementsByTagName("defs")[0]; - if (!desc) { - desc = $("desc"); - desc.appendChild(doc.createTextNode("Created with Snap")); - res.node.appendChild(desc); - } - if (!defs) { - defs = $("defs"); - res.node.appendChild(defs); - } - res.defs = defs; - for (var key in proto) if (proto[has](key)) { - res[key] = proto[key]; - } - res.paper = res.root = res; - } else { - res = make("svg", glob.doc.body); - $(res.node, { - height: h, - version: 1.1, - width: w, - xmlns: xmlns - }); - } - return res; -} -function wrap(dom) { - if (!dom) { - return dom; - } - if (dom instanceof Element || dom instanceof Fragment) { - return dom; - } - if (dom.tagName && dom.tagName.toLowerCase() == "svg") { - return new Paper(dom); - } - if (dom.tagName && dom.tagName.toLowerCase() == "object" && dom.type == "image/svg+xml") { - return new Paper(dom.contentDocument.getElementsByTagName("svg")[0]); - } - return new Element(dom); -} - -Snap._.make = make; -Snap._.wrap = wrap; -/*\ - * Paper.el - [ method ] - ** - * Creates an element on paper with a given name and no attributes - ** - - name (string) tag name - - attr (object) attributes - = (Element) the current element - > Usage - | var c = paper.circle(10, 10, 10); // is the same as... - | var c = paper.el("circle").attr({ - | cx: 10, - | cy: 10, - | r: 10 - | }); - | // and the same as - | var c = paper.el("circle", { - | cx: 10, - | cy: 10, - | r: 10 - | }); -\*/ -Paper.prototype.el = function (name, attr) { - var el = make(name, this.node); - attr && el.attr(attr); - return el; -}; -/*\ - * Element.children - [ method ] - ** - * Returns array of all the children of the element. - = (array) array of Elements -\*/ -Element.prototype.children = function () { - var out = [], - ch = this.node.childNodes; - for (var i = 0, ii = ch.length; i < ii; i++) { - out[i] = Snap(ch[i]); - } - return out; -}; -function jsonFiller(root, o) { - for (var i = 0, ii = root.length; i < ii; i++) { - var item = { - type: root[i].type, - attr: root[i].attr() - }, - children = root[i].children(); - o.push(item); - if (children.length) { - jsonFiller(children, item.childNodes = []); - } - } -} -/*\ - * Element.toJSON - [ method ] - ** - * Returns object representation of the given element and all its children. - = (object) in format - o { - o type (string) this.type, - o attr (object) attributes map, - o childNodes (array) optional array of children in the same format - o } -\*/ -Element.prototype.toJSON = function () { - var out = []; - jsonFiller([this], out); - return out[0]; -}; -// default -eve.on("snap.util.getattr", function () { - var att = eve.nt(); - att = att.substring(att.lastIndexOf(".") + 1); - var css = att.replace(/[A-Z]/g, function (letter) { - return "-" + letter.toLowerCase(); - }); - if (cssAttr[has](css)) { - return this.node.ownerDocument.defaultView.getComputedStyle(this.node, null).getPropertyValue(css); - } else { - return $(this.node, att); - } -}); -var cssAttr = { - "alignment-baseline": 0, - "baseline-shift": 0, - "clip": 0, - "clip-path": 0, - "clip-rule": 0, - "color": 0, - "color-interpolation": 0, - "color-interpolation-filters": 0, - "color-profile": 0, - "color-rendering": 0, - "cursor": 0, - "direction": 0, - "display": 0, - "dominant-baseline": 0, - "enable-background": 0, - "fill": 0, - "fill-opacity": 0, - "fill-rule": 0, - "filter": 0, - "flood-color": 0, - "flood-opacity": 0, - "font": 0, - "font-family": 0, - "font-size": 0, - "font-size-adjust": 0, - "font-stretch": 0, - "font-style": 0, - "font-variant": 0, - "font-weight": 0, - "glyph-orientation-horizontal": 0, - "glyph-orientation-vertical": 0, - "image-rendering": 0, - "kerning": 0, - "letter-spacing": 0, - "lighting-color": 0, - "marker": 0, - "marker-end": 0, - "marker-mid": 0, - "marker-start": 0, - "mask": 0, - "opacity": 0, - "overflow": 0, - "pointer-events": 0, - "shape-rendering": 0, - "stop-color": 0, - "stop-opacity": 0, - "stroke": 0, - "stroke-dasharray": 0, - "stroke-dashoffset": 0, - "stroke-linecap": 0, - "stroke-linejoin": 0, - "stroke-miterlimit": 0, - "stroke-opacity": 0, - "stroke-width": 0, - "text-anchor": 0, - "text-decoration": 0, - "text-rendering": 0, - "unicode-bidi": 0, - "visibility": 0, - "word-spacing": 0, - "writing-mode": 0 -}; - -eve.on("snap.util.attr", function (value) { - var att = eve.nt(), - attr = {}; - att = att.substring(att.lastIndexOf(".") + 1); - attr[att] = value; - var style = att.replace(/-(\w)/gi, function (all, letter) { - return letter.toUpperCase(); - }), - css = att.replace(/[A-Z]/g, function (letter) { - return "-" + letter.toLowerCase(); - }); - if (cssAttr[has](css)) { - this.node.style[style] = value == null ? E : value; - } else { - $(this.node, attr); - } -}); -(function (proto) {}(Paper.prototype)); - -// simple ajax -/*\ - * Snap.ajax - [ method ] - ** - * Simple implementation of Ajax - ** - - url (string) URL - - postData (object|string) data for post request - - callback (function) callback - - scope (object) #optional scope of callback - * or - - url (string) URL - - callback (function) callback - - scope (object) #optional scope of callback - = (XMLHttpRequest) the XMLHttpRequest object, just in case -\*/ -Snap.ajax = function (url, postData, callback, scope){ - var req = new XMLHttpRequest, - id = ID(); - if (req) { - if (is(postData, "function")) { - scope = callback; - callback = postData; - postData = null; - } else if (is(postData, "object")) { - var pd = []; - for (var key in postData) if (postData.hasOwnProperty(key)) { - pd.push(encodeURIComponent(key) + "=" + encodeURIComponent(postData[key])); - } - postData = pd.join("&"); - } - req.open((postData ? "POST" : "GET"), url, true); - if (postData) { - req.setRequestHeader("X-Requested-With", "XMLHttpRequest"); - req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); - } - if (callback) { - eve.once("snap.ajax." + id + ".0", callback); - eve.once("snap.ajax." + id + ".200", callback); - eve.once("snap.ajax." + id + ".304", callback); - } - req.onreadystatechange = function() { - if (req.readyState != 4) return; - eve("snap.ajax." + id + "." + req.status, scope, req); - }; - if (req.readyState == 4) { - return req; - } - req.send(postData); - return req; - } -}; -/*\ - * Snap.load - [ method ] - ** - * Loads external SVG file as a @Fragment (see @Snap.ajax for more advanced AJAX) - ** - - url (string) URL - - callback (function) callback - - scope (object) #optional scope of callback -\*/ -Snap.load = function (url, callback, scope) { - Snap.ajax(url, function (req) { - var f = Snap.parse(req.responseText); - scope ? callback.call(scope, f) : callback(f); - }); -}; -var getOffset = function (elem) { - var box = elem.getBoundingClientRect(), - doc = elem.ownerDocument, - body = doc.body, - docElem = doc.documentElement, - clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, - top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop, - left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft; - return { - y: top, - x: left - }; -}; -/*\ - * Snap.getElementByPoint - [ method ] - ** - * Returns you topmost element under given point. - ** - = (object) Snap element object - - x (number) x coordinate from the top left corner of the window - - y (number) y coordinate from the top left corner of the window - > Usage - | Snap.getElementByPoint(mouseX, mouseY).attr({stroke: "#f00"}); -\*/ -Snap.getElementByPoint = function (x, y) { - var paper = this, - svg = paper.canvas, - target = glob.doc.elementFromPoint(x, y); - if (glob.win.opera && target.tagName == "svg") { - var so = getOffset(target), - sr = target.createSVGRect(); - sr.x = x - so.x; - sr.y = y - so.y; - sr.width = sr.height = 1; - var hits = target.getIntersectionList(sr, null); - if (hits.length) { - target = hits[hits.length - 1]; - } - } - if (!target) { - return null; - } - return wrap(target); -}; -/*\ - * Snap.plugin - [ method ] - ** - * Let you write plugins. You pass in a function with five arguments, like this: - | Snap.plugin(function (Snap, Element, Paper, global, Fragment) { - | Snap.newmethod = function () {}; - | Element.prototype.newmethod = function () {}; - | Paper.prototype.newmethod = function () {}; - | }); - * Inside the function you have access to all main objects (and their - * prototypes). This allow you to extend anything you want. - ** - - f (function) your plugin body -\*/ -Snap.plugin = function (f) { - f(Snap, Element, Paper, glob, Fragment); -}; -glob.win.Snap = Snap; -return Snap; -}(window || this)); - -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) { - var elproto = Element.prototype, - is = Snap.is, - Str = String, - unit2px = Snap._unit2px, - $ = Snap._.$, - make = Snap._.make, - getSomeDefs = Snap._.getSomeDefs, - has = "hasOwnProperty", - wrap = Snap._.wrap; - /*\ - * Element.getBBox - [ method ] - ** - * Returns the bounding box descriptor for the given element - ** - = (object) bounding box descriptor: - o { - o cx: (number) x of the center, - o cy: (number) x of the center, - o h: (number) height, - o height: (number) height, - o path: (string) path command for the box, - o r0: (number) radius of a circle that fully encloses the box, - o r1: (number) radius of the smallest circle that can be enclosed, - o r2: (number) radius of the largest circle that can be enclosed, - o vb: (string) box as a viewbox command, - o w: (number) width, - o width: (number) width, - o x2: (number) x of the right side, - o x: (number) x of the left side, - o y2: (number) y of the bottom edge, - o y: (number) y of the top edge - o } - \*/ - elproto.getBBox = function (isWithoutTransform) { - if (!Snap.Matrix || !Snap.path) { - return this.node.getBBox(); - } - var el = this, - m = new Snap.Matrix; - if (el.removed) { - return Snap._.box(); - } - while (el.type == "use") { - if (!isWithoutTransform) { - m = m.add(el.transform().localMatrix.translate(el.attr("x") || 0, el.attr("y") || 0)); - } - if (el.original) { - el = el.original; - } else { - var href = el.attr("xlink:href"); - el = el.original = el.node.ownerDocument.getElementById(href.substring(href.indexOf("#") + 1)); - } - } - var _ = el._, - pathfinder = Snap.path.get[el.type] || Snap.path.get.deflt; - try { - if (isWithoutTransform) { - _.bboxwt = pathfinder ? Snap.path.getBBox(el.realPath = pathfinder(el)) : Snap._.box(el.node.getBBox()); - return Snap._.box(_.bboxwt); - } else { - el.realPath = pathfinder(el); - el.matrix = el.transform().localMatrix; - _.bbox = Snap.path.getBBox(Snap.path.map(el.realPath, m.add(el.matrix))); - return Snap._.box(_.bbox); - } - } catch (e) { - // Firefox doesn’t give you bbox of hidden element - return Snap._.box(); - } - }; - var propString = function () { - return this.string; - }; - function extractTransform(el, tstr) { - if (tstr == null) { - var doReturn = true; - if (el.type == "linearGradient" || el.type == "radialGradient") { - tstr = el.node.getAttribute("gradientTransform"); - } else if (el.type == "pattern") { - tstr = el.node.getAttribute("patternTransform"); - } else { - tstr = el.node.getAttribute("transform"); - } - if (!tstr) { - return new Snap.Matrix; - } - tstr = Snap._.svgTransform2string(tstr); - } else { - if (!Snap._.rgTransform.test(tstr)) { - tstr = Snap._.svgTransform2string(tstr); - } else { - tstr = Str(tstr).replace(/\.{3}|\u2026/g, el._.transform || E); - } - if (is(tstr, "array")) { - tstr = Snap.path ? Snap.path.toString.call(tstr) : Str(tstr); - } - el._.transform = tstr; - } - var m = Snap._.transform2matrix(tstr, el.getBBox(1)); - if (doReturn) { - return m; - } else { - el.matrix = m; - } - } - /*\ - * Element.transform - [ method ] - ** - * Gets or sets transformation of the element - ** - - tstr (string) transform string in Snap or SVG format - = (Element) the current element - * or - = (object) transformation descriptor: - o { - o string (string) transform string, - o globalMatrix (Matrix) matrix of all transformations applied to element or its parents, - o localMatrix (Matrix) matrix of transformations applied only to the element, - o diffMatrix (Matrix) matrix of difference between global and local transformations, - o global (string) global transformation as string, - o local (string) local transformation as string, - o toString (function) returns `string` property - o } - \*/ - elproto.transform = function (tstr) { - var _ = this._; - if (tstr == null) { - var papa = this, - global = new Snap.Matrix(this.node.getCTM()), - local = extractTransform(this), - ms = [local], - m = new Snap.Matrix, - i, - localString = local.toTransformString(), - string = Str(local) == Str(this.matrix) ? - Str(_.transform) : localString; - while (papa.type != "svg" && (papa = papa.parent())) { - ms.push(extractTransform(papa)); - } - i = ms.length; - while (i--) { - m.add(ms[i]); - } - return { - string: string, - globalMatrix: global, - totalMatrix: m, - localMatrix: local, - diffMatrix: global.clone().add(local.invert()), - global: global.toTransformString(), - total: m.toTransformString(), - local: localString, - toString: propString - }; - } - if (tstr instanceof Snap.Matrix) { - this.matrix = tstr; - this._.transform = tstr.toTransformString(); - } else { - extractTransform(this, tstr); - } - - if (this.node) { - if (this.type == "linearGradient" || this.type == "radialGradient") { - $(this.node, {gradientTransform: this.matrix}); - } else if (this.type == "pattern") { - $(this.node, {patternTransform: this.matrix}); - } else { - $(this.node, {transform: this.matrix}); - } - } - - return this; - }; - /*\ - * Element.parent - [ method ] - ** - * Returns the element's parent - ** - = (Element) the parent element - \*/ - elproto.parent = function () { - return wrap(this.node.parentNode); - }; - /*\ - * Element.append - [ method ] - ** - * Appends the given element to current one - ** - - el (Element|Set) element to append - = (Element) the parent element - \*/ - /*\ - * Element.add - [ method ] - ** - * See @Element.append - \*/ - elproto.append = elproto.add = function (el) { - if (el) { - if (el.type == "set") { - var it = this; - el.forEach(function (el) { - it.add(el); - }); - return this; - } - el = wrap(el); - this.node.appendChild(el.node); - el.paper = this.paper; - } - return this; - }; - /*\ - * Element.appendTo - [ method ] - ** - * Appends the current element to the given one - ** - - el (Element) parent element to append to - = (Element) the child element - \*/ - elproto.appendTo = function (el) { - if (el) { - el = wrap(el); - el.append(this); - } - return this; - }; - /*\ - * Element.prepend - [ method ] - ** - * Prepends the given element to the current one - ** - - el (Element) element to prepend - = (Element) the parent element - \*/ - elproto.prepend = function (el) { - if (el) { - if (el.type == "set") { - var it = this, - first; - el.forEach(function (el) { - if (first) { - first.after(el); - } else { - it.prepend(el); - } - first = el; - }); - return this; - } - el = wrap(el); - var parent = el.parent(); - this.node.insertBefore(el.node, this.node.firstChild); - this.add && this.add(); - el.paper = this.paper; - this.parent() && this.parent().add(); - parent && parent.add(); - } - return this; - }; - /*\ - * Element.prependTo - [ method ] - ** - * Prepends the current element to the given one - ** - - el (Element) parent element to prepend to - = (Element) the child element - \*/ - elproto.prependTo = function (el) { - el = wrap(el); - el.prepend(this); - return this; - }; - /*\ - * Element.before - [ method ] - ** - * Inserts given element before the current one - ** - - el (Element) element to insert - = (Element) the parent element - \*/ - elproto.before = function (el) { - if (el.type == "set") { - var it = this; - el.forEach(function (el) { - var parent = el.parent(); - it.node.parentNode.insertBefore(el.node, it.node); - parent && parent.add(); - }); - this.parent().add(); - return this; - } - el = wrap(el); - var parent = el.parent(); - this.node.parentNode.insertBefore(el.node, this.node); - this.parent() && this.parent().add(); - parent && parent.add(); - el.paper = this.paper; - return this; - }; - /*\ - * Element.after - [ method ] - ** - * Inserts given element after the current one - ** - - el (Element) element to insert - = (Element) the parent element - \*/ - elproto.after = function (el) { - el = wrap(el); - var parent = el.parent(); - if (this.node.nextSibling) { - this.node.parentNode.insertBefore(el.node, this.node.nextSibling); - } else { - this.node.parentNode.appendChild(el.node); - } - this.parent() && this.parent().add(); - parent && parent.add(); - el.paper = this.paper; - return this; - }; - /*\ - * Element.insertBefore - [ method ] - ** - * Inserts the element after the given one - ** - - el (Element) element next to whom insert to - = (Element) the parent element - \*/ - elproto.insertBefore = function (el) { - el = wrap(el); - var parent = this.parent(); - el.node.parentNode.insertBefore(this.node, el.node); - this.paper = el.paper; - parent && parent.add(); - el.parent() && el.parent().add(); - return this; - }; - /*\ - * Element.insertAfter - [ method ] - ** - * Inserts the element after the given one - ** - - el (Element) element next to whom insert to - = (Element) the parent element - \*/ - elproto.insertAfter = function (el) { - el = wrap(el); - var parent = this.parent(); - el.node.parentNode.insertBefore(this.node, el.node.nextSibling); - this.paper = el.paper; - parent && parent.add(); - el.parent() && el.parent().add(); - return this; - }; - /*\ - * Element.remove - [ method ] - ** - * Removes element from the DOM - = (Element) the detached element - \*/ - elproto.remove = function () { - var parent = this.parent(); - this.node.parentNode && this.node.parentNode.removeChild(this.node); - delete this.paper; - this.removed = true; - parent && parent.add(); - return this; - }; - /*\ - * Element.select - [ method ] - ** - * Gathers the nested @Element matching the given set of CSS selectors - ** - - query (string) CSS selector - = (Element) result of query selection - \*/ - elproto.select = function (query) { - query = Str(query).replace(/([^\\]):/g, "$1\\:"); - return wrap(this.node.querySelector(query)); - }; - /*\ - * Element.selectAll - [ method ] - ** - * Gathers nested @Element objects matching the given set of CSS selectors - ** - - query (string) CSS selector - = (Set|array) result of query selection - \*/ - elproto.selectAll = function (query) { - var nodelist = this.node.querySelectorAll(query), - set = (Snap.set || Array)(); - for (var i = 0; i < nodelist.length; i++) { - set.push(wrap(nodelist[i])); - } - return set; - }; - /*\ - * Element.asPX - [ method ] - ** - * Returns given attribute of the element as a `px` value (not %, em, etc.) - ** - - attr (string) attribute name - - value (string) #optional attribute value - = (Element) result of query selection - \*/ - elproto.asPX = function (attr, value) { - if (value == null) { - value = this.attr(attr); - } - return +unit2px(this, attr, value); - }; - // SIERRA Element.use(): I suggest adding a note about how to access the original element the returned instantiates. It's a part of SVG with which ordinary web developers may be least familiar. - /*\ - * Element.use - [ method ] - ** - * Creates a `` element linked to the current element - ** - = (Element) the `` element - \*/ - elproto.use = function () { - var use, - id = this.node.id; - if (!id) { - id = this.id; - $(this.node, { - id: id - }); - } - if (this.type == "linearGradient" || this.type == "radialGradient" || - this.type == "pattern") { - use = make(this.type, this.node.parentNode); - } else { - use = make("use", this.node.parentNode); - } - $(use.node, { - "xlink:href": "#" + id - }); - use.original = this; - return use; - }; - function fixids(el) { - var els = el.selectAll("*"), - it, - url = /^\s*url\(("|'|)(.*)\1\)\s*$/, - ids = [], - uses = {}; - function urltest(it, name) { - var val = $(it.node, name); - val = val && val.match(url); - val = val && val[2]; - if (val && val.charAt() == "#") { - val = val.substring(1); - } else { - return; - } - if (val) { - uses[val] = (uses[val] || []).concat(function (id) { - var attr = {}; - attr[name] = URL(id); - $(it.node, attr); - }); - } - } - function linktest(it) { - var val = $(it.node, "xlink:href"); - if (val && val.charAt() == "#") { - val = val.substring(1); - } else { - return; - } - if (val) { - uses[val] = (uses[val] || []).concat(function (id) { - it.attr("xlink:href", "#" + id); - }); - } - } - for (var i = 0, ii = els.length; i < ii; i++) { - it = els[i]; - urltest(it, "fill"); - urltest(it, "stroke"); - urltest(it, "filter"); - urltest(it, "mask"); - urltest(it, "clip-path"); - linktest(it); - var oldid = $(it.node, "id"); - if (oldid) { - $(it.node, {id: it.id}); - ids.push({ - old: oldid, - id: it.id - }); - } - } - for (i = 0, ii = ids.length; i < ii; i++) { - var fs = uses[ids[i].old]; - if (fs) { - for (var j = 0, jj = fs.length; j < jj; j++) { - fs[j](ids[i].id); - } - } - } - } - /*\ - * Element.clone - [ method ] - ** - * Creates a clone of the element and inserts it after the element - ** - = (Element) the clone - \*/ - elproto.clone = function () { - var clone = wrap(this.node.cloneNode(true)); - if ($(clone.node, "id")) { - $(clone.node, {id: clone.id}); - } - fixids(clone); - clone.insertAfter(this); - return clone; - }; - /*\ - * Element.toDefs - [ method ] - ** - * Moves element to the shared `` area - ** - = (Element) the element - \*/ - elproto.toDefs = function () { - var defs = getSomeDefs(this); - defs.appendChild(this.node); - return this; - }; - /*\ - * Element.toPattern - [ method ] - ** - * Creates a `` element from the current element - ** - * To create a pattern you have to specify the pattern rect: - - x (string|number) - - y (string|number) - - width (string|number) - - height (string|number) - = (Element) the `` element - * You can use pattern later on as an argument for `fill` attribute: - | var p = paper.path("M10-5-10,15M15,0,0,15M0-5-20,15").attr({ - | fill: "none", - | stroke: "#bada55", - | strokeWidth: 5 - | }).pattern(0, 0, 10, 10), - | c = paper.circle(200, 200, 100); - | c.attr({ - | fill: p - | }); - \*/ - elproto.pattern = elproto.toPattern = function (x, y, width, height) { - var p = make("pattern", getSomeDefs(this)); - if (x == null) { - x = this.getBBox(); - } - if (is(x, "object") && "x" in x) { - y = x.y; - width = x.width; - height = x.height; - x = x.x; - } - $(p.node, { - x: x, - y: y, - width: width, - height: height, - patternUnits: "userSpaceOnUse", - id: p.id, - viewBox: [x, y, width, height].join(" ") - }); - p.node.appendChild(this.node); - return p; - }; -// SIERRA Element.marker(): clarify what a reference point is. E.g., helps you offset the object from its edge such as when centering it over a path. -// SIERRA Element.marker(): I suggest the method should accept default reference point values. Perhaps centered with (refX = width/2) and (refY = height/2)? Also, couldn't it assume the element's current _width_ and _height_? And please specify what _x_ and _y_ mean: offsets? If so, from where? Couldn't they also be assigned default values? - /*\ - * Element.marker - [ method ] - ** - * Creates a `` element from the current element - ** - * To create a marker you have to specify the bounding rect and reference point: - - x (number) - - y (number) - - width (number) - - height (number) - - refX (number) - - refY (number) - = (Element) the `` element - * You can specify the marker later as an argument for `marker-start`, `marker-end`, `marker-mid`, and `marker` attributes. The `marker` attribute places the marker at every point along the path, and `marker-mid` places them at every point except the start and end. - \*/ - // TODO add usage for markers - elproto.marker = function (x, y, width, height, refX, refY) { - var p = make("marker", getSomeDefs(this)); - if (x == null) { - x = this.getBBox(); - } - if (is(x, "object") && "x" in x) { - y = x.y; - width = x.width; - height = x.height; - refX = x.refX || x.cx; - refY = x.refY || x.cy; - x = x.x; - } - $(p.node, { - viewBox: [x, y, width, height].join(" "), - markerWidth: width, - markerHeight: height, - orient: "auto", - refX: refX || 0, - refY: refY || 0, - id: p.id - }); - p.node.appendChild(this.node); - return p; - }; - // animation - function slice(from, to, f) { - return function (arr) { - var res = arr.slice(from, to); - if (res.length == 1) { - res = res[0]; - } - return f ? f(res) : res; - }; - } - var Animation = function (attr, ms, easing, callback) { - if (typeof easing == "function" && !easing.length) { - callback = easing; - easing = mina.linear; - } - this.attr = attr; - this.dur = ms; - easing && (this.easing = easing); - callback && (this.callback = callback); - }; - Snap._.Animation = Animation; - /*\ - * Snap.animation - [ method ] - ** - * Creates an animation object - ** - - attr (object) attributes of final destination - - duration (number) duration of the animation, in milliseconds - - easing (function) #optional one of easing functions of @mina or custom one - - callback (function) #optional callback function that fires when animation ends - = (object) animation object - \*/ - Snap.animation = function (attr, ms, easing, callback) { - return new Animation(attr, ms, easing, callback); - }; - /*\ - * Element.inAnim - [ method ] - ** - * Returns a set of animations that may be able to manipulate the current element - ** - = (object) in format: - o { - o anim (object) animation object, - o mina (object) @mina object, - o curStatus (number) 0..1 — status of the animation: 0 — just started, 1 — just finished, - o status (function) gets or sets the status of the animation, - o stop (function) stops the animation - o } - \*/ - elproto.inAnim = function () { - var el = this, - res = []; - for (var id in el.anims) if (el.anims[has](id)) { - (function (a) { - res.push({ - anim: new Animation(a._attrs, a.dur, a.easing, a._callback), - mina: a, - curStatus: a.status(), - status: function (val) { - return a.status(val); - }, - stop: function () { - a.stop(); - } - }); - }(el.anims[id])); - } - return res; - }; - /*\ - * Snap.animate - [ method ] - ** - * Runs generic animation of one number into another with a caring function - ** - - from (number|array) number or array of numbers - - to (number|array) number or array of numbers - - setter (function) caring function that accepts one number argument - - duration (number) duration, in milliseconds - - easing (function) #optional easing function from @mina or custom - - callback (function) #optional callback function to execute when animation ends - = (object) animation object in @mina format - o { - o id (string) animation id, consider it read-only, - o duration (function) gets or sets the duration of the animation, - o easing (function) easing, - o speed (function) gets or sets the speed of the animation, - o status (function) gets or sets the status of the animation, - o stop (function) stops the animation - o } - | var rect = Snap().rect(0, 0, 10, 10); - | Snap.animate(0, 10, function (val) { - | rect.attr({ - | x: val - | }); - | }, 1000); - | // in given context is equivalent to - | rect.animate({x: 10}, 1000); - \*/ - Snap.animate = function (from, to, setter, ms, easing, callback) { - if (typeof easing == "function" && !easing.length) { - callback = easing; - easing = mina.linear; - } - var now = mina.time(), - anim = mina(from, to, now, now + ms, mina.time, setter, easing); - callback && eve.once("mina.finish." + anim.id, callback); - return anim; - }; - /*\ - * Element.stop - [ method ] - ** - * Stops all the animations for the current element - ** - = (Element) the current element - \*/ - elproto.stop = function () { - var anims = this.inAnim(); - for (var i = 0, ii = anims.length; i < ii; i++) { - anims[i].stop(); - } - return this; - }; - /*\ - * Element.animate - [ method ] - ** - * Animates the given attributes of the element - ** - - attrs (object) key-value pairs of destination attributes - - duration (number) duration of the animation in milliseconds - - easing (function) #optional easing function from @mina or custom - - callback (function) #optional callback function that executes when the animation ends - = (Element) the current element - \*/ - elproto.animate = function (attrs, ms, easing, callback) { - if (typeof easing == "function" && !easing.length) { - callback = easing; - easing = mina.linear; - } - if (attrs instanceof Animation) { - callback = attrs.callback; - easing = attrs.easing; - ms = easing.dur; - attrs = attrs.attr; - } - var fkeys = [], tkeys = [], keys = {}, from, to, f, eq, - el = this; - for (var key in attrs) if (attrs[has](key)) { - if (el.equal) { - eq = el.equal(key, Str(attrs[key])); - from = eq.from; - to = eq.to; - f = eq.f; - } else { - from = +el.attr(key); - to = +attrs[key]; - } - var len = is(from, "array") ? from.length : 1; - keys[key] = slice(fkeys.length, fkeys.length + len, f); - fkeys = fkeys.concat(from); - tkeys = tkeys.concat(to); - } - var now = mina.time(), - anim = mina(fkeys, tkeys, now, now + ms, mina.time, function (val) { - var attr = {}; - for (var key in keys) if (keys[has](key)) { - attr[key] = keys[key](val); - } - el.attr(attr); - }, easing); - el.anims[anim.id] = anim; - anim._attrs = attrs; - anim._callback = callback; - eve("snap.animcreated." + el.id, anim); - eve.once("mina.finish." + anim.id, function () { - delete el.anims[anim.id]; - callback && callback.call(el); - }); - eve.once("mina.stop." + anim.id, function () { - delete el.anims[anim.id]; - }); - return el; - }; - var eldata = {}; - /*\ - * Element.data - [ method ] - ** - * Adds or retrieves given value associated with given key. (Don’t confuse - * with `data-` attributes) - * - * See also @Element.removeData - - key (string) key to store data - - value (any) #optional value to store - = (object) @Element - * or, if value is not specified: - = (any) value - > Usage - | for (var i = 0, i < 5, i++) { - | paper.circle(10 + 15 * i, 10, 10) - | .attr({fill: "#000"}) - | .data("i", i) - | .click(function () { - | alert(this.data("i")); - | }); - | } - \*/ - elproto.data = function (key, value) { - var data = eldata[this.id] = eldata[this.id] || {}; - if (arguments.length == 0){ - eve("snap.data.get." + this.id, this, data, null); - return data; - } - if (arguments.length == 1) { - if (Snap.is(key, "object")) { - for (var i in key) if (key[has](i)) { - this.data(i, key[i]); - } - return this; - } - eve("snap.data.get." + this.id, this, data[key], key); - return data[key]; - } - data[key] = value; - eve("snap.data.set." + this.id, this, value, key); - return this; - }; - /*\ - * Element.removeData - [ method ] - ** - * Removes value associated with an element by given key. - * If key is not provided, removes all the data of the element. - - key (string) #optional key - = (object) @Element - \*/ - elproto.removeData = function (key) { - if (key == null) { - eldata[this.id] = {}; - } else { - eldata[this.id] && delete eldata[this.id][key]; - } - return this; - }; - /*\ - * Element.outerSVG - [ method ] - ** - * Returns SVG code for the element, equivalent to HTML's `outerHTML`. - * - * See also @Element.innerSVG - = (string) SVG code for the element - \*/ - /*\ - * Element.toString - [ method ] - ** - * See @Element.outerSVG - \*/ - elproto.outerSVG = elproto.toString = toString(1); - /*\ - * Element.innerSVG - [ method ] - ** - * Returns SVG code for the element's contents, equivalent to HTML's `innerHTML` - = (string) SVG code for the element - \*/ - elproto.innerSVG = toString(); - function toString(type) { - return function () { - var res = type ? "<" + this.type : "", - attr = this.node.attributes, - chld = this.node.childNodes; - if (type) { - for (var i = 0, ii = attr.length; i < ii; i++) { - res += " " + attr[i].name + '="' + - attr[i].value.replace(/"/g, '\\"') + '"'; - } - } - if (chld.length) { - type && (res += ">"); - for (i = 0, ii = chld.length; i < ii; i++) { - if (chld[i].nodeType == 3) { - res += chld[i].nodeValue; - } else if (chld[i].nodeType == 1) { - res += wrap(chld[i]).toString(); - } - } - type && (res += ""); - } else { - type && (res += "/>"); - } - return res; - }; - } - elproto.toDataURL = function () { - if (window && window.btoa) { - var bb = this.getBBox(), - svg = Snap.format('{contents}', { - x: +bb.x.toFixed(3), - y: +bb.y.toFixed(3), - width: +bb.width.toFixed(3), - height: +bb.height.toFixed(3), - contents: this.outerSVG() - }); - return "data:image/svg+xml;base64," + btoa(unescape(encodeURIComponent(svg))); - } - }; - /*\ - * Fragment.select - [ method ] - ** - * See @Element.select - \*/ - Fragment.prototype.select = elproto.select; - /*\ - * Fragment.selectAll - [ method ] - ** - * See @Element.selectAll - \*/ - Fragment.prototype.selectAll = elproto.selectAll; -}); - -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) { - var objectToString = Object.prototype.toString, - Str = String, - math = Math, - E = ""; - function Matrix(a, b, c, d, e, f) { - if (b == null && objectToString.call(a) == "[object SVGMatrix]") { - this.a = a.a; - this.b = a.b; - this.c = a.c; - this.d = a.d; - this.e = a.e; - this.f = a.f; - return; - } - if (a != null) { - this.a = +a; - this.b = +b; - this.c = +c; - this.d = +d; - this.e = +e; - this.f = +f; - } else { - this.a = 1; - this.b = 0; - this.c = 0; - this.d = 1; - this.e = 0; - this.f = 0; - } - } - (function (matrixproto) { - /*\ - * Matrix.add - [ method ] - ** - * Adds the given matrix to existing one - - a (number) - - b (number) - - c (number) - - d (number) - - e (number) - - f (number) - * or - - matrix (object) @Matrix - \*/ - matrixproto.add = function (a, b, c, d, e, f) { - var out = [[], [], []], - m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]], - matrix = [[a, c, e], [b, d, f], [0, 0, 1]], - x, y, z, res; - - if (a && a instanceof Matrix) { - matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]]; - } - - for (x = 0; x < 3; x++) { - for (y = 0; y < 3; y++) { - res = 0; - for (z = 0; z < 3; z++) { - res += m[x][z] * matrix[z][y]; - } - out[x][y] = res; - } - } - this.a = out[0][0]; - this.b = out[1][0]; - this.c = out[0][1]; - this.d = out[1][1]; - this.e = out[0][2]; - this.f = out[1][2]; - return this; - }; - /*\ - * Matrix.invert - [ method ] - ** - * Returns an inverted version of the matrix - = (object) @Matrix - \*/ - matrixproto.invert = function () { - var me = this, - x = me.a * me.d - me.b * me.c; - return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x); - }; - /*\ - * Matrix.clone - [ method ] - ** - * Returns a copy of the matrix - = (object) @Matrix - \*/ - matrixproto.clone = function () { - return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f); - }; - /*\ - * Matrix.translate - [ method ] - ** - * Translate the matrix - - x (number) horizontal offset distance - - y (number) vertical offset distance - \*/ - matrixproto.translate = function (x, y) { - return this.add(1, 0, 0, 1, x, y); - }; - /*\ - * Matrix.scale - [ method ] - ** - * Scales the matrix - - x (number) amount to be scaled, with `1` resulting in no change - - y (number) #optional amount to scale along the vertical axis. (Otherwise `x` applies to both axes.) - - cx (number) #optional horizontal origin point from which to scale - - cy (number) #optional vertical origin point from which to scale - * Default cx, cy is the middle point of the element. - \*/ - matrixproto.scale = function (x, y, cx, cy) { - y == null && (y = x); - (cx || cy) && this.add(1, 0, 0, 1, cx, cy); - this.add(x, 0, 0, y, 0, 0); - (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy); - return this; - }; - /*\ - * Matrix.rotate - [ method ] - ** - * Rotates the matrix - - a (number) angle of rotation, in degrees - - x (number) horizontal origin point from which to rotate - - y (number) vertical origin point from which to rotate - \*/ - matrixproto.rotate = function (a, x, y) { - a = Snap.rad(a); - x = x || 0; - y = y || 0; - var cos = +math.cos(a).toFixed(9), - sin = +math.sin(a).toFixed(9); - this.add(cos, sin, -sin, cos, x, y); - return this.add(1, 0, 0, 1, -x, -y); - }; - /*\ - * Matrix.x - [ method ] - ** - * Returns x coordinate for given point after transformation described by the matrix. See also @Matrix.y - - x (number) - - y (number) - = (number) x - \*/ - matrixproto.x = function (x, y) { - return x * this.a + y * this.c + this.e; - }; - /*\ - * Matrix.y - [ method ] - ** - * Returns y coordinate for given point after transformation described by the matrix. See also @Matrix.x - - x (number) - - y (number) - = (number) y - \*/ - matrixproto.y = function (x, y) { - return x * this.b + y * this.d + this.f; - }; - matrixproto.get = function (i) { - return +this[Str.fromCharCode(97 + i)].toFixed(4); - }; - matrixproto.toString = function () { - return "matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")"; - }; - matrixproto.offset = function () { - return [this.e.toFixed(4), this.f.toFixed(4)]; - }; - function norm(a) { - return a[0] * a[0] + a[1] * a[1]; - } - function normalize(a) { - var mag = math.sqrt(norm(a)); - a[0] && (a[0] /= mag); - a[1] && (a[1] /= mag); - } - /*\ - * Matrix.determinant - [ method ] - ** - * Finds determinant of the given matrix. - = (number) determinant - \*/ - matrixproto.determinant = function () { - return this.a * this.d - this.b * this.c; - }; - /*\ - * Matrix.split - [ method ] - ** - * Splits matrix into primitive transformations - = (object) in format: - o dx (number) translation by x - o dy (number) translation by y - o scalex (number) scale by x - o scaley (number) scale by y - o shear (number) shear - o rotate (number) rotation in deg - o isSimple (boolean) could it be represented via simple transformations - \*/ - matrixproto.split = function () { - var out = {}; - // translation - out.dx = this.e; - out.dy = this.f; - - // scale and shear - var row = [[this.a, this.c], [this.b, this.d]]; - out.scalex = math.sqrt(norm(row[0])); - normalize(row[0]); - - out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1]; - row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear]; - - out.scaley = math.sqrt(norm(row[1])); - normalize(row[1]); - out.shear /= out.scaley; - - if (this.determinant() < 0) { - out.scalex = -out.scalex; - } - - // rotation - var sin = -row[0][1], - cos = row[1][1]; - if (cos < 0) { - out.rotate = Snap.deg(math.acos(cos)); - if (sin < 0) { - out.rotate = 360 - out.rotate; - } - } else { - out.rotate = Snap.deg(math.asin(sin)); - } - - out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate); - out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate; - out.noRotation = !+out.shear.toFixed(9) && !out.rotate; - return out; - }; - /*\ - * Matrix.toTransformString - [ method ] - ** - * Returns transform string that represents given matrix - = (string) transform string - \*/ - matrixproto.toTransformString = function (shorter) { - var s = shorter || this.split(); - if (!+s.shear.toFixed(9)) { - s.scalex = +s.scalex.toFixed(4); - s.scaley = +s.scaley.toFixed(4); - s.rotate = +s.rotate.toFixed(4); - return (s.dx || s.dy ? "t" + [+s.dx.toFixed(4), +s.dy.toFixed(4)] : E) + - (s.scalex != 1 || s.scaley != 1 ? "s" + [s.scalex, s.scaley, 0, 0] : E) + - (s.rotate ? "r" + [+s.rotate.toFixed(4), 0, 0] : E); - } else { - return "m" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)]; - } - }; - })(Matrix.prototype); - /*\ - * Snap.Matrix - [ method ] - ** - * Matrix constructor, extend on your own risk. - * To create matrices use @Snap.matrix. - \*/ - Snap.Matrix = Matrix; - /*\ - * Snap.matrix - [ method ] - ** - * Utility method - ** - * Returns a matrix based on the given parameters - - a (number) - - b (number) - - c (number) - - d (number) - - e (number) - - f (number) - * or - - svgMatrix (SVGMatrix) - = (object) @Matrix - \*/ - Snap.matrix = function (a, b, c, d, e, f) { - return new Matrix(a, b, c, d, e, f); - }; -}); -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) { - var has = "hasOwnProperty", - make = Snap._.make, - wrap = Snap._.wrap, - is = Snap.is, - getSomeDefs = Snap._.getSomeDefs, - reURLValue = /^url\(#?([^)]+)\)$/, - $ = Snap._.$, - URL = Snap.url, - Str = String, - separator = Snap._.separator, - E = ""; - // Attributes event handlers - eve.on("snap.util.attr.mask", function (value) { - if (value instanceof Element || value instanceof Fragment) { - eve.stop(); - if (value instanceof Fragment && value.node.childNodes.length == 1) { - value = value.node.firstChild; - getSomeDefs(this).appendChild(value); - value = wrap(value); - } - if (value.type == "mask") { - var mask = value; - } else { - mask = make("mask", getSomeDefs(this)); - mask.node.appendChild(value.node); - } - !mask.node.id && $(mask.node, { - id: mask.id - }); - $(this.node, { - mask: URL(mask.id) - }); - } - }); - (function (clipIt) { - eve.on("snap.util.attr.clip", clipIt); - eve.on("snap.util.attr.clip-path", clipIt); - eve.on("snap.util.attr.clipPath", clipIt); - }(function (value) { - if (value instanceof Element || value instanceof Fragment) { - eve.stop(); - if (value.type == "clipPath") { - var clip = value; - } else { - clip = make("clipPath", getSomeDefs(this)); - clip.node.appendChild(value.node); - !clip.node.id && $(clip.node, { - id: clip.id - }); - } - $(this.node, { - "clip-path": URL(clip.node.id || clip.id) - }); - } - })); - function fillStroke(name) { - return function (value) { - eve.stop(); - if (value instanceof Fragment && value.node.childNodes.length == 1 && - (value.node.firstChild.tagName == "radialGradient" || - value.node.firstChild.tagName == "linearGradient" || - value.node.firstChild.tagName == "pattern")) { - value = value.node.firstChild; - getSomeDefs(this).appendChild(value); - value = wrap(value); - } - if (value instanceof Element) { - if (value.type == "radialGradient" || value.type == "linearGradient" - || value.type == "pattern") { - if (!value.node.id) { - $(value.node, { - id: value.id - }); - } - var fill = URL(value.node.id); - } else { - fill = value.attr(name); - } - } else { - fill = Snap.color(value); - if (fill.error) { - var grad = Snap(getSomeDefs(this).ownerSVGElement).gradient(value); - if (grad) { - if (!grad.node.id) { - $(grad.node, { - id: grad.id - }); - } - fill = URL(grad.node.id); - } else { - fill = value; - } - } else { - fill = Str(fill); - } - } - var attrs = {}; - attrs[name] = fill; - $(this.node, attrs); - this.node.style[name] = E; - }; - } - eve.on("snap.util.attr.fill", fillStroke("fill")); - eve.on("snap.util.attr.stroke", fillStroke("stroke")); - var gradrg = /^([lr])(?:\(([^)]*)\))?(.*)$/i; - eve.on("snap.util.grad.parse", function parseGrad(string) { - string = Str(string); - var tokens = string.match(gradrg); - if (!tokens) { - return null; - } - var type = tokens[1], - params = tokens[2], - stops = tokens[3]; - params = params.split(/\s*,\s*/).map(function (el) { - return +el == el ? +el : el; - }); - if (params.length == 1 && params[0] == 0) { - params = []; - } - stops = stops.split("-"); - stops = stops.map(function (el) { - el = el.split(":"); - var out = { - color: el[0] - }; - if (el[1]) { - out.offset = parseFloat(el[1]); - } - return out; - }); - return { - type: type, - params: params, - stops: stops - }; - }); - - eve.on("snap.util.attr.d", function (value) { - eve.stop(); - if (is(value, "array") && is(value[0], "array")) { - value = Snap.path.toString.call(value); - } - value = Str(value); - if (value.match(/[ruo]/i)) { - value = Snap.path.toAbsolute(value); - } - $(this.node, {d: value}); - })(-1); - eve.on("snap.util.attr.#text", function (value) { - eve.stop(); - value = Str(value); - var txt = glob.doc.createTextNode(value); - while (this.node.firstChild) { - this.node.removeChild(this.node.firstChild); - } - this.node.appendChild(txt); - })(-1); - eve.on("snap.util.attr.path", function (value) { - eve.stop(); - this.attr({d: value}); - })(-1); - eve.on("snap.util.attr.class", function (value) { - eve.stop(); - this.node.className.baseVal = value; - })(-1); - eve.on("snap.util.attr.viewBox", function (value) { - var vb; - if (is(value, "object") && "x" in value) { - vb = [value.x, value.y, value.width, value.height].join(" "); - } else if (is(value, "array")) { - vb = value.join(" "); - } else { - vb = value; - } - $(this.node, { - viewBox: vb - }); - eve.stop(); - })(-1); - eve.on("snap.util.attr.transform", function (value) { - this.transform(value); - eve.stop(); - })(-1); - eve.on("snap.util.attr.r", function (value) { - if (this.type == "rect") { - eve.stop(); - $(this.node, { - rx: value, - ry: value - }); - } - })(-1); - eve.on("snap.util.attr.textpath", function (value) { - eve.stop(); - if (this.type == "text") { - var id, tp, node; - if (!value && this.textPath) { - tp = this.textPath; - while (tp.node.firstChild) { - this.node.appendChild(tp.node.firstChild); - } - tp.remove(); - delete this.textPath; - return; - } - if (is(value, "string")) { - var defs = getSomeDefs(this), - path = wrap(defs.parentNode).path(value); - defs.appendChild(path.node); - id = path.id; - path.attr({id: id}); - } else { - value = wrap(value); - if (value instanceof Element) { - id = value.attr("id"); - if (!id) { - id = value.id; - value.attr({id: id}); - } - } - } - if (id) { - tp = this.textPath; - node = this.node; - if (tp) { - tp.attr({"xlink:href": "#" + id}); - } else { - tp = $("textPath", { - "xlink:href": "#" + id - }); - while (node.firstChild) { - tp.appendChild(node.firstChild); - } - node.appendChild(tp); - this.textPath = wrap(tp); - } - } - } - })(-1); - eve.on("snap.util.attr.text", function (value) { - if (this.type == "text") { - var i = 0, - node = this.node, - tuner = function (chunk) { - var out = $("tspan"); - if (is(chunk, "array")) { - for (var i = 0; i < chunk.length; i++) { - out.appendChild(tuner(chunk[i])); - } - } else { - out.appendChild(glob.doc.createTextNode(chunk)); - } - out.normalize && out.normalize(); - return out; - }; - while (node.firstChild) { - node.removeChild(node.firstChild); - } - var tuned = tuner(value); - while (tuned.firstChild) { - node.appendChild(tuned.firstChild); - } - } - eve.stop(); - })(-1); - function setFontSize(value) { - eve.stop(); - if (value == +value) { - value += "px"; - } - this.node.style.fontSize = value; - } - eve.on("snap.util.attr.fontSize", setFontSize)(-1); - eve.on("snap.util.attr.font-size", setFontSize)(-1); - - - eve.on("snap.util.getattr.transform", function () { - eve.stop(); - return this.transform(); - })(-1); - eve.on("snap.util.getattr.textpath", function () { - eve.stop(); - return this.textPath; - })(-1); - // Markers - (function () { - function getter(end) { - return function () { - eve.stop(); - var style = glob.doc.defaultView.getComputedStyle(this.node, null).getPropertyValue("marker-" + end); - if (style == "none") { - return style; - } else { - return Snap(glob.doc.getElementById(style.match(reURLValue)[1])); - } - }; - } - function setter(end) { - return function (value) { - eve.stop(); - var name = "marker" + end.charAt(0).toUpperCase() + end.substring(1); - if (value == "" || !value) { - this.node.style[name] = "none"; - return; - } - if (value.type == "marker") { - var id = value.node.id; - if (!id) { - $(value.node, {id: value.id}); - } - this.node.style[name] = URL(id); - return; - } - }; - } - eve.on("snap.util.getattr.marker-end", getter("end"))(-1); - eve.on("snap.util.getattr.markerEnd", getter("end"))(-1); - eve.on("snap.util.getattr.marker-start", getter("start"))(-1); - eve.on("snap.util.getattr.markerStart", getter("start"))(-1); - eve.on("snap.util.getattr.marker-mid", getter("mid"))(-1); - eve.on("snap.util.getattr.markerMid", getter("mid"))(-1); - eve.on("snap.util.attr.marker-end", setter("end"))(-1); - eve.on("snap.util.attr.markerEnd", setter("end"))(-1); - eve.on("snap.util.attr.marker-start", setter("start"))(-1); - eve.on("snap.util.attr.markerStart", setter("start"))(-1); - eve.on("snap.util.attr.marker-mid", setter("mid"))(-1); - eve.on("snap.util.attr.markerMid", setter("mid"))(-1); - }()); - eve.on("snap.util.getattr.r", function () { - if (this.type == "rect" && $(this.node, "rx") == $(this.node, "ry")) { - eve.stop(); - return $(this.node, "rx"); - } - })(-1); - function textExtract(node) { - var out = []; - var children = node.childNodes; - for (var i = 0, ii = children.length; i < ii; i++) { - var chi = children[i]; - if (chi.nodeType == 3) { - out.push(chi.nodeValue); - } - if (chi.tagName == "tspan") { - if (chi.childNodes.length == 1 && chi.firstChild.nodeType == 3) { - out.push(chi.firstChild.nodeValue); - } else { - out.push(textExtract(chi)); - } - } - } - return out; - } - eve.on("snap.util.getattr.text", function () { - if (this.type == "text" || this.type == "tspan") { - eve.stop(); - var out = textExtract(this.node); - return out.length == 1 ? out[0] : out; - } - })(-1); - eve.on("snap.util.getattr.#text", function () { - return this.node.textContent; - })(-1); - eve.on("snap.util.getattr.viewBox", function () { - eve.stop(); - var vb = $(this.node, "viewBox"); - if (vb) { - vb = vb.split(separator); - return Snap._.box(+vb[0], +vb[1], +vb[2], +vb[3]); - } else { - return; - } - })(-1); - eve.on("snap.util.getattr.points", function () { - var p = $(this.node, "points"); - eve.stop(); - if (p) { - return p.split(separator); - } else { - return; - } - })(-1); - eve.on("snap.util.getattr.path", function () { - var p = $(this.node, "d"); - eve.stop(); - return p; - })(-1); - eve.on("snap.util.getattr.class", function () { - return this.node.className.baseVal; - })(-1); - function getFontSize() { - eve.stop(); - return this.node.style.fontSize; - } - eve.on("snap.util.getattr.fontSize", getFontSize)(-1); - eve.on("snap.util.getattr.font-size", getFontSize)(-1); -}); - -// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) { - var rgNotSpace = /\S+/g, - rgBadSpace = /[\t\r\n\f]/g, - rgTrim = /(^\s+|\s+$)/g, - Str = String, - elproto = Element.prototype; - /*\ - * Element.addClass - [ method ] - ** - * Adds given class name or list of class names to the element. - - value (string) class name or space separated list of class names - ** - = (Element) original element. - \*/ - elproto.addClass = function (value) { - var classes = Str(value || "").match(rgNotSpace) || [], - elem = this.node, - className = elem.className.baseVal, - curClasses = className.match(rgNotSpace) || [], - j, - pos, - clazz, - finalValue; - - if (classes.length) { - j = 0; - while ((clazz = classes[j++])) { - pos = curClasses.indexOf(clazz); - if (!~pos) { - curClasses.push(clazz); - } - } - - finalValue = curClasses.join(" "); - if (className != finalValue) { - elem.className.baseVal = finalValue; - } - } - return this; - }; - /*\ - * Element.removeClass - [ method ] - ** - * Removes given class name or list of class names from the element. - - value (string) class name or space separated list of class names - ** - = (Element) original element. - \*/ - elproto.removeClass = function (value) { - var classes = Str(value || "").match(rgNotSpace) || [], - elem = this.node, - className = elem.className.baseVal, - curClasses = className.match(rgNotSpace) || [], - j, - pos, - clazz, - finalValue; - if (curClasses.length) { - j = 0; - while ((clazz = classes[j++])) { - pos = curClasses.indexOf(clazz); - if (~pos) { - curClasses.splice(pos, 1); - } - } - - finalValue = curClasses.join(" "); - if (className != finalValue) { - elem.className.baseVal = finalValue; - } - } - return this; - }; - /*\ - * Element.hasClass - [ method ] - ** - * Checks if the element has a given class name in the list of class names applied to it. - - value (string) class name - ** - = (boolean) `true` if the element has given class - \*/ - elproto.hasClass = function (value) { - var elem = this.node, - className = elem.className.baseVal, - curClasses = className.match(rgNotSpace) || []; - return !!~curClasses.indexOf(value); - }; - /*\ - * Element.toggleClass - [ method ] - ** - * Add or remove one or more classes from the element, depending on either - * the class’s presence or the value of the `flag` argument. - - value (string) class name or space separated list of class names - - flag (boolean) value to determine whether the class should be added or removed - ** - = (Element) original element. - \*/ - elproto.toggleClass = function (value, flag) { - if (flag != null) { - if (flag) { - return this.addClass(value); - } else { - return this.removeClass(value); - } - } - var classes = (value || "").match(rgNotSpace) || [], - elem = this.node, - className = elem.className.baseVal, - curClasses = className.match(rgNotSpace) || [], - j, - pos, - clazz, - finalValue; - j = 0; - while ((clazz = classes[j++])) { - pos = curClasses.indexOf(clazz); - if (~pos) { - curClasses.splice(pos, 1); - } else { - curClasses.push(clazz); - } - } - - finalValue = curClasses.join(" "); - if (className != finalValue) { - elem.className.baseVal = finalValue; - } - return this; - }; -}); - -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) { - var operators = { - "+": function (x, y) { - return x + y; - }, - "-": function (x, y) { - return x - y; - }, - "/": function (x, y) { - return x / y; - }, - "*": function (x, y) { - return x * y; - } - }, - Str = String, - reUnit = /[a-z]+$/i, - reAddon = /^\s*([+\-\/*])\s*=\s*([\d.eE+\-]+)\s*([^\d\s]+)?\s*$/; - function getNumber(val) { - return val; - } - function getUnit(unit) { - return function (val) { - return +val.toFixed(3) + unit; - }; - } - eve.on("snap.util.attr", function (val) { - var plus = Str(val).match(reAddon); - if (plus) { - var evnt = eve.nt(), - name = evnt.substring(evnt.lastIndexOf(".") + 1), - a = this.attr(name), - atr = {}; - eve.stop(); - var unit = plus[3] || "", - aUnit = a.match(reUnit), - op = operators[plus[1]]; - if (aUnit && aUnit == unit) { - val = op(parseFloat(a), +plus[2]); - } else { - a = this.asPX(name); - val = op(this.asPX(name), this.asPX(name, plus[2] + unit)); - } - if (isNaN(a) || isNaN(val)) { - return; - } - atr[name] = val; - this.attr(atr); - } - })(-10); - eve.on("snap.util.equal", function (name, b) { - var A, B, a = Str(this.attr(name) || ""), - el = this, - bplus = Str(b).match(reAddon); - if (bplus) { - eve.stop(); - var unit = bplus[3] || "", - aUnit = a.match(reUnit), - op = operators[bplus[1]]; - if (aUnit && aUnit == unit) { - return { - from: parseFloat(a), - to: op(parseFloat(a), +bplus[2]), - f: getUnit(aUnit) - }; - } else { - a = this.asPX(name); - return { - from: a, - to: op(a, this.asPX(name, bplus[2] + unit)), - f: getNumber - }; - } - } - })(-10); -}); -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) { - var proto = Paper.prototype, - is = Snap.is; - /*\ - * Paper.rect - [ method ] - * - * Draws a rectangle - ** - - x (number) x coordinate of the top left corner - - y (number) y coordinate of the top left corner - - width (number) width - - height (number) height - - rx (number) #optional horizontal radius for rounded corners, default is 0 - - ry (number) #optional vertical radius for rounded corners, default is rx or 0 - = (object) the `rect` element - ** - > Usage - | // regular rectangle - | var c = paper.rect(10, 10, 50, 50); - | // rectangle with rounded corners - | var c = paper.rect(40, 40, 50, 50, 10); - \*/ - proto.rect = function (x, y, w, h, rx, ry) { - var attr; - if (ry == null) { - ry = rx; - } - if (is(x, "object") && x == "[object Object]") { - attr = x; - } else if (x != null) { - attr = { - x: x, - y: y, - width: w, - height: h - }; - if (rx != null) { - attr.rx = rx; - attr.ry = ry; - } - } - return this.el("rect", attr); - }; - /*\ - * Paper.circle - [ method ] - ** - * Draws a circle - ** - - x (number) x coordinate of the centre - - y (number) y coordinate of the centre - - r (number) radius - = (object) the `circle` element - ** - > Usage - | var c = paper.circle(50, 50, 40); - \*/ - proto.circle = function (cx, cy, r) { - var attr; - if (is(cx, "object") && cx == "[object Object]") { - attr = cx; - } else if (cx != null) { - attr = { - cx: cx, - cy: cy, - r: r - }; - } - return this.el("circle", attr); - }; - - var preload = (function () { - function onerror() { - this.parentNode.removeChild(this); - } - return function (src, f) { - var img = glob.doc.createElement("img"), - body = glob.doc.body; - img.style.cssText = "position:absolute;left:-9999em;top:-9999em"; - img.onload = function () { - f.call(img); - img.onload = img.onerror = null; - body.removeChild(img); - }; - img.onerror = onerror; - body.appendChild(img); - img.src = src; - }; - }()); - - /*\ - * Paper.image - [ method ] - ** - * Places an image on the surface - ** - - src (string) URI of the source image - - x (number) x offset position - - y (number) y offset position - - width (number) width of the image - - height (number) height of the image - = (object) the `image` element - * or - = (object) Snap element object with type `image` - ** - > Usage - | var c = paper.image("apple.png", 10, 10, 80, 80); - \*/ - proto.image = function (src, x, y, width, height) { - var el = this.el("image"); - if (is(src, "object") && "src" in src) { - el.attr(src); - } else if (src != null) { - var set = { - "xlink:href": src, - preserveAspectRatio: "none" - }; - if (x != null && y != null) { - set.x = x; - set.y = y; - } - if (width != null && height != null) { - set.width = width; - set.height = height; - } else { - preload(src, function () { - Snap._.$(el.node, { - width: this.offsetWidth, - height: this.offsetHeight - }); - }); - } - Snap._.$(el.node, set); - } - return el; - }; - /*\ - * Paper.ellipse - [ method ] - ** - * Draws an ellipse - ** - - x (number) x coordinate of the centre - - y (number) y coordinate of the centre - - rx (number) horizontal radius - - ry (number) vertical radius - = (object) the `ellipse` element - ** - > Usage - | var c = paper.ellipse(50, 50, 40, 20); - \*/ - proto.ellipse = function (cx, cy, rx, ry) { - var attr; - if (is(cx, "object") && cx == "[object Object]") { - attr = cx; - } else if (cx != null) { - attr ={ - cx: cx, - cy: cy, - rx: rx, - ry: ry - }; - } - return this.el("ellipse", attr); - }; - // SIERRA Paper.path(): Unclear from the link what a Catmull-Rom curveto is, and why it would make life any easier. - /*\ - * Paper.path - [ method ] - ** - * Creates a `` element using the given string as the path's definition - - pathString (string) #optional path string in SVG format - * Path string consists of one-letter commands, followed by comma seprarated arguments in numerical form. Example: - | "M10,20L30,40" - * This example features two commands: `M`, with arguments `(10, 20)` and `L` with arguments `(30, 40)`. Uppercase letter commands express coordinates in absolute terms, while lowercase commands express them in relative terms from the most recently declared coordinates. - * - #

            Here is short list of commands available, for more details see SVG path string format or article about path strings at MDN.

            - # - # - # - # - # - # - # - # - # - # - # - #
            CommandNameParameters
            Mmoveto(x y)+
            Zclosepath(none)
            Llineto(x y)+
            Hhorizontal linetox+
            Vvertical linetoy+
            Ccurveto(x1 y1 x2 y2 x y)+
            Ssmooth curveto(x2 y2 x y)+
            Qquadratic Bézier curveto(x1 y1 x y)+
            Tsmooth quadratic Bézier curveto(x y)+
            Aelliptical arc(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
            RCatmull-Rom curveto*x1 y1 (x y)+
            - * * _Catmull-Rom curveto_ is a not standard SVG command and added to make life easier. - * Note: there is a special case when a path consists of only three commands: `M10,10R…z`. In this case the path connects back to its starting point. - > Usage - | var c = paper.path("M10 10L90 90"); - | // draw a diagonal line: - | // move to 10,10, line to 90,90 - \*/ - proto.path = function (d) { - var attr; - if (is(d, "object") && !is(d, "array")) { - attr = d; - } else if (d) { - attr = {d: d}; - } - return this.el("path", attr); - }; - /*\ - * Paper.g - [ method ] - ** - * Creates a group element - ** - - varargs (…) #optional elements to nest within the group - = (object) the `g` element - ** - > Usage - | var c1 = paper.circle(), - | c2 = paper.rect(), - | g = paper.g(c2, c1); // note that the order of elements is different - * or - | var c1 = paper.circle(), - | c2 = paper.rect(), - | g = paper.g(); - | g.add(c2, c1); - \*/ - /*\ - * Paper.group - [ method ] - ** - * See @Paper.g - \*/ - proto.group = proto.g = function (first) { - var attr, - el = this.el("g"); - if (arguments.length == 1 && first && !first.type) { - el.attr(first); - } else if (arguments.length) { - el.add(Array.prototype.slice.call(arguments, 0)); - } - return el; - }; - /*\ - * Paper.svg - [ method ] - ** - * Creates a nested SVG element. - - x (number) @optional X of the element - - y (number) @optional Y of the element - - width (number) @optional width of the element - - height (number) @optional height of the element - - vbx (number) @optional viewbox X - - vby (number) @optional viewbox Y - - vbw (number) @optional viewbox width - - vbh (number) @optional viewbox height - ** - = (object) the `svg` element - ** - \*/ - proto.svg = function (x, y, width, height, vbx, vby, vbw, vbh) { - var attrs = {}; - if (is(x, "object") && y == null) { - attrs = x; - } else { - if (x != null) { - attrs.x = x; - } - if (y != null) { - attrs.y = y; - } - if (width != null) { - attrs.width = width; - } - if (height != null) { - attrs.height = height; - } - if (vbx != null && vby != null && vbw != null && vbh != null) { - attrs.viewBox = [vbx, vby, vbw, vbh]; - } - } - return this.el("svg", attrs); - }; - /*\ - * Paper.mask - [ method ] - ** - * Equivalent in behaviour to @Paper.g, except it’s a mask. - ** - = (object) the `mask` element - ** - \*/ - proto.mask = function (first) { - var attr, - el = this.el("mask"); - if (arguments.length == 1 && first && !first.type) { - el.attr(first); - } else if (arguments.length) { - el.add(Array.prototype.slice.call(arguments, 0)); - } - return el; - }; - /*\ - * Paper.ptrn - [ method ] - ** - * Equivalent in behaviour to @Paper.g, except it’s a pattern. - - x (number) @optional X of the element - - y (number) @optional Y of the element - - width (number) @optional width of the element - - height (number) @optional height of the element - - vbx (number) @optional viewbox X - - vby (number) @optional viewbox Y - - vbw (number) @optional viewbox width - - vbh (number) @optional viewbox height - ** - = (object) the `pattern` element - ** - \*/ - proto.ptrn = function (x, y, width, height, vx, vy, vw, vh) { - if (is(x, "object")) { - var attr = x; - } else { - attr = {patternUnits: "userSpaceOnUse"}; - if (x) { - attr.x = x; - } - if (y) { - attr.y = y; - } - if (width != null) { - attr.width = width; - } - if (height != null) { - attr.height = height; - } - if (vx != null && vy != null && vw != null && vh != null) { - attr.viewBox = [vx, vy, vw, vh]; - } else { - attr.viewBox = [x || 0, y || 0, width || 0, height || 0]; - } - } - return this.el("pattern", attr); - }; - /*\ - * Paper.use - [ method ] - ** - * Creates a element. - - id (string) @optional id of element to link - * or - - id (Element) @optional element to link - ** - = (object) the `use` element - ** - \*/ - proto.use = function (id) { - if (id != null) { - if (id instanceof Element) { - if (!id.attr("id")) { - id.attr({id: Snap._.id(id)}); - } - id = id.attr("id"); - } - if (String(id).charAt() == "#") { - id = id.substring(1); - } - return this.el("use", {"xlink:href": "#" + id}); - } else { - return Element.prototype.use.call(this); - } - }; - /*\ - * Paper.symbol - [ method ] - ** - * Creates a element. - - vbx (number) @optional viewbox X - - vby (number) @optional viewbox Y - - vbw (number) @optional viewbox width - - vbh (number) @optional viewbox height - = (object) the `symbol` element - ** - \*/ - proto.symbol = function (vx, vy, vw, vh) { - var attr = {}; - if (vx != null && vy != null && vw != null && vh != null) { - attr.viewBox = [vx, vy, vw, vh]; - } - - return this.el("symbol", attr); - }; - /*\ - * Paper.text - [ method ] - ** - * Draws a text string - ** - - x (number) x coordinate position - - y (number) y coordinate position - - text (string|array) The text string to draw or array of strings to nest within separate `` elements - = (object) the `text` element - ** - > Usage - | var t1 = paper.text(50, 50, "Snap"); - | var t2 = paper.text(50, 50, ["S","n","a","p"]); - | // Text path usage - | t1.attr({textpath: "M10,10L100,100"}); - | // or - | var pth = paper.path("M10,10L100,100"); - | t1.attr({textpath: pth}); - \*/ - proto.text = function (x, y, text) { - var attr = {}; - if (is(x, "object")) { - attr = x; - } else if (x != null) { - attr = { - x: x, - y: y, - text: text || "" - }; - } - return this.el("text", attr); - }; - /*\ - * Paper.line - [ method ] - ** - * Draws a line - ** - - x1 (number) x coordinate position of the start - - y1 (number) y coordinate position of the start - - x2 (number) x coordinate position of the end - - y2 (number) y coordinate position of the end - = (object) the `line` element - ** - > Usage - | var t1 = paper.line(50, 50, 100, 100); - \*/ - proto.line = function (x1, y1, x2, y2) { - var attr = {}; - if (is(x1, "object")) { - attr = x1; - } else if (x1 != null) { - attr = { - x1: x1, - x2: x2, - y1: y1, - y2: y2 - }; - } - return this.el("line", attr); - }; - /*\ - * Paper.polyline - [ method ] - ** - * Draws a polyline - ** - - points (array) array of points - * or - - varargs (…) points - = (object) the `polyline` element - ** - > Usage - | var p1 = paper.polyline([10, 10, 100, 100]); - | var p2 = paper.polyline(10, 10, 100, 100); - \*/ - proto.polyline = function (points) { - if (arguments.length > 1) { - points = Array.prototype.slice.call(arguments, 0); - } - var attr = {}; - if (is(points, "object") && !is(points, "array")) { - attr = points; - } else if (points != null) { - attr = {points: points}; - } - return this.el("polyline", attr); - }; - /*\ - * Paper.polygon - [ method ] - ** - * Draws a polygon. See @Paper.polyline - \*/ - proto.polygon = function (points) { - if (arguments.length > 1) { - points = Array.prototype.slice.call(arguments, 0); - } - var attr = {}; - if (is(points, "object") && !is(points, "array")) { - attr = points; - } else if (points != null) { - attr = {points: points}; - } - return this.el("polygon", attr); - }; - // gradients - (function () { - var $ = Snap._.$; - // gradients' helpers - function Gstops() { - return this.selectAll("stop"); - } - function GaddStop(color, offset) { - var stop = $("stop"), - attr = { - offset: +offset + "%" - }; - color = Snap.color(color); - attr["stop-color"] = color.hex; - if (color.opacity < 1) { - attr["stop-opacity"] = color.opacity; - } - $(stop, attr); - this.node.appendChild(stop); - return this; - } - function GgetBBox() { - if (this.type == "linearGradient") { - var x1 = $(this.node, "x1") || 0, - x2 = $(this.node, "x2") || 1, - y1 = $(this.node, "y1") || 0, - y2 = $(this.node, "y2") || 0; - return Snap._.box(x1, y1, math.abs(x2 - x1), math.abs(y2 - y1)); - } else { - var cx = this.node.cx || .5, - cy = this.node.cy || .5, - r = this.node.r || 0; - return Snap._.box(cx - r, cy - r, r * 2, r * 2); - } - } - function gradient(defs, str) { - var grad = eve("snap.util.grad.parse", null, str).firstDefined(), - el; - if (!grad) { - return null; - } - grad.params.unshift(defs); - if (grad.type.toLowerCase() == "l") { - el = gradientLinear.apply(0, grad.params); - } else { - el = gradientRadial.apply(0, grad.params); - } - if (grad.type != grad.type.toLowerCase()) { - $(el.node, { - gradientUnits: "userSpaceOnUse" - }); - } - var stops = grad.stops, - len = stops.length, - start = 0, - j = 0; - function seed(i, end) { - var step = (end - start) / (i - j); - for (var k = j; k < i; k++) { - stops[k].offset = +(+start + step * (k - j)).toFixed(2); - } - j = i; - start = end; - } - len--; - for (var i = 0; i < len; i++) if ("offset" in stops[i]) { - seed(i, stops[i].offset); - } - stops[len].offset = stops[len].offset || 100; - seed(len, stops[len].offset); - for (i = 0; i <= len; i++) { - var stop = stops[i]; - el.addStop(stop.color, stop.offset); - } - return el; - } - function gradientLinear(defs, x1, y1, x2, y2) { - var el = Snap._.make("linearGradient", defs); - el.stops = Gstops; - el.addStop = GaddStop; - el.getBBox = GgetBBox; - if (x1 != null) { - $(el.node, { - x1: x1, - y1: y1, - x2: x2, - y2: y2 - }); - } - return el; - } - function gradientRadial(defs, cx, cy, r, fx, fy) { - var el = Snap._.make("radialGradient", defs); - el.stops = Gstops; - el.addStop = GaddStop; - el.getBBox = GgetBBox; - if (cx != null) { - $(el.node, { - cx: cx, - cy: cy, - r: r - }); - } - if (fx != null && fy != null) { - $(el.node, { - fx: fx, - fy: fy - }); - } - return el; - } - /*\ - * Paper.gradient - [ method ] - ** - * Creates a gradient element - ** - - gradient (string) gradient descriptor - > Gradient Descriptor - * The gradient descriptor is an expression formatted as - * follows: `()`. The `` can be - * either linear or radial. The uppercase `L` or `R` letters - * indicate absolute coordinates offset from the SVG surface. - * Lowercase `l` or `r` letters indicate coordinates - * calculated relative to the element to which the gradient is - * applied. Coordinates specify a linear gradient vector as - * `x1`, `y1`, `x2`, `y2`, or a radial gradient as `cx`, `cy`, - * `r` and optional `fx`, `fy` specifying a focal point away - * from the center of the circle. Specify `` as a list - * of dash-separated CSS color values. Each color may be - * followed by a custom offset value, separated with a colon - * character. - > Examples - * Linear gradient, relative from top-left corner to bottom-right - * corner, from black through red to white: - | var g = paper.gradient("l(0, 0, 1, 1)#000-#f00-#fff"); - * Linear gradient, absolute from (0, 0) to (100, 100), from black - * through red at 25% to white: - | var g = paper.gradient("L(0, 0, 100, 100)#000-#f00:25-#fff"); - * Radial gradient, relative from the center of the element with radius - * half the width, from black to white: - | var g = paper.gradient("r(0.5, 0.5, 0.5)#000-#fff"); - * To apply the gradient: - | paper.circle(50, 50, 40).attr({ - | fill: g - | }); - = (object) the `gradient` element - \*/ - proto.gradient = function (str) { - return gradient(this.defs, str); - }; - proto.gradientLinear = function (x1, y1, x2, y2) { - return gradientLinear(this.defs, x1, y1, x2, y2); - }; - proto.gradientRadial = function (cx, cy, r, fx, fy) { - return gradientRadial(this.defs, cx, cy, r, fx, fy); - }; - /*\ - * Paper.toString - [ method ] - ** - * Returns SVG code for the @Paper - = (string) SVG code for the @Paper - \*/ - proto.toString = function () { - var doc = this.node.ownerDocument, - f = doc.createDocumentFragment(), - d = doc.createElement("div"), - svg = this.node.cloneNode(true), - res; - f.appendChild(d); - d.appendChild(svg); - Snap._.$(svg, {xmlns: "http://www.w3.org/2000/svg"}); - res = d.innerHTML; - f.removeChild(f.firstChild); - return res; - }; - /*\ - * Paper.toDataURL - [ method ] - ** - * Returns SVG code for the @Paper as Data URI string. - = (string) Data URI string - \*/ - proto.toDataURL = function () { - if (window && window.btoa) { - return "data:image/svg+xml;base64," + btoa(unescape(encodeURIComponent(this))); - } - }; - /*\ - * Paper.clear - [ method ] - ** - * Removes all child nodes of the paper, except . - \*/ - proto.clear = function () { - var node = this.node.firstChild, - next; - while (node) { - next = node.nextSibling; - if (node.tagName != "defs") { - node.parentNode.removeChild(node); - } else { - proto.clear.call({node: node}); - } - node = next; - } - }; - }()); -}); - -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob) { - var elproto = Element.prototype, - is = Snap.is, - clone = Snap._.clone, - has = "hasOwnProperty", - p2s = /,?([a-z]),?/gi, - toFloat = parseFloat, - math = Math, - PI = math.PI, - mmin = math.min, - mmax = math.max, - pow = math.pow, - abs = math.abs; - function paths(ps) { - var p = paths.ps = paths.ps || {}; - if (p[ps]) { - p[ps].sleep = 100; - } else { - p[ps] = { - sleep: 100 - }; - } - setTimeout(function () { - for (var key in p) if (p[has](key) && key != ps) { - p[key].sleep--; - !p[key].sleep && delete p[key]; - } - }); - return p[ps]; - } - function box(x, y, width, height) { - if (x == null) { - x = y = width = height = 0; - } - if (y == null) { - y = x.y; - width = x.width; - height = x.height; - x = x.x; - } - return { - x: x, - y: y, - width: width, - w: width, - height: height, - h: height, - x2: x + width, - y2: y + height, - cx: x + width / 2, - cy: y + height / 2, - r1: math.min(width, height) / 2, - r2: math.max(width, height) / 2, - r0: math.sqrt(width * width + height * height) / 2, - path: rectPath(x, y, width, height), - vb: [x, y, width, height].join(" ") - }; - } - function toString() { - return this.join(",").replace(p2s, "$1"); - } - function pathClone(pathArray) { - var res = clone(pathArray); - res.toString = toString; - return res; - } - function getPointAtSegmentLength(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) { - if (length == null) { - return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y); - } else { - return findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, - getTotLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length)); - } - } - function getLengthFactory(istotal, subpath) { - function O(val) { - return +(+val).toFixed(3); - } - return Snap._.cacher(function (path, length, onlystart) { - if (path instanceof Element) { - path = path.attr("d"); - } - path = path2curve(path); - var x, y, p, l, sp = "", subpaths = {}, point, - len = 0; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = +p[1]; - y = +p[2]; - } else { - l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - if (len + l > length) { - if (subpath && !subpaths.start) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - sp += [ - "C" + O(point.start.x), - O(point.start.y), - O(point.m.x), - O(point.m.y), - O(point.x), - O(point.y) - ]; - if (onlystart) {return sp;} - subpaths.start = sp; - sp = [ - "M" + O(point.x), - O(point.y) + "C" + O(point.n.x), - O(point.n.y), - O(point.end.x), - O(point.end.y), - O(p[5]), - O(p[6]) - ].join(); - len += l; - x = +p[5]; - y = +p[6]; - continue; - } - if (!istotal && !subpath) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - return point; - } - } - len += l; - x = +p[5]; - y = +p[6]; - } - sp += p.shift() + p; - } - subpaths.end = sp; - point = istotal ? len : subpath ? subpaths : findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1); - return point; - }, null, Snap._.clone); - } - var getTotalLength = getLengthFactory(1), - getPointAtLength = getLengthFactory(), - getSubpathsAtLength = getLengthFactory(0, 1); - function findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t, - t13 = pow(t1, 3), - t12 = pow(t1, 2), - t2 = t * t, - t3 = t2 * t, - x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x, - y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y, - mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x), - my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y), - nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x), - ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y), - ax = t1 * p1x + t * c1x, - ay = t1 * p1y + t * c1y, - cx = t1 * c2x + t * p2x, - cy = t1 * c2y + t * p2y, - alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI); - // (mx > nx || my < ny) && (alpha += 180); - return { - x: x, - y: y, - m: {x: mx, y: my}, - n: {x: nx, y: ny}, - start: {x: ax, y: ay}, - end: {x: cx, y: cy}, - alpha: alpha - }; - } - function bezierBBox(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - if (!Snap.is(p1x, "array")) { - p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y]; - } - var bbox = curveDim.apply(null, p1x); - return box( - bbox.min.x, - bbox.min.y, - bbox.max.x - bbox.min.x, - bbox.max.y - bbox.min.y - ); - } - function isPointInsideBBox(bbox, x, y) { - return x >= bbox.x && - x <= bbox.x + bbox.width && - y >= bbox.y && - y <= bbox.y + bbox.height; - } - function isBBoxIntersect(bbox1, bbox2) { - bbox1 = box(bbox1); - bbox2 = box(bbox2); - return isPointInsideBBox(bbox2, bbox1.x, bbox1.y) - || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y) - || isPointInsideBBox(bbox2, bbox1.x, bbox1.y2) - || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y2) - || isPointInsideBBox(bbox1, bbox2.x, bbox2.y) - || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y) - || isPointInsideBBox(bbox1, bbox2.x, bbox2.y2) - || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y2) - || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x - || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x) - && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y - || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y); - } - function base3(t, p1, p2, p3, p4) { - var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4, - t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3; - return t * t2 - 3 * p1 + 3 * p2; - } - function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) { - if (z == null) { - z = 1; - } - z = z > 1 ? 1 : z < 0 ? 0 : z; - var z2 = z / 2, - n = 12, - Tvalues = [-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816], - Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472], - sum = 0; - for (var i = 0; i < n; i++) { - var ct = z2 * Tvalues[i] + z2, - xbase = base3(ct, x1, x2, x3, x4), - ybase = base3(ct, y1, y2, y3, y4), - comb = xbase * xbase + ybase * ybase; - sum += Cvalues[i] * math.sqrt(comb); - } - return z2 * sum; - } - function getTotLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) { - if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) { - return; - } - var t = 1, - step = t / 2, - t2 = t - step, - l, - e = .01; - l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2); - while (abs(l - ll) > e) { - step /= 2; - t2 += (l < ll ? 1 : -1) * step; - l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2); - } - return t2; - } - function intersect(x1, y1, x2, y2, x3, y3, x4, y4) { - if ( - mmax(x1, x2) < mmin(x3, x4) || - mmin(x1, x2) > mmax(x3, x4) || - mmax(y1, y2) < mmin(y3, y4) || - mmin(y1, y2) > mmax(y3, y4) - ) { - return; - } - var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4), - ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4), - denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4); - - if (!denominator) { - return; - } - var px = nx / denominator, - py = ny / denominator, - px2 = +px.toFixed(2), - py2 = +py.toFixed(2); - if ( - px2 < +mmin(x1, x2).toFixed(2) || - px2 > +mmax(x1, x2).toFixed(2) || - px2 < +mmin(x3, x4).toFixed(2) || - px2 > +mmax(x3, x4).toFixed(2) || - py2 < +mmin(y1, y2).toFixed(2) || - py2 > +mmax(y1, y2).toFixed(2) || - py2 < +mmin(y3, y4).toFixed(2) || - py2 > +mmax(y3, y4).toFixed(2) - ) { - return; - } - return {x: px, y: py}; - } - function inter(bez1, bez2) { - return interHelper(bez1, bez2); - } - function interCount(bez1, bez2) { - return interHelper(bez1, bez2, 1); - } - function interHelper(bez1, bez2, justCount) { - var bbox1 = bezierBBox(bez1), - bbox2 = bezierBBox(bez2); - if (!isBBoxIntersect(bbox1, bbox2)) { - return justCount ? 0 : []; - } - var l1 = bezlen.apply(0, bez1), - l2 = bezlen.apply(0, bez2), - n1 = ~~(l1 / 8), - n2 = ~~(l2 / 8), - dots1 = [], - dots2 = [], - xy = {}, - res = justCount ? 0 : []; - for (var i = 0; i < n1 + 1; i++) { - var p = findDotsAtSegment.apply(0, bez1.concat(i / n1)); - dots1.push({x: p.x, y: p.y, t: i / n1}); - } - for (i = 0; i < n2 + 1; i++) { - p = findDotsAtSegment.apply(0, bez2.concat(i / n2)); - dots2.push({x: p.x, y: p.y, t: i / n2}); - } - for (i = 0; i < n1; i++) { - for (var j = 0; j < n2; j++) { - var di = dots1[i], - di1 = dots1[i + 1], - dj = dots2[j], - dj1 = dots2[j + 1], - ci = abs(di1.x - di.x) < .001 ? "y" : "x", - cj = abs(dj1.x - dj.x) < .001 ? "y" : "x", - is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y); - if (is) { - if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) { - continue; - } - xy[is.x.toFixed(4)] = is.y.toFixed(4); - var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t), - t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t); - if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1) { - if (justCount) { - res++; - } else { - res.push({ - x: is.x, - y: is.y, - t1: t1, - t2: t2 - }); - } - } - } - } - } - return res; - } - function pathIntersection(path1, path2) { - return interPathHelper(path1, path2); - } - function pathIntersectionNumber(path1, path2) { - return interPathHelper(path1, path2, 1); - } - function interPathHelper(path1, path2, justCount) { - path1 = path2curve(path1); - path2 = path2curve(path2); - var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2, - res = justCount ? 0 : []; - for (var i = 0, ii = path1.length; i < ii; i++) { - var pi = path1[i]; - if (pi[0] == "M") { - x1 = x1m = pi[1]; - y1 = y1m = pi[2]; - } else { - if (pi[0] == "C") { - bez1 = [x1, y1].concat(pi.slice(1)); - x1 = bez1[6]; - y1 = bez1[7]; - } else { - bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m]; - x1 = x1m; - y1 = y1m; - } - for (var j = 0, jj = path2.length; j < jj; j++) { - var pj = path2[j]; - if (pj[0] == "M") { - x2 = x2m = pj[1]; - y2 = y2m = pj[2]; - } else { - if (pj[0] == "C") { - bez2 = [x2, y2].concat(pj.slice(1)); - x2 = bez2[6]; - y2 = bez2[7]; - } else { - bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m]; - x2 = x2m; - y2 = y2m; - } - var intr = interHelper(bez1, bez2, justCount); - if (justCount) { - res += intr; - } else { - for (var k = 0, kk = intr.length; k < kk; k++) { - intr[k].segment1 = i; - intr[k].segment2 = j; - intr[k].bez1 = bez1; - intr[k].bez2 = bez2; - } - res = res.concat(intr); - } - } - } - } - } - return res; - } - function isPointInsidePath(path, x, y) { - var bbox = pathBBox(path); - return isPointInsideBBox(bbox, x, y) && - interPathHelper(path, [["M", x, y], ["H", bbox.x2 + 10]], 1) % 2 == 1; - } - function pathBBox(path) { - var pth = paths(path); - if (pth.bbox) { - return clone(pth.bbox); - } - if (!path) { - return box(); - } - path = path2curve(path); - var x = 0, - y = 0, - X = [], - Y = [], - p; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = p[1]; - y = p[2]; - X.push(x); - Y.push(y); - } else { - var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - X = X.concat(dim.min.x, dim.max.x); - Y = Y.concat(dim.min.y, dim.max.y); - x = p[5]; - y = p[6]; - } - } - var xmin = mmin.apply(0, X), - ymin = mmin.apply(0, Y), - xmax = mmax.apply(0, X), - ymax = mmax.apply(0, Y), - bb = box(xmin, ymin, xmax - xmin, ymax - ymin); - pth.bbox = clone(bb); - return bb; - } - function rectPath(x, y, w, h, r) { - if (r) { - return [ - ["M", +x + (+r), y], - ["l", w - r * 2, 0], - ["a", r, r, 0, 0, 1, r, r], - ["l", 0, h - r * 2], - ["a", r, r, 0, 0, 1, -r, r], - ["l", r * 2 - w, 0], - ["a", r, r, 0, 0, 1, -r, -r], - ["l", 0, r * 2 - h], - ["a", r, r, 0, 0, 1, r, -r], - ["z"] - ]; - } - var res = [["M", x, y], ["l", w, 0], ["l", 0, h], ["l", -w, 0], ["z"]]; - res.toString = toString; - return res; - } - function ellipsePath(x, y, rx, ry, a) { - if (a == null && ry == null) { - ry = rx; - } - x = +x; - y = +y; - rx = +rx; - ry = +ry; - if (a != null) { - var rad = Math.PI / 180, - x1 = x + rx * Math.cos(-ry * rad), - x2 = x + rx * Math.cos(-a * rad), - y1 = y + rx * Math.sin(-ry * rad), - y2 = y + rx * Math.sin(-a * rad), - res = [["M", x1, y1], ["A", rx, rx, 0, +(a - ry > 180), 0, x2, y2]]; - } else { - res = [ - ["M", x, y], - ["m", 0, -ry], - ["a", rx, ry, 0, 1, 1, 0, 2 * ry], - ["a", rx, ry, 0, 1, 1, 0, -2 * ry], - ["z"] - ]; - } - res.toString = toString; - return res; - } - var unit2px = Snap._unit2px, - getPath = { - path: function (el) { - return el.attr("path"); - }, - circle: function (el) { - var attr = unit2px(el); - return ellipsePath(attr.cx, attr.cy, attr.r); - }, - ellipse: function (el) { - var attr = unit2px(el); - return ellipsePath(attr.cx || 0, attr.cy || 0, attr.rx, attr.ry); - }, - rect: function (el) { - var attr = unit2px(el); - return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height, attr.rx, attr.ry); - }, - image: function (el) { - var attr = unit2px(el); - return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height); - }, - line: function (el) { - return "M" + [el.attr("x1") || 0, el.attr("y1") || 0, el.attr("x2"), el.attr("y2")]; - }, - polyline: function (el) { - return "M" + el.attr("points"); - }, - polygon: function (el) { - return "M" + el.attr("points") + "z"; - }, - deflt: function (el) { - var bbox = el.node.getBBox(); - return rectPath(bbox.x, bbox.y, bbox.width, bbox.height); - } - }; - function pathToRelative(pathArray) { - var pth = paths(pathArray), - lowerCase = String.prototype.toLowerCase; - if (pth.rel) { - return pathClone(pth.rel); - } - if (!Snap.is(pathArray, "array") || !Snap.is(pathArray && pathArray[0], "array")) { - pathArray = Snap.parsePathString(pathArray); - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = pathArray[0][1]; - y = pathArray[0][2]; - mx = x; - my = y; - start++; - res.push(["M", x, y]); - } - for (var i = start, ii = pathArray.length; i < ii; i++) { - var r = res[i] = [], - pa = pathArray[i]; - if (pa[0] != lowerCase.call(pa[0])) { - r[0] = lowerCase.call(pa[0]); - switch (r[0]) { - case "a": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] - x).toFixed(3); - r[7] = +(pa[7] - y).toFixed(3); - break; - case "v": - r[1] = +(pa[1] - y).toFixed(3); - break; - case "m": - mx = pa[1]; - my = pa[2]; - default: - for (var j = 1, jj = pa.length; j < jj; j++) { - r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3); - } - } - } else { - r = res[i] = []; - if (pa[0] == "m") { - mx = pa[1] + x; - my = pa[2] + y; - } - for (var k = 0, kk = pa.length; k < kk; k++) { - res[i][k] = pa[k]; - } - } - var len = res[i].length; - switch (res[i][0]) { - case "z": - x = mx; - y = my; - break; - case "h": - x += +res[i][len - 1]; - break; - case "v": - y += +res[i][len - 1]; - break; - default: - x += +res[i][len - 2]; - y += +res[i][len - 1]; - } - } - res.toString = toString; - pth.rel = pathClone(res); - return res; - } - function pathToAbsolute(pathArray) { - var pth = paths(pathArray); - if (pth.abs) { - return pathClone(pth.abs); - } - if (!is(pathArray, "array") || !is(pathArray && pathArray[0], "array")) { // rough assumption - pathArray = Snap.parsePathString(pathArray); - } - if (!pathArray || !pathArray.length) { - return [["M", 0, 0]]; - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0, - pa0; - if (pathArray[0][0] == "M") { - x = +pathArray[0][1]; - y = +pathArray[0][2]; - mx = x; - my = y; - start++; - res[0] = ["M", x, y]; - } - var crz = pathArray.length == 3 && - pathArray[0][0] == "M" && - pathArray[1][0].toUpperCase() == "R" && - pathArray[2][0].toUpperCase() == "Z"; - for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) { - res.push(r = []); - pa = pathArray[i]; - pa0 = pa[0]; - if (pa0 != pa0.toUpperCase()) { - r[0] = pa0.toUpperCase(); - switch (r[0]) { - case "A": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +pa[6] + x; - r[7] = +pa[7] + y; - break; - case "V": - r[1] = +pa[1] + y; - break; - case "H": - r[1] = +pa[1] + x; - break; - case "R": - var dots = [x, y].concat(pa.slice(1)); - for (var j = 2, jj = dots.length; j < jj; j++) { - dots[j] = +dots[j] + x; - dots[++j] = +dots[j] + y; - } - res.pop(); - res = res.concat(catmullRom2bezier(dots, crz)); - break; - case "O": - res.pop(); - dots = ellipsePath(x, y, pa[1], pa[2]); - dots.push(dots[0]); - res = res.concat(dots); - break; - case "U": - res.pop(); - res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3])); - r = ["U"].concat(res[res.length - 1].slice(-2)); - break; - case "M": - mx = +pa[1] + x; - my = +pa[2] + y; - default: - for (j = 1, jj = pa.length; j < jj; j++) { - r[j] = +pa[j] + ((j % 2) ? x : y); - } - } - } else if (pa0 == "R") { - dots = [x, y].concat(pa.slice(1)); - res.pop(); - res = res.concat(catmullRom2bezier(dots, crz)); - r = ["R"].concat(pa.slice(-2)); - } else if (pa0 == "O") { - res.pop(); - dots = ellipsePath(x, y, pa[1], pa[2]); - dots.push(dots[0]); - res = res.concat(dots); - } else if (pa0 == "U") { - res.pop(); - res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3])); - r = ["U"].concat(res[res.length - 1].slice(-2)); - } else { - for (var k = 0, kk = pa.length; k < kk; k++) { - r[k] = pa[k]; - } - } - pa0 = pa0.toUpperCase(); - if (pa0 != "O") { - switch (r[0]) { - case "Z": - x = +mx; - y = +my; - break; - case "H": - x = r[1]; - break; - case "V": - y = r[1]; - break; - case "M": - mx = r[r.length - 2]; - my = r[r.length - 1]; - default: - x = r[r.length - 2]; - y = r[r.length - 1]; - } - } - } - res.toString = toString; - pth.abs = pathClone(res); - return res; - } - function l2c(x1, y1, x2, y2) { - return [x1, y1, x2, y2, x2, y2]; - } - function q2c(x1, y1, ax, ay, x2, y2) { - var _13 = 1 / 3, - _23 = 2 / 3; - return [ - _13 * x1 + _23 * ax, - _13 * y1 + _23 * ay, - _13 * x2 + _23 * ax, - _13 * y2 + _23 * ay, - x2, - y2 - ]; - } - function a2c(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) { - // for more information of where this math came from visit: - // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes - var _120 = PI * 120 / 180, - rad = PI / 180 * (+angle || 0), - res = [], - xy, - rotate = Snap._.cacher(function (x, y, rad) { - var X = x * math.cos(rad) - y * math.sin(rad), - Y = x * math.sin(rad) + y * math.cos(rad); - return {x: X, y: Y}; - }); - if (!recursive) { - xy = rotate(x1, y1, -rad); - x1 = xy.x; - y1 = xy.y; - xy = rotate(x2, y2, -rad); - x2 = xy.x; - y2 = xy.y; - var cos = math.cos(PI / 180 * angle), - sin = math.sin(PI / 180 * angle), - x = (x1 - x2) / 2, - y = (y1 - y2) / 2; - var h = (x * x) / (rx * rx) + (y * y) / (ry * ry); - if (h > 1) { - h = math.sqrt(h); - rx = h * rx; - ry = h * ry; - } - var rx2 = rx * rx, - ry2 = ry * ry, - k = (large_arc_flag == sweep_flag ? -1 : 1) * - math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))), - cx = k * rx * y / ry + (x1 + x2) / 2, - cy = k * -ry * x / rx + (y1 + y2) / 2, - f1 = math.asin(((y1 - cy) / ry).toFixed(9)), - f2 = math.asin(((y2 - cy) / ry).toFixed(9)); - - f1 = x1 < cx ? PI - f1 : f1; - f2 = x2 < cx ? PI - f2 : f2; - f1 < 0 && (f1 = PI * 2 + f1); - f2 < 0 && (f2 = PI * 2 + f2); - if (sweep_flag && f1 > f2) { - f1 = f1 - PI * 2; - } - if (!sweep_flag && f2 > f1) { - f2 = f2 - PI * 2; - } - } else { - f1 = recursive[0]; - f2 = recursive[1]; - cx = recursive[2]; - cy = recursive[3]; - } - var df = f2 - f1; - if (abs(df) > _120) { - var f2old = f2, - x2old = x2, - y2old = y2; - f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1); - x2 = cx + rx * math.cos(f2); - y2 = cy + ry * math.sin(f2); - res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]); - } - df = f2 - f1; - var c1 = math.cos(f1), - s1 = math.sin(f1), - c2 = math.cos(f2), - s2 = math.sin(f2), - t = math.tan(df / 4), - hx = 4 / 3 * rx * t, - hy = 4 / 3 * ry * t, - m1 = [x1, y1], - m2 = [x1 + hx * s1, y1 - hy * c1], - m3 = [x2 + hx * s2, y2 - hy * c2], - m4 = [x2, y2]; - m2[0] = 2 * m1[0] - m2[0]; - m2[1] = 2 * m1[1] - m2[1]; - if (recursive) { - return [m2, m3, m4].concat(res); - } else { - res = [m2, m3, m4].concat(res).join().split(","); - var newres = []; - for (var i = 0, ii = res.length; i < ii; i++) { - newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x; - } - return newres; - } - } - function findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t; - return { - x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, - y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y - }; - } - - // Returns bounding box of cubic bezier curve. - // Source: http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html - // Original version: NISHIO Hirokazu - // Modifications: https://github.com/timo22345 - function curveDim(x0, y0, x1, y1, x2, y2, x3, y3) { - var tvalues = [], - bounds = [[], []], - a, b, c, t, t1, t2, b2ac, sqrtb2ac; - for (var i = 0; i < 2; ++i) { - if (i == 0) { - b = 6 * x0 - 12 * x1 + 6 * x2; - a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3; - c = 3 * x1 - 3 * x0; - } else { - b = 6 * y0 - 12 * y1 + 6 * y2; - a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3; - c = 3 * y1 - 3 * y0; - } - if (abs(a) < 1e-12) { - if (abs(b) < 1e-12) { - continue; - } - t = -c / b; - if (0 < t && t < 1) { - tvalues.push(t); - } - continue; - } - b2ac = b * b - 4 * c * a; - sqrtb2ac = math.sqrt(b2ac); - if (b2ac < 0) { - continue; - } - t1 = (-b + sqrtb2ac) / (2 * a); - if (0 < t1 && t1 < 1) { - tvalues.push(t1); - } - t2 = (-b - sqrtb2ac) / (2 * a); - if (0 < t2 && t2 < 1) { - tvalues.push(t2); - } - } - - var x, y, j = tvalues.length, - jlen = j, - mt; - while (j--) { - t = tvalues[j]; - mt = 1 - t; - bounds[0][j] = (mt * mt * mt * x0) + (3 * mt * mt * t * x1) + (3 * mt * t * t * x2) + (t * t * t * x3); - bounds[1][j] = (mt * mt * mt * y0) + (3 * mt * mt * t * y1) + (3 * mt * t * t * y2) + (t * t * t * y3); - } - - bounds[0][jlen] = x0; - bounds[1][jlen] = y0; - bounds[0][jlen + 1] = x3; - bounds[1][jlen + 1] = y3; - bounds[0].length = bounds[1].length = jlen + 2; - - - return { - min: {x: mmin.apply(0, bounds[0]), y: mmin.apply(0, bounds[1])}, - max: {x: mmax.apply(0, bounds[0]), y: mmax.apply(0, bounds[1])} - }; - } - - function path2curve(path, path2) { - var pth = !path2 && paths(path); - if (!path2 && pth.curve) { - return pathClone(pth.curve); - } - var p = pathToAbsolute(path), - p2 = path2 && pathToAbsolute(path2), - attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - processPath = function (path, d, pcom) { - var nx, ny; - if (!path) { - return ["C", d.x, d.y, d.x, d.y, d.x, d.y]; - } - !(path[0] in {T: 1, Q: 1}) && (d.qx = d.qy = null); - switch (path[0]) { - case "M": - d.X = path[1]; - d.Y = path[2]; - break; - case "A": - path = ["C"].concat(a2c.apply(0, [d.x, d.y].concat(path.slice(1)))); - break; - case "S": - if (pcom == "C" || pcom == "S") { // In "S" case we have to take into account, if the previous command is C/S. - nx = d.x * 2 - d.bx; // And reflect the previous - ny = d.y * 2 - d.by; // command's control point relative to the current point. - } - else { // or some else or nothing - nx = d.x; - ny = d.y; - } - path = ["C", nx, ny].concat(path.slice(1)); - break; - case "T": - if (pcom == "Q" || pcom == "T") { // In "T" case we have to take into account, if the previous command is Q/T. - d.qx = d.x * 2 - d.qx; // And make a reflection similar - d.qy = d.y * 2 - d.qy; // to case "S". - } - else { // or something else or nothing - d.qx = d.x; - d.qy = d.y; - } - path = ["C"].concat(q2c(d.x, d.y, d.qx, d.qy, path[1], path[2])); - break; - case "Q": - d.qx = path[1]; - d.qy = path[2]; - path = ["C"].concat(q2c(d.x, d.y, path[1], path[2], path[3], path[4])); - break; - case "L": - path = ["C"].concat(l2c(d.x, d.y, path[1], path[2])); - break; - case "H": - path = ["C"].concat(l2c(d.x, d.y, path[1], d.y)); - break; - case "V": - path = ["C"].concat(l2c(d.x, d.y, d.x, path[1])); - break; - case "Z": - path = ["C"].concat(l2c(d.x, d.y, d.X, d.Y)); - break; - } - return path; - }, - fixArc = function (pp, i) { - if (pp[i].length > 7) { - pp[i].shift(); - var pi = pp[i]; - while (pi.length) { - pcoms1[i] = "A"; // if created multiple C:s, their original seg is saved - p2 && (pcoms2[i] = "A"); // the same as above - pp.splice(i++, 0, ["C"].concat(pi.splice(0, 6))); - } - pp.splice(i, 1); - ii = mmax(p.length, p2 && p2.length || 0); - } - }, - fixM = function (path1, path2, a1, a2, i) { - if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") { - path2.splice(i, 0, ["M", a2.x, a2.y]); - a1.bx = 0; - a1.by = 0; - a1.x = path1[i][1]; - a1.y = path1[i][2]; - ii = mmax(p.length, p2 && p2.length || 0); - } - }, - pcoms1 = [], // path commands of original path p - pcoms2 = [], // path commands of original path p2 - pfirst = "", // temporary holder for original path command - pcom = ""; // holder for previous path command of original path - for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) { - p[i] && (pfirst = p[i][0]); // save current path command - - if (pfirst != "C") // C is not saved yet, because it may be result of conversion - { - pcoms1[i] = pfirst; // Save current path command - i && ( pcom = pcoms1[i - 1]); // Get previous path command pcom - } - p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath - - if (pcoms1[i] != "A" && pfirst == "C") pcoms1[i] = "C"; // A is the only command - // which may produce multiple C:s - // so we have to make sure that C is also C in original path - - fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1 - - if (p2) { // the same procedures is done to p2 - p2[i] && (pfirst = p2[i][0]); - if (pfirst != "C") { - pcoms2[i] = pfirst; - i && (pcom = pcoms2[i - 1]); - } - p2[i] = processPath(p2[i], attrs2, pcom); - - if (pcoms2[i] != "A" && pfirst == "C") { - pcoms2[i] = "C"; - } - - fixArc(p2, i); - } - fixM(p, p2, attrs, attrs2, i); - fixM(p2, p, attrs2, attrs, i); - var seg = p[i], - seg2 = p2 && p2[i], - seglen = seg.length, - seg2len = p2 && seg2.length; - attrs.x = seg[seglen - 2]; - attrs.y = seg[seglen - 1]; - attrs.bx = toFloat(seg[seglen - 4]) || attrs.x; - attrs.by = toFloat(seg[seglen - 3]) || attrs.y; - attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x); - attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y); - attrs2.x = p2 && seg2[seg2len - 2]; - attrs2.y = p2 && seg2[seg2len - 1]; - } - if (!p2) { - pth.curve = pathClone(p); - } - return p2 ? [p, p2] : p; - } - function mapPath(path, matrix) { - if (!matrix) { - return path; - } - var x, y, i, j, ii, jj, pathi; - path = path2curve(path); - for (i = 0, ii = path.length; i < ii; i++) { - pathi = path[i]; - for (j = 1, jj = pathi.length; j < jj; j += 2) { - x = matrix.x(pathi[j], pathi[j + 1]); - y = matrix.y(pathi[j], pathi[j + 1]); - pathi[j] = x; - pathi[j + 1] = y; - } - } - return path; - } - - // http://schepers.cc/getting-to-the-point - function catmullRom2bezier(crp, z) { - var d = []; - for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) { - var p = [ - {x: +crp[i - 2], y: +crp[i - 1]}, - {x: +crp[i], y: +crp[i + 1]}, - {x: +crp[i + 2], y: +crp[i + 3]}, - {x: +crp[i + 4], y: +crp[i + 5]} - ]; - if (z) { - if (!i) { - p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]}; - } else if (iLen - 4 == i) { - p[3] = {x: +crp[0], y: +crp[1]}; - } else if (iLen - 2 == i) { - p[2] = {x: +crp[0], y: +crp[1]}; - p[3] = {x: +crp[2], y: +crp[3]}; - } - } else { - if (iLen - 4 == i) { - p[3] = p[2]; - } else if (!i) { - p[0] = {x: +crp[i], y: +crp[i + 1]}; - } - } - d.push(["C", - (-p[0].x + 6 * p[1].x + p[2].x) / 6, - (-p[0].y + 6 * p[1].y + p[2].y) / 6, - (p[1].x + 6 * p[2].x - p[3].x) / 6, - (p[1].y + 6*p[2].y - p[3].y) / 6, - p[2].x, - p[2].y - ]); - } - - return d; - } - - // export - Snap.path = paths; - - /*\ - * Snap.path.getTotalLength - [ method ] - ** - * Returns the length of the given path in pixels - ** - - path (string) SVG path string - ** - = (number) length - \*/ - Snap.path.getTotalLength = getTotalLength; - /*\ - * Snap.path.getPointAtLength - [ method ] - ** - * Returns the coordinates of the point located at the given length along the given path - ** - - path (string) SVG path string - - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps - ** - = (object) representation of the point: - o { - o x: (number) x coordinate, - o y: (number) y coordinate, - o alpha: (number) angle of derivative - o } - \*/ - Snap.path.getPointAtLength = getPointAtLength; - /*\ - * Snap.path.getSubpath - [ method ] - ** - * Returns the subpath of a given path between given start and end lengths - ** - - path (string) SVG path string - - from (number) length, in pixels, from the start of the path to the start of the segment - - to (number) length, in pixels, from the start of the path to the end of the segment - ** - = (string) path string definition for the segment - \*/ - Snap.path.getSubpath = function (path, from, to) { - if (this.getTotalLength(path) - to < 1e-6) { - return getSubpathsAtLength(path, from).end; - } - var a = getSubpathsAtLength(path, to, 1); - return from ? getSubpathsAtLength(a, from).end : a; - }; - /*\ - * Element.getTotalLength - [ method ] - ** - * Returns the length of the path in pixels (only works for `path` elements) - = (number) length - \*/ - elproto.getTotalLength = function () { - if (this.node.getTotalLength) { - return this.node.getTotalLength(); - } - }; - // SIERRA Element.getPointAtLength()/Element.getTotalLength(): If a is broken into different segments, is the jump distance to the new coordinates set by the _M_ or _m_ commands calculated as part of the path's total length? - /*\ - * Element.getPointAtLength - [ method ] - ** - * Returns coordinates of the point located at the given length on the given path (only works for `path` elements) - ** - - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps - ** - = (object) representation of the point: - o { - o x: (number) x coordinate, - o y: (number) y coordinate, - o alpha: (number) angle of derivative - o } - \*/ - elproto.getPointAtLength = function (length) { - return getPointAtLength(this.attr("d"), length); - }; - // SIERRA Element.getSubpath(): Similar to the problem for Element.getPointAtLength(). Unclear how this would work for a segmented path. Overall, the concept of _subpath_ and what I'm calling a _segment_ (series of non-_M_ or _Z_ commands) is unclear. - /*\ - * Element.getSubpath - [ method ] - ** - * Returns subpath of a given element from given start and end lengths (only works for `path` elements) - ** - - from (number) length, in pixels, from the start of the path to the start of the segment - - to (number) length, in pixels, from the start of the path to the end of the segment - ** - = (string) path string definition for the segment - \*/ - elproto.getSubpath = function (from, to) { - return Snap.path.getSubpath(this.attr("d"), from, to); - }; - Snap._.box = box; - /*\ - * Snap.path.findDotsAtSegment - [ method ] - ** - * Utility method - ** - * Finds dot coordinates on the given cubic beziér curve at the given t - - p1x (number) x of the first point of the curve - - p1y (number) y of the first point of the curve - - c1x (number) x of the first anchor of the curve - - c1y (number) y of the first anchor of the curve - - c2x (number) x of the second anchor of the curve - - c2y (number) y of the second anchor of the curve - - p2x (number) x of the second point of the curve - - p2y (number) y of the second point of the curve - - t (number) position on the curve (0..1) - = (object) point information in format: - o { - o x: (number) x coordinate of the point, - o y: (number) y coordinate of the point, - o m: { - o x: (number) x coordinate of the left anchor, - o y: (number) y coordinate of the left anchor - o }, - o n: { - o x: (number) x coordinate of the right anchor, - o y: (number) y coordinate of the right anchor - o }, - o start: { - o x: (number) x coordinate of the start of the curve, - o y: (number) y coordinate of the start of the curve - o }, - o end: { - o x: (number) x coordinate of the end of the curve, - o y: (number) y coordinate of the end of the curve - o }, - o alpha: (number) angle of the curve derivative at the point - o } - \*/ - Snap.path.findDotsAtSegment = findDotsAtSegment; - /*\ - * Snap.path.bezierBBox - [ method ] - ** - * Utility method - ** - * Returns the bounding box of a given cubic beziér curve - - p1x (number) x of the first point of the curve - - p1y (number) y of the first point of the curve - - c1x (number) x of the first anchor of the curve - - c1y (number) y of the first anchor of the curve - - c2x (number) x of the second anchor of the curve - - c2y (number) y of the second anchor of the curve - - p2x (number) x of the second point of the curve - - p2y (number) y of the second point of the curve - * or - - bez (array) array of six points for beziér curve - = (object) bounding box - o { - o x: (number) x coordinate of the left top point of the box, - o y: (number) y coordinate of the left top point of the box, - o x2: (number) x coordinate of the right bottom point of the box, - o y2: (number) y coordinate of the right bottom point of the box, - o width: (number) width of the box, - o height: (number) height of the box - o } - \*/ - Snap.path.bezierBBox = bezierBBox; - /*\ - * Snap.path.isPointInsideBBox - [ method ] - ** - * Utility method - ** - * Returns `true` if given point is inside bounding box - - bbox (string) bounding box - - x (string) x coordinate of the point - - y (string) y coordinate of the point - = (boolean) `true` if point is inside - \*/ - Snap.path.isPointInsideBBox = isPointInsideBBox; - Snap.closest = function (x, y, X, Y) { - var r = 100, - b = box(x - r / 2, y - r / 2, r, r), - inside = [], - getter = X[0].hasOwnProperty("x") ? function (i) { - return { - x: X[i].x, - y: X[i].y - }; - } : function (i) { - return { - x: X[i], - y: Y[i] - }; - }, - found = 0; - while (r <= 1e6 && !found) { - for (var i = 0, ii = X.length; i < ii; i++) { - var xy = getter(i); - if (isPointInsideBBox(b, xy.x, xy.y)) { - found++; - inside.push(xy); - break; - } - } - if (!found) { - r *= 2; - b = box(x - r / 2, y - r / 2, r, r) - } - } - if (r == 1e6) { - return; - } - var len = Infinity, - res; - for (i = 0, ii = inside.length; i < ii; i++) { - var l = Snap.len(x, y, inside[i].x, inside[i].y); - if (len > l) { - len = l; - inside[i].len = l; - res = inside[i]; - } - } - return res; - }; - /*\ - * Snap.path.isBBoxIntersect - [ method ] - ** - * Utility method - ** - * Returns `true` if two bounding boxes intersect - - bbox1 (string) first bounding box - - bbox2 (string) second bounding box - = (boolean) `true` if bounding boxes intersect - \*/ - Snap.path.isBBoxIntersect = isBBoxIntersect; - /*\ - * Snap.path.intersection - [ method ] - ** - * Utility method - ** - * Finds intersections of two paths - - path1 (string) path string - - path2 (string) path string - = (array) dots of intersection - o [ - o { - o x: (number) x coordinate of the point, - o y: (number) y coordinate of the point, - o t1: (number) t value for segment of path1, - o t2: (number) t value for segment of path2, - o segment1: (number) order number for segment of path1, - o segment2: (number) order number for segment of path2, - o bez1: (array) eight coordinates representing beziér curve for the segment of path1, - o bez2: (array) eight coordinates representing beziér curve for the segment of path2 - o } - o ] - \*/ - Snap.path.intersection = pathIntersection; - Snap.path.intersectionNumber = pathIntersectionNumber; - /*\ - * Snap.path.isPointInside - [ method ] - ** - * Utility method - ** - * Returns `true` if given point is inside a given closed path. - * - * Note: fill mode doesn’t affect the result of this method. - - path (string) path string - - x (number) x of the point - - y (number) y of the point - = (boolean) `true` if point is inside the path - \*/ - Snap.path.isPointInside = isPointInsidePath; - /*\ - * Snap.path.getBBox - [ method ] - ** - * Utility method - ** - * Returns the bounding box of a given path - - path (string) path string - = (object) bounding box - o { - o x: (number) x coordinate of the left top point of the box, - o y: (number) y coordinate of the left top point of the box, - o x2: (number) x coordinate of the right bottom point of the box, - o y2: (number) y coordinate of the right bottom point of the box, - o width: (number) width of the box, - o height: (number) height of the box - o } - \*/ - Snap.path.getBBox = pathBBox; - Snap.path.get = getPath; - /*\ - * Snap.path.toRelative - [ method ] - ** - * Utility method - ** - * Converts path coordinates into relative values - - path (string) path string - = (array) path string - \*/ - Snap.path.toRelative = pathToRelative; - /*\ - * Snap.path.toAbsolute - [ method ] - ** - * Utility method - ** - * Converts path coordinates into absolute values - - path (string) path string - = (array) path string - \*/ - Snap.path.toAbsolute = pathToAbsolute; - /*\ - * Snap.path.toCubic - [ method ] - ** - * Utility method - ** - * Converts path to a new path where all segments are cubic beziér curves - - pathString (string|array) path string or array of segments - = (array) array of segments - \*/ - Snap.path.toCubic = path2curve; - /*\ - * Snap.path.map - [ method ] - ** - * Transform the path string with the given matrix - - path (string) path string - - matrix (object) see @Matrix - = (string) transformed path string - \*/ - Snap.path.map = mapPath; - Snap.path.toString = toString; - Snap.path.clone = pathClone; -}); - -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob) { - var mmax = Math.max, - mmin = Math.min; - - // Set - var Set = function (items) { - this.items = []; - this.bindings = {}; - this.length = 0; - this.type = "set"; - if (items) { - for (var i = 0, ii = items.length; i < ii; i++) { - if (items[i]) { - this[this.items.length] = this.items[this.items.length] = items[i]; - this.length++; - } - } - } - }, - setproto = Set.prototype; - /*\ - * Set.push - [ method ] - ** - * Adds each argument to the current set - = (object) original element - \*/ - setproto.push = function () { - var item, - len; - for (var i = 0, ii = arguments.length; i < ii; i++) { - item = arguments[i]; - if (item) { - len = this.items.length; - this[len] = this.items[len] = item; - this.length++; - } - } - return this; - }; - /*\ - * Set.pop - [ method ] - ** - * Removes last element and returns it - = (object) element - \*/ - setproto.pop = function () { - this.length && delete this[this.length--]; - return this.items.pop(); - }; - /*\ - * Set.forEach - [ method ] - ** - * Executes given function for each element in the set - * - * If the function returns `false`, the loop stops running. - ** - - callback (function) function to run - - thisArg (object) context object for the callback - = (object) Set object - \*/ - setproto.forEach = function (callback, thisArg) { - for (var i = 0, ii = this.items.length; i < ii; i++) { - if (callback.call(thisArg, this.items[i], i) === false) { - return this; - } - } - return this; - }; - /*\ - * Set.animate - [ method ] - ** - * Animates each element in set in sync. - * - ** - - attrs (object) key-value pairs of destination attributes - - duration (number) duration of the animation in milliseconds - - easing (function) #optional easing function from @mina or custom - - callback (function) #optional callback function that executes when the animation ends - * or - - animation (array) array of animation parameter for each element in set in format `[attrs, duration, easing, callback]` - > Usage - | // animate all elements in set to radius 10 - | set.animate({r: 10}, 500, mina.easein); - | // or - | // animate first element to radius 10, but second to radius 20 and in different time - | set.animate([{r: 10}, 500, mina.easein], [{r: 20}, 1500, mina.easein]); - = (Element) the current element - \*/ - setproto.animate = function (attrs, ms, easing, callback) { - if (typeof easing == "function" && !easing.length) { - callback = easing; - easing = mina.linear; - } - if (attrs instanceof Snap._.Animation) { - callback = attrs.callback; - easing = attrs.easing; - ms = easing.dur; - attrs = attrs.attr; - } - var args = arguments; - if (Snap.is(attrs, "array") && Snap.is(args[args.length - 1], "array")) { - var each = true; - } - var begin, - handler = function () { - if (begin) { - this.b = begin; - } else { - begin = this.b; - } - }, - cb = 0, - set = this, - callbacker = callback && function () { - if (++cb == set.length) { - callback.call(this); - } - }; - return this.forEach(function (el, i) { - eve.once("snap.animcreated." + el.id, handler); - if (each) { - args[i] && el.animate.apply(el, args[i]); - } else { - el.animate(attrs, ms, easing, callbacker); - } - }); - }; - setproto.remove = function () { - while (this.length) { - this.pop().remove(); - } - return this; - }; - /*\ - * Set.bind - [ method ] - ** - * Specifies how to handle a specific attribute when applied - * to a set. - * - ** - - attr (string) attribute name - - callback (function) function to run - * or - - attr (string) attribute name - - element (Element) specific element in the set to apply the attribute to - * or - - attr (string) attribute name - - element (Element) specific element in the set to apply the attribute to - - eattr (string) attribute on the element to bind the attribute to - = (object) Set object - \*/ - setproto.bind = function (attr, a, b) { - var data = {}; - if (typeof a == "function") { - this.bindings[attr] = a; - } else { - var aname = b || attr; - this.bindings[attr] = function (v) { - data[aname] = v; - a.attr(data); - }; - } - return this; - }; - setproto.attr = function (value) { - var unbound = {}; - for (var k in value) { - if (this.bindings[k]) { - this.bindings[k](value[k]); - } else { - unbound[k] = value[k]; - } - } - for (var i = 0, ii = this.items.length; i < ii; i++) { - this.items[i].attr(unbound); - } - return this; - }; - /*\ - * Set.clear - [ method ] - ** - * Removes all elements from the set - \*/ - setproto.clear = function () { - while (this.length) { - this.pop(); - } - }; - /*\ - * Set.splice - [ method ] - ** - * Removes range of elements from the set - ** - - index (number) position of the deletion - - count (number) number of element to remove - - insertion… (object) #optional elements to insert - = (object) set elements that were deleted - \*/ - setproto.splice = function (index, count, insertion) { - index = index < 0 ? mmax(this.length + index, 0) : index; - count = mmax(0, mmin(this.length - index, count)); - var tail = [], - todel = [], - args = [], - i; - for (i = 2; i < arguments.length; i++) { - args.push(arguments[i]); - } - for (i = 0; i < count; i++) { - todel.push(this[index + i]); - } - for (; i < this.length - index; i++) { - tail.push(this[index + i]); - } - var arglen = args.length; - for (i = 0; i < arglen + tail.length; i++) { - this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen]; - } - i = this.items.length = this.length -= count - arglen; - while (this[i]) { - delete this[i++]; - } - return new Set(todel); - }; - /*\ - * Set.exclude - [ method ] - ** - * Removes given element from the set - ** - - element (object) element to remove - = (boolean) `true` if object was found and removed from the set - \*/ - setproto.exclude = function (el) { - for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) { - this.splice(i, 1); - return true; - } - return false; - }; - setproto.insertAfter = function (el) { - var i = this.items.length; - while (i--) { - this.items[i].insertAfter(el); - } - return this; - }; - setproto.getBBox = function () { - var x = [], - y = [], - x2 = [], - y2 = []; - for (var i = this.items.length; i--;) if (!this.items[i].removed) { - var box = this.items[i].getBBox(); - x.push(box.x); - y.push(box.y); - x2.push(box.x + box.width); - y2.push(box.y + box.height); - } - x = mmin.apply(0, x); - y = mmin.apply(0, y); - x2 = mmax.apply(0, x2); - y2 = mmax.apply(0, y2); - return { - x: x, - y: y, - x2: x2, - y2: y2, - width: x2 - x, - height: y2 - y, - cx: x + (x2 - x) / 2, - cy: y + (y2 - y) / 2 - }; - }; - setproto.clone = function (s) { - s = new Set; - for (var i = 0, ii = this.items.length; i < ii; i++) { - s.push(this.items[i].clone()); - } - return s; - }; - setproto.toString = function () { - return "Snap\u2018s set"; - }; - setproto.type = "set"; - // export - Snap.Set = Set; - Snap.set = function () { - var set = new Set; - if (arguments.length) { - set.push.apply(set, Array.prototype.slice.call(arguments, 0)); - } - return set; - }; -}); - -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob) { - var names = {}, - reUnit = /[a-z]+$/i, - Str = String; - names.stroke = names.fill = "colour"; - function getEmpty(item) { - var l = item[0]; - switch (l.toLowerCase()) { - case "t": return [l, 0, 0]; - case "m": return [l, 1, 0, 0, 1, 0, 0]; - case "r": if (item.length == 4) { - return [l, 0, item[2], item[3]]; - } else { - return [l, 0]; - } - case "s": if (item.length == 5) { - return [l, 1, 1, item[3], item[4]]; - } else if (item.length == 3) { - return [l, 1, 1]; - } else { - return [l, 1]; - } - } - } - function equaliseTransform(t1, t2, getBBox) { - t2 = Str(t2).replace(/\.{3}|\u2026/g, t1); - t1 = Snap.parseTransformString(t1) || []; - t2 = Snap.parseTransformString(t2) || []; - var maxlength = Math.max(t1.length, t2.length), - from = [], - to = [], - i = 0, j, jj, - tt1, tt2; - for (; i < maxlength; i++) { - tt1 = t1[i] || getEmpty(t2[i]); - tt2 = t2[i] || getEmpty(tt1); - if ((tt1[0] != tt2[0]) || - (tt1[0].toLowerCase() == "r" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) || - (tt1[0].toLowerCase() == "s" && (tt1[3] != tt2[3] || tt1[4] != tt2[4])) - ) { - t1 = Snap._.transform2matrix(t1, getBBox()); - t2 = Snap._.transform2matrix(t2, getBBox()); - from = [["m", t1.a, t1.b, t1.c, t1.d, t1.e, t1.f]]; - to = [["m", t2.a, t2.b, t2.c, t2.d, t2.e, t2.f]]; - break; - } - from[i] = []; - to[i] = []; - for (j = 0, jj = Math.max(tt1.length, tt2.length); j < jj; j++) { - j in tt1 && (from[i][j] = tt1[j]); - j in tt2 && (to[i][j] = tt2[j]); - } - } - return { - from: path2array(from), - to: path2array(to), - f: getPath(from) - }; - } - function getNumber(val) { - return val; - } - function getUnit(unit) { - return function (val) { - return +val.toFixed(3) + unit; - }; - } - function getViewBox(val) { - return val.join(" "); - } - function getColour(clr) { - return Snap.rgb(clr[0], clr[1], clr[2]); - } - function getPath(path) { - var k = 0, i, ii, j, jj, out, a, b = []; - for (i = 0, ii = path.length; i < ii; i++) { - out = "["; - a = ['"' + path[i][0] + '"']; - for (j = 1, jj = path[i].length; j < jj; j++) { - a[j] = "val[" + (k++) + "]"; - } - out += a + "]"; - b[i] = out; - } - return Function("val", "return Snap.path.toString.call([" + b + "])"); - } - function path2array(path) { - var out = []; - for (var i = 0, ii = path.length; i < ii; i++) { - for (var j = 1, jj = path[i].length; j < jj; j++) { - out.push(path[i][j]); - } - } - return out; - } - function isNumeric(obj) { - return isFinite(parseFloat(obj)); - } - function arrayEqual(arr1, arr2) { - if (!Snap.is(arr1, "array") || !Snap.is(arr2, "array")) { - return false; - } - return arr1.toString() == arr2.toString(); - } - Element.prototype.equal = function (name, b) { - return eve("snap.util.equal", this, name, b).firstDefined(); - }; - eve.on("snap.util.equal", function (name, b) { - var A, B, a = Str(this.attr(name) || ""), - el = this; - if (isNumeric(a) && isNumeric(b)) { - return { - from: parseFloat(a), - to: parseFloat(b), - f: getNumber - }; - } - if (names[name] == "colour") { - A = Snap.color(a); - B = Snap.color(b); - return { - from: [A.r, A.g, A.b, A.opacity], - to: [B.r, B.g, B.b, B.opacity], - f: getColour - }; - } - if (name == "viewBox") { - A = this.attr(name).vb.split(" ").map(Number); - B = b.split(" ").map(Number); - return { - from: A, - to: B, - f: getViewBox - }; - } - if (name == "transform" || name == "gradientTransform" || name == "patternTransform") { - if (b instanceof Snap.Matrix) { - b = b.toTransformString(); - } - if (!Snap._.rgTransform.test(b)) { - b = Snap._.svgTransform2string(b); - } - return equaliseTransform(a, b, function () { - return el.getBBox(1); - }); - } - if (name == "d" || name == "path") { - A = Snap.path.toCubic(a, b); - return { - from: path2array(A[0]), - to: path2array(A[1]), - f: getPath(A[0]) - }; - } - if (name == "points") { - A = Str(a).split(Snap._.separator); - B = Str(b).split(Snap._.separator); - return { - from: A, - to: B, - f: function (val) { return val; } - }; - } - var aUnit = a.match(reUnit), - bUnit = Str(b).match(reUnit); - if (aUnit && arrayEqual(aUnit, bUnit)) { - return { - from: parseFloat(a), - to: parseFloat(b), - f: getUnit(aUnit) - }; - } else { - return { - from: this.asPX(name), - to: this.asPX(name, b), - f: getNumber - }; - } - }); -}); - -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob) { - var elproto = Element.prototype, - has = "hasOwnProperty", - supportsTouch = "createTouch" in glob.doc, - events = [ - "click", "dblclick", "mousedown", "mousemove", "mouseout", - "mouseover", "mouseup", "touchstart", "touchmove", "touchend", - "touchcancel" - ], - touchMap = { - mousedown: "touchstart", - mousemove: "touchmove", - mouseup: "touchend" - }, - getScroll = function (xy, el) { - var name = xy == "y" ? "scrollTop" : "scrollLeft", - doc = el && el.node ? el.node.ownerDocument : glob.doc; - return doc[name in doc.documentElement ? "documentElement" : "body"][name]; - }, - preventDefault = function () { - this.returnValue = false; - }, - preventTouch = function () { - return this.originalEvent.preventDefault(); - }, - stopPropagation = function () { - this.cancelBubble = true; - }, - stopTouch = function () { - return this.originalEvent.stopPropagation(); - }, - addEvent = function (obj, type, fn, element) { - var realName = supportsTouch && touchMap[type] ? touchMap[type] : type, - f = function (e) { - var scrollY = getScroll("y", element), - scrollX = getScroll("x", element); - if (supportsTouch && touchMap[has](type)) { - for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) { - if (e.targetTouches[i].target == obj || obj.contains(e.targetTouches[i].target)) { - var olde = e; - e = e.targetTouches[i]; - e.originalEvent = olde; - e.preventDefault = preventTouch; - e.stopPropagation = stopTouch; - break; - } - } - } - var x = e.clientX + scrollX, - y = e.clientY + scrollY; - return fn.call(element, e, x, y); - }; - - if (type !== realName) { - obj.addEventListener(type, f, false); - } - - obj.addEventListener(realName, f, false); - - return function () { - if (type !== realName) { - obj.removeEventListener(type, f, false); - } - - obj.removeEventListener(realName, f, false); - return true; - }; - }, - drag = [], - dragMove = function (e) { - var x = e.clientX, - y = e.clientY, - scrollY = getScroll("y"), - scrollX = getScroll("x"), - dragi, - j = drag.length; - while (j--) { - dragi = drag[j]; - if (supportsTouch) { - var i = e.touches && e.touches.length, - touch; - while (i--) { - touch = e.touches[i]; - if (touch.identifier == dragi.el._drag.id || dragi.el.node.contains(touch.target)) { - x = touch.clientX; - y = touch.clientY; - (e.originalEvent ? e.originalEvent : e).preventDefault(); - break; - } - } - } else { - e.preventDefault(); - } - var node = dragi.el.node, - o, - next = node.nextSibling, - parent = node.parentNode, - display = node.style.display; - // glob.win.opera && parent.removeChild(node); - // node.style.display = "none"; - // o = dragi.el.paper.getElementByPoint(x, y); - // node.style.display = display; - // glob.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node)); - // o && eve("snap.drag.over." + dragi.el.id, dragi.el, o); - x += scrollX; - y += scrollY; - eve("snap.drag.move." + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e); - } - }, - dragUp = function (e) { - Snap.unmousemove(dragMove).unmouseup(dragUp); - var i = drag.length, - dragi; - while (i--) { - dragi = drag[i]; - dragi.el._drag = {}; - eve("snap.drag.end." + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e); - eve.off("snap.drag.*." + dragi.el.id); - } - drag = []; - }; - /*\ - * Element.click - [ method ] - ** - * Adds a click event handler to the element - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unclick - [ method ] - ** - * Removes a click event handler from the element - - handler (function) handler for the event - = (object) @Element - \*/ - - /*\ - * Element.dblclick - [ method ] - ** - * Adds a double click event handler to the element - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.undblclick - [ method ] - ** - * Removes a double click event handler from the element - - handler (function) handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mousedown - [ method ] - ** - * Adds a mousedown event handler to the element - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmousedown - [ method ] - ** - * Removes a mousedown event handler from the element - - handler (function) handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mousemove - [ method ] - ** - * Adds a mousemove event handler to the element - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmousemove - [ method ] - ** - * Removes a mousemove event handler from the element - - handler (function) handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseout - [ method ] - ** - * Adds a mouseout event handler to the element - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseout - [ method ] - ** - * Removes a mouseout event handler from the element - - handler (function) handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseover - [ method ] - ** - * Adds a mouseover event handler to the element - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseover - [ method ] - ** - * Removes a mouseover event handler from the element - - handler (function) handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseup - [ method ] - ** - * Adds a mouseup event handler to the element - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseup - [ method ] - ** - * Removes a mouseup event handler from the element - - handler (function) handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchstart - [ method ] - ** - * Adds a touchstart event handler to the element - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchstart - [ method ] - ** - * Removes a touchstart event handler from the element - - handler (function) handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchmove - [ method ] - ** - * Adds a touchmove event handler to the element - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchmove - [ method ] - ** - * Removes a touchmove event handler from the element - - handler (function) handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchend - [ method ] - ** - * Adds a touchend event handler to the element - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchend - [ method ] - ** - * Removes a touchend event handler from the element - - handler (function) handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchcancel - [ method ] - ** - * Adds a touchcancel event handler to the element - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchcancel - [ method ] - ** - * Removes a touchcancel event handler from the element - - handler (function) handler for the event - = (object) @Element - \*/ - for (var i = events.length; i--;) { - (function (eventName) { - Snap[eventName] = elproto[eventName] = function (fn, scope) { - if (Snap.is(fn, "function")) { - this.events = this.events || []; - this.events.push({ - name: eventName, - f: fn, - unbind: addEvent(this.node || document, eventName, fn, scope || this) - }); - } else { - for (var i = 0, ii = this.events.length; i < ii; i++) if (this.events[i].name == eventName) { - try { - this.events[i].f.call(this); - } catch (e) {} - } - } - return this; - }; - Snap["un" + eventName] = - elproto["un" + eventName] = function (fn) { - var events = this.events || [], - l = events.length; - while (l--) if (events[l].name == eventName && - (events[l].f == fn || !fn)) { - events[l].unbind(); - events.splice(l, 1); - !events.length && delete this.events; - return this; - } - return this; - }; - })(events[i]); - } - /*\ - * Element.hover - [ method ] - ** - * Adds hover event handlers to the element - - f_in (function) handler for hover in - - f_out (function) handler for hover out - - icontext (object) #optional context for hover in handler - - ocontext (object) #optional context for hover out handler - = (object) @Element - \*/ - elproto.hover = function (f_in, f_out, scope_in, scope_out) { - return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in); - }; - /*\ - * Element.unhover - [ method ] - ** - * Removes hover event handlers from the element - - f_in (function) handler for hover in - - f_out (function) handler for hover out - = (object) @Element - \*/ - elproto.unhover = function (f_in, f_out) { - return this.unmouseover(f_in).unmouseout(f_out); - }; - var draggable = []; - // SIERRA unclear what _context_ refers to for starting, ending, moving the drag gesture. - // SIERRA Element.drag(): _x position of the mouse_: Where are the x/y values offset from? - // SIERRA Element.drag(): much of this member's doc appears to be duplicated for some reason. - // SIERRA Unclear about this sentence: _Additionally following drag events will be triggered: drag.start. on start, drag.end. on end and drag.move. on every move._ Is there a global _drag_ object to which you can assign handlers keyed by an element's ID? - /*\ - * Element.drag - [ method ] - ** - * Adds event handlers for an element's drag gesture - ** - - onmove (function) handler for moving - - onstart (function) handler for drag start - - onend (function) handler for drag end - - mcontext (object) #optional context for moving handler - - scontext (object) #optional context for drag start handler - - econtext (object) #optional context for drag end handler - * Additionaly following `drag` events are triggered: `drag.start.` on start, - * `drag.end.` on end and `drag.move.` on every move. When element is dragged over another element - * `drag.over.` fires as well. - * - * Start event and start handler are called in specified context or in context of the element with following parameters: - o x (number) x position of the mouse - o y (number) y position of the mouse - o event (object) DOM event object - * Move event and move handler are called in specified context or in context of the element with following parameters: - o dx (number) shift by x from the start point - o dy (number) shift by y from the start point - o x (number) x position of the mouse - o y (number) y position of the mouse - o event (object) DOM event object - * End event and end handler are called in specified context or in context of the element with following parameters: - o event (object) DOM event object - = (object) @Element - \*/ - elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) { - var el = this; - if (!arguments.length) { - var origTransform; - return el.drag(function (dx, dy) { - this.attr({ - transform: origTransform + (origTransform ? "T" : "t") + [dx, dy] - }); - }, function () { - origTransform = this.transform().local; - }); - } - function start(e, x, y) { - (e.originalEvent || e).preventDefault(); - el._drag.x = x; - el._drag.y = y; - el._drag.id = e.identifier; - !drag.length && Snap.mousemove(dragMove).mouseup(dragUp); - drag.push({el: el, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope}); - onstart && eve.on("snap.drag.start." + el.id, onstart); - onmove && eve.on("snap.drag.move." + el.id, onmove); - onend && eve.on("snap.drag.end." + el.id, onend); - eve("snap.drag.start." + el.id, start_scope || move_scope || el, x, y, e); - } - function init(e, x, y) { - eve("snap.draginit." + el.id, el, e, x, y); - } - eve.on("snap.draginit." + el.id, start); - el._drag = {}; - draggable.push({el: el, start: start, init: init}); - el.mousedown(init); - return el; - }; - /* - * Element.onDragOver - [ method ] - ** - * Shortcut to assign event handler for `drag.over.` event, where `id` is the element's `id` (see @Element.id) - - f (function) handler for event, first argument would be the element you are dragging over - \*/ - // elproto.onDragOver = function (f) { - // f ? eve.on("snap.drag.over." + this.id, f) : eve.unbind("snap.drag.over." + this.id); - // }; - /*\ - * Element.undrag - [ method ] - ** - * Removes all drag event handlers from the given element - \*/ - elproto.undrag = function () { - var i = draggable.length; - while (i--) if (draggable[i].el == this) { - this.unmousedown(draggable[i].init); - draggable.splice(i, 1); - eve.unbind("snap.drag.*." + this.id); - eve.unbind("snap.draginit." + this.id); - } - !draggable.length && Snap.unmousemove(dragMove).unmouseup(dragUp); - return this; - }; -}); - -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob) { - var elproto = Element.prototype, - pproto = Paper.prototype, - rgurl = /^\s*url\((.+)\)/, - Str = String, - $ = Snap._.$; - Snap.filter = {}; - /*\ - * Paper.filter - [ method ] - ** - * Creates a `` element - ** - - filstr (string) SVG fragment of filter provided as a string - = (object) @Element - * Note: It is recommended to use filters embedded into the page inside an empty SVG element. - > Usage - | var f = paper.filter(''), - | c = paper.circle(10, 10, 10).attr({ - | filter: f - | }); - \*/ - pproto.filter = function (filstr) { - var paper = this; - if (paper.type != "svg") { - paper = paper.paper; - } - var f = Snap.parse(Str(filstr)), - id = Snap._.id(), - width = paper.node.offsetWidth, - height = paper.node.offsetHeight, - filter = $("filter"); - $(filter, { - id: id, - filterUnits: "userSpaceOnUse" - }); - filter.appendChild(f.node); - paper.defs.appendChild(filter); - return new Element(filter); - }; - - eve.on("snap.util.getattr.filter", function () { - eve.stop(); - var p = $(this.node, "filter"); - if (p) { - var match = Str(p).match(rgurl); - return match && Snap.select(match[1]); - } - }); - eve.on("snap.util.attr.filter", function (value) { - if (value instanceof Element && value.type == "filter") { - eve.stop(); - var id = value.node.id; - if (!id) { - $(value.node, {id: value.id}); - id = value.id; - } - $(this.node, { - filter: Snap.url(id) - }); - } - if (!value || value == "none") { - eve.stop(); - this.node.removeAttribute("filter"); - } - }); - /*\ - * Snap.filter.blur - [ method ] - ** - * Returns an SVG markup string for the blur filter - ** - - x (number) amount of horizontal blur, in pixels - - y (number) #optional amount of vertical blur, in pixels - = (string) filter representation - > Usage - | var f = paper.filter(Snap.filter.blur(5, 10)), - | c = paper.circle(10, 10, 10).attr({ - | filter: f - | }); - \*/ - Snap.filter.blur = function (x, y) { - if (x == null) { - x = 2; - } - var def = y == null ? x : [x, y]; - return Snap.format('\', { - def: def - }); - }; - Snap.filter.blur.toString = function () { - return this(); - }; - /*\ - * Snap.filter.shadow - [ method ] - ** - * Returns an SVG markup string for the shadow filter - ** - - dx (number) #optional horizontal shift of the shadow, in pixels - - dy (number) #optional vertical shift of the shadow, in pixels - - blur (number) #optional amount of blur - - color (string) #optional color of the shadow - - opacity (number) #optional `0..1` opacity of the shadow - * or - - dx (number) #optional horizontal shift of the shadow, in pixels - - dy (number) #optional vertical shift of the shadow, in pixels - - color (string) #optional color of the shadow - - opacity (number) #optional `0..1` opacity of the shadow - * which makes blur default to `4`. Or - - dx (number) #optional horizontal shift of the shadow, in pixels - - dy (number) #optional vertical shift of the shadow, in pixels - - opacity (number) #optional `0..1` opacity of the shadow - = (string) filter representation - > Usage - | var f = paper.filter(Snap.filter.shadow(0, 2, 3)), - | c = paper.circle(10, 10, 10).attr({ - | filter: f - | }); - \*/ - Snap.filter.shadow = function (dx, dy, blur, color, opacity) { - if (typeof blur == "string") { - color = blur; - opacity = color; - blur = 4; - } - if (typeof color != "string") { - opacity = color; - color = "#000"; - } - color = color || "#000"; - if (blur == null) { - blur = 4; - } - if (opacity == null) { - opacity = 1; - } - if (dx == null) { - dx = 0; - dy = 2; - } - if (dy == null) { - dy = dx; - } - color = Snap.color(color); - return Snap.format('', { - color: color, - dx: dx, - dy: dy, - blur: blur, - opacity: opacity - }); - }; - Snap.filter.shadow.toString = function () { - return this(); - }; - /*\ - * Snap.filter.grayscale - [ method ] - ** - * Returns an SVG markup string for the grayscale filter - ** - - amount (number) amount of filter (`0..1`) - = (string) filter representation - \*/ - Snap.filter.grayscale = function (amount) { - if (amount == null) { - amount = 1; - } - return Snap.format('', { - a: 0.2126 + 0.7874 * (1 - amount), - b: 0.7152 - 0.7152 * (1 - amount), - c: 0.0722 - 0.0722 * (1 - amount), - d: 0.2126 - 0.2126 * (1 - amount), - e: 0.7152 + 0.2848 * (1 - amount), - f: 0.0722 - 0.0722 * (1 - amount), - g: 0.2126 - 0.2126 * (1 - amount), - h: 0.0722 + 0.9278 * (1 - amount) - }); - }; - Snap.filter.grayscale.toString = function () { - return this(); - }; - /*\ - * Snap.filter.sepia - [ method ] - ** - * Returns an SVG markup string for the sepia filter - ** - - amount (number) amount of filter (`0..1`) - = (string) filter representation - \*/ - Snap.filter.sepia = function (amount) { - if (amount == null) { - amount = 1; - } - return Snap.format('', { - a: 0.393 + 0.607 * (1 - amount), - b: 0.769 - 0.769 * (1 - amount), - c: 0.189 - 0.189 * (1 - amount), - d: 0.349 - 0.349 * (1 - amount), - e: 0.686 + 0.314 * (1 - amount), - f: 0.168 - 0.168 * (1 - amount), - g: 0.272 - 0.272 * (1 - amount), - h: 0.534 - 0.534 * (1 - amount), - i: 0.131 + 0.869 * (1 - amount) - }); - }; - Snap.filter.sepia.toString = function () { - return this(); - }; - /*\ - * Snap.filter.saturate - [ method ] - ** - * Returns an SVG markup string for the saturate filter - ** - - amount (number) amount of filter (`0..1`) - = (string) filter representation - \*/ - Snap.filter.saturate = function (amount) { - if (amount == null) { - amount = 1; - } - return Snap.format('', { - amount: 1 - amount - }); - }; - Snap.filter.saturate.toString = function () { - return this(); - }; - /*\ - * Snap.filter.hueRotate - [ method ] - ** - * Returns an SVG markup string for the hue-rotate filter - ** - - angle (number) angle of rotation - = (string) filter representation - \*/ - Snap.filter.hueRotate = function (angle) { - angle = angle || 0; - return Snap.format('', { - angle: angle - }); - }; - Snap.filter.hueRotate.toString = function () { - return this(); - }; - /*\ - * Snap.filter.invert - [ method ] - ** - * Returns an SVG markup string for the invert filter - ** - - amount (number) amount of filter (`0..1`) - = (string) filter representation - \*/ - Snap.filter.invert = function (amount) { - if (amount == null) { - amount = 1; - } -// - return Snap.format('', { - amount: amount, - amount2: 1 - amount - }); - }; - Snap.filter.invert.toString = function () { - return this(); - }; - /*\ - * Snap.filter.brightness - [ method ] - ** - * Returns an SVG markup string for the brightness filter - ** - - amount (number) amount of filter (`0..1`) - = (string) filter representation - \*/ - Snap.filter.brightness = function (amount) { - if (amount == null) { - amount = 1; - } - return Snap.format('', { - amount: amount - }); - }; - Snap.filter.brightness.toString = function () { - return this(); - }; - /*\ - * Snap.filter.contrast - [ method ] - ** - * Returns an SVG markup string for the contrast filter - ** - - amount (number) amount of filter (`0..1`) - = (string) filter representation - \*/ - Snap.filter.contrast = function (amount) { - if (amount == null) { - amount = 1; - } - return Snap.format('', { - amount: amount, - amount2: .5 - amount / 2 - }); - }; - Snap.filter.contrast.toString = function () { - return this(); - }; -}); - -// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) { - var box = Snap._.box, - is = Snap.is, - firstLetter = /^[^a-z]*([tbmlrc])/i, - toString = function () { - return "T" + this.dx + "," + this.dy; - }; - /*\ - * Element.getAlign - [ method ] - ** - * Returns shift needed to align the element relatively to given element. - * If no elements specified, parent `` container will be used. - - el (object) @optional alignment element - - way (string) one of six values: `"top"`, `"middle"`, `"bottom"`, `"left"`, `"center"`, `"right"` - = (object|string) Object in format `{dx: , dy: }` also has a string representation as a transformation string - > Usage - | el.transform(el.getAlign(el2, "top")); - * or - | var dy = el.getAlign(el2, "top").dy; - \*/ - Element.prototype.getAlign = function (el, way) { - if (way == null && is(el, "string")) { - way = el; - el = null; - } - el = el || this.paper; - var bx = el.getBBox ? el.getBBox() : box(el), - bb = this.getBBox(), - out = {}; - way = way && way.match(firstLetter); - way = way ? way[1].toLowerCase() : "c"; - switch (way) { - case "t": - out.dx = 0; - out.dy = bx.y - bb.y; - break; - case "b": - out.dx = 0; - out.dy = bx.y2 - bb.y2; - break; - case "m": - out.dx = 0; - out.dy = bx.cy - bb.cy; - break; - case "l": - out.dx = bx.x - bb.x; - out.dy = 0; - break; - case "r": - out.dx = bx.x2 - bb.x2; - out.dy = 0; - break; - default: - out.dx = bx.cx - bb.cx; - out.dy = 0; - break; - } - out.toString = toString; - return out; - }; - /*\ - * Element.align - [ method ] - ** - * Aligns the element relatively to given one via transformation. - * If no elements specified, parent `` container will be used. - - el (object) @optional alignment element - - way (string) one of six values: `"top"`, `"middle"`, `"bottom"`, `"left"`, `"center"`, `"right"` - = (object) this element - > Usage - | el.align(el2, "top"); - * or - | el.align("middle"); - \*/ - Element.prototype.align = function (el, way) { - return this.transform("..." + this.getAlign(el, way)); - }; -}); - -return Snap; -})); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/dr.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/dr.css deleted file mode 100644 index e85f5a85..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/dr.css +++ /dev/null @@ -1,144 +0,0 @@ -#content section.code { - display: block; - font-weight: 400; - background: #181818; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; - border-radius: 10px; -} -#content section.code pre code { - font-size: 14px; -} -code { - font-family: source-code-pro, Menlo, "Arial Unicode MS", sans-serif; -} -a.dr-hash, -a.dr-sourceline { - -webkit-transition: opacity 0.2s linear; - color: #333; - font-family: Menlo, "Arial Unicode MS", sans-serif; - margin: 0 0 0 .3em; - opacity: 0; - text-decoration: none; -} -h2:hover a.dr-hash, -h3:hover a.dr-hash, -h4:hover a.dr-hash, -h5:hover a.dr-hash, -h2:hover a.dr-sourceline, -h3:hover a.dr-sourceline, -h4:hover a.dr-sourceline, -h5:hover a.dr-sourceline { - opacity: 1; -} -.dr-param { - float: left; - min-width: 8em; -} -.dr-type { - float: left; -} -.dr-title { - float: left; - margin: 0 8px 0 0; -} -.dr-type em, -.dr-returns em, -.dr-property em { - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - background: #ccc; - border-radius: 5px; - float: left; - font-size: .75em; - font-style: normal; - font-weight: 700; - margin: 0 8px 0 0; - min-width: 80px; - padding: 2px 5px; - text-align: center; -} -.dr-type em.amp, -.dr-returns em.amp, -.dr-property em.amp { - float: none; - background: none; - font-size: 1em; - font-weight: 400; - font-style: italic; - margin: 0; - padding: 0; - min-width: 0; -} -.dr-property em.dr-type { - margin: 4px 16px 0 0; -} -em.dr-type-string { - background: #e1edb1; - color: #3d4c00; -} -em.dr-type-object { - background: #edb1b1; - color: #4c0000; -} -em.dr-type-function { - background: #cfb1ed; - color: #26004c; -} -em.dr-type-number { - background: #b1c9ed; - color: #001e4c; -} -em.dr-type-boolean { - background: #b1edc9; - color: #004c1e; -} -em.dr-type-array { - background: #edd5b1; - color: #4c2d00; -} -.dr-optional { - display: none; -} -ol.dr-json { - background: #ddd; - list-style: none; - margin: 0 -30px; - padding: 16px 30px; - line-height: 1.5; -} -ol.dr-json .dr-json-key { - float: left; - min-width: 50px; - margin-right: 16px; -} -ol.dr-json .dr-json-description { - display: table; -} -ol.dr-json ol.dr-json { - margin: 0; - padding: 0 0 0 50px; -} -#pageNav li.dr-lvl1 a { - padding-left: 1em; -} -#pageNav li.dr-lvl2 a { - padding-left: 2em; -} -#pageNav li.dr-lvl3 a { - padding-left: 3em; -} -#pageNav li.dr-lvl4 a { - padding-left: 4em; -} -#pageNav li.dr-lvl5 a { - padding-left: 5em; -} -#pageNav li.dr-lvl6 a { - padding-left: 6em; -} -#pageNav ol { - list-style: none; - margin: 0; - padding: 0; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/main.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/main.css deleted file mode 100644 index 2d0bda32..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/main.css +++ /dev/null @@ -1,508 +0,0 @@ -html,body{ - margin:0; - padding:0; - height: 100%; -} -body { - font-family: source-sans-pro, sans-serif; - position: relative; - -webkit-font-smoothing: antialiased; -} -body.light { - background: #F4F4F4; -} -body.dark { - color: #F0F1F1; - background: #4A4D4E; -} -body.light { - color: #181919; -} - -h1 { - font-weight: 600; -} -#wrapper { - width: 100%; - overflow-x: hidden; - background: inherit; - position: relative; -} -#site { - width: 100%; - position: relative; - z-index: 10; - background: inherit; - left: 0; - transition: all 0.2s ease-out; - -webkit-transition: all 0.2s ease-out; - transform: translate3d(0, 0, 0); - -webkit-transform: translate3d(0, 0, 0); -} -#site:before{ - position: absolute; - content: ''; - left: -4px; - height: 100%; - width: 4px; - background: #3B3E3E; -} -#site.open { - transform: translate3d(250px, 0, 0); - -webkit-transform: translate3d(250px, 0, 0); -} -pre { - font-family: source-code-pro, sans-serif; - font-size: 12px; -} -/* Main Header */ -#main-header { - color: #373435; - background: #fff; - height: 98px; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 10px 20px; - position: relative; -} -#main-header hgroup { - text-align: center; -} -#main-header hgroup h1 { - font-size: 40px; - margin: 5px 0 0; - letter-spacing: -.065em; - line-height: 1.1em; -} -#main-header hgroup a { - color: #464646; - text-decoration: none; -} -#main-header hgroup a:hover { - color: #000; -} -#main-header hgroup p { - font-size: 13px; - color: #999; - margin: 0; -} -#main-header nav { - display: none; -} -#slide-menu-button { - position: absolute; - top: 20px; - left: 20px; - display: inline-block; - vertical-align: top; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-background-clip: padding; - -moz-background-clip: padding; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - padding: 0 0.5rem; - line-height: 2rem; - letter-spacing: 1px; - color: #454545; - text-shadow: 0 1px #fff; - vertical-align: baseline; - -webkit-box-shadow: inset 0 1px #fff; - box-shadow: inset 0 1px #fff; - -webkit-border-radius: 3px; - border-radius: 3px; - width: 2.6rem; - height: 2.6rem; - line-height: 2.6rem; - border: 1px solid transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -#slide-menu:disabled, -#slide-menu.is-disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} -#slide-menu-button:active, -#slide-menu-button.is-active { - color: #454545; - text-shadow: 0 1px #fff; - background-color: #d3d7d7; - border: 1px solid #a5a8a8; - -webkit-box-shadow: inset 0 1px rgba(0,0,0,0.12); - box-shadow: inset 0 1px rgba(0,0,0,0.12); -} -#slide-menu-button span { - background-repeat: no-repeat; - background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgWw0KCTwhRU5USVRZIG5zX2V4dGVuZCAiaHR0cDovL25zLmFkb2JlLmNvbS9FeHRlbnNpYmlsaXR5LzEuMC8iPg0KCTwhRU5USVRZIG5zX2FpICJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlSWxsdXN0cmF0b3IvMTAuMC8iPg0KCTwhRU5USVRZIG5zX2dyYXBocyAiaHR0cDovL25zLmFkb2JlLmNvbS9HcmFwaHMvMS4wLyI+DQoJPCFFTlRJVFkgbnNfdmFycyAiaHR0cDovL25zLmFkb2JlLmNvbS9WYXJpYWJsZXMvMS4wLyI+DQoJPCFFTlRJVFkgbnNfaW1yZXAgImh0dHA6Ly9ucy5hZG9iZS5jb20vSW1hZ2VSZXBsYWNlbWVudC8xLjAvIj4NCgk8IUVOVElUWSBuc19zZncgImh0dHA6Ly9ucy5hZG9iZS5jb20vU2F2ZUZvcldlYi8xLjAvIj4NCgk8IUVOVElUWSBuc19jdXN0b20gImh0dHA6Ly9ucy5hZG9iZS5jb20vR2VuZXJpY0N1c3RvbU5hbWVzcGFjZS8xLjAvIj4NCgk8IUVOVElUWSBuc19hZG9iZV94cGF0aCAiaHR0cDovL25zLmFkb2JlLmNvbS9YUGF0aC8xLjAvIj4NCl0+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zOng9IiZuc19leHRlbmQ7IiB4bWxuczppPSImbnNfYWk7IiB4bWxuczpncmFwaD0iJm5zX2dyYXBoczsiDQoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4Ig0KCSB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzd2l0Y2g+DQoJPGZvcmVpZ25PYmplY3QgcmVxdWlyZWRFeHRlbnNpb25zPSImbnNfYWk7IiB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4NCgkJPGk6cGdmUmVmICB4bGluazpocmVmPSIjYWRvYmVfaWxsdXN0cmF0b3JfcGdmIj4NCgkJPC9pOnBnZlJlZj4NCgk8L2ZvcmVpZ25PYmplY3Q+DQoJPGcgaTpleHRyYW5lb3VzPSJzZWxmIj4NCgkJPGcgb3BhY2l0eT0iMC43Ij4NCgkJCTxnIG9wYWNpdHk9IjAuNzUiPg0KCQkJCTxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsPSIjRkZGRkZGIiBkPSJNMzksMTF2LTFjMC0xLjQ3LTAuNDgtMi0yLTJIM2MtMS41MywwLTIsMC41Mi0yLDJ2MQ0KCQkJCQljMCwxLjU1LDAuNTIsMiwyLDJoMzRDMzguNSwxMywzOSwxMi41MiwzOSwxMXoiLz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzksMTBWOWMwLTEuNDctMC40OC0yLTItMkgzQzEuNDcsNywxLDcuNTIsMSw5djFjMCwxLjU1LDAuNTIsMiwyLDJoMzQNCgkJCQkJQzM4LjUsMTIsMzksMTEuNTIsMzksMTB6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgkJPGcgb3BhY2l0eT0iMC43Ij4NCgkJCTxnIG9wYWNpdHk9IjAuNzUiPg0KCQkJCTxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsPSIjRkZGRkZGIiBkPSJNMzksMjJ2LTFjMC0xLjQ3LTAuNDgtMi0yLTJIM2MtMS41MywwLTIsMC41Mi0yLDJ2MQ0KCQkJCQljMCwxLjU1LDAuNTIsMiwyLDJoMzRDMzguNSwyNCwzOSwyMy41MiwzOSwyMnoiLz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzksMjF2LTFjMC0xLjQ3LTAuNDgtMi0yLTJIM2MtMS41MywwLTIsMC41Mi0yLDJ2MWMwLDEuNTUsMC41MiwyLDIsMmgzNA0KCQkJCQlDMzguNSwyMywzOSwyMi41MiwzOSwyMXoiLz4NCgkJCTwvZz4NCgkJPC9nPg0KCQk8ZyBvcGFjaXR5PSIwLjciPg0KCQkJPGcgb3BhY2l0eT0iMC43NSI+DQoJCQkJPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiNGRkZGRkYiIGQ9Ik0zOSwzM3YtMWMwLTEuNDcxLTAuNDgtMi0yLTJIM2MtMS41MywwLTIsMC41Mi0yLDJ2MQ0KCQkJCQljMCwxLjU1LDAuNTIsMiwyLDJoMzRDMzguNSwzNSwzOSwzNC41MiwzOSwzM3oiLz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzksMzJ2LTFjMC0xLjQ3MS0wLjQ4LTItMi0ySDNjLTEuNTMsMC0yLDAuNTItMiwydjFjMCwxLjU1LDAuNTIsMiwyLDJoMzQNCgkJCQkJQzM4LjUsMzQsMzksMzMuNTIsMzksMzJ6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgk8L2c+DQo8L3N3aXRjaD4NCjxpOnBnZiAgaWQ9ImFkb2JlX2lsbHVzdHJhdG9yX3BnZiI+DQoJPCFbQ0RBVEFbDQoJZUp6c3ZlbVNKTG1SSnZnRTlnNitQMXFFSEprS0dnQ0RBY1lkV1pId09IbzRRM2FYa094anBXV2tKSmtWVGVaMEhpVlpXZVJ5bjM3MQorMVFWZ0xsN1pFVWVSVksySzFDVkVhNE9nNW5oVU9qeHFlTHYvbzh2Zi9QRjlkZHZmdmZ3UmJxYUQ5UGYvZDNOMjRkbjc5NjgvZm1CCjFNTXZYcjc4N3R0M2IwSDZ5YTkvZWdqcjFTeVZybjlSdjdLSy8venc5dHNYYjE3L25GOWRKZm55SGxmLzVCZmZQdnZkdzh1WEQ0ZGYKUG52OTlicy9QSHY1OFBhbmg1LzhWTDcvN1l0M0x4K2t4aCtldmZyZGQyOS8vL0QyNnRzLy92Nm5mbXRwNi9iWk8vbCsrVm44V1VpSAorUE01SHI3OEZiNSs5dnFQejc3OTlzWC8rNENicFlwN0hkOTg5L3JyRjY5L2Yzenovd2p4OEVYS2g3UWR2aWp5MVg5LzhldUhiOS96Ci9lMmI1OSs5ZW5qOTdzdTNiNTQvZlB2dHpadVhiOTUrKy9QRHpaK2Z2VDc4NnRudjVadG5oLzliM3VETm53N0hsOCtlLzhja2I1Mi8KdW4veDhrRmU4Tld6ZDRjUTBSZlh2d2p4cStOM0wxNSsvUS9mdmZyZGc3ejZ1cEdjdm1LVC8vU3R0Q1hONG0rUXkxZS9lQ1dVM3p5OApleWZQSlRkRWYvNzY3NC9qWXdpUjVTZi85dXVIMzc5ZzkwdTMvSytmV3JOdjMzeno2dG5iLzhDMWh5K1crU0QvMlIxLysvRHFtNWZTCmUzemRPRi9sd3hmOHQvOXA5ZVF0V09lTHVGYnBsYkllMGx3UEtWZjl2dmZOd3g5ZlBQenA1NGQvZVBQNlFUdmcrdTI3MytnUUxNczgKNjcvNnphKy9rekgrcDljdjNzbURyU0J0MmdPL2V2UDF3MHVwMzY2L2YvbU1MODRTK3I5YTRiZlBaRTY4azdGNzgvSzdkNXhaMWU4ZwpQZnpMWjM5K3dEQUZ2Y0UvZnZQdytyZHYvcG5QK0VVTTBrN2NyclpEWE9TTlF0eVdRNmhzUCtKUnQ3bmRNL1IvdFdrMGhHYThmY3lRCkwyV2Mvdkh0aTkrL2VQM3pMMUtWdms1eDFpSDgrN2N2dnU0akdBN1YvcGZHcitydy8rYi82OVBLaTc5NzkvRGFubDdtemMydmhua3cKWC8zcU4zTFh1OWRmMzd4NWhkNy9GaE5jSnNCcm1Sc3YzL3hldjJ0Lzh4dTUvTHR2OUEzNCtTc1pxQy9mdm5pTk5xZC80RGYxcXk5ZgpmaWRmL2YzYk45OTk4NHZYLy81bStva3U3WDkrZUM3clY4Ynk2OE0vL3U1L3l3ZFpuNXliaDkrK2ZmWmNHcERQcmM3VnN4ZmYvUFM5Cnpjbkx2WDA0NkpkeUpULzY3KysvK3ZiaDMyVlY5Y3VWZXZmNmp3OHYzM3d6Tk5zb3dsVU8vL0xzN1RmZjMvU1hMNSs5ZnZiMlFIcHIKK1pjdi9pamZQSk9lNm0xMzJoTWFsVm55alhRT0wyR1ZreHU4cDhMdzFSTnU5T3pkSDRRQlBieisrdHZXdG43Y1A3alN2cis5M3p6SApISHg3T0w3OTd0cy9ISDc3NXMzTDF1eitxOWE2a1VsRi9iK05lM3pKQzE3LzQydnRvUE03V1lYVE93bi8rWnU3aTlSKy9BN3k1ZDl5CjZ6ZlBYcjU4OGZ1M3o3NzV3NHZubDI1dzRmdDJKLzN1UXliV24xLzk3czNMRjkrKzZ2TnBvSHo1N08yN0Y4OWZQdnptejkrK2UzajEKNU1FOTNIMzlRcGpjSTh2NHZYVis4NmRuNzU3LzRaY3ZmdmYyMmRzWEQrOWRmUmlBZjMveCttdVorNy81N3NXN2g5NUJiMTU5QXlubAo4SnMvUFB2bWdhL3g3Zy8zclBtYjFtRCtTbGoveU55LytPSTlYRCtzaCtQcjRmdS9mL3ZzNnhleW9ZalE5ZmR2WG43OThQcndhN0QzCmFmZEp0cTl5T0g0OS9kczBXd2tzeStIdnZqcStuZjdiTkovK2hKTVNoNUtzTEZZeS8vZXk0djlKZm8ybHRGTG5iVmV1aDNLVWNtUGwKZGloMzgvMDAzM3ZaUGRqNEU0ZVNockxzU3RZeThWY0pxNVRDMzNVbzI2NWNoMk1yTjYwY3c2MFUvM1E3eVljN2ttN0QvVmpHcnVQRAorVThheWpLVUhGZVVTWC9GTXBRYU55bjY3L1ZRamxxbS8rdlNXRDQybW1rM25zc3dxbjFzcFV4dGVKZGhrSFZVeDlHdFV2QWJvMXAzCjQ3c05JeXovVGpiVVB0akhOc3o2RzZOOE40NjIvS3MvODhXeGp0TnVvSk9NSzM1alpESEdLMHZsS0plVEViNjJzaDliR1V2OHVtTzUKUFJsRnYybmlHUFl4UTlGQjhpSGJiTEJrZ0NZYkk0elZqWlZibGpzcjl5aStzdkF5NDFnR2p0SmlIVi9ab1VjdWtudjJUZVRMcjN5OQpqYTl5eXljTzlvUXJwNHc4d3NUNzRqNHhwYlNrTlJWUnRyWjBsSEtiN21XMHc1S1daY2xMV2VxeUxkZkxjYmxkN3BaNzZjaVlVMTd5Cm1rdmU4blUrNXB0OGwrOG5lYUFnczNSWjg3cXVkZDNXNi9XNDNxeTM2NzNNaFNEZHNKUmMxbExMVm83bHB0eVdlNWtub2NhNjFGelgKV3VwV3IrdXgzdGE3ZWkvekpVNWIycFpOMnRucXRtM0g3V2E3Mis1bDBvVHJkTDFjNSt2MXVsNXYxOWZYUnlrMzE3ZlhkNXhKVVY1ZwpPZVpqT2RiakpsOGRqemZIdStPOXpLNHdzYmZUelhLVGIrUUJicmFiNjV2anpjM043YzI5VExiQVVWaHU4KzE2S3c5M1cyKzMyK1B0CnplM2Q3ZjNkTE9PUzdwYTc5YTdjMWJ2dFR1NTFkM04zTzkzZDNkMWpSdHhMaDkzbmUzblRlM24yKzJzcGNzdDd1ZkwrNUVmR2NwYlIKYkovdmhuSTdsSnVoSEhmbGVpaWJsMG4rcVVNcFExbDNKUTlsR1VvYWlrekE2VDYyTXJLd3puem44ZEh2eHAvYlhiblJNdkhYY1NqWApROWwycFE2bERHVWRTcDd1Y2l2THJxU2h4S0dFb2N4ajBTNmZyTy9IcHg5L2JvWnkxTUtWdVJ2SC9lanR4OHhIYXo5RSsyR1JvWmlHCjBkZ1B3YjdqOTkxdDNYelN0K3pQcVhYcHZpUDN2YmZ2c1pOKzJuZk5kTklqMmh2WFZqYVdhcVZZV1ZteWxZVWxXWWtUMTU1dG1jcjYKMi9UM045TjcrYytSNWRyS3hsS3R5TnFlNUovVlNyYXlzQ1FyeW5xZDBRc0g5Ykc4NC9nZE9WNlY0NU01SUJpRW1kMSt5MjYrWnE4Vwo5dVBDZmd2c3B6dDJ6SkVkVVNlK2VlYTc0Z1ZudnRBdFgrQ2FqMXo0aEF1ZlNKNURac3VkZE9hTjhLMXI0VjlWK05ncTNHd1JyaGFGCm04K1RUS1E3NmVVYllYclh3djdxZFJGR21JVWhKdGxSZ3V5dzl6TGl0OUlkeCsxYTJHYmRpakRRTEl3MHlSWVVaRCsrbDRsd0s5MTAKRkc2NzFUb0o0MTJGQVM4MUNTc09zbkhmeXd5NWxUNDhsbXRoMWJVVVlkcFptSGNTRmg1a283K1h1WE1ySFhzVUJyOEpveS9DN3JPdwovU1RNUDZ6ekpOUDRUc2I0UmphR2E5a2dxbXdUYTg2eVlTVFpPSUxJRHZjeTNXNWxMSTZ5cVd5eXVaUmxsVzFta2UwbXlxWXp5N3kvCmsxbHhJeHZSdFd4SWRaS2RhVTFaOXFna2UxVVFXZVZlWnVpdERCOTJVV3lyMkdpemJHN1lpRU9jQTdoc0UyaXRGdXA1TGRhVEJhV2IKT3VRMzdQd2JKUU9WRkVSMjRIeDQ1SFpzaGczNDVmMWlpQjJ4TTRiN2dkVXJTOWhrVW1XWlVFRW0wNldwRkcyUDRPNkRIOTJCQXRjbApkcUhNMWVzN2tlMUYySXBrdHhFaGdQZkdmdGMydTFWbVdiMnczYVcyM1dHenU4WU5lWEdUR0pMSm9NV2xCZ29OZHhRYmdna091WWtPCjEyTzNveGNncDgzMzJxUjhvREIzeTQ5WUxicFdmRU5zdXlpLzU1dnpyWFVZcmltVjNLWGR5RklrREUzb1VRbFBCUitWNUc0b2lOOUoKMDhHRWJIMGRsNXBOU3FaYXdhYThvZDRNRzJGdjZNVVhlMElmZVJ3b0hhU2RzRUJKSWNuSUY1a0JSODZGRStuQXV5TGJCdUFjWitRNQpmYXAwdmpOeUh2SWU3ZUlMN0dqUGpiNlBGMm5YbjZ6R1QxNk14eWIrZXVtS1ROMnBPTVhVSGkxNXB4bVp0alRaSC82akF2bE9SOTJyCllMN0hOQVd0U2Zvc3gybW4yTjFRZ25hbEFMKzNrMUpQU2xjaTlhOTFjald6bGVXc3BMTVNMeFQ3bVhhYTdwbENoeFUzQ21udDkrM0YKSW54aWFwcjJqU2xqUjlYT0xwYnQwVkpkNzVzR0pWL0wrc1RTVmNvOGxtbi9zUmtiK3QvbkpUMVNPQ21tT1Q2eFhPcmdDMlY2WXNVbgovMXpTM1QvcDU3TTE2UHRpYUQycU1xcUwyYmRXVk1KeW80UWJLYXJwd203RXNKVSttZHJzeTl2TkluMzZuNjVtbDFCOTlZNEw5cWpyCjJGWDY4OVZhbWdsZ3RaS2JnYURiaHRLNFFLZnZYNW55VnpOTGRQUFV5WEwwQlhrN0RVYXQwY2gxdkxnY2p6dlQyUG1DTkdQSzZmcXMKT3l0YnQ4NjRoZWJTRW0yZnA3T1ZlYm9JenhmbGU4dDBaakM4dEZMZnQzNVBsdWMwMkNBL2VRMi9ieDMvOVpmZFoyL3drb2c2YWovbgorby9LSStmNmowc2hNM1RvTzBvYm0ybCtxOGtic1drLzk0UEVVWFlTUnh3MG9CdlJnYWdCVGFJQ1FRbFNGUWhLMEV3TlNIV2dHeHAvClZBK3FUUTlLcGdkQkU3b1JMZWhJUGFqU2xMUk1WSVVDRjhjOXRlSmIzRUd1cjZJSnFTNEViU2lxTmtSOTZOYjBvU1Axb1VwOUNCb1IKT0ZlWVRDbTZwNFlMdFVnVkk2aEdsYW9SbEtPRnlsSGdVcnFuaG5SRERRazZFclNrSW5kRlZWR0VKbEdVRXRsaG9Hbm1qdXJTcmFoTApVSmlnTWtGcGd0cFVsa3pGQ2FwVElxZWFxVDdkbTJKOTFES0ozQWJKRGJKYm9meTJvbjdDVDZEODFMazRaRm9kaXk2bHFXUldxVUNoCkxGUGoxR2RTMXlCanVTVlZmNDhNZUJTUktBOU5neEMwWTZwbmpITW51ZXg0NUk0alRqdVpCT1dFdDExa2ErK1JJTTRsaHFleGlVZloKeCtkY3g2WXRhaG5OVk9QUDNpdzNtQnIzdGpEZlZ5ZjdJKzVLMnBXOTJTMmZsSFZYeXJRejVaV2RrYTlTVWRxWDY1TnlQQzFUczNsNQp1VDByNXovMzU4WG4yRFR1MVBmaFFva1hTN3BZekpKM1h2SWpaWDIwTkZ2dXREUHNGcHFiMzFlMjd5blgwODZjZkxrY24xakkzS2VkCjVmcDk1ZlpwWmJwQXZEU0lUeTdUbzE5OTVNLzVKdnF4RFpuaFptN3FaelNQaFpiRmlwb3ozYnhackxqMWM3Tml0dEhKVEtYKzQ3eWgKTHhzZkQrZXNyaUs3Sk85V1dyWFpMaE9OUmxyV1Z0ek1XMXZackZ5M2NyekFvK1JuT21OUWwxaFROOTFmNWtZREg1b2VZVUtQY1ovSAp1TTdBYVk2MDRUek9hOTdEWTNaTXhSakw5RjZlY29HVGZCOExtZDdQTjU3QU1rNVl3elJ5aVk5bURjTjZmNHd4UEpFTm5LLzh4OWZ4Cis4dGZhQjEva0ExMVowVVZrZTFHaloxMHdrTE9Tc3N5aWFTM0RyN1lvM0FDOWNmTzVwR0ZUemJUSzF0Rm9IVFA3QzE4czdLNXFITTIKVVJTRmc3Wk1sRS9kU3dzLzdSMDl0ZXFyVFpBdTZhL0ZEM3kyMXhTQTRiZkZBbExmTGJ5M0VDenB3WjNveEsyUXRPbklQUW8zdW0zdQozRm5FUDBpUzhPa3U4bmlRa0F2RjhrMUU5R3Y2ZDIrRVg5eVpsM2UrRHBQSThaSHlQTnk5Y1BpdTE0V1Mvalk0ZnVuNmxZTHBDRUV3CjBNQ1k2QWFHSXhnQ2VhRTd1RTdIalQ1aDlRcmZrQmRoYWQvVFB6dzNsdXZNMXRtc3M5Zk9WbzJqVG8yVmRoYnFyTE16emM0ck80L3MKdkhIa2lMZFQ0NE1qLyt0OGI4L3JSaFkzc3JXQm1VMERIOXV6cmhObWRVSHlPZWRIZzB4eldXNTVqTXVjaUIxam1kN0hOYjZYVFR4eApnLy9ZZFd5RzYzK2JSbEJ4T0VUNWF6M1UrV3FSNVhJbzZVb1dTRVRWMzB4Lzk5VlRxaDYvUFcveEtrdkZQQjlxdUJJOWNIMjB1ZE42CmFPc3FyR1ZiZ253Wm9OMUdSeW5uV3VNaWY1UWM3ZXNZOHJvZFVFRWJpVmRwemt1NzJTYzN4S2VaUlRQTnE5U2FaWkd2dUU2VWExRysKMmRhMjVIa2pkbHFZNHBMbGo0amZZV2dyWGMzQ1Z2cERmYWIyOU5uV1dSZ3Eyc3Boem9YWFZXSEUycGFvaUZYYmo4SlIwWmFNVzk1MgpiZVY1M29abit6enRmZndveG5KVlU5clFVczFsKzhTaFBHM3R3a3kxSjkrMksrSG5qMDNUZlNWcDVYamJJSTZPVkx3TVh2ekh0OC8vCjhPTHJuMDcrQjREOURiSjR0YTVCOWttTVk0cWxyQVF3eXVKaTkrSnJqUHh1MmRvVkI3OUM0eERzaW9OZFljdFVIbGlVOWVHVlB1SmkKN2JDblhvaHVXdGFybERDOVArTEcrK3MvcEp0Lzh4OS9sajdHdjNMaG9oMzgzM3ovdWJkZEo5cCtrODJmV1d4M3ViWU41WFowUE50bQpzUmdXU25ZRFNrS3lGd1REZVMwVUVZRDBPbEkwdUtkVlNFV0NsY0xBTmNXQU8rNFNBSHBoMzljOS81cld2dHRUWUtPQ0dOMGpwUFp0Ck5aTmpMNTROQUtvdVhVZHcwaXZjUUhINU1hemtwWi9IMGJDajhUcWJVWVpXUWtWT0VEdlIwQk9uaHNKaUtBckZVUT09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJR0pLQ3BzSTdBMVBjWkhYcnZoOGVNcUJEbm9RTkdYMnpUUkFLQmgwWXdRTWRQbkNqMHM0QUlWaWFkTE01ak9CV3h3bGlyQ0VKSWIxVwpSeEZTWmxVTVlhV2NDdmtVMG1tV2ZvQkllaU9UYmFZWW1nMHdlRnZVUDQ1dU5keEZSMTdzZ0J0bU81eWIxL09HMWtFMUJ4WXoreTNtCk1RaG1DSDh5WU9aSmFCa0ZCSFR6dHpyY28yS2JETk4wMjNCTTE0WmVjbk40TnBpU3dwTm1Da1YzT3kvNkFCUnRVRkUxbjZvL1BEV3QKSWxPeldLbGRGR29ZbGRiZ2Erb1pSeG9XYmllS2xmZFVPTHJLb2VoUGpKdnFIYXA1ZE4yRDJvZmhRUlVSQ3YwREdzZzZVUW1wVkVKYwpEYm5kcVNJbnlvanBJaGg2UjQxU0gzR05aRHBSU1RBbk5nT1MzbENxdm10dzBraUZ4RUdsbzBaeVE0M2tEZ0xwWkFwSkdoU1NZc3JJCmtjcklMWlVSQlp4MlBXUVo5QkRvSUUwTG1Xamo2R3JJdVNLU1RSR2hLdEwwa0NOMUVXb2l5b2NNY0dmNDV3R2tTRS9oK2Q5MzdlODkKMWF6bWs4R281WVA1SXUrNlY5TC9Hbjgza1BVSXFsZUR2RUdzUTdQUXA0YXc3Ny9UN3ZkaTdOZmgyTG5oN3RYNEwxeHgyaUh2SFg5Zgo3Ri8xR3VpLzZzenQvMTd2ZkF5M0J0VTIvRDJCUDNBVUQxanRqdFJPNXNKWURhdTltaTlhUFIwZFZFOC95RFRncy91UzYwc3RFUkJ6CnVzdzRZd2lja2RYLy9qMW05QkdjK2dzZTh5Nll0M0owTVlUbWxoZ2RGT2NPMFhPZjZ1SmVqbE5IN1BtbjhmZnAzeU10ZThSQUR3MVoKSHNWdVBJN3NTTHUvMHpSOFdFNWNOcU1qNTdMUHVuL2ZQTmpUbWE5SCs2NjdsSHV2OWg3dWc5QTlNRHRrNnZFQ01yVVlLTFhEVVIySQphaEJVNWZUYzRXV1BuOGdicnJuUjYxWmZhTXpJNUNmSnRuemQ5UGN1MGV2bUVpMWtWdVlXblNnRmROL29MUjlPdHozZCtIenJhNXRmCjIvNThBeVJtbEp1Z2JJT1Q3WVBqVGpqdWhTTjJkSThlM2VOSEc0SjBVc0hIUEtTbkdOTEhVS1R2d1pGT0EzVHRvOEJyUWJueU9WcDgKS044UEdPK1diN09GVHcwbmZZNlVMczJvdmtkTEQzaHBLd05jZWpwRFROL3VFTk9QejhwcS9vTjFQemVuQVMwOVlxWG5ObEh2emE2awpiNmJ0SDl1YzFWbTdjYS9qM0oxcytxN2NDdnNrVGdZSlZGNnVybHlmMEhmV1hUZURyMThudDVUSlpuaXhXYjVTV2FDSW9xeVhIRnczCkN2VUw2N1MvNDlUbjVGY014Q1VuM1dsSXhHbTU3QW1NcDhiOXM2Q0ppOEVUZXp6L1dTREZkQjVOY1FMM3Z4eFVjUjVZWVhFQTA4WG8KaW5MaXNWMVAvTG1QQjFtazZkRTRpL0NlbGZQWXVwR1ZNMTFjUE1mQm1kVFh6N2lHaHBXMHM5NWRiU0prcGt6RkdlSTdyQjdDS0NwMAo2amtJczhxMGpZZ1dYVmVvMTNtTElaZWRHVU5xZHhQZjUycVBWcCs2cmx1Z2RyK0pJRnpOa0NJZm02VkdMVnpkWnJSZWlmeFUrOU44CmRBdThmMW1Tc0Q3WXBsSVIxbS9YaGxCRTdzY2I0aSs4YWwyRVp3NHZrVmU1TkhSRDVTYzNwRGF3T3FmRWZzeHBxelQ2eVQ1YlUwKzcKVUhBOWpHdmF1OWJNZHBYelBCcFJQcjJsRHpLbmZQZnExY05iV0ZUMER4ckJ6R28xU0g0dWtJMVMxUmhHV1Jwa3o3Rit4eFlFZStlaQp1NEtBSWRHNmVKMmJERjJhcE53akdUMFVkUlNGZTlncDFiMXBpRnFzRGFYWkEwb1YwYW40enNkMXpreXRrNEx3TkVqQ3FuSnVnMFI4CnRLM3N6alZQMFQySlhqSUFLTnVoOW9rTm5YcmlSTUJUSWZ4SkZWRlhSbysrUHhwdmNnK0ZDbnZSY05lbURHZHJOZWVKMmlxaFhMUkQKVkZOWnRkZ3U1Y0ZEdVczR3piUHNJS0tHSVowYVdEMjFrbHZwUDZXVjJzcDFLOGRlcHZWbUtOM2J2bmU1akRET3NDdHBLT3k3cVN5dAo1RjA1LzZrblpidFFycWR5ZlZadUhpbTM3eW5OYlRSZDlsbFR1Zi9Rd29rODFmZzV5bmtNYm8vQ0xTME85OWhYYWRqSGsxUXV5bU9QCkpzWlNuRXdkM2NXa2NKbmREL3BsZHcxdkZnZHpPMWhxRmw4ZnNNOU10aVp1NkIyY1c3QnV0bkRkU25QYnRVM25POXBpTUlFVHpZN1oKNWlZc01VZk94RnZNUUhjTFI4Nmo3aEsrcGt2WXhvOVl5VUJ0SU5FKzVyYVhTbU12YkM4UU9HaDNtYzN1a21sMVVSZncxaHpBdDJiOQpCUU9NRk9LNjFRWGkzdGJzTHZUOVR0L2ovdTBPNEcyd3Vkd3dLaGdHenp2REVUYmY3M1RpL0YwcEczZUVqVHVCVmVMdFVKb09vZW5nCkdZN1ZkT0lFWG5kUW1lME1LTE56Q0EvSW1JYUpVVzFrRDRKeHNld1U2M0tPY1RuSDA5MU1GMUF0RjlFc285eDZqbXJwWmJvZ0dWOUUKeUQwQklMZGNSdEk5aHFKN2I2R21Ic2FZWFkvVzlTaGRqOC90c2JuK0RGM3FONUYrRU5vcG91K2piM3NjczB2V1hZcnVnYlpOUUI0RQo0bHNGUmUwRGE3dVlleDVPMjFYREU3VncxQWVuQytyZ1pSUEZtU3A0b2dlYUpqaGRVQVgzeXVCZUhkd3JoTlZNb2FWdGRubHFhbUZYCkRWMDVqQzN0eGp5b2lQZURvbmpYRklNV0ZUejVqYS83ejlaS2JhWHZYWDBienEwc3ZVeW1WM2J0TWc0NlpoaDF6VUhqN0dYVXhEaWUKMDZERDNPeks4YXhjbjVSTFAzVWlPOTJYaXpzM1RUMlBseVlHVGYzUGs3SjhjT0VPTm0zcGM1UVBqOVorZjd3MlF5U25reGpKODVqdApmYVRrUG01N2pOdzI1OXpVREhhanNlN09wbWszMU8zTWRPcXJhOTQ2OTlkZCsvZ1dHeC90MEhnU3kzRFRQRlhiU1VSRDZyWTZzOWJkCmxkdUpLLzdJNmIrWkE2dFFPSFhYcFJydXV2Tnk3Nzdza1E2RnNtMmVMTnhCdlpoeEYvSndSMzYxRDN6WUtKU1VadURMSnA2M0dJZ0oKMWo3YSsrNXRrN3VsM2UvR09NVVlFcUZCRVNvT2VXaUVCa2VvV2tFM3hOU2lKTzVOLzFEdXFVenVTR3ZodFZrTVBYQmlESjFZVFpNdwpKU1dsaWJxUGg2U0dDN0Z4ajBYSGVaekZQaUoybTB6OTJnWUI5TEdnMkY2V1N3R3lIaVo3L25NZXgvWlkrTlFGSVB4MFJycjdtUEkrCmhCWEJLSFVIaXJqOHZRRXU4bHhGdVNQbVJnVGF6UUFUR2JhSDBLMFF6ZVp3Z3ZQNGlLcy94RHJ3VDY5ZlAzdjE4UFhoOTBZNmhKOU8KbDRnZDYzSWg0MDl1dXNhUTlTYzhIcmV1NGUvM0hyMCtHUXoxRklLNkQrTGZnMC9WQjZ6KzMrc2Q1bFRVaXFrQlRyZTllNnViT0pZegpKY2tmM0lQdSsrT2Z2c0J4MGpjd284VlRzeEc4QjBrNzlmZDUrZ01mN1lGN2pvQ3h0M2Y5UFZtSGg5M2pqcHJkWThrVExnTi8wOVM3CnZ5Y08ra0VTbEh5bTlDVFg5MU5QVC9LRFpsVDU4WUgxZ1FjYmQxcEtucEdJTmhhMU9rTVhMelREWHFuaDZjSWZGeG5pWjJoS3VLT20KM3lXbE5iMmpmUm9IbmVlTFBGVEkwblRlY2RGbzREQ3M1eHZDR3hLeEJ4dlhMVGhNSWhaZ282WHpUaGFvbWwwcWw2UkNtRFFWMnZYVQpFRXlSN0svUVZuZzdKRDl6QkpNRDZudnFzMkl3ZW9Mb0hhMHlOYmpLSHFwaVFKVWRjRDZieldRUG5COHRKM2ZiL2RUTUp3cGNpYWF2CkxHWkljU2o5YWtxUHEwRmR0L0FmVTU4bXM3VW8xdjdXZ0M1ajZRRWh1NUQxbml0eFg2YW0xZldTTHBibGtaTDNaVG9ockU4cTVmRXkKUGZwVi9iZ3lmVURsQzhyZmVabWVWdTNwNWNjR0wxUm9Vb0pMWVd2aklpcDdSVW9DWlpkck1SSmRWTGpwcXpHM0MxazFYVStheTZqSgpWOWpleCt5S2lRYmIxZUJ6RnNQVFFITWRNTmRDZDZhR2xmUEluWDNjVG1NNUFNbWRSZTRvVUc1dHhscmhQNVBOeEJ0enFONVpFTWRzCmNUekIxQk9IenVVV3orUEZiUS82Y3owWlovRis3WFlPdDM1MHcwaVBFdW1HbEhCYXBqRi8wTTRxazNiYzdyemtzMEplT0EyMm45TnkKd2NmeFNPazJwVHFOSDU1VXppdzgreko5WDRVUExVOXQ4TWsvMDlPci9xZHA4REVPQXAzaXp1RHBtVnJFdGZxR1dxNngxWlFHVDlJSwovbUVxMmdTaGhCN1QyREswUWplN2I3anF2TXZPcXE0ZWg5eU9icDZMSE1SNWlFTnRMMFQvWGVRaXprY0tzZ29xTTduZWNSSTFpSi95CmtzNVBvcGxjT2xmSlpvOHMwOEJZL0tmUDBUMWYyU0ZEVGdFd3ptR21NeWJ6R0xPSmo1UVRqak05a1FGOUh6dHFaWHJmbHg5UjNzdmoKUHFyODJPQmZvTUVQaVU1NThzLzdHdHpqaHRPWldhVHM3RGhtdzVtYVZXU1hPWEVNczZIZFJzMGdMaFc1ZTNzMTB4TUJJU29ZVFJaNwpVTGxPWUhlNmI5TFJRbHZ4Nk1xK3AzU1VMSUtra0dsQXhpZGFRckVRRTUzWGluUUFLNEhkVzEya3dBb2t1cTJ6Z1IzQVp0UWpCdGVwCnNxclVmTlpaZWRGa2JPakdRcGJnVzUzTmJhM0ZGN21QcGZNcmQwdDFNQnVWcDRrYVZOZVRSa1ZvMUc3MkNzbXAwRHI4S0lMNDlrSTUKejZhaW51RDV2U1ZPTi9ISlpYbEttWjVXN1daOWFwbWVYdlUvVFlOdTFybzlTejU3bERsYjdySXNPbVJqdmJYRVhTc1RkczFNMVhXawpqV3FsZlNwWWFxNmp6REs2dG1DVWdra0s5aWc0cytESVVpZVdnc3h2bVg1TG9lWFo4MjdSVTlYU0Q5ZmkwVlJUQTVFL0pmWHdhZkxoCmxuNjRZOGNuOHpLNWg4bTlTOGtnNUtFNWxXNEhJUG4xa0YycnU1SG9RcHJNZytUdW83M3J5QjFIM1duVVhVYWp3eWgxYjlFME9vdDIKanFKVE45R3BrK2dSLzlCMDRpQjZ6RDIwY3c2OXp6TTBQZVlZdXVRVWVvSWZpTEU1VHkwM1R5blQwNm85WW9tNlVLYW5WLzFQMCtDUApIT1JIRHZJakIvbmJYWjkvK3czK3lFRis1Q0EvY3BDLzNmWDV0OTlnOTNWZlBMbnU2VVM0eWt0Y2F0am91bDYyd29RcVdlWVlLS1ZrCmRYMkhHZEZURi83Z24rc0ZyL2xuYmRVYzZNZ3NFOUloaDZ0WmVOam9Sai81eHV2TFBlV0xOVndoYnYrUWxxczE5UHhPNzZteHY3NUkKcXptdU9GTTR4YTFjdVA2MFJydStsQXMrLzVIOGlXNy9lTm50SCtIMlQrNzJiOW5FN2s2Z3liY25FT1ZIQzNlczY5dXpjdk5oUlpzNQpoU0hqNTMwK2x6UHZrRVloZDZESmJIRHgyNFlUUHo5NnFaN0gyYmd4Y1R4R3JneWdzdkhreGZIVXhaUHlOOWRNVDJKejB6TDdkVHVYCnpRVWRpdjM0N01aV0sxeENRaGdXd3ZPNnRPTnk3SlNhZGk2UHAvRG9TV2Zxa0c3R2s4MThhb1dSa2FXMUtxY3BLZU1ZYk9FOTg4SmMKYVhVSmlYblI1cnhzYzd6d3gyWHN6K2RyVXFOTDh4d0RXeE5aU1p1Rml4eFF5em1zaTZFNkRjK1poSWZXaXV2NzQzemM5WHJ2ei9JcQpuNzF2UHBFRlhtU0E4Y094bzNlR1o3eHc0bEhEalJxTWNYTFk1ZmZoSnNzWmJ2SVMyUE1FcmFwN1AwN2JmRS9ybDkvaU1vaDA5ejZUCnY5TEhRQ2kvRjk0blBOWGpCVDUzVEFMdk1IbEV3dnRhL3dCNDRyNzlGdkd3NXlwMWdPbnRlTVBwRno4NHlpOWRtdXRwTjljTlp4WlAKTXI2T1NaWjBTN2hyYVY1N2t0YzhISSttR2M2T0U3TmtNNlJ2Q09mcnFWelhsc0wxMnVMMGRON1NQYVh4eHBFcVhxYTZWd3pLczlGWgpkYlJnNGp0enlYZFlUeHJpaE9IQXF0T3F3Y0F3NFNQbTk4N2llNVBoQ1RNZFdXTWNwbWRJd3l4djJWMU84N3VNR1Y0aW5lOHpYZktlCjVXWE04eklFa0V5UFJaQzBzekU4Z0tSNkFNbm5ndE5lWG0xUGg5T2V6TzBQelpXd1h3QWZjelgzSXJsdW5wSDlJSVdRbU5CUnJ4UnUKdGRaMXpKazUzTzVETHZxMGRWWXZMclM2U3c3Wk1xQjVEclF4RzdQRFJVMnE0dUNmWlg1MitHb0hjalFJcTE1dzExQ3Y4d0FONlpmNgp4ZkxEQzNaNUJHL01FNXk0Z0k3bSswMjJVdlFPajV4RGVUbDcwRi9pZ2k2Nm9oL0cyTWpUYkRtWDh1V0VDL2x5TEZmTzFBTE1YS1B3CkVFY1BhOVFkYTFmbEF4THFXRURqN1k3VENLK1o3TGdkanpMMFdMWFlZOVgwdnYwZStlS2Q0bnRTOTdTN2RjNDJuY1RGUlp0QWMyTncKT2o2MEpFWmhEWGM4WkdqajZVTHBHS1FQYjVrM2M1V25pSEpQbkI2MDBXeVlwSWs3Sm4vTXdnSm4yZ2MzbVZSWkpsZVllUFRQVVdaYwpFZmFkWkduZU04cnRta2Y2WURMb0FaR1hKYXNubks3NS9jRWhsaFArTkNQODhwL3d2bTA1RGFrY1cxNzVob3QzL05aajdHelAwQWg0Cm4zWnBCanEyZllTdmorRDBFV1BlY04zSzVOSU9kSHNoWC81NytPWXA1MFFXcTQ3OUg0RC9sNkgvYTN2VnNvT2RLZz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJVUhISW5abDNHUno2OHozR29FOVpkTVA5NmhDTVdMd091K3Z3dXZNUWhRN05aU2JaUElLRVRuTEtFaDMweUU2UXovWUNRSC91Sm1KKwpNckUrTjhUNEpPSjZBT2U1STRSbklXQUhJQjFnY2hKeE54dmhOSURKQU4raVR6YWVmZnhwUngvclVhdlRwNXkxNmljUy8vaGtIL1ZrCmc1aTR5dFNQVlBERHZGSEJYK2Q1Z2NSM0pjc2paUVpIYVI2cjh6OTZucThxa3R1UXkvOHpONnVDNVRKSDVnVFBhd2pNUUNiZEoxMUwKcWJHbzhTUWgxWHU4OEVkcmNvMVhtNmpRdzVOKzFtYlZIUE5wOW5Gdk1seGg4LzFzWnZlVFpyVlBaeVFleFRzTFYrR0w1VENuamFNegpyMVZmbnNuOUwveHhVWkQvVEExK2twQy9YSkx4bDUzZG5HbVRrTDJuV3BMMmV5Wm9kK2FJOU96M2xwZ0g3Rm1USU9zZWVXZWJZaklsCkhOdmVOcG4rZmR2MDczRGpCNU12N1hnVnp5L2VEbFlaejFVWkRxV1NoVHp0VDZNNk9ZaHFmd2pWaUFQZkgwQTFIRVUxcGhwOC81bDUKVHl2MzA0Y2RhZlQ5NWEvZm9OcmxOQlh2UHY0Sk5qZFkydlNjZEpYeVhNSTd0a1JXaVZuaENwTWkzOWdHem1oczNjRWh6MW5TcXBaUApmTEhzYkc0NHVlRXVjVzlJMzBpVHlkTFNxUkh2T3pWemlhWkFtaTF0VmFUQkJJNXdUN3hXTGNkWmoxanFnTnJCWFhLU2pPejByRy9tCnU3cGM4c1d5VEhXNVdOYVBMZFBIWC9xWkd0U3AwYk91ZVNvNlQ3V3Y1MjE2WXNOaS8yOEQzVk0xdzhDYlBNdHpwTHRqVE1vOC9vdmYKWTVMcmVVaDNQUUxabjRSMy82aWZIeHQ4d2dWMkNNWXNxL0ZHQkhtY2hvdHpjR2VlZm52a3FiY1E5Q0tGUEloNEVQQWczaTA4em5ibQpRYmFRN0VhNWpvaVZ4OFM2UWJCcm90MnRJUyt1TFl1OG56M3J4MFdrYVRqRTIxUGo5NHo2NHltejQ0bmIyOW1VYnhraDkrZlZ2LzlVCitpY2RXdjE5eDh2LzhHUDUyUnRVVTh5Tm5RT2RhWklad1YzVjBoNW8wb09XOGVEOWg1cE03UUNQZFc5MDJsbTRqME9DSkxkd2U1S2sKMGNnZDZqeVpwZnZlOHVuZG1yMzd4bXpleHhiNzZSdEpUNWpaZjRhTW45TkozczNscktSSFNyeGNwa2UrQ0I5YnBvKy85RE0xcUZpSAo3aE1ZdlFMdUZ3aG5DQWpIUDR3SGovZmNlQ0kzeGwxYXZKNGsvU2taOGZZNThaajV5ME5YVWl0ajlNc2UrWFVTU0hQeHNNeTc2YkdvCm5EUHN5dFBLemZUOUlKY1BLMy85QmtjRDMxOWRLdjRoR255dmJqRTk4c1hsUXdmT3M2ZVBXZFNwRlUwWGp5Qll6N0pMN2pOTWhyT0YKNU12b09Oa2EybXp0ck9hTlczYkhHZGtCRnhkUzNJUVRiczhrLzJEM2lSYjVld1B6cWswK3lXNStMNDk5SkNkZmhYZkhxdnZLWDEwcQovcFFHTDZzSXl5TTZoV2tjMDVrS2NxYXNuR1JVSG1GaFhmdHBHdEhVMGtENzNxVlpwSFYzVVhsSGM4M2VHQmo2U0Myc1dDTEFoYUplCnBLQUZoTUx0UktudnhwTCtGUU5DTThXZlpmYURpVStCenpEd3didzNFOTE4STFxanluOXExVlBoN3pnMXVZOFNuOGw1a084ZzFVR00KZy9CMlRWMERjbGo2aTBmUy90amcyYzllUDdOQTQ2bDk4TE4zNG9uQ3QxY0VIUlNVMmxFK2UwMXptd1pWczU2b21tV25wRm94VmVVVApPK2JzNXkvUzRQdFZnOGVPSzdReVhUd1M2dlJNcDFHZGFWck9XUzlTSzVvTXVUa2VYbkF6NERidkcyQXJ0R1I2eVE0Rlc0ZVVlcFlEClVKUHF1UmR4OUNPK3o1TjRudEN3cHpQa1FRSmI4eHJ0ODNqZE1OTk9wR1VKU2ZsNURxR2VZdm5YbG9vL3BjRkhkSWRIaW1rYzA1a0sKY3E2czdKV1pRYys1ZEpEQTFNOE5zSEswckNMOWVJQzdJYi9JM0hLTXZDZkx5R1BlMDlGMzZtZU5iK1l4N1FmN1JUdGNYQS8wdTU1MgpwdXhvaHV4S3Y5OE43ZGVCbnI4c0R3eDd0VUpLL3VwUzhRL1I0SHQxaSttUkx4NVhZTzR1NlR4ZEk1cUdMUHk5akFwVlY3TThKMERYCnhWWnpJNVNlcG44eUphNGYxMzQwUmU4OFkvOTRZbnNIK2EzbVNqRG53ZVJZdjdQemNmVWs5blYzTnU3TjNlMEo2cXdJUndJK1ROZ1cKVHU1dHVERjM4VUhEejlsY1BhVmU0YURmUTFtdVFpNkRVKzdUbXFGcks4OXhJNDU2RG5IbGNUekNNMFBXM0k1TDJtSWdtaG40NnRHWApGOUpoS1ZmQ2x2dkRmSEpMZXZyUkI3MVNMWWU0WEpYZGMzeDBDNS9rVE11WG5HbDVoMHk5aUhzNTNhK2VuQXgyV1U0Uk1LY1ltRENjCnc0cjhUME9XV3o4bzBrOGc4bi83QVlmNzR5RzdpSlZPUDA4NzBXQTgyZkZVU0lEQUpjSldPN2ZYTVp3ZkR1RTBkZkVrSCtwMDNCOTUKM0pPcFAyWWZKQ0oxUEwvaGZqaG83ZndBaDIwNEpHMS9oTVBTam5DSTA2T25PSFFOL0hvd1QwSFlEUHU4clpFbmlNMnhsdUtuWnEyegpMS0RJdUFJZUdCOGV6ZFQ2NFJmck9WdXlKT2gybGpteHhHSlhWbzlaMkJUSGVobVcraEhYZnRwYXV3Z0R6ei9pd0gvRWdmK0lBLytzCk9QQjF1N1RTaEhvV1hSU2VFRjMwZUc1NjArZytzMG1tN1RSUG5HMVBTT0h0azdjZkYzUnI1Nno2a1VIOTBLRGFEZzFhaDhPTCtvR2gKT0JucGhQZC9NQ2ZkemNLUHVsclBTemc3UzJFMzRSNzcvcFBtVnJrb01wWDh2c2kxUjZPKzNuUHl3UTUzZkRta3JNc3U2NldwT3pUdgpGb3E4QzFoN05FNnROMWhQWXRST1R3NDRlOXJMNFdtUFQ5N0htZVZ1Q2ovT2ZaL0tmOSt6S3A3RzBwK1VKLy8weE5ZZ214SzFDNW16CkVOWkJtZGR0c3lsdWJMYk45ZE16UlUvV3lTZTM5YmtqM2Y3bER5L2VQZnpYdy9IbHMrZi9JY3RpOS9FdmNRckl1ZG5zSTg4Qm1jNFMKem5xNmFrODNPNmFhdlczSENlNXpWWHVPMlJ1Z3J1NHN2V3djOE9oN3JQemo2ZkhINVBqSGpvLy9GUGovelpEeG52ai82ZU1EQUt5MApGSkNlcVBIVTdISmlOZmtoejFjNXM2eCs5QWtyazZxcGo4d1V6OTJaN1NoS25TdzlQN0dMd0QxSHNZaStHME1BWFBpOXN3TlBuNURuCi9DUS9zVmtOMzJjeGZGcTh4ZmxoQ3g4YmNiRlBMZEFQV3poTklYRjdJVW5CazZiQ1I1eGNNMyt1czJ1bUN4TmhGNnBELzk4NEVjWXoKU1gwYURNbXEzemNWdmk5aDlUNWR0Wm1ScC9wcEFTNm5rK0oyK3ZnUWwyR0tEQk5sZXVSWWpuMDZpczhuUFpzTS9aZHI4SkpuNnRMQgoyR1hQM2FZTHpPMkNmbkV4OC9BKzc3QUZGRTJmR0ZGVU5LYW9oeFJOSHg5VFpKNkZveG9mYUhaSXQ4c2thMk9mZHVUdVF1S1JIK3JvCm9vOHgxVjA4dkdqNkVHTmR3L0k1a3M4VHQ5MzIxRzJUbVNXWXZhMGxiN3Q5VXZxMmZmSTJpMGFhUGkwY1NhTjZEYlhLZUtUcDR3T1MKaUZnRm5tRTFwQ3BBcXJLYzdrL1N3NVFMR1dSK25Bby9Ub1VmcDhLUFUrR3h0RkVma0ZUcExEL1VoMS83UTVtY2hQRFZQN3g1L2VYYgpGNi9mdlhqOSt5KytHSFR0OFl2cEg3N0JOMG0vK2ZMWnUzY1BiMStMRW43OThzL2ZmdnRNMUcvNzQ3QnRWOXVhRm5oT2wzVk5oN2dzClY3S055eDlodlpLNXRQSkpyL252di81SmZuM0hQOTNuK0s5LzVzZi9JWC8rYnlIK1NWNys4S3ZEdi8yditmQzFYdkpyK2VYMzhDWVAKcjRSNGRxUERMMGVxUDg4dmgrc3YwWFpYdjViL2YzYjk5dDN0aStmdlhyeDUvZXp0bnc4L3A4bmlaOGMzYjE3SzIvL0NldUtydTY5Zgp2SHZ6OXF2anMrZi9JYjMxMVc5ZnZIejQ2dGNQejkvOTlQQmY1WUwvVS82M1YvMHYzN0dCVzc3TlAzSTZSQndWcURiSUVETW54aUlUCm9sclNQenRBdGZwWmdjdFc1N1FkL3ZVWkc5cDFYQXJoYWs2cmpIdTlTaUxaYThmSXEwVVJ1QTU1dTFwRnBEcklpcitTcHZJaEZ4elcKS3U5Y3BYcU42WkR6VlpDMWRYaU95MnEra3NWYkR6bGVyUWdCRmNuL2FwRlZkVmkyS3hINmNYYnNlaFZrQVI2V2RDVnJMZHBsMjlVcwpYT0dRNU12Q3hvdmVMZGFySEdIUXIvTlYzamFab3VVcXdmakt5OHB5SlNxSTFGb1JtQ3QzVytVdTg3SWVVdFJuQWlIbHVoMlN2SVpJCnQzcVpFRU9vNVNERFhJT00vVnF1SUcvQ1A3NGhTbFMwSUJuT1hFQ0lxZHFycmZNVmxKTERzbDdoN0o5RGxLNEpzaFlQUzdoS290OGMKV28yVXJ4YS9LRnlKb0xxMng0NXJScTQwVFptRzVHVHJlcldFYlRtRUxFTXFnNkJYclZkYlNPc0JOd2gxNHdOSmk5SldYWEFlYms1WAp4Z1NFeWZoRjhqYnNzaS9DbGJBb2RIV3FWM091NGJCSUh3cjdFNEk4QmVaRElEdkplcDMwT1NDZWgxRHNOUlpoS1J1ZVdVWWNuU3VmCkY0VERZcnczRzdDRW1TLzlLYS9LMFVRclhCWnl6N3pLZTZaRngydkpWL0trTmw0cFhNbmZNb2RXNmRjZzd5V1hWMUVuRHVzaTQ1YmwKbGt1VW0waTdxOXhNaGxZdmt5a1hwT01PWlVXMGRtVW5DbmRlY0puc1NFS1FSWmx5a0haV21XV2h0RWtscTJSRlc0ajZQYVJaWG1pVApjYStMakxNTWsweDh6bUNaa3NMdmRjVGtzYTdXV2ZwY1ppQ2NUREtWY0RONXN5cFhaNWxUU1dZYnAzU0pPdXQ0bVF5d0tEYVJrZGRGCk9pQ2g5K1JlOHV4elR2Rnd0c3B3MWI5elFkOXl5Q3RUMmFFKzE4bXJrU2dUQy9rSU9WczJCRjNMdE1JYlJIYkEzRDdyNUpISGtxMjYKMTVHVkkwcmQwSWdSL0ZZK3U1VW9jM2RiVWN1YWtibkdGMnYzY2tLYnFYaWdYc3ZmbzdWejhtTCszaW1nSTJSWVNwSTFML1BxMVk2NAo2THhLTWl0bFA5NUFrTzFWT0lTdzJpeWoyQWc2YURMTGdxeU1YbXZSdS9aMm5HQjMwOHVjR0s5RVk1VkJhKzJFcTBWR2Y3aWJFZlF5CmY2Wld5NSs2dFhQeWJ2N1MvK1dmNUo5L2V2SUc4WXR2di9yVk05bFRiOTU4OCtldjN2dzdONHkvZi92bXUyOTBoN2g4eGE4ZnZubDQKOXU3aDY2L2tGcnVkWkR2ODVLZUhmLzJYQzN1S1RJeTh6c1FVQ1YvWjZQR2NTNUdld1c0aXJLakVQTzRtUmMvbDF0MWtxVmRseTdJeApZc0VzT25NN0Via0o0Q3FWQ1NKNnYweGxtU2hWZUt6MHN0WkFRbHdSOXRoRlFkaEtCRkVtaTE0bXF4RlJCNGVTdGZGRzJLd0dMM05pCm1EZTdMbUtYbHAwNWhOVW93dnZXdUEwVVhybllEdDdyeWNUVmVuUFZCMnVVcmVvbXp3dWRLRXlHODd5OWNRWEQydzVuM2JKZjcyRkIKZndnVHFWRzZWYmpLcXgxUjVBOXdyQ0RzY0JHaDF6bFd3RllqbzJJZjlRMlF2M2p0VmRDRlNYYWwxa1lqMkoxYVI1TVlaREFyN3VUTgp6THBNMjYzbXZtejc0N1JLL3NDdG1aUFgyazM4M1pSTGFhNExrR3F6N0E5MERzMjVoTlV5SGMvTTZWblZ6eTUvYkl2czJEcmhvdXlkCjdORzh3QUdibFZWaTVRSjBsNE9JRmNKdjR5emY1aXdNR1ZNSzIvVXNlNDNzQjNqV09SaXZuSVU3cjdLU3VWV0FXd1ZoMzlqc3RrVzIKMWlxYm42emtUVGFmd3lhN2dFZ1NlaGwyQUhtNVRaaURNUDREOXpYWmZUWVJla1M3a00vQ0I0S0lNYktIYkZ1MDdVaUlKVmZkUjRUcgpIQ0prRzlHWTBKc2l6SUVnMWF1SUc4STE1clRZWlVKYzVJME9zdWZCOXNtYnJWVkVCOWxFNndLSjZMUS9UbllXTEE3c3JYTGZQTXY5ClgrMkllRi9zeFBLZWVVbWNScGcxVVhoY1FKZmI1K2ZleDZYR1hrZjJlT1FvNlkwNHdXNmxWemxSUmxpMHYwTnJwcUJybDdYZnl3bDYKbVQxUXIrV1AzTm81ZWJIZFhBdUg2MjgrbWJVRlNJK3laVUx3a0wxZkYya2paaGtsR1Z4NThxdFFaYTdJc0ZYTVlQQVNVVlJySXlpUApFc2xZNXNCUVMzcHhGY21vdCtNRXU1dGU1c1J5QlFYODBOc1JrVG5MOFBlN0dVRXY4MmRxdGZ5cFd6c243OVo2VDNVcjl0NG5yOVVnClV5VkQzc1dVRWE3SURvU09nRTEzbGJFUmVUTUlLeGZobFk4V1NzUktGVFlqUTRTbHUyRmg2SHlRU1FaR0s0dzNZNWFMNUhzVnNaNWsKK3ErekxJeFE0VUplWXlPd0l5RHJ6MnV2Skt1R2ZEc2w1L2RHRUkxbDRPNUdGT0ZsWFdYMUJ3aVc1T2FMWFNiU1VDM1lGSVR0T25zUAowQnVLek5sQVhzUFdSWW9xM0hXeUNyU2RFbVg2TG41bG80cEVEQ01JZDUwTjR3S1dDbmZJQWExdklsWjJDcStVSFhhck12eTluanhqCnljdkNMWS9xeTBBUmpXRUwyYTUwS2htSWFGL29yTVRueDVyTkFUckJDaTgrbmovb0lQRktXWEdKYzFqMnlCWHlqUT09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJak8xVldyRGJ5R3ljWlorUVVmVjlOSlRlUTNHV01STEd5dWxIaFV3K3lBVTFzRjdCcXA2dEorYXRiNXdjZll4am1JRytBcGg0aGxKUQpPQUJsa1hVZFpIdEcyQnk0Y0oyRExSLzVzS3p5Z0tLOUpqQi8yYVNrdTRUamI3UGUvM1NHbm16VDBCMDRTUU51VTB5NjZWU0loL0xXCkt6aFlVVjVBMWgyRVhTTUhTNmY0QkZuQTRZZDZVVjUvRFVOVGpXQjMxQXNiVlRvaUNUOFltaElwZEpWbE05elNLSHBsZTdSV3J6MTkKYSt2MExiMFhSRFBWM3NHTW5uTlVLUjFqV3pPWWlGTkZEeGJCZXdaRnhuL0xPMHBSTFV2SG8xR3hzbW8rREczSmVnZ1lrWDVQbytpVgo2U29LS3gvcnlTNEwrTlhRVnFQczd0bW83ZGxhVyszNVQ5K3o5WUNzRXZhTktMTFVURi90aUVEVVo2eXdwTDI4VkZYQ2crZ0dDYlBRCkNjNk1rSFdtMTFxckRtdHJweEhzYnM5dHVpa3h5UlNCbU52YWlmWkM3VzVHMFBYdHo5UnErVk43TzZmdjlyaTA5aW5tSnVpSXM1QkgKK3hMWUd4UXROeTlCSGNpQVdMcDVLU3dpZ1ltV3RUTXZRU2lWdlc5cjVpVlZHSVFMdUhrSkl1bzhMOHZPdklTMk5naHNibDRDcitUZAozTHdVYUw0UVBqR2FsOGd0d2ZQY3ZDUnZmZ1h6ZFRNdmdSRGozcm9VNHFKU25GbVh3RjFsZXcvTnVrVFdKMHJIenJwRXZpbkNZN011ClljT1FUbHVhZGFuVjZOWWxzTXhscWYycFF4UlJhS3RyTXkrRktITi8yeG1YUUNwVk9MUWJsNW9rNE9ZbHJMQ2E2cll6TDRIeDVpUjgKdXBtWFpCRnRFVlkwc3k1aFVjbnVzVE11eWRMTE0zck9iRXV5L0dYZVJqY3R5Y2UwMENqWVRVdmdCd2tIcEpobFNacElhZDNjc0NSOApXd2FxN094S0ltWXpNNTZibFRaS3lLVlpsV1Jud0p3ZGJVcmtmVnNKemFhRXJvTVE2U1lsdWZjVlhBQTdrMUtRdTNKSnVVa3B5SFROCkFDSzc5aVhjbHJOMk5Da0ZLSytsVzVTd2ZjNTFYWnBGS2RTb3MzaTBLR0dub2xqckZpVzVyMnpLOHNodVVqcGJXQ2Q3RitOdHdySXoKS1RXaVc0TXdIV29XR2RqTVJTRXk5V0FlVFVyWXJTS0VPNjhUWUxTRXVjMGJjY0pvNU9sRU13VzFadHhZMU80MW1wVGFBL1ZhL2g3ZQp6dW1MamJ4YTVLRmxaMUxxUkRNRmdTK21MVGRia2NpY0NKdmFkaFlsY0ZTRSt3eTFacjFwYjhZSmc0Mm5FODBTMU5zeFcxRy8yMkJSCmFvL1VLdmt6dDJaTzN1eHYzYUQwOGRxOUxQQll5WVhNT1BkcXBNcFNwb0d1dVJGazR3YW9WQWhCcHd2WVVNNW1PWVpLc1VScTVtbWIKNFQyUWpoWkpFWmZsWk9aSmJzVlNRN1lOZHhDWS9SL0duU3lNcEpueFJjWGdXaFIySWs4ZFF5T29CUjRDZXVtVllGa3ZJc0xYYW40RgpKMnlidHQvczd5QmlOY3dySGxJMk0rRTRHMVVFQ2lNd3hzWjFJT2pMVmRFMnVJUzlXdXU3WUNicTg5NDhNUTZVV2UyYjJBUkVDRkk3ClZLY0tVeFFaZmxFckxqMEhNWnB6QUh4eHphRlR0T2ZnaEVqcldDK3FwMkJveXlsK1R6ZGJHN1dZUzY2MUJkMkpvOWZ1NlJTOTBwK3QKMWV0djVXMmR2ZWNQSXVvMEl6L2szSFhkbHIwdkRTb0tPWGR6cHFHZWFQT2xlOU1nbSthOHVsL00zR215VTRzSWlDdmRueWJhdmV6RAo5TERaU3NDMkl2SjkzbnZVS09NbDNxRzQwTG5xM0cwK05XZ09JaGI1bWpHbkdsVGN0V0FTdVZjTjNJM1AxdHhxMkpPNmhjdjlhdGk2CkFxWjA4NnlKdkNDRG4zSjNyY0VLSUpQZGg5QThaOURHUkJ3czNia202MEJ1empYb2RXQkJXVXk0Ynl1enZZTjcyS2d5eWExR0YxdFMKMTg3T3gwYkpNeSt4T2RuZzJscmt6czNMRmloNkxIc3ZHNVZycUNITnl3YlJVM2FqT0xqWkZuU0lTUUhkenliN21MNlJPOW9DOWxFWgpyZVpxbzdraEIzZlFtYThOTDY0K0ZYZTJRVDNmSXVhM3U5dlFnZlBpN00vOWJWUnZOcnlqTzl6aW5DQmVidDNqSmt4VUpCL2JrSnJMCkxkSkZVa1AzdWZGS3ZHOXp1c0d5Mm1hUE85M1FYQzF4N1Y0MzJDbXBwRFMvbTJ4dElxaVpnYWM1M21LRVJpZzdaUE84UlhER1FLZWEKODdVdzY5emMrZDVnRXFLWTZjNDNLSmVMOVBmaGZHRSs0bjdEOTF4V3IvYlVLaHR6M0xvRERvWU12a3h6aXpYS3pnazMxRE1IMjlCVwpvOWc5ZDQ0NE1JS2E2ZnkxdHFESTBzRGI3dGtvTzEvY1VLODlmMnZyOUQzUDNIRlJ1aXBMcCszOWNUREFjTzQxNTFjTXN0R1cwRjFrClR0ZzU1SG90MjMrR2hockZicmh6eVdHRU00VGszaFRVa2hDSEd4cGg1NVBydGRxVHQ0Wk8zL0QvdDBKVVNFSE5sU0hCS0dqVEdic2gKOVRwOExkb2hkdFlaUmpxbzM5S24wR1JwYnlaRnVCOHBybWlxZzIxRnZBNGxFV0hvQzJ3dXdpbDBMc3F0MU9EbkZOV1lrbnIwZWoyNAozQ2pHZzZQa0RRelJlRmJJWUwxK3BXZzFkcVZzU0x5blhEa25tRzFnSk1WK2RQYWFKeHBRZ2o0RkcxbWUrM1k4VUlOdU5tZ0hGbWxZClliZEE1ZzRmQTh5VVRsSE5SQlpQbXRlaG5uQ2VDald2TjlVcGMyYzBuU3F2b050M2Eyc1JkaERETXR6VEtjOXRKUGxvdlpvL2ZXdnEKN0MwZmwyMCtoNThYL2h2T2daMmpGM1pjSFYvMzlNS01QOE9EMDF5OVFRUWgyQXIydmw1YWlubWx1M0hCTkhTV05Vckt3NXhxMU1YbgpsTHQ3WTNiTzZPN2VSdG01ZTNzOTkrTkdyb0EwVWxMcGs2cFRNWlI1ZFBCaUY1dXpqZEcraHg3eCtVYUl3c2pwLzJwUGhROGdydDNyCjIzWk1kOFkyd3M3ejI2dTVWN2MzMVNsMnk1MzNseHNyRmZqV0Z1UmpXdGI4bGs3WU9ZQ0hhdTNwVzFPbmIva0QrSURCcjRRdjFMMlcKMktpdUpUWnJvR3VKbUJZMHFveGFJcmlIaVBxeGFZbFFxRUlWSnVoYUlpd090QmVPV21LejQ3bVcyTXh4cmdEQ0RGM1dXSFphSW5TLwplVkFsWVNKYlpESzdrdWlmUngzUmFVMUZoSmw2aFgrdjZYNzArS1Z0M2V1SXNHS1ZCYy9XNnJXZWN4M3h2QzlQN1VpcldpeDJPbUtuCnVsNUhzd3htVmRQOThNZWFjdG5yaUxUNnBDVU85VUpWbTE5dnExRkdmVzJnbWw3WDIzTGRyOTl6MUJIN3MvVjY3YTFhVzZmdmVkbWgKL0NtbThDVWJMQVdHWnpoOVgrMnB4WlNlWlhFbjRhb2FCRmJWREptbFVkd2VUZ3ZuVUE4N09seHp2YTFHc1hzNjh6RHFabGFFMXBacwpSTUxGMXVHZVRuRmp1cmtxVzczMi9LMnQwL2Y4UWJ6TEVldVU3bG5aQ0NqZVUyb1h0V0VyaEJoRkZSeGlvaVc3ME15ZmtDb0pYTHdVCkd2NEIzZGdjMXlHVGc3NG9HTlJqVUxhcElvZDBzR2hKa1dDRkxVWjlXZHJtSE9RUTRYekVacXkyR01JZXNPQ2djbUVxUURMVkxvZkcKMkd4TndLbHNVUkU0OHJLSnV2NmFpbDVadG5XaGQ1V0dYdlNyZEpiTmFhajRDVzhsKzc3cTNmQjBWVkxnaUlZT3Z4VzFHMEtJRXYzUQp0RHRSNFdUVENIUitLNEIycHZ6SHpVOEJ1Q0ttdzl3T0tTeTRnaEhBVm1HdkZxV2JMNENkcDlMbHVHSVJWY1Y5cmh0VTJES3JmcXhhCnN6UnJHbXlBd2hjelR5YUhaNHNXY05qVFJPcE1ORHFrNUpwdnB1MS80V05WSGNsRk1RSVVDbFdIUEowREo1cGRYQlUvZ2l1V3NoaTgKdVZQZGJJQlpRME92OUVrQnNKN2FxYnJpamFKekpDa2VaNmdubTJLb2VXeXJVZXllZW1XakpvTy85cmFpYnBYRFBXUGZQSWRuYS9YYQo4N2UyVHQvekI1RUNZM1pBd0Z5NkZOaW84S3BUR1Y2Q3dlTjhDV0tZU01oWGN6UVhCeVpVWFdGbmhTMWxVUnk5eW9Telh3ZDFrZjVBClVkcWFOQVpoczFEN2dDaW81Z2JYUHFDR3VHNGNYVG5vRWlCOEw1aW92VjdaSENxNDZSMDRLeFc2c0kwU1lEbWhnaE5xWDhpc1ZIbTEKVVdUWk5BbXdVMHR5R1pPK00vaWRrVnNtY3RvckRyR09Jbkl4R0FxTWZmcXdxeitzL0tHM3JMTzlwbE9jTjVRZFZlMkYyQ0ZnTHd5MAp3SGxiMjZBOWdmdndZU0crNjJ0dU5paUFYT2lnekI0RElHd2orVDA1ditlbHFqMUlybEsrcXlKK3RQVUxOcHBpcG9tUUJrMi9VdGxJCkVjMGNGclE1V25lczJhMHIyYlhCMlBWUzJxd1dDQVR3OE5MRUhseHJCRHVsUVFES3JzNkQ4V0VYUXdOU2g2UTFyczNzYUZQMGZLNmYKc0JaTVNRRFo4REkwbmIzYVUyVnJxWXVhUE5hbDZsZ3RzRGxpYzlDdWQ0b3VCK25vQXQ3WjZ4WDFwUTV0TlVvYXpIV2RtbkhVVlRnTQpiY0VxQkl4OHY2ZFI5TXIyYksxZWUvN1cxdWw3Tm9lYlRGdDZ0ekRmdVZXOTJsTTNOV01DckVLM0dPd0htWjZNRldoSTRsMk1va2lICm9OaWRvWjZzMTVoM2JUV0szZE92TkdveEMxZHJDLzVTbURyN1BaMmlWL3F6OVhydCtWdGJwKy9aZWtBR1pzdllja1g1SXl6eDFZNksKcmJuUVhEKzd2UVFqeWIyd0VnSFJDTDdpWjdyL2U3VUZ5ZWJTMEZTaitDMzF5a2FGK0VPZm9iY0ZLRVVKL1k3MldSbUZQNWRYNmkvawo3Wnk5b3I4ODdLMlZxQytndXBNNVhBZnFBdWxYb1hvaVRLcWpnWkkxektLeHB0SXB5bnRnMG9DSjNLa0VkZkd4dksyQll2ZlVLeHMxCm1tRFgyNElmQUs2SGZrK2pQTGVudFdkcjlkcnpXMXZuNzlsNklNRzlHeFhQSklxTCtjOGFGZlkxQ09IZ2hETm1uaXczaW1vQS82WjUKQzUzeTNNUVN1dmlIZW9CQndEdlltbW9VdjZXTENFWTFxMFZ2UzFnbjBKVDlsa1pRRjRFOW1GZnFMK1R0bkwzaUQ2RFBOd3d6ZGdwNgp2SGFnYm14VkszT0pPcW9iVzlDYTRTaHlXRGRNRXFtNi9kMkIzUkQwMWF2Z3lHN2dzRFBzYkEzYUhVVVV5RnNOYlFnQUZZS2tDZG5JCnNkM29LSFZvT3JnYk5WTjJINDJCdTJrR1dkYWxvN3NwNUFCMjB1RGQ0S2RwTzRGMzQ4MElXR3I0YnRqRjdFYW5uWE82RHhrUUduOVEKLzlwQnZLSERKRlZkREZMTm5Sclkwb2E4YnBUbjN1M2c5ME05dzNBUGJUbkY3K2xxa0ZHcjltSnJTdTVFSDJpL3BWTmNFdFJINi9YYQpTM2xUcDI5NVdUMy9ISGh2ZXIyaW96MDdWVkVhRFZ5Tk9TV1RaK3NZN0VaUmM0VkJ0WWQ2aHVidVRUV0MzVkV2YkZUWnhWZkNhbHRUCnhlekEvWlpsTUJmM1IydjEydE8zdGs3ZnNuRXptRzdoN0lQYUxwekNzQmVOS2dKVW5nTWlBa1hJS21ycEMrWkRuR2NQL3dpMnNjSm0KVzVaMUhlcWwyWUNhcmFWRzhUczZVMUlxVEd4QWVmVzJNS0dXYmJ5blUxU3MweWRydGRxenQ1Yk8zdkVITVUwMFdESFdFS0hVSS9TZApzaGhOaG81OXgwTEppVjR1QTc5RHgra2hrSTUrcHljUExLREIzeUhuYkNYR2puOXZGQlZ2RkFEZnF6bTJIY0syMmNDZHNvVlIzekVxCmVTbms0UWFDcDlDbzZvaWg0TUZDbTJ6ZFlQQndscXNLNGZCMjlENGx5RTVaWVdEd0t4dFZwSms1MHFkaE1IamdlK2ltYnpENFJsSHgKeDJEd3ZaN0QyMk14cEVHbnVObkJCU2VqaGl1Q2doMEZIK25tQVVUQVVmQkE1cXp0WVIwRkR6ZUUyc2tjQlEvM1FpcHI3aWg0NkJKZAorWEFVUE56c2hFODBGRHgxamhSVHg4R2o5YVo4TkJ3OFVBZTB0emdNSGlOQXZ0cHc4TmhJa0RqSEJDUUR3a01SWCtzQWhNZEd4V2M0Cm43SW5kbUJIaVdNUUE0SXBYdTJwb29MaDZPS0dPT2M3YndNVzNnaytTWWhmNzdVTTRqNDAxQ2gyUTcyd1VWMnhhMDBCT0JWSDlIMmoKNkpYK1lMMWVlL2pXMXVsTE5rbmZJZUtBZVMzQkF4MGR2dDZvRGVLTzJVOW55VURKUThoSHA4SndCY2RmYnd1Q05tRS83WjVHMFNzTgp2ajdVTTRqNzBGYWo3TzdacU8zWldsdnQrVS9mcy9XQXc4VXhkOHJpMXV0T0ZSWkdJSXdEejBXQXZab0pyM1o4ZXFNNGF5S012ZGR6CnBIdHZxMVBzbnMrbkFSRlAzWVNHbE43V2JHL1c3MmtVWGUzdDJWcTk5dnplMXRsN1BpN3hmZzVjL0E0czVzRDRoaFZyeVBpR0ZXdlEKK0IxV3JHSGpHMWFzZ2VNYlZxejV3M1pZc1FhUGIxaXhobzl2V0xFR2tOOWh4UnBDdm1IRkdrUytZY1VjSTcrRGlqV1FmSU9LTlpoOApnNG8xLzlvT0t0Wmc4QTBxMXBEeURTclc2NHhRc2VhZWE2L1E0UElOSzlidzhnTlNyQUhtRzFLc0krWWRLOVlnOHlOV3JFSG1HMWJNCklmTU5LdFl3OHlOU3JJSG1IU2ptcVBtR0UzUGMvQTRuNXNENUJoTno1SHhEaVRsMmZnY1NjL0I4dzRnNWVyNUJ4QT09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJREQ2L0E0ZzEvSHdEaURtQXZ1SERHb0oreEljMUJIM0RoelVJZlhkak80aCtodzl6RkgyRGh6VVlmWU9ITlJ6OURoN1dnUFFOSHRhUQo5QTBmZHI0V1QzMmdCam5mNGNNR3FtRzZHbmk5NGI0YXhuMkhEMnRRK0Y3UDBmSzlyVTRac0ZvRDFUQmRyYTJHKzJyMzNPSEQyck1OCjlkcnplMXRuN3preWYzcVNkdml3Z1dxd0xvZXlPL0NyNGQxSGVGaER4ZmRhaHBzZjJtbVVBYTAxVUEzVjFac3k0RmUvNFFBUGEwL1YKS3JYbmJ1MmN2dDhsOWJKN0VtRnVFeFpoOXA1R2hTV2hxSlNWeVZBS29qZk0rbElEVjZOUlZQMTNMdC9yQ1pkS1N4amJhaFM3WnpNYwpLRlZXRkZqNTBKWnQrY005QnlGZ2VEYXYxNS9mMnpwN3o3WWVQa1hCUGtuWlJLMHVMV3FjS1ZqeHIvYlVvRkUyc01VVUlDWXhXSE5TCllaZTdmYU80RWNhVXFWWXZHTkNsTjlVb2Rzdm5ackF6YXRKZzFhR3RqTDA5ai9jMGlsN3BqOWFxdGFkdlRaMitaZS9MajljdjRRbWMKaStvY0lqT2FOTnFwc0cweGVRV1E1dGloQVRDbjRKOW5VeVdkb3BxWEorcG85UmhTbDllaHJVNnhleXBIZCtvMksvUzN0eVdVc29IUgp0SHM2UmUvcHo5YnIrZlAzdGs3ZnN6R2twWnFrZ1kwSEMrWFZub3JlTmZUWmxyT2xEZ0dDT2VnNVNGdW42SHNBRDFQaldFOTJHaHBNCmUxdU5ZdmYwUGExUjYwb0luN2NGQzFvZDdxaWY5U3AvTHE4enZJKzFjdnFHbjJVUmh0TkZLQktZK3RDU2dvdGU3YWtBUlVIZGh0MlUKbnRNbFdPS0poSEF3V0NxZDB0YlNHdU5ZVHg0Z09pQkQyMm9VdTZlYmZScFZrMlMxcGhiR3Z3eDNWSUl2ZTNzd3J6VzhrYlp6K29xOQpJejlCZ0QvaFpxcStNUXJUUWhkZjdhbUFuQ1dOYjlaWWRCbldBbTgrbFhNSzRFNVJaVzFXQ0VhclZoMy8ycHJxRkx1bE8zK05LbnBWCm9KempUY0hNYWlLQTNkRW96MDNGdFNkcjlkclR0NlpPMy9JSG1aU3drTUJQTEtJL3NqS2FZOG1KaSs1UzhQSFVMWVVEbElpcU9oTTUKclgzV2R4SlpyOGo5V3AxVlhUaTlFU2ZZclZ3NVY2SXM1SVZPY0crbWFMaEV2MWNaSXJYYkF4VVBxdkJIdG5iT1hxeTdVcVBxd0JzQwpXdHlQMklqU1cvT3F6czhVNVRFMlROaWtEbFdxc1U1UXhycXBBdHRxQVk1UVZRUFFkaHJCN3FhWE9SR1RBeXlwdFlQMXMyM0QzWXpnCnJsZDlwbGJMbjlyYk9YMjNIMkw1Y1p1RnlBSjFnMTZqVjNzcTVMdlZRbVVpSEVGUVZPYW8wb1JtUm5PSzg3RTFwVFRXdzl0dmVXeXIKVWV5ZXpzZU1XaFRTUGJSVlRhem85Nnc5c2Nid2JLMWVlLzdXMXVsN2ZnNXg0cVF2WTFZak5PVnRHRWRmN2Fnd3RzQWpEQVZ0aWJPYQp6U2hmUnpldkdFRUZUcmpRbG0yb05hdTNiR2pJS1g1RHZiQlJJOS9rMEp1aUhTZlY0WTVPMFN2OXdYcTk5a3F0cmRPWC9DRmtYRERPCjFSTEdCTWVJZEdJMFVBT2N0VVFMdG5nMm9GRFcxQW1xd3FVclpPa2ZxMkdOTWF0SGE2cFI3STZ1L0JrVnJoRmlIRnRiU0Y0YTZuQkwKSStpRjdjbGFOWC80MXRMSkszNytDVWtiekd6eDFMSkFISVBjcURBMlpaVzNwQTIxQjJyd0hqeVdXMW83UmQrSytYTzNzZDVNODhYUQpsQlBzam43ZDdCTnlKZ3JVR3hLS2FORExjRU9uZVAvcmcvVjY3ZUZiVzZjditYbTJWaUI3a29hK01pengxWTVZUFNuQmF1WkR4dm9zCmFzOUZzdjVPVWVGaThVeDhyWjVJV1VncU5MVFZLSFpMdDhNb1ZmcU11ZFI2VzNIV3dKOStUNmM4dDRmVlordjE3UEY3VXljdjZWMzMKMmNLNkhnL1grbHcrUTBBamsxbDhHNW9ad0s4RnE4N0J6UEtpY3dIT3g3SE1BR1Zsc0xvUnlsd1JlMUZ6UnpJWEdyaFNCeklYakViYQp3NWhsN29zUUVEdUtHZWtiS3h3TURtSmVrWU9CcU9ZQnc0eXdyUlhENHhCbUdFcm5VanVDR1U2SVV0SWV3QXl6OCt6SUp1YmpKVVF4CmRmaHlKZ0I5RDE2V204MGNhY2N1TXp3eXJoMjd2QUl3UU4yM1k1Y0xBVnhMaHk2WFRkWXRzY3lHWEthSVRPUGdBRnlHQ1hjcnk5cVIKeTRHUVF6cFV6WWxJcE15NmJYdnNNdEF5RWJab2h5NURGbHRTQnk2ZmpmYmU0bGhoZEFZYkdtSExuV2dXYk9SZDVDZzZHQmtoM2FtRQpQV2E1d0Erd2JwMVk1TmtxRkZadnB4TUc4SEFuR3NhNHQyTXc1SDYzQWEzY244bHJ0YWUyZHM3ZTdYSC95aWVoT2VJZXBReUNBNVFoCnpqZHdjczA3V0hKaHJFaHFxR1RoejhpQzB6REp6Q01UOTRoaytEK0M1ZGtqSUJtaWN3Y1pZMmFqaVJHS0xPdDNnOTI3RVJOU3hBMzQKWWdRZG5XQ1EwMGlaTy9CNDNpT081dzQxQmc2NFlzY3lwSEdFL25HQ000WUMzVEhHMFI3RGtjTkltclN1ZTN6eHdpeDFuWWFFNmRHdwpwUVFYTDliSUNDMDJkQU0vWiszVEJpa0daSUJaT3djM09lWmZ5VXZIRTFkN0VrY1RZeDdOS2V6QnhLWGF3allzTWZwbFJCSXozK3k2Cnh4RUxDOGtobEE0amhqRjRYVHVJdUJZYnYrSHhBZ1BiNGJweUNERm5uS09IZDlOdnY3YkJjaFp6ZmpYY2NDY2ExSmM1aG9BUmNqUXcKbVBFcFpoaHpjNmtEc1FBSEgwSnZwaE1HOEc0bkdzYTN0Mk13NEhhekFTemNuOGlJL1ptdG1iTTM4eGVIQlMzbnZBY0tkNkpqZTJtWgpIdEMvQU9LWEU0eXdDSnNsYkNORVdIYlJkV3lsRVhZQVlTYzZwdGZiYWJCZnU5a09IR3dQNUxUK3hOYksyWHY1Q3lkRy9BNGczVmNqCjBiRzhXRnRrR3c3M1RjamFXOVk5S2hoV3IxQ0hTdGloNktiMFpwd3dJblE3MFlDODNvd2hmZHV0Qmpod2V4NnYwOTdDMnpoOUxYOWYKNUdJSzg3YUhBbmVpb1hmUmoyR0UvV2JHSGc2SVgyN3h3UHBUWC9SYWNFMVNxL1IyR21FQTVIYWk0WFo3T3didDdYY2JFTUQ5bWJ4VwplMnB2NS9UZC9LVmg1c25NOXptZ2Z4dlJFYnV5T0xiRVBEWUc2b1hwcWRCelBXQi9oWmt0c1F4RXVEZDVpbmhyeHdrakVMY1REYS9iCjJqRkViN3ZaZ1BwdFQrUjEybnQ0STZjdmRza1pCcWQzWk9ENUNCZnNWQWY1SWE0MExCNGFEQ0NnN0w0NHIydVBGNFRmT1pUWWlSWHAKbGJjQmQ5Z0lJM1N2RVIzaDE5cHhFR0M3MjRnVTdBL2wxUDdnM3RMNUMzNTJyZUtqazBVODhnVEw0V2UvZVAzdXdpRWorUFhzZHk4Zgo5RUYrK2ViNVYvL3o0Yy9hZHA0UFAvdjF3N05MUjVQY3ZuajExWmNQYjU4L3ZINDMxSC9zSGwrK2ZmamppNGMvZmZYck4zLzYxbDR2Cndac2t1dTFqTitDWkovLzk0Y1h2Ly9EdTBRN3hxbSsrK1VvNjh2N3RtOWZmVy9lWEQvLys3c21WOFpMU0t5OGV2djJBZDd4NTg5TGYKVWNPNzF2ZS80Nys4K1ByZEh5Nk81WjJla1hQMyttdTc3dUtaT2YvanhSOGZmanJwTCtwWHE4N1BsVEhmVURLMnFxanBXRU9hTHA2WApvd2pwRHpzMngyN2xEVGVNMHU1MlBQZW1VZHRqL2JKZmY0bTJ1L292Y1dvT1RjbXlJOHc0ZGpndU9HVUtta1VOY2RZemlhT2ZTYnpzCmtxbGt6ZFdMVklDTFp3RUhFZUlsc25jamxTVUlBUUVKY0tHck9nNEwvMXlWNEJpa2hmaHMwR0tsSlhXMnRpdHlWS2s5Q2tkYmdkZEIKcGJtWjFNQWVxZHdGUUJJWHVoY1RzamdWWkdHQVVpL2Jjb0g1SElMdzRyWXFwTUFBbEF6RXpZNUFJQ1JMQ01haGhZQWRUd2hFQ3JYTApBSHhFcHJHY0ZiMVVlQUJLTW0wUFFnQ1F5U1NrMk41TTA3d25XSzREUmFRUTRERkJSbFB1blRRZndpa2dleXBmVFBiakxVY2lsVGErClBXQ1kwSjQycGtaTlNtREdOeWhmaXdNZ1IrcXlCcjB3TFp0U01zY2pCOHVSTmRQZzFxL01sWHRTbE02aER1ckNPK3BsQzhqU2pOSm8KZlZsdDVKQWZIRkVIT1BNcGE1Z3dqVjNJTmJGcURpOHEvOGh4c2phaEUvRVFWQVNRMVduVkJLR3NGdVlrMG1wV1ZQVUt4QzhzQ3lVNQprSDlkN2ZRSmhycXV3YXlyVEdFd3cvR21ZZGg2bGdid0RzSFRicTRPZ0E2dW5hL29DcWJXZzN1bExrWlpsQUl2Uzd0eW9TMDA0RkN4CnhZelB6QlNNL0ZrODFCNzNaR1FXS05HTkhaQ1VWdGVKbzQwMkE5QkpLQ3JMemV5S3dQTVhITThUVEVhUVd5NDBCcFZWVlM1MHh4S3AKeUsyVy8ydzJXeGpuRGhDTUplbjRwbG8xbzF4ZE1LUXp6RVVLSzAzSmp2TGdZS3N4RWI2NVJlT25Tb1FVeE1Tc20wbzdoY3V5MnRJaApaZldIQlZUT3JzdXNvMWthMFhyT0NtNWxQQVVvbEVuMEtoaUNZRUxDaUZkRE9Hb3l3aG51T0xpenEybTBHeXpwVXZmR0wxeEVLOTJZCktGNFJlbWxHbnBJTmpuVUZqeEUxaUNqL1pmV0FOc2o5U0hFQ3d4YVJkck9HMUFCd1hLTTZKWm44aExoQ2d4V1F5T1M1Z0JSR2JSdlQKa29BNGpkaWJvZUx4OCtJdWF2aUFnV09Vc1Nyb1NuajRrSWR1WTlwVVRWT29pVHZ4aFkwZHN3MGtwQkNHUGNwRGxMQzRLck56V0xCSwpLcFZLc1Bja2lVaGJCUU5mWkVqUXFtSVpMRExNSXh5Z3BraUhnckNHSHM1RUhBS0lTTElubnd1ODUyaUd3RU1RbHFSWmZaMVRhSEJNCkptZE9jektJUGhLelZXWVZEblFKVjdQa2dRUG9teVZDRUtEK3pveFhxMW9IVm9scUFMUWxiVkN2UXpJWEMybEFrWlpaRnhrSU5HTEQKdkxJQmpENzdVVlpDV0wwN1pvVFV5N2NnSnJ0TWRJRmx1S3hxaGc1ditMbDF2bXpWdEFnSERDUkdkczB5VVdEZUsxa0JDclRzbDAyVgpQWDJ6b0hjcmlGaUpodXFFcmdCblJad1YwWmxnZlFNY2YvYjhqQ0RTbWdHZ0g4NGdtMjN2RW9Md1REWDVzQjBRaHF1WXZYS0ZsMVF0ClFGUkRVQ2RWaS9xck9HNEx1NDIvR0x6TWtYMnJRTmd0Z2FGdVBHbGkwZkJsT3VIaGNGa2RoRlJ3N2dOdUJUZ09RL0ZocXlzOENhdFoKaUFQU0M4SlEyeGdYaUZIbTRySnFYOU9PSFBWNE9OSFJpMEduTnhKd2NHWmo2d1ZyRVVUYVZ0ZFY4MG5pc2hLTXdMdXRnRXZIeGw4MwpwTENVM3l1Vk9SaXB6Wklyb29vNllXS0JwU3JUa0VZR2doRkdzdUNLclhkVHY2MXM5eHpZVEIvQ3V1cThLZ3c2eXJZckY1czE0WXBKCmgyREh0ZVdoVytZaTAzTUxIRUx1MHJyL2J6QVlaUjBpeS9QRzhFV01ZU0U4QjViN2xXTVdRdW9DRWF6dm9JR0Q4Zk9zSXkyclQwRlEKekdzaGhGUWNrdDJhUWk3MHF2anBLdXVObVVyMWtUZlIrZkFLb3RzdCtsN1Nvem8vbUNtNDBMcTNJR0VpWEhMWUVDRENWYVo4WHRlVwpBMTYyTFRoYVlSU2UxYVBCWEZFRjdHSFZKQzA3NlhCdjZxTUVBTVJUZ0tYYmo0OVlORFl2RW1uS25UMXVBQTBIWktQWHdHbHVHWkg1Cm9HT1RKVFFrV0hnbHVEWUpnTVVqYVJLRkpSQVlFeHZBbFQxVUFpbytUWExZREt0NktXWWVMb1VVNWJySmg1bmF1QktlbXpDZnNNQmEKTGFUY1o1TE5ESjViTlVFZ2pLNUpYanpZbHNVMWcyaXRUUmMzd2QwTWg4VldZNEg5QkxkRktFMk82Vjh0a3hBeXFabllNVmZHUHJYUApnY0Y3aTVxblhGclJTRkhJUlVWcmFXd3F6MmhSdVNjdWpHMFJucHNkZExocUFpZ0UvWWFzdWhORlJ6cXY0dkFaWndPRTNDUlZTRm9MCnBNdW81ajZjTTR2TS95SzRhbFRhd25QL3pLeWdqNWhvZ29hbExVZXpWaUVWS2dpMFdVQk13bGpncXRsVDB5UEFEU2RVTWRlTkdibDQKWHVFQ3pxblpGTWo4MHFMN29MNVhWYjh5WmpuTldSbHhYWW5aNFkyelJIV2VZaDNYMGlXM2pkdXNlbVR3RVNPQlBLRTBsNjRRZXlzMwpTM29yL0NJKzlycjVlMFFlZW9iUGVWVmNRMFpPTFJEbUpuc1huVkxJeDB1K2duRVNNUVpwK210U3ZxSkhCVmExVHQrWXhCN1FaNWxLCmtPSlhaMGhQMENMSnhCYUQ3Qyt5V2tTRHM4dG1qZFNqWXBBTVRJbUZpOUN3T0d0V1gxMzlRZTJnejkxZWdhZ0VFQXR0VDFWRGQwSEkKbVBZSlRrcnNscGl6S2JUTFpvQlRzZlhRYmdZQ1lPV0tWOWU0a0FCeHRjejZic3JHZ3ZYMnFqckVzbWlpWlRoVTY2cm52N0dMc1BpMgo1SHpNd1ByY0hDT2RRTVVlVWZSTnkxYVhjZnFnRVhndldjZ2JRazViTGNTWFluOGk5d0dEb0swUHZwbEJMT1FwUE1KSVpXaTRPTUFPCnNKMHYyYlk5NW9TS1BPMGl1V1FDWW9GUEdjU0VaR3VJZ2VlYVFseGtVQUpqN3hHSFZ1YlNMbU5LdkdXeGtRVUIxZz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJSS9aTDBDUjNqRGNGb1hvd1FWQ1pLek4zY3FZQmxUb0ZHUVJkM0ZGUHZnRXZoaExHWGhUWkVaN0ZqRk9HWm0yNkFNbTlVTnRWbTU5TQpQdDNRRzF1TWxmY0NqVXNST1JXd1BFQ29ub2t5ckhtL2ZZT0ljUVlNZUU3WmFnVVNSSWpRM0d3SURNYm42cjJJL0FMZ1o1aTUwQ2d4CnJzd2dMWE9hOGtzbklDallkOVJHcktiK01TNEFtK1ZNK1JkQld5cUI2V2Vkd0NZcXRUcW1vbENKWnk0eUovRG9Fdy8vTWlMc0VWQkkKTkZ1cE5MMUFyV01DZVp1S0N5QldwUjlic2lFMWh4RFZheWdxWVZseFVDM0VIR0JMSVRhRHdhQS9NQmp1VVpkbkJFMGtaOVhxOUlqWgpZajZZdWRxeE9BVWRWOXBWaEFtZ3FaeFVYU051QW9NUnF4RVFOdzM1cmpFcjVHaUFNQXVuN0x3YXdoWkhDU1RxUlNvSmtETXdwV1N5CldSWEJ1bVprdmI2YWJWWWg3MnMwaVJ6TGlWeUlsaGUvRjlZWTVBRllYbGEzUkZma1NDNG1nczZXa0JLWGJRNjhuemROWEFoaXBHSzYKRWIrRjlPTWJkRzljQlFzTXdzLzZhZ25ndGppMDFLM2kwSldnVFNKbjM2cjRMazFzdG5ZNUhrTk5TRklzTHBjRmxRcHhIRTNRcEtYYwpiSG5hVURJdWpEZzNhS3pZYklzbHVTTjZPTklVcFI3eEJkQU9rVm0yWlppTkdrT0VPSExXNFZnQUNMMmdWM0VSeEdHaytVN05ONTRVClRFQXBLbW5lTHoweU9xaWV4MG5PZk9LQnpFeFo4T3laQ01BanpGdkc5TzhJbWl1YTlhYXN1clBQalhzNEVkbGc2NktJLzFVVHB0dVEKTVJ5VG92b1ZqcXR2REorVENLR0lxMlZaMWJ5TnhUZ2xDSHFBbEdwVmZobWxmYzJkWWZsZ0dlcGZiTVBGM3Nma1RnV1NrMGNZVURLRApxVUoySnd0ZzVBR1ZjR3U2U0w0aStBOWhqMUQ5Zk92VWVBK2tmY3FLdEZGZEI5YkNUZkc4ekE3dkJGZHRhTG5zdFRZMWRjR1dvaDViCkl5REdLM3RZWHlQQ0pKbzFsYURzTUh4SW5Xa25JblJ6S1NOeGt5YUJTenJsTkdlN0IzU0ZsVllnaEpQektFL0MweXBQbHkvS0FaajYKczZxeXhEQjdIa3dRZzJLZWtCRlk4NmtqNHBEWitiT2RneEJydC9HQnV1YWdySDlGZjRHU0dZUWR3YkVRaDRSOG1Nd2tBTXJzUnhvdQo4RSt1eS81S1pyelhPMVM5TXVwSlRnZ0x0QVhDTy9CSUw3cXE3Q3dCUm90aDkxdXh4d0J6VEhRcldBNzJBYjVscWhhbmk0U1ZtNTQ0ClFPY2k0S0FsSVdtOGNJdEZVMWxYYllsM0JGT2gyNXh2d0JnT2c4ZVFzZ1E5OTRDSEl1SEN6WlBKQU9hQ0JVNXE1b0VKWEZuUmtvTW0KUFJkbFcycngzYlBmVWZHbXEvSjNWRXVjR1h4V0tGQUlNVTEyZWhQdEszcGxVS2xKeFlYTUNMcUVjRnV5NDhRVEJUSmtSWVY5eHR6eQpmeVl6aTJJOVlESUNSOHk4M1VoM2ptNUdWbFVhYTVGUDE4MmZpTFBUb3luQTloZkdzbTRhNlFJS2hWdUF3dFh5ek9UcmF3OTVVWE1xCnFNdHFvVEUwcGVJdDhxYXdjMEtLUUtHVzdsZFM2Z00xYjhndmlyWjRZQkl6Q0ZXTjR1UE1URHlDd1pQdDRRQ2pXVE9KeHh3dDFRNE4KM3B4anErWUYwc0FCSlBpTTdmelh0cEt3c2RCSUNHc1dQS1VCRTV6V0hNQUtvU0dGVmYwZ3o4MHNwc2Jhc0JydUI1b1JKVU9leWFmUgp4bnhXbVBCcTdOY3RtclNYWmk5V1VuQU5USFl4V3Q1SENxSlpWNExiajNSNEdZU0hidVZwa3BzeUM0TFlFSi9IblFkTFlZVWdvR2F1Cll1dUJ4d3hpR1NDUkdLTVlFTEZjR1NNY2JNV2owZGt0OXJCd01tYUduY0lnTmlna1NUZG0zWkZ4RENWRHUyYUc1dmVVaXlLQmE3MUkKT1hjek9ZcGJlc2xHNFJTR2xMNzU3Z1UvQ1RHNGNGVkE5NGw2Z2JvekNINkFrVlFHZDZWem40NXh2aWZlUGxmMVE2UjUxaXMxSC9ScwpFZzRNYXJTM1NnL1E2dGFzYkJYbmJtNDAxOEV1eUx4WUc3UFJHcUVtaG8xdnZwWm5TejZEb0JreVpiUkNDekJCWjVadGN0Rmc4N1ZOCkd6Z0YwRkpXNlFHcG9MZ1NObU13V01iVU16azJhN1ozUXdwb0pueVpaelVQWVQ0anBuSGpPWWNhU0VwbVR5U1pzemo0UWhpbEg1SHgKSzJzVXVaMGVSZTJMQkdSVVFZUitzY3d6SkJKM2dGMk5TWnV3NUMzK2ZsMDBsY3MybDZLRTBCZFR6WHBvZEt5enZoeWNGWnM1NXhqWQpnRFd6QWF4aEJoWXMxWFhORFBkUksyeWNkUVV5RGFqMUNHWmhTU3FINkpMUHFxUUJGTWk4WG9oSUxmb1p6ampHMU1OMXdwaGpQNWdLCldXZXBNU1owdzhxRVo0VFpBVHFjRnczRnA0a0JhUmFhV1RyaTNFTkNVK2VDOTRMRUNJNVF6VlRDWUppWktkZ0p1dE1oc3h6cU1GOFcKTytXYSt4a01uQ25idG9RRnpIdTUwd0tpTHhRUUVHZWVqRlBVRmtCME16OFdlRHJ3ZlV6OUlnb1loYWNNYUtML1RXWWpDTzFlUE4rQgpXWWg4ejRXcEI2dWVWbVJNdmtVejZXd01EeEk1QS9ZaWZCS0oxMC9ScVhyTVljSkprSmxWbUU4RWVTQUNSRlVRa0xkemcwSElNOUNSCldQVm9NOWdoMlF6Q2pYQW9PUUdSdUJVaXZkVWg1RGZEdDVHckpSWm02ZHJVMUVaemZxSTh3M3hBVzlJS0t2WlVOWDhqeWV2TXpNeVIKbS9oV1RRb2lSSGlqMHltN21RVEVpc1RNSUdZNFI3SmxLTjQyOVJZUkMwQm5hSEY5bGpTNCsrRkI1VjZCcHBtdWVtYWMya2JLdXRveAp2OElJL2MyQ0JaWWhXVUtraFErdVVtRjNZRG96N2dmTk1XN21pRElIR2tTNnlMQmlSSEJ4azBIZVhjbzJ6TGNFRlFQb2NUOStkcXZ0CktKM0lYQlB3U2dwdnJLeEdHQU44cjdCQWtzQXdrVUFvUVd6WDJlbWRzeHBwMlJLVFo0S1hzV3R3UjBaSGc5THVDT3VGWmpPQmZvYVYKdmJqQVFIeDUxTnphVEpXMVZiVkNxa1NYZFlyakphbkI2Q0ZTTVpxbVd6V0ZsQjBTQUVPcU0yVjR0UFVvY0lUSll2WEFaSWpnT3owRgpCZ3VJWnMyc0NTbGxoZmZ6OGJLZSs0aHpXS3VlbmFWcHYxblBLRVhUelVXRWZiUUw5UnlVZ0FRb21GNmdLT2dxS1pEdFhLeHZBais0Cjl1SUtyMldnaUE3ZkFpQVJNUWNnTU1RZ204aUdjNC9odlZnUndPazhPNmg0QnNPYmN2WkF2Q01QbUxPTHVCMkJrTmJVcmlLMEY4UmcKMndnTXMyZ2FXamsvMDAyMWRsV0ZxUWZnUTRlUkppZjFDV3E0dzZLeUZSMXdVanZ4R0dNVFEyaC9wZWtuV01UaEJ1NjN3cDVnc29XNgpyWXhBY1FENVQ4eHJxcldRdlFGOXNVTEsxZUFqQnZjai9mcnN4a3NRMGExNVZyQXJuRUdZaW5sV095M2NJMjVnODlQc1M5U3RFYUgrCk5PaVZxT1l6cTBTM0dseE5hTFRCQkpDSkRkb0hnSm0wK0RMN3JOcW9hWFpDVkN6MkN2dXNNbzZkZU9kMW1PY0dNTTFnRVMxT2dGcm4KUGRGb21QQ1dVSUI3c09nUUZGUGdyS2NPNndUdHdFUTdkcThFWVVmZUlnRmNEeE9URTNCMFc5NWFyeXNOTzNyUndDa0NTUUgyaVlxcwpwLzF4MlpxSEV6U3VidEN5T2NxWjBCUnVNNGJLZ0lBdXhqay84M0RaU2xWOE01c1Aya0ZjTmpZakluZVJ2MkhUeTdxaHVTN3FoUWVSCmJqYmtDZ3c4djdxc2tBMEw3Qmx3Y0ppcmdvWUFnSklnSVM5dUNnR2hiZ3pVS2ZRNEZRckF0TEtYNHNlcEZNcS9CejBpYzJVbDJveHoKTk1CeHNmTVFRU2d0Z2Q5bWJ0ZG8vc095cVdPTkcxTFFaeVFPQkpmTjN2bEZoWWtGY0I0SWdpMkR5YXFpSHQ2VVo5WnVDbjI1c1htNApZRElnQkZMdk5Xc3dRSXFLU0NOaFU0UDE3R0FIbU80aFZnTHZ0M3JVSVNBUnpEdFFOR2ROVXV0MDNQcEY5TXZDOGgxV0RTK2krNTFKCnZQU2pNR28yMm4xMnF5WVRTY21zUy9CSkUrbXp3UE5UdEU4NXl0QlQzZnNHNkF6U1E5RTl0Rm82R2pBcytvOFd2WnM4S1M3YjZPL3gKUjZSZ0E4OW1XdFc1UE5QS0xmMnRjQ0VMa3NRRWIyZHhnd2cyZ2ZTSmpBb0FBYUtvaHNJc1l6dVp5cUhlemR5WWNQSGxUYk4yMGVzego5K1UvR3dCbVZpdEh2dEtWeDM3RDZXK0VhU0VuTURkcEkraTZCNTlrRWtlcnRSWFZ3WkRES2xkTm9FbVZTWGFaa2p5b2tVSTNUS2ZxCkdlTm54TWtqdjFvRkQ5elV4OEF0MXAzUVc5S3NJTEJPWmp1NmsyWitaREtqcTJxemc5WVQ1WDduWnpBMzg2MW1ndmRVOHcwOGtKdUcKNUVhQXM2WDBJenVVdGhsUWtEcFE1Und1SmVpT1VQUkFTZ1dBNno2Q2ljMHNpNHI0aHBiSGhSNGRmb0dVdlp2R1E5RGE1OG9KMVF3egprT0d6bmtRQ1FZS1cyRVY5bExocWJrbEtrUU5uMDZZb3NEQXpHNjhpdStmbnhPUndNbnRyVDIzS1BRQkdGRFVxV040eDV2VW94VUJGCkdXZjZJWjR2dHplclNMR0pFS2pWY3FwU2g0SG1VSG5HQzRGbTdLRE5UNXhnSmhYVVRyb0I4cEFxb0tXaTZVdUVJa0UxNUJIcUxvSEMKOXFnbitITFdzQlk1SWV3akJDeEZneHZDWlQwbnZ4dmkxakxqTThpY296bWRSR2FqL2ZCTW9ybVpIazJ0TFdNYXFpWkt3RkhwczhhVAp0ampTTmNMSndUT2xrRFBCUXRGbE05N25TQ2dha2djWDMyeEhncE5JcitOcUdDWGE4UUpycmVDOHRNL1Y5dEcxUENKMEFJTmNGOHQ4CnpLWVRBNGMwYThKR1R5RVd1cW12UWRWK2VHY1g1cXd5SFJQUldKVFFreDI1dFl5R1Vod3FzNUMyQXFqQnBFdXpFc3lBYU9rSGw5RisKdUtpVkJpbUI0ZDlrMC9EWmd4QldKWkEza0ZDN0RaQmdNTFJOTUZiUTdIVTB6VUs4aHBjSmJoK1lwOXQ3bWN3Sk9TRkZtM3FLalNESQpBRE9CZkFsNnJyUENrWWo5Z3A5aGVPZnhZOFh5SlBESTVFMFhsRisxQXRVVHpTb1RtZTBOWjdwdUNvUWdBYndDUnNoNWRURjBNOXhECjBPVkExQnNNamN4RVVUVGRGblVvV1hmQjhRR3doOUUyU0tzbHN3QXVXZ3ZaekxkcVdTaVlNSFV3aUFLL1JkZExNcUVjK3RhcURodGQKQ0xObWN5SjJaZW5tSG1ZbjRacGNOTHRYMVJNN2RlR3pCdmhRNUVSZisyV0V6OHdHaXd4bVZFWDNMWXZkRFh3WWhPUWFGeTJDUERwRwp6WDlNdU16emUwSFE3QjF4b2ZCOTFYWUtzSjJDUXl2QkpyRHhRdEtrS29xd1NhSk9ZR1RpUTIvcXpPUldodWhpV00wd0pMQlRBUVBLCnpJTVJjRXZJSjBoblNWQlE2c1kyRU1uazBJOUVCZ0Y4dUhLR3lZNjhhZ2o5eWxSdnlPYmJRL1RwZjRocW1XQ1lQVStjVFlvSUpTRXgKcmJaMnRGOUZOekVHRml1YWFUY1pseG9Ndm9JRFkyQW5nU2RzZFZrS2x3VXlhd1VJSTgwbkRJdUlOaU40cDVobEQrdHh6aDExTjhOTQp4VVc2YXBZRldnMnh0TG1kTVN0Q1prUWNoWmwyR2JZemdLNW1WVlVJU2t6R1pFQ2dGNUlFOTB6aEZIakloUERZRWhCUVljZVR3Uk8rCkpsdUdKVU1HeW1IV2RjWVg0em5TOEYxbU5RTEJMMWF4Z3VEdGhyY2RmakVDeW9CVkMzNVVLb2haRVczcTBZUDNEQ1lwd2lJWHZZeG0KQ2RTQWdPeVhFUkVBWXJXazNCVG0xbVIrTVJBZzZSTTQ2VEpwUmhiQVRLNUxwQmloWS9BWE1TYzFVLzh0RGFIQVphN3ZWdFVwQXcyRgorb0NpNnhaRzNCUGdCSWdQdkMvQWUzZWNWcVRXc0FZREpPUHp4cytLZWxrdERuY05LcmZxUlVsZEpraEFIaFlGUFJGK1BGNG1mQ3BxCnV3M3l1REo0WDFURmpNZDJRVDlIUTNtVW9odHVKdGR5alNYb3ZmSmlBYjFBWmNKQUNLOGdnN2JYVE1WNnJicDhuOXRJYzVVQkVNeGcKLzlWMkpRQ0NpWFdEUUw0cVRxbzduUEdFVldHUnE5YWhWN0hCSkVFb0NsZk9jenZTYVRZVmZjWnkzNmpWVUVLam5ZMEtTOVUwRG5sVAoyNFFLamFwVHJXWmQxRlBqWU1OY0ZWeEpOQzRVUXpDSTFOd25XWkdyWUNQMG9PRVVKZHdkekFiVEJRUTZKRUJ3dSs4TVVLVThMMmcwCktNMW1aVWN6MVE1ald2MW1henRVYmxNUElUQmZ0TmE3alI5Mkp0ZURHVFlNRnp2ZVhUa2o1bVdnOXI0UjFLMnVESTQwYlZYY1REQ3IKOHRhZDFKRDJkTTY0M1h2Vy9HUU5JUnd0WG9OQnk5bWxscWl1eDlVUVp0anRaK0JUMXVyaUgxWlg1bHhZSGNjSElrTjVRT1ErRkZOTApCWUJRSVNVczJyRGJJSHBUT0hpQlFnQU1Ld2liNWltaUZqNEZvd21PdG9lblZVM2hhNXNoS2cvVGtWczVJU0xOVGdtcG9BTEJPWTNKClVXaURHd0pFTnA1cys4cW12WjhKZjI1WHV4QjI5Wk12bURGUFJ2Mm5oNS85NXQzYkY2OS9mL2pKOFhqOS9QbDNydz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJZnYzbTNUUFUzY1ZiMlVra2tCWUllb0JWRkZhTVYwYXRqTU1Jczh0UXhiTHVoRmxSZlJRUW1DNGFsbE1INzlCVVJyd0VxSFZSUVlJWQpWNDE1TVZ3K3BWVkd0NFFXenJBcXVnOVd4SVcyZHQ2VFVUQlFDVGN6OHFuUDBTZ3FUbmhpNGw1djArbk8zQitxTkxrakNzZVpGUmNDClZ5Z2U2b3dqMjZEYVJCYzVUbFlGcTFmRDQ2Ymh1bXVLcm00Rm5jdzhNSFpXVVl5cFRFZ0lSaUVPK2VUQ1dYZE5VSW1uSVNXdmFqVzIKSUltZ2dSdWcwQVRodXBxR00xVUZEK1BwS1h6Q0dZbFo1NThCTEFkRGNUbDNnYU8rRW8ra1dYNEpxWUZITE5zNEZzWjdsS3VtOHVyWgowSlZFNHZoQXdHRGpjN0JSWllRU3JscVczSzVLd0RreTlkNmlWeEVSQUoxK0NScmZRQTY3R1hwRzN3eWFYT0JKZzBYZkxLblJvN2pOCkdad0tIQmJiVllOeEVITTFjM0VTNk1wYTVEQlJ6WG9rSUpaanRmUWxUWXJFazRPb1V4dlltc0IyVmtyamlIeUVZUXMxZkhlanNzcTkKSVN2N0FpUU9DdVpxU1VIMHNFaDFaTkVaZStQYTYycEpYbmdjdEdYVDhCaHY5WWNHNXZsTFFLZjdWVXhVd3hRUm1MMVVjVFl5cG9WRwpBUUNqd0dIV2ViQjJKME1acjdPeFJvaDlNSUtnRmtlUi9vaUV6M1gydE1TZ3dWS0YvVzJlRnp1eE0zUDdoeVdOclVBU1hvTyttRjQxClcxOW4wMFdpaFNvV0lBTWhwRU9hWm1ZT1FJeXJPWGlBVjREd3lTMTRVNTZucHVwTndmaVJhRTdZRExlT3pzZXBHNGdQYVpXd3E2NkIKNlN6VWd3dUJCT2R6QU9UdmNremtzQXZEZ1pFOTgraU9XZ3FubWU2dHlCa1BPWmZ4WmY1aUFNbERuYTIrR2lHb2NWa1ZjMFh6UEpxTgpNZml4SFYrRlREbFlSVEJTY3c4RUFSQUJuSlNRWjIxSDB3aXRxZ2k0NTVBcDlwSDlpV1lLcE1TQTFGUm1sV3pnRXl4b0J5bldaN01SCndla21NaGJXaDd5NWVzbVdxbExDRE9nYXozRkJoRUJkMUJYTm15MUpaVWpLRWxpTndDWHprUllGbkpNQWl3ekVoSWF4V2VpcUpWSGgKUUt5MU1WRUJUZHBzZU5FMENUUXQ2R1ZaK1JyVGVLSzdnV1dEL1I2eVBGMDRUaERCa0NZWnZjeUp5WFQreFVJcmNEb0U0SStSR0d6RgpSYmY0RXNDa0tKUzFXbjcrZkNHNHRnNEVoSHU2U3VuRW10VmtIK2ttbUl1NjZ6SDdmVDdDSGJINXdiQUF3aU9lRmhZOFFyRFdXZk9pClFSUmtaQmQwQnh5NFNjM09XUSs4Y0VrSFFKY3huSENyaW1VMHI5R1ZWakxIcmNXUmNMYmpmSGEweFNxeUNEaldhOVMxUU13Z3hxeHgKSzZ6d2pUN2l4VmVWMm5CbjErY2hrbURoYmJScTM5aEFpd1FWV0FuR2pJelpGUFVpWFRGTVdhamU3NmJSZ01pejl1QVM1enNnTVhwbQpSS0ZLdW93bmluUnJ0N2pxU0tXb3Npa0Nxa2xBQWhxNHlNbTlHV0hFQ2t0Ykwram5va2V0WStMQlEwZlFsdXp6Q3Y4Q0VqMVZUWlRSCjlBVU1zd0lEWjZRaldUVVRNcVZQSE15UXNwNTB4VTBYUm1wSURNcXVOc1hjYk5WV05RQmQ2bzVHREF0Nk5qSGVWTStUYUZJUXJFb0kKQnlSVnA2TzZCK21maHA1REF1RjVjRkM3dnNiVzZxcjFvb0w3cW1xK3BQQVZrMFd5a05JQmREUnlNSW5acHNjTnAyQnlEUFlWUFpJdQpyN3FqTzRZak9kRElJQnJFblFDS3p1Zms0Q1ZHRFN2ODBJSGRQS2lJMHltbzQ0UUU5YjliaEF1dkk5QW5MRDNtbkZRT0QrelZ5NnlaCjdEY2U2QUNLOXVpc0hJK1Via1FyYW9RUGxCWTJUV1ZLVHNIOEs2b0tSUFhJV1F4RWJydXBScHJEeXNaM0FxYU51RHVBQXkwcFBUTWoKTzZHWnhHZ2M5MXF6UVJZQ0FYbkxTSUZlc05VZTFtalUxZUpWTWUwQVR3bDZXSUxLdG51NSszUEs5Z1RhODBDWnFwTlprNmtGRGZXQwpqTXM0ZHFDTUNUSkk1ZzNER1M4RXppMmFhWW5xbnNaaVlZMXB2QWlQaDZGMkE5Mnk2a25yM1BxVjBmdlpGYXNleUtLeGhKckdrSjZ1Cm1ldUdXUTJoZjJuK2c5UXUybGE2ZXZ5aW9zbi92R2tsekhUaE5FbVE5Nkx6STNxbXhhQ3dMOEFlNlE5ajRDQW5qZHJQK0dhQW0xY2UKT3FOdWMvZ2hwTW1LQ1UrRXB3Rytrcmw1ZUM4R3oyMTh4Sll4a2VkSEppN3NhSGtsNExnbTB0c0RMN0s1bzhMTUdEYW1qcU1yS3FxNwpHNFNBN2tnOWFCTDNTbkR6SlpvS1VZY29wLzZFMVZLWHpXb0U0bFhZd25oRU5mUnBUWkdta2YwZVA0ZlFGM2o2Z2JOb0VTOHczK01rCmxzMWlDb0RPd01sQ1FLZlJUb1Z6WUdnMnBybkNyMW9zRlJkcy83TW12YXpBSzh5UWl2RmVPRmNjeG0rbVUyaEJiSXRCTElEbFYzOGQKOFBBdzdzSWgyK0lWT0lteFFIcHdQcWpvU2JoQWFmZml3ZVdhRjJUbFpnZEtRUmcrOG5ndUxRUU9salBJNEYvTVYzcHVBUzN1UG84UQpSQ2kzRmNHTEFwT241ZllWZ2xES3RaaVJqY2NzV1pDYWhxVERSdGloMTNva0djOEVObE1Zb3ZXWXNpSXIrb2FFaGNjTnEvSFVMeXRRCmFLRHB1Uk9abHVxd2VpNkhhcGtuTEtWb000WnhPSXZucDRqcU1RUjhudmxBc3UxUmhlZ0d0U2N1bk9zeFdrNUxxRnF3aFFFTHFPYnUKMlk1aGpZUGRyUUp3eVVOVHpUY09WSUllbGFyUVp4S2dMc2N4WWdBZS9aWEhBeUcyU0kvOFlob1JNT3hpWjN0eGprYW1wZWdISkcvMAowRzBlSG1vcFBia3QyM0ZMeUNyaS9Qakd4b3dSTEF6aENob2hTV1JKTXNNb3Zkd3crS2JZTlY3NjFBSGVCSkZCUnZTOEp6cFg2RlpVCllNQkt3emxOQ00wNldJVUpwcWpCaFMzT083bGR0bGpLQnh4cDBHZElVR050V2kzWFY0dk5UYW90YVl3a3BEQ3pwdlBkbGszUmRqeG0KZ2FHd0NMeExCTWtraTZnbHM4WmhnL1BjczRRd3BDdDU2RGxNeE5pK2s2bG1yQUhzSmhDVHBaMzNaeG1yMDZaNFl6Yk9sSEtiNWU5QQovSzRzdUxScERvaG0zNGFFbExBRlIzMHp5a0xKWEg4TUJhL3FBaUNhU2tjdHFzZVlpejdZSWR0WWFkbGkyZ0VneE5URGtxeXpNNE5WCk5UamtqV1hBeXJJcUxDUWpoUWVHWXpHdkRXcmtHdHRsQkd1RHFORTVGbFdmMVVYR3p6QkE1S0lHQ0wwS1JneGhUSm53WVEzK1ZKQ0YKNTZGWkxDOERRbEFoaXV1WVlXWEJDYUV4S2F5RXZZbEdWdXhOYWRIbG1zdGdnNGViaFdrM2k2cThJTkJRQUFMRG5rQ0F1d1VFTjRXQgpTRUVEYlRFYUdDSElzSHVDNEhkVDdGaFJDT0Z6MndtcExpNUluVkUxU2JuT3E4cmNJZ1FjZ2w4bHk3bkFxd0x6a1NzeEdWSWYxamxtCkc5cXFmUTZNblN2TmF3VWlJaFU4b0k0RVFyYUtoNFBDMVErSFZORVZySmNWVFJDQVkrMnE1ZDZtWVk1WldSbkl1ZXFaS3d3VG5vM1AKUWNUVm1MZk1OSmR4dHMwNWVWenJxdkJyQUluY2trTEJEUlp0T0ZZM2srU1NmbGF2RlQ1elVnZDF2ZmxWUEVNQ2dYcmNITkJNcGY5MgowVTlFSXlVTGlsUFJKU2lhQ0lwRlpBeFBOZ1JRdEN4QzBjS3QzQmZtUWhuVHBqQkVwMnFjVE1vODlWcGRuMFRIenJRbURqc01zQ1E0Cnd5SzZQMmkyQS9nWWx4Y3RpTUk4dW5rZXdoMXBGV1dnbGFzMW1OUHcrMVlMV1NLU0tKb2R3OStOOHBOSVlSdDBEb3BsZElRdjVxVmgKYUhaUzNnZ0Frb3BscTA3czZObU0wV0hnc1J4TGlubFp3MW9vMExmREFqYzlhaHRTTGIxL09MR1pSNlFWZW9jMVZ4Q3owUTdDRWd5ZApWVkU2QkJ4VGRNYk90aWx1aHArWjc2anF1dk9yRnJxQUZVWFB6endCemxNL25RcmduMVc2QngvR0lvZnFuS0tmUWltekN4T0pKMkN1CjZzWGtIbHV5SjdLYURZQ2FOVXVCTXZsWjVUWFk4UmloRERNZ0pPVjEwWEJvcG5MQS9zVjBVS1duckdJWUY0aVc3NEdHWHJTZG5VRGYKV3U3cURkcW1teDhlNTNtMkF3L2dMV0F1ZUNJR2c2WnhBa1RmTVNqME5xNmFGbzN2eStNR3dURmhUNG5aY3VtcXM0MmYxUUUzTjErdgpWdHFLZFlnR2srclJMN2g1VUF1ZHUrMVV4QTYybzZBV0pqRXNkRkFHQVpCSEZCZk9FbTVTQUVEMGxnRlVzNi9EKzBlRG5OVWlBUndGCnpUaWdBWjQwS2lERjlFU2U4d2VyUkxIVUtjemJpeTJtakxsVVNsV0JwdFhDOVhDU0VaaUhTZXlFdW95WEdaRjUwNkVQVk4yK2dZZGcKNHZOcTV3TTVRV1czcXRieFZtdWIxVHlNb0J0R1NEZkMzR0ZialZnOWl5OE1vd0Q4MUdUeVZiVk1HalVPSHRxYWxFTlVwcU93dE1SYQphU21ySGxUQWNPMjZFMHVUeHRIVmFNSDUxU0JCZ0NDU3JlRm1SUzlyTm13OEVyTVhnQWhJSE1PL0VFbk1rNVpYd3djQ3hGM05EY0xwCmlDUkZLMDEwbWs5bVM1cVNOVjJwYXNjUXBVcERZNE84a0lqRmh5R2lvQXdDWE5nNEFwVU1HeW4xNEJsaW5udGZubHN5ci9GR1l4OVIKamZBSTRqTnpGbTVKc1N0b3BxVlZNakVFUGg4bVRFVzJzVVJ2VmJaZGI3UDFTdHVKSS9Rd0gydFdJNUpIaWpIcUNKTzNNR0ZVVUdOVQpOU2VYM2k2bzFhWGFoczdMQU9tQUNSMTZLd2dVQWFzRlVmdGw5QzJEQ0E4c0E4cG05blZtWEdMVUdCSm1kc3ZkU1JoaDUwSW1MNDB2ClhEU1BCM1pYWmxSZ3gvSTR2RmhVbGRWWHN4UmlvS3FDczdseUJRb01qUm9ZaDBRc01GVTRPRm9mcTI1bXdLanFKbWNlQVZJcW55SXEKREpaV2phMjV3Nkx1eVNGcUh2VkV6VkVEVXV2WVRGRTNzWTY0TzFBQlFiVGM2ZlFyY1JzMElKSzZZbzJnN3hmY0JMSnE0QUFXSVBnNQp3SEFVWWJET21DSFBLY29VaWlWbWJQWGdRb0ZLUjlHSitLQ3FhaGllc3dYY0VPeTlXREN4YXRCMDlDd2FKY3lNRTd6U0k0azd2cnIyCllHSlZJOERQNkV5RnlrWWhDTW5YR0dRYjY0QzRRYlJYc0hlazEwdlY2RTJQMEtINjNTbGhpQzNveEtnNTBvdW0rWUdEbFc5RTRITDIKQ0J4WU45aXA4R1VsbW8xTlZZRXUyUklQcWdpVExYNk5kczVTTzhySHdyMFh5eEFCdlVnVE9FS3kzelRUa3NvbnRJWDYwYzY1YUZCKwpDRXUvZzZXUnROUXJyTVB6NVlDcHlFMm5ORUFGckxtYUxtdmROTW9aa1ovY2xRbWpZdUtOZVFUWEI0WDdZL2xEaitPekJxdW1xZmVECkpqWmtoN1hEeDRMQ3BCaWFSZUVhYVU0V0U3V29wREV6Z1JvUHErTGg5RXBtZFYySC9rZDRTMUdQdDY3aWJFQksrdE5kd09ZWkJId3UKYzBVeWZSVlkzYlphMU1pcGJIVHpHUVd2Ly9KSUN1Y1BidWl2bjR6NkpOdnV4K1haUFQzUGJkWFR2OGVzdTFpcG9kU1dkRGZ5U0tyVQpjdTdDNEl0RHJzYVV1MmxUOTZLbjNNV2hvNWovbm5GMzVUa2k2NWh3RjdvMFpyRG4yNFZHS3ZkdDZYYWhRMVU5VXJCbDI0Mk1hVmxhCnNsMTh4cU42cmwxOFhqUkRiMHUxeTJ0Q2JwbDIwVzRwVzB1MEd4bXp2a3V6QzRTaXBmU2pReEYyVmxqUE5jbHVOdVRXa0dNWG1HbUsKd0paaUY0R1NNS2g0aHQzRkVGRzdCTHNqa2ZsMWwyVEpXejI5N3BMVWZMdkxycnNrUmZLMzVMckk1UDcvc2ZkdXU3NGt5WG5mRS9RNwo3QnNEdG9HaEtzK1psMUpiaG1XM1pFR3daQW1HUWRETmxrU0RQU05RbEFtL3ZkZDNpTXlzdFhvb0Nkd0NmS0VMY25yRnJxcC9IVE1qCkk3NzRCUmRSd2RhdHpuNi8wTHBNc3VVUlpOMXFoWS9CdXMzVDZNM1ZoYVJTN0ZkamRZTjF0cW02aU5qb2c3K2d1b2hhNURJT1U1ZTkKZWVZNlNGMG00MHQ1RTNXYmkwTTJVTGNWYWUwMlQ1ZUczdDQ0M1ZiTVdRaWFMbzZUNTJIcE5vdklYaWhkdE1RUnVVQWtYZWdmQzFONApCdWxpWlNhVXdzWFJaZnF6OUlQUlpjSFFPQkRkUGtQQ2RERjA0ZkVYQzVZNGQ0NGh6V2tRZERFSGkrQi9BWFE1VmZkNitMbXMzQXBVCk1UNnhxTzk2MFhPallzbjRYQlNKemNQTzVaOHV6TjNSZVhpM3ludWFuSXVPTUpwQkRjNGRsU0dpRzVzN0hLa0lhaTU2SFdDbURHZ3UKa3V3b3lMcVp1Y3VOTlFLWnV4SXpKUUhNeForY0JTNHdHblpaTldpNUsybCtNU3dYN2hOV0p6Y3JkM2JsSVFPVml5OFlxODRnNWVLOApxL2Jkb0Z5SXN4QlBDVTR1UzJMeHFRUW5sek1jSVc0M2NaalRYaDJiazh0Wno4UmJjbkl0SWlzdlRpNDFaUGpJemNtbGdpeEpDcW4xCkpBelVMODRiWHRXMU5nMU9MdTc3WTIzb293dzQ4OHNYSlhlNXkwNVFjdlVacXcwVksxQTRJeU80ZFdOeVpaeHIwdz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJYkdHZ0dyeHZ1dGFqd2UzRzVQSmRvZHphbUZ4Nkt4UmtYYnN4OG5oamNwZnB6a0hKQmJzaDZaT2dDQlg2L2FZRjEyYmtycXhmQ2tTdQpGMEFCeUYzVCtxbUxqd3NiUHFiQTR5S3FnTnJ0b09QaU5GcTUyYmpJdUROV0lqUXVYdjFIQjZYdUZXSTVDbG9QR0hlaHFxMmx6Y1hsCnkxT0Rpb3U1RWl1K2k0a0xQcW5iK3pBODI1WWNyQ0RpdGtObjJ5TlFzKzR2ZUxoZ0Z1QkhBNGZicFBpN1liaE5ZYTlBNGFLK0Y3OFMKSkZ6OHpWKzVTSHBJVUVBc0hCemNIazJPbkl1QXMxREdEY0h0YnRRVEROenV4R0FnY0JIdnhpdHpFM0JaUzl0SEFIQ2hSL0pycjFrdApLWTEzNDIrclMzbUNmZ3ZPR2ZWOWh0K0tmMWRlN050cXZFaXdiNnVyVkFKOWk3K0Jjcm5KdC9zNEJ0OHl3UUhaczhDM3Rhb1kvdWJlCkZnK09nYjFGRkxxV0h0UmIrRkR0NlMvcUxWZEVxd1QwTm5jOTkyRGVmbmJOSWh3cEVUQW01MW5leUZzVVJTQTBaZUl0YUJGTmZGc0MKYjV1N0M5NjhXOElobnJseHQ4M2xTa0c3eFQ2Wkl0dFRPSXVWaHRwRGluV0wzK25zNUM2SWJjdGFGMXlnVzZJUkxocHVOUjAzTUxmSQpVeVB5ZEZGdVVXZGVSdDJRVzFSc00zNXN4bTEwRnJzUnR3QjQ0cFV5MGJhNVdldjVrMEs1bTI4TGhIRTVkTnVXbmIwMDNCWi9zNFQ1Cll0dFc1NWNEYmN2dkUwWGRJdHZ1UHkrd2JaMUt3Z1hZOW1PaHBNSlh3MXFhS3dodXJDMXkyNkI3QnRhMnVZWWdxTGJ3UW5IWGI2Z3QKM0poZU45SVdJd21URjBiYTRwK2JPTGliYUl0VElVL09RRnNreWxBQUhEemJWaG5MdTJtMk1QR0xNczRXZitPdUI4MFd3d2ZrSGpmTQpGZzRYNGFCbTJVS01oekJMc0d5QlZXbUNxdS9KQVRsSERySWkyVUtiaU1CRWdHeEp2eXoxeGJHbGt1SGpKZ1hHdGpvWUVCUmJnR2N4Ck9OOFFXeUFWTDRSdGRVNDVDTFlnVWZKRHZnQzJoZjFFOHViWEVqejU4WG9FdmhaL3AxVmU5TnE4eEc4TGVHMVc4Qy9RdFpuUThCZTQKdHJoMXNMbTFoZW1ydkxHMWhjclEvS0xXSW1XV1ZmVEVpbUpRbUhWZVV2MTB3TUxYQzFtTEZFUStGRnNvTXJpcUMyQXRKQVZFZXI2QQp0Ui92S3g2MWdiV1k0L1NFUE5XakdyKythYlVvTFdqandHcmgrai9qc0dvZnljOWZxRnFnMXNZNHBGcmNuSXRUKzNDWXV5bTFtSmhRCml4bVVXa2dlaTlvUnFpYU43ZWhmaUZxZ1pqRXZiRVF0MGhLaXlJcFF1NFFWZWdGcWtUbDd4Z2JVb2l6bTBHbXpaWGozbElvVVpoTDkKbElJQ2JsUHlRZE11ZFVCOW9XbVJOVVloVDVCcFVkSFcxZ0hUeHQ4M2x6WnNnYVZkV3N1Yk9BditKOWJZRjVRV0ZaVm9wQnhiMFBtdgpHMG03Lzc2SXRHRUxJQzNxZlhEVXphUDFhM2JqYUJmTHhldW0wYUo4SGk1S3dHZ2ZMb0VGeTlpYXhhMHJDaG90NUIyRVdRU045cUZXCnJMeHB0UGc2S1JJSkd1M3ZtRmJDV2pSd3RBOHJac1VDM2dNT3lqOTd1V2kwOEtyd2Q2RGF1ajd6bTBVTHNpRkFRa2JSZnJ3c0hBTTMKaXBZcXgvSW0wV0tXZnRJRzBRSm5NeEcvREJBdFJnaUdRRzRRTGJ1bnozbEF0QS9vejRqTUI0a1dxMklNakRlSVZoU3RkRGkwai9seApnYUZGa0tYTUY0VVdJV05FbFFKQ0M1bk0wMG93YURIdVBDTy9FTFNZVVRycVNrMmdCVlNBWlVOUk1JTlFVU2t2L214dUd2ck5uMlZsCnM0cVhtV25IMzFQYy9aMXF3bUZLR3hzK2k1eXlRRUxXYkRhRmRpNzBMUHl3cmlKY2NwdllkMm5XRFo2RnlCQkJtSnM3RzdiQXprSWEKTW1mYTFGbmVFS0kzams0Y0FpTzhLOEdjaFJRQVkyQWdaL0h2N0E1eEVXZGhtK3k5STBsTGNSMTM4R2FSWWMvdFJadEZucDFNV2NObQp5ekxjMUt4Wk1HeGR1YnlyK0twMUlVR2F4Y2pHUllRUnNxMG9WWDl6WnVHd0kxNFhOc1R2eUtBelpUYit2aUd6MjJiR0xKcnpQa3ppCjZqMzY3TEtHUTR1QXNLbGNGMkpXRFRGRzM0alpWRjFNdFJHemtDSUloM1VJczZrNGk3c0pzOWhLdUZHTGVmQzlNT0J4QTJacFRSY2wKRmdiaFJvTXZtMWdSMk1hYkx3dnBBMHV4cnoyN2FQNmJMMHZMek9YTmw4WHhLRi9jZkZuQlFsYzVmRmxwWWNvbndDemg0c1VKREdhNApTM1plSWdDelJLZU9OTitBV1ZxRkhEVmdGdi9Cbk9ZR3pQSS9tRjY2Q2JNQ3k1WjVDTE84T2tSbk5tR1cvNVNNNU4wUXF6eGRQUmVFCldXYWYrR0lFWVphUGhwQzBtekNMQkpGU1VTYk00ajQ5ZFpaRG1OV1RaK0xySXN3eUw4WklZUkJteVRaRlZYa2daZ21pWitqeVJzemkKQjFEMnNnbXpPQi9seDRJd3kwTXkvSG9UWmlsc1lwUXhDTFBFNFdmM0xaYk1NcHY0OVNMTVNoTFZEMkNXQm5ZT0NjQXNMT0lTM1lSWgp3bG1adnd6Q0xHS1ZpdnNHWVphQlAyVVlMOElzTTJQNmtFeVlaWXhuK1Q2eGVtMDFRWFplZ0Zrd0Y2UkJGbDhXREVRQ3N3TXZpMFpWCmFwVjI0V1ZYaStwUzgyVzUxVGgwV1J4bU9lMjU0YklJMmZEQkJsdVdnU2tWVlpndGkrdWdFdW5GbGwzTFgwS2daVmNTejIrVFpaRWMKU1BYTmxVV2NVTzNEakpXZFJiaXhUWldGQWV2TkYxUjI1bWlhWnFZc0RLSUNHaW1yN0VWNUUyVlJvcTN5VVFObEdUNUQxbjREWlpuUApiMk84Z2JLODVQejBBNVRsbytOWEdFQlpjREFSbDd4NXNzdTFpTWJKSWxiRjRMOXBzdmk3OXBzbEN3dGxKVWJKNGdDUG9tc2t5UksyCitmRTkzU0RaeEt4N1Nwc2txemk1a3d3c0lNRHNKNHppUlpMbElFWVljNUJrZWRPclhoVnhHbkNqTUtyZktGa0cxSWNhR3hJbFN3T2kKYllHU3BjRUUybzJTVlE2bTVZMlNWWnBram8yU1ZmNWx6UmRLRnFkTWVWaWdaRmx1dy9yYWFQU0ljbE44SHpkTGxpME9vQ0VJbGl5RwpkbjVyWnNueW5yQlc3bUxKMG9qNHVWbXl6SXdqQWgwc1dSaVlSTGhac2pBR2daWXNXUm9RVndtV0xBMXNTM2F4WkNsNXBLYkdNRmwyCkJNSFhIekJaREI5VUhOdzBXY2tnODl3MFdXNkYyU3Rvc2lrN1ozSFRaR0ZrZWlGb3Nsc3NLWnBzSXJ4bnRCZE5Ga2I2RWtHVHBRRmgKdktESjBzRG1NQmRORnFNMktibUd5WXJvdjFMUVpObmFHd1BXelpPRmtXV3lBWlJOcElhV3VZR3lOTENLK3dMS3lvaGtoWUd5UEE0TApEZzJVaFlFczl4c295MDRJeUxZSFVGYkZFbmtGVUpaOVFQa09YMEJaMWNZQXpXcWdMTnJWY05JT29peVV6eFMyM2tSWnlxR05rU1pSCk5sV2pmVTJVNWQ5OHB5K2tMSTJRQ0FSU1ZxcnFyQXdST1Z6OE5XcVRicVNzWk5UNnJpblFZT09mcFZwQUVtVzNRdm9teXRLdGExbUQKbkFTZUlQSFRtUW1pTEVUMFQvb0VsSVV4c1JneWlMS3dlSXA2b2dkOFBYbkdqWlJOcDMyQmtiSThGbnRHQkZJV29uaXFMRjlJV1Z5agovS3hBeW5JK1ZvTFdoRGE0TitNVFVaWktKNWFYQlZFVys2bWdMWWl5dUJFaUc5eEVXVWpZVFhVM1VSWXZGaitLQU1xbTVvNlJMNkFzCnkyV29DQW1nTEx0d0tUVnJvQ3g5Y1FDU2JxQnNpb3ozQnNyS2NuQ3lYMTM0N2R4akxIMmtGTjg0V1VFUzhxYkpZbXlsTk5vMFdUMzQKbFY0NFdScmhpd1ZPRm9lbWdEbDRzakJ3VnJwNXNreVR6N0Z4c3Z3YnMxVHdaR1hvNjhXVHhZOGhqUnc0V1g0UEFralNqOExNWUJUWgpscXNodjRZU2xjREpNaStaK3ViRVloU2FiYjVnc2hqUG5GbWtyVWRyVGFGa093YVlaNzVJc3JBOVpyNU9iVUpNaVRpeVVPZk9GMFdXCm5lZytibHRBWkx0ckE3MEovc1NRY0NOa3UxdTZCa0VXMktoSFFXSEVpTkFxRnRQRHhZOGxqSFhWTUxIWGErdWJIaHQvWC9EWWJUSTcKZG5yT0RTb3NXS2tzMHJuSXNhTXBhcnkzS1FLRUJEZzIvcjY0c2R0a2JPekh1VlBuYUdyc2ZBU3R1cUN4UWNzTlp1eDhOTFFGTW5ZKwpiaGgxRVdPeGo4bXZqTTFNQzBpQ0Z6c2Z2Ym8zTG5hNEJVN1FZcGtiVTRpS3RGalFCTWpOdTJDeGhJaVd1Vm14QVJVTlZDd0MwQjhECndRMktoUW1mVW9CaThUZHlvY0dKSFNLMzNwVFlZYWxYUUdLSHU1Y0VJNVpCNnR4ZmlOaHVEeUVRc2ZqY0prdkU1Y0dONkJad0VXSUQKR3hXQVdEUzhRVFl6K0xBOUszbC80V0ZwS25uVFliRUxrWVNHd3dMNnd3em9nY09DaUZYR1JzTWltWW1Vczhpd2dHR3hIMWw5NWJkWQo3Qk5jV0NSbUtWY3hGblo0VFhoVFlkbk9sQldtZ3NKMnJYRUNDZHNOL2J1SnNEeVJ1bm13YkROOWFMQ2RZYS82Z3NHeXVBdHZvbG13CjNjVE9RTUh1UXh3UWJIZCtMeml3dzBtVFozL0Vvc0NDU29GUUJDQ3dHSlBTaFh5ZDBTYmpRc0JDeDhYVlNXeXp0RndLQUN4SlYwUzcKSHY0cmlSV29JVk1xQ1g5MjNpUFJYNmYxQ2pmOWRSbzBHL0JYcU4xWnZXVDJLMUMyS05PN3lLK0xvZDJ5d2E5WWJiTEJnd3VDNCs4TAorN3BOcHI2QzY5SkY5aHRXam5HZGNUTmZsNkV3Z1h6Rk9veWZheUJmaVRkb2FoYTFrYTh3U2xHc2lCVjFIUXdlalNoZDZacktMK0lyCmdVaEQ4VWI1RTVCYlVVdHE1Q3Uzb056MFFyNWlDdU9vSGNoWE9KUmw4MTVuMFJPL2NhOVlKcUhTUDJpdlBKdEhHNm5pRjM3Q05LSjEKMXczQVZjQ1ZCdTVWYm9JZ3VXclRsZHdwOXNhOTJsVW9HL2NLQTBlendMM1N3UExsQy9kS1A0c25idHdyOFFrWWVvTDMrc1hsK1BHSAovNks4VjRiUXdQQzVlYTgwSXNvWXZGZUYxVXJlZ0ZkR3kwaDN2NGl2RElwQWVCTEVWMkllZUhBUlgxZlZ1M0FEWDNIQlhKMEg4SFV2CkJBUDRpckFYKzN2ZXdGZTFQcFREUXVJckRUam51Z042WFk1QXZlTjVvbFFFOEZVUnRkNDI4SlUxZlNTMVg4QlhCcFllSjdNa0srb1MKa0FmeGxmRUxacXN2NU90MkRJMTg1ZnRub1lEcTR1bktJa04vSVY5dkkyUHV5Ukh3UUw0UzZkQ1VwdG5JVndyTklXSUo1R3NpYkRmbgpqWHcxdEtLOGtLOVVDRklQWU9Tcm1HQ3RiT1FySGlFWE9UZnlGZVVaV0VJRzhSVmxSVVFtcTVwMXVhbkd6WHVGSnNsUWFYck44RWt4CkNnVHVsYkdqcWk1L0cvZkthRWRYUTJQeEJ4NzM2UXpjS3cxTmxYbW45b1hHMmpmdWxjZEJoRE53ci95MVBGKzBWOGJvMkJ2WnRGY3UKQnl2ckwxalB4d2dUYVlNSDlvb3dqUHMwc3pvSXpDYXNFUVAxeXRLSlhGK2tWeFFORVJwcjBPdVk0cllGNTNXNFNPdkd2TUpXVkpGSQpWZnR3dldoQVhvZS9oaHZ5Q2wzYU10TVZRa2pSTW9Qd09yb2lPVGZnZFRSWDI1dnZPb2FLVUUxM1JZaUZyUElMN29wK0RSaFRBKzdhCmw3dGJtdTNhSFd1NzBhNWdEaUZvRkdUWHJnaGVjRjNKS0JydGhYVmw4eEJrcGtSMXhSSHdoZ1hVbGYyUXgzZ3hYYnVyTDZPTUZUMHMKc2lyWFdiT0dNOGQ2K3lhNnN2OXdMUnZveWtMcm5EZlBGYXdvT0hrM3poVXViOVk1TVZtR0xvRkZsMEdZYTNVVjRNMXl4ZHJSemV2cApZTmE1QWJBTStlTnZ1T0EzeUpVTnpVZmVIRmYyeXNsbFkxd0JJSVZ5NWFhNG92NlJMcmNocnExcG0yQzRRdG1DdGZHTmNJVU5ybndnClhLR0lhVUt2Y2pVSnhZeHBiYnQ2dkZVbEpBTGcycXJrc05jK3JDQzY4YTJvQjJmSnU1a1Y0WVFIdmhXMUpKZy9iM29yUUJQNG5ZQzMKdHJsNzBuTE1SeFVNeWJvWHV4VTJmRHFCYm0yZVhvTGNpdk1vSnNSRnJoWXljSVRhREc1RlFuRWNkUitJQUVYaTJZMXB3WlV1MXdvQQpYSXJGRGN2cHpXeWRiaVIvSTF1WFZ6ZUJiRjN1MHhQRVZtaDZpWGk3Z0swUWpMS0kwYnhXbHRDc3RYR3QwQ2NqQUhmUldpVmozcXpXCjVUQjJvRnJ4ZC94S2tGb1ptSWVySGFUV0NLRUhxQlYxUGVBZzNKeFcxT2h4N1dsTTZ6TEdMeWl0eS9IY0c5S0tuSURlakFnb3UySTcKeEtxaU9lWHhnclRTU0t5dzVWT0pHTTFjTjZTVjRXejRxamVrbFEydUVmb0xTQ3NtZHNNQnlXaE4wWjdnWXJTZUk1blJDZ01STk1GbwpwWG9mUVltYjBRb3ZKbDRJcGFuZ2dMTjN0aG10VHMydUY2T1ZuaGRiUDVqUnlnd2tacDFndEg1eDJDSlk5ZjBZcmNzdFcxNklWa1JkCktmUVBRaXVpcmxHOHdQVU1wdlJrWXV1V3N5eFN5Z3h0eFhBQmd3cEJUV2ZGYmt5ZzNIQldGaVhLcXlhYWRRVmZOUT09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJaUtzS2wxMm9WcjIyOFAxWWNoaWJvV3ZUOU5xRWhmRW5yM09CV2VtR00xOGZZRll1ZHBoYURqQXJRM2l1NGR0NFZZYnhXQnRwTGl2UApDN1hTbTh0S0I1ZmtyYzg3OWlxZHZkb2NzeUptam04Ynkwb0xPN0hlV0ZidXdGb1lZMWw1MFpoTWpHWGRmOTlZVm9aeldhMXZMS3NxCmMyZmRXRmJtcjFoZGNHRlpHZnhtZzdnUnNyVkh5czdnc3RMenpRS3NucHBDZUU0NWJTd3JZdThzT2pLVmxmOWVoSURkVkZhZUVlNWMKVUZsVDlCRUlLaXZGK3hoRWJ5b3JqZnlvVFdXbGdVT0txYXdjekZBN2NGTlo2ZTNodklQS0NnT3JZNFBLQ2dQVjVqZVZsWXRLanYyaQpzbExac0JReTBxOWpkSmhLQ0cwcUt4ZVp1R3VCWmNWN0RkRitVRm1WV3l6MVJXVWxUd0pJZzZDeUtzR2QrcWF5SWpiUE1lV21zaExvCjBRUmQxVmdJeHQ0OFVGWkY5RFZlYlNvclZRd0lGQVdWbFlZaUNpc0NXTnlyS25Cekt0cWhpZUs5TnBXVlhMcWtZTjRRNGkzcEJ0MVUKVmdnZUVPb0xLQ3R6YmZNd1dhR0RZZERpWnJLQ3A4WDA5TjRLbmdPQkM0YXlJdTNCOStPR3NzTEk1cXlDc2dJR1JIY2dvS3hJenpCQwpkRU5aeVI3RGtqT2dyRERRWXdzb0t3MlFTdDlRVmdKNldNOXZLS3VJUFI5M002Q3MzSTIxTGhlVU5UVzdhUUZsUlYwcmx4VUJaVlh6CmJqQ0VENVNWYVN2V214akt5cE91OGdVSVpRVytqYUNBaThrS20zN0xUTlpFVWsydG04bEtBK0ltTjVNVlJtTEhnc25LclhqOVpyTHkKd0VtYytNMWtSZjVQbkFveldmRmtpYThLSnVzMjNFeldZelNURlFkblFDSm9xNG42NGp4ZlRGWmtUT2wwN2EyeUZqQ0JaTjEvWDBUVwpzQVdRTlJIU0JTbUNnYXo3WmJ5QnJNeDhvaTQ3Z0t3c0ZVWnlPb0NzVEdPWmdIKzZ1OE80NUo3cEMwWVNDNnVTQUxJeUdhVy9kNTBEClgvU3FtOTlVZ3Z5SUIwRkVBLzRWNjhlYngwcThWWk1QcWV4eENkWmJBRmtad3BrM2o1Vkl3Q2RMVWpQMGFhZ3FQbmlzL0ppY1BMNDYKVEZTNUJ1YXg0dStPQkY3d1dHR2dwM1B6V0dGa29ENTRyRFM0R1NsNXJEUThPazQ5MzBwV210UkVWbVpYS1hJS0lpdjBhaXlKZXhGWgo4Wmk3T2VzRVlyS0NmNmdmS0lHc2xHOFJHSElCV2FrVHlJS2c2NHZHK2xuWlhBTlo4ZGF4ODlPTHlBb3IrY0NieUVvTEhzbEdzdEpDClFkdU5aT1h4Mk9vOGtLeFV6TEVxTlpDc3NEQnVkU0ZaNldBeSsya2tLd2xXZytxaklJY2treUl2SnV1MmJTWXJKeVBxTW9QSnluczEKeXljb0s2eDZwUXhsaFlHTC9RMWw1U2JVek54UVZscjVoQUxLS3Z6WE1LWlZ1TTZzRWU4RlphV0k3akZycVd2bTdCb3FOcFNWakFLbAo4eThvS3dPMnJFOE9LQ3RySUtsVk0yNlZiejJ2KzRLeWN0R1NqbTFGTDdSQUFHN0RUV1E5Um9OMjBNSkMxQkR6V0wvNDJOL1ZqZis0CkUxV1lpWU5qVlZWNTJqUldlT3RjWVFXTUZaSGNYdDhzVmdTSldGNXJGR3VYdW5xVFdLZEsyRjhnMWcvYklERFZTRlhJSmhBc0RCQXIKVnMxbzBITnpXTEdPNi9jdUErckVEV0cxM3ZQRllFVXRJSW9FakdCRmV3MXhTRVJnUmJ5eXBmb0NzRUp5alFwNzgxY1Ira0xOYk5CTgpnWldGL09QR3I4STJpV1FWZlJWQnVtZHU5aXBVOVNpV3VkR3JVR2Vqd0NMUXEvaDdJY1J2OGlyK1JubnZUVjRsdlBialF3anlLclRuClVERHNVNFBJbHF1Umd4SmpNZ1J1c2JDclVGY1hmTzB1N1FLVmJ1RUdYZEJWS0crSWw5YUFXcGJHOTBDdWxzNlcyQmR2RlI1RXhuTEIKdUZYMlhudktwcTJDYWxlZitZYXRsaUk5d0dhdFFndmVpR1IxU1FRTUtDQjZrVlpoaEdRMFFLdUZoUHQ4T0tzRkViVlMzcGpWc3FRawpKV1VWbVZBeU5mMmlJTlhNRmdrWFk3V2FMUmVJVmNiQTF0aUVWU3pZdWE2OUFLdUlUcERuRXJHcXg5UUM0MVc3UlZZM1hSVTI2b3dNClY4VStTNWxKUlVvZjh3Y3V0R3F6eENuSXFzM3Q1d0tzMm1LcU9XQlZxRTRZU0RkWUZaSUl2S2ZHcXNJNUhPa0ZWVVVnbEFrdU0xV0gKRVRPQlZCMHM5SHNCVlpFQXo2S2xrcWM2alBZSm5DcDJBWUxncHFsQzZjTDhsMkdxbU0zQlh6WkxGVElzMWlsY0tGVmNIaWJwSUtuaQo4cGxCZFhnUzRVT0VXbStPS2dKdjBDMEdScFhaYXBFVG1hM3JLdFMvR2FyZFBQOUFxRWFKY0JCVXUrdi9iNEFxR3g2VXRmbXB1K2pUCitOVEMwdVQwb3FkV002OENuZ3JJSjlKalpxZTJzdkdSRzUxS2tFU3VtNXphM0ZZb3dLbk5Lc1dibXdwYkVRQ1ZxbHBTSlhyZTFOUlcKQkpxL3FhblZBdnVBcHNLTFl0YzBKODlRL2NTZWZoY3lsYUtEVVRZeEZhUU9mRGdHcHVJT1FFbDU4MUpoZTFiZnVGVGdGNmZFTjZTbApGcVkrMGd1V0dpaVZZS1VXbGwvblFLWGl6NHlydWtpcHVCdVBoRU1FcFJhOGVpS1pNTUZmV0psZlhwaFVWUDJ3N2t1RkZTVnIrZ2hJCkttcUt5SFc5R0ttc0FjaHRJMUpGdmxxYmtJbzhaUjh2UG1ydUtySU1QQ3IrQmpRazZLajQrNm5yQlVmTnlJTTg3YkJSUVJaU2grbkIKcHJDVkgvcE5SaVVnM1RhQVVTSGdRSTR2d0toNFdiTUFwNXVMMm9BMmVnNFdGWE1qbk1LZ29pSSs5SWlsdXFHb2l6WGo2VEJSS3lzdQpEeElWNDVaZW8wTkViY0xkYkNKcThwUnBJQ3BlaFpwZU9GUzhRWEEzZ29ZSzNTVFNGMEZEeGF6SXk3MWdxS0FrUVA4UUxGUUVFSldpCnhFU0RMSHNlbjBpb1VNKzBBMExGbWwwL1F2SUxXMitXL01hZ2ZyeFlnRTFzQ3FvRm94dUNDbDF2TFc4R0tzSVBwUjRFS3FhT2NnQ28KeUhDbS91YWZJdnE4NXNHZjRsVmwyd0RUVHo4bS9xcUt5QU0vTFhKZWduMmFQVE1IK3BSbHZYaUxMdklweEJWOWJPNHBGaEFrNFFYMgpGS1ZBVC9wRVBRVUF2bTdvS1JKbGoxd3FESjFjdWxBdGV6RlBKVlZnWTNaSlloRkRkS3RsS1VjZWxycktvZHpRVTBUVFJZczI5UlFHCm9lRU41L25pNTM1UEp4ckQ1dkQ2TktDblVBVkFjUlhNMDBBbkJmSVV1YXNwU3VrbW5tSWxEaGxrQUU5UjhneWhTUEJPU1J5bzY0VTcKeFNnRVg4RzAwMlpTWThCTzhmZVlMOVJwYzRZN1NLZklEaUx1SHFCVDBrTWc0NzA0cDYySk5oS0JZaUNTNEcwRXdCVEFEK2VuTnVWMApwcDBCcFEyTFpkNEJWUzBDVFlQVitJMDRoUTAzTWdpbnk1aDlBMDVCaHRTL2Jyd3BJdG1ZOVlKdWlpb1lCcmE4RFJKbnlDemRiTk01CjFkWXowS1lCOWd4bTZaaEtWOXhnVTRUWDRGK0VyVThKUVFOckduL2ZWTk93QmRSMGVIWU5YT25vV2tUZVRGTW9MSXZrVzdUTnBOQnEKRUUzMzN4ZlFOR3pCTXlXRGRkV05NeDFHS053MFUwaE1TVEl4ekJSQU13UjZBMlpLd0ZrZUw1YnBjQy9hUUprT2ExMENYSXBYdStUeApBcGtDQm1yOEtZVmUwelR2d0poQzZSYlV6cUNZSXI1V0ZDOWtMSUovbDBNeFpSd3h2UmltMDVDWlFKaE90OW9KZ3FrYjI5NzhVc1lzCld3MThLWE9jSWlkeHJsTU90Tjd3MHFEMkJMdDBUamVEQ1hUcDlNZjNJcGRPWmlPbDMzSlJFa3RjQWx5S3Y3UEN4WnRiU2x1YUcxc0sKMWl0RUMwRXRSWDBLZkxBYldycE94ekJXZGhFRk8xSXdTMW5sa1YvRVV1Q0JFQVVLWUNuZU9lbm16U3VOMXI4dlhPa01BR1BRU2xlcwpWZ0pXeXJLck50K3NVcE5vTjZrVTU3UDY0WlNpNklTVmVEZW1GR0ZCb3Fvejc1UEtFZ0pTdW85d0lVcG41QkJOS0oxT3NRU1BORDd0Cm0wOEsyYVBvcDhLVHpxUWJ0N0dqbzVwQWR0TkplNkJDdzRoTUMvR2JacE5TUFR6ckcwMDYzSlI2azBuSnhlamxnRW5IYytwUFE5bzcKbmxPQktyVGE0ODRlUVNYOU1LZ3U4NGFTZGtkN041TzBQMUU0NmJMYmJiaUlwTWNtSUdrM29HVURNVWRXZWMrTFIwckpTdjIyYWFRbwpLd21NRzUySzZ1cW5GNHUwcnFnTU5vcVUrdlFlSFpla0xJOFdUenRuaU94T0tvb0E2dGd6eUh1bWFsUW52bDhRMG1hOXdHYVFJcW5WCjJpYVFqcURnM2dCUzVBOGhJdy8rS0ZkRDNnaTFvU1FnbW9vV0tncVVBeFdEN2xoZVc3TlVUSnM5V3JONldyelFveFdMNndDWjRrYkQKb0pwb2swZXI1WHczZUJRTjczVFdUclpGcmlld281K2RreCsvbytQelg2bWpmeXQxbFAyWEtETEFTUG94eGtveVc1cTcwNUpxMTVQYgpNaTF0eDFjVUt3bkd5MmtJU1RDMFdYTzZ1enNodWs4Y2YycDFCYXl1RUwycmEwbW90VWh5ZVJqY2hxYldJOUs2Y3c3RDRJMzFYc1kvCnNhajBPYlFBZ1psQm84TnlDQlpxdk1TeWZvUUxVS3VxUlYrem5UMGZKR3lKQ2NmS2hDdEtrOHZUbUxJSTU3d2M1SXVyYkducVRDWlkKT3FRTVkvV1IrRTVqVklFT2lyd3UxT0xDSjlUeTBXMEZNZ3RiY1JjSUJ4NXErNnppelpiazZLQ1Q3V2x5ZjZ4WmdaelVYRUlKQyt2ZgptV2tsTkF1V2tzNmVoTWpSMnJwSXcrNWJnVFVwTGhnV3lqZ1JnWjRCNW0vdUtjMG1yMWoyc20zNzR0bGlQYzlBKzZOUmt3MWxJLy9lCnEvS3BiQTNIeW5rV01pVjEwUDJZaXh2YmhaUEppSDV5VWJ6RUh1T2RDMGpNSXl4cnFPSTNveXN4V2FQc3YwUGxPMUErc1ZCU201NXEKNjNCL0hTWmRZRUhva245WC9WMERza2pqVkVQdHhsWTUzYzIxWU9rdEd2NGdza3hMTDZjNXZBQnRrTkJTUzRWSHJqWk1qemlncVR1dgpyajBqSjhibFJkSjJEenRoUUJHYjJTRWJqZGZaamFvcjE0NlhvRTVEcGRCemdEQlVQaWFFcnRGMVFDZzFURC9FRjB5WGpPRVc4bkVyCndXQXhLRytzV2xRTlIwb1JqK1czT3YwcDBaTGliT0gxZVQ5a1B2QTNpMUo0ZkZiL3c0SUJIcFlVMkFCOHQ2eW14aFAzOGJzS3kvQlcKRkR3QlVOV25wTXpqa29wdzlRUDFORHNRNC9OU25XNm1wUzUyVkhaZktIdzJZM3F5aHBXQ0RWcEI5S05sOEJjNmtWVTB3S25PcktqWQpUUWNmbFVMRFNnaFRWaEcvRHNXd1gzN2M0MUtXcVBSZUx2Q0VWZG80RWsxTjExZUpPQzRJdXEwc1dZN2pGVS9Jb0hFODlZOUVySVF0CkJ6QXFaM1dsWm5OME1OMzNyYVVWekZGWSticnd2V0dPRGt2bXhaYmRybC9rTm8rakVHeUR6VzZPUTJFb2JpZTBQMzRoOFkxcmtqNm0KTWM4b3dnN09LSDVtM3djR0RPazdJRjZCcDFNNStBM0RWVUFMd09pZzZ5ekV1ckg3QW1vM3NLTTJtNGJBOGJIeU8xZ3FRTkV6V2RKdwpKUzU0a2p0U2t4Y0R6WVArbHRBTmY2ZTRPNCsxdG9tUVhlOG56RW5zNTZyNmZlU2YvVHdvZXVBM2hlZTdXMEhnUk9uM0xFdUQwMXpDCkxPa0NrMzhReTFzeW5BQ0hXQVF6c25URmJ4RllFSURuODV1UG4rUlhpUVp5S3o5Ky96anRRU2YySkwzZ090YkFnT09xV0xiWEpFb0kKVnVUOThKdHFQem1ZeVM2MHlNZWs1bXpGbnRuNERDaXgyR05zRllQNndheGxiNjVaQWl5WmxLelV1T1V1SEhqSmxLeGpzZDNRUUZjUQprTU00cithZ3JWOGpIcXhVUERaeXUvRzN6Z0h6Q2ZrbzNkSmZXa3BNMGFoZDVMcUdWaVRadXh1NzhVZ01FWEllaVY4c2dXM29XY215ClJKK1pYNFpieTdFbkMxWW1pQlFoVm9XM2xZaGlEajZqUzYzTzdpWHNGMENRYnRORC96alM0ay9xdlVQTUFQSVR6ZTNEYnhVNTZ1d0UKRVBYbncwTXhCRnNmbzZnZkwyWjcrUk5ZZWFCYWFEaU1DOHZIeUsvVEp6dUZmZDlXMThNa1FTSThrVFdUbnpuK0E0YkhiOEhIRGEyeQpKTDdzaGVITi9aTStISlE5dVBIVnhCMkFxNXZQbnFWaWliRXRYeVFFK1hwN2t1RWIxV0p3M2d6a1ErZ3Jza2RORlNMNTUzQXB1U3lCCmxYVXNzS1FzSi9OaitIQXowSmN6R2lGUVNYbnBWbVMxdENMRDcxY2JwUlNCZGVJbEl6QXhhMG1kcUdQdDdvS2QyRmYzOGxMVWh4ZFcKUWdwZ1lXMHNjQlYweG1DaDMxc0VkZk9lVFJoNnJaeVRlakdKRmZTeHRsNjl5STl3NXhOYjVGS0Jvekx6dFIxQ3FIeC9TelhkS3JvWgpraS9RUnJpT3pRMW9VWUgxdUxWRkk1bWNQYit5bTFSQmRRUkYyZWhSM2djVkpGOU02TXo0aEhxZ2FtNExrV0RhTStadzBocTdGR29mCkE1dXVxaWg4Z2ZOZmNyTVlxOFQ1TS8vMXN4M2RRc3dUeVBsdG1IREFxYWVaNDNsWnB0Qnc0U0lUVllHUGgxck5GZz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJSFp1eFpxNXNwVmhVMVVIV3hneVZXSGRiRWpUaVh1eWloZi9BODRXRlZLL3Vya25jTWI0aDF0dXcvV0ZSTW9lV0lzUGlDOWRkK3FlTwpyZEVqcXdWMmkzMDBLT0lNTGo4Ri9sa3RUeGRIMHVHYzZoNmROS25YakdFQmYydENRc3FTelRxenlXV0RKSys2OTlQNWt4eis2UGg5Ckx2ZDhtZXJYU1lrcUxXMnZBWVpmT3haT1BSS29VUkNNampVMVY0MU42cW5kbldENjBhc0hpa2YxYmxVMUYyR3hPQnVwY0R4a3Q4MGwKcWVmVGg1MVZKREFmdDA1YkpEaHgzWlRWSldlaHowSmliaTFwTXVvdEpJTE12dUpMUnNkVVlpaVE3R1MzbnlPMURDb1RaTWhyQzlXbQpwVW1UMGZDa0pyL1R6VllaYU9HZUxESkdKSHQvSkRYRkkraGUyWkJ1eW04RDhWZXNRR3YyUGVzSVBBVUFwamkwdzVtNDlQaVFOVVl5CkJ3VjlGVlhNMjZMc1UxWHEvbXlIVlJWblFjQjA2cU1JbHQ2ZmZybXJGb045M08vbFR3bFJKRG9TVkZlU0cwVGRwK2dzOFRrajFjUkEKR1FBcUkzaHUxVEFXSnY5SUhFcTVCM2FsN0QybHZpTzBoUUhrYWRZMFhxUktQQXZZY0VzV092emEwOTRmbENqNWNRa29heS9BTzhpcwpIWEVkSkY0THJoWjVYeW5oS21yRFU1S09UMEtBVy84bzJNZ3laYm9IZTRoRldESjhobWF3SHFzRDZEUGszSUtLMXo3NURGUnFWSGtwCm81cTdwMGdqa2J2VGJaZndqVFRyb3JSajk2QklLY0RrODFZamVNclVlUTdiZ2dhZU1mUWM2L1NpRlZGWGptS0E4M1BhaGw1U0hxRXQKZXRIRFp6dmJlWFZGcHdsNTY4dENXWWwzREdOcm9oWVRpOGNmd0tmT0JlOStYVUVxZ1JPaEo0bGdQRTZXZlhTYk9EdWRrdGhzaU5GagpVajd2Vjl2bDd5eHMwejJMZU92eTN4UjFQY1JJVGxucXhzWGdzVlU5Sk5KZWhlTnBlclJVRmRCU3U1Mi9QZHFCOUVWbm14TDJxU29CCjl3VmJwb0VpZmxVTVRFbzFlcmdoRjA2cUc5UmsrckttdXBnVUxoMVlJc0VoREVUYkhXTEI5MGdmaEtGTkJsWWgrb1lRbUJiditlRVYKNlFkempjYXNXSnB3dUs2VVpJcWpCRkFMREE4bGNOaVJzU1d5UnZaM0JjZ1JoZkpKcEdrMk1lMTJyTkxqdVA2Z3l3dE1TeXc2S0NrZQpmai9zSWliN3FSRDBONDU5MlpNNkFrTWw2dHNRTnFha0dwMXZOUElqUU0zN0NrYm5sRitnR0RGSkJWdk1qcWlQUExLVzdJcm9FZUh0Cm0wa3V5KzdVbGtmb2dHRWQxVDRmVy9JV3Z6MTBBaC81TUlyYXdZSm5wdkg4OFRCRDRWT1ZBSnoxRFA0RUN1ZWowZTFIOUQzd2JDdXAKQlJTUkluYlFteitWNWp0V0l0VXpJc2dDZ2c3Zk1sZ2Z0MWNYdTRvNnlhVEhwU1VUOGZreHZ0WUlmN0p1R29NY0FXbGRGczNzTEpzZwpNZlRxOGNOWG5EY0dEenMxa2NONm9lb1lpd2l2SGZwangza0ZOQTdOeFpScUFacHRhSGgwbjU4cUxTbm11WjNzb0NWV1pidkptcmZiCnFaUEJzUE5sZ1pSdjlmQW50eFh4WVhvK3cwZ1hWQUx5WmZ6czVNY2FJS05PdXFJNkhzSTh2Sk5xa1lYTUUzdXhkd1hBY2hERU1xWUgKek50WjMrRGlOcHlpdVd5dnhybmxZaGxJeGdjMmliMW9lazAvdmdINUFMbk1IZDJFc1l1T2dmRUluUkdnT0N2a2xLaldFb2FLQkJBTgoxWmNQSzdYb3J4M0pRT1B4ay83T1ZLM0FiUWs5TFE3UDhuYktEeEZPd051OUdETEtVZ0hqSXVCOEkwekttWVNYQ0NqVzRHYndhSGxCCkpnaGxLcGJ3azhVdHgza0sxUnBKV0lWZzRBVWdwZ0ZHTHRzWUY0UHRZRUVyRlJwMmp5K29wL0NPOFhEb1ZseTYwcENaZmhmQ3FMQ2cKSm9BWDJhd1M0Uzh5WUY2YXBnVnN4KzVVT2xmOGI1WG1FQmZMd0pGMmRHa2JubmRMRkc3QzI2WHFjMEJOakFmZkFqR3dSSXptbmtSUgo4NUtTWHNlY3ExQUtrQXFpYzFCV0tsY1h1V08vZkxORUkxaEtSZkRKTEQ3QlIrNTBSajBFdys0WUk2dFQrckFxbGd3ckF0eXdLSTZNClBpc1FLTUhBakFBSGo1WDJqblFxYzNWREVCNEtDMGRZV0hqSW4wekxCc3V2TWpXcE9NV2FsTFptSkozQmZyNWtET1VPVlVqalRyTUIKV29UODlvYzBFTDVRbkE3Z2FDTERHWjBxVWl6RE1sWWc5b3ZEMUNpN2U1Z3VLQ0xsY1RNK3kwZmR6bUhvdWU3OUdHWnZpdVp4RzRiRgpRYUJRWUsxWWgwc21SV0RTbncyUUtPcFRvRGp4MGxpeEVFNWlGSnJ2SlI3eHNKd1BjZWNlMlFVQ1J0bHFHR0UwaEZSYlJwd0kzYTE0CnFvUWVSOStCSkJJampSQkZzdjB0c1VPd2NPS0dHSWowSXZqS0pWakswQU5CazVIcGU3UGRzUjB3V056cElQa0ZoaCsvRzBJUlJjSkcKNGxuTHJDeTI3VkNxcUxEeGVKY0tLTWRJek12RXhSTXNBdnhQemRwVGl1WEhEaEVicWo1WnFSM0dEM2UwY0E3RlRCbDlWSjlYcDRBNgovSEgxb3NXckNjOXVmOCt3RHNic3B3cGxlU3dGdkRGZ1JKUGFvUjF6dkR4cys3QVl2YVNQd2J0U0krZUVjWVl2Q0hsRmVFYVBWUjg1CkcyekdwQk5DV3JnSEJLNDgwSWJ4WVQwZThnRlZXVEhXb1lzZEk5K1BPYlE1dVZVUis4NFc3VWdTR2U5U01rT0tWbkxVY1dXTG1aUEgKc0xYSFJMYk1ibmhqMkpMUHA4VysyTHhMT1MzblYzUU9VMW1yWXNUTkE1R0UyenZoNVJKSEdpVmovQ1NReldJT2ZpNlA4Ymc5YkNSSwp2bkowNHNXSGx0ek5PV01TOUxjb0MyV1UvRjRyazBOUTBVVjdBSkMxdEU1MUVVT204cmRvTzdZZjRUYU1mS0I3NHc3RlEwQU90M2hGCmJ4VW9ZUmlhVzQ3bFlPanRqOFlETmliUW80U3NudTJ5bThCUm1WRHU0ZWd0SjdyaS9CVi9jU2R5aWpHcUNtRmpkQ3pSWWhZV3FBZGgKVVIzWExLZTZFMVo1SWxQcW1FeXR0cnRvNzU4a0NZUXRzM3ZNemhCc2N4VktPU0xlVC9oYlU0K2NpNGlNU0ZIbU5VSStxOTNRTFlkOQprNk1iSnZnZk5YdllhM2hMWVdtUHR1bWhrSmQxNnBheDB3RVBOYm9zSE9Qd2U2M29GOWY1eFNyQkp4SlRLK0c5UmNpSEl4UUtDZVVmCmRIVld4TGx6RzdsS1U1Ri9waFRnem1RU0NKMEVvdTlFTnNqU2dKSWlrZ1ByTEYzakRRdW1ZRm5QZEhLUGVUVnNzNW9ubDNoekNJU0IKLzRFRkYyY2FOc2h5VnJCandRWkw3MDVQVTZtc1BhMnZoSlZkVzNCTkpIbHh4S3FrbUdVVjR5dHA1N3dqSEVLaG5xQ201aVNGT0FsOQpJNHdreUdaa1JIN2EwR1RROCs0ZkJrMmlqV3JNeXZTK3BscjJ4WUNoTVUrN2JnMCtlcElOcGFRWmdlYVJHcWVwUjRzNC9tS21LMEk0CmdYK3hHZnlBbkNHckUra1NLczN2WmltWkRhbTZoMWVFVXVVVEdzeUNTWUVMSTdvc0hLblo1NGJ1TWpsYStNVU5mczRoNDhYQVZCQUwKd1Z1MkhuaEx1U2pmblJtWXhidU04aHZYdE1EWUpoNFRmRlZVUFdRR1psSFh3ODFzR1J3R0VBc3FWb2RsYWlpeXRtdDh5MGhnbXJKOApMQi8xays5VndWNHZZTEN2ZTJuOThTcHp2WUFxcCtxVzB1d1pCd3R4VTRqcXkrbER6cDFwbTY2S1FBM1p5UTA5Ui9lY2tGaU5oTDlaCmJBMERwek51TWNiYSt6MXdZbWh0bm9XV3MvNE1CTkNnMUYwL2F4N3NTQ0VDdzkycktYR3FoQVdiZURGZC9RaThVVjJiSXFkbVNuYkkKc0hwU0lwcjEzVWpjVVVjSkIyT244ZzUrSExKWlpadGp1MUhqM3FDTkR1SWh3eFF6Q2o5cXhGMWg1YjFHSVZqMmR1SVFFeVR6eU5JaQpGTGpkZmxnNTFhb0JkeDZSQkx1Mll5NkxHYmorNkVscXoyYWlDTVRuakdBSE1CYmhOQVhGZ0tYa2ZCTVdPVkpGenMvWmJqV0RUcUQrCjREUGNGc0JyVXNEWWp2VnhGNW5sK1ozMTVUeHQ4Qks0YUE2TDdtMVJvUDVzbHQzWG9FWnQ0N1l3Y2g3NGdHT3RiSStjU1BqMW1RMDIKdVovVEFkUTJUNHBZZVU1S2pOdzZBQloyRzJDZVFpazZrdzhSU1Q0Um9obmRjeEZmN3Q2T2ZSZGhZYU1mNXU1WERrdEUwV2Mxb2FZdApkZXBoQmh3dUFLb0IwYXdJZVFuQzh4Q0VacDZHMFFpa1FoZzJhaEdjZ1dYNlpGbUx4WHcrRXpWcVUrNjNZT2xieFlOREp6am1MeGtLCmgyd0hFMUhhL1hsUkN4Zk9XMkliWHpjOVY5SVZWQSttSDBuMktqcFhkWlhBc1dwQWxJWmNGbWFveVBKbkRoVWhwdExsYU9LcStZbVQKZStncmJGSklJeUNWOVh1UGtCL01QZkEvWUZGb0ZHOUxqay9rTWJFWERHd0lFN2dkRmR1YW9CUXVwcm9WaG5MdHFBdzNyQWdOa1ZMYwpSRkNmVlBQQXdrWXg2RDEwOHB2ZGpaQnJjUWlNRFphVFV4bFVIdTBHeCtnTGtnTzlQY3dwaGRYYmVSRkh5MHdLWkdmSmx3RjlDR0pPCkVKUnBaVFlOb1cwT0dMQ3dtcnN2QTRvU0tRMDdxTFJFUEsvUzd0QlNvc0tmYit0OXFIUnViQ1NBNGJhanlEZU55SUhSeVVqM0NCSVcKWGlhVFRtN1RrclNka1JrQ2ZDSWNpV29TRGlWaDBRaGlrTzdaYmczWHhaS3loYk9BVW1adFlsVGJnNVp4K1VXWlJGckVUY0IvUE5Jcwo2Q285dGNlT1JCR0pFYy9sWlltZU10bEphTWoxT2Rkd214aXowTUtBeXdFK2twRzlhbWRmbWNubC9qR0FEQnNkeEMvcnN1cVRqVWZtCmNKaTNhQW9hRWI5OXVtdlNNS0dKTklFUTNHaGVvSEs4S0tHSVNSdGIwQlc1akNXVk8rdzR5QWVMRVFodTRBcUxVcjNZcGg1TkZEbHAKUEJ3ZEoxaThIeWNXR2pneVpKRE12TnR1UHpRaU9sTEVVbVAwSE9velNjRndBMW1DNnA1UnVFWTFla0orSHplYnkwSGVhTWFCNGRiawpwSzRLdUYzRmJidHA1SVd6VXIzSys2UGdqUllzOWFnaG8wNUxFZmF5OTFTdGRkRWJSUU5IVjhUVEtUWExGbzlTRTFCYi9PVGpma1QxCmlRNXZ6c3NoVlBsSXpQZDJzMzc4NGI4bzVKZUJTREtYMlk3VVFBaGFsYTN0RnBVeFBKbVM1VHJGb2NoNS9vNGxxb1JVa0o0K1hkRVYKSHg5cTRhYm9sZDRRc0YreXV5YlRzU3RURXRnUEIxM0JMUzJVZTlieU9STXgwT1dMblRod1VhMFAwNFdMN0laSU5iY2RJNjEyYnRvcgpSbG9WaXFMV2lKMEI4UU1VUjZBSUZ4bTNYS0xNSHBiK25GQ25SSDJzVGs1eWUxa2pnVkwyeG9XbytsTlRackgyUllaenpNNjVqQm9rCnIvM0JKK0Nna04wTU9yR3dPODM5NXRnNk5TWFJ3b3dERkN5c0w4K1A5WFRVdEpTeDkxUVpSSEVraXVKY050b2dmWGhLbktzUmhzWGwKTTF6bUZhcVRwTStHWWtZQytWRGhrSmZjZHE3OXNNME1SVVptdlFKY1pFWnJzY0lOWUJ0MTRrd3NQTTMxTW5nTU94WU1KWjRTVXRrTApDcXlKdXhOWittUWVGUTFLVnRSUDFJbWpONHlOTDk3ajdHbnhhTUZ0T0lJUnNUMVBoTXo5eGg2cllaT2p5a3dXeithZjVJQU95NGhWCkk4T2lReWZDSUNoamFvZzAwdEladVJyR1EzRFBHTkNoeWw4Nk5SWVN3eFBtb2hvM1EwS2cxYUpkbW52YWNLWkVhU0hiaDVYb05JTlcKOGl6UEttNktxMm9CU3JqeUNUMG1Ncnk2MnFwMXlyaEk5U3lhQ3RnN01ybHFqb2FZMVhkTldISDRoUUt6NnNZdWxBVW5JYXYwMEhqegpZMDhsMzFrYVFORklFNm8zTVc5U05hdUxqZ0VKa1NWTDB5MXdhckppSENwY3d1U1JuS1dxZkRqVWlhK0dLdGhZL0R5TTFMRkxBcGVPCmpxWENvbmx5Wkl0WE1Wdms4TkJnNVR6SkZ1aGVjRW1GV21zNE01SEVoV1VuRE1ld3M0ck1ZYlpJbGUxUmtPZXM1RkNoOW5GWUV2VEUKazRUb2pUbEsvQ1JYQlZnRThYTnJydnpuZjhpVHpScFYrSk93TnNzVWxRVkZxcEZCT2NwaG5kSlg3emxZU25RSWc0YURRd2JGaTltNgpUenFZbE14YU5LQzFDU1d6b2N2R2VnTWNVNnllS2ZtakNEQS8xZ3F3S0dIVUVJYVlES1Bybkc1MmlQVVYxekRxU0Y4NXJnOXEwaURFCklwWnBwR3YxMDQzeEJMS051blVZbGd4U0krRmtPSGlpQmlESGUwYytMQVRSc0xZbW9acmFzOTE3c2hlV0RyNWxydUpnSjViQWNZWHYKdFFrenQxU05ERS9yNmxrUnk2M2tYNlMra1F0M3R3Q2hINDRwaU9FUUNzU0dQdm1mL1JMb282UmNIT2ZUWTlLalhCejVhYXdldXZWdApKNVBmdTVvTkRvY3FPRkZUemJIVnNiQU02OXBUdUNCY0xpZ3FnVEd0NkxmbEpFSjIzTGplbXBEdVJkNDVIRjh2RFlmRHJoalNKYmFZClRhcGFDclc1MG9XR1BUekp4MDNnWWVUS25Ma0luZ0paV0k4VTNzenR5TEw5M21qUGhPWUFqSzA5VGxWd08rWWdPQT09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJaS9nblNRQ0trWm41Vmk2UG1mYUliRWxpU0xDcUVtck5KdWtPYjRRRzJPNENVc2hCV1F6d1JNUExuaFMvNHh6RjE2N1BMUUNBMDZrMwpxdS9FQVVJd0krVEVEc2VwUWVXWW11eC9kcVpGbGFYRFNrRzRGK3dRejZjclB4UzA3NmFIbFVPakNhdXF4c1owTVFDaWlhd0x4Uyt3CnBUQmhEejc2anJ4Y3gydnFlc3hRNGRQMERaSW5oZWsvSzNLMEpPQlNNaUZxS0dDbG84NWMrWlIrZlRJa3g0YXl5ZUtwWGZNQUQ1S2kKV0dqTStRc2xKc2Z1TU1WWGJ6VGlqOThQWVV6bnBEQU12UlMzK2RYV3FVS2ZGUjdjMFBLWWxsNGRuaWYvQ0h1R3NvcHhSS2EzOHVOVwp6K3h4dVJ4MmJxN3VvUGZNNnFtMjYyUzY5SnA2NE15a0RSY3FaZDVDaDBHYmt6MjB5R2xCZVZ2dTkzYkdJTE1BVEF1N25lbERBN0FWCkxpaW9aYzJPZVNGOHBJcDZ4WlVnNWdvRlo1M3lZOGY3SGJKOXVnTGIxTFR6M0FhOTN4SEIyT1NHQmU4OUg2YzBrM1ZOdExCUkJYTGwKcXJsSnJnZEs3RHU4RjVNdW1SdFNrUE5mMVduaFVRaDFXMWcrYUxVc2RoUW9FWmt4cmwrU2RVMU1reTQvemFFNm9xSElVenhOTHExWgpSRld6OGh4ODZEQTBQMTZWd21ISDJkUGVrVDNuYUUxT2tFaUQ4UURqclY5VXc1M0graVZkWkRGSEVDNmZMckk0cERNalVvOEJqU015CnhwSlF6bEFWOThqWWxYSmRNYTBSM0NVRGk0Tmd5UDNzS0lBaUFzMTYxNWNiRWNMQ0pRRUNOTjErejU0aHViVFduRkk5eXFXaDlrYUkKVmVra01KSlFlamJkSy96SFdHMTNWYVFtcHMyeU93MGhXakpSVTZKRXRGVURDeVVNc2FNSzVORUJpYm1yN0s2dmlUUjhOcW9vSG9JUQp1TnU1Z2hJNmMxZzVqRUpVejVET2VQeHdtZFZSZEt6V1VFN0F5UEFjNWtoOEVEQU1COUVZU2VTUjZJaWpvSCsvNk9XSisxKzlQc3BSClBndFZNbUtMMU16d2hxRVU5ekZNRktJUVJXTTU1Q2NOamc3d0w1VnZJSk9rR0U5WWxFbWlTUExhREZtZG5wUjNVQjRkM2s1MmRmSDIKa3pLWjE1alJrYjVBK0JLSG1tUG9UZFJVM1F5WlNHd2VFSmVKa2dxdXcxZDh2V0NnNlNNY0ZnZWdydysxMEtzckhCdDdLcUtOK25wTwpwckFRcW9HMmdpdnJXSHBuWVhsbS9DYjhTTlpYWWQyTEgxaEtjc0hocHUrRS9LdjRIS01yOWNRN3kzS0NLVjM0aDB1c1BLUmFxUU5jCkFibGh4dUtiMVNYd0swWUVNMUN3RUlWcVRCRkRuSzR6cXlwSW9JV2hKcm9mTWRQVklqb3RyRXlNY2pQZWpLb1VBSSt0QWFvcVVLSWQKbXhzb1l5d2puQS95UTZZL1FOMUFubXdiNWxDb1NUdHVhM2Jnb2thUkRuZzdVTFRtbW81QWZwY3VRYlVrNzI5dlYyS1ZOc25CcUxjRgpWY214L04zVzFaVHR5T3hQU0tIQlVpWDNmbVdaV2lzdDB0RlZIV1NoMTVCc3JyT3V2bk84VnBWaHAzYXE2Z2FGSnBUWnorSkhvaytmCkxXSHNBRDdhYjR5bVI3bUxrL2hOektFbndnZ3pMS3MydVp5WlVoeFlxUDJFOTdwSFBCUnEwTGZ0SVVjWUNuTXpZOG1BQk55ZHpNeXcKOHdBLytpVmdFeG5OcGtsU3lnZThIR1pFK1huaEV3eEp3bDVzd1RxclZSeXFSbFRzTE1sQ1Z4dExuNUZETXJhSnBIRHJwby9IckRJcwphMGtHd1NrZEJvNzRWUm54dUVncGg1YVZtc3hvNE1HZzhEWDdFMUY5TGFLK3NZQ2h1cEFlRERJQjFJcEIvcG5zNVM5MGc4ZWd5SmtkCmJ3VTlFdzE0SzdvekRZOEVKVGtKRHdJK2xVbUlXSFVKQWVwMnQ0b2JrTUhhOU1JcVF5dTlRSkc2a0hrSENRYnkyRHRLVFFSL1RtTE4KcWFVNi9UbGVaWEYxRkxlSnB1SDBjQkd2MFdSSHQwdk53bkRaTExhaitKRktNYm9OTWZac2E3S3FocnFoVW4xcWZKTFV5OHAxM3lMLwpUTG51SEphYWNzSnhPcHdoVm82NXJMNmpMckFlbWdLdGZFNVE1bUdsZ1B1L0VDR0NSWW92Uk1Rb21zdFhUU0Yxbml4K0p5ODM2Wjg1CnFtQU9ubHFIWk9VOEtZekZpamltYUxFVEVQYmlSWDA0WlZ6MElVZzhxVXVCakl3WEhwWWQ3bnZXWmFWU1JrclhJa0xCc2VTcE1LMzIKM05idVNtdW9idEtRZGtIdjRoZFAvM3V1SmxoNUlWalIxSHZOQWtwMnFXbWlRQXZOQUI1ZW94bzlPNzBJdlRZVkN0Z214ZEl6dTRFdApXeUJBOUlVNkM5VVdwQmFsTnQzdVJQSUV3YVU1RWNGdWQ2ejZWb3JhMVVVT21nVW1ZN2dLVERmdEF4a1prcy9QZmtNOUNQYnhaWG5VClcyNkhodm1MU2c4bExiQVJucVdtajcxcmxndFpsMG9TR0JQa05TSS93bXc3TmYyUGFralY0M2tvQ293SUtNVjg2dFFjTld6VkJjZzgKLzZ5S0U0SjYxQlN2RkVOVmtCS09wcy9hc3ptSmw1MkZMaTBTZUJ0bzB0aTFtVmM0UWxpS1gyUmxGbjZIMjBpc2RzNXpXb21DTC9uWgo4UC9IM2gxRU5ta3FYRWlPQldwVVZidFp1d1VZSU1qdmVxbEtNa3ZsOFZSd2dsWmdoV3ozSnY0azJ6Z3dLZ2xXMHpnMUMwcVVwV1J5CkFDcEx1ak94OU1rWlMyVVNJQkFpMmpNME1iRFdvUWlyUXRycFVkeVEyL0F0aHdBc25mSSsrYVpJSnpMU2loOWdIQVlXNGxOcU1sME0KSzRtZHNBWFNwamdsckZRdnlwMVMzUDdxWHQybVJJM2pqU2wxNDg4SVNGT0hEY203YWk2SlJMY21jYkxhVWQremZKUytlbzY0WHArbQp6TU5DTVFjc1BOdmNGQ21PUFlXeHg5SWtNdmNLMU9jV1BKTXA4Z3E3b0tRUWZTQ3lwMmM4Z3RDU25YbEZVUm9CT1UzVEd6OVdKQXNVCkw2MzZIdkE5alNnOVoyQVB5U21GL0I5LzdoRGE3MWdpcWp1VnZFeVNKMEFyUXRvT0cvQlpQTUo2eUhKWGtVQmNRYmtMa2FwWnRaM3EKVXg5d1hPN0pkN2d3U2hSUmMrUXF1bXFvWGIxYzFPazRFYnY3cUNxWkRXVlNET2MvK2xtcTlBa2ZrZGdIMFJ1cE9nUk1rUUhEM0RXZgo1Ym5pcWN5UFp1VmNwSDl3VG9vcFdnazF1akxIZFgvUXNMSWJBR0ZjVmIrZ01xRWFnZWhoRGdvdDUvMUpEazhEQ0V6Nndha3B6MXJECnFXZ1hqN2s0cjhEclpHMGZia045RkdaalF3d21TRkg2bjF3cnJtRWY5YnoxNXU4OEtxb2lYZ0dTR1FaOHExZU4zSVFhWHNwSm84ME0KNDlKREdqWnEwM2w4MW53QlVrQU5DYXJPVzdGaGR3Vng0UXFzS1ZWZEpCMHRmclBETmMwZlRremxqYUJpVGc4ek95M1Bpc2NpL3BFKwp6QjdzQm9oRytYSjJGTkh0WWFSN2RZbTZwY1NuM3kzaVlTVlQxWDFTZmd0N3JxRGdicDRWcktyd0NvcEVkNEtSRmtaUitsQVVSWHVpCjBSVGpsNCs3QWxSM0lHVC9FR3BJYXBCS1VOU0VsWUFlWnJTd2FLNW40bmFjOHhCVWRxa3lQL0Urcm53RThwdGNKOEU2dTc5a0JqcHcKcnF5bTQ3ZHRsa2VMS0IrczlHaG9aU0Y3cVk3dm9yR1JmdEZLd1NFWjZjK2VaYldjSlVUajhXeWsxMjVhMVlONEdBZThhdndJOTBRcwpTdFdSdy9LaXBNb1MzamQxVlFzMVNuVThMSFpVdjVLbzVKUkFxY25pV21WMENtUWViK2lyMTU3RFlBeUlwZkhDUXNiS1lRcXZ4Mk92CjU0bFhuYUpkK1V2bFQ2TE1NaTIycFhyc0FOUVM1ZGZkMm4xa3B5TXV4TTRiak9qRFNnUUNZcVkyS05tWDNER1k4OXF6TDdJTGo4OXAKa3RlR1EwMlZGeks3UXpsSFNyWkVxVWxPbG9XaEtHbWs0dm1rdWdpZVpLNGN4WHlSU0F5ZlVOd2gxbjh0MVcwWHVrY3M0OUtFSzJFOQoxazk3NXNJMERKNnJLa0xiOE1UOERGZUUxaHBUdGNrZTdhcStWUk1FTGt5bXBtcTkrRmhKa0QzMWhDUk1hNHQ5bFhMYzBKRWk1ZUk1CmJBbkdvV1FXT1FORkEreDBmWUtBRzdpYlpKVDdGQWZIYXFpWmhCRnRxcDVpWm4zUHNxd3p5aUtIS0lrS09WZHpmeWRtNEZrdnpkcGgKT0tiYlQwT1lkM28ycGpxZDdueFhHVHpkRlJvbzI0Tmw2NzlDMThIeXVFZFYya3FINTRDc2ZWa1lmTmRsaCtTYVh1TVAxVzB5Q2NzMwpEUEkwbmtTdzhaQ2RNelR1Q1pWeUZabERFOFpqWHhFaHk4ZlNZWUZYMlJ1cnFPSmQweUlzbXlzQlZBbGRJVmdEZTZMMk9qaldNdjdOCldjbDZWbUQ0QlFrc0VNT3EwaHlyMUJmdG9vY3p1cUtub1VWaWlJU1l0dTNHRTlLalE5TXpqcmpvcWRmRnI0Z3NaUW9QQjRGanBkRzkKMFJweGIxemp6SUFWNVpmcjBmb2lVcDV5K3RmaitRbmI4UjFIRkxKVTdTazhCU3piMlVCVFNrN1hLNkRvU0o4cTZPanRhT0V3aEtPSApxSVIzZ0N1azZYVXRybFY1eEdua1VHS0hPRU9YRG9TSUdPalNydTNZQ3BwbFBzdFNoRzFCZE96czJhTjg3VEg3Y01wRlVHSTJLOGVyCjVYdFk1RHRPcFEzT2RnenZONlZaV3IzL2ZvNzBibHQ1dFp6WUlQT21RZ3VpUy9wMU0rZ3lLMTk1NzJCMzAxcGNkdFM5V1lLb2h3WlMKQjliTFBTNEdBeUhhM2IyZFJGd3JtV0tBbnh6ZWN3ZjFpV2dicmtBVTRTb1pwWWI0TVZFbWtJQ3lKR0E1YWNTM2xVUm1SU0pGWkFvbQo4c29TZ1BJMTVtaEZWbnBNM3l2SVlKT05WZjIyTTdxN05PYXZBRS9QSlEvOVovK2VFL0pMSVUzZVRLWlRZVEdHUzZvaTdIZ2dadUh2CnJDa0NFSzVESEQ2MndjMjZTVXBtc1ZsQmFIVVF4bThLak8xNlJsYkJzVVFwa2RXV3JJZFpUaExxSjVQRjg4ditBdmVrdm1aUjhVK0QKL00vbCt2L1lVV2w3WkJyR1Vya2dWUnRzWnV4aUs5WXM4ZGl0bjJRcis2TWdLdVNDMkNxOERVSklwSWlJY1RxSDFZNUdBbE9jMVZqUApPN3dDVzE0RnNteU9wVW1zNDJTWlVOOXFlcDBab3YxczY3SWtReUFuZzV1VlIrTWJGZEU1bWpURm5wemxZYVZPbWhaaUlkR0phWmVZCnhyRm0zTmkwSWh0ZEg1TjNsdk54TEdTbTd4Zmp4N2JvTXBOaU9pelg1bmI0VEI4RkR1VW56ZDNjeHhZTkg4TXcxYjBkWmhnRytPR0oKMGhtbjlyOHJ3NzhydlZnandIQXJWTCtQNElTUE1tNkRrQlh1cHdMNGNVdng1Nm1DMTVvR2d4K1QwMlFXV2ZxaDJuQnVFd3Nyb0lBWQpEQzJ1S3RMS24vWGJMdjQvbG53WHF4eHJrcENWV256bnczbEoxTEczWGZyVjVsWUhFUzdEcERRNVRUMGZXS2o4b3VheVNrWnQwenFxCks1TUtxa0VvV0tXSnVsclZ3OFA0bnVWNGIwOTdUMElsYUkxZkVQazFtMFRFYmRRZXFxZ0xXY3pOaXQrbllpUWRrRUVzejRjbnhWbWQKRXJlbTJxdGRrSkdNUkNXSUUyTklNemcrcy9uaEVQNUVLRklFZGtMbXcyVWpyeDMza1k0OHdGY3FCL2Rxa1hpTlFuWEFrSHBSZXo3cQpFM21lUUh2TWJSaitvcHMxc1pRb3hJREhsVjVjZ0laK1pnbUhhekpaRC9EWnovcnhPenB4LzVXai9iZHl0S1BDNElYUlJwUXNEU1d4CkdXRkVUSnZSR0VPMEVjMW14T05tYUpmbHpHc3d0RUdGWDEzbFd5eW1nTHRMdXZ4TjBFWjVKc3VlRE5DT3psT2JuNDNsR3Z2djNQanMKdkpRdzNmUnNNbU00ODBjZCt2SVljN096dVZ0U3BRcmpjamo0c0Y5Qi9FaGVLbGE3dWRuMUNiU21zZG1JRERGYkVOVHNadjNjQzVvZApmV2syTTV0RWUyYzRxYkdwMXFPOWlObkhhR0IyZGRQTXpjc0dtcEF3aVJ1WERiUlJMV0pqY3lxdVJTdTJEY3V1Vmc2OFdObE1ObVpWCkozT2dxS0dvQ2xKMmkvbjJBbVZEQml1ZXM0UGNBUkRjbUd5V0NGUVJmcU1ndncxWFl3Y2tHOFhTSEZHRGtVMHBReWx2UkhaekFkRW0KWktPM1dyWXdINTIvaXVvV2J6NDIyNitab1UwaE13NlM1NEZqTjh2M1hteHNBdUJhT1doc3hKL1VVczlrYkt6K2hrOXdZMktaQ3k3OQpjTEZaZEtiY0hCT0lmWVppN0lKaW85OU5zVHlNTXl2b3RNOVF0US9qYXBpaXlkdStpZGljeUxzdzJRUmlzeDdRNkhIaTY2SnM4SVhECmpxcTN6Y01tWlBqYmhtSHp6NlZuczRITnFDcFRBdGdvYkpHVlJZY2dDWHRVMFZCdUR2WndtR1Jqc0Q5V05FeCtiUXIyY20rL0Z3UWIKcXdWMlJBd0c5bExUd0NCZ3I2UWw0Z3VBVFVHTjlxRjdoU1B6dFF2NjlYSS80UmY4ZW5ablpZTjlEVUJFSjU3YjZPdXh4Tng2a2EvWApWRS9qRGI1bTFWbkpxaUZnZ0pjTkpVUkN2Sm5pYkROUkpTSVdKeDBKVStHckRiNkdSZG1ORzN5ZDZFS25FSld5MDBWMGlRbndOUzBTCmxNNmI3ZGE5REE3d05kYlBUMmlHa2IzQ29vY3B5QnQ3dmFyVGFvRzlSajhPYlJiWWF6YkVZT3p0NWw3TE9sWHZxZz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJaE0yVExQWWZodEE5cm5pOHVkZXdEaW5vemIxbW01RHVza2J2cDFqcHpiMWU1cmx2N0hVMEVRcnFOZW8xbXRkeUczcU4rV0o1WmMrQQpzOWRWbTNpOVpnalhMdUExakV5QkJ1OGFjWTJSODdlTnU4YlpOS24vZGlVekdqd3JiR1BXOVJvbWk0Wk9lUTBuSDI3U05kYTZUTzBFCjZIbzIxY2dHNWhwbHU0Wnlic2gxZDV1bXpiaHVTeDdiUmx5M2kzRzRoNjVtWmFZQjF3Qnk4S2VEYjkya3lIelJyWnZqY3NHMmJ0TjAKMFVCYnc3Qi9LYkt1U01kUTdoMWc2Mmo0R1Z4cjZoejFLVzJxTlhNVDFDa2FhdDBqYXhwTTZ6YjhTdDFJYXlTREZLTnlWZ1Fhc1AyRgpjSEpNVG5IZVBPc2FsVitCczY1UGFEQ2R0VWM1WkhNUng0WlpWME4zTnN5NlJnMVRzS3hoR0cxOGU2R3N6N0ZNc21iK2QraXJvdXFYCkpUS3NuRDhnYXl6cXBzVm1YRFFnbDZoaUlXT3M0YXlSZzMxanJITS9CVVNrV0dkT1pQTHhwS3Y1N0FsR0tGVmFic3o0NGl4ZkRHdlUKeDNEdEdBaHJRRkthZWRVa1dHT0daMlRoQmxpVGlQSW9qazU2U0l0aXQ4Qlh0K1k4NEUydnhpcUhTTm1BVitQWG1FOE5Kalc3K0tVMwp1WnBRa0J0d1hZTjRIZHpxNkNMN3dsWWo1YUtVcnFuVmRVVlkzTkJxSk9NWTY3eVoxWUJpODgwTFFEVk9xUm5uR0FicEdHOWdOWkRsClJZZGltU0QranBwVzVudGhVQkgrQmF1dWthY1BWald1bFpORm9LcVA0U0pWc3lLeXBrT3FidEhIUGtEVkxRcEpiazUxaTI1VndhbHUKVVVvU21Pcm1ibmczcFpvbEh6SXhFbzdWbjlJMlpsUmpBK1ZmTDBRMXpvaDNMUWpWSUV1d1NqMEExYTBxRm5uanFXSFRoMmcrTlF5YQpONHlueGlCRWljMU5weWFVaEJoZnc2a2htbVRvT2VEVUFCQ3BxdWxpVXlORnE3SGJhT3JhTEdJTk1qVSthR2JxYmpBMUZTT1BzcUtzCmRhZ09XbXdzZFlscDlxWlNJd2wvTTZsclpPY0RTVjJDVG40VHFVdG9Td0pJalFha0tsMDBqNW9kU1MwODJEanFqREtVcE4xRWNGR3IKdnMyaXprc3hvNXRFWFpqUWxEeWQza1JoWms5MU9nemVsbUp5NzRXaFJybThJdWltVU9kZFhCbHdhY0JzMHZyMllsQjM1NzNDOW5DRgptWVZ0OEpvWUdVMTNQVGdFYWk3UDJpRlE5eWpqRTMvNmNjTHVoWjkyYmVxaFR6OU9TRzM0Tk1iM21qK3hweDh4L1E1Nit2bVROM2dhCmZsVjZZNmN4QjZKbjhNWk9WelpsbFk1ZVZZOVZ1ZHViT1QwWmhHN2ZEblA2RVJicklLZVgweW92NHZSeUVqQ0kwMXkvSE53MC9od3oKdmVmeGJBMzRoazF6cTVJdjFqUzZSeHBIZlZqVGp0TnQxSFJYQ2ZraFRXL0REWnJleHVCTUw0Y21BaC9ORUdFYXg4QnpiQTYvN3EzcwpHRy9HOURFY3hQUzJCV0U2NzZyUEFFekhxM2p6cFZFTTBFZ2pGbDRhU3lXMkZ3cTY5TU5ZWktwdnVqU09rTnVZZ1pjV3BxRG1nNWZHCkI4MHV5aSs4OUVOSVl5a0hMLzA3SnQxcVQ0Y3ZEVkxCbU9aOTd4RUx6a2RuSGovdzBnWkhiTHAwRG1MMURaZkdLcHVwaW1CTEwvcXEKN1Z1d3BURVN6Zkx0alphR1o4Q0tkcE9sSC81a3Rab0JEaW5LeHovT3p6c0dXUnBlVVowenVBd2ZreUdHTHZiaTNHaHBPUVhTQW0yeQpOSW9sQVVFOFlHbmNxbVM1NHFPUGdHcnpGMVk2bTBpd3FkSm9TUDgwZ1NKSU1NQ3dKVVhSeFpTR1lLUzcxNEpHYllqcmpOVlE1Vld6ClJ1Y0dTcE0vMmkzR2xQNWJsV3liSncwRDVTQTNUaHJIS2sxdUZJVHp5TkYzcCs4bHlXMk9ZOTBzYWJpRzNiMHhpRlZoZWZqVXRiSUsKa05EWGtiKzlRTkxiR0J4cEtDSllUeHdZYWQ2aVZOOFVhV0pPeWpnUTZlS2lwTTJReGhZTStONElhUmo1VUlJZ0RTSENNK1lCU09QcwpyVTNaSlk2NEFBNU5RWTh1UzRqaURZK211bzArNVdGSDE5RG1CRG9hUlJOYy9nUVJHalFoeWlGdWNEVFdHTkVWazhiK0dCb1pzTkp0CnVLblJ4MmhvZEZ0V1h3UXorb3RUSFQ0M2hpQmo4aTVtdFByeWpINlkwZFRKc1d3dm1ORlVDRkltZnlHajhhRXlGckNSMGRoTUJPRlEKV0FGanpGalBSWXltTVYzY1o3M2NlVzFnZEdJQmFodHZZRFRlTDNJRXJoMjcrb0lZR00yL3AvbkV6OEd0RCtsUk56QWFNa2psRWdNWQpMVEZTK1VTTUp2U0JSYVZCaktha2tzSEZJRVlUNnNNYytrMk1wbFVNWVJPaitYaEdiNGNZVGVrSzgyNDNNcHBxbFZibVJrWlRxY0p3ClZDQ2p1VWt5WVB1dzR5Q3ZaN2c0a05GVXFqNnRibVEwVkRpaUZ0N0lhT3JhQlFNMk1qcVI3Y3NDQXlPajhVNktmSHNqb3lsc1pwQTAKa05Hd0VJS3dtZEZpSTVtVWZmb0ZKdlZYMnNob3FJK1VPUXhrTkhYQ2pEM2Z5R2lxeXhoaURXUTBHMll3dm1wa05BMTh6VzlrdEdScAovUkNqYWNDU2JST2pZV0hkNEFzWmpVc1MxRG1RMFJCcUsrWWR5R2pLa1pSN3ZaRFJiSzRiM3hGcnJSbTdVa2JReUdqRUpab3h0YUdXClIrQ01NZHdBUnE4bW9ldm1SYVBObnBvK0hsNzBhbEhHYkdBME54b0hGNDJqRU9oNTA2TFhqT2RxV0RRRGJvejhCaXdhbDBIUjF3c1cKaldLZ2lMS1RGWTFPN3VSckJpcWF2RjJWNGdRb0doRlJkVUUwSjNvVzRmdzJKcHJhbDZ3dzg2WkVvMCszMmo4YUVnMkRHSjFtUkdPMwphb3owUmtRallxY2laUk9pR1JTa3VpRUkwV3p5emJ6aFRZam1GZWRIU1EzbHBCNzNpTnFFYUZTOTlqcSt2UURSeTVXdG13L04xdHJPCmV4QjB5Szdmb2pkdk9EUnN4UlhOWkVQak1Bb0pDdzNOWHVDUGtKZEJoazRVSnlUakdOU0VKaWlvZ1liV1RPS09pQnNOTFE1Y2NUOVMKZGpzamIySHBXQUtMZ0pyQXNmMW1ROFBxQW1pem9XbEJzNWRnUTlNUVVPbk5ocWFWdFVuQmh1WVAxQmtrYUhqalRHaXQrZTNGaGtiQQptV0s4ellabWFZTUt1cU1BQkZYTi9HQnVPRFRMS2FoaURqZzBLaFNFN3dvNE5HK1FxaXd2T0hSUzhmdjZ0dUhRN0xmTkFIekFvVm5iCjhKZ09zK0hRckM3WldHbkFvV2xoSENqZzBMU29zK0lGaDZZU1ZTb2wwNkhaVTZpNXBsS3lEUEFpdXNzSU54NWE2bFNTMDQySDVuYmsKRXdVZUd0T1IybnZmZUdoNk5XcDFhRHowVWJFR0hocVdHcFRualllR1ZVNkg4ZEEwTURvWmVHaGExSHpxd2tNekZzZXFVTk9oMWRuRApNaUNoZXhCbTR1QjJBNks1T0tKQUpBalJpZEJmWS9ERmlXbHVoZjRpUk12S1Q5ZUVhQjVMOWFzaVJNT2diZzQzSVpvdFVpaGFDRUswCkZnRm1SbXNwWE1aaHFHOUN0SXFubW5SMVV5VTl4WE45SUtLNVlKa3UrdCtJYU1xMHhaTTNJcHBLYm4wV1JrVFRvZy9nWWtUVFN0RkYKTUtJbGxjOW1BVlF2d0V3MHVCalJFc2JyY0ZwTnd4OVpKdEVURWIwVjd5OUVOTDFDOW04T1JEUnVtUVNGZ1loV05PTVRJWm9SRGRYVwpHaEhOY0FhbnVHQkVLOERSamU4SVJuUTY3VXpNaUhaMFpCNUdOQ01xTS9BZCt6Yy9ybEorV2pDaTZRVXF1UjByVnN5dm54SFJXQXhJClNCSWNTVmJhcUFpVWlHaVMyWko3S1c5RU5BTy82dkpnUkRSZU13SW9naENkV3JUTHZRalJMSitpeWlZSTBXd05LSTJRQ2RIMDVIT3EKYjBKMDJvS0JJRVRMY3ZqUVgxY0FlMjJBMGZjSnVYL3dvWkVFWk5vdThOQ0o1SXRIb0NQNWQ4QUJrdmgyODZGcHBUVFlmR2djWDVMegpBRVRESWxuNkRZaUdWWEptODZGcFVGclFnR2habVBDNkFOSDRSYmFtQ2o0MEVwUE1Cd1FlR3BtOGdQZHRQRFR6a0N4VENqNzA2dFk3CkJ2WVpRMXdrd1RZZGVwVEl5TnJZbzhOd3NLRTdxc1Vka3Qxb2FCZ2ZzNXM1czhBZzFJN0IwSkJTVDBXd3RtdlBkcHJVV1pzSzNhUFUKTkxicTFSbXNtd25kM2Z0Nkk2Rkhjc0lxU00vb3E4MHA1Z1pDazZpODZqR3lOM2FUUHB3NDZHMjRhZERIYUJqMDlIeStJYytBT2FtQwo2MEpCaithdytONnFDSHV6U2REYmNJT2dqMUVjNk5HdFBnME1OS2dTQkx2ZEZPaU54QTRJTkVMUFRBa0ZBeG9HTmErN0VORFlMVGpPCkRCN04wTzRFQUhvK2Z0MXYvdk9JRmx1QmZ3YkVSWDBEalg4R3RVUjB5b3YrVFBTdkEzU01wMndXY0xDZlJ4SlM4U0kvdzdRc2V5TUUKQ0lZYURlSXh2UXhEbUcvczgzZ2luV3ZxODNCRHBBMTlob0Yxb1RmenVkc1AyY3huQkVCWm94SEk1eEVmN1VFK2I2UmFFSjhCWldOYQpPSURQNElSdUZuWmdpV2tzTWpJaGo5M0VBalh0K2NNZ1R1Rk5lKzVKZVYrem5oR1FaVm8vVU0rNllCbnVYS0Rxd1FMMGpIUzMrbkdaCjh6eThTbjFobnRuM2VkVkRlZTVhZVczR2N3L0k1bzE0NWluVkEzakdEV1lGalBITytMdll1MjFuSDJGK0F1N2NBNmtiYk9mcktKdnMKM0NNekdtRG5FU21rb0RqdmNlREdPZ09ZcURKZVU1MHg1cVViNFR5alYrTE5kSjdkWXZTOTFUS3lQWWpPa1BJMWs1b0Q2RXk4NWF5SAo1d3hEOTAwa3pubUdoT1RHT2MvZ1J3Zk5HWFVPVE00RnpCbkVhdmJqdkZET2k1SHNja2pPV0NvejcyV1E4Lzc3NWpnZm96SE9RTHBFCmYyRldiczFpWXQ4TmNWN0JTUXFHTTlhUyt1cUQ0WnlvYlhjenU4MXdobFVMbUlpNlVYMURrdWJPcTJONVpEanpidUVMYVJPQlZJRncKaG1Xd2ppQVl6dHlHSC9waE9HTUcxZlFRREdjMGVIZXBMdEw4V05Qd2hiajV6UitYUjY3SXhqZnpsSGgzQTkvTWd2NFp2T1ZkUkFLbgprUmNkL0daVzlFOURzTlZaTUVYWDdadmZ6R2ZKUWduem0vbEtOQU9pSlY1T1ZqTysrTTFzRXhsWG9GQTNQRDBPWlFZNGYvV0RmdnpoCnZ5akFtWEZCVXE1dWdET3RsRGdFd0ZuUndwSVBzSmxoUURXTHVCRE9ERmRSSHhRSVp6eFgvNElSenVBeDhnVzVDYzY0Y2hVWUJzSDUKckdhRDRLeHZlbW9DUFlGWmRueTFENlhNV283Nnk3WmpsdDNPU0h2RkxNVmgyUVJuR0tRYUNJSXppMGZWOGVFaU9PTXFwVTRMZ2pOZQpPMEdiQXVFTTEwNkNzcHZoZkR6WVlEano5UXlwaGdnUFpGSU1wYkEydy9teW11SE03cjBNL1FmREdSYkp3MjZHTTNFUFZCd0Z3emtSCnErMEtldlVTaDZDV3c4dk5jTVliYXpXR0djN1U1YW42MVF4blBGK1ZJOThNWjFTbmtlZ1ZDR2VVYWdtWDdnTHI1UVkvTDRBejFHWEIKbDZmSER6ZWFRMGZ3bS9HZWNIMXk4NXNaNE9Gd0hmeG1CbmpFSmZCb1FVdHpEZWlwbHFMVnJYMnA0K1N4V0NRZC9HYitaSlp3WitPYgpHYWlNWnZRcU9Yc2VSUUUzdm5uTllHd2ZlalBLYVlSWE5yeDVEcTEyTjd1WjVUVTg4d3Zkakc0d0FrR2IzQXpwSkN2MUE5dzhvdkx2CjVqYVA3dUV4c00wamlwZUQyanppNDdtb3pWallMQ09hR1JRWkp0c0dzaG5rUE03N043RjV0Q0JJR05nOGhzdWlqV3NHSW94Qm1rTnIKUnRzWURzMUJhNmFzZ2lYL2hqVjNCeDlmckdaUXVoZzNDMVJ6TDI2OVkxQXpzVjVENWRDYjA4eE9SNDl3enJ3c0hJYXZZRkNhMlgxKwpLSm04MDNJOUtvQ2p0SnBpUDBNWVdCZUpxNmlQR0FrYjBjd3U3MVdmTlFOUVNOVHhXd3BBTTZocjlFQnZQak95ZHdRakI1NFpFQUhHCnhJTE9YS1A4OUlZelF6WTFTcWp4SVBNTHJ6RFF6TVF3ckZCM1dqUU12UTlMNHdQTXpGWmZ1Und1TS9qQlZCZmRXR1pVNEdxTllDcHoKYTk0cW9NeFlGN0hFOEdZeXc4Z0ZTRENaSVYxcTVpaHoxUXh4azBpSkY1SVowd1RCOUVGa2J0V0Z0ZGR1cW1pOWVjeGNpaEhnWUc3TApYamNFanhuS0VzN1NONDRaVjhCZkN4cHptNmU3TnljVDFGV0pvSDNCbU52d2x4WXM1aGF6VjZDWWNUN0ZqTWFkQk1lc3dnS1RJREZqCktocVhxTE5OZDd1NE1jeHczclg4TjRVWnB5WkloQ0hNRURuTnRGNE01aFdMdEdBd3J4YTk5NHhnWHQycDQ0dkFEQzJ4Q21rTllGN2QKUHg3OFpVRWJ3ekMzVGxqTm5BeGZYczRGYlBZeURQRmJHNzNNUkFmWEJvRmVqbVRFSmk5RDVFWHF4dzFlbmlNNktwaTd2QUt3R2RqbApGWUh3aTdxTVJJdmVtNzRqOHNFY0NEVXoxeitVdzkvVVpWcEZFN2NNTHBHRGE4V2R2Y2RxanNsTlhZWjFzZUEvcU10a1JQbTlrQ0JpCk4wRzVvY3ZYNFF4ZGhrWG9wb0F1cCtSQ3R4ZDBXU3VmdFE1MG1mbG15azREdWl5UWdaVmxoMDhQUDVEQ3pvQXVNdz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJemNzNUxhRExYejNJQ09wOVAranljck9wRjNONUxRRVdObklaVmZPc2p3bmlNcHlIWkFUejFob2hIY09VVWZDV1lWQnBzbkhMMkkwSgpxcHUyek1MWWVsakxLNERKZ1ZCV1FQRmlMK3Q5aGtpVEphK3hHYmlQNUFZSGFmbEtuRjJrWlM0TnFJc0kwaklYWkV6aEIybVpZVTZYCmtHNWNNa09kQWs4YnRNd3pVNWU4Y2FLYVJ0dDkyck1ieXF2KzhUQ282R2RFaVVkMjZjbkZXV1k5aCtxdHpGbm1aUS9XVjVtenZDMDMKWnhrN2ltd1NuR1Y4a2FUN2I4NHl2S3FxcXBXTHN3eXIydmtHWnhrV1NuazNhSmtPT0IvUkRWcW1sNWExR1JPRW9EU296RTJZWlc3QQpSM1pqbG5saWpDUUhaam50bmlTQldXWXBDQWZkQzdOTVkzVVhCdEhVWU5Gc0pjd3lCejBXbzl5WVpUcVkyVUw5b2hWRlVzbjJ4aXpECm9qS0ZHN1BNSmJEbURHT1dFd3ZoaW5TOU9nbU1IU3hkdURITFhCUlREeDJjWmF4a1dRTVNtR1VsZFV0OVk1WVpOeUdwSXpETFhDS3AKVzRReHkyU2pWY3MrVDhROWgxWTZNTXRrbzAxdnhrZWJnd0oyWTVhcEptRjB6SmhsR29xaHlnemdjVWVobmkvTU1qS1d2di9HTEVNTwpvczVOZ1ZuR05ycGhOMmFaYU1VZVF6eFRuY3ZoOGhWc3B1VVl6QTFaSmsyTGxUVjd1OVlzdEEvS010YU5lbmx1eWpMankyUTlCbVVaClBxWWNqYUFzSTNhZ09OaE5XUmJYYUk1RFdhYjJUNStnS2N1MFVFcC9VNWFscE96elVKYkZ1Q0pNeEpSbDdxa3lxNHV5ekJCNXdMWVgKcGU3SnE1MmdMSE1oS1hqNFJWbVdmSExOUTFubTZVZlJLaW5MQ0dBSmYzRkJsbUgwTHdxeXpEQ1hUc3lRWlZvWUVMb2h5N0NLOVdmSQpNamZUdlRCa21jZE9iaXV4SWN0YzNZak5Fb3pMc295R00yVDVHRzdJOG1VMVpCay9vQ2hMd0pNWkxsSUMvNElzWTZrbzcyNXZsNzIwCkNzYnlNVnlJNVcwTXdqTFhjOHJWbTdDODM5Y1hZWm1wWnhJR2dyRE1rbmVxQm9Ld3pPUmh0TTdZZWtsYWwzMUJmZlhJSG5LMUpNSXkKYzREeFp4VFBTS251cDJHdVkzT1dMUURMM0lZcjNodXdMRUh5VElldzdDREhQSVJsUnFybUo4QXlzWjFQam5ZRnlYa2hJaDhDc015dgpMekw2VnplYmFzY2pBTXV3OUdKMWdFaW9yY3FkZWdHV0dSc2ljU0FBeTdSb0hoTmdtUVlKRFM3Q01tOC9NOWFCV0dhcW00SzFRQ3dqCkVLQkt6aHV4VExTVnV6T1FhZ3VWV1ZlM1FCT1dNZGFwdmRsTldLYXVJMGZ6Qkk0Q2NIMlVYVGRobVRHVGt2SWJzUXdybWVBYnNVd0wKSDFJd2xtbWhRUEZtTFBONFZPVUVZNW1SRTVWWHI3aE1GL2E4R010MGFMTjdTVGc0WnU3T2hpd3prZEJHOUdhSW9XZGJBN0xNR1c3MQplaURMdkdmc0xYOVRsbUhWaXhhVVpWaWtsQXJLTXJlaEJPcW1MTlBLUnhXVVpSSDJSaitVWmNvSTFjdmpLbm1qTkpMMTFFRlpobktICnc4cW1MRE03UTRmMnBpd3phczJLKzZBc3M0Q1hDc1NnSjhPZFlJdXpGMldaSzZkMEdWZW9NUUxLdVEwM1l2a1lUYUpDYnh6eGNneFkKL3VMVmY5ZUZBMi8zMHc1R0RXdUd3cHVidm0yOE1wNXdtWHJFb2l0M2R4dDd3Wlc3bWF1YnJkd2RNTjVvNVdsVXc0dXNQQjBaM0lCawoxNmtmc3ZLTWQrNEdLMDlHNHU2OXhNVGRWT1hwOHBJWFZCbEZZMVErbWFuTU42VGxRQ3BETmNKSTlVMVVEdER0QmlwRHU4VWhMVURGCjJmV3ZOMDhadG1uR3Nwb3VkUEYzQXFiTVBOSXFiNVp5ZHVYTVppbkR3SFphZ1ZLbXB0NGg4UTFESTUwYXF4aWhsTkVSWTZ4MG5lQ0sKdGU4RlVrYmhBc0d3d1ZFT1BOTEdLSmRvOUh4VGxDR2NZb2c0SU1yVUI5ZDVHTXJBSjYwWFFMbTBjQ0xOVHk3UmxEZnd5VXd3T1FHNgo2Y2xJUXlzN1pYZ3lLZ0thR2NzTTZ4WFRPbTUwTW15azhRVTV1WVRRTDhESnlFa2htdkxpSnFNVUp2cm1jbnBGcWtFWlI3OUJLRG9SCklmdUNKdGRnT1FZem1WRzlOUTR5R1hvUFpvbHZZaklTT1BTNkE1Z01DVXEzSTA5SlViZDI3b1ZMN2srUUVFMUx4bTZNakFjc0dRZG0KYU81bUpUZEwxallxdVVYUHpTQWxOODlTTDFJeVd0eEZZb0drWkdoWW1Pb3pKeG41NTZGLzM3TXBWMW1QdmlHc2ZvZEpUTUZJUmxmMQpyckQ0cnBqQXNpK0hiQXNmeXpBRmEvT1JzUmY3b2R4NFpBUmNsRUUwSFJtT0FSbnNBVWVHdms0bExSY2JHZGZhWFF0QlNDb0ZLazBCCmRRYXFJRDFnZ1BrR0k2dGlySDdiWEdScUJwem1ZZWF6QzF6eGdpTDNhQWtTVE9SZC9oNUk1RzRveG91SXpBWXFQSmFCeUtkWTJUemsKNGdMWUZ3NjVCaDR5YU1nZzlETFZHRERrVmc3b05WaklCSzF3eGFLSy9CWk56NEtFM0VLdGVvT1FZU3pFR1p1RFRQWUsxeS9HSU9PMwoySmJpeGlCWEYyTnNDaks4TkhXR2RDS1N1ZXVscGRkbUlDT0x3Ynh3SUpCQnRlRjNGZ1RrRW0zWGJ3QnkyYzM3ekQ5R2hZWkltc1lmCmsyWm1odkdtSDI4WVVjQ1B5NGlwejZrNUdBaHF2ZEhIZk8wc0RlTzhBclljNWRzQlB0Njg3NXQ3akpveTFSdTZLS2RrVDB1aUhtY2sKcEl4c3Zwb0xPVTRWekdQa1padTNVaSsvTGhibkRUek9YYXIrelR1R2dSQjk0WTV6Tk1hOGFjY2YwenlyQ3cvc3VKb01HYXpqeGdGVgpOWDRiZGN6V0NtSEVYSWo1Z1VXdVFUckdPNTJOSzk2ZzQ0Wkt0NmVlc2tJTW00T2ZrREhIaUM0OTVpTnZ5dkZpTWpSOTI1RGo2azdlCm0zRThWQUw2Umh4L1RKakxnamNoanBPbjVTQWNXMmY2NGh0UExxTnN4TFFsR1o0b3lNeVNUWUo5bmJTTGRURmdJbWxKVVUyNDhmUkMKTHVER0VTZC9vNDJsK3pwazR4R3RDZ3cyenRIaTlzVTE3cXF5T0ZoakN4TTMxWmhKQUpVcEhxZ3hreDVSbFlqRnI2R2ptMmlNdHlJWgo5TENCeGlnSlcrWTZrR2VNOTlrTEVYMGxIUHUwcHRrMDQyS3ZLV0RHT1h5QVlCbXpSdDBqYnFDTVVlL1dWVzFKVHdtTEdyNlNtMk9NCmdqT2psQytNc1NYZFFURnVEQktrQXpIbXFvcGxxamZFV0FxU1VRN0VHQkhVajNWYVB4Ump5am1mc0lUc2lWclIySTQxQkxEVTZuSXgKUHJpdi92ZjM5TzR4K281WVNKdGlYS2NiVGdiRU9GaGxtMkhjY2tocEw0UXhBZ2pGMUVsNjFjQmRVTTBUQUdNU09Lb05JWlVIOGtKTgpndXRtWUFpcUd2VGlscDNKdTlqRkxiUUZSaGNqM1VxOVo1Q0xrYU9VQnZ3Q0Y3ZG1mSTlqNTFDTDBzTXhrUmo5aHlPeEY5amltU0s1CkxCc1JzWFVjYVBGS0NpQzhtTVV3c21vaWtNVXIrbmNFc1JnZ1YyK3dYZlNWUEtjR3JoakZXQXJlZVN2OEE5TnhONng0VHJkRURsYngKcHZNR2doaG9DcnFYTjZsNFBQWm93Z2loTUhOeHdTbmVoaHRUSE1aTktSNmV3VGQ5R0NKZXJuNXZTREhFdHdyazJEaVQ0YVJDRko4LwpMMEp4R0RlZ21IRGxWUStmZUFSVzVNWVRRNHdzTXBEcHhLTTVZeDEwWWhpbWVickhLNDFlMzhFbUhxRk9DaER4YU01aDNtUmljS2NDCmFZelhld2IyUDdqRStHdzJlamV3eExQWm1RNHNNUTNsd2hJemZwM2VVT0laSkNjemlhZmJnUVdTT0ZxSDMwQmljQmlWblRhUEdKcE0KSmhxTkk0YjZrdmZ3cGhGdllGYkFpSWxjWkRyTUxPTHBEL1dGSWthcFVqSWhORXJuMU1RMFNNUXdaRWZQTjRpWVJzeEV3U0VHMDRrSwpFbU9JVjdFRGVGT0kxOTBXRVI0TFVjOGpIUWd4Uys3eUcwRU1QQmREWEVFZ1J2cGVsUm9HRUVlejlSZC9lQVpITmZERHk4dXFUUjltCmxTQnh4QWMrYk5iMFJnL2poRlkvNE9GVkpObDljWWZ4dWJGWUxyRERLMHBoZ2pwOEhXWXpoMmNrWkFNNVBKMmEybnpoR0FaZXdHR28KWFVVME5tOFk1TEErTG83d3FCNUxiOXh3RC9adkdKRzFacXc3WU1QVW5NLzZaZzBqZ2ZTNDZUQkNIZmc3R1VnOEpjQncyZlFGR2taaQpLa3FuUlVOOGxIVFltR0drdUpwNzFXMHRUM2VnZTBPR2V4U1dCV040RzI3RThER2FNTndOTjlwOFd5eHBrMm0yR3pBTUtEN3h1VjZRCm9LQXAwSXYwVktxTDhsNXdZWkNqVk5SdXRqQldQQUpXR2kyTXRWQk9iN0F3VmxPcDlNTVZ4cG9yOE1QOHlxckZCQytxY0xNb1kwT0YKZ1JscTdTQ0ZSOUN0RDFFWWdpWWlKUU1vekxXWlM5dFkxa3h5YVpsdm5EQzlzZFFPVFZncjJYNWd3bHpyanZ4bUNXTlZ2SXdtNXEyRwpRUVg5UmdsWEt6TmZKR0VBcE9LOCtYMUVIbXh6aEQ4N09qOStSeWZxLzM4WTRTOTQ0RDl5NVBydDcvMmozLy8xZldBYzZBOS94Zi81CnMvL3JMMy9SRC96MGg1Ly85SC81NWYvVnNkdno3ZS85czEvKzdDOS9ZNi8vNFM5Ky9kTi8rc3RmL2Z6TDcvLzYydjZQL2NZLy9hdGYKL3ArLytPVnYvdlNmL2VGdi9yM3B4MUczOE1kKzRILzdpNDlUK3A5KytZdC84Mi8vK28veWttUFRQL3k3UC8yNFFmL2pYLzNoOS8vUgpiWC82NVYvLzlYL3l4cmpJajd2eUY3LzgrLytNYS96eEQzKzVyeEZWM1IvRDR0OTZqZi83WC96NVgvL2IzM3lXLy9DSC8rYnYvNlB5CnAvL3c5My91L2ZCM3c5OS8ray8rOFB0Lyt2R1MvZlhIZS9hNzM4bjhEMzc1TngvWGRmM0RELy9rMytGZnB2N2xIL3pWZi9qMy96YU8KODkvK2sxLys1cHYvK0piK3V4K2ViMy8vNC8vKzVkLzg4QjkrZUlHaG4yLy84OGQvL044ZnByLzVWci85NDIvL3gvLzVmUHR6YlBuUApmdmpkQktPUS8rL1gvUWZxZ3JDUS93a1cvRUZ4N2g4emYrenkwMzJjbjM3NC9jZXgvOWNmNEZ3endmVkFmNWIxSDFoK1Fwby9vTndGCkRPaGp5ZmV4OHNKL2ZJekRuUmJHNXY3bG4rR1lrTkpYMUgweGlKVSt4aG1lSmNaM2xHb2ZNNHhWMkt1SkFNTEhEOVpQeHE1MmNELy8KOERZREZmSHhDKytqb3BqbFkreDVuNEdOT3NDUU9QNjlyWU5QNzZNZTQrc01qdms2MjNQVTY3cSszSU9mZi9qWFB3Q3N0T0JrZ2lySwpmQmpVUFFWVEsybmhINjcyUkluRXgvSVhtWEFVSUMwVWNYN2MxL1I4KzhmN0VjS1BUY1FuUDM0Rk9EdTAyd3dqWk1YUUlLcHIyY2RNCjlEWW1wVDk0YVpmNUVTWGlkZFNQNldqaEpYaWRRUmgvL3UwVCs4dVBLNDUvWVAwVEpybE1rRTRjdTl4bW53V1dySk5GRkwyblQwYnIKaC9ZWjIweVFWLy8yT21yRGVxR1ViNjh6Q09QUHYzMWlQdVAvK2dMLzhSZTR6cHBOU3B1TXBIeXN1NEd3UVRGQnhidjdNUTRRQnRpZgpnZGc2NFFFWUxEUTJBSE9ITFA2blcwdEJSV3J2VTRBb2dVdWkrMlF2NDMxaGwvbmNoT3VvNTNaZFozRGYydWpmOE41MmtxdjI2YWpICitEcURZNzdPOWh6MXVxNHY5K0R2T0RiOGpxY3lRTHo3ZEY5eDJ0QnJ2SDRmRjRnby9ldE1MK045VlpmNTNJSHJxT2RlWFdkdzMxZjgKQkZ6bjk3YkladVpQcit4bGZKM0JNVjluZTQ1NlhkZVhlL0JkWGxsMjlYcmE1L0VMZ3c0cTFsN2pWMlBZcXJ6SHI4dDRqMStYK1l4Zgo1NmpYK0hYTzREVis5U3hGOW50YmxuWitQdW94M21kd21jL1pucU5lMS9YMUh2eXNvUkp6Q0pRK24yNE81cENuZkRvSXBvdktMK1FlCjNJL3hOYmdmODdtTWM5VHJnczhadkc0T1pyeUJRT0pyVy9MKzE2ZWpIdVByOFJ6ejlTajNVZStIL3VVZStPWmN6KzJlcTY5bmZPYnEKOHpaY2MvVmx2T2ZxeTN6bTZuUFVhNjQrWi9DYXE4OHp2cmZkYjhOOTFHTzh6K0F5bjdPOTNzZHpYVi92d1pjMzUzVnpybWQ4T1RMNwpiYmdkbVdOOE9UTEhmQzdqSFBXNjRITUdyNXR6bnZHOTdYNGI3cU1lNCt2eEhQUDFLTS83ZUQzMEwvZmc1ODhlU0dNZmkvYlpBd256Cnk2dG9UTEYvY2tzdzIwaVA4VFpia1BjK0trdVgxbnYrRCtNbkQrVGVkbnNWOTFHUDhYVUd4M3lkN1RucWRWMWY3c0hmZlpvOFUrL3IKdmg1SDRmcjk0MUpjWjNvWjc2dTZ6T2NPWEVjOTkrbzZnL3UrSGtmaDNuYTdGUGRSai9GMUJzZDhuZTA1Nm5WZFgrN0JkNWtteit6Nwp1clhIVjdoTzRYZ1YxOGxleHZ2Q0x2TzVDZGRSeisyNnp1Qyt0Y2RYdUxmZFhzVjkxR044bmNFeFgyZDdqbnBkMTVkNzhIZC9aYzluCmdFOW5sQzlEUVpoZm4zZEhxWW85Z21Qc2dvRjhHZ3B3cVBxTTkxREFaaGFwdmovRU1INGFDdTV0OStkOUgvVVlYdz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJWjNETTE5bWVvMTdYOWVVZWZPZkZ5T3ZXbnUvMk9vWHpoVjhuZXhudkM3dk01eVpjUnoyMzZ6cUQrOWFlNy9iZWRuL2g5MUdQOFhVRwp4M3lkN1RucWRWMWY3c0gzWEl5ODd1djVhSy9mUDUvM2RhYVg4YjZxeTN6dXdIWFVjNit1TTdqdjYvbG83MjMzNTMwZjlSaGZaM0RNCjE5bWVvMTdYOWVVZWVHb0hXUWdKbkU5K3p4QSsvNVB6WklYNzI4MDZ4cGRMZHN6SFF6bEh2WHlaY3dZdnYrZnJpVGtjTXI2NDl6eHMKK2JUMjRRbG8yMnMxY1l5dmxjY3hIMGY4SFBWeTJjY1h6LzUxT2pqRmY2NVE2ei84L1orL0FxMy9LZkhYOG5lTHYvcU9mUXJDbmxncgozckEvWW94OWYvcHl0Qk9LL1RzSEMvSHVkcTNlcVh3cForN0lqUFdGMmZNQmlKVmVaNmYyeVlnMWVXMW43ckFaNi9kUnY3MlAycFQrCmY1K0JqWHZ1V0dOODJuWkk2ZjArNmpHK3p1Q1lyN005UjcydTY4czkrRzV6Qi83OTA2MmxOMUUrblFMOURyN1kxOGxleHZ2Q0x2TzUKQ2RkUnorMjZ6dUMrdGMwNjIvZTJVMEsxOTFHUDhYVUd4M3lkN1RucWRWMWY3c0YzbVR0WXRmSHB2dkswODZkWGxoZFlQcjJ5bC9HKwpxc3Q4N3NCMTFIT3Zyak80N3l0K292YithZHRwS2NQcnFNZjRPb05qdnM3MkhQVzZyaS8zNExzRnNsQVo1ZEd6ckJPT1lJdkFiZjZkClJ0dzhhZ3ptWlh3eW1oYTh3eEUyUHlvWWVSMlZnM2VhMzE1bkVNWWRqb0JvOGIxdGtScjJmZFJqdk0vZ01wK3pQVWU5cnV2clBiakMKRVUyZTczMXpPSmUyVHdmaHROblQrK2N1NDMxcWwvbGN4am5xZGNIbkRGNDNCelAvbk92VHRrVWxZZStqSHVQcjhSeno5U2ozVWUrSAovdVVlZkljVjkzNDVJbHQ1V1R6aHYxOUN1d2J2aDJYanA5ZmwzbmEvQXZkUmp6RjlmbGZIU1ZEdFJ4U25lRm5Pd2E1WDRmenNkY3Z1ClU3eHU3N1h0ZmhEM1VZOHhmWDVqZklyZjhjT1BYL3YwNFlmNWRZTjREYXQrTXZwNlA5M011RGV2bzM2S1Erb012c1FoOVNRL3hTSDEKME82akh1TjlCcGY1bk8wMW5KenIrbm9Qdm56NHI1dHpmYUxuSU9mUlhEOTNHZTlUdTh6bk1zNVJQOFVoZFFaZjRwQjZoejdGSWV2bgptM01aWDQvbm1LOUhlWWFUNjZGL3VRZmZZU0pQMGkxK3VxL1YzVHZmOTlYZDY5NzM5UmhmOS9XWXp4MDRSLzJVcU5ZWmZFbFV2MC9zClNsU1B2bGNYTVFYZzJDbmZacDlGbiszVEZIQ01yeW5nbU05Z2ZZNTZEZXZuREY1VHdOY1QrejdEd3ZhTXcrWDd0RG9JODh2anB5Zm8KNU1BeDJoUDh0RHFRMzdxRHpENnFQZHozR2RqNGFYVndiN3M5L3Z1b3gvZzZnMk8renZZYzlicXVML2ZnK3dTWjVSYS83dXR4NHEvZgpQKzcrZGFhWDhiNnF5M3p1d0hYVWM2K3VNN2p2NjNIaTcyMjN1MzhmOVJoZlozRE0xOW1lbzE3WDllVWVmSzhnc3ozajE2MDlmdngxCkNzZmp2MDcyTXQ0WGRwblBUYmlPZW03WGRRYjNyVDErL0wzdDl2anZveDdqNnd5TytUcmJjOVRydXI3Y2crOFRaTzRSaFpzajljOUQKUVpoZm56ZGpZUG5UVU1CNFdadWZod0ljQ28yRTNrZEZGTzc5R2NyMGFSZzQyKzBQK3o3ZU1iNSsrNWl2OHp6SHZLN295OVYvNXhEQgo2NmFlTC9ZNmhmTnRYeWQ3R2U4THU4em5KbHhIalp0MS9mNjVxZWRyUGR2dHIvbyszakcrZnZ1WXIvTTh4N3l1Nk12VmY4L2d3T3VPCm5nLzErdjN6U1Y5bmVobnZxN3JNNXc1Y1I0MDdkZjMrdWFQbkl6M2I3WS81UHQ0eHZuNzdtSy96UE1lOHJ1akwxZi84bngvOS9PZS8KLy8yZi9mckxuMzhicjhqbmYwYnNzK1lGYVMyazV2Z1BNR2wraFJXNE45U3pIL05Qbjh6dFk5SFRxOHpuR0w5dDNZZjRQYy90ZXdoVApYK2N5MUlKN256bmNRSnJseThrNGJIdjZyTGExNTJOaFFXTjZxRytYbWJXR05MTkYrK2NyOTYvOUJEK3pFdVVHTGdCNmxINmNlcDgrCkRkUzNmTHpxTkpQQUxDUDlRUDBrcWdwa0pMSkJQemhMbk1kZ1AwQnQybVAzanlGcCtkSlFSaVBqeHdyVXY4OWF2OWo5K2ZnUS9mc2YKYjVvdmVlMkRLdEl2bzI4TldSQnhGOWpTeDNjc04yL0ptbTM5UHFveGZMOHdubXJMUkxxbHpPUWk2cmJnZWZxazBKRlZScFRmK2FxZQpNSDQ0OXVmeTBSalo1Lzh4SHNlbWJYai9jd00rUFlBZjlXVHl3dzVpdEdmMGF2N1ZWcmFTcHJVcGxDL3JTUDQ1ZmVNeXJoWGI1dDYvCi9kWlI0OWZtbjlUMCtCK2VqNFdCZjI3dTE3R3JlNnFOV1FjQjdHcHVtMTREZzBGL2pQM0hpQzJmN0UzWnhVZkhaSmp4dDM0L1Rnek4KWVBTRTBXYWtGcDhZY0p5NnVLWWlVaHRSKzJmamFtRjhZc1BGK3h1YkxwOXY3M3QzRkJqS0JvVDJiLzcrZit6NXNORUt6ZXhuRUErSQp3RlZ2WGVOWlZML1BiTGd3LzdZSDlBQTNuUDJkZmJ4YU1kS2gyVW4zUzQxMXFXMTdhR0R2WEJqQjBXditKTmd5N01mWVArVnNNMG9DCjQ2RHhwZGFoczMzWURPTExkNzZFRHRQdkkxTm8yOXpuMVBmdTcvUDNoU1hVdHlYZmRiYUEvelhNVCt1WCtTZWJpYXlSK1dNMStzM0cKN2tmTTFoTzJvUkJkeGhUajQ5ZGY4MEFJTGdES1RmVVBZTjM5YW5NQ25rU0h3WXRnWTA3K0tqaDgyUWpJc0o3YzhnY0FhNHJ4TFkweAp2T25UWTNRaGM4REc5SGgwWUdvNURoQVBzK3RSeDdZamJnNGV4bTlld1hsMXh0TThtTEtUWGJ3NnJGV1Z1UTNQZXl6STJXYmdER3ljCmNjVWx4dU12eDQxSE9sV0FyWnUya3VlMlpCcTB6TlgzY3FvUzA4K3B0REEyRHpDRFk4RW40OHc5NzcxekdOdGEzMzd6NTMxZTZBUFMKdTZiMDUxRk14ZGJxTDRQUm1EQjZXbGdqNVczci9nUldxejR2ZHV2TVBmYlhKNlFXbmkxKzY5ci8rdms0cmUxcGdEQ2FQQVV2QUJwawpiQ3ZHRVJobjgzTm9WWGVMeHNldkNFSDhYNHhsZVdiODhsdCsvUWtnS2I1bkJYbWlYOFA4ekI3bXdXdWpjYVRmTU9ZUnhuai9VWFpaCnVzZlpqS1lETm83d3VQQ3AvT1lKK082d0VWb002dXlTK0t2Tk9SZWZCRWtZTXNhOGp6ZXNaaHViUHhaOGJUNHhTYTFHekVJbE52MVkKVmVUM3JQTDFCTTUzeFQ0akdoTFgzSjhWdTk3RWlOajhxYkFOaDQwbHZwK1AxN1Nlc1ROR1ZLNUlQWHBxZW53SVMyMnhxZWJjTDc5Lwo3dGo3Z24vOURXdjlqVnZ6TVhyOXE3amxvNGNaczhwUFlVWnJKcG5yRTNlSHpXTmtMSG4ra1Z1dXQyeXFiU2x2SlNlUlg4T2N3azFnCnRiMk1wTHZLT0hRZldQd2JiZ1lCS2ovK0VPWmNZdHVSWXR2Wi9HTk43OExYRTRneks1TEllSnpQZnBqczlWNUx2RkRObjJFQmd6S0YKZVNUOVhoRml6a2FOUlYrUDZ4OUV4ZmFZNjlyNlY1dkRKMmppSmRyWTloQ3A3K1hEMXNyK3RSYnpHOHg1blRQcnNTMGJHK2drMGd4agppZy9XbzZSL0MyT2dqeHUvVld1TGcyclErWHIrY1dHZ2J6emorckZmd3h4dUdLdWlaUHVZWDFaTTVuT0ZjV3lmc1V3UFhEQzNlQklzCkU3Y3hMbUZsVGE2d1BUR1FrTXo3NDIrZmxrZStpYTQyc1lDaDkvQ3J6ZWxKSHRXSEozNFlTN0ZuUmVLSmpSNDB3TGZ0OXF5bWNVSTYKYnRJUzRzTlllNDhmKzFqU2Yvdk5NN2g5dnZnNStORXh3SEM5ZHp3NUcvTzR2TFBmSGg5c0JZN0wxaGJ6ZTdncDJIL0ZvUE5IUEw0eAp0eU9adHNjNFJoaWY0NGUrVHYrOCtuUXFOUkd1dUs1b2R5TnppMitOMkM5TjhaT1VjZG02YjRHUDhKdUg5ZStoajBiekJYOThnZlpHCjBPOWlMMGNuOENRL2hmbXA0M29ZUHNLb05ZeHkrTDRjTmk0dmlZYjErZkt5ZUFOeUV6U0N3N2E5WjFJeFpVdzlKaEIrS3ZFQ2svUW0KTXhhQk5xNjhEMURpQVBtSjUwNmN3WSsvZlY3bkN5QSswUzl3S2VjTHVONXJyV0cvdnV6LzZtL2Y5blhjZi9IeGcvLzlmNkFmZ2llNAovQVRwcVB4cU0yTWtOc3Y1WEJoK2l1OStEQk5zNFJhL09CNnZ1OUVldWxhL2NzUjdhZE0wVXR5a3NjSklKaFYvS2NXeWNMSi9RYnlECm5uUUFYdW5KSHdJYlBNaEl1SitNTlc3eVhBcXY2SzE0dFBZaG1pVU93RmZGUm9TRS9aanJPWVB6SlgxNGFIRW5XdzczWWE0bkJxUDgKSkwrcDlrdDgxejErRHF2SlpRelBGWlRPMzN3NnNUdFYxL3FTUGFiU3VIek1qdzh0NzkvM2htbFB4YS9CN0ZrZU40ZldhdlFIZ0JtUwpMVUlzUThRLzdUKzBMS3M3cm1WanhNU2VHbGZQNXVNeWdtd1J1N01wbDNZSE52QW5tL3Z4bjNLT084QndudzVCTWY0bkk1c094WEZqCm1UTGtUc3Y0NGR2NldwTlgzOU5YbzZPMnZUdkRVSDRBK3ZweFVpc21BNzVNY2N6WVhjVE4rUGxZVVFONEdWZkZodHArVzNNY2dDdEMKais5eFRoOXJtSFZ0R0VjbHprbmZ3SGoyK2RkNFYrWlNGQVN0SWVIdzdjRkwrL2Y3dFh6OHJOSERjUHBPalRTbmphM0h3MmE4VUFkbwplOGdmNnM0dTQxbysxK0xRR1VoSkk4V1lXTUpabWVnc0VZZGx1RURHUEZNOGdPR0p0d3FPcnhONHdpdEF4OXhTWXJUSGZLd2JXLytrCjFVOURMWmxLeGMrZ3lBa0NRNzV1WDMrVnVDOVZuZjg4TmloSUFVNVRibkd1Y0VYOFF5M09kWnpIRFZ6TW5INWVYZE14anByaWpXOTEKeGxrOS9VbVhNUTdBVm1lK3J1bTVsQTJSNHoyeUl6ZEpieDZmWHMxOFhRR2ZzUTZicnhlK1o0M0UwKzNpUER3cUxEdXprTXIrcFlqcgpUaEQvWW5BaWNROUdFRnppVko4d3hWZUlTZDhmNFRDNU4zd3l4NFRHQ2Z1TlAzRlllcHlBaGRsUDNyRHVlU0E4eXc5ckhmc3I4ZzM0Clk4ZTBaem5VV0dIdlgrTXI2SzBYYjNzQzdsdzRlTXZWWTJJdXBlOERuQmhjckRySFdSTVp6Z3NqSnJWOUExTHlYUjJhQVgydTAyTWUKZXNpbEo4SVZjdnJIRUxIVkg1eEdZclNUV1BHdytabnBxSWlzeDB6UWNuRjhpQTN0NG8wamtSTkd0SnlJRXl0ZVlZeXFySnVudmVvNQorc05jZWpoTzRTdU84aWZka2VLNWwrTURYWGhqd3h4ZjEyQy90ZmhtS0xxaGtSQXgvNWFtVGRLQlp6eFpMRWgxZ0x5RDgwQnZhdHdICjRLbUhCeDNCWDlBQjkvRFFQbFk1K3dEaE8yQ0k3RzI3amdNZ2MyMDk4dHhtemlQMjBWSTlqdVp2KzUrRXV2ckYwZlNOUTZTMXg0N1MKdy9qRTlORkxPQkFmWmc3bEh2ODFKckt0eTlxdjR6ckdKKzc1TTN3QXRFR2Y4ZWFSOHZhVHpXY0VqVFV2eElNbEZnUGtVOGxJRXBzbgpDM1lvMEFIR2RpSStwb2djQjlnZmVzU1MwTW5RVXdpQXFSRkx3Z0hLZnFFMXJtUFRGZ3VYK002Nm1VSWVKMHJlKzNPNXBQMzdpbTE1CjZSNFVGRHpyVTExdy9JQ3pYeHkwTTZ3eFVueDhXbjd1NkNMZFl1RkNud3JHRGE5U0FGQm4yMVZsWm1PTUlLd3pDLzl3UFRNTzhPekoKVllNcWRpOWxSNEdxWGE3dUZKWEgyaWNlR0ZDdjhTTEVZTjNWZTZxRzEremR0eDlaKzdQMlVjTzUwT3BSTmhMci9FdDZCL0E3MitGYwpaZXpkQ1dDTGp6L3ZreW85bmxlTXk5MWtQRCtESEtmRmhoYTZWNGlBN3VQbUZ0UEZxaHdYZTFPSGFXN0xrVUxHbUxCdnB3Zm0wajIzCnNsdk5UemFIM3oyMVhJQVJoT1BoUmNLSHQ5bHRqRWtmdzBmeE5BSnozdDlvejluYlB2dkQ1UkFJSXpwaHJIQXh0VkNWdWZad01MencKak5LaTk1c0JldWJhazN0NHpwMkl1bmkyOWpyWStpL2M2VjZWaWUxWjVWa2U4Q00yakFPTVdJM0dSQTR1K2Q1MkpFM1BhTnkraC91NQo5MDg3YkFqZlh1NEZhKzduL2tBMW52VUh6YzlqS0NnUk1rRnZ6QkYrVjNPMjhjTTQrZ2x0K0t4Y1Z1YlpjZFo5Z0RialN5Z2Erc2oyCm0vdWo4YkJ4d216K05tSi9FcmM5dHpXUHlSQkE5cGdnbVdpRkVWVGZ4eTlNVEdQTmlRRVA2dUc0d0h4bVFyeTBQOWxjOGhPclZTeW0Kdy96c1lFN3ZXbTAxbjd3TzhXZ04yWEE2TVVhc0h1Tko2MmoyR1c2cElyMTlSMzA4cFA1T1lkcDZ1NmtSR1g5bThvWHBVb3VwOFR3aAp1K21rd2JjZUgwek16czNOVlR6NE55OVZBSUhmdHpEbVp4anovc0sxMUFTMTd3blhONVY5QjgrSE1HUFhlV0ljTTg3ejJkUHlUSEZHCllHK2YyNmxmZVhaQXg3RHREeU1BaWc1cFd2TEJlUXN3YzZUQlpQYmNTU1IrZklQaDhLQzliTjNSdlNlOGVZTEY0dz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJdUI5UElRSmJRK2hoMzM0Tnh1RHg1NUNkSkh0WDdEVVdRL0ZVYnNUbXNTTlFqZ3JVZHNVUGxpTjUwU1hBeHNqT1YxTmcrV001NnliVwphZ1MwN3pUL3J2dWlZbndIZUQ5dkI5ZnBPR3hiOTFRdzlhSVEwYi9kNjVUMi9vOUZMZmh0amZuc2JyeUhNRHdnR2JzanNYWU45VmkyCmN6alZhTnViOXIwcFdtVDVvRSs0T1FsQnB4OWoveDNWSVJCWXhxZEZzREdWRmNZMFkrVkdUeTBDY3ZQWmQzcHB2QVdyY2p2TlZCajgKN285SDlNRDhDbGVQcTBjWlc4cWZyd3NBOXUwNjdWaEpQUU91b3hhL1U3eDA3a1dHbzEwSTltK1p3RmxuSW80YVg4WU95ajlxa1BpYQpjcGlXeU8vWXFzeHhZZWQrbDdVWGxIWnliSXdCM3owVFphMGVnYVlXdDc5amp1WjhSVHdWR2J0ajJjQzlacDhBRUxKN2Vvc29QUkcrCjRmNVovRU1lYkd6WVl1SEVCdUF4T2JHM3ZIZmZBWXltbTFxc0x2TFB4MHFpM0Q3U2JCcEdQb3lNWHR1ZlV2UUFMZE42eExDSUs5Y0IKMEY0Z1hoZjY4RExXczU1VHhoOHQ5cmJNNm1PSkdQdlhLOXdWVThXSE1hMklBRVdTb1h5ODdqdHNUKzlZQjhCWHRGZHpVdzU4S1hJVgpkQUpacnhBeVdjOStnMklZNFA1N1JWb2o1MFVKNXZGSGJhekhHMjFuOTdiMnp6OG52M2FrV21VcXFTaVNmOGpnMm9yRHhzM3VFRDJzCmZkd1B6Mk03RFR2RmZQei94eTR0K3JLUGU2RWZhZXUrWXNBY3JVU0t1NjBZYjJPaHo3NkFFUkk1TDFaV2FrWFdPRmY0WXR2cDhPQlMKM0wzTXYxL1BBYzRhYWorWExOMmMzeXl0Zk5GUDU0bnh1WTRucmlEZEFTK0hrR0RjOFI5R0VuVFU0Mk1PYUpQaUFCeldYODRZT3Y3RQp1cWdVWi80VGN2ZzdZcHpxM2o4UyttN3I0VzFQeWp2dVMySkhLTnYydC9WZ3RvbmZ6d3BWb012ZEUyL1JJMmVTc3ExSXp1UWMzbWhlClhDTyt2b3g4Ui9LTDE3QXc3dFg4Y1lQUW4zUkZSS0dYV00xL21NdStMWFhya3ZLU1BNN20wTVNGbnN5OU9XUnNPdzFFYlVVSTVVYUoKUVkvaHRKOXNQbTRPeTNYQ2ZBSkp1WjF0VnppRFQ1UFVBai9uaSt0YXkzakwwbXc4amxLZWV3SEJsbFo4T3pJKzRkQWZ6YWw1SHUweQpaZ3dRSi9aUDg3ak5YNDBmRC9wZmVOc1dHWUZsalJyYlVLVklFL1FTUnJiVDFaYW9Zb3ZmWWxkVVhTM2NJQmtqYnNvK05TTU9zRU9CClIvbVd4M1pBaG54akdQc1ZzaXJkZWtkMG00Nmg4NFFqY3Q5KzRjbFU1SHVlS1UrSm81WTlTN2tkZ013blpzWEE0MDgyaC9CaDdLZzgKRy9SVW41anl6dG1kOVh5dU1TV3dCWEI0S3pVcFVZNmZ5aUUxWkVCRFc0WUdjbHdyYkpqM29pSWxUUjh3bnNCaGt5NkFYWU4zc21WRgpoamkzVzhNY0F0R0szNDJiK1AreDk3WHRiZHpHb3VmemZSNzlCL2EyYnB3bXBCZFlBTHNiSjIwc3lYYWR5ckZyNWNVOWJhcERrU3ViCk1VV3FKT1hFK2VQMzQ3a3pBd3dBdmk5bFN5SnA5c1VpaDhBQU13QUdnNW5Cd01WNFNHVTl5QTVyeGlRb0gzV0Vvc2N4VVpIRjJpSlYKTHJaVDJjY2xuWkR6ODFCRlpqc241L0VWbVpTM2VwbzVDTVJuQWgzS2hBV2ZsRDZPSTdNTzlDTUh6aFJIcUJvWDZDTFJsTWhIZWVVOApCUkpQeDF3L1k3c2NQdDBvZUxwUUxua0g5R0plT1pNVUFuM2tBRVhGV2dUQ1Iwc0V3eDRBcFdMaklybkI2amJhMUZ0SWhYZnR5Y1JtClhROHM1TmhVSmJKSm9aaFlvNVVGdXBnVGZDYlFtemhTTHpkRWlCak03TE1rRmtpaGFCWm9NZ2JxbkoxcjVOZndrWDNldWNaR1BIcUUKbEtNTEtiV01CZEliaTJGcVdRU1pmZi9hclRwN0doUE9VZWZZYVBWSWtVVnVZM3AxeVllRmVzcG9OK05vMHl6M3prempnaE9OalZOMAprOVk2cU9oVnk4eUoxQ0xqdVlSbGplRTRlcmRoUmpHc3h2dVRoWWtGZFNwQ3ZHcnVLQXVCNUZTV3lSWE95dzFBZXFMWmtoQWp3QVhCCnM5bnVnOEk5VGVFa2o0Y1Y3T0tqc0d5dW4yamVyNVQwbldXL0c0WWhXaE9EMFA3NGpJOWY4ekZKdUhnZnl4bkZiZ1NCd29mRk9zY2sKNFpPZ0diTUx4S2gwd05SSkRtZm9aTHpCSFVablprYkE0ZFBzVEVKZzdqY2dIMWlySXc5VllzKysrTTZKYngvV3RXMGZYN3VRdkZ1aQo4ZExXVjk1UmpmY1NiQndOdm5YcHdob1FhQmdyekh3NXhWazhmZk5oTjVXK01jRGx4WnppMEdDWVVTS2FuWXlBM2x0eGE1OE45ZlNHCnJRL1F3ZGRlR0J5V1E2cFVBUE0raWo1ZTYyY1NvSDhIRjZxd1J6aDhwOTQ1YS9FeFNNb0U0c29heGt1dk5GcWdOOEJ6aUQvQ0ZKK3IKM1B1d0RxMzNnN0NqUzZUV05PdGtuWnNJcWUyTGxmWVo3MWY4T3E5VFNtMVJhZk5jV1ozT0JVMUxlc1dROTBXT0twWTJ1TkFpZFpHVgpJdlp6K2ttUFQwejZRemdmb1FWS2NGYUoyWDJLUlROdnN5eHNGQWdDdGRjdGZFQzZqRHdvaVJ0dllSVm0yL3ZNS2tjaXNZNWNOMTBFCno2SWtzck56L0NXKzVaSDdaWkM0VzBTRnRSdTZrZVoxUVBIZU9WOUFLUXpIYzhFMFk2VUw5NXAvY0ZtdlNyRjVKSEZQUjduZFJuSnMKS3MxZVMxWWMyK29Wamx6N0tGaS9nMUVRVWQyRnJ1WFI1bUdyNTlZNzRCYUg1S0tzeDZIV2FsV2JKSThGdHpZQkFia2luRERVcmlnSgpDamQ5N0RZeDc3WkVjQUNoZmRuZHhNcDlzQ3Z1OTRhdlc4Z3NrTW9HYWdRTDlyOUk3YTltQkpkZnFxeHFnbGk5QjEvNWUwWDRzQXlqCjlYSDRXYlFoc2M2WlpKR3pqTjdIc1FqUXBzUENyQWozdzlDMHg5SFFIUEdReE1ZVjRaejFpRUJ5VUIvczNLbnZtSDErMHdzZDExdk4KeDAwaG1kM1NCR1U2Qy9YcHdVWGJBY054TzhSRzZUYWF0SmczdUc3R1NDOXlaS3FpS1ZNNEJCUXp5SmNjS0FHY2JjNmY0bkFxdTdPMAo4YzRLQkdxdmlBamg1N2V6c2hucmplRUpydDB4MEZnaDY0QStSTm80cDN0UzJIZDRDYWo4aFNrRU8rK1VzU1kzQjVRY2o4MHEvYXpiCkYyN2xLaVpCUzA5WFhyRDZIMkV0Y3U0QjN3L0RrcWxoWU02bkxSUW9obnRBandOWklNY2FHL3NNa0FVYWQydzJWZ2d4QXZLbldMRE8KM1BnS3diWmhaNG16UlRsWXlkaGJVN1lnV3hxTjlSc2V1UHJrc1NRd1Nnekd5dTV5ekNpWm1nRE8rWGpKZDUwQVNJRzh5dCtUc0VDVApGVzQ1cE9IeUVOcFU4b3g1YXhnQmgwWVpLK0FkMXN6ZnMvRDNFbEhZRytZWTM2MmhmWWxQMkh4RXArZkFEZk9yQ0pzVis4S01EY2x3Cm14VnJuc3JaTUxGNjdxZDk2alYxTkhaeCsvVE1tZHMvL1UwSXIzU2hHNGVCdEJueFhpdWRwZzdkY3Q1QWZBZzdaeDAxMVlwM2NPbWMKMGlZNmc1QmlrUHZCTFZnem9CeWxLcjZMc2VBK2xPU3JqdVF2dFVBT2hhRFhibGx0eTNtdzBpd29YWEFBWVFLODBtWVM3aE41c3B6YQphdGdZa3JENFJLZ3pXMmovbG8xVmtpVVB0MDBrTTZaUUc3c1pXS0RSR2ZkS2E1NFlicGJZTGpnN01LcjV6a0dFWGNnWnFFSVBOQjhPCjUxK1hZeFhSK0VBeVBGTW8xc2hGNms5TGlXZGhjT2NKcDdNcmUwdWdZSUtENHpHNmhrZE9UT2F0YyttSTNGOVE5QmM3SFRnVGZuNHIKUHB3RmtlWk1PaUlmVy9nY3VJZmdqT1ZrbGl0dWl3M2Z4bDdENUpiNGdpNnBraTFHSUpnSlh1L0w3ZHV3YnJkd0N6eW5KeE1kVWhOMQp3Ri9zby90S1J3NmNKaXdvS1pDVzBYcUpsdVRjRm5zRWpGV2dHRy9xVDR3eTk1ZmtWRmhoeXQ5OVU4YmZ2UEZlZUJHMGllaHlZdTZ0CmxzWjdzTEZiWHFnSDh3MGlVTXhGVnNnQWFEU1BMYXVwTSs3Wk9iQ0xJRGIybnR0NFdXTXRQUmFZdXhCb1krMmNiRThRZmd2aElEV1IKMitnY08rT1Vab09FczZXNjYxNWNuM0wvaDBWcWdieFRPS3NWQS8ya1Q5bXZobWFLY0QrVGRlcWk0YStHRmU3YUJGbytKTjhPTFRnQwpHODBrTEdRVGR6aEdJNHZNK2FxS2xteGtrZjQybnZSSENnQUxMN3pEdVE3QlJlYVhqTC9qelRKU0ZuYXJSSmdMUXpPUmpZVEFPZ2JQCkxEdXpaRUF3VnBhN2xlWGFuNW10OUpUQ3FpUmpITVRIRlhsSGtKcERWUW1hOHc2ZVNHOXRDOWZpNmJLZ0JXWUpLMTFTMm10ZUFHUjMKWVh6UlVlSWpodHdhNytzU1BibWVYenBueTZCSWVhTVEzak9HQnNQQzMrZDFZWWI0ckxTL3V3NHJLbk5BY3R3NEVyd0RJWTF1YUJYdQpEQXZBUEdmMWpQWTNMcGt3MEhzWHNhenhWNTU0enFUK1pJWjNZKzNxd2pjaEN6WWVKWkVabEk0amRzbzd1NTd5c1VQYTV6REFoOXo1CmJsYnVUNVpvbk0zODN1RUhCaDl5bHJ3dnBnVmpEVWZMeE4zNGxtamY4SHNFcmhoR1MrWWVaVy9lZXdlSzltdE9Xd1d4VG1icklLUlQKTGRqdWJkd2xMTHlSbndack9vVkcyT1lTdzZaNzZXK0lzZjBOamZ4K0VFTkFnRVM3VzhSRU8yUFE3dWN2ZithR2ZTSjhZMWpiZ0NQMgpLR2gvWTVFamdoQm9XSFJ6akw3RVFBYkRVd05uTHlNb25LVnFyQWVGUDVOd3BBbTZhaFJQWkZXd2xvM2VIczFya1I0VnQ4QndTWTdOCnhua3NqaEsyYVdHNkJwMTZpWjV3MlZUd0ZVYStaVGMvM3dNN1lMUS9SOHFjNzVGcGVvaVR5MFdUMEZmV25IK0JacjUzZGlVOGpUT1YKTWxIc2V0QStRUWMveG03SHhYdUt3bG5lWlhCWVVKK0RET0tjQWVqYmN6R3FtQmRDYzFxSmNNL1NuVzNucHBvd3prS2tmV0FnT2gxegpuNGNnRVp4cmdyWEFlRlR3eFhxdGZWOVRMbHV3R2t3M2QyMUJ0dnk1WkFOY1h4dSsvbGs0YXhRaVZTb2VBd3MwN2s2UXRpZEdSaEN1ClZYTllUaHFPYWJyaHRBU3NML2dlTG1rc3ZyN3pxbWtNOEdGWE1Qa1ZDT2p1VXdDTVVrTW92aGp1UGNrcDAwOWI0SkVEODdrY0pZYkgKQ2dzZ1k2QU51MFd2dGVadVNSMDg1TnJuUzZBWUFVYkxKMVh0cjFjQ01OTktNVEJMUGRCMWxwUis3emYzYzlCcFA0alRlQWE0S1l3RgppMEt4ZU9mcGl1NTQ3Zk1jT0w1STlwQWJObFZqTUlGa2ZZVGN6Tjd0SCs0UDI3V0tSWFBKbmRlS2d4RVNrekhReHlSUjNBSFhWKzVHCklyK2RiSUZ1TDhVK0dXWnFHdWFLOUs0RjkrcTdBL29iek01RU8rdkN2d1ZuT1NlWFlUOGhCa240MVdhY1RvdWhIMTZJMHJwbEJPR0kKeHZHaStFQzE1T1dldW1nMURCTGg1VXAzcmpoMGhHOWphT3NyY3ZVRmI4VSt6aWIxT29xMmxsTkdRRWNIVzFaN0JHSFQ0bHRWc3k2SAp1N0x1YUlHN1F5NTlVQXp0ZHVOTEhpK2Q4eW1DWFVHcGlzNWNwTUZidk1ydlpYaGU1ZXFxOE9mRGxIRVdMbjdIYnZ4Y20wM3k3c0JqCmdXem8xdmFoYVF1a3kyQ09yTUo0QlBSeXRwT0RCUmVWL3BLL3RwNC9Lc2pYd3BYM3BXRUlWUkRaN2hvZ0FqUFd3S1h6cGFYYVBtZHUKRVlTSUZPMVZsMmdRdFhYbVdtQWlHQ3NsUkhWck1OU1hJZWNRWDhKREJCbXJqMlM4WUREYjhJTktoQmdNVDI0T2NNQVlNSmM0UnR0bgp0VDI1eWllb2NOWTFCRW8rekxMMmhWajVXT0FOSGRnK0wwUDdxcUhqQ3lkd1VPNE1oZUZxR2VzTU1tSHRGY0ZlOGFFSXB5TUgxczYxCnJuMHdiR3E4ZVJFWngwRjRmUCtCUm9NSEVTM1VmbTVrZkZjaGpTTS82R2FGQmRKdEtHWk02b0JCZmZSbkU0UTZodzJnVFZ3Z0lzYWcKZXNXQnc5am1aNUF3UEk4eTNqZlFzczl5RC9iRm5JRWVRZUhQN1FET0ZmY3JrM3hvU3d0TzU2VHhxR2haVTNoUGJUamlBekQzaHp2cAo0eHNMNnd0MlN6SHpzWlFoSFFOTEtEeUsrbk9CaUNJc3M1eVhRdWJTZmlBQ3IvMFo1N0ZBWU1vSDdOeTc1MVRpVFZzaHA1WUtsNjl4Cjl0aHBPRCtoaE00SzFuVmRwRFpkNEdmYm1NZzFJK0RBRTJObERTTmdLV21zRk9leTNxeUVscVIvN00xRVVhY3cyVVR6dEpmT2VJSFoKQmdyMjFKS0gzRFltZkxTejl2ZTM4VUs5NWdPZU1vYXYzcy9NVTVGRzlza2s4U0hNS3RWZXNiZUdLWXhMVnB6anp0OXhSS2czbExCYgptNHI2ODRKTFVVVEpwN080Sll0QVJjbFVjdWxqb0lPeldtYzJya21GNkJzVEJSQUJtT05NUXNZcHhPb1RRSkd0eUFMWmRVdG5tOXdqClVJblhvS1JrQkR6bmpMMEtVS2U0ZE9sOHN0cWFnQzBDN1NOd3RZM0lPM0pndmlha3ZmVmJhVGEyaEF4ekNvZFordz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJNHhYTGI0VlRUZmw5eVlTeVh0U2prdktESzZ1OGM0UXNqWFVic1MrOGNRK2RJeGFvbkhLTWRtYjI5S25NTG0wM2E1VXJLbjNNQXp2MwpWZWFqeTdTMW8zUDlZUEpMM0kxMVJPQ042aXBKR0t2eGxramFqUmxCSmpsVlZPb1ViT1hDOGxWc25sUzV2MTZnYmRBQ0krRHJnZHE2ClhQamFBbnNGM1pIZG91Q0R1clkzV3kxUTVrSFdpM0FkUXBvZ2tyU3pJNm5jK3lhMERWRjNRTzltNDZ0MUNtV3FGd2dwWDFoVGhRMkEKY3R4MUlUeXFpSncrSnMwWmcwNjl3eUcxOFFrS1hWK1M5UnMrZkdDNmRpbjk2WmNka3pxSlVzQzVHenA0K0dHaG1EclJBY0RDRzFISQpZWHZncW1mZXI1bmtWaUFBa0ROQ09JbGlnZXdZMWRhV3p3aGtFYlpYd2JkYWd0NlRPWE1nQUhQRG94RHVmbUJacGtvSEFncldPL24rCmxvNlBkR1RwNStxNW5reG9xTVBWVTdyOTUyQWg4eUdwYXJhKzhMbWtjQnUyR3o0bDNPY3pyY3VWQjdEUWZlMTduM3FzMmtaWUlWRFoKNkRNcmQ0eFBjY1hDSDg5amZNa1Y4eGFiekNzY2ZCMHF6RmN0RmRlWFB1eFArS3RxbUF0TDhtQlRrSjhGY3U4TjV5UFRYbUNReW00cgpHNS8yUmR0SW1pTUhscEkzVUhkdXdJeG1pYzlJNXBSK0JFcldwRlVZVXVQRnNmYVplYlNKNW85MFNoQ1d6SVNiS0ltUG0wU3dZSjFQCjV0WUJnNWZKQkV2TjFLVzEwb1p2MHVNNVBhclBWKzIwdlczQWROSDFHTmJqY29laEVJWjc0QzZwWWJDTVR5eVhzLzFDWjlGSlVSVCsKVnA3TGoySkw4NDI0M01iMnVMS09Cem1lRi9pa21QTjFYZ1Jyemh2SmpuMmQrN0IzWktLMUZ1RmR2OEx2YU40d28xR1J5L2lvNkt6QgpKdkZpeU9XZnNzQ2N4U09wZ1ZRZmJ6RjZrVWNYNzQ4Y09KdytpUGQxdWtmSjdsRE52akVqdkJQTW5WMHNXc0hCTTdyaEwzRUdzNHd6CkpDUE03NGJLYjVKR2VGMUgrL1JRQmswbG5HK1M4MndZNFNNWXRKVjhqQ0FzVGZLSFc2S2t0ZXJhS2VPc05VYmF5NWRPNHRpNVpWTHIKV2JZTU5LeVpFWmpYcHQwT1Rlb3ZQbXViamF4dXI5eEtOa0dDdXNCTUNUZHh0UlVUUnc2Y3kzeGl2aGh0WTAwY1pRbGZVaGFLWjJ4MApxZHhFcDMxSzcxdW51OXVaNEFYcW9ueE1jTmRwdTh4cy9aQmhGMXZWWERRWEV4WUV2SlB1VFJBVXNzRDFNejhHOW9pRVY5cUQzOWdkCkdoQ1lDWC91WVhNTFhYL1A0elhBbC8yRkMyclEzdmxoQ3NwUzZHYTc0TGJZZGE5dHVnbEdtOHZDSDZCenpubVFSRVorVHErRWFSTzAKOFhZTmUwYktaSlNKa1NKV0NDK21idkNtUUZZK01NMkRadXNTQjR3QU1DUWJwY1hMQ0RJdlkwbFMySTZsTmlUYmtwRVduRlBDeXowWApRNWNwbTREYnpUaGVjVkNTZzI1MGRLY2NTa3QvK0JMYUpTRlJVVXBrWjU3S1VPVk8vVEdQRTNBb20rVEVpZFBDVGRtTVpLUGt5V1ZOCjE1bTJkeGpkZ05uOUtBUFJ6WjJsK0J5TEZrOEFpdXVuVms5Qm9HWlhxbklPL2N3RUJuZ0RYMmFpaEsycDA2S3pMSElyQ1plMUtzdDgKWWhSdGc0SXNnaXlLWUVoZHh0Y3M5eWx4dFUzMFo0RjhGZFVkWlN5Q1BOcm5OQWV5Wm5sa05jdGRMQkVCL2VHVGsySHdpYVZRSWJFTQpweFF4L3VvTUF2M0IxU2U4eU5tSGlTY0xsazFRTkZpR09JWXlLNkpvQk1xelpJRmFlMCtadit5RW1XRWttMmdwbTJMSWJPTXo1cnA0ClF3UjZ0ZHhaY3pPMEh2aTAwNFl2MldJYW5jemJocHdYRllBcVJMYTRTNXM1SHQ1OWVzU1FyeWZ4dVV1MFRlVmhnWm5rSUNCUldQRUUKd09DbUNxb09ndjJ4anpYdFBMSFhhQzFXbDNNRGdWNWtCTmJtd2tjZEI4TU1wUkZpTGtwM1ZzaEZISnRUOERrSXdkNmFXTGd6VXg0dQp3bW1iaHF4T09Zc1NyK21RRXNBSVFrTEozSXJZWFBpNFJEdzE1dHlCTkFuV3ZUeDBJSUJaelVDa0tXc1UybDNkeFpKZUxaTSt2UStWCjVXVkFKMnZYMmNJYmxKMUZHMU14OGRLa2JkcldsLzd5cnJaSE9nZFVYckYwbHhrcGxSTjNsT09yRVNpOVBvRm5sU01IOXJ1QmRyZHMKRWViRkk0c21BSEllRWxSKzJOMmFvNEJXdnF6aHNsbkJDNG50d1FBTWpwSW9KWnVNWEIwc3MvTTAwcjRveFlNRmh2eWxSSXRGZ0ZZWgp2Nk1uWEoram9aMVRZYksrRDdSQmFPWXpWNGVXQk0vQjNOMGZBeUEvRWVEeVhuTjk2YlUvc2gwNm9KOXFMdmxkNnFORVlpbElZSi8xCm5KTUtwdDR2UEk3QXUyOXlIMHVjcHo0bFJGUldScm82WjNqQkFmREdWUm5OaThLa1hrK3pkNWNRcVRmc2NUSXRHaFJtUU1oN2hYd3gKcktjSVRocVorbXhpSVNJRmdHeUlOWGJ6WXdSaEsrS1luRnpGeHFQY09wc3dvWnBQOTA5UG4xc0V5c2R6NHc1bHpRdDViR1ppZDIrTwpoaWpXVVh6TUFlYXY4MWRUcEJKY256SWhxZGh5ZzhBUURPR2pWQkJCTURlNnpSVGJ5dmtjeXlsdXFBTitaQVdibVhMalUxR0YzUUN6CjdSVXNYM25ud3J4OFJ2aStzcEtSWjFIb1lwSTVkcG1RY05pTFRBeVU5bFlpbnlZb056NWJGRTZ1akRQTm9VR2VsUlFPZE1mc3R6NWsKcitBc21GRjRoTC9YbnhmK0htWXdNQ05RcC83TW5qQ0M2QkVGdzJweFFVK3orRGxyVjBjaHJBRkVXVXVaMVFhS2NLNElrUmhGR3FsRAp1Wk10Q0N5OFI4YWR3UUNZaDRBL3pWWllCQWMzaFkvSExKVDN1cU9OS01rOU9OTWNXc1ZpRHpVcDd6TFVMdmtReldudkFHTDloZVFYCnN5c2NibmkxT1EzRVlxVm9LTGJSR0VlRThkZXFYVVNvUld2c25VWVZXOU9KZGN4d3VzeHFnU0Q0T1RiTU82SEkyR3ppWWJUOXdtd0sKYkh0M3I5RlljT0N2ZFBtSDZQcUVkOHk0b05JaTg5ZjF0RFZXSHpnRVJaWk02QXFZbmNjYnJsMk9Uc3cySVRsckFCMUxiWDJYQmNXcApGVzUrNUQ2aGl1R2NRcHlWMFZJbzJDZzNMMlYvbW5LR0JYNkxoakxyV0lxZEU2L0lRbUt1M0R1ajZVNlJ6OE9ZUlp4U0lSY1FaMHFtCnkwS2M1SVB5aEFlMityektxWTAvUVF3NVh3dmttdzUwcWNXbjB4UjhjNVd2cDlteTdzMkJ6TDg0RStYa3hRdGdmSW1kOWdhZUJibFAKMmVXenlaTVE0T1JIV1NKNElvSVU1cWJjL1JZc3FUZ1RRT0ZqMFFzWFFPNEl0eFlGUkJDeVdXWitkcHB3b1paVFY1QVAxRi93VnpuWApWNFZQNE9RT3VXVHQ5d2thL2MwcG1qdDhiNGZNZUE3b2N6VFFWUW9MVEhOT29oVTg0cVErZXdRdUJvYzJBbjRveFVzdTdZTXMzWXpnCmRhLzlGWEM2cE9qa2hyK09xMTAwZlRILzdRcWZTNXoxMkVJMWZBSlpUaElCc0pBQ2k2NHJIRGpCVldTY0Y0WHZpaGNxem1mcER2UUkKZEJsZzNMTnRYazRhbndEVk9TUlFKQ3UrVWxpd25FWWxKRXhPUGg4Z1dETUZWZ2tycEw5eEdsSVRJVEF0L0pwaEpiSUlJYVdaVjhJSwoxRmo1cWgyY0U1UURxcHdUUmxORU9TTlF2RzdKdEdoaDRRWS8rNDBMWVUrbGJwbjVJUlRldmg1eXJTQ0N6TThCdTMvVDVzWEpta1RtCkpRU0FDNTlvMWFXcktVU2M1MVZuRFBUWk5LbFRYRDljZGN5ZERST0JCVjlMejl6UkZZRDhva2h1azEwd2duQi96eWtnQUl1U1VMa1kKcWdJOXJueTFOZHlKS1pJb01RM2QySEJsQmFmbzVFd1NtQWZjTUsvOVUxdEZlT1lxOTJrWXB0T0wvMlB2YkUvVURwM2lHaVN5d2czeQpmQWJZOElrbUJ1YXpnRjZaazlFTmJBNnZHTXVPUzIrcTFlT3prOHZnM09MNm5yNm9xQXJKS3p6T0NRSmM2bms2S2ZLVllweEdqakswCjFQSUZaT1VQb0J4NWt6VmNBalE4RmFjc0pCUnJBWFNBOWhja25VaWtvdjd1c2JzMGhEaDk3bXE2VWVZUkpEeWJwZFBsaEErMnhUdVAKR2RlZjZEN1RsZHBKUUFLTFRLTThZa1hCYm5GMmVDQlFlL3UxTXczSXlENUhPZEVQcHVwek5wbzg5UmZldFQzTjF2bXM1RjB6bkFpVwp3TjVqVlBnekdDZlFEdFpqQXZJWmxqYWpDSUdjYnN5N2dVUkFPczRCWk0yZnZ0OUwzSnllT21PZU05aUg2ZWFhVWFYQk51dkNSeENvCnh1SnkvQkV0dkdsUzhCbVhuN0h6MFQ3elQzalN2NmpHbmg4NjR2cUQ2N0lqcWpUZUlzT3pKQ1FlZENlT21mU0haOW9tN2xnc2VVY3YKOWZmSTNEVVpCRXAyNFpJZVVGOTh5V0xtSFltUWZvVURCOGFCbkpwbnhwV1FNMmU0RHVsZ0tkWGp1UWZQU0VVc295ZllDbmF4VCtNNAo4bSt3VGVTTzREZlkwb0szWE9tQ3BNZHlSMUNpZFFmVUxLYkkyblhBQ0xSUDJzSzN0RXg0R3BMdllNeEtYc0hQc2sya1B1Qm4yYlJYCk1WS2ZVQlBBSVJrWDU2ZENvRTlBUkM2S21YaTV3ZFRlR0ozWUhCRHNjM2R4Vm5vQyt1eE1ibnJPVDNNUVV2aWxMbUNjRVBpVUFESFEKNXpOZ1BXRzZYMGZoNWFLeHZHejhjQkZmR1VhdzVyeHVRWkhtQ0V6MG9mbnNWeG1JbUphckh4SW9zQjBvRFJkZFFyNy9HWG5oN01LYgp5dnQwN3NEK1lqMWZMcE9adjdxUk5WekVrc3lpYS9uQlhJSFZNMVpPcFl0N3dLYUt4QVBkdmFDcDlxUG5aOXlwT0xjaHMrSGxKZW5CCkNiK2NGTXJ5YXhiemt5R3l1eVAzQVpzSWpFdldaNzlUTTdOYlIvNXB6cEE2bFk3Ri9EUW5CemI0WFZWbTNpU1grU3VuOHpsWkdNNlYKeFR1NHpDUEZrNU41VEhlQTN5Y2lOWXdQc2tiNHQyUHp3ajgyNHRPZ0U5Z1hkdStTRUpCbk5SK0ZreXpLZEJFZUg1aHFMVHhoTzFIYwpkOE1uMTZVem5lK0dUMnFnWE5aT0JHWWgzWWd4ODdyQkRZYUUxM1NUYUVtRG1UOHArL2VXTXA5NHlyOEdONFUxdkFMRjkwZHc1WXZ3CjhpZm5PblZKc3Z6empab2xxUmFDVTM4WTVWOEZkamxCcC9HeUNFeHNXaVA3QTZwKzV3NmNwUDZwME55L1laZjdqSytjMUIweGUxSkMKdXRMNVBRN1puL2o1QXhFbmx1ZUhnS1k3eGoyV0RjbUdaSm53VzZ4Q2VEZVQyN2c1RFVBUkxJWjgzUnZUc0hDZ1dlS3lEU0lDeFc4bwpKb2tJdC9qVGNJT04zL1FVM2lRVll2dW0raFUyR1JPaXgvaE5XN3h6WDdEN2g1MXRWSlNOLzduMk1CL1BRUWxOZUl2SWZEUWxSNTRnCnNQQldlbmNVbTJxZlpYWnExN2RpNitJNVF3VjcwQ2djNzhpQjB4RGVKMU8rM3loOVVBajNkd290TjZkdDFLamQ2WXgvMnhkVHhiR0cKRVI2ZVFMRGdrNzcwcjM5TUkyRzVhYUlRQXUySk1UNjd0YlladFRucG5uZXhrU0ovTkJQRmtYL2pMbWliZEgyQW4vZ0tGOWpDeFExTQovNXNHejdUZ21HS0tjN2VvMDR5QkUzaDV6eXA4dm1wbjVqOTM0RlJ6bUFiN25URzRVZm43SjRYbTRFWmp2SldlRFZCWU5IaDkrYlhBCndsc0JkY2hyUE5VQjFrdVR5TjFDRjRiT0hUZzhSb3ZCcHh6L0VSNEpwY2pnbzlrNGp1Z3grYUoyOTlQYXl4L0hQczE3WUY0ajhPVGIKZnUvNW9OTWJkWHF2Nm5VTHBuZm40eC8ydnIzQVgwUmlmenIrNGZHalRoZlE3TjN6SDJ0ZjdOMTcrZlRvMjM2N3hJK0huZGFvMCs4MQpCKzhXL1hDL2R2Zlg4MjRQZnFwRHR3YWQwOHRST2Z5MDl2bmV2UWVEUVhPaVJPdDFwOXNlbEQzOFhkYnVQZW1Od20vNHoramRSWW0vCjNRVk41TTZudFh2Zjl6b3RBQjhEM3Q2cjhhSnZtOTFMVy9hWFRudjBlbkhoWHZPY3lrSlhYT25QMTVtaTEyWG4xZXRSWlpLNCtJM1QKMUQvOXVXeU45dnVYdlRiMGI3Ly9hMVVDejJpK1FkSFJzREtWWTNWdW5OUUhUMDRlZEM5ZU4wOUVWUm83YlNpNWhDWXNjK09rVkorSAo3eW9QenJ1MXBtUEp2SXpvK0pYL0x1N3V1b2pKMGVYZzlMSmI5bHBsVlZiWXFoVzV3ZTNjOU1EQ0VhOHFQYWZOWWZsb1VQN25FcGhRCmZicE8xTHB4Q21WVjhucVg1ODlhbytiYnNycWNqS3ZjT0dHOS92R29NMm90Mlk0RGZVTXEvVjJudXdLQlkzVnVuRUpjY2xXcEc1VEQKeTI3MWZaeUxWNUZBYzdvdUZuUjk5bTRVYmNybGR4WEZTZWp6QXZhdjhiaDBla3NXWUx4Rlk5a2JuMldkWGxWYStoZmxvRG5xRHlvVApGQ3JjT0ZYSC9jdEJxM3c4YUY2ODdyU3FEOVlLWTNXTGkrZWdmMzdSSDNaR0s2eWQ2K2dIYWNsVnUzRHZzRHlyM2Q4ZEFkZVBvdDBSCmNBYVZhM0lFVkxzajRBeENka2ZBV3hHVFo0TW1hUHZkYi91ZDRaWWRBaXRiV2piekRGaFppdXpPZ0xzejRPNE11QT09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJT3dQdXpvQzdNK0RIZGdaVVczY0dYSUdpVFRrRHdzRm92M3hiZG85Zk45djlYN2JBUTFhWDIzSkFXb1dTclQwaVZkYTBoNlAyWWZtMgowOFFPcmFDS3hwVnVmSVJQdTVkTFJQMEgwRVZ2UlVjZ1k4dTJhUWlQbTVmRFlhZloyMTg2Yk91b1lGZGVTZTNxWXJHOTFvZnZkbldwCjJQNzFGZ2pwbjUwTnk5SHkyYlI1UW1BVndiWXBxLzhaamRibXJmc3VhcFlZWGRqcWQvdURMMzU1dmZTSUUyK3E3N3JWclkydTlJM1AKdHNvQko4UEx3Vm16VlI2M21xdFFOVmJweG9rYlhwU3RaNWRMNXQxT1FveEppQnYzRFZhZWdEQ1lsOTNtNE9HdkYvMWUyYXMrVHRNVgpiNTdLVllrODZQZUdvK1lWaUF3Vk4rbWtBc2MxK0U5Vkp2MVdtU3UvM2NiUlU2eEN5NW9mby9VS3BIendjL1MxcUNMUCs1M2U2R2dWCkE5UDEyQ3JMWTdkaWo1eU9zWG5hMFpXT3F6dnZ3MjE0SDdaVUUxcVJyRTA1TGwzQm5iSXVNcUh5YnZGbWlVNFVqUVVXdmZrNGpNcUUKTExHcHhJU29kZFk5MzZUVkNVblhtcERxZTh5YjI5aGlWcFphNjc1bk5nZWQwZXZ6Y2xUZHNiMUplMmUzTTNyZTdDdzdpMjNlNXJtTApTS2k0aFc3T09YcDFxL2ltak9mVGN2Q3FSRTV1bmtxMHF2elk0aUc1dm43c0FvOCtqSTRsZG9GSDZ4OTQ5SEZkUGpubzk3djdnN0w4CnJiTHJiWDBEckZhWWpPdHVHYTVNeU5iR1Y3VTczV1oxZi9BbUhYa3EyM00zNjZ4enZaRlY2enBHSkEwckVuSWJRbEUwS3FlRkdEVGIKbmN2cVd4Y1h2ejBWdVQrNGVOM3Y5bDlWRnVicmMyelpYdWwyL1hlWTFsWVVyTGxNcTM2TGFTZlRkakx0S3ZyM3RnVHlubGIyaG15SwpFRnZoQnVPYUM3SFZMZ0t0SXNWdWFjbHZhdmp1OXVZSXFMeTdiR2FPZ01wUnlic2NBZE1FM202T2dOUHFpcyttYkV6VjVmbTY3MHlWCngyWlRkcVpOenRxd0pOd21FZ0tyM2JtNHBjc1dLMHl1dFE5b09hMDhOanNodHI1anMrNUdnZ2VWWFVFSHI1dTlYdGs5THJ0bGF4VWoKMjNURkd5ZnlSV1UzMFZXSm5LNTRhOXZSWVdkNDBXMjJ5dk95TjNyYXZOaThQZW04Q2FncXU1TTM0cXhVNC8vV3BqNktzWTlWcWFaUAoxZFZ4TG43emdyS3lzV3RqTnJIcW9uL2RON0hWY21sdWdDWitnRGVrbjFZUUgrc285cXJmejl6RVRDbVZyU2tiSXdlcXI1NTFsd09WCngrWWE1TUM2ckw2emxZSzd6anJkN2lyQmE5M2JVRHFXcUFlUmZSWWZwYXB1bDdXbGIvN0dTbVd4RnlqenpYOUwvYTlJNFVTdFd6RFEKOWlyUHhHYXJkWGwrdVR4S0lpWXZxbkx6VnZYS3M3SmRQVW1UTFh2anRBeEtPbWhWSHFwMnV6UHF2RjFob0h5RjliM25kamJvbjFlWApoRlI0ZlQwNW8zNzFrMlQvRmdocGRuOXB2cXU4Z0VBMUdqVUhLNmxTdHZ3dDNHN3JsYzNLMTRWYXpXN3JhYi82bFkrb3dpMmRUSnE5Cnp2a0tFdnFhN3Foc2R2cTdlcjR0WVRPdFhkak11aDZGcWcvTnBwaEVkbUV6OHpidzJ3cWIyZmIzRmF0blU5c0Z6c3l5MDkxbTRFeHIKNndKblZwRG82NzQzN1FKbjFtaC9xcXlOYmtiZ3pBcVRhKzBEWjFwYkZ6aXpSVUpzRnppekM1elpCYzdzQW1ldUdEZ2pQcGJBbWRiVwpCYzZzSVByWGZSUGJCYzZzazlqYjZzQ1oxdFlGenF5d2V0WmREdHhtNE13bXVJZzJKL3huaGFGY2RWTGUwbEJ1Y0xMQ0ZRTFNkb094CnVYazlObWNzcnE4ZnQ5dUhyVWtaK2VESnlTR2xDanBaemI2MFpVR3MyNXN1NldieVJLL3I1ZHVQSVQzUFRyNVZrbTltSjk5MjhtMUQKNUZ2bHVicVRienY1OW5BQWdJOWJmU3VSQlR2cHRpSFNiYWU5N2FUYml0THRvMWJlZHRKdGs2VGJUbmZiU2JmSzBpMTJHNTJzNWh6ZgpNaUZYbWZnUDRvdmVLQy9oYmhHdHNJaXlqM2tSVlNaK3Q0aDJpeWkrNTUzVWRPVkFRRXYyaXhWaUFhTWFONjZPZlZ5dmJUM3YvRnAyCm4zZWI3MDVXdTQrNVpYSndVSjczbDZXTDJPV2t3WTdjVms2YWlrSmtsNUJtTVhtM21aQkdWSitUdTR3MHQ1aVJabHR6bnd3dk1QdEoKVmJyZUsvZkpEVlBXNmJYTHMwNXY2ZnZYOGFoZGxNM1I0UXJMTEtweDg1S2pKdTdMcENZMC9KdlU0UC8zNFRQOHZROC8xSzc5UHNxdApIRnRXVG1TekxxclV6UjRwYnpwZWRvVzMxamZsbHNBV1BwYTV5akI5cEJjR05zTnpzKzRYNEpjdGhNMTBzN1g2NXhmOUlXZ1R6eTZYCnlLL05rM1lyaVlZTmliTS80UEhhUExsUTJZajRab2w5S2hvTExIcno5cGJLaEN4eFhNV0VxTnZRdFNzVHNpUXNKeVlrWFd0Q3F1OHkKYjI1ams3bVNncmJ1TzJkejBCbTlQaTlIMWJXQlRkMUJ0eTRINVZYVWc0OXhLOTBjOThlVnB1dW1ET251RnVMTy83enpQeThpZEMzOAp6NnZsWE56NW4zZis1NTMvK2NPVHVmTS9VOUdkLzNubmYvN2dkTjNnMnhzNy8vT0hWemZSQXkyVCt5dXBuanVmODg3bi9MN0U3WHpPClZ6TTNyUEV3N1h6T2ErVUFhSGZPemk2SDVVRy9CNnBCci9yeW1hcDM0NVB1WGRudDluK3BTbWUzOCtyMUNINnZ0ekFKYVdVeUo2dmQKL1BaYldieGZEczVBS1Q1ZTdTR0FzVXJyNjZheXdubzEyc2JxM0RocGJuMXMyK1oxclNFRTZ6MUVXL3dzOGM0RXQrNG11RlcycjUwZApibzN0Y0x1WGlYZDJ1SjBkYm1lSHUrSng1LzZyUVZuMjdvTWFWdDRIaWp1dit2ZmZkdnJkY25SL1VMYnY5d2ZOM2pJLys4NUFkOU01CmJpcGJUTXN1ZkZuSlBCZlZ1UG10TEs5TVdQTzN6dm5sYU1tTGxySGc1L0szWnYwNTdKQlo0d2pWcmx1T25UbTB4NVFqcHdGdTNnSUEKeWJUdFZocXgxV2FhNFVYWkFvVjVzTHNTc2RiMmpCVW1vUnZRaDc5ZXdGbHJCYXZ2ZE1WYmlHUllsY3FWYmR2VEZYZkduSjB4WjJmTQoyUmx6ZHNhY25URm5aOHpaR1hNK0FIMW91ckhHSEdmWkladk96cGl6M21mWm5USG5mWXc1dDZGbmJWdGMwaHBacG83ZE9XbHpUVk5iCmViMTRPeE56YkxFUjZncWtiY29GMUExT3oxRTloOEl1UGNlNkViTG02VG1xRTdMbTZUbFdEYUZiKzcxenUxTnpkRHVqNTgzT01rdjQKNW0yZ04vTTJ6bTRMdlQ0NXQ5dEMxMDJwV2ZNdGRHc3lYRjFKK2Q5dG8rdXdqVzVkZHF0VjlZT1BjUXZkbkVDQWxhZnBwZ3puTHF2Vgo5bVcxK3JoU1B4Mi9icmI3djN6Yzd3NVZUbnExUzF5d0h0ckJUU1F1dUtVZFpiTXYrMWQrRHJSZCtUVmFLbnJqTTZ3NklVdTJoNWlRClgyK0JrUDdaMmJBYzRXd2FsTzJWVnN5bUNJTnR6Q1gvakVidG96b2pYSDJpYnNxZ1h1R3dzQzZEczlWbTdkMGhidnNPY1VJbGQ2ck8KMDE4NjdSV0N5RnpwbXpjenA5VXBlbDJ1RXBQbGk5Kzhjdkl4SHJXdkljWHlEZE5TRjdyeVZLeXU1OStHbXI4S0pkVVYvVjgzeS94aApkdWFQelRyeDdNd2YvZlZVay9OdE1YOVVKMlJuL3RpWlAzYm1qNTM1WTJmKytJakdaV2YrV0hQengwZDJzQjQxVjRqdjJrWVA5dG1nCjJSbzF1OS8yTzlWRDRHM2xpbVBNTGQxMHRHdWpjaWFaMCthd2ZEUW8vM05aOWxyVnRldUpXamR2MWFzY3o5dTdQSDhHWS94MmhhdlYKY1pVYnA2elhQeDUxUnEwbGh0WFl1SUNsdit0MFZ5QndyTTZOVTlpcWJNbmJsTE5FNi9vQzlOWjJiSGJKdERjby85SUtRbjZYcm1neAplYmVacm1pWHJXaUZnYnE5YkVVcmFGOW5nLzU1ZGVGQmhXK0JuTW92VkkzNjFUWGovaTJRc3NzalJadjhMby9VL0R4U3QySk5Xam1iCjByVllrcjY3SEp4ZWRrRkYyRmhUNHk0UHpBWmN2bHZoakxFaHB1QXIzRTdibVdFWFduZTJMZ3B0QllwMlVXZ3pxTHgxWTNuWUhFK1cKWEt6ZmdFaTA2cE54dmVQUXF0T3h0VkZvbzRwSzI2WTVNSkl0OTJCVURoWGFPVENtQ2J4ZEJ3WXV1V3QzWWR5U0tyczdBKzdPZ0d1MgpoSGFud0pYNnNUc0Y3azZCTjBqVFIzc0tyS3lmN2s2QmEwUEgxcDRDdHplUXJYSkdpYzA4QmxZbWIzY00zQjBEZDhmQTNURndLUzI3ClkrRHVHTGhWeDBDOWRjZkFGU2phSFFOblVIbnJ4OEFmKy8zMnEwR3p1bEJlMnpOZ1hXekxLWEFWU3JiMkhGajVPTEhMU2JFZVYwZHUKNW9yc0dnL1VwcnphdDlrWk5uWUpSaGNSc3N1d2NldFNZTTBsV3I5Q1pvM05rMmtmTEYvSVRWdTd1NkIvMTF2OWJuL3d4V20zMlhwegp2MlpCL1l0bXF6TjY5OFVLWnVQaDZGMjN1aG5jbGI3NW1HbWtkZHNFeEVwRWJjcWFlb1FUY2ZPVzFQdmswZG5aVG0vRGRycjlDc1JxCjhtSE5OWWdoWlRFOTJFYVJ0OEh2RzFaTzNPRGVTVDNvOStqeDl1cG5pOGw2Tno3eGZubTl3dVhKcm5zSXZsNWg3VVZVVGxhN2NTSXIKQitNTUx3ZG56Vlo1M0dxdW92V05WYnA1ZjhGcWduMDEyc2JxM0RocEt6NC92Q2s3MXpZZGZWZDlJWHA3ODhLWXlrbW55aTU4V2NtMApIdFc0ZWZtU1ZoYWZ6ZDg2NTVjcnVGaDkrUnNuaXJhazI4eG1kQzJxMW1HSDFJaWpWWnpDMTVRdDROREtoU08zOVcrZTdyZFRqRFpkCk1ickN5OHM3RGVJVzlwZksreVlQNk1OZkwvcTljb1ZqMW5URjlkWFN1YThybnlXbksrNjBwNTMyZEgzYTAwNTV1amJsNmRndDVjM1YKbm5aUjFodmpLZGhpTmVrS3BHMXhIUG02eUliS3F0Q2JKU1dqc2NDaU4zLzlyREloUytJTllrTFVXaE95SkxsUlRFaTYxb1JVMzJ2ZQozTVpXczZwWmRlMzN6dWFnTTNwOVhxN3dvc1FtN2FIZHp1aDVzN1Bzc0xaNUcraFdQOUd6d1Z0b2RUbTMyMExYVGFsWjh5MjBPaUZyCnZvVmVTZm5mYmFPN2JmVDI2Zm9ZZDlETk1WWHZIcFZjWTgxb1c1ZmFocjRudVM3VFlsc3pJRzE5SXR6ZFUzNmJtd0twYXBxZ3pWUG8KcnVUZTJveU5acE56TzUwM0FWWGwzQ0tiSU45RkxYSC9uZlhKUTZxU1RKK3Fpdzh1ZnVOa1A0YXF3K1d4WnBzbk9GWVhpWnNpTitqdQowdE1LQzNBZEJjZFdKMGJaNWt1QVc3d1JiM1pLa1hybGM4bTY1eFNwYjAxU2tXZGJmeWQ0bTQxeW01cU80K3F6YnYzZE1kc1pFWWhtCmZSeXY3MjRpaGZHNm55dzJSVHhzY0RTRHFQNGk5aWJxMy9GeXFuemxjRlBXMDFWa3hhWXNxYzNXd0hGa1hwNlZnMGVkd2RhWlVkWkIKaXEvTE9JK2FwOVg1c0FrMlQxbXI3UE1oMm45WXphZzVWdWYyRW9GZDlsb3ZOaytvYk4xa2EyUzFwUFp4VExmSHUrbDIrOU5OZkN6QwpiZitXQTFYb1BJU1h2YjhiTkh2RHMrcXZYYXpQN0w5aTlQM09hSEpiUmhNN1lOdW9jRi9sTUxFcHg3d050cHhRTk42RGJ2ZmFwOXZtCkhJZXV0ZzQzWmE1dWFCam9kZlRoS2s5WTNYbndSQ1FuRDN0dC81UVZnalJDVHI3dDk1NERDc3JIVkxmZy9mSlZweGYvc1BmdEJlRlEKOXFmamQrZW4vZTdlM1FmdGR1MVI4MjEvZ0VKa0w2azlnUCsvL0dYdkV2NmIxSjd0SlExVFpIQ3FiUWlWcTh6RzdEU0VTYkpjd1FlVApKVHJQNFVPZUc1bnAyc3ZtWG9qeGVma092bndESDM0RzBDODFrZFNlMXY3NVUxSnJZd3N2OXVwSlF5a2o4NkltUlNQWFN0Zk85K3JDCk5FU1JLQ2pjRUZxb1dsMnFoaTdTdklhbHBjaWhqYnJVV0RHdDFZdUdFYmt3dFlPOUFCT3lZZklrcXgzdFlkVk1GMUJWSm8wa1VRVjkKa0Zyamg3U1I1QWJRaTZ5Ukdwa1NKRFdGcUxXb0R6cHpNSWRVTjNKcHBJVkFWd2tpbE5JQmd2V1NScEZMRlpVcUdsS1pCTnVURFNscQpkVUNUNU5pK3lCdENxQlI3N3JsUUY2SUJ6UnJvdW1vVXd1aFE3R2d2YjZTSTBPS0JocElpU1VORFFnRmRjY3V0UFFBVktiYnB5MmdZCnJWd0dxb0JNWlFvWmt5NEsrSVRNWnY3QTM5eGtXV0FoRG9kT1plRHp3WjRIOFhBY0VVZ1ZORUxhQ0MycFdxb05BUklGTXdZQkVzZW0KZ000ZzB3aFBrZVRZVmlOTnRDRThSYU1vbElsQktjNjFGRkRqNE9aWlVVdEZJODBLb0QwRHBoaVRJNEQ3azBvcHNZc2VCTDB1OGxSWgpQREI1TGNzSWhHeVJCQ2pzTU1EVUVCb0hENHFtS1l3YThBZG1weWdNZ1ZRS0k0VFRRSnZNQXNaR2dnR3RQZWhYWWxJZFFDbndRbVRZClVvYWpxbXZSSElBQk5pS2xpYUdnUHlyblVraGZrU1JwRWZDRVNSZ2F3OGxMREk1S1FRZUV5RUtuY1ZvbE1Lc2l3Zz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJY0sya1F1cEFmUjE1WnFRT0RLcW5NcXd4Z2tBblBZeVpEZXNPYWhwZ2dXakl4Q1FXZ1lHeFF0NklBbm5qeWVVK3d1QkRZYTJ6bXN5aApycW1waGxFNVRDQnBZTVVBd3cwc0NLVjFEWlo1a2lvSkZUd0VhRWhTYkJmNkM0c2lqU0N3SGtWUlNJbWdYQUE2WFA0UzBjS2NTZU9PCnNBUTYyRHZiKzM2UGhGZDd6OVR1ZmxwNytlUGVuWk5ab2dxZ1Z4UldVSE9HdUVMbzFRU1c3Y2xWUkJiV3ZJclFpamtTaWEwN0o5T0MKNjg3SnlxTHJ6c21WaEJkVXU0cjR1bk15UTRCWjRNb2lqS3BOQ2pFQVRvdXhPeWRYRW1SUWJWcVVFYTdWaFJudzZ5cmk3TTdKRlFVYQpUSm9yaVRRN3ZhOGcxT3lLdW9wWWc1b3pCQnRDcnlEYVlQeFhGVzUzVHFiRkd3elhsSUM3YzNJVkVYZm5wQWZhNjkwSHZYNnZWa2hECk1zNHBlMUM5S05JQ1dDMThzRGJvZElRTW1BYnp4ZVFGU2orR3dKQVdLcVhWRDNJQVZwU1lCZUo2UjZST3dtUkpaNEZ3a1Jja05MamUKTklSNGxwRnU0SG93RFFtMWFCQnhlS1lnb2ZsSjJvNW1id0hUTEFpd2lHSVlwV2syQkdCb0JJZHVpaFVSTUhRNTFKNEZDK1NIL3N5Qwp4WFduMlJKZ2NXZW1XUk5OSGVMTDl3Q0JRK05vN0d4TWdnWFdURkZUTU9FTlNFT2xZZlZSZTFKSmU0aTQ5NkpzZG0zSU5WUUFsRTlFCitoeE9vK1dnVnh4M096YnpLcHhhSGc4NjdiK1ZGRHQ1NTBTN00xZFUrQVdjWllhakFjVkhmT2VPWDhERzJyMzlmcjg3VnZKaEQrM0wKank4N2JYdllCZnFtMFdHV3pjRW9JSUpqMThsZXdiUEFuOERzMlduR2FXci9jalRxOTA3NmIrRjRGeCttL25RSmZEdDBpMnpPQVVtTgpuNCtTMnFzOWtCaEpJbkNQeFRXWDB3YzgyZmhQSUdhay9iMXVkd3FaNUxnbjRaZk1LbWcxcTVUSkd2MkkyR3dsM1BrTGxOQXdNQUpWCk1QcDd4RzNTWnl3SnV3Wjg1dnE2UmhoQnA2WVdqdmE0MlFKT2g2NDRkaWZxT1NwVkNSQ2ZDcWg0am45Z1dtall6VUVvRzQyYmVjTEYKNFpQdFNPTElkQit3WUlZOWdCNG5FcVU0NFRDNDZSQmFwRlRZRHRFSC9GWExyT2FyZ3FKVHMzeHpUZFFKdGU5bVlvOGIxQi84eGtpdwpDWXY1d0JKd3RMZC9pbXZnK3g2ZTBOdTFWNE5tdTFQQ05Fby9wVUd0RnpqQUlycnRJbXI3ci9DY2wrQi9VS21CM2hnOE5CTUFtc3NGClNQTmNBRWRlbm84VjFETUxTdEJiOWxzVk1lNVh3UWpuZWNTSXc3Uy92L2VuNzJIR3czYWl3elNOMkhRZU04OTlxTS84RkhOK2JFeVkKbjNYSDBMSGhuQnByT3dzT3duU1kvc3R6cDdzWFRha3d6OXdNNFFrU0QyMDg1QkdSclhtRExDc1BNaFFDVFcrTTB6a09pWmdjNUhSbQpRZFRlSmdaNVBzYjlLaGlGRWRFZ3o1SGNxZ1pUUVlEdWVRTkNXdHlXa0Q0WWxPM09xSGJRSExUbkN1bHJNM3RKUStzVlJzeDlza3RGCkZuVHdrMVowQ3diUUYrTUVPUjYxVWxMNTdUZjRBcnFhKzBybkZ2cmdrYmtQaUJUYWtxaFoycjhrNnZpM3FJcEZZMlY3d0Q3V3N1dVEKKzhCWW92NDdxbGpvZ3hZQXhjL3Bid1pyRGRRTjZmNktBZ3ZEdndmRUMvaUFyQWcvMXFNNmRZc0hTeFp4MzZhK1VkL09YREhiNlhQMwp6VmhXMCtIQkllVVAxSnFodjhTak9uVW0vam11NTdBZDdFV05ISTAxaVYwQU1UcFhQUUxOcUFhYXZCRGJyQXNkTmtmbG8wN1piVStyClEzYUphV0VVTFRLVkNnWDZaZlFoeWJRQzdSYktKSEJDbmZXQjFoeXN3R3FyTGlQVm8yN3NmZ01EakpNaDR6OFpEUmdneTNScWNJRnIKYVpUMmQxVkJNMDV4bjB3YVdacEpQYjNlNFF5SDJMTWFUYkhNYmpPRy85Z1pDZHJkSHU2K3RodlVNUDVGclZyN1AyYStlcUVYN2p6dwpBKzVjdWhhMkFSRDRDcVIrbHVHR2srQjVSTTh1a2NQQkVuZUdoVGoyRitPQTAwYllXNGllYzA4ZS9sV1dQaFdvdlpJV3RhQ0xaaW1aCnlWSXl6Vkl5ZFVUbUpWR0dtbmtkTFJKSUthcWpqbUwrSytiVGFvcEFySnBKYkk1VEF2K0tMTVhtbFNNU1ZhcjRoMXc1eXFZcjdNK3MKWU9MeGdsK2twVUphSWhMYmQvZEhMcWFnanROblpTSWlmVVdrRThSa2k0aFpVSEdTS0cySjBwWW9OeUR1ejRJcFNFU2w3MGVTR1M5UQpKRlZKTW90SVN0MTBFMjY2Q1RmTjB2RDNRMDIzSko1dTJUZzhGOVBVSlBGc215Zy9TWVMwTkVoTFFtSjc3djU4d01tV3pGc3h5WndWCms4eGJNYk9Jc081S083bEV6YkhmL2ZsZ2t5dFp0bDZTT2VzbFdiWmVwa2hLN055U2RncEpPNk1TLytjRHpTdVR4WU9pSnVENUZDRmMKZm45VytZbitTK28rYWJjMG14TDM3NGViVXVPOXo4YmhNMWJGZU8remhiMG5xeXJOSEZtelBMZi9mcWk1Tk43M2FIYmJ6azh2aC9ITwpUMVlZNnozSm4vTTlKMzYwLzBNV1Yvdm5ROHdkTllmN2FnNzMxUnp1cStuKzQ5elJORk0welpyVS9mc0I1NDZhTS9QVm5KbXY1c3o4CkdiM1gxSHVyUTFxZTIzOC8yTnk1TnM1Lzd3OFUvdkNkTkFvcGhmQXVDUFNzQ0kxbmNGQzdCVVdPS0s5MnhTdkZxMkRDcXZPQWpYYVoKYzk1WGVKY1IvRWZ5UVUzVUhseFEwNnJtbFhvOFFyaElsWXoxKzFpeGQrcitIUDVtaS9YMUNha3NzbkZkTTdWellsS3BJTFYwUnRGQwpXZFcyR3RaSmpXTWVWcU9YMjR0U3FDd1MvaWR0V0p2aHRoNW9CLzJMZHYrWEdlWjlzaDBsT0lsV3NQSUx0dktUcVZPamQwaVRsL3A4CkNuTGtJWFhUVVBRaEF1WGt0VlZrN3RRWnVhaVZxKzVLTU9CZ0Q3M0xOcmFnOElpOE5kVERNQ3dBaXVtQU8wQk13TVd3ME0xRklJK0sKbXl0Y0dkOG5CbEI0QnpWU2VEUk1IRU9ZZXNZNnlUSTBRTTJjc25kUmFHZEpWcGhQUTV6ZS92NkRWdXZ5L0VWLzVHL2FRdVc0WnUzZQp0LzNSaTdMVkg3UmhuZHQ1U0hvNC9ERXBuS0ZOYW5BUnBVVmlwaGJBd1lNbmo1MWsrTzZzUHpqblhFTTBDMkdPdHZ1bjVjbURKOFVKCmRQZDQ5SzVibm9TbW83bUtMYjVzbzhpUlZ6ZzZ3eXBtZnliSlJ1WjY3cWNkam5haUMrTkJNQ0ZzbWF4aDZBY1BDR3oyb0docUJoaFcKcENHM2lPR0RtMkYrSHVaK1Bwa3dvUmtSMXBOMkhpbzMzQVhYUjhUNTVMSTQyTXVuMWc1RG1BaEd5bFFhUDVVOFRaTzhxV2F2V0RBagpyTlFYTkV1RHFQVWZKSm5walNBUFJDNjBYWWkwQVdDRUM0Yk16S3VVQWxraXlhTmF1Qk9zMnRKK2haWnlNZDZJMnhwMnEyek9LdnZUCm5FMXp4NXNmcHp5TWs2djJmRzlxYVllRjdCZi9oSENZRWlEeGZoZUV5a3pZdElTYWxHRlRjbTZKN0l1MndBVWdMMW1uWk8ra0RKb3AKbGlabFZ4Q1pESm1XZnBNYlpSVmY1M0xSbHMwVE9GYWpsRTdnbUNRU2JXS3V3S0ZLS21IUnhyVkl0SzNZMG42Rmx2Smt2SkdQVXJRdApkbTZQTGQ5d2JrTlBxY3JSaTJOU2dUNVJBNmMxc3AzclBEVUNmd2ovbjNhVTBuR09GNUZ3aStoOEwrV1ZMUHk2U3ZCNFFlVzZNNm9jCnpWZjMzRkFueTBhTE9EVFBMOTdJc3d6RC9OeWZCUDFCN3M4V2U4b2ZkYnJuRXdjZGY5aFpjTWFaOUw3aElVZWtHUHdLekVNbGcxekMKY0VadHlCeGozUnpvS0lEd0EwWERIdm1LTTBDaDRoa2R2RENFTXlseVVsT2xrZVR5WXhDS1BTV290bWprR0VJOURlRnFjN1U5NVZhSQptcmxDWk43QStBQ01PaFUyK01nMHNqU25HQ1ZvQUlPSDRRQU8vUkVKbXRBSzNBSmtnWkpRWVNjeFVEblZqVlFxT2JPcVRGRFlwN0tXClM0bEIxWVpzZGhnSW5hTXpYamVVelBTY1ZnM00zRUpyYkRWdEpLbWt3S0Nza1JsUjBPYWxSWnJrczZ2cUhCRkxNalRqRm9JMUsvVlgKYUJBR1Jsc1BZMUlBZjZHN2ozeU1VUkFoYzliY3ZhZk40UnY2NUUvOFQzcHc4aDZWN1FsRHdFRzNjM0hSd2JkbXg4Q0huU0d1RVZmNgo1VmZ3enlYOG42NUh3Y3d1ditBdk5PZGZOSWQwcCtvRU9nVlM4akhKNy9KdGgyNHh2NnU5L0JZQS8vVERYU2U3Ty8zekU4Wk5wR2h6CmZ2bDZmaGtFMlhMMmYzazBmMVNON0U3WW5UdlVsOFBtcVBrRkxDT1o3YjE4OG4vKzY3My84Ly8rZCs1Ly9oLytQdi9uLy8zZm0vbDkKVHNkM3YrOSsvNjkxbUorTGYxKzJ2dDd2UHlnV1lKdEdvWUJ5N0s4c3RnRG1oZGEzYzBLTmd1WlExQjVkL3ZiYnV4cEsxVWdidUhPQwo0dGZyQkNjdlA3TUt6R0Ewb1hzY2RYcHZXSmJlSjRRbkU2aXNNSk1vUFpmcEEyUFI5ZDlQYWhJVHNmY290UDkwU1gxNWNFRUMvaG45Cit3cEJVMm9GM2hlWlVpd2lZS1JIaE9vemdYSDFNMEl4cFY1RXdLQk8yT2o4Y1JVandJS1NjZWNFMUF5a2FsVkZBM1M5SzZzYW9NdGUKWGRuQWl5bFhWamZ3NXRCVkZZNkt2WjZwY3R3NWVVVFRoYzV6WkpPWnAzRHc5WGZRQVI0OHFUMjRIUFZyZG9GMWZpdkQ2V0hxelBYcwpkRmdPM3BidEU5RHNUMnloWWJRc3dsMmJ3dDIxQ2U2Q3hNZWJKbW1HQnhyNElIV1NtK2dEZXNRVWhrSlAvbDNwdHJYQUF4cmVUSU1QClVoWTJmQ0dDSlJnRENYL3p4RTd3WE9VVUZ5M3NMd3c0c0JwMWtxb0FPeUtZRkVyRkZXVURCaWVQY0VjQTZvQkY1V0N5SVhEZ2pzWmgKYVVhdUIwWU9IN1RLTEM3YkJZWWdMdUhiSVpEMVBGaHlRa1ZQc1VjZVFhZ0xCek40WlE4WXpyMVR6ekJPMGFoUTVYd2NaaEhqM0JVNgpianhyNUhRWkxlbzBMT1BDNVBsWXIzR3RtandtdDJpSUxNdlNDSGtNNFY0SG1PLzFHTXlObzBQdUI4cDNJUnBpN21rMHdwNGNYekdRCjdIREhBQjdoS1Y1UmRLNkMzNVVSWXh5TVlaWklCZUpYNlRSaWhFSjVvTEl4RnVxR3pvdVlYVWQ3ZEdjMXlTSzJBcVRJa25qY0l3QXoKMElNQy95SVFrZWdSZXk3NDVpUDIrVzVHL1BQRStKcUJZSWM4QmpEL3BqaEYvTU9wanZjT1kvN0ZNRGUxR3lMbmxlU21QM1FpVitQcgpCcGNiYkl4ai9KTjRqem1McGlwQU1ySlBCZXd4aERrWVlJR0ZNWXpJOU1nOUozd1hZaW5EWFkybERCTVVwSXdubXFWTUJQQlNacEpiCnlFTVpNY2V4TUFZUmpiaC81anBpZy9CM29UMy9RTVRBYmpRdWVOQnNtWTd4RkdPSVpacEhTM2dNNHZnWHdUei94bUJJWWtET1hBaGQKQ1B6elBRM3M4OVF3S05Cck1jZmZIZSttdUlTc2d3MjRNT09zaTBGRW5nWU1PdWFVaGlhVUdaTitDamE5UkdZeDUxSWdKVWtqeHFVTgpvMENGQ29oamdHTmJBSG11eFNBa3plTmwybjNiZ1dXK2g0RmxuZ29HQlRvdDN2aTdZOWtVZDVCbE9VZ0VxY2UyakJoRWxPV1JxQ1RhCmMwQXBUQjZ6TEd2SU5FdGpqbVdnSjJUeFZtZ2FPV2hyT3VDTkFZNWpBZVE1Rm9PUU1vK1hTZWVtQThOOC93TERQQTBNQ2xSYXRQRjMKeDdBcDN0QnVLK3psNkloaE1ZZ0lFeUpzM1haNUN0QWM4N0h0UWVENlVXTWN3NWJUV0FoaTEraEN1MGNjQVJ6SEFzaHpMQVloYVI0dgowKzdianBZbDl6Q3d6RlBocTNrNkhkN291MlBaRkhmc3J1RFVGc3BIa1dleGhsZUF5cGc3UFlCVW9xSUJla0VlRkR6K0h1bDNESXJVCnUxRExLV2tCcndOdzI1RnlSd2NrazhXNm5aQjg3SEtJNGEvSzNJWkRqVE1nS0hZTWlmUzZVSXNwOTNnRGdObyttT1lPc1l6Vms0aGwKRFBLa3NlYmppWGZhVWNReTFxRWlsckdpNVd1eEt1YnhNaUJpbVFjRmxrVWdTeG9qOXNSejR4SExYQThqbGpFUnZwYW5uUEZHQUdiWgpKSGZHZExlSVpRenlwTEd5NDRsbmpTamlHU3RPRWM5WXUvTFZuUHJsOGJydkVjY1lFaGdXSUpZdVJ1b3A1NFlqZm5IM0lvWXhDYjZhCnA1c1JSd0JtMkNSdnhwUzFlRms2VUZnK2JwOE5DOHlwUHhIRFdFdUtHTWFxbEsvR3lwWkh6SUNJWlI0VWVCYUJMRzJNMkZQUGpjZnIKMG5VeFhwaU9qTEF3bVhhL01BUEFMOHdKL3NUYVdlQ1o5Qnl5bExFMnc2U3p3aE1ZNXRXaXdEQ3ZPekhJYTFlTTFnTUN3d0xJTXl3RwpFVjBlTVZQdUd3OE00eDRHZmpFTkRKR0JmWVExK3U2WU5jbVhXQjBMdkdJSUU4VnFERlBObWs3Z0ZhdERnVldzTVRHRU5Tckd5ZDhECm56ekVzeW1DRUQyTWsrbmxWZ09QdUdlQlI5eDNobmhxSGM3b3UrUFJKRDlpL1N2d2lDRk1UKzdGdnFXWGxadkFJdz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJcHdBRkZyR0t4QkJXb1JnbGZ3OHM4aERQb2doQzVEQk9KdGMxR2pqRS9Rb2N5b1BnSm9pbjFhR012anNPVFhJalZyZ0NoeGpDNUxDaQo0bGVjMDJVQ2gxamhDU3hpbmNqWGNUcVR4K20rQnhaNWlHZFJCTEZtV1llVDZlVldvNVhtZWhaNHhIMzNkWmhheGhtK094NU44bVB4CmxkN3I4bFVtMXVMOXdWeVdwa2IvL0lSM21OTmt0c3ZTbDBHUUxXZi9yZUN5aERGOVg0K2w4NnJ3Ly80M2ZIL2ZILzlyL0gvOGFmZWYKM1gvOGYyYk1vZi82TUxOdi9vOVgvYy9IN2hja24rQXN4OFlFdExKcnczbnpKcHdiRm5vRjk0YXRPT25nbUlDdTRPTEFtbE5PRGt2cgpWZHdjczNoblUzemh2c00rcTl3eDIvbGUwUUVDRldlNFFDYWcxWjBnVUhHR0d3U2dWM1NFVU0wcFY4Z0V0TG96aE9pYWRJY1E4Q29PCmtWbThtOC8wV1k2U0NlZ0tyaEtvT2NOWlF0QXJ1RXVvM3FURFpCeFkzV1ZDUkUwNVRRaDZGYmZKTE00dDRQSU1kOG9FZEFXSENxYWQKbkhhcEVQUktUaFdxT2VWV21ZQldkNndRWVZPdUZZSmV4Ymt5aTN2ek9UM0Q2VElPck94MndWU0owNDRYU3FCNEpkY0wxcHgydmt4QQpxN3RmTUZ2bmxBTUdTVjNkQlRPRGEvTVpQTU0xTXc2czdKekJtT2NwOXd4ZStMeUNnd2FyVGJsb3hvRlZuVFJJelpTYkJvR3JPMnBtCmNHcytZMmM0Y01hQmxWMDRHQVl6NmNTaHBMcXJ1M0V3SEdmS2tUTU9yT2pLUVZxbW5Ea0lYTjJkTTROWEM3U0thVGZQT0xDeW93ZXEKVGJ0NkNMaTZzNGVxVGJwN3hvRlZIVDVFemFUTGg0QXJPMzFtY0d2Um5qYmxESXFBSzdpRElwMDRtSFVpbFhnVmwxQ2srZ2J6emppdwpzbHNvS01QQnloUHB3bUlGMTlBTWJpMWc3TFRMS0FLdTREU0sxTjR4eGw3RmNSUXB0Mk9NdllyektPaTdZNHk5aWdOcEJyY3E2THBqCmpMMktheW5TYzhjNHU3cDdLYWl6WTJ5OWdvc3BVbkRIMkhvVk45TU1YbFZRYnNjRndSVWNVSkZpTzhiV3F6aWhJdlYxakxOWGNVUkYKR3UyNEtMaUNNMm9HdjVacnN6Rm5WM2RUUlpwc3pOWXJ1YW9pZlRWbTY1WGNWVUdGamJtNnVzdHFtay9MMWRlWW82czdzNExxR2pOMApkWWRXMEZCalpxN3UxQW82YTh6SjFSMWIwL3hacnEvR25GemQ1ZVYxMVppUnE3dTlna29hTTNKbDExZFFVbU0rcnU3K211Yk9jZ1UxCjV1UHFqckdnbk1hTVhOMDVGblRRbUpHck84aUNWaHB6Y25VbjJUUi81bk55WGphRWE0KzZ6eGRkTWx6MVJ1eGYrK2ZsWk5Mb2lVaisKNjhvY25hcEdsdEtEUEtrb0tLK3hCTW1hNGhzeTlHQ09wcEFDQnVIN01pckZyTWdpblEvQ1YwRVNROG14NkpxMHZXRUJ3RFNsZ0E3YgpKdG4vVWlta0RRNHVHaExJcUZFcG0zOWFnc0lqcmRhUW9HSVN3d2diWG9FaFFKRlBBNmhXUXBlNENYZUVlWkptaWcxSmJEVjg1b0xZCndLa1VIT0JvTCtSVzhEM01YVHI1R1NCZnJVNlk4M1FHQkJXdVJORTFkTThtQVdlM3JLQkUwYTVIb2RSRUg1ZmtnOFkzblVBYWFWcFgKb3FheVJxWXhzWUxHNTVTS2JVNnA5YnpaSzdzbkI5MytzTFJQWnp5YlRxMjE2dXNaUHErV29hRkNrd1pNRWpUVTEyeEszc0lGeE5rbgpzd3I2SDM2bGQ0SHdkaEtGNHRsa3pwU2d3LzdDTmFnRUphbXEyUXdjdGhVYmpHdkxnblpTQzU4UlgyR1RPMGN0UlMxR0hlVzg2VG1sCm5NdWhsS0JEQS81Vm1NMEQ0RG4yRC84UUdReXZoOEwxbk5xMEdmbU82Qy8rSk8yYlM3YUMvYkdlRXgzMW5EcnZmNGtxNUpZZithSmsKZDVXZnZoQTJSL3hZcWpsS1lacE12b29nWmhhVWlaak1jemNmNDM0VmpBS0UzOVRURjFtWVlzUWJtOHQ2ak45MVluaGdxMk5UM2ZJcAovUEZERWczVTJBakcvNFl5b2FJZFNvdlBqV2ZVYnRRZE41anYrM0FGWmlDV3lUaWZNSnRLVmt5bUl5eG1GeXp5eVNHYWozRy9Fa2FUCnpzd1lhWk0ydm5mNkVkbkk2VjRveUc1VUpGMDhxNUpvQytYZktFUXlsNFdvMmQvb2VRRCtCTCtrTUZZVXp6ZU9hbUZTa2l6WHNCRlYKU2twU1o0VGN3TGx2YWtaL1p2UTZGSnBDdGFDUEV1OTlpa0s5WCtJVWpmZG8zVC9xZlJKRWl0dmR6YTZmd0EzWXJ2c1gzMThzZU9OcQoxUlNZUGp0TVN0bW8wRVpEMlg5c1RsSlNwTkx3VWZxUDlhaEVQYzBibVgxcHFxNHdDMm5kUDNSbHY5ckliUHhJc2M3MEtUeVVSWlhwCi9TeEVTYzlWOGFjajN5MzdCWXJpQTFqd1pReUhRMzJ3eDgwZDdVWDlRSVhYVmNRdXhvVHlYbzhNcUtjRllUbDNuOXhUVnZReFBKeUUKeVM3OWswcVdCZlNjbFhRZkhaUHNBMHlXak1TeGlDcFNQY1Nacy9MaG1zV3UrQjc0RXZoMkV1WFh0QThxTVRNU3o2T0VSeWg4c3QzdwpuVHVLaGpheFRCVCtqUzFQSFhhRnlUN2dqbnlZbDdaeS80d0Q3dEpDNWcwOTc2MnRtVVZudjdZMUYrdjBlMXV6aTg1NmNTdFNPMkttCm5jZmNqSGdjR0I4R0l4cWp3R3RtTlE4cEQzbVlhQk1qRVk5UjFKSDNWeTd3RGF1SkhWNFdsblZqNzJKaCtubDZoR05tWWRqaHAvSWQKTDhTOFh4WHorQnRaWVltZDcwMnN2WWwxNmFkdTNjL2R5WFVXcjBBM1hBZlJhbzJXY0QwYTdqa01GKy94REpreU14Z3U3TXVvY3dwTApkSjR1ZjQ0c1lONnZpbm1jNGUrbHpOSENxbU82YnpmQU9LK0ZuYjBTbjRiTEdYcm04MzA3bnVGLzNYdENNa0tvL09qUFhIWDBlL2hrCmZ6NExJMG12cFBwcVlteWtKOGY4Ykg2QzdTSlRwZ2FuRkdDSTJ1WmNjODlCd3h3dFZpaXV6N1NHWXFHUmFIeWMrWHpQcGpjeEF0OHQKQnJtUUpvSk9YRm1DRDdQaTYyRDhtUjZ0TnlZTGtDTVBRYU1wZWxnaUNLcmVNSWt4elM2KzMwdHZkS09keDAwVFkrM2RCenh0UUd2SQpETnFPOGtaU2FHdVhLMHhtRFc1VVpBckFPSTVzTXQreFZ1cVQvYWhQZHZWZ3J6NU5UejBtMkZyL3hobFNqOWxWanpuWnN1L1V3VWxECjB4RVluNWZUalRSVHRYL1lsK3B5KzNxeXg0bFpPaWtLenZESEEwZVorOHFFQnNKbmZmV0ZBeDZ5TE1adFJNMkhidG1YNzdpL01TbHYKbmFvR0RNNDB4Zk9BY3BlYWxDNFNKWXBpcVJ6a3lFTmtabTNqUjlQVjdMMHRYNHg2Zis0aE5JejJjbkRtaHpYNkhnM0hIQURqUEpwcQpoY1FmbGduTjFzZStNdzZCV1U2RmIzVGlhNHdPSCs4enhFQW44dHczTnh3WlZuU200MW5mZmVsNlFFUmZHbHFsQlVQcWFCZEdneWk5CktwNkZJYU12RFMyVkVpamxKNzlvN2txb1BvRTV0SHBRNGRrK0JZUnJZWkhsNlZZYloxOGNINC9KWTdkclhxY2d4cWZYWUwyUllhdEkKYzVjWXhvSmd1U3JjQzBIWVpLa21QMWxPUGdtMGhoV0NYTGtXMEtJbkRaUXdvVWpodkxRZUNRTzRvZGFlQndGKysvYTdRNElkeUlVSQo3VENndGVmNzRzdHdiejJTU1lwYTh3d3U5MTQrUGZyK3lXSHRpOXJkVm1mUTZwWW42Y21uTmJwU0FTTUY1ZUhIc1ZzVk1Cb2duM0pCCkxsMlRxWlRlT2trYUtlaGdxZkV3OHUwb1NiSXV3NmZvRTNLNXFBUjFWMHpVSlZFR3B6Q1k2RnBPYVZBVjBvYS9KWGgrZ0xKSjZ2aU0KVDVvRE9sRW9HMUZvTlA2VTRQclJRdHBMN0JhR3dqTXp4anFEb0M4aUo0dGFnWkVHTmZ5YlpXZzhNN1E3VFJKeU1FVWFTcG9DSDduUApaVVF1TEZ3WVVCMlZBbGxwaWdRblltNW90T3FZYWR3R1JzTnZtVWtwRHNvb2RKalZjZUVMbmJ0K1d4ak9BMGtaMmdRSVQ1UFM5TWs0CjZNRHVuZkJMU205aWozZm9ZS3FMQzNRN2dWbU8wNXFDM1N0REk1MUFucEFocVNoMHZzMlM1YmhzRGxxdloyUVd2bWJwQWxzWExuRmsKc1JJdWJWSU9lMnRCenZGQ3A0YjBMbkxpWVF3aUJUckQ1cXFFOVg0TG9hMXdFVW9sR09xY0ZETExNQ0YxQnZNWW94QndvdU1Mc0RDeApDcE1VQ0xDMkg5eHpNUGNkckMvWVJrbEd3VWNCNnhMVDFtTzRHS0tCNnRBTGxFcEt1dldTcFFtNkFWeVRXS2xBeHoyY1ptQm1rcElGClBjMEtQUFJubU9HUXVvUEpEclY5UHpkTGhNMXZXR1JBSHI1aGF5alNHeVBQSkFHQUl4YlBCSGU2TkhXbkxtVVYwZldzR1prYTdiWFYKWnphRWFiV0J4T2lycVJGQzRPcGpSTkdWazZOa3d4aFhIU2VvTlQxU0ZLdTIrbGpaWU5lSjBYTEpLVmNkcnhuY1FseTR1M3hQWTBDRApjK2NrRE05N0RBdVFBRUlON1FDWjhqR3ZlTUFRTlR3OUZOcGZja20xZFV6WmtFaE92V25TcEVDTkc1UlI1WURqS09mQnp1aE15aFI4Ckg4VjFaQzZiNHArdVcyem9oaUJIUDdJYlJqcWxiVWZyUkVZZzBBcFRlaVZDWU41TWVybElGclIxNEFOYm9JL2lsWEk4aVNsN0FOTVkKZlFSSGtqU2g0MVZTb09NZmtHRXdCbXhZV2ttVjJ5clN3SGFwOE9WcEc3Mk9FeW1qd0FDODFRQVRML3ArUUdrYmNNOWxpR3lBcGx2ZwplQmlhaXJCdlpUaFkwRzBwaFV1aGd0RStDdHJBeFVXdlp4VGFuaGxncWtsQmk4THUwaGd1ckFHUHpYVUNyQ1NER0V4VmpWT1VJdGNUCmlzQjNYSm5pM01IZUl6ck9oeDlTRzJ0OERuc3Q5TThFQ0xRTzJBci8rRGllZHh2S0dEcDZHbVZjdmhVWVdMcGtadDhBQjRnUXVhSGEKN2hZVExIK0Z2OEFjVURtdUlFbzVVdVM0VXVHb29QSFpYL2lScWtsWTlpUllwRlBXOEoyQnRDQ25BTXdscmRHM2x5clkrdUd2SUFFQwo2cDBRTXZWRHdkOVJFMGh5bUJRZWdyUGFHQnlTSkpYb2RFZ3hISWVDWnV4N1dERGNDblVRTkpuaDZjbytOYUFLVkZkTlErblVwclFGClFXUjFVNHBNZ1Vya3A3T3gvTnFHaTlrNjJHQkNsemFBOVlJZWhiT0JYSmdCUW9CaTdKTGgyZ0FnSENHaExNaFlZWWVDUm9RUm1ScTAKZytseFhCenBnbjVQR0NpQm1WQXIrQlFWdmNBM3NmM01WcVZBM1VhdEMwNW5hUUVEcXpCRVc5dUR2ZFJiL2N6NjhlcytKWlNvSFRRSApNK3huMTI0NkV3MGJZb2ltWG1kTFNJUjlqaTJSYkUxSVJIVHNsNWtOS2hObzFrM0l0WVlkS3hCaXp4VVlJb1lQU0tLYlBLRkllb1RrClpBUWpPenJPZXcvQ2JjWG1yQUZJUnRFRzBCYU12aXpjZDl4UFFCZUhobE9xZ1FDWDdNeDJqaUZIRWNUWVorc2NTRkNXNVFJUEJOYlkKVTJocGJkdnVxbVhhOE1adXJJYStBR0tOaDZCbEg1WldqZ1kxaG1FMlk0bnhHNEM1U0FraEEraVZHMUkzUFFoNmhBSWtvRUhEczBWagptK0x2MXBKbnlWQytkUWRDUzQ3N2FxOGVLYjZPQ3BLSk5obURCNUdVcUVTYWFFc3JMTWN6elYrQjNhNGJEdUM2Q1VzT3pqM0dmMDJwCjBkWWVmNGZXOFFhS3IyeG56dGcwT3JBWm9BcVprdHhPckNxQlVUaHdFc1ZBMWdiTVYyM0R1U3lFaGlpbnQzKzUzalRFWTBJaFpkeFoKbHN1ZG8vRE44a0pFTlFNRTFNczhzV2tTWFRWNm1naDBuUmptSzZKTnJHSHZiSUo4VmJpM0EvN2NZWU50TmNzb0t0Q0RRbWU1M2pTRQpNWEd1UDlxR1F2YzlDSmNWWUkzbXNxUWd4bmd4QnZSVG1Kd0VyK2R1ZFpJR3lrK3AyQVl5WnpmVytQaE9EVlpiWm1pL2NkOFZMU1U4ClVEaEF6aTA0QkRUN1NkR3dUYmp2WkhMSU1EYzZGeENvL0dLSXBzZkFnTkFHUTdnWERnVjNjb0lNdEw1QTVVeEhoRUhWSWsxOEZWU3EKWVhRWUlYL2xGdm03NnhKWGRsMTJ1RDFGNkhWQ3M2a0RwSUthNE1yOGxYSHpkOWMwVjNZZEcrOTNhNEZoQVVwSVVKZzBLRUVaR3FkZwpiOWNKMlN3em5jaHQzZzIvYTU3dU53ZjFVZk4wT2tCbGxhQVVjdDJqaS9MY2ZpU1hPR21sS1lXQm9rbEkyMWdBL0VCT0c1TFg5SlY4CmU3Ujc4RmVzcFhQN0ZjYlJGbVdrSG1Bc0t2Y1ZWcVlUM1ZMUGcxQ1Y2R3R1TjB4RUtXM01DWWFpK043UXQ2aXo5QjMzQWhsOWhxckMKZlNYdkQrT2tMN2FMZFN1NS9jNmlKNzY1YnMxeFgrdnFFUnpDZFZ3N0FvTWJQd2RsMVQwc2k5bis5V1JBQnowUmxpK3BLUk5ONjNMQwp0NzFDcS90WGFIWEdTM01UOFI5ak0rSjhiM3JHak0ybmVLNU56VVEvUjYxVE1KNjhZL05haDdFZG0yalRrMUdOVGIzM0QxRmdacWN6CldLWThzNVBwSVNaK1prdHF3aUZtMWhDdjBPcitGVnFkTWNRdVhoVWxzQ0NsdXpCMHJRKzBiMG1SeVVXQ2xpazNCdz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJYkRoQ1VrelBDUjZKOHhuckxyeVh6S1duSWFIR21XMGpuVzZEYTUxUFlNVnYrUlRHYVVpb3NTQ3lBWFJ6MnB2b0w5bys4RFU5dWZXUAo2bjFYL2pwNk1DaWJKMmY5MXVWd1lvY2lEOXNMUEsvbHhnZzZwT1Y0b2NhZTJDZzBCclFiUlRjMmM1bnF0UGJ5d2V4TkRlWlRJVktRCkVWTjdXNFlPWEtYdDVoYStITGt2ZGZkdCtvdjdQS1JwWTBLVEtDNXptTHEvN0dVWVpLUGN2aG0rSExrdmRmZHQrb3Y3UEp5cjBxRHIKRmhRWWN1SFdDano2SlpRWUprOXV3Z2Q3WTVPRnNyZWRmTnZ2VVRnTTlMZGUzd3NKSCtNZjlyNjl3Rjl5Kzh2ejdpWDgrK3owNTdJMQoyck8zNUdyN2c4dmg2OXJUWnEvNXFoelVuZzNhcUE4dC9LMW1menhvZHJzZGtPUVhyenN0Vi9JN29QNWVMYTFkakJxMUYvM0xYdnZlCmRObFBhL1c5dStNVlJMS3d4bmhoWGJzZ0ZGRGhVYmM1NHZJd0daNzFnSjJ2eHdvZnZHNE9XdjFtdDFhdlBTOTdyVTZYaXhPS3RpMDYKVnFFNSttUUluM3V2TGtzdTZ3WnBFajJod0Nya2hoM2UrN1RXc0t5R3NSbGo5QWNlc0tsZXc1REUzWWF2bUhrVDl5VDcveFQzRHp3MwpZeEJNN2NHVGsvMEJUTjV1U1JpT09xZXdlazRPanFHa09VR09uaEJoei9zWWFIVkRKTTBaYktBa25ocjRGZWNLL2MvK1B5Z015YUsrClhxbnBkS0psT0lpTnRadGNVN3VhMnNXUm9HYmhnRVlORmZTL0NvMSt5SUdadGFwd3VrMHVLNENCV0t1eGZwZmRxL0YvY1h6dTFWejQKWk5pQ2hQK1VvQko0TTlUTVdjaEVrVjNFam81dnkxKzRjRTJNZjAybnZ1Si9jWm1wRkZRU1dqdTQzalI4a1JnRUFkcGhXa2pMZzJRdQpEejdzaUJiMkYzN21lYmgzNzIrOS9pODkrZ0liNWQwSDNYZkRZZlBrOGZHbnRYdmZ3b2pCcG5QdkFleWtiMHN1Y3UrZ2YzNkJVLzlSCnB3dUVZaVVZOUU2dlpndFlxRlhlNzdraW40UHVldStIenJBRCt4MGluTVp3UEdxMjNxeUFZYjg1N0xUaTZvUCttN0o2ZlVrL2RKOE4KWEVYQXVPaXA3WHUybU9OQXJiSnQyL2tlN2gyV1o3WDd0YjNhM1FnUGJ1ZjNhOVJzN2Y1ZTdkN3o1bUEwZzdLRGZxOTkyUmxWSVdvQgpGaVIyQmU0dTVBWGlDcHg0eGxQbTArbUpXL3VuUUR1VS9ZRSttU1RQUWVYQ3hGVmE2NElTTnZ4VXUxamxKV2d4emxIZkcrU250eHA5ClB5d2Z2aTE3ejlydGlteStUZ2JoTnB2a2lzTFg0Y1JXME9QeE9oUDJhVDZqOGVZdWFPTndqcVpuKy9KQ0NWQlJWL0doZkNpdUxHRFEKZnJmc3RUOFVod2paeXFzcGtCZnF6eVZrNzk3RFg4dldKZmFCZnFDNlU4S3VoKzdDZFpaejc5K0hpWEcwMjUwVGU4L096b2JsNkZNYQpnRG4xWFlVbjNlNGxuV3I2ZzBiekF0VHNlM1lud3B6eWpuMTN4NURXam9DVnRZZG5aN0JSUWVudk9xT3JDTjY3enk1SFF6Z2ZSZDdlCnc4N3dvdHQ4Wjc5K2VvM0MyUzhiQzdka1Blblo3bFFTS3B1MlpqNzBKdlRCSisrMVNta3llS1JGbmtlYTJHMEk0YTJaUlZ0RVUrWGQKcEphYWRMMTNsSjNtdkRhYTgwcTIvQThpaGNTSFVBV3RSbkE0NkYvVWpsODMyLzFmRmlzUVdOQ1dhelE3c3pXSE1WeGVWMWpJVEUvSgpSYk16Y0tTaEJiZDJGMS9OK1hTT2hQZG5GUEYrVEIyMnV0Um9sbkNyN2ViZ2paUHpGdkM2UC9pTkFHaGZjN0QrUmJNMU5neVh3L0w1CjhkRis5M0l3VnZjMEFNZ2UzQm9PV3ZIMzAyNlB4ZzJPRU01Z1RFTml0YTNhdzE4dm1pQmQ5OHV6L3FDcy9WQU9oaTRxN3BZM216RUgKNVMySTVrS2E5UmJOTzJWL3ArenZsUDJiMlhtdks1eDFkd3JZblFMYzVaTHIyMnBtaW5seVI5VU8rb01lN1BnZlNzeFBJSzJvbXpVRQpCclk2WlFZRGVpNkg4NmI1N2tDek5RZWFxM0ppWjZ4ZVJiRGs2NjNEN2xiam1xeEdWSEtTTk1NZ092Z2dkVUxPSmY2QUZnYUY5MnNtCi82NloyOG51VlBFRGs0djJOU3BuanlGemJRMlB5dWJvTmZLNTJsNkdVWmc2NTczc3hjSzk3Q09TUXNWT0N1MmswRWJwQkdzZ1NYSzgKZUx1VEpFNlM3SGN2eTlxMzVicDc0RzlabEdBb2R5b1QrOGFPeUdSV3VHajdFTWVkYVludnlZVElrWW1BYmdIREtpaWcyK2pwWUc3eAova0xvTm5paUU1TmhtSDlEWmpJM05pKzdTQXFLNWNicjY4TG1mNlRJTzJSTldraGg1ckpHYkJOcmpESDRTZ2ZNRzYwemtidnBrZ0pMCk1sUUJOWnU1c2dJL3plVUpKcGZjRnBaa3VhRzUwVkNTbmg1eEJqKzZBWUVzUVhzZnpxSE1vTVZ2TGtzd3ljclc4Q1RQMGpRWEZJK2EKRkJuZkV3SVd1WUEwV0Y1UzY3bThVQitHRVIvY0dIWXJLeTQxT3FWd2VwM1NnNzU0d2NzSzZrWnFweFJtRkRBcUl6R05VYjl5TG1PdgpaNFpkcjJNdnVnRjJEUTZLclpnajJxUjVnZk1nVFZKTWp1MFdtOTJYTUJtQXdGdHNxQ1NtbU1ocDN1d3dHemc3cE41TmoyWFRRNms4Cnh3MUs0bzBBT3pjMDc5Z0dVeVBpMU5EV1JETm5hbVNiT0RXdWRXYnNEc3M3QTNvNGNCNjhIdlRobVBuWHpxdlhYZmovYUtQT25ldmkKbFY5OFJXMmhUY1ZXb3RKWWVLNWRaUnI1MVdOSzdqMStkdnJ6QzVnTlg5VGkyM08xWlhUY2l5OWFZUTVkMTQ4UWcvV2c5NnBidmlnQgpHOHljNy9yNGs0L3pPdXdBS2NUWmlmS0g1UVhNNWVHejNsaTRGemxaZStXUXpFR0ZCMU9Oc1lJRSthRTU2UGhFWjJORTNmdSsxMm4xCjIyWDE2SmtYMVdNUTU5NFNUNlFTQmEzZzFmYWVaSkpiWTRReDJ6eHZsckJ1Wm1YR1BGYjMxdmM4bDVyM2hqYTkyOUYxdFV6b3VKMFYKQlQwWHJXQ1dpWlFDYnREbWdQcU9zOHhNZnBnLzBUQXIxZXJUN0VZT25WYWF1R0E0dkVMNm9lSXZ4bEJXc3pNclhodm4zYzQ1Y2dCegpKbUtxYmc1Q1BSdFNmQ3duRy9pNU43cW91QzUyd24rKzhKZWJLUHpkTW5NUjBYTlhYbXBrYm5ZaXZwcUlsMlNBM3F3VDcvV2RhUlprClRKc1RUckIvQ210cFJqNm9KRm1ZRVlwU0pHMVEyS1c4cG5qNGozMld1TGZrdG1lUzZCdU4vdDZBTVU3ejZ4L2lqODAyTW40RGEzUE0KSXJ2SW50dGF6dXRqckZ6UCs0alo4dnVJTjNIOWsyOHE2cW1iaXRsNzNGVFVremNWeGNSTlJiSFJOeFZ2VFF4L0ErSjJsM3RwSjRJcgo1MTdDQ1RNejh4Sm1YTUkzTStuZnBKYnFOR3VrR0JZa2lpSTFqVlFrK2lOSXZBUlN0S0JRcUtTUU5rU2pLQXkrdTBCME4zSmpNQlA2CjdlVDUrTmhrMjdOTDdQcmpidjhYVE5TNVdkNjNuWXpicVpuT3h1OW44WHRybVRHcWFrcm03YXFRNzZNZnlwMCtlQldaK1UrQU5pKzcKbzU4aWFYbmNPYi9vZW1rNUo3SEorenQyWnhFbzNOUjREdUo0RlBXYThvbys3TFZEVnRHbHFVbWZON3ZsYUZSUzM1K2ZWdTd0M1gvRworYlYvK3BTb2Z2bmIzaVI4NzNscm1pMTNmM3pkR1pYMnQrb0xCd1lUOWc3R09ETkgyTjBYai9kckw4cTJRNTBZZXNHVlNoc3RWTzdWCk15NzdqN0tMeTk0V056SXo1REFJdGl3dTkzaFFsajFYVEl1c3NJbnRHMExxMUlhNmU5S3c5TUc3SmhmTzg5UlFPR0ZtQ21HaWhMcSsKTUY2L2NJV2xLZXdWUUh6WjBtWHpGMk9GbnpaZmxiMVIwNVVIcFFvb1JPcXl2TWhJcTVLWnBMc0lpY21VdTVSZ2NncUZGWHc3UWRqNApWMEw1bFNqUzJ1T3YwcUsyLzVYU3pMWUVxaHFiZDE1SlJmaFRTYzhGSjBsU1VBTE5BcEZSNG9ZRVgrQWpoekpGeVZtMEVoajArQ3VaCkE5clUrQ0hMb0doS0kydnl6TjZIVEJKaHg1cWpuVlBmelRGOEFIcjhWWkZFK0xBdThKYWl4aE44bHhtUTVOcG9kNmx5S3RwWEVOMGUKSC9aUHdMK0FNQWtJcFZBVW9vOVBEdUk0WkNLMVVlcUFXNlgwbzRGcFdSaUtFQlFwTU4waDFOaEI3UEQrVjdwZ2hFcUwxUFVuRlhtdQpIQ1lYN1Y2aytCK2FSc1JNeGlTUmRTbnhMdVdSeGljSmM4dXdsS0pYWVdLbk5yQTU1OFNsR1haeENwMmdrWUJoak5CcHZLSWg3RjJOCjFFNmNJa2x6TzZtMXU0ZWFNZWVBV1lrdWVNS29CQWt0c0h1RzhXWEtDR3NlQjBRWlRRZDhTUU1qS0J2U3h0SGlBM0J1cGtqTFFZdFAKMDBEa0F0QmxpaGVOU2ZGVk1KeXFHcTlJVUU5VElOamVLdEdaMURSN3BNMFBZaEZSdHhUeTN6RC9nUTVhSG1tcThCVTVaQnFsd1lXRgpsaGh0eHhYRElCUnlRTnE4cnhHeUJIbW1lVlZrc05TMDdRRE0zU3kzekJjOGhwNDZPNUV0bWxSNTRvVHdpSEtsNko1TWtlVFVLNlV6ClRjRVpPQUV6MnkxL3FjaE1kY3ZnWWhVNlk2bTFXZ0lWd0tMc1ZNVmVTY21yS2M5MFNyelIwaWp2Nm9qQ1F2Z2FRdWlJU0xFamVjN2MKTG1DeDJOV3RGVFdmcEtwUU5neWZIaXJ4bWJZVGZNbE42Q3dNcHV1WkFieUs2Rk8yWXlTdVlieGdmZEdhVTFvU1JzRTNSUktlOWFuRgo2R1k5VFhvVUYraXU1RW1xSlhVQ3hJUndpNm13VTFWS2l2bFZRVHBpN0l5OWdtSm5mWUtMRWdZRWU4WURxUXF0cVE5QWVVRkJOYmlhCkVrdXd2UU1WaVIrV2ErN2FENittak1XdlVMeWFRUHdnT2lJcWt3bE5BNEZ2cU52NDlNSWtGTGhFRDZZblBEWHc3ZlBIWHlIRmhSY2EKQW1hYVphQXFwSDNmSnM4a3pZZlVyZnZBUHRzL0ZocVMrVmNrWWNmTjZPR2NCRjlXNWFVUTlnRXJYakhDQ0tkUHZBMmtOQTVTOEM0bgpjMXg3c0hxVkpQbU43OXJhWFRyajZXRndwMEQrZWZLQW16aHBjNXI3bmxNZ2xSVXRPc0NaMnRrTGROQzhNTG05YVc4c2xBU0d3a25qCmVhOXg2eE9wb3RXWmVkR1kyb0VERHRIR0RkeTJLd3prV0VGeTIyOVZMTWpUZUt2Q1o2dGhxOEloelQzU1RKTWlBc2lVSUtUQS9aeHcKd1Fhc0NKbVhhVzVBcE9ZOEFJQTB4NjdTaWpYYXM5RmtWcnJsOUZJcTNYNnhHbFFpQkYwbzhoTGNYMnBRTWhvZEZPTEFBRzFvbWJEUQpUSVV1eUVLakNwRmJ3WjNDN2tYVHA4Z0xDaWZqWE5uS2loWHNQYUR4VzRUQlpTeG95OGtsb3pVeXRmTS9Vd21oelZVQ24ybUhNSUlHCm0zZWVsUGRhdDNmRU93OXRQRjc0cGZaeFpMeGdLQkppQXJBVEh4Q25TM2ZFQkRmbXVPMjRPU1hHaHd1bktPM2JYck9BTWJJM3NnQzMKWlMxTWZhdFhBVlB3eFdkY21idzd1Z1VKU3ltd3RrQU9XTVl5WDFXV1dXR1l3VzVrN0NMTUJDMUxBMnViMkNpNXI0S1hWZUtDOFFncgo4VFVscVdzWGszWE1ramI5ZWMycXg1R3VQY3NoTzE0NDREaCs4MjVwVlN3VGFqd2J0RjUzMmtzcnVXS3VIcXUvKzYrcDBjdnpjejRlCkxtclhGcHVKNG5HLzJ5NTd0UmNVVzdVRVQxd1drYzAzMmtZSTBEaHJDMUtWUlRuMkp5cTVvbllYdS90NDBIeEgyYUNldjFycDBHUDMKV3BTZ2ZoK1QyaTVtZkMrVGtHallmbWk5dzduQkJuZWlnaVZtZkhCaUdlZVJ4Tm5wdDM5VEtDdWdVbnRmRjlZekxYa041eGVhaU9ILwpUbTlESlVLalJOSXMySTFPTTlwVU5DajZ0S0hDSGtwQnBpQ1liTWRTN3Mva0I0czBvN1dJU25ubVJTY0lYMUltdEVCaGdCK1NMQ05rCkVyWmIyczJVLzMrOFcrTy9LTmhZQXNHbXIwaVFvM0FwZFB3aHliVGI5TGxia3g4Y1lra1NrODQxOEMrdmJBbVNsOGhVV1c3Rklld2UKMm02NFJVNXFqdkgvSDl0OGREcStuOEd4alFTcmhIT1hzUW9QakxVOU4yVGNwY2tQRG1ObWQwalNKVEtXT3JDOUdPcWJRQTBzb3c4NgpkY2ZYM1AvZnpZdEUwYmFQZ2h2KzVWTk1yblJoSDAwUUtjMHpVSjR6NDg0MTNKZkpENndBSkhTWXdma3J3MEhyU3VsdzZOaEdlb25DCmdZVi9lVzM5V0o3V0R2cmQvZ0RPNmYzTEM3L0szR1FHQ2EzNDZoc2ZaaUlOdTRnVk1wTjZGVnQ2UlE4a2ZwS3hHWUhXQmVrNWJxUE8KV0EyUUZpTlBGYXRDMFo2ZGVSMEt5RXhwL3dBZW1kUVpHK1lkVXJXZU9xVGFQdGlSTEhCRXBVTWg4REViMGhUakE0aEZJWkdjTkhRQwpGbU5tdlRHcHpQQm1tOVVSN1ROMGZNMXRyQStTNW1uR1MwbkNTdGMwcTJTR3pNTG1UV2FjRXNmWDVTSkYwL0VrTDhMOEVoYlo4MzF2Cm8ySlQxQ3J2NWh4MWhxUFlQRGNlTXpEdDdJalRYY3k0aVJROHYvRUxQRk4yTldyMUtxLytpQ1IrUWhEUi9CZjA2QT09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJY2pUcTk5d3p0OU1QMzA2OU0zajNlZi9pKzR2eFdrZzFVT3kvUDIvMnl1N0pRYmMvTEczQlo2NWNjMVErNnBUZE5oZDgxT21ldzU4WAp4MGp5Y2RtRTdSb1pNeWpiblJHK1JJOFBhMDI4VEgvM3I4QTBlb0N1WFh2VWZOc2ZrREh2THBINjZlUmJlSmJHK2J4eTQza0lwSjJYCnZSSDByNGtQQi9MMzJoZjBMYklSMjBlSnJWVjd2MXVXN2FQeWJQUkRFNjFvdGNrWC9wTGFXUmRmZ2VyQkhMZ1lsTU55OExhc0llRVgKMklmaDRncXRidWVpMXVxamtmZlgyZ0E2MmUrNUdsbjAzR0JjWTlBY3dteXJ2eTFiSTVCRnA4MXVzOWR5dmJyN3o2ZkEwY3Z6Mm90eQoyTzllT3FPcHo2OExpRVROMDN4Y2ppNHZLSnpjNG4yT1hSL1YwUERzdWh5aVNJQ0R0YWZsOEhYdEJUWGUrWTBNcjFFenRrYWFqTldBClpYRnhPVnBTSndsVVRuWHVxTmw3ZGRsOFZkWmdMbDVlMlBMZTJRRExEWWgvVVY1Y2RvY3h0bWpRWHVCeWkwWnQvTmZ2K2hmUmIvZGUKUGozNnR0OHVaODZGKzdXN3Y1NTNlL0J6SGRnMTZKekNnbmZEZE8vQkFKUXVXK3VhVVh3QS9GRXAwSmk3N1VIcEdNY3VHLzRWL3huNQpkeWp2L3JFM1BIbmJIQXp2UjlNcEx2bzJNSkxnd3pubGVuNTJ1WjRNeDc1dEtIZDYvVjVaZ1RIZGZ1dE4yYTdDR1M3NWdTYm1WZWs2CjdmVGEwRkZSZ1RhWUhMQm1yZkJZVGw5YytnTU4vM3R5UWl6a1JDWDZPL2pBYTVXSnYzUlVOMm1oZi9HMjhsTEhvcmM4bzVFOFVHOUcKL2ZQYmxXVFhOdysvR0RaUm1VQVZCNVpZMWVsNDdldmlHQjhqV0p1dWJNTXFIWjc5c3NhNzhTMHZneUcrNGIzaG8xeUhjN014ckxMTwpvL1NYVHB0dUN5OGRYMWZ3ZGdWd05acGVseTVqeDFLaXVPVHRVaVhSNDdHTXFIZFY2SGwzMjZUa3VwRExLUG0xa2ppNWJVcjhpWHNlCkdhZjlFZWdCZUxCL051aTg2dlNxVURWZFp3MzJmQkoyeC8zTFFhdmN4MERZVzkvMFlXdTY3UzZjbDZObUczU2c5KzFIOFo3OStIM2IKbVRTcXpLNm84T2V6dHFLeHVYUmNkdi9hSEIzMlcwZjlWck9MWjZraC9UNXIzdm15UUVzNWVISVlsNHgvL2c3MUkyelY5VjZvUnRKSQpvcTYvZWZEazBXVzN5M1lhRjdRSnY5b0t5bHRubnNNdkZ5V0ZlajhlZE5vbnVHUWVOVnVsejNTQVEreGVjWHZlNy9SR3lNMnBXc2RBCldiRGQwRUJNRnZtKzEzRzkxWGt5cjNVeUJEMzhkZVJadTZBczlqUXVxblNPd24xbTQ0KzYvZjdBaHUxUldkemRza1ZsOS8zTVdGcjAKQlJzQUZwVWt3cUlPNkxsa0VjNW5GODFXWi9SdU1VY0paK2lvTkJpdk5yc284aXB1UFM5eXNhQm9RS3JtOC8rSFR2a0x6TFhEem5BVQpMSnRHNjNRQllzK3JISk1UVVVES3NwazFJbk1rRlZqR09oTDNFNXhieEdUMzlCck44YmtMNHFEc2RnOUFXcnVDNlZ5Y1dQQzQ4eHVQCnh2eHUvclUvNlB6VzcvMDFVb21RYlhyUk1Idkd5VG1sdnZPeWJuN0RoR21TUWQ3YWJTTGJkYk0zNnRTYTNVNXpPRjB1dG5IM0wwZmQKVHErc2pjcGZlUlY2TTNIQk5tc1VTSCsvQkd5amQ3V2o4bTNaSGQ4NUFLVThPYjdvajhocDk3VGZYbUs2NXphSGRLdGl1RXlnRWRFVApFaTJwMVRXYndPZFBQYzRrUTVQbGgyYXZNM3dOcEVRemtWeCtlU3JNVWt6WWgrZmRacS9FU1JJTHJZVnJtMnBRY0h3SG1ZZExvWXlXClQxWXNYejRCejNmOWk3anJWZGRmUUxCUEtsV013MlNBQXhGVndUR0xnVm1ocXpFUVYvWnEvTHZzbGdPcitqM3B0Y3Rmajh0V3Y5ZGUKcmM2anptQzRwQm1hR3ZPSGFWNDFUODc3RGE1SGM4V3g5ZlduaGpiTFJMV2h0ZTYyNlpGbHlnOEcvUXYwVnRyTFpOT21pUW5OS1JjMApwYktwZHFPeEdXL0FKVlI2NnE1UGd5NzBZREE2N1RjSDdacVlUcjhVT2MyOHZIand3b2tRa0FvcUZncXcvci9ydjdDTld1TDd3NDdmCmpDVDNvM29WTVNIWW5neTVyODVqL2UyMHRzc2xZcFZ4Z21tcFA2ZGZOTnZ0Q1lGOVRvOXFqSUdHSUdzblFDQ2MyWnZKRzB6N290TVkKRittdGZuZmdWZEVIVDJvUExrZDk3elFzSnpDU201RFY1TnFiWHIvMUJnUjM3WlVOeVZoUXREUHNnOWd0YTZkNFdjY2x5Um9yWE5RdQptaGV3RHd3NzU1ZmRabkJReW1qbkdRMmF2ZUZGRTA0SHJYZlFacWNOcGJtTFdpcVpSMldiUEY5YUZEUWlvZVhJZXp5bldFVlVyeUtkCmExblpBVy94c1RJd282U0lPcmkwYU5TQnBXVjlCNFJKODlTWDVEUEVRYlAzdGprTUdvNFlHNy9uN0ZESCtJVGF3M1puMUxTQ2JVSVQKSTQrdWxUZVJVL2MrL3V3dmVrMU04Y2w3WUJNZWJ5RnJNQmtmY3g0YXZLcG1YZUNMbk42MjBoSHFFYkRDcUJKMWZMTFNlRXVpOXZENQo4Y3BOMlZyTDIxclZ3ODZ6OC9pSHg0LzZ2VkhRQU5Qd0F3eExxelBtZG5jUDZ2N3dHUHZ3ckdkekdFNys5ckk1dVVpcHd2bEYxKzlTCkU2M2o0VFppVzFUdCthdXpjZm9BZHZqZDRYUkJsQ2QvS3djVHl4bCtlTmdER2U1RlFkVHd3L1BUc20wbDBMaW9ndDhvTk9lN2FTdlQKMUFHak4wWHJWSkhYL1YvKzJtbFBFSDRFN2JKMGZ1TElXUjdZUWZOdVFUREh1RWFPVWhaVjhRZW9pc2NjOEdVSTN3RUdweHk0NEpRWApjWERLVk5GblRucytqclhuWkY2cDc3eGVIMGU1VUJITDlucy8yUENXL1RpOFJVd1VmVFlSWTFNbC9BV1hUR1UyWWVFbGZMSVlxekhLCmxsM0txZkZpczFsbHkxVGpsY00zUHlDcHFQWDZJV0NwMXVsUlFCSnFHS3haTFJHYnJxMTd3Zmg1NytmK2FZUFFOYnRkM2hHR2swYXoKcVFvZ2lXQ0hmVFZCd3p5OGkwc04zM1F1VG9FamI4YWx4R1N4QVp3Y0I4TVNxUmtzTGduN1dSQlRkNmVWd01ueVRIWkUwWDIvcXlHagp2K21mUHVtZDlXdkI0TGFFMGZONmR0b1puVGN4OUd4Uzd0dTlJaTUrOGVyOFRlTVVOOHYrMlZuRG1yUGRQajYzK0Rrb3djUEo0clBZClBvNzhjbGpDYmtNYnMxK2dUaUd0L1ZpZTN2c0JSRi8vM3RNKzdPZmxUNHZaaWF3dmlUTmptdlpVQjRhamJxTnRtNkJKd2tPNlpMU3cKbWlzZjdMRlY2bHkweitIbmJxOXlweTdhbFpIYk1BVmZZOWJZWDF3TVhMRUZZd0psWE90dW5JV2NPZEpRTG5JUlpzWGNVckhQVGVUegpTblhPWVRFM3VuQ09xMVp5MU9jQXYwSXRMamtJeldkNmJpOXQyWGpHM29YSkJ4SzFYVHQ5VnpzY2RON1NZMzRMQmdHeDlPS2RZYnFoCjFnVFg1aGVLbWJZQVZUK3lIUzVBTmxGc2F0Q3BGQjFXRm91MGRqbnN2T3JOT096TUZMbW56cm0wQ0NNVjdKOTFKczMyczJYNDBFcXUKeWlKMWJEaW1xZTRPR3VmZXpqZXZSS3Zmd3lSdGVGcGRRQXVXOUZ2aXFiMzBaTSt4TTBzUDJvMytBSlgzNXJUZVBWbndESlFGenNKRwo4YXd6UzEyNEUvNml1VUN0dm1vc25IeXVqQXU5RXNuY1VrUDB0VEN1cGVYZUxxWngyTHJvdHQ3TmwwcTJUS3MzYVFpYkxET0NzMTUwClZwOURINHhUdDNteG5BK3UzSUsrMHc1Vzl0QU50a2p1WXFraEoveFlPbk9wdUpYVFlXRlVxUU5UZm9TWllseFA4R21sZVhzMGlIaFUKRjhkbDBZSU5la21aMXFCL3NhUUlLbXNkVUYrV0ZCdEVtVHFXTllvR2c5UG1ZTGhnSE1kVmpMQzlWQ2c4aWtoYVZqYmFZeXJvUmFFYgpGUXI3YmxRb0czVmoxaW82NjQwYTdlNWlrV2ZMWEF6TytyMUY4ZzZMRFM5UGVUMm1zOFpvQ0lSNk44dk1VUnlDS29ySzY4SWl2ZkpWCk0xaHQ1eFRDRXdnb3RNUEZzd2JMd1hiVFc0eXJLeEJiMDN2YVpvLy9zREY4M1lSRFFMbUFTMWlvSEtIUGlIUDRSeGJmaVlManBiSloKY3Y3WGk4YlkvUTNxMnF4U2cwbmRudXhIczBxK21uRUttRlhPN1lMQndUWnJmb1Z5MWltMnVHUzNzMEJrUUFGMC9qWEhEdEp6Q3ZZdgpXZ3VrQ2hVWUxoaHhLdEMrWEdnVFdDQjVvZnBpTlFOT2RNUGxld1NWT3J2c3RSYk1FbHZHV1NONHBpelpHS2hPczlkalcvdnMwelNWClduWTBhSjFINnRMZDd4dkhqWnE5NUFpbjNIYnRYM2VQZjN6Mi9GK2YxdDdLSlllemM5RG1JcFZ2bGc0SlpmQjQ1ZjA0YzdyRDE2ZGEKNSs4V0hOdWpnbjM3SnZmMDJmb0JGNDlPMTdFdFJnZEw2UFBPcjJYM2VUbkFwR1JUMXBqajV0dnlLWnlkT2hmZDhzRzRIZU1LaC9WTwo3MDEzT0lKRjVmMyszT3NudlRjMXZNVTIzbDF2Vko4dzIxN2d4VHMzYmphbjJ2UERSODZhaFZwRC8ySmtUVkRqSnNKditxZTFaL2FuCnlPYVZaZU5HdUxoVU1NdmYyKzh3cFErT0Q1NDh5ZlZoaVRNQ2YxUi9lZmJIZjM3MjVZOWZmWEsvK2ZMemI5SS9QcXZ2ZnoxNGZQNzYKaTFlOTMzM3o2SGVmMy8za29OTnNEUDlndnYvclEvUDdMNzcrL3ZHZm42cS9mSEgwcjArZWZqMjRiR1dQSHNxbitSMmgxTytUWkhqNAo4K0dyejVNL2ZIMy8zNDAvZmYzbDV4ZkRyNGQvay9mMjdueDkvK2gzQXk3MHpXai8xVi8vZnZUMWw2bzhQdWg4OWVmV1lhUHh5YXVwCnBvN2EvNEQyc3NOSGQ3N0kvdnZ4NlBEbm4vYlZmOWMvZjNEZVB4ckM0STVlZi9abjgvdkxSNGZxRHovdS85ejk1TWU5TzRkbnlUZW4KTTVIOUlTdk9zaC8rL3M5L1BmanVvUEhEL0ViamNsLzg5UFdYYng3OTlQVVh3OGI1WjRlZjM3bDhkUGR4KzJ6dkRqSHIwZitjUExzOApQUHZweDJ5LyszWDM1UmRuKzY5SEI2K3oveFpqN1BpZlB4NjJ4TkYvdnY3eUw1LzhhUEZBbDRjSC8zNzE3ejU4K3VOL0RwKzBuL3h1CnY1Ny8vSWNIeC9YZjkyd2ZYamJibDN0M2lwL3ZmdFo2Mk5KL3YzdndXcDNjLy9MQm5mU1BuKzEvKy9uL2ZQYjF3U2ZmUHpvb0wvLzAKNXgrKytmM3IrNjFXOHcxKzZuejI4T3pvdFcxWkpQZWEyYUR6aC8vNW92UHZiOXI3M1R0LythUSsrT3hmbHcrT2p2LzRIK3ovcDEvZgovK1oxdW5mSDNQL2hwNjhmOUZxZm5ILzIxZFA3OTdMemYzM1Z5Yko3dzdQMHdhRDFSSHoyNWd2aE1iWU92eG4rQUd6TFBpbXpIOU9rCi9VWG40RjRUeGxjOC9lcHUvZk55djVzOVA3Y1UvT1BvenRjSFQ3NzgvWThQUHkvMEVNYmx5VC9ONy8rY0hmVC8vZG1YUDdULytZVTgKL2YxUGhQYlB2VHRBMEovTm4zNlBRL0pQODZQNWV3LzU5T2Y5TjUrYXVwdWFQN1NQRXZIVDc1OGUzbXQrK2NkSHYvdnN2d2ZZaXNFZgovazFZcU1qZW5lVDAvejVSOVBtelB6LzYwbjM2OHNlSGY3UEZEejUvK0Q4V21meUhmQUpUOTJYeTJaLy8vUEJ6ZWZpWFYxODVQRDkrCjllWDk5cy9mL3B0RzBuY1k4RDNiMTY0VktMVC9qZS9BVDZFRDR1NVhMN0JRcVFpbWY3ZC9lRUtzUGl5SGYxSG12ODNQclFmZkhmNzgKMmVIWnZiLzk1Mkd6K2NrZjlzM3A5Mzh2bnQ5NStmMkRad2Y3encvUGpqdi8rZm8vUDMzeGF1L08vMi92eTdmVFozSUZuNEIzQ1BzTwp0dG1Yc0dNZ1FCSUlFQ0FKTzRFRXdrNzM5UHh4bjMycXlydnhDbngzenAwejV6djlhNEtOVktXU1ZKSktLdVdDdmRhUUltWS9QT3NYCmg3aTdrd3Qyc3k5azRmZDltUC81RGZzVDMzL1dCWm4vZHVHQWdLbFJKTktjYlRsODBiZjlYelg3VW5OVnlZSnpWcVZvd3hDYTRuMncKK3FlZHIrRk9kOFo3YWtLcGNIU2NTYlJPcG16cjZYUytuSnFJc2p3Nk1BdlJQUmdaVUc5QWNsN3lKNE8xMko5WkY4UW9tUzVnNUdjbQpnRmdnT1VxU0JjQWRMbzg3dDQwTnhHc2xwQ3gvWVptRm9EZ252VHllRVpYQVhQaDBlcXFWc3NNbkhIRk0wcjFMakVqSGQ5V1h4Wkt0ClB1RzBESkxVUUlUa0NKK2JzVG5wc08yYytXVzR1U3E2YXo2UzQxUWdBTDB0MURCdnhSbmswQXdRcWo4Ym1KclptVjhzaThkSVl0cHUKWmlOOTRsMjhCcS9sZFVjQTIxUXFlajJUbU5TU3hGYnphdDVnemJicU16ZlFNS2xZSVZmcnJhUkdpOTdrdlZmcVJiNkIwQlFKakNnRgo2NWVjYzNvbG5hL3JCRmtJOVFsM3FqVHlHcXpjdk1Dc3B0OWtzUkNLNU1MZWx3NVNPRDY4M1BFZ3BBWC9hT2ZLL1o1bWY3bjFwclBOCnRwWmRDd0JSZGJNQWRrWFA5cGtnYmQ3SVI3YjV2YlNEbjMzWmNtRjNiVWxwUzJmaDIxNE9nOUZ1bDVRV0xIYTZaUT09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJUm9VREJOV3ZWb0RNTEI2N1VNR1BDcFBnOGozYnRrNlB3dmRzMldicll4MzlYWHVUU0tOeEd3SEF3ajNmUG1ISjNNcXgreUdUSmR6QgowKzM5cG12TXB3bllTM2pLR3NjbTU2TGpjZi9PN1RTaXA0Q1RIYWZJQWd4di9uYnhQRHB5SnlySGI2Q3hwK1pRRGordlA3SnZvNmM4Ci9UU1dIV1dTNWJ3UHZETHFBQzFRcytYdy9ubVlmVHUzZ3R4VDlETFFZK0NMdjh4aEdyZFJxOFdYVDM4dm1YN0pieUxONzRVRG53emEKMllETmFDbENuczdqcFh3dEF6K2xzS2NTL29qTkovRTA3bkhrMCt4M0tlNFhCaXYzSnZvVy9wbURxakNQZm9qK0RML1ZpQVo4K2tqOQpta0dRaDkvbEtHRFpwSmVNaEx5RkpqSHM3NHJ3bFNSNkdmNVpNRmpaNGVYZ1M4OGNIQW9MeENjRWtXRUhuMkova1VDdndORzhvaUd4CjA4MmlnUmlzYUpyVWhPR2dJcS9sZWd0K2wwREFPQ3dJaEpoRXpKREZTTkdmTEx3M0dndjdhL1NiQkh5T3BwSG1TSWxlUjhPanFMaFoKSkJvc0NkNFFQVmtzU2RIU2dkVVhMcFRFMGw2eEVLSmxvTEZRdjRIRTRtQ2phU0E2Q2NueGlHYkYvWW1Bc1poTEVtUElTTTRscGI0awoxSkRSSnhZaWhWVDRKOFVXUVBQTE1ZWXNXOENYYSt5c09GYVJKQlo2QURqNWtsaVAxRnlSNUREa2VPVG1ERjkra1NLcVNGSlpBajVTCkZCTk5FOUVrTGdTUkZvNG16MkttZUZxRUZMM01TUjNnWkc2MUJLdWE0cmdXdlE0cGtaVVFsUVE3d2xkV2VWQk1paDdRc28vQTZpZTEKTXI4Z2tpTXFJc2cwajBrcFFEUTFWalQxc1NHMUpLd01VZG9TamJFWmp1TE9GL1NKSWorY0JobzgvS2N2TlAxYzJWYW51aUV6OW5rTApXUHJmQkgvRGlHVTNZSzljMU1oUnZSY25qUzRmMk1YZ3ZLTE1idSsxQU11bHNNcThtOXVML005Z21DbE9WM3NidFpYeHpJblE2VlhlCm5lR2JIZTUzNU00QVgwem8wS0NCRmhaZVo1b3kvVjRyems5dWp4TjRXNWc1MDdFN1l2bmx1ZGt2Vkt2N0hIOUN1ZUU4Mjl3VVhqSnYKZzhNRVdMRHJ6Qjh1eE9KR3ZrUDhHVnNQazk0UnVSVS85WnVjSDhBSjdleUtVMC9Mbnd0N0NDL1BiOFJ6azBWaDdpcVdPZHNLV2twUAo1eGhIR05vSys0eSs4RnczdmhFQlhGUG8yOGJXNVBhYk1zOHVBSFNENEdmZXJiL2UvTXpDY1FGTENWanJvZjR0em9rRzF3UmFTamM2Ckp4cGNFOXJxWXpuVUM2ZEd1Y3dDMzNldzRqeVU2TnAzS05OcjBMYXVhUHVvKzVSRFppeEhKdzdVLzF1ZUJYS2tHWCtxL0ZtbzVzSjIKZ01BNXlUVXlINjVjdy9wMVF1WXdWQlVSQ1RyeGZSSEU5cWx3MVZlby9FYkdITm1BWndFSlI1TS91eWxIT3V0YUsvdlNyZ0oyQjlKSgpNU2MzRURtbmdxSm5LaHgyc1FKUXlxM0RpdzlrL1J1c25QMS9PZEQ1UzZHMHNzNkJlRFdTTUtneEJaODhwOUxPTkluRjNJbmdzeEJzClRjWkpTZG9wRFZQS3ZxMHpidkRyeFI2Zk50TXZSS1p0ak5HZWFzczFCOFJhQlZXY2ZxSy9NdWVYbjhZNEdQQnd5S3orbHc5TTF3ZGsKUDdlcXU0RWo4dm9kWkFVa0RoMkRRVzVGUEJxNUJ5eXpZL0haM3hxRHkvUWs4SkhET1RKWi9QU3hVQ0xrNE10bEpvdWJNNUJLd2hyNwppMUtjNWJINFA2S1JhZTBwMTNqTmdOMmk5L2RNRC9UY3MyWWJ6MjhkNkdzekQ5NS9BelNOdHpZc3NqcFBYckhhenJjdUhWL21CeEZtCldpcEZ1TytOMldCbFdaTE1IQTdMZGpCZWYwOGpCQWtzblJoQjd5NlBmY2Z5RlI3c2wxMnVuQXVlY3hqdWFSK05nalg0R0dSamlhcVgKZmRBSzduMC9XZVNMRlQyWmcrbXBUTHFjbmlCUVYrL0F2L0hNTm1CM2FwTGswR2xjd3BrR01zbkpZSk41YjdodDhhWDc3UWRzZnJGZgp4T2M4N1h3UndDaDdDMDhIMTRqaXNVdU9NUlpUMUp1cy9BcUFhWk5lSXB5MW9SMFF4bUhVNURmQUJSMlZwWmMzRUNpOXdCWGNmdWQvCmpqOWhHRlh3ZmpTeHArSStMNEtvd2N2bmdXMFl3YzdOU0c4QW1DL1ZOWG9samtlTndPWW5uYjNYVTdiYXcyZlVNajVXbjJlRjJWL00Kd3pDZnd3VDg5RFJXeUpmTjFHYmszUnBUUGlvUVFFWFAzaDlEOGZuSU5xZnBWSDcxNTlhK0pnNkF2bTJRMldHd1VoaWYyOUd2NG5CZwovUUNEWHhneis5ekF3ZTVZUzVidmdOWU5XNnlBRXJFSzNITVd4WW0vL3lPMFlaREcva0MrTzcxZjF4YkFVb3E4MTNkdndyMmJlak9TCkRCVG54Y0hMWkFoc2t3UlVPTi9PNHRTTmZXYURqbGdEcUwvM0tHVUwwT2dENWt3eTNiWVZLbjgvSDdsUXArdkxObHl2aTJ5ejVRYWUKUmNsYStvcmtWdmpzd0RkVnFBM2wwVitvZk5SYzBOaG9vbGVBZGs2K1NRMCsyckpaM3NpaDJkWXJmQU42NWRaUmk2Znc1SEE2a0hIRAp5ajZ5SkJiV0ZlQ0ptQ254YlhsYlNpQU5nazIwZVN5NlhlRnYvdllHMTJvM3pBMHlIY3ZweEdLdWdTVmVHTU9uR3RrRW5CeHErYnlDClIzWWpWdmtvSldrUTdQNktJclQxMysvditJKzlVUWNtblNkTEZucGxsOVRVQk8rRjNBWnI0bXY3OGFuMFVzY1ZlWjRtWGtTdkpPWUQKNXdyRjBlTFBpOFJQMGJQdDQwQXpodkRzVzRqOEt2MmRYSGI0M2krallTNjR5SHdFZTBsOVNSa3k2WEMzbEgvT2Q5SWkzcUJQTHc3RwpEMkEyNzV0Z2tUTjdublZJZzhKOGdMenZPNE1WSFlCSXJJRVB5R2MxSEg0azkrVmtZVjBMY1VZd3ZZZ0RzN0h3L1RiYTVuOU1saEJnCjdPQkxkcE9xYktWNENLNExaTHFYN1hRWHEzLzc4ZXhMdkZqTkpISTd2dVZOanl6cHlCeThzVFBVeVpsczVHdjJYUGlPamZ6Ri92eGsKRTlFejludXd0OEMrUCtobHQ4c1hGNkNZa0ZsWWN3bjkrY2tOSGd3cVhlRnhTZW94SEpCaWtOZ3FXMnhsSTdFbU1odUhoZS9HRWV6SQpsS3FnUjFzMmsvbnMxNExNWnhiTnN1VVJyMlJqL2xWVytwV3M2emZUYVZYR1pMSnc0bzBHYUdLektSTi9ueTh5MGQxaGlPS1NsMWlBClErZENhd1c0NkhXcGRhYVVtU2VFa2l5dDYzL3VWS1JVQnZ2THZwL29zUXNWQUlxeWVJUmgrZ2Jnamw5YnB2UGRPdk5ncDhKUDU0S3YKT2ZObTRzKy9LNTV4RHY1cGhVM2tKazhmdmJEaXVzOUM3elgzQjNZL0FmbnRhLzl5UGhneHBKNEgrZVFvdjV3TDVjSHhXUEJNeUdMUwphYkcyQVMvMjlybS9sMVRva2w4YUpyQjlyZnJRVWtyZ0RxRG5nbFpncXJYOGhlL1dBVGg3MlBjZlR3SXJ4NjlSeVVvYXE1bURlWEFxCmZHOFBQZ21HallGZGMrR0VaenRkTXYrZERuRGlRL3N2MERpSXdFQXNaV0tSbHU3dkQwYUVWc3RDS1dXZEF4TWpGcVppc05OTy84aUMKVFpDT3l1d2RPcGVmVUVkMEMvUGtBTG9LWnpmbkFES25QQUdYd3hrTkhSTHZ3Q29xL1daZjhGd0F1Tm5wVlNhWjJwbjVzc2lZUWVEVAp6TStqSW5iMDlNT3BkckNZRFhtckRhZ284RXNzNkNVMDBBRkp0Q1QzSkJOWjJ4U25vUTNBN1BVNUpZaGx6MGJlNmlSWWc5NXJkcHY5CmRraGpBWlN2UnVWQU9JRDFoQzNpZFhjQTdLUXRtMUdUcEFyWW5sb1hPY1puZysvWUNRaHhhNVBGaURUWkFFdzF3b3JUM2lGVXlKUjMKZStabHp4WWFkR0dLa1VxOXpCb2RITkxXaGZ2eHFmL0VvdzdZZGI1eTYwakdnbHdKK2lBekRBOFhJcTR6MUJmTnVQYzdlV0JueWc5QgoxTXRPTExkZTcwWWlCNTdqTWQ2MlBTbE9zS1NkYjhIVEVNUFVnK3g2UEllbkVtWjRXSU5sbTl2YXFlQjUyYzhZUzJsMVprZk4zMThRCkZsdHhhZ3AvQVUvR2VDQ0wwV1paYkd6c3k4MGFjcFFUMzM4MkczRGJmOE9jTFNSaEFkU0J4aTc2MEdJRExBbzJSZUs5Nkg2eHV3RUIKQjE2bDkxSjFJSVpWQzhCTStxUXdHNndzN3ZkTWNrMDYrVGE0R05pYnZOeEJFZDdubjR1eEVkcFEzS2xqUDhZcFI2QXQ0WlFlSFExbgpEM29vei80ZmN6eEpHN1RNUytSdzdROERIUmxlWnlMZFJURWJMUjFQOE9qYlN6cWV2SjA4M3Y0N0p1WngyeCtZYzlQSng1emEveUVyCkV1cms5SFF1MUpibmJIU3lXL0MyQktSdys0MXhHZGg2V3l6eGZaNGZ4S3AzNnlyNGViOWdENFlSMHhpczRUMGVld1AyOWh0SlpoYUEKeWQvT3JaazYvNGFSMDR2b0FQMkFPbUNmZHdMWUk4bDY5czJUQWV1eWNHMzRXQkJ6RnFkbjB6QWI5ZnBNMENBTWk5Z0xiRWViZVM2NAptczNDbmZaWEp4cEo1OHY1NWNmTUJEMHNVeWJaQ0F3SzFXclN4QjRXaTM4RzdERnliQ3RtRWw5dFlIWkdHbTZNOE95blFNdjNWMkRQCi9kNWxtK3ZRdTBBSmo3dVpvN05yS2xTZkFvRHR6Ym1kbEVKbFR1MWYrNUhXOEx3eFdNR2IrY2ZDSWhRMkpUM256NTl3YXU4cUFpL0kKdFNlVDVKVG1SbFkvc2FxSjBVbTBIanZTVHNXcnpmMllpWmdLS0hjQURPUXJIM21iYlpQQUd0OVpCbDR1dUJtZnphYXRPREYydmViVwpYcnhWNnZhN0c3QXVweHdYemFOZWVSNU16dVRvNjd5RTJSWjI1QnQ1TjU1V0VDMEVmN0V4ZUxNMHRScmZmdTg3V1BpMkk3dVpMSTZzCmJoTkFIQkIvYUEvazVWZ0l3SGFBOFRvNEF3TDJyRUN0TmM3Y1U0ckgzck90ZHFURjBTNjJ5dnpXd016LzNnVWhTMGpsMFR2WW9uYlkKTVlzbG4zZThtQ2dpVnM2ZWJCVmNQLzVwMHRPcjVySlJUd1hDcy8yQXVTQlpaUTBpT2NvemkwTmJlRVZnVE9XbTJaZHFHUjZYTG5xUQpEb1JnU0EwVDJCem1ING54Ky9ZWGVLLys0cStWTE1hMlA4VkJkOWtHQ3NmYmszaDlGRzYvZlB6U0dxWkdmc3JDSnAybnhMWTREVHRECnViclQrUlBaVkJwdTZJbUxvOUVOc08vWFNUdGdaMHUvNk8xRkY3bmdlOERMVy8yZmdXZVJiUldPcnZDK09rNC9BdC9ZQVp5ckpDN0UKeDBKeFBRSjVtY1JYajRXdm41Nlp4MmdzSE9UV2d6M25UdzVFb0pGZlptYmVRbVdkZnhkdCtSalIrRFNUam1vdUN0Ymx0ZS9aOHVZdgppSU9IV2Mzd0EvM1BVSEhTS29ZNHpTakEzSWVHUTNtR0F0Wk1oS1FmUXpFVjZDTUhzSmt3NWhJdmprZS9udXdtYlh3bFI0NHZBZ3JEClorSEorSTF4dzJOZ0R3ZUp5a3U1R1k1MzJ4TXdsemxKbTRpQTFXaHQ4WVF0d09vRE04OEpFSHp5WS9YaHVQbExVMnBSS0RaMEYrdnUKR0pBNnR3ZklVT3RZbktiS0FGVGJ0clBFMnNVUFMyenhEbnhrTUxJeWpNdjdCdG5XY25xQ1kveXZGSnVDSjh4N0s2Q3J3elJrK1RrKwpLdXYxR1NXNGJ3OFB2QWFlT3F2WlpMS1NOVitqTHAwUURGTUxYd3ZrRUYyQlU5aitlME5kRGl2K3NXUnlzdlpyNTZXU09Sbk1UUDArCmowcXdpQi9RSkQvZVVhWDhQL09qSWh5Q2dvTXlUQ3ViS1lDRExyNVkveWdWbUdpNTNFY3lBWjhaT0hXTEUzblkvbVVQcDM5dkQ2dWMKU3ZFajgwUFlneWZQWmEvVE54VEpaN015djJzZGZ2N2dkU01LNmVjc1VjZUxlWVZmZWlFL0RlYW1lNjJ2OG1lcE5JVG1mTUVickJJOQpHRm9BTW1vZFJKTXJlM0MwbG9DQkhzYUgrY05wT1grZ0t4a2Z3TkpBSGpvKy9IczUzendjeC8rQ1FqYmVQUENGRWZMTHcvZ0l2K1p5ClpKbjdRSHdQN1NNQ0NmNFZBdnZQOXZ5d0E5ejlBS1JzVHJFcVFrMkJXOERlNUQ4Q1JKNEhnSXo5NlFhTS8rRzBoU0NtODRjZlZFNDkKZmxpUC93T3ZLUm52ZG9CdEtRaytucWRMT0x6S3BvQ3E4RGd3RkxZTklORVpqRzc3emFIL09UNmNOeXZZTk5pbnJHSVlzUUdncDRlZgpuWEk1QUVON0VvajQrM3dDTDJCVFgxYXFLOFlQVTE2dDlDcGJlcTQrQktTb2N2d1NJRm1OMERvQWFySlhpMGkvR0VRMG9JdVF0WEpmCmphdFpWVUQvZGhwdlpyQnppVUxsQmdPMnZ0MXNwNmdMakx3T1ZzSkY3UURnTVdCY1doSENuVU9ERGhUbzRPejBzSjJNVDdYeGYrWU0KZ1lPYVJzMVRaOVVmNXJvcmdwRFpOVmd0eUUyMkFvdHhzNVB0dnpUc0dJZ0Y1QlNvUHBYTjF5UGE1SVdpZEg2N21hSGl5OG9NVVB6bgorNGVwTWRDdzA4ZzNkRkhlb29VRUUzTkhXQWZCdUNYU1gvekNxZ0wyaWoycXFFQ3lLNHpZVU5IUUlVWjE0VGtTY05NSUtoSU9zcWs4CnA4a1ZUWXAzM2ZmNXJieWlMc1pBR1lQZGhMNTNraE5kamVoNHYzN1dla2tCODF1NlhmcC91Qi9xRXlSdEtwRm1SQT09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJV0RBbU50RVVyUm5xNWdXNEN0eTlPakkvVUxwTVVrbEdSRVlaeDF1S2xoeEVNejdOVzh2ejMyUXovbGxyTU0xb3dXbnhMZ3BUMzhxQQpLWUtJME9KVk94TWh0Zm1BdCtlOGE3TVVkNkMzOHdTdTZIWnpha0lPMG1iRlNzbWlWR0VvMzlJRDBFWDNjMmsxemJsU1JPV3BJeTRUCnpWM24zc3ZUa0hwRS9XSUQxcklSaXJTYVdEL3BrMFBXa0FjK0szaUIwczE1MXAwVVZhL0J1NitnNFl2dWh0Nk54ZTRhZmNNV3hSb24KbHZFU2wwNXVndTFOSit5Z0JzZEpkVmFEdHhReHp3eG8vUHh2Skl2RzNLblFLT0pPZHlaK3pPK3VlOTNwNVNrQVB4SEJaQ01lWUI4MAoyRS9vUVNLUWJwMXloZTlZYVZVMk54L0g4T3dxeFQ0bDNJL044TkxvREpRZmpWNi92V213R3QycFZkTG9mTzdIako3bEQzZzArdllaCjNlZjRtOUZUN3hhTVhxeE9ZUDdIbmdPaER4bnp6a2J3U0J6cllIQ0ZWVEQ5TWtvRmN0RkFOTndQLy9WUjRnWUtpSEJQc2ZKd25qZFkKRDRmVTR5VHIyVDAvWmFxeFl5cGFUcjc3eUcwLzJDa2VQdnRZb1UvMld1Umo5bkdLdTdLUkRZMGxZR200ODE1WEUrQ3JoZVdtUzAzSQpGNmpGTElCaUZ5L1Zqb2RENHRnQ1NEd1Z6Qjk4bzZiQmpld1lKVThkWXJCZDJiQ1pEVWVZWHppd2h5L3NtQVN3bzJkM3FtUzBvWW1qCmRTbXNmUDVqdEJTTTdoTy80TS9TR3Z5NlZ4QWkvVHg4MVQ4YjBraExrVUVvWGhuNEpKRU9MTTgxZzFXRWxrTWEvcW1Xck5KSWswYkgKNFloYkQ5SklYL0hQb0ltSXV6aWtCaXVIOW1qMzFMMHlTRU5MeDlqZUswb2pEVG8vM1VsaUlUMVRFemtJR3F6bTltNWRrNW9yUnVhcQpHUm1rWWJObGMzQSt5aUR0RFREeSsvbU5RNHFLTEZtMEpXUFNoajhOVzVKSVMyV2lKVXRlb3A5cWpSQlN3SXVUb25CTjN3RW5mNTVUCk5ZaldlYm1xamw3Z1k0MDdBZExnOW9LVmFsaU9SdnBxdDR1UWhrSi93eDJIbE9Oa0N1M3c4TFhjdEdTUVpzYmhDR25CSlpFTzBxT20KSE5LeXdXb0pPQktmMG5OTkdyK081dVc4S1kyMGtYZW05cGEvbWhSU2QySWRUM0ZJd2JvSVdjbVY3bWRlcEpFR2V6Mk1qR0hQa2toTgo1Q0ppYWY0UkwxSklEVmFNL1BvaVplWWFObHRYbTNwZUR1a1lLM2xHSFdta0pTeHJuenNpUFlUVVlCVVQrR1QycEdta1BhOURST0QwCmMvQ1JKbS94YzBVS2tQYVRXQzNpeFNGU2x3aXB3WG8wbGVmYmNIUHNKUURheUU3TXY3V1AvbGdHYWRnY1djM0lnUnpTQWxaM2ZjVVEKVXNoam9ybFc5dkhNNytHNUtZbjBMV0VQeUNLdHp0OENtQlJTcVBtREgxN3NiZWcwU2MzMWFLcVc1ODhmZmFkREVtbkh2bG5JSW4xYgpOa1lUaE5SZ3ZaenJSd25yVkhkSmFhUzFnTFZOWnBLUDBraDNUeVlwcEVBblE3U2RZY2wwa2lId3h3djJucTRXcEpIV1U4WGhvUEgxCkpZbjA2MlZWUVVqaC9uSTUxOTllYUViS0lQMk1ZbC9IdFZjYTZmUHY3dThsRmcySWtNSlVBb2gyV1BGdVpBbDhzTDY1alRKSWUyMnMKK1BQM0pJazArdXcxR1ROZlhxREhBTnI0WGl3MDUyRmtTQ09kQkp3aW9YSDJhMk1YUWtyWVU0NnljS1kxYk9TS1p5RlNENGNVWUlGbwpBZGpmUGFQMEh3OWlwTWV0N1pGR2VrcTdSVE0xZm80L25CVFNYQSt2Q0JXaDUzQnNwNHdBQzBEcnU5UktGUythSzBDYVAxMm93cklwClRDRk40MVd2U0JGNmRzRm5hcWNKV09MNUtrSUtzZEJvTFlmRGVMS0JTREVSMHNNaE85OHkvUHRrRkNFOWhuN2o5RTZUampkOEl2S2EKdHZOUnkwRGJEL1B4TUN3Y1ZMbHRHMnpqc2s5N0RmeXZJL2QwaVpWSDFqUDM5RUx6QTlWYnNNbjhHcXlCeloxbnh2VTdqNGllaHFQNApzRVUvUGE2aUYxSVozaXhOWGFubmxGSjhyY1EvWlo5R0NWZHpKUDkwT1I3WVdZcGRQczhTdHY1VTltbk52VWtUOGs4bkw5OEo3cW1JClltSHppMms2S2N2OE9scTJsWlB0SS9YMDI3NlBpWDdiZHY4d3h1azNib3BmVUt3OWVYcmJTRDJudEZ6QnZUcklQbjIzVHZ4RythZWYKaGZnalF6R0o1eVBySUdLUmZmcDdldDJWWlordU9rU3V3VDI5b05qZmlrd041SDROaHRSSWhHU2ZQaEhCVkZlZVl0YnBadkpXay91MQp6V2lyZkxwa254YXo5Y2xjOXVrVGtUYmg4aFRMR2dtTE15N3pORlRHaW84dVpzNXhSMEwwMU4xcUhOUDAwN3d2S1piS2NtdFVjbVc1CjU4RmowTk1VZW1CNWJHYi95TlA2WjJSZHc2YzcyaDBsaHlGSzllUzJ4MmZxazBDUEVTY0w5RER6UnU5VHJBYzh6TjhXL01jSHZ5T04KbmtJekQvOTVSLzRiNjcxUk9vTEdOMjdtR00xM01CSDJ4MWN2cmMrQm55T3d4MUxtZ0IzODhPa1B5UWIwZEhnUzRhOUhOM2JneDNiUApRTFdhYkFEZmQ1TEZaL2IvUEU2Y1FEdVppb2Z6eU9jVnFOdUR5V0RsMENKUFJ3WnAyQXo5bkE5cHBNRmVYeFlwMkVSK2NaRTl4cDhyCjhuUmtrY0l0YnlxSGRNWkhHbndEUGpJUGJmUTU5OFpET3JQWnpCeFNaUDJ6U0FNaThrTHJuNTFwYVMxQTZ1d2g3NVdQVmtEZ1IwSVcKS2JMK1paQUNmeEJZL3dNT0taaUxZSzVmc2tnQmdZOUJlYVRRK3BkRmFyQkMrMzhwUGRlazBhZUV0R2FYUllwc0NnNHBsSDBCV21oVAp0QVNyT284eDZORW5laUdjK2Y3c1Q4dDdnL1BmaGkvN01tK0d6ZnRCc2Z1aStsNW9TZk1kclMxeVlNNmZXVnBiWG9qdXlQRUhxZFBrCkJXaFM1UGxBS3hmYlcwWWs4VEMxMGNQOWs5bzVaaTNhV1ljNmlmTDNVenRuY3NkQ2RDQVFxVmpaOG90R2tZcVZQZ3BBY1kyTEVIT0EKVTAwMCtsVFJTdi9qcVc5cEJNZ0VaaEN3dGlVWUQ1amM0NDU2U1JSOUFtb3Y1MS9PQzFiMm55YmZZcVpqWmkvc3l3V0lwY1NmN3VncApUY2VVd0pEYnIrQUxHelJvenk2R09wVGRUcXRqM2d4ZWJVSUNzaEUzTUdEc0tXUzFvbjhnUTc0THZTU3BRYTFpRmRHZytFTWFudTJBCmRlc2V3cDdHZUhFMFVUZ1FrUnhveTY5enJxcEdkUGdQUFhqS21aZVluOTBvT3orRGxac2gra2QyQlpuMWV6T3ByNStablorTDVqR3AKR1VManRhMUFMTzNydDBYOFNYa1dHb21sQUF4MzVYNUpXVkFHTGV6T0VDdmgxY1ZaSEY4SmRtU0tzMHFmZS8yVWw2UTdNRzc2TkNmZgpUSGtpMTQ4OUtkUGRJRThzb2VweFhxcWVRVkdvZWdLeXFzZWd4cnJGejhxQlQwQjJ5QUlDMmlqVkkwMjdBYnlLaGlHd3pIZzhSUS8xCkQwMDdmQ05OdTU3WEtLdTI1YVFTeGVNa3A5WXo2WjhhZnhkRGt3dWtPNjI2R3FsTFZSdDltaUE1a0lKYk5DditMc2FiMWZ6Vlo2TlgKLzBLTkZnR1d6bGJYaEtRMERPQWQ0TTUxZWJSbHhaRFA1eU9uRFF5dVc1QlpKczhPSDF2c1pUUUdLczUvSldFdytWMTZ1WFUvTXB6RAo0MlFVMUpFR2htc0ZKZ1VLMFoxM3l1TzZsTHN4cVZYdWxLVU83SlZqVS9lc3VKWm0zTlBHUGZDZkR6ZnZrT0tDTFlCbWRCU3JVc3NKCktNWmZVUGdQV0ZBdUVIM0pHMkIrckJhODVJMlhCanNrM3JqUVhFNGx5WkdsU3BPajNDUXoyUHpVOWw5WVlaZEx3bmw4ZGZmbGtzeEsKYWxhWVZ0V3ppaDROVnRtTlNZUE55TDBNckptUGsreTJaTERxV2Q4U3BFbFp2L1VrSmZ1emtsQlBTeENydnVVMlhvVWhuZEpQc252bApTNU1lanhhVERneEozcUJqbHM1ZzFiYUN3TXRYTkN6VWJIN0JDbTZzaW9hRmp2VXJ2ZjV4b0NoT3ZnSFkyMGJEdU9CVloxcUFDVGNVCnZlTmlUbmhwWUQxbEowYlBKUGxXM2MwVUd4N3VTREdoUnRNNXJwMHdEak9LSEM0YzExUHFlS1YxTERoL0FlTXBTem1EY2dhdDVBWk4KNUxwTG80b2U0eG5ZMGxKNVNwdnVKcFc1N3Q2aXoxR216bU12VnJJTWoweHFIRzJnSjY2Zk9qMlRUYXZ6d2RxV1l1cWtqdXkyckJwRwprRFlNeXlLbElDa3Y2c3VVT2lxN2VLS0IwSng4T1JRVkxhQnBJQ0xiOGpxYXFJZzlieUNVait5VzJhSVdaUmk2L3REaGsxT0hrc0lrCkl6YTNoL2c2VG55OGdEYjRWSUU4WDlTQlFDYW9BU3hCbzRJTkk2aytaQVNrb214MkdLeDZCbVcrVWdFSXRTVVV1YStUVlhsYjFxb0EKS3B3QzBPcnZ5OC9Qcm9Ia0JtMUVGOWdLNnZFTXNTWFB4ZnArSy9CUTcvMGVURlU0NGNXdlk0blRESUpjT0VuSFI4WW5CN3kvREdqbApUL3JFU29sWTJrVmMxdTFCWGhJZ2xrNFJGeENMRlhIMGk0QWx0dklMQmZ3SnprVW80cEpldDNwMENYQ3RTVnVFUkNtVzhDUU95WXBICm94U1NGVVZJL3A2RUZyeU1VNndla2dWVDR3a1N2ZnE2d3lSUE1DK2hyalc4d1hwSjRxRThuWVhiOGhYaERjQUhld0pOQ0dXcVhLeVcKOXJVUzdha3ljUitEVlNsSzkvY0VEM2Q3TjhWOUlGblVZMzBpVlNBVHI0SFVDV3ZpWko3ZUZFUWFkZ0pUT25NV205S0FEK1NEaWJSTwoxbUJNUXlwWHhhYTBIdHBSOWhnYWoxVjVQRnJqQzRGME8ySVhjUVRQRjlPMUVWWkZsdkIxOGhKdk9KV25wczduVlc3elkvZVhLNkxSCnU2cDQzNU9ia01HcXdPbUFkNFNiM2pVS0lOMjJoZ3dxYTY2Tk1FT1ZJTDFCdE5YSjJiS0FPcUtOVG0wZjR0dXkxRng0V3gwOHJMTHoKOHpmZ3JNQjNXcGhCVnVwNG5Kd0g0L0hwaTNsZnpybjdKclhiQ1U5Rk5SOUJBbUJ5OFZhcGFDdmxXY2pGV3lFd0hjSW43UzhCb1RGWQpiejZrUUt1bXZPVVpOTU1ST3BMNlJrT2ZpVk53YnBWQUNncnJUWEpRR0oyc0I0NytmWS8xOXlXQUNVNEk5VzJpd3ZOQk83SXVQQTZoCnhabEhhYXAzT1dISW8rUlRnMVZkRERWc054QVk0ZE45eGlkalJNQmNUcGNtVXZMTXovaGVzSXVKTmRweDVielFhTWVWK0FCUGcwYVQKakpEa0FXRXkrMXMxV3B2VGFJejNxc2VDRndOVDEyZ0dqU2RJRU5qMUdvMlZ5bEpuZXdlTkJsWk5TcVBwbG4wQVI3OUd1NGhkVUhCdQoxMmdReXUxbnJ3aU93bW1RSitkZ1QzSDhCcXVVTlNEWWhEcGJKUSthZjNRb2JhTUVQVTFodmlYd2VTNWk0L0M3V3c5Z21mM2wyNzZYClYwTWFMYk04a1BPWGs1UXdVeEY0ZldvV0FPc1lkU2xaZzFWV3pWNlovU0FVNWc3eXBRV2UrRFVHQ2xnMVVWS1RuSVpSaDZQTnRKZUYKZ3VJd0FNN3RLUkFJaW94RExUcDVWNGNqUEhUWEdGNldPRTFBd080UnE2YjJRakEvTjdRdWhMc2grTlo3aTMzUFk5S3hxWG04MmVQcgp2bXVOWnZGaUY3Szc0YnN1KzE0NUJndUIzVzdmZis2bDlrSzl1eGhjTmYwaHJjdGRETUs1eGI3blFXSDN3dXQzTVFSSHdyNlhnc0o2CnJ6Snd0TzZHeW5zaDBqQ2YrNXQzUThGZU9CU2ZFeU1zNE51N3BDTkIvU09aaDBYdmxZTGtLUzROUTlZV0dCNFVsb1JQU28rRzA3ZHUKOTVaWXRTak9ENERkS3QyOGNVbkl0bkt1dFFMRk5KbTd6RXBDTEhJZUVWaExueVk1VnpnOXpRTjZkdndLa1NzTjZYU2lJY2x5Qk1ydApVUlV2OGNhVTkza3Z0cVc4ejYvSnI5U3dNUkc1N2t3MlBVOCtjMDNHM3djakk3U1JVb053VFk3M3k3WUZ3R1RQYnRob2o5YUVlZ0FzCllFbFVhL2VJa0FDS1JmU1pHREk1aUhBbGh6NU5NVmdLbUl5dzl4U1RieW1PTUREeGUwMkQwc2dSRjhKRjc4aVU2SEw3V1NwVTMwaDYKRnZRYW9HcTU0OExvM1RTR1JrOW5VRFI2czRFQnJKc3JTbFhRVVRlMzNGNUR4OS9GTGl2b1JCVkRWOWZRS1ZmUUlaMThoeG82V2FTbwpnazYyV2xCbkRaMXlCUjIvV3ZDV0dqcmxDanFCMVhkRERaMXlCWjJnV3ZDR0dqcmxDanFGYWtGZE5YVEtGWFNvV3ZBT05YVEs3OUcxCjFUZlgwRjBJcnFDQ2p2VXNicXloVTY2Z1EvYVllZzJkSUNGWm9jTHMxVTVLV2R2eU9mRHlsVUNpWkJjTlE1S005QmJVRTdkZDJ1cWwKU0pHUGZIVXliRUZzL1VvRUI3UkdlajhLd3QxZTM5THh6dmdLNG9TTnErbVVjQW5ZVlZncnl1N3hEaTNGWVBQZmVVY3RpQ0k4NDFNQwpwcHlIcFcxK0tOYW5Wam1uZVg2aXlOV2x2R2dudWwvL2tHUXFIMVVpVjBwRGtpcVpnM1BSVlRTblNkY1VSYWtnWEc2UHZnS3FrNjVVCkVDcC9URElaUkgvWVdDNW9qRzRHdXpsZTFmT2FsYWRtMEZqc0pzeUUxQnNZUkp3TTF2eldpREZWN0NaM2JDUDBrZz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJMUlyZDVQMVQ1UU1IbnJZc0tpYURDRnhUTlRla0tLcG1FRlFLYXdNbVRNSENMMDlzSnNSZXJmSlJtODRhazdxY1hpU1ZjbTd2SkNDZgpRcW1yeEJUVnZ0VTFWaDJxKy9hQVdGSm4yYXc5ZGhrNlV3c2NycUk3VVpnRS9MWXRtVFI3eFlsVlNkYnNrcTBDNDFsSzRqb3dWYk5MCmN4M2ZXUzBIWGtjZDMwU3Qvc1VzQ0ZySmw2YkpGOEVvbTlLWE9mRDJ4NlZaYmxBWnFSSk4rZlZUellIWG5FVXdLd2tqbUpMcnA3V08KTDNwUXE0bFJZZ1poZGpvRWRyY0swUU4zOGlGWG1hSUhtRHJIYTZlWU1NQjZJOFZVeTBTMVQ1TFRhRmRSVEJqNEpYTGRubGVZNkZRVwpKZFpMVkhKcHMyVXZZcjZYYmhZcjZrM3B1S1Z5dlp3SWhBeUFsVW00STB1QUdCRURIUDR6VXBUdXNnWm5qL1g0Vkp5OVJWbXpzeWNIClFKeWplQVVJdGF0UndEcXp0MnBvSzVXN2FvV0dtUHIrd3BnMDBtSUJTOXpVZ3d3R3haQTByRXFUY2VJdTJGNnBSczZnVXVhczRjZ1QKVFVqNXloUERoWHVsWUVmR2p4ZXAvSTdDU1FQSmVTY2pjcHo4VzlFWDNwRndsU2hMU2FWQTdrTHJ5RmRFblNSMzh5dnNzWXBXaWVmawpYZFllKzYzb0MrL0lsOW1KTTRpdXB0TlNKZEpnRUxrUzhpeWdNeUlqR0pLZ0hoa01pdEFUL2xBWWtsQ1kxWGN4QlRvRnRRNUpPVHRkCnZTaE9hVWppdXp0OG92Z3ZWWkowajRqTUU0ckkzSmlsQml4aGk0YUlESDNHcDFLZVk0bjdiTGRFWkhqKy90UHRFUmtBd0tHUTNhR2oKRE8yYWlNeEZ0ZUR0RVJsWWhpYUt5TWhWcEtyVjV3VjFSV1FrNC94UEdzcHp0Qlhud0JJOUlIRHFuS3d0ZlErMjZzQ0V4bktWTTVibAo4OGExR011QmROdHQxc0FNeWpXSnUrcDlNaG5ndXNRYjl2c0VkY0RVNGc2Vm5GNHRaV2hYSnJEejl4ZFlRQ1lmWGRKUlBuYVJ1aUJaCkxhaFdWNmM3YWZZeVF4WFYxV25NMTFPc3ErT1ZqaXBVQ3FzSFFhdUtsMVR4cEpkbld5cW02cjFlM2tVS3Y5TzQwVEUxNzNLSlNmZXAKaDROWTdwRlRwMXdQcC8vK3NXdnE0YVN5b0YvLzdsMFBkME9kaFk1Nk9LVU0xZnZWdzhHbzlZMFNxS0VlVHVKR1VOa2lydXZyNFFUWgpVTXh2N1BldWh4UGZPMHBWeE4yN0hrNzFsb0M3MU1NSlRxdzBwRnBlVnc4bjlzWGtqblZnSmR2dGxmVndnN3RiVGlRQUpjeUpsTE10CnRlUkVkcmFhY2lMVlpQKzRDdHhxQnVSUmdzVHQxZWdJamtkdDlUWEMwVkpISWd1RnNzY1FuRHRVY2wxa01pamt3S3RyTkZoY0p4OFEKdTh4MzV2V3lrY2w0dHU5ZEZ4blA5cjNLUW9pRVVEYmEwKzNjSW9aYzhSRXZxbkNyR0FKZ2l0ZktTT2t4V1RIczdiU0tvWUkxRHVtdAp6MStVWkxUNzNBYU00T2dUSDVsNlpBRG5Mb1dRQmIrMlhVd1ZqdnlWd0RLM2FjbWxXVjllQ2F4Nkc1b3dLaTI2cmRIcHVZeGh3ZUl6CjVZdWRWQjFxdGlJVk4xMmJJTUticzl6RndsZFZwSTVOUXcxRnBCb3JVc2VtaVphUWdVcXAzMTBxVWovMzk2bEloWER1VVpFSzY4VnUKcjBpRlVPNVJrUXJoYUxzR1d1UVNTK1gxSVFHUnZ6UlZkNUtSMDB1dnZsQU11emVMb2FnVVRscVAzYnNVRHVYeksyYjAzS01VVG5KZAo3bDRLZDMzY1VrZ3haZDlkaDE5NVF5a2MvdzRpVkF6M2o1VENTVVFWL29GU09PbjRtRWIvcktka0dQSlZBZi8rWktYQ3A2VnNycXFXCkcrR0Y5bGplcCtJV2FVMzBncUJDbWlLS0dnTElFSmo4elhZNmJaaUxTNGIxSGk3d3F0RjdHbzl3bEc3bkJhcGNhc3Zqc0tnWE40dnIKNmo1bHI4TVJidzVNZEZSaWUrRGtGM2FOODBqaG85Y0F0YmhNdlN4TDY4NTRXRERQemtVeVpza015RmJxdFpqeG4reEE4NU90ZEtTSAoyb1lYK3NWREpsc090NTd5T2Q4MG44LzVxN0FKd2R1TzJZNnNhK0dRNllpVHNCWkxxdW9NZWtsMGpkS0hmTjFadEJGLzViT1hzTmd0Ck1YMnA4NFBQUEtTaHBjdWFORzdsS3V5Q3ZhNVNzZHZNTDRzVUkxczVwUW83Njh0UGZTeUhkS1NBdE9TTjhaQ0thN0hpN2lNdkNpY3UKZGd0Mmx6VzJNNkdvQk16a1VDcDJ3MzBpcE1KK2ZJay91UXE3c05tOEQ1OC81WXJkUHBTcXp2NlVLK3kyclpZc1VsdHR2cHpKSVowcgo5K05yZE9XUkZwOC9TckxrdFd3Q2lhRWMwb2F3d2c2dEtoQllldGJvRTgzbmNZM3ZKYVRlbzZJS2dqZURuelZORUlQT1YrbzlldXVzCmhTVU0wV2ZHUzBxUjU3VjRRMVdLSFd0SXVSVmFzTzROTlJmQkdkR3JiWHVmMGg3MURGVngxRVMrajlWZXc1QjQ1MklLZzFKTFRsWEwKODZDODEzdDJrcE5xT3lKeHA0cUc2SkpTSnpsZFViaVBndVlVU1pWcVNIUW5wSTY4UHJVbWNvcDVmZHI1U2FXSm5PejhwUHErcVRVYgowVG8vOVY0RG1vbXUxbWRFZEpmYURmM2p0TXRMYVM3ZmlFZzIzVlZyQXpybFNPODExWFRYeFdIMFZ0TkorUUZNTDg3N1ZkTnB2Qi9tCnhtbzZxWmlnV0Y1dXI2YVRxcVc3dHZKUnZwcE9LaFl2bldsL1N6V2RnQ3kwekVyZVAzWlROWjBVS0pVYlFxNm9wcnR5UjlaWlRTZDEKVHNQdWxYZXJwcE9xcGVQNysvZXBwcE9xcGRPWTI2T2ptazRxMXM1MFlMOWZOWjNVNnFKSTcxMnI2YVNNRzM3dTZIMnE2YVJxNldSdQptNytobXU1eVNFdXp2S1YwYlRXZGxIRnFzTjY3bWs1cS9TU3lvVzZzcGhPRFV1MHBmRlUxblp4dGVkOXFPdTBVdTZXYVRnUktmQ1orCnAycTZxeWltdTVwT3NjYnFidFYwMHJYVjk2Nm1rd0lBc055NW1rN3F0RVNVQTMrSGFqb3A5U0QwWHU5UlRhZHlNbktuYWpyMS9lVWUKMVhSU3hPQ3M4WHRWMDZsVmN0Mm5tazZxbGs2Mkg5L3REcUNYY3dBRi9jVjBYZDBrMzhYcnNrbWx1RGVIeHNLbnZZcXdDNGdmM01yMQpzcm0rWDkzRmtFN3dsT2ZlL2Vya3JRdHRkRHE1N2Jyb3hGRkprQWtKYXpKVkRRdU5MQ0FvVUpDcGVwWWJsR2hJV2xXQmh1NXl3b09wCnE0WUVLUVlHcGF2dHN0S1FwQk1wWkRXTUFwMFUyaTdMcUV5NGl3azlvalQrZEJSNVJBRkxiS2ZTMkZ3NU1zZDJ5MUpxZEhkem16dmUKUFZjYVRmSnIydHpKZHBlcmFxcFYwdGptVHE2U1Mxc2huYVlFQ2VYOFpLN1IzVzFyVmVydHRIU1pVWXhTYVdwenB4cFJoSVM1dWMwZApiY01vTjdxN3VjMGRWZnVtMHVoTzIrSFJybnFIZTY0QzZUYXV2SWphNnl5cWQwdFIybFU1ay92cVdoNHd0VWVuVnY2VVBlV0JEZXBVCmN3L1YrQk9XMFVIbldURUNyNm1RVGt0R3MwRzl3bEEraVVOemZTSEFvcEIycUNPSkRGSkhOdlFuNUdSdEhiWUFack5kWEU4RUwwMlYKbmJQVTNWQnk1ejJsMTc4ckM3c0UyVkNBcVZUeXdUVm5Rd0ZRcXZsam1yT2hBREJ0R2QzS2ljMUk5OTJsOHZIMm94RFlVVkRoT25CNgo5VFhDMGRUYlZRb0tMN1ByN1I0U2lLQmNWTEpMVmdxcjE3SWpZSm9LYStWNlFJZ0xhOTgybDRXMWI1djczUW9JZ2QybGtUSGlNVEJhCkxjcU12M2ZKa3JJbFJVclZmcTlLT2RTdXl5TmRXSWwzbVVHdDZJbkw1VkRQajZ1N1ZLYXdOeC9ydHlRdVFkWE85K3BnQ0I2OHloOFIKYTViOXRxNUcxWEtuYjdEeDJzM21CQVZGS2F0VEI1dzczQkpBd2JtMVd6VUZoUkZDcVJzTzllV3F0alVVTXVnNjRYVzZKY1N3bzZHUQpRVk1FL3VZT2QweDlwVnlQdXl2RVVDSzU0dHErMWZvNjNDbFZQdDRnaGd5ajBSM3U3dElwVDdXZVNGdW52RnZyaWRoT2ViZUxvVUtICk8yRmRrcGI2a0dzNjNDbjFlNFU5N3ZSM3VOTjZxem1zZnJxOXNQWnp6NWs1Y3Q2cjVzSmFBRXpkekRGb01YU28zblRYRmRhS0t4OUQKdDhhUFlIMWhYYkljV3Q4OVZ3ak9GWHJ6NG80SUNPY3U5WngxVEpzdnBncEh2aFpXVk1Sa1VMdG1BclhMMDFQZkxsWEV4RDhWaFFyQwpjeUdHY1lmS1FtaUlhekY5M3pTV01Xa3BZckkvRHNTZUtHOFgwMUxHSkp5a1N1eVVBOFd1aTJ3WlU5eWhxVUpkMFcxbnBUTHUwQ0tWCldvcVk3SThic2ZGOXJWL1oxVlhFSkpkQkJIc25LdXkwK2d6RExsM0RlOE90L0NMRFVPS3l4RzZQNmdGeGp4clh2RS8rVmpIb3YranQKU0tlcjNTTWlwYnc5MXJ2ZjFWUTlkUHAycHhyWG51elZWUHB0bU1sUlY3dEhsVTU1L2l0clhIbnl5YVpoYUtoNlZxOXhCVVBTWFBXcwpWT05LUjREZ1F0UWkwdmdZMHc5V3ZKVWZXNFVWbnMvNW45NEw1dm5UbThGYVNMdmZXby9ia1RzTVBwVmVVWFVmMmYwa1o0UTlaU3BRCkd3OEs3ZkppeC9RblFSSGVjN3JKUnlxb2h6TllqK1pPNzVVZnFoTDJZWXZuUDNveTlYQk8rU0s4dzNrVXg0VTZXVlNHaDdua2F2L0MKWmt1azZmeVNLOEw3bEVVSzVtSWlkd0hadVdJbGM3OHRpOVJlbWZnV2NuM1luQnhTdHBLTEkvQnJpT0FoRlphbUhlMFJHOWRITUNDcQpjblE2MGg5ckthUUdLeVN3dU9lY29BeHZMSzc5NDVPM21ueVZRUm8yVzRQUGhSRVhneFZYeEEwVmtKWXNZWG1rcFlhNUw0VVU5WDJMCmxnV2xsV0trVGFVK2d0V09QTkppc1UwS01yc0FXZ3Q4N21FLzBVV1laOWVqWDdqNk11OEY4cGpzZS96NlNtemtpbWMxUUhUSHQ2Y2kKdDAyQ09mZUNZcU9UUGF5aG96M0N6VE92RUNkbU56cU5hWk9BcUNFbk9nMFNkREZUVDV6VXNEY0QySS9pd2liVkNJbDhTZEpsYXBYcwprQ0FueXc4cXI2VzBTYjJ3Nlhpdnppd29vS3ZTbVVWckpLbWduRm9sdTNRWG5Wa0FnamM5S1doS1ZYZWlteWR2cUVwVHlkQ2txR1RRCnhrK2lReSs5ODJPajFyRHVUbmVYUlpraFhXUnBpZVZGTTlGMVpXa1pyRXFEa284VDZ4c1MwSmJ5ZVZyMGVDNXlZMFhxcXZpWmNna1AKcjR1WFBWT3VjeVVBN0lxR3E2OVZZckNENHIwdWIreDVqZHB1T05SUWphUVlYdFo2eWpNbzNuSVRMVmVUZUhGbDNGWEZidEpIMXJydQp0UjRVcjR3c0MyL1JoRldBdDE1Q0szVlhuR3k5bUpyWGNubFhuSUlESkIwZkV5YU5TQnl4amtsZC9RN2tOUXg1Tng5NVRJbzF6TFduCjNsVEJuWndjb3hNcjlmWjFncEdKNC96cUlUdlVqMDgycWhMY1h5UVFyS0lIL2ZhSVRPOG4rMk5YL25CUVh5SFpSVCtMRzlxeUtWY3kKNmFxeGl1bTY1NEEzSkZIOXk2eWtGRHRXdGNZRlErS2w2dE9uMVR5cDFWa0t1TEpvS09YazMzT2xVQXFvMXRKWVpmMjRrL2RaU2IxUQpSek16aVBvYVMzYVowUUZNcll1T1hWeGRxd0JNdEt2Y1JqSFZXaDd0a3hTZVhONUlNZFYrT3Jvb1ZndCt5Z0M3S0JlV3NnNXBpbDFaCkJhaTFCbER6UFNSeUJXS2FhZ0FWc3RNMVZBRnFyUUc4akNmcnFRTFVXZ1BJditGUWZ4V2cxaHBBRkxXK3VncFF3Q29LSHFZNEQxWmYKRmFEV0drQklzZXVyQURsNkt1c05ZWTJWM2lwQXJUV0FySTk4VlJXZ3pKQXVhZ0Q1NTVYVWVDNW5kWHRUUHUwZDJXNXB5c2VieXovWQpsTzhpcXZDUE5PVlQ2OGgybjZaOFZNMklzb0Z5ZTFNK2cxWENLcng3VTc3TC9zai9SRk0rK2Y3STkyektwNmwvNVMxTitmaFJCVGlvCnNPeWdhQktwbFFiTGQvVzcvVzZvcDN2Y0RhV3hyNSttdTZGdTd1dkhtOW9kN29hUzYrdW5MMC9wMnI1K3lsMzlycm9iU3FLdm4zSlUKU05vVDE5L1hUNXI1Rk8rR3VxS3Zuem9uMzZPdm4zSm1DQnU1dXJHdm4xb2wxNTBDdW9wZC9ReFdYUUZkMmI1K3lsTVR4UzZ1N3VzbgpHTWhGVjc4ck9vQkk5dlZUbnBCVWh1bzFmZjBreXhHVmJqWFhUaGpObGJLU2QwRmYwZGRQK2VZdjlrejh4cjUraWh0ZEh1MWlkK2pyCnB4d1cxblVEbFVKZlAyVlhWeklMK29xK2ZsSmxrcHpvM2RhUDd3NDE3N3I2K2lsRGdYSCtlL1QxVXo1UU1XaUdjMHZodTdnaTlkcSsKZmhLbUpxK3JINzg3QTNaRFh6K1JHR0xDcm42Q083dDBsNmRnYkY4LzFiclh1L1QxVSs3cXgzTHlqWDM5bEJPdWVSV3BOL1gxNCtxMwpwSGhSZE0vVjFYMzlsQW1JTE5nNzlQVlRrTFhqS25DbmZud3VaU2lhKy9HcHRKUFQzSS92cHI1K0xCUko4ZEZielhIUjEwK2g3a0UxCjIzYXV0Nitmc2lVUGJ6eTRSMTgvdVQyOGMzbVNlRjM5bGdaem5qbEpWQk5EdGI1K3l1Zk53aXlDNi92NkNha3Q5Zz09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJRnEvdHg2Y3ZTVU8rSDk4ZHhJZnQ2bmQ3UHo0dFJVeHF0emRjNW1yb2E4VW5ya2k5cmErZklMQjkwZFdQcWhpNnZhOGZXeXFsMUZmMAo1cjUreW1hT0RJL3A3dXVuM05YdjVsdWI2TDUrTjhiNk5QYjEwMUQzZW9lK2ZzcGQvWFQzNDd1cUNsZWtMUy83K2wxZkRNL3I2c2ZECmNsTmZ2OHRRTXIrcm45d3RaM3I3K2ltbmQ0bDJzYXY3K2lrbk9vbGlTbGYzOVpOWUYxNVhQK1Y3NGJUMzlicytiaW1rbVA2YUp4bS8KOG9hK2ZwemlrdXJxZDNYMm9LaXZueUpIOERxQTNOYlhUOWt3cEx6WDIvdjZLUmZFMGp2eXpYMzloSk1VZC9XN3NNYzAzMlFsN09zbgpid1JSTm96S1RWWWErL3Bwc21GdTd1dkhYOG5MQXh5RjZsb1orWlR1NjZlOE9TaFdjZDZ0SUpiYTkvMFMyME5meVVaN2FVdG5mSWp2CmxWcFNOeXFLOWtyd3JYeG9Wem54WGxTMktPQW1oc2U0MDV2VTQ0NWZCMC9GcG1oVURzRU82ZHR5aE1IOEwvTXdTODluZ1NkYU84TGEKTitLNE5JSnQ1Y25vL25pMllQN3VLa0s5Qk91cGpKWjZxdUxESEJ1amYvcXhDd1lPeXljeXRmNktOZG91aC9mUGFjL3RjMWg1OFp3MQo3OCs1c1BGelBBdUFUNk9NTlJSTmxHMzFsMzB6dEYvMVBneldTTWdYbkViclpOZFg5UjJNb1ZvcE9NbzFWKzMwN0swZWZsKzI1cytoCmZjY3gvN2E4WjUzQndxK3AxYXl1NHV0a2R6dFBPemI3WVdSdlBXUTI0V2ZqKzNQYWJnazRTbUhyOTBlbDRqd3Z6Ui9CN2VjOFRzcysKcXUxTXRWdHZIYVBQUGNnWWljVys0MDRHN0JtTXpGVnpHUGs5ZmNKS1lWdnpjQmpGSElkajlMMXlOQS9DazJObzh2SEtWbHEyM0k5Kwo3N3N2VUl1Wm1MSzNYLy9oK0xtRnplWmlacXEyK2xLSENPcExFLzNhTUphZE5uYlFvV1piUU1KK2t1Y1JiblZsTTdVbktXSWhZb0RwCm5teHdYUUlXbyt4Y1VVV2pZMnlmdjVvNy9WYktzam40U1JzUlhKek42NWx4Qml0Sm41amlVT1Bac3dzK3czeTErZ2JWSkJxelpLdGwKeFN6ekdmTDNYN2RDazMwbkVoOHd0ZGM4cjJpT2k3ZnlwZ2JVbWhRZFVtRnIvbXl3RnZya3ZJc2FhT2EvU3MxdStEay9NMlg4cCtSVAp4bitjSmNpWWVmVmFmTThFQm9Cc20xUnAzZWwrWnN0aDR3VEE2ZXdac0ZUN1RBZnVYa1ZnS1dOdmtFblVqQWMwcSt6ZkZuSnl0dnIrClBuUVhPOTB5L0FRbS9McjJ3YUpkRCtYV3AwSzlBL0tjTVAvSkFiTVJoaWRLRS90RFBqdnpDWGVnMkRHZ1NHUUQvb3k0VU5VdlVEaVYKSGZqejBZTTBqTmtPZHJHUEEvZ2k3Mk4rU1BySklsR1BBckJsekYzd1dNK2tvMXlwNEI3NzhxODRYZTFqbUQ4VmNhS0J3c0Y5NGE0OApuc2ovalAwNGVQRG81ajBZVy9LUEJpdnpLTy9sSGhHNWZqdk5QS2l3K0twOGZGNUxaY2tRNXRrSlZNWjJoWmRxcGpIN25adDcyV0RGClN3UGZsSDNrNWNFcDdlSVkvTTVQMjBlaFp3eFdHZjNoNVhDTmdIOFNGT3pKd01yQ2JyaXBWeVk3SEZyb0RTOHZCbXNoN0NrSFRMZHEKK0tpWHB1RThoTlBBWUhMWUFaK1dYOUNmTk5ocC93T24xNnBIdXYzMXQxVUFQRzE1MEZQQ0dZN1BHS1F0SDRNRmMxcWlHTEYrc3hZOQpNU2ZnRHF4ajRmdjdJd2Q5TEVjeHcwWDhpQTc1QUloK2l0a2w0QW56eHJWRHhIZ1FjYi81bUhTM0U0ZHdxaDE4emthK1pnNG9kVG5DCjJYOHpJbGFCRk90OUVPekNqd0tXWkhKRURwMGZWY0o1bnEyWXFiOTd1QVVqQ3VWSHlOUHZQb3BFaFg0Rmh4dTVoU2hNWDBMMHAzV2IKb0QrZFB3YTBiVWtVbmVNaC9ZbFloQ0NJRUFWaTJNOUFpSDBmck5mWUVzTjFEYU4rUFR3M2FkZ2paNWZsdGo3Qkc4MG9NZnRGRHhERgora0ZXS2llOHVZemVqWG00MHlSZ21rSXp0L1l0WE5uWDZYZXRVSzBZM3poRndoN201Tm5nZ0kwWGMrQk9Fbk1CNjdreVo4Yno1VWZUCkNOaUlkaENOTm1CTGZJVG9UNFh4RC90ZWdINnY4NWNWaitZbDMvb2lDMnZUTk50c2Zkb04xdUxFbTNtSG0zVVM1YlBSc24vYWhTbFoKRkpvT3drTmdtMEJ2c21ydFVtOHl1eGpVbkNLOUdmOTYyVHFLNzduNlU4NjVQc0JMQ3NMbFhCSHp0UzcxcHJqdHNCMU5IS2kxS0xxaQoxc21lOFFIMVQwK2p1M0pUcTVyckRvNllmMlh5K1g5TXI3YUFKZlozd2pDSDcwanJNYUF0VVNJNGlyZUNQNE5PVk9hTUZ6OHo4TSs0Ckd3YzdSd29xUXVnak13di9DWDdUZ1NxbDdFTjJIVXk5OGFGSUJGUkNNTkpROXN2RWxNcVl4T3JEQjFVSHpIM2R3em9MYkROaUZyVHEKb25TSUoyK2RzTjk1Nk8vYU9PVHBLdUNOU0tlY0g2MnlNNEZXcldGWWFGS0ZDMUhGK2Rvd3R3OGpPM254QW5VZlFORGJvcTBGVHYwegpDNy9ER2ZPc0ZxRXBVU0s5NkJYZ3lUWDM0TSthbjRFTmRTa2NEZENsbkxLbU5CK1lDMUNwWHMyc1JGbDRGeWNNZEhSRjNLQVdOYlIrCjlQL1NjWDdFYU5qY0ZQSnpaaVg2RHQ1YTBNQm0xazBCdkg1dzg4MGNCQ0taZnVNQnFIeDZmRUlBeTFSNzZLTHkrcG9uYUdDMkJSZEoKMUk3d096UDRMbnFtckV4Ym4zamltZHFVMlpWOEtiSUFHcGNBemhRQU1CY0tSTmxXNWx1OWdPZmQ4RVlFdEFiQUVIOG1ZSGtyMkpnOApaVGY4NUdPLzg3UGZnWFh4dk8yaGZYQ2dtQjJ3ZlorM2k5azQyd3YyekI0eEp0WWp3VmhYd0NpYldKcWZ3R0FJbHNROW8ra05BMDZJCnVtNGladVI2UjhOZTVFYnFKb29lc2pQcHZ0M3I5alBmQndGYko3MHVPV2ZWemR4dFVmN3ltWDdiWUFadUVpRDFlWkZZWDE1NlFWZjQKTWhRTFJGNVd0TlZMbkhITzRFWE53cUhiWUdKR3c3c0R4TVVqd2NjaE1PRmRRY0tTd0pudnp3YW93ZzRSd2VjVkVBRVYxMUZFR1BDSgpRQ3dhaUFqd1FaOVBBbEhyY2lEeEhBbTRmdUpDSW95VHp4d1JBaDlyUE1wclp2VjFuUGo0U0duRC8wdVdCT0srMVQ2Tys3dkdyYjlJCkVlR1E2MzFvNHdOME5UOWk3TE9SSTRIQmFnd2VQMndzRWJvS2ZBQXZMR1dvK0NuRlNySUF1RHlsM2s2Wkc5VjRFVWFKNWNZQTVVWEwKTklhSEs2ZkJSRWhRT09LMmFTd2xWNE5iQzBvcWxhYngrcm03amFkZmgzdFdXNHBBYUtNRUFERS9LazhEQUhCWkVDY3pJTkw1L1ZZQQpZbXRVSDRPaWRqcVlFQUJFc2Q0ZkJ3SXIxM3RUL3B1OVQ1Wi9lN3lGeDhpdnNqRG04dnAzTTQraDY4QnY0N0g1NlJZUUFNRGFlRE9QCmRUWTM4bGh2Szhkam1rRk1EdW9NMGhmdzJNVTBsamVTOG5WMTVuanNPaEM5b1FaeDdUTFJIbWtRRTNuZHAyME1jeDRwS1lycFhZM2UKVWwzaStXTUFjN2tZeGVyRzFlaHR6aUpTTWhUVFBvMkRpbXhJalVGUW01RHFuVTIzTVhiZmJGYmZrWW5qSndmQ2FPOHMzL2dnSnBOcgo5d0IyUjU3TTkycVVVQm5EVWtZK3dSaDQybEtKRXBQVjhWWnRPZG1jTk94RUN2dlFaSDlXSG9PNnRweWNqZncvcDJhVDRFK2JtWWwwCmxpa2ZFaDdMeFhoaGI4ZUhLd2hXM3pPY2RZMmUvYTVtOU5TN0w1UVJDSDdEUmNxNjBPTUw4MXd6bEU4eFAyV2l5QzVsWXpnRG5qYzUKdHZ4OVVoRVErMk12Uk5XOVFxOTc2SUcraXBlSlZuNGU0WjlzQUs1c1p6ODVLTWR1Zmx4QmE3eE0rYnZ3NE4rRHZHNzZ6N3pQUjduYgpURTR2OUxCWmR6eVE3dXh5ak5zYmRMREJSQ2MvZUJrN3NjRzlxcHYvb09abXc0WlZyeUNpNkJsRTJCQk1sY1AzRmJBa0Zsa0czd3ZPCkVZWU9VWlFlWGR4My9PaG9LZS9oUFJCRVIwc1ZId3dPdVFEdFB0MlVyLzExL0FXOFUycmk2TTlBdW0wRWY3NW1PTmhET216eFNpSnEKdTRDL01NOGh0d0NlMDBBdm9SWUZWdnZMQWNyTDY0c2Z4alk4QU1IZUF2NXNJN0F1S2lUaWYvMElzSkZKdHp0bFRwcmhVemRBNEFORwpTNi9HaFc1SERKWVJvSEc0N3kzNHgwbGJmTEd4dHcxV01sa00vdkxDNjFUd3ZkUnQ4SS9mbVRONDlyUW9Cc2E0eVV0QmxJSkg1U21wClFHUnV1a1FRblUvUlJpeGFJalAyZWF0UW1UMGFhYSs2MThVWlZtbnhBMzdPOVJEc2xYU0VxRGNPc2xNZkF5eW5HTDFna3hjVUV2SFEKNGZWSjIwOEhlU2RkREovVUtrN3c2UU9uNDFHVEFaR0tWUWl3VnBOeGdQazBDMUlSZUErOXRLc21ndWhGUitUZ3p5NFRsRnQ5WU15bgpBY2R0RThLZXJxWG8wYXhtQWQ2RGdURXdwT09TOWIyVm5jdnFMNHk4dGtBdUdvZ201Z1BuZDM0WkpsOXk2Nmc1S2hWcG9TYkUvVU5sCmJIT2htbFBYeHlLZG9vdzd5Q3luQVlhWDhJd0RmQnJqektjWkZ3S2Uwa0drMDIvd1lqU2hVNGQwT1ZPSlNNZHJxcE9qdWpWR0JVTnQKdzJNRWV5cTVRMGoydjhLMExIWXhNM0pTbGVPRCtxT0RMTVYweEFmMVJ3ZWw3dXRUaXcvcWp3NUNpdW1ORCtxUERsS2NyQzgreUk4TwpadjhyWllqaUVmd0IvZU52bnRmenc4dmhaL0d6ZWZBWUVnWi90b0xqN2Mxc1N4N204OWI4ZjUwSzIrbjViNzQ1UGNRZi9ObTNmS1VTCkRSWG0wKzFzL29DU21VS2pDS3MydkRTMzB2ek5QOUlXaEJoUnNEeFgrSTZWVm1WejgzRmMrTVo2S1o1WVVGYktyclUzZXBhL1piQ2gKdXFjK3RLdCtHRDBFK1daMGxJOGUrR2VQMnVVcElra2VyQ0t0NURJWDVvZmN1ZWl1MTk1RnB3UW9HQk1idFVwZ2V5aSs1K2JOalArNApTUHJMMlg2MTBDYzdieG4vQ2RzeUFVRjRuaW5JSHVDZGVrc2NrZ05ENW1Rek9wUFBRYVBYYisvQXcvSUNtSXVsRVBVYlBjNU1Cbjc3ClpIUTNUTTl3ZnMvd1Fkcm96UVptMEdvb0cxMTdNekRMeHZzb1gxWFlDRGN0Y3R4V1J3Nkh6SEsvYnBHYU5WRG54N2huc1VpaFl3TmEKWDBMeFF5Y1pqUGo1MFo4d3BkRkJmL3FkSStQQVNWc0Q5ajFzSVZOMjAzL0dIVjdLa0tHQ3p2Q0dHQnJFZHp0K1lpUzVnbkduajN3OQpydU1va3p2SU5GaGxqeks1QnplYkNkUXg4SUNQK3g4d0UxQmFIbTBvL0hObWdzR3F2SzNmeDB5Z1F0dWFJVjVwSmdCRGh6VVUvamt6CkFSbzZqS0h3ejVrSllDNnNvZkRQbVFrOGVabitjMmFDd2NvWkNtSXpRVGtqaE01Q3JNWGxOZ2RhL2J1K3lETjBwWmEvd0pYcURJcEEKS2I1M2pjN252b1BXbStmNEsxU3BaYUJMMHkyajgyZWRNbm8zalUrb1MyTndYN0NJM1N0cXdSNTdsS29EUXBOMUlJSGpEalhmZHZSTAo0NzJYU2Z3SU9yakVEelpYdzA1NWYwQmJ1bWx0Q1U5WWVOcVMzc3J0aEQxai9FTExEclZsM3VkQnQwOFRYK2RreGYvVFBma293K1BICkUzZWp0QzJneDRwUFVrWG53Tzk2cm9wV0h6NW9BeXlSQTZkYUtUMzJSWXVBU0sraWJCU2dVdUhJSFBBNFk1VmJtemFrMFBuQ09CdUcKNyt5VjRrN0lHM1ZrakNBRE5FcWQ1dU9sdGlQS1dqRzBTVlJhQkNIRm5uMjBSV0xKK0F0UHlTMEc0THhnbFBMa2FleFNtMEFMQWY1eAo4NnA2MkRSVzdpUVNLSE51OTBXTWVGR2d3WjcvaTFxcVVtbHB4VUZJZERqSXBlVlI1NHRlL3ZuaU5Gb1ZuUzhhalNjSEd6ODd2bDZjCkx3WmRKVit3bkdXTzJ4NjNUT3Ntd1VHb3Q4NGRCUkdPV0M4Z09BZ05tNDNXbktYQWdKamFMazVTYzM0ZUFKenNsbkIwNEVzbk5OQmkKRHpnZG1leituMVM3aUl3RHlHZ3B4T2ZNZDUwOTgxM3Y0UDk1MmJpNVJBdkVjZ0p6bnc2dENNT09Xa04rU0lYQkNkSG5udlQxK3E3TQp1MnZNSEVFaU81bytmVE5ZeFllUTZGYjA2NDhnblZLbmJ6QWtwUG44RGI4NVZMZUs3aGdpWkFJOElxQlRZWm9JUVQ5SEJEaWFGZThJCkV0MmtKMGNDSm9TYWpxODJEQkZjb2lOSTc0MUgwWThuN25oZWU5aVZ4d2ZwK090SncxRTBuV0lvZFJoTkZ4WlRWRVRueDFLc3BIQ2EKVFpkRUFnQmc5VFZ5NHdVSTFOUk4yeGlvMUp4TEVLZ2gxUzNUUUFuOGpFanhqclIxVEtNZDkrdEtETGlVU2svczVMcUZwNkZMN1JZQgpvQ21tbFJMUUEvZXFUZVB5YUo5ZkpJTjdkbmxNY2hvYVNRbFRLSEVFNEdncWxYTnV0cFdId1FvVEh2YThONEhiNzZUZkpIOXh0MFRUCkQ1clB4MFA3alR3R0RCVEhiVHhXQy9vNEFMSThwZ2hpa01GdTVUSDcwbkViajJFYnB3eVBhUVpSYzN0VUdZUVBBQT09DQoJXV0+DQoJPCFbQ0RBVEFbDQoJVFVMSVk0T0k3NWJWQVA3OG8xOEtBT0F4clNCS05aTzZ1RW9Eb05OWW9jR25XZmRKajJIZ2t5WWxIQU82bEZ4MU5ZQ0JxU3J4U21PQQpTY3k3K0cyckFhMWFaVktpL1VWcEdtVXZxVTgyTHNZUXJ1SFFHcjlCTnNycEpxRXloa1BLai9OMjVITHc1R3NuZVNBbUErdHRlOEJrCjRYWXpPN0xpS0JUR3NNUGxtVW8wQmxyMnhhT1lXaUxlbXpoaTZuMzAzWlprQmhQY0pVVmNkZ3lzdGtRSm55SGNnWXhFcnY4WVFoLzEKR3FmQlF0bzk3QmJPNDFJdC8vVVVNOU1oZzFDR2lTUlJJZjZuUDJHZU9sVTZZYkJLRlUvY3UzUUNZcmtzbnRCZE9zR0dRNldQSmRHNgphRHFZRkI5TDhoN3M4Z3YyZ1NpbUR3T296ekNxd1B1MjdXQ1BEWjQ5L0FlTElGdVRBTDFsNENWQnZVS2x6RVAxQURrWm5RTnNrYVRDClB4c3V3ZEVwa0IxSTJ3YnRlZ01tanRQZWhxZU96c2R6a0M4aEt6WDhkQkZGdWdMSjFxREJUaHR0QkRiQWl6S1dod2Y2Z05ucERWTFcKZU12TFA3aExaeEs2ay9BdkRtRllMNTV3bHNrazVTWGREV0tqOXNpZE5ZUk9yNVo1NmFzZlhSaXMyYmV6NWFmWW43M0NrNk1XenZFdgo4WFVlWk9pWVJHOFFZRU9SUVg3QlJEckNzc3E3bDY2YWFPU2hYbm4zTTJ6L2pxR0VoaS9vY3I3alRIVHBIWjBTd05PRTl3RDdLVWlCCktDYit3dURQUGcxeE9FVUwzMmVQOGZzWSt3bm5yejY4VTV5dFNlZ0grTFVVaFpXRmlUTCtocGk1OU1PeVZTcHV1Um9WQTMzQkNWZXYKd3E5UytmSnhTQU0yNXdzazZoZjRwL2NPb3c5Zk9QdUo0TDlYWHdUaGQwRnVORUQybWZFMHlGR25seSs0bzA2U0xOWTdVU2E0K1JmQwo1cE40R0hLb2o0MVQ5S2txeVA4ZjYvc2ZHK3ZiL2xmS2tBQ1RxZUQ0c0xpWjhjOGNEVllyK09adGZqcnY0QXVoWVc2KytOblV4ditaCkh3ejRBL1VmQnY2RC8wWmlEemdSZlNCQ0lmQkhDSDVibXhnYzZOMEgzUGxRQTd2TDBKODluQW8vMDlQUGRqTSsvT2NoRHIvcTFtdnQKU3VFaC9rQzlPd1R2Smg0Y1lEVFlFTHdOSGpuaFFlY1FqSEJvd0I2eTRIL2RmeHZPNEQvczRjV0FQV0QwQU9CLzNiRUJvMGNFM3ZvUAorT01KZlBnRlgvMzdBY2NlNmc4Zlg5akRESXk4MnpRRVlnOWVISC80b3o1Z0QydjBJZW9MRVRFd2t3RDRnTWRDNEl1SFFBVCtPelVFCjRQK3REYmd2R01FSUhQNkJVKzlqR0FFL0FoaFRBNDZBcnRIL0U3NVFNQWJlb2wveDRvR0hBUG9Yd0lxZ0R3QW5BRUE5aVZHL0lCN28KZ1UwTjM0WTJuSjh2QWdrS1VhQVpnYUdqMmMwTTRRZUg4Nkg3emxBQ3ZBZkhoZm5Da1ZnNEdrQWZNSUlnd0ljWWhvZURERmxFTk9LSQpnZEhFaU5HMGlJaHBFVUcwaUZDMGlQQnBFWUVFaUhDMGlOR2t3R2hTNEdKU0VJZ1VCRU1LZ2lNRlF3Q1dGQmhOaWhnOTNiWTBIOUg4CkFjakFYLzlMYWxtSDdHU3BqM0M2MUNlRkNZTVhxQ2xiaDRxVEJvL3BhVk9mRkNZT1FESlRCeDhWSm04ZHlvbE85bkFZVXgrQnZEeGsKejZmdFEzTjhQTTBQUC85Nzduend2NTBPUDVzRkpUMUFvbWJieVh5WXJjU0dMNVBqL1BDditXeFluZjluU0wxMDVBa1pEdDdkYkRjUApnWENBNWk4dHNzYnlFZUE0aW84SW5HWWtQQVlKRytYb2lzY1FZZkVZeFVwNGpNOUw0QytjL2czOFFPQVVMeEVFeFV0RVFFUlNJZ2hKCkN2NmxlQWw4WUhnSlBvbFJ2NEJvNmNIOXR3c1d3V2daZ3RFeWVGUk1FRXJONExTZXdRV0tCa2VhQnYwR0VZVFdNd1N0WndpeG5pR1EKbmlFWVBVTndlb1lJMEVUZ0VRVC9KOFFMVFpuK2lMSHlwVGh0SkdGbzRqd1JrNW82RWl3MGVlcVR3dlFwRVVNRVlFUk1qZ1QvdzRRcwpFS0I1S2tEUVBCWEFJSEVESEhFREdDSnVBS040S29EeGVTb0F3YUxmd0hkeEJBZHhWU0JBY1ZVZ0tDSnJJQVRKQ3Y2bHVBcDhZTGdxClFKRVIvb0loYVNEdzN5OW1BVWJ2QkJpOVE4UkVKQ0VvdlVQUWVvY1E2QjBDNlIzNEc0WWt0T1lKMEpvbklOWThBYVI1QW96bUNYQ2EKSnhDa3ljQWpDZkZQQ0JxYU5QMFJad1ZOY2VKSTBJaVlVTkNrSjQ4RUxFQXdvcVpFQUVyVUVBa1lVWk1qd3Y5dFVhdmxLRnNXV0xiSQo0dlFDLzlyNk9sN01XNGZ4enhwWXRvdmorRi96aC9GbXN6Mk5UL01kZVBLd09NeVBwKzFoL25CY2J2OE52d0UvWVY0SE52SUxhZmcvCndrbmVyZz09DQoJXV0+DQo8L2k6cGdmPg0KPC9zdmc+DQo=); - -webkit-background-size: cover; - -moz-background-size: cover; - background-size: cover; - position: relative; - display: inline-block; - vertical-align: top; - overflow: hidden; - vertical-align: middle; - width: 1.3rem; - height: 1.3rem; -} -#download-btn { - display: none; -} -/* Content */ -#content { - width: 100%; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 20px; -} -/* Code */ -#content section.code { - display: none; - background: #FFF; - border: 1px solid #E0E0E0; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 15px; - font-size: 12px; - -moz-border-radius: 1px; - -webkit-border-radius: 1px; - border-radius: 1px; - font-weight: 400; -} -article.component { - padding: 0 0 10px; -} -#content section.code h3 { - margin: 0; - font-size: 12px; - color: #000; - font-weight: 400; -} -#content header h2 { - font-weight: 300; - margin: 10px 0 25px; - font-size: 20px; - position: relative; - display: inline-block; - padding-right: 10px; -} -body.light #content header h2 { - background: #F4F4F4; -} -body.dark #content header h2 { - background: #4A4D4E; -} -#content header{ - position: relative; -} -#content header:before { - content: ''; - width: 100%; - display: block; - position: absolute; - left: 0; - top: 23px; -} -body.light #content header:before { - border-bottom: 1px solid #E0E0E0; -} -body.dark #content header:before { - border-bottom: 1px solid #58595A; -} -#content pre { - padding: 0; - margin: 2px 0 10px; -} -.showcode { - margin: 10px 0; -} -.showcode a, section.examples a { - color: #288edf; - text-decoration: none; -} -.showcode a:hover, section.examples a:hover { - text-decoration: underline; -} -section.examples ul { - margin: 0 0 20px; - padding: 0 0 0 20px; -} -section.examples h4 { - margin-bottom: 5px; -} -section.examples li { - color: #58595A; -} -/* Side Nav */ -#sideNav { - background: #4A4D4E; - position: absolute; - width: 100%; - z-index: 1; - height: 100%; - left: 0; -} -#sideNav ul { - list-style: none; - margin: 0; - padding: 0; -} -#sideNav li a { - color: #F0F1F1; - display: block; - height: 46px; - font-size: 16px; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 12px 0 0 20px; - text-decoration: none; -} -#sideNav nav.site, #sideNav .combo { - border-bottom: 1px solid #58595A; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 10px; - display: block; -} -#pageNav li { - border-bottom: 1px solid #58595A; -} - -select.docNav { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - background: #595B5B; - background-image: none; - box-shadow: 0 0 0 1px #303233; - border: none; - border-top: 2px solid #666767; - color: #FFF; - text-shadow: 0 -1px 0 #000; - overflow: hidden; - font-size: 14px; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 20px; - -webkit-appearance: none; - -moz-appearance: button; -} -@media screen and (min-width: 650px) { - #site.open { - transform: translate3d(0, 0, 0); - -webkit-transform: translate3d(0, 0, 0); - } - #main-header nav { - display: inline-block; - position: absolute; - right: 0; - top: 40px; - } - #main-header ul { - list-style: none; - } - #main-header nav li { - display: inline-block; - margin: 0 18px; - } - #main-header nav li#download-btn { - display: none; - } - #main-header nav li a { - text-decoration: none; - font-size: 20px; - color: #7F7F7F; - } - #main-header nav li.selected a { - color: #373435; - } - #slide-menu-button{ - display: none; - } - #main-header hgroup { - text-align: left; - position: absolute; - display: inline-block; - top: 24px; - } - #main-header hgroup h1 { - font-size: 60px; - } - #main-header hgroup p { - font-size: 15px; - } - #main-header { - color: #373435; - background: #fff; - height: 148px; - } - #content { - padding-left: 240px; - } - /* Side Nav */ - #sideNav { - background: transparent; - width: 220px; - z-index: 20; - left: 10px; - top: 150px; - height: auto; - } - #sideNav nav.site { - display: none; - } - #sideNav .combo { - border-bottom: none; - padding: 36px 0; - } - #sideNav li a { - padding: 12px 0 0 10px; - } - body.light #sideNav li a { - color: #797B7B; - } - body.light #pageNav li { - border-bottom: 1px solid #E0E0E0; - } - select.docNav { - background: #595B5B; - box-shadow: 0 0 0 1px #303233; - border: none; - border-top: 2px solid #666767; - color: #FFF; - text-shadow: 0 -1px 0 #000; - padding: 3px 20px 4px 8px; - -webkit-appearance: none; - } - body.light select.docNav { - box-shadow: 0 0 0 1px #949696; - background: #DDE1E1; - border-top: 1px solid #FFF; - color: #454545; - text-shadow: 0 -1px 0 #FFF; - width: 192px; - } -} -@media screen and (min-width: 880px) { - #content { - padding-left: 300px; - } - #sideNav li a { - display: block; - height: 60px; - padding: 22px 0 0 10px; - text-decoration: none; - } - #content header h2 { - font-size: 28px; - } - #content header:before { - top: 30px; - } - section.code div { - display: inline-block; - width: 48%; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - section.code div:first-child { - padding-right: 5px; - } - section.code div:last-child { - padding-left: 5px; - } - .max-width { - max-width: 1180px; - position: relative; - margin: 0 auto; - } - header#main-header .max-width { - top: -10px; - } - #main-header nav li a { - font-size: 22px; - } - #main-header nav { - display: inline-block; - } - - #main-header nav li { - margin: 0 25px; - } - #main-header nav li:last-child { - margin-right: 0; - } -} -@media screen and (min-width: 940px) { - #main-header nav li#download-btn { - display: inline-block; - } - #main-header nav li a#download-btn{ - position:relative; - top: -15px; - display:inline-block; - box-sizing:border-box; - -moz-box-sizing:border-box; - background-clip:padding-box; - font:inherit; - background:transparent; - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; - text-overflow:ellipsis; - white-space:nowrap; - overflow:hidden; - font-size:16px; - line-height:3rem; - letter-spacing:1px; - color:#454545; - text-shadow:0 1px #fff; - vertical-align:top; - background-color:#e5e9e8; - box-shadow:inset 0 1px #fff; - border:1px solid #a5a8a8; - border-radius:6px; - margin:0; - padding:0 1.25rem; - } - #main-header nav li a#download-btn, #main-header nav li a#download-btn:hover { - border:1px solid #143250; - background-color:#288edf; - box-shadow:inset 0 1px rgba(255,255,255,0.36); - color:#fff; - font-weight:500; - text-shadow:0 -1px rgba(0,0,0,0.36); - } - #main-header nav li a#download-btn:hover { - background-color:#2f9cf3; - } - #main-header nav li a#download-btn:active, #main-header nav li a#download-btn.is-active { - background-color:#0380e8; - box-shadow:inset 0 1px rgba(0,0,0,0.12); - } - #main-header nav li a#download-btn:disabled, #main-header nav li a#download-btn.is-disabled { - opacity:.3; - cursor:default; - pointer-events:none; - } -} - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/prism.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/prism.css deleted file mode 100644 index b508b615..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/prism.css +++ /dev/null @@ -1,168 +0,0 @@ -/** - * prism.js Twilight theme - * Based (more or less) on the Twilight theme originally of Textmate fame. - * @author Remy Bach - */ -code[class*="language-"], -pre[class*="language-"] { - color: white; - direction: ltr; - font-family: source-code-pro, Consolas, Monaco, 'Andale Mono', monospace; - text-align: left; - text-shadow: 0 -.1em .2em black; - white-space: pre; - word-spacing: normal; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -pre[class*="language-"], -:not(pre) > code[class*="language-"] { - background:#181818; -} - -/* Code blocks */ -pre[class*="language-"] { - margin: .5em 0; - overflow: auto; -} -pre[class*="language-"]::selection { /* Safari */ - background:hsl(200, 4%, 16%); /* #282A2B */ -} -pre[class*="language-"]::selection { /* Firefox */ - background:hsl(200, 4%, 16%); /* #282A2B */ -} - -/* Inline code */ -:not(pre) > code[class*="language-"] { - border-radius: .3em; - border: .13em solid hsl(0,0%,33%); /* #545454 */ - box-shadow: 1px 1px .3em -.1em black inset; - padding: .15em .2em .05em; -} - -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: hsl(0, 0%, 47%); /* #777777 */ -} - -.token.punctuation { - opacity: .7; -} - -.namespace { - opacity: .7; -} - -.token.tag, -.token.boolean, -.token.number { - color: hsl(14, 58%, 55%); /* #CF6A4C */ -} - -.token.keyword, -.token.property, -.token.selector { - color:hsl(53, 89%, 79%); /* #F9EE98 */ -} -.token.attr-name, -.token.attr-value, -.token.string, -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color:hsl(76, 21%, 52%); /* #8F9D6A */ -} - -.token.atrule { - color:hsl(218, 22%, 55%); /* #7587A6 */ -} - -.token.regex, -.token.important { - color: hsl(42, 75%, 65%); /* #E9C062 */ -} - -.token.important { - font-weight: bold; -} - -.token.entity { - cursor: help; -} -pre[data-line] { - padding: 1em 0 1em 3em; - position: relative; -} - -/* Markup */ -.language-markup .token.tag, -.language-markup .token.attr-name, -.language-markup .token.punctuation { - color: hsl(33, 33%, 52%); /* #AC885B */ -} - -/* Text Selection colour */ -::selection { - background: hsla(0,0%,93%,0.15); /* #EDEDED */ -} -::-moz-selection { - background: hsla(0,0%,93%,0.15); /* #EDEDED */ -} - -/* Make the tokens sit above the line highlight so the colours don't look faded. */ -.token { - position:relative; - z-index:1; -} -.line-highlight { - background: -moz-linear-gradient(left, hsla(0, 0%, 33%,.1) 70%, hsla(0, 0%, 33%,0)); /* #545454 */ - background: -o-linear-gradient(left, hsla(0, 0%, 33%,.1) 70%, hsla(0, 0%, 33%,0)); /* #545454 */ - background: -webkit-linear-gradient(left, hsla(0, 0%, 33%,.1) 70%, hsla(0, 0%, 33%,0)); /* #545454 */ - background: hsla(0, 0%, 33%, 0.25); /* #545454 */ - background: linear-gradient(left, hsla(0, 0%, 33%,.1) 70%, hsla(0, 0%, 33%,0)); /* #545454 */ - border-bottom:1px dashed hsl(0, 0%, 33%); /* #545454 */ - border-top:1px dashed hsl(0, 0%, 33%); /* #545454 */ - left: 0; - line-height: inherit; - margin-top: 0.75em; /* Same as .prism’s padding-top */ - padding: inherit 0; - pointer-events: none; - position: absolute; - right: 0; - white-space: pre; - z-index:0; -} -.line-highlight:before, -.line-highlight[data-end]:after { - background-color: hsl(215, 15%, 59%); /* #8794A6 */ - border-radius: 999px; - box-shadow: 0 1px white; - color: hsl(24, 20%, 95%); /* #F5F2F0 */ - content: attr(data-start); - font: bold 65%/1.5 sans-serif; - left: .6em; - min-width: 1em; - padding: 0 .5em; - position: absolute; - text-align: center; - text-shadow: none; - top: .4em; - vertical-align: .3em; -} -.line-highlight[data-end]:after { - bottom: .4em; - content: attr(data-end); - top: auto; -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/topcoat-desktop-light.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/topcoat-desktop-light.css deleted file mode 100644 index 6735055a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/css/topcoat-desktop-light.css +++ /dev/null @@ -1,3700 +0,0 @@ -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.button-bar { - display: table; - table-layout: fixed; - white-space: nowrap; - margin: 0; - padding: 0; -} - -.button-bar__item { - display: table-cell; - width: auto; - border-radius: 0; -} - -.button-bar__item > input { - position: absolute; - overflow: hidden; - padding: 0; - border: 0; - opacity: 0.001; - z-index: 1; - vertical-align: top; - outline: none; -} - -.button-bar__button { - border-radius: inherit; -} - -.button-bar__item:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.button, -.topcoat-button, -.topcoat-button--quiet, -.topcoat-button--large, -.topcoat-button--large--quiet, -.topcoat-button--cta, -.topcoat-button--large--cta, -.topcoat-button-bar__button, -.topcoat-button-bar__button--large { - position: relative; - display: inline-block; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - text-decoration: none; -} - -.button--quiet { - background: transparent; - border: 1px solid transparent; - box-shadow: none; -} - -.button--disabled, -.topcoat-button:disabled, -.topcoat-button--quiet:disabled, -.topcoat-button--large:disabled, -.topcoat-button--large--quiet:disabled, -.topcoat-button--cta:disabled, -.topcoat-button--large--cta:disabled, -.topcoat-button-bar__button:disabled, -.topcoat-button-bar__button--large:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -.topcoat-button, -.topcoat-button--quiet, -.topcoat-button--large, -.topcoat-button--large--quiet, -.topcoat-button--cta, -.topcoat-button--large--cta, -.topcoat-button-bar__button, -.topcoat-button-bar__button--large { - padding: 0 1.25rem; - font-size: 16px; - line-height: 3rem; - letter-spacing: 1px; - color: #454545; - text-shadow: 0 1px #fff; - vertical-align: top; - background-color: #e5e9e8; - box-shadow: inset 0 1px #fff; - border: 1px solid #a5a8a8; - border-radius: 6px; -} - -.topcoat-button:hover, -.topcoat-button--quiet:hover, -.topcoat-button--large:hover, -.topcoat-button--large--quiet:hover, -.topcoat-button-bar__button:hover, -.topcoat-button-bar__button--large:hover { - background-color: #edf1f1; -} - -.topcoat-button:active, -.topcoat-button--large:active, -.topcoat-button-bar__button:active, -.topcoat-button-bar__button--large:active, -:checked + .topcoat-button-bar__button { - background-color: #d3d7d7; - box-shadow: inset 0 1px rgba(0,0,0,0.12); -} - -.topcoat-button:focus, -.topcoat-button--quiet:focus, -.topcoat-button--large:focus, -.topcoat-button--large--quiet:focus, -.topcoat-button--cta:focus, -.topcoat-button--large--cta:focus, -.topcoat-button-bar__button:focus, -.topcoat-button-bar__button--large:focus { - border: 1px solid #0940fd; - box-shadow: 0 0 0 2px #6fb5f1; - outline: 0; -} - -.topcoat-button--quiet { - background: transparent; - border: 1px solid transparent; - box-shadow: none; -} - -.topcoat-button--quiet:hover, -.topcoat-button--large--quiet:hover { - text-shadow: 0 1px #fff; - border: 1px solid #a5a8a8; - box-shadow: inset 0 1px #fff; -} - -.topcoat-button--quiet:active, -.topcoat-button--large--quiet:active { - color: #454545; - text-shadow: 0 1px #fff; - background-color: #d3d7d7; - border: 1px solid #a5a8a8; - box-shadow: inset 0 1px rgba(0,0,0,0.12); -} - -.topcoat-button--large, -.topcoat-button--large--quiet, -.topcoat-button-bar__button--large { - font-size: 1.3rem; - font-weight: 400; - line-height: 4.375rem; - padding: 0 1.25rem; -} - -.topcoat-button--large--quiet { - background: transparent; - border: 1px solid transparent; - box-shadow: none; -} - -.topcoat-button--cta, -.topcoat-button--large--cta { - border: 1px solid #143250; - background-color: #288edf; - box-shadow: inset 0 1px rgba(255,255,255,0.36); - color: #fff; - font-weight: 500; - text-shadow: 0 -1px rgba(0,0,0,0.36); -} - -.topcoat-button--cta:hover, -.topcoat-button--large--cta:hover { - background-color: #509bef; -} - -.topcoat-button--cta:active, -.topcoat-button--large--cta:active { - background-color: #0380e8; - box-shadow: inset 0 1px rgba(0,0,0,0.12); -} - -.topcoat-button--large--cta { - font-size: 1.3rem; - font-weight: 400; - line-height: 4.375rem; - padding: 0 1.25rem; -} - -.button-bar, -.topcoat-button-bar { - display: table; - table-layout: fixed; - white-space: nowrap; - margin: 0; - padding: 0; -} - -.button-bar__item, -.topcoat-button-bar__item { - display: table-cell; - width: auto; - border-radius: 0; -} - -.button-bar__item > input, -.topcoat-button-bar__item > input { - position: absolute; - overflow: hidden; - padding: 0; - border: 0; - opacity: 0.001; - z-index: 1; - vertical-align: top; - outline: none; -} - -.button-bar__button { - border-radius: inherit; -} - -.button-bar__item:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/* topdoc - name: Button Bar - description: Component of grouped buttons - modifiers: - :disabled: Disabled state - markup: -
            -
            - -
            -
            - -
            -
            - -
            -
            - examples: - mobile button bar: http://codepen.io/Topcoat/pen/kdKyg - tags: - - desktop - - light - - dark - - mobile - - button - - group - - bar -*/ - -.topcoat-button-bar > .topcoat-button-bar__item:first-child { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} - -.topcoat-button-bar > .topcoat-button-bar__item:last-child { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; -} - -.topcoat-button-bar__item:first-child > .topcoat-button-bar__button, -.topcoat-button-bar__item:first-child > .topcoat-button-bar__button--large { - border-right: none; -} - -.topcoat-button-bar__item:last-child > .topcoat-button-bar__button, -.topcoat-button-bar__item:last-child > .topcoat-button-bar__button--large { - border-left: none; -} - -.topcoat-button-bar__button { - border-radius: inherit; -} - -.topcoat-button-bar__button:focus, -.topcoat-button-bar__button--large:focus { - z-index: 1; -} - -/* topdoc - name: Large Button Bar - description: A button bar, only larger - modifiers: - :disabled: Disabled state - markup: -
            -
            - -
            -
            - -
            -
            - -
            -
            - tags: - - desktop - - light - - dark - - mobile - - button - - group - - bar - - large -*/ - -.topcoat-button-bar__button--large { - border-radius: inherit; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.button { - position: relative; - display: inline-block; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - text-decoration: none; -} - -.button--quiet { - background: transparent; - border: 1px solid transparent; - box-shadow: none; -} - -.button--disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.button, -.topcoat-button, -.topcoat-button--quiet, -.topcoat-button--large, -.topcoat-button--large--quiet, -.topcoat-button--cta, -.topcoat-button--large--cta { - position: relative; - display: inline-block; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - text-decoration: none; -} - -.button--quiet { - background: transparent; - border: 1px solid transparent; - box-shadow: none; -} - -.button--disabled, -.topcoat-button:disabled, -.topcoat-button--quiet:disabled, -.topcoat-button--large:disabled, -.topcoat-button--large--quiet:disabled, -.topcoat-button--cta:disabled, -.topcoat-button--large--cta:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/* topdoc - name: Button - description: A simple button - modifiers: - :active: Active state - :disabled: Disabled state - :hover: Hover state - :focus: Focused - markup: - - - examples: - mobile button: http://codepen.io/Topcoat/pen/DpKtf - tags: - - desktop - - light - - mobile - - button -*/ - -.topcoat-button, -.topcoat-button--quiet, -.topcoat-button--large, -.topcoat-button--large--quiet, -.topcoat-button--cta, -.topcoat-button--large--cta { - padding: 0 1.25rem; - font-size: 16px; - line-height: 3rem; - letter-spacing: 1px; - color: #454545; - text-shadow: 0 1px #fff; - vertical-align: top; - background-color: #e5e9e8; - box-shadow: inset 0 1px #fff; - border: 1px solid #a5a8a8; - border-radius: 6px; -} - -.topcoat-button:hover, -.topcoat-button--quiet:hover, -.topcoat-button--large:hover, -.topcoat-button--large--quiet:hover { - background-color: #edf1f1; -} - -.topcoat-button:active, -.topcoat-button--large:active { - background-color: #d3d7d7; - box-shadow: inset 0 1px rgba(0,0,0,0.12); -} - -.topcoat-button:focus, -.topcoat-button--quiet:focus, -.topcoat-button--large:focus, -.topcoat-button--large--quiet:focus, -.topcoat-button--cta:focus, -.topcoat-button--large--cta:focus { - border: 1px solid #0940fd; - box-shadow: 0 0 0 2px #6fb5f1; - outline: 0; -} - -/* topdoc - name: Quiet Button - description: A simple, yet quiet button - modifiers: - :active: Quiet button active state - :disabled: Disabled state - :hover: Hover state - :focus: Focused - markup: - - - tags: - - desktop - - light - - mobile - - button - - quiet -*/ - -.topcoat-button--quiet { - background: transparent; - border: 1px solid transparent; - box-shadow: none; -} - -.topcoat-button--quiet:hover, -.topcoat-button--large--quiet:hover { - text-shadow: 0 1px #fff; - border: 1px solid #a5a8a8; - box-shadow: inset 0 1px #fff; -} - -.topcoat-button--quiet:active, -.topcoat-button--large--quiet:active { - color: #454545; - text-shadow: 0 1px #fff; - background-color: #d3d7d7; - border: 1px solid #a5a8a8; - box-shadow: inset 0 1px rgba(0,0,0,0.12); -} - -/* topdoc - name: Large Button - description: A big ol button - modifiers: - :active: Active state - :disabled: Disabled state - :hover: Hover state - :focus: Focused - markup: - - - tags: - - desktop - - light - - mobile - - button - - large -*/ - -.topcoat-button--large, -.topcoat-button--large--quiet { - font-size: 1.3rem; - font-weight: 400; - line-height: 4.375rem; - padding: 0 1.25rem; -} - -/* topdoc - name: Large Quiet Button - description: A large, yet quiet button - modifiers: - :active: Active state - :disabled: Disabled state - :hover: Hover state - :focus: Focused - markup: - - - tags: - - desktop - - light - - mobile - - button - - large - - quiet -*/ - -.topcoat-button--large--quiet { - background: transparent; - border: 1px solid transparent; - box-shadow: none; -} - -/* topdoc - name: Call To Action Button - description: A CALL TO ARMS, er, ACTION! - modifiers: - :active: Active state - :disabled: Disabled state - :hover: Hover state - :focus: Focused - markup: - - - tags: - - desktop - - light - - mobile - - button - - call to action -*/ - -.topcoat-button--cta, -.topcoat-button--large--cta { - border: 1px solid #143250; - background-color: #288edf; - box-shadow: inset 0 1px rgba(255,255,255,0.36); - color: #fff; - font-weight: 500; - text-shadow: 0 -1px rgba(0,0,0,0.36); -} - -.topcoat-button--cta:hover, -.topcoat-button--large--cta:hover { - background-color: #509bef; -} - -.topcoat-button--cta:active, -.topcoat-button--large--cta:active { - background-color: #0380e8; - box-shadow: inset 0 1px rgba(0,0,0,0.12); -} - -/* topdoc - name: Large Call To Action Button - description: Like call to action, but bigger - modifiers: - :active: Active state - :disabled: Disabled state - :hover: Hover state - :focus: Focused - markup: - - - tags: - - desktop - - light - - mobile - - button - - large - - call to action -*/ - -.topcoat-button--large--cta { - font-size: 1.3rem; - font-weight: 400; - line-height: 4.375rem; - padding: 0 1.25rem; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -input[type="checkbox"] { - position: absolute; - overflow: hidden; - padding: 0; - border: 0; - opacity: 0.001; - z-index: 1; - vertical-align: top; - outline: none; -} - -.checkbox { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - position: relative; - display: inline-block; - vertical-align: top; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.checkbox__label { - position: relative; - display: inline-block; - vertical-align: top; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.checkbox--disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -.checkbox:before, -.checkbox:after { - content: ''; - position: absolute; -} - -.checkbox:before { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -input[type="checkbox"] { - position: absolute; - overflow: hidden; - padding: 0; - border: 0; - opacity: 0.001; - z-index: 1; - vertical-align: top; - outline: none; -} - -.checkbox, -.topcoat-checkbox__checkmark { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - position: relative; - display: inline-block; - vertical-align: top; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.checkbox__label, -.topcoat-checkbox { - position: relative; - display: inline-block; - vertical-align: top; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.checkbox--disabled, -input[type="checkbox"]:disabled + .topcoat-checkbox__checkmark { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -.checkbox:before, -.checkbox:after, -.topcoat-checkbox__checkmark:before, -.topcoat-checkbox__checkmark:after { - content: ''; - position: absolute; -} - -.checkbox:before, -.topcoat-checkbox__checkmark:before { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; -} - -/* topdoc - name: Checkbox - description: Default skin for Topcoat checkbox - modifiers: - :focus: Focus state - :disabled: Disabled state - markup: - -
            -
            - - examples: - mobile checkbox: http://codepen.io/Topcoat/pen/piHcs - tags: - - desktop - - light - - mobile - - checkbox -*/ - -.topcoat-checkbox__checkmark { - height: 2rem; -} - -input[type="checkbox"] { - height: 2rem; - width: 2rem; - margin-top: 0; - margin-right: -2rem; - margin-bottom: -2rem; - margin-left: 0; -} - -input[type="checkbox"]:checked + .topcoat-checkbox__checkmark:after { - opacity: 1; -} - -.topcoat-checkbox { - line-height: 2rem; -} - -.topcoat-checkbox__checkmark:before { - width: 2rem; - height: 2rem; - background: #e5e9e8; - border: 1px solid #a5a8a8; - border-radius: 3px; - box-shadow: inset 0 1px #fff; -} - -.topcoat-checkbox__checkmark { - width: 2rem; - height: 2rem; -} - -.topcoat-checkbox__checkmark:after { - top: 1px; - left: 2px; - opacity: 0; - width: 28px; - height: 11px; - background: transparent; - border: 7px solid #666; - border-width: 7px; - border-top: none; - border-right: none; - border-radius: 2px; - -webkit-transform: rotate(-50deg); - -ms-transform: rotate(-50deg); - transform: rotate(-50deg); -} - -input[type="checkbox"]:focus + .topcoat-checkbox__checkmark:before { - border: 1px solid #0940fd; - box-shadow: 0 0 0 2px #6fb5f1; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.button, -.topcoat-icon-button, -.topcoat-icon-button--quiet, -.topcoat-icon-button--large, -.topcoat-icon-button--large--quiet { - position: relative; - display: inline-block; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - text-decoration: none; -} - -.button--quiet { - background: transparent; - border: 1px solid transparent; - box-shadow: none; -} - -.button--disabled, -.topcoat-icon-button:disabled, -.topcoat-icon-button--quiet:disabled, -.topcoat-icon-button--large:disabled, -.topcoat-icon-button--large--quiet:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/* topdoc - name: Icon Button - description: Like button, but it has an icon. - modifiers: - :active: Active state - :disabled: Disabled state - :hover: Hover state - :focus: Focused - markup: - - - tags: - - desktop - - light - - mobile - - button - - icon -*/ - -.topcoat-icon-button, -.topcoat-icon-button--quiet, -.topcoat-icon-button--large, -.topcoat-icon-button--large--quiet { - padding: 0 0.75rem; - line-height: 3rem; - letter-spacing: 1px; - color: #454545; - text-shadow: 0 1px #fff; - vertical-align: baseline; - background-color: #e5e9e8; - box-shadow: inset 0 1px #fff; - border: 1px solid #a5a8a8; - border-radius: 6px; -} - -.topcoat-icon-button:hover, -.topcoat-icon-button--quiet:hover, -.topcoat-icon-button--large:hover, -.topcoat-icon-button--large--quiet:hover { - background-color: #edf1f1; -} - -.topcoat-icon-button:active { - background-color: #d3d7d7; - box-shadow: inset 0 1px rgba(0,0,0,0.12); -} - -.topcoat-icon-button:focus, -.topcoat-icon-button--quiet:focus, -.topcoat-icon-button--quiet:hover:focus, -.topcoat-icon-button--large:focus, -.topcoat-icon-button--large--quiet:focus, -.topcoat-icon-button--large--quiet:hover:focus { - border: 1px solid #0940fd; - box-shadow: 0 0 0 2px #6fb5f1; - outline: 0; -} - -/* topdoc - name: Quiet Icon Button - description: Like quiet button, but it has an icon. - modifiers: - :active: Active state - :disabled: Disabled state - :hover: Hover state - :focus: Focused - markup: - - - tags: - - desktop - - light - - mobile - - button - - icon - - quiet -*/ - -.topcoat-icon-button--quiet { - background: transparent; - border: 1px solid transparent; - box-shadow: none; -} - -.topcoat-icon-button--quiet:hover, -.topcoat-icon-button--large--quiet:hover { - text-shadow: 0 1px #fff; - border: 1px solid #a5a8a8; - box-shadow: inset 0 1px #fff; -} - -.topcoat-icon-button--quiet:active, -.topcoat-icon-button--large--quiet:active { - color: #454545; - text-shadow: 0 1px #fff; - background-color: #d3d7d7; - border: 1px solid #a5a8a8; - box-shadow: inset 0 1px rgba(0,0,0,0.12); -} - -/* topdoc - name: Large Icon Button - description: Like large button, but it has an icon. - modifiers: - :active: Active state - :disabled: Disabled state - :hover: Hover state - :focus: Focused - markup: - - - tags: - - desktop - - light - - mobile - - button - - icon - - large -*/ - -.topcoat-icon-button--large, -.topcoat-icon-button--large--quiet { - width: 4.375rem; - height: 4.375rem; - line-height: 4.375rem; -} - -.topcoat-icon-button--large:active { - background-color: #d3d7d7; - box-shadow: inset 0 1px rgba(0,0,0,0.12); -} - -/* topdoc - name: Large Quiet Icon Button - description: Like large button, but it has an icon and this one is quiet. - modifiers: - :active: Active state - :disabled: Disabled state - :hover: Hover state - markup: - - - tags: - - desktop - - light - - mobile - - button - - icon - - large - - quiet -*/ - -.topcoat-icon-button--large--quiet { - background: transparent; - border: 1px solid transparent; - box-shadow: none; -} - -.topcoat-icon, -.topcoat-icon--large { - position: relative; - display: inline-block; - vertical-align: top; - overflow: hidden; - width: 1.62rem; - height: 1.62rem; - vertical-align: middle; - top: -1px; -} - -.topcoat-icon--large { - width: 2.499999998125rem; - height: 2.499999998125rem; - top: -2px; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.input { - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - vertical-align: top; - outline: none; -} - -.input:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.list { - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - overflow: auto; - -webkit-overflow-scrolling: touch; -} - -.list__header { - margin: 0; -} - -.list__container { - padding: 0; - margin: 0; - list-style-type: none; -} - -.list__item { - margin: 0; - padding: 0; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.list, -.topcoat-list { - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - overflow: auto; - -webkit-overflow-scrolling: touch; -} - -.list__header, -.topcoat-list__header { - margin: 0; -} - -.list__container, -.topcoat-list__container { - padding: 0; - margin: 0; - list-style-type: none; -} - -.list__item, -.topcoat-list__item { - margin: 0; - padding: 0; -} - -/* topdoc - name: List - description: Topcoat default list skin - markup: -
            -

            Category

            -
              -
            • - Item -
            • -
            • - Item -
            • -
            • - Item -
            • -
            -
            - tags: - - mobile - - list -*/ - -.topcoat-list { - border-top: 1px solid #bcbfbf; - border-bottom: 1px solid #eff1f1; - background-color: #dfe2e2; -} - -.topcoat-list__header { - padding: 4px 20px; - font-size: 0.9em; - font-weight: 400; - background-color: #cccfcf; - color: #656565; - text-shadow: 0 1px 0 rgba(255,255,255,0.5); - border-top: 1px solid rgba(255,255,255,0.5); - border-bottom: 1px solid rgba(255,255,255,0.23); -} - -.topcoat-list__container { - border-top: 1px solid #bcbfbf; - color: #454545; -} - -.topcoat-list__item { - padding: 1.25rem; - border-top: 1px solid #eff1f1; - border-bottom: 1px solid #bcbfbf; -} - -.topcoat-list__item:first-child { - border-top: 1px solid rgba(0,0,0,0.05); -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.navigation-bar { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - white-space: nowrap; - overflow: hidden; - word-spacing: 0; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.navigation-bar__item { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - position: relative; - display: inline-block; - vertical-align: top; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; -} - -.navigation-bar__title { - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.navigation-bar, -.topcoat-navigation-bar { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - white-space: nowrap; - overflow: hidden; - word-spacing: 0; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.navigation-bar__item, -.topcoat-navigation-bar__item { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - position: relative; - display: inline-block; - vertical-align: top; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; -} - -.navigation-bar__title, -.topcoat-navigation-bar__title { - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} - -/* topdoc - name: Navigation Bar - description: A place where navigation goes to drink - markup: -
            -
            -

            Header

            -
            -
            - tags: - - desktop - - light - - mobile - - navigation - - bar -*/ - -.topcoat-navigation-bar { - height: 4.375rem; - padding-left: 1rem; - padding-right: 1rem; - background: #e5e9e8; - color: #000; - box-shadow: inset 0 -1px #b9bcbc, 0 1px #d4d6d6; -} - -.topcoat-navigation-bar__item { - margin: 0; - line-height: 4.375rem; - vertical-align: top; -} - -.topcoat-navigation-bar__title { - font-size: 1.3rem; - font-weight: 400; - color: #000; -} - -/* -Copyright 2012 Adobe Systems Inc.; -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.notification { - position: relative; - display: inline-block; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - text-decoration: none; -} - -/* -Copyright 2012 Adobe Systems Inc.; -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.notification, -.topcoat-notification { - position: relative; - display: inline-block; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - text-decoration: none; -} - -/* topdoc - name: Notification - description: Notification badge - markup: - 1 - tags: - - desktop - - light - - mobile - - notification -*/ - -.topcoat-notification { - padding: 0.15em 0.5em 0.2em; - border-radius: 2px; - background-color: #ec514e; - color: #fff; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -input[type="radio"] { - position: absolute; - overflow: hidden; - padding: 0; - border: 0; - opacity: 0.001; - z-index: 1; - vertical-align: top; - outline: none; -} - -.radio-button { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - position: relative; - display: inline-block; - vertical-align: top; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.radio-button__label { - position: relative; - display: inline-block; - vertical-align: top; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.radio-button:before, -.radio-button:after { - content: ''; - position: absolute; - border-radius: 100%; -} - -.radio-button:after { - top: 50%; - left: 50%; - -webkit-transform: translate(-50%, -50%); - -ms-transform: translate(-50%, -50%); - transform: translate(-50%, -50%); -} - -.radio-button:before { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; -} - -.radio-button--disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -input[type="radio"] { - position: absolute; - overflow: hidden; - padding: 0; - border: 0; - opacity: 0.001; - z-index: 1; - vertical-align: top; - outline: none; -} - -.radio-button, -.topcoat-radio-button__checkmark { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - position: relative; - display: inline-block; - vertical-align: top; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.radio-button__label, -.topcoat-radio-button { - position: relative; - display: inline-block; - vertical-align: top; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.radio-button:before, -.radio-button:after, -.topcoat-radio-button__checkmark:before, -.topcoat-radio-button__checkmark:after { - content: ''; - position: absolute; - border-radius: 100%; -} - -.radio-button:after, -.topcoat-radio-button__checkmark:after { - top: 50%; - left: 50%; - -webkit-transform: translate(-50%, -50%); - -ms-transform: translate(-50%, -50%); - transform: translate(-50%, -50%); -} - -.radio-button:before, -.topcoat-radio-button__checkmark:before { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; -} - -.radio-button--disabled, -input[type="radio"]:disabled + .topcoat-radio-button__checkmark { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/* topdoc - name: Radio Button - description: A button that can play music, but usually just plays ads. - modifiers: - markup: - - -
            -
            - - -
            -
            - - -
            -
            - - - examples: - Mobile Radio Button: http://codepen.io/Topcoat/pen/HDcJj - tags: - - desktop - - light - - mobile - - Radio -*/ - -input[type="radio"] { - height: 1.875rem; - width: 1.875rem; - margin-top: 0; - margin-right: -1.875rem; - margin-bottom: -1.875rem; - margin-left: 0; -} - -input[type="radio"]:checked + .topcoat-radio-button__checkmark:after { - opacity: 1; -} - -.topcoat-radio-button { - color: #454545; - line-height: 1.875rem; -} - -.topcoat-radio-button__checkmark:before { - width: 1.875rem; - height: 1.875rem; - background: #e5e9e8; - border: 1px solid #a5a8a8; - box-shadow: inset 0 1px #fff; -} - -.topcoat-radio-button__checkmark { - position: relative; - width: 1.875rem; - height: 1.875rem; -} - -.topcoat-radio-button__checkmark:after { - opacity: 0; - width: 0.875rem; - height: 0.875rem; - background: #666; - border: 1px solid rgba(0,0,0,0.1); - box-shadow: 0 1px rgba(255,255,255,0.5); - -webkit-transform: none; - -ms-transform: none; - transform: none; - top: 7px; - left: 7px; -} - -input[type="radio"]:focus + .topcoat-radio-button__checkmark:before { - border: 1px solid #0940fd; - box-shadow: 0 0 0 2px #6fb5f1; -} - -/* -Copyright 2012 Adobe Systems Inc.; -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/* -Copyright 2012 Adobe Systems Inc.; -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -.range { - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - vertical-align: top; - outline: none; - -webkit-appearance: none; -} - -.range__thumb { - cursor: pointer; -} - -.range__thumb--webkit { - cursor: pointer; - -webkit-appearance: none; -} - -.range:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/* -Copyright 2012 Adobe Systems Inc.; -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/* -Copyright 2012 Adobe Systems Inc.; -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -.range, -.topcoat-range { - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - vertical-align: top; - outline: none; - -webkit-appearance: none; -} - -.range__thumb, -.topcoat-range::-moz-range-thumb { - cursor: pointer; -} - -.range__thumb--webkit, -.topcoat-range::-webkit-slider-thumb { - cursor: pointer; - -webkit-appearance: none; -} - -.range:disabled, -.topcoat-range:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/* topdoc - name: Range - description: Range input - modifiers: - :active: Active state - :disabled: Disabled state - :hover: Hover state - :focus: Focused - markup: - - - examples: - mobile range: http://codepen.io/Topcoat/pen/BskEn - tags: - - desktop - - mobile - - range -*/ - -.topcoat-range { - border-radius: 6px; - border: 1px solid #a5a8a8; - background-color: #d3d7d7; - height: 1rem; - border-radius: 30px; -} - -.topcoat-range::-moz-range-track { - border-radius: 6px; - border: 1px solid #a5a8a8; - background-color: #d3d7d7; - height: 1rem; - border-radius: 30px; -} - -.topcoat-range::-webkit-slider-thumb { - height: 3rem; - width: 2rem; - background-color: #e5e9e8; - border: 1px solid #a5a8a8; - border-radius: 6px; - box-shadow: inset 0 1px #fff; -} - -.topcoat-range::-moz-range-thumb { - height: 3rem; - width: 2rem; - background-color: #e5e9e8; - border: 1px solid #a5a8a8; - border-radius: 6px; - box-shadow: inset 0 1px #fff; -} - -.topcoat-range:focus::-webkit-slider-thumb { - border: 1px solid #0940fd; - box-shadow: 0 0 0 2px #6fb5f1; -} - -.topcoat-range:focus::-moz-range-thumb { - border: 1px solid #0940fd; - box-shadow: 0 0 0 2px #6fb5f1; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.search-input { - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - vertical-align: top; - outline: none; - -webkit-appearance: none; -} - -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} - -.search-input:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.search-input, -.topcoat-search-input, -.topcoat-search-input--large { - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - vertical-align: top; - outline: none; - -webkit-appearance: none; -} - -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} - -.search-input:disabled, -.topcoat-search-input:disabled, -.topcoat-search-input--large:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/* topdoc - name: Search Input - description: A text input designed for searching. - modifiers: - :disabled: Disabled state - markup: - - - tags: - - desktop - - light - - mobile - - text - - input - - search - - form -*/ - -.topcoat-search-input, -.topcoat-search-input--large { - line-height: 3rem; - font-size: 16px; - border: 1px solid #a5a8a8; - background-color: #d3d7d7; - box-shadow: inset 0 1px rgba(0,0,0,0.12); - color: #454545; - padding: 0 0 0 2rem; - border-radius: 30px; - background-image: url("../img/search.svg"); - background-position: 1em center; - background-repeat: no-repeat; - background-size: 16px; -} - -.topcoat-search-input:focus, -.topcoat-search-input--large:focus { - background-image: url("../img/search_dark.svg"); - background-color: #edf1f1; - color: #000; - border: 1px solid #0940fd; - box-shadow: 0 0 0 2px #6fb5f1; -} - -.topcoat-search-input::-webkit-search-cancel-button, -.topcoat-search-input::-webkit-search-decoration, -.topcoat-search-input--large::-webkit-search-cancel-button, -.topcoat-search-input--large::-webkit-search-decoration { - margin-right: 5px; -} - -.topcoat-search-input:focus::-webkit-input-placeholder, -.topcoat-search-input:focus::-webkit-input-placeholder { - color: #c6c8c8; -} - -.topcoat-search-input:disabled::-webkit-input-placeholder { - color: #000; -} - -.topcoat-search-input:disabled::-moz-placeholder { - color: #000; -} - -.topcoat-search-input:disabled:-ms-input-placeholder { - color: #000; -} - -/* topdoc - name: Large Search Input - description: A large text input designed for searching. - modifiers: - :disabled: Disabled state - markup: - - - tags: - - desktop - - light - - mobile - - text - - input - - search - - form - - large -*/ - -.topcoat-search-input--large { - line-height: 4.375rem; - font-size: 1.3rem; - font-weight: 200; - padding: 0 0 0 2.9rem; - border-radius: 40px; - background-position: 1.2em center; - background-size: 1.3rem; -} - -.topcoat-search-input--large:disabled { - color: #000; -} - -.topcoat-search-input--large:disabled::-webkit-input-placeholder { - color: #000; -} - -.topcoat-search-input--large:disabled::-moz-placeholder { - color: #000; -} - -.topcoat-search-input--large:disabled:-ms-input-placeholder { - color: #000; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.switch { - position: relative; - display: inline-block; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; -} - -.switch__input { - position: absolute; - overflow: hidden; - padding: 0; - border: 0; - opacity: 0.001; - z-index: 1; - vertical-align: top; - outline: none; -} - -.switch__toggle { - position: relative; - display: inline-block; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.switch__toggle:before, -.switch__toggle:after { - content: ''; - position: absolute; - z-index: -1; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; -} - -.switch--disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.switch, -.topcoat-switch { - position: relative; - display: inline-block; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; -} - -.switch__input, -.topcoat-switch__input { - position: absolute; - overflow: hidden; - padding: 0; - border: 0; - opacity: 0.001; - z-index: 1; - vertical-align: top; - outline: none; -} - -.switch__toggle, -.topcoat-switch__toggle { - position: relative; - display: inline-block; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.switch__toggle:before, -.switch__toggle:after, -.topcoat-switch__toggle:before, -.topcoat-switch__toggle:after { - content: ''; - position: absolute; - z-index: -1; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; -} - -.switch--disabled, -.topcoat-switch__input:disabled + .topcoat-switch__toggle { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/* topdoc - name: Switch - description: Default skin for Topcoat switch - modifiers: - :focus: Focus state - :disabled: Disabled state - markup: - -
            -
            - -
            -
            - - examples: - mobile switch: http://codepen.io/Topcoat/pen/upxds - tags: - - desktop - - light - - mobile - - switch -*/ - -.topcoat-switch { - font-size: 16px; - padding: 0 1.25rem; - border-radius: 6px; - border: 1px solid #a5a8a8; - overflow: hidden; - width: 6rem; -} - -.topcoat-switch__toggle:before, -.topcoat-switch__toggle:after { - top: -1px; - width: 5rem; -} - -.topcoat-switch__toggle:before { - content: 'ON'; - color: #0083e8; - background-color: #e0f0fa; - right: 1rem; - padding-left: 1.5rem; -} - -.topcoat-switch__toggle { - line-height: 3rem; - height: 3rem; - width: 2rem; - border-radius: 6px; - color: #454545; - text-shadow: 0 1px #fff; - background-color: #e5e9e8; - border: 1px solid #a5a8a8; - margin-left: -1.3rem; - margin-bottom: -1px; - margin-top: -1px; - box-shadow: inset 0 1px #fff; - -webkit-transition: margin-left 0.05s ease-in-out; - transition: margin-left 0.05s ease-in-out; -} - -.topcoat-switch__toggle:after { - content: 'OFF'; - background-color: #d3d7d7; - left: 1rem; - padding-left: 2rem; -} - -.topcoat-switch__input:checked + .topcoat-switch__toggle { - margin-left: 2.7rem; -} - -.topcoat-switch__input:focus + .topcoat-switch__toggle { - border: 1px solid #0940fd; - box-shadow: 0 0 0 2px #6fb5f1; -} - -.topcoat-switch__input:disabled + .topcoat-switch__toggle:after, -.topcoat-switch__input:disabled + .topcoat-switch__toggle:before { - background: transparent; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.button, -.topcoat-tab-bar__button { - position: relative; - display: inline-block; - vertical-align: top; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - text-decoration: none; -} - -.button--quiet { - background: transparent; - border: 1px solid transparent; - box-shadow: none; -} - -.button--disabled, -.topcoat-tab-bar__button:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -.button-bar, -.topcoat-tab-bar { - display: table; - table-layout: fixed; - white-space: nowrap; - margin: 0; - padding: 0; -} - -.button-bar__item, -.topcoat-tab-bar__item { - display: table-cell; - width: auto; - border-radius: 0; -} - -.button-bar__item > input, -.topcoat-tab-bar__item > input { - position: absolute; - overflow: hidden; - padding: 0; - border: 0; - opacity: 0.001; - z-index: 1; - vertical-align: top; - outline: none; -} - -.button-bar__button { - border-radius: inherit; -} - -.button-bar__item:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/* topdoc - name: Tab Bar - description: Component of tab buttons - modifiers: - :disabled: Disabled state - markup: -
            - - - -
            - examples: - mobile tab bar: http://codepen.io/Topcoat/pen/rJICF - tags: - - desktop - - light - - dark - - mobile - - tab - - group - - bar -*/ - -.topcoat-tab-bar__button { - padding: 0 1.25rem; - height: 3rem; - line-height: 3rem; - letter-spacing: 1px; - color: #454545; - text-shadow: 0 1px #fff; - vertical-align: top; - background-color: #e5e9e8; - box-shadow: inset 0 1px #fff; - border-top: 1px solid #a5a8a8; -} - -.topcoat-tab-bar__button:active, -.topcoat-tab-bar__button--large:active, -:checked + .topcoat-tab-bar__button { - color: #0083e8; - background-color: #e0f0fa; - box-shadow: inset 0 0 2px #c0ced8; -} - -.topcoat-tab-bar__button:focus, -.topcoat-tab-bar__button--large:focus { - z-index: 1; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.input, -.topcoat-text-input, -.topcoat-text-input--large { - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - vertical-align: top; - outline: none; -} - -.input:disabled, -.topcoat-text-input:disabled, -.topcoat-text-input--large:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/* topdoc - name: Text input - description: Topdoc text input - modifiers: - :disabled: Disabled state - :focus: Focused - :invalid: Hover state - markup: - -
            -
            - -
            -
            - - tags: - - desktop - - mobile - - text - - input -*/ - -.topcoat-text-input, -.topcoat-text-input--large { - line-height: 3rem; - font-size: 16px; - letter-spacing: 1px; - padding: 0 1.25rem; - border: 1px solid #a5a8a8; - border-radius: 6px; - background-color: #d3d7d7; - box-shadow: inset 0 1px rgba(0,0,0,0.12); - color: #454545; - vertical-align: top; -} - -.topcoat-text-input:focus, -.topcoat-text-input--large:focus { - background-color: #edf1f1; - color: #000; - border: 1px solid #0940fd; - box-shadow: 0 0 0 2px #6fb5f1; -} - -.topcoat-text-input:disabled::-webkit-input-placeholder { - color: #000; -} - -.topcoat-text-input:disabled::-moz-placeholder { - color: #000; -} - -.topcoat-text-input:disabled:-ms-input-placeholder { - color: #000; -} - -.topcoat-text-input:invalid { - border: 1px solid #d83b75; -} - -/* topdoc - name: Large Text Input - description: A bigger input, still for text. - modifiers: - :disabled: Disabled state - :focus: Focused - :invalid: Hover state - markup: - -
            -
            - -
            -
            - - tags: - - desktop - - light - - mobile - - form - - input - - large -*/ - -.topcoat-text-input--large { - line-height: 4.375rem; - font-size: 1.3rem; -} - -.topcoat-text-input--large:disabled { - color: #000; -} - -.topcoat-text-input--large:disabled::-webkit-input-placeholder { - color: #000; -} - -.topcoat-text-input--large:disabled::-moz-placeholder { - color: #000; -} - -.topcoat-text-input--large:disabled:-ms-input-placeholder { - color: #000; -} - -.topcoat-text-input--large:invalid { - border: 1px solid #d83b75; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.textarea { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - vertical-align: top; - resize: none; - outline: none; -} - -.textarea:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -/** -* -* Copyright 2012 Adobe Systems Inc.; -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -.textarea, -.topcoat-textarea, -.topcoat-textarea--large { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - vertical-align: top; - resize: none; - outline: none; -} - -.textarea:disabled, -.topcoat-textarea:disabled, -.topcoat-textarea--large:disabled { - opacity: 0.3; - cursor: default; - pointer-events: none; -} - -/* topdoc - name: Textarea - description: A whole area, just for text. - modifiers: - :disabled: Disabled state - markup: - -
            -
            - - tags: - - desktop - - light - - mobile - - form - - input - - textarea -*/ - -.topcoat-textarea, -.topcoat-textarea--large { - padding: 2rem; - font-size: 2.5rem; - font-weight: 200; - border-radius: 6px; - line-height: 3rem; - border: 1px solid #a5a8a8; - background-color: #d3d7d7; - box-shadow: inset 0 1px rgba(0,0,0,0.12); - color: #454545; - letter-spacing: 1px; -} - -.topcoat-textarea:focus, -.topcoat-textarea--large:focus { - background-color: #edf1f1; - color: #000; - border: 1px solid #0940fd; - box-shadow: 0 0 0 2px #6fb5f1; -} - -.topcoat-textarea:disabled::-webkit-input-placeholder { - color: #000; -} - -.topcoat-textarea:disabled::-moz-placeholder { - color: #000; -} - -.topcoat-textarea:disabled:-ms-input-placeholder { - color: #000; -} - -/* topdoc - name: Large Textarea - description: A whole area, just for text; now available in large. - modifiers: - :disabled: Disabled state - markup: - -
            -
            - - tags: - - desktop - - light - - mobile - - form - - input - - textarea -*/ - -.topcoat-textarea--large { - font-size: 3rem; - line-height: 4.375rem; -} - -.topcoat-textarea--large:disabled { - color: #000; -} - -.topcoat-textarea--large:disabled::-webkit-input-placeholder { - color: #000; -} - -.topcoat-textarea--large:disabled::-moz-placeholder { - color: #000; -} - -.topcoat-textarea--large:disabled:-ms-input-placeholder { - color: #000; -} - -@font-face { - font-family: "Source Sans"; - src: url("../font/SourceSansPro-Regular.otf"); -} - -@font-face { - font-family: "Source Sans"; - src: url("../font/SourceSansPro-Light.otf"); - font-weight: 200; -} - -@font-face { - font-family: "Source Sans"; - src: url("../font/SourceSansPro-Semibold.otf"); - font-weight: 600; -} - -body { - margin: 0; - padding: 0; - background: #dfe2e2; - color: #000; - font: 16px "Source Sans", helvetica, arial, sans-serif; - font-weight: 200; -} - -:focus { - outline-color: transparent; - outline-style: none; -} - -.topcoat-icon--menu-stack { - background: url("../img/hamburger_dark.svg") no-repeat; - background-size: cover; -} - -.quarter { - width: 25%; -} - -.half { - width: 50%; -} - -.three-quarters { - width: 75%; -} - -.third { - width: 33.333%; -} - -.two-thirds { - width: 66.666%; -} - -.full { - width: 100%; -} - -.left { - text-align: left; -} - -.center { - text-align: center; -} - -.right { - text-align: right; -} - -.reset-ui { - -moz-box-sizing: border-box; - box-sizing: border-box; - background-clip: padding-box; - position: relative; - display: inline-block; - vertical-align: top; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - background: transparent; - border: none; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} - -/* This file should include color and image variables corresponding to the dark theme */ - -/* Call To Action */ - -/* Icons */ - -/* Navigation Bar */ - -/* Text Input */ - -/* Search Input */ - -/* List */ - -/* Checkbox */ - -/* Overlay */ - -/* Progress bar */ - -/* Checkbox */ - -/* Radio Button */ - -/* Tab bar */ - -/* Switch */ - -/* Icon Button */ - -/* Navigation bar */ - -/* List */ - -/* Search Input */ - -/* Textarea */ - -/* Checkbox */ - -/* Radio */ - -/* Range input */ - -/* Search Input */ - -/* Switch */ - -/* This file should include color and image variables corresponding to the light theme */ - -/* Call To Action */ - -/* Icons */ - -/* Navigation Bar */ - -/* Text Input */ - -/* List */ - -/* Overlay */ - -/* Progress bar */ - -/* Checkbox */ - -/* Range input */ - -/* Radio Button */ - -/* Tab bar */ - -/* Switch */ - -/* Containers */ - -/* Icon Button */ - -/* Navigation bar */ - -/* List */ - -/* Search Input */ - -/* Text Area */ - -/* Checkbox */ - -/* Radio */ - -/* Range input */ - -/* Search Input */ - -/* Switch */ - -/* Text Input */ - -/* Radio input */ - -/* Overlay */ - -/* Textarea */ - -/* Progress bar container */ - -/* Progress bar progress */ - -/* Search input */ - -/* Switch */ - -/* Notification */ \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcecodepro-regular-webfont.eot b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcecodepro-regular-webfont.eot deleted file mode 100755 index 9e9e4de2..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcecodepro-regular-webfont.eot and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcecodepro-regular-webfont.ttf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcecodepro-regular-webfont.ttf deleted file mode 100755 index 6eb48e7d..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcecodepro-regular-webfont.ttf and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcecodepro-regular-webfont.woff b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcecodepro-regular-webfont.woff deleted file mode 100755 index 2383f473..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcecodepro-regular-webfont.woff and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-light-webfont.eot b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-light-webfont.eot deleted file mode 100755 index bda2005c..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-light-webfont.eot and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-light-webfont.ttf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-light-webfont.ttf deleted file mode 100755 index 0959ecef..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-light-webfont.ttf and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-light-webfont.woff b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-light-webfont.woff deleted file mode 100755 index 522d5ab5..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-light-webfont.woff and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-regular-webfont.eot b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-regular-webfont.eot deleted file mode 100755 index 2b75abba..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-regular-webfont.eot and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-regular-webfont.ttf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-regular-webfont.ttf deleted file mode 100755 index e1662862..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-regular-webfont.ttf and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-regular-webfont.woff b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-regular-webfont.woff deleted file mode 100755 index 315c98aa..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-regular-webfont.woff and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-semibold-webfont.eot b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-semibold-webfont.eot deleted file mode 100755 index ddf5d116..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-semibold-webfont.eot and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-semibold-webfont.ttf b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-semibold-webfont.ttf deleted file mode 100755 index 6d97e7b2..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-semibold-webfont.ttf and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-semibold-webfont.woff b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-semibold-webfont.woff deleted file mode 100755 index d8443157..00000000 Binary files a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/sourcesanspro-semibold-webfont.woff and /dev/null differ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/stylesheet.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/stylesheet.css deleted file mode 100755 index 2d665022..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/fonts/stylesheet.css +++ /dev/null @@ -1,57 +0,0 @@ - -@font-face { - font-family: 'source-sans-pro'; - src: url('sourcesanspro-light-webfont.eot'); - src: url('sourcesanspro-light-webfont.eot?#iefix') format('embedded-opentype'), - url('sourcesanspro-light-webfont.woff') format('woff'), - url('sourcesanspro-light-webfont.ttf') format('truetype'), - url('sourcesanspro-light-webfont.svg#source_sans_prolight') format('svg'); - font-weight: 300; - font-style: normal; - -} - - - - -@font-face { - font-family: 'source-sans-pro'; - src: url('sourcesanspro-regular-webfont.eot'); - src: url('sourcesanspro-regular-webfont.eot?#iefix') format('embedded-opentype'), - url('sourcesanspro-regular-webfont.woff') format('woff'), - url('sourcesanspro-regular-webfont.ttf') format('truetype'), - url('sourcesanspro-regular-webfont.svg#source_sans_proregular') format('svg'); - font-weight: 400; - font-style: normal; - -} - - - - -@font-face { - font-family: 'source-sans-pro'; - src: url('sourcesanspro-semibold-webfont.eot'); - src: url('sourcesanspro-semibold-webfont.eot?#iefix') format('embedded-opentype'), - url('sourcesanspro-semibold-webfont.woff') format('woff'), - url('sourcesanspro-semibold-webfont.ttf') format('truetype'), - url('sourcesanspro-semibold-webfont.svg#source_sans_prosemibold') format('svg'); - font-weight: 600; - font-style: normal; - -} - - - - -@font-face { - font-family: 'source-code-pro'; - src: url('sourcecodepro-regular-webfont.eot'); - src: url('sourcecodepro-regular-webfont.eot?#iefix') format('embedded-opentype'), - url('sourcecodepro-regular-webfont.woff') format('woff'), - url('sourcecodepro-regular-webfont.ttf') format('truetype'), - url('sourcecodepro-regular-webfont.svg#source_code_proregular') format('svg'); - font-weight: normal; - font-style: normal; - -} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/js/prism.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/js/prism.js deleted file mode 100644 index 8f1a5551..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/js/prism.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Prism: Lightweight, robust, elegant syntax highlighting - * MIT license http://www.opensource.org/licenses/mit-license.php/ - * @author Lea Verou http://lea.verou.me - */(function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},clone:function(e){var n=t.util.type(e);switch(n){case"Object":var r={};for(var i in e)e.hasOwnProperty(i)&&(r[i]=t.util.clone(e[i]));return r;case"Array":return e.slice()}return e}},languages:{extend:function(e,n){var r=t.util.clone(t.languages[e]);for(var i in n)r[i]=n[i];return r},insertBefore:function(e,n,r,i){i=i||t.languages;var s=i[e],o={};for(var u in s)if(s.hasOwnProperty(u)){if(u==n)for(var a in r)r.hasOwnProperty(a)&&(o[a]=r[a]);o[u]=s[u]}return i[e]=o},DFS:function(e,n){for(var r in e){n.call(e,r,e[r]);t.util.type(e)==="Object"&&t.languages.DFS(e[r],n)}}},highlightAll:function(e,n){var r=document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code');for(var i=0,s;s=r[i++];)t.highlightElement(s,e===!0,n)},highlightElement:function(r,i,s){var o,u,a=r;while(a&&!e.test(a.className))a=a.parentNode;if(a){o=(a.className.match(e)||[,""])[1];u=t.languages[o]}if(!u)return;r.className=r.className.replace(e,"").replace(/\s+/g," ")+" language-"+o;a=r.parentNode;/pre/i.test(a.nodeName)&&(a.className=a.className.replace(e,"").replace(/\s+/g," ")+" language-"+o);var f=r.textContent;if(!f)return;f=f.replace(/&/g,"&").replace(/e.length)break e;if(p instanceof i)continue;a.lastIndex=0;var d=a.exec(p);if(d){l&&(c=d[1].length);var v=d.index-1+c,d=d[0].slice(c),m=d.length,g=v+m,y=p.slice(0,v+1),b=p.slice(g+1),w=[h,1];y&&w.push(y);var E=new i(u,f?t.tokenize(d,f):d);w.push(E);b&&w.push(b);Array.prototype.splice.apply(s,w)}}}return s},hooks:{all:{},add:function(e,n){var r=t.hooks.all;r[e]=r[e]||[];r[e].push(n)},run:function(e,n){var r=t.hooks.all[e];if(!r||!r.length)return;for(var i=0,s;s=r[i++];)s(n)}}},n=t.Token=function(e,t){this.type=e;this.content=t};n.stringify=function(e,r,i){if(typeof e=="string")return e;if(Object.prototype.toString.call(e)=="[object Array]")return e.map(function(t){return n.stringify(t,r,e)}).join("");var s={type:e.type,content:n.stringify(e.content,r,i),tag:"span",classes:["token",e.type],attributes:{},language:r,parent:i};s.type=="comment"&&(s.attributes.spellcheck="true");t.hooks.run("wrap",s);var o="";for(var u in s.attributes)o+=u+'="'+(s.attributes[u]||"")+'"';return"<"+s.tag+' class="'+s.classes.join(" ")+'" '+o+">"+s.content+""};if(!self.document){self.addEventListener("message",function(e){var n=JSON.parse(e.data),r=n.language,i=n.code;self.postMessage(JSON.stringify(t.tokenize(i,t.languages[r])));self.close()},!1);return}var r=document.getElementsByTagName("script");r=r[r.length-1];if(r){t.filename=r.src;document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)}})();; -Prism.languages.clike={comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|(^|[^:])\/\/.*?(\r?\n|$))/g,lookbehind:!0},string:/("|')(\\?.)*?\1/g,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/ig,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/g,"boolean":/\b(true|false)\b/g,"function":{pattern:/[a-z0-9_]+\(/ig,inside:{punctuation:/\(/}}, number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|(&){1,2}|\|?\||\?|\*|\/|\~|\^|\%/g,ignore:/&(lt|gt|amp);/gi,punctuation:/[{}[\];(),.:]/g}; -; -Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(var|let|if|else|while|do|for|return|in|instanceof|function|new|with|typeof|try|throw|catch|finally|null|break|continue)\b/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g});Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,lookbehind:!0}});Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/(<|<)script[\w\W]*?(>|>)[\w\W]*?(<|<)\/script(>|>)/ig,inside:{tag:{pattern:/(<|<)script[\w\W]*?(>|>)|(<|<)\/script(>|>)/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript}}}); -; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/reference.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/reference.html deleted file mode 100644 index 4aac34ce..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/doc/reference.html +++ /dev/null @@ -1,14816 +0,0 @@ - - - - - - - Snap.svg API Reference - - - - - - - - - - - - - - - - -
            -
            -
            -
            - -
            - -
            -
            -
            -
            - -
            -
            -

            Snap(…)

            -
            -
            -
            -
            - - - - -

            Creates a drawing surface or wraps existing SVG element. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. width - number string - width of surface
            2. -
            3. height - number string - height of surface
            4. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. DOM - SVGElement - element to be wrapped into Snap structure
            2. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. array - array - array of elements (will return set of elements)
            2. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. query - string - CSS query selector
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.format(token, json)

            -
            -
            -
            -
            - - - - -

            Replaces construction of type {<name>} to the corresponding argument -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. token - string - string to format
            2. -
            3. json - object - object which properties are used as a replacement
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - formatted string -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            // this draws a rectangular shape equivalent to "M10,20h40v50h-40z"
            -paper.path(Snap.format("M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z", {
            -    x: 10,
            -    y: 20,
            -    dim: {
            -        width: 40,
            -        height: 50,
            -        "negative width": -40
            -    }
            -}));
            - - - - - -
            -
            -
            - -
            -
            -

            Snap.rad(deg)

            -
            -
            -
            -
            - - - - -

            Transform angle to radians -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. deg - number - angle in degrees
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - angle in radians -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.deg(rad)

            -
            -
            -
            -
            - - - - -

            Transform angle to degrees -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. rad - number - angle in radians
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - angle in degrees -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.sin(angle)

            -
            -
            -
            -
            - - - - -

            Equivalent to Math.sin() only works with degrees, not radians. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. angle - number - angle in degrees
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - sin -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.tan(angle)

            -
            -
            -
            -
            - - - - -

            Equivalent to Math.tan() only works with degrees, not radians. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. angle - number - angle in degrees
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - tan -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.cos(angle)

            -
            -
            -
            -
            - - - - -

            Equivalent to Math.cos() only works with degrees, not radians. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. angle - number - angle in degrees
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - cos -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.asin(num)

            -
            -
            -
            -
            - - - - -

            Equivalent to Math.asin() only works with degrees, not radians. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. num - number - value
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - asin in degrees -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.acos(num)

            -
            -
            -
            -
            - - - - -

            Equivalent to Math.acos() only works with degrees, not radians. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. num - number - value
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - acos in degrees -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.atan(num)

            -
            -
            -
            -
            - - - - -

            Equivalent to Math.atan() only works with degrees, not radians. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. num - number - value
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - atan in degrees -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.atan2(num)

            -
            -
            -
            -
            - - - - -

            Equivalent to Math.atan2() only works with degrees, not radians. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. num - number - value
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - atan2 in degrees -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.angle(x1, y1, x2, y2, [x3], [y3])

            -
            -
            -
            -
            - - - - -

            Returns an angle between two or three points -

            - - - - - - - - - - - - -

            Parameters

            - - - - - - - - -
            -

            Parameters

            -
              -
            1. x1 - number - x coord of first point
            2. -
            3. y1 - number - y coord of first point
            4. -
            5. x2 - number - x coord of second point
            6. -
            7. y2 - number - y coord of second point
            8. -
            9. x3 - number - x coord of third point
            10. -
            11. y3 - number - y coord of third point
            12. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - angle in degrees -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.len(x1, y1, x2, y2)

            -
            -
            -
            -
            - - - - -

            Returns distance between two points -

            - - - - - - - - - - - - -

            Parameters

            - - - - - - - - -
            -

            Parameters

            -
              -
            1. x1 - number - x coord of first point
            2. -
            3. y1 - number - y coord of first point
            4. -
            5. x2 - number - x coord of second point
            6. -
            7. y2 - number - y coord of second point
            8. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - distance -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.len2(x1, y1, x2, y2)

            -
            -
            -
            -
            - - - - -

            Returns squared distance between two points -

            - - - - - - - - - - - - -

            Parameters

            - - - - - - - - -
            -

            Parameters

            -
              -
            1. x1 - number - x coord of first point
            2. -
            3. y1 - number - y coord of first point
            4. -
            5. x2 - number - x coord of second point
            6. -
            7. y2 - number - y coord of second point
            8. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - distance -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.closestPoint(path, x, y)

            -
            -
            -
            -
            - - - - -

            Returns closest point to a given one on a given path. -

            - - - - - - - - - - - - -

            Parameters

            - - - - - - - - -
            -

            Parameters

            -
              -
            1. path - Element - path element
            2. -
            3. x - number - x coord of a point
            4. -
            5. y - number - y coord of a point
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - in format -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.is(o, type)

            -
            -
            -
            -
            - - - - -

            Handy replacement for the typeof operator -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. o - - any object or primitive
            2. -
            3. type - string - name of the type, e.g., string, function, number, etc.
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - boolean - - true if given value is of given type -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.snapTo(values, value, [tolerance])

            -
            -
            -
            -
            - - - - -

            Snaps given value to given grid -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. values - array number - given array of values or step of the grid
            2. -
            3. value - number - value to adjust
            4. -
            5. tolerance - number - maximum distance to the target value that would trigger the snap. Default is 10.
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - adjusted value -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.getRGB(color)

            -
            -
            -
            -
            - - - - -

            Parses color string as RGB object -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. color - string - color string in one of the following formats:
            2. - -
            -
            - - - - - - - - - - -
              - - - - - - - - - - - -
            • Color name (red, green, cornflowerblue, etc)
            • - - - - - - - - - - - -
            • #••• — shortened HTML color: (#000, #fc0, etc.)
            • - - - - - - - - - - - -
            • #•••••• — full length HTML color: (#000000, #bd2300)
            • - - - - - - - - - - - -
            • rgb(•••, •••, •••) — red, green and blue channels values: (rgb(200, 100, 0))
            • - - - - - - - - - - - -
            • rgba(•••, •••, •••, •••) — also with opacity
            • - - - - - - - - - - - -
            • rgb(•••%, •••%, •••%) — same as above, but in %: (rgb(100%, 175%, 0%))
            • - - - - - - - - - - - -
            • rgba(•••%, •••%, •••%, •••%) — also with opacity
            • - - - - - - - - - - - -
            • hsb(•••, •••, •••) — hue, saturation and brightness values: (hsb(0.5, 0.25, 1))
            • - - - - - - - - - - - -
            • hsba(•••, •••, •••, •••) — also with opacity
            • - - - - - - - - - - - -
            • hsb(•••%, •••%, •••%) — same as above, but in %
            • - - - - - - - - - - - -
            • hsba(•••%, •••%, •••%, •••%) — also with opacity
            • - - - - - - - - - - - -
            • hsl(•••, •••, •••) — hue, saturation and luminosity values: (hsb(0.5, 0.25, 0.5))
            • - - - - - - - - - - - -
            • hsla(•••, •••, •••, •••) — also with opacity
            • - - - - - - - - - - - -
            • hsl(•••%, •••%, •••%) — same as above, but in %
            • - - - - - - - - - - - -
            • hsla(•••%, •••%, •••%, •••%) — also with opacity
            • - - - - - - - - - - - -
            - - - - - - - - - -

            Note that % can be used any time: rgb(20%, 255, 50%). -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - RGB object in the following format: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - r - number - red, -
              2. - - - -
              3. - g - number - green, -
              4. - - - -
              5. - b - number - blue, -
              6. - - - -
              7. - hex - string - color in HTML/CSS format: #••••••, -
              8. - - - -
              9. - error - boolean - true if string can't be parsed -
              10. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.hsb(h, s, b)

            -
            -
            -
            -
            - - - - -

            Converts HSB values to a hex representation of the color -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. h - number - hue
            2. -
            3. s - number - saturation
            4. -
            5. b - number - value or brightness
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - hex representation of the color -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.hsl(h, s, l)

            -
            -
            -
            -
            - - - - -

            Converts HSL values to a hex representation of the color -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. h - number - hue
            2. -
            3. s - number - saturation
            4. -
            5. l - number - luminosity
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - hex representation of the color -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.rgb(r, g, b)

            -
            -
            -
            -
            - - - - -

            Converts RGB values to a hex representation of the color -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. r - number - red
            2. -
            3. g - number - green
            4. -
            5. b - number - blue
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - hex representation of the color -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.color(clr)

            -
            -
            -
            -
            - - - - -

            Parses the color string and returns an object featuring the color's component values -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. clr - string - color string in one of the supported formats (see Snap.getRGB)
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Combined RGB/HSB object in the following format: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - r - number - red, -
              2. - - - -
              3. - g - number - green, -
              4. - - - -
              5. - b - number - blue, -
              6. - - - -
              7. - hex - string - color in HTML/CSS format: #••••••, -
              8. - - - -
              9. - error - boolean - true if string can't be parsed, -
              10. - - - -
              11. - h - number - hue, -
              12. - - - -
              13. - s - number - saturation, -
              14. - - - -
              15. - v - number - value (brightness), -
              16. - - - -
              17. - l - number - lightness -
              18. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.hsb2rgb(h, s, v)

            -
            -
            -
            -
            - - - - -

            Converts HSB values to an RGB object -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. h - number - hue
            2. -
            3. s - number - saturation
            4. -
            5. v - number - value or brightness
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - RGB object in the following format: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - r - number - red, -
              2. - - - -
              3. - g - number - green, -
              4. - - - -
              5. - b - number - blue, -
              6. - - - -
              7. - hex - string - color in HTML/CSS format: #•••••• -
              8. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.hsl2rgb(h, s, l)

            -
            -
            -
            -
            - - - - -

            Converts HSL values to an RGB object -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. h - number - hue
            2. -
            3. s - number - saturation
            4. -
            5. l - number - luminosity
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - RGB object in the following format: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - r - number - red, -
              2. - - - -
              3. - g - number - green, -
              4. - - - -
              5. - b - number - blue, -
              6. - - - -
              7. - hex - string - color in HTML/CSS format: #•••••• -
              8. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.rgb2hsb(r, g, b)

            -
            -
            -
            -
            - - - - -

            Converts RGB values to an HSB object -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. r - number - red
            2. -
            3. g - number - green
            4. -
            5. b - number - blue
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - HSB object in the following format: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - h - number - hue, -
              2. - - - -
              3. - s - number - saturation, -
              4. - - - -
              5. - b - number - brightness -
              6. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.rgb2hsl(r, g, b)

            -
            -
            -
            -
            - - - - -

            Converts RGB values to an HSL object -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. r - number - red
            2. -
            3. g - number - green
            4. -
            5. b - number - blue
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - HSL object in the following format: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - h - number - hue, -
              2. - - - -
              3. - s - number - saturation, -
              4. - - - -
              5. - l - number - luminosity -
              6. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.parsePathString(pathString)

            -
            -
            -
            -
            - - - - -

            Utility method -Parses given path string into an array of arrays of path segments -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. pathString - string array - path string or array of segments (in the last case it is returned straight away)
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - array - - array of segments -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.parseTransformString(TString)

            -
            -
            -
            -
            - - - - -

            Utility method -Parses given transform string into an array of transformations -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. TString - string array - transform string or array of transformations (in the last case it is returned straight away)
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - array - - array of transformations -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.select(query)

            -
            -
            -
            -
            - - - - -

            Wraps a DOM element specified by CSS selector as Element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. query - string - CSS selector of the element
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the current element -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.selectAll(query)

            -
            -
            -
            -
            - - - - -

            Wraps DOM elements specified by CSS selector as set or array of Element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. query - string - CSS selector of the element
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the current element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.node()

            -
            -
            -
            -
            - - - - -

            Gives you a reference to the DOM object, so you can assign event handlers or just mess around. -

            - - - - - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            // draw a circle at coordinate 10,10 with radius of 10
            -var c = paper.circle(10, 10, 10);
            -c.node.onclick = function () {
            -    c.attr("fill", "red");
            -};
            - - - - - -
            -
            -
            - -
            -
            -

            Element.type()

            -
            -
            -
            -
            - - - - -

            SVG tag name of the given element. -

            - - - - - - - - -
            -
            -
            - -
            -
            -

            Element.attr(…)

            -
            -
            -
            -
            - - - - -

            Gets or sets given attributes of the element. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. params - object - contains key-value pairs of attributes you want to set
            2. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. param - string - name of the attribute
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the current element -

            - - - - - -

            or -

            - - - - - - - - - - - - - - -

            - Returns: - - string - - value of attribute -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            el.attr({
            -    fill: "#fc0",
            -    stroke: "#000",
            -    strokeWidth: 2, // CamelCase...
            -    "fill-opacity": 0.5, // or dash-separated names
            -    width: "*=2" // prefixed values
            -});
            -console.log(el.attr("fill")); // #fc0
            - - - - - - -

            Prefixed values in format "+=10" supported. All four operations -(+, -, * and /) could be used. Optionally you can use units for + -and -: "+=2em". -

            - - - - - - - - -
            -
            -
            - -
            -
            -

            Snap.parse(svg)

            -
            -
            -
            -
            - - - - -

            Parses SVG fragment and converts it into a Fragment -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. svg - string - SVG string
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Fragment - - the Fragment -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.fragment(varargs)

            -
            -
            -
            -
            - - - - -

            Creates a DOM fragment from a given list of elements or strings -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. varargs - - SVG string
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Fragment - - the Fragment -

            - - - - -
            -
            -
            - -
            -
            -

            Paper.el(name, attr)

            -
            -
            -
            -
            - - - - -

            Creates an element on paper with a given name and no attributes -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. name - string - tag name
            2. -
            3. attr - object - attributes
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the current element -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var c = paper.circle(10, 10, 10); // is the same as...
            -var c = paper.el("circle").attr({
            -    cx: 10,
            -    cy: 10,
            -    r: 10
            -});
            -// and the same as
            -var c = paper.el("circle", {
            -    cx: 10,
            -    cy: 10,
            -    r: 10
            -});
            - - - - - -
            -
            -
            - -
            -
            -

            Element.children()

            -
            -
            -
            -
            - - - - -

            Returns array of all the children of the element. -

            - - - - - - - - - - - - - - -

            - Returns: - - array - - array of Elements -

            - - - - -
            -
            -
            - -
            -
            -

            Element.toJSON()

            -
            -
            -
            -
            - - - - -

            Returns object representation of the given element and all its children. -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - in format -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - type - string - this.type, -
              2. - - - -
              3. - attr - object - attributes map, -
              4. - - - -
              5. - childNodes - array - optional array of children in the same format -
              6. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.ajax(…)

            -
            -
            -
            -
            - - - - -

            Simple implementation of Ajax -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. url - string - URL
            2. -
            3. postData - object string - data for post request
            4. -
            5. callback - function - callback
            6. -
            7. scope - object - scope of callback
            8. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. url - string - URL
            2. -
            3. callback - function - callback
            4. -
            5. scope - object - scope of callback
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - XMLHttpRequest - - the XMLHttpRequest object, just in case -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.load(url, callback, [scope])

            -
            -
            -
            -
            - - - - -

            Loads external SVG file as a Fragment (see Snap.ajax for more advanced AJAX) -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. url - string - URL
            2. -
            3. callback - function - callback
            4. -
            5. scope - object - scope of callback
            6. - -
            -
            - - - - - - - -
            -
            -
            - -
            -
            -

            Snap.getElementByPoint(x, y)

            -
            -
            -
            -
            - - - - -

            Returns you topmost element under given point. -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - Snap element object -

            - - - - - - -
            -

            Parameters

            -
              -
            1. x - number - x coordinate from the top left corner of the window
            2. -
            3. y - number - y coordinate from the top left corner of the window
            4. - -
            -
            - - - - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            Snap.getElementByPoint(mouseX, mouseY).attr({stroke: "#f00"});
            - - - - - -
            -
            -
            - -
            -
            -

            Snap.plugin(f)

            -
            -
            -
            -
            - - - - -

            Let you write plugins. You pass in a function with five arguments, like this: -

            - - - - - - - - - - - - - -
            Snap.plugin(function (Snap, Element, Paper, global, Fragment) {
            -    Snap.newmethod = function () {};
            -    Element.prototype.newmethod = function () {};
            -    Paper.prototype.newmethod = function () {};
            -});
            - - - - - - -

            Inside the function you have access to all main objects (and their -prototypes). This allow you to extend anything you want. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. f - function - your plugin body
            2. - -
            -
            - - - - - - - -
            -
            -
            - -
            -
            -

            Element.getBBox()

            -
            -
            -
            -
            - - - - -

            Returns the bounding box descriptor for the given element -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - bounding box descriptor: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - cx: - number - x of the center, -
              2. - - - -
              3. - cy: - number - x of the center, -
              4. - - - -
              5. - h: - number - height, -
              6. - - - -
              7. - height: - number - height, -
              8. - - - -
              9. - path: - string - path command for the box, -
              10. - - - -
              11. - r0: - number - radius of a circle that fully encloses the box, -
              12. - - - -
              13. - r1: - number - radius of the smallest circle that can be enclosed, -
              14. - - - -
              15. - r2: - number - radius of the largest circle that can be enclosed, -
              16. - - - -
              17. - vb: - string - box as a viewbox command, -
              18. - - - -
              19. - w: - number - width, -
              20. - - - -
              21. - width: - number - width, -
              22. - - - -
              23. - x2: - number - x of the right side, -
              24. - - - -
              25. - x: - number - x of the left side, -
              26. - - - -
              27. - y2: - number - y of the bottom edge, -
              28. - - - -
              29. - y: - number - y of the top edge -
              30. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Element.transform(tstr)

            -
            -
            -
            -
            - - - - -

            Gets or sets transformation of the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. tstr - string - transform string in Snap or SVG format
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the current element -

            - - - - - -

            or -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - transformation descriptor: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - string - string - transform string, -
              2. - - - -
              3. - globalMatrix - Matrix - matrix of all transformations applied to element or its parents, -
              4. - - - -
              5. - localMatrix - Matrix - matrix of transformations applied only to the element, -
              6. - - - -
              7. - diffMatrix - Matrix - matrix of difference between global and local transformations, -
              8. - - - -
              9. - global - string - global transformation as string, -
              10. - - - -
              11. - local - string - local transformation as string, -
              12. - - - -
              13. - toString - function - returns string property -
              14. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Element.parent()

            -
            -
            -
            -
            - - - - -

            Returns the element's parent -

            - - - - - - - - - - - - - - -

            - Returns: - - Element - - the parent element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.append(el)

            -
            -
            -
            -
            - - - - -

            Appends the given element to current one -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. el - Element Set - element to append
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the parent element -

            - - - - -
            -
            -
            - - - -
            -
            -

            Element.appendTo(el)

            -
            -
            -
            -
            - - - - -

            Appends the current element to the given one -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. el - Element - parent element to append to
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the child element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.prepend(el)

            -
            -
            -
            -
            - - - - -

            Prepends the given element to the current one -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. el - Element - element to prepend
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the parent element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.prependTo(el)

            -
            -
            -
            -
            - - - - -

            Prepends the current element to the given one -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. el - Element - parent element to prepend to
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the child element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.before(el)

            -
            -
            -
            -
            - - - - -

            Inserts given element before the current one -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. el - Element - element to insert
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the parent element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.after(el)

            -
            -
            -
            -
            - - - - -

            Inserts given element after the current one -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. el - Element - element to insert
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the parent element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.insertBefore(el)

            -
            -
            -
            -
            - - - - -

            Inserts the element after the given one -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. el - Element - element next to whom insert to
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the parent element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.insertAfter(el)

            -
            -
            -
            -
            - - - - -

            Inserts the element after the given one -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. el - Element - element next to whom insert to
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the parent element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.remove()

            -
            -
            -
            -
            - - - - -

            Removes element from the DOM -

            - - - - - - - - - - - - - - -

            - Returns: - - Element - - the detached element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.select(query)

            -
            -
            -
            -
            - - - - -

            Gathers the nested Element matching the given set of CSS selectors -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. query - string - CSS selector
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - result of query selection -

            - - - - -
            -
            -
            - -
            -
            -

            Element.selectAll(query)

            -
            -
            -
            -
            - - - - -

            Gathers nested Element objects matching the given set of CSS selectors -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. query - string - CSS selector
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Set - - array - - result of query selection -

            - - - - -
            -
            -
            - -
            -
            -

            Element.asPX(attr, [value])

            -
            -
            -
            -
            - - - - -

            Returns given attribute of the element as a px value (not %, em, etc.) -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. attr - string - attribute name
            2. -
            3. value - string - attribute value
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - result of query selection -

            - - - - -
            -
            -
            - -
            -
            -

            Element.use()

            -
            -
            -
            -
            - - - - -

            Creates a <use> element linked to the current element -

            - - - - - - - - - - - - - - -

            - Returns: - - Element - - the <use> element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.clone()

            -
            -
            -
            -
            - - - - -

            Creates a clone of the element and inserts it after the element -

            - - - - - - - - - - - - - - -

            - Returns: - - Element - - the clone -

            - - - - -
            -
            -
            - -
            -
            -

            Element.toDefs()

            -
            -
            -
            -
            - - - - -

            Moves element to the shared <defs> area -

            - - - - - - - - - - - - - - -

            - Returns: - - Element - - the element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.toPattern(x, y, width, height)

            -
            -
            -
            -
            - - - - -

            Creates a <pattern> element from the current element -To create a pattern you have to specify the pattern rect: -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - string number -
            2. -
            3. y - string number -
            4. -
            5. width - string number -
            6. -
            7. height - string number -
            8. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the <pattern> element -

            - - - - - -

            You can use pattern later on as an argument for fill attribute: -

            - - - - - - - - - - - - - -
            var p = paper.path("M10-5-10,15M15,0,0,15M0-5-20,15").attr({
            -        fill: "none",
            -        stroke: "#bada55",
            -        strokeWidth: 5
            -    }).pattern(0, 0, 10, 10),
            -    c = paper.circle(200, 200, 100);
            -c.attr({
            -    fill: p
            -});
            - - - - - -
            -
            -
            - -
            -
            -

            Element.marker(x, y, width, height, refX, refY)

            -
            -
            -
            -
            - - - - -

            Creates a <marker> element from the current element -To create a marker you have to specify the bounding rect and reference point: -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number -
            2. -
            3. y - number -
            4. -
            5. width - number -
            6. -
            7. height - number -
            8. -
            9. refX - number -
            10. -
            11. refY - number -
            12. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the <marker> element -

            - - - - - -

            You can specify the marker later as an argument for marker-start, marker-end, marker-mid, and marker attributes. The marker attribute places the marker at every point along the path, and marker-mid places them at every point except the start and end. -

            - - - - - - - - -
            -
            -
            - -
            -
            -

            Snap.animation(attr, duration, [easing], [callback])

            -
            -
            -
            -
            - - - - -

            Creates an animation object -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. attr - object - attributes of final destination
            2. -
            3. duration - number - duration of the animation, in milliseconds
            4. -
            5. easing - function - one of easing functions of mina or custom one
            6. -
            7. callback - function - callback function that fires when animation ends
            8. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - animation object -

            - - - - -
            -
            -
            - -
            -
            -

            Element.inAnim()

            -
            -
            -
            -
            - - - - -

            Returns a set of animations that may be able to manipulate the current element -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - in format: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - anim - object - animation object, -
              2. - - - -
              3. - mina - object - mina object, -
              4. - - - -
              5. - curStatus - number - 0..1 — status of the animation: 0 — just started, 1 — just finished, -
              6. - - - -
              7. - status - function - gets or sets the status of the animation, -
              8. - - - -
              9. - stop - function - stops the animation -
              10. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.animate(from, to, setter, duration, [easing], [callback])

            -
            -
            -
            -
            - - - - -

            Runs generic animation of one number into another with a caring function -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. from - number array - number or array of numbers
            2. -
            3. to - number array - number or array of numbers
            4. -
            5. setter - function - caring function that accepts one number argument
            6. -
            7. duration - number - duration, in milliseconds
            8. -
            9. easing - function - easing function from mina or custom
            10. -
            11. callback - function - callback function to execute when animation ends
            12. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - animation object in mina format -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - id - string - animation id, consider it read-only, -
              2. - - - -
              3. - duration - function - gets or sets the duration of the animation, -
              4. - - - -
              5. - easing - function - easing, -
              6. - - - -
              7. - speed - function - gets or sets the speed of the animation, -
              8. - - - -
              9. - status - function - gets or sets the status of the animation, -
              10. - - - -
              11. - stop - function - stops the animation -
              12. - - - -
            2. }
            3. - - -
            - - - - - - - -
            var rect = Snap().rect(0, 0, 10, 10);
            -Snap.animate(0, 10, function (val) {
            -    rect.attr({
            -        x: val
            -    });
            -}, 1000);
            -// in given context is equivalent to
            -rect.animate({x: 10}, 1000);
            - - - - - -
            -
            -
            - -
            -
            -

            Element.stop()

            -
            -
            -
            -
            - - - - -

            Stops all the animations for the current element -

            - - - - - - - - - - - - - - -

            - Returns: - - Element - - the current element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.animate(attrs, duration, [easing], [callback])

            -
            -
            -
            -
            - - - - -

            Animates the given attributes of the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. attrs - object - key-value pairs of destination attributes
            2. -
            3. duration - number - duration of the animation in milliseconds
            4. -
            5. easing - function - easing function from mina or custom
            6. -
            7. callback - function - callback function that executes when the animation ends
            8. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - the current element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.data(key, [value])

            -
            -
            -
            -
            - - - - -

            Adds or retrieves given value associated with given key. (Don’t confuse -with data- attributes) -

            See also Element.removeData -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. key - string - key to store data
            2. -
            3. value - any - value to store
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - - -

            or, if value is not specified: -

            - - - - - - - - - - - - - - -

            - Returns: - - any - - value -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            for (var i = 0, i < 5, i++) {
            -    paper.circle(10 + 15 * i, 10, 10)
            -         .attr({fill: "#000"})
            -         .data("i", i)
            -         .click(function () {
            -            alert(this.data("i"));
            -         });
            -}
            - - - - - -
            -
            -
            - -
            -
            -

            Element.removeData([key])

            -
            -
            -
            -
            - - - - -

            Removes value associated with an element by given key. -If key is not provided, removes all the data of the element. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. key - string - key
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.outerSVG()

            -
            -
            -
            -
            - - - - -

            Returns SVG code for the element, equivalent to HTML's outerHTML. -

            See also Element.innerSVG -

            - - - - - - - - - - - - - - -

            - Returns: - - string - - SVG code for the element -

            - - - - -
            -
            -
            - - - -
            -
            -

            Element.innerSVG()

            -
            -
            -
            -
            - - - - -

            Returns SVG code for the element's contents, equivalent to HTML's innerHTML -

            - - - - - - - - - - - - - - -

            - Returns: - - string - - SVG code for the element -

            - - - - -
            -
            -
            - - - - - -
            -
            -

            Matrix.add(…)

            -
            -
            -
            -
            - - - - -

            Adds the given matrix to existing one -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. a - number -
            2. -
            3. b - number -
            4. -
            5. c - number -
            6. -
            7. d - number -
            8. -
            9. e - number -
            10. -
            11. f - number -
            12. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. matrix - object - Matrix
            2. - -
            -
            - - - - - - - -
            -
            -
            - -
            -
            -

            Matrix.invert()

            -
            -
            -
            -
            - - - - -

            Returns an inverted version of the matrix -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - Matrix -

            - - - - -
            -
            -
            - -
            -
            -

            Matrix.clone()

            -
            -
            -
            -
            - - - - -

            Returns a copy of the matrix -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - Matrix -

            - - - - -
            -
            -
            - -
            -
            -

            Matrix.translate(x, y)

            -
            -
            -
            -
            - - - - -

            Translate the matrix -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number - horizontal offset distance
            2. -
            3. y - number - vertical offset distance
            4. - -
            -
            - - - - - - - -
            -
            -
            - -
            -
            -

            Matrix.scale(x, [y], [cx], [cy])

            -
            -
            -
            -
            - - - - -

            Scales the matrix -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number - amount to be scaled, with 1 resulting in no change
            2. -
            3. y - number - amount to scale along the vertical axis. (Otherwise x applies to both axes.)
            4. -
            5. cx - number - horizontal origin point from which to scale
            6. -
            7. cy - number - vertical origin point from which to scale
            8. - -
            -
            - - - - - - - - -

            Default cx, cy is the middle point of the element. -

            - - - - - - - - -
            -
            -
            - -
            -
            -

            Matrix.rotate(a, x, y)

            -
            -
            -
            -
            - - - - -

            Rotates the matrix -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. a - number - angle of rotation, in degrees
            2. -
            3. x - number - horizontal origin point from which to rotate
            4. -
            5. y - number - vertical origin point from which to rotate
            6. - -
            -
            - - - - - - - -
            -
            -
            - -
            -
            -

            Matrix.x(x, y)

            -
            -
            -
            -
            - - - - -

            Returns x coordinate for given point after transformation described by the matrix. See also Matrix.y -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number -
            2. -
            3. y - number -
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - x -

            - - - - -
            -
            -
            - -
            -
            -

            Matrix.y(x, y)

            -
            -
            -
            -
            - - - - -

            Returns y coordinate for given point after transformation described by the matrix. See also Matrix.x -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number -
            2. -
            3. y - number -
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - y -

            - - - - -
            -
            -
            - -
            -
            -

            Matrix.determinant()

            -
            -
            -
            -
            - - - - -

            Finds determinant of the given matrix. -

            - - - - - - - - - - - - - - -

            - Returns: - - number - - determinant -

            - - - - -
            -
            -
            - -
            -
            -

            Matrix.split()

            -
            -
            -
            -
            - - - - -

            Splits matrix into primitive transformations -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - in format: -

            - - - - - - - - - - - -
              - - -
            1. - dx - number - translation by x -
            2. - - - -
            3. - dy - number - translation by y -
            4. - - - -
            5. - scalex - number - scale by x -
            6. - - - -
            7. - scaley - number - scale by y -
            8. - - - -
            9. - shear - number - shear -
            10. - - - -
            11. - rotate - number - rotation in deg -
            12. - - - -
            13. - isSimple - boolean - could it be represented via simple transformations -
            14. - - -
            - - -
            -
            -
            - -
            -
            -

            Matrix.toTransformString()

            -
            -
            -
            -
            - - - - -

            Returns transform string that represents given matrix -

            - - - - - - - - - - - - - - -

            - Returns: - - string - - transform string -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.Matrix()

            -
            -
            -
            -
            - - - - -

            Matrix constructor, extend on your own risk. -To create matrices use Snap.matrix. -

            - - - - - - - - -
            -
            -
            - -
            -
            -

            Snap.matrix(…)

            -
            -
            -
            -
            - - - - -

            Utility method -Returns a matrix based on the given parameters -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. a - number -
            2. -
            3. b - number -
            4. -
            5. c - number -
            6. -
            7. d - number -
            8. -
            9. e - number -
            10. -
            11. f - number -
            12. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. svgMatrix - SVGMatrix -
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Matrix -

            - - - - -
            -
            -
            - -
            -
            -

            Paper.rect(x, y, width, height, [rx], [ry])

            -
            -
            -
            -
            - - - - -

            Draws a rectangle -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number - x coordinate of the top left corner
            2. -
            3. y - number - y coordinate of the top left corner
            4. -
            5. width - number - width
            6. -
            7. height - number - height
            8. -
            9. rx - number - horizontal radius for rounded corners, default is 0
            10. -
            11. ry - number - vertical radius for rounded corners, default is rx or 0
            12. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the rect element -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            // regular rectangle
            -var c = paper.rect(10, 10, 50, 50);
            -// rectangle with rounded corners
            -var c = paper.rect(40, 40, 50, 50, 10);
            - - - - - -
            -
            -
            - -
            -
            -

            Paper.circle(x, y, r)

            -
            -
            -
            -
            - - - - -

            Draws a circle -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number - x coordinate of the centre
            2. -
            3. y - number - y coordinate of the centre
            4. -
            5. r - number - radius
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the circle element -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var c = paper.circle(50, 50, 40);
            - - - - - -
            -
            -
            - -
            -
            -

            Paper.image(src, x, y, width, height)

            -
            -
            -
            -
            - - - - -

            Places an image on the surface -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. src - string - URI of the source image
            2. -
            3. x - number - x offset position
            4. -
            5. y - number - y offset position
            6. -
            7. width - number - width of the image
            8. -
            9. height - number - height of the image
            10. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the image element -

            - - - - - -

            or -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - Snap element object with type image -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var c = paper.image("apple.png", 10, 10, 80, 80);
            - - - - - -
            -
            -
            - -
            -
            -

            Paper.ellipse(x, y, rx, ry)

            -
            -
            -
            -
            - - - - -

            Draws an ellipse -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number - x coordinate of the centre
            2. -
            3. y - number - y coordinate of the centre
            4. -
            5. rx - number - horizontal radius
            6. -
            7. ry - number - vertical radius
            8. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the ellipse element -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var c = paper.ellipse(50, 50, 40, 20);
            - - - - - -
            -
            -
            - -
            -
            -

            Paper.path([pathString])

            -
            -
            -
            -
            - - - - -

            Creates a <path> element using the given string as the path's definition -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. pathString - string - path string in SVG format
            2. - -
            -
            - - - - - - - - -

            Path string consists of one-letter commands, followed by comma seprarated arguments in numerical form. Example: -

            - - - - - - - - - - - - - -
            "M10,20L30,40"
            - - - - - - -

            This example features two commands: M, with arguments (10, 20) and L with arguments (30, 40). Uppercase letter commands express coordinates in absolute terms, while lowercase commands express them in relative terms from the most recently declared coordinates. -

            - - - - - - - - - - - -

            Here is short list of commands available, for more details see SVG path string format or article about path strings at MDN.

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            CommandNameParameters
            Mmoveto(x y)+
            Zclosepath(none)
            Llineto(x y)+
            Hhorizontal linetox+
            Vvertical linetoy+
            Ccurveto(x1 y1 x2 y2 x y)+
            Ssmooth curveto(x2 y2 x y)+
            Qquadratic Bézier curveto(x1 y1 x y)+
            Tsmooth quadratic Bézier curveto(x y)+
            Aelliptical arc(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
            RCatmull-Rom curveto*x1 y1 (x y)+
            - - - - - - - - - -

          • Catmull-Rom curveto is a not standard SVG command and added to make life easier.
          • -Note: there is a special case when a path consists of only three commands: M10,10R…z. In this case the path connects back to its starting point. -

            - - - - - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var c = paper.path("M10 10L90 90");
            -// draw a diagonal line:
            -// move to 10,10, line to 90,90
            - - - - - -
            -
            -
            - -
            -
            -

            Paper.g([varargs])

            -
            -
            -
            -
            - - - - -

            Creates a group element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. varargs - - elements to nest within the group
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the g element -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var c1 = paper.circle(),
            -    c2 = paper.rect(),
            -    g = paper.g(c2, c1); // note that the order of elements is different
            - - - - - - -

            or -

            - - - - - - - - - - - - - -
            var c1 = paper.circle(),
            -    c2 = paper.rect(),
            -    g = paper.g();
            -g.add(c2, c1);
            - - - - - -
            -
            -
            - -
            -
            -

            Paper.group()

            -
            -
            -
            -
            - - - - -

            See Paper.g -

            - - - - - - - - -
            -
            -
            - -
            -
            -

            Paper.svg(x, y, width, height, vbx, vby, vbw, vbh)

            -
            -
            -
            -
            - - - - -

            Creates a nested SVG element. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number - optional X of the element
            2. -
            3. y - number - optional Y of the element
            4. -
            5. width - number - optional width of the element
            6. -
            7. height - number - optional height of the element
            8. -
            9. vbx - number - optional viewbox X
            10. -
            11. vby - number - optional viewbox Y
            12. -
            13. vbw - number - optional viewbox width
            14. -
            15. vbh - number - optional viewbox height
            16. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the svg element -

            - - - - -
            -
            -
            - -
            -
            -

            Paper.mask()

            -
            -
            -
            -
            - - - - -

            Equivalent in behaviour to Paper.g, except it’s a mask. -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - the mask element -

            - - - - -
            -
            -
            - -
            -
            -

            Paper.ptrn(x, y, width, height, vbx, vby, vbw, vbh)

            -
            -
            -
            -
            - - - - -

            Equivalent in behaviour to Paper.g, except it’s a pattern. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number - optional X of the element
            2. -
            3. y - number - optional Y of the element
            4. -
            5. width - number - optional width of the element
            6. -
            7. height - number - optional height of the element
            8. -
            9. vbx - number - optional viewbox X
            10. -
            11. vby - number - optional viewbox Y
            12. -
            13. vbw - number - optional viewbox width
            14. -
            15. vbh - number - optional viewbox height
            16. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the pattern element -

            - - - - -
            -
            -
            - -
            -
            -

            Paper.use(…)

            -
            -
            -
            -
            - - - - -

            Creates a <use> element. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. id - string - optional id of element to link
            2. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. id - Element - optional element to link
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the use element -

            - - - - -
            -
            -
            - -
            -
            -

            Paper.symbol(vbx, vby, vbw, vbh)

            -
            -
            -
            -
            - - - - -

            Creates a <symbol> element. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. vbx - number - optional viewbox X
            2. -
            3. vby - number - optional viewbox Y
            4. -
            5. vbw - number - optional viewbox width
            6. -
            7. vbh - number - optional viewbox height
            8. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the symbol element -

            - - - - -
            -
            -
            - -
            -
            -

            Paper.text(x, y, text)

            -
            -
            -
            -
            - - - - -

            Draws a text string -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number - x coordinate position
            2. -
            3. y - number - y coordinate position
            4. -
            5. text - string array - The text string to draw or array of strings to nest within separate <tspan> elements
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the text element -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var t1 = paper.text(50, 50, "Snap");
            -var t2 = paper.text(50, 50, ["S","n","a","p"]);
            -// Text path usage
            -t1.attr({textpath: "M10,10L100,100"});
            -// or
            -var pth = paper.path("M10,10L100,100");
            -t1.attr({textpath: pth});
            - - - - - -
            -
            -
            - -
            -
            -

            Paper.line(x1, y1, x2, y2)

            -
            -
            -
            -
            - - - - -

            Draws a line -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x1 - number - x coordinate position of the start
            2. -
            3. y1 - number - y coordinate position of the start
            4. -
            5. x2 - number - x coordinate position of the end
            6. -
            7. y2 - number - y coordinate position of the end
            8. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the line element -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var t1 = paper.line(50, 50, 100, 100);
            - - - - - -
            -
            -
            - -
            -
            -

            Paper.polyline(…)

            -
            -
            -
            -
            - - - - -

            Draws a polyline -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. points - array - array of points
            2. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. varargs - - points
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - the polyline element -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var p1 = paper.polyline([10, 10, 100, 100]);
            -var p2 = paper.polyline(10, 10, 100, 100);
            - - - - - -
            -
            -
            - -
            -
            -

            Paper.polygon()

            -
            -
            -
            -
            - - - - -

            Draws a polygon. See Paper.polyline -

            - - - - - - - - -
            -
            -
            - -
            -
            -

            Paper.gradient(gradient)

            -
            -
            -
            -
            - - - - -

            Creates a gradient element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. gradient - string - gradient descriptor
            2. - -
            -
            - - - - - - - - - - - -

            Gradient Descriptor

            - - - - - - - -

            The gradient descriptor is an expression formatted as -follows: <type>(<coords>)<colors>. The <type> can be -either linear or radial. The uppercase L or R letters -indicate absolute coordinates offset from the SVG surface. -Lowercase l or r letters indicate coordinates -calculated relative to the element to which the gradient is -applied. Coordinates specify a linear gradient vector as -x1, y1, x2, y2, or a radial gradient as cx, cy, -r and optional fx, fy specifying a focal point away -from the center of the circle. Specify <colors> as a list -of dash-separated CSS color values. Each color may be -followed by a custom offset value, separated with a colon -character. -

            - - - - - - - - - - - - -

            Examples

            - - - - - - - -

            Linear gradient, relative from top-left corner to bottom-right -corner, from black through red to white: -

            - - - - - - - - - - - - - -
            var g = paper.gradient("l(0, 0, 1, 1)#000-#f00-#fff");
            - - - - - - -

            Linear gradient, absolute from (0, 0) to (100, 100), from black -through red at 25% to white: -

            - - - - - - - - - - - - - -
            var g = paper.gradient("L(0, 0, 100, 100)#000-#f00:25-#fff");
            - - - - - - -

            Radial gradient, relative from the center of the element with radius -half the width, from black to white: -

            - - - - - - - - - - - - - -
            var g = paper.gradient("r(0.5, 0.5, 0.5)#000-#fff");
            - - - - - - -

            To apply the gradient: -

            - - - - - - - - - - - - - -
            paper.circle(50, 50, 40).attr({
            -    fill: g
            -});
            - - - - - - - - - - - -

            - Returns: - - object - - the gradient element -

            - - - - -
            -
            -
            - -
            -
            -

            Paper.toString()

            -
            -
            -
            -
            - - - - -

            Returns SVG code for the Paper -

            - - - - - - - - - - - - - - -

            - Returns: - - string - - SVG code for the Paper -

            - - - - -
            -
            -
            - -
            -
            -

            Paper.toDataURL()

            -
            -
            -
            -
            - - - - -

            Returns SVG code for the Paper as Data URI string. -

            - - - - - - - - - - - - - - -

            - Returns: - - string - - Data URI string -

            - - - - -
            -
            -
            - -
            -
            -

            Paper.clear()

            -
            -
            -
            -
            - - - - -

            Removes all child nodes of the paper, except <defs>. -

            - - - - - - - - -
            -
            -
            - -
            -
            -

            Element.addClass(value)

            -
            -
            -
            -
            - - - - -

            Adds given class name or list of class names to the element. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. value - string - class name or space separated list of class names
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - original element. -

            - - - - -
            -
            -
            - -
            -
            -

            Element.removeClass(value)

            -
            -
            -
            -
            - - - - -

            Removes given class name or list of class names from the element. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. value - string - class name or space separated list of class names
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - original element. -

            - - - - -
            -
            -
            - -
            -
            -

            Element.hasClass(value)

            -
            -
            -
            -
            - - - - -

            Checks if the element has a given class name in the list of class names applied to it. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. value - string - class name
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - boolean - - true if the element has given class -

            - - - - -
            -
            -
            - -
            -
            -

            Element.toggleClass(value, flag)

            -
            -
            -
            -
            - - - - -

            Add or remove one or more classes from the element, depending on either -the class’s presence or the value of the flag argument. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. value - string - class name or space separated list of class names
            2. -
            3. flag - boolean - value to determine whether the class should be added or removed
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - Element - - original element. -

            - - - - -
            -
            -
            - -
            -
            -

            mina(a, A, b, B, get, set, [easing])

            -
            -
            -
            -
            - - - - -

            Generic animation of numbers -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. a - number - start slave number
            2. -
            3. A - number - end slave number
            4. -
            5. b - number - start master number (start time in general case)
            6. -
            7. B - number - end master number (end time in gereal case)
            8. -
            9. get - function - getter of master number (see mina.time)
            10. -
            11. set - function - setter of slave number
            12. -
            13. easing - function - easing function, default is mina.linear
            14. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - animation descriptor -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - id - string - animation id, -
              2. - - - -
              3. - start - number - start slave number, -
              4. - - - -
              5. - end - number - end slave number, -
              6. - - - -
              7. - b - number - start master number, -
              8. - - - -
              9. - s - number - animation status (0..1), -
              10. - - - -
              11. - dur - number - animation duration, -
              12. - - - -
              13. - spd - number - animation speed, -
              14. - - - -
              15. - get - function - getter of master number (see mina.time), -
              16. - - - -
              17. - set - function - setter of slave number, -
              18. - - - -
              19. - easing - function - easing function, default is mina.linear, -
              20. - - - -
              21. - status - function - status getter/setter, -
              22. - - - -
              23. - speed - function - speed getter/setter, -
              24. - - - -
              25. - duration - function - duration getter/setter, -
              26. - - - -
              27. - stop - function - animation stopper -
              28. - - - -
              29. - pause - function - pauses the animation -
              30. - - - -
              31. - resume - function - resumes the animation -
              32. - - - -
              33. - update - function - calles setter with the right value of the animation -
              34. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            mina.time()

            -
            -
            -
            -
            - - - - -

            Returns the current time. Equivalent to: -

            - - - - - - - - - - - - - -
            function () {
            -    return (new Date).getTime();
            -}
            - - - - - -
            -
            -
            - -
            -
            -

            mina.getById(id)

            -
            -
            -
            -
            - - - - -

            Returns an animation by its id -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. id - string - animation's id
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - See mina -

            - - - - -
            -
            -
            - -
            -
            -

            mina.linear(n)

            -
            -
            -
            -
            - - - - -

            Default linear easing -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. n - number - input 0..1
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - output 0..1 -

            - - - - -
            -
            -
            - -
            -
            -

            mina.easeout(n)

            -
            -
            -
            -
            - - - - -

            Easeout easing -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. n - number - input 0..1
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - output 0..1 -

            - - - - -
            -
            -
            - -
            -
            -

            mina.easein(n)

            -
            -
            -
            -
            - - - - -

            Easein easing -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. n - number - input 0..1
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - output 0..1 -

            - - - - -
            -
            -
            - -
            -
            -

            mina.easeinout(n)

            -
            -
            -
            -
            - - - - -

            Easeinout easing -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. n - number - input 0..1
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - output 0..1 -

            - - - - -
            -
            -
            - -
            -
            -

            mina.backin(n)

            -
            -
            -
            -
            - - - - -

            Backin easing -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. n - number - input 0..1
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - output 0..1 -

            - - - - -
            -
            -
            - -
            -
            -

            mina.backout(n)

            -
            -
            -
            -
            - - - - -

            Backout easing -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. n - number - input 0..1
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - output 0..1 -

            - - - - -
            -
            -
            - -
            -
            -

            mina.elastic(n)

            -
            -
            -
            -
            - - - - -

            Elastic easing -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. n - number - input 0..1
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - output 0..1 -

            - - - - -
            -
            -
            - -
            -
            -

            mina.bounce(n)

            -
            -
            -
            -
            - - - - -

            Bounce easing -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. n - number - input 0..1
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - output 0..1 -

            - - - - -
            -
            -
            - -
            -
            -

            Paper.filter(filstr)

            -
            -
            -
            -
            - - - - -

            Creates a <filter> element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. filstr - string - SVG fragment of filter provided as a string
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - - -

            Note: It is recommended to use filters embedded into the page inside an empty SVG element. -

            - - - - - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var f = paper.filter(''),
            -    c = paper.circle(10, 10, 10).attr({
            -        filter: f
            -    });
            - - - - - -
            -
            -
            - -
            -
            -

            Snap.filter.blur(x, [y])

            -
            -
            -
            -
            - - - - -

            Returns an SVG markup string for the blur filter -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. x - number - amount of horizontal blur, in pixels
            2. -
            3. y - number - amount of vertical blur, in pixels
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - filter representation -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var f = paper.filter(Snap.filter.blur(5, 10)),
            -    c = paper.circle(10, 10, 10).attr({
            -        filter: f
            -    });
            - - - - - -
            -
            -
            - -
            -
            -

            Snap.filter.shadow(…)

            -
            -
            -
            -
            - - - - -

            Returns an SVG markup string for the shadow filter -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. dx - number - horizontal shift of the shadow, in pixels
            2. -
            3. dy - number - vertical shift of the shadow, in pixels
            4. -
            5. blur - number - amount of blur
            6. -
            7. color - string - color of the shadow
            8. -
            9. opacity - number - 0..1 opacity of the shadow
            10. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. dx - number - horizontal shift of the shadow, in pixels
            2. -
            3. dy - number - vertical shift of the shadow, in pixels
            4. -
            5. color - string - color of the shadow
            6. -
            7. opacity - number - 0..1 opacity of the shadow
            8. - -
            -
            - - - - - - - - -

            which makes blur default to 4. Or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. dx - number - horizontal shift of the shadow, in pixels
            2. -
            3. dy - number - vertical shift of the shadow, in pixels
            4. -
            5. opacity - number - 0..1 opacity of the shadow
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - filter representation -

            - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            var f = paper.filter(Snap.filter.shadow(0, 2, 3)),
            -    c = paper.circle(10, 10, 10).attr({
            -        filter: f
            -    });
            - - - - - -
            -
            -
            - -
            -
            -

            Snap.filter.grayscale(amount)

            -
            -
            -
            -
            - - - - -

            Returns an SVG markup string for the grayscale filter -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. amount - number - amount of filter (0..1)
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - filter representation -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.filter.sepia(amount)

            -
            -
            -
            -
            - - - - -

            Returns an SVG markup string for the sepia filter -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. amount - number - amount of filter (0..1)
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - filter representation -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.filter.saturate(amount)

            -
            -
            -
            -
            - - - - -

            Returns an SVG markup string for the saturate filter -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. amount - number - amount of filter (0..1)
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - filter representation -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.filter.hueRotate(angle)

            -
            -
            -
            -
            - - - - -

            Returns an SVG markup string for the hue-rotate filter -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. angle - number - angle of rotation
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - filter representation -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.filter.invert(amount)

            -
            -
            -
            -
            - - - - -

            Returns an SVG markup string for the invert filter -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. amount - number - amount of filter (0..1)
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - filter representation -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.filter.brightness(amount)

            -
            -
            -
            -
            - - - - -

            Returns an SVG markup string for the brightness filter -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. amount - number - amount of filter (0..1)
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - filter representation -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.filter.contrast(amount)

            -
            -
            -
            -
            - - - - -

            Returns an SVG markup string for the contrast filter -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. amount - number - amount of filter (0..1)
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - filter representation -

            - - - - -
            -
            -
            - -
            -
            -

            Element.click(handler)

            -
            -
            -
            -
            - - - - -

            Adds a click event handler to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.unclick(handler)

            -
            -
            -
            -
            - - - - -

            Removes a click event handler from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.dblclick(handler)

            -
            -
            -
            -
            - - - - -

            Adds a double click event handler to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.undblclick(handler)

            -
            -
            -
            -
            - - - - -

            Removes a double click event handler from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.mousedown(handler)

            -
            -
            -
            -
            - - - - -

            Adds a mousedown event handler to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.unmousedown(handler)

            -
            -
            -
            -
            - - - - -

            Removes a mousedown event handler from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.mousemove(handler)

            -
            -
            -
            -
            - - - - -

            Adds a mousemove event handler to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.unmousemove(handler)

            -
            -
            -
            -
            - - - - -

            Removes a mousemove event handler from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.mouseout(handler)

            -
            -
            -
            -
            - - - - -

            Adds a mouseout event handler to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.unmouseout(handler)

            -
            -
            -
            -
            - - - - -

            Removes a mouseout event handler from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.mouseover(handler)

            -
            -
            -
            -
            - - - - -

            Adds a mouseover event handler to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.unmouseover(handler)

            -
            -
            -
            -
            - - - - -

            Removes a mouseover event handler from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.mouseup(handler)

            -
            -
            -
            -
            - - - - -

            Adds a mouseup event handler to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.unmouseup(handler)

            -
            -
            -
            -
            - - - - -

            Removes a mouseup event handler from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.touchstart(handler)

            -
            -
            -
            -
            - - - - -

            Adds a touchstart event handler to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.untouchstart(handler)

            -
            -
            -
            -
            - - - - -

            Removes a touchstart event handler from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.touchmove(handler)

            -
            -
            -
            -
            - - - - -

            Adds a touchmove event handler to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.untouchmove(handler)

            -
            -
            -
            -
            - - - - -

            Removes a touchmove event handler from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.touchend(handler)

            -
            -
            -
            -
            - - - - -

            Adds a touchend event handler to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.untouchend(handler)

            -
            -
            -
            -
            - - - - -

            Removes a touchend event handler from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.touchcancel(handler)

            -
            -
            -
            -
            - - - - -

            Adds a touchcancel event handler to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.untouchcancel(handler)

            -
            -
            -
            -
            - - - - -

            Removes a touchcancel event handler from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. handler - function - handler for the event
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.hover(f_in, f_out, [icontext], [ocontext])

            -
            -
            -
            -
            - - - - -

            Adds hover event handlers to the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. f_in - function - handler for hover in
            2. -
            3. f_out - function - handler for hover out
            4. -
            5. icontext - object - context for hover in handler
            6. -
            7. ocontext - object - context for hover out handler
            8. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.unhover(f_in, f_out)

            -
            -
            -
            -
            - - - - -

            Removes hover event handlers from the element -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. f_in - function - handler for hover in
            2. -
            3. f_out - function - handler for hover out
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.drag(onmove, onstart, onend, [mcontext], [scontext], [econtext])

            -
            -
            -
            -
            - - - - -

            Adds event handlers for an element's drag gesture -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. onmove - function - handler for moving
            2. -
            3. onstart - function - handler for drag start
            4. -
            5. onend - function - handler for drag end
            6. -
            7. mcontext - object - context for moving handler
            8. -
            9. scontext - object - context for drag start handler
            10. -
            11. econtext - object - context for drag end handler
            12. - -
            -
            - - - - - - - - -

            Additionaly following drag events are triggered: drag.start.<id> on start, -drag.end.<id> on end and drag.move.<id> on every move. When element is dragged over another element -drag.over.<id> fires as well. -

            Start event and start handler are called in specified context or in context of the element with following parameters: -

            - - - - - - - - - - - - - - - -
              - - -
            1. - x - number - x position of the mouse -
            2. - - - -
            3. - y - number - y position of the mouse -
            4. - - - -
            5. - event - object - DOM event object -
            6. - - -
            - - - -

            Move event and move handler are called in specified context or in context of the element with following parameters: -

            - - - - - - - - - - - - - - - -
              - - -
            1. - dx - number - shift by x from the start point -
            2. - - - -
            3. - dy - number - shift by y from the start point -
            4. - - - -
            5. - x - number - x position of the mouse -
            6. - - - -
            7. - y - number - y position of the mouse -
            8. - - - -
            9. - event - object - DOM event object -
            10. - - -
            - - - -

            End event and end handler are called in specified context or in context of the element with following parameters: -

            - - - - - - - - - - - - - - - -
              - - -
            1. - event - object - DOM event object -
            2. - - -
            - - - - - - - - -

            - Returns: - - object - - Element -

            - - - - -
            -
            -
            - -
            -
            -

            Element.undrag()

            -
            -
            -
            -
            - - - - -

            Removes all drag event handlers from the given element -

            - - - - - - - - -
            -
            -
            - -
            -
            -

            Snap.path.getTotalLength(path)

            -
            -
            -
            -
            - - - - -

            Returns the length of the given path in pixels -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. path - string - SVG path string
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - number - - length -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.path.getPointAtLength(path, length)

            -
            -
            -
            -
            - - - - -

            Returns the coordinates of the point located at the given length along the given path -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. path - string - SVG path string
            2. -
            3. length - number - length, in pixels, from the start of the path, excluding non-rendering jumps
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - representation of the point: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - x: - number - x coordinate, -
              2. - - - -
              3. - y: - number - y coordinate, -
              4. - - - -
              5. - alpha: - number - angle of derivative -
              6. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.path.getSubpath(path, from, to)

            -
            -
            -
            -
            - - - - -

            Returns the subpath of a given path between given start and end lengths -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. path - string - SVG path string
            2. -
            3. from - number - length, in pixels, from the start of the path to the start of the segment
            4. -
            5. to - number - length, in pixels, from the start of the path to the end of the segment
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - path string definition for the segment -

            - - - - -
            -
            -
            - -
            -
            -

            Element.getTotalLength()

            -
            -
            -
            -
            - - - - -

            Returns the length of the path in pixels (only works for path elements) -

            - - - - - - - - - - - - - - -

            - Returns: - - number - - length -

            - - - - -
            -
            -
            - -
            -
            -

            Element.getPointAtLength(length)

            -
            -
            -
            -
            - - - - -

            Returns coordinates of the point located at the given length on the given path (only works for path elements) -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. length - number - length, in pixels, from the start of the path, excluding non-rendering jumps
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - representation of the point: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - x: - number - x coordinate, -
              2. - - - -
              3. - y: - number - y coordinate, -
              4. - - - -
              5. - alpha: - number - angle of derivative -
              6. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Element.getSubpath(from, to)

            -
            -
            -
            -
            - - - - -

            Returns subpath of a given element from given start and end lengths (only works for path elements) -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. from - number - length, in pixels, from the start of the path to the start of the segment
            2. -
            3. to - number - length, in pixels, from the start of the path to the end of the segment
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - path string definition for the segment -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.path.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t)

            -
            -
            -
            -
            - - - - -

            Utility method -Finds dot coordinates on the given cubic beziér curve at the given t -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. p1x - number - x of the first point of the curve
            2. -
            3. p1y - number - y of the first point of the curve
            4. -
            5. c1x - number - x of the first anchor of the curve
            6. -
            7. c1y - number - y of the first anchor of the curve
            8. -
            9. c2x - number - x of the second anchor of the curve
            10. -
            11. c2y - number - y of the second anchor of the curve
            12. -
            13. p2x - number - x of the second point of the curve
            14. -
            15. p2y - number - y of the second point of the curve
            16. -
            17. t - number - position on the curve (0..1)
            18. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - point information in format: -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - x: - number - x coordinate of the point, -
              2. - - - -
              3. - y: - number - y coordinate of the point, -
              4. - - - -
              5. m: {
                  - - - -
                1. - x: - number - x coordinate of the left anchor, -
                2. - - - -
                3. - y: - number - y coordinate of the left anchor -
                4. - - - -
              6. },
              7. - - - -
              8. n: {
                  - - - -
                1. - x: - number - x coordinate of the right anchor, -
                2. - - - -
                3. - y: - number - y coordinate of the right anchor -
                4. - - - -
              9. },
              10. - - - -
              11. start: {
                  - - - -
                1. - x: - number - x coordinate of the start of the curve, -
                2. - - - -
                3. - y: - number - y coordinate of the start of the curve -
                4. - - - -
              12. },
              13. - - - -
              14. end: {
                  - - - -
                1. - x: - number - x coordinate of the end of the curve, -
                2. - - - -
                3. - y: - number - y coordinate of the end of the curve -
                4. - - - -
              15. },
              16. - - - -
              17. - alpha: - number - angle of the curve derivative at the point -
              18. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.path.bezierBBox(…)

            -
            -
            -
            -
            - - - - -

            Utility method -Returns the bounding box of a given cubic beziér curve -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. p1x - number - x of the first point of the curve
            2. -
            3. p1y - number - y of the first point of the curve
            4. -
            5. c1x - number - x of the first anchor of the curve
            6. -
            7. c1y - number - y of the first anchor of the curve
            8. -
            9. c2x - number - x of the second anchor of the curve
            10. -
            11. c2y - number - y of the second anchor of the curve
            12. -
            13. p2x - number - x of the second point of the curve
            14. -
            15. p2y - number - y of the second point of the curve
            16. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. bez - array - array of six points for beziér curve
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - bounding box -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - x: - number - x coordinate of the left top point of the box, -
              2. - - - -
              3. - y: - number - y coordinate of the left top point of the box, -
              4. - - - -
              5. - x2: - number - x coordinate of the right bottom point of the box, -
              6. - - - -
              7. - y2: - number - y coordinate of the right bottom point of the box, -
              8. - - - -
              9. - width: - number - width of the box, -
              10. - - - -
              11. - height: - number - height of the box -
              12. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.path.isPointInsideBBox(bbox, x, y)

            -
            -
            -
            -
            - - - - -

            Utility method -Returns true if given point is inside bounding box -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. bbox - string - bounding box
            2. -
            3. x - string - x coordinate of the point
            4. -
            5. y - string - y coordinate of the point
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - boolean - - true if point is inside -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.path.isBBoxIntersect(bbox1, bbox2)

            -
            -
            -
            -
            - - - - -

            Utility method -Returns true if two bounding boxes intersect -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. bbox1 - string - first bounding box
            2. -
            3. bbox2 - string - second bounding box
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - boolean - - true if bounding boxes intersect -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.path.intersection(path1, path2)

            -
            -
            -
            -
            - - - - -

            Utility method -Finds intersections of two paths -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. path1 - string - path string
            2. -
            3. path2 - string - path string
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - array - - dots of intersection -

            - - - - - - - - - - - -
              - - -
            1. [
            2. - - - -
            3. {
                - - - -
              1. - x: - number - x coordinate of the point, -
              2. - - - -
              3. - y: - number - y coordinate of the point, -
              4. - - - -
              5. - t1: - number - t value for segment of path1, -
              6. - - - -
              7. - t2: - number - t value for segment of path2, -
              8. - - - -
              9. - segment1: - number - order number for segment of path1, -
              10. - - - -
              11. - segment2: - number - order number for segment of path2, -
              12. - - - -
              13. - bez1: - array - eight coordinates representing beziér curve for the segment of path1, -
              14. - - - -
              15. - bez2: - array - eight coordinates representing beziér curve for the segment of path2 -
              16. - - - -
            4. }
            5. - - - -
            6. ]
            7. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.path.isPointInside(path, x, y)

            -
            -
            -
            -
            - - - - -

            Utility method -Returns true if given point is inside a given closed path. -

            Note: fill mode doesn’t affect the result of this method. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. path - string - path string
            2. -
            3. x - number - x of the point
            4. -
            5. y - number - y of the point
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - boolean - - true if point is inside the path -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.path.getBBox(path)

            -
            -
            -
            -
            - - - - -

            Utility method -Returns the bounding box of a given path -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. path - string - path string
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - bounding box -

            - - - - - - - - - - - -
              - - -
            1. {
                - - - -
              1. - x: - number - x coordinate of the left top point of the box, -
              2. - - - -
              3. - y: - number - y coordinate of the left top point of the box, -
              4. - - - -
              5. - x2: - number - x coordinate of the right bottom point of the box, -
              6. - - - -
              7. - y2: - number - y coordinate of the right bottom point of the box, -
              8. - - - -
              9. - width: - number - width of the box, -
              10. - - - -
              11. - height: - number - height of the box -
              12. - - - -
            2. }
            3. - - -
            - - -
            -
            -
            - -
            -
            -

            Snap.path.toRelative(path)

            -
            -
            -
            -
            - - - - -

            Utility method -Converts path coordinates into relative values -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. path - string - path string
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - array - - path string -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.path.toAbsolute(path)

            -
            -
            -
            -
            - - - - -

            Utility method -Converts path coordinates into absolute values -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. path - string - path string
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - array - - path string -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.path.toCubic(pathString)

            -
            -
            -
            -
            - - - - -

            Utility method -Converts path to a new path where all segments are cubic beziér curves -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. pathString - string array - path string or array of segments
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - array - - array of segments -

            - - - - -
            -
            -
            - -
            -
            -

            Snap.path.map(path, matrix)

            -
            -
            -
            -
            - - - - -

            Transform the path string with the given matrix -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. path - string - path string
            2. -
            3. matrix - object - see Matrix
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - string - - transformed path string -

            - - - - -
            -
            -
            - -
            -
            -

            Set.push()

            -
            -
            -
            -
            - - - - -

            Adds each argument to the current set -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - original element -

            - - - - -
            -
            -
            - -
            -
            -

            Set.pop()

            -
            -
            -
            -
            - - - - -

            Removes last element and returns it -

            - - - - - - - - - - - - - - -

            - Returns: - - object - - element -

            - - - - -
            -
            -
            - -
            -
            -

            Set.forEach(callback, thisArg)

            -
            -
            -
            -
            - - - - -

            Executes given function for each element in the set -

            If the function returns false, the loop stops running. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. callback - function - function to run
            2. -
            3. thisArg - object - context object for the callback
            4. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Set object -

            - - - - -
            -
            -
            - -
            -
            -

            Set.animate(…)

            -
            -
            -
            -
            - - - - -

            Animates each element in set in sync. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. attrs - object - key-value pairs of destination attributes
            2. -
            3. duration - number - duration of the animation in milliseconds
            4. -
            5. easing - function - easing function from mina or custom
            6. -
            7. callback - function - callback function that executes when the animation ends
            8. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. animation - array - array of animation parameter for each element in set in format [attrs, duration, easing, callback]
            2. - -
            -
            - - - - - - - - - - - -

            Usage

            - - - - - - - - - - - -
            // animate all elements in set to radius 10
            -set.animate({r: 10}, 500, mina.easein);
            -// or
            -// animate first element to radius 10, but second to radius 20 and in different time
            -set.animate([{r: 10}, 500, mina.easein], [{r: 20}, 1500, mina.easein]);
            - - - - - - - - - - - -

            - Returns: - - Element - - the current element -

            - - - - -
            -
            -
            - -
            -
            -

            Set.bind(…)

            -
            -
            -
            -
            - - - - -

            Specifies how to handle a specific attribute when applied -to a set. -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. attr - string - attribute name
            2. -
            3. callback - function - function to run
            4. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. attr - string - attribute name
            2. -
            3. element - Element - specific element in the set to apply the attribute to
            4. - -
            -
            - - - - - - - - -

            or -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. attr - string - attribute name
            2. -
            3. element - Element - specific element in the set to apply the attribute to
            4. -
            5. eattr - string - attribute on the element to bind the attribute to
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - Set object -

            - - - - -
            -
            -
            - -
            -
            -

            Set.clear()

            -
            -
            -
            -
            - - - - -

            Removes all elements from the set -

            - - - - - - - - -
            -
            -
            - -
            -
            -

            Set.splice(index, count, [insertion…])

            -
            -
            -
            -
            - - - - -

            Removes range of elements from the set -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. index - number - position of the deletion
            2. -
            3. count - number - number of element to remove
            4. -
            5. insertion… - object - elements to insert
            6. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - object - - set elements that were deleted -

            - - - - -
            -
            -
            - -
            -
            -

            Set.exclude(element)

            -
            -
            -
            -
            - - - - -

            Removes given element from the set -

            - - - - - - - - - - -
            -

            Parameters

            -
              -
            1. element - object - element to remove
            2. - -
            -
            - - - - - - - - - - - - - -

            - Returns: - - boolean - - true if object was found and removed from the set -

            - - - - -
            -
            -
            - -
            -
            -
            -
            - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/dr.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/dr.json deleted file mode 100644 index da75abb3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/dr.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "title": "Snap.svg", - "output": "doc/reference.html", - "template": "template.dot", - "files": [{ - "url": "src/svg.js", - "link": "https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js" - }, { - "url": "src/element.js", - "link": "https://github.com/adobe-webplatform/Snap.svg/blob/master/src/element.js" - }, { - "url": "src/matrix.js", - "link": "https://github.com/adobe-webplatform/Snap.svg/blob/master/src/matrix.js" - }, { - "url": "src/paper.js", - "link": "https://github.com/adobe-webplatform/Snap.svg/blob/master/src/paper.js" - }, { - "url": "src/class.js", - "link": "https://github.com/adobe-webplatform/Snap.svg/blob/master/src/class.js" - }, { - "url": "src/equal.js", - "link": "https://github.com/adobe-webplatform/Snap.svg/blob/master/src/equal.js" - }, { - "url": "src/mina.js", - "link": "https://github.com/adobe-webplatform/Snap.svg/blob/master/src/mina.js" - }, { - "url": "src/filter.js", - "link": "https://github.com/adobe-webplatform/Snap.svg/blob/master/src/filter.js" - }, { - "url": "src/mouse.js", - "link": "https://github.com/adobe-webplatform/Snap.svg/blob/master/src/mouse.js" - }, { - "url": "src/path.js", - "link": "https://github.com/adobe-webplatform/Snap.svg/blob/master/src/path.js" - }, { - "url": "src/set.js", - "link": "https://github.com/adobe-webplatform/Snap.svg/blob/master/src/set.js" - }] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/history.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/history.md deleted file mode 100644 index 1543def4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/history.md +++ /dev/null @@ -1,45 +0,0 @@ -#0.4.0 - -* Moved class and element related code into separate plugins -* Added `Element.align()` and `Element.getAlign()` methods -* Added animation support for `viewBox` -* Added support for `` -* Added method `Paper.toDataURL()` -* Added method `Snap.closest()` -* Added methods to work with degrees instead of radians: `Snap.sin()`, `Snap.cos()`, `Snap.tan()`, `Snap.asin()`, `Snap.acos()`, `Snap.atan()` and `Snap.atan2()` -* Added methods `Snap.len()`, `Snap.len2()` and `Snap.closestPoint()` -* Added methods `Element.children()` and `Element.toJSON()` -* Various bug fixes - -#0.3.0 - -* Added `.addClass()`, `.removeClass()`, `.toggleClass()` and `.hasClass()` APIs -* Added `Paper.mask()`, `Paper.ptrn()`, `Paper.use()`, `Paper.svg()` -* Mask & pattern elements are sharing paper methods (just like group) -* Added `Set.bind()` method -* Added syncronisation for `Set.animate()` -* Added opacity to the shadow filter -* Added ability to specify attributes as `"+=10"` or `"-=1em"` or `"*=2"` -* Fix negative scale -* Fix for `path2curve` -* Fixed shared `` issue -* Various bug fixes - -#0.2.0 - -* Added support for text path -* Added `getBBox` method to the paper object -* Added `Element.appendTo()` and `Element.prependTo()` -* Added `getElementByPoint()` -* Added `Set.remove()` method -* Get rid of internal SVG parser in favor of the browser -* Fix for `xlink:href` setting for images -* Fix `Element.animate()` -* Fix for animate and stroke-dashoffset -* Absolute transforms fix -* Fix for animation of SVG transformations, matrices and polygon points -* Various bug fixes - -#0.1.0 - -* Initial release \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/LICENSE deleted file mode 100644 index 86a96fa8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2013 Adobe Systems Incorporated - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/README.md deleted file mode 100644 index 8a3b2ebb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Eve - -Tiny event helping JavaScript library. - -For use case look at e.html diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/component.json deleted file mode 100644 index 650dbed3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/component.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "eve", - "repo": "adobe-webplatform/eve", - "description": "Custom Events", - "version": "0.4.2", - "keywords": ["events"], - "dependencies": {}, - "development": {}, - "main": "eve.js", - "scripts": [ - "eve.js" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/e.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/e.html deleted file mode 100644 index 6687278c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/e.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - Eve Use Case - - - -
            
            -
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/eve.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/eve.js
            deleted file mode 100644
            index e0d9a446..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/eve.js
            +++ /dev/null
            @@ -1,403 +0,0 @@
            -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
            -// 
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -// 
            -// http://www.apache.org/licenses/LICENSE-2.0
            -// 
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -// ┌────────────────────────────────────────────────────────────┐ \\
            -// │ Eve 0.4.2 - JavaScript Events Library                      │ \\
            -// ├────────────────────────────────────────────────────────────┤ \\
            -// │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\
            -// └────────────────────────────────────────────────────────────┘ \\
            -
            -(function (glob) {
            -    var version = "0.4.2",
            -        has = "hasOwnProperty",
            -        separator = /[\.\/]/,
            -        comaseparator = /\s*,\s*/,
            -        wildcard = "*",
            -        fun = function () {},
            -        numsort = function (a, b) {
            -            return a - b;
            -        },
            -        current_event,
            -        stop,
            -        events = {n: {}},
            -        firstDefined = function () {
            -            for (var i = 0, ii = this.length; i < ii; i++) {
            -                if (typeof this[i] != "undefined") {
            -                    return this[i];
            -                }
            -            }
            -        },
            -        lastDefined = function () {
            -            var i = this.length;
            -            while (--i) {
            -                if (typeof this[i] != "undefined") {
            -                    return this[i];
            -                }
            -            }
            -        },
            -    /*\
            -     * eve
            -     [ method ]
            -
            -     * Fires event with given `name`, given scope and other parameters.
            -
            -     > Arguments
            -
            -     - name (string) name of the *event*, dot (`.`) or slash (`/`) separated
            -     - scope (object) context for the event handlers
            -     - varargs (...) the rest of arguments will be sent to event handlers
            -
            -     = (object) array of returned values from the listeners. Array has two methods `.firstDefined()` and `.lastDefined()` to get first or last not `undefined` value.
            -    \*/
            -        eve = function (name, scope) {
            -            name = String(name);
            -            var e = events,
            -                oldstop = stop,
            -                args = Array.prototype.slice.call(arguments, 2),
            -                listeners = eve.listeners(name),
            -                z = 0,
            -                f = false,
            -                l,
            -                indexed = [],
            -                queue = {},
            -                out = [],
            -                ce = current_event,
            -                errors = [];
            -            out.firstDefined = firstDefined;
            -            out.lastDefined = lastDefined;
            -            current_event = name;
            -            stop = 0;
            -            for (var i = 0, ii = listeners.length; i < ii; i++) if ("zIndex" in listeners[i]) {
            -                indexed.push(listeners[i].zIndex);
            -                if (listeners[i].zIndex < 0) {
            -                    queue[listeners[i].zIndex] = listeners[i];
            -                }
            -            }
            -            indexed.sort(numsort);
            -            while (indexed[z] < 0) {
            -                l = queue[indexed[z++]];
            -                out.push(l.apply(scope, args));
            -                if (stop) {
            -                    stop = oldstop;
            -                    return out;
            -                }
            -            }
            -            for (i = 0; i < ii; i++) {
            -                l = listeners[i];
            -                if ("zIndex" in l) {
            -                    if (l.zIndex == indexed[z]) {
            -                        out.push(l.apply(scope, args));
            -                        if (stop) {
            -                            break;
            -                        }
            -                        do {
            -                            z++;
            -                            l = queue[indexed[z]];
            -                            l && out.push(l.apply(scope, args));
            -                            if (stop) {
            -                                break;
            -                            }
            -                        } while (l)
            -                    } else {
            -                        queue[l.zIndex] = l;
            -                    }
            -                } else {
            -                    out.push(l.apply(scope, args));
            -                    if (stop) {
            -                        break;
            -                    }
            -                }
            -            }
            -            stop = oldstop;
            -            current_event = ce;
            -            return out;
            -        };
            -        // Undocumented. Debug only.
            -        eve._events = events;
            -    /*\
            -     * eve.listeners
            -     [ method ]
            -
            -     * Internal method which gives you array of all event handlers that will be triggered by the given `name`.
            -
            -     > Arguments
            -
            -     - name (string) name of the event, dot (`.`) or slash (`/`) separated
            -
            -     = (array) array of event handlers
            -    \*/
            -    eve.listeners = function (name) {
            -        var names = name.split(separator),
            -            e = events,
            -            item,
            -            items,
            -            k,
            -            i,
            -            ii,
            -            j,
            -            jj,
            -            nes,
            -            es = [e],
            -            out = [];
            -        for (i = 0, ii = names.length; i < ii; i++) {
            -            nes = [];
            -            for (j = 0, jj = es.length; j < jj; j++) {
            -                e = es[j].n;
            -                items = [e[names[i]], e[wildcard]];
            -                k = 2;
            -                while (k--) {
            -                    item = items[k];
            -                    if (item) {
            -                        nes.push(item);
            -                        out = out.concat(item.f || []);
            -                    }
            -                }
            -            }
            -            es = nes;
            -        }
            -        return out;
            -    };
            -    
            -    /*\
            -     * eve.on
            -     [ method ]
            -     **
            -     * Binds given event handler with a given name. You can use wildcards “`*`” for the names:
            -     | eve.on("*.under.*", f);
            -     | eve("mouse.under.floor"); // triggers f
            -     * Use @eve to trigger the listener.
            -     **
            -     > Arguments
            -     **
            -     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards
            -     - f (function) event handler function
            -     **
            -     = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment. 
            -     > Example:
            -     | eve.on("mouse", eatIt)(2);
            -     | eve.on("mouse", scream);
            -     | eve.on("mouse", catchIt)(1);
            -     * This will ensure that `catchIt` function will be called before `eatIt`.
            -     *
            -     * If you want to put your handler before non-indexed handlers, specify a negative value.
            -     * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”.
            -    \*/
            -    eve.on = function (name, f) {
            -        name = String(name);
            -        if (typeof f != "function") {
            -            return function () {};
            -        }
            -        var names = name.split(comaseparator);
            -        for (var i = 0, ii = names.length; i < ii; i++) {
            -            (function (name) {
            -                var names = name.split(separator),
            -                    e = events,
            -                    exist;
            -                for (var i = 0, ii = names.length; i < ii; i++) {
            -                    e = e.n;
            -                    e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}});
            -                }
            -                e.f = e.f || [];
            -                for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) {
            -                    exist = true;
            -                    break;
            -                }
            -                !exist && e.f.push(f);
            -            }(names[i]));
            -        }
            -        return function (zIndex) {
            -            if (+zIndex == +zIndex) {
            -                f.zIndex = +zIndex;
            -            }
            -        };
            -    };
            -    /*\
            -     * eve.f
            -     [ method ]
            -     **
            -     * Returns function that will fire given event with optional arguments.
            -     * Arguments that will be passed to the result function will be also
            -     * concated to the list of final arguments.
            -     | el.onclick = eve.f("click", 1, 2);
            -     | eve.on("click", function (a, b, c) {
            -     |     console.log(a, b, c); // 1, 2, [event object]
            -     | });
            -     > Arguments
            -     - event (string) event name
            -     - varargs (…) and any other arguments
            -     = (function) possible event handler function
            -    \*/
            -    eve.f = function (event) {
            -        var attrs = [].slice.call(arguments, 1);
            -        return function () {
            -            eve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0)));
            -        };
            -    };
            -    /*\
            -     * eve.stop
            -     [ method ]
            -     **
            -     * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing.
            -    \*/
            -    eve.stop = function () {
            -        stop = 1;
            -    };
            -    /*\
            -     * eve.nt
            -     [ method ]
            -     **
            -     * Could be used inside event handler to figure out actual name of the event.
            -     **
            -     > Arguments
            -     **
            -     - subname (string) #optional subname of the event
            -     **
            -     = (string) name of the event, if `subname` is not specified
            -     * or
            -     = (boolean) `true`, if current event’s name contains `subname`
            -    \*/
            -    eve.nt = function (subname) {
            -        if (subname) {
            -            return new RegExp("(?:\\.|\\/|^)" + subname + "(?:\\.|\\/|$)").test(current_event);
            -        }
            -        return current_event;
            -    };
            -    /*\
            -     * eve.nts
            -     [ method ]
            -     **
            -     * Could be used inside event handler to figure out actual name of the event.
            -     **
            -     **
            -     = (array) names of the event
            -    \*/
            -    eve.nts = function () {
            -        return current_event.split(separator);
            -    };
            -    /*\
            -     * eve.off
            -     [ method ]
            -     **
            -     * Removes given function from the list of event listeners assigned to given name.
            -     * If no arguments specified all the events will be cleared.
            -     **
            -     > Arguments
            -     **
            -     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards
            -     - f (function) event handler function
            -    \*/
            -    /*\
            -     * eve.unbind
            -     [ method ]
            -     **
            -     * See @eve.off
            -    \*/
            -    eve.off = eve.unbind = function (name, f) {
            -        if (!name) {
            -            eve._events = events = {n: {}};
            -            return;
            -        }
            -        var names = name.split(comaseparator);
            -        if (names.length > 1) {
            -            for (var i = 0, ii = names.length; i < ii; i++) {
            -                eve.off(names[i], f);
            -            }
            -            return;
            -        }
            -        names = name.split(separator);
            -        var e,
            -            key,
            -            splice,
            -            i, ii, j, jj,
            -            cur = [events];
            -        for (i = 0, ii = names.length; i < ii; i++) {
            -            for (j = 0; j < cur.length; j += splice.length - 2) {
            -                splice = [j, 1];
            -                e = cur[j].n;
            -                if (names[i] != wildcard) {
            -                    if (e[names[i]]) {
            -                        splice.push(e[names[i]]);
            -                    }
            -                } else {
            -                    for (key in e) if (e[has](key)) {
            -                        splice.push(e[key]);
            -                    }
            -                }
            -                cur.splice.apply(cur, splice);
            -            }
            -        }
            -        for (i = 0, ii = cur.length; i < ii; i++) {
            -            e = cur[i];
            -            while (e.n) {
            -                if (f) {
            -                    if (e.f) {
            -                        for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) {
            -                            e.f.splice(j, 1);
            -                            break;
            -                        }
            -                        !e.f.length && delete e.f;
            -                    }
            -                    for (key in e.n) if (e.n[has](key) && e.n[key].f) {
            -                        var funcs = e.n[key].f;
            -                        for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) {
            -                            funcs.splice(j, 1);
            -                            break;
            -                        }
            -                        !funcs.length && delete e.n[key].f;
            -                    }
            -                } else {
            -                    delete e.f;
            -                    for (key in e.n) if (e.n[has](key) && e.n[key].f) {
            -                        delete e.n[key].f;
            -                    }
            -                }
            -                e = e.n;
            -            }
            -        }
            -    };
            -    /*\
            -     * eve.once
            -     [ method ]
            -     **
            -     * Binds given event handler with a given name to only run once then unbind itself.
            -     | eve.once("login", f);
            -     | eve("login"); // triggers f
            -     | eve("login"); // no listeners
            -     * Use @eve to trigger the listener.
            -     **
            -     > Arguments
            -     **
            -     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards
            -     - f (function) event handler function
            -     **
            -     = (function) same return function as @eve.on
            -    \*/
            -    eve.once = function (name, f) {
            -        var f2 = function () {
            -            eve.unbind(name, f2);
            -            return f.apply(this, arguments);
            -        };
            -        return eve.on(name, f2);
            -    };
            -    /*\
            -     * eve.version
            -     [ property (string) ]
            -     **
            -     * Current version of the library.
            -    \*/
            -    eve.version = version;
            -    eve.toString = function () {
            -        return "You are running Eve " + version;
            -    };
            -    (typeof module != "undefined" && module.exports) ? (module.exports = eve) : (typeof define === "function" && define.amd ? (define("eve", [], function() { return eve; })) : (glob.eve = eve));
            -})(this);
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/package.json
            deleted file mode 100644
            index 3683fb7a..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/node_modules/eve/package.json
            +++ /dev/null
            @@ -1,40 +0,0 @@
            -{
            -  "name": "eve",
            -  "author": {
            -    "name": "Dmitry Baranovskiy",
            -    "email": "dmitry@baranovskiy.com",
            -    "url": "http://dmitry.baranovskiy.com"
            -  },
            -  "description": "Simple custom events",
            -  "version": "0.4.2",
            -  "main": "./eve.js",
            -  "repository": {
            -    "type": "git",
            -    "url": "git+ssh://git@github.com/adobe-webplatform/eve.git"
            -  },
            -  "bugs": {
            -    "url": "https://github.com/adobe-webplatform/eve/issues"
            -  },
            -  "_id": "eve@0.4.2",
            -  "dist": {
            -    "shasum": "7eea0afc0e4efb7c9365615315a3576833ead2ae",
            -    "tarball": "https://registry.npmjs.org/eve/-/eve-0.4.2.tgz"
            -  },
            -  "_from": "eve@>=0.4.2 <0.5.0",
            -  "_npmVersion": "1.3.5",
            -  "_npmUser": {
            -    "name": "dmitrybaranovskiy",
            -    "email": "dmitry@baranovskiy.com"
            -  },
            -  "maintainers": [
            -    {
            -      "name": "dmitrybaranovskiy",
            -      "email": "dmitry@baranovskiy.com"
            -    }
            -  ],
            -  "directories": {},
            -  "_shasum": "7eea0afc0e4efb7c9365615315a3576833ead2ae",
            -  "_resolved": "https://registry.npmjs.org/eve/-/eve-0.4.2.tgz",
            -  "readme": "ERROR: No README data found!",
            -  "homepage": "https://github.com/adobe-webplatform/eve#readme"
            -}
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/package.json
            deleted file mode 100644
            index 915bdc04..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/package.json
            +++ /dev/null
            @@ -1,53 +0,0 @@
            -{
            -  "name": "snapsvg",
            -  "version": "0.4.0",
            -  "description": "JavaScript Vector Library",
            -  "main": "./dist/snap.svg.js",
            -  "repository": {
            -    "type": "git",
            -    "url": "git+ssh://git@github.com/adobe-webplatform/Snap.svg.git"
            -  },
            -  "author": {
            -    "name": "Dmitry Baranovskiy"
            -  },
            -  "license": "Apache License v2",
            -  "dependencies": {
            -    "eve": "~0.4.2"
            -  },
            -  "devDependencies": {
            -    "grunt": "~0.4.1",
            -    "grunt-contrib-uglify": "~0.2.0",
            -    "grunt-contrib-concat": "~0.3.0",
            -    "grunt-exec": "~0.4.2",
            -    "mocha": "*",
            -    "expect.js": "*",
            -    "dr.js": "~0.1.0"
            -  },
            -  "gitHead": "7b096009c1dbdb4f4205c71a2c6d4e46af81d782",
            -  "bugs": {
            -    "url": "https://github.com/adobe-webplatform/Snap.svg/issues"
            -  },
            -  "homepage": "https://github.com/adobe-webplatform/Snap.svg",
            -  "_id": "snapsvg@0.4.0",
            -  "scripts": {},
            -  "_shasum": "e0767014167825957de7e125c29b0fa89796ea03",
            -  "_from": "snapsvg@>=0.4.0 <0.5.0",
            -  "_npmVersion": "1.4.28",
            -  "_npmUser": {
            -    "name": "dmitrybaranovskiy",
            -    "email": "dmitry@baranovskiy.com"
            -  },
            -  "maintainers": [
            -    {
            -      "name": "dmitrybaranovskiy",
            -      "email": "dmitry@baranovskiy.com"
            -    }
            -  ],
            -  "dist": {
            -    "shasum": "e0767014167825957de7e125c29b0fa89796ea03",
            -    "tarball": "https://registry.npmjs.org/snapsvg/-/snapsvg-0.4.0.tgz"
            -  },
            -  "directories": {},
            -  "_resolved": "https://registry.npmjs.org/snapsvg/-/snapsvg-0.4.0.tgz",
            -  "readme": "ERROR: No README data found!"
            -}
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/pattern.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/pattern.html
            deleted file mode 100644
            index 2f40a95d..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/pattern.html
            +++ /dev/null
            @@ -1,142 +0,0 @@
            -
            -
            -    
            -        
            -        Pattern
            -        
            -        
            -    
            -    
            -        
            -        
            -    
            -
            \ No newline at end of file
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/segments.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/segments.html
            deleted file mode 100644
            index f7a707e0..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/segments.html
            +++ /dev/null
            @@ -1,465 +0,0 @@
            -
            -
            -    
            -        
            -        
            -        
            -        
            -    
            -    
            -        
            -    
            -
            \ No newline at end of file
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/align.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/align.js
            deleted file mode 100644
            index e9b6b012..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/align.js
            +++ /dev/null
            @@ -1,92 +0,0 @@
            -// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved.
            -//
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -//
            -// http://www.apache.org/licenses/LICENSE-2.0
            -//
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) {
            -    var box = Snap._.box,
            -        is = Snap.is,
            -        firstLetter = /^[^a-z]*([tbmlrc])/i,
            -        toString = function () {
            -            return "T" + this.dx + "," + this.dy;
            -        };
            -    /*\
            -     * Element.getAlign
            -     [ method ]
            -     **
            -     * Returns shift needed to align the element relatively to given element.
            -     * If no elements specified, parent `` container will be used.
            -     - el (object) @optional alignment element
            -     - way (string) one of six values: `"top"`, `"middle"`, `"bottom"`, `"left"`, `"center"`, `"right"`
            -     = (object|string) Object in format `{dx: , dy: }` also has a string representation as a transformation string
            -     > Usage
            -     | el.transform(el.getAlign(el2, "top"));
            -     * or
            -     | var dy = el.getAlign(el2, "top").dy;
            -    \*/
            -    Element.prototype.getAlign = function (el, way) {
            -        if (way == null && is(el, "string")) {
            -            way = el;
            -            el = null;
            -        }
            -        el = el || this.paper;
            -        var bx = el.getBBox ? el.getBBox() : box(el),
            -            bb = this.getBBox(),
            -            out = {};
            -        way = way && way.match(firstLetter);
            -        way = way ? way[1].toLowerCase() : "c";
            -        switch (way) {
            -            case "t":
            -                out.dx = 0;
            -                out.dy = bx.y - bb.y;
            -            break;
            -            case "b":
            -                out.dx = 0;
            -                out.dy = bx.y2 - bb.y2;
            -            break;
            -            case "m":
            -                out.dx = 0;
            -                out.dy = bx.cy - bb.cy;
            -            break;
            -            case "l":
            -                out.dx = bx.x - bb.x;
            -                out.dy = 0;
            -            break;
            -            case "r":
            -                out.dx = bx.x2 - bb.x2;
            -                out.dy = 0;
            -            break;
            -            default:
            -                out.dx = bx.cx - bb.cx;
            -                out.dy = 0;
            -            break;
            -        }
            -        out.toString = toString;
            -        return out;
            -    };
            -    /*\
            -     * Element.align
            -     [ method ]
            -     **
            -     * Aligns the element relatively to given one via transformation.
            -     * If no elements specified, parent `` container will be used.
            -     - el (object) @optional alignment element
            -     - way (string) one of six values: `"top"`, `"middle"`, `"bottom"`, `"left"`, `"center"`, `"right"`
            -     = (object) this element
            -     > Usage
            -     | el.align(el2, "top");
            -     * or
            -     | el.align("middle");
            -    \*/
            -    Element.prototype.align = function (el, way) {
            -        return this.transform("..." + this.getAlign(el, way));
            -    };
            -});
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/amd-banner.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/amd-banner.js
            deleted file mode 100644
            index 390c4aa2..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/amd-banner.js
            +++ /dev/null
            @@ -1,17 +0,0 @@
            -(function (glob, factory) {
            -    // AMD support
            -    if (typeof define == "function" && define.amd) {
            -        // Define as an anonymous module
            -        define(["eve"], function (eve) {
            -            return factory(glob, eve);
            -        });
            -    } else if (typeof exports != 'undefined') {
            -        // Next for Node.js or CommonJS
            -        var eve = require('eve');
            -        module.exports = factory(glob, eve);
            -    } else {
            -        // Browser globals (glob is window)
            -        // Snap adds itself to window
            -        factory(glob, glob.eve);
            -    }
            -}(window || this, function (window, eve) {
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/amd-footer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/amd-footer.js
            deleted file mode 100644
            index ffcc1259..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/amd-footer.js
            +++ /dev/null
            @@ -1,2 +0,0 @@
            -return Snap;
            -}));
            \ No newline at end of file
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/attr.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/attr.js
            deleted file mode 100644
            index c76a1803..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/attr.js
            +++ /dev/null
            @@ -1,411 +0,0 @@
            -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
            -// 
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -// 
            -// http://www.apache.org/licenses/LICENSE-2.0
            -// 
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) {
            -    var has = "hasOwnProperty",
            -        make = Snap._.make,
            -        wrap = Snap._.wrap,
            -        is = Snap.is,
            -        getSomeDefs = Snap._.getSomeDefs,
            -        reURLValue = /^url\(#?([^)]+)\)$/,
            -        $ = Snap._.$,
            -        URL = Snap.url,
            -        Str = String,
            -        separator = Snap._.separator,
            -        E = "";
            -    // Attributes event handlers
            -    eve.on("snap.util.attr.mask", function (value) {
            -        if (value instanceof Element || value instanceof Fragment) {
            -            eve.stop();
            -            if (value instanceof Fragment && value.node.childNodes.length == 1) {
            -                value = value.node.firstChild;
            -                getSomeDefs(this).appendChild(value);
            -                value = wrap(value);
            -            }
            -            if (value.type == "mask") {
            -                var mask = value;
            -            } else {
            -                mask = make("mask", getSomeDefs(this));
            -                mask.node.appendChild(value.node);
            -            }
            -            !mask.node.id && $(mask.node, {
            -                id: mask.id
            -            });
            -            $(this.node, {
            -                mask: URL(mask.id)
            -            });
            -        }
            -    });
            -    (function (clipIt) {
            -        eve.on("snap.util.attr.clip", clipIt);
            -        eve.on("snap.util.attr.clip-path", clipIt);
            -        eve.on("snap.util.attr.clipPath", clipIt);
            -    }(function (value) {
            -        if (value instanceof Element || value instanceof Fragment) {
            -            eve.stop();
            -            if (value.type == "clipPath") {
            -                var clip = value;
            -            } else {
            -                clip = make("clipPath", getSomeDefs(this));
            -                clip.node.appendChild(value.node);
            -                !clip.node.id && $(clip.node, {
            -                    id: clip.id
            -                });
            -            }
            -            $(this.node, {
            -                "clip-path": URL(clip.node.id || clip.id)
            -            });
            -        }
            -    }));
            -    function fillStroke(name) {
            -        return function (value) {
            -            eve.stop();
            -            if (value instanceof Fragment && value.node.childNodes.length == 1 &&
            -                (value.node.firstChild.tagName == "radialGradient" ||
            -                value.node.firstChild.tagName == "linearGradient" ||
            -                value.node.firstChild.tagName == "pattern")) {
            -                value = value.node.firstChild;
            -                getSomeDefs(this).appendChild(value);
            -                value = wrap(value);
            -            }
            -            if (value instanceof Element) {
            -                if (value.type == "radialGradient" || value.type == "linearGradient"
            -                   || value.type == "pattern") {
            -                    if (!value.node.id) {
            -                        $(value.node, {
            -                            id: value.id
            -                        });
            -                    }
            -                    var fill = URL(value.node.id);
            -                } else {
            -                    fill = value.attr(name);
            -                }
            -            } else {
            -                fill = Snap.color(value);
            -                if (fill.error) {
            -                    var grad = Snap(getSomeDefs(this).ownerSVGElement).gradient(value);
            -                    if (grad) {
            -                        if (!grad.node.id) {
            -                            $(grad.node, {
            -                                id: grad.id
            -                            });
            -                        }
            -                        fill = URL(grad.node.id);
            -                    } else {
            -                        fill = value;
            -                    }
            -                } else {
            -                    fill = Str(fill);
            -                }
            -            }
            -            var attrs = {};
            -            attrs[name] = fill;
            -            $(this.node, attrs);
            -            this.node.style[name] = E;
            -        };
            -    }
            -    eve.on("snap.util.attr.fill", fillStroke("fill"));
            -    eve.on("snap.util.attr.stroke", fillStroke("stroke"));
            -    var gradrg = /^([lr])(?:\(([^)]*)\))?(.*)$/i;
            -    eve.on("snap.util.grad.parse", function parseGrad(string) {
            -        string = Str(string);
            -        var tokens = string.match(gradrg);
            -        if (!tokens) {
            -            return null;
            -        }
            -        var type = tokens[1],
            -            params = tokens[2],
            -            stops = tokens[3];
            -        params = params.split(/\s*,\s*/).map(function (el) {
            -            return +el == el ? +el : el;
            -        });
            -        if (params.length == 1 && params[0] == 0) {
            -            params = [];
            -        }
            -        stops = stops.split("-");
            -        stops = stops.map(function (el) {
            -            el = el.split(":");
            -            var out = {
            -                color: el[0]
            -            };
            -            if (el[1]) {
            -                out.offset = parseFloat(el[1]);
            -            }
            -            return out;
            -        });
            -        return {
            -            type: type,
            -            params: params,
            -            stops: stops
            -        };
            -    });
            -
            -    eve.on("snap.util.attr.d", function (value) {
            -        eve.stop();
            -        if (is(value, "array") && is(value[0], "array")) {
            -            value = Snap.path.toString.call(value);
            -        }
            -        value = Str(value);
            -        if (value.match(/[ruo]/i)) {
            -            value = Snap.path.toAbsolute(value);
            -        }
            -        $(this.node, {d: value});
            -    })(-1);
            -    eve.on("snap.util.attr.#text", function (value) {
            -        eve.stop();
            -        value = Str(value);
            -        var txt = glob.doc.createTextNode(value);
            -        while (this.node.firstChild) {
            -            this.node.removeChild(this.node.firstChild);
            -        }
            -        this.node.appendChild(txt);
            -    })(-1);
            -    eve.on("snap.util.attr.path", function (value) {
            -        eve.stop();
            -        this.attr({d: value});
            -    })(-1);
            -    eve.on("snap.util.attr.class", function (value) {
            -        eve.stop();
            -        this.node.className.baseVal = value;
            -    })(-1);
            -    eve.on("snap.util.attr.viewBox", function (value) {
            -        var vb;
            -        if (is(value, "object") && "x" in value) {
            -            vb = [value.x, value.y, value.width, value.height].join(" ");
            -        } else if (is(value, "array")) {
            -            vb = value.join(" ");
            -        } else {
            -            vb = value;
            -        }
            -        $(this.node, {
            -            viewBox: vb
            -        });
            -        eve.stop();
            -    })(-1);
            -    eve.on("snap.util.attr.transform", function (value) {
            -        this.transform(value);
            -        eve.stop();
            -    })(-1);
            -    eve.on("snap.util.attr.r", function (value) {
            -        if (this.type == "rect") {
            -            eve.stop();
            -            $(this.node, {
            -                rx: value,
            -                ry: value
            -            });
            -        }
            -    })(-1);
            -    eve.on("snap.util.attr.textpath", function (value) {
            -        eve.stop();
            -        if (this.type == "text") {
            -            var id, tp, node;
            -            if (!value && this.textPath) {
            -                tp = this.textPath;
            -                while (tp.node.firstChild) {
            -                    this.node.appendChild(tp.node.firstChild);
            -                }
            -                tp.remove();
            -                delete this.textPath;
            -                return;
            -            }
            -            if (is(value, "string")) {
            -                var defs = getSomeDefs(this),
            -                    path = wrap(defs.parentNode).path(value);
            -                defs.appendChild(path.node);
            -                id = path.id;
            -                path.attr({id: id});
            -            } else {
            -                value = wrap(value);
            -                if (value instanceof Element) {
            -                    id = value.attr("id");
            -                    if (!id) {
            -                        id = value.id;
            -                        value.attr({id: id});
            -                    }
            -                }
            -            }
            -            if (id) {
            -                tp = this.textPath;
            -                node = this.node;
            -                if (tp) {
            -                    tp.attr({"xlink:href": "#" + id});
            -                } else {
            -                    tp = $("textPath", {
            -                        "xlink:href": "#" + id
            -                    });
            -                    while (node.firstChild) {
            -                        tp.appendChild(node.firstChild);
            -                    }
            -                    node.appendChild(tp);
            -                    this.textPath = wrap(tp);
            -                }
            -            }
            -        }
            -    })(-1);
            -    eve.on("snap.util.attr.text", function (value) {
            -        if (this.type == "text") {
            -            var i = 0,
            -                node = this.node,
            -                tuner = function (chunk) {
            -                    var out = $("tspan");
            -                    if (is(chunk, "array")) {
            -                        for (var i = 0; i < chunk.length; i++) {
            -                            out.appendChild(tuner(chunk[i]));
            -                        }
            -                    } else {
            -                        out.appendChild(glob.doc.createTextNode(chunk));
            -                    }
            -                    out.normalize && out.normalize();
            -                    return out;
            -                };
            -            while (node.firstChild) {
            -                node.removeChild(node.firstChild);
            -            }
            -            var tuned = tuner(value);
            -            while (tuned.firstChild) {
            -                node.appendChild(tuned.firstChild);
            -            }
            -        }
            -        eve.stop();
            -    })(-1);
            -    function setFontSize(value) {
            -        eve.stop();
            -        if (value == +value) {
            -            value += "px";
            -        }
            -        this.node.style.fontSize = value;
            -    }
            -    eve.on("snap.util.attr.fontSize", setFontSize)(-1);
            -    eve.on("snap.util.attr.font-size", setFontSize)(-1);
            -
            -
            -    eve.on("snap.util.getattr.transform", function () {
            -        eve.stop();
            -        return this.transform();
            -    })(-1);
            -    eve.on("snap.util.getattr.textpath", function () {
            -        eve.stop();
            -        return this.textPath;
            -    })(-1);
            -    // Markers
            -    (function () {
            -        function getter(end) {
            -            return function () {
            -                eve.stop();
            -                var style = glob.doc.defaultView.getComputedStyle(this.node, null).getPropertyValue("marker-" + end);
            -                if (style == "none") {
            -                    return style;
            -                } else {
            -                    return Snap(glob.doc.getElementById(style.match(reURLValue)[1]));
            -                }
            -            };
            -        }
            -        function setter(end) {
            -            return function (value) {
            -                eve.stop();
            -                var name = "marker" + end.charAt(0).toUpperCase() + end.substring(1);
            -                if (value == "" || !value) {
            -                    this.node.style[name] = "none";
            -                    return;
            -                }
            -                if (value.type == "marker") {
            -                    var id = value.node.id;
            -                    if (!id) {
            -                        $(value.node, {id: value.id});
            -                    }
            -                    this.node.style[name] = URL(id);
            -                    return;
            -                }
            -            };
            -        }
            -        eve.on("snap.util.getattr.marker-end", getter("end"))(-1);
            -        eve.on("snap.util.getattr.markerEnd", getter("end"))(-1);
            -        eve.on("snap.util.getattr.marker-start", getter("start"))(-1);
            -        eve.on("snap.util.getattr.markerStart", getter("start"))(-1);
            -        eve.on("snap.util.getattr.marker-mid", getter("mid"))(-1);
            -        eve.on("snap.util.getattr.markerMid", getter("mid"))(-1);
            -        eve.on("snap.util.attr.marker-end", setter("end"))(-1);
            -        eve.on("snap.util.attr.markerEnd", setter("end"))(-1);
            -        eve.on("snap.util.attr.marker-start", setter("start"))(-1);
            -        eve.on("snap.util.attr.markerStart", setter("start"))(-1);
            -        eve.on("snap.util.attr.marker-mid", setter("mid"))(-1);
            -        eve.on("snap.util.attr.markerMid", setter("mid"))(-1);
            -    }());
            -    eve.on("snap.util.getattr.r", function () {
            -        if (this.type == "rect" && $(this.node, "rx") == $(this.node, "ry")) {
            -            eve.stop();
            -            return $(this.node, "rx");
            -        }
            -    })(-1);
            -    function textExtract(node) {
            -        var out = [];
            -        var children = node.childNodes;
            -        for (var i = 0, ii = children.length; i < ii; i++) {
            -            var chi = children[i];
            -            if (chi.nodeType == 3) {
            -                out.push(chi.nodeValue);
            -            }
            -            if (chi.tagName == "tspan") {
            -                if (chi.childNodes.length == 1 && chi.firstChild.nodeType == 3) {
            -                    out.push(chi.firstChild.nodeValue);
            -                } else {
            -                    out.push(textExtract(chi));
            -                }
            -            }
            -        }
            -        return out;
            -    }
            -    eve.on("snap.util.getattr.text", function () {
            -        if (this.type == "text" || this.type == "tspan") {
            -            eve.stop();
            -            var out = textExtract(this.node);
            -            return out.length == 1 ? out[0] : out;
            -        }
            -    })(-1);
            -    eve.on("snap.util.getattr.#text", function () {
            -        return this.node.textContent;
            -    })(-1);
            -    eve.on("snap.util.getattr.viewBox", function () {
            -        eve.stop();
            -        var vb = $(this.node, "viewBox");
            -        if (vb) {
            -            vb = vb.split(separator);
            -            return Snap._.box(+vb[0], +vb[1], +vb[2], +vb[3]);
            -        } else {
            -            return;
            -        }
            -    })(-1);
            -    eve.on("snap.util.getattr.points", function () {
            -        var p = $(this.node, "points");
            -        eve.stop();
            -        if (p) {
            -            return p.split(separator);
            -        } else {
            -            return;
            -        }
            -    })(-1);
            -    eve.on("snap.util.getattr.path", function () {
            -        var p = $(this.node, "d");
            -        eve.stop();
            -        return p;
            -    })(-1);
            -    eve.on("snap.util.getattr.class", function () {
            -        return this.node.className.baseVal;
            -    })(-1);
            -    function getFontSize() {
            -        eve.stop();
            -        return this.node.style.fontSize;
            -    }
            -    eve.on("snap.util.getattr.fontSize", getFontSize)(-1);
            -    eve.on("snap.util.getattr.font-size", getFontSize)(-1);
            -});
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/attradd.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/attradd.js
            deleted file mode 100644
            index 28b6ad12..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/attradd.js
            +++ /dev/null
            @@ -1,89 +0,0 @@
            -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
            -// 
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -// 
            -// http://www.apache.org/licenses/LICENSE-2.0
            -// 
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) {
            -    var operators = {
            -            "+": function (x, y) {
            -                    return x + y;
            -                },
            -            "-": function (x, y) {
            -                    return x - y;
            -                },
            -            "/": function (x, y) {
            -                    return x / y;
            -                },
            -            "*": function (x, y) {
            -                    return x * y;
            -                }
            -        },
            -        Str = String,
            -        reUnit = /[a-z]+$/i,
            -        reAddon = /^\s*([+\-\/*])\s*=\s*([\d.eE+\-]+)\s*([^\d\s]+)?\s*$/;
            -    function getNumber(val) {
            -        return val;
            -    }
            -    function getUnit(unit) {
            -        return function (val) {
            -            return +val.toFixed(3) + unit;
            -        };
            -    }
            -    eve.on("snap.util.attr", function (val) {
            -        var plus = Str(val).match(reAddon);
            -        if (plus) {
            -            var evnt = eve.nt(),
            -                name = evnt.substring(evnt.lastIndexOf(".") + 1),
            -                a = this.attr(name),
            -                atr = {};
            -            eve.stop();
            -            var unit = plus[3] || "",
            -                aUnit = a.match(reUnit),
            -                op = operators[plus[1]];
            -            if (aUnit && aUnit == unit) {
            -                val = op(parseFloat(a), +plus[2]);
            -            } else {
            -                a = this.asPX(name);
            -                val = op(this.asPX(name), this.asPX(name, plus[2] + unit));
            -            }
            -            if (isNaN(a) || isNaN(val)) {
            -                return;
            -            }
            -            atr[name] = val;
            -            this.attr(atr);
            -        }
            -    })(-10);
            -    eve.on("snap.util.equal", function (name, b) {
            -        var A, B, a = Str(this.attr(name) || ""),
            -            el = this,
            -            bplus = Str(b).match(reAddon);
            -        if (bplus) {
            -            eve.stop();
            -            var unit = bplus[3] || "",
            -                aUnit = a.match(reUnit),
            -                op = operators[bplus[1]];
            -            if (aUnit && aUnit == unit) {
            -                return {
            -                    from: parseFloat(a),
            -                    to: op(parseFloat(a), +bplus[2]),
            -                    f: getUnit(aUnit)
            -                };
            -            } else {
            -                a = this.asPX(name);
            -                return {
            -                    from: a,
            -                    to: op(a, this.asPX(name, bplus[2] + unit)),
            -                    f: getNumber
            -                };
            -            }
            -        }
            -    })(-10);
            -});
            \ No newline at end of file
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/class.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/class.js
            deleted file mode 100644
            index 2ab4c05b..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/class.js
            +++ /dev/null
            @@ -1,147 +0,0 @@
            -// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved.
            -//
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -//
            -// http://www.apache.org/licenses/LICENSE-2.0
            -//
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) {
            -    var rgNotSpace = /\S+/g,
            -        rgBadSpace = /[\t\r\n\f]/g,
            -        rgTrim = /(^\s+|\s+$)/g,
            -        Str = String,
            -        elproto = Element.prototype;
            -    /*\
            -     * Element.addClass
            -     [ method ]
            -     **
            -     * Adds given class name or list of class names to the element.
            -     - value (string) class name or space separated list of class names
            -     **
            -     = (Element) original element.
            -    \*/
            -    elproto.addClass = function (value) {
            -        var classes = Str(value || "").match(rgNotSpace) || [],
            -            elem = this.node,
            -            className = elem.className.baseVal,
            -            curClasses = className.match(rgNotSpace) || [],
            -            j,
            -            pos,
            -            clazz,
            -            finalValue;
            -
            -        if (classes.length) {
            -            j = 0;
            -            while ((clazz = classes[j++])) {
            -                pos = curClasses.indexOf(clazz);
            -                if (!~pos) {
            -                    curClasses.push(clazz);
            -                }
            -            }
            -
            -            finalValue = curClasses.join(" ");
            -            if (className != finalValue) {
            -                elem.className.baseVal = finalValue;
            -            }
            -        }
            -        return this;
            -    };
            -    /*\
            -     * Element.removeClass
            -     [ method ]
            -     **
            -     * Removes given class name or list of class names from the element.
            -     - value (string) class name or space separated list of class names
            -     **
            -     = (Element) original element.
            -    \*/
            -    elproto.removeClass = function (value) {
            -        var classes = Str(value || "").match(rgNotSpace) || [],
            -            elem = this.node,
            -            className = elem.className.baseVal,
            -            curClasses = className.match(rgNotSpace) || [],
            -            j,
            -            pos,
            -            clazz,
            -            finalValue;
            -        if (curClasses.length) {
            -            j = 0;
            -            while ((clazz = classes[j++])) {
            -                pos = curClasses.indexOf(clazz);
            -                if (~pos) {
            -                    curClasses.splice(pos, 1);
            -                }
            -            }
            -
            -            finalValue = curClasses.join(" ");
            -            if (className != finalValue) {
            -                elem.className.baseVal = finalValue;
            -            }
            -        }
            -        return this;
            -    };
            -    /*\
            -     * Element.hasClass
            -     [ method ]
            -     **
            -     * Checks if the element has a given class name in the list of class names applied to it.
            -     - value (string) class name
            -     **
            -     = (boolean) `true` if the element has given class
            -    \*/
            -    elproto.hasClass = function (value) {
            -        var elem = this.node,
            -            className = elem.className.baseVal,
            -            curClasses = className.match(rgNotSpace) || [];
            -        return !!~curClasses.indexOf(value);
            -    };
            -    /*\
            -     * Element.toggleClass
            -     [ method ]
            -     **
            -     * Add or remove one or more classes from the element, depending on either
            -     * the class’s presence or the value of the `flag` argument.
            -     - value (string) class name or space separated list of class names
            -     - flag (boolean) value to determine whether the class should be added or removed
            -     **
            -     = (Element) original element.
            -    \*/
            -    elproto.toggleClass = function (value, flag) {
            -        if (flag != null) {
            -            if (flag) {
            -                return this.addClass(value);
            -            } else {
            -                return this.removeClass(value);
            -            }
            -        }
            -        var classes = (value || "").match(rgNotSpace) || [],
            -            elem = this.node,
            -            className = elem.className.baseVal,
            -            curClasses = className.match(rgNotSpace) || [],
            -            j,
            -            pos,
            -            clazz,
            -            finalValue;
            -        j = 0;
            -        while ((clazz = classes[j++])) {
            -            pos = curClasses.indexOf(clazz);
            -            if (~pos) {
            -                curClasses.splice(pos, 1);
            -            } else {
            -                curClasses.push(clazz);
            -            }
            -        }
            -
            -        finalValue = curClasses.join(" ");
            -        if (className != finalValue) {
            -            elem.className.baseVal = finalValue;
            -        }
            -        return this;
            -    };
            -});
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/copy.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/copy.js
            deleted file mode 100644
            index 42557ac6..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/copy.js
            +++ /dev/null
            @@ -1,17 +0,0 @@
            -// Snap.svg @VERSION
            -// 
            -// Copyright (c) 2013 – 2015 Adobe Systems Incorporated. All rights reserved.
            -// 
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -// 
            -// http://www.apache.org/licenses/LICENSE-2.0
            -// 
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -// 
            -// build: @DATE
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/element.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/element.js
            deleted file mode 100644
            index 08f9c7d2..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/element.js
            +++ /dev/null
            @@ -1,981 +0,0 @@
            -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
            -//
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -//
            -// http://www.apache.org/licenses/LICENSE-2.0
            -//
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) {
            -    var elproto = Element.prototype,
            -        is = Snap.is,
            -        Str = String,
            -        unit2px = Snap._unit2px,
            -        $ = Snap._.$,
            -        make = Snap._.make,
            -        getSomeDefs = Snap._.getSomeDefs,
            -        has = "hasOwnProperty",
            -        wrap = Snap._.wrap;
            -    /*\
            -     * Element.getBBox
            -     [ method ]
            -     **
            -     * Returns the bounding box descriptor for the given element
            -     **
            -     = (object) bounding box descriptor:
            -     o {
            -     o     cx: (number) x of the center,
            -     o     cy: (number) x of the center,
            -     o     h: (number) height,
            -     o     height: (number) height,
            -     o     path: (string) path command for the box,
            -     o     r0: (number) radius of a circle that fully encloses the box,
            -     o     r1: (number) radius of the smallest circle that can be enclosed,
            -     o     r2: (number) radius of the largest circle that can be enclosed,
            -     o     vb: (string) box as a viewbox command,
            -     o     w: (number) width,
            -     o     width: (number) width,
            -     o     x2: (number) x of the right side,
            -     o     x: (number) x of the left side,
            -     o     y2: (number) y of the bottom edge,
            -     o     y: (number) y of the top edge
            -     o }
            -    \*/
            -    elproto.getBBox = function (isWithoutTransform) {
            -        if (!Snap.Matrix || !Snap.path) {
            -            return this.node.getBBox();
            -        }
            -        var el = this,
            -            m = new Snap.Matrix;
            -        if (el.removed) {
            -            return Snap._.box();
            -        }
            -        while (el.type == "use") {
            -            if (!isWithoutTransform) {
            -                m = m.add(el.transform().localMatrix.translate(el.attr("x") || 0, el.attr("y") || 0));
            -            }
            -            if (el.original) {
            -                el = el.original;
            -            } else {
            -                var href = el.attr("xlink:href");
            -                el = el.original = el.node.ownerDocument.getElementById(href.substring(href.indexOf("#") + 1));
            -            }
            -        }
            -        var _ = el._,
            -            pathfinder = Snap.path.get[el.type] || Snap.path.get.deflt;
            -        try {
            -            if (isWithoutTransform) {
            -                _.bboxwt = pathfinder ? Snap.path.getBBox(el.realPath = pathfinder(el)) : Snap._.box(el.node.getBBox());
            -                return Snap._.box(_.bboxwt);
            -            } else {
            -                el.realPath = pathfinder(el);
            -                el.matrix = el.transform().localMatrix;
            -                _.bbox = Snap.path.getBBox(Snap.path.map(el.realPath, m.add(el.matrix)));
            -                return Snap._.box(_.bbox);
            -            }
            -        } catch (e) {
            -            // Firefox doesn’t give you bbox of hidden element
            -            return Snap._.box();
            -        }
            -    };
            -    var propString = function () {
            -        return this.string;
            -    };
            -    function extractTransform(el, tstr) {
            -        if (tstr == null) {
            -            var doReturn = true;
            -            if (el.type == "linearGradient" || el.type == "radialGradient") {
            -                tstr = el.node.getAttribute("gradientTransform");
            -            } else if (el.type == "pattern") {
            -                tstr = el.node.getAttribute("patternTransform");
            -            } else {
            -                tstr = el.node.getAttribute("transform");
            -            }
            -            if (!tstr) {
            -                return new Snap.Matrix;
            -            }
            -            tstr = Snap._.svgTransform2string(tstr);
            -        } else {
            -            if (!Snap._.rgTransform.test(tstr)) {
            -                tstr = Snap._.svgTransform2string(tstr);
            -            } else {
            -                tstr = Str(tstr).replace(/\.{3}|\u2026/g, el._.transform || E);
            -            }
            -            if (is(tstr, "array")) {
            -                tstr = Snap.path ? Snap.path.toString.call(tstr) : Str(tstr);
            -            }
            -            el._.transform = tstr;
            -        }
            -        var m = Snap._.transform2matrix(tstr, el.getBBox(1));
            -        if (doReturn) {
            -            return m;
            -        } else {
            -            el.matrix = m;
            -        }
            -    }
            -    /*\
            -     * Element.transform
            -     [ method ]
            -     **
            -     * Gets or sets transformation of the element
            -     **
            -     - tstr (string) transform string in Snap or SVG format
            -     = (Element) the current element
            -     * or
            -     = (object) transformation descriptor:
            -     o {
            -     o     string (string) transform string,
            -     o     globalMatrix (Matrix) matrix of all transformations applied to element or its parents,
            -     o     localMatrix (Matrix) matrix of transformations applied only to the element,
            -     o     diffMatrix (Matrix) matrix of difference between global and local transformations,
            -     o     global (string) global transformation as string,
            -     o     local (string) local transformation as string,
            -     o     toString (function) returns `string` property
            -     o }
            -    \*/
            -    elproto.transform = function (tstr) {
            -        var _ = this._;
            -        if (tstr == null) {
            -            var papa = this,
            -                global = new Snap.Matrix(this.node.getCTM()),
            -                local = extractTransform(this),
            -                ms = [local],
            -                m = new Snap.Matrix,
            -                i,
            -                localString = local.toTransformString(),
            -                string = Str(local) == Str(this.matrix) ?
            -                            Str(_.transform) : localString;
            -            while (papa.type != "svg" && (papa = papa.parent())) {
            -                ms.push(extractTransform(papa));
            -            }
            -            i = ms.length;
            -            while (i--) {
            -                m.add(ms[i]);
            -            }
            -            return {
            -                string: string,
            -                globalMatrix: global,
            -                totalMatrix: m,
            -                localMatrix: local,
            -                diffMatrix: global.clone().add(local.invert()),
            -                global: global.toTransformString(),
            -                total: m.toTransformString(),
            -                local: localString,
            -                toString: propString
            -            };
            -        }
            -        if (tstr instanceof Snap.Matrix) {
            -            this.matrix = tstr;
            -            this._.transform = tstr.toTransformString();
            -        } else {
            -            extractTransform(this, tstr);
            -        }
            -
            -        if (this.node) {
            -            if (this.type == "linearGradient" || this.type == "radialGradient") {
            -                $(this.node, {gradientTransform: this.matrix});
            -            } else if (this.type == "pattern") {
            -                $(this.node, {patternTransform: this.matrix});
            -            } else {
            -                $(this.node, {transform: this.matrix});
            -            }
            -        }
            -
            -        return this;
            -    };
            -    /*\
            -     * Element.parent
            -     [ method ]
            -     **
            -     * Returns the element's parent
            -     **
            -     = (Element) the parent element
            -    \*/
            -    elproto.parent = function () {
            -        return wrap(this.node.parentNode);
            -    };
            -    /*\
            -     * Element.append
            -     [ method ]
            -     **
            -     * Appends the given element to current one
            -     **
            -     - el (Element|Set) element to append
            -     = (Element) the parent element
            -    \*/
            -    /*\
            -     * Element.add
            -     [ method ]
            -     **
            -     * See @Element.append
            -    \*/
            -    elproto.append = elproto.add = function (el) {
            -        if (el) {
            -            if (el.type == "set") {
            -                var it = this;
            -                el.forEach(function (el) {
            -                    it.add(el);
            -                });
            -                return this;
            -            }
            -            el = wrap(el);
            -            this.node.appendChild(el.node);
            -            el.paper = this.paper;
            -        }
            -        return this;
            -    };
            -    /*\
            -     * Element.appendTo
            -     [ method ]
            -     **
            -     * Appends the current element to the given one
            -     **
            -     - el (Element) parent element to append to
            -     = (Element) the child element
            -    \*/
            -    elproto.appendTo = function (el) {
            -        if (el) {
            -            el = wrap(el);
            -            el.append(this);
            -        }
            -        return this;
            -    };
            -    /*\
            -     * Element.prepend
            -     [ method ]
            -     **
            -     * Prepends the given element to the current one
            -     **
            -     - el (Element) element to prepend
            -     = (Element) the parent element
            -    \*/
            -    elproto.prepend = function (el) {
            -        if (el) {
            -            if (el.type == "set") {
            -                var it = this,
            -                    first;
            -                el.forEach(function (el) {
            -                    if (first) {
            -                        first.after(el);
            -                    } else {
            -                        it.prepend(el);
            -                    }
            -                    first = el;
            -                });
            -                return this;
            -            }
            -            el = wrap(el);
            -            var parent = el.parent();
            -            this.node.insertBefore(el.node, this.node.firstChild);
            -            this.add && this.add();
            -            el.paper = this.paper;
            -            this.parent() && this.parent().add();
            -            parent && parent.add();
            -        }
            -        return this;
            -    };
            -    /*\
            -     * Element.prependTo
            -     [ method ]
            -     **
            -     * Prepends the current element to the given one
            -     **
            -     - el (Element) parent element to prepend to
            -     = (Element) the child element
            -    \*/
            -    elproto.prependTo = function (el) {
            -        el = wrap(el);
            -        el.prepend(this);
            -        return this;
            -    };
            -    /*\
            -     * Element.before
            -     [ method ]
            -     **
            -     * Inserts given element before the current one
            -     **
            -     - el (Element) element to insert
            -     = (Element) the parent element
            -    \*/
            -    elproto.before = function (el) {
            -        if (el.type == "set") {
            -            var it = this;
            -            el.forEach(function (el) {
            -                var parent = el.parent();
            -                it.node.parentNode.insertBefore(el.node, it.node);
            -                parent && parent.add();
            -            });
            -            this.parent().add();
            -            return this;
            -        }
            -        el = wrap(el);
            -        var parent = el.parent();
            -        this.node.parentNode.insertBefore(el.node, this.node);
            -        this.parent() && this.parent().add();
            -        parent && parent.add();
            -        el.paper = this.paper;
            -        return this;
            -    };
            -    /*\
            -     * Element.after
            -     [ method ]
            -     **
            -     * Inserts given element after the current one
            -     **
            -     - el (Element) element to insert
            -     = (Element) the parent element
            -    \*/
            -    elproto.after = function (el) {
            -        el = wrap(el);
            -        var parent = el.parent();
            -        if (this.node.nextSibling) {
            -            this.node.parentNode.insertBefore(el.node, this.node.nextSibling);
            -        } else {
            -            this.node.parentNode.appendChild(el.node);
            -        }
            -        this.parent() && this.parent().add();
            -        parent && parent.add();
            -        el.paper = this.paper;
            -        return this;
            -    };
            -    /*\
            -     * Element.insertBefore
            -     [ method ]
            -     **
            -     * Inserts the element after the given one
            -     **
            -     - el (Element) element next to whom insert to
            -     = (Element) the parent element
            -    \*/
            -    elproto.insertBefore = function (el) {
            -        el = wrap(el);
            -        var parent = this.parent();
            -        el.node.parentNode.insertBefore(this.node, el.node);
            -        this.paper = el.paper;
            -        parent && parent.add();
            -        el.parent() && el.parent().add();
            -        return this;
            -    };
            -    /*\
            -     * Element.insertAfter
            -     [ method ]
            -     **
            -     * Inserts the element after the given one
            -     **
            -     - el (Element) element next to whom insert to
            -     = (Element) the parent element
            -    \*/
            -    elproto.insertAfter = function (el) {
            -        el = wrap(el);
            -        var parent = this.parent();
            -        el.node.parentNode.insertBefore(this.node, el.node.nextSibling);
            -        this.paper = el.paper;
            -        parent && parent.add();
            -        el.parent() && el.parent().add();
            -        return this;
            -    };
            -    /*\
            -     * Element.remove
            -     [ method ]
            -     **
            -     * Removes element from the DOM
            -     = (Element) the detached element
            -    \*/
            -    elproto.remove = function () {
            -        var parent = this.parent();
            -        this.node.parentNode && this.node.parentNode.removeChild(this.node);
            -        delete this.paper;
            -        this.removed = true;
            -        parent && parent.add();
            -        return this;
            -    };
            -    /*\
            -     * Element.select
            -     [ method ]
            -     **
            -     * Gathers the nested @Element matching the given set of CSS selectors
            -     **
            -     - query (string) CSS selector
            -     = (Element) result of query selection
            -    \*/
            -    elproto.select = function (query) {
            -        query = Str(query).replace(/([^\\]):/g, "$1\\:");
            -        return wrap(this.node.querySelector(query));
            -    };
            -    /*\
            -     * Element.selectAll
            -     [ method ]
            -     **
            -     * Gathers nested @Element objects matching the given set of CSS selectors
            -     **
            -     - query (string) CSS selector
            -     = (Set|array) result of query selection
            -    \*/
            -    elproto.selectAll = function (query) {
            -        var nodelist = this.node.querySelectorAll(query),
            -            set = (Snap.set || Array)();
            -        for (var i = 0; i < nodelist.length; i++) {
            -            set.push(wrap(nodelist[i]));
            -        }
            -        return set;
            -    };
            -    /*\
            -     * Element.asPX
            -     [ method ]
            -     **
            -     * Returns given attribute of the element as a `px` value (not %, em, etc.)
            -     **
            -     - attr (string) attribute name
            -     - value (string) #optional attribute value
            -     = (Element) result of query selection
            -    \*/
            -    elproto.asPX = function (attr, value) {
            -        if (value == null) {
            -            value = this.attr(attr);
            -        }
            -        return +unit2px(this, attr, value);
            -    };
            -    // SIERRA Element.use(): I suggest adding a note about how to access the original element the returned  instantiates. It's a part of SVG with which ordinary web developers may be least familiar.
            -    /*\
            -     * Element.use
            -     [ method ]
            -     **
            -     * Creates a `` element linked to the current element
            -     **
            -     = (Element) the `` element
            -    \*/
            -    elproto.use = function () {
            -        var use,
            -            id = this.node.id;
            -        if (!id) {
            -            id = this.id;
            -            $(this.node, {
            -                id: id
            -            });
            -        }
            -        if (this.type == "linearGradient" || this.type == "radialGradient" ||
            -            this.type == "pattern") {
            -            use = make(this.type, this.node.parentNode);
            -        } else {
            -            use = make("use", this.node.parentNode);
            -        }
            -        $(use.node, {
            -            "xlink:href": "#" + id
            -        });
            -        use.original = this;
            -        return use;
            -    };
            -    function fixids(el) {
            -        var els = el.selectAll("*"),
            -            it,
            -            url = /^\s*url\(("|'|)(.*)\1\)\s*$/,
            -            ids = [],
            -            uses = {};
            -        function urltest(it, name) {
            -            var val = $(it.node, name);
            -            val = val && val.match(url);
            -            val = val && val[2];
            -            if (val && val.charAt() == "#") {
            -                val = val.substring(1);
            -            } else {
            -                return;
            -            }
            -            if (val) {
            -                uses[val] = (uses[val] || []).concat(function (id) {
            -                    var attr = {};
            -                    attr[name] = URL(id);
            -                    $(it.node, attr);
            -                });
            -            }
            -        }
            -        function linktest(it) {
            -            var val = $(it.node, "xlink:href");
            -            if (val && val.charAt() == "#") {
            -                val = val.substring(1);
            -            } else {
            -                return;
            -            }
            -            if (val) {
            -                uses[val] = (uses[val] || []).concat(function (id) {
            -                    it.attr("xlink:href", "#" + id);
            -                });
            -            }
            -        }
            -        for (var i = 0, ii = els.length; i < ii; i++) {
            -            it = els[i];
            -            urltest(it, "fill");
            -            urltest(it, "stroke");
            -            urltest(it, "filter");
            -            urltest(it, "mask");
            -            urltest(it, "clip-path");
            -            linktest(it);
            -            var oldid = $(it.node, "id");
            -            if (oldid) {
            -                $(it.node, {id: it.id});
            -                ids.push({
            -                    old: oldid,
            -                    id: it.id
            -                });
            -            }
            -        }
            -        for (i = 0, ii = ids.length; i < ii; i++) {
            -            var fs = uses[ids[i].old];
            -            if (fs) {
            -                for (var j = 0, jj = fs.length; j < jj; j++) {
            -                    fs[j](ids[i].id);
            -                }
            -            }
            -        }
            -    }
            -    /*\
            -     * Element.clone
            -     [ method ]
            -     **
            -     * Creates a clone of the element and inserts it after the element
            -     **
            -     = (Element) the clone
            -    \*/
            -    elproto.clone = function () {
            -        var clone = wrap(this.node.cloneNode(true));
            -        if ($(clone.node, "id")) {
            -            $(clone.node, {id: clone.id});
            -        }
            -        fixids(clone);
            -        clone.insertAfter(this);
            -        return clone;
            -    };
            -    /*\
            -     * Element.toDefs
            -     [ method ]
            -     **
            -     * Moves element to the shared `` area
            -     **
            -     = (Element) the element
            -    \*/
            -    elproto.toDefs = function () {
            -        var defs = getSomeDefs(this);
            -        defs.appendChild(this.node);
            -        return this;
            -    };
            -    /*\
            -     * Element.toPattern
            -     [ method ]
            -     **
            -     * Creates a `` element from the current element
            -     **
            -     * To create a pattern you have to specify the pattern rect:
            -     - x (string|number)
            -     - y (string|number)
            -     - width (string|number)
            -     - height (string|number)
            -     = (Element) the `` element
            -     * You can use pattern later on as an argument for `fill` attribute:
            -     | var p = paper.path("M10-5-10,15M15,0,0,15M0-5-20,15").attr({
            -     |         fill: "none",
            -     |         stroke: "#bada55",
            -     |         strokeWidth: 5
            -     |     }).pattern(0, 0, 10, 10),
            -     |     c = paper.circle(200, 200, 100);
            -     | c.attr({
            -     |     fill: p
            -     | });
            -    \*/
            -    elproto.pattern = elproto.toPattern = function (x, y, width, height) {
            -        var p = make("pattern", getSomeDefs(this));
            -        if (x == null) {
            -            x = this.getBBox();
            -        }
            -        if (is(x, "object") && "x" in x) {
            -            y = x.y;
            -            width = x.width;
            -            height = x.height;
            -            x = x.x;
            -        }
            -        $(p.node, {
            -            x: x,
            -            y: y,
            -            width: width,
            -            height: height,
            -            patternUnits: "userSpaceOnUse",
            -            id: p.id,
            -            viewBox: [x, y, width, height].join(" ")
            -        });
            -        p.node.appendChild(this.node);
            -        return p;
            -    };
            -// SIERRA Element.marker(): clarify what a reference point is. E.g., helps you offset the object from its edge such as when centering it over a path.
            -// SIERRA Element.marker(): I suggest the method should accept default reference point values.  Perhaps centered with (refX = width/2) and (refY = height/2)? Also, couldn't it assume the element's current _width_ and _height_? And please specify what _x_ and _y_ mean: offsets? If so, from where?  Couldn't they also be assigned default values?
            -    /*\
            -     * Element.marker
            -     [ method ]
            -     **
            -     * Creates a `` element from the current element
            -     **
            -     * To create a marker you have to specify the bounding rect and reference point:
            -     - x (number)
            -     - y (number)
            -     - width (number)
            -     - height (number)
            -     - refX (number)
            -     - refY (number)
            -     = (Element) the `` element
            -     * You can specify the marker later as an argument for `marker-start`, `marker-end`, `marker-mid`, and `marker` attributes. The `marker` attribute places the marker at every point along the path, and `marker-mid` places them at every point except the start and end.
            -    \*/
            -    // TODO add usage for markers
            -    elproto.marker = function (x, y, width, height, refX, refY) {
            -        var p = make("marker", getSomeDefs(this));
            -        if (x == null) {
            -            x = this.getBBox();
            -        }
            -        if (is(x, "object") && "x" in x) {
            -            y = x.y;
            -            width = x.width;
            -            height = x.height;
            -            refX = x.refX || x.cx;
            -            refY = x.refY || x.cy;
            -            x = x.x;
            -        }
            -        $(p.node, {
            -            viewBox: [x, y, width, height].join(" "),
            -            markerWidth: width,
            -            markerHeight: height,
            -            orient: "auto",
            -            refX: refX || 0,
            -            refY: refY || 0,
            -            id: p.id
            -        });
            -        p.node.appendChild(this.node);
            -        return p;
            -    };
            -    // animation
            -    function slice(from, to, f) {
            -        return function (arr) {
            -            var res = arr.slice(from, to);
            -            if (res.length == 1) {
            -                res = res[0];
            -            }
            -            return f ? f(res) : res;
            -        };
            -    }
            -    var Animation = function (attr, ms, easing, callback) {
            -        if (typeof easing == "function" && !easing.length) {
            -            callback = easing;
            -            easing = mina.linear;
            -        }
            -        this.attr = attr;
            -        this.dur = ms;
            -        easing && (this.easing = easing);
            -        callback && (this.callback = callback);
            -    };
            -    Snap._.Animation = Animation;
            -    /*\
            -     * Snap.animation
            -     [ method ]
            -     **
            -     * Creates an animation object
            -     **
            -     - attr (object) attributes of final destination
            -     - duration (number) duration of the animation, in milliseconds
            -     - easing (function) #optional one of easing functions of @mina or custom one
            -     - callback (function) #optional callback function that fires when animation ends
            -     = (object) animation object
            -    \*/
            -    Snap.animation = function (attr, ms, easing, callback) {
            -        return new Animation(attr, ms, easing, callback);
            -    };
            -    /*\
            -     * Element.inAnim
            -     [ method ]
            -     **
            -     * Returns a set of animations that may be able to manipulate the current element
            -     **
            -     = (object) in format:
            -     o {
            -     o     anim (object) animation object,
            -     o     mina (object) @mina object,
            -     o     curStatus (number) 0..1 — status of the animation: 0 — just started, 1 — just finished,
            -     o     status (function) gets or sets the status of the animation,
            -     o     stop (function) stops the animation
            -     o }
            -    \*/
            -    elproto.inAnim = function () {
            -        var el = this,
            -            res = [];
            -        for (var id in el.anims) if (el.anims[has](id)) {
            -            (function (a) {
            -                res.push({
            -                    anim: new Animation(a._attrs, a.dur, a.easing, a._callback),
            -                    mina: a,
            -                    curStatus: a.status(),
            -                    status: function (val) {
            -                        return a.status(val);
            -                    },
            -                    stop: function () {
            -                        a.stop();
            -                    }
            -                });
            -            }(el.anims[id]));
            -        }
            -        return res;
            -    };
            -    /*\
            -     * Snap.animate
            -     [ method ]
            -     **
            -     * Runs generic animation of one number into another with a caring function
            -     **
            -     - from (number|array) number or array of numbers
            -     - to (number|array) number or array of numbers
            -     - setter (function) caring function that accepts one number argument
            -     - duration (number) duration, in milliseconds
            -     - easing (function) #optional easing function from @mina or custom
            -     - callback (function) #optional callback function to execute when animation ends
            -     = (object) animation object in @mina format
            -     o {
            -     o     id (string) animation id, consider it read-only,
            -     o     duration (function) gets or sets the duration of the animation,
            -     o     easing (function) easing,
            -     o     speed (function) gets or sets the speed of the animation,
            -     o     status (function) gets or sets the status of the animation,
            -     o     stop (function) stops the animation
            -     o }
            -     | var rect = Snap().rect(0, 0, 10, 10);
            -     | Snap.animate(0, 10, function (val) {
            -     |     rect.attr({
            -     |         x: val
            -     |     });
            -     | }, 1000);
            -     | // in given context is equivalent to
            -     | rect.animate({x: 10}, 1000);
            -    \*/
            -    Snap.animate = function (from, to, setter, ms, easing, callback) {
            -        if (typeof easing == "function" && !easing.length) {
            -            callback = easing;
            -            easing = mina.linear;
            -        }
            -        var now = mina.time(),
            -            anim = mina(from, to, now, now + ms, mina.time, setter, easing);
            -        callback && eve.once("mina.finish." + anim.id, callback);
            -        return anim;
            -    };
            -    /*\
            -     * Element.stop
            -     [ method ]
            -     **
            -     * Stops all the animations for the current element
            -     **
            -     = (Element) the current element
            -    \*/
            -    elproto.stop = function () {
            -        var anims = this.inAnim();
            -        for (var i = 0, ii = anims.length; i < ii; i++) {
            -            anims[i].stop();
            -        }
            -        return this;
            -    };
            -    /*\
            -     * Element.animate
            -     [ method ]
            -     **
            -     * Animates the given attributes of the element
            -     **
            -     - attrs (object) key-value pairs of destination attributes
            -     - duration (number) duration of the animation in milliseconds
            -     - easing (function) #optional easing function from @mina or custom
            -     - callback (function) #optional callback function that executes when the animation ends
            -     = (Element) the current element
            -    \*/
            -    elproto.animate = function (attrs, ms, easing, callback) {
            -        if (typeof easing == "function" && !easing.length) {
            -            callback = easing;
            -            easing = mina.linear;
            -        }
            -        if (attrs instanceof Animation) {
            -            callback = attrs.callback;
            -            easing = attrs.easing;
            -            ms = easing.dur;
            -            attrs = attrs.attr;
            -        }
            -        var fkeys = [], tkeys = [], keys = {}, from, to, f, eq,
            -            el = this;
            -        for (var key in attrs) if (attrs[has](key)) {
            -            if (el.equal) {
            -                eq = el.equal(key, Str(attrs[key]));
            -                from = eq.from;
            -                to = eq.to;
            -                f = eq.f;
            -            } else {
            -                from = +el.attr(key);
            -                to = +attrs[key];
            -            }
            -            var len = is(from, "array") ? from.length : 1;
            -            keys[key] = slice(fkeys.length, fkeys.length + len, f);
            -            fkeys = fkeys.concat(from);
            -            tkeys = tkeys.concat(to);
            -        }
            -        var now = mina.time(),
            -            anim = mina(fkeys, tkeys, now, now + ms, mina.time, function (val) {
            -                var attr = {};
            -                for (var key in keys) if (keys[has](key)) {
            -                    attr[key] = keys[key](val);
            -                }
            -                el.attr(attr);
            -            }, easing);
            -        el.anims[anim.id] = anim;
            -        anim._attrs = attrs;
            -        anim._callback = callback;
            -        eve("snap.animcreated." + el.id, anim);
            -        eve.once("mina.finish." + anim.id, function () {
            -            delete el.anims[anim.id];
            -            callback && callback.call(el);
            -        });
            -        eve.once("mina.stop." + anim.id, function () {
            -            delete el.anims[anim.id];
            -        });
            -        return el;
            -    };
            -    var eldata = {};
            -    /*\
            -     * Element.data
            -     [ method ]
            -     **
            -     * Adds or retrieves given value associated with given key. (Don’t confuse
            -     * with `data-` attributes)
            -     *
            -     * See also @Element.removeData
            -     - key (string) key to store data
            -     - value (any) #optional value to store
            -     = (object) @Element
            -     * or, if value is not specified:
            -     = (any) value
            -     > Usage
            -     | for (var i = 0, i < 5, i++) {
            -     |     paper.circle(10 + 15 * i, 10, 10)
            -     |          .attr({fill: "#000"})
            -     |          .data("i", i)
            -     |          .click(function () {
            -     |             alert(this.data("i"));
            -     |          });
            -     | }
            -    \*/
            -    elproto.data = function (key, value) {
            -        var data = eldata[this.id] = eldata[this.id] || {};
            -        if (arguments.length == 0){
            -            eve("snap.data.get." + this.id, this, data, null);
            -            return data;
            -        }
            -        if (arguments.length == 1) {
            -            if (Snap.is(key, "object")) {
            -                for (var i in key) if (key[has](i)) {
            -                    this.data(i, key[i]);
            -                }
            -                return this;
            -            }
            -            eve("snap.data.get." + this.id, this, data[key], key);
            -            return data[key];
            -        }
            -        data[key] = value;
            -        eve("snap.data.set." + this.id, this, value, key);
            -        return this;
            -    };
            -    /*\
            -     * Element.removeData
            -     [ method ]
            -     **
            -     * Removes value associated with an element by given key.
            -     * If key is not provided, removes all the data of the element.
            -     - key (string) #optional key
            -     = (object) @Element
            -    \*/
            -    elproto.removeData = function (key) {
            -        if (key == null) {
            -            eldata[this.id] = {};
            -        } else {
            -            eldata[this.id] && delete eldata[this.id][key];
            -        }
            -        return this;
            -    };
            -    /*\
            -     * Element.outerSVG
            -     [ method ]
            -     **
            -     * Returns SVG code for the element, equivalent to HTML's `outerHTML`.
            -     *
            -     * See also @Element.innerSVG
            -     = (string) SVG code for the element
            -    \*/
            -    /*\
            -     * Element.toString
            -     [ method ]
            -     **
            -     * See @Element.outerSVG
            -    \*/
            -    elproto.outerSVG = elproto.toString = toString(1);
            -    /*\
            -     * Element.innerSVG
            -     [ method ]
            -     **
            -     * Returns SVG code for the element's contents, equivalent to HTML's `innerHTML`
            -     = (string) SVG code for the element
            -    \*/
            -    elproto.innerSVG = toString();
            -    function toString(type) {
            -        return function () {
            -            var res = type ? "<" + this.type : "",
            -                attr = this.node.attributes,
            -                chld = this.node.childNodes;
            -            if (type) {
            -                for (var i = 0, ii = attr.length; i < ii; i++) {
            -                    res += " " + attr[i].name + '="' +
            -                            attr[i].value.replace(/"/g, '\\"') + '"';
            -                }
            -            }
            -            if (chld.length) {
            -                type && (res += ">");
            -                for (i = 0, ii = chld.length; i < ii; i++) {
            -                    if (chld[i].nodeType == 3) {
            -                        res += chld[i].nodeValue;
            -                    } else if (chld[i].nodeType == 1) {
            -                        res += wrap(chld[i]).toString();
            -                    }
            -                }
            -                type && (res += "");
            -            } else {
            -                type && (res += "/>");
            -            }
            -            return res;
            -        };
            -    }
            -    elproto.toDataURL = function () {
            -        if (window && window.btoa) {
            -            var bb = this.getBBox(),
            -                svg = Snap.format('{contents}', {
            -                x: +bb.x.toFixed(3),
            -                y: +bb.y.toFixed(3),
            -                width: +bb.width.toFixed(3),
            -                height: +bb.height.toFixed(3),
            -                contents: this.outerSVG()
            -            });
            -            return "data:image/svg+xml;base64," + btoa(unescape(encodeURIComponent(svg)));
            -        }
            -    };
            -    /*\
            -     * Fragment.select
            -     [ method ]
            -     **
            -     * See @Element.select
            -    \*/
            -    Fragment.prototype.select = elproto.select;
            -    /*\
            -     * Fragment.selectAll
            -     [ method ]
            -     **
            -     * See @Element.selectAll
            -    \*/
            -    Fragment.prototype.selectAll = elproto.selectAll;
            -});
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/equal.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/equal.js
            deleted file mode 100644
            index 91810d37..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/equal.js
            +++ /dev/null
            @@ -1,193 +0,0 @@
            -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
            -// 
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -// 
            -// http://www.apache.org/licenses/LICENSE-2.0
            -// 
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -Snap.plugin(function (Snap, Element, Paper, glob) {
            -    var names = {},
            -        reUnit = /[a-z]+$/i,
            -        Str = String;
            -    names.stroke = names.fill = "colour";
            -    function getEmpty(item) {
            -        var l = item[0];
            -        switch (l.toLowerCase()) {
            -            case "t": return [l, 0, 0];
            -            case "m": return [l, 1, 0, 0, 1, 0, 0];
            -            case "r": if (item.length == 4) {
            -                return [l, 0, item[2], item[3]];
            -            } else {
            -                return [l, 0];
            -            }
            -            case "s": if (item.length == 5) {
            -                return [l, 1, 1, item[3], item[4]];
            -            } else if (item.length == 3) {
            -                return [l, 1, 1];
            -            } else {
            -                return [l, 1];
            -            }
            -        }
            -    }
            -    function equaliseTransform(t1, t2, getBBox) {
            -        t2 = Str(t2).replace(/\.{3}|\u2026/g, t1);
            -        t1 = Snap.parseTransformString(t1) || [];
            -        t2 = Snap.parseTransformString(t2) || [];
            -        var maxlength = Math.max(t1.length, t2.length),
            -            from = [],
            -            to = [],
            -            i = 0, j, jj,
            -            tt1, tt2;
            -        for (; i < maxlength; i++) {
            -            tt1 = t1[i] || getEmpty(t2[i]);
            -            tt2 = t2[i] || getEmpty(tt1);
            -            if ((tt1[0] != tt2[0]) ||
            -                (tt1[0].toLowerCase() == "r" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) ||
            -                (tt1[0].toLowerCase() == "s" && (tt1[3] != tt2[3] || tt1[4] != tt2[4]))
            -                ) {
            -                    t1 = Snap._.transform2matrix(t1, getBBox());
            -                    t2 = Snap._.transform2matrix(t2, getBBox());
            -                    from = [["m", t1.a, t1.b, t1.c, t1.d, t1.e, t1.f]];
            -                    to = [["m", t2.a, t2.b, t2.c, t2.d, t2.e, t2.f]];
            -                    break;
            -            }
            -            from[i] = [];
            -            to[i] = [];
            -            for (j = 0, jj = Math.max(tt1.length, tt2.length); j < jj; j++) {
            -                j in tt1 && (from[i][j] = tt1[j]);
            -                j in tt2 && (to[i][j] = tt2[j]);
            -            }
            -        }
            -        return {
            -            from: path2array(from),
            -            to: path2array(to),
            -            f: getPath(from)
            -        };
            -    }
            -    function getNumber(val) {
            -        return val;
            -    }
            -    function getUnit(unit) {
            -        return function (val) {
            -            return +val.toFixed(3) + unit;
            -        };
            -    }
            -    function getViewBox(val) {
            -        return val.join(" ");
            -    }
            -    function getColour(clr) {
            -        return Snap.rgb(clr[0], clr[1], clr[2]);
            -    }
            -    function getPath(path) {
            -        var k = 0, i, ii, j, jj, out, a, b = [];
            -        for (i = 0, ii = path.length; i < ii; i++) {
            -            out = "[";
            -            a = ['"' + path[i][0] + '"'];
            -            for (j = 1, jj = path[i].length; j < jj; j++) {
            -                a[j] = "val[" + (k++) + "]";
            -            }
            -            out += a + "]";
            -            b[i] = out;
            -        }
            -        return Function("val", "return Snap.path.toString.call([" + b + "])");
            -    }
            -    function path2array(path) {
            -        var out = [];
            -        for (var i = 0, ii = path.length; i < ii; i++) {
            -            for (var j = 1, jj = path[i].length; j < jj; j++) {
            -                out.push(path[i][j]);
            -            }
            -        }
            -        return out;
            -    }
            -    function isNumeric(obj) {
            -        return isFinite(parseFloat(obj));
            -    }
            -    function arrayEqual(arr1, arr2) {
            -        if (!Snap.is(arr1, "array") || !Snap.is(arr2, "array")) {
            -            return false;
            -        }
            -        return arr1.toString() == arr2.toString();
            -    }
            -    Element.prototype.equal = function (name, b) {
            -        return eve("snap.util.equal", this, name, b).firstDefined();
            -    };
            -    eve.on("snap.util.equal", function (name, b) {
            -        var A, B, a = Str(this.attr(name) || ""),
            -            el = this;
            -        if (isNumeric(a) && isNumeric(b)) {
            -            return {
            -                from: parseFloat(a),
            -                to: parseFloat(b),
            -                f: getNumber
            -            };
            -        }
            -        if (names[name] == "colour") {
            -            A = Snap.color(a);
            -            B = Snap.color(b);
            -            return {
            -                from: [A.r, A.g, A.b, A.opacity],
            -                to: [B.r, B.g, B.b, B.opacity],
            -                f: getColour
            -            };
            -        }
            -        if (name == "viewBox") {
            -            A = this.attr(name).vb.split(" ").map(Number);
            -            B = b.split(" ").map(Number);
            -            return {
            -                from: A,
            -                to: B,
            -                f: getViewBox
            -            };
            -        }
            -        if (name == "transform" || name == "gradientTransform" || name == "patternTransform") {
            -            if (b instanceof Snap.Matrix) {
            -                b = b.toTransformString();
            -            }
            -            if (!Snap._.rgTransform.test(b)) {
            -                b = Snap._.svgTransform2string(b);
            -            }
            -            return equaliseTransform(a, b, function () {
            -                return el.getBBox(1);
            -            });
            -        }
            -        if (name == "d" || name == "path") {
            -            A = Snap.path.toCubic(a, b);
            -            return {
            -                from: path2array(A[0]),
            -                to: path2array(A[1]),
            -                f: getPath(A[0])
            -            };
            -        }
            -        if (name == "points") {
            -            A = Str(a).split(Snap._.separator);
            -            B = Str(b).split(Snap._.separator);
            -            return {
            -                from: A,
            -                to: B,
            -                f: function (val) { return val; }
            -            };
            -        }
            -        var aUnit = a.match(reUnit),
            -            bUnit = Str(b).match(reUnit);
            -        if (aUnit && arrayEqual(aUnit, bUnit)) {
            -            return {
            -                from: parseFloat(a),
            -                to: parseFloat(b),
            -                f: getUnit(aUnit)
            -            };
            -        } else {
            -            return {
            -                from: this.asPX(name),
            -                to: this.asPX(name, b),
            -                f: getNumber
            -            };
            -        }
            -    });
            -});
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/filter.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/filter.js
            deleted file mode 100644
            index 6af88fca..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/filter.js
            +++ /dev/null
            @@ -1,326 +0,0 @@
            -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
            -// 
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -// 
            -// http://www.apache.org/licenses/LICENSE-2.0
            -// 
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -Snap.plugin(function (Snap, Element, Paper, glob) {
            -    var elproto = Element.prototype,
            -        pproto = Paper.prototype,
            -        rgurl = /^\s*url\((.+)\)/,
            -        Str = String,
            -        $ = Snap._.$;
            -    Snap.filter = {};
            -    /*\
            -     * Paper.filter
            -     [ method ]
            -     **
            -     * Creates a `` element
            -     **
            -     - filstr (string) SVG fragment of filter provided as a string
            -     = (object) @Element
            -     * Note: It is recommended to use filters embedded into the page inside an empty SVG element.
            -     > Usage
            -     | var f = paper.filter(''),
            -     |     c = paper.circle(10, 10, 10).attr({
            -     |         filter: f
            -     |     });
            -    \*/
            -    pproto.filter = function (filstr) {
            -        var paper = this;
            -        if (paper.type != "svg") {
            -            paper = paper.paper;
            -        }
            -        var f = Snap.parse(Str(filstr)),
            -            id = Snap._.id(),
            -            width = paper.node.offsetWidth,
            -            height = paper.node.offsetHeight,
            -            filter = $("filter");
            -        $(filter, {
            -            id: id,
            -            filterUnits: "userSpaceOnUse"
            -        });
            -        filter.appendChild(f.node);
            -        paper.defs.appendChild(filter);
            -        return new Element(filter);
            -    };
            -    
            -    eve.on("snap.util.getattr.filter", function () {
            -        eve.stop();
            -        var p = $(this.node, "filter");
            -        if (p) {
            -            var match = Str(p).match(rgurl);
            -            return match && Snap.select(match[1]);
            -        }
            -    });
            -    eve.on("snap.util.attr.filter", function (value) {
            -        if (value instanceof Element && value.type == "filter") {
            -            eve.stop();
            -            var id = value.node.id;
            -            if (!id) {
            -                $(value.node, {id: value.id});
            -                id = value.id;
            -            }
            -            $(this.node, {
            -                filter: Snap.url(id)
            -            });
            -        }
            -        if (!value || value == "none") {
            -            eve.stop();
            -            this.node.removeAttribute("filter");
            -        }
            -    });
            -    /*\
            -     * Snap.filter.blur
            -     [ method ]
            -     **
            -     * Returns an SVG markup string for the blur filter
            -     **
            -     - x (number) amount of horizontal blur, in pixels
            -     - y (number) #optional amount of vertical blur, in pixels
            -     = (string) filter representation
            -     > Usage
            -     | var f = paper.filter(Snap.filter.blur(5, 10)),
            -     |     c = paper.circle(10, 10, 10).attr({
            -     |         filter: f
            -     |     });
            -    \*/
            -    Snap.filter.blur = function (x, y) {
            -        if (x == null) {
            -            x = 2;
            -        }
            -        var def = y == null ? x : [x, y];
            -        return Snap.format('\', {
            -            def: def
            -        });
            -    };
            -    Snap.filter.blur.toString = function () {
            -        return this();
            -    };
            -    /*\
            -     * Snap.filter.shadow
            -     [ method ]
            -     **
            -     * Returns an SVG markup string for the shadow filter
            -     **
            -     - dx (number) #optional horizontal shift of the shadow, in pixels
            -     - dy (number) #optional vertical shift of the shadow, in pixels
            -     - blur (number) #optional amount of blur
            -     - color (string) #optional color of the shadow
            -     - opacity (number) #optional `0..1` opacity of the shadow
            -     * or
            -     - dx (number) #optional horizontal shift of the shadow, in pixels
            -     - dy (number) #optional vertical shift of the shadow, in pixels
            -     - color (string) #optional color of the shadow
            -     - opacity (number) #optional `0..1` opacity of the shadow
            -     * which makes blur default to `4`. Or
            -     - dx (number) #optional horizontal shift of the shadow, in pixels
            -     - dy (number) #optional vertical shift of the shadow, in pixels
            -     - opacity (number) #optional `0..1` opacity of the shadow
            -     = (string) filter representation
            -     > Usage
            -     | var f = paper.filter(Snap.filter.shadow(0, 2, 3)),
            -     |     c = paper.circle(10, 10, 10).attr({
            -     |         filter: f
            -     |     });
            -    \*/
            -    Snap.filter.shadow = function (dx, dy, blur, color, opacity) {
            -        if (typeof blur == "string") {
            -            color = blur;
            -            opacity = color;
            -            blur = 4;
            -        }
            -        if (typeof color != "string") {
            -            opacity = color;
            -            color = "#000";
            -        }
            -        color = color || "#000";
            -        if (blur == null) {
            -            blur = 4;
            -        }
            -        if (opacity == null) {
            -            opacity = 1;
            -        }
            -        if (dx == null) {
            -            dx = 0;
            -            dy = 2;
            -        }
            -        if (dy == null) {
            -            dy = dx;
            -        }
            -        color = Snap.color(color);
            -        return Snap.format('', {
            -            color: color,
            -            dx: dx,
            -            dy: dy,
            -            blur: blur,
            -            opacity: opacity
            -        });
            -    };
            -    Snap.filter.shadow.toString = function () {
            -        return this();
            -    };
            -    /*\
            -     * Snap.filter.grayscale
            -     [ method ]
            -     **
            -     * Returns an SVG markup string for the grayscale filter
            -     **
            -     - amount (number) amount of filter (`0..1`)
            -     = (string) filter representation
            -    \*/
            -    Snap.filter.grayscale = function (amount) {
            -        if (amount == null) {
            -            amount = 1;
            -        }
            -        return Snap.format('', {
            -            a: 0.2126 + 0.7874 * (1 - amount),
            -            b: 0.7152 - 0.7152 * (1 - amount),
            -            c: 0.0722 - 0.0722 * (1 - amount),
            -            d: 0.2126 - 0.2126 * (1 - amount),
            -            e: 0.7152 + 0.2848 * (1 - amount),
            -            f: 0.0722 - 0.0722 * (1 - amount),
            -            g: 0.2126 - 0.2126 * (1 - amount),
            -            h: 0.0722 + 0.9278 * (1 - amount)
            -        });
            -    };
            -    Snap.filter.grayscale.toString = function () {
            -        return this();
            -    };
            -    /*\
            -     * Snap.filter.sepia
            -     [ method ]
            -     **
            -     * Returns an SVG markup string for the sepia filter
            -     **
            -     - amount (number) amount of filter (`0..1`)
            -     = (string) filter representation
            -    \*/
            -    Snap.filter.sepia = function (amount) {
            -        if (amount == null) {
            -            amount = 1;
            -        }
            -        return Snap.format('', {
            -            a: 0.393 + 0.607 * (1 - amount),
            -            b: 0.769 - 0.769 * (1 - amount),
            -            c: 0.189 - 0.189 * (1 - amount),
            -            d: 0.349 - 0.349 * (1 - amount),
            -            e: 0.686 + 0.314 * (1 - amount),
            -            f: 0.168 - 0.168 * (1 - amount),
            -            g: 0.272 - 0.272 * (1 - amount),
            -            h: 0.534 - 0.534 * (1 - amount),
            -            i: 0.131 + 0.869 * (1 - amount)
            -        });
            -    };
            -    Snap.filter.sepia.toString = function () {
            -        return this();
            -    };
            -    /*\
            -     * Snap.filter.saturate
            -     [ method ]
            -     **
            -     * Returns an SVG markup string for the saturate filter
            -     **
            -     - amount (number) amount of filter (`0..1`)
            -     = (string) filter representation
            -    \*/
            -    Snap.filter.saturate = function (amount) {
            -        if (amount == null) {
            -            amount = 1;
            -        }
            -        return Snap.format('', {
            -            amount: 1 - amount
            -        });
            -    };
            -    Snap.filter.saturate.toString = function () {
            -        return this();
            -    };
            -    /*\
            -     * Snap.filter.hueRotate
            -     [ method ]
            -     **
            -     * Returns an SVG markup string for the hue-rotate filter
            -     **
            -     - angle (number) angle of rotation
            -     = (string) filter representation
            -    \*/
            -    Snap.filter.hueRotate = function (angle) {
            -        angle = angle || 0;
            -        return Snap.format('', {
            -            angle: angle
            -        });
            -    };
            -    Snap.filter.hueRotate.toString = function () {
            -        return this();
            -    };
            -    /*\
            -     * Snap.filter.invert
            -     [ method ]
            -     **
            -     * Returns an SVG markup string for the invert filter
            -     **
            -     - amount (number) amount of filter (`0..1`)
            -     = (string) filter representation
            -    \*/
            -    Snap.filter.invert = function (amount) {
            -        if (amount == null) {
            -            amount = 1;
            -        }
            -//        
            -        return Snap.format('', {
            -            amount: amount,
            -            amount2: 1 - amount
            -        });
            -    };
            -    Snap.filter.invert.toString = function () {
            -        return this();
            -    };
            -    /*\
            -     * Snap.filter.brightness
            -     [ method ]
            -     **
            -     * Returns an SVG markup string for the brightness filter
            -     **
            -     - amount (number) amount of filter (`0..1`)
            -     = (string) filter representation
            -    \*/
            -    Snap.filter.brightness = function (amount) {
            -        if (amount == null) {
            -            amount = 1;
            -        }
            -        return Snap.format('', {
            -            amount: amount
            -        });
            -    };
            -    Snap.filter.brightness.toString = function () {
            -        return this();
            -    };
            -    /*\
            -     * Snap.filter.contrast
            -     [ method ]
            -     **
            -     * Returns an SVG markup string for the contrast filter
            -     **
            -     - amount (number) amount of filter (`0..1`)
            -     = (string) filter representation
            -    \*/
            -    Snap.filter.contrast = function (amount) {
            -        if (amount == null) {
            -            amount = 1;
            -        }
            -        return Snap.format('', {
            -            amount: amount,
            -            amount2: .5 - amount / 2
            -        });
            -    };
            -    Snap.filter.contrast.toString = function () {
            -        return this();
            -    };
            -});
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/matrix.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/matrix.js
            deleted file mode 100644
            index 957beda8..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/matrix.js
            +++ /dev/null
            @@ -1,309 +0,0 @@
            -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
            -// 
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -// 
            -// http://www.apache.org/licenses/LICENSE-2.0
            -// 
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) {
            -    var objectToString = Object.prototype.toString,
            -        Str = String,
            -        math = Math,
            -        E = "";
            -    function Matrix(a, b, c, d, e, f) {
            -        if (b == null && objectToString.call(a) == "[object SVGMatrix]") {
            -            this.a = a.a;
            -            this.b = a.b;
            -            this.c = a.c;
            -            this.d = a.d;
            -            this.e = a.e;
            -            this.f = a.f;
            -            return;
            -        }
            -        if (a != null) {
            -            this.a = +a;
            -            this.b = +b;
            -            this.c = +c;
            -            this.d = +d;
            -            this.e = +e;
            -            this.f = +f;
            -        } else {
            -            this.a = 1;
            -            this.b = 0;
            -            this.c = 0;
            -            this.d = 1;
            -            this.e = 0;
            -            this.f = 0;
            -        }
            -    }
            -    (function (matrixproto) {
            -        /*\
            -         * Matrix.add
            -         [ method ]
            -         **
            -         * Adds the given matrix to existing one
            -         - a (number)
            -         - b (number)
            -         - c (number)
            -         - d (number)
            -         - e (number)
            -         - f (number)
            -         * or
            -         - matrix (object) @Matrix
            -        \*/
            -        matrixproto.add = function (a, b, c, d, e, f) {
            -            var out = [[], [], []],
            -                m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]],
            -                matrix = [[a, c, e], [b, d, f], [0, 0, 1]],
            -                x, y, z, res;
            -
            -            if (a && a instanceof Matrix) {
            -                matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]];
            -            }
            -
            -            for (x = 0; x < 3; x++) {
            -                for (y = 0; y < 3; y++) {
            -                    res = 0;
            -                    for (z = 0; z < 3; z++) {
            -                        res += m[x][z] * matrix[z][y];
            -                    }
            -                    out[x][y] = res;
            -                }
            -            }
            -            this.a = out[0][0];
            -            this.b = out[1][0];
            -            this.c = out[0][1];
            -            this.d = out[1][1];
            -            this.e = out[0][2];
            -            this.f = out[1][2];
            -            return this;
            -        };
            -        /*\
            -         * Matrix.invert
            -         [ method ]
            -         **
            -         * Returns an inverted version of the matrix
            -         = (object) @Matrix
            -        \*/
            -        matrixproto.invert = function () {
            -            var me = this,
            -                x = me.a * me.d - me.b * me.c;
            -            return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);
            -        };
            -        /*\
            -         * Matrix.clone
            -         [ method ]
            -         **
            -         * Returns a copy of the matrix
            -         = (object) @Matrix
            -        \*/
            -        matrixproto.clone = function () {
            -            return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);
            -        };
            -        /*\
            -         * Matrix.translate
            -         [ method ]
            -         **
            -         * Translate the matrix
            -         - x (number) horizontal offset distance
            -         - y (number) vertical offset distance
            -        \*/
            -        matrixproto.translate = function (x, y) {
            -            return this.add(1, 0, 0, 1, x, y);
            -        };
            -        /*\
            -         * Matrix.scale
            -         [ method ]
            -         **
            -         * Scales the matrix
            -         - x (number) amount to be scaled, with `1` resulting in no change
            -         - y (number) #optional amount to scale along the vertical axis. (Otherwise `x` applies to both axes.)
            -         - cx (number) #optional horizontal origin point from which to scale
            -         - cy (number) #optional vertical origin point from which to scale
            -         * Default cx, cy is the middle point of the element.
            -        \*/
            -        matrixproto.scale = function (x, y, cx, cy) {
            -            y == null && (y = x);
            -            (cx || cy) && this.add(1, 0, 0, 1, cx, cy);
            -            this.add(x, 0, 0, y, 0, 0);
            -            (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy);
            -            return this;
            -        };
            -        /*\
            -         * Matrix.rotate
            -         [ method ]
            -         **
            -         * Rotates the matrix
            -         - a (number) angle of rotation, in degrees
            -         - x (number) horizontal origin point from which to rotate
            -         - y (number) vertical origin point from which to rotate
            -        \*/
            -        matrixproto.rotate = function (a, x, y) {
            -            a = Snap.rad(a);
            -            x = x || 0;
            -            y = y || 0;
            -            var cos = +math.cos(a).toFixed(9),
            -                sin = +math.sin(a).toFixed(9);
            -            this.add(cos, sin, -sin, cos, x, y);
            -            return this.add(1, 0, 0, 1, -x, -y);
            -        };
            -        /*\
            -         * Matrix.x
            -         [ method ]
            -         **
            -         * Returns x coordinate for given point after transformation described by the matrix. See also @Matrix.y
            -         - x (number)
            -         - y (number)
            -         = (number) x
            -        \*/
            -        matrixproto.x = function (x, y) {
            -            return x * this.a + y * this.c + this.e;
            -        };
            -        /*\
            -         * Matrix.y
            -         [ method ]
            -         **
            -         * Returns y coordinate for given point after transformation described by the matrix. See also @Matrix.x
            -         - x (number)
            -         - y (number)
            -         = (number) y
            -        \*/
            -        matrixproto.y = function (x, y) {
            -            return x * this.b + y * this.d + this.f;
            -        };
            -        matrixproto.get = function (i) {
            -            return +this[Str.fromCharCode(97 + i)].toFixed(4);
            -        };
            -        matrixproto.toString = function () {
            -            return "matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")";
            -        };
            -        matrixproto.offset = function () {
            -            return [this.e.toFixed(4), this.f.toFixed(4)];
            -        };
            -        function norm(a) {
            -            return a[0] * a[0] + a[1] * a[1];
            -        }
            -        function normalize(a) {
            -            var mag = math.sqrt(norm(a));
            -            a[0] && (a[0] /= mag);
            -            a[1] && (a[1] /= mag);
            -        }
            -        /*\
            -         * Matrix.determinant
            -         [ method ]
            -         **
            -         * Finds determinant of the given matrix.
            -         = (number) determinant
            -        \*/
            -        matrixproto.determinant = function () {
            -            return this.a * this.d - this.b * this.c;
            -        };
            -        /*\
            -         * Matrix.split
            -         [ method ]
            -         **
            -         * Splits matrix into primitive transformations
            -         = (object) in format:
            -         o dx (number) translation by x
            -         o dy (number) translation by y
            -         o scalex (number) scale by x
            -         o scaley (number) scale by y
            -         o shear (number) shear
            -         o rotate (number) rotation in deg
            -         o isSimple (boolean) could it be represented via simple transformations
            -        \*/
            -        matrixproto.split = function () {
            -            var out = {};
            -            // translation
            -            out.dx = this.e;
            -            out.dy = this.f;
            -
            -            // scale and shear
            -            var row = [[this.a, this.c], [this.b, this.d]];
            -            out.scalex = math.sqrt(norm(row[0]));
            -            normalize(row[0]);
            -
            -            out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];
            -            row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];
            -
            -            out.scaley = math.sqrt(norm(row[1]));
            -            normalize(row[1]);
            -            out.shear /= out.scaley;
            -
            -            if (this.determinant() < 0) {
            -                out.scalex = -out.scalex;
            -            }
            -
            -            // rotation
            -            var sin = -row[0][1],
            -                cos = row[1][1];
            -            if (cos < 0) {
            -                out.rotate = Snap.deg(math.acos(cos));
            -                if (sin < 0) {
            -                    out.rotate = 360 - out.rotate;
            -                }
            -            } else {
            -                out.rotate = Snap.deg(math.asin(sin));
            -            }
            -
            -            out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);
            -            out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;
            -            out.noRotation = !+out.shear.toFixed(9) && !out.rotate;
            -            return out;
            -        };
            -        /*\
            -         * Matrix.toTransformString
            -         [ method ]
            -         **
            -         * Returns transform string that represents given matrix
            -         = (string) transform string
            -        \*/
            -        matrixproto.toTransformString = function (shorter) {
            -            var s = shorter || this.split();
            -            if (!+s.shear.toFixed(9)) {
            -                s.scalex = +s.scalex.toFixed(4);
            -                s.scaley = +s.scaley.toFixed(4);
            -                s.rotate = +s.rotate.toFixed(4);
            -                return  (s.dx || s.dy ? "t" + [+s.dx.toFixed(4), +s.dy.toFixed(4)] : E) + 
            -                        (s.scalex != 1 || s.scaley != 1 ? "s" + [s.scalex, s.scaley, 0, 0] : E) +
            -                        (s.rotate ? "r" + [+s.rotate.toFixed(4), 0, 0] : E);
            -            } else {
            -                return "m" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];
            -            }
            -        };
            -    })(Matrix.prototype);
            -    /*\
            -     * Snap.Matrix
            -     [ method ]
            -     **
            -     * Matrix constructor, extend on your own risk.
            -     * To create matrices use @Snap.matrix.
            -    \*/
            -    Snap.Matrix = Matrix;
            -    /*\
            -     * Snap.matrix
            -     [ method ]
            -     **
            -     * Utility method
            -     **
            -     * Returns a matrix based on the given parameters
            -     - a (number)
            -     - b (number)
            -     - c (number)
            -     - d (number)
            -     - e (number)
            -     - f (number)
            -     * or
            -     - svgMatrix (SVGMatrix)
            -     = (object) @Matrix
            -    \*/
            -    Snap.matrix = function (a, b, c, d, e, f) {
            -        return new Matrix(a, b, c, d, e, f);
            -    };
            -});
            \ No newline at end of file
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/mina.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/mina.js
            deleted file mode 100644
            index 9d4d5000..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/mina.js
            +++ /dev/null
            @@ -1,356 +0,0 @@
            -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
            -// 
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -// 
            -// http://www.apache.org/licenses/LICENSE-2.0
            -// 
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -var mina = (function (eve) {
            -    var animations = {},
            -    requestAnimFrame = window.requestAnimationFrame       ||
            -                       window.webkitRequestAnimationFrame ||
            -                       window.mozRequestAnimationFrame    ||
            -                       window.oRequestAnimationFrame      ||
            -                       window.msRequestAnimationFrame     ||
            -                       function (callback) {
            -                           setTimeout(callback, 16);
            -                       },
            -    isArray = Array.isArray || function (a) {
            -        return a instanceof Array ||
            -            Object.prototype.toString.call(a) == "[object Array]";
            -    },
            -    idgen = 0,
            -    idprefix = "M" + (+new Date).toString(36),
            -    ID = function () {
            -        return idprefix + (idgen++).toString(36);
            -    },
            -    diff = function (a, b, A, B) {
            -        if (isArray(a)) {
            -            res = [];
            -            for (var i = 0, ii = a.length; i < ii; i++) {
            -                res[i] = diff(a[i], b, A[i], B);
            -            }
            -            return res;
            -        }
            -        var dif = (A - a) / (B - b);
            -        return function (bb) {
            -            return a + dif * (bb - b);
            -        };
            -    },
            -    timer = Date.now || function () {
            -        return +new Date;
            -    },
            -    sta = function (val) {
            -        var a = this;
            -        if (val == null) {
            -            return a.s;
            -        }
            -        var ds = a.s - val;
            -        a.b += a.dur * ds;
            -        a.B += a.dur * ds;
            -        a.s = val;
            -    },
            -    speed = function (val) {
            -        var a = this;
            -        if (val == null) {
            -            return a.spd;
            -        }
            -        a.spd = val;
            -    },
            -    duration = function (val) {
            -        var a = this;
            -        if (val == null) {
            -            return a.dur;
            -        }
            -        a.s = a.s * val / a.dur;
            -        a.dur = val;
            -    },
            -    stopit = function () {
            -        var a = this;
            -        delete animations[a.id];
            -        a.update();
            -        eve("mina.stop." + a.id, a);
            -    },
            -    pause = function () {
            -        var a = this;
            -        if (a.pdif) {
            -            return;
            -        }
            -        delete animations[a.id];
            -        a.update();
            -        a.pdif = a.get() - a.b;
            -    },
            -    resume = function () {
            -        var a = this;
            -        if (!a.pdif) {
            -            return;
            -        }
            -        a.b = a.get() - a.pdif;
            -        delete a.pdif;
            -        animations[a.id] = a;
            -    },
            -    update = function () {
            -        var a = this,
            -            res;
            -        if (isArray(a.start)) {
            -            res = [];
            -            for (var j = 0, jj = a.start.length; j < jj; j++) {
            -                res[j] = +a.start[j] +
            -                    (a.end[j] - a.start[j]) * a.easing(a.s);
            -            }
            -        } else {
            -            res = +a.start + (a.end - a.start) * a.easing(a.s);
            -        }
            -        a.set(res);
            -    },
            -    frame = function () {
            -        var len = 0;
            -        for (var i in animations) if (animations.hasOwnProperty(i)) {
            -            var a = animations[i],
            -                b = a.get(),
            -                res;
            -            len++;
            -            a.s = (b - a.b) / (a.dur / a.spd);
            -            if (a.s >= 1) {
            -                delete animations[i];
            -                a.s = 1;
            -                len--;
            -                (function (a) {
            -                    setTimeout(function () {
            -                        eve("mina.finish." + a.id, a);
            -                    });
            -                }(a));
            -            }
            -            a.update();
            -        }
            -        len && requestAnimFrame(frame);
            -    },
            -    /*\
            -     * mina
            -     [ method ]
            -     **
            -     * Generic animation of numbers
            -     **
            -     - a (number) start _slave_ number
            -     - A (number) end _slave_ number
            -     - b (number) start _master_ number (start time in general case)
            -     - B (number) end _master_ number (end time in gereal case)
            -     - get (function) getter of _master_ number (see @mina.time)
            -     - set (function) setter of _slave_ number
            -     - easing (function) #optional easing function, default is @mina.linear
            -     = (object) animation descriptor
            -     o {
            -     o         id (string) animation id,
            -     o         start (number) start _slave_ number,
            -     o         end (number) end _slave_ number,
            -     o         b (number) start _master_ number,
            -     o         s (number) animation status (0..1),
            -     o         dur (number) animation duration,
            -     o         spd (number) animation speed,
            -     o         get (function) getter of _master_ number (see @mina.time),
            -     o         set (function) setter of _slave_ number,
            -     o         easing (function) easing function, default is @mina.linear,
            -     o         status (function) status getter/setter,
            -     o         speed (function) speed getter/setter,
            -     o         duration (function) duration getter/setter,
            -     o         stop (function) animation stopper
            -     o         pause (function) pauses the animation
            -     o         resume (function) resumes the animation
            -     o         update (function) calles setter with the right value of the animation
            -     o }
            -    \*/
            -    mina = function (a, A, b, B, get, set, easing) {
            -        var anim = {
            -            id: ID(),
            -            start: a,
            -            end: A,
            -            b: b,
            -            s: 0,
            -            dur: B - b,
            -            spd: 1,
            -            get: get,
            -            set: set,
            -            easing: easing || mina.linear,
            -            status: sta,
            -            speed: speed,
            -            duration: duration,
            -            stop: stopit,
            -            pause: pause,
            -            resume: resume,
            -            update: update
            -        };
            -        animations[anim.id] = anim;
            -        var len = 0, i;
            -        for (i in animations) if (animations.hasOwnProperty(i)) {
            -            len++;
            -            if (len == 2) {
            -                break;
            -            }
            -        }
            -        len == 1 && requestAnimFrame(frame);
            -        return anim;
            -    };
            -    /*\
            -     * mina.time
            -     [ method ]
            -     **
            -     * Returns the current time. Equivalent to:
            -     | function () {
            -     |     return (new Date).getTime();
            -     | }
            -    \*/
            -    mina.time = timer;
            -    /*\
            -     * mina.getById
            -     [ method ]
            -     **
            -     * Returns an animation by its id
            -     - id (string) animation's id
            -     = (object) See @mina
            -    \*/
            -    mina.getById = function (id) {
            -        return animations[id] || null;
            -    };
            -
            -    /*\
            -     * mina.linear
            -     [ method ]
            -     **
            -     * Default linear easing
            -     - n (number) input 0..1
            -     = (number) output 0..1
            -    \*/
            -    mina.linear = function (n) {
            -        return n;
            -    };
            -    /*\
            -     * mina.easeout
            -     [ method ]
            -     **
            -     * Easeout easing
            -     - n (number) input 0..1
            -     = (number) output 0..1
            -    \*/
            -    mina.easeout = function (n) {
            -        return Math.pow(n, 1.7);
            -    };
            -    /*\
            -     * mina.easein
            -     [ method ]
            -     **
            -     * Easein easing
            -     - n (number) input 0..1
            -     = (number) output 0..1
            -    \*/
            -    mina.easein = function (n) {
            -        return Math.pow(n, .48);
            -    };
            -    /*\
            -     * mina.easeinout
            -     [ method ]
            -     **
            -     * Easeinout easing
            -     - n (number) input 0..1
            -     = (number) output 0..1
            -    \*/
            -    mina.easeinout = function (n) {
            -        if (n == 1) {
            -            return 1;
            -        }
            -        if (n == 0) {
            -            return 0;
            -        }
            -        var q = .48 - n / 1.04,
            -            Q = Math.sqrt(.1734 + q * q),
            -            x = Q - q,
            -            X = Math.pow(Math.abs(x), 1 / 3) * (x < 0 ? -1 : 1),
            -            y = -Q - q,
            -            Y = Math.pow(Math.abs(y), 1 / 3) * (y < 0 ? -1 : 1),
            -            t = X + Y + .5;
            -        return (1 - t) * 3 * t * t + t * t * t;
            -    };
            -    /*\
            -     * mina.backin
            -     [ method ]
            -     **
            -     * Backin easing
            -     - n (number) input 0..1
            -     = (number) output 0..1
            -    \*/
            -    mina.backin = function (n) {
            -        if (n == 1) {
            -            return 1;
            -        }
            -        var s = 1.70158;
            -        return n * n * ((s + 1) * n - s);
            -    };
            -    /*\
            -     * mina.backout
            -     [ method ]
            -     **
            -     * Backout easing
            -     - n (number) input 0..1
            -     = (number) output 0..1
            -    \*/
            -    mina.backout = function (n) {
            -        if (n == 0) {
            -            return 0;
            -        }
            -        n = n - 1;
            -        var s = 1.70158;
            -        return n * n * ((s + 1) * n + s) + 1;
            -    };
            -    /*\
            -     * mina.elastic
            -     [ method ]
            -     **
            -     * Elastic easing
            -     - n (number) input 0..1
            -     = (number) output 0..1
            -    \*/
            -    mina.elastic = function (n) {
            -        if (n == !!n) {
            -            return n;
            -        }
            -        return Math.pow(2, -10 * n) * Math.sin((n - .075) *
            -            (2 * Math.PI) / .3) + 1;
            -    };
            -    /*\
            -     * mina.bounce
            -     [ method ]
            -     **
            -     * Bounce easing
            -     - n (number) input 0..1
            -     = (number) output 0..1
            -    \*/
            -    mina.bounce = function (n) {
            -        var s = 7.5625,
            -            p = 2.75,
            -            l;
            -        if (n < (1 / p)) {
            -            l = s * n * n;
            -        } else {
            -            if (n < (2 / p)) {
            -                n -= (1.5 / p);
            -                l = s * n * n + .75;
            -            } else {
            -                if (n < (2.5 / p)) {
            -                    n -= (2.25 / p);
            -                    l = s * n * n + .9375;
            -                } else {
            -                    n -= (2.625 / p);
            -                    l = s * n * n + .984375;
            -                }
            -            }
            -        }
            -        return l;
            -    };
            -    window.mina = mina;
            -    return mina;
            -})(typeof eve == "undefined" ? function () {} : eve);
            \ No newline at end of file
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/mouse.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/mouse.js
            deleted file mode 100644
            index 0cb913a2..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/mouse.js
            +++ /dev/null
            @@ -1,476 +0,0 @@
            -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
            -// 
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -// 
            -// http://www.apache.org/licenses/LICENSE-2.0
            -// 
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -Snap.plugin(function (Snap, Element, Paper, glob) {
            -    var elproto = Element.prototype,
            -    has = "hasOwnProperty",
            -    supportsTouch = "createTouch" in glob.doc,
            -    events = [
            -        "click", "dblclick", "mousedown", "mousemove", "mouseout",
            -        "mouseover", "mouseup", "touchstart", "touchmove", "touchend",
            -        "touchcancel"
            -    ],
            -    touchMap = {
            -        mousedown: "touchstart",
            -        mousemove: "touchmove",
            -        mouseup: "touchend"
            -    },
            -    getScroll = function (xy, el) {
            -        var name = xy == "y" ? "scrollTop" : "scrollLeft",
            -            doc = el && el.node ? el.node.ownerDocument : glob.doc;
            -        return doc[name in doc.documentElement ? "documentElement" : "body"][name];
            -    },
            -    preventDefault = function () {
            -        this.returnValue = false;
            -    },
            -    preventTouch = function () {
            -        return this.originalEvent.preventDefault();
            -    },
            -    stopPropagation = function () {
            -        this.cancelBubble = true;
            -    },
            -    stopTouch = function () {
            -        return this.originalEvent.stopPropagation();
            -    },
            -    addEvent = function (obj, type, fn, element) {
            -        var realName = supportsTouch && touchMap[type] ? touchMap[type] : type,
            -            f = function (e) {
            -                var scrollY = getScroll("y", element),
            -                    scrollX = getScroll("x", element);
            -                if (supportsTouch && touchMap[has](type)) {
            -                    for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {
            -                        if (e.targetTouches[i].target == obj || obj.contains(e.targetTouches[i].target)) {
            -                            var olde = e;
            -                            e = e.targetTouches[i];
            -                            e.originalEvent = olde;
            -                            e.preventDefault = preventTouch;
            -                            e.stopPropagation = stopTouch;
            -                            break;
            -                        }
            -                    }
            -                }
            -                var x = e.clientX + scrollX,
            -                    y = e.clientY + scrollY;
            -                return fn.call(element, e, x, y);
            -            };
            -
            -        if (type !== realName) {
            -            obj.addEventListener(type, f, false);
            -        }
            -
            -        obj.addEventListener(realName, f, false);
            -
            -        return function () {
            -            if (type !== realName) {
            -                obj.removeEventListener(type, f, false);
            -            }
            -
            -            obj.removeEventListener(realName, f, false);
            -            return true;
            -        };
            -    },
            -    drag = [],
            -    dragMove = function (e) {
            -        var x = e.clientX,
            -            y = e.clientY,
            -            scrollY = getScroll("y"),
            -            scrollX = getScroll("x"),
            -            dragi,
            -            j = drag.length;
            -        while (j--) {
            -            dragi = drag[j];
            -            if (supportsTouch) {
            -                var i = e.touches && e.touches.length,
            -                    touch;
            -                while (i--) {
            -                    touch = e.touches[i];
            -                    if (touch.identifier == dragi.el._drag.id || dragi.el.node.contains(touch.target)) {
            -                        x = touch.clientX;
            -                        y = touch.clientY;
            -                        (e.originalEvent ? e.originalEvent : e).preventDefault();
            -                        break;
            -                    }
            -                }
            -            } else {
            -                e.preventDefault();
            -            }
            -            var node = dragi.el.node,
            -                o,
            -                next = node.nextSibling,
            -                parent = node.parentNode,
            -                display = node.style.display;
            -            // glob.win.opera && parent.removeChild(node);
            -            // node.style.display = "none";
            -            // o = dragi.el.paper.getElementByPoint(x, y);
            -            // node.style.display = display;
            -            // glob.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));
            -            // o && eve("snap.drag.over." + dragi.el.id, dragi.el, o);
            -            x += scrollX;
            -            y += scrollY;
            -            eve("snap.drag.move." + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);
            -        }
            -    },
            -    dragUp = function (e) {
            -        Snap.unmousemove(dragMove).unmouseup(dragUp);
            -        var i = drag.length,
            -            dragi;
            -        while (i--) {
            -            dragi = drag[i];
            -            dragi.el._drag = {};
            -            eve("snap.drag.end." + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);
            -            eve.off("snap.drag.*." + dragi.el.id);
            -        }
            -        drag = [];
            -    };
            -    /*\
            -     * Element.click
            -     [ method ]
            -     **
            -     * Adds a click event handler to the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    /*\
            -     * Element.unclick
            -     [ method ]
            -     **
            -     * Removes a click event handler from the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    
            -    /*\
            -     * Element.dblclick
            -     [ method ]
            -     **
            -     * Adds a double click event handler to the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    /*\
            -     * Element.undblclick
            -     [ method ]
            -     **
            -     * Removes a double click event handler from the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    
            -    /*\
            -     * Element.mousedown
            -     [ method ]
            -     **
            -     * Adds a mousedown event handler to the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    /*\
            -     * Element.unmousedown
            -     [ method ]
            -     **
            -     * Removes a mousedown event handler from the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    
            -    /*\
            -     * Element.mousemove
            -     [ method ]
            -     **
            -     * Adds a mousemove event handler to the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    /*\
            -     * Element.unmousemove
            -     [ method ]
            -     **
            -     * Removes a mousemove event handler from the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    
            -    /*\
            -     * Element.mouseout
            -     [ method ]
            -     **
            -     * Adds a mouseout event handler to the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    /*\
            -     * Element.unmouseout
            -     [ method ]
            -     **
            -     * Removes a mouseout event handler from the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    
            -    /*\
            -     * Element.mouseover
            -     [ method ]
            -     **
            -     * Adds a mouseover event handler to the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    /*\
            -     * Element.unmouseover
            -     [ method ]
            -     **
            -     * Removes a mouseover event handler from the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    
            -    /*\
            -     * Element.mouseup
            -     [ method ]
            -     **
            -     * Adds a mouseup event handler to the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    /*\
            -     * Element.unmouseup
            -     [ method ]
            -     **
            -     * Removes a mouseup event handler from the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    
            -    /*\
            -     * Element.touchstart
            -     [ method ]
            -     **
            -     * Adds a touchstart event handler to the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    /*\
            -     * Element.untouchstart
            -     [ method ]
            -     **
            -     * Removes a touchstart event handler from the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    
            -    /*\
            -     * Element.touchmove
            -     [ method ]
            -     **
            -     * Adds a touchmove event handler to the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    /*\
            -     * Element.untouchmove
            -     [ method ]
            -     **
            -     * Removes a touchmove event handler from the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    
            -    /*\
            -     * Element.touchend
            -     [ method ]
            -     **
            -     * Adds a touchend event handler to the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    /*\
            -     * Element.untouchend
            -     [ method ]
            -     **
            -     * Removes a touchend event handler from the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    
            -    /*\
            -     * Element.touchcancel
            -     [ method ]
            -     **
            -     * Adds a touchcancel event handler to the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    /*\
            -     * Element.untouchcancel
            -     [ method ]
            -     **
            -     * Removes a touchcancel event handler from the element
            -     - handler (function) handler for the event
            -     = (object) @Element
            -    \*/
            -    for (var i = events.length; i--;) {
            -        (function (eventName) {
            -            Snap[eventName] = elproto[eventName] = function (fn, scope) {
            -                if (Snap.is(fn, "function")) {
            -                    this.events = this.events || [];
            -                    this.events.push({
            -                        name: eventName,
            -                        f: fn,
            -                        unbind: addEvent(this.node || document, eventName, fn, scope || this)
            -                    });
            -                } else {
            -                    for (var i = 0, ii = this.events.length; i < ii; i++) if (this.events[i].name == eventName) {
            -                        try {
            -                            this.events[i].f.call(this);
            -                        } catch (e) {}
            -                    }
            -                }
            -                return this;
            -            };
            -            Snap["un" + eventName] =
            -            elproto["un" + eventName] = function (fn) {
            -                var events = this.events || [],
            -                    l = events.length;
            -                while (l--) if (events[l].name == eventName &&
            -                               (events[l].f == fn || !fn)) {
            -                    events[l].unbind();
            -                    events.splice(l, 1);
            -                    !events.length && delete this.events;
            -                    return this;
            -                }
            -                return this;
            -            };
            -        })(events[i]);
            -    }
            -    /*\
            -     * Element.hover
            -     [ method ]
            -     **
            -     * Adds hover event handlers to the element
            -     - f_in (function) handler for hover in
            -     - f_out (function) handler for hover out
            -     - icontext (object) #optional context for hover in handler
            -     - ocontext (object) #optional context for hover out handler
            -     = (object) @Element
            -    \*/
            -    elproto.hover = function (f_in, f_out, scope_in, scope_out) {
            -        return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);
            -    };
            -    /*\
            -     * Element.unhover
            -     [ method ]
            -     **
            -     * Removes hover event handlers from the element
            -     - f_in (function) handler for hover in
            -     - f_out (function) handler for hover out
            -     = (object) @Element
            -    \*/
            -    elproto.unhover = function (f_in, f_out) {
            -        return this.unmouseover(f_in).unmouseout(f_out);
            -    };
            -    var draggable = [];
            -    // SIERRA unclear what _context_ refers to for starting, ending, moving the drag gesture.
            -    // SIERRA Element.drag(): _x position of the mouse_: Where are the x/y values offset from?
            -    // SIERRA Element.drag(): much of this member's doc appears to be duplicated for some reason.
            -    // SIERRA Unclear about this sentence: _Additionally following drag events will be triggered: drag.start. on start, drag.end. on end and drag.move. on every move._ Is there a global _drag_ object to which you can assign handlers keyed by an element's ID?
            -    /*\
            -     * Element.drag
            -     [ method ]
            -     **
            -     * Adds event handlers for an element's drag gesture
            -     **
            -     - onmove (function) handler for moving
            -     - onstart (function) handler for drag start
            -     - onend (function) handler for drag end
            -     - mcontext (object) #optional context for moving handler
            -     - scontext (object) #optional context for drag start handler
            -     - econtext (object) #optional context for drag end handler
            -     * Additionaly following `drag` events are triggered: `drag.start.` on start, 
            -     * `drag.end.` on end and `drag.move.` on every move. When element is dragged over another element 
            -     * `drag.over.` fires as well.
            -     *
            -     * Start event and start handler are called in specified context or in context of the element with following parameters:
            -     o x (number) x position of the mouse
            -     o y (number) y position of the mouse
            -     o event (object) DOM event object
            -     * Move event and move handler are called in specified context or in context of the element with following parameters:
            -     o dx (number) shift by x from the start point
            -     o dy (number) shift by y from the start point
            -     o x (number) x position of the mouse
            -     o y (number) y position of the mouse
            -     o event (object) DOM event object
            -     * End event and end handler are called in specified context or in context of the element with following parameters:
            -     o event (object) DOM event object
            -     = (object) @Element
            -    \*/
            -    elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {
            -        var el = this;
            -        if (!arguments.length) {
            -            var origTransform;
            -            return el.drag(function (dx, dy) {
            -                this.attr({
            -                    transform: origTransform + (origTransform ? "T" : "t") + [dx, dy]
            -                });
            -            }, function () {
            -                origTransform = this.transform().local;
            -            });
            -        }
            -        function start(e, x, y) {
            -            (e.originalEvent || e).preventDefault();
            -            el._drag.x = x;
            -            el._drag.y = y;
            -            el._drag.id = e.identifier;
            -            !drag.length && Snap.mousemove(dragMove).mouseup(dragUp);
            -            drag.push({el: el, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});
            -            onstart && eve.on("snap.drag.start." + el.id, onstart);
            -            onmove && eve.on("snap.drag.move." + el.id, onmove);
            -            onend && eve.on("snap.drag.end." + el.id, onend);
            -            eve("snap.drag.start." + el.id, start_scope || move_scope || el, x, y, e);
            -        }
            -        function init(e, x, y) {
            -            eve("snap.draginit." + el.id, el, e, x, y);
            -        }
            -        eve.on("snap.draginit." + el.id, start);
            -        el._drag = {};
            -        draggable.push({el: el, start: start, init: init});
            -        el.mousedown(init);
            -        return el;
            -    };
            -    /*
            -     * Element.onDragOver
            -     [ method ]
            -     **
            -     * Shortcut to assign event handler for `drag.over.` event, where `id` is the element's `id` (see @Element.id)
            -     - f (function) handler for event, first argument would be the element you are dragging over
            -    \*/
            -    // elproto.onDragOver = function (f) {
            -    //     f ? eve.on("snap.drag.over." + this.id, f) : eve.unbind("snap.drag.over." + this.id);
            -    // };
            -    /*\
            -     * Element.undrag
            -     [ method ]
            -     **
            -     * Removes all drag event handlers from the given element
            -    \*/
            -    elproto.undrag = function () {
            -        var i = draggable.length;
            -        while (i--) if (draggable[i].el == this) {
            -            this.unmousedown(draggable[i].init);
            -            draggable.splice(i, 1);
            -            eve.unbind("snap.drag.*." + this.id);
            -            eve.unbind("snap.draginit." + this.id);
            -        }
            -        !draggable.length && Snap.unmousemove(dragMove).unmouseup(dragUp);
            -        return this;
            -    };
            -});
            diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/paper.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/paper.js
            deleted file mode 100644
            index 30293f7b..00000000
            --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/paper.js
            +++ /dev/null
            @@ -1,720 +0,0 @@
            -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
            -// 
            -// Licensed under the Apache License, Version 2.0 (the "License");
            -// you may not use this file except in compliance with the License.
            -// You may obtain a copy of the License at
            -// 
            -// http://www.apache.org/licenses/LICENSE-2.0
            -// 
            -// Unless required by applicable law or agreed to in writing, software
            -// distributed under the License is distributed on an "AS IS" BASIS,
            -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            -// See the License for the specific language governing permissions and
            -// limitations under the License.
            -Snap.plugin(function (Snap, Element, Paper, glob, Fragment) {
            -    var proto = Paper.prototype,
            -        is = Snap.is;
            -    /*\
            -     * Paper.rect
            -     [ method ]
            -     *
            -     * Draws a rectangle
            -     **
            -     - x (number) x coordinate of the top left corner
            -     - y (number) y coordinate of the top left corner
            -     - width (number) width
            -     - height (number) height
            -     - rx (number) #optional horizontal radius for rounded corners, default is 0
            -     - ry (number) #optional vertical radius for rounded corners, default is rx or 0
            -     = (object) the `rect` element
            -     **
            -     > Usage
            -     | // regular rectangle
            -     | var c = paper.rect(10, 10, 50, 50);
            -     | // rectangle with rounded corners
            -     | var c = paper.rect(40, 40, 50, 50, 10);
            -    \*/
            -    proto.rect = function (x, y, w, h, rx, ry) {
            -        var attr;
            -        if (ry == null) {
            -            ry = rx;
            -        }
            -        if (is(x, "object") && x == "[object Object]") {
            -            attr = x;
            -        } else if (x != null) {
            -            attr = {
            -                x: x,
            -                y: y,
            -                width: w,
            -                height: h
            -            };
            -            if (rx != null) {
            -                attr.rx = rx;
            -                attr.ry = ry;
            -            }
            -        }
            -        return this.el("rect", attr);
            -    };
            -    /*\
            -     * Paper.circle
            -     [ method ]
            -     **
            -     * Draws a circle
            -     **
            -     - x (number) x coordinate of the centre
            -     - y (number) y coordinate of the centre
            -     - r (number) radius
            -     = (object) the `circle` element
            -     **
            -     > Usage
            -     | var c = paper.circle(50, 50, 40);
            -    \*/
            -    proto.circle = function (cx, cy, r) {
            -        var attr;
            -        if (is(cx, "object") && cx == "[object Object]") {
            -            attr = cx;
            -        } else if (cx != null) {
            -            attr = {
            -                cx: cx,
            -                cy: cy,
            -                r: r
            -            };
            -        }
            -        return this.el("circle", attr);
            -    };
            -
            -    var preload = (function () {
            -        function onerror() {
            -            this.parentNode.removeChild(this);
            -        }
            -        return function (src, f) {
            -            var img = glob.doc.createElement("img"),
            -                body = glob.doc.body;
            -            img.style.cssText = "position:absolute;left:-9999em;top:-9999em";
            -            img.onload = function () {
            -                f.call(img);
            -                img.onload = img.onerror = null;
            -                body.removeChild(img);
            -            };
            -            img.onerror = onerror;
            -            body.appendChild(img);
            -            img.src = src;
            -        };
            -    }());
            -
            -    /*\
            -     * Paper.image
            -     [ method ]
            -     **
            -     * Places an image on the surface
            -     **
            -     - src (string) URI of the source image
            -     - x (number) x offset position
            -     - y (number) y offset position
            -     - width (number) width of the image
            -     - height (number) height of the image
            -     = (object) the `image` element
            -     * or
            -     = (object) Snap element object with type `image`
            -     **
            -     > Usage
            -     | var c = paper.image("apple.png", 10, 10, 80, 80);
            -    \*/
            -    proto.image = function (src, x, y, width, height) {
            -        var el = this.el("image");
            -        if (is(src, "object") && "src" in src) {
            -            el.attr(src);
            -        } else if (src != null) {
            -            var set = {
            -                "xlink:href": src,
            -                preserveAspectRatio: "none"
            -            };
            -            if (x != null && y != null) {
            -                set.x = x;
            -                set.y = y;
            -            }
            -            if (width != null && height != null) {
            -                set.width = width;
            -                set.height = height;
            -            } else {
            -                preload(src, function () {
            -                    Snap._.$(el.node, {
            -                        width: this.offsetWidth,
            -                        height: this.offsetHeight
            -                    });
            -                });
            -            }
            -            Snap._.$(el.node, set);
            -        }
            -        return el;
            -    };
            -    /*\
            -     * Paper.ellipse
            -     [ method ]
            -     **
            -     * Draws an ellipse
            -     **
            -     - x (number) x coordinate of the centre
            -     - y (number) y coordinate of the centre
            -     - rx (number) horizontal radius
            -     - ry (number) vertical radius
            -     = (object) the `ellipse` element
            -     **
            -     > Usage
            -     | var c = paper.ellipse(50, 50, 40, 20);
            -    \*/
            -    proto.ellipse = function (cx, cy, rx, ry) {
            -        var attr;
            -        if (is(cx, "object") && cx == "[object Object]") {
            -            attr = cx;
            -        } else if (cx != null) {
            -            attr ={
            -                cx: cx,
            -                cy: cy,
            -                rx: rx,
            -                ry: ry
            -            };
            -        }
            -        return this.el("ellipse", attr);
            -    };
            -    // SIERRA Paper.path(): Unclear from the link what a Catmull-Rom curveto is, and why it would make life any easier.
            -    /*\
            -     * Paper.path
            -     [ method ]
            -     **
            -     * Creates a `` element using the given string as the path's definition
            -     - pathString (string) #optional path string in SVG format
            -     * Path string consists of one-letter commands, followed by comma seprarated arguments in numerical form. Example:
            -     | "M10,20L30,40"
            -     * This example features two commands: `M`, with arguments `(10, 20)` and `L` with arguments `(30, 40)`. Uppercase letter commands express coordinates in absolute terms, while lowercase commands express them in relative terms from the most recently declared coordinates.
            -     *
            -     # 

            Here is short list of commands available, for more details see SVG path string format or article about path strings at MDN.

            - # - # - # - # - # - # - # - # - # - # - # - #
            CommandNameParameters
            Mmoveto(x y)+
            Zclosepath(none)
            Llineto(x y)+
            Hhorizontal linetox+
            Vvertical linetoy+
            Ccurveto(x1 y1 x2 y2 x y)+
            Ssmooth curveto(x2 y2 x y)+
            Qquadratic Bézier curveto(x1 y1 x y)+
            Tsmooth quadratic Bézier curveto(x y)+
            Aelliptical arc(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
            RCatmull-Rom curveto*x1 y1 (x y)+
            - * * _Catmull-Rom curveto_ is a not standard SVG command and added to make life easier. - * Note: there is a special case when a path consists of only three commands: `M10,10R…z`. In this case the path connects back to its starting point. - > Usage - | var c = paper.path("M10 10L90 90"); - | // draw a diagonal line: - | // move to 10,10, line to 90,90 - \*/ - proto.path = function (d) { - var attr; - if (is(d, "object") && !is(d, "array")) { - attr = d; - } else if (d) { - attr = {d: d}; - } - return this.el("path", attr); - }; - /*\ - * Paper.g - [ method ] - ** - * Creates a group element - ** - - varargs (…) #optional elements to nest within the group - = (object) the `g` element - ** - > Usage - | var c1 = paper.circle(), - | c2 = paper.rect(), - | g = paper.g(c2, c1); // note that the order of elements is different - * or - | var c1 = paper.circle(), - | c2 = paper.rect(), - | g = paper.g(); - | g.add(c2, c1); - \*/ - /*\ - * Paper.group - [ method ] - ** - * See @Paper.g - \*/ - proto.group = proto.g = function (first) { - var attr, - el = this.el("g"); - if (arguments.length == 1 && first && !first.type) { - el.attr(first); - } else if (arguments.length) { - el.add(Array.prototype.slice.call(arguments, 0)); - } - return el; - }; - /*\ - * Paper.svg - [ method ] - ** - * Creates a nested SVG element. - - x (number) @optional X of the element - - y (number) @optional Y of the element - - width (number) @optional width of the element - - height (number) @optional height of the element - - vbx (number) @optional viewbox X - - vby (number) @optional viewbox Y - - vbw (number) @optional viewbox width - - vbh (number) @optional viewbox height - ** - = (object) the `svg` element - ** - \*/ - proto.svg = function (x, y, width, height, vbx, vby, vbw, vbh) { - var attrs = {}; - if (is(x, "object") && y == null) { - attrs = x; - } else { - if (x != null) { - attrs.x = x; - } - if (y != null) { - attrs.y = y; - } - if (width != null) { - attrs.width = width; - } - if (height != null) { - attrs.height = height; - } - if (vbx != null && vby != null && vbw != null && vbh != null) { - attrs.viewBox = [vbx, vby, vbw, vbh]; - } - } - return this.el("svg", attrs); - }; - /*\ - * Paper.mask - [ method ] - ** - * Equivalent in behaviour to @Paper.g, except it’s a mask. - ** - = (object) the `mask` element - ** - \*/ - proto.mask = function (first) { - var attr, - el = this.el("mask"); - if (arguments.length == 1 && first && !first.type) { - el.attr(first); - } else if (arguments.length) { - el.add(Array.prototype.slice.call(arguments, 0)); - } - return el; - }; - /*\ - * Paper.ptrn - [ method ] - ** - * Equivalent in behaviour to @Paper.g, except it’s a pattern. - - x (number) @optional X of the element - - y (number) @optional Y of the element - - width (number) @optional width of the element - - height (number) @optional height of the element - - vbx (number) @optional viewbox X - - vby (number) @optional viewbox Y - - vbw (number) @optional viewbox width - - vbh (number) @optional viewbox height - ** - = (object) the `pattern` element - ** - \*/ - proto.ptrn = function (x, y, width, height, vx, vy, vw, vh) { - if (is(x, "object")) { - var attr = x; - } else { - attr = {patternUnits: "userSpaceOnUse"}; - if (x) { - attr.x = x; - } - if (y) { - attr.y = y; - } - if (width != null) { - attr.width = width; - } - if (height != null) { - attr.height = height; - } - if (vx != null && vy != null && vw != null && vh != null) { - attr.viewBox = [vx, vy, vw, vh]; - } else { - attr.viewBox = [x || 0, y || 0, width || 0, height || 0]; - } - } - return this.el("pattern", attr); - }; - /*\ - * Paper.use - [ method ] - ** - * Creates a element. - - id (string) @optional id of element to link - * or - - id (Element) @optional element to link - ** - = (object) the `use` element - ** - \*/ - proto.use = function (id) { - if (id != null) { - if (id instanceof Element) { - if (!id.attr("id")) { - id.attr({id: Snap._.id(id)}); - } - id = id.attr("id"); - } - if (String(id).charAt() == "#") { - id = id.substring(1); - } - return this.el("use", {"xlink:href": "#" + id}); - } else { - return Element.prototype.use.call(this); - } - }; - /*\ - * Paper.symbol - [ method ] - ** - * Creates a element. - - vbx (number) @optional viewbox X - - vby (number) @optional viewbox Y - - vbw (number) @optional viewbox width - - vbh (number) @optional viewbox height - = (object) the `symbol` element - ** - \*/ - proto.symbol = function (vx, vy, vw, vh) { - var attr = {}; - if (vx != null && vy != null && vw != null && vh != null) { - attr.viewBox = [vx, vy, vw, vh]; - } - - return this.el("symbol", attr); - }; - /*\ - * Paper.text - [ method ] - ** - * Draws a text string - ** - - x (number) x coordinate position - - y (number) y coordinate position - - text (string|array) The text string to draw or array of strings to nest within separate `` elements - = (object) the `text` element - ** - > Usage - | var t1 = paper.text(50, 50, "Snap"); - | var t2 = paper.text(50, 50, ["S","n","a","p"]); - | // Text path usage - | t1.attr({textpath: "M10,10L100,100"}); - | // or - | var pth = paper.path("M10,10L100,100"); - | t1.attr({textpath: pth}); - \*/ - proto.text = function (x, y, text) { - var attr = {}; - if (is(x, "object")) { - attr = x; - } else if (x != null) { - attr = { - x: x, - y: y, - text: text || "" - }; - } - return this.el("text", attr); - }; - /*\ - * Paper.line - [ method ] - ** - * Draws a line - ** - - x1 (number) x coordinate position of the start - - y1 (number) y coordinate position of the start - - x2 (number) x coordinate position of the end - - y2 (number) y coordinate position of the end - = (object) the `line` element - ** - > Usage - | var t1 = paper.line(50, 50, 100, 100); - \*/ - proto.line = function (x1, y1, x2, y2) { - var attr = {}; - if (is(x1, "object")) { - attr = x1; - } else if (x1 != null) { - attr = { - x1: x1, - x2: x2, - y1: y1, - y2: y2 - }; - } - return this.el("line", attr); - }; - /*\ - * Paper.polyline - [ method ] - ** - * Draws a polyline - ** - - points (array) array of points - * or - - varargs (…) points - = (object) the `polyline` element - ** - > Usage - | var p1 = paper.polyline([10, 10, 100, 100]); - | var p2 = paper.polyline(10, 10, 100, 100); - \*/ - proto.polyline = function (points) { - if (arguments.length > 1) { - points = Array.prototype.slice.call(arguments, 0); - } - var attr = {}; - if (is(points, "object") && !is(points, "array")) { - attr = points; - } else if (points != null) { - attr = {points: points}; - } - return this.el("polyline", attr); - }; - /*\ - * Paper.polygon - [ method ] - ** - * Draws a polygon. See @Paper.polyline - \*/ - proto.polygon = function (points) { - if (arguments.length > 1) { - points = Array.prototype.slice.call(arguments, 0); - } - var attr = {}; - if (is(points, "object") && !is(points, "array")) { - attr = points; - } else if (points != null) { - attr = {points: points}; - } - return this.el("polygon", attr); - }; - // gradients - (function () { - var $ = Snap._.$; - // gradients' helpers - function Gstops() { - return this.selectAll("stop"); - } - function GaddStop(color, offset) { - var stop = $("stop"), - attr = { - offset: +offset + "%" - }; - color = Snap.color(color); - attr["stop-color"] = color.hex; - if (color.opacity < 1) { - attr["stop-opacity"] = color.opacity; - } - $(stop, attr); - this.node.appendChild(stop); - return this; - } - function GgetBBox() { - if (this.type == "linearGradient") { - var x1 = $(this.node, "x1") || 0, - x2 = $(this.node, "x2") || 1, - y1 = $(this.node, "y1") || 0, - y2 = $(this.node, "y2") || 0; - return Snap._.box(x1, y1, math.abs(x2 - x1), math.abs(y2 - y1)); - } else { - var cx = this.node.cx || .5, - cy = this.node.cy || .5, - r = this.node.r || 0; - return Snap._.box(cx - r, cy - r, r * 2, r * 2); - } - } - function gradient(defs, str) { - var grad = eve("snap.util.grad.parse", null, str).firstDefined(), - el; - if (!grad) { - return null; - } - grad.params.unshift(defs); - if (grad.type.toLowerCase() == "l") { - el = gradientLinear.apply(0, grad.params); - } else { - el = gradientRadial.apply(0, grad.params); - } - if (grad.type != grad.type.toLowerCase()) { - $(el.node, { - gradientUnits: "userSpaceOnUse" - }); - } - var stops = grad.stops, - len = stops.length, - start = 0, - j = 0; - function seed(i, end) { - var step = (end - start) / (i - j); - for (var k = j; k < i; k++) { - stops[k].offset = +(+start + step * (k - j)).toFixed(2); - } - j = i; - start = end; - } - len--; - for (var i = 0; i < len; i++) if ("offset" in stops[i]) { - seed(i, stops[i].offset); - } - stops[len].offset = stops[len].offset || 100; - seed(len, stops[len].offset); - for (i = 0; i <= len; i++) { - var stop = stops[i]; - el.addStop(stop.color, stop.offset); - } - return el; - } - function gradientLinear(defs, x1, y1, x2, y2) { - var el = Snap._.make("linearGradient", defs); - el.stops = Gstops; - el.addStop = GaddStop; - el.getBBox = GgetBBox; - if (x1 != null) { - $(el.node, { - x1: x1, - y1: y1, - x2: x2, - y2: y2 - }); - } - return el; - } - function gradientRadial(defs, cx, cy, r, fx, fy) { - var el = Snap._.make("radialGradient", defs); - el.stops = Gstops; - el.addStop = GaddStop; - el.getBBox = GgetBBox; - if (cx != null) { - $(el.node, { - cx: cx, - cy: cy, - r: r - }); - } - if (fx != null && fy != null) { - $(el.node, { - fx: fx, - fy: fy - }); - } - return el; - } - /*\ - * Paper.gradient - [ method ] - ** - * Creates a gradient element - ** - - gradient (string) gradient descriptor - > Gradient Descriptor - * The gradient descriptor is an expression formatted as - * follows: `()`. The `` can be - * either linear or radial. The uppercase `L` or `R` letters - * indicate absolute coordinates offset from the SVG surface. - * Lowercase `l` or `r` letters indicate coordinates - * calculated relative to the element to which the gradient is - * applied. Coordinates specify a linear gradient vector as - * `x1`, `y1`, `x2`, `y2`, or a radial gradient as `cx`, `cy`, - * `r` and optional `fx`, `fy` specifying a focal point away - * from the center of the circle. Specify `` as a list - * of dash-separated CSS color values. Each color may be - * followed by a custom offset value, separated with a colon - * character. - > Examples - * Linear gradient, relative from top-left corner to bottom-right - * corner, from black through red to white: - | var g = paper.gradient("l(0, 0, 1, 1)#000-#f00-#fff"); - * Linear gradient, absolute from (0, 0) to (100, 100), from black - * through red at 25% to white: - | var g = paper.gradient("L(0, 0, 100, 100)#000-#f00:25-#fff"); - * Radial gradient, relative from the center of the element with radius - * half the width, from black to white: - | var g = paper.gradient("r(0.5, 0.5, 0.5)#000-#fff"); - * To apply the gradient: - | paper.circle(50, 50, 40).attr({ - | fill: g - | }); - = (object) the `gradient` element - \*/ - proto.gradient = function (str) { - return gradient(this.defs, str); - }; - proto.gradientLinear = function (x1, y1, x2, y2) { - return gradientLinear(this.defs, x1, y1, x2, y2); - }; - proto.gradientRadial = function (cx, cy, r, fx, fy) { - return gradientRadial(this.defs, cx, cy, r, fx, fy); - }; - /*\ - * Paper.toString - [ method ] - ** - * Returns SVG code for the @Paper - = (string) SVG code for the @Paper - \*/ - proto.toString = function () { - var doc = this.node.ownerDocument, - f = doc.createDocumentFragment(), - d = doc.createElement("div"), - svg = this.node.cloneNode(true), - res; - f.appendChild(d); - d.appendChild(svg); - Snap._.$(svg, {xmlns: "http://www.w3.org/2000/svg"}); - res = d.innerHTML; - f.removeChild(f.firstChild); - return res; - }; - /*\ - * Paper.toDataURL - [ method ] - ** - * Returns SVG code for the @Paper as Data URI string. - = (string) Data URI string - \*/ - proto.toDataURL = function () { - if (window && window.btoa) { - return "data:image/svg+xml;base64," + btoa(unescape(encodeURIComponent(this))); - } - }; - /*\ - * Paper.clear - [ method ] - ** - * Removes all child nodes of the paper, except . - \*/ - proto.clear = function () { - var node = this.node.firstChild, - next; - while (node) { - next = node.nextSibling; - if (node.tagName != "defs") { - node.parentNode.removeChild(node); - } else { - proto.clear.call({node: node}); - } - node = next; - } - }; - }()); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/path.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/path.js deleted file mode 100644 index d3fd6375..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/path.js +++ /dev/null @@ -1,1454 +0,0 @@ -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob) { - var elproto = Element.prototype, - is = Snap.is, - clone = Snap._.clone, - has = "hasOwnProperty", - p2s = /,?([a-z]),?/gi, - toFloat = parseFloat, - math = Math, - PI = math.PI, - mmin = math.min, - mmax = math.max, - pow = math.pow, - abs = math.abs; - function paths(ps) { - var p = paths.ps = paths.ps || {}; - if (p[ps]) { - p[ps].sleep = 100; - } else { - p[ps] = { - sleep: 100 - }; - } - setTimeout(function () { - for (var key in p) if (p[has](key) && key != ps) { - p[key].sleep--; - !p[key].sleep && delete p[key]; - } - }); - return p[ps]; - } - function box(x, y, width, height) { - if (x == null) { - x = y = width = height = 0; - } - if (y == null) { - y = x.y; - width = x.width; - height = x.height; - x = x.x; - } - return { - x: x, - y: y, - width: width, - w: width, - height: height, - h: height, - x2: x + width, - y2: y + height, - cx: x + width / 2, - cy: y + height / 2, - r1: math.min(width, height) / 2, - r2: math.max(width, height) / 2, - r0: math.sqrt(width * width + height * height) / 2, - path: rectPath(x, y, width, height), - vb: [x, y, width, height].join(" ") - }; - } - function toString() { - return this.join(",").replace(p2s, "$1"); - } - function pathClone(pathArray) { - var res = clone(pathArray); - res.toString = toString; - return res; - } - function getPointAtSegmentLength(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) { - if (length == null) { - return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y); - } else { - return findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, - getTotLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length)); - } - } - function getLengthFactory(istotal, subpath) { - function O(val) { - return +(+val).toFixed(3); - } - return Snap._.cacher(function (path, length, onlystart) { - if (path instanceof Element) { - path = path.attr("d"); - } - path = path2curve(path); - var x, y, p, l, sp = "", subpaths = {}, point, - len = 0; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = +p[1]; - y = +p[2]; - } else { - l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - if (len + l > length) { - if (subpath && !subpaths.start) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - sp += [ - "C" + O(point.start.x), - O(point.start.y), - O(point.m.x), - O(point.m.y), - O(point.x), - O(point.y) - ]; - if (onlystart) {return sp;} - subpaths.start = sp; - sp = [ - "M" + O(point.x), - O(point.y) + "C" + O(point.n.x), - O(point.n.y), - O(point.end.x), - O(point.end.y), - O(p[5]), - O(p[6]) - ].join(); - len += l; - x = +p[5]; - y = +p[6]; - continue; - } - if (!istotal && !subpath) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - return point; - } - } - len += l; - x = +p[5]; - y = +p[6]; - } - sp += p.shift() + p; - } - subpaths.end = sp; - point = istotal ? len : subpath ? subpaths : findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1); - return point; - }, null, Snap._.clone); - } - var getTotalLength = getLengthFactory(1), - getPointAtLength = getLengthFactory(), - getSubpathsAtLength = getLengthFactory(0, 1); - function findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t, - t13 = pow(t1, 3), - t12 = pow(t1, 2), - t2 = t * t, - t3 = t2 * t, - x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x, - y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y, - mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x), - my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y), - nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x), - ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y), - ax = t1 * p1x + t * c1x, - ay = t1 * p1y + t * c1y, - cx = t1 * c2x + t * p2x, - cy = t1 * c2y + t * p2y, - alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI); - // (mx > nx || my < ny) && (alpha += 180); - return { - x: x, - y: y, - m: {x: mx, y: my}, - n: {x: nx, y: ny}, - start: {x: ax, y: ay}, - end: {x: cx, y: cy}, - alpha: alpha - }; - } - function bezierBBox(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - if (!Snap.is(p1x, "array")) { - p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y]; - } - var bbox = curveDim.apply(null, p1x); - return box( - bbox.min.x, - bbox.min.y, - bbox.max.x - bbox.min.x, - bbox.max.y - bbox.min.y - ); - } - function isPointInsideBBox(bbox, x, y) { - return x >= bbox.x && - x <= bbox.x + bbox.width && - y >= bbox.y && - y <= bbox.y + bbox.height; - } - function isBBoxIntersect(bbox1, bbox2) { - bbox1 = box(bbox1); - bbox2 = box(bbox2); - return isPointInsideBBox(bbox2, bbox1.x, bbox1.y) - || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y) - || isPointInsideBBox(bbox2, bbox1.x, bbox1.y2) - || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y2) - || isPointInsideBBox(bbox1, bbox2.x, bbox2.y) - || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y) - || isPointInsideBBox(bbox1, bbox2.x, bbox2.y2) - || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y2) - || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x - || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x) - && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y - || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y); - } - function base3(t, p1, p2, p3, p4) { - var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4, - t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3; - return t * t2 - 3 * p1 + 3 * p2; - } - function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) { - if (z == null) { - z = 1; - } - z = z > 1 ? 1 : z < 0 ? 0 : z; - var z2 = z / 2, - n = 12, - Tvalues = [-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816], - Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472], - sum = 0; - for (var i = 0; i < n; i++) { - var ct = z2 * Tvalues[i] + z2, - xbase = base3(ct, x1, x2, x3, x4), - ybase = base3(ct, y1, y2, y3, y4), - comb = xbase * xbase + ybase * ybase; - sum += Cvalues[i] * math.sqrt(comb); - } - return z2 * sum; - } - function getTotLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) { - if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) { - return; - } - var t = 1, - step = t / 2, - t2 = t - step, - l, - e = .01; - l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2); - while (abs(l - ll) > e) { - step /= 2; - t2 += (l < ll ? 1 : -1) * step; - l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2); - } - return t2; - } - function intersect(x1, y1, x2, y2, x3, y3, x4, y4) { - if ( - mmax(x1, x2) < mmin(x3, x4) || - mmin(x1, x2) > mmax(x3, x4) || - mmax(y1, y2) < mmin(y3, y4) || - mmin(y1, y2) > mmax(y3, y4) - ) { - return; - } - var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4), - ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4), - denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4); - - if (!denominator) { - return; - } - var px = nx / denominator, - py = ny / denominator, - px2 = +px.toFixed(2), - py2 = +py.toFixed(2); - if ( - px2 < +mmin(x1, x2).toFixed(2) || - px2 > +mmax(x1, x2).toFixed(2) || - px2 < +mmin(x3, x4).toFixed(2) || - px2 > +mmax(x3, x4).toFixed(2) || - py2 < +mmin(y1, y2).toFixed(2) || - py2 > +mmax(y1, y2).toFixed(2) || - py2 < +mmin(y3, y4).toFixed(2) || - py2 > +mmax(y3, y4).toFixed(2) - ) { - return; - } - return {x: px, y: py}; - } - function inter(bez1, bez2) { - return interHelper(bez1, bez2); - } - function interCount(bez1, bez2) { - return interHelper(bez1, bez2, 1); - } - function interHelper(bez1, bez2, justCount) { - var bbox1 = bezierBBox(bez1), - bbox2 = bezierBBox(bez2); - if (!isBBoxIntersect(bbox1, bbox2)) { - return justCount ? 0 : []; - } - var l1 = bezlen.apply(0, bez1), - l2 = bezlen.apply(0, bez2), - n1 = ~~(l1 / 8), - n2 = ~~(l2 / 8), - dots1 = [], - dots2 = [], - xy = {}, - res = justCount ? 0 : []; - for (var i = 0; i < n1 + 1; i++) { - var p = findDotsAtSegment.apply(0, bez1.concat(i / n1)); - dots1.push({x: p.x, y: p.y, t: i / n1}); - } - for (i = 0; i < n2 + 1; i++) { - p = findDotsAtSegment.apply(0, bez2.concat(i / n2)); - dots2.push({x: p.x, y: p.y, t: i / n2}); - } - for (i = 0; i < n1; i++) { - for (var j = 0; j < n2; j++) { - var di = dots1[i], - di1 = dots1[i + 1], - dj = dots2[j], - dj1 = dots2[j + 1], - ci = abs(di1.x - di.x) < .001 ? "y" : "x", - cj = abs(dj1.x - dj.x) < .001 ? "y" : "x", - is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y); - if (is) { - if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) { - continue; - } - xy[is.x.toFixed(4)] = is.y.toFixed(4); - var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t), - t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t); - if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1) { - if (justCount) { - res++; - } else { - res.push({ - x: is.x, - y: is.y, - t1: t1, - t2: t2 - }); - } - } - } - } - } - return res; - } - function pathIntersection(path1, path2) { - return interPathHelper(path1, path2); - } - function pathIntersectionNumber(path1, path2) { - return interPathHelper(path1, path2, 1); - } - function interPathHelper(path1, path2, justCount) { - path1 = path2curve(path1); - path2 = path2curve(path2); - var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2, - res = justCount ? 0 : []; - for (var i = 0, ii = path1.length; i < ii; i++) { - var pi = path1[i]; - if (pi[0] == "M") { - x1 = x1m = pi[1]; - y1 = y1m = pi[2]; - } else { - if (pi[0] == "C") { - bez1 = [x1, y1].concat(pi.slice(1)); - x1 = bez1[6]; - y1 = bez1[7]; - } else { - bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m]; - x1 = x1m; - y1 = y1m; - } - for (var j = 0, jj = path2.length; j < jj; j++) { - var pj = path2[j]; - if (pj[0] == "M") { - x2 = x2m = pj[1]; - y2 = y2m = pj[2]; - } else { - if (pj[0] == "C") { - bez2 = [x2, y2].concat(pj.slice(1)); - x2 = bez2[6]; - y2 = bez2[7]; - } else { - bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m]; - x2 = x2m; - y2 = y2m; - } - var intr = interHelper(bez1, bez2, justCount); - if (justCount) { - res += intr; - } else { - for (var k = 0, kk = intr.length; k < kk; k++) { - intr[k].segment1 = i; - intr[k].segment2 = j; - intr[k].bez1 = bez1; - intr[k].bez2 = bez2; - } - res = res.concat(intr); - } - } - } - } - } - return res; - } - function isPointInsidePath(path, x, y) { - var bbox = pathBBox(path); - return isPointInsideBBox(bbox, x, y) && - interPathHelper(path, [["M", x, y], ["H", bbox.x2 + 10]], 1) % 2 == 1; - } - function pathBBox(path) { - var pth = paths(path); - if (pth.bbox) { - return clone(pth.bbox); - } - if (!path) { - return box(); - } - path = path2curve(path); - var x = 0, - y = 0, - X = [], - Y = [], - p; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = p[1]; - y = p[2]; - X.push(x); - Y.push(y); - } else { - var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - X = X.concat(dim.min.x, dim.max.x); - Y = Y.concat(dim.min.y, dim.max.y); - x = p[5]; - y = p[6]; - } - } - var xmin = mmin.apply(0, X), - ymin = mmin.apply(0, Y), - xmax = mmax.apply(0, X), - ymax = mmax.apply(0, Y), - bb = box(xmin, ymin, xmax - xmin, ymax - ymin); - pth.bbox = clone(bb); - return bb; - } - function rectPath(x, y, w, h, r) { - if (r) { - return [ - ["M", +x + (+r), y], - ["l", w - r * 2, 0], - ["a", r, r, 0, 0, 1, r, r], - ["l", 0, h - r * 2], - ["a", r, r, 0, 0, 1, -r, r], - ["l", r * 2 - w, 0], - ["a", r, r, 0, 0, 1, -r, -r], - ["l", 0, r * 2 - h], - ["a", r, r, 0, 0, 1, r, -r], - ["z"] - ]; - } - var res = [["M", x, y], ["l", w, 0], ["l", 0, h], ["l", -w, 0], ["z"]]; - res.toString = toString; - return res; - } - function ellipsePath(x, y, rx, ry, a) { - if (a == null && ry == null) { - ry = rx; - } - x = +x; - y = +y; - rx = +rx; - ry = +ry; - if (a != null) { - var rad = Math.PI / 180, - x1 = x + rx * Math.cos(-ry * rad), - x2 = x + rx * Math.cos(-a * rad), - y1 = y + rx * Math.sin(-ry * rad), - y2 = y + rx * Math.sin(-a * rad), - res = [["M", x1, y1], ["A", rx, rx, 0, +(a - ry > 180), 0, x2, y2]]; - } else { - res = [ - ["M", x, y], - ["m", 0, -ry], - ["a", rx, ry, 0, 1, 1, 0, 2 * ry], - ["a", rx, ry, 0, 1, 1, 0, -2 * ry], - ["z"] - ]; - } - res.toString = toString; - return res; - } - var unit2px = Snap._unit2px, - getPath = { - path: function (el) { - return el.attr("path"); - }, - circle: function (el) { - var attr = unit2px(el); - return ellipsePath(attr.cx, attr.cy, attr.r); - }, - ellipse: function (el) { - var attr = unit2px(el); - return ellipsePath(attr.cx || 0, attr.cy || 0, attr.rx, attr.ry); - }, - rect: function (el) { - var attr = unit2px(el); - return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height, attr.rx, attr.ry); - }, - image: function (el) { - var attr = unit2px(el); - return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height); - }, - line: function (el) { - return "M" + [el.attr("x1") || 0, el.attr("y1") || 0, el.attr("x2"), el.attr("y2")]; - }, - polyline: function (el) { - return "M" + el.attr("points"); - }, - polygon: function (el) { - return "M" + el.attr("points") + "z"; - }, - deflt: function (el) { - var bbox = el.node.getBBox(); - return rectPath(bbox.x, bbox.y, bbox.width, bbox.height); - } - }; - function pathToRelative(pathArray) { - var pth = paths(pathArray), - lowerCase = String.prototype.toLowerCase; - if (pth.rel) { - return pathClone(pth.rel); - } - if (!Snap.is(pathArray, "array") || !Snap.is(pathArray && pathArray[0], "array")) { - pathArray = Snap.parsePathString(pathArray); - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = pathArray[0][1]; - y = pathArray[0][2]; - mx = x; - my = y; - start++; - res.push(["M", x, y]); - } - for (var i = start, ii = pathArray.length; i < ii; i++) { - var r = res[i] = [], - pa = pathArray[i]; - if (pa[0] != lowerCase.call(pa[0])) { - r[0] = lowerCase.call(pa[0]); - switch (r[0]) { - case "a": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] - x).toFixed(3); - r[7] = +(pa[7] - y).toFixed(3); - break; - case "v": - r[1] = +(pa[1] - y).toFixed(3); - break; - case "m": - mx = pa[1]; - my = pa[2]; - default: - for (var j = 1, jj = pa.length; j < jj; j++) { - r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3); - } - } - } else { - r = res[i] = []; - if (pa[0] == "m") { - mx = pa[1] + x; - my = pa[2] + y; - } - for (var k = 0, kk = pa.length; k < kk; k++) { - res[i][k] = pa[k]; - } - } - var len = res[i].length; - switch (res[i][0]) { - case "z": - x = mx; - y = my; - break; - case "h": - x += +res[i][len - 1]; - break; - case "v": - y += +res[i][len - 1]; - break; - default: - x += +res[i][len - 2]; - y += +res[i][len - 1]; - } - } - res.toString = toString; - pth.rel = pathClone(res); - return res; - } - function pathToAbsolute(pathArray) { - var pth = paths(pathArray); - if (pth.abs) { - return pathClone(pth.abs); - } - if (!is(pathArray, "array") || !is(pathArray && pathArray[0], "array")) { // rough assumption - pathArray = Snap.parsePathString(pathArray); - } - if (!pathArray || !pathArray.length) { - return [["M", 0, 0]]; - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0, - pa0; - if (pathArray[0][0] == "M") { - x = +pathArray[0][1]; - y = +pathArray[0][2]; - mx = x; - my = y; - start++; - res[0] = ["M", x, y]; - } - var crz = pathArray.length == 3 && - pathArray[0][0] == "M" && - pathArray[1][0].toUpperCase() == "R" && - pathArray[2][0].toUpperCase() == "Z"; - for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) { - res.push(r = []); - pa = pathArray[i]; - pa0 = pa[0]; - if (pa0 != pa0.toUpperCase()) { - r[0] = pa0.toUpperCase(); - switch (r[0]) { - case "A": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +pa[6] + x; - r[7] = +pa[7] + y; - break; - case "V": - r[1] = +pa[1] + y; - break; - case "H": - r[1] = +pa[1] + x; - break; - case "R": - var dots = [x, y].concat(pa.slice(1)); - for (var j = 2, jj = dots.length; j < jj; j++) { - dots[j] = +dots[j] + x; - dots[++j] = +dots[j] + y; - } - res.pop(); - res = res.concat(catmullRom2bezier(dots, crz)); - break; - case "O": - res.pop(); - dots = ellipsePath(x, y, pa[1], pa[2]); - dots.push(dots[0]); - res = res.concat(dots); - break; - case "U": - res.pop(); - res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3])); - r = ["U"].concat(res[res.length - 1].slice(-2)); - break; - case "M": - mx = +pa[1] + x; - my = +pa[2] + y; - default: - for (j = 1, jj = pa.length; j < jj; j++) { - r[j] = +pa[j] + ((j % 2) ? x : y); - } - } - } else if (pa0 == "R") { - dots = [x, y].concat(pa.slice(1)); - res.pop(); - res = res.concat(catmullRom2bezier(dots, crz)); - r = ["R"].concat(pa.slice(-2)); - } else if (pa0 == "O") { - res.pop(); - dots = ellipsePath(x, y, pa[1], pa[2]); - dots.push(dots[0]); - res = res.concat(dots); - } else if (pa0 == "U") { - res.pop(); - res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3])); - r = ["U"].concat(res[res.length - 1].slice(-2)); - } else { - for (var k = 0, kk = pa.length; k < kk; k++) { - r[k] = pa[k]; - } - } - pa0 = pa0.toUpperCase(); - if (pa0 != "O") { - switch (r[0]) { - case "Z": - x = +mx; - y = +my; - break; - case "H": - x = r[1]; - break; - case "V": - y = r[1]; - break; - case "M": - mx = r[r.length - 2]; - my = r[r.length - 1]; - default: - x = r[r.length - 2]; - y = r[r.length - 1]; - } - } - } - res.toString = toString; - pth.abs = pathClone(res); - return res; - } - function l2c(x1, y1, x2, y2) { - return [x1, y1, x2, y2, x2, y2]; - } - function q2c(x1, y1, ax, ay, x2, y2) { - var _13 = 1 / 3, - _23 = 2 / 3; - return [ - _13 * x1 + _23 * ax, - _13 * y1 + _23 * ay, - _13 * x2 + _23 * ax, - _13 * y2 + _23 * ay, - x2, - y2 - ]; - } - function a2c(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) { - // for more information of where this math came from visit: - // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes - var _120 = PI * 120 / 180, - rad = PI / 180 * (+angle || 0), - res = [], - xy, - rotate = Snap._.cacher(function (x, y, rad) { - var X = x * math.cos(rad) - y * math.sin(rad), - Y = x * math.sin(rad) + y * math.cos(rad); - return {x: X, y: Y}; - }); - if (!recursive) { - xy = rotate(x1, y1, -rad); - x1 = xy.x; - y1 = xy.y; - xy = rotate(x2, y2, -rad); - x2 = xy.x; - y2 = xy.y; - var cos = math.cos(PI / 180 * angle), - sin = math.sin(PI / 180 * angle), - x = (x1 - x2) / 2, - y = (y1 - y2) / 2; - var h = (x * x) / (rx * rx) + (y * y) / (ry * ry); - if (h > 1) { - h = math.sqrt(h); - rx = h * rx; - ry = h * ry; - } - var rx2 = rx * rx, - ry2 = ry * ry, - k = (large_arc_flag == sweep_flag ? -1 : 1) * - math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))), - cx = k * rx * y / ry + (x1 + x2) / 2, - cy = k * -ry * x / rx + (y1 + y2) / 2, - f1 = math.asin(((y1 - cy) / ry).toFixed(9)), - f2 = math.asin(((y2 - cy) / ry).toFixed(9)); - - f1 = x1 < cx ? PI - f1 : f1; - f2 = x2 < cx ? PI - f2 : f2; - f1 < 0 && (f1 = PI * 2 + f1); - f2 < 0 && (f2 = PI * 2 + f2); - if (sweep_flag && f1 > f2) { - f1 = f1 - PI * 2; - } - if (!sweep_flag && f2 > f1) { - f2 = f2 - PI * 2; - } - } else { - f1 = recursive[0]; - f2 = recursive[1]; - cx = recursive[2]; - cy = recursive[3]; - } - var df = f2 - f1; - if (abs(df) > _120) { - var f2old = f2, - x2old = x2, - y2old = y2; - f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1); - x2 = cx + rx * math.cos(f2); - y2 = cy + ry * math.sin(f2); - res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]); - } - df = f2 - f1; - var c1 = math.cos(f1), - s1 = math.sin(f1), - c2 = math.cos(f2), - s2 = math.sin(f2), - t = math.tan(df / 4), - hx = 4 / 3 * rx * t, - hy = 4 / 3 * ry * t, - m1 = [x1, y1], - m2 = [x1 + hx * s1, y1 - hy * c1], - m3 = [x2 + hx * s2, y2 - hy * c2], - m4 = [x2, y2]; - m2[0] = 2 * m1[0] - m2[0]; - m2[1] = 2 * m1[1] - m2[1]; - if (recursive) { - return [m2, m3, m4].concat(res); - } else { - res = [m2, m3, m4].concat(res).join().split(","); - var newres = []; - for (var i = 0, ii = res.length; i < ii; i++) { - newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x; - } - return newres; - } - } - function findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t; - return { - x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, - y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y - }; - } - - // Returns bounding box of cubic bezier curve. - // Source: http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html - // Original version: NISHIO Hirokazu - // Modifications: https://github.com/timo22345 - function curveDim(x0, y0, x1, y1, x2, y2, x3, y3) { - var tvalues = [], - bounds = [[], []], - a, b, c, t, t1, t2, b2ac, sqrtb2ac; - for (var i = 0; i < 2; ++i) { - if (i == 0) { - b = 6 * x0 - 12 * x1 + 6 * x2; - a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3; - c = 3 * x1 - 3 * x0; - } else { - b = 6 * y0 - 12 * y1 + 6 * y2; - a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3; - c = 3 * y1 - 3 * y0; - } - if (abs(a) < 1e-12) { - if (abs(b) < 1e-12) { - continue; - } - t = -c / b; - if (0 < t && t < 1) { - tvalues.push(t); - } - continue; - } - b2ac = b * b - 4 * c * a; - sqrtb2ac = math.sqrt(b2ac); - if (b2ac < 0) { - continue; - } - t1 = (-b + sqrtb2ac) / (2 * a); - if (0 < t1 && t1 < 1) { - tvalues.push(t1); - } - t2 = (-b - sqrtb2ac) / (2 * a); - if (0 < t2 && t2 < 1) { - tvalues.push(t2); - } - } - - var x, y, j = tvalues.length, - jlen = j, - mt; - while (j--) { - t = tvalues[j]; - mt = 1 - t; - bounds[0][j] = (mt * mt * mt * x0) + (3 * mt * mt * t * x1) + (3 * mt * t * t * x2) + (t * t * t * x3); - bounds[1][j] = (mt * mt * mt * y0) + (3 * mt * mt * t * y1) + (3 * mt * t * t * y2) + (t * t * t * y3); - } - - bounds[0][jlen] = x0; - bounds[1][jlen] = y0; - bounds[0][jlen + 1] = x3; - bounds[1][jlen + 1] = y3; - bounds[0].length = bounds[1].length = jlen + 2; - - - return { - min: {x: mmin.apply(0, bounds[0]), y: mmin.apply(0, bounds[1])}, - max: {x: mmax.apply(0, bounds[0]), y: mmax.apply(0, bounds[1])} - }; - } - - function path2curve(path, path2) { - var pth = !path2 && paths(path); - if (!path2 && pth.curve) { - return pathClone(pth.curve); - } - var p = pathToAbsolute(path), - p2 = path2 && pathToAbsolute(path2), - attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - processPath = function (path, d, pcom) { - var nx, ny; - if (!path) { - return ["C", d.x, d.y, d.x, d.y, d.x, d.y]; - } - !(path[0] in {T: 1, Q: 1}) && (d.qx = d.qy = null); - switch (path[0]) { - case "M": - d.X = path[1]; - d.Y = path[2]; - break; - case "A": - path = ["C"].concat(a2c.apply(0, [d.x, d.y].concat(path.slice(1)))); - break; - case "S": - if (pcom == "C" || pcom == "S") { // In "S" case we have to take into account, if the previous command is C/S. - nx = d.x * 2 - d.bx; // And reflect the previous - ny = d.y * 2 - d.by; // command's control point relative to the current point. - } - else { // or some else or nothing - nx = d.x; - ny = d.y; - } - path = ["C", nx, ny].concat(path.slice(1)); - break; - case "T": - if (pcom == "Q" || pcom == "T") { // In "T" case we have to take into account, if the previous command is Q/T. - d.qx = d.x * 2 - d.qx; // And make a reflection similar - d.qy = d.y * 2 - d.qy; // to case "S". - } - else { // or something else or nothing - d.qx = d.x; - d.qy = d.y; - } - path = ["C"].concat(q2c(d.x, d.y, d.qx, d.qy, path[1], path[2])); - break; - case "Q": - d.qx = path[1]; - d.qy = path[2]; - path = ["C"].concat(q2c(d.x, d.y, path[1], path[2], path[3], path[4])); - break; - case "L": - path = ["C"].concat(l2c(d.x, d.y, path[1], path[2])); - break; - case "H": - path = ["C"].concat(l2c(d.x, d.y, path[1], d.y)); - break; - case "V": - path = ["C"].concat(l2c(d.x, d.y, d.x, path[1])); - break; - case "Z": - path = ["C"].concat(l2c(d.x, d.y, d.X, d.Y)); - break; - } - return path; - }, - fixArc = function (pp, i) { - if (pp[i].length > 7) { - pp[i].shift(); - var pi = pp[i]; - while (pi.length) { - pcoms1[i] = "A"; // if created multiple C:s, their original seg is saved - p2 && (pcoms2[i] = "A"); // the same as above - pp.splice(i++, 0, ["C"].concat(pi.splice(0, 6))); - } - pp.splice(i, 1); - ii = mmax(p.length, p2 && p2.length || 0); - } - }, - fixM = function (path1, path2, a1, a2, i) { - if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") { - path2.splice(i, 0, ["M", a2.x, a2.y]); - a1.bx = 0; - a1.by = 0; - a1.x = path1[i][1]; - a1.y = path1[i][2]; - ii = mmax(p.length, p2 && p2.length || 0); - } - }, - pcoms1 = [], // path commands of original path p - pcoms2 = [], // path commands of original path p2 - pfirst = "", // temporary holder for original path command - pcom = ""; // holder for previous path command of original path - for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) { - p[i] && (pfirst = p[i][0]); // save current path command - - if (pfirst != "C") // C is not saved yet, because it may be result of conversion - { - pcoms1[i] = pfirst; // Save current path command - i && ( pcom = pcoms1[i - 1]); // Get previous path command pcom - } - p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath - - if (pcoms1[i] != "A" && pfirst == "C") pcoms1[i] = "C"; // A is the only command - // which may produce multiple C:s - // so we have to make sure that C is also C in original path - - fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1 - - if (p2) { // the same procedures is done to p2 - p2[i] && (pfirst = p2[i][0]); - if (pfirst != "C") { - pcoms2[i] = pfirst; - i && (pcom = pcoms2[i - 1]); - } - p2[i] = processPath(p2[i], attrs2, pcom); - - if (pcoms2[i] != "A" && pfirst == "C") { - pcoms2[i] = "C"; - } - - fixArc(p2, i); - } - fixM(p, p2, attrs, attrs2, i); - fixM(p2, p, attrs2, attrs, i); - var seg = p[i], - seg2 = p2 && p2[i], - seglen = seg.length, - seg2len = p2 && seg2.length; - attrs.x = seg[seglen - 2]; - attrs.y = seg[seglen - 1]; - attrs.bx = toFloat(seg[seglen - 4]) || attrs.x; - attrs.by = toFloat(seg[seglen - 3]) || attrs.y; - attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x); - attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y); - attrs2.x = p2 && seg2[seg2len - 2]; - attrs2.y = p2 && seg2[seg2len - 1]; - } - if (!p2) { - pth.curve = pathClone(p); - } - return p2 ? [p, p2] : p; - } - function mapPath(path, matrix) { - if (!matrix) { - return path; - } - var x, y, i, j, ii, jj, pathi; - path = path2curve(path); - for (i = 0, ii = path.length; i < ii; i++) { - pathi = path[i]; - for (j = 1, jj = pathi.length; j < jj; j += 2) { - x = matrix.x(pathi[j], pathi[j + 1]); - y = matrix.y(pathi[j], pathi[j + 1]); - pathi[j] = x; - pathi[j + 1] = y; - } - } - return path; - } - - // http://schepers.cc/getting-to-the-point - function catmullRom2bezier(crp, z) { - var d = []; - for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) { - var p = [ - {x: +crp[i - 2], y: +crp[i - 1]}, - {x: +crp[i], y: +crp[i + 1]}, - {x: +crp[i + 2], y: +crp[i + 3]}, - {x: +crp[i + 4], y: +crp[i + 5]} - ]; - if (z) { - if (!i) { - p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]}; - } else if (iLen - 4 == i) { - p[3] = {x: +crp[0], y: +crp[1]}; - } else if (iLen - 2 == i) { - p[2] = {x: +crp[0], y: +crp[1]}; - p[3] = {x: +crp[2], y: +crp[3]}; - } - } else { - if (iLen - 4 == i) { - p[3] = p[2]; - } else if (!i) { - p[0] = {x: +crp[i], y: +crp[i + 1]}; - } - } - d.push(["C", - (-p[0].x + 6 * p[1].x + p[2].x) / 6, - (-p[0].y + 6 * p[1].y + p[2].y) / 6, - (p[1].x + 6 * p[2].x - p[3].x) / 6, - (p[1].y + 6*p[2].y - p[3].y) / 6, - p[2].x, - p[2].y - ]); - } - - return d; - } - - // export - Snap.path = paths; - - /*\ - * Snap.path.getTotalLength - [ method ] - ** - * Returns the length of the given path in pixels - ** - - path (string) SVG path string - ** - = (number) length - \*/ - Snap.path.getTotalLength = getTotalLength; - /*\ - * Snap.path.getPointAtLength - [ method ] - ** - * Returns the coordinates of the point located at the given length along the given path - ** - - path (string) SVG path string - - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps - ** - = (object) representation of the point: - o { - o x: (number) x coordinate, - o y: (number) y coordinate, - o alpha: (number) angle of derivative - o } - \*/ - Snap.path.getPointAtLength = getPointAtLength; - /*\ - * Snap.path.getSubpath - [ method ] - ** - * Returns the subpath of a given path between given start and end lengths - ** - - path (string) SVG path string - - from (number) length, in pixels, from the start of the path to the start of the segment - - to (number) length, in pixels, from the start of the path to the end of the segment - ** - = (string) path string definition for the segment - \*/ - Snap.path.getSubpath = function (path, from, to) { - if (this.getTotalLength(path) - to < 1e-6) { - return getSubpathsAtLength(path, from).end; - } - var a = getSubpathsAtLength(path, to, 1); - return from ? getSubpathsAtLength(a, from).end : a; - }; - /*\ - * Element.getTotalLength - [ method ] - ** - * Returns the length of the path in pixels (only works for `path` elements) - = (number) length - \*/ - elproto.getTotalLength = function () { - if (this.node.getTotalLength) { - return this.node.getTotalLength(); - } - }; - // SIERRA Element.getPointAtLength()/Element.getTotalLength(): If a is broken into different segments, is the jump distance to the new coordinates set by the _M_ or _m_ commands calculated as part of the path's total length? - /*\ - * Element.getPointAtLength - [ method ] - ** - * Returns coordinates of the point located at the given length on the given path (only works for `path` elements) - ** - - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps - ** - = (object) representation of the point: - o { - o x: (number) x coordinate, - o y: (number) y coordinate, - o alpha: (number) angle of derivative - o } - \*/ - elproto.getPointAtLength = function (length) { - return getPointAtLength(this.attr("d"), length); - }; - // SIERRA Element.getSubpath(): Similar to the problem for Element.getPointAtLength(). Unclear how this would work for a segmented path. Overall, the concept of _subpath_ and what I'm calling a _segment_ (series of non-_M_ or _Z_ commands) is unclear. - /*\ - * Element.getSubpath - [ method ] - ** - * Returns subpath of a given element from given start and end lengths (only works for `path` elements) - ** - - from (number) length, in pixels, from the start of the path to the start of the segment - - to (number) length, in pixels, from the start of the path to the end of the segment - ** - = (string) path string definition for the segment - \*/ - elproto.getSubpath = function (from, to) { - return Snap.path.getSubpath(this.attr("d"), from, to); - }; - Snap._.box = box; - /*\ - * Snap.path.findDotsAtSegment - [ method ] - ** - * Utility method - ** - * Finds dot coordinates on the given cubic beziér curve at the given t - - p1x (number) x of the first point of the curve - - p1y (number) y of the first point of the curve - - c1x (number) x of the first anchor of the curve - - c1y (number) y of the first anchor of the curve - - c2x (number) x of the second anchor of the curve - - c2y (number) y of the second anchor of the curve - - p2x (number) x of the second point of the curve - - p2y (number) y of the second point of the curve - - t (number) position on the curve (0..1) - = (object) point information in format: - o { - o x: (number) x coordinate of the point, - o y: (number) y coordinate of the point, - o m: { - o x: (number) x coordinate of the left anchor, - o y: (number) y coordinate of the left anchor - o }, - o n: { - o x: (number) x coordinate of the right anchor, - o y: (number) y coordinate of the right anchor - o }, - o start: { - o x: (number) x coordinate of the start of the curve, - o y: (number) y coordinate of the start of the curve - o }, - o end: { - o x: (number) x coordinate of the end of the curve, - o y: (number) y coordinate of the end of the curve - o }, - o alpha: (number) angle of the curve derivative at the point - o } - \*/ - Snap.path.findDotsAtSegment = findDotsAtSegment; - /*\ - * Snap.path.bezierBBox - [ method ] - ** - * Utility method - ** - * Returns the bounding box of a given cubic beziér curve - - p1x (number) x of the first point of the curve - - p1y (number) y of the first point of the curve - - c1x (number) x of the first anchor of the curve - - c1y (number) y of the first anchor of the curve - - c2x (number) x of the second anchor of the curve - - c2y (number) y of the second anchor of the curve - - p2x (number) x of the second point of the curve - - p2y (number) y of the second point of the curve - * or - - bez (array) array of six points for beziér curve - = (object) bounding box - o { - o x: (number) x coordinate of the left top point of the box, - o y: (number) y coordinate of the left top point of the box, - o x2: (number) x coordinate of the right bottom point of the box, - o y2: (number) y coordinate of the right bottom point of the box, - o width: (number) width of the box, - o height: (number) height of the box - o } - \*/ - Snap.path.bezierBBox = bezierBBox; - /*\ - * Snap.path.isPointInsideBBox - [ method ] - ** - * Utility method - ** - * Returns `true` if given point is inside bounding box - - bbox (string) bounding box - - x (string) x coordinate of the point - - y (string) y coordinate of the point - = (boolean) `true` if point is inside - \*/ - Snap.path.isPointInsideBBox = isPointInsideBBox; - Snap.closest = function (x, y, X, Y) { - var r = 100, - b = box(x - r / 2, y - r / 2, r, r), - inside = [], - getter = X[0].hasOwnProperty("x") ? function (i) { - return { - x: X[i].x, - y: X[i].y - }; - } : function (i) { - return { - x: X[i], - y: Y[i] - }; - }, - found = 0; - while (r <= 1e6 && !found) { - for (var i = 0, ii = X.length; i < ii; i++) { - var xy = getter(i); - if (isPointInsideBBox(b, xy.x, xy.y)) { - found++; - inside.push(xy); - break; - } - } - if (!found) { - r *= 2; - b = box(x - r / 2, y - r / 2, r, r) - } - } - if (r == 1e6) { - return; - } - var len = Infinity, - res; - for (i = 0, ii = inside.length; i < ii; i++) { - var l = Snap.len(x, y, inside[i].x, inside[i].y); - if (len > l) { - len = l; - inside[i].len = l; - res = inside[i]; - } - } - return res; - }; - /*\ - * Snap.path.isBBoxIntersect - [ method ] - ** - * Utility method - ** - * Returns `true` if two bounding boxes intersect - - bbox1 (string) first bounding box - - bbox2 (string) second bounding box - = (boolean) `true` if bounding boxes intersect - \*/ - Snap.path.isBBoxIntersect = isBBoxIntersect; - /*\ - * Snap.path.intersection - [ method ] - ** - * Utility method - ** - * Finds intersections of two paths - - path1 (string) path string - - path2 (string) path string - = (array) dots of intersection - o [ - o { - o x: (number) x coordinate of the point, - o y: (number) y coordinate of the point, - o t1: (number) t value for segment of path1, - o t2: (number) t value for segment of path2, - o segment1: (number) order number for segment of path1, - o segment2: (number) order number for segment of path2, - o bez1: (array) eight coordinates representing beziér curve for the segment of path1, - o bez2: (array) eight coordinates representing beziér curve for the segment of path2 - o } - o ] - \*/ - Snap.path.intersection = pathIntersection; - Snap.path.intersectionNumber = pathIntersectionNumber; - /*\ - * Snap.path.isPointInside - [ method ] - ** - * Utility method - ** - * Returns `true` if given point is inside a given closed path. - * - * Note: fill mode doesn’t affect the result of this method. - - path (string) path string - - x (number) x of the point - - y (number) y of the point - = (boolean) `true` if point is inside the path - \*/ - Snap.path.isPointInside = isPointInsidePath; - /*\ - * Snap.path.getBBox - [ method ] - ** - * Utility method - ** - * Returns the bounding box of a given path - - path (string) path string - = (object) bounding box - o { - o x: (number) x coordinate of the left top point of the box, - o y: (number) y coordinate of the left top point of the box, - o x2: (number) x coordinate of the right bottom point of the box, - o y2: (number) y coordinate of the right bottom point of the box, - o width: (number) width of the box, - o height: (number) height of the box - o } - \*/ - Snap.path.getBBox = pathBBox; - Snap.path.get = getPath; - /*\ - * Snap.path.toRelative - [ method ] - ** - * Utility method - ** - * Converts path coordinates into relative values - - path (string) path string - = (array) path string - \*/ - Snap.path.toRelative = pathToRelative; - /*\ - * Snap.path.toAbsolute - [ method ] - ** - * Utility method - ** - * Converts path coordinates into absolute values - - path (string) path string - = (array) path string - \*/ - Snap.path.toAbsolute = pathToAbsolute; - /*\ - * Snap.path.toCubic - [ method ] - ** - * Utility method - ** - * Converts path to a new path where all segments are cubic beziér curves - - pathString (string|array) path string or array of segments - = (array) array of segments - \*/ - Snap.path.toCubic = path2curve; - /*\ - * Snap.path.map - [ method ] - ** - * Transform the path string with the given matrix - - path (string) path string - - matrix (object) see @Matrix - = (string) transformed path string - \*/ - Snap.path.map = mapPath; - Snap.path.toString = toString; - Snap.path.clone = pathClone; -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/set.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/set.js deleted file mode 100644 index 6ad9bda8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/set.js +++ /dev/null @@ -1,315 +0,0 @@ -// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Snap.plugin(function (Snap, Element, Paper, glob) { - var mmax = Math.max, - mmin = Math.min; - - // Set - var Set = function (items) { - this.items = []; - this.bindings = {}; - this.length = 0; - this.type = "set"; - if (items) { - for (var i = 0, ii = items.length; i < ii; i++) { - if (items[i]) { - this[this.items.length] = this.items[this.items.length] = items[i]; - this.length++; - } - } - } - }, - setproto = Set.prototype; - /*\ - * Set.push - [ method ] - ** - * Adds each argument to the current set - = (object) original element - \*/ - setproto.push = function () { - var item, - len; - for (var i = 0, ii = arguments.length; i < ii; i++) { - item = arguments[i]; - if (item) { - len = this.items.length; - this[len] = this.items[len] = item; - this.length++; - } - } - return this; - }; - /*\ - * Set.pop - [ method ] - ** - * Removes last element and returns it - = (object) element - \*/ - setproto.pop = function () { - this.length && delete this[this.length--]; - return this.items.pop(); - }; - /*\ - * Set.forEach - [ method ] - ** - * Executes given function for each element in the set - * - * If the function returns `false`, the loop stops running. - ** - - callback (function) function to run - - thisArg (object) context object for the callback - = (object) Set object - \*/ - setproto.forEach = function (callback, thisArg) { - for (var i = 0, ii = this.items.length; i < ii; i++) { - if (callback.call(thisArg, this.items[i], i) === false) { - return this; - } - } - return this; - }; - /*\ - * Set.animate - [ method ] - ** - * Animates each element in set in sync. - * - ** - - attrs (object) key-value pairs of destination attributes - - duration (number) duration of the animation in milliseconds - - easing (function) #optional easing function from @mina or custom - - callback (function) #optional callback function that executes when the animation ends - * or - - animation (array) array of animation parameter for each element in set in format `[attrs, duration, easing, callback]` - > Usage - | // animate all elements in set to radius 10 - | set.animate({r: 10}, 500, mina.easein); - | // or - | // animate first element to radius 10, but second to radius 20 and in different time - | set.animate([{r: 10}, 500, mina.easein], [{r: 20}, 1500, mina.easein]); - = (Element) the current element - \*/ - setproto.animate = function (attrs, ms, easing, callback) { - if (typeof easing == "function" && !easing.length) { - callback = easing; - easing = mina.linear; - } - if (attrs instanceof Snap._.Animation) { - callback = attrs.callback; - easing = attrs.easing; - ms = easing.dur; - attrs = attrs.attr; - } - var args = arguments; - if (Snap.is(attrs, "array") && Snap.is(args[args.length - 1], "array")) { - var each = true; - } - var begin, - handler = function () { - if (begin) { - this.b = begin; - } else { - begin = this.b; - } - }, - cb = 0, - set = this, - callbacker = callback && function () { - if (++cb == set.length) { - callback.call(this); - } - }; - return this.forEach(function (el, i) { - eve.once("snap.animcreated." + el.id, handler); - if (each) { - args[i] && el.animate.apply(el, args[i]); - } else { - el.animate(attrs, ms, easing, callbacker); - } - }); - }; - setproto.remove = function () { - while (this.length) { - this.pop().remove(); - } - return this; - }; - /*\ - * Set.bind - [ method ] - ** - * Specifies how to handle a specific attribute when applied - * to a set. - * - ** - - attr (string) attribute name - - callback (function) function to run - * or - - attr (string) attribute name - - element (Element) specific element in the set to apply the attribute to - * or - - attr (string) attribute name - - element (Element) specific element in the set to apply the attribute to - - eattr (string) attribute on the element to bind the attribute to - = (object) Set object - \*/ - setproto.bind = function (attr, a, b) { - var data = {}; - if (typeof a == "function") { - this.bindings[attr] = a; - } else { - var aname = b || attr; - this.bindings[attr] = function (v) { - data[aname] = v; - a.attr(data); - }; - } - return this; - }; - setproto.attr = function (value) { - var unbound = {}; - for (var k in value) { - if (this.bindings[k]) { - this.bindings[k](value[k]); - } else { - unbound[k] = value[k]; - } - } - for (var i = 0, ii = this.items.length; i < ii; i++) { - this.items[i].attr(unbound); - } - return this; - }; - /*\ - * Set.clear - [ method ] - ** - * Removes all elements from the set - \*/ - setproto.clear = function () { - while (this.length) { - this.pop(); - } - }; - /*\ - * Set.splice - [ method ] - ** - * Removes range of elements from the set - ** - - index (number) position of the deletion - - count (number) number of element to remove - - insertion… (object) #optional elements to insert - = (object) set elements that were deleted - \*/ - setproto.splice = function (index, count, insertion) { - index = index < 0 ? mmax(this.length + index, 0) : index; - count = mmax(0, mmin(this.length - index, count)); - var tail = [], - todel = [], - args = [], - i; - for (i = 2; i < arguments.length; i++) { - args.push(arguments[i]); - } - for (i = 0; i < count; i++) { - todel.push(this[index + i]); - } - for (; i < this.length - index; i++) { - tail.push(this[index + i]); - } - var arglen = args.length; - for (i = 0; i < arglen + tail.length; i++) { - this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen]; - } - i = this.items.length = this.length -= count - arglen; - while (this[i]) { - delete this[i++]; - } - return new Set(todel); - }; - /*\ - * Set.exclude - [ method ] - ** - * Removes given element from the set - ** - - element (object) element to remove - = (boolean) `true` if object was found and removed from the set - \*/ - setproto.exclude = function (el) { - for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) { - this.splice(i, 1); - return true; - } - return false; - }; - setproto.insertAfter = function (el) { - var i = this.items.length; - while (i--) { - this.items[i].insertAfter(el); - } - return this; - }; - setproto.getBBox = function () { - var x = [], - y = [], - x2 = [], - y2 = []; - for (var i = this.items.length; i--;) if (!this.items[i].removed) { - var box = this.items[i].getBBox(); - x.push(box.x); - y.push(box.y); - x2.push(box.x + box.width); - y2.push(box.y + box.height); - } - x = mmin.apply(0, x); - y = mmin.apply(0, y); - x2 = mmax.apply(0, x2); - y2 = mmax.apply(0, y2); - return { - x: x, - y: y, - x2: x2, - y2: y2, - width: x2 - x, - height: y2 - y, - cx: x + (x2 - x) / 2, - cy: y + (y2 - y) / 2 - }; - }; - setproto.clone = function (s) { - s = new Set; - for (var i = 0, ii = this.items.length; i < ii; i++) { - s.push(this.items[i].clone()); - } - return s; - }; - setproto.toString = function () { - return "Snap\u2018s set"; - }; - setproto.type = "set"; - // export - Snap.Set = Set; - Snap.set = function () { - var set = new Set; - if (arguments.length) { - set.push.apply(set, Array.prototype.slice.call(arguments, 0)); - } - return set; - }; -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/svg.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/svg.js deleted file mode 100644 index 39aa9368..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/src/svg.js +++ /dev/null @@ -1,1849 +0,0 @@ -// Copyright (c) 2013 - 2015 Adobe Systems Incorporated. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var Snap = (function(root) { -Snap.version = "0.4.0"; -/*\ - * Snap - [ method ] - ** - * Creates a drawing surface or wraps existing SVG element. - ** - - width (number|string) width of surface - - height (number|string) height of surface - * or - - DOM (SVGElement) element to be wrapped into Snap structure - * or - - array (array) array of elements (will return set of elements) - * or - - query (string) CSS query selector - = (object) @Element -\*/ -function Snap(w, h) { - if (w) { - if (w.nodeType) { - return wrap(w); - } - if (is(w, "array") && Snap.set) { - return Snap.set.apply(Snap, w); - } - if (w instanceof Element) { - return w; - } - if (h == null) { - w = glob.doc.querySelector(String(w)); - return wrap(w); - } - } - w = w == null ? "100%" : w; - h = h == null ? "100%" : h; - return new Paper(w, h); -} -Snap.toString = function () { - return "Snap v" + this.version; -}; -Snap._ = {}; -var glob = { - win: root.window, - doc: root.window.document -}; -Snap._.glob = glob; -var has = "hasOwnProperty", - Str = String, - toFloat = parseFloat, - toInt = parseInt, - math = Math, - mmax = math.max, - mmin = math.min, - abs = math.abs, - pow = math.pow, - PI = math.PI, - round = math.round, - E = "", - S = " ", - objectToString = Object.prototype.toString, - ISURL = /^url\(['"]?([^\)]+?)['"]?\)$/i, - colourRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\))\s*$/i, - bezierrg = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/, - reURLValue = /^url\(#?([^)]+)\)$/, - separator = Snap._.separator = /[,\s]+/, - whitespace = /[\s]/g, - commaSpaces = /[\s]*,[\s]*/, - hsrg = {hs: 1, rg: 1}, - pathCommand = /([a-z])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/ig, - tCommand = /([rstm])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/ig, - pathValues = /(-?\d*\.?\d*(?:e[\-+]?\\d+)?)[\s]*,?[\s]*/ig, - idgen = 0, - idprefix = "S" + (+new Date).toString(36), - ID = function (el) { - return (el && el.type ? el.type : E) + idprefix + (idgen++).toString(36); - }, - xlink = "http://www.w3.org/1999/xlink", - xmlns = "http://www.w3.org/2000/svg", - hub = {}, - URL = Snap.url = function (url) { - return "url('#" + url + "')"; - }; - -function $(el, attr) { - if (attr) { - if (el == "#text") { - el = glob.doc.createTextNode(attr.text || attr["#text"] || ""); - } - if (el == "#comment") { - el = glob.doc.createComment(attr.text || attr["#text"] || ""); - } - if (typeof el == "string") { - el = $(el); - } - if (typeof attr == "string") { - if (el.nodeType == 1) { - if (attr.substring(0, 6) == "xlink:") { - return el.getAttributeNS(xlink, attr.substring(6)); - } - if (attr.substring(0, 4) == "xml:") { - return el.getAttributeNS(xmlns, attr.substring(4)); - } - return el.getAttribute(attr); - } else if (attr == "text") { - return el.nodeValue; - } else { - return null; - } - } - if (el.nodeType == 1) { - for (var key in attr) if (attr[has](key)) { - var val = Str(attr[key]); - if (val) { - if (key.substring(0, 6) == "xlink:") { - el.setAttributeNS(xlink, key.substring(6), val); - } else if (key.substring(0, 4) == "xml:") { - el.setAttributeNS(xmlns, key.substring(4), val); - } else { - el.setAttribute(key, val); - } - } else { - el.removeAttribute(key); - } - } - } else if ("text" in attr) { - el.nodeValue = attr.text; - } - } else { - el = glob.doc.createElementNS(xmlns, el); - } - return el; -} -Snap._.$ = $; -Snap._.id = ID; -function getAttrs(el) { - var attrs = el.attributes, - name, - out = {}; - for (var i = 0; i < attrs.length; i++) { - if (attrs[i].namespaceURI == xlink) { - name = "xlink:"; - } else { - name = ""; - } - name += attrs[i].name; - out[name] = attrs[i].textContent; - } - return out; -} -function is(o, type) { - type = Str.prototype.toLowerCase.call(type); - if (type == "finite") { - return isFinite(o); - } - if (type == "array" && - (o instanceof Array || Array.isArray && Array.isArray(o))) { - return true; - } - return (type == "null" && o === null) || - (type == typeof o && o !== null) || - (type == "object" && o === Object(o)) || - objectToString.call(o).slice(8, -1).toLowerCase() == type; -} -/*\ - * Snap.format - [ method ] - ** - * Replaces construction of type `{}` to the corresponding argument - ** - - token (string) string to format - - json (object) object which properties are used as a replacement - = (string) formatted string - > Usage - | // this draws a rectangular shape equivalent to "M10,20h40v50h-40z" - | paper.path(Snap.format("M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z", { - | x: 10, - | y: 20, - | dim: { - | width: 40, - | height: 50, - | "negative width": -40 - | } - | })); -\*/ -Snap.format = (function () { - var tokenRegex = /\{([^\}]+)\}/g, - objNotationRegex = /(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g, // matches .xxxxx or ["xxxxx"] to run over object properties - replacer = function (all, key, obj) { - var res = obj; - key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) { - name = name || quotedName; - if (res) { - if (name in res) { - res = res[name]; - } - typeof res == "function" && isFunc && (res = res()); - } - }); - res = (res == null || res == obj ? all : res) + ""; - return res; - }; - return function (str, obj) { - return Str(str).replace(tokenRegex, function (all, key) { - return replacer(all, key, obj); - }); - }; -})(); -function clone(obj) { - if (typeof obj == "function" || Object(obj) !== obj) { - return obj; - } - var res = new obj.constructor; - for (var key in obj) if (obj[has](key)) { - res[key] = clone(obj[key]); - } - return res; -} -Snap._.clone = clone; -function repush(array, item) { - for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) { - return array.push(array.splice(i, 1)[0]); - } -} -function cacher(f, scope, postprocessor) { - function newf() { - var arg = Array.prototype.slice.call(arguments, 0), - args = arg.join("\u2400"), - cache = newf.cache = newf.cache || {}, - count = newf.count = newf.count || []; - if (cache[has](args)) { - repush(count, args); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - count.length >= 1e3 && delete cache[count.shift()]; - count.push(args); - cache[args] = f.apply(scope, arg); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - return newf; -} -Snap._.cacher = cacher; -function angle(x1, y1, x2, y2, x3, y3) { - if (x3 == null) { - var x = x1 - x2, - y = y1 - y2; - if (!x && !y) { - return 0; - } - return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360; - } else { - return angle(x1, y1, x3, y3) - angle(x2, y2, x3, y3); - } -} -function rad(deg) { - return deg % 360 * PI / 180; -} -function deg(rad) { - return rad * 180 / PI % 360; -} -function x_y() { - return this.x + S + this.y; -} -function x_y_w_h() { - return this.x + S + this.y + S + this.width + " \xd7 " + this.height; -} - -/*\ - * Snap.rad - [ method ] - ** - * Transform angle to radians - - deg (number) angle in degrees - = (number) angle in radians -\*/ -Snap.rad = rad; -/*\ - * Snap.deg - [ method ] - ** - * Transform angle to degrees - - rad (number) angle in radians - = (number) angle in degrees -\*/ -Snap.deg = deg; -/*\ - * Snap.sin - [ method ] - ** - * Equivalent to `Math.sin()` only works with degrees, not radians. - - angle (number) angle in degrees - = (number) sin -\*/ -Snap.sin = function (angle) { - return math.sin(Snap.rad(angle)); -}; -/*\ - * Snap.tan - [ method ] - ** - * Equivalent to `Math.tan()` only works with degrees, not radians. - - angle (number) angle in degrees - = (number) tan -\*/ -Snap.tan = function (angle) { - return math.tan(Snap.rad(angle)); -}; -/*\ - * Snap.cos - [ method ] - ** - * Equivalent to `Math.cos()` only works with degrees, not radians. - - angle (number) angle in degrees - = (number) cos -\*/ -Snap.cos = function (angle) { - return math.cos(Snap.rad(angle)); -}; -/*\ - * Snap.asin - [ method ] - ** - * Equivalent to `Math.asin()` only works with degrees, not radians. - - num (number) value - = (number) asin in degrees -\*/ -Snap.asin = function (num) { - return Snap.deg(math.asin(num)); -}; -/*\ - * Snap.acos - [ method ] - ** - * Equivalent to `Math.acos()` only works with degrees, not radians. - - num (number) value - = (number) acos in degrees -\*/ -Snap.acos = function (num) { - return Snap.deg(math.acos(num)); -}; -/*\ - * Snap.atan - [ method ] - ** - * Equivalent to `Math.atan()` only works with degrees, not radians. - - num (number) value - = (number) atan in degrees -\*/ -Snap.atan = function (num) { - return Snap.deg(math.atan(num)); -}; -/*\ - * Snap.atan2 - [ method ] - ** - * Equivalent to `Math.atan2()` only works with degrees, not radians. - - num (number) value - = (number) atan2 in degrees -\*/ -Snap.atan2 = function (num) { - return Snap.deg(math.atan2(num)); -}; -/*\ - * Snap.angle - [ method ] - ** - * Returns an angle between two or three points - > Parameters - - x1 (number) x coord of first point - - y1 (number) y coord of first point - - x2 (number) x coord of second point - - y2 (number) y coord of second point - - x3 (number) #optional x coord of third point - - y3 (number) #optional y coord of third point - = (number) angle in degrees -\*/ -Snap.angle = angle; -/*\ - * Snap.len - [ method ] - ** - * Returns distance between two points - > Parameters - - x1 (number) x coord of first point - - y1 (number) y coord of first point - - x2 (number) x coord of second point - - y2 (number) y coord of second point - = (number) distance -\*/ -Snap.len = function (x1, y1, x2, y2) { - return Math.sqrt(Snap.len2(x1, y1, x2, y2)); -}; -/*\ - * Snap.len2 - [ method ] - ** - * Returns squared distance between two points - > Parameters - - x1 (number) x coord of first point - - y1 (number) y coord of first point - - x2 (number) x coord of second point - - y2 (number) y coord of second point - = (number) distance -\*/ -Snap.len2 = function (x1, y1, x2, y2) { - return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2); -}; -/*\ - * Snap.closestPoint - [ method ] - ** - * Returns closest point to a given one on a given path. - > Parameters - - path (Element) path element - - x (number) x coord of a point - - y (number) y coord of a point - = (object) in format - { - x (number) x coord of the point on the path - y (number) y coord of the point on the path - length (number) length of the path to the point - distance (number) distance from the given point to the path - } -\*/ -// Copied from http://bl.ocks.org/mbostock/8027637 -Snap.closestPoint = function (path, x, y) { - function distance2(p) { - var dx = p.x - x, - dy = p.y - y; - return dx * dx + dy * dy; - } - var pathNode = path.node, - pathLength = pathNode.getTotalLength(), - precision = pathLength / pathNode.pathSegList.numberOfItems * .125, - best, - bestLength, - bestDistance = Infinity; - - // linear scan for coarse approximation - for (var scan, scanLength = 0, scanDistance; scanLength <= pathLength; scanLength += precision) { - if ((scanDistance = distance2(scan = pathNode.getPointAtLength(scanLength))) < bestDistance) { - best = scan, bestLength = scanLength, bestDistance = scanDistance; - } - } - - // binary search for precise estimate - precision *= .5; - while (precision > .5) { - var before, - after, - beforeLength, - afterLength, - beforeDistance, - afterDistance; - if ((beforeLength = bestLength - precision) >= 0 && (beforeDistance = distance2(before = pathNode.getPointAtLength(beforeLength))) < bestDistance) { - best = before, bestLength = beforeLength, bestDistance = beforeDistance; - } else if ((afterLength = bestLength + precision) <= pathLength && (afterDistance = distance2(after = pathNode.getPointAtLength(afterLength))) < bestDistance) { - best = after, bestLength = afterLength, bestDistance = afterDistance; - } else { - precision *= .5; - } - } - - best = { - x: best.x, - y: best.y, - length: bestLength, - distance: Math.sqrt(bestDistance) - }; - return best; -} -/*\ - * Snap.is - [ method ] - ** - * Handy replacement for the `typeof` operator - - o (…) any object or primitive - - type (string) name of the type, e.g., `string`, `function`, `number`, etc. - = (boolean) `true` if given value is of given type -\*/ -Snap.is = is; -/*\ - * Snap.snapTo - [ method ] - ** - * Snaps given value to given grid - - values (array|number) given array of values or step of the grid - - value (number) value to adjust - - tolerance (number) #optional maximum distance to the target value that would trigger the snap. Default is `10`. - = (number) adjusted value -\*/ -Snap.snapTo = function (values, value, tolerance) { - tolerance = is(tolerance, "finite") ? tolerance : 10; - if (is(values, "array")) { - var i = values.length; - while (i--) if (abs(values[i] - value) <= tolerance) { - return values[i]; - } - } else { - values = +values; - var rem = value % values; - if (rem < tolerance) { - return value - rem; - } - if (rem > values - tolerance) { - return value - rem + values; - } - } - return value; -}; -// Colour -/*\ - * Snap.getRGB - [ method ] - ** - * Parses color string as RGB object - - color (string) color string in one of the following formats: - #
              - #
            • Color name (red, green, cornflowerblue, etc)
            • - #
            • #••• — shortened HTML color: (#000, #fc0, etc.)
            • - #
            • #•••••• — full length HTML color: (#000000, #bd2300)
            • - #
            • rgb(•••, •••, •••) — red, green and blue channels values: (rgb(200, 100, 0))
            • - #
            • rgba(•••, •••, •••, •••) — also with opacity
            • - #
            • rgb(•••%, •••%, •••%) — same as above, but in %: (rgb(100%, 175%, 0%))
            • - #
            • rgba(•••%, •••%, •••%, •••%) — also with opacity
            • - #
            • hsb(•••, •••, •••) — hue, saturation and brightness values: (hsb(0.5, 0.25, 1))
            • - #
            • hsba(•••, •••, •••, •••) — also with opacity
            • - #
            • hsb(•••%, •••%, •••%) — same as above, but in %
            • - #
            • hsba(•••%, •••%, •••%, •••%) — also with opacity
            • - #
            • hsl(•••, •••, •••) — hue, saturation and luminosity values: (hsb(0.5, 0.25, 0.5))
            • - #
            • hsla(•••, •••, •••, •••) — also with opacity
            • - #
            • hsl(•••%, •••%, •••%) — same as above, but in %
            • - #
            • hsla(•••%, •••%, •••%, •••%) — also with opacity
            • - #
            - * Note that `%` can be used any time: `rgb(20%, 255, 50%)`. - = (object) RGB object in the following format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #••••••, - o error (boolean) true if string can't be parsed - o } -\*/ -Snap.getRGB = cacher(function (colour) { - if (!colour || !!((colour = Str(colour)).indexOf("-") + 1)) { - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: rgbtoString}; - } - if (colour == "none") { - return {r: -1, g: -1, b: -1, hex: "none", toString: rgbtoString}; - } - !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == "#") && (colour = toHex(colour)); - if (!colour) { - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: rgbtoString}; - } - var res, - red, - green, - blue, - opacity, - t, - values, - rgb = colour.match(colourRegExp); - if (rgb) { - if (rgb[2]) { - blue = toInt(rgb[2].substring(5), 16); - green = toInt(rgb[2].substring(3, 5), 16); - red = toInt(rgb[2].substring(1, 3), 16); - } - if (rgb[3]) { - blue = toInt((t = rgb[3].charAt(3)) + t, 16); - green = toInt((t = rgb[3].charAt(2)) + t, 16); - red = toInt((t = rgb[3].charAt(1)) + t, 16); - } - if (rgb[4]) { - values = rgb[4].split(commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - rgb[1].toLowerCase().slice(0, 4) == "rgba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - } - if (rgb[5]) { - values = rgb[5].split(commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red /= 100); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green /= 100); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue /= 100); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return Snap.hsb2rgb(red, green, blue, opacity); - } - if (rgb[6]) { - values = rgb[6].split(commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red /= 100); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green /= 100); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue /= 100); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsla" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return Snap.hsl2rgb(red, green, blue, opacity); - } - red = mmin(math.round(red), 255); - green = mmin(math.round(green), 255); - blue = mmin(math.round(blue), 255); - opacity = mmin(mmax(opacity, 0), 1); - rgb = {r: red, g: green, b: blue, toString: rgbtoString}; - rgb.hex = "#" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1); - rgb.opacity = is(opacity, "finite") ? opacity : 1; - return rgb; - } - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: rgbtoString}; -}, Snap); -/*\ - * Snap.hsb - [ method ] - ** - * Converts HSB values to a hex representation of the color - - h (number) hue - - s (number) saturation - - b (number) value or brightness - = (string) hex representation of the color -\*/ -Snap.hsb = cacher(function (h, s, b) { - return Snap.hsb2rgb(h, s, b).hex; -}); -/*\ - * Snap.hsl - [ method ] - ** - * Converts HSL values to a hex representation of the color - - h (number) hue - - s (number) saturation - - l (number) luminosity - = (string) hex representation of the color -\*/ -Snap.hsl = cacher(function (h, s, l) { - return Snap.hsl2rgb(h, s, l).hex; -}); -/*\ - * Snap.rgb - [ method ] - ** - * Converts RGB values to a hex representation of the color - - r (number) red - - g (number) green - - b (number) blue - = (string) hex representation of the color -\*/ -Snap.rgb = cacher(function (r, g, b, o) { - if (is(o, "finite")) { - var round = math.round; - return "rgba(" + [round(r), round(g), round(b), +o.toFixed(2)] + ")"; - } - return "#" + (16777216 | b | (g << 8) | (r << 16)).toString(16).slice(1); -}); -var toHex = function (color) { - var i = glob.doc.getElementsByTagName("head")[0] || glob.doc.getElementsByTagName("svg")[0], - red = "rgb(255, 0, 0)"; - toHex = cacher(function (color) { - if (color.toLowerCase() == "red") { - return red; - } - i.style.color = red; - i.style.color = color; - var out = glob.doc.defaultView.getComputedStyle(i, E).getPropertyValue("color"); - return out == red ? null : out; - }); - return toHex(color); -}, -hsbtoString = function () { - return "hsb(" + [this.h, this.s, this.b] + ")"; -}, -hsltoString = function () { - return "hsl(" + [this.h, this.s, this.l] + ")"; -}, -rgbtoString = function () { - return this.opacity == 1 || this.opacity == null ? - this.hex : - "rgba(" + [this.r, this.g, this.b, this.opacity] + ")"; -}, -prepareRGB = function (r, g, b) { - if (g == null && is(r, "object") && "r" in r && "g" in r && "b" in r) { - b = r.b; - g = r.g; - r = r.r; - } - if (g == null && is(r, string)) { - var clr = Snap.getRGB(r); - r = clr.r; - g = clr.g; - b = clr.b; - } - if (r > 1 || g > 1 || b > 1) { - r /= 255; - g /= 255; - b /= 255; - } - - return [r, g, b]; -}, -packageRGB = function (r, g, b, o) { - r = math.round(r * 255); - g = math.round(g * 255); - b = math.round(b * 255); - var rgb = { - r: r, - g: g, - b: b, - opacity: is(o, "finite") ? o : 1, - hex: Snap.rgb(r, g, b), - toString: rgbtoString - }; - is(o, "finite") && (rgb.opacity = o); - return rgb; -}; -/*\ - * Snap.color - [ method ] - ** - * Parses the color string and returns an object featuring the color's component values - - clr (string) color string in one of the supported formats (see @Snap.getRGB) - = (object) Combined RGB/HSB object in the following format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #••••••, - o error (boolean) `true` if string can't be parsed, - o h (number) hue, - o s (number) saturation, - o v (number) value (brightness), - o l (number) lightness - o } -\*/ -Snap.color = function (clr) { - var rgb; - if (is(clr, "object") && "h" in clr && "s" in clr && "b" in clr) { - rgb = Snap.hsb2rgb(clr); - clr.r = rgb.r; - clr.g = rgb.g; - clr.b = rgb.b; - clr.opacity = 1; - clr.hex = rgb.hex; - } else if (is(clr, "object") && "h" in clr && "s" in clr && "l" in clr) { - rgb = Snap.hsl2rgb(clr); - clr.r = rgb.r; - clr.g = rgb.g; - clr.b = rgb.b; - clr.opacity = 1; - clr.hex = rgb.hex; - } else { - if (is(clr, "string")) { - clr = Snap.getRGB(clr); - } - if (is(clr, "object") && "r" in clr && "g" in clr && "b" in clr && !("error" in clr)) { - rgb = Snap.rgb2hsl(clr); - clr.h = rgb.h; - clr.s = rgb.s; - clr.l = rgb.l; - rgb = Snap.rgb2hsb(clr); - clr.v = rgb.b; - } else { - clr = {hex: "none"}; - clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1; - clr.error = 1; - } - } - clr.toString = rgbtoString; - return clr; -}; -/*\ - * Snap.hsb2rgb - [ method ] - ** - * Converts HSB values to an RGB object - - h (number) hue - - s (number) saturation - - v (number) value or brightness - = (object) RGB object in the following format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #•••••• - o } -\*/ -Snap.hsb2rgb = function (h, s, v, o) { - if (is(h, "object") && "h" in h && "s" in h && "b" in h) { - v = h.b; - s = h.s; - o = h.o; - h = h.h; - } - h *= 360; - var R, G, B, X, C; - h = (h % 360) / 60; - C = v * s; - X = C * (1 - abs(h % 2 - 1)); - R = G = B = v - C; - - h = ~~h; - R += [C, X, 0, 0, X, C][h]; - G += [X, C, C, X, 0, 0][h]; - B += [0, 0, X, C, C, X][h]; - return packageRGB(R, G, B, o); -}; -/*\ - * Snap.hsl2rgb - [ method ] - ** - * Converts HSL values to an RGB object - - h (number) hue - - s (number) saturation - - l (number) luminosity - = (object) RGB object in the following format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #•••••• - o } -\*/ -Snap.hsl2rgb = function (h, s, l, o) { - if (is(h, "object") && "h" in h && "s" in h && "l" in h) { - l = h.l; - s = h.s; - h = h.h; - } - if (h > 1 || s > 1 || l > 1) { - h /= 360; - s /= 100; - l /= 100; - } - h *= 360; - var R, G, B, X, C; - h = (h % 360) / 60; - C = 2 * s * (l < .5 ? l : 1 - l); - X = C * (1 - abs(h % 2 - 1)); - R = G = B = l - C / 2; - - h = ~~h; - R += [C, X, 0, 0, X, C][h]; - G += [X, C, C, X, 0, 0][h]; - B += [0, 0, X, C, C, X][h]; - return packageRGB(R, G, B, o); -}; -/*\ - * Snap.rgb2hsb - [ method ] - ** - * Converts RGB values to an HSB object - - r (number) red - - g (number) green - - b (number) blue - = (object) HSB object in the following format: - o { - o h (number) hue, - o s (number) saturation, - o b (number) brightness - o } -\*/ -Snap.rgb2hsb = function (r, g, b) { - b = prepareRGB(r, g, b); - r = b[0]; - g = b[1]; - b = b[2]; - - var H, S, V, C; - V = mmax(r, g, b); - C = V - mmin(r, g, b); - H = (C == 0 ? null : - V == r ? (g - b) / C : - V == g ? (b - r) / C + 2 : - (r - g) / C + 4 - ); - H = ((H + 360) % 6) * 60 / 360; - S = C == 0 ? 0 : C / V; - return {h: H, s: S, b: V, toString: hsbtoString}; -}; -/*\ - * Snap.rgb2hsl - [ method ] - ** - * Converts RGB values to an HSL object - - r (number) red - - g (number) green - - b (number) blue - = (object) HSL object in the following format: - o { - o h (number) hue, - o s (number) saturation, - o l (number) luminosity - o } -\*/ -Snap.rgb2hsl = function (r, g, b) { - b = prepareRGB(r, g, b); - r = b[0]; - g = b[1]; - b = b[2]; - - var H, S, L, M, m, C; - M = mmax(r, g, b); - m = mmin(r, g, b); - C = M - m; - H = (C == 0 ? null : - M == r ? (g - b) / C : - M == g ? (b - r) / C + 2 : - (r - g) / C + 4); - H = ((H + 360) % 6) * 60 / 360; - L = (M + m) / 2; - S = (C == 0 ? 0 : - L < .5 ? C / (2 * L) : - C / (2 - 2 * L)); - return {h: H, s: S, l: L, toString: hsltoString}; -}; - -// Transformations -/*\ - * Snap.parsePathString - [ method ] - ** - * Utility method - ** - * Parses given path string into an array of arrays of path segments - - pathString (string|array) path string or array of segments (in the last case it is returned straight away) - = (array) array of segments -\*/ -Snap.parsePathString = function (pathString) { - if (!pathString) { - return null; - } - var pth = Snap.path(pathString); - if (pth.arr) { - return Snap.path.clone(pth.arr); - } - - var paramCounts = {a: 7, c: 6, o: 2, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, u: 3, z: 0}, - data = []; - if (is(pathString, "array") && is(pathString[0], "array")) { // rough assumption - data = Snap.path.clone(pathString); - } - if (!data.length) { - Str(pathString).replace(pathCommand, function (a, b, c) { - var params = [], - name = b.toLowerCase(); - c.replace(pathValues, function (a, b) { - b && params.push(+b); - }); - if (name == "m" && params.length > 2) { - data.push([b].concat(params.splice(0, 2))); - name = "l"; - b = b == "m" ? "l" : "L"; - } - if (name == "o" && params.length == 1) { - data.push([b, params[0]]); - } - if (name == "r") { - data.push([b].concat(params)); - } else while (params.length >= paramCounts[name]) { - data.push([b].concat(params.splice(0, paramCounts[name]))); - if (!paramCounts[name]) { - break; - } - } - }); - } - data.toString = Snap.path.toString; - pth.arr = Snap.path.clone(data); - return data; -}; -/*\ - * Snap.parseTransformString - [ method ] - ** - * Utility method - ** - * Parses given transform string into an array of transformations - - TString (string|array) transform string or array of transformations (in the last case it is returned straight away) - = (array) array of transformations -\*/ -var parseTransformString = Snap.parseTransformString = function (TString) { - if (!TString) { - return null; - } - var paramCounts = {r: 3, s: 4, t: 2, m: 6}, - data = []; - if (is(TString, "array") && is(TString[0], "array")) { // rough assumption - data = Snap.path.clone(TString); - } - if (!data.length) { - Str(TString).replace(tCommand, function (a, b, c) { - var params = [], - name = b.toLowerCase(); - c.replace(pathValues, function (a, b) { - b && params.push(+b); - }); - data.push([b].concat(params)); - }); - } - data.toString = Snap.path.toString; - return data; -}; -function svgTransform2string(tstr) { - var res = []; - tstr = tstr.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g, function (all, name, params) { - params = params.split(/\s*,\s*|\s+/); - if (name == "rotate" && params.length == 1) { - params.push(0, 0); - } - if (name == "scale") { - if (params.length > 2) { - params = params.slice(0, 2); - } else if (params.length == 2) { - params.push(0, 0); - } - if (params.length == 1) { - params.push(params[0], 0, 0); - } - } - if (name == "skewX") { - res.push(["m", 1, 0, math.tan(rad(params[0])), 1, 0, 0]); - } else if (name == "skewY") { - res.push(["m", 1, math.tan(rad(params[0])), 0, 1, 0, 0]); - } else { - res.push([name.charAt(0)].concat(params)); - } - return all; - }); - return res; -} -Snap._.svgTransform2string = svgTransform2string; -Snap._.rgTransform = /^[a-z][\s]*-?\.?\d/i; -function transform2matrix(tstr, bbox) { - var tdata = parseTransformString(tstr), - m = new Snap.Matrix; - if (tdata) { - for (var i = 0, ii = tdata.length; i < ii; i++) { - var t = tdata[i], - tlen = t.length, - command = Str(t[0]).toLowerCase(), - absolute = t[0] != command, - inver = absolute ? m.invert() : 0, - x1, - y1, - x2, - y2, - bb; - if (command == "t" && tlen == 2){ - m.translate(t[1], 0); - } else if (command == "t" && tlen == 3) { - if (absolute) { - x1 = inver.x(0, 0); - y1 = inver.y(0, 0); - x2 = inver.x(t[1], t[2]); - y2 = inver.y(t[1], t[2]); - m.translate(x2 - x1, y2 - y1); - } else { - m.translate(t[1], t[2]); - } - } else if (command == "r") { - if (tlen == 2) { - bb = bb || bbox; - m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2); - } else if (tlen == 4) { - if (absolute) { - x2 = inver.x(t[2], t[3]); - y2 = inver.y(t[2], t[3]); - m.rotate(t[1], x2, y2); - } else { - m.rotate(t[1], t[2], t[3]); - } - } - } else if (command == "s") { - if (tlen == 2 || tlen == 3) { - bb = bb || bbox; - m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2); - } else if (tlen == 4) { - if (absolute) { - x2 = inver.x(t[2], t[3]); - y2 = inver.y(t[2], t[3]); - m.scale(t[1], t[1], x2, y2); - } else { - m.scale(t[1], t[1], t[2], t[3]); - } - } else if (tlen == 5) { - if (absolute) { - x2 = inver.x(t[3], t[4]); - y2 = inver.y(t[3], t[4]); - m.scale(t[1], t[2], x2, y2); - } else { - m.scale(t[1], t[2], t[3], t[4]); - } - } - } else if (command == "m" && tlen == 7) { - m.add(t[1], t[2], t[3], t[4], t[5], t[6]); - } - } - } - return m; -} -Snap._.transform2matrix = transform2matrix; -Snap._unit2px = unit2px; -var contains = glob.doc.contains || glob.doc.compareDocumentPosition ? - function (a, b) { - var adown = a.nodeType == 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a == bup || !!(bup && bup.nodeType == 1 && ( - adown.contains ? - adown.contains(bup) : - a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16 - )); - } : - function (a, b) { - if (b) { - while (b) { - b = b.parentNode; - if (b == a) { - return true; - } - } - } - return false; - }; -function getSomeDefs(el) { - var p = (el.node.ownerSVGElement && wrap(el.node.ownerSVGElement)) || - (el.node.parentNode && wrap(el.node.parentNode)) || - Snap.select("svg") || - Snap(0, 0), - pdefs = p.select("defs"), - defs = pdefs == null ? false : pdefs.node; - if (!defs) { - defs = make("defs", p.node).node; - } - return defs; -} -function getSomeSVG(el) { - return el.node.ownerSVGElement && wrap(el.node.ownerSVGElement) || Snap.select("svg"); -} -Snap._.getSomeDefs = getSomeDefs; -Snap._.getSomeSVG = getSomeSVG; -function unit2px(el, name, value) { - var svg = getSomeSVG(el).node, - out = {}, - mgr = svg.querySelector(".svg---mgr"); - if (!mgr) { - mgr = $("rect"); - $(mgr, {x: -9e9, y: -9e9, width: 10, height: 10, "class": "svg---mgr", fill: "none"}); - svg.appendChild(mgr); - } - function getW(val) { - if (val == null) { - return E; - } - if (val == +val) { - return val; - } - $(mgr, {width: val}); - try { - return mgr.getBBox().width; - } catch (e) { - return 0; - } - } - function getH(val) { - if (val == null) { - return E; - } - if (val == +val) { - return val; - } - $(mgr, {height: val}); - try { - return mgr.getBBox().height; - } catch (e) { - return 0; - } - } - function set(nam, f) { - if (name == null) { - out[nam] = f(el.attr(nam) || 0); - } else if (nam == name) { - out = f(value == null ? el.attr(nam) || 0 : value); - } - } - switch (el.type) { - case "rect": - set("rx", getW); - set("ry", getH); - case "image": - set("width", getW); - set("height", getH); - case "text": - set("x", getW); - set("y", getH); - break; - case "circle": - set("cx", getW); - set("cy", getH); - set("r", getW); - break; - case "ellipse": - set("cx", getW); - set("cy", getH); - set("rx", getW); - set("ry", getH); - break; - case "line": - set("x1", getW); - set("x2", getW); - set("y1", getH); - set("y2", getH); - break; - case "marker": - set("refX", getW); - set("markerWidth", getW); - set("refY", getH); - set("markerHeight", getH); - break; - case "radialGradient": - set("fx", getW); - set("fy", getH); - break; - case "tspan": - set("dx", getW); - set("dy", getH); - break; - default: - set(name, getW); - } - svg.removeChild(mgr); - return out; -} -/*\ - * Snap.select - [ method ] - ** - * Wraps a DOM element specified by CSS selector as @Element - - query (string) CSS selector of the element - = (Element) the current element -\*/ -Snap.select = function (query) { - query = Str(query).replace(/([^\\]):/g, "$1\\:"); - return wrap(glob.doc.querySelector(query)); -}; -/*\ - * Snap.selectAll - [ method ] - ** - * Wraps DOM elements specified by CSS selector as set or array of @Element - - query (string) CSS selector of the element - = (Element) the current element -\*/ -Snap.selectAll = function (query) { - var nodelist = glob.doc.querySelectorAll(query), - set = (Snap.set || Array)(); - for (var i = 0; i < nodelist.length; i++) { - set.push(wrap(nodelist[i])); - } - return set; -}; - -function add2group(list) { - if (!is(list, "array")) { - list = Array.prototype.slice.call(arguments, 0); - } - var i = 0, - j = 0, - node = this.node; - while (this[i]) delete this[i++]; - for (i = 0; i < list.length; i++) { - if (list[i].type == "set") { - list[i].forEach(function (el) { - node.appendChild(el.node); - }); - } else { - node.appendChild(list[i].node); - } - } - var children = node.childNodes; - for (i = 0; i < children.length; i++) { - this[j++] = wrap(children[i]); - } - return this; -} -// Hub garbage collector every 10s -setInterval(function () { - for (var key in hub) if (hub[has](key)) { - var el = hub[key], - node = el.node; - if (el.type != "svg" && !node.ownerSVGElement || el.type == "svg" && (!node.parentNode || "ownerSVGElement" in node.parentNode && !node.ownerSVGElement)) { - delete hub[key]; - } - } -}, 1e4); -function Element(el) { - if (el.snap in hub) { - return hub[el.snap]; - } - var svg; - try { - svg = el.ownerSVGElement; - } catch(e) {} - /*\ - * Element.node - [ property (object) ] - ** - * Gives you a reference to the DOM object, so you can assign event handlers or just mess around. - > Usage - | // draw a circle at coordinate 10,10 with radius of 10 - | var c = paper.circle(10, 10, 10); - | c.node.onclick = function () { - | c.attr("fill", "red"); - | }; - \*/ - this.node = el; - if (svg) { - this.paper = new Paper(svg); - } - /*\ - * Element.type - [ property (string) ] - ** - * SVG tag name of the given element. - \*/ - this.type = el.tagName || el.nodeName; - var id = this.id = ID(this); - this.anims = {}; - this._ = { - transform: [] - }; - el.snap = id; - hub[id] = this; - if (this.type == "g") { - this.add = add2group; - } - if (this.type in {g: 1, mask: 1, pattern: 1, symbol: 1}) { - for (var method in Paper.prototype) if (Paper.prototype[has](method)) { - this[method] = Paper.prototype[method]; - } - } -} - /*\ - * Element.attr - [ method ] - ** - * Gets or sets given attributes of the element. - ** - - params (object) contains key-value pairs of attributes you want to set - * or - - param (string) name of the attribute - = (Element) the current element - * or - = (string) value of attribute - > Usage - | el.attr({ - | fill: "#fc0", - | stroke: "#000", - | strokeWidth: 2, // CamelCase... - | "fill-opacity": 0.5, // or dash-separated names - | width: "*=2" // prefixed values - | }); - | console.log(el.attr("fill")); // #fc0 - * Prefixed values in format `"+=10"` supported. All four operations - * (`+`, `-`, `*` and `/`) could be used. Optionally you can use units for `+` - * and `-`: `"+=2em"`. - \*/ - Element.prototype.attr = function (params, value) { - var el = this, - node = el.node; - if (!params) { - if (node.nodeType != 1) { - return { - text: node.nodeValue - }; - } - var attr = node.attributes, - out = {}; - for (var i = 0, ii = attr.length; i < ii; i++) { - out[attr[i].nodeName] = attr[i].nodeValue; - } - return out; - } - if (is(params, "string")) { - if (arguments.length > 1) { - var json = {}; - json[params] = value; - params = json; - } else { - return eve("snap.util.getattr." + params, el).firstDefined(); - } - } - for (var att in params) { - if (params[has](att)) { - eve("snap.util.attr." + att, el, params[att]); - } - } - return el; - }; -/*\ - * Snap.parse - [ method ] - ** - * Parses SVG fragment and converts it into a @Fragment - ** - - svg (string) SVG string - = (Fragment) the @Fragment -\*/ -Snap.parse = function (svg) { - var f = glob.doc.createDocumentFragment(), - full = true, - div = glob.doc.createElement("div"); - svg = Str(svg); - if (!svg.match(/^\s*<\s*svg(?:\s|>)/)) { - svg = "" + svg + ""; - full = false; - } - div.innerHTML = svg; - svg = div.getElementsByTagName("svg")[0]; - if (svg) { - if (full) { - f = svg; - } else { - while (svg.firstChild) { - f.appendChild(svg.firstChild); - } - } - } - return new Fragment(f); -}; -function Fragment(frag) { - this.node = frag; -} -/*\ - * Snap.fragment - [ method ] - ** - * Creates a DOM fragment from a given list of elements or strings - ** - - varargs (…) SVG string - = (Fragment) the @Fragment -\*/ -Snap.fragment = function () { - var args = Array.prototype.slice.call(arguments, 0), - f = glob.doc.createDocumentFragment(); - for (var i = 0, ii = args.length; i < ii; i++) { - var item = args[i]; - if (item.node && item.node.nodeType) { - f.appendChild(item.node); - } - if (item.nodeType) { - f.appendChild(item); - } - if (typeof item == "string") { - f.appendChild(Snap.parse(item).node); - } - } - return new Fragment(f); -}; - -function make(name, parent) { - var res = $(name); - parent.appendChild(res); - var el = wrap(res); - return el; -} -function Paper(w, h) { - var res, - desc, - defs, - proto = Paper.prototype; - if (w && w.tagName == "svg") { - if (w.snap in hub) { - return hub[w.snap]; - } - var doc = w.ownerDocument; - res = new Element(w); - desc = w.getElementsByTagName("desc")[0]; - defs = w.getElementsByTagName("defs")[0]; - if (!desc) { - desc = $("desc"); - desc.appendChild(doc.createTextNode("Created with Snap")); - res.node.appendChild(desc); - } - if (!defs) { - defs = $("defs"); - res.node.appendChild(defs); - } - res.defs = defs; - for (var key in proto) if (proto[has](key)) { - res[key] = proto[key]; - } - res.paper = res.root = res; - } else { - res = make("svg", glob.doc.body); - $(res.node, { - height: h, - version: 1.1, - width: w, - xmlns: xmlns - }); - } - return res; -} -function wrap(dom) { - if (!dom) { - return dom; - } - if (dom instanceof Element || dom instanceof Fragment) { - return dom; - } - if (dom.tagName && dom.tagName.toLowerCase() == "svg") { - return new Paper(dom); - } - if (dom.tagName && dom.tagName.toLowerCase() == "object" && dom.type == "image/svg+xml") { - return new Paper(dom.contentDocument.getElementsByTagName("svg")[0]); - } - return new Element(dom); -} - -Snap._.make = make; -Snap._.wrap = wrap; -/*\ - * Paper.el - [ method ] - ** - * Creates an element on paper with a given name and no attributes - ** - - name (string) tag name - - attr (object) attributes - = (Element) the current element - > Usage - | var c = paper.circle(10, 10, 10); // is the same as... - | var c = paper.el("circle").attr({ - | cx: 10, - | cy: 10, - | r: 10 - | }); - | // and the same as - | var c = paper.el("circle", { - | cx: 10, - | cy: 10, - | r: 10 - | }); -\*/ -Paper.prototype.el = function (name, attr) { - var el = make(name, this.node); - attr && el.attr(attr); - return el; -}; -/*\ - * Element.children - [ method ] - ** - * Returns array of all the children of the element. - = (array) array of Elements -\*/ -Element.prototype.children = function () { - var out = [], - ch = this.node.childNodes; - for (var i = 0, ii = ch.length; i < ii; i++) { - out[i] = Snap(ch[i]); - } - return out; -}; -function jsonFiller(root, o) { - for (var i = 0, ii = root.length; i < ii; i++) { - var item = { - type: root[i].type, - attr: root[i].attr() - }, - children = root[i].children(); - o.push(item); - if (children.length) { - jsonFiller(children, item.childNodes = []); - } - } -} -/*\ - * Element.toJSON - [ method ] - ** - * Returns object representation of the given element and all its children. - = (object) in format - o { - o type (string) this.type, - o attr (object) attributes map, - o childNodes (array) optional array of children in the same format - o } -\*/ -Element.prototype.toJSON = function () { - var out = []; - jsonFiller([this], out); - return out[0]; -}; -// default -eve.on("snap.util.getattr", function () { - var att = eve.nt(); - att = att.substring(att.lastIndexOf(".") + 1); - var css = att.replace(/[A-Z]/g, function (letter) { - return "-" + letter.toLowerCase(); - }); - if (cssAttr[has](css)) { - return this.node.ownerDocument.defaultView.getComputedStyle(this.node, null).getPropertyValue(css); - } else { - return $(this.node, att); - } -}); -var cssAttr = { - "alignment-baseline": 0, - "baseline-shift": 0, - "clip": 0, - "clip-path": 0, - "clip-rule": 0, - "color": 0, - "color-interpolation": 0, - "color-interpolation-filters": 0, - "color-profile": 0, - "color-rendering": 0, - "cursor": 0, - "direction": 0, - "display": 0, - "dominant-baseline": 0, - "enable-background": 0, - "fill": 0, - "fill-opacity": 0, - "fill-rule": 0, - "filter": 0, - "flood-color": 0, - "flood-opacity": 0, - "font": 0, - "font-family": 0, - "font-size": 0, - "font-size-adjust": 0, - "font-stretch": 0, - "font-style": 0, - "font-variant": 0, - "font-weight": 0, - "glyph-orientation-horizontal": 0, - "glyph-orientation-vertical": 0, - "image-rendering": 0, - "kerning": 0, - "letter-spacing": 0, - "lighting-color": 0, - "marker": 0, - "marker-end": 0, - "marker-mid": 0, - "marker-start": 0, - "mask": 0, - "opacity": 0, - "overflow": 0, - "pointer-events": 0, - "shape-rendering": 0, - "stop-color": 0, - "stop-opacity": 0, - "stroke": 0, - "stroke-dasharray": 0, - "stroke-dashoffset": 0, - "stroke-linecap": 0, - "stroke-linejoin": 0, - "stroke-miterlimit": 0, - "stroke-opacity": 0, - "stroke-width": 0, - "text-anchor": 0, - "text-decoration": 0, - "text-rendering": 0, - "unicode-bidi": 0, - "visibility": 0, - "word-spacing": 0, - "writing-mode": 0 -}; - -eve.on("snap.util.attr", function (value) { - var att = eve.nt(), - attr = {}; - att = att.substring(att.lastIndexOf(".") + 1); - attr[att] = value; - var style = att.replace(/-(\w)/gi, function (all, letter) { - return letter.toUpperCase(); - }), - css = att.replace(/[A-Z]/g, function (letter) { - return "-" + letter.toLowerCase(); - }); - if (cssAttr[has](css)) { - this.node.style[style] = value == null ? E : value; - } else { - $(this.node, attr); - } -}); -(function (proto) {}(Paper.prototype)); - -// simple ajax -/*\ - * Snap.ajax - [ method ] - ** - * Simple implementation of Ajax - ** - - url (string) URL - - postData (object|string) data for post request - - callback (function) callback - - scope (object) #optional scope of callback - * or - - url (string) URL - - callback (function) callback - - scope (object) #optional scope of callback - = (XMLHttpRequest) the XMLHttpRequest object, just in case -\*/ -Snap.ajax = function (url, postData, callback, scope){ - var req = new XMLHttpRequest, - id = ID(); - if (req) { - if (is(postData, "function")) { - scope = callback; - callback = postData; - postData = null; - } else if (is(postData, "object")) { - var pd = []; - for (var key in postData) if (postData.hasOwnProperty(key)) { - pd.push(encodeURIComponent(key) + "=" + encodeURIComponent(postData[key])); - } - postData = pd.join("&"); - } - req.open((postData ? "POST" : "GET"), url, true); - if (postData) { - req.setRequestHeader("X-Requested-With", "XMLHttpRequest"); - req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); - } - if (callback) { - eve.once("snap.ajax." + id + ".0", callback); - eve.once("snap.ajax." + id + ".200", callback); - eve.once("snap.ajax." + id + ".304", callback); - } - req.onreadystatechange = function() { - if (req.readyState != 4) return; - eve("snap.ajax." + id + "." + req.status, scope, req); - }; - if (req.readyState == 4) { - return req; - } - req.send(postData); - return req; - } -}; -/*\ - * Snap.load - [ method ] - ** - * Loads external SVG file as a @Fragment (see @Snap.ajax for more advanced AJAX) - ** - - url (string) URL - - callback (function) callback - - scope (object) #optional scope of callback -\*/ -Snap.load = function (url, callback, scope) { - Snap.ajax(url, function (req) { - var f = Snap.parse(req.responseText); - scope ? callback.call(scope, f) : callback(f); - }); -}; -var getOffset = function (elem) { - var box = elem.getBoundingClientRect(), - doc = elem.ownerDocument, - body = doc.body, - docElem = doc.documentElement, - clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, - top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop, - left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft; - return { - y: top, - x: left - }; -}; -/*\ - * Snap.getElementByPoint - [ method ] - ** - * Returns you topmost element under given point. - ** - = (object) Snap element object - - x (number) x coordinate from the top left corner of the window - - y (number) y coordinate from the top left corner of the window - > Usage - | Snap.getElementByPoint(mouseX, mouseY).attr({stroke: "#f00"}); -\*/ -Snap.getElementByPoint = function (x, y) { - var paper = this, - svg = paper.canvas, - target = glob.doc.elementFromPoint(x, y); - if (glob.win.opera && target.tagName == "svg") { - var so = getOffset(target), - sr = target.createSVGRect(); - sr.x = x - so.x; - sr.y = y - so.y; - sr.width = sr.height = 1; - var hits = target.getIntersectionList(sr, null); - if (hits.length) { - target = hits[hits.length - 1]; - } - } - if (!target) { - return null; - } - return wrap(target); -}; -/*\ - * Snap.plugin - [ method ] - ** - * Let you write plugins. You pass in a function with five arguments, like this: - | Snap.plugin(function (Snap, Element, Paper, global, Fragment) { - | Snap.newmethod = function () {}; - | Element.prototype.newmethod = function () {}; - | Paper.prototype.newmethod = function () {}; - | }); - * Inside the function you have access to all main objects (and their - * prototypes). This allow you to extend anything you want. - ** - - f (function) your plugin body -\*/ -Snap.plugin = function (f) { - f(Snap, Element, Paper, glob, Fragment); -}; -glob.win.Snap = Snap; -return Snap; -}(window || this)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/template.dot b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/template.dot deleted file mode 100644 index f92c011d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/template.dot +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - Snap.svg API Reference - - - - - - - - - - - - - - - - -
            -
            -
            -
            - -
            - -
            -
            -
            -
            - {{~it.out :item:index}} -
            -
            -

            {{=item[0].name}}

            -
            -
            -
            -
            - {{~item :line:i}} - {{ if (i > 0) { }} - {{ if (line.text) { }}

            {{=line.text.join("

            ")}}

            {{ } }} - {{ if (line.attr) { }}
            -

            Parameters

            -
              - {{~line.attr :attr:j}}
            1. {{=attr.name}} - {{~attr.type :type:k}}{{=type}} {{~}} - {{=attr.desc}}
            2. - {{~}} -
            -
            {{ } }} - {{ if (line.html) { }}{{=line.html}} - {{ } }} - {{ if (line.head) { }}

            {{=line.head}}

            - {{ } }} - {{ if (line.code) { }}
            {{=line.code.join("\n")}}
            - {{ } }} - {{ if (line.rtrn) { }}

            - Returns: - {{~line.rtrn.type :type:k}} - {{=type}} - {{~}} - {{=line.rtrn.desc}} -

            - {{ } }} - {{ if (line.json) { }}
              - {{~line.json :a:j}} - {{ if (a.key) { }} -
            1. - {{=a.key}} - {{~a.type :type:k}}{{=type}} {{~}} - {{=a.desc}} -
            2. - {{ } else if (a.start) { }} -
            3. {{=a.start}}
                - {{ } else if (a.end) { }} -
            4. {{=a.end}}
            5. - {{ } else { }} -
            6. {{=a}}
            7. - {{ } }} - {{~}} -
            {{ } }} - {{ } }} - {{~}} -
            -
            -
            - {{~}} -
            -
            -
            -
            - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test.html deleted file mode 100644 index a7a5f21c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - Test - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/attradd.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/attradd.js deleted file mode 100644 index 7622ffe9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/attradd.js +++ /dev/null @@ -1,38 +0,0 @@ -describe("Attributes += methods", function () { - var s, r; - beforeEach(function () { - s = Snap(100, 100); - r = s.rect(10, 10, 50, 50); - }); - afterEach(function () { - s.remove(); - }); - it("+=10", function () { - r.attr({x: "+=10"}); - expect(r.node.getAttribute("x")).to.be("20"); - }); - it("-=10", function () { - r.attr({x: "-=10"}); - expect(r.node.getAttribute("x")).to.be("0"); - }); - it("*=2", function () { - r.attr({x: "*=2"}); - expect(r.node.getAttribute("x")).to.be("20"); - }); - it("/=2", function () { - r.attr({x: "/=2"}); - expect(r.node.getAttribute("x")).to.be("5"); - }); - it("+=1em", function () { - var em = s.rect(0, 0, "1em", "1em"); - em = em.getBBox().w; - r.attr({x: "+=1em"}); - expect(r.node.getAttribute("x")).to.eql(10 + em); - }); - it("-=.3em", function () { - var em = s.rect(0, 0, "1em", "1em"); - em = em.getBBox().w; - r.attr({x: "-=.3em"}); - expect((+r.node.getAttribute("x")).toFixed(2)).to.eql((10 - em * .3).toFixed(2)); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/attrs.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/attrs.js deleted file mode 100644 index 32f8c3e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/attrs.js +++ /dev/null @@ -1,173 +0,0 @@ -describe("Attributes", function () { - var s, r; - beforeEach(function () { - s = Snap(100, 100); - r = s.rect(10, 10, 50, 50); - }); - afterEach(function () { - s.remove(); - }); - function colorTestProp(key) { - var o = {}; - return function () { - o[key] = "#fc0"; - r.attr(o); - expect(r.node.getAttribute(key)).to.be("#ffcc00"); - o[key] = "rgb(255, 204, 0)"; - r.attr(o); - expect(r.node.getAttribute(key)).to.be("#ffcc00"); - o[key] = "hsl(0.1333, 1, .5)"; - r.attr(o); - expect(r.node.getAttribute(key)).to.be("#ffcc00"); - o[key] = "hsb(0.1333, 1, 1)"; - r.attr(o); - expect(r.node.getAttribute(key)).to.be("#ffcc00"); - o[key] = "rgba(255, 204, 0, .5)"; - r.attr(o); - expect(r.node.getAttribute(key)).to.be("rgba(255,204,0,0.5)"); - o[key] = "hsla(0.1333, 1, .5, .5)"; - r.attr(o); - expect(r.node.getAttribute(key)).to.be("rgba(255,204,0,0.5)"); - o[key] = "hsba(0.1333, 1, 1, .5)"; - r.attr(o); - expect(r.node.getAttribute(key)).to.be("rgba(255,204,0,0.5)"); - }; - } - function colorTestStyle(key) { - var o = {}; - return function () { - function val() { - return Snap.color(r.node.getAttribute(key)).hex; - } - o[key] = "#fc0"; - r.attr(o); - expect(val()).to.be("#ffcc00"); - o[key] = "rgb(255, 204, 0)"; - r.attr(o); - expect(val()).to.be("#ffcc00"); - o[key] = "hsl(0.1333, 1, .5)"; - r.attr(o); - expect(val()).to.be("#ffcc00"); - o[key] = "hsb(0.1333, 1, 1)"; - r.attr(o); - expect(val()).to.be("#ffcc00"); - o[key] = "rgba(255, 204, 0, .5)"; - r.attr(o); - expect(val()).to.be("#ffcc00"); - o[key] = "hsla(0.1333, 1, .5, .5)"; - r.attr(o); - expect(val()).to.be("#ffcc00"); - o[key] = "hsba(0.1333, 1, 1, .5)"; - r.attr(o); - expect(val()).to.be("#ffcc00"); - }; - } - it("sets fill", colorTestProp("fill")); - it("sets stroke", colorTestStyle("stroke")); - it("circle core attributes", function () { - var c = s.circle(10, 20, 30); - expect(c.node.getAttribute("cx")).to.be("10"); - expect(c.node.getAttribute("cy")).to.be("20"); - expect(c.node.getAttribute("r")).to.be("30"); - c.attr({ - cx: 40, - cy: 50, - r: "5%" - }); - expect(c.node.getAttribute("cx")).to.be("40"); - expect(c.node.getAttribute("cy")).to.be("50"); - expect(c.node.getAttribute("r")).to.be("5%"); - }); - it("rect core attributes", function () { - var c = s.rect(10, 20, 30, 40); - expect(c.node.getAttribute("x")).to.be("10"); - expect(c.node.getAttribute("y")).to.be("20"); - expect(c.node.getAttribute("width")).to.be("30"); - expect(c.node.getAttribute("height")).to.be("40"); - c.attr({ - x: 40, - y: 50, - width: "5%", - height: "6%", - r: 10 - }); - expect(c.node.getAttribute("x")).to.be("40"); - expect(c.node.getAttribute("y")).to.be("50"); - expect(c.node.getAttribute("width")).to.be("5%"); - expect(c.node.getAttribute("height")).to.be("6%"); - expect(c.node.getAttribute("rx")).to.be("10"); - expect(c.node.getAttribute("ry")).to.be("10"); - }); - it("ellipse core attributes", function () { - var c = s.ellipse(10, 20, 30, 40); - expect(c.node.getAttribute("cx")).to.be("10"); - expect(c.node.getAttribute("cy")).to.be("20"); - expect(c.node.getAttribute("rx")).to.be("30"); - expect(c.node.getAttribute("ry")).to.be("40"); - c.attr({ - cx: 40, - cy: 50, - rx: "5%", - ry: "6%" - }); - expect(c.node.getAttribute("cx")).to.be("40"); - expect(c.node.getAttribute("cy")).to.be("50"); - expect(c.node.getAttribute("rx")).to.be("5%"); - expect(c.node.getAttribute("ry")).to.be("6%"); - }); - it("path core attributes", function () { - var c = s.path("M10,10 110,10"); - expect(c.node.getAttribute("d")).to.be("M10,10 110,10"); - c.attr({d: "M10,10 210,10"}); - expect(c.node.getAttribute("d")).to.be("M10,10 210,10"); - c.attr({path: "M10,10 310,10"}); - expect(c.node.getAttribute("d")).to.be("M10,10 310,10"); - }); - it("text core attributes", function () { - var c = s.text(10, 15, "testing"); - expect(c.node.getAttribute("x")).to.be("10"); - expect(c.node.getAttribute("y")).to.be("15"); - expect(c.node.textContent).to.be("testing"); - c.attr({ - x: 20, - y: 25, - text: "texting" - }); - expect(c.node.getAttribute("x")).to.be("20"); - expect(c.node.getAttribute("y")).to.be("25"); - expect(c.node.textContent).to.be("texting"); - }); - it("line core attributes", function () { - var c = s.line(10, 15, 110, 17); - expect(c.node.getAttribute("x1")).to.be("10"); - expect(c.node.getAttribute("y1")).to.be("15"); - expect(c.node.getAttribute("x2")).to.be("110"); - expect(c.node.getAttribute("y2")).to.be("17"); - c.attr({ - x1: 20, - y1: 25, - x2: 220, - y2: 27 - }); - expect(c.node.getAttribute("x1")).to.be("20"); - expect(c.node.getAttribute("y1")).to.be("25"); - expect(c.node.getAttribute("x2")).to.be("220"); - expect(c.node.getAttribute("y2")).to.be("27"); - }); - it("polyline core attributes", function () { - var c = s.polyline(10, 15, 20, 25, 30, 35); - expect(c.node.getAttribute("points")).to.be("10,15,20,25,30,35"); - c.attr({ - points: [20, 25, 30, 35, 40, 45] - }); - expect(c.node.getAttribute("points")).to.be("20,25,30,35,40,45"); - }); - it("polygon core attributes", function () { - var c = s.polygon(10, 15, 20, 25, 30, 35); - expect(c.node.getAttribute("points")).to.be("10,15,20,25,30,35"); - c.attr({ - points: [20, 25, 30, 35, 40, 45] - }); - expect(c.node.getAttribute("points")).to.be("20,25,30,35,40,45"); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/class.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/class.js deleted file mode 100644 index 9a491e0e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/class.js +++ /dev/null @@ -1,55 +0,0 @@ -describe("Class methods", function () { - var s, r; - beforeEach(function () { - s = Snap(100, 100); - r = s.rect(10, 10, 50, 50); - }); - afterEach(function () { - s.remove(); - }); - it("elproto.addClass one", function() { - r.addClass("one"); - expect(r.node.className.baseVal).to.be("one"); - }); - it("elproto.addClass two", function() { - r.addClass("one two"); - expect(r.node.className.baseVal).to.be("one two"); - }); - it("elproto.addClass two (spacing)", function() { - r.addClass("\tone two "); - expect(r.node.className.baseVal).to.be("one two"); - }); - it("elproto.addClass three", function() { - r.addClass("one two three"); - expect(r.node.className.baseVal).to.be("one two three"); - }); - it("elproto.removeClass 1", function() { - r.addClass("one two three"); - r.removeClass("two"); - expect(r.node.className.baseVal).to.be("one three"); - }); - it("elproto.removeClass 2", function() { - r.addClass("one two three"); - r.removeClass("two one"); - expect(r.node.className.baseVal).to.be("three"); - }); - it("elproto.hasClass", function() { - r.addClass("one two three"); - expect(r.hasClass("two")).to.be(true); - }); - it("elproto.toggleClass 1", function() { - r.addClass("one two three"); - r.toggleClass("two one"); - expect(r.node.className.baseVal).to.be("three"); - }); - it("elproto.toggleClass 2", function() { - r.addClass("one three"); - r.toggleClass("two one", false); - expect(r.node.className.baseVal).to.be("three"); - }); - it("elproto.toggleClass 3", function() { - r.addClass("one three"); - r.toggleClass("two one", true); - expect(r.node.className.baseVal).to.be("one three two"); - }); -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/colors.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/colors.js deleted file mode 100644 index 924370b9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/colors.js +++ /dev/null @@ -1,179 +0,0 @@ -describe("Colours", function () { - it("parses hex colour", function () { - expect(Snap.color("#fC0").hex).to.be("#ffcc00"); - }); - it("parses RGB", function () { - var c = Snap.color("rgb(255, 204, 0)"); - expect(c.hex).to.be("#ffcc00"); - expect(c.r).to.be(255); - expect(c.g).to.be(204); - expect(c.b).to.be(0); - }); - it("parses RGB - %", function () { - var c = Snap.color("rgb(100%, 80%, 0%)"); - expect(c.hex).to.be("#ffcc00"); - expect(c.r).to.be(255); - expect(c.g).to.be(204); - expect(c.b).to.be(0); - }); - it("parses HSL", function () { - var c = Snap.color("hsl(0.1333, 1, .5)"); - expect(c.hex).to.be("#ffcc00"); - expect(c.h.toFixed(3)).to.be("0.133"); - expect(c.s).to.be(1); - expect(c.l).to.be(.5); - }); - it("parses HSL - %", function () { - var c = Snap.color("hsl(13.33%, 100%, 50%)"); - expect(c.hex).to.be("#ffcc00"); - expect(c.h.toFixed(3)).to.be("0.133"); - expect(c.s).to.be(1); - expect(c.l).to.be(.5); - }); - it("parses HSB", function () { - var c = Snap.color("hsb(0.1333, 1, 1)"); - expect(c.hex).to.be("#ffcc00"); - expect(c.h.toFixed(3)).to.be("0.133"); - expect(c.s).to.be(1); - expect(c.v).to.be(1); - }); - it("parses HSB - %", function () { - var c = Snap.color("hsb(13.33%, 100%, 100%)"); - expect(c.hex).to.be("#ffcc00"); - expect(c.h.toFixed(3)).to.be("0.133"); - expect(c.s).to.be(1); - expect(c.v).to.be(1); - }); - it("parses RGBA", function () { - var c = Snap.color("rgba(255, 204, 0, .75)"); - expect(c.hex).to.be("#ffcc00"); - expect(c.r).to.be(255); - expect(c.g).to.be(204); - expect(c.b).to.be(0); - expect(c.opacity).to.be(.75); - }); - it("parses HSLA", function () { - var c = Snap.color("hsla(0.1333, 1, .5, .5)"); - expect(c.hex).to.be("#ffcc00"); - expect(c.r).to.be(255); - expect(c.g).to.be(204); - expect(c.b).to.be(0); - expect(c.opacity).to.be(.5); - }); - it("parses HSBA", function () { - var c = Snap.color("hsba(0.1333, 1, 1, .5)"); - expect(c.hex).to.be("#ffcc00"); - expect(c.r).to.be(255); - expect(c.g).to.be(204); - expect(c.b).to.be(0); - expect(c.opacity).to.be(.5); - }); - it("parses names", function () { - var c = Snap.color("DodgerBlue"); - expect(c.hex).to.be("#1e90ff"); - c = Snap.color("FireBrick"); - expect(c.hex).to.be("#b22222"); - c = Snap.color("MintCream"); - expect(c.hex).to.be("#f5fffa"); - }); - it("parses to RGB", function() { - var expectRGB = function(str) { - var c = Snap.getRGB(str); - expect(c.hex).to.be("#ffcc00"); - expect(c.r).to.be(255); - expect(c.g).to.be(204); - expect(c.b).to.be(0); - expect(c.error).to.not.be(true); - }; - - expectRGB("#fc0"); - expectRGB("#ffcc00"); - expectRGB("rgb(255, 204, 0)"); - expectRGB("rgb(100%, 80%, 0%)"); - expectRGB("hsb(0.1333, 1, 1)"); - expectRGB("hsb(13.33%, 100%, 100%)"); - expectRGB("hsl(0.1333, 1, .5)"); - expectRGB("hsl(13.33%, 100%, 50%)"); - expectRGB("rgba(255, 204, 0, .75)"); - expectRGB("hsla(0.1333, 1, .5, .5)"); - expectRGB("hsba(0.1333, 1, 1, .5)"); - var c = Snap.getRGB("DodgerBlue"); - expect(c.hex).to.be("#1e90ff"); - expect(c.r).to.be(30); - expect(c.g).to.be(144); - expect(c.b).to.be(255); - expect(c.error).to.not.be(true); - c = Snap.getRGB("foobar"); - expect(!!c.error).to.be(true); - c = Snap.getRGB("#zzz"); - expect(!!c.error).to.be(true); - c = Snap.getRGB("rgb(255)"); - expect(!!c.error).to.be(true); - c = Snap.getRGB("hsl(0, 0, 0"); - expect(!!c.error).to.be(true); - c = Snap.getRGB("rab(0, 0, 0)"); - expect(!!c.error).to.be(true); - }); - it("creates hsb", function() { - var str = Snap.hsb(0.13333, 1, 1); - expect(str).to.be("#ffcc00"); - str = Snap.hsb(0, 0.5, 0.5); - expect(str).to.be("#804040"); - }); - it("creates rgb from hsb", function() { - var rgb = Snap.hsb2rgb(0.13333, 1, 1); - expect(rgb.r).to.be(255); - expect(rgb.g).to.be(204); - expect(rgb.b).to.be(0); - expect(rgb.hex).to.be("#ffcc00"); - rgb = Snap.hsb2rgb(0, 0.5, 0.5); - expect(rgb.r).to.be(128); - expect(rgb.g).to.be(64); - expect(rgb.b).to.be(64); - expect(rgb.hex).to.be("#804040"); - }); - it("creates hsl", function() { - var str = Snap.hsl(0.13333, 1, 0.5); - expect(str).to.be("#ffcc00"); - str = Snap.hsl(0, 1, 0.75); - expect(str).to.be("#ff8080"); - }); - it("creates rgb from hsl", function() { - var rgb = Snap.hsl2rgb(0.13333, 1, 0.5); - expect(rgb.r).to.be(255); - expect(rgb.g).to.be(204); - expect(rgb.b).to.be(0); - expect(rgb.hex).to.be("#ffcc00"); - rgb = Snap.hsl2rgb(0, 1, 0.75); - expect(rgb.r).to.be(255); - expect(rgb.g).to.be(128); - expect(rgb.b).to.be(128); - expect(rgb.hex).to.be("#ff8080"); - }); - it("creates rgb", function() { - var str = Snap.rgb(255, 204, 0); - expect(str).to.be("#ffcc00"); - str = Snap.rgb(64, 128, 255); - expect(str).to.be("#4080ff"); - }); - it("creates hsb from rgb", function() { - var hsb = Snap.rgb2hsb(255, 204, 0); - expect(hsb.h.toFixed(3)).to.be("0.133"); - expect(hsb.s).to.be(1); - expect(hsb.b).to.be(1); - hsb = Snap.rgb2hsb(128, 64, 64); - expect(hsb.h).to.be(0); - expect(hsb.s.toFixed(1)).to.be("0.5"); - expect(hsb.b.toFixed(1)).to.be("0.5"); - }); - it("creates hsl from rgb", function() { - var hsl = Snap.rgb2hsl(255, 204, 0); - expect(hsl.h.toFixed(3)).to.be("0.133"); - expect(hsl.s).to.be(1); - expect(hsl.l).to.be(0.5); - hsl = Snap.rgb2hsl(255, 128, 128); - expect(hsl.h).to.be(0); - expect(hsl.s).to.be(1); - expect(hsl.l.toFixed(2)).to.be("0.75"); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/element.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/element.js deleted file mode 100644 index 6f4f254e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/element.js +++ /dev/null @@ -1,714 +0,0 @@ -describe("Element methods", function () { - var s; - beforeEach(function () { - s = Snap(100, 100); - }); - afterEach(function () { - s.remove(); - }); - - /* - DOM manipulation: - - add/append - - prepend - - after - - insertAfter - - before - - insertBefore - - clone - - parent - - remove - */ - it("Element.add (for Element)", function () { - var rect = s.rect(10, 20, 30, 40); - var result = s.add(rect); - expect(rect.node.parentNode).to.be(s.node); - expect(s.node.lastChild).to.be(rect.node); - expect(result).to.be(s); - }); - it("Element.add (for Set)", function () { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2); - var result = s.add(set); - expect(rect1.node.parentNode).to.be(s.node); - expect(rect2.node.parentNode).to.be(s.node); - expect(result).to.be(s); - }); - it("Element.append (for Element)", function () { - var rect = s.rect(10, 20, 30, 40); - var result = s.append(rect); - expect(rect.node.parentNode).to.be(s.node); - expect(s.node.lastChild).to.be(rect.node); - expect(result).to.be(s); - }); - it("Element.appendTo (for Element)", function () { - var rect = s.rect(10, 20, 30, 40); - var result = rect.appendTo(s); - expect(rect.node.parentNode).to.be(s.node); - expect(s.node.lastChild).to.be(rect.node); - expect(result).to.be(rect); - }); - it("Element.append (for Set)", function () { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2); - var result = s.append(set); - expect(rect1.node.parentNode).to.be(s.node); - expect(rect2.node.parentNode).to.be(s.node); - expect(result).to.be(s); - }); - it("Element.after", function() { - var circle = s.circle(10, 20, 30); - var rect = s.rect(10, 20, 30, 40); - var result = circle.after(rect); - expect(circle.node.nextSibling).to.be(rect.node); - expect(result).to.be(circle); - }); - it("Element.prepend", function() { - var rect = s.rect(10, 20, 30, 40); - var circle = s.circle(10, 20, 30); - var group = s.group(); - s.append(group); - var result = group.prepend(rect); - expect(group.node.firstChild).to.be(rect.node); - expect(result).to.be(group); - result = group.prepend(circle); - expect(group.node.firstChild).to.be(circle.node); - expect(result).to.be(group); - }); - it("Element.prependTo", function() { - var rect = s.rect(10, 20, 30, 40); - var circle = s.circle(10, 20, 30); - var group = s.group(); - s.append(group); - var result = rect.prependTo(group); - expect(group.node.firstChild).to.be(rect.node); - expect(result).to.be(rect); - result = circle.prependTo(group); - expect(group.node.firstChild).to.be(circle.node); - expect(result).to.be(circle); - }); - it("Element.insertAfter", function() { - var circle = s.circle(10, 20, 30); - var rect = s.rect(10, 20, 30, 40); - var result = rect.insertAfter(circle); - expect(circle.node.nextSibling).to.be(rect.node); - expect(result).to.be(rect); - }); - it("Element.before", function() { - var circle = s.circle(10, 20, 30); - var rect = s.rect(10, 20, 30, 40); - var result = circle.before(rect); - expect(circle.node.previousSibling).to.be(rect.node); - expect(result).to.be(circle); - }); - it("Element.insertBefore", function() { - var circle = s.circle(10, 20, 30); - var rect = s.rect(10, 20, 30, 40); - var result = rect.insertBefore(circle); - expect(circle.node.previousSibling).to.be(rect.node); - expect(result).to.be(rect); - }); - it("Element.clone", function() { - var circle = s.circle(10, 20, 30); - s.append(circle); - var clone = circle.clone(); - expect(circle.node).not.to.be(clone.node); - expect(clone.node.getAttribute("cx")).to.be("10"); - expect(clone.node.getAttribute("cy")).to.be("20"); - expect(clone.node.getAttribute("r")).to.be("30"); - }); - it("Element.parent", function() { - var circle = s.circle(10, 20, 30); - s.append(circle); - var parent = circle.parent(); - expect(parent.node).to.be(s.node); - }); - it("Element.remove", function() { - var rect = s.rect(10, 20, 30, 40); - expect(rect.node.parentNode).to.be(s.node); - var result = rect.remove(); - expect(rect.node.parentNode).to.be(null); - expect(result).to.be(rect); - }); - - /* - Set/get data: - Element.attr() - Element.data() - Element.removeData() - Element.asPX() - Element.getBBox() - Element.getPointAtLength() - Element.getSubpath() - Element.getTotalLength() - Element.innerSVG() - Element.toString() - */ - - it("Element.attr - get", function() { - var circle = s.circle(10, 20, 30); - var r = circle.attr("r"); - expect(r).to.be("30"); - }); - it("Element.attr - set", function() { - var circle = s.circle(10, 20, 30); - circle.attr({ - cx: 1, - cy: 2, - r: 3 - }); - var cx = circle.node.getAttribute("cx"); - var cy = circle.node.getAttribute("cy"); - var r = circle.node.getAttribute("r"); - expect(cx).to.be("1"); - expect(cy).to.be("2"); - expect(r).to.be("3"); - }); - it("Element.attr - set on group", function() { - var group = s.group(); - group.attr({'class': 'myclass'}); - expect(group.node.getAttribute('class')).to.be('myclass'); - }); - it("Element.attr - textPath", function() { - var txt = s.text(20, 20, "test"); - txt.attr({textpath: "M10,20L100,100"}); - expect(txt.node.firstChild.tagName).to.be("textPath"); - }); - it("Element.attr - textPath", function() { - var txt = s.text(20, 20, "test"), - pth = s.path("M10,20L100,100"); - txt.attr({textpath: pth}); - expect(txt.node.firstChild.tagName).to.be("textPath"); - }); - it("Element.data", function() { - var circle = s.circle(10, 20, 30); - circle.data("foo", "bar"); - var data = circle.data("foo"); - expect(data).to.be("bar"); - var myObject = {}; - circle.data("my-object", myObject); - data = circle.data("my-object"); - expect(data).to.be(myObject); - }); - it("Element.removeData - with key", function() { - var circle = s.circle(10, 20, 30); - var myObject = {}; - circle.data("my-object", myObject); - var data = circle.data("my-object"); - expect(data).to.be(myObject); - circle.removeData("my-object"); - data = circle.data("my-object"); - expect(data).to.be(undefined); - }); - it("Element.removeData - no key", function() { - var circle = s.circle(10, 20, 30); - var myObject = {}; - var myNumber = 42; - circle.data("my-object", myObject); - circle.data("my-number", 42); - expect(circle.data("my-object")).to.be(myObject); - expect(circle.data("my-number")).to.be(myNumber); - circle.removeData(); - expect(circle.data("my-object")).to.be(undefined); - expect(circle.data("my-number")).to.be(undefined); - }); - it("Element.asPX - from %", function() { - s.attr({width: 200}); - var rect = s.rect(0, 0, "100%", 10); - var widthAsPx = rect.asPX("width"); - expect(widthAsPx).to.be(200); - }); - it("Element.getBBox", function() { - var rect = s.rect(10, 20, 30, 40), - bbox = rect.getBBox(), - line = s.line(10, 20, 40, 60), - lbbx = line.getBBox(); - - expect(bbox.x).to.eql(10); - expect(bbox.y).to.eql(20); - expect(bbox.w).to.eql(30); - expect(bbox.width).to.eql(30); - expect(bbox.h).to.eql(40); - expect(bbox.height).to.eql(40); - expect(bbox.x2).to.eql(10 + 30); - expect(bbox.cx).to.eql(10 + 30 / 2); - expect(bbox.cy).to.eql(20 + 40 / 2); - expect(bbox.y2).to.eql(20 + 40); - expect(bbox).to.eql(lbbx); - }); - - it("Element.getPointAtLength", function() { - var path = s.path("M0,0 100,0"); - expect(path.getPointAtLength(50)).to.eql({ - x: 50, - y: 0, - m: { - x: 25, - y: 0 - }, - n: { - x: 75, - y: 0 - }, - start: { - x: 0, - y: 0 - }, - end: { - x: 100, - y: 0 - }, - alpha: 180 - }); - }); - it("Element.getSubpath", function() { - var path = s.path("M0,0 100,0"); - expect(path.getSubpath(10, 90)).to.be("M9.995,0C29.153,0,70.839,0,90,0"); - }); - it("Element.getTotalLength", function() { - var path = s.path("M0,0 100,0"); - expect(+path.getTotalLength("M0,0 100,0").toFixed(2)).to.be(100); - }); - it("Element.innerSVG", function() { - var group1 = s.group().attr({ - 'class': 'group-one' - }); - var group2 = s.group().attr({ - 'class': 'group-two' - }); - - var group3 = s.group().attr({ - 'class': 'group-three' - }); - - var circle1 = s.circle(10, 20, 30).attr({ - 'class': 'circle-one' - }); - var circle2 = s.circle(5, 10, 25).attr({ - 'class': 'circle-two' - }); - group1.add(group2); - group2.add(group3); - group2.add(circle1); - group3.add(circle2); - var innerSVG = group1.innerSVG(); - expect(innerSVG).to.match(/\w*\w*\w*/); - }); - it("Element.toString", function() { - var group1 = s.group(); - var circle1 = s.circle(10, 20, 30).attr({ - 'class': 'circle-one' - }); - group1.add(circle1); - var str = group1.toString(); - expect(str).to.match(/\w*\w*<\/g>/); - }); - - /* - Misc: - - Element.select() - Element.selectAll() - Element.animate() - Element.inAnim() - Element.stop() - Element.marker() - Element.pattern() - Element.use() - Element.transform() - Element.toDefs() - */ - - it("Element.select", function() { - var group1 = s.group(); - var group2 = s.group(); - var group3 = s.group(); - var circle1 = s.circle(10, 20, 30).attr({ - 'class': 'circle-one' - }); - var circle2 = s.circle(5, 10, 25).attr({ - 'class': 'circle-two' - }); - group1.add(group2); - group2.add(group3); - group2.add(circle1); - group3.add(circle2); - var c1 = group1.select('.circle-one'); - expect(circle1).to.be(c1); - var c2 = group1.select('.circle-two'); - expect(circle2).to.be(c2); - }); - it("Element.selectAll", function() { - var group1 = s.group(); - var group2 = s.group(); - var group3 = s.group(); - var circle1 = s.circle(10, 20, 30).attr({ - 'class': 'circle-one' - }); - var circle2 = s.circle(5, 10, 25).attr({ - 'class': 'circle-two' - }); - group1.add(group2); - group2.add(group3); - group2.add(circle1); - group3.add(circle2); - var circles = group1.selectAll('circle'); - expect(circles.length).to.be(2); - expect(circles).to.contain(circle1); - expect(circles).to.contain(circle2); - }); - it("Element.animate", function(done) { - var circle = s.circle(10, 20, 30); - var result = circle.animate({r: 50}, 10); - setTimeout(function() { - var r = circle.attr("r"); - expect(r).to.be("50"); - done(); - }, 50); - expect(result).to.be(circle); - }); - it("Element.animate - with callback", function(done) { - var circle = s.circle(10, 20, 30); - var result = circle.animate({r: 50}, 10, function() { - var r = circle.attr("r"); - expect(r).to.be("50"); - done(); - }); - expect(result).to.be(circle); - }); - it("Element.animate - with easing", function(done) { - var circle = s.circle(10, 20, 30); - var result = circle.animate({r: 50}, 10, mina.easein); - setTimeout(function() { - var r = circle.attr("r"); - expect(r).to.be("50"); - done(); - }, 50); - expect(result).to.be(circle); - }); - it("Element.animate - with callback & easing", function(done) { - var circle = s.circle(10, 20, 30); - var result = circle.animate({r: 50}, 10, mina.easeout, function() { - var r = circle.attr("r"); - expect(r).to.be("50"); - done(); - }); - expect(result).to.be(circle); - }); - it("Element.inAnim", function(done) { - var circle = s.circle(10, 20, 30); - circle.animate({r: 50}, 100); - circle.animate({cx: 100}, 100); - setTimeout(function() { - var inAnimArr = circle.inAnim(); - expect(inAnimArr).to.be.an('array'); - expect(inAnimArr.length).to.be(2); - expect(inAnimArr[0].anim).to.be.an('object'); - expect(inAnimArr[0].curStatus).to.be.a('number'); - expect(inAnimArr[0].curStatus).to.be.within(0.01, 0.99); - expect(inAnimArr[0].status).to.be.a('function'); - expect(inAnimArr[0].stop).to.be.a('function'); - done(); - }, 50); - }); - it("Element.stop", function(done) { - var circle = s.circle(10, 20, 30); - circle.animate({r: 50}, 100); - setTimeout(function() { - var inAnimArr = circle.inAnim(); - expect(inAnimArr.length).to.be(1); - var result = circle.stop(); - inAnimArr = circle.inAnim(); - expect(inAnimArr.length).to.be(0); - var r = circle.attr("r"); - expect(r).to.be.lessThan(50); - expect(result).to.be(circle); - done(); - }, 50); - }); - it("Element.marker", function() { - var line = s.line(0, 0, 10, 10); - var marker = line.marker(0, 0, 5, 5, 0, 0); - expect(marker.node.nodeName).to.be("marker"); - expect(marker.node.getAttribute("viewBox")).to.be("0 0 5 5"); - expect(marker.node.getAttribute("markerWidth")).to.be("5"); - expect(marker.node.getAttribute("markerHeight")).to.be("5"); - expect(marker.node.getAttribute("refX")).to.be("0"); - expect(marker.node.getAttribute("refY")).to.be("0"); - }); - it("Element.pattern", function() { - var circle = s.circle(10, 20, 30); - var pattern = circle.pattern(0, 0, 50, 50); - expect(pattern.node.nodeName).to.be('pattern'); - }); - it("Element.transform", function() { - var circle = s.circle(10, 20, 30); - var result = circle.transform("translate(10,10)"); - var matrix = { - a: 1, b: 0, c: 0, d: 1, e: 10, f: 10 - }; - var transform = circle.transform(); - expect(transform.string).to.be.a('string'); - expect(transform.global).to.be.a('string'); - expect(transform.globalMatrix).to.be.an('object'); - expect(transform.globalMatrix).to.eql(matrix); - expect(transform.local).to.be.a('string'); - expect(transform.localMatrix).to.be.an('object'); - expect(transform.localMatrix).to.eql(matrix); - circle.transform("rotate(90)"); - transform = circle.transform(); - expect(transform.local).to.be("r90,0,0"); - expect(result).to.be(circle); - circle.transform("translate(10)"); - matrix = { - a: 1, b: 0, c: 0, d: 1, e: 10, f: 0 - }; - transform = circle.transform(); - expect(transform.globalMatrix).to.eql(matrix); - }); - it("Element.use", function() { - var circle = s.circle(10, 20, 30); - var use = circle.use(); - expect(use.node.nodeName).to.be('use'); - }); - it("Element.toDefs", function() { - var circle = s.circle(10, 20, 30); - var result = circle.toDefs(); - expect(circle.node.parentElement.nodeName).to.be('defs'); - expect(result).to.be(circle); - }); - - /* - Event binding & unbinding: - - Element.click() - Element.dblclick() - Element.mousedown() - Element.mousemove() - Element.mouseout() - Element.mouseover() - Element.mouseup() - Element.touchcancel() - Element.touchend() - Element.touchmove() - Element.touchstart() - Element.unclick() - Element.undblclick() - Element.unmousedown() - Element.unmousemove() - Element.unmouseout() - Element.unmouseover() - Element.unmouseup() - Element.untouchcancel() - Element.untouchend() - Element.untouchmove() - Element.untouchstart() - - Element.drag() - Element.undrag() - Element.onDragOver() - Element.hover() - Element.unhover() - */ - - // Helper function to simulate event triggering - var triggerEvent = function(savageEl, eventType) { - var event = document.createEvent("HTMLEvents"); - event.initEvent(eventType, true, true); - savageEl.node.dispatchEvent(event); - }; - - // Generate tests for all standard DOM events - (function() { - var elementEvents = [ - "click", - "dblclick", - "mousedown", - "mousemove", - "mouseout", - "mouseover", - "mouseup", - "touchcancel", - "touchend", - "touchmove", - "touchstart" - ]; - - var makeEventTest = function(eventName) { - return function() { - // Add event, trigger event, remove event, trigger again - var circle = s.circle(10, 20, 30); - var n = 0; - var fn = function() { - n++; - }; - var result1 = circle[eventName](fn); - expect(n).to.be(0); - triggerEvent(circle, eventName); - expect(n).to.be(1); - var result2 = circle["un" + eventName](fn); - triggerEvent(circle, eventName); - expect(n).to.be(1); - expect(result1).to.be(circle); - expect(result2).to.be(circle); - }; - }; - - for (var i = 0; i < elementEvents.length; i++) { - var eventName = elementEvents[i]; - var testName = "Element." + eventName + ", Element.un" + eventName; - var testFunc = makeEventTest(eventName); - it(testName, testFunc); - } - }()); - it("Element.drag, Element.undrag - no contexts", function() { - var circle = s.circle(10, 20, 30); - var moved = 0; - var started = 0; - var ended = 0; - var result1 = circle.drag(function(dx, dy, x, y, event) { - moved++; - expect(dx).to.be.a('number'); - expect(dy).to.be.a('number'); - expect(x).to.be.a('number'); - expect(y).to.be.a('number'); - expect(event).to.be.an('object'); - }, function(x, y, event) { - started++; - expect(x).to.be.a('number'); - expect(y).to.be.a('number'); - expect(event).to.be.an('object'); - }, function(event) { - ended++; - expect(event).to.be.an('object'); - }); - - expect(started).to.be(0); - triggerEvent(circle, 'mousedown'); - expect(started).to.be(1); - expect(moved).to.be(0); - triggerEvent(circle, 'mousemove'); - expect(moved).to.be(1); - expect(ended).to.be(0); - triggerEvent(circle, 'mouseup'); - expect(ended).to.be(1); - expect(result1).to.be(circle); - - var result2 = circle.undrag(); - triggerEvent(circle, 'mousedown'); - expect(started).to.be(1); - triggerEvent(circle, 'mousemove'); - expect(moved).to.be(1); - triggerEvent(circle, 'mouseup'); - expect(ended).to.be(1); - // expect(result2).to.be(circle); // TODO: Make undrag return element - }); - it("Element.drag - with contexts", function() { - var circle = s.circle(10, 20, 30); - var moved = 0; - var started = 0; - var ended = 0; - var result = circle.drag(function(dx, dy, x, y, event) { - moved++; - expect(dx).to.be.a('number'); - expect(dy).to.be.a('number'); - expect(x).to.be.a('number'); - expect(y).to.be.a('number'); - expect(event).to.be.an('object'); - expect(this.moveContext).to.be(true); - }, function(x, y, event) { - started++; - expect(x).to.be.a('number'); - expect(y).to.be.a('number'); - expect(event).to.be.an('object'); - expect(this.startContext).to.be(true); - }, function(event) { - ended++; - expect(event).to.be.an('object'); - expect(this.endContext).to.be(true); - }, {moveContext: true}, {startContext: true}, {endContext: true}); - - expect(started).to.be(0); - triggerEvent(circle, 'mousedown'); - expect(started).to.be(1); - expect(moved).to.be(0); - triggerEvent(circle, 'mousemove'); - expect(moved).to.be(1); - expect(ended).to.be(0); - triggerEvent(circle, 'mouseup'); - expect(ended).to.be(1); - expect(result).to.be(circle); - - var result2 = circle.undrag(); - triggerEvent(circle, 'mousedown'); - expect(started).to.be(1); - triggerEvent(circle, 'mousemove'); - expect(moved).to.be(1); - triggerEvent(circle, 'mouseup'); - expect(ended).to.be(1); - // expect(result2).to.be(circle); // TODO: Make undrag return element - }); - - - it("Element.hover, Element.unhover - no contexts", function() { - var circle = s.circle(10, 20, 30); - var eventIn = 0; - var eventOut = 0; - var result1 = circle.hover(function() { - eventIn++; - }, function() { - eventOut++; - }); - - expect(eventIn).to.be(0); - triggerEvent(circle, 'mouseover'); - expect(eventIn).to.be(1); - expect(eventOut).to.be(0); - triggerEvent(circle, 'mouseout'); - expect(eventOut).to.be(1); - expect(result1).to.be(circle); - - var result2 = circle.unhover(); - triggerEvent(circle, 'mouseover'); - expect(eventIn).to.be(1); - triggerEvent(circle, 'mouseout'); - expect(eventOut).to.be(1); - expect(result2).to.be(circle); - }); - it("Element.hover, Element.unhover - with contexts", function() { - var circle = s.circle(10, 20, 30); - var eventIn = 0; - var eventOut = 0; - var result1 = circle.hover(function() { - eventIn++; - expect(this.inContext).to.be(true); - }, function() { - eventOut++; - expect(this.outContext).to.be(true); - }, {inContext: true}, {outContext: true}); - - expect(eventIn).to.be(0); - triggerEvent(circle, 'mouseover'); - expect(eventIn).to.be(1); - expect(eventOut).to.be(0); - triggerEvent(circle, 'mouseout'); - expect(eventOut).to.be(1); - expect(result1).to.be(circle); - - var result2 = circle.unhover(); - triggerEvent(circle, 'mouseover'); - expect(eventIn).to.be(1); - triggerEvent(circle, 'mouseout'); - expect(eventOut).to.be(1); - expect(result2).to.be(circle); - }); - it("Snap.getElementByPoint", function() { - var rect = s.rect(10, 10, 30, 30).attr({id: "id"}); - var res1 = Snap.getElementByPoint(15, 15); - var res2 = Snap.getElementByPoint(45, 45); - expect(res1.node.id).to.be("id"); - expect(res2.node.id).to.not.be("id"); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/filter.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/filter.js deleted file mode 100644 index 04d1da71..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/filter.js +++ /dev/null @@ -1,83 +0,0 @@ -describe("Filter methods", function () { - it("Snap.filter.blur", function() { - var str = Snap.filter.blur(3); - expect(str).to.be(''); - str = Snap.filter.blur(0.123, 8); - expect(str).to.be(''); - }); - it("Snap.filter.brightness", function() { - var str = Snap.filter.brightness(0.3); - expect(str).to.be(''); - str = Snap.filter.brightness(1); - expect(str).to.be(''); - }); - it("Snap.filter.contrast", function() { - var str = Snap.filter.contrast(0.1); - expect(str).to.be(''); - str = Snap.filter.contrast(3); - expect(str).to.be(''); - }); - it("Snap.filter.grayscale", function() { - var str = Snap.filter.grayscale(0.5); - expect(str).to.be(''); - str = Snap.filter.grayscale(1); - expect(str).to.be(''); - }); - it("Snap.filter.hueRotate", function() { - var str = Snap.filter.hueRotate(180); - expect(str).to.be(''); - str = Snap.filter.hueRotate(90); - expect(str).to.be(''); - }); - it("Snap.filter.hueRotate", function() { - var str = Snap.filter.hueRotate(180); - expect(str).to.be(''); - str = Snap.filter.hueRotate(90); - expect(str).to.be(''); - }); - it("Snap.filter.invert", function() { - var str = Snap.filter.invert(0.6); - expect(str).to.be(''); - str = Snap.filter.invert(1); - expect(str).to.be(''); - }); - it("Snap.filter.saturate", function() { - var str = Snap.filter.saturate(0.3); - expect(str).to.be(''); - str = Snap.filter.saturate(1); - expect(str).to.be(''); - }); - it("Snap.filter.sepia", function() { - var str = Snap.filter.sepia(0.3); - expect(str).to.be(''); - str = Snap.filter.sepia(1); - expect(str).to.be(''); - }); - it("Snap.filter.shadow - dx & dy", function() { - var str = Snap.filter.shadow(5, 5); - expect(str).to.be(''); - str = Snap.filter.shadow(-1, 3); - expect(str).to.be(''); - }); - it("Snap.filter.shadow - dx & dy, blur", function() { - var str = Snap.filter.shadow(5, 5, 5); - expect(str).to.be(''); - str = Snap.filter.shadow(-1, 3, 10); - expect(str).to.be(''); - }); - it("Snap.filter.shadow - dx & dy, color", function() { - var str = Snap.filter.shadow(5, 5, '#F00'); - expect(str).to.be(''); - str = Snap.filter.shadow(-1, 3, 'hsla(128deg, 50%, 50%, 0.8)'); - expect(str).to.be(''); - }); - - it("Snap.filter.shadow - dx & dy, blur & color", function() { - var str = Snap.filter.shadow(5, 5, 5, '#F00'); - expect(str).to.be(''); - str = Snap.filter.shadow(-1, 3, 10, 'hsla(128deg, 50%, 50%, 0.8)'); - expect(str).to.be(''); - }); - - -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/matrix.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/matrix.js deleted file mode 100644 index e446d7a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/matrix.js +++ /dev/null @@ -1,197 +0,0 @@ -describe("Matrix methods", function () { - it("Matrix.add - matrix", function() { - var matrix1 = new Snap.Matrix(1, 0, 0, 1, 5, 5); - var matrix2 = new Snap.Matrix(1, 0, 0, 1, 10, 10); - var result = matrix1.add(matrix2); - expect(result).to.eql({ - a: 1, - b: 0, - c: 0, - d: 1, - e: 15, - f: 15 - }); - // add two 90 degree rotations - var matrix3 = new Snap.Matrix(0, 1, -1, 0, 0, 0); - var matrix4 = new Snap.Matrix(0, 1, -1, 0, 0, 0); - result = matrix3.add(matrix4); - expect(result).to.eql({ - a: -1, - b: 0, - c: 0, - d: -1, - e: 0, - f: 0 - }); - }); - it("Matrix.add - numbers", function() { - var matrix1 = new Snap.Matrix(1, 0, 0, 1, 5, 5); - var result = matrix1.add(1, 0, 0, 1, 10, 10); - expect(result).to.eql({ - a: 1, - b: 0, - c: 0, - d: 1, - e: 15, - f: 15 - }); - }); - it("Matrix.clone", function() { - var matrix1 = new Snap.Matrix(1, 2, 3, 4, 5, 6); - var clone = matrix1.clone(); - expect(clone).to.not.be(matrix1); - expect(clone).to.eql({ - a: 1, - b: 2, - c: 3, - d: 4, - e: 5, - f: 6 - }); - }); - it("Matrix.invert", function() { - var matrix1 = new Snap.Matrix(1, 2, 3, 4, 5, 6); - var inverse = matrix1.invert(); - expect(inverse).to.eql({ - a: -2, - b: 1, - c: 1.5, - d: -0.5, - e: 1, - f: -2 - }); - }); - it("Matrix.rotate", function() { - var matrix = new Snap.Matrix(1, 0, 0, 1, 0, 0); - matrix.rotate(45, 0, 0); - expect(+matrix.a.toFixed(3)).to.be(0.707); - expect(+matrix.b.toFixed(3)).to.be(0.707); - expect(+matrix.c.toFixed(3)).to.be(-0.707); - expect(+matrix.d.toFixed(3)).to.be(0.707); - expect(+matrix.e.toFixed(3)).to.be(0); - expect(+matrix.f.toFixed(3)).to.be(0); - }); - it("Matrix.scale - x", function() { - var matrix = new Snap.Matrix(1, 0, 0, 1, 20, 30); - matrix.scale(2); - expect(matrix).to.eql({ - a: 2, - b: 0, - c: 0, - d: 2, - e: 20, - f: 30 - }); - matrix.scale(0.5); - expect(matrix).to.eql({ - a: 1, - b: 0, - c: 0, - d: 1, - e: 20, - f: 30 - }); - }); - it("Matrix.scale - x, y", function() { - var matrix = new Snap.Matrix(1, 0, 0, 1, 20, 30); - matrix.scale(2, 3); - expect(matrix).to.eql({ - a: 2, - b: 0, - c: 0, - d: 3, - e: 20, - f: 30 - }); - matrix.scale(0.5, 1); - expect(matrix).to.eql({ - a: 1, - b: 0, - c: 0, - d: 3, - e: 20, - f: 30 - }); - }); - it("Matrix.scale - x, y, cx, cy", function() { - var matrix = new Snap.Matrix(1, 0, 0, 1, 20, 30); - matrix.scale(2, 3, 5, -5); - expect(matrix).to.eql({ - a: 2, - b: 0, - c: 0, - d: 3, - e: 15, - f: 40 - }); - }); - it("Matrix.split", function() { - var matrix = new Snap.Matrix(1, 0, 0, 1, 0, 0); - var result = matrix.split(); - expect(result.dx).to.be(0); - expect(result.dy).to.be(0); - expect(result.scalex).to.be(1); - expect(result.scaley).to.be(1); - expect(result.shear).to.be(0); - expect(result.rotate).to.be(0); - expect(result.isSimple).to.be(true); - - matrix = new Snap.Matrix(1.5, 0, 0, 0.5, 20, 25); - result = matrix.split(); - expect(result.dx).to.be(20); - expect(result.dy).to.be(25); - expect(result.scalex).to.be(1.5); - expect(result.scaley).to.be(0.5); - expect(result.shear).to.be(0); - expect(result.rotate).to.be(0); - expect(result.isSimple).to.be(true); - }); - it("Matrix.toTransformString", function() { - var matrix = new Snap.Matrix(1.5, 0, 0, 0.5, 20, 25); - var str = matrix.toTransformString(); - var s = Snap(10, 10); - var rect = s.rect(0, 0, 10, 20); - rect.transform(str); - var transform = rect.transform(); - expect(transform.localMatrix).to.eql({ - a: 1.5, - b: 0, - c: 0, - d: 0.5, - e: 20, - f: 25 - }); - }); - it("Matrix.translate", function() { - var matrix = new Snap.Matrix(1, 0, 0, 1, 20, 30); - matrix.translate(10, -10); - expect(matrix).to.eql({ - a: 1, - b: 0, - c: 0, - d: 1, - e: 30, - f: 20 - }); - matrix.translate(-1, -2); - expect(matrix).to.eql({ - a: 1, - b: 0, - c: 0, - d: 1, - e: 29, - f: 18 - }); - }); - it("Matrix.x", function() { - var matrix = new Snap.Matrix(1, 0, 0, 1, 20, 30); - var result = matrix.x(10, -10); - expect(result).to.be(30); - }); - it("Matrix.y", function() { - var matrix = new Snap.Matrix(1, 0, 0, 1, 20, 30); - var result = matrix.y(10, -10); - expect(result).to.be(20); - }); - -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/mina.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/mina.js deleted file mode 100644 index 2f225911..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/mina.js +++ /dev/null @@ -1,87 +0,0 @@ -describe("Mina methods", function () { - var s; - beforeEach(function () { - s = Snap(100, 100); - }); - afterEach(function () { - s.remove(); - }); - - var validateDescriptor = function(obj) { - expect(obj).to.be.an('object'); - expect(obj.id).to.be.a('string'); - expect(obj.start).to.be.a('number'); - expect(obj.end).to.be.a('number'); - expect(obj.b).to.be.a('number'); - expect(obj.s).to.be.a('number'); - expect(obj.dur).to.be.a('number'); - expect(obj.spd).to.be.a('number'); - - expect(obj.get).to.be.a('function'); - expect(obj.set).to.be.a('function'); - expect(obj.easing).to.be.a('function'); - expect(obj.status).to.be.a('function'); - expect(obj.speed).to.be.a('function'); - expect(obj.duration).to.be.a('function'); - expect(obj.stop).to.be.a('function'); - }; - - it("mina", function() { - var n; - var animDescriptor = mina(10, 20, 0, 1000, function(newN) { - n = newN; - }, function() {}); - - validateDescriptor(animDescriptor); - expect(animDescriptor.start).to.be(10); - expect(animDescriptor.end).to.be(20); - expect(animDescriptor.b).to.be(0); - expect(animDescriptor.s).to.be(0); - expect(animDescriptor.dur).to.be(1000); - expect(animDescriptor.easing).to.be(mina.linear); - }); - it("mina.getById", function() { - var anim1 = mina(10, 20, 0, 1000, function() {}, function() {}); - var anim2 = mina(10, 20, 0, 1000, function() {}, function() {}); - expect(mina.getById(anim1.id)).to.be(anim1); - expect(mina.getById(anim2.id)).to.be(anim2); - }); - it("mina.time", function() { - var now = (new Date).getTime(); - expect(mina.time()).to.be(now); - }); - it("mina.backin", function() { - expect(mina.backin(0)).to.be(0); - expect(mina.backin(1)).to.be(1); - }); - it("mina.backout", function() { - expect(mina.backout(0)).to.be(0); - expect(mina.backout(1)).to.be(1); - }); - it("mina.bounce", function() { - expect(mina.bounce(0)).to.be(0); - expect(mina.bounce(1)).to.be(1); - }); - it("mina.easein", function() { - expect(mina.easein(0)).to.be(0); - expect(mina.easein(1)).to.be(1); - }); - it("mina.easeinout", function() { - expect(mina.easeinout(0)).to.be(0); - expect(mina.easeinout(1)).to.be(1); - }); - it("mina.easeout", function() { - expect(mina.easeout(0)).to.be(0); - expect(mina.easeout(1)).to.be(1); - }); - it("mina.elastic", function() { - expect(mina.elastic(0)).to.be(0); - expect(mina.elastic(1)).to.be(1); - }); - it("mina.linear", function() { - expect(mina.linear(0)).to.be(0); - expect(mina.linear(0.2)).to.be(0.2); - expect(mina.linear(0.7)).to.be(0.7); - expect(mina.linear(1)).to.be(1); - }); -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/paper.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/paper.js deleted file mode 100644 index c88ffa2d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/paper.js +++ /dev/null @@ -1,136 +0,0 @@ -describe("Check for Paper Creation", function () { - it("creates simple paper 20 × 10", function () { - var s = Snap(20, 10); - var S = s.node; - expect(S).to.not.be(null); - expect(S.getAttribute("width")).to.be("20"); - expect(S.getAttribute("height")).to.be("10"); - s.remove(); - }); - it("removal of paper", function () { - var s = Snap(20, 10); - var S = s.node; - expect(S).to.not.be(null); - s.remove(); - S = document.querySelectorAll("svg").length; - expect(S).to.be(1); - }); - it("creates simple paper 20% × 10em", function () { - var s = Snap("20%", "10em"); - var S = s.node; - expect(S).to.not.be(null); - expect(S.getAttribute("width")).to.be("20%"); - expect(S.getAttribute("height")).to.be("10em"); - s.remove(); - }); - it("converts existing SVG element to paper", function () { - var S = document.getElementById("svgroot"); - var s = Snap(S); - expect(document.querySelector("#svgroot circle")).to.be(null); - var c = s.circle(10, 20, 5); - expect(document.querySelectorAll("#svgroot circle").length).to.be(1); - c.remove(); - }); - it("converts existing SVG element to paper (as query)", function () { - var S = document.getElementById("svgroot"); - var s = Snap("#svgroot"); - expect(document.querySelector("#svgroot circle")).to.be(null); - var c = s.circle(10, 20, 5); - expect(document.querySelectorAll("#svgroot circle").length).to.be(1); - c.remove(); - }); -}); - -describe("Paper methods", function () { - /* - Paper.el - Paper.filter - Paper.gradient - Paper.image - Paper.toString - */ - var paper; - beforeEach(function () { - paper = Snap(100, 100); - }); - afterEach(function () { - paper.remove(); - }); - - it("Paper.svg", function() { - var c = paper.svg(); - expect(c.node.nodeName).to.be("svg"); - expect(c.node.parentNode).to.be(paper.node); - }); - it("Paper.svg(x, y)", function() { - var c = paper.svg(100, 200); - expect(c.node.nodeName).to.be("svg"); - expect(c.node.x.baseVal.value).to.be(100); - expect(c.node.y.baseVal.value).to.be(200); - expect(c.node.parentNode).to.be(paper.node); - }); - it("Paper.svg(x, y, w, h, viewbox)", function() { - var c = paper.svg(100, 200, 300, 400, 10, 20, 30, 40); - expect(c.node.nodeName).to.be("svg"); - expect(c.node.x.baseVal.value).to.be(100); - expect(c.node.y.baseVal.value).to.be(200); - expect(c.node.width.baseVal.value).to.be(300); - expect(c.node.height.baseVal.value).to.be(400); - expect(c.node.getAttribute("viewBox")).to.be("10 20 30 40"); - expect(c.node.parentNode).to.be(paper.node); - }); - it("Paper.el", function() { - var c = paper.el("circle"); - expect(c.node.nodeName).to.be("circle"); - expect(c.node.parentNode).to.be(paper.node); - }); - it("Paper.filter", function() { - var filter = paper.filter(''); - expect(filter.node.nodeName).to.be('filter'); - var child = filter.node.firstChild; - expect(child).to.be.ok(); - expect(child.nodeName).to.be('feGaussianBlur'); - expect(child.getAttribute("stdDeviation")).to.be('2'); - }); - it("Paper.gradient - linear", function() { - var gradient = paper.gradient("l(0, 0, 1, 1)#000-#f00-#fff"); - expect(gradient.node.nodeName).to.be('linearGradient'); - expect(gradient.node.getAttribute('x1')).to.be("0"); - expect(gradient.node.getAttribute('y1')).to.be("0"); - expect(gradient.node.getAttribute('x2')).to.be("1"); - expect(gradient.node.getAttribute('y2')).to.be("1"); - var stops = gradient.node.querySelectorAll("stop"); - expect(stops.length).to.be(3); - }); - it("Paper.gradient - radial", function() { - var gradient = paper.gradient("r(0.3, 0.4, 0.5)#000-#fff"); - expect(gradient.node.nodeName).to.be('radialGradient'); - expect(gradient.node.getAttribute('cx')).to.be("0.3"); - expect(gradient.node.getAttribute('cy')).to.be("0.4"); - expect(gradient.node.getAttribute('r')).to.be("0.5"); - var stops = gradient.node.querySelectorAll("stop"); - expect(stops.length).to.be(2); - }); - it("Paper.image", function() { - var image = paper.image('#', 10, 20, 30, 40); - var img = document.querySelector("image"); - expect(img).to.not.be(null); - expect(img.getAttribute("x")).to.be("10"); - expect(img.getAttribute("y")).to.be("20"); - expect(img.getAttribute("width")).to.be("30"); - expect(img.getAttribute("height")).to.be("40"); - }); - it("Paper.toString", function() { - paper.circle(10, 20, 30); - var str = paper.toString(); - expect(str).to.match(/.*?.*?/); - }); - it("Paper.getBBox", function() { - paper.circle(50, 50, 30); - var bb = paper.getBBox(); - expect(bb.x).to.be(20); - expect(bb.y).to.be(20); - expect(bb.width).to.be(60); - expect(bb.height).to.be(60); - }); -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/path.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/path.js deleted file mode 100644 index 40b0ce52..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/path.js +++ /dev/null @@ -1,400 +0,0 @@ -describe("Path methods", function () { - it("Snap.path.getTotalLength", function () { - expect(+Snap.path.getTotalLength("M0,0 100,0").toFixed(2)).to.be(100); - }); - it("Snap.path.getPointAtLength", function () { - expect(Snap.path.getPointAtLength("M0,0 100,0", 50)).to.eql({ - x: 50, - y: 0, - m: { - x: 25, - y: 0 - }, - n: { - x: 75, - y: 0 - }, - start: { - x: 0, - y: 0 - }, - end: { - x: 100, - y: 0 - }, - alpha: 180 - }); - }); - it("Snap.path.getSubpath", function () { - expect(Snap.path.getSubpath("M0,0 100,0", 10, 90)).to.be("M9.995,0C29.153,0,70.839,0,90,0"); - expect(Snap.path.getSubpath("M0,0 100,0", 0, 90)).to.be("M0,0C0,0,64.674,0,90,0"); - expect(Snap.path.getSubpath("M0,0 100,0", 10, 120)).to.be("M10,0C35.326,0,100,0,100,0"); - }); - it("Snap.path.findDotsAtSegment", function () { - expect(Snap.path.findDotsAtSegment(0,0,0,0,100,0,100,0,.5)).to.eql({ - x: 50, - y: 0, - m: { - x: 25, - y: 0 - }, - n: { - x: 75, - y: 0 - }, - start: { - x: 0, - y: 0 - }, - end: { - x: 100, - y: 0 - }, - alpha: 180 - }); - }); - it("Snap.path.bezierBBox - params", function () { - var bbox = Snap.path.bezierBBox(10, 10, 10, 20, 110, 0, 110, 10); - expect(bbox.cx).to.be(60); - expect(bbox.cy).to.be(10); - expect(bbox.x).to.be(10); - expect(bbox.w).to.be(100); - expect(bbox.width).to.be(100); - expect(bbox.x2).to.be(110); - }); - it("Snap.path.bezierBBox - array", function () { - var bbox = Snap.path.bezierBBox([10, 10, 10, 20, 110, 0, 110, 10]); - expect(bbox.cx).to.be(60); - expect(bbox.cy).to.be(10); - expect(bbox.x).to.be(10); - expect(bbox.w).to.be(100); - expect(bbox.width).to.be(100); - expect(bbox.x2).to.be(110); - }); - it("Snap.path.getBBox", function() { - // same as 10,20,30,40 rect - var bbox = Snap.path.getBBox("M10,20h30v40h-30z"); - expect(bbox.x).to.eql(10); - expect(bbox.y).to.eql(20); - expect(bbox.width).to.eql(30); - expect(bbox.height).to.eql(40); - expect(bbox.x2).to.eql(10 + 30); - expect(bbox.y2).to.eql(20 + 40); - }); - it("Snap.path.isPointInsideBBox", function () { - expect(Snap.path.isPointInsideBBox({x: 0, y: 0, width: 10, height: 10}, 5, 5)).to.be(true); - expect(Snap.path.isPointInsideBBox({x: 0, y: 0, width: 10, height: 10}, 10, 5)).to.be(true); - expect(Snap.path.isPointInsideBBox({x: 0, y: 0, width: 10, height: 10}, 10, 10)).to.be(true); - }); - it("Snap.path.isBBoxIntersect", function () { - expect(Snap.path.isBBoxIntersect({ - x: 0, - y: 0, - width: 10, - height: 10 - }, { - x: 5, - y: 5, - width: 15, - height: 15 - })).to.be(true); - expect(Snap.path.isBBoxIntersect({ - x: 0, - y: 0, - width: 10, - height: 10 - }, { - x: 5, - y: 5, - width: 7, - height: 7 - })).to.be(true); - expect(Snap.path.isBBoxIntersect({ - x: 0, - y: 0, - width: 10, - height: 10 - }, { - x: 15, - y: 15, - width: 10, - height: 10 - })).to.be(false); - }); - it("Snap.path.toAbsolute", function() { - var relPath = "M 10 10" + - "h 40" + - "v 30" + - "h -40" + - "l 0 -30" + - "m 0 40" + - "l 30 0" + - "l 0 40" + - "l -30 0" + - "m 0 10" + - "c 20 20 40 20 40 0" + - "m -40 40" + - "c 10 -25 20 -25 30 0" + - "s 10 25 20 0" + - "m 20 -130" + - "q 30 30 60 0" + - "m -60 40" + - "q 10 20 20 0" + - "t 20 0" + - "m -40 30" + - "a 10 10 0 0 0 40 0"; - var absPath = Snap.path.toAbsolute(relPath); - var i = 0; - var checkNext = function(arr) { - expect(absPath[i++]).to.eql(arr); - } - checkNext(['M', 10, 10]); - checkNext(['H', 50]); - checkNext(['V', 40]); - checkNext(['H', 10]); - checkNext(['L', 10, 10]); - checkNext(['M', 10, 50]); - checkNext(['L', 40, 50]); - checkNext(['L', 40, 90]); - checkNext(['L', 10, 90]); - checkNext(['M', 10, 100]); - checkNext(['C', 30, 120, 50, 120, 50, 100]); - checkNext(['M', 10, 140]); - checkNext(['C', 20, 115, 30, 115, 40, 140]); - checkNext(['S', 50, 165, 60, 140]); - checkNext(['M', 80, 10]); - checkNext(['Q', 110, 40, 140, 10]); - checkNext(['M', 80, 50]); - checkNext(['Q', 90, 70, 100, 50]); - checkNext(['T', 120, 50]); - checkNext(['M', 80, 80]); - checkNext(['A', 10, 10, 0, 0, 0, 120, 80]); - }); - it("Snap.path.toRelative", function() { - var absPath = "M10 10 H 50 V 40 H 10 L 10 10" + - "M10 50 L 40 50 L 40 90 L 10 90" + - "M10 100 C 30 120, 50 120, 50 100" + - "M10 140 C 20 115, 30, 115, 40 140 S 50 165, 60 140" + - "M80 10 Q 110 40, 140 10" + - "M80 50 Q 90 70, 100 50 T 120 50" + - "M80 80 A 10 10 0 0 0 120 80"; - var relPath = Snap.path.toRelative(absPath); - var i = 0; - var checkNext = function(arr) { - expect(relPath[i++]).to.eql(arr); - } - - checkNext(['M', 10, 10]); - checkNext(['h', 40]); - checkNext(['v', 30]); - checkNext(['h', -40]); - checkNext(['l', 0, -30]); - checkNext(['m', 0, 40]); - checkNext(['l', 30, 0]); - checkNext(['l', 0, 40]); - checkNext(['l', -30, 0]); - checkNext(['m', 0, 10]); - checkNext(['c', 20, 20, 40, 20, 40, 0]); - checkNext(['m', -40, 40]); - checkNext(['c', 10, -25, 20, -25, 30, 0]); - checkNext(['s', 10, 25, 20, 0]); - checkNext(['m', 20, -130]); - checkNext(['q', 30, 30, 60, 0]); - checkNext(['m', -60, 40]); - checkNext(['q', 10, 20, 20, 0]); - checkNext(['t', 20, 0]); - checkNext(['m', -40, 30]); - checkNext(['a', 10, 10, 0, 0, 0, 40, 0]); - }); - it("Snap.path.toCubic", function() { - var absPath = "M10 10 H 50 V 40 H 10 L 10 10" + - "M10 50 L 40 50 L 40 90 L 10 90" + - "M10 100 C 30 120, 50 120, 50 100" + - "M10 140 C 20 115, 30, 115, 40 140 S 50 165, 60 140" + - "M80 10 Q 110 40, 140 10" + - "M80 50 Q 90 70, 100 50 T 120 50" + - "M80 80 A 10 10 0 0 0 120 80"; - var relPath = "M 10 10" + - "h 40" + - "v 30" + - "h -40" + - "l 0 -30" + - "m 0 40" + - "l 30 0" + - "l 0 40" + - "l -30 0" + - "m 0 10" + - "c 20 20 40 20 40 0" + - "m -40 40" + - "c 10 -25 20 -25 30 0" + - "s 10 25 20 0" + - "m 20 -130" + - "q 30 30 60 0" + - "m -60 40" + - "q 10 20 20 0" + - "t 20 0" + - "m -40 30" + - "a 10 10 0 0 0 40 0"; - var cubicPathFromAbs = Snap.path.toCubic(absPath); - var cubicPathFromRel = Snap.path.toCubic(relPath); - var i = 0; - var checkNext = function(arr) { - expect(cubicPathFromAbs[i]).to.eql(arr); - expect(cubicPathFromRel[i]).to.eql(arr); - i++; - } - - checkNext(['M', 10, 10]); - checkNext(['C', 10, 10, 50, 10, 50, 10]); - checkNext(['C', 50, 10, 50, 40, 50, 40]); - checkNext(['C', 50, 40, 10, 40, 10, 40]); - checkNext(['C', 10, 40, 10, 10, 10, 10]); - checkNext(['M', 10, 50]); - checkNext(['C', 10, 50, 40, 50, 40, 50]); - checkNext(['C', 40, 50, 40, 90, 40, 90]); - checkNext(['C', 40, 90, 10, 90, 10, 90]); - checkNext(['M', 10, 100]); - checkNext(['C', 30, 120, 50, 120, 50, 100]); - checkNext(['M', 10, 140]); - checkNext(['C', 20, 115, 30, 115, 40, 140]); - checkNext(['C', 50, 165, 50, 165, 60, 140]); - checkNext(['M', 80, 10]); - checkNext(['C', 100, 29.999999999999996, 120, 29.999999999999996, 140, 10]); - checkNext(['M', 80, 50]); - checkNext(['C', 86.66666666666666, 63.33333333333333, 93.33333333333333, 63.33333333333333, 100, 50]); - checkNext(['C', 106.66666666666666, 36.666666666666664, 113.33333333333333, 36.666666666666664, 120, 50]); - checkNext(['M', 80, 80]); - checkNext(['C', 80, 95.39600717839002, 96.66666666666667, 105.01851166488379, 110, 97.32050807568878]); - checkNext(['C', 116.18802153517007, 93.74785217660714, 120, 87.14531179816328, 120, 80]); - - }); - it("Snap.path.map", function() { - var absPath = "M10 10 H 50 V 40 H 10 L 10 10" + - "M10 50 L 40 50 L 40 90 L 10 90" + - "M10 100 C 30 120, 50 120, 50 100" + - "M10 140 C 20 115, 30, 115, 40 140 S 50 165, 60 140" + - "M80 10 Q 110 40, 140 10" + - "M80 50 Q 90 70, 100 50 T 120 50" + - "M80 80 A 10 10 0 0 0 120 80"; - var matrix = new Snap.Matrix(1, 0, 0, 1, 1000, 0); - var transformedPath = Snap.path.map(absPath, matrix); - - var i = 0; - var checkNext = function(arr) { - expect(transformedPath[i++]).to.eql(arr); - } - checkNext(['M', 1010, 10]); - checkNext(['C', 1010, 10, 1050, 10, 1050, 10]); - checkNext(['C', 1050, 10, 1050, 40, 1050, 40]); - checkNext(['C', 1050, 40, 1010, 40, 1010, 40]); - checkNext(['C', 1010, 40, 1010, 10, 1010, 10]); - checkNext(['M', 1010, 50]); - checkNext(['C', 1010, 50, 1040, 50, 1040, 50]); - checkNext(['C', 1040, 50, 1040, 90, 1040, 90]); - checkNext(['C', 1040, 90, 1010, 90, 1010, 90]); - checkNext(['M', 1010, 100]); - checkNext(['C', 1030, 120, 1050, 120, 1050, 100]); - checkNext(['M', 1010, 140]); - checkNext(['C', 1020, 115, 1030, 115, 1040, 140]); - checkNext(['C', 1050, 165, 1050, 165, 1060, 140]); - checkNext(['M', 1080, 10]); - checkNext(['C', 1100, 29.999999999999996, 1120, 29.999999999999996, 1140, 10]); - checkNext(['M', 1080, 50]); - checkNext(['C', 1086.66666666666666, 63.33333333333333, 1093.33333333333333, 63.33333333333333, 1100, 50]); - checkNext(['C', 1106.66666666666666, 36.666666666666664, 1113.33333333333333, 36.666666666666664, 1120, 50]); - checkNext(['M', 1080, 80]); - checkNext(['C', 1080, 95.39600717839002, 1096.66666666666667, 105.01851166488379, 1110, 97.32050807568878]); - checkNext(['C', 1116.18802153517007, 93.74785217660714, 1120, 87.14531179816328, 1120, 80]); - }); - it("Snap.path.isPointInside", function () { - var path = "M10 10 H 50 V 40 H 10 L 10 10 Z" + - "M10 50 L 40 50 L 40 90 L 10 90 Z" + - "M10 100 C 30 120, 50 120, 50 100 Z" + - "M10 140 C 20 115, 30, 115, 40 140 S 50 165, 60 140 Z" + - "M80 10 Q 110 40, 140 10 Z" + - "M80 50 Q 90 70, 100 50 T 120 50 Z" + - "M80 80 A 10 10 0 0 0 120 80 Z"; - - expect(Snap.path.isPointInside(path, 15, 35)).to.be(true); - expect(Snap.path.isPointInside(path, 35, 75)).to.be(true); - expect(Snap.path.isPointInside(path, 15, 102)).to.be(true); - expect(Snap.path.isPointInside(path, 15, 135)).to.be(true); - expect(Snap.path.isPointInside(path, 50, 145)).to.be(true); - expect(Snap.path.isPointInside(path, 130, 15)).to.be(true); - expect(Snap.path.isPointInside(path, 110, 45)).to.be(true); - expect(Snap.path.isPointInside(path, 85, 55)).to.be(true); - expect(Snap.path.isPointInside(path, 115, 82)).to.be(true); - expect(Snap.path.isPointInside(path, 95, 98)).to.be(true); - - expect(Snap.path.isPointInside(path, 5, 5)).to.be(false); - expect(Snap.path.isPointInside(path, 25, 48)).to.be(false); - expect(Snap.path.isPointInside(path, 42, 87)).to.be(false); - expect(Snap.path.isPointInside(path, 12, 105)).to.be(false); - expect(Snap.path.isPointInside(path, 47, 113)).to.be(false); - expect(Snap.path.isPointInside(path, 47, 135)).to.be(false); - expect(Snap.path.isPointInside(path, 25, 142)).to.be(false); - expect(Snap.path.isPointInside(path, 15, 125)).to.be(false); - expect(Snap.path.isPointInside(path, 43, 152)).to.be(false); - expect(Snap.path.isPointInside(path, 58, 152)).to.be(false); - expect(Snap.path.isPointInside(path, 90, 21)).to.be(false); - expect(Snap.path.isPointInside(path, 130, 21)).to.be(false); - expect(Snap.path.isPointInside(path, 95, 48)).to.be(false); - expect(Snap.path.isPointInside(path, 110, 55)).to.be(false); - expect(Snap.path.isPointInside(path, 100, 70)).to.be(false); - expect(Snap.path.isPointInside(path, 115, 96)).to.be(false); - expect(Snap.path.isPointInside(path, 85, 96)).to.be(false); - - // bug #248 - expect(Snap.path.isPointInside("M1.4315332974182866,4.405806462382467 L57.26133189673147,176.23225849529868 A185.30156250000002,185.30156250000002 0 0 1 -172.2890356108522,-68.21405480708441 L-4.307225890271305,-1.7053513701771101 A4.6325390625,4.6325390625 0 0 0 1.4315332974182866,4.405806462382467 Z", -58.296875, 70.96875)).to.be(true); - }); - - it("Snap.path.intersection", function () { - var path1 = "M10 10 H 50 V 40 H 10 L 10 10 Z" + - "M10 50 L 40 50 L 40 90 L 10 90 Z" + - "M10 100 C 30 120, 50 120, 50 100 Z" + - "M10 140 C 20 115, 30, 115, 40 140 S 50 165, 60 140 Z" + - "M80 10 Q 110 40, 140 10 Z" + - "M80 50 Q 90 70, 100 50 T 120 50 Z" + - "M80 80 A 10 10 0 0 0 120 80 Z"; - var path2 = "M10,0 L80,200 L20, 200 L30, 0 L110, 15 L90, 150"; - var intersection = Snap.path.intersection(path1, path2); - expect(intersection.length).to.be(22); - var first = intersection[0]; - expect(first.x).to.be.a('number'); - expect(first.y).to.be.a('number'); - expect(first.t1).to.be.a('number'); - expect(first.t2).to.be.a('number'); - expect(first.segment1).to.be.a('number'); - expect(first.segment2).to.be.a('number'); - expect(first.bez1).to.be.an('array'); - expect(first.bez2).to.be.an('array'); - - var checkXY = function(index, x, y) { - expect(+intersection[index].x.toFixed(2)).to.be(x); - expect(+intersection[index].y.toFixed(2)).to.be(y); - } - - checkXY(0, 13.5, 10); - checkXY(1, 29.5, 10); - checkXY(2, 24, 40); - checkXY(3, 28, 40); - checkXY(4, 27.5, 50); - checkXY(5, 27.5, 50); - checkXY(6, 40, 85.71); - checkXY(7, 25.5, 90); - checkXY(8, 48.06, 108.75); - checkXY(9, 24.46, 110.77); - checkXY(10, 45, 100); - checkXY(11, 25, 100); - checkXY(12, 23.91, 121.7); - checkXY(13, 59.46, 141.31); - checkXY(14, 59, 140); - checkXY(15, 23, 140); - checkXY(16, 108.55, 24.82); - checkXY(17, 83.33, 10); - checkXY(18, 106, 42); - checkXY(19, 104.81, 50); - checkXY(20, 97.49, 99.44); - checkXY(21, 100.37, 80); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/primitives.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/primitives.js deleted file mode 100644 index a5f7a818..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/primitives.js +++ /dev/null @@ -1,141 +0,0 @@ -describe("Primitives creation", function () { - var s; - beforeEach(function () { - s = Snap(100, 100); - }); - afterEach(function () { - s.remove(); - }); - it("creates a circle", function () { - var c = s.circle(10, 20, 30); - var C = document.querySelector("circle"); - expect(C).to.not.be(null); - expect(C.getAttribute("cx")).to.be("10"); - expect(C.getAttribute("cy")).to.be("20"); - expect(C.getAttribute("r")).to.be("30"); - }); - it("creates a rect", function () { - var c = s.rect(10, 20, 30, 40, 5); - var C = document.querySelector("rect"); - expect(C).to.not.be(null); - expect(C.getAttribute("x")).to.be("10"); - expect(C.getAttribute("y")).to.be("20"); - expect(C.getAttribute("width")).to.be("30"); - expect(C.getAttribute("height")).to.be("40"); - expect(C.getAttribute("rx")).to.be("5"); - expect(C.getAttribute("ry")).to.be("5"); - }); - it("creates a rect with different rx & ry", function () { - var c = s.rect(10, 20, 30, 40, 5, 6); - var C = document.querySelector("rect"); - expect(C).to.not.be(null); - expect(C.getAttribute("x")).to.be("10"); - expect(C.getAttribute("y")).to.be("20"); - expect(C.getAttribute("width")).to.be("30"); - expect(C.getAttribute("height")).to.be("40"); - expect(C.getAttribute("rx")).to.be("5"); - expect(C.getAttribute("ry")).to.be("6"); - }); - it("creates a ellipse", function () { - var c = s.ellipse(10, 20, 30, 40); - var C = document.querySelector("ellipse"); - expect(C).to.not.be(null); - expect(C.getAttribute("cx")).to.be("10"); - expect(C.getAttribute("cy")).to.be("20"); - expect(C.getAttribute("rx")).to.be("30"); - expect(C.getAttribute("ry")).to.be("40"); - }); - it("creates a ellipse", function () { - var c = s.ellipse(10, 20, 30, 40); - var C = document.querySelector("ellipse"); - expect(C).to.not.be(null); - expect(C.getAttribute("cx")).to.be("10"); - expect(C.getAttribute("cy")).to.be("20"); - expect(C.getAttribute("rx")).to.be("30"); - expect(C.getAttribute("ry")).to.be("40"); - }); - it("creates a path", function () { - var c = s.path("M10,10,50,60"); - var C = document.querySelector("path"); - expect(C).to.not.be(null); - expect(C.getAttribute("d")).to.be("M10,10,50,60"); - expect(C.getBBox().width).to.be(40); - }); - it("creates a line", function () { - var c = s.line(10, 10, 50, 60); - var C = document.querySelector("line"); - expect(C).to.not.be(null); - expect(C.getAttribute("x1")).to.be("10"); - expect(C.getBBox().width).to.be(40); - }); - it("creates a polyline", function () { - var c = s.polyline(10, 10, 50, 60, 70, 80); - var C = document.querySelector("polyline"); - expect(C).to.not.be(null); - expect(C.getAttribute("points")).to.be("10,10,50,60,70,80"); - }); - it("creates a polygon", function () { - var c = s.polygon(10, 10, 50, 60, 70, 80); - var C = document.querySelector("polygon"); - expect(C).to.not.be(null); - expect(C.getAttribute("points")).to.be("10,10,50,60,70,80"); - }); - it("creates a group", function () { - var c = s.group(); - var C = document.querySelector("g"); - expect(C).to.not.be(null); - }); - it("creates and fills a group", function () { - var c = s.group(), - a = s.circle(10, 10, 10), - b = s.circle(20, 20, 10), - C = document.querySelector("g"); - c.add(a, b); - expect(C).to.not.be(null); - expect(C.childNodes.length).to.be(2); - }); - it("creates and fills a group on creation", function () { - var circle1 = s.circle(10, 10, 10); - var circle2 = s.circle(20, 10, 10); - var group = s.g(circle1, circle2); - var groupEl = document.querySelector("g"); - expect(groupEl).to.not.be(null); - expect(groupEl.childNodes.length).to.be(2); - }); - it("creates a text", function () { - var c = s.text(10, 10, "test"); - var C = document.querySelector("text"); - expect(C).to.not.be(null); - expect(C.getAttribute("x")).to.be("10"); - expect(C.textContent).to.be("test"); - }); - it("creates a mask", function () { - var c = s.mask(); - var C = document.querySelector("mask"); - expect(C).to.not.be(null); - expect(C).to.be(c.node); - }); - it("creates a pattern", function () { - var c = s.ptrn(); - var C = document.querySelector("pattern"); - expect(C).to.not.be(null); - expect(C).to.be(c.node); - }); - it("creates a pattern(x, y)", function() { - var c = s.ptrn(100, 200); - expect(c.node.nodeName).to.be("pattern"); - expect(c.node.x.baseVal.value).to.be(100); - expect(c.node.y.baseVal.value).to.be(200); - expect(c.node.parentNode).to.be(s.node); - }); - it("creates a pattern(x, y, w, h, viewbox)", function() { - var c = s.ptrn(100, 200, 300, 400, 10, 20, 30, 40); - expect(c.node.nodeName).to.be("pattern"); - expect(c.node.x.baseVal.value).to.be(100); - expect(c.node.y.baseVal.value).to.be(200); - expect(c.node.width.baseVal.value).to.be(300); - expect(c.node.height.baseVal.value).to.be(400); - expect(c.node.getAttribute("viewBox")).to.be("10 20 30 40"); - expect(c.node.parentNode).to.be(s.node); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/res/file-for-ajax.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/res/file-for-ajax.txt deleted file mode 100644 index 0f0c913d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/res/file-for-ajax.txt +++ /dev/null @@ -1 +0,0 @@ -success \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/set.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/set.js deleted file mode 100644 index f63cb76c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/set.js +++ /dev/null @@ -1,221 +0,0 @@ -describe("Set methods", function () { - var s; - beforeEach(function () { - s = Snap(100, 100); - }); - afterEach(function () { - s.remove(); - }); - it("Set.animate", function(done) { - var circle = s.circle(10, 20, 30); - var square = s.rect(60, 60, 30, 30); - var set = Snap.set(circle, square); - var result = set.animate({opacity: .5}, 10); - setTimeout(function() { - result.forEach(function (el) { - var o = el.attr("opacity"); - expect(o).to.be("0.5"); - }); - done(); - }, 50); - expect(result).to.be(set); - }); - it("Set.animate - with callback", function(done) { - var circle = s.circle(10, 20, 30); - var square = s.rect(60, 60, 30, 30); - var set = Snap.set(circle, square); - var result = set.animate({opacity: .5}, 10, function() { - result.forEach(function (el) { - var o = el.attr("opacity"); - expect(o).to.be("0.5"); - }); - done(); - }); - expect(result).to.be(set); - }); - it("Set.animate - with easing", function(done) { - var circle = s.circle(10, 20, 30); - var square = s.rect(60, 60, 30, 30); - var set = Snap.set(circle, square); - var result = set.animate({opacity: .5}, 10, mina.easein); - setTimeout(function() { - result.forEach(function (el) { - var o = el.attr("opacity"); - expect(o).to.be("0.5"); - }); - done(); - }, 50); - expect(result).to.be(set); - }); - it("Set.animate - with callback & easing", function(done) { - var circle = s.circle(10, 20, 30); - var square = s.rect(60, 60, 30, 30); - var set = Snap.set(circle, square); - var result = set.animate({opacity: .5}, 10, mina.easeout, function() { - result.forEach(function (el) { - var o = el.attr("opacity"); - expect(o).to.be("0.5"); - }); - done(); - }); - expect(result).to.be(set); - }); - it("Set.clear", function() { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2); - expect(set.length).to.be(2); - set.clear(); - expect(set.length).to.be(0); - }); - it("Set.exclude", function() { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var rect3 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2, rect3); - expect(set.length).to.be(3); - var excluded = set.exclude(rect2); - expect(set.length).to.be(2); - expect(excluded).to.be(true); - excluded = set.exclude(rect2); - expect(set.length).to.be(2); - expect(excluded).to.be(false); - }); - it("Set.remove", function() { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var rect3 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2, rect3); - expect(set.length).to.be(3); - set.remove(); - expect(set.length).to.be(0); - expect(rect1.removed).to.be(true); - expect(rect2.removed).to.be(true); - expect(rect3.removed).to.be(true); - }); - it("Set.forEach", function() { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var rect3 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2, rect3); - var i = 0; - var arr = [rect1, rect2, rect3]; - var result = set.forEach(function(item) { - expect(arr[i]).to.be(item); - expect(this.isContext).to.be(true); - i++; - }, {isContext: true}); - expect(result).to.be(set); - expect(i).to.be(3); - }); - it("Set.pop", function() { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var rect3 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2, rect3); - expect(set.length).to.be(3); - var result = set.pop(); - expect(set.length).to.be(2); - expect(result).to.be(rect3); - expect(set[0]).to.be(rect1); - expect(set[1]).to.be(rect2); - result = set.pop(); - expect(set.length).to.be(1); - expect(result).to.be(rect2); - expect(set[0]).to.be(rect1); - }); - it("Set.push", function() { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var rect3 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2); - expect(set.length).to.be(2); - set.push(rect3); - expect(set.length).to.be(3); - expect(set[0]).to.be(rect1); - expect(set[1]).to.be(rect2); - expect(set[2]).to.be(rect3); - }); - it("Set.attr", function() { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2); - set.attr({"fill": "#ff0000"}); - expect(rect1.node.getAttribute("fill")).to.be("#ff0000"); - expect(rect2.node.getAttribute("fill")).to.be("#ff0000"); - set.attr({"stroke": "#0000ff"}); - expect(rect1.node.getAttribute("stroke")).to.be("#0000ff"); - expect(rect2.node.getAttribute("stroke")).to.be("#0000ff"); - }); - it("Set.bind", function() { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2); - - // Setting "stroke" on set only applies it to rect1 - set.bind("stroke", rect1); - // Setting "fill1" on set maps to fill attribute on rect1 - set.bind("fill1", rect1, "fill"); - // Setting "fill2" on set maps to fill attribute on rect2 - set.bind("fill2", function(v) { rect2.attr({"fill": v}); }); - - // Set everything to black - rect1.attr({"fill": "#000000", "stroke": "#000000"}); - rect2.attr({"fill": "#000000", "stroke": "#000000"}); - - set.attr({"fill1": "#00ff00"}); - expect(rect1.node.getAttribute("fill")).to.be("#00ff00"); - expect(rect2.node.getAttribute("fill")).to.be("#000000"); - - // Will trigger the fallback implementation of attr which is - // to set that attribute on all elements in the set. - set.attr({"fill": "#ff0000"}); - expect(rect1.node.getAttribute("fill")).to.be("#ff0000"); - expect(rect2.node.getAttribute("fill")).to.be("#ff0000"); - - set.attr({"fill2": "#00ff00"}); - expect(rect1.node.getAttribute("fill")).to.be("#ff0000"); - expect(rect2.node.getAttribute("fill")).to.be("#00ff00"); - - set.attr({"stroke": "#0000ff"}); - expect(rect1.node.getAttribute("stroke")).to.be("#0000ff"); - expect(rect2.node.getAttribute("stroke")).to.be("#000000"); - }); - it("Set.splice - remove only", function() { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var rect3 = s.rect(10, 20, 30, 40); - var rect4 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2, rect3, rect4); - var removedSet = set.splice(1, 2); - expect(set.length).to.be(2); - expect(set[0]).to.be(rect1); - expect(set[1]).to.be(rect4); - expect(removedSet.length).to.be(2); - expect(removedSet[0]).to.be(rect2); - expect(removedSet[1]).to.be(rect3); - var emptySet = set.splice(0, 0); - expect(set.length).to.be(2); - expect(emptySet.length).to.be(0); - }); - it("Set.splice - remove & insert", function() { - var rect1 = s.rect(10, 20, 30, 40); - var rect2 = s.rect(10, 20, 30, 40); - var rect3 = s.rect(10, 20, 30, 40); - var rect4 = s.rect(10, 20, 30, 40); - var set = Snap.set(rect1, rect2, rect3); - var removedSet = set.splice(2, 1, rect4); - expect(set.length).to.be(3); - expect(set[0]).to.be(rect1); - expect(set[1]).to.be(rect2); - expect(set[2]).to.be(rect4); - removedSet = set.splice(0, 3, rect4, rect3, rect2, rect1); - expect(set[0]).to.be(rect4); - expect(set[1]).to.be(rect3); - expect(set[2]).to.be(rect2); - expect(set[3]).to.be(rect1); - expect(removedSet[0]).to.be(rect1); - expect(removedSet[1]).to.be(rect2); - expect(removedSet[2]).to.be(rect4); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/snap-tests.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/snap-tests.js deleted file mode 100644 index c1c6ccb2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/snap-tests.js +++ /dev/null @@ -1,413 +0,0 @@ -describe("Snap methods", function () { - it("Snap.Matrix - six params", function () { - var matrix = new Snap.Matrix(1, 2, 3, 4, 5, 6); - expect(matrix).to.eql({ - a: 1, - b: 2, - c: 3, - d: 4, - e: 5, - f: 6 - }); - }); - it("Snap.Matrix - SVGMatrix param", function () { - var svgMatrix = new Snap(10, 10).node.createSVGMatrix(); - var matrix = new Snap.Matrix(svgMatrix); - expect(matrix).to.eql({ - a: 1, - b: 0, - c: 0, - d: 1, - e: 0, - f: 0 - }); - }); - it("Snap.ajax - no postData", function(done) { - var xhr = Snap.ajax('./res/file-for-ajax.txt', function(xhr) { - var responseText = xhr.responseText; - expect(responseText).to.be('success'); - expect(this.isContext).to.be(true); - done(); - }, {'isContext': true}); - expect(xhr).to.be.an('object'); - }); - it("Snap.ajax - with object postData", function(done) { - var xhr = Snap.ajax('./res/file-for-ajax.txt', {foo: 'bar'}, function(xhr) { - var responseText = xhr.responseText; - expect(responseText).to.be('success'); - expect(this.isContext).to.be(true); - done(); - }, {'isContext': true}); - expect(xhr).to.be.an('object'); - }); - it("Snap.ajax - with string postData", function(done) { - var xhr = Snap.ajax('./res/file-for-ajax.txt', 'foo=bar', function(xhr) { - var responseText = xhr.responseText; - expect(responseText).to.be('success'); - expect(this.isContext).to.be(true); - done(); - }, {'isContext': true}); - expect(xhr).to.be.an('object'); - }); - - var validateMina = function(minaObj) { - expect(minaObj).to.be.an('object'); - expect(minaObj.id).to.be.a('string'); - expect(minaObj.duration).to.be.a('function'); - expect(minaObj.easing).to.be.a('function'); - expect(minaObj.speed).to.be.a('function'); - expect(minaObj.status).to.be.a('function'); - expect(minaObj.stop).to.be.a('function'); - }; - - it("Snap.animate - numbers, no easing or callback", function(done) { - var n; - var minaObj = Snap.animate(10, 20, function(newN) { n = newN; }, 50); - setTimeout(function() { - expect(n).to.be(20); - done(); - }, 100); - validateMina(minaObj); - }); - it("Snap.animate - numbers, callback", function(done) { - var n; - var minaObj = Snap.animate(10, 20, function(newN) { n = newN; }, 50, function() { - expect(n).to.be(20); - done(); - }); - validateMina(minaObj); - }); - it("Snap.animate - numbers, easing", function(done) { - var n; - var minaObj = Snap.animate(10, 20, function(newN) { n = newN; }, 50, mina.easeinout); - setTimeout(function() { - expect(n).to.be(20); - done(); - }, 100); - validateMina(minaObj); - }); - it("Snap.animate - numbers, easing & callback", function(done) { - var n; - var minaObj = Snap.animate(10, 20, function(newN) { n = newN; }, 50, mina.bounce, function() { - expect(n).to.be(20); - done(); - }); - validateMina(minaObj); - }); - it("Snap.animate - arrays, no easing or callback", function(done) { - var n1, n2; - var minaObj = Snap.animate([5, 10], [10, 20], function(nArr) { n1 = nArr[0]; n2 = nArr[1]; }, 50); - setTimeout(function() { - expect(n1).to.be(10); - expect(n2).to.be(20); - done(); - }, 100); - validateMina(minaObj); - }); - it("Snap.animate - arrays, callback", function(done) { - var n1, n2; - var minaObj = Snap.animate([5, 10], [10, 20], function(nArr) {n1 = nArr[0]; n2 = nArr[1]; }, 50, function() { - expect(n1).to.be(10); - expect(n2).to.be(20); - done(); - }); - validateMina(minaObj); - }); - it("Snap.animate - arrays, easing", function(done) { - var n1, n2; - var minaObj = Snap.animate([5, 10], [10, 20], function(nArr) { n1 = nArr[0]; n2 = nArr[1]; }, 50, mina.easeinout); - setTimeout(function() { - expect(n1).to.be(10); - expect(n2).to.be(20); - done(); - }, 100); - validateMina(minaObj); - }); - it("Snap.animate - arrays, easing & callback", function(done) { - var n1, n2; - var minaObj = Snap.animate([5, 10], [10, 20], function(nArr) { n1 = nArr[0]; n2 = nArr[1]; }, 50, mina.backin, function() { - expect(n1).to.be(10); - expect(n2).to.be(20); - done(); - }); - validateMina(minaObj); - }); - it("Snap.animation - no easing or callback", function() { - var anim = Snap.animation({ foo: "bar" }, 100); - expect(anim).to.be.an("object"); - expect(anim.dur).to.be(100); - expect(anim.attr.foo).to.be("bar"); - }); - it("Snap.animation - with easing", function() { - var anim = Snap.animation({ foo: "bar" }, 100, mina.easein); - expect(anim).to.be.an("object"); - expect(anim.dur).to.be(100); - expect(anim.attr.foo).to.be("bar"); - expect(anim.easing).to.be.a("function"); - }); - it("Snap.animation - with callback", function() { - var cb = function(){}; - var anim = Snap.animation({ foo: "bar" }, 100, cb); - expect(anim).to.be.an("object"); - expect(anim.dur).to.be(100); - expect(anim.attr.foo).to.be("bar"); - expect(anim.callback).to.be.a("function"); - }); - it("Snap.animation - with easing & callback", function() { - var cb = function(){}; - var anim = Snap.animation({ foo: "bar" }, 100, mina.linear, cb); - expect(anim).to.be.an("object"); - expect(anim.dur).to.be(100); - expect(anim.attr.foo).to.be("bar"); - expect(anim.easing).to.be.a("function"); - expect(anim.callback).to.be.a("function"); - expect(anim.easing).to.not.be(anim.callback); - }); - it("Snap.deg", function() { - expect(Snap.deg(Math.PI)).to.be(180); - expect(Snap.deg(Math.PI / 2)).to.be(90); - expect(Snap.deg(Math.PI / 4)).to.be(45); - expect(Snap.deg(Math.PI * 2)).to.be(0); - }); - it("Snap.rad", function() { - expect(Snap.rad(180)).to.be(Math.PI); - expect(Snap.rad(90)).to.be(Math.PI / 2); - expect(Snap.rad(45)).to.be(Math.PI / 4); - expect(Snap.rad(0)).to.be(0); - }); - it("Snap.format", function() { - var outputStr; - outputStr = Snap.format("{x}", {x: 1}); - expect(outputStr).to.be("1"); - outputStr = Snap.format("{a['foo']}", { - a: { - foo: 'bar' - } - }); - expect(outputStr).to.be("bar"); - outputStr = Snap.format("M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z", { - x: 10, - y: 20, - dim: { - width: 40, - height: 50, - "negative width": -40 - } - }); - expect(outputStr).to.be("M10,20h40v50h-40z"); - }); - it("Snap.fragment", function() { - var frag = Snap.fragment('', ''); - expect(frag).to.be.an("object"); - expect(frag.node.childNodes.length).to.be(2); - expect(frag.node.firstChild.nodeName).to.be("g"); - expect(frag.node.firstChild.getAttribute("class")).to.be("foo"); - expect(frag.node.lastChild.getAttribute("class")).to.be("foo2"); - frag = Snap.fragment(''); - var rectWidth = frag.select('rect').attr('width'); - expect(rectWidth).to.be("10"); - }); - it("Snap.is", function() { - var undef; - expect(Snap.is("foo", "string")).to.be.ok(); - expect(Snap.is(123, "number")).to.be.ok(); - expect(Snap.is({}, "object")).to.be.ok(); - expect(Snap.is([], "array")).to.be.ok(); - expect(Snap.is([], "object")).to.be.ok(); - expect(Snap.is(null, "null")).to.be.ok(); - expect(Snap.is(false, "boolean")).to.be.ok(); - expect(Snap.is(undef, "undefined")).to.be.ok(); - expect(Snap.is(function(){}, "function")).to.be.ok(); - expect(Snap.is(function(){}, "object")).to.be.ok(); - }); - it("Snap.load - with context", function(done) { - Snap.load('./res/external-svg.svg', function(fragment) { - expect(fragment.node.querySelector("svg")).to.not.be(null); - expect(this.myContext).to.be(true); - done(); - }, {myContext: true}); - }); - it("Snap.load - without context", function(done) { - Snap.load('./res/external-svg.svg', function(fragment) { - expect(fragment.node.querySelector("svg")).to.not.be(null); - done(); - }); - }); - it("Snap.parse", function() { - var frag = Snap.parse(''); - expect(frag).to.be.an("object"); - expect(frag.node.childNodes.length).to.be(1); - expect(frag.node.firstChild.nodeName).to.be("g"); - expect(frag.node.firstChild.getAttribute("class")).to.be("foo"); - frag = Snap.parse(''); - var rectWidth = frag.select('rect').attr('width'); - expect(rectWidth).to.be("10"); - }); - it("Snap.parsePathString - string", function() { - var pathArrs = Snap.parsePathString( - "M1 2" + - "m3 4" + - "L 5, 6" + - "l 7, 8" + - "H 9" + - "h 10" + - "V 11" + - "v 12" + - "C 13 14, 15 16, 17 18" + - "c 19 20, 21 22, 23 24" + - "S 25 26, 27 28" + - "s 29 30, 31 32" + - "Q 33 34, 35 36" + - "q 37 38, 39 40" + - "T 41 42" + - "t 43 44" + - "A 45 46 47 0 1 48 49" + - "a 50 51 52 1 0 53 54" + - "Z"); - expect(pathArrs[0]).to.eql(["M", 1, 2]); - expect(pathArrs[1]).to.eql(["m", 3, 4]); - expect(pathArrs[2]).to.eql(["L", 5, 6]); - expect(pathArrs[3]).to.eql(["l", 7, 8]); - expect(pathArrs[4]).to.eql(["H", 9]); - expect(pathArrs[5]).to.eql(["h", 10]); - expect(pathArrs[6]).to.eql(["V", 11]); - expect(pathArrs[7]).to.eql(["v", 12]); - expect(pathArrs[8]).to.eql(["C", 13, 14, 15, 16, 17, 18]); - expect(pathArrs[9]).to.eql(["c", 19, 20, 21, 22, 23, 24]); - expect(pathArrs[10]).to.eql(["S", 25, 26, 27, 28]); - expect(pathArrs[11]).to.eql(["s", 29, 30, 31, 32]); - expect(pathArrs[12]).to.eql(["Q", 33, 34, 35, 36]); - expect(pathArrs[13]).to.eql(["q", 37, 38, 39, 40]); - expect(pathArrs[14]).to.eql(["T", 41, 42]); - expect(pathArrs[15]).to.eql(["t", 43, 44]); - expect(pathArrs[16]).to.eql(["A", 45, 46, 47, 0, 1, 48, 49]); - expect(pathArrs[17]).to.eql(["a", 50, 51, 52, 1, 0, 53, 54]); - expect(pathArrs[18]).to.eql(["Z"]); - }); - it("Snap.parsePathString - array", function() { - var pathArrs = Snap.parsePathString(["M1 2"]); - expect(pathArrs[0]).to.eql(["M", 1, 2]); - }); - it("Snap.parseTransformString - string", function() { - var matrix = new Snap.Matrix(1, 0, 0, 2, 0, 0); - var str = matrix.toTransformString(); - var output = Snap.parseTransformString(str); - expect(output[0]).to.eql(['s', 1, 2, 0, 0]); - }); - it("Snap.parseTransformString - array", function() { - var output = Snap.parseTransformString(['s', 1, 2, 0, 0]); - expect(output[0]).to.eql(['s', 1, 2, 0, 0]); - }); - it("Snap.select", function() { - var s = Snap(10, 10); - var group1 = s.group(); - var group2 = s.group(); - var group3 = s.group(); - var circle1 = s.circle(10, 20, 30).attr({ - 'class': 'circle-one' - }); - var circle2 = s.circle(5, 10, 25).attr({ - 'class': 'circle-two' - }); - group1.add(group2); - group2.add(group3); - group2.add(circle1); - group3.add(circle2); - var c1 = Snap.select('.circle-one'); - expect(circle1).to.be(c1); - var c2 = Snap.select('.circle-two'); - expect(circle2).to.be(c2); - s.remove(); - }); - it("Snap.selectAll", function() { - var s = Snap(10, 10); - var group1 = s.group(); - var group2 = s.group(); - var group3 = s.group(); - var circle1 = s.circle(10, 20, 30).attr({ - 'class': 'circle-one' - }); - var circle2 = s.circle(5, 10, 25).attr({ - 'class': 'circle-two' - }); - group1.add(group2); - group2.add(group3); - group2.add(circle1); - group3.add(circle2); - var circles = Snap.selectAll('circle'); - expect(circles.length).to.be(2); - expect(circles).to.contain(circle1); - expect(circles).to.contain(circle2); - s.remove(); - }); - it("Snap.snapTo - number, no tolerance", function() { - expect(Snap.snapTo(100, -5)).to.be(0); - expect(Snap.snapTo(100, 0.0001)).to.be(0); - expect(Snap.snapTo(100, 9)).to.be(0); - expect(Snap.snapTo(100, 50)).to.be(50); - expect(Snap.snapTo(100, 75)).to.be(75); - expect(Snap.snapTo(100, 90)).to.be(90); - expect(Snap.snapTo(100, 91)).to.be(100); - expect(Snap.snapTo(100, 95)).to.be(100); - expect(Snap.snapTo(100, 1204)).to.be(1200); - }); - it("Snap.snapTo - array, no tolerance", function() { - var grid = [0, 55, 200]; - expect(Snap.snapTo(grid, -5)).to.be(0); - expect(Snap.snapTo(grid, 0.0001)).to.be(0); - expect(Snap.snapTo(grid, 9)).to.be(0); - expect(Snap.snapTo(grid, 50)).to.be(55); - expect(Snap.snapTo(grid, 75)).to.be(75); - expect(Snap.snapTo(grid, 90)).to.be(90); - expect(Snap.snapTo(grid, 91)).to.be(91); - expect(Snap.snapTo(grid, 195)).to.be(200); - expect(Snap.snapTo(grid, 1204)).to.be(1204); - }); - it("Snap.snapTo - number, with tolerance", function() { - expect(Snap.snapTo(100, 95, 0)).to.be(95); - expect(Snap.snapTo(100, 95, 5)).to.be(95); - expect(Snap.snapTo(100, 95, 6)).to.be(100); - expect(Snap.snapTo(100, 105, 6)).to.be(100); - expect(Snap.snapTo(100, 105, 5)).to.be(105); - expect(Snap.snapTo(100, 105, 0)).to.be(105); - // expect(Snap.snapTo(10, 19, 50)).to.be(20); // TODO: Find out what tolerance > grid should do - }); - it("Snap.snapTo - array, with tolerance", function() { - var grid = [0, 55, 200]; - expect(Snap.snapTo(grid, -5, 20)).to.be(0); - expect(Snap.snapTo(grid, -5, 3)).to.be(-5); - expect(Snap.snapTo(grid, 0.0001, 0.00001)).to.be(0.0001); - expect(Snap.snapTo(grid, 0.0001, 1)).to.be(0); - expect(Snap.snapTo(grid, 9, 9)).to.be(0); - expect(Snap.snapTo(grid, 9, 10.5)).to.be(0); - expect(Snap.snapTo(grid, 50, 6)).to.be(55); - expect(Snap.snapTo(grid, 50, 1)).to.be(50); - expect(Snap.snapTo(grid, 201, 0.5)).to.be(201); - expect(Snap.snapTo(grid, 199, 1)).to.be(200); - expect(Snap.snapTo(grid, 299, 100)).to.be(200); - }); - it("Snap.path.getBBox", function() { - // same as 10,20,30,40 rect - var bbox = Snap.path.getBBox("M10,20h30v40h-30z"); - expect(bbox.x).to.eql(10); - expect(bbox.y).to.eql(20); - expect(bbox.width).to.eql(30); - expect(bbox.height).to.eql(40); - expect(bbox.x2).to.eql(10 + 30); - expect(bbox.y2).to.eql(20 + 40); - }); - it("Snap.angle - 2 points", function() { - var angle = Snap.angle(0, 0, 10, 10); - expect(angle).to.not.be(0); - expect(angle % 45).to.be(0); - angle = Snap.angle(0, 0, 10, 0); - expect(angle % 90).to.be(0); - }); - it("Snap.angle - 3 points", function() { - var angle = Snap.angle(10, 0, 0, 10, 0, 0); - expect(angle).to.not.be(0); - expect(angle % 45).to.be(0); - angle = Snap.angle(10, 0, 0, 10, 0, 0); - expect(Math.abs(angle)).to.be(90); - }); -}); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/system.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/system.js deleted file mode 100644 index 7e06d5d0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/system.js +++ /dev/null @@ -1,11 +0,0 @@ -describe("System check", function () { - it("Snap exists", function () { - expect(Snap).to.be.a("function"); - }); - it("eve exists", function () { - expect(eve).to.be.a("function"); - }); - it("mina exists", function () { - expect(mina).to.be.a("function"); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/test.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/test.html deleted file mode 100644 index 991f3535..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/test/test.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - Snap Tests - - - - - -
            - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/ttt.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/ttt.html deleted file mode 100644 index 146a5fea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/snapsvg/ttt.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - Pattern - - - - - - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/.npmignore deleted file mode 100644 index 55a736ba..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -support -test -examples -.gitignore diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/.travis.yml deleted file mode 100644 index 93286a05..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -sudo: false -before_install: - - npm install -g npm@'>=1.4.3' -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.12" - - "4" - -git: - depth: 1 - -#matrix: - #fast_finish: true - #allow_failures: - #- node_js: "0.11" - -notifications: - irc: "irc.freenode.org#socket.io" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/History.md deleted file mode 100644 index b379ef35..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/History.md +++ /dev/null @@ -1,571 +0,0 @@ - -1.4.8 / 2016-06-23 -================== - - * package: bump `engine.io` - -1.4.7 / 2016-06-23 -================== - - * package: bump `engine.io` - -1.4.6 / 2016-05-02 -================== - - * package: bump engine.io - -1.4.5 / 2016-01-26 -================== - - * fix closing the underlying `http.Server` - -1.4.4 / 2016-01-10 -================== - - * package: bump `engine.io` - -1.4.3 / 2016-01-08 -================== - - * bump `socket.io-client` - -1.4.2 / 2016-01-07 -================== - - * bump `engine.io` - -1.4.1 / 2016-01-07 -================== - - * version bump - -1.4.0 / 2015-11-28 -================== - - * socket.io: increase large binary data test timeout - * package: bump `engine.io` for release - * trigger callback even when joining an already joined room - * package: bump parser - * namespace: clear rooms flag after a clients call (fixes #1978) - * package: bump `socket.io-parser` - * fixed tests with large data - * fixed a typo in the example code - * package: bump mocha - * package: bump `has-binary` and `zuul-ngrok` - * package: bump `engine.io` and `socket.io-client` - * README: clarified documentation of Socket.in - * README: fixed up legacy repo links - * test: better timeout for stress test - * socket: don't set request property which has a getter - * removed proxy index file - * support flags on namespace - * improve Socket#packet and Client#packet - * socket: warn node_redis-style about missing `error` - * test: added failing test - * test: increase timeout for large binary data test - * package: bump `has-binary` to work with all objects (fixes #1955) - * fix origin verification default https port [evanlucas] - * support compression [nkzawa] - * changed type of `Client#sockets`, `Namespace#sockets` and `Socket#rooms` to maps (instead of arrays) - -1.3.7 / 2015-09-21 -================== - - * package: bump `socket.io-client` for node4 compatibility - * package: bump `engine.io` for node4 compatibility - -1.3.6 / 2015-07-14 -================== - - * package: bump `engine.io` to fix build on windows - -1.3.5 / 2015-03-03 -================== - - * package: bump `socket.io-parser` - -1.3.4 / 2015-02-14 -================== - - * package: bump `socket.io-client` - -1.3.3 / 2015-02-03 -================== - - * socket: warn node_redis-style about missing `error` - * package: bump parser to better handle bad binary packets - -1.3.2 / 2015-01-19 -================== - - * no change on this release - -1.3.1 / 2015-01-19 -================== - - * no change on this release - * package: bump `engine.io` - -1.3.0 / 2015-01-19 -================== - - * package: bump `engine.io` - * add test for reconnection after server restarts [rase-] - * update license with up-to-date year range [fay-jai] - * fix leaving unknown rooms [defunctzombie] - * allow null origins when allowed origins is a function [drewblaisdell] - * fix tests on node 0.11 - * package: fix `npm test` to run on windows - * package: bump `debug` v2.1.0 [coderaiser] - * added tests for volatile [rase-] - -1.2.1 / 2014-11-21 -================== - - * fix protocol violations and improve error handling (GH-1880) - * package: bump `engine.io` for websocket leak fix [3rd-Eden] - * style tweaks - -1.2.0 / 2014-10-27 -================== - - * package: bump `engine.io` - * downloads badge - * add test to check that empty rooms are autopruned - * added Server#origins(v:Function) description for dynamic CORS - * added test coverage for Server#origins(function) for dynamic CORS - * added optional Server#origins(function) for dynamic CORS - * fix usage example for Server#close - * package: fix main file for example application 'chat' - * package: bump `socket.io-parser` - * update README http ctor to createServer() - * bump adapter with a lot of fixes for room bookkeeping - -1.1.0 / 2014-09-04 -================== - - * examples: minor fix of escaping - * testing for equivalence of namespaces starting with / or without - * update index.js - * added relevant tests - * take "" and "/" as equivalent namespaces on server - * use svg instead of png to get better image quality in readme - * make CI build faster - * fix splice arguments and `socket.rooms` value update in `socket.leaveAll`. - * client cannot connect to non-existing namespaces - * bump engine.io version to get the cached IP address - * fixed handshake object address property and made the test case more strict. - * package: bump `engine.io` - * fixed the failing test where server crashes on disconnect involving connectBuffer - * npmignore: ignore `.gitignore` (fixes #1607) - * test: added failing case for `socket.disconnect` and nsps - * fix repo in package.json - * improve Close documentation - * use ephemeral ports - * fix: We should use the standard http protocol to handler the etag header. - * override default browser font-family for inputs - * update has-binary-data to 1.0.3 - * add close specs - * add ability to stop the http server even if not created inside socket.io - * make sure server gets close - * Add test case for checking that reconnect_failed is fired only once upon failure - * package: bump `socket.io-parser` for `component-emitter` dep fix - -1.0.6 / 2014-06-19 -================== - - * package: bump `socket.io-client` - -1.0.5 / 2014-06-16 -================== - - * package: bump `engine.io` to fix jsonp `\n` bug and CORS warnings - * index: fix typo [yanatan16] - * add `removeListener` to blacklisted events - * examples: clearer instructions to install chat example - * index: fix namespace `connectBuffer` issue - -1.0.4 / 2014-06-02 -================== - - * package: bump socket.io-client - -1.0.3 / 2014-05-31 -================== - - * package: bump `socket.io-client` - * package: bump `socket.io-parser` for binary ACK fix - * package: bump `engine.io` for binary UTF8 fix - * example: fix XSS in chat example - -1.0.2 / 2014-05-28 -================== - - * package: bump `socket.io-parser` for windows fix - -1.0.1 / 2014-05-28 -================== - - * bump due to bad npm tag - -1.0.0 / 2014-05-28 -================== - - * stable release - -1.0.0-pre5 / 2014-05-22 -======================= - - * package: bump `socket.io-client` for parser fixes - * package: bump `engine.io` - -1.0.0-pre4 / 2014-05-19 -======================= - - * package: bump client - -1.0.0-pre3 / 2014-05-17 -======================= - - * package: bump parser - * package: bump engine.io - -1.0.0-pre2 / 2014-04-27 -======================= - - * package: bump `engine.io` - * added backwards compatible of engine.io maxHttpBufferSize - * added test that server and client using same protocol - * added support for setting allowed origins - * added information about logging - * the set function in server can be used to set some attributes for BC - * fix error in callback call 'done' instead of 'next' in docs - * package: bump `socket.io-parser` - * package: bump `expect.js` - * added some new tests, including binary with acks - -1.0.0-pre / 2014-03-14 -====================== - - * implemented `engine.io` - * implemented `socket.io-adapter` - * implemented `socket.io-protocol` - * implemented `debug` and improved instrumentation - * added binary support - * added new `require('io')(srv)` signature - * simplified `socket.io-client` serving - -0.9.14 / 2013-03-29 -=================== - - * manager: fix memory leak with SSL [jpallen] - -0.9.13 / 2012-12-13 -=================== - - * package: fixed `base64id` requirement - -0.9.12 / 2012-12-13 -=================== - - * manager: fix for latest node which is returning a clone with `listeners` [viirya] - -0.9.11 / 2012-11-02 -=================== - - * package: move redis to optionalDependenices [3rd-Eden] - * bumped client - -0.9.10 / 2012-08-10 -=================== - - * Don't lowercase log messages - * Always set the HTTP response in case an error should be returned to the client - * Create or destroy the flash policy server on configuration change - * Honour configuration to disable flash policy server - * Add express 3.0 instructions on Readme.md - * Bump client - -0.9.9 / 2012-08-01 -================== - - * Fixed sync disconnect xhrs handling - * Put license text in its own file (#965) - * Add warning to .listen() to ease the migration to Express 3.x - * Restored compatibility with node 0.4.x - -0.9.8 / 2012-07-24 -================== - - * Bumped client. - -0.9.7 / 2012-07-24 -================== - - * Prevent crash when socket leaves a room twice. - * Corrects unsafe usage of for..in - * Fix for node 0.8 with `gzip compression` [vadimi] - * Update redis to support Node 0.8.x - * Made ID generation securely random - * Fix Redis Store race condition in manager onOpen unsubscribe callback - * Fix for EventEmitters always reusing the same Array instance for listeners - -0.9.6 / 2012-04-17 -================== - - * Fixed XSS in jsonp-polling. - -0.9.5 / 2012-04-05 -================== - - * Added test for polling and socket close. - * Ensure close upon request close. - * Fix disconnection reason being lost for polling transports. - * Ensure that polling transports work with Connection: close. - * Log disconnection reason. - -0.9.4 / 2012-04-01 -================== - - * Disconnecting from namespace improvement (#795) [DanielBaulig] - * Bumped client with polling reconnection loop (#438) - -0.9.3 / 2012-03-28 -================== - - * Fix "Syntax error" on FF Web Console with XHR Polling [mikito] - -0.9.2 / 2012-03-13 -================== - - * More sensible close `timeout default` (fixes disconnect issue) - -0.9.1-1 / 2012-03-02 -==================== - - * Bumped client with NPM dependency fix. - -0.9.1 / 2012-03-02 -================== - - * Changed heartbeat timeout and interval defaults (60 and 25 seconds) - * Make tests work both on 0.4 and 0.6 - * Updated client (improvements + bug fixes). - -0.9.0 / 2012-02-26 -================== - - * Make it possible to use a regexp to match the socket.io resource URL. - We need this because we have to prefix the socket.io URL with a variable ID. - * Supplemental fix to gavinuhma/authfix, it looks like the same Access-Control-Origin logic is needed in the http and xhr-polling transports - * Updated express dep for windows compatibility. - * Combine two substr calls into one in decodePayload to improve performance - * Minor documentation fix - * Minor. Conform to style of other files. - * Switching setting to 'match origin protocol' - * Revert "Fixes leaking Redis subscriptions for #663. The local flag was not getting passed through onClientDisconnect()." - * Revert "Handle leaked dispatch:[id] subscription." - * Merge pull request #667 from dshaw/patch/redis-disconnect - * Handle leaked dispatch:[id] subscription. - * Fixes leaking Redis subscriptions for #663. The local flag was not getting passed through onClientDisconnect(). - * Prevent memory leaking on uncompleted requests & add max post size limitation - * Fix for testcase - * Set Access-Control-Allow-Credentials true, regardless of cookie - * Remove assertvarnish from package as it breaks on 0.6 - * Correct irc channel - * Added proper return after reserved field error - * Fixes manager.js failure to close connection after transport error has happened - * Added implicit port 80 for origin checks. fixes #638 - * Fixed bug #432 in 0.8.7 - * Set Access-Control-Allow-Origin header to origin to enable withCredentials - * Adding configuration variable matchOriginProtocol - * Fixes location mismatch error in Safari. - * Use tty to detect if we should add colors or not by default. - * Updated the package location. - -0.8.7 / 2011-11-05 -================== - - * Fixed memory leaks in closed clients. - * Fixed memory leaks in namespaces. - * Fixed websocket handling for malformed requests from proxies. [einaros] - * Node 0.6 compatibility. [einaros] [3rd-Eden] - * Adapted tests and examples. - -0.8.6 / 2011-10-27 -================== - - * Added JSON decoding on jsonp-polling transport. - * Fixed README example. - * Major speed optimizations [3rd-Eden] [einaros] [visionmedia] - * Added decode/encode benchmarks [visionmedia] - * Added support for black-listing client sent events. - * Fixed logging options, closes #540 [3rd-Eden] - * Added vary header for gzip [3rd-Eden] - * Properly cleaned up async websocket / flashsocket tests, after patching node-websocket-client - * Patched to properly shut down when a finishClose call is made during connection establishment - * Added support for socket.io version on url and far-future Expires [3rd-Eden] [getify] - * Began IE10 compatibility [einaros] [tbranyen] - * Misc WebSocket fixes [einaros] - * Added UTF8 to respone headers for htmlfile [3rd-Eden] - -0.8.5 / 2011-10-07 -================== - - * Added websocket draft HyBi-16 support. [einaros] - * Fixed websocket continuation bugs. [einaros] - * Fixed flashsocket transport name. - * Fixed websocket tests. - * Ensured `parser#decodePayload` doesn't choke. - * Added http referrer verification to manager verifyOrigin. - * Added access control for cross domain xhr handshakes [3rd-Eden] - * Added support for automatic generation of socket.io files [3rd-Eden] - * Added websocket binary support [einaros] - * Added gzip support for socket.io.js [3rd-Eden] - * Expose socket.transport [3rd-Eden] - * Updated client. - -0.8.4 / 2011-09-06 -================== - - * Client build - -0.8.3 / 2011-09-03 -================== - - * Fixed `\n` parsing for non-JSON packets (fixes #479). - * Fixed parsing of certain unicode characters (fixes #451). - * Fixed transport message packet logging. - * Fixed emission of `error` event resulting in an uncaught exception if unhandled (fixes #476). - * Fixed; allow for falsy values as the configuration value of `log level` (fixes #491). - * Fixed repository URI in `package.json`. Fixes #504. - * Added text/plain content-type to handshake responses [einaros] - * Improved single byte writes [einaros] - * Updated socket.io-flashsocket default port from 843 to 10843 [3rd-Eden] - * Updated client. - -0.8.2 / 2011-08-29 -================== - - * Updated client. - -0.8.1 / 2011-08-29 -================== - - * Fixed utf8 bug in send framing in websocket [einaros] - * Fixed typo in docs [Znarkus] - * Fixed bug in send framing for over 64kB of data in websocket [einaros] - * Corrected ping handling in websocket transport [einaros] - -0.8.0 / 2011-08-28 -================== - - * Updated to work with two-level websocket versioning. [einaros] - * Added hybi07 support. [einaros] - * Added hybi10 support. [einaros] - * Added http referrer verification to manager.js verifyOrigin. [einaors] - -0.7.11 / 2011-08-27 -=================== - - * Updated socket.io-client. - -0.7.10 / 2011-08-27 -=================== - - * Updated socket.io-client. - -0.7.9 / 2011-08-12 -================== - - * Updated socket.io-client. - * Make sure we only do garbage collection when the server we receive is actually run. - -0.7.8 / 2011-08-08 -================== - - * Changed; make sure sio#listen passes options to both HTTP server and socket.io manager. - * Added docs for sio#listen. - * Added options parameter support for Manager constructor. - * Added memory leaks tests and test-leaks Makefile task. - * Removed auto npm-linking from make test. - * Make sure that you can disable heartbeats. [3rd-Eden] - * Fixed rooms memory leak [3rd-Eden] - * Send response once we got all POST data, not immediately [Pita] - * Fixed onLeave behavior with missing clientsk [3rd-Eden] - * Prevent duplicate references in rooms. - * Added alias for `to` to `in` and `in` to `to`. - * Fixed roomClients definition. - * Removed dependency on redis for installation without npm [3rd-Eden] - * Expose path and querystring in handshakeData [3rd-Eden] - -0.7.7 / 2011-07-12 -================== - - * Fixed double dispatch handling with emit to closed clients. - * Added test for emitting to closed clients to prevent regression. - * Fixed race condition in redis test. - * Changed Transport#end instrumentation. - * Leveraged $emit instead of emit internally. - * Made tests faster. - * Fixed double disconnect events. - * Fixed disconnect logic - * Simplified remote events handling in Socket. - * Increased testcase timeout. - * Fixed unknown room emitting (GH-291). [3rd-Eden] - * Fixed `address` in handshakeData. [3rd-Eden] - * Removed transports definition in chat example. - * Fixed room cleanup - * Fixed; make sure the client is cleaned up after booting. - * Make sure to mark the client as non-open if the connection is closed. - * Removed unneeded `buffer` declarations. - * Fixed; make sure to clear socket handlers and subscriptions upon transport close. - -0.7.6 / 2011-06-30 -================== - - * Fixed general dispatching when a client has closed. - -0.7.5 / 2011-06-30 -================== - - * Fixed dispatching to clients that are disconnected. - -0.7.4 / 2011-06-30 -================== - - * Fixed; only clear handlers if they were set. [level09] - -0.7.3 / 2011-06-30 -================== - - * Exposed handshake data to clients. - * Refactored dispatcher interface. - * Changed; Moved id generation method into the manager. - * Added sub-namespace authorization. [3rd-Eden] - * Changed; normalized SocketNamespace local eventing [dvv] - * Changed; Use packet.reason or default to 'packet' [3rd-Eden] - * Changed console.error to console.log. - * Fixed; bind both servers at the same time do that the test never times out. - * Added 304 support. - * Removed `Transport#name` for abstract interface. - * Changed; lazily require http and https module only when needed. [3rd-Eden] - -0.7.2 / 2011-06-22 -================== - - * Make sure to write a packet (of type `noop`) when closing a poll. - This solves a problem with cross-domain requests being flagged as aborted and - reconnection being triggered. - * Added `noop` message type. - -0.7.1 / 2011-06-21 -================== - - * Fixed cross-domain XHR. - * Added CORS test to xhr-polling suite. - -0.7.0 / 2010-06-21 -================== - - * http://socket.io/announcement.html diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/LICENSE deleted file mode 100644 index b248ba1b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2015 Automattic - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/Makefile deleted file mode 100644 index 4acf1e52..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/Makefile +++ /dev/null @@ -1,15 +0,0 @@ - -REPORTER = dot - -test: - @./node_modules/.bin/mocha \ - --reporter $(REPORTER) \ - --slow 200ms \ - --bail - -test-cov: - @./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- \ - --reporter $(REPORTER) \ - test/ - -.PHONY: test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/Readme.md deleted file mode 100644 index 74e2e898..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/Readme.md +++ /dev/null @@ -1,427 +0,0 @@ - -# socket.io - -[![Build Status](https://secure.travis-ci.org/socketio/socket.io.svg)](https://travis-ci.org/socketio/socket.io) -[![Dependency Status](https://david-dm.org/socketio/socket.io.svg)](https://david-dm.org/socketio/socket.io) -[![devDependency Status](https://david-dm.org/socketio/socket.io/dev-status.svg)](https://david-dm.org/socketio/socket.io#info=devDependencies) -![NPM version](https://badge.fury.io/js/socket.io.svg) -![Downloads](https://img.shields.io/npm/dm/socket.io.svg?style=flat) -[![](http://slack.socket.io/badge.svg?)](http://slack.socket.io) - -## How to use - -The following example attaches socket.io to a plain Node.JS -HTTP server listening on port `3000`. - -```js -var server = require('http').createServer(); -var io = require('socket.io')(server); -io.on('connection', function(socket){ - socket.on('event', function(data){}); - socket.on('disconnect', function(){}); -}); -server.listen(3000); -``` - -### Standalone - -```js -var io = require('socket.io')(); -io.on('connection', function(socket){}); -io.listen(3000); -``` - -### In conjunction with Express - -Starting with **3.0**, express applications have become request handler -functions that you pass to `http` or `http` `Server` instances. You need -to pass the `Server` to `socket.io`, and not the express application -function. - -```js -var app = require('express')(); -var server = require('http').createServer(app); -var io = require('socket.io')(server); -io.on('connection', function(){ /* … */ }); -server.listen(3000); -``` - -### In conjunction with Koa - -Like Express.JS, Koa works by exposing an application as a request -handler function, but only by calling the `callback` method. - -```js -var app = require('koa')(); -var server = require('http').createServer(app.callback()); -var io = require('socket.io')(server); -io.on('connection', function(){ /* … */ }); -server.listen(3000); -``` - -## API - -### Server - - Exposed by `require('socket.io')`. - -### Server() - - Creates a new `Server`. Works with and without `new`: - - ```js - var io = require('socket.io')(); - // or - var Server = require('socket.io'); - var io = new Server(); - ``` - -### Server(opts:Object) - - Optionally, the first or second argument (see below) of the `Server` - constructor can be an options object. - - The following options are supported: - - - `serveClient` sets the value for Server#serveClient() - - `path` sets the value for Server#path() - - The same options passed to socket.io are always passed to - the `engine.io` `Server` that gets created. See engine.io - [options](https://github.com/socketio/engine.io#methods-1) - as reference. - -### Server(srv:http#Server, opts:Object) - - Creates a new `Server` and attaches it to the given `srv`. Optionally - `opts` can be passed. - -### Server(port:Number, opts:Object) - - Binds socket.io to a new `http.Server` that listens on `port`. - -### Server#serveClient(v:Boolean):Server - - If `v` is `true` the attached server (see `Server#attach`) will serve - the client files. Defaults to `true`. - - This method has no effect after `attach` is called. - - ```js - // pass a server and the `serveClient` option - var io = require('socket.io')(http, { serveClient: false }); - - // or pass no server and then you can call the method - var io = require('socket.io')(); - io.serveClient(false); - io.attach(http); - ``` - - If no arguments are supplied this method returns the current value. - -### Server#path(v:String):Server - - Sets the path `v` under which `engine.io` and the static files will be - served. Defaults to `/socket.io`. - - If no arguments are supplied this method returns the current value. - -### Server#adapter(v:Adapter):Server - - Sets the adapter `v`. Defaults to an instance of the `Adapter` that - ships with socket.io which is memory based. See - [socket.io-adapter](https://github.com/socketio/socket.io-adapter). - - If no arguments are supplied this method returns the current value. - -### Server#origins(v:String):Server - - Sets the allowed origins `v`. Defaults to any origins being allowed. - - If no arguments are supplied this method returns the current value. - -### Server#origins(v:Function):Server - - Sets the allowed origins as dynamic function. Function takes two arguments `origin:String` and `callback(error, success)`, where `success` is a boolean value indicating whether origin is allowed or not. - - __Potential drawbacks__: - * in some situations, when it is not possible to determine `origin` it may have value of `*` - * As this function will be executed for every request, it is advised to make this function work as fast as possible - * If `socket.io` is used together with `Express`, the CORS headers will be affected only for `socket.io` requests. For Express can use [cors](https://github.com/expressjs/cors) - - -### Server#sockets:Namespace - - The default (`/`) namespace. - -### Server#attach(srv:http#Server, opts:Object):Server - - Attaches the `Server` to an engine.io instance on `srv` with the - supplied `opts` (optionally). - -### Server#attach(port:Number, opts:Object):Server - - Attaches the `Server` to an engine.io instance that is bound to `port` - with the given `opts` (optionally). - -### Server#listen - - Synonym of `Server#attach`. - -### Server#bind(srv:engine#Server):Server - - Advanced use only. Binds the server to a specific engine.io `Server` - (or compatible API) instance. - -### Server#onconnection(socket:engine#Socket):Server - - Advanced use only. Creates a new `socket.io` client from the incoming - engine.io (or compatible API) `socket`. - -### Server#of(nsp:String):Namespace - - Initializes and retrieves the given `Namespace` by its pathname - identifier `nsp`. - - If the namespace was already initialized it returns it right away. - -### Server#emit - - Emits an event to all connected clients. The following two are - equivalent: - - ```js - var io = require('socket.io')(); - io.sockets.emit('an event sent to all connected clients'); - io.emit('an event sent to all connected clients'); - ``` - - For other available methods, see `Namespace` below. - -### Server#close - - Closes socket server - - ```js - var Server = require('socket.io'); - var PORT = 3030; - var server = require('http').Server(); - - var io = Server(PORT); - - io.close(); // Close current server - - server.listen(PORT); // PORT is free to use - - io = Server(server); - ``` - -### Server#use - - See `Namespace#use` below. - -### Namespace - - Represents a pool of sockets connected under a given scope identified - by a pathname (eg: `/chat`). - - By default the client always connects to `/`. - -#### Events - - - `connection` / `connect`. Fired upon a connection. - - Parameters: - - `Socket` the incoming socket. - -### Namespace#name:String - - The namespace identifier property. - -### Namespace#connected:Object - - Hash of `Socket` objects that are connected to this namespace indexed - by `id`. - -### Namespace#clients(fn:Function) - - Gets a list of client IDs connected to this namespace (across all nodes if applicable). - - An example to get all clients in a namespace: - - ```js - var io = require('socket.io')(); - io.of('/chat').clients(function(error, clients){ - if (error) throw error; - console.log(clients); // => [PZDoMHjiu8PYfRiKAAAF, Anw2LatarvGVVXEIAAAD] - }); - ``` - - An example to get all clients in namespace's room: - - ```js - var io = require('socket.io')(); - io.of('/chat').in('general').clients(function(error, clients){ - if (error) throw error; - console.log(clients); // => [Anw2LatarvGVVXEIAAAD] - }); - ``` - - As with broadcasting, the default is all clients from the default namespace ('/'): - - ```js - var io = require('socket.io')(); - io.clients(function(error, clients){ - if (error) throw error; - console.log(clients); // => [6em3d4TJP8Et9EMNAAAA, G5p55dHhGgUnLUctAAAB] - }); - ``` - -### Namespace#use(fn:Function):Namespace - - Registers a middleware, which is a function that gets executed for - every incoming `Socket` and receives as parameter the socket and a - function to optionally defer execution to the next registered - middleware. - - ```js - var io = require('socket.io')(); - io.use(function(socket, next){ - if (socket.request.headers.cookie) return next(); - next(new Error('Authentication error')); - }); - ``` - - Errors passed to middleware callbacks are sent as special `error` - packets to clients. - -### Socket - - A `Socket` is the fundamental class for interacting with browser - clients. A `Socket` belongs to a certain `Namespace` (by default `/`) - and uses an underlying `Client` to communicate. - -### Socket#rooms:Object - - A hash of strings identifying the rooms this socket is in, indexed by - room name. - -### Socket#client:Client - - A reference to the underlying `Client` object. - -### Socket#conn:Socket - - A reference to the underlying `Client` transport connection (engine.io - `Socket` object). - -### Socket#request:Request - - A getter proxy that returns the reference to the `request` that - originated the underlying engine.io `Client`. Useful for accessing - request headers such as `Cookie` or `User-Agent`. - -### Socket#id:String - - A unique identifier for the socket session, that comes from the - underlying `Client`. - -### Socket#emit(name:String[, …]):Socket - - Emits an event to the socket identified by the string `name`. Any - other parameters can be included. - - All datastructures are supported, including `Buffer`. JavaScript - functions can't be serialized/deserialized. - - ```js - var io = require('socket.io')(); - io.on('connection', function(socket){ - socket.emit('an event', { some: 'data' }); - }); - ``` - -### Socket#join(name:String[, fn:Function]):Socket - - Adds the socket to the `room`, and fires optionally a callback `fn` - with `err` signature (if any). - - The socket is automatically a member of a room identified with its - session id (see `Socket#id`). - - The mechanics of joining rooms are handled by the `Adapter` - that has been configured (see `Server#adapter` above), defaulting to - [socket.io-adapter](https://github.com/socketio/socket.io-adapter). - -### Socket#leave(name:String[, fn:Function]):Socket - - Removes the socket from `room`, and fires optionally a callback `fn` - with `err` signature (if any). - - **Rooms are left automatically upon disconnection**. - - The mechanics of leaving rooms are handled by the `Adapter` - that has been configured (see `Server#adapter` above), defaulting to - [socket.io-adapter](https://github.com/socketio/socket.io-adapter). - -### Socket#to(room:String):Socket - - Sets a modifier for a subsequent event emission that the event will - only be _broadcasted_ to sockets that have joined the given `room`. - - To emit to multiple rooms, you can call `to` several times. - - ```js - var io = require('socket.io')(); - io.on('connection', function(socket){ - socket.to('others').emit('an event', { some: 'data' }); - }); - ``` - -### Socket#in(room:String):Socket - - Same as `Socket#to` - -### Socket#compress(v:Boolean):Socket - - Sets a modifier for a subsequent event emission that the event data will - only be _compressed_ if the value is `true`. Defaults to `true` when you don't call the method. - - ```js - var io = require('socket.io')(); - io.on('connection', function(socket){ - socket.compress(false).emit('an event', { some: 'data' }); - }); - ``` - -### Client - - The `Client` class represents an incoming transport (engine.io) - connection. A `Client` can be associated with many multiplexed `Socket` - that belong to different `Namespace`s. - -### Client#conn - - A reference to the underlying `engine.io` `Socket` connection. - -### Client#request - - A getter proxy that returns the reference to the `request` that - originated the engine.io connection. Useful for accessing - request headers such as `Cookie` or `User-Agent`. - -## Debug / logging - -Socket.IO is powered by [debug](https://github.com/visionmedia/debug). -In order to see all the debug output, run your app with the environment variable -`DEBUG` including the desired scope. - -To see the output from all of Socket.IO's debugging scopes you can use: - -``` -DEBUG=socket.io* node myapp -``` - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/client.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/client.js deleted file mode 100644 index 407d6c3a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/client.js +++ /dev/null @@ -1,251 +0,0 @@ - -/** - * Module dependencies. - */ - -var parser = require('socket.io-parser'); -var debug = require('debug')('socket.io:client'); - -/** - * Module exports. - */ - -module.exports = Client; - -/** - * Client constructor. - * - * @param {Server} server instance - * @param {Socket} conn - * @api private - */ - -function Client(server, conn){ - this.server = server; - this.conn = conn; - this.encoder = new parser.Encoder(); - this.decoder = new parser.Decoder(); - this.id = conn.id; - this.request = conn.request; - this.setup(); - this.sockets = {}; - this.nsps = {}; - this.connectBuffer = []; -} - -/** - * Sets up event listeners. - * - * @api private - */ - -Client.prototype.setup = function(){ - this.onclose = this.onclose.bind(this); - this.ondata = this.ondata.bind(this); - this.onerror = this.onerror.bind(this); - this.ondecoded = this.ondecoded.bind(this); - - this.decoder.on('decoded', this.ondecoded); - this.conn.on('data', this.ondata); - this.conn.on('error', this.onerror); - this.conn.on('close', this.onclose); -}; - -/** - * Connects a client to a namespace. - * - * @param {String} name namespace - * @api private - */ - -Client.prototype.connect = function(name){ - debug('connecting to namespace %s', name); - var nsp = this.server.nsps[name]; - if (!nsp) { - this.packet({ type: parser.ERROR, nsp: name, data : 'Invalid namespace'}); - return; - } - - if ('/' != name && !this.nsps['/']) { - this.connectBuffer.push(name); - return; - } - - var self = this; - var socket = nsp.add(this, function(){ - self.sockets[socket.id] = socket; - self.nsps[nsp.name] = socket; - - if ('/' == nsp.name && self.connectBuffer.length > 0) { - self.connectBuffer.forEach(self.connect, self); - self.connectBuffer = []; - } - }); -}; - -/** - * Disconnects from all namespaces and closes transport. - * - * @api private - */ - -Client.prototype.disconnect = function(){ - for (var id in this.sockets) { - if (this.sockets.hasOwnProperty(id)) { - this.sockets[id].disconnect(); - } - } - this.sockets = {}; - this.close(); -}; - -/** - * Removes a socket. Called by each `Socket`. - * - * @api private - */ - -Client.prototype.remove = function(socket){ - if (this.sockets.hasOwnProperty(socket.id)) { - var nsp = this.sockets[socket.id].nsp.name; - delete this.sockets[socket.id]; - delete this.nsps[nsp]; - } else { - debug('ignoring remove for %s', socket.id); - } -}; - -/** - * Closes the underlying connection. - * - * @api private - */ - -Client.prototype.close = function(){ - if ('open' == this.conn.readyState) { - debug('forcing transport close'); - this.conn.close(); - this.onclose('forced server close'); - } -}; - -/** - * Writes a packet to the transport. - * - * @param {Object} packet object - * @param {Object} opts - * @api private - */ - -Client.prototype.packet = function(packet, opts){ - opts = opts || {}; - var self = this; - - // this writes to the actual connection - function writeToEngine(encodedPackets) { - if (opts.volatile && !self.conn.transport.writable) return; - for (var i = 0; i < encodedPackets.length; i++) { - self.conn.write(encodedPackets[i], { compress: opts.compress }); - } - } - - if ('open' == this.conn.readyState) { - debug('writing packet %j', packet); - if (!opts.preEncoded) { // not broadcasting, need to encode - this.encoder.encode(packet, function (encodedPackets) { // encode, then write results to engine - writeToEngine(encodedPackets); - }); - } else { // a broadcast pre-encodes a packet - writeToEngine(packet); - } - } else { - debug('ignoring packet write %j', packet); - } -}; - -/** - * Called with incoming transport data. - * - * @api private - */ - -Client.prototype.ondata = function(data){ - // try/catch is needed for protocol violations (GH-1880) - try { - this.decoder.add(data); - } catch(e) { - this.onerror(e); - } -}; - -/** - * Called when parser fully decodes a packet. - * - * @api private - */ - -Client.prototype.ondecoded = function(packet) { - if (parser.CONNECT == packet.type) { - this.connect(packet.nsp); - } else { - var socket = this.nsps[packet.nsp]; - if (socket) { - socket.onpacket(packet); - } else { - debug('no socket for namespace %s', packet.nsp); - } - } -}; - -/** - * Handles an error. - * - * @param {Object} err object - * @api private - */ - -Client.prototype.onerror = function(err){ - for (var id in this.sockets) { - if (this.sockets.hasOwnProperty(id)) { - this.sockets[id].onerror(err); - } - } - this.onclose('client error'); -}; - -/** - * Called upon transport close. - * - * @param {String} reason - * @api private - */ - -Client.prototype.onclose = function(reason){ - debug('client close with reason %s', reason); - - // ignore a potential subsequent `close` event - this.destroy(); - - // `nsps` and `sockets` are cleaned up seamlessly - for (var id in this.sockets) { - if (this.sockets.hasOwnProperty(id)) { - this.sockets[id].onclose(reason); - } - } - this.sockets = {}; - - this.decoder.destroy(); // clean up decoder -}; - -/** - * Cleans up event listeners. - * - * @api private - */ - -Client.prototype.destroy = function(){ - this.conn.removeListener('data', this.ondata); - this.conn.removeListener('error', this.onerror); - this.conn.removeListener('close', this.onclose); - this.decoder.removeListener('decoded', this.ondecoded); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/index.js deleted file mode 100644 index b35d1b1a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/index.js +++ /dev/null @@ -1,385 +0,0 @@ - -/** - * Module dependencies. - */ - -var http = require('http'); -var read = require('fs').readFileSync; -var engine = require('engine.io'); -var client = require('socket.io-client'); -var clientVersion = require('socket.io-client/package').version; -var Client = require('./client'); -var Namespace = require('./namespace'); -var Adapter = require('socket.io-adapter'); -var debug = require('debug')('socket.io:server'); -var url = require('url'); - -/** - * Module exports. - */ - -module.exports = Server; - -/** - * Socket.IO client source. - */ - -var clientSource = read(require.resolve('socket.io-client/socket.io.js'), 'utf-8'); - -/** - * Server constructor. - * - * @param {http.Server|Number|Object} srv http server, port or options - * @param {Object} opts - * @api public - */ - -function Server(srv, opts){ - if (!(this instanceof Server)) return new Server(srv, opts); - if ('object' == typeof srv && !srv.listen) { - opts = srv; - srv = null; - } - opts = opts || {}; - this.nsps = {}; - this.path(opts.path || '/socket.io'); - this.serveClient(false !== opts.serveClient); - this.adapter(opts.adapter || Adapter); - this.origins(opts.origins || '*:*'); - this.sockets = this.of('/'); - if (srv) this.attach(srv, opts); -} - -/** - * Server request verification function, that checks for allowed origins - * - * @param {http.IncomingMessage} req request - * @param {Function} fn callback to be called with the result: `fn(err, success)` - */ - -Server.prototype.checkRequest = function(req, fn) { - var origin = req.headers.origin || req.headers.referer; - - // file:// URLs produce a null Origin which can't be authorized via echo-back - if ('null' == origin || null == origin) origin = '*'; - - if (!!origin && typeof(this._origins) == 'function') return this._origins(origin, fn); - if (this._origins.indexOf('*:*') !== -1) return fn(null, true); - if (origin) { - try { - var parts = url.parse(origin); - var defaultPort = 'https:' == parts.protocol ? 443 : 80; - parts.port = parts.port != null - ? parts.port - : defaultPort; - var ok = - ~this._origins.indexOf(parts.hostname + ':' + parts.port) || - ~this._origins.indexOf(parts.hostname + ':*') || - ~this._origins.indexOf('*:' + parts.port); - return fn(null, !!ok); - } catch (ex) { - } - } - fn(null, false); -}; - -/** - * Sets/gets whether client code is being served. - * - * @param {Boolean} v whether to serve client code - * @return {Server|Boolean} self when setting or value when getting - * @api public - */ - -Server.prototype.serveClient = function(v){ - if (!arguments.length) return this._serveClient; - this._serveClient = v; - return this; -}; - -/** - * Old settings for backwards compatibility - */ - -var oldSettings = { - "transports": "transports", - "heartbeat timeout": "pingTimeout", - "heartbeat interval": "pingInterval", - "destroy buffer size": "maxHttpBufferSize" -}; - -/** - * Backwards compatiblity. - * - * @api public - */ - -Server.prototype.set = function(key, val){ - if ('authorization' == key && val) { - this.use(function(socket, next) { - val(socket.request, function(err, authorized) { - if (err) return next(new Error(err)); - if (!authorized) return next(new Error('Not authorized')); - next(); - }); - }); - } else if ('origins' == key && val) { - this.origins(val); - } else if ('resource' == key) { - this.path(val); - } else if (oldSettings[key] && this.eio[oldSettings[key]]) { - this.eio[oldSettings[key]] = val; - } else { - console.error('Option %s is not valid. Please refer to the README.', key); - } - - return this; -}; - -/** - * Sets the client serving path. - * - * @param {String} v pathname - * @return {Server|String} self when setting or value when getting - * @api public - */ - -Server.prototype.path = function(v){ - if (!arguments.length) return this._path; - this._path = v.replace(/\/$/, ''); - return this; -}; - -/** - * Sets the adapter for rooms. - * - * @param {Adapter} v pathname - * @return {Server|Adapter} self when setting or value when getting - * @api public - */ - -Server.prototype.adapter = function(v){ - if (!arguments.length) return this._adapter; - this._adapter = v; - for (var i in this.nsps) { - if (this.nsps.hasOwnProperty(i)) { - this.nsps[i].initAdapter(); - } - } - return this; -}; - -/** - * Sets the allowed origins for requests. - * - * @param {String} v origins - * @return {Server|Adapter} self when setting or value when getting - * @api public - */ - -Server.prototype.origins = function(v){ - if (!arguments.length) return this._origins; - - this._origins = v; - return this; -}; - -/** - * Attaches socket.io to a server or port. - * - * @param {http.Server|Number} server or port - * @param {Object} options passed to engine.io - * @return {Server} self - * @api public - */ - -Server.prototype.listen = -Server.prototype.attach = function(srv, opts){ - if ('function' == typeof srv) { - var msg = 'You are trying to attach socket.io to an express ' + - 'request handler function. Please pass a http.Server instance.'; - throw new Error(msg); - } - - // handle a port as a string - if (Number(srv) == srv) { - srv = Number(srv); - } - - if ('number' == typeof srv) { - debug('creating http server and binding to %d', srv); - var port = srv; - srv = http.Server(function(req, res){ - res.writeHead(404); - res.end(); - }); - srv.listen(port); - - } - - // set engine.io path to `/socket.io` - opts = opts || {}; - opts.path = opts.path || this.path(); - // set origins verification - opts.allowRequest = opts.allowRequest || this.checkRequest.bind(this); - - // initialize engine - debug('creating engine.io instance with opts %j', opts); - this.eio = engine.attach(srv, opts); - - // attach static file serving - if (this._serveClient) this.attachServe(srv); - - // Export http server - this.httpServer = srv; - - // bind to engine events - this.bind(this.eio); - - return this; -}; - -/** - * Attaches the static file serving. - * - * @param {Function|http.Server} srv http server - * @api private - */ - -Server.prototype.attachServe = function(srv){ - debug('attaching client serving req handler'); - var url = this._path + '/socket.io.js'; - var evs = srv.listeners('request').slice(0); - var self = this; - srv.removeAllListeners('request'); - srv.on('request', function(req, res) { - if (0 === req.url.indexOf(url)) { - self.serve(req, res); - } else { - for (var i = 0; i < evs.length; i++) { - evs[i].call(srv, req, res); - } - } - }); -}; - -/** - * Handles a request serving `/socket.io.js` - * - * @param {http.Request} req - * @param {http.Response} res - * @api private - */ - -Server.prototype.serve = function(req, res){ - var etag = req.headers['if-none-match']; - if (etag) { - if (clientVersion == etag) { - debug('serve client 304'); - res.writeHead(304); - res.end(); - return; - } - } - - debug('serve client source'); - res.setHeader('Content-Type', 'application/javascript'); - res.setHeader('ETag', clientVersion); - res.writeHead(200); - res.end(clientSource); -}; - -/** - * Binds socket.io to an engine.io instance. - * - * @param {engine.Server} engine engine.io (or compatible) server - * @return {Server} self - * @api public - */ - -Server.prototype.bind = function(engine){ - this.engine = engine; - this.engine.on('connection', this.onconnection.bind(this)); - return this; -}; - -/** - * Called with each incoming transport connection. - * - * @param {engine.Socket} conn - * @return {Server} self - * @api public - */ - -Server.prototype.onconnection = function(conn){ - debug('incoming connection with id %s', conn.id); - var client = new Client(this, conn); - client.connect('/'); - return this; -}; - -/** - * Looks up a namespace. - * - * @param {String} name nsp name - * @param {Function} fn optional, nsp `connection` ev handler - * @api public - */ - -Server.prototype.of = function(name, fn){ - if (String(name)[0] !== '/') name = '/' + name; - - var nsp = this.nsps[name]; - if (!nsp) { - debug('initializing namespace %s', name); - nsp = new Namespace(this, name); - this.nsps[name] = nsp; - } - if (fn) nsp.on('connect', fn); - return nsp; -}; - -/** - * Closes server connection - * - * @api public - */ - -Server.prototype.close = function(){ - for (var id in this.nsps['/'].sockets) { - if (this.nsps['/'].sockets.hasOwnProperty(id)) { - this.nsps['/'].sockets[id].onclose(); - } - } - - this.engine.close(); - - if(this.httpServer){ - this.httpServer.close(); - } -}; - -/** - * Expose main namespace (/). - */ - -['on', 'to', 'in', 'use', 'emit', 'send', 'write', 'clients', 'compress'].forEach(function(fn){ - Server.prototype[fn] = function(){ - var nsp = this.sockets[fn]; - return nsp.apply(this.sockets, arguments); - }; -}); - -Namespace.flags.forEach(function(flag){ - Server.prototype.__defineGetter__(flag, function(){ - this.sockets.flags = this.sockets.flags || {}; - this.sockets.flags[flag] = true; - return this; - }); -}); - -/** - * BC with `io.listen` - */ - -Server.listen = Server; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/namespace.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/namespace.js deleted file mode 100644 index a0be4f75..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/namespace.js +++ /dev/null @@ -1,272 +0,0 @@ - -/** - * Module dependencies. - */ - -var Socket = require('./socket'); -var Emitter = require('events').EventEmitter; -var parser = require('socket.io-parser'); -var debug = require('debug')('socket.io:namespace'); -var hasBin = require('has-binary'); - -/** - * Module exports. - */ - -module.exports = exports = Namespace; - -/** - * Blacklisted events. - */ - -exports.events = [ - 'connect', // for symmetry with client - 'connection', - 'newListener' -]; - -/** - * Flags. - */ - -exports.flags = [ - 'json', - 'volatile' -]; - -/** - * `EventEmitter#emit` reference. - */ - -var emit = Emitter.prototype.emit; - -/** - * Namespace constructor. - * - * @param {Server} server instance - * @param {Socket} name - * @api private - */ - -function Namespace(server, name){ - this.name = name; - this.server = server; - this.sockets = {}; - this.connected = {}; - this.fns = []; - this.ids = 0; - this.initAdapter(); -} - -/** - * Inherits from `EventEmitter`. - */ - -Namespace.prototype.__proto__ = Emitter.prototype; - -/** - * Apply flags from `Socket`. - */ - -exports.flags.forEach(function(flag){ - Namespace.prototype.__defineGetter__(flag, function(){ - this.flags = this.flags || {}; - this.flags[flag] = true; - return this; - }); -}); - -/** - * Initializes the `Adapter` for this nsp. - * Run upon changing adapter by `Server#adapter` - * in addition to the constructor. - * - * @api private - */ - -Namespace.prototype.initAdapter = function(){ - this.adapter = new (this.server.adapter())(this); -}; - -/** - * Sets up namespace middleware. - * - * @return {Namespace} self - * @api public - */ - -Namespace.prototype.use = function(fn){ - this.fns.push(fn); - return this; -}; - -/** - * Executes the middleware for an incoming client. - * - * @param {Socket} socket that will get added - * @param {Function} fn last fn call in the middleware - * @api private - */ - -Namespace.prototype.run = function(socket, fn){ - var fns = this.fns.slice(0); - if (!fns.length) return fn(null); - - function run(i){ - fns[i](socket, function(err){ - // upon error, short-circuit - if (err) return fn(err); - - // if no middleware left, summon callback - if (!fns[i + 1]) return fn(null); - - // go on to next - run(i + 1); - }); - } - - run(0); -}; - -/** - * Targets a room when emitting. - * - * @param {String} name - * @return {Namespace} self - * @api public - */ - -Namespace.prototype.to = -Namespace.prototype['in'] = function(name){ - this.rooms = this.rooms || []; - if (!~this.rooms.indexOf(name)) this.rooms.push(name); - return this; -}; - -/** - * Adds a new client. - * - * @return {Socket} - * @api private - */ - -Namespace.prototype.add = function(client, fn){ - debug('adding socket to nsp %s', this.name); - var socket = new Socket(this, client); - var self = this; - this.run(socket, function(err){ - process.nextTick(function(){ - if ('open' == client.conn.readyState) { - if (err) return socket.error(err.data || err.message); - - // track socket - self.sockets[socket.id] = socket; - - // it's paramount that the internal `onconnect` logic - // fires before user-set events to prevent state order - // violations (such as a disconnection before the connection - // logic is complete) - socket.onconnect(); - if (fn) fn(); - - // fire user-set events - self.emit('connect', socket); - self.emit('connection', socket); - } else { - debug('next called after client was closed - ignoring socket'); - } - }); - }); - return socket; -}; - -/** - * Removes a client. Called by each `Socket`. - * - * @api private - */ - -Namespace.prototype.remove = function(socket){ - if (this.sockets.hasOwnProperty(socket.id)) { - delete this.sockets[socket.id]; - } else { - debug('ignoring remove for %s', socket.id); - } -}; - -/** - * Emits to all clients. - * - * @return {Namespace} self - * @api public - */ - -Namespace.prototype.emit = function(ev){ - if (~exports.events.indexOf(ev)) { - emit.apply(this, arguments); - } else { - // set up packet object - var args = Array.prototype.slice.call(arguments); - var parserType = parser.EVENT; // default - if (hasBin(args)) { parserType = parser.BINARY_EVENT; } // binary - - var packet = { type: parserType, data: args }; - - if ('function' == typeof args[args.length - 1]) { - throw new Error('Callbacks are not supported when broadcasting'); - } - - this.adapter.broadcast(packet, { - rooms: this.rooms, - flags: this.flags - }); - - delete this.rooms; - delete this.flags; - } - return this; -}; - -/** - * Sends a `message` event to all clients. - * - * @return {Namespace} self - * @api public - */ - -Namespace.prototype.send = -Namespace.prototype.write = function(){ - var args = Array.prototype.slice.call(arguments); - args.unshift('message'); - this.emit.apply(this, args); - return this; -}; - -/** - * Gets a list of clients. - * - * @return {Namespace} self - * @api public - */ - -Namespace.prototype.clients = function(fn){ - this.adapter.clients(this.rooms, fn); - // delete rooms flag for scenario: - // .in('room').clients() (GH-1978) - delete this.rooms; - return this; -}; - -/** - * Sets the compress flag. - * - * @param {Boolean} compress if `true`, compresses the sending data - * @return {Socket} self - * @api public - */ - -Namespace.prototype.compress = function(compress){ - this.flags = this.flags || {}; - this.flags.compress = compress; - return this; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/socket.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/socket.js deleted file mode 100644 index de5ebb71..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/lib/socket.js +++ /dev/null @@ -1,470 +0,0 @@ - -/** - * Module dependencies. - */ - -var Emitter = require('events').EventEmitter; -var parser = require('socket.io-parser'); -var url = require('url'); -var debug = require('debug')('socket.io:socket'); -var hasBin = require('has-binary'); - -/** - * Module exports. - */ - -module.exports = exports = Socket; - -/** - * Blacklisted events. - * - * @api public - */ - -exports.events = [ - 'error', - 'connect', - 'disconnect', - 'newListener', - 'removeListener' -]; - -/** - * Flags. - * - * @api private - */ - -var flags = [ - 'json', - 'volatile', - 'broadcast' -]; - -/** - * `EventEmitter#emit` reference. - */ - -var emit = Emitter.prototype.emit; - -/** - * Interface to a `Client` for a given `Namespace`. - * - * @param {Namespace} nsp - * @param {Client} client - * @api public - */ - -function Socket(nsp, client){ - this.nsp = nsp; - this.server = nsp.server; - this.adapter = this.nsp.adapter; - this.id = nsp.name + '#' + client.id; - this.client = client; - this.conn = client.conn; - this.rooms = {}; - this.acks = {}; - this.connected = true; - this.disconnected = false; - this.handshake = this.buildHandshake(); -} - -/** - * Inherits from `EventEmitter`. - */ - -Socket.prototype.__proto__ = Emitter.prototype; - -/** - * Apply flags from `Socket`. - */ - -flags.forEach(function(flag){ - Socket.prototype.__defineGetter__(flag, function(){ - this.flags = this.flags || {}; - this.flags[flag] = true; - return this; - }); -}); - -/** - * `request` engine.io shortcut. - * - * @api public - */ - -Socket.prototype.__defineGetter__('request', function(){ - return this.conn.request; -}); - -/** - * Builds the `handshake` BC object - * - * @api private - */ - -Socket.prototype.buildHandshake = function(){ - return { - headers: this.request.headers, - time: (new Date) + '', - address: this.conn.remoteAddress, - xdomain: !!this.request.headers.origin, - secure: !!this.request.connection.encrypted, - issued: +(new Date), - url: this.request.url, - query: url.parse(this.request.url, true).query || {} - }; -}; - -/** - * Emits to this client. - * - * @return {Socket} self - * @api public - */ - -Socket.prototype.emit = function(ev){ - if (~exports.events.indexOf(ev)) { - emit.apply(this, arguments); - } else { - var args = Array.prototype.slice.call(arguments); - var packet = {}; - packet.type = hasBin(args) ? parser.BINARY_EVENT : parser.EVENT; - packet.data = args; - var flags = this.flags || {}; - - // access last argument to see if it's an ACK callback - if ('function' == typeof args[args.length - 1]) { - if (this._rooms || flags.broadcast) { - throw new Error('Callbacks are not supported when broadcasting'); - } - - debug('emitting packet with ack id %d', this.nsp.ids); - this.acks[this.nsp.ids] = args.pop(); - packet.id = this.nsp.ids++; - } - - if (this._rooms || flags.broadcast) { - this.adapter.broadcast(packet, { - except: [this.id], - rooms: this._rooms, - flags: flags - }); - } else { - // dispatch packet - this.packet(packet, { - volatile: flags.volatile, - compress: flags.compress - }); - } - - // reset flags - delete this._rooms; - delete this.flags; - } - return this; -}; - -/** - * Targets a room when broadcasting. - * - * @param {String} name - * @return {Socket} self - * @api public - */ - -Socket.prototype.to = -Socket.prototype.in = function(name){ - this._rooms = this._rooms || []; - if (!~this._rooms.indexOf(name)) this._rooms.push(name); - return this; -}; - -/** - * Sends a `message` event. - * - * @return {Socket} self - * @api public - */ - -Socket.prototype.send = -Socket.prototype.write = function(){ - var args = Array.prototype.slice.call(arguments); - args.unshift('message'); - this.emit.apply(this, args); - return this; -}; - -/** - * Writes a packet. - * - * @param {Object} packet object - * @param {Object} opts options - * @api private - */ - -Socket.prototype.packet = function(packet, opts){ - packet.nsp = this.nsp.name; - opts = opts || {}; - opts.compress = false !== opts.compress; - this.client.packet(packet, opts); -}; - -/** - * Joins a room. - * - * @param {String} room - * @param {Function} fn optional, callback - * @return {Socket} self - * @api private - */ - -Socket.prototype.join = function(room, fn){ - debug('joining room %s', room); - var self = this; - if (this.rooms.hasOwnProperty(room)) { - fn && fn(null); - return this; - } - this.adapter.add(this.id, room, function(err){ - if (err) return fn && fn(err); - debug('joined room %s', room); - self.rooms[room] = room; - fn && fn(null); - }); - return this; -}; - -/** - * Leaves a room. - * - * @param {String} room - * @param {Function} fn optional, callback - * @return {Socket} self - * @api private - */ - -Socket.prototype.leave = function(room, fn){ - debug('leave room %s', room); - var self = this; - this.adapter.del(this.id, room, function(err){ - if (err) return fn && fn(err); - debug('left room %s', room); - delete self.rooms[room]; - fn && fn(null); - }); - return this; -}; - -/** - * Leave all rooms. - * - * @api private - */ - -Socket.prototype.leaveAll = function(){ - this.adapter.delAll(this.id); - this.rooms = {}; -}; - -/** - * Called by `Namespace` upon succesful - * middleware execution (ie: authorization). - * - * @api private - */ - -Socket.prototype.onconnect = function(){ - debug('socket connected - writing packet'); - this.nsp.connected[this.id] = this; - this.join(this.id); - this.packet({ type: parser.CONNECT }); -}; - -/** - * Called with each packet. Called by `Client`. - * - * @param {Object} packet - * @api private - */ - -Socket.prototype.onpacket = function(packet){ - debug('got packet %j', packet); - switch (packet.type) { - case parser.EVENT: - this.onevent(packet); - break; - - case parser.BINARY_EVENT: - this.onevent(packet); - break; - - case parser.ACK: - this.onack(packet); - break; - - case parser.BINARY_ACK: - this.onack(packet); - break; - - case parser.DISCONNECT: - this.ondisconnect(); - break; - - case parser.ERROR: - this.emit('error', packet.data); - } -}; - -/** - * Called upon event packet. - * - * @param {Object} packet object - * @api private - */ - -Socket.prototype.onevent = function(packet){ - var args = packet.data || []; - debug('emitting event %j', args); - - if (null != packet.id) { - debug('attaching ack callback to event'); - args.push(this.ack(packet.id)); - } - - emit.apply(this, args); -}; - -/** - * Produces an ack callback to emit with an event. - * - * @param {Number} id packet id - * @api private - */ - -Socket.prototype.ack = function(id){ - var self = this; - var sent = false; - return function(){ - // prevent double callbacks - if (sent) return; - var args = Array.prototype.slice.call(arguments); - debug('sending ack %j', args); - - var type = hasBin(args) ? parser.BINARY_ACK : parser.ACK; - self.packet({ - id: id, - type: type, - data: args - }); - - sent = true; - }; -}; - -/** - * Called upon ack packet. - * - * @api private - */ - -Socket.prototype.onack = function(packet){ - var ack = this.acks[packet.id]; - if ('function' == typeof ack) { - debug('calling ack %s with %j', packet.id, packet.data); - ack.apply(this, packet.data); - delete this.acks[packet.id]; - } else { - debug('bad ack %s', packet.id); - } -}; - -/** - * Called upon client disconnect packet. - * - * @api private - */ - -Socket.prototype.ondisconnect = function(){ - debug('got disconnect packet'); - this.onclose('client namespace disconnect'); -}; - -/** - * Handles a client error. - * - * @api private - */ - -Socket.prototype.onerror = function(err){ - if (this.listeners('error').length) { - this.emit('error', err); - } else { - console.error('Missing error handler on `socket`.'); - console.error(err.stack); - } -}; - -/** - * Called upon closing. Called by `Client`. - * - * @param {String} reason - * @throw {Error} optional error object - * @api private - */ - -Socket.prototype.onclose = function(reason){ - if (!this.connected) return this; - debug('closing socket - reason %s', reason); - this.leaveAll(); - this.nsp.remove(this); - this.client.remove(this); - this.connected = false; - this.disconnected = true; - delete this.nsp.connected[this.id]; - this.emit('disconnect', reason); -}; - -/** - * Produces an `error` packet. - * - * @param {Object} err error object - * @api private - */ - -Socket.prototype.error = function(err){ - this.packet({ type: parser.ERROR, data: err }); -}; - -/** - * Disconnects this client. - * - * @param {Boolean} close if `true`, closes the underlying connection - * @return {Socket} self - * @api public - */ - -Socket.prototype.disconnect = function(close){ - if (!this.connected) return this; - if (close) { - this.client.disconnect(); - } else { - this.packet({ type: parser.DISCONNECT }); - this.onclose('server namespace disconnect'); - } - return this; -}; - -/** - * Sets the compress flag. - * - * @param {Boolean} compress if `true`, compresses the sending data - * @return {Socket} self - * @api public - */ - -Socket.prototype.compress = function(compress){ - this.flags = this.flags || {}; - this.flags.compress = compress; - return this; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/.jshintrc b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/.jshintrc deleted file mode 100644 index 299877f2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/.jshintrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "laxbreak": true -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/.npmignore deleted file mode 100644 index 7e6163db..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -support -test -examples -example -*.sock -dist diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/History.md deleted file mode 100644 index 854c9711..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/History.md +++ /dev/null @@ -1,195 +0,0 @@ - -2.2.0 / 2015-05-09 -================== - - * package: update "ms" to v0.7.1 (#202, @dougwilson) - * README: add logging to file example (#193, @DanielOchoa) - * README: fixed a typo (#191, @amir-s) - * browser: expose `storage` (#190, @stephenmathieson) - * Makefile: add a `distclean` target (#189, @stephenmathieson) - -2.1.3 / 2015-03-13 -================== - - * Updated stdout/stderr example (#186) - * Updated example/stdout.js to match debug current behaviour - * Renamed example/stderr.js to stdout.js - * Update Readme.md (#184) - * replace high intensity foreground color for bold (#182, #183) - -2.1.2 / 2015-03-01 -================== - - * dist: recompile - * update "ms" to v0.7.0 - * package: update "browserify" to v9.0.3 - * component: fix "ms.js" repo location - * changed bower package name - * updated documentation about using debug in a browser - * fix: security error on safari (#167, #168, @yields) - -2.1.1 / 2014-12-29 -================== - - * browser: use `typeof` to check for `console` existence - * browser: check for `console.log` truthiness (fix IE 8/9) - * browser: add support for Chrome apps - * Readme: added Windows usage remarks - * Add `bower.json` to properly support bower install - -2.1.0 / 2014-10-15 -================== - - * node: implement `DEBUG_FD` env variable support - * package: update "browserify" to v6.1.0 - * package: add "license" field to package.json (#135, @panuhorsmalahti) - -2.0.0 / 2014-09-01 -================== - - * package: update "browserify" to v5.11.0 - * node: use stderr rather than stdout for logging (#29, @stephenmathieson) - -1.0.4 / 2014-07-15 -================== - - * dist: recompile - * example: remove `console.info()` log usage - * example: add "Content-Type" UTF-8 header to browser example - * browser: place %c marker after the space character - * browser: reset the "content" color via `color: inherit` - * browser: add colors support for Firefox >= v31 - * debug: prefer an instance `log()` function over the global one (#119) - * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) - -1.0.3 / 2014-07-09 -================== - - * Add support for multiple wildcards in namespaces (#122, @seegno) - * browser: fix lint - -1.0.2 / 2014-06-10 -================== - - * browser: update color palette (#113, @gscottolson) - * common: make console logging function configurable (#108, @timoxley) - * node: fix %o colors on old node <= 0.8.x - * Makefile: find node path using shell/which (#109, @timoxley) - -1.0.1 / 2014-06-06 -================== - - * browser: use `removeItem()` to clear localStorage - * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) - * package: add "contributors" section - * node: fix comment typo - * README: list authors - -1.0.0 / 2014-06-04 -================== - - * make ms diff be global, not be scope - * debug: ignore empty strings in enable() - * node: make DEBUG_COLORS able to disable coloring - * *: export the `colors` array - * npmignore: don't publish the `dist` dir - * Makefile: refactor to use browserify - * package: add "browserify" as a dev dependency - * Readme: add Web Inspector Colors section - * node: reset terminal color for the debug content - * node: map "%o" to `util.inspect()` - * browser: map "%j" to `JSON.stringify()` - * debug: add custom "formatters" - * debug: use "ms" module for humanizing the diff - * Readme: add "bash" syntax highlighting - * browser: add Firebug color support - * browser: add colors for WebKit browsers - * node: apply log to `console` - * rewrite: abstract common logic for Node & browsers - * add .jshintrc file - -0.8.1 / 2014-04-14 -================== - - * package: re-add the "component" section - -0.8.0 / 2014-03-30 -================== - - * add `enable()` method for nodejs. Closes #27 - * change from stderr to stdout - * remove unnecessary index.js file - -0.7.4 / 2013-11-13 -================== - - * remove "browserify" key from package.json (fixes something in browserify) - -0.7.3 / 2013-10-30 -================== - - * fix: catch localStorage security error when cookies are blocked (Chrome) - * add debug(err) support. Closes #46 - * add .browser prop to package.json. Closes #42 - -0.7.2 / 2013-02-06 -================== - - * fix package.json - * fix: Mobile Safari (private mode) is broken with debug - * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript - -0.7.1 / 2013-02-05 -================== - - * add repository URL to package.json - * add DEBUG_COLORED to force colored output - * add browserify support - * fix component. Closes #24 - -0.7.0 / 2012-05-04 -================== - - * Added .component to package.json - * Added debug.component.js build - -0.6.0 / 2012-03-16 -================== - - * Added support for "-" prefix in DEBUG [Vinay Pulim] - * Added `.enabled` flag to the node version [TooTallNate] - -0.5.0 / 2012-02-02 -================== - - * Added: humanize diffs. Closes #8 - * Added `debug.disable()` to the CS variant - * Removed padding. Closes #10 - * Fixed: persist client-side variant again. Closes #9 - -0.4.0 / 2012-02-01 -================== - - * Added browser variant support for older browsers [TooTallNate] - * Added `debug.enable('project:*')` to browser variant [TooTallNate] - * Added padding to diff (moved it to the right) - -0.3.0 / 2012-01-26 -================== - - * Added millisecond diff when isatty, otherwise UTC string - -0.2.0 / 2012-01-22 -================== - - * Added wildcard support - -0.1.0 / 2011-12-02 -================== - - * Added: remove colors unless stderr isatty [TooTallNate] - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/Makefile deleted file mode 100644 index 5cf4a596..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/Makefile +++ /dev/null @@ -1,36 +0,0 @@ - -# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 -THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) -THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) - -# BIN directory -BIN := $(THIS_DIR)/node_modules/.bin - -# applications -NODE ?= $(shell which node) -NPM ?= $(NODE) $(shell which npm) -BROWSERIFY ?= $(NODE) $(BIN)/browserify - -all: dist/debug.js - -install: node_modules - -clean: - @rm -rf dist - -dist: - @mkdir -p $@ - -dist/debug.js: node_modules browser.js debug.js dist - @$(BROWSERIFY) \ - --standalone debug \ - . > $@ - -distclean: clean - @rm -rf node_modules - -node_modules: package.json - @NODE_ENV= $(NPM) install - @touch node_modules - -.PHONY: all install clean distclean diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/Readme.md deleted file mode 100644 index b4f45e3c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/Readme.md +++ /dev/null @@ -1,188 +0,0 @@ -# debug - - tiny node.js debugging utility modelled after node core's debugging technique. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - - With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility. - -Example _app.js_: - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %s', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example _worker.js_: - -```js -var debug = require('debug')('worker'); - -setInterval(function(){ - debug('doing some work'); -}, 1000); -``` - - The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: - - ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) - - ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) - -#### Windows note - - On Windows the environment variable is set using the `set` command. - - ```cmd - set DEBUG=*,-not_this - ``` - -Then, run the program to be debugged as usual. - -## Millisecond diff - - When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) - - When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: - - ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) - -## Conventions - - If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". - -## Wildcards - - The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - - You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:". - -## Browser support - - Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include: - -```js -window.myDebug = require("debug"); -``` - - ("debug" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console: - -```js -myDebug.enable("worker:*") -``` - - Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - -#### Web Inspector Colors - - Colors are also enabled on "Web Inspectors" that understand the `%c` formatting - option. These are WebKit web inspectors, Firefox ([since version - 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) - and the Firebug plugin for Firefox (any version). - - Colored output looks something like: - - ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png) - -### stderr vs stdout - -You can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally: - -Example _stdout.js_: - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -### Save debug output to a file - -You can save all debug statements to a file by piping them. - -Example: - -```bash -$ DEBUG_FD=3 node your-app.js 3> whatever.log -``` - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - -## License - -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/bower.json deleted file mode 100644 index 6af573ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "visionmedia-debug", - "main": "dist/debug.js", - "version": "2.2.0", - "homepage": "https://github.com/visionmedia/debug", - "authors": [ - "TJ Holowaychuk " - ], - "description": "visionmedia-debug", - "moduleType": [ - "amd", - "es6", - "globals", - "node" - ], - "keywords": [ - "visionmedia", - "debug" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/browser.js deleted file mode 100644 index 7c764522..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/browser.js +++ /dev/null @@ -1,168 +0,0 @@ - -/** - * This is the web browser implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - -/** - * Colors. - */ - -exports.colors = [ - 'lightseagreen', - 'forestgreen', - 'goldenrod', - 'dodgerblue', - 'darkorchid', - 'crimson' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -function useColors() { - // is webkit? http://stackoverflow.com/a/16459606/376773 - return ('WebkitAppearance' in document.documentElement.style) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (window.console && (console.firebug || (console.exception && console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31); -} - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - return JSON.stringify(v); -}; - - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); - - if (!useColors) return args; - - var c = 'color: ' + this.color; - args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1)); - - // the final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - var index = 0; - var lastC = 0; - args[0].replace(/%[a-z%]/g, function(match) { - if ('%%' === match) return; - index++; - if ('%c' === match) { - // we only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); - return args; -} - -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ - -function log() { - // this hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - try { - if (null == namespaces) { - exports.storage.removeItem('debug'); - } else { - exports.storage.debug = namespaces; - } - } catch(e) {} -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - var r; - try { - r = exports.storage.debug; - } catch(e) {} - return r; -} - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage(){ - try { - return window.localStorage; - } catch (e) {} -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/component.json deleted file mode 100644 index ca106372..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "debug", - "repo": "visionmedia/debug", - "description": "small debugging utility", - "version": "2.2.0", - "keywords": [ - "debug", - "log", - "debugger" - ], - "main": "browser.js", - "scripts": [ - "browser.js", - "debug.js" - ], - "dependencies": { - "rauchg/ms.js": "0.7.1" - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/debug.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/debug.js deleted file mode 100644 index 7571a860..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/debug.js +++ /dev/null @@ -1,197 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = debug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = require('ms'); - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lowercased letter, i.e. "n". - */ - -exports.formatters = {}; - -/** - * Previously assigned color. - */ - -var prevColor = 0; - -/** - * Previous log timestamp. - */ - -var prevTime; - -/** - * Select a color. - * - * @return {Number} - * @api private - */ - -function selectColor() { - return exports.colors[prevColor++ % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function debug(namespace) { - - // define the `disabled` version - function disabled() { - } - disabled.enabled = false; - - // define the `enabled` version - function enabled() { - - var self = enabled; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // add the `color` if not set - if (null == self.useColors) self.useColors = exports.useColors(); - if (null == self.color && self.useColors) self.color = selectColor(); - - var args = Array.prototype.slice.call(arguments); - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %o - args = ['%o'].concat(args); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - if ('function' === typeof exports.formatArgs) { - args = exports.formatArgs.apply(self, args); - } - var logFn = enabled.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - enabled.enabled = true; - - var fn = exports.enabled(namespace) ? enabled : disabled; - - fn.namespace = namespace; - - return fn; -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - var split = (namespaces || '').split(/[\s,]+/); - var len = split.length; - - for (var i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node.js deleted file mode 100644 index 1d392a81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node.js +++ /dev/null @@ -1,209 +0,0 @@ - -/** - * Module dependencies. - */ - -var tty = require('tty'); -var util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -/** - * The file descriptor to write the `debug()` calls to. - * Set the `DEBUG_FD` env variable to override with another value. i.e.: - * - * $ DEBUG_FD=3 node script.js 3>debug.log - */ - -var fd = parseInt(process.env.DEBUG_FD, 10) || 2; -var stream = 1 === fd ? process.stdout : - 2 === fd ? process.stderr : - createWritableStdioStream(fd); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - var debugColors = (process.env.DEBUG_COLORS || '').trim().toLowerCase(); - if (0 === debugColors.length) { - return tty.isatty(fd); - } else { - return '0' !== debugColors - && 'no' !== debugColors - && 'false' !== debugColors - && 'disabled' !== debugColors; - } -} - -/** - * Map %o to `util.inspect()`, since Node doesn't do that out of the box. - */ - -var inspect = (4 === util.inspect.length ? - // node <= 0.8.x - function (v, colors) { - return util.inspect(v, void 0, void 0, colors); - } : - // node > 0.8.x - function (v, colors) { - return util.inspect(v, { colors: colors }); - } -); - -exports.formatters.o = function(v) { - return inspect(v, this.useColors) - .replace(/\s*\n\s*/g, ' '); -}; - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - var name = this.namespace; - - if (useColors) { - var c = this.color; - - args[0] = ' \u001b[3' + c + ';1m' + name + ' ' - + '\u001b[0m' - + args[0] + '\u001b[3' + c + 'm' - + ' +' + exports.humanize(this.diff) + '\u001b[0m'; - } else { - args[0] = new Date().toUTCString() - + ' ' + name + ' ' + args[0]; - } - return args; -} - -/** - * Invokes `console.error()` with the specified arguments. - */ - -function log() { - return stream.write(util.format.apply(this, arguments) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - if (null == namespaces) { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } else { - process.env.DEBUG = namespaces; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Copied from `node/src/node.js`. - * - * XXX: It's lame that node doesn't expose this API out-of-the-box. It also - * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. - */ - -function createWritableStdioStream (fd) { - var stream; - var tty_wrap = process.binding('tty_wrap'); - - // Note stream._type is used for test-module-load-list.js - - switch (tty_wrap.guessHandleType(fd)) { - case 'TTY': - stream = new tty.WriteStream(fd); - stream._type = 'tty'; - - // Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - case 'FILE': - var fs = require('fs'); - stream = new fs.SyncWriteStream(fd, { autoClose: false }); - stream._type = 'fs'; - break; - - case 'PIPE': - case 'TCP': - var net = require('net'); - stream = new net.Socket({ - fd: fd, - readable: false, - writable: true - }); - - // FIXME Should probably have an option in net.Socket to create a - // stream from an existing fd which is writable only. But for now - // we'll just add this hack and set the `readable` member to false. - // Test: ./node test/fixtures/echo.js < /etc/passwd - stream.readable = false; - stream.read = null; - stream._type = 'pipe'; - - // FIXME Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - default: - // Probably an error on in uv_guess_handle() - throw new Error('Implement me. Unknown stream file type!'); - } - - // For supporting legacy API we put the FD here. - stream.fd = fd; - - stream._isStdio = true; - - return stream; -} - -/** - * Enable namespaces listed in `process.env.DEBUG` initially. - */ - -exports.enable(load()); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/.npmignore deleted file mode 100644 index d1aa0ce4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules -test -History.md -Makefile -component.json diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/History.md deleted file mode 100644 index 32fdfc17..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/History.md +++ /dev/null @@ -1,66 +0,0 @@ - -0.7.1 / 2015-04-20 -================== - - * prevent extraordinary long inputs (@evilpacket) - * Fixed broken readme link - -0.7.0 / 2014-11-24 -================== - - * add time abbreviations, updated tests and readme for the new units - * fix example in the readme. - * add LICENSE file - -0.6.2 / 2013-12-05 -================== - - * Adding repository section to package.json to suppress warning from NPM. - -0.6.1 / 2013-05-10 -================== - - * fix singularization [visionmedia] - -0.6.0 / 2013-03-15 -================== - - * fix minutes - -0.5.1 / 2013-02-24 -================== - - * add component namespace - -0.5.0 / 2012-11-09 -================== - - * add short formatting as default and .long option - * add .license property to component.json - * add version to component.json - -0.4.0 / 2012-10-22 -================== - - * add rounding to fix crazy decimals - -0.3.0 / 2012-09-07 -================== - - * fix `ms()` [visionmedia] - -0.2.0 / 2012-09-03 -================== - - * add component.json [visionmedia] - * add days support [visionmedia] - * add hours support [visionmedia] - * add minutes support [visionmedia] - * add seconds support [visionmedia] - * add ms string support [visionmedia] - * refactor tests to facilitate ms(number) [visionmedia] - -0.1.0 / 2012-03-07 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/LICENSE deleted file mode 100644 index 6c07561b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Guillermo Rauch - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/README.md deleted file mode 100644 index 9b4fd035..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# ms.js: miliseconds conversion utility - -```js -ms('2 days') // 172800000 -ms('1d') // 86400000 -ms('10h') // 36000000 -ms('2.5 hrs') // 9000000 -ms('2h') // 7200000 -ms('1m') // 60000 -ms('5s') // 5000 -ms('100') // 100 -``` - -```js -ms(60000) // "1m" -ms(2 * 60000) // "2m" -ms(ms('10 hours')) // "10h" -``` - -```js -ms(60000, { long: true }) // "1 minute" -ms(2 * 60000, { long: true }) // "2 minutes" -ms(ms('10 hours'), { long: true }) // "10 hours" -``` - -- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download). -- If a number is supplied to `ms`, a string with a unit is returned. -- If a string that contains the number is supplied, it returns it as -a number (e.g: it returns `100` for `'100'`). -- If you pass a string with a number and a valid unit, the number of -equivalent ms is returned. - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/index.js deleted file mode 100644 index 4f927716..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/index.js +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} options - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options){ - options = options || {}; - if ('string' == typeof val) return parse(val); - return options.long - ? long(val) - : short(val); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = '' + str; - if (str.length > 10000) return; - var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str); - if (!match) return; - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function short(ms) { - if (ms >= d) return Math.round(ms / d) + 'd'; - if (ms >= h) return Math.round(ms / h) + 'h'; - if (ms >= m) return Math.round(ms / m) + 'm'; - if (ms >= s) return Math.round(ms / s) + 's'; - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function long(ms) { - return plural(ms, d, 'day') - || plural(ms, h, 'hour') - || plural(ms, m, 'minute') - || plural(ms, s, 'second') - || ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, n, name) { - if (ms < n) return; - if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name; - return Math.ceil(ms / n) + ' ' + name + 's'; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/package.json deleted file mode 100644 index e36489ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/node_modules/ms/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "ms", - "version": "0.7.1", - "description": "Tiny ms conversion utility", - "repository": { - "type": "git", - "url": "git://github.com/guille/ms.js.git" - }, - "main": "./index", - "devDependencies": { - "mocha": "*", - "expect.js": "*", - "serve": "*" - }, - "component": { - "scripts": { - "ms/index.js": "index.js" - } - }, - "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909", - "bugs": { - "url": "https://github.com/guille/ms.js/issues" - }, - "homepage": "https://github.com/guille/ms.js", - "_id": "ms@0.7.1", - "scripts": {}, - "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "_from": "ms@0.7.1", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/package.json deleted file mode 100644 index 33bdb64a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/debug/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "debug", - "version": "2.2.0", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" - ], - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "contributors": [ - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io" - } - ], - "license": "MIT", - "dependencies": { - "ms": "0.7.1" - }, - "devDependencies": { - "browserify": "9.0.3", - "mocha": "*" - }, - "main": "./node.js", - "browser": "./browser.js", - "component": { - "scripts": { - "debug/index.js": "browser.js", - "debug/debug.js": "debug.js" - } - }, - "gitHead": "b38458422b5aa8aa6d286b10dfe427e8a67e2b35", - "bugs": { - "url": "https://github.com/visionmedia/debug/issues" - }, - "homepage": "https://github.com/visionmedia/debug", - "_id": "debug@2.2.0", - "scripts": {}, - "_shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "_from": "debug@2.2.0", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "dist": { - "shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "tarball": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/.npmignore deleted file mode 100644 index f09f6306..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -examples -node_modules -test -npm-debug.log -coverage.html -.gitignore diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/.travis.yml deleted file mode 100644 index 148075d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -sudo: false -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.12" - - "4.0.0" - -notifications: - irc: "irc.freenode.org#socket.io" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/History.md deleted file mode 100644 index 31d1e3ed..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/History.md +++ /dev/null @@ -1,501 +0,0 @@ - -1.6.11 / 2016-06-23 -=================== - - * package: bump `ws` to support `maxPayload` - -1.6.10 / 2016-06-23 -=================== - - * set a default ws `maxPayload` [security fix] - * bump `accepts` [security fix] - -1.6.9 / 2016-05-03 -================== - - * bump client - -1.6.8 / 2016-01-25 -================== - - * fix graceful close [nkzawa] - * polling: don't set the `closeTimeoutTimer` if the transport is upgraded - -1.6.7 / 2016-01-10 -================== - - * bump version - -1.6.6 / 2016-01-07 -================== - - * bump version - -1.6.5 / 2016-01-05 -================== - - * package: upgrade ws for sec advisory - * server: catch websocket errors before upgrade - -1.6.4 / 2015-12-04 -================== - - * package: bump parser for arraybuffer base64 fix - -1.6.3 / 2015-12-01 -================== - - * restore testing on 0.8 - * improve X-XSS-Protection header definition [nkzawa] - * add threshold for permessage-deflate [nkzawa] - -1.6.2 / 2015-11-30 -================== - - * don't compress control packets - -1.6.1 / 2015-11-28 -================== - - * package: bump `engine.io-client` for `ws` options fix - * fix `latency` example - -1.6.0 / 2015-11-28 -================== - - * add support for environments that extend `Object.prototype` - * remove listeners upon `clearTransport` - * support for all versions of node - * fix lingering sockets that can stay open when upgrade failed - * ensure sockets are closed on error - * bump `ws` for several improvements - * fix for a rare race condition on some error scenarios - * support custom socket id - * use container-based infrastructure for faster build - * fix package.json wrongly referrering to self - * allow overriding the `cookiePath` - * fix potential encoding errors under certain conditions - * support compression - -1.5.4 / 2015-09-09 -================== - - * package: bump `engine.io-parser` - -1.5.3 / 2015-09-09 -================== - - * package: bump `ws` to fix node 4.0.0 - -1.5.2 / 2015-07-09 -================== - - * package: bump `ws` to fix build issues - -1.5.1 / 2015-01-19 -================== - - * no change on this release - * package: bump `engine.io-client` - -1.5.0 / 2015-01-18 -================== - - * package: bump `engine.io-parser` - * polling: correctly abort the ongoing data request when closing [lpinca] - * add cert-related client tests [rase-] - -1.4.3 / 2014-11-21 -================== - - * package: bump `ws` to fix fd leaks - * socket: flush the write buffer before closing the socket [lpinca] - * polling: close the pending poll request when closing transport [lpinca] - -1.4.2 / 2014-10-08 -================== - - * add iframe onload handling to jsonp tests [rase-] - -1.4.1 / 2014-10-03 -================== - - * socket: allow upgrades if the socket is still in closing state - * README: fix typo - -1.4.0 / 2014-09-03 -================== - - * readme: fix formatting for goals numbering - * server: ref fix by @nicokaiser - * server: fix ws memory leak (fixes #268) - * cache remote address in handshake since it might be lost later. - * correct git ref - * update client to commit with bumped parser - * package: bump parser - * npmignore: ignore `.gitignore` - * package: bump `debug` - * package: bump `engine.io-parser` for memleak fix - -1.3.1 / 2014-06-19 -================== - - * package: bump `engine.io-client` - -1.3.0 / 2014-06-13 -================== - - * update example to use v1.2.2 - * fixed newline parsing in jsonp - * make require('engine.io')() return a new Server instance [defunctzombie] - * add Server.attach method [defunctzombie] - * fix GH-211, set CORS headers when sending error message [mokesmokes] - -1.2.2 / 2014-05-30 -================== - - * package: bump `engine.io-parser` for binary utf8 fix - -1.2.1 / 2014-05-22 -================== - - * package: bump engine.io-client - -1.2.0 / 2014-05-18 -================== - - * removed flashsocket, moving to userland - -1.1.1 / 2014-05-14 -================== - - * test: reduce packet size - * package: bump parser - -1.1.0 / 2014-04-27 -================== - - * socket: removed unneeded `clearTimeout` (fixes #250) - * made the request verification process async - * package: bump `engine.io-parser` - * use _query instead of query, fixes compat with restify - * added a maximum buffer size to received data from polling - * fixing looping array via for in to normal loop - -1.0.5 / 2014-03-18 -================== - - * package: bump `engine.io-parser` and `engine.io-client` - -1.0.4 / 2014-03-14 -================== - - * package: bump `engine.io-client` - -1.0.3 / 2014-03-12 -================== - - * package: bump `engine.io-client` - -1.0.2 / 2014-03-12 -================== - - * bump engine.io-client - -1.0.1 / 2014-03-06 -================== - - * package: bump `engine.io-parser` - * transports: fix jshint warnings and style - -1.0.0 / 2014-03-06 -================== - - * polling-xhr: added `OPTIONS` support, fixes CORS - * close() properly when triggered in connection handler - * fix DDOS vector by setting up too many intervals - * binary support - -0.9.0 / 2014-02-09 -================== - - * Prevent errors with connections behind proxies without WS support - like Squid [nicklagrow, samaanghani, davidhcummings] - * Socket#request a simple property [mokesmokes] - * Changed `Socket`'s `upgrade` event to happen after upgrade [mokesmokes] - * Document `Socket#id` [mokesmokes] - -0.8.2 / 2014-01-18 -================== - - * package: bump `engine.io-client` - -0.8.1 / 2014-01-17 -================== - - * package: bump `engine.io-client` - * package: pin dev deps - * examples: fix port output - * fix latency example - -0.8.0 / 2014-01-05 -================== - - * package: bump `engine.io-client` to `0.8.0` - * test: fix syntax, remove globals - -0.7.14 / 2014-01-01 -=================== - - * package: bump `engine.io-client` to `0.7.14` - -0.7.13 / 2013-12-20 -=================== - - * package: bump `engine.io-client` - * transports: added support for XSS filters on IE [guille, 3rd-eden] - -0.7.12 / 2013-11-11 -=================== - - * package: bump `engine.io-client` - -0.7.11 / 2013-11-06 -=================== - - * package: bump engine.io-client - * fix GH-198 - -0.7.10 / 2013-10-28 -=================== - - * package: bump `engine.io-client` - * package: update "ws" to v0.4.31 - -0.7.9 / 2013-08-30 -================== - - * package: bump `engine.io-client` - -0.7.8 / 2013-08-30 -================== - - * package: bump `engine.io-client` - * package: bump ws - -0.7.7 / 2013-08-30 -================== - - * package: bump `engine.io-client` - -0.7.6 / 2013-08-30 -================== - - * package: bump engine.io-client - -0.7.5 / 2013-08-30 -================== - - * package: bump engine.io-client - -0.7.4 / 2013-08-25 -================== - - * package: bump `engine.io-client` - -0.7.3 / 2013-08-23 -================== - - * package: bump engine.io-client (noop) - * package: fix regresison in upgrade cause by ws update - -0.7.2 / 2013-08-23 -================== - - * package: bump `engine.io-client` for `WebSocket` browser fix - -0.7.1 / 2013-08-23 -================== - - * package: bump engine.io-client for ws fix - -0.7.0 / 2013-08-23 -================== - - * package: bump engine.io-client - * updated example - * inline merge - * added support node version 0.10 to .travis.yml - * fixed respond to flash policy request test. Closes #184 - * fixed upgrade with timeout test. Closes #185 - * engine.io: don't use __proto__, closes #170 - -0.6.3 / 2013-06-21 -================== - - * package: bumped `engine.io-client` to `0.6.3` - -0.6.2 / 2013-06-15 -================== - - * fix upgrade stalling edge case introduced with #174 fix - * remove unneeded client code related to iOS - * added test for `engine.io-client` `0.6.1` - -0.6.1 / 2013-06-06 -================== - - * package: bumped `engine.io-client` to `0.6.1` - -0.6.0 / 2013-05-31 -================== - - * socket: clear timer after sending one noop packet (fixes #174) - * clear all timers on socket close - * sending error on transport creation upon a bad request - * added test for client-side buffer cleanup - * changed flushComplete to flush - * ended support for node 0.6 - -0.5.0 / 2013-03-16 -================== - - * polling: implemented new parser - * test writeBuffer isn't cleared onError, removed 'closing' check in .flush() - * fixed bug89 and added tests: writeBuffer not flushed until nextTick - -0.4.3 / 2013-02-08 -================== - - * package: bumped `engine.io-client` to `0.4.3` - -0.4.2 / 2013-02-08 -================== - - * Only end upgrade socket connections if unhandled - * Fix websocket dependency - * Close socket if upgrade is received and socket.readyState != open - -0.4.1 / 2013-01-18 -================== - - * package: bumped versions - * Fixed bugs in previous send callback fix and updated test cases - * Added a test case which makes the code before the send callback fix fail - * socket: emit `data` event (synonym with `message`) - * socket: added `Socket#write` - * engine.io: cleanup - * engine.io: deprecated `resource` - * `npm docs engine.io` works now - -0.3.10 / 2012-12-03 -=================== - - * package: bumped `engine.io-client` with `close` fixes - * add packetCreate event [jxck] - * add packet event to socket [jxck] - * transport: remove `Connection` headers and let node handle it - * server: send validation failure reason to clients - * engine: invoking as a function causes attach - * socket: reset `writeBuffer` before send - -0.3.9 / 2012-10-23 -================== - - * package: bumped `engine.io-client` - -0.3.8 / 2012-10-23 -================== - - * package: bumped engine.io-client - * examples: added first example - -0.3.7 / 2012-10-21 -================== - - * package: bumped `engine.io-client` - -0.3.6 / 2012-10-21 -================== - - [skipped] - -0.3.5 / 2012-10-14 -================== - - * package: reverted last commit - we use the parser from the client - -0.3.4 / 2012-10-14 -================== - - * package: `engine.io-client` moved to `devDependencies` - * socket: added missing jsdoc - -0.3.3 / 2012-10-10 -================== - - * socket: fixed check interval clearing [joewalnes] - * transports: improved instrumentation - -0.3.2 / 2012-10-08 -================== - - * socket: improve check interval for upgrade - -0.3.1 / 2012-10-08 -================== - - * socket: faster upgrades (we perform a check immediately) - * server: don't assume sid is numeric - -0.3.0 / 2012-10-04 -================== - - * socket: `writeBuffer` now gets sliced, and is recoverable after `close` [afshinm] - * server: expect ping from client and send interval with handshake [cadorn] - * polling-jsonp: prevent client breakage with utf8 whitespace - * socket: fix `flush` and `drain` events - * socket: add `send` callback [afshinm] - * transport: avoid unhandled error events for stale transports - * README: documentation improvements [EugenDueck] - -0.2.2 / 2012-08-26 -================== - - * server: remove buffering for flash policy requests - * transport: avoid unhandled error events for stale transports (fixes #69) - * readme: documented `toString` behavior on `send` [EugenDueck] - -0.2.1 / 2012-08-13 -================== - - * polling-xhr: skip Keep-Alive when it's implied [EugenDueck] - * polling-jsonp: skip Keep-Alive when it's implied [EugenDueck] - * README: added plugins list with engine.io-conflation - * socket: added flush/drain events (fixes #56) - * server: avoid passing websocket to non-websocket transports (fixes #24) - -0.2.0 / 2012-08-06 -================== - - * Bumped client - * test: added closing connection test - * server: implemented stronger id generator with collision detection - -0.1.2 / 2012-08-02 -================== - - * Fixed a jsonp bug in Nokia mobile phones and potentially other UAs. - -0.1.1 / 2012-08-01 -================== - - * Fixed errors when a socket is closed while upgrade probe is happening. - * Improved WS error handling - * Replaced websocket.io with ws, now that it supports older drafts - * README fixes - -0.1.0 / 2012-07-03 -================== - - * Initial release. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/LICENSE deleted file mode 100644 index 6494c3c7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Guillermo Rauch - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/Makefile deleted file mode 100644 index 5046cedf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/Makefile +++ /dev/null @@ -1,23 +0,0 @@ - -TESTS = test/*.js -BENCHMARKS = $(shell find bench -type f ! -name 'runner.js') -REPORTER = dot - -test: - @./node_modules/.bin/mocha \ - --reporter $(REPORTER) \ - --slow 500ms \ - --bail \ - --globals ___eio,document \ - $(TESTS) - -test-cov: lib-cov - EIO_COV=1 $(MAKE) test REPORTER=html-cov > coverage.html - -lib-cov: - jscoverage --no-highlight lib lib-cov - -bench: - @node $(PROFILEFLAGS) bench/runner.js $(BENCHMARKS) - -.PHONY: test test-cov bench diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/README.md deleted file mode 100644 index e0f793a4..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/README.md +++ /dev/null @@ -1,534 +0,0 @@ - -# Engine.IO: the realtime engine - -[![Build Status](https://secure.travis-ci.org/socketio/engine.io.svg)](http://travis-ci.org/socketio/engine.io) -[![NPM version](https://badge.fury.io/js/engine.io.svg)](http://badge.fury.io/js/engine.io) - -`Engine.IO` is the implementation of transport-based -cross-browser/cross-device bi-directional communication layer for -[Socket.IO](http://github.com/socketio/socket.io). - -## How to use - -### Server - -#### (A) Listening on a port - -```js -var engine = require('engine.io'); -var server = engine.listen(80); - -server.on('connection', function(socket){ - socket.send('utf 8 string'); - socket.send(new Buffer([0, 1, 2, 3, 4, 5])); // binary data -}); -``` - -#### (B) Intercepting requests for a http.Server - -```js -var engine = require('engine.io'); -var http = require('http').createServer().listen(3000); -var server = engine.attach(http); - -server.on('connection', function (socket) { - socket.on('message', function(data){ }); - socket.on('close', function(){ }); -}); -``` - -#### (C) Passing in requests - -```js -var engine = require('engine.io'); -var server = new engine.Server(); - -server.on('connection', function(socket){ - socket.send('hi'); -}); - -// … -httpServer.on('upgrade', function(req, socket, head){ - server.handleUpgrade(req, socket, head); -}); -httpServer.on('request', function(req, res){ - server.handleRequest(req, res); -}); -``` - -### Client - -```html - - -``` - -For more information on the client refer to the -[engine-client](http://github.com/learnboost/engine.io-client) repository. - -## What features does it have? - -- **Maximum reliability**. Connections are established even in the presence of: - - proxies and load balancers. - - personal firewall and antivirus software. - - for more information refer to **Goals** and **Architecture** sections -- **Minimal client size** aided by: - - lazy loading of flash transports. - - lack of redundant transports. -- **Scalable** - - load balancer friendly -- **Future proof** -- **100% Node.JS core style** - - No API sugar (left for higher level projects) - - Written in readable vanilla JavaScript - -## API - -### Server - -

            - -#### Top-level - -These are exposed by `require('engine.io')`: - -##### Events - -- `flush` - - Called when a socket buffer is being flushed. - - **Arguments** - - `Socket`: socket being flushed - - `Array`: write buffer -- `drain` - - Called when a socket buffer is drained - - **Arguments** - - `Socket`: socket being flushed - -##### Properties - -- `protocol` _(Number)_: protocol revision number -- `Server`: Server class constructor -- `Socket`: Socket class constructor -- `Transport` _(Function)_: transport constructor -- `transports` _(Object)_: map of available transports - -##### Methods - -- `()` - - Returns a new `Server` instance. If the first argument is an `http.Server` then the - new `Server` instance will be attached to it. Otherwise, the arguments are passed - directly to the `Server` constructor. - - **Parameters** - - `http.Server`: optional, server to attach to. - - `Object`: optional, options object (see `Server#constructor` api docs below) - - The following are identical ways to instantiate a server and then attach it. - ```js - var httpServer; // previously created with `http.createServer();` from node.js api. - - // create a server first, and then attach - var eioServer = require('engine.io').Server(); - eioServer.attach(httpServer); - - // or call the module as a function to get `Server` - var eioServer = require('engine.io')(); - eioServer.attach(httpServer); - - // immediately attach - var eioServer = require('engine.io')(httpServer); - ``` - -- `listen` - - Creates an `http.Server` which listens on the given port and attaches WS - to it. It returns `501 Not Implemented` for regular http requests. - - **Parameters** - - `Number`: port to listen on. - - `Object`: optional, options object - - `Function`: callback for `listen`. - - **Options** - - All options from `Server.attach` method, documented below. - - **Additionally** See Server `constructor` below for options you can pass for creating the new Server - - **Returns** `Server` -- `attach` - - Captures `upgrade` requests for a `http.Server`. In other words, makes - a regular http.Server WebSocket-compatible. - - **Parameters** - - `http.Server`: server to attach to. - - `Object`: optional, options object - - **Options** - - All options from `Server.attach` method, documented below. - - **Additionally** See Server `constructor` below for options you can pass for creating the new Server - - **Returns** `Server` a new Server instance. - -

            - -#### Server - -The main server/manager. _Inherits from EventEmitter_. - -##### Events - -- `connection` - - Fired when a new connection is established. - - **Arguments** - - `Socket`: a Socket object - -##### Properties - -**Important**: if you plan to use Engine.IO in a scalable way, please -keep in mind the properties below will only reflect the clients connected -to a single process. - -- `clients` _(Object)_: hash of connected clients by id. -- `clientsCount` _(Number)_: number of connected clients. - -##### Methods - -- **constructor** - - Initializes the server - - **Parameters** - - `Object`: optional, options object - - **Options** - - `pingTimeout` (`Number`): how many ms without a pong packet to - consider the connection closed (`60000`) - - `pingInterval` (`Number`): how many ms before sending a new ping - packet (`25000`) - - `maxHttpBufferSize` (`Number`): how many bytes or characters a message - can be when polling, before closing the session (to avoid DoS). Default - value is `10E7`. - - `allowRequest` (`Function`): A function that receives a given handshake - or upgrade request as its first parameter, and can decide whether to - continue or not. The second argument is a function that needs to be - called with the decided information: `fn(err, success)`, where - `success` is a boolean value where false means that the request is - rejected, and err is an error code. - - `transports` (` String`): transports to allow connections - to (`['polling', 'websocket']`) - - `allowUpgrades` (`Boolean`): whether to allow transport upgrades - (`true`) - - `perMessageDeflate` (`Object|Boolean`): parameters of the WebSocket permessage-deflate extension - (see [ws module](https://github.com/einaros/ws) api docs). Set to `false` to disable. (`true`) - - `threshold` (`Number`): data is compressed only if the byte size is above this value (`1024`) - - `httpCompression` (`Object|Boolean`): parameters of the http compression for the polling transports - (see [zlib](http://nodejs.org/api/zlib.html#zlib_options) api docs). Set to `false` to disable. (`true`) - - `threshold` (`Number`): data is compressed only if the byte size is above this value (`1024`) - - `cookie` (`String|Boolean`): name of the HTTP cookie that - contains the client sid to send as part of handshake response - headers. Set to `false` to not send one. (`io`) - - `cookiePath` (`String|Boolean`): path of the above `cookie` - option. If false, no path will be sent, which means browsers will only send the cookie on the engine.io attached path (`/engine.io`). - Set this to `/` to send the io cookie on all requests. (`false`) -- `close` - - Closes all clients - - **Returns** `Server` for chaining -- `handleRequest` - - Called internally when a `Engine` request is intercepted. - - **Parameters** - - `http.ServerRequest`: a node request object - - `http.ServerResponse`: a node response object - - **Returns** `Server` for chaining -- `handleUpgrade` - - Called internally when a `Engine` ws upgrade is intercepted. - - **Parameters** (same as `upgrade` event) - - `http.ServerRequest`: a node request object - - `net.Stream`: TCP socket for the request - - `Buffer`: legacy tail bytes - - **Returns** `Server` for chaining -- `attach` - - Attach this Server instance to an `http.Server` - - Captures `upgrade` requests for a `http.Server`. In other words, makes - a regular http.Server WebSocket-compatible. - - **Parameters** - - `http.Server`: server to attach to. - - `Object`: optional, options object - - **Options** - - `path` (`String`): name of the path to capture (`/engine.io`). - - `destroyUpgrade` (`Boolean`): destroy unhandled upgrade requests (`true`) - - `destroyUpgradeTimeout` (`Number`): milliseconds after which unhandled requests are ended (`1000`) -- `generateId` - - Generate a socket id. - - Overwrite this method to generate your custom socket id. - - **Parameters** - - `http.ServerRequest`: a node request object - - **Returns** A socket id for connected client. - -

            - -#### Socket - -A representation of a client. _Inherits from EventEmitter_. - -##### Events - -- `close` - - Fired when the client is disconnected. - - **Arguments** - - `String`: reason for closing - - `Object`: description object (optional) -- `message` - - Fired when the client sends a message. - - **Arguments** - - `String` or `Buffer`: Unicode string or Buffer with binary contents -- `error` - - Fired when an error occurs. - - **Arguments** - - `Error`: error object -- `flush` - - Called when the write buffer is being flushed. - - **Arguments** - - `Array`: write buffer -- `drain` - - Called when the write buffer is drained -- `packet` - - Called when a socket received a packet (`message`, `ping`) - - **Arguments** - - `type`: packet type - - `data`: packet data (if type is message) -- `packetCreate` - - Called before a socket sends a packet (`message`, `pong`) - - **Arguments** - - `type`: packet type - - `data`: packet data (if type is message) - -##### Properties - -- `id` _(String)_: unique identifier -- `server` _(Server)_: engine parent reference -- `request` _(http.ServerRequest)_: request that originated the Socket -- `upgraded` _(Boolean)_: whether the transport has been upgraded -- `readyState` _(String)_: opening|open|closing|closed -- `transport` _(Transport)_: transport reference - -##### Methods - -- `send`: - - Sends a message, performing `message = toString(arguments[0])` unless - sending binary data, which is sent as is. - - **Parameters** - - `String` | `Buffer` | `ArrayBuffer` | `ArrayBufferView`: a string or any object implementing `toString()`, with outgoing data, or a Buffer or ArrayBuffer with binary data. Also any ArrayBufferView can be sent as is. - - `Object`: optional, options object - - `Function`: optional, a callback executed when the message gets flushed out by the transport - - **Options** - - `compress` (`Boolean`): whether to compress sending data. This option might be ignored and forced to be `true` when using polling. (`true`) - - **Returns** `Socket` for chaining -- `close` - - Disconnects the client - - **Returns** `Socket` for chaining - -### Client - -

            - -Exposed in the `eio` global namespace (in the browser), or by -`require('engine.io-client')` (in Node.JS). - -For the client API refer to the -[engine-client](http://github.com/learnboost/engine.io-client) repository. - -## Debug / logging - -Engine.IO is powered by [debug](http://github.com/visionmedia/debug). -In order to see all the debug output, run your app with the environment variable -`DEBUG` including the desired scope. - -To see the output from all of Engine.IO's debugging scopes you can use: - -``` -DEBUG=engine* node myapp -``` - -## Transports - -- `polling`: XHR / JSONP polling transport. -- `websocket`: WebSocket transport. - -## Plugins - -- [engine.io-conflation](https://github.com/EugenDueck/engine.io-conflation): Makes **conflation and aggregation** of messages straightforward. - -## Support - -The support channels for `engine.io` are the same as `socket.io`: - - irc.freenode.net **#socket.io** - - [Google Groups](http://groups.google.com/group/socket_io) - - [Website](http://socket.io) - -## Development - -To contribute patches, run tests or benchmarks, make sure to clone the -repository: - -``` -git clone git://github.com/LearnBoost/engine.io.git -``` - -Then: - -``` -cd engine.io -npm install -``` - -## Tests - -Tests run with `make test`. It runs the server tests that are aided by -the usage of `engine.io-client`. - -Make sure `npm install` is run first. - -## Goals - -The main goal of `Engine` is ensuring the most reliable realtime communication. -Unlike the previous Socket.IO core, it always establishes a long-polling -connection first, then tries to upgrade to better transports that are "tested" on -the side. - -During the lifetime of the Socket.IO projects, we've found countless drawbacks -to relying on `HTML5 WebSocket` or `Flash Socket` as the first connection -mechanisms. - -Both are clearly the _right way_ of establishing a bidirectional communication, -with HTML5 WebSocket being the way of the future. However, to answer most business -needs, alternative traditional HTTP 1.1 mechanisms are just as good as delivering -the same solution. - -WebSocket based connections have two fundamental benefits: - -1. **Better server performance** - - _A: Load balancers_
            - Load balancing a long polling connection poses a serious architectural nightmare - since requests can come from any number of open sockets by the user agent, but - they all need to be routed to the process and computer that owns the `Engine` - connection. This negatively impacts RAM and CPU usage. - - _B: Network traffic_
            - WebSocket is designed around the premise that each message frame has to be - surrounded by the least amount of data. In HTTP 1.1 transports, each message - frame is surrounded by HTTP headers and chunked encoding frames. If you try to - send the message _"Hello world"_ with xhr-polling, the message ultimately - becomes larger than if you were to send it with WebSocket. - - _C: Lightweight parser_
            - As an effect of **B**, the server has to do a lot more work to parse the network - data and figure out the message when traditional HTTP requests are used - (as in long polling). This means that another advantage of WebSocket is - less server CPU usage. - -2. **Better user experience** - - Due to the reasons stated in point **1**, the most important effect of being able - to establish a WebSocket connection is raw data transfer speed, which translates - in _some_ cases in better user experience. - - Applications with heavy realtime interaction (such as games) will benefit greatly, - whereas applications like realtime chat (Gmail/Facebook), newsfeeds (Facebook) or - timelines (Twitter) will have negligible user experience improvements. - -Having said this, attempting to establish a WebSocket connection directly so far has -proven problematic: - -1. **Proxies**
            - Many corporate proxies block WebSocket traffic. - -2. **Personal firewall and antivirus software**
            - As a result of our research, we've found that at least 3 personal security - applications block WebSocket traffic. - -3. **Cloud application platforms**
            - Platforms like Heroku or No.de have had trouble keeping up with the fast-paced - nature of the evolution of the WebSocket protocol. Applications therefore end up - inevitably using long polling, but the seamless installation experience of - Socket.IO we strive for (_"require() it and it just works"_) disappears. - -Some of these problems have solutions. In the case of proxies and personal programs, -however, the solutions many times involve upgrading software. Experience has shown -that relying on client software upgrades to deliver a business solution is -fruitless: the very existence of this project has to do with a fragmented panorama -of user agent distribution, with clients connecting with latest versions of the most -modern user agents (Chrome, Firefox and Safari), but others with versions as low as -IE 5.5. - -From the user perspective, an unsuccessful WebSocket connection can translate in -up to at least 10 seconds of waiting for the realtime application to begin -exchanging data. This **perceptively** hurts user experience. - -To summarize, **Engine** focuses on reliability and user experience first, marginal -potential UX improvements and increased server performance second. `Engine` is the -result of all the lessons learned with WebSocket in the wild. - -## Architecture - -The main premise of `Engine`, and the core of its existence, is the ability to -swap transports on the fly. A connection starts as xhr-polling, but it can -switch to WebSocket. - -The central problem this poses is: how do we switch transports without losing -messages? - -`Engine` only switches from polling to another transport in between polling -cycles. Since the server closes the connection after a certain timeout when -there's no activity, and the polling transport implementation buffers messages -in between connections, this ensures no message loss and optimal performance. - -Another benefit of this design is that we workaround almost all the limitations -of **Flash Socket**, such as slow connection times, increased file size (we can -safely lazy load it without hurting user experience), etc. - -## FAQ - -### Can I use engine without Socket.IO ? - -Absolutely. Although the recommended framework for building realtime applications -is Socket.IO, since it provides fundamental features for real-world applications -such as multiplexing, reconnection support, etc. - -`Engine` is to Socket.IO what Connect is to Express. An essential piece for building -realtime frameworks, but something you _probably_ won't be using for building -actual applications. - -### Does the server serve the client? - -No. The main reason is that `Engine` is meant to be bundled with frameworks. -Socket.IO includes `Engine`, therefore serving two clients is not necessary. If -you use Socket.IO, including - -```html - - ``` - -## Features - -- Runs on browser and node.js seamlessly -- Runs inside HTML5 WebWorker -- Can encode and decode packets - - Encodes from/to ArrayBuffer or Blob when in browser, and Buffer or ArrayBuffer in Node - -## API - -Note: `cb(type)` means the type is a callback function that contains a parameter of type `type` when called. - -### Node - -- `encodePacket` - - Encodes a packet. - - **Parameters** - - `Object`: the packet to encode, has `type` and `data`. - - `data`: can be a `String`, `Number`, `Buffer`, `ArrayBuffer` - - `Boolean`: optional, binary support - - `Function`: callback, returns the encoded packet (`cb(String)`) -- `decodePacket` - - Decodes a packet. Data also available as an ArrayBuffer if requested. - - Returns data as `String` or (`Blob` on browser, `ArrayBuffer` on Node) - - **Parameters** - - `String` | `ArrayBuffer`: the packet to decode, has `type` and `data` - - `String`: optional, the binary type - -- `encodeBase64Packet` - - Encodes a packet with binary data in a base64 string (`String`) - - **Parameters** - - `Object`: the packet to encode, has `type` and `data` - - `Function`: callback, returns the base64 encoded message (`cb(String)`) -- `decodeBase64Packet` - - Decodes a packet encoded in a base64 string. - - **Parameters** - - `String`: the base64 encoded message - - `String`: optional, the binary type - -- `encodePayload` - - Encodes multiple messages (payload). - - If any contents are binary, they will be encoded as base64 strings. Base64 - encoded strings are marked with a b before the length specifier - - **Parameters** - - `Array`: an array of packets - - `Boolean`: optional, binary support - - `Function`: callback, returns the encoded payload (`cb(String)`) -- `decodePayload` - - Decodes data when a payload is maybe expected. Possible binary contents are - decoded from their base64 representation. - - **Parameters** - - `String`: the payload - - `String`: optional, the binary type - - `Function`: callback, returns (cb(`Object`: packet, `Number`:packet index, `Number`:packet total)) - -- `encodePayloadAsBinary` - - Encodes multiple messages (payload) as binary. - - **Parameters** - - `Array`: an array of packets - - `Function`: callback, returns the encoded payload (`cb(Buffer)`) -- `decodePayloadAsBinary` - - Decodes data when a payload is maybe expected. Strings are decoded by - interpreting each byte as a key code for entries marked to start with 0. See - description of encodePayloadAsBinary. - - **Parameters** - - `Buffer`: the buffer - - `String`: optional, the binary type - - `Function`: callback, returns the decoded packet (`cb(Object)`) - -### Browser - -- `encodePayloadAsArrayBuffer` - - Encodes multiple messages (payload) as binary. - - **Parameters** - - `Array`: an array of packets - - `Function`: callback, returns the encoded payload (`cb(ArrayBuffer)`) -- `encodePayloadAsBlob` - - Encodes multiple messages (payload) as blob. - - **Parameters** - - `Array`: an array of packets - - `Function`: callback, returns the encoded payload (`cb(Blob)`) - -## Tests - -Standalone tests can be run with `make test` which will run both node.js and browser tests. - -Browser tests are run using [zuul](https://github.com/defunctzombie/zuul). -(You must have zuul setup with a saucelabs account.) - -You can run the tests locally using the following command: - -``` -./node_modules/.bin/zuul --local 8080 -- test/index.js -``` - -## Support - -The support channels for `engine.io-parser` are the same as `socket.io`: - - irc.freenode.net **#socket.io** - - [Google Groups](http://groups.google.com/group/socket_io) - - [Website](http://socket.io) - -## Development - -To contribute patches, run tests or benchmarks, make sure to clone the -repository: - -```bash -git clone git://github.com/LearnBoost/engine.io-parser.git -``` - -Then: - -```bash -cd engine.io-parser -npm install -``` - -See the `Tests` section above for how to run tests before submitting any patches. - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/index.js deleted file mode 100644 index 887727fd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/index.js +++ /dev/null @@ -1,2 +0,0 @@ - -module.exports = require('./lib/'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/browser.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/browser.js deleted file mode 100644 index 8dc26cdf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/browser.js +++ /dev/null @@ -1,594 +0,0 @@ -/** - * Module dependencies. - */ - -var keys = require('./keys'); -var hasBinary = require('has-binary'); -var sliceBuffer = require('arraybuffer.slice'); -var base64encoder = require('base64-arraybuffer'); -var after = require('after'); -var utf8 = require('utf8'); - -/** - * Check if we are running an android browser. That requires us to use - * ArrayBuffer with polling transports... - * - * http://ghinda.net/jpeg-blob-ajax-android/ - */ - -var isAndroid = navigator.userAgent.match(/Android/i); - -/** - * Check if we are running in PhantomJS. - * Uploading a Blob with PhantomJS does not work correctly, as reported here: - * https://github.com/ariya/phantomjs/issues/11395 - * @type boolean - */ -var isPhantomJS = /PhantomJS/i.test(navigator.userAgent); - -/** - * When true, avoids using Blobs to encode payloads. - * @type boolean - */ -var dontSendBlobs = isAndroid || isPhantomJS; - -/** - * Current protocol version. - */ - -exports.protocol = 3; - -/** - * Packet types. - */ - -var packets = exports.packets = { - open: 0 // non-ws - , close: 1 // non-ws - , ping: 2 - , pong: 3 - , message: 4 - , upgrade: 5 - , noop: 6 -}; - -var packetslist = keys(packets); - -/** - * Premade error packet. - */ - -var err = { type: 'error', data: 'parser error' }; - -/** - * Create a blob api even for blob builder when vendor prefixes exist - */ - -var Blob = require('blob'); - -/** - * Encodes a packet. - * - * [ ] - * - * Example: - * - * 5hello world - * 3 - * 4 - * - * Binary is encoded in an identical principle - * - * @api private - */ - -exports.encodePacket = function (packet, supportsBinary, utf8encode, callback) { - if ('function' == typeof supportsBinary) { - callback = supportsBinary; - supportsBinary = false; - } - - if ('function' == typeof utf8encode) { - callback = utf8encode; - utf8encode = null; - } - - var data = (packet.data === undefined) - ? undefined - : packet.data.buffer || packet.data; - - if (global.ArrayBuffer && data instanceof ArrayBuffer) { - return encodeArrayBuffer(packet, supportsBinary, callback); - } else if (Blob && data instanceof global.Blob) { - return encodeBlob(packet, supportsBinary, callback); - } - - // might be an object with { base64: true, data: dataAsBase64String } - if (data && data.base64) { - return encodeBase64Object(packet, callback); - } - - // Sending data as a utf-8 string - var encoded = packets[packet.type]; - - // data fragment is optional - if (undefined !== packet.data) { - encoded += utf8encode ? utf8.encode(String(packet.data)) : String(packet.data); - } - - return callback('' + encoded); - -}; - -function encodeBase64Object(packet, callback) { - // packet data is an object { base64: true, data: dataAsBase64String } - var message = 'b' + exports.packets[packet.type] + packet.data.data; - return callback(message); -} - -/** - * Encode packet helpers for binary types - */ - -function encodeArrayBuffer(packet, supportsBinary, callback) { - if (!supportsBinary) { - return exports.encodeBase64Packet(packet, callback); - } - - var data = packet.data; - var contentArray = new Uint8Array(data); - var resultBuffer = new Uint8Array(1 + data.byteLength); - - resultBuffer[0] = packets[packet.type]; - for (var i = 0; i < contentArray.length; i++) { - resultBuffer[i+1] = contentArray[i]; - } - - return callback(resultBuffer.buffer); -} - -function encodeBlobAsArrayBuffer(packet, supportsBinary, callback) { - if (!supportsBinary) { - return exports.encodeBase64Packet(packet, callback); - } - - var fr = new FileReader(); - fr.onload = function() { - packet.data = fr.result; - exports.encodePacket(packet, supportsBinary, true, callback); - }; - return fr.readAsArrayBuffer(packet.data); -} - -function encodeBlob(packet, supportsBinary, callback) { - if (!supportsBinary) { - return exports.encodeBase64Packet(packet, callback); - } - - if (dontSendBlobs) { - return encodeBlobAsArrayBuffer(packet, supportsBinary, callback); - } - - var length = new Uint8Array(1); - length[0] = packets[packet.type]; - var blob = new Blob([length.buffer, packet.data]); - - return callback(blob); -} - -/** - * Encodes a packet with binary data in a base64 string - * - * @param {Object} packet, has `type` and `data` - * @return {String} base64 encoded message - */ - -exports.encodeBase64Packet = function(packet, callback) { - var message = 'b' + exports.packets[packet.type]; - if (Blob && packet.data instanceof global.Blob) { - var fr = new FileReader(); - fr.onload = function() { - var b64 = fr.result.split(',')[1]; - callback(message + b64); - }; - return fr.readAsDataURL(packet.data); - } - - var b64data; - try { - b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data)); - } catch (e) { - // iPhone Safari doesn't let you apply with typed arrays - var typed = new Uint8Array(packet.data); - var basic = new Array(typed.length); - for (var i = 0; i < typed.length; i++) { - basic[i] = typed[i]; - } - b64data = String.fromCharCode.apply(null, basic); - } - message += global.btoa(b64data); - return callback(message); -}; - -/** - * Decodes a packet. Changes format to Blob if requested. - * - * @return {Object} with `type` and `data` (if any) - * @api private - */ - -exports.decodePacket = function (data, binaryType, utf8decode) { - // String data - if (typeof data == 'string' || data === undefined) { - if (data.charAt(0) == 'b') { - return exports.decodeBase64Packet(data.substr(1), binaryType); - } - - if (utf8decode) { - try { - data = utf8.decode(data); - } catch (e) { - return err; - } - } - var type = data.charAt(0); - - if (Number(type) != type || !packetslist[type]) { - return err; - } - - if (data.length > 1) { - return { type: packetslist[type], data: data.substring(1) }; - } else { - return { type: packetslist[type] }; - } - } - - var asArray = new Uint8Array(data); - var type = asArray[0]; - var rest = sliceBuffer(data, 1); - if (Blob && binaryType === 'blob') { - rest = new Blob([rest]); - } - return { type: packetslist[type], data: rest }; -}; - -/** - * Decodes a packet encoded in a base64 string - * - * @param {String} base64 encoded message - * @return {Object} with `type` and `data` (if any) - */ - -exports.decodeBase64Packet = function(msg, binaryType) { - var type = packetslist[msg.charAt(0)]; - if (!global.ArrayBuffer) { - return { type: type, data: { base64: true, data: msg.substr(1) } }; - } - - var data = base64encoder.decode(msg.substr(1)); - - if (binaryType === 'blob' && Blob) { - data = new Blob([data]); - } - - return { type: type, data: data }; -}; - -/** - * Encodes multiple messages (payload). - * - * :data - * - * Example: - * - * 11:hello world2:hi - * - * If any contents are binary, they will be encoded as base64 strings. Base64 - * encoded strings are marked with a b before the length specifier - * - * @param {Array} packets - * @api private - */ - -exports.encodePayload = function (packets, supportsBinary, callback) { - if (typeof supportsBinary == 'function') { - callback = supportsBinary; - supportsBinary = null; - } - - var isBinary = hasBinary(packets); - - if (supportsBinary && isBinary) { - if (Blob && !dontSendBlobs) { - return exports.encodePayloadAsBlob(packets, callback); - } - - return exports.encodePayloadAsArrayBuffer(packets, callback); - } - - if (!packets.length) { - return callback('0:'); - } - - function setLengthHeader(message) { - return message.length + ':' + message; - } - - function encodeOne(packet, doneCallback) { - exports.encodePacket(packet, !isBinary ? false : supportsBinary, true, function(message) { - doneCallback(null, setLengthHeader(message)); - }); - } - - map(packets, encodeOne, function(err, results) { - return callback(results.join('')); - }); -}; - -/** - * Async array map using after - */ - -function map(ary, each, done) { - var result = new Array(ary.length); - var next = after(ary.length, done); - - var eachWithIndex = function(i, el, cb) { - each(el, function(error, msg) { - result[i] = msg; - cb(error, result); - }); - }; - - for (var i = 0; i < ary.length; i++) { - eachWithIndex(i, ary[i], next); - } -} - -/* - * Decodes data when a payload is maybe expected. Possible binary contents are - * decoded from their base64 representation - * - * @param {String} data, callback method - * @api public - */ - -exports.decodePayload = function (data, binaryType, callback) { - if (typeof data != 'string') { - return exports.decodePayloadAsBinary(data, binaryType, callback); - } - - if (typeof binaryType === 'function') { - callback = binaryType; - binaryType = null; - } - - var packet; - if (data == '') { - // parser error - ignoring payload - return callback(err, 0, 1); - } - - var length = '' - , n, msg; - - for (var i = 0, l = data.length; i < l; i++) { - var chr = data.charAt(i); - - if (':' != chr) { - length += chr; - } else { - if ('' == length || (length != (n = Number(length)))) { - // parser error - ignoring payload - return callback(err, 0, 1); - } - - msg = data.substr(i + 1, n); - - if (length != msg.length) { - // parser error - ignoring payload - return callback(err, 0, 1); - } - - if (msg.length) { - packet = exports.decodePacket(msg, binaryType, true); - - if (err.type == packet.type && err.data == packet.data) { - // parser error in individual packet - ignoring payload - return callback(err, 0, 1); - } - - var ret = callback(packet, i + n, l); - if (false === ret) return; - } - - // advance cursor - i += n; - length = ''; - } - } - - if (length != '') { - // parser error - ignoring payload - return callback(err, 0, 1); - } - -}; - -/** - * Encodes multiple messages (payload) as binary. - * - * <1 = binary, 0 = string>[...] - * - * Example: - * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers - * - * @param {Array} packets - * @return {ArrayBuffer} encoded payload - * @api private - */ - -exports.encodePayloadAsArrayBuffer = function(packets, callback) { - if (!packets.length) { - return callback(new ArrayBuffer(0)); - } - - function encodeOne(packet, doneCallback) { - exports.encodePacket(packet, true, true, function(data) { - return doneCallback(null, data); - }); - } - - map(packets, encodeOne, function(err, encodedPackets) { - var totalLength = encodedPackets.reduce(function(acc, p) { - var len; - if (typeof p === 'string'){ - len = p.length; - } else { - len = p.byteLength; - } - return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2 - }, 0); - - var resultArray = new Uint8Array(totalLength); - - var bufferIndex = 0; - encodedPackets.forEach(function(p) { - var isString = typeof p === 'string'; - var ab = p; - if (isString) { - var view = new Uint8Array(p.length); - for (var i = 0; i < p.length; i++) { - view[i] = p.charCodeAt(i); - } - ab = view.buffer; - } - - if (isString) { // not true binary - resultArray[bufferIndex++] = 0; - } else { // true binary - resultArray[bufferIndex++] = 1; - } - - var lenStr = ab.byteLength.toString(); - for (var i = 0; i < lenStr.length; i++) { - resultArray[bufferIndex++] = parseInt(lenStr[i]); - } - resultArray[bufferIndex++] = 255; - - var view = new Uint8Array(ab); - for (var i = 0; i < view.length; i++) { - resultArray[bufferIndex++] = view[i]; - } - }); - - return callback(resultArray.buffer); - }); -}; - -/** - * Encode as Blob - */ - -exports.encodePayloadAsBlob = function(packets, callback) { - function encodeOne(packet, doneCallback) { - exports.encodePacket(packet, true, true, function(encoded) { - var binaryIdentifier = new Uint8Array(1); - binaryIdentifier[0] = 1; - if (typeof encoded === 'string') { - var view = new Uint8Array(encoded.length); - for (var i = 0; i < encoded.length; i++) { - view[i] = encoded.charCodeAt(i); - } - encoded = view.buffer; - binaryIdentifier[0] = 0; - } - - var len = (encoded instanceof ArrayBuffer) - ? encoded.byteLength - : encoded.size; - - var lenStr = len.toString(); - var lengthAry = new Uint8Array(lenStr.length + 1); - for (var i = 0; i < lenStr.length; i++) { - lengthAry[i] = parseInt(lenStr[i]); - } - lengthAry[lenStr.length] = 255; - - if (Blob) { - var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]); - doneCallback(null, blob); - } - }); - } - - map(packets, encodeOne, function(err, results) { - return callback(new Blob(results)); - }); -}; - -/* - * Decodes data when a payload is maybe expected. Strings are decoded by - * interpreting each byte as a key code for entries marked to start with 0. See - * description of encodePayloadAsBinary - * - * @param {ArrayBuffer} data, callback method - * @api public - */ - -exports.decodePayloadAsBinary = function (data, binaryType, callback) { - if (typeof binaryType === 'function') { - callback = binaryType; - binaryType = null; - } - - var bufferTail = data; - var buffers = []; - - var numberTooLong = false; - while (bufferTail.byteLength > 0) { - var tailArray = new Uint8Array(bufferTail); - var isString = tailArray[0] === 0; - var msgLength = ''; - - for (var i = 1; ; i++) { - if (tailArray[i] == 255) break; - - if (msgLength.length > 310) { - numberTooLong = true; - break; - } - - msgLength += tailArray[i]; - } - - if(numberTooLong) return callback(err, 0, 1); - - bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length); - msgLength = parseInt(msgLength); - - var msg = sliceBuffer(bufferTail, 0, msgLength); - if (isString) { - try { - msg = String.fromCharCode.apply(null, new Uint8Array(msg)); - } catch (e) { - // iPhone Safari doesn't let you apply to typed arrays - var typed = new Uint8Array(msg); - msg = ''; - for (var i = 0; i < typed.length; i++) { - msg += String.fromCharCode(typed[i]); - } - } - } - - buffers.push(msg); - bufferTail = sliceBuffer(bufferTail, msgLength); - } - - var total = buffers.length; - buffers.forEach(function(buffer, i) { - callback(exports.decodePacket(buffer, binaryType, true), i, total); - }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/index.js deleted file mode 100644 index 836b1c61..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/index.js +++ /dev/null @@ -1,460 +0,0 @@ -/** - * Module dependencies. - */ - -var utf8 = require('utf8'); -var after = require('after'); -var keys = require('./keys'); - -/** - * Current protocol version. - */ -exports.protocol = 3; - -/** - * Packet types. - */ - -var packets = exports.packets = { - open: 0 // non-ws - , close: 1 // non-ws - , ping: 2 - , pong: 3 - , message: 4 - , upgrade: 5 - , noop: 6 -}; - -var packetslist = keys(packets); - -/** - * Premade error packet. - */ - -var err = { type: 'error', data: 'parser error' }; - -/** - * Encodes a packet. - * - * [ ] - * - * Example: - * - * 5hello world - * 3 - * 4 - * - * Binary is encoded in an identical principle - * - * @api private - */ - -exports.encodePacket = function (packet, supportsBinary, utf8encode, callback) { - if ('function' == typeof supportsBinary) { - callback = supportsBinary; - supportsBinary = null; - } - - if ('function' == typeof utf8encode ) { - callback = utf8encode; - utf8encode = null; - } - - if (Buffer.isBuffer(packet.data)) { - return encodeBuffer(packet, supportsBinary, callback); - } else if (packet.data && (packet.data.buffer || packet.data) instanceof ArrayBuffer) { - packet.data = arrayBufferToBuffer(packet.data); - return encodeBuffer(packet, supportsBinary, callback); - } - - // Sending data as a utf-8 string - var encoded = packets[packet.type]; - - // data fragment is optional - if (undefined !== packet.data) { - encoded += utf8encode ? utf8.encode(String(packet.data)) : String(packet.data); - } - - return callback('' + encoded); -}; - -/** - * Encode Buffer data - */ - -function encodeBuffer(packet, supportsBinary, callback) { - var data = packet.data; - if (!supportsBinary) { - return exports.encodeBase64Packet(packet, callback); - } - - var typeBuffer = new Buffer(1); - typeBuffer[0] = packets[packet.type]; - return callback(Buffer.concat([typeBuffer, data])); -} - -/** - * Encodes a packet with binary data in a base64 string - * - * @param {Object} packet, has `type` and `data` - * @return {String} base64 encoded message - */ - -exports.encodeBase64Packet = function(packet, callback){ - if (!Buffer.isBuffer(packet.data)) { - packet.data = arrayBufferToBuffer(packet.data); - } - - var message = 'b' + packets[packet.type]; - message += packet.data.toString('base64'); - return callback(message); -}; - -/** - * Decodes a packet. Data also available as an ArrayBuffer if requested. - * - * @return {Object} with `type` and `data` (if any) - * @api private - */ - -exports.decodePacket = function (data, binaryType, utf8decode) { - // String data - if (typeof data == 'string' || data === undefined) { - if (data.charAt(0) == 'b') { - return exports.decodeBase64Packet(data.substr(1), binaryType); - } - - var type = data.charAt(0); - if (utf8decode) { - try { - data = utf8.decode(data); - } catch (e) { - return err; - } - } - - if (Number(type) != type || !packetslist[type]) { - return err; - } - - if (data.length > 1) { - return { type: packetslist[type], data: data.substring(1) }; - } else { - return { type: packetslist[type] }; - } - } - - // Binary data - if (binaryType === 'arraybuffer') { - var type = data[0]; - var intArray = new Uint8Array(data.length - 1); - for (var i = 1; i < data.length; i++) { - intArray[i - 1] = data[i]; - } - return { type: packetslist[type], data: intArray.buffer }; - } - var type = data[0]; - return { type: packetslist[type], data: data.slice(1) }; -}; - -/** - * Decodes a packet encoded in a base64 string. - * - * @param {String} base64 encoded message - * @return {Object} with `type` and `data` (if any) - */ - -exports.decodeBase64Packet = function(msg, binaryType) { - var type = packetslist[msg.charAt(0)]; - var data = new Buffer(msg.substr(1), 'base64'); - if (binaryType === 'arraybuffer') { - var abv = new Uint8Array(data.length); - for (var i = 0; i < abv.length; i++){ - abv[i] = data[i]; - } - data = abv.buffer; - } - return { type: type, data: data }; -}; - -/** - * Encodes multiple messages (payload). - * - * :data - * - * Example: - * - * 11:hello world2:hi - * - * If any contents are binary, they will be encoded as base64 strings. Base64 - * encoded strings are marked with a b before the length specifier - * - * @param {Array} packets - * @api private - */ - -exports.encodePayload = function (packets, supportsBinary, callback) { - if (typeof supportsBinary == 'function') { - callback = supportsBinary; - supportsBinary = null; - } - - if (supportsBinary) { - return exports.encodePayloadAsBinary(packets, callback); - } - - if (!packets.length) { - return callback('0:'); - } - - function setLengthHeader(message) { - return message.length + ':' + message; - } - - function encodeOne(packet, doneCallback) { - exports.encodePacket(packet, supportsBinary, true, function(message) { - doneCallback(null, setLengthHeader(message)); - }); - } - - map(packets, encodeOne, function(err, results) { - return callback(results.join('')); - }); -}; - -/** - * Async array map using after - */ - -function map(ary, each, done) { - var result = new Array(ary.length); - var next = after(ary.length, done); - - var eachWithIndex = function(i, el, cb) { - each(el, function(error, msg) { - result[i] = msg; - cb(error, result); - }); - }; - - for (var i = 0; i < ary.length; i++) { - eachWithIndex(i, ary[i], next); - } -} - -/* - * Decodes data when a payload is maybe expected. Possible binary contents are - * decoded from their base64 representation - * - * @param {String} data, callback method - * @api public - */ - -exports.decodePayload = function (data, binaryType, callback) { - if ('string' != typeof data) { - return exports.decodePayloadAsBinary(data, binaryType, callback); - } - - if (typeof binaryType === 'function') { - callback = binaryType; - binaryType = null; - } - - var packet; - if (data == '') { - // parser error - ignoring payload - return callback(err, 0, 1); - } - - var length = '' - , n, msg; - - for (var i = 0, l = data.length; i < l; i++) { - var chr = data.charAt(i); - - if (':' != chr) { - length += chr; - } else { - if ('' == length || (length != (n = Number(length)))) { - // parser error - ignoring payload - return callback(err, 0, 1); - } - - msg = data.substr(i + 1, n); - - if (length != msg.length) { - // parser error - ignoring payload - return callback(err, 0, 1); - } - - if (msg.length) { - packet = exports.decodePacket(msg, binaryType, true); - - if (err.type == packet.type && err.data == packet.data) { - // parser error in individual packet - ignoring payload - return callback(err, 0, 1); - } - - var ret = callback(packet, i + n, l); - if (false === ret) return; - } - - // advance cursor - i += n; - length = ''; - } - } - - if (length != '') { - // parser error - ignoring payload - return callback(err, 0, 1); - } - -}; - -/** - * - * Converts a buffer to a utf8.js encoded string - * - * @api private - */ - -function bufferToString(buffer) { - var str = ''; - for (var i = 0; i < buffer.length; i++) { - str += String.fromCharCode(buffer[i]); - } - return str; -} - -/** - * - * Converts a utf8.js encoded string to a buffer - * - * @api private - */ - -function stringToBuffer(string) { - var buf = new Buffer(string.length); - for (var i = 0; i < string.length; i++) { - buf.writeUInt8(string.charCodeAt(i), i); - } - return buf; -} - -/** - * - * Converts an ArrayBuffer to a Buffer - * - * @api private - */ - -function arrayBufferToBuffer(data) { - // data is either an ArrayBuffer or ArrayBufferView. - var array = new Uint8Array(data.buffer || data); - var length = data.byteLength || data.length; - var offset = data.byteOffset || 0; - var buffer = new Buffer(length); - - for (var i = 0; i < length; i++) { - buffer[i] = array[offset + i]; - } - return buffer; -} - -/** - * Encodes multiple messages (payload) as binary. - * - * <1 = binary, 0 = string>[...] - * - * Example: - * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers - * - * @param {Array} packets - * @return {Buffer} encoded payload - * @api private - */ - -exports.encodePayloadAsBinary = function (packets, callback) { - if (!packets.length) { - return callback(new Buffer(0)); - } - - function encodeOne(p, doneCallback) { - exports.encodePacket(p, true, true, function(packet) { - - if (typeof packet === 'string') { - var encodingLength = '' + packet.length; - var sizeBuffer = new Buffer(encodingLength.length + 2); - sizeBuffer[0] = 0; // is a string (not true binary = 0) - for (var i = 0; i < encodingLength.length; i++) { - sizeBuffer[i + 1] = parseInt(encodingLength[i], 10); - } - sizeBuffer[sizeBuffer.length - 1] = 255; - return doneCallback(null, Buffer.concat([sizeBuffer, stringToBuffer(packet)])); - } - - var encodingLength = '' + packet.length; - var sizeBuffer = new Buffer(encodingLength.length + 2); - sizeBuffer[0] = 1; // is binary (true binary = 1) - for (var i = 0; i < encodingLength.length; i++) { - sizeBuffer[i + 1] = parseInt(encodingLength[i], 10); - } - sizeBuffer[sizeBuffer.length - 1] = 255; - doneCallback(null, Buffer.concat([sizeBuffer, packet])); - }); - } - - map(packets, encodeOne, function(err, results) { - return callback(Buffer.concat(results)); - }); -}; - -/* - * Decodes data when a payload is maybe expected. Strings are decoded by - * interpreting each byte as a key code for entries marked to start with 0. See - * description of encodePayloadAsBinary - - * @param {Buffer} data, callback method - * @api public - */ - -exports.decodePayloadAsBinary = function (data, binaryType, callback) { - if (typeof binaryType === 'function') { - callback = binaryType; - binaryType = null; - } - - var bufferTail = data; - var buffers = []; - - while (bufferTail.length > 0) { - var strLen = ''; - var isString = bufferTail[0] === 0; - var numberTooLong = false; - for (var i = 1; ; i++) { - if (bufferTail[i] == 255) break; - // 310 = char length of Number.MAX_VALUE - if (strLen.length > 310) { - numberTooLong = true; - break; - } - strLen += '' + bufferTail[i]; - } - if(numberTooLong) return callback(err, 0, 1); - bufferTail = bufferTail.slice(strLen.length + 1); - - var msgLength = parseInt(strLen, 10); - - var msg = bufferTail.slice(1, msgLength + 1); - if (isString) msg = bufferToString(msg); - buffers.push(msg); - bufferTail = bufferTail.slice(msgLength + 1); - } - - var total = buffers.length; - buffers.forEach(function(buffer, i) { - callback(exports.decodePacket(buffer, binaryType, true), i, total); - }); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/keys.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/keys.js deleted file mode 100644 index 947dafda..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/keys.js +++ /dev/null @@ -1,19 +0,0 @@ - -/** - * Gets the keys for an object. - * - * @return {Array} keys - * @api private - */ - -module.exports = Object.keys || function keys (obj){ - var arr = []; - var has = Object.prototype.hasOwnProperty; - - for (var i in obj) { - if (has.call(obj, i)) { - arr.push(i); - } - } - return arr; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/.npmignore deleted file mode 100644 index 6c786024..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -.monitor diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/.travis.yml deleted file mode 100644 index 84fd7ca2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.8 - - 0.9 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/LICENCE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/LICENCE deleted file mode 100644 index 7c351306..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/LICENCE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Raynos. - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/README.md deleted file mode 100644 index 0012d357..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# After [![Build Status][1]][2] - -Invoke callback after n calls - -## Status: production ready - -## Example - - var after = require("after") - , next = after(3, logItWorks) - - next() - next() - next() // it works - - function logItWorks() { - console.log("it works!") - } - -## Example with error handling - - var after = require("after") - , next = after(3, logError) - - next() - next(new Error("oops")) // logs oops - next() // does nothing - - function logError(err) { - console.log(err) - } - -## After < 0.6.0 - -Older versions of after had iterators and flows in them. - -These have been replaced with seperate modules - - - [iterators][8] - - [composite][9] - -## Installation - -`npm install after` - -## Tests - -`npm test` - -## Blog post - - - [Flow control in node.js][3] - -## Examples : - - - [Determining the end of asynchronous operations][4] - - [In javascript what are best practices for executing multiple asynchronous functions][5] - - [JavaScript performance long running tasks][6] - - [Synchronous database queries with node.js][7] - -## Contributors - - - Raynos - -## MIT Licenced - - [1]: https://secure.travis-ci.org/Raynos/after.png - [2]: http://travis-ci.org/Raynos/after - [3]: http://raynos.org/blog/2/Flow-control-in-node.js - [4]: http://stackoverflow.com/questions/6852059/determining-the-end-of-asynchronous-operations-javascript/6852307#6852307 - [5]: http://stackoverflow.com/questions/6869872/in-javascript-what-are-best-practices-for-executing-multiple-asynchronous-functi/6870031#6870031 - [6]: http://stackoverflow.com/questions/6864397/javascript-performance-long-running-tasks/6889419#6889419 - [7]: http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js/6620091#6620091 - [8]: http://github.com/Raynos/iterators - [9]: http://github.com/Raynos/composite diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/index.js deleted file mode 100644 index ec248797..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/index.js +++ /dev/null @@ -1,28 +0,0 @@ -module.exports = after - -function after(count, callback, err_cb) { - var bail = false - err_cb = err_cb || noop - proxy.count = count - - return (count === 0) ? callback() : proxy - - function proxy(err, result) { - if (proxy.count <= 0) { - throw new Error('after called too many times') - } - --proxy.count - - // after first error, rest are passed to err_cb - if (err) { - bail = true - callback(err) - // future error callbacks will go to error handler - callback = err_cb - } else if (proxy.count === 0 && !bail) { - callback(null, result) - } - } -} - -function noop() {} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/package.json deleted file mode 100644 index ac80f6b0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "after", - "description": "after - tiny flow control", - "version": "0.8.1", - "author": { - "name": "Raynos", - "email": "raynos2@gmail.com" - }, - "contributors": [ - { - "name": "Raynos", - "email": "raynos2@gmail.com", - "url": "http://raynos.org" - } - ], - "scripts": { - "test": "mocha --ui tdd --reporter spec test/*.js" - }, - "devDependencies": { - "mocha": "~1.8.1" - }, - "keywords": [ - "flowcontrol", - "after", - "flow", - "control", - "arch" - ], - "repository": { - "type": "git", - "url": "git://github.com/Raynos/after.git" - }, - "bugs": { - "url": "https://github.com/Raynos/after/issues" - }, - "_id": "after@0.8.1", - "dist": { - "shasum": "ab5d4fb883f596816d3515f8f791c0af486dd627", - "tarball": "https://registry.npmjs.org/after/-/after-0.8.1.tgz" - }, - "_from": "after@0.8.1", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "raynos", - "email": "raynos2@gmail.com" - }, - "maintainers": [ - { - "name": "raynos", - "email": "raynos2@gmail.com" - }, - { - "name": "shtylman", - "email": "shtylman@gmail.com" - } - ], - "directories": {}, - "_shasum": "ab5d4fb883f596816d3515f8f791c0af486dd627", - "_resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/test/after-test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/test/after-test.js deleted file mode 100644 index 0d63f4c2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/test/after-test.js +++ /dev/null @@ -1,120 +0,0 @@ -/*global suite, test*/ - -var assert = require("assert") - , after = require("../") - -test("exists", function () { - assert(typeof after === "function", "after is not a function") -}) - -test("after when called with 0 invokes", function (done) { - after(0, done) -}); - -test("after 1", function (done) { - var next = after(1, done) - next() -}) - -test("after 5", function (done) { - var next = after(5, done) - , i = 5 - - while (i--) { - next() - } -}) - -test("manipulate count", function (done) { - var next = after(1, done) - , i = 5 - - next.count = i - while (i--) { - next() - } -}) - -test("after terminates on error", function (done) { - var next = after(2, function(err) { - assert.equal(err.message, 'test'); - done(); - }) - next(new Error('test')) - next(new Error('test2')) -}) - -test('gee', function(done) { - done = after(2, done) - - function cb(err) { - assert.equal(err.message, 1); - done() - } - - var next = after(3, cb, function(err) { - assert.equal(err.message, 2) - done() - }); - - next() - next(new Error(1)) - next(new Error(2)) -}) - -test('eee', function(done) { - done = after(3, done) - - function cb(err) { - assert.equal(err.message, 1); - done() - } - - var next = after(3, cb, function(err) { - assert.equal(err.message, 2) - done() - }); - - next(new Error(1)) - next(new Error(2)) - next(new Error(2)) -}) - -test('gge', function(done) { - function cb(err) { - assert.equal(err.message, 1); - done() - } - - var next = after(3, cb, function(err) { - // should not happen - assert.ok(false); - }); - - next() - next() - next(new Error(1)) -}) - -test('egg', function(done) { - function cb(err) { - assert.equal(err.message, 1); - done() - } - - var next = after(3, cb, function(err) { - // should not happen - assert.ok(false); - }); - - next(new Error(1)) - next() - next() -}) - -test('throws on too many calls', function(done) { - var next = after(1, done); - next() - assert.throws(next, /after called too many times/); -}); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/.npmignore deleted file mode 100644 index cfbee8d8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/.npmignore +++ /dev/null @@ -1,17 +0,0 @@ -lib-cov -lcov.info -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz - -pids -logs -results -build -.grunt - -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/Makefile deleted file mode 100644 index 849887f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/Makefile +++ /dev/null @@ -1,8 +0,0 @@ - -REPORTER = dot - -test: - @./node_modules/.bin/mocha \ - --reporter $(REPORTER) - -.PHONY: test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/README.md deleted file mode 100644 index 15e465ef..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# How to -```javascript -var sliceBuffer = require('arraybuffer.slice'); -var ab = (new Int8Array(5)).buffer; -var sliced = sliceBuffer(ab, 1, 3); -sliced = sliceBuffer(ab, 1); -``` - -# Licence (MIT) -Copyright (C) 2013 Rase- - - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/index.js deleted file mode 100644 index 11ac556e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/index.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * An abstraction for slicing an arraybuffer even when - * ArrayBuffer.prototype.slice is not supported - * - * @api public - */ - -module.exports = function(arraybuffer, start, end) { - var bytes = arraybuffer.byteLength; - start = start || 0; - end = end || bytes; - - if (arraybuffer.slice) { return arraybuffer.slice(start, end); } - - if (start < 0) { start += bytes; } - if (end < 0) { end += bytes; } - if (end > bytes) { end = bytes; } - - if (start >= bytes || start >= end || bytes === 0) { - return new ArrayBuffer(0); - } - - var abv = new Uint8Array(arraybuffer); - var result = new Uint8Array(end - start); - for (var i = start, ii = 0; i < end; i++, ii++) { - result[ii] = abv[i]; - } - return result.buffer; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json deleted file mode 100644 index 35bbdf7d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "arraybuffer.slice", - "description": "Exports a function for slicing ArrayBuffers (no polyfilling)", - "version": "0.0.6", - "homepage": "https://github.com/rase-/arraybuffer.slice", - "dependencies": {}, - "devDependencies": { - "mocha": "1.17.1", - "expect.js": "0.2.0" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/rase-/arraybuffer.slice.git" - }, - "bugs": { - "url": "https://github.com/rase-/arraybuffer.slice/issues" - }, - "_id": "arraybuffer.slice@0.0.6", - "dist": { - "shasum": "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca", - "tarball": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz" - }, - "_from": "arraybuffer.slice@0.0.6", - "_npmVersion": "1.3.5", - "_npmUser": { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - }, - "maintainers": [ - { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - } - ], - "directories": {}, - "_shasum": "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca", - "_resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/test/slice-buffer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/test/slice-buffer.js deleted file mode 100644 index 4778da67..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/test/slice-buffer.js +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Test dependencies - */ - -var sliceBuffer = require('../index.js'); -var expect = require('expect.js'); - -/** - * Tests - */ - -describe('sliceBuffer', function() { - describe('using standard slice', function() { - it('should slice correctly with only start provided', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - - var sliced = sliceBuffer(abv.buffer, 3); - var sabv = new Uint8Array(sliced); - for (var i = 3, ii = 0; i < abv.length; i++, ii++) { - expect(abv[i]).to.equal(sabv[ii]); - } - }); - - it('should slice correctly with start and end provided', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - - var sliced = sliceBuffer(abv.buffer, 3, 8); - var sabv = new Uint8Array(sliced); - for (var i = 3, ii = 0; i < 8; i++, ii++) { - expect(abv[i]).to.equal(sabv[ii]); - } - }); - - it('should slice correctly with negative start', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - - var sliced = sliceBuffer(abv.buffer, -3); - var sabv = new Uint8Array(sliced); - for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) { - expect(abv[i]).to.equal(sabv[ii]); - } - }); - - it('should slice correctly with negative end', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - - var sliced = sliceBuffer(abv.buffer, 0, -3); - var sabv = new Uint8Array(sliced); - for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) { - expect(abv[i]).to.equal(sabv[ii]); - } - }); - - it('should slice correctly with negative start and end', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - - var sliced = sliceBuffer(abv.buffer, -6, -3); - var sabv = new Uint8Array(sliced); - for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) { - expect(abv[i]).to.equal(sabv[ii]); - } - }); - - it('should slice correctly with equal start and end', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - - var sliced = sliceBuffer(abv.buffer, 1, 1); - expect(sliced.byteLength).to.equal(0); - }); - - it('should slice correctly when end larger than buffer', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - - var sliced = sliceBuffer(abv.buffer, 0, 100); - expect(new Uint8Array(sliced)).to.eql(abv); - }); - - it('shoud slice correctly when start larger than end', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - - var sliced = sliceBuffer(abv.buffer, 6, 5); - expect(sliced.byteLength).to.equal(0); - }); - }); - - describe('using fallback', function() { - it('should slice correctly with only start provided', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - var ab = abv.buffer; - ab.slice = undefined; - - var sliced = sliceBuffer(ab, 3); - var sabv = new Uint8Array(sliced); - for (var i = 3, ii = 0; i < abv.length; i++, ii++) { - expect(abv[i]).to.equal(sabv[ii]); - } - }); - - it('should slice correctly with start and end provided', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - var ab = abv.buffer; - ab.slice = undefined; - - - var sliced = sliceBuffer(ab, 3, 8); - var sabv = new Uint8Array(sliced); - for (var i = 3, ii = 0; i < 8; i++, ii++) { - expect(abv[i]).to.equal(sabv[ii]); - } - }); - - it('should slice correctly with negative start', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - var ab = abv.buffer; - ab.slice = undefined; - - - var sliced = sliceBuffer(ab, -3); - var sabv = new Uint8Array(sliced); - for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) { - expect(abv[i]).to.equal(sabv[ii]); - } - }); - - it('should slice correctly with negative end', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - var ab = abv.buffer; - ab.slice = undefined; - - var sliced = sliceBuffer(ab, 0, -3); - var sabv = new Uint8Array(sliced); - for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) { - expect(abv[i]).to.equal(sabv[ii]); - } - }); - - it('should slice correctly with negative start and end', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - var ab = abv.buffer; - ab.slice = undefined; - - var sliced = sliceBuffer(ab, -6, -3); - var sabv = new Uint8Array(sliced); - for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) { - expect(abv[i]).to.equal(sabv[ii]); - } - }); - - it('should slice correctly with equal start and end', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - var ab = abv.buffer; - ab.slice = undefined; - - var sliced = sliceBuffer(ab, 1, 1); - expect(sliced.byteLength).to.equal(0); - }); - - it('should slice correctly when end larger than buffer', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - var ab = abv.buffer; - ab.slice = undefined; - - var sliced = sliceBuffer(ab, 0, 100); - var sabv = new Uint8Array(sliced); - for (var i = 0; i < abv.length; i++) { - expect(abv[i]).to.equal(sabv[i]); - } - }); - - it('shoud slice correctly when start larger than end', function() { - var abv = new Uint8Array(10); - for (var i = 0; i < abv.length; i++) { - abv[i] = i; - } - var ab = abv.buffer; - ab.slice = undefined; - - var sliced = sliceBuffer(ab, 6, 5); - expect(sliced.byteLength).to.equal(0); - }); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.npmignore deleted file mode 100644 index 2ccbe465..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/node_modules/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.travis.yml deleted file mode 100644 index e2eeb993..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -language: node_js -node_js: -- '0.10' -before_script: -- npm install diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/LICENSE-MIT b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/LICENSE-MIT deleted file mode 100644 index ed27b41b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/LICENSE-MIT +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2012 Niklas von Hertzen - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/README.md deleted file mode 100644 index b841154c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# base64-arraybuffer - -[![Build Status](https://travis-ci.org/niklasvh/base64-arraybuffer.png)](https://travis-ci.org/niklasvh/base64-arraybuffer) - -Encode/decode base64 data into ArrayBuffers - -## Getting Started -Install the module with: `npm install base64-arraybuffer` - -## API -The library encodes and decodes base64 to and from ArrayBuffers - - - __encode(buffer)__ - Encodes `ArrayBuffer` into base64 string - - __decode(str)__ - Decodes base64 string to `ArrayBuffer` - -## Release History - - - 0.1.2 - Fix old format of typed arrays - - 0.1.0 - Initial version, basic decode/encode base64 to and from ArrayBuffer - -## License -Copyright (c) 2012 Niklas von Hertzen -Licensed under the MIT license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/grunt.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/grunt.js deleted file mode 100644 index 73c4e7a0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/grunt.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = function(grunt) { - "use strict"; - // Project configuration. - grunt.initConfig({ - pkg: '', - test: { - files: ['test/**/*.js'] - }, - lint: { - files: ['grunt.js', 'lib/**/*.js', 'test/**/*.js'] - }, - watch: { - files: '', - tasks: 'default' - }, - jshint: { - options: { - curly: true, - eqeqeq: true, - immed: true, - latedef: true, - newcap: true, - noarg: true, - sub: true, - undef: true, - boss: true, - eqnull: true, - node: true - }, - globals: { - exports: true - } - } - }); - - // Default task. - grunt.registerTask('default', 'test'); - -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js deleted file mode 100644 index 362fbfaf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js +++ /dev/null @@ -1,59 +0,0 @@ -/* - * base64-arraybuffer - * https://github.com/niklasvh/base64-arraybuffer - * - * Copyright (c) 2012 Niklas von Hertzen - * Licensed under the MIT license. - */ -(function(chars){ - "use strict"; - - exports.encode = function(arraybuffer) { - var bytes = new Uint8Array(arraybuffer), - i, len = bytes.length, base64 = ""; - - for (i = 0; i < len; i+=3) { - base64 += chars[bytes[i] >> 2]; - base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)]; - base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)]; - base64 += chars[bytes[i + 2] & 63]; - } - - if ((len % 3) === 2) { - base64 = base64.substring(0, base64.length - 1) + "="; - } else if (len % 3 === 1) { - base64 = base64.substring(0, base64.length - 2) + "=="; - } - - return base64; - }; - - exports.decode = function(base64) { - var bufferLength = base64.length * 0.75, - len = base64.length, i, p = 0, - encoded1, encoded2, encoded3, encoded4; - - if (base64[base64.length - 1] === "=") { - bufferLength--; - if (base64[base64.length - 2] === "=") { - bufferLength--; - } - } - - var arraybuffer = new ArrayBuffer(bufferLength), - bytes = new Uint8Array(arraybuffer); - - for (i = 0; i < len; i+=4) { - encoded1 = chars.indexOf(base64[i]); - encoded2 = chars.indexOf(base64[i+1]); - encoded3 = chars.indexOf(base64[i+2]); - encoded4 = chars.indexOf(base64[i+3]); - - bytes[p++] = (encoded1 << 2) | (encoded2 >> 4); - bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2); - bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); - } - - return arraybuffer; - }; -})("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json deleted file mode 100644 index cc988f94..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "base64-arraybuffer", - "description": "Encode/decode base64 data into ArrayBuffers", - "version": "0.1.2", - "homepage": "https://github.com/niklasvh/base64-arraybuffer", - "author": { - "name": "Niklas von Hertzen", - "email": "niklasvh@gmail.com", - "url": "http://hertzen.com" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/niklasvh/base64-arraybuffer.git" - }, - "bugs": { - "url": "https://github.com/niklasvh/base64-arraybuffer/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/niklasvh/base64-arraybuffer/blob/master/LICENSE-MIT" - } - ], - "main": "lib/base64-arraybuffer", - "engines": { - "node": ">= 0.6.0" - }, - "scripts": { - "test": "grunt test" - }, - "devDependencies": { - "grunt": "~0.3.17" - }, - "keywords": [], - "_id": "base64-arraybuffer@0.1.2", - "dist": { - "shasum": "474df4a9f2da24e05df3158c3b1db3c3cd46a154", - "tarball": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz" - }, - "_from": "base64-arraybuffer@0.1.2", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "niklasvh", - "email": "niklasvh@gmail.com" - }, - "maintainers": [ - { - "name": "niklasvh", - "email": "niklasvh@gmail.com" - } - ], - "directories": {}, - "_shasum": "474df4a9f2da24e05df3158c3b1db3c3cd46a154", - "_resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/test/base64-arraybuffer_test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/test/base64-arraybuffer_test.js deleted file mode 100644 index fe89c222..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/test/base64-arraybuffer_test.js +++ /dev/null @@ -1,72 +0,0 @@ -(function(){ - "use strict"; - var base64_arraybuffer = require('../lib/base64-arraybuffer.js'); - - /* - ======== A Handy Little Nodeunit Reference ======== - https://github.com/caolan/nodeunit - - Test methods: - test.expect(numAssertions) - test.done() - Test assertions: - test.ok(value, [message]) - test.equal(actual, expected, [message]) - test.notEqual(actual, expected, [message]) - test.deepEqual(actual, expected, [message]) - test.notDeepEqual(actual, expected, [message]) - test.strictEqual(actual, expected, [message]) - test.notStrictEqual(actual, expected, [message]) - test.throws(block, [error], [message]) - test.doesNotThrow(block, [error], [message]) - test.ifError(value) -*/ - - - function stringArrayBuffer(str) { - var buffer = new ArrayBuffer(str.length); - var bytes = new Uint8Array(buffer); - - str.split('').forEach(function(str, i) { - bytes[i] = str.charCodeAt(0); - }); - - return buffer; - } - - function testArrayBuffers(buffer1, buffer2) { - var len1 = buffer1.byteLength, - len2 = buffer2.byteLength; - if (len1 !== len2) { - console.log(buffer1, buffer2); - return false; - } - - for (var i = 0; i < len1; i++) { - if (buffer1[i] !== buffer1[i]) { - console.log(i, buffer1, buffer2); - return false; - } - } - return true; - } - - exports['base64tests'] = { - 'encode': function(test) { - test.expect(4); - - test.equal(base64_arraybuffer.encode(stringArrayBuffer("Hello world")), "SGVsbG8gd29ybGQ=", 'encode "Hello world"'); - test.equal(base64_arraybuffer.encode(stringArrayBuffer("Man")), 'TWFu', 'encode "Man"'); - test.equal(base64_arraybuffer.encode(stringArrayBuffer("Ma")), "TWE=", 'encode "Ma"'); - test.equal(base64_arraybuffer.encode(stringArrayBuffer("Hello worlds!")), "SGVsbG8gd29ybGRzIQ==", 'encode "Hello worlds!"'); - test.done(); - }, - 'decode': function(test) { - test.expect(3); - test.ok(testArrayBuffers(base64_arraybuffer.decode("TWFu"), stringArrayBuffer("Man")), 'decode "Man"'); - test.ok(testArrayBuffers(base64_arraybuffer.decode("SGVsbG8gd29ybGQ="), stringArrayBuffer("Hello world")), 'decode "Hello world"'); - test.ok(testArrayBuffers(base64_arraybuffer.decode("SGVsbG8gd29ybGRzIQ=="), stringArrayBuffer("Hello worlds!")), 'decode "Hello worlds!"'); - test.done(); - } - }; -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/.npmignore deleted file mode 100644 index 548a3688..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -blob.js diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/.zuul.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/.zuul.yml deleted file mode 100644 index 380c3950..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/.zuul.yml +++ /dev/null @@ -1,14 +0,0 @@ -ui: mocha-bdd -browsers: - - name: chrome - version: 8..latest - - name: firefox - version: 7..latest - - name: safari - version: 6..latest - - name: opera - version: 12.1..latest - - name: ie - version: 10..latest - - name: android - version: latest diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/Makefile deleted file mode 100644 index 7d9601a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -REPORTER = dot - -build: blob.js - -blob.js: - @./node_modules/.bin/browserify --standalone blob index.js > blob.js - -test: - @./node_modules/.bin/zuul -- test/index.js - -clean: - rm blob.js - -.PHONY: test blob.js diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/README.md deleted file mode 100644 index 69159558..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/README.md +++ /dev/null @@ -1,14 +0,0 @@ -Blob -==== - -A module that exports a constructor that uses window.Blob when available, and a BlobBuilder with any vendor prefix in other cases. If neither is available, it exports undefined. - -Usage: - -```javascript -var Blob = require('blob'); -var b = new Blob(['hi', 'constructing', 'a', 'blob']); -``` - -## Licence -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/index.js deleted file mode 100644 index cad3f84a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/index.js +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Create a blob builder even when vendor prefixes exist - */ - -var BlobBuilder = global.BlobBuilder - || global.WebKitBlobBuilder - || global.MSBlobBuilder - || global.MozBlobBuilder; - -/** - * Check if Blob constructor is supported - */ - -var blobSupported = (function() { - try { - var a = new Blob(['hi']); - return a.size === 2; - } catch(e) { - return false; - } -})(); - -/** - * Check if Blob constructor supports ArrayBufferViews - * Fails in Safari 6, so we need to map to ArrayBuffers there. - */ - -var blobSupportsArrayBufferView = blobSupported && (function() { - try { - var b = new Blob([new Uint8Array([1,2])]); - return b.size === 2; - } catch(e) { - return false; - } -})(); - -/** - * Check if BlobBuilder is supported - */ - -var blobBuilderSupported = BlobBuilder - && BlobBuilder.prototype.append - && BlobBuilder.prototype.getBlob; - -/** - * Helper function that maps ArrayBufferViews to ArrayBuffers - * Used by BlobBuilder constructor and old browsers that didn't - * support it in the Blob constructor. - */ - -function mapArrayBufferViews(ary) { - for (var i = 0; i < ary.length; i++) { - var chunk = ary[i]; - if (chunk.buffer instanceof ArrayBuffer) { - var buf = chunk.buffer; - - // if this is a subarray, make a copy so we only - // include the subarray region from the underlying buffer - if (chunk.byteLength !== buf.byteLength) { - var copy = new Uint8Array(chunk.byteLength); - copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength)); - buf = copy.buffer; - } - - ary[i] = buf; - } - } -} - -function BlobBuilderConstructor(ary, options) { - options = options || {}; - - var bb = new BlobBuilder(); - mapArrayBufferViews(ary); - - for (var i = 0; i < ary.length; i++) { - bb.append(ary[i]); - } - - return (options.type) ? bb.getBlob(options.type) : bb.getBlob(); -}; - -function BlobConstructor(ary, options) { - mapArrayBufferViews(ary); - return new Blob(ary, options || {}); -}; - -module.exports = (function() { - if (blobSupported) { - return blobSupportsArrayBufferView ? global.Blob : BlobConstructor; - } else if (blobBuilderSupported) { - return BlobBuilderConstructor; - } else { - return undefined; - } -})(); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/package.json deleted file mode 100644 index b5874552..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "blob", - "description": "Abstracts out Blob and uses BlobBulder in cases where it is supported with any vendor prefix.", - "version": "0.0.4", - "homepage": "https://github.com/rase-/blob", - "dependencies": {}, - "devDependencies": { - "mocha": "1.17.1", - "expect.js": "0.2.0", - "zuul": "1.5.4", - "browserify": "3.30.1" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/rase-/blob.git" - }, - "scripts": { - "test": "make test" - }, - "bugs": { - "url": "https://github.com/rase-/blob/issues" - }, - "_id": "blob@0.0.4", - "dist": { - "shasum": "bcf13052ca54463f30f9fc7e95b9a47630a94921", - "tarball": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz" - }, - "_from": "blob@0.0.4", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - }, - "maintainers": [ - { - "name": "rase-", - "email": "tonykovanen@hotmail.com" - } - ], - "directories": {}, - "_shasum": "bcf13052ca54463f30f9fc7e95b9a47630a94921", - "_resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/test/index.js deleted file mode 100644 index df9303f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/test/index.js +++ /dev/null @@ -1,94 +0,0 @@ -var Blob = require('../'); -var expect = require('expect.js'); - -describe('blob', function() { - if (!Blob) { - it('should not have a blob or a blob builder in the global namespace, or blob should not be a constructor function if the module exports false', function() { - try { - var ab = (new Uint8Array(5)).buffer; - global.Blob([ab]); - expect().fail('Blob shouldn\'t be constructable'); - } catch (e) {} - - var BlobBuilder = global.BlobBuilder - || global.WebKitBlobBuilder - || global.MSBlobBuilder - || global.MozBlobBuilder; - expect(BlobBuilder).to.be(undefined); - }); - } else { - it('should encode a proper sized blob when given a string argument', function() { - var b = new Blob(['hi']); - expect(b.size).to.be(2); - }); - - it('should encode a blob with proper size when given two strings as arguments', function() { - var b = new Blob(['hi', 'hello']); - expect(b.size).to.be(7); - }); - - it('should encode arraybuffers with right content', function(done) { - var ary = new Uint8Array(5); - for (var i = 0; i < 5; i++) ary[i] = i; - var b = new Blob([ary.buffer]); - var fr = new FileReader(); - fr.onload = function() { - var newAry = new Uint8Array(this.result); - for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i); - done(); - }; - fr.readAsArrayBuffer(b); - }); - - it('should encode typed arrays with right content', function(done) { - var ary = new Uint8Array(5); - for (var i = 0; i < 5; i++) ary[i] = i; - var b = new Blob([ary]); - var fr = new FileReader(); - fr.onload = function() { - var newAry = new Uint8Array(this.result); - for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i); - done(); - }; - fr.readAsArrayBuffer(b); - }); - - it('should encode sliced typed arrays with right content', function(done) { - var ary = new Uint8Array(5); - for (var i = 0; i < 5; i++) ary[i] = i; - var b = new Blob([ary.subarray(2)]); - var fr = new FileReader(); - fr.onload = function() { - var newAry = new Uint8Array(this.result); - for (var i = 0; i < 3; i++) expect(newAry[i]).to.be(i + 2); - done(); - }; - fr.readAsArrayBuffer(b); - }); - - it('should encode with blobs', function(done) { - var ary = new Uint8Array(5); - for (var i = 0; i < 5; i++) ary[i] = i; - var b = new Blob([new Blob([ary.buffer])]); - var fr = new FileReader(); - fr.onload = function() { - var newAry = new Uint8Array(this.result); - for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i); - done(); - }; - fr.readAsArrayBuffer(b); - }); - - it('should enode mixed contents to right size', function() { - var ary = new Uint8Array(5); - for (var i = 0; i < 5; i++) ary[i] = i; - var b = new Blob([ary.buffer, 'hello']); - expect(b.size).to.be(10); - }); - - it('should accept mime type', function() { - var b = new Blob(['hi', 'hello'], { type: 'text/html' }); - expect(b.type).to.be('text/html'); - }); - } -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/.npmignore deleted file mode 100644 index a72b52eb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/.npmignore +++ /dev/null @@ -1,15 +0,0 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz - -pids -logs -results - -npm-debug.log -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/History.md deleted file mode 100644 index a1e3867e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/History.md +++ /dev/null @@ -1,11 +0,0 @@ - -0.1.6 / 2015-01-24 -================== - - * fix "undefined function" bug when iterating - an object created with Object.create(null) [gunta] - -0.1.5 / 2014-09-04 -================== - - * prevent browserify from bundling `Buffer` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/LICENSE deleted file mode 100644 index e6603cdf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Kevin Roark - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/Makefile deleted file mode 100644 index 1d90629d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/Makefile +++ /dev/null @@ -1,3 +0,0 @@ - -test: - @./node_modules/.bin/mocha test.js diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/README.md deleted file mode 100644 index 76a00356..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/README.md +++ /dev/null @@ -1,4 +0,0 @@ -has-binarydata.js -================= - -Simple module to test if an object contains binary data diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/fixtures/big.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/fixtures/big.json deleted file mode 100644 index 3172879b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/fixtures/big.json +++ /dev/null @@ -1 +0,0 @@ -{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":{"k":"cool"}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/index.js deleted file mode 100644 index 7684d234..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/index.js +++ /dev/null @@ -1,58 +0,0 @@ - -/* - * Module requirements. - */ - -var isArray = require('isarray'); - -/** - * Module exports. - */ - -module.exports = hasBinary; - -/** - * Checks for binary data. - * - * Right now only Buffer and ArrayBuffer are supported.. - * - * @param {Object} anything - * @api public - */ - -function hasBinary(data) { - - function _hasBinary(obj) { - if (!obj) return false; - - if ( (global.Buffer && global.Buffer.isBuffer(obj)) || - (global.ArrayBuffer && obj instanceof ArrayBuffer) || - (global.Blob && obj instanceof Blob) || - (global.File && obj instanceof File) - ) { - return true; - } - - if (isArray(obj)) { - for (var i = 0; i < obj.length; i++) { - if (_hasBinary(obj[i])) { - return true; - } - } - } else if (obj && 'object' == typeof obj) { - if (obj.toJSON) { - obj = obj.toJSON(); - } - - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key) && _hasBinary(obj[key])) { - return true; - } - } - } - - return false; - } - - return _hasBinary(data); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/README.md deleted file mode 100644 index 052a62b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/README.md +++ /dev/null @@ -1,54 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/build/build.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/build/build.js deleted file mode 100644 index ec58596a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/build/build.js +++ /dev/null @@ -1,209 +0,0 @@ - -/** - * Require the given path. - * - * @param {String} path - * @return {Object} exports - * @api public - */ - -function require(path, parent, orig) { - var resolved = require.resolve(path); - - // lookup failed - if (null == resolved) { - orig = orig || path; - parent = parent || 'root'; - var err = new Error('Failed to require "' + orig + '" from "' + parent + '"'); - err.path = orig; - err.parent = parent; - err.require = true; - throw err; - } - - var module = require.modules[resolved]; - - // perform real require() - // by invoking the module's - // registered function - if (!module.exports) { - module.exports = {}; - module.client = module.component = true; - module.call(this, module.exports, require.relative(resolved), module); - } - - return module.exports; -} - -/** - * Registered modules. - */ - -require.modules = {}; - -/** - * Registered aliases. - */ - -require.aliases = {}; - -/** - * Resolve `path`. - * - * Lookup: - * - * - PATH/index.js - * - PATH.js - * - PATH - * - * @param {String} path - * @return {String} path or null - * @api private - */ - -require.resolve = function(path) { - if (path.charAt(0) === '/') path = path.slice(1); - var index = path + '/index.js'; - - var paths = [ - path, - path + '.js', - path + '.json', - path + '/index.js', - path + '/index.json' - ]; - - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - if (require.modules.hasOwnProperty(path)) return path; - } - - if (require.aliases.hasOwnProperty(index)) { - return require.aliases[index]; - } -}; - -/** - * Normalize `path` relative to the current path. - * - * @param {String} curr - * @param {String} path - * @return {String} - * @api private - */ - -require.normalize = function(curr, path) { - var segs = []; - - if ('.' != path.charAt(0)) return path; - - curr = curr.split('/'); - path = path.split('/'); - - for (var i = 0; i < path.length; ++i) { - if ('..' == path[i]) { - curr.pop(); - } else if ('.' != path[i] && '' != path[i]) { - segs.push(path[i]); - } - } - - return curr.concat(segs).join('/'); -}; - -/** - * Register module at `path` with callback `definition`. - * - * @param {String} path - * @param {Function} definition - * @api private - */ - -require.register = function(path, definition) { - require.modules[path] = definition; -}; - -/** - * Alias a module definition. - * - * @param {String} from - * @param {String} to - * @api private - */ - -require.alias = function(from, to) { - if (!require.modules.hasOwnProperty(from)) { - throw new Error('Failed to alias "' + from + '", it does not exist'); - } - require.aliases[to] = from; -}; - -/** - * Return a require function relative to the `parent` path. - * - * @param {String} parent - * @return {Function} - * @api private - */ - -require.relative = function(parent) { - var p = require.normalize(parent, '..'); - - /** - * lastIndexOf helper. - */ - - function lastIndexOf(arr, obj) { - var i = arr.length; - while (i--) { - if (arr[i] === obj) return i; - } - return -1; - } - - /** - * The relative require() itself. - */ - - function localRequire(path) { - var resolved = localRequire.resolve(path); - return require(resolved, parent, path); - } - - /** - * Resolve relative to the parent. - */ - - localRequire.resolve = function(path) { - var c = path.charAt(0); - if ('/' == c) return path.slice(1); - if ('.' == c) return require.normalize(p, path); - - // resolve deps by returning - // the dep in the nearest "deps" - // directory - var segs = parent.split('/'); - var i = lastIndexOf(segs, 'deps') + 1; - if (!i) i = 0; - path = segs.slice(0, i + 1).join('/') + '/deps/' + path; - return path; - }; - - /** - * Check if module is defined at `path`. - */ - - localRequire.exists = function(path) { - return require.modules.hasOwnProperty(localRequire.resolve(path)); - }; - - return localRequire; -}; -require.register("isarray/index.js", function(exports, require, module){ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; - -}); -require.alias("isarray/index.js", "isarray/index.js"); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/component.json deleted file mode 100644 index 9e31b683..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/index.js deleted file mode 100644 index 5f5ad45d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/index.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json deleted file mode 100644 index 060e073f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "isarray", - "description": "Array#isArray for older browsers", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "homepage": "https://github.com/juliangruber/isarray", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": {}, - "devDependencies": { - "tap": "*" - }, - "keywords": [ - "browser", - "isarray", - "array" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "_id": "isarray@0.0.1", - "dist": { - "shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "tarball": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "_from": "isarray@0.0.1", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "directories": {}, - "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" - }, - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/package.json deleted file mode 100644 index 72bff47e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "has-binary", - "version": "0.1.6", - "description": "A function that takes anything in javascript and returns true if its argument contains binary data.", - "dependencies": { - "isarray": "0.0.1" - }, - "devDependencies": { - "better-assert": "1.0.0", - "mocha": "1.17.1" - }, - "author": { - "name": "Kevin Roark" - }, - "license": "MIT", - "gitHead": "a37d7ed88fb88e49d5ed1ca15e6cc7dd004dd0e8", - "_id": "has-binary@0.1.6", - "scripts": {}, - "_shasum": "25326f39cfa4f616ad8787894e3af2cfbc7b6e10", - "_from": "has-binary@0.1.6", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "25326f39cfa4f616ad8787894e3af2cfbc7b6e10", - "tarball": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/test.js deleted file mode 100644 index 5320d4fe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/test.js +++ /dev/null @@ -1,108 +0,0 @@ - -var hasBinary = require('./'); -var assert = require('better-assert'); -var fs = require('fs'); - -var start = new Date(); - -describe('has-binarydata', function(){ - - it('should work with buffer', function(){ - assert(hasBinary(fs.readFileSync('./test.js'))); - }); - - it('should work with an array that does not contain binary', function() { - var arr = [1, 'cool', 2]; - assert(!hasBinary(arr)); - }); - - it('should work with an array that contains a buffer', function() { - var arr = [1, new Buffer('asdfasdf', 'utf8'), 2]; - assert(hasBinary(arr)); - }); - - it('should work with an object that does not contain binary', function() { - var ob = {a: 'a', b: [], c: 1234}; - assert(!hasBinary(ob)); - }); - - it('should work with an object that contains a buffer', function() { - var ob = {a: 'a', b: new Buffer('abc'), c: 1234}; - assert(hasBinary(ob)); - }); - - it('should work with null', function() { - assert(!hasBinary(null)); - }); - - it('should work with undefined', function() { - assert(!hasBinary(undefined)); - }); - - it('should work with a complex object that contains undefined and no binary', function() { - var ob = { - x: ['a', 'b', 123], - y: undefined, - z: {a: 'x', b: 'y', c: 3, d: null}, - w: [] - }; - assert(!hasBinary(ob)); - }); - - it('should work with a complex object that contains undefined and binary', function() { - var ob = { - x: ['a', 'b', 123], - y: undefined, - z: {a: 'x', b: 'y', c: 3, d: null}, - w: [], - bin: new Buffer('xxx') - }; - assert(hasBinary(ob)); - }); - - it('should handle a very large json object with no binary', function(done) { - this.timeout(); - fs.readFile(__dirname + '/fixtures/big.json', function(err, data) { - if (err) { - console.log(err); - assert(false); - } - data = JSON.parse(data); - assert(!hasBinary(data)); - done(); - }); - }); - - it('should handle a very large json object with binary', function(done) { - this.timeout(); - fs.readFile(__dirname + '/fixtures/big.json', function(err, data) { - if (err) { - console.log(err); - assert(false); - } - var ob = JSON.parse(data); - ob.bin = {bin: {bin: {bin: new Buffer('abc')}}}; - assert(hasBinary(ob)); - done(); - }); - }); - - if (global.ArrayBuffer) { - it('should work with an ArrayBuffer', function() { - assert(hasBinary(new ArrayBuffer())); - }); - } - - if (global.Blob) { - it('should work with a Blob', function() { - assert(hasBinary(new Blob())); - }); - } - - it('should print the test time', function() { - var end = new Date(); - var diff = end - start; - console.log('\ntest time: ' + diff + ' ms'); - }); - -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.gitattributes b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.gitattributes deleted file mode 100644 index 0a91f751..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Automatically normalize line endings for all text-based files -* text=auto diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.npmignore deleted file mode 100644 index 63423244..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.npmignore +++ /dev/null @@ -1,20 +0,0 @@ -# Generated test data file (> 100 MB) -tests/data.json - -# Coverage report -coverage - -# Installed npm modules -node_modules - -# Folder view configuration files -.DS_Store -Desktop.ini - -# Thumbnail cache files -._* -Thumbs.db - -# Files that might appear on external disks -.Spotlight-V100 -.Trashes diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.travis.yml deleted file mode 100644 index ff7cdb4a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: node_js -node_js: - - "0.10" -before_script: - - "npm install -g grunt-cli" - # Narwhal uses a hardcoded path to openjdk v6, so use that version - - "sudo apt-get update -qq" - - "sudo apt-get install -qq openjdk-6-jre" - - "PACKAGE=rhino1_7R3; wget http://ftp.mozilla.org/pub/mozilla.org/js/$PACKAGE.zip && sudo unzip $PACKAGE -d /opt/ && rm $PACKAGE.zip" - - "PACKAGE=rhino1_7R3; echo -e '#!/bin/sh\\njava -jar /opt/'$PACKAGE'/js.jar $@' | sudo tee /usr/local/bin/rhino && sudo chmod +x /usr/local/bin/rhino" - - "PACKAGE=ringojs-0.11; wget https://github.com/ringo/ringojs/releases/download/v0.11.0/$PACKAGE.zip && sudo unzip $PACKAGE -d /opt/ && rm $PACKAGE.zip" - - "PACKAGE=ringojs-0.11; sudo ln -s /opt/$PACKAGE/bin/ringo /usr/local/bin/ringo && sudo chmod +x /usr/local/bin/ringo" - - "PACKAGE=v0.3.2; wget https://github.com/280north/narwhal/archive/$PACKAGE.zip && sudo unzip $PACKAGE -d /opt/ && rm $PACKAGE.zip" - - "PACKAGE=narwhal-0.3.2; sudo ln -s /opt/$PACKAGE/bin/narwhal /usr/local/bin/narwhal && sudo chmod +x /usr/local/bin/narwhal" - # If the enviroment stores rt.jar in a different directory, find it and symlink the directory - - "PREFIX=/usr/lib/jvm; if [ ! -d $PREFIX/java-6-openjdk ]; then for d in $PREFIX/java-6-openjdk-*; do if [ -e $d/jre/lib/rt.jar ]; then sudo ln -s $d $PREFIX/java-6-openjdk; break; fi; done; fi" - - "sudo apt-get install -qq python; python --version" -script: - - "grunt ci" -after_script: - - "grunt shell:cover-coveralls" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/Gruntfile.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/Gruntfile.js deleted file mode 100644 index 2af2bf59..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/Gruntfile.js +++ /dev/null @@ -1,75 +0,0 @@ -module.exports = function(grunt) { - - grunt.initConfig({ - 'shell': { - 'options': { - 'stdout': true, - 'stderr': true, - 'failOnError': true - }, - 'generate-test-data': { // Only when needed - 'command': 'if [ ! -f data.json ]; then python generate-test-data.py; fi', - 'options': { - 'execOptions': { - 'cwd': 'tests' - } - } - }, - 'cover-html': { - 'command': 'istanbul cover --report "html" --verbose --dir "coverage" "tests/tests.js"; istanbul report --root "coverage" --format "html"' - }, - 'cover-coveralls': { - 'command': 'istanbul cover --verbose --dir "coverage" "tests/tests.js" && cat coverage/lcov.info | coveralls; rm -rf coverage/lcov*' - }, - 'test-narwhal': { - 'command': 'echo "Testing in Narwhal..."; export NARWHAL_OPTIMIZATION=-1; narwhal "tests/tests.js"' - }, - 'test-phantomjs': { - 'command': 'echo "Testing in PhantomJS..."; phantomjs "tests/tests.js"' - }, - // Rhino 1.7R4 has a bug that makes it impossible to test in. - // https://bugzilla.mozilla.org/show_bug.cgi?id=775566 - // To test, use Rhino 1.7R3, or wait (heh) for the 1.7R5 release. - 'test-rhino': { - 'command': 'echo "Testing in Rhino..."; rhino -opt -1 "tests.js"', - 'options': { - 'execOptions': { - 'cwd': 'tests' - } - } - }, - 'test-ringo': { - 'command': 'echo "Testing in Ringo..."; ringo -o -1 "tests/tests.js"' - }, - 'test-node': { - 'command': 'echo "Testing in Node..."; node "tests/tests.js" --extended' - }, - 'test-browser': { - 'command': 'echo "Testing in a browser..."; open "tests/index.html"' - } - } - }); - - grunt.loadNpmTasks('grunt-shell'); - - grunt.registerTask('cover', 'shell:cover-html'); - grunt.registerTask('ci', [ - 'shell:generate-test-data', - 'shell:test-narwhal', - 'shell:test-phantomjs', - 'shell:test-rhino', - 'shell:test-ringo', - 'shell:test-node', - ]); - grunt.registerTask('test', [ - 'shell:generate-test-data', - 'ci', - 'shell:test-browser' - ]); - - grunt.registerTask('default', [ - 'shell:test-node', - 'cover' - ]); - -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/LICENSE-MIT.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/LICENSE-MIT.txt deleted file mode 100644 index a41e0a7e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/LICENSE-MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Mathias Bynens - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/README.md deleted file mode 100644 index 32351cd1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/README.md +++ /dev/null @@ -1,119 +0,0 @@ -# utf8.js [![Build status](https://travis-ci.org/mathiasbynens/utf8.js.svg?branch=master)](https://travis-ci.org/mathiasbynens/utf8.js) [![Code coverage status](http://img.shields.io/coveralls/mathiasbynens/utf8.js/master.svg)](https://coveralls.io/r/mathiasbynens/utf8.js) [![Dependency status](https://gemnasium.com/mathiasbynens/utf8.js.svg)](https://gemnasium.com/mathiasbynens/utf8.js) - -_utf8.js_ is a well-tested UTF-8 encoder/decoder written in JavaScript. Unlike many other JavaScript solutions, it is designed to be a _proper_ UTF-8 encoder/decoder: it can encode/decode any scalar Unicode code point values, as per [the Encoding Standard](https://encoding.spec.whatwg.org/#utf-8). [Here’s an online demo.](https://mothereff.in/utf-8) - -Feel free to fork if you see possible improvements! - -## Installation - -Via [npm](https://www.npmjs.org/): - -```bash -npm install utf8 -``` - -Via [Bower](http://bower.io/): - -```bash -bower install utf8 -``` - -Via [Component](https://github.com/component/component): - -```bash -component install mathiasbynens/utf8.js -``` - -In a browser: - -```html - -``` - -In [Narwhal](http://narwhaljs.org/), [Node.js](https://nodejs.org/), and [RingoJS ≥ v0.8.0](http://ringojs.org/): - -```js -var utf8 = require('utf8'); -``` - -In [Rhino](http://www.mozilla.org/rhino/): - -```js -load('utf8.js'); -``` - -Using an AMD loader like [RequireJS](http://requirejs.org/): - -```js -require( - { - 'paths': { - 'utf8': 'path/to/utf8' - } - }, - ['utf8'], - function(utf8) { - console.log(utf8); - } -); -``` - -## API - -### `utf8.encode(string)` - -Encodes any given JavaScript string (`string`) as UTF-8, and returns the UTF-8-encoded version of the string. It throws an error if the input string contains a non-scalar value, i.e. a lone surrogate. (If you need to be able to encode non-scalar values as well, use [WTF-8](https://mths.be/wtf8) instead.) - -```js -// U+00A9 COPYRIGHT SIGN; see http://codepoints.net/U+00A9 -utf8.encode('\xA9'); -// → '\xC2\xA9' -// U+10001 LINEAR B SYLLABLE B038 E; see http://codepoints.net/U+10001 -utf8.encode('\uD800\uDC01'); -// → '\xF0\x90\x80\x81' -``` - -### `utf8.decode(byteString)` - -Decodes any given UTF-8-encoded string (`byteString`) as UTF-8, and returns the UTF-8-decoded version of the string. It throws an error when malformed UTF-8 is detected. (If you need to be able to decode encoded non-scalar values as well, use [WTF-8](https://mths.be/wtf8) instead.) - -```js -utf8.decode('\xC2\xA9'); -// → '\xA9' - -utf8.decode('\xF0\x90\x80\x81'); -// → '\uD800\uDC01' -// → U+10001 LINEAR B SYLLABLE B038 E -``` - -### `utf8.version` - -A string representing the semantic version number. - -## Support - -utf8.js has been tested in at least Chrome 27-39, Firefox 3-34, Safari 4-8, Opera 10-28, IE 6-11, Node.js v0.10.0, Narwhal 0.3.2, RingoJS 0.8-0.11, PhantomJS 1.9.0, and Rhino 1.7RC4. - -## Unit tests & code coverage - -After cloning this repository, run `npm install` to install the dependencies needed for development and testing. You may want to install Istanbul _globally_ using `npm install istanbul -g`. - -Once that’s done, you can run the unit tests in Node using `npm test` or `node tests/tests.js`. To run the tests in Rhino, Ringo, Narwhal, PhantomJS, and web browsers as well, use `grunt test`. - -To generate the code coverage report, use `grunt cover`. - -## FAQ - -### Why is the first release named v2.0.0? Haven’t you heard of [semantic versioning](http://semver.org/)? - -Long before utf8.js was created, the `utf8` module on npm was registered and used by another (slightly buggy) library. @ryanmcgrath was kind enough to give me access to the `utf8` package on npm when I told him about utf8.js. Since there has already been a v1.0.0 release of the old library, and to avoid breaking backwards compatibility with projects that rely on the `utf8` npm package, I decided the tag the first release of utf8.js as v2.0.0 and take it from there. - -## Author - -| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | -|---| -| [Mathias Bynens](https://mathiasbynens.be/) | - -## License - -utf8.js is available under the [MIT](https://mths.be/mit) license. diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/bower.json deleted file mode 100644 index fe8fa726..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/bower.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "utf8", - "version": "2.0.0", - "main": "utf8.js", - "ignore": [ - "coverage", - "tests", - ".*", - "component.json", - "Gruntfile.js", - "node_modules", - "package.json" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/component.json deleted file mode 100644 index 5165d4fe..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/component.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "utf8", - "version": "2.0.0", - "description": "A well-tested UTF-8 encoder/decoder written in JavaScript.", - "repo": "mathiasbynens/utf8.js", - "license": "MIT/GPL", - "scripts": [ - "utf8.js" - ], - "keywords": [ - "charset", - "encoding", - "unicode", - "utf8" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/package.json deleted file mode 100644 index 0498ae03..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "utf8", - "version": "2.1.0", - "description": "A well-tested UTF-8 encoder/decoder written in JavaScript.", - "homepage": "https://mths.be/utf8js", - "main": "utf8.js", - "keywords": [ - "charset", - "encoding", - "unicode", - "utf8" - ], - "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/mathiasbynens/utf8.js.git" - }, - "bugs": { - "url": "https://github.com/mathiasbynens/utf8.js/issues" - }, - "scripts": { - "test": "node tests/tests.js" - }, - "devDependencies": { - "coveralls": "^2.11.1", - "grunt": "^0.4.5", - "grunt-shell": "^1.1.1", - "istanbul": "^0.3.5", - "qunit-extras": "^1.4.0", - "qunitjs": "~1.11.0", - "requirejs": "^2.1.11" - }, - "gitHead": "1961da40649c4103b5d01c29f8e6bcc3231a1372", - "_id": "utf8@2.1.0", - "_shasum": "0cfec5c8052d44a23e3aaa908104e8075f95dfd5", - "_from": "utf8@2.1.0", - "_npmVersion": "2.1.11", - "_nodeVersion": "0.10.32", - "_npmUser": { - "name": "mathias", - "email": "mathias@qiwi.be" - }, - "maintainers": [ - { - "name": "ryanmcgrath", - "email": "ryan@venodesigns.net" - }, - { - "name": "mathias", - "email": "mathias@qiwi.be" - } - ], - "dist": { - "shasum": "0cfec5c8052d44a23e3aaa908104e8075f95dfd5", - "tarball": "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/generate-test-data.py b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/generate-test-data.py deleted file mode 100755 index 08be0d2c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/generate-test-data.py +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python - -import re -import json - -# https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae -# http://stackoverflow.com/a/13436167/96656 -def unisymbol(codePoint): - if codePoint >= 0x0000 and codePoint <= 0xFFFF: - return unichr(codePoint) - elif codePoint >= 0x010000 and codePoint <= 0x10FFFF: - highSurrogate = int((codePoint - 0x10000) / 0x400) + 0xD800 - lowSurrogate = int((codePoint - 0x10000) % 0x400) + 0xDC00 - return unichr(highSurrogate) + unichr(lowSurrogate) - else: - return 'Error' - -def hexify(codePoint): - return 'U+' + hex(codePoint)[2:].upper().zfill(6) - -def writeFile(filename, contents): - print filename - with open(filename, 'w') as f: - f.write(contents.strip() + '\n') - -data = [] -for codePoint in range(0x000000, 0x10FFFF + 1): - # Skip non-scalar values. - if codePoint >= 0xD800 and codePoint <= 0xDFFF: - continue - symbol = unisymbol(codePoint) - # http://stackoverflow.com/a/17199950/96656 - bytes = symbol.encode('utf8').decode('latin1') - data.append({ - 'codePoint': codePoint, - 'decoded': symbol, - 'encoded': bytes - }); - -jsonData = json.dumps(data, sort_keys=False, indent=2, separators=(',', ': ')) -# Use tabs instead of double spaces for indentation -jsonData = jsonData.replace(' ', '\t') -# Escape hexadecimal digits in escape sequences -jsonData = re.sub( - r'\\u([a-fA-F0-9]{4})', - lambda match: r'\u{}'.format(match.group(1).upper()), - jsonData -) - -writeFile('data.json', jsonData) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/index.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/index.html deleted file mode 100644 index 13cc04d5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - utf8.js test suite - - - -
            - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/tests.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/tests.js deleted file mode 100644 index 5ebe5135..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/tests.js +++ /dev/null @@ -1,276 +0,0 @@ -(function(root) { - 'use strict'; - - var noop = Function.prototype; - - var load = (typeof require == 'function' && !(root.define && define.amd)) ? - require : - (!root.document && root.java && root.load) || noop; - - var QUnit = (function() { - return root.QUnit || ( - root.addEventListener || (root.addEventListener = noop), - root.setTimeout || (root.setTimeout = noop), - root.QUnit = load('../node_modules/qunitjs/qunit/qunit.js') || root.QUnit, - addEventListener === noop && delete root.addEventListener, - root.QUnit - ); - }()); - - var qe = load('../node_modules/qunit-extras/qunit-extras.js'); - if (qe) { - qe.runInContext(root); - } - - /** The `utf8` object to test */ - var utf8 = root.utf8 || (root.utf8 = ( - utf8 = load('../utf8.js') || root.utf8, - utf8 = utf8.utf8 || utf8 - )); - - /*--------------------------------------------------------------------------*/ - - function forEach(array, fn) { - var index = -1; - var length = array.length; - while (++index < length) { - fn(array[index]); - } - } - - // Quick and dirty test to see if we’re in Node & need extended tests - var runExtendedTests = (function() { - try { - return process.argv[0] == 'node' && process.argv[2] == '--extended'; - } catch(error) { } - }()); - - var data = [ - // 1-byte - { - 'codePoint': 0x0000, - 'decoded': '\0', - 'encoded': '\0' - }, - { - 'codePoint': 0x005C, - 'decoded': '\x5C', - 'encoded': '\x5C' - }, - { - 'codePoint': 0x007F, - 'decoded': '\x7F', - 'encoded': '\x7F' - }, - - // 2-byte - { - 'codePoint': 0x0080, - 'decoded': '\x80', - 'encoded': '\xC2\x80' - }, - { - 'codePoint': 0x05CA, - 'decoded': '\u05CA', - 'encoded': '\xD7\x8A' - }, - { - 'codePoint': 0x07FF, - 'decoded': '\u07FF', - 'encoded': '\xDF\xBF', - }, - - // 3-byte - { - 'codePoint': 0x0800, - 'decoded': '\u0800', - 'encoded': '\xE0\xA0\x80', - }, - { - 'codePoint': 0x2C3C, - 'decoded': '\u2C3C', - 'encoded': '\xE2\xB0\xBC' - }, - { - 'codePoint': 0xFFFF, - 'decoded': '\uFFFF', - 'encoded': '\xEF\xBF\xBF' - }, - // unmatched surrogate halves - // high surrogates: 0xD800 to 0xDBFF - { - 'codePoint': 0xD800, - 'decoded': '\uD800', - 'encoded': '\xED\xA0\x80', - 'error': true - }, - { - 'description': 'High surrogate followed by another high surrogate', - 'decoded': '\uD800\uD800', - 'encoded': '\xED\xA0\x80\xED\xA0\x80', - 'error': true - }, - { - 'description': 'High surrogate followed by a symbol that is not a surrogate', - 'decoded': '\uD800A', - 'encoded': '\xED\xA0\x80A', - 'error': true - }, - { - 'description': 'Unmatched high surrogate, followed by a surrogate pair, followed by an unmatched high surrogate', - 'decoded': '\uD800\uD834\uDF06\uD800', - 'encoded': '\xED\xA0\x80\xF0\x9D\x8C\x86\xED\xA0\x80', - 'error': true - }, - { - 'codePoint': 0xD9AF, - 'decoded': '\uD9AF', - 'encoded': '\xED\xA6\xAF', - 'error': true - }, - { - 'codePoint': 0xDBFF, - 'decoded': '\uDBFF', - 'encoded': '\xED\xAF\xBF', - 'error': true - }, - // low surrogates: 0xDC00 to 0xDFFF - { - 'codePoint': 0xDC00, - 'decoded': '\uDC00', - 'encoded': '\xED\xB0\x80', - 'error': true - }, - { - 'description': 'Low surrogate followed by another low surrogate', - 'decoded': '\uDC00\uDC00', - 'encoded': '\xED\xB0\x80\xED\xB0\x80', - 'error': true - }, - { - 'description': 'Low surrogate followed by a symbol that is not a surrogate', - 'decoded': '\uDC00A', - 'encoded': '\xED\xB0\x80A', - 'error': true - }, - { - 'description': 'Unmatched low surrogate, followed by a surrogate pair, followed by an unmatched low surrogate', - 'decoded': '\uDC00\uD834\uDF06\uDC00', - 'encoded': '\xED\xB0\x80\xF0\x9D\x8C\x86\xED\xB0\x80', - 'error': true - }, - { - 'codePoint': 0xDEEE, - 'decoded': '\uDEEE', - 'encoded': '\xED\xBB\xAE', - 'error': true - }, - { - 'codePoint': 0xDFFF, - 'decoded': '\uDFFF', - 'encoded': '\xED\xBF\xBF', - 'error': true - }, - - // 4-byte - { - 'codePoint': 0x010000, - 'decoded': '\uD800\uDC00', - 'encoded': '\xF0\x90\x80\x80' - }, - { - 'codePoint': 0x01D306, - 'decoded': '\uD834\uDF06', - 'encoded': '\xF0\x9D\x8C\x86' - }, - { - 'codePoint': 0x10FFF, - 'decoded': '\uDBFF\uDFFF', - 'encoded': '\xF4\x8F\xBF\xBF' - } - ]; - - if (runExtendedTests) { - data = data.concat(require('./data.json')); - } - - // `throws` is a reserved word in ES3; alias it to avoid errors - var raises = QUnit.assert['throws']; - - // explicitly call `QUnit.module()` instead of `module()` - // in case we are in a CLI environment - QUnit.module('utf8.js'); - - test('encode/decode', function() { - forEach(data, function(object) { - var description = object.description || 'U+' + object.codePoint.toString(16).toUpperCase(); - ; - if (object.error) { - raises( - function() { - utf8.decode(object.encoded); - }, - Error, - 'Error: non-scalar value detected' - ); - raises( - function() { - utf8.encode(object.decoded); - }, - Error, - 'Error: non-scalar value detected' - ); - } else { - equal( - object.encoded, - utf8.encode(object.decoded), - 'Encoding: ' + description - ); - equal( - object.decoded, - utf8.decode(object.encoded), - 'Decoding: ' + description - ); - } - }); - - // Error handling - raises( - function() { - utf8.decode('\uFFFF'); - }, - Error, - 'Error: invalid UTF-8 detected' - ); - raises( - function() { - utf8.decode('\xE9\x00\x00'); - }, - Error, - 'Error: invalid continuation byte (4-byte sequence expected)' - ); - raises( - function() { - utf8.decode('\xC2\uFFFF'); - }, - Error, - 'Error: invalid continuation byte' - ); - raises( - function() { - utf8.decode('\xF0\x9D'); - }, - Error, - 'Error: invalid byte index' - ); - }); - - /*--------------------------------------------------------------------------*/ - - // configure QUnit and call `QUnit.start()` for - // Narwhal, Node.js, PhantomJS, Rhino, and RingoJS - if (!root.document || root.phantom) { - QUnit.config.noglobals = true; - QUnit.start(); - } -}(typeof global == 'object' && global || this)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/utf8.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/utf8.js deleted file mode 100644 index c138a38e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/utf8.js +++ /dev/null @@ -1,244 +0,0 @@ -/*! https://mths.be/utf8js v2.0.0 by @mathias */ -;(function(root) { - - // Detect free variables `exports` - var freeExports = typeof exports == 'object' && exports; - - // Detect free variable `module` - var freeModule = typeof module == 'object' && module && - module.exports == freeExports && module; - - // Detect free variable `global`, from Node.js or Browserified code, - // and use it as `root` - var freeGlobal = typeof global == 'object' && global; - if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { - root = freeGlobal; - } - - /*--------------------------------------------------------------------------*/ - - var stringFromCharCode = String.fromCharCode; - - // Taken from https://mths.be/punycode - function ucs2decode(string) { - var output = []; - var counter = 0; - var length = string.length; - var value; - var extra; - while (counter < length) { - value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // high surrogate, and there is a next character - extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // low surrogate - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // unmatched surrogate; only append this code unit, in case the next - // code unit is the high surrogate of a surrogate pair - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; - } - - // Taken from https://mths.be/punycode - function ucs2encode(array) { - var length = array.length; - var index = -1; - var value; - var output = ''; - while (++index < length) { - value = array[index]; - if (value > 0xFFFF) { - value -= 0x10000; - output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); - value = 0xDC00 | value & 0x3FF; - } - output += stringFromCharCode(value); - } - return output; - } - - function checkScalarValue(codePoint) { - if (codePoint >= 0xD800 && codePoint <= 0xDFFF) { - throw Error( - 'Lone surrogate U+' + codePoint.toString(16).toUpperCase() + - ' is not a scalar value' - ); - } - } - /*--------------------------------------------------------------------------*/ - - function createByte(codePoint, shift) { - return stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80); - } - - function encodeCodePoint(codePoint) { - if ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence - return stringFromCharCode(codePoint); - } - var symbol = ''; - if ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence - symbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0); - } - else if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence - checkScalarValue(codePoint); - symbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0); - symbol += createByte(codePoint, 6); - } - else if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence - symbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0); - symbol += createByte(codePoint, 12); - symbol += createByte(codePoint, 6); - } - symbol += stringFromCharCode((codePoint & 0x3F) | 0x80); - return symbol; - } - - function utf8encode(string) { - var codePoints = ucs2decode(string); - var length = codePoints.length; - var index = -1; - var codePoint; - var byteString = ''; - while (++index < length) { - codePoint = codePoints[index]; - byteString += encodeCodePoint(codePoint); - } - return byteString; - } - - /*--------------------------------------------------------------------------*/ - - function readContinuationByte() { - if (byteIndex >= byteCount) { - throw Error('Invalid byte index'); - } - - var continuationByte = byteArray[byteIndex] & 0xFF; - byteIndex++; - - if ((continuationByte & 0xC0) == 0x80) { - return continuationByte & 0x3F; - } - - // If we end up here, it’s not a continuation byte - throw Error('Invalid continuation byte'); - } - - function decodeSymbol() { - var byte1; - var byte2; - var byte3; - var byte4; - var codePoint; - - if (byteIndex > byteCount) { - throw Error('Invalid byte index'); - } - - if (byteIndex == byteCount) { - return false; - } - - // Read first byte - byte1 = byteArray[byteIndex] & 0xFF; - byteIndex++; - - // 1-byte sequence (no continuation bytes) - if ((byte1 & 0x80) == 0) { - return byte1; - } - - // 2-byte sequence - if ((byte1 & 0xE0) == 0xC0) { - var byte2 = readContinuationByte(); - codePoint = ((byte1 & 0x1F) << 6) | byte2; - if (codePoint >= 0x80) { - return codePoint; - } else { - throw Error('Invalid continuation byte'); - } - } - - // 3-byte sequence (may include unpaired surrogates) - if ((byte1 & 0xF0) == 0xE0) { - byte2 = readContinuationByte(); - byte3 = readContinuationByte(); - codePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3; - if (codePoint >= 0x0800) { - checkScalarValue(codePoint); - return codePoint; - } else { - throw Error('Invalid continuation byte'); - } - } - - // 4-byte sequence - if ((byte1 & 0xF8) == 0xF0) { - byte2 = readContinuationByte(); - byte3 = readContinuationByte(); - byte4 = readContinuationByte(); - codePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) | - (byte3 << 0x06) | byte4; - if (codePoint >= 0x010000 && codePoint <= 0x10FFFF) { - return codePoint; - } - } - - throw Error('Invalid UTF-8 detected'); - } - - var byteArray; - var byteCount; - var byteIndex; - function utf8decode(byteString) { - byteArray = ucs2decode(byteString); - byteCount = byteArray.length; - byteIndex = 0; - var codePoints = []; - var tmp; - while ((tmp = decodeSymbol()) !== false) { - codePoints.push(tmp); - } - return ucs2encode(codePoints); - } - - /*--------------------------------------------------------------------------*/ - - var utf8 = { - 'version': '2.0.0', - 'encode': utf8encode, - 'decode': utf8decode - }; - - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if ( - typeof define == 'function' && - typeof define.amd == 'object' && - define.amd - ) { - define(function() { - return utf8; - }); - } else if (freeExports && !freeExports.nodeType) { - if (freeModule) { // in Node.js or RingoJS v0.8.0+ - freeModule.exports = utf8; - } else { // in Narwhal or RingoJS v0.7.0- - var object = {}; - var hasOwnProperty = object.hasOwnProperty; - for (var key in utf8) { - hasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]); - } - } - } else { // in Rhino or a web browser - root.utf8 = utf8; - } - -}(this)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/package.json deleted file mode 100644 index f34da504..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "engine.io-parser", - "description": "Parser for the client for the realtime Engine", - "version": "1.2.4", - "homepage": "https://github.com/Automattic/engine.io-parser", - "devDependencies": { - "expect.js": "0.3.1", - "mocha": "2.2.5", - "zuul": "3.7.3", - "zuul-ngrok": "3.2.0" - }, - "dependencies": { - "after": "0.8.1", - "arraybuffer.slice": "0.0.6", - "base64-arraybuffer": "0.1.2", - "blob": "0.0.4", - "has-binary": "0.1.6", - "utf8": "2.1.0" - }, - "scripts": { - "test": "make test" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/Automattic/engine.io-parser.git" - }, - "browser": "./lib/browser.js", - "gitHead": "ca248c5238a42d8383a4ab7de347adc2578abeac", - "bugs": { - "url": "https://github.com/Automattic/engine.io-parser/issues" - }, - "_id": "engine.io-parser@1.2.4", - "_shasum": "e0897b0bf14e792d4cd2a5950553919c56948c42", - "_from": "engine.io-parser@1.2.4", - "_npmVersion": "3.4.1", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "e0897b0bf14e792d4cd2a5950553919c56948c42", - "tarball": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/.npmignore deleted file mode 100644 index 1eba800f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/.npmignore +++ /dev/null @@ -1,11 +0,0 @@ -npm-debug.log -node_modules -.*.swp -.lock-* -build - -bench -doc -examples -test - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/.travis.yml deleted file mode 100644 index 5002b498..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: node_js -sudo: false -node_js: - - "5" - - "4" - - "0.12" -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - gcc-4.9 - - g++-4.9 -before_install: - - export CC="gcc-4.9" CXX="g++-4.9" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/Makefile deleted file mode 100644 index 94612c5c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -ALL_TESTS = $(shell find test/ -name '*.test.js') -ALL_INTEGRATION = $(shell find test/ -name '*.integration.js') - -run-tests: - @./node_modules/.bin/mocha \ - -t 5000 \ - -s 2400 \ - $(TESTFLAGS) \ - $(TESTS) - -run-integrationtests: - @./node_modules/.bin/mocha \ - -t 5000 \ - -s 6000 \ - $(TESTFLAGS) \ - $(TESTS) - -run-coverage: - @./node_modules/.bin/istanbul cover --report html \ - ./node_modules/.bin/_mocha -- \ - -t 5000 \ - -s 6000 \ - $(TESTFLAGS) \ - $(TESTS) - -test: - @$(MAKE) NODE_TLS_REJECT_UNAUTHORIZED=0 NODE_PATH=lib TESTS="$(ALL_TESTS)" run-tests - -integrationtest: - @$(MAKE) NODE_TLS_REJECT_UNAUTHORIZED=0 NODE_PATH=lib TESTS="$(ALL_INTEGRATION)" run-integrationtests - -coverage: - @$(MAKE) NODE_TLS_REJECT_UNAUTHORIZED=0 NODE_PATH=lib TESTS="$(ALL_TESTS)" run-coverage - -benchmark: - @node bench/sender.benchmark.js - @node bench/parser.benchmark.js - -autobahn: - @NODE_PATH=lib node test/autobahn.js - -autobahn-server: - @NODE_PATH=lib node test/autobahn-server.js - -.PHONY: test coverage diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/README.md deleted file mode 100644 index 93106d7a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/README.md +++ /dev/null @@ -1,235 +0,0 @@ -# ws: a node.js websocket library - -[![Build Status](https://travis-ci.org/websockets/ws.svg?branch=master)](https://travis-ci.org/websockets/ws) - -`ws` is a simple to use WebSocket implementation, up-to-date against RFC-6455, -and [probably the fastest WebSocket library for node.js][archive]. - -Passes the quite extensive Autobahn test suite. See http://websockets.github.com/ws -for the full reports. - -## Protocol support - -* **Hixie draft 76** (Old and deprecated, but still in use by Safari and Opera. - Added to ws version 0.4.2, but server only. Can be disabled by setting the - `disableHixie` option to true.) -* **HyBi drafts 07-12** (Use the option `protocolVersion: 8`) -* **HyBi drafts 13-17** (Current default, alternatively option `protocolVersion: 13`) - -### Installing - -``` -npm install --save ws -``` - -### Opt-in for performance - -There are 2 optional modules that can be installed along side with the `ws` -module. These modules are binary addons which improve certain operations, but as -they are binary addons they require compilation which can fail if no c++ -compiler is installed on the host system. - -- `npm install --save bufferutil`: Improves internal buffer operations which - allows for faster processing of masked WebSocket frames and general buffer - operations. -- `npm install --save utf-8-validate`: The specification requires validation of - invalid UTF-8 chars, some of these validations could not be done in JavaScript - hence the need for a binary addon. In most cases you will already be - validating the input that you receive for security purposes leading to double - validation. But if you want to be 100% spec-conforming and have fast - validation of UTF-8 then this module is a must. - -### Sending and receiving text data - -```js -var WebSocket = require('ws'); -var ws = new WebSocket('ws://www.host.com/path'); - -ws.on('open', function open() { - ws.send('something'); -}); - -ws.on('message', function(data, flags) { - // flags.binary will be set if a binary data is received. - // flags.masked will be set if the data was masked. -}); -``` - -### Sending binary data - -```js -var WebSocket = require('ws'); -var ws = new WebSocket('ws://www.host.com/path'); - -ws.on('open', function open() { - var array = new Float32Array(5); - - for (var i = 0; i < array.length; ++i) { - array[i] = i / 2; - } - - ws.send(array, { binary: true, mask: true }); -}); -``` - -Setting `mask`, as done for the send options above, will cause the data to be -masked according to the WebSocket protocol. The same option applies for text -data. - -### Server example - -```js -var WebSocketServer = require('ws').Server - , wss = new WebSocketServer({ port: 8080 }); - -wss.on('connection', function connection(ws) { - ws.on('message', function incoming(message) { - console.log('received: %s', message); - }); - - ws.send('something'); -}); -``` - -### ExpressJS example - -```js -var server = require('http').createServer() - , url = require('url') - , WebSocketServer = require('ws').Server - , wss = new WebSocketServer({ server: server }) - , express = require('express') - , app = express() - , port = 4080; - -app.use(function (req, res) { - res.send({ msg: "hello" }); -}); - -wss.on('connection', function connection(ws) { - var location = url.parse(ws.upgradeReq.url, true); - // you might use location.query.access_token to authenticate or share sessions - // or ws.upgradeReq.headers.cookie (see http://stackoverflow.com/a/16395220/151312) - - ws.on('message', function incoming(message) { - console.log('received: %s', message); - }); - - ws.send('something'); -}); - -server.on('request', app); -server.listen(port, function () { console.log('Listening on ' + server.address().port) }); -``` - -### Server sending broadcast data - -```js -var WebSocketServer = require('ws').Server - , wss = new WebSocketServer({ port: 8080 }); - -wss.broadcast = function broadcast(data) { - wss.clients.forEach(function each(client) { - client.send(data); - }); -}; -``` - -### Error handling best practices - -```js -// If the WebSocket is closed before the following send is attempted -ws.send('something'); - -// Errors (both immediate and async write errors) can be detected in an optional -// callback. The callback is also the only way of being notified that data has -// actually been sent. -ws.send('something', function ack(error) { - // if error is not defined, the send has been completed, - // otherwise the error object will indicate what failed. -}); - -// Immediate errors can also be handled with try/catch-blocks, but **note** that -// since sends are inherently asynchronous, socket write failures will *not* be -// captured when this technique is used. -try { ws.send('something'); } -catch (e) { /* handle error */ } -``` - -### echo.websocket.org demo - -```js -var WebSocket = require('ws'); -var ws = new WebSocket('ws://echo.websocket.org/', { - protocolVersion: 8, - origin: 'http://websocket.org' -}); - -ws.on('open', function open() { - console.log('connected'); - ws.send(Date.now().toString(), {mask: true}); -}); - -ws.on('close', function close() { - console.log('disconnected'); -}); - -ws.on('message', function message(data, flags) { - console.log('Roundtrip time: ' + (Date.now() - parseInt(data)) + 'ms', flags); - - setTimeout(function timeout() { - ws.send(Date.now().toString(), {mask: true}); - }, 500); -}); -``` - -### Other examples - -For a full example with a browser client communicating with a ws server, see the -examples folder. - -Note that the usage together with Express 3.0 is quite different from Express -2.x. The difference is expressed in the two different serverstats-examples. - -Otherwise, see the test cases. - -### Running the tests - -``` -make test -``` - -## API Docs - -See [`/doc/ws.md`](https://github.com/websockets/ws/blob/master/doc/ws.md) for Node.js-like docs for the ws classes. - -## Changelog - -We're using the GitHub [`releases`](https://github.com/websockets/ws/releases) for changelog entries. - -## License - -(The MIT License) - -Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.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. - -[archive]: http://web.archive.org/web/20130314230536/http://hobbycoding.posterous.com/the-fastest-websocket-module-for-nodejs diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/SECURITY.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/SECURITY.md deleted file mode 100644 index fd8e07bc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/SECURITY.md +++ /dev/null @@ -1,33 +0,0 @@ -# Security Guidelines - -Please contact us directly at **security@3rd-Eden.com** for any bug that might -impact the security of this project. Please prefix the subject of your email -with `[security]` in lowercase and square brackets. Our email filters will -automatically prevent these messages from being moved to our spam box. - -You will receive an acknowledgement of your report within **24 hours**. - -All emails that do not include security vulnerabilities will be removed and -blocked instantly. - -## Exceptions - -If you do not receive an acknowledgement within the said time frame please give -us the benefit of the doubt as it's possible that we haven't seen it yet. In -this case please send us a message **without details** using one of the -following methods: - -- Contact the lead developers of this project on their personal e-mails. You - can find the e-mails in the git logs, for example using the following command: - `git --no-pager show -s --format='%an <%ae>' ` where `` is the - SHA1 of their latest commit in the project. -- Create a GitHub issue stating contact details and the severity of the issue. - -Once we have acknowledged receipt of your report and confirmed the bug -ourselves we will work with you to fix the vulnerability and publicly acknowledge -your responsible disclosure, if you wish. In addition to that we will report -all vulnerabilities to the [Node Security Project](https://nodesecurity.io/). - -## History - -04 Jan 2016: [Buffer vulnerablity](https://github.com/websockets/ws/releases/tag/1.0.1) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/index.js deleted file mode 100644 index a7e8644b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/index.js +++ /dev/null @@ -1,49 +0,0 @@ -'use strict'; - -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -var WS = module.exports = require('./lib/WebSocket'); - -WS.Server = require('./lib/WebSocketServer'); -WS.Sender = require('./lib/Sender'); -WS.Receiver = require('./lib/Receiver'); - -/** - * Create a new WebSocket server. - * - * @param {Object} options Server options - * @param {Function} fn Optional connection listener. - * @returns {WS.Server} - * @api public - */ -WS.createServer = function createServer(options, fn) { - var server = new WS.Server(options); - - if (typeof fn === 'function') { - server.on('connection', fn); - } - - return server; -}; - -/** - * Create a new WebSocket connection. - * - * @param {String} address The URL/address we need to connect to. - * @param {Function} fn Open listener. - * @returns {WS} - * @api public - */ -WS.connect = WS.createConnection = function connect(address, fn) { - var client = new WS(address); - - if (typeof fn === 'function') { - client.on('open', fn); - } - - return client; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferPool.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferPool.js deleted file mode 100644 index 8ee59905..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferPool.js +++ /dev/null @@ -1,63 +0,0 @@ -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -var util = require('util'); - -function BufferPool(initialSize, growStrategy, shrinkStrategy) { - if (this instanceof BufferPool === false) { - throw new TypeError("Classes can't be function-called"); - } - - if (typeof initialSize === 'function') { - shrinkStrategy = growStrategy; - growStrategy = initialSize; - initialSize = 0; - } - else if (typeof initialSize === 'undefined') { - initialSize = 0; - } - this._growStrategy = (growStrategy || function(db, size) { - return db.used + size; - }).bind(null, this); - this._shrinkStrategy = (shrinkStrategy || function(db) { - return initialSize; - }).bind(null, this); - this._buffer = initialSize ? new Buffer(initialSize) : null; - this._offset = 0; - this._used = 0; - this._changeFactor = 0; - this.__defineGetter__('size', function(){ - return this._buffer == null ? 0 : this._buffer.length; - }); - this.__defineGetter__('used', function(){ - return this._used; - }); -} - -BufferPool.prototype.get = function(length) { - if (this._buffer == null || this._offset + length > this._buffer.length) { - var newBuf = new Buffer(this._growStrategy(length)); - this._buffer = newBuf; - this._offset = 0; - } - this._used += length; - var buf = this._buffer.slice(this._offset, this._offset + length); - this._offset += length; - return buf; -} - -BufferPool.prototype.reset = function(forceNewBuffer) { - var len = this._shrinkStrategy(); - if (len < this.size) this._changeFactor -= 1; - if (forceNewBuffer || this._changeFactor < -2) { - this._changeFactor = 0; - this._buffer = len ? new Buffer(len) : null; - } - this._offset = 0; - this._used = 0; -} - -module.exports = BufferPool; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferUtil.fallback.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferUtil.fallback.js deleted file mode 100644 index 7abd0d8a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferUtil.fallback.js +++ /dev/null @@ -1,47 +0,0 @@ -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -exports.BufferUtil = { - merge: function(mergedBuffer, buffers) { - var offset = 0; - for (var i = 0, l = buffers.length; i < l; ++i) { - var buf = buffers[i]; - buf.copy(mergedBuffer, offset); - offset += buf.length; - } - }, - mask: function(source, mask, output, offset, length) { - var maskNum = mask.readUInt32LE(0, true); - var i = 0; - for (; i < length - 3; i += 4) { - var num = maskNum ^ source.readUInt32LE(i, true); - if (num < 0) num = 4294967296 + num; - output.writeUInt32LE(num, offset + i, true); - } - switch (length % 4) { - case 3: output[offset + i + 2] = source[i + 2] ^ mask[2]; - case 2: output[offset + i + 1] = source[i + 1] ^ mask[1]; - case 1: output[offset + i] = source[i] ^ mask[0]; - case 0:; - } - }, - unmask: function(data, mask) { - var maskNum = mask.readUInt32LE(0, true); - var length = data.length; - var i = 0; - for (; i < length - 3; i += 4) { - var num = maskNum ^ data.readUInt32LE(i, true); - if (num < 0) num = 4294967296 + num; - data.writeUInt32LE(num, i, true); - } - switch (length % 4) { - case 3: data[i + 2] = data[i + 2] ^ mask[2]; - case 2: data[i + 1] = data[i + 1] ^ mask[1]; - case 1: data[i] = data[i] ^ mask[0]; - case 0:; - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferUtil.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferUtil.js deleted file mode 100644 index 18c69989..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferUtil.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -try { - module.exports = require('bufferutil'); -} catch (e) { - module.exports = require('./BufferUtil.fallback'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/ErrorCodes.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/ErrorCodes.js deleted file mode 100644 index 55ebd529..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/ErrorCodes.js +++ /dev/null @@ -1,24 +0,0 @@ -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -module.exports = { - isValidErrorCode: function(code) { - return (code >= 1000 && code <= 1011 && code != 1004 && code != 1005 && code != 1006) || - (code >= 3000 && code <= 4999); - }, - 1000: 'normal', - 1001: 'going away', - 1002: 'protocol error', - 1003: 'unsupported data', - 1004: 'reserved', - 1005: 'reserved for extensions', - 1006: 'reserved for extensions', - 1007: 'inconsistent or invalid data', - 1008: 'policy violation', - 1009: 'message too big', - 1010: 'extension handshake missing', - 1011: 'an unexpected condition prevented the request from being fulfilled', -}; \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Extensions.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Extensions.js deleted file mode 100644 index a465ace2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Extensions.js +++ /dev/null @@ -1,70 +0,0 @@ - -var util = require('util'); - -/** - * Module exports. - */ - -exports.parse = parse; -exports.format = format; - -/** - * Parse extensions header value - */ - -function parse(value) { - value = value || ''; - - var extensions = {}; - - value.split(',').forEach(function(v) { - var params = v.split(';'); - var token = params.shift().trim(); - var paramsList = extensions[token] = extensions[token] || []; - var parsedParams = {}; - - params.forEach(function(param) { - var parts = param.trim().split('='); - var key = parts[0]; - var value = parts[1]; - if (typeof value === 'undefined') { - value = true; - } else { - // unquote value - if (value[0] === '"') { - value = value.slice(1); - } - if (value[value.length - 1] === '"') { - value = value.slice(0, value.length - 1); - } - } - (parsedParams[key] = parsedParams[key] || []).push(value); - }); - - paramsList.push(parsedParams); - }); - - return extensions; -} - -/** - * Format extensions header value - */ - -function format(value) { - return Object.keys(value).map(function(token) { - var paramsList = value[token]; - if (!util.isArray(paramsList)) { - paramsList = [paramsList]; - } - return paramsList.map(function(params) { - return [token].concat(Object.keys(params).map(function(k) { - var p = params[k]; - if (!util.isArray(p)) p = [p]; - return p.map(function(v) { - return v === true ? k : k + '=' + v; - }).join('; '); - })).join('; '); - }).join(', '); - }).join(', '); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/PerMessageDeflate.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/PerMessageDeflate.js deleted file mode 100644 index 00a6ea62..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/PerMessageDeflate.js +++ /dev/null @@ -1,337 +0,0 @@ - -var zlib = require('zlib'); - -var AVAILABLE_WINDOW_BITS = [8, 9, 10, 11, 12, 13, 14, 15]; -var DEFAULT_WINDOW_BITS = 15; -var DEFAULT_MEM_LEVEL = 8; - -PerMessageDeflate.extensionName = 'permessage-deflate'; - -/** - * Per-message Compression Extensions implementation - */ - -function PerMessageDeflate(options, isServer,maxPayload) { - if (this instanceof PerMessageDeflate === false) { - throw new TypeError("Classes can't be function-called"); - } - - this._options = options || {}; - this._isServer = !!isServer; - this._inflate = null; - this._deflate = null; - this.params = null; - this._maxPayload = maxPayload || 0; -} - -/** - * Create extension parameters offer - * - * @api public - */ - -PerMessageDeflate.prototype.offer = function() { - var params = {}; - if (this._options.serverNoContextTakeover) { - params.server_no_context_takeover = true; - } - if (this._options.clientNoContextTakeover) { - params.client_no_context_takeover = true; - } - if (this._options.serverMaxWindowBits) { - params.server_max_window_bits = this._options.serverMaxWindowBits; - } - if (this._options.clientMaxWindowBits) { - params.client_max_window_bits = this._options.clientMaxWindowBits; - } else if (this._options.clientMaxWindowBits == null) { - params.client_max_window_bits = true; - } - return params; -}; - -/** - * Accept extension offer - * - * @api public - */ - -PerMessageDeflate.prototype.accept = function(paramsList) { - paramsList = this.normalizeParams(paramsList); - - var params; - if (this._isServer) { - params = this.acceptAsServer(paramsList); - } else { - params = this.acceptAsClient(paramsList); - } - - this.params = params; - return params; -}; - -/** - * Releases all resources used by the extension - * - * @api public - */ - -PerMessageDeflate.prototype.cleanup = function() { - if (this._inflate) { - if (this._inflate.writeInProgress) { - this._inflate.pendingClose = true; - } else { - if (this._inflate.close) this._inflate.close(); - this._inflate = null; - } - } - if (this._deflate) { - if (this._deflate.writeInProgress) { - this._deflate.pendingClose = true; - } else { - if (this._deflate.close) this._deflate.close(); - this._deflate = null; - } - } -}; - -/** - * Accept extension offer from client - * - * @api private - */ - -PerMessageDeflate.prototype.acceptAsServer = function(paramsList) { - var accepted = {}; - var result = paramsList.some(function(params) { - accepted = {}; - if (this._options.serverNoContextTakeover === false && params.server_no_context_takeover) { - return; - } - if (this._options.serverMaxWindowBits === false && params.server_max_window_bits) { - return; - } - if (typeof this._options.serverMaxWindowBits === 'number' && - typeof params.server_max_window_bits === 'number' && - this._options.serverMaxWindowBits > params.server_max_window_bits) { - return; - } - if (typeof this._options.clientMaxWindowBits === 'number' && !params.client_max_window_bits) { - return; - } - - if (this._options.serverNoContextTakeover || params.server_no_context_takeover) { - accepted.server_no_context_takeover = true; - } - if (this._options.clientNoContextTakeover) { - accepted.client_no_context_takeover = true; - } - if (this._options.clientNoContextTakeover !== false && params.client_no_context_takeover) { - accepted.client_no_context_takeover = true; - } - if (typeof this._options.serverMaxWindowBits === 'number') { - accepted.server_max_window_bits = this._options.serverMaxWindowBits; - } else if (typeof params.server_max_window_bits === 'number') { - accepted.server_max_window_bits = params.server_max_window_bits; - } - if (typeof this._options.clientMaxWindowBits === 'number') { - accepted.client_max_window_bits = this._options.clientMaxWindowBits; - } else if (this._options.clientMaxWindowBits !== false && typeof params.client_max_window_bits === 'number') { - accepted.client_max_window_bits = params.client_max_window_bits; - } - return true; - }, this); - - if (!result) { - throw new Error('Doesn\'t support the offered configuration'); - } - - return accepted; -}; - -/** - * Accept extension response from server - * - * @api privaye - */ - -PerMessageDeflate.prototype.acceptAsClient = function(paramsList) { - var params = paramsList[0]; - if (this._options.clientNoContextTakeover != null) { - if (this._options.clientNoContextTakeover === false && params.client_no_context_takeover) { - throw new Error('Invalid value for "client_no_context_takeover"'); - } - } - if (this._options.clientMaxWindowBits != null) { - if (this._options.clientMaxWindowBits === false && params.client_max_window_bits) { - throw new Error('Invalid value for "client_max_window_bits"'); - } - if (typeof this._options.clientMaxWindowBits === 'number' && - (!params.client_max_window_bits || params.client_max_window_bits > this._options.clientMaxWindowBits)) { - throw new Error('Invalid value for "client_max_window_bits"'); - } - } - return params; -}; - -/** - * Normalize extensions parameters - * - * @api private - */ - -PerMessageDeflate.prototype.normalizeParams = function(paramsList) { - return paramsList.map(function(params) { - Object.keys(params).forEach(function(key) { - var value = params[key]; - if (value.length > 1) { - throw new Error('Multiple extension parameters for ' + key); - } - - value = value[0]; - - switch (key) { - case 'server_no_context_takeover': - case 'client_no_context_takeover': - if (value !== true) { - throw new Error('invalid extension parameter value for ' + key + ' (' + value + ')'); - } - params[key] = true; - break; - case 'server_max_window_bits': - case 'client_max_window_bits': - if (typeof value === 'string') { - value = parseInt(value, 10); - if (!~AVAILABLE_WINDOW_BITS.indexOf(value)) { - throw new Error('invalid extension parameter value for ' + key + ' (' + value + ')'); - } - } - if (!this._isServer && value === true) { - throw new Error('Missing extension parameter value for ' + key); - } - params[key] = value; - break; - default: - throw new Error('Not defined extension parameter (' + key + ')'); - } - }, this); - return params; - }, this); -}; - -/** - * Decompress message - * - * @api public - */ - -PerMessageDeflate.prototype.decompress = function (data, fin, callback) { - var endpoint = this._isServer ? 'client' : 'server'; - - if (!this._inflate) { - var maxWindowBits = this.params[endpoint + '_max_window_bits']; - this._inflate = zlib.createInflateRaw({ - windowBits: 'number' === typeof maxWindowBits ? maxWindowBits : DEFAULT_WINDOW_BITS - }); - } - this._inflate.writeInProgress = true; - - var self = this; - var buffers = []; - var cumulativeBufferLength=0; - - this._inflate.on('error', onError).on('data', onData); - this._inflate.write(data); - if (fin) { - this._inflate.write(new Buffer([0x00, 0x00, 0xff, 0xff])); - } - this._inflate.flush(function() { - cleanup(); - callback(null, Buffer.concat(buffers)); - }); - - function onError(err) { - cleanup(); - callback(err); - } - - function onData(data) { - if(self._maxPayload!==undefined && self._maxPayload!==null && self._maxPayload>0){ - cumulativeBufferLength+=data.length; - if(cumulativeBufferLength>self._maxPayload){ - buffers=[]; - cleanup(); - var err={type:1009}; - callback(err); - return; - } - } - buffers.push(data); - } - - function cleanup() { - if (!self._inflate) return; - self._inflate.removeListener('error', onError); - self._inflate.removeListener('data', onData); - self._inflate.writeInProgress = false; - if ((fin && self.params[endpoint + '_no_context_takeover']) || self._inflate.pendingClose) { - if (self._inflate.close) self._inflate.close(); - self._inflate = null; - } - } -}; - -/** - * Compress message - * - * @api public - */ - -PerMessageDeflate.prototype.compress = function (data, fin, callback) { - var endpoint = this._isServer ? 'server' : 'client'; - - if (!this._deflate) { - var maxWindowBits = this.params[endpoint + '_max_window_bits']; - this._deflate = zlib.createDeflateRaw({ - flush: zlib.Z_SYNC_FLUSH, - windowBits: 'number' === typeof maxWindowBits ? maxWindowBits : DEFAULT_WINDOW_BITS, - memLevel: this._options.memLevel || DEFAULT_MEM_LEVEL - }); - } - this._deflate.writeInProgress = true; - - var self = this; - var buffers = []; - - this._deflate.on('error', onError).on('data', onData); - this._deflate.write(data); - this._deflate.flush(function() { - cleanup(); - var data = Buffer.concat(buffers); - if (fin) { - data = data.slice(0, data.length - 4); - } - callback(null, data); - }); - - function onError(err) { - cleanup(); - callback(err); - } - - function onData(data) { - buffers.push(data); - } - - function cleanup() { - if (!self._deflate) return; - self._deflate.removeListener('error', onError); - self._deflate.removeListener('data', onData); - self._deflate.writeInProgress = false; - if ((fin && self.params[endpoint + '_no_context_takeover']) || self._deflate.pendingClose) { - if (self._deflate.close) self._deflate.close(); - self._deflate = null; - } - } -}; - -module.exports = PerMessageDeflate; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Receiver.hixie.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Receiver.hixie.js deleted file mode 100644 index 598ccbda..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Receiver.hixie.js +++ /dev/null @@ -1,194 +0,0 @@ -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -var util = require('util'); - -/** - * State constants - */ - -var EMPTY = 0 - , BODY = 1; -var BINARYLENGTH = 2 - , BINARYBODY = 3; - -/** - * Hixie Receiver implementation - */ - -function Receiver () { - if (this instanceof Receiver === false) { - throw new TypeError("Classes can't be function-called"); - } - - this.state = EMPTY; - this.buffers = []; - this.messageEnd = -1; - this.spanLength = 0; - this.dead = false; - - this.onerror = function() {}; - this.ontext = function() {}; - this.onbinary = function() {}; - this.onclose = function() {}; - this.onping = function() {}; - this.onpong = function() {}; -} - -module.exports = Receiver; - -/** - * Add new data to the parser. - * - * @api public - */ - -Receiver.prototype.add = function(data) { - if (this.dead) return; - var self = this; - function doAdd() { - if (self.state === EMPTY) { - if (data.length == 2 && data[0] == 0xFF && data[1] == 0x00) { - self.reset(); - self.onclose(); - return; - } - if (data[0] === 0x80) { - self.messageEnd = 0; - self.state = BINARYLENGTH; - data = data.slice(1); - } else { - - if (data[0] !== 0x00) { - self.error('payload must start with 0x00 byte', true); - return; - } - data = data.slice(1); - self.state = BODY; - - } - } - if (self.state === BINARYLENGTH) { - var i = 0; - while ((i < data.length) && (data[i] & 0x80)) { - self.messageEnd = 128 * self.messageEnd + (data[i] & 0x7f); - ++i; - } - if (i < data.length) { - self.messageEnd = 128 * self.messageEnd + (data[i] & 0x7f); - self.state = BINARYBODY; - ++i; - } - if (i > 0) - data = data.slice(i); - } - if (self.state === BINARYBODY) { - var dataleft = self.messageEnd - self.spanLength; - if (data.length >= dataleft) { - // consume the whole buffer to finish the frame - self.buffers.push(data); - self.spanLength += dataleft; - self.messageEnd = dataleft; - return self.parse(); - } - // frame's not done even if we consume it all - self.buffers.push(data); - self.spanLength += data.length; - return; - } - self.buffers.push(data); - if ((self.messageEnd = bufferIndex(data, 0xFF)) != -1) { - self.spanLength += self.messageEnd; - return self.parse(); - } - else self.spanLength += data.length; - } - while(data) data = doAdd(); -}; - -/** - * Releases all resources used by the receiver. - * - * @api public - */ - -Receiver.prototype.cleanup = function() { - this.dead = true; - this.state = EMPTY; - this.buffers = []; -}; - -/** - * Process buffered data. - * - * @api public - */ - -Receiver.prototype.parse = function() { - var output = new Buffer(this.spanLength); - var outputIndex = 0; - for (var bi = 0, bl = this.buffers.length; bi < bl - 1; ++bi) { - var buffer = this.buffers[bi]; - buffer.copy(output, outputIndex); - outputIndex += buffer.length; - } - var lastBuffer = this.buffers[this.buffers.length - 1]; - if (this.messageEnd > 0) lastBuffer.copy(output, outputIndex, 0, this.messageEnd); - if (this.state !== BODY) --this.messageEnd; - var tail = null; - if (this.messageEnd < lastBuffer.length - 1) { - tail = lastBuffer.slice(this.messageEnd + 1); - } - this.reset(); - this.ontext(output.toString('utf8')); - return tail; -}; - -/** - * Handles an error - * - * @api private - */ - -Receiver.prototype.error = function (reason, terminate) { - if (this.dead) return; - this.reset(); - if(typeof reason == 'string'){ - this.onerror(new Error(reason), terminate); - } - else if(reason.constructor == Error){ - this.onerror(reason, terminate); - } - else{ - this.onerror(new Error("An error occured"),terminate); - } - return this; -}; - -/** - * Reset parser state - * - * @api private - */ - -Receiver.prototype.reset = function (reason) { - if (this.dead) return; - this.state = EMPTY; - this.buffers = []; - this.messageEnd = -1; - this.spanLength = 0; -}; - -/** - * Internal api - */ - -function bufferIndex(buffer, byte) { - for (var i = 0, l = buffer.length; i < l; ++i) { - if (buffer[i] === byte) return i; - } - return -1; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Receiver.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Receiver.js deleted file mode 100644 index 0bf29d80..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Receiver.js +++ /dev/null @@ -1,793 +0,0 @@ -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -var util = require('util') - , Validation = require('./Validation').Validation - , ErrorCodes = require('./ErrorCodes') - , BufferPool = require('./BufferPool') - , bufferUtil = require('./BufferUtil').BufferUtil - , PerMessageDeflate = require('./PerMessageDeflate'); - -/** - * HyBi Receiver implementation - */ - -function Receiver (extensions,maxPayload) { - if (this instanceof Receiver === false) { - throw new TypeError("Classes can't be function-called"); - } - if(typeof extensions==='number'){ - maxPayload=extensions; - extensions={}; - } - - - // memory pool for fragmented messages - var fragmentedPoolPrevUsed = -1; - this.fragmentedBufferPool = new BufferPool(1024, function(db, length) { - return db.used + length; - }, function(db) { - return fragmentedPoolPrevUsed = fragmentedPoolPrevUsed >= 0 ? - Math.ceil((fragmentedPoolPrevUsed + db.used) / 2) : - db.used; - }); - - // memory pool for unfragmented messages - var unfragmentedPoolPrevUsed = -1; - this.unfragmentedBufferPool = new BufferPool(1024, function(db, length) { - return db.used + length; - }, function(db) { - return unfragmentedPoolPrevUsed = unfragmentedPoolPrevUsed >= 0 ? - Math.ceil((unfragmentedPoolPrevUsed + db.used) / 2) : - db.used; - }); - this.extensions = extensions || {}; - this.maxPayload = maxPayload || 0; - this.currentPayloadLength = 0; - this.state = { - activeFragmentedOperation: null, - lastFragment: false, - masked: false, - opcode: 0, - fragmentedOperation: false - }; - this.overflow = []; - this.headerBuffer = new Buffer(10); - this.expectOffset = 0; - this.expectBuffer = null; - this.expectHandler = null; - this.currentMessage = []; - this.currentMessageLength = 0; - this.messageHandlers = []; - this.expectHeader(2, this.processPacket); - this.dead = false; - this.processing = false; - - this.onerror = function() {}; - this.ontext = function() {}; - this.onbinary = function() {}; - this.onclose = function() {}; - this.onping = function() {}; - this.onpong = function() {}; -} - -module.exports = Receiver; - -/** - * Add new data to the parser. - * - * @api public - */ - -Receiver.prototype.add = function(data) { - if (this.dead) return; - var dataLength = data.length; - if (dataLength == 0) return; - if (this.expectBuffer == null) { - this.overflow.push(data); - return; - } - var toRead = Math.min(dataLength, this.expectBuffer.length - this.expectOffset); - fastCopy(toRead, data, this.expectBuffer, this.expectOffset); - this.expectOffset += toRead; - if (toRead < dataLength) { - this.overflow.push(data.slice(toRead)); - } - while (this.expectBuffer && this.expectOffset == this.expectBuffer.length) { - var bufferForHandler = this.expectBuffer; - this.expectBuffer = null; - this.expectOffset = 0; - this.expectHandler.call(this, bufferForHandler); - } -}; - -/** - * Releases all resources used by the receiver. - * - * @api public - */ - -Receiver.prototype.cleanup = function() { - this.dead = true; - this.overflow = null; - this.headerBuffer = null; - this.expectBuffer = null; - this.expectHandler = null; - this.unfragmentedBufferPool = null; - this.fragmentedBufferPool = null; - this.state = null; - this.currentMessage = null; - this.onerror = null; - this.ontext = null; - this.onbinary = null; - this.onclose = null; - this.onping = null; - this.onpong = null; -}; - -/** - * Waits for a certain amount of header bytes to be available, then fires a callback. - * - * @api private - */ - -Receiver.prototype.expectHeader = function(length, handler) { - if (length == 0) { - handler(null); - return; - } - this.expectBuffer = this.headerBuffer.slice(this.expectOffset, this.expectOffset + length); - this.expectHandler = handler; - var toRead = length; - while (toRead > 0 && this.overflow.length > 0) { - var fromOverflow = this.overflow.pop(); - if (toRead < fromOverflow.length) this.overflow.push(fromOverflow.slice(toRead)); - var read = Math.min(fromOverflow.length, toRead); - fastCopy(read, fromOverflow, this.expectBuffer, this.expectOffset); - this.expectOffset += read; - toRead -= read; - } -}; - -/** - * Waits for a certain amount of data bytes to be available, then fires a callback. - * - * @api private - */ - -Receiver.prototype.expectData = function(length, handler) { - if (length == 0) { - handler(null); - return; - } - this.expectBuffer = this.allocateFromPool(length, this.state.fragmentedOperation); - this.expectHandler = handler; - var toRead = length; - while (toRead > 0 && this.overflow.length > 0) { - var fromOverflow = this.overflow.pop(); - if (toRead < fromOverflow.length) this.overflow.push(fromOverflow.slice(toRead)); - var read = Math.min(fromOverflow.length, toRead); - fastCopy(read, fromOverflow, this.expectBuffer, this.expectOffset); - this.expectOffset += read; - toRead -= read; - } -}; - -/** - * Allocates memory from the buffer pool. - * - * @api private - */ - -Receiver.prototype.allocateFromPool = function(length, isFragmented) { - return (isFragmented ? this.fragmentedBufferPool : this.unfragmentedBufferPool).get(length); -}; - -/** - * Start processing a new packet. - * - * @api private - */ - -Receiver.prototype.processPacket = function (data) { - if (this.extensions[PerMessageDeflate.extensionName]) { - if ((data[0] & 0x30) != 0) { - this.error('reserved fields (2, 3) must be empty', 1002); - return; - } - } else { - if ((data[0] & 0x70) != 0) { - this.error('reserved fields must be empty', 1002); - return; - } - } - this.state.lastFragment = (data[0] & 0x80) == 0x80; - this.state.masked = (data[1] & 0x80) == 0x80; - var compressed = (data[0] & 0x40) == 0x40; - var opcode = data[0] & 0xf; - if (opcode === 0) { - if (compressed) { - this.error('continuation frame cannot have the Per-message Compressed bits', 1002); - return; - } - // continuation frame - this.state.fragmentedOperation = true; - this.state.opcode = this.state.activeFragmentedOperation; - if (!(this.state.opcode == 1 || this.state.opcode == 2)) { - this.error('continuation frame cannot follow current opcode', 1002); - return; - } - } - else { - if (opcode < 3 && this.state.activeFragmentedOperation != null) { - this.error('data frames after the initial data frame must have opcode 0', 1002); - return; - } - if (opcode >= 8 && compressed) { - this.error('control frames cannot have the Per-message Compressed bits', 1002); - return; - } - this.state.compressed = compressed; - this.state.opcode = opcode; - if (this.state.lastFragment === false) { - this.state.fragmentedOperation = true; - this.state.activeFragmentedOperation = opcode; - } - else this.state.fragmentedOperation = false; - } - var handler = opcodes[this.state.opcode]; - if (typeof handler == 'undefined') this.error('no handler for opcode ' + this.state.opcode, 1002); - else { - handler.start.call(this, data); - } -}; - -/** - * Endprocessing a packet. - * - * @api private - */ - -Receiver.prototype.endPacket = function() { - if (this.dead) return; - if (!this.state.fragmentedOperation) this.unfragmentedBufferPool.reset(true); - else if (this.state.lastFragment) this.fragmentedBufferPool.reset(true); - this.expectOffset = 0; - this.expectBuffer = null; - this.expectHandler = null; - if (this.state.lastFragment && this.state.opcode === this.state.activeFragmentedOperation) { - // end current fragmented operation - this.state.activeFragmentedOperation = null; - } - this.currentPayloadLength = 0; - this.state.lastFragment = false; - this.state.opcode = this.state.activeFragmentedOperation != null ? this.state.activeFragmentedOperation : 0; - this.state.masked = false; - this.expectHeader(2, this.processPacket); -}; - -/** - * Reset the parser state. - * - * @api private - */ - -Receiver.prototype.reset = function() { - if (this.dead) return; - this.state = { - activeFragmentedOperation: null, - lastFragment: false, - masked: false, - opcode: 0, - fragmentedOperation: false - }; - this.fragmentedBufferPool.reset(true); - this.unfragmentedBufferPool.reset(true); - this.expectOffset = 0; - this.expectBuffer = null; - this.expectHandler = null; - this.overflow = []; - this.currentMessage = []; - this.currentMessageLength = 0; - this.messageHandlers = []; - this.currentPayloadLength = 0; -}; - -/** - * Unmask received data. - * - * @api private - */ - -Receiver.prototype.unmask = function (mask, buf, binary) { - if (mask != null && buf != null) bufferUtil.unmask(buf, mask); - if (binary) return buf; - return buf != null ? buf.toString('utf8') : ''; -}; - -/** - * Handles an error - * - * @api private - */ - -Receiver.prototype.error = function (reason, protocolErrorCode) { - if (this.dead) return; - this.reset(); - if(typeof reason == 'string'){ - this.onerror(new Error(reason), protocolErrorCode); - } - else if(reason.constructor == Error){ - this.onerror(reason, protocolErrorCode); - } - else{ - this.onerror(new Error("An error occured"),protocolErrorCode); - } - return this; -}; - -/** - * Execute message handler buffers - * - * @api private - */ - -Receiver.prototype.flush = function() { - if (this.processing || this.dead) return; - - var handler = this.messageHandlers.shift(); - if (!handler) return; - - this.processing = true; - var self = this; - - handler(function() { - self.processing = false; - self.flush(); - }); -}; - -/** - * Apply extensions to message - * - * @api private - */ - -Receiver.prototype.applyExtensions = function(messageBuffer, fin, compressed, callback) { - var self = this; - if (compressed) { - this.extensions[PerMessageDeflate.extensionName].decompress(messageBuffer, fin, function(err, buffer) { - if (self.dead) return; - if (err) { - callback(new Error('invalid compressed data')); - return; - } - callback(null, buffer); - }); - } else { - callback(null, messageBuffer); - } -}; - -/** -* Checks payload size, disconnects socket when it exceeds maxPayload -* -* @api private -*/ -Receiver.prototype.maxPayloadExceeded = function(length) { - if (this.maxPayload=== undefined || this.maxPayload === null || this.maxPayload < 1) { - return false; - } - var fullLength = this.currentPayloadLength + length; - if (fullLength < this.maxPayload) { - this.currentPayloadLength = fullLength; - return false; - } - this.error('payload cannot exceed ' + this.maxPayload + ' bytes', 1009); - this.messageBuffer=[]; - this.cleanup(); - - return true; -}; - -/** - * Buffer utilities - */ - -function readUInt16BE(start) { - return (this[start]<<8) + - this[start+1]; -} - -function readUInt32BE(start) { - return (this[start]<<24) + - (this[start+1]<<16) + - (this[start+2]<<8) + - this[start+3]; -} - -function fastCopy(length, srcBuffer, dstBuffer, dstOffset) { - switch (length) { - default: srcBuffer.copy(dstBuffer, dstOffset, 0, length); break; - case 16: dstBuffer[dstOffset+15] = srcBuffer[15]; - case 15: dstBuffer[dstOffset+14] = srcBuffer[14]; - case 14: dstBuffer[dstOffset+13] = srcBuffer[13]; - case 13: dstBuffer[dstOffset+12] = srcBuffer[12]; - case 12: dstBuffer[dstOffset+11] = srcBuffer[11]; - case 11: dstBuffer[dstOffset+10] = srcBuffer[10]; - case 10: dstBuffer[dstOffset+9] = srcBuffer[9]; - case 9: dstBuffer[dstOffset+8] = srcBuffer[8]; - case 8: dstBuffer[dstOffset+7] = srcBuffer[7]; - case 7: dstBuffer[dstOffset+6] = srcBuffer[6]; - case 6: dstBuffer[dstOffset+5] = srcBuffer[5]; - case 5: dstBuffer[dstOffset+4] = srcBuffer[4]; - case 4: dstBuffer[dstOffset+3] = srcBuffer[3]; - case 3: dstBuffer[dstOffset+2] = srcBuffer[2]; - case 2: dstBuffer[dstOffset+1] = srcBuffer[1]; - case 1: dstBuffer[dstOffset] = srcBuffer[0]; - } -} - -function clone(obj) { - var cloned = {}; - for (var k in obj) { - if (obj.hasOwnProperty(k)) { - cloned[k] = obj[k]; - } - } - return cloned; -} - -/** - * Opcode handlers - */ - -var opcodes = { - // text - '1': { - start: function(data) { - var self = this; - // decode length - var firstLength = data[1] & 0x7f; - if (firstLength < 126) { - if (self.maxPayloadExceeded(firstLength)){ - self.error('Maximumpayload exceeded in compressed text message. Aborting...', 1009); - return; - } - opcodes['1'].getData.call(self, firstLength); - } - else if (firstLength == 126) { - self.expectHeader(2, function(data) { - var length = readUInt16BE.call(data, 0); - if (self.maxPayloadExceeded(length)){ - self.error('Maximumpayload exceeded in compressed text message. Aborting...', 1009); - return; - } - opcodes['1'].getData.call(self, length); - }); - } - else if (firstLength == 127) { - self.expectHeader(8, function(data) { - if (readUInt32BE.call(data, 0) != 0) { - self.error('packets with length spanning more than 32 bit is currently not supported', 1008); - return; - } - var length = readUInt32BE.call(data, 4); - if (self.maxPayloadExceeded(length)){ - self.error('Maximumpayload exceeded in compressed text message. Aborting...', 1009); - return; - } - opcodes['1'].getData.call(self, readUInt32BE.call(data, 4)); - }); - } - }, - getData: function(length) { - var self = this; - if (self.state.masked) { - self.expectHeader(4, function(data) { - var mask = data; - self.expectData(length, function(data) { - opcodes['1'].finish.call(self, mask, data); - }); - }); - } - else { - self.expectData(length, function(data) { - opcodes['1'].finish.call(self, null, data); - }); - } - }, - finish: function(mask, data) { - var self = this; - var packet = this.unmask(mask, data, true) || new Buffer(0); - var state = clone(this.state); - this.messageHandlers.push(function(callback) { - self.applyExtensions(packet, state.lastFragment, state.compressed, function(err, buffer) { - if (err) { - if(err.type===1009){ - return self.error('Maximumpayload exceeded in compressed text message. Aborting...', 1009); - } - return self.error(err.message, 1007); - } - if (buffer != null) { - if( self.maxPayload==0 || (self.maxPayload > 0 && (self.currentMessageLength + buffer.length) < self.maxPayload) ){ - self.currentMessage.push(buffer); - } - else{ - self.currentMessage=null; - self.currentMessage = []; - self.currentMessageLength = 0; - self.error(new Error('Maximum payload exceeded. maxPayload: '+self.maxPayload), 1009); - return; - } - self.currentMessageLength += buffer.length; - } - if (state.lastFragment) { - var messageBuffer = Buffer.concat(self.currentMessage); - self.currentMessage = []; - self.currentMessageLength = 0; - if (!Validation.isValidUTF8(messageBuffer)) { - self.error('invalid utf8 sequence', 1007); - return; - } - self.ontext(messageBuffer.toString('utf8'), {masked: state.masked, buffer: messageBuffer}); - } - callback(); - }); - }); - this.flush(); - this.endPacket(); - } - }, - // binary - '2': { - start: function(data) { - var self = this; - // decode length - var firstLength = data[1] & 0x7f; - if (firstLength < 126) { - if (self.maxPayloadExceeded(firstLength)){ - self.error('Max payload exceeded in compressed text message. Aborting...', 1009); - return; - } - opcodes['2'].getData.call(self, firstLength); - } - else if (firstLength == 126) { - self.expectHeader(2, function(data) { - var length = readUInt16BE.call(data, 0); - if (self.maxPayloadExceeded(length)){ - self.error('Max payload exceeded in compressed text message. Aborting...', 1009); - return; - } - opcodes['2'].getData.call(self, length); - }); - } - else if (firstLength == 127) { - self.expectHeader(8, function(data) { - if (readUInt32BE.call(data, 0) != 0) { - self.error('packets with length spanning more than 32 bit is currently not supported', 1008); - return; - } - var length = readUInt32BE.call(data, 4, true); - if (self.maxPayloadExceeded(length)){ - self.error('Max payload exceeded in compressed text message. Aborting...', 1009); - return; - } - opcodes['2'].getData.call(self, length); - }); - } - }, - getData: function(length) { - var self = this; - if (self.state.masked) { - self.expectHeader(4, function(data) { - var mask = data; - self.expectData(length, function(data) { - opcodes['2'].finish.call(self, mask, data); - }); - }); - } - else { - self.expectData(length, function(data) { - opcodes['2'].finish.call(self, null, data); - }); - } - }, - finish: function(mask, data) { - var self = this; - var packet = this.unmask(mask, data, true) || new Buffer(0); - var state = clone(this.state); - this.messageHandlers.push(function(callback) { - self.applyExtensions(packet, state.lastFragment, state.compressed, function(err, buffer) { - if (err) { - if(err.type===1009){ - return self.error('Max payload exceeded in compressed binary message. Aborting...', 1009); - } - return self.error(err.message, 1007); - } - if (buffer != null) { - if( self.maxPayload==0 || (self.maxPayload > 0 && (self.currentMessageLength + buffer.length) < self.maxPayload) ){ - self.currentMessage.push(buffer); - } - else{ - self.currentMessage=null; - self.currentMessage = []; - self.currentMessageLength = 0; - self.error(new Error('Maximum payload exceeded'), 1009); - return; - } - self.currentMessageLength += buffer.length; - } - if (state.lastFragment) { - var messageBuffer = Buffer.concat(self.currentMessage); - self.currentMessage = []; - self.currentMessageLength = 0; - self.onbinary(messageBuffer, {masked: state.masked, buffer: messageBuffer}); - } - callback(); - }); - }); - this.flush(); - this.endPacket(); - } - }, - // close - '8': { - start: function(data) { - var self = this; - if (self.state.lastFragment == false) { - self.error('fragmented close is not supported', 1002); - return; - } - - // decode length - var firstLength = data[1] & 0x7f; - if (firstLength < 126) { - opcodes['8'].getData.call(self, firstLength); - } - else { - self.error('control frames cannot have more than 125 bytes of data', 1002); - } - }, - getData: function(length) { - var self = this; - if (self.state.masked) { - self.expectHeader(4, function(data) { - var mask = data; - self.expectData(length, function(data) { - opcodes['8'].finish.call(self, mask, data); - }); - }); - } - else { - self.expectData(length, function(data) { - opcodes['8'].finish.call(self, null, data); - }); - } - }, - finish: function(mask, data) { - var self = this; - data = self.unmask(mask, data, true); - - var state = clone(this.state); - this.messageHandlers.push(function() { - if (data && data.length == 1) { - self.error('close packets with data must be at least two bytes long', 1002); - return; - } - var code = data && data.length > 1 ? readUInt16BE.call(data, 0) : 1000; - if (!ErrorCodes.isValidErrorCode(code)) { - self.error('invalid error code', 1002); - return; - } - var message = ''; - if (data && data.length > 2) { - var messageBuffer = data.slice(2); - if (!Validation.isValidUTF8(messageBuffer)) { - self.error('invalid utf8 sequence', 1007); - return; - } - message = messageBuffer.toString('utf8'); - } - self.onclose(code, message, {masked: state.masked}); - self.reset(); - }); - this.flush(); - }, - }, - // ping - '9': { - start: function(data) { - var self = this; - if (self.state.lastFragment == false) { - self.error('fragmented ping is not supported', 1002); - return; - } - - // decode length - var firstLength = data[1] & 0x7f; - if (firstLength < 126) { - opcodes['9'].getData.call(self, firstLength); - } - else { - self.error('control frames cannot have more than 125 bytes of data', 1002); - } - }, - getData: function(length) { - var self = this; - if (self.state.masked) { - self.expectHeader(4, function(data) { - var mask = data; - self.expectData(length, function(data) { - opcodes['9'].finish.call(self, mask, data); - }); - }); - } - else { - self.expectData(length, function(data) { - opcodes['9'].finish.call(self, null, data); - }); - } - }, - finish: function(mask, data) { - var self = this; - data = this.unmask(mask, data, true); - var state = clone(this.state); - this.messageHandlers.push(function(callback) { - self.onping(data, {masked: state.masked, binary: true}); - callback(); - }); - this.flush(); - this.endPacket(); - } - }, - // pong - '10': { - start: function(data) { - var self = this; - if (self.state.lastFragment == false) { - self.error('fragmented pong is not supported', 1002); - return; - } - - // decode length - var firstLength = data[1] & 0x7f; - if (firstLength < 126) { - opcodes['10'].getData.call(self, firstLength); - } - else { - self.error('control frames cannot have more than 125 bytes of data', 1002); - } - }, - getData: function(length) { - var self = this; - if (this.state.masked) { - this.expectHeader(4, function(data) { - var mask = data; - self.expectData(length, function(data) { - opcodes['10'].finish.call(self, mask, data); - }); - }); - } - else { - this.expectData(length, function(data) { - opcodes['10'].finish.call(self, null, data); - }); - } - }, - finish: function(mask, data) { - var self = this; - data = self.unmask(mask, data, true); - var state = clone(this.state); - this.messageHandlers.push(function(callback) { - self.onpong(data, {masked: state.masked, binary: true}); - callback(); - }); - this.flush(); - this.endPacket(); - } - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Sender.hixie.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Sender.hixie.js deleted file mode 100644 index b87d9dd9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Sender.hixie.js +++ /dev/null @@ -1,124 +0,0 @@ -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -var events = require('events') - , util = require('util') - , EventEmitter = events.EventEmitter; - -/** - * Hixie Sender implementation - */ - -function Sender(socket) { - if (this instanceof Sender === false) { - throw new TypeError("Classes can't be function-called"); - } - - events.EventEmitter.call(this); - - this.socket = socket; - this.continuationFrame = false; - this.isClosed = false; -} - -module.exports = Sender; - -/** - * Inherits from EventEmitter. - */ - -util.inherits(Sender, events.EventEmitter); - -/** - * Frames and writes data. - * - * @api public - */ - -Sender.prototype.send = function(data, options, cb) { - if (this.isClosed) return; - - var isString = typeof data == 'string' - , length = isString ? Buffer.byteLength(data) : data.length - , lengthbytes = (length > 127) ? 2 : 1 // assume less than 2**14 bytes - , writeStartMarker = this.continuationFrame == false - , writeEndMarker = !options || !(typeof options.fin != 'undefined' && !options.fin) - , buffer = new Buffer((writeStartMarker ? ((options && options.binary) ? (1 + lengthbytes) : 1) : 0) + length + ((writeEndMarker && !(options && options.binary)) ? 1 : 0)) - , offset = writeStartMarker ? 1 : 0; - - if (writeStartMarker) { - if (options && options.binary) { - buffer.write('\x80', 'binary'); - // assume length less than 2**14 bytes - if (lengthbytes > 1) - buffer.write(String.fromCharCode(128+length/128), offset++, 'binary'); - buffer.write(String.fromCharCode(length&0x7f), offset++, 'binary'); - } else - buffer.write('\x00', 'binary'); - } - - if (isString) buffer.write(data, offset, 'utf8'); - else data.copy(buffer, offset, 0); - - if (writeEndMarker) { - if (options && options.binary) { - // sending binary, not writing end marker - } else - buffer.write('\xff', offset + length, 'binary'); - this.continuationFrame = false; - } - else this.continuationFrame = true; - - try { - this.socket.write(buffer, 'binary', cb); - } catch (e) { - this.error(e.toString()); - } -}; - -/** - * Sends a close instruction to the remote party. - * - * @api public - */ - -Sender.prototype.close = function(code, data, mask, cb) { - if (this.isClosed) return; - this.isClosed = true; - try { - if (this.continuationFrame) this.socket.write(new Buffer([0xff], 'binary')); - this.socket.write(new Buffer([0xff, 0x00]), 'binary', cb); - } catch (e) { - this.error(e.toString()); - } -}; - -/** - * Sends a ping message to the remote party. Not available for hixie. - * - * @api public - */ - -Sender.prototype.ping = function(data, options) {}; - -/** - * Sends a pong message to the remote party. Not available for hixie. - * - * @api public - */ - -Sender.prototype.pong = function(data, options) {}; - -/** - * Handles an error - * - * @api private - */ - -Sender.prototype.error = function (reason) { - this.emit('error', reason); - return this; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Sender.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Sender.js deleted file mode 100644 index 6ef2ea27..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Sender.js +++ /dev/null @@ -1,324 +0,0 @@ -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -var events = require('events') - , util = require('util') - , EventEmitter = events.EventEmitter - , ErrorCodes = require('./ErrorCodes') - , bufferUtil = require('./BufferUtil').BufferUtil - , PerMessageDeflate = require('./PerMessageDeflate'); - -/** - * HyBi Sender implementation - */ - -function Sender(socket, extensions) { - if (this instanceof Sender === false) { - throw new TypeError("Classes can't be function-called"); - } - - events.EventEmitter.call(this); - - this._socket = socket; - this.extensions = extensions || {}; - this.firstFragment = true; - this.compress = false; - this.messageHandlers = []; - this.processing = false; -} - -/** - * Inherits from EventEmitter. - */ - -util.inherits(Sender, events.EventEmitter); - -/** - * Sends a close instruction to the remote party. - * - * @api public - */ - -Sender.prototype.close = function(code, data, mask, cb) { - if (typeof code !== 'undefined') { - if (typeof code !== 'number' || - !ErrorCodes.isValidErrorCode(code)) throw new Error('first argument must be a valid error code number'); - } - code = code || 1000; - var dataBuffer = new Buffer(2 + (data ? Buffer.byteLength(data) : 0)); - writeUInt16BE.call(dataBuffer, code, 0); - if (dataBuffer.length > 2) dataBuffer.write(data, 2); - - var self = this; - this.messageHandlers.push(function(callback) { - self.frameAndSend(0x8, dataBuffer, true, mask); - callback(); - if (typeof cb == 'function') cb(); - }); - this.flush(); -}; - -/** - * Sends a ping message to the remote party. - * - * @api public - */ - -Sender.prototype.ping = function(data, options) { - var mask = options && options.mask; - var self = this; - this.messageHandlers.push(function(callback) { - self.frameAndSend(0x9, data || '', true, mask); - callback(); - }); - this.flush(); -}; - -/** - * Sends a pong message to the remote party. - * - * @api public - */ - -Sender.prototype.pong = function(data, options) { - var mask = options && options.mask; - var self = this; - this.messageHandlers.push(function(callback) { - self.frameAndSend(0xa, data || '', true, mask); - callback(); - }); - this.flush(); -}; - -/** - * Sends text or binary data to the remote party. - * - * @api public - */ - -Sender.prototype.send = function(data, options, cb) { - var finalFragment = options && options.fin === false ? false : true; - var mask = options && options.mask; - var compress = options && options.compress; - var opcode = options && options.binary ? 2 : 1; - if (this.firstFragment === false) { - opcode = 0; - compress = false; - } else { - this.firstFragment = false; - this.compress = compress; - } - if (finalFragment) this.firstFragment = true - - var compressFragment = this.compress; - - var self = this; - this.messageHandlers.push(function(callback) { - self.applyExtensions(data, finalFragment, compressFragment, function(err, data) { - if (err) { - if (typeof cb == 'function') cb(err); - else self.emit('error', err); - return; - } - self.frameAndSend(opcode, data, finalFragment, mask, compress, cb); - callback(); - }); - }); - this.flush(); -}; - -/** - * Frames and sends a piece of data according to the HyBi WebSocket protocol. - * - * @api private - */ - -Sender.prototype.frameAndSend = function(opcode, data, finalFragment, maskData, compressed, cb) { - var canModifyData = false; - - if (!data) { - try { - this._socket.write(new Buffer([opcode | (finalFragment ? 0x80 : 0), 0 | (maskData ? 0x80 : 0)].concat(maskData ? [0, 0, 0, 0] : [])), 'binary', cb); - } - catch (e) { - if (typeof cb == 'function') cb(e); - else this.emit('error', e); - } - return; - } - - if (!Buffer.isBuffer(data)) { - canModifyData = true; - if (data && (typeof data.byteLength !== 'undefined' || typeof data.buffer !== 'undefined')) { - data = getArrayBuffer(data); - } else { - // - // If people want to send a number, this would allocate the number in - // bytes as memory size instead of storing the number as buffer value. So - // we need to transform it to string in order to prevent possible - // vulnerabilities / memory attacks. - // - if (typeof data === 'number') data = data.toString(); - - data = new Buffer(data); - } - } - - var dataLength = data.length - , dataOffset = maskData ? 6 : 2 - , secondByte = dataLength; - - if (dataLength >= 65536) { - dataOffset += 8; - secondByte = 127; - } - else if (dataLength > 125) { - dataOffset += 2; - secondByte = 126; - } - - var mergeBuffers = dataLength < 32768 || (maskData && !canModifyData); - var totalLength = mergeBuffers ? dataLength + dataOffset : dataOffset; - var outputBuffer = new Buffer(totalLength); - outputBuffer[0] = finalFragment ? opcode | 0x80 : opcode; - if (compressed) outputBuffer[0] |= 0x40; - - switch (secondByte) { - case 126: - writeUInt16BE.call(outputBuffer, dataLength, 2); - break; - case 127: - writeUInt32BE.call(outputBuffer, 0, 2); - writeUInt32BE.call(outputBuffer, dataLength, 6); - } - - if (maskData) { - outputBuffer[1] = secondByte | 0x80; - var mask = getRandomMask(); - outputBuffer[dataOffset - 4] = mask[0]; - outputBuffer[dataOffset - 3] = mask[1]; - outputBuffer[dataOffset - 2] = mask[2]; - outputBuffer[dataOffset - 1] = mask[3]; - if (mergeBuffers) { - bufferUtil.mask(data, mask, outputBuffer, dataOffset, dataLength); - try { - this._socket.write(outputBuffer, 'binary', cb); - } - catch (e) { - if (typeof cb == 'function') cb(e); - else this.emit('error', e); - } - } - else { - bufferUtil.mask(data, mask, data, 0, dataLength); - try { - this._socket.write(outputBuffer, 'binary'); - this._socket.write(data, 'binary', cb); - } - catch (e) { - if (typeof cb == 'function') cb(e); - else this.emit('error', e); - } - } - } - else { - outputBuffer[1] = secondByte; - if (mergeBuffers) { - data.copy(outputBuffer, dataOffset); - try { - this._socket.write(outputBuffer, 'binary', cb); - } - catch (e) { - if (typeof cb == 'function') cb(e); - else this.emit('error', e); - } - } - else { - try { - this._socket.write(outputBuffer, 'binary'); - this._socket.write(data, 'binary', cb); - } - catch (e) { - if (typeof cb == 'function') cb(e); - else this.emit('error', e); - } - } - } -}; - -/** - * Execute message handler buffers - * - * @api private - */ - -Sender.prototype.flush = function() { - if (this.processing) return; - - var handler = this.messageHandlers.shift(); - if (!handler) return; - - this.processing = true; - - var self = this; - - handler(function() { - self.processing = false; - self.flush(); - }); -}; - -/** - * Apply extensions to message - * - * @api private - */ - -Sender.prototype.applyExtensions = function(data, fin, compress, callback) { - if (compress && data) { - if ((data.buffer || data) instanceof ArrayBuffer) { - data = getArrayBuffer(data); - } - this.extensions[PerMessageDeflate.extensionName].compress(data, fin, callback); - } else { - callback(null, data); - } -}; - -module.exports = Sender; - -function writeUInt16BE(value, offset) { - this[offset] = (value & 0xff00)>>8; - this[offset+1] = value & 0xff; -} - -function writeUInt32BE(value, offset) { - this[offset] = (value & 0xff000000)>>24; - this[offset+1] = (value & 0xff0000)>>16; - this[offset+2] = (value & 0xff00)>>8; - this[offset+3] = value & 0xff; -} - -function getArrayBuffer(data) { - // data is either an ArrayBuffer or ArrayBufferView. - var array = new Uint8Array(data.buffer || data) - , l = data.byteLength || data.length - , o = data.byteOffset || 0 - , buffer = new Buffer(l); - for (var i = 0; i < l; ++i) { - buffer[i] = array[o+i]; - } - return buffer; -} - -function getRandomMask() { - return new Buffer([ - ~~(Math.random() * 255), - ~~(Math.random() * 255), - ~~(Math.random() * 255), - ~~(Math.random() * 255) - ]); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Validation.fallback.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Validation.fallback.js deleted file mode 100644 index 639b0d31..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Validation.fallback.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -exports.Validation = { - isValidUTF8: function(buffer) { - return true; - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Validation.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Validation.js deleted file mode 100644 index 0795fb7f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Validation.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -try { - module.exports = require('utf-8-validate'); -} catch (e) { - module.exports = require('./Validation.fallback'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/WebSocket.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/WebSocket.js deleted file mode 100644 index bb09e851..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/WebSocket.js +++ /dev/null @@ -1,987 +0,0 @@ -'use strict'; - -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -var url = require('url') - , util = require('util') - , http = require('http') - , https = require('https') - , crypto = require('crypto') - , stream = require('stream') - , Ultron = require('ultron') - , Options = require('options') - , Sender = require('./Sender') - , Receiver = require('./Receiver') - , SenderHixie = require('./Sender.hixie') - , ReceiverHixie = require('./Receiver.hixie') - , Extensions = require('./Extensions') - , PerMessageDeflate = require('./PerMessageDeflate') - , EventEmitter = require('events').EventEmitter; - -/** - * Constants - */ - -// Default protocol version - -var protocolVersion = 13; - -// Close timeout - -var closeTimeout = 30 * 1000; // Allow 30 seconds to terminate the connection cleanly - -/** - * WebSocket implementation - * - * @constructor - * @param {String} address Connection address. - * @param {String|Array} protocols WebSocket protocols. - * @param {Object} options Additional connection options. - * @api public - */ -function WebSocket(address, protocols, options) { - if (this instanceof WebSocket === false) { - return new WebSocket(address, protocols, options); - } - - EventEmitter.call(this); - - if (protocols && !Array.isArray(protocols) && 'object' === typeof protocols) { - // accept the "options" Object as the 2nd argument - options = protocols; - protocols = null; - } - - if ('string' === typeof protocols) { - protocols = [ protocols ]; - } - - if (!Array.isArray(protocols)) { - protocols = []; - } - - this._socket = null; - this._ultron = null; - this._closeReceived = false; - this.bytesReceived = 0; - this.readyState = null; - this.supports = {}; - this.extensions = {}; - this._binaryType = 'nodebuffer'; - - if (Array.isArray(address)) { - initAsServerClient.apply(this, address.concat(options)); - } else { - initAsClient.apply(this, [address, protocols, options]); - } -} - -/** - * Inherits from EventEmitter. - */ -util.inherits(WebSocket, EventEmitter); - -/** - * Ready States - */ -["CONNECTING", "OPEN", "CLOSING", "CLOSED"].forEach(function each(state, index) { - WebSocket.prototype[state] = WebSocket[state] = index; -}); - -/** - * Gracefully closes the connection, after sending a description message to the server - * - * @param {Object} data to be sent to the server - * @api public - */ -WebSocket.prototype.close = function close(code, data) { - if (this.readyState === WebSocket.CLOSED) return; - - if (this.readyState === WebSocket.CONNECTING) { - this.readyState = WebSocket.CLOSED; - return; - } - - if (this.readyState === WebSocket.CLOSING) { - if (this._closeReceived && this._isServer) { - this.terminate(); - } - return; - } - - var self = this; - try { - this.readyState = WebSocket.CLOSING; - this._closeCode = code; - this._closeMessage = data; - var mask = !this._isServer; - this._sender.close(code, data, mask, function(err) { - if (err) self.emit('error', err); - - if (self._closeReceived && self._isServer) { - self.terminate(); - } else { - // ensure that the connection is cleaned up even when no response of closing handshake. - clearTimeout(self._closeTimer); - self._closeTimer = setTimeout(cleanupWebsocketResources.bind(self, true), closeTimeout); - } - }); - } catch (e) { - this.emit('error', e); - } -}; - -/** - * Pause the client stream - * - * @api public - */ -WebSocket.prototype.pause = function pauser() { - if (this.readyState !== WebSocket.OPEN) throw new Error('not opened'); - - return this._socket.pause(); -}; - -/** - * Sends a ping - * - * @param {Object} data to be sent to the server - * @param {Object} Members - mask: boolean, binary: boolean - * @param {boolean} dontFailWhenClosed indicates whether or not to throw if the connection isnt open - * @api public - */ -WebSocket.prototype.ping = function ping(data, options, dontFailWhenClosed) { - if (this.readyState !== WebSocket.OPEN) { - if (dontFailWhenClosed === true) return; - throw new Error('not opened'); - } - - options = options || {}; - - if (typeof options.mask === 'undefined') options.mask = !this._isServer; - - this._sender.ping(data, options); -}; - -/** - * Sends a pong - * - * @param {Object} data to be sent to the server - * @param {Object} Members - mask: boolean, binary: boolean - * @param {boolean} dontFailWhenClosed indicates whether or not to throw if the connection isnt open - * @api public - */ -WebSocket.prototype.pong = function(data, options, dontFailWhenClosed) { - if (this.readyState !== WebSocket.OPEN) { - if (dontFailWhenClosed === true) return; - throw new Error('not opened'); - } - - options = options || {}; - - if (typeof options.mask === 'undefined') options.mask = !this._isServer; - - this._sender.pong(data, options); -}; - -/** - * Resume the client stream - * - * @api public - */ -WebSocket.prototype.resume = function resume() { - if (this.readyState !== WebSocket.OPEN) throw new Error('not opened'); - - return this._socket.resume(); -}; - -/** - * Sends a piece of data - * - * @param {Object} data to be sent to the server - * @param {Object} Members - mask: boolean, binary: boolean, compress: boolean - * @param {function} Optional callback which is executed after the send completes - * @api public - */ - -WebSocket.prototype.send = function send(data, options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - if (this.readyState !== WebSocket.OPEN) { - if (typeof cb === 'function') cb(new Error('not opened')); - else throw new Error('not opened'); - return; - } - - if (!data) data = ''; - if (this._queue) { - var self = this; - this._queue.push(function() { self.send(data, options, cb); }); - return; - } - - options = options || {}; - options.fin = true; - - if (typeof options.binary === 'undefined') { - options.binary = (data instanceof ArrayBuffer || data instanceof Buffer || - data instanceof Uint8Array || - data instanceof Uint16Array || - data instanceof Uint32Array || - data instanceof Int8Array || - data instanceof Int16Array || - data instanceof Int32Array || - data instanceof Float32Array || - data instanceof Float64Array); - } - - if (typeof options.mask === 'undefined') options.mask = !this._isServer; - if (typeof options.compress === 'undefined') options.compress = true; - if (!this.extensions[PerMessageDeflate.extensionName]) { - options.compress = false; - } - - var readable = typeof stream.Readable === 'function' - ? stream.Readable - : stream.Stream; - - if (data instanceof readable) { - startQueue(this); - var self = this; - - sendStream(this, data, options, function send(error) { - process.nextTick(function tock() { - executeQueueSends(self); - }); - - if (typeof cb === 'function') cb(error); - }); - } else { - this._sender.send(data, options, cb); - } -}; - -/** - * Streams data through calls to a user supplied function - * - * @param {Object} Members - mask: boolean, binary: boolean, compress: boolean - * @param {function} 'function (error, send)' which is executed on successive ticks of which send is 'function (data, final)'. - * @api public - */ -WebSocket.prototype.stream = function stream(options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - var self = this; - - if (typeof cb !== 'function') throw new Error('callback must be provided'); - - if (this.readyState !== WebSocket.OPEN) { - if (typeof cb === 'function') cb(new Error('not opened')); - else throw new Error('not opened'); - return; - } - - if (this._queue) { - this._queue.push(function () { self.stream(options, cb); }); - return; - } - - options = options || {}; - - if (typeof options.mask === 'undefined') options.mask = !this._isServer; - if (typeof options.compress === 'undefined') options.compress = true; - if (!this.extensions[PerMessageDeflate.extensionName]) { - options.compress = false; - } - - startQueue(this); - - function send(data, final) { - try { - if (self.readyState !== WebSocket.OPEN) throw new Error('not opened'); - options.fin = final === true; - self._sender.send(data, options); - if (!final) process.nextTick(cb.bind(null, null, send)); - else executeQueueSends(self); - } catch (e) { - if (typeof cb === 'function') cb(e); - else { - delete self._queue; - self.emit('error', e); - } - } - } - - process.nextTick(cb.bind(null, null, send)); -}; - -/** - * Immediately shuts down the connection - * - * @api public - */ -WebSocket.prototype.terminate = function terminate() { - if (this.readyState === WebSocket.CLOSED) return; - - if (this._socket) { - this.readyState = WebSocket.CLOSING; - - // End the connection - try { this._socket.end(); } - catch (e) { - // Socket error during end() call, so just destroy it right now - cleanupWebsocketResources.call(this, true); - return; - } - - // Add a timeout to ensure that the connection is completely - // cleaned up within 30 seconds, even if the clean close procedure - // fails for whatever reason - // First cleanup any pre-existing timeout from an earlier "terminate" call, - // if one exists. Otherwise terminate calls in quick succession will leak timeouts - // and hold the program open for `closeTimout` time. - if (this._closeTimer) { clearTimeout(this._closeTimer); } - this._closeTimer = setTimeout(cleanupWebsocketResources.bind(this, true), closeTimeout); - } else if (this.readyState === WebSocket.CONNECTING) { - cleanupWebsocketResources.call(this, true); - } -}; - -/** - * Expose bufferedAmount - * - * @api public - */ -Object.defineProperty(WebSocket.prototype, 'bufferedAmount', { - get: function get() { - var amount = 0; - if (this._socket) { - amount = this._socket.bufferSize || 0; - } - return amount; - } -}); - -/** - * Expose binaryType - * - * This deviates from the W3C interface since ws doesn't support the required - * default "blob" type (instead we define a custom "nodebuffer" type). - * - * @see http://dev.w3.org/html5/websockets/#the-websocket-interface - * @api public - */ -Object.defineProperty(WebSocket.prototype, 'binaryType', { - get: function get() { - return this._binaryType; - }, - set: function set(type) { - if (type === 'arraybuffer' || type === 'nodebuffer') - this._binaryType = type; - else - throw new SyntaxError('unsupported binaryType: must be either "nodebuffer" or "arraybuffer"'); - } -}); - -/** - * Emulates the W3C Browser based WebSocket interface using function members. - * - * @see http://dev.w3.org/html5/websockets/#the-websocket-interface - * @api public - */ -['open', 'error', 'close', 'message'].forEach(function(method) { - Object.defineProperty(WebSocket.prototype, 'on' + method, { - /** - * Returns the current listener - * - * @returns {Mixed} the set function or undefined - * @api public - */ - get: function get() { - var listener = this.listeners(method)[0]; - return listener ? (listener._listener ? listener._listener : listener) : undefined; - }, - - /** - * Start listening for events - * - * @param {Function} listener the listener - * @returns {Mixed} the set function or undefined - * @api public - */ - set: function set(listener) { - this.removeAllListeners(method); - this.addEventListener(method, listener); - } - }); -}); - -/** - * Emulates the W3C Browser based WebSocket interface using addEventListener. - * - * @see https://developer.mozilla.org/en/DOM/element.addEventListener - * @see http://dev.w3.org/html5/websockets/#the-websocket-interface - * @api public - */ -WebSocket.prototype.addEventListener = function(method, listener) { - var target = this; - - function onMessage (data, flags) { - if (flags.binary && this.binaryType === 'arraybuffer') - data = new Uint8Array(data).buffer; - listener.call(target, new MessageEvent(data, !!flags.binary, target)); - } - - function onClose (code, message) { - listener.call(target, new CloseEvent(code, message, target)); - } - - function onError (event) { - event.type = 'error'; - event.target = target; - listener.call(target, event); - } - - function onOpen () { - listener.call(target, new OpenEvent(target)); - } - - if (typeof listener === 'function') { - if (method === 'message') { - // store a reference so we can return the original function from the - // addEventListener hook - onMessage._listener = listener; - this.on(method, onMessage); - } else if (method === 'close') { - // store a reference so we can return the original function from the - // addEventListener hook - onClose._listener = listener; - this.on(method, onClose); - } else if (method === 'error') { - // store a reference so we can return the original function from the - // addEventListener hook - onError._listener = listener; - this.on(method, onError); - } else if (method === 'open') { - // store a reference so we can return the original function from the - // addEventListener hook - onOpen._listener = listener; - this.on(method, onOpen); - } else { - this.on(method, listener); - } - } -}; - -module.exports = WebSocket; -module.exports.buildHostHeader = buildHostHeader - -/** - * W3C MessageEvent - * - * @see http://www.w3.org/TR/html5/comms.html - * @constructor - * @api private - */ -function MessageEvent(dataArg, isBinary, target) { - this.type = 'message'; - this.data = dataArg; - this.target = target; - this.binary = isBinary; // non-standard. -} - -/** - * W3C CloseEvent - * - * @see http://www.w3.org/TR/html5/comms.html - * @constructor - * @api private - */ -function CloseEvent(code, reason, target) { - this.type = 'close'; - this.wasClean = (typeof code === 'undefined' || code === 1000); - this.code = code; - this.reason = reason; - this.target = target; -} - -/** - * W3C OpenEvent - * - * @see http://www.w3.org/TR/html5/comms.html - * @constructor - * @api private - */ -function OpenEvent(target) { - this.type = 'open'; - this.target = target; -} - -// Append port number to Host header, only if specified in the url -// and non-default -function buildHostHeader(isSecure, hostname, port) { - var headerHost = hostname; - if (hostname) { - if ((isSecure && (port != 443)) || (!isSecure && (port != 80))){ - headerHost = headerHost + ':' + port; - } - } - return headerHost; -} - -/** - * Entirely private apis, - * which may or may not be bound to a sepcific WebSocket instance. - */ -function initAsServerClient(req, socket, upgradeHead, options) { - options = new Options({ - protocolVersion: protocolVersion, - protocol: null, - extensions: {}, - maxPayload: 0 - }).merge(options); - - // expose state properties - this.protocol = options.value.protocol; - this.protocolVersion = options.value.protocolVersion; - this.extensions = options.value.extensions; - this.supports.binary = (this.protocolVersion !== 'hixie-76'); - this.upgradeReq = req; - this.readyState = WebSocket.CONNECTING; - this._isServer = true; - this.maxPayload = options.value.maxPayload; - // establish connection - if (options.value.protocolVersion === 'hixie-76') { - establishConnection.call(this, ReceiverHixie, SenderHixie, socket, upgradeHead); - } else { - establishConnection.call(this, Receiver, Sender, socket, upgradeHead); - } -} - -function initAsClient(address, protocols, options) { - options = new Options({ - origin: null, - protocolVersion: protocolVersion, - host: null, - headers: null, - protocol: protocols.join(','), - agent: null, - - // ssl-related options - pfx: null, - key: null, - passphrase: null, - cert: null, - ca: null, - ciphers: null, - rejectUnauthorized: null, - perMessageDeflate: true, - localAddress: null - }).merge(options); - - if (options.value.protocolVersion !== 8 && options.value.protocolVersion !== 13) { - throw new Error('unsupported protocol version'); - } - - // verify URL and establish http class - var serverUrl = url.parse(address); - var isUnixSocket = serverUrl.protocol === 'ws+unix:'; - if (!serverUrl.host && !isUnixSocket) throw new Error('invalid url'); - var isSecure = serverUrl.protocol === 'wss:' || serverUrl.protocol === 'https:'; - var httpObj = isSecure ? https : http; - var port = serverUrl.port || (isSecure ? 443 : 80); - var auth = serverUrl.auth; - - // prepare extensions - var extensionsOffer = {}; - var perMessageDeflate; - if (options.value.perMessageDeflate) { - perMessageDeflate = new PerMessageDeflate(typeof options.value.perMessageDeflate !== true ? options.value.perMessageDeflate : {}, false); - extensionsOffer[PerMessageDeflate.extensionName] = perMessageDeflate.offer(); - } - - // expose state properties - this._isServer = false; - this.url = address; - this.protocolVersion = options.value.protocolVersion; - this.supports.binary = (this.protocolVersion !== 'hixie-76'); - - // begin handshake - var key = new Buffer(options.value.protocolVersion + '-' + Date.now()).toString('base64'); - var shasum = crypto.createHash('sha1'); - shasum.update(key + '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'); - var expectedServerKey = shasum.digest('base64'); - - var agent = options.value.agent; - - var headerHost = buildHostHeader(isSecure, serverUrl.hostname, port) - - var requestOptions = { - port: port, - host: serverUrl.hostname, - headers: { - 'Connection': 'Upgrade', - 'Upgrade': 'websocket', - 'Host': headerHost, - 'Sec-WebSocket-Version': options.value.protocolVersion, - 'Sec-WebSocket-Key': key - } - }; - - // If we have basic auth. - if (auth) { - requestOptions.headers.Authorization = 'Basic ' + new Buffer(auth).toString('base64'); - } - - if (options.value.protocol) { - requestOptions.headers['Sec-WebSocket-Protocol'] = options.value.protocol; - } - - if (options.value.host) { - requestOptions.headers.Host = options.value.host; - } - - if (options.value.headers) { - for (var header in options.value.headers) { - if (options.value.headers.hasOwnProperty(header)) { - requestOptions.headers[header] = options.value.headers[header]; - } - } - } - - if (Object.keys(extensionsOffer).length) { - requestOptions.headers['Sec-WebSocket-Extensions'] = Extensions.format(extensionsOffer); - } - - if (options.isDefinedAndNonNull('pfx') - || options.isDefinedAndNonNull('key') - || options.isDefinedAndNonNull('passphrase') - || options.isDefinedAndNonNull('cert') - || options.isDefinedAndNonNull('ca') - || options.isDefinedAndNonNull('ciphers') - || options.isDefinedAndNonNull('rejectUnauthorized')) { - - if (options.isDefinedAndNonNull('pfx')) requestOptions.pfx = options.value.pfx; - if (options.isDefinedAndNonNull('key')) requestOptions.key = options.value.key; - if (options.isDefinedAndNonNull('passphrase')) requestOptions.passphrase = options.value.passphrase; - if (options.isDefinedAndNonNull('cert')) requestOptions.cert = options.value.cert; - if (options.isDefinedAndNonNull('ca')) requestOptions.ca = options.value.ca; - if (options.isDefinedAndNonNull('ciphers')) requestOptions.ciphers = options.value.ciphers; - if (options.isDefinedAndNonNull('rejectUnauthorized')) requestOptions.rejectUnauthorized = options.value.rejectUnauthorized; - - if (!agent) { - // global agent ignores client side certificates - agent = new httpObj.Agent(requestOptions); - } - } - - requestOptions.path = serverUrl.path || '/'; - - if (agent) { - requestOptions.agent = agent; - } - - if (isUnixSocket) { - requestOptions.socketPath = serverUrl.pathname; - } - - if (options.value.localAddress) { - requestOptions.localAddress = options.value.localAddress; - } - - if (options.value.origin) { - if (options.value.protocolVersion < 13) requestOptions.headers['Sec-WebSocket-Origin'] = options.value.origin; - else requestOptions.headers.Origin = options.value.origin; - } - - var self = this; - var req = httpObj.request(requestOptions); - - req.on('error', function onerror(error) { - self.emit('error', error); - cleanupWebsocketResources.call(self, error); - }); - - req.once('response', function response(res) { - var error; - - if (!self.emit('unexpected-response', req, res)) { - error = new Error('unexpected server response (' + res.statusCode + ')'); - req.abort(); - self.emit('error', error); - } - - cleanupWebsocketResources.call(self, error); - }); - - req.once('upgrade', function upgrade(res, socket, upgradeHead) { - if (self.readyState === WebSocket.CLOSED) { - // client closed before server accepted connection - self.emit('close'); - self.removeAllListeners(); - socket.end(); - return; - } - - var serverKey = res.headers['sec-websocket-accept']; - if (typeof serverKey === 'undefined' || serverKey !== expectedServerKey) { - self.emit('error', 'invalid server key'); - self.removeAllListeners(); - socket.end(); - return; - } - - var serverProt = res.headers['sec-websocket-protocol']; - var protList = (options.value.protocol || "").split(/, */); - var protError = null; - - if (!options.value.protocol && serverProt) { - protError = 'server sent a subprotocol even though none requested'; - } else if (options.value.protocol && !serverProt) { - protError = 'server sent no subprotocol even though requested'; - } else if (serverProt && protList.indexOf(serverProt) === -1) { - protError = 'server responded with an invalid protocol'; - } - - if (protError) { - self.emit('error', protError); - self.removeAllListeners(); - socket.end(); - return; - } else if (serverProt) { - self.protocol = serverProt; - } - - var serverExtensions = Extensions.parse(res.headers['sec-websocket-extensions']); - if (perMessageDeflate && serverExtensions[PerMessageDeflate.extensionName]) { - try { - perMessageDeflate.accept(serverExtensions[PerMessageDeflate.extensionName]); - } catch (err) { - self.emit('error', 'invalid extension parameter'); - self.removeAllListeners(); - socket.end(); - return; - } - self.extensions[PerMessageDeflate.extensionName] = perMessageDeflate; - } - - establishConnection.call(self, Receiver, Sender, socket, upgradeHead); - - // perform cleanup on http resources - req.removeAllListeners(); - req = null; - agent = null; - }); - - req.end(); - this.readyState = WebSocket.CONNECTING; -} - -function establishConnection(ReceiverClass, SenderClass, socket, upgradeHead) { - var ultron = this._ultron = new Ultron(socket) - , called = false - , self = this; - - socket.setTimeout(0); - socket.setNoDelay(true); - - this._receiver = new ReceiverClass(this.extensions,this.maxPayload); - this._socket = socket; - - // socket cleanup handlers - ultron.on('end', cleanupWebsocketResources.bind(this)); - ultron.on('close', cleanupWebsocketResources.bind(this)); - ultron.on('error', cleanupWebsocketResources.bind(this)); - - // ensure that the upgradeHead is added to the receiver - function firstHandler(data) { - if (called || self.readyState === WebSocket.CLOSED) return; - - called = true; - socket.removeListener('data', firstHandler); - ultron.on('data', realHandler); - - if (upgradeHead && upgradeHead.length > 0) { - realHandler(upgradeHead); - upgradeHead = null; - } - - if (data) realHandler(data); - } - - // subsequent packets are pushed straight to the receiver - function realHandler(data) { - self.bytesReceived += data.length; - self._receiver.add(data); - } - - ultron.on('data', firstHandler); - - // if data was passed along with the http upgrade, - // this will schedule a push of that on to the receiver. - // this has to be done on next tick, since the caller - // hasn't had a chance to set event handlers on this client - // object yet. - process.nextTick(firstHandler); - - // receiver event handlers - self._receiver.ontext = function ontext(data, flags) { - flags = flags || {}; - - self.emit('message', data, flags); - }; - - self._receiver.onbinary = function onbinary(data, flags) { - flags = flags || {}; - - flags.binary = true; - self.emit('message', data, flags); - }; - - self._receiver.onping = function onping(data, flags) { - flags = flags || {}; - - self.pong(data, { - mask: !self._isServer, - binary: flags.binary === true - }, true); - - self.emit('ping', data, flags); - }; - - self._receiver.onpong = function onpong(data, flags) { - self.emit('pong', data, flags || {}); - }; - - self._receiver.onclose = function onclose(code, data, flags) { - flags = flags || {}; - - self._closeReceived = true; - self.close(code, data); - }; - - self._receiver.onerror = function onerror(reason, errorCode) { - // close the connection when the receiver reports a HyBi error code - self.close(typeof errorCode !== 'undefined' ? errorCode : 1002, ''); - self.emit('error', (reason instanceof Error) ? reason : (new Error(reason))); - }; - - // finalize the client - this._sender = new SenderClass(socket, this.extensions); - this._sender.on('error', function onerror(error) { - self.close(1002, ''); - self.emit('error', error); - }); - - this.readyState = WebSocket.OPEN; - this.emit('open'); -} - -function startQueue(instance) { - instance._queue = instance._queue || []; -} - -function executeQueueSends(instance) { - var queue = instance._queue; - if (typeof queue === 'undefined') return; - - delete instance._queue; - for (var i = 0, l = queue.length; i < l; ++i) { - queue[i](); - } -} - -function sendStream(instance, stream, options, cb) { - stream.on('data', function incoming(data) { - if (instance.readyState !== WebSocket.OPEN) { - if (typeof cb === 'function') cb(new Error('not opened')); - else { - delete instance._queue; - instance.emit('error', new Error('not opened')); - } - return; - } - - options.fin = false; - instance._sender.send(data, options); - }); - - stream.on('end', function end() { - if (instance.readyState !== WebSocket.OPEN) { - if (typeof cb === 'function') cb(new Error('not opened')); - else { - delete instance._queue; - instance.emit('error', new Error('not opened')); - } - return; - } - - options.fin = true; - instance._sender.send(null, options); - - if (typeof cb === 'function') cb(null); - }); -} - -function cleanupWebsocketResources(error) { - if (this.readyState === WebSocket.CLOSED) return; - - this.readyState = WebSocket.CLOSED; - - clearTimeout(this._closeTimer); - this._closeTimer = null; - - // If the connection was closed abnormally (with an error), or if - // the close control frame was not received then the close code - // must default to 1006. - if (error || !this._closeReceived) { - this._closeCode = 1006; - } - this.emit('close', this._closeCode || 1000, this._closeMessage || ''); - - if (this._socket) { - if (this._ultron) this._ultron.destroy(); - this._socket.on('error', function onerror() { - try { this.destroy(); } - catch (e) {} - }); - - try { - if (!error) this._socket.end(); - else this._socket.destroy(); - } catch (e) { /* Ignore termination errors */ } - - this._socket = null; - this._ultron = null; - } - - if (this._sender) { - this._sender.removeAllListeners(); - this._sender = null; - } - - if (this._receiver) { - this._receiver.cleanup(); - this._receiver = null; - } - - if (this.extensions[PerMessageDeflate.extensionName]) { - this.extensions[PerMessageDeflate.extensionName].cleanup(); - } - - this.extensions = null; - - this.removeAllListeners(); - this.on('error', function onerror() {}); // catch all errors after this - delete this._queue; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/WebSocketServer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/WebSocketServer.js deleted file mode 100644 index 476cf710..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/WebSocketServer.js +++ /dev/null @@ -1,554 +0,0 @@ -/*! - * ws: a node.js websocket client - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -var util = require('util') - , events = require('events') - , http = require('http') - , crypto = require('crypto') - , Options = require('options') - , WebSocket = require('./WebSocket') - , Extensions = require('./Extensions') - , PerMessageDeflate = require('./PerMessageDeflate') - , tls = require('tls') - , url = require('url'); - -/** - * WebSocket Server implementation - */ - -function WebSocketServer(options, callback) { - if (this instanceof WebSocketServer === false) { - return new WebSocketServer(options, callback); - } - - events.EventEmitter.call(this); - - options = new Options({ - host: '0.0.0.0', - port: null, - server: null, - verifyClient: null, - handleProtocols: null, - path: null, - noServer: false, - disableHixie: false, - clientTracking: true, - perMessageDeflate: true, - maxPayload: null - }).merge(options); - - if (!options.isDefinedAndNonNull('port') && !options.isDefinedAndNonNull('server') && !options.value.noServer) { - throw new TypeError('`port` or a `server` must be provided'); - } - - var self = this; - - if (options.isDefinedAndNonNull('port')) { - this._server = http.createServer(function (req, res) { - var body = http.STATUS_CODES[426]; - res.writeHead(426, { - 'Content-Length': body.length, - 'Content-Type': 'text/plain' - }); - res.end(body); - }); - this._server.allowHalfOpen = false; - this._server.listen(options.value.port, options.value.host, callback); - this._closeServer = function() { if (self._server) self._server.close(); }; - } - else if (options.value.server) { - this._server = options.value.server; - if (options.value.path) { - // take note of the path, to avoid collisions when multiple websocket servers are - // listening on the same http server - if (this._server._webSocketPaths && options.value.server._webSocketPaths[options.value.path]) { - throw new Error('two instances of WebSocketServer cannot listen on the same http server path'); - } - if (typeof this._server._webSocketPaths !== 'object') { - this._server._webSocketPaths = {}; - } - this._server._webSocketPaths[options.value.path] = 1; - } - } - if (this._server) { - this._onceServerListening = function() { self.emit('listening'); }; - this._server.once('listening', this._onceServerListening); - } - - if (typeof this._server != 'undefined') { - this._onServerError = function(error) { self.emit('error', error) }; - this._server.on('error', this._onServerError); - this._onServerUpgrade = function(req, socket, upgradeHead) { - //copy upgradeHead to avoid retention of large slab buffers used in node core - var head = new Buffer(upgradeHead.length); - upgradeHead.copy(head); - - self.handleUpgrade(req, socket, head, function(client) { - self.emit('connection'+req.url, client); - self.emit('connection', client); - }); - }; - this._server.on('upgrade', this._onServerUpgrade); - } - - this.options = options.value; - this.path = options.value.path; - this.clients = []; -} - -/** - * Inherits from EventEmitter. - */ - -util.inherits(WebSocketServer, events.EventEmitter); - -/** - * Immediately shuts down the connection. - * - * @api public - */ - -WebSocketServer.prototype.close = function(callback) { - // terminate all associated clients - var error = null; - try { - for (var i = 0, l = this.clients.length; i < l; ++i) { - this.clients[i].terminate(); - } - } - catch (e) { - error = e; - } - - // remove path descriptor, if any - if (this.path && this._server._webSocketPaths) { - delete this._server._webSocketPaths[this.path]; - if (Object.keys(this._server._webSocketPaths).length == 0) { - delete this._server._webSocketPaths; - } - } - - // close the http server if it was internally created - try { - if (typeof this._closeServer !== 'undefined') { - this._closeServer(); - } - } - finally { - if (this._server) { - this._server.removeListener('listening', this._onceServerListening); - this._server.removeListener('error', this._onServerError); - this._server.removeListener('upgrade', this._onServerUpgrade); - } - delete this._server; - } - if(callback) - callback(error); - else if(error) - throw error; -} - -/** - * Handle a HTTP Upgrade request. - * - * @api public - */ - -WebSocketServer.prototype.handleUpgrade = function(req, socket, upgradeHead, cb) { - // check for wrong path - if (this.options.path) { - var u = url.parse(req.url); - if (u && u.pathname !== this.options.path) return; - } - - if (typeof req.headers.upgrade === 'undefined' || req.headers.upgrade.toLowerCase() !== 'websocket') { - abortConnection(socket, 400, 'Bad Request'); - return; - } - - if (req.headers['sec-websocket-key1']) handleHixieUpgrade.apply(this, arguments); - else handleHybiUpgrade.apply(this, arguments); -} - -module.exports = WebSocketServer; - -/** - * Entirely private apis, - * which may or may not be bound to a sepcific WebSocket instance. - */ - -function handleHybiUpgrade(req, socket, upgradeHead, cb) { - // handle premature socket errors - var errorHandler = function() { - try { socket.destroy(); } catch (e) {} - } - socket.on('error', errorHandler); - - // verify key presence - if (!req.headers['sec-websocket-key']) { - abortConnection(socket, 400, 'Bad Request'); - return; - } - - // verify version - var version = parseInt(req.headers['sec-websocket-version']); - if ([8, 13].indexOf(version) === -1) { - abortConnection(socket, 400, 'Bad Request'); - return; - } - - // verify protocol - var protocols = req.headers['sec-websocket-protocol']; - - // verify client - var origin = version < 13 ? - req.headers['sec-websocket-origin'] : - req.headers['origin']; - - // handle extensions offer - var extensionsOffer = Extensions.parse(req.headers['sec-websocket-extensions']); - - // handler to call when the connection sequence completes - var self = this; - var completeHybiUpgrade2 = function(protocol) { - - // calc key - var key = req.headers['sec-websocket-key']; - var shasum = crypto.createHash('sha1'); - shasum.update(key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"); - key = shasum.digest('base64'); - - var headers = [ - 'HTTP/1.1 101 Switching Protocols' - , 'Upgrade: websocket' - , 'Connection: Upgrade' - , 'Sec-WebSocket-Accept: ' + key - ]; - - if (typeof protocol != 'undefined') { - headers.push('Sec-WebSocket-Protocol: ' + protocol); - } - - var extensions = {}; - try { - extensions = acceptExtensions.call(self, extensionsOffer); - } catch (err) { - abortConnection(socket, 400, 'Bad Request'); - return; - } - - if (Object.keys(extensions).length) { - var serverExtensions = {}; - Object.keys(extensions).forEach(function(token) { - serverExtensions[token] = [extensions[token].params] - }); - headers.push('Sec-WebSocket-Extensions: ' + Extensions.format(serverExtensions)); - } - - // allows external modification/inspection of handshake headers - self.emit('headers', headers); - - socket.setTimeout(0); - socket.setNoDelay(true); - try { - socket.write(headers.concat('', '').join('\r\n')); - } - catch (e) { - // if the upgrade write fails, shut the connection down hard - try { socket.destroy(); } catch (e) {} - return; - } - - var client = new WebSocket([req, socket, upgradeHead], { - protocolVersion: version, - protocol: protocol, - extensions: extensions, - maxPayload: self.options.maxPayload - }); - - if (self.options.clientTracking) { - self.clients.push(client); - client.on('close', function() { - var index = self.clients.indexOf(client); - if (index != -1) { - self.clients.splice(index, 1); - } - }); - } - - // signal upgrade complete - socket.removeListener('error', errorHandler); - cb(client); - } - - // optionally call external protocol selection handler before - // calling completeHybiUpgrade2 - var completeHybiUpgrade1 = function() { - // choose from the sub-protocols - if (typeof self.options.handleProtocols == 'function') { - var protList = (protocols || "").split(/, */); - var callbackCalled = false; - var res = self.options.handleProtocols(protList, function(result, protocol) { - callbackCalled = true; - if (!result) abortConnection(socket, 401, 'Unauthorized'); - else completeHybiUpgrade2(protocol); - }); - if (!callbackCalled) { - // the handleProtocols handler never called our callback - abortConnection(socket, 501, 'Could not process protocols'); - } - return; - } else { - if (typeof protocols !== 'undefined') { - completeHybiUpgrade2(protocols.split(/, */)[0]); - } - else { - completeHybiUpgrade2(); - } - } - } - - // optionally call external client verification handler - if (typeof this.options.verifyClient == 'function') { - var info = { - origin: origin, - secure: typeof req.connection.authorized !== 'undefined' || typeof req.connection.encrypted !== 'undefined', - req: req - }; - if (this.options.verifyClient.length == 2) { - this.options.verifyClient(info, function(result, code, name) { - if (typeof code === 'undefined') code = 401; - if (typeof name === 'undefined') name = http.STATUS_CODES[code]; - - if (!result) abortConnection(socket, code, name); - else completeHybiUpgrade1(); - }); - return; - } - else if (!this.options.verifyClient(info)) { - abortConnection(socket, 401, 'Unauthorized'); - return; - } - } - - completeHybiUpgrade1(); -} - -function handleHixieUpgrade(req, socket, upgradeHead, cb) { - // handle premature socket errors - var errorHandler = function() { - try { socket.destroy(); } catch (e) {} - } - socket.on('error', errorHandler); - - // bail if options prevent hixie - if (this.options.disableHixie) { - abortConnection(socket, 401, 'Hixie support disabled'); - return; - } - - // verify key presence - if (!req.headers['sec-websocket-key2']) { - abortConnection(socket, 400, 'Bad Request'); - return; - } - - var origin = req.headers['origin'] - , self = this; - - // setup handshake completion to run after client has been verified - var onClientVerified = function() { - var wshost; - if (!req.headers['x-forwarded-host']) - wshost = req.headers.host; - else - wshost = req.headers['x-forwarded-host']; - var location = ((req.headers['x-forwarded-proto'] === 'https' || socket.encrypted) ? 'wss' : 'ws') + '://' + wshost + req.url - , protocol = req.headers['sec-websocket-protocol']; - - // build the response header and return a Buffer - var buildResponseHeader = function() { - var headers = [ - 'HTTP/1.1 101 Switching Protocols' - , 'Upgrade: WebSocket' - , 'Connection: Upgrade' - , 'Sec-WebSocket-Location: ' + location - ]; - if (typeof protocol != 'undefined') headers.push('Sec-WebSocket-Protocol: ' + protocol); - if (typeof origin != 'undefined') headers.push('Sec-WebSocket-Origin: ' + origin); - - return new Buffer(headers.concat('', '').join('\r\n')); - }; - - // send handshake response before receiving the nonce - var handshakeResponse = function() { - - socket.setTimeout(0); - socket.setNoDelay(true); - - var headerBuffer = buildResponseHeader(); - - try { - socket.write(headerBuffer, 'binary', function(err) { - // remove listener if there was an error - if (err) socket.removeListener('data', handler); - return; - }); - } catch (e) { - try { socket.destroy(); } catch (e) {} - return; - }; - }; - - // handshake completion code to run once nonce has been successfully retrieved - var completeHandshake = function(nonce, rest, headerBuffer) { - // calculate key - var k1 = req.headers['sec-websocket-key1'] - , k2 = req.headers['sec-websocket-key2'] - , md5 = crypto.createHash('md5'); - - [k1, k2].forEach(function (k) { - var n = parseInt(k.replace(/[^\d]/g, '')) - , spaces = k.replace(/[^ ]/g, '').length; - if (spaces === 0 || n % spaces !== 0){ - abortConnection(socket, 400, 'Bad Request'); - return; - } - n /= spaces; - md5.update(String.fromCharCode( - n >> 24 & 0xFF, - n >> 16 & 0xFF, - n >> 8 & 0xFF, - n & 0xFF)); - }); - md5.update(nonce.toString('binary')); - - socket.setTimeout(0); - socket.setNoDelay(true); - - try { - var hashBuffer = new Buffer(md5.digest('binary'), 'binary'); - var handshakeBuffer = new Buffer(headerBuffer.length + hashBuffer.length); - headerBuffer.copy(handshakeBuffer, 0); - hashBuffer.copy(handshakeBuffer, headerBuffer.length); - - // do a single write, which - upon success - causes a new client websocket to be setup - socket.write(handshakeBuffer, 'binary', function(err) { - if (err) return; // do not create client if an error happens - var client = new WebSocket([req, socket, rest], { - protocolVersion: 'hixie-76', - protocol: protocol - }); - if (self.options.clientTracking) { - self.clients.push(client); - client.on('close', function() { - var index = self.clients.indexOf(client); - if (index != -1) { - self.clients.splice(index, 1); - } - }); - } - - // signal upgrade complete - socket.removeListener('error', errorHandler); - cb(client); - }); - } - catch (e) { - try { socket.destroy(); } catch (e) {} - return; - } - } - - // retrieve nonce - var nonceLength = 8; - if (upgradeHead && upgradeHead.length >= nonceLength) { - var nonce = upgradeHead.slice(0, nonceLength); - var rest = upgradeHead.length > nonceLength ? upgradeHead.slice(nonceLength) : null; - completeHandshake.call(self, nonce, rest, buildResponseHeader()); - } - else { - // nonce not present in upgradeHead - var nonce = new Buffer(nonceLength); - upgradeHead.copy(nonce, 0); - var received = upgradeHead.length; - var rest = null; - var handler = function (data) { - var toRead = Math.min(data.length, nonceLength - received); - if (toRead === 0) return; - data.copy(nonce, received, 0, toRead); - received += toRead; - if (received == nonceLength) { - socket.removeListener('data', handler); - if (toRead < data.length) rest = data.slice(toRead); - - // complete the handshake but send empty buffer for headers since they have already been sent - completeHandshake.call(self, nonce, rest, new Buffer(0)); - } - } - - // handle additional data as we receive it - socket.on('data', handler); - - // send header response before we have the nonce to fix haproxy buffering - handshakeResponse(); - } - } - - // verify client - if (typeof this.options.verifyClient == 'function') { - var info = { - origin: origin, - secure: typeof req.connection.authorized !== 'undefined' || typeof req.connection.encrypted !== 'undefined', - req: req - }; - if (this.options.verifyClient.length == 2) { - var self = this; - this.options.verifyClient(info, function(result, code, name) { - if (typeof code === 'undefined') code = 401; - if (typeof name === 'undefined') name = http.STATUS_CODES[code]; - - if (!result) abortConnection(socket, code, name); - else onClientVerified.apply(self); - }); - return; - } - else if (!this.options.verifyClient(info)) { - abortConnection(socket, 401, 'Unauthorized'); - return; - } - } - - // no client verification required - onClientVerified(); -} - -function acceptExtensions(offer) { - var extensions = {}; - var options = this.options.perMessageDeflate; - var maxPayload = this.options.maxPayload; - if (options && offer[PerMessageDeflate.extensionName]) { - var perMessageDeflate = new PerMessageDeflate(options !== true ? options : {}, true, maxPayload); - perMessageDeflate.accept(offer[PerMessageDeflate.extensionName]); - extensions[PerMessageDeflate.extensionName] = perMessageDeflate; - } - return extensions; -} - -function abortConnection(socket, code, name) { - try { - var response = [ - 'HTTP/1.1 ' + code + ' ' + name, - 'Content-type: text/html' - ]; - socket.write(response.concat('', '').join('\r\n')); - } - catch (e) { /* ignore errors - we've aborted this connection */ } - finally { - // ensure that an early aborted connection is shut down completely - try { socket.destroy(); } catch (e) {} - } -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/.npmignore deleted file mode 100644 index 1b18fb39..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -npm-debug.log -node_modules -.*.swp -.lock-* -build/ - -test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/Makefile deleted file mode 100644 index 7496b6fc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -ALL_TESTS = $(shell find test/ -name '*.test.js') - -run-tests: - @./node_modules/.bin/mocha \ - -t 2000 \ - $(TESTFLAGS) \ - $(TESTS) - -test: - @$(MAKE) NODE_PATH=lib TESTS="$(ALL_TESTS)" run-tests - -.PHONY: test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/README.md deleted file mode 100644 index 0dabc755..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# options.js # - -A very light-weight in-code option parsers for node.js. - -## Usage ## - -``` js -var Options = require("options"); - -// Create an Options object -function foo(options) { - var default_options = { - foo : "bar" - }; - - // Create an option object with default value - var opts = new Options(default_options); - - // Merge options - opts = opts.merge(options); - - // Reset to default value - opts.reset(); - - // Copy selected attributes out - var seled_att = opts.copy("foo"); - - // Read json options from a file. - opts.read("options.file"); // Sync - opts.read("options.file", function(err){ // Async - if(err){ // If error occurs - console.log("File error."); - }else{ - // No error - } - }); - - // Attributes defined or not - opts.isDefinedAndNonNull("foobar"); - opts.isDefined("foobar"); -} - -``` - - -## License ## - -(The MIT License) - -Copyright (c) 2012 Einar Otto Stangvik <einaros@gmail.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/lib/options.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/lib/options.js deleted file mode 100644 index 4fc45e90..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/lib/options.js +++ /dev/null @@ -1,86 +0,0 @@ -/*! - * Copyright(c) 2011 Einar Otto Stangvik - * MIT Licensed - */ - -var fs = require('fs'); - -function Options(defaults) { - var internalValues = {}; - var values = this.value = {}; - Object.keys(defaults).forEach(function(key) { - internalValues[key] = defaults[key]; - Object.defineProperty(values, key, { - get: function() { return internalValues[key]; }, - configurable: false, - enumerable: true - }); - }); - this.reset = function() { - Object.keys(defaults).forEach(function(key) { - internalValues[key] = defaults[key]; - }); - return this; - }; - this.merge = function(options, required) { - options = options || {}; - if (Object.prototype.toString.call(required) === '[object Array]') { - var missing = []; - for (var i = 0, l = required.length; i < l; ++i) { - var key = required[i]; - if (!(key in options)) { - missing.push(key); - } - } - if (missing.length > 0) { - if (missing.length > 1) { - throw new Error('options ' + - missing.slice(0, missing.length - 1).join(', ') + ' and ' + - missing[missing.length - 1] + ' must be defined'); - } - else throw new Error('option ' + missing[0] + ' must be defined'); - } - } - Object.keys(options).forEach(function(key) { - if (key in internalValues) { - internalValues[key] = options[key]; - } - }); - return this; - }; - this.copy = function(keys) { - var obj = {}; - Object.keys(defaults).forEach(function(key) { - if (keys.indexOf(key) !== -1) { - obj[key] = values[key]; - } - }); - return obj; - }; - this.read = function(filename, cb) { - if (typeof cb == 'function') { - var self = this; - fs.readFile(filename, function(error, data) { - if (error) return cb(error); - var conf = JSON.parse(data); - self.merge(conf); - cb(); - }); - } - else { - var conf = JSON.parse(fs.readFileSync(filename)); - this.merge(conf); - } - return this; - }; - this.isDefined = function(key) { - return typeof values[key] != 'undefined'; - }; - this.isDefinedAndNonNull = function(key) { - return typeof values[key] != 'undefined' && values[key] !== null; - }; - Object.freeze(values); - Object.freeze(this); -} - -module.exports = Options; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/package.json deleted file mode 100644 index f60bb1ab..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "author": { - "name": "Einar Otto Stangvik", - "email": "einaros@gmail.com", - "url": "http://2x.io" - }, - "name": "options", - "description": "A very light-weight in-code option parsers for node.js.", - "version": "0.0.6", - "repository": { - "type": "git", - "url": "git://github.com/einaros/options.js.git" - }, - "main": "lib/options", - "scripts": { - "test": "make test" - }, - "engines": { - "node": ">=0.4.0" - }, - "dependencies": {}, - "devDependencies": { - "mocha": "latest" - }, - "gitHead": "ff53d0a092c897cb95964232a96fe17da65c11af", - "bugs": { - "url": "https://github.com/einaros/options.js/issues" - }, - "homepage": "https://github.com/einaros/options.js", - "_id": "options@0.0.6", - "_shasum": "ec22d312806bb53e731773e7cdaefcf1c643128f", - "_from": "options@>=0.0.5", - "_npmVersion": "1.4.21", - "_npmUser": { - "name": "einaros", - "email": "einaros@gmail.com" - }, - "maintainers": [ - { - "name": "einaros", - "email": "einaros@gmail.com" - } - ], - "dist": { - "shasum": "ec22d312806bb53e731773e7cdaefcf1c643128f", - "tarball": "https://registry.npmjs.org/options/-/options-0.0.6.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/.npmignore deleted file mode 100644 index 66210a2a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -coverage -.tern-port diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/.travis.yml deleted file mode 100644 index a505004b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -sudo: false -language: node_js -node_js: - - "0.12" - - "0.10" - - "0.8" - - "iojs" -before_install: - - 'if [ "${TRAVIS_NODE_VERSION}" == "0.8" ]; then npm install -g npm@2.11.1; fi' -script: - - "npm run test-travis" -after_script: - - "npm install coveralls@2.11.x && cat coverage/lcov.info | coveralls" -matrix: - fast_finish: true -notifications: - irc: - channels: - - "irc.freenode.org#unshift" - on_success: change - on_failure: change diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/LICENSE deleted file mode 100644 index 6dc9316a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Unshift.io, Arnout Kazemier, the Contributors. - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/README.md deleted file mode 100644 index 84fa3f23..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/README.md +++ /dev/null @@ -1,97 +0,0 @@ -# Ultron - -[![Made by unshift](https://img.shields.io/badge/made%20by-unshift-00ffcc.svg?style=flat-square)](http://unshift.io)[![Version npm](http://img.shields.io/npm/v/ultron.svg?style=flat-square)](http://browsenpm.org/package/ultron)[![Build Status](http://img.shields.io/travis/unshiftio/ultron/master.svg?style=flat-square)](https://travis-ci.org/unshiftio/ultron)[![Dependencies](https://img.shields.io/david/unshiftio/ultron.svg?style=flat-square)](https://david-dm.org/unshiftio/ultron)[![Coverage Status](http://img.shields.io/coveralls/unshiftio/ultron/master.svg?style=flat-square)](https://coveralls.io/r/unshiftio/ultron?branch=master)[![IRC channel](http://img.shields.io/badge/IRC-irc.freenode.net%23unshift-00a8ff.svg?style=flat-square)](http://webchat.freenode.net/?channels=unshift) - -Ultron is a high-intelligence robot. It gathers intelligence so it can start -improving upon his rudimentary design. It will learn your event emitting -patterns and find ways to exterminate them. Allowing you to remove only the -event emitters that **you** assigned and not the ones that your users or -developers assigned. This can prevent race conditions, memory leaks and even file -descriptor leaks from ever happening as you won't remove clean up processes. - -## Installation - -The module is designed to be used in browsers using browserify and in Node.js. -You can install the module through the public npm registry by running the -following command in CLI: - -``` -npm install --save ultron -``` - -## Usage - -In all examples we assume that you've required the library as following: - -```js -'use strict'; - -var Ultron = require('ultron'); -``` - -Now that we've required the library we can construct our first `Ultron` instance. -The constructor requires one argument which should be the `EventEmitter` -instance that we need to operate upon. This can be the `EventEmitter` module -that ships with Node.js or `EventEmitter3` or anything else as long as it -follow the same API and internal structure as these 2. So with that in mind we -can create the instance: - -```js -// -// For the sake of this example we're going to construct an empty EventEmitter -// -var EventEmitter = require('events').EventEmitter; // or require('eventmitter3'); -var events = new EventEmitter(); - -var ultron = new Ultron(events); -``` - -You can now use the following API's from the Ultron instance: - -### Ultron.on - -Register a new event listener for the given event. It follows the exact same API -as `EventEmitter.on` but it will return itself instead of returning the -EventEmitter instance. If you are using EventEmitter3 it also supports the -context param: - -```js -ultron.on('event-name', handler, { custom: 'function context' }); -``` - -### Ultron.once - -Exactly the same as the [Ultron.on](#ultronon) but it only allows the execution -once. - -### Ultron.remove - -This is where all the magic happens and the safe removal starts. This function -accepts different argument styles: - -- No arguments, assume that all events need to be removed so it will work as - `removeAllListeners()` API. -- 1 argument, when it's a string it will be split on ` ` and `,` to create a - list of events that need to be cleared. -- Multiple arguments, we assume that they are all names of events that need to - be cleared. - -```js -ultron.remove('foo, bar baz'); // Removes foo, bar and baz. -ultron.remove('foo', 'bar', 'baz'); // Removes foo, bar and baz. -ultron.remove(); // Removes everything. -``` - -If you just want to remove a single event listener using a function reference -you can still use the EventEmitter's `removeListener(event, fn)` API: - -```js -function foo() {} - -ulton.on('foo', foo); -events.removeListener('foo', foo); -``` - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/index.js deleted file mode 100644 index af17ab7c..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/index.js +++ /dev/null @@ -1,129 +0,0 @@ -'use strict'; - -var has = Object.prototype.hasOwnProperty; - -/** - * An auto incrementing id which we can use to create "unique" Ultron instances - * so we can track the event emitters that are added through the Ultron - * interface. - * - * @type {Number} - * @private - */ -var id = 0; - -/** - * Ultron is high-intelligence robot. It gathers intelligence so it can start improving - * upon his rudimentary design. It will learn from your EventEmitting patterns - * and exterminate them. - * - * @constructor - * @param {EventEmitter} ee EventEmitter instance we need to wrap. - * @api public - */ -function Ultron(ee) { - if (!(this instanceof Ultron)) return new Ultron(ee); - - this.id = id++; - this.ee = ee; -} - -/** - * Register a new EventListener for the given event. - * - * @param {String} event Name of the event. - * @param {Functon} fn Callback function. - * @param {Mixed} context The context of the function. - * @returns {Ultron} - * @api public - */ -Ultron.prototype.on = function on(event, fn, context) { - fn.__ultron = this.id; - this.ee.on(event, fn, context); - - return this; -}; -/** - * Add an EventListener that's only called once. - * - * @param {String} event Name of the event. - * @param {Function} fn Callback function. - * @param {Mixed} context The context of the function. - * @returns {Ultron} - * @api public - */ -Ultron.prototype.once = function once(event, fn, context) { - fn.__ultron = this.id; - this.ee.once(event, fn, context); - - return this; -}; - -/** - * Remove the listeners we assigned for the given event. - * - * @returns {Ultron} - * @api public - */ -Ultron.prototype.remove = function remove() { - var args = arguments - , event; - - // - // When no event names are provided we assume that we need to clear all the - // events that were assigned through us. - // - if (args.length === 1 && 'string' === typeof args[0]) { - args = args[0].split(/[, ]+/); - } else if (!args.length) { - args = []; - - for (event in this.ee._events) { - if (has.call(this.ee._events, event)) args.push(event); - } - } - - for (var i = 0; i < args.length; i++) { - var listeners = this.ee.listeners(args[i]); - - for (var j = 0; j < listeners.length; j++) { - event = listeners[j]; - - // - // Once listeners have a `listener` property that stores the real listener - // in the EventEmitter that ships with Node.js. - // - if (event.listener) { - if (event.listener.__ultron !== this.id) continue; - delete event.listener.__ultron; - } else { - if (event.__ultron !== this.id) continue; - delete event.__ultron; - } - - this.ee.removeListener(args[i], event); - } - } - - return this; -}; - -/** - * Destroy the Ultron instance, remove all listeners and release all references. - * - * @returns {Boolean} - * @api public - */ -Ultron.prototype.destroy = function destroy() { - if (!this.ee) return false; - - this.remove(); - this.ee = null; - - return true; -}; - -// -// Expose the module. -// -module.exports = Ultron; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/package.json deleted file mode 100644 index 258514a3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "ultron", - "version": "1.0.2", - "description": "Ultron is high-intelligence robot. It gathers intel so it can start improving upon his rudimentary design", - "main": "index.js", - "scripts": { - "100%": "istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100", - "test": "mocha test.js", - "watch": "mocha --watch test.js", - "coverage": "istanbul cover ./node_modules/.bin/_mocha -- test.js", - "test-travis": "istanbul cover node_modules/.bin/_mocha --report lcovonly -- test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/unshiftio/ultron.git" - }, - "keywords": [ - "Ultron", - "robot", - "gather", - "intelligence", - "event", - "events", - "eventemitter", - "emitter", - "cleanup" - ], - "author": { - "name": "Arnout Kazemier" - }, - "license": "MIT", - "devDependencies": { - "assume": "1.2.x", - "eventemitter3": "1.1.x", - "istanbul": "0.3.x", - "mocha": "2.2.x", - "pre-commit": "1.0.x" - }, - "bugs": { - "url": "https://github.com/unshiftio/ultron/issues" - }, - "homepage": "https://github.com/unshiftio/ultron", - "gitHead": "a10482ae98a09120821545456c90c6d60d540f7c", - "_id": "ultron@1.0.2", - "_shasum": "ace116ab557cd197386a4e88f4685378c8b2e4fa", - "_from": "ultron@>=1.0.0 <1.1.0", - "_npmVersion": "2.9.1", - "_nodeVersion": "0.12.3", - "_npmUser": { - "name": "3rdeden", - "email": "npm@3rd-Eden.com" - }, - "maintainers": [ - { - "name": "unshift", - "email": "npm@unshift.io" - }, - { - "name": "v1", - "email": "info@3rd-Eden.com" - }, - { - "name": "3rdeden", - "email": "npm@3rd-Eden.com" - } - ], - "dist": { - "shasum": "ace116ab557cd197386a4e88f4685378c8b2e4fa", - "tarball": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/test.js deleted file mode 100644 index 1fd4f1bb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/test.js +++ /dev/null @@ -1,327 +0,0 @@ -/* istanbul ignore next */ -describe('Ultron', function () { - 'use strict'; - - var EventEmitter = require('eventemitter3') - , EE = require('events').EventEmitter - , assume = require('assume') - , Ultron = require('./') - , ultron - , ee; - - beforeEach(function () { - ee = new EventEmitter(); - ultron = new Ultron(ee); - }); - - afterEach(function () { - ultron.destroy(); - ee.removeAllListeners(); - }); - - it('is exposed as a function', function () { - assume(Ultron).is.a('function'); - }); - - it('can be initialized without the new keyword', function () { - assume(Ultron(ee)).is.instanceOf(Ultron); - }); - - it('assigns a unique id to every instance', function () { - for (var i = 0; i < 100; i++) { - assume(ultron.id).does.not.equal((new Ultron()).id); - } - }); - - it('allows removal through the event emitter', function () { - function foo() {} - function bar() {} - - ultron.on('foo', foo); - ultron.once('foo', bar); - - assume(foo.__ultron).equals(ultron.id); - assume(bar.__ultron).equals(ultron.id); - assume(ee.listeners('foo').length).equals(2); - - ee.removeListener('foo', foo); - assume(ee.listeners('foo').length).equals(1); - - ee.removeListener('foo', bar); - assume(ee.listeners('foo').length).equals(0); - }); - - describe('#on', function () { - it('assigns a listener', function () { - assume(ee.listeners('foo').length).equals(0); - - function foo() {} - - ultron.on('foo', foo); - assume(ee.listeners('foo').length).equals(1); - assume(ee.listeners('foo')[0]).equals(foo); - }); - - it('tags the assigned function', function () { - assume(ee.listeners('foo').length).equals(0); - - ultron.on('foo', function () {}); - assume(ee.listeners('foo')[0].__ultron).equals(ultron.id); - }); - - it('also passes in the context', function (next) { - var context = 1313; - - ultron.on('foo', function (a, b, c) { - assume(a).equals('a'); - assume(b).equals('b'); - assume(c).equals('c'); - - assume(this).equals(context); - - next(); - }, context); - - ee.emit('foo', 'a', 'b', 'c'); - }); - - it('works with regular eventemitters as well', function (next) { - var ee = new EE() - , ultron = new Ultron(ee); - - ultron.on('foo', function (a, b, c) { - assume(a).equals('a'); - assume(b).equals('b'); - assume(c).equals('c'); - - next(); - }); - - ee.emit('foo', 'a', 'b', 'c'); - }); - }); - - describe('#once', function () { - it('assigns a listener', function () { - assume(ee.listeners('foo').length).equals(0); - - function foo() {} - ultron.once('foo', foo); - assume(ee.listeners('foo').length).equals(1); - assume(ee.listeners('foo')[0]).equals(foo); - }); - - it('tags the assigned function', function () { - assume(ee.listeners('foo').length).equals(0); - - ultron.once('foo', function () {}); - assume(ee.listeners('foo')[0].__ultron).equals(ultron.id); - }); - - it('also passes in the context', function (next) { - var context = 1313; - - ultron.once('foo', function (a, b, c) { - assume(a).equals('a'); - assume(b).equals('b'); - assume(c).equals('c'); - - assume(this).equals(context); - - next(); - }, context); - - ee.emit('foo', 'a', 'b', 'c'); - ee.emit('foo', 'a', 'b', 'c'); // Ensure that we don't double execute - }); - - it('works with regular eventemitters as well', function (next) { - var ee = new EE() - , ultron = new Ultron(ee); - - ultron.once('foo', function (a, b, c) { - assume(a).equals('a'); - assume(b).equals('b'); - assume(c).equals('c'); - - next(); - }); - - ee.emit('foo', 'a', 'b', 'c'); - ee.emit('foo', 'a', 'b', 'c'); // Ensure that we don't double execute - }); - }); - - describe('#remove', function () { - it('removes only our assigned `on` listeners', function () { - function foo() {} - function bar() {} - - ee.on('foo', foo); - ultron.on('foo', bar); - assume(ee.listeners('foo').length).equals(2); - - ultron.remove('foo'); - assume(ee.listeners('foo').length).equals(1); - assume(ee.listeners('foo')[0]).equals(foo); - }); - - it('removes our private __ultron references', function () { - function once() {} - function on() {} - - assume('__ultron' in once).is.false(); - assume('__ultron' in on).is.false(); - - ultron.on('foo', on); - ultron.once('bar', once); - - assume('__ultron' in once).is.true(); - assume('__ultron' in on).is.true(); - - ultron.remove('foo, bar'); - - assume('__ultron' in once).is.false(); - assume('__ultron' in on).is.false(); - - ultron.destroy(); - - ee = new EE(); - ultron = new Ultron(ee); - - assume('__ultron' in once).is.false(); - assume('__ultron' in on).is.false(); - - ultron.on('foo', on); - ultron.once('bar', once); - - assume('__ultron' in once).is.true(); - assume('__ultron' in on).is.true(); - - ultron.remove('foo, bar'); - - assume('__ultron' in once).is.false(); - assume('__ultron' in on).is.false(); - }); - - it('removes only our assigned `once` listeners', function () { - function foo() {} - function bar() {} - - ee.once('foo', foo); - ultron.once('foo', bar); - assume(ee.listeners('foo').length).equals(2); - - ultron.remove('foo'); - assume(ee.listeners('foo').length).equals(1); - assume(ee.listeners('foo')[0]).equals(foo); - }); - - it('removes only our assigned `once` listeners from regular EE', function () { - var ee = new EE() - , ultron = new Ultron(ee); - - function foo() {} - function bar() {} - - ee.once('foo', foo); - ultron.once('foo', bar); - assume(ee.listeners('foo').length).equals(2); - - ultron.remove('foo'); - assume(ee.listeners('foo').length).equals(1); - assume(ee.listeners('foo')[0].listener).equals(foo); - }); - - it('removes all assigned events if called without args', function () { - function foo() {} - function bar() {} - - ultron.on('foo', foo); - ultron.on('bar', bar); - - assume(ee.listeners('foo').length).equals(1); - assume(ee.listeners('bar').length).equals(1); - - ultron.remove(); - - assume(ee.listeners('foo').length).equals(0); - assume(ee.listeners('bar').length).equals(0); - }); - - it('removes multiple listeners based on args', function () { - function foo() {} - function bar() {} - function baz() {} - - ultron.on('foo', foo); - ultron.on('bar', bar); - ultron.on('baz', baz); - - assume(ee.listeners('foo').length).equals(1); - assume(ee.listeners('bar').length).equals(1); - assume(ee.listeners('baz').length).equals(1); - - ultron.remove('foo', 'bar'); - - assume(ee.listeners('foo').length).equals(0); - assume(ee.listeners('bar').length).equals(0); - assume(ee.listeners('baz').length).equals(1); - }); - - it('removes multiple listeners if first arg is seperated string', function () { - function foo() {} - function bar() {} - function baz() {} - - ultron.on('foo', foo); - ultron.on('bar', bar); - ultron.on('baz', baz); - - assume(ee.listeners('foo').length).equals(1); - assume(ee.listeners('bar').length).equals(1); - assume(ee.listeners('baz').length).equals(1); - - ultron.remove('foo, bar'); - - assume(ee.listeners('foo').length).equals(0); - assume(ee.listeners('bar').length).equals(0); - assume(ee.listeners('baz').length).equals(1); - }); - }); - - describe('#destroy', function () { - it('removes all listeners', function () { - function foo() {} - function bar() {} - function baz() {} - - ultron.on('foo', foo); - ultron.on('bar', bar); - ultron.on('baz', baz); - - assume(ee.listeners('foo').length).equals(1); - assume(ee.listeners('bar').length).equals(1); - assume(ee.listeners('baz').length).equals(1); - - ultron.destroy(); - - assume(ee.listeners('foo').length).equals(0); - assume(ee.listeners('bar').length).equals(0); - assume(ee.listeners('baz').length).equals(0); - }); - - it('removes the .ee reference', function () { - assume(ultron.ee).equals(ee); - ultron.destroy(); - assume(ultron.ee).equals(null); - }); - - it('returns booleans for state indication', function () { - assume(ultron.destroy()).is.true(); - assume(ultron.destroy()).is.false(); - assume(ultron.destroy()).is.false(); - assume(ultron.destroy()).is.false(); - }); - }); -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/package.json deleted file mode 100644 index 087c590d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/node_modules/ws/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "author": { - "name": "Einar Otto Stangvik", - "email": "einaros@gmail.com", - "url": "http://2x.io" - }, - "name": "ws", - "description": "simple to use, blazing fast and thoroughly tested websocket client, server and console for node.js, up-to-date against RFC-6455", - "version": "1.1.0", - "license": "MIT", - "main": "index.js", - "keywords": [ - "Hixie", - "HyBi", - "Push", - "RFC-6455", - "WebSocket", - "WebSockets", - "real-time" - ], - "repository": { - "type": "git", - "url": "git://github.com/websockets/ws.git" - }, - "scripts": { - "test": "make test" - }, - "dependencies": { - "options": ">=0.0.5", - "ultron": "1.0.x" - }, - "devDependencies": { - "ansi": "0.3.x", - "benchmark": "0.3.x", - "bufferutil": "1.2.x", - "expect.js": "0.3.x", - "istanbul": "^0.4.1", - "mocha": "2.3.x", - "should": "8.0.x", - "tinycolor": "0.0.x", - "utf-8-validate": "1.2.x" - }, - "gypfile": true, - "gitHead": "4263f26d4dbe27e781c41a1ddfe3dab87dd9e1dc", - "bugs": { - "url": "https://github.com/websockets/ws/issues" - }, - "homepage": "https://github.com/websockets/ws#readme", - "_id": "ws@1.1.0", - "_shasum": "c1d6fd1515d3ceff1f0ae2759bf5fd77030aad1d", - "_from": "ws@1.1.0", - "_npmVersion": "3.8.0", - "_nodeVersion": "4.3.1", - "_npmUser": { - "name": "3rdeden", - "email": "npm@3rd-Eden.com" - }, - "maintainers": [ - { - "name": "einaros", - "email": "einaros@gmail.com" - }, - { - "name": "v1", - "email": "info@3rd-Eden.com" - }, - { - "name": "3rdeden", - "email": "npm@3rd-Eden.com" - } - ], - "dist": { - "shasum": "c1d6fd1515d3ceff1f0ae2759bf5fd77030aad1d", - "tarball": "https://registry.npmjs.org/ws/-/ws-1.1.0.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/ws-1.1.0.tgz_1460376022305_0.992860296042636" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ws/-/ws-1.1.0.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/package.json deleted file mode 100644 index 4101463b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/engine.io/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "name": "engine.io", - "version": "1.6.11", - "description": "The realtime engine behind Socket.IO. Provides the foundation of a bidirectional connection between client and server", - "main": "./lib/engine.io", - "author": { - "name": "Guillermo Rauch", - "email": "guillermo@learnboost.com" - }, - "homepage": "https://github.com/socketio/engine.io", - "contributors": [ - { - "name": "Eugen Dueck", - "url": "https://github.com/EugenDueck" - }, - { - "name": "Afshin Mehrabani", - "url": "https://github.com/afshinm" - }, - { - "name": "Christoph Dorn", - "url": "https://github.com/cadorn" - }, - { - "name": "Mark Mokryn", - "email": "mokesmokes@gmail.com" - } - ], - "license": "MIT", - "dependencies": { - "base64id": "0.1.0", - "debug": "2.2.0", - "ws": "1.1.0", - "engine.io-parser": "1.2.4", - "accepts": "1.1.4" - }, - "devDependencies": { - "engine.io-client": "1.6.11", - "expect.js": "0.2.0", - "mocha": "2.3.4", - "s": "0.1.1", - "superagent": "0.15.4" - }, - "scripts": { - "test": "make test" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/socketio/engine.io.git" - }, - "gitHead": "10c4360bde25271279d5b1250327a7db68a1532d", - "bugs": { - "url": "https://github.com/socketio/engine.io/issues" - }, - "_id": "engine.io@1.6.11", - "_shasum": "2533a97a65876c40ffcf95397b7ef9b495c423fe", - "_from": "engine.io@1.6.11", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.9.1", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "dist": { - "shasum": "2533a97a65876c40ffcf95397b7ef9b495c423fe", - "tarball": "https://registry.npmjs.org/engine.io/-/engine.io-1.6.11.tgz" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/engine.io-1.6.11.tgz_1466734218879_0.13038815814070404" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.6.11.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/.npmignore deleted file mode 100644 index a72b52eb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/.npmignore +++ /dev/null @@ -1,15 +0,0 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz - -pids -logs -results - -npm-debug.log -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/History.md deleted file mode 100644 index 9a5f2e8a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/History.md +++ /dev/null @@ -1,19 +0,0 @@ - -0.1.7 / 2015-11-18 -================== - - * fix toJSON [@jderuere] - * fix `global.isBuffer` usage [@tonetheman] - * fix tests on modern versions of node - * bump mocha - -0.1.6 / 2015-01-24 -================== - - * fix "undefined function" bug when iterating - an object created with Object.create(null) [gunta] - -0.1.5 / 2014-09-04 -================== - - * prevent browserify from bundling `Buffer` diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/LICENSE deleted file mode 100644 index e6603cdf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Kevin Roark - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/Makefile deleted file mode 100644 index 1d90629d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/Makefile +++ /dev/null @@ -1,3 +0,0 @@ - -test: - @./node_modules/.bin/mocha test.js diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/README.md deleted file mode 100644 index 76a00356..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/README.md +++ /dev/null @@ -1,4 +0,0 @@ -has-binarydata.js -================= - -Simple module to test if an object contains binary data diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/index.js deleted file mode 100644 index 434ccfae..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/index.js +++ /dev/null @@ -1,59 +0,0 @@ - -/* - * Module requirements. - */ - -var isArray = require('isarray'); - -/** - * Module exports. - */ - -module.exports = hasBinary; - -/** - * Checks for binary data. - * - * Right now only Buffer and ArrayBuffer are supported.. - * - * @param {Object} anything - * @api public - */ - -function hasBinary(data) { - - function _hasBinary(obj) { - if (!obj) return false; - - if ( (global.Buffer && global.Buffer.isBuffer && global.Buffer.isBuffer(obj)) || - (global.ArrayBuffer && obj instanceof ArrayBuffer) || - (global.Blob && obj instanceof Blob) || - (global.File && obj instanceof File) - ) { - return true; - } - - if (isArray(obj)) { - for (var i = 0; i < obj.length; i++) { - if (_hasBinary(obj[i])) { - return true; - } - } - } else if (obj && 'object' == typeof obj) { - // see: https://github.com/Automattic/has-binary/pull/4 - if (obj.toJSON && 'function' == typeof obj.toJSON) { - obj = obj.toJSON(); - } - - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key) && _hasBinary(obj[key])) { - return true; - } - } - } - - return false; - } - - return _hasBinary(data); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/README.md deleted file mode 100644 index 052a62b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/README.md +++ /dev/null @@ -1,54 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/build/build.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/build/build.js deleted file mode 100644 index ec58596a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/build/build.js +++ /dev/null @@ -1,209 +0,0 @@ - -/** - * Require the given path. - * - * @param {String} path - * @return {Object} exports - * @api public - */ - -function require(path, parent, orig) { - var resolved = require.resolve(path); - - // lookup failed - if (null == resolved) { - orig = orig || path; - parent = parent || 'root'; - var err = new Error('Failed to require "' + orig + '" from "' + parent + '"'); - err.path = orig; - err.parent = parent; - err.require = true; - throw err; - } - - var module = require.modules[resolved]; - - // perform real require() - // by invoking the module's - // registered function - if (!module.exports) { - module.exports = {}; - module.client = module.component = true; - module.call(this, module.exports, require.relative(resolved), module); - } - - return module.exports; -} - -/** - * Registered modules. - */ - -require.modules = {}; - -/** - * Registered aliases. - */ - -require.aliases = {}; - -/** - * Resolve `path`. - * - * Lookup: - * - * - PATH/index.js - * - PATH.js - * - PATH - * - * @param {String} path - * @return {String} path or null - * @api private - */ - -require.resolve = function(path) { - if (path.charAt(0) === '/') path = path.slice(1); - var index = path + '/index.js'; - - var paths = [ - path, - path + '.js', - path + '.json', - path + '/index.js', - path + '/index.json' - ]; - - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - if (require.modules.hasOwnProperty(path)) return path; - } - - if (require.aliases.hasOwnProperty(index)) { - return require.aliases[index]; - } -}; - -/** - * Normalize `path` relative to the current path. - * - * @param {String} curr - * @param {String} path - * @return {String} - * @api private - */ - -require.normalize = function(curr, path) { - var segs = []; - - if ('.' != path.charAt(0)) return path; - - curr = curr.split('/'); - path = path.split('/'); - - for (var i = 0; i < path.length; ++i) { - if ('..' == path[i]) { - curr.pop(); - } else if ('.' != path[i] && '' != path[i]) { - segs.push(path[i]); - } - } - - return curr.concat(segs).join('/'); -}; - -/** - * Register module at `path` with callback `definition`. - * - * @param {String} path - * @param {Function} definition - * @api private - */ - -require.register = function(path, definition) { - require.modules[path] = definition; -}; - -/** - * Alias a module definition. - * - * @param {String} from - * @param {String} to - * @api private - */ - -require.alias = function(from, to) { - if (!require.modules.hasOwnProperty(from)) { - throw new Error('Failed to alias "' + from + '", it does not exist'); - } - require.aliases[to] = from; -}; - -/** - * Return a require function relative to the `parent` path. - * - * @param {String} parent - * @return {Function} - * @api private - */ - -require.relative = function(parent) { - var p = require.normalize(parent, '..'); - - /** - * lastIndexOf helper. - */ - - function lastIndexOf(arr, obj) { - var i = arr.length; - while (i--) { - if (arr[i] === obj) return i; - } - return -1; - } - - /** - * The relative require() itself. - */ - - function localRequire(path) { - var resolved = localRequire.resolve(path); - return require(resolved, parent, path); - } - - /** - * Resolve relative to the parent. - */ - - localRequire.resolve = function(path) { - var c = path.charAt(0); - if ('/' == c) return path.slice(1); - if ('.' == c) return require.normalize(p, path); - - // resolve deps by returning - // the dep in the nearest "deps" - // directory - var segs = parent.split('/'); - var i = lastIndexOf(segs, 'deps') + 1; - if (!i) i = 0; - path = segs.slice(0, i + 1).join('/') + '/deps/' + path; - return path; - }; - - /** - * Check if module is defined at `path`. - */ - - localRequire.exists = function(path) { - return require.modules.hasOwnProperty(localRequire.resolve(path)); - }; - - return localRequire; -}; -require.register("isarray/index.js", function(exports, require, module){ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; - -}); -require.alias("isarray/index.js", "isarray/index.js"); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/component.json deleted file mode 100644 index 9e31b683..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/index.js deleted file mode 100644 index 5f5ad45d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/index.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/package.json deleted file mode 100644 index 060e073f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "isarray", - "description": "Array#isArray for older browsers", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "homepage": "https://github.com/juliangruber/isarray", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": {}, - "devDependencies": { - "tap": "*" - }, - "keywords": [ - "browser", - "isarray", - "array" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "_id": "isarray@0.0.1", - "dist": { - "shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "tarball": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "_from": "isarray@0.0.1", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "directories": {}, - "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" - }, - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/package.json deleted file mode 100644 index 7766e6c9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "has-binary", - "version": "0.1.7", - "description": "A function that takes anything in javascript and returns true if its argument contains binary data.", - "dependencies": { - "isarray": "0.0.1" - }, - "devDependencies": { - "better-assert": "1.0.0", - "mocha": "2.3.4" - }, - "author": { - "name": "Kevin Roark" - }, - "license": "MIT", - "gitHead": "73875a20978a219f726f7d313ccd1de19335f5a1", - "_id": "has-binary@0.1.7", - "scripts": {}, - "_shasum": "68e61eb16210c9545a0a5cce06a873912fe1e68c", - "_from": "has-binary@0.1.7", - "_npmVersion": "2.14.7", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "68e61eb16210c9545a0a5cce06a873912fe1e68c", - "tarball": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/test.js deleted file mode 100644 index c6bd5aa5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/has-binary/test.js +++ /dev/null @@ -1,73 +0,0 @@ - -var hasBinary = require('./'); -var assert = require('better-assert'); -var fs = require('fs'); - -describe('has-binarydata', function(){ - - it('should work with buffer', function(){ - assert(hasBinary(fs.readFileSync('./test.js'))); - }); - - it('should work with an array that does not contain binary', function() { - var arr = [1, 'cool', 2]; - assert(!hasBinary(arr)); - }); - - it('should work with an array that contains a buffer', function() { - var arr = [1, new Buffer('asdfasdf', 'utf8'), 2]; - assert(hasBinary(arr)); - }); - - it('should work with an object that does not contain binary', function() { - var ob = {a: 'a', b: [], c: 1234, toJSON: '{\"a\": \"a\"}'}; - assert(!hasBinary(ob)); - }); - - it('should work with an object that contains a buffer', function() { - var ob = {a: 'a', b: new Buffer('abc'), c: 1234, toJSON: '{\"a\": \"a\"}'}; - assert(hasBinary(ob)); - }); - - it('should work with null', function() { - assert(!hasBinary(null)); - }); - - it('should work with undefined', function() { - assert(!hasBinary(undefined)); - }); - - it('should work with a complex object that contains undefined and no binary', function() { - var ob = { - x: ['a', 'b', 123], - y: undefined, - z: {a: 'x', b: 'y', c: 3, d: null}, - w: [] - }; - assert(!hasBinary(ob)); - }); - - it('should work with a complex object that contains undefined and binary', function() { - var ob = { - x: ['a', 'b', 123], - y: undefined, - z: {a: 'x', b: 'y', c: 3, d: null}, - w: [], - bin: new Buffer('xxx') - }; - assert(hasBinary(ob)); - }); - - if (global.ArrayBuffer) { - it('should work with an ArrayBuffer', function() { - assert(hasBinary(new ArrayBuffer())); - }); - } - - if (global.Blob) { - it('should work with a Blob', function() { - assert(hasBinary(new Blob())); - }); - } - -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/History.md deleted file mode 100644 index 02abe950..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/History.md +++ /dev/null @@ -1,33 +0,0 @@ - -0.4.0 / 2015-12-03 -================== - - * package: bump `debug` - * use a `Room` class to efficiently track room size - * allow `clients(fn)` - * call the callback on `delAll` - -0.3.1 / 2014-10-27 -================== - - * bump parser version - * fix room autopruning - * add autoprunning of empty rooms - * rooms are now created as objects - * added the repository field. - * updated the debug dependency. - -0.3.0 / 2014-05-30 -================== - - * bump `socket.io-parser` for binary ack fix - -0.2.0 / 2014-03-14 -================== - - * upgraded faster parser - -0.1.0 / 2014-03-07 -================== - - * initial commit diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/LICENSE deleted file mode 100644 index 7e43606b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Guillermo Rauch - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/Readme.md deleted file mode 100644 index bcef6531..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/Readme.md +++ /dev/null @@ -1,16 +0,0 @@ - -# socket.io-adapter - -Default socket.io in-memory adapter class. - -## How to use - -This module is not intended for end-user usage, but can be used as an -interface to inheirt from from other adapters you might want to build. - -As an example of an adapter that builds on top of this, please take a look -at [socket.io-redis](https://github.com/learnboost/socket.io-redis). - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/index.js deleted file mode 100644 index d5e2201a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/index.js +++ /dev/null @@ -1,236 +0,0 @@ - -/** - * Module dependencies. - */ - -var Emitter = require('events').EventEmitter; -var parser = require('socket.io-parser'); - -/** - * Module exports. - */ - -module.exports = Adapter; - -/** - * Memory adapter constructor. - * - * @param {Namespace} nsp - * @api public - */ - -function Adapter(nsp){ - this.nsp = nsp; - this.rooms = {}; - this.sids = {}; - this.encoder = new parser.Encoder(); -} - -/** - * Inherits from `EventEmitter`. - */ - -Adapter.prototype.__proto__ = Emitter.prototype; - -/** - * Adds a socket to a room. - * - * @param {String} socket id - * @param {String} room name - * @param {Function} callback - * @api public - */ - -Adapter.prototype.add = function(id, room, fn){ - this.sids[id] = this.sids[id] || {}; - this.sids[id][room] = true; - this.rooms[room] = this.rooms[room] || Room(); - this.rooms[room].add(id); - if (fn) process.nextTick(fn.bind(null, null)); -}; - -/** - * Removes a socket from a room. - * - * @param {String} socket id - * @param {String} room name - * @param {Function} callback - * @api public - */ - -Adapter.prototype.del = function(id, room, fn){ - this.sids[id] = this.sids[id] || {}; - delete this.sids[id][room]; - if (this.rooms.hasOwnProperty(room)) { - this.rooms[room].del(id); - if (this.rooms[room].length === 0) delete this.rooms[room]; - } - - if (fn) process.nextTick(fn.bind(null, null)); -}; - -/** - * Removes a socket from all rooms it's joined. - * - * @param {String} socket id - * @param {Function} callback - * @api public - */ - -Adapter.prototype.delAll = function(id, fn){ - var rooms = this.sids[id]; - if (rooms) { - for (var room in rooms) { - if (this.rooms.hasOwnProperty(room)) { - this.rooms[room].del(id); - if (this.rooms[room].length === 0) delete this.rooms[room]; - } - } - } - delete this.sids[id]; - - if (fn) process.nextTick(fn.bind(null, null)); -}; - -/** - * Broadcasts a packet. - * - * Options: - * - `flags` {Object} flags for this packet - * - `except` {Array} sids that should be excluded - * - `rooms` {Array} list of rooms to broadcast to - * - * @param {Object} packet object - * @api public - */ - -Adapter.prototype.broadcast = function(packet, opts){ - var rooms = opts.rooms || []; - var except = opts.except || []; - var flags = opts.flags || {}; - var packetOpts = { - preEncoded: true, - volatile: flags.volatile, - compress: flags.compress - }; - var ids = {}; - var self = this; - var socket; - - packet.nsp = this.nsp.name; - this.encoder.encode(packet, function(encodedPackets) { - if (rooms.length) { - for (var i = 0; i < rooms.length; i++) { - var room = self.rooms[rooms[i]]; - if (!room) continue; - var sockets = room.sockets; - for (var id in sockets) { - if (sockets.hasOwnProperty(id)) { - if (ids[id] || ~except.indexOf(id)) continue; - socket = self.nsp.connected[id]; - if (socket) { - socket.packet(encodedPackets, packetOpts); - ids[id] = true; - } - } - } - } - } else { - for (var id in self.sids) { - if (self.sids.hasOwnProperty(id)) { - if (~except.indexOf(id)) continue; - socket = self.nsp.connected[id]; - if (socket) socket.packet(encodedPackets, packetOpts); - } - } - } - }); -}; - -/** - * Gets a list of clients by sid. - * - * @param {Array} explicit set of rooms to check. - * @api public - */ - -Adapter.prototype.clients = function(rooms, fn){ - if ('function' == typeof rooms){ - fn = rooms; - rooms = null; - } - - rooms = rooms || []; - - var ids = {}; - var self = this; - var sids = []; - var socket; - - if (rooms.length) { - for (var i = 0; i < rooms.length; i++) { - var room = self.rooms[rooms[i]]; - if (!room) continue; - var sockets = room.sockets; - for (var id in sockets) { - if (sockets.hasOwnProperty(id)) { - if (ids[id]) continue; - socket = self.nsp.connected[id]; - if (socket) { - sids.push(id); - ids[id] = true; - } - } - } - } - } else { - for (var id in self.sids) { - if (self.sids.hasOwnProperty(id)) { - socket = self.nsp.connected[id]; - if (socket) sids.push(id); - } - } - } - - if (fn) process.nextTick(fn.bind(null, null, sids)); -}; - -/** -* Room constructor. -* -* @api private -*/ - -function Room(){ - if (!(this instanceof Room)) return new Room(); - this.sockets = {}; - this.length = 0; -} - -/** - * Adds a socket to a room. - * - * @param {String} socket id - * @api private - */ - -Room.prototype.add = function(id){ - if (!this.sockets.hasOwnProperty(id)) { - this.sockets[id] = true; - this.length++; - } -}; - -/** - * Removes a socket from a room. - * - * @param {String} socket id - * @api private - */ - -Room.prototype.del = function(id){ - if (this.sockets.hasOwnProperty(id)) { - delete this.sockets[id]; - this.length--; - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.npmignore deleted file mode 100644 index 7fbb06ff..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules -build -components - -test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.travis.yml deleted file mode 100644 index c1c830af..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: node_js -node_js: - - 0.10 -notifications: - irc: irc.freenode.org##socket.io -git: - depth: 1 -env: - global: - - secure: 28HHk1J0H64KNjzmmlxG/Ro0EPuLnhO0rU+kZjjthDHj/FaugIsqjAVQ1Dl6heWV2/MlVzw6nDCyMNiGwiVk0ruZPQ0SYdAKLplrdMtzAihbU3xx+ULFQPLM3SoW0ZFCEpe8dWPGy4WdgW7aLByeel9TJb3vlhAu7p7AvrcO7Fs= - - secure: rKEG0Cfw0vkw8thk63RHYG7h8XWYcBlvZ0w1IWpr2dAfnnLMi1palSTrBrFQc77flk7rN00zGIe76FhKydV9r4WWYAUYKPqo4k+9/FkpzjZlNtL49QRoNwC9jmJ8OeUwGowA13gZPyl/5P13wVaKCB0YrKnzz5LHo3Sp7So6J8U= diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.zuul.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.zuul.yml deleted file mode 100644 index 38bc342e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.zuul.yml +++ /dev/null @@ -1,16 +0,0 @@ -ui: mocha-bdd -browsers: - - name: chrome - version: 29..latest - - name: firefox - version: latest - - name: safari - version: latest - - name: ie - version: 10 - platform: Windows 2012 - - name: ie - version: 9 - version: [6..9, latest] - - name: iphone - version: oldest..latest diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/History.md deleted file mode 100644 index 3563380f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/History.md +++ /dev/null @@ -1,87 +0,0 @@ - -2.2.2 / 2014-09-04 -================== - - * prevent direct `Buffer` reference that breaks browserify - * binary: reuse `isBuf` helper - -2.2.1 / 2014-06-20 -================== - - * added benchmarking [kevin-roark] - * upgrade component-emitter to 1.1.2 [kevin-roark] - * update protocol version [kevin-roark] - * less indentation and a small optimization [kevin-roark] - -2.2.0 / 2014-05-30 -================== - - * added a BINARY_ACK type [kevin-roark] - -2.1.5 / 2014-05-24 -================== - - * don't iterate keys of `Date` objects [Rase-] - -2.1.4 / 2014-05-17 -================== - - * fix null reconstruction bug [kevin-roark] - -2.1.3 / 2014-04-27 -================== - - * bump zuul version - * updated protocol version - -2.1.2 / 2014-03-06 -================== - - * added support for binary in ACK packets - -2.1.1 / 2014-03-04 -================== - - * removed has-binary-data dependency - * fixed the object check in binary.removeBlobs - -2.1.0 / 2014-03-01 -================== - - * faster and smaller binary parser and protocol [kevin-roark] - -2.0.0 / 2014-02-19 -================== - - * binary support [kevin-roark] - -1.1.2 / 2014-02-11 -================== - - * package: bump `json3` to fix IE6-7 - -1.1.1 / 2014-02-10 -================== - - * package: bump debug to fix browserify issues - -1.1.0 / 2013-12-25 -================== - - * index: use `json3` - -1.0.3 / 2012-12-18 -================== - - * index: added instrumentation through `debug` - * index: make sure decoded `id` is a `Number` - -1.0.2 / 2012-12-18 -================== - - * index: allow for falsy values in `id` and `data` - -1.0.1 / 2012-12-10 -================== - - * Revision 1 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/Makefile deleted file mode 100644 index ee0a3b27..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/Makefile +++ /dev/null @@ -1,11 +0,0 @@ - -REPORTER = dot - -test: - @./node_modules/.bin/mocha \ - --reporter $(REPORTER) \ - --bail \ - test/index.js - @./node_modules/.bin/zuul -- test/index.js - -.PHONY: test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/Readme.md deleted file mode 100644 index 2fa0f82d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/Readme.md +++ /dev/null @@ -1,73 +0,0 @@ - -# socket.io-parser - -[![Build Status](https://secure.travis-ci.org/Automattic/socket.io-parser.svg)](http://travis-ci.org/Automattic/socket.io-parser) -[![NPM version](https://badge.fury.io/js/socket.io-parser.svg)](http://badge.fury.io/js/socket.io-parser) - -A socket.io encoder and decoder written in JavaScript complying with version `3` -of [socket.io-protocol](https://github.com/learnboost/socket.io-protocol). -Used by [socket.io](https://github.com/learnboost/socket.io) and -[socket.io-client](https://github.com/learnboost/socket.io-client). - -## Parser API - - socket.io-parser is the reference implementation of socket.io-protocol. Read - the full API here: - [socket.io-protocol](https://github.com/learnboost/socket.io-protocol). - -## Example Usage - -### Encoding and decoding a packet - -```js -var parser = require('socket.io-parser'); -var encoder = new parser.Encoder(); -var packet = { - type: parser.EVENT, - data: 'test-packet', - id: 13 -}; -encoder.encode(packet, function(encodedPackets) { - var decoder = new parser.Decoder(); - decoder.on('decoded', function(decodedPacket) { - // decodedPacket.type == parser.EVENT - // decodedPacket.data == 'test-packet' - // decodedPacket.id == 13 - }); - - for (var i = 0; i < encodedPackets.length; i++) { - decoder.add(encodedPackets[i]); - } -}); -``` - -### Encoding and decoding a packet with binary data - -```js -var parser = require('socket.io-parser'); -var encoder = new parser.Encoder(); -var packet = { - type: parser.BINARY_EVENT, - data: {i: new Buffer(1234), j: new Blob([new ArrayBuffer(2)])} - id: 15 -}; -encoder.encode(packet, function(encodedPackets) { - var decoder = new parser.Decoder(); - decoder.on('decoded', function(decodedPacket) { - // decodedPacket.type == parser.BINARY_EVENTEVENT - // Buffer.isBuffer(decodedPacket.data.i) == true - // Buffer.isBuffer(decodedPacket.data.j) == true - // decodedPacket.id == 15 - }); - - for (var i = 0; i < encodedPackets.length; i++) { - decoder.add(encodedPackets[i]); - } -}); -``` -See the test suite for more examples of how socket.io-parser is used. - - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/bench/bench.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/bench/bench.js deleted file mode 100644 index d767d5a7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/bench/bench.js +++ /dev/null @@ -1,10 +0,0 @@ -var bencher = require('./index'); -bencher(function(benchmark) { - function logMean(test) { - console.log(test.name + ' mean run time: ' + test.stats.mean); - } - - for (var i = 0; i < benchmark.length; i++) { - logMean(benchmark[i]); - } -}); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/bench/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/bench/index.js deleted file mode 100644 index 8c1994e0..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/bench/index.js +++ /dev/null @@ -1,81 +0,0 @@ -var Benchmark = require('benchmark'); -var parser = require('../index'); - -function test(packet, deferred) { - var encoder = new parser.Encoder(); - var decoder = new parser.Decoder(); - encoder.encode(packet, function(encodedPackets) { - var decoder = new parser.Decoder(); - decoder.on('decoded', function(packet) { - deferred.resolve(); - }); - - decoder.add(encodedPackets[0]); - }); -} - -var dataObject = { - 'a': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], - 'b': 'xxxyyyzzzalsdfalskdjfalksdjfalksdjfalksdjfjjfjfjfjjfjfjfj', - 'data': { - 'is': 'cool', - 'or': { - 'is': { - 'it': true - } - } - } -}; -var bigArray = []; -for (var i = 0; i < 250; i++) { - bigArray.push(dataObject); -} - - - -module.exports = function(callback) { - var suite = new Benchmark.Suite(); - - suite.add('small json parse', {defer: true, fn: function(deferred) { - var packet = { - type: parser.EVENT, - nsp: '/bench', - data: dataObject - }; - test(packet, deferred); - }}) - .add('big json parse', {defer: true, fn: function(deferred) { - var packet = { - type: parser.EVENT, - nsp: '/bench', - data: bigArray - }; - test(packet, deferred); - }}) - .add('json with small binary parse', {defer: true, fn: function(deferred) { - var packet = { - type: parser.EVENT, - nsp: '/bench', - data: {'a': [1, 2, 3], 'b': 'xxxyyyzzz', 'data': new Buffer(1000)} - }; - test(packet, deferred); - }}) - .add('json with big binary parse', {defer: true, fn: function(deferred) { - var bigBinaryData = { - bin1: new Buffer(10000), - arr: bigArray, - bin2: new Buffer(10000), - bin3: new Buffer(10000) - }; - var packet = { - type: parser.EVENT, - nsp: '/bench', - data: bigBinaryData - }; - test(packet, deferred); - }}) - .on('complete', function() { - callback(this); - }) - .run({'async': true}); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/binary.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/binary.js deleted file mode 100644 index b31f40cf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/binary.js +++ /dev/null @@ -1,141 +0,0 @@ -/*global Blob,File*/ - -/** - * Module requirements - */ - -var isArray = require('isarray'); -var isBuf = require('./is-buffer'); - -/** - * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder. - * Anything with blobs or files should be fed through removeBlobs before coming - * here. - * - * @param {Object} packet - socket.io event packet - * @return {Object} with deconstructed packet and list of buffers - * @api public - */ - -exports.deconstructPacket = function(packet){ - var buffers = []; - var packetData = packet.data; - - function _deconstructPacket(data) { - if (!data) return data; - - if (isBuf(data)) { - var placeholder = { _placeholder: true, num: buffers.length }; - buffers.push(data); - return placeholder; - } else if (isArray(data)) { - var newData = new Array(data.length); - for (var i = 0; i < data.length; i++) { - newData[i] = _deconstructPacket(data[i]); - } - return newData; - } else if ('object' == typeof data && !(data instanceof Date)) { - var newData = {}; - for (var key in data) { - newData[key] = _deconstructPacket(data[key]); - } - return newData; - } - return data; - } - - var pack = packet; - pack.data = _deconstructPacket(packetData); - pack.attachments = buffers.length; // number of binary 'attachments' - return {packet: pack, buffers: buffers}; -}; - -/** - * Reconstructs a binary packet from its placeholder packet and buffers - * - * @param {Object} packet - event packet with placeholders - * @param {Array} buffers - binary buffers to put in placeholder positions - * @return {Object} reconstructed packet - * @api public - */ - -exports.reconstructPacket = function(packet, buffers) { - var curPlaceHolder = 0; - - function _reconstructPacket(data) { - if (data && data._placeholder) { - var buf = buffers[data.num]; // appropriate buffer (should be natural order anyway) - return buf; - } else if (isArray(data)) { - for (var i = 0; i < data.length; i++) { - data[i] = _reconstructPacket(data[i]); - } - return data; - } else if (data && 'object' == typeof data) { - for (var key in data) { - data[key] = _reconstructPacket(data[key]); - } - return data; - } - return data; - } - - packet.data = _reconstructPacket(packet.data); - packet.attachments = undefined; // no longer useful - return packet; -}; - -/** - * Asynchronously removes Blobs or Files from data via - * FileReader's readAsArrayBuffer method. Used before encoding - * data as msgpack. Calls callback with the blobless data. - * - * @param {Object} data - * @param {Function} callback - * @api private - */ - -exports.removeBlobs = function(data, callback) { - function _removeBlobs(obj, curKey, containingObject) { - if (!obj) return obj; - - // convert any blob - if ((global.Blob && obj instanceof Blob) || - (global.File && obj instanceof File)) { - pendingBlobs++; - - // async filereader - var fileReader = new FileReader(); - fileReader.onload = function() { // this.result == arraybuffer - if (containingObject) { - containingObject[curKey] = this.result; - } - else { - bloblessData = this.result; - } - - // if nothing pending its callback time - if(! --pendingBlobs) { - callback(bloblessData); - } - }; - - fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer - } else if (isArray(obj)) { // handle array - for (var i = 0; i < obj.length; i++) { - _removeBlobs(obj[i], i, obj); - } - } else if (obj && 'object' == typeof obj && !isBuf(obj)) { // and object - for (var key in obj) { - _removeBlobs(obj[key], key, obj); - } - } - } - - var pendingBlobs = 0; - var bloblessData = data; - _removeBlobs(bloblessData); - if (!pendingBlobs) { - callback(bloblessData); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/index.js deleted file mode 100644 index 378c4ddf..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/index.js +++ /dev/null @@ -1,396 +0,0 @@ - -/** - * Module dependencies. - */ - -var debug = require('debug')('socket.io-parser'); -var json = require('json3'); -var isArray = require('isarray'); -var Emitter = require('component-emitter'); -var binary = require('./binary'); -var isBuf = require('./is-buffer'); - -/** - * Protocol version. - * - * @api public - */ - -exports.protocol = 4; - -/** - * Packet types. - * - * @api public - */ - -exports.types = [ - 'CONNECT', - 'DISCONNECT', - 'EVENT', - 'BINARY_EVENT', - 'ACK', - 'BINARY_ACK', - 'ERROR' -]; - -/** - * Packet type `connect`. - * - * @api public - */ - -exports.CONNECT = 0; - -/** - * Packet type `disconnect`. - * - * @api public - */ - -exports.DISCONNECT = 1; - -/** - * Packet type `event`. - * - * @api public - */ - -exports.EVENT = 2; - -/** - * Packet type `ack`. - * - * @api public - */ - -exports.ACK = 3; - -/** - * Packet type `error`. - * - * @api public - */ - -exports.ERROR = 4; - -/** - * Packet type 'binary event' - * - * @api public - */ - -exports.BINARY_EVENT = 5; - -/** - * Packet type `binary ack`. For acks with binary arguments. - * - * @api public - */ - -exports.BINARY_ACK = 6; - -/** - * Encoder constructor. - * - * @api public - */ - -exports.Encoder = Encoder; - -/** - * Decoder constructor. - * - * @api public - */ - -exports.Decoder = Decoder; - -/** - * A socket.io Encoder instance - * - * @api public - */ - -function Encoder() {} - -/** - * Encode a packet as a single string if non-binary, or as a - * buffer sequence, depending on packet type. - * - * @param {Object} obj - packet object - * @param {Function} callback - function to handle encodings (likely engine.write) - * @return Calls callback with Array of encodings - * @api public - */ - -Encoder.prototype.encode = function(obj, callback){ - debug('encoding packet %j', obj); - - if (exports.BINARY_EVENT == obj.type || exports.BINARY_ACK == obj.type) { - encodeAsBinary(obj, callback); - } - else { - var encoding = encodeAsString(obj); - callback([encoding]); - } -}; - -/** - * Encode packet as string. - * - * @param {Object} packet - * @return {String} encoded - * @api private - */ - -function encodeAsString(obj) { - var str = ''; - var nsp = false; - - // first is type - str += obj.type; - - // attachments if we have them - if (exports.BINARY_EVENT == obj.type || exports.BINARY_ACK == obj.type) { - str += obj.attachments; - str += '-'; - } - - // if we have a namespace other than `/` - // we append it followed by a comma `,` - if (obj.nsp && '/' != obj.nsp) { - nsp = true; - str += obj.nsp; - } - - // immediately followed by the id - if (null != obj.id) { - if (nsp) { - str += ','; - nsp = false; - } - str += obj.id; - } - - // json data - if (null != obj.data) { - if (nsp) str += ','; - str += json.stringify(obj.data); - } - - debug('encoded %j as %s', obj, str); - return str; -} - -/** - * Encode packet as 'buffer sequence' by removing blobs, and - * deconstructing packet into object with placeholders and - * a list of buffers. - * - * @param {Object} packet - * @return {Buffer} encoded - * @api private - */ - -function encodeAsBinary(obj, callback) { - - function writeEncoding(bloblessData) { - var deconstruction = binary.deconstructPacket(bloblessData); - var pack = encodeAsString(deconstruction.packet); - var buffers = deconstruction.buffers; - - buffers.unshift(pack); // add packet info to beginning of data list - callback(buffers); // write all the buffers - } - - binary.removeBlobs(obj, writeEncoding); -} - -/** - * A socket.io Decoder instance - * - * @return {Object} decoder - * @api public - */ - -function Decoder() { - this.reconstructor = null; -} - -/** - * Mix in `Emitter` with Decoder. - */ - -Emitter(Decoder.prototype); - -/** - * Decodes an ecoded packet string into packet JSON. - * - * @param {String} obj - encoded packet - * @return {Object} packet - * @api public - */ - -Decoder.prototype.add = function(obj) { - var packet; - if ('string' == typeof obj) { - packet = decodeString(obj); - if (exports.BINARY_EVENT == packet.type || exports.BINARY_ACK == packet.type) { // binary packet's json - this.reconstructor = new BinaryReconstructor(packet); - - // no attachments, labeled binary but no binary data to follow - if (this.reconstructor.reconPack.attachments == 0) { - this.emit('decoded', packet); - } - } else { // non-binary full packet - this.emit('decoded', packet); - } - } - else if (isBuf(obj) || obj.base64) { // raw binary data - if (!this.reconstructor) { - throw new Error('got binary data when not reconstructing a packet'); - } else { - packet = this.reconstructor.takeBinaryData(obj); - if (packet) { // received final buffer - this.reconstructor = null; - this.emit('decoded', packet); - } - } - } - else { - throw new Error('Unknown type: ' + obj); - } -}; - -/** - * Decode a packet String (JSON data) - * - * @param {String} str - * @return {Object} packet - * @api private - */ - -function decodeString(str) { - var p = {}; - var i = 0; - - // look up type - p.type = Number(str.charAt(0)); - if (null == exports.types[p.type]) return error(); - - // look up attachments if type binary - if (exports.BINARY_EVENT == p.type || exports.BINARY_ACK == p.type) { - p.attachments = ''; - while (str.charAt(++i) != '-') { - p.attachments += str.charAt(i); - } - p.attachments = Number(p.attachments); - } - - // look up namespace (if any) - if ('/' == str.charAt(i + 1)) { - p.nsp = ''; - while (++i) { - var c = str.charAt(i); - if (',' == c) break; - p.nsp += c; - if (i + 1 == str.length) break; - } - } else { - p.nsp = '/'; - } - - // look up id - var next = str.charAt(i + 1); - if ('' != next && Number(next) == next) { - p.id = ''; - while (++i) { - var c = str.charAt(i); - if (null == c || Number(c) != c) { - --i; - break; - } - p.id += str.charAt(i); - if (i + 1 == str.length) break; - } - p.id = Number(p.id); - } - - // look up json data - if (str.charAt(++i)) { - try { - p.data = json.parse(str.substr(i)); - } catch(e){ - return error(); - } - } - - debug('decoded %s as %j', str, p); - return p; -} - -/** - * Deallocates a parser's resources - * - * @api public - */ - -Decoder.prototype.destroy = function() { - if (this.reconstructor) { - this.reconstructor.finishedReconstruction(); - } -}; - -/** - * A manager of a binary event's 'buffer sequence'. Should - * be constructed whenever a packet of type BINARY_EVENT is - * decoded. - * - * @param {Object} packet - * @return {BinaryReconstructor} initialized reconstructor - * @api private - */ - -function BinaryReconstructor(packet) { - this.reconPack = packet; - this.buffers = []; -} - -/** - * Method to be called when binary data received from connection - * after a BINARY_EVENT packet. - * - * @param {Buffer | ArrayBuffer} binData - the raw binary data received - * @return {null | Object} returns null if more binary data is expected or - * a reconstructed packet object if all buffers have been received. - * @api private - */ - -BinaryReconstructor.prototype.takeBinaryData = function(binData) { - this.buffers.push(binData); - if (this.buffers.length == this.reconPack.attachments) { // done with buffer list - var packet = binary.reconstructPacket(this.reconPack, this.buffers); - this.finishedReconstruction(); - return packet; - } - return null; -}; - -/** - * Cleans up binary packet reconstruction variables. - * - * @api private - */ - -BinaryReconstructor.prototype.finishedReconstruction = function() { - this.reconPack = null; - this.buffers = []; -}; - -function error(data){ - return { - type: exports.ERROR, - data: 'parser error' - }; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/is-buffer.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/is-buffer.js deleted file mode 100644 index 977df883..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/is-buffer.js +++ /dev/null @@ -1,13 +0,0 @@ - -module.exports = isBuf; - -/** - * Returns true if obj is a buffer or an arraybuffer. - * - * @api private - */ - -function isBuf(obj) { - return (global.Buffer && global.Buffer.isBuffer(obj)) || - (global.ArrayBuffer && obj instanceof ArrayBuffer); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/LICENSE.txt b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/LICENSE.txt deleted file mode 100644 index e33e63f7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright 2010-2012 Mathias Bynens -Based on JSLitmus.js, copyright Robert Kieffer -Modified by John-David Dalton - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/README.md deleted file mode 100644 index a3ab3f84..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/README.md +++ /dev/null @@ -1,131 +0,0 @@ -# Benchmark.js v1.0.0 - -A [robust](http://calendar.perfplanet.com/2010/bulletproof-javascript-benchmarks/ "Bulletproof JavaScript benchmarks") benchmarking library that works on nearly all JavaScript platforms1, supports high-resolution timers, and returns statistically significant results. As seen on [jsPerf](http://jsperf.com/). - -## BestieJS - -Benchmark.js is part of the BestieJS *"Best in Class"* module collection. This means we promote solid browser/environment support, ES5 precedents, unit testing, and plenty of documentation. - -## Documentation - -The documentation for Benchmark.js can be viewed here: - -For a list of upcoming features, check out our [roadmap](https://github.com/bestiejs/benchmark.js/wiki/Roadmap). - -## Support - -Benchmark.js has been tested in at least Adobe AIR 3.1, Chrome 5-21, Firefox 1.5-13, IE 6-9, Opera 9.25-12.01, Safari 3-6, Node.js 0.8.6, Narwhal 0.3.2, RingoJS 0.8, and Rhino 1.7RC5. - -## Installation and usage - -In a browser or Adobe AIR: - -~~~ html - -~~~ - -Optionally, expose Java’s nanosecond timer by adding the `nano` applet to the ``: - -~~~ html - -~~~ - -Or enable Chrome’s microsecond timer by using the [command line switch](http://peter.sh/experiments/chromium-command-line-switches/#enable-benchmarking): - - --enable-benchmarking - -Via [npm](http://npmjs.org/): - -~~~ bash -npm install benchmark -~~~ - -In [Node.js](http://nodejs.org/) and [RingoJS v0.8.0+](http://ringojs.org/): - -~~~ js -var Benchmark = require('benchmark'); -~~~ - -Optionally, use the [microtime module](https://github.com/wadey/node-microtime) by Wade Simmons: - -~~~ bash -npm install microtime -~~~ - -In [RingoJS v0.7.0-](http://ringojs.org/): - -~~~ js -var Benchmark = require('benchmark').Benchmark; -~~~ - -In [Rhino](http://www.mozilla.org/rhino/): - -~~~ js -load('benchmark.js'); -~~~ - -In an AMD loader like [RequireJS](http://requirejs.org/): - -~~~ js -require({ - 'paths': { - 'benchmark': 'path/to/benchmark' - } -}, -['benchmark'], function(Benchmark) { - console.log(Benchmark.version); -}); - -// or with platform.js -// https://github.com/bestiejs/platform.js -require({ - 'paths': { - 'benchmark': 'path/to/benchmark', - 'platform': 'path/to/platform' - } -}, -['benchmark', 'platform'], function(Benchmark, platform) { - Benchmark.platform = platform; - console.log(Benchmark.platform.name); -}); -~~~ - -Usage example: - -~~~ js -var suite = new Benchmark.Suite; - -// add tests -suite.add('RegExp#test', function() { - /o/.test('Hello World!'); -}) -.add('String#indexOf', function() { - 'Hello World!'.indexOf('o') > -1; -}) -// add listeners -.on('cycle', function(event) { - console.log(String(event.target)); -}) -.on('complete', function() { - console.log('Fastest is ' + this.filter('fastest').pluck('name')); -}) -// run async -.run({ 'async': true }); - -// logs: -// > RegExp#test x 4,161,532 +-0.99% (59 cycles) -// > String#indexOf x 6,139,623 +-1.00% (131 cycles) -// > Fastest is String#indexOf -~~~ - -## Authors - -* [Mathias Bynens](http://mathiasbynens.be/) - [![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") -* [John-David Dalton](http://allyoucanleet.com/) - [![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](https://twitter.com/jdalton "Follow @jdalton on Twitter") - -## Contributors - -* [Kit Cambridge](http://kitcambridge.github.com/) - [![twitter/kitcambridge](http://gravatar.com/avatar/6662a1d02f351b5ef2f8b4d815804661?s=70)](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/benchmark.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/benchmark.js deleted file mode 100644 index d8eb3094..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/benchmark.js +++ /dev/null @@ -1,3918 +0,0 @@ -/*! - * Benchmark.js v1.0.0 - * Copyright 2010-2012 Mathias Bynens - * Based on JSLitmus.js, copyright Robert Kieffer - * Modified by John-David Dalton - * Available under MIT license - */ -;(function(window, undefined) { - 'use strict'; - - /** Used to assign each benchmark an incrimented id */ - var counter = 0; - - /** Detect DOM document object */ - var doc = isHostType(window, 'document') && document; - - /** Detect free variable `define` */ - var freeDefine = typeof define == 'function' && - typeof define.amd == 'object' && define.amd && define; - - /** Detect free variable `exports` */ - var freeExports = typeof exports == 'object' && exports && - (typeof global == 'object' && global && global == global.global && (window = global), exports); - - /** Detect free variable `require` */ - var freeRequire = typeof require == 'function' && require; - - /** Used to crawl all properties regardless of enumerability */ - var getAllKeys = Object.getOwnPropertyNames; - - /** Used to get property descriptors */ - var getDescriptor = Object.getOwnPropertyDescriptor; - - /** Used in case an object doesn't have its own method */ - var hasOwnProperty = {}.hasOwnProperty; - - /** Used to check if an object is extensible */ - var isExtensible = Object.isExtensible || function() { return true; }; - - /** Used to access Wade Simmons' Node microtime module */ - var microtimeObject = req('microtime'); - - /** Used to access the browser's high resolution timer */ - var perfObject = isHostType(window, 'performance') && performance; - - /** Used to call the browser's high resolution timer */ - var perfName = perfObject && ( - perfObject.now && 'now' || - perfObject.webkitNow && 'webkitNow' - ); - - /** Used to access Node's high resolution timer */ - var processObject = isHostType(window, 'process') && process; - - /** Used to check if an own property is enumerable */ - var propertyIsEnumerable = {}.propertyIsEnumerable; - - /** Used to set property descriptors */ - var setDescriptor = Object.defineProperty; - - /** Used to resolve a value's internal [[Class]] */ - var toString = {}.toString; - - /** Used to prevent a `removeChild` memory leak in IE < 9 */ - var trash = doc && doc.createElement('div'); - - /** Used to integrity check compiled tests */ - var uid = 'uid' + (+new Date); - - /** Used to avoid infinite recursion when methods call each other */ - var calledBy = {}; - - /** Used to avoid hz of Infinity */ - var divisors = { - '1': 4096, - '2': 512, - '3': 64, - '4': 8, - '5': 0 - }; - - /** - * T-Distribution two-tailed critical values for 95% confidence - * http://www.itl.nist.gov/div898/handbook/eda/section3/eda3672.htm - */ - var tTable = { - '1': 12.706,'2': 4.303, '3': 3.182, '4': 2.776, '5': 2.571, '6': 2.447, - '7': 2.365, '8': 2.306, '9': 2.262, '10': 2.228, '11': 2.201, '12': 2.179, - '13': 2.16, '14': 2.145, '15': 2.131, '16': 2.12, '17': 2.11, '18': 2.101, - '19': 2.093, '20': 2.086, '21': 2.08, '22': 2.074, '23': 2.069, '24': 2.064, - '25': 2.06, '26': 2.056, '27': 2.052, '28': 2.048, '29': 2.045, '30': 2.042, - 'infinity': 1.96 - }; - - /** - * Critical Mann-Whitney U-values for 95% confidence - * http://www.saburchill.com/IBbiology/stats/003.html - */ - var uTable = { - '5': [0, 1, 2], - '6': [1, 2, 3, 5], - '7': [1, 3, 5, 6, 8], - '8': [2, 4, 6, 8, 10, 13], - '9': [2, 4, 7, 10, 12, 15, 17], - '10': [3, 5, 8, 11, 14, 17, 20, 23], - '11': [3, 6, 9, 13, 16, 19, 23, 26, 30], - '12': [4, 7, 11, 14, 18, 22, 26, 29, 33, 37], - '13': [4, 8, 12, 16, 20, 24, 28, 33, 37, 41, 45], - '14': [5, 9, 13, 17, 22, 26, 31, 36, 40, 45, 50, 55], - '15': [5, 10, 14, 19, 24, 29, 34, 39, 44, 49, 54, 59, 64], - '16': [6, 11, 15, 21, 26, 31, 37, 42, 47, 53, 59, 64, 70, 75], - '17': [6, 11, 17, 22, 28, 34, 39, 45, 51, 57, 63, 67, 75, 81, 87], - '18': [7, 12, 18, 24, 30, 36, 42, 48, 55, 61, 67, 74, 80, 86, 93, 99], - '19': [7, 13, 19, 25, 32, 38, 45, 52, 58, 65, 72, 78, 85, 92, 99, 106, 113], - '20': [8, 14, 20, 27, 34, 41, 48, 55, 62, 69, 76, 83, 90, 98, 105, 112, 119, 127], - '21': [8, 15, 22, 29, 36, 43, 50, 58, 65, 73, 80, 88, 96, 103, 111, 119, 126, 134, 142], - '22': [9, 16, 23, 30, 38, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125, 133, 141, 150, 158], - '23': [9, 17, 24, 32, 40, 48, 56, 64, 73, 81, 89, 98, 106, 115, 123, 132, 140, 149, 157, 166, 175], - '24': [10, 17, 25, 33, 42, 50, 59, 67, 76, 85, 94, 102, 111, 120, 129, 138, 147, 156, 165, 174, 183, 192], - '25': [10, 18, 27, 35, 44, 53, 62, 71, 80, 89, 98, 107, 117, 126, 135, 145, 154, 163, 173, 182, 192, 201, 211], - '26': [11, 19, 28, 37, 46, 55, 64, 74, 83, 93, 102, 112, 122, 132, 141, 151, 161, 171, 181, 191, 200, 210, 220, 230], - '27': [11, 20, 29, 38, 48, 57, 67, 77, 87, 97, 107, 118, 125, 138, 147, 158, 168, 178, 188, 199, 209, 219, 230, 240, 250], - '28': [12, 21, 30, 40, 50, 60, 70, 80, 90, 101, 111, 122, 132, 143, 154, 164, 175, 186, 196, 207, 218, 228, 239, 250, 261, 272], - '29': [13, 22, 32, 42, 52, 62, 73, 83, 94, 105, 116, 127, 138, 149, 160, 171, 182, 193, 204, 215, 226, 238, 249, 260, 271, 282, 294], - '30': [13, 23, 33, 43, 54, 65, 76, 87, 98, 109, 120, 131, 143, 154, 166, 177, 189, 200, 212, 223, 235, 247, 258, 270, 282, 293, 305, 317] - }; - - /** - * An object used to flag environments/features. - * - * @static - * @memberOf Benchmark - * @type Object - */ - var support = {}; - - (function() { - - /** - * Detect Adobe AIR. - * - * @memberOf Benchmark.support - * @type Boolean - */ - support.air = isClassOf(window.runtime, 'ScriptBridgingProxyObject'); - - /** - * Detect if `arguments` objects have the correct internal [[Class]] value. - * - * @memberOf Benchmark.support - * @type Boolean - */ - support.argumentsClass = isClassOf(arguments, 'Arguments'); - - /** - * Detect if in a browser environment. - * - * @memberOf Benchmark.support - * @type Boolean - */ - support.browser = doc && isHostType(window, 'navigator'); - - /** - * Detect if strings support accessing characters by index. - * - * @memberOf Benchmark.support - * @type Boolean - */ - support.charByIndex = - // IE 8 supports indexes on string literals but not string objects - ('x'[0] + Object('x')[0]) == 'xx'; - - /** - * Detect if strings have indexes as own properties. - * - * @memberOf Benchmark.support - * @type Boolean - */ - support.charByOwnIndex = - // Narwhal, Rhino, RingoJS, IE 8, and Opera < 10.52 support indexes on - // strings but don't detect them as own properties - support.charByIndex && hasKey('x', '0'); - - /** - * Detect if Java is enabled/exposed. - * - * @memberOf Benchmark.support - * @type Boolean - */ - support.java = isClassOf(window.java, 'JavaPackage'); - - /** - * Detect if the Timers API exists. - * - * @memberOf Benchmark.support - * @type Boolean - */ - support.timeout = isHostType(window, 'setTimeout') && isHostType(window, 'clearTimeout'); - - /** - * Detect if functions support decompilation. - * - * @name decompilation - * @memberOf Benchmark.support - * @type Boolean - */ - try { - // Safari 2.x removes commas in object literals - // from Function#toString results - // http://webk.it/11609 - // Firefox 3.6 and Opera 9.25 strip grouping - // parentheses from Function#toString results - // http://bugzil.la/559438 - support.decompilation = Function( - 'return (' + (function(x) { return { 'x': '' + (1 + x) + '', 'y': 0 }; }) + ')' - )()(0).x === '1'; - } catch(e) { - support.decompilation = false; - } - - /** - * Detect ES5+ property descriptor API. - * - * @name descriptors - * @memberOf Benchmark.support - * @type Boolean - */ - try { - var o = {}; - support.descriptors = (setDescriptor(o, o, o), 'value' in getDescriptor(o, o)); - } catch(e) { - support.descriptors = false; - } - - /** - * Detect ES5+ Object.getOwnPropertyNames(). - * - * @name getAllKeys - * @memberOf Benchmark.support - * @type Boolean - */ - try { - support.getAllKeys = /\bvalueOf\b/.test(getAllKeys(Object.prototype)); - } catch(e) { - support.getAllKeys = false; - } - - /** - * Detect if own properties are iterated before inherited properties (all but IE < 9). - * - * @name iteratesOwnLast - * @memberOf Benchmark.support - * @type Boolean - */ - support.iteratesOwnFirst = (function() { - var props = []; - function ctor() { this.x = 1; } - ctor.prototype = { 'y': 1 }; - for (var prop in new ctor) { props.push(prop); } - return props[0] == 'x'; - }()); - - /** - * Detect if a node's [[Class]] is resolvable (all but IE < 9) - * and that the JS engine errors when attempting to coerce an object to a - * string without a `toString` property value of `typeof` "function". - * - * @name nodeClass - * @memberOf Benchmark.support - * @type Boolean - */ - try { - support.nodeClass = ({ 'toString': 0 } + '', toString.call(doc || 0) != '[object Object]'); - } catch(e) { - support.nodeClass = true; - } - }()); - - /** - * Timer object used by `clock()` and `Deferred#resolve`. - * - * @private - * @type Object - */ - var timer = { - - /** - * The timer namespace object or constructor. - * - * @private - * @memberOf timer - * @type Function|Object - */ - 'ns': Date, - - /** - * Starts the deferred timer. - * - * @private - * @memberOf timer - * @param {Object} deferred The deferred instance. - */ - 'start': null, // lazy defined in `clock()` - - /** - * Stops the deferred timer. - * - * @private - * @memberOf timer - * @param {Object} deferred The deferred instance. - */ - 'stop': null // lazy defined in `clock()` - }; - - /** Shortcut for inverse results */ - var noArgumentsClass = !support.argumentsClass, - noCharByIndex = !support.charByIndex, - noCharByOwnIndex = !support.charByOwnIndex; - - /** Math shortcuts */ - var abs = Math.abs, - floor = Math.floor, - max = Math.max, - min = Math.min, - pow = Math.pow, - sqrt = Math.sqrt; - - /*--------------------------------------------------------------------------*/ - - /** - * The Benchmark constructor. - * - * @constructor - * @param {String} name A name to identify the benchmark. - * @param {Function|String} fn The test to benchmark. - * @param {Object} [options={}] Options object. - * @example - * - * // basic usage (the `new` operator is optional) - * var bench = new Benchmark(fn); - * - * // or using a name first - * var bench = new Benchmark('foo', fn); - * - * // or with options - * var bench = new Benchmark('foo', fn, { - * - * // displayed by Benchmark#toString if `name` is not available - * 'id': 'xyz', - * - * // called when the benchmark starts running - * 'onStart': onStart, - * - * // called after each run cycle - * 'onCycle': onCycle, - * - * // called when aborted - * 'onAbort': onAbort, - * - * // called when a test errors - * 'onError': onError, - * - * // called when reset - * 'onReset': onReset, - * - * // called when the benchmark completes running - * 'onComplete': onComplete, - * - * // compiled/called before the test loop - * 'setup': setup, - * - * // compiled/called after the test loop - * 'teardown': teardown - * }); - * - * // or name and options - * var bench = new Benchmark('foo', { - * - * // a flag to indicate the benchmark is deferred - * 'defer': true, - * - * // benchmark test function - * 'fn': function(deferred) { - * // call resolve() when the deferred test is finished - * deferred.resolve(); - * } - * }); - * - * // or options only - * var bench = new Benchmark({ - * - * // benchmark name - * 'name': 'foo', - * - * // benchmark test as a string - * 'fn': '[1,2,3,4].sort()' - * }); - * - * // a test's `this` binding is set to the benchmark instance - * var bench = new Benchmark('foo', function() { - * 'My name is '.concat(this.name); // My name is foo - * }); - */ - function Benchmark(name, fn, options) { - var me = this; - - // allow instance creation without the `new` operator - if (me == null || me.constructor != Benchmark) { - return new Benchmark(name, fn, options); - } - // juggle arguments - if (isClassOf(name, 'Object')) { - // 1 argument (options) - options = name; - } - else if (isClassOf(name, 'Function')) { - // 2 arguments (fn, options) - options = fn; - fn = name; - } - else if (isClassOf(fn, 'Object')) { - // 2 arguments (name, options) - options = fn; - fn = null; - me.name = name; - } - else { - // 3 arguments (name, fn [, options]) - me.name = name; - } - setOptions(me, options); - me.id || (me.id = ++counter); - me.fn == null && (me.fn = fn); - me.stats = deepClone(me.stats); - me.times = deepClone(me.times); - } - - /** - * The Deferred constructor. - * - * @constructor - * @memberOf Benchmark - * @param {Object} clone The cloned benchmark instance. - */ - function Deferred(clone) { - var me = this; - if (me == null || me.constructor != Deferred) { - return new Deferred(clone); - } - me.benchmark = clone; - clock(me); - } - - /** - * The Event constructor. - * - * @constructor - * @memberOf Benchmark - * @param {String|Object} type The event type. - */ - function Event(type) { - var me = this; - return (me == null || me.constructor != Event) - ? new Event(type) - : (type instanceof Event) - ? type - : extend(me, { 'timeStamp': +new Date }, typeof type == 'string' ? { 'type': type } : type); - } - - /** - * The Suite constructor. - * - * @constructor - * @memberOf Benchmark - * @param {String} name A name to identify the suite. - * @param {Object} [options={}] Options object. - * @example - * - * // basic usage (the `new` operator is optional) - * var suite = new Benchmark.Suite; - * - * // or using a name first - * var suite = new Benchmark.Suite('foo'); - * - * // or with options - * var suite = new Benchmark.Suite('foo', { - * - * // called when the suite starts running - * 'onStart': onStart, - * - * // called between running benchmarks - * 'onCycle': onCycle, - * - * // called when aborted - * 'onAbort': onAbort, - * - * // called when a test errors - * 'onError': onError, - * - * // called when reset - * 'onReset': onReset, - * - * // called when the suite completes running - * 'onComplete': onComplete - * }); - */ - function Suite(name, options) { - var me = this; - - // allow instance creation without the `new` operator - if (me == null || me.constructor != Suite) { - return new Suite(name, options); - } - // juggle arguments - if (isClassOf(name, 'Object')) { - // 1 argument (options) - options = name; - } else { - // 2 arguments (name [, options]) - me.name = name; - } - setOptions(me, options); - } - - /*--------------------------------------------------------------------------*/ - - /** - * Note: Some array methods have been implemented in plain JavaScript to avoid - * bugs in IE, Opera, Rhino, and Mobile Safari. - * - * IE compatibility mode and IE < 9 have buggy Array `shift()` and `splice()` - * functions that fail to remove the last element, `object[0]`, of - * array-like-objects even though the `length` property is set to `0`. - * The `shift()` method is buggy in IE 8 compatibility mode, while `splice()` - * is buggy regardless of mode in IE < 9 and buggy in compatibility mode in IE 9. - * - * In Opera < 9.50 and some older/beta Mobile Safari versions using `unshift()` - * generically to augment the `arguments` object will pave the value at index 0 - * without incrimenting the other values's indexes. - * https://github.com/documentcloud/underscore/issues/9 - * - * Rhino and environments it powers, like Narwhal and RingoJS, may have - * buggy Array `concat()`, `reverse()`, `shift()`, `slice()`, `splice()` and - * `unshift()` functions that make sparse arrays non-sparse by assigning the - * undefined indexes a value of undefined. - * https://github.com/mozilla/rhino/commit/702abfed3f8ca043b2636efd31c14ba7552603dd - */ - - /** - * Creates an array containing the elements of the host array followed by the - * elements of each argument in order. - * - * @memberOf Benchmark.Suite - * @returns {Array} The new array. - */ - function concat() { - var value, - j = -1, - length = arguments.length, - result = slice.call(this), - index = result.length; - - while (++j < length) { - value = arguments[j]; - if (isClassOf(value, 'Array')) { - for (var k = 0, l = value.length; k < l; k++, index++) { - if (k in value) { - result[index] = value[k]; - } - } - } else { - result[index++] = value; - } - } - return result; - } - - /** - * Utility function used by `shift()`, `splice()`, and `unshift()`. - * - * @private - * @param {Number} start The index to start inserting elements. - * @param {Number} deleteCount The number of elements to delete from the insert point. - * @param {Array} elements The elements to insert. - * @returns {Array} An array of deleted elements. - */ - function insert(start, deleteCount, elements) { - // `result` should have its length set to the `deleteCount` - // see https://bugs.ecmascript.org/show_bug.cgi?id=332 - var deleteEnd = start + deleteCount, - elementCount = elements ? elements.length : 0, - index = start - 1, - length = start + elementCount, - object = this, - result = Array(deleteCount), - tail = slice.call(object, deleteEnd); - - // delete elements from the array - while (++index < deleteEnd) { - if (index in object) { - result[index - start] = object[index]; - delete object[index]; - } - } - // insert elements - index = start - 1; - while (++index < length) { - object[index] = elements[index - start]; - } - // append tail elements - start = index--; - length = max(0, (object.length >>> 0) - deleteCount + elementCount); - while (++index < length) { - if ((index - start) in tail) { - object[index] = tail[index - start]; - } else if (index in object) { - delete object[index]; - } - } - // delete excess elements - deleteCount = deleteCount > elementCount ? deleteCount - elementCount : 0; - while (deleteCount--) { - index = length + deleteCount; - if (index in object) { - delete object[index]; - } - } - object.length = length; - return result; - } - - /** - * Rearrange the host array's elements in reverse order. - * - * @memberOf Benchmark.Suite - * @returns {Array} The reversed array. - */ - function reverse() { - var upperIndex, - value, - index = -1, - object = Object(this), - length = object.length >>> 0, - middle = floor(length / 2); - - if (length > 1) { - while (++index < middle) { - upperIndex = length - index - 1; - value = upperIndex in object ? object[upperIndex] : uid; - if (index in object) { - object[upperIndex] = object[index]; - } else { - delete object[upperIndex]; - } - if (value != uid) { - object[index] = value; - } else { - delete object[index]; - } - } - } - return object; - } - - /** - * Removes the first element of the host array and returns it. - * - * @memberOf Benchmark.Suite - * @returns {Mixed} The first element of the array. - */ - function shift() { - return insert.call(this, 0, 1)[0]; - } - - /** - * Creates an array of the host array's elements from the start index up to, - * but not including, the end index. - * - * @memberOf Benchmark.Suite - * @param {Number} start The starting index. - * @param {Number} end The end index. - * @returns {Array} The new array. - */ - function slice(start, end) { - var index = -1, - object = Object(this), - length = object.length >>> 0, - result = []; - - start = toInteger(start); - start = start < 0 ? max(length + start, 0) : min(start, length); - start--; - end = end == null ? length : toInteger(end); - end = end < 0 ? max(length + end, 0) : min(end, length); - - while ((++index, ++start) < end) { - if (start in object) { - result[index] = object[start]; - } - } - return result; - } - - /** - * Allows removing a range of elements and/or inserting elements into the - * host array. - * - * @memberOf Benchmark.Suite - * @param {Number} start The start index. - * @param {Number} deleteCount The number of elements to delete. - * @param {Mixed} [val1, val2, ...] values to insert at the `start` index. - * @returns {Array} An array of removed elements. - */ - function splice(start, deleteCount) { - var object = Object(this), - length = object.length >>> 0; - - start = toInteger(start); - start = start < 0 ? max(length + start, 0) : min(start, length); - - // support the de-facto SpiderMonkey extension - // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice#Parameters - // https://bugs.ecmascript.org/show_bug.cgi?id=429 - deleteCount = arguments.length == 1 - ? length - start - : min(max(toInteger(deleteCount), 0), length - start); - - return insert.call(object, start, deleteCount, slice.call(arguments, 2)); - } - - /** - * Converts the specified `value` to an integer. - * - * @private - * @param {Mixed} value The value to convert. - * @returns {Number} The resulting integer. - */ - function toInteger(value) { - value = +value; - return value === 0 || !isFinite(value) ? value || 0 : value - (value % 1); - } - - /** - * Appends arguments to the host array. - * - * @memberOf Benchmark.Suite - * @returns {Number} The new length. - */ - function unshift() { - var object = Object(this); - insert.call(object, 0, 0, arguments); - return object.length; - } - - /*--------------------------------------------------------------------------*/ - - /** - * A generic `Function#bind` like method. - * - * @private - * @param {Function} fn The function to be bound to `thisArg`. - * @param {Mixed} thisArg The `this` binding for the given function. - * @returns {Function} The bound function. - */ - function bind(fn, thisArg) { - return function() { fn.apply(thisArg, arguments); }; - } - - /** - * Creates a function from the given arguments string and body. - * - * @private - * @param {String} args The comma separated function arguments. - * @param {String} body The function body. - * @returns {Function} The new function. - */ - function createFunction() { - // lazy define - createFunction = function(args, body) { - var result, - anchor = freeDefine ? define.amd : Benchmark, - prop = uid + 'createFunction'; - - runScript((freeDefine ? 'define.amd.' : 'Benchmark.') + prop + '=function(' + args + '){' + body + '}'); - result = anchor[prop]; - delete anchor[prop]; - return result; - }; - // fix JaegerMonkey bug - // http://bugzil.la/639720 - createFunction = support.browser && (createFunction('', 'return"' + uid + '"') || noop)() == uid ? createFunction : Function; - return createFunction.apply(null, arguments); - } - - /** - * Delay the execution of a function based on the benchmark's `delay` property. - * - * @private - * @param {Object} bench The benchmark instance. - * @param {Object} fn The function to execute. - */ - function delay(bench, fn) { - bench._timerId = setTimeout(fn, bench.delay * 1e3); - } - - /** - * Destroys the given element. - * - * @private - * @param {Element} element The element to destroy. - */ - function destroyElement(element) { - trash.appendChild(element); - trash.innerHTML = ''; - } - - /** - * Iterates over an object's properties, executing the `callback` for each. - * Callbacks may terminate the loop by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} callback The function executed per own property. - * @param {Object} options The options object. - * @returns {Object} Returns the object iterated over. - */ - function forProps() { - var forShadowed, - skipSeen, - forArgs = true, - shadowed = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf']; - - (function(enumFlag, key) { - // must use a non-native constructor to catch the Safari 2 issue - function Klass() { this.valueOf = 0; }; - Klass.prototype.valueOf = 0; - // check various for-in bugs - for (key in new Klass) { - enumFlag += key == 'valueOf' ? 1 : 0; - } - // check if `arguments` objects have non-enumerable indexes - for (key in arguments) { - key == '0' && (forArgs = false); - } - // Safari 2 iterates over shadowed properties twice - // http://replay.waybackmachine.org/20090428222941/http://tobielangel.com/2007/1/29/for-in-loop-broken-in-safari/ - skipSeen = enumFlag == 2; - // IE < 9 incorrectly makes an object's properties non-enumerable if they have - // the same name as other non-enumerable properties in its prototype chain. - forShadowed = !enumFlag; - }(0)); - - // lazy define - forProps = function(object, callback, options) { - options || (options = {}); - - var result = object; - object = Object(object); - - var ctor, - key, - keys, - skipCtor, - done = !result, - which = options.which, - allFlag = which == 'all', - index = -1, - iteratee = object, - length = object.length, - ownFlag = allFlag || which == 'own', - seen = {}, - skipProto = isClassOf(object, 'Function'), - thisArg = options.bind; - - if (thisArg !== undefined) { - callback = bind(callback, thisArg); - } - // iterate all properties - if (allFlag && support.getAllKeys) { - for (index = 0, keys = getAllKeys(object), length = keys.length; index < length; index++) { - key = keys[index]; - if (callback(object[key], key, object) === false) { - break; - } - } - } - // else iterate only enumerable properties - else { - for (key in object) { - // Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1 - // (if the prototype or a property on the prototype has been set) - // incorrectly set a function's `prototype` property [[Enumerable]] value - // to `true`. Because of this we standardize on skipping the `prototype` - // property of functions regardless of their [[Enumerable]] value. - if ((done = - !(skipProto && key == 'prototype') && - !(skipSeen && (hasKey(seen, key) || !(seen[key] = true))) && - (!ownFlag || ownFlag && hasKey(object, key)) && - callback(object[key], key, object) === false)) { - break; - } - } - // in IE < 9 strings don't support accessing characters by index - if (!done && (forArgs && isArguments(object) || - ((noCharByIndex || noCharByOwnIndex) && isClassOf(object, 'String') && - (iteratee = noCharByIndex ? object.split('') : object)))) { - while (++index < length) { - if ((done = - callback(iteratee[index], String(index), object) === false)) { - break; - } - } - } - if (!done && forShadowed) { - // Because IE < 9 can't set the `[[Enumerable]]` attribute of an existing - // property and the `constructor` property of a prototype defaults to - // non-enumerable, we manually skip the `constructor` property when we - // think we are iterating over a `prototype` object. - ctor = object.constructor; - skipCtor = ctor && ctor.prototype && ctor.prototype.constructor === ctor; - for (index = 0; index < 7; index++) { - key = shadowed[index]; - if (!(skipCtor && key == 'constructor') && - hasKey(object, key) && - callback(object[key], key, object) === false) { - break; - } - } - } - } - return result; - }; - return forProps.apply(null, arguments); - } - - /** - * Gets the name of the first argument from a function's source. - * - * @private - * @param {Function} fn The function. - * @returns {String} The argument name. - */ - function getFirstArgument(fn) { - return (!hasKey(fn, 'toString') && - (/^[\s(]*function[^(]*\(([^\s,)]+)/.exec(fn) || 0)[1]) || ''; - } - - /** - * Computes the arithmetic mean of a sample. - * - * @private - * @param {Array} sample The sample. - * @returns {Number} The mean. - */ - function getMean(sample) { - return reduce(sample, function(sum, x) { - return sum + x; - }) / sample.length || 0; - } - - /** - * Gets the source code of a function. - * - * @private - * @param {Function} fn The function. - * @param {String} altSource A string used when a function's source code is unretrievable. - * @returns {String} The function's source code. - */ - function getSource(fn, altSource) { - var result = altSource; - if (isStringable(fn)) { - result = String(fn); - } else if (support.decompilation) { - // escape the `{` for Firefox 1 - result = (/^[^{]+\{([\s\S]*)}\s*$/.exec(fn) || 0)[1]; - } - // trim string - result = (result || '').replace(/^\s+|\s+$/g, ''); - - // detect strings containing only the "use strict" directive - return /^(?:\/\*+[\w|\W]*?\*\/|\/\/.*?[\n\r\u2028\u2029]|\s)*(["'])use strict\1;?$/.test(result) - ? '' - : result; - } - - /** - * Checks if a value is an `arguments` object. - * - * @private - * @param {Mixed} value The value to check. - * @returns {Boolean} Returns `true` if the value is an `arguments` object, else `false`. - */ - function isArguments() { - // lazy define - isArguments = function(value) { - return toString.call(value) == '[object Arguments]'; - }; - if (noArgumentsClass) { - isArguments = function(value) { - return hasKey(value, 'callee') && - !(propertyIsEnumerable && propertyIsEnumerable.call(value, 'callee')); - }; - } - return isArguments(arguments[0]); - } - - /** - * Checks if an object is of the specified class. - * - * @private - * @param {Mixed} value The value to check. - * @param {String} name The name of the class. - * @returns {Boolean} Returns `true` if the value is of the specified class, else `false`. - */ - function isClassOf(value, name) { - return value != null && toString.call(value) == '[object ' + name + ']'; - } - - /** - * Host objects can return type values that are different from their actual - * data type. The objects we are concerned with usually return non-primitive - * types of object, function, or unknown. - * - * @private - * @param {Mixed} object The owner of the property. - * @param {String} property The property to check. - * @returns {Boolean} Returns `true` if the property value is a non-primitive, else `false`. - */ - function isHostType(object, property) { - var type = object != null ? typeof object[property] : 'number'; - return !/^(?:boolean|number|string|undefined)$/.test(type) && - (type == 'object' ? !!object[property] : true); - } - - /** - * Checks if a given `value` is an object created by the `Object` constructor - * assuming objects created by the `Object` constructor have no inherited - * enumerable properties and that there are no `Object.prototype` extensions. - * - * @private - * @param {Mixed} value The value to check. - * @returns {Boolean} Returns `true` if the `value` is a plain `Object` object, else `false`. - */ - function isPlainObject(value) { - // avoid non-objects and false positives for `arguments` objects in IE < 9 - var result = false; - if (!(value && typeof value == 'object') || (noArgumentsClass && isArguments(value))) { - return result; - } - // IE < 9 presents DOM nodes as `Object` objects except they have `toString` - // methods that are `typeof` "string" and still can coerce nodes to strings. - // Also check that the constructor is `Object` (i.e. `Object instanceof Object`) - var ctor = value.constructor; - if ((support.nodeClass || !(typeof value.toString != 'function' && typeof (value + '') == 'string')) && - (!isClassOf(ctor, 'Function') || ctor instanceof ctor)) { - // In most environments an object's own properties are iterated before - // its inherited properties. If the last iterated property is an object's - // own property then there are no inherited enumerable properties. - if (support.iteratesOwnFirst) { - forProps(value, function(subValue, subKey) { - result = subKey; - }); - return result === false || hasKey(value, result); - } - // IE < 9 iterates inherited properties before own properties. If the first - // iterated property is an object's own property then there are no inherited - // enumerable properties. - forProps(value, function(subValue, subKey) { - result = !hasKey(value, subKey); - return false; - }); - return result === false; - } - return result; - } - - /** - * Checks if a value can be safely coerced to a string. - * - * @private - * @param {Mixed} value The value to check. - * @returns {Boolean} Returns `true` if the value can be coerced, else `false`. - */ - function isStringable(value) { - return hasKey(value, 'toString') || isClassOf(value, 'String'); - } - - /** - * Wraps a function and passes `this` to the original function as the - * first argument. - * - * @private - * @param {Function} fn The function to be wrapped. - * @returns {Function} The new function. - */ - function methodize(fn) { - return function() { - var args = [this]; - args.push.apply(args, arguments); - return fn.apply(null, args); - }; - } - - /** - * A no-operation function. - * - * @private - */ - function noop() { - // no operation performed - } - - /** - * A wrapper around require() to suppress `module missing` errors. - * - * @private - * @param {String} id The module id. - * @returns {Mixed} The exported module or `null`. - */ - function req(id) { - try { - var result = freeExports && freeRequire(id); - } catch(e) { } - return result || null; - } - - /** - * Runs a snippet of JavaScript via script injection. - * - * @private - * @param {String} code The code to run. - */ - function runScript(code) { - var anchor = freeDefine ? define.amd : Benchmark, - script = doc.createElement('script'), - sibling = doc.getElementsByTagName('script')[0], - parent = sibling.parentNode, - prop = uid + 'runScript', - prefix = '(' + (freeDefine ? 'define.amd.' : 'Benchmark.') + prop + '||function(){})();'; - - // Firefox 2.0.0.2 cannot use script injection as intended because it executes - // asynchronously, but that's OK because script injection is only used to avoid - // the previously commented JaegerMonkey bug. - try { - // remove the inserted script *before* running the code to avoid differences - // in the expected script element count/order of the document. - script.appendChild(doc.createTextNode(prefix + code)); - anchor[prop] = function() { destroyElement(script); }; - } catch(e) { - parent = parent.cloneNode(false); - sibling = null; - script.text = code; - } - parent.insertBefore(script, sibling); - delete anchor[prop]; - } - - /** - * A helper function for setting options/event handlers. - * - * @private - * @param {Object} bench The benchmark instance. - * @param {Object} [options={}] Options object. - */ - function setOptions(bench, options) { - options = extend({}, bench.constructor.options, options); - bench.options = forOwn(options, function(value, key) { - if (value != null) { - // add event listeners - if (/^on[A-Z]/.test(key)) { - forEach(key.split(' '), function(key) { - bench.on(key.slice(2).toLowerCase(), value); - }); - } else if (!hasKey(bench, key)) { - bench[key] = deepClone(value); - } - } - }); - } - - /*--------------------------------------------------------------------------*/ - - /** - * Handles cycling/completing the deferred benchmark. - * - * @memberOf Benchmark.Deferred - */ - function resolve() { - var me = this, - clone = me.benchmark, - bench = clone._original; - - if (bench.aborted) { - // cycle() -> clone cycle/complete event -> compute()'s invoked bench.run() cycle/complete - me.teardown(); - clone.running = false; - cycle(me); - } - else if (++me.cycles < clone.count) { - // continue the test loop - if (support.timeout) { - // use setTimeout to avoid a call stack overflow if called recursively - setTimeout(function() { clone.compiled.call(me, timer); }, 0); - } else { - clone.compiled.call(me, timer); - } - } - else { - timer.stop(me); - me.teardown(); - delay(clone, function() { cycle(me); }); - } - } - - /*--------------------------------------------------------------------------*/ - - /** - * A deep clone utility. - * - * @static - * @memberOf Benchmark - * @param {Mixed} value The value to clone. - * @returns {Mixed} The cloned value. - */ - function deepClone(value) { - var accessor, - circular, - clone, - ctor, - descriptor, - extensible, - key, - length, - markerKey, - parent, - result, - source, - subIndex, - data = { 'value': value }, - index = 0, - marked = [], - queue = { 'length': 0 }, - unmarked = []; - - /** - * An easily detectable decorator for cloned values. - */ - function Marker(object) { - this.raw = object; - } - - /** - * The callback used by `forProps()`. - */ - function forPropsCallback(subValue, subKey) { - // exit early to avoid cloning the marker - if (subValue && subValue.constructor == Marker) { - return; - } - // add objects to the queue - if (subValue === Object(subValue)) { - queue[queue.length++] = { 'key': subKey, 'parent': clone, 'source': value }; - } - // assign non-objects - else { - try { - // will throw an error in strict mode if the property is read-only - clone[subKey] = subValue; - } catch(e) { } - } - } - - /** - * Gets an available marker key for the given object. - */ - function getMarkerKey(object) { - // avoid collisions with existing keys - var result = uid; - while (object[result] && object[result].constructor != Marker) { - result += 1; - } - return result; - } - - do { - key = data.key; - parent = data.parent; - source = data.source; - clone = value = source ? source[key] : data.value; - accessor = circular = descriptor = false; - - // create a basic clone to filter out functions, DOM elements, and - // other non `Object` objects - if (value === Object(value)) { - // use custom deep clone function if available - if (isClassOf(value.deepClone, 'Function')) { - clone = value.deepClone(); - } else { - ctor = value.constructor; - switch (toString.call(value)) { - case '[object Array]': - clone = new ctor(value.length); - break; - - case '[object Boolean]': - clone = new ctor(value == true); - break; - - case '[object Date]': - clone = new ctor(+value); - break; - - case '[object Object]': - isPlainObject(value) && (clone = {}); - break; - - case '[object Number]': - case '[object String]': - clone = new ctor(value); - break; - - case '[object RegExp]': - clone = ctor(value.source, - (value.global ? 'g' : '') + - (value.ignoreCase ? 'i' : '') + - (value.multiline ? 'm' : '')); - } - } - // continue clone if `value` doesn't have an accessor descriptor - // http://es5.github.com/#x8.10.1 - if (clone && clone != value && - !(descriptor = source && support.descriptors && getDescriptor(source, key), - accessor = descriptor && (descriptor.get || descriptor.set))) { - // use an existing clone (circular reference) - if ((extensible = isExtensible(value))) { - markerKey = getMarkerKey(value); - if (value[markerKey]) { - circular = clone = value[markerKey].raw; - } - } else { - // for frozen/sealed objects - for (subIndex = 0, length = unmarked.length; subIndex < length; subIndex++) { - data = unmarked[subIndex]; - if (data.object === value) { - circular = clone = data.clone; - break; - } - } - } - if (!circular) { - // mark object to allow quickly detecting circular references and tie it to its clone - if (extensible) { - value[markerKey] = new Marker(clone); - marked.push({ 'key': markerKey, 'object': value }); - } else { - // for frozen/sealed objects - unmarked.push({ 'clone': clone, 'object': value }); - } - // iterate over object properties - forProps(value, forPropsCallback, { 'which': 'all' }); - } - } - } - if (parent) { - // for custom property descriptors - if (accessor || (descriptor && !(descriptor.configurable && descriptor.enumerable && descriptor.writable))) { - if ('value' in descriptor) { - descriptor.value = clone; - } - setDescriptor(parent, key, descriptor); - } - // for default property descriptors - else { - parent[key] = clone; - } - } else { - result = clone; - } - } while ((data = queue[index++])); - - // remove markers - for (index = 0, length = marked.length; index < length; index++) { - data = marked[index]; - delete data.object[data.key]; - } - return result; - } - - /** - * An iteration utility for arrays and objects. - * Callbacks may terminate the loop by explicitly returning `false`. - * - * @static - * @memberOf Benchmark - * @param {Array|Object} object The object to iterate over. - * @param {Function} callback The function called per iteration. - * @param {Mixed} thisArg The `this` binding for the callback. - * @returns {Array|Object} Returns the object iterated over. - */ - function each(object, callback, thisArg) { - var result = object; - object = Object(object); - - var fn = callback, - index = -1, - length = object.length, - isSnapshot = !!(object.snapshotItem && (length = object.snapshotLength)), - isSplittable = (noCharByIndex || noCharByOwnIndex) && isClassOf(object, 'String'), - isConvertable = isSnapshot || isSplittable || 'item' in object, - origObject = object; - - // in Opera < 10.5 `hasKey(object, 'length')` returns `false` for NodeLists - if (length === length >>> 0) { - if (isConvertable) { - // the third argument of the callback is the original non-array object - callback = function(value, index) { - return fn.call(this, value, index, origObject); - }; - // in IE < 9 strings don't support accessing characters by index - if (isSplittable) { - object = object.split(''); - } else { - object = []; - while (++index < length) { - // in Safari 2 `index in object` is always `false` for NodeLists - object[index] = isSnapshot ? result.snapshotItem(index) : result[index]; - } - } - } - forEach(object, callback, thisArg); - } else { - forOwn(object, callback, thisArg); - } - return result; - } - - /** - * Copies enumerable properties from the source(s) object to the destination object. - * - * @static - * @memberOf Benchmark - * @param {Object} destination The destination object. - * @param {Object} [source={}] The source object. - * @returns {Object} The destination object. - */ - function extend(destination, source) { - // Chrome < 14 incorrectly sets `destination` to `undefined` when we `delete arguments[0]` - // http://code.google.com/p/v8/issues/detail?id=839 - var result = destination; - delete arguments[0]; - - forEach(arguments, function(source) { - forProps(source, function(value, key) { - result[key] = value; - }); - }); - return result; - } - - /** - * A generic `Array#filter` like method. - * - * @static - * @memberOf Benchmark - * @param {Array} array The array to iterate over. - * @param {Function|String} callback The function/alias called per iteration. - * @param {Mixed} thisArg The `this` binding for the callback. - * @returns {Array} A new array of values that passed callback filter. - * @example - * - * // get odd numbers - * Benchmark.filter([1, 2, 3, 4, 5], function(n) { - * return n % 2; - * }); // -> [1, 3, 5]; - * - * // get fastest benchmarks - * Benchmark.filter(benches, 'fastest'); - * - * // get slowest benchmarks - * Benchmark.filter(benches, 'slowest'); - * - * // get benchmarks that completed without erroring - * Benchmark.filter(benches, 'successful'); - */ - function filter(array, callback, thisArg) { - var result; - - if (callback == 'successful') { - // callback to exclude those that are errored, unrun, or have hz of Infinity - callback = function(bench) { return bench.cycles && isFinite(bench.hz); }; - } - else if (callback == 'fastest' || callback == 'slowest') { - // get successful, sort by period + margin of error, and filter fastest/slowest - result = filter(array, 'successful').sort(function(a, b) { - a = a.stats; b = b.stats; - return (a.mean + a.moe > b.mean + b.moe ? 1 : -1) * (callback == 'fastest' ? 1 : -1); - }); - result = filter(result, function(bench) { - return result[0].compare(bench) == 0; - }); - } - return result || reduce(array, function(result, value, index) { - return callback.call(thisArg, value, index, array) ? (result.push(value), result) : result; - }, []); - } - - /** - * A generic `Array#forEach` like method. - * Callbacks may terminate the loop by explicitly returning `false`. - * - * @static - * @memberOf Benchmark - * @param {Array} array The array to iterate over. - * @param {Function} callback The function called per iteration. - * @param {Mixed} thisArg The `this` binding for the callback. - * @returns {Array} Returns the array iterated over. - */ - function forEach(array, callback, thisArg) { - var index = -1, - length = (array = Object(array)).length >>> 0; - - if (thisArg !== undefined) { - callback = bind(callback, thisArg); - } - while (++index < length) { - if (index in array && - callback(array[index], index, array) === false) { - break; - } - } - return array; - } - - /** - * Iterates over an object's own properties, executing the `callback` for each. - * Callbacks may terminate the loop by explicitly returning `false`. - * - * @static - * @memberOf Benchmark - * @param {Object} object The object to iterate over. - * @param {Function} callback The function executed per own property. - * @param {Mixed} thisArg The `this` binding for the callback. - * @returns {Object} Returns the object iterated over. - */ - function forOwn(object, callback, thisArg) { - return forProps(object, callback, { 'bind': thisArg, 'which': 'own' }); - } - - /** - * Converts a number to a more readable comma-separated string representation. - * - * @static - * @memberOf Benchmark - * @param {Number} number The number to convert. - * @returns {String} The more readable string representation. - */ - function formatNumber(number) { - number = String(number).split('.'); - return number[0].replace(/(?=(?:\d{3})+$)(?!\b)/g, ',') + - (number[1] ? '.' + number[1] : ''); - } - - /** - * Checks if an object has the specified key as a direct property. - * - * @static - * @memberOf Benchmark - * @param {Object} object The object to check. - * @param {String} key The key to check for. - * @returns {Boolean} Returns `true` if key is a direct property, else `false`. - */ - function hasKey() { - // lazy define for worst case fallback (not as accurate) - hasKey = function(object, key) { - var parent = object != null && (object.constructor || Object).prototype; - return !!parent && key in Object(object) && !(key in parent && object[key] === parent[key]); - }; - // for modern browsers - if (isClassOf(hasOwnProperty, 'Function')) { - hasKey = function(object, key) { - return object != null && hasOwnProperty.call(object, key); - }; - } - // for Safari 2 - else if ({}.__proto__ == Object.prototype) { - hasKey = function(object, key) { - var result = false; - if (object != null) { - object = Object(object); - object.__proto__ = [object.__proto__, object.__proto__ = null, result = key in object][0]; - } - return result; - }; - } - return hasKey.apply(this, arguments); - } - - /** - * A generic `Array#indexOf` like method. - * - * @static - * @memberOf Benchmark - * @param {Array} array The array to iterate over. - * @param {Mixed} value The value to search for. - * @param {Number} [fromIndex=0] The index to start searching from. - * @returns {Number} The index of the matched value or `-1`. - */ - function indexOf(array, value, fromIndex) { - var index = toInteger(fromIndex), - length = (array = Object(array)).length >>> 0; - - index = (index < 0 ? max(0, length + index) : index) - 1; - while (++index < length) { - if (index in array && value === array[index]) { - return index; - } - } - return -1; - } - - /** - * Modify a string by replacing named tokens with matching object property values. - * - * @static - * @memberOf Benchmark - * @param {String} string The string to modify. - * @param {Object} object The template object. - * @returns {String} The modified string. - */ - function interpolate(string, object) { - forOwn(object, function(value, key) { - // escape regexp special characters in `key` - string = string.replace(RegExp('#\\{' + key.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1') + '\\}', 'g'), value); - }); - return string; - } - - /** - * Invokes a method on all items in an array. - * - * @static - * @memberOf Benchmark - * @param {Array} benches Array of benchmarks to iterate over. - * @param {String|Object} name The name of the method to invoke OR options object. - * @param {Mixed} [arg1, arg2, ...] Arguments to invoke the method with. - * @returns {Array} A new array of values returned from each method invoked. - * @example - * - * // invoke `reset` on all benchmarks - * Benchmark.invoke(benches, 'reset'); - * - * // invoke `emit` with arguments - * Benchmark.invoke(benches, 'emit', 'complete', listener); - * - * // invoke `run(true)`, treat benchmarks as a queue, and register invoke callbacks - * Benchmark.invoke(benches, { - * - * // invoke the `run` method - * 'name': 'run', - * - * // pass a single argument - * 'args': true, - * - * // treat as queue, removing benchmarks from front of `benches` until empty - * 'queued': true, - * - * // called before any benchmarks have been invoked. - * 'onStart': onStart, - * - * // called between invoking benchmarks - * 'onCycle': onCycle, - * - * // called after all benchmarks have been invoked. - * 'onComplete': onComplete - * }); - */ - function invoke(benches, name) { - var args, - bench, - queued, - index = -1, - eventProps = { 'currentTarget': benches }, - options = { 'onStart': noop, 'onCycle': noop, 'onComplete': noop }, - result = map(benches, function(bench) { return bench; }); - - /** - * Invokes the method of the current object and if synchronous, fetches the next. - */ - function execute() { - var listeners, - async = isAsync(bench); - - if (async) { - // use `getNext` as the first listener - bench.on('complete', getNext); - listeners = bench.events.complete; - listeners.splice(0, 0, listeners.pop()); - } - // execute method - result[index] = isClassOf(bench && bench[name], 'Function') ? bench[name].apply(bench, args) : undefined; - // if synchronous return true until finished - return !async && getNext(); - } - - /** - * Fetches the next bench or executes `onComplete` callback. - */ - function getNext(event) { - var cycleEvent, - last = bench, - async = isAsync(last); - - if (async) { - last.off('complete', getNext); - last.emit('complete'); - } - // emit "cycle" event - eventProps.type = 'cycle'; - eventProps.target = last; - cycleEvent = Event(eventProps); - options.onCycle.call(benches, cycleEvent); - - // choose next benchmark if not exiting early - if (!cycleEvent.aborted && raiseIndex() !== false) { - bench = queued ? benches[0] : result[index]; - if (isAsync(bench)) { - delay(bench, execute); - } - else if (async) { - // resume execution if previously asynchronous but now synchronous - while (execute()) { } - } - else { - // continue synchronous execution - return true; - } - } else { - // emit "complete" event - eventProps.type = 'complete'; - options.onComplete.call(benches, Event(eventProps)); - } - // When used as a listener `event.aborted = true` will cancel the rest of - // the "complete" listeners because they were already called above and when - // used as part of `getNext` the `return false` will exit the execution while-loop. - if (event) { - event.aborted = true; - } else { - return false; - } - } - - /** - * Checks if invoking `Benchmark#run` with asynchronous cycles. - */ - function isAsync(object) { - // avoid using `instanceof` here because of IE memory leak issues with host objects - var async = args[0] && args[0].async; - return Object(object).constructor == Benchmark && name == 'run' && - ((async == null ? object.options.async : async) && support.timeout || object.defer); - } - - /** - * Raises `index` to the next defined index or returns `false`. - */ - function raiseIndex() { - var length = result.length; - if (queued) { - // if queued remove the previous bench and subsequent skipped non-entries - do { - ++index > 0 && shift.call(benches); - } while ((length = benches.length) && !('0' in benches)); - } - else { - while (++index < length && !(index in result)) { } - } - // if we reached the last index then return `false` - return (queued ? length : index < length) ? index : (index = false); - } - - // juggle arguments - if (isClassOf(name, 'String')) { - // 2 arguments (array, name) - args = slice.call(arguments, 2); - } else { - // 2 arguments (array, options) - options = extend(options, name); - name = options.name; - args = isClassOf(args = 'args' in options ? options.args : [], 'Array') ? args : [args]; - queued = options.queued; - } - - // start iterating over the array - if (raiseIndex() !== false) { - // emit "start" event - bench = result[index]; - eventProps.type = 'start'; - eventProps.target = bench; - options.onStart.call(benches, Event(eventProps)); - - // end early if the suite was aborted in an "onStart" listener - if (benches.aborted && benches.constructor == Suite && name == 'run') { - // emit "cycle" event - eventProps.type = 'cycle'; - options.onCycle.call(benches, Event(eventProps)); - // emit "complete" event - eventProps.type = 'complete'; - options.onComplete.call(benches, Event(eventProps)); - } - // else start - else { - if (isAsync(bench)) { - delay(bench, execute); - } else { - while (execute()) { } - } - } - } - return result; - } - - /** - * Creates a string of joined array values or object key-value pairs. - * - * @static - * @memberOf Benchmark - * @param {Array|Object} object The object to operate on. - * @param {String} [separator1=','] The separator used between key-value pairs. - * @param {String} [separator2=': '] The separator used between keys and values. - * @returns {String} The joined result. - */ - function join(object, separator1, separator2) { - var result = [], - length = (object = Object(object)).length, - arrayLike = length === length >>> 0; - - separator2 || (separator2 = ': '); - each(object, function(value, key) { - result.push(arrayLike ? value : key + separator2 + value); - }); - return result.join(separator1 || ','); - } - - /** - * A generic `Array#map` like method. - * - * @static - * @memberOf Benchmark - * @param {Array} array The array to iterate over. - * @param {Function} callback The function called per iteration. - * @param {Mixed} thisArg The `this` binding for the callback. - * @returns {Array} A new array of values returned by the callback. - */ - function map(array, callback, thisArg) { - return reduce(array, function(result, value, index) { - result[index] = callback.call(thisArg, value, index, array); - return result; - }, Array(Object(array).length >>> 0)); - } - - /** - * Retrieves the value of a specified property from all items in an array. - * - * @static - * @memberOf Benchmark - * @param {Array} array The array to iterate over. - * @param {String} property The property to pluck. - * @returns {Array} A new array of property values. - */ - function pluck(array, property) { - return map(array, function(object) { - return object == null ? undefined : object[property]; - }); - } - - /** - * A generic `Array#reduce` like method. - * - * @static - * @memberOf Benchmark - * @param {Array} array The array to iterate over. - * @param {Function} callback The function called per iteration. - * @param {Mixed} accumulator Initial value of the accumulator. - * @returns {Mixed} The accumulator. - */ - function reduce(array, callback, accumulator) { - var noaccum = arguments.length < 3; - forEach(array, function(value, index) { - accumulator = noaccum ? (noaccum = false, value) : callback(accumulator, value, index, array); - }); - return accumulator; - } - - /*--------------------------------------------------------------------------*/ - - /** - * Aborts all benchmarks in the suite. - * - * @name abort - * @memberOf Benchmark.Suite - * @returns {Object} The suite instance. - */ - function abortSuite() { - var event, - me = this, - resetting = calledBy.resetSuite; - - if (me.running) { - event = Event('abort'); - me.emit(event); - if (!event.cancelled || resetting) { - // avoid infinite recursion - calledBy.abortSuite = true; - me.reset(); - delete calledBy.abortSuite; - - if (!resetting) { - me.aborted = true; - invoke(me, 'abort'); - } - } - } - return me; - } - - /** - * Adds a test to the benchmark suite. - * - * @memberOf Benchmark.Suite - * @param {String} name A name to identify the benchmark. - * @param {Function|String} fn The test to benchmark. - * @param {Object} [options={}] Options object. - * @returns {Object} The benchmark instance. - * @example - * - * // basic usage - * suite.add(fn); - * - * // or using a name first - * suite.add('foo', fn); - * - * // or with options - * suite.add('foo', fn, { - * 'onCycle': onCycle, - * 'onComplete': onComplete - * }); - * - * // or name and options - * suite.add('foo', { - * 'fn': fn, - * 'onCycle': onCycle, - * 'onComplete': onComplete - * }); - * - * // or options only - * suite.add({ - * 'name': 'foo', - * 'fn': fn, - * 'onCycle': onCycle, - * 'onComplete': onComplete - * }); - */ - function add(name, fn, options) { - var me = this, - bench = Benchmark(name, fn, options), - event = Event({ 'type': 'add', 'target': bench }); - - if (me.emit(event), !event.cancelled) { - me.push(bench); - } - return me; - } - - /** - * Creates a new suite with cloned benchmarks. - * - * @name clone - * @memberOf Benchmark.Suite - * @param {Object} options Options object to overwrite cloned options. - * @returns {Object} The new suite instance. - */ - function cloneSuite(options) { - var me = this, - result = new me.constructor(extend({}, me.options, options)); - - // copy own properties - forOwn(me, function(value, key) { - if (!hasKey(result, key)) { - result[key] = value && isClassOf(value.clone, 'Function') - ? value.clone() - : deepClone(value); - } - }); - return result; - } - - /** - * An `Array#filter` like method. - * - * @name filter - * @memberOf Benchmark.Suite - * @param {Function|String} callback The function/alias called per iteration. - * @returns {Object} A new suite of benchmarks that passed callback filter. - */ - function filterSuite(callback) { - var me = this, - result = new me.constructor; - - result.push.apply(result, filter(me, callback)); - return result; - } - - /** - * Resets all benchmarks in the suite. - * - * @name reset - * @memberOf Benchmark.Suite - * @returns {Object} The suite instance. - */ - function resetSuite() { - var event, - me = this, - aborting = calledBy.abortSuite; - - if (me.running && !aborting) { - // no worries, `resetSuite()` is called within `abortSuite()` - calledBy.resetSuite = true; - me.abort(); - delete calledBy.resetSuite; - } - // reset if the state has changed - else if ((me.aborted || me.running) && - (me.emit(event = Event('reset')), !event.cancelled)) { - me.running = false; - if (!aborting) { - invoke(me, 'reset'); - } - } - return me; - } - - /** - * Runs the suite. - * - * @name run - * @memberOf Benchmark.Suite - * @param {Object} [options={}] Options object. - * @returns {Object} The suite instance. - * @example - * - * // basic usage - * suite.run(); - * - * // or with options - * suite.run({ 'async': true, 'queued': true }); - */ - function runSuite(options) { - var me = this; - - me.reset(); - me.running = true; - options || (options = {}); - - invoke(me, { - 'name': 'run', - 'args': options, - 'queued': options.queued, - 'onStart': function(event) { - me.emit(event); - }, - 'onCycle': function(event) { - var bench = event.target; - if (bench.error) { - me.emit({ 'type': 'error', 'target': bench }); - } - me.emit(event); - event.aborted = me.aborted; - }, - 'onComplete': function(event) { - me.running = false; - me.emit(event); - } - }); - return me; - } - - /*--------------------------------------------------------------------------*/ - - /** - * Executes all registered listeners of the specified event type. - * - * @memberOf Benchmark, Benchmark.Suite - * @param {String|Object} type The event type or object. - * @returns {Mixed} Returns the return value of the last listener executed. - */ - function emit(type) { - var listeners, - me = this, - event = Event(type), - events = me.events, - args = (arguments[0] = event, arguments); - - event.currentTarget || (event.currentTarget = me); - event.target || (event.target = me); - delete event.result; - - if (events && (listeners = hasKey(events, event.type) && events[event.type])) { - forEach(listeners.slice(), function(listener) { - if ((event.result = listener.apply(me, args)) === false) { - event.cancelled = true; - } - return !event.aborted; - }); - } - return event.result; - } - - /** - * Returns an array of event listeners for a given type that can be manipulated - * to add or remove listeners. - * - * @memberOf Benchmark, Benchmark.Suite - * @param {String} type The event type. - * @returns {Array} The listeners array. - */ - function listeners(type) { - var me = this, - events = me.events || (me.events = {}); - - return hasKey(events, type) ? events[type] : (events[type] = []); - } - - /** - * Unregisters a listener for the specified event type(s), - * or unregisters all listeners for the specified event type(s), - * or unregisters all listeners for all event types. - * - * @memberOf Benchmark, Benchmark.Suite - * @param {String} [type] The event type. - * @param {Function} [listener] The function to unregister. - * @returns {Object} The benchmark instance. - * @example - * - * // unregister a listener for an event type - * bench.off('cycle', listener); - * - * // unregister a listener for multiple event types - * bench.off('start cycle', listener); - * - * // unregister all listeners for an event type - * bench.off('cycle'); - * - * // unregister all listeners for multiple event types - * bench.off('start cycle complete'); - * - * // unregister all listeners for all event types - * bench.off(); - */ - function off(type, listener) { - var me = this, - events = me.events; - - events && each(type ? type.split(' ') : events, function(listeners, type) { - var index; - if (typeof listeners == 'string') { - type = listeners; - listeners = hasKey(events, type) && events[type]; - } - if (listeners) { - if (listener) { - index = indexOf(listeners, listener); - if (index > -1) { - listeners.splice(index, 1); - } - } else { - listeners.length = 0; - } - } - }); - return me; - } - - /** - * Registers a listener for the specified event type(s). - * - * @memberOf Benchmark, Benchmark.Suite - * @param {String} type The event type. - * @param {Function} listener The function to register. - * @returns {Object} The benchmark instance. - * @example - * - * // register a listener for an event type - * bench.on('cycle', listener); - * - * // register a listener for multiple event types - * bench.on('start cycle', listener); - */ - function on(type, listener) { - var me = this, - events = me.events || (me.events = {}); - - forEach(type.split(' '), function(type) { - (hasKey(events, type) - ? events[type] - : (events[type] = []) - ).push(listener); - }); - return me; - } - - /*--------------------------------------------------------------------------*/ - - /** - * Aborts the benchmark without recording times. - * - * @memberOf Benchmark - * @returns {Object} The benchmark instance. - */ - function abort() { - var event, - me = this, - resetting = calledBy.reset; - - if (me.running) { - event = Event('abort'); - me.emit(event); - if (!event.cancelled || resetting) { - // avoid infinite recursion - calledBy.abort = true; - me.reset(); - delete calledBy.abort; - - if (support.timeout) { - clearTimeout(me._timerId); - delete me._timerId; - } - if (!resetting) { - me.aborted = true; - me.running = false; - } - } - } - return me; - } - - /** - * Creates a new benchmark using the same test and options. - * - * @memberOf Benchmark - * @param {Object} options Options object to overwrite cloned options. - * @returns {Object} The new benchmark instance. - * @example - * - * var bizarro = bench.clone({ - * 'name': 'doppelganger' - * }); - */ - function clone(options) { - var me = this, - result = new me.constructor(extend({}, me, options)); - - // correct the `options` object - result.options = extend({}, me.options, options); - - // copy own custom properties - forOwn(me, function(value, key) { - if (!hasKey(result, key)) { - result[key] = deepClone(value); - } - }); - return result; - } - - /** - * Determines if a benchmark is faster than another. - * - * @memberOf Benchmark - * @param {Object} other The benchmark to compare. - * @returns {Number} Returns `-1` if slower, `1` if faster, and `0` if indeterminate. - */ - function compare(other) { - var critical, - zStat, - me = this, - sample1 = me.stats.sample, - sample2 = other.stats.sample, - size1 = sample1.length, - size2 = sample2.length, - maxSize = max(size1, size2), - minSize = min(size1, size2), - u1 = getU(sample1, sample2), - u2 = getU(sample2, sample1), - u = min(u1, u2); - - function getScore(xA, sampleB) { - return reduce(sampleB, function(total, xB) { - return total + (xB > xA ? 0 : xB < xA ? 1 : 0.5); - }, 0); - } - - function getU(sampleA, sampleB) { - return reduce(sampleA, function(total, xA) { - return total + getScore(xA, sampleB); - }, 0); - } - - function getZ(u) { - return (u - ((size1 * size2) / 2)) / sqrt((size1 * size2 * (size1 + size2 + 1)) / 12); - } - - // exit early if comparing the same benchmark - if (me == other) { - return 0; - } - // reject the null hyphothesis the two samples come from the - // same population (i.e. have the same median) if... - if (size1 + size2 > 30) { - // ...the z-stat is greater than 1.96 or less than -1.96 - // http://www.statisticslectures.com/topics/mannwhitneyu/ - zStat = getZ(u); - return abs(zStat) > 1.96 ? (zStat > 0 ? -1 : 1) : 0; - } - // ...the U value is less than or equal the critical U value - // http://www.geoib.com/mann-whitney-u-test.html - critical = maxSize < 5 || minSize < 3 ? 0 : uTable[maxSize][minSize - 3]; - return u <= critical ? (u == u1 ? 1 : -1) : 0; - } - - /** - * Reset properties and abort if running. - * - * @memberOf Benchmark - * @returns {Object} The benchmark instance. - */ - function reset() { - var data, - event, - me = this, - index = 0, - changes = { 'length': 0 }, - queue = { 'length': 0 }; - - if (me.running && !calledBy.abort) { - // no worries, `reset()` is called within `abort()` - calledBy.reset = true; - me.abort(); - delete calledBy.reset; - } - else { - // a non-recursive solution to check if properties have changed - // http://www.jslab.dk/articles/non.recursive.preorder.traversal.part4 - data = { 'destination': me, 'source': extend({}, me.constructor.prototype, me.options) }; - do { - forOwn(data.source, function(value, key) { - var changed, - destination = data.destination, - currValue = destination[key]; - - if (value && typeof value == 'object') { - if (isClassOf(value, 'Array')) { - // check if an array value has changed to a non-array value - if (!isClassOf(currValue, 'Array')) { - changed = currValue = []; - } - // or has changed its length - if (currValue.length != value.length) { - changed = currValue = currValue.slice(0, value.length); - currValue.length = value.length; - } - } - // check if an object has changed to a non-object value - else if (!currValue || typeof currValue != 'object') { - changed = currValue = {}; - } - // register a changed object - if (changed) { - changes[changes.length++] = { 'destination': destination, 'key': key, 'value': currValue }; - } - queue[queue.length++] = { 'destination': currValue, 'source': value }; - } - // register a changed primitive - else if (value !== currValue && !(value == null || isClassOf(value, 'Function'))) { - changes[changes.length++] = { 'destination': destination, 'key': key, 'value': value }; - } - }); - } - while ((data = queue[index++])); - - // if changed emit the `reset` event and if it isn't cancelled reset the benchmark - if (changes.length && (me.emit(event = Event('reset')), !event.cancelled)) { - forEach(changes, function(data) { - data.destination[data.key] = data.value; - }); - } - } - return me; - } - - /** - * Displays relevant benchmark information when coerced to a string. - * - * @name toString - * @memberOf Benchmark - * @returns {String} A string representation of the benchmark instance. - */ - function toStringBench() { - var me = this, - error = me.error, - hz = me.hz, - id = me.id, - stats = me.stats, - size = stats.sample.length, - pm = support.java ? '+/-' : '\xb1', - result = me.name || (isNaN(id) ? id : ''); - - if (error) { - result += ': ' + join(error); - } else { - result += ' x ' + formatNumber(hz.toFixed(hz < 100 ? 2 : 0)) + ' ops/sec ' + pm + - stats.rme.toFixed(2) + '% (' + size + ' run' + (size == 1 ? '' : 's') + ' sampled)'; - } - return result; - } - - /*--------------------------------------------------------------------------*/ - - /** - * Clocks the time taken to execute a test per cycle (secs). - * - * @private - * @param {Object} bench The benchmark instance. - * @returns {Number} The time taken. - */ - function clock() { - var applet, - options = Benchmark.options, - template = { 'begin': 's$=new n$', 'end': 'r$=(new n$-s$)/1e3', 'uid': uid }, - timers = [{ 'ns': timer.ns, 'res': max(0.0015, getRes('ms')), 'unit': 'ms' }]; - - // lazy define for hi-res timers - clock = function(clone) { - var deferred; - if (clone instanceof Deferred) { - deferred = clone; - clone = deferred.benchmark; - } - - var bench = clone._original, - fn = bench.fn, - fnArg = deferred ? getFirstArgument(fn) || 'deferred' : '', - stringable = isStringable(fn); - - var source = { - 'setup': getSource(bench.setup, preprocess('m$.setup()')), - 'fn': getSource(fn, preprocess('m$.fn(' + fnArg + ')')), - 'fnArg': fnArg, - 'teardown': getSource(bench.teardown, preprocess('m$.teardown()')) - }; - - var count = bench.count = clone.count, - decompilable = support.decompilation || stringable, - id = bench.id, - isEmpty = !(source.fn || stringable), - name = bench.name || (typeof id == 'number' ? '' : id), - ns = timer.ns, - result = 0; - - // init `minTime` if needed - clone.minTime = bench.minTime || (bench.minTime = bench.options.minTime = options.minTime); - - // repair nanosecond timer - // (some Chrome builds erase the `ns` variable after millions of executions) - if (applet) { - try { - ns.nanoTime(); - } catch(e) { - // use non-element to avoid issues with libs that augment them - ns = timer.ns = new applet.Packages.nano; - } - } - - // Compile in setup/teardown functions and the test loop. - // Create a new compiled test, instead of using the cached `bench.compiled`, - // to avoid potential engine optimizations enabled over the life of the test. - var compiled = bench.compiled = createFunction(preprocess('t$'), interpolate( - preprocess(deferred - ? 'var d$=this,#{fnArg}=d$,m$=d$.benchmark._original,f$=m$.fn,su$=m$.setup,td$=m$.teardown;' + - // when `deferred.cycles` is `0` then... - 'if(!d$.cycles){' + - // set `deferred.fn` - 'd$.fn=function(){var #{fnArg}=d$;if(typeof f$=="function"){try{#{fn}\n}catch(e$){f$(d$)}}else{#{fn}\n}};' + - // set `deferred.teardown` - 'd$.teardown=function(){d$.cycles=0;if(typeof td$=="function"){try{#{teardown}\n}catch(e$){td$()}}else{#{teardown}\n}};' + - // execute the benchmark's `setup` - 'if(typeof su$=="function"){try{#{setup}\n}catch(e$){su$()}}else{#{setup}\n};' + - // start timer - 't$.start(d$);' + - // execute `deferred.fn` and return a dummy object - '}d$.fn();return{}' - - : 'var r$,s$,m$=this,f$=m$.fn,i$=m$.count,n$=t$.ns;#{setup}\n#{begin};' + - 'while(i$--){#{fn}\n}#{end};#{teardown}\nreturn{elapsed:r$,uid:"#{uid}"}'), - source - )); - - try { - if (isEmpty) { - // Firefox may remove dead code from Function#toString results - // http://bugzil.la/536085 - throw new Error('The test "' + name + '" is empty. This may be the result of dead code removal.'); - } - else if (!deferred) { - // pretest to determine if compiled code is exits early, usually by a - // rogue `return` statement, by checking for a return object with the uid - bench.count = 1; - compiled = (compiled.call(bench, timer) || {}).uid == uid && compiled; - bench.count = count; - } - } catch(e) { - compiled = null; - clone.error = e || new Error(String(e)); - bench.count = count; - } - // fallback when a test exits early or errors during pretest - if (decompilable && !compiled && !deferred && !isEmpty) { - compiled = createFunction(preprocess('t$'), interpolate( - preprocess( - (clone.error && !stringable - ? 'var r$,s$,m$=this,f$=m$.fn,i$=m$.count' - : 'function f$(){#{fn}\n}var r$,s$,m$=this,i$=m$.count' - ) + - ',n$=t$.ns;#{setup}\n#{begin};m$.f$=f$;while(i$--){m$.f$()}#{end};' + - 'delete m$.f$;#{teardown}\nreturn{elapsed:r$}' - ), - source - )); - - try { - // pretest one more time to check for errors - bench.count = 1; - compiled.call(bench, timer); - bench.compiled = compiled; - bench.count = count; - delete clone.error; - } - catch(e) { - bench.count = count; - if (clone.error) { - compiled = null; - } else { - bench.compiled = compiled; - clone.error = e || new Error(String(e)); - } - } - } - // assign `compiled` to `clone` before calling in case a deferred benchmark - // immediately calls `deferred.resolve()` - clone.compiled = compiled; - // if no errors run the full test loop - if (!clone.error) { - result = compiled.call(deferred || bench, timer).elapsed; - } - return result; - }; - - /*------------------------------------------------------------------------*/ - - /** - * Gets the current timer's minimum resolution (secs). - */ - function getRes(unit) { - var measured, - begin, - count = 30, - divisor = 1e3, - ns = timer.ns, - sample = []; - - // get average smallest measurable time - while (count--) { - if (unit == 'us') { - divisor = 1e6; - if (ns.stop) { - ns.start(); - while (!(measured = ns.microseconds())) { } - } else if (ns[perfName]) { - divisor = 1e3; - measured = Function('n', 'var r,s=n.' + perfName + '();while(!(r=n.' + perfName + '()-s)){};return r')(ns); - } else { - begin = ns(); - while (!(measured = ns() - begin)) { } - } - } - else if (unit == 'ns') { - divisor = 1e9; - if (ns.nanoTime) { - begin = ns.nanoTime(); - while (!(measured = ns.nanoTime() - begin)) { } - } else { - begin = (begin = ns())[0] + (begin[1] / divisor); - while (!(measured = ((measured = ns())[0] + (measured[1] / divisor)) - begin)) { } - divisor = 1; - } - } - else { - begin = new ns; - while (!(measured = new ns - begin)) { } - } - // check for broken timers (nanoTime may have issues) - // http://alivebutsleepy.srnet.cz/unreliable-system-nanotime/ - if (measured > 0) { - sample.push(measured); - } else { - sample.push(Infinity); - break; - } - } - // convert to seconds - return getMean(sample) / divisor; - } - - /** - * Replaces all occurrences of `$` with a unique number and - * template tokens with content. - */ - function preprocess(code) { - return interpolate(code, template).replace(/\$/g, /\d+/.exec(uid)); - } - - /*------------------------------------------------------------------------*/ - - // detect nanosecond support from a Java applet - each(doc && doc.applets || [], function(element) { - return !(timer.ns = applet = 'nanoTime' in element && element); - }); - - // check type in case Safari returns an object instead of a number - try { - if (typeof timer.ns.nanoTime() == 'number') { - timers.push({ 'ns': timer.ns, 'res': getRes('ns'), 'unit': 'ns' }); - } - } catch(e) { } - - // detect Chrome's microsecond timer: - // enable benchmarking via the --enable-benchmarking command - // line switch in at least Chrome 7 to use chrome.Interval - try { - if ((timer.ns = new (window.chrome || window.chromium).Interval)) { - timers.push({ 'ns': timer.ns, 'res': getRes('us'), 'unit': 'us' }); - } - } catch(e) { } - - // detect `performance.now` microsecond resolution timer - if ((timer.ns = perfName && perfObject)) { - timers.push({ 'ns': timer.ns, 'res': getRes('us'), 'unit': 'us' }); - } - - // detect Node's nanosecond resolution timer available in Node >= 0.8 - if (processObject && typeof (timer.ns = processObject.hrtime) == 'function') { - timers.push({ 'ns': timer.ns, 'res': getRes('ns'), 'unit': 'ns' }); - } - - // detect Wade Simmons' Node microtime module - if (microtimeObject && typeof (timer.ns = microtimeObject.now) == 'function') { - timers.push({ 'ns': timer.ns, 'res': getRes('us'), 'unit': 'us' }); - } - - // pick timer with highest resolution - timer = reduce(timers, function(timer, other) { - return other.res < timer.res ? other : timer; - }); - - // remove unused applet - if (timer.unit != 'ns' && applet) { - applet = destroyElement(applet); - } - // error if there are no working timers - if (timer.res == Infinity) { - throw new Error('Benchmark.js was unable to find a working timer.'); - } - // use API of chosen timer - if (timer.unit == 'ns') { - if (timer.ns.nanoTime) { - extend(template, { - 'begin': 's$=n$.nanoTime()', - 'end': 'r$=(n$.nanoTime()-s$)/1e9' - }); - } else { - extend(template, { - 'begin': 's$=n$()', - 'end': 'r$=n$(s$);r$=r$[0]+(r$[1]/1e9)' - }); - } - } - else if (timer.unit == 'us') { - if (timer.ns.stop) { - extend(template, { - 'begin': 's$=n$.start()', - 'end': 'r$=n$.microseconds()/1e6' - }); - } else if (perfName) { - extend(template, { - 'begin': 's$=n$.' + perfName + '()', - 'end': 'r$=(n$.' + perfName + '()-s$)/1e3' - }); - } else { - extend(template, { - 'begin': 's$=n$()', - 'end': 'r$=(n$()-s$)/1e6' - }); - } - } - - // define `timer` methods - timer.start = createFunction(preprocess('o$'), - preprocess('var n$=this.ns,#{begin};o$.elapsed=0;o$.timeStamp=s$')); - - timer.stop = createFunction(preprocess('o$'), - preprocess('var n$=this.ns,s$=o$.timeStamp,#{end};o$.elapsed=r$')); - - // resolve time span required to achieve a percent uncertainty of at most 1% - // http://spiff.rit.edu/classes/phys273/uncert/uncert.html - options.minTime || (options.minTime = max(timer.res / 2 / 0.01, 0.05)); - return clock.apply(null, arguments); - } - - /*--------------------------------------------------------------------------*/ - - /** - * Computes stats on benchmark results. - * - * @private - * @param {Object} bench The benchmark instance. - * @param {Object} options The options object. - */ - function compute(bench, options) { - options || (options = {}); - - var async = options.async, - elapsed = 0, - initCount = bench.initCount, - minSamples = bench.minSamples, - queue = [], - sample = bench.stats.sample; - - /** - * Adds a clone to the queue. - */ - function enqueue() { - queue.push(bench.clone({ - '_original': bench, - 'events': { - 'abort': [update], - 'cycle': [update], - 'error': [update], - 'start': [update] - } - })); - } - - /** - * Updates the clone/original benchmarks to keep their data in sync. - */ - function update(event) { - var clone = this, - type = event.type; - - if (bench.running) { - if (type == 'start') { - // Note: `clone.minTime` prop is inited in `clock()` - clone.count = bench.initCount; - } - else { - if (type == 'error') { - bench.error = clone.error; - } - if (type == 'abort') { - bench.abort(); - bench.emit('cycle'); - } else { - event.currentTarget = event.target = bench; - bench.emit(event); - } - } - } else if (bench.aborted) { - // clear abort listeners to avoid triggering bench's abort/cycle again - clone.events.abort.length = 0; - clone.abort(); - } - } - - /** - * Determines if more clones should be queued or if cycling should stop. - */ - function evaluate(event) { - var critical, - df, - mean, - moe, - rme, - sd, - sem, - variance, - clone = event.target, - done = bench.aborted, - now = +new Date, - size = sample.push(clone.times.period), - maxedOut = size >= minSamples && (elapsed += now - clone.times.timeStamp) / 1e3 > bench.maxTime, - times = bench.times, - varOf = function(sum, x) { return sum + pow(x - mean, 2); }; - - // exit early for aborted or unclockable tests - if (done || clone.hz == Infinity) { - maxedOut = !(size = sample.length = queue.length = 0); - } - - if (!done) { - // sample mean (estimate of the population mean) - mean = getMean(sample); - // sample variance (estimate of the population variance) - variance = reduce(sample, varOf, 0) / (size - 1) || 0; - // sample standard deviation (estimate of the population standard deviation) - sd = sqrt(variance); - // standard error of the mean (a.k.a. the standard deviation of the sampling distribution of the sample mean) - sem = sd / sqrt(size); - // degrees of freedom - df = size - 1; - // critical value - critical = tTable[Math.round(df) || 1] || tTable.infinity; - // margin of error - moe = sem * critical; - // relative margin of error - rme = (moe / mean) * 100 || 0; - - extend(bench.stats, { - 'deviation': sd, - 'mean': mean, - 'moe': moe, - 'rme': rme, - 'sem': sem, - 'variance': variance - }); - - // Abort the cycle loop when the minimum sample size has been collected - // and the elapsed time exceeds the maximum time allowed per benchmark. - // We don't count cycle delays toward the max time because delays may be - // increased by browsers that clamp timeouts for inactive tabs. - // https://developer.mozilla.org/en/window.setTimeout#Inactive_tabs - if (maxedOut) { - // reset the `initCount` in case the benchmark is rerun - bench.initCount = initCount; - bench.running = false; - done = true; - times.elapsed = (now - times.timeStamp) / 1e3; - } - if (bench.hz != Infinity) { - bench.hz = 1 / mean; - times.cycle = mean * bench.count; - times.period = mean; - } - } - // if time permits, increase sample size to reduce the margin of error - if (queue.length < 2 && !maxedOut) { - enqueue(); - } - // abort the invoke cycle when done - event.aborted = done; - } - - // init queue and begin - enqueue(); - invoke(queue, { - 'name': 'run', - 'args': { 'async': async }, - 'queued': true, - 'onCycle': evaluate, - 'onComplete': function() { bench.emit('complete'); } - }); - } - - /*--------------------------------------------------------------------------*/ - - /** - * Cycles a benchmark until a run `count` can be established. - * - * @private - * @param {Object} clone The cloned benchmark instance. - * @param {Object} options The options object. - */ - function cycle(clone, options) { - options || (options = {}); - - var deferred; - if (clone instanceof Deferred) { - deferred = clone; - clone = clone.benchmark; - } - - var clocked, - cycles, - divisor, - event, - minTime, - period, - async = options.async, - bench = clone._original, - count = clone.count, - times = clone.times; - - // continue, if not aborted between cycles - if (clone.running) { - // `minTime` is set to `Benchmark.options.minTime` in `clock()` - cycles = ++clone.cycles; - clocked = deferred ? deferred.elapsed : clock(clone); - minTime = clone.minTime; - - if (cycles > bench.cycles) { - bench.cycles = cycles; - } - if (clone.error) { - event = Event('error'); - event.message = clone.error; - clone.emit(event); - if (!event.cancelled) { - clone.abort(); - } - } - } - - // continue, if not errored - if (clone.running) { - // time taken to complete last test cycle - bench.times.cycle = times.cycle = clocked; - // seconds per operation - period = bench.times.period = times.period = clocked / count; - // ops per second - bench.hz = clone.hz = 1 / period; - // avoid working our way up to this next time - bench.initCount = clone.initCount = count; - // do we need to do another cycle? - clone.running = clocked < minTime; - - if (clone.running) { - // tests may clock at `0` when `initCount` is a small number, - // to avoid that we set its count to something a bit higher - if (!clocked && (divisor = divisors[clone.cycles]) != null) { - count = floor(4e6 / divisor); - } - // calculate how many more iterations it will take to achive the `minTime` - if (count <= clone.count) { - count += Math.ceil((minTime - clocked) / period); - } - clone.running = count != Infinity; - } - } - // should we exit early? - event = Event('cycle'); - clone.emit(event); - if (event.aborted) { - clone.abort(); - } - // figure out what to do next - if (clone.running) { - // start a new cycle - clone.count = count; - if (deferred) { - clone.compiled.call(deferred, timer); - } else if (async) { - delay(clone, function() { cycle(clone, options); }); - } else { - cycle(clone); - } - } - else { - // fix TraceMonkey bug associated with clock fallbacks - // http://bugzil.la/509069 - if (support.browser) { - runScript(uid + '=1;delete ' + uid); - } - // done - clone.emit('complete'); - } - } - - /*--------------------------------------------------------------------------*/ - - /** - * Runs the benchmark. - * - * @memberOf Benchmark - * @param {Object} [options={}] Options object. - * @returns {Object} The benchmark instance. - * @example - * - * // basic usage - * bench.run(); - * - * // or with options - * bench.run({ 'async': true }); - */ - function run(options) { - var me = this, - event = Event('start'); - - // set `running` to `false` so `reset()` won't call `abort()` - me.running = false; - me.reset(); - me.running = true; - - me.count = me.initCount; - me.times.timeStamp = +new Date; - me.emit(event); - - if (!event.cancelled) { - options = { 'async': ((options = options && options.async) == null ? me.async : options) && support.timeout }; - - // for clones created within `compute()` - if (me._original) { - if (me.defer) { - Deferred(me); - } else { - cycle(me, options); - } - } - // for original benchmarks - else { - compute(me, options); - } - } - return me; - } - - /*--------------------------------------------------------------------------*/ - - // Firefox 1 erroneously defines variable and argument names of functions on - // the function itself as non-configurable properties with `undefined` values. - // The bugginess continues as the `Benchmark` constructor has an argument - // named `options` and Firefox 1 will not assign a value to `Benchmark.options`, - // making it non-writable in the process, unless it is the first property - // assigned by for-in loop of `extend()`. - extend(Benchmark, { - - /** - * The default options copied by benchmark instances. - * - * @static - * @memberOf Benchmark - * @type Object - */ - 'options': { - - /** - * A flag to indicate that benchmark cycles will execute asynchronously - * by default. - * - * @memberOf Benchmark.options - * @type Boolean - */ - 'async': false, - - /** - * A flag to indicate that the benchmark clock is deferred. - * - * @memberOf Benchmark.options - * @type Boolean - */ - 'defer': false, - - /** - * The delay between test cycles (secs). - * @memberOf Benchmark.options - * @type Number - */ - 'delay': 0.005, - - /** - * Displayed by Benchmark#toString when a `name` is not available - * (auto-generated if absent). - * - * @memberOf Benchmark.options - * @type String - */ - 'id': undefined, - - /** - * The default number of times to execute a test on a benchmark's first cycle. - * - * @memberOf Benchmark.options - * @type Number - */ - 'initCount': 1, - - /** - * The maximum time a benchmark is allowed to run before finishing (secs). - * Note: Cycle delays aren't counted toward the maximum time. - * - * @memberOf Benchmark.options - * @type Number - */ - 'maxTime': 5, - - /** - * The minimum sample size required to perform statistical analysis. - * - * @memberOf Benchmark.options - * @type Number - */ - 'minSamples': 5, - - /** - * The time needed to reduce the percent uncertainty of measurement to 1% (secs). - * - * @memberOf Benchmark.options - * @type Number - */ - 'minTime': 0, - - /** - * The name of the benchmark. - * - * @memberOf Benchmark.options - * @type String - */ - 'name': undefined, - - /** - * An event listener called when the benchmark is aborted. - * - * @memberOf Benchmark.options - * @type Function - */ - 'onAbort': undefined, - - /** - * An event listener called when the benchmark completes running. - * - * @memberOf Benchmark.options - * @type Function - */ - 'onComplete': undefined, - - /** - * An event listener called after each run cycle. - * - * @memberOf Benchmark.options - * @type Function - */ - 'onCycle': undefined, - - /** - * An event listener called when a test errors. - * - * @memberOf Benchmark.options - * @type Function - */ - 'onError': undefined, - - /** - * An event listener called when the benchmark is reset. - * - * @memberOf Benchmark.options - * @type Function - */ - 'onReset': undefined, - - /** - * An event listener called when the benchmark starts running. - * - * @memberOf Benchmark.options - * @type Function - */ - 'onStart': undefined - }, - - /** - * Platform object with properties describing things like browser name, - * version, and operating system. - * - * @static - * @memberOf Benchmark - * @type Object - */ - 'platform': req('platform') || window.platform || { - - /** - * The platform description. - * - * @memberOf Benchmark.platform - * @type String - */ - 'description': window.navigator && navigator.userAgent || null, - - /** - * The name of the browser layout engine. - * - * @memberOf Benchmark.platform - * @type String|Null - */ - 'layout': null, - - /** - * The name of the product hosting the browser. - * - * @memberOf Benchmark.platform - * @type String|Null - */ - 'product': null, - - /** - * The name of the browser/environment. - * - * @memberOf Benchmark.platform - * @type String|Null - */ - 'name': null, - - /** - * The name of the product's manufacturer. - * - * @memberOf Benchmark.platform - * @type String|Null - */ - 'manufacturer': null, - - /** - * The name of the operating system. - * - * @memberOf Benchmark.platform - * @type String|Null - */ - 'os': null, - - /** - * The alpha/beta release indicator. - * - * @memberOf Benchmark.platform - * @type String|Null - */ - 'prerelease': null, - - /** - * The browser/environment version. - * - * @memberOf Benchmark.platform - * @type String|Null - */ - 'version': null, - - /** - * Return platform description when the platform object is coerced to a string. - * - * @memberOf Benchmark.platform - * @type Function - * @returns {String} The platform description. - */ - 'toString': function() { - return this.description || ''; - } - }, - - /** - * The semantic version number. - * - * @static - * @memberOf Benchmark - * @type String - */ - 'version': '1.0.0', - - // an object of environment/feature detection flags - 'support': support, - - // clone objects - 'deepClone': deepClone, - - // iteration utility - 'each': each, - - // augment objects - 'extend': extend, - - // generic Array#filter - 'filter': filter, - - // generic Array#forEach - 'forEach': forEach, - - // generic own property iteration utility - 'forOwn': forOwn, - - // converts a number to a comma-separated string - 'formatNumber': formatNumber, - - // generic Object#hasOwnProperty - // (trigger hasKey's lazy define before assigning it to Benchmark) - 'hasKey': (hasKey(Benchmark, ''), hasKey), - - // generic Array#indexOf - 'indexOf': indexOf, - - // template utility - 'interpolate': interpolate, - - // invokes a method on each item in an array - 'invoke': invoke, - - // generic Array#join for arrays and objects - 'join': join, - - // generic Array#map - 'map': map, - - // retrieves a property value from each item in an array - 'pluck': pluck, - - // generic Array#reduce - 'reduce': reduce - }); - - /*--------------------------------------------------------------------------*/ - - extend(Benchmark.prototype, { - - /** - * The number of times a test was executed. - * - * @memberOf Benchmark - * @type Number - */ - 'count': 0, - - /** - * The number of cycles performed while benchmarking. - * - * @memberOf Benchmark - * @type Number - */ - 'cycles': 0, - - /** - * The number of executions per second. - * - * @memberOf Benchmark - * @type Number - */ - 'hz': 0, - - /** - * The compiled test function. - * - * @memberOf Benchmark - * @type Function|String - */ - 'compiled': undefined, - - /** - * The error object if the test failed. - * - * @memberOf Benchmark - * @type Object - */ - 'error': undefined, - - /** - * The test to benchmark. - * - * @memberOf Benchmark - * @type Function|String - */ - 'fn': undefined, - - /** - * A flag to indicate if the benchmark is aborted. - * - * @memberOf Benchmark - * @type Boolean - */ - 'aborted': false, - - /** - * A flag to indicate if the benchmark is running. - * - * @memberOf Benchmark - * @type Boolean - */ - 'running': false, - - /** - * Compiled into the test and executed immediately **before** the test loop. - * - * @memberOf Benchmark - * @type Function|String - * @example - * - * // basic usage - * var bench = Benchmark({ - * 'setup': function() { - * var c = this.count, - * element = document.getElementById('container'); - * while (c--) { - * element.appendChild(document.createElement('div')); - * } - * }, - * 'fn': function() { - * element.removeChild(element.lastChild); - * } - * }); - * - * // compiles to something like: - * var c = this.count, - * element = document.getElementById('container'); - * while (c--) { - * element.appendChild(document.createElement('div')); - * } - * var start = new Date; - * while (count--) { - * element.removeChild(element.lastChild); - * } - * var end = new Date - start; - * - * // or using strings - * var bench = Benchmark({ - * 'setup': '\ - * var a = 0;\n\ - * (function() {\n\ - * (function() {\n\ - * (function() {', - * 'fn': 'a += 1;', - * 'teardown': '\ - * }())\n\ - * }())\n\ - * }())' - * }); - * - * // compiles to something like: - * var a = 0; - * (function() { - * (function() { - * (function() { - * var start = new Date; - * while (count--) { - * a += 1; - * } - * var end = new Date - start; - * }()) - * }()) - * }()) - */ - 'setup': noop, - - /** - * Compiled into the test and executed immediately **after** the test loop. - * - * @memberOf Benchmark - * @type Function|String - */ - 'teardown': noop, - - /** - * An object of stats including mean, margin or error, and standard deviation. - * - * @memberOf Benchmark - * @type Object - */ - 'stats': { - - /** - * The margin of error. - * - * @memberOf Benchmark#stats - * @type Number - */ - 'moe': 0, - - /** - * The relative margin of error (expressed as a percentage of the mean). - * - * @memberOf Benchmark#stats - * @type Number - */ - 'rme': 0, - - /** - * The standard error of the mean. - * - * @memberOf Benchmark#stats - * @type Number - */ - 'sem': 0, - - /** - * The sample standard deviation. - * - * @memberOf Benchmark#stats - * @type Number - */ - 'deviation': 0, - - /** - * The sample arithmetic mean. - * - * @memberOf Benchmark#stats - * @type Number - */ - 'mean': 0, - - /** - * The array of sampled periods. - * - * @memberOf Benchmark#stats - * @type Array - */ - 'sample': [], - - /** - * The sample variance. - * - * @memberOf Benchmark#stats - * @type Number - */ - 'variance': 0 - }, - - /** - * An object of timing data including cycle, elapsed, period, start, and stop. - * - * @memberOf Benchmark - * @type Object - */ - 'times': { - - /** - * The time taken to complete the last cycle (secs). - * - * @memberOf Benchmark#times - * @type Number - */ - 'cycle': 0, - - /** - * The time taken to complete the benchmark (secs). - * - * @memberOf Benchmark#times - * @type Number - */ - 'elapsed': 0, - - /** - * The time taken to execute the test once (secs). - * - * @memberOf Benchmark#times - * @type Number - */ - 'period': 0, - - /** - * A timestamp of when the benchmark started (ms). - * - * @memberOf Benchmark#times - * @type Number - */ - 'timeStamp': 0 - }, - - // aborts benchmark (does not record times) - 'abort': abort, - - // creates a new benchmark using the same test and options - 'clone': clone, - - // compares benchmark's hertz with another - 'compare': compare, - - // executes listeners - 'emit': emit, - - // get listeners - 'listeners': listeners, - - // unregister listeners - 'off': off, - - // register listeners - 'on': on, - - // reset benchmark properties - 'reset': reset, - - // runs the benchmark - 'run': run, - - // pretty print benchmark info - 'toString': toStringBench - }); - - /*--------------------------------------------------------------------------*/ - - extend(Deferred.prototype, { - - /** - * The deferred benchmark instance. - * - * @memberOf Benchmark.Deferred - * @type Object - */ - 'benchmark': null, - - /** - * The number of deferred cycles performed while benchmarking. - * - * @memberOf Benchmark.Deferred - * @type Number - */ - 'cycles': 0, - - /** - * The time taken to complete the deferred benchmark (secs). - * - * @memberOf Benchmark.Deferred - * @type Number - */ - 'elapsed': 0, - - /** - * A timestamp of when the deferred benchmark started (ms). - * - * @memberOf Benchmark.Deferred - * @type Number - */ - 'timeStamp': 0, - - // cycles/completes the deferred benchmark - 'resolve': resolve - }); - - /*--------------------------------------------------------------------------*/ - - extend(Event.prototype, { - - /** - * A flag to indicate if the emitters listener iteration is aborted. - * - * @memberOf Benchmark.Event - * @type Boolean - */ - 'aborted': false, - - /** - * A flag to indicate if the default action is cancelled. - * - * @memberOf Benchmark.Event - * @type Boolean - */ - 'cancelled': false, - - /** - * The object whose listeners are currently being processed. - * - * @memberOf Benchmark.Event - * @type Object - */ - 'currentTarget': undefined, - - /** - * The return value of the last executed listener. - * - * @memberOf Benchmark.Event - * @type Mixed - */ - 'result': undefined, - - /** - * The object to which the event was originally emitted. - * - * @memberOf Benchmark.Event - * @type Object - */ - 'target': undefined, - - /** - * A timestamp of when the event was created (ms). - * - * @memberOf Benchmark.Event - * @type Number - */ - 'timeStamp': 0, - - /** - * The event type. - * - * @memberOf Benchmark.Event - * @type String - */ - 'type': '' - }); - - /*--------------------------------------------------------------------------*/ - - /** - * The default options copied by suite instances. - * - * @static - * @memberOf Benchmark.Suite - * @type Object - */ - Suite.options = { - - /** - * The name of the suite. - * - * @memberOf Benchmark.Suite.options - * @type String - */ - 'name': undefined - }; - - /*--------------------------------------------------------------------------*/ - - extend(Suite.prototype, { - - /** - * The number of benchmarks in the suite. - * - * @memberOf Benchmark.Suite - * @type Number - */ - 'length': 0, - - /** - * A flag to indicate if the suite is aborted. - * - * @memberOf Benchmark.Suite - * @type Boolean - */ - 'aborted': false, - - /** - * A flag to indicate if the suite is running. - * - * @memberOf Benchmark.Suite - * @type Boolean - */ - 'running': false, - - /** - * An `Array#forEach` like method. - * Callbacks may terminate the loop by explicitly returning `false`. - * - * @memberOf Benchmark.Suite - * @param {Function} callback The function called per iteration. - * @returns {Object} The suite iterated over. - */ - 'forEach': methodize(forEach), - - /** - * An `Array#indexOf` like method. - * - * @memberOf Benchmark.Suite - * @param {Mixed} value The value to search for. - * @returns {Number} The index of the matched value or `-1`. - */ - 'indexOf': methodize(indexOf), - - /** - * Invokes a method on all benchmarks in the suite. - * - * @memberOf Benchmark.Suite - * @param {String|Object} name The name of the method to invoke OR options object. - * @param {Mixed} [arg1, arg2, ...] Arguments to invoke the method with. - * @returns {Array} A new array of values returned from each method invoked. - */ - 'invoke': methodize(invoke), - - /** - * Converts the suite of benchmarks to a string. - * - * @memberOf Benchmark.Suite - * @param {String} [separator=','] A string to separate each element of the array. - * @returns {String} The string. - */ - 'join': [].join, - - /** - * An `Array#map` like method. - * - * @memberOf Benchmark.Suite - * @param {Function} callback The function called per iteration. - * @returns {Array} A new array of values returned by the callback. - */ - 'map': methodize(map), - - /** - * Retrieves the value of a specified property from all benchmarks in the suite. - * - * @memberOf Benchmark.Suite - * @param {String} property The property to pluck. - * @returns {Array} A new array of property values. - */ - 'pluck': methodize(pluck), - - /** - * Removes the last benchmark from the suite and returns it. - * - * @memberOf Benchmark.Suite - * @returns {Mixed} The removed benchmark. - */ - 'pop': [].pop, - - /** - * Appends benchmarks to the suite. - * - * @memberOf Benchmark.Suite - * @returns {Number} The suite's new length. - */ - 'push': [].push, - - /** - * Sorts the benchmarks of the suite. - * - * @memberOf Benchmark.Suite - * @param {Function} [compareFn=null] A function that defines the sort order. - * @returns {Object} The sorted suite. - */ - 'sort': [].sort, - - /** - * An `Array#reduce` like method. - * - * @memberOf Benchmark.Suite - * @param {Function} callback The function called per iteration. - * @param {Mixed} accumulator Initial value of the accumulator. - * @returns {Mixed} The accumulator. - */ - 'reduce': methodize(reduce), - - // aborts all benchmarks in the suite - 'abort': abortSuite, - - // adds a benchmark to the suite - 'add': add, - - // creates a new suite with cloned benchmarks - 'clone': cloneSuite, - - // executes listeners of a specified type - 'emit': emit, - - // creates a new suite of filtered benchmarks - 'filter': filterSuite, - - // get listeners - 'listeners': listeners, - - // unregister listeners - 'off': off, - - // register listeners - 'on': on, - - // resets all benchmarks in the suite - 'reset': resetSuite, - - // runs all benchmarks in the suite - 'run': runSuite, - - // array methods - 'concat': concat, - - 'reverse': reverse, - - 'shift': shift, - - 'slice': slice, - - 'splice': splice, - - 'unshift': unshift - }); - - /*--------------------------------------------------------------------------*/ - - // expose Deferred, Event and Suite - extend(Benchmark, { - 'Deferred': Deferred, - 'Event': Event, - 'Suite': Suite - }); - - // expose Benchmark - // some AMD build optimizers, like r.js, check for specific condition patterns like the following: - if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) { - // define as an anonymous module so, through path mapping, it can be aliased - define(function() { - return Benchmark; - }); - } - // check for `exports` after `define` in case a build optimizer adds an `exports` object - else if (freeExports) { - // in Node.js or RingoJS v0.8.0+ - if (typeof module == 'object' && module && module.exports == freeExports) { - (module.exports = Benchmark).Benchmark = Benchmark; - } - // in Narwhal or RingoJS v0.7.0- - else { - freeExports.Benchmark = Benchmark; - } - } - // in a browser or Rhino - else { - // use square bracket notation so Closure Compiler won't munge `Benchmark` - // http://code.google.com/closure/compiler/docs/api-tutorial3.html#export - window['Benchmark'] = Benchmark; - } - - // trigger clock's lazy define early to avoid a security error - if (support.air) { - clock({ '_original': { 'fn': noop, 'count': 1, 'options': {} } }); - } -}(this)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/doc/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/doc/README.md deleted file mode 100644 index 5b8960a5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/doc/README.md +++ /dev/null @@ -1,2629 +0,0 @@ -# Benchmark.js v1.0.0 - - - - - - -## `Benchmark` -* [`Benchmark`](#benchmarkname-fn--options) -* [`Benchmark.version`](#benchmarkversion) -* [`Benchmark.deepClone`](#benchmarkdeepclonevalue) -* [`Benchmark.each`](#benchmarkeachobject-callback-thisarg) -* [`Benchmark.extend`](#benchmarkextenddestination--source) -* [`Benchmark.filter`](#benchmarkfilterarray-callback-thisarg) -* [`Benchmark.forEach`](#benchmarkforeacharray-callback-thisarg) -* [`Benchmark.formatNumber`](#benchmarkformatnumbernumber) -* [`Benchmark.forOwn`](#benchmarkforownobject-callback-thisarg) -* [`Benchmark.hasKey`](#benchmarkhaskeyobject-key) -* [`Benchmark.indexOf`](#benchmarkindexofarray-value--fromindex0) -* [`Benchmark.interpolate`](#benchmarkinterpolatestring-object) -* [`Benchmark.invoke`](#benchmarkinvokebenches-name--arg1-arg2-) -* [`Benchmark.join`](#benchmarkjoinobject--separator1--separator2:) -* [`Benchmark.map`](#benchmarkmaparray-callback-thisarg) -* [`Benchmark.pluck`](#benchmarkpluckarray-property) -* [`Benchmark.reduce`](#benchmarkreducearray-callback-accumulator) - - - - - - -## `Benchmark.prototype` -* [`Benchmark.prototype.aborted`](#benchmarkprototypeaborted) -* [`Benchmark.prototype.compiled`](#benchmarkprototypecompiled) -* [`Benchmark.prototype.count`](#benchmarkprototypecount) -* [`Benchmark.prototype.cycles`](#benchmarkprototypecycles) -* [`Benchmark.prototype.fn`](#benchmarkprototypefn) -* [`Benchmark.prototype.hz`](#benchmarkprototypehz) -* [`Benchmark.prototype.running`](#benchmarkprototyperunning) -* [`Benchmark.prototype.setup`](#benchmarkprototypesetup) -* [`Benchmark.prototype.teardown`](#benchmarkprototypeteardown) -* [`Benchmark.prototype.abort`](#benchmarkprototypeabort) -* [`Benchmark.prototype.clone`](#benchmarkprototypecloneoptions) -* [`Benchmark.prototype.compare`](#benchmarkprototypecompareother) -* [`Benchmark.prototype.emit`](#benchmarkprototypeemittype) -* [`Benchmark.prototype.listeners`](#benchmarkprototypelistenerstype) -* [`Benchmark.prototype.off`](#benchmarkprototypeofftype-listener) -* [`Benchmark.prototype.on`](#benchmarkprototypeontype-listener) -* [`Benchmark.prototype.reset`](#benchmarkprototypereset) -* [`Benchmark.prototype.run`](#benchmarkprototyperunoptions) -* [`Benchmark.prototype.toString`](#benchmarkprototypetostring) - - - - - - -## `Benchmark.options` -* [`Benchmark.options`](#benchmarkoptions) -* [`Benchmark.options.async`](#benchmarkoptionsasync) -* [`Benchmark.options.defer`](#benchmarkoptionsdefer) -* [`Benchmark.options.delay`](#benchmarkoptionsdelay) -* [`Benchmark.options.id`](#benchmarkoptionsid) -* [`Benchmark.options.initCount`](#benchmarkoptionsinitcount) -* [`Benchmark.options.maxTime`](#benchmarkoptionsmaxtime) -* [`Benchmark.options.minSamples`](#benchmarkoptionsminsamples) -* [`Benchmark.options.minTime`](#benchmarkoptionsmintime) -* [`Benchmark.options.name`](#benchmarkoptionsname) -* [`Benchmark.options.onAbort`](#benchmarkoptionsonabort) -* [`Benchmark.options.onComplete`](#benchmarkoptionsoncomplete) -* [`Benchmark.options.onCycle`](#benchmarkoptionsoncycle) -* [`Benchmark.options.onError`](#benchmarkoptionsonerror) -* [`Benchmark.options.onReset`](#benchmarkoptionsonreset) -* [`Benchmark.options.onStart`](#benchmarkoptionsonstart) - - - - - - -## `Benchmark.platform` -* [`Benchmark.platform`](#benchmarkplatform) -* [`Benchmark.platform.description`](#benchmarkplatformdescription) -* [`Benchmark.platform.layout`](#benchmarkplatformlayout) -* [`Benchmark.platform.manufacturer`](#benchmarkplatformmanufacturer) -* [`Benchmark.platform.name`](#benchmarkplatformname) -* [`Benchmark.platform.os`](#benchmarkplatformos) -* [`Benchmark.platform.prerelease`](#benchmarkplatformprerelease) -* [`Benchmark.platform.product`](#benchmarkplatformproduct) -* [`Benchmark.platform.version`](#benchmarkplatformversion) -* [`Benchmark.platform.toString`](#benchmarkplatformtostring) - - - - - - -## `Benchmark.support` -* [`Benchmark.support`](#benchmarksupport) -* [`Benchmark.support.air`](#benchmarksupportair) -* [`Benchmark.support.argumentsClass`](#benchmarksupportargumentsclass) -* [`Benchmark.support.browser`](#benchmarksupportbrowser) -* [`Benchmark.support.charByIndex`](#benchmarksupportcharbyindex) -* [`Benchmark.support.charByOwnIndex`](#benchmarksupportcharbyownindex) -* [`Benchmark.support.decompilation`](#benchmarksupportdecompilation) -* [`Benchmark.support.descriptors`](#benchmarksupportdescriptors) -* [`Benchmark.support.getAllKeys`](#benchmarksupportgetallkeys) -* [`Benchmark.support.iteratesOwnLast`](#benchmarksupportiteratesownfirst) -* [`Benchmark.support.java`](#benchmarksupportjava) -* [`Benchmark.support.nodeClass`](#benchmarksupportnodeclass) -* [`Benchmark.support.timeout`](#benchmarksupporttimeout) - - - - - - -## `Benchmark.prototype.error` -* [`Benchmark.prototype.error`](#benchmarkprototypeerror) - - - - - - -## `Benchmark.prototype.stats` -* [`Benchmark.prototype.stats`](#benchmarkprototypestats) -* [`Benchmark.prototype.stats.deviation`](#benchmark-statsdeviation) -* [`Benchmark.prototype.stats.mean`](#benchmark-statsmean) -* [`Benchmark.prototype.stats.moe`](#benchmark-statsmoe) -* [`Benchmark.prototype.stats.rme`](#benchmark-statsrme) -* [`Benchmark.prototype.stats.sample`](#benchmark-statssample) -* [`Benchmark.prototype.stats.sem`](#benchmark-statssem) -* [`Benchmark.prototype.stats.variance`](#benchmark-statsvariance) - - - - - - -## `Benchmark.prototype.times` -* [`Benchmark.prototype.times`](#benchmarkprototypetimes) -* [`Benchmark.prototype.times.cycle`](#benchmark-timescycle) -* [`Benchmark.prototype.times.elapsed`](#benchmark-timeselapsed) -* [`Benchmark.prototype.times.period`](#benchmark-timesperiod) -* [`Benchmark.prototype.times.timeStamp`](#benchmark-timestimestamp) - - - - - - -## `Benchmark.Deferred` -* [`Benchmark.Deferred`](#benchmarkdeferredclone) - - - - - - -## `Benchmark.Deferred.prototype` -* [`Benchmark.Deferred.prototype.benchmark`](#benchmarkdeferredprototypebenchmark) -* [`Benchmark.Deferred.prototype.cycles`](#benchmarkdeferredprototypecycles) -* [`Benchmark.Deferred.prototype.elapsed`](#benchmarkdeferredprototypeelapsed) -* [`Benchmark.Deferred.prototype.resolve`](#benchmarkdeferredprototyperesolve) -* [`Benchmark.Deferred.prototype.timeStamp`](#benchmarkdeferredprototypetimestamp) - - - - - - -## `Benchmark.Event` -* [`Benchmark.Event`](#benchmarkeventtype) - - - - - - -## `Benchmark.Event.prototype` -* [`Benchmark.Event.prototype.aborted`](#benchmarkeventprototypeaborted) -* [`Benchmark.Event.prototype.cancelled`](#benchmarkeventprototypecancelled) -* [`Benchmark.Event.prototype.result`](#benchmarkeventprototyperesult) -* [`Benchmark.Event.prototype.timeStamp`](#benchmarkeventprototypetimestamp) -* [`Benchmark.Event.prototype.type`](#benchmarkeventprototypetype) - - - - - - -## `Benchmark.Event.prototype.currentTarget` -* [`Benchmark.Event.prototype.currentTarget`](#benchmarkeventprototypecurrenttarget) - - - - - - -## `Benchmark.Event.prototype.target` -* [`Benchmark.Event.prototype.target`](#benchmarkeventprototypetarget) - - - - - - -## `Benchmark.Suite` -* [`Benchmark.Suite`](#benchmarksuitename--options) - - - - - - -## `Benchmark.Suite.prototype` -* [`Benchmark.Suite.prototype.aborted`](#benchmarksuiteprototypeaborted) -* [`Benchmark.Suite.prototype.length`](#benchmarksuiteprototypelength) -* [`Benchmark.Suite.prototype.running`](#benchmarksuiteprototyperunning) -* [`Benchmark.Suite.prototype.abort`](#benchmarksuiteprototypeabort) -* [`Benchmark.Suite.prototype.add`](#benchmarksuiteprototypeaddname-fn--options) -* [`Benchmark.Suite.prototype.clone`](#benchmarksuiteprototypecloneoptions) -* [`Benchmark.Suite.prototype.emit`](#benchmarkprototypeemittype) -* [`Benchmark.Suite.prototype.filter`](#benchmarksuiteprototypefiltercallback) -* [`Benchmark.Suite.prototype.forEach`](#benchmarksuiteprototypeforeachcallback) -* [`Benchmark.Suite.prototype.indexOf`](#benchmarksuiteprototypeindexofvalue) -* [`Benchmark.Suite.prototype.invoke`](#benchmarksuiteprototypeinvokename--arg1-arg2-) -* [`Benchmark.Suite.prototype.join`](#benchmarksuiteprototypejoinseparator-) -* [`Benchmark.Suite.prototype.listeners`](#benchmarkprototypelistenerstype) -* [`Benchmark.Suite.prototype.map`](#benchmarksuiteprototypemapcallback) -* [`Benchmark.Suite.prototype.off`](#benchmarkprototypeofftype-listener) -* [`Benchmark.Suite.prototype.on`](#benchmarkprototypeontype-listener) -* [`Benchmark.Suite.prototype.pluck`](#benchmarksuiteprototypepluckproperty) -* [`Benchmark.Suite.prototype.pop`](#benchmarksuiteprototypepop) -* [`Benchmark.Suite.prototype.push`](#benchmarksuiteprototypepush) -* [`Benchmark.Suite.prototype.reduce`](#benchmarksuiteprototypereducecallback-accumulator) -* [`Benchmark.Suite.prototype.reset`](#benchmarksuiteprototypereset) -* [`Benchmark.Suite.prototype.reverse`](#benchmarksuiteprototypereverse) -* [`Benchmark.Suite.prototype.run`](#benchmarksuiteprototyperunoptions) -* [`Benchmark.Suite.prototype.shift`](#benchmarksuiteprototypeshift) -* [`Benchmark.Suite.prototype.slice`](#benchmarksuiteprototypeslicestart-end) -* [`Benchmark.Suite.prototype.sort`](#benchmarksuiteprototypesortcomparefnnull) -* [`Benchmark.Suite.prototype.splice`](#benchmarksuiteprototypesplicestart-deletecount--val1-val2-) -* [`Benchmark.Suite.prototype.unshift`](#benchmarksuiteprototypeunshift) - - - - - - -## `Benchmark.Suite.options` -* [`Benchmark.Suite.options`](#benchmarksuiteoptions) -* [`Benchmark.Suite.options.name`](#benchmarksuiteoptionsname) - - - - - - - - - - - - -## `Benchmark` - - - -### `Benchmark(name, fn [, options={}])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L404 "View in source") [Ⓣ][1] - -The Benchmark constructor. - -#### Arguments -1. `name` *(String)*: A name to identify the benchmark. -2. `fn` *(Function|String)*: The test to benchmark. -3. `[options={}]` *(Object)*: Options object. - -#### Example -~~~ js -// basic usage (the `new` operator is optional) -var bench = new Benchmark(fn); - -// or using a name first -var bench = new Benchmark('foo', fn); - -// or with options -var bench = new Benchmark('foo', fn, { - - // displayed by Benchmark#toString if `name` is not available - 'id': 'xyz', - - // called when the benchmark starts running - 'onStart': onStart, - - // called after each run cycle - 'onCycle': onCycle, - - // called when aborted - 'onAbort': onAbort, - - // called when a test errors - 'onError': onError, - - // called when reset - 'onReset': onReset, - - // called when the benchmark completes running - 'onComplete': onComplete, - - // compiled/called before the test loop - 'setup': setup, - - // compiled/called after the test loop - 'teardown': teardown -}); - -// or name and options -var bench = new Benchmark('foo', { - - // a flag to indicate the benchmark is deferred - 'defer': true, - - // benchmark test function - 'fn': function(deferred) { - // call resolve() when the deferred test is finished - deferred.resolve(); - } -}); - -// or options only -var bench = new Benchmark({ - - // benchmark name - 'name': 'foo', - - // benchmark test as a string - 'fn': '[1,2,3,4].sort()' -}); - -// a test's `this` binding is set to the benchmark instance -var bench = new Benchmark('foo', function() { - 'My name is '.concat(this.name); // My name is foo -}); -~~~ - -* * * - - - - - - -### `Benchmark.version` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3267 "View in source") [Ⓣ][1] - -*(String)*: The semantic version number. - -* * * - - - - - - -### `Benchmark.deepClone(value)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1225 "View in source") [Ⓣ][1] - -A deep clone utility. - -#### Arguments -1. `value` *(Mixed)*: The value to clone. - -#### Returns -*(Mixed)*: The cloned value. - -* * * - - - - - - -### `Benchmark.each(object, callback, thisArg)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1400 "View in source") [Ⓣ][1] - -An iteration utility for arrays and objects. Callbacks may terminate the loop by explicitly returning `false`. - -#### Arguments -1. `object` *(Array|Object)*: The object to iterate over. -2. `callback` *(Function)*: The function called per iteration. -3. `thisArg` *(Mixed)*: The `this` binding for the callback. - -#### Returns -*(Array, Object)*: Returns the object iterated over. - -* * * - - - - - - -### `Benchmark.extend(destination [, source={}])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1446 "View in source") [Ⓣ][1] - -Copies enumerable properties from the source(s) object to the destination object. - -#### Arguments -1. `destination` *(Object)*: The destination object. -2. `[source={}]` *(Object)*: The source object. - -#### Returns -*(Object)*: The destination object. - -* * * - - - - - - -### `Benchmark.filter(array, callback, thisArg)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1485 "View in source") [Ⓣ][1] - -A generic `Array#filter` like method. - -#### Arguments -1. `array` *(Array)*: The array to iterate over. -2. `callback` *(Function|String)*: The function/alias called per iteration. -3. `thisArg` *(Mixed)*: The `this` binding for the callback. - -#### Returns -*(Array)*: A new array of values that passed callback filter. - -#### Example -~~~ js -// get odd numbers -Benchmark.filter([1, 2, 3, 4, 5], function(n) { - return n % 2; -}); // -> [1, 3, 5]; - -// get fastest benchmarks -Benchmark.filter(benches, 'fastest'); - -// get slowest benchmarks -Benchmark.filter(benches, 'slowest'); - -// get benchmarks that completed without erroring -Benchmark.filter(benches, 'successful'); -~~~ - -* * * - - - - - - -### `Benchmark.forEach(array, callback, thisArg)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1518 "View in source") [Ⓣ][1] - -A generic `Array#forEach` like method. Callbacks may terminate the loop by explicitly returning `false`. - -#### Arguments -1. `array` *(Array)*: The array to iterate over. -2. `callback` *(Function)*: The function called per iteration. -3. `thisArg` *(Mixed)*: The `this` binding for the callback. - -#### Returns -*(Array)*: Returns the array iterated over. - -* * * - - - - - - -### `Benchmark.formatNumber(number)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1557 "View in source") [Ⓣ][1] - -Converts a number to a more readable comma-separated string representation. - -#### Arguments -1. `number` *(Number)*: The number to convert. - -#### Returns -*(String)*: The more readable string representation. - -* * * - - - - - - -### `Benchmark.forOwn(object, callback, thisArg)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1545 "View in source") [Ⓣ][1] - -Iterates over an object's own properties, executing the `callback` for each. Callbacks may terminate the loop by explicitly returning `false`. - -#### Arguments -1. `object` *(Object)*: The object to iterate over. -2. `callback` *(Function)*: The function executed per own property. -3. `thisArg` *(Mixed)*: The `this` binding for the callback. - -#### Returns -*(Object)*: Returns the object iterated over. - -* * * - - - - - - -### `Benchmark.hasKey(object, key)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1572 "View in source") [Ⓣ][1] - -Checks if an object has the specified key as a direct property. - -#### Arguments -1. `object` *(Object)*: The object to check. -2. `key` *(String)*: The key to check for. - -#### Returns -*(Boolean)*: Returns `true` if key is a direct property, else `false`. - -* * * - - - - - - -### `Benchmark.indexOf(array, value [, fromIndex=0])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1608 "View in source") [Ⓣ][1] - -A generic `Array#indexOf` like method. - -#### Arguments -1. `array` *(Array)*: The array to iterate over. -2. `value` *(Mixed)*: The value to search for. -3. `[fromIndex=0]` *(Number)*: The index to start searching from. - -#### Returns -*(Number)*: The index of the matched value or `-1`. - -* * * - - - - - - -### `Benchmark.interpolate(string, object)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1630 "View in source") [Ⓣ][1] - -Modify a string by replacing named tokens with matching object property values. - -#### Arguments -1. `string` *(String)*: The string to modify. -2. `object` *(Object)*: The template object. - -#### Returns -*(String)*: The modified string. - -* * * - - - - - - -### `Benchmark.invoke(benches, name [, arg1, arg2, ...])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1677 "View in source") [Ⓣ][1] - -Invokes a method on all items in an array. - -#### Arguments -1. `benches` *(Array)*: Array of benchmarks to iterate over. -2. `name` *(String|Object)*: The name of the method to invoke OR options object. -3. `[arg1, arg2, ...]` *(Mixed)*: Arguments to invoke the method with. - -#### Returns -*(Array)*: A new array of values returned from each method invoked. - -#### Example -~~~ js -// invoke `reset` on all benchmarks -Benchmark.invoke(benches, 'reset'); - -// invoke `emit` with arguments -Benchmark.invoke(benches, 'emit', 'complete', listener); - -// invoke `run(true)`, treat benchmarks as a queue, and register invoke callbacks -Benchmark.invoke(benches, { - - // invoke the `run` method - 'name': 'run', - - // pass a single argument - 'args': true, - - // treat as queue, removing benchmarks from front of `benches` until empty - 'queued': true, - - // called before any benchmarks have been invoked. - 'onStart': onStart, - - // called between invoking benchmarks - 'onCycle': onCycle, - - // called after all benchmarks have been invoked. - 'onComplete': onComplete -}); -~~~ - -* * * - - - - - - -### `Benchmark.join(object [, separator1=',', separator2=': '])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1831 "View in source") [Ⓣ][1] - -Creates a string of joined array values or object key-value pairs. - -#### Arguments -1. `object` *(Array|Object)*: The object to operate on. -2. `[separator1=',']` *(String)*: The separator used between key-value pairs. -3. `[separator2=': ']` *(String)*: The separator used between keys and values. - -#### Returns -*(String)*: The joined result. - -* * * - - - - - - -### `Benchmark.map(array, callback, thisArg)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1853 "View in source") [Ⓣ][1] - -A generic `Array#map` like method. - -#### Arguments -1. `array` *(Array)*: The array to iterate over. -2. `callback` *(Function)*: The function called per iteration. -3. `thisArg` *(Mixed)*: The `this` binding for the callback. - -#### Returns -*(Array)*: A new array of values returned by the callback. - -* * * - - - - - - -### `Benchmark.pluck(array, property)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1869 "View in source") [Ⓣ][1] - -Retrieves the value of a specified property from all items in an array. - -#### Arguments -1. `array` *(Array)*: The array to iterate over. -2. `property` *(String)*: The property to pluck. - -#### Returns -*(Array)*: A new array of property values. - -* * * - - - - - - -### `Benchmark.reduce(array, callback, accumulator)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1885 "View in source") [Ⓣ][1] - -A generic `Array#reduce` like method. - -#### Arguments -1. `array` *(Array)*: The array to iterate over. -2. `callback` *(Function)*: The function called per iteration. -3. `accumulator` *(Mixed)*: Initial value of the accumulator. - -#### Returns -*(Mixed)*: The accumulator. - -* * * - - - - - - - - - -## `Benchmark.prototype` - - - -### `Benchmark.prototype.aborted` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3377 "View in source") [Ⓣ][1] - -*(Boolean)*: A flag to indicate if the benchmark is aborted. - -* * * - - - - - - -### `Benchmark.prototype.compiled` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3353 "View in source") [Ⓣ][1] - -*(Function, String)*: The compiled test function. - -* * * - - - - - - -### `Benchmark.prototype.count` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3329 "View in source") [Ⓣ][1] - -*(Number)*: The number of times a test was executed. - -* * * - - - - - - -### `Benchmark.prototype.cycles` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3337 "View in source") [Ⓣ][1] - -*(Number)*: The number of cycles performed while benchmarking. - -* * * - - - - - - -### `Benchmark.prototype.fn` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3369 "View in source") [Ⓣ][1] - -*(Function, String)*: The test to benchmark. - -* * * - - - - - - -### `Benchmark.prototype.hz` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3345 "View in source") [Ⓣ][1] - -*(Number)*: The number of executions per second. - -* * * - - - - - - -### `Benchmark.prototype.running` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3385 "View in source") [Ⓣ][1] - -*(Boolean)*: A flag to indicate if the benchmark is running. - -* * * - - - - - - -### `Benchmark.prototype.setup` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3448 "View in source") [Ⓣ][1] - -*(Function, String)*: Compiled into the test and executed immediately **before** the test loop. - -#### Example -~~~ js -// basic usage -var bench = Benchmark({ - 'setup': function() { - var c = this.count, - element = document.getElementById('container'); - while (c--) { - element.appendChild(document.createElement('div')); - } - }, - 'fn': function() { - element.removeChild(element.lastChild); - } -}); - -// compiles to something like: -var c = this.count, - element = document.getElementById('container'); -while (c--) { - element.appendChild(document.createElement('div')); -} -var start = new Date; -while (count--) { - element.removeChild(element.lastChild); -} -var end = new Date - start; - -// or using strings -var bench = Benchmark({ - 'setup': '\ - var a = 0;\n\ - (function() {\n\ - (function() {\n\ - (function() {', - 'fn': 'a += 1;', - 'teardown': '\ - }())\n\ - }())\n\ - }())' -}); - -// compiles to something like: -var a = 0; -(function() { - (function() { - (function() { - var start = new Date; - while (count--) { - a += 1; - } - var end = new Date - start; - }()) - }()) -}()) -~~~ - -* * * - - - - - - -### `Benchmark.prototype.teardown` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3456 "View in source") [Ⓣ][1] - -*(Function, String)*: Compiled into the test and executed immediately **after** the test loop. - -* * * - - - - - - -### `Benchmark.prototype.abort()` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2218 "View in source") [Ⓣ][1] - -Aborts the benchmark without recording times. - -#### Returns -*(Object)*: The benchmark instance. - -* * * - - - - - - -### `Benchmark.prototype.clone(options)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2257 "View in source") [Ⓣ][1] - -Creates a new benchmark using the same test and options. - -#### Arguments -1. `options` *(Object)*: Options object to overwrite cloned options. - -#### Returns -*(Object)*: The new benchmark instance. - -#### Example -~~~ js -var bizarro = bench.clone({ - 'name': 'doppelganger' -}); -~~~ - -* * * - - - - - - -### `Benchmark.prototype.compare(other)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2280 "View in source") [Ⓣ][1] - -Determines if a benchmark is faster than another. - -#### Arguments -1. `other` *(Object)*: The benchmark to compare. - -#### Returns -*(Number)*: Returns `-1` if slower, `1` if faster, and `0` if indeterminate. - -* * * - - - - - - -### `Benchmark.Suite.prototype.emit(type)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2095 "View in source") [Ⓣ][1] - -Executes all registered listeners of the specified event type. - -#### Arguments -1. `type` *(String|Object)*: The event type or object. - -#### Returns -*(Mixed)*: Returns the return value of the last listener executed. - -* * * - - - - - - -### `Benchmark.Suite.prototype.listeners(type)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2125 "View in source") [Ⓣ][1] - -Returns an array of event listeners for a given type that can be manipulated to add or remove listeners. - -#### Arguments -1. `type` *(String)*: The event type. - -#### Returns -*(Array)*: The listeners array. - -* * * - - - - - - -### `Benchmark.Suite.prototype.off([type, listener])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2158 "View in source") [Ⓣ][1] - -Unregisters a listener for the specified event type(s), or unregisters all listeners for the specified event type(s), or unregisters all listeners for all event types. - -#### Arguments -1. `[type]` *(String)*: The event type. -2. `[listener]` *(Function)*: The function to unregister. - -#### Returns -*(Object)*: The benchmark instance. - -#### Example -~~~ js -// unregister a listener for an event type -bench.off('cycle', listener); - -// unregister a listener for multiple event types -bench.off('start cycle', listener); - -// unregister all listeners for an event type -bench.off('cycle'); - -// unregister all listeners for multiple event types -bench.off('start cycle complete'); - -// unregister all listeners for all event types -bench.off(); -~~~ - -* * * - - - - - - -### `Benchmark.Suite.prototype.on(type, listener)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2197 "View in source") [Ⓣ][1] - -Registers a listener for the specified event type(s). - -#### Arguments -1. `type` *(String)*: The event type. -2. `listener` *(Function)*: The function to register. - -#### Returns -*(Object)*: The benchmark instance. - -#### Example -~~~ js -// register a listener for an event type -bench.on('cycle', listener); - -// register a listener for multiple event types -bench.on('start cycle', listener); -~~~ - -* * * - - - - - - -### `Benchmark.prototype.reset()` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2334 "View in source") [Ⓣ][1] - -Reset properties and abort if running. - -#### Returns -*(Object)*: The benchmark instance. - -* * * - - - - - - -### `Benchmark.prototype.run([options={}])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3000 "View in source") [Ⓣ][1] - -Runs the benchmark. - -#### Arguments -1. `[options={}]` *(Object)*: Options object. - -#### Returns -*(Object)*: The benchmark instance. - -#### Example -~~~ js -// basic usage -bench.run(); - -// or with options -bench.run({ 'async': true }); -~~~ - -* * * - - - - - - -### `Benchmark.prototype.toString()` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2405 "View in source") [Ⓣ][1] - -Displays relevant benchmark information when coerced to a string. - -#### Returns -*(String)*: A string representation of the benchmark instance. - -* * * - - - - - - - - - -## `Benchmark.options` - - - -### `Benchmark.options` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3049 "View in source") [Ⓣ][1] - -*(Object)*: The default options copied by benchmark instances. - -* * * - - - - - - -### `Benchmark.options.async` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3058 "View in source") [Ⓣ][1] - -*(Boolean)*: A flag to indicate that benchmark cycles will execute asynchronously by default. - -* * * - - - - - - -### `Benchmark.options.defer` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3066 "View in source") [Ⓣ][1] - -*(Boolean)*: A flag to indicate that the benchmark clock is deferred. - -* * * - - - - - - -### `Benchmark.options.delay` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3073 "View in source") [Ⓣ][1] - -*(Number)*: The delay between test cycles *(secs)*. - -* * * - - - - - - -### `Benchmark.options.id` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3082 "View in source") [Ⓣ][1] - -*(String)*: Displayed by Benchmark#toString when a `name` is not available *(auto-generated if absent)*. - -* * * - - - - - - -### `Benchmark.options.initCount` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3090 "View in source") [Ⓣ][1] - -*(Number)*: The default number of times to execute a test on a benchmark's first cycle. - -* * * - - - - - - -### `Benchmark.options.maxTime` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3099 "View in source") [Ⓣ][1] - -*(Number)*: The maximum time a benchmark is allowed to run before finishing *(secs)*. Note: Cycle delays aren't counted toward the maximum time. - -* * * - - - - - - -### `Benchmark.options.minSamples` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3107 "View in source") [Ⓣ][1] - -*(Number)*: The minimum sample size required to perform statistical analysis. - -* * * - - - - - - -### `Benchmark.options.minTime` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3115 "View in source") [Ⓣ][1] - -*(Number)*: The time needed to reduce the percent uncertainty of measurement to `1`% *(secs)*. - -* * * - - - - - - -### `Benchmark.options.name` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3123 "View in source") [Ⓣ][1] - -*(String)*: The name of the benchmark. - -* * * - - - - - - -### `Benchmark.options.onAbort` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3131 "View in source") [Ⓣ][1] - -An event listener called when the benchmark is aborted. - -* * * - - - - - - -### `Benchmark.options.onComplete` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3139 "View in source") [Ⓣ][1] - -An event listener called when the benchmark completes running. - -* * * - - - - - - -### `Benchmark.options.onCycle` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3147 "View in source") [Ⓣ][1] - -An event listener called after each run cycle. - -* * * - - - - - - -### `Benchmark.options.onError` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3155 "View in source") [Ⓣ][1] - -An event listener called when a test errors. - -* * * - - - - - - -### `Benchmark.options.onReset` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3163 "View in source") [Ⓣ][1] - -An event listener called when the benchmark is reset. - -* * * - - - - - - -### `Benchmark.options.onStart` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3171 "View in source") [Ⓣ][1] - -An event listener called when the benchmark starts running. - -* * * - - - - - - - - - -## `Benchmark.platform` - - - -### `Benchmark.platform` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3182 "View in source") [Ⓣ][1] - -*(Object)*: Platform object with properties describing things like browser name, version, and operating system. - -* * * - - - - - - -### `Benchmark.platform.description` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3190 "View in source") [Ⓣ][1] - -*(String)*: The platform description. - -* * * - - - - - - -### `Benchmark.platform.layout` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3198 "View in source") [Ⓣ][1] - -*(String, Null)*: The name of the browser layout engine. - -* * * - - - - - - -### `Benchmark.platform.manufacturer` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3222 "View in source") [Ⓣ][1] - -*(String, Null)*: The name of the product's manufacturer. - -* * * - - - - - - -### `Benchmark.platform.name` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3214 "View in source") [Ⓣ][1] - -*(String, Null)*: The name of the browser/environment. - -* * * - - - - - - -### `Benchmark.platform.os` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3230 "View in source") [Ⓣ][1] - -*(String, Null)*: The name of the operating system. - -* * * - - - - - - -### `Benchmark.platform.prerelease` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3238 "View in source") [Ⓣ][1] - -*(String, Null)*: The alpha/beta release indicator. - -* * * - - - - - - -### `Benchmark.platform.product` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3206 "View in source") [Ⓣ][1] - -*(String, Null)*: The name of the product hosting the browser. - -* * * - - - - - - -### `Benchmark.platform.version` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3246 "View in source") [Ⓣ][1] - -*(String, Null)*: The browser/environment version. - -* * * - - - - - - -### `Benchmark.platform.toString()` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3255 "View in source") [Ⓣ][1] - -Return platform description when the platform object is coerced to a string. - -#### Returns -*(String)*: The platform description. - -* * * - - - - - - - - - -## `Benchmark.support` - - - -### `Benchmark.support` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L135 "View in source") [Ⓣ][1] - -*(Object)*: An object used to flag environments/features. - -* * * - - - - - - -### `Benchmark.support.air` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L145 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect Adobe AIR. - -* * * - - - - - - -### `Benchmark.support.argumentsClass` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L153 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect if `arguments` objects have the correct internal [[Class]] value. - -* * * - - - - - - -### `Benchmark.support.browser` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L161 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect if in a browser environment. - -* * * - - - - - - -### `Benchmark.support.charByIndex` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L169 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect if strings support accessing characters by index. - -* * * - - - - - - -### `Benchmark.support.charByOwnIndex` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L179 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect if strings have indexes as own properties. - -* * * - - - - - - -### `Benchmark.support.decompilation` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L207 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect if functions support decompilation. - -* * * - - - - - - -### `Benchmark.support.descriptors` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L228 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect ES5+ property descriptor API. - -* * * - - - - - - -### `Benchmark.support.getAllKeys` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L242 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect ES5+ Object.getOwnPropertyNames(). - -* * * - - - - - - -### `Benchmark.support.iteratesOwnFirst` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L255 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect if own properties are iterated before inherited properties *(all but IE < `9`)*. - -* * * - - - - - - -### `Benchmark.support.java` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L190 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect if Java is enabled/exposed. - -* * * - - - - - - -### `Benchmark.support.nodeClass` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L272 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect if a node's [[Class]] is resolvable *(all but IE < `9`)* and that the JS engine errors when attempting to coerce an object to a string without a `toString` property value of `typeof` "function". - -* * * - - - - - - -### `Benchmark.support.timeout` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L198 "View in source") [Ⓣ][1] - -*(Boolean)*: Detect if the Timers API exists. - -* * * - - - - - - - - - -## `Benchmark.prototype.error` - - - -### `Benchmark.prototype.error` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3361 "View in source") [Ⓣ][1] - -*(Object)*: The error object if the test failed. - -* * * - - - - - - - - - -## `Benchmark.prototype.stats` - - - -### `Benchmark.prototype.stats` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3464 "View in source") [Ⓣ][1] - -*(Object)*: An object of stats including mean, margin or error, and standard deviation. - -* * * - - - - - - -### `Benchmark.prototype.stats.deviation` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3496 "View in source") [Ⓣ][1] - -*(Number)*: The sample standard deviation. - -* * * - - - - - - -### `Benchmark.prototype.stats.mean` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3504 "View in source") [Ⓣ][1] - -*(Number)*: The sample arithmetic mean. - -* * * - - - - - - -### `Benchmark.prototype.stats.moe` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3472 "View in source") [Ⓣ][1] - -*(Number)*: The margin of error. - -* * * - - - - - - -### `Benchmark.prototype.stats.rme` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3480 "View in source") [Ⓣ][1] - -*(Number)*: The relative margin of error *(expressed as a percentage of the mean)*. - -* * * - - - - - - -### `Benchmark.prototype.stats.sample` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3512 "View in source") [Ⓣ][1] - -*(Array)*: The array of sampled periods. - -* * * - - - - - - -### `Benchmark.prototype.stats.sem` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3488 "View in source") [Ⓣ][1] - -*(Number)*: The standard error of the mean. - -* * * - - - - - - -### `Benchmark.prototype.stats.variance` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3520 "View in source") [Ⓣ][1] - -*(Number)*: The sample variance. - -* * * - - - - - - - - - -## `Benchmark.prototype.times` - - - -### `Benchmark.prototype.times` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3529 "View in source") [Ⓣ][1] - -*(Object)*: An object of timing data including cycle, elapsed, period, start, and stop. - -* * * - - - - - - -### `Benchmark.prototype.times.cycle` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3537 "View in source") [Ⓣ][1] - -*(Number)*: The time taken to complete the last cycle *(secs)*. - -* * * - - - - - - -### `Benchmark.prototype.times.elapsed` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3545 "View in source") [Ⓣ][1] - -*(Number)*: The time taken to complete the benchmark *(secs)*. - -* * * - - - - - - -### `Benchmark.prototype.times.period` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3553 "View in source") [Ⓣ][1] - -*(Number)*: The time taken to execute the test once *(secs)*. - -* * * - - - - - - -### `Benchmark.prototype.times.timeStamp` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3561 "View in source") [Ⓣ][1] - -*(Number)*: A timestamp of when the benchmark started *(ms)*. - -* * * - - - - - - - - - -## `Benchmark.Deferred` - - - -### `Benchmark.Deferred(clone)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L445 "View in source") [Ⓣ][1] - -The Deferred constructor. - -#### Arguments -1. `clone` *(Object)*: The cloned benchmark instance. - -* * * - - - - - - - - - -## `Benchmark.Deferred.prototype` - - - -### `Benchmark.Deferred.prototype.benchmark` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3605 "View in source") [Ⓣ][1] - -*(Object)*: The deferred benchmark instance. - -* * * - - - - - - -### `Benchmark.Deferred.prototype.cycles` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3613 "View in source") [Ⓣ][1] - -*(Number)*: The number of deferred cycles performed while benchmarking. - -* * * - - - - - - -### `Benchmark.Deferred.prototype.elapsed` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3621 "View in source") [Ⓣ][1] - -*(Number)*: The time taken to complete the deferred benchmark *(secs)*. - -* * * - - - - - - -### `Benchmark.Deferred.prototype.resolve` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1188 "View in source") [Ⓣ][1] - -*(Unknown)*: Handles cycling/completing the deferred benchmark. - -* * * - - - - - - -### `Benchmark.Deferred.prototype.timeStamp` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3629 "View in source") [Ⓣ][1] - -*(Number)*: A timestamp of when the deferred benchmark started *(ms)*. - -* * * - - - - - - - - - -## `Benchmark.Event` - - - -### `Benchmark.Event(type)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L461 "View in source") [Ⓣ][1] - -The Event constructor. - -#### Arguments -1. `type` *(String|Object)*: The event type. - -* * * - - - - - - - - - -## `Benchmark.Event.prototype` - - - -### `Benchmark.Event.prototype.aborted` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3645 "View in source") [Ⓣ][1] - -*(Boolean)*: A flag to indicate if the emitters listener iteration is aborted. - -* * * - - - - - - -### `Benchmark.Event.prototype.cancelled` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3653 "View in source") [Ⓣ][1] - -*(Boolean)*: A flag to indicate if the default action is cancelled. - -* * * - - - - - - -### `Benchmark.Event.prototype.result` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3669 "View in source") [Ⓣ][1] - -*(Mixed)*: The return value of the last executed listener. - -* * * - - - - - - -### `Benchmark.Event.prototype.timeStamp` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3685 "View in source") [Ⓣ][1] - -*(Number)*: A timestamp of when the event was created *(ms)*. - -* * * - - - - - - -### `Benchmark.Event.prototype.type` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3693 "View in source") [Ⓣ][1] - -*(String)*: The event type. - -* * * - - - - - - - - - -## `Benchmark.Event.prototype.currentTarget` - - - -### `Benchmark.Event.prototype.currentTarget` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3661 "View in source") [Ⓣ][1] - -*(Object)*: The object whose listeners are currently being processed. - -* * * - - - - - - - - - -## `Benchmark.Event.prototype.target` - - - -### `Benchmark.Event.prototype.target` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3677 "View in source") [Ⓣ][1] - -*(Object)*: The object to which the event was originally emitted. - -* * * - - - - - - - - - -## `Benchmark.Suite` - - - -### `Benchmark.Suite(name [, options={}])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L507 "View in source") [Ⓣ][1] - -The Suite constructor. - -#### Arguments -1. `name` *(String)*: A name to identify the suite. -2. `[options={}]` *(Object)*: Options object. - -#### Example -~~~ js -// basic usage (the `new` operator is optional) -var suite = new Benchmark.Suite; - -// or using a name first -var suite = new Benchmark.Suite('foo'); - -// or with options -var suite = new Benchmark.Suite('foo', { - - // called when the suite starts running - 'onStart': onStart, - - // called between running benchmarks - 'onCycle': onCycle, - - // called when aborted - 'onAbort': onAbort, - - // called when a test errors - 'onError': onError, - - // called when reset - 'onReset': onReset, - - // called when the suite completes running - 'onComplete': onComplete -}); -~~~ - -* * * - - - - - - - - - -## `Benchmark.Suite.prototype` - - - -### `Benchmark.Suite.prototype.aborted` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3734 "View in source") [Ⓣ][1] - -*(Boolean)*: A flag to indicate if the suite is aborted. - -* * * - - - - - - -### `Benchmark.Suite.prototype.length` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3726 "View in source") [Ⓣ][1] - -*(Number)*: The number of benchmarks in the suite. - -* * * - - - - - - -### `Benchmark.Suite.prototype.running` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3742 "View in source") [Ⓣ][1] - -*(Boolean)*: A flag to indicate if the suite is running. - -* * * - - - - - - -### `Benchmark.Suite.prototype.abort()` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1902 "View in source") [Ⓣ][1] - -Aborts all benchmarks in the suite. - -#### Returns -*(Object)*: The suite instance. - -* * * - - - - - - -### `Benchmark.Suite.prototype.add(name, fn [, options={}])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1962 "View in source") [Ⓣ][1] - -Adds a test to the benchmark suite. - -#### Arguments -1. `name` *(String)*: A name to identify the benchmark. -2. `fn` *(Function|String)*: The test to benchmark. -3. `[options={}]` *(Object)*: Options object. - -#### Returns -*(Object)*: The benchmark instance. - -#### Example -~~~ js -// basic usage -suite.add(fn); - -// or using a name first -suite.add('foo', fn); - -// or with options -suite.add('foo', fn, { - 'onCycle': onCycle, - 'onComplete': onComplete -}); - -// or name and options -suite.add('foo', { - 'fn': fn, - 'onCycle': onCycle, - 'onComplete': onComplete -}); - -// or options only -suite.add({ - 'name': 'foo', - 'fn': fn, - 'onCycle': onCycle, - 'onComplete': onComplete -}); -~~~ - -* * * - - - - - - -### `Benchmark.Suite.prototype.clone(options)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L1981 "View in source") [Ⓣ][1] - -Creates a new suite with cloned benchmarks. - -#### Arguments -1. `options` *(Object)*: Options object to overwrite cloned options. - -#### Returns -*(Object)*: The new suite instance. - -* * * - - - - - - -### `Benchmark.Suite.prototype.emit(type)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2095 "View in source") [Ⓣ][1] - -Executes all registered listeners of the specified event type. - -#### Arguments -1. `type` *(String|Object)*: The event type or object. - -#### Returns -*(Mixed)*: Returns the return value of the last listener executed. - -* * * - - - - - - -### `Benchmark.Suite.prototype.filter(callback)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2004 "View in source") [Ⓣ][1] - -An `Array#filter` like method. - -#### Arguments -1. `callback` *(Function|String)*: The function/alias called per iteration. - -#### Returns -*(Object)*: A new suite of benchmarks that passed callback filter. - -* * * - - - - - - -### `Benchmark.Suite.prototype.forEach(callback)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3752 "View in source") [Ⓣ][1] - -An `Array#forEach` like method. Callbacks may terminate the loop by explicitly returning `false`. - -#### Arguments -1. `callback` *(Function)*: The function called per iteration. - -#### Returns -*(Object)*: The suite iterated over. - -* * * - - - - - - -### `Benchmark.Suite.prototype.indexOf(value)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3761 "View in source") [Ⓣ][1] - -An `Array#indexOf` like method. - -#### Arguments -1. `value` *(Mixed)*: The value to search for. - -#### Returns -*(Number)*: The index of the matched value or `-1`. - -* * * - - - - - - -### `Benchmark.Suite.prototype.invoke(name [, arg1, arg2, ...])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3771 "View in source") [Ⓣ][1] - -Invokes a method on all benchmarks in the suite. - -#### Arguments -1. `name` *(String|Object)*: The name of the method to invoke OR options object. -2. `[arg1, arg2, ...]` *(Mixed)*: Arguments to invoke the method with. - -#### Returns -*(Array)*: A new array of values returned from each method invoked. - -* * * - - - - - - -### `Benchmark.Suite.prototype.join([separator=','])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3780 "View in source") [Ⓣ][1] - -Converts the suite of benchmarks to a string. - -#### Arguments -1. `[separator=',']` *(String)*: A string to separate each element of the array. - -#### Returns -*(String)*: The string. - -* * * - - - - - - -### `Benchmark.Suite.prototype.listeners(type)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2125 "View in source") [Ⓣ][1] - -Returns an array of event listeners for a given type that can be manipulated to add or remove listeners. - -#### Arguments -1. `type` *(String)*: The event type. - -#### Returns -*(Array)*: The listeners array. - -* * * - - - - - - -### `Benchmark.Suite.prototype.map(callback)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3789 "View in source") [Ⓣ][1] - -An `Array#map` like method. - -#### Arguments -1. `callback` *(Function)*: The function called per iteration. - -#### Returns -*(Array)*: A new array of values returned by the callback. - -* * * - - - - - - -### `Benchmark.Suite.prototype.off([type, listener])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2158 "View in source") [Ⓣ][1] - -Unregisters a listener for the specified event type(s), or unregisters all listeners for the specified event type(s), or unregisters all listeners for all event types. - -#### Arguments -1. `[type]` *(String)*: The event type. -2. `[listener]` *(Function)*: The function to unregister. - -#### Returns -*(Object)*: The benchmark instance. - -#### Example -~~~ js -// unregister a listener for an event type -bench.off('cycle', listener); - -// unregister a listener for multiple event types -bench.off('start cycle', listener); - -// unregister all listeners for an event type -bench.off('cycle'); - -// unregister all listeners for multiple event types -bench.off('start cycle complete'); - -// unregister all listeners for all event types -bench.off(); -~~~ - -* * * - - - - - - -### `Benchmark.Suite.prototype.on(type, listener)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2197 "View in source") [Ⓣ][1] - -Registers a listener for the specified event type(s). - -#### Arguments -1. `type` *(String)*: The event type. -2. `listener` *(Function)*: The function to register. - -#### Returns -*(Object)*: The benchmark instance. - -#### Example -~~~ js -// register a listener for an event type -bench.on('cycle', listener); - -// register a listener for multiple event types -bench.on('start cycle', listener); -~~~ - -* * * - - - - - - -### `Benchmark.Suite.prototype.pluck(property)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3798 "View in source") [Ⓣ][1] - -Retrieves the value of a specified property from all benchmarks in the suite. - -#### Arguments -1. `property` *(String)*: The property to pluck. - -#### Returns -*(Array)*: A new array of property values. - -* * * - - - - - - -### `Benchmark.Suite.prototype.pop()` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3806 "View in source") [Ⓣ][1] - -Removes the last benchmark from the suite and returns it. - -#### Returns -*(Mixed)*: The removed benchmark. - -* * * - - - - - - -### `Benchmark.Suite.prototype.push()` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3814 "View in source") [Ⓣ][1] - -Appends benchmarks to the suite. - -#### Returns -*(Number)*: The suite's new length. - -* * * - - - - - - -### `Benchmark.Suite.prototype.reduce(callback, accumulator)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3833 "View in source") [Ⓣ][1] - -An `Array#reduce` like method. - -#### Arguments -1. `callback` *(Function)*: The function called per iteration. -2. `accumulator` *(Mixed)*: Initial value of the accumulator. - -#### Returns -*(Mixed)*: The accumulator. - -* * * - - - - - - -### `Benchmark.Suite.prototype.reset()` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2019 "View in source") [Ⓣ][1] - -Resets all benchmarks in the suite. - -#### Returns -*(Object)*: The suite instance. - -* * * - - - - - - -### `Benchmark.Suite.prototype.reverse()` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L638 "View in source") [Ⓣ][1] - -Rearrange the host array's elements in reverse order. - -#### Returns -*(Array)*: The reversed array. - -* * * - - - - - - -### `Benchmark.Suite.prototype.run([options={}])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L2056 "View in source") [Ⓣ][1] - -Runs the suite. - -#### Arguments -1. `[options={}]` *(Object)*: Options object. - -#### Returns -*(Object)*: The suite instance. - -#### Example -~~~ js -// basic usage -suite.run(); - -// or with options -suite.run({ 'async': true, 'queued': true }); -~~~ - -* * * - - - - - - -### `Benchmark.Suite.prototype.shift()` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L671 "View in source") [Ⓣ][1] - -Removes the first element of the host array and returns it. - -#### Returns -*(Mixed)*: The first element of the array. - -* * * - - - - - - -### `Benchmark.Suite.prototype.slice(start, end)` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L684 "View in source") [Ⓣ][1] - -Creates an array of the host array's elements from the start index up to, but not including, the end index. - -#### Arguments -1. `start` *(Number)*: The starting index. -2. `end` *(Number)*: The end index. - -#### Returns -*(Array)*: The new array. - -* * * - - - - - - -### `Benchmark.Suite.prototype.sort([compareFn=null])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3823 "View in source") [Ⓣ][1] - -Sorts the benchmarks of the suite. - -#### Arguments -1. `[compareFn=null]` *(Function)*: A function that defines the sort order. - -#### Returns -*(Object)*: The sorted suite. - -* * * - - - - - - -### `Benchmark.Suite.prototype.splice(start, deleteCount [, val1, val2, ...])` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L714 "View in source") [Ⓣ][1] - -Allows removing a range of elements and/or inserting elements into the host array. - -#### Arguments -1. `start` *(Number)*: The start index. -2. `deleteCount` *(Number)*: The number of elements to delete. -3. `[val1, val2, ...]` *(Mixed)*: values to insert at the `start` index. - -#### Returns -*(Array)*: An array of removed elements. - -* * * - - - - - - -### `Benchmark.Suite.prototype.unshift()` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L749 "View in source") [Ⓣ][1] - -Appends arguments to the host array. - -#### Returns -*(Number)*: The new length. - -* * * - - - - - - - - - -## `Benchmark.Suite.options` - - - -### `Benchmark.Suite.options` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3705 "View in source") [Ⓣ][1] - -*(Object)*: The default options copied by suite instances. - -* * * - - - - - - -### `Benchmark.Suite.options.name` -# [Ⓢ](https://github.com/bestiejs/benchmark.js/blob/master/benchmark.js#L3713 "View in source") [Ⓣ][1] - -*(String)*: The name of the suite. - -* * * - - - - - - - - - - - [1]: #Benchmark "Jump back to the TOC." \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/package.json deleted file mode 100644 index 87ed09f3..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "benchmark", - "version": "1.0.0", - "description": "A benchmarking library that works on nearly all JavaScript platforms, supports high-resolution timers, and returns statistically significant results.", - "homepage": "http://benchmarkjs.com/", - "main": "benchmark", - "keywords": [ - "benchmark", - "narwhal", - "node", - "performance", - "ringo", - "speed" - ], - "licenses": [ - { - "type": "MIT", - "url": "http://mths.be/mit" - } - ], - "author": { - "name": "Mathias Bynens", - "email": "mathias@benchmarkjs.com", - "url": "http://mathiasbynens.be/" - }, - "maintainers": [ - { - "name": "jdalton", - "email": "john@fusejs.com" - }, - { - "name": "mathias", - "email": "mathias@qiwi.be" - } - ], - "bugs": { - "url": "https://github.com/bestiejs/benchmark.js/issues", - "email": "bugs@benchmarkjs.com" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/bestiejs/benchmark.js.git" - }, - "engines": [ - "node", - "rhino" - ], - "directories": { - "doc": "./doc", - "test": "./test" - }, - "_id": "benchmark@1.0.0", - "dist": { - "shasum": "2f1e2fa4c359f11122aa183082218e957e390c73", - "tarball": "https://registry.npmjs.org/benchmark/-/benchmark-1.0.0.tgz" - }, - "_shasum": "2f1e2fa4c359f11122aa183082218e957e390c73", - "_resolved": "https://registry.npmjs.org/benchmark/-/benchmark-1.0.0.tgz", - "_from": "benchmark@1.0.0", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/test/run-test.sh b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/test/run-test.sh deleted file mode 100755 index 43424e43..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/test/run-test.sh +++ /dev/null @@ -1,9 +0,0 @@ -cd "$(dirname "$0")" -for cmd in rhino ringo narwhal node; do - echo "" - echo "Testing in $cmd..." - $cmd test.js -done -echo "" -echo "Testing in a browser..." -open index.html diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/test/test.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/test/test.js deleted file mode 100644 index d6944940..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/test/test.js +++ /dev/null @@ -1,2074 +0,0 @@ -;(function(window, undefined) { - 'use strict'; - - /** Use a single load function */ - var load = typeof require == 'function' ? require : window.load; - - /** The `platform` object to check */ - var platform = - window.platform || - load('../vendor/platform.js/platform.js') || - window.platform; - - /** The unit testing framework */ - var QUnit = - window.QUnit || ( - window.setTimeout || (window.addEventListener = window.setTimeout = / /), - window.QUnit = load('../vendor/qunit/qunit/qunit' + (platform.name == 'Narwhal' ? '-1.8.0' : '') + '.js') || window.QUnit, - load('../vendor/qunit-clib/qunit-clib.js'), - (window.addEventListener || 0).test && delete window.addEventListener, - window.QUnit - ); - - /** The `Benchmark` constructor to test */ - var Benchmark = - window.Benchmark || ( - Benchmark = load('../benchmark.js') || window.Benchmark, - Benchmark.Benchmark || Benchmark - ); - - /** API shortcut */ - var forOwn = Benchmark.forOwn; - - /** Used to get property descriptors */ - var getDescriptor = Object.getOwnPropertyDescriptor; - - /** Used to set property descriptors */ - var setDescriptor = Object.defineProperty; - - /** Shortcut used to convert array-like objects to arrays */ - var slice = [].slice; - - /** Used to resolve a value's internal [[Class]] */ - var toString = {}.toString; - - /** Used to check problem JScript properties (a.k.a. the [[DontEnum]] bug) */ - var shadowed = { - 'constructor': 1, - 'hasOwnProperty': 2, - 'isPrototypeOf': 3, - 'propertyIsEnumerable': 4, - 'toLocaleString': 5, - 'toString': 6, - 'valueOf': 7 - }; - - /** Used to flag environments/features */ - var support = { - 'descriptors': !!function() { - try { - var o = {}; - return (setDescriptor(o, o, o), 'value' in getDescriptor(o, o)); - } catch(e) { } - }() - }; - - /*--------------------------------------------------------------------------*/ - - /** - * Skips a given number of tests with a passing result. - * - * @private - * @param {Number} [count=1] The number of tests to skip. - */ - function skipTest(count) { - count || (count = 1); - while (count--) { - ok(true, 'test skipped'); - } - } - - /*--------------------------------------------------------------------------*/ - - // init Benchmark.options.minTime - Benchmark(function() { throw 0; }).run(); - - // set a shorter max time - Benchmark.options.maxTime = Benchmark.options.minTime * 5; - - // explicitly call `QUnit.module()` instead of `module()` - // in case we are in a CLI environment - QUnit.module('Benchmark'); - - (function() { - test('has the default `Benchmark.platform` value', function() { - if (window.document) { - equal(String(Benchmark.platform), navigator.userAgent); - } else { - skipTest(1) - } - }); - - test('supports loading Benchmark.js as a module', function() { - if (window.document && window.require) { - equal((Benchmark2 || {}).version, Benchmark.version); - } else { - skipTest(1) - } - }); - - test('supports loading Platform.js as a module', function() { - if (window.document && window.require) { - var platform = (Benchmark2 || {}).platform || {}; - equal(typeof platform.name, 'string'); - } else { - skipTest(1) - } - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark constructor'); - - (function() { - test('creates a new instance when called without the `new` operator', function() { - ok(Benchmark() instanceof Benchmark); - }); - - test('supports passing an options object', function() { - var bench = Benchmark({ 'name': 'foo', 'fn': function() { } }); - ok(bench.fn && bench.name == 'foo'); - }); - - test('supports passing a "name" and "fn" argument', function() { - var bench = Benchmark('foo', function() { }); - ok(bench.fn && bench.name == 'foo'); - }); - - test('supports passing a "name" argument and an options object', function() { - var bench = Benchmark('foo', { 'fn': function() { } }); - ok(bench.fn && bench.name == 'foo'); - }); - - test('supports passing a "name" argument and an options object', function() { - var bench = Benchmark('foo', function() { }, { 'id': 'bar' }); - ok(bench.fn && bench.name == 'foo' && bench.id == 'bar'); - }); - - test('supports passing an empy string for the "fn" options property', function() { - var bench = Benchmark({ 'fn': '' }).run(); - ok(!bench.error); - }); - - test('detects dead code', function() { - var bench = Benchmark(function() { }).run(); - ok(/setup\(\)/.test(bench.compiled) ? !bench.error : bench.error); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark compilation'); - - (function() { - test('compiles using the default `Function#toString`', function() { - var bench = Benchmark({ - 'setup': function() { var a = 1; }, - 'fn': function() { throw a; }, - 'teardown': function() { a = 2; } - }).run(); - - var compiled = bench.compiled; - if (/setup\(\)/.test(compiled)) { - skipTest(); - } - else { - ok(/var a\s*=\s*1/.test(compiled) && /throw a/.test(compiled) && /a\s*=\s*2/.test(compiled)); - } - }); - - test('compiles using a custom "toString" method', function() { - var bench = Benchmark({ - 'setup': function() { }, - 'fn': function() { }, - 'teardown': function() { } - }); - - bench.setup.toString = function() { return 'var a = 1;' }; - bench.fn.toString = function() { return 'throw a;' }; - bench.teardown.toString = function() { return 'a = 2;' }; - bench.run(); - - var compiled = bench.compiled; - if (/setup\(\)/.test(compiled)) { - skipTest(); - } - else { - ok(/var a\s*=\s*1/.test(compiled) && /throw a/.test(compiled) && /a\s*=\s*2/.test(compiled)); - } - }); - - test('compiles using a string value', function() { - var bench = Benchmark({ - 'setup': 'var a = 1;', - 'fn': 'throw a;', - 'teardown': 'a = 2;' - }).run(); - - var compiled = bench.compiled; - if (/setup\(\)/.test(compiled)) { - skipTest(); - } - else { - ok(/var a\s*=\s*1/.test(compiled) && /throw a/.test(compiled) && /a\s*=\s*2/.test(compiled)); - } - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark test binding'); - - (function() { - var count = 0; - - var tests = { - 'inlined "setup", "fn", and "teardown"': ( - 'if(/ops/.test(this))this._fn=true;' - ), - 'called "fn" and inlined "setup"/"teardown" reached by error': function() { - count++; - if (/ops/.test(this)) { - this._fn = true; - } - }, - 'called "fn" and inlined "setup"/"teardown" reached by `return` statement': function() { - if (/ops/.test(this)) { - this._fn = true; - } - return; - } - }; - - forOwn(tests, function(fn, title) { - test('has correct binding for ' + title, function() { - var bench = Benchmark({ - 'setup': 'if(/ops/.test(this))this._setup=true;', - 'fn': fn, - 'teardown': 'if(/ops/.test(this))this._teardown=true;', - 'onCycle': function() { this.abort(); } - }).run(); - - var compiled = bench.compiled; - if (/setup\(\)/.test(compiled)) { - skipTest(3); - } - else { - ok(bench._setup, 'correct binding for "setup"'); - ok(bench._fn, 'correct binding for "fn"'); - ok(bench._teardown, 'correct binding for "teardown"'); - } - }); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.deepClone'); - - (function() { - function createCircularObject() { - var result = { - 'foo': { 'b': { 'foo': { 'c': { } } } }, - 'bar': { } - }; - - result.foo.b.foo.c.foo = result; - result.bar.b = result.foo.b; - return result; - } - - function Klass() { - this.a = 1; - } - - Klass.prototype = { 'b': 1 }; - - var notCloneable = { - 'an arguments object': arguments, - 'an element': window.document && document.body, - 'a function': Klass, - 'a Klass instance': new Klass - }; - - var objects = { - 'an array': ['a', 'b', 'c', ''], - 'an array-like-object': { '0': 'a', '1': 'b', '2': 'c', '3': '', 'length': 5 }, - 'boolean': false, - 'boolean object': Object(false), - 'an object': { 'a': 0, 'b': 1, 'c': 3 }, - 'an object with object values': { 'a': /a/, 'b': ['B'], 'c': { 'C': 1 } }, - 'null': null, - 'a number': 3, - 'a number object': Object(3), - 'a regexp': /x/gim, - 'a string': 'x', - 'a string object': Object('x'), - 'undefined': undefined - }; - - objects['an array'].length = 5; - - forOwn(objects, function(object, key) { - test('clones ' + key + ' correctly', function() { - var kind = toString.call(object), - clone = Benchmark.deepClone(object); - - if (object == null) { - equal(clone, object); - } else { - deepEqual(clone.valueOf(), object.valueOf()); - } - if (object === Object(object)) { - ok(clone !== object); - } else { - skipTest(); - } - }); - }); - - forOwn(notCloneable, function(object, key) { - test('does not clone ' + key, function() { - ok(Benchmark.deepClone(object) === object); - }); - }); - - test('clones using Klass#deepClone', function() { - var object = new Klass; - Klass.prototype.deepClone = function() { return new Klass; }; - - var clone = Benchmark.deepClone(object); - ok(clone !== object && clone instanceof Klass); - - delete Klass.prototype.clone; - }); - - test('clones problem JScript properties', function() { - var clone = Benchmark.deepClone(shadowed); - deepEqual(clone, shadowed); - }); - - test('clones string object with custom property', function() { - var object = new String('x'); - object.x = 1; - - var clone = Benchmark.deepClone(object); - ok(clone == 'x' && typeof clone == 'object' && clone.x === 1 && toString.call(clone) == '[object String]'); - }); - - test('clones objects with circular references', function() { - var object = createCircularObject(), - clone = Benchmark.deepClone(object); - - ok(clone.bar.b === clone.foo.b && clone === clone.foo.b.foo.c.foo && clone !== object); - }); - - test('clones non-extensible objects with circular references', function() { - if (Object.preventExtensions) { - var object = Object.preventExtensions(createCircularObject()); - Object.preventExtensions(object.bar.b); - - var clone = Benchmark.deepClone(object); - ok(clone.bar.b === clone.foo.b && clone === clone.foo.b.foo.c.foo && clone !== object); - } else { - skipTest(1) - } - }); - - test('clones sealed objects with circular references', function() { - if (Object.seal) { - var object = Object.seal(createCircularObject()); - Object.seal(object.bar.b); - - var clone = Benchmark.deepClone(object); - ok(clone.bar.b === clone.foo.b && clone === clone.foo.b.foo.c.foo && clone !== object); - } else { - skipTest(1) - } - }); - - test('clones frozen objects with circular references', function() { - if (Object.freeze) { - var object = Object.freeze(createCircularObject()); - Object.freeze(object.bar.b); - - var clone = Benchmark.deepClone(object); - ok(clone.bar.b === clone.foo.b && clone === clone.foo.b.foo.c.foo && clone !== object); - } else { - skipTest(1) - } - }); - - test('clones objects with custom descriptors and circular references', function() { - var accessor, - descriptor; - - if (support.descriptors) { - var object = setDescriptor({}, 'foo', { - 'configurable': true, - 'value': setDescriptor({}, 'b', { - 'writable': true, - 'value': setDescriptor({}, 'foo', { - 'get': function() { return accessor; }, - 'set': function(value) { accessor = value; } - }) - }) - }); - - setDescriptor(object, 'bar', { 'value': {} }); - object.foo.b.foo = { 'c': object }; - object.bar.b = object.foo.b; - - var clone = Benchmark.deepClone(object); - ok(clone !== object && - clone.bar.b === clone.foo.b && - clone !== clone.foo.b.foo.c.foo && - (descriptor = getDescriptor(clone, 'foo')) && - descriptor.configurable && !(descriptor.enumerable && descriptor.writable) && - (descriptor = getDescriptor(clone.foo, 'b')) && - descriptor.writable && !(descriptor.configurable && descriptor.enumerable) && - (descriptor = getDescriptor(clone.foo.b, 'foo')) && - descriptor.get && descriptor.set && - (descriptor = getDescriptor(clone.foo.b, 'foo')) && - !(descriptor.configurable && descriptor.enumerable && descriptor.writable) && - (descriptor = getDescriptor(clone, 'bar')) && - !(descriptor.configurable && descriptor.enumerable && descriptor.writable)); - } - else { - skipTest(1) - } - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.each'); - - (function() { - var xpathResult; - - var objects = { - 'array': ['a', 'b', 'c', ''], - 'array-like-object': { '0': 'a', '1': 'b', '2': 'c', '3': '', 'length': 5 }, - 'xpath snapshot': null - }; - - if (window.document && document.evaluate) { - xpathResult = [document.documentElement, document.getElementsByTagName('head')[0], document.body]; - objects['xpath snapshot'] = document.evaluate('//*[self::html or self::head or self::body]', document, null, 7, null); - } - - objects.array.length = 5; - - forOwn(objects, function(object, key) { - test('passes the correct arguments when passing an ' + key, function() { - if (object) { - var args - Benchmark.each(object, function() { - args || (args = slice.call(arguments)); - }); - - if (key == 'xpath snapshot') { - ok(args[0] === xpathResult[0]); - } else { - equal(args[0], 'a'); - } - equal(args[1], 0); - ok(args[2] === object); - } - else { - skipTest(3); - } - }); - - test('returns the passed object when passing an ' + key, function() { - if (object) { - var actual = Benchmark.each(object, function() { }); - ok(actual === object); - } - else { - skipTest(); - } - }); - - test('iterates over all indexes when passing an ' + key, function() { - if (object) { - var values = []; - Benchmark.each(object, function(value) { - values.push(value); - }); - - deepEqual(values, key == 'xpath snapshot' ? xpathResult : ['a', 'b', 'c', '']); - } - else { - skipTest(); - } - }); - - test('exits early when returning `false` when passing an ' + key, function() { - if (object) { - var values = []; - Benchmark.each(object, function(value) { - values.push(value); - return values.length < 2; - }); - - deepEqual(values, key == 'xpath snapshot' ? xpathResult.slice(0, 2) : ['a', 'b']); - } - else { - skipTest(); - } - }); - }); - - test('passes the third callback argument as an object', function() { - var thirdArg; - Benchmark.each('hello', function(value, index, object) { - thirdArg = object; - }); - - ok(thirdArg && typeof thirdArg == 'object'); - }); - - test('iterates over strings by index', function() { - var values = []; - Benchmark.each('hello', function(value) { - values.push(value) - }); - - deepEqual(values, ['h', 'e', 'l', 'l', 'o']); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.extend'); - - (function() { - test('allows no source argument', function() { - var object = {}; - equal(Benchmark.extend(object), object); - }); - - test('allows a single source argument', function() { - var source = { 'x': 1, 'y': 1 }, - actual = Benchmark.extend({}, source); - - deepEqual(Benchmark.extend({}, source), { 'x': 1, 'y': 1 }); - }); - - test('allows multiple source arguments', function() { - var source1 = { 'x': 1, 'y': 1 }, - source2 = { 'y': 2, 'z': 2 }, - actual = Benchmark.extend({}, source1, source2); - - deepEqual(actual, { 'x': 1, 'y': 2, 'z': 2 }); - }); - - test('will add inherited source properties', function() { - function Source() { } - Source.prototype.x = 1; - deepEqual(Benchmark.extend({}, new Source), { 'x': 1 }); - }); - - test('will add problem JScript properties', function() { - deepEqual(Benchmark.extend({}, shadowed), shadowed); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.filter'); - - (function() { - var objects = { - 'array': ['a', 'b', 'c', ''], - 'array-like-object': { '0': 'a', '1': 'b', '2': 'c', '3': '', 'length': 5 } - }; - - objects.array.length = 5; - - forOwn(objects, function(object, key) { - test('passes the correct arguments when passing an ' + key, function() { - var args; - Benchmark.filter(object, function() { - args || (args = slice.call(arguments)); - }); - - deepEqual(args, ['a', 0, object]); - }); - - test('produces the correct result when passing an ' + key, function() { - var actual = Benchmark.filter(object, function(value, index) { - return index > 0; - }); - - deepEqual(actual, ['b', 'c', '']); - }); - - test('iterates over sparse ' + key + 's correctly', function() { - var actual = Benchmark.filter(object, function(value) { - return value === undefined; - }); - - deepEqual(actual, []); - }); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.forOwn'); - - (function() { - function fn() { - // no-op - } - - function KlassA() { - this.a = 1; - this.b = 2; - this.c = 3; - } - - function KlassB() { - this.a = 1; - this.constructor = 2; - this.hasOwnProperty = 3; - this.isPrototypeOf = 4; - this.propertyIsEnumerable = 5; - this.toLocaleString = 6; - this.toString = 7; - this.valueOf = 8; - } - - function KlassC() { - // no-op - } - - fn.a = 1; - fn.b = 2; - fn.c = 3; - - KlassC.prototype.a = 1; - KlassC.prototype.b = 2; - KlassC.prototype.c = 3; - - var objects = { - 'an arguments object': arguments, - 'a function': fn, - 'an object': new KlassA, - 'an object shadowing properties on Object.prototype': new KlassB, - 'a prototype object': KlassC.prototype, - 'a string': 'abc' - }; - - forOwn(objects, function(object, key) { - test('passes the correct arguments when passing ' + key, function() { - var args; - Benchmark.forOwn(object, function() { - args || (args = slice.call(arguments)); - }); - - equal(typeof args[0], key == 'a string' ? 'string' : 'number'); - equal(typeof args[1], 'string'); - equal(args[2] && typeof args[2], key == 'a function' ? 'function' : 'object'); - }); - - test('returns the passed object when passing ' + key, function() { - var actual = Benchmark.forOwn(object, function() { }); - deepEqual(actual, object); - }); - - test('iterates over own properties when passing ' + key, function() { - var values = []; - Benchmark.forOwn(object, function(value) { - values.push(value); - }); - - if (object instanceof KlassB) { - deepEqual(values.sort(), [1, 2, 3, 4, 5, 6, 7, 8]); - } else if (key == 'a string') { - deepEqual(values, ['a', 'b', 'c']); - } else { - deepEqual(values.sort(), [1, 2, 3]); - } - }); - - test('exits early when returning `false` when passing ' + key, function() { - var values = []; - Benchmark.forOwn(object, function(value) { - values.push(value); - return false; - }); - - equal(values.length, 1); - }); - - if (object instanceof KlassB) { - test('exits correctly when transitioning to the JScript [[DontEnum]] fix', function() { - var values = []; - Benchmark.forOwn(object, function(value) { - values.push(value); - return values.length < 2; - }); - - equal(values.length, 2); - }); - } - }); - }(1, 2, 3)); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.formatNumber'); - - (function() { - test('formats a million correctly', function() { - equal(Benchmark.formatNumber(1e6), '1,000,000'); - }); - - test('formats less than 100 correctly', function() { - equal(Benchmark.formatNumber(23), '23'); - }); - - test('formats numbers with decimal values correctly', function() { - equal(Benchmark.formatNumber(1234.56), '1,234.56'); - }); - - test('formats negative numbers correctly', function() { - equal(Benchmark.formatNumber(-1234.56), '-1,234.56'); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.hasKey'); - - (function() { - test('returns `true` for own properties', function() { - var object = { 'x': 1 }; - equal(Benchmark.hasKey(object, 'x'), true); - }); - - test('returns `false` for inherited properties', function() { - equal(Benchmark.hasKey({}, 'toString'), false); - }); - - test('doesn\'t use an object\'s `hasOwnProperty` method', function() { - var object = { 'hasOwnProperty': function() { return true; } }; - equal(Benchmark.hasKey(object, 'x'), false); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.indexOf'); - - (function() { - var objects = { - 'array': ['a', 'b', 'c', ''], - 'array-like-object': { '0': 'a', '1': 'b', '2': 'c', '3': '', 'length': 5 } - }; - - objects.array.length = 5; - - forOwn(objects, function(object, key) { - test('produces the correct result when passing an ' + key, function() { - equal(Benchmark.indexOf(object, 'b'), 1); - }); - - test('matches values by strict equality when passing an ' + key, function() { - equal(Benchmark.indexOf(object, new String('b')), -1); - }); - - test('iterates over sparse ' + key + 's correctly', function() { - equal(Benchmark.indexOf(object, undefined), -1); - }); - }); - - test('searches from the given `fromIndex`', function() { - var array = ['a', 'b', 'c', 'a']; - equal(Benchmark.indexOf(array, 'a', 1), 3); - }); - - test('handles extreme negative `fromIndex` values correctly', function() { - var array = ['a']; - array['-1'] = 'z'; - equal(Benchmark.indexOf(array, 'z', -2), -1); - }); - - test('handles extreme positive `fromIndex` values correctly', function() { - var object = { '0': 'a', '1': 'b', '2': 'c', 'length': 2 }; - equal(Benchmark.indexOf(object, 'c', 2), -1); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.interpolate'); - - (function() { - test('replaces tokens correctly', function() { - var actual = Benchmark.interpolate('#{greeting} #{location}.', { - 'greeting': 'Hello', - 'location': 'world' - }); - - equal(actual, 'Hello world.'); - }); - - test('ignores inherited object properties', function() { - var actual = Benchmark.interpolate('x#{toString}', {}); - equal(actual, 'x#{toString}'); - }); - - test('allows for no template object', function() { - var actual = Benchmark.interpolate('x'); - equal(actual, 'x'); - }); - - test('replaces duplicate tokens', function() { - var actual = Benchmark.interpolate('#{x}#{x}#{x}', { 'x': 'a' }); - equal(actual, 'aaa'); - }); - - test('handles keys containing RegExp special characters', function() { - var actual = Benchmark.interpolate('#{.*+?^=!:${}()|[]\\/}', { '.*+?^=!:${}()|[]\\/': 'x' }); - equal(actual, 'x'); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.invoke'); - - (function() { - var objects = { - 'array': ['a', ['b'], 'c', null], - 'array-like-object': { '0': 'a', '1': ['b'], '2': 'c', '3': null, 'length': 5 } - }; - - objects.array.length = 5; - - forOwn(objects, function(object, key) { - test('produces the correct result when passing an ' + key, function() { - var actual = Benchmark.invoke(object, 'concat'); - deepEqual(actual, ['a', ['b'], 'c', undefined, undefined]); - equal('4' in actual, false); - }); - - test('passes the correct arguments to the invoked method when passing an ' + key, function() { - var actual = Benchmark.invoke(object, 'concat', 'x', 'y', 'z'); - deepEqual(actual, ['axyz', ['b', 'x', 'y', 'z'], 'cxyz', undefined, undefined]); - equal('4' in actual, false); - }); - - test('handles options object with callbacks correctly when passing an ' + key, function() { - function callback() { - callbacks.push(slice.call(arguments)); - } - - var callbacks = []; - var actual = Benchmark.invoke(object, { - 'name': 'concat', - 'args': ['x', 'y', 'z'], - 'onStart': callback, - 'onCycle': callback, - 'onComplete': callback - }); - - deepEqual(actual, ['axyz', ['b', 'x', 'y', 'z'], 'cxyz', undefined, undefined]); - equal('4' in actual, false); - - equal(callbacks[0].length, 1); - equal(callbacks[0][0].target, 'a'); - deepEqual(callbacks[0][0].currentTarget, object); - equal(callbacks[0][0].type, 'start'); - equal(callbacks[1][0].type, 'cycle'); - equal(callbacks[5][0].type, 'complete'); - }); - - test('supports queuing when passing an ' + key, function() { - var lengths = []; - var actual = Benchmark.invoke(object, { - 'name': 'concat', - 'queued': true, - 'args': 'x', - 'onCycle': function() { - lengths.push(object.length); - } - }); - - deepEqual(lengths, [5, 4, 3, 2]); - deepEqual(actual, ['ax', ['b', 'x'], 'cx', undefined, undefined]); - }); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.join'); - - (function() { - var objects = { - 'array': ['a', 'b', ''], - 'array-like-object': { '0': 'a', '1': 'b', '2': '', 'length': 4 }, - 'object': { 'a': '0', 'b': '1', '': '2' } - }; - - objects.array.length = 4; - - forOwn(objects, function(object, key) { - test('joins correctly using the default separator when passing an ' + key, function() { - equal(Benchmark.join(object), key == 'object' ? 'a: 0,b: 1,: 2' : 'a,b,'); - }); - - test('joins correctly using a custom separator when passing an ' + key, function() { - equal(Benchmark.join(object, '+', '@'), key == 'object' ? 'a@0+b@1+@2' : 'a+b+'); - }); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.map'); - - (function() { - var objects = { - 'array': ['a', 'b', 'c', ''], - 'array-like-object': { '0': 'a', '1': 'b', '2': 'c', '3': '', 'length': 5 } - }; - - objects.array.length = 5; - - forOwn(objects, function(object, key) { - test('passes the correct arguments when passing an ' + key, function() { - var args; - Benchmark.map(object, function() { - args || (args = slice.call(arguments)); - }); - - deepEqual(args, ['a', 0, object]); - }); - - test('produces the correct result when passing an ' + key, function() { - var actual = Benchmark.map(object, function(value, index) { - return value + index; - }); - - deepEqual(actual, ['a0', 'b1', 'c2', '3', undefined]); - equal('4' in actual, false); - }); - - test('produces an array of the correct length for sparse ' + key + 's', function() { - equal(Benchmark.map(object, function() { }).length, 5); - }); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.pluck'); - - (function() { - var objects = { - 'array': [{ '_': 'a' }, { '_': 'b' }, { '_': 'c' }, null], - 'array-like-object': { '0': { '_': 'a' }, '1': { '_': 'b' }, '2': { '_': 'c' }, '3': null, 'length': 5 } - }; - - objects.array.length = 5; - - forOwn(objects, function(object, key) { - test('produces the correct result when passing an ' + key, function() { - var actual = Benchmark.pluck(object, '_'); - deepEqual(actual, ['a', 'b', 'c', undefined, undefined]); - equal('4' in actual, false); - }); - - test('produces the correct result for non-existent keys when passing an ' + key, function() { - var actual = Benchmark.pluck(object, 'non-existent'); - deepEqual(actual, [undefined, undefined, undefined, undefined, undefined]); - equal('4' in actual, false); - }); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.reduce'); - - (function() { - var objects = { - 'array': ['b', 'c', ''], - 'array-like-object': { '0': 'b', '1': 'c', '2': '', 'length': 4 } - }; - - objects.array.length = 4; - - forOwn(objects, function(object, key) { - test('passes the correct arguments when passing an ' + key, function() { - var args; - Benchmark.reduce(object, function() { - args || (args = slice.call(arguments)); - }, 'a'); - - deepEqual(args, ['a', 'b', 0, object]); - }); - - test('accumulates correctly when passing an ' + key, function() { - var actual = Benchmark.reduce(object, function(string, value) { - return string + value; - }, 'a'); - - equal(actual, 'abc'); - }); - - test('handles arguments with no initial value correctly when passing an ' + key, function() { - var args; - Benchmark.reduce(object, function() { - args || (args = slice.call(arguments)); - }); - - deepEqual(args, ['b', 'c', 1, object]); - }); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark#clone'); - - (function() { - var bench = Benchmark(function() { this.count += 0; }).run(); - - test('produces the correct result passing no arguments', function() { - var clone = bench.clone(); - deepEqual(clone, bench); - ok(clone.stats != bench.stats && clone.times != bench.times && clone.options != bench.options); - }); - - test('produces the correct result passing a data object', function() { - var clone = bench.clone({ 'fn': '', 'name': 'foo' }); - ok(clone.fn === '' && clone.options.fn === ''); - ok(clone.name == 'foo' && clone.options.name == 'foo'); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark#run'); - - (function() { - var data = { 'onComplete': 0, 'onCycle': 0, 'onStart': 0 }; - - var bench = Benchmark({ - 'fn': function() { - this.count += 0; - }, - 'onStart': function() { - data.onStart++; - }, - 'onComplete': function() { - data.onComplete++; - } - }) - .run(); - - test('onXYZ callbacks should not be triggered by internal benchmark clones', function() { - equal(data.onStart, 1); - equal(data.onComplete, 1); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - forOwn({ - 'Benchmark': Benchmark, - 'Benchmark.Suite': Benchmark.Suite - }, - function(Constructor, namespace) { - - QUnit.module(namespace + '#emit'); - - (function() { - test('emits passed arguments', function() { - var args, - object = Constructor(); - - object.on('args', function() { args = slice.call(arguments, 1); }); - object.emit('args', 'a', 'b', 'c'); - deepEqual(args, ['a', 'b', 'c']); - }); - - test('emits with no listeners', function() { - var event = Benchmark.Event('empty'), - object = Constructor(); - - object.emit(event); - equal(event.cancelled, false); - }); - - test('emits with an event type of "toString"', function() { - var event = Benchmark.Event('toString'), - object = Constructor(); - - object.emit(event); - equal(event.cancelled, false); - }); - - test('returns the last listeners returned value', function() { - var event = Benchmark.Event('result'), - object = Constructor(); - - object.on('result', function() { return 'x'; }); - object.on('result', function() { return 'y'; }); - equal(object.emit(event), 'y'); - }); - - test('aborts the emitters listener iteration when `event.aborted` is `true`', function() { - var event = Benchmark.Event('aborted'), - object = Constructor(); - - object.on('aborted', function(event) { - event.aborted = true; - return false; - }); - - object.on('aborted', function(event) { - // should not get here - event.aborted = false; - return true; - }); - - equal(object.emit(event), false); - equal(event.aborted, true); - }); - - test('cancels the event if a listener explicitly returns `false`', function() { - var event = Benchmark.Event('cancel'), - object = Constructor(); - - object.on('cancel', function() { return false; }); - object.on('cancel', function() { return true; }); - object.emit(event); - equal(event.cancelled, true); - }); - - test('uses a shallow clone of the listeners when emitting', function() { - var event, - listener2 = function(eventObject) { eventObject.listener2 = true }, - object = Constructor(); - - object.on('shallowclone', function(eventObject) { - event = eventObject; - object.off(event.type, listener2); - }) - .on('shallowclone', listener2) - .emit('shallowclone'); - - ok(event.listener2); - }); - - test('emits a custom event object', function() { - var event = Benchmark.Event('custom'), - object = Constructor(); - - object.on('custom', function(eventObject) { eventObject.touched = true; }); - object.emit(event); - ok(event.touched); - }); - - test('sets `event.result` correctly', function() { - var event = Benchmark.Event('result'), - object = Constructor(); - - object.on('result', function() { return 'x'; }); - object.emit(event); - equal(event.result, 'x'); - }); - - test('sets `event.type` correctly', function() { - var event, - object = Constructor(); - - object.on('type', function(eventObj) { - event = eventObj; - }); - - object.emit('type'); - equal(event.type, 'type'); - }); - }()); - - /*------------------------------------------------------------------------*/ - - QUnit.module(namespace + '#listeners'); - - (function() { - test('returns the correct listeners', function() { - var listener = function() { }, - object = Constructor(); - - object.on('x', listener); - deepEqual(object.listeners('x'), [listener]); - }); - - test('returns an array and initializes previously uninitialized listeners', function() { - var object = Constructor(); - deepEqual(object.listeners('x'), []); - deepEqual(object.events, { 'x': [] }); - }); - }()); - - /*------------------------------------------------------------------------*/ - - QUnit.module(namespace + '#off'); - - (function() { - test('returns the benchmark', function() { - var listener = function() { }, - object = Constructor(); - - object.on('x', listener); - equal(object.off('x', listener), object); - }); - - test('will ignore inherited properties of the event cache', function() { - var Dummy = function() { }, - listener = function() { }, - object = Constructor(); - - Dummy.prototype.x = [listener]; - object.events = new Dummy; - - object.off('x', listener); - deepEqual(object.events.x, [listener]); - }); - - test('handles an event type and listener', function() { - var listener = function() { }, - object = Constructor(); - - object.on('x', listener); - object.off('x', listener); - deepEqual(object.events.x, []); - }); - - test('handles unregistering duplicate listeners', function() { - var listener = function() { }, - object = Constructor(); - - object.on('x', listener); - object.on('x', listener); - - var events = object.events; - object.off('x', listener); - deepEqual(events.x, [listener]); - - object.off('x', listener); - deepEqual(events.x, []); - }); - - test('handles a non-registered listener', function() { - var object = Constructor(); - object.off('x', function() { }); - equal(object.events, undefined); - }); - - test('handles space separated event type and listener', function() { - var listener = function() { }, - object = Constructor(); - - object.on('x', listener); - object.on('y', listener); - - var events = object.events; - object.off('x y', listener); - deepEqual(events.x, []); - deepEqual(events.y, []); - }); - - test('handles space separated event type and no listener', function() { - var listener1 = function() { }, - listener2 = function() { }, - object = Constructor(); - - object.on('x', listener1); - object.on('y', listener2); - - var events = object.events; - object.off('x y'); - deepEqual(events.x, []); - deepEqual(events.y, []); - }); - - test('handles no arguments', function() { - var listener1 = function() { }, - listener2 = function() { }, - listener3 = function() { }, - object = Constructor(); - - object.on('x', listener1); - object.on('y', listener2); - object.on('z', listener3); - - var events = object.events; - object.off(); - deepEqual(events.x, []); - deepEqual(events.y, []); - deepEqual(events.z, []); - }); - }()); - - /*------------------------------------------------------------------------*/ - - QUnit.module(namespace + '#on'); - - (function() { - test('returns the benchmark', function() { - var listener = function() { }, - object = Constructor(); - - equal(object.on('x', listener), object); - }); - - test('will ignore inherited properties of the event cache', function() { - var Dummy = function() { }, - listener1 = function() { }, - listener2 = function() { }, - object = Constructor(); - - Dummy.prototype.x = [listener1]; - object.events = new Dummy; - - object.on('x', listener2); - deepEqual(object.events.x, [listener2]); - }); - - test('handles an event type and listener', function() { - var listener = function() { }, - object = Constructor(); - - object.on('x', listener); - deepEqual(object.events.x, [listener]); - }); - - test('handles registering duplicate listeners', function() { - var listener = function() { }, - object = Constructor(); - - object.on('x', listener); - object.on('x', listener); - deepEqual(object.events.x, [listener, listener]); - }); - - test('handles space separated event type and listener', function() { - var listener = function() { }, - object = Constructor(); - - object.on('x y', listener); - - var events = object.events; - deepEqual(events.x, [listener]); - deepEqual(events.y, [listener]); - }); - }()); - }); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.Suite#abort'); - - (function() { - test('igores abort calls when the suite isn\'t running', function() { - var fired = false; - var suite = Benchmark.Suite('suite', { - 'onAbort': function() { fired = true; } - }); - - suite.add('foo', function() { }); - suite.abort(); - equal(fired, false); - }); - - test('ignores abort calls from `Benchmark.Suite#reset` when the suite isn\'t running', function() { - var fired = false; - var suite = Benchmark.Suite('suite', { - 'onAbort': function() { fired = true; } - }); - - suite.add('foo', function() { }); - suite.reset(); - equal(fired, false); - }); - - asyncTest('emits an abort event when running', function() { - var fired = false; - - Benchmark.Suite({ - 'onAbort': function() { fired = true; } - }) - .on('start', function() { - this.abort(); - }) - .on('complete', function() { - ok(fired); - QUnit.start(); - }) - .add(function(){ }) - .run({ 'async': true }); - }); - - asyncTest('emits an abort event after calling `Benchmark.Suite#reset`', function() { - var fired = false; - - Benchmark.Suite({ - 'onAbort': function() { fired = true; } - }) - .on('start', function() { - this.reset(); - }) - .on('complete', function() { - ok(fired); - QUnit.start(); - }) - .add(function(){ }) - .run({ 'async': true }); - }); - - asyncTest('should abort deferred benchmark', function() { - var fired = false, - suite = Benchmark.Suite(); - - suite.on('complete', function() { - equal(fired, false); - QUnit.start(); - }) - .add('a', { - 'defer': true, - 'fn': function(deferred) { - // avoid test inlining - suite.name; - // delay resolve - setTimeout(function() { - deferred.resolve(); - suite.abort(); - }, 10); - } - }) - .add('b', { - 'defer': true, - 'fn': function(deferred) { - // avoid test inlining - suite.name; - // delay resolve - setTimeout(function() { - deferred.resolve(); - fired = true; - }, 10); - } - }) - .run(); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.Suite#concat'); - - (function() { - var args = arguments; - - test('doesn\'t treat an arguments object like an array', function() { - var suite = Benchmark.Suite(); - deepEqual(suite.concat(args), [args]); - }); - - test('flattens array arguments', function() { - var suite = Benchmark.Suite(); - deepEqual(suite.concat([1, 2], 3, [4, 5]), [1, 2, 3, 4, 5]); - }); - - test('supports concating sparse arrays', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite[2] = 2; - suite.length = 3; - - var actual = suite.concat(3); - deepEqual(actual, [0, undefined, 2, 3]); - equal('1' in actual, false); - }); - - test('supports sparse arrays as arguments', function() { - var suite = Benchmark.Suite(), - sparse = []; - - sparse[0] = 0; - sparse[2] = 2; - sparse.length = 3; - - var actual = suite.concat(sparse); - deepEqual(actual, [0, undefined, 2]); - equal('1' in actual, false); - }); - - test('creates a new array', function() { - var suite = Benchmark.Suite(); - ok(suite.concat(1) !== suite); - }); - }(1, 2, 3)); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.Suite#reverse'); - - (function() { - test('reverses the element order', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite[1] = 1; - suite.length = 2; - - var actual = suite.reverse(); - equal(actual, suite); - deepEqual(slice.call(actual), [1, 0]); - }); - - test('supports reversing sparse arrays', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite[2] = 2; - suite.length = 3; - - var actual = suite.reverse(); - equal(actual, suite); - deepEqual(slice.call(actual), [2, undefined, 0]); - equal('1' in actual, false); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.Suite#shift'); - - (function() { - test('removes the first element', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite[1] = 1; - suite.length = 2; - - var actual = suite.shift(); - equal(actual, 0); - deepEqual(slice.call(suite), [1]); - }); - - test('shifts an object with no elements', function() { - var suite = Benchmark.Suite(), - actual = suite.shift(); - - equal(actual, undefined); - deepEqual(slice.call(suite), []); - }); - - test('should have no elements when length is 0 after shift', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite.length = 1; - suite.shift(); - - // ensure element is removed - equal('0' in suite, false); - equal(suite.length, 0); - }); - - test('supports shifting sparse arrays', function() { - var suite = Benchmark.Suite(); - suite[1] = 1; - suite[3] = 3; - suite.length = 4; - - var actual = suite.shift(); - equal(actual, undefined); - deepEqual(slice.call(suite), [1, undefined, 3]); - equal('1' in suite, false); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.Suite#slice'); - - (function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite[1] = 1; - suite[2] = 2; - suite[3] = 3; - suite.length = 4; - - test('works with no arguments', function() { - var actual = suite.slice(); - deepEqual(actual, [0, 1, 2, 3]); - ok(suite !== actual); - }); - - test('works with positive `start` argument', function() { - var actual = suite.slice(2); - deepEqual(actual, [2, 3]); - ok(suite !== actual); - }); - - test('works with positive `start` and `end` arguments', function() { - var actual = suite.slice(1, 3); - deepEqual(actual, [1, 2]); - ok(suite !== actual); - }); - - test('works with `end` values exceeding length', function() { - var actual = suite.slice(1, 10); - deepEqual(actual, [1, 2, 3]); - ok(suite !== actual); - }); - - test('works with negative `start` and `end` arguments', function() { - var actual = suite.slice(-3, -1); - deepEqual(actual, [1, 2]); - ok(suite !== actual); - }); - - test('works with an extreme negative `end` value', function() { - var actual = suite.slice(1, -10); - deepEqual(actual, []); - equal('-1' in actual, false); - ok(suite !== actual); - }); - - test('supports slicing sparse arrays', function() { - var sparse = Benchmark.Suite(); - sparse[1] = 1; - sparse[3] = 3; - sparse.length = 4; - - var actual = sparse.slice(0, 2); - deepEqual(actual, [undefined, 1]); - equal('0' in actual, false); - - actual = sparse.slice(1); - deepEqual(actual, [1, undefined, 3]); - equal('1' in actual, false); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.Suite#splice'); - - (function() { - test('works with no arguments', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite.length = 1; - - var actual = suite.splice(); - deepEqual(actual, []); - deepEqual(slice.call(suite), [0]); - }); - - test('works with only the `start` argument', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite[1] = 1; - suite.length = 2; - - var actual = suite.splice(1); - deepEqual(actual, [1]); - deepEqual(slice.call(suite), [0]); - }); - - test('should have no elements when length is 0 after splice', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite.length = 1 - suite.splice(0, 1); - - // ensure element is removed - equal('0' in suite, false); - equal(suite.length, 0); - }); - - test('works with positive `start` argument', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite[1] = 3; - suite.length = 2; - - var actual = suite.splice(1, 0, 1, 2); - deepEqual(actual, []); - deepEqual(slice.call(suite), [0, 1, 2, 3]); - }); - - test('works with positive `start` and `deleteCount` arguments', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite[1] = 3; - suite.length = 2; - - var actual = suite.splice(1, 1, 1, 2); - deepEqual(actual, [3]); - deepEqual(slice.call(suite), [0, 1, 2]); - }); - - test('works with `deleteCount` values exceeding length', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite[1] = 3; - suite.length = 2; - - var actual = suite.splice(1, 10, 1, 2); - deepEqual(actual, [3]); - deepEqual(slice.call(suite), [0, 1, 2]); - }); - - test('works with negative `start` and `deleteCount` arguments', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite[1] = 3; - suite.length = 2; - - var actual = suite.splice(-1, -1, 1, 2); - deepEqual(actual, []); - deepEqual(slice.call(suite), [0, 1, 2, 3]); - }); - - test('works with an extreme negative `deleteCount` value', function() { - var suite = Benchmark.Suite(); - suite[0] = 0; - suite[1] = 3; - suite.length = 2; - - var actual = suite.splice(0, -10, 1, 2); - deepEqual(actual, []); - deepEqual(slice.call(suite), [1, 2, 0, 3]); - }); - - test('supports splicing sparse arrays', function() { - var suite = Benchmark.Suite(); - suite[1] = 1; - suite[3] = 3; - suite.length = 4; - - var actual = suite.splice(1, 2, 1, 2); - deepEqual(actual, [1, undefined]); - equal(actual.length, 2); - deepEqual(slice.call(suite), [undefined, 1, 2, 3]); - equal('0' in suite, false); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.Suite#unshift'); - - (function() { - test('adds a first element', function() { - var suite = Benchmark.Suite(); - suite[0] = 1; - suite.length = 1; - - var actual = suite.unshift(0); - equal(actual, 2); - deepEqual(slice.call(suite), [0, 1]); - }); - - test('adds multiple elements to the front', function() { - var suite = Benchmark.Suite(); - suite[0] = 3; - suite.length = 1; - - var actual = suite.unshift(0, 1, 2); - equal(actual, 4); - deepEqual(slice.call(suite), [0, 1, 2, 3]); - }); - - test('supports unshifting sparse arrays', function() { - var suite = Benchmark.Suite(); - suite[1] = 2; - suite.length = 2; - - var actual = suite.unshift(0); - equal(actual, 3); - deepEqual(slice.call(suite), [0, undefined, 2]); - equal('1' in suite, false); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.Suite filtered results onComplete'); - - (function() { - var count = 0, - suite = Benchmark.Suite(); - - suite.add('a', function() { - count++; - }) - .add('b', function() { - for (var i = 0; i < 1e6; i++) { - count++; - } - }) - .add('c', function() { - throw new TypeError; - }); - - asyncTest('should filter by fastest', function() { - suite.on('complete', function() { - suite.off(); - deepEqual(this.filter('fastest').pluck('name'), ['a']); - QUnit.start(); - }) - .run({ 'async': true }); - }); - - asyncTest('should filter by slowest', function() { - suite.on('complete', function() { - suite.off(); - deepEqual(this.filter('slowest').pluck('name'), ['b']); - QUnit.start(); - }) - .run({ 'async': true }); - }); - - asyncTest('should filter by successful', function() { - suite.on('complete', function() { - suite.off(); - deepEqual(this.filter('successful').pluck('name'), ['a', 'b']); - QUnit.start(); - }) - .run({ 'async': true }); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.Suite event flow'); - - (function() { - var events = [], - callback = function(event) { events.push(event); }; - - var suite = Benchmark.Suite('suite', { - 'onAdd': callback, - 'onAbort': callback, - 'onClone': callback, - 'onError': callback, - 'onStart': callback, - 'onCycle': callback, - 'onComplete': callback, - 'onReset': callback - }) - .add('bench', function() { - throw null; - }, { - 'onAbort': callback, - 'onClone': callback, - 'onError': callback, - 'onStart': callback, - 'onCycle': callback, - 'onComplete': callback, - 'onReset': callback - }) - .run({ 'async': false }); - - // first Suite#onAdd - test('should emit the suite "add" event first', function() { - var event = events[0]; - ok(event.type == 'add' && event.currentTarget.name == 'suite' && event.target.name == 'bench'); - }); - - // next we start the Suite because no reset was needed - test('should emit the suite "start" event', function() { - var event = events[1]; - ok(event.type == 'start' && event.currentTarget.name == 'suite' && event.target.name == 'bench'); - }); - - // and so start the first benchmark - test('should emit the benchmark "start" event', function() { - var event = events[2]; - ok(event.type == 'start' && event.currentTarget.name == 'bench'); - }); - - // oh no! we abort because of an error - test('should emit the benchmark "error" event', function() { - var event = events[3]; - ok(event.type == 'error' && event.currentTarget.name == 'bench'); - }); - - // benchmark error triggered - test('should emit the benchmark "abort" event', function() { - var event = events[4]; - ok(event.type == 'abort' && event.currentTarget.name == 'bench'); - }); - - // we reset the benchmark as part of the abort - test('should emit the benchmark "reset" event', function() { - var event = events[5]; - ok(event.type == 'reset' && event.currentTarget.name == 'bench'); - }); - - // benchmark is cycle is finished - test('should emit the benchmark "cycle" event', function() { - var event = events[6]; - ok(event.type == 'cycle' && event.currentTarget.name == 'bench'); - }); - - // benchmark is complete - test('should emit the benchmark "complete" event', function() { - var event = events[7]; - ok(event.type == 'complete' && event.currentTarget.name == 'bench'); - }); - - // the benchmark error triggers a Suite error - test('should emit the suite "error" event', function() { - var event = events[8]; - ok(event.type == 'error' && event.currentTarget.name == 'suite' && event.target.name == 'bench'); - }); - - // the Suite cycle finishes - test('should emit the suite "cycle" event', function() { - var event = events[9]; - ok(event.type == 'cycle' && event.currentTarget.name == 'suite' && event.target.name == 'bench'); - }); - - // the Suite completes - test('finally it should emit the suite "complete" event', function() { - var event = events[10]; - ok(event.type == 'complete' && event.currentTarget.name == 'suite' && event.target.name == 'bench'); - }); - - test('emitted all expected events', function() { - ok(events.length == 11); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Deferred benchmarks'); - - (function() { - asyncTest('should run a deferred benchmark correctly', function() { - Benchmark(function(deferred) { - setTimeout(function() { deferred.resolve(); }, 1e3); - }, { - 'defer': true, - 'onComplete': function() { - equal(this.hz.toFixed(0), 1); - QUnit.start(); - } - }) - .run(); - }); - - asyncTest('should run with string values for "fn", "setup", and "teardown"', function() { - Benchmark({ - 'defer': true, - 'setup': 'var x = [3, 2, 1];', - 'fn': 'setTimeout(function() { x.sort(); deferred.resolve(); }, 10);', - 'teardown': 'x.length = 0;', - 'onComplete': function() { - ok(true); - QUnit.start(); - } - }) - .run(); - }); - - asyncTest('should run recursively', function() { - Benchmark({ - 'defer': true, - 'setup': 'var x = [3, 2, 1];', - 'fn': 'for (var i = 0; i < 100; i++) x[ i % 2 ? "sort" : "reverse" ](); deferred.resolve();', - 'teardown': 'x.length = 0;', - 'onComplete': function() { - ok(true); - QUnit.start(); - } - }) - .run(); - }); - - asyncTest('should execute "setup", "fn", and "teardown" in correct order', function() { - var fired = []; - - Benchmark({ - 'defer': true, - 'setup': function() { - fired.push('setup'); - }, - 'fn': function(deferred) { - fired.push('fn'); - setTimeout(function() { deferred.resolve(); }, 10); - }, - 'teardown': function() { - fired.push('teardown'); - }, - 'onComplete': function() { - var actual = fired.join().replace(/(fn,)+/g, '$1').replace(/(setup,fn,teardown(?:,|$))+/, '$1'); - equal(actual, 'setup,fn,teardown'); - QUnit.start(); - } - }) - .run(); - }); - }()); - - /*--------------------------------------------------------------------------*/ - - QUnit.module('Benchmark.deepClone'); - - (function() { - asyncTest('avoids call stack limits', function() { - var result, - count = 0, - object = {}, - recurse = function() { count++; recurse(); }; - - setTimeout(function() { - ok(result, 'avoids call stack limits (stack limit is ' + (count - 1) + ')'); - QUnit.start(); - }, 15); - - if (toString.call(window.java) == '[object JavaPackage]') { - // Java throws uncatchable errors on call stack overflows, so to avoid - // them I chose a number higher than Rhino's call stack limit without - // dynamically testing for the actual limit - count = 3e3; - } else { - try { recurse(); } catch(e) { } - } - - // exceed limit - count++; - for (var i = 0, sub = object; i <= count; i++) { - sub = sub[i] = {}; - } - - try { - for (var i = 0, sub = Benchmark.deepClone(object); sub = sub[i]; i++) { } - result = --i == count; - } catch(e) { } - }); - }()); - - /*--------------------------------------------------------------------------*/ - - // explicitly call `QUnit.start()` for Narwhal, Rhino, and RingoJS - if (!window.document) { - QUnit.start(); - } -}(typeof global == 'object' && global || this)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/.npmignore deleted file mode 100644 index f05b1f26..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/.travis.yml deleted file mode 100644 index 8750e3bc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -node_js: -- "0.8" -- "0.10" -language: node_js \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/History.md deleted file mode 100644 index b898ca63..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/History.md +++ /dev/null @@ -1,52 +0,0 @@ - -1.1.2 / 2014-02-10 -================== - - * package: rename to "component-emitter" - * package: update "main" and "component" fields - * Add license to Readme (same format as the other components) - * created .npmignore - * travis stuff - -1.1.1 / 2013-12-01 -================== - - * fix .once adding .on to the listener - * docs: Emitter#off() - * component: add `.repo` prop - -1.1.0 / 2013-10-20 -================== - - * add `.addEventListener()` and `.removeEventListener()` aliases - -1.0.1 / 2013-06-27 -================== - - * add support for legacy ie - -1.0.0 / 2013-02-26 -================== - - * add `.off()` support for removing all listeners - -0.0.6 / 2012-10-08 -================== - - * add `this._callbacks` initialization to prevent funky gotcha - -0.0.5 / 2012-09-07 -================== - - * fix `Emitter.call(this)` usage - -0.0.3 / 2012-07-11 -================== - - * add `.listeners()` - * rename `.has()` to `.hasListeners()` - -0.0.2 / 2012-06-28 -================== - - * fix `.off()` with `.once()`-registered callbacks diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/Makefile deleted file mode 100644 index 4e9c8d36..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/Makefile +++ /dev/null @@ -1,7 +0,0 @@ - -test: - @./node_modules/.bin/mocha \ - --require should \ - --reporter spec - -.PHONY: test \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/Readme.md deleted file mode 100644 index 0f3f9b9f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/Readme.md +++ /dev/null @@ -1,74 +0,0 @@ -# Emitter [![Build Status](https://travis-ci.org/component/emitter.png)](https://travis-ci.org/component/emitter) - - Event emitter component. - -## Installation - -``` -$ component install component/emitter -``` - -## API - -### Emitter(obj) - - The `Emitter` may also be used as a mixin. For example - a "plain" object may become an emitter, or you may - extend an existing prototype. - - As an `Emitter` instance: - -```js -var Emitter = require('emitter'); -var emitter = new Emitter; -emitter.emit('something'); -``` - - As a mixin: - -```js -var Emitter = require('emitter'); -var user = { name: 'tobi' }; -Emitter(user); - -user.emit('im a user'); -``` - - As a prototype mixin: - -```js -var Emitter = require('emitter'); -Emitter(User.prototype); -``` - -### Emitter#on(event, fn) - - Register an `event` handler `fn`. - -### Emitter#once(event, fn) - - Register a single-shot `event` handler `fn`, - removed immediately after it is invoked the - first time. - -### Emitter#off(event, fn) - - * Pass `event` and `fn` to remove a listener. - * Pass `event` to remove all listeners on that event. - * Pass nothing to remove all listeners on all events. - -### Emitter#emit(event, ...) - - Emit an `event` with variable option args. - -### Emitter#listeners(event) - - Return an array of callbacks, or an empty array. - -### Emitter#hasListeners(event) - - Check if this emitter has `event` handlers. - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/bower.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/bower.json deleted file mode 100644 index c618d418..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/bower.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "emitter", - "description": "Event emitter", - "keywords": [ - "emitter", - "events" - ], - "version": "1.1.2", - "license": "MIT", - "main": "index.js", - "homepage": "https://github.com/component/emitter", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "Makefile", - "package.json", - "component.json" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/component.json deleted file mode 100644 index 68ba0b14..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/component.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "emitter", - "repo": "component/emitter", - "description": "Event emitter", - "keywords": [ - "emitter", - "events" - ], - "version": "1.1.2", - "scripts": [ - "index.js" - ], - "license": "MIT" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/index.js deleted file mode 100644 index ad711633..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/index.js +++ /dev/null @@ -1,164 +0,0 @@ - -/** - * Expose `Emitter`. - */ - -module.exports = Emitter; - -/** - * Initialize a new `Emitter`. - * - * @api public - */ - -function Emitter(obj) { - if (obj) return mixin(obj); -}; - -/** - * Mixin the emitter properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ - -function mixin(obj) { - for (var key in Emitter.prototype) { - obj[key] = Emitter.prototype[key]; - } - return obj; -} - -/** - * Listen on the given `event` with `fn`. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.on = -Emitter.prototype.addEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - (this._callbacks[event] = this._callbacks[event] || []) - .push(fn); - return this; -}; - -/** - * Adds an `event` listener that will be invoked a single - * time then automatically removed. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.once = function(event, fn){ - var self = this; - this._callbacks = this._callbacks || {}; - - function on() { - self.off(event, on); - fn.apply(this, arguments); - } - - on.fn = fn; - this.on(event, on); - return this; -}; - -/** - * Remove the given callback for `event` or all - * registered callbacks. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.off = -Emitter.prototype.removeListener = -Emitter.prototype.removeAllListeners = -Emitter.prototype.removeEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - - // all - if (0 == arguments.length) { - this._callbacks = {}; - return this; - } - - // specific event - var callbacks = this._callbacks[event]; - if (!callbacks) return this; - - // remove all handlers - if (1 == arguments.length) { - delete this._callbacks[event]; - return this; - } - - // remove specific handler - var cb; - for (var i = 0; i < callbacks.length; i++) { - cb = callbacks[i]; - if (cb === fn || cb.fn === fn) { - callbacks.splice(i, 1); - break; - } - } - return this; -}; - -/** - * Emit `event` with the given args. - * - * @param {String} event - * @param {Mixed} ... - * @return {Emitter} - */ - -Emitter.prototype.emit = function(event){ - this._callbacks = this._callbacks || {}; - var args = [].slice.call(arguments, 1) - , callbacks = this._callbacks[event]; - - if (callbacks) { - callbacks = callbacks.slice(0); - for (var i = 0, len = callbacks.length; i < len; ++i) { - callbacks[i].apply(this, args); - } - } - - return this; -}; - -/** - * Return array of callbacks for `event`. - * - * @param {String} event - * @return {Array} - * @api public - */ - -Emitter.prototype.listeners = function(event){ - this._callbacks = this._callbacks || {}; - return this._callbacks[event] || []; -}; - -/** - * Check if this emitter has `event` handlers. - * - * @param {String} event - * @return {Boolean} - * @api public - */ - -Emitter.prototype.hasListeners = function(event){ - return !! this.listeners(event).length; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/package.json deleted file mode 100644 index d72bce08..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "component-emitter", - "description": "Event emitter", - "version": "1.1.2", - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "component": { - "scripts": { - "emitter/index.js": "index.js" - } - }, - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/component/emitter.git" - }, - "scripts": { - "test": "make test" - }, - "bugs": { - "url": "https://github.com/component/emitter/issues" - }, - "homepage": "https://github.com/component/emitter", - "_id": "component-emitter@1.1.2", - "dist": { - "shasum": "296594f2753daa63996d2af08d15a95116c9aec3", - "tarball": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz" - }, - "_from": "component-emitter@1.1.2", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "directories": {}, - "_shasum": "296594f2753daa63996d2af08d15a95116c9aec3", - "_resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/Readme.md deleted file mode 100644 index c5a34e8b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/Readme.md +++ /dev/null @@ -1,115 +0,0 @@ -# debug - - tiny node.js debugging utility modelled after node core's debugging technique. - -## Installation - -``` -$ npm install debug -``` - -## Usage - - With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility. - -Example _app.js_: - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %s', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example _worker.js_: - -```js -var debug = require('debug')('worker'); - -setInterval(function(){ - debug('doing some work'); -}, 1000); -``` - - The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: - - ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) - - ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) - -## Millisecond diff - - When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) - - When stderr is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: - _(NOTE: Debug now uses stderr instead of stdout, so the correct shell command for this example is actually `DEBUG=* node example/worker 2> out &`)_ - - ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) - -## Conventions - - If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". - -## Wildcards - - The "*" character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect.compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - - You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=* -connect:*` would include all debuggers except those starting with "connect:". - -## Browser support - - Debug works in the browser as well, currently persisted by `localStorage`. For example if you have `worker:a` and `worker:b` as shown below, and wish to debug both type `debug.enable('worker:*')` in the console and refresh the page, this will remain until you disable with `debug.disable()`. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - a('doing some work'); -}, 1200); -``` - -## License - -(The MIT License) - -Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca> - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/debug.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/debug.js deleted file mode 100644 index 509dc0de..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/debug.js +++ /dev/null @@ -1,137 +0,0 @@ - -/** - * Expose `debug()` as the module. - */ - -module.exports = debug; - -/** - * Create a debugger with the given `name`. - * - * @param {String} name - * @return {Type} - * @api public - */ - -function debug(name) { - if (!debug.enabled(name)) return function(){}; - - return function(fmt){ - fmt = coerce(fmt); - - var curr = new Date; - var ms = curr - (debug[name] || curr); - debug[name] = curr; - - fmt = name - + ' ' - + fmt - + ' +' + debug.humanize(ms); - - // This hackery is required for IE8 - // where `console.log` doesn't have 'apply' - window.console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); - } -} - -/** - * The currently active debug mode names. - */ - -debug.names = []; -debug.skips = []; - -/** - * Enables a debug mode by name. This can include modes - * separated by a colon and wildcards. - * - * @param {String} name - * @api public - */ - -debug.enable = function(name) { - try { - localStorage.debug = name; - } catch(e){} - - var split = (name || '').split(/[\s,]+/) - , len = split.length; - - for (var i = 0; i < len; i++) { - name = split[i].replace('*', '.*?'); - if (name[0] === '-') { - debug.skips.push(new RegExp('^' + name.substr(1) + '$')); - } - else { - debug.names.push(new RegExp('^' + name + '$')); - } - } -}; - -/** - * Disable debug output. - * - * @api public - */ - -debug.disable = function(){ - debug.enable(''); -}; - -/** - * Humanize the given `ms`. - * - * @param {Number} m - * @return {String} - * @api private - */ - -debug.humanize = function(ms) { - var sec = 1000 - , min = 60 * 1000 - , hour = 60 * min; - - if (ms >= hour) return (ms / hour).toFixed(1) + 'h'; - if (ms >= min) return (ms / min).toFixed(1) + 'm'; - if (ms >= sec) return (ms / sec | 0) + 's'; - return ms + 'ms'; -}; - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -debug.enabled = function(name) { - for (var i = 0, len = debug.skips.length; i < len; i++) { - if (debug.skips[i].test(name)) { - return false; - } - } - for (var i = 0, len = debug.names.length; i < len; i++) { - if (debug.names[i].test(name)) { - return true; - } - } - return false; -}; - -/** - * Coerce `val`. - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} - -// persist - -try { - if (window.localStorage) debug.enable(localStorage.debug); -} catch(e){} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/index.js deleted file mode 100644 index e02c13b7..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/index.js +++ /dev/null @@ -1,5 +0,0 @@ -if ('undefined' == typeof window) { - module.exports = require('./lib/debug'); -} else { - module.exports = require('./debug'); -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/lib/debug.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/lib/debug.js deleted file mode 100644 index 3b0a9183..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/lib/debug.js +++ /dev/null @@ -1,147 +0,0 @@ -/** - * Module dependencies. - */ - -var tty = require('tty'); - -/** - * Expose `debug()` as the module. - */ - -module.exports = debug; - -/** - * Enabled debuggers. - */ - -var names = [] - , skips = []; - -(process.env.DEBUG || '') - .split(/[\s,]+/) - .forEach(function(name){ - name = name.replace('*', '.*?'); - if (name[0] === '-') { - skips.push(new RegExp('^' + name.substr(1) + '$')); - } else { - names.push(new RegExp('^' + name + '$')); - } - }); - -/** - * Colors. - */ - -var colors = [6, 2, 3, 4, 5, 1]; - -/** - * Previous debug() call. - */ - -var prev = {}; - -/** - * Previously assigned color. - */ - -var prevColor = 0; - -/** - * Is stdout a TTY? Colored output is disabled when `true`. - */ - -var isatty = tty.isatty(2); - -/** - * Select a color. - * - * @return {Number} - * @api private - */ - -function color() { - return colors[prevColor++ % colors.length]; -} - -/** - * Humanize the given `ms`. - * - * @param {Number} m - * @return {String} - * @api private - */ - -function humanize(ms) { - var sec = 1000 - , min = 60 * 1000 - , hour = 60 * min; - - if (ms >= hour) return (ms / hour).toFixed(1) + 'h'; - if (ms >= min) return (ms / min).toFixed(1) + 'm'; - if (ms >= sec) return (ms / sec | 0) + 's'; - return ms + 'ms'; -} - -/** - * Create a debugger with the given `name`. - * - * @param {String} name - * @return {Type} - * @api public - */ - -function debug(name) { - function disabled(){} - disabled.enabled = false; - - var match = skips.some(function(re){ - return re.test(name); - }); - - if (match) return disabled; - - match = names.some(function(re){ - return re.test(name); - }); - - if (!match) return disabled; - var c = color(); - - function colored(fmt) { - fmt = coerce(fmt); - - var curr = new Date; - var ms = curr - (prev[name] || curr); - prev[name] = curr; - - fmt = ' \u001b[9' + c + 'm' + name + ' ' - + '\u001b[3' + c + 'm\u001b[90m' - + fmt + '\u001b[3' + c + 'm' - + ' +' + humanize(ms) + '\u001b[0m'; - - console.error.apply(this, arguments); - } - - function plain(fmt) { - fmt = coerce(fmt); - - fmt = new Date().toUTCString() - + ' ' + name + ' ' + fmt; - console.error.apply(this, arguments); - } - - colored.enabled = plain.enabled = true; - - return isatty || process.env.DEBUG_COLORS - ? colored - : plain; -} - -/** - * Coerce `val`. - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/package.json deleted file mode 100644 index 69fc942a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "debug", - "version": "0.7.4", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" - ], - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "dependencies": {}, - "devDependencies": { - "mocha": "*" - }, - "main": "lib/debug.js", - "browser": "./debug.js", - "engines": { - "node": "*" - }, - "files": [ - "lib/debug.js", - "debug.js", - "index.js" - ], - "component": { - "scripts": { - "debug/index.js": "index.js", - "debug/debug.js": "debug.js" - } - }, - "bugs": { - "url": "https://github.com/visionmedia/debug/issues" - }, - "homepage": "https://github.com/visionmedia/debug", - "_id": "debug@0.7.4", - "dist": { - "shasum": "06e1ea8082c2cb14e39806e22e2f6f757f92af39", - "tarball": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" - }, - "_from": "debug@0.7.4", - "_npmVersion": "1.3.13", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], - "directories": {}, - "_shasum": "06e1ea8082c2cb14e39806e22e2f6f757f92af39", - "_resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/README.md deleted file mode 100644 index 052a62b8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/README.md +++ /dev/null @@ -1,54 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/build/build.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/build/build.js deleted file mode 100644 index ec58596a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/build/build.js +++ /dev/null @@ -1,209 +0,0 @@ - -/** - * Require the given path. - * - * @param {String} path - * @return {Object} exports - * @api public - */ - -function require(path, parent, orig) { - var resolved = require.resolve(path); - - // lookup failed - if (null == resolved) { - orig = orig || path; - parent = parent || 'root'; - var err = new Error('Failed to require "' + orig + '" from "' + parent + '"'); - err.path = orig; - err.parent = parent; - err.require = true; - throw err; - } - - var module = require.modules[resolved]; - - // perform real require() - // by invoking the module's - // registered function - if (!module.exports) { - module.exports = {}; - module.client = module.component = true; - module.call(this, module.exports, require.relative(resolved), module); - } - - return module.exports; -} - -/** - * Registered modules. - */ - -require.modules = {}; - -/** - * Registered aliases. - */ - -require.aliases = {}; - -/** - * Resolve `path`. - * - * Lookup: - * - * - PATH/index.js - * - PATH.js - * - PATH - * - * @param {String} path - * @return {String} path or null - * @api private - */ - -require.resolve = function(path) { - if (path.charAt(0) === '/') path = path.slice(1); - var index = path + '/index.js'; - - var paths = [ - path, - path + '.js', - path + '.json', - path + '/index.js', - path + '/index.json' - ]; - - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - if (require.modules.hasOwnProperty(path)) return path; - } - - if (require.aliases.hasOwnProperty(index)) { - return require.aliases[index]; - } -}; - -/** - * Normalize `path` relative to the current path. - * - * @param {String} curr - * @param {String} path - * @return {String} - * @api private - */ - -require.normalize = function(curr, path) { - var segs = []; - - if ('.' != path.charAt(0)) return path; - - curr = curr.split('/'); - path = path.split('/'); - - for (var i = 0; i < path.length; ++i) { - if ('..' == path[i]) { - curr.pop(); - } else if ('.' != path[i] && '' != path[i]) { - segs.push(path[i]); - } - } - - return curr.concat(segs).join('/'); -}; - -/** - * Register module at `path` with callback `definition`. - * - * @param {String} path - * @param {Function} definition - * @api private - */ - -require.register = function(path, definition) { - require.modules[path] = definition; -}; - -/** - * Alias a module definition. - * - * @param {String} from - * @param {String} to - * @api private - */ - -require.alias = function(from, to) { - if (!require.modules.hasOwnProperty(from)) { - throw new Error('Failed to alias "' + from + '", it does not exist'); - } - require.aliases[to] = from; -}; - -/** - * Return a require function relative to the `parent` path. - * - * @param {String} parent - * @return {Function} - * @api private - */ - -require.relative = function(parent) { - var p = require.normalize(parent, '..'); - - /** - * lastIndexOf helper. - */ - - function lastIndexOf(arr, obj) { - var i = arr.length; - while (i--) { - if (arr[i] === obj) return i; - } - return -1; - } - - /** - * The relative require() itself. - */ - - function localRequire(path) { - var resolved = localRequire.resolve(path); - return require(resolved, parent, path); - } - - /** - * Resolve relative to the parent. - */ - - localRequire.resolve = function(path) { - var c = path.charAt(0); - if ('/' == c) return path.slice(1); - if ('.' == c) return require.normalize(p, path); - - // resolve deps by returning - // the dep in the nearest "deps" - // directory - var segs = parent.split('/'); - var i = lastIndexOf(segs, 'deps') + 1; - if (!i) i = 0; - path = segs.slice(0, i + 1).join('/') + '/deps/' + path; - return path; - }; - - /** - * Check if module is defined at `path`. - */ - - localRequire.exists = function(path) { - return require.modules.hasOwnProperty(localRequire.resolve(path)); - }; - - return localRequire; -}; -require.register("isarray/index.js", function(exports, require, module){ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; - -}); -require.alias("isarray/index.js", "isarray/index.js"); - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/component.json deleted file mode 100644 index 9e31b683..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/index.js deleted file mode 100644 index 5f5ad45d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/index.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/package.json deleted file mode 100644 index 060e073f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "isarray", - "description": "Array#isArray for older browsers", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "homepage": "https://github.com/juliangruber/isarray", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": {}, - "devDependencies": { - "tap": "*" - }, - "keywords": [ - "browser", - "isarray", - "array" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "_id": "isarray@0.0.1", - "dist": { - "shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "tarball": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "_from": "isarray@0.0.1", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "directories": {}, - "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" - }, - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.gitmodules b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.gitmodules deleted file mode 100644 index dc5a1740..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.gitmodules +++ /dev/null @@ -1,6 +0,0 @@ -[submodule "vendor/spec"] - path = vendor/spec - url = git://github.com/kitcambridge/spec.git -[submodule "vendor/marked"] - path = vendor/marked - url = git://github.com/chjj/marked.git diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.jamignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.jamignore deleted file mode 100644 index ab53ee0a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.jamignore +++ /dev/null @@ -1,10 +0,0 @@ -.* -build.js -index.html -component.json -bower.json -index.js -benchmark -page -test -vendor diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.npmignore deleted file mode 100644 index 6b67b559..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.npmignore +++ /dev/null @@ -1,11 +0,0 @@ -bower.json -component.json -build.js -index.html -index.js -.jshintrc - -benchmark -page -test -vendor diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.travis.yml deleted file mode 100644 index d8e3ae78..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -language: node_js -node_js: - - "0.6" - - "0.8" - - "0.10" -env: - matrix: - - BIN="node" - - BIN="phantomjs" -matrix: - include: - - node_js: "0.10" - env: BIN="narwhal" - - node_js: "0.10" - env: BIN="rhino" - - node_js: "0.10" - env: BIN="ringo" -git: - depth: 10 -branches: - only: - - gh-pages -before_install: - - "[ $BIN == 'istanbul' ] && npm i -g istanbul@\"~0.1.0\" || true" - - "[ $BIN == 'narwhal' ] && wget https://github.com/280north/narwhal/archive/v0.3.2.zip && sudo unzip v0.3.2 -d /opt/ && rm v0.3.2.zip || true" - - "[ $BIN == 'narwhal' ] && sudo ln -s /opt/narwhal-0.3.2/bin/narwhal /usr/local/bin/narwhal && sudo chmod +x /usr/local/bin/narwhal || true" - - "[ $BIN == 'rhino' ] && sudo mkdir /opt/rhino-1.7R5 && sudo wget -O /opt/rhino-1.7R5/js.jar https://oss.sonatype.org/content/repositories/snapshots/org/mozilla/rhino/1.7R5-SNAPSHOT/rhino-1.7R5-20120629.144839-4.jar || true" - - "[ $BIN == 'rhino' ] && echo -e '#!/bin/sh\\njava -jar /opt/rhino-1.7R5/js.jar $@' | sudo tee /usr/local/bin/rhino && sudo chmod +x /usr/local/bin/rhino || true" - - "[ $BIN == 'ringo' ] && wget http://ringojs.org/downloads/ringojs-0.9.zip && sudo unzip ringojs-0.9 -d /opt && rm ringojs-0.9.zip || true" - - "[ $BIN == 'ringo' ] && sudo ln -s /opt/ringojs-0.9/bin/ringo /usr/local/bin/ringo && sudo chmod +x /usr/local/bin/ringo || true" -install: true -script: - - "[ $BIN == 'istanbul' ] && $BIN cover ./test/test_json3.js || cd test && $BIN ./test_json3.js" diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/LICENSE deleted file mode 100644 index 6d42c549..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2012-2013 Kit Cambridge. -http://kitcambridge.be/ - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/README.md deleted file mode 100644 index bcb807a9..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/README.md +++ /dev/null @@ -1,126 +0,0 @@ -# JSON 3 # - -![JSON 3 Logo](http://bestiejs.github.io/json3/page/logo.png) - -**JSON 3** is a modern JSON implementation compatible with a variety of JavaScript platforms, including Internet Explorer 6, Opera 7, Safari 2, and Netscape 6. The current version is **3.2.6**. - -- [Development Version](https://raw.github.com/bestiejs/json3/v3.2.6/lib/json3.js) *(40 KB; uncompressed with comments)* -- [Production Version](https://raw.github.com/bestiejs/json3/v3.2.6/lib/json3.min.js) *(3.3 KB; compressed and `gzip`-ped)* - -CDN copies are also available at [cdnjs](http://cdnjs.com/libraries/json3/) & [jsDelivr](http://www.jsdelivr.com/#!json3). - -[JSON](http://json.org/) is a language-independent data interchange format based on a loose subset of the JavaScript grammar. Originally popularized by [Douglas Crockford](http://www.crockford.com/), the format was standardized in the [fifth edition](http://es5.github.com/) of the ECMAScript specification. The 5.1 edition, ratified in June 2011, incorporates several modifications to the grammar pertaining to the serialization of dates. - -JSON 3 exposes two functions: `stringify()` for [serializing](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/stringify) a JavaScript value to JSON, and `parse()` for [producing](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/parse) a JavaScript value from a JSON source string. It is a **drop-in replacement** for [JSON 2](http://json.org/js). The functions behave exactly as described in the ECMAScript spec, **except** for the date serialization discrepancy noted below. - -The JSON 3 parser does **not** use `eval` or regular expressions. This provides security and performance benefits in obsolete and mobile environments, where the margin is particularly significant. The complete [benchmark suite](http://jsperf.com/json3) is available on [jsPerf](http://jsperf.com/). - -The project is [hosted on GitHub](http://git.io/json3), along with the [unit tests](http://bestiejs.github.io/json3/test/test_browser.html). It is part of the [BestieJS](https://github.com/bestiejs) family, a collection of best-in-class JavaScript libraries that promote cross-platform support, specification precedents, unit testing, and plenty of documentation. - -# Changes from JSON 2 # - -JSON 3... - -* Correctly serializes primitive wrapper objects. -* Throws a `TypeError` when serializing cyclic structures (JSON 2 recurses until the call stack overflows). -* Utilizes **feature tests** to detect broken or incomplete *native* JSON implementations (JSON 2 only checks for the presence of the native functions). The tests are only executed once at runtime, so there is no additional performance cost when parsing or serializing values. - -**As of v3.2.3**, JSON 3 is compatible with [Prototype](http://prototypejs.org) 1.6.1 and older. - -In contrast to JSON 2, JSON 3 **does not**... - -* Add `toJSON()` methods to the `Boolean`, `Number`, and `String` prototypes. These are not part of any standard, and are made redundant by the design of the `stringify()` implementation. -* Add `toJSON()` or `toISOString()` methods to `Date.prototype`. See the note about date serialization below. - -## Date Serialization - -**JSON 3 deviates from the specification in one important way**: it does not define `Date#toISOString()` or `Date#toJSON()`. This preserves CommonJS compatibility and avoids polluting native prototypes. Instead, date serialization is performed internally by the `stringify()` implementation: if a date object does not define a custom `toJSON()` method, it is serialized as a [simplified ISO 8601 date-time string](http://es5.github.com/#x15.9.1.15). - -**Several native `Date#toJSON()` implementations produce date time strings that do *not* conform to the grammar outlined in the spec**. For instance, all versions of Safari 4, as well as JSON 2, fail to serialize extended years correctly. Furthermore, JSON 2 and older implementations omit the milliseconds from the date-time string (optional in ES 5, but required in 5.1). Finally, in all versions of Safari 4 and 5, serializing an invalid date will produce the string `"Invalid Date"`, rather than `null`. Because these environments exhibit other serialization bugs, however, JSON 3 will override the native `stringify()` implementation. - -Portions of the date serialization code are adapted from the [`date-shim`](https://github.com/Yaffle/date-shim) project. - -# Usage # - -## Web Browsers - - - - -## CommonJS Environments - - var JSON3 = require("./path/to/json3"); - JSON3.parse("[1, 2, 3]"); - // => [1, 2, 3] - -## JavaScript Engines - - load("path/to/json3.js"); - JSON.stringify({"Hello": 123, "Good-bye": 456}, ["Hello"], "\t"); - // => '{\n\t"Hello": 123\n}' - -# Compatibility # - -JSON 3 has been **tested** with the following web browsers, CommonJS environments, and JavaScript engines. - -## Web Browsers - -- Windows [Internet Explorer](http://www.microsoft.com/windows/internet-explorer), version 6.0 and higher -- Mozilla [Firefox](http://www.mozilla.com/firefox), version 1.0 and higher -- Apple [Safari](http://www.apple.com/safari), version 2.0 and higher -- [Opera](http://www.opera.com) 7.02 and higher -- [Mozilla](http://sillydog.org/narchive/gecko.php) 1.0, [Netscape](http://sillydog.org/narchive/) 6.2.3, and [SeaMonkey](http://www.seamonkey-project.org/) 1.0 and higher - -## CommonJS Environments - -- [Node](http://nodejs.org/) 0.2.6 and higher -- [RingoJS](http://ringojs.org/) 0.4 and higher -- [Narwhal](http://narwhaljs.org/) 0.3.2 and higher - -## JavaScript Engines - -- Mozilla [Rhino](http://www.mozilla.org/rhino) 1.5R5 and higher -- WebKit [JSC](https://trac.webkit.org/wiki/JSC) -- Google [V8](http://code.google.com/p/v8) - -## Known Incompatibilities - -* Attempting to serialize the `arguments` object may produce inconsistent results across environments due to specification version differences. As a workaround, please convert the `arguments` object to an array first: `JSON.stringify([].slice.call(arguments, 0))`. - -## Required Native Methods - -JSON 3 assumes that the following methods exist and function as described in the ECMAScript specification: - -- The `Number`, `String`, `Array`, `Object`, `Date`, `SyntaxError`, and `TypeError` constructors. -- `String.fromCharCode` -- `Object#toString` -- `Function#call` -- `Math.floor` -- `Number#toString` -- `Date#valueOf` -- `String.prototype`: `indexOf`, `charCodeAt`, `charAt`, `slice`. -- `Array.prototype`: `push`, `pop`, `join`. - -# Contribute # - -Check out a working copy of the JSON 3 source code with [Git](http://git-scm.com/): - - $ git clone git://github.com/bestiejs/json3.git - $ cd json3 - $ git submodule update --init - -If you'd like to contribute a feature or bug fix, you can [fork](http://help.github.com/fork-a-repo/) JSON 3, commit your changes, and [send a pull request](http://help.github.com/send-pull-requests/). Please make sure to update the unit tests in the `test` directory as well. - -Alternatively, you can use the [GitHub issue tracker](https://github.com/bestiejs/json3/issues) to submit bug reports, feature requests, and questions, or send tweets to [@kitcambridge](http://twitter.com/kitcambridge). - -JSON 3 is released under the [MIT License](http://kit.mit-license.org/). \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/coverage.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/coverage.json deleted file mode 100644 index 07b9920b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/coverage.json +++ /dev/null @@ -1 +0,0 @@ -{"/Users/kit/Dropbox/Projects/json3/vendor/spec/lib/spec.js":{"path":"/Users/kit/Dropbox/Projects/json3/vendor/spec/lib/spec.js","s":{"1":1,"2":1,"3":0,"4":1,"5":1,"6":0,"7":0,"8":0,"9":0,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":5538,"18":0,"19":5538,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":1,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":1,"71":26,"72":26,"73":0,"74":26,"75":26,"76":30,"77":0,"78":26,"79":0,"80":1,"81":1,"82":102,"83":102,"84":72,"85":30,"86":0,"87":30,"88":30,"89":0,"90":30,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":30,"98":0,"99":30,"100":22,"101":0,"102":30,"103":30,"104":30,"105":17,"106":17,"107":17,"108":17,"109":36,"110":0,"111":13,"112":13,"113":13,"114":15,"115":15,"116":13,"117":13,"118":15,"119":0,"120":13,"121":30,"122":30,"123":1,"124":51,"125":51,"126":0,"127":51,"128":1,"129":49,"130":49,"131":0,"132":49,"133":114,"134":0,"135":49,"136":1,"137":1,"138":1,"139":1,"140":0,"141":0,"142":0,"143":0,"144":1,"145":0,"146":0,"147":0,"148":0,"149":0,"150":1,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":1,"159":1,"160":11,"161":1,"162":1,"163":0,"164":0,"165":1,"166":1,"167":14,"168":1,"169":1,"170":34,"171":34,"172":34,"173":34,"174":34,"175":34,"176":34,"177":34,"178":1,"179":1,"180":11,"181":0,"182":11,"183":11,"184":11,"185":11,"186":11,"187":11,"188":11,"189":11,"190":22,"191":11,"192":11,"193":1,"194":1,"195":594,"196":594,"197":13,"198":594,"199":594,"200":298,"201":594,"202":594,"203":0,"204":0,"205":0,"206":0,"207":0,"208":594,"209":594,"210":594,"211":890,"212":890,"213":0,"214":594,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":8,"227":1,"228":1,"229":1,"230":11,"231":11,"232":11,"233":11,"234":1,"235":1,"236":1,"237":11,"238":11,"239":1,"240":1,"241":12,"242":12,"243":12,"244":0,"245":12,"246":11,"247":11,"248":11,"249":1,"250":1,"251":1,"252":296,"253":296,"254":296,"255":274,"256":274,"257":0,"258":0,"259":11,"260":11,"261":10,"262":10,"263":1,"264":1,"265":1,"266":1,"267":1,"268":1,"269":1,"270":1,"271":1,"272":0,"273":1,"274":1,"275":1,"276":11,"277":11,"278":0,"279":0,"280":11,"281":11,"282":11,"283":11,"284":1,"285":1,"286":1,"287":1,"288":1,"289":296,"290":296,"291":11,"292":11,"293":274,"294":274,"295":0,"296":0,"297":11,"298":11,"299":0,"300":1,"301":1,"302":1,"303":117,"304":6,"305":1,"306":1,"307":11,"308":11,"309":11,"310":1,"311":1,"312":274,"313":157,"314":274,"315":274,"316":1,"317":1,"318":0,"319":1,"320":1,"321":15,"322":1,"323":1,"324":0,"325":1,"326":1,"327":51,"328":1,"329":1,"330":0,"331":1,"332":1,"333":1,"334":0,"335":1,"336":1,"337":156,"338":156,"339":0,"340":0,"341":156,"342":156,"343":156,"344":156,"345":1,"346":1,"347":0,"348":0,"349":0,"350":0,"351":0,"352":1,"353":1,"354":11,"355":1},"b":{"1":[0,1],"2":[1,0],"3":[1,1,0],"4":[1,1,1],"5":[1,0,0,0],"6":[1,0],"7":[0,5538],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[1,0],"15":[0,1],"16":[0,0],"17":[0,0],"18":[0,0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,1],"23":[0,0],"24":[0,0],"25":[0,0,0,0,0],"26":[0,0],"27":[0,26],"28":[0,30],"29":[30,30,30,30],"30":[30,0],"31":[0,26],"32":[26,26],"33":[72,30],"34":[72,15],"35":[0,30],"36":[0,30],"37":[0,0,0,0,0],"38":[0,0],"39":[0,0],"40":[0,0,0,0,0],"41":[0,30],"42":[30,30],"43":[0,22],"44":[17,13],"45":[17,0],"46":[0,36],"47":[36,36],"48":[15,15],"49":[13,0],"50":[0,15],"51":[0,51],"52":[0,49],"53":[0,114],"54":[1,0],"55":[0,0],"56":[0,0],"57":[1,0],"58":[1,1],"59":[34,0],"60":[34,34],"61":[34,11],"62":[11,23],"63":[11,23],"64":[0,11],"65":[11,0],"66":[11,11],"67":[11,0],"68":[11,0],"69":[11,11],"70":[33,33],"71":[11,11],"72":[22,22,11,11,11],"73":[13,581],"74":[594,581],"75":[594,594],"76":[298,296],"77":[594,594,594],"78":[0,594],"79":[594,0],"80":[0,0],"81":[0,0],"82":[0,0,0],"83":[594,0],"84":[594,594],"85":[1484,1484],"86":[890,890,298],"87":[1,0],"88":[12,1],"89":[0,12],"90":[11,11],"91":[11,0],"92":[11,11,11],"93":[274,0,11],"94":[10,1],"95":[1,0],"96":[0,11],"97":[11,11],"98":[11,0],"99":[11,274,0,11],"100":[0,11],"101":[11,0,11],"102":[0,117],"103":[157,117],"104":[0,157],"105":[274,0],"106":[0,0],"107":[0,156],"108":[156,0],"109":[156,156,156],"110":[0,156],"111":[0,0]},"f":{"1":1,"2":0,"3":0,"4":1,"5":1,"6":5538,"7":0,"8":0,"9":1,"10":1,"11":0,"12":0,"13":26,"14":1,"15":102,"16":15,"17":15,"18":51,"19":49,"20":1,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":11,"29":0,"30":0,"31":14,"32":34,"33":34,"34":11,"35":11,"36":594,"37":1,"38":1,"39":1,"40":11,"41":12,"42":296,"43":1,"44":11,"45":296,"46":6,"47":117,"48":11,"49":274,"50":0,"51":15,"52":0,"53":51,"54":0,"55":0,"56":156,"57":0,"58":11},"fnMap":{"1":{"name":"(anonymous_1)","line":11,"loc":{"start":{"line":11,"column":2},"end":{"line":11,"column":24}}},"2":{"name":"(anonymous_2)","line":20,"loc":{"start":{"line":20,"column":21},"end":{"line":20,"column":41}}},"3":{"name":"noConflict","line":21,"loc":{"start":{"line":21,"column":8},"end":{"line":21,"column":30}}},"4":{"name":"(anonymous_4)","line":31,"loc":{"start":{"line":31,"column":9},"end":{"line":31,"column":28}}},"5":{"name":"(anonymous_5)","line":70,"loc":{"start":{"line":70,"column":29},"end":{"line":70,"column":41}}},"6":{"name":"hasKey","line":78,"loc":{"start":{"line":78,"column":15},"end":{"line":78,"column":49}}},"7":{"name":"hasKey","line":86,"loc":{"start":{"line":86,"column":15},"end":{"line":86,"column":49}}},"8":{"name":"hasKey","line":102,"loc":{"start":{"line":102,"column":15},"end":{"line":102,"column":49}}},"9":{"name":"(anonymous_9)","line":117,"loc":{"start":{"line":117,"column":29},"end":{"line":117,"column":41}}},"10":{"name":"Properties","line":123,"loc":{"start":{"line":123,"column":4},"end":{"line":123,"column":26}}},"11":{"name":"forOwn","line":145,"loc":{"start":{"line":145,"column":15},"end":{"line":145,"column":58}}},"12":{"name":"forOwn","line":169,"loc":{"start":{"line":169,"column":15},"end":{"line":169,"column":58}}},"13":{"name":"forOwn","line":188,"loc":{"start":{"line":188,"column":15},"end":{"line":188,"column":58}}},"14":{"name":"(anonymous_14)","line":210,"loc":{"start":{"line":210,"column":29},"end":{"line":210,"column":41}}},"15":{"name":"eq","line":213,"loc":{"start":{"line":213,"column":4},"end":{"line":213,"column":36}}},"16":{"name":"(anonymous_16)","line":289,"loc":{"start":{"line":289,"column":21},"end":{"line":289,"column":43}}},"17":{"name":"(anonymous_17)","line":297,"loc":{"start":{"line":297,"column":24},"end":{"line":297,"column":36}}},"18":{"name":"equals","line":311,"loc":{"start":{"line":311,"column":4},"end":{"line":311,"column":22}}},"19":{"name":"forEach","line":328,"loc":{"start":{"line":328,"column":30},"end":{"line":328,"column":72}}},"20":{"name":"(anonymous_20)","line":343,"loc":{"start":{"line":343,"column":27},"end":{"line":343,"column":38}}},"21":{"name":"defer","line":347,"loc":{"start":{"line":347,"column":14},"end":{"line":347,"column":48}}},"22":{"name":"run","line":354,"loc":{"start":{"line":354,"column":8},"end":{"line":354,"column":23}}},"23":{"name":"defer","line":361,"loc":{"start":{"line":361,"column":14},"end":{"line":361,"column":48}}},"24":{"name":"run","line":362,"loc":{"start":{"line":362,"column":8},"end":{"line":362,"column":23}}},"25":{"name":"defer","line":370,"loc":{"start":{"line":370,"column":14},"end":{"line":370,"column":48}}},"26":{"name":"run","line":372,"loc":{"start":{"line":372,"column":8},"end":{"line":372,"column":23}}},"27":{"name":"(anonymous_27)","line":387,"loc":{"start":{"line":387,"column":14},"end":{"line":387,"column":25}}},"28":{"name":"defer","line":395,"loc":{"start":{"line":395,"column":14},"end":{"line":395,"column":48}}},"29":{"name":"rethrow","line":404,"loc":{"start":{"line":404,"column":2},"end":{"line":404,"column":30}}},"30":{"name":"(anonymous_30)","line":405,"loc":{"start":{"line":405,"column":10},"end":{"line":405,"column":22}}},"31":{"name":"Events","line":418,"loc":{"start":{"line":418,"column":2},"end":{"line":418,"column":20}}},"32":{"name":"addListener","line":429,"loc":{"start":{"line":429,"column":2},"end":{"line":429,"column":49}}},"33":{"name":"(anonymous_33)","line":431,"loc":{"start":{"line":431,"column":32},"end":{"line":431,"column":49}}},"34":{"name":"removeListener","line":454,"loc":{"start":{"line":454,"column":2},"end":{"line":454,"column":52}}},"35":{"name":"(anonymous_35)","line":459,"loc":{"start":{"line":459,"column":32},"end":{"line":459,"column":49}}},"36":{"name":"emit","line":483,"loc":{"start":{"line":483,"column":2},"end":{"line":483,"column":23}}},"37":{"name":"Suite","line":531,"loc":{"start":{"line":531,"column":2},"end":{"line":531,"column":23}}},"38":{"name":"(anonymous_38)","line":547,"loc":{"start":{"line":547,"column":3},"end":{"line":547,"column":33}}},"39":{"name":"shuffle","line":555,"loc":{"start":{"line":555,"column":2},"end":{"line":555,"column":21}}},"40":{"name":"addTest","line":567,"loc":{"start":{"line":567,"column":2},"end":{"line":567,"column":31}}},"41":{"name":"index","line":575,"loc":{"start":{"line":575,"column":2},"end":{"line":575,"column":27}}},"42":{"name":"onSuiteEvent","line":594,"loc":{"start":{"line":594,"column":2},"end":{"line":594,"column":31}}},"43":{"name":"runSuite","line":622,"loc":{"start":{"line":622,"column":2},"end":{"line":622,"column":22}}},"44":{"name":"Test","line":645,"loc":{"start":{"line":645,"column":2},"end":{"line":645,"column":28}}},"45":{"name":"onTestEvent","line":668,"loc":{"start":{"line":668,"column":2},"end":{"line":668,"column":30}}},"46":{"name":"assert","line":697,"loc":{"start":{"line":697,"column":2},"end":{"line":697,"column":34}}},"47":{"name":"assertion","line":698,"loc":{"start":{"line":698,"column":4},"end":{"line":698,"column":50}}},"48":{"name":"runTest","line":710,"loc":{"start":{"line":710,"column":2},"end":{"line":710,"column":21}}},"49":{"name":"ok","line":720,"loc":{"start":{"line":720,"column":2},"end":{"line":720,"column":33}}},"50":{"name":"notOk","line":735,"loc":{"start":{"line":735,"column":2},"end":{"line":735,"column":38}}},"51":{"name":"assertEqual","line":742,"loc":{"start":{"line":742,"column":2},"end":{"line":742,"column":41}}},"52":{"name":"assertNotEqual","line":748,"loc":{"start":{"line":748,"column":2},"end":{"line":748,"column":44}}},"53":{"name":"assertStrictEqual","line":754,"loc":{"start":{"line":754,"column":2},"end":{"line":754,"column":47}}},"54":{"name":"assertStrictNotEqual","line":760,"loc":{"start":{"line":760,"column":2},"end":{"line":760,"column":50}}},"55":{"name":"assertNotDeepEqual","line":770,"loc":{"start":{"line":770,"column":2},"end":{"line":770,"column":48}}},"56":{"name":"assertError","line":776,"loc":{"start":{"line":776,"column":2},"end":{"line":776,"column":52}}},"57":{"name":"assertNoError","line":793,"loc":{"start":{"line":793,"column":2},"end":{"line":793,"column":44}}},"58":{"name":"done","line":806,"loc":{"start":{"line":806,"column":2},"end":{"line":806,"column":28}}}},"statementMap":{"1":{"start":{"line":11,"column":1},"end":{"line":813,"column":3}},"2":{"start":{"line":12,"column":2},"end":{"line":30,"column":3}},"3":{"start":{"line":14,"column":4},"end":{"line":14,"column":38}},"4":{"start":{"line":17,"column":4},"end":{"line":29,"column":8}},"5":{"start":{"line":21,"column":8},"end":{"line":26,"column":9}},"6":{"start":{"line":22,"column":10},"end":{"line":22,"column":31}},"7":{"start":{"line":24,"column":10},"end":{"line":24,"column":33}},"8":{"start":{"line":25,"column":10},"end":{"line":25,"column":22}},"9":{"start":{"line":27,"column":8},"end":{"line":27,"column":26}},"10":{"start":{"line":35,"column":2},"end":{"line":35,"column":28}},"11":{"start":{"line":41,"column":2},"end":{"line":400,"column":7}},"12":{"start":{"line":71,"column":4},"end":{"line":71,"column":64}},"13":{"start":{"line":73,"column":4},"end":{"line":73,"column":96}},"14":{"start":{"line":74,"column":4},"end":{"line":74,"column":16}},"15":{"start":{"line":76,"column":4},"end":{"line":109,"column":5}},"16":{"start":{"line":78,"column":6},"end":{"line":83,"column":8}},"17":{"start":{"line":79,"column":8},"end":{"line":81,"column":9}},"18":{"start":{"line":80,"column":10},"end":{"line":80,"column":47}},"19":{"start":{"line":82,"column":8},"end":{"line":82,"column":59}},"20":{"start":{"line":84,"column":11},"end":{"line":109,"column":5}},"21":{"start":{"line":86,"column":6},"end":{"line":98,"column":8}},"22":{"start":{"line":87,"column":8},"end":{"line":87,"column":29}},"23":{"start":{"line":88,"column":8},"end":{"line":90,"column":9}},"24":{"start":{"line":89,"column":10},"end":{"line":89,"column":47}},"25":{"start":{"line":93,"column":8},"end":{"line":93,"column":36}},"26":{"start":{"line":94,"column":8},"end":{"line":94,"column":63}},"27":{"start":{"line":96,"column":8},"end":{"line":96,"column":36}},"28":{"start":{"line":97,"column":8},"end":{"line":97,"column":22}},"29":{"start":{"line":102,"column":6},"end":{"line":108,"column":8}},"30":{"start":{"line":103,"column":8},"end":{"line":105,"column":9}},"31":{"start":{"line":104,"column":10},"end":{"line":104,"column":47}},"32":{"start":{"line":106,"column":8},"end":{"line":106,"column":62}},"33":{"start":{"line":107,"column":8},"end":{"line":107,"column":100}},"34":{"start":{"line":110,"column":4},"end":{"line":110,"column":18}},"35":{"start":{"line":118,"column":4},"end":{"line":118,"column":44}},"36":{"start":{"line":123,"column":4},"end":{"line":125,"column":5}},"37":{"start":{"line":124,"column":6},"end":{"line":124,"column":23}},"38":{"start":{"line":126,"column":4},"end":{"line":126,"column":37}},"39":{"start":{"line":129,"column":4},"end":{"line":129,"column":31}},"40":{"start":{"line":130,"column":4},"end":{"line":135,"column":5}},"41":{"start":{"line":132,"column":6},"end":{"line":134,"column":7}},"42":{"start":{"line":133,"column":8},"end":{"line":133,"column":18}},"43":{"start":{"line":136,"column":4},"end":{"line":136,"column":19}},"44":{"start":{"line":139,"column":4},"end":{"line":205,"column":5}},"45":{"start":{"line":141,"column":6},"end":{"line":141,"column":132}},"46":{"start":{"line":144,"column":6},"end":{"line":144,"column":34}},"47":{"start":{"line":145,"column":6},"end":{"line":165,"column":8}},"48":{"start":{"line":146,"column":8},"end":{"line":146,"column":41}},"49":{"start":{"line":147,"column":8},"end":{"line":149,"column":9}},"50":{"start":{"line":148,"column":10},"end":{"line":148,"column":47}},"51":{"start":{"line":150,"column":8},"end":{"line":150,"column":66}},"52":{"start":{"line":151,"column":8},"end":{"line":157,"column":9}},"53":{"start":{"line":154,"column":10},"end":{"line":156,"column":11}},"54":{"start":{"line":155,"column":12},"end":{"line":155,"column":19}},"55":{"start":{"line":159,"column":8},"end":{"line":164,"column":9}},"56":{"start":{"line":160,"column":10},"end":{"line":160,"column":37}},"57":{"start":{"line":161,"column":10},"end":{"line":163,"column":11}},"58":{"start":{"line":162,"column":12},"end":{"line":162,"column":18}},"59":{"start":{"line":166,"column":11},"end":{"line":205,"column":5}},"60":{"start":{"line":168,"column":6},"end":{"line":168,"column":36}},"61":{"start":{"line":169,"column":6},"end":{"line":185,"column":8}},"62":{"start":{"line":170,"column":8},"end":{"line":170,"column":42}},"63":{"start":{"line":171,"column":8},"end":{"line":173,"column":9}},"64":{"start":{"line":172,"column":10},"end":{"line":172,"column":47}},"65":{"start":{"line":175,"column":8},"end":{"line":175,"column":21}},"66":{"start":{"line":176,"column":8},"end":{"line":176,"column":66}},"67":{"start":{"line":177,"column":8},"end":{"line":184,"column":9}},"68":{"start":{"line":181,"column":10},"end":{"line":183,"column":11}},"69":{"start":{"line":182,"column":12},"end":{"line":182,"column":18}},"70":{"start":{"line":188,"column":6},"end":{"line":204,"column":8}},"71":{"start":{"line":189,"column":8},"end":{"line":189,"column":48}},"72":{"start":{"line":190,"column":8},"end":{"line":192,"column":9}},"73":{"start":{"line":191,"column":10},"end":{"line":191,"column":47}},"74":{"start":{"line":193,"column":8},"end":{"line":193,"column":66}},"75":{"start":{"line":194,"column":8},"end":{"line":198,"column":9}},"76":{"start":{"line":195,"column":10},"end":{"line":197,"column":11}},"77":{"start":{"line":196,"column":12},"end":{"line":196,"column":19}},"78":{"start":{"line":201,"column":8},"end":{"line":203,"column":9}},"79":{"start":{"line":202,"column":10},"end":{"line":202,"column":82}},"80":{"start":{"line":206,"column":4},"end":{"line":206,"column":18}},"81":{"start":{"line":213,"column":4},"end":{"line":308,"column":5}},"82":{"start":{"line":214,"column":6},"end":{"line":214,"column":34}},"83":{"start":{"line":216,"column":6},"end":{"line":220,"column":7}},"84":{"start":{"line":219,"column":8},"end":{"line":219,"column":52}},"85":{"start":{"line":222,"column":6},"end":{"line":224,"column":7}},"86":{"start":{"line":223,"column":8},"end":{"line":223,"column":30}},"87":{"start":{"line":225,"column":6},"end":{"line":225,"column":38}},"88":{"start":{"line":226,"column":6},"end":{"line":228,"column":7}},"89":{"start":{"line":227,"column":8},"end":{"line":227,"column":21}},"90":{"start":{"line":229,"column":6},"end":{"line":255,"column":7}},"91":{"start":{"line":234,"column":10},"end":{"line":234,"column":47}},"92":{"start":{"line":236,"column":10},"end":{"line":236,"column":23}},"93":{"start":{"line":237,"column":10},"end":{"line":237,"column":25}},"94":{"start":{"line":240,"column":10},"end":{"line":240,"column":98}},"95":{"start":{"line":246,"column":10},"end":{"line":246,"column":33}},"96":{"start":{"line":250,"column":10},"end":{"line":254,"column":51}},"97":{"start":{"line":256,"column":6},"end":{"line":258,"column":7}},"98":{"start":{"line":257,"column":8},"end":{"line":257,"column":21}},"99":{"start":{"line":263,"column":6},"end":{"line":267,"column":7}},"100":{"start":{"line":264,"column":8},"end":{"line":266,"column":9}},"101":{"start":{"line":265,"column":10},"end":{"line":265,"column":22}},"102":{"start":{"line":269,"column":6},"end":{"line":269,"column":23}},"103":{"start":{"line":270,"column":6},"end":{"line":270,"column":20}},"104":{"start":{"line":272,"column":6},"end":{"line":304,"column":7}},"105":{"start":{"line":274,"column":8},"end":{"line":274,"column":27}},"106":{"start":{"line":275,"column":8},"end":{"line":275,"column":38}},"107":{"start":{"line":276,"column":8},"end":{"line":284,"column":9}},"108":{"start":{"line":278,"column":10},"end":{"line":283,"column":11}},"109":{"start":{"line":280,"column":12},"end":{"line":282,"column":13}},"110":{"start":{"line":281,"column":14},"end":{"line":281,"column":20}},"111":{"start":{"line":286,"column":8},"end":{"line":286,"column":17}},"112":{"start":{"line":288,"column":8},"end":{"line":288,"column":22}},"113":{"start":{"line":289,"column":8},"end":{"line":294,"column":11}},"114":{"start":{"line":291,"column":10},"end":{"line":291,"column":20}},"115":{"start":{"line":293,"column":10},"end":{"line":293,"column":77}},"116":{"start":{"line":296,"column":8},"end":{"line":303,"column":9}},"117":{"start":{"line":297,"column":10},"end":{"line":301,"column":13}},"118":{"start":{"line":298,"column":12},"end":{"line":300,"column":13}},"119":{"start":{"line":299,"column":14},"end":{"line":299,"column":27}},"120":{"start":{"line":302,"column":10},"end":{"line":302,"column":25}},"121":{"start":{"line":306,"column":6},"end":{"line":306,"column":18}},"122":{"start":{"line":307,"column":6},"end":{"line":307,"column":20}},"123":{"start":{"line":311,"column":4},"end":{"line":320,"column":5}},"124":{"start":{"line":312,"column":6},"end":{"line":318,"column":7}},"125":{"start":{"line":315,"column":8},"end":{"line":317,"column":9}},"126":{"start":{"line":316,"column":10},"end":{"line":316,"column":23}},"127":{"start":{"line":319,"column":6},"end":{"line":319,"column":18}},"128":{"start":{"line":322,"column":4},"end":{"line":322,"column":18}},"129":{"start":{"line":329,"column":4},"end":{"line":329,"column":22}},"130":{"start":{"line":330,"column":4},"end":{"line":332,"column":5}},"131":{"start":{"line":331,"column":6},"end":{"line":331,"column":43}},"132":{"start":{"line":333,"column":4},"end":{"line":337,"column":5}},"133":{"start":{"line":334,"column":6},"end":{"line":336,"column":7}},"134":{"start":{"line":335,"column":8},"end":{"line":335,"column":14}},"135":{"start":{"line":338,"column":4},"end":{"line":338,"column":16}},"136":{"start":{"line":344,"column":4},"end":{"line":344,"column":21}},"137":{"start":{"line":346,"column":4},"end":{"line":392,"column":5}},"138":{"start":{"line":347,"column":6},"end":{"line":358,"column":8}},"139":{"start":{"line":354,"column":8},"end":{"line":356,"column":9}},"140":{"start":{"line":355,"column":10},"end":{"line":355,"column":39}},"141":{"start":{"line":357,"column":8},"end":{"line":357,"column":30}},"142":{"start":{"line":360,"column":11},"end":{"line":392,"column":5}},"143":{"start":{"line":361,"column":6},"end":{"line":366,"column":8}},"144":{"start":{"line":362,"column":8},"end":{"line":364,"column":9}},"145":{"start":{"line":363,"column":10},"end":{"line":363,"column":39}},"146":{"start":{"line":365,"column":8},"end":{"line":365,"column":27}},"147":{"start":{"line":369,"column":11},"end":{"line":392,"column":5}},"148":{"start":{"line":370,"column":6},"end":{"line":383,"column":8}},"149":{"start":{"line":371,"column":8},"end":{"line":371,"column":38}},"150":{"start":{"line":372,"column":8},"end":{"line":378,"column":9}},"151":{"start":{"line":376,"column":10},"end":{"line":376,"column":25}},"152":{"start":{"line":377,"column":10},"end":{"line":377,"column":39}},"153":{"start":{"line":382,"column":8},"end":{"line":382,"column":80}},"154":{"start":{"line":386,"column":6},"end":{"line":391,"column":7}},"155":{"start":{"line":387,"column":8},"end":{"line":387,"column":29}},"156":{"start":{"line":388,"column":8},"end":{"line":388,"column":39}},"157":{"start":{"line":390,"column":8},"end":{"line":390,"column":23}},"158":{"start":{"line":394,"column":4},"end":{"line":398,"column":5}},"159":{"start":{"line":395,"column":6},"end":{"line":397,"column":8}},"160":{"start":{"line":396,"column":8},"end":{"line":396,"column":37}},"161":{"start":{"line":399,"column":4},"end":{"line":399,"column":17}},"162":{"start":{"line":404,"column":2},"end":{"line":408,"column":3}},"163":{"start":{"line":405,"column":4},"end":{"line":407,"column":7}},"164":{"start":{"line":406,"column":6},"end":{"line":406,"column":22}},"165":{"start":{"line":417,"column":2},"end":{"line":417,"column":26}},"166":{"start":{"line":418,"column":2},"end":{"line":420,"column":3}},"167":{"start":{"line":419,"column":4},"end":{"line":419,"column":21}},"168":{"start":{"line":428,"column":2},"end":{"line":428,"column":67}},"169":{"start":{"line":429,"column":2},"end":{"line":445,"column":3}},"170":{"start":{"line":430,"column":4},"end":{"line":443,"column":5}},"171":{"start":{"line":431,"column":6},"end":{"line":442,"column":15}},"172":{"start":{"line":432,"column":8},"end":{"line":432,"column":129}},"173":{"start":{"line":433,"column":8},"end":{"line":433,"column":36}},"174":{"start":{"line":435,"column":8},"end":{"line":435,"column":35}},"175":{"start":{"line":436,"column":8},"end":{"line":436,"column":33}},"176":{"start":{"line":438,"column":8},"end":{"line":441,"column":10}},"177":{"start":{"line":444,"column":4},"end":{"line":444,"column":16}},"178":{"start":{"line":453,"column":2},"end":{"line":453,"column":51}},"179":{"start":{"line":454,"column":2},"end":{"line":477,"column":3}},"180":{"start":{"line":455,"column":4},"end":{"line":475,"column":5}},"181":{"start":{"line":457,"column":6},"end":{"line":457,"column":23}},"182":{"start":{"line":458,"column":11},"end":{"line":475,"column":5}},"183":{"start":{"line":459,"column":6},"end":{"line":474,"column":15}},"184":{"start":{"line":460,"column":8},"end":{"line":460,"column":80}},"185":{"start":{"line":461,"column":8},"end":{"line":473,"column":9}},"186":{"start":{"line":463,"column":10},"end":{"line":463,"column":36}},"187":{"start":{"line":464,"column":10},"end":{"line":472,"column":11}},"188":{"start":{"line":466,"column":12},"end":{"line":466,"column":69}},"189":{"start":{"line":467,"column":12},"end":{"line":471,"column":13}},"190":{"start":{"line":468,"column":14},"end":{"line":470,"column":15}},"191":{"start":{"line":469,"column":16},"end":{"line":469,"column":64}},"192":{"start":{"line":476,"column":4},"end":{"line":476,"column":16}},"193":{"start":{"line":482,"column":2},"end":{"line":482,"column":31}},"194":{"start":{"line":483,"column":2},"end":{"line":519,"column":3}},"195":{"start":{"line":484,"column":4},"end":{"line":484,"column":43}},"196":{"start":{"line":486,"column":4},"end":{"line":488,"column":5}},"197":{"start":{"line":487,"column":6},"end":{"line":487,"column":32}},"198":{"start":{"line":489,"column":4},"end":{"line":489,"column":47}},"199":{"start":{"line":491,"column":4},"end":{"line":493,"column":5}},"200":{"start":{"line":492,"column":6},"end":{"line":492,"column":26}},"201":{"start":{"line":495,"column":4},"end":{"line":495,"column":73}},"202":{"start":{"line":496,"column":4},"end":{"line":506,"column":5}},"203":{"start":{"line":497,"column":6},"end":{"line":497,"column":63}},"204":{"start":{"line":498,"column":6},"end":{"line":505,"column":7}},"205":{"start":{"line":500,"column":8},"end":{"line":504,"column":9}},"206":{"start":{"line":501,"column":10},"end":{"line":501,"column":97}},"207":{"start":{"line":503,"column":10},"end":{"line":503,"column":29}},"208":{"start":{"line":508,"column":4},"end":{"line":517,"column":5}},"209":{"start":{"line":509,"column":6},"end":{"line":509,"column":57}},"210":{"start":{"line":510,"column":6},"end":{"line":516,"column":7}},"211":{"start":{"line":511,"column":8},"end":{"line":515,"column":9}},"212":{"start":{"line":512,"column":10},"end":{"line":512,"column":88}},"213":{"start":{"line":514,"column":10},"end":{"line":514,"column":29}},"214":{"start":{"line":518,"column":4},"end":{"line":518,"column":16}},"215":{"start":{"line":528,"column":2},"end":{"line":528,"column":24}},"216":{"start":{"line":531,"column":2},"end":{"line":537,"column":3}},"217":{"start":{"line":532,"column":4},"end":{"line":532,"column":22}},"218":{"start":{"line":533,"column":4},"end":{"line":535,"column":5}},"219":{"start":{"line":534,"column":6},"end":{"line":534,"column":23}},"220":{"start":{"line":536,"column":4},"end":{"line":536,"column":20}},"221":{"start":{"line":540,"column":2},"end":{"line":540,"column":43}},"222":{"start":{"line":543,"column":2},"end":{"line":543,"column":33}},"223":{"start":{"line":544,"column":2},"end":{"line":544,"column":38}},"224":{"start":{"line":547,"column":2},"end":{"line":551,"column":96}},"225":{"start":{"line":548,"column":4},"end":{"line":550,"column":5}},"226":{"start":{"line":549,"column":6},"end":{"line":549,"column":42}},"227":{"start":{"line":554,"column":2},"end":{"line":554,"column":36}},"228":{"start":{"line":555,"column":2},"end":{"line":563,"column":3}},"229":{"start":{"line":556,"column":4},"end":{"line":561,"column":5}},"230":{"start":{"line":557,"column":6},"end":{"line":557,"column":49}},"231":{"start":{"line":558,"column":6},"end":{"line":558,"column":29}},"232":{"start":{"line":559,"column":6},"end":{"line":559,"column":33}},"233":{"start":{"line":560,"column":6},"end":{"line":560,"column":26}},"234":{"start":{"line":562,"column":4},"end":{"line":562,"column":16}},"235":{"start":{"line":566,"column":2},"end":{"line":566,"column":36}},"236":{"start":{"line":567,"column":2},"end":{"line":570,"column":3}},"237":{"start":{"line":568,"column":4},"end":{"line":568,"column":36}},"238":{"start":{"line":569,"column":4},"end":{"line":569,"column":16}},"239":{"start":{"line":574,"column":2},"end":{"line":574,"column":32}},"240":{"start":{"line":575,"column":2},"end":{"line":588,"column":3}},"241":{"start":{"line":576,"column":4},"end":{"line":576,"column":41}},"242":{"start":{"line":577,"column":4},"end":{"line":577,"column":31}},"243":{"start":{"line":578,"column":4},"end":{"line":580,"column":5}},"244":{"start":{"line":579,"column":6},"end":{"line":579,"column":35}},"245":{"start":{"line":581,"column":4},"end":{"line":586,"column":5}},"246":{"start":{"line":582,"column":6},"end":{"line":582,"column":48}},"247":{"start":{"line":583,"column":6},"end":{"line":585,"column":7}},"248":{"start":{"line":584,"column":8},"end":{"line":584,"column":24}},"249":{"start":{"line":587,"column":4},"end":{"line":587,"column":16}},"250":{"start":{"line":593,"column":2},"end":{"line":593,"column":41}},"251":{"start":{"line":594,"column":2},"end":{"line":618,"column":3}},"252":{"start":{"line":595,"column":4},"end":{"line":595,"column":30}},"253":{"start":{"line":597,"column":4},"end":{"line":597,"column":21}},"254":{"start":{"line":598,"column":4},"end":{"line":617,"column":5}},"255":{"start":{"line":601,"column":8},"end":{"line":601,"column":29}},"256":{"start":{"line":602,"column":8},"end":{"line":602,"column":14}},"257":{"start":{"line":604,"column":8},"end":{"line":604,"column":27}},"258":{"start":{"line":605,"column":8},"end":{"line":605,"column":14}},"259":{"start":{"line":608,"column":8},"end":{"line":608,"column":57}},"260":{"start":{"line":609,"column":8},"end":{"line":616,"column":9}},"261":{"start":{"line":610,"column":10},"end":{"line":610,"column":39}},"262":{"start":{"line":612,"column":10},"end":{"line":612,"column":66}},"263":{"start":{"line":615,"column":10},"end":{"line":615,"column":32}},"264":{"start":{"line":621,"column":2},"end":{"line":621,"column":33}},"265":{"start":{"line":622,"column":2},"end":{"line":638,"column":3}},"266":{"start":{"line":624,"column":4},"end":{"line":624,"column":15}},"267":{"start":{"line":625,"column":4},"end":{"line":625,"column":56}},"268":{"start":{"line":627,"column":4},"end":{"line":627,"column":23}},"269":{"start":{"line":629,"column":4},"end":{"line":636,"column":5}},"270":{"start":{"line":630,"column":6},"end":{"line":630,"column":35}},"271":{"start":{"line":632,"column":6},"end":{"line":632,"column":62}},"272":{"start":{"line":635,"column":6},"end":{"line":635,"column":28}},"273":{"start":{"line":637,"column":4},"end":{"line":637,"column":16}},"274":{"start":{"line":644,"column":2},"end":{"line":644,"column":22}},"275":{"start":{"line":645,"column":2},"end":{"line":657,"column":3}},"276":{"start":{"line":646,"column":4},"end":{"line":646,"column":22}},"277":{"start":{"line":647,"column":4},"end":{"line":650,"column":5}},"278":{"start":{"line":648,"column":6},"end":{"line":648,"column":18}},"279":{"start":{"line":649,"column":6},"end":{"line":649,"column":18}},"280":{"start":{"line":651,"column":4},"end":{"line":653,"column":5}},"281":{"start":{"line":652,"column":6},"end":{"line":652,"column":23}},"282":{"start":{"line":654,"column":4},"end":{"line":654,"column":21}},"283":{"start":{"line":656,"column":4},"end":{"line":656,"column":39}},"284":{"start":{"line":660,"column":2},"end":{"line":660,"column":32}},"285":{"start":{"line":661,"column":2},"end":{"line":661,"column":36}},"286":{"start":{"line":664,"column":2},"end":{"line":664,"column":41}},"287":{"start":{"line":667,"column":2},"end":{"line":667,"column":39}},"288":{"start":{"line":668,"column":2},"end":{"line":692,"column":3}},"289":{"start":{"line":669,"column":4},"end":{"line":669,"column":17}},"290":{"start":{"line":670,"column":4},"end":{"line":691,"column":5}},"291":{"start":{"line":672,"column":8},"end":{"line":672,"column":44}},"292":{"start":{"line":673,"column":8},"end":{"line":673,"column":14}},"293":{"start":{"line":675,"column":8},"end":{"line":675,"column":29}},"294":{"start":{"line":676,"column":8},"end":{"line":676,"column":14}},"295":{"start":{"line":678,"column":8},"end":{"line":678,"column":27}},"296":{"start":{"line":679,"column":8},"end":{"line":679,"column":14}},"297":{"start":{"line":681,"column":8},"end":{"line":681,"column":34}},"298":{"start":{"line":683,"column":8},"end":{"line":690,"column":9}},"299":{"start":{"line":684,"column":10},"end":{"line":689,"column":13}},"300":{"start":{"line":696,"column":2},"end":{"line":696,"column":23}},"301":{"start":{"line":697,"column":2},"end":{"line":706,"column":3}},"302":{"start":{"line":698,"column":4},"end":{"line":704,"column":5}},"303":{"start":{"line":699,"column":6},"end":{"line":703,"column":9}},"304":{"start":{"line":705,"column":4},"end":{"line":705,"column":21}},"305":{"start":{"line":709,"column":2},"end":{"line":709,"column":31}},"306":{"start":{"line":710,"column":2},"end":{"line":715,"column":3}},"307":{"start":{"line":711,"column":4},"end":{"line":711,"column":23}},"308":{"start":{"line":713,"column":4},"end":{"line":713,"column":20}},"309":{"start":{"line":714,"column":4},"end":{"line":714,"column":16}},"310":{"start":{"line":719,"column":2},"end":{"line":719,"column":25}},"311":{"start":{"line":720,"column":2},"end":{"line":731,"column":3}},"312":{"start":{"line":721,"column":4},"end":{"line":727,"column":5}},"313":{"start":{"line":722,"column":6},"end":{"line":726,"column":8}},"314":{"start":{"line":729,"column":4},"end":{"line":729,"column":54}},"315":{"start":{"line":730,"column":4},"end":{"line":730,"column":28}},"316":{"start":{"line":734,"column":2},"end":{"line":734,"column":31}},"317":{"start":{"line":735,"column":2},"end":{"line":737,"column":3}},"318":{"start":{"line":736,"column":4},"end":{"line":736,"column":69}},"319":{"start":{"line":741,"column":2},"end":{"line":741,"column":54}},"320":{"start":{"line":742,"column":2},"end":{"line":744,"column":3}},"321":{"start":{"line":743,"column":4},"end":{"line":743,"column":30}},"322":{"start":{"line":747,"column":2},"end":{"line":747,"column":63}},"323":{"start":{"line":748,"column":2},"end":{"line":750,"column":3}},"324":{"start":{"line":749,"column":4},"end":{"line":749,"column":30}},"325":{"start":{"line":753,"column":2},"end":{"line":753,"column":72}},"326":{"start":{"line":754,"column":2},"end":{"line":756,"column":3}},"327":{"start":{"line":755,"column":4},"end":{"line":755,"column":31}},"328":{"start":{"line":759,"column":2},"end":{"line":759,"column":81}},"329":{"start":{"line":760,"column":2},"end":{"line":762,"column":3}},"330":{"start":{"line":761,"column":4},"end":{"line":761,"column":31}},"331":{"start":{"line":766,"column":2},"end":{"line":766,"column":57}},"332":{"start":{"line":769,"column":2},"end":{"line":769,"column":75}},"333":{"start":{"line":770,"column":2},"end":{"line":772,"column":3}},"334":{"start":{"line":771,"column":4},"end":{"line":771,"column":37}},"335":{"start":{"line":775,"column":2},"end":{"line":775,"column":37}},"336":{"start":{"line":776,"column":2},"end":{"line":789,"column":3}},"337":{"start":{"line":777,"column":4},"end":{"line":777,"column":63}},"338":{"start":{"line":779,"column":4},"end":{"line":782,"column":5}},"339":{"start":{"line":780,"column":6},"end":{"line":780,"column":25}},"340":{"start":{"line":781,"column":6},"end":{"line":781,"column":22}},"341":{"start":{"line":783,"column":4},"end":{"line":787,"column":5}},"342":{"start":{"line":784,"column":6},"end":{"line":784,"column":17}},"343":{"start":{"line":786,"column":6},"end":{"line":786,"column":90}},"344":{"start":{"line":788,"column":4},"end":{"line":788,"column":60}},"345":{"start":{"line":792,"column":2},"end":{"line":792,"column":41}},"346":{"start":{"line":793,"column":2},"end":{"line":801,"column":3}},"347":{"start":{"line":794,"column":4},"end":{"line":794,"column":18}},"348":{"start":{"line":795,"column":4},"end":{"line":799,"column":5}},"349":{"start":{"line":796,"column":6},"end":{"line":796,"column":17}},"350":{"start":{"line":798,"column":6},"end":{"line":798,"column":17}},"351":{"start":{"line":800,"column":4},"end":{"line":800,"column":62}},"352":{"start":{"line":805,"column":2},"end":{"line":805,"column":29}},"353":{"start":{"line":806,"column":2},"end":{"line":811,"column":3}},"354":{"start":{"line":807,"column":4},"end":{"line":810,"column":7}},"355":{"start":{"line":812,"column":2},"end":{"line":812,"column":17}}},"branchMap":{"1":{"line":12,"type":"if","locations":[{"start":{"line":12,"column":2},"end":{"line":12,"column":2}},{"start":{"line":12,"column":2},"end":{"line":12,"column":2}}]},"2":{"line":12,"type":"binary-expr","locations":[{"start":{"line":12,"column":6},"end":{"line":12,"column":33}},{"start":{"line":12,"column":37},"end":{"line":12,"column":47}}]},"3":{"line":17,"type":"binary-expr","locations":[{"start":{"line":17,"column":16},"end":{"line":17,"column":42}},{"start":{"line":17,"column":46},"end":{"line":17,"column":53}},{"start":{"line":17,"column":58},"end":{"line":29,"column":5}}]},"4":{"line":59,"type":"binary-expr","locations":[{"start":{"line":59,"column":16},"end":{"line":59,"column":42}},{"start":{"line":59,"column":46},"end":{"line":59,"column":61}},{"start":{"line":59,"column":65},"end":{"line":59,"column":102}}]},"5":{"line":63,"type":"binary-expr","locations":[{"start":{"line":63,"column":12},"end":{"line":63,"column":38}},{"start":{"line":63,"column":42},"end":{"line":63,"column":54}},{"start":{"line":63,"column":58},"end":{"line":63,"column":103}},{"start":{"line":63,"column":107},"end":{"line":63,"column":139}}]},"6":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":4},"end":{"line":76,"column":4}},{"start":{"line":76,"column":4},"end":{"line":76,"column":4}}]},"7":{"line":79,"type":"if","locations":[{"start":{"line":79,"column":8},"end":{"line":79,"column":8}},{"start":{"line":79,"column":8},"end":{"line":79,"column":8}}]},"8":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":11},"end":{"line":84,"column":11}},{"start":{"line":84,"column":11},"end":{"line":84,"column":11}}]},"9":{"line":88,"type":"if","locations":[{"start":{"line":88,"column":8},"end":{"line":88,"column":8}},{"start":{"line":88,"column":8},"end":{"line":88,"column":8}}]},"10":{"line":103,"type":"if","locations":[{"start":{"line":103,"column":8},"end":{"line":103,"column":8}},{"start":{"line":103,"column":8},"end":{"line":103,"column":8}}]},"11":{"line":106,"type":"binary-expr","locations":[{"start":{"line":106,"column":22},"end":{"line":106,"column":40}},{"start":{"line":106,"column":44},"end":{"line":106,"column":50}}]},"12":{"line":107,"type":"binary-expr","locations":[{"start":{"line":107,"column":15},"end":{"line":107,"column":33}},{"start":{"line":107,"column":37},"end":{"line":107,"column":99}}]},"13":{"line":107,"type":"binary-expr","locations":[{"start":{"line":107,"column":39},"end":{"line":107,"column":57}},{"start":{"line":107,"column":61},"end":{"line":107,"column":98}}]},"14":{"line":132,"type":"if","locations":[{"start":{"line":132,"column":6},"end":{"line":132,"column":6}},{"start":{"line":132,"column":6},"end":{"line":132,"column":6}}]},"15":{"line":139,"type":"if","locations":[{"start":{"line":139,"column":4},"end":{"line":139,"column":4}},{"start":{"line":139,"column":4},"end":{"line":139,"column":4}}]},"16":{"line":147,"type":"if","locations":[{"start":{"line":147,"column":8},"end":{"line":147,"column":8}},{"start":{"line":147,"column":8},"end":{"line":147,"column":8}}]},"17":{"line":154,"type":"if","locations":[{"start":{"line":154,"column":10},"end":{"line":154,"column":10}},{"start":{"line":154,"column":10},"end":{"line":154,"column":10}}]},"18":{"line":154,"type":"binary-expr","locations":[{"start":{"line":154,"column":14},"end":{"line":154,"column":54}},{"start":{"line":154,"column":58},"end":{"line":154,"column":82}},{"start":{"line":154,"column":86},"end":{"line":154,"column":160}}]},"19":{"line":154,"type":"binary-expr","locations":[{"start":{"line":154,"column":16},"end":{"line":154,"column":26}},{"start":{"line":154,"column":30},"end":{"line":154,"column":53}}]},"20":{"line":161,"type":"if","locations":[{"start":{"line":161,"column":10},"end":{"line":161,"column":10}},{"start":{"line":161,"column":10},"end":{"line":161,"column":10}}]},"21":{"line":161,"type":"binary-expr","locations":[{"start":{"line":161,"column":14},"end":{"line":161,"column":38}},{"start":{"line":161,"column":42},"end":{"line":161,"column":116}}]},"22":{"line":166,"type":"if","locations":[{"start":{"line":166,"column":11},"end":{"line":166,"column":11}},{"start":{"line":166,"column":11},"end":{"line":166,"column":11}}]},"23":{"line":171,"type":"if","locations":[{"start":{"line":171,"column":8},"end":{"line":171,"column":8}},{"start":{"line":171,"column":8},"end":{"line":171,"column":8}}]},"24":{"line":181,"type":"if","locations":[{"start":{"line":181,"column":10},"end":{"line":181,"column":10}},{"start":{"line":181,"column":10},"end":{"line":181,"column":10}}]},"25":{"line":181,"type":"binary-expr","locations":[{"start":{"line":181,"column":14},"end":{"line":181,"column":54}},{"start":{"line":181,"column":58},"end":{"line":181,"column":84}},{"start":{"line":181,"column":89},"end":{"line":181,"column":110}},{"start":{"line":181,"column":115},"end":{"line":181,"column":139}},{"start":{"line":181,"column":143},"end":{"line":181,"column":217}}]},"26":{"line":181,"type":"binary-expr","locations":[{"start":{"line":181,"column":16},"end":{"line":181,"column":26}},{"start":{"line":181,"column":30},"end":{"line":181,"column":53}}]},"27":{"line":190,"type":"if","locations":[{"start":{"line":190,"column":8},"end":{"line":190,"column":8}},{"start":{"line":190,"column":8},"end":{"line":190,"column":8}}]},"28":{"line":195,"type":"if","locations":[{"start":{"line":195,"column":10},"end":{"line":195,"column":10}},{"start":{"line":195,"column":10},"end":{"line":195,"column":10}}]},"29":{"line":195,"type":"binary-expr","locations":[{"start":{"line":195,"column":14},"end":{"line":195,"column":54}},{"start":{"line":195,"column":58},"end":{"line":195,"column":82}},{"start":{"line":195,"column":86},"end":{"line":195,"column":131}},{"start":{"line":195,"column":135},"end":{"line":195,"column":209}}]},"30":{"line":195,"type":"binary-expr","locations":[{"start":{"line":195,"column":16},"end":{"line":195,"column":26}},{"start":{"line":195,"column":30},"end":{"line":195,"column":53}}]},"31":{"line":201,"type":"if","locations":[{"start":{"line":201,"column":8},"end":{"line":201,"column":8}},{"start":{"line":201,"column":8},"end":{"line":201,"column":8}}]},"32":{"line":201,"type":"binary-expr","locations":[{"start":{"line":201,"column":12},"end":{"line":201,"column":25}},{"start":{"line":201,"column":29},"end":{"line":201,"column":58}}]},"33":{"line":216,"type":"if","locations":[{"start":{"line":216,"column":6},"end":{"line":216,"column":6}},{"start":{"line":216,"column":6},"end":{"line":216,"column":6}}]},"34":{"line":219,"type":"binary-expr","locations":[{"start":{"line":219,"column":15},"end":{"line":219,"column":24}},{"start":{"line":219,"column":29},"end":{"line":219,"column":50}}]},"35":{"line":222,"type":"if","locations":[{"start":{"line":222,"column":6},"end":{"line":222,"column":6}},{"start":{"line":222,"column":6},"end":{"line":222,"column":6}}]},"36":{"line":226,"type":"if","locations":[{"start":{"line":226,"column":6},"end":{"line":226,"column":6}},{"start":{"line":226,"column":6},"end":{"line":226,"column":6}}]},"37":{"line":229,"type":"switch","locations":[{"start":{"line":233,"column":8},"end":{"line":234,"column":47}},{"start":{"line":235,"column":8},"end":{"line":240,"column":98}},{"start":{"line":244,"column":8},"end":{"line":244,"column":29}},{"start":{"line":245,"column":8},"end":{"line":246,"column":33}},{"start":{"line":249,"column":8},"end":{"line":254,"column":51}}]},"38":{"line":240,"type":"cond-expr","locations":[{"start":{"line":240,"column":32},"end":{"line":240,"column":46}},{"start":{"line":240,"column":50},"end":{"line":240,"column":96}}]},"39":{"line":240,"type":"cond-expr","locations":[{"start":{"line":240,"column":57},"end":{"line":240,"column":70}},{"start":{"line":240,"column":74},"end":{"line":240,"column":95}}]},"40":{"line":250,"type":"binary-expr","locations":[{"start":{"line":250,"column":17},"end":{"line":250,"column":44}},{"start":{"line":251,"column":17},"end":{"line":251,"column":44}},{"start":{"line":252,"column":17},"end":{"line":252,"column":50}},{"start":{"line":253,"column":17},"end":{"line":253,"column":52}},{"start":{"line":254,"column":17},"end":{"line":254,"column":50}}]},"41":{"line":256,"type":"if","locations":[{"start":{"line":256,"column":6},"end":{"line":256,"column":6}},{"start":{"line":256,"column":6},"end":{"line":256,"column":6}}]},"42":{"line":256,"type":"binary-expr","locations":[{"start":{"line":256,"column":10},"end":{"line":256,"column":33}},{"start":{"line":256,"column":37},"end":{"line":256,"column":61}}]},"43":{"line":264,"type":"if","locations":[{"start":{"line":264,"column":8},"end":{"line":264,"column":8}},{"start":{"line":264,"column":8},"end":{"line":264,"column":8}}]},"44":{"line":272,"type":"if","locations":[{"start":{"line":272,"column":6},"end":{"line":272,"column":6}},{"start":{"line":272,"column":6},"end":{"line":272,"column":6}}]},"45":{"line":276,"type":"if","locations":[{"start":{"line":276,"column":8},"end":{"line":276,"column":8}},{"start":{"line":276,"column":8},"end":{"line":276,"column":8}}]},"46":{"line":280,"type":"if","locations":[{"start":{"line":280,"column":12},"end":{"line":280,"column":12}},{"start":{"line":280,"column":12},"end":{"line":280,"column":12}}]},"47":{"line":280,"type":"binary-expr","locations":[{"start":{"line":280,"column":28},"end":{"line":280,"column":57}},{"start":{"line":280,"column":62},"end":{"line":280,"column":96}}]},"48":{"line":293,"type":"binary-expr","locations":[{"start":{"line":293,"column":26},"end":{"line":293,"column":44}},{"start":{"line":293,"column":48},"end":{"line":293,"column":76}}]},"49":{"line":296,"type":"if","locations":[{"start":{"line":296,"column":8},"end":{"line":296,"column":8}},{"start":{"line":296,"column":8},"end":{"line":296,"column":8}}]},"50":{"line":298,"type":"if","locations":[{"start":{"line":298,"column":12},"end":{"line":298,"column":12}},{"start":{"line":298,"column":12},"end":{"line":298,"column":12}}]},"51":{"line":315,"type":"if","locations":[{"start":{"line":315,"column":8},"end":{"line":315,"column":8}},{"start":{"line":315,"column":8},"end":{"line":315,"column":8}}]},"52":{"line":330,"type":"if","locations":[{"start":{"line":330,"column":4},"end":{"line":330,"column":4}},{"start":{"line":330,"column":4},"end":{"line":330,"column":4}}]},"53":{"line":334,"type":"if","locations":[{"start":{"line":334,"column":6},"end":{"line":334,"column":6}},{"start":{"line":334,"column":6},"end":{"line":334,"column":6}}]},"54":{"line":346,"type":"if","locations":[{"start":{"line":346,"column":4},"end":{"line":346,"column":4}},{"start":{"line":346,"column":4},"end":{"line":346,"column":4}}]},"55":{"line":360,"type":"if","locations":[{"start":{"line":360,"column":11},"end":{"line":360,"column":11}},{"start":{"line":360,"column":11},"end":{"line":360,"column":11}}]},"56":{"line":369,"type":"if","locations":[{"start":{"line":369,"column":11},"end":{"line":369,"column":11}},{"start":{"line":369,"column":11},"end":{"line":369,"column":11}}]},"57":{"line":394,"type":"if","locations":[{"start":{"line":394,"column":4},"end":{"line":394,"column":4}},{"start":{"line":394,"column":4},"end":{"line":394,"column":4}}]},"58":{"line":394,"type":"binary-expr","locations":[{"start":{"line":394,"column":8},"end":{"line":394,"column":14}},{"start":{"line":394,"column":18},"end":{"line":394,"column":42}}]},"59":{"line":430,"type":"if","locations":[{"start":{"line":430,"column":4},"end":{"line":430,"column":4}},{"start":{"line":430,"column":4},"end":{"line":430,"column":4}}]},"60":{"line":430,"type":"binary-expr","locations":[{"start":{"line":430,"column":8},"end":{"line":430,"column":13}},{"start":{"line":430,"column":17},"end":{"line":430,"column":25}}]},"61":{"line":432,"type":"binary-expr","locations":[{"start":{"line":432,"column":24},"end":{"line":432,"column":50}},{"start":{"line":432,"column":54},"end":{"line":432,"column":72}}]},"62":{"line":432,"type":"cond-expr","locations":[{"start":{"line":432,"column":95},"end":{"line":432,"column":113}},{"start":{"line":432,"column":116},"end":{"line":432,"column":118}}]},"63":{"line":440,"type":"cond-expr","locations":[{"start":{"line":440,"column":30},"end":{"line":440,"column":44}},{"start":{"line":440,"column":47},"end":{"line":440,"column":53}}]},"64":{"line":455,"type":"if","locations":[{"start":{"line":455,"column":4},"end":{"line":455,"column":4}},{"start":{"line":455,"column":4},"end":{"line":455,"column":4}}]},"65":{"line":458,"type":"if","locations":[{"start":{"line":458,"column":11},"end":{"line":458,"column":11}},{"start":{"line":458,"column":11},"end":{"line":458,"column":11}}]},"66":{"line":460,"type":"binary-expr","locations":[{"start":{"line":460,"column":21},"end":{"line":460,"column":47}},{"start":{"line":460,"column":51},"end":{"line":460,"column":69}}]},"67":{"line":461,"type":"if","locations":[{"start":{"line":461,"column":8},"end":{"line":461,"column":8}},{"start":{"line":461,"column":8},"end":{"line":461,"column":8}}]},"68":{"line":464,"type":"if","locations":[{"start":{"line":464,"column":10},"end":{"line":464,"column":10}},{"start":{"line":464,"column":10},"end":{"line":464,"column":10}}]},"69":{"line":466,"type":"binary-expr","locations":[{"start":{"line":466,"column":23},"end":{"line":466,"column":49}},{"start":{"line":466,"column":53},"end":{"line":466,"column":68}}]},"70":{"line":467,"type":"binary-expr","locations":[{"start":{"line":467,"column":29},"end":{"line":467,"column":51}},{"start":{"line":467,"column":55},"end":{"line":467,"column":66}}]},"71":{"line":468,"type":"if","locations":[{"start":{"line":468,"column":14},"end":{"line":468,"column":14}},{"start":{"line":468,"column":14},"end":{"line":468,"column":14}}]},"72":{"line":468,"type":"binary-expr","locations":[{"start":{"line":468,"column":18},"end":{"line":468,"column":44}},{"start":{"line":468,"column":48},"end":{"line":468,"column":75}},{"start":{"line":468,"column":80},"end":{"line":468,"column":87}},{"start":{"line":468,"column":92},"end":{"line":468,"column":117}},{"start":{"line":468,"column":121},"end":{"line":468,"column":146}}]},"73":{"line":486,"type":"if","locations":[{"start":{"line":486,"column":4},"end":{"line":486,"column":4}},{"start":{"line":486,"column":4},"end":{"line":486,"column":4}}]},"74":{"line":486,"type":"binary-expr","locations":[{"start":{"line":486,"column":8},"end":{"line":486,"column":32}},{"start":{"line":486,"column":36},"end":{"line":486,"column":77}}]},"75":{"line":489,"type":"binary-expr","locations":[{"start":{"line":489,"column":11},"end":{"line":489,"column":32}},{"start":{"line":489,"column":36},"end":{"line":489,"column":46}}]},"76":{"line":491,"type":"if","locations":[{"start":{"line":491,"column":4},"end":{"line":491,"column":4}},{"start":{"line":491,"column":4},"end":{"line":491,"column":4}}]},"77":{"line":495,"type":"binary-expr","locations":[{"start":{"line":495,"column":10},"end":{"line":495,"column":23}},{"start":{"line":495,"column":27},"end":{"line":495,"column":53}},{"start":{"line":495,"column":57},"end":{"line":495,"column":72}}]},"78":{"line":496,"type":"if","locations":[{"start":{"line":496,"column":4},"end":{"line":496,"column":4}},{"start":{"line":496,"column":4},"end":{"line":496,"column":4}}]},"79":{"line":496,"type":"binary-expr","locations":[{"start":{"line":496,"column":18},"end":{"line":496,"column":43}},{"start":{"line":496,"column":47},"end":{"line":496,"column":64}}]},"80":{"line":497,"type":"binary-expr","locations":[{"start":{"line":497,"column":17},"end":{"line":497,"column":43}},{"start":{"line":497,"column":47},"end":{"line":497,"column":62}}]},"81":{"line":498,"type":"binary-expr","locations":[{"start":{"line":498,"column":23},"end":{"line":498,"column":45}},{"start":{"line":498,"column":49},"end":{"line":498,"column":60}}]},"82":{"line":501,"type":"binary-expr","locations":[{"start":{"line":501,"column":37},"end":{"line":501,"column":62}},{"start":{"line":501,"column":66},"end":{"line":501,"column":80}},{"start":{"line":501,"column":84},"end":{"line":501,"column":88}}]},"83":{"line":508,"type":"if","locations":[{"start":{"line":508,"column":4},"end":{"line":508,"column":4}},{"start":{"line":508,"column":4},"end":{"line":508,"column":4}}]},"84":{"line":509,"type":"binary-expr","locations":[{"start":{"line":509,"column":17},"end":{"line":509,"column":40}},{"start":{"line":509,"column":44},"end":{"line":509,"column":56}}]},"85":{"line":510,"type":"binary-expr","locations":[{"start":{"line":510,"column":20},"end":{"line":510,"column":39}},{"start":{"line":510,"column":43},"end":{"line":510,"column":51}}]},"86":{"line":512,"type":"binary-expr","locations":[{"start":{"line":512,"column":34},"end":{"line":512,"column":56}},{"start":{"line":512,"column":60},"end":{"line":512,"column":71}},{"start":{"line":512,"column":75},"end":{"line":512,"column":79}}]},"87":{"line":533,"type":"if","locations":[{"start":{"line":533,"column":4},"end":{"line":533,"column":4}},{"start":{"line":533,"column":4},"end":{"line":533,"column":4}}]},"88":{"line":577,"type":"binary-expr","locations":[{"start":{"line":577,"column":4},"end":{"line":577,"column":12}},{"start":{"line":577,"column":17},"end":{"line":577,"column":29}}]},"89":{"line":578,"type":"if","locations":[{"start":{"line":578,"column":4},"end":{"line":578,"column":4}},{"start":{"line":578,"column":4},"end":{"line":578,"column":4}}]},"90":{"line":582,"type":"binary-expr","locations":[{"start":{"line":582,"column":13},"end":{"line":582,"column":29}},{"start":{"line":582,"column":33},"end":{"line":582,"column":47}}]},"91":{"line":583,"type":"if","locations":[{"start":{"line":583,"column":6},"end":{"line":583,"column":6}},{"start":{"line":583,"column":6},"end":{"line":583,"column":6}}]},"92":{"line":583,"type":"binary-expr","locations":[{"start":{"line":583,"column":10},"end":{"line":583,"column":14}},{"start":{"line":583,"column":18},"end":{"line":583,"column":55}},{"start":{"line":583,"column":59},"end":{"line":583,"column":79}}]},"93":{"line":598,"type":"switch","locations":[{"start":{"line":600,"column":6},"end":{"line":602,"column":14}},{"start":{"line":603,"column":6},"end":{"line":605,"column":14}},{"start":{"line":606,"column":6},"end":{"line":616,"column":9}}]},"94":{"line":609,"type":"if","locations":[{"start":{"line":609,"column":8},"end":{"line":609,"column":8}},{"start":{"line":609,"column":8},"end":{"line":609,"column":8}}]},"95":{"line":629,"type":"if","locations":[{"start":{"line":629,"column":4},"end":{"line":629,"column":4}},{"start":{"line":629,"column":4},"end":{"line":629,"column":4}}]},"96":{"line":647,"type":"if","locations":[{"start":{"line":647,"column":4},"end":{"line":647,"column":4}},{"start":{"line":647,"column":4},"end":{"line":647,"column":4}}]},"97":{"line":647,"type":"binary-expr","locations":[{"start":{"line":647,"column":8},"end":{"line":647,"column":12}},{"start":{"line":647,"column":16},"end":{"line":647,"column":28}}]},"98":{"line":651,"type":"if","locations":[{"start":{"line":651,"column":4},"end":{"line":651,"column":4}},{"start":{"line":651,"column":4},"end":{"line":651,"column":4}}]},"99":{"line":670,"type":"switch","locations":[{"start":{"line":671,"column":6},"end":{"line":673,"column":14}},{"start":{"line":674,"column":6},"end":{"line":676,"column":14}},{"start":{"line":677,"column":6},"end":{"line":679,"column":14}},{"start":{"line":680,"column":6},"end":{"line":690,"column":9}}]},"100":{"line":683,"type":"if","locations":[{"start":{"line":683,"column":8},"end":{"line":683,"column":8}},{"start":{"line":683,"column":8},"end":{"line":683,"column":8}}]},"101":{"line":683,"type":"binary-expr","locations":[{"start":{"line":683,"column":13},"end":{"line":683,"column":40}},{"start":{"line":683,"column":44},"end":{"line":683,"column":88}},{"start":{"line":683,"column":93},"end":{"line":683,"column":120}}]},"102":{"line":702,"type":"cond-expr","locations":[{"start":{"line":702,"column":37},"end":{"line":702,"column":41}},{"start":{"line":702,"column":44},"end":{"line":702,"column":51}}]},"103":{"line":721,"type":"if","locations":[{"start":{"line":721,"column":4},"end":{"line":721,"column":4}},{"start":{"line":721,"column":4},"end":{"line":721,"column":4}}]},"104":{"line":725,"type":"cond-expr","locations":[{"start":{"line":725,"column":35},"end":{"line":725,"column":39}},{"start":{"line":725,"column":42},"end":{"line":725,"column":47}}]},"105":{"line":729,"type":"cond-expr","locations":[{"start":{"line":729,"column":30},"end":{"line":729,"column":41}},{"start":{"line":729,"column":44},"end":{"line":729,"column":53}}]},"106":{"line":736,"type":"cond-expr","locations":[{"start":{"line":736,"column":50},"end":{"line":736,"column":57}},{"start":{"line":736,"column":60},"end":{"line":736,"column":67}}]},"107":{"line":779,"type":"if","locations":[{"start":{"line":779,"column":4},"end":{"line":779,"column":4}},{"start":{"line":779,"column":4},"end":{"line":779,"column":4}}]},"108":{"line":779,"type":"binary-expr","locations":[{"start":{"line":779,"column":8},"end":{"line":779,"column":19}},{"start":{"line":779,"column":23},"end":{"line":779,"column":38}}]},"109":{"line":786,"type":"binary-expr","locations":[{"start":{"line":786,"column":11},"end":{"line":786,"column":27}},{"start":{"line":786,"column":32},"end":{"line":786,"column":42}},{"start":{"line":786,"column":46},"end":{"line":786,"column":88}}]},"110":{"line":788,"type":"cond-expr","locations":[{"start":{"line":788,"column":41},"end":{"line":788,"column":48}},{"start":{"line":788,"column":51},"end":{"line":788,"column":58}}]},"111":{"line":800,"type":"cond-expr","locations":[{"start":{"line":800,"column":41},"end":{"line":800,"column":50}},{"start":{"line":800,"column":53},"end":{"line":800,"column":60}}]}}},"/Users/kit/Dropbox/Projects/json3/vendor/spec/lib/newton.js":{"path":"/Users/kit/Dropbox/Projects/json3/vendor/spec/lib/newton.js","s":{"1":1,"2":1,"3":1,"4":0,"5":0,"6":1,"7":1,"8":1,"9":1,"10":0,"11":0,"12":0,"13":1,"14":0,"15":0,"16":0,"17":0,"18":1,"19":1,"20":0,"21":1,"22":0,"23":1,"24":1,"25":0,"26":0,"27":0,"28":0,"29":1,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":1,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":298,"108":298,"109":298,"110":0,"111":298,"112":4294,"113":4294,"114":322,"115":322,"116":0,"117":322,"118":322,"119":24,"120":24,"121":0,"122":0,"123":0,"124":0,"125":298,"126":0,"127":322,"128":322,"129":3972,"130":298,"131":1,"132":298,"133":1,"134":1,"135":11,"136":11,"137":274,"138":274,"139":0,"140":0,"141":11,"142":11,"143":1,"144":1,"145":0,"146":1,"147":0,"148":1,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":1,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":1,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":1,"234":1},"b":{"1":[1,0],"2":[1,1,1,1],"3":[1,0,0],"4":[1,1,0],"5":[0,1],"6":[1,0],"7":[1,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0,0,0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0,0,0,0,0,0,0],"43":[0,0],"44":[0,298],"45":[298,298],"46":[322,3972],"47":[0,322],"48":[322,0],"49":[0,24,0,0,298],"50":[24,12],"51":[0,0],"52":[1,11,274,0,11,1],"53":[0,0,0],"54":[0,1],"55":[0,0],"56":[0,0],"57":[0,0],"58":[0,0],"59":[0,0],"60":[0,0],"61":[0,0],"62":[0,0],"63":[0,0],"64":[0,0],"65":[0,0],"66":[0,0],"67":[0,0],"68":[0,0],"69":[0,0],"70":[0,0],"71":[0,0],"72":[0,0,0,0,0,0],"73":[0,0],"74":[0,0],"75":[0,0],"76":[0,0]},"f":{"1":1,"2":0,"3":0,"4":0,"5":1,"6":1,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":298,"22":1,"23":298,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0},"fnMap":{"1":{"name":"(anonymous_1)","line":8,"loc":{"start":{"line":8,"column":2},"end":{"line":8,"column":30}}},"2":{"name":"(anonymous_2)","line":26,"loc":{"start":{"line":26,"column":32},"end":{"line":26,"column":57}}},"3":{"name":"(anonymous_3)","line":42,"loc":{"start":{"line":42,"column":21},"end":{"line":42,"column":41}}},"4":{"name":"noConflict","line":43,"loc":{"start":{"line":43,"column":8},"end":{"line":43,"column":30}}},"5":{"name":"(anonymous_5)","line":52,"loc":{"start":{"line":52,"column":9},"end":{"line":52,"column":47}}},"6":{"name":"(anonymous_6)","line":61,"loc":{"start":{"line":61,"column":35},"end":{"line":61,"column":47}}},"7":{"name":"stringify","line":62,"loc":{"start":{"line":62,"column":4},"end":{"line":62,"column":31}}},"8":{"name":"toPaddedString","line":68,"loc":{"start":{"line":68,"column":4},"end":{"line":68,"column":42}}},"9":{"name":"quote","line":85,"loc":{"start":{"line":85,"column":4},"end":{"line":85,"column":26}}},"10":{"name":"serialize","line":99,"loc":{"start":{"line":99,"column":4},"end":{"line":99,"column":37}}},"11":{"name":"(anonymous_11)","line":155,"loc":{"start":{"line":155,"column":29},"end":{"line":155,"column":51}}},"12":{"name":"all","line":172,"loc":{"start":{"line":172,"column":22},"end":{"line":172,"column":62}}},"13":{"name":"(anonymous_13)","line":174,"loc":{"start":{"line":174,"column":24},"end":{"line":174,"column":54}}},"14":{"name":"toQueryPair","line":181,"loc":{"start":{"line":181,"column":16},"end":{"line":181,"column":55}}},"15":{"name":"serializeQuery","line":200,"loc":{"start":{"line":200,"column":44},"end":{"line":200,"column":84}}},"16":{"name":"(anonymous_16)","line":202,"loc":{"start":{"line":202,"column":21},"end":{"line":202,"column":49}}},"17":{"name":"(anonymous_17)","line":204,"loc":{"start":{"line":204,"column":28},"end":{"line":204,"column":45}}},"18":{"name":"parseQuery","line":223,"loc":{"start":{"line":223,"column":36},"end":{"line":223,"column":75}}},"19":{"name":"isEmpty","line":256,"loc":{"start":{"line":256,"column":30},"end":{"line":256,"column":54}}},"20":{"name":"(anonymous_20)","line":275,"loc":{"start":{"line":275,"column":19},"end":{"line":275,"column":31}}},"21":{"name":"substitute","line":283,"loc":{"start":{"line":283,"column":36},"end":{"line":283,"column":63}}},"22":{"name":"createConsole","line":333,"loc":{"start":{"line":333,"column":42},"end":{"line":333,"column":72}}},"23":{"name":"onEvent","line":334,"loc":{"start":{"line":334,"column":4},"end":{"line":334,"column":28}}},"24":{"name":"createTAP","line":359,"loc":{"start":{"line":359,"column":34},"end":{"line":359,"column":60}}},"25":{"name":"description","line":362,"loc":{"start":{"line":362,"column":4},"end":{"line":362,"column":38}}},"26":{"name":"onEvent","line":365,"loc":{"start":{"line":365,"column":4},"end":{"line":365,"column":28}}},"27":{"name":"onClick","line":391,"loc":{"start":{"line":391,"column":14},"end":{"line":391,"column":33}}},"28":{"name":"(anonymous_28)","line":401,"loc":{"start":{"line":401,"column":37},"end":{"line":401,"column":49}}},"29":{"name":"(anonymous_29)","line":405,"loc":{"start":{"line":405,"column":43},"end":{"line":405,"column":55}}},"30":{"name":"serializeAttribute","line":427,"loc":{"start":{"line":427,"column":27},"end":{"line":427,"column":68}}},"31":{"name":"buildNode","line":433,"loc":{"start":{"line":433,"column":18},"end":{"line":433,"column":68}}},"32":{"name":"(anonymous_32)","line":458,"loc":{"start":{"line":458,"column":42},"end":{"line":458,"column":69}}},"33":{"name":"(anonymous_33)","line":464,"loc":{"start":{"line":464,"column":34},"end":{"line":464,"column":61}}},"34":{"name":"(anonymous_34)","line":470,"loc":{"start":{"line":470,"column":33},"end":{"line":470,"column":50}}},"35":{"name":"clearElement","line":480,"loc":{"start":{"line":480,"column":19},"end":{"line":480,"column":50}}},"36":{"name":"createReport","line":489,"loc":{"start":{"line":489,"column":42},"end":{"line":489,"column":73}}},"37":{"name":"onEvent","line":490,"loc":{"start":{"line":490,"column":6},"end":{"line":490,"column":30}}}},"statementMap":{"1":{"start":{"line":8,"column":1},"end":{"line":577,"column":3}},"2":{"start":{"line":10,"column":2},"end":{"line":22,"column":18}},"3":{"start":{"line":24,"column":2},"end":{"line":51,"column":3}},"4":{"start":{"line":26,"column":4},"end":{"line":28,"column":7}},"5":{"start":{"line":27,"column":6},"end":{"line":27,"column":52}},"6":{"start":{"line":29,"column":9},"end":{"line":51,"column":3}},"7":{"start":{"line":31,"column":4},"end":{"line":34,"column":26}},"8":{"start":{"line":33,"column":6},"end":{"line":33,"column":31}},"9":{"start":{"line":35,"column":4},"end":{"line":35,"column":49}},"10":{"start":{"line":38,"column":4},"end":{"line":40,"column":5}},"11":{"start":{"line":39,"column":6},"end":{"line":39,"column":43}},"12":{"start":{"line":41,"column":4},"end":{"line":50,"column":25}},"13":{"start":{"line":43,"column":8},"end":{"line":47,"column":9}},"14":{"start":{"line":44,"column":10},"end":{"line":44,"column":33}},"15":{"start":{"line":45,"column":10},"end":{"line":45,"column":35}},"16":{"start":{"line":46,"column":10},"end":{"line":46,"column":24}},"17":{"start":{"line":48,"column":8},"end":{"line":48,"column":26}},"18":{"start":{"line":56,"column":2},"end":{"line":387,"column":49}},"19":{"start":{"line":62,"column":4},"end":{"line":64,"column":5}},"20":{"start":{"line":63,"column":6},"end":{"line":63,"column":35}},"21":{"start":{"line":68,"column":4},"end":{"line":70,"column":5}},"22":{"start":{"line":69,"column":6},"end":{"line":69,"column":46}},"23":{"start":{"line":73,"column":4},"end":{"line":81,"column":6}},"24":{"start":{"line":85,"column":4},"end":{"line":96,"column":5}},"25":{"start":{"line":86,"column":6},"end":{"line":86,"column":42}},"26":{"start":{"line":87,"column":6},"end":{"line":94,"column":7}},"27":{"start":{"line":90,"column":8},"end":{"line":93,"column":95}},"28":{"start":{"line":95,"column":6},"end":{"line":95,"column":26}},"29":{"start":{"line":99,"column":4},"end":{"line":165,"column":5}},"30":{"start":{"line":100,"column":6},"end":{"line":100,"column":51}},"31":{"start":{"line":101,"column":6},"end":{"line":103,"column":7}},"32":{"start":{"line":102,"column":8},"end":{"line":102,"column":22}},"33":{"start":{"line":104,"column":6},"end":{"line":104,"column":39}},"34":{"start":{"line":105,"column":6},"end":{"line":132,"column":7}},"35":{"start":{"line":110,"column":10},"end":{"line":110,"column":54}},"36":{"start":{"line":113,"column":10},"end":{"line":113,"column":30}},"37":{"start":{"line":115,"column":10},"end":{"line":117,"column":11}},"38":{"start":{"line":116,"column":12},"end":{"line":116,"column":26}},"39":{"start":{"line":121,"column":10},"end":{"line":121,"column":40}},"40":{"start":{"line":123,"column":10},"end":{"line":129,"column":71}},"41":{"start":{"line":131,"column":10},"end":{"line":131,"column":165}},"42":{"start":{"line":134,"column":6},"end":{"line":163,"column":7}},"43":{"start":{"line":138,"column":8},"end":{"line":142,"column":9}},"44":{"start":{"line":139,"column":10},"end":{"line":141,"column":11}},"45":{"start":{"line":140,"column":12},"end":{"line":140,"column":26}},"46":{"start":{"line":144,"column":8},"end":{"line":144,"column":26}},"47":{"start":{"line":145,"column":8},"end":{"line":145,"column":20}},"48":{"start":{"line":146,"column":8},"end":{"line":160,"column":9}},"49":{"start":{"line":148,"column":10},"end":{"line":152,"column":11}},"50":{"start":{"line":149,"column":12},"end":{"line":151,"column":13}},"51":{"start":{"line":150,"column":14},"end":{"line":150,"column":63}},"52":{"start":{"line":153,"column":10},"end":{"line":153,"column":47}},"53":{"start":{"line":155,"column":10},"end":{"line":158,"column":13}},"54":{"start":{"line":157,"column":12},"end":{"line":157,"column":69}},"55":{"start":{"line":159,"column":10},"end":{"line":159,"column":47}},"56":{"start":{"line":162,"column":8},"end":{"line":162,"column":20}},"57":{"start":{"line":164,"column":6},"end":{"line":164,"column":20}},"58":{"start":{"line":167,"column":4},"end":{"line":167,"column":21}},"59":{"start":{"line":173,"column":4},"end":{"line":173,"column":22}},"60":{"start":{"line":174,"column":4},"end":{"line":176,"column":7}},"61":{"start":{"line":175,"column":6},"end":{"line":175,"column":67}},"62":{"start":{"line":177,"column":4},"end":{"line":177,"column":18}},"63":{"start":{"line":182,"column":4},"end":{"line":182,"column":46}},"64":{"start":{"line":183,"column":4},"end":{"line":185,"column":5}},"65":{"start":{"line":184,"column":6},"end":{"line":184,"column":23}},"66":{"start":{"line":186,"column":4},"end":{"line":191,"column":5}},"67":{"start":{"line":190,"column":8},"end":{"line":190,"column":59}},"68":{"start":{"line":201,"column":4},"end":{"line":201,"column":28}},"69":{"start":{"line":202,"column":4},"end":{"line":213,"column":7}},"70":{"start":{"line":203,"column":6},"end":{"line":212,"column":7}},"71":{"start":{"line":204,"column":8},"end":{"line":209,"column":11}},"72":{"start":{"line":205,"column":10},"end":{"line":205,"column":53}},"73":{"start":{"line":206,"column":10},"end":{"line":208,"column":11}},"74":{"start":{"line":207,"column":12},"end":{"line":207,"column":32}},"75":{"start":{"line":210,"column":13},"end":{"line":212,"column":7}},"76":{"start":{"line":211,"column":8},"end":{"line":211,"column":28}},"77":{"start":{"line":214,"column":4},"end":{"line":214,"column":41}},"78":{"start":{"line":224,"column":4},"end":{"line":224,"column":115}},"79":{"start":{"line":226,"column":4},"end":{"line":228,"column":5}},"80":{"start":{"line":227,"column":6},"end":{"line":227,"column":21}},"81":{"start":{"line":229,"column":4},"end":{"line":229,"column":44}},"82":{"start":{"line":230,"column":4},"end":{"line":251,"column":5}},"83":{"start":{"line":231,"column":6},"end":{"line":231,"column":19}},"84":{"start":{"line":232,"column":6},"end":{"line":232,"column":56}},"85":{"start":{"line":233,"column":6},"end":{"line":250,"column":7}},"86":{"start":{"line":234,"column":8},"end":{"line":241,"column":9}},"87":{"start":{"line":235,"column":10},"end":{"line":235,"column":68}},"88":{"start":{"line":236,"column":10},"end":{"line":238,"column":11}},"89":{"start":{"line":237,"column":12},"end":{"line":237,"column":46}},"90":{"start":{"line":240,"column":10},"end":{"line":240,"column":29}},"91":{"start":{"line":242,"column":8},"end":{"line":249,"column":9}},"92":{"start":{"line":243,"column":10},"end":{"line":245,"column":11}},"93":{"start":{"line":244,"column":12},"end":{"line":244,"column":54}},"94":{"start":{"line":246,"column":10},"end":{"line":246,"column":41}},"95":{"start":{"line":248,"column":10},"end":{"line":248,"column":37}},"96":{"start":{"line":252,"column":4},"end":{"line":252,"column":19}},"97":{"start":{"line":257,"column":4},"end":{"line":257,"column":15}},"98":{"start":{"line":258,"column":4},"end":{"line":260,"column":5}},"99":{"start":{"line":259,"column":6},"end":{"line":259,"column":18}},"100":{"start":{"line":261,"column":4},"end":{"line":278,"column":5}},"101":{"start":{"line":265,"column":8},"end":{"line":265,"column":23}},"102":{"start":{"line":266,"column":8},"end":{"line":266,"column":39}},"103":{"start":{"line":270,"column":8},"end":{"line":270,"column":21}},"104":{"start":{"line":273,"column":8},"end":{"line":273,"column":29}},"105":{"start":{"line":275,"column":8},"end":{"line":277,"column":18}},"106":{"start":{"line":276,"column":10},"end":{"line":276,"column":23}},"107":{"start":{"line":284,"column":4},"end":{"line":284,"column":59}},"108":{"start":{"line":285,"column":4},"end":{"line":285,"column":23}},"109":{"start":{"line":286,"column":4},"end":{"line":288,"column":5}},"110":{"start":{"line":287,"column":6},"end":{"line":287,"column":19}},"111":{"start":{"line":289,"column":4},"end":{"line":328,"column":5}},"112":{"start":{"line":290,"column":6},"end":{"line":290,"column":35}},"113":{"start":{"line":291,"column":6},"end":{"line":327,"column":7}},"114":{"start":{"line":292,"column":8},"end":{"line":292,"column":44}},"115":{"start":{"line":293,"column":8},"end":{"line":323,"column":9}},"116":{"start":{"line":295,"column":10},"end":{"line":295,"column":30}},"117":{"start":{"line":297,"column":10},"end":{"line":320,"column":11}},"118":{"start":{"line":299,"column":12},"end":{"line":316,"column":13}},"119":{"start":{"line":303,"column":16},"end":{"line":303,"column":63}},"120":{"start":{"line":304,"column":16},"end":{"line":304,"column":22}},"121":{"start":{"line":307,"column":16},"end":{"line":307,"column":52}},"122":{"start":{"line":308,"column":16},"end":{"line":308,"column":22}},"123":{"start":{"line":311,"column":16},"end":{"line":311,"column":57}},"124":{"start":{"line":312,"column":16},"end":{"line":312,"column":22}},"125":{"start":{"line":315,"column":16},"end":{"line":315,"column":46}},"126":{"start":{"line":319,"column":12},"end":{"line":319,"column":41}},"127":{"start":{"line":322,"column":10},"end":{"line":322,"column":24}},"128":{"start":{"line":324,"column":8},"end":{"line":324,"column":19}},"129":{"start":{"line":326,"column":8},"end":{"line":326,"column":25}},"130":{"start":{"line":329,"column":4},"end":{"line":329,"column":18}},"131":{"start":{"line":334,"column":4},"end":{"line":354,"column":5}},"132":{"start":{"line":335,"column":6},"end":{"line":353,"column":7}},"133":{"start":{"line":337,"column":10},"end":{"line":337,"column":61}},"134":{"start":{"line":338,"column":10},"end":{"line":338,"column":16}},"135":{"start":{"line":340,"column":10},"end":{"line":340,"column":69}},"136":{"start":{"line":341,"column":10},"end":{"line":341,"column":16}},"137":{"start":{"line":343,"column":10},"end":{"line":343,"column":61}},"138":{"start":{"line":344,"column":10},"end":{"line":344,"column":16}},"139":{"start":{"line":346,"column":10},"end":{"line":346,"column":115}},"140":{"start":{"line":347,"column":10},"end":{"line":347,"column":16}},"141":{"start":{"line":349,"column":10},"end":{"line":349,"column":146}},"142":{"start":{"line":350,"column":10},"end":{"line":350,"column":16}},"143":{"start":{"line":352,"column":10},"end":{"line":352,"column":122}},"144":{"start":{"line":355,"column":4},"end":{"line":355,"column":19}},"145":{"start":{"line":360,"column":4},"end":{"line":360,"column":23}},"146":{"start":{"line":362,"column":4},"end":{"line":364,"column":5}},"147":{"start":{"line":363,"column":6},"end":{"line":363,"column":43}},"148":{"start":{"line":365,"column":4},"end":{"line":382,"column":5}},"149":{"start":{"line":366,"column":6},"end":{"line":381,"column":7}},"150":{"start":{"line":368,"column":10},"end":{"line":368,"column":82}},"151":{"start":{"line":369,"column":10},"end":{"line":369,"column":16}},"152":{"start":{"line":371,"column":10},"end":{"line":371,"column":86}},"153":{"start":{"line":372,"column":10},"end":{"line":372,"column":64}},"154":{"start":{"line":373,"column":10},"end":{"line":373,"column":61}},"155":{"start":{"line":374,"column":10},"end":{"line":374,"column":16}},"156":{"start":{"line":376,"column":10},"end":{"line":376,"column":54}},"157":{"start":{"line":377,"column":10},"end":{"line":377,"column":58}},"158":{"start":{"line":378,"column":10},"end":{"line":378,"column":56}},"159":{"start":{"line":379,"column":10},"end":{"line":379,"column":74}},"160":{"start":{"line":380,"column":10},"end":{"line":380,"column":16}},"161":{"start":{"line":383,"column":4},"end":{"line":383,"column":19}},"162":{"start":{"line":389,"column":2},"end":{"line":571,"column":3}},"163":{"start":{"line":391,"column":4},"end":{"line":397,"column":6}},"164":{"start":{"line":393,"column":6},"end":{"line":393,"column":68}},"165":{"start":{"line":394,"column":6},"end":{"line":396,"column":7}},"166":{"start":{"line":395,"column":8},"end":{"line":395,"column":76}},"167":{"start":{"line":401,"column":4},"end":{"line":477,"column":9}},"168":{"start":{"line":405,"column":6},"end":{"line":475,"column":8}},"169":{"start":{"line":406,"column":8},"end":{"line":406,"column":36}},"170":{"start":{"line":407,"column":8},"end":{"line":410,"column":30}},"171":{"start":{"line":408,"column":10},"end":{"line":408,"column":68}},"172":{"start":{"line":409,"column":10},"end":{"line":409,"column":62}},"173":{"start":{"line":411,"column":8},"end":{"line":411,"column":23}},"174":{"start":{"line":412,"column":8},"end":{"line":412,"column":22}},"175":{"start":{"line":428,"column":8},"end":{"line":428,"column":35}},"176":{"start":{"line":429,"column":8},"end":{"line":429,"column":81}},"177":{"start":{"line":434,"column":8},"end":{"line":434,"column":60}},"178":{"start":{"line":435,"column":8},"end":{"line":440,"column":9}},"179":{"start":{"line":436,"column":10},"end":{"line":436,"column":32}},"180":{"start":{"line":437,"column":10},"end":{"line":437,"column":28}},"181":{"start":{"line":439,"column":10},"end":{"line":439,"column":60}},"182":{"start":{"line":442,"column":8},"end":{"line":453,"column":9}},"183":{"start":{"line":443,"column":10},"end":{"line":443,"column":34}},"184":{"start":{"line":444,"column":10},"end":{"line":447,"column":11}},"185":{"start":{"line":445,"column":12},"end":{"line":445,"column":73}},"186":{"start":{"line":446,"column":12},"end":{"line":446,"column":35}},"187":{"start":{"line":448,"column":10},"end":{"line":451,"column":11}},"188":{"start":{"line":449,"column":12},"end":{"line":449,"column":73}},"189":{"start":{"line":450,"column":12},"end":{"line":450,"column":35}},"190":{"start":{"line":452,"column":10},"end":{"line":452,"column":25}},"191":{"start":{"line":454,"column":8},"end":{"line":454,"column":50}},"192":{"start":{"line":456,"column":8},"end":{"line":467,"column":9}},"193":{"start":{"line":457,"column":10},"end":{"line":463,"column":11}},"194":{"start":{"line":458,"column":12},"end":{"line":461,"column":15}},"195":{"start":{"line":460,"column":14},"end":{"line":460,"column":100}},"196":{"start":{"line":462,"column":12},"end":{"line":462,"column":36}},"197":{"start":{"line":464,"column":10},"end":{"line":466,"column":13}},"198":{"start":{"line":465,"column":12},"end":{"line":465,"column":38}},"199":{"start":{"line":469,"column":8},"end":{"line":473,"column":9}},"200":{"start":{"line":470,"column":10},"end":{"line":472,"column":13}},"201":{"start":{"line":471,"column":12},"end":{"line":471,"column":39}},"202":{"start":{"line":474,"column":8},"end":{"line":474,"column":23}},"203":{"start":{"line":476,"column":6},"end":{"line":476,"column":23}},"204":{"start":{"line":480,"column":4},"end":{"line":485,"column":6}},"205":{"start":{"line":481,"column":6},"end":{"line":483,"column":7}},"206":{"start":{"line":482,"column":8},"end":{"line":482,"column":48}},"207":{"start":{"line":484,"column":6},"end":{"line":484,"column":21}},"208":{"start":{"line":489,"column":4},"end":{"line":570,"column":6}},"209":{"start":{"line":490,"column":6},"end":{"line":568,"column":7}},"210":{"start":{"line":491,"column":8},"end":{"line":491,"column":72}},"211":{"start":{"line":492,"column":8},"end":{"line":494,"column":9}},"212":{"start":{"line":493,"column":10},"end":{"line":493,"column":53}},"213":{"start":{"line":495,"column":8},"end":{"line":497,"column":9}},"214":{"start":{"line":496,"column":10},"end":{"line":496,"column":80}},"215":{"start":{"line":498,"column":8},"end":{"line":567,"column":9}},"216":{"start":{"line":502,"column":12},"end":{"line":502,"column":34}},"217":{"start":{"line":504,"column":12},"end":{"line":512,"column":14}},"218":{"start":{"line":513,"column":12},"end":{"line":513,"column":18}},"219":{"start":{"line":517,"column":12},"end":{"line":519,"column":16}},"220":{"start":{"line":520,"column":12},"end":{"line":520,"column":18}},"221":{"start":{"line":523,"column":12},"end":{"line":523,"column":138}},"222":{"start":{"line":524,"column":12},"end":{"line":524,"column":18}},"223":{"start":{"line":528,"column":12},"end":{"line":528,"column":117}},"224":{"start":{"line":530,"column":12},"end":{"line":530,"column":162}},"225":{"start":{"line":532,"column":12},"end":{"line":532,"column":33}},"226":{"start":{"line":533,"column":12},"end":{"line":533,"column":18}},"227":{"start":{"line":537,"column":12},"end":{"line":541,"column":13}},"228":{"start":{"line":539,"column":14},"end":{"line":539,"column":107}},"229":{"start":{"line":540,"column":14},"end":{"line":540,"column":84}},"230":{"start":{"line":543,"column":12},"end":{"line":564,"column":17}},"231":{"start":{"line":566,"column":12},"end":{"line":566,"column":42}},"232":{"start":{"line":569,"column":6},"end":{"line":569,"column":21}},"233":{"start":{"line":574,"column":2},"end":{"line":574,"column":36}},"234":{"start":{"line":576,"column":2},"end":{"line":576,"column":17}}},"branchMap":{"1":{"line":10,"type":"binary-expr","locations":[{"start":{"line":10,"column":17},"end":{"line":10,"column":44}},{"start":{"line":10,"column":48},"end":{"line":10,"column":60}}]},"2":{"line":11,"type":"binary-expr","locations":[{"start":{"line":11,"column":13},"end":{"line":11,"column":41}},{"start":{"line":11,"column":45},"end":{"line":11,"column":71}},{"start":{"line":11,"column":75},"end":{"line":11,"column":82}},{"start":{"line":11,"column":86},"end":{"line":11,"column":95}}]},"3":{"line":14,"type":"binary-expr","locations":[{"start":{"line":14,"column":14},"end":{"line":14,"column":30}},{"start":{"line":14,"column":34},"end":{"line":14,"column":53}},{"start":{"line":14,"column":57},"end":{"line":14,"column":93}}]},"4":{"line":15,"type":"binary-expr","locations":[{"start":{"line":15,"column":13},"end":{"line":15,"column":23}},{"start":{"line":15,"column":27},"end":{"line":15,"column":36}},{"start":{"line":15,"column":40},"end":{"line":15,"column":70}}]},"5":{"line":24,"type":"if","locations":[{"start":{"line":24,"column":2},"end":{"line":24,"column":2}},{"start":{"line":24,"column":2},"end":{"line":24,"column":2}}]},"6":{"line":29,"type":"if","locations":[{"start":{"line":29,"column":9},"end":{"line":29,"column":9}},{"start":{"line":29,"column":9},"end":{"line":29,"column":9}}]},"7":{"line":35,"type":"binary-expr","locations":[{"start":{"line":35,"column":37},"end":{"line":35,"column":41}},{"start":{"line":35,"column":45},"end":{"line":35,"column":47}}]},"8":{"line":38,"type":"if","locations":[{"start":{"line":38,"column":4},"end":{"line":38,"column":4}},{"start":{"line":38,"column":4},"end":{"line":38,"column":4}}]},"9":{"line":50,"type":"binary-expr","locations":[{"start":{"line":50,"column":8},"end":{"line":50,"column":17}},{"start":{"line":50,"column":21},"end":{"line":50,"column":23}}]},"10":{"line":90,"type":"cond-expr","locations":[{"start":{"line":90,"column":57},"end":{"line":90,"column":72}},{"start":{"line":93,"column":10},"end":{"line":93,"column":94}}]},"11":{"line":93,"type":"cond-expr","locations":[{"start":{"line":93,"column":25},"end":{"line":93,"column":85}},{"start":{"line":93,"column":88},"end":{"line":93,"column":94}}]},"12":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":6},"end":{"line":101,"column":6}},{"start":{"line":101,"column":6},"end":{"line":101,"column":6}}]},"13":{"line":105,"type":"switch","locations":[{"start":{"line":106,"column":8},"end":{"line":106,"column":31}},{"start":{"line":107,"column":8},"end":{"line":110,"column":54}},{"start":{"line":111,"column":8},"end":{"line":113,"column":30}},{"start":{"line":114,"column":8},"end":{"line":129,"column":71}},{"start":{"line":130,"column":8},"end":{"line":131,"column":165}}]},"14":{"line":110,"type":"cond-expr","locations":[{"start":{"line":110,"column":34},"end":{"line":110,"column":40}},{"start":{"line":110,"column":43},"end":{"line":110,"column":53}}]},"15":{"line":115,"type":"if","locations":[{"start":{"line":115,"column":10},"end":{"line":115,"column":10}},{"start":{"line":115,"column":10},"end":{"line":115,"column":10}}]},"16":{"line":123,"type":"cond-expr","locations":[{"start":{"line":123,"column":51},"end":{"line":123,"column":109}},{"start":{"line":123,"column":112},"end":{"line":123,"column":135}}]},"17":{"line":123,"type":"binary-expr","locations":[{"start":{"line":123,"column":24},"end":{"line":123,"column":33}},{"start":{"line":123,"column":37},"end":{"line":123,"column":48}}]},"18":{"line":123,"type":"cond-expr","locations":[{"start":{"line":123,"column":63},"end":{"line":123,"column":66}},{"start":{"line":123,"column":69},"end":{"line":123,"column":72}}]},"19":{"line":134,"type":"if","locations":[{"start":{"line":134,"column":6},"end":{"line":134,"column":6}},{"start":{"line":134,"column":6},"end":{"line":134,"column":6}}]},"20":{"line":139,"type":"if","locations":[{"start":{"line":139,"column":10},"end":{"line":139,"column":10}},{"start":{"line":139,"column":10},"end":{"line":139,"column":10}}]},"21":{"line":146,"type":"if","locations":[{"start":{"line":146,"column":8},"end":{"line":146,"column":8}},{"start":{"line":146,"column":8},"end":{"line":146,"column":8}}]},"22":{"line":149,"type":"if","locations":[{"start":{"line":149,"column":12},"end":{"line":149,"column":12}},{"start":{"line":149,"column":12},"end":{"line":149,"column":12}}]},"23":{"line":183,"type":"if","locations":[{"start":{"line":183,"column":4},"end":{"line":183,"column":4}},{"start":{"line":183,"column":4},"end":{"line":183,"column":4}}]},"24":{"line":186,"type":"switch","locations":[{"start":{"line":187,"column":6},"end":{"line":187,"column":29}},{"start":{"line":188,"column":6},"end":{"line":188,"column":29}},{"start":{"line":189,"column":6},"end":{"line":190,"column":59}}]},"25":{"line":203,"type":"if","locations":[{"start":{"line":203,"column":6},"end":{"line":203,"column":6}},{"start":{"line":203,"column":6},"end":{"line":203,"column":6}}]},"26":{"line":203,"type":"binary-expr","locations":[{"start":{"line":203,"column":10},"end":{"line":203,"column":15}},{"start":{"line":203,"column":19},"end":{"line":203,"column":59}}]},"27":{"line":206,"type":"if","locations":[{"start":{"line":206,"column":10},"end":{"line":206,"column":10}},{"start":{"line":206,"column":10},"end":{"line":206,"column":10}}]},"28":{"line":210,"type":"if","locations":[{"start":{"line":210,"column":13},"end":{"line":210,"column":13}},{"start":{"line":210,"column":13},"end":{"line":210,"column":13}}]},"29":{"line":214,"type":"binary-expr","locations":[{"start":{"line":214,"column":23},"end":{"line":214,"column":32}},{"start":{"line":214,"column":36},"end":{"line":214,"column":39}}]},"30":{"line":226,"type":"if","locations":[{"start":{"line":226,"column":4},"end":{"line":226,"column":4}},{"start":{"line":226,"column":4},"end":{"line":226,"column":4}}]},"31":{"line":226,"type":"binary-expr","locations":[{"start":{"line":226,"column":8},"end":{"line":226,"column":24}},{"start":{"line":226,"column":28},"end":{"line":226,"column":37}},{"start":{"line":226,"column":41},"end":{"line":226,"column":133}}]},"32":{"line":226,"type":"binary-expr","locations":[{"start":{"line":226,"column":45},"end":{"line":226,"column":94}},{"start":{"line":226,"column":101},"end":{"line":226,"column":131}}]},"33":{"line":226,"type":"binary-expr","locations":[{"start":{"line":226,"column":62},"end":{"line":226,"column":70}},{"start":{"line":226,"column":74},"end":{"line":226,"column":82}}]},"34":{"line":229,"type":"binary-expr","locations":[{"start":{"line":229,"column":26},"end":{"line":229,"column":35}},{"start":{"line":229,"column":39},"end":{"line":229,"column":42}}]},"35":{"line":233,"type":"if","locations":[{"start":{"line":233,"column":6},"end":{"line":233,"column":6}},{"start":{"line":233,"column":6},"end":{"line":233,"column":6}}]},"36":{"line":233,"type":"binary-expr","locations":[{"start":{"line":233,"column":10},"end":{"line":233,"column":16}},{"start":{"line":233,"column":20},"end":{"line":233,"column":28}}]},"37":{"line":234,"type":"if","locations":[{"start":{"line":234,"column":8},"end":{"line":234,"column":8}},{"start":{"line":234,"column":8},"end":{"line":234,"column":8}}]},"38":{"line":236,"type":"if","locations":[{"start":{"line":236,"column":10},"end":{"line":236,"column":10}},{"start":{"line":236,"column":10},"end":{"line":236,"column":10}}]},"39":{"line":242,"type":"if","locations":[{"start":{"line":242,"column":8},"end":{"line":242,"column":8}},{"start":{"line":242,"column":8},"end":{"line":242,"column":8}}]},"40":{"line":243,"type":"if","locations":[{"start":{"line":243,"column":10},"end":{"line":243,"column":10}},{"start":{"line":243,"column":10},"end":{"line":243,"column":10}}]},"41":{"line":258,"type":"if","locations":[{"start":{"line":258,"column":4},"end":{"line":258,"column":4}},{"start":{"line":258,"column":4},"end":{"line":258,"column":4}}]},"42":{"line":261,"type":"switch","locations":[{"start":{"line":262,"column":6},"end":{"line":262,"column":29}},{"start":{"line":263,"column":6},"end":{"line":266,"column":39}},{"start":{"line":267,"column":6},"end":{"line":267,"column":30}},{"start":{"line":268,"column":6},"end":{"line":268,"column":31}},{"start":{"line":269,"column":6},"end":{"line":270,"column":21}},{"start":{"line":271,"column":6},"end":{"line":271,"column":29}},{"start":{"line":272,"column":6},"end":{"line":273,"column":29}},{"start":{"line":274,"column":6},"end":{"line":277,"column":18}}]},"43":{"line":266,"type":"binary-expr","locations":[{"start":{"line":266,"column":15},"end":{"line":266,"column":29}},{"start":{"line":266,"column":33},"end":{"line":266,"column":38}}]},"44":{"line":286,"type":"if","locations":[{"start":{"line":286,"column":4},"end":{"line":286,"column":4}},{"start":{"line":286,"column":4},"end":{"line":286,"column":4}}]},"45":{"line":286,"type":"binary-expr","locations":[{"start":{"line":286,"column":8},"end":{"line":286,"column":30}},{"start":{"line":286,"column":34},"end":{"line":286,"column":54}}]},"46":{"line":291,"type":"if","locations":[{"start":{"line":291,"column":6},"end":{"line":291,"column":6}},{"start":{"line":291,"column":6},"end":{"line":291,"column":6}}]},"47":{"line":293,"type":"if","locations":[{"start":{"line":293,"column":8},"end":{"line":293,"column":8}},{"start":{"line":293,"column":8},"end":{"line":293,"column":8}}]},"48":{"line":297,"type":"if","locations":[{"start":{"line":297,"column":10},"end":{"line":297,"column":10}},{"start":{"line":297,"column":10},"end":{"line":297,"column":10}}]},"49":{"line":299,"type":"switch","locations":[{"start":{"line":301,"column":14},"end":{"line":301,"column":23}},{"start":{"line":302,"column":14},"end":{"line":304,"column":22}},{"start":{"line":306,"column":14},"end":{"line":308,"column":22}},{"start":{"line":310,"column":14},"end":{"line":312,"column":22}},{"start":{"line":314,"column":14},"end":{"line":315,"column":46}}]},"50":{"line":303,"type":"binary-expr","locations":[{"start":{"line":303,"column":26},"end":{"line":303,"column":57}},{"start":{"line":303,"column":61},"end":{"line":303,"column":62}}]},"51":{"line":307,"type":"binary-expr","locations":[{"start":{"line":307,"column":26},"end":{"line":307,"column":46}},{"start":{"line":307,"column":50},"end":{"line":307,"column":51}}]},"52":{"line":335,"type":"switch","locations":[{"start":{"line":336,"column":8},"end":{"line":338,"column":16}},{"start":{"line":339,"column":8},"end":{"line":341,"column":16}},{"start":{"line":342,"column":8},"end":{"line":344,"column":16}},{"start":{"line":345,"column":8},"end":{"line":347,"column":16}},{"start":{"line":348,"column":8},"end":{"line":350,"column":16}},{"start":{"line":351,"column":8},"end":{"line":352,"column":122}}]},"53":{"line":366,"type":"switch","locations":[{"start":{"line":367,"column":8},"end":{"line":369,"column":16}},{"start":{"line":370,"column":8},"end":{"line":374,"column":16}},{"start":{"line":375,"column":8},"end":{"line":380,"column":16}}]},"54":{"line":389,"type":"if","locations":[{"start":{"line":389,"column":2},"end":{"line":389,"column":2}},{"start":{"line":389,"column":2},"end":{"line":389,"column":2}}]},"55":{"line":393,"type":"binary-expr","locations":[{"start":{"line":393,"column":19},"end":{"line":393,"column":34}},{"start":{"line":393,"column":38},"end":{"line":393,"column":67}}]},"56":{"line":394,"type":"if","locations":[{"start":{"line":394,"column":6},"end":{"line":394,"column":6}},{"start":{"line":394,"column":6},"end":{"line":394,"column":6}}]},"57":{"line":395,"type":"cond-expr","locations":[{"start":{"line":395,"column":64},"end":{"line":395,"column":66}},{"start":{"line":395,"column":69},"end":{"line":395,"column":75}}]},"58":{"line":409,"type":"binary-expr","locations":[{"start":{"line":409,"column":19},"end":{"line":409,"column":38}},{"start":{"line":409,"column":42},"end":{"line":409,"column":61}}]},"59":{"line":418,"type":"cond-expr","locations":[{"start":{"line":418,"column":71},"end":{"line":418,"column":83}},{"start":{"line":418,"column":86},"end":{"line":418,"column":96}}]},"60":{"line":435,"type":"if","locations":[{"start":{"line":435,"column":8},"end":{"line":435,"column":8}},{"start":{"line":435,"column":8},"end":{"line":435,"column":8}}]},"61":{"line":435,"type":"binary-expr","locations":[{"start":{"line":435,"column":12},"end":{"line":435,"column":22}},{"start":{"line":435,"column":26},"end":{"line":435,"column":71}}]},"62":{"line":442,"type":"if","locations":[{"start":{"line":442,"column":8},"end":{"line":442,"column":8}},{"start":{"line":442,"column":8},"end":{"line":442,"column":8}}]},"63":{"line":442,"type":"binary-expr","locations":[{"start":{"line":442,"column":12},"end":{"line":442,"column":25}},{"start":{"line":442,"column":29},"end":{"line":442,"column":58}}]},"64":{"line":444,"type":"if","locations":[{"start":{"line":444,"column":10},"end":{"line":444,"column":10}},{"start":{"line":444,"column":10},"end":{"line":444,"column":10}}]},"65":{"line":448,"type":"if","locations":[{"start":{"line":448,"column":10},"end":{"line":448,"column":10}},{"start":{"line":448,"column":10},"end":{"line":448,"column":10}}]},"66":{"line":456,"type":"if","locations":[{"start":{"line":456,"column":8},"end":{"line":456,"column":8}},{"start":{"line":456,"column":8},"end":{"line":456,"column":8}}]},"67":{"line":457,"type":"if","locations":[{"start":{"line":457,"column":10},"end":{"line":457,"column":10}},{"start":{"line":457,"column":10},"end":{"line":457,"column":10}}]},"68":{"line":460,"type":"cond-expr","locations":[{"start":{"line":460,"column":71},"end":{"line":460,"column":79}},{"start":{"line":460,"column":82},"end":{"line":460,"column":90}}]},"69":{"line":469,"type":"if","locations":[{"start":{"line":469,"column":8},"end":{"line":469,"column":8}},{"start":{"line":469,"column":8},"end":{"line":469,"column":8}}]},"70":{"line":492,"type":"if","locations":[{"start":{"line":492,"column":8},"end":{"line":492,"column":8}},{"start":{"line":492,"column":8},"end":{"line":492,"column":8}}]},"71":{"line":495,"type":"if","locations":[{"start":{"line":495,"column":8},"end":{"line":495,"column":8}},{"start":{"line":495,"column":8},"end":{"line":495,"column":8}}]},"72":{"line":498,"type":"switch","locations":[{"start":{"line":500,"column":10},"end":{"line":513,"column":18}},{"start":{"line":515,"column":10},"end":{"line":520,"column":18}},{"start":{"line":522,"column":10},"end":{"line":524,"column":18}},{"start":{"line":526,"column":10},"end":{"line":533,"column":18}},{"start":{"line":534,"column":10},"end":{"line":534,"column":27}},{"start":{"line":535,"column":10},"end":{"line":566,"column":42}}]},"73":{"line":523,"type":"cond-expr","locations":[{"start":{"line":523,"column":90},"end":{"line":523,"column":112}},{"start":{"line":523,"column":115},"end":{"line":523,"column":137}}]},"74":{"line":528,"type":"cond-expr","locations":[{"start":{"line":528,"column":63},"end":{"line":528,"column":88}},{"start":{"line":528,"column":91},"end":{"line":528,"column":116}}]},"75":{"line":537,"type":"if","locations":[{"start":{"line":537,"column":12},"end":{"line":537,"column":12}},{"start":{"line":537,"column":12},"end":{"line":537,"column":12}}]},"76":{"line":543,"type":"cond-expr","locations":[{"start":{"line":545,"column":14},"end":{"line":547,"column":16}},{"start":{"line":549,"column":14},"end":{"line":564,"column":16}}]}}},"/Users/kit/Dropbox/Projects/json3/lib/json3.js":{"path":"/Users/kit/Dropbox/Projects/json3/lib/json3.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":0,"10":1,"11":1,"12":1,"13":1,"14":3,"15":0,"16":3,"17":3,"18":0,"19":3,"20":1,"21":2,"22":2,"23":1,"24":1,"25":1,"26":4,"27":1,"28":1,"29":0,"30":1,"31":2,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":0,"48":1,"49":3,"50":1,"51":1,"52":1,"53":1,"54":1,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"309":0,"310":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":0,"337":0,"338":0,"339":0,"340":0,"341":0,"342":0,"343":0,"344":0,"345":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"354":0,"355":0,"356":0,"357":0,"358":0,"359":0,"360":0,"361":1,"362":0,"363":0},"b":{"1":[1,0],"2":[1,1],"3":[1,1,1,1],"4":[1,0],"5":[1,1],"6":[0,0],"7":[1,1,1,1,1,1,1],"8":[0,3],"9":[0,3],"10":[1,2],"11":[1,1],"12":[1,1],"13":[1,1],"14":[1,0],"15":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"16":[1,1],"17":[1,0],"18":[1,0],"19":[1,1],"20":[1,1],"21":[1,0],"22":[1,0],"23":[1,0],"24":[0,1],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0,0,0],"43":[0,0],"44":[0,0],"45":[0,0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,0],"50":[0,0],"51":[0,0],"52":[0,0],"53":[0,0,0,0,0,0,0,0],"54":[0,0],"55":[0,0],"56":[0,0],"57":[0,0],"58":[0,0],"59":[0,0],"60":[0,0],"61":[0,0],"62":[0,0],"63":[0,0],"64":[0,0],"65":[0,0],"66":[0,0],"67":[0,0],"68":[0,0],"69":[0,0,0,0,0],"70":[0,0],"71":[0,0],"72":[0,0],"73":[0,0],"74":[0,0],"75":[0,0],"76":[0,0],"77":[0,0],"78":[0,0],"79":[0,0],"80":[0,0],"81":[0,0],"82":[0,0],"83":[0,0],"84":[0,0],"85":[0,0],"86":[0,0],"87":[0,0],"88":[0,0],"89":[0,0],"90":[0,0],"91":[0,0,0],"92":[0,0],"93":[0,0],"94":[0,0,0],"95":[0,0],"96":[0,0],"97":[0,0],"98":[0,0],"99":[0,0],"100":[0,0],"101":[0,0,0,0,0,0,0,0,0,0,0,0],"102":[0,0],"103":[0,0],"104":[0,0],"105":[0,0,0,0,0,0,0,0,0,0],"106":[0,0],"107":[0,0,0,0,0,0],"108":[0,0],"109":[0,0,0],"110":[0,0],"111":[0,0],"112":[0,0],"113":[0,0],"114":[0,0],"115":[0,0],"116":[0,0],"117":[0,0],"118":[0,0],"119":[0,0],"120":[0,0],"121":[0,0],"122":[0,0],"123":[0,0],"124":[0,0],"125":[0,0],"126":[0,0],"127":[0,0],"128":[0,0],"129":[0,0],"130":[0,0],"131":[0,0],"132":[0,0],"133":[0,0],"134":[0,0],"135":[0,0],"136":[0,0],"137":[0,0],"138":[0,0],"139":[0,0],"140":[0,0],"141":[0,0],"142":[0,0],"143":[0,0],"144":[0,0],"145":[0,0],"146":[0,0],"147":[0,0],"148":[0,0],"149":[0,0],"150":[0,0],"151":[0,0],"152":[0,0,0,0],"153":[0,0],"154":[0,0],"155":[0,0],"156":[0,0],"157":[0,0],"158":[0,0],"159":[0,0],"160":[0,0],"161":[0,1]},"f":{"1":1,"2":3,"3":4,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0},"fnMap":{"1":{"name":"(anonymous_1)","line":2,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":20}}},"2":{"name":"has","line":42,"loc":{"start":{"line":42,"column":2},"end":{"line":42,"column":21}}},"3":{"name":"(anonymous_3)","line":64,"loc":{"start":{"line":64,"column":19},"end":{"line":64,"column":31}}},"4":{"name":"(anonymous_4)","line":196,"loc":{"start":{"line":196,"column":19},"end":{"line":196,"column":42}}},"5":{"name":"(anonymous_5)","line":204,"loc":{"start":{"line":204,"column":19},"end":{"line":204,"column":39}}},"6":{"name":"(anonymous_6)","line":213,"loc":{"start":{"line":213,"column":23},"end":{"line":213,"column":43}}},"7":{"name":"(anonymous_7)","line":227,"loc":{"start":{"line":227,"column":23},"end":{"line":227,"column":43}}},"8":{"name":"(anonymous_8)","line":247,"loc":{"start":{"line":247,"column":21},"end":{"line":247,"column":49}}},"9":{"name":"(anonymous_9)","line":254,"loc":{"start":{"line":254,"column":14},"end":{"line":254,"column":42}}},"10":{"name":"(anonymous_10)","line":260,"loc":{"start":{"line":260,"column":20},"end":{"line":260,"column":32}}},"11":{"name":"(anonymous_11)","line":280,"loc":{"start":{"line":280,"column":18},"end":{"line":280,"column":46}}},"12":{"name":"(anonymous_12)","line":295,"loc":{"start":{"line":295,"column":18},"end":{"line":295,"column":46}}},"13":{"name":"(anonymous_13)","line":309,"loc":{"start":{"line":309,"column":18},"end":{"line":309,"column":46}}},"14":{"name":"(anonymous_14)","line":347,"loc":{"start":{"line":347,"column":27},"end":{"line":347,"column":51}}},"15":{"name":"(anonymous_15)","line":358,"loc":{"start":{"line":358,"column":18},"end":{"line":358,"column":35}}},"16":{"name":"(anonymous_16)","line":384,"loc":{"start":{"line":384,"column":22},"end":{"line":384,"column":104}}},"17":{"name":"(anonymous_17)","line":491,"loc":{"start":{"line":491,"column":41},"end":{"line":491,"column":61}}},"18":{"name":"(anonymous_18)","line":513,"loc":{"start":{"line":513,"column":24},"end":{"line":513,"column":57}}},"19":{"name":"(anonymous_19)","line":563,"loc":{"start":{"line":563,"column":18},"end":{"line":563,"column":29}}},"20":{"name":"(anonymous_20)","line":571,"loc":{"start":{"line":571,"column":16},"end":{"line":571,"column":28}}},"21":{"name":"(anonymous_21)","line":729,"loc":{"start":{"line":729,"column":16},"end":{"line":729,"column":33}}},"22":{"name":"(anonymous_22)","line":812,"loc":{"start":{"line":812,"column":19},"end":{"line":812,"column":56}}},"23":{"name":"(anonymous_23)","line":824,"loc":{"start":{"line":824,"column":17},"end":{"line":824,"column":55}}},"24":{"name":"(anonymous_24)","line":835,"loc":{"start":{"line":835,"column":27},"end":{"line":835,"column":47}}},"25":{"name":"(anonymous_25)","line":844,"loc":{"start":{"line":844,"column":20},"end":{"line":844,"column":48}}},"26":{"name":"(anonymous_26)","line":862,"loc":{"start":{"line":862,"column":11},"end":{"line":862,"column":23}}}},"statementMap":{"1":{"start":{"line":2,"column":1},"end":{"line":866,"column":9}},"2":{"start":{"line":4,"column":2},"end":{"line":4,"column":57}},"3":{"start":{"line":8,"column":2},"end":{"line":8,"column":60}},"4":{"start":{"line":11,"column":2},"end":{"line":11,"column":51}},"5":{"start":{"line":15,"column":2},"end":{"line":15,"column":84}},"6":{"start":{"line":17,"column":2},"end":{"line":26,"column":3}},"7":{"start":{"line":20,"column":4},"end":{"line":20,"column":43}},"8":{"start":{"line":21,"column":4},"end":{"line":21,"column":35}},"9":{"start":{"line":25,"column":4},"end":{"line":25,"column":43}},"10":{"start":{"line":29,"column":2},"end":{"line":29,"column":47}},"11":{"start":{"line":30,"column":2},"end":{"line":38,"column":24}},"12":{"start":{"line":33,"column":4},"end":{"line":37,"column":150}},"13":{"start":{"line":42,"column":2},"end":{"line":170,"column":3}},"14":{"start":{"line":43,"column":4},"end":{"line":46,"column":5}},"15":{"start":{"line":45,"column":6},"end":{"line":45,"column":23}},"16":{"start":{"line":48,"column":4},"end":{"line":48,"column":20}},"17":{"start":{"line":49,"column":4},"end":{"line":168,"column":5}},"18":{"start":{"line":52,"column":6},"end":{"line":52,"column":34}},"19":{"start":{"line":53,"column":11},"end":{"line":168,"column":5}},"20":{"start":{"line":56,"column":6},"end":{"line":56,"column":63}},"21":{"start":{"line":58,"column":6},"end":{"line":58,"column":83}},"22":{"start":{"line":60,"column":6},"end":{"line":126,"column":7}},"23":{"start":{"line":61,"column":8},"end":{"line":61,"column":107}},"24":{"start":{"line":62,"column":8},"end":{"line":124,"column":9}},"25":{"start":{"line":64,"column":10},"end":{"line":66,"column":28}},"26":{"start":{"line":65,"column":12},"end":{"line":65,"column":21}},"27":{"start":{"line":67,"column":10},"end":{"line":123,"column":11}},"28":{"start":{"line":68,"column":12},"end":{"line":120,"column":70}},"29":{"start":{"line":122,"column":12},"end":{"line":122,"column":39}},"30":{"start":{"line":125,"column":8},"end":{"line":125,"column":41}},"31":{"start":{"line":128,"column":6},"end":{"line":167,"column":7}},"32":{"start":{"line":129,"column":8},"end":{"line":129,"column":32}},"33":{"start":{"line":130,"column":8},"end":{"line":165,"column":9}},"34":{"start":{"line":131,"column":10},"end":{"line":164,"column":11}},"35":{"start":{"line":135,"column":12},"end":{"line":161,"column":13}},"36":{"start":{"line":137,"column":14},"end":{"line":137,"column":40}},"37":{"start":{"line":138,"column":14},"end":{"line":138,"column":81}},"38":{"start":{"line":139,"column":14},"end":{"line":160,"column":15}},"39":{"start":{"line":140,"column":16},"end":{"line":143,"column":38}},"40":{"start":{"line":142,"column":18},"end":{"line":142,"column":50}},"41":{"start":{"line":144,"column":16},"end":{"line":151,"column":17}},"42":{"start":{"line":145,"column":18},"end":{"line":150,"column":40}},"43":{"start":{"line":149,"column":20},"end":{"line":149,"column":55}},"44":{"start":{"line":152,"column":16},"end":{"line":159,"column":17}},"45":{"start":{"line":153,"column":18},"end":{"line":158,"column":40}},"46":{"start":{"line":157,"column":20},"end":{"line":157,"column":55}},"47":{"start":{"line":163,"column":12},"end":{"line":163,"column":35}},"48":{"start":{"line":166,"column":8},"end":{"line":166,"column":37}},"49":{"start":{"line":169,"column":4},"end":{"line":169,"column":37}},"50":{"start":{"line":171,"column":2},"end":{"line":171,"column":38}},"51":{"start":{"line":172,"column":2},"end":{"line":172,"column":21}},"52":{"start":{"line":173,"column":2},"end":{"line":173,"column":31}},"53":{"start":{"line":174,"column":2},"end":{"line":174,"column":27}},"54":{"start":{"line":176,"column":2},"end":{"line":858,"column":3}},"55":{"start":{"line":178,"column":4},"end":{"line":178,"column":44}},"56":{"start":{"line":179,"column":4},"end":{"line":179,"column":36}},"57":{"start":{"line":180,"column":4},"end":{"line":180,"column":40}},"58":{"start":{"line":181,"column":4},"end":{"line":181,"column":40}},"59":{"start":{"line":182,"column":4},"end":{"line":182,"column":38}},"60":{"start":{"line":183,"column":4},"end":{"line":183,"column":42}},"61":{"start":{"line":186,"column":4},"end":{"line":186,"column":54}},"62":{"start":{"line":189,"column":4},"end":{"line":199,"column":5}},"63":{"start":{"line":190,"column":6},"end":{"line":190,"column":29}},"64":{"start":{"line":193,"column":6},"end":{"line":193,"column":75}},"65":{"start":{"line":196,"column":6},"end":{"line":198,"column":8}},"66":{"start":{"line":197,"column":8},"end":{"line":197,"column":177}},"67":{"start":{"line":203,"column":4},"end":{"line":235,"column":5}},"68":{"start":{"line":204,"column":6},"end":{"line":234,"column":8}},"69":{"start":{"line":205,"column":8},"end":{"line":205,"column":38}},"70":{"start":{"line":206,"column":8},"end":{"line":231,"column":9}},"71":{"start":{"line":213,"column":10},"end":{"line":221,"column":12}},"72":{"start":{"line":217,"column":12},"end":{"line":217,"column":94}},"73":{"start":{"line":219,"column":12},"end":{"line":219,"column":38}},"74":{"start":{"line":220,"column":12},"end":{"line":220,"column":26}},"75":{"start":{"line":224,"column":10},"end":{"line":224,"column":44}},"76":{"start":{"line":227,"column":10},"end":{"line":230,"column":12}},"77":{"start":{"line":228,"column":12},"end":{"line":228,"column":69}},"78":{"start":{"line":229,"column":12},"end":{"line":229,"column":100}},"79":{"start":{"line":232,"column":8},"end":{"line":232,"column":23}},"80":{"start":{"line":233,"column":8},"end":{"line":233,"column":47}},"81":{"start":{"line":238,"column":4},"end":{"line":243,"column":6}},"82":{"start":{"line":247,"column":4},"end":{"line":250,"column":6}},"83":{"start":{"line":248,"column":6},"end":{"line":248,"column":41}},"84":{"start":{"line":249,"column":6},"end":{"line":249,"column":75}},"85":{"start":{"line":254,"column":4},"end":{"line":324,"column":6}},"86":{"start":{"line":255,"column":6},"end":{"line":255,"column":50}},"87":{"start":{"line":260,"column":6},"end":{"line":262,"column":31}},"88":{"start":{"line":261,"column":8},"end":{"line":261,"column":25}},"89":{"start":{"line":265,"column":6},"end":{"line":265,"column":33}},"90":{"start":{"line":266,"column":6},"end":{"line":271,"column":7}},"91":{"start":{"line":268,"column":8},"end":{"line":270,"column":9}},"92":{"start":{"line":269,"column":10},"end":{"line":269,"column":17}},"93":{"start":{"line":272,"column":6},"end":{"line":272,"column":34}},"94":{"start":{"line":275,"column":6},"end":{"line":322,"column":7}},"95":{"start":{"line":277,"column":8},"end":{"line":277,"column":134}},"96":{"start":{"line":280,"column":8},"end":{"line":292,"column":10}},"97":{"start":{"line":281,"column":10},"end":{"line":281,"column":84}},"98":{"start":{"line":282,"column":10},"end":{"line":282,"column":160}},"99":{"start":{"line":283,"column":10},"end":{"line":289,"column":11}},"100":{"start":{"line":286,"column":12},"end":{"line":288,"column":13}},"101":{"start":{"line":287,"column":14},"end":{"line":287,"column":33}},"102":{"start":{"line":291,"column":10},"end":{"line":291,"column":128}},"103":{"start":{"line":293,"column":13},"end":{"line":322,"column":7}},"104":{"start":{"line":295,"column":8},"end":{"line":306,"column":10}},"105":{"start":{"line":297,"column":10},"end":{"line":297,"column":90}},"106":{"start":{"line":298,"column":10},"end":{"line":305,"column":11}},"107":{"start":{"line":302,"column":12},"end":{"line":304,"column":13}},"108":{"start":{"line":303,"column":14},"end":{"line":303,"column":33}},"109":{"start":{"line":309,"column":8},"end":{"line":321,"column":10}},"110":{"start":{"line":310,"column":10},"end":{"line":310,"column":91}},"111":{"start":{"line":311,"column":10},"end":{"line":315,"column":11}},"112":{"start":{"line":312,"column":12},"end":{"line":314,"column":13}},"113":{"start":{"line":313,"column":14},"end":{"line":313,"column":33}},"114":{"start":{"line":318,"column":10},"end":{"line":320,"column":11}},"115":{"start":{"line":319,"column":12},"end":{"line":319,"column":31}},"116":{"start":{"line":323,"column":6},"end":{"line":323,"column":39}},"117":{"start":{"line":332,"column":4},"end":{"line":540,"column":5}},"118":{"start":{"line":334,"column":6},"end":{"line":342,"column":8}},"119":{"start":{"line":346,"column":6},"end":{"line":346,"column":35}},"120":{"start":{"line":347,"column":6},"end":{"line":351,"column":8}},"121":{"start":{"line":350,"column":8},"end":{"line":350,"column":60}},"122":{"start":{"line":357,"column":6},"end":{"line":357,"column":34}},"123":{"start":{"line":358,"column":6},"end":{"line":380,"column":8}},"124":{"start":{"line":359,"column":8},"end":{"line":359,"column":109}},"125":{"start":{"line":360,"column":8},"end":{"line":362,"column":9}},"126":{"start":{"line":361,"column":10},"end":{"line":361,"column":36}},"127":{"start":{"line":363,"column":8},"end":{"line":378,"column":9}},"128":{"start":{"line":364,"column":10},"end":{"line":364,"column":49}},"129":{"start":{"line":367,"column":10},"end":{"line":377,"column":11}},"130":{"start":{"line":369,"column":14},"end":{"line":369,"column":42}},"131":{"start":{"line":370,"column":14},"end":{"line":370,"column":20}},"132":{"start":{"line":372,"column":14},"end":{"line":375,"column":15}},"133":{"start":{"line":373,"column":16},"end":{"line":373,"column":83}},"134":{"start":{"line":374,"column":16},"end":{"line":374,"column":22}},"135":{"start":{"line":376,"column":14},"end":{"line":376,"column":103}},"136":{"start":{"line":379,"column":8},"end":{"line":379,"column":28}},"137":{"start":{"line":384,"column":6},"end":{"line":510,"column":8}},"138":{"start":{"line":385,"column":8},"end":{"line":385,"column":154}},"139":{"start":{"line":386,"column":8},"end":{"line":389,"column":30}},"140":{"start":{"line":388,"column":10},"end":{"line":388,"column":35}},"141":{"start":{"line":390,"column":8},"end":{"line":443,"column":9}},"142":{"start":{"line":391,"column":10},"end":{"line":391,"column":43}},"143":{"start":{"line":392,"column":10},"end":{"line":442,"column":11}},"144":{"start":{"line":393,"column":12},"end":{"line":435,"column":13}},"145":{"start":{"line":397,"column":14},"end":{"line":424,"column":15}},"146":{"start":{"line":401,"column":16},"end":{"line":401,"column":44}},"147":{"start":{"line":402,"column":16},"end":{"line":402,"column":100}},"148":{"start":{"line":403,"column":16},"end":{"line":403,"column":112}},"149":{"start":{"line":404,"column":16},"end":{"line":404,"column":54}},"150":{"start":{"line":409,"column":16},"end":{"line":409,"column":55}},"151":{"start":{"line":412,"column":16},"end":{"line":412,"column":48}},"152":{"start":{"line":413,"column":16},"end":{"line":413,"column":49}},"153":{"start":{"line":414,"column":16},"end":{"line":414,"column":49}},"154":{"start":{"line":415,"column":16},"end":{"line":415,"column":42}},"155":{"start":{"line":417,"column":16},"end":{"line":417,"column":46}},"156":{"start":{"line":418,"column":16},"end":{"line":418,"column":44}},"157":{"start":{"line":419,"column":16},"end":{"line":419,"column":42}},"158":{"start":{"line":420,"column":16},"end":{"line":420,"column":44}},"159":{"start":{"line":421,"column":16},"end":{"line":421,"column":48}},"160":{"start":{"line":422,"column":16},"end":{"line":422,"column":48}},"161":{"start":{"line":423,"column":16},"end":{"line":423,"column":58}},"162":{"start":{"line":426,"column":14},"end":{"line":432,"column":60}},"163":{"start":{"line":434,"column":14},"end":{"line":434,"column":27}},"164":{"start":{"line":436,"column":17},"end":{"line":442,"column":11}},"165":{"start":{"line":441,"column":12},"end":{"line":441,"column":43}},"166":{"start":{"line":444,"column":8},"end":{"line":448,"column":9}},"167":{"start":{"line":447,"column":10},"end":{"line":447,"column":57}},"168":{"start":{"line":449,"column":8},"end":{"line":451,"column":9}},"169":{"start":{"line":450,"column":10},"end":{"line":450,"column":24}},"170":{"start":{"line":452,"column":8},"end":{"line":452,"column":41}},"171":{"start":{"line":453,"column":8},"end":{"line":463,"column":9}},"172":{"start":{"line":455,"column":10},"end":{"line":455,"column":28}},"173":{"start":{"line":456,"column":15},"end":{"line":463,"column":9}},"174":{"start":{"line":459,"column":10},"end":{"line":459,"column":71}},"175":{"start":{"line":460,"column":15},"end":{"line":463,"column":9}},"176":{"start":{"line":462,"column":10},"end":{"line":462,"column":35}},"177":{"start":{"line":465,"column":8},"end":{"line":509,"column":9}},"178":{"start":{"line":468,"column":10},"end":{"line":473,"column":11}},"179":{"start":{"line":469,"column":12},"end":{"line":472,"column":13}},"180":{"start":{"line":471,"column":14},"end":{"line":471,"column":32}},"181":{"start":{"line":475,"column":10},"end":{"line":475,"column":28}},"182":{"start":{"line":476,"column":10},"end":{"line":476,"column":23}},"183":{"start":{"line":478,"column":10},"end":{"line":478,"column":31}},"184":{"start":{"line":479,"column":10},"end":{"line":479,"column":36}},"185":{"start":{"line":480,"column":10},"end":{"line":505,"column":11}},"186":{"start":{"line":482,"column":12},"end":{"line":485,"column":13}},"187":{"start":{"line":483,"column":14},"end":{"line":483,"column":102}},"188":{"start":{"line":484,"column":14},"end":{"line":484,"column":65}},"189":{"start":{"line":486,"column":12},"end":{"line":486,"column":168}},"190":{"start":{"line":491,"column":12},"end":{"line":503,"column":15}},"191":{"start":{"line":492,"column":14},"end":{"line":492,"column":109}},"192":{"start":{"line":493,"column":14},"end":{"line":501,"column":15}},"193":{"start":{"line":500,"column":16},"end":{"line":500,"column":88}},"194":{"start":{"line":502,"column":14},"end":{"line":502,"column":48}},"195":{"start":{"line":504,"column":12},"end":{"line":504,"column":168}},"196":{"start":{"line":507,"column":10},"end":{"line":507,"column":22}},"197":{"start":{"line":508,"column":10},"end":{"line":508,"column":24}},"198":{"start":{"line":513,"column":6},"end":{"line":539,"column":8}},"199":{"start":{"line":514,"column":8},"end":{"line":514,"column":56}},"200":{"start":{"line":515,"column":8},"end":{"line":523,"column":9}},"201":{"start":{"line":516,"column":10},"end":{"line":522,"column":11}},"202":{"start":{"line":517,"column":12},"end":{"line":517,"column":30}},"203":{"start":{"line":518,"column":17},"end":{"line":522,"column":11}},"204":{"start":{"line":520,"column":12},"end":{"line":520,"column":28}},"205":{"start":{"line":521,"column":12},"end":{"line":521,"column":211}},"206":{"start":{"line":524,"column":8},"end":{"line":534,"column":9}},"207":{"start":{"line":525,"column":10},"end":{"line":533,"column":11}},"208":{"start":{"line":528,"column":12},"end":{"line":530,"column":13}},"209":{"start":{"line":529,"column":14},"end":{"line":529,"column":110}},"210":{"start":{"line":531,"column":17},"end":{"line":533,"column":11}},"211":{"start":{"line":532,"column":12},"end":{"line":532,"column":73}},"212":{"start":{"line":538,"column":8},"end":{"line":538,"column":112}},"213":{"start":{"line":543,"column":4},"end":{"line":857,"column":5}},"214":{"start":{"line":544,"column":6},"end":{"line":544,"column":45}},"215":{"start":{"line":548,"column":6},"end":{"line":557,"column":8}},"216":{"start":{"line":560,"column":6},"end":{"line":560,"column":24}},"217":{"start":{"line":563,"column":6},"end":{"line":566,"column":8}},"218":{"start":{"line":564,"column":8},"end":{"line":564,"column":30}},"219":{"start":{"line":565,"column":8},"end":{"line":565,"column":28}},"220":{"start":{"line":571,"column":6},"end":{"line":726,"column":8}},"221":{"start":{"line":572,"column":8},"end":{"line":572,"column":96}},"222":{"start":{"line":573,"column":8},"end":{"line":722,"column":9}},"223":{"start":{"line":574,"column":10},"end":{"line":574,"column":46}},"224":{"start":{"line":575,"column":10},"end":{"line":721,"column":11}},"225":{"start":{"line":579,"column":14},"end":{"line":579,"column":22}},"226":{"start":{"line":580,"column":14},"end":{"line":580,"column":20}},"227":{"start":{"line":584,"column":14},"end":{"line":584,"column":76}},"228":{"start":{"line":585,"column":14},"end":{"line":585,"column":22}},"229":{"start":{"line":586,"column":14},"end":{"line":586,"column":27}},"230":{"start":{"line":592,"column":14},"end":{"line":645,"column":15}},"231":{"start":{"line":593,"column":16},"end":{"line":593,"column":52}},"232":{"start":{"line":594,"column":16},"end":{"line":644,"column":17}},"233":{"start":{"line":597,"column":18},"end":{"line":597,"column":26}},"234":{"start":{"line":598,"column":23},"end":{"line":644,"column":17}},"235":{"start":{"line":602,"column":18},"end":{"line":602,"column":56}},"236":{"start":{"line":603,"column":18},"end":{"line":629,"column":19}},"237":{"start":{"line":606,"column":22},"end":{"line":606,"column":51}},"238":{"start":{"line":607,"column":22},"end":{"line":607,"column":30}},"239":{"start":{"line":608,"column":22},"end":{"line":608,"column":28}},"240":{"start":{"line":613,"column":22},"end":{"line":613,"column":38}},"241":{"start":{"line":614,"column":22},"end":{"line":622,"column":23}},"242":{"start":{"line":615,"column":24},"end":{"line":615,"column":60}},"243":{"start":{"line":618,"column":24},"end":{"line":621,"column":25}},"244":{"start":{"line":620,"column":26},"end":{"line":620,"column":34}},"245":{"start":{"line":624,"column":22},"end":{"line":624,"column":79}},"246":{"start":{"line":625,"column":22},"end":{"line":625,"column":28}},"247":{"start":{"line":628,"column":22},"end":{"line":628,"column":30}},"248":{"start":{"line":631,"column":18},"end":{"line":635,"column":19}},"249":{"start":{"line":634,"column":20},"end":{"line":634,"column":26}},"250":{"start":{"line":636,"column":18},"end":{"line":636,"column":54}},"251":{"start":{"line":637,"column":18},"end":{"line":637,"column":32}},"252":{"start":{"line":639,"column":18},"end":{"line":641,"column":19}},"253":{"start":{"line":640,"column":20},"end":{"line":640,"column":58}},"254":{"start":{"line":643,"column":18},"end":{"line":643,"column":54}},"255":{"start":{"line":646,"column":14},"end":{"line":650,"column":15}},"256":{"start":{"line":648,"column":16},"end":{"line":648,"column":24}},"257":{"start":{"line":649,"column":16},"end":{"line":649,"column":29}},"258":{"start":{"line":652,"column":14},"end":{"line":652,"column":22}},"259":{"start":{"line":655,"column":14},"end":{"line":655,"column":28}},"260":{"start":{"line":657,"column":14},"end":{"line":660,"column":15}},"261":{"start":{"line":658,"column":16},"end":{"line":658,"column":32}},"262":{"start":{"line":659,"column":16},"end":{"line":659,"column":54}},"263":{"start":{"line":662,"column":14},"end":{"line":703,"column":15}},"264":{"start":{"line":664,"column":16},"end":{"line":667,"column":17}},"265":{"start":{"line":666,"column":18},"end":{"line":666,"column":26}},"266":{"start":{"line":668,"column":16},"end":{"line":668,"column":33}},"267":{"start":{"line":670,"column":16},"end":{"line":670,"column":125}},"268":{"start":{"line":673,"column":16},"end":{"line":682,"column":17}},"269":{"start":{"line":674,"column":18},"end":{"line":674,"column":37}},"270":{"start":{"line":676,"column":18},"end":{"line":676,"column":136}},"271":{"start":{"line":677,"column":18},"end":{"line":680,"column":19}},"272":{"start":{"line":679,"column":20},"end":{"line":679,"column":28}},"273":{"start":{"line":681,"column":18},"end":{"line":681,"column":35}},"274":{"start":{"line":685,"column":16},"end":{"line":685,"column":52}},"275":{"start":{"line":686,"column":16},"end":{"line":700,"column":17}},"276":{"start":{"line":687,"column":18},"end":{"line":687,"column":56}},"277":{"start":{"line":690,"column":18},"end":{"line":692,"column":19}},"278":{"start":{"line":691,"column":20},"end":{"line":691,"column":28}},"279":{"start":{"line":694,"column":18},"end":{"line":694,"column":152}},"280":{"start":{"line":695,"column":18},"end":{"line":698,"column":19}},"281":{"start":{"line":697,"column":20},"end":{"line":697,"column":28}},"282":{"start":{"line":699,"column":18},"end":{"line":699,"column":35}},"283":{"start":{"line":702,"column":16},"end":{"line":702,"column":51}},"284":{"start":{"line":705,"column":14},"end":{"line":707,"column":15}},"285":{"start":{"line":706,"column":16},"end":{"line":706,"column":24}},"286":{"start":{"line":709,"column":14},"end":{"line":718,"column":15}},"287":{"start":{"line":710,"column":16},"end":{"line":710,"column":27}},"288":{"start":{"line":711,"column":16},"end":{"line":711,"column":28}},"289":{"start":{"line":712,"column":21},"end":{"line":718,"column":15}},"290":{"start":{"line":713,"column":16},"end":{"line":713,"column":27}},"291":{"start":{"line":714,"column":16},"end":{"line":714,"column":29}},"292":{"start":{"line":715,"column":21},"end":{"line":718,"column":15}},"293":{"start":{"line":716,"column":16},"end":{"line":716,"column":27}},"294":{"start":{"line":717,"column":16},"end":{"line":717,"column":28}},"295":{"start":{"line":720,"column":14},"end":{"line":720,"column":22}},"296":{"start":{"line":725,"column":8},"end":{"line":725,"column":19}},"297":{"start":{"line":729,"column":6},"end":{"line":809,"column":8}},"298":{"start":{"line":730,"column":8},"end":{"line":730,"column":32}},"299":{"start":{"line":731,"column":8},"end":{"line":734,"column":9}},"300":{"start":{"line":733,"column":10},"end":{"line":733,"column":18}},"301":{"start":{"line":735,"column":8},"end":{"line":807,"column":9}},"302":{"start":{"line":736,"column":10},"end":{"line":739,"column":11}},"303":{"start":{"line":738,"column":12},"end":{"line":738,"column":34}},"304":{"start":{"line":741,"column":10},"end":{"line":804,"column":11}},"305":{"start":{"line":743,"column":12},"end":{"line":743,"column":25}},"306":{"start":{"line":744,"column":12},"end":{"line":770,"column":13}},"307":{"start":{"line":745,"column":14},"end":{"line":745,"column":28}},"308":{"start":{"line":747,"column":14},"end":{"line":749,"column":15}},"309":{"start":{"line":748,"column":16},"end":{"line":748,"column":22}},"310":{"start":{"line":753,"column":14},"end":{"line":764,"column":15}},"311":{"start":{"line":754,"column":16},"end":{"line":763,"column":17}},"312":{"start":{"line":755,"column":18},"end":{"line":755,"column":32}},"313":{"start":{"line":756,"column":18},"end":{"line":759,"column":19}},"314":{"start":{"line":758,"column":20},"end":{"line":758,"column":28}},"315":{"start":{"line":762,"column":18},"end":{"line":762,"column":26}},"316":{"start":{"line":766,"column":14},"end":{"line":768,"column":15}},"317":{"start":{"line":767,"column":16},"end":{"line":767,"column":24}},"318":{"start":{"line":769,"column":14},"end":{"line":769,"column":39}},"319":{"start":{"line":771,"column":12},"end":{"line":771,"column":27}},"320":{"start":{"line":772,"column":17},"end":{"line":804,"column":11}},"321":{"start":{"line":774,"column":12},"end":{"line":774,"column":25}},"322":{"start":{"line":775,"column":12},"end":{"line":802,"column":13}},"323":{"start":{"line":776,"column":14},"end":{"line":776,"column":28}},"324":{"start":{"line":778,"column":14},"end":{"line":780,"column":15}},"325":{"start":{"line":779,"column":16},"end":{"line":779,"column":22}},"326":{"start":{"line":783,"column":14},"end":{"line":794,"column":15}},"327":{"start":{"line":784,"column":16},"end":{"line":793,"column":17}},"328":{"start":{"line":785,"column":18},"end":{"line":785,"column":32}},"329":{"start":{"line":786,"column":18},"end":{"line":789,"column":19}},"330":{"start":{"line":788,"column":20},"end":{"line":788,"column":28}},"331":{"start":{"line":792,"column":18},"end":{"line":792,"column":26}},"332":{"start":{"line":798,"column":14},"end":{"line":800,"column":15}},"333":{"start":{"line":799,"column":16},"end":{"line":799,"column":24}},"334":{"start":{"line":801,"column":14},"end":{"line":801,"column":51}},"335":{"start":{"line":803,"column":12},"end":{"line":803,"column":27}},"336":{"start":{"line":806,"column":10},"end":{"line":806,"column":18}},"337":{"start":{"line":808,"column":8},"end":{"line":808,"column":21}},"338":{"start":{"line":812,"column":6},"end":{"line":819,"column":8}},"339":{"start":{"line":813,"column":8},"end":{"line":813,"column":55}},"340":{"start":{"line":814,"column":8},"end":{"line":818,"column":9}},"341":{"start":{"line":815,"column":10},"end":{"line":815,"column":34}},"342":{"start":{"line":817,"column":10},"end":{"line":817,"column":37}},"343":{"start":{"line":824,"column":6},"end":{"line":841,"column":8}},"344":{"start":{"line":825,"column":8},"end":{"line":825,"column":45}},"345":{"start":{"line":826,"column":8},"end":{"line":839,"column":9}},"346":{"start":{"line":830,"column":10},"end":{"line":838,"column":11}},"347":{"start":{"line":831,"column":12},"end":{"line":833,"column":13}},"348":{"start":{"line":832,"column":14},"end":{"line":832,"column":46}},"349":{"start":{"line":835,"column":12},"end":{"line":837,"column":15}},"350":{"start":{"line":836,"column":14},"end":{"line":836,"column":48}},"351":{"start":{"line":840,"column":8},"end":{"line":840,"column":54}},"352":{"start":{"line":844,"column":6},"end":{"line":856,"column":8}},"353":{"start":{"line":845,"column":8},"end":{"line":845,"column":26}},"354":{"start":{"line":846,"column":8},"end":{"line":846,"column":18}},"355":{"start":{"line":847,"column":8},"end":{"line":847,"column":29}},"356":{"start":{"line":848,"column":8},"end":{"line":848,"column":28}},"357":{"start":{"line":850,"column":8},"end":{"line":852,"column":9}},"358":{"start":{"line":851,"column":10},"end":{"line":851,"column":18}},"359":{"start":{"line":854,"column":8},"end":{"line":854,"column":30}},"360":{"start":{"line":855,"column":8},"end":{"line":855,"column":139}},"361":{"start":{"line":861,"column":2},"end":{"line":865,"column":3}},"362":{"start":{"line":862,"column":4},"end":{"line":864,"column":7}},"363":{"start":{"line":863,"column":6},"end":{"line":863,"column":19}}},"branchMap":{"1":{"line":8,"type":"binary-expr","locations":[{"start":{"line":8,"column":17},"end":{"line":8,"column":45}},{"start":{"line":8,"column":49},"end":{"line":8,"column":59}}]},"2":{"line":11,"type":"binary-expr","locations":[{"start":{"line":11,"column":19},"end":{"line":11,"column":42}},{"start":{"line":11,"column":46},"end":{"line":11,"column":50}}]},"3":{"line":15,"type":"binary-expr","locations":[{"start":{"line":15,"column":14},"end":{"line":15,"column":40}},{"start":{"line":15,"column":44},"end":{"line":15,"column":51}},{"start":{"line":15,"column":55},"end":{"line":15,"column":72}},{"start":{"line":15,"column":76},"end":{"line":15,"column":83}}]},"4":{"line":17,"type":"if","locations":[{"start":{"line":17,"column":2},"end":{"line":17,"column":2}},{"start":{"line":17,"column":2},"end":{"line":17,"column":2}}]},"5":{"line":17,"type":"binary-expr","locations":[{"start":{"line":17,"column":6},"end":{"line":17,"column":11}},{"start":{"line":17,"column":15},"end":{"line":17,"column":25}}]},"6":{"line":25,"type":"binary-expr","locations":[{"start":{"line":25,"column":26},"end":{"line":25,"column":36}},{"start":{"line":25,"column":40},"end":{"line":25,"column":42}}]},"7":{"line":33,"type":"binary-expr","locations":[{"start":{"line":33,"column":17},"end":{"line":33,"column":55}},{"start":{"line":33,"column":59},"end":{"line":33,"column":89}},{"start":{"line":33,"column":93},"end":{"line":33,"column":122}},{"start":{"line":37,"column":6},"end":{"line":37,"column":36}},{"start":{"line":37,"column":40},"end":{"line":37,"column":72}},{"start":{"line":37,"column":76},"end":{"line":37,"column":107}},{"start":{"line":37,"column":111},"end":{"line":37,"column":149}}]},"8":{"line":43,"type":"if","locations":[{"start":{"line":43,"column":4},"end":{"line":43,"column":4}},{"start":{"line":43,"column":4},"end":{"line":43,"column":4}}]},"9":{"line":49,"type":"if","locations":[{"start":{"line":49,"column":4},"end":{"line":49,"column":4}},{"start":{"line":49,"column":4},"end":{"line":49,"column":4}}]},"10":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":11},"end":{"line":53,"column":11}},{"start":{"line":53,"column":11},"end":{"line":53,"column":11}}]},"11":{"line":56,"type":"binary-expr","locations":[{"start":{"line":56,"column":20},"end":{"line":56,"column":41}},{"start":{"line":56,"column":45},"end":{"line":56,"column":62}}]},"12":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":6},"end":{"line":60,"column":6}},{"start":{"line":60,"column":6},"end":{"line":60,"column":6}}]},"13":{"line":61,"type":"binary-expr","locations":[{"start":{"line":61,"column":62},"end":{"line":61,"column":92}},{"start":{"line":61,"column":96},"end":{"line":61,"column":106}}]},"14":{"line":62,"type":"if","locations":[{"start":{"line":62,"column":8},"end":{"line":62,"column":8}},{"start":{"line":62,"column":8},"end":{"line":62,"column":8}}]},"15":{"line":71,"type":"binary-expr","locations":[{"start":{"line":71,"column":14},"end":{"line":71,"column":34}},{"start":{"line":74,"column":14},"end":{"line":74,"column":45}},{"start":{"line":75,"column":14},"end":{"line":75,"column":45}},{"start":{"line":80,"column":14},"end":{"line":80,"column":43}},{"start":{"line":83,"column":14},"end":{"line":83,"column":40}},{"start":{"line":86,"column":14},"end":{"line":86,"column":35}},{"start":{"line":92,"column":14},"end":{"line":92,"column":38}},{"start":{"line":93,"column":14},"end":{"line":93,"column":41}},{"start":{"line":96,"column":14},"end":{"line":96,"column":44}},{"start":{"line":98,"column":14},"end":{"line":98,"column":39}},{"start":{"line":103,"column":14},"end":{"line":103,"column":70}},{"start":{"line":106,"column":14},"end":{"line":106,"column":92}},{"start":{"line":108,"column":14},"end":{"line":108,"column":44}},{"start":{"line":109,"column":14},"end":{"line":109,"column":59}},{"start":{"line":112,"column":14},"end":{"line":112,"column":78}},{"start":{"line":114,"column":14},"end":{"line":114,"column":77}},{"start":{"line":117,"column":14},"end":{"line":117,"column":82}},{"start":{"line":120,"column":14},"end":{"line":120,"column":69}}]},"16":{"line":128,"type":"if","locations":[{"start":{"line":128,"column":6},"end":{"line":128,"column":6}},{"start":{"line":128,"column":6},"end":{"line":128,"column":6}}]},"17":{"line":130,"type":"if","locations":[{"start":{"line":130,"column":8},"end":{"line":130,"column":8}},{"start":{"line":130,"column":8},"end":{"line":130,"column":8}}]},"18":{"line":135,"type":"if","locations":[{"start":{"line":135,"column":12},"end":{"line":135,"column":12}},{"start":{"line":135,"column":12},"end":{"line":135,"column":12}}]},"19":{"line":135,"type":"binary-expr","locations":[{"start":{"line":135,"column":16},"end":{"line":135,"column":32}},{"start":{"line":135,"column":36},"end":{"line":135,"column":49}}]},"20":{"line":138,"type":"binary-expr","locations":[{"start":{"line":138,"column":35},"end":{"line":138,"column":57}},{"start":{"line":138,"column":61},"end":{"line":138,"column":80}}]},"21":{"line":139,"type":"if","locations":[{"start":{"line":139,"column":14},"end":{"line":139,"column":14}},{"start":{"line":139,"column":14},"end":{"line":139,"column":14}}]},"22":{"line":144,"type":"if","locations":[{"start":{"line":144,"column":16},"end":{"line":144,"column":16}},{"start":{"line":144,"column":16},"end":{"line":144,"column":16}}]},"23":{"line":152,"type":"if","locations":[{"start":{"line":152,"column":16},"end":{"line":152,"column":16}},{"start":{"line":152,"column":16},"end":{"line":152,"column":16}}]},"24":{"line":176,"type":"if","locations":[{"start":{"line":176,"column":2},"end":{"line":176,"column":2}},{"start":{"line":176,"column":2},"end":{"line":176,"column":2}}]},"25":{"line":189,"type":"if","locations":[{"start":{"line":189,"column":4},"end":{"line":189,"column":4}},{"start":{"line":189,"column":4},"end":{"line":189,"column":4}}]},"26":{"line":203,"type":"if","locations":[{"start":{"line":203,"column":4},"end":{"line":203,"column":4}},{"start":{"line":203,"column":4},"end":{"line":203,"column":4}}]},"27":{"line":206,"type":"if","locations":[{"start":{"line":206,"column":8},"end":{"line":206,"column":8}},{"start":{"line":206,"column":8},"end":{"line":206,"column":8}}]},"28":{"line":228,"type":"binary-expr","locations":[{"start":{"line":228,"column":26},"end":{"line":228,"column":42}},{"start":{"line":228,"column":46},"end":{"line":228,"column":57}}]},"29":{"line":229,"type":"binary-expr","locations":[{"start":{"line":229,"column":19},"end":{"line":229,"column":35}},{"start":{"line":229,"column":39},"end":{"line":229,"column":99}}]},"30":{"line":229,"type":"binary-expr","locations":[{"start":{"line":229,"column":41},"end":{"line":229,"column":59}},{"start":{"line":229,"column":63},"end":{"line":229,"column":98}}]},"31":{"line":249,"type":"cond-expr","locations":[{"start":{"line":249,"column":32},"end":{"line":249,"column":50}},{"start":{"line":249,"column":53},"end":{"line":249,"column":74}}]},"32":{"line":268,"type":"if","locations":[{"start":{"line":268,"column":8},"end":{"line":268,"column":8}},{"start":{"line":268,"column":8},"end":{"line":268,"column":8}}]},"33":{"line":275,"type":"if","locations":[{"start":{"line":275,"column":6},"end":{"line":275,"column":6}},{"start":{"line":275,"column":6},"end":{"line":275,"column":6}}]},"34":{"line":282,"type":"cond-expr","locations":[{"start":{"line":282,"column":125},"end":{"line":282,"column":146}},{"start":{"line":282,"column":149},"end":{"line":282,"column":159}}]},"35":{"line":282,"type":"binary-expr","locations":[{"start":{"line":282,"column":28},"end":{"line":282,"column":39}},{"start":{"line":282,"column":43},"end":{"line":282,"column":82}},{"start":{"line":282,"column":86},"end":{"line":282,"column":122}}]},"36":{"line":286,"type":"if","locations":[{"start":{"line":286,"column":12},"end":{"line":286,"column":12}},{"start":{"line":286,"column":12},"end":{"line":286,"column":12}}]},"37":{"line":286,"type":"binary-expr","locations":[{"start":{"line":286,"column":16},"end":{"line":286,"column":56}},{"start":{"line":286,"column":60},"end":{"line":286,"column":94}}]},"38":{"line":286,"type":"binary-expr","locations":[{"start":{"line":286,"column":18},"end":{"line":286,"column":28}},{"start":{"line":286,"column":32},"end":{"line":286,"column":55}}]},"39":{"line":291,"type":"binary-expr","locations":[{"start":{"line":291,"column":70},"end":{"line":291,"column":104}},{"start":{"line":291,"column":108},"end":{"line":291,"column":126}}]},"40":{"line":293,"type":"if","locations":[{"start":{"line":293,"column":13},"end":{"line":293,"column":13}},{"start":{"line":293,"column":13},"end":{"line":293,"column":13}}]},"41":{"line":302,"type":"if","locations":[{"start":{"line":302,"column":12},"end":{"line":302,"column":12}},{"start":{"line":302,"column":12},"end":{"line":302,"column":12}}]},"42":{"line":302,"type":"binary-expr","locations":[{"start":{"line":302,"column":16},"end":{"line":302,"column":56}},{"start":{"line":302,"column":60},"end":{"line":302,"column":95}},{"start":{"line":302,"column":100},"end":{"line":302,"column":121}},{"start":{"line":302,"column":126},"end":{"line":302,"column":159}}]},"43":{"line":302,"type":"binary-expr","locations":[{"start":{"line":302,"column":18},"end":{"line":302,"column":28}},{"start":{"line":302,"column":32},"end":{"line":302,"column":55}}]},"44":{"line":312,"type":"if","locations":[{"start":{"line":312,"column":12},"end":{"line":312,"column":12}},{"start":{"line":312,"column":12},"end":{"line":312,"column":12}}]},"45":{"line":312,"type":"binary-expr","locations":[{"start":{"line":312,"column":16},"end":{"line":312,"column":56}},{"start":{"line":312,"column":60},"end":{"line":312,"column":93}},{"start":{"line":312,"column":97},"end":{"line":312,"column":142}}]},"46":{"line":312,"type":"binary-expr","locations":[{"start":{"line":312,"column":18},"end":{"line":312,"column":28}},{"start":{"line":312,"column":32},"end":{"line":312,"column":55}}]},"47":{"line":318,"type":"if","locations":[{"start":{"line":318,"column":10},"end":{"line":318,"column":10}},{"start":{"line":318,"column":10},"end":{"line":318,"column":10}}]},"48":{"line":318,"type":"binary-expr","locations":[{"start":{"line":318,"column":14},"end":{"line":318,"column":27}},{"start":{"line":318,"column":31},"end":{"line":318,"column":82}}]},"49":{"line":332,"type":"if","locations":[{"start":{"line":332,"column":4},"end":{"line":332,"column":4}},{"start":{"line":332,"column":4},"end":{"line":332,"column":4}}]},"50":{"line":350,"type":"binary-expr","locations":[{"start":{"line":350,"column":33},"end":{"line":350,"column":38}},{"start":{"line":350,"column":42},"end":{"line":350,"column":43}}]},"51":{"line":359,"type":"binary-expr","locations":[{"start":{"line":359,"column":70},"end":{"line":359,"column":81}},{"start":{"line":359,"column":85},"end":{"line":359,"column":99}}]},"52":{"line":360,"type":"if","locations":[{"start":{"line":360,"column":8},"end":{"line":360,"column":8}},{"start":{"line":360,"column":8},"end":{"line":360,"column":8}}]},"53":{"line":367,"type":"switch","locations":[{"start":{"line":368,"column":12},"end":{"line":368,"column":19}},{"start":{"line":368,"column":20},"end":{"line":368,"column":27}},{"start":{"line":368,"column":28},"end":{"line":368,"column":36}},{"start":{"line":368,"column":37},"end":{"line":368,"column":45}},{"start":{"line":368,"column":46},"end":{"line":368,"column":54}},{"start":{"line":368,"column":55},"end":{"line":368,"column":63}},{"start":{"line":368,"column":64},"end":{"line":370,"column":20}},{"start":{"line":371,"column":12},"end":{"line":376,"column":103}}]},"54":{"line":372,"type":"if","locations":[{"start":{"line":372,"column":14},"end":{"line":372,"column":14}},{"start":{"line":372,"column":14},"end":{"line":372,"column":14}}]},"55":{"line":376,"type":"cond-expr","locations":[{"start":{"line":376,"column":34},"end":{"line":376,"column":48}},{"start":{"line":376,"column":51},"end":{"line":376,"column":102}}]},"56":{"line":376,"type":"cond-expr","locations":[{"start":{"line":376,"column":68},"end":{"line":376,"column":87}},{"start":{"line":376,"column":90},"end":{"line":376,"column":102}}]},"57":{"line":390,"type":"if","locations":[{"start":{"line":390,"column":8},"end":{"line":390,"column":8}},{"start":{"line":390,"column":8},"end":{"line":390,"column":8}}]},"58":{"line":390,"type":"binary-expr","locations":[{"start":{"line":390,"column":12},"end":{"line":390,"column":36}},{"start":{"line":390,"column":40},"end":{"line":390,"column":45}}]},"59":{"line":392,"type":"if","locations":[{"start":{"line":392,"column":10},"end":{"line":392,"column":10}},{"start":{"line":392,"column":10},"end":{"line":392,"column":10}}]},"60":{"line":392,"type":"binary-expr","locations":[{"start":{"line":392,"column":14},"end":{"line":392,"column":36}},{"start":{"line":392,"column":40},"end":{"line":392,"column":73}}]},"61":{"line":393,"type":"if","locations":[{"start":{"line":393,"column":12},"end":{"line":393,"column":12}},{"start":{"line":393,"column":12},"end":{"line":393,"column":12}}]},"62":{"line":393,"type":"binary-expr","locations":[{"start":{"line":393,"column":16},"end":{"line":393,"column":30}},{"start":{"line":393,"column":34},"end":{"line":393,"column":47}}]},"63":{"line":397,"type":"if","locations":[{"start":{"line":397,"column":14},"end":{"line":397,"column":14}},{"start":{"line":397,"column":14},"end":{"line":397,"column":14}}]},"64":{"line":426,"type":"cond-expr","locations":[{"start":{"line":426,"column":50},"end":{"line":426,"column":117}},{"start":{"line":426,"column":120},"end":{"line":426,"column":143}}]},"65":{"line":426,"type":"binary-expr","locations":[{"start":{"line":426,"column":23},"end":{"line":426,"column":32}},{"start":{"line":426,"column":36},"end":{"line":426,"column":47}}]},"66":{"line":426,"type":"cond-expr","locations":[{"start":{"line":426,"column":62},"end":{"line":426,"column":65}},{"start":{"line":426,"column":68},"end":{"line":426,"column":71}}]},"67":{"line":426,"type":"cond-expr","locations":[{"start":{"line":426,"column":104},"end":{"line":426,"column":109}},{"start":{"line":426,"column":112},"end":{"line":426,"column":116}}]},"68":{"line":436,"type":"if","locations":[{"start":{"line":436,"column":17},"end":{"line":436,"column":17}},{"start":{"line":436,"column":17},"end":{"line":436,"column":17}}]},"69":{"line":436,"type":"binary-expr","locations":[{"start":{"line":436,"column":21},"end":{"line":436,"column":54}},{"start":{"line":436,"column":60},"end":{"line":436,"column":84}},{"start":{"line":436,"column":88},"end":{"line":436,"column":112}},{"start":{"line":436,"column":116},"end":{"line":436,"column":139}},{"start":{"line":436,"column":144},"end":{"line":436,"column":176}}]},"70":{"line":444,"type":"if","locations":[{"start":{"line":444,"column":8},"end":{"line":444,"column":8}},{"start":{"line":444,"column":8},"end":{"line":444,"column":8}}]},"71":{"line":449,"type":"if","locations":[{"start":{"line":449,"column":8},"end":{"line":449,"column":8}},{"start":{"line":449,"column":8},"end":{"line":449,"column":8}}]},"72":{"line":453,"type":"if","locations":[{"start":{"line":453,"column":8},"end":{"line":453,"column":8}},{"start":{"line":453,"column":8},"end":{"line":453,"column":8}}]},"73":{"line":456,"type":"if","locations":[{"start":{"line":456,"column":15},"end":{"line":456,"column":15}},{"start":{"line":456,"column":15},"end":{"line":456,"column":15}}]},"74":{"line":459,"type":"cond-expr","locations":[{"start":{"line":459,"column":51},"end":{"line":459,"column":61}},{"start":{"line":459,"column":64},"end":{"line":459,"column":70}}]},"75":{"line":459,"type":"binary-expr","locations":[{"start":{"line":459,"column":17},"end":{"line":459,"column":31}},{"start":{"line":459,"column":35},"end":{"line":459,"column":48}}]},"76":{"line":460,"type":"if","locations":[{"start":{"line":460,"column":15},"end":{"line":460,"column":15}},{"start":{"line":460,"column":15},"end":{"line":460,"column":15}}]},"77":{"line":465,"type":"if","locations":[{"start":{"line":465,"column":8},"end":{"line":465,"column":8}},{"start":{"line":465,"column":8},"end":{"line":465,"column":8}}]},"78":{"line":469,"type":"if","locations":[{"start":{"line":469,"column":12},"end":{"line":469,"column":12}},{"start":{"line":469,"column":12},"end":{"line":469,"column":12}}]},"79":{"line":480,"type":"if","locations":[{"start":{"line":480,"column":10},"end":{"line":480,"column":10}},{"start":{"line":480,"column":10},"end":{"line":480,"column":10}}]},"80":{"line":482,"type":"binary-expr","locations":[{"start":{"line":482,"column":67},"end":{"line":482,"column":77}},{"start":{"line":482,"column":82},"end":{"line":482,"column":99}}]},"81":{"line":484,"type":"cond-expr","locations":[{"start":{"line":484,"column":47},"end":{"line":484,"column":53}},{"start":{"line":484,"column":56},"end":{"line":484,"column":63}}]},"82":{"line":486,"type":"cond-expr","locations":[{"start":{"line":486,"column":35},"end":{"line":486,"column":159}},{"start":{"line":486,"column":163},"end":{"line":486,"column":167}}]},"83":{"line":486,"type":"cond-expr","locations":[{"start":{"line":486,"column":48},"end":{"line":486,"column":125}},{"start":{"line":486,"column":129},"end":{"line":486,"column":158}}]},"84":{"line":491,"type":"binary-expr","locations":[{"start":{"line":491,"column":20},"end":{"line":491,"column":30}},{"start":{"line":491,"column":34},"end":{"line":491,"column":39}}]},"85":{"line":493,"type":"if","locations":[{"start":{"line":493,"column":14},"end":{"line":493,"column":14}},{"start":{"line":493,"column":14},"end":{"line":493,"column":14}}]},"86":{"line":500,"type":"cond-expr","locations":[{"start":{"line":500,"column":67},"end":{"line":500,"column":70}},{"start":{"line":500,"column":73},"end":{"line":500,"column":75}}]},"87":{"line":502,"type":"binary-expr","locations":[{"start":{"line":502,"column":14},"end":{"line":502,"column":24}},{"start":{"line":502,"column":29},"end":{"line":502,"column":46}}]},"88":{"line":504,"type":"cond-expr","locations":[{"start":{"line":504,"column":35},"end":{"line":504,"column":159}},{"start":{"line":504,"column":163},"end":{"line":504,"column":167}}]},"89":{"line":504,"type":"cond-expr","locations":[{"start":{"line":504,"column":48},"end":{"line":504,"column":125}},{"start":{"line":504,"column":129},"end":{"line":504,"column":158}}]},"90":{"line":515,"type":"if","locations":[{"start":{"line":515,"column":8},"end":{"line":515,"column":8}},{"start":{"line":515,"column":8},"end":{"line":515,"column":8}}]},"91":{"line":515,"type":"binary-expr","locations":[{"start":{"line":515,"column":12},"end":{"line":515,"column":39}},{"start":{"line":515,"column":43},"end":{"line":515,"column":68}},{"start":{"line":515,"column":72},"end":{"line":515,"column":78}}]},"92":{"line":516,"type":"if","locations":[{"start":{"line":516,"column":10},"end":{"line":516,"column":10}},{"start":{"line":516,"column":10},"end":{"line":516,"column":10}}]},"93":{"line":518,"type":"if","locations":[{"start":{"line":518,"column":17},"end":{"line":518,"column":17}},{"start":{"line":518,"column":17},"end":{"line":518,"column":17}}]},"94":{"line":521,"type":"binary-expr","locations":[{"start":{"line":521,"column":106},"end":{"line":521,"column":141}},{"start":{"line":521,"column":145},"end":{"line":521,"column":180}},{"start":{"line":521,"column":186},"end":{"line":521,"column":207}}]},"95":{"line":524,"type":"if","locations":[{"start":{"line":524,"column":8},"end":{"line":524,"column":8}},{"start":{"line":524,"column":8},"end":{"line":524,"column":8}}]},"96":{"line":525,"type":"if","locations":[{"start":{"line":525,"column":10},"end":{"line":525,"column":10}},{"start":{"line":525,"column":10},"end":{"line":525,"column":10}}]},"97":{"line":528,"type":"if","locations":[{"start":{"line":528,"column":12},"end":{"line":528,"column":12}},{"start":{"line":528,"column":12},"end":{"line":528,"column":12}}]},"98":{"line":531,"type":"if","locations":[{"start":{"line":531,"column":17},"end":{"line":531,"column":17}},{"start":{"line":531,"column":17},"end":{"line":531,"column":17}}]},"99":{"line":532,"type":"cond-expr","locations":[{"start":{"line":532,"column":46},"end":{"line":532,"column":51}},{"start":{"line":532,"column":54},"end":{"line":532,"column":72}}]},"100":{"line":543,"type":"if","locations":[{"start":{"line":543,"column":4},"end":{"line":543,"column":4}},{"start":{"line":543,"column":4},"end":{"line":543,"column":4}}]},"101":{"line":575,"type":"switch","locations":[{"start":{"line":576,"column":12},"end":{"line":576,"column":19}},{"start":{"line":576,"column":20},"end":{"line":576,"column":28}},{"start":{"line":576,"column":29},"end":{"line":576,"column":37}},{"start":{"line":576,"column":38},"end":{"line":580,"column":20}},{"start":{"line":581,"column":12},"end":{"line":581,"column":21}},{"start":{"line":581,"column":22},"end":{"line":581,"column":31}},{"start":{"line":581,"column":32},"end":{"line":581,"column":40}},{"start":{"line":581,"column":41},"end":{"line":581,"column":49}},{"start":{"line":581,"column":50},"end":{"line":581,"column":58}},{"start":{"line":581,"column":59},"end":{"line":586,"column":27}},{"start":{"line":587,"column":12},"end":{"line":652,"column":22}},{"start":{"line":653,"column":12},"end":{"line":720,"column":22}}]},"102":{"line":584,"type":"cond-expr","locations":[{"start":{"line":584,"column":39},"end":{"line":584,"column":59}},{"start":{"line":584,"column":62},"end":{"line":584,"column":75}}]},"103":{"line":594,"type":"if","locations":[{"start":{"line":594,"column":16},"end":{"line":594,"column":16}},{"start":{"line":594,"column":16},"end":{"line":594,"column":16}}]},"104":{"line":598,"type":"if","locations":[{"start":{"line":598,"column":23},"end":{"line":598,"column":23}},{"start":{"line":598,"column":23},"end":{"line":598,"column":23}}]},"105":{"line":603,"type":"switch","locations":[{"start":{"line":604,"column":20},"end":{"line":604,"column":28}},{"start":{"line":604,"column":29},"end":{"line":604,"column":37}},{"start":{"line":604,"column":38},"end":{"line":604,"column":46}},{"start":{"line":604,"column":47},"end":{"line":604,"column":55}},{"start":{"line":604,"column":56},"end":{"line":604,"column":65}},{"start":{"line":604,"column":66},"end":{"line":604,"column":75}},{"start":{"line":604,"column":76},"end":{"line":604,"column":85}},{"start":{"line":604,"column":86},"end":{"line":608,"column":28}},{"start":{"line":609,"column":20},"end":{"line":625,"column":28}},{"start":{"line":626,"column":20},"end":{"line":628,"column":30}}]},"106":{"line":618,"type":"if","locations":[{"start":{"line":618,"column":24},"end":{"line":618,"column":24}},{"start":{"line":618,"column":24},"end":{"line":618,"column":24}}]},"107":{"line":618,"type":"binary-expr","locations":[{"start":{"line":618,"column":30},"end":{"line":618,"column":44}},{"start":{"line":618,"column":48},"end":{"line":618,"column":62}},{"start":{"line":618,"column":66},"end":{"line":618,"column":80}},{"start":{"line":618,"column":84},"end":{"line":618,"column":99}},{"start":{"line":618,"column":103},"end":{"line":618,"column":117}},{"start":{"line":618,"column":121},"end":{"line":618,"column":135}}]},"108":{"line":631,"type":"if","locations":[{"start":{"line":631,"column":18},"end":{"line":631,"column":18}},{"start":{"line":631,"column":18},"end":{"line":631,"column":18}}]},"109":{"line":639,"type":"binary-expr","locations":[{"start":{"line":639,"column":25},"end":{"line":639,"column":39}},{"start":{"line":639,"column":43},"end":{"line":639,"column":57}},{"start":{"line":639,"column":61},"end":{"line":639,"column":75}}]},"110":{"line":646,"type":"if","locations":[{"start":{"line":646,"column":14},"end":{"line":646,"column":14}},{"start":{"line":646,"column":14},"end":{"line":646,"column":14}}]},"111":{"line":657,"type":"if","locations":[{"start":{"line":657,"column":14},"end":{"line":657,"column":14}},{"start":{"line":657,"column":14},"end":{"line":657,"column":14}}]},"112":{"line":662,"type":"if","locations":[{"start":{"line":662,"column":14},"end":{"line":662,"column":14}},{"start":{"line":662,"column":14},"end":{"line":662,"column":14}}]},"113":{"line":662,"type":"binary-expr","locations":[{"start":{"line":662,"column":18},"end":{"line":662,"column":32}},{"start":{"line":662,"column":36},"end":{"line":662,"column":50}}]},"114":{"line":664,"type":"if","locations":[{"start":{"line":664,"column":16},"end":{"line":664,"column":16}},{"start":{"line":664,"column":16},"end":{"line":664,"column":16}}]},"115":{"line":664,"type":"binary-expr","locations":[{"start":{"line":664,"column":20},"end":{"line":664,"column":34}},{"start":{"line":664,"column":39},"end":{"line":664,"column":114}}]},"116":{"line":664,"type":"binary-expr","locations":[{"start":{"line":664,"column":82},"end":{"line":664,"column":96}},{"start":{"line":664,"column":100},"end":{"line":664,"column":114}}]},"117":{"line":670,"type":"binary-expr","locations":[{"start":{"line":670,"column":23},"end":{"line":670,"column":37}},{"start":{"line":670,"column":42},"end":{"line":670,"column":113}}]},"118":{"line":670,"type":"binary-expr","locations":[{"start":{"line":670,"column":81},"end":{"line":670,"column":95}},{"start":{"line":670,"column":99},"end":{"line":670,"column":113}}]},"119":{"line":673,"type":"if","locations":[{"start":{"line":673,"column":16},"end":{"line":673,"column":16}},{"start":{"line":673,"column":16},"end":{"line":673,"column":16}}]},"120":{"line":676,"type":"binary-expr","locations":[{"start":{"line":676,"column":25},"end":{"line":676,"column":42}},{"start":{"line":676,"column":47},"end":{"line":676,"column":121}}]},"121":{"line":676,"type":"binary-expr","locations":[{"start":{"line":676,"column":89},"end":{"line":676,"column":103}},{"start":{"line":676,"column":107},"end":{"line":676,"column":121}}]},"122":{"line":677,"type":"if","locations":[{"start":{"line":677,"column":18},"end":{"line":677,"column":18}},{"start":{"line":677,"column":18},"end":{"line":677,"column":18}}]},"123":{"line":686,"type":"if","locations":[{"start":{"line":686,"column":16},"end":{"line":686,"column":16}},{"start":{"line":686,"column":16},"end":{"line":686,"column":16}}]},"124":{"line":686,"type":"binary-expr","locations":[{"start":{"line":686,"column":20},"end":{"line":686,"column":35}},{"start":{"line":686,"column":39},"end":{"line":686,"column":53}}]},"125":{"line":690,"type":"if","locations":[{"start":{"line":690,"column":18},"end":{"line":690,"column":18}},{"start":{"line":690,"column":18},"end":{"line":690,"column":18}}]},"126":{"line":690,"type":"binary-expr","locations":[{"start":{"line":690,"column":22},"end":{"line":690,"column":36}},{"start":{"line":690,"column":40},"end":{"line":690,"column":54}}]},"127":{"line":694,"type":"binary-expr","locations":[{"start":{"line":694,"column":41},"end":{"line":694,"column":58}},{"start":{"line":694,"column":63},"end":{"line":694,"column":137}}]},"128":{"line":694,"type":"binary-expr","locations":[{"start":{"line":694,"column":105},"end":{"line":694,"column":119}},{"start":{"line":694,"column":123},"end":{"line":694,"column":137}}]},"129":{"line":695,"type":"if","locations":[{"start":{"line":695,"column":18},"end":{"line":695,"column":18}},{"start":{"line":695,"column":18},"end":{"line":695,"column":18}}]},"130":{"line":705,"type":"if","locations":[{"start":{"line":705,"column":14},"end":{"line":705,"column":14}},{"start":{"line":705,"column":14},"end":{"line":705,"column":14}}]},"131":{"line":709,"type":"if","locations":[{"start":{"line":709,"column":14},"end":{"line":709,"column":14}},{"start":{"line":709,"column":14},"end":{"line":709,"column":14}}]},"132":{"line":712,"type":"if","locations":[{"start":{"line":712,"column":21},"end":{"line":712,"column":21}},{"start":{"line":712,"column":21},"end":{"line":712,"column":21}}]},"133":{"line":715,"type":"if","locations":[{"start":{"line":715,"column":21},"end":{"line":715,"column":21}},{"start":{"line":715,"column":21},"end":{"line":715,"column":21}}]},"134":{"line":731,"type":"if","locations":[{"start":{"line":731,"column":8},"end":{"line":731,"column":8}},{"start":{"line":731,"column":8},"end":{"line":731,"column":8}}]},"135":{"line":735,"type":"if","locations":[{"start":{"line":735,"column":8},"end":{"line":735,"column":8}},{"start":{"line":735,"column":8},"end":{"line":735,"column":8}}]},"136":{"line":736,"type":"if","locations":[{"start":{"line":736,"column":10},"end":{"line":736,"column":10}},{"start":{"line":736,"column":10},"end":{"line":736,"column":10}}]},"137":{"line":736,"type":"cond-expr","locations":[{"start":{"line":736,"column":32},"end":{"line":736,"column":47}},{"start":{"line":736,"column":50},"end":{"line":736,"column":58}}]},"138":{"line":741,"type":"if","locations":[{"start":{"line":741,"column":10},"end":{"line":741,"column":10}},{"start":{"line":741,"column":10},"end":{"line":741,"column":10}}]},"139":{"line":744,"type":"binary-expr","locations":[{"start":{"line":744,"column":20},"end":{"line":744,"column":30}},{"start":{"line":744,"column":35},"end":{"line":744,"column":52}}]},"140":{"line":747,"type":"if","locations":[{"start":{"line":747,"column":14},"end":{"line":747,"column":14}},{"start":{"line":747,"column":14},"end":{"line":747,"column":14}}]},"141":{"line":753,"type":"if","locations":[{"start":{"line":753,"column":14},"end":{"line":753,"column":14}},{"start":{"line":753,"column":14},"end":{"line":753,"column":14}}]},"142":{"line":754,"type":"if","locations":[{"start":{"line":754,"column":16},"end":{"line":754,"column":16}},{"start":{"line":754,"column":16},"end":{"line":754,"column":16}}]},"143":{"line":756,"type":"if","locations":[{"start":{"line":756,"column":18},"end":{"line":756,"column":18}},{"start":{"line":756,"column":18},"end":{"line":756,"column":18}}]},"144":{"line":766,"type":"if","locations":[{"start":{"line":766,"column":14},"end":{"line":766,"column":14}},{"start":{"line":766,"column":14},"end":{"line":766,"column":14}}]},"145":{"line":772,"type":"if","locations":[{"start":{"line":772,"column":17},"end":{"line":772,"column":17}},{"start":{"line":772,"column":17},"end":{"line":772,"column":17}}]},"146":{"line":775,"type":"binary-expr","locations":[{"start":{"line":775,"column":20},"end":{"line":775,"column":30}},{"start":{"line":775,"column":35},"end":{"line":775,"column":52}}]},"147":{"line":778,"type":"if","locations":[{"start":{"line":778,"column":14},"end":{"line":778,"column":14}},{"start":{"line":778,"column":14},"end":{"line":778,"column":14}}]},"148":{"line":783,"type":"if","locations":[{"start":{"line":783,"column":14},"end":{"line":783,"column":14}},{"start":{"line":783,"column":14},"end":{"line":783,"column":14}}]},"149":{"line":784,"type":"if","locations":[{"start":{"line":784,"column":16},"end":{"line":784,"column":16}},{"start":{"line":784,"column":16},"end":{"line":784,"column":16}}]},"150":{"line":786,"type":"if","locations":[{"start":{"line":786,"column":18},"end":{"line":786,"column":18}},{"start":{"line":786,"column":18},"end":{"line":786,"column":18}}]},"151":{"line":798,"type":"if","locations":[{"start":{"line":798,"column":14},"end":{"line":798,"column":14}},{"start":{"line":798,"column":14},"end":{"line":798,"column":14}}]},"152":{"line":798,"type":"binary-expr","locations":[{"start":{"line":798,"column":18},"end":{"line":798,"column":30}},{"start":{"line":798,"column":34},"end":{"line":798,"column":58}},{"start":{"line":798,"column":62},"end":{"line":798,"column":114}},{"start":{"line":798,"column":118},"end":{"line":798,"column":130}}]},"153":{"line":798,"type":"cond-expr","locations":[{"start":{"line":798,"column":80},"end":{"line":798,"column":95}},{"start":{"line":798,"column":98},"end":{"line":798,"column":106}}]},"154":{"line":814,"type":"if","locations":[{"start":{"line":814,"column":8},"end":{"line":814,"column":8}},{"start":{"line":814,"column":8},"end":{"line":814,"column":8}}]},"155":{"line":826,"type":"if","locations":[{"start":{"line":826,"column":8},"end":{"line":826,"column":8}},{"start":{"line":826,"column":8},"end":{"line":826,"column":8}}]},"156":{"line":826,"type":"binary-expr","locations":[{"start":{"line":826,"column":12},"end":{"line":826,"column":36}},{"start":{"line":826,"column":40},"end":{"line":826,"column":45}}]},"157":{"line":830,"type":"if","locations":[{"start":{"line":830,"column":10},"end":{"line":830,"column":10}},{"start":{"line":830,"column":10},"end":{"line":830,"column":10}}]},"158":{"line":850,"type":"if","locations":[{"start":{"line":850,"column":8},"end":{"line":850,"column":8}},{"start":{"line":850,"column":8},"end":{"line":850,"column":8}}]},"159":{"line":855,"type":"cond-expr","locations":[{"start":{"line":855,"column":70},"end":{"line":855,"column":129}},{"start":{"line":855,"column":132},"end":{"line":855,"column":138}}]},"160":{"line":855,"type":"binary-expr","locations":[{"start":{"line":855,"column":15},"end":{"line":855,"column":23}},{"start":{"line":855,"column":27},"end":{"line":855,"column":67}}]},"161":{"line":861,"type":"if","locations":[{"start":{"line":861,"column":2},"end":{"line":861,"column":2}},{"start":{"line":861,"column":2},"end":{"line":861,"column":2}}]}}}} \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/lib/json3.js.html b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/lib/json3.js.html deleted file mode 100644 index 11c49b42..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/lib/json3.js.html +++ /dev/null @@ -1,2903 +0,0 @@ - - - - Code coverage report for lib/json3.js - - - - - - - -
            -

            Code coverage report for lib/json3.js

            -

            - - Statements: 13.77% (50 / 363)      - - - Branches: 15.32% (59 / 385)      - - - Functions: 11.54% (3 / 26)      - - - Lines: 13.77% (50 / 363)      - -

            -
            All files » lib/ » json3.js
            -
            -
            -
            
            -
            -
            1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 -499 -500 -501 -502 -503 -504 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -564 -565 -566 -567 -568 -569 -570 -571 -572 -573 -574 -575 -576 -577 -578 -579 -580 -581 -582 -583 -584 -585 -586 -587 -588 -589 -590 -591 -592 -593 -594 -595 -596 -597 -598 -599 -600 -601 -602 -603 -604 -605 -606 -607 -608 -609 -610 -611 -612 -613 -614 -615 -616 -617 -618 -619 -620 -621 -622 -623 -624 -625 -626 -627 -628 -629 -630 -631 -632 -633 -634 -635 -636 -637 -638 -639 -640 -641 -642 -643 -644 -645 -646 -647 -648 -649 -650 -651 -652 -653 -654 -655 -656 -657 -658 -659 -660 -661 -662 -663 -664 -665 -666 -667 -668 -669 -670 -671 -672 -673 -674 -675 -676 -677 -678 -679 -680 -681 -682 -683 -684 -685 -686 -687 -688 -689 -690 -691 -692 -693 -694 -695 -696 -697 -698 -699 -700 -701 -702 -703 -704 -705 -706 -707 -708 -709 -710 -711 -712 -713 -714 -715 -716 -717 -718 -719 -720 -721 -722 -723 -724 -725 -726 -727 -728 -729 -730 -731 -732 -733 -734 -735 -736 -737 -738 -739 -740 -741 -742 -743 -744 -745 -746 -747 -748 -749 -750 -751 -752 -753 -754 -755 -756 -757 -758 -759 -760 -761 -762 -763 -764 -765 -766 -767 -768 -769 -770 -771 -772 -773 -774 -775 -776 -777 -778 -779 -780 -781 -782 -783 -784 -785 -786 -787 -788 -789 -790 -791 -792 -793 -794 -795 -796 -797 -798 -799 -800 -801 -802 -803 -804 -805 -806 -807 -808 -809 -810 -811 -812 -813 -814 -815 -816 -817 -818 -819 -820 -821 -822 -823 -824 -825 -826 -827 -828 -829 -830 -831 -832 -833 -834 -835 -836 -837 -838 -839 -840 -841 -842 -843 -844 -845 -846 -847 -848 -849 -850 -851 -852 -853 -854 -855 -856 -857 -858 -859 -860 -861 -862 -863 -864 -865 -866 -867  -1 -  -1 -  -  -  -1 -  -  -1 -  -  -  -1 -  -1 -  -  -1 -1 -  -  -  -  -  -  -  -1 -1 -  -  -1 -  -  -  -  -  -  -  -  -1 -3 -  -  -  -  -3 -3 -  -  -  -3 -  -  -1 -  -2 -  -2 -1 -1 -  -1 -4 -  -1 -1 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1 -  -  -2 -1 -1 -1 -  -  -  -1 -  -1 -1 -1 -1 -  -1 -  -1 -1 -  -  -  -1 -  -  -1 -1 -  -  -  -1 -  -  -  -  -  -  -  -  -1 -  -  -3 -  -1 -1 -1 -1 -  -1 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1 -  -  -  -  -  - 
            /*! JSON v3.2.5 | http://bestiejs.github.io/json3 | Copyright 2012-2013, Kit Cambridge | http://kit.mit-license.org */
            -;(function (window) {
            -  // Convenience aliases.
            -  var getClass = {}.toString, isProperty, forEach, undef;
            - 
            -  // Detect the `define` function exposed by asynchronous module loaders. The
            -  // strict `define` check is necessary for compatibility with `r.js`.
            -  var isLoader = typeof define === "function" && define.amd;
            - 
            -  // Detect native implementations.
            -  var nativeJSON = typeof JSON == "object" && JSON;
            - 
            -  // Set up the JSON 3 namespace, preferring the CommonJS `exports` object if
            -  // available.
            -  var JSON3 = typeof exports == "object" && exports && !exports.nodeType && exports;
            - 
            -  Eif (JSON3 && nativeJSON) {
            -    // Explicitly delegate to the native `stringify` and `parse`
            -    // implementations in CommonJS environments.
            -    JSON3.stringify = nativeJSON.stringify;
            -    JSON3.parse = nativeJSON.parse;
            -  } else {
            -    // Export for web browsers, JavaScript engines, and asynchronous module
            -    // loaders, using the global `JSON` object if available.
            -    JSON3 = window.JSON = nativeJSON || {};
            -  }
            - 
            -  // Test the `Date#getUTC*` methods. Based on work by @Yaffle.
            -  var isExtended = new Date(-3509827334573292);
            -  try {
            -    // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical
            -    // results for certain dates in Opera >= 10.53.
            -    isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 &&
            -      // Safari < 2.0.2 stores the internal millisecond time value correctly,
            -      // but clips the values returned by the date methods to the range of
            -      // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]).
            -      isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708;
            -  } catch (exception) {}
            - 
            -  // Internal: Determines whether the native `JSON.stringify` and `parse`
            -  // implementations are spec-compliant. Based on work by Ken Snyder.
            -  function has(name) {
            -    Iif (has[name] != null) {
            -      // Return cached feature test result.
            -      return has[name];
            -    }
            - 
            -    var isSupported;
            -    Iif (name == "bug-string-char-index") {
            -      // IE <= 7 doesn't support accessing string characters using square
            -      // bracket notation. IE 8 only supports this for primitives.
            -      isSupported = "a"[0] != "a";
            -    } else if (name == "json") {
            -      // Indicates whether both `JSON.stringify` and `JSON.parse` are
            -      // supported.
            -      isSupported = has("json-stringify") && has("json-parse");
            -    } else {
            -      var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';
            -      // Test `JSON.stringify`.
            -      if (name == "json-stringify") {
            -        var stringify = JSON3.stringify, stringifySupported = typeof stringify == "function" && isExtended;
            -        Eif (stringifySupported) {
            -          // A test function object with a custom `toJSON` method.
            -          (value = function () {
            -            return 1;
            -          }).toJSON = value;
            -          try {
            -            stringifySupported =
            -              // Firefox 3.1b1 and b2 serialize string, number, and boolean
            -              // primitives as object literals.
            -              stringify(0) === "0" &&
            -              // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object
            -              // literals.
            -              stringify(new Number()) === "0" &&
            -              stringify(new String()) == '""' &&
            -              // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or
            -              // does not define a canonical JSON representation (this applies to
            -              // objects with `toJSON` properties as well, *unless* they are nested
            -              // within an object or array).
            -              stringify(getClass) === undef &&
            -              // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and
            -              // FF 3.1b3 pass this test.
            -              stringify(undef) === undef &&
            -              // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s,
            -              // respectively, if the value is omitted entirely.
            -              stringify() === undef &&
            -              // FF 3.1b1, 2 throw an error if the given value is not a number,
            -              // string, array, object, Boolean, or `null` literal. This applies to
            -              // objects with custom `toJSON` methods as well, unless they are nested
            -              // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON`
            -              // methods entirely.
            -              stringify(value) === "1" &&
            -              stringify([value]) == "[1]" &&
            -              // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of
            -              // `"[null]"`.
            -              stringify([undef]) == "[null]" &&
            -              // YUI 3.0.0b1 fails to serialize `null` literals.
            -              stringify(null) == "null" &&
            -              // FF 3.1b1, 2 halts serialization if an array contains a function:
            -              // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3
            -              // elides non-JSON values from objects and arrays, unless they
            -              // define custom `toJSON` methods.
            -              stringify([undef, getClass, null]) == "[null,null,null]" &&
            -              // Simple serialization test. FF 3.1b1 uses Unicode escape sequences
            -              // where character escape codes are expected (e.g., `\b` => `\u0008`).
            -              stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized &&
            -              // FF 3.1b1 and b2 ignore the `filter` and `width` arguments.
            -              stringify(null, value) === "1" &&
            -              stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" &&
            -              // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly
            -              // serialize extended years.
            -              stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' &&
            -              // The milliseconds are optional in ES 5, but required in 5.1.
            -              stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' &&
            -              // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative
            -              // four-digit years instead of six-digit years. Credits: @Yaffle.
            -              stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' &&
            -              // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond
            -              // values less than 1000. Credits: @Yaffle.
            -              stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"';
            -          } catch (exception) {
            -            stringifySupported = false;
            -          }
            -        }
            -        isSupported = stringifySupported;
            -      }
            -      // Test `JSON.parse`.
            -      if (name == "json-parse") {
            -        var parse = JSON3.parse;
            -        Eif (typeof parse == "function") {
            -          try {
            -            // FF 3.1b1, b2 will throw an exception if a bare literal is provided.
            -            // Conforming implementations should also coerce the initial argument to
            -            // a string prior to parsing.
            -            Eif (parse("0") === 0 && !parse(false)) {
            -              // Simple parsing test.
            -              value = parse(serialized);
            -              var parseSupported = value["a"].length == 5 && value["a"][0] === 1;
            -              Eif (parseSupported) {
            -                try {
            -                  // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings.
            -                  parseSupported = !parse('"\t"');
            -                } catch (exception) {}
            -                Eif (parseSupported) {
            -                  try {
            -                    // FF 4.0 and 4.0.1 allow leading `+` signs and leading
            -                    // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow
            -                    // certain octal literals.
            -                    parseSupported = parse("01") !== 1;
            -                  } catch (exception) {}
            -                }
            -                Eif (parseSupported) {
            -                  try {
            -                    // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal
            -                    // points. These environments, along with FF 3.1b1 and 2,
            -                    // also allow trailing commas in JSON objects and arrays.
            -                    parseSupported = parse("1.") !== 1;
            -                  } catch (exception) {}
            -                }
            -              }
            -            }
            -          } catch (exception) {
            -            parseSupported = false;
            -          }
            -        }
            -        isSupported = parseSupported;
            -      }
            -    }
            -    return has[name] = !!isSupported;
            -  }
            -  has["bug-string-char-index"] = null;
            -  has["json"] = null;
            -  has["json-stringify"] = null;
            -  has["json-parse"] = null;
            - 
            -  Iif (!has("json")) {
            -    // Common `[[Class]]` name aliases.
            -    var functionClass = "[object Function]";
            -    var dateClass = "[object Date]";
            -    var numberClass = "[object Number]";
            -    var stringClass = "[object String]";
            -    var arrayClass = "[object Array]";
            -    var booleanClass = "[object Boolean]";
            - 
            -    // Detect incomplete support for accessing string characters by index.
            -    var charIndexBuggy = has("bug-string-char-index");
            - 
            -    // Define additional utility methods if the `Date` methods are buggy.
            -    if (!isExtended) {
            -      var floor = Math.floor;
            -      // A mapping between the months of the year and the number of days between
            -      // January 1st and the first of the respective month.
            -      var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];
            -      // Internal: Calculates the number of days between the Unix epoch and the
            -      // first day of the given month.
            -      var getDay = function (year, month) {
            -        return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400);
            -      };
            -    }
            - 
            -    // Internal: Determines if a property is a direct property of the given
            -    // object. Delegates to the native `Object#hasOwnProperty` method.
            -    if (!(isProperty = {}.hasOwnProperty)) {
            -      isProperty = function (property) {
            -        var members = {}, constructor;
            -        if ((members.__proto__ = null, members.__proto__ = {
            -          // The *proto* property cannot be set multiple times in recent
            -          // versions of Firefox and SeaMonkey.
            -          "toString": 1
            -        }, members).toString != getClass) {
            -          // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but
            -          // supports the mutable *proto* property.
            -          isProperty = function (property) {
            -            // Capture and break the object's prototype chain (see section 8.6.2
            -            // of the ES 5.1 spec). The parenthesized expression prevents an
            -            // unsafe transformation by the Closure Compiler.
            -            var original = this.__proto__, result = property in (this.__proto__ = null, this);
            -            // Restore the original prototype chain.
            -            this.__proto__ = original;
            -            return result;
            -          };
            -        } else {
            -          // Capture a reference to the top-level `Object` constructor.
            -          constructor = members.constructor;
            -          // Use the `constructor` property to simulate `Object#hasOwnProperty` in
            -          // other environments.
            -          isProperty = function (property) {
            -            var parent = (this.constructor || constructor).prototype;
            -            return property in this && !(property in parent && this[property] === parent[property]);
            -          };
            -        }
            -        members = null;
            -        return isProperty.call(this, property);
            -      };
            -    }
            - 
            -    // Internal: A set of primitive types used by `isHostType`.
            -    var PrimitiveTypes = {
            -      'boolean': 1,
            -      'number': 1,
            -      'string': 1,
            -      'undefined': 1
            -    };
            - 
            -    // Internal: Determines if the given object `property` value is a
            -    // non-primitive.
            -    var isHostType = function (object, property) {
            -      var type = typeof object[property];
            -      return type == 'object' ? !!object[property] : !PrimitiveTypes[type];
            -    };
            - 
            -    // Internal: Normalizes the `for...in` iteration algorithm across
            -    // environments. Each enumerated key is yielded to a `callback` function.
            -    forEach = function (object, callback) {
            -      var size = 0, Properties, members, property;
            - 
            -      // Tests for bugs in the current environment's `for...in` algorithm. The
            -      // `valueOf` property inherits the non-enumerable flag from
            -      // `Object.prototype` in older versions of IE, Netscape, and Mozilla.
            -      (Properties = function () {
            -        this.valueOf = 0;
            -      }).prototype.valueOf = 0;
            - 
            -      // Iterate over a new instance of the `Properties` class.
            -      members = new Properties();
            -      for (property in members) {
            -        // Ignore all properties inherited from `Object.prototype`.
            -        if (isProperty.call(members, property)) {
            -          size++;
            -        }
            -      }
            -      Properties = members = null;
            - 
            -      // Normalize the iteration algorithm.
            -      if (!size) {
            -        // A list of non-enumerable properties inherited from `Object.prototype`.
            -        members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"];
            -        // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable
            -        // properties.
            -        forEach = function (object, callback) {
            -          var isFunction = getClass.call(object) == functionClass, property, length;
            -          var hasProperty = !isFunction && typeof object.constructor != 'function' && isHostType(object, 'hasOwnProperty') ? object.hasOwnProperty : isProperty;
            -          for (property in object) {
            -            // Gecko <= 1.0 enumerates the `prototype` property of functions under
            -            // certain conditions; IE does not.
            -            if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) {
            -              callback(property);
            -            }
            -          }
            -          // Manually invoke the callback for each non-enumerable property.
            -          for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property));
            -        };
            -      } else if (size == 2) {
            -        // Safari <= 2.0.4 enumerates shadowed properties twice.
            -        forEach = function (object, callback) {
            -          // Create a set of iterated properties.
            -          var members = {}, isFunction = getClass.call(object) == functionClass, property;
            -          for (property in object) {
            -            // Store each property name to prevent double enumeration. The
            -            // `prototype` property of functions is not enumerated due to cross-
            -            // environment inconsistencies.
            -            if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) {
            -              callback(property);
            -            }
            -          }
            -        };
            -      } else {
            -        // No bugs detected; use the standard `for...in` algorithm.
            -        forEach = function (object, callback) {
            -          var isFunction = getClass.call(object) == functionClass, property, isConstructor;
            -          for (property in object) {
            -            if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) {
            -              callback(property);
            -            }
            -          }
            -          // Manually invoke the callback for the `constructor` property due to
            -          // cross-environment inconsistencies.
            -          if (isConstructor || isProperty.call(object, (property = "constructor"))) {
            -            callback(property);
            -          }
            -        };
            -      }
            -      return forEach(object, callback);
            -    };
            - 
            -    // Public: Serializes a JavaScript `value` as a JSON string. The optional
            -    // `filter` argument may specify either a function that alters how object and
            -    // array members are serialized, or an array of strings and numbers that
            -    // indicates which properties should be serialized. The optional `width`
            -    // argument may be either a string or number that specifies the indentation
            -    // level of the output.
            -    if (!has("json-stringify")) {
            -      // Internal: A map of control characters and their escaped equivalents.
            -      var Escapes = {
            -        92: "\\\\",
            -        34: '\\"',
            -        8: "\\b",
            -        12: "\\f",
            -        10: "\\n",
            -        13: "\\r",
            -        9: "\\t"
            -      };
            - 
            -      // Internal: Converts `value` into a zero-padded string such that its
            -      // length is at least equal to `width`. The `width` must be <= 6.
            -      var leadingZeroes = "000000";
            -      var toPaddedString = function (width, value) {
            -        // The `|| 0` expression is necessary to work around a bug in
            -        // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`.
            -        return (leadingZeroes + (value || 0)).slice(-width);
            -      };
            - 
            -      // Internal: Double-quotes a string `value`, replacing all ASCII control
            -      // characters (characters with code unit values between 0 and 31) with
            -      // their escaped equivalents. This is an implementation of the
            -      // `Quote(value)` operation defined in ES 5.1 section 15.12.3.
            -      var unicodePrefix = "\\u00";
            -      var quote = function (value) {
            -        var result = '"', index = 0, length = value.length, isLarge = length > 10 && charIndexBuggy, symbols;
            -        if (isLarge) {
            -          symbols = value.split("");
            -        }
            -        for (; index < length; index++) {
            -          var charCode = value.charCodeAt(index);
            -          // If the character is a control character, append its Unicode or
            -          // shorthand escape sequence; otherwise, append the character as-is.
            -          switch (charCode) {
            -            case 8: case 9: case 10: case 12: case 13: case 34: case 92:
            -              result += Escapes[charCode];
            -              break;
            -            default:
            -              if (charCode < 32) {
            -                result += unicodePrefix + toPaddedString(2, charCode.toString(16));
            -                break;
            -              }
            -              result += isLarge ? symbols[index] : charIndexBuggy ? value.charAt(index) : value[index];
            -          }
            -        }
            -        return result + '"';
            -      };
            - 
            -      // Internal: Recursively serializes an object. Implements the
            -      // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations.
            -      var serialize = function (property, object, callback, properties, whitespace, indentation, stack) {
            -        var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, hasMembers, result;
            -        try {
            -          // Necessary for host object support.
            -          value = object[property];
            -        } catch (exception) {}
            -        if (typeof value == "object" && value) {
            -          className = getClass.call(value);
            -          if (className == dateClass && !isProperty.call(value, "toJSON")) {
            -            if (value > -1 / 0 && value < 1 / 0) {
            -              // Dates are serialized according to the `Date#toJSON` method
            -              // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15
            -              // for the ISO 8601 date time string format.
            -              if (getDay) {
            -                // Manually compute the year, month, date, hours, minutes,
            -                // seconds, and milliseconds if the `getUTC*` methods are
            -                // buggy. Adapted from @Yaffle's `date-shim` project.
            -                date = floor(value / 864e5);
            -                for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++);
            -                for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++);
            -                date = 1 + date - getDay(year, month);
            -                // The `time` value specifies the time within the day (see ES
            -                // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used
            -                // to compute `A modulo B`, as the `%` operator does not
            -                // correspond to the `modulo` operation for negative numbers.
            -                time = (value % 864e5 + 864e5) % 864e5;
            -                // The hours, minutes, seconds, and milliseconds are obtained by
            -                // decomposing the time within the day. See section 15.9.1.10.
            -                hours = floor(time / 36e5) % 24;
            -                minutes = floor(time / 6e4) % 60;
            -                seconds = floor(time / 1e3) % 60;
            -                milliseconds = time % 1e3;
            -              } else {
            -                year = value.getUTCFullYear();
            -                month = value.getUTCMonth();
            -                date = value.getUTCDate();
            -                hours = value.getUTCHours();
            -                minutes = value.getUTCMinutes();
            -                seconds = value.getUTCSeconds();
            -                milliseconds = value.getUTCMilliseconds();
            -              }
            -              // Serialize extended years correctly.
            -              value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) +
            -                "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) +
            -                // Months, dates, hours, minutes, and seconds should have two
            -                // digits; milliseconds should have three.
            -                "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) +
            -                // Milliseconds are optional in ES 5.0, but required in 5.1.
            -                "." + toPaddedString(3, milliseconds) + "Z";
            -            } else {
            -              value = null;
            -            }
            -          } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) {
            -            // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the
            -            // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3
            -            // ignores all `toJSON` methods on these objects unless they are
            -            // defined directly on an instance.
            -            value = value.toJSON(property);
            -          }
            -        }
            -        if (callback) {
            -          // If a replacement function was provided, call it to obtain the value
            -          // for serialization.
            -          value = callback.call(object, property, value);
            -        }
            -        if (value === null) {
            -          return "null";
            -        }
            -        className = getClass.call(value);
            -        if (className == booleanClass) {
            -          // Booleans are represented literally.
            -          return "" + value;
            -        } else if (className == numberClass) {
            -          // JSON numbers must be finite. `Infinity` and `NaN` are serialized as
            -          // `"null"`.
            -          return value > -1 / 0 && value < 1 / 0 ? "" + value : "null";
            -        } else if (className == stringClass) {
            -          // Strings are double-quoted and escaped.
            -          return quote("" + value);
            -        }
            -        // Recursively serialize objects and arrays.
            -        if (typeof value == "object") {
            -          // Check for cyclic structures. This is a linear search; performance
            -          // is inversely proportional to the number of unique nested objects.
            -          for (length = stack.length; length--;) {
            -            if (stack[length] === value) {
            -              // Cyclic structures cannot be serialized by `JSON.stringify`.
            -              throw TypeError();
            -            }
            -          }
            -          // Add the object to the stack of traversed objects.
            -          stack.push(value);
            -          results = [];
            -          // Save the current indentation level and indent one additional level.
            -          prefix = indentation;
            -          indentation += whitespace;
            -          if (className == arrayClass) {
            -            // Recursively serialize array elements.
            -            for (index = 0, length = value.length; index < length; hasMembers || (hasMembers = true), index++) {
            -              element = serialize(index, value, callback, properties, whitespace, indentation, stack);
            -              results.push(element === undef ? "null" : element);
            -            }
            -            result = hasMembers ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]";
            -          } else {
            -            // Recursively serialize object members. Members are selected from
            -            // either a user-specified list of property names, or the object
            -            // itself.
            -            forEach(properties || value, function (property) {
            -              var element = serialize(property, value, callback, properties, whitespace, indentation, stack);
            -              if (element !== undef) {
            -                // According to ES 5.1 section 15.12.3: "If `gap` {whitespace}
            -                // is not the empty string, let `member` {quote(property) + ":"}
            -                // be the concatenation of `member` and the `space` character."
            -                // The "`space` character" refers to the literal space
            -                // character, not the `space` {width} argument provided to
            -                // `JSON.stringify`.
            -                results.push(quote(property) + ":" + (whitespace ? " " : "") + element);
            -              }
            -              hasMembers || (hasMembers = true);
            -            });
            -            result = hasMembers ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}";
            -          }
            -          // Remove the object from the traversed object stack.
            -          stack.pop();
            -          return result;
            -        }
            -      };
            - 
            -      // Public: `JSON.stringify`. See ES 5.1 section 15.12.3.
            -      JSON3.stringify = function (source, filter, width) {
            -        var whitespace, callback, properties, className;
            -        if (typeof filter == "function" || typeof filter == "object" && filter) {
            -          if ((className = getClass.call(filter)) == functionClass) {
            -            callback = filter;
            -          } else if (className == arrayClass) {
            -            // Convert the property names array into a makeshift set.
            -            properties = {};
            -            for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((getClass.call(value) == stringClass || getClass.call(value) == numberClass) && (properties[value] = 1)));
            -          }
            -        }
            -        if (width) {
            -          if ((className = getClass.call(width)) == numberClass) {
            -            // Convert the `width` to an integer and create a string containing
            -            // `width` number of space characters.
            -            if ((width -= width % 1) > 0) {
            -              for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " ");
            -            }
            -          } else if (className == stringClass) {
            -            whitespace = width.length <= 10 ? width : width.slice(0, 10);
            -          }
            -        }
            -        // Opera <= 7.54u2 discards the values associated with empty string keys
            -        // (`""`) only if they are used directly within an object member list
            -        // (e.g., `!("" in { "": 1})`).
            -        return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []);
            -      };
            -    }
            - 
            -    // Public: Parses a JSON source string.
            -    if (!has("json-parse")) {
            -      var fromCharCode = String.fromCharCode;
            - 
            -      // Internal: A map of escaped control characters and their unescaped
            -      // equivalents.
            -      var Unescapes = {
            -        92: "\\",
            -        34: '"',
            -        47: "/",
            -        98: "\b",
            -        116: "\t",
            -        110: "\n",
            -        102: "\f",
            -        114: "\r"
            -      };
            - 
            -      // Internal: Stores the parser state.
            -      var Index, Source;
            - 
            -      // Internal: Resets the parser state and throws a `SyntaxError`.
            -      var abort = function() {
            -        Index = Source = null;
            -        throw SyntaxError();
            -      };
            - 
            -      // Internal: Returns the next token, or `"$"` if the parser has reached
            -      // the end of the source string. A token may be a string, number, `null`
            -      // literal, or Boolean literal.
            -      var lex = function () {
            -        var source = Source, length = source.length, value, begin, position, isSigned, charCode;
            -        while (Index < length) {
            -          charCode = source.charCodeAt(Index);
            -          switch (charCode) {
            -            case 9: case 10: case 13: case 32:
            -              // Skip whitespace tokens, including tabs, carriage returns, line
            -              // feeds, and space characters.
            -              Index++;
            -              break;
            -            case 123: case 125: case 91: case 93: case 58: case 44:
            -              // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at
            -              // the current position.
            -              value = charIndexBuggy ? source.charAt(Index) : source[Index];
            -              Index++;
            -              return value;
            -            case 34:
            -              // `"` delimits a JSON string; advance to the next character and
            -              // begin parsing the string. String tokens are prefixed with the
            -              // sentinel `@` character to distinguish them from punctuators and
            -              // end-of-string tokens.
            -              for (value = "@", Index++; Index < length;) {
            -                charCode = source.charCodeAt(Index);
            -                if (charCode < 32) {
            -                  // Unescaped ASCII control characters (those with a code unit
            -                  // less than the space character) are not permitted.
            -                  abort();
            -                } else if (charCode == 92) {
            -                  // A reverse solidus (`\`) marks the beginning of an escaped
            -                  // control character (including `"`, `\`, and `/`) or Unicode
            -                  // escape sequence.
            -                  charCode = source.charCodeAt(++Index);
            -                  switch (charCode) {
            -                    case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114:
            -                      // Revive escaped control characters.
            -                      value += Unescapes[charCode];
            -                      Index++;
            -                      break;
            -                    case 117:
            -                      // `\u` marks the beginning of a Unicode escape sequence.
            -                      // Advance to the first character and validate the
            -                      // four-digit code point.
            -                      begin = ++Index;
            -                      for (position = Index + 4; Index < position; Index++) {
            -                        charCode = source.charCodeAt(Index);
            -                        // A valid sequence comprises four hexdigits (case-
            -                        // insensitive) that form a single hexadecimal value.
            -                        if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) {
            -                          // Invalid Unicode escape sequence.
            -                          abort();
            -                        }
            -                      }
            -                      // Revive the escaped character.
            -                      value += fromCharCode("0x" + source.slice(begin, Index));
            -                      break;
            -                    default:
            -                      // Invalid escape sequence.
            -                      abort();
            -                  }
            -                } else {
            -                  if (charCode == 34) {
            -                    // An unescaped double-quote character marks the end of the
            -                    // string.
            -                    break;
            -                  }
            -                  charCode = source.charCodeAt(Index);
            -                  begin = Index;
            -                  // Optimize for the common case where a string is valid.
            -                  while (charCode >= 32 && charCode != 92 && charCode != 34) {
            -                    charCode = source.charCodeAt(++Index);
            -                  }
            -                  // Append the string as-is.
            -                  value += source.slice(begin, Index);
            -                }
            -              }
            -              if (source.charCodeAt(Index) == 34) {
            -                // Advance to the next character and return the revived string.
            -                Index++;
            -                return value;
            -              }
            -              // Unterminated string.
            -              abort();
            -            default:
            -              // Parse numbers and literals.
            -              begin = Index;
            -              // Advance past the negative sign, if one is specified.
            -              if (charCode == 45) {
            -                isSigned = true;
            -                charCode = source.charCodeAt(++Index);
            -              }
            -              // Parse an integer or floating-point value.
            -              if (charCode >= 48 && charCode <= 57) {
            -                // Leading zeroes are interpreted as octal literals.
            -                if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) {
            -                  // Illegal octal literal.
            -                  abort();
            -                }
            -                isSigned = false;
            -                // Parse the integer component.
            -                for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++);
            -                // Floats cannot contain a leading decimal point; however, this
            -                // case is already accounted for by the parser.
            -                if (source.charCodeAt(Index) == 46) {
            -                  position = ++Index;
            -                  // Parse the decimal component.
            -                  for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);
            -                  if (position == Index) {
            -                    // Illegal trailing decimal.
            -                    abort();
            -                  }
            -                  Index = position;
            -                }
            -                // Parse exponents. The `e` denoting the exponent is
            -                // case-insensitive.
            -                charCode = source.charCodeAt(Index);
            -                if (charCode == 101 || charCode == 69) {
            -                  charCode = source.charCodeAt(++Index);
            -                  // Skip past the sign following the exponent, if one is
            -                  // specified.
            -                  if (charCode == 43 || charCode == 45) {
            -                    Index++;
            -                  }
            -                  // Parse the exponential component.
            -                  for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);
            -                  if (position == Index) {
            -                    // Illegal empty exponent.
            -                    abort();
            -                  }
            -                  Index = position;
            -                }
            -                // Coerce the parsed value to a JavaScript number.
            -                return +source.slice(begin, Index);
            -              }
            -              // A negative sign may only precede numbers.
            -              if (isSigned) {
            -                abort();
            -              }
            -              // `true`, `false`, and `null` literals.
            -              if (source.slice(Index, Index + 4) == "true") {
            -                Index += 4;
            -                return true;
            -              } else if (source.slice(Index, Index + 5) == "false") {
            -                Index += 5;
            -                return false;
            -              } else if (source.slice(Index, Index + 4) == "null") {
            -                Index += 4;
            -                return null;
            -              }
            -              // Unrecognized token.
            -              abort();
            -          }
            -        }
            -        // Return the sentinel `$` character if the parser has reached the end
            -        // of the source string.
            -        return "$";
            -      };
            - 
            -      // Internal: Parses a JSON `value` token.
            -      var get = function (value) {
            -        var results, hasMembers;
            -        if (value == "$") {
            -          // Unexpected end of input.
            -          abort();
            -        }
            -        if (typeof value == "string") {
            -          if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") {
            -            // Remove the sentinel `@` character.
            -            return value.slice(1);
            -          }
            -          // Parse object and array literals.
            -          if (value == "[") {
            -            // Parses a JSON array, returning a new JavaScript array.
            -            results = [];
            -            for (;; hasMembers || (hasMembers = true)) {
            -              value = lex();
            -              // A closing square bracket marks the end of the array literal.
            -              if (value == "]") {
            -                break;
            -              }
            -              // If the array literal contains elements, the current token
            -              // should be a comma separating the previous element from the
            -              // next.
            -              if (hasMembers) {
            -                if (value == ",") {
            -                  value = lex();
            -                  if (value == "]") {
            -                    // Unexpected trailing `,` in array literal.
            -                    abort();
            -                  }
            -                } else {
            -                  // A `,` must separate each array element.
            -                  abort();
            -                }
            -              }
            -              // Elisions and leading commas are not permitted.
            -              if (value == ",") {
            -                abort();
            -              }
            -              results.push(get(value));
            -            }
            -            return results;
            -          } else if (value == "{") {
            -            // Parses a JSON object, returning a new JavaScript object.
            -            results = {};
            -            for (;; hasMembers || (hasMembers = true)) {
            -              value = lex();
            -              // A closing curly brace marks the end of the object literal.
            -              if (value == "}") {
            -                break;
            -              }
            -              // If the object literal contains members, the current token
            -              // should be a comma separator.
            -              if (hasMembers) {
            -                if (value == ",") {
            -                  value = lex();
            -                  if (value == "}") {
            -                    // Unexpected trailing `,` in object literal.
            -                    abort();
            -                  }
            -                } else {
            -                  // A `,` must separate each object member.
            -                  abort();
            -                }
            -              }
            -              // Leading commas are not permitted, object property names must be
            -              // double-quoted strings, and a `:` must separate each property
            -              // name and value.
            -              if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") {
            -                abort();
            -              }
            -              results[value.slice(1)] = get(lex());
            -            }
            -            return results;
            -          }
            -          // Unexpected token encountered.
            -          abort();
            -        }
            -        return value;
            -      };
            - 
            -      // Internal: Updates a traversed object member.
            -      var update = function(source, property, callback) {
            -        var element = walk(source, property, callback);
            -        if (element === undef) {
            -          delete source[property];
            -        } else {
            -          source[property] = element;
            -        }
            -      };
            - 
            -      // Internal: Recursively traverses a parsed JSON object, invoking the
            -      // `callback` function for each value. This is an implementation of the
            -      // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2.
            -      var walk = function (source, property, callback) {
            -        var value = source[property], length;
            -        if (typeof value == "object" && value) {
            -          // `forEach` can't be used to traverse an array in Opera <= 8.54
            -          // because its `Object#hasOwnProperty` implementation returns `false`
            -          // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`).
            -          if (getClass.call(value) == arrayClass) {
            -            for (length = value.length; length--;) {
            -              update(value, length, callback);
            -            }
            -          } else {
            -            forEach(value, function (property) {
            -              update(value, property, callback);
            -            });
            -          }
            -        }
            -        return callback.call(source, property, value);
            -      };
            - 
            -      // Public: `JSON.parse`. See ES 5.1 section 15.12.2.
            -      JSON3.parse = function (source, callback) {
            -        var result, value;
            -        Index = 0;
            -        Source = "" + source;
            -        result = get(lex());
            -        // If a JSON string contains multiple tokens, it is invalid.
            -        if (lex() != "$") {
            -          abort();
            -        }
            -        // Reset the parser state.
            -        Index = Source = null;
            -        return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result;
            -      };
            -    }
            -  }
            - 
            -  // Export for asynchronous module loaders.
            -  Iif (isLoader) {
            -    define(function () {
            -      return JSON3;
            -    });
            -  }
            -}(this));
            - 
            - -
            - - - - - - - - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/prettify.css b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/prettify.css deleted file mode 100644 index b317a7cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/prettify.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/prettify.js deleted file mode 100644 index ef51e038..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/prettify.js +++ /dev/null @@ -1 +0,0 @@ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov.info b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov.info deleted file mode 100644 index 9a4d72d2..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov.info +++ /dev/null @@ -1,2035 +0,0 @@ -TN: -SF:/Users/kit/Dropbox/Projects/json3/vendor/spec/lib/spec.js -FN:11,(anonymous_1) -FN:20,(anonymous_2) -FN:21,noConflict -FN:31,(anonymous_4) -FN:70,(anonymous_5) -FN:78,hasKey -FN:86,hasKey -FN:102,hasKey -FN:117,(anonymous_9) -FN:123,Properties -FN:145,forOwn -FN:169,forOwn -FN:188,forOwn -FN:210,(anonymous_14) -FN:213,eq -FN:289,(anonymous_16) -FN:297,(anonymous_17) -FN:311,equals -FN:328,forEach -FN:343,(anonymous_20) -FN:347,defer -FN:354,run -FN:361,defer -FN:362,run -FN:370,defer -FN:372,run -FN:387,(anonymous_27) -FN:395,defer -FN:404,rethrow -FN:405,(anonymous_30) -FN:418,Events -FN:429,addListener -FN:431,(anonymous_33) -FN:454,removeListener -FN:459,(anonymous_35) -FN:483,emit -FN:531,Suite -FN:547,(anonymous_38) -FN:555,shuffle -FN:567,addTest -FN:575,index -FN:594,onSuiteEvent -FN:622,runSuite -FN:645,Test -FN:668,onTestEvent -FN:697,assert -FN:698,assertion -FN:710,runTest -FN:720,ok -FN:735,notOk -FN:742,assertEqual -FN:748,assertNotEqual -FN:754,assertStrictEqual -FN:760,assertStrictNotEqual -FN:770,assertNotDeepEqual -FN:776,assertError -FN:793,assertNoError -FN:806,done -FNF:58 -FNH:38 -FNDA:1,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,noConflict -FNDA:1,(anonymous_4) -FNDA:1,(anonymous_5) -FNDA:5538,hasKey -FNDA:0,hasKey -FNDA:0,hasKey -FNDA:1,(anonymous_9) -FNDA:1,Properties -FNDA:0,forOwn -FNDA:0,forOwn -FNDA:26,forOwn -FNDA:1,(anonymous_14) -FNDA:102,eq -FNDA:15,(anonymous_16) -FNDA:15,(anonymous_17) -FNDA:51,equals -FNDA:49,forEach -FNDA:1,(anonymous_20) -FNDA:0,defer -FNDA:0,run -FNDA:0,defer -FNDA:0,run -FNDA:0,defer -FNDA:0,run -FNDA:0,(anonymous_27) -FNDA:11,defer -FNDA:0,rethrow -FNDA:0,(anonymous_30) -FNDA:14,Events -FNDA:34,addListener -FNDA:34,(anonymous_33) -FNDA:11,removeListener -FNDA:11,(anonymous_35) -FNDA:594,emit -FNDA:1,Suite -FNDA:1,(anonymous_38) -FNDA:1,shuffle -FNDA:11,addTest -FNDA:12,index -FNDA:296,onSuiteEvent -FNDA:1,runSuite -FNDA:11,Test -FNDA:296,onTestEvent -FNDA:6,assert -FNDA:117,assertion -FNDA:11,runTest -FNDA:274,ok -FNDA:0,notOk -FNDA:15,assertEqual -FNDA:0,assertNotEqual -FNDA:51,assertStrictEqual -FNDA:0,assertStrictNotEqual -FNDA:0,assertNotDeepEqual -FNDA:156,assertError -FNDA:0,assertNoError -FNDA:11,done -DA:11,1 -DA:12,1 -DA:14,0 -DA:17,1 -DA:21,1 -DA:22,0 -DA:24,0 -DA:25,0 -DA:27,0 -DA:35,1 -DA:41,1 -DA:71,1 -DA:73,1 -DA:74,1 -DA:76,1 -DA:78,1 -DA:79,5538 -DA:80,0 -DA:82,5538 -DA:84,0 -DA:86,0 -DA:87,0 -DA:88,0 -DA:89,0 -DA:93,0 -DA:94,0 -DA:96,0 -DA:97,0 -DA:102,0 -DA:103,0 -DA:104,0 -DA:106,0 -DA:107,0 -DA:110,1 -DA:118,1 -DA:123,1 -DA:124,1 -DA:126,1 -DA:129,1 -DA:130,1 -DA:132,1 -DA:133,1 -DA:136,1 -DA:139,1 -DA:141,0 -DA:144,0 -DA:145,0 -DA:146,0 -DA:147,0 -DA:148,0 -DA:150,0 -DA:151,0 -DA:154,0 -DA:155,0 -DA:159,0 -DA:160,0 -DA:161,0 -DA:162,0 -DA:166,1 -DA:168,0 -DA:169,0 -DA:170,0 -DA:171,0 -DA:172,0 -DA:175,0 -DA:176,0 -DA:177,0 -DA:181,0 -DA:182,0 -DA:188,1 -DA:189,26 -DA:190,26 -DA:191,0 -DA:193,26 -DA:194,26 -DA:195,30 -DA:196,0 -DA:201,26 -DA:202,0 -DA:206,1 -DA:213,1 -DA:214,102 -DA:216,102 -DA:219,72 -DA:222,30 -DA:223,0 -DA:225,30 -DA:226,30 -DA:227,0 -DA:229,30 -DA:234,0 -DA:236,0 -DA:237,0 -DA:240,0 -DA:246,0 -DA:250,0 -DA:256,30 -DA:257,0 -DA:263,30 -DA:264,22 -DA:265,0 -DA:269,30 -DA:270,30 -DA:272,30 -DA:274,17 -DA:275,17 -DA:276,17 -DA:278,17 -DA:280,36 -DA:281,0 -DA:286,13 -DA:288,13 -DA:289,13 -DA:291,15 -DA:293,15 -DA:296,13 -DA:297,13 -DA:298,15 -DA:299,0 -DA:302,13 -DA:306,30 -DA:307,30 -DA:311,1 -DA:312,51 -DA:315,51 -DA:316,0 -DA:319,51 -DA:322,1 -DA:329,49 -DA:330,49 -DA:331,0 -DA:333,49 -DA:334,114 -DA:335,0 -DA:338,49 -DA:344,1 -DA:346,1 -DA:347,1 -DA:354,1 -DA:355,0 -DA:357,0 -DA:360,0 -DA:361,0 -DA:362,1 -DA:363,0 -DA:365,0 -DA:369,0 -DA:370,0 -DA:371,0 -DA:372,1 -DA:376,0 -DA:377,0 -DA:382,0 -DA:386,0 -DA:387,0 -DA:388,0 -DA:390,0 -DA:394,1 -DA:395,1 -DA:396,11 -DA:399,1 -DA:404,1 -DA:405,0 -DA:406,0 -DA:417,1 -DA:418,1 -DA:419,14 -DA:428,1 -DA:429,1 -DA:430,34 -DA:431,34 -DA:432,34 -DA:433,34 -DA:435,34 -DA:436,34 -DA:438,34 -DA:444,34 -DA:453,1 -DA:454,1 -DA:455,11 -DA:457,0 -DA:458,11 -DA:459,11 -DA:460,11 -DA:461,11 -DA:463,11 -DA:464,11 -DA:466,11 -DA:467,11 -DA:468,22 -DA:469,11 -DA:476,11 -DA:482,1 -DA:483,1 -DA:484,594 -DA:486,594 -DA:487,13 -DA:489,594 -DA:491,594 -DA:492,298 -DA:495,594 -DA:496,594 -DA:497,0 -DA:498,0 -DA:500,0 -DA:501,0 -DA:503,0 -DA:508,594 -DA:509,594 -DA:510,594 -DA:511,890 -DA:512,890 -DA:514,0 -DA:518,594 -DA:528,1 -DA:531,1 -DA:532,1 -DA:533,1 -DA:534,1 -DA:536,1 -DA:540,1 -DA:543,1 -DA:544,1 -DA:547,1 -DA:548,1 -DA:549,8 -DA:554,1 -DA:555,1 -DA:556,1 -DA:557,11 -DA:558,11 -DA:559,11 -DA:560,11 -DA:562,1 -DA:566,1 -DA:567,1 -DA:568,11 -DA:569,11 -DA:574,1 -DA:575,1 -DA:576,12 -DA:577,12 -DA:578,12 -DA:579,0 -DA:581,12 -DA:582,11 -DA:583,11 -DA:584,11 -DA:587,1 -DA:593,1 -DA:594,1 -DA:595,296 -DA:597,296 -DA:598,296 -DA:601,274 -DA:602,274 -DA:604,0 -DA:605,0 -DA:608,11 -DA:609,11 -DA:610,10 -DA:612,10 -DA:615,1 -DA:621,1 -DA:622,1 -DA:624,1 -DA:625,1 -DA:627,1 -DA:629,1 -DA:630,1 -DA:632,1 -DA:635,0 -DA:637,1 -DA:644,1 -DA:645,1 -DA:646,11 -DA:647,11 -DA:648,0 -DA:649,0 -DA:651,11 -DA:652,11 -DA:654,11 -DA:656,11 -DA:660,1 -DA:661,1 -DA:664,1 -DA:667,1 -DA:668,1 -DA:669,296 -DA:670,296 -DA:672,11 -DA:673,11 -DA:675,274 -DA:676,274 -DA:678,0 -DA:679,0 -DA:681,11 -DA:683,11 -DA:684,0 -DA:696,1 -DA:697,1 -DA:698,1 -DA:699,117 -DA:705,6 -DA:709,1 -DA:710,1 -DA:711,11 -DA:713,11 -DA:714,11 -DA:719,1 -DA:720,1 -DA:721,274 -DA:722,157 -DA:729,274 -DA:730,274 -DA:734,1 -DA:735,1 -DA:736,0 -DA:741,1 -DA:742,1 -DA:743,15 -DA:747,1 -DA:748,1 -DA:749,0 -DA:753,1 -DA:754,1 -DA:755,51 -DA:759,1 -DA:760,1 -DA:761,0 -DA:766,1 -DA:769,1 -DA:770,1 -DA:771,0 -DA:775,1 -DA:776,1 -DA:777,156 -DA:779,156 -DA:780,0 -DA:781,0 -DA:783,156 -DA:784,156 -DA:786,156 -DA:788,156 -DA:792,1 -DA:793,1 -DA:794,0 -DA:795,0 -DA:796,0 -DA:798,0 -DA:800,0 -DA:805,1 -DA:806,1 -DA:807,11 -DA:812,1 -LF:355 -LH:248 -BRDA:12,1,0,0 -BRDA:12,1,1,1 -BRDA:12,2,0,1 -BRDA:12,2,1,0 -BRDA:17,3,0,1 -BRDA:17,3,1,1 -BRDA:17,3,2,0 -BRDA:59,4,0,1 -BRDA:59,4,1,1 -BRDA:59,4,2,1 -BRDA:63,5,0,1 -BRDA:63,5,1,0 -BRDA:63,5,2,0 -BRDA:63,5,3,0 -BRDA:76,6,0,1 -BRDA:76,6,1,0 -BRDA:79,7,0,0 -BRDA:79,7,1,5538 -BRDA:84,8,0,0 -BRDA:84,8,1,0 -BRDA:88,9,0,0 -BRDA:88,9,1,0 -BRDA:103,10,0,0 -BRDA:103,10,1,0 -BRDA:106,11,0,0 -BRDA:106,11,1,0 -BRDA:107,12,0,0 -BRDA:107,12,1,0 -BRDA:107,13,0,0 -BRDA:107,13,1,0 -BRDA:132,14,0,1 -BRDA:132,14,1,0 -BRDA:139,15,0,0 -BRDA:139,15,1,1 -BRDA:147,16,0,0 -BRDA:147,16,1,0 -BRDA:154,17,0,0 -BRDA:154,17,1,0 -BRDA:154,18,0,0 -BRDA:154,18,1,0 -BRDA:154,18,2,0 -BRDA:154,19,0,0 -BRDA:154,19,1,0 -BRDA:161,20,0,0 -BRDA:161,20,1,0 -BRDA:161,21,0,0 -BRDA:161,21,1,0 -BRDA:166,22,0,0 -BRDA:166,22,1,1 -BRDA:171,23,0,0 -BRDA:171,23,1,0 -BRDA:181,24,0,0 -BRDA:181,24,1,0 -BRDA:181,25,0,0 -BRDA:181,25,1,0 -BRDA:181,25,2,0 -BRDA:181,25,3,0 -BRDA:181,25,4,0 -BRDA:181,26,0,0 -BRDA:181,26,1,0 -BRDA:190,27,0,0 -BRDA:190,27,1,26 -BRDA:195,28,0,0 -BRDA:195,28,1,30 -BRDA:195,29,0,30 -BRDA:195,29,1,30 -BRDA:195,29,2,30 -BRDA:195,29,3,30 -BRDA:195,30,0,30 -BRDA:195,30,1,0 -BRDA:201,31,0,0 -BRDA:201,31,1,26 -BRDA:201,32,0,26 -BRDA:201,32,1,26 -BRDA:216,33,0,72 -BRDA:216,33,1,30 -BRDA:219,34,0,72 -BRDA:219,34,1,15 -BRDA:222,35,0,0 -BRDA:222,35,1,30 -BRDA:226,36,0,0 -BRDA:226,36,1,30 -BRDA:229,37,0,0 -BRDA:229,37,1,0 -BRDA:229,37,2,0 -BRDA:229,37,3,0 -BRDA:229,37,4,0 -BRDA:240,38,0,0 -BRDA:240,38,1,0 -BRDA:240,39,0,0 -BRDA:240,39,1,0 -BRDA:250,40,0,0 -BRDA:250,40,1,0 -BRDA:250,40,2,0 -BRDA:250,40,3,0 -BRDA:250,40,4,0 -BRDA:256,41,0,0 -BRDA:256,41,1,30 -BRDA:256,42,0,30 -BRDA:256,42,1,30 -BRDA:264,43,0,0 -BRDA:264,43,1,22 -BRDA:272,44,0,17 -BRDA:272,44,1,13 -BRDA:276,45,0,17 -BRDA:276,45,1,0 -BRDA:280,46,0,0 -BRDA:280,46,1,36 -BRDA:280,47,0,36 -BRDA:280,47,1,36 -BRDA:293,48,0,15 -BRDA:293,48,1,15 -BRDA:296,49,0,13 -BRDA:296,49,1,0 -BRDA:298,50,0,0 -BRDA:298,50,1,15 -BRDA:315,51,0,0 -BRDA:315,51,1,51 -BRDA:330,52,0,0 -BRDA:330,52,1,49 -BRDA:334,53,0,0 -BRDA:334,53,1,114 -BRDA:346,54,0,1 -BRDA:346,54,1,0 -BRDA:360,55,0,0 -BRDA:360,55,1,0 -BRDA:369,56,0,0 -BRDA:369,56,1,0 -BRDA:394,57,0,1 -BRDA:394,57,1,0 -BRDA:394,58,0,1 -BRDA:394,58,1,1 -BRDA:430,59,0,34 -BRDA:430,59,1,0 -BRDA:430,60,0,34 -BRDA:430,60,1,34 -BRDA:432,61,0,34 -BRDA:432,61,1,11 -BRDA:432,62,0,11 -BRDA:432,62,1,23 -BRDA:440,63,0,11 -BRDA:440,63,1,23 -BRDA:455,64,0,0 -BRDA:455,64,1,11 -BRDA:458,65,0,11 -BRDA:458,65,1,0 -BRDA:460,66,0,11 -BRDA:460,66,1,11 -BRDA:461,67,0,11 -BRDA:461,67,1,0 -BRDA:464,68,0,11 -BRDA:464,68,1,0 -BRDA:466,69,0,11 -BRDA:466,69,1,11 -BRDA:467,70,0,33 -BRDA:467,70,1,33 -BRDA:468,71,0,11 -BRDA:468,71,1,11 -BRDA:468,72,0,22 -BRDA:468,72,1,22 -BRDA:468,72,2,11 -BRDA:468,72,3,11 -BRDA:468,72,4,11 -BRDA:486,73,0,13 -BRDA:486,73,1,581 -BRDA:486,74,0,594 -BRDA:486,74,1,581 -BRDA:489,75,0,594 -BRDA:489,75,1,594 -BRDA:491,76,0,298 -BRDA:491,76,1,296 -BRDA:495,77,0,594 -BRDA:495,77,1,594 -BRDA:495,77,2,594 -BRDA:496,78,0,0 -BRDA:496,78,1,594 -BRDA:496,79,0,594 -BRDA:496,79,1,0 -BRDA:497,80,0,0 -BRDA:497,80,1,0 -BRDA:498,81,0,0 -BRDA:498,81,1,0 -BRDA:501,82,0,0 -BRDA:501,82,1,0 -BRDA:501,82,2,0 -BRDA:508,83,0,594 -BRDA:508,83,1,0 -BRDA:509,84,0,594 -BRDA:509,84,1,594 -BRDA:510,85,0,1484 -BRDA:510,85,1,1484 -BRDA:512,86,0,890 -BRDA:512,86,1,890 -BRDA:512,86,2,298 -BRDA:533,87,0,1 -BRDA:533,87,1,0 -BRDA:577,88,0,12 -BRDA:577,88,1,1 -BRDA:578,89,0,0 -BRDA:578,89,1,12 -BRDA:582,90,0,11 -BRDA:582,90,1,11 -BRDA:583,91,0,11 -BRDA:583,91,1,0 -BRDA:583,92,0,11 -BRDA:583,92,1,11 -BRDA:583,92,2,11 -BRDA:598,93,0,274 -BRDA:598,93,1,0 -BRDA:598,93,2,11 -BRDA:609,94,0,10 -BRDA:609,94,1,1 -BRDA:629,95,0,1 -BRDA:629,95,1,0 -BRDA:647,96,0,0 -BRDA:647,96,1,11 -BRDA:647,97,0,11 -BRDA:647,97,1,11 -BRDA:651,98,0,11 -BRDA:651,98,1,0 -BRDA:670,99,0,11 -BRDA:670,99,1,274 -BRDA:670,99,2,0 -BRDA:670,99,3,11 -BRDA:683,100,0,0 -BRDA:683,100,1,11 -BRDA:683,101,0,11 -BRDA:683,101,1,0 -BRDA:683,101,2,11 -BRDA:702,102,0,0 -BRDA:702,102,1,117 -BRDA:721,103,0,157 -BRDA:721,103,1,117 -BRDA:725,104,0,0 -BRDA:725,104,1,157 -BRDA:729,105,0,274 -BRDA:729,105,1,0 -BRDA:736,106,0,0 -BRDA:736,106,1,0 -BRDA:779,107,0,0 -BRDA:779,107,1,156 -BRDA:779,108,0,156 -BRDA:779,108,1,0 -BRDA:786,109,0,156 -BRDA:786,109,1,156 -BRDA:786,109,2,156 -BRDA:788,110,0,0 -BRDA:788,110,1,156 -BRDA:800,111,0,0 -BRDA:800,111,1,0 -BRF:250 -BRH:133 -end_of_record -TN: -SF:/Users/kit/Dropbox/Projects/json3/vendor/spec/lib/newton.js -FN:8,(anonymous_1) -FN:26,(anonymous_2) -FN:42,(anonymous_3) -FN:43,noConflict -FN:52,(anonymous_5) -FN:61,(anonymous_6) -FN:62,stringify -FN:68,toPaddedString -FN:85,quote -FN:99,serialize -FN:155,(anonymous_11) -FN:172,all -FN:174,(anonymous_13) -FN:181,toQueryPair -FN:200,serializeQuery -FN:202,(anonymous_16) -FN:204,(anonymous_17) -FN:223,parseQuery -FN:256,isEmpty -FN:275,(anonymous_20) -FN:283,substitute -FN:333,createConsole -FN:334,onEvent -FN:359,createTAP -FN:362,description -FN:365,onEvent -FN:391,onClick -FN:401,(anonymous_28) -FN:405,(anonymous_29) -FN:427,serializeAttribute -FN:433,buildNode -FN:458,(anonymous_32) -FN:464,(anonymous_33) -FN:470,(anonymous_34) -FN:480,clearElement -FN:489,createReport -FN:490,onEvent -FNF:37 -FNH:6 -FNDA:1,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:0,noConflict -FNDA:1,(anonymous_5) -FNDA:1,(anonymous_6) -FNDA:0,stringify -FNDA:0,toPaddedString -FNDA:0,quote -FNDA:0,serialize -FNDA:0,(anonymous_11) -FNDA:0,all -FNDA:0,(anonymous_13) -FNDA:0,toQueryPair -FNDA:0,serializeQuery -FNDA:0,(anonymous_16) -FNDA:0,(anonymous_17) -FNDA:0,parseQuery -FNDA:0,isEmpty -FNDA:0,(anonymous_20) -FNDA:298,substitute -FNDA:1,createConsole -FNDA:298,onEvent -FNDA:0,createTAP -FNDA:0,description -FNDA:0,onEvent -FNDA:0,onClick -FNDA:0,(anonymous_28) -FNDA:0,(anonymous_29) -FNDA:0,serializeAttribute -FNDA:0,buildNode -FNDA:0,(anonymous_32) -FNDA:0,(anonymous_33) -FNDA:0,(anonymous_34) -FNDA:0,clearElement -FNDA:0,createReport -FNDA:0,onEvent -DA:8,1 -DA:10,1 -DA:24,1 -DA:26,0 -DA:27,0 -DA:29,1 -DA:31,1 -DA:33,1 -DA:35,1 -DA:38,0 -DA:39,0 -DA:41,0 -DA:43,1 -DA:44,0 -DA:45,0 -DA:46,0 -DA:48,0 -DA:56,1 -DA:62,1 -DA:63,0 -DA:68,1 -DA:69,0 -DA:73,1 -DA:85,1 -DA:86,0 -DA:87,0 -DA:90,0 -DA:95,0 -DA:99,1 -DA:100,0 -DA:101,0 -DA:102,0 -DA:104,0 -DA:105,0 -DA:110,0 -DA:113,0 -DA:115,0 -DA:116,0 -DA:121,0 -DA:123,0 -DA:131,0 -DA:134,0 -DA:138,0 -DA:139,0 -DA:140,0 -DA:144,0 -DA:145,0 -DA:146,0 -DA:148,0 -DA:149,0 -DA:150,0 -DA:153,0 -DA:155,0 -DA:157,0 -DA:159,0 -DA:162,0 -DA:164,0 -DA:167,1 -DA:173,0 -DA:174,0 -DA:175,0 -DA:177,0 -DA:182,0 -DA:183,0 -DA:184,0 -DA:186,0 -DA:190,0 -DA:201,0 -DA:202,0 -DA:203,0 -DA:204,0 -DA:205,0 -DA:206,0 -DA:207,0 -DA:210,0 -DA:211,0 -DA:214,0 -DA:224,0 -DA:226,0 -DA:227,0 -DA:229,0 -DA:230,0 -DA:231,0 -DA:232,0 -DA:233,0 -DA:234,0 -DA:235,0 -DA:236,0 -DA:237,0 -DA:240,0 -DA:242,0 -DA:243,0 -DA:244,0 -DA:246,0 -DA:248,0 -DA:252,0 -DA:257,0 -DA:258,0 -DA:259,0 -DA:261,0 -DA:265,0 -DA:266,0 -DA:270,0 -DA:273,0 -DA:275,0 -DA:276,0 -DA:284,298 -DA:285,298 -DA:286,298 -DA:287,0 -DA:289,298 -DA:290,4294 -DA:291,4294 -DA:292,322 -DA:293,322 -DA:295,0 -DA:297,322 -DA:299,322 -DA:303,24 -DA:304,24 -DA:307,0 -DA:308,0 -DA:311,0 -DA:312,0 -DA:315,298 -DA:319,0 -DA:322,322 -DA:324,322 -DA:326,3972 -DA:329,298 -DA:334,1 -DA:335,298 -DA:337,1 -DA:338,1 -DA:340,11 -DA:341,11 -DA:343,274 -DA:344,274 -DA:346,0 -DA:347,0 -DA:349,11 -DA:350,11 -DA:352,1 -DA:355,1 -DA:360,0 -DA:362,1 -DA:363,0 -DA:365,1 -DA:366,0 -DA:368,0 -DA:369,0 -DA:371,0 -DA:372,0 -DA:373,0 -DA:374,0 -DA:376,0 -DA:377,0 -DA:378,0 -DA:379,0 -DA:380,0 -DA:383,0 -DA:389,1 -DA:391,0 -DA:393,0 -DA:394,0 -DA:395,0 -DA:401,0 -DA:405,0 -DA:406,0 -DA:407,0 -DA:408,0 -DA:409,0 -DA:411,0 -DA:412,0 -DA:428,0 -DA:429,0 -DA:434,0 -DA:435,0 -DA:436,0 -DA:437,0 -DA:439,0 -DA:442,0 -DA:443,0 -DA:444,0 -DA:445,0 -DA:446,0 -DA:448,0 -DA:449,0 -DA:450,0 -DA:452,0 -DA:454,0 -DA:456,0 -DA:457,0 -DA:458,0 -DA:460,0 -DA:462,0 -DA:464,0 -DA:465,0 -DA:469,0 -DA:470,0 -DA:471,0 -DA:474,0 -DA:476,0 -DA:480,0 -DA:481,0 -DA:482,0 -DA:484,0 -DA:489,0 -DA:490,1 -DA:491,0 -DA:492,0 -DA:493,0 -DA:495,0 -DA:496,0 -DA:498,0 -DA:502,0 -DA:504,0 -DA:513,0 -DA:517,0 -DA:520,0 -DA:523,0 -DA:524,0 -DA:528,0 -DA:530,0 -DA:532,0 -DA:533,0 -DA:537,0 -DA:539,0 -DA:540,0 -DA:543,0 -DA:566,0 -DA:569,0 -DA:574,1 -DA:576,1 -LF:234 -LH:50 -BRDA:10,1,0,1 -BRDA:10,1,1,0 -BRDA:11,2,0,1 -BRDA:11,2,1,1 -BRDA:11,2,2,1 -BRDA:11,2,3,1 -BRDA:14,3,0,1 -BRDA:14,3,1,0 -BRDA:14,3,2,0 -BRDA:15,4,0,1 -BRDA:15,4,1,1 -BRDA:15,4,2,0 -BRDA:24,5,0,0 -BRDA:24,5,1,1 -BRDA:29,6,0,1 -BRDA:29,6,1,0 -BRDA:35,7,0,1 -BRDA:35,7,1,0 -BRDA:38,8,0,0 -BRDA:38,8,1,0 -BRDA:50,9,0,0 -BRDA:50,9,1,0 -BRDA:90,10,0,0 -BRDA:90,10,1,0 -BRDA:93,11,0,0 -BRDA:93,11,1,0 -BRDA:101,12,0,0 -BRDA:101,12,1,0 -BRDA:105,13,0,0 -BRDA:105,13,1,0 -BRDA:105,13,2,0 -BRDA:105,13,3,0 -BRDA:105,13,4,0 -BRDA:110,14,0,0 -BRDA:110,14,1,0 -BRDA:115,15,0,0 -BRDA:115,15,1,0 -BRDA:123,16,0,0 -BRDA:123,16,1,0 -BRDA:123,17,0,0 -BRDA:123,17,1,0 -BRDA:123,18,0,0 -BRDA:123,18,1,0 -BRDA:134,19,0,0 -BRDA:134,19,1,0 -BRDA:139,20,0,0 -BRDA:139,20,1,0 -BRDA:146,21,0,0 -BRDA:146,21,1,0 -BRDA:149,22,0,0 -BRDA:149,22,1,0 -BRDA:183,23,0,0 -BRDA:183,23,1,0 -BRDA:186,24,0,0 -BRDA:186,24,1,0 -BRDA:186,24,2,0 -BRDA:203,25,0,0 -BRDA:203,25,1,0 -BRDA:203,26,0,0 -BRDA:203,26,1,0 -BRDA:206,27,0,0 -BRDA:206,27,1,0 -BRDA:210,28,0,0 -BRDA:210,28,1,0 -BRDA:214,29,0,0 -BRDA:214,29,1,0 -BRDA:226,30,0,0 -BRDA:226,30,1,0 -BRDA:226,31,0,0 -BRDA:226,31,1,0 -BRDA:226,31,2,0 -BRDA:226,32,0,0 -BRDA:226,32,1,0 -BRDA:226,33,0,0 -BRDA:226,33,1,0 -BRDA:229,34,0,0 -BRDA:229,34,1,0 -BRDA:233,35,0,0 -BRDA:233,35,1,0 -BRDA:233,36,0,0 -BRDA:233,36,1,0 -BRDA:234,37,0,0 -BRDA:234,37,1,0 -BRDA:236,38,0,0 -BRDA:236,38,1,0 -BRDA:242,39,0,0 -BRDA:242,39,1,0 -BRDA:243,40,0,0 -BRDA:243,40,1,0 -BRDA:258,41,0,0 -BRDA:258,41,1,0 -BRDA:261,42,0,0 -BRDA:261,42,1,0 -BRDA:261,42,2,0 -BRDA:261,42,3,0 -BRDA:261,42,4,0 -BRDA:261,42,5,0 -BRDA:261,42,6,0 -BRDA:261,42,7,0 -BRDA:266,43,0,0 -BRDA:266,43,1,0 -BRDA:286,44,0,0 -BRDA:286,44,1,298 -BRDA:286,45,0,298 -BRDA:286,45,1,298 -BRDA:291,46,0,322 -BRDA:291,46,1,3972 -BRDA:293,47,0,0 -BRDA:293,47,1,322 -BRDA:297,48,0,322 -BRDA:297,48,1,0 -BRDA:299,49,0,0 -BRDA:299,49,1,24 -BRDA:299,49,2,0 -BRDA:299,49,3,0 -BRDA:299,49,4,298 -BRDA:303,50,0,24 -BRDA:303,50,1,12 -BRDA:307,51,0,0 -BRDA:307,51,1,0 -BRDA:335,52,0,1 -BRDA:335,52,1,11 -BRDA:335,52,2,274 -BRDA:335,52,3,0 -BRDA:335,52,4,11 -BRDA:335,52,5,1 -BRDA:366,53,0,0 -BRDA:366,53,1,0 -BRDA:366,53,2,0 -BRDA:389,54,0,0 -BRDA:389,54,1,1 -BRDA:393,55,0,0 -BRDA:393,55,1,0 -BRDA:394,56,0,0 -BRDA:394,56,1,0 -BRDA:395,57,0,0 -BRDA:395,57,1,0 -BRDA:409,58,0,0 -BRDA:409,58,1,0 -BRDA:418,59,0,0 -BRDA:418,59,1,0 -BRDA:435,60,0,0 -BRDA:435,60,1,0 -BRDA:435,61,0,0 -BRDA:435,61,1,0 -BRDA:442,62,0,0 -BRDA:442,62,1,0 -BRDA:442,63,0,0 -BRDA:442,63,1,0 -BRDA:444,64,0,0 -BRDA:444,64,1,0 -BRDA:448,65,0,0 -BRDA:448,65,1,0 -BRDA:456,66,0,0 -BRDA:456,66,1,0 -BRDA:457,67,0,0 -BRDA:457,67,1,0 -BRDA:460,68,0,0 -BRDA:460,68,1,0 -BRDA:469,69,0,0 -BRDA:469,69,1,0 -BRDA:492,70,0,0 -BRDA:492,70,1,0 -BRDA:495,71,0,0 -BRDA:495,71,1,0 -BRDA:498,72,0,0 -BRDA:498,72,1,0 -BRDA:498,72,2,0 -BRDA:498,72,3,0 -BRDA:498,72,4,0 -BRDA:498,72,5,0 -BRDA:523,73,0,0 -BRDA:523,73,1,0 -BRDA:528,74,0,0 -BRDA:528,74,1,0 -BRDA:537,75,0,0 -BRDA:537,75,1,0 -BRDA:543,76,0,0 -BRDA:543,76,1,0 -BRF:179 -BRH:28 -end_of_record -TN: -SF:/Users/kit/Dropbox/Projects/json3/lib/json3.js -FN:2,(anonymous_1) -FN:42,has -FN:64,(anonymous_3) -FN:196,(anonymous_4) -FN:204,(anonymous_5) -FN:213,(anonymous_6) -FN:227,(anonymous_7) -FN:247,(anonymous_8) -FN:254,(anonymous_9) -FN:260,(anonymous_10) -FN:280,(anonymous_11) -FN:295,(anonymous_12) -FN:309,(anonymous_13) -FN:347,(anonymous_14) -FN:358,(anonymous_15) -FN:384,(anonymous_16) -FN:491,(anonymous_17) -FN:513,(anonymous_18) -FN:563,(anonymous_19) -FN:571,(anonymous_20) -FN:729,(anonymous_21) -FN:812,(anonymous_22) -FN:824,(anonymous_23) -FN:835,(anonymous_24) -FN:844,(anonymous_25) -FN:862,(anonymous_26) -FNF:26 -FNH:3 -FNDA:1,(anonymous_1) -FNDA:3,has -FNDA:4,(anonymous_3) -FNDA:0,(anonymous_4) -FNDA:0,(anonymous_5) -FNDA:0,(anonymous_6) -FNDA:0,(anonymous_7) -FNDA:0,(anonymous_8) -FNDA:0,(anonymous_9) -FNDA:0,(anonymous_10) -FNDA:0,(anonymous_11) -FNDA:0,(anonymous_12) -FNDA:0,(anonymous_13) -FNDA:0,(anonymous_14) -FNDA:0,(anonymous_15) -FNDA:0,(anonymous_16) -FNDA:0,(anonymous_17) -FNDA:0,(anonymous_18) -FNDA:0,(anonymous_19) -FNDA:0,(anonymous_20) -FNDA:0,(anonymous_21) -FNDA:0,(anonymous_22) -FNDA:0,(anonymous_23) -FNDA:0,(anonymous_24) -FNDA:0,(anonymous_25) -FNDA:0,(anonymous_26) -DA:2,1 -DA:4,1 -DA:8,1 -DA:11,1 -DA:15,1 -DA:17,1 -DA:20,1 -DA:21,1 -DA:25,0 -DA:29,1 -DA:30,1 -DA:33,1 -DA:42,1 -DA:43,3 -DA:45,0 -DA:48,3 -DA:49,3 -DA:52,0 -DA:53,3 -DA:56,1 -DA:58,2 -DA:60,2 -DA:61,1 -DA:62,1 -DA:64,1 -DA:65,4 -DA:67,1 -DA:68,1 -DA:122,0 -DA:125,1 -DA:128,2 -DA:129,1 -DA:130,1 -DA:131,1 -DA:135,1 -DA:137,1 -DA:138,1 -DA:139,1 -DA:140,1 -DA:142,1 -DA:144,1 -DA:145,1 -DA:149,1 -DA:152,1 -DA:153,1 -DA:157,1 -DA:163,0 -DA:166,1 -DA:169,3 -DA:171,1 -DA:172,1 -DA:173,1 -DA:174,1 -DA:176,1 -DA:178,0 -DA:179,0 -DA:180,0 -DA:181,0 -DA:182,0 -DA:183,0 -DA:186,0 -DA:189,0 -DA:190,0 -DA:193,0 -DA:196,0 -DA:197,0 -DA:203,0 -DA:204,0 -DA:205,0 -DA:206,0 -DA:213,0 -DA:217,0 -DA:219,0 -DA:220,0 -DA:224,0 -DA:227,0 -DA:228,0 -DA:229,0 -DA:232,0 -DA:233,0 -DA:238,0 -DA:247,0 -DA:248,0 -DA:249,0 -DA:254,0 -DA:255,0 -DA:260,0 -DA:261,0 -DA:265,0 -DA:266,0 -DA:268,0 -DA:269,0 -DA:272,0 -DA:275,0 -DA:277,0 -DA:280,0 -DA:281,0 -DA:282,0 -DA:283,0 -DA:286,0 -DA:287,0 -DA:291,0 -DA:293,0 -DA:295,0 -DA:297,0 -DA:298,0 -DA:302,0 -DA:303,0 -DA:309,0 -DA:310,0 -DA:311,0 -DA:312,0 -DA:313,0 -DA:318,0 -DA:319,0 -DA:323,0 -DA:332,0 -DA:334,0 -DA:346,0 -DA:347,0 -DA:350,0 -DA:357,0 -DA:358,0 -DA:359,0 -DA:360,0 -DA:361,0 -DA:363,0 -DA:364,0 -DA:367,0 -DA:369,0 -DA:370,0 -DA:372,0 -DA:373,0 -DA:374,0 -DA:376,0 -DA:379,0 -DA:384,0 -DA:385,0 -DA:386,0 -DA:388,0 -DA:390,0 -DA:391,0 -DA:392,0 -DA:393,0 -DA:397,0 -DA:401,0 -DA:402,0 -DA:403,0 -DA:404,0 -DA:409,0 -DA:412,0 -DA:413,0 -DA:414,0 -DA:415,0 -DA:417,0 -DA:418,0 -DA:419,0 -DA:420,0 -DA:421,0 -DA:422,0 -DA:423,0 -DA:426,0 -DA:434,0 -DA:436,0 -DA:441,0 -DA:444,0 -DA:447,0 -DA:449,0 -DA:450,0 -DA:452,0 -DA:453,0 -DA:455,0 -DA:456,0 -DA:459,0 -DA:460,0 -DA:462,0 -DA:465,0 -DA:468,0 -DA:469,0 -DA:471,0 -DA:475,0 -DA:476,0 -DA:478,0 -DA:479,0 -DA:480,0 -DA:482,0 -DA:483,0 -DA:484,0 -DA:486,0 -DA:491,0 -DA:492,0 -DA:493,0 -DA:500,0 -DA:502,0 -DA:504,0 -DA:507,0 -DA:508,0 -DA:513,0 -DA:514,0 -DA:515,0 -DA:516,0 -DA:517,0 -DA:518,0 -DA:520,0 -DA:521,0 -DA:524,0 -DA:525,0 -DA:528,0 -DA:529,0 -DA:531,0 -DA:532,0 -DA:538,0 -DA:543,0 -DA:544,0 -DA:548,0 -DA:560,0 -DA:563,0 -DA:564,0 -DA:565,0 -DA:571,0 -DA:572,0 -DA:573,0 -DA:574,0 -DA:575,0 -DA:579,0 -DA:580,0 -DA:584,0 -DA:585,0 -DA:586,0 -DA:592,0 -DA:593,0 -DA:594,0 -DA:597,0 -DA:598,0 -DA:602,0 -DA:603,0 -DA:606,0 -DA:607,0 -DA:608,0 -DA:613,0 -DA:614,0 -DA:615,0 -DA:618,0 -DA:620,0 -DA:624,0 -DA:625,0 -DA:628,0 -DA:631,0 -DA:634,0 -DA:636,0 -DA:637,0 -DA:639,0 -DA:640,0 -DA:643,0 -DA:646,0 -DA:648,0 -DA:649,0 -DA:652,0 -DA:655,0 -DA:657,0 -DA:658,0 -DA:659,0 -DA:662,0 -DA:664,0 -DA:666,0 -DA:668,0 -DA:670,0 -DA:673,0 -DA:674,0 -DA:676,0 -DA:677,0 -DA:679,0 -DA:681,0 -DA:685,0 -DA:686,0 -DA:687,0 -DA:690,0 -DA:691,0 -DA:694,0 -DA:695,0 -DA:697,0 -DA:699,0 -DA:702,0 -DA:705,0 -DA:706,0 -DA:709,0 -DA:710,0 -DA:711,0 -DA:712,0 -DA:713,0 -DA:714,0 -DA:715,0 -DA:716,0 -DA:717,0 -DA:720,0 -DA:725,0 -DA:729,0 -DA:730,0 -DA:731,0 -DA:733,0 -DA:735,0 -DA:736,0 -DA:738,0 -DA:741,0 -DA:743,0 -DA:744,0 -DA:745,0 -DA:747,0 -DA:748,0 -DA:753,0 -DA:754,0 -DA:755,0 -DA:756,0 -DA:758,0 -DA:762,0 -DA:766,0 -DA:767,0 -DA:769,0 -DA:771,0 -DA:772,0 -DA:774,0 -DA:775,0 -DA:776,0 -DA:778,0 -DA:779,0 -DA:783,0 -DA:784,0 -DA:785,0 -DA:786,0 -DA:788,0 -DA:792,0 -DA:798,0 -DA:799,0 -DA:801,0 -DA:803,0 -DA:806,0 -DA:808,0 -DA:812,0 -DA:813,0 -DA:814,0 -DA:815,0 -DA:817,0 -DA:824,0 -DA:825,0 -DA:826,0 -DA:830,0 -DA:831,0 -DA:832,0 -DA:835,0 -DA:836,0 -DA:840,0 -DA:844,0 -DA:845,0 -DA:846,0 -DA:847,0 -DA:848,0 -DA:850,0 -DA:851,0 -DA:854,0 -DA:855,0 -DA:861,1 -DA:862,0 -DA:863,0 -LF:363 -LH:50 -BRDA:8,1,0,1 -BRDA:8,1,1,0 -BRDA:11,2,0,1 -BRDA:11,2,1,1 -BRDA:15,3,0,1 -BRDA:15,3,1,1 -BRDA:15,3,2,1 -BRDA:15,3,3,1 -BRDA:17,4,0,1 -BRDA:17,4,1,0 -BRDA:17,5,0,1 -BRDA:17,5,1,1 -BRDA:25,6,0,0 -BRDA:25,6,1,0 -BRDA:33,7,0,1 -BRDA:33,7,1,1 -BRDA:33,7,2,1 -BRDA:33,7,3,1 -BRDA:33,7,4,1 -BRDA:33,7,5,1 -BRDA:33,7,6,1 -BRDA:43,8,0,0 -BRDA:43,8,1,3 -BRDA:49,9,0,0 -BRDA:49,9,1,3 -BRDA:53,10,0,1 -BRDA:53,10,1,2 -BRDA:56,11,0,1 -BRDA:56,11,1,1 -BRDA:60,12,0,1 -BRDA:60,12,1,1 -BRDA:61,13,0,1 -BRDA:61,13,1,1 -BRDA:62,14,0,1 -BRDA:62,14,1,0 -BRDA:71,15,0,1 -BRDA:71,15,1,1 -BRDA:71,15,2,1 -BRDA:71,15,3,1 -BRDA:71,15,4,1 -BRDA:71,15,5,1 -BRDA:71,15,6,1 -BRDA:71,15,7,1 -BRDA:71,15,8,1 -BRDA:71,15,9,1 -BRDA:71,15,10,1 -BRDA:71,15,11,1 -BRDA:71,15,12,1 -BRDA:71,15,13,1 -BRDA:71,15,14,1 -BRDA:71,15,15,1 -BRDA:71,15,16,1 -BRDA:71,15,17,1 -BRDA:128,16,0,1 -BRDA:128,16,1,1 -BRDA:130,17,0,1 -BRDA:130,17,1,0 -BRDA:135,18,0,1 -BRDA:135,18,1,0 -BRDA:135,19,0,1 -BRDA:135,19,1,1 -BRDA:138,20,0,1 -BRDA:138,20,1,1 -BRDA:139,21,0,1 -BRDA:139,21,1,0 -BRDA:144,22,0,1 -BRDA:144,22,1,0 -BRDA:152,23,0,1 -BRDA:152,23,1,0 -BRDA:176,24,0,0 -BRDA:176,24,1,1 -BRDA:189,25,0,0 -BRDA:189,25,1,0 -BRDA:203,26,0,0 -BRDA:203,26,1,0 -BRDA:206,27,0,0 -BRDA:206,27,1,0 -BRDA:228,28,0,0 -BRDA:228,28,1,0 -BRDA:229,29,0,0 -BRDA:229,29,1,0 -BRDA:229,30,0,0 -BRDA:229,30,1,0 -BRDA:249,31,0,0 -BRDA:249,31,1,0 -BRDA:268,32,0,0 -BRDA:268,32,1,0 -BRDA:275,33,0,0 -BRDA:275,33,1,0 -BRDA:282,34,0,0 -BRDA:282,34,1,0 -BRDA:282,35,0,0 -BRDA:282,35,1,0 -BRDA:282,35,2,0 -BRDA:286,36,0,0 -BRDA:286,36,1,0 -BRDA:286,37,0,0 -BRDA:286,37,1,0 -BRDA:286,38,0,0 -BRDA:286,38,1,0 -BRDA:291,39,0,0 -BRDA:291,39,1,0 -BRDA:293,40,0,0 -BRDA:293,40,1,0 -BRDA:302,41,0,0 -BRDA:302,41,1,0 -BRDA:302,42,0,0 -BRDA:302,42,1,0 -BRDA:302,42,2,0 -BRDA:302,42,3,0 -BRDA:302,43,0,0 -BRDA:302,43,1,0 -BRDA:312,44,0,0 -BRDA:312,44,1,0 -BRDA:312,45,0,0 -BRDA:312,45,1,0 -BRDA:312,45,2,0 -BRDA:312,46,0,0 -BRDA:312,46,1,0 -BRDA:318,47,0,0 -BRDA:318,47,1,0 -BRDA:318,48,0,0 -BRDA:318,48,1,0 -BRDA:332,49,0,0 -BRDA:332,49,1,0 -BRDA:350,50,0,0 -BRDA:350,50,1,0 -BRDA:359,51,0,0 -BRDA:359,51,1,0 -BRDA:360,52,0,0 -BRDA:360,52,1,0 -BRDA:367,53,0,0 -BRDA:367,53,1,0 -BRDA:367,53,2,0 -BRDA:367,53,3,0 -BRDA:367,53,4,0 -BRDA:367,53,5,0 -BRDA:367,53,6,0 -BRDA:367,53,7,0 -BRDA:372,54,0,0 -BRDA:372,54,1,0 -BRDA:376,55,0,0 -BRDA:376,55,1,0 -BRDA:376,56,0,0 -BRDA:376,56,1,0 -BRDA:390,57,0,0 -BRDA:390,57,1,0 -BRDA:390,58,0,0 -BRDA:390,58,1,0 -BRDA:392,59,0,0 -BRDA:392,59,1,0 -BRDA:392,60,0,0 -BRDA:392,60,1,0 -BRDA:393,61,0,0 -BRDA:393,61,1,0 -BRDA:393,62,0,0 -BRDA:393,62,1,0 -BRDA:397,63,0,0 -BRDA:397,63,1,0 -BRDA:426,64,0,0 -BRDA:426,64,1,0 -BRDA:426,65,0,0 -BRDA:426,65,1,0 -BRDA:426,66,0,0 -BRDA:426,66,1,0 -BRDA:426,67,0,0 -BRDA:426,67,1,0 -BRDA:436,68,0,0 -BRDA:436,68,1,0 -BRDA:436,69,0,0 -BRDA:436,69,1,0 -BRDA:436,69,2,0 -BRDA:436,69,3,0 -BRDA:436,69,4,0 -BRDA:444,70,0,0 -BRDA:444,70,1,0 -BRDA:449,71,0,0 -BRDA:449,71,1,0 -BRDA:453,72,0,0 -BRDA:453,72,1,0 -BRDA:456,73,0,0 -BRDA:456,73,1,0 -BRDA:459,74,0,0 -BRDA:459,74,1,0 -BRDA:459,75,0,0 -BRDA:459,75,1,0 -BRDA:460,76,0,0 -BRDA:460,76,1,0 -BRDA:465,77,0,0 -BRDA:465,77,1,0 -BRDA:469,78,0,0 -BRDA:469,78,1,0 -BRDA:480,79,0,0 -BRDA:480,79,1,0 -BRDA:482,80,0,0 -BRDA:482,80,1,0 -BRDA:484,81,0,0 -BRDA:484,81,1,0 -BRDA:486,82,0,0 -BRDA:486,82,1,0 -BRDA:486,83,0,0 -BRDA:486,83,1,0 -BRDA:491,84,0,0 -BRDA:491,84,1,0 -BRDA:493,85,0,0 -BRDA:493,85,1,0 -BRDA:500,86,0,0 -BRDA:500,86,1,0 -BRDA:502,87,0,0 -BRDA:502,87,1,0 -BRDA:504,88,0,0 -BRDA:504,88,1,0 -BRDA:504,89,0,0 -BRDA:504,89,1,0 -BRDA:515,90,0,0 -BRDA:515,90,1,0 -BRDA:515,91,0,0 -BRDA:515,91,1,0 -BRDA:515,91,2,0 -BRDA:516,92,0,0 -BRDA:516,92,1,0 -BRDA:518,93,0,0 -BRDA:518,93,1,0 -BRDA:521,94,0,0 -BRDA:521,94,1,0 -BRDA:521,94,2,0 -BRDA:524,95,0,0 -BRDA:524,95,1,0 -BRDA:525,96,0,0 -BRDA:525,96,1,0 -BRDA:528,97,0,0 -BRDA:528,97,1,0 -BRDA:531,98,0,0 -BRDA:531,98,1,0 -BRDA:532,99,0,0 -BRDA:532,99,1,0 -BRDA:543,100,0,0 -BRDA:543,100,1,0 -BRDA:575,101,0,0 -BRDA:575,101,1,0 -BRDA:575,101,2,0 -BRDA:575,101,3,0 -BRDA:575,101,4,0 -BRDA:575,101,5,0 -BRDA:575,101,6,0 -BRDA:575,101,7,0 -BRDA:575,101,8,0 -BRDA:575,101,9,0 -BRDA:575,101,10,0 -BRDA:575,101,11,0 -BRDA:584,102,0,0 -BRDA:584,102,1,0 -BRDA:594,103,0,0 -BRDA:594,103,1,0 -BRDA:598,104,0,0 -BRDA:598,104,1,0 -BRDA:603,105,0,0 -BRDA:603,105,1,0 -BRDA:603,105,2,0 -BRDA:603,105,3,0 -BRDA:603,105,4,0 -BRDA:603,105,5,0 -BRDA:603,105,6,0 -BRDA:603,105,7,0 -BRDA:603,105,8,0 -BRDA:603,105,9,0 -BRDA:618,106,0,0 -BRDA:618,106,1,0 -BRDA:618,107,0,0 -BRDA:618,107,1,0 -BRDA:618,107,2,0 -BRDA:618,107,3,0 -BRDA:618,107,4,0 -BRDA:618,107,5,0 -BRDA:631,108,0,0 -BRDA:631,108,1,0 -BRDA:639,109,0,0 -BRDA:639,109,1,0 -BRDA:639,109,2,0 -BRDA:646,110,0,0 -BRDA:646,110,1,0 -BRDA:657,111,0,0 -BRDA:657,111,1,0 -BRDA:662,112,0,0 -BRDA:662,112,1,0 -BRDA:662,113,0,0 -BRDA:662,113,1,0 -BRDA:664,114,0,0 -BRDA:664,114,1,0 -BRDA:664,115,0,0 -BRDA:664,115,1,0 -BRDA:664,116,0,0 -BRDA:664,116,1,0 -BRDA:670,117,0,0 -BRDA:670,117,1,0 -BRDA:670,118,0,0 -BRDA:670,118,1,0 -BRDA:673,119,0,0 -BRDA:673,119,1,0 -BRDA:676,120,0,0 -BRDA:676,120,1,0 -BRDA:676,121,0,0 -BRDA:676,121,1,0 -BRDA:677,122,0,0 -BRDA:677,122,1,0 -BRDA:686,123,0,0 -BRDA:686,123,1,0 -BRDA:686,124,0,0 -BRDA:686,124,1,0 -BRDA:690,125,0,0 -BRDA:690,125,1,0 -BRDA:690,126,0,0 -BRDA:690,126,1,0 -BRDA:694,127,0,0 -BRDA:694,127,1,0 -BRDA:694,128,0,0 -BRDA:694,128,1,0 -BRDA:695,129,0,0 -BRDA:695,129,1,0 -BRDA:705,130,0,0 -BRDA:705,130,1,0 -BRDA:709,131,0,0 -BRDA:709,131,1,0 -BRDA:712,132,0,0 -BRDA:712,132,1,0 -BRDA:715,133,0,0 -BRDA:715,133,1,0 -BRDA:731,134,0,0 -BRDA:731,134,1,0 -BRDA:735,135,0,0 -BRDA:735,135,1,0 -BRDA:736,136,0,0 -BRDA:736,136,1,0 -BRDA:736,137,0,0 -BRDA:736,137,1,0 -BRDA:741,138,0,0 -BRDA:741,138,1,0 -BRDA:744,139,0,0 -BRDA:744,139,1,0 -BRDA:747,140,0,0 -BRDA:747,140,1,0 -BRDA:753,141,0,0 -BRDA:753,141,1,0 -BRDA:754,142,0,0 -BRDA:754,142,1,0 -BRDA:756,143,0,0 -BRDA:756,143,1,0 -BRDA:766,144,0,0 -BRDA:766,144,1,0 -BRDA:772,145,0,0 -BRDA:772,145,1,0 -BRDA:775,146,0,0 -BRDA:775,146,1,0 -BRDA:778,147,0,0 -BRDA:778,147,1,0 -BRDA:783,148,0,0 -BRDA:783,148,1,0 -BRDA:784,149,0,0 -BRDA:784,149,1,0 -BRDA:786,150,0,0 -BRDA:786,150,1,0 -BRDA:798,151,0,0 -BRDA:798,151,1,0 -BRDA:798,152,0,0 -BRDA:798,152,1,0 -BRDA:798,152,2,0 -BRDA:798,152,3,0 -BRDA:798,153,0,0 -BRDA:798,153,1,0 -BRDA:814,154,0,0 -BRDA:814,154,1,0 -BRDA:826,155,0,0 -BRDA:826,155,1,0 -BRDA:826,156,0,0 -BRDA:826,156,1,0 -BRDA:830,157,0,0 -BRDA:830,157,1,0 -BRDA:850,158,0,0 -BRDA:850,158,1,0 -BRDA:855,159,0,0 -BRDA:855,159,1,0 -BRDA:855,160,0,0 -BRDA:855,160,1,0 -BRDA:861,161,0,0 -BRDA:861,161,1,1 -BRF:385 -BRH:59 -end_of_record diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/lib/json3.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/lib/json3.js deleted file mode 100644 index ea4a0ea6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/lib/json3.js +++ /dev/null @@ -1,861 +0,0 @@ -/*! JSON v3.2.6 | http://bestiejs.github.io/json3 | Copyright 2012-2013, Kit Cambridge | http://kit.mit-license.org */ -;(function (window) { - // Convenience aliases. - var getClass = {}.toString, isProperty, forEach, undef; - - // Detect the `define` function exposed by asynchronous module loaders. The - // strict `define` check is necessary for compatibility with `r.js`. - var isLoader = typeof define === "function" && define.amd; - - // Detect native implementations. - var nativeJSON = typeof JSON == "object" && JSON; - - // Set up the JSON 3 namespace, preferring the CommonJS `exports` object if - // available. - var JSON3 = typeof exports == "object" && exports && !exports.nodeType && exports; - - if (JSON3 && nativeJSON) { - // Explicitly delegate to the native `stringify` and `parse` - // implementations in CommonJS environments. - JSON3.stringify = nativeJSON.stringify; - JSON3.parse = nativeJSON.parse; - } else { - // Export for web browsers, JavaScript engines, and asynchronous module - // loaders, using the global `JSON` object if available. - JSON3 = window.JSON = nativeJSON || {}; - } - - // Test the `Date#getUTC*` methods. Based on work by @Yaffle. - var isExtended = new Date(-3509827334573292); - try { - // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical - // results for certain dates in Opera >= 10.53. - isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && - // Safari < 2.0.2 stores the internal millisecond time value correctly, - // but clips the values returned by the date methods to the range of - // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). - isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; - } catch (exception) {} - - // Internal: Determines whether the native `JSON.stringify` and `parse` - // implementations are spec-compliant. Based on work by Ken Snyder. - function has(name) { - if (has[name] !== undef) { - // Return cached feature test result. - return has[name]; - } - - var isSupported; - if (name == "bug-string-char-index") { - // IE <= 7 doesn't support accessing string characters using square - // bracket notation. IE 8 only supports this for primitives. - isSupported = "a"[0] != "a"; - } else if (name == "json") { - // Indicates whether both `JSON.stringify` and `JSON.parse` are - // supported. - isSupported = has("json-stringify") && has("json-parse"); - } else { - var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; - // Test `JSON.stringify`. - if (name == "json-stringify") { - var stringify = JSON3.stringify, stringifySupported = typeof stringify == "function" && isExtended; - if (stringifySupported) { - // A test function object with a custom `toJSON` method. - (value = function () { - return 1; - }).toJSON = value; - try { - stringifySupported = - // Firefox 3.1b1 and b2 serialize string, number, and boolean - // primitives as object literals. - stringify(0) === "0" && - // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object - // literals. - stringify(new Number()) === "0" && - stringify(new String()) == '""' && - // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or - // does not define a canonical JSON representation (this applies to - // objects with `toJSON` properties as well, *unless* they are nested - // within an object or array). - stringify(getClass) === undef && - // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and - // FF 3.1b3 pass this test. - stringify(undef) === undef && - // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, - // respectively, if the value is omitted entirely. - stringify() === undef && - // FF 3.1b1, 2 throw an error if the given value is not a number, - // string, array, object, Boolean, or `null` literal. This applies to - // objects with custom `toJSON` methods as well, unless they are nested - // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` - // methods entirely. - stringify(value) === "1" && - stringify([value]) == "[1]" && - // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of - // `"[null]"`. - stringify([undef]) == "[null]" && - // YUI 3.0.0b1 fails to serialize `null` literals. - stringify(null) == "null" && - // FF 3.1b1, 2 halts serialization if an array contains a function: - // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 - // elides non-JSON values from objects and arrays, unless they - // define custom `toJSON` methods. - stringify([undef, getClass, null]) == "[null,null,null]" && - // Simple serialization test. FF 3.1b1 uses Unicode escape sequences - // where character escape codes are expected (e.g., `\b` => `\u0008`). - stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && - // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. - stringify(null, value) === "1" && - stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && - // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly - // serialize extended years. - stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && - // The milliseconds are optional in ES 5, but required in 5.1. - stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && - // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative - // four-digit years instead of six-digit years. Credits: @Yaffle. - stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && - // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond - // values less than 1000. Credits: @Yaffle. - stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; - } catch (exception) { - stringifySupported = false; - } - } - isSupported = stringifySupported; - } - // Test `JSON.parse`. - if (name == "json-parse") { - var parse = JSON3.parse; - if (typeof parse == "function") { - try { - // FF 3.1b1, b2 will throw an exception if a bare literal is provided. - // Conforming implementations should also coerce the initial argument to - // a string prior to parsing. - if (parse("0") === 0 && !parse(false)) { - // Simple parsing test. - value = parse(serialized); - var parseSupported = value["a"].length == 5 && value["a"][0] === 1; - if (parseSupported) { - try { - // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. - parseSupported = !parse('"\t"'); - } catch (exception) {} - if (parseSupported) { - try { - // FF 4.0 and 4.0.1 allow leading `+` signs and leading - // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow - // certain octal literals. - parseSupported = parse("01") !== 1; - } catch (exception) {} - } - if (parseSupported) { - try { - // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal - // points. These environments, along with FF 3.1b1 and 2, - // also allow trailing commas in JSON objects and arrays. - parseSupported = parse("1.") !== 1; - } catch (exception) {} - } - } - } - } catch (exception) { - parseSupported = false; - } - } - isSupported = parseSupported; - } - } - return has[name] = !!isSupported; - } - - if (!has("json")) { - // Common `[[Class]]` name aliases. - var functionClass = "[object Function]"; - var dateClass = "[object Date]"; - var numberClass = "[object Number]"; - var stringClass = "[object String]"; - var arrayClass = "[object Array]"; - var booleanClass = "[object Boolean]"; - - // Detect incomplete support for accessing string characters by index. - var charIndexBuggy = has("bug-string-char-index"); - - // Define additional utility methods if the `Date` methods are buggy. - if (!isExtended) { - var floor = Math.floor; - // A mapping between the months of the year and the number of days between - // January 1st and the first of the respective month. - var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; - // Internal: Calculates the number of days between the Unix epoch and the - // first day of the given month. - var getDay = function (year, month) { - return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); - }; - } - - // Internal: Determines if a property is a direct property of the given - // object. Delegates to the native `Object#hasOwnProperty` method. - if (!(isProperty = {}.hasOwnProperty)) { - isProperty = function (property) { - var members = {}, constructor; - if ((members.__proto__ = null, members.__proto__ = { - // The *proto* property cannot be set multiple times in recent - // versions of Firefox and SeaMonkey. - "toString": 1 - }, members).toString != getClass) { - // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but - // supports the mutable *proto* property. - isProperty = function (property) { - // Capture and break the object's prototype chain (see section 8.6.2 - // of the ES 5.1 spec). The parenthesized expression prevents an - // unsafe transformation by the Closure Compiler. - var original = this.__proto__, result = property in (this.__proto__ = null, this); - // Restore the original prototype chain. - this.__proto__ = original; - return result; - }; - } else { - // Capture a reference to the top-level `Object` constructor. - constructor = members.constructor; - // Use the `constructor` property to simulate `Object#hasOwnProperty` in - // other environments. - isProperty = function (property) { - var parent = (this.constructor || constructor).prototype; - return property in this && !(property in parent && this[property] === parent[property]); - }; - } - members = null; - return isProperty.call(this, property); - }; - } - - // Internal: A set of primitive types used by `isHostType`. - var PrimitiveTypes = { - 'boolean': 1, - 'number': 1, - 'string': 1, - 'undefined': 1 - }; - - // Internal: Determines if the given object `property` value is a - // non-primitive. - var isHostType = function (object, property) { - var type = typeof object[property]; - return type == 'object' ? !!object[property] : !PrimitiveTypes[type]; - }; - - // Internal: Normalizes the `for...in` iteration algorithm across - // environments. Each enumerated key is yielded to a `callback` function. - forEach = function (object, callback) { - var size = 0, Properties, members, property; - - // Tests for bugs in the current environment's `for...in` algorithm. The - // `valueOf` property inherits the non-enumerable flag from - // `Object.prototype` in older versions of IE, Netscape, and Mozilla. - (Properties = function () { - this.valueOf = 0; - }).prototype.valueOf = 0; - - // Iterate over a new instance of the `Properties` class. - members = new Properties(); - for (property in members) { - // Ignore all properties inherited from `Object.prototype`. - if (isProperty.call(members, property)) { - size++; - } - } - Properties = members = null; - - // Normalize the iteration algorithm. - if (!size) { - // A list of non-enumerable properties inherited from `Object.prototype`. - members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; - // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable - // properties. - forEach = function (object, callback) { - var isFunction = getClass.call(object) == functionClass, property, length; - var hasProperty = !isFunction && typeof object.constructor != 'function' && isHostType(object, 'hasOwnProperty') ? object.hasOwnProperty : isProperty; - for (property in object) { - // Gecko <= 1.0 enumerates the `prototype` property of functions under - // certain conditions; IE does not. - if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { - callback(property); - } - } - // Manually invoke the callback for each non-enumerable property. - for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); - }; - } else if (size == 2) { - // Safari <= 2.0.4 enumerates shadowed properties twice. - forEach = function (object, callback) { - // Create a set of iterated properties. - var members = {}, isFunction = getClass.call(object) == functionClass, property; - for (property in object) { - // Store each property name to prevent double enumeration. The - // `prototype` property of functions is not enumerated due to cross- - // environment inconsistencies. - if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { - callback(property); - } - } - }; - } else { - // No bugs detected; use the standard `for...in` algorithm. - forEach = function (object, callback) { - var isFunction = getClass.call(object) == functionClass, property, isConstructor; - for (property in object) { - if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { - callback(property); - } - } - // Manually invoke the callback for the `constructor` property due to - // cross-environment inconsistencies. - if (isConstructor || isProperty.call(object, (property = "constructor"))) { - callback(property); - } - }; - } - return forEach(object, callback); - }; - - // Public: Serializes a JavaScript `value` as a JSON string. The optional - // `filter` argument may specify either a function that alters how object and - // array members are serialized, or an array of strings and numbers that - // indicates which properties should be serialized. The optional `width` - // argument may be either a string or number that specifies the indentation - // level of the output. - if (!has("json-stringify")) { - // Internal: A map of control characters and their escaped equivalents. - var Escapes = { - 92: "\\\\", - 34: '\\"', - 8: "\\b", - 12: "\\f", - 10: "\\n", - 13: "\\r", - 9: "\\t" - }; - - // Internal: Converts `value` into a zero-padded string such that its - // length is at least equal to `width`. The `width` must be <= 6. - var leadingZeroes = "000000"; - var toPaddedString = function (width, value) { - // The `|| 0` expression is necessary to work around a bug in - // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. - return (leadingZeroes + (value || 0)).slice(-width); - }; - - // Internal: Double-quotes a string `value`, replacing all ASCII control - // characters (characters with code unit values between 0 and 31) with - // their escaped equivalents. This is an implementation of the - // `Quote(value)` operation defined in ES 5.1 section 15.12.3. - var unicodePrefix = "\\u00"; - var quote = function (value) { - var result = '"', index = 0, length = value.length, isLarge = length > 10 && charIndexBuggy, symbols; - if (isLarge) { - symbols = value.split(""); - } - for (; index < length; index++) { - var charCode = value.charCodeAt(index); - // If the character is a control character, append its Unicode or - // shorthand escape sequence; otherwise, append the character as-is. - switch (charCode) { - case 8: case 9: case 10: case 12: case 13: case 34: case 92: - result += Escapes[charCode]; - break; - default: - if (charCode < 32) { - result += unicodePrefix + toPaddedString(2, charCode.toString(16)); - break; - } - result += isLarge ? symbols[index] : charIndexBuggy ? value.charAt(index) : value[index]; - } - } - return result + '"'; - }; - - // Internal: Recursively serializes an object. Implements the - // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. - var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { - var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; - try { - // Necessary for host object support. - value = object[property]; - } catch (exception) {} - if (typeof value == "object" && value) { - className = getClass.call(value); - if (className == dateClass && !isProperty.call(value, "toJSON")) { - if (value > -1 / 0 && value < 1 / 0) { - // Dates are serialized according to the `Date#toJSON` method - // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 - // for the ISO 8601 date time string format. - if (getDay) { - // Manually compute the year, month, date, hours, minutes, - // seconds, and milliseconds if the `getUTC*` methods are - // buggy. Adapted from @Yaffle's `date-shim` project. - date = floor(value / 864e5); - for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); - for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); - date = 1 + date - getDay(year, month); - // The `time` value specifies the time within the day (see ES - // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used - // to compute `A modulo B`, as the `%` operator does not - // correspond to the `modulo` operation for negative numbers. - time = (value % 864e5 + 864e5) % 864e5; - // The hours, minutes, seconds, and milliseconds are obtained by - // decomposing the time within the day. See section 15.9.1.10. - hours = floor(time / 36e5) % 24; - minutes = floor(time / 6e4) % 60; - seconds = floor(time / 1e3) % 60; - milliseconds = time % 1e3; - } else { - year = value.getUTCFullYear(); - month = value.getUTCMonth(); - date = value.getUTCDate(); - hours = value.getUTCHours(); - minutes = value.getUTCMinutes(); - seconds = value.getUTCSeconds(); - milliseconds = value.getUTCMilliseconds(); - } - // Serialize extended years correctly. - value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + - "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + - // Months, dates, hours, minutes, and seconds should have two - // digits; milliseconds should have three. - "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + - // Milliseconds are optional in ES 5.0, but required in 5.1. - "." + toPaddedString(3, milliseconds) + "Z"; - } else { - value = null; - } - } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { - // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the - // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 - // ignores all `toJSON` methods on these objects unless they are - // defined directly on an instance. - value = value.toJSON(property); - } - } - if (callback) { - // If a replacement function was provided, call it to obtain the value - // for serialization. - value = callback.call(object, property, value); - } - if (value === null) { - return "null"; - } - className = getClass.call(value); - if (className == booleanClass) { - // Booleans are represented literally. - return "" + value; - } else if (className == numberClass) { - // JSON numbers must be finite. `Infinity` and `NaN` are serialized as - // `"null"`. - return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; - } else if (className == stringClass) { - // Strings are double-quoted and escaped. - return quote("" + value); - } - // Recursively serialize objects and arrays. - if (typeof value == "object") { - // Check for cyclic structures. This is a linear search; performance - // is inversely proportional to the number of unique nested objects. - for (length = stack.length; length--;) { - if (stack[length] === value) { - // Cyclic structures cannot be serialized by `JSON.stringify`. - throw TypeError(); - } - } - // Add the object to the stack of traversed objects. - stack.push(value); - results = []; - // Save the current indentation level and indent one additional level. - prefix = indentation; - indentation += whitespace; - if (className == arrayClass) { - // Recursively serialize array elements. - for (index = 0, length = value.length; index < length; index++) { - element = serialize(index, value, callback, properties, whitespace, indentation, stack); - results.push(element === undef ? "null" : element); - } - result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; - } else { - // Recursively serialize object members. Members are selected from - // either a user-specified list of property names, or the object - // itself. - forEach(properties || value, function (property) { - var element = serialize(property, value, callback, properties, whitespace, indentation, stack); - if (element !== undef) { - // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} - // is not the empty string, let `member` {quote(property) + ":"} - // be the concatenation of `member` and the `space` character." - // The "`space` character" refers to the literal space - // character, not the `space` {width} argument provided to - // `JSON.stringify`. - results.push(quote(property) + ":" + (whitespace ? " " : "") + element); - } - }); - result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; - } - // Remove the object from the traversed object stack. - stack.pop(); - return result; - } - }; - - // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. - JSON3.stringify = function (source, filter, width) { - var whitespace, callback, properties, className; - if (typeof filter == "function" || typeof filter == "object" && filter) { - if ((className = getClass.call(filter)) == functionClass) { - callback = filter; - } else if (className == arrayClass) { - // Convert the property names array into a makeshift set. - properties = {}; - for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); - } - } - if (width) { - if ((className = getClass.call(width)) == numberClass) { - // Convert the `width` to an integer and create a string containing - // `width` number of space characters. - if ((width -= width % 1) > 0) { - for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); - } - } else if (className == stringClass) { - whitespace = width.length <= 10 ? width : width.slice(0, 10); - } - } - // Opera <= 7.54u2 discards the values associated with empty string keys - // (`""`) only if they are used directly within an object member list - // (e.g., `!("" in { "": 1})`). - return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); - }; - } - - // Public: Parses a JSON source string. - if (!has("json-parse")) { - var fromCharCode = String.fromCharCode; - - // Internal: A map of escaped control characters and their unescaped - // equivalents. - var Unescapes = { - 92: "\\", - 34: '"', - 47: "/", - 98: "\b", - 116: "\t", - 110: "\n", - 102: "\f", - 114: "\r" - }; - - // Internal: Stores the parser state. - var Index, Source; - - // Internal: Resets the parser state and throws a `SyntaxError`. - var abort = function() { - Index = Source = null; - throw SyntaxError(); - }; - - // Internal: Returns the next token, or `"$"` if the parser has reached - // the end of the source string. A token may be a string, number, `null` - // literal, or Boolean literal. - var lex = function () { - var source = Source, length = source.length, value, begin, position, isSigned, charCode; - while (Index < length) { - charCode = source.charCodeAt(Index); - switch (charCode) { - case 9: case 10: case 13: case 32: - // Skip whitespace tokens, including tabs, carriage returns, line - // feeds, and space characters. - Index++; - break; - case 123: case 125: case 91: case 93: case 58: case 44: - // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at - // the current position. - value = charIndexBuggy ? source.charAt(Index) : source[Index]; - Index++; - return value; - case 34: - // `"` delimits a JSON string; advance to the next character and - // begin parsing the string. String tokens are prefixed with the - // sentinel `@` character to distinguish them from punctuators and - // end-of-string tokens. - for (value = "@", Index++; Index < length;) { - charCode = source.charCodeAt(Index); - if (charCode < 32) { - // Unescaped ASCII control characters (those with a code unit - // less than the space character) are not permitted. - abort(); - } else if (charCode == 92) { - // A reverse solidus (`\`) marks the beginning of an escaped - // control character (including `"`, `\`, and `/`) or Unicode - // escape sequence. - charCode = source.charCodeAt(++Index); - switch (charCode) { - case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: - // Revive escaped control characters. - value += Unescapes[charCode]; - Index++; - break; - case 117: - // `\u` marks the beginning of a Unicode escape sequence. - // Advance to the first character and validate the - // four-digit code point. - begin = ++Index; - for (position = Index + 4; Index < position; Index++) { - charCode = source.charCodeAt(Index); - // A valid sequence comprises four hexdigits (case- - // insensitive) that form a single hexadecimal value. - if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { - // Invalid Unicode escape sequence. - abort(); - } - } - // Revive the escaped character. - value += fromCharCode("0x" + source.slice(begin, Index)); - break; - default: - // Invalid escape sequence. - abort(); - } - } else { - if (charCode == 34) { - // An unescaped double-quote character marks the end of the - // string. - break; - } - charCode = source.charCodeAt(Index); - begin = Index; - // Optimize for the common case where a string is valid. - while (charCode >= 32 && charCode != 92 && charCode != 34) { - charCode = source.charCodeAt(++Index); - } - // Append the string as-is. - value += source.slice(begin, Index); - } - } - if (source.charCodeAt(Index) == 34) { - // Advance to the next character and return the revived string. - Index++; - return value; - } - // Unterminated string. - abort(); - default: - // Parse numbers and literals. - begin = Index; - // Advance past the negative sign, if one is specified. - if (charCode == 45) { - isSigned = true; - charCode = source.charCodeAt(++Index); - } - // Parse an integer or floating-point value. - if (charCode >= 48 && charCode <= 57) { - // Leading zeroes are interpreted as octal literals. - if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { - // Illegal octal literal. - abort(); - } - isSigned = false; - // Parse the integer component. - for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); - // Floats cannot contain a leading decimal point; however, this - // case is already accounted for by the parser. - if (source.charCodeAt(Index) == 46) { - position = ++Index; - // Parse the decimal component. - for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); - if (position == Index) { - // Illegal trailing decimal. - abort(); - } - Index = position; - } - // Parse exponents. The `e` denoting the exponent is - // case-insensitive. - charCode = source.charCodeAt(Index); - if (charCode == 101 || charCode == 69) { - charCode = source.charCodeAt(++Index); - // Skip past the sign following the exponent, if one is - // specified. - if (charCode == 43 || charCode == 45) { - Index++; - } - // Parse the exponential component. - for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); - if (position == Index) { - // Illegal empty exponent. - abort(); - } - Index = position; - } - // Coerce the parsed value to a JavaScript number. - return +source.slice(begin, Index); - } - // A negative sign may only precede numbers. - if (isSigned) { - abort(); - } - // `true`, `false`, and `null` literals. - if (source.slice(Index, Index + 4) == "true") { - Index += 4; - return true; - } else if (source.slice(Index, Index + 5) == "false") { - Index += 5; - return false; - } else if (source.slice(Index, Index + 4) == "null") { - Index += 4; - return null; - } - // Unrecognized token. - abort(); - } - } - // Return the sentinel `$` character if the parser has reached the end - // of the source string. - return "$"; - }; - - // Internal: Parses a JSON `value` token. - var get = function (value) { - var results, hasMembers; - if (value == "$") { - // Unexpected end of input. - abort(); - } - if (typeof value == "string") { - if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { - // Remove the sentinel `@` character. - return value.slice(1); - } - // Parse object and array literals. - if (value == "[") { - // Parses a JSON array, returning a new JavaScript array. - results = []; - for (;; hasMembers || (hasMembers = true)) { - value = lex(); - // A closing square bracket marks the end of the array literal. - if (value == "]") { - break; - } - // If the array literal contains elements, the current token - // should be a comma separating the previous element from the - // next. - if (hasMembers) { - if (value == ",") { - value = lex(); - if (value == "]") { - // Unexpected trailing `,` in array literal. - abort(); - } - } else { - // A `,` must separate each array element. - abort(); - } - } - // Elisions and leading commas are not permitted. - if (value == ",") { - abort(); - } - results.push(get(value)); - } - return results; - } else if (value == "{") { - // Parses a JSON object, returning a new JavaScript object. - results = {}; - for (;; hasMembers || (hasMembers = true)) { - value = lex(); - // A closing curly brace marks the end of the object literal. - if (value == "}") { - break; - } - // If the object literal contains members, the current token - // should be a comma separator. - if (hasMembers) { - if (value == ",") { - value = lex(); - if (value == "}") { - // Unexpected trailing `,` in object literal. - abort(); - } - } else { - // A `,` must separate each object member. - abort(); - } - } - // Leading commas are not permitted, object property names must be - // double-quoted strings, and a `:` must separate each property - // name and value. - if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { - abort(); - } - results[value.slice(1)] = get(lex()); - } - return results; - } - // Unexpected token encountered. - abort(); - } - return value; - }; - - // Internal: Updates a traversed object member. - var update = function(source, property, callback) { - var element = walk(source, property, callback); - if (element === undef) { - delete source[property]; - } else { - source[property] = element; - } - }; - - // Internal: Recursively traverses a parsed JSON object, invoking the - // `callback` function for each value. This is an implementation of the - // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. - var walk = function (source, property, callback) { - var value = source[property], length; - if (typeof value == "object" && value) { - // `forEach` can't be used to traverse an array in Opera <= 8.54 - // because its `Object#hasOwnProperty` implementation returns `false` - // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). - if (getClass.call(value) == arrayClass) { - for (length = value.length; length--;) { - update(value, length, callback); - } - } else { - forEach(value, function (property) { - update(value, property, callback); - }); - } - } - return callback.call(source, property, value); - }; - - // Public: `JSON.parse`. See ES 5.1 section 15.12.2. - JSON3.parse = function (source, callback) { - var result, value; - Index = 0; - Source = "" + source; - result = get(lex()); - // If a JSON string contains multiple tokens, it is invalid. - if (lex() != "$") { - abort(); - } - // Reset the parser state. - Index = Source = null; - return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; - }; - } - } - - // Export for asynchronous module loaders. - if (isLoader) { - define(function () { - return JSON3; - }); - } -}(this)); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/lib/json3.min.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/lib/json3.min.js deleted file mode 100644 index f9a45cea..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/lib/json3.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! JSON v3.2.6 | http://bestiejs.github.io/json3 | Copyright 2012-2013, Kit Cambridge | http://kit.mit-license.org */ -;(function(){var n=null; -(function(G){function m(a){if(m[a]!==s)return m[a];var c;if("bug-string-char-index"==a)c="a"!="a"[0];else if("json"==a)c=m("json-stringify")&&m("json-parse");else{var e;if("json-stringify"==a){c=o.stringify;var b="function"==typeof c&&l;if(b){(e=function(){return 1}).toJSON=e;try{b="0"===c(0)&&"0"===c(new Number)&&'""'==c(new String)&&c(p)===s&&c(s)===s&&c()===s&&"1"===c(e)&&"[1]"==c([e])&&"[null]"==c([s])&&"null"==c(n)&&"[null,null,null]"==c([s,p,n])&&'{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'==c({a:[e, -!0,!1,n,"\x00\u0008\n\u000c\r\t"]})&&"1"===c(n,e)&&"[\n 1,\n 2\n]"==c([1,2],n,1)&&'"-271821-04-20T00:00:00.000Z"'==c(new Date(-864E13))&&'"+275760-09-13T00:00:00.000Z"'==c(new Date(864E13))&&'"-000001-01-01T00:00:00.000Z"'==c(new Date(-621987552E5))&&'"1969-12-31T23:59:59.999Z"'==c(new Date(-1))}catch(f){b=!1}}c=b}if("json-parse"==a){c=o.parse;if("function"==typeof c)try{if(0===c("0")&&!c(!1)){e=c('{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}');var j=5==e.a.length&&1===e.a[0];if(j){try{j=!c('"\t"')}catch(d){}if(j)try{j= -1!==c("01")}catch(h){}if(j)try{j=1!==c("1.")}catch(k){}}}}catch(N){j=!1}c=j}}return m[a]=!!c}var p={}.toString,q,x,s,H=typeof define==="function"&&define.amd,y="object"==typeof JSON&&JSON,o="object"==typeof exports&&exports&&!exports.nodeType&&exports;o&&y?(o.stringify=y.stringify,o.parse=y.parse):o=G.JSON=y||{};var l=new Date(-3509827334573292);try{l=-109252==l.getUTCFullYear()&&0===l.getUTCMonth()&&1===l.getUTCDate()&&10==l.getUTCHours()&&37==l.getUTCMinutes()&&6==l.getUTCSeconds()&&708==l.getUTCMilliseconds()}catch(O){}if(!m("json")){var t= -m("bug-string-char-index");if(!l)var u=Math.floor,I=[0,31,59,90,120,151,181,212,243,273,304,334],z=function(a,c){return I[c]+365*(a-1970)+u((a-1969+(c=+(c>1)))/4)-u((a-1901+c)/100)+u((a-1601+c)/400)};if(!(q={}.hasOwnProperty))q=function(a){var c={},e;if((c.__proto__=n,c.__proto__={toString:1},c).toString!=p)q=function(a){var c=this.__proto__,a=a in(this.__proto__=n,this);this.__proto__=c;return a};else{e=c.constructor;q=function(a){var c=(this.constructor||e).prototype;return a in this&&!(a in c&& -this[a]===c[a])}}c=n;return q.call(this,a)};var J={"boolean":1,number:1,string:1,undefined:1};x=function(a,c){var e=0,b,f,j;(b=function(){this.valueOf=0}).prototype.valueOf=0;f=new b;for(j in f)q.call(f,j)&&e++;b=f=n;if(e)x=e==2?function(a,c){var e={},b=p.call(a)=="[object Function]",f;for(f in a)!(b&&f=="prototype")&&!q.call(e,f)&&(e[f]=1)&&q.call(a,f)&&c(f)}:function(a,c){var e=p.call(a)=="[object Function]",b,f;for(b in a)!(e&&b=="prototype")&&q.call(a,b)&&!(f=b==="constructor")&&c(b);(f||q.call(a, -b="constructor"))&&c(b)};else{f=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"];x=function(a,c){var e=p.call(a)=="[object Function]",b,g;if(g=!e)if(g=typeof a.constructor!="function"){g=typeof a.hasOwnProperty;g=g=="object"?!!a.hasOwnProperty:!J[g]}g=g?a.hasOwnProperty:q;for(b in a)!(e&&b=="prototype")&&g.call(a,b)&&c(b);for(e=f.length;b=f[--e];g.call(a,b)&&c(b));}}return x(a,c)};if(!m("json-stringify")){var K={92:"\\\\",34:'\\"',8:"\\b", -12:"\\f",10:"\\n",13:"\\r",9:"\\t"},v=function(a,c){return("000000"+(c||0)).slice(-a)},D=function(a){var c='"',b=0,g=a.length,f=g>10&&t,j;for(f&&(j=a.split(""));b-1/0&&h<1/0){if(z){l=u(h/864E5);for(k=u(l/365.2425)+1970-1;z(k+1,0)<=l;k++);for(i=u((l-z(k,0))/30.42);z(k,i+1)<=l;i++);l=1+l-z(k,i);m=(h%864E5+864E5)%864E5;o=u(m/36E5)%24;r=u(m/6E4)%60;t=u(m/1E3)%60;m=m%1E3}else{k=h.getUTCFullYear();i=h.getUTCMonth();l=h.getUTCDate();o=h.getUTCHours();r=h.getUTCMinutes();t=h.getUTCSeconds();m=h.getUTCMilliseconds()}h=(k<=0||k>=1E4?(k<0?"-":"+")+v(6,k<0?-k:k):v(4,k))+"-"+v(2,i+1)+"-"+v(2,l)+"T"+v(2,o)+":"+v(2,r)+":"+v(2,t)+"."+v(3,m)+"Z"}else h= -n;else if(typeof h.toJSON=="function"&&(k!="[object Number]"&&k!="[object String]"&&k!="[object Array]"||q.call(h,"toJSON")))h=h.toJSON(a)}b&&(h=b.call(c,a,h));if(h===n)return"null";k=p.call(h);if(k=="[object Boolean]")return""+h;if(k=="[object Number]")return h>-1/0&&h<1/0?""+h:"null";if(k=="[object String]")return D(""+h);if(typeof h=="object"){for(a=d.length;a--;)if(d[a]===h)throw TypeError();d.push(h);w=[];c=j;j=j+f;if(k=="[object Array]"){i=0;for(a=h.length;i0){g="";for(b>10&&(b=10);g.length=48&&d<=57||d>=97&&d<=102||d>=65&&d<=70||i()}e=e+L("0x"+a.slice(g,b));break;default:i()}}else{if(d==34)break;d=a.charCodeAt(b);for(g=b;d>=32&&d!=92&&d!=34;)d=a.charCodeAt(++b); -e=e+a.slice(g,b)}}if(a.charCodeAt(b)==34){b++;return e}i();default:g=b;if(d==45){j=true;d=a.charCodeAt(++b)}if(d>=48&&d<=57){for(d==48&&(d=a.charCodeAt(b+1),d>=48&&d<=57)&&i();b=48&&d<=57);b++);if(a.charCodeAt(b)==46){for(f=++b;f=48&&d<=57);f++);f==b&&i();b=f}d=a.charCodeAt(b);if(d==101||d==69){d=a.charCodeAt(++b);(d==43||d==45)&&b++;for(f=b;f=48&&d<=57);f++);f==b&&i();b=f}return+a.slice(g,b)}j&&i();if(a.slice(b,b+4)=="true"){b= -b+4;return true}if(a.slice(b,b+5)=="false"){b=b+5;return false}if(a.slice(b,b+4)=="null"){b=b+4;return n}i()}}return"$"},C=function(a){var c,b;a=="$"&&i();if(typeof a=="string"){if((t?a.charAt(0):a[0])=="@")return a.slice(1);if(a=="["){for(c=[];;b||(b=true)){a=r();if(a=="]")break;if(b)if(a==","){a=r();a=="]"&&i()}else i();a==","&&i();c.push(C(a))}return c}if(a=="{"){for(c={};;b||(b=true)){a=r();if(a=="}")break;if(b)if(a==","){a=r();a=="}"&&i()}else i();(a==","||typeof a!="string"||(t?a.charAt(0): -a[0])!="@"||r()!=":")&&i();c[a.slice(1)]=C(r())}return c}i()}return a},F=function(a,b,e){e=E(a,b,e);e===s?delete a[b]:a[b]=e},E=function(a,b,e){var g=a[b],f;if(typeof g=="object"&&g)if(p.call(g)=="[object Array]")for(f=g.length;f--;)F(g,f,e);else x(g,function(a){F(g,a,e)});return e.call(a,b,g)};o.parse=function(a,c){var e,g;b=0;A=""+a;e=C(r());r()!="$"&&i();b=A=n;return c&&p.call(c)=="[object Function]"?E((g={},g[""]=e,g),"",c):e}}}H&&define(function(){return o})})(this); -}()); \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/package.json deleted file mode 100644 index 66de7886..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/package.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "name": "json3", - "version": "3.2.6", - "description": "A modern JSON implementation compatible with nearly all JavaScript platforms.", - "homepage": "http://bestiejs.github.io/json3", - "main": "./lib/json3", - "keywords": [ - "json", - "spec", - "ecma", - "es5", - "lexer", - "parser", - "stringify" - ], - "licenses": [ - { - "type": "MIT", - "url": "http://kit.mit-license.org/" - } - ], - "author": { - "name": "Kit Cambridge", - "email": "github@kitcambridge.be", - "url": "http://kitcambridge.be/" - }, - "maintainers": [ - { - "name": "kitcambridge", - "email": "kitcambridge@me.com" - } - ], - "contributors": [ - { - "name": "Mangled Deutz", - "email": "olivier@webitup.fr", - "url": "http://tech.roxee.tv/" - }, - { - "name": "Øyvind Sean Kinsey", - "email": "oyvind@kinsey.no", - "url": "http://fb.me/ok" - }, - { - "name": "Oskar Schöldström", - "email": "public@oxy.fi", - "url": "http://oxy.fi/" - }, - { - "name": "Benjamin Tan", - "email": "demoneaux@gmail.com", - "url": "http://d10.github.io/" - }, - { - "name": "Kiryl Yermakou", - "email": "rma4ok@gmail.com", - "url": "https://github.com/rma4ok" - } - ], - "bugs": { - "url": "https://github.com/bestiejs/json3/issues" - }, - "scripts": { - "test": "node test/test_*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/bestiejs/json3.git" - }, - "jam": { - "main": "./lib/json3.js" - }, - "volo": { - "type": "directory", - "ignore": [ - ".*", - "build.js", - "index.html", - "component.json", - "bower.json", - "benchmark", - "page", - "test", - "vendor" - ] - }, - "_id": "json3@3.2.6", - "dist": { - "shasum": "f6efc93c06a04de9aec53053df2559bb19e2038b", - "tarball": "https://registry.npmjs.org/json3/-/json3-3.2.6.tgz" - }, - "_from": "json3@3.2.6", - "_npmVersion": "1.3.8", - "_npmUser": { - "name": "kitcambridge", - "email": "github@kitcambridge.be" - }, - "directories": {}, - "_shasum": "f6efc93c06a04de9aec53053df2559bb19e2038b", - "_resolved": "https://registry.npmjs.org/json3/-/json3-3.2.6.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/package.json deleted file mode 100644 index 2ecc78e1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "socket.io-parser", - "version": "2.2.2", - "description": "socket.io protocol parser", - "repository": { - "type": "git", - "url": "git+https://github.com/Automattic/socket.io-parser.git" - }, - "dependencies": { - "debug": "0.7.4", - "json3": "3.2.6", - "component-emitter": "1.1.2", - "isarray": "0.0.1", - "benchmark": "1.0.0" - }, - "devDependencies": { - "mocha": "1.16.2", - "expect.js": "0.2.0", - "zuul": "1.6.3" - }, - "scripts": { - "test": "make test" - }, - "license": "MIT", - "gitHead": "83c68c7a715ac54e95c5dae6445f751b3a4dfe9f", - "bugs": { - "url": "https://github.com/Automattic/socket.io-parser/issues" - }, - "homepage": "https://github.com/Automattic/socket.io-parser", - "_id": "socket.io-parser@2.2.2", - "_shasum": "3d7af6b64497e956b7d9fe775f999716027f9417", - "_from": "socket.io-parser@2.2.2", - "_npmVersion": "1.4.25", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "3d7af6b64497e956b7d9fe775f999716027f9417", - "tarball": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.2.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/package.json deleted file mode 100644 index 7497336a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-adapter/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "socket.io-adapter", - "version": "0.4.0", - "license": "MIT", - "repository": { - "type": "git", - "url": "git://github.com/Automattic/socket.io-adapter.git" - }, - "description": "Default socket.io in-memory adapter class.", - "dependencies": { - "debug": "2.2.0", - "socket.io-parser": "2.2.2" - }, - "gitHead": "efd6141dbd6947761ee9ce91fa729f3bec0aaab0", - "bugs": { - "url": "https://github.com/Automattic/socket.io-adapter/issues" - }, - "homepage": "https://github.com/Automattic/socket.io-adapter#readme", - "_id": "socket.io-adapter@0.4.0", - "scripts": {}, - "_shasum": "fb9f82ab1aa65290bf72c3657955b930a991a24f", - "_from": "socket.io-adapter@0.4.0", - "_npmVersion": "3.4.1", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - "maintainers": [ - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], - "dist": { - "shasum": "fb9f82ab1aa65290bf72c3657955b930a991a24f", - "tarball": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/History.md deleted file mode 100644 index 9ff030f1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/History.md +++ /dev/null @@ -1,461 +0,0 @@ - -1.4.8 / 2016-06-23 -================== - - * package: bump `engine.io-client` - -1.4.7 / 2016-06-23 -================== - - * bump engine.io-client - -1.4.6 / 2016-05-02 -================== - - * bump engine.io-client - -1.4.5 / 2016-01-26 -================== - - * fix `NativeScript` support - -1.4.4 / 2016-01-10 -================== - - * bump `engine.io-client` - -1.4.3 / 2016-01-08 -================== - - * remove `webpack.config.js` - -1.4.2 / 2016-01-07 -================== - - * exclude `ws` instead of `ignore`ing it from build [@lpinca] - * add global object as another fallback [@ligaz] - * bump `engine.io-client` - -1.4.1 / 2016-01-07 -================== - - * package: bump `engine.io-client` - -1.4.0 / 2015-11-28 -================== - - * package: bump `engine.io-client` - * manager: fix `Object.prototype` extensions - * package: bump `zuul` and `zuul-ngrok` - * package: bump `debug` - * package: bump `socket.io-parser` - * package: bump `has-binary` - * remove unnecessary `index.js` - * added support for `ping` and `pong` events - * proper handling of disconnection while in `opening` state - * instrumentation / style tweaks - * added tests for same-namespace new connection handling - * do not call apply if packet id is not in acks - * build sio client with make to autogenerate new socket.io.js - * bugfix/1956 don't reuse same-namespace connections #2 - * fix has-binary to work with all objects [gunta] - * bugfix/1956 don't reuse same-namespace connections - * add support for compression [nkzawa] - * fix: location.port was ignored - -1.3.7 / 2015-09-21 -================== - - * package: bump `socket.io` for node4 support - * package: bump `engine.io-client` for node4 compatibility - -1.3.6 / 2015-07-14 -================== - - * package: bump `engine.io-client` to fix build on windows - -1.3.5 / 2015-03-03 -================== - - * package: bump parser - -1.3.4 / 2015-02-14 -================== - - * build `socket.io.js` with `engine.io-client` `1.5.1` - -1.3.3 / 2015-02-03 -================== - - * package: bump parser - -1.3.2 / 2015-01-19 -================== - - * build `socket.io.js` - -1.3.1 / 2015-01-19 -================== - - * no change on this release - * package: bump `engine.io-client` to not depend on `git(1)` for a dep - -1.3.0 / 2015-01-19 -================== - - * package: bump `engine.io-client` - * added `socket.id` property pointing to session id [rase-] - * fix url parsing when uri string is undefined [defunctzombie] - * implemented `backo` for exponential backoff with randomization [mokesmokes] - * reset reconnection attempts state after a successul connection [mokesmokes] - -1.2.1 / 2014-11-21 -================== - - * package: bump `engine.io-client` - * README: fixes to prevent duplicate events [nkzawa] - * fix reconnection after reconnecting manually [nkzawa] - * make ACK callbacks idempotent [thexeos] - * package: bump `uglify-js` - -1.2.0 / 2014-10-27 -================== - - * bump `engine.io-client`. - * set `readyState` before engine.io close event - * fix reconnection after reconnecting manually - * enable to stop reconnecting - * downloads badge - * support no schema relative url - * enable to reconnect manually - -1.1.0 / 2014-09-04 -================== - - * socket: fix in `has-binary` - * package: bump `socket.io-parser` - * package: bump `engine.io-client` - * further increase test timeout. - * double to singly quotes in tests. - * extend timeout and remember to close everything in each test case - * fix travis - * add travis + zuul matrix - * use svg instead of png to get better image quality in readme - * make CI build faster - * removed unnecessary code from try block. Only decode packet is needed. - * package: bump `browserify` - * package: bump `engine.io-client` - * fix autoConnect option - * npmignore: ignore `.gitignore` - * package: update `browserify` - * don't fire an extra reconnect when we're not reconnecting - after a failed initial connect attempt - * package: bump `socket.io-parser` for `component-emitter` dep fix - * updated tests to reflect `autoConnect` option - * add `autoConnect` option to wait with connecting - -1.0.6 / 2014-06-19 -================== - - * test fixes on internet explorer - * fixes for duplicate event propagation from manager instance [Rase-] - -1.0.5 / 2014-06-16 -================== - - * package: bump `engine.io-client` for better deps and smaller build - * handle io.connect(null, opts) correctly [audreyt] - * url: fix incorrect ports in certain connections [holic] - * manager: propagate all reconnection events to sockets [Rase-] - * index: added BC for `force new connection` - * socket: fix event buffering while in disconnected state [kevin-roark] - * package: stop using tarballs in dependencies [reid] - * manager: relay `connect_error` and `connect_timeout` to sockets - -1.0.4 / 2014-06-02 -================== - - * update build - -1.0.3 / 2014-05-31 -================== - - * package; bump `socket.io-parser` for binary ACK fix - * package: bump `engine.io-client` for binary UTF8 fix - -1.0.2 / 2014-05-28 -================== - - * package: bump `socket.io-parser` for windows fix - -1.0.1 / 2014-05-28 -================== - - * override npm tag - -1.0.0 / 2014-05-28 -================== - - * stable release - -1.0.0-pre5 / 2014-05-22 -======================= - - * package: bump `engine.io-client` for parser fixes - -1.0.0-pre4 / 2014-05-19 -======================= - - * build - -1.0.0-pre3 / 2014-05-17 -======================= - - * package: bump parser - * package: bump engine.io-client - -1.0.0-pre2 / 2014-04-27 -======================= - - * package: bump `engine.io-client` - * package: bump `zuul` - * allows user-level query string parameters to be in socket.request - * package: bump `socket.io-parser` - * package: bump `engine.io-client` for android fix - * tidy up .gitignore - -1.0.0-pre / 2014-03-14 -====================== - - * implemented `engine.io-client` - * implemented `socket.io-parser` - * implemented `json3` to avoid env pollution - * implemented `debug` - * added binary support - * added `browserify` support - -0.9.11 / 2012-11-02 -=================== - - * Enable use of 'xhr' transport in Node.js - * Fix the problem with disconnecting xhr-polling users - * Add should to devDependencies - * Prefer XmlHttpRequest if CORS is available - * Make client compatible with AMD loaders. - -0.9.10 / 2012-08-10 -=================== - - * fix removeAllListeners to behave as expected. - * set withCredentials to true only if xdomain. - * socket: disable disconnect on unload by default. - -0.9.9 / 2012-08-01 -================== - - * socket: fixed disconnect xhr url and made it actually sync - * *: bump xmlhttprequest dep - -0.9.8 / 2012-07-24 -================== - - * Fixed build. - -0.9.7 / 2012-07-24 -================== - - * iOS websocket crash fix. - * Fixed potential `open` collision. - * Fixed disconnectSync. - -0.9.6 / 2012-04-17 -================== - - * Don't position the jsonp form off the screen (android fix). - -0.9.5 / 2012-04-05 -================== - - * Bumped version. - -0.9.4 / 2012-04-01 -================== - - * Fixes polling loop upon reconnect advice (fixes #438). - -0.9.3 / 2012-03-28 -================== - - * Fix XHR.check, which was throwing an error transparently and causing non-IE browsers to fall back to JSONP [mikito] - * Fixed forced disconnect on window close [zzzaaa] - -0.9.2 / 2012-03-13 -================== - - * Transport order set by "options" [zzzaaa] - -0.9.1-1 / 2012-03-02 -==================== - - * Fixed active-x-obfuscator NPM dependency. - -0.9.1 / 2012-03-02 -================== - - * Misc corrections. - * Added warning within Firefox about webworker test in test runner. - * Update ws dependency [einaros] - * Implemented client side heartbeat checks. [felixge] - * Improved Firewall support with ActiveX obfuscation. [felixge] - * Fixed error handling during connection process. [Outsideris] - -0.9.0 / 2012-02-26 -================== - - * Added DS_Store to gitignore. - * Updated depedencies. - * Bumped uglify - * Tweaking code so it doesn't throw an exception when used inside a WebWorker in Firefox - * Do not rely on Array.prototype.indexOf as it breaks with pages that use the Prototype.js library. - * Windows support landed - * Use @einaros ws module instead of the old crap one - * Fix for broken closeTimeout and 'IE + xhr' goes into infinite loop on disconnection - * Disabled reconnection on error if reconnect option is set to false - * Set withCredentials to true before xhr to fix authentication - * Clears the timeout from reconnection attempt when there is a successful or failed reconnection. - This fixes the issue of setTimeout's carrying over from previous reconnection - and changing (skipping) values of self.reconnectionDelay in the newer reconnection. - * Removed decoding of parameters when chunking the query string. - This was used later on to construct the url to post to the socket.io server - for connection and if we're adding custom parameters of our own to this url - (for example for OAuth authentication) they were being sent decoded, which is wrong. - -0.8.7 / 2011-11-05 -================== - - * Bumped client - -0.8.6 / 2011-10-27 -================== - - * Added WebWorker support. - * Fixed swfobject and web_socket.js to not assume window. - * Fixed CORS detection for webworker. - * Fix `defer` for webkit in a webworker. - * Fixed io.util.request to not rely on window. - * FIxed; use global instead of window and dont rely on document. - * Fixed; JSON-P handshake if CORS is not available. - * Made underlying Transport disconnection trigger immediate socket.io disconnect. - * Fixed warning when compressing with Google Closure Compiler. - * Fixed builder's uglify utf-8 support. - * Added workaround for loading indicator in FF jsonp-polling. [3rd-Eden] - * Fixed host discovery lookup. [holic] - * Fixed close timeout when disconnected/reconnecting. [jscharlach] - * Fixed jsonp-polling feature detection. - * Fixed jsonp-polling client POSTing of \n. - * Fixed test runner on IE6/7 - -0.8.5 / 2011-10-07 -================== - - * Bumped client - -0.8.4 / 2011-09-06 -================== - - * Corrected build - -0.8.3 / 2011-09-03 -================== - - * Fixed `\n` parsing for non-JSON packets. - * Fixed; make Socket.IO XHTML doctype compatible (fixes #460 from server) - * Fixed support for Node.JS running `socket.io-client`. - * Updated repository name in `package.json`. - * Added support for different policy file ports without having to port - forward 843 on the server side [3rd-Eden] - -0.8.2 / 2011-08-29 -================== - - * Fixed flashsocket detection. - -0.8.1 / 2011-08-29 -================== - - * Bump version. - -0.8.0 / 2011-08-28 -================== - - * Added MozWebSocket support (hybi-10 doesn't require API changes) [einaros]. - -0.7.11 / 2011-08-27 -=================== - - * Corrected previous release (missing build). - -0.7.10 / 2011-08-27 -=================== - - * Fix for failing fallback in websockets - -0.7.9 / 2011-08-12 -================== - - * Added check on `Socket#onConnect` to prevent double `connect` events on the main manager. - * Fixed socket namespace connect test. Remove broken alternative namespace connect test. - * Removed test handler for removed test. - * Bumped version to match `socket.io` server. - -0.7.5 / 2011-08-08 -================== - - * Added querystring support for `connect` [3rd-Eden] - * Added partial Node.JS transports support [3rd-Eden, josephg] - * Fixed builder test. - * Changed `util.inherit` to replicate Object.create / __proto__. - * Changed and cleaned up some acceptance tests. - * Fixed race condition with a test that could not be run multiple times. - * Added test for encoding a payload. - * Added the ability to override the transport to use in acceptance test [3rd-Eden] - * Fixed multiple connect packets [DanielBaulig] - * Fixed jsonp-polling over-buffering [3rd-Eden] - * Fixed ascii preservation in minified socket.io client [3rd-Eden] - * Fixed socket.io in situations where the page is not served through utf8. - * Fixed namespaces not reconnecting after disconnect [3rd-Eden] - * Fixed default port for secure connections. - -0.7.4 / 2011-07-12 -================== - - * Added `SocketNamespace#of` shortcut. [3rd-Eden] - * Fixed a IE payload decoding bug. [3rd-Eden] - * Honor document protocol, unless overriden. [dvv] - * Fixed new builder dependencies. [3rd-Eden] - -0.7.3 / 2011-06-30 -================== - - * Fixed; acks don't depend on arity. They're automatic for `.send` and - callback based for `.emit`. [dvv] - * Added support for sub-sockets authorization. [3rd-Eden] - * Added BC support for `new io.connect`. [fat] - * Fixed double `connect` events. [3rd-Eden] - * Fixed reconnection with jsonp-polling maintaining old sessionid. [franck34] - -0.7.2 / 2011-06-22 -================== - - * Added `noop` message type. - -0.7.1 / 2011-06-21 -================== - - * Bumped socket.io dependency version for acceptance tests. - -0.7.0 / 2011-06-21 -================== - - * http://socket.io/announcement.html - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/LICENSE deleted file mode 100644 index 9338df18..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Guillermo Rauch - - -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. \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/README.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/README.md deleted file mode 100644 index 3ad59942..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/README.md +++ /dev/null @@ -1,188 +0,0 @@ - -# socket.io-client - -[![Build Status](https://secure.travis-ci.org/socketio/socket.io-client.svg)](http://travis-ci.org/socketio/socket.io-client) -[![Dependency Status](https://david-dm.org/socketio/socket.io-client.svg)](https://david-dm.org/socketio/socket.io-client) -[![devDependency Status](https://david-dm.org/socketio/socket.io-client/dev-status.svg)](https://david-dm.org/socketio/socket.io-client#info=devDependencies) -![NPM version](https://badge.fury.io/js/socket.io-client.svg) -![Downloads](http://img.shields.io/npm/dm/socket.io-client.svg?style=flat) -[![](http://slack.socket.io/badge.svg?)](http://slack.socket.io) - -## How to use - -A standalone build of `socket.io-client` is exposed automatically by the -socket.io server as `/socket.io/socket.io.js`. Alternatively you can -serve the file `socket.io.js` found at the root of this repository. - -```html - - -``` - -Socket.IO is compatible with [browserify](http://browserify.org/). - -### Node.JS (server-side usage) - - Add `socket.io-client` to your `package.json` and then: - - ```js - var socket = require('socket.io-client')('http://localhost'); - socket.on('connect', function(){}); - socket.on('event', function(data){}); - socket.on('disconnect', function(){}); - ``` - -## API - -### IO(url:String, opts:Object):Socket - - Exposed as the `io` namespace in the standalone build, or the result - of calling `require('socket.io-client')`. - - When called, it creates a new `Manager` for the given URL, and attempts - to reuse an existing `Manager` for subsequent calls, unless the - `multiplex` option is passed with `false`. - - The rest of the options are passed to the `Manager` constructor (see below - for details). - - A `Socket` instance is returned for the namespace specified by the - pathname in the URL, defaulting to `/`. For example, if the `url` is - `http://localhost/users`, a transport connection will be established to - `http://localhost` and a Socket.IO connection will be established to - `/users`. - -### IO#protocol - - Socket.io protocol revision number this client works with. - -### IO#Socket - - Reference to the `Socket` constructor. - -### IO#Manager - - Reference to the `Manager` constructor. - -### IO#Emitter - - Reference to the `Emitter` constructor. - -### Manager(url:String, opts:Object) - - A `Manager` represents a connection to a given Socket.IO server. One or - more `Socket` instances are associated with the manager. The manager - can be accessed through the `io` property of each `Socket` instance. - - The `opts` are also passed to `engine.io` upon initialization of the - underlying `Socket`. - - Options: - - `reconnection` whether to reconnect automatically (`true`) - - `reconnectionAttempts` (`Infinity`) before giving up - - `reconnectionDelay` how long to initially wait before attempting a new - reconnection (`1000`). Affected by +/- `randomizationFactor`, - for example the default initial delay will be between 500 to 1500ms. - - `reconnectionDelayMax` maximum amount of time to wait between - reconnections (`5000`). Each attempt increases the reconnection delay by 2x - along with a randomization as above - - `randomizationFactor` (`0.5`), 0 <= randomizationFactor <= 1 - - `timeout` connection timeout before a `connect_error` - and `connect_timeout` events are emitted (`20000`) - - `autoConnect` by setting this false, you have to call `manager.open` - whenever you decide it's appropriate - -#### Events - - - `connect_error`. Fired upon a connection error. - Parameters: - - `Object` error object - - `connect_timeout`. Fired upon a connection timeout. - - `reconnect`. Fired upon a successful reconnection. - Parameters: - - `Number` reconnection attempt number - - `reconnect_attempt`. Fired upon an attempt to reconnect. - - `reconnecting`. Fired upon an attempt to reconnect. - Parameters: - - `Number` reconnection attempt number - - `reconnect_error`. Fired upon a reconnection attempt error. - Parameters: - - `Object` error object - - `reconnect_failed`. Fired when couldn't reconnect within `reconnectionAttempts` - - `ping`. Fired when a ping packet is written out to the server. - - `pong`. Fired when a pong is received from the server. - Parameters: - - `Number` number of ms elapsed since `ping` packet (i.e.: latency). - -The events above are also emitted on the individual sockets that -reconnect that depend on this `Manager`. - -### Manager#reconnection(v:Boolean):Manager - - Sets the `reconnection` option, or returns it if no parameters - are passed. - -### Manager#reconnectionAttempts(v:Boolean):Manager - - Sets the `reconnectionAttempts` option, or returns it if no parameters - are passed. - -### Manager#reconnectionDelay(v:Boolean):Manager - - Sets the `reconectionDelay` option, or returns it if no parameters - are passed. - -### Manager#reconnectionDelayMax(v:Boolean):Manager - - Sets the `reconectionDelayMax` option, or returns it if no parameters - are passed. - -### Manager#timeout(v:Boolean):Manager - - Sets the `timeout` option, or returns it if no parameters - are passed. - -### Socket - -#### Socket#id:String - -A property on the `socket` instance that is equal to the underlying engine.io socket id. - -The property is present once the socket has connected, is removed when the socket disconnects and is updated if the socket reconnects. - -#### Socket#compress(v:Boolean):Socket - - Sets a modifier for a subsequent event emission that the event data will - only be _compressed_ if the value is `true`. Defaults to `true` when you don't call the method. - - ```js - socket.compress(false).emit('an event', { some: 'data' }); - ``` - -#### Events - - - `connect`. Fired upon a connection including a successful reconnection. - - `error`. Fired upon a connection error - Parameters: - - `Object` error data - - `disconnect`. Fired upon a disconnection. - - `reconnect`. Fired upon a successful reconnection. - Parameters: - - `Number` reconnection attempt number - - `reconnect_attempt`. Fired upon an attempt to reconnect. - - `reconnecting`. Fired upon an attempt to reconnect. - Parameters: - - `Number` reconnection attempt number - - `reconnect_error`. Fired upon a reconnection attempt error. - Parameters: - - `Object` error object - - `reconnect_failed`. Fired when couldn't reconnect within `reconnectionAttempts` - -## License - -[MIT](/LICENSE) diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/index.js deleted file mode 100644 index 91887e4e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/index.js +++ /dev/null @@ -1,92 +0,0 @@ - -/** - * Module dependencies. - */ - -var url = require('./url'); -var parser = require('socket.io-parser'); -var Manager = require('./manager'); -var debug = require('debug')('socket.io-client'); - -/** - * Module exports. - */ - -module.exports = exports = lookup; - -/** - * Managers cache. - */ - -var cache = exports.managers = {}; - -/** - * Looks up an existing `Manager` for multiplexing. - * If the user summons: - * - * `io('http://localhost/a');` - * `io('http://localhost/b');` - * - * We reuse the existing instance based on same scheme/port/host, - * and we initialize sockets for each namespace. - * - * @api public - */ - -function lookup(uri, opts) { - if (typeof uri == 'object') { - opts = uri; - uri = undefined; - } - - opts = opts || {}; - - var parsed = url(uri); - var source = parsed.source; - var id = parsed.id; - var path = parsed.path; - var sameNamespace = cache[id] && path in cache[id].nsps; - var newConnection = opts.forceNew || opts['force new connection'] || - false === opts.multiplex || sameNamespace; - - var io; - - if (newConnection) { - debug('ignoring socket cache for %s', source); - io = Manager(source, opts); - } else { - if (!cache[id]) { - debug('new io instance for %s', source); - cache[id] = Manager(source, opts); - } - io = cache[id]; - } - - return io.socket(parsed.path); -} - -/** - * Protocol version. - * - * @api public - */ - -exports.protocol = parser.protocol; - -/** - * `connect`. - * - * @param {String} uri - * @api public - */ - -exports.connect = lookup; - -/** - * Expose constructors for standalone build. - * - * @api public - */ - -exports.Manager = require('./manager'); -exports.Socket = require('./socket'); diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/manager.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/manager.js deleted file mode 100644 index 5d7f88c6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/manager.js +++ /dev/null @@ -1,557 +0,0 @@ - -/** - * Module dependencies. - */ - -var eio = require('engine.io-client'); -var Socket = require('./socket'); -var Emitter = require('component-emitter'); -var parser = require('socket.io-parser'); -var on = require('./on'); -var bind = require('component-bind'); -var debug = require('debug')('socket.io-client:manager'); -var indexOf = require('indexof'); -var Backoff = require('backo2'); - -/** - * IE6+ hasOwnProperty - */ - -var has = Object.prototype.hasOwnProperty; - -/** - * Module exports - */ - -module.exports = Manager; - -/** - * `Manager` constructor. - * - * @param {String} engine instance or engine uri/opts - * @param {Object} options - * @api public - */ - -function Manager(uri, opts){ - if (!(this instanceof Manager)) return new Manager(uri, opts); - if (uri && ('object' == typeof uri)) { - opts = uri; - uri = undefined; - } - opts = opts || {}; - - opts.path = opts.path || '/socket.io'; - this.nsps = {}; - this.subs = []; - this.opts = opts; - this.reconnection(opts.reconnection !== false); - this.reconnectionAttempts(opts.reconnectionAttempts || Infinity); - this.reconnectionDelay(opts.reconnectionDelay || 1000); - this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000); - this.randomizationFactor(opts.randomizationFactor || 0.5); - this.backoff = new Backoff({ - min: this.reconnectionDelay(), - max: this.reconnectionDelayMax(), - jitter: this.randomizationFactor() - }); - this.timeout(null == opts.timeout ? 20000 : opts.timeout); - this.readyState = 'closed'; - this.uri = uri; - this.connecting = []; - this.lastPing = null; - this.encoding = false; - this.packetBuffer = []; - this.encoder = new parser.Encoder(); - this.decoder = new parser.Decoder(); - this.autoConnect = opts.autoConnect !== false; - if (this.autoConnect) this.open(); -} - -/** - * Propagate given event to sockets and emit on `this` - * - * @api private - */ - -Manager.prototype.emitAll = function() { - this.emit.apply(this, arguments); - for (var nsp in this.nsps) { - if (has.call(this.nsps, nsp)) { - this.nsps[nsp].emit.apply(this.nsps[nsp], arguments); - } - } -}; - -/** - * Update `socket.id` of all sockets - * - * @api private - */ - -Manager.prototype.updateSocketIds = function(){ - for (var nsp in this.nsps) { - if (has.call(this.nsps, nsp)) { - this.nsps[nsp].id = this.engine.id; - } - } -}; - -/** - * Mix in `Emitter`. - */ - -Emitter(Manager.prototype); - -/** - * Sets the `reconnection` config. - * - * @param {Boolean} true/false if it should automatically reconnect - * @return {Manager} self or value - * @api public - */ - -Manager.prototype.reconnection = function(v){ - if (!arguments.length) return this._reconnection; - this._reconnection = !!v; - return this; -}; - -/** - * Sets the reconnection attempts config. - * - * @param {Number} max reconnection attempts before giving up - * @return {Manager} self or value - * @api public - */ - -Manager.prototype.reconnectionAttempts = function(v){ - if (!arguments.length) return this._reconnectionAttempts; - this._reconnectionAttempts = v; - return this; -}; - -/** - * Sets the delay between reconnections. - * - * @param {Number} delay - * @return {Manager} self or value - * @api public - */ - -Manager.prototype.reconnectionDelay = function(v){ - if (!arguments.length) return this._reconnectionDelay; - this._reconnectionDelay = v; - this.backoff && this.backoff.setMin(v); - return this; -}; - -Manager.prototype.randomizationFactor = function(v){ - if (!arguments.length) return this._randomizationFactor; - this._randomizationFactor = v; - this.backoff && this.backoff.setJitter(v); - return this; -}; - -/** - * Sets the maximum delay between reconnections. - * - * @param {Number} delay - * @return {Manager} self or value - * @api public - */ - -Manager.prototype.reconnectionDelayMax = function(v){ - if (!arguments.length) return this._reconnectionDelayMax; - this._reconnectionDelayMax = v; - this.backoff && this.backoff.setMax(v); - return this; -}; - -/** - * Sets the connection timeout. `false` to disable - * - * @return {Manager} self or value - * @api public - */ - -Manager.prototype.timeout = function(v){ - if (!arguments.length) return this._timeout; - this._timeout = v; - return this; -}; - -/** - * Starts trying to reconnect if reconnection is enabled and we have not - * started reconnecting yet - * - * @api private - */ - -Manager.prototype.maybeReconnectOnOpen = function() { - // Only try to reconnect if it's the first time we're connecting - if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) { - // keeps reconnection from firing twice for the same reconnection loop - this.reconnect(); - } -}; - - -/** - * Sets the current transport `socket`. - * - * @param {Function} optional, callback - * @return {Manager} self - * @api public - */ - -Manager.prototype.open = -Manager.prototype.connect = function(fn){ - debug('readyState %s', this.readyState); - if (~this.readyState.indexOf('open')) return this; - - debug('opening %s', this.uri); - this.engine = eio(this.uri, this.opts); - var socket = this.engine; - var self = this; - this.readyState = 'opening'; - this.skipReconnect = false; - - // emit `open` - var openSub = on(socket, 'open', function() { - self.onopen(); - fn && fn(); - }); - - // emit `connect_error` - var errorSub = on(socket, 'error', function(data){ - debug('connect_error'); - self.cleanup(); - self.readyState = 'closed'; - self.emitAll('connect_error', data); - if (fn) { - var err = new Error('Connection error'); - err.data = data; - fn(err); - } else { - // Only do this if there is no fn to handle the error - self.maybeReconnectOnOpen(); - } - }); - - // emit `connect_timeout` - if (false !== this._timeout) { - var timeout = this._timeout; - debug('connect attempt will timeout after %d', timeout); - - // set timer - var timer = setTimeout(function(){ - debug('connect attempt timed out after %d', timeout); - openSub.destroy(); - socket.close(); - socket.emit('error', 'timeout'); - self.emitAll('connect_timeout', timeout); - }, timeout); - - this.subs.push({ - destroy: function(){ - clearTimeout(timer); - } - }); - } - - this.subs.push(openSub); - this.subs.push(errorSub); - - return this; -}; - -/** - * Called upon transport open. - * - * @api private - */ - -Manager.prototype.onopen = function(){ - debug('open'); - - // clear old subs - this.cleanup(); - - // mark as open - this.readyState = 'open'; - this.emit('open'); - - // add new subs - var socket = this.engine; - this.subs.push(on(socket, 'data', bind(this, 'ondata'))); - this.subs.push(on(socket, 'ping', bind(this, 'onping'))); - this.subs.push(on(socket, 'pong', bind(this, 'onpong'))); - this.subs.push(on(socket, 'error', bind(this, 'onerror'))); - this.subs.push(on(socket, 'close', bind(this, 'onclose'))); - this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded'))); -}; - -/** - * Called upon a ping. - * - * @api private - */ - -Manager.prototype.onping = function(){ - this.lastPing = new Date; - this.emitAll('ping'); -}; - -/** - * Called upon a packet. - * - * @api private - */ - -Manager.prototype.onpong = function(){ - this.emitAll('pong', new Date - this.lastPing); -}; - -/** - * Called with data. - * - * @api private - */ - -Manager.prototype.ondata = function(data){ - this.decoder.add(data); -}; - -/** - * Called when parser fully decodes a packet. - * - * @api private - */ - -Manager.prototype.ondecoded = function(packet) { - this.emit('packet', packet); -}; - -/** - * Called upon socket error. - * - * @api private - */ - -Manager.prototype.onerror = function(err){ - debug('error', err); - this.emitAll('error', err); -}; - -/** - * Creates a new socket for the given `nsp`. - * - * @return {Socket} - * @api public - */ - -Manager.prototype.socket = function(nsp){ - var socket = this.nsps[nsp]; - if (!socket) { - socket = new Socket(this, nsp); - this.nsps[nsp] = socket; - var self = this; - socket.on('connecting', onConnecting); - socket.on('connect', function(){ - socket.id = self.engine.id; - }); - - if (this.autoConnect) { - // manually call here since connecting evnet is fired before listening - onConnecting(); - } - } - - function onConnecting() { - if (!~indexOf(self.connecting, socket)) { - self.connecting.push(socket); - } - } - - return socket; -}; - -/** - * Called upon a socket close. - * - * @param {Socket} socket - */ - -Manager.prototype.destroy = function(socket){ - var index = indexOf(this.connecting, socket); - if (~index) this.connecting.splice(index, 1); - if (this.connecting.length) return; - - this.close(); -}; - -/** - * Writes a packet. - * - * @param {Object} packet - * @api private - */ - -Manager.prototype.packet = function(packet){ - debug('writing packet %j', packet); - var self = this; - - if (!self.encoding) { - // encode, then write to engine with result - self.encoding = true; - this.encoder.encode(packet, function(encodedPackets) { - for (var i = 0; i < encodedPackets.length; i++) { - self.engine.write(encodedPackets[i], packet.options); - } - self.encoding = false; - self.processPacketQueue(); - }); - } else { // add packet to the queue - self.packetBuffer.push(packet); - } -}; - -/** - * If packet buffer is non-empty, begins encoding the - * next packet in line. - * - * @api private - */ - -Manager.prototype.processPacketQueue = function() { - if (this.packetBuffer.length > 0 && !this.encoding) { - var pack = this.packetBuffer.shift(); - this.packet(pack); - } -}; - -/** - * Clean up transport subscriptions and packet buffer. - * - * @api private - */ - -Manager.prototype.cleanup = function(){ - debug('cleanup'); - - var sub; - while (sub = this.subs.shift()) sub.destroy(); - - this.packetBuffer = []; - this.encoding = false; - this.lastPing = null; - - this.decoder.destroy(); -}; - -/** - * Close the current socket. - * - * @api private - */ - -Manager.prototype.close = -Manager.prototype.disconnect = function(){ - debug('disconnect'); - this.skipReconnect = true; - this.reconnecting = false; - if ('opening' == this.readyState) { - // `onclose` will not fire because - // an open event never happened - this.cleanup(); - } - this.backoff.reset(); - this.readyState = 'closed'; - if (this.engine) this.engine.close(); -}; - -/** - * Called upon engine close. - * - * @api private - */ - -Manager.prototype.onclose = function(reason){ - debug('onclose'); - - this.cleanup(); - this.backoff.reset(); - this.readyState = 'closed'; - this.emit('close', reason); - - if (this._reconnection && !this.skipReconnect) { - this.reconnect(); - } -}; - -/** - * Attempt a reconnection. - * - * @api private - */ - -Manager.prototype.reconnect = function(){ - if (this.reconnecting || this.skipReconnect) return this; - - var self = this; - - if (this.backoff.attempts >= this._reconnectionAttempts) { - debug('reconnect failed'); - this.backoff.reset(); - this.emitAll('reconnect_failed'); - this.reconnecting = false; - } else { - var delay = this.backoff.duration(); - debug('will wait %dms before reconnect attempt', delay); - - this.reconnecting = true; - var timer = setTimeout(function(){ - if (self.skipReconnect) return; - - debug('attempting reconnect'); - self.emitAll('reconnect_attempt', self.backoff.attempts); - self.emitAll('reconnecting', self.backoff.attempts); - - // check again for the case socket closed in above events - if (self.skipReconnect) return; - - self.open(function(err){ - if (err) { - debug('reconnect attempt error'); - self.reconnecting = false; - self.reconnect(); - self.emitAll('reconnect_error', err.data); - } else { - debug('reconnect success'); - self.onreconnect(); - } - }); - }, delay); - - this.subs.push({ - destroy: function(){ - clearTimeout(timer); - } - }); - } -}; - -/** - * Called upon successful reconnect. - * - * @api private - */ - -Manager.prototype.onreconnect = function(){ - var attempt = this.backoff.attempts; - this.reconnecting = false; - this.backoff.reset(); - this.updateSocketIds(); - this.emitAll('reconnect', attempt); -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/on.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/on.js deleted file mode 100644 index 6be286d5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/on.js +++ /dev/null @@ -1,24 +0,0 @@ - -/** - * Module exports. - */ - -module.exports = on; - -/** - * Helper for subscriptions. - * - * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter` - * @param {String} event name - * @param {Function} callback - * @api public - */ - -function on(obj, ev, fn) { - obj.on(ev, fn); - return { - destroy: function(){ - obj.removeListener(ev, fn); - } - }; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/socket.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/socket.js deleted file mode 100644 index 6c19a0cd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/socket.js +++ /dev/null @@ -1,412 +0,0 @@ - -/** - * Module dependencies. - */ - -var parser = require('socket.io-parser'); -var Emitter = require('component-emitter'); -var toArray = require('to-array'); -var on = require('./on'); -var bind = require('component-bind'); -var debug = require('debug')('socket.io-client:socket'); -var hasBin = require('has-binary'); - -/** - * Module exports. - */ - -module.exports = exports = Socket; - -/** - * Internal events (blacklisted). - * These events can't be emitted by the user. - * - * @api private - */ - -var events = { - connect: 1, - connect_error: 1, - connect_timeout: 1, - connecting: 1, - disconnect: 1, - error: 1, - reconnect: 1, - reconnect_attempt: 1, - reconnect_failed: 1, - reconnect_error: 1, - reconnecting: 1, - ping: 1, - pong: 1 -}; - -/** - * Shortcut to `Emitter#emit`. - */ - -var emit = Emitter.prototype.emit; - -/** - * `Socket` constructor. - * - * @api public - */ - -function Socket(io, nsp){ - this.io = io; - this.nsp = nsp; - this.json = this; // compat - this.ids = 0; - this.acks = {}; - this.receiveBuffer = []; - this.sendBuffer = []; - this.connected = false; - this.disconnected = true; - if (this.io.autoConnect) this.open(); -} - -/** - * Mix in `Emitter`. - */ - -Emitter(Socket.prototype); - -/** - * Subscribe to open, close and packet events - * - * @api private - */ - -Socket.prototype.subEvents = function() { - if (this.subs) return; - - var io = this.io; - this.subs = [ - on(io, 'open', bind(this, 'onopen')), - on(io, 'packet', bind(this, 'onpacket')), - on(io, 'close', bind(this, 'onclose')) - ]; -}; - -/** - * "Opens" the socket. - * - * @api public - */ - -Socket.prototype.open = -Socket.prototype.connect = function(){ - if (this.connected) return this; - - this.subEvents(); - this.io.open(); // ensure open - if ('open' == this.io.readyState) this.onopen(); - this.emit('connecting'); - return this; -}; - -/** - * Sends a `message` event. - * - * @return {Socket} self - * @api public - */ - -Socket.prototype.send = function(){ - var args = toArray(arguments); - args.unshift('message'); - this.emit.apply(this, args); - return this; -}; - -/** - * Override `emit`. - * If the event is in `events`, it's emitted normally. - * - * @param {String} event name - * @return {Socket} self - * @api public - */ - -Socket.prototype.emit = function(ev){ - if (events.hasOwnProperty(ev)) { - emit.apply(this, arguments); - return this; - } - - var args = toArray(arguments); - var parserType = parser.EVENT; // default - if (hasBin(args)) { parserType = parser.BINARY_EVENT; } // binary - var packet = { type: parserType, data: args }; - - packet.options = {}; - packet.options.compress = !this.flags || false !== this.flags.compress; - - // event ack callback - if ('function' == typeof args[args.length - 1]) { - debug('emitting packet with ack id %d', this.ids); - this.acks[this.ids] = args.pop(); - packet.id = this.ids++; - } - - if (this.connected) { - this.packet(packet); - } else { - this.sendBuffer.push(packet); - } - - delete this.flags; - - return this; -}; - -/** - * Sends a packet. - * - * @param {Object} packet - * @api private - */ - -Socket.prototype.packet = function(packet){ - packet.nsp = this.nsp; - this.io.packet(packet); -}; - -/** - * Called upon engine `open`. - * - * @api private - */ - -Socket.prototype.onopen = function(){ - debug('transport is open - connecting'); - - // write connect packet if necessary - if ('/' != this.nsp) { - this.packet({ type: parser.CONNECT }); - } -}; - -/** - * Called upon engine `close`. - * - * @param {String} reason - * @api private - */ - -Socket.prototype.onclose = function(reason){ - debug('close (%s)', reason); - this.connected = false; - this.disconnected = true; - delete this.id; - this.emit('disconnect', reason); -}; - -/** - * Called with socket packet. - * - * @param {Object} packet - * @api private - */ - -Socket.prototype.onpacket = function(packet){ - if (packet.nsp != this.nsp) return; - - switch (packet.type) { - case parser.CONNECT: - this.onconnect(); - break; - - case parser.EVENT: - this.onevent(packet); - break; - - case parser.BINARY_EVENT: - this.onevent(packet); - break; - - case parser.ACK: - this.onack(packet); - break; - - case parser.BINARY_ACK: - this.onack(packet); - break; - - case parser.DISCONNECT: - this.ondisconnect(); - break; - - case parser.ERROR: - this.emit('error', packet.data); - break; - } -}; - -/** - * Called upon a server event. - * - * @param {Object} packet - * @api private - */ - -Socket.prototype.onevent = function(packet){ - var args = packet.data || []; - debug('emitting event %j', args); - - if (null != packet.id) { - debug('attaching ack callback to event'); - args.push(this.ack(packet.id)); - } - - if (this.connected) { - emit.apply(this, args); - } else { - this.receiveBuffer.push(args); - } -}; - -/** - * Produces an ack callback to emit with an event. - * - * @api private - */ - -Socket.prototype.ack = function(id){ - var self = this; - var sent = false; - return function(){ - // prevent double callbacks - if (sent) return; - sent = true; - var args = toArray(arguments); - debug('sending ack %j', args); - - var type = hasBin(args) ? parser.BINARY_ACK : parser.ACK; - self.packet({ - type: type, - id: id, - data: args - }); - }; -}; - -/** - * Called upon a server acknowlegement. - * - * @param {Object} packet - * @api private - */ - -Socket.prototype.onack = function(packet){ - var ack = this.acks[packet.id]; - if ('function' == typeof ack) { - debug('calling ack %s with %j', packet.id, packet.data); - ack.apply(this, packet.data); - delete this.acks[packet.id]; - } else { - debug('bad ack %s', packet.id); - } -}; - -/** - * Called upon server connect. - * - * @api private - */ - -Socket.prototype.onconnect = function(){ - this.connected = true; - this.disconnected = false; - this.emit('connect'); - this.emitBuffered(); -}; - -/** - * Emit buffered events (received and emitted). - * - * @api private - */ - -Socket.prototype.emitBuffered = function(){ - var i; - for (i = 0; i < this.receiveBuffer.length; i++) { - emit.apply(this, this.receiveBuffer[i]); - } - this.receiveBuffer = []; - - for (i = 0; i < this.sendBuffer.length; i++) { - this.packet(this.sendBuffer[i]); - } - this.sendBuffer = []; -}; - -/** - * Called upon server disconnect. - * - * @api private - */ - -Socket.prototype.ondisconnect = function(){ - debug('server disconnect (%s)', this.nsp); - this.destroy(); - this.onclose('io server disconnect'); -}; - -/** - * Called upon forced client/server side disconnections, - * this method ensures the manager stops tracking us and - * that reconnections don't get triggered for this. - * - * @api private. - */ - -Socket.prototype.destroy = function(){ - if (this.subs) { - // clean subscriptions to avoid reconnections - for (var i = 0; i < this.subs.length; i++) { - this.subs[i].destroy(); - } - this.subs = null; - } - - this.io.destroy(this); -}; - -/** - * Disconnects the socket manually. - * - * @return {Socket} self - * @api public - */ - -Socket.prototype.close = -Socket.prototype.disconnect = function(){ - if (this.connected) { - debug('performing disconnect (%s)', this.nsp); - this.packet({ type: parser.DISCONNECT }); - } - - // remove socket from pool - this.destroy(); - - if (this.connected) { - // fire events - this.onclose('io client disconnect'); - } - return this; -}; - -/** - * Sets the compress flag. - * - * @param {Boolean} if `true`, compresses the sending data - * @return {Socket} self - * @api public - */ - -Socket.prototype.compress = function(compress){ - this.flags = this.flags || {}; - this.flags.compress = compress; - return this; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/url.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/url.js deleted file mode 100644 index dd3982bd..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/lib/url.js +++ /dev/null @@ -1,76 +0,0 @@ - -/** - * Module dependencies. - */ - -var parseuri = require('parseuri'); -var debug = require('debug')('socket.io-client:url'); - -/** - * Module exports. - */ - -module.exports = url; - -/** - * URL parser. - * - * @param {String} url - * @param {Object} An object meant to mimic window.location. - * Defaults to window.location. - * @api public - */ - -function url(uri, loc){ - var obj = uri; - - // default to window.location - var loc = loc || global.location; - if (null == uri) uri = loc.protocol + '//' + loc.host; - - // relative path support - if ('string' == typeof uri) { - if ('/' == uri.charAt(0)) { - if ('/' == uri.charAt(1)) { - uri = loc.protocol + uri; - } else { - uri = loc.host + uri; - } - } - - if (!/^(https?|wss?):\/\//.test(uri)) { - debug('protocol-less url %s', uri); - if ('undefined' != typeof loc) { - uri = loc.protocol + '//' + uri; - } else { - uri = 'https://' + uri; - } - } - - // parse - debug('parse %s', uri); - obj = parseuri(uri); - } - - // make sure we treat `localhost:80` and `localhost` equally - if (!obj.port) { - if (/^(http|ws)$/.test(obj.protocol)) { - obj.port = '80'; - } - else if (/^(http|ws)s$/.test(obj.protocol)) { - obj.port = '443'; - } - } - - obj.path = obj.path || '/'; - - var ipv6 = obj.host.indexOf(':') !== -1; - var host = ipv6 ? '[' + obj.host + ']' : obj.host; - - // define unique id - obj.id = obj.protocol + '://' + host + ':' + obj.port; - // define href - obj.href = obj.protocol + '://' + host + (loc && loc.port == obj.port ? '' : (':' + obj.port)); - - return obj; -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/.npmignore deleted file mode 100644 index c2658d7d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/History.md deleted file mode 100644 index 8eb28b8e..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/History.md +++ /dev/null @@ -1,12 +0,0 @@ - -1.0.1 / 2014-02-17 -================== - - * go away decimal point - * history - -1.0.0 / 2014-02-17 -================== - - * add jitter option - * Initial commit diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/Makefile deleted file mode 100644 index 9987df81..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/Makefile +++ /dev/null @@ -1,8 +0,0 @@ - -test: - @./node_modules/.bin/mocha \ - --require should \ - --reporter dot \ - --bail - -.PHONY: test \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/Readme.md deleted file mode 100644 index 0df2a399..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/Readme.md +++ /dev/null @@ -1,34 +0,0 @@ -# backo - - Simple exponential backoff because the others seem to have weird abstractions. - -## Installation - -``` -$ npm install backo -``` - -## Options - - - `min` initial timeout in milliseconds [100] - - `max` max timeout [10000] - - `jitter` [0] - - `factor` [2] - -## Example - -```js -var Backoff = require('backo'); -var backoff = new Backoff({ min: 100, max: 20000 }); - -setTimeout(function(){ - something.reconnect(); -}, backoff.duration()); - -// later when something works -backoff.reset() -``` - -# License - - MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/component.json deleted file mode 100644 index 994845ac..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/component.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "backo", - "repo": "segmentio/backo", - "dependencies": {}, - "version": "1.0.1", - "description": "simple backoff without the weird abstractions", - "keywords": ["backoff"], - "license": "MIT", - "scripts": ["index.js"], - "main": "index.js" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/index.js deleted file mode 100644 index fac4429b..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/index.js +++ /dev/null @@ -1,85 +0,0 @@ - -/** - * Expose `Backoff`. - */ - -module.exports = Backoff; - -/** - * Initialize backoff timer with `opts`. - * - * - `min` initial timeout in milliseconds [100] - * - `max` max timeout [10000] - * - `jitter` [0] - * - `factor` [2] - * - * @param {Object} opts - * @api public - */ - -function Backoff(opts) { - opts = opts || {}; - this.ms = opts.min || 100; - this.max = opts.max || 10000; - this.factor = opts.factor || 2; - this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0; - this.attempts = 0; -} - -/** - * Return the backoff duration. - * - * @return {Number} - * @api public - */ - -Backoff.prototype.duration = function(){ - var ms = this.ms * Math.pow(this.factor, this.attempts++); - if (this.jitter) { - var rand = Math.random(); - var deviation = Math.floor(rand * this.jitter * ms); - ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation; - } - return Math.min(ms, this.max) | 0; -}; - -/** - * Reset the number of attempts. - * - * @api public - */ - -Backoff.prototype.reset = function(){ - this.attempts = 0; -}; - -/** - * Set the minimum duration - * - * @api public - */ - -Backoff.prototype.setMin = function(min){ - this.ms = min; -}; - -/** - * Set the maximum duration - * - * @api public - */ - -Backoff.prototype.setMax = function(max){ - this.max = max; -}; - -/** - * Set the jitter - * - * @api public - */ - -Backoff.prototype.setJitter = function(jitter){ - this.jitter = jitter; -}; - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/package.json deleted file mode 100644 index f2bf16bb..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "backo2", - "version": "1.0.2", - "repository": { - "type": "git", - "url": "git+https://github.com/mokesmokes/backo.git" - }, - "description": "simple backoff based on segmentio/backo", - "keywords": [ - "backoff" - ], - "dependencies": {}, - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "license": "MIT", - "gitHead": "3e695bade7756fef2295e8883bf3570a06e5d9ec", - "bugs": { - "url": "https://github.com/mokesmokes/backo/issues" - }, - "homepage": "https://github.com/mokesmokes/backo", - "_id": "backo2@1.0.2", - "scripts": {}, - "_shasum": "31ab1ac8b129363463e35b3ebb69f4dfcfba7947", - "_from": "backo2@1.0.2", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "mokesmokes", - "email": "mokesmokes@gmail.com" - }, - "maintainers": [ - { - "name": "mokesmokes", - "email": "mokesmokes@gmail.com" - } - ], - "dist": { - "shasum": "31ab1ac8b129363463e35b3ebb69f4dfcfba7947", - "tarball": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/test/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/test/index.js deleted file mode 100644 index ea1f6de1..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/test/index.js +++ /dev/null @@ -1,18 +0,0 @@ - -var Backoff = require('..'); -var assert = require('assert'); - -describe('.duration()', function(){ - it('should increase the backoff', function(){ - var b = new Backoff; - - assert(100 == b.duration()); - assert(200 == b.duration()); - assert(400 == b.duration()); - assert(800 == b.duration()); - - b.reset(); - assert(100 == b.duration()); - assert(200 == b.duration()); - }) -}) \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/.npmignore deleted file mode 100644 index f1250e58..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -support -test -examples -*.sock diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/History.md deleted file mode 100644 index 2795fdbc..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/History.md +++ /dev/null @@ -1,13 +0,0 @@ - -1.0.0 / 2014-05-27 -================== - - * index: use slice ref (#7, @viatropos) - * package: rename package to "component-bind" - * package: add "repository" field (#6, @repoify) - * package: add "component" section - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/Makefile b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/Makefile deleted file mode 100644 index 4e9c8d36..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/Makefile +++ /dev/null @@ -1,7 +0,0 @@ - -test: - @./node_modules/.bin/mocha \ - --require should \ - --reporter spec - -.PHONY: test \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/Readme.md deleted file mode 100644 index 6a8febc8..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/Readme.md +++ /dev/null @@ -1,64 +0,0 @@ -# bind - - Function binding utility. - -## Installation - -``` -$ component install component/bind -``` - -## API - - - [bind(obj, fn)](#bindobj-fn) - - [bind(obj, fn, ...)](#bindobj-fn-) - - [bind(obj, name)](#bindobj-name) - - - -### bind(obj, fn) -should bind the function to the given object. - -```js -var tobi = { name: 'tobi' }; - -function name() { - return this.name; -} - -var fn = bind(tobi, name); -fn().should.equal('tobi'); -``` - - -### bind(obj, fn, ...) -should curry the remaining arguments. - -```js -function add(a, b) { - return a + b; -} - -bind(null, add)(1, 2).should.equal(3); -bind(null, add, 1)(2).should.equal(3); -bind(null, add, 1, 2)().should.equal(3); -``` - - -### bind(obj, name) -should bind the method of the given name. - -```js -var tobi = { name: 'tobi' }; - -tobi.getName = function() { - return this.name; -}; - -var fn = bind(tobi, 'getName'); -fn().should.equal('tobi'); -``` - -## License - - MIT \ No newline at end of file diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/component.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/component.json deleted file mode 100644 index 4e1e93f5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/component.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "bind", - "version": "1.0.0", - "description": "function binding utility", - "keywords": [ - "bind", - "utility" - ], - "dependencies": {}, - "scripts": [ - "index.js" - ] -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/index.js deleted file mode 100644 index 4eeb2c0a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/index.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Slice reference. - */ - -var slice = [].slice; - -/** - * Bind `obj` to `fn`. - * - * @param {Object} obj - * @param {Function|String} fn or string - * @return {Function} - * @api public - */ - -module.exports = function(obj, fn){ - if ('string' == typeof fn) fn = obj[fn]; - if ('function' != typeof fn) throw new Error('bind() requires a function'); - var args = slice.call(arguments, 2); - return function(){ - return fn.apply(obj, args.concat(slice.call(arguments))); - } -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/package.json deleted file mode 100644 index 4a65518a..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "component-bind", - "version": "1.0.0", - "description": "function binding utility", - "keywords": [ - "bind", - "utility" - ], - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "component": { - "scripts": { - "bind/index.js": "index.js" - } - }, - "repository": { - "type": "git", - "url": "git+https://github.com/component/bind.git" - }, - "bugs": { - "url": "https://github.com/component/bind/issues" - }, - "homepage": "https://github.com/component/bind", - "_id": "component-bind@1.0.0", - "_shasum": "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1", - "_from": "component-bind@1.0.0", - "_npmVersion": "1.4.9", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "dist": { - "shasum": "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1", - "tarball": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/History.md deleted file mode 100644 index 2ab07791..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/History.md +++ /dev/null @@ -1,63 +0,0 @@ - -1.2.0 / 2014-02-12 -================== - - * prefix events with `$` to support object prototype method names - -1.1.3 / 2014-06-20 -================== - - * republish for npm - * add LICENSE file - -1.1.2 / 2014-02-10 -================== - - * package: rename to "component-emitter" - * package: update "main" and "component" fields - * Add license to Readme (same format as the other components) - * created .npmignore - * travis stuff - -1.1.1 / 2013-12-01 -================== - - * fix .once adding .on to the listener - * docs: Emitter#off() - * component: add `.repo` prop - -1.1.0 / 2013-10-20 -================== - - * add `.addEventListener()` and `.removeEventListener()` aliases - -1.0.1 / 2013-06-27 -================== - - * add support for legacy ie - -1.0.0 / 2013-02-26 -================== - - * add `.off()` support for removing all listeners - -0.0.6 / 2012-10-08 -================== - - * add `this._callbacks` initialization to prevent funky gotcha - -0.0.5 / 2012-09-07 -================== - - * fix `Emitter.call(this)` usage - -0.0.3 / 2012-07-11 -================== - - * add `.listeners()` - * rename `.has()` to `.hasListeners()` - -0.0.2 / 2012-06-28 -================== - - * fix `.off()` with `.once()`-registered callbacks diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/LICENSE b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/LICENSE deleted file mode 100644 index de516927..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Component contributors - -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/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/Readme.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/Readme.md deleted file mode 100644 index 0f3f9b9f..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/Readme.md +++ /dev/null @@ -1,74 +0,0 @@ -# Emitter [![Build Status](https://travis-ci.org/component/emitter.png)](https://travis-ci.org/component/emitter) - - Event emitter component. - -## Installation - -``` -$ component install component/emitter -``` - -## API - -### Emitter(obj) - - The `Emitter` may also be used as a mixin. For example - a "plain" object may become an emitter, or you may - extend an existing prototype. - - As an `Emitter` instance: - -```js -var Emitter = require('emitter'); -var emitter = new Emitter; -emitter.emit('something'); -``` - - As a mixin: - -```js -var Emitter = require('emitter'); -var user = { name: 'tobi' }; -Emitter(user); - -user.emit('im a user'); -``` - - As a prototype mixin: - -```js -var Emitter = require('emitter'); -Emitter(User.prototype); -``` - -### Emitter#on(event, fn) - - Register an `event` handler `fn`. - -### Emitter#once(event, fn) - - Register a single-shot `event` handler `fn`, - removed immediately after it is invoked the - first time. - -### Emitter#off(event, fn) - - * Pass `event` and `fn` to remove a listener. - * Pass `event` to remove all listeners on that event. - * Pass nothing to remove all listeners on all events. - -### Emitter#emit(event, ...) - - Emit an `event` with variable option args. - -### Emitter#listeners(event) - - Return an array of callbacks, or an empty array. - -### Emitter#hasListeners(event) - - Check if this emitter has `event` handlers. - -## License - -MIT diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/index.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/index.js deleted file mode 100644 index 1c781764..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/index.js +++ /dev/null @@ -1,161 +0,0 @@ - -/** - * Expose `Emitter`. - */ - -module.exports = Emitter; - -/** - * Initialize a new `Emitter`. - * - * @api public - */ - -function Emitter(obj) { - if (obj) return mixin(obj); -}; - -/** - * Mixin the emitter properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ - -function mixin(obj) { - for (var key in Emitter.prototype) { - obj[key] = Emitter.prototype[key]; - } - return obj; -} - -/** - * Listen on the given `event` with `fn`. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.on = -Emitter.prototype.addEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - (this._callbacks['$' + event] = this._callbacks['$' + event] || []) - .push(fn); - return this; -}; - -/** - * Adds an `event` listener that will be invoked a single - * time then automatically removed. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.once = function(event, fn){ - function on() { - this.off(event, on); - fn.apply(this, arguments); - } - - on.fn = fn; - this.on(event, on); - return this; -}; - -/** - * Remove the given callback for `event` or all - * registered callbacks. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.off = -Emitter.prototype.removeListener = -Emitter.prototype.removeAllListeners = -Emitter.prototype.removeEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - - // all - if (0 == arguments.length) { - this._callbacks = {}; - return this; - } - - // specific event - var callbacks = this._callbacks['$' + event]; - if (!callbacks) return this; - - // remove all handlers - if (1 == arguments.length) { - delete this._callbacks['$' + event]; - return this; - } - - // remove specific handler - var cb; - for (var i = 0; i < callbacks.length; i++) { - cb = callbacks[i]; - if (cb === fn || cb.fn === fn) { - callbacks.splice(i, 1); - break; - } - } - return this; -}; - -/** - * Emit `event` with the given args. - * - * @param {String} event - * @param {Mixed} ... - * @return {Emitter} - */ - -Emitter.prototype.emit = function(event){ - this._callbacks = this._callbacks || {}; - var args = [].slice.call(arguments, 1) - , callbacks = this._callbacks['$' + event]; - - if (callbacks) { - callbacks = callbacks.slice(0); - for (var i = 0, len = callbacks.length; i < len; ++i) { - callbacks[i].apply(this, args); - } - } - - return this; -}; - -/** - * Return array of callbacks for `event`. - * - * @param {String} event - * @return {Array} - * @api public - */ - -Emitter.prototype.listeners = function(event){ - this._callbacks = this._callbacks || {}; - return this._callbacks['$' + event] || []; -}; - -/** - * Check if this emitter has `event` handlers. - * - * @param {String} event - * @return {Boolean} - * @api public - */ - -Emitter.prototype.hasListeners = function(event){ - return !! this.listeners(event).length; -}; diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/package.json b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/package.json deleted file mode 100644 index cf788ee5..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/package.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "name": "component-emitter", - "description": "Event emitter", - "version": "1.2.0", - "license": "MIT", - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "component": { - "scripts": { - "emitter/index.js": "index.js" - } - }, - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/component/emitter.git" - }, - "scripts": { - "test": "make test" - }, - "files": [ - "index.js", - "LICENSE" - ], - "gitHead": "4d18307a2cdd2cec16d1fadf9e04f02351a8d62e", - "bugs": { - "url": "https://github.com/component/emitter/issues" - }, - "homepage": "https://github.com/component/emitter", - "_id": "component-emitter@1.2.0", - "_shasum": "ccd113a86388d06482d03de3fc7df98526ba8efe", - "_from": "component-emitter@1.2.0", - "_npmVersion": "2.5.1", - "_nodeVersion": "1.2.0", - "_npmUser": { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - "maintainers": [ - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "rauchg", - "email": "rauchg@gmail.com" - }, - { - "name": "retrofox", - "email": "rdsuarez@gmail.com" - }, - { - "name": "coreh", - "email": "thecoreh@gmail.com" - }, - { - "name": "forbeslindesay", - "email": "forbes@lindesay.co.uk" - }, - { - "name": "kelonye", - "email": "kelonyemitchel@gmail.com" - }, - { - "name": "mattmueller", - "email": "mattmuelle@gmail.com" - }, - { - "name": "yields", - "email": "yields@icloud.com" - }, - { - "name": "anthonyshort", - "email": "antshort@gmail.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "ianstormtaylor", - "email": "ian@ianstormtaylor.com" - }, - { - "name": "cristiandouce", - "email": "cristian@gravityonmars.com" - }, - { - "name": "swatinem", - "email": "arpad.borsos@googlemail.com" - }, - { - "name": "stagas", - "email": "gstagas@gmail.com" - }, - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - { - "name": "shtylman", - "email": "shtylman@gmail.com" - }, - { - "name": "calvinfo", - "email": "calvin@calv.info" - }, - { - "name": "dominicbarnes", - "email": "dominic@dbarnes.info" - }, - { - "name": "blakeembrey", - "email": "hello@blakeembrey.com" - }, - { - "name": "timoxley", - "email": "secoif@gmail.com" - }, - { - "name": "jonathanong", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "queckezz", - "email": "fabian.eichenberger@gmail.com" - }, - { - "name": "nami-doc", - "email": "vendethiel@hotmail.fr" - }, - { - "name": "clintwood", - "email": "clint@anotherway.co.za" - }, - { - "name": "thehydroimpulse", - "email": "dnfagnan@gmail.com" - }, - { - "name": "stephenmathieson", - "email": "me@stephenmathieson.com" - }, - { - "name": "trevorgerhardt", - "email": "trevorgerhardt@gmail.com" - }, - { - "name": "timaschew", - "email": "timaschew@gmail.com" - }, - { - "name": "hughsk", - "email": "hughskennedy@gmail.com" - } - ], - "dist": { - "shasum": "ccd113a86388d06482d03de3fc7df98526ba8efe", - "tarball": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.npmignore b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.npmignore deleted file mode 100644 index 3957910d..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -support/ -test diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.travis.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.travis.yml deleted file mode 100644 index 3eb12a70..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.travis.yml +++ /dev/null @@ -1,46 +0,0 @@ -language: node_js -sudo: false -node_js: - - '0.10' - - '0.12' - - '4' -notifications: - irc: "irc.freenode.org#socket.io" -matrix: - include: - - node_js: '0.10' - env: BROWSER_NAME=chrome BROWSER_VERSION=latest - - node_js: '0.10' - env: BROWSER_NAME=safari BROWSER_VERSION=latest - - node_js: '0.10' - env: BROWSER_NAME=ie BROWSER_VERSION=6 - - node_js: '0.10' - env: BROWSER_NAME=ie BROWSER_VERSION=7 - - node_js: '0.10' - env: BROWSER_NAME=ie BROWSER_VERSION=8 - - node_js: '0.10' - env: BROWSER_NAME=ie BROWSER_VERSION=9 - - node_js: '0.10' - env: BROWSER_NAME=ie BROWSER_VERSION=10 BROWSER_PLATFORM="Windows 2012" - - node_js: '0.10' - env: BROWSER_NAME=ie BROWSER_VERSION=latest BROWSER_PLATFORM="Windows 2012" - - node_js: '0.10' - env: BROWSER_NAME=iphone BROWSER_VERSION=5.1 - - node_js: '0.10' - env: BROWSER_NAME=iphone BROWSER_VERSION=6.1 - - node_js: '0.10' - env: BROWSER_NAME=iphone BROWSER_VERSION=7.1 - - node_js: '0.10' - env: BROWSER_NAME=iphone BROWSER_VERSION=8.4 - - node_js: '0.10' - env: BROWSER_NAME=iphone BROWSER_VERSION=latest - - node_js: '0.10' - env: BROWSER_NAME=android BROWSER_VERSION=4.0 - - node_js: '0.10' - env: BROWSER_NAME=android BROWSER_VERSION=4.1 - - node_js: '0.10' - env: BROWSER_NAME=android BROWSER_VERSION=4.2 - - node_js: '0.10' - env: BROWSER_NAME=android BROWSER_VERSION=4.3 - - node_js: '0.10' - env: BROWSER_NAME=android BROWSER_VERSION=4.4 diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.zuul.yml b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.zuul.yml deleted file mode 100644 index 15d68929..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.zuul.yml +++ /dev/null @@ -1,6 +0,0 @@ -ui: mocha-bdd -server: ./test/support/server.js -tunnel: - type: ngrok - authtoken: 6Aw8vTgcG5EvXdQywVvbh_3fMxvd4Q7dcL2caAHAFjV - proto: tcp diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/History.md b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/History.md deleted file mode 100644 index 7b1dc9b6..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/History.md +++ /dev/null @@ -1,568 +0,0 @@ - -1.6.11 / 2016-06-23 -=================== - - * bump version - -1.6.10 / 2016-06-23 -=================== - - * bump version - -1.6.9 / 2016-05-02 -================== - - * default `rejectUnauthorized` to `true` - -1.6.8 / 2016-01-25 -================== - - * safely resolve `ws` module - -1.6.7 / 2016-01-10 -================== - - * prevent `ws` from being added to the bundle - * added jsonp fix for when no ` - -``` - -### With browserify - -Engine.IO is a commonjs module, which means you can include it by using -`require` on the browser and package using [browserify](http://browserify.org/): - -1. install the client package - - ```bash - $ npm install engine.io-client - ``` - -1. write your app code - - ```js - var socket = require('engine.io-client')('ws://localhost'); - socket.on('open', function(){ - socket.on('message', function(data){}); - socket.on('close', function(){}); - }); - ``` - -1. build your app bundle - - ```bash - $ browserify app.js > bundle.js - ``` - -1. include on your page - - ```html - - ``` - -### Sending and receiving binary - -```html - - -``` - -### Node.JS - -Add `engine.io-client` to your `package.json` and then: - -```js -var socket = require('engine.io-client')('ws://localhost'); -socket.on('open', function(){ - socket.on('message', function(data){}); - socket.on('close', function(){}); -}); -``` - -### Node.js with certificates -```js -var opts = { - key: fs.readFileSync('test/fixtures/client.key'), - cert: fs.readFileSync('test/fixtures/client.crt'), - ca: fs.readFileSync('test/fixtures/ca.crt') -}; - -var socket = require('engine.io-client')('ws://localhost', opts); -socket.on('open', function(){ - socket.on('message', function(data){}); - socket.on('close', function(){}); -}); -``` - -### Node.js with extraHeaders -```js -var opts = { - extraHeaders: { - 'X-Custom-Header-For-My-Project': 'my-secret-access-token', - 'Cookie': 'user_session=NI2JlCKF90aE0sJZD9ZzujtdsUqNYSBYxzlTsvdSUe35ZzdtVRGqYFr0kdGxbfc5gUOkR9RGp20GVKza; path=/; expires=Tue, 07-Apr-2015 18:18:08 GMT; secure; HttpOnly' - } -}; - -var socket = require('engine.io-client')('ws://localhost', opts); -socket.on('open', function(){ - socket.on('message', function(data){}); - socket.on('close', function(){}); -}); -``` - -## Features - -- Lightweight -- Runs on browser and node.js seamlessly -- Transports are independent of `Engine` - - Easy to debug - - Easy to unit test -- Runs inside HTML5 WebWorker -- Can send and receive binary data - - Receives as ArrayBuffer or Blob when in browser, and Buffer or ArrayBuffer - in Node - - When XHR2 or WebSockets are used, binary is emitted directly. Otherwise - binary is encoded into base64 strings, and decoded when binary types are - supported. - - With browsers that don't support ArrayBuffer, an object { base64: true, - data: dataAsBase64String } is emitted on the `message` event. - -## API - -### Socket - -The client class. Mixes in [Emitter](http://github.com/component/emitter). -Exposed as `eio` in the browser standalone build. - -#### Properties - -- `protocol` _(Number)_: protocol revision number -- `binaryType` _(String)_ : can be set to 'arraybuffer' or 'blob' in browsers, - and `buffer` or `arraybuffer` in Node. Blob is only used in browser if it's - supported. - -#### Events - -- `open` - - Fired upon successful connection. -- `message` - - Fired when data is received from the server. - - **Arguments** - - `String` | `ArrayBuffer`: utf-8 encoded data or ArrayBuffer containing - binary data -- `close` - - Fired upon disconnection. In compliance with the WebSocket API spec, this event may be - fired even if the `open` event does not occur (i.e. due to connection error or `close()`). -- `error` - - Fired when an error occurs. -- `flush` - - Fired upon completing a buffer flush -- `drain` - - Fired after `drain` event of transport if writeBuffer is empty -- `upgradeError` - - Fired if an error occurs with a transport we're trying to upgrade to. -- `upgrade` - - Fired upon upgrade success, after the new transport is set -- `ping` - - Fired upon _flushing_ a ping packet (ie: actual packet write out) -- `pong` - - Fired upon receiving a pong packet. - -#### Methods - -- **constructor** - - Initializes the client - - **Parameters** - - `String` uri - - `Object`: optional, options object - - **Options** - - `agent` (`http.Agent`): `http.Agent` to use, defaults to `false` (NodeJS only) - - `upgrade` (`Boolean`): defaults to true, whether the client should try - to upgrade the transport from long-polling to something better. - - `forceJSONP` (`Boolean`): forces JSONP for polling transport. - - `jsonp` (`Boolean`): determines whether to use JSONP when - necessary for polling. If disabled (by settings to false) an error will - be emitted (saying "No transports available") if no other transports - are available. If another transport is available for opening a - connection (e.g. WebSocket) that transport - will be used instead. - - `forceBase64` (`Boolean`): forces base 64 encoding for polling transport even when XHR2 responseType is available and WebSocket even if the used standard supports binary. - - `enablesXDR` (`Boolean`): enables XDomainRequest for IE8 to avoid loading bar flashing with click sound. default to `false` because XDomainRequest has a flaw of not sending cookie. - - `timestampRequests` (`Boolean`): whether to add the timestamp with each - transport request. Note: polling requests are always stamped unless this - option is explicitly set to `false` (`false`) - - `timestampParam` (`String`): timestamp parameter (`t`) - - `policyPort` (`Number`): port the policy server listens on (`843`) - - `path` (`String`): path to connect to, default is `/engine.io` - - `transports` (`Array`): a list of transports to try (in order). - Defaults to `['polling', 'websocket']`. `Engine` - always attempts to connect directly with the first one, provided the - feature detection test for it passes. - - `rememberUpgrade` (`Boolean`): defaults to false. - If true and if the previous websocket connection to the server succeeded, - the connection attempt will bypass the normal upgrade process and will initially - try websocket. A connection attempt following a transport error will use the - normal upgrade process. It is recommended you turn this on only when using - SSL/TLS connections, or if you know that your network does not block websockets. - - `pfx` (`String`): Certificate, Private key and CA certificates to use for SSL. Can be used in Node.js client environment to manually specify certificate information. - - `key` (`String`): Private key to use for SSL. Can be used in Node.js client environment to manually specify certificate information. - - `passphrase` (`String`): A string of passphrase for the private key or pfx. Can be used in Node.js client environment to manually specify certificate information. - - `cert` (`String`): Public x509 certificate to use. Can be used in Node.js client environment to manually specify certificate information. - - `ca` (`String`|`Array`): An authority certificate or array of authority certificates to check the remote host against.. Can be used in Node.js client environment to manually specify certificate information. - - `ciphers` (`String`): A string describing the ciphers to use or exclude. Consult the [cipher format list](http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT) for details on the format. Can be used in Node.js client environment to manually specify certificate information. - - `rejectUnauthorized` (`Boolean`): If true, the server certificate is verified against the list of supplied CAs. An 'error' event is emitted if verification fails. Verification happens at the connection level, before the HTTP request is sent. Can be used in Node.js client environment to manually specify certificate information. - - `perMessageDeflate` (`Object|Boolean`): parameters of the WebSocket permessage-deflate extension - (see [ws module](https://github.com/einaros/ws) api docs). Set to `false` to disable. (`true`) - - `threshold` (`Number`): data is compressed only if the byte size is above this value. This option is ignored on the browser. (`1024`) - - `extraHeaders` (`Object`): Headers that will be passed for each request to the server (via xhr-polling and via websockets). These values then can be used during handshake or for special proxies. Can only be used in Node.js client environment. -- `send` - - Sends a message to the server - - **Parameters** - - `String` | `ArrayBuffer` | `ArrayBufferView` | `Blob`: data to send - - `Object`: optional, options object - - `Function`: optional, callback upon `drain` - - **Options** - - `compress` (`Boolean`): whether to compress sending data. This option is ignored and forced to be `true` on the browser. (`true`) -- `close` - - Disconnects the client. - -### Transport - -The transport class. Private. _Inherits from EventEmitter_. - -#### Events - -- `poll`: emitted by polling transports upon starting a new request -- `pollComplete`: emitted by polling transports upon completing a request -- `drain`: emitted by polling transports upon a buffer drain - -## Tests - -`engine.io-client` is used to test -[engine](http://github.com/socketio/engine.io). Running the `engine.io` -test suite ensures the client works and vice-versa. - -Browser tests are run using [zuul](https://github.com/defunctzombie/zuul). You can -run the tests locally using the following command. - -``` -./node_modules/.bin/zuul --local 8080 -- test/index.js -``` - -Additionally, `engine.io-client` has a standalone test suite you can run -with `make test` which will run node.js and browser tests. You must have zuul setup with -a saucelabs account. - -## Support - -The support channels for `engine.io-client` are the same as `socket.io`: - - irc.freenode.net **#socket.io** - - [Google Groups](http://groups.google.com/group/socket_io) - - [Website](http://socket.io) - -## Development - -To contribute patches, run tests or benchmarks, make sure to clone the -repository: - -```bash -git clone git://github.com/socketio/engine.io-client.git -``` - -Then: - -```bash -cd engine.io-client -npm install -``` - -See the `Tests` section above for how to run tests before submitting any patches. - -## License - -MIT - Copyright (c) 2014 Automattic, Inc. - diff --git a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/engine.io.js b/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/engine.io.js deleted file mode 100644 index eeefaa91..00000000 --- a/source/ungit/usr/local/emhttp/plugins/ungit/node_modules/ungit/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/engine.io.js +++ /dev/null @@ -1,4244 +0,0 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.eio=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 0) { - this.extraHeaders = opts.extraHeaders; - } - } - - this.open(); -} - -Socket.priorWebsocketSuccess = false; - -/** - * Mix in `Emitter`. - */ - -Emitter(Socket.prototype); - -/** - * Protocol version. - * - * @api public - */ - -Socket.protocol = parser.protocol; // this is an int - -/** - * Expose deps for legacy compatibility - * and standalone browser access. - */ - -Socket.Socket = Socket; -Socket.Transport = _dereq_('./transport'); -Socket.transports = _dereq_('./transports'); -Socket.parser = _dereq_('engine.io-parser'); - -/** - * Creates transport of the given type. - * - * @param {String} transport name - * @return {Transport} - * @api private - */ - -Socket.prototype.createTransport = function (name) { - debug('creating transport "%s"', name); - var query = clone(this.query); - - // append engine.io protocol identifier - query.EIO = parser.protocol; - - // transport name - query.transport = name; - - // session id if we already have one - if (this.id) query.sid = this.id; - - var transport = new transports[name]({ - agent: this.agent, - hostname: this.hostname, - port: this.port, - secure: this.secure, - path: this.path, - query: query, - forceJSONP: this.forceJSONP, - jsonp: this.jsonp, - forceBase64: this.forceBase64, - enablesXDR: this.enablesXDR, - timestampRequests: this.timestampRequests, - timestampParam: this.timestampParam, - policyPort: this.policyPort, - socket: this, - pfx: this.pfx, - key: this.key, - passphrase: this.passphrase, - cert: this.cert, - ca: this.ca, - ciphers: this.ciphers, - rejectUnauthorized: this.rejectUnauthorized, - perMessageDeflate: this.perMessageDeflate, - extraHeaders: this.extraHeaders - }); - - return transport; -}; - -function clone (obj) { - var o = {}; - for (var i in obj) { - if (obj.hasOwnProperty(i)) { - o[i] = obj[i]; - } - } - return o; -} - -/** - * Initializes transport to use and starts probe. - * - * @api private - */ -Socket.prototype.open = function () { - var transport; - if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') != -1) { - transport = 'websocket'; - } else if (0 === this.transports.length) { - // Emit error on next tick so it can be listened to - var self = this; - setTimeout(function() { - self.emit('error', 'No transports available'); - }, 0); - return; - } else { - transport = this.transports[0]; - } - this.readyState = 'opening'; - - // Retry with the next transport if the transport is disabled (jsonp: false) - try { - transport = this.createTransport(transport); - } catch (e) { - this.transports.shift(); - this.open(); - return; - } - - transport.open(); - this.setTransport(transport); -}; - -/** - * Sets the current transport. Disables the existing one (if any). - * - * @api private - */ - -Socket.prototype.setTransport = function(transport){ - debug('setting transport %s', transport.name); - var self = this; - - if (this.transport) { - debug('clearing existing transport %s', this.transport.name); - this.transport.removeAllListeners(); - } - - // set up transport - this.transport = transport; - - // set up transport listeners - transport - .on('drain', function(){ - self.onDrain(); - }) - .on('packet', function(packet){ - self.onPacket(packet); - }) - .on('error', function(e){ - self.onError(e); - }) - .on('close', function(){ - self.onClose('transport close'); - }); -}; - -/** - * Probes a transport. - * - * @param {String} transport name - * @api private - */ - -Socket.prototype.probe = function (name) { - debug('probing transport "%s"', name); - var transport = this.createTransport(name, { probe: 1 }) - , failed = false - , self = this; - - Socket.priorWebsocketSuccess = false; - - function onTransportOpen(){ - if (self.onlyBinaryUpgrades) { - var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary; - failed = failed || upgradeLosesBinary; - } - if (failed) return; - - debug('probe transport "%s" opened', name); - transport.send([{ type: 'ping', data: 'probe' }]); - transport.once('packet', function (msg) { - if (failed) return; - if ('pong' == msg.type && 'probe' == msg.data) { - debug('probe transport "%s" pong', name); - self.upgrading = true; - self.emit('upgrading', transport); - if (!transport) return; - Socket.priorWebsocketSuccess = 'websocket' == transport.name; - - debug('pausing current transport "%s"', self.transport.name); - self.transport.pause(function () { - if (failed) return; - if ('closed' == self.readyState) return; - debug('changing transport and sending upgrade packet'); - - cleanup(); - - self.setTransport(transport); - transport.send([{ type: 'upgrade' }]); - self.emit('upgrade', transport); - transport = null; - self.upgrading = false; - self.flush(); - }); - } else { - debug('probe transport "%s" failed', name); - var err = new Error('probe error'); - err.transport = transport.name; - self.emit('upgradeError', err); - } - }); - } - - function freezeTransport() { - if (failed) return; - - // Any callback called by transport should be ignored since now - failed = true; - - cleanup(); - - transport.close(); - transport = null; - } - - //Handle any error that happens while probing - function onerror(err) { - var error = new Error('probe error: ' + err); - error.transport = transport.name; - - freezeTransport(); - - debug('probe transport "%s" failed because of error: %s', name, err); - - self.emit('upgradeError', error); - } - - function onTransportClose(){ - onerror("transport closed"); - } - - //When the socket is closed while we're probing - function onclose(){ - onerror("socket closed"); - } - - //When the socket is upgraded while we're probing - function onupgrade(to){ - if (transport && to.name != transport.name) { - debug('"%s" works - aborting "%s"', to.name, transport.name); - freezeTransport(); - } - } - - //Remove all listeners on the transport and on self - function cleanup(){ - transport.removeListener('open', onTransportOpen); - transport.removeListener('error', onerror); - transport.removeListener('close', onTransportClose); - self.removeListener('close', onclose); - self.removeListener('upgrading', onupgrade); - } - - transport.once('open', onTransportOpen); - transport.once('error', onerror); - transport.once('close', onTransportClose); - - this.once('close', onclose); - this.once('upgrading', onupgrade); - - transport.open(); - -}; - -/** - * Called when connection is deemed open. - * - * @api public - */ - -Socket.prototype.onOpen = function () { - debug('socket open'); - this.readyState = 'open'; - Socket.priorWebsocketSuccess = 'websocket' == this.transport.name; - this.emit('open'); - this.flush(); - - // we check for `readyState` in case an `open` - // listener already closed the socket - if ('open' == this.readyState && this.upgrade && this.transport.pause) { - debug('starting upgrade probes'); - for (var i = 0, l = this.upgrades.length; i < l; i++) { - this.probe(this.upgrades[i]); - } - } -}; - -/** - * Handles a packet. - * - * @api private - */ - -Socket.prototype.onPacket = function (packet) { - if ('opening' == this.readyState || 'open' == this.readyState) { - debug('socket receive: type "%s", data "%s"', packet.type, packet.data); - - this.emit('packet', packet); - - // Socket is live - any packet counts - this.emit('heartbeat'); - - switch (packet.type) { - case 'open': - this.onHandshake(parsejson(packet.data)); - break; - - case 'pong': - this.setPing(); - this.emit('pong'); - break; - - case 'error': - var err = new Error('server error'); - err.code = packet.data; - this.onError(err); - break; - - case 'message': - this.emit('data', packet.data); - this.emit('message', packet.data); - break; - } - } else { - debug('packet received with socket readyState "%s"', this.readyState); - } -}; - -/** - * Called upon handshake completion. - * - * @param {Object} handshake obj - * @api private - */ - -Socket.prototype.onHandshake = function (data) { - this.emit('handshake', data); - this.id = data.sid; - this.transport.query.sid = data.sid; - this.upgrades = this.filterUpgrades(data.upgrades); - this.pingInterval = data.pingInterval; - this.pingTimeout = data.pingTimeout; - this.onOpen(); - // In case open handler closes socket - if ('closed' == this.readyState) return; - this.setPing(); - - // Prolong liveness of socket on heartbeat - this.removeListener('heartbeat', this.onHeartbeat); - this.on('heartbeat', this.onHeartbeat); -}; - -/** - * Resets ping timeout. - * - * @api private - */ - -Socket.prototype.onHeartbeat = function (timeout) { - clearTimeout(this.pingTimeoutTimer); - var self = this; - self.pingTimeoutTimer = setTimeout(function () { - if ('closed' == self.readyState) return; - self.onClose('ping timeout'); - }, timeout || (self.pingInterval + self.pingTimeout)); -}; - -/** - * Pings server every `this.pingInterval` and expects response - * within `this.pingTimeout` or closes connection. - * - * @api private - */ - -Socket.prototype.setPing = function () { - var self = this; - clearTimeout(self.pingIntervalTimer); - self.pingIntervalTimer = setTimeout(function () { - debug('writing ping packet - expecting pong within %sms', self.pingTimeout); - self.ping(); - self.onHeartbeat(self.pingTimeout); - }, self.pingInterval); -}; - -/** -* Sends a ping packet. -* -* @api private -*/ - -Socket.prototype.ping = function () { - var self = this; - this.sendPacket('ping', function(){ - self.emit('ping'); - }); -}; - -/** - * Called on `drain` event - * - * @api private - */ - -Socket.prototype.onDrain = function() { - this.writeBuffer.splice(0, this.prevBufferLen); - - // setting prevBufferLen = 0 is very important - // for example, when upgrading, upgrade packet is sent over, - // and a nonzero prevBufferLen could cause problems on `drain` - this.prevBufferLen = 0; - - if (0 === this.writeBuffer.length) { - this.emit('drain'); - } else { - this.flush(); - } -}; - -/** - * Flush write buffers. - * - * @api private - */ - -Socket.prototype.flush = function () { - if ('closed' != this.readyState && this.transport.writable && - !this.upgrading && this.writeBuffer.length) { - debug('flushing %d packets in socket', this.writeBuffer.length); - this.transport.send(this.writeBuffer); - // keep track of current length of writeBuffer - // splice writeBuffer and callbackBuffer on `drain` - this.prevBufferLen = this.writeBuffer.length; - this.emit('flush'); - } -}; - -/** - * Sends a message. - * - * @param {String} message. - * @param {Function} callback function. - * @param {Object} options. - * @return {Socket} for chaining. - * @api public - */ - -Socket.prototype.write = -Socket.prototype.send = function (msg, options, fn) { - this.sendPacket('message', msg, options, fn); - return this; -}; - -/** - * Sends a packet. - * - * @param {String} packet type. - * @param {String} data. - * @param {Object} options. - * @param {Function} callback function. - * @api private - */ - -Socket.prototype.sendPacket = function (type, data, options, fn) { - if('function' == typeof data) { - fn = data; - data = undefined; - } - - if ('function' == typeof options) { - fn = options; - options = null; - } - - if ('closing' == this.readyState || 'closed' == this.readyState) { - return; - } - - options = options || {}; - options.compress = false !== options.compress; - - var packet = { - type: type, - data: data, - options: options - }; - this.emit('packetCreate', packet); - this.writeBuffer.push(packet); - if (fn) this.once('flush', fn); - this.flush(); -}; - -/** - * Closes the connection. - * - * @api private - */ - -Socket.prototype.close = function () { - if ('opening' == this.readyState || 'open' == this.readyState) { - this.readyState = 'closing'; - - var self = this; - - if (this.writeBuffer.length) { - this.once('drain', function() { - if (this.upgrading) { - waitForUpgrade(); - } else { - close(); - } - }); - } else if (this.upgrading) { - waitForUpgrade(); - } else { - close(); - } - } - - function close() { - self.onClose('forced close'); - debug('socket closing - telling transport to close'); - self.transport.close(); - } - - function cleanupAndClose() { - self.removeListener('upgrade', cleanupAndClose); - self.removeListener('upgradeError', cleanupAndClose); - close(); - } - - function waitForUpgrade() { - // wait for upgrade to finish since we can't send packets while pausing a transport - self.once('upgrade', cleanupAndClose); - self.once('upgradeError', cleanupAndClose); - } - - return this; -}; - -/** - * Called upon transport error - * - * @api private - */ - -Socket.prototype.onError = function (err) { - debug('socket error %j', err); - Socket.priorWebsocketSuccess = false; - this.emit('error', err); - this.onClose('transport error', err); -}; - -/** - * Called upon transport close. - * - * @api private - */ - -Socket.prototype.onClose = function (reason, desc) { - if ('opening' == this.readyState || 'open' == this.readyState || 'closing' == this.readyState) { - debug('socket close with reason: "%s"', reason); - var self = this; - - // clear timers - clearTimeout(this.pingIntervalTimer); - clearTimeout(this.pingTimeoutTimer); - - // stop event from firing again for transport - this.transport.removeAllListeners('close'); - - // ensure transport won't stay open - this.transport.close(); - - // ignore further transport communication - this.transport.removeAllListeners(); - - // set ready state - this.readyState = 'closed'; - - // clear session id - this.id = null; - - // emit close event - this.emit('close', reason, desc); - - // clean buffers after, so users can still - // grab the buffers on `close` event - self.writeBuffer = []; - self.prevBufferLen = 0; - } -}; - -/** - * Filters upgrades, returning only those matching client transports. - * - * @param {Array} server upgrades - * @api private - * - */ - -Socket.prototype.filterUpgrades = function (upgrades) { - var filteredUpgrades = []; - for (var i = 0, j = upgrades.length; i